<?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>180145</bug_id>
          
          <creation_ts>2017-11-29 08:53:56 -0800</creation_ts>
          <short_desc>WebDriver: add support for importing and running selenium tests</short_desc>
          <delta_ts>2017-12-01 03:40:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1375840</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-11-29 08:53:56 -0800</bug_when>
    <thetext>We currently import and run W3C tests, which are the best ones to ensure our implementation is spec compliant. However, the selenium API is what user will actually use in the end, so it&apos;s important to ensure that we don&apos;t break the selenium support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375849</commentid>
    <comment_count>1</comment_count>
      <attachid>327861</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-11-29 09:07:28 -0800</bug_when>
    <thetext>Created attachment 327861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376000</commentid>
    <comment_count>2</comment_count>
      <attachid>327861</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-11-29 13:31:54 -0800</bug_when>
    <thetext>Comment on attachment 327861
Patch

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

This is fine in principle. However, I don&apos;t want to import all the other junk in the Selenium repository, including docs, build system, and copies of all the client library sources, if you aren&apos;t going to actually use it. Can you change the importer to just import tests?

&gt; Tools/ChangeLog:12


Nit: selenium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376223</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-11-29 22:49:17 -0800</bug_when>
    <thetext>(In reply to Brian Burg from comment #2)
&gt; Comment on attachment 327861 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=327861&amp;action=review
&gt; 
&gt; This is fine in principle. However, I don&apos;t want to import all the other
&gt; junk in the Selenium repository, including docs, build system, and copies of
&gt; all the client library sources, if you aren&apos;t going to actually use it. Can
&gt; you change the importer to just import tests?

Ok, I&apos;ll try to reduce what we import. Note that we are not including a copy of all the client libs, only the python one that is needed to run the tests.

&gt; &gt; Tools/ChangeLog:12
&gt; 
&gt; 
&gt; Nit: selenium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376247</commentid>
    <comment_count>4</comment_count>
      <attachid>327960</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-11-30 01:41:35 -0800</bug_when>
    <thetext>Created attachment 327960
Updated patch

I&apos;ve merged both import scripts into a single onw that can receive --w3c and --selenium arguments. The importer now ignores build files, documentation and the implementations an tests of other drivers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376605</commentid>
    <comment_count>5</comment_count>
      <attachid>327960</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-11-30 16:12:57 -0800</bug_when>
    <thetext>Comment on attachment 327960
Updated patch

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

&gt; Tools/Scripts/import-webdriver-tests:91
&gt; +if &apos;--w3c&apos; in sys.argv or len(sys.argv) == 1:

It seems likely that we may want other CLI options in the future. Can you make this use argparse/optparse?

&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_driver.py:46
&gt; +    def selenium_name(self):

Please add a comment to explain the purpose of this. It appears to be used as the name to parameterize the test suite using pytest.

&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py:45
&gt;  

Does WPE not need to run Selenium tests? Otherwise it needs a selenium name, I believe.

&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:32
&gt; +w3c_tools_dir = WebKitFinder(FileSystem()).path_from_webkit_base(&apos;WebDriverTests&apos;, &apos;imported&apos;, &apos;w3c&apos;, &apos;tools&apos;)

Would it make more sense to auto-install pytest rather than depending on the W3C drop? Or are the w3C tools dependent on their particular copy of pytest?

&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:96
&gt; +                pytest.main([&apos;--driver=%s&apos; % self._name,

Per above, this could be None.

&gt; WebDriverTests/imported/selenium/common/src/web/Page.aspx:1
&gt; +&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;Page.aspx.cs&quot; Inherits=&quot;Page&quot; %&gt;

No reason to import this, as we don&apos;t run an ASP server =)

&gt; WebDriverTests/imported/selenium/common/src/web/Page.aspx.cs:3
&gt; +

Ditto but for .Net

&gt; WebDriverTests/imported/selenium/common/src/web/Redirect.aspx:6
&gt; +&lt;head runat=&quot;server&quot;&gt;

Ditto

&gt; WebDriverTests/imported/selenium/common/src/web/Redirect.aspx.cs:4
&gt; +{

Ditto

&gt; WebDriverTests/imported/selenium/common/src/web/Settings.StyleCop:3
&gt; +    &lt;Analyzer AnalyzerId=&quot;Microsoft.StyleCop.CSharp.DocumentationRules&quot;&gt;

Ditto

&gt; WebDriverTests/imported/selenium/py/conftest.py:113
&gt; +            browser_path = os.environ.get(&apos;WD_BROWSER_PATH&apos;)

The more elegant way to achieve this is to take the arguments via pytest_addoption. Let me know if you want to go that route; I recently changed safaridriver&apos;s test harness to stop using ENV like this. I think these options are generic enough that other drivers could use them.

&gt; WebDriverTests/imported/selenium/py/conftest.py:169
&gt; +    _path = &apos;../buck-out/gen/java/server/src/org/openqa/grid/selenium/selenium.jar&apos;

I hope none of the python tests use the server fixture. This hasn&apos;t been a problem in my experience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376752</commentid>
    <comment_count>6</comment_count>
      <attachid>327960</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-12-01 01:32:02 -0800</bug_when>
    <thetext>Comment on attachment 327960
Updated patch

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

&gt;&gt; Tools/Scripts/import-webdriver-tests:91
&gt;&gt; +if &apos;--w3c&apos; in sys.argv or len(sys.argv) == 1:
&gt; 
&gt; It seems likely that we may want other CLI options in the future. Can you make this use argparse/optparse?

Ok.

&gt;&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_driver.py:46
&gt;&gt; +    def selenium_name(self):
&gt; 
&gt; Please add a comment to explain the purpose of this. It appears to be used as the name to parameterize the test suite using pytest.

Yes, selenium adds --driver command line option to pytest that it uses to create the driver instance for the tests.

&gt;&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py:45
&gt;&gt;  
&gt; 
&gt; Does WPE not need to run Selenium tests? Otherwise it needs a selenium name, I believe.

There&apos;s no WPE driver in selenium yet, so it&apos;s not possible to run selenium tests for now.

&gt;&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:32
&gt;&gt; +w3c_tools_dir = WebKitFinder(FileSystem()).path_from_webkit_base(&apos;WebDriverTests&apos;, &apos;imported&apos;, &apos;w3c&apos;, &apos;tools&apos;)
&gt; 
&gt; Would it make more sense to auto-install pytest rather than depending on the W3C drop? Or are the w3C tools dependent on their particular copy of pytest?

I&apos;m reusing the recorder plugins of wpt, that I assumed depend on the pytest included in wpt tools. If those plugins are compatible with a newer pytest then, I think it&apos;s better to not import the wpt one and use the auto-installed for both. I&apos;ll investigate that possibility. But as long as we have a copy of pytest in the tree I think t&apos;s better to use it for selenium too to ensure same results format.

&gt;&gt; Tools/Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:96
&gt;&gt; +                pytest.main([&apos;--driver=%s&apos; % self._name,
&gt; 
&gt; Per above, this could be None.

No, collect_tests() and run_tests() return early in WebDriverTestRunnerSelenium when the name is None.

&gt;&gt; WebDriverTests/imported/selenium/py/conftest.py:113
&gt;&gt; +            browser_path = os.environ.get(&apos;WD_BROWSER_PATH&apos;)
&gt; 
&gt; The more elegant way to achieve this is to take the arguments via pytest_addoption. Let me know if you want to go that route; I recently changed safaridriver&apos;s test harness to stop using ENV like this. I think these options are generic enough that other drivers could use them.

hmm, note this is not a wk patch, this is upstream, I added recently to selenium for this and we discussed the possibility of making it generic for other drivers. I think we can discuss this upstream and then adopt here whatever we decide. See https://github.com/SeleniumHQ/selenium/pull/5121

&gt;&gt; WebDriverTests/imported/selenium/py/conftest.py:169
&gt;&gt; +    _path = &apos;../buck-out/gen/java/server/src/org/openqa/grid/selenium/selenium.jar&apos;
&gt; 
&gt; I hope none of the python tests use the server fixture. This hasn&apos;t been a problem in my experience.

No, this is not a problem, but I don&apos;t think it&apos;s worth patching this to remove this fixture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376771</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-12-01 03:32:07 -0800</bug_when>
    <thetext>Committed r225390: &lt;https://trac.webkit.org/changeset/225390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376775</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-01 03:40:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/35794680&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327861</attachid>
            <date>2017-11-29 09:07:28 -0800</date>
            <delta_ts>2017-11-30 01:41:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wd-selenium-tests.diff</filename>
            <type>text/plain</type>
            <size>2710887</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNThj
MWJiNjg4MS4uYjYyNTVjZjMwNTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxNy0xMS0yOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBhZGQg
c3VwcG9ydCBmb3IgaW1wb3J0aW5nIGFuZCBydW5uaW5nIHNlbGVuaXVtIHRlc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBjdXJyZW50bHkgaW1w
b3J0IGFuZCBydW4gVzNDIHRlc3RzLCB3aGljaCBhcmUgdGhlIGJlc3Qgb25lcyB0byBlbnN1cmUg
b3VyIGltcGxlbWVudGF0aW9uIGlzIHNwZWMKKyAgICAgICAgY29tcGxpYW50LiBIb3dldmVyLCB0
aGUgc2VsZW5pdW0gQVBJIGlzIHdoYXQgdXNlciB3aWxsIGFjdHVhbGx5IHVzZSBpbiB0aGUgZW5k
LCBzbyBpdCdzIGltcG9ydGFudCB0byBlbnN1cmUgdGhhdAorICAgICAgICB3ZSBkb24ndCBicmVh
ayB0aGUgc2VsZW5pdW0gc3VwcG9ydC4gVGhpcyBhZGRzIGltcG9ydC1zZWxlbml1bS13ZWJkcml2
ZXItdGVzdHMgc2NyaXB0IHRvIGRvd25sb2FkIGFuZCBjb3B5IHRoZQorICAgICAgICB0ZXN0cyBm
cm9tIHNlbGVuaXVtIHJlcG9zaXRvcnkgYW5kIGFkZHMgd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3Nl
bGVuaXVtLnB5IGFuZCB3ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0b3IucHkgdG8KKyAgICAgICAg
cnVuIHNlbGVudWltIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy9pbXBvcnQtc2VsZW5pdW0t
d2ViZHJpdmVyLXRlc3RzOiBBZGRlZC4KKyAgICAgICAgKGRvd25sb2FkX3Rlc3RzKToKKyAgICAg
ICAgKGltcG9ydF90ZXN0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJf
dGVzdHMvd2ViZHJpdmVyX2RyaXZlci5weToKKyAgICAgICAgKFdlYkRyaXZlci5icm93c2VyX3Bh
dGgpOgorICAgICAgICAoV2ViRHJpdmVyKToKKyAgICAgICAgKFdlYkRyaXZlci5icm93c2VyX2Fy
Z3MpOgorICAgICAgICAoV2ViRHJpdmVyLnNlbGVuaXVtX25hbWUpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9kcml2ZXJfZ3RrLnB5OgorICAg
ICAgICAoV2ViRHJpdmVyR3RrLmJyb3dzZXJfcGF0aCk6CisgICAgICAgIChXZWJEcml2ZXJHdGsp
OgorICAgICAgICAoV2ViRHJpdmVyR3RrLmJyb3dzZXJfYXJncyk6CisgICAgICAgIChXZWJEcml2
ZXJHdGsuY2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlckd0ay5zZWxlbml1bV9uYW1l
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJf
ZHJpdmVyX3dwZS5weToKKyAgICAgICAgKFdlYkRyaXZlcldQRS5icm93c2VyX2FyZ3MpOgorICAg
ICAgICAoV2ViRHJpdmVyV1BFLmNhcGFiaWxpdGllcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1dG9yLnB5OiBBZGRl
ZC4KKyAgICAgICAgKF9lbnN1cmVfZGlyZWN0b3J5X2luX3BhdGgpOgorICAgICAgICAoQ29sbGVj
dFJlY29yZGVyKToKKyAgICAgICAgKENvbGxlY3RSZWNvcmRlci5fX2luaXRfXyk6CisgICAgICAg
IChDb2xsZWN0UmVjb3JkZXIucHl0ZXN0X2NvbGxlY3RyZXBvcnQpOgorICAgICAgICAoV2ViRHJp
dmVyU2VsZW5pdW1FeGVjdXRvcik6CisgICAgICAgIChXZWJEcml2ZXJTZWxlbml1bUV4ZWN1dG9y
Ll9faW5pdF9fKToKKyAgICAgICAgKFdlYkRyaXZlclNlbGVuaXVtRXhlY3V0b3IuY29sbGVjdCk6
CisgICAgICAgIChXZWJEcml2ZXJTZWxlbml1bUV4ZWN1dG9yLnJ1bik6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5Ogor
ICAgICAgICAoV2ViRHJpdmVyVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJEcml2ZXJUZXN0UnVu
bmVyLl9faW5pdF9fKToKKyAgICAgICAgKFdlYkRyaXZlclRlc3RSdW5uZXIucnVuKToKKyAgICAg
ICAgKFdlYkRyaXZlclRlc3RSdW5uZXIucHJpbnRfcmVzdWx0cyk6CisgICAgICAgIChXZWJEcml2
ZXJUZXN0UnVubmVyLmR1bXBfcmVzdWx0c190b19qc29uX2ZpbGUpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0X3J1bm5lcl9zZWxlbml1
bS5weTogQWRkZWQuCisgICAgICAgIChXZWJEcml2ZXJUZXN0UnVubmVyU2VsZW5pdW0pOgorICAg
ICAgICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLl9faW5pdF9fKToKKyAgICAgICAgKFdl
YkRyaXZlclRlc3RSdW5uZXJTZWxlbml1bS5fdGVzdHNfZGlyKToKKyAgICAgICAgKFdlYkRyaXZl
clRlc3RSdW5uZXJTZWxlbml1bS5jb2xsZWN0X3Rlc3RzKToKKyAgICAgICAgKFdlYkRyaXZlclRl
c3RSdW5uZXJTZWxlbml1bS5ydW4pOgorICAgICAgICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVu
aXVtLnJlc3VsdHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3Rz
L3dlYmRyaXZlcl90ZXN0X3J1bm5lcl93M2MucHk6CisgICAgICAgIChXZWJEcml2ZXJUZXN0UnVu
bmVyVzNDLl9faW5pdF9fKToKKyAgICAgICAgKFdlYkRyaXZlclRlc3RSdW5uZXJXM0MucnVuKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNj
X2V4ZWN1dG9yLnB5OgorCiAyMDE3LTExLTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2ZXI6IGFkZCBhbiBvcHRpb24gdG8gZHVt
cCB0ZXN0IHJlc3VsdHMgdG8gYSBqc29uIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
aW1wb3J0LXNlbGVuaXVtLXdlYmRyaXZlci10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvaW1wb3J0LXNl
bGVuaXVtLXdlYmRyaXZlci10ZXN0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMC4uYjMwZmRlYzcxMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL2ltcG9y
dC1zZWxlbml1bS13ZWJkcml2ZXItdGVzdHMKQEAgLTAsMCArMSw3OCBAQAorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorIyAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworIyAgICBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisjICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCisjICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscworIyAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVIgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQor
IyBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksCisjIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyMgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisj
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRgorIyBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBqc29uCitp
bXBvcnQgb3MKK2ltcG9ydCBzeXMKKworZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQg
SG9zdAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVT
eXN0ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBpbXBvcnQgY29uZmln
dXJlX2xvZ2dpbmcKK2Zyb20gd2Via2l0cHkuY29tbW9uLndlYmtpdF9maW5kZXIgaW1wb3J0IFdl
YktpdEZpbmRlcgorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmdpdCBpbXBvcnQg
R2l0Citmcm9tIHdlYmtpdHB5LnczYy50ZXN0X2Rvd25sb2FkZXIgaW1wb3J0IFRlc3REb3dubG9h
ZGVyCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworZGVmIGRvd25sb2Fk
X3Rlc3RzKGhvc3QsIHVybCwgcmV2aXNpb24sIGRlc3RfZGlyZWN0b3J5KToKKyAgICBfbG9nLmlu
Zm8oJ0Rvd25sb2FkaW5nIHRlc3RzJykKKyAgICBHaXQuY2xvbmUodXJsLCBkZXN0X2RpcmVjdG9y
eSwgaG9zdC5leGVjdXRpdmUpCisgICAgR2l0KGRlc3RfZGlyZWN0b3J5LCBOb25lLCBleGVjdXRp
dmU9aG9zdC5leGVjdXRpdmUsIGZpbGVzeXN0ZW09aG9zdC5maWxlc3lzdGVtKS5jaGVja291dChy
ZXZpc2lvbiwgRmFsc2UpCisKK2RlZiBpbXBvcnRfdGVzdHMoaG9zdCwgc3JjX2RpcmVjdG9yeSwg
ZGVzdF9kaXJlY3RvcnkpOgorICAgIF9sb2cuaW5mbygnSW1wb3J0aW5nIHRlc3RzJykKKyAgICBm
b3IgcGF0aCBpbiBbJ2NvbW1vbicsICdweSddOgorICAgICAgICBzb3VyY2VfZGlyZWN0b3J5ID0g
aG9zdC5maWxlc3lzdGVtLmpvaW4oc3JjX2RpcmVjdG9yeSwgcGF0aCkKKyAgICAgICAgZm9yIHNv
dXJjZV9wYXRoIGluIGhvc3QuZmlsZXN5c3RlbS5maWxlc191bmRlcihzb3VyY2VfZGlyZWN0b3J5
KToKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uX3BhdGggPSBob3N0LmZpbGVzeXN0ZW0uam9pbihk
ZXN0X2RpcmVjdG9yeSwgaG9zdC5maWxlc3lzdGVtLnJlbHBhdGgoc291cmNlX3BhdGgsIHNyY19k
aXJlY3RvcnkpKQorICAgICAgICAgICAgaG9zdC5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0
b3J5KGhvc3QuZmlsZXN5c3RlbS5kaXJuYW1lKGRlc3RpbmF0aW9uX3BhdGgpKQorICAgICAgICAg
ICAgaG9zdC5maWxlc3lzdGVtLmNvcHlmaWxlKHNvdXJjZV9wYXRoLCBkZXN0aW5hdGlvbl9wYXRo
KQorCisKK2NvbmZpZ3VyZV9sb2dnaW5nKCkKKworaG9zdCA9IEhvc3QoKQoraG9zdC5pbml0aWFs
aXplX3NjbSgpCit3ZWJraXRfZmluZGVyID0gV2ViS2l0RmluZGVyKGhvc3QuZmlsZXN5c3RlbSkK
K2ltcG9ydGVyX2NvbmZpZ19wYXRoID0gd2Via2l0X2ZpbmRlci5wYXRoX2Zyb21fd2Via2l0X2Jh
c2UoJ1dlYkRyaXZlclRlc3RzJywgJ2ltcG9ydGVkJywgJ3NlbGVuaXVtJywgJ2ltcG9ydGVyLmpz
b24nKQorY29uZmlnID0ganNvbi5sb2Fkcyhob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUo
aW1wb3J0ZXJfY29uZmlnX3BhdGgpKQorCitkb3dubG9hZF9wYXRoID0gd2Via2l0X2ZpbmRlci5w
YXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1dlYktpdEJ1aWxkJywgJ3NlbGVuaXVtLXRlc3RzJywgJ3Nl
bGVuaXVtJykKK2lmIGhvc3QuZmlsZXN5c3RlbS5leGlzdHMoZG93bmxvYWRfcGF0aCk6CisgICAg
X2xvZy5lcnJvcignVGVzdCBkZXN0aW5hdGlvbiBkaXIgJXMgYWxyZWFkeSBleGlzdHMsIHRyeSBh
Z2FpbiBhZnRlciBkZWxldGluZyBpdCcgJSBkb3dubG9hZF9wYXRoKQorICAgIHN5cy5leGl0KDEp
Citob3N0LmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3RvcnkoaG9zdC5maWxlc3lzdGVtLmRp
cm5hbWUoZG93bmxvYWRfcGF0aCkpCitkb3dubG9hZF90ZXN0cyhob3N0LCBjb25maWdbJ3JlcG9z
aXRvcnknXSwgY29uZmlnWydyZXZpc2lvbiddLCBkb3dubG9hZF9wYXRoKQorCitpbXBvcnRfcGF0
aCA9IHdlYmtpdF9maW5kZXIucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdXZWJEcml2ZXJUZXN0cycs
ICdpbXBvcnRlZCcsICdzZWxlbml1bScpCitpbXBvcnRfdGVzdHMoaG9zdCwgZG93bmxvYWRfcGF0
aCwgaW1wb3J0X3BhdGgpCisKK19sb2cuaW5mbygnRGVsZXRpbmcgZG93bmxvYWRlZCB0ZXN0cycp
Citob3N0LmZpbGVzeXN0ZW0ucm10cmVlKGRvd25sb2FkX3BhdGgpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfZHJpdmVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX2RyaXZlci5w
eQppbmRleCA2MzQ3M2Y1N2Y3Yi4uYTgyNzQ1ZjlmNTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9kcml2ZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX2RyaXZlci5weQpA
QCAtMzQsOSArMzQsMTcgQEAgY2xhc3MgV2ViRHJpdmVyKG9iamVjdCk6CiAgICAgZGVmIGNhcGFi
aWxpdGllcyhzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCisgICAg
ZGVmIGJyb3dzZXJfcGF0aChzZWxmKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBi
cm93c2VyX2FyZ3Moc2VsZik6CisgICAgICAgIHJldHVybiBbXQorCiAgICAgZGVmIGJyb3dzZXJf
ZW52KHNlbGYpOgogICAgICAgICByZXR1cm4ge30KIAorICAgIGRlZiBzZWxlbml1bV9uYW1lKHNl
bGYpOgorICAgICAgICByZXR1cm4gTm9uZQogCiBfZHJpdmVycyA9IHt9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9kcml2ZXJf
Z3RrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVy
X2RyaXZlcl9ndGsucHkKaW5kZXggYWIwMTBiNWJhYjUuLmVmNGYzODU3OWYyIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfZHJpdmVy
X2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJk
cml2ZXJfZHJpdmVyX2d0ay5weQpAQCAtMzQsMTAgKzM0LDE5IEBAIGNsYXNzIFdlYkRyaXZlckd0
ayhXZWJEcml2ZXIpOgogICAgIGRlZiBicm93c2VyX25hbWUoc2VsZik6CiAgICAgICAgIHJldHVy
biAnTWluaUJyb3dzZXInCiAKKyAgICBkZWYgYnJvd3Nlcl9wYXRoKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fcG9ydC5fYnVpbGRfcGF0aCgnYmluJywgJ01pbmlCcm93c2VyJykKKworICAg
IGRlZiBicm93c2VyX2FyZ3Moc2VsZik6CisgICAgICAgIHJldHVybiBbJy0tYXV0b21hdGlvbics
ICctLWphdmFzY3JpcHQtY2FuLW9wZW4td2luZG93cy1hdXRvbWF0aWNhbGx5PXRydWUnLCAnLS1l
bmFibGUteHNzLWF1ZGl0b3I9ZmFsc2UnXQorCiAgICAgZGVmIGNhcGFiaWxpdGllcyhzZWxmKToK
ICAgICAgICAgcmV0dXJuIHsnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zJzogewotICAgICAgICAg
ICAgJ2JpbmFyeSc6IHNlbGYuX3BvcnQuX2J1aWxkX3BhdGgoJ2JpbicsICdNaW5pQnJvd3Nlcicp
LAotICAgICAgICAgICAgJ2FyZ3MnOiBbJy0tYXV0b21hdGlvbicsICctLWphdmFzY3JpcHQtY2Fu
LW9wZW4td2luZG93cy1hdXRvbWF0aWNhbGx5PXRydWUnLCAnLS1lbmFibGUteHNzLWF1ZGl0b3I9
ZmFsc2UnXX19CisgICAgICAgICAgICAnYmluYXJ5Jzogc2VsZi5icm93c2VyX3BhdGgoKSwKKyAg
ICAgICAgICAgICdhcmdzJzogc2VsZi5icm93c2VyX2FyZ3MoKX19CisKKyAgICBkZWYgc2VsZW5p
dW1fbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuICdXZWJLaXRHVEsnCiAKIAogcmVnaXN0ZXJf
ZHJpdmVyKCdndGsnLCBXZWJEcml2ZXJHdGspCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfZHJpdmVyX3dwZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9kcml2ZXJfd3BlLnB5Cmlu
ZGV4IDk3MGM5NDE3MGRjLi5mMDI1NzMxYjlhYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX2RyaXZlcl93cGUucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX2RyaXZlcl93cGUu
cHkKQEAgLTM1LDEwICszNSwxMyBAQCBjbGFzcyBXZWJEcml2ZXJXUEUoV2ViRHJpdmVyKToKICAg
ICBkZWYgYnJvd3Nlcl9uYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4gJ2R5eicKIAorICAgIGRl
ZiBicm93c2VyX2FyZ3Moc2VsZik6CisgICAgICAgIHJldHVybiBbJy0tYXV0b21hdGlvbiddCisK
ICAgICBkZWYgY2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAgICByZXR1cm4geyd3cGU6YnJvd3Nl
ck9wdGlvbnMnOiB7CiAgICAgICAgICAgICAnYmluYXJ5Jzogc2VsZi5icm93c2VyX25hbWUoKSwK
LSAgICAgICAgICAgICdhcmdzJzogWyctLWF1dG9tYXRpb24nXX19CisgICAgICAgICAgICAnYXJn
cyc6IHNlbGYuYnJvd3Nlcl9hcmdzKCl9fQogCiAgICAgZGVmIGJyb3dzZXJfZW52KHNlbGYpOgog
ICAgICAgICBlbnYgPSB7fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJk
cml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1dG9yLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1dG9yLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lOWUzN2QzNDYxNgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dl
YmRyaXZlcl9zZWxlbml1bV9leGVjdXRvci5weQpAQCAtMCwwICsxLDExMSBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQorZnJv
bSB3ZWJraXRweS5jb21tb24ud2Via2l0X2ZpbmRlciBpbXBvcnQgV2ViS2l0RmluZGVyCitpbXBv
cnQgd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVkLm1vemxvZworCisjIFNpbmNlIFcz
QyB0ZXN0cyBhbHNvIHVzZSBweXRlc3QsIHdlIHVzZSBweXRlc3QgYW5kIHNvbWUgb3RoZXIgdG9v
bHMgZm9yIHNlbGVuaXVtIHRvby4KK3czY190b29sc19kaXIgPSBXZWJLaXRGaW5kZXIoRmlsZVN5
c3RlbSgpKS5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1dlYkRyaXZlclRlc3RzJywgJ2ltcG9ydGVk
JywgJ3czYycsICd0b29scycpCisKKworZGVmIF9lbnN1cmVfZGlyZWN0b3J5X2luX3BhdGgoZGly
ZWN0b3J5KToKKyAgICBpZiBub3QgZGlyZWN0b3J5IGluIHN5cy5wYXRoOgorICAgICAgICBzeXMu
cGF0aC5pbnNlcnQoMCwgZGlyZWN0b3J5KQorX2Vuc3VyZV9kaXJlY3RvcnlfaW5fcGF0aChvcy5w
YXRoLmpvaW4odzNjX3Rvb2xzX2RpciwgJ3B5dGVzdCcpKQorX2Vuc3VyZV9kaXJlY3RvcnlfaW5f
cGF0aChvcy5wYXRoLmpvaW4odzNjX3Rvb2xzX2RpciwgJ3dwdHJ1bm5lcicpKQorCitpbXBvcnQg
cHl0ZXN0CitpbXBvcnQgd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVkLnB5dGVzdF90
aW1lb3V0Citmcm9tIHdwdHJ1bm5lci5leGVjdXRvcnMucHl0ZXN0cnVubmVyLnJ1bm5lciBpbXBv
cnQgSGFybmVzc1Jlc3VsdFJlY29yZGVyLCBTdWJ0ZXN0UmVzdWx0UmVjb3JkZXIsIFRlbXBvcmFy
eURpcmVjdG9yeQorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xh
c3MgQ29sbGVjdFJlY29yZGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6Cisg
ICAgICAgIHNlbGYudGVzdHMgPSBbXQorCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0cmVwb3J0KHNl
bGYsIHJlcG9ydCk6CisgICAgICAgIGlmIHJlcG9ydC5ub2RlaWQ6CisgICAgICAgICAgICBzZWxm
LnRlc3RzLmFwcGVuZChyZXBvcnQubm9kZWlkKQorCisKK2NsYXNzIFdlYkRyaXZlclNlbGVuaXVt
RXhlY3V0b3Iob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkcml2ZXIsIGRpc3Bs
YXlfZHJpdmVyKToKKyAgICAgICAgc2VsZi5fZW52ID0ge30KKyAgICAgICAgc2VsZi5fZW52WydX
RF9EUklWRVJfUEFUSCddID0gZHJpdmVyLmJpbmFyeV9wYXRoKCkKKyAgICAgICAgYnJvd3Nlcl9w
YXRoID0gZHJpdmVyLmJyb3dzZXJfcGF0aCgpCisgICAgICAgIGlmIGJyb3dzZXJfcGF0aDoKKyAg
ICAgICAgICAgIHNlbGYuX2VudlsnV0RfQlJPV1NFUl9QQVRIJ10gPSBicm93c2VyX3BhdGgKKyAg
ICAgICAgYnJvd3Nlcl9hcmdzID0gZHJpdmVyLmJyb3dzZXJfYXJncygpCisgICAgICAgIGlmIGJy
b3dzZXJfYXJnczoKKyAgICAgICAgICAgIHNlbGYuX2VudlsnV0RfQlJPV1NFUl9BUkdTJ10gPSAn
ICcuam9pbihicm93c2VyX2FyZ3MpCisgICAgICAgIHNlbGYuX2Vudi51cGRhdGUoZGlzcGxheV9k
cml2ZXIuX3NldHVwX2Vudmlyb25fZm9yX3Rlc3QoKSkKKyAgICAgICAgc2VsZi5fZW52LnVwZGF0
ZShkcml2ZXIuYnJvd3Nlcl9lbnYoKSkKKworICAgICAgICBzZWxmLl9uYW1lID0gZHJpdmVyLnNl
bGVuaXVtX25hbWUoKQorCisgICAgZGVmIGNvbGxlY3Qoc2VsZiwgZGlyZWN0b3J5KToKKyAgICAg
ICAgY29sbGVjdF9yZWNvcmRlciA9IENvbGxlY3RSZWNvcmRlcigpCisgICAgICAgIHN0ZG91dCA9
IHN5cy5zdGRvdXQKKyAgICAgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3YicpIGFzIGRldm51
bGw6CisgICAgICAgICAgICBzeXMuc3Rkb3V0ID0gZGV2bnVsbAorICAgICAgICAgICAgd2l0aCBU
ZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBjYWNoZV9kaXJlY3Rvcnk6CisgICAgICAgICAgICAgICAg
cHl0ZXN0Lm1haW4oWyctLWRyaXZlcj0lcycgJSBzZWxmLl9uYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnLS1jb2xsZWN0LW9ubHknLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnLS1iYXNldGVtcCcsIGNhY2hlX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlyZWN0b3J5XSwgcGx1Z2lucz1bY29sbGVjdF9yZWNvcmRlcl0pCisgICAgICAg
IHN5cy5zdGRvdXQgPSBzdGRvdXQKKyAgICAgICAgcmV0dXJuIGNvbGxlY3RfcmVjb3JkZXIudGVz
dHMKKworICAgIGRlZiBydW4oc2VsZiwgdGVzdCwgdGltZW91dD0wKToKKyAgICAgICAgaGFybmVz
c19yZWNvcmRlciA9IEhhcm5lc3NSZXN1bHRSZWNvcmRlcigpCisgICAgICAgIHN1YnRlc3RzX3Jl
Y29yZGVyID0gU3VidGVzdFJlc3VsdFJlY29yZGVyKCkKKyAgICAgICAgX2Vudmlyb24gPSBkaWN0
KG9zLmVudmlyb24pCisgICAgICAgIG9zLmVudmlyb24uY2xlYXIoKQorICAgICAgICBvcy5lbnZp
cm9uLnVwZGF0ZShzZWxmLl9lbnYpCisKKyAgICAgICAgd2l0aCBUZW1wb3JhcnlEaXJlY3Rvcnko
KSBhcyBjYWNoZV9kaXJlY3Rvcnk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
cHl0ZXN0Lm1haW4oWyctLWRyaXZlcj0lcycgJSBzZWxmLl9uYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnLS12ZXJib3NlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Jy0tY2FwdHVyZT1ubycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWJhc2V0ZW1w
JywgY2FjaGVfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1zaG93
bG9jYWxzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tdGltZW91dD0lcycgJSB0
aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLXAnLCAnbm86Y2FjaGVwcm92
aWRlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctcCcsICdweXRlc3RfdGltZW91
dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RdLCBwbHVnaW5zPVtoYXJuZXNz
X3JlY29yZGVyLCBzdWJ0ZXN0c19yZWNvcmRlcl0pCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgaGFybmVzc19yZWNvcmRlci5vdXRjb21lID0gKCJF
UlJPUiIsIHN0cihlKSkKKworICAgICAgICBvcy5lbnZpcm9uLmNsZWFyKCkKKyAgICAgICAgb3Mu
ZW52aXJvbi51cGRhdGUoX2Vudmlyb24pCisKKyAgICAgICAgcmV0dXJuIGhhcm5lc3NfcmVjb3Jk
ZXIub3V0Y29tZSwgc3VidGVzdHNfcmVjb3JkZXIucmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3Rf
cnVubmVyLnB5CmluZGV4IDVhYTNhMjE5NDk1Li4zYTM4MDMyZTE5OCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVy
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZl
cl90ZXN0X3J1bm5lci5weQpAQCAtMjQsNiArMjQsOCBAQCBpbXBvcnQganNvbgogaW1wb3J0IGxv
Z2dpbmcKIGltcG9ydCBvcwogCitmcm9tIHdlYmtpdHB5LndlYmRyaXZlcl90ZXN0cy53ZWJkcml2
ZXJfZHJpdmVyIGltcG9ydCBjcmVhdGVfZHJpdmVyCitmcm9tIHdlYmtpdHB5LndlYmRyaXZlcl90
ZXN0cy53ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0gaW1wb3J0IFdlYkRyaXZlclRlc3RS
dW5uZXJTZWxlbml1bQogZnJvbSB3ZWJraXRweS53ZWJkcml2ZXJfdGVzdHMud2ViZHJpdmVyX3Rl
c3RfcnVubmVyX3czYyBpbXBvcnQgV2ViRHJpdmVyVGVzdFJ1bm5lclczQwogCiBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCkBAIC0zMSw2ICszMyw4IEBAIF9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgV2ViRHJpdmVyVGVzdFJ1bm5lcihvYmplY3Qp
OgogCisgICAgUlVOTkVSX0NMQVNTRVMgPSAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLCBX
ZWJEcml2ZXJUZXN0UnVubmVyVzNDKQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQpOgog
ICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBfbG9nLmluZm8oJ1VzaW5nIHBvcnQg
JXMnICUgc2VsZi5fcG9ydC5uYW1lKCkpCkBAIC00MCwyOCArNDQsNDEgQEAgY2xhc3MgV2ViRHJp
dmVyVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9kaXNwbGF5X2RyaXZlciA9IHNl
bGYuX3BvcnQuY3JlYXRlX2RyaXZlcih3b3JrZXJfbnVtYmVyPTAsIG5vX3RpbWVvdXQ9VHJ1ZSku
X21ha2VfZHJpdmVyKHBpeGVsX3Rlc3RzPUZhbHNlKQogICAgICAgICBpZiBub3Qgc2VsZi5fZGlz
cGxheV9kcml2ZXIuY2hlY2tfZHJpdmVyKHNlbGYuX3BvcnQpOgogICAgICAgICAgICAgcmFpc2Ug
UnVudGltZUVycm9yKCJGYWlsZWQgdG8gY2hlY2sgZHJpdmVyICVzIiAlIHNlbGYuX2Rpc3BsYXlf
ZHJpdmVyLl9fY2xhc3NfXy5fX25hbWVfXykKLSAgICAgICAgc2VsZi5fcnVubmVyID0gV2ViRHJp
dmVyVGVzdFJ1bm5lclczQyhzZWxmLl9wb3J0LCBzZWxmLl9kaXNwbGF5X2RyaXZlcikKIAotICAg
IGRlZiBydW4oc2VsZiwgdGVzdHM9W10pOgotICAgICAgICBydW5uZXJfdGVzdHMgPSBzZWxmLl9y
dW5uZXIuY29sbGVjdF90ZXN0cyh0ZXN0cykKLSAgICAgICAgaWYgcnVubmVyX3Rlc3RzOgotICAg
ICAgICAgICAgX2xvZy5pbmZvKCdDb2xsZWN0ZWQgJWQgdGVzdHMnICUgbGVuKHJ1bm5lcl90ZXN0
cykpCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcnVubmVyLnJ1bihydW5uZXJfdGVzdHMpCisg
ICAgICAgIGRyaXZlciA9IGNyZWF0ZV9kcml2ZXIoc2VsZi5fcG9ydCkKKyAgICAgICAgX2xvZy5p
bmZvKCdVc2luZyBkcml2ZXIgYXQgJXMnICUgKGRyaXZlci5iaW5hcnlfcGF0aCgpKSkKKyAgICAg
ICAgX2xvZy5pbmZvKCdCcm93c2VyOiAlcycgJSAoZHJpdmVyLmJyb3dzZXJfbmFtZSgpKSkKIAot
ICAgICAgICBfbG9nLmluZm8oJ05vIHRlc3RzIGZvdW5kJykKLSAgICAgICAgcmV0dXJuIDAKKyAg
ICAgICAgc2VsZi5fcnVubmVycyA9IFtydW5uZXJfY2xzKHNlbGYuX3BvcnQsIGRyaXZlciwgc2Vs
Zi5fZGlzcGxheV9kcml2ZXIpIGZvciBydW5uZXJfY2xzIGluIHNlbGYuUlVOTkVSX0NMQVNTRVNd
CisKKyAgICBkZWYgcnVuKHNlbGYsIHRlc3RzPVtdKToKKyAgICAgICAgcnVubmVyX3Rlc3RzID0g
W3J1bm5lci5jb2xsZWN0X3Rlc3RzKHRlc3RzKSBmb3IgcnVubmVyIGluIHNlbGYuX3J1bm5lcnNd
CisgICAgICAgIGNvbGxlY3RlZF9jb3VudCA9IHN1bShbbGVuKHRlc3RzKSBmb3IgdGVzdHMgaW4g
cnVubmVyX3Rlc3RzXSkKKyAgICAgICAgaWYgbm90IGNvbGxlY3RlZF9jb3VudDoKKyAgICAgICAg
ICAgIF9sb2cuaW5mbygnTm8gdGVzdHMgZm91bmQnKQorICAgICAgICAgICAgcmV0dXJuIDAKKwor
ICAgICAgICBfbG9nLmluZm8oJ0NvbGxlY3RlZCAlZCB0ZXN0IGZpbGVzJyAlIGNvbGxlY3RlZF9j
b3VudCkKKyAgICAgICAgcmVzdWx0c19jb3VudCA9IDAKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo
bGVuKHNlbGYuX3J1bm5lcnMpKToKKyAgICAgICAgICAgIGlmIHJ1bm5lcl90ZXN0c1tpXToKKyAg
ICAgICAgICAgICAgICByZXN1bHRzX2NvdW50ICs9IHNlbGYuX3J1bm5lcnNbaV0ucnVuKHJ1bm5l
cl90ZXN0c1tpXSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdHNfY291bnQKIAogICAgIGRlZiBwcmlu
dF9yZXN1bHRzKHNlbGYpOgogICAgICAgICByZXN1bHRzID0ge30KICAgICAgICAgcGFzc2VkX2Nv
dW50ID0gMAogICAgICAgICBmYWlsdXJlc19jb3VudCA9IDAKLSAgICAgICAgZm9yIHJlc3VsdCBp
biBzZWxmLl9ydW5uZXIucmVzdWx0cygpOgorICAgICAgICB0ZXN0X3Jlc3VsdHMgPSBbXQorICAg
ICAgICBmb3IgcnVubmVyIGluIHNlbGYuX3J1bm5lcnM6CisgICAgICAgICAgICB0ZXN0X3Jlc3Vs
dHMuZXh0ZW5kKHJ1bm5lci5yZXN1bHRzKCkpCisgICAgICAgIGZvciByZXN1bHQgaW4gdGVzdF9y
ZXN1bHRzOgogICAgICAgICAgICAgaWYgcmVzdWx0LnN0YXR1cyA9PSAnT0snOgogICAgICAgICAg
ICAgICAgIGZvciBzdWJ0ZXN0LCBzdGF0dXMsIF8sIF8gaW4gcmVzdWx0LnN1YnRlc3RfcmVzdWx0
czoKICAgICAgICAgICAgICAgICAgICAgaWYgc3RhdHVzID09ICdQQVNTJzoKICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc3NlZF9jb3VudCArPSAxCi0gICAgICAgICAgICAgICAgICAgIGVsaWYg
c3RhdHVzID09ICdGQUlMJzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuc2V0ZGVm
YXVsdChzdGF0dXMsIFtdKS5hcHBlbmQob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShyZXN1
bHQudGVzdCksIHN1YnRlc3QpKQorICAgICAgICAgICAgICAgICAgICBlbGlmIHN0YXR1cyBpbiBb
J0ZBSUwnLCAnRVJST1InXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuc2V0ZGVm
YXVsdCgnRkFJTCcsIFtdKS5hcHBlbmQob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShyZXN1
bHQudGVzdCksIHN1YnRlc3QpKQogICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXNfY291
bnQgKz0gMQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBoYW5k
bGUgb3RoZXIgcmVzdWx0cy4KQEAgLTg0LDcgKzEwMSwxMCBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0
UnVubmVyKG9iamVjdCk6CiAgICAgZGVmIGR1bXBfcmVzdWx0c190b19qc29uX2ZpbGUoc2VsZiwg
b3V0cHV0X3BhdGgpOgogICAgICAgICBqc29uX3Jlc3VsdHMgPSB7fQogICAgICAgICBqc29uX3Jl
c3VsdHNbJ3Jlc3VsdHMnXSA9IFtdCi0gICAgICAgIGZvciByZXN1bHQgaW4gc2VsZi5fcnVubmVy
LnJlc3VsdHMoKToKKyAgICAgICAgdGVzdF9yZXN1bHRzID0gW10KKyAgICAgICAgZm9yIHJ1bm5l
ciBpbiBzZWxmLl9ydW5uZXJzOgorICAgICAgICAgICAgdGVzdF9yZXN1bHRzLmV4dGVuZChydW5u
ZXIucmVzdWx0cygpKQorICAgICAgICBmb3IgcmVzdWx0IGluIHRlc3RfcmVzdWx0czoKICAgICAg
ICAgICAgIHJlc3VsdHMgPSB7fQogICAgICAgICAgICAgcmVzdWx0c1sndGVzdCddID0gcmVzdWx0
LnRlc3QKICAgICAgICAgICAgIHJlc3VsdHNbJ3N0YXR1cyddID0gcmVzdWx0LnN0YXR1cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVy
X3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNDVjMWU3Y2MxYwotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0X3J1
bm5lcl9zZWxlbml1bS5weQpAQCAtMCwwICsxLDkwIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBJ
Z2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitp
bXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi53ZWJraXRfZmluZGVyIGltcG9ydCBXZWJLaXRGaW5kZXIKK2Zyb20gd2Via2l0cHkud2Vi
ZHJpdmVyX3Rlc3RzLndlYmRyaXZlcl9zZWxlbml1bV9leGVjdXRvciBpbXBvcnQgV2ViRHJpdmVy
U2VsZW5pdW1FeGVjdXRvcgorZnJvbSB3ZWJraXRweS53ZWJkcml2ZXJfdGVzdHMud2ViZHJpdmVy
X3Rlc3RfcmVzdWx0IGltcG9ydCBXZWJEcml2ZXJUZXN0UmVzdWx0CisKK19sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBXZWJEcml2ZXJUZXN0UnVubmVyU2VsZW5p
dW0ob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBkcml2ZXIsIGRpc3Bs
YXlfZHJpdmVyKToKKyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5fZHJp
dmVyID0gZHJpdmVyCisgICAgICAgIHNlbGYuX2Rpc3BsYXlfZHJpdmVyID0gZGlzcGxheV9kcml2
ZXIKKyAgICAgICAgc2VsZi5fcmVzdWx0cyA9IFtdCisKKyAgICBkZWYgX3Rlc3RzX2RpcihzZWxm
KToKKyAgICAgICAgcmV0dXJuIFdlYktpdEZpbmRlcihzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3Rl
bSkucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdXZWJEcml2ZXJUZXN0cycpCisKKyAgICBkZWYgY29s
bGVjdF90ZXN0cyhzZWxmLCB0ZXN0cz1bXSk6CisgICAgICAgIGlmIHNlbGYuX2RyaXZlci5zZWxl
bml1bV9uYW1lKCkgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiAwCisKKyAgICAgICAgcmVs
YXRpdmVfdGVzdHNfZGlyID0gb3MucGF0aC5qb2luKCdpbXBvcnRlZCcsICdzZWxlbml1bScsICdw
eScsICd0ZXN0JykKKyAgICAgICAgZXhlY3V0b3IgPSBXZWJEcml2ZXJTZWxlbml1bUV4ZWN1dG9y
KHNlbGYuX2RyaXZlciwgc2VsZi5fZGlzcGxheV9kcml2ZXIpCisgICAgICAgICMgQ29sbGVjdGVk
IHRlc3RzIGFyZSByZWxhdGl2ZSB0byB0ZXN0IGRpcmVjdG9yeS4KKyAgICAgICAgYmFzZV9kaXIg
PSBvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyKCksIG9zLnBhdGguZGlybmFtZShyZWxhdGl2
ZV90ZXN0c19kaXIpKQorICAgICAgICBjb2xsZWN0ZWRfdGVzdHMgPSBbb3MucGF0aC5qb2luKGJh
c2VfZGlyLCB0ZXN0KSBmb3IgdGVzdCBpbiBleGVjdXRvci5jb2xsZWN0KG9zLnBhdGguam9pbihz
ZWxmLl90ZXN0c19kaXIoKSwgcmVsYXRpdmVfdGVzdHNfZGlyKSldCisgICAgICAgIHNlbGVuaXVt
X3Rlc3RzID0gW10KKyAgICAgICAgaWYgbm90IHRlc3RzOgorICAgICAgICAgICAgdGVzdHMgPSBb
cmVsYXRpdmVfdGVzdHNfZGlyXQorICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAg
ICAgIGlmIG5vdCB0ZXN0LnN0YXJ0c3dpdGgocmVsYXRpdmVfdGVzdHNfZGlyKToKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgdGVzdF9wYXRoID0gb3MucGF0aC5qb2luKHNl
bGYuX3Rlc3RzX2RpcigpLCB0ZXN0KQorICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcih0ZXN0
X3BhdGgpOgorICAgICAgICAgICAgICAgIHNlbGVuaXVtX3Rlc3RzLmV4dGVuZChbdGVzdCBmb3Ig
dGVzdCBpbiBjb2xsZWN0ZWRfdGVzdHMgaWYgdGVzdC5zdGFydHN3aXRoKHRlc3RfcGF0aCldKQor
ICAgICAgICAgICAgZWxpZiB0ZXN0X3BhdGggaW4gY29sbGVjdGVkX3Rlc3RzOgorICAgICAgICAg
ICAgICAgIHNlbGVuaXVtX3Rlc3RzLmFwcGVuZCh0ZXN0X3BhdGgpCisgICAgICAgIHJldHVybiBz
ZWxlbml1bV90ZXN0cworCisgICAgZGVmIHJ1bihzZWxmLCB0ZXN0cz1bXSk6CisgICAgICAgIGlm
IHNlbGYuX2RyaXZlci5zZWxlbml1bV9uYW1lKCkgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVy
biAwCisKKyAgICAgICAgZXhlY3V0b3IgPSBXZWJEcml2ZXJTZWxlbml1bUV4ZWN1dG9yKHNlbGYu
X2RyaXZlciwgc2VsZi5fZGlzcGxheV9kcml2ZXIpCisgICAgICAgIHRpbWVvdXQgPSBzZWxmLl9w
b3J0LmdldF9vcHRpb24oJ3RpbWVvdXQnKQorICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAg
ICAgICAgICAgIHRlc3RfbmFtZSA9IG9zLnBhdGgucmVscGF0aCh0ZXN0LCBzZWxmLl90ZXN0c19k
aXIoKSkKKyAgICAgICAgICAgIHByaW50IHRlc3RfbmFtZQorICAgICAgICAgICAgaGFybmVzc19y
ZXN1bHQsIHRlc3RfcmVzdWx0cyA9IGV4ZWN1dG9yLnJ1bih0ZXN0LCB0aW1lb3V0KQorICAgICAg
ICAgICAgcmVzdWx0ID0gV2ViRHJpdmVyVGVzdFJlc3VsdCh0ZXN0X25hbWUsICpoYXJuZXNzX3Jl
c3VsdCkKKyAgICAgICAgICAgIGlmIGhhcm5lc3NfcmVzdWx0WzBdID09ICdPSyc6CisgICAgICAg
ICAgICAgICAgZm9yIHN1YnRlc3QsIHN0YXR1cywgbWVzc2FnZSwgYmFja3RyYWNlIGluIHRlc3Rf
cmVzdWx0czoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZF9zdWJ0ZXN0X3Jlc3VsdHMo
b3MucGF0aC5iYXNlbmFtZShzdWJ0ZXN0KSwgc3RhdHVzLCBtZXNzYWdlLCBiYWNrdHJhY2UpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgRklYTUU6IGhhbmRsZSBvdGhlciBy
ZXN1bHRzLgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHNlbGYuX3Jlc3VsdHMu
YXBwZW5kKHJlc3VsdCkKKworICAgICAgICByZXR1cm4gbGVuKHNlbGYuX3Jlc3VsdHMpCisKKyAg
ICBkZWYgcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90
ZXN0X3J1bm5lcl93M2MucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0
cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfdzNjLnB5CmluZGV4IGVjNWQyZTQ4OTMxLi43MzRhMmQw
NTQ3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMv
d2ViZHJpdmVyX3Rlc3RfcnVubmVyX3czYy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfdzNjLnB5CkBAIC0yMywxMiAr
MjMsMTAgQEAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKLWltcG9ydCB0
aW1lCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxl
U3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi53ZWJraXRfZmluZGVyIGltcG9ydCBXZWJLaXRG
aW5kZXIKIGZyb20gd2Via2l0cHkud2ViZHJpdmVyX3Rlc3RzLndlYmRyaXZlcl93M2NfZXhlY3V0
b3IgaW1wb3J0IFdlYkRyaXZlclczQ0V4ZWN1dG9yCi1mcm9tIHdlYmtpdHB5LndlYmRyaXZlcl90
ZXN0cy53ZWJkcml2ZXJfZHJpdmVyIGltcG9ydCBjcmVhdGVfZHJpdmVyCiBmcm9tIHdlYmtpdHB5
LndlYmRyaXZlcl90ZXN0cy53ZWJkcml2ZXJfdGVzdF9yZXN1bHQgaW1wb3J0IFdlYkRyaXZlclRl
c3RSZXN1bHQKIGZyb20gd2Via2l0cHkud2ViZHJpdmVyX3Rlc3RzLndlYmRyaXZlcl93M2Nfd2Vi
X3NlcnZlciBpbXBvcnQgV2ViRHJpdmVyVzNDV2ViU2VydmVyCiAKQEAgLTM3LDEyICszNSwxMCBA
QCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIFdlYkRyaXZlclRl
c3RSdW5uZXJXM0Mob2JqZWN0KToKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBkaXNw
bGF5X2RyaXZlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIGRyaXZlciwgZGlzcGxh
eV9kcml2ZXIpOgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAorICAgICAgICBzZWxmLl9kcml2
ZXIgPSBkcml2ZXIKICAgICAgICAgc2VsZi5fZGlzcGxheV9kcml2ZXIgPSBkaXNwbGF5X2RyaXZl
cgotICAgICAgICBzZWxmLl9kcml2ZXIgPSBjcmVhdGVfZHJpdmVyKHNlbGYuX3BvcnQpCi0gICAg
ICAgIF9sb2cuaW5mbygnVXNpbmcgZHJpdmVyIGF0ICVzJyAlIChzZWxmLl9kcml2ZXIuYmluYXJ5
X3BhdGgoKSkpCi0gICAgICAgIF9sb2cuaW5mbygnQnJvd3NlcjogJXMnICUgKHNlbGYuX2RyaXZl
ci5icm93c2VyX25hbWUoKSkpCiAKICAgICAgICAgdGltZW91dCA9IHNlbGYuX3BvcnQuZ2V0X29w
dGlvbigndGltZW91dCcpCiAgICAgICAgIGlmIHRpbWVvdXQgPiAwOgpAQCAtMTEwLDggKzEwNiw1
IEBAIGNsYXNzIFdlYkRyaXZlclRlc3RSdW5uZXJXM0Mob2JqZWN0KToKIAogICAgICAgICByZXR1
cm4gbGVuKHNlbGYuX3Jlc3VsdHMpCiAKLSAgICBkZWYgX2FkZF9yZXN1bHRzKHNlbGYsIHRlc3Rf
cHJlZml4LCByZXN1bHRzKToKLSAgICAgICAgc2VsZi5fcmVzdWx0cy5leHRlbmQoW1dlYkRyaXZl
clRlc3RSZXN1bHQodGVzdF9wcmVmaXgsICpyZXN1bHQpIGZvciByZXN1bHQgaW4gcmVzdWx0c10p
Ci0KICAgICBkZWYgcmVzdWx0cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRy
aXZlcl93M2NfZXhlY3V0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90
ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5CmluZGV4IDk1M2EwMDUwZmUzLi40ODA0YjJl
Njc1NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMv
d2ViZHJpdmVyX3czY19leGVjdXRvci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dl
YmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5CkBAIC0zOSw3ICszOSw2IEBA
IGRlZiBfZW5zdXJlX2RpcmVjdG9yeV9pbl9wYXRoKGRpcmVjdG9yeSk6CiBfZW5zdXJlX2RpcmVj
dG9yeV9pbl9wYXRoKG9zLnBhdGguam9pbih3M2NfdG9vbHNfZGlyLCAncHl0ZXN0JykpCiBfZW5z
dXJlX2RpcmVjdG9yeV9pbl9wYXRoKG9zLnBhdGguam9pbih3M2NfdG9vbHNfZGlyLCAnd2ViZHJp
dmVyJykpCiBfZW5zdXJlX2RpcmVjdG9yeV9pbl9wYXRoKG9zLnBhdGguam9pbih3M2NfdG9vbHNf
ZGlyLCAnd3B0cnVubmVyJykpCi1fZW5zdXJlX2RpcmVjdG9yeV9pbl9wYXRoKG9zLnBhdGguam9p
bih3M2NfdG9vbHNfZGlyLCAid2ViZHJpdmVyIikpCiAKIGltcG9ydCB3ZWJraXRweS50aGlyZHBh
cnR5LmF1dG9pbnN0YWxsZWQucHl0ZXN0X3RpbWVvdXQKIGZyb20gd3B0cnVubmVyLmV4ZWN1dG9y
cy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciwgV2ViRHJpdmVyUHJvdG9jb2wKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZyBiL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZwpp
bmRleCBlMDg1MTRiNTJiNi4uM2M1YzFhOTE3MjUgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3Rz
L0NoYW5nZUxvZworKysgYi9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxNy0xMS0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgV2ViRHJpdmVyOiBhZGQgc3VwcG9ydCBmb3IgaW1wb3J0aW5nIGFuZCBydW5u
aW5nIHNlbGVuaXVtIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODAxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL2ltcG9ydGVyLmpzb246IEFkZGVkLgorICAg
ICAgICAqIGltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi86IEFkZGVkLgorICAgICAgICAqIGltcG9y
dGVkL3NlbGVuaXVtL3B5LzogQWRkZWQuCisKIDIwMTctMTEtMjggIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBX
M0MgV2ViRHJpdmVyIGltcG9ydGVkIHRlc3RzLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uLy5jbGFzc3BhdGggYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uY2QzNDAwOTJjMmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vLmNsYXNzcGF0aApAQCAtMCwwICsxLDUgQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Y2xhc3NwYXRoPgorCTxj
bGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcu
SlJFX0NPTlRBSU5FUiIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJ1
aWxkIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9jb21tb24td2ViLmltbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9jb21tb24td2ViLmltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMTZiZDNiM2Y3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vY29tbW9uLXdlYi5pbWwKQEAgLTAsMCArMSwx
NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxtb2R1bGUgdHlw
ZT0iV0VCX01PRFVMRSIgdmVyc2lvbj0iNCI+CisgIDxjb21wb25lbnQgbmFtZT0iTmV3TW9kdWxl
Um9vdE1hbmFnZXIiIGluaGVyaXQtY29tcGlsZXItb3V0cHV0PSJ0cnVlIj4KKyAgICA8ZXhjbHVk
ZS1vdXRwdXQgLz4KKyAgICA8Y29udGVudCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dl
YiI+CisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2Vi
IiB0eXBlPSJqYXZhLXRlc3QtcmVzb3VyY2UiIC8+CisgICAgPC9jb250ZW50PgorICAgIDxvcmRl
ckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPgorICA8L2NvbXBv
bmVudD4KKyAgPGNvbXBvbmVudCBuYW1lPSJzb25hck1vZHVsZVNldHRpbmdzIj4KKyAgICA8b3B0
aW9uIG5hbWU9ImxvY2FsQW5hbHlzaXNTY3JpcE5hbWUiIHZhbHVlPSImbHQ7UFJPSkVDVCZndDsi
IC8+CisgICAgPG9wdGlvbiBuYW1lPSJzZXJ2ZXJOYW1lIiB2YWx1ZT0iJmx0O1BST0pFQ1QmZ3Q7
IiAvPgorICA8L2NvbXBvbmVudD4KKzwvbW9kdWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL0Jpbi9JbnRlbGxpZ2VuY2lhLlVybFJld3JpdGVyLmRsbCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL0Jpbi9JbnRlbGxpZ2VuY2lhLlVybFJl
d3JpdGVyLmRsbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWMzMGUzNWEwYzFiNmY4ZjhkZjRmODQwMjhhNDY1ZTU2
MTRhNDAyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NzM0NAp6Y21lSWJkd2k2fF4qP0B8WFla
UzIkdEVFb2tkUkc0U1JlXk9QeXM9PzFTRk9GT340Qiokd0gjWks0RXUqMU8mcyEKenMhKHN4VEMz
SjctZGU0O2x+IUE9K0c9WWwpPVJaJllnQEZvVWFHQ0Z3emMydHctPitmYjdyMzFYRSNDbF8wIU1x
CnpgXlB0JSpQZmotYkxQeU1HaVBTYiVybm5xKFlrJSlBfGZ9d0FBVSU1S1lzWiRPVztSP0p8dUB+
ejgjYF8xNWVmNwp6WiFDUE9jNGQxPEQkPD5fSFlhMFVrPTlydVZXbEcqPEI/PWZCR1FxRkclcn5a
PjlYNDVqWVVQbChWRiRyY3w7MmgKejd5YlJtUHRMYlhkeGIpXjEle1hDOT5oZGM/MDI1aDthM0M/
T01KMUNuYDJtaGA5dXNOI1BiTEJMTnBNOz9jWXFZCnooNm9jXjNKJCRPKVNZMT5OZzViYj10UGUt
OTNrPk1YI0t6IUlQa2BGZHxNaiRWX3lNNG4kJVV4NE5OYH1xNzlBNwp6UkkoTUEkbzJ7WE8hRWw3
aj9YTUtTN1MyWFhAT0E1cyYoKjtnOXQmOyZCPWAhIzBFN21zRFZLWjN+RkZkMUFgaEUKeilXRHp5
MX5vOUtmazYhbllUKkFCNElKUWdIOW92SEhTdH11Mn17aClMfDgkfVhUak0tTUZFVyohJXUwR05z
fjA0Cno4NygwU3gqN19TO01TY2cxK3ZgQFkpQSQoVHwxSEZIcitjPnd0R0RDbHtPalZ2LTl1WiNQ
TkE/aW42ckhPPUM0Mwp6bW9PczMoYEFofCRaSk5pYFVrfDQtZk5ZaTxafFg/UW5rJUhINThGTWQ1
Z2VRS35URHQjUW8qcXcwdD1APnYkUmcKenAxZzRaTnlCQ29EfUp3NDQjdEhPRCphWGswJT5HNWdJ
PD9+P0Y/XiZ5Uyg3I1lRSHJNMkBTdGBJcWRJJnMqSXZRCnp5KkZUMEJKTjFWYztFT3E4Q2NfK1Nq
aXRaaU5ZK2RMMzdFWEY2eVFqPmZvWVBoPVVmdzwtck5GJV90aGo+JFFkPgp6ZGs+ZFk7SHdZI1JC
YG4rSWpQOEU3VyFRbE1EP09mR2Nldjt1X2chfEYkVzZAMz82P0ZUSC1iXkRaflppcWNubmMKekA8
P15fK0NvTExPY05BMjwrWCh3RW4/PGxxKHdMd3NZbWgwbi0kfUFkKVJ2YFg1PSRTaHl3TUY9a2x9
aCpCPlNSCnp2cXk9KWBZNz4jJjU1dGxAQDghbUhQQU1TK00+MUdraSUoPDV7M0dFQ15+Um1UYG5e
VXF3LXFnUUNuKlFnSWEpYwp6c2dJcFU4eWlnQVpNdmNgT2ZQSDlRTVArMGpFS3VOWTNoTEdBUjg+
cUpJMzY+ZyFNKFBOQ1JwbkR4T2ZfaVp0M3QKeiNyUnk/Z29YVUtaOE8lLUhzZj9ZQzg+a2I2d2s4
X3VBPUk1Q3xOJGI/bDNwST8mJGJJQXJxVSF4Uzs0VkhCXmJZCnpeJShnZHNFNE90SipKX1Q2O3NM
X1g5bmA+IVEhZlZeZEh3fFdeOUpYSFM4bTFFdlNITj5EfiFETSgrR15qVDdfNwp6NkdoMj1zUykl
VFVCYkQyJCY1eCZiMkN+Q24xY0JSZ0R6Xzw/OHxGbU95bDhBYmw2fFVeRDxLUDgrKnxxU3d7NXIK
ejBjN09GZD5JdWJfa2pqIURhZV5PX0t0IT9XXl49VUx+bDVibkBWfkU4Y2pxTDhCcWlJV2N5eEVN
bitoN0F6MTgkCnpFb2hsc2JSd3VSd0JfbDtXcFA9X2k7Pmw7VlJkLXhPVXhhZCYmISQkVDE4MGFW
TWZhUW5Fczl0bTswUUhqdnUlegp6bSRgI1VSQXArd0lPeWV1MnNaZTwoS2BIJnVhSSl3MVZsYXEq
UjNLbzNkQjF4cyZuT1gjfV5nSntUYFpFSlkzTngKelhmVFM9ITMlUUd5Q3xaUF43TCotPnNqTWc5
VkR9JHsyPVAkcmZIZnNgMzMwNk94XzhZYH5kKkJPRUNGRU14T3clCnojeFZNME14VjNNRENYOW5E
JH1JP3k4QWlrKU8/UHk1fGd8ZHVoN1d5JCtaYnsyTlMzbnNyK0F0KVozSWNXbnl5fAp6TSNrVnlf
eSh7PHNWVjNGZHhrJlR0a1hKI3ZZK2xhSktMJkA9N0ZjQEQ3SW9vcj81ZTRWfkhyR2Q5ODV9cHVs
SD0Kelh8Tyl2QD4lMWNNNHEyQWI3QkFiPVNZTXgtO0pAPk9gUndrdnFZWXFubWFKY3lCajglI30j
bj5mKkshWXFKdjxCCnpTMktrKzQ1b2I5PWl9QjQ5I01vWUU1ZVArTEklOzlsI3N4K2tqaHNXTnAt
VzcrcUFsYGVhSU1FLUZINDx1Nj5EXgp6cTliVGFLQmxXSUl1dn07RmlKQno5a003TG97M2I5LWNr
PncrYno4VigrPUE0ZTNsdkFLVWlPQkktQFhaMT05Z3wKekU1UWxGI0dedEB2cEt4aE01TXorVmJR
QGNzKz4kOyhSOUtUZU9UcW5ARWMjSVozY0Z2PFc2Q2YzK2BreCl5KldgCnpNZzhncCEjMU8qPXoy
TVE4dVc2RW8/NFYjSncrIVlqcGcmZ3BfNkFnVkthc0hfVT9xJjI0N0slaE89aDdqaE5pRAp6NmxQ
N1I7dEdRbTs0Tm9NM3RBXklJMSEtSUl0bE89Wj9wdkotVSRPbD9pdEp6VVlGYjQhNyVsQykrO3hI
I3Zqa2EKemB8fEp5XjY+QkU7ckhnQFUoM1Y0cE5EQGM1NUZvOHpjQ05MSDRuY2RnUXJlS2EzXntW
cz5VI05ESk85fFgjQkh6CnpJTDQ9KF5zbmFPZC1ISU5UQURzfTR1VSV8MGlxfnxzaEBKdlNwWFd4
TlJAKmgkLXtxPmhkK350S2JPSCU9JlpxPQp6QlQpIzxFIVNwdHVvMUEkSVE+TyMpY2lPV0YrWXdx
bHBufFRsXkA2RSQ4bCFueGd5NDFpT2VsbU50aGVRN05fYE8KemUzRE9VN0FsNXt1eTNecEczZERB
PXJxKURSfEs/ZGhydTR5M1FMIVUkLUEoU2FxSDNSQ15YKmFMaHVWXyN4OXchCnopWXZxZEJGJD1T
KzdoXnQ+UytvRkxEcncyOT5pfUQ8dDh6YWNTbGQ9QjhQRElESiQ/PUdrXyZlSylmeypwK2JOQwp6
VEpGZH0zI0p3SFRlQ1BnOD14bzxoNGZ4NWRacTxaYX1aSkwmUHdQRHlRNmJDJlFzI1M1WFlaKVBt
TU1zVyo0VDMKelV9YyMjQTN0TSE0SlVie2k8eWZmWXVQZDdSUERqTTNzNFg3JWBoeWNQNkp5a3Rn
SHEyXjsjYH0hay01K1prSXc0Cnpnfno2NENeZ00kN0puYkRCJWMlcHg/bXFHe1RXVitlZ2RkPEk+
JHZhP1RHUE5LSzF9TzAoMEw7M19qbztIWmY8Twp6bmk7bl95RWtaQlhyUTE0V2QjZVRxRW5Ed3Aw
ZEkqYEp3djNpZGx+JC1lKWFBSUp0eklXR089Umc+WjNKZ1QrKkkKemNzdXBIb1lZbUVkVH09T3Mh
WnhLcEszXitNSiFZbjZEK3VgMXBTMEhJX2MofHF+KUE2UXp6WSpOdCVGTUQ+JGk2CnppfShGWjV6
TyFtUFZ5bkoxXzhDYW8/aTlnaGFWMkchdUYwfFcrPU9pKEMtVjNGcj1tPD0tRVZYNypgYzhHdVV0
MQp6MSswa21zRCNmKmhgdng9ckgxJUllfGVKUVp9SDJKWmwpbDNhSnlEQUJuXzVOczs8bkV2UE49
QXk8KT5ee19SMSgKejw4XnpYJVl3T2plS0xOYlo/WWBDa1JfQ3JDOExyJlN2V3FvZlBZdChoPzJ6
ek0ranl0e2d+eXIwZGx9cllASzhwCno2bW1xZ1BEPFRqY1heVWlaYjhUNm5Ra0RwTTZfQkl3SjBX
KytOcWZXVWteR0xifWQqcD0teX50ajcobCU1NnxxXwp6ISQyJiRHaj5sZkhoQUhLeHVfTCM3S0B4
MmRvUCRVJjhQTmFXT1ZUPVcxbD9RdDFTSUYyJl5vPCNLaz1wM28wMEIKeigxS05DWSoyZU8tK2Vq
a2xmND45MHZSZmliWXkmSDRMTlVfK05VfCtOWVQ5KnU4MXhmI3lhfjZMTkc4fVhSbzZtCno9Pit8
QiN3cT1EQ0xgY0djQWYlbGozM3ckZ30jUFN7eWcxdFZqaUVlQjQyJmY9UUs5VjReVWwwTy0oXyRj
cWBJVQp6RGZJQipiflVpM0hiNG5RRSg+RU1iVEpERitgKXBFVj5CPVY3UD1UTzNgU3JMSTElRndo
QU8qJD1rZWwhSjkjaioKejc3ITk9bnhORCheJEF2bkMpKkIlZW0mQFg5U01IYjZvelJ4I2Y1Jj1f
WDNDIW97JV9XWFdwPjRKanA0eWdxMjY3Cno/TSZ3PndlenJ2PD5saEV5ajtHMylHX1JxQThRPiVw
SE4kJmBmZSF+ckcoNE5ne29sZzROZjEmIV8zZ0lOMzVnTgp6N3h2WlRzfC1aLVd+RCkyPkxxQVhi
P2p6KVVWUGEhaE5BTkw5SFFGYCZvKFptJENfRU1LSXBYKytBND5TJTBfUkIKemJ9VVNnbkNQWSoy
RTkpPDhCNSgkdUxUMGhGO0BofGktJVVYZnZqTy1QV1B8MWA8eTUyTDNQZHQjVnVpdnZ5MXZJCnoz
XmJDQiZDV1UjcG5PdjhGcys1N1hFUjthUiVBcTE0Nyskak1wcnh3ZEI7PSlDbG8/MVFQRWpTTVEp
YGNYY1F7KQp6RGl3SmZHTWVUeFI3TFlkOD9WUmZJPWJzQTVgQ1M4ZnI8T3JVQWAkWXBQRyF+PEI+
N2I7ZSpOa0d0YXBMdFBRNTIKejgkPTsxTW1TRWRSVi12KCU+JW4kLVI/ajwpO3YjdiZMdH10NmUw
QW1kLTw0fXE3ayowYWE/M0R4bkhQc3dQMFgyCnpfRWU0aDFGZm1LXkpkbzZidik1Q1R9MVFBVH5v
V240PkVUIW5SUGFiMX0lRTByZDJaanJ9MlVHYGt5VyVwSWBxbgp6eHFtIzFkWH5aTkwrJUQrSlMo
T1d5Km00TlZOP2JTeHdRYH52eElkSDZqa2IoRnkwPTljb0hlVlVPOE1CRjkhQSEKelByYzkyJkUr
azBgO3s1JVVmJUZqd3V8VDN1Z2g4d288JFNwMW9XaEdkX2F3NCg7JFBJUjNjYDs/RnFTfmE0T0lf
CnpIbjBlOFNIT3hQRmVkQ1NudDxWbEJRZEBgJG5CPWFoNzsrZUVAa1Y3aklINlpwMDZUPj9YSkgq
YV5vJlVBPEQ8Sgp6e3J1IT9ORnB8QSRuemNNcXhRdEl4Vj85XjR7N0xOdmhMNFNYLWhfPkU7VE8w
KVJicVE9WkEyLV9DczlDQyg7PSgKel57TmE3ejhvaXQ8OHczVTBhSGZmNnVQIzA5c3UqRUBfdz51
PTRVYFdTdG5vKnV1JGJzanBkd1c9b2JVJiUlcVJ4Cnp3fE19NTwzNVU/dnkxYFNweSVWO3otfCt9
LUJNNXRKNzJsLTU1Umx4enJubE09SXpHTEpyUVApeWYqTE8lSnVWPAp6VUpHPjZYS1dScjt9clJ7
PDFtQHxZSHpTOFBAWkk+VExMb0FYbHZsRG9WKz89cT9HKkBfPWB5NlB4N1l6Ynk3QigKelo/aGcr
MUE1RmRkR2huRlZiKjUjRDNIUk0kcVZfSHB1cHRxQ18qfURwJFNqZGp9KlZecXJrOGhfSWpoJjFO
emBvCnpkZ3otZDExPXhAOVBhSHdTcU56X2F1KVgpeDZJUFlveiR+KntmX2NOSnhPfmVqSWpxQ19H
T0MjVWJvRGQ/NDhzWAp6UjF+QH1QcypIVzQ+ciNwV3c3eCNqSXJHa18heVdoU3NINjJ6JTV+KWIy
OWhKaCFYVHBLTGF4X3clXnM1YXVROEcKelNCKXRLT35rcz1wdERoX2YkaSZLYG99bHkjJmA1TE9u
XnU0WnkoYj85X2A9V2M3TVBDQVJpbUlaNnBROWBrNEMxCnomO0plSEZ2KC0ke2ZCPnBIeWtefmAo
eWZFa3Q7aTx7cn1NUyZeUDJgTWg2JlVZOVB4byVeQEU4Rkt+Zno8QEhCQgp6WHEwQntDaE0yV3Mq
ekxkbTVVeEtEKHM8VmxDMjN8MkM5KUppZSs5OXlGfDBfPDRhLXVAKW50eFI4Zz9FVHUtJmYKekdJ
cXs4X0lrTjZ2eUpGaXVpU0NRU3haPzVERkh2ZXN5Z0U7dHwoX0x6fkU4OFU5SC1aPU9JP1A2N0ZH
ejZXVm1fCnpqJTtqMjtlXkZIX0Z8NTAxQmR6PEJaa1pCUEx8bSE3NWM0Nkc2ZSN8Z2U/TTxOIz5O
TmRMXzMlZyRnVWhWJEpBSwp6PzcoQSZXQm1SY1NSUndUeFR5I0JhKlJJNVAyajMkYDNBRld5akkl
Mz1+JmRETSpaaWEwY2AoJnJZP0Ame29rKCgKenJqYEcyVH0rJWY4T1l4bihCOGsyK2Irc0BXWG04
YEQzWTxnKnlGWkx5IzR5LT1RWjhPJXNhQ0EhVFo2RWRGTXBWCnpkVVFWeih9YUFZYWIkQkBuKmdK
bTBxbk5WJG57ez5YMHYwVj9WRmZ0ZzluQHhwSitRK1NuIT90XkxnUTtfKztsbgp6U00qJVRvdWl2
cWsyTnAwVEpuOVNLWWRoUTdzMX07IV5APSlMOF9LWnU0cEckcT5Ea0tLaEZZcHJYTFRhNklxT2QK
enQ2SkZOWCNAPEImbEJKUUdAZHJGWntmOzUlaWg3VUYzWFpxXjhBaCtvS2RhQUtWSHU2eyZINCls
JD0/ZStZNH5zCnpufWgya0ExJUIyRllnQzFxPzh3eXgpYlh9RXgjbDA0aShGNWE9NmQoUUJOZWN1
PTB7RClLU3Q+QUNaPX0oPXY4Pwp6M2JRKkVLPXhDI2VMM3Q7KGxLZng5WGxfWGJvOHtXTyFBT2Mk
JjxAaDwtLW48JmdhVlBRPmVOfnh8e2NjbjFKZ3UKelEyeTxpe01tQ19GMiFJeV9lTzRhXnFqMGIp
KCsld3h2ZExxek9GcEpsNVh2RUBFdChNeUV5cU1JPT04RCgpdkNrCnpaTVU3KSZ6NGFXb0tvN2tB
ITdAc29YZz0jRFZ1UypxczZlNnBfN016T3NMKDg4YSpJNEd1cztxOyZUKlhHZFQqegp6biM1NShi
cXU0SiU7WGd1XkZ3Rk0/PlZOKGxjbE0rO3RZN34xLXxse2hBO1JtSTlWNzF1azVJcDYhRGZ7WihS
ZzUKejhVZ1RESUZNOFVxI0pLJFEmVH5YZkU/VUQ9I0JDKnFhbm4pcSQ9ZjJyOHR1PzFoXyl+VyU3
OXFLRUxNZDJWNklgCnokQi1FbGM1S2piRT9HfWpiM0hONiV0UXRCSTBOam8zfSN4TjxPO2F0cnZV
WnZVRD9yQ1QydGlRa0goJSVhQz4+LQp6Z2tmSSlleEhCO00wNG5QNmBGKnpnWl8jJmc/ezhhe3hg
ZlYkWG1teEZgSihTcHlTYTwkZyZGdEAzdC1sTkJzfn0KekJGeExAcWJiISVoR0VWYS1wV2czVEVS
aHZ2QWZVfSs9Pz1+MmwzV2tmU2Bqfm9vbVFHX2pFLSsxJlorendkTS1iCnppWj1EXjZaQDZeZ1Q2
WVBXNGFeNGBtWWh+NlVwe3E5fUFkViFSPFcteGxAK2BebGB+fmRkfT07eTZINkoyTV5mTwp6NHwh
K2hhXng2aFQ+OzI7RnwyVnxAO1khY3REUCNuNX48czU2UzNfRU5BMUthTn1HYW11OVU/eHQqYiFW
RmY5MkUKejx9dEQjNTBeQD5PI1Q0cnU5YHFVZiskd1NMRE4tVVVnajw8RTNAX2tRfClCKDkqJXJt
SEk+JDlnZXJQOWVxN2RQCno2JXFGcFhpKDg0YEhfTWQ5UyNZdFluVjl0SVk1Y0V1SHtAd1VXdUJ+
NXFTaSVLMi0haTwwP2R9S3V9Pl9tdTExeAp6IWF9aWhTPVYhIzF3U04rbyRUYzZsQj8yWTMqbVgo
JD1KSmYxTChNSW9OLV8xOX5acSokQU9XcVEqPUpVIXEzc0MKenFCalgwPz0/KXRJd1FqRXM/SjRX
VjA0PWktdHlteCE0cyFPNHVFcCF1NTlvXjNFc0BIZUg7YE0hR01HQG54fHE2CnpzY3pHPVFgbSZ1
SjI3eSRMbXVsRWtRWXNlMWtgZl9GP0RrWEd4ZGYlPlVAK09uR1VGalVvWEJ+N0VwV2x5a21pZgp6
PlQyJms8UTslZGYjVHh9O1ZDQX1HazdkfmU0NVgzNHRXWHtBQWJtMk9TZHdnK3d6el9IP1VDU2pW
U0R3SGQ2aFMKenloWTY2RkhgK2I/ZUwjeihrTWdYRll6QT1KVXxtXkc8ck10JXw4YWQxOGohSURF
Tkl+K2BkSmVqRX1qNGI/MzcxCnpZXkp9anlAUz1QPzdeP2QyfjhsOHhubjF7THRkWDJ6MzBicXRM
RGRYYH1acURCNkd7PTh6MyljcFo8OXpsRTxRdQp6RSVPZXM4YShLKlpQWnpSUElGbGVuZmVjTyZq
MHU1SGAkR05wViE4cTRVQjFRa20lY3hNOW8xbkBhdS1IdnJqcSEKekp6ZUVBY1FDMi04YXhSY3A1
VCRGVnA1P3VJU1MwOHcqeTEzQUIhKiFsPkA9dDxmbHN3O14jTUVvJTQwJU9nNFpkCnpJU0R8PmZ+
R2YkcDUtLWhFSihQJjNtUDUjWjhyRilaMUIoNzs5bjMtO2NTSnMhMVA2VkRUQUxXPmdOUmg1c3A2
Vgp6SUUxWT9MRjx6ZmQpe2FwPGVUO18pS1I1SF9DZEBVVSZgV3E1YE4rYGF8ZiUwUG9qOGhOezdq
czlmdTFYUmtfN3EKenAqWlNvYSg+STdNVk4mMCNATDArOE5zKVpGcm5BVXU8WTB3PlJKZSstIVk+
bWh1RnNsUH5jPH5JQU9SaHhuNjVxCnppRHElcE5JNE5DezchX007Rkl1S1NaVWk0bllRS2lWfE1s
N1BKTk52R1g8VVNYM2liPmRBNHhFWG4pUDwkO0NkPwp6PCZEbHttRU1WSDlQYVIyVXEtO0RAPDtm
eGlwa0lXdGgqM3YtMz9JbWErJDlsJUNBS0RoX0BiKHR8YiYwS2Z8Y3YKemFiTyVaY2t5dX00dihV
aD1jX1F8PmdsVVJodUkpQSZsTyR0WkQ2Q3N1QjNAKHFtSUZIPzlJcWlSfiFRdmoqe2VeCnozcTFZ
fDFvUyU+Sk0wNyMxQFoyU2RmfW9KJm8/VjNrOTBROTVYWmQ5K3FobWxtPk0/dVdHNnsrSl8kQzRE
JUtvVgp6UCFwVX5Tfkp2PG5FREUyKns9S3xkNm5aLWUoRX0mcFZQYlBSbiVqMnd0dXtWcUZpRjVz
am5oZSgzfD1pZWhQZlkKelNAKztLK3RJOXBLei1LTmd+c3tAZXphOUcxSG9sbVk4cDRTUFR7YGZ3
ZUFJfTQzdmZiQ35QMkQteGZXY3ZuKmg2CnpBMGtTPDZESHZpQEhZYEdAJn1ebUJYfXI9UXl9UVgh
VEppOUh6MHlWZy08UFBwclh8Q2F2ZF88a014RV4qZEYlfAp6QFZMRGs+YSkqZVR0PXJudUFpVXpA
QWNRZ2ArZndpJExIMmpDTFBDaURHRzNPdiotaDBLSjl1V3lRQ30yaXora0YKekBPSXQkc3FOQDBz
YjQqP0pfPnk1KEQrMVc4OzNLO2duVmBuWEpjP2hfKGN8WnR6JGU2I1k9Q09fSCs/aWd2TW1yCnpR
OzkxaGs3aGZNdnI4cjklIWFKMWRmKjctRmtrJSFYVkUxTjNsYS1kVnRjSldmV3lubiN7NnFJPTV3
K0FgSDFqWQp6PW55YzclP0wte2dLej5hNTVpTHgtI0dPa2xERGdaYkA2Iz08MVopZmkkb3tUZ2Ju
MXYtVUdORyspQnF8b29UIz4KelFnOTl7eiU2enE2YHNaektqbWs/WGZlV0xyUVBgTEY3WCUmQ1hD
a1NkYjlfX0JSZVkyMWxvKUZ5QCktRyZGMSs1CnprTUx5OUBIRVgoT0h4KChldEhlMV5XNH5rYS0l
MzA/XjsjYz9eYD9zZW96Yi09ZDwyTTUlTTBETzBeekY7Xyl4WQp6YkVFSFJuTjRqQ1koWUI2YkNm
ZGo/fD9wZTA/JEBJVWBIUDk4ak1heTRWOy1BeSlgLXp7UzQ1bipDREwkQkVSKHIKeksqNUJAe0BP
YFM8QyMrcV9iWW0+ciQxKSheck1mYCheaV4oa0ozfTNAYkImJFAoU3sjcEghfWJ5MGF1I0BYWSVU
Cnp4WE1CYmNGVmZOJTFrfj0yU1ZlcnhNKWY1JDdBO35ATC15YztfPih+QEwtd0A0PDBXK1p4VXQ7
SzM1fUM1Xzt7VQp6UC11TzNpNGpHVTFgRk5SX3duPHJpWT5SUHs1bn5qNmRYKjhxRVlINnNiQXxj
V2JuKExzRCk8NilCZ0l4Zk9RQz0KejtNOXBJT2BRR1UpWH5gPnAxK2Y/WDJ6XnJwKXJ7dE9GZWMk
NlVPKjNMeCNnMTZJJjQzRGJnU0lfKypaPj4zbFYoCnpIMlFzTnFJP1B1N3c8eEdHRTxoaVVvSCZl
dW1qPmBpcXhfO0liPW9NZStZNnV8NVJVdWt5blpPTnB4MiZZSHYxfQp6SytzcFNXN2F3TkVpZCgj
bWo7eDtMMGdhc1E8Y0QyNTtfR1E/eUgkVCo7NyZLcFd5ZV5MP15ve04me2dHRkpESHYKemMxflot
JlApe14zPG4pbUBTekdwUjNXSVU1Y2J6d1ZQRGVsIUFVJktmKXw3Zk1DbGN4WjtgKldQeyQyKCMx
LWtkCno7Zn1iRjlgeHFJR3tjMl96USE5YXZZeH5ib35pYnNMQmdUbmdkTzJQe2R5RVJHZ0lWe0BR
ezgqN1Y5YD9rP0A+OAp6I1YoKClGQmJOdENFPTMjIWY7N0F0Y3NhWDlyb2NoM2VgdChve1gxTCEz
bm03MTxfJVlQamVNNUktLXNmbj41UTwKemYwSSRqOXFnJkhjZkNLTTdndXEzSCQ2Sl5lZWQmaFVe
VndhY2pnQGw3amBAc3ooUH14Z1NHVnwwQTU/amZYdndsCnpUQHBBNTFqODczZGJYY1JBJkIyfklq
VnNqNml+XiZUIUUmUWN4eEkqZ0dZOWNQfUI0MUhVUnl9TjJCTV9aMjxhewp6anotVXBLSXEtdGh2
ayNxK2YyNHtZc35AeXBVVT1IUG9VbVArRDc0fiN3bUwqRiFkZzJxfmE7fj5mUyFDdUJ7aUoKej01
Nm1PMkxlUC18TEMzWHBieVpFXz5Ob0FuQFkjSzhrZmdZUiFfMXVwMn4hbCQ3NX5yV1BQTTcpb0xY
Pkoyc35KCnpRfSFnJTliSXVkPnh5X2ZPSTtzWDlaI2tAdGk7U29qWktYd0cmTUNmSHF9U3dfSD9G
dWxKU3t8Y3V6VlI+I1VDfgp6P2IrRGIoUnpCa2NjcGIrSlRZX1FOaGlmbFhnJVM/TnoqMXppOG9D
fSk1eX51b19eX1VVSCohNnZMbXRpS1Y4eiYKeiswOUc0aHVeJCs9d28wMSh5REYwezhHcT5KXll1
cDUjUmw0cnw7MH1BQUlASGojcXkxYlded0lyeVg8TmQ7UjRiCno0KmwrKmhva1RRP2E5bUUtUD5+
Ny1AQVlLe05FUkRvXlBmWFkkIVR6PWoyST9aQGdqSipleyVWXjI5bGQmLXUkPQp6YD9gTE5GPihA
V0BKb0RHcUFJZ29NQWk3aEFteV9jQEgmS1h5cHs/PGlfTHdTaVFoUEF7KXBkbWtpR2BMX2FoI3oK
ekZNU29eOXImSz5BKiFFRVpUTCYjd2JtNT03JXMrMypsQWlxbntaKVY0NmtGeVgoZihsY2pLMm8o
Yjx9PzMlZGBVCnpOTFp8aW1WO21tb155NXh2b2BpVlkwUFlKTzNSRDA4PEU1PiZub1YtaytsPSRv
UjYzYG5obnlyey1wVUZIITtWIwp6RDMwQFhQPVlxJkhNa2BIRVBOTHJKXkB+eDtGelI2T2dje3h1
MFI0c2JIVit+TllNYzx5Z3pBZk9wMlohbUBFeVIKeiZaLSNEQHZRbCVEQFdSVDgoMmp0V0t9eFBT
MHl8PDhyfWtfeUczYSZuTVBURnhAQERSTlJEI3lSPyRUVllIZ1JhCnpMZldZbitTIUNKPnZsN1U+
bFQ1cVRPe1IlanY+MDJuaHwyNmdwbDB8dlUpfHZFIXs/fGc/QTZhd25nTXReZXs0JQp6RkJScHRM
Q1JMcXVyZTFmWS09UHBVS2BrUmZ0O3c/WVlqcGN0KSZxbFg9SVdWQjRReDIzRlppUzM+P2BRKiQ5
YDUKekdVR0hBUypsYlApfjsmTUclaDh1SylAfSgzSXhOTXo8eUlaeDV4eU4kRkdwYHlQKnR+Yz1Z
MS1mXyZza0Z0X21ECno1U3Z5bkJ5cX17cVQ0X2N1e0EkJThASkpEYml5ZkZXcGEmXyk+PyZJTig8
ODhHR2B6b2poZnhvbVctIVRAbCsoMQp6ajdSdk1ObyFMaS01IXNtVnFOaF95MDwmdE5XKjc/cGxm
NGlaelJFeXhTQkU8LV9wfk9qSkd3P3NGazNOcjdgQWgKej5gQktYVnxPJnw5THA1VURjMEYob3pG
eShxWSExO2wrT2gqaFJzTWtuWTVDVF9FQDU9R29FYXVkZHtocyN5akkoCnpAa0JiKFc8bDV0YCl0
eyVNdzt9bylRTER8bGVVUUZnKUYjZ0dqNXx0ayQoTEFwM1k4RGd7cHM3UGIhVVRJOW9lPQp6K0U4
XztZOHEpTXYrR0U3X2tjbzQqJmc1NE5ZaHRCa3NPb2lqPDxHZj5WT0VEWU5VRil5UkJxZWx4YH5v
RVlrN2gKenJkVFZxS1diNXxUVDlqK0xvOzxJRzRiYHtJPyM5YChpWSM7a3pmdGEwOHV4JVpqRSpK
SU5ET1RLJWA/K0JvXnNuCnpsQkJBTFE8TyQzVTZ0JXk5elE/WGZrR1A+JnMhTm1FN0ZNTkBpdyRe
WW5xIXlIOV5gIVZBOVU5amh2V0QkQzhxXgp6RzJSO01OeVhXNGwwQlZ9eEJgaW9OT2RNfHMhZGk7
MCNhNzBMSXpAM3hndT9LY1hMV1ZjRHJWJEJDUz9wUV4jZ1oKeiYyOUJjUTc4enBUeTkkPVpDUipY
cThEWjxMWnVvYmspQHNTNy1VTXV3fDJ6T2tNelFLSyR2VURNWDtGQVdDRGhlCnpOUCNKezFYTWkk
eGAkR3NpYiR0cmI7Q3I7clNiWmtldkkyJTZzfktrZGsqZXhnYGJrKmcwZFkwM2h6ak94VDZpaQp6
d1dLM3JNN1l2NS1vYSVud2J0WTNjeXUzaGZVIUYhdnpsP3k9ISNGdyFPMjV9KVNhWVRDcEF1TG9I
Rl9OPDBaeX0KemZlTGYoTTBEZ2A3YEA8az9pKz0kYXpYZzk5b0BaeHMxSHVvczh1VmR7IURmND44
UjZJd0tPQWIySnErTVk+dH1LCnokLTVUdkt9cDZMSE1oNnxUOyVeWUNTI0xOTzc4fWAydyhWYV5h
LVRCZiF7aU87cllxKXR8OW5rS2FzejFeZjdoSAp6LTN5WX1qaiphZ1EyJS17OztuO0UrLTVFX2dZ
KjtnVmJlPUxePldQbmZGWVhpbzhTeDRDdyZvWWVnRHE0NDU8WnYKenJkOzVrPT9+SCR7WGgxNT40
RV5xe3t9RWZDamByYkMzSmk2YGUyQVE3SUxvNzdPdW1fV1ZFT303XkhRQCU8fig/Cno1bnF0ckRs
UH1qaCVuUWY4UmluKDBmVGdUY3FWeE1xVikwNzVFWWpGdDI5Vj1tMm9NYkRjQFRqcVRpUEB7aStK
NAp6fEQ/Yk5EejJ+YShufVJqMFMrREo4cz89JmZoX196M2Z2Kl44aTVBfHt6JX1mMD9rVSFSVWAy
OU82REF8PFFpPWUKemModWdiRGRGUGJkJnw5NDFzSjM7ISYkMDEhJiZDRWdnLWFAbEhwJFo8IzZX
cWZrNXZGdUo1UTM1JEpIdmg+MFZECnp3MGd3RFcoalFfYVhxd2oxN0xfQWtrcD9kKWt8LUg5X3kx
VCZLMFZmSTNoJDV6IUk4TSNxXjUteV83XyVtKEIrKQp6cEAke0BNUyVzPypGKGVPdEdOWjJSNVEo
YmZ0NGVSTXV6QnxrKnYyfUJVIT9gTX03YDU/O3xFZV4pKCMtYlBkeWcKekFhSG51ISN4N2BONFBG
RzNWYk1YZG44MEpNZ0UwJGA5Uj1fd1FMKTZZQntEMkZpNE5xbVA1alMqMFBwQGJxdDNKCno5OCpe
YChvNkh8U1hiKT4tZE0rIVVxZm4kNCViQ3xSfmZJc2g9V3UoPmNfQ0Z2NENFaElCRmcyKXdXcGZk
cDg0JQp6KG4lNz5jcm1yWk9UeWhKPXAzQU95YDtHeUtkMFItWClaa0ZXYjhZRmQ5YitUKktlSyVI
Vmt3XzFiYk95I2UlKTEKenY5TXJkRDlSR1NoRz91NT4oRjh2NGFAXkJXcy1JeHVxS3BOQT1vXkAw
eXR5SXJMUGRtMHpCYm50V35mZz84VVB6CnpKO28pNTJhPTRIdzdVYz1NKnJtITl1ekUkK2xaTCpO
NUJATS01VWtfZ2B8flcjbFVIQU9JaiZTN1IrVGImb2JPZgp6IVF+Q2JFaWZNSlhnVGtNc2kydlhj
QTJEQSZAOVAhdnRZSUdUJHR4TzhlMSFycjdxQERPSnxDJU40dk5rPlMoPkIKek8+LUBCZDRPJEB3
MWpJWGU0MF5NSCpvMVUwckxRQjd3aiZMU3dpX3U7VzcjaUY0eSk2KlEtTGdUfXQ9M1V2PSQ2Cnp6
Q05LRztwWHkyKFohTkI4RU1TKDYyVSY5dXwweHEoRF48aypqOX5RQ0ReNSFAQGtSZzdNKnNEcTx2
ZWItNX1VQQp6SV8qWm1leWchdDFeYjdfP2h2ZlBxaCRHdFV7aXB4KUwjPjxNUHY2MGNEQllJNUc8
diE/K0E5OCM9YjktLTM7cz0KemE1KmUjNCtHPWN7eng/T2Y9NmxNTmxFKnk9V2laUGRzP3Q2dWZt
PWM/MEFobUZXNE43e1k8ZHM4dkJKe0ZeIzw+CnoqZnpuQXFnVC1SaXNANENleTwwc3lqUHw0YCsp
SUVeRUk/YUYrQzx9PWdAbnxOQXhESkZmNzdydT1UdHZZM204Ngp6YmRkSD5VXyZ3NmduPD40JEh6
UmtYPjYhcStvPXBwaWZNYE9CJUVnM1A4R3NzQmBePUxrLSYmcmZlcHA4eE8kPU4KemsrZSUwMUo4
WWVUfjRQVT9UfktfM1ZtQU9QKE5HeE5QKE9EJU1rdlFwSG8lTDd5UClOT28jOUFjTygzO3FeaTht
CnpATF8qWENOQmpwTTdTPlM4Tmhofj1DKG0lTld6eHtab3tWWCZMREo0LXd5cmBATyMxQTBHfCFB
QnJnV3Ywc0tTbwp6Rk0hXkh6WDEqX18mZWJFZi0lVC1CQWBMNTN6PmQ8QSV+Uj0ofjdQKFJgO0Qh
I0NNXmJDVUIqfGM3ZlhqP2lJTEMKejtPN04/UVErNEVKfUJeenotSTtpUXNDPFh8MTl2STB7dE5f
ckElUDB6JFNzRzJ3VztLQ2VSWU5QMmdeVWRqIyRtCnpjKWg/fDFiIyl9Zzh+bDtkYDk1UTBeYnQm
cDE9PFVtSlZTVk1obCFTYUd9NjgwPCg5KnRuUnkxVm0+WUtXYFBGPAp6Sn0mVSowXmJ0JmZ4dGo5
YkZMQkMyeCFwaDtWTz9vUGxuRntKT2IkVDIxXz0zUmAtPlpvQ2BSODIqV1dkRU80UX4KelIpTTwm
P2h8LVc7MzB1TzZabj9FZStldXNXaj48PlA4MnYjO01vRUAxQDtOTlFzOWslVlMyRVhaUnZOVlok
UCUhCnolQnJ5Q15MODFfPzZsPGYlNCZIbFhlaChMKEJsQTBoSz5XfGRmOWJwOFFQNm5wQyN9LXot
NF9xaG1IWjxDLTUjbgp6Z1Q3U20kOG5IdjsrYnJpSXhES3MmLXJ1NmJFfmZ1c1lAZV9AJDspSCUo
d2QjcnE2KWdybT1fUU1BLWQ7eTx1PVoKel9CcmA7JG56VXQxQTZrPzV5c1RKdTNqMmVFMTNVWC0m
RCtfXiYwejd1dnZsfkdCfUA/PyRIP1leaWRoUnl1eEtaCnpaVnpjdm5Fd3BfTGZyZSZFWjg5X0p3
TypeRDV0PWB4SDw+Qkl8cTkjMlJvOTN5KGljd1FGciFYc15IdEJicEs4fgp6KkRJaFYhQmx3IylU
WXV2eGdOZzh3Sk1FUj5KU3xmPjx5e1c1TCE0fGFwQWZiKCp9aGhVcHVmcGYqcTI0QzNLciQKekRx
a3M7QHJEfnA9WF8tcFJoWUMmOE1XJillJlNlODdpZiVJckpWSyZyZHArKG9ePDReQVBoOVpsay0o
bEx9USQ8CnpsQk5pekA+Tm98Til0XkNydm9+VCtoXyM2PTE4bGUhbS1SI05uSzN+MXlkUnZOZiF1
cWlUXiRTX1JQc2FXZyNgUgp6UG8rci01eFFIakwmUFEyKHU7IWFyKkwyb3lwMEdSV0dYQVQweUUk
TyFCbHlwRFY8NUghclhQZyF1KFNMYj9+I0UKejZpbzNQT0ElZndpN2w7emNleXw/I2JxMkZRRThC
fjRvP3U/UlR5bSF0T0hpZVRqJWdWSFV+Wmp8N0BHYSlTV1BRCnpDPTdMJmZ9NzxJWERIVkpkb3pS
RzBaLTA3ITdoQ1lQR303aT4+fGxHayl9M0NuKlhaNlJIUUFgKm1aJWcwbyRPbAp6Z01vWDJyOFRD
YGZiRyRrSXM8bHQjPyU/R2RvKSVNZD5yezYpN2Jwckd0QCpjM1Utbkkld1FkYHcqfFh+JkpEZioK
ek9kU0AhIz1rYHtZXkM2SDRlYiRaN1NfRnRUQGljPGwtKE5wTzdLPHFyaDVlMktXdWl2aHEjT0dV
Y3EpdHtmPylACnpuKTE/dXZCdlJLJXY7fklwRHIoR3o7Z0Vuam9rdzUxUjU+Tj9FUTJmdSNAT1hq
VTVJeWpuKyg3YENiQmNHRUpTTAp6dXM7SHVOJjhNdiojOEUwRG17WWQ+T3tYYlQha2tYdip7Vlop
Slc3IXVQS2FYVjc9Tio7JXVVQVhCNXNmPUZ0PigKenhQWX0zSFhITTRyTlgyUnIqUSY0aGRoYkco
florOG9rPzRWanBgYyZkJkEoZzdEV2lrM3ZueVVDbzxUQHopc0kjCnpwOH5jcGdZbz8+aXlZVyRW
e3J6JXNjXk5pbG4oMD5uQ0VoT1FEZSs9MS0rPjs9REN2SSpCSjkkTWdGUEc9bmRRdQp6dilXaXEh
ISpWYCpBUVJncnV4R2E+PCFHJlg8V2lPVEJ0RUQ7WT5QOVZfZD5uKVR1RXA7Y1U3ZmdSTTVzcTAy
U0sKekMyWEpAMVhHJmQkYzVvXiRpcHtBV1V3TTBpUH1eVzlWKXUzRm03YkE/PmpOY21yZGgqbnt4
N0hHMHdNJT92Y196CnpOJmhWRDAoU1FfQ2d5UXozWXwtajImTj1FbSEyMndrZXMrVm0pX0pFJVde
S2d1UUJGJUY4UVozN2peRkhUbl4mSAp6SDlGdHVxfXdGejRUR15SZFBPaSpMVzE2TnEkUX43V1hg
QTNFTmFmZCkoRUMjdjhZcEhFUT5gS1hwQ2pDPXlIWTAKejRJQ0M3NUtRc2hMaWNKKSozdVJfdFRF
PVlnPGpNY2JKOz5+RG9uVStwPz9VYj5WVGJtJEdOZ0o/R2EyI21abHB0CnojeXJ6Png1aylmbmpU
Vl5ASnYlPUNmOWE5NiYzOT13aTJDXnQkUXooMzh1PkhyS09Jdj9iTWNvWjQqcUR6TVVARAp6Nz8t
fUNacU9LKXpNYnc/bjNUU3E5dVo5RzxwTyRNUT9nenpwZkAkZlRyUXlaSE81Pm5BcGZaPnIpdWQ3
czdmJSEKeldmd0s2R19qWG0pVH1ZKXZXciR+akpmUWhIaWR+U3lKKHdXczx3VCYoa3JXcC1RPUYt
I0Qpb2BZUCp+MkhPM3xFCnpyV3FSSjVfWiE8Zy1IcCE+NDshVCZXcT8+UDA2KnJofV5SWXBGQDc7
YXVKbmpqSmFHeXFaS0F4RX18KU9te01gTQp6bT0qfThXVng4bShpbjVPbV53QWFUclE+eTZlZTZR
Q1YzVDRiR2VrdD1CbTxKbVA/NSpEWUlwe2wle0hveG0tI00KejZlZTZRcjYmYmJ2aDFaLUckbkp7
T1lkb25XIVgjYVgycH1hPzQ+ZT0zNzVVcHJxZWp6V3djRSYjcSU8e1Rya3h0CnptKGdLSTh0PVVk
UGZ1bWg5d1VSdm1+e21tKGZLJi0zaV5rX15jaz8/ZDdNdmBhM3pmdj48eG57dWNUJiQzRlRGXgp6
I3pBPSVidmhgb3FDTi1aS0R5ZEx4c1VFfVEwfTlMOUYrVSU4MyFkIWdnR2VwUX1LTTNPcX58e0c+
c05hJEB5dVQKem4hJkN4SzIydlNOfEV8JStVQ2dqUy1SWWpfRjF+JGsjLUZ8RFZYQVU0WlJ8bUAm
dkJvcVZZTjhuT1ImMUtTRiZECnpkNndwMj1NPXkwJlpIR303WEwxYmRBMWU1PiVjQy1LSihgP1Rz
e3IjKzY/eF47d3JpPmdNRnY/dWtPIWhGeXxTdAp6TCFLdiE0YkstY1kwbms9SlUzO3FVcVo0MjhT
SjBNZ2BPLXs5Q2woJklNO041KUpaXjlfWEFXVlpvP1ledUVQT3AKelFrY1BZS1JecEwjJnRoSD9I
YzJ7QUR+WVB3d3EyND89Y1MwWjkwd1hlbHRDJEZ8UFk5YlZPclpfZ20+Nzhzb2EoCnpNcFgrfkBI
WSZ1YHhqfTMjPD1jWnFMbXVzeTVCKSpqZDkoLU9qbTErPndYdkFxY05gZ1VHJHtKeGJBbituO1BT
fgp6LV5HUkRfR2hrcFozYTY7RF5aODk9KEl6UUo3SFhPJG9Re3Rsams3MCNieDRyQ3dqaWwmJXlD
d1k9LTk+KUYjKzkKej0qNypSYHsrSERNJVJRLV9rNUVeaSp0Mn18SGtrIyYkbm8qI3RzVSRQX1Mk
MHZHOGk3SnRtbTQhM1hGP28lWXF6CnptcGwocFRBVldGdz8wUyoxWEdqYCghR0xSTHdfeShvIyNR
cXE3eHMre15XVT5JdDY9LU13RVR2ZDQlPzlZJkBfPgp6aUxaOSM2SEYmI2BUOUxQRHBjNVAhSW87
UU1YKXhGdHFeUlJWOUkqRk4wJHI2WWxJSXktPW5HfSU7Z2c3ejNuamAKenI+UDIpbUZiVVlwfmxX
R1RaZ15GNEhgUWFKZkVQbiMoSyZNSnh8YWNqZVN6RTgjS28yPV9sd09qcU5MJjU5fjNHCnotQmNG
I0pWYEhWPnxqfmdgeXs9c3ZHMTBaMUgmZT1OY0wzTzleKXloKCVBRkJvfkVlXkxtaHRXe1Z7RUdx
Ji1XSQp6WHpZUVpRfEtxT2E9RmNnJnd2ZlhRPyU/RXV2YXdwXncwKStmITwhSihxNjspdSVGVUJg
bXxXMEBPfCZrPShnMT0Kej9RY2tYaypkeTZuNVg9R0A2VHpDIyE3K3hmfH1RRys5bSFgPCNqbFIp
Ml58YEBeISVXWGx4cU5qP21wMlRaWGhGCnpeclhmKmtvRlMydEZkMEJ5K3AtcFJlMS0+S2xIdiNa
PWNFN3VaX1EjaGtkVjU7YUxpK3MrZEIqcllnYSVAejFTegp6MGElbTUycyM2e0smTVNCdWtpaGJI
ZlVeRmAzUFghR31lSyVTODFRZGRYZUBqLUohOGpOUENTUShPNHRXVVpXUVUKeitmQ34kQkVId0Rt
PihGRHZpYVpBNnYzMyR7VEFeQ29tazI2NmhNPmFObSN9N2h1P0xpe3dPYk8oc1BhJm02dkh1Cnpk
Wn1PaG4tYyNRTkJvQnA8MUYxakpTJl5DRU44cWtKWHo/TUkmI0dqI3gxbXQ3LSNzKTVgVWstIXZk
VyNOfEk/Kwp6RUpLJlRgIVpwP21yLXJVfDBsdzZhNUplQiZfJH0wP1pTVkxLLVBAaU14VH0jclEy
JkhKVE5yciMhUlgrWXwjSDQKekohfFJjK1BETXF4YWI+ej94U2VXKjBhKn5NeyFlPnhuPSFVXy1F
VD9BZXdCZEd3LW9lSSYoUzBjdGRnfHg2d3lLCnpXI1B+RHF4X1lgc0ZxZEcqJXd9dSlaWXZJMyF2
UllJYyQpa3xMPF92VSZCMEEtXnQyZyh6Uz9wNXZTdCR0aVVAMgp6LVVEZFRjT3xUUGxadDs/OyRN
fGB3bFJ+Mk1tWD11Zk9kR0xna3lqJW8lJn5sNE58YkxtTUpkPGJrVVc3Wm5fVDgKekxwSzlAPV4m
dHc5c3NtIXQkTF52RCpkYW07dW9NYT19bj19anZqYXFSYGt8P1dJSX1ubGZNY3hyQWhEQ3VfUCom
Cno7QF9XZyhJfT18SW0oNS1ZPiN9NFE0Pkcqa050Ukd2bHUoYSNkdHBLMmxWNHZLcng7Rzd2dFBC
cDZsWFVmb35QNAp6WVZiNnptaW4rTytKfD9lRjJecUN3YjskUDdDViNJViRibmY/OElHKnxHI29B
T347ZUZsa3VIXz9AV0E4IVNfXnIKelhXPWBTe01jYCojLTh1RiE0dDV2UiM2ZjVPezBAQkdhMUhS
STArSUU3elVnfG00TkgwUiR8NlVjI148cjAlcj9zCno1eDdqP1Q3Zlp2OVJkVHllNn5wVlBLczRs
UUgjWCU4YXBlU2U3bFY7ITRtOzV0SGkzIVU+Um85ZnkoKjV7bDxOagp6cn43VU9XZmRKbnVEYG5Q
Qj1fKHR4KVo3RjBvYDc+LWdsaWJiYTtwRldgUyEjbmVlVH17XyQ0OD5CRCNVNGpSKmsKent9Kjco
QEk4UXU7YlUtMkB2Z0VmZUdlR2hoc1RYYWpobHZGP3xhbV45V1hgQDRnVnRHZmw4a3poTyFKIzMq
Y1JkCnpWYWRidiliUlc4cT1kdGQ4P08hancob0ljY0cpQW9YTn1OXkwleUZJISQmO24rYWpzSUhX
ck5kc3FaYWdgR19PRgp6S04rMVBlKFVSe0RATUhTR3Q5ZTN7TW9tZ3dnbGU/ZH03MnU1emwrPjBo
N0pDdSpuKihHflhIRkA+aU9GOHhpbz0Kem50YGZmfDY0fF5hO1NlQVFtND1+YjVDI2A7TSVJYHt1
WG1AKXFLRnVTSm1NUjxLdENKe0EqM3RXR31yfHdhVlgxCnplP3Q2MDxITT5te1R+Pl5zJD4ydztM
cm1hKUBMdXh1STMkflNtbGlwem05cyVHcGZKcD9+cSNXbXM7I2N4UVl5Kwp6cERsVV9uNzJZZ0pu
NThEOTskdjVyOTJfPG0oX25qbXstLWs8fiE5TChETWg/WFpyVj1idEJJUj5AX0VoSlVoXjkKelA4
cno+SUNvP1JWcGZpezB7aEsjTkE5OGhXKllFMV5XdT5gZiRQbHNOQTN0NUdAY2xfSkZzOGNfbmA0
Smd0MDQ5Cnp2bk96O1N6Sj5gY2JlPn0tRCFAbGRFTEY2cnF4Xi1JQjQhR2Rsejl8Ml59PSY8NWJI
KmxVRl9tTzx3V3JyWmEyNAp6Z1JffE44cEcyZUVxa1kjNUkjRj0zTyNxND47ZDB0dlVodlhjJl9H
Wmw+VCQxSzJDNGQrIUE8SFRJNnhqZTJmfCsKekM7RzxHQERYKm16ak5pdEpxQkNVKjg8TiVSfVVp
QmcyP3YpcFF8fTZ4dD5Beit7byNeWFV6KkVNKmAyOUtaeUokCnpARihIK2IxSkI5M1FtJnMhcH5g
Vj9HKllzamplXkFUfn59YURIdzNBdTNhWkZHWjgrIV81KUFZKW1kQUkqWm9wfQp6bFNJUmxoJn1w
QShuZmEqSlNlY3ojcUR3c2IhLW1hRU92RiFfK1BjRmdLckBmSj1ld2RHdFBCcyFSZnc5dF9WKSQK
ekZwTExsVH5xNEw0Tmh9JHk9SEBFOWJFX2RKOzRAKXVMMy1gdTh2dzxEYlRtTEV+dENtZUkwIWdH
MXQpKmZMbVkqCnpwQTlaXlpOYyt7d1hTPlhSd0s7KV9uYDR1XyQkR15eYmx4YjtQWVVSclRSJioo
IzV1UzlzTHlYbTlCVHtVSmlETQp6JW56NiEqMVo7ZHorQFQ1eHFQRWVfcld0Ql47VTM7PnA8bEAh
Q257bDVmMTthQW90dlYyNnV5SnQ+O2ZQVzdMPn0KemdYWmN7UlR3ZF5yZlpFNSM9RG1RWj1nUXs5
dzNoeSF1cSFpQEQ2R0t5Y18/eER9PEJzcnZsemYzankhUDtvPVpJCnpnITZEQWRXNXpCSzFSQyQ1
N1M9MkMrVFh5WFh0am89anJRIUZWYzRia0k+VkF1aDZkbVUhKFRgLXoxK2FMfnFrRAp6ejt8Z1o7
Q3N7cl8mIVlvezBHZWVCO3p6ZHgzTHReWj4kOUBHJlRTaDgobn45TWp6bFg7fGpuazxJe2k8PDBp
bi0KeiN1b3ZqIyNhRkFqZTd4YGoye0N8RkA2SSQpaUImNG5xZHFCb01xR2tIWEFKQTApcik3WGlQ
IU9Rc1pSNm1CdUZrCnoqQkVDNG9ATUw7KytiVjwqaztAUypseWVqKmxCemR1LW9gQ1ZBfVlGK2ZS
RTglajJpWmpXcG1zcVpqYU1WO0E3SAp6I3psWlA3PCZLQDcqX3peV18laig0JiFyeGNOO2VWLWVj
U2hjKDN0QSEyNkI2MDNSfiQwZXItYDVBWlNMK2tsNlMKej8qY3cpSk89b1RAaV5lfiM/eWM9OHFX
YjlGPHR+TEhkJSU7bFZ1b1lfSWpXbmJBfWlDRjtqcX0mMk1gZkZfVjF8CnpYdkUmO28mdWNQcjNT
elc1O0t8N288X2Bub08mNU9qUUJHcCspOSVYSzlBWX1RYDdedjFNI0Iqb05IOXpHd3UlcQp6JUB2
Y35ZMHFAdTY1bCNzKztfRl9DZl9+MlhNTWwranJZJjt4QkQ7ZlUqZ35BenQjVEB8MERodkBVK2sk
Mm5XZ28Kemt3NyNzR3RkKEZlQmV1Z1p3N3VBXyhicm1WMFVuUEBia2ZNMVJvNl40ISMoNDdyNG00
b1g9PDBfLXZYTkdyMTRlCno+JkpXX3p8M0JOZEFeOXM1bVNNZjtmTlc5Kj9CWih7TnBnPWtIYyZ+
OS0oXjdeanlQPGZLMzwpajtBUiYyWCskUgp6Ymk5b142UXtzdDBoXjJTVShKWV9oeCpVUXtDXnIh
N0dWQnchVGtSVFBAR1A0WGQkUTtmbnFVWW1JNkJpKmc3SjUKejBWNXMkdVlrYnV7QERuaEFUYTZZ
VyVrdjZQRjMqPWVxVWt+eSl6c0xUbTtHJDBqM1dLVHV7Sz1oTUZ6fD88JT9jCnpmR00qR2FCJUBI
K140ZSZEZ2F2eHNzWW1sb2FANFpJKW9MXjdZalFPZXB9JUdZY1o8NiN9NDIwbVY1WXc3UT9zMAp6
OHYqfD1QXzxxNFB9YzN9cCQlU0s7VUd9OD5gNm45TjZlezFQWGNfYm9OMW1BXyR6XjFFNFZHNUM/
RCUxYGp4PVAKejA4TG80Mzt3SmQ3Un4/TCNSbkxgQUskJUUwNX14Q0NUd3tLOzdFODZDUGlUN0Nj
TXw3ZlRMbVFDVHpNQXVwVmEkCnpPanZPPjs4ZlZWTndZeV4hY0lwNCZJT2VUaXlqTCY0fUhPYU1O
ZEZAelE2X1dkUUk1Jk04TVAwQ3JyRjghaVQ4MAp6cCt9aFRrNF4mSWZnV012ZEMkcCFKSkIwVj85
SDdEXytLYzsjT05ePkBHfGY9O1pMNmljbT8/MzxPfSRqY3k2QF8KekBZOHM2I2wrczxHUWlLX0g3
Y3ghYTA9VWBvNnZKaSVzNldTWl5qczdWJXw5JEBPR1N6R3dGKkkxSDJRaiVrWFYzCnphbHBIOVBU
Unl4KUIkKTk8QipBVzs9Mkl2ISZAbVAtdHBmOF8kYGJ+Q1ZkKyghST0wQEd2QDw3Z25EMyZnP2dC
bgp6dCMkJUZOKjRrP2hJKkx2MUp1QzhsZDZqVzU5OFUyTmwpUn5oKUYrMm9sTllrVD48ejRUP1Aw
ZVlHWSE1Pm9iN0EKenFSI15VOG5yUiR4MHUmV2BZVX1ORmwybElhRU5nZVY4cGw/K083cE9zbXsw
K2FGbFU3O0FyRFpoI3pDemlTVGcoCnojfk9EYmpNKW5EO3taKU0kLXYxLSV1QGBmOHdVfEhQMmtE
S0h4TSVla2wqfmc0eyhuMEV5VDxQTEBPSU9HZkRGUgp6KFowcm0yJWlSNjF1ZVBJNGl9Z256K0kr
fis8bTstXjIxSkh1PTMlQC1ZYDx5UT50KFNaTjtENUkzREEyPEFNfXsKelJwLVZUYmJYTkhfYH5A
KFZCSUY0OEg9bm95dmwmRjZ0OWNte2g3YDJMfkJRXihmS3c8VFcyUz09eXlBMjw2UkQxCnpQazI7
ZnZSfGJuXihyR1IqPzJEQXt+KXwwdl9NfEF7NVNAVWlYZkZLYWp1blUheiZqa0chdSQtWUEkI2ti
NDVDcQp6P24hQlV6TG5oQShiZzdFWCM2eFE1IWI7KkBwUVlAdyVBSX5SJk55UFhoaDhDN2ZaNWVP
SU5wZ09ESndmcUxoVkoKelltODtrV2NGKDw4QzJlVChIT3wqVEdufFRjRkRrKENNfj0rbGtVfE5g
aH1AWGVVN2ZxI3RjbzA9NTZhcHJCaiYqCnpTYDxzU3dtVlIlVT4wOC0td2N0ciM8TVpENm5Qb1op
T2omViUlIW5wRHhSRGxZZlczcC1qNWJoLW00Sj4+MUshQQp6b3ReeU5rQ2pORi1SJHJqeWliI0RN
cGVNbGpfeD5LK2xySUBfN0RWaUBFYjV6eXw8ZSElYkI0aUM7dGoxIX4qcCkKeip1Wjd2KFgzM3k1
filwQXZNVzx7RXlGeTF1Z3ZEdTlOIWVmM3JhYjBOOWA0akxZQjRaaDFUWkhAI0lKN2xuTDxpCno0
PmlYKF9INVNGaX00RFhvaVYzM0RtfmhEYjJnc25geytgc2pDalgwd3t2UUtjOStpPmtkRHV7VUxC
b2hvO28oSwp6Tjl4I1l6dGo8R1l7KWYzb3okYF5CWT9BTnEmanBhTztoSzBATkJmQm5gYX5ZYiN8
UkphOTdjWnh4R0lWPUA8aWEKelQ7NTJLamtWZTVSMCExMCFBdylITzVpPVNZX0hHQihYWiN+SmEp
QHZFU2NDNFBNbmcoazhUcWdudn5BZTlCO01TCno7K2JmZVdHKzUwayY3P0hgPGxydElhakhwbTB2
QXtKIWhqPUBxMl8+NndRZCY/aDxLcWspdXZTdEl7MnZtPFp5YQp6MGVMI1VFc1lMfV94RVcqSV5D
VGN2anshMnFjeFVGSHsmZiQ0MTtrRG1mY0haPjJfKmF4OyZRSDlIKTdTby1VWUIKekRpczV3ZjYq
I2lKOCZOV0B5bUooOys+R3Q5JTlhaloqJkEzU0c2PVFOT3lIfHAtSFBWMXFyJTNWZC01WUt6Qnxw
CnpsSEQpQ1VCQSsyJDBYK14oOD1TfSFXQkB7YTM7d1NIRSZ6STc0T0FUQk0tIzFJaTZteGRXIV5D
XlVJcEZ6RnA+NAp6U30oNT5sMV43P0VoKl8lKVVwdU1odmIxXllEUF43cyFSJV9LciRLWTZ7N1Zx
SiN3I2EmNX1CRCoqV3hXMSZpWnAKelgjLWB3YjczdlEqTVk3Xzw2QFNVQnU2eVkjaHpKZGVXI3Zk
REkwfHJ6KVA5Jk00SHhqWFZ1NXE3VUx+cVRGKTwzCnprX3V3Yk1vVmdtUj5DLU4kOzBOSiZSQkJa
d3Ira3FTIU48YyNrWXhZRmIyRytuZ0N4TnVwPl4zcmA1PH1OMzNzYwp6a01ScSNuZmp+emRQWX07
THBZaD0xdyV0O2tAWk9fNUBWK0JvOFlmUHUkb3deSnNzUUZpSGRaflQmdm4rSWxvIXoKelhjPExy
UGV4cSVPdXVuUFg1PkAhblE2Nzl4a0ZrcmhEbj89SjcrOWFqR2swZChpJD1gWCpGZ2k/b3tJbmUo
TTxUCnpvXkZxfmskTntZbjx7K3VneEdBZ19WN0VfaXVJYk1KUX5FPz1KZThCeW1KZ0lXKWJIMEIk
TTJ6RHwhPkgrQ04tcQp6I29FeUR2OXxlMXQ4MEQtYmZSVGcpNzQ0JUVAckU7KCo9Uk9oXipgNWol
aGhYPipkODwoazdnJXlSMTNxPjFjZ0EKemY2aVp6KlA/bFQmc0p5c3dycE0yeDVpckE8ST51VnQ8
bykzcXZoJlc+JFJVXm9KIUd9VjIxe01LaF8yZE1LXlUwCnpqbX11aihIVyZgQjY8NTIjQkAlUGdo
fiZec3grOUl0IVVVISo2bktpQ0Atb31IemtaWlZ+R1UyJkxVWlReNE9SZQp6b25pNihQUUhqbD53
QSkmJUQ9Jnd6c2FJQVYoNS00WTJMUWhjKD1JeF5KRDIpQ3JLU3VrNmBDTHdLJmRpO009MVIKelRh
LUJVc29DfSYwdk9CJkFuWnBaZF43emZCYFVHRyZoR0IrPzlKOWxuWV5QYnQ/IUM7K1k8LXBSQnlo
RVdpRjMqCnpTP1JjVGxrYH1lNWwhKmVMJHQjWm07aTU3Xk4lTHNwbU00dFJ5dV93dExxamQoIXBK
Z1Ngdz1VZTVPQFgwRWdeUgp6TmVJKiFFSjN3WWspVz1HNHl6YVUxd21lVz5KbkMmUThgbHRsISYr
REYleEJDXnZuSSgyITEoVkZ6KD9Ka3A5Q04KelJecndaez11ez4waHVRXzFgZHV5TkpBd1JrPTtg
VCg7WkAtVEN1ZmtBe3xtKmxhMCt6dn1KO0FuSVFadkoydDEyCnpYY2lnSSloMj4jPjJNYnZ2M2Y7
bSRGT3MyaHdiSTFqb1R7TFchUnBpb3M3UWUyKHJneXF4UUk5PE5mLSY9NGcqcwp6bHJkZjl1VnIh
TnVWciFOOHNfOHF4eH1sPjV7ZGk5ZVYpNHNKVDMwNW1Ad05wWUkqRUBabnNzKjQjOUJFMmY4Y0EK
emE3VlRNdSNCQFNaTFFUSjlGU3RHQ0YyTzdsejJqS0Ftezt3N3VjbFl3Rng2KjMkQShNTGhXRGlx
R1ZreFVWYCluCnokRnYyPzc0aFdPSUoheClnRDJ0P1hJNmQ2OT1OIWkrJF5kJTwqNm5VRilXXnlZ
c24qbSlTeEE/NipvT20lal57OQp6SCs3RSVOdGlEdiolKWcqa0xGO01QaVY0dmk4ZWRLUWF4czFL
dlo2O1hiY3hnYm9GJUVOZkgmPz04VCRhYiM9IyoKekBGS2MkTmcrQFUtSjt5Jk1ZKlpzSTw4K1kt
QVhRRSR1NmFBcWchbG9yPDZvJk4yb3J4KndUUiVgYEVaWU0za0l6CnpXUnsyfW8zZXZRaERvLXA8
QHohaDsoSm5mOU5ANypOMmN0blc3SyR8RkgzT3s7QSl9VjlCbk1oWTwwO0FJdHFKbAp6UCQ/P2Qo
Wi1iRyVKMm0kaHtQPWBFaUNLO189UUA8YW1KVHlTXilgVU0xdFVMSip7YWUtTShSRFBGKEh7Uyth
QGUKemVUQEZfWns7R0JlKGBXMnopallrcjA9SzY4RWxtMHFvYzEkVFdpNTZiNnR3eUQ9bGpnRSt4
X1lRP2s1PlZVQF9ZCnpnUTI8QUA/fGRqQks5bH1RZ3oxfTNuZHtpaTFCNnZKVylHfEN6ITQ1akE8
VldzfmFxN1dFSTFuXkJIbzkzbTdEQAp6N0BGSk8oVFZHUTUqcDM0b3BjcFVTbS1kSzhUeyVRMnE4
VSNyTnBDRHFsND1Hc3hQdCk+LW1WNmJCeC1aajxlKmcKejViWFlAVztHXldoP1NrZnE9WEN4UzA0
X0IpVnk8UkpUclEla0U/WVM2dmxnaXZYKT5Fb3kqb01Daj9xJCZrbGprCnozX28yVmhwNHVnd29G
K2A+PWBnPz01VWooWlU/R2MoR2tPV3B6bWNwQG5vLVZSMntWPio/fCF2KTtVMHU5JHhMNAp6TTYq
LT1yfUQ0ejxfNXdvYnNkfTdoPEx3QkhXQnJ9WTFoVSVqSFU/VnNGczM8UVBuKVVQKiU0TmF5dHdw
QzZmI2sKeiYtQmpQRnI1P0VycjVGc1lHZDxlLXhYR2k5P3tjXnB7Pj5GbyQ/bDxXQnNvczhtTHJm
MnxPOH5ydUtCQEc9OWVsCnp5cy11TV9GIU5EYVAkcipMMzJseytybURre21WNmpLdzBPUj01NTk1
V19FSGp3b3JKVz1XekBwMW91R1lDOT9idQp6XjBeQ0ZARFNlRmZlbnlNfEZUUDh0fVk7aVNYZFFV
LTheNCl6IT9MSnVHSmw+NG9xNzh2UzJeNjJWRUVrVzdyOVgKekAwNztFamgkSXNJKSF5QyFubjR1
VSN7aXhPP3QtYGxhOyF3M3dJV0ItX0RaUzNEe1BOXnsoakhvYW1wVnVTRCNoCnpwemxUT3A4IXYj
RSM0Sk5wNFVIVnVHUVUocDN2QDRpIUIxfG89ND9AQD9iVmheYlZCWlA8c0Y1PTZJPyMqJilsMAp6
eylzQykob1JMZzhybEErVF5Yck5vIUNGd0VHdTgkcl9IV2xGc1Y9cj8+NURndmVkVzN5cTl4WUpn
cmswVFYhcEcKekZKYFYtdjlwQjxJVUFSRkdneSQ+eVhaMXQmYyMhVUctMk1jX2Y8MDZDKXJKdD95
VFJnTW1ISSRSWndQU059emVVCnohJjclbT9UNSVKTGt8K29hJjtHUHs+IzN9NjQ2YkheZURQSy1y
YjRJI2RMU29ReG87dUVQKUshLUg+QCotN3c0Mwp6bDIlVypSQU5PPkQ9I2M7VFZMNnBnaEZ8NFRW
JGFGTE1RWHM+aU5rQk9VUkVTV0pYcCY4M2tlO2k0QEZ+O0tYZWQKem1Nd2B5SlNuP2F3eHgpZ1dl
KkxVR20mO2NSSEJWbTd9KCpKbUw4SU0rfGEkeTdMK0dVb18xTU9IVH12VUFRTGVmCnpITWY2NXk/
a1NzT3FpPFVeTSojbyNgNC1WNlE3Yzg1M347K1REOFVEKEFaT0xvN2UrT3JKUHJfRlJDX29SRSgw
VAp6SW5HV3E5X1FnNk1OSVo5YWdDYHxhNTRWcklJTUMzeW5fXlI+PGFXM1Q4R2dePHp4MHNsTzJg
fUF5UFl6O1lJQ00KekhGfTUoeTlzK1ZWbSt1IVgzPkdMXzZEVVNKS2x+PEBGdEc1cHc9Z2MpdHRx
WlZ+aUp2SSkrdGh4Ni1tNklCKUUtCnpOcHEjdExtaGl4RDcmJUF6Nnh0Zz0/KCFZajJVcmsyNFQ7
alEjZWBPPipzQUAtWWBwTnFiTzVDd1U9eG5iYW84Wgp6eG93KjUtXl5UV2p5KSRQZitlUERyR0Bj
Jl42ezhRN194VmMmWi0hSk04PU1eeV5zfkxHOHBsO2kxekYjcDRrWE4KelVWRzBycCYjc3RqUHBC
XnNrSGNMcyU7Xn0zUVApWW41eEI4VDE7PX51QyhTQDdPdTVSNU5oNiV6e0k1TEY0cW0oCnopLTUl
V1dnQGZUM2EobD9lPTRgb29aZDhhM251YjdMSDdAQ3ZZWkdJST1ZVCtvPiYzdU1JfVBeQjIrck82
cnVNNwp6KWV2QXlhdkNtYGdNaSFCcWVWU34kWmlvIXJMKlgwaEB9PihTY1cwMlI7YUNQYWNhUCRj
S3I7bjFJO1JuTlBBdnAKelVlMig/TnMjcCVyfU8kJTI3KSstPF4qUGNsfVJKKSUtRnRyI19lUFo/
bTQoV1JmaS1LYkozMF5RPlklQlU0VUJaCnpje3ZQSkVmd0xsISk+Rk8tdEBeXjteblJJPUM7VDEk
TzRgT0VISyY4TVY7fFl4WT9FYFA7TmNGekVPPjYmc0l4JQp6dS0xeylYNGEtLT83Rn5qaDtfKmBm
eXxJM143RSRjYT80ODdDZFgwQDNnQHpnb01NaDg4bTBCcE8hNiotQ3lxQDUKekQ3ZXxgIXE2Pnx4
KjJ1TW9ETFh6VilPalk3YHNuRXZKWVd3em92MWkxdCtjLVpXZi1fQnJwWjN7bTIlMWd3el94Cnpa
cUtVM2BBTSs/dDg9NVo0V25OeVRMPGxlQGdvfkhiaFglNzhSUCFLZ145PE9NWEA/KE01d1luOTFu
bDhZZ29yWAp6dURZSilERHhCXjZHPiZVViZZYngrdTRCOzBmPTZqQi1OZnRkKTc4ISNiU0p6XkR2
QGg/TClhN0RRKG9hX1pCbVIKeitDJEhsJiVLZEg4eTt1JEdjcTt5XmR4bXB2SnpPOD44Vj8zZkxJ
eVk+Q1dtIVJhX0khPkF+PWQ9NzFAd3sldUYtCnp3ZT1FQV51ai1ETiFTRmtpTVpPak1tb1NUeWkz
SHQzb1FMYFlXQnZJKXJyU2xMYUteIV8oJjI5KkxOZDdIeypRdgp6QlJ1WF4qPHZ8R1R6YFVaZlg3
WmJvKWJxQUl+dTQ7T1I1PFF0dSFyLSRJbnhLTmdsRUlEKTY+ci1GJklIXjZiXzgKemw7bDNTS0Y3
Z05pM1E8UTZpPV9aMDVybkRyKXNxMXNtQVFPb0Ridl93SWVeQGUjfT15US1RaVpuWGZwZUErMCEz
Cnoja1dOQnttTjxGZTl4Q3R3fU9gTUNGVD93JGBsc1BWRFl1ZV9HUTBSO2YmNFJAPUpqUF43NzVv
R15BVSZGeXwhbQp6c2FUR2FWfmNQO1kkYmxOQlpRTWAmNGlhMzMobW9MdHRPbi04alhLdWIwJSg1
aXtZZiZjQkQ3cHEtOHl3ZyVoMTsKejt7PTt3a2dGY0F4TGtubWMpWkBpPVIydms2fVJaY0FlcCsk
ZDlGeXptb0kwZXVrMSRZbVJ0X2FjUChkYz9XUTdACnpGRGJWekxucS1SPGgxV2s3QSp6JWolZERB
bn0rYT4lPDN2PChafm8rU0M/LSROY3F8OHd+Yk0oPDR4ZUt1NC08OAp6JlJMJjVxNyZBMGlWUGBo
R3F+Z0MydkRRK1FvYnNqP147ZUZGSkoyMmcqTX1zeilZenFoSUFvNGR3bnk3Xlo4UE0KelRaQnVl
ME19RWxFJSlfK1MwYFFvUW4/OXJWITZUSCFgRCVCWXcwfUYlM1AxRT9vIUM3dGBfSEN6QVQtSnhR
cW0zCnpNRWA8YlI0aStidWspck53am90M1Y1Tz1pOHhnfktgN1V3X1k/bDB4djRBQ2xfWDdRcWhj
RTQ+QkVITztee3NmWgp6NFBoLUxAPSpvTG5UQUVFRTcweGgoflZMKXAzNzJ+VkgtN2VUbkZtZUVn
YkVlKERgQytCYjt2JHNfblZ2VG9aMCoKekRyTjApRHslZVFFJFRFUipGcCQpaE9zVk5rPEpwVVlx
Yj4+eDJ3OV9uKnRuV2A9aFlab3gxTl5ga3MmTjNaO293Cno/SCkhJkR0OCs3ZmZnJF9mKW1yN2g7
eUg7I1lgJn5JYTg9OEg7clleUCFfT2s+UEJAY3VySHRJYWk5bVdzOzBDbwp6aWNeX1EoQ3s/JHdq
RFNoVDk0REFKSkl8Mk1FSjRDa0NQblNYTmApeztLSnZ4OF89XmtiVWFSKW88UFI1fDhGSFoKeklG
N1A4X1VEQDZVT087JTJiWU9YRT1UOC07VFR8Pit7RW92a1ZHcVFoRHs8b3VMVX5nLW05K1U9VSZQ
aCROTkYzCno9XyopOEMmc3FpNXYzOE1wUiQjaF5sRVAxTyleZ096YzhQfC0wSXghXzcoWFF3dElE
RTNAKGJII0xQJkNVVzZWeAp6IW5RSXNwM2pGb0pldGU2cHdtP0U8Jm5XTCVEWDBfQU1WMkdVfip3
eGJ3JSghNzRyNDNnQnEpOztiP1ZTak0wNTEKemJnJiVVJikxcnUoPnspUjM4WjEmdlpabiNVazFI
ITVBNE1tVilidG5fQDVyb05ndjFPREVVcjQyWDYlTSs7U0dxCnpgfTF0Vl9Bb3NZY1klKEpCSzg5
UD8hWStFb1hUXzNhb04xbE94fGRRPk1ZUUtzJlduTmQ/fFc1fDY+T3BEY1hSfgp6ZiY2P2ZfV1Jk
dHdONjwhd1Bud0RQaTtFa2tIMEErfEZeY0V3WXFaM0R8YEwtb1Z4elBAQyg3fHspaUZZVTA8PzAK
ej5XUD59RDEtKEduY2sycU4rRUI9RmNGVSEheVRjTFQ5PiF2SUNtNVFQc0F8Nzt9OTFmPWtnKkRN
WmtAP2tnemNFCnp1TW1DQTN2QXQ5MFZUVzNtX3F8TkclJHctSD0hdElRJk5uJFZ3N1oqXmooZ0ts
RytkPUNhSCpQSW54RlBYJEVaIQp6UFZmTnFeKGxmcmoreTJyRHJxO3BSVVJAKitDeUgzQntTViNQ
PVZEM2VCMUMlPDIlaVQpNTJXLTFfbyZjWjQ2SEUKejBRQns3YTJqNSVEUU8zJXN1S01COW4mYjhT
PD4he3hUPm12dDFANTFQZjZjdk84VkpjP0o2JjdUVTlhLWxgaXBACnolJmRhS0BOZDx+M2BFP1Z6
dCNpK0RxMW8jS3JWP1dYLUJwWV5hfn1Hdl9QPHk9S247ZUYzejFObDJrc2g7fWNSbgp6c1g8MkRv
aXl4ZDJJU15gVUZodVVoMGJ9X1pAVmQ+K31YSSQ+R0JtaVhWWU1JPko0VCshUSVYQnZDdWdXNzRv
b1IKelBmPy1WOGNLem8oYFZVMEdoPDJyRFllKWh0R0wmNWU7M0I4U2EjT0A5T1N0WmJ5Uk1QLX1X
eHVvWno9ZE04N0BOCnpkM2pYcHEoWX1fU0pMME5EcztNNShDO1FIYlVHaGk8QE1sKTlUJV5mckg2
QzM5QHl6Qz5GPz1ge0FlZW4rKW1FKgp6WFoqSCVSQVElUntUZVR+U35yRSVrTnN+dk1FNmN0dldg
ZGtrTT0pe15JZ1k2cnwkc2MlRE43UFA5SX5LNkxEcTwKeldfXmxhKX1gUDxWRyQxI3lOa0pkYGVt
RzFDVTZeJVAqcWlrVzxWdlk3Xzg7KTRfWXNQcSEwNSlUcVMzUk5ANypXCno2ZT5BZXZjYEUjRH5Y
ckhkNFNubiN7SihjaUY1dXExYDBvP3BlTSg5NVEmPiFLYVlJRkZmIXEtY3Bpd3xDSWdIPQp6PG1P
MVhoWEtEQztwVFQ2Rno1Z1Q4MVFRaT9nOXBkNDJsQHc0TWxQZlZObEU8JSVGcnBEVDZXd0xqbjlg
ViQyO0AKelQ/SUtoeWt1NXxzO2hrRHN0Vnkocz9kY3l7dm1yKUQxQDRwdGlzPH5tVmIqUlpzR2Jq
QT9xcjkqVyRae3RGbnMwCnpTX1dIQXtQKDg3YDUlfDwqazw3Ums3TUpVX1dqJmN5WnQ8TG8yWUEp
ciFxdUQ1emxCejUzMU1CXjtOZGZpKl5hUQp6MkB7d2EkIz1UXno+JnBkRTkhZGAxQTB8fiZzfGIl
MHg5WUgwaF5CPmteWjMxP1o/M0c9U2RFbFVGTHlsIzZ2RWgKeiFROUxjVFRDZTJfWDZsbSV1Qjhp
Sn1Ad2JYc1FyNU8zOVh4I3xOUmRhUGRgTXBJTmV7PFNlRlY4fShOKSpXPFgyCnpqKVRGSl50fj9m
eWUwNHRBUEQoRWZYM3l0elhHcGZXK20tYVYxXipleyFjRHJDZDhxViomTU9rMUxFLVJBfTlvfgp6
aF47aFM3ViVZdXMhRGJUNUNiJjRkdVlrLSR7e3s0JndhP041K3JsMmh3WjFAJnBxSXtAYX1PRSoj
SD5jSnFjQXAKem9wYDMoZUx8PVorQ3BCWEU7WX4xNEVTNmVeSUNQNDQpcy02NzVPfXZGZnNMKV5q
JXZtUlNwRmVuZHE0ZUtVamY4Cnp7PGMrRG1IOUJpbWJCPUl6REtLKF9YajBEUkp4WCNfKSh4bHZD
NFM5WDJNZFI1Mz0tSyVRRzxrcXlfeV8kVj9ROAp6M1BDYkEqQXU3QEAkRHNMcllmZnY/WDglaWx4
bW0mQnIoQmFpV2E8TkNWTmcoUlJpcHYyVVM7bCg2bU9WOGR7YngKem51eD5EeUJkJnxLXyh+XmdB
dC11MzAjWSk+UUo9e1pPPWNEeXhJZFhzeSk+bktSUGpZVU48YkhOe2s2Nnp5dk5KCnpPemloWVR0
PXVXIzghWlUhTHlAMDU8ckpIIUBJam1jNWlfJGJ9d1ZsPEthT0ZGRFRRNThUZH4mKUE/WEd7XnZe
fgp6bVklNzA8Vzg5fWs+a340XztmdE0xZ0dITEVwJnFMP3d1bSYjWnApWmVGQnlxZi0rI29OfUZR
TUE/VERsbW8lZnsKemt9T3xmJkd3WSstdFAoKCFKY2FVYzVoKm1DfEx2KE1ZbUwleGlnSFdUfnhD
QmM1c0UpY18lYXV3KkY5dm5gRHVVCnpVPyF9QWQmc3R1ZDlXYjZZP2o2a3YtaEw+dX56U01xd0Fe
U0E3QmdVZGtJP05BTWAtPHUyODdmUn5xOG5GRzFTPAp6ezl+Zkx7aFdlcyRXPnd3NF81cHJiT3g9
bCZaMlkyTVVIUTNJd19LS29XRE1qaU5gfitfUSthMW1jcjdpKnF7UkoKenVqPjtIU25jQlYqYGww
YGAxZSE+T2BNJkdWMj1gZVoyWilfVWo3NDUhJHhkJXduYkpnVWxfNW87fnhiakJtNXRUCnoycnJg
MzVDYE1QcXtnWS1zUWFFYHM2Sm9pYTZ9X3tLTDtGaURoYmN8bGcqdHRAckE4eGRDQEglWnspWSpA
VzNZVgp6O2M/KUBHdEo7PFB5X3p+NGU8WXlBcEVCbj5kUiMmZUdHZHd7b3xSQXVQPEVsM1FYVjRu
RUk1dHJ5I0h6Pit8KTEKel5SVjd1Znd6SHxWMjV9O2VpITRkPDBWNCl1PXx+VkAhTyU4dD5oaDRg
eG08bEA/bjxqbHtyN25LPTN+dztQNThGCnpOQTFHJCh1fT1meyoxPUUpUCE5SWQoWDVKbCRtYEhw
fTVETD0yZDNTP20+U31PTkZLaF47VW1WWGR+K1l5Tz5TTAp6SX5TI087Wk49VlZNeEtBYk9QTmA/
V31NdEZNOVpZTEJfRkw3SilScD1OcmVtLSolTVM1VzVQUlMlfX5Lb3NAe3cKekNXKHxyWHA4cXUy
ekw7S0dVZjZUaFg0MG9YMTUzRk1fLTxEOHg8cTNVQl9tfmZ5WChKc1JONCFyKX55ejszQmReCnoj
eypmRHczTitmSFRkdXp4cWNSYWJsJUNFaWY8RlhDanZoVUAybmRjJCN8IXEqRUN0RmsxcTRrX3NS
STVTemBSZAp6VVE5aUJGTjYlNmcpNnM2SCsxNklocj5TMVQ8cExedSlEfUBjb0lUS0ZPZ2ZSS203
e3U9YmgjVi1jRHliViRJPXkKekxjJUpZV2gtbXJXZT1+d2w2VzQlUkRAZ3ZKNzY4O2QoZ0hIP0tT
STF3Y3AzPFZrJk9LITJnXjskLUhCcWArcH17CnpqKUJgMWJEWHFpWm9kM2gmMlE3R2t8K1A0YlZr
cjRiRkNwaUFJbVpMOFB2ZF8xX21gU3NEVktaM35GRmQxQWBoRQp6KVdEenl7eDUzYTUldkY+QURR
YG9RSEheeTJRQElMZms2IW5ZRzY8VWdCbHByekBQPk9IODd9d0tAQUxRVXtDe3QKSzh1JWE4ITJi
Y31mPyRwUwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvQ2xpY2tUZXN0X3Rlc3RDbGlja3NB
U3Vycm91bmRpbmdTdHJvbmdUYWcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL0NsaWNrVGVzdF90ZXN0Q2xpY2tzQVN1cnJvdW5kaW5nU3Ryb25n
VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNkMTE3ZGYz
YmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvQ2xpY2tUZXN0X3Rlc3RDbGlja3NBU3Vycm91bmRpbmdTdHJvbmdUYWcu
aHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx
L0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKyAgPHRpdGxlPkNsaWNrVGVzdF90ZXN0Q2xpY2tz
QVN1cnJvdW5kaW5nU3Ryb25nVGFnPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2Pgor
ICAgIDxhIGhyZWY9InhodG1sVGVzdC5odG1sIj48c3Ryb25nPkNsaWNrPC9zdHJvbmc+PC9hPgor
ICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9QYWdlLmFzcHggYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9QYWdlLmFzcHgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhl
M2EwZDRkYzAxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvUGFnZS5hc3B4CkBAIC0wLDAgKzEsMTcgQEAKKzwlQCBQYWdl
IExhbmd1YWdlPSJDIyIgQXV0b0V2ZW50V2lyZXVwPSJ0cnVlIiBDb2RlRmlsZT0iUGFnZS5hc3B4
LmNzIiBJbmhlcml0cz0iUGFnZSIgJT4KKworPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv
L0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIgPgorPGhlYWQgcnVuYXQ9InNlcnZlciI+CisgICAgPHRp
dGxlPlVudGl0bGVkIFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGEgaHJlZj0i
Li4veGh0bWxUZXN0Lmh0bWwiIHRhcmdldD0iX3RvcCI+dG9wPC9hPgorICAgIDxmb3JtIGlkPSJm
b3JtMSIgcnVuYXQ9InNlcnZlciI+CisgICAgPGRpdj4KKyAgICAKKyAgICA8L2Rpdj4KKyAgICA8
L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9QYWdlLmFzcHguY3MgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9QYWdlLmFzcHguY3MKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFhOGY3ZmUzZTI4Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvUGFn
ZS5hc3B4LmNzCkBAIC0wLDAgKzEsMjIgQEAKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5U
aHJlYWRpbmc7CisKK3B1YmxpYyBwYXJ0aWFsIGNsYXNzIFBhZ2UgOiBTeXN0ZW0uV2ViLlVJLlBh
Z2UKK3sKKyAgICBwcm90ZWN0ZWQgdm9pZCBQYWdlX0xvYWQob2JqZWN0IHNlbmRlciwgRXZlbnRB
cmdzIGUpCisgICAgeworICAgICAgICBSZXNwb25zZS5Db250ZW50VHlwZSA9ICJ0ZXh0L2h0bWwi
OworCisgICAgICAgIGludCBsYXN0SW5kZXggPSBSZXF1ZXN0LlBhdGhJbmZvLkxhc3RJbmRleE9m
KCIvIik7CisgICAgICAgIHN0cmluZyBwYWdlTnVtYmVyID0gKGxhc3RJbmRleCA9PSAtMSA/ICJV
bmtub3duIiA6IFJlcXVlc3QuUGF0aEluZm8uU3Vic3RyaW5nKGxhc3RJbmRleCArIDEpKTsKKyAg
ICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShSZXF1ZXN0LlF1ZXJ5U3RyaW5nWyJwYWdl
TnVtYmVyIl0pKQorICAgICAgICB7CisgICAgICAgICAgICBwYWdlTnVtYmVyID0gUmVxdWVzdC5R
dWVyeVN0cmluZ1sicGFnZU51bWJlciJdOworICAgICAgICB9CisgICAgICAgIFJlc3BvbnNlLk91
dHB1dC5Xcml0ZSgiPGh0bWw+PGhlYWQ+PHRpdGxlPlBhZ2UiICsgcGFnZU51bWJlciArICI8L3Rp
dGxlPjwvaGVhZD4iKTsKKyAgICAgICAgUmVzcG9uc2UuT3V0cHV0LldyaXRlKCI8Ym9keT5QYWdl
IG51bWJlciA8c3BhbiBpZD1cInBhZ2VOdW1iZXJcIj4iKTsKKyAgICAgICAgUmVzcG9uc2UuT3V0
cHV0LldyaXRlKHBhZ2VOdW1iZXIpOworICAgICAgICAvL1Jlc3BvbnNlLk91dHB1dC5Xcml0ZSgi
PHNjcmlwdD52YXIgcz0nJzsgZm9yICh2YXIgaSBpbiB3aW5kb3cpIHtzICs9IGkgKyAnIC0+ICcg
KyB3aW5kb3dbaV0gKyAnPHA+Jzt9IGRvY3VtZW50LndyaXRlKHMpOzwvc2NyaXB0PiIpJworICAg
ICAgICBSZXNwb25zZS5PdXRwdXQuV3JpdGUoIjwvc3Bhbj48L2JvZHk+PC9odG1sPiIpOworICAg
IH0KK30KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL1JlZGlyZWN0LmFzcHggYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9SZWRpcmVjdC5hc3B4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi41MmQyZTY3ODZlOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1JlZGlyZWN0LmFzcHgKQEAgLTAs
MCArMSwxMSBAQAorPCVAIFBhZ2UgTGFuZ3VhZ2U9IkMjIiBBdXRvRXZlbnRXaXJldXA9InRydWUi
IENvZGVGaWxlPSJSZWRpcmVjdC5hc3B4LmNzIiBJbmhlcml0cz0iUmVkaXJlY3QiICU+CisKKzwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwu
ZHRkIj4KKworPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiID4KKzxo
ZWFkIHJ1bmF0PSJzZXJ2ZXIiPgorICAgIDx0aXRsZT5VbnRpdGxlZCBQYWdlPC90aXRsZT4KKzwv
aGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvUmVkaXJlY3QuYXNweC5jcyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1JlZGlyZWN0LmFz
cHguY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjllMDY1MGJmYjNk
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvUmVkaXJlY3QuYXNweC5jcwpAQCAtMCwwICsxLDkgQEAKK3VzaW5nIFN5c3Rl
bTsKKworcHVibGljIHBhcnRpYWwgY2xhc3MgUmVkaXJlY3QgOiBQYWdlCit7CisgICAgcHJvdGVj
dGVkIG5ldyB2b2lkIFBhZ2VfTG9hZChvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkKKyAgICB7
CisgICAgICAgIFJlc3BvbnNlLlJlZGlyZWN0KCJyZXN1bHRQYWdlLmh0bWwiKTsKKyAgICB9Cit9
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9TZXR0aW5ncy5TdHlsZUNvcCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL1NldHRpbmdzLlN0eWxlQ29wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5mYzk1NWY4MTVkMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1NldHRpbmdzLlN0eWxlQ29w
CkBAIC0wLDAgKzEsNzU5IEBACis8U3R5bGVDb3BTZXR0aW5ncyBWZXJzaW9uPSI0LjMiPgorICA8
QW5hbHl6ZXJzPgorICAgIDxBbmFseXplciBBbmFseXplcklkPSJNaWNyb3NvZnQuU3R5bGVDb3Au
Q1NoYXJwLkRvY3VtZW50YXRpb25SdWxlcyI+CisgICAgICA8UnVsZXM+CisgICAgICAgIDxSdWxl
IE5hbWU9IkVsZW1lbnRzTXVzdEJlRG9jdW1lbnRlZCI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5n
cz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jv
b2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxl
PgorICAgICAgICA8UnVsZSBOYW1lPSJQYXJ0aWFsRWxlbWVudHNNdXN0QmVEb2N1bWVudGVkIj4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkVudW1lcmF0aW9u
SXRlbXNNdXN0QmVEb2N1bWVudGVkIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAg
ICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3Bl
cnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAg
IDxSdWxlIE5hbWU9IkRvY3VtZW50YXRpb25NdXN0Q29udGFpblZhbGlkWG1sIj4KKyAgICAgICAg
ICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFi
bGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgor
ICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkVsZW1lbnREb2N1bWVudGF0aW9u
TXVzdEhhdmVTdW1tYXJ5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAg
PEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5Pgor
ICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxl
IE5hbWU9IlBhcnRpYWxFbGVtZW50RG9jdW1lbnRhdGlvbk11c3RIYXZlU3VtbWFyeSI+CisgICAg
ICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0i
RW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5n
cz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVtZW50RG9jdW1lbnRh
dGlvbk11c3RIYXZlU3VtbWFyeVRleHQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAg
ICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJv
cGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAg
ICAgPFJ1bGUgTmFtZT0iUGFydGlhbEVsZW1lbnREb2N1bWVudGF0aW9uTXVzdEhhdmVTdW1tYXJ5
VGV4dCI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJv
cGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8
L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVt
ZW50RG9jdW1lbnRhdGlvbk11c3ROb3RIYXZlRGVmYXVsdFN1bW1hcnkiPgorICAgICAgICAgIDxS
dWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQi
PkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAg
ICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudFBhcmFtZXRlcnNNdXN0QmVE
b2N1bWVudGVkIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IkVsZW1lbnRQYXJhbWV0ZXJEb2N1bWVudGF0aW9uTXVzdE1hdGNoRWxlbWVudFBhcmFtZXRlcnMi
PgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5
IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxl
U2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudFBh
cmFtZXRlckRvY3VtZW50YXRpb25NdXN0RGVjbGFyZVBhcmFtZXRlck5hbWUiPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudFBhcmFtZXRlckRvY3Vt
ZW50YXRpb25NdXN0SGF2ZVRleHQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAg
ICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVy
dHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAg
PFJ1bGUgTmFtZT0iRWxlbWVudFJldHVyblZhbHVlTXVzdEJlRG9jdW1lbnRlZCI+CisgICAgICAg
ICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5h
YmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4K
KyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVtZW50UmV0dXJuVmFsdWVE
b2N1bWVudGF0aW9uTXVzdEhhdmVUZXh0Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IlZvaWRSZXR1cm5WYWx1ZU11c3ROb3RCZURvY3VtZW50ZWQiPgorICAg
ICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9
IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGlu
Z3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iR2VuZXJpY1R5cGVQYXJh
bWV0ZXJzTXVzdEJlRG9jdW1lbnRlZCI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAg
ICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9w
ZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAg
ICA8UnVsZSBOYW1lPSJHZW5lcmljVHlwZVBhcmFtZXRlcnNNdXN0QmVEb2N1bWVudGVkUGFydGlh
bENsYXNzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Q
cm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAg
IDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9Ikdl
bmVyaWNUeXBlUGFyYW1ldGVyRG9jdW1lbnRhdGlvbk11c3RNYXRjaFR5cGVQYXJhbWV0ZXJzIj4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkdlbmVyaWNUeXBl
UGFyYW1ldGVyRG9jdW1lbnRhdGlvbk11c3REZWNsYXJlUGFyYW1ldGVyTmFtZSI+CisgICAgICAg
ICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5h
YmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4K
KyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJHZW5lcmljVHlwZVBhcmFtZXRl
ckRvY3VtZW50YXRpb25NdXN0SGF2ZVRleHQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+Cisg
ICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFu
UHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAg
ICAgICAgPFJ1bGUgTmFtZT0iUHJvcGVydHlTdW1tYXJ5RG9jdW1lbnRhdGlvbk11c3RNYXRjaEFj
Y2Vzc29ycyI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFu
UHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAg
ICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQ
cm9wZXJ0eVN1bW1hcnlEb2N1bWVudGF0aW9uTXVzdE9taXRTZXRBY2Nlc3NvcldpdGhSZXN0cmlj
dGVkQWNjZXNzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IkVsZW1lbnREb2N1bWVudGF0aW9uTXVzdE5vdEJlQ29waWVkQW5kUGFzdGVkIj4KKyAgICAgICAg
ICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFi
bGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgor
ICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlNpbmdsZUxpbmVDb21tZW50c011
c3ROb3RVc2VEb2N1bWVudGF0aW9uU3R5bGVTbGFzaGVzIj4KKyAgICAgICAgICA8UnVsZVNldHRp
bmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwv
Qm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1
bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkRvY3VtZW50YXRpb25UZXh0TXVzdE5vdEJlRW1wdHki
PgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5
IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxl
U2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRG9jdW1lbnRh
dGlvblRleHRNdXN0Q29udGFpbldoaXRlc3BhY2UiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iRG9jdW1lbnRhdGlvbk11c3RNZWV0Q2hhcmFjdGVyUGVyY2Vu
dGFnZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJv
cGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8
L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJEb2N1
bWVudGF0aW9uVGV4dE11c3RNZWV0TWluaW11bUNoYXJhY3Rlckxlbmd0aCI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDb25zdHJ1Y3RvclN1bW1hcnlEb2N1
bWVudGF0aW9uTXVzdEJlZ2luV2l0aFN0YW5kYXJkVGV4dCI+CisgICAgICAgICAgPFJ1bGVTZXR0
aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8
L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9S
dWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJEZXN0cnVjdG9yU3VtbWFyeURvY3VtZW50YXRpb25N
dXN0QmVnaW5XaXRoU3RhbmRhcmRUZXh0Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IkRvY3VtZW50YXRpb25IZWFkZXJzTXVzdE5vdENvbnRhaW5CbGFua0xp
bmVzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9w
ZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwv
UnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkluY2x1
ZGVkRG9jdW1lbnRhdGlvblhQYXRoRG9lc05vdEV4aXN0Ij4KKyAgICAgICAgICA8UnVsZVNldHRp
bmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwv
Qm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1
bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkluY2x1ZGVOb2RlRG9lc05vdENvbnRhaW5WYWxpZEZp
bGVBbmRQYXRoIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IkZpbGVNdXN0SGF2ZUhlYWRlciI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAg
ICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0
eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8
UnVsZSBOYW1lPSJGaWxlSGVhZGVyTXVzdFNob3dDb3B5cmlnaHQiPgorICAgICAgICAgIDxSdWxl
U2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZh
bHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAg
IDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRmlsZUhlYWRlck11c3RIYXZlQ29weXJpZ2h0
VGV4dCI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJv
cGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8
L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJGaWxl
SGVhZGVyTXVzdENvbnRhaW5GaWxlTmFtZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAg
ICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Q
cm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAg
ICAgICA8UnVsZSBOYW1lPSJGaWxlSGVhZGVyRmlsZU5hbWVEb2N1bWVudGF0aW9uTXVzdE1hdGNo
RmlsZU5hbWUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
RmlsZUhlYWRlck11c3RIYXZlVmFsaWRDb21wYW55VGV4dCI+CisgICAgICAgICAgPFJ1bGVTZXR0
aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8
L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9S
dWxlPgorICAgICAgPC9SdWxlcz4KKyAgICAgIDxBbmFseXplclNldHRpbmdzIC8+CisgICAgPC9B
bmFseXplcj4KKyAgICA8QW5hbHl6ZXIgQW5hbHl6ZXJJZD0iTWljcm9zb2Z0LlN0eWxlQ29wLkNT
aGFycC5MYXlvdXRSdWxlcyI+CisgICAgICA8UnVsZXM+CisgICAgICAgIDxSdWxlIE5hbWU9IkN1
cmx5QnJhY2tldHNGb3JNdWx0aUxpbmVTdGF0ZW1lbnRzTXVzdE5vdFNoYXJlTGluZSI+CisgICAg
ICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0i
RW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5n
cz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJTdGF0ZW1lbnRNdXN0Tm90
QmVPblNpbmdsZUxpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8
Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+Cisg
ICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUg
TmFtZT0iRWxlbWVudE11c3ROb3RCZU9uU2luZ2xlTGluZSI+CisgICAgICAgICAgPFJ1bGVTZXR0
aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8
L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9S
dWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDdXJseUJyYWNrZXRzTXVzdE5vdEJlT21pdHRlZCI+
CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkg
TmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVT
ZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJBbGxBY2Nlc3Nv
cnNNdXN0QmVNdWx0aUxpbmVPclNpbmdsZUxpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iT3BlbmluZ0N1cmx5QnJhY2tldHNNdXN0Tm90QmVGb2xsb3dl
ZEJ5QmxhbmtMaW5lIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9IkVsZW1lbnREb2N1bWVudGF0aW9uSGVhZGVyc011c3ROb3RCZUZvbGxvd2VkQnlCbGFua0xp
bmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3Bl
cnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9S
dWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29kZU11
c3ROb3RDb250YWluTXVsdGlwbGVCbGFua0xpbmVzSW5BUm93Ij4KKyAgICAgICAgICA8UnVsZVNl
dHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxz
ZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8
L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNsb3NpbmdDdXJseUJyYWNrZXRzTXVzdE5vdEJl
UHJlY2VkZWRCeUJsYW5rTGluZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAg
ICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0
eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8
UnVsZSBOYW1lPSJPcGVuaW5nQ3VybHlCcmFja2V0c011c3ROb3RCZVByZWNlZGVkQnlCbGFua0xp
bmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3Bl
cnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9S
dWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ2hhaW5l
ZFN0YXRlbWVudEJsb2Nrc011c3ROb3RCZVByZWNlZGVkQnlCbGFua0xpbmUiPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iV2hpbGVEb0Zvb3Rlck11c3ROb3RC
ZVByZWNlZGVkQnlCbGFua0xpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAg
ICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVy
dHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAg
PFJ1bGUgTmFtZT0iU2luZ2xlTGluZUNvbW1lbnRzTXVzdE5vdEJlRm9sbG93ZWRCeUJsYW5rTGlu
ZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVy
dHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1
bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDbG9zaW5n
Q3VybHlCcmFja2V0TXVzdEJlRm9sbG93ZWRCeUJsYW5rTGluZSI+CisgICAgICAgICAgPFJ1bGVT
ZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFs
c2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAg
PC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVtZW50RG9jdW1lbnRhdGlvbkhlYWRlck11
c3RCZVByZWNlZGVkQnlCbGFua0xpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAg
ICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJv
cGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAg
ICAgPFJ1bGUgTmFtZT0iU2luZ2xlTGluZUNvbW1lbnRNdXN0QmVQcmVjZWRlZEJ5QmxhbmtMaW5l
Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0
eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVs
ZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkVsZW1lbnRz
TXVzdEJlU2VwYXJhdGVkQnlCbGFua0xpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+Cisg
ICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFu
UHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAg
ICAgIDwvUnVsZXM+CisgICAgICA8QW5hbHl6ZXJTZXR0aW5ncyAvPgorICAgIDwvQW5hbHl6ZXI+
CisgICAgPEFuYWx5emVyIEFuYWx5emVySWQ9Ik1pY3Jvc29mdC5TdHlsZUNvcC5DU2hhcnAuTWFp
bnRhaW5hYmlsaXR5UnVsZXMiPgorICAgICAgPFJ1bGVzPgorICAgICAgICA8UnVsZSBOYW1lPSJB
Y2Nlc3NNb2RpZmllck11c3RCZURlY2xhcmVkIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgor
ICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVh
blByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+Cisg
ICAgICAgIDxSdWxlIE5hbWU9IkZpZWxkc011c3RCZVByaXZhdGUiPgorICAgICAgICAgIDxSdWxl
U2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZh
bHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAg
IDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29kZUFuYWx5c2lzU3VwcHJlc3Npb25NdXN0
SGF2ZUp1c3RpZmljYXRpb24iPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAg
ICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+
CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1
bGUgTmFtZT0iRGVidWdBc3NlcnRNdXN0UHJvdmlkZU1lc3NhZ2VUZXh0Ij4KKyAgICAgICAgICA8
UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVk
Ij5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAg
ICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkRlYnVnRmFpbE11c3RQcm92aWRlTWVz
c2FnZVRleHQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
RmlsZU1heU9ubHlDb250YWluQVNpbmdsZUNsYXNzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdz
PgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9v
bGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+
CisgICAgICAgIDxSdWxlIE5hbWU9IkZpbGVNYXlPbmx5Q29udGFpbkFTaW5nbGVOYW1lc3BhY2Ui
PgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5
IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxl
U2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iU3RhdGVtZW50
TXVzdE5vdFVzZVVubmVjZXNzYXJ5UGFyZW50aGVzaXMiPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQXJpdGhtZXRpY0V4cHJlc3Npb25zTXVzdERlY2xhcmVQ
cmVjZWRlbmNlIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IkNvbmRpdGlvbmFsRXhwcmVzc2lvbnNNdXN0RGVjbGFyZVByZWNlZGVuY2UiPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUmVtb3ZlRGVsZWdhdGVQYXJlbnRo
ZXNpc1doZW5Qb3NzaWJsZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAg
IDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4K
KyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVs
ZSBOYW1lPSJSZW1vdmVVbm5lY2Vzc2FyeUNvZGUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgIDwvUnVsZXM+CisgICAgICA8QW5hbHl6ZXJTZXR0aW5ncyAvPgorICAgIDwvQW5hbHl6
ZXI+CisgICAgPEFuYWx5emVyIEFuYWx5emVySWQ9Ik1pY3Jvc29mdC5TdHlsZUNvcC5DU2hhcnAu
TmFtaW5nUnVsZXMiPgorICAgICAgPFJ1bGVzPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVtZW50
TXVzdEJlZ2luV2l0aFVwcGVyQ2FzZUxldHRlciI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4K
KyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xl
YW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgor
ICAgICAgICA8UnVsZSBOYW1lPSJFbGVtZW50TXVzdEJlZ2luV2l0aExvd2VyQ2FzZUxldHRlciI+
CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkg
TmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVT
ZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJJbnRlcmZhY2VO
YW1lc011c3RCZWdpbldpdGhJIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAg
ICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5
PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxS
dWxlIE5hbWU9IkNvbnN0RmllbGROYW1lc011c3RCZWdpbldpdGhVcHBlckNhc2VMZXR0ZXIiPgor
ICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5h
bWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0
dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iTm9uUHJpdmF0ZVJl
YWRvbmx5RmllbGRzTXVzdEJlZ2luV2l0aFVwcGVyQ2FzZUxldHRlciI+CisgICAgICAgICAgPFJ1
bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+
RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAg
ICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJGaWVsZE5hbWVzTXVzdE5vdFVzZUh1bmdh
cmlhbk5vdGF0aW9uIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9IkZpZWxkTmFtZXNNdXN0QmVnaW5XaXRoTG93ZXJDYXNlTGV0dGVyIj4KKyAgICAgICAgICA8
UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVk
Ij5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAg
ICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkFjY2Vzc2libGVGaWVsZHNNdXN0QmVn
aW5XaXRoVXBwZXJDYXNlTGV0dGVyIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAg
ICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3Bl
cnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAg
IDxSdWxlIE5hbWU9IlZhcmlhYmxlTmFtZXNNdXN0Tm90QmVQcmVmaXhlZCI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJGaWVsZE5hbWVzTXVzdE5vdEJlZ2lu
V2l0aFVuZGVyc2NvcmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8
Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+Cisg
ICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUg
TmFtZT0iRmllbGROYW1lc011c3ROb3RDb250YWluVW5kZXJzY29yZSI+CisgICAgICAgICAgPFJ1
bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+
RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAg
ICAgPC9SdWxlPgorICAgICAgPC9SdWxlcz4KKyAgICAgIDxBbmFseXplclNldHRpbmdzIC8+Cisg
ICAgPC9BbmFseXplcj4KKyAgICA8QW5hbHl6ZXIgQW5hbHl6ZXJJZD0iTWljcm9zb2Z0LlN0eWxl
Q29wLkNTaGFycC5PcmRlcmluZ1J1bGVzIj4KKyAgICAgIDxSdWxlcz4KKyAgICAgICAgPFJ1bGUg
TmFtZT0iVXNpbmdEaXJlY3RpdmVzTXVzdEJlUGxhY2VkV2l0aGluTmFtZXNwYWNlIj4KKyAgICAg
ICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJF
bmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdz
PgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkVsZW1lbnRzTXVzdEFwcGVh
ckluVGhlQ29ycmVjdE9yZGVyIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAg
ICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5
PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxS
dWxlIE5hbWU9IkVsZW1lbnRzTXVzdEJlT3JkZXJlZEJ5QWNjZXNzIj4KKyAgICAgICAgICA8UnVs
ZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5G
YWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAg
ICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNvbnN0YW50c011c3RBcHBlYXJCZWZvcmVG
aWVsZHMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblBy
b3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAg
PC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iU3Rh
dGljRWxlbWVudHNNdXN0QXBwZWFyQmVmb3JlSW5zdGFuY2VFbGVtZW50cyI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJEZWNsYXJhdGlvbktleXdvcmRzTXVz
dEZvbGxvd09yZGVyIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9IlByb3RlY3RlZE11c3RDb21lQmVmb3JlSW50ZXJuYWwiPgorICAgICAgICAgIDxSdWxlU2V0
dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNl
PC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwv
UnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUHJvcGVydHlBY2Nlc3NvcnNNdXN0Rm9sbG93T3Jk
ZXIiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3Bl
cnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9S
dWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRXZlbnRB
Y2Nlc3NvcnNNdXN0Rm9sbG93T3JkZXIiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAg
ICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJv
cGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAg
ICAgPFJ1bGUgTmFtZT0iU3lzdGVtVXNpbmdEaXJlY3RpdmVzTXVzdEJlUGxhY2VkQmVmb3JlT3Ro
ZXJVc2luZ0RpcmVjdGl2ZXMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAg
ICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+
CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1
bGUgTmFtZT0iVXNpbmdBbGlhc0RpcmVjdGl2ZXNNdXN0QmVQbGFjZWRBZnRlck90aGVyVXNpbmdE
aXJlY3RpdmVzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IlVzaW5nRGlyZWN0aXZlc011c3RCZU9yZGVyZWRBbHBoYWJldGljYWxseUJ5TmFtZXNwYWNlIj4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlVzaW5nQWxpYXNE
aXJlY3RpdmVzTXVzdEJlT3JkZXJlZEFscGhhYmV0aWNhbGx5QnlBbGlhc05hbWUiPgorICAgICAg
ICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVu
YWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+
CisgICAgICAgIDwvUnVsZT4KKyAgICAgIDwvUnVsZXM+CisgICAgICA8QW5hbHl6ZXJTZXR0aW5n
cyAvPgorICAgIDwvQW5hbHl6ZXI+CisgICAgPEFuYWx5emVyIEFuYWx5emVySWQ9Ik1pY3Jvc29m
dC5TdHlsZUNvcC5DU2hhcnAuUmVhZGFiaWxpdHlSdWxlcyI+CisgICAgICA8UnVsZXM+CisgICAg
ICAgIDxSdWxlIE5hbWU9IkNvbW1lbnRzTXVzdENvbnRhaW5UZXh0Ij4KKyAgICAgICAgICA8UnVs
ZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5G
YWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAg
ICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkRvTm90UHJlZml4Q2FsbHNXaXRoQmFzZVVu
bGVzc0xvY2FsSW1wbGVtZW50YXRpb25FeGlzdHMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iUHJlZml4TG9jYWxDYWxsc1dpdGhUaGlzIj4KKyAgICAgICAg
ICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFi
bGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgor
ICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9Ik9wZW5pbmdQYXJlbnRoZXNpc011
c3RCZU9uRGVjbGFyYXRpb25MaW5lIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAg
ICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3Bl
cnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAg
IDxSdWxlIE5hbWU9IkNsb3NpbmdQYXJlbnRoZXNpc011c3RCZU9uTGluZU9mTGFzdFBhcmFtZXRl
ciI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVy
dHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1
bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDbG9zaW5n
UGFyZW50aGVzaXNNdXN0QmVPbkxpbmVPZk9wZW5pbmdQYXJlbnRoZXNpcyI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDb21tYU11c3RCZU9uU2FtZUxpbmVB
c1ByZXZpb3VzUGFyYW1ldGVyIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAg
ICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5
PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxS
dWxlIE5hbWU9IlBhcmFtZXRlckxpc3RNdXN0Rm9sbG93RGVjbGFyYXRpb24iPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUGFyYW1ldGVyTXVzdEZvbGxvd0Nv
bW1hIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9w
ZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwv
UnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlNwbGl0
UGFyYW1ldGVyc011c3RTdGFydE9uTGluZUFmdGVyRGVjbGFyYXRpb24iPgorICAgICAgICAgIDxS
dWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQi
PkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAg
ICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUGFyYW1ldGVyc011c3RCZU9uU2FtZUxp
bmVPclNlcGFyYXRlTGluZXMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAg
ICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+
CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1
bGUgTmFtZT0iUGFyYW1ldGVyTXVzdE5vdFNwYW5NdWx0aXBsZUxpbmVzIj4KKyAgICAgICAgICA8
UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVk
Ij5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAg
ICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlF1ZXJ5Q2xhdXNlTXVzdEZvbGxvd1By
ZXZpb3VzQ2xhdXNlIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9IlF1ZXJ5Q2xhdXNlc011c3RCZU9uU2VwYXJhdGVMaW5lc09yQWxsT25PbmVMaW5lIj4KKyAg
ICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1l
PSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRp
bmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlF1ZXJ5Q2xhdXNlTXVz
dEJlZ2luT25OZXdMaW5lV2hlblByZXZpb3VzQ2xhdXNlU3BhbnNNdWx0aXBsZUxpbmVzIj4KKyAg
ICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1l
PSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRp
bmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlF1ZXJ5Q2xhdXNlc1Nw
YW5uaW5nTXVsdGlwbGVMaW5lc011c3RCZWdpbk9uT3duTGluZSI+CisgICAgICAgICAgPFJ1bGVT
ZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFs
c2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAg
PC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJEb05vdFBsYWNlUmVnaW9uc1dpdGhpbkVsZW1l
bnRzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9w
ZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwv
UnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNvZGVN
dXN0Tm90Q29udGFpbkVtcHR5U3RhdGVtZW50cyI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4K
KyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xl
YW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgor
ICAgICAgICA8UnVsZSBOYW1lPSJDb2RlTXVzdE5vdENvbnRhaW5NdWx0aXBsZVN0YXRlbWVudHNP
bk9uZUxpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
QmxvY2tTdGF0ZW1lbnRzTXVzdE5vdENvbnRhaW5FbWJlZGRlZENvbW1lbnRzIj4KKyAgICAgICAg
ICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFi
bGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgor
ICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkJsb2NrU3RhdGVtZW50c011c3RO
b3RDb250YWluRW1iZWRkZWRSZWdpb25zIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IlVzZVN0cmluZ0VtcHR5Rm9yRW1wdHlTdHJpbmdzIj4KKyAgICAgICAg
ICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFi
bGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgor
ICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlVzZUJ1aWx0SW5UeXBlQWxpYXMi
PgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5
IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxl
U2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgIDwvUnVsZXM+CisgICAgICA8QW5hbHl6
ZXJTZXR0aW5ncyAvPgorICAgIDwvQW5hbHl6ZXI+CisgICAgPEFuYWx5emVyIEFuYWx5emVySWQ9
Ik1pY3Jvc29mdC5TdHlsZUNvcC5DU2hhcnAuU3BhY2luZ1J1bGVzIj4KKyAgICAgIDxSdWxlcz4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iS2V5d29yZHNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAg
ICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9
IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGlu
Z3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29tbWFzTXVzdEJlU3Bh
Y2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9IlNlbWljb2xvbnNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0
dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNl
PC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwv
UnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iU3ltYm9sc011c3RCZVNwYWNlZENvcnJlY3RseSI+
CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkg
TmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVT
ZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJEb2N1bWVudGF0
aW9uTGluZXNNdXN0QmVnaW5XaXRoU2luZ2xlU3BhY2UiPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iU2luZ2xlTGluZUNvbW1lbnRzTXVzdEJlZ2luV2l0aFNp
bmdsZVNwYWNlIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IlByZXByb2Nlc3NvcktleXdvcmRzTXVzdE5vdEJlUHJlY2VkZWRCeVNwYWNlIj4KKyAgICAgICAg
ICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFi
bGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgor
ICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9Ik9wZXJhdG9yS2V5d29yZE11c3RC
ZUZvbGxvd2VkQnlTcGFjZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAg
IDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4K
KyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVs
ZSBOYW1lPSJPcGVuaW5nUGFyZW50aGVzaXNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAg
ICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVu
YWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+
CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ2xvc2luZ1BhcmVudGhlc2lz
TXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAg
ICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3Bl
cnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAg
IDxSdWxlIE5hbWU9Ik9wZW5pbmdTcXVhcmVCcmFja2V0c011c3RCZVNwYWNlZENvcnJlY3RseSI+
CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkg
TmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVT
ZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDbG9zaW5nU3F1
YXJlQnJhY2tldHNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iT3BlbmluZ0N1cmx5QnJhY2tldHNNdXN0QmVTcGFjZWRD
b3JyZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
Q2xvc2luZ0N1cmx5QnJhY2tldHNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxS
dWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQi
PkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAg
ICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iT3BlbmluZ0dlbmVyaWNCcmFja2V0c011
c3RCZVNwYWNlZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAg
ICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0
eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8
UnVsZSBOYW1lPSJDbG9zaW5nR2VuZXJpY0JyYWNrZXRzTXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9Ik9wZW5pbmdBdHRy
aWJ1dGVCcmFja2V0c011c3RCZVNwYWNlZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0
aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8
L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9S
dWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDbG9zaW5nQXR0cmlidXRlQnJhY2tldHNNdXN0QmVT
cGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8
Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+Cisg
ICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUg
TmFtZT0iTnVsbGFibGVUeXBlU3ltYm9sc011c3ROb3RCZVByZWNlZGVkQnlTcGFjZSI+CisgICAg
ICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0i
RW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5n
cz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJNZW1iZXJBY2Nlc3NTeW1i
b2xzTXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IkluY3JlbWVudERlY3JlbWVudFN5bWJvbHNNdXN0QmVTcGFjZWRDb3Jy
ZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblBy
b3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAg
PC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iTmVn
YXRpdmVTaWduc011c3RCZVNwYWNlZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5n
cz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jv
b2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxl
PgorICAgICAgICA8UnVsZSBOYW1lPSJQb3NpdGl2ZVNpZ25zTXVzdEJlU3BhY2VkQ29ycmVjdGx5
Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0
eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVs
ZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkRlcmVmZXJl
bmNlQW5kQWNjZXNzT2ZTeW1ib2xzTXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8
UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVk
Ij5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAg
ICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNvbG9uc011c3RCZVNwYWNlZENvcnJl
Y3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJv
cGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8
L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDb2Rl
TXVzdE5vdENvbnRhaW5NdWx0aXBsZVdoaXRlc3BhY2VJbkFSb3ciPgorICAgICAgICAgIDxSdWxl
U2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZh
bHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAg
IDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29kZU11c3ROb3RDb250YWluU3BhY2VBZnRl
ck5ld0tleXdvcmRJbkltcGxpY2l0bHlUeXBlZEFycmF5QWxsb2NhdGlvbiI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJUYWJzTXVzdE5vdEJlVXNlZCI+Cisg
ICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFt
ZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0
aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgPC9SdWxlcz4KKyAgICAgIDxBbmFseXplclNl
dHRpbmdzIC8+CisgICAgPC9BbmFseXplcj4KKyAgPC9BbmFseXplcnM+Cis8L1N0eWxlQ29wU2V0
dGluZ3M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvV2ViLkNvbmZpZyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1dlYi5Db25maWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY4YjY0OGY4MWI0Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvV2ViLkNvbmZpZwpAQCAtMCwwICsxLDU5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwh
LS0gCisgICAgTm90ZTogQXMgYW4gYWx0ZXJuYXRpdmUgdG8gaGFuZCBlZGl0aW5nIHRoaXMgZmls
ZSB5b3UgY2FuIHVzZSB0aGUgCisgICAgd2ViIGFkbWluIHRvb2wgdG8gY29uZmlndXJlIHNldHRp
bmdzIGZvciB5b3VyIGFwcGxpY2F0aW9uLiBVc2UKKyAgICB0aGUgV2Vic2l0ZS0+QXNwLk5ldCBD
b25maWd1cmF0aW9uIG9wdGlvbiBpbiBWaXN1YWwgU3R1ZGlvLgorICAgIEEgZnVsbCBsaXN0IG9m
IHNldHRpbmdzIGFuZCBjb21tZW50cyBjYW4gYmUgZm91bmQgaW4gCisgICAgbWFjaGluZS5jb25m
aWcuY29tbWVudHMgdXN1YWxseSBsb2NhdGVkIGluIAorICAgIFxXaW5kb3dzXE1pY3Jvc29mdC5O
ZXRcRnJhbWV3b3JrXHYyLnhcQ29uZmlnIAorLS0+Cis8Y29uZmlndXJhdGlvbiB4bWxucz0iaHR0
cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS8uTmV0Q29uZmlndXJhdGlvbi92Mi4wIj4KKwk8Y29u
ZmlnU2VjdGlvbnM+CisJCTxzZWN0aW9uIG5hbWU9InJld3JpdGVyIiByZXF1aXJlUGVybWlzc2lv
bj0iZmFsc2UiIHR5cGU9IkludGVsbGlnZW5jaWEuVXJsUmV3cml0ZXIuQ29uZmlndXJhdGlvbi5S
ZXdyaXRlckNvbmZpZ3VyYXRpb25TZWN0aW9uSGFuZGxlciwgSW50ZWxsaWdlbmNpYS5VcmxSZXdy
aXRlciIvPgorCTwvY29uZmlnU2VjdGlvbnM+CisJPGFwcFNldHRpbmdzLz4KKwk8Y29ubmVjdGlv
blN0cmluZ3MvPgorCTxzeXN0ZW0ud2ViPgorCQk8IS0tIAorICAgICAgICAgICAgU2V0IGNvbXBp
bGF0aW9uIGRlYnVnPSJ0cnVlIiB0byBpbnNlcnQgZGVidWdnaW5nIAorICAgICAgICAgICAgc3lt
Ym9scyBpbnRvIHRoZSBjb21waWxlZCBwYWdlLiBCZWNhdXNlIHRoaXMgCisgICAgICAgICAgICBh
ZmZlY3RzIHBlcmZvcm1hbmNlLCBzZXQgdGhpcyB2YWx1ZSB0byB0cnVlIG9ubHkgCisgICAgICAg
ICAgICBkdXJpbmcgZGV2ZWxvcG1lbnQuCisgICAgICAgIC0tPgorCQk8Y29tcGlsYXRpb24gZGVi
dWc9InRydWUiIGRlZmF1bHRMYW5ndWFnZT0iYyMiIHRhcmdldEZyYW1ld29yaz0iNC4wIi8+CisJ
CTwhLS0KKyAgICAgICAgICAgIFRoZSA8YXV0aGVudGljYXRpb24+IHNlY3Rpb24gZW5hYmxlcyBj
b25maWd1cmF0aW9uIAorICAgICAgICAgICAgb2YgdGhlIHNlY3VyaXR5IGF1dGhlbnRpY2F0aW9u
IG1vZGUgdXNlZCBieSAKKyAgICAgICAgICAgIEFTUC5ORVQgdG8gaWRlbnRpZnkgYW4gaW5jb21p
bmcgdXNlci4gCisgICAgICAgIC0tPgorCQk8YXV0aGVudGljYXRpb24gbW9kZT0iV2luZG93cyIv
PgorCQk8IS0tCisgICAgICAgICAgICBUaGUgPGN1c3RvbUVycm9ycz4gc2VjdGlvbiBlbmFibGVz
IGNvbmZpZ3VyYXRpb24gCisgICAgICAgICAgICBvZiB3aGF0IHRvIGRvIGlmL3doZW4gYW4gdW5o
YW5kbGVkIGVycm9yIG9jY3VycyAKKyAgICAgICAgICAgIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9m
IGEgcmVxdWVzdC4gU3BlY2lmaWNhbGx5LCAKKyAgICAgICAgICAgIGl0IGVuYWJsZXMgZGV2ZWxv
cGVycyB0byBjb25maWd1cmUgaHRtbCBlcnJvciBwYWdlcyAKKyAgICAgICAgICAgIHRvIGJlIGRp
c3BsYXllZCBpbiBwbGFjZSBvZiBhIGVycm9yIHN0YWNrIHRyYWNlLgorCisgICAgICAgIDxjdXN0
b21FcnJvcnMgbW9kZT0iUmVtb3RlT25seSIgZGVmYXVsdFJlZGlyZWN0PSJHZW5lcmljRXJyb3JQ
YWdlLmh0bSI+CisgICAgICAgICAgICA8ZXJyb3Igc3RhdHVzQ29kZT0iNDAzIiByZWRpcmVjdD0i
Tm9BY2Nlc3MuaHRtIiAvPgorICAgICAgICAgICAgPGVycm9yIHN0YXR1c0NvZGU9IjQwNCIgcmVk
aXJlY3Q9IkZpbGVOb3RGb3VuZC5odG0iIC8+CisgICAgICAgIDwvY3VzdG9tRXJyb3JzPgorICAg
ICAgICAtLT4KKwkJPGh0dHBNb2R1bGVzPgorCQkJPGFkZCBuYW1lPSJVcmxSZXdyaXRlciIgdHlw
ZT0iSW50ZWxsaWdlbmNpYS5VcmxSZXdyaXRlci5SZXdyaXRlckh0dHBNb2R1bGUsIEludGVsbGln
ZW5jaWEuVXJsUmV3cml0ZXIiLz4KKwkJPC9odHRwTW9kdWxlcz4KKwkJPCEtLXVybE1hcHBpbmdz
IGVuYWJsZWQ9InRydWUiPgorICAgICAgPGFkZCB1cmw9In4vcmVkaXJlY3QiIG1hcHBlZFVybD0i
fi9SZWRpcmVjdC5hc3B4IiAvPgorICAgIDwvdXJsTWFwcGluZ3MtLT4KKwkJPHBhZ2VzIGNvbnRy
b2xSZW5kZXJpbmdDb21wYXRpYmlsaXR5VmVyc2lvbj0iMy41IiBjbGllbnRJRE1vZGU9IkF1dG9J
RCIvPjwvc3lzdGVtLndlYj4KKwk8c3lzdGVtLndlYlNlcnZlcj4KKwkJPG1vZHVsZXMgcnVuQWxs
TWFuYWdlZE1vZHVsZXNGb3JBbGxSZXF1ZXN0cz0idHJ1ZSI+CisJCQk8YWRkIG5hbWU9IlVybFJl
d3JpdGVyIiB0eXBlPSJJbnRlbGxpZ2VuY2lhLlVybFJld3JpdGVyLlJld3JpdGVySHR0cE1vZHVs
ZSIvPgorCQk8L21vZHVsZXM+CisJPC9zeXN0ZW0ud2ViU2VydmVyPgorCTxyZXdyaXRlcj4KKwkJ
PHJld3JpdGUgdXJsPSJ+L3JlZGlyZWN0IiB0bz0ifi9SZWRpcmVjdC5hc3B4Ii8+CisJCTxyZXdy
aXRlIHVybD0ifi9wYWdlLyhbMC05XSspJCIgdG89In4vUGFnZS5hc3B4P3BhZ2VOdW1iZXI9JDEi
Lz4KKwkJPHJld3JpdGUgdXJsPSJ+L3BhZ2UvKFswLTldKykoXD8pKC4qKSIgdG89In4vUGFnZS5h
c3B4P3BhZ2VOdW1iZXI9JDEmYW1wOyQzIi8+CisJPC9yZXdyaXRlcj4KKzwvY29uZmlndXJhdGlv
bj4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2FjdHVhbFhodG1sUGFnZS54aHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2FjdHVhbFhodG1sUGFnZS54aHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTBmNTQ3MDNjMTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9hY3R1YWxY
aHRtbFBhZ2UueGh0bWwKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0idXRmLTgiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEt
c3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRpdGxlCisgICAgPC90aXRsZT4KKyAgPC9o
ZWFkPgorICA8Ym9keT4KKyAgICA8cD4KKyAgICAgPGEgaHJlZj0iL2ZvbyI+Rm9vPC9hPgorICAg
IDwvcD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWpheHlfcGFnZS5odG1sIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWpheHlfcGFnZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjM0MDMxZDU1YQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2FqYXh5X3BhZ2UuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8Zm9ybSBhY3Rpb249ImphdmFzY3JpcHQ6dXBkYXRlRG9tKCkiPgorICA8
bGFiZWwgZm9yPSJ0eXBlciI+TmV3IGxhYmVsIHRleHQ6PC9sYWJlbD4KKyAgPGlucHV0IG5hbWU9
InR5cGVyIiB0eXBlPSJ0ZXh0Ii8+CisgIDxici8+CisgIDxsYWJlbCBmb3I9ImNvbG9yIj5TZWxl
Y3QgbGFiZWwgY29sb3I6PC9sYWJlbD4KKyAgPGlucHV0IG5hbWU9ImNvbG9yIiBpZD0icmVkIiB2
YWx1ZT0icmVkIiB0eXBlPSJyYWRpbyIvPlJlZAorICA8aW5wdXQgbmFtZT0iY29sb3IiIGlkPSJn
cmVlbiIgdmFsdWU9ImdyZWVuIiB0eXBlPSJyYWRpbyIvPkdyZWVuCisgIDxici8+CisgIDxpbnB1
dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkFkZCBMYWJlbCIvPgorPC9mb3Jt
PgorPGRpdiBpZD0idXBkYXRlX2J1dHRlciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8
c2NyaXB0PgorICB2YXIgYnV0dGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZV9i
dXR0ZXInKTsKKworICB2YXIgdGV4dFByb3BlcnR5ID0gYnV0dGVyWydpbm5lclRleHQnXSA/ICdp
bm5lclRleHQnIDogJ3RleHRDb250ZW50JzsKKworICB2YXIgbGlzdGVuZXJzID0gW107CisgIGZ1
bmN0aW9uIHJlZ2lzdGVyTGlzdGVuZXIoZm4pIHsKKyAgICBsaXN0ZW5lcnMucHVzaChmbik7Cisg
IH0KKworICBmdW5jdGlvbiB1cGRhdGVEb20oKSB7CisgICAgYnV0dGVyLnN0eWxlLmRpc3BsYXkg
PSAnYmxvY2snOworICAgIGJ1dHRlclt0ZXh0UHJvcGVydHldID0gJ1VwZGF0aW5nJzsKKyAgICBk
aXNhYmxlRm9ybSgpOworICAgIHRpY2soKTsKKyAgfQorCisgIGZ1bmN0aW9uIGRpc2FibGVGb3Jt
KCkgeworICAgIHZhciBpbnB1dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5w
dXQnKTsKKyAgICBmb3IgKHZhciBpID0gMCwgaW5wdXQ7IGlucHV0ID0gaW5wdXRzW2ldOyArK2kp
IHsKKyAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICB9CisgIH0KKworICBmdW5jdGlv
biBlbmFibGVGb3JtKCkgeworICAgIHZhciBpbnB1dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnaW5wdXQnKTsKKyAgICBmb3IgKHZhciBpID0gMCwgaW5wdXQ7IGlucHV0ID0gaW5w
dXRzW2ldOyArK2kpIHsKKyAgICAgIGlucHV0LmRpc2FibGVkID0gZmFsc2U7CisgICAgfQorICB9
CisKKyAgZnVuY3Rpb24gdGljaygpIHsKKyAgICB2YXIgbGVuZ3RoID0gYnV0dGVyW3RleHRQcm9w
ZXJ0eV0uc3Vic3RyaW5nKCdVcGRhdGluZycubGVuZ3RoKS5sZW5ndGg7CisgICAgaWYgKGxlbmd0
aCAhPSAxMCkgeworICAgICAgYnV0dGVyW3RleHRQcm9wZXJ0eV0gKz0gJy4nOworICAgICAgd2lu
ZG93LnNldFRpbWVvdXQodGljaywgNTAwKTsKKyAgICB9IGVsc2UgeworICAgICAgZW5hYmxlRm9y
bSgpOworICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
ICAgdmFyIGNvbG9ycyA9IGRvY3VtZW50LmZvcm1zWzBdLmNvbG9yOworICAgICAgZm9yICh2YXIg
aSA9IDAsIGNvbG9yOyBjb2xvciA9IGNvbG9yc1tpXTsgKytpKSB7CisgICAgICAgIGlmIChjb2xv
ci5jaGVja2VkKSB7CisgICAgICAgICAgZGl2LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9y
LnZhbHVlOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgICBkaXZb
dGV4dFByb3BlcnR5XSA9IGRvY3VtZW50LmZvcm1zWzBdLnR5cGVyLnZhbHVlOworICAgICAgZGl2
LmNsYXNzTmFtZSA9ICdsYWJlbCc7CisgICAgICBkb2N1bWVudC5mb3Jtc1swXS50eXBlci52YWx1
ZSA9ICcnOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworCisgICAgICBi
dXR0ZXJbdGV4dFByb3BlcnR5XSA9ICdEb25lISc7CisKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICB3aGlsZSAobGlzdGVuZXJzLmxlbmd0aCkgeworICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICBsaXN0ZW5lcnMuc2hpZnQoKShkaXZbdGV4dFByb3BlcnR5
XSk7CisgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgYnV0dGVyW3RleHRQcm9w
ZXJ0eV0gPSAiRXhjZXB0aW9uIHNlZW46ICIgKyBlOworICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgfSwgNTAwKTsKKyAgICB9CisgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2FsZXJ0cy5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWxlcnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFhZGQwZGI5OTEyCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWxl
cnRzLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPGh0bWw+Cis8IS0tIFBhZGRpbmcgdG8gYWNjb3Vu
dCBmb3Igc21hbGwgc2NyZWVucyBvZiBtb2JpbGUgZGV2aWNlcyAtLT4KKzxzdHlsZT4KKyAgICBw
IHttYXJnaW4tdG9wOjQ4cHg7fQorPC9zdHlsZT4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0aW5n
IEFsZXJ0czwvdGl0bGU+CisKKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
ICAgICAgIGZ1bmN0aW9uIHNldElubmVyVGV4dChpZCwgdmFsdWUpIHsKKyAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChpZCkuaW5uZXJIVE1MID0gJzxwPicgKyB2YWx1ZSArICc8L3A+
JzsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlQcm9tcHQoKSB7CisgICAg
ICAgICAgc2V0SW5uZXJUZXh0KCd0ZXh0JywgcHJvbXB0KCdFbnRlciBzb21ldGhpbmcnKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkaXNwbGF5UHJvbXB0V2l0aERlZmF1bHQoKSB7
CisgICAgICAgICAgc2V0SW5uZXJUZXh0KCd0ZXh0JywgcHJvbXB0KCdFbnRlciBzb21ldGhpbmcn
LCAnVGhpcyBpcyBhIGRlZmF1bHQgdmFsdWUnKSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBkaXNwbGF5VHdvUHJvbXB0cygpIHsKKyAgICAgICAgICBzZXRJbm5lclRleHQoJ3RleHQx
JywgcHJvbXB0KCdGaXJzdCcpKTsKKyAgICAgICAgICBzZXRJbm5lclRleHQoJ3RleHQyJywgcHJv
bXB0KCdTZWNvbmQnKSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzbG93QWxlcnQo
KSB7CisgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBhbGVydCgnU2xvdycpOworICAgICAgICAgIH0sIDIwMCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8aDE+VGVzdGluZyBBbGVydHMgYW5kIFN0dWZmPC9o
MT4KKworPHA+VGhpcyB0ZXN0cyBhbGVydHM6IDxhIGhyZWY9IiMiIGlkPSJhbGVydCIgb25jbGlj
az0iYWxlcnQoJ2NoZWVzZScpOyI+Y2xpY2sgbWU8L2E+PC9wPgorCis8cD5UaGlzIHRlc3RzIGFs
ZXJ0czogPGEgaHJlZj0iIyIgaWQ9ImVtcHR5LWFsZXJ0IiBvbmNsaWNrPSJhbGVydCgnJyk7Ij5j
bGljayBtZTwvYT48L3A+CisKKzxwPkxldCdzIG1ha2UgdGhlIDxhIGhyZWY9IiMiIGlkPSJwcm9t
cHQiIG9uY2xpY2s9ImRpc3BsYXlQcm9tcHQoKTsiPnByb21wdCBoYXBwZW48L2E+PC9wPgorCis8
cD5MZXQncyBtYWtlIHRoZSA8YSBocmVmPSIjIiBpZD0icHJvbXB0LXdpdGgtZGVmYXVsdCIgb25j
bGljaz0iZGlzcGxheVByb21wdFdpdGhEZWZhdWx0KCk7Ij5wcm9tcHQgd2l0aCBkZWZhdWx0IGhh
cHBlbjwvYT48L3A+CisKKzxwPkxldCdzIG1ha2UgVFdPIDxhIGhyZWY9IiMiIGlkPSJkb3VibGUt
cHJvbXB0IiBvbmNsaWNrPSJkaXNwbGF5VHdvUHJvbXB0cygpOyI+cHJvbXB0cyBoYXBwZW48L2E+
PC9wPgorCis8cD5BIDxhIGhyZWY9IiMiIGlkPSJzbG93LWFsZXJ0IiBvbmNsaWNrPSJzbG93QWxl
cnQoKTsiPlNMT1c8L2E+IGFsZXJ0PC9wPgorCis8cD5UaGlzIGlzIGEgdGVzdCBvZiBhIGNvbmZp
cm06CisgICAgPGEgaHJlZj0ic2ltcGxlVGVzdC5odG1sIiBpZD0iY29uZmlybSIgb25jbGljaz0i
cmV0dXJuIGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZT8nKTsiPnRlc3QgY29uZmlybTwvYT48L3A+CisK
KzxwPlRoaXMgaXMgYSB0ZXN0IG9mIHNob3dNb2RhbERpYWxvZzogPGEgaHJlZj0iIyIgaWQ9ImRp
YWxvZyIgb25jbGljaz0ic2hvd01vZGFsRGlhbG9nKCdqYXZhc2NyaXB0UGFnZS5odG1sJykiPnRl
c3QgZGlhbG9nPC9hPjwvcD4KKworPHA+VGhpcyBpcyBhIHRlc3Qgb2YgYW4gYWxlcnQgaW4gYW4g
aWZyYW1lOgorICA8aWZyYW1lIHNyYz0iaWZyYW1lV2l0aEFsZXJ0Lmh0bWwiIG5hbWU9ImlmcmFt
ZVdpdGhBbGVydCI+PC9pZnJhbWU+Cis8L3A+CisKKzxwPlRoaXMgaXMgYSB0ZXN0IG9mIGFuIGFs
ZXJ0IGluIGEgbmVzdGVkIGlmcmFtZToKKyAgPGlmcmFtZSBzcmM9ImlmcmFtZVdpdGhJZnJhbWUu
aHRtbCIgbmFtZT0iaWZyYW1lV2l0aElmcmFtZSI+PC9pZnJhbWU+Cis8L3A+CisKKzxwPlRoaXMg
aXMgYSB0ZXN0IG9mIGFuIGFsZXJ0IG9wZW4gZnJvbSBvbmxvYWQgZXZlbnQgaGFuZGxlcjogPGEg
aWQ9Im9wZW4tcGFnZS13aXRoLW9ubG9hZC1hbGVydCIgaHJlZj0icGFnZVdpdGhPbkxvYWQuaHRt
bCI+b3BlbiBuZXcgcGFnZTwvYT48L3A+CisKKzxwPlRoaXMgaXMgYSB0ZXN0IG9mIGFuIGFsZXJ0
IG9wZW4gZnJvbSBvbmxvYWQgZXZlbnQgaGFuZGxlcjogPGEgaWQ9Im9wZW4td2luZG93LXdpdGgt
b25sb2FkLWFsZXJ0IiBocmVmPSJwYWdlV2l0aE9uTG9hZC5odG1sIiB0YXJnZXQ9Im9ubG9hZCI+
b3BlbiBuZXcgd2luZG93PC9hPjwvcD4KKworPHA+VGhpcyBpcyBhIHRlc3Qgb2YgYW4gYWxlcnQg
b3BlbiBmcm9tIG9udW5sb2FkIGV2ZW50IGhhbmRsZXI6IDxhIGlkPSJvcGVuLXBhZ2Utd2l0aC1v
bnVubG9hZC1hbGVydCIgaHJlZj0icGFnZVdpdGhPblVubG9hZC5odG1sIj5vcGVuIG5ldyBwYWdl
PC9hPjwvcD4KKworPHA+VGhpcyBpcyBhIHRlc3Qgb2YgYW4gYWxlcnQgb3BlbiBmcm9tIG9uY2xv
c2UgZXZlbnQgaGFuZGxlcjogPGEgaWQ9Im9wZW4td2luZG93LXdpdGgtb25jbG9zZS1hbGVydCIg
aHJlZj0icGFnZVdpdGhPblVubG9hZC5odG1sIiB0YXJnZXQ9Im9uY2xvc2UiPm9wZW4gbmV3IHdp
bmRvdzwvYT48L3A+CisKKzxwPlRoaXMgaXMgYSB0ZXN0IG9mIGFuIGFsZXJ0IG9wZW4gZnJvbSBv
bmNsb3NlIGV2ZW50IGhhbmRsZXI6IDxhIGlkPSJvcGVuLW5ldy13aW5kb3ciIGhyZWY9ImJsYW5r
Lmh0bWwiIHRhcmdldD0ibmV3d2luZG93Ij5vcGVuIG5ldyB3aW5kb3c8L2E+PC9wPgorCis8ZGl2
IGlkPSJ0ZXh0Ij48L2Rpdj4KKzxkaXYgaWQ9InRleHQxIj48L2Rpdj4KKzxkaXYgaWQ9InRleHQy
Ij48L2Rpdj4KKworPHA+PHNlbGVjdCBpZD0ic2VsZWN0IiBvbmNoYW5nZT0iYWxlcnQoJ2NoYW5n
ZWQnKTsiPgorICA8b3B0aW9uIGlkPSJub3ZhbHVlIiB2YWx1ZT0iIj5Ob3RoaW5nIHNlbGVjdGVk
PC9vcHRpb24+CisgIDxvcHRpb24gaWQ9InZhbHVlMSIgdmFsdWU9IjEiPk9uZTwvb3B0aW9uPgor
ICA8b3B0aW9uIGlkPSJ2YWx1ZTIiIHZhbHVlPSIyIj5Ud288L29wdGlvbj4KKyAgPG9wdGlvbiBp
ZD0idmFsdWUzIiB2YWx1ZT0iMyI+VGhyZWU8L29wdGlvbj4KKzwvc2VsZWN0PjwvcD4KKzxwPjxp
bnB1dCBpZD0iaW5wdXQiIG9uY2hhbmdlPSJhbGVydCgnY2hhbmdlIGZpcmVkJyk7IiB2YWx1ZT0i
b25jaGFuZ2UiLz48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9hbmltYWxzLy5naXRpZ25vcmUg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9hbmltYWxz
Ly5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU2OWRl
MjliYjJkCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9iYW5uZXIuZ2lmIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvYmFubmVyLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjM0MzU0MDFmODc4YWYzMDkz
MGJmYjE5ZWUxZTM0MGQ4MjNlNzA2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyMTA5CnpjbWVJ
eGBCeEpNMD5FK2JEKjh8PGhYUldmdV95IyNAYzw+JkpQakkxa2pNck04Zzs1ODRzPyhLMXw4Tytq
eHVQfQp6MGl5PHRGaFlPOzI/bVc0WHB+QDR2VF82b0FYXz1ZcF5GdGN0T3gwZUAreGZpaHk1QDFe
Q3hgWWAtWEJrbn1aTFoKem8jU0lRV281K3pTUio0TkktTzNmUj9CMkVrfFokPDh5X0Q+NVR2UUsz
NCRSSTBeaCFVSjJeUWkxY2hCKVQ+P1B4CnpAIzlCNiEwK3p2b31Ra3J1ZGtuKG5LN0hxSmIpKlkl
U1p7UylvSW1Rd2NlbH45djtSPmowMTR3WUJAenkyIyZCbwp6N0p2Z1hnLW5QREFxKjBMMCkjKiQ1
KHl6ODxPO2F9NSYjJiRmPj4mZWRUM3x9QXxPblI4Sll9eWh+TTdjUEQpOE8KeiNPOG47MFYwcXE8
cF8hQl5mfnxxQnZKX249SX4maTVFWVZRNSpPb3FtPUVDKWhHUG4pTEk/PlpHNl8hTTlFaWdNCnpj
YHtsaW1Xc3NeRiZrdXl8MEVNajxQciNoUHpuVzZQelZjZzUrP3trT287Jik7M0lzTEt3JTZQenlk
XiFARXsmNwp6cnpyXn5MUFFffTNOZkpvNihBXnI1dHZqZWc+amUtdW45MiU1fS16X3NXO1MxV20x
X15DWlEhdHI0bTJAZis4UmkKemY+MjFJUD1GWXkpRj4mNjV9X2lScmo9P1hpbGNoSFVJZEdAU31s
U2hBUCNDWThvNjlmUVkwbSMqZjUpaUBMJlFhCnpOSjZUUk5AKiFkcUxoQHYzN2w1WVFuP2dHUTVj
MUI5Mlk/JWdUY1REYDUxK3ZWaVpQVFQxbUlJd2twKCRybHV3bAp6Q1cxKkEjbjlSUmAoSl56Uik2
fk0zc3lGPlI9WEZ2aDIxU34kaDJgXzlCOD4pQHtqWCZ0OVMpclJmQChlPU1DXmMKek9JMnl9V3Nl
WmJqakpzKT02RllgNDtaIU9QcCRfWFgpV01aREBge3hyO1pPOHQ1dihOVGFqfTxvI2MmMVdebE54
Cnp6MkliQHNIe2NnOUMpRjMxKnpJd1pGcGVxdCZaTmREVkYqM3NNRGk4U05QMzlibWcrIW9mKE8l
bm9STEVafTtvZAp6VCFldz9jaTs0cEtVbUJeYEYyaTMtQGYzR15JK1pQaXJ4bmFtJjlNM2QjZ0NR
RDxNTGJEODt8Mk4mWDdyd0IpXk8Keig1dlFHRS0+ez8jNVVlTmElQW5gcj5hKzNIUmJ4QkJUakI/
SEM7V0s4dGVDPEl3Pj1LPkdBPko9LWAyODFzN0JLCnp7Jm81alBxJTtue1FpZTIkQyVQWCkoPlpv
LWE1NFliNUdiZ2JXO3xQNypqZHd2Oz4oQmY9YG10LXxuNX56cHdrSAp6PVMrYT1PektXa2o3UVJw
d1ZnWmhhIWhCSit6fjh2JX1fLUw3S3syJXA3PHRIdlpwY2ZmUXVvbjZRMzspLU9GeWkKemNHVChB
eX5lPHZsJTdXSyglOHd4eH1yVFZaalFSZS13RDM5S2heZTJVZzYmdChENTtzfDUqNVYwTlV0VW47
UjhBCnokRTlUN2k+LU5PU0RFJUAhK1k3Wl8tTSpuRyRgYD0+OGxzYThGQjdBMX1fQkp5QSZwK3te
bkdhZUg+NT9wWHFuMAp6UyghTmFeaXg/VDJUPXs+ZWw2YkZVLTBEUzhuMlFYcEVaM1lYSSp7bGln
SSo4JUUoaVlGMXBsZGlSKTtGcXV5bXEKemw/TzEoRUB6X0NLWkgwZDhENlBKV0BlcGVYXjNhZmZJ
PlJMN35rJkRKKGlHdHUkeSpHSXhQd2tSJXdVa1M2Jj1rCnpvVzVzWW9qPilhQjdFSWY5XyhnVntS
V2x7MV5TKz9XJHFFfmpudjUyPUppNmxIeUxxKHdVdW4oMU8zWj14QjcrMwp6SU51cHsodXdeemIx
YzJqYjsyKlUoVlFPcnV3Pm4pWWxlVDFpdm9Ve1RVeGlgKFl5clQ8U1pfYz9uTiZOSihoZzYKeklf
U1dpaklAenAyNmMkTiRtajh0IVJCUnN6PXBzTmc7N2Y1MmIxK1ReSC0rNHIrcHtlVl5+YH00SXFl
QkhDJTxXCnoqSHlXJVMtaGc8dU1hMUZ5P0ReYHFXfTMqd1JCUm0tfWZze3Y+bHF3LUc0WjkjMF9a
LXtxRUVXZWVzdXFsK0s4TAp6b004cnNaUFV6d3tzKWZfVT15PjJYQGpUM3d9UUVZbm5jZVZ4QXQ4
K3A2NU4re29+OHZmODlLSV5WR1hiX3hmXjIKejtLYzFGZCZseUY9TyUzOTFeTGZedzJiaU5ya2Ru
dVhyPUNAWHBUPkR8R2xVQ0hGc31MT3FifHFNbD1KeGBjO2xlCnppaT1CWVlTclkxLXIhJWBkVWch
TjU/IzBUdVI/QWdWPUN8TGU2fjN1ZHBjWXsjZjkzUGB8S3E8bGdiSmR6LU0rdAp6d19pPSN4YkBQ
OXNeXjhyJTlDc0pVbXlQNElvfnZiamlPUWdqQXphfU95eDFBQFp0ejZecFdUN2pecHZfdF9wTGcK
ellwWTh+KUZxP2k9bmhFVnY3I35hIVJHP2FtaXcjZnQmOz1oO1lJbiFJMU1sNllkcmtpK1FpSkc4
LXwxOXVxdWFUCnozO1B6LVN1eCg5VSFUNyhiPUxkMWNsRmxKdXlAPU56Mmg+KnFfcWJ0S2dZS0Np
bkVpfmJtRmM+Yk0xWiVjcFBBfQp6SSkzfHxncUcjIXlfb2FIUkRLWlNAfn1JKT9QMTw2d2shUWw9
ZkF3SjlXdzNTez4zPV92M0oyXjc5JHtiTyshITUKekE3TCNIIShYcFhWM2NgSSVANTE1PX1PTVp7
PzxDSyNvbTQ7UG52ZiZWcGFITFNucEIkb2ItTH1KWD8hViY8ZkA3CnpRdTtoMSN6RjwhWip5O0Rt
Iz5aRUpgdEhHVyV0fDR7bkx6M2ZhJUhXazhEPmpFZX5rfVRgaFNueU9pcyU4YH5oSgp6Q0JITFV4
bHpTNiFIWDwoWjx7amNwMyNLaG1LIWZAUmh5Zis/ST4rMjd+UTJ9Xzg4a1N5YH1KZHdyYjAzWlU9
NioKeCRVbjhJU1dgeU40cjFDO1dWTl9yK2dIMyEoKUlVWm59YGJiXjQzbDxeWTs/Rk9CRmxuVDxv
bUFgd3VffHJpMV9oCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9iZWFjaC5qcGcgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9iZWFjaC5qcGcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDAyMjM3Y2JkZDZjZjZhN2YzZDQ4MzUwY2Q0MGFiMWQ2NGVlNGY4ZQpHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMTQwODUKemNtYlZ5MlM4S0YrVU8oIWZeX3QjZlJxUmRpQW9QakN4
ezZoUWdsVUBSa3tmYU5CfmlCKEk4QHAybmF6aUJFJUdtCnp1NH4hZztAWiRQVnAjK04lT1pBQTVj
P3xQZihtYT16O2ZeMWNtTWFsej99MSlJZGYqZEp+UTdwPEs1JTtmazY7MAp6a09uWHE0M05WPUZ5
NTtrNSROWilpcH50RDElXj1KM2pvdnVWJCN4KnU+PTR6OyFATEB7KS02X0Q8VFFfNHVBKm4KekUm
N1h6JVNpTDMoP2U3K1leJHBMbSY8VjFNQjVIcXc2QX04Xio9dm9yXjVqT3otWXB6JG0kOCQ2b3Ez
YVU8VlhsCnptemtDYytibHVoSUNlfXRnZC1ybEFibHkqNTVpal50aGYzcklRQTx6SnxRQ3gwSlV6
fENOKFpDOXJtTHBmVXN8VAp6TXFDUX43USl5dWx4QTI1ZjBAQW1jJCkhJHlaKXN2RzZSNGdZWEYj
T3tpVGoqMWk8dj0wNW0jKHNlOGp6QGN9Y1YKekg2emo0TiExLWpYRUVnUS1TUDFeKSZTczMwUWs2
UGVFaHc1ZUVnI1hqJlUxK3JzVE1fPX49M181RS1tOTA0ZDM5CnpBLTx9Z0tEX0VBcSVMRUBgeTdh
OFJZQz84ZyVgbDRBQE1Pd0FnK0s2O2h5K31DRGg2S2liTWBBNVcrLVFFK3dZWgp6bWNoRnh7UHJS
ekdqUW9kOCpGLU5hdV9PNHZgQFglSERUY3BDY3U4eXIpNGY/TEt1RkY0YSYlM3A/JUpTPHlsZnAK
ejVGT3MzVHJlfWZVbFdZQmYlSWRZdmVgPV40fWJ9KmhwPUI1Z2w5bmI1KG93e0FPJDNWYmErcE5l
S1ViU1NQWDFJCno4bXc2WjUmO01QQ0J5UWNefnRieEF7ZDc0MncoVCZhTTxDMiF7RnpoMm84VGJK
YV9vUjtoPS1tO2MzRzlAWClOawp6bFU5OXN5Q3I9VUMkNj5WNmAtcWRLKnZNLW9md1ModjR+TSZN
Z1ZAYDBtTzZTPUBUeUJlfSglT2UzTClwTzgtcDUKejFnOzxjOWFvVCVfNGpKYEZYTiRAQnkwfkd7
QGc8PiMzfT1QNTVNRHBFQz9zVnJ2JXRPYX12KzV4JVVhSEZQTmIxCnpRT3JNY18odFpoT01tJnsl
WG9qTkhBWiNsSDI/NV9wKn4oVW1MS1QtRVRPTHtUSnhuSkshZFclZ2VDNkZTWU1DKAp6Um0tbj9O
UHkjaGxKVyVDemsjd1JmUWZPRjNDNkl1dmBIQnhzMz1ERGY7fkFGJFZeekQzSDFwMHR4NE9FJlJO
YVEKekJzZSlaSTFfeEtZZV52WnR3fjgrbzAqVksydXpLJFRSQDBPUDl+X0BXRHdGNUc3ezNXNjV7
UjlaenBVWGd9Xmt3CnpuM1JPezd5fDByPTs+PGBJbXJwQ2BpYVliZkJSTCN7fD01bnohcD4yYX1v
Z3Y0T0xsO0NlWHlfMTEkVlgxQ35eYgp6ZmVNQ3AweH5nRTBTP3xWc0lTMTcwQ2cxJUtwfCQ8WEx2
NyRJTjFqRmZOQGZOaUA8aE8rY2BqT3ZpJThvMll4WkIKellmPmshZ2U4SWdmbEdadTIhUnBIU09o
bTAyU09tfkRwMD8jQD1CXlo8Zk47K2dCJCFPSTRwRWBjNS0peTQjI3doCnpAWUJkeCVgRkUkIXY7
SFNDYjU5RlVrdSRCPmBCZVIkO3FKQF9YIzdjUUwpLSpjKT1kYkw+cUwoSj1vOXZQKWFhQgp6WVhT
PndLKl5WU2RXcVdTYGlLKHMmK1ZnMkBSUT8wLWpxejRnclVERihmWnRtRSY3Q3lxbDFHOEd1Wn1t
UkR9SisKekF1TGFYYHZoYXxpfWdOI248bSEoNDZoZChPbndWRkV1USVXbVZXOUpBfSs7Ril9dGAp
RF9IR3dLUmxfJW13TU8/Cnp7aHsoNWZfSFJnIX43SEh8RVVoUG96d2A3MSV3SChwYyh9R1F2Sn5U
RHAmfXh6KiExeWRrRWcoKnleRGw7VD57Rwp6KWZPfVUwTXBJUiV1STgpd0A9Tm1pLX0ob25fdzVX
Q2RHYnpPcSN1O29yNjhfVDxeWDxCYHFaKEdsc0F9Qns/PDIKemVaN35acytsezQoUTEyM2Z+cmE4
X2c8Q31wPiR8Xj0/TWd+OW9mI28ocCFyX0FiNig3QyVRQTImP1l+SlBoT1VqCnpCZCVNdyZUZ0h2
LUowfihfS3QzRFp1U21OX0QpVz11IVV7TGhTYmNNXnxxLVFSdWkzaz5TcWFAcXwtVFJuVmRETAp6
MWhuNm4qZm5jMnkofSUhZmo8OHhAUWhndEc1c2dmNX0qTzlYb0ReNktYKHRtX0prR2dBcWxBJi1Z
I35vd29jQT0KelBLMTtjUHk1ZmNVanxYTnE7Yit5KjJTYkpjeiomMi16MjFHcHFOMyVJWlMtXz42
TUJUNjlgVXhuO2V0RE14N0tLCnpFZTU1PStyaSMoQHt8OH5IOTQtUUp4Y0xjOUdHQ1FzdXVGc1Rn
JWhfdiNoK2UhMXlpYmdReDJvT2YlNChLRng1Tgp6KGFoPF8xUSNvVW5Iajs/LXFGUy1iUDBuVnZM
clpnU0BjSHN2VHJrXjApeE5ibGJwRlpafEFPXnRrdlpRJWtvN1YKeng5e0FGYzdtQntXSkU5fV8q
aHhfWT5mengqIXNXempXKz45UDBXMlA0fk1ZP1NWSWlYNUhvJVdLKClvRiEhOyttCno/NDB+enVz
QWghNFpQK1FFcDZESzBYam5yNHVANjRzakk2JmNaU0o8P30zYDNgcWJIdXo4Y2RRRj9kVFo7KmA3
Ugp6cHIrTzA7fUBuZytoNUliaiFvWShNUWdAUEJWJmBmKTsyYGFKaElFZU1YcWt7ZW9McXt8QTQ/
QyozeEMpRVFiclIKenhjRyNgKW9lfnVNJntiQWI/WX18PVdXZzN3dGRHPWVvM2pJWTtTcVJLQX43
NW1EU1lOKWdMPFh2JUtOdEZPOD51Cnp6NCtURCNwVUtKU0ZiNU1JeyliVXYtQFZ4Z1drU31rTk84
NTQ/ZytwXl8hdSQhfChuYzhBYSlXOSR8djQmeUBXZQp6VTUxYkB0ZVA1NTRVZmA9IUxFWV5YUS13
PStmaWV4RjlSUkxvbzRCanRCRVkkYk1XfHVET1MkUlNKUHdEK3FHdVEKekF3UVY9N2ZQQ252aX4+
MncpfXJsX0w7Q1Jib0JybzkwbSN4WDkjPmlsZnY/P202NWB8c0NUO1pQdThxJEJyZXNLCnp6RXo+
KVJDOW18WHAlTCkzVHZuTShXUll0JlcwWmVwS28/MHJQPWx5e0IrWks4YVlYa2d0S2pYQUQlZHF7
O2F0Ngp6PD88flg5bWF2bFpveUdIRXImRGoobVY0XiEtSi1eKnx5aCl3Q195K2kmMGIobDlnSUUq
USgmQ3ZWTnlGLSFZKGUKenpBJG9LVjsrdGl5TyQ0d2w2UlBLIV5OZWApZW9CYm1PMCF4NncqJGU1
OzNjaEF0Y3NkZiYrc3pMVjtJa1ZBVlZhCnoob0x6T3sjbDImXjxsY1NpQEJPYSVUbj9TY35kSEIt
ZVVRMFR8NnlhZ2J2aD1MPyY1SUxgO1FQcyRIY15Ebmc8KAp6PnR5ciFLPig3NTA0N3NPJDUwVkU+
QH1EJmctO2FvdzFPZ3UxX0MqUUdLRmYzMDBGYzg5fDQ0cFdkdWBrUSVlcDYKeiFwfElvKEpQNTko
ckQqTGw1fk9+PFFxKTJiKG1VP0Z4Iy1Qezc1M15VPmNfcl9VVmhyUnBZNHozeVAxJXdGSnxNCnoo
ejAhTEY3aXA3OWRLTGBtT29pNE5wZC1PcnB5YmUjcWxZdzRPUylgMl5teiMlczNncjNnOXxhdnJj
QmNVa0RaeAp6V2c8SGM0PGxSYDFlIz0wVD1DUS16YmlFZGQjaWhqdWdvIytUPGdyfDNre2VJcylI
NiRvY29YVCVtdjU8ZyVEcysKenxGTyk0Q31Xd2RkWkxqNEc3QlhlJShYUj1EY317NjFDJiErSzRI
eXwzPDUtJUlDbSN4b2hIZiFIOENucDY9NVZjCnpoQTVNWVYjMV9pLWkjN0g1eShXNEFIaCV0dGlB
aCNiUDAyTU5WLUglNzh+PFRiPTVyZ01SZEA9RkRQX2pnKnFKTgp6dEZBdXhgNDBleDIqan04ZTwq
TmRGPmgrZ1VjU2EkQk05aiohZnckPnBlT1A+ZDJHZDJhWEF2cG82MykzS3VrJjkKekVwfE8xMGNu
JmVhST5nKE0zaEpzc1lzJilSZmdVSWxtVUU0czF0VFhOTEBLWHBHfWwwajZNPFMydzhaeDk/RFJf
CnpXS2lfWElOP0RGJFRuQXxOZjJwPUUmfEVAWnp9YSl3TjBnP3NHZyFGRmJzflUoSF9pP3FUYDZR
dkFnOXVgYE1QSQp6KlU0PzEzbSpyO3shaytxTFA+ZGNtNThudUYpVVN0MyY8NiM3IS1ydmZ+Qnxv
OD8xWm0pTTVwfk8rQkc8QEg+T1EKenNvakBCRzMrZzF5Jl5WPUctQmJNPFZldn43fVo4SVI1IT8h
UkhETVk2YWZfeXEpfVdrZyYpR0lsajY4RVFZUT0zCnoyJkpvTHQ+UGBKOzs0OChEPT1nPldHN3BN
UlJLQH5SSHtHfV44eDd9TTh9P0ZBYytrKmpfUjlBJU1mYGlsJEE7ewp6QSZ+VlpQX19sX0xmfVh2
V2woNERRN1Z9bzJKIThzUD1uJT81MHdteGNCQXJ6eDRlZ2x4eiQxfT8lK35IUSpjNzwKenpKXjhR
dCU9M1dGVTx2T2tsKlE0O0VeVj0rKC00JCs+RkhUcVhKS0BENkp5JERLZEQqO0hRUWYhI2d1dDhM
eGFuCnoxYEhhPG5XQW9NJjI5bTxoIy0rUzZKODQxRmpRbWNCMllLK0the0NeS2RHWE01dlhwV0tv
QSRINVVJJV44JkZtZAp6I2UxUlZwKystVmYkfDFOUEFyKz0tR3VkXk9vUnJlRWBeJF9tQ2pHYEd8
fHhRNV5fUXA9QXlRdEA9KXFmdzxaZDcKekg8UFVVJSlAXkp7PypLKCg/Zk4jTEpaeWVMVmd5Qk9W
TzNxX0xpb285ekx1MnElMEAjYEE8N2oqJSEoWU5EUn5pCno2OztwKENYQG8hcVAhMz5mKz9SN3t4
NjIwWVF1bStvaFlfWUFPMCYqJn5zQ1BEPGYzYTB1WF4qMDZsdjl8QShESAp6P0goZ2FhWnQ1VHlf
Tyh2amItIXZsUExhdE1gJnZgSTV6NChQO3k4ZHNIJihXKDVER2teUkxZTHFSRjNDYFVAfiYKejQ1
PEVwKSZOeWtEJlAydGQhTDNQezt2UXJwTW80Wjx0bW1JIzBpYmBtdGQ9fD8rSzhQWm5eZlhxUT5k
blZmQSMqCnprN3Jub0tZazt3cXxSTTJufkZOX2Y4fj9Qb3VRO2VJdEc4ektJcSpod1c7eDZrYzt+
N28tNyM3aFUjQSNAdXlCeQp6Vz0ldT0jRERyeSlhKUImPT17MFgyKVktbFBsYDIoY2JuTjtzcVJ4
ME1EZTgoa3c7UE9YJEQkbFIwOHM3eH4tdTIKemZ4PnBLOVk7cmh4Xl9jQUQyPnVXd3gpNE41MUZ4
YmQhUCl2Qn1meD1UT0xUR05DV3p8PEl2Z1BXfmo3VjJmRFVpCnpLMWRgZ2U0eTdpPH54Uj90YHoj
Yzt9OV9AX2gqeENrRGBtaEQoQn5jJntoOEstPiQpXkk+NTFASDdKYXJgOHJZJgp6N0VwWEwjSlJT
cDstVkN6ZFY7TTRYN3pHOFp5aSEwbTVKMCV2cVQ/Qj5iQUlQeGpoMWhBcWhtcEBORTdmPE8zV3AK
ejUldVJheWxLZDModUdqRmooYFBaIXJSJiVgR2wzNmA/MT5gJnFaaWQ4V0p6YXY7I24wYjVJT0RE
VCo3UWo8ZFcpCnp5TyZncmghfDxkN2d4JlRnZT5KZ0R9fThDRH1WTWJlaVQhcWJfKz0tQHdQSSNw
NiNqdGw7NG9zb3JSPXxMcmFjMwp6dkVqczNHdXRePj10dmBpN0dvMy1vJVZsenBrc3YyUjNxcWA3
fEBhQClQR3tXezctZX5RWCUwZT5yJnUrMG5LRFcKelMhfCgwU3YlcFpDVCQ7YE5ARjJAeXthfSk8
PjAoWkNtTGFiYDMhe3pNNDYyPVVYZFVWMHlJKTJETCU7UTN+Q2JfCnooT01ydzd5UlUqQlU1LXBu
fEFQZWNrIUNrVTl+bjVuYEdRPlJIV0RmTXctY3RAKVFwd2Mye243QXpMeG1FQD1tJQp6bUUjWXct
X0dTVWJ2Vj01JEQmSGZgU3RyRzxPbi1Fd3pTMiNIYiZoQExZNm0kRnghUkImfnc7dmh6MU9tMkJT
VXwKekl1cik9bFBIN1grNnl7S2IjKElPWEF1PitYJFZ1UCM3RzlpYGptV0VrKCVaMVEhbTRNSlEo
c2VUJFZ9ZHlid2NMCno0amJ6fUZON3FDZXB7UCUrfDFTXlZPQSkxN0w5WigpVmYycFl+LShHVjsx
dGlsWE8qKnZpZ2chM355fGdjVUZCegp6NDF1RFlLfiNrUU94fTxnd1AzbHpaZUEwPXtKTnhLITha
entgVlomV2ojX3B6MnE8e1NeSDtrV3ZsWCtGbmhNTFcKekJSX2M8QiRFIyZhbXs5dHE4OWpfK30r
QFBBejA0ZmNKdWg0ZXdlP29DfV9GMUE+Y0dJazJsPzQ4dXBCY1cld3AqCno8XjNLUDdGOHdKRnxL
JTlQeVptVUt1VlB8OUZ+V3JOYXxgJWx3PF5uLWJuJFR7REh8MGhOe0QkdjJte2E1TjRqUQp6K2hJ
Wm9kfTx9WG42SGp4Xz4tZCtwekJDPTFXdzZjSVRtSHhTRkA0SVVafVFxTTJ3dE9yKHpeclVNPHs8
dUQrJXIKeihNc3NHcHxmbzxtTzlHaSYpT0FXNSY0dSVDUXtRVlBrVFh4e15FeCFMMVREaXM2MGlh
LXM5bjc9UVZobWVMP0VqCnpPfEgmMkB8SEp9MGUzSnNVIXFadEsoJE1lRFVmWU08VmdzRlBxRGBl
T21eMlhmaGI7KFNQe3wzcnZ5SHc9PERiUQp6TVk0QCNyZnR9RThwSHVFR29iVlF2aWlrTXQkNWx2
UjhKeHJucTA8NVpiSWtaMCg1eW5vcj9mRHh+XmxLS0k/a1cKemVDUTgrK0U5SEY1TmdFdDdCS21Z
TmFMTXdhZGJUUkIrbz5IU1B4YDlxJHRoZiFUZSVkeUI8M2EhYE5+U1glRGY3CnoqY2VmeVE2aENr
YldHTXctPTxuYHI0YnZTYFNZV2VSQDc9TypFVj9XRWw2PihxajZ9dUd2TmRJdn5EUFcpeTEtbAp6
bXVCaE97V2kjQVBAN3tkN0FRdyhIUjRfUUpBVXw4WkxKRnV3UDB9XkliWEI+dkdfcig/c2pGNz9W
KVRxJUp5cVgKenQ0TD1MTWUmYGYtNFhjYCVabHxiOV9nLWkwbkpeel43QXghZEsrcih2VzNmeHEy
THhGX1p0WHd4RXMzbzgodndrCnprQFhpMVlMN0VwYl8+cFk7cy1JTyokfVh1c2NyYU5sSCQjYG5f
KnlVMmhCbiEjYDhYJWJaVnFOVmk/aVhOQTZ6fgp6TzAweD5gYXhpRTF7SVM7V21LXi1gPnNlZGVq
R2BuRyUyaVQlVE18cm5PfUl4QmE5bEw0a3dsTktwTlpWM0YoeHkKemc8d0hsTHs4aVY8ZzUmNm50
SX4+JntCRDhrPXlPVVhqXjJUKUhhdSo/TXFsbi1UOUtnaDgoZm5kSTQjOXt+JiM3CnotRVRaOTIj
U2otYlBscUxfS2lgNThqdHc7PGoqZ2pRUyZHdyNJRFZlWiVpP00mVWlfZFU1eH1TVEl3RmlNckdH
bAp6c0dNekJXOzxNPSVMUV90VXo1YUJpN3M+O3MpWXI0elR0a00qYjAzLWMyOHhZMFA3I2dhVEJU
RXtgUUR4WCg4IzUKemJDNTM/PzZiT0NDSFVRN0x2UTcoSG9EcUFpSGwqekUmbFlnOTM1ZmRBSTVR
Mk1CYD5NY3krUGR0P3AjeUReNjF7Cnomd2BmbyNIc2xoYFN2a1NFZzxCX21SNTBZaXR3ejZgYG15
XyEhXiVhdCRCTCN4e1g9Vm49Z1pScEN3e0dhdXljIQp6T1JscHtiaVdoZmRrZUlaTigoc3w2Zz4k
VWBZQ1dxTGNaTSpRUHFqRGUoO3BgZmQyTHc9UlVVdTFQViFWQ1o+fX4KemNkTm5YM2Q7LXclO2g5
e3FaZztDWm90TDFBb3N7RT9xJC1UZm13UUpOWlAkRDBkUXdGTSpQJHNVOHpTfVh4UV4oCno/JGR4
dnZBZ3A1LVF1ZD07QE9fVmhaPVhyNDZAOXJpPnYyKVJfZ1IwNnkjbV5lT25qKlUyUypBXiowSkR2
KV89bQp6OVk1MzlvfiVGeGVMR2B1ZWFzJFpAaXNIYU58dHVwbG94RXdQfnlIYnRDM1VAZSNRX3w/
ZjhfJihQbSs4aWlEfV8KelpJMEQxR3t0SlZOcFQjX21IPFJnSntfTStaN0x3UHkzRSEqdGxZPUwr
WCRWQTs5fkJ9MERiYVNXeGQmQll8NnVyCnpxLVY1dEl4aEVnclBoWE18QXMpbkticEJnMG9EPkR5
d0pHR2x4NjZAMG9sTGJpe3FvXmthVHM5dUVOOGBLejNVbAp6XjI0dSVfTl5DRGhZQThUKyp2O309
Q2peVnc3eH1KTSMkM0RYQlhrUmN4ST5oOUNGSUxUMHEye1FSWksqV2ZUKkUKem1iJn1DR21PKCFh
JHdxRFRHKUh3dj08Mz1DT3dyQih+Yj8rPEBoY2hRcV5+YWVFaEE5dXVqXmBvNEo1UHY4Z3xwCnol
XlZWYGsxfn43a3JjSHlsQ0NZPkF2Q19MU3pSUm5QZV5jeiFKellzTkw+dDxAc1ZHaUBlRS1LMC1t
KUNRLX50Rwp6VVEkNHRYfT83MHRUVTVARWoyTl5mQUJJI152MThVVlBWQSNtaDFoRlEtYGtvVHt8
S3dOUiVEQ1VFeGlsWCZ6R2kKeiR8fTJ4TUEkX2JKcT1taXRkIWlUYV5+O2VAQWRhViFsfTZSUiE2
S34lPV5YVz83Un0hNzd3azV2UXN0azNiVWt6CnooR3FMMStua2NrYGF6Km1APXFhQUxjYHd7Pk1w
Kz41bSkwZStPZ0MxSn5RMjlYV0JgOUdnOXpXdz9tOGxVRU54Twp6NTs1dGApakBVQER+aSZsP2Zw
PXtoNFN0OWBaQi0lbkk0NnF2Plc8ZTxxamprRFRTVGVyejJ8YCpZO05pdFBGcCYKekpiaSU9Y2BF
MV51VHZ9Rl41Wm5UIVhFQHp7Mi1BUUgjU298U2tETE16ZHQkSGJHVUBreVJVPnd5PmA0VitfK31p
Cno7SWg3b1UrLTVASi05fjxiJjRBbnR0RGZWcUtLeDJkMXIwclklN2liY0JJeisyRGU5ZSR2Szgl
ez8+QUxVUzRhMQp6LUBjJFpUVnBOTnp0UW8lO0YobyNlQVVneT9RTERlUkNpXlYhWC1XSnVLWUxS
byMjKks4QDh1PGpKOVBqZHl7MigKekByQUBxRHdhRlhDQENsSjZYNmg0OV94bz9IOHtSZ0N+KkRB
YWZPaXhRKFpmYm9iRVclRGBjWjBxZmhEMjw3RzF3CnpgR0MkQCQ2fH17e2QqLVhMe3x9PjhMdCVy
eDFMIUtwdTM4MSEoQ2BuU2l8cGRLbDU+RHN+NF97KzJrSClpbmcqcQp6Mzd0JitUVWpkXi1HfG4t
RUcra0FmOytVbksmcGVEOThOSnJeME4rTjMtQlBITGFzJUVzNWM1P1FVVV9UJlReYlEKenBhK0Mj
Rn1MNnVwPlAoJi1RMmNic149ZSsyPXx8WHptfmhxZld2c15aYU9FcG9RT04+NTtufThUNWFkc2tM
eXNACnpqe3xsWE98UnFjckdZMkAqaURQPVplYHErS0hoUlheeDtGKGxsbkBiLTMkQiZ4ekJFMlRH
I0VqJngwQFAlfTRKMwp6P3Q0QURzI2o+Ml8mN2U5dTVxRE1qY0JUend8Q0JRTVdTTShyfmtXamhq
Jmp5XzltOVN5QWx9Sip7MEVJLWFYb3gKemBncW4ka21EUjdFeSkoOWZLPH07Z21DWjlBTWFhSzxp
MiY7cmo2K3clbHVIe0NlbSNuUmhCYjEkJkQ+ZCVOYyluCno1bUtidzVIaloycDlaRCpkamV9ZGl0
Uyg4IyVHZjA4amJzPXBaTXxvZmZYejB5eD0lMW1wIXI5ZW8yYnBYP2orYgp6KSFKU1A7MmwydnJh
KCY/ZUVZeXBNPj4zNTU0Rn1eUno4cEY+LXU/YSU0PzZLIyU+RCN5c2pFVylVQkRYYlRSX2cKejhh
WkVlKjtRIysqdHp2I2Y3JGtvPXFDPGZnU0JMPXQ7bm47QSt9VjVjZENCNGApZDhCanY0S0h2QnpI
cCkqNDtMCnp3X0Z7cihZV3o7P0EzP0ljaEJGb0lOJj9Ye24rUCF2LSNjYk93LUU4KXhVP28pVzE+
V3hjUThhZCl+OUJQZEoteQp6b1U3cHRFViYhSWRIdHIkNFpBKSpVfSg8bFk9M0JmN0lTMGc4M3BX
UihDX0hHP0V+fTsrRHx5dFUjb2tgY3NJd2oKelcodTIlYX02XyMtUSQlYnhYdzF5aGdHcW8/ZnYj
ZzJOXnI/XnxJSDxJLWRpVz1sR3A3eU5Wb2hIVX54TD1NNFRKCnpjcWo0X3k+IWVPMlVoK1M9Zj1V
Rm5pMH1WfEJ8WTB5eTNodmlnekQmbkAxMSVsLVVUKlo3VSs+NWNTI2k2PClKbQp6JWlpRTZvMGU4
RnZsKSskJH1yRT4tfXVBRjRVK2NyXkV+QmEmJj95cEteQVd+eDQoJD9wJEApY2omTUhxeiEjNjwK
ek5jVVdgVUNofS1KfkVIJXQ2dVFHK3g0LVh2ZUNDSFpFV3goQHkrJms7cipvZEd2QUFNdEV5P3ZI
IVNZPlI3aDBVCnpgaGBXbHdEIWtEeSk2RiR7VEV+NkJHPkZxVnJoPzt5M3NJX2NWTiVIcTZDWH5a
UEdXQEs1STk+SmhYcSFGXlBGKwp6I0xEKFA4PUJ1cyN6ck1LaEFqPlI3c2IkcyQxK2FYbFNkKD1V
QyNle3tzMDxOZ0IzMWtYVElAeTs0ZDg4SWEyK3EKem89ZWxrK18+Xz9wRl52RDl8IXElQlZJRyMh
YUNCZjFIfmBQK2MjVkpAM1ZqSnYhQD5KLTFNXmkmYUR+VlkoKlA5CnpleyZxMTNrX0JFWDQ+LVB7
SlIjNWI3UVl5VUQ2Sz5LQ1gob2BRQThLenhmYHl2SEpadWAxXlN7ajZBek5UeitYQgp6ITFgdlkt
T2NqQDJTNE9UeiYpWWMlfmtRfC0/V1ZfRWpUZitCKkFtcGZwZVdIPF5zSTQ8SFApZGY7bT0lKUh6
aVIKelV7fTlRZnp9PHpgVEZ+T0thZjBrakR0cD5kRTJLXm10Sk9mUFN0WllIWGt+UU05OzxfVTZz
YFJuKVFDeTIoeUEtCnpgRTFwLUxpK0dGWEcoNzJVNVhqfF4kejFjKkgpSz9oZXMxRSU0fntqNTBP
MylBRV9eXklOcDNfKGMtMj1zZXh8KAp6JHlYV35rQHJASXpwI0g0X1RJZzM3WEZieGFVKDc2TTxT
KX5XY1l4OGFhQy1nQV9LfWY1cDVBPFRmNy1Od2xzYWEKemh2UyohYT9PIVY4QTVpckFoWHJfN3hp
RURfJilQaSZFRVgwJiU3d3ZNcTJEaGJnX2ZtT2FIUiVIfDA3MCU5RUcwCnorPSg5IUVvc25nKCRY
fio1M0tmI3dJdGxpPyVic3A1VCUjcjwkN2Q1ezw+Kzc5IUc0RXY+PE9eTVBSYj02a0B1UQp6N2pl
ZUdQZkNoK0x0RDspKStJaD10fUN1PWV6Zm1ILTNiI3hWYllTZDFWSGhZUV9hOHFKYFEod0VpT0Zj
MTBnNUwKendgUGxYcTZNJTEjSnR4emRKJmh3bD8hODs3aUpaXno4dzU2dDsxXlUtQysyNC1pRHBp
c0JPPSFfUWJvVD5MK3RZCnpJPHwmZ0lsWFJtQmxoKDRoV3U+V2BMZSp7SXFMSV4kfH4xJSVTeSpx
b1hmY0VwQ3NWMFBBKiYkPygkfn11RTdZMgp6YHIrdVE+d1BeMSU9WWlfMkNDckpUeC00VFVLciVF
ekwpS2chfDl+czdGTSZ1ZGVDVCYhVlYze0QyJmprTTFAUlkKejN4bTF2TDE4M3lQfkFqO2R5OU4o
Nz1mPDxqMjxnZ2A8SWktPWhpJnE7OSRBKHhrI2Y+e3YrX3AydEhZITAtVlhMCno7cjVkfVYrSGFO
P28+MXdPdF5Va3s8THxhXjMhWj4hYE9uUWpna35odFM1dEN6TlchUXcxQ1FZV2NIUyl6e1Bjbgp6
Z2oydThCOFZ9fm9XRlZBYSpPJGQ5YD1SOW1Vc1FlIUdjP19Zaj9Td0FKYH1SZWZ6YSpgI0QqRVR1
NSpuKTUhXlMKempSP05Tez1ufHs4KHdxVktWe2JVT0VAcEAydzI7eVRrVzhMQTBKS3B7ZjwyNGg7
UWB5ZHImTTkmOV9UfjU5ckA/CnpvfVdNcj5ZOTxKfEc/KDJUSjgxekFBWXZqWk80Nlk5aUo/K1gt
THVSR2Mpdm01Qy0ma2oya31qYWhlZkJlan1gfAp6RT5ecEtVdTVUTUB+TjlFdU51YypUbEhkMEpg
UnFaYjBkN1M4I3pfK3VgJnFUXm98PWcxOXk2P0VUZGpybkNLbCkKek0lfVY1PnFHdDMpbCkwKVMw
N20rOWN8QXR0eV43Y0BlY25lZlVxT2VtJnBqfko3SHBvciZeVFJvOHtYZ0k/aHpZCnoxZCFaWCgw
RkRCKXI+dEVORCh4T154fX1sVERiTWRHK2spU3w0I2wmVDE2VVQ9YHx3aUpHaXVZWXYkaShqKEZ4
Zwp6cGhScChWdC1zPEpteWxuaSphfFV4Yk0tdCpuKHh7Sk1tZ0tZZj9sQEF8JXU4dTM9NV51P3Z7
SnZNSkE3OCQ3UHQKemgkfXg1d0dINF9HMipwX2FyZUQ0YDxvQkZ0a3pzQllnPHV2dkhqI3YrSFU3
aDY8dVFQQXtCWX5fZCpeJkVSV3NXCnpeSWIjNkd2K3dSKVcyTXtWOXdhPHZDTEQmQlhoZUN7P1lA
YnhvV0krKCttMGVvNmlmc1YtTlRaciQzezJiQXVsVgp6bF91SG0obD18WklAVm1jcUNWcmBkeT9e
Zk07Tlc/b1orWV5FOXdoLVp8YzRNalJYfnA0YnBnb2BAUUJrKmM8bTMKemBUWGtiWmlZd2ZHUitr
Zz8+U2koZSYxUz5hYSRSR3ZyZUBwR1k5NShrNXFfZmRLbmZ5MiVuKj45IWIxY21iezYpCnpQSTky
PXJXSjk7QDA7XjFTZDxney0mY0oyZXpfVE9sc09QTCV5M2NeKUVAaXIjNWVsbSV9X1JURG44UCFk
IXdzPgp6UiRZMk1jV0FvaDs5b14mZW93bUJDQHkhbG09a245WDhSdXl1XklHciUqYGdwezJQIztu
eTtIKiFyczdxbkRhNXoKekhTKGcqcWwpXkM4OHElb1lXSytVU2pSUCpLMk4kVHQkZj4mT35AJEd0
VD5uUVNkXm5+UnRFOyRkZHA+bVg7eXk8CnotUDwrXjs+YUxWRzttQk41eUJOdkM1fShUYTFRM1c4
aEB6b3ErPlV9bFQ7MDlnfjhSNmU9N1NhNEY9dGYja3A1Ugp6KndYWEpjXkx2MVZsWDstY0dUUU1g
QnF7STdndDxtWmc1fS1EOVpNRiZzP24oKDZKYnBjPVBVcmlLclpDIyQ8WEoKejVpYSRaOWxpKDw3
bWp0QkVZMmF+N0kwcTI5czIwKC0jeGNeUDBqWnF0THcmPUhYYV5HVHpTbnBZNENOR2o3c2N5Cnop
T3Q3U247bV47UDBodlM5dV9CZEY1eHR2JCROI29KYSlPWmVAe2B7dkt0eENnWi1UP2VsQ2l3OW5O
MDtAKzlmdgp6V3NCald6SGlkO2s8UCpVaWJ9azglKCE5VDdCV1VZJSthY1IqNG8qNUBhSipSUm07
ZFNKJCY0N2l+VUd7Yih2Y24Keilrc3NjUUVPZGZOTSliSj8paW1SPS1ASDxLO21Hb0pkRVhRKnBw
JEo1VHU0fThrOGFPP0p6YXEtUEVRPitzTkU+CnplbUFpOXU4PHRPJXI8VmVnY31OcXVrNWojbG5s
LWM5NW9qKF5eZSNSNDN4dFUreFpUVGVCZk0ybHM8OGZFb1otXgp6czJlSE49dFJ0dnJXPz4zezU5
eG44Yl4rTWJpci0zNFZ5WWw3N1pMbndwNDFzX35rNyFRPC1WMTE+RTFtS3hHaCEKejs8bDJ2Vmd+
dEJucmdQKT1La19WZ3g4Nil2ZEFZJS1FZSRJMT5FTFQ7PF5nbikzSFRLbipEYD5PKXlCV0ZxU14w
Cno9LXZwJnBPPC01dmpQSEUpfDNUVUBxcnM2S2t5ZH1ffEZEIUJ7RVpzWSMxSWpeMnhXRV45fSh1
Z30yZElPV01adgp6eiYyQmk1RypfQDFLaDt9cmhUdHF4YVl6JTRxSCt2MmUrJHczbzZxez5te04t
bkRDKTQ+S18hKz0zb1BfM0BIRjwKelBOdGVOdVVZMnV0IXAyKWxFd3pvcnZYVU8jZDZiKVpDSz9E
QEZwMEJDfGwrbHc7bk1ZPGpJLWwyUk0zfntYQ0VuCno5OVJyQFV+VkVqQms8TXt2eUUqUztnb0Bj
QkpTbDNofDdWJS0hZiZGdno3UHR3KHZ8JmpsQ05QUSZfaUctZTI4eQp6OzRhVUFZNUhDV0x6aTM3
Qipxe1dgN2BTMUh4QHgpdHU1YClvcGx6TVNnJiV9cGpCb0hxaEkod240SDZmeT1kQiQKejMwNz4x
JHFOJH4xQkVIMFhlSWtPMSZgLUQ1dTMha1g8SnxkN2Z2elE7d2woQ09YTHxXc3Z8I3AxOVEpc3dE
NlN6CnpJYTNSYHpMay09MFJjRjtuVXU0WlMzUFcoWnlkYDZGRkcwaU4qRlU+Jl5DeGI0cEhKUSpk
SikmaF5ENDZhO34zRgp6cCZrKWZeRWxHeSN0JVFMbFZ7azc1WEBYOGsxUGpfN0FwcnZpJWE3MiRD
eyZqNWM7KExuUWBrJUQlPkUkUjV9cG4KejF1QSkxak42ZDdea3xyMW50WXV8ejE1Mi1SalpibjQj
NDQweShNb1FXZlppLUt5QilySzkyZCZEUjA0OWxKaGUqCnoySyRhMjJqZ3ErVlZwQ3NaQkg7eTlz
MkQlaGNEcG5tSjFebjZFUXxwXjxBYShyZ1lCRCkmfGhlKTY0N1ByNHlmIQp6OzZ7SD1UTHo2WTx3
SEdoPiFQfDNeYFliZD4ydE1HVXQ8eWVlbHtjVVp8M2xqMjxQMT83d0VoYnNWazVKcXNtXk0Keio1
YndPe0ZPeFQjOHVqcCF3SDJVNVE9dDNTTUNkdktReEJMQklTQDZDZ3AtI3RodXpEI342O3JNJilx
TGktQkI8CnpSK3h2MFpeX012YGF2dzc2R3dDJDxQfnB0JGkkMzstQUwxb1oobEBqNnN9dC0yYVM/
aThQY2YxbnwzfiU2Jk1fJQp6Rj1PYjBfdHAreFV1RUs2S0UpO3woeXk2SVk1aj19RT45dCE+Zjxr
bDgjbWwqWD55IWVwU1IhJTVwKEZFfEtgaSgKenhGY3goJXhwd3puXiV4e0FZfWMhRWwmUHRmJEt2
NTVONzhsQ2Yyb0lJO2lBbklSO0ZURjQlbH12PCs4UmxpRDs9CnpOTlVRdjAmUTM/bCNvMCQ9LTtX
c2Q8YUFBcD81RXJkIWtYKUhuJHQwP2w4cWo9dmFLPHJab0BZaG5+LXM0UmtAZgp6Jj4xTDJQYiVu
a0ZJcHxjLWhhcmRoaytfXzMxbVRGUlZQZUJrVG1mfSlOb3hldDV7czNBQStWSHA4ODUtcypoLXcK
emNFPDgle3RfQUhmN1Q4anAlNS0rJDh3dD0xcVdiRDUmNkN2T2FQNzNERkQyPHReI0k+Vn5CMzBk
MzdYVUhUI0NACnoxamxpM1UxakIpK15vejY1KzQ0SU5MXk1fOHUtUyVtdUtwZmFoYiNzbkdabEVs
UVV4ckdBUD4zTm50cjhfTUNNaAp6d2ZSKktuYU9IdmVHYSY5O2ViNDIhZk82blhXSkBHKzBgMXsm
JVFSdHEqc1N6QkFoVClGPVJDdVg0OTZLVE9HbSMKeklBclVkSHZKbjEwd2BXbzJaTCNZVk4jeitZ
K3FOZzl3ZV49aClacHxeKUdlSVlIMDtiWT92M2o8fHBvelN9aFA2CnpNd0hHb2ByI3RhQE1QcylI
KkVnd1ElcjdIbFkpP04wfFImUzNNKyM9WWdMRTlhXlp0WSF6QmdGMHZWLSlWRzBCJgp6NjBPUUUp
TWgtSCRpPDt+LVB1O0lQPlkoYWQxaXJzY0pUdEFMbmdvZShAa04ybDg5c29MRT4tSz1lVURtTyRk
fmAKenk2cyVqQz5fJVJyI3lKSWFmNH1acG50XkolPXVIK1YwTjxNcFZodj50PVh5IUFxR1otbnVm
JFlKP01oYDVuISYkCnpeLTZEaGFvOHxfPW9rVyZkSyRWZ2AtVmwmTF5RKShIOVMkR0pKfFVxdG9n
YG5WX0VZTkZrM24mdzs1VW05U2NhRAp6IV9+YkNRZ1JtYlZ4YysjSCs8WnFoSSlCQVo8S3JhO1lX
YjJ3RlU9OTNsUSRAX0NOVXtURUliNXFJTGRiX0Y1TzcKejdZQ2QlVlRRUzAmS2I7ST1GWFpeeSF5
clFRTSVmJCh9Jn17dztYOGs5cV52PXgoRkY2e15nWWtDQEQ+UChWOShYCnppKHRIVCtIPVphaCZw
PHBMUlJ4U29EalJFYCFOWVRTeGtBVmFNe15SWG1qRkwhT2lLK149PW1pMU42X0B3VT07eAp6amZY
X3dldGAqbEgkR3tUOSpuS3lhdXZvYGRpU0NYaFJuKGhFSlFJaGxFNV5YaFV6U1V3X0lLVUg1aVR7
RjQ/TygKemR4SSQ9Z3NrITZoQCZAWERzczV0XlIoayVkK0ZOWnRmcHpXKHdrcV56OEhtPmZeQjxs
dFRSY0khbkhWJVVkfFMtCnpnY0hBfi1qRUpfMUNnRk1CWV9TRjNwUlJmbE1FNSlrJDUkZWhnOCgw
dH5OKjlWWkk0WDs1IUdseiZSfHleKDlSRwp6WGdjMiR0fGVSZTJBNUpXdFkkQ2IhQH44bHJAPWl1
PEZpWmV8M2R5U3gtQGFSamNeJmd3bV52KWY9Nm19KEVSak4KemJ6XypOKXVLQENORipSJSRfIzhj
aExQJCNeSC15KmI8MWk8VVE9NHNzdyFPSEI0OU45YT5YSXZ0RmJ4dCpOZjNQCnpzRVFqSE1CKmhE
VUY1cW47WCp9X3piJCp7ODQoNSFUTmBYKWZWeHNTIUxZIT4zP1dRMjl5O3kmdShJK3NocG4pKAp6
ZCQxKjcpUmN9YjgwZ3N4ND41ZkBJNTRTSEJzTEhneVNIdENHYnpmYFIjJFE5eEBjWWhIIzBfVnZB
dXcybl5SQ14KenczZFhRI2lpdG5PWTZ7K0ZpPllQXnphfUQ0PXlCVVlrYWdhSCY/fGQ1fHB7PnEp
czd3cG89JHk0P21wOVhIeE81CnplTWYtSnBUYkRyPmZZdURsUyV5XnpiZ3YmNX1yWSh0UzBxSkA0
bFZSQDlIcypRSEFIcnZgKjhVTT47Z195U2I1VAp6WXFIeUx5OCFnbUI8eT11Sn17UUd6Pzcra3l0
VjIjQHxtaT9NY0JQMWUyT2k/NUp0bnZ3LTNAUyFhYEpWaTJSU30KelY5ZUUoYUA1ZjxDOzdzZztz
ck1neXpxO0FfbSowYnAkT0IlJCM5Vmd3TWsoTzxGNzUmSzNWYExmfGBYTTc+TnViCnppcXMldUNz
WUMrN2BXRntCbStvZERQaDN1KlktKn1SIUtLOTdyO2Z3bn1SV0Q7Mzcyfm8tOVkjJHNqVFcpNWNW
Owp6eUFjWForb2B6MTVmTk92aVhhTkolPn5zOXYtd354YXpHdXhHKlNUN1QwZjRXI2lpUEszdmUo
fmdqOTZgSWlyd3QKemtUTTlUQktKMFpYemVJOUhRM2RWRT5BcisjIzxuMGI8c3spOFEkUSFOelJL
NShxb1R5VT4kMUg9NDk0YG4pcz9wCnopezZLJFdpZHM1MGFOT0wqN3E3c20hMG4ocGxBejthME1N
biFrQEt1bXskNWMyeD5kRCUlMmF2Q0Y5VG08RnoybQp6M1k2XzMqIV4kSk1WTyFmdnJyPEw3aFJ4
TjhVT0gyeEJgSndJO3Nfam9Ne2t2I2tCXzhQTXIoUHZYI0JVbVdKUnMKelNMMz8tckBxYTx3en18
S0NyPTNGNE0+ZXZYWUtUfHxEcG1NYDRyUno5Q31nJllXQHtgUk1BREExKG9kSnI3NjF0CnojYTNM
WTxxWGtzMz8pPTtON1FpUjswUSU7dl5fVmxhJjMhb0EwS0dHNloxRzNhN2tNO3ZnQHw7cCRVajJO
PiFwbwp6I2Z2VEdXaDwzYTtWRVgtS0BObHdjcSpmUzUyN3stcTEyIypPbnBHbjZQSD4tLSN7ZSla
VjBfRWNUMW9ydm9iYzwKelo/Jm1UOHh+VjJzMVomWExNe2Zpb2FWUzBfNDROUW0jViRXcmJtbyFU
QzRWcGBPMzZLYUlJRUJXSG4oNnsmNEF4CnpPQn1nQ0loJTMyXlFrQXo7bGVnPUlUJFhrQUNURVN8
SENOWmhyR05OUWpgaEUhcWdAVDtXLSNSU3hxfCg2WnstMwp6ajVleUpXQlV2RVZlQlJ3Pms1c1Jh
WTFASFk7bSFNTW4pbSRNOEY9cT9+WWRxbyl4VGFhSj1pWkBIcFA5NHMxJmgKek9tKTMqbktVdn5Y
U3MjQS0qSm9jT0k5em1BP09jblNqcSNgeGVuN1JtOGhBYVhMXmNKbXhYUWJmeCY0O2htY0M4CnpX
WXJuRl4tOE0zP1gwYXotX3sqQHczbXYxNiFZP2VOUDgoTy0yNjtPLVEpb2BjJSVgb29iN3s5aysl
bGB5d192UQp6TFh6NyY9Yj43LXkwKUZ8WUFvS2ZaUnRsTWhRQDckTmVDZy1XZkQ9T2FkP3w7Vlk4
OEplcXshSzwlcHpTZ25RS0wKekR8RW1JUTI/Q3FVfHZyRVNTdW9pKG4qa1YjUHZ6ajcmN1dpMXg3
VzhpWj4pZj99fGF5TTtiSE93WVFXRWJuaTRGCnpAPGd+TUczXnlqY3xxI2pQNnBCRG9vJTteKkFM
YWtBcUtpbyZuaEkpUX5lY0s8UU1waGtmOHZ4VGxfNHFZelBFYQp6Q3RkNVdCRmVpSkJDU1VXQWht
UUg5MVpjSCohO2ZJLURGPyF2RHcwZHVWPmIoYHYtd1RVMGQhPylzN3dxaFNPKHUKek9Yb0tQLWt2
d1FRKCZOJTxKP29sejVNIUs8VHV6SzdkfCV9eG1EMTJXSk9jNlBWLStpPHkpc3RRUmA1OWJ2UTF+
CktZJXE4SD1LbGZJQFZPVE4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2JsYW5rLmh0bWwg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9ibGFuay5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2YzNzZlNzY4MAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2JsYW5rLmh0bWwKQEAgLTAsMCArMSBAQAorPGh0bWw+PGhlYWQ+PHRpdGxlPmJs
YW5rPC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2JvZHlUeXBpbmdUZXN0
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9i
b2R5VHlwaW5nVGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5mMmIxOTM5ZjE5ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2JvZHlUeXBpbmdUZXN0Lmh0bWwKQEAgLTAsMCArMSw0
MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0
bGU+VGVzdGluZyBUeXBpbmcgaW50byBib2R5PC90aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGFwcGVuZE1lc3NhZ2UobWVzc2FnZSkg
eworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRN
TCArPSBtZXNzYWdlICsgIiAiOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5k
TWVzc2FnZUZyb21Cb2R5KG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdib2R5X3Jlc3VsdCcpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIiAiOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ua2V5cHJlc3M9ImFwcGVuZE1l
c3NhZ2VGcm9tQm9keSgna2V5cHJlc3MnKSI+CisgIDxoMT5UeXBlIFN0dWZmPC9oMT4KKworICA8
ZGl2IGlkPSJyZXN1bHQiPgorICAgICZuYnNwOworICA8L2Rpdj4KKworICA8ZGl2IGlkPSJib2R5
X3Jlc3VsdCI+CisgICAgJm5ic3A7CisgIDwvZGl2PgorCisKKyAgPCEtLSBUZXh0Ym94IC0gdG8g
Y29uZnVzZSBzb21lIGJyb3dzZXJzLiAtLT4KKworICA8Zm9ybSBhY3Rpb249InJlc3VsdFBhZ2Uu
aHRtbCIgaWQ9Im9uLWZvcm0iPgorICAgIDxpbnB1dCBpZD0iaW50ZXh0IgorICAgICAgICAgICBv
bmZvY3VzPSJhcHBlbmRNZXNzYWdlKCdmb2N1cycpIgorICAgICAgICAgICBvbmtleWRvd249ImFw
cGVuZE1lc3NhZ2UoJ2tleWRvd24nKSIKKyAgICAgICAgICAgb25rZXlwcmVzcz0iYXBwZW5kTWVz
c2FnZSgna2V5cHJlc3MnKSIKKyAgICAgICAgICAgb25rZXl1cD0iYXBwZW5kTWVzc2FnZSgna2V5
dXAnKSIKKyAgICAgICAgICAgb25ibHVyPSJhcHBlbmRNZXNzYWdlKCdibHVyJykiCisgICAgICAg
ICAgIG9uY2hhbmdlPSJhcHBlbmRNZXNzYWdlKCdjaGFuZ2UnKSIKKyAgICAgICAgICAgLz4KKyAg
PC9mb3JtPgorPC9ib2R5PgorCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9ib29sZWFuQXR0cmlidXRlcy5odG1sIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYm9vbGVhbkF0dHJpYnV0ZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTZmYmJlOWY4NGMK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9ib29sZWFuQXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1s
PgorPGhlYWQ+CisgICAgPHRpdGxlPkVsZW1lbnRzIHdpdGggYm9vbGVhbiBhdHRyaWJ1dGVzPC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0
UGFnZS5odG1sIiBuYW1lPSJyZXF1aXJlZCI+CisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ3
b3JraW5nIi8+CisgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iZW1haWxSZXF1aXJlZCIgcmVx
dWlyZWQvPgorICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXRSZXF1aXJlZCIgdmFsdWU9
IkV4YW1wbGUgdGV4dCIgcmVxdWlyZWQ9IiIvPgorICAgIDx0ZXh0YXJlYSBpZD0idGV4dEFyZWFS
ZXF1aXJlZCIgcm93cz0iNSIgY29scz0iNSIgcmVxdWlyZWQ9ImZhbHNlIj5FeGFtcGxlIHRleHQ8
L3RleHRhcmVhPgorICAgIDx0ZXh0YXJlYSBpZD0iZW1wdHlUZXh0QXJlYVJlcXVpcmVkIiByb3dz
PSI1IiBjb2xzPSI1IiByZXF1aXJlZD0icmVxdWlyZWQiPjwvdGV4dGFyZWE+Cis8L2Zvcm0+CisK
KzwhLS0gRW1wdHkgZGl2IHRvIHRlc3QgR2V0QXR0cmlidXRlIC0tPgorPGRpdiBpZD0id2FsbGFj
ZSIgY2xhc3M9Imdyb21pdCI+PC9kaXY+Cis8IS0tIERpdiB0byB0ZXN0IGJvb2xlYW4gYXR0cmli
dXRlcyAtLT4KKzxkaXYgaWQ9InVud3JhcHBhYmxlIiBub3dyYXA+VW53cmFwcGFibGUgdGV4dDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2hpbGQvY2hpbGRQYWdlLmh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jaGlsZC9jaGlsZFBhZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTE5MmI1NGE0MDIK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9jaGlsZC9jaGlsZFBhZ2UuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgor
PGhlYWQ+CisgICAgPHRpdGxlPkRlcHRoIG9uZSBjaGlsZCBwYWdlPC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICA8cD5JJ20gYSBwYWdlIGluIGEgY2hpbGQgZGlyZWN0b3J5PC9wPgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NoaWxkL2dyYW5kY2hp
bGQvZ3JhbmRjaGlsZFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2NoaWxkL2dyYW5kY2hpbGQvZ3JhbmRjaGlsZFBhZ2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjUyNjg1ZTA2NzcKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jaGlsZC9ncmFuZGNoaWxkL2dyYW5kY2hpbGRQYWdlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8
aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5EZXB0aCB0d28gY2hpbGQgcGFnZTwvdGl0bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgPHA+SSdtIGEgcGFnZSBpbiBhIGdyYW5kY2hpbGQgZGlyZWN0b3J5
ISBIb3cgY3V0ZSE8L3A+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tFdmVudFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrRXZlbnRQYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlMDM1NWQ5NDIyCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tFdmVu
dFBhZ2UuaHRtbApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9
ImVuIj4KKzxoZWFkPgorICA8dGl0bGU+VGVzdGluZyBjbGljayBldmVudHM8L3RpdGxlPgorICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgIGZ1bmN0aW9uIGRpc3BsYXlFdmVudChl
dmVudCkgeworICAgIHZhciBrZXlzID0gWyd4JywgJ3knLCAnY2xpZW50WCcsICdjbGllbnRZJywg
J3BhZ2VYJywgJ3BhZ2VZJywgJ3NjcmVlblgnLCAnc2NyZWVuWScsICdzaGlmdEtleScsICdjdHJs
S2V5J107CisgICAgdmFyIG1lc3NhZ2UgPSAiPHVsPiI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBrZXlzLmxlbmd0aDsgaSsrKSB7CisgICAgICBtZXNzYWdlICs9ICI8bGk+IiArIGtleXNbaV0g
KyAiOiA8c3BhbiBpZD0nIiArIGtleXNbaV0gKyAiJz4iICsgZXZlbnRba2V5c1tpXV0gKyAiPC9z
cGFuPjwvbGk+IjsKKyAgICB9CisgICAgbWVzc2FnZSArPSAiPC91bD4iOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSBtZXNzYWdlOworICB9CisgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImV2ZW50aXNoIiBvbmNsaWNrPSJk
aXNwbGF5RXZlbnQoZXZlbnQpOyI+CisgICAgQ2xpY2sgbWUgdG8gdmlldyBteSBjb29yZGluYXRl
cworICA8L2Rpdj4KKworICA8ZGl2IGlkPSJyZXN1bHQiIHN0eWxlPSJ3aWR0aDozMDA7aGVpZ2h0
OjYwIj4KKyAgICA8cD4mbmJzcDs8L3A+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
Y2xpY2tfZnJhbWVzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9jbGlja19mcmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uYmQwNTVjN2M3MWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja19mcmFtZXMuaHRtbApAQCAt
MCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5jbGljayBmcmFtZXM8L3Rp
dGxlPgorPC9oZWFkPgorPGZyYW1lc2V0IHJvd3M9IioiIGJvcmRlcj0iMSI+CisgIDxmcmFtZSBz
cmM9ImNsaWNrcy5odG1sIiBuYW1lPSJzb3VyY2UiIHNjcm9sbGluZz0iTk8iIG5vcmVzaXplPgor
ICA8ZnJhbWUgc3JjPSJ4aHRtbFRlc3QuaHRtbCIgbmFtZT0idGFyZ2V0Ij4KKzwvZnJhbWVzZXQ+
Cis8L2ZyYW1lc2V0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Ns
aWNrX2phY2tlci5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfamFja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjBmZjM5MDBlYzU5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfamFja2VyLmh0bWwKQEAgLTAs
MCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+Y2xp
Y2stamFja2luZzwvdGl0bGU+CisgIDxzY3JpcHQ+CisgICAgdmFyIGNsaWNrSmFja2VyOworCisg
ICAgZnVuY3Rpb24gc2V0T3BhY2l0eShvcGFjaXR5KSB7CisgICAgICB2YXIgbWF0Y2hlcyA9IHdp
bmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9NU0lFXHMqKFxkKikvKTsKKyAgICAgIGlm
IChtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID4gMSAmJiBwYXJzZUludChtYXRjaGVzWzFdKSA8
PSA4KSB7CisgICAgICAgIGNsaWNrSmFja2VyLnN0eWxlLmZpbHRlciA9ICdhbHBoYShvcGFjaXR5
PScgKyAob3BhY2l0eSAqIDEwMCkgKyAnKSc7CisgICAgICB9IGVsc2UgeworICAgICAgICBjbGlj
a0phY2tlci5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBm
dW5jdGlvbiBpbml0KCkgeworICAgICAgY2xpY2tKYWNrZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY2xpY2tKYWNrZXInKTsKKyAgICAgIHNldE9wYWNpdHkoMCk7CisgICAgfQorICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKzxkaXY+CisgIDxkaXYgaWQ9
ImNsaWNrSmFja2VyIgorICAgICAgIG9uY2xpY2s9InNldE9wYWNpdHkoMSk7IgorICAgICAgIHN0
eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtmbG9hdDpsZWZ0OworICAgICAgICAgICAgICB3aWR0aDoy
MDBweDtoZWlnaHQ6MTAwcHg7IHBhZGRpbmc6MTBweDsKKyAgICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjpkYXJrcmVkOworICAgICAgICAgICAgICBib3JkZXI6MXB4IHNvbGlkIGRhcmtyZWQ7
Ij5DbGljayBqYWNrZWQhPC9kaXY+CisgIDxkaXYgc3R5bGU9IndpZHRoOjIwMHB4OyBoZWlnaHQ6
MTAwcHg7CisgICAgICAgICAgICAgIGJvcmRlcjoxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6MTBw
eCI+Q2xpY2sgTWU8L2Rpdj4KKyAgPHNjcmlwdD4KKyAgICBjbGlja0phY2tlciA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjbGlja0phY2tlcicpOworICA8L3NjcmlwdD4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX291dF9v
Zl9ib3VuZHMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2NsaWNrX291dF9vZl9ib3VuZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uOGE1MTY1OWIyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja19vdXRfb2ZfYm91bmRz
Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5Pgor
Cis8dGFibGU+CisgIDx0cj4KKworICAgIDx0ZD4KKyAgICAgIDxkaXYgc3R5bGU9IndpZHRoOjc1
MnB4OyI+PC9kaXY+CisgICAgPC90ZD4KKworICAgIDx0ZD4KKyAgICAgIDxkaXYgc3R5bGU9Indp
ZHRoOjM1MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KKyAgICAgICAgPGZvcm0gb25zdWJtaXQ9
InJldHVybiBmYWxzZTsiIG1ldGhvZD0iZ2V0Ij4KKyAgICAgICAgICA8aW5wdXQgaWQ9ImJ1dHRv
biIgdmFsdWU9IkNsaWNrIG1lIiB0eXBlPSJzdWJtaXQiPgorICAgICAgICA8L2Zvcm0+CisgICAg
ICA8L2Rpdj4KKyAgICA8L3RkPgorICA8L3RyPgorPC90YWJsZT4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY2xpY2tfb3V0X29mX2JvdW5kc19vdmVyZmxvdy5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfb3V0X29mX2JvdW5kc19vdmVy
Zmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNWFjMTdm
OTIwOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2NsaWNrX291dF9vZl9ib3VuZHNfb3ZlcmZsb3cuaHRtbApAQCAtMCww
ICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPjxoZWFkPgorICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4K
Kzxib2R5PgorPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgb3ZlcmZsb3c6IGF1dG87Ij4KKyAg
PHRhYmxlPgorICAgIDx0Ym9keT4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAg
IDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAg
ICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4K
KyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90
cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+
PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwv
dGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0
YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+
ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48
dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0
cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAg
IDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAg
ICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4K
KyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90
cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+
PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwv
dGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0
YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+
ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48
dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0
cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAg
IDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAg
ICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4K
KyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90
cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+
PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwv
dGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0
YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+
ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48
dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0
cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAg
IDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAg
ICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4K
KyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90
cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+
PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwv
dGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0
YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+
ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KKyAgICAgIDx0cj48
dGQ+PGEgaHJlZj0iI2NsaWNrZWQiIGlkPSJsaW5rIj5jbGljayBtZTwvYT48L3RkPjwvdHI+Cisg
ICAgPC90Ym9keT4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja19y
dGwuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2NsaWNrX3J0bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5l
ODRmZmZhOTkzYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3J0bC5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOIiAiaHR0cDovL3d3
dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cis8aHRtbD48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cis8
dGl0bGU+UlRMIHRlc3Q8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAg
LnRlc3QgeyBmb250LXNpemU6IDE1MCU7IH0KKyAgICAgICAgdGFibGUgdGQgeyBib3JkZXI6IDFw
eCBzb2xpZCAjQ0NDOyB9CisgICAgICAgIGltZyB7IG1hcmdpbjogMTBweDsgfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBkaXI9InJ0bCI+CisKKzxkaXYgY2xhc3M9InRlc3QiPtmF
2YHYqtin2K08YSBocmVmPSJjbGlja3MuaHRtbCIgaWQ9ImFyX2xpbmsiPiDZhdi52KfZitmK2LE8
L2E+INin2YTZiNmK2Kg8L2Rpdj4KKworPGRpdiBjbGFzcz0idGVzdCI+16TXoteZ15zXldeqPGEg
aWQ9ImhiX2xpbmsiIGhyZWY9ImNsaWNrcy5odG1sIj4g15TXkdeZ16DXkNeV150gPC9hPjwvZGl2
PgorCis8L2Rpdj4KKworPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jbGlja19zb3VyY2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2NsaWNrX3NvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4yMmU5MzE5YTVhZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3NvdXJjZS5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkNsaWNrIFNvdXJj
ZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGEgaHJlZj0ic2ltcGxlVGVzdC5odG1sIiB0
YXJnZXQ9InRhcmdldCIgaWQ9Im90aGVyZnJhbWUiPkkgZ28gdG8gYSB0YXJnZXQ8L2E+Cis8L2Jv
ZHk+Cis8L2h0bWw+CisgICAgICAgIAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Q2xpY2sg
U291cmNlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8YSBocmVmPSJzaW1wbGVUZXN0Lmh0
bWwiIHRhcmdldD0idGFyZ2V0IiBpZD0ib3RoZXJmcmFtZSI+SSBnbyB0byBhIHRhcmdldDwvYT4K
KzwvYm9keT4KKzwvaHRtbD4KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY2xpY2tfdGVzdHMvY2xpY2tfaWZyYW1lLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9jbGlja19pZnJhbWUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2I3NDliYzA0NTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jbGlja190ZXN0cy9jbGlja19pZnJhbWUuaHRtbApAQCAtMCwwICsxLDYgQEAKKzxodG1s
PgorPGhlYWQ+CisgICAgPHRpdGxlPmNsaWNrIGlmcmFtZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9k
eT48YSBpZD0ibGluayIgaHJlZj0ic3VibWl0dGVkX3BhZ2UuaHRtbCIgdGFyZ2V0PSJfdG9wIj5D
bGljayBtZTwvYT48L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY2xpY2tfdGVzdHMvY2xpY2tfaW5faWZyYW1lLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9jbGlja19pbl9pZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjBiMWNjYWIxZWQK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9jbGlja190ZXN0cy9jbGlja19pbl9pZnJhbWUuaHRtbApAQCAtMCwwICsxLDgg
QEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPmNsaWNrIGluIGlmcmFtZTwvdGl0bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImlmciIgc3JjPSJjbGlja19pZnJhbWUuaHRtbCIg
c3R5bGU9Im1hcmdpbjogMjAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyIgLz4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0
cy9kaXNhYmxlZF9lbGVtZW50Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9kaXNhYmxlZF9lbGVtZW50Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxMTNlMWJjMDFmCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
Y2xpY2tfdGVzdHMvZGlzYWJsZWRfZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPkNsaWNraW5nIG9uIGEgZGlzYWJs
ZWQgZWxlbWVudDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TZWUgYmVsb3c8L2gxPgor
PGZvcm0gYWN0aW9uPSJQT1NUIj4KKyAgPGlucHV0IG5hbWU9ImRpc2FibGVkIiBkaXNhYmxlZD0i
ZGlzYWJsZWQiIC8+Cis8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvZGlzYXBwZWFyaW5nX2VsZW1lbnQuaHRtbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L2Rpc2FwcGVhcmluZ19lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjQzODZkNWQ0YjFmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvZGlzYXBwZWFyaW5n
X2VsZW1lbnQuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcv
VFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKyAgPHRpdGxlPkFuIGVsZW1lbnQg
dGhhdCBkaXNhcHBlYXJzIG9uIGNsaWNrPC90aXRsZT4KKyAgPHN0eWxlPgorI3VuZGVyIHsKKyAg
cG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDIwOworICBsZWZ0OiAyMDsKKyAgd2lkdGg6IDEw
MHB4OworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKK30KKwor
I292ZXIgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMjA7CisgIGxlZnQ6IDIwOwor
ICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDogMTAwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IHJl
ZDsKKyAgb3BhY2l0eTogMC41OworfQorCisjbG9nIHsKKyAgcG9zaXRpb246IGFic29sdXRlOwor
ICB0b3A6IDEyMHB4OworfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgor
ICA8ZGl2IGlkPSJ1bmRlciI+PHAgaWQ9ImNvbnRlbnRzIj5IZWxsbzwvcD48L2Rpdj4KKyAgPGRp
diBpZD0ib3ZlciI+PC9kaXY+CisgIDxkaXYgaWQ9ImxvZyI+CisgICAgPHA+TG9nOjxwPgorICA8
L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgYnlJZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkLmJpbmQo
ZG9jdW1lbnQpOworCit2YXIgbG9nID0gYnlJZCgibG9nIik7CisKK2Z1bmN0aW9uIGhhbmRsZXIo
ZXYpIHsKKyAgbG9nLmlubmVySFRNTCArPSAiPHA+PC9wPiI7CisgIGxvZy5sYXN0RWxlbWVudENo
aWxkLnRleHRDb250ZW50ID0gZXYudHlwZSArICIgaW4gIiArIGV2LnRhcmdldC5pZCArICIgKGhh
bmRsZWQgYnkgIiArIGV2LmN1cnJlbnRUYXJnZXQuaWQgKyAiKVxuIjsKK30KKwordmFyIHVuZGVy
ID0gYnlJZCgidW5kZXIiKTsKK3ZhciBvdmVyID0gYnlJZCgib3ZlciIpOwordmFyIGJvZHkgPSBk
b2N1bWVudC5ib2R5OworCit2YXIgdHlwZXMgPSBbImNsaWNrIiwgIm1vdXNlZG93biIsICJtb3Vz
ZXVwIl07Citmb3IgKHZhciBpID0gMCwgdHlwZTsgKHR5cGUgPSB0eXBlc1tpXSk7ICsraSkgewor
ICB1bmRlci5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworICBvdmVyLmFkZEV2ZW50
TGlzdGVuZXIodHlwZSwgaGFuZGxlcik7CisgIGJvZHkuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBo
YW5kbGVyKTsKK30KK292ZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgZnVuY3Rpb24g
KCkgeworICBvdmVyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Cit9KQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMv
Z29vZ2xlX21hcC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdGVzdHMvZ29vZ2xlX21hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5lYjJlNTU2YzlkMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2dv
b2dsZV9tYXAuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgIDx0aXRsZT5Hb29nbGUgSW1hZ2UgTWFwPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGgxPkdvb2dsZSBJbWFnZSBNYXA8L2gxPgorPGltZyBpZD0iZ29vZ2xlX2xvZ28iIHNyYz0i
Z29vZ2xlX21hcC5wbmciIHVzZW1hcD0iI2dvb2dsZV9tYXAiIGJvcmRlcj0iMCIgd2lkdGg9IjM2
NCIgaGVpZ2h0PSIxMjYiLz4KKzxtYXAgaWQ9Imdvb2dsZV9tYXAiIG5hbWU9Imdvb2dsZV9tYXAi
PgorPGFyZWEgaWQ9InJlY3RHIiBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsOTAsMTAwIiBocmVm
PSJtYXBwZWRfcGFnZTEuaHRtbCIgYWx0PSJhcmVhIDEiLz4KKzxhcmVhIGlkPSJjaXJjbGVPIiBz
aGFwZT0iY2lyY2xlIiBjb29yZHM9IjEyMCw2MCwzMCIgaHJlZj0ibWFwcGVkX3BhZ2UyLmh0bWwi
IGFsdD0iYXJlYSAyIi8+Cis8YXJlYSBpZD0icG9seUxFIiBzaGFwZT0icG9seSIgY29vcmRzPSIy
ODAsMCwzMTAsMCwzNjAsMzAsMzYwLDkwLDI4MCw5MCIgaHJlZj0ibWFwcGVkX3BhZ2UzLmh0bWwi
IGFsdD0iYXJlYSAzIi8+Cis8L21hcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L2dvb2dsZV9tYXAucG5nIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdGVzdHMvZ29vZ2xlX21hcC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYzZjU2Mjc5
OTVmNmYxNzhlOGVhNzhlMzdmMzJjODBiMzVmNWUyYgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MjYyMDkKemNtVygrV21IPzs1KUh2cEctJU5oVCNDQ0MyJGJSdSNvYiFtck1NRik/KFNPTGlhVyl2
eEk+WHIrfSZRakghSm9oCnpjaW5UJlR7QzwzLVY/NUBEMjBoZWYoOEhwRmxENEFRfj59NDh+QVR1
NURAK3VsaHs1Mnw5YXlmdD9kaXx1dX1pYAp6TShgKlNicHJxX0BNSSohKUlGQXVKS1FzQUhDXmRf
Q3B0Yn5VbVB3N2d6ZHxXNVgoVG9NJV9xPUhASzBHNkV9aFoKendudlMoTytVfThXfGp9VHQ3Plo8
MGcpVlopS0xINlU+YXFwZlNmY31mc0Y3PmkoJUNkdVR6MSYrZC1jLUV8TVl7CnpWT2J4TWZARSY0
PVReSjklMlZPPCQ0QHVgbUA3NHlMUTVMJVFQcz1fSmwxPE1zbGkmb0E7ZUlDbVBEfWpWcUtKZwp6
ak9+XnhTM1AkXiFNYFQ5cipTentIZ0RmYj9uUkc5KHgxbGszcCVxZTFKaXQ2P044VUErSW9BLV8o
JGpLczRafm0Keno9WDkmQ01tT2VqWjBONk5mTHlaRzxQZDA/ZStrIzhFKHV6V3lWR1hEaypEVkgj
MWVZbDAhSD9rY3VJc3h0ND9QCno9LXg9cVYhd1A7KTZhTitsO185JEh7dXxpTSMqMTl2QTc2RUtu
Y1IpO0NPPHojWnR8MHRWdXE5bFI4cGYqVWV2OQp6cmQ4VWZ0UFUoUkg1WDd8QUJ0R2BKVHxDVTx9
SGhRJnxNOEcpSC1PI1FgSlVjQVY0bj1nZUNAc0xoeV8henlEJnMKek5wPit6c2x1O21EQEE0VUVh
ViNzQ1M5eUVvK01+MWFOR094Ul4pYld3X0lufE9AZ1hhY2B3a0xrd0o+N000MWJuCnoxRTxFK08y
dW9Lblk7WFI4Yj0tZCtCPl9+dj5wb0diaSpJJk9pOGt6dGUtIUskRXFQdyl4VVJuSEU2UClLUT9x
fAp6K3NtWGkwI1g0ODJkTSZrMTBnXkZzMmQxXjBUfEg0dGRZUCklNlpxRGZpU2U5TTlsKFd0M3Rs
aWNVVm1ecEZScWMKekl4ZDlAMyhYaGI/MHBlXkVlcCEme0lkSEpRR1MmayE3JmtzU1J+SzhybmFt
ZiszTGc7UXlNPH1ycFUoMXZhd00kCno8KypIM3Q3MWUrfEVkN1MmKDYqK0JDPFgrbFE2bExWK2FY
Nk93bjMlb0xYeUlTPz9VM1YyPFo3Vlg0NzA0UzU2OAp6bEoteTIpPFRqMTEyb3U+NWRhN3tWdEx9
fkJ1T1poUH1FWXlEWU9RWj92SSpQKDEtVUFTTGJKZWx9b20hRHc8O1UKek1ATmBLPGAjPSV6bm5r
bT5LVyl7WEpxSlZZZzt6eiRpI3pqMFBSaE8/bTtHV3EmdG1oWC1qbnEzX09qZypoRmN5Cno/SXRC
NzhMeWo5OHtgeGU4JFdHentydm9oTE1QalY5NEBmV2lVYz0pX05gdlApYFg/ekJWP0FlQWJzO19j
PWZiJgp6RispZ1d7IzBXT1IxZzMja1F7YDdyMClNdFQtbWErS141KERYfk9ffUZocnRLJT0tMSMq
ZSZnYlpUaG8mTGppem8Kem9pTUE1KUB6dmZVUWcyMjx7VlNrOS1aVDg7ZCEpaVNGKnIzR0NaRmxW
WXVTQyVzfDcyQHN+T21vey0jcDUhTTA1Cno9ajVORChjKT5kR0liSmleNWVycEZBPUlDOEktc1Zi
ZUQwVHtxYz4pYUdXblIzY3FNZilTVHZQVUNsRTItPCRCWAp6SXUpPCFUV1ZmN2lmfGhMcXh1RU4k
N2U/ajs/JlNhQmF0YXk5O3NAJDdebTVUUWxpTE9We2tLNzB0dGN6RipyYiEKems7PHFyS21icyhM
RDg8NnQ+dENDKEEpZil3IzI7YW1iVH5eRkQpdm4pQS1PendvRSphb3MqTjNuPilDQ3s9UG1WCno1
dkBWODY3VThmNWVvcU1CUn5POzc1cUFeRFEmSC0qKEQmU1h7ZyFsMllwdjEmcHAtKnFTfl9sK0Nx
K3U7Nil1LQp6KWpHKz1EfTIoQUtHKElgcDBwYmlwOSZrWGBxKTloTiopdTNKRDt+V0kzeyt1YkQ3
Ul8kPzRANUgqODU/RylKTnwKejJ0VmljY0pGdXBnUTdDUSliWWlMNz5tUiMpal8hYzxPQUU2Mml3
WU9wQXkmazs8SENYMUsqe2tVcmA8S2R5VTZ8CnpVSjE0NnYyTnBgZylAfm1VP0NFS0FheV99Nz1S
OyZmTHZNPXpkeTJmbkk/fnQpQVZUdzQ+QGlaI3FhcyNOX1Y1Tgp6NDlCYH5aTzJWbHs7MHAwUmZh
KTxJP0lNTUo/RSR6R2ZgSXpFVE5KKG9YQ3xYJnpkczI+JEdIWiFfS2gzRHElcksKendXcFV9RUU3
KjchJH5+MlNLTFVXenNRclpfTn1KPChnLV5VRD9jYDxKQUVveDVKV3AtZ3I3SjZrQmU0XmBhOEgh
CnpJSHU3MzFIYSQkJklvbyMpeTBMZzlCR0RjLSNuc0pIWDZfY1k9d2RVKXNYS0QwTDxFPDBPcTQ0
amF2azVlJHlsNwp6Jnkod1ZMQWJuTWlSVllRPTJ5JkolNUNfU1NlKTJUWFNkZ1Q2UVhPdWNnXnpG
RFJ0UUY7PVdWME9yMTRGdTFHYWMKem5WKER+UUJ9JT1ZT0VjRmJ8OTVUQ1Zrd1ohKz9WOVlpNDdh
Tkx6IWAjPnJNaythdSRnQWpZb3tHeDBBI1FzY3hQCnoyJXQhJUlsJSR9IU1KKHYmKCNTa1J7UFZf
U2FyTCNnQUlGQT9KM184SmB0QlMyMG53dGhoVEVAdz96cFBBNDRYcQp6PWojJHNzSl4/dFQjY1cx
Smk7O3klZVlDV3Q+VkE0KDZXI1k5PnJoc2xKbEZvYU9Deyo/d3AjTm5fRjkzbzAoQiMKek99VmBI
I3tjd0VNUEJxdU08cm52JHVaRWRhJXxObyp3RnJncXV1K2FTZVE+I2VWdD5iYWAqPVhGY0ZLSGlK
bVd3CnpvQ2lWVTtzPHtETUohSGY/RWRUP1pAPHhiRj8jeSRFe2B2QVF4Ymg4dzk+RHRVbFRwc00p
IzMoaGxgKCtPJColTwp6b2JyNnZ3NnpHLXdycHh5azhLdmlaeFJsfiZgZjMlSzg3bSYtbzNtKElY
TVhrMjxZdFdiWldeUS1IcGF9I05oeDEKekxPPlZ5LVl0NDNgfUBSWFdFQzNhaD19TlRBMWBsQFM4
dkRMOSFYPnJ4eW0zZVdOfmktQlE/O1Z7OyotTig1UDhSCnpXLU0zZT5xVmNKaHxnfE0qT1BzVEV5
Oz4+cVJuQyV5WX1PP2M7O3N6M3ZrUVUmREZ1OXM8OUQkUlBuNUpDTkRYPwp6IWktZmpQMFE2KVQw
TmFjS0V1SnVKMGNQaTU7QyUqbGFxO0VDO0luMFlPPzBfT1koR1RPaTctZW8oflRYb31MeT4Kemt1
MldWXlElRSN0JSFzbUI3cGBuWHZ1Myp6WWc2O3Z0SSZrU3BMSlo5VHE/NGJfPn0mNENvdHBrTTAy
IVA5VyowCnpKY2UkN0tqMn51NWw4QlJaR3JDZyNHVDQwYUBKYX1JP2szamc0RDlTdG9nYik8JXMt
UEw5WGF4WUhEZ3xOWlFjUQp6dXZTWWlDSzhBMEErPVBRMGJXNGg4PGptMGFDbm1XSXpXeSVSKUh1
ITRGb31ZcXE5c2lJMFkhX2s2Pm49dithLTkKenlqNDwtST5wdTFOezNOQDghJmExPW5GNG4kUGdI
U1kreTJoV3hmeEp5UWlKJnpCYmAxNVFRUio/RlkwYWpqaVNECnpoOXhGKjVfYH02WSpgJW1EaENE
IXJLRl9aQyZ9Vn1JYGthIVZtUDwkLUYwZndTezBvVnpEK3hQajNPdV4xOSlzMgp6ZU16bGdNXkM3
Q1MrPStne1oyWnVvQSU4IyV6bHh2Sk5CYlU3JUh5emNsKnJ7MVpwV3tzd2wwT3p3ZUoqUHpzPiYK
elBMJV9WMWE7JTclWDVYbHRNRXplSjYhQ2B6Km8xb057V2luayYlaEFNUVUjQz9+QTxhPGAqS3s8
aFVyRmJ6MFZFCnpMREF1aCNLIU5CZzQxTHNSXnZOUVhwYz41YEZWTUhkM2RnJCh2d3plX1V3Nilw
Izg2eDt0MHtFaDtqV3hoQ1ZHRgp6aSlRJUpuMHpGdmhMa0hgKSU0XkBEIW1zVVVRJGpOM0cpQl5g
Sjw0Kmk7ME58VXk8NlkxJll8eis4VE1ORzUpOWYKenFpbnh0U3FuRVRnaCZ7SG9CV3N9RTVBXzNR
Pkdnez9OZDxYV01gaW9BTiMhQWZiMTQ4KFBobFdGU1NVcTZXKEdhCnptd3hJMC1QT3NOWk87a1I4
alY2KCg4I288I2IyMVZLPEJASU5qWkhfa1JLTnBTRTxfKzlVVSQ1OVRCRTtzOU1HPwp6QW48S3tO
cTZJdGI7S2UoSlhuVEU7JXYoflVOZjUlcDN7Ymhoc1FKY01FJjtnO209Sk5NUnx+TSoyY2RZeT48
dF4Kel8lOXhSVWpPe0skKSt2JlJGUit8Y2ZqK3JhPDxYQmMjU0hkXldPWmk/Sz9qPWNmK15Lemo9
OWlIb1Q4VjhpTCttCnp4cDtZaCN6JktFPENTK344VGNBTSk7WSZsUmFLUmhGYGZvfXMzdHslMTFX
O1pudTxgYXV6fj99aFFlPkg/KSZlWAp6PS1wM1VhZXkyUkR8K1FCJU1EZCk0bDwrdGA/T3pKcXB6
MT1VY0BNVmslX2UyRl9UY35wdUhTV2syWEJ+Vzk9JCsKej9CUGBfUT5VWjxGV1RETF9gcWc7aWgx
LXZTV0hsQ1Vqajg3MktUcC1oNWFfSjZGSylaRDhpZTx2V0Uwez96QW1CCnpUOXo1YiRGPkNZQ2lT
Kjl1YWVeOCg2RiFeWVM3bTR0IVElfTVmczZ+PE44O1diQlMleV5mNkFNWU1CaldDeyZwQQp6V0pw
S2xAQT18NmtvQkJTUXNsMFk3d0dUckpaJlhjRWB+cHQqa0Y/bW56M2R9V3grPT9IOHJLQ3JpTGV2
bVlNNDcKekNGe1RUP1VrTTFJR0g3bmVgaGNNSEhQMTlhZEVMWGkkd3ZnU3pvc0JVMkozVisqPlde
PHFxVGAmVkM+fkxBcm9lCno4clBDJWglUzBNblg2Vnx0ITJnUG5TaDlsakV0T3xCfXNOTmktezU0
aDJZQlliKXUlPD4qbXpaRXFaamZHeU1PNwp6aUxfTW5nKXRMSDQ2MlEzeXUqJHlWYkdqQzxrTk9j
OTwhdjM1WFZubGBMb2RXWntlPUlgflhUaT4tdFp2dmE2YCoKelhnN0N2KFVOdWZraDY8UkclbHtX
R3tXMktZWFVUNihYWS0tan5jdS1lYkhBRVNjbVZvS1pvdHFtPnJeSE5vWnt2CnpiYGR7dkBeYTlX
XzR+R3ArU1YlIU9AQXQ+UERFUlJwRktRfT94ezFHamlaSjE/KENTK0JAQTJDRldLLSQ8VlF1PAp6
VlM0Y3pPOSUkJTBGfU9hXz0kTl5YfDg5X24hZSElMlhJVkJ8RHV6eWw7P0ZGdXBIbDBUekg9cDBL
YncrP0h3N0oKenskPHBlQDBxKTRvbjJveGROdjNJaWZIUH5Qa2xTflope3RQaFFzTlhaUHtjQVhB
bj5QS3Jmd25Nb3M8RVVGNSFgCnpDTDxSK2AmbE1TQjIhVTUhfTRNcT5DTEpiaiR7d2Q3PVFjcUd4
QWNjPWs5VTF1YCk9MHRBWnc2Uz1MNj9EVmR5ZAp6V0ZQT15zYnpJekJXSDR0QDhAOHM/SU0+Yz47
byY7MTsxemkrWCY+YUhjRz5gNiRUcyY3bVJAKlNmZCVIa2QoeDMKekp+MmdpYzZLKVdrJmQkYTRz
VDhoIXJ+TWU+ZGAyeTxIcE53cjMmWVFuXl96JjBJOCM1dFQ3PjVHS2d7WnFPbyl1CnpSOGpwQGl0
LX45Pj4yN3FYaE1gfT89MGM8WE1LR2dsVypyTSNwMmU3TiVGKUZ1ZShoSVpKbEpBMFJEamZIXjgw
eAp6KmtOZD1LVnAhVGlNKjEwUylURWpNTll5Zkw+Z1FDaUt0JSl2WDFTQiErPkp0Zn5CMWwwS3dK
QFVNMVJUZipRWCEKejh4KnN4UyR2bV9yfk56PGhEITtPeH5pPCZLeFE3bEpqdUhGKkhgQmtzO09h
Q2dpXk5PdVplKnhzbHthTSZaaWk4CnpTVSlrSChQV356ZG5kTUllTTx4fCFtKzRQaktyeF45TzR1
KE0lZnZzYn1adlFZYlBBeUMkUFhnXi1WbCYmTl4qUgp6eFRXeSNfcGpZKmM3QjB+Z0YjR1NmTz45
e007YT4qMUw1cV9tdFp6OFpJQVZEVEFvLW4oYHV5WXc+PWxHJHtvbkAKeiM4QXtEWGZ4aVRIRDtq
eWZ5fnhjRV58QEo8fGIrR3B+PSlRT3p7M2MrM0tJXlM/UjVqdiZzQUdMaWEwdExsYXFGCnpuRnxU
WTVWLShvMDAhRHBDfVZmOUhSZDgwYjw+OGFzQjtLSTVvOyZBPUx+N3o8JUZtT18/eWxBSUV5cGIh
eTkrNgp6VWtCaGVya0VOKzgofig2LTNySH4/JjVoUlY7JmFSOEBebkFrMF5feHNOPWthQ3tnQWdI
KF47SSZraWJ5TkBlUmUKekpWKmYmbCk7bj9uNUJpd3h6X2VoOF9sJkA7a15xVG9SPFRxbV9LZCgr
JSU+PWlJU15CVGREJnhQISp3TUhIZFQkCnpOWnM4KU5HPHwyS20hMkJ6KG9GTjBETVNiKzE2SDRq
UlB7JEN0P3AkdFMpbDJtN0pzfF9kU0YqenduIWhuSlImJQp6WHxxRUtPTmx3Z3BHLSpGdzhtYyQl
cDk0PUAmVHptYVVldT1fVjhGT2BndUBYNEspT1ooa1pjbDV3djRsZWR6bVcKej9lK05uan5YJnAt
TitvWEhDe1hPVkhrRDBBRGBjJlBVfXNeO0A2TXFPeEJiPG5PWitGI3ZsTH5fJHZ0Yj0zfUB4CnpO
RWAkTkRISFZ3Y0sjaT52dEFoZFZtSkVLa050KCFYUD83PTI9bGdOajUhenhNVmJpVSQya21eNG8+
d2I8WVU+WAp6KlZvc2Q5QUEoOUxNLUJUPmFkX3N5VX5lNVlIUU99TTQtbWlYdUhSKDNsTnU8TGte
PXZpVnNnSENBSk8jQnUzKn4KemQ+b2RENFRxcUtxMmUrYWB9NWM0SlVLbEt2ejQ4R3Z3V2ZWcWdp
ZX1vfjxsJiMyKWlPTnd4PHBBVn4rUE5+QClpCnpxfkt+KFlBX308bjxzOEReVllRJUhUKG0oJjs+
SWZwJj9MRFFUbjZJYFU4cHM5emAqe01FZW8jYH1TeypkfXFxRQp6YD03bXp2Vl9McXVPbSl2d3Qy
S2JmR2glNERGQmYrSyhnOGB2XjxMeElGJU8tRi1GPHo3alFfPEpPclZESWZRV1EKeiMzaG0maVlj
RGZ3e0UrQkIjeEZ3TXBUQi1wRTh7PjFqWmJLPEYzUWEmQSM+YzlIVnVmMiRuWGZsWU1MKGtMcXV6
CnpwbVlRc1NKZzNeSE0paikzZF5ncGZQPkw0aUg5WlFod3NRaXUtTTskS3o5LVJqZjsmZkswU2tu
d1Q9MVIzemRLJgp6MSNEdTlkSVdTRnFRMEY+WV9uaXVCKn0qQEp5dU8tTE96cVVMRSliVkBvZzlB
LXBgbSpVeVdBPkJ4Z1F2N3V1UDIKenw1N2tAKS02ZDZMcm9DPlpOVWkrZ19UeEByJnEzQ1R4PUde
VjJXTzg4UH0zYW1ONW0jaiFWLThzVVliRGh6fXpoCnohOCpOdHA1LTwkZTc5YCV5S1k5QypQRGRi
dXUoLSY8UUR2YGYlTShBe2ZeVnBAXlhLVEEwdmZLPDBNeTlkNmtqVwp6V2Y/SW8zOVphQyQrNiQx
Zj0pKXc0fiR1WipANTl1YjB7KGRPJkxNTFV5fVN1aVR7a0VWYypBVV5sYHJXK2FRMC0KektCZT1W
eyZeSypWeGhRWDE7TkVTRzlvWStjVUJnYTIjRSpAX3RTYDZLUHA8SEItb2djKGgqNipCcX13eSgp
PiNyCnpkNDBYTyMheWAybjBMPzNQU1cwaGFNM1R9Nzt8YDZfQFNsJDU3MCljN2dQfXNgJXZ8SCRM
eFgxclNKMn1PaXJLPAp6O3RCYHZMQnB5ZE53TEF1cUBLJF9QdVp9ZlcocCZJaG9XMzt8NUIzRz5x
IVM1X0o/VTxVQ2VxJCFZSCUpKmx+QygKejJnJT42QWVfMWd1YGNJWlBrWV9XYDh5JFVPQU90cSlu
MVRDIXRvRDVDVlBYJjl0U2d9VzRtQTIqb0VWSC1pJFN2CnpJaE9FRy1LdnQ7Q3V+ZFp5Zzd8SWw3
O2wrLTNGUUYkMVVmWk9mUVNvOEIhIU14JiVoYXhSaWFnSyZWOGZeWmZHagp6VVJHMWQrKT4tfSNQ
fipnTXt7QkBhJktsck1VWHNGMDE5KnA/RTxITjtOYGpHWkt2blFlS3RRKV9tZ2pqanF4R3gKempi
MjZsWkdwNF4xISowYk83ZXchNzArSy10JVhyTyN6WW9RWChzc0pGaDVveyFuQ1pfeXExSWhucSNM
UG0+c3JxCnpDNnIkKkM5YFROcXFxPmRmSigmeDUmO3FaUU5CQSRVdGJPI1BRcUxxTWBhOXFxT2ds
fEklcXxqcjUlfithUFdqPQp6V2Rld2clVG5yT1U7fjFkTVpjWiZlbCRndEhlaigye2JUUUUyZU1f
Ql4wMGdIPjE3Z0ZtKHVJfUFVKmIxKGJoPXIKejtjIyUqXm5TVjhmQCtSZiZoSWskSHN0SEVoOGZA
T2ZWTXNvcWt4VjArYTtXKklqTDAqOWRuKlE4e2dSYVpFZClYCnpUR0UqdDQjNkw7KG8+RUZGNkdE
bTx9KXl2KXZ1fUdlXkxQPmpvQ3pNaXlTdXVScn5JQ0FHPkd6VVBwIWVgcEphSAp6QUY3OEUydnZx
c0c5VXxKcU5lRURLTkNPM3l0ZHQ/WWxfYWJRMkBGdEh4eXRKKUBBQD4yKEEtUVVpXyQhemJJRXYK
entnO1ZqS31ALSslI3B+b3o0d1ozSmwmJHIpXnZvdjY+cXVTc2lvUzYmeiMoTGNCYypSaVlCdzA+
d2lKO3tnKnIpCnpVVDl2PE0odztPTDZ2OFIwWGJSZ0NHRmQycEZoXnlPfT4xbCh4bVR+bjBHamRm
Jm1+SG18QDZ6aUFUK0FiaDU8bgp6ZnBwalhieUVoI1E4VVBnIWFzPyRoZDd0MFExUk5ybnElRXxx
QkNiNVQ+ZkdzdmVNTkd1R2FsRzI+TCkkWWBKWEwKeldaayV8PlV4enZAUDZXfWsyaDZea2VXLVhC
YXwzSzRYJDFiMEg2Z2JTRmZVTmMhemd2N1c1NDFEa2pUdSo2K01yCnp0Xy1pVyQ7VjZNJUJ8OUBA
VUdvSVh6TjtwTXFDblNSZ15KJW4qVnghfDRWOFEjZUQpPjVOfSFmNUVfQ0xpaTFTUwp6Z2FuNHI1
N2Z2TXdwQmtJPn1RZG13fD40SFgpOTdhP2U2YTArJSZTY3g2ZjFkTlJMSn0yR2VkS2Y3eXY7K1d6
eDAKel5kQEI1JWVAdSp4bC1MYWNBIX1gPGQ+Qi08eDw8WHJ9YyVkV2pFS2k3dkk+KEhDYT44TCZX
SjQmVG81JkBDRj9fCnozPUJeVyttMThxZT9BVEZObH5ucWR0V280PWxYMXgwRjxmbHNnRWZoUyNG
b0cpZVN0QzY3MEdGZk9sRHJrVSRfJQp6bnQ4MDc4UFl6MFFISE19ZHE2V1hfQFYxIz5oOEImWWBe
IVlkO1A9fWJCQE4wK0YkMkx5PGJUVVQySiU4PVFFSSQKenN5e3NiN1lxMldeTSZGRi1TMn5TdFBe
TX54azxpJXxMN2RfdX5JP1BfV3N0b1VKKiNZRGVhXlVMV0tWTkZkQilICnpmNEFgM2QkaExreFlG
ZjI5cnxXX3Q+ekhCZGtoZ3I4TkohNmVFaC0ySkk0RSEpI0Rwb2hQSk0+cmU7YzVPb0AmKAp6ZF9g
SkItWSQwZTJHNGlJPz17VUxEeDVLKHt5MU9QdzJgVGlDPGBxOzR6WXtCSmk5akV6Zn5qeStqfW0w
QTNlQ20Kek08XjduQnt1S3R0IyYjJT9kPUQ3QXl6dUk9O2c4aHRGPDVaQXxiUH1yXnMwMlghQ2VS
UkV5R305Nn5ae1JRTD1vCnpnOClMaG5Sb25VUExfblFtXj8yKE1mSUllKWJDeTIrPDFPVUVPQ05I
Sk1kYHkwYiY7KiNOd1RMP1MtODx6RnJ2MQp6O0lmekw9PT0jdTh0e0c/TGpMbU0/cVJgPEdjRGw2
UElPeT9IS29KcV98TjJven19cVk5eEJRVzdSR2VmKEBLOU8KemM3ZUQ9dT45PEI5Q2FZPER9PVZ1
e1V5RWktZyk8WW18bW9Abn02eHNsJmk5OHUqey1OJEBGXz5XfiRUfXkldjk4Cno/MmJqfVFxLUgp
dTE3JF9OLXRyI1lvPWt1VGI9aGp0JmVMUFpPellEUEcjS3V7UVI3cCg8PntGPk8lNjJNVHV5RQp6
a2QpQ1JTejAhQkt7ZUxYKG5MTz12K3ZxJmwoa2dKSGlXPm45dmxlfTBfZlAjK25aR1o8ej9fUjZO
JWU/OWt1UHsKenRwak9sMDc+YGZgcWZmJGBPWTl3az9QNH5ybGU0S2dvUW1tSlkzdkFhV0k/eE8q
dldGYTIqKHRzJUpKMWZaeys9CnpyV1MmNWtmNGxVZzd4ZTV7YDlkTUx4REsqPiFwbkNAKUlyekJV
TVhvOGF0dkhvMzVLTnVLfWh4QHgwQkFPRX5ReQp6bz4kfWNFUms0alMqYnh2cT9KbklhbTIta051
a0d4cz95QzFEWEcrdXJPZDQhVmg2NmhDPT0oTjM1aE4+eCVHOT4Keko3RzlRMURXJHgrVWMkK2Vk
cUFwS0hrTVc/JnBZTG5EdUJrPkxuRmZuZXJ8PHAzSXtmek5XKClkVHdyUjVze09PCnooVlMtOENs
X2hfUGEpenhANkFwaD1NMCZqbVJ8UzB6SnxLYGAtNmt3VnR7bG40S0g5fUdtWVlZX3Z8b2RWKChK
UQp6Q1VvPF5pVVVBXmVGQTl0NjkrRjFhKkQ3ZVBPOVJna1YxTTxaKEZkUmlqPWxZRUEjJVFFWCE1
eTYxMUxAU0wrQksKek4xbik8bzB5b2AqaV5LJkp1PmpQMlNPTjxXUzRBeURsOzY3PyVvdS1KJCpF
c2ZTNTZTcmltWDdvWC1VKHFDaXgtCnppRmRsNSMoS1ElPyljVzcjcmRiYjBkN3hsViNVRyViMkRB
clFzY0ppV0xBX0RlZ155ZD1qZGhYT3Bfa2RCMV9gRgp6WmhPJWxwNyl8NWtQLVM9PDhCWlhrcVkh
TSFVUEN5ZGJRQVgtKSh3WUpoJVB2ZFoqJDJ7ODNVYG8rKE9qUHtDVEsKekA+SmtDYH4xWEhOJEdU
UGFxO1l8I3l2TkIkZXEqSy1RNjhkMykhRH55RHorOGAtTkJ9a0VsJTRBX2VPKE12ZCZUCnpOVClY
YilqaSRDX0FQITA+dU5aQHZ1cE9DRm5wSUlveihYUDdVPUE9aUZySHwxPVBnJFM/TVFocUB4ZXBD
QG5uTwp6YHhZIzRFakN5dEVPMj18NDM7JEJ7QmRKVlMkV255dCRmLSN7ZztkYmIpZG9jTit3VzhI
N31FbjtDMCklPUp5KC0Kej53QkZOJkc3cSZ1eWI8JWhNb30kNG1MQ2xvN3t4WHE8WX1ZV2E1WGM+
K3RoTipUbzhZSSFqfTdXKS0oKUBfbnRgCnpQcXNgaTE5JGhedE4rNXEmK29OWCk7Wkw4YWJ+OThh
Ozctanl+RnkyPHQ7citNN1h8OUYyUSVsWmpuK2tDPSR8eQp6PjRnK1UjYEVlUD80SmpvO0dAeXJx
dEhgYTZ8JGFsbCFkTEliJX54RSM2dzAmRGFLSVItdXskaElPWkVtRXUySCMKei0/dj05JCE9TEts
OUB8T2hOY0l+MT15QitMPWFTXyhuMDJYKTtzSzA3fGYlQmJHMktDPz5OelZ2QExsQlkhZlVTCnpu
bE8qRGp3PDFleDl4aVM1PzdjUCFUQCNoV3xFZWRyemV+I18tVmlLQX00QWp4M293WG9yek4/dTh9
RytQYTs0QQp6K1dsZVFEMCZmK0hQTiFZIzlPWDdjclokMXtrbTRSTjtkZHFmYVNLeTR7PmEoWD1f
QHhFPyN9YlZNQXk9YzUpOSsKenN5Jk4qNyNaQjcoMVVObWolQ1RAXk53IU9GLWA1WFZqaDlCTz1N
OXA0UGBqX3VrQDdIb3QpJTdpPG1fKHRHb202Cnp3PGRjczdnbUM8MWU3WUt4amhTUzRjaHl6c2N0
XkxWckw/biQqNEF9SSoocktMfV9zTFJQblY+eWpTdFNURyRyUwp6WUBDTzg1T3tjYUV3P1hEKjZs
MChAd2pSeGxyc0d+Ozg0WWVoKEhKZXVrVEJZcnJZc3tjUX5TbyMpR0ZvRWRXQT4KektSMW8jOVFN
entzOHooQEU1ZWo3e3J3VXhkTG5UbEAoSyFiTns8XlQ3bmF9VWItUmc7NVhGNWJmcF94ZEskTkd5
CnpFOXBAVzlBJGJOd1NDXnRCNnc3PmMkNG0/RGBpYE08Iz48SilsKEFeNSs8ZTFfUzh1R2B1YkxX
K1RKZlU2P2VKOwp6ZCZeRz1BWEgzSUl0OGw2ZylqUnYqSXttQjZtSzE+TT5LfTw7dnN8WWQ7WXh+
X3IoJF4xMEQwTlRzNXVkdGh0XjQKek4oZz1zZ2xrcWpKYVk+Uj9pSWRqVT9kK09wTyZWTTFvVkxa
UCtVX3lRZThVJU9DZFg8aDtZK0huJmlRa216LV5XCnotXz4hd0EyPDtKYlJZeUItNSg/KFYpN0FM
NEJWYyYyN1ZtJjM7MEN+UWRacUF8NX0rYCZUR0RxVlVXJihGRFdTcgp6WEZmLUZGVHopO2lxdT41
LWNlQlNiLWxpaT9oJDBDJD5kazhqNkhTTXgoLUcoOSFTZ2F1eTAhdnY1MzIwXkYjVEcKem1FVDxp
UURCZHtGPEk0TiRLTGJuclpBIUoxamtUc0N1Q3NSXz0qYnI8WT9DTns8cj9rOSF2bkpnSzEwfERC
OWlhCnopNXRfJF5jfnYxP0FnPFNIbnEwWWJ5I1hePnlQSilVelN1VXhqdWFPQVNrSEFPYy08VlB7
MlMhTUFVcnNHQE96ewp6aWRWVTJhdDAyUmVOUyF6eyN1RTJQNFQ9UHBpJUJSIy1+QEttVGBfeDNN
Nk9TXlN9dXtZMU13YGpSZUZ1dHo4T0QKemt9VGdwemBFKFVoPDlwJVUoPDZuZjxYb1VJd3R6M2Zt
Oz1pTz1kJERII3J8VTl9Nz5vJktRU3RXY3ZrJHB9d31aCnp6JCUtWF5aVjV2RE1HXnB1YGIyXlJy
IzF2PnUrbXNeTH0/VTRjb2VsbXYjJW5ASUZfVEcmYXZDPk0qSmFwRlUtMAp6enNvQHRJMWk0U1om
ZlhlPl5RMk0mb0p6THFsRntJSlA9P0MjI2VfO0VrKXE7dHYlbFErfnJnQDR4Uys8Y1ZhY0oKejAx
Jn41V1FhVXYjQyZnT2wzQip+KiFHVykkO3J1dThLPzdnNCZnOy08UmBffkx7X3V5M0lzKnVBJXgx
R2BzSlNxCnpfPX52T0k8OzJyOHcpVDlNWjc8KyF+cDtUKHM8RzxAfElNcj56b2ElYjkxfHdrVV5K
Y1cxXmVlK3Q+YkUqSW11SQp6RyNuZ2ctYU9NKFhgP0Q3MUclS3RxP3BnTzBAcHo1X1c0SCNoMk9m
LUxKPGY2OE43IWJkVDA8PkVkR2FRQU1kdD4KenRfSTRlb2xTbXFeYHo5eTtQV09OanlVYCFNb1Eo
aykzKHhDYUh0WlNoMWxVViFBdUgwSXkrQ3hIT1pxTmU9TThiCnpERUsmT3NjMiMkJWZEMjJjcCM+
NjdzdlF2R3l2JjFQJT5EbWN5JjRXUkB4b2JsZkNvVXh3JlUmV31ORkhIcElhMgp6YmNuejREMz5X
bD1LeiRhTmlNQUtBKml4Ynp7PFRBZVlMI2I+P3lkZSl5S1NmQ2VLQkk3JEh1aCV2Zm5Fd0EqfikK
ek9kKFhmNSR8T2BJeXwoX3k3NSZXaXE2OHAwcD85UzJFbCVDYjx6aE8zPmNPIzk4TUJ0M0Qrekx5
WkNkMTFVTXcpCnpnUj5sTWFFKmwpU3EycVU8QSUqN0wmTWdjKCh1SGYpJVpjQjs3MEt4QXd3TDUm
NWY/KmlhRCE2IWNQKElNLSlvZAp6WnRicWJ0cSpjamlVPGY1SiNKJUI4ZjBvaE5sN3omYUw1bTU4
VmhjRnYjbE9PbU1XK2ZXdFJJRHElZnJ2d3NAVTsKekdiME1BIXNHNmhlOUx9K3R5bnt5aXhmKEd3
e1B9MnooPEBJOHpGckF0dnpKQl5VNn0xZyNtb3s7VStfNG5pQ2gxCnpaKnFBYUU9JDRyenRPQyo7
YWhuK0VfUi16X0doT1dENC11UTVpYVR7d0RjSk96elc3Jnl4cFZWci1KJih0fnxQVAp6R2Nve3ZM
SyZOWFQ5K0tSSG9qcWQlbDdaITtOYjkzczBBSFBkLX53TG8lTGpXT0dSZ2QtdEZTQ2pzVyUtPDMz
bXAKelNuaGFARlcjVD0rdzN5akttcEBBQVB2QXxLMl58S2tHMiVIayRxLUwrSFVpZVU/JStqeThG
NH5LOWUxeFNMZEBCCnpTZzRUKEZzcCsjdWBQQH1GMStwZkU9XjBuNEApRjNqV35TOGR6PVQlS3A4
a3woeHktPSElWHlOZXRzWFd7RlNMSQp6SGp0flFjRGdpRGhLSHwyWFlgOWlJOHlhQEJOYXx7Wm5A
bTElbCgpO05MTVN5clM4cygqODg/KTFnNEBJQz9rd30Kek9CcHljTGduYDsyP0UycTEjS0V6KUA0
bmkpbnF0emNvcERmfEx5bCozQSo9XntpPGNOKldYMjFhM2IoZmo2P35DCnpGK15JPiVETTZhN1g4
fCtFR188fm5GZzMpdDU+NjlfPjt2Vmh4Wkp+XnJmUSt5bHY/PGdWJGFlJkRTJlNjVExCOQp6STU9
OXROUDJxO3ohMkZXb2t+Wn1rQUZ8UHlkT1RrXm1OI3tnKll+ckVmWjBHSmNfSiZ8OTZAcExlWj5k
NnVzQVAKejVfem5CZEFPJXN3e3g1STRTQFplcilmVFl7QkxiTFJeNCo3WE1VIUklY3lJLTRnejRX
bzlIWTMxaXVePFZkVSZBCnpUeG9Ibz9XQ2dmSSY2R1IkZHVOMGtSX2tEcDMrRiVJUUhEJkJ+UD5F
X0xiYE9wUlYhYUpoI0d2VFVIJkdiZys9Mwp6R2AoWkE/KyhJcV9PSGRAdmJebXc8UFJIYnZETG1m
JW4xNFhmIXJhSXFtQS1NNUxldlcmdm4xSDlDTGdwaU97ZCkKejZfLVhRI2wmeFBWfShMYD1DV0Q5
MnBVa3JGRTZ7PiQ4THxyQkluJncwMVFZRiphM35xSVgjYFFnX295cEpJJVhBCnp3YWpjRzBHQVA/
P194K1V7ekFLVnJ8cXFuOEJaSHBuN08xZi09Nml4Yk1LNnFSJnxSfEV6TTU8e1hSZG5uRzgmVgp6
MjJZa1pXODkzQktKWUpHVDZpPXRuRDMhZnkmMDRgcXZ7MWJvdGYmRCZxYSQ2eGMpTnxgRDI8fClq
fFMmXjF2P0UKemg7K3IkPmZXdDRFPmRNbWlrYCVicW1rKXl7SmRTXytqKVBKVzUwSXBmTF5wO0Rs
X1kzIVlwMDc2S3tKWEVjKF4mCnpAeWxHZnAjY2RnSWIzb2VCXkNOYGZ0bVVWTmVrLTBhISp+WlpH
fE1KUERHamBfe31pQCMobjVMcVg3UXVmSFdeSQp6NnJmPilRR2BXU2R0N2MtempSRyU0YWRiVDZu
XnhFVVRrUld7dzZxYyNENHxibUhSK3soSEF1UT8pUzFBSUJIRVQKei1mNDZxZzheSk0kY2gxfjhU
PVd6I0M4TnktVSpBSVc4NHN2SllfQUMkM0lWZlU1OChPJEY/fE1pPlJNOXFOQzYkCnpXQmF2dEtC
SCM0M35fTmRPX355Rk5sPGNXcTMkM0IxUF5+WGRpdUtiaEF4TytZOXZGXyFrcnVoLTBlV3xDTDtt
YAp6byVNM0VHRk0/PlYyflk/OSk/LW1OcEorO29gJjk9IT9AVzRvUSoyOXE/amMoblUpfEsqOXJ9
VEgpLXsjVj59RCMKenVUTkEqPjNKSDxSQ2ZOZVlGMCNjOTN8VHdDJXdsZnowTmh8blpzc2lBJVF1
WEh3cFlMZFVuVEhhN05ENjl9KTs/CnpQNm1sN2BAX28zbjZ6d1RvZlJidkpgaWlQVUpBd1Aze2tP
dncxT3p8Xjl9QDxJfDhkelM8TnxwXkRUdmFKJjhoLQp6UWFXc0VNWEwkJUsqN2tkTFl0MDUjMFgl
UEkoemV6enErMkNyd1lIZSlUVXI4MkFHK0Y2TV81P2JmYSRWNiF4TkMKek1UVWMkITg8X35udXZV
ZGhxYnkoWSV4X0ZCKzAzKXohM1ZvZjktam9tWV5uJEokS1BFckt8M0RELXFoM0c8IWtMCno9VU13
JV51Rz91MkZfeVVoK0Q0NEhmd196JGBlMGp5fk9jd2dMeFRHbWxxYVdjZVNqej44U356Tz4wUT1W
ITJRdgp6PF5VZD5HQHtnQnlMRSVoPW0rbVN5QUFHbjkoVCswbWdEPFZYTWQ2fXM5NkB6RG1PVSZQ
UUQ1R0dKUHt7T3E1KT0KeldLejRod3Mhby0pRTJ5ZCk8enkyVkpmTEs/KyF+T0wyeldyUX57e2sh
Wjw/SDNfb09AeH53JkJEaFUoSHU+NGZKCnpwPTk4eWhaWl5XRXR+PWA/bXg2JiYpeGxiUFljK2B1
JjNQQVgtYmE0MnF4Qy17QVBPaXh0Ylh0Ty1VcTUjMUE8aAp6cGdmMyZMcD85aENsM1ZWSjBBK19n
dV9CaVgha29DOFpII1RZdipwfiRgYlclNHZzNmRaQjxxPXdxOGBRcWNyenEKek83VURwPnVWaXZk
TyluSXppKU1SRHpjY3ZMfjx7RWJAKzIzd3VuZjs/PSg2KjExKDw1Yms1Nyk/RzMkdzJnLTtlCno9
VSFBbz9+c2oqNHZ2T3JZcEU+fjBhSWxLTjV9LSR0TH1DakliREpGWkJwc3NoNGFLSWd8bzZQIT5a
JnpuRHZgMAp6ZWNAU25mNWVQNE5qJEgteXU3NGp1PGYwMTs/OzE4Mk54d2ZJdSNKe0wxdWshKGFV
dnwzY3gmeypxOTc2cG4qX2IKejZMe0cwMFYxNUN6X08mLVNVZyteaWtMcXsoRENnOUAjTlhsZGpx
VDJgdz1YYWw4V1BCaXNSajtCOGJnRz88eTchCnplSiVGaEZ3UE9uLXkkK1ZQLXA8P0pCenFOZ2k2
Yj45dWtFZkwyYkdPJWF8dkNNenhUNy1JLSZXTlRSekQmXlMyQQp6b2pZVGt7d0N1anQkdTcxcztz
UClzPH4mM2dIeVlYbUEycFN7MGo1PD55b0R6TnFSaHxiR2w0YU1acyg7eG9JJnwKeldHTzJsPCNt
ek1kfV95WDxjUl84I15ERFpfUGRnZF9lN3ZBRFFTd1hgQnFnZStVd2lEVC1NaChPS3Y0KklTJita
CnpHXnlEIVlKVl93ZGRjVT9TbTZ5Yio1VigjRT4mbXhXcFctfkg1ZG1gVyRvX3lCITxrOGl5IUZY
PjVHZypmYWRPMAp6e2Bna2hibkpaNmBvcm1KWSMyckMmajFEX0xRMF9OWis8R3Vqcmd8IW95Sytq
Y0c8RW1JYVZGa1BkfTBaYnQ7RisKek0jM1RmSEd1YlZWWWk+TC07dDQhY3Y4V25wV1N4dylscm44
cGhiaT50WiE4eSZSanUoK1V9VlcoeU9XUktnSj08Cnp4cEBpSlQ4fkBTS1FKS2lYPkh8OEhhZ1pa
ZlZpfHpzUW9taC1WcCY8XzlYKnV4Ynh8TTN3TXN7bWNEdS1vaC1HVwp6JjI1JXJGaSlwaGYxI3Rn
RnR9JTJpR25MSHZuMDdaVV9jIUk5X3I0TXs/dmYqXzshSlElKDhXTFc2bT0hPmx8Z3sKeiZRTEx7
TGkySXF7MDVLdmB1d2xAcERYTHgzPXk2aGBxKWJLU0tSO1khbjleQG1fKTE/QlpUbE9ya1UlIXNK
clF2CnppS2lfeWVFYVVzQX5yaCg7eHhHeSVZVistdnNYKW9nWk00cTxiNyZAOGFyeGl4JSRwRCpQ
bGFvYVQpK2FJaU4wcgp6b0AjeHRRUHQxb2l7fTd3NSZjeForJT0mWVlBRkkzPUtyUTIpbDZocjNN
X3pwSmR9MShJSUx2OG9mVVQzVExBYz4Kemh8UzZsZik8T15IKylFbGooJiZwZHAxM2IqZn5Ia049
cT13UENgUGdRUWV1fCshO2xUZVVXcmF2NGtLM2FSMlFzCno0d3cpWmhwP0V6Qnd0T1pxSHFaak9n
YmN5c3xELWZqSjxQWEVuQCNsZV97NF4rcGd1ZUA0YW02QTNfXkM9IUFBMQp6MlImbng3fnc9X3k2
fG5vIU93OSk0N2g+bl9RJkNHSTBTYG4wVW9wdko+KE16MzVveXtKa2t8VDJ0b0QySX0jdkwKelFk
KVdZMjZrcloxcUQ/QSVeYX5SQEp5MEZLRHFzfkRlMH1yQ0paJXBfeztuQmtPaEZPX2xmQUtSKEAy
YXE/dWFoCnpPUTBEfUtzdS0jMU9TNWxhZUBLRUd5UTtYZDZzV3glZyRIfTdfNj40SWgqfFVlIU9v
S1R6QGt5bWh7PWArR1czJQp6VFI4c3JqRFJzdmBKZThiVTtzSzU2T3gyK3FxfjlFPV9YUX5KfG9Y
OyFSTzdHbmFeVjs3RjAyaVVjSXJiMTVSMnQKeileTzlRRChCZ20/Rml2eiFTSFAhPD9TUV91al9e
VmdxJkAxdVY1ezM3QiM4IVFRXjhfdyh5dEhxcUxIPXxJVkUwCnpLUXF4eVJvSXMqcC0hM1MrPiMx
MEc5V3ZgU0xsaUtBJXZrUTVmRE1+JmI7MDRaTzJqbSloRV41S1B8e0VhMTlKaAp6N0dQPkBTYjhi
V1FGP0gwUm9XaDFvSCZ5MEVjcnUmdDFKZSkyMDBkKSRSQTxhcihQeldqSk9vdCplUTE9ZUQjfiEK
ejhgdiszZUZsYm44ZSF4dElMbGcqOEhNYENRRkNMejxDeSZ4NnJmZGUtOXEwaFJAJFJBQmBYbzJ2
fmxsRW9gMEg/CnpsNy00QzZWSmI9bkF6aThEMm1pRDU7TnBWaEohK0JKU1kpUnluWm8hd2lkbkhS
PDxOekR1KGRqNXh2K3xsQkY9TQp6czg3Vnt7MWAyeWxYRCs8S2I5bSZEKj4qUTIra303VHoqbFEl
eFc8PVVMaG4kZzdhQ2IlbzxEdGg3Uld2P0RVKWsKejZwYDNwNWh3e09yPHg9bFQyUGM+NzBRZV9R
TF5BVT5jP0k7STFUTzlnViFsbjViQklSd2ErYUR4a3hhcl5LPTZTCnorM19rVmdmZSkmZTZ5NGNA
UVBwQ1RmLSVFcCElVjZETntadU9rVkhiO0pzTSg+QlQ2aUYmOU1YNWNQNEQ8SW48RAp6ST1YQFll
ITdiQjZQdlNBeVIraSYhJm8lJUcrQ313XiVxNygjYGhPaj9qRmxobWI5R0p1fXNxKlg8RHs1OVNh
WVYKeld+QGV4MHpxbDBkTGB1aHFsM2Y0TkF5YCE9SUFMMmUzKS1fYiE7S1Bhd3JFM2d1QE9oQFV2
cmBOO35aQXhDb3pRCnopcCEwKipZOTBnRVVETEdSSllfdFhPbiNLSjtBaXtySVI2fF80M31TPCVs
fF5QZ18lbzh8OHghPWcyPmMxRihjTAp6Q0J1R1VreHYzbCt6ZWwkJG9OJDZAMjBucDFHfj9rQW44
VVgkNXo/ejtvPXo5XzJKVjkkd3A7dlI9e219S2hZUz4KekFBXjUpJmM+VFk/bmJHUTxvJX4zdX0+
dlZwN2lUc00qeTVmMWMxP0MyMmtrKjsqVW1NS1F2YS1Pe304N0MhSCRCCno4T0hFd0MkX3VMe2J+
YG9TbG9DNkJOZHVRYmRVM2cpUDY8dz99b3ImdlhvMiZyVGlnNkAybklSUX1NYmMqcCs0Nwp6aG0/
WHBFIU5pOHJHSX0lVVNzVWhKTkltdyl4JCtkN1FPJWcxOGA2QT5wPztPbCZLa20zIVFiMzMlKz4p
JjloZE8KenZ4bW9TRD8lPFhCQlVPdU5ZYEpfeU5XPi1yK0lQJDgyO3MtSkFpUGo1KDFOUEt4NGpM
aUZkSjJlVzl1ZT1JUjV+Cnpkd0c2YEYoY2k4eTtpPH1DSGwjT2h+Y1FjcUZxTkZOZzMyU2Y1bWZw
LUk+YWNGe2V5JWx6dk5YVF88WnRVQ3lPTQp6dH1RNjE8YkIpRSt3UyMtQT1+OWB1K1VpXjB1S1lT
dyRPQHFGSkcwTU04ZEojQThGfH0xYUNMak82LXJgYX5nfCQKemJeTHApSTE1fU57enNOYmlCdnN2
KTk+OSVnWno3alpMdn05K2RxaCRILU1PfmwoSj1sSjlMdUY+bVpTNjZSVCEqCnpPWTMraF9YKHow
VW5HeiFadXhsdHp7ZWdWM1MyNj4jTl9ZUyRHUXFjeWQrVT5AZUQ9bnRGfll5eFNVdE48a2FHZwp6
c348eHhNdVg4O1dfJiRsYUJfOEB6eDVnRVQkM1JldXQ7QlA9T3h8bz57PTtYYk85e3pwXnh0aSh4
YnpAWHRZRFEKeiQhYWczdGYrVjkoNlVVSSt7WDhaJkZlJkEjQyFmYlojeiY8MERYXnpWSWBGcWBq
TEB2bU1jIV54ZUNmQFhee0Z1Cno1bG1wKFQkKWp1aWFwfGk1Qzt7dXt4OzNRU1dVYGNBJmRjPTBD
TGJqYGN7dVVgN3FFTTVVPl4hc0piWWxYaiFCIQp6UTNpZ3V0ZWN1dmQyQDQ8eSRNenAhaHhQVzVz
NjF2bm1iV1JEMDtUOFlJUi1nPjxefFAzOSFCYzNgLWIrQEJAe2wKemhWSD4zZTdTKjdTPWowQnNq
fmt5NURvSk5KNDBOU2tGU2AwWEVkJHZxKHJvZldAKjJlUmthcGpHVypMKUQ/YkxJCnpQY14rKmcj
P1AxQkNaT2hFWSpKNTxzVnY1WStidzZhKFdpN2JRPnZtRkdASzFIQnNYb00keUMteU57bUVZP2h7
Iwp6TndCdmw7RnVpIylzNTA7eWh2YTRfVTYyaWwtVT4lP1FNZFdjcDxmR1dySUVQPlVKPFRoTFBw
PiFsK2UyTGgta2UKel57NyFEPFg8Zm80P3lAS2VpS2ReWlVrNjhBSnEoa2l+U059JGZhVklVXj1e
ciUpcVM8Um9TfGElN2Nufm5JRyhgCnpgcGNncVV+fDlkUzxSWisobih4fHo5P0k3JG8/Pm9CMUJO
eDJYdCN3OEAzM24qT21ETUxPOSFjdiZ5TVZ6Nj0hfAp6TVNmWlJjSz5aJHVTJTstSnYhfFVSUzcw
MyFLcUR5VExRSUsyOSMkU3FhaCQ5Xl5Sbz0mPmlnVyF6cCk+ZUpgZVIKejNJc3JBNlUqQ3dLZER2
SDUmVUliQCN6STgtPjZzYGl2ZyUhbVJiSTAmYTVhRU12MG89NDgyXlReWU5afCg3NCRwCnpqcn5y
TVF3QmdsaUteeFBLd3V6cUZZYG4jJms/aDNBOCEjMlBLcUdxcTNYaU1fbXIlKTYpV0VQKX4/I31v
ckUmbgp6dWdXQ2dJM0h+YiV2VGtocCNtV3ZxfXB7JT5LXjRUVTYhd1JtUks4MVZwS0haNURaWSNN
U0BMTUUpZVJnTkdNcHkKektEfCRgNGtKO2ZGME0lVFFrMzwlVmxXOChKKXd8QFduNkYxYl9WS0k0
REs8MXVUPGU5cD5ubTFlKWhZZyFoMWs1CnpvU3B8NEteWUFwKXxGQCZeTEEoQnhub1lYJSFTSWI0
ZXxRfmpASVpBYjZhQWl4IWM2bHpuVEAha3RFcSkzN2dnUwp6eEh9KmE2VHZVc3VTaHRgdHV0bSpj
fTlwdVZ2VShDKlMhM2ZWXyRZJUd5JSMoPGBlMDNIJH4jLT4kVThvZEhwY2UKelFoVyRnUk1RN0Ez
K3Z+WXNIOVZ4cjVAVkh5IVhremp+fF5rVEk9VTMpWUBjQFRkZiFMJU4zNzl6dzdRYDIrN0Y8Cnpu
TXQlNkMxXz5FYXdZRGA8PlpyUlFpcTloZ1g4WlMlNjdWNUp5eH5XSX5wMlhVPSg+SkRZQm0mMGdC
eE13YjhgJAp6cCRvIylEWnJrck1AMHExPjt0Q25mc0trPklmVW83bl4rJFZpTUZBcWM7em0qbjRz
WFMwUTZrTk1TcFMlMn1ALSgKeld3OSNYRTtkLWpCUS1gRjF6KyR7KzhacnoqYHpsfXsjOzQpWmkx
R1RoUiFPS0ltV1ZZdzFPOCFNP1hzLTYqYTI8CnoxQnA3QmRwOXNFQz5oX0wpSmdQNDQ7N29LKHYz
IXxecExXYWs8KXQtPCord2pWRlBtY0gqUVhYSikjYyEyYTlFYwp6eVBQJTIxfTl+ZVN9eGRNTT1x
KDJae3s4cEE4YXdqNkhqJUl7YkJWNyZLbmgzbzZkcTd4fFlwO0ZWb1hYJip2e24KemB1Z1M3aXh6
WFVES2lnRihefURfP2AyRXtzQFB+N0tkSV5SSFdJOEBIUDZQbmNLNyFOUWJxVVl1K2FUIXt4cVJl
CnpUTmJzd3w5aEV+Wk1DaFkjO0VlejxhXmQ8UkxhanhDUUI0bz50MHZjdXdLUDE5RD9Bc0ZVIVhf
ak5OS2tAMWVQbAp6anI8MSVMPHtFPC01ZytQez45dD0pJmV2KyNjT3xPREFyPFN2UFRoSysmOGl9
SEI7VmFfPkkoSSRveG13bS1fWmMKens+PFB2TFBpOXRjNHkofT1aVX5tPzteK09HJX0mWDNJZUxM
RjdFLXxHUlEzN1QyOU16ITB4cyRnUyMtdkJueWA9CnomWCt9K0JNZ0R9JT1WcV9eSi1XcXxCcS1F
ejQoTzk/OXd0ekc1Pzlzc35AYWNrVFBtb1QlKCgwUkk1d3BMMEpUXgp6PjBhV1oqYGhCNV59b2Zm
bElCUEZXYEdWUWlyYSU8NT5AbEhwX1pLd15KbDFDT3w2TztfJVI8SDA7RiF9YT1KUioKenRgI3Mz
Z1ZXO0RoNX0reTNWSk1uKTlENHVpTXtlanZnTFlgRX5TNkJqR2JecE9MPjRXKkRiUTgjQ1RwV0Ir
NylICnpgZzJtJk93N0pzeEprTkxBcD1ZNGlsTkE/I18oazY0ezhMfC05bzgkaDkoP00jZDdRZUA0
fFoxcUByVGc/Wjtrawp6cXt6PGwtblRjUFpVbFpEKUdZd2IrdDl2YE82cVViV1M3MVkjcF49PTYm
bH4/dnN4b0hwbEJUYWRhWnQpb2tuQUsKem8/dkVTSjQkMExFZStqSWYmbSFYTWt8aGAlTj0rYHlF
KkU1dFFxNS1lfk9hST9lJGxNTlJhfFN7eCN6MnZYI0I+Cnp7WilyQlVpVTstaThCcm5lYnhxWHZZ
dUQ/TlhpZzZxdmhwIURYa2FKLXkyUlphJkNFZ3AkLWxWRDVBeD00aGpuIwp6ME88YzYjP1ZYbE81
Rmd6ZkApP0UtfXIrX1JIJkl+I2xEa2g4c2djZjg9UXZTP1pEQFBsQUs9Wm9iTHtGbF5JZFEKejVH
MGpyY3pjZ3t6JCRzVCRubktAd2JqaDheR2FAVDJlRTRofERuZiVKVEJHaUJCP1ZtZnpacz9gUSlz
IXhiSGxSCno/RWRVdlpfZFlsXjUrUmxAVUxZfS1Geys0KTdwNmlaTVUqfDN6TGV0KE90T3MhRHFq
fDNSaFM+NjJIVG9QUERKKQp6RzZKK30wcmh1SWZMITJqNUo/PXE2V1REamQpanc0Z0h1KzYyOGB3
SlNSblFVZjR0ZjshdjFoRClMfmdZY0hEdzkKempvTF9gYVd+Pl51cEZQaTxYb0tSc3EhRUxDUTxI
bUpgakp+O1U+ZjRRMlZmUlpCYVp8UTF+YkY3KnR+anBiYkdrCnolM1g0QU8+eV8kYGhHQiktMVlT
SCpUeXxXZkxiUkFAUDxqVUJvVT1abkd0Q1VFdUgxKlJZZCpTP3twTXkrQjl1Iwp6Um5wKE1JfXM3
eCU4VTttQ1VRRWR5Q203T213e19gYTQmTDkhMXNVcUpfKTgzQzglUFgjcUBKUVVkbWglaH54bUUK
emJPfTgtNm9RPH5AcFFHSUJZTSN7Uz12KDFgWEA1eD4kPG5MM1RraEVtU25ReFM0OHEjYSh0YFox
WnB3Wk0hV0UwCnppfkZ8QEA9Zl90MTIyYEEhQT8jNlc9cVMkaEF1dUt6U1Q5N1ZAPFYhcVQlei0r
VFJGbGNicHM/OTBDRllKVW9xWAp6UmRhdVR8MFJ5YWElN0BMV3wpWFdxcnkxQkFzc2k/SUQ/KG9E
QjxAa29USXN4JX1KJTdkRHw3dHRyfSpwfDE/RVkKelZMfGhtVUkySXl7aXNfeC0tPz1GaE0tKHR6
JEglUWNBYkp+dG4kej5FS2hlP219eFpZQlk7OyZPT15BMTUtZj5kCnpxIU59KEhIRSt3eVNnPUEw
P0MoRClMMj9hTXB9R0JZWS08SGo2bCVmcjh2MkZzV2RrbEpHJVNSbWdKJE9YKk1tagp6IWsoc2Fp
Jj92R3pRJWI2NzgyeXxlJDtwU3ltND53TkpOeFctQzYhek15a1Ywa2ZGdENPSWwoIWNCYGs/X09B
aE0KeiFJcDx4XnJORChsIVh6bnp1UUhoYjB3O0p0UEF4MkJUQ2Ilej88QzJRLUBvN0ZwfCl5JEJx
bmlJJHNfTi1rdTgjCnpYVCM8XzU2dT5TbytwTDVnXjJCeHwzPF5GWHdDTFYzKVZFRzhhTFpTJSZC
LUNlQHVyZm00fXw3JDkyQG5mPHRPNwp6IXZ+U29jYEtkdTxPMnllZ0god2BFRl5IaEJRQlRqQz4/
RElDJFNxWkN8OGQpTVlmMEBiMG9pVld4RmErI3xwd0EKeklvc0pLcWxOR2xESm1FSThNMVd4VktG
c19GRFU0Y1dKI3F5RyNfYXhYSS0mN2cyOyMoNCVQKntVYkgoZyYlO21PCnp4bilVI0RRU21EVWBk
bDVSSnAoK1d6LT5eTTIrMUNeNlBfcWZ1KnIpRFRCIUpEbDBsek8qNEtiTEpDMDAyd2poJQp6Kmt7
a2ZhPFJsU2coKyN8SnU2dyZ5dTA1OHNYNjZvMz9OcnJidHQkTEc4R3Z4ZjNhekkteSlqem4zZU5T
Kmo/Xz0KemUpVyV9dnkjcmFyeyFiRVJqTF5gbzh7dVVgUDl6K3IwKkdfcks8WmtLUm9HVyY3TEp0
a3p4b0ghNXJSbTx6cVFkCno8b3F+TUIlY0l1aXZZXmhwYH1GSGlNaXNKSnV5NTZrSVE8aj9vMzYw
MU4pMyQpflpMSlUmMVEqbUcrbTtSU1RWWQp6SSNEfi13ejAqMSY2LX1lVCVBdlMpbX5gJEooTG97
KExZV2AyRXMldlBicyRASHU8LTdCTVhsI2hWd3ZpaCFRVDYKejZePmdOM0M0OT5XQ2BFSko8e0w2
NyFuKy17WCQ7O0NGUDFDY3Vgc3pFLUN3cTxRcXJEJVUtc1UjI2lkYiVzR3FqCnooZy0mKl8jUCN0
cmVhRG5XcGU1UU9mWl9URVRscj12U351Nm0mKHRAaXVPKjJ2JiQ/SjB2SC1yayo5UEptVTExKQp6
YXB0JjdrYShrXjZCMTdiZkdQdWY7bG9gPFk3VVolMHBOO0FnVl5DK19gaGU0TzQlX2BRQmUoVnI7
Kkd6Tn4lfiQKemdMRHU5Mm9UKS1gM1JtK0R1XkorQklVfmQkQGFLMWgxVU10SCVyZXU4ND4zcW5U
PkJXJiYkV2hBeHRIPHZOe3FuCnpIWT8tVkNlTDFNPjR6KylhUCEzTT9Dam0kVUhBWTxEZ0MyeGF4
Uj9eX3YkSnE7Yzhie3l7c31hUnJBUDhISkY8VAp6Qnx3XlVCVE0oO0JCai1MTUBxQHVmYDxSO0pr
d3EwXnJveD5geHE/e3RvJFp7IUFFTyRXYEFCQ2p0IWFvdkhqTmQKekp0cj5hJUwxOzBnZSRMVypR
MkFZS3ZlYSlrUlgyQ29NKiRWempQNzxDQStedGVlQismcS0jPnVfXyNOfHNEVEhPCnoqJTlLaUFT
NGp2O1FQa2MmUFYtMjU/RV5vU0VzI1ZZOEkzITk8N0s5M2tqKUx2eF9FV1JHMHUzWSVKWSh5N1Fj
YQp6WCFJS3IzR0l3aFBEQ0xHU1dsNkJgc24hak1Zb2JkeiVzbkExU3hKfUN8OW5WJmRBaCgoVzV1
dipaSU9Wb1N+aWMKemlHc24yYVR9Vz5GVkB9Yz4xPylEQFVja2okQ3lhaWRab0FwMFR9ZDg4S0p5
LSE9bFIxO3I+WUImd1E7ekE9fXVlCnpBJmc2Jld2PGhBKiZKb2EpLS1sNDdGamt6d1Q9YVJoUio/
YFNRaG12aEszdW52eHk3NEE1QFM4RjVKTzhpLUdBMwp6NWomMz8oQXlfIVBSfXtyTkBZZSZmMyMy
M0hSNDhwMEdtcCRFakkmdj1BbUlxWDxZZU9lam5oaFc2NjV2cl5JTjYKemNRe0B4Y3pKejYwITBu
KD1uYGtvdVFlX29mSktNOzZVd0VERTxYJXE5VihnczJ4O0xVY2kpUEw1V3BaTmY1eiQpCnp4Q1Iq
TDJEZjEwe198KVowMV95KjJgbnVQeUsyPk1nWDBZZUlUITNHMTZqZ2hFTHRAI1NiJmZoKHFBZzRA
OzRxRwp6Wmc9KFd4PWFXS3tHUXNpPG5BZG1yKFAjOEgzNXFxWk5qRT14cWkmSG12RyFwd1gjYWtk
V2ooYmY9bSt2RWQhIXsKelhAMSR0dnBpWGJEfHFrO2lrVmEyQksyQ1clKyVFOCVfOVpUT04tbDNJ
bEAtQ0heZzx9dTVfLXZsejdoUmJxZTEzCnp7ZXM1eUY9TmY7QyRjWmt0JChHZUVXTks8fDd6T1Za
IWBAT3AtKUohPTFXRyYzLU1ISHhPWURNKUV2VntZcEpjUgp6SnppOzJsOSZINTdiVUVTQncmRjJx
MDtwdiUwM3JFdXJJb1lMbEVlc25DZXB9M1l7JWdOQWVVZnhiRn1aT2l+fl4KejA1dTV0SUtQZmdA
PVctJSpBQylIVyRpT2AtT1UtOExXQDRHSXM7eXhPaXtDdzR6QVFGRzskRilZUyNaJGgpUzVTCnpt
MHlQQjJQJXNTem41VDU+QzFWXm4tRGd0OWc5dn5vYyElaE1OKl9KQW9JRV84bSUoKlBtOSskZUxD
NikydU5tQAp6ODYhaWRXeVQ2Nz94WFBkQiQ5SXFBQTRkLXcmO3JlK2RvLSpuSjZlZXU/X1BPZmVg
cChpR19mTWVuKD9oWk8yVnsKemdPMX5LWUA4K0soUVMwfkZ2ajJ3YF9Jay1Xcm5NcG58RS1XPnVC
Y1dia1EpUT09RSZ3Qmw8ZU9kfjQ5byZhO1lKCnptcT9PUEk4VmM+cGlmZFNxa2t8aFFFYDJOK1lM
MTZlMX12SyQ2YWdAQiE5JTlmWnhDMnsjKFNiOSZSNjVmamduTgp6c0ZySXtjfDUkJE5oRnhCdXhZ
Q09oPlBUenF4KTw1Q0g9QDs7LTd0JHt6NHZsJDFnUiMmbEF0VktkNHo3KVMyS0cKem5ecV83Sj8w
PkFmfmt8WjBlVWgqKFp9RypfVjNrIWsqJEEpRjRGQUR5Y0lkPDl8WXIxU0BhYiErK1NHMkImQmkh
CnpRa1hJTnN1bnN+dnlLWG9xYFBxKj0/QlhWcVMkXyRCQmp9eypWajFAM1F9NW5BMEFJaGhsRlJ6
ZUtOXlE2K21fagp6eygpPDVAR1ZVZkBtc29PRyZAR1lLMUhvREhtJF5mPUk0K3w4MGVxa0xZZjlS
X3lfMGYrezUmYHQ1cl9JISYtSkcKejRwfFhMcCNyPEQxNXpmR2xoZjk3OztNaWBZRHVMazVrNEdT
UCpBWWExUnQ7VGQ5LUZkeyZzczlQdk4peVJMLVhMCnohRl9iWiFNeXtfIV8ja3FTNXZtQS1sbD0w
MnskSGYzMys0QG5EV350JGlRcjZFaWRBMj52djdxO1pfbzFWUFNyTAp6XypBTiomVG5YVHUqIWtm
YkRUVX4hZWJoUklpfWVYaHFqNS1rKVlhQUYxWFJZTDwyQFM8bmBpeHt8OGtHR3RCZz8KemY2Q2dk
XnRFSzg/eE58bnRQdSNzQXcqR3UwMSVqVihQd0x6bCgwZDlpQ3ZFX3REMCRrJDM7UHQkZ0NibiY/
cVJwCnp2NEc/T2RKb0ZHTSowR3J4RUJxWGxLI0d+dXIoWHI7Vy0zP2ZeJENzdVNfWHExSE1aOVd+
bHZOTz1sU3ZON0hyZAp6ITZtcWJWOExDMnlBdUtnM2xKPWo7T18xJjB8YkoqeVN1eCl5U3A+RUx4
OFhJeXl3KSMtfDFfbnh+alZPK0gyal4KenpEe2heM0h8bFhxMilXT0U1NzYwZmQ4c2pZUCpWTSNh
aWJKZ3FyY1p3eDBuREJqQzFlKCgrMSVRS2tkaF5Kb15ZCno9WXF+fSlOSXg4ZDd0MDtmeUAqVXZx
aS1+RHlod3o/UWNzWWUrUWM+TX5zREZ4PUFEU3E+QkB8ZGl5KStLJU0lPQp6RlFifVk5O1lAJEJ6
fFdYUiNhNHxHWG14aTdHYEVONmg/KGApZm1kRWRiM2s4ZXlGZEFxPyohUHhsMENyJi1UaS0KekBM
KjZHSCZZWDFWPFpONz5meihvZ3FBT29XJnpoampDOFUrdFk0ezIybmhqKlhWe3EmdkFJNjJ7QCMl
I3F9X3ZJCno3bC1fbDZlKHE0RWlgTiVBNE1gUG5GeDhBXk5ZK0tWRm57QVlRPXFHaXJjbjc5YlE7
UHlVVzhpeU03RTdKSlBlSAp6ez1qJU9nfVNtQiZXIzJfVWZsRlUkN3w3TFN4YkM2MS0peH1YP3g2
WEVtVD48SUtTPH4zQHolSXFuNXZNTHdnMHYKekRRVDVkVClqYm91b3wkVTk2Q09RWjF+I3Q9aTV4
Jjg4X0AmKDtWJkZkfUpkPG1oOVl0biV6Wn1SS0o7MWhnMDMxCnowRiZHbGhue2lHUWc/ZzxjZ3do
SzJvKGkwWmJHR1N5ZUQ/YmQ/dzZQKV5UITZ3ZTk5eiU9enlgKlZHb2dmS0o4TAp6JlBIWmEhY0Az
Vy1LfHdfVGllbyhqKmcwb2JEcXdUN0ReWnhuMzxVdzw1YilKQ0YyYXdyPXRTdnJEe1ZuR3FhSksK
eiFUNiRmeGdBMDVvSG9HcV5AcXtnUVN+Pmp7dF8+MTVEPmU8M1djJEs5Q1M+YDBSbTxfRXgheEEw
djtNUSVMUGI7CnpCQm5rSjliNy0memw2VClCQi1LX0A1OHt5YF9ldHlaZDM3TXBAdWk3ck43NHtP
dzdXWks1YikhZGcxMm97JnZGTwp6ak5sJjV7K0VZe1koUFNZN2N6dEQpdjA5fmkwcE5LOV5jYDNV
PVE8VTdlbGVJQyVVKiY9RSZicFdqKiZpZGkxVCEKeng9QytTc2dnOUYzWWZpIUI+d0Y5Pnt3ZFJe
JCtpTDZBdDthRUF4eThqdFRDKiNhPihTIVhhaW5jX2h9NDJIc0M7Cnpkdj5sYUUpT1FpOyRDRTlf
T0dGRWJrdUFYJUp1RUxhPlB+PUR3en4yelBvM3ljYCtIPU9QM3dLYFpue214IShoOAp6cH0zJEhw
eEZpWiplfms9Qk5MRTAjV3dBfFB6M3pHezZIdVpoLXVFcV5QZlUkQ1dQKSs/SShXSk1IU2hqR1hg
P3kKemFjcHRLYVR2eF8qUTY3VmhKWm0mM09xfTVaVVJfclhvazMjayhGYXA4dSZxTipmRXpDP0o+
JHVqNnVCXjFyZl43CnpCTztKJXRyRUl1bCleUnB1aHZnaGNsc156b1p0dDRiS3BDLW96SUpROGZZ
eENWI2k8YEZNaEJeWXdZMDtfZGBVNgp6amd1Nik2QEs7RjhANlQ8WHlLYHJCd1pkI2NYYlUhZ0Eq
VE07ZUEzIzcmM3NURFZQPzFHQ2IoanNEaDVDR0d0fHAKejRAcn4mIUY+PHRUMGoyI3tJKk19JUg2
bkR7TDxHRURsTWwrKm9+U01aITs8ZGRjMSR0RGMyJGE2NFYzKWU4YUFsCnpLdVNRXlo1ZVhwRWZx
bkIlZUpYa1dvY2B2OHklc1QwKiZJM1VwMkcoOyFhWnw4dl9afXtzPlBVKG9gMjl7ZTJwKgp6a3k8
Ml5yMEhUSXRaeTMjSz82Uj9rYz5BbGV2cXpFIz1VRUhTNjNHPm5aTkBTNzwqMWpBSmA8UDZKcnZt
N2U3IXkKeiUtX2dDaX1MSnIjKTV7SSh2RzIrUGAtMEpjU0tLREJ0Rm9IN2x9ZTt6QH5wJntMXj0h
KDVUSmApfEYwRCZXO183CnojOzhIZTBUO2sxWHtmbUd0TnkmdHhqaVpXKFNjUiRNejYoXkZrKTx4
QHtyZTFLc3ApXkIrSVgxVnN7eiZTOUQ0Rwp6PTlYTH1hN2pzRG0lZzA1KzRWdGMhWUIkY2FaTVp4
e1pAezZaZldmcTd4dTBENCRYZnB5Z3FVKExDNSFnRChGUUQKekEqKTFUOTJEd3toUHNfSC14czxx
aWl5KXRlO2QwVzVnVy1mamNIPEBIODVreDU5KiQxNjxWJiY+KigrWFVmcXNyCnokUF5xVFdlVkVO
WlUxVj1WJnJXcnVfNygxVFFDe35oSlRkQUx+Km9UMi1hKjdhLVdYZ2I4YVFIQVhHQkBVWm92Vgp6
aTxGTjkqXzt+alJeRUZDVVpwKSpgclFKfiU7cSMlcTFaSz87d157Z3A8Qj40O0lmcjghdyMqNTZA
Nm1ISHZlUXwKekBSZGJATzdgJT5GLVJwNEY/bD5LZ3FjeCNmSmhgemhENDBlZylXOFNgdnApc3JE
N0NOZE1TXzsheTRrJiVJKllqCnpHKDI+P0JfSEt9N2dse2VSWCluJFBlK3JPX2UmbU9QSk5pLXUx
fT9eP31aSFZ6N1ktUEAxcFBgbG5gfmFYS15BYgp6bm0tO1VCenNAe2Q1KnFXRHEwfSpuSnlIUiF9
SjR4XjNDd1h3SWU1bmlwb2pRSzxsWGxlKmNCQmNreWp+TFpidjkKelBqQFBZWWVHT1QhO34rcSZp
ZUpqeU0+P2IreFZJPGkheypfWWZAYU15djBiSWdQYTt6e2VOM24me142Vjh5Y0t9Cnpta3NGeHVr
P04oX0pFSkNjPF4+TUpYeFlHODtoKkw4akBKUVNse1NTTX0+JGZ2ZSQ4flRuNGtqaFpOa14oKmc2
WQp6MGM1S2JIKHlRM0RPS0RfQypidFIoemlEUTxSeVNpR2F4OTteSFhJXkskYHtydntjWis2JXMp
QSU9OUIyZ2whUGsKemRZYWUxalkmYkQ9OT9BR2JsZkRxaSRLUkJHcitWJXR9WWZHKUJwS1pOVndV
dTx0Nk53R3M/VVZXKFElTyskeXleCnpjK0JqPkgrJnpFNyo2MDMhbUl3QjxHR29+T0VMQ1ooJVdr
aXYyaDFvVDF3b2prYS0jU0BWP3tpTVdNfHJaT3JKbwp6ZyVsYUAlJCk7LUN4Tit6cmNmfFFGRT9M
fGkwREFnN1RkcHVhRm8xcUpkPzkhXkpeYytVeTh3MiZCSHdLMUhOeGEKejhrOU0+NmY+b2c5YTBM
MCombUI+U154MFQqNEZsQT1kKmNQNHl9eUJoTnx7cjcmQGBlb2JKUVgxJFZ7WEkmUC1WCnpHbGN0
TFJqejRsWDI3I3tVaWM7TyohbVQ8Jm87JjZiN096fkBVK3FCLSR7bi0xdVh5QF5VdCs/ZDNteyRo
O1okWQp6NjR2eD8/MX5+T1ptb01VT1hHZ0YxTng5dDg7NHglVlIxbjJaS1Y0dWY5RD80PjZLVURW
UEpEYEtEUD1+V0B5NlYKekU0TmlPOyNJWTd7fChzUmAocjZ6R0JUWVRndWFCZVQ9NXF2YDU/YzEq
eEBjS088JEN1NVZJTTEoVn1hYTtaRWFkCnpJR2t2SXpETVErVmV1YSprKURCX0QmTHk0MkchY0Z1
ZyF0amBKWXotTVZVYXxMTzFzVng3eX57YlRvfHlucWRQbgp6RDctQ3MrSyVIXytETVJZUj1VP3de
WlhkTUp7QDYxXzt5dlFofGBBYj40dmM5Q1hKVyM8Mz41LSVpU00xO2l2SU0Kek8+WmclMWFkRGVz
KzYlaVhLNWo9TSg7MCF5PGw/bFcoYVpJanl6JUVMezBIYDxUS1RHP1hQSkA3NyZlQHJCOHxsCnpT
UTcwbjsmSk1PUUYyfG16NE1oSkwkeDhsRCt9SFojJHR7U01TQnJlbDRQamBKPFUwUGBubGg7Zmha
ekxLVn1DLQp6cUQ2ZDRvY0psO21ofGBXZk1ucE8pPz4kO2BwY1Y7UkdISWdgTExGdThrTVE5Z3ok
NnpBI1E+eWVIXzNua2R1YHEKekArN19QNFYzcyt0SnFrJW1PUkVKdXN6X21SRHl2NCZReCU0RSFK
JGkkRkJkQi19MStwPnwqbklHZk5uMSRBYjdjCnpZKk4kalBKbEFme1UtWEpxaDtkYzxZY0FRXzQt
bkQlVH1FXnkyUlNMa0lycXJfUFpWJk5KTGl3dyloKHZzbUZvUAp6M1YwQExMViVhJnMpT1ZLI0gj
VlcjcHk+Zi1aRHkrMilUfWNJbzBeb0hYLSMtP2tRbT5Tdm9UQjs7ejk5Rn1UYTEKelhDeG4rQExa
V2ZhWWFOZ2wzeDskYTQkU1coQzBzN0pNMjduKm5kXm1BYXYkcG19bm9sTz1wT0c5VF5oNXVXej4t
CnpvQnNJTEB3bzk2d3liN2wmY1pkRUBpJHtFWUAkTjdxPCEhRmdOVDlVMWMyVVhONHwtfUpLSEVL
KTd9JWhodDRCQAp6ZmokR3pKRGFSYkhtRmNeIT9jWG5JZGpPa0UoKmwrODxKaTxvJmFZWUFZSExG
I20qJGtyZkFhfTFmK0g+bW5sQzEKel9uXmxjPVd+KjV6aHpvXkppZTdAQjJncSgjbWJ+fm1gbEcw
OUh+eDRHdD5IfDskNjFBVXloTnNHPk1ETioxfXVtCnpPVHtsSStmfTF0V1ZOTzVYfSNpbW59WC1h
NjlRdztxPTJ1VWhPSWEhN0h9OVAkckAzNC0mT2w+dVdJWGtDVVZteAp6Nj9VIzIjdGl+djVrMFVx
SUIkMHtlQndFLT9pLWV+ODk/dHpwQWVEQmhZRmBNVkc/bk5EJjhBSSZ2K3YmSCpjPH0KenVtO0U/
ZFYxVDVNZXF1cCRLZysmZjlORGdePmomKHIzZ1kxIUc3UCpte2c5dCgkNE0+UDc+MTdDWDV3bWhu
fWhpCnpneDszY0dWRChTKWJ0Vj9EbiU7QTZlJnpUXmBjME07UHwlYlVEQ2hUPDRSJEhaUEpQcWJS
IXh2VkVlPlomNzsoNwp6ejBzcUo3fSFfaWhVX1RTJTNvRHFJKmdPYGhYJDAzKn1faX1RUEpBfGMl
RVVjZU9kUHFea1h+NEk7XjZGPmIxWE4Keld1dmtER0RCX2xeXlN0IT9abSYlYCRjY1pvVig1bUBg
dCMjQ1JeeEFjO0MlXm59PDEwPUg9eEROYkYyPjItdXRYCnpCb1QpOTE2OWpleVoxZCFkcFlfemcz
TDErYkQmSSk1PGFYPGFBRG12KnxDVWdHYVZlKkZNU04qcVY7ciZ6b1h6Rgp6bnRlZ0wjd2dGcT4j
IyQzK009P0NheSR+KUxgJjRXU1FSQVgtQ2BJMFlRfHBNWH50Ry0mOXtqTDRnajNVJXlBLUoKeig3
blNtPWtIRnotMXVqZT82YD9vVTBEM0FQPVApZW9rSXUzMiR7RUFaRWZMOHxFPE52blhVbShiUG5P
JHo0PFRZCnpvMDU3JV5ALS0panN1KndMa3RzcyZhR3NfZG1iYlA5diopczNWMm9EU0dUc2R5NUZE
MGVKTG1RSXl8cWdgIUppeQp6VlRRXkZCWn1xK19+MjAzR1F8O041MHlUVHlabCtkdjUpLVZ3JXA9
UDBlUWcoe3VXaVJxPm1UMTtfc2spSVR5SnYKenA5SjtLMk15U09pQlZRbzI1PU13U2ZVY1VvbjF9
ODkhX2ZLQE5SSXI/RndDLTdZKT5uSjN8cWh6ZHBTRkkmOWdqCnotNyMyeWcwej5jK24lOyQ0SmpJ
YDh4PjtiTGNeTThvQWBqcCNOQEAxdmEmT1lAVUhUKngtVSRlRHA/TmNxe15vWAp6d1JzJVlwUDhU
Y0VGeFcjLWBrKEJ4M3lSfENrYjchdUdZYjdWdGpfODQqLTE8TEJTTzdSMjIyV2hsVTVndTQoSEYK
em9nI3VBdlBtJUVTIUhEPHdrMSVpYWl4JjdnKUg4dENpLUFyQHt+K0hKVWsyeDNAa3J4Zjd7UGFZ
TUxffTh5JHRMCnp3PmA2T2ZVVWkwZ01IRkloJDtHTG51aFohaVh6ZjBAK3MwUWBZSThgO2NlS1J3
UDtOd04zNlRLP2ltYHRYV3chPQp6T192O0x6aW1Uck5KYmxea1EheUMxfFNpWWN1ZHU7bSoxQ21L
JHQqJlNoSzkmYHxZKk97aG13c24jIXs7ZTZiJCsKenZwRVZCMSFQa1NqR3I5fUQ9dFk0XngpbmJ7
JkpQeHxJNjw5T1cyNT13QSZWUDJUP2UwV3FCREZKUjt0Umk/PW52CnomV3spQXZHdiFzS2hiJWJT
S0V2fjB4KCY/MFE3aGM0aE82UC1jPFdLUDBOMyFeeFl8ZyZ7YjV7SylZWG1BPDhrTAp6Z0FYNSFG
MSNQM2dhJT9ZZWdHRHstJT1fezgqPFJrRnpvfHpCYWpON1Bad3VhOCtOPzRaeTtmJjgjKWg2eWR+
aV8KekwyVyF+UTRiS2ApdXdwTShAdGNAM2orJEJvdCsoXkJxflV9aDZWd349IUVpPm13UG9GI1h7
YDM9Y1ZCQlR4I2VDCnpoVH5UM1RAZVlkVFcjUWxFJnA3ZCNabHA4YkN6YkB1aGBjeDBOMFAmZXtW
b3h4TzVtfjdRaVNiRG8jUU00VDNfTAp6Rz9IP3VefWgwTS1ARClOK0UwMWNeajhALUoqakVROyV1
WUNgfkdaZyU9PE48e2ZZfHt2fVM2MUpyKVYyMmZgcVMKejR9UGdRa0dofTlIUXg/Pnl8ck9QPi01
OGlgbD1IKzZWfH03ZXlNcU9jRV9CMVY2NTNmPDhsTVhXRiNNTFV9YT9tCno/NCpYKG53IzRjd2hf
KWUyTzM8ekxqSlpBSns0V0NPYiF+fiZrKFdHeSFSQD5ffCpraXReMypDZEIqWU0kd0VvMgp6PDlj
SzNQYS0/LTdNUnpyNn5wQXt4dCNMbG4wMncpSEtOMzg8SGZGJDZPNnNpZit6VVVGZmBvbD9DdEhA
KzFhb0UKem9PMW5ZKjdRRjRgQ1dsaUZPeU9jLSMyczsxfn58dnI4QWZyKkRhREljXzktaWwobX5r
JSZYZiZec1pLRmN7OTEtCnpQeUhgajxfdmN1b1g8Y1YxfXNWa2hndE4mKVlUZyglKlF+O01ue0wr
TU8xcCp1ZnI4KnxMVHpXJXI/U2stJXRMIQp6XlplOHA1P0JHKiY7Y1MpXnBocDBPMSsoRVFqMzBI
JHQqPiowJjd3Mm0pUCViVDg7OHRvTnp3SiRydTd4MXlYPG8KejE7I0d7dkZUbl9IOG5NRmNYM0ch
OW07bi1VP0p7cEl7V1lWNClDKlRUVmhoRipxQU9TZHIyRClRQmdWZnVYbEF1CnoxO1RkYURIVDF7
TENPOVNLNHtMYTdtPz5NQzd5RTRJcGk9UDV3Pn4zJWo8LTxRUypHM2QoUmhPY19fPzQ0fig4Vgp6
eGpRKkkwYy1Ka3FiWGQtOWUxXjV6fjBxdTg1I0JoTz1ffFdiRnp9cFdUI0c3SDRnVmZGQUBlPXpZ
MGFaKk1oe1AKejwwJFghIyZYSFJOa155Q29gTlc8emd4ZEpHemBwWTxtJjRCLUAyYUFkTGgwfmQl
byV9WF91dEFDI0Q0aUl1IzZCCno7IUwweTNhQVJ7JGs/JUc0aUhsfloxRkFFbGBDVmI7V1hCYCgr
Wi00K1YwaXJIc2RjUjw2a3M0bnNaYnU/M2JPawp6dkE4VSZFc2Uya2t6ITdBZWNLWTVwfiplb1BP
NjEoVVdgZFRmKipjRjwodC1OcmxxOWB4P0pjdVQ4KiF9NVV4TUAKemNvfXIpcChxOS1XXzM/fjty
MWNSaERZUlVEd0Y+el5lITVWJWg4UF9HbzVEc3Z5d3s0bXszN01AfHl9SHAxWnF5CnphOE1BP1Qy
MnIzSj8jeG8zVElfdFVfZH04TmxpPCRXSUFJU19iaFFmPExfSCRoUllOfkIlajJEPVMzdChXVyRn
RQp6UEc0dmlaPnF6QjdVRD00SFhaIz5iWC07RUI0XiRIa0pwNHROM0B9VU8kTn1aQ25wc0ZmTUF1
bks7SlNnYFEtMVcKejw9aTs8Rl95YWZpQlpwK2sjVCZAa3dZbFp1P1BaR0YrZldaUzBNPDVsVHJf
bThYV3BNZiVGRFo4fkFmST5eeWdgCnplWXZVVHBpUjhtKG93SkZaWnxGTVRWU1MhcyR3JkI7a3FQ
UzU3ZCUzSEBfbnkoOXFDP0pmWH1fYCZLKT0tQDV6fQp6JSgqeEU3ZEdnZjE/WjxRb2lUY1FhXzs7
RDV1NSE8T0UmaT4pUz5oTVB+a1FeSERxTW1AeFdRVzhxa3Vhcm9OcXYKems9VE1aWkVOUnc0dnVm
MUFQfFR6NDF5RW49aE9VfSVVaDB5dF9XJSYtd3NEMU09X31HamV3VGUyTn1sPEMwMSt9CnppdVV2
IUA2UlhMST1gd2U4eFBXQ3FFTn1fb1VIWkFOYVpHfUsmVCttZmh7e3FpRC1OKW5wVWxYSHY2T1dD
NUgpJQp6PTRUeE9uciRvQFlgZ3dZeHk1Pklubj4xZVNXK0xRUUJqNEBrX2ZzNkI1b3NXWSUxJShB
IStNQnhWJHhRKXU1KVQKenhfQHgre3s4IXRUZW9XS0FkPERia0U/bGlFWFEkQGsmN1N8UWhaVn5E
an5UNUtPeXVIV0RBOFFHJCpQYmt9RVUlCnpQSUBaQXgmWGxlMk59VDNkOFBLVWR6TGpFQ2BncDRu
IUNDI3ZFKXZmaCZVUSYtUHgkIWNJbWxPQUg7TDs8JXRBbQp6UVlleitYR2FMK3NNRWt+JXpIOGtI
WVRwTVZefGJQcnFyVFVGT35pcD9Da1ZPJG9sbU1zKmwyK08tezNYWDVGPkgKenhvZURaSVMjJkoq
Mz5wQm5hUGVXaXElM25hdlVeWmNBbFVseHx3RHxFU2MkdVE3OWtwNjleWFYmOWkkbHk3az5pCnpY
NTd1cj5EbUpaRn44STNfJkNZMDEhKVhlcGFUaSlQQT9iJXkzNChvX1FXd0dkb00zOVYzVjRmN0ZD
JXl2Pmt7eAp6QTdKdVVCSHE/cDMte0N3Qk9vSmdaPmF9Q0AxXzJ9PkhkKGlIX0clJDBSTUI7Zmli
e3tmfUVjTiFoeW9FKiFKYl4KeiFRKjdVVypHXk9qU2dfQmg0IWFZXnJCIVZOej40RGk8fTxvJS1V
JXZvbE1tISp0JERrXmxZKVcmK2JUdS0rclJQCnpiKTUqOT4/dSM7IXltSDU7eG1TdlRWZDt3UXlM
djRyYlV0Jm1wS0BUPjlIWHgoXzZTUnV1VHJVdGcmJkNkZzRaTwp6Y1hHPX1lNEN3e2BgMntfYlA7
VDhDN2JjT2x+Y0YyY0htdjZ3TjxOUEElPkUqZjYrflJ8R2pOZGFrQVc7Pj85KHoKejRzaGRiJFEw
dChaWEltWm1mbyo7OytGbkQjKztQYGF1ZG5iaD1QNmNXOGtiPVUwaHJvRmtPOzRtOytVO0BYPnA7
CnpObl49KmdMQzJ3dnJ0KmtQUm9ZS2tfbExBR2lYbXJZbn41Y3A/JXcxPz07a2lOKmYtZEtEMW8+
dl5sRj9FczdASwp6bGhLU0xWZTw0cTF+djIhZTEyUXc9LUc5U058Yn55ZE5CbT97ci1kKWhaY3Vj
aSFQQTIpOHwpTiRId1hSXzhePWUKejhWRiU7QyUkI193NiRmR283c1VHYC1KaX1aK2ZhezBNcEFi
WEcmZERRJlVTej5wIWsyYjtSbFYza04mUCpPNikyCnpQVyh6ciUxalVpPmJIUENmamozTzlidUgp
Nkl2aSRBMllPantWMDwrejNefFMoWns3NUY+SHIkSm58aUFtZCNJMwp6UHBfYDdjNldFTGl0VzU9
VXJtPFZJREtQeE9oK0BAcWY1WW1uVDBBdzEzIzIyUnFUVUgjMWhrQkE7cmwxeD97KVAKekN9M2k4
SChnOSFZUGBFJlglMWo9QzdxUnh3QkkqKnAxMV51QCQxWiFuJEt4ekxrMilfa1U0PD8yZjB0TE84
cC0lCnpCZHUzfTNOIUI/JFJjSVRDfSt4cWdXJU1PVXJ0I2MxPUJVXlNsKmM+YEBISz9aKUN9MHpR
Wnczc1lzbT40PExiYwp6KkBqKzYxUGlObkxgdnB0RSFnI25AZmw5ZDBvYktoS0xAVXErbEJAJFcq
ezhxQShTeUB3N35LYnJQPWZ7YnUqckoKenF8SENBbmkzT0dtVF9XNyU8Tks0REZHbkAkSH1qVUN+
QVFNNGtaSGMlYWxvRjB5VD47ezF4R1JyP1pnQmFiWE1OCnpsdDN1RUErUEdDVFY+Yn02WHpST0g8
blEzVmlHe1djXj5QcztpaSQ+Q3BjUVE8YUA8fWQ3V240UHdSJTJTRGhhIwp6IU5Gb3BKdFd6fUFi
e151cXlpLUg9bzNaKSNrTXt1dW5CWllMdHozOzVDcz1vVFUlZitPX0BNNHpKNlNTYDlxQWoKenBU
TWFSRUJgSzg2VilFJG8zakFNV0cwVEA3WHQrWSVWazUkUFRNLXtLSU1SemlQeT9jdUI8I3xUQ0Ih
MHl6SHdmCnpYdCY4eyokaktPYWAwO35XYEcqbHh3Vkl3Tz8mMTJiVGV1KzszKkNzQnItQmgmTm4/
eXdJNj9FelR6eCUrSGs9bAp6SGt1JUo1LThId0UwZGQ8Xn1hUEslTnc4NkVGaVdXZCooNUdyJV5n
cGNpK3p+b1hSeztFOFV3UFRmZGFNJU5YU2QKelZYUEYtKVo9MEBqRkJOYjg+Wj0jalloSi1RTikr
WlRvaVcydDVaaVc/PGxGKG5tODg4blVAS3E0fisjTHZ3OWZoCnpXKHJ7Z3FoZ0daUk5vUDEjTWhl
enRfbFg+TWA7Zn5GOWQzN3Rid1h+aEJTTH5ueXpLbntXZiVPbCFxQHpoUUF+Qgp6O2tzaGp0YWhf
e1RXOzJ8Pz1+Qmh6VFNeKmBNUFFxN3hmaWVeJkBXUVJINWFBM2d5RjIlO0xYKjYhYCtwSE9oOUsK
emNMe0tDPzgtfF8hZyVRbzhudFEjS21RblNAeGM0NXQtZG4kPSY+I3kpV0VzUGI2WXtuVWVRRGJG
aHxYby09RnZ6CnpvPlhDVUpWdk80S1UodH16QkJGcmQmfEZ+d3VWYjFTc0srU1hCI0ZiIyNMdjVs
RWleQkQmZyV8UztESmpzKX1yYwp6VEczV0NrYUdXVmh3fHwlZTlROT5VYVMmNTstP0V2VXF1QVdX
MDByVFNob2F1Wn0wZHAlZDVgVHooKF90Izx2TmYKekN7TEZNPzM7PSpAMU4lQVEoOzNTQztXYWkm
UEclMi1EUnBKUXprQ0wjWSt9JCFvJkQybUU4PUVyWmtLNFJrJFRpCnp6bCVQOTluS0JyYHteZ3Jq
Z2NjI3tiOShNRGpgYT93K1pFZFUyRjZrRF4yanBfKFImKEFFNjlJU3smcEA1MjF0Kwp6TCQoaXA9
b0QwZipERFctKjhiWERDOFo/Szx3d1RrJTdzKFlGdEpyLVFSPTJSPj03RXZHUm1YUXpXWj5BUCRh
Q20KekZscnJBSEA0IyhYa1J7TTAtWEJtSGVYJndIdDY0Rk1zTzYxei03JXQ5Znx+Rlc8elZoVjNM
MFlVMG4pKU5KfVNqCnpWT0QkO0pQQTdLViV2UDdKKHFZUzUtcGojVDMzbXRvWSh2bF9GNGlpT3x1
OV9GZn1oJkM2SWxwOUo1QTRDbypwXwp6VT1xYD8mKms+bjJ7ZWU8JX57fkVUR0xKSmAoUmJxXyVw
OUBrMC09KDc0N0BVXmJERjZWTnUxTmdRb3p7OHZ9QF4KejgoNlF1d1BUcENSeEZyMkgoVCh8SlAk
VnUlRXdzTGEhNitqSWkwUjMkY2kmLSRec1g4YiptK3JkRFVKYVozUHdCCnp7JDFCMl5MLXokdkFL
MmVAeG5mblNJPDk1anJOMnBPZyp9K0FTe3c3cVBeWDU0KVV5ZU1EKjxSVlJ+PXpNdEBuWAp6eXNn
dj5kd3UkUD5wdWNwZj4+UUdYNDwyO1RuIX03eVpUMXRHbm4/alMxcnh+OVViNnd7QVchOTMzPj47
ZF80O2MKel9uP3B6JUpfSl5fTUVYe2dNUTlUMyhDV1JmeXpWJURaMDxLJi1LITVJSDN6WkV2ey01
N15YaURNSUJJcWk3cTRtCnoocTMkN24xNzVUQ2VmK0xRJl8wZ25UPVZ4cnQrYFVyNVFQOWRmSEo/
RTN5MVdLNXRodEhpcylpU1FLYFdLaTh9Pwp6dmY4KHpSPXMyYUdecXYkIVJOeXhNbH1OakojSzA5
dzRuZU9hMDJKdl5ZVz5gO2hZKCE1PXxOLTVhVHdCT1MkNnIKemV5TnUyREoxYEwtOGs/MHRgQ208
aXdvXyM/Vjx9ZTdzTzxnP3tQPEFBKWIoaykmXn1rZ3VeVkExRXNJN2NCKWxwCno8dTZzaW9KP056
ZEh5KyY2IXlzNlE2RUZFY1FeQk1Ib1NNaFAzWDhmTVckQmApaiZqd3YhPU5KTFZeVFp5Ukl4IQp6
RW0yQHVZSmVnS05haHB5RkU0U29PJDNIOHEoUVRhSWlqe2JqayFAPW4pKXd1VWxtRks3ODBQKjBr
e085UTM7VTUKejBNSVg+ITI9ITteSUM0fkcwKWNeNSg1I08kP1lLKSllbWxQUVRIVWhaUn1xTWhG
U2kxO2V0VWNrNCg9MmN8eTJOCnpzblZeK0Y9PkNUPSpDN1dYMEtEWXUlRUtfWmYtIVpLMl9wPTlA
YCZZXnVraiN2aGxIRVo4bmRpSDJTJWVFK1khVwp6ZShDSnxlUFdSJFZ7b19rVF9ATDc2eWNvfiRJ
a0FyYXd+Yz05b3pXdUM/byV3I1kpb180cWl7P0c5fjJUOzl3ZVIKellJJFpxbWw7aUc7OUpZZHdl
OGdUOChZY143TDUtWTNeY00yKE9LRUAwd0ppT0ZBeSNmZ0J+dTNNczB9fEFRayVpCnpJNntiZVN5
TDg2PGM2cmw/bjtsRzBIKnJrcF4xWFIxWWgxXz9MMUpVMFpQe1U0Yns+OGZUYW9qKCR9aGpUbTRZ
JQp6NnZgb1p1Kkc3Sy1+cHRocTBUMno5bykrJmpxVEtybG4ycW14cz1Le0oyfDstcjk2NENxVyNY
Q1B7MXdNYGF9LVIKelRlYFhmTHJBVHdZcVhKSGBNPTMwYjJxVyhZWS0jZENMJn4qa0t8PEJPO25k
flcyamRqYlMtTVdFaVdAR1Z+ODZACnpaIUghXjZsNHUleGYhTk16Jjk3RHslIXsmMGJuJUtKPjZ9
OXhLQE5PO0A8IStlKXprWjFqU0tYPF4rRGp6YDBLLQp6K3pOTWhqeXVKQSMxMnhrTmxDTmBkKktI
RmU0Zyt3d1Q3NlRQSl9BITV8RkIxa0B6bHZ2fmFRfUgzSz8zcEErQ3UKel9yUT8oOUxva2VWVWVT
QndyTisrbFJSZUVnPTN1cUtob2t7XmxPQUQyQ2Y0fjFSc0dadlo0bV4tX0BRWGNXSi1PCnoxfXE9
OGNDbmVNMkFibXxKSGZzMXFBKm05ck9KYyF4cy1CPnFmRERSVWgoPEgpT2RtPFdzZlc4ZHtORzc/
TEFsPgp6dG5FdU8hcTJXN2g4X1EjZyo8JTFEVUVOI0hCLT1iRys3fnFwSnB2JWVpV3hEbSpRe3k9
QzlFbk1lOVlYMWd7QjYKenIjbytkTWs2UVdqWTQlRipIQWwpdzVxTlg2SDEqVGhASSFkUDs/Z1RQ
V1FObyl0PkckIzUodXE4R3RNPHJYd3ItCnoyfS14entHNSl4MXA0PShyM1ZtSlJnREVJfEc9KjUo
UHBmMSo5PjQ0MXxJdDNQMElGeT9nIUkteE9scHtCTmx4Ywp6KXF3UjxqeVZCOUhqRXB2djBWTkNz
Vm0jQHtieFI9a3I7KkRaWmhSOEJuM088O0NqQTNuTUczOz83T3dRKj5sUFQKejU+PkhwRDtabi1z
XkdXODBzIzVJVmhaemt2STFAeHF7JD45SDNffVdATUtaYlItVlhsKE1PVDRPdkR0b2N0USk/Cnoh
fSklZyZJQzdIYEV8UENXTEk1bDgmaEppP2VRdkNvemQrbjhkYT9IemJRQHFFfFpqeSN4ITFJIVot
NXp7KmUtXwp6QnkmUDRxU0E0SEFNWER5e0M1MkotI3JAUjV7QSkjVnR1WmA9dzFTKXpvNCZMZ01q
VCtfUEBgZ0A7fkJ6b0ApOF4Kek9WWXVodGEyeWZGIW93QlQjWFcwWXxmPFUqVVItMSV5cnBxT0Vr
LXhPNTEpc3tEJT4wQlYqWlVzfXk7YjwrSjlOCno3SiV+dDd9fG1ldE4qUGJFc25DPTJiO1pUbVdL
SUgqc1BjXyp3cWt9bkNzO1A9dDhtN2l0VU5OUShjNS1Te21yeQp6eUNkQSstO1FeI087QFQrVzI3
eXh7LTlCQisqZGJoRzUtazxNQDIhZyRXPnxFM2lFST49fUF2OURvYWFCZE9VeCMKei1mKHQ0QkUx
T2gwQmgzV2BiXjgxaTxISFI8KkFGOWQrZHh7Mnx2Y2FjQlJNa0ImRnY1b2xzLTtJIWlYd1lHNGxN
Cnp3TT1nMFUwISUjc2ohSGI9PnZlbjBHJHtwVy1TZ3NUbGZIc1UxdkU3ZzdFJGJWKlpWe3RtOVY9
O3M8RShgKXspVgp6VXgtZ3AjJER2eyQje3ZWXilqIW9wKmBFKD9CUmhwVkRfcmNuZF4xdUlJaXRe
eTRHXjNtKVVadShRIVdoPXt8Sj4KenUmQEJDKnBHVVBxeDE4UE95dT17aT5qT3VsWmxCKkBhQlRU
YCNSK0E/OFNIZkBDN3B1PU5STktWcD8lVmxzVjAoCnpTU1Z0U0NAJGNzeW5sNXFRPW5qMjVSQGI5
cTV8YX1lS3FiNmg8JXBZX0NNXzNOflFKZkxKU0Y4b1doRDtoT2dEZQp6KTgmQ35GPD1oQFhkM1dF
JE4hRitZcjRYdTQxaD9kS2hXWFg8YUhwZjBUTn41JipMeClyJmtkenRkKyNnTXBudEoKelJpeV82
MDFrTTltSnpwUzJfcHk2VzRhPGNHVE9jR1QtX29KTXBjeUlpM0NoUE9QaThodVJIYUo/ODBTLXNt
WTlxCnpeWFQkZVM2c3tyRlE7cFlKKzstRDY5eHRieyZmbDYtMnc5UHpsSGx+KDRRQz43XnZPaTxh
dSV6U1lqUW5ZRE5IeAp6NiUpeWVtQmheaTNZfH1yZylxSUtJeUc3YFZwNGlncHAzN1dOTUwpVUEx
eDNGXlpHM2hOS0FITzVyZGorS3FySXcKenc0fDFLUmR0T2A1OWwpaDAwLWEpMD5rYTFzVTJqbzZK
ZkR2engtY3xeTVopSEt5RjtpYF4oQU1tK0hBQFhlY0JjCnpgYXFuQFglbyZ1NWpaSU5hS0woPHNw
ej04SjlWOENpZFpiNHElSS1RTUNPaHhTIzZOVUwkVGVEQFN7THN3JjZEPQp6a1JCZnExa2BGa3N7
VCpSKlFKUFEtVTxPYDY4S2pES3BFIWJiaHB7JXwxUnZTdiFMdzhUOHtJQyMzK2IoJHwjJnEKekJv
QztPNURWamBlRiFpLWV9JWplOVlJeytHNEU4VWJfMCtDbnA+dWl3JnJKYiskJlNNS0xQMSt6PkRQ
WD8rK0IpCnpkdj81YCp7RXYoWnglVEk4ZCZZNERGSDx2c0plQV52czZvbil1cng7VzdpT0ZTQyFQ
UT43bjMhcGsrKTAzdHhJawp6JGNPMiM2VCF+bnVzJT17ekJxUkU5ZVI/X0doSnM2bmNKO2VLbWx8
UGNyQWViN1Z0MzFQOS1FWkJxWGlZV2coKS0Kej03fjdEZVkqTkw/ODtRYmM2ajd3OytsVUhaYGx6
T1RDUm8wUmhjbGNXJT5YZnFEO2tYakJKckI0ZChZbk47WXY9Cnp4WWF9XiNJVHxgcE1lYWVgbzlk
TnVxcj9pV2x0Sn5feFFJeytIfHJnPHp9MigpLTFSUCF6Rj1BdTE/ZEk9IWJjbAp6eUBaNUJ3T1Iw
O1RYMHJzNCQ0UFpRVCFsKXo/P0F3bHhUV1loZU0qKE9PUFBSYCtyTGB0WG09ZzNeNFotSXBrdSMK
enYtaTYmO2pgPi1JekpIam5Vd1c+eCsod2lBOGFFMWp1KWl8NnwocW1eTCZGclg2SFg+clJnM0dy
VGA7Z3MoPFkrCmpjT3leTmNaSzFScE0zUnBtX0R9PXdCdSQ2MFltejt5aE9RfWpeRjxROXAzTDMK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2h0bWw1X3N1Ym1pdF9idXR0
b25zLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jbGlja190ZXN0cy9odG1sNV9zdWJtaXRfYnV0dG9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hOGZjNmNhNTRiNwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L2h0bWw1X3N1Ym1pdF9idXR0b25zLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkhUTUw1IFN1Ym1pdCBCdXR0b25zPC90aXRsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGZvcm0gaWQ9ImZvcm0xIiBhY3Rpb249InN1Ym1pdHRlZF9wYWdl
Lmh0bWwiPgorPGxhYmVsIGZvcj0ibmFtZSI+RW50ZXIgeW91ciBuYW1lOiA8L2xhYmVsPjxpbnB1
dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIiBpZD0ibmFtZSIvPgorPGJ1dHRvbiBpZD0iaW50ZXJu
YWxfZXhwbGljaXRfc3VibWl0IiB0eXBlPSJzdWJtaXQiPkV4cGxpY2l0IFN1Ym1pdDwvYnV0dG9u
PgorPGJ1dHRvbiBpZD0iaW50ZXJuYWxfaW1wbGljaXRfc3VibWl0Ij5JbXBsaWNpdCBTdWJtaXQ8
L2J1dHRvbj4KKzxidXR0b24gdHlwZT0ic3VibWl0Ij48c3BhbiBpZD0iaW50ZXJuYWxfc3Bhbl9z
dWJtaXQiPlNwYW5uZWQgU3VibWl0PC9zcGFuPjwvYnV0dG9uPgorPC9mb3JtPgorPGJ1dHRvbiBp
ZD0iZXh0ZXJuYWxfZXhwbGljaXRfc3VibWl0IiB0eXBlPSJzdWJtaXQiIGZvcm09ImZvcm0xIj5F
eHBsaWNpdCBTdWJtaXQ8L2J1dHRvbj4KKzxidXR0b24gaWQ9ImV4dGVybmFsX2ltcGxpY2l0X3N1
Ym1pdCIgZm9ybT0iZm9ybTEiPkltcGxpY2l0IFN1Ym1pdDwvYnV0dG9uPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdGVzdHMvaXNzdWU1MjM3Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9pc3N1ZTUyMzcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDY0ZmExMTM4NzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jbGlja190ZXN0cy9pc3N1ZTUyMzcuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlNhbXBsZSBwYWdlIGZvciBpc3N1ZSA1
MjM3PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8aWZyYW1lIGlkPSJzZWFyY2giIHNyYz0i
aXNzdWU1MjM3X2ZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xp
Y2tfdGVzdHMvaXNzdWU1MjM3X2ZyYW1lLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9pc3N1ZTUyMzdfZnJhbWUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDZmNGNhZjEyMDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jbGlja190ZXN0cy9pc3N1ZTUyMzdfZnJhbWUuaHRtbApAQCAtMCwwICsxIEBACis8YSBp
ZD0ic3VibWl0IiBocmVmPSIjIiBvbmNsaWNrPSJ3aW5kb3cudG9wLmxvY2F0aW9uID0gJ2lzc3Vl
NTIzN190YXJnZXQuaHRtbCc7IHJldHVybiBmYWxzZTsiPkNvbnRpbnVlPC9hPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2lzc3VlNTIzN190YXJnZXQuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rl
c3RzL2lzc3VlNTIzN190YXJnZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uY2JjMTZlODUxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9pc3N1ZTUyMzdfdGFy
Z2V0Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICA8dGl0bGU+VGFyZ2V0IHBhZ2UgZm9yIGlzc3VlIDUyMzc8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHk+Cis8aDE+VGVzdCBwYXNzZWQ8L2gxPgorPC9tYXA+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jbGlja190ZXN0cy9saW5rX3RoYXRfd3JhcHMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2xpbmtfdGhhdF93cmFwcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNDQzNDM2NGYyNgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2xpbmtfdGhhdF93cmFwcy5odG1sCkBAIC0wLDAgKzEsMTEg
QEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRp
b25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0
aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KzxoZWFkPgorICA8dGl0bGU+TGluayB0aGF0IGNvbnRpbnVlcyBvbiBuZXh0IGxpbmU8L3RpdGxl
PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9IndpZHRoOjMwMHB4Ij4KKyAgICA8ZGl2
IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjIwMHB4O2JhY2tncm91bmQ6cmVkIj5wbGFjZWhvbGRl
cjwvZGl2PjxhIGlkPSJsaW5rIiBocmVmPSJzdWJtaXR0ZWRfcGFnZS5odG1sIj5MaW5rIHRoYXQg
Y29udGludWVzIG9uIG5leHQgbGluZTwvYT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvbWFwcGVkX3BhZ2UxLmh0
bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlj
a190ZXN0cy9tYXBwZWRfcGFnZTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMjQ1ZjAzODViNjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9tYXBwZWRfcGFnZTEu
aHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
PHRpdGxlPlRhcmdldCBQYWdlIDE8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+VGFy
Z2V0IFBhZ2UgMTwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvbWFwcGVk
X3BhZ2UyLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jbGlja190ZXN0cy9tYXBwZWRfcGFnZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNmY5NjM2YzVjMTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9tYXBw
ZWRfcGFnZTIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgPHRpdGxlPlRhcmdldCBQYWdlIDI8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cisg
IDxkaXY+VGFyZ2V0IFBhZ2UgMjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVz
dHMvbWFwcGVkX3BhZ2UzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9tYXBwZWRfcGFnZTMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODdhMzVmMzg4YmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190
ZXN0cy9tYXBwZWRfcGFnZTMuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRhcmdldCBQYWdlIDM8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHk+CisgIDxkaXY+VGFyZ2V0IFBhZ2UgMzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
Y2xpY2tfdGVzdHMvb3ZlcmxhcHBpbmdfZWxlbWVudHMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL292ZXJsYXBwaW5nX2Vs
ZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjZmE1
NmFkZTNhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvb3ZlcmxhcHBpbmdfZWxlbWVudHMuaHRtbApA
QCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94
aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+Cis8aGVhZD4KKyAgPHRpdGxlPkFuIGVsZW1lbnQgdGhhdCBkaXNhcHBlYXJz
IG9uIGNsaWNrPC90aXRsZT4KKyAgPHN0eWxlPgorI3VuZGVyIHsKKyAgcG9zaXRpb246IGFic29s
dXRlOworICB0b3A6IDIwcHg7CisgIGxlZnQ6IDIwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVp
Z2h0OiAxMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cit9CisKKyNwYXJ0aWFsbHlf
dW5kZXIgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMjBweDsKKyAgbGVmdDogMTBw
eDsKKyAgd2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOworICBvcGFjaXR5OiAwLjU7Cit9CisKKyNvdmVyIHsKKyAgcG9zaXRpb246IGFic29s
dXRlOworICB0b3A6IDIwcHg7CisgIGxlZnQ6IDIwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVp
Z2h0OiAxMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICBvcGFjaXR5OiAwLjU7Cit9
CisKKyNsb2cgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTIwcHg7Cit9CisgIDwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisgIDxkaXYgaWQ9InVuZGVyIj48cCBp
ZD0iY29udGVudHMiPkhlbGxvPC9wPjwvZGl2PgorICA8ZGl2IGlkPSJwYXJ0aWFsbHlfdW5kZXIi
PjxwIGlkPSJvdGhlcl9jb250ZW50cyI+SGVsbG88L3A+PC9kaXY+CisgIDxkaXYgaWQ9Im92ZXIi
PjwvZGl2PgorICA8ZGl2IGlkPSJsb2ciPgorICAgIDxwPkxvZzo8cD4KKyAgPC9kaXY+Cis8c2Ny
aXB0PgordmFyIGJ5SWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZC5iaW5kKGRvY3VtZW50KTsK
KwordmFyIGxvZyA9IGJ5SWQoImxvZyIpOworCitmdW5jdGlvbiBoYW5kbGVyKGV2KSB7CisgIGxv
Zy5pbm5lckhUTUwgKz0gIjxwPjwvcD4iOworICBsb2cubGFzdEVsZW1lbnRDaGlsZC50ZXh0Q29u
dGVudCA9IGV2LnR5cGUgKyAiIGluICIgKyBldi50YXJnZXQuaWQgKyAiIChoYW5kbGVkIGJ5ICIg
KyBldi5jdXJyZW50VGFyZ2V0LmlkICsgIilcbiI7Cit9CisKK3ZhciB1bmRlciA9IGJ5SWQoInVu
ZGVyIik7Cit2YXIgb3ZlciA9IGJ5SWQoIm92ZXIiKTsKK3ZhciBib2R5ID0gZG9jdW1lbnQuYm9k
eTsKKwordmFyIHR5cGVzID0gWyJjbGljayIsICJtb3VzZWRvd24iLCAibW91c2V1cCJdOworZm9y
ICh2YXIgaSA9IDAsIHR5cGU7ICh0eXBlID0gdHlwZXNbaV0pOyArK2kpIHsKKyAgdW5kZXIuYWRk
RXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKTsKKyAgb3Zlci5hZGRFdmVudExpc3RlbmVyKHR5
cGUsIGhhbmRsZXIpOworICBib2R5LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcik7Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jbGlja190ZXN0cy9wYXJ0aWFsbHlfb3ZlcmxhcHBpbmdfZWxlbWVudHMuaHRtbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L3BhcnRpYWxseV9vdmVybGFwcGluZ19lbGVtZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4yYWY2MjUyNmUxNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL3Bh
cnRpYWxseV9vdmVybGFwcGluZ19lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEsMTI0IEBACis8IURP
Q1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0
ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4K
KyAgPHRpdGxlPkFuIGVsZW1lbnQgdGhhdCBkaXNhcHBlYXJzIG9uIGNsaWNrPC90aXRsZT4KKyAg
PHN0eWxlPgorI3VuZGVyX3VuZGVyIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDIw
cHg7CisgIGxlZnQ6IDIwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAxMDBweDsKKyAg
YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cit9CisKKyN1bmRlciB7CisgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgdG9wOiAyMHB4OworICBsZWZ0OiAyMHB4OworICB3aWR0aDogMTAwcHg7CisgIGhl
aWdodDogMTAwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgIG9wYWNpdHk6IDAuMTsK
K30KKworI292ZXIxIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDEwcHg7CisgIGxl
ZnQ6IDEwcHg7CisgIHdpZHRoOiA1MHB4OworICBoZWlnaHQ6IDUwcHg7CisgIGJhY2tncm91bmQt
Y29sb3I6IHJlZDsKKyAgb3BhY2l0eTogMC4yOworfQorCisjb3ZlcjIgeworICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgIHRvcDogODBweDsKKyAgbGVmdDogMTBweDsKKyAgd2lkdGg6IDUwcHg7Cisg
IGhlaWdodDogNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICBvcGFjaXR5OiAwLjI7
Cit9CisKKyNvdmVyMyB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAxMHB4OworICBs
ZWZ0OiA4MHB4OworICB3aWR0aDogNTBweDsKKyAgaGVpZ2h0OiA1MHB4OworICBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7CisgIG9wYWNpdHk6IDAuMjsKK30KKworI292ZXI0IHsKKyAgcG9zaXRpb246
IGFic29sdXRlOworICB0b3A6IDgwcHg7CisgIGxlZnQ6IDgwcHg7CisgIHdpZHRoOiA1MHB4Owor
ICBoZWlnaHQ6IDUwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgb3BhY2l0eTogMC4y
OworfQorCisjb3ZlcjUgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogNDVweDsKKyAg
bGVmdDogNDVweDsKKyAgd2lkdGg6IDUwcHg7CisgIGhlaWdodDogNTBweDsKKyAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworICBvcGFjaXR5OiAwLjI7Cit9CisKKyNsb2cgeworICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgIHRvcDogMTIwcHg7Cit9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBp
ZD0iYm9keSI+CisgIDxkaXYgaWQ9InVuZGVyX3VuZGVyIj48cCBpZD0iY29udGVudHMiPkhlbGxv
PC9wPjwvZGl2PgorICA8ZGl2IGlkPSJ1bmRlciI+PHAgaWQ9Im90aGVyX2NvbnRlbnRzIj5IZWxs
bzwvcD48L2Rpdj4KKyAgPGRpdiBpZD0ib3ZlcjEiPjwvZGl2PgorICA8ZGl2IGlkPSJvdmVyMiI+
PC9kaXY+CisgIDxkaXYgaWQ9Im92ZXIzIj48L2Rpdj4KKyAgPGRpdiBpZD0ib3ZlcjQiPjwvZGl2
PgorICA8ZGl2IGlkPSJvdmVyNSI+PC9kaXY+CisgIDxkaXYgaWQ9ImxvZyI+CisgICAgPHA+TG9n
OjxwPgorICA8L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgYnlJZCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkLmJpbmQoZG9jdW1lbnQpOworCit2YXIgbG9nID0gYnlJZCgibG9nIik7CisKK2Z1bmN0aW9u
IGhhbmRsZXIoZXYpIHsKKyAgbG9nLmlubmVySFRNTCArPSAiPHA+PC9wPiI7CisgIGxvZy5sYXN0
RWxlbWVudENoaWxkLnRleHRDb250ZW50ID0gZXYudHlwZSArICIgaW4gIiArIGV2LnRhcmdldC5p
ZCArICIgKGhhbmRsZWQgYnkgIiArIGV2LmN1cnJlbnRUYXJnZXQuaWQgKyAiKVxuIjsKK30KKwor
dmFyIHVuZGVyX3VuZGVyID0gYnlJZCgidW5kZXJfdW5kZXIiKTsKK3ZhciB1bmRlciA9IGJ5SWQo
InVuZGVyIik7Cit2YXIgb3ZlcjEgPSBieUlkKCJvdmVyMSIpOwordmFyIG92ZXIyID0gYnlJZCgi
b3ZlcjIiKTsKK3ZhciBvdmVyMyA9IGJ5SWQoIm92ZXIzIik7Cit2YXIgb3ZlcjQgPSBieUlkKCJv
dmVyNCIpOwordmFyIG92ZXI1ID0gYnlJZCgib3ZlcjUiKTsKK3ZhciBib2R5ID0gZG9jdW1lbnQu
Ym9keTsKKwordmFyIHR5cGVzID0gWyJjbGljayIsICJtb3VzZWRvd24iLCAibW91c2V1cCJdOwor
Zm9yICh2YXIgaSA9IDAsIHR5cGU7ICh0eXBlID0gdHlwZXNbaV0pOyArK2kpIHsKKyAgdW5kZXJf
dW5kZXIuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKTsKKyAgdW5kZXIuYWRkRXZlbnRM
aXN0ZW5lcih0eXBlLCBoYW5kbGVyKTsKKyAgb3ZlcjEuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBo
YW5kbGVyKTsKKyAgb3ZlcjIuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKTsKKyAgb3Zl
cjMuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKTsKKyAgb3ZlcjQuYWRkRXZlbnRMaXN0
ZW5lcih0eXBlLCBoYW5kbGVyKTsKKyAgb3ZlcjUuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5k
bGVyKTsKKyAgYm9keS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9zcGFuX3RoYXRfd3JhcHMuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNr
X3Rlc3RzL3NwYW5fdGhhdF93cmFwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi43N2E5ZDZkNTA3NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL3NwYW5fdGhhdF93
cmFwcy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94
aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorICA8dGl0bGU+TGluayB0aGF0IGNvbnRp
bnVlcyBvbiBuZXh0IGxpbmU8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9
IndpZHRoOjMwMHB4Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjIwMHB4O2Jh
Y2tncm91bmQ6cmVkIj5wbGFjZWhvbGRlcjwvZGl2PjxzcGFuIGlkPSJzcGFuIiBvbmNsaWNrPSJk
b2N1bWVudC5sb2NhdGlvbj0nc3VibWl0dGVkX3BhZ2UuaHRtbCciPlNwYW4gdGhhdCBjb250aW51
ZXMgb24gbmV4dCBsaW5lPC9zcGFuPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9zdWJtaXR0ZWRfcGFnZS5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tf
dGVzdHMvc3VibWl0dGVkX3BhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMGVkMmNiYWNiZmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9zdWJtaXR0ZWRfcGFn
ZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHRpdGxlPlN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGgxPlN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy93cmFwcGVkX292ZXJsYXBwaW5n
X2VsZW1lbnRzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9jbGlja190ZXN0cy93cmFwcGVkX292ZXJsYXBwaW5nX2VsZW1lbnRzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFjMGMzZDAzZTY2Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY2xpY2tfdGVzdHMvd3JhcHBlZF9vdmVybGFwcGluZ19lbGVtZW50cy5odG1sCkBAIC0wLDAg
KzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRy
YW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10
cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIj4KKzxoZWFkPgorICA8dGl0bGU+QSB3cmFwcGVkIGVsZW1lbnQgd2l0aCBvdmVybGFwcGVk
IGZpcnN0IHBhcnQ8L3RpdGxlPgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorPGRpdiBzdHls
ZT0id2lkdGg6MzAwcHgiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjIwMHB4O2Jh
Y2tncm91bmQ6Z3JlZW47Ij5wbGFjZWhvbGRlcjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDps
ZWZ0OyBwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDBweDttYXJnaW4tbGVmdDoyMDBweDtiYWNr
Z3JvdW5kOnJlZDtvcGFjaXR5OjAuNTsiPk92ZXI8L2Rpdj4KKyAgPGEgaWQ9ImxpbmsiIGhyZWY9
InN1Ym1pdHRlZF9wYWdlLmh0bWwiPkxpbmsgdGhhdCBjb250aW51ZXMgb24gbmV4dCBsaW5lPC9h
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190b29fYmlnLmh0bWwgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190b29fYmln
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU2OGVlNzdlYjUw
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvY2xpY2tfdG9vX2JpZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKwk8YSBpZD0iY2xpY2siIGhyZWY9ImNsaWNrcy5odG1s
IiB0YXJnZXQ9Il9wYXJlbnQiPgorCQk8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwMDFweDsgaGVpZ2h0
OiAxMDAwMXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPgorCQkJJm5ic3A7ICZuYnNwOyAm
bmJzcDsKKwkJPC9kaXY+CisJPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdG9vX2Jp
Z19pbl9mcmFtZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdG9vX2JpZ19pbl9mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5jZGE5OTBlZDg5MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rvb19iaWdf
aW5fZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5UaGlzIHBhZ2UgaGFzIGlmcmFtZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8aDEgaWQ9
ImlmcmFtZV9wYWdlX2hlYWRpbmciPlRoaXMgaXMgdGhlIGhlYWRpbmc8L2gxPgorCis8aWZyYW1l
IHNyYz0iY2xpY2tfdG9vX2JpZy5odG1sIiBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndpZHRoPSIw
IiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIGFsbG93dHJhbnNwYXJlbmN5PSJ0cnVlIgor
ICAgICAgICBmcmFtZWJvcmRlcj0iMCIgaGVpZ2h0PSIxMDAwMSIgc2Nyb2xsaW5nPSJubyIgd2lk
dGg9IjEwMDAxIiBpZD0iaWZyYW1lMSIgbmFtZT0iaWZyYW1lMS1uYW1lIiAvPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvY2xpY2tzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9jbGlja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZGMwN2ZlZTZhMWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja3MuaHRtbApAQCAtMCwwICsx
LDM1IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5jbGlja3M8L3RpdGxlPgorPC9oZWFk
PgorPGJvZHk+Cis8aDE+VGVzdGluZyBDbGlja3M8L2gxPgorCis8aWZyYW1lIGlkPSJzb3VyY2Ui
IHNyYz0iY2xpY2tfc291cmNlLmh0bWwiPgorCis8L2lmcmFtZT4KKworPGlmcmFtZSBpZD0idGFy
Z2V0IiBuYW1lPSJ0YXJnZXQiPgorCis8L2lmcmFtZT4KKzxicj4KKzxhIGhyZWY9InhodG1sVGVz
dC5odG1sIiBpZD0ibm9ybWFsIj5JJ20gYSBub3JtYWwgbGluazwvYT4KKzxici8+Cis8YSBocmVm
PSIjIiBpZD0iYW5jaG9yIj5JIGdvIHRvIGFuIGFuY2hvcjwvYT4KKzxicj4KKzxhIGhyZWY9Imph
dmFzY3JpcHQ6d2luZG93Lm9wZW4oJ3hodG1sVGVzdC5odG1sJywgJ19ibGFuaycpIiBpZD0ibmV3
LXdpbmRvdyI+SSBvcGVuIGEgd2luZG93IHdpdGggamF2YXNjcmlwdDwvYT4KKzxici8+Cis8YSBo
cmVmPSJ4aHRtbFRlc3QuaHRtbCIgaWQ9InR3b0NsaWVudFJlY3RzIj48c3Bhbj48L3NwYW4+PHNw
YW4+Q2xpY2sgbWU8L3NwYW4+PC9hPgorPGJyLz4KKzxhIGhyZWY9InhodG1sVGVzdC5odG1sIiBp
ZD0ibGluay13aXRoLWVuY2xvc2VkLWltYWdlIj48aW1nIGlkPSJlbmNsb3NlZC1pbWFnZSIgc3Jj
PSIuL2ljb24uZ2lmIi8+PC9hPgorPGJyLz4KKzxhIGhyZWY9InhodG1sVGVzdC5odG1sIiBpZD0i
bGluay13aXRoLWVuY2xvc2VkLXNwYW4iPjxzcGFuIGlkPSJlbmNsb3NlZC1zcGFuIiBzdHlsZT0i
Y29sb3I6IHJnYigwLCAyNTUsIDApIj5JJ20gYSBncmVlbiBsaW5rPC9zcGFuPjwvYT4KKzxwIHN0
eWxlPSJiYWNrZ3JvdW5kOiBub25lIHJlcGVhdCBzY3JvbGwgMCUgMCUgcmdiKDAsIDI1NSwgMCk7
IHdpZHRoOiA1ZW07Ij48YSBpZD0ib3ZlcmZsb3dMaW5rIiBocmVmPSJ4aHRtbFRlc3QuaHRtbCI+
bG9vb29vb29vb29vbmcgc2hvcnQgbG9vb29vb29vb29vbmc8L2E+CisgICAgICAgICAgICAgICAg
PC9wPgorPGRpdiBpZD0iYnViYmxlc1RvIiBvbmNsaWNrPSJ3aW5kb3cuYnViYmxlZENsaWNrID0g
dHJ1ZTsiPgorICA8YSBpZD0iYnViYmxlc0Zyb20iPkkgYnViYmxlPC9hPgorPC9kaXY+Cis8YSBo
cmVmPSJ4aHRtbFRlc3QuaHRtbCI+MzMzMzMzPC9hPgorPHA+PGEgaHJlZj0ieGh0bWxUZXN0Lmh0
bWwiIGlkPSJlbWJlZGRlZEJsb2NrIj48c3BhbiBzdHlsZT0iZGlzcGxheTogYmxvY2s7Ij5JIGhh
dmUgYSBzcGFuPC9zcGFuPjxkaXY+QW5kIGEgZGl2PC9kaXY+PHNwYW4+QW5kIGFub3RoZXIgc3Bh
bjwvc3Bhbj48L2E+PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xvc2VhYmxlX3dpbmRvdy5o
dG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xv
c2VhYmxlX3dpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5lNjRjNTk5Yzk4MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nsb3NlYWJsZV93aW5kb3cuaHRtbApAQCAtMCwwICsx
LDggQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Y2xvc2VhYmxlIHdpbmRvdzwvdGl0bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KK1RoaXMgd2luZG93IGNhbiBiZSBjbG9zZWQgYnkgY2xpY2tpbmcgb24g
PGEgaWQ9ImNsb3NlIiBvbmNsaWNrPSJ3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsgd2lu
ZG93LmNsb3NlKCk7fSwgMCk7IiBocmVmPSIjIj50aGlzPC9hPi4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbi10ZXN0Lmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbi10ZXN0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRmODQ2YWQ0NmRjCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
Y24tdGVzdC5odG1sCkBAIC0wLDAgKzEsMTU2IEBACisKKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9Z2IyMzEyIj4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKworCisgIC8qIGRlZmF1bHQgY3NzICovCisgIAorICB0
YWJsZSB7CisgICAgZm9udC1zaXplOiAxZW07CisgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cisg
IH0KKworICAKKyAgZGl2LCBhZGRyZXNzLCBvbCwgdWwsIGxpLCBvcHRpb24sIHNlbGVjdCB7IAor
ICAgIG1hcmdpbi10b3A6IDBweDsKKyAgICBtYXJnaW4tYm90dG9tOiAwcHg7CisgIH0KKworICBw
IHsKKyAgICBtYXJnaW46IDBweDsKKyAgfQorCisgIGJvZHkgeworICAgIAorICAgIAorICAgICAg
bWFyZ2luOiAwcHg7CisgICAgCisgICAgCisgICAgCisgICAgICBwYWRkaW5nLWxlZnQ6IDUwcHg7
CisgICAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4OworICAgICAgcGFkZGluZy10b3A6IDQwcHg7Cisg
ICAgICAKKyAgICAKKyAgfQorCisgIGg2IHsgZm9udC1zaXplOiAxMHB0IH0KKyAgaDUgeyBmb250
LXNpemU6IDExcHQgfQorICBoNCB7IGZvbnQtc2l6ZTogMTJwdCB9CisgIGgzIHsgZm9udC1zaXpl
OiAxM3B0IH0KKyAgaDIgeyBmb250LXNpemU6IDE0cHQgfQorICBoMSB7IGZvbnQtc2l6ZTogMTZw
dCB9CisKKyAgYmxvY2txdW90ZSB7cGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggI0RERCBkYXNo
ZWQgfQorCisgIGEgaW1nIHtib3JkZXI6IDB9CisKKyAgZGl2Lmdvb2dsZV9oZWFkZXIsIGRpdi5n
b29nbGVfZm9vdGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgbWFyZ2luLXRvcDog
MWVtOworICAgIG1hcmdpbi1ib3R0b206IDFlbTsKKyAgfQorICAvKiBlbmQgZGVmYXVsdCBjc3Mg
Ki8KKworICAKKyAgICAvKiBkZWZhdWx0IHByaW50IGNzcyAqLworICAgIAorICAgIEBtZWRpYSBw
cmludCB7CisgICAgICBib2R5IHsgCisgICAgICAgIHBhZGRpbmc6IDA7IAorICAgICAgICBtYXJn
aW46IDA7IAorICAgICAgfQorCisgICAgICBkaXYuZ29vZ2xlX2hlYWRlciwgZGl2Lmdvb2dsZV9m
b290ZXIgeworICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgbWluLWhlaWdodDogMDsK
KyAgICAgICAgYm9yZGVyOiBub25lOworICAgICAgfQorCisgICAgICBkaXYuZ29vZ2xlX2hlYWRl
ciB7CisgICAgICAgIGZsb3c6IHN0YXRpYyhoZWFkZXIpOworICAgICAgfQorCisgICAgICAvKiB1
c2VkIHRvIGluc2VydCBwYWdlIG51bWJlcnMgKi8KKyAgICAgIGRpdi5nb29nbGVfaGVhZGVyOjpi
ZWZvcmUsIGRpdi5nb29nbGVfZm9vdGVyOjpiZWZvcmUgeworICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgIHRvcDogMDsKKyAgICAgIH0KKworICAgICAgZGl2Lmdvb2dsZV9mb290
ZXIgeworICAgICAgICBmbG93OiBzdGF0aWMoZm9vdGVyKTsKKyAgICAgIH0KKworICAgICAgLyog
YWx3YXlzIGNvbnNpZGVyIHRoaXMgZWxlbWVudCBhdCB0aGUgc3RhcnQgb2YgdGhlIGRvYyAqLwor
ICAgICAgZGl2I2dvb2dsZV9mb290ZXIgeworICAgICAgICBmbG93OiBzdGF0aWMoZm9vdGVyLCBz
dGFydCk7CisgICAgICB9CisKKyAgICAgIHNwYW4uZ29vZ2xlX3BhZ2VudW1iZXIgeworICAgICAg
ICBjb250ZW50OiBjb3VudGVyKHBhZ2UpOworICAgICAgfQorCisgICAgICBzcGFuLmdvb2dsZV9w
YWdlY291bnQgeworICAgICAgICBjb250ZW50OiBjb3VudGVyKHBhZ2VzKTsKKyAgICAgIH0KKyAg
ICB9CisKKyAgICBAcGFnZSB7CisgICAgICBAdG9wIHsKKyAgICAgICAgY29udGVudDogZmxvdyho
ZWFkZXIpOworICAgICAgfQorICAgICAgQGJvdHRvbSB7CisgICAgICAgIGNvbnRlbnQ6IGZsb3co
Zm9vdGVyKTsKKyAgICAgIH0KKyAgICB9CisgICAgLyogZW5kIGRlZmF1bHQgcHJpbnQgY3NzICov
CisgICAKKyAgCisgIC8qIGN1c3RvbSBjc3MgKi8KKyAgCisgIAorICAvKiBlbmQgY3VzdG9tIGNz
cyAqLworCisgIC8qIHVpIGVkaXRlZCBjc3MgKi8KKyAgCisgIGJvZHkgeworICAgIGZvbnQtZmFt
aWx5OiBWZXJkYW5hOworICAgIAorICAgIGZvbnQtc2l6ZTogMTAuMHB0OworICAgIGxpbmUtaGVp
Z2h0OiBub3JtYWw7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKKyAgfQorICAvKiBl
bmQgdWkgZWRpdGVkIGNzcyAqLworCisKKworCis8L3N0eWxlPgorCisKKzwvaGVhZD4KKworPGJv
ZHkgcmV2aXNpb249ImNjenY2NXdiXzU0ZjYyY2M5ZjI6MyI+CisKKzxkaXYgaWQ9InJlc3VsdCI+
Cis8L2Rpdj4KKyAgICAKKyAgICAKKzxoMT7Vuc37MjAwOMrAvee088rGo7q358bw1MbTvyC8pLW0
yMvQxDwvaDE+PGJyPgorPGJyPgorICA41MI4yNXN7aOssbG+qTIwMDjE6rDC1Mu74bW5vMbKsdK7
1tzE6sfs16O77rav1NrM7LCyw8W547OhvtnQ0KGjzbzOqsfs16O77rav1tC1xM7E0tXR3bP2oaMg
0MK7qsnnvMfV38H1zsCx+MnjCisKKyAgICCjsqOwo7CjuMTqysC957fnxvDUxtO/o6y8pLW0yMvQ
xKGjtavSqtf3s/bSu7j21KSy4qOsytfPyNKqttS98czsy/m0prXEysC959PQ0ru49rv5sb65ssq2
oaM8YnI+Cis8YnI+Cis8YSBocmVmPXNpbXBsZVRlc3QuaHRtbCBpZD1iN3Y5IHRpdGxlPdbQufrW
rsn5PtbQufrWrsn5PC9hPjxicj4KKzxicj4KKzxicj4KKworPGZvcm0gYWN0aW9uPSJzaW1wbGVU
ZXN0Lmh0bWwiPgorICA8aW5wdXQgbmFtZT0iaTE4biIgb25jaGFuZ2U9ImRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAnPHA+JyArIHRoaXMudmFsdWUgKyAnPC9w
Pic7IiAvPgorPC9mb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb2xvclBhZ2UuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NvbG9yUGFn
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZDFiZmMwYWZj
MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2NvbG9yUGFnZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPkNvbG9yIFBhZ2U8L3RpdGxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJuYW1lZENvbG9yIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47Ij5uYW1lZENvbG9yPC9kaXY+Cis8ZGl2IGlkPSJyZ2IiIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiByZ2IoMCwxMjgsMCk7Ij5yZ2I8L2Rpdj4KKzxkaXYgaWQ9InJnYnBjdCIgc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IHJnYigwJSw1MCUsMCUpOyI+cmdicGN0PC9kaXY+Cis8ZGl2IGlk
PSJoZXgiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MDAwOyI+aGV4PC9kaXY+Cis8ZGl2
IGlkPSJoZXhTaG9ydCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWU7Ij5oZXg8L2Rpdj4K
KzxkaXYgaWQ9ImhzbCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGhzbCgxMjAsMTAwJSwyNSUp
OyI+aHNsPC9kaXY+Cis8ZGl2IGlkPSJyZ2JhIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdi
YSgwLDEyOCwwLCAwLjUpOyI+cmdiYTwvZGl2PgorPGRpdiBpZD0icmdiYXBjdCIgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IHJnYmEoMCUsNTAlLDAlLCAwLjUpOyI+cmdiYTwvZGl2PgorPGRpdiBp
ZD0iaHNsYSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGhzbGEoMTIwLDEwMCUsMjUlLDAuNSk7
Ij5oc2xhPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKKworCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb250ZW50LWVkaXRhYmxl
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9j
b250ZW50LWVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjdhN2Q1NTgxNzAxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29udGVudC1lZGl0YWJsZS5odG1sCkBAIC0wLDAg
KzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRlc3Rp
bmcgY29udGVudCBlZGl0YWJsZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0i
ZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+CisgICAgV2h5IDxzcGFuPmhlbGxvPC9z
cGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2Nvb2tpZXMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2Nvb2tpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uN2RiNWI0OTMxMmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29raWVzLmh0bWwKQEAgLTAsMCArMSwzMCBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdGluZyBjb29raWVzPC90aXRsZT4KKwor
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gc2V0
Q29va2llKGRvbWFpbiwgbmFtZSkgeworICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gbmFt
ZSArICI9b2s7cGF0aD0vO2RvbWFpbj0iICsgZG9tYWluOyAgICAgICAgICAgIAorICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gc2hvd0Nvb2tpZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiPHA+IiArIGRvY3VtZW50LmNv
b2tpZSArICI8L3A+IjsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJzaG93Q29va2llKCk7Ij4KKzxoMj5Db29raWUgTWFzaGluZzwvaDI+CisgICAgLmNv
bSA8YSBocmVmPSIjIiBvbmNsaWNrPSJzZXRDb29raWUoJy5jb20nLCAndGhlLmNvbV9vbmUnKTsg
c2hvd0Nvb2tpZSgpOyByZXR1cm4gZmFsc2U7Ij5DbGljazwvYT48L2JyIC8+CisgICAgLiA8YSBo
cmVmPSIjIiBvbmNsaWNrPSJzZXRDb29raWUoJy4nLCAndGhlLm9uZScpOyBzaG93Q29va2llKCk7
IHJldHVybiBmYWxzZTsiPkNsaWNrPC9hPjwvYnIgLz4KKyAgICBnb29nbGUuY29tIDxhIGhyZWY9
IiMiIG9uY2xpY2s9InNldENvb2tpZSgnZ29vZ2xlLmNvbScsICdnb29nbGUnKTsgc2hvd0Nvb2tp
ZSgpOyByZXR1cm4gZmFsc2U7Ij5DbGljazwvYT48L2JyIC8+CisgICAgLmdvb2dsZS5jb20gPGEg
aHJlZj0iIyIgb25jbGljaz0ic2V0Q29va2llKCcuZ29vZ2xlLmNvbScsICcuZ29vZ2xlJyk7IHNo
b3dDb29raWUoKTsgcmV0dXJuIGZhbHNlOyI+Q2xpY2s8L2E+PC9iciAvPgorICAgIDEyNy4wLjAu
MSA8YSBocmVmPSIjIiBvbmNsaWNrPSJzZXRDb29raWUoJzEyNy4wLjAuMScsICdsb2NhbGhvc3Qn
KTsgc2hvd0Nvb2tpZSgpOyByZXR1cm4gZmFsc2U7Ij5DbGljazwvYT48L2JyIC8+CisgICAgbG9j
YWxob3N0OjMwMDEgPGEgaHJlZj0iIyIgb25jbGljaz0ic2V0Q29va2llKCdtZW5jeS5hZC5jb3Jw
Lmdvb2dsZS5jb206NjIyMTAnLCAnd2l0aF9wb3J0Jyk7IHNob3dDb29raWUoKTsgcmV0dXJuIGZh
bHNlOyI+Q2xpY2s8L2E+PC9iciAvPgorICAgIC5nb29nbGU6MzAwMSA8YSBocmVmPSIjIiBvbmNs
aWNrPSJzZXRDb29raWUoJy5nb29nbGUuY29tOjYyMjEwJywgJ3dpdGhfZG9tYWluX2FuZF9wb3J0
Jyk7IHNob3dDb29raWUoKTsgcmV0dXJuIGZhbHNlOyI+Q2xpY2s8L2E+PC9iciAvPgorICAgIDE3
Mi4xNi4xMi4yMjUgPGEgaHJlZj0iIyIgb25jbGljaz0ic2V0Q29va2llKCcxNzIuMTYuMTIuMjI1
JywgJ3Jhd19JUCcpOyBzaG93Q29va2llKCk7IHJldHVybiBmYWxzZTsiPkNsaWNrPC9hPjwvYnIg
Lz4gIAorICAgIDE3Mi4xNi4xMi4yMjU6cG9ydCA8YSBocmVmPSIjIiBvbmNsaWNrPSJzZXRDb29r
aWUoJzE3Mi4xNi4xMi4yMjU6NjIyMTAnLCAncmF3X0lQX2FuZF9wb3J0Jyk7IHNob3dDb29raWUo
KTsgcmV0dXJuIGZhbHNlOyI+Q2xpY2s8L2E+PC9iciAvPgorICAgIDxhIGhyZWY9IiMiIG9uY2xp
Y2s9ImRvY3VtZW50LmNvb2tpZSA9ICdmb289YmFyO3BhdGg9L2NvbW1vbi9nYWxheHknOyI+U2V0
IG9uIGEgZGlmZmVyZW50IHBhdGg8L2E+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNf
dGVzdHMvZWxlbWVudF9pbl9mcmFtZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvZWxlbWVudF9pbl9mcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzE0YTQ4YWQ1Ygot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL2VsZW1lbnRfaW5fZnJhbWUuaHRtbApAQCAtMCww
ICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPldlbGNv
bWUgUGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOiAxMHB4OyBwYWRk
aW5nOiAwcHg7Ij4KKyAgPGlmcmFtZSBuYW1lPSJpZnIiIHNyYz0ic2ltcGxlX3BhZ2UuaHRtbCIg
d2lkdGg9IjQwMCIgaGVpZ2h0PSIzMDAiIHN0eWxlPSJib3JkZXI6IDVweCBzb2xpZDsiPjwvaWZy
YW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvZWxlbWVudF9pbl9u
ZXN0ZWRfZnJhbWUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL2VsZW1lbnRfaW5fbmVzdGVkX2ZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIzMTQzYjBkNmQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvZWxlbWVudF9pbl9uZXN0ZWRfZnJhbWUuaHRtbApAQCAt
MCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPldl
bGNvbWUgUGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOiAxMHB4OyBw
YWRkaW5nOiAwcHg7Ij4KKyAgPGlmcmFtZSBuYW1lPSJpZnIiIHNyYz0iZWxlbWVudF9pbl9mcmFt
ZS5odG1sIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjQwMCIgc3R5bGU9ImJvcmRlcjogNXB4IHNvbGlk
OyI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9wYWdl
X3dpdGhfZWxlbWVudF9vdXRfb2Zfdmlldy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2VsZW1l
bnRfb3V0X29mX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNmYyYmNkNGYyYzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfZWxl
bWVudF9vdXRfb2Zfdmlldy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2UgV2l0aCBFbGVtZW50IE91dCBPZiBWaWV3PC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDBweDsi
PgorICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDUwMDBweDsiPlBsYWNlaG9sZGVyPC9kaXY+CisgIDxk
aXYgaWQ9ImJveCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOyI+UmVkIGJveDwvZGl2PgorICA8ZGl2PlRleCBhZnRlciBib3g8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9lbXB0eV9l
bGVtZW50Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfZW1wdHlfZWxlbWVudC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iMDc5NzJhYmQ4NAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9lbXB0eV9lbGVtZW50Lmh0bWwKQEAgLTAsMCAr
MSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSBX
aXRoIEVtcHR5IEVsZW1lbnQ8L3RpdGxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9Im1hcmdpbjog
MTBweDsgcGFkZGluZzogMHB4OyI+CisgIDxkaXYgaWQ9ImJveCI+PC9kaXY+CisgIDxkaXY+VGV4
IGFmdGVyIGJveDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMv
cGFnZV93aXRoX2ZpeGVkX2VsZW1lbnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9maXhlZF9l
bGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjYmIy
NzM4ZTU0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2ZpeGVkX2VsZW1l
bnQuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgIDx0aXRsZT5QYWdlIFdpdGggRml4ZWQgRWxlbWVudDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgPGRpdiBpZD0iZml4ZWQiIHN0eWxlPSJwb3NpdGlvbjpmaXhlZDsgdG9wOjBweDsgbGVm
dDoxMDBweDsgYmFja2dyb3VuZC1jb2xvcjpyZWQiPmZpeGVkIHJlZCBib3g8L2Rpdj4KKyAgPGRp
diBpZD0icGxhY2Vob2xkZXIiIHN0eWxlPSJoZWlnaHQ6IDUwMDBweDsgYmFja2dyb3VuZC1jb2xv
cjpncmVlbiI+UGxhY2Vob2xkZXI8L2Rpdj4KKyAgPGRpdiBpZD0iYm90dG9tIj5FbGVtZW50IGF0
IHRoZSBib3R0b208L2Rpdj4KKyAgPGRpdj5UZXggYWZ0ZXIgYm94PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfaGlkZGVuX2VsZW1lbnQuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3Jk
aW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9oaWRkZW5fZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yODZiMDRiMTczZgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3JkaW5h
dGVzX3Rlc3RzL3BhZ2Vfd2l0aF9oaWRkZW5fZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2UgV2l0aCBIaWRk
ZW4gRWxlbWVudDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOiAxMHB4OyBw
YWRkaW5nOiAwcHg7Ij4KKyAgPGRpdiBpZD0iYm94IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHZpc2liaWxpdHk6IGhpZGRlbjsiPkhp
ZGRlbiBib3g8L2Rpdj4KKyAgPGRpdj5UZXggYWZ0ZXIgYm94PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfaW52aXNpYmxlX2VsZW1lbnQuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3Jk
aW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9pbnZpc2libGVfZWxlbWVudC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzMzYzcxODU2MQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3Jk
aW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9pbnZpc2libGVfZWxlbWVudC5odG1sCkBAIC0wLDAgKzEs
MTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2UgV2l0
aCBJbnZpc2libGUgRWxlbWVudDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2lu
OiAxMHB4OyBwYWRkaW5nOiAwcHg7Ij4KKyAgPGRpdiBpZD0iYm94IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IGRpc3BsYXk6IG5vbmU7
Ij5JbnZpc2libGUgYm94PC9kaXY+CisgIDxkaXY+VGV4IGFmdGVyIGJveDwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX3RyYW5zcGFyZW50X2Vs
ZW1lbnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF90cmFuc3BhcmVudF9lbGVtZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwMDkwZDkyMWY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX3RyYW5zcGFyZW50X2VsZW1lbnQuaHRt
bApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0
aXRsZT5QYWdlIFdpdGggVHJhbnNwYXJlbnQgRWxlbWVudDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9k
eSBzdHlsZT0ibWFyZ2luOiAxMHB4OyBwYWRkaW5nOiAwcHg7Ij4KKyAgPGRpdiBpZD0iYm94IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
IG9wYWNpdHk6IDA7Ij5IaWRkZW4gYm94PC9kaXY+CisgIDxkaXY+VGV4IGFmdGVyIGJveDwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvc2ltcGxlX3BhZ2UuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3Jk
aW5hdGVzX3Rlc3RzL3NpbXBsZV9wYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjdiODU3YjlkZmU4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvc2lt
cGxlX3BhZ2UuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgIDx0aXRsZT5TaW1wbGUgUGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHls
ZT0ibWFyZ2luOiAxMHB4OyBwYWRkaW5nOiAwcHg7Ij4KKyAgPGRpdiBpZD0iYm94IiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ij5SZWQg
Ym94PC9kaXY+CisgIDxkaXY+VGV4IGFmdGVyIGJveDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfZGlhZ29uYWxzLXRoaWNrXzE4X2I4MTkw
MF80MHg0MC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19kaWFnb25hbHMtdGhpY2tfMThfYjgx
OTAwXzQweDQwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTRlMjJkYmQ5OWU4YzZkZDcwOTEzMzU1OTlhYmYy
ZDEwYmY4MDAzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNjAKemNtZUFTQE4/KG9sSHlgdVZC
cSFpYTB2cF44WChOVTF8KW1fP1peZEVyIylSOUxuMno9VVUlZD1XRlhTPUBWP0hUCnojeEcqYD5Z
dnNnaz19OTl3XmReRF5kKkBtNzRvTW88JSNGY29wSmY/dTAwLX5ZVktWMnd6ckkqX1I2O1VPUk1l
YQp6QkZWU0VuTn5laVZBNlYmemBFKVlMejVBb2teRClJbn1Zbj1PekRwZ1I1V3YwWGZUOHBPa21W
e3NLQUotUE85I1QKelpLfUlYaiZRLVYhVSkhTGNCXzNLPGo2PWt1KiEldVhqeSNsZUtkUT9gWnZQ
JlJpYVBWT3p4USRgTylgTSg2c0xTCnlOJUo7WT9ETzA8cjc/ZmYjIWM2THNBKjJVYGYyKj9DJWdz
S3BNbzZ6dm9ydmAjbysxYz1kI1d6cCRQeT4wJkMqewoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfZGlhZ29uYWxzLXRoaWNrXzIwXzY2NjY2
Nl80MHg0MC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19kaWFnb25hbHMtdGhpY2tfMjBfNjY2
NjY2XzQweDQwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGVjZTU3MDdkOTFhNmVkZjlmYWQ0YmZjY2UwYzRk
YmNhZmNmNThkCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNTEKemNtVjxYMDBqU3VQKTxoOzNL
fExrMDAwZTFOSkxUcTAwMVplMDAxWm0xXkBzNmpRK1Q3MDAwMk9Oa2w8WlNjVUReCnpUPyZJUjco
fihBWSNeKTYhbjE8PFZqKWZRWW1eTS1uQDVyMUN9QH5oMjtvaFo3LU4zdkMqSiQrSiRMbEVKSWhM
MAp6P2ZVfCU7VUVEajtAfHxUO3NCZzc0aGtSMU80JDwrK1hVeyRMRXtaNztHaENqITlmQTJnbzZ5
SWhKeXNDaD1VV1QKemlVVi1VSTJpYSomeStwIXV0VUl8JDYqKF5gPmJ2UGNqS1N8UktQKDZzRGND
QUIoX1FCJTA5NzhhPCRBaCQhYnxFCnp3bjt8SE8waThjUTxsYXkkKDFzJk98bil0OHJ2a2J2Uj9q
amxOQD5qQH4pcyFhakYwUzAwMm92UERITGtWMW9FcApCWUgwdWYKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWJnX2ZsYXRfMTBfMDAwMDAwXzQw
eDEwMC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19mbGF0XzEwXzAwMDAwMF80MHgxMDAucG5n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFiZGMwMTA4MmJmMzUzNGVhZmVjYzU4MTlkMjhjOTU3NGQ0NGVhODkKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDE3OAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjhiRi1G
ITNIRzFxIWQqRnNZKns1JEI+TjF4OTFFUTQ9NHlRWS1JbUcKekZQZjlie0o7Y182U0hSSyVXY2JO
X2hacE09KFJ5OzRSeHYyQEAyWT0kSzU3ZUYkWCQ9IVBDe3hXdH4kKDY5QikkCkJJKTRCRgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfZ2xh
c3NfMTAwX2Y2ZjZmNl8xeDQwMC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19nbGFzc18xMDBf
ZjZmNmY2XzF4NDAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjM4M2Y0ZDJlYWIwOWMwZjJhNzM5ZDZiMjMy
YzMyOTM0YmM2MjBiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMDQKemNtZUFTQE4/KG9sSHlg
dVZCcSFpYTB2cF5qNmdKamdBS15ha0tub3VyMVUqcTk3OE82LXlZd3slYip9fF8oMDJGCnpAcWJF
OSkwQ0pNbzsqdipQV3ZgVmgyaDZFbUc4SVMtQ217M1V+YDxZdnhTU0ZVMyk8UVAlREZ7dERubXty
LVVXfApEdmQ8dWYKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3Mv
aW1hZ2VzL3VpLWJnX2dsYXNzXzEwMF9mZGY1Y2VfMXg0MDAucG5nIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMv
dWktYmdfZ2xhc3NfMTAwX2ZkZjVjZV8xeDQwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTIzYmFhZDI1YjFk
MWZmMzZlMTczNjFlYWIyNDI3MWYyZTliNzMyNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTI1
CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeajZnSmpnQUteYWtLbm91cStDMio5NzhPNmxZampG
e0lGaClqZzc0Pgp6RmxtWn1ZTWNKWT1lbz9vJSpAST8yYE5ibE5lTXVkbCN0PzxZSXJ5YFFLKk9H
cn5vdEQ5cGxBRUd6YDVHNmQ5enAKV2E1NWV7R1VXPTtKTylvIUtiTGgqMn43YUAmbUAhcAoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfZ2xh
c3NfNjVfZmZmZmZmXzF4NDAwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWJnX2dsYXNzXzY1X2Zm
ZmZmZl8xeDQwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJjY2JhMjY5YjZlOTFiZWYxMmFkMGZhMThiZTY1
MWI1ZWYwZWU2OApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTA1CnpjbWVBU0BOPyhvbEh5YHVW
QnEhaWEwdnBeajZnSmpnQUteYWtLbm91cXpwVj05NzhPNi09MD9GVl45enxlQnRmPQp6fDdXenRJ
SjtXVD57K3ROPnlTcn49RntrJD47X3heX3k/YWZtZjlwUktIMCk2P2VTUD8zczVoRXI+bWRLSTtW
c3QKRTBPPFo5PjtNMSYKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5l
c3MvaW1hZ2VzL3VpLWJnX2dsb3NzLXdhdmVfMzVfZjZhODI4XzUwMHgxMDAucG5nIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVz
cy9pbWFnZXMvdWktYmdfZ2xvc3Mtd2F2ZV8zNV9mNmE4MjhfNTAweDEwMC5wbmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzlkNTgyNGQ2YWY1NDU2ZjFlODlmYzc4NDdlYTM1OTllYTVmZDgxNQpHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMzc2Mgp6Y21iX2VZZ2lLS3d4LT1RP1A8RTRuTU07JGVXdTJtI1BVJWAmQWVe
TE92XjZnY3RKM3ZNOCFsVUchYUN4USMwZUoKenE/eElxREppOTxmRnA+ZGkwK3cheWFDfF8xdXZB
PnlheHp8aVgzZUI8THFhanBYYmxGelJVQmlee3d+JClfVUtwCnpwRHowRCo9NCM1MDA4VmM+diNI
UjBBU21TVklLTVMma2ZgQ1NBVjRnMERKTGdQa1JPNzl4aiVKPChoSDZgYlRHagp6cnJeJEplaUhK
ST87cyY8NXBSdy1ea2p9PUU7WDBPWCtwZ3orZjVHVnQwTlF2X2didTA+LThKK0YkTz5IcFc/THgK
eitZRk9gQ1YmNlZWOWZzRXdHI2pzMF8tfHYqIXVqWipNPWpmbzQ1Nz8wRG8tejxefSs4YkkrcWsr
V34rJHp6JVomCno7TDcmQCZuc2BsOE9maCpXZDxDcF8+VTBwTyVSUF4/WGFfaDdJfTdLI300WHRg
cyUtKG0tZW5hUFdYPEg+JE8mLQp6WH5hMWFPem4/IXI/NXdKVkJOUEpfbzgtKDlGejxfYzFMWUd4
VWwoRStXZHg/d2tOSEgyVCVlV3E5S3owMGgjUkIKellLSX49YTw5X1FxQ15uPD5oeVdsUzY2d2FX
Z3lBUCN0JlRmVFdQPVN4YSl1a1JZJWo3V0h9KEByPUJeV187YiZNCnpSelBZc2Iqal5Lb3UlJWBL
NlZQK2RLdFJAeH5xRUhxNHJYTXhvWC1nY1NmJi0+bE1ZJVRNWEYhR3dfQSkodHA2fQp6MkEla04z
dHdiciVLeVVycm13MjRWM2Qld3pLPC1xKE07TVRyNDF9dW5gUCEheGVqQURFdl9DSntDVGlmOTA3
QiYKekVQYHBESklaSFZnbm14aCRFWm5CT1V4en5BcCtaektiRm1nMzlfbi0pJHdZIVFAaX41YUdt
SGJONyYqZ2s8SE5RCnohJC1zUykpNSgjP3FQVyQxQ14zIztjRnZRTVdUZClkKElfNGF3RV5aakdD
JVhjblNHZXo+cTl6V2dWfDIoWmh4bAp6b0RxSnAmTXhXKHFYI0NAb0Y4TCkqciRSZFNqVkZTYyQl
ej8qOSVZb1o2c09aIXZ0eFh0Qk08KnI4MjxwN30/MUAKenZlUUkmdGlObXs7NTdqaXBRYk99Yj85
bCpsNG5HQVQ0WT0tdygpQCojSjE/JTJ7KW5ZXnt8Tk89eE0pcz9qUjY8CnppSiFmU09PUHMqJDgt
PnZ5Q31fRWl6MVBKMkwkYnR0a29gPStmSHtOZUBHI2xNRHhrS3RfeSlPKEo1JkFrKXctSQp6bm0h
dnpZWDMka0xERyRoT3AtS0pnfjd9TTs3M0JGV0F7IWE2MWZlP05Ka2pSX31YdysqYE8wPUFHZzcm
ZFU8a1EKekE7ZCUtek0qaXdTMnQ4WSlHdUBKSyZBKWZWPUhIdmJXYDZtVitFWnJ0SlNhdUFwTUNu
ZEJTfkY+QWBBPzlgd2hXCnpNe2ZrRmZgR2BQXjlqKnwtcTlLTHZTPDE5MXo5YV5tSzNMc3N9VzhP
PXNafU4kVjRGaCpTV0Y1TmJaUT5wezA+JAp6MHBlfWQkKnMheTxJNlBAMS1uJEdFPipSJk5TWGJq
bWxkNns0WTtPODlNdURUSzBIbjBDP1FkTDl6MXFHZWdYcyEKejckTUlHa1Brd2RIRjJvcy1aLWU4
NUI/NUFuPnljfG08fT4hSWlyZyVILTxOUSV3czB1SWk1MS1hNXBoRG1we2s1CnpEKHpqUEM7dH1A
e3cpKzAme2x+RlMqPiVGMTFYWXt7PkBrZ0w+YSM2Zk05SnpCRSZhbiZGPmVXaHxiMF5rSjw/bgp6
cz03V3l1WD1mSWh2QWpUVFhgY31IVUgpYlRUSTtPSkdseUJ7KE5LJkc7SHRtbjZeP2M/VGFBc09W
fXVCVXRBYT4Kek5CTTUqbkNhfih4d25+ckd+PGNmUHAqdWI0VihXRilsR2JKcFMofE12QUE4M3lW
fX05YmZidCg+PkdTRzltejNoCno5Rn42NHl9Z2lJcnpebGZsfF81SHBVc0d9P1dwciomZj9iUz18
OWJpcWl2TiktYX51PnVLPHtMZmNuZ3s2NjNRTAp6TFh6T0AqTjUpcTRDPWo2RThuQytQJWxFd0kj
fjB3a3Q7TTRZOCErRFl6TjJyQnVZYW8xKkhSSWFeTkM5bkZlZXAKeituczUkWDlCaDQ4Uy1gc3Mh
ayYhSiNEZGQ9ajFPLTl9P2B2KEJ8PE0xQC1VMTh0K0pzO1pOSElrMyR1JFU7RXl1CnozZXh5R2lw
VVFiTztTfEJ6cChoWHsmIU5CQG9xKmdifWVeKTY4fTUjIWtIJEJoSzxANSF1YnVeWERhJmQxQyNA
fAp6M3lZfSYoflFWTENWZHYpeylJX0VDeEtzSWxtVzhMWiE7PXJ0azRaYVgheG0qPSpaKHxQK1Vx
ZipSZzxJIVRhdSYKejg1ezQ+PlI3d0Q5N0JWO25LfnF1VUh4Xm1qXkc2SzJHWjEqdVNOP2lMbSE3
dkhCN18xXlRHYktobW5LK0tgR1lBCnpvY3AyPW9uOEx4SkheYDdeMWNoMGZ0KE1UVSR2SkIhUkBn
UV5SYHFvWD4oPWlZI3UrKzNLPm9xU3BHPXs/I1lWdwp6cDNtOTlGWGtefjw2I1g5WDFvS1lYRUgl
OHQyYnRHNjUodTB6Ri1KKV4+OGRqMEV2Yys5X0JkXlkpazlBZld+RlYKeiVpRFYoQ2xTNilUQzdl
Vnpoe21sO3A0Y3g4KSRUViZxaFJXcCtkcWl3PmkzMj8xOzVkPkhMck5qPV5PZEo8fUwpCnpXeHF3
OGFGSTx+X1RrTURRSFM/YHorS1E/K3tBU295JX1SQnU2aTk/QlhiaCVPRXgxT3VafT9uKFZqclQo
IUIxOwp6USEjV0EwTkJ4PV42ckpyRlZzREN1VDQpT1RHPElrYXoqTzh0RlRaKVFMXmBxYll1KWpx
KmtURD56WjMkWjRZcXoKeiZjOSs3JWchJXp4dHYjcDJmaEhibzk4S0J3ZkU8ZTlaPFlyJXVSV2ot
NUhkM2hUWVk8JnZlYGplOHk4UlYpa251CnpZQ1QwS2AqSnJSdjxueCVqQWY+JlkoJjIjPX1xRUVV
YEVDRWpsQ3A9WF5fdElvTXg+JWtCVDVrKV5jPXp5VjV3Mwp6Yz5ETEtZNiU9eTBpZ1dpOUJANGhC
fWJSNkt8K2pZQnQrfWk2TGR8YmAqczYyYzZHZT96R1l2ZFcpPXA5MH4kQWQKenhHQj5jPDNEeX5o
UEojdk5YaWVyT2w0MXhCbl8wTDw1TmhLNkpPLUx2dFMmWnt4akdLZklDNio5JSo/dHYqPyshCnp2
O1F7P21ITjJifDNERUpPfVI5dzExWlQ1UVZDKEgwdXwwbjljVktfQDJyJUM8KU9uWigzYVMwVXhe
NkckamEqPAp6OVJ+b345WGpoUEwpd0B2WWk2cjtIJHRSPndXYDAtWiZRZWRgWDBMWlk5LX5tZnNv
IUBkdD81UTtAfEs2JG1BQiYKeiRKNDEmeSk8e047UUFUUGVVfUJDe2xNXzxENEhaQSlCKWktO2dK
MXB3dXNxJGg+QC1MbFEyaGpYO302fnFkZ2xUCnpHbSVxSm0qRl5pbj13Kj9qO0BDX1A8Zk51Uj5D
TW5YSzVGZF53WFYqKnBaT2RTMUtiU0pzQ35zI1I7dG1YSU1iYAp6SEI+c3g8ck5EbEA0Kyo+UWcm
RTVZZkB9ZCN+WjlENFJ7fVpwTG03Uz1iWTB4I2s8PUg/PVIrPVckPUJtMmFVKm4KeilxZ0QqMCM0
PkdHbEhoUWBieCNrPU5qYzsrOURAe0Y1YHhJXnRNa0Jme1hJendCPWI5S2J1dUxGN2pNVFJ+TXd0
CnpOIyEpOUo0Jl5WQEpSZTlZIWIyITskckNMUFdaZkdgQztRemB1flRKZEN6di0+ZWA9Ujh1SFhf
MntGcCZwV0oqaAp6I0E2MCZiWShqKF5QQHRfYF9wa3RCVjd7dEZWb2VOV2xOQXx6Z05yJkRNakpf
IWsyJTJzMn5GQGxhJE02ayVoV2kKejd9fWhvRHVvYU43P2xjaFZrQDREdW5wRUlTJDcyJnV1RiZG
OyY0dWhDJEwpNkl6SEhVcnlSOWVtenB4d3NSWG1qCnpmY31wSSNvUkNCN1kxO3Q9KjU4R3N2N3gz
UEd1V15zcG42ViZkV2YjPypUUTAofCpycj1FZUUxb355MTxxPVhiQgp6SDdNMW42IWZTRD9wbSN0
blFxQ3Q+d3lRaSUpZSpvWDZpWEAkbTBGMVI8anAyWDUhNHhZa0Y3Sis7YnRoQ3whXl8KemZHdHtg
dmA1QCt2SF5tb04lMF5lWHNxXmZ2fEQlXjRkMn55JT9ecT0tTnYrd1I+dEtVVDB2Z2chOF5mV2hZ
THFTCnpGQEVPcEZsZDc+Zl5rcHJifll3TXE9Xjw8cGFuNlMhKkhAZzd0fWVRSkxodVdlTEdUa1Qy
UCtDazMhVGUxbGslKQp6dDlUQ3opb0MzPmV8Z3c/UUZ5Zjhja3xaQ14+KTNjYGIkXkM+akNCNEZu
ZV8xZSRDcXQ9NFVkI0t+fjhOZmE5MVcKendrMTcmRD9YPzRGUnpSKzVxQ2lJcVBmMH07SzQkdFck
fWx+QT91X0U9SlNlOypmX0RPPnJ7ej1VNF88KWRZKU0hCno3TyNtaXpDK0dOJiM7KWspdmtCVTx0
WG5xUF9efC10R21aY1Q4RGx4dDZQbj9gdXlwQlhAMWZWck5lUFZkI0FMcAp6RjQkODArQEFHOzd4
bDVXX3NFXnlOWUVTJDxDNn1gWmIxJkpDWnh+bllFYmMlciMxZCVNbjBwZ1MkNVFsd0cob3QKeiFa
YXs+U0BmWmVzYnt2P1l1RmxDUFJqc1Q1YnhCNEArc3FkcX14dnZCaFRuZ1ooTjFMVUNTLWVpPTVz
Z0UtVGJjCno3SEsrQV9PMjNNUEBzVW9jP0k/KlpCfEYpJiV1c3wyPG9SVTwkfkFwUSVmJVJVKmFF
YFZtR3JCPEo0aWVNQ2lyVgp6UF9+T1E7dHhyMldCZ1BRdEFiYXBSViZCb1VMY30/QH16KmdBQUpF
Rk5vKD8oaU9DWmhxZSlXNzhlWipVdmFOQDcKemhLS0d2dDAhfShyakI7cWMwS14laHw1bjcoO3Zj
K3VIeHxEZ0A9Rn48STtzM1ZUXz1EI2hlJTVwMlNvT2x5PF93CnoqSEtyekBlajNXP1kreGQrUkpa
OzlXWkNHRUdJe0VUWWc4aDY7PWR+T2lgPDdAVmZkRSZpVVBpPk8kI0c3ViQ2egp6cT5HJTYhY3U3
T0VmK18jXkE9MjNIZDZEYjkteUsqTlEjPFBHbnYzb3olR2wqSWIjI3FgZEIlTXZZPlMra2pKSTcK
emhMaUx6ez56S0t0SEg+SDtCLWNBTHpqYD5AKy1+P1gyYVA3eXBmOVdNZjhxMG0pd1MhTmtmKyZS
JiZ6RWpGT1V4CnpscV4+diNWQXF9PSk/ZEtSTWUrMDEwZzlPO3FBaWFUQTRkVis9PW13JWkzUmUp
RHdaJFdkNUNLMW00SXZ5JiZFZgp6TzhXIVNwY2dBPnpmVEdBRSF7SVBKTWhkWmBUNHtLIzduZERU
OEsyJipqZj1KOE8+SCppREp9Wkt9enwkQzNVNjIKeiRuWmhrNHYkUUlZek1hViswYEI4UyE9OVJT
WXppKlFHI3RwPlpZfGxZX2B9QS16STcpKHRWJEI5Ry10QyN6dDhtCno8IU1ATVQ8NDM7d01ObXVv
LWtTbVBtNVVRYm9ZN3VIKGAjKDdzbHB0Iz1CbkxfO3Q+cmV+cEQ3b0lGa21JQU09cwp6dytJaWxp
JW5TQz95a3MpdH5xNGxUbFpXKCM1XnlVVkArXkt2SXVRelpET14qVEJ6ITxDdFFoMnJmTzx6PVRT
e0gKenpJSCokVjU2SDB7RW5DUl5YckchWkc3QWpENHJ9USh0Mmw5KFAmUVU2TTw0NDtOeENieTEy
Z0UjfnQtemNvM0ErCnJRcThLWjVlKmZLRWFPezBLZTBzflFteTZYaDVtJUZPIXdWfUNFJT5qI25Y
JSp1aVd8e3g5cTB3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNz
L2ltYWdlcy91aS1iZ19oaWdobGlnaHQtc29mdF8xMDBfZWVlZWVlXzF4MTAwLnBuZyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5l
c3MvaW1hZ2VzL3VpLWJnX2hpZ2hsaWdodC1zb2Z0XzEwMF9lZWVlZWVfMXgxMDAucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYxMjczNjcyZDI1MzI2M2I3NTY0ZTllMjFkNjlkN2Q5ZDBiMzM3ZDkKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDkwCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeajZqXmkhM0hHVmIp
cGkwbCVsN0xWfkU3bTxSMmQmQUZvJHFWYEZQbQpvYm91bER6cjZLeUErZnM3aGJ7flpReCsmcVZD
OSY2N3BSIVEpNzgmcW9sYDsrMEg4Yj1uZzlSKgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
Y3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfaGlnaGxpZ2h0LXNvZnRfNzVfZmZlNDVjXzF4
MTAwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWJnX2hpZ2hsaWdodC1zb2Z0Xzc1X2ZmZTQ1Y18x
eDEwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5Mzk3YWNmZmRkODRiZDEwMmYwZThhOTUxYzlkNzQ0ZjI3
OGRiNQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTI5CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEw
dnBeajZqXmkhM0hHVmIpcGkwbCF2RV9WfkU3bXROak4jOHlwMGYpbkQlQwp6e2teJjJaWkg0VyNx
a2U2NyNqJCVJZXBWKmB5bnsjUHw2MDBJVlJKakNod1hlKHNzeVo+eFBRPUY4NWEmTUBnX3sKZHxH
ZUt7JFk1bG8lUE11Xj53bG5gNDQkcmpGNioyVW5nRTReRUdxeTIKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQw
LnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nz
cy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMjczZmYxMTFkMjE5YzliOWE4Yjk2ZDU3NjgzZDAwNzVmYjc4NzFhCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCA0MzY5CnpjbWReP2A4TzIpX3MzXnBoT3JHfVVuZmlVRW44KDlRVzE/TU5r
eFhWREVwRmluMnt4V3JMeDVrQkM7a35HbTxxUwp6bENqTDdpOFJLfVV+SiNzQDZZJTFTOX43bGI/
JHhMVSt5e2dvX28qaGBBVj1zcFhZKiEhVDxtT214Wn5SOVJMOVEKemRqK2hyZiZXXlAjZjlDIVpw
cF5WezthSUQ/RWxWTD9SZG9od3tVY3o5cl9ZTDc9RDY8JjhGPlBtWVRHXkZYfWMlCnpsPHpBaSht
PkdFe0RTMVE7fkk3PHZEKSRZaihmZD4tNnplJlROQCtGLXhzSTZzZCVTd0sjKk81S3xwRFJacUV5
PAp6SmcwTmQ4RkAhT3hxRWxtYH5VI3BpTTIyQHVAOEI8PGVjSSpTPGVnVUg3fWNzZDghKWpMQkQy
c2BwKDh2Ji0tS0UKejcxXnE5TWdsRnl3a1N0XzVGQ3IyRiVvJlVSKDVqNy1PPm1veUtFJWN0YEIo
anlzeEsrMW0/RylVeUlGczF0MH1MCnplbUdSJj9qR2FNMVlRYmxqP3YmQDBpWFMjZmktVmJSOXpM
RW5ITFA/eFF8PSVJaHJjN155UFdSIXRXJHlIIXpydwp6I0kyfV8hSm5UXihxaylWZ0pyYE5HZFB0
VF5kbVFJWmMlPTZuVEF5SkRYayteM313VU9pbEp1d3E+cz1UXyE5VikKenIxKURUNlZRMn5yZ2RA
IUpscnRlM319bX5qfWp1Q1NgSjQoZC01K2UtM0BFenpUSk5DRTJ6KXcoa0o5MHoqUUUpCnpCdG5W
QDRtTT5qVHJaWiokMDFTbkdvdjAmPUEtSnJYNUdlJVBjZTFWan09NVlRcUJEXldAbjRLbUZ4eHBG
S2B1SAp6UDsoeEtWKzZWSjJ8Zys/X0xjdDdgdUVsTDwmanpHUzhHZnZhMis9OEFAI1YreHNBajl8
RGtnKXZMNXloWEB+Qj0Kek4yS1pTQVVEJVFIYHg+SCtAT3UoRDF+UHl2IzBuYyYkITFrST9JTzAx
eXczakQwQDgwcXZjP1QqTnI4Py0lckM4CnpANSR8V1k/SHFwYGl4bUVremVKVHpfYF88IW9FMGRz
T2BwbzE9JGlfMWs8VW1ffWNhTVpjcnBxQSp4LX1SdyhmWAp6M1F5aDg7LTReRmUpVUlDSUBheXpt
eVY/NDhHYlI7MSpzPndzU1JpMSVaaXZkYCMrVHtBaWI2LXJmJH1NOHN6NnYKemI2RVJici1TbmlP
MndiT3YhTTQpbmJ9NlVWem9WWkVoNWtRV2hfNXg0cll5MzxzSHJISkxxTCtEY0xUNWB0JExACno1
X0o4I0g7UFdPMUdXQG9JZDFZPmMhODcxTmVhTShfcD00KGtiUzZVI3g8Kms4V2deS0hzMnR0Q3o8
K3BCeFEkWgp6UU12O2tWbTVfZkZfdkhgTXpycSRZJjZ1P2o2fmY8anV5YENeSTBPYDRtZlhLMGxy
UlkqVm9lSlgmayQ5YUw7SGwKemxwNjNzZn4tMXpfNDE5KUE4Xmp8TGVRU21LJlQ4UjduQT1LaTNe
SDtZYWVMJmhGNj50SVYwWWcpTnc3SnlzSU5fCnotX24qS192MWMmRH0tMXtOYkJ3UzJoI20xeTBh
NVJpRWNZaWwrNTgkOElEaDQ5YlBuekU3UjhJbjZQJVZ7MklaVQp6NyNjbHI9VjQ8elQtZ1AydX1E
RD55eXJSZUBvWE5xYnFvXl5MdmxMRT8lOFhhSSZOKE5wOTAtcHNVfTdrcW1iV2sKelo7WUJ3Sk5u
TnM8bTZHcWpWMihjQ1gyZSsjdFNPZ0lHbX5KJkRqa25oeSFlYCZwKU5UcT4kfmQhbXg5b01HeVQo
CnpuYUJvajBkfWdwUV5hUnI/Nm5XKSQ0Z29kKmBAVWgyZStZcFNAMChNd3t8enw2a28zTmJUdkRp
Q3UzWU8rKWVnTAp6PnVXKF5haEtGaj5pSi1KRiFeS2hLUXlQVHpuSmE7eHlIWXd4SmdyMTYmV2lk
XzkpLSUqbUV3b3tCX3xNOXRAUzEKemZAVEBxP2IyUWdsIX5fKFJvZTtmZEspeXxYRzA7bHM7WmJU
KXctYU9WdHRrI2RhUWNZNyRjcFk0OTZIKmBtQCtMCnplUCMkJnlSYkJqRld2fUIpfDUtMXY9KDY2
TV87VjFTV3Y2TUhuT319MT12YnkmOWwrZ2FQP3xwWHdwMEFGRGUjTAp6Jk1SSl4qcVg2d2d4aEFf
YCpvPUxHWj5HX05UWCVBS0hQejRiT15SNzJaWUt9YWxlM2xmZkRnTThIIVdyd3tCN0EKens/Y198
ZGgySip5PEh7YE0zbCFIRXRPY3s7SHtsSnh9KEN8Kmx2UFErUkFjVmA+OGIwNGMzN09tcVV3OyM7
RzwqCnpAbnpAZFZgOzcmXiQpZSFCfWNkNXRsPG5GKD8/dU0jfGAqNXBJS2UhREVVbDUtJjlNPXNf
M1luQC1QKGN6eVBRfgp6VFUzSTNiayV6PCp3OzlWKG9RdnReMkhga0JBVzs9Mm9BPEwxPHFWSUso
WntIa0A1JkUmXzJtUyt8fSs/Z0BGQnUKeksrZT1PV2c8KWU/Uk87bGxOdzAwPjB7ZyhRPjVfN0he
QGJFSmk3O2ZRNEIkTkdaZXJII0FlMSM4V0RUSGBpQiYpCnpDNkV0M0JZWSNtY0p4aCYpYjJDXnth
THF+cHNGTilRMVN1Y0NhQmFCVXIlNVBZWHt+LXF7S0dFaCkqO247Pzc1awp6PWhxJWleSX1yZDt6
LSNZeUlgOC1PZk1wV3o1a2dKRTM8WDdwdGowZG1QazVVckVmJW5WRCU8R2lpdzR3VmghSzAKekZq
eS1WQW5wT0ZKSURtPWpxcWFoUDBXYW08OXF2NFVNSWF6eDhKPFlKej5JITNlYW42PVVaaSFCeEc3
aShZQms/CnowMkhNN3dTMClXbml7ZFdiUU1SdGQtQSlfQXohdD5GO0l3V2Z+ISopLUF6NH15cnlO
a3omOSl3PkVsQTgwT2NgNgp6SG8jOUghWTMqUXg5bkBKbikhdzZHXmhiO2Vfbjh6cEl5WENOYEpG
a1BjKV5RPzJNc0xORmhNZ3JjWkktPCMxbmUKempIO0tGZj80ZUFUOTx0PGlVU0M1QnNGLTwkcStI
QEBqJVlrPm1RWn1aZkhMR0EjZCVzO1NaSzRwMEZ3WlQyU157CnpRMkJHMXhKc2JLNj95ckhUakpp
fDVDMHU9IXxyIT8qNEZMJXklM3EjKGQrZT5iXzJJOSEqaUkhMzB9NDJJYTBicQp6VWZgWj9MR1NF
dnR6OHNgYFRnNW9fQ1AoRmJSMFgkRmxFMHlDbkI3c3U8bWNMPkRQbUkyPXlPZ14qMiNjWTlvYFgK
ejtOWS0zVkJIWmpuVmNHUyl7R1o5OHtlK2w8WHxmNCVTKit4NTI2U0UxbUolNk08TnQqIX1jekVR
Zns/SDFVMGJyCnpeWTdjWE54SEA9VmVeI2ozSEBCUFU+cX5PJHU2cEVjZ2QwQ3JuSXNXZmZOMU1i
Q1pESDw3Y15oditaMFVjZjB7dwp6U3ppXnFLdVVIRDlEZ3AwRUFHZ0BAJHpyMzJkUXg+Tj13c2BN
RVNFc216Z1QyJkw7P01TVG8ma3kmIS1KUjNnfjEKelBHVHQ1MTVYKXdyK0J4KEc5bFdkO0BZM15W
bH01MFdiJjYtVGl5O0hQUzBkckZgckN9cVlxMjJLNClHI0FvRDBYCnpZdyRFK0J6QFpyXjUwTUF3
dUAkPyVmOSRyNFdISD8qMnw2NyZGWEZoWEJyVkZHbWcpNj9oM14tMT90O1V6SDAqSQp6TlZmOXdR
TE5MbkcyQHE+NkNHbT4meXxsQ2BpQ0ZmWWR9OWklK3hrbF41b0JKPzw7YW5lQ2ZjSHFKaDdZbDV1
TFMKejlGeC0oa01kY055WmVqWGgyMk57bUN3X3JYMU8hY09FJjM+ZShaSDgxUFI5NXdRQzM3RW40
T3t3O3szcTluMTxBCnpQQ3s7SFJEMyNBIUBMaykrayF+b25RMHwtVSUjdUdkJCZMP1poTkMmUilW
KG1iYE5oVXFyWXlzb01RO1opc3EheQp6V19Xd1YhK2pPKm5HVDgtSHhfSlZtRktePT50JjtwKUQl
JlolTnckZ1NQYSFuejhTbGg3PWtvMmFtKVhBUndPV3cKenBzejB+SyFzeyhkTSROQj0oQT1ra3A+
VCgqeVU2PF9kd0l4PmNINCtMV2wyODJoWGE2LUVVcT5SM3Q/RzI2MjM8CnoqUndUTiUtZmdCbUR7
ZnUqZWpObikxQEtHP1NnPGJ3M2hRfmpDUDlfZExwI0o5Rmkjblgzd0d2PGNMd1E7OHgwYAp6QTwl
cEElRTBTOzw1RkpodzhlIz9uJklBNWcxOUZ2IXY3WUMlR3hxZDx4MT0raGh0MXQ+Kjh6M2hZdGtR
SlFqQjYKelF8eD53QT1vJD1PKStuTG1nVFhXMzxnPl82ZGlBO2I0RVl7Kmk8SHhYMlF+UEF8Ui10
Sj1WMX40S08zaDdIfkNHCnp0TkZMI0o9YUA0UTVLN09ndmotKzNOX0lKVWpjfXgzNH1hN0BiREUz
ISlLajRzN01FPHYpYHlQJHtWfkdfSkA2bAp6cHsmaSlDR3h4MSlYYGxud2N9I2c7ZzwockExIzdF
ejhASn10dU1EM2JCe1dpZmJlfkxXVDB6WU5qZ2JfcW58K0cKejJUQ0RadzFyVnx3UHhAfi1IODw0
Xk1HeGZSMGFMcStfayt7SlQ8bWNreFdMc3cqSiVHJVlIMD4qUiU2ZE8yRU1nCnpANmc/TTNycGJu
ZkJAaE9kVWViOTxPRHtadCZUXjdwPjY9fkk/T0lBM0BCV0FHbVR3aVF7eDVDcXE8OGMxMEwhUAp6
ZEBRa15Cc2VUWCUkUTdec301biVIQnwpZ0t4fUgkZDhTYiRiQm5xOS1BZ2xUMmRHUjIoK0k7X2ZM
fFI0cCRvZEoKemxsZmIwTnFJKTc9Xnp+cUFtMVZ7KFBrcHhYc1EjNCpOSDl5WVpgVmZAKT8jdWVH
Z3RDbUdHWXw5VSN2fGhSZGctCnpRJTAjY0dJZlhDZHtZKUpCfnF5a087S1B2SHV8NUNrJihIbiVE
Rn5jY3RAfWorODd4aHMyZXc7ZkxtNSMyK21ifAp6OHs5ZSpZSSh1fGd0fHt4MUcrVT1EQTN5KTlz
Mnc3QGN2USgkWkpJQSl4JGV+NV8zTDxyPXZ+QD9hWis2NDJAITMKeiZuVHBwOHBeclJASUVzcWB1
aHpmRCZpPktGVn5BU2NpOFd9akYmVmVKb1BEVXkoQkI+RXhKcGNrOyU7IWAwQUFvCnpBY0hnY25U
OCVPWCZVV19ufCV7MkJ8PDZXcDJNTUd2ZDVgVDJLS3Y7bHR0X35IK3cwMHg2K1NsQURge0s0ITl6
eAp6KjE/RXBRJUx3aWlrKXszbnstK1lOclQ7ZkhfbmlEX05nOXw1OEBtOFJzS0ZWRiE2cGtAcXhh
e0JILSY4dHNpbTAKemRBUShHeUNeOWFuZTdfS1cqI152TUlvZVFkcEpxbVBwJSVweDNHSWZ0YndF
U3UjK3ZQeUkqWVR1SjYrNGB6e3M/Cnpwa3Z+MHg0Y19QRkhgLXRxYWZ3NSk+NEF1UTc4U2taISQ4
fUlOTEs7RWdyOzJ0UzE4aEVPNT10O1FEbVotcXU/SQp6Rys9RE5gblI3Mlh0b3t7YkpwfHxga30t
Mkc7NSN4ZzhFfnhnejIyKV5fWjs9S3w0QChFJjVKKVNZMm9mPW9sY3cKejUpQEwpX050Y20hKjVu
RXkwTTl2MGBTMzM7cE80VDxtdiUwUng2P2MySH5UQSV6T09eVDIkQEQ8Q3V0M3thZX18CnpBVEBV
emM+Tjs+NChaKzxqNWoyRFEqcjtVfDZhO1lmUDFqU1QkSTNtU24zYU5uIT88PUItWGt6Rz9oUUg7
QGJ1JQp6bUZZRERnYkMlV3R7NkxCcnMlODhMfWRlRjlwc2V9ZG1JcDRsbXBAVGlyOXEpSktFU2E9
aD4xOXBfMD51I2UtdkUKelhDVSg2Z0F2dX5JN0N3KHhkJTBlNTlNTkx3XlUzN1pEYnNCcmolZURD
ZXh3OGEzR2BuVGNYVk5MNntCN0hqQGkmCnpiVkJ7O0FwRXRIazc2cTA4REo0OGRTeGQkQyg7JEs2
PUZwVTx+bDlwVm9UOWFyV15WdXslQmNuNGBlSXBrT1ZDfAp6JClBS1lHX2B5cE17MEBCVWIzXjls
cWlfYz9PTkh8NFVKTUpXRG93TVZqYWN5Y1g3fTlnPXtPN3N3T0IrezsrPzsKempCbyE5PytuZClp
ZSN4NUliRlctekJPbzBjNHFAOXdHVnQ1O3BOdGA9LX5aZ2N3IypgbSgkNmlieHRaYEg9ZT19CnpG
I0dafjUkJUFVbn07OFUjdFJlbTBKKEpUUn08cWlpfXd4bVV6VndWSWcyJHVFMjtHTntoaFQmR0Ux
aTtfZmkoXwp6OUtLWFApZHMxUSlYblVocj91WE8tSGJLRSU1ZiUrLUM+ZDR2UihkZ0syTUx+bFpz
UGhheUoyaDElc0Q0RlZzdHwKektGKStAYGlOekxSamc0PUs4QCoqMD01Y0U+JT9GRGMoe0leK2c5
VVNrPDgkJl5xRH5AJVcwaTRifHlNRypwNGBOCnpofUkhbHRUUkk4RXgkK0BWezAyQnIleHEjTz9V
bGhPe3I4V3NhWm5aQ1pxME1LOSVBWFUlTURMVDszPTBBOShCVgp6OVZ4eHhKZDdqbyRodzNxOzNv
P3lCTG1BPWF6QlVyZDk+LTxfQU5zMG4zPy1JYyo2Jnl0YkBIfj8wRSgqZD5UNW4Kei1IaUgyanNE
ZjZ1V2hJRCUjbj5Tek9xckZDUERmVWN1NVFQZD88KD13NnB2MUJFI25zeFN7biFVbkM5cUFoYTE8
Cno7M2NwWjlBLWUkK1kpJWI7d0AhIVlSQTlwJUtmOUlIR0dnXnsrcGBtaDtxOGk3fSZlQFYzRVFh
TXNJdEVNUyY9WApwbFRAJDtrMFdjQl9qYjtjbiVfSWR6NEhPJFFVKmFiZjR9K3dpP2U5Nk4+ZmJx
e3tpfFcwQChsbgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9p
bWFnZXMvdWktaWNvbnNfMjI4ZWYxXzI1NngyNDAucG5nIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktaWNv
bnNfMjI4ZWYxXzI1NngyNDAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NDFhMzcxYWZhMGZiYjA4YmE1OTlk
YzdkZGYxNGI5YmZjM2M4NGYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQzNjkKemNtZF4/YDhP
MilfczNecGhPckd9VW5maVVFbjgoOVFXMT9NTmt4WFZERXBGaW4ye3hXckx4NWtCQztrfkdtPHFT
CnpsQ2pMN2k4Ukt9VX5KI3NANlklMVM5fjdsYj8keExVK3l7Z29fbypoYEFWPXNwWFkqISFUPG1P
bXhaflI5Ukw5UQp6ZGoraHJmJldeUCNmOUMhWnBwXlZ7O1h7Mz1Lc3p5TDF4YldFZ1QoYWhyUj81
aE0hPHp2dVMmbnI2ejZmaUBKPncKejxAP0hzRyFRZzN6YVYrLXhRM2xkdGFkIVU8NmlHel9lbkdI
KjJha1BfcilvMUQmOHBeNU0pPGk1S3ZtNyt3KzFkCnomKnxLQU0mNk42PyVvfFhLTDd4RFZsQil9
Pl9jOElJajZXeSo3SEpvJkNCTHVvfm5qPig2M3Baek8oVnZeWnVCMwp6TVlpZ2prd0E7RkV5fEd9
MWpwaU1qNnxOVG03VXlpdz1ARkRFKm5YPD5qUiFXQDlYSXlmJSRGZCpKNSpEMFowTG0Kejl9WlF4
eVR8eDVmdE55P1Y+RWJKei1LPmJWOWdzOVJhWFVQPF49O2U/JkZxeGo7NntpZVItYS1ASDxKXzRH
aVdaCnphVnUoS0BhSmNmXnc8ajhWQSppUjN7RThue200ejVUYT0kJXJYa2dRTzZ2I31MKW95blZ5
R0VFPV81MS16NjU/SAp6RGdHQTgxYXd9Z1hgTmdGND55Y0ExS01LaHFsOEdPbWN4PEhwOFFLcWNm
Kj53Wj9fLSgzaE1LXl5hKihnYUZ2QkgKemlJQyFmZ0g0JFcqTmJLSWFZJlQ/JSYxM2BgS2JEQFMt
MGB4USV2M1RWK0IhO1JDN08hKzFhOVFDQSRIQDN0UjtrCnopU1NvUjcoczQpZnt6TX1lV2dGTnso
Wkg1ZDFPfWwpZiRydVQhKVEmTkltWHlac1R6T2Y5VHdjdGNTZnIrTSlhSgp6NW90TyskanZtLVA0
KXlrSCl4fGNPNXhlYj4/IWBxR3ckKD4mYXhxTEw2eW9CJHt2c01YZ0xfLWJ6QDJKX3RTOTIKemR2
WkctK3ZLbEBLNFZyKDxYOEQ3Rm01JWV1ckUjPFlQPDFZTEFIYiEhRX54Q3pJTUk2OHglPVloLXck
TDYtdkI7CnohYyNaMl8kTGdQVTtQbzNqJihjd3I2Y0toaEY9VklMRiEzdllRdmZNdkxZdFZ7IWly
IU5VdFN8c2hqbm0yS2wrdgp6OU0qbzw+RUx7V1F0QForRWEtaHhYMH1uVFNaeG5waV4jS244T3g4
RmdJU3xoY31LSlE0dG0qSE8xNnVpeyhPOX0KejFZTilHamlRdDZmR3FgQ2orXmB6VWY/OGhrXihU
e3tjT1FHV0ZQOThhbX1pczI4QSE1JXtSI0VOdjhmQ04hajY5CnpsPHZUWG1geCNBajNwUn41JCF0
dzh4NkhKQlQ7dmVxbEkoKGUzbDVmMUowWFFmVWleOV58Zj8pOHBwMDIrJXNBWAp6cjNRU0VBZ2hq
Rnk/a1R5MmJ9WX41VllxczVHc1NvI3BGTGw7KTBeeis2UCpgO1Q1TXUmV0x2PWJ6STlRQDlLISMK
engzbmU1e2tUdXgzTCNiISh0M09UZnBtWTA/KDc2bnFUN3hXQzNDbmBoVTFmMWhaanhiJUN4bVBD
YWZKVHplY2JvCnpoREh6RWREeiR2UzlVPk1FSygyej98Qlk9SmUkWEQ5bUItS2tlbSooZC1qXjlq
JDIjNnIkRHo/cyktVENEQ0dDcwp6OD42UHZqe1krWUllRkFAcVkyMlYkKWF3eUBxITlBNHJnazVi
OVRjQztzOUlnXkd8Nm5EUCs1PUZ6ZyY/KEw9dmMKekNiR2Q+ZlN1fkA2ITk0dGQrbyNkQHNpZDxj
NF9ePiFFSTw/N1FCaTZ0PSRiZiNnezhSVUNqPlgkcng3KmNhd2U2CnpgZFNjSiskSHNzZE9qRSlP
I1liczU2dm0tRlEkN3l1SkpEXlpxayVoTWFJZ0FKPDJ5Yl9NRlF0ZV9pOzYyU2NUJAp6cGppZll5
Ul9FPXJRKz5IKXBtbHItVWR6ZyotIXxzc3coRDd3SnZDK1NmOGJiOTs7cTgjej8wcCEhYnNke3d5
fDUKenBCYU1IRS1WZT5pI0xMakhSYU1MdHAlOSYoSENuZzdTdzk2alZ2ISMwayU/Rl5LNyY9VClt
blluKUQ5KGk7NHg1CnpeTkpUSndxfnB2O2tIQCNlalRkKjQ4fihKKHI2ajM0fG1gaDlmRURqMGlt
KX4rJUk1WHBoV3ltaFQ7X1p0eXxRJgp6empQZyMtdWZBSFo8b21mNSN7a2xPQz1VS2N4eHcqP3he
ckt3d29aN3d6M0A4ZWt1KWdnTE5Sbjw8S0lkYWpII0gKemVBKVQ9U2VoJEd7WDtFdyQ8WngxWWRG
S2xeYnVGbWFSZEklWEk5cmFOPExIMkhgUzd8RG12PD9KUGRfOUZhUnBoCno3TTAqMFVHPCZ8X0JH
Qzt2e1RLWmU2aClzJFJAJUlmYGMobWZpdT8pa1NxJmxxJnh4KHZgX0w3Y2VRJn1BeiooWgp6a1RX
JCtuYUkrQWB5R2s/cXlgZGdgV1NiezZlJkZONFJYO08mK2ZycjZoamMrMzxZb2t2NipwYE0jU0Up
e3ZremMKejNGTCMlMjtZZFg5ZXE8R3dMNDhmZjdZIWdzNEJASGx6YyRBMmBhVjMqQXRrKytKWDVI
RFk0Qms7dUI0WXhidTxYCnpgTCYxQnlxTUlxSTh0YFVFfF9MSCh+RjI7P3wpeyolNTByMXNJOVY9
QzZiTy09XkskQ1NpT21sVnF6aHZTaT82Zwp6NEF6UFRoPGlabDRsKTZJQmZKPVc2RWtBdF99PjFN
KkdjY3c/S2Z8OFBuaHRiMGAhe05gQnFzYTM3Sis+d0MkIWUKejAwaysyRWd6ejtyYmNXb1VCJUp2
cDhXMX0kWEQlZTM+NHk7O09aMWNjVC1PI3VXNllzQEN9UGFgblpyTkt6UigyCno0ZSUzKUBRSTRT
RSZFIWxXYDV5MTRRaGJlcEJHJV9YQlYtTyglPGFYNkhWelJKN2VlKlFWM0FCPX5MV3lJb3l7Vgp6
cXZ+YSlVPjV0ailAOSN8O3NDLU1OZXYhekdESGt9SmRwR0NgaUpGIzg9OC1QJFhva3VfPUR3JUN2
M3tVN0w+Z2YKelJRPzwkdGBjWipNUDVHUW1ibXgjISsqIXp1PjBNZXdSTzlHRkdTe2JebV9mSi1O
MD9qQEVxb0ZmPiRraGorRXxACno3cjNXZSZedFJeWVpyeEtlKmQ8WUp5NEcoOW1oXkdPeFo4Ymkz
biNZdG9ze21gdHslKUxqOHdXe1l7alYrUV82VAp6STVfTU1TYS14c0NafnAtSFJEQ2ojPCMwQklo
YWNOQD4yMmFnWHFDTzBsNDQma3FDdnt1KVR8KGx2YH5QS0BEdkUKentRSV9UbENINXoqZ1IhPkxP
KWs2N3teUit2V3gyNFUyXjJPRFhwd1Q7NnkrNiskNW0pXyp3NFdZJiNkbzlkQ2VFCnopPnArWWtk
aHEoJERobU1pYVlYZXkhQE4lTDI2dXooJGFKIVFUe0JeV3V9VSReOWUjNSk9YytYRjlASWxsP1pt
TQp6bE5nSGl6KjkhdkRjJnV4T287WlZ4YmBRIVNrMCpnbmZ4V3ptYlpoNCg9JUNEJXFQPzA9KTtu
JCZ6YVdfJFVLVjkKejhheGRjTiNBeVp7UCl3aj9We1B9dk0pWVkhPjZAfV4+VStpdiRgOT5uTVRD
UGpOPnoleUYmM3lmJT4rVEAwdmg0CnpsQzhYYTZ6ZW8/JT1vM31NOHthZWJMSGNPe14xQXI4cWlN
PUdxdWY/Sm8pcTVgLSs/c1VwZz9RWHlFVXBXU20rbgp6JEstVXlxa0k8Uj8qM3dUVmZXRX48QDI8
dVM/LU1WbDE7anpBQTgqaUw0eHNpP2I/Qk5pPFVYZ1pBaCR0MmVYMk8KemxhU2pQNmB1fihGZldB
SHdqZElDVz9CaXwqWUIkNC1ZdC1lK3VyRHhtN3MwQy1OUmVUPSZ4SFk9TkxrOV48KUtfCno4UXZj
OGE5QFJjcmh7VXxqUmpqLTxAeFhKZGZEaENIQVUzcUBgZnhWN0RGfFlaXnJIPWg5SiNNLTE3Z082
JCM4RQp6PTxBQ0xQQHgpe1VRNjgmYG1FVlhxYD9DeGJ+JTtKSjx4UXZJeHNleShCWnEmIUx1cjFf
blZnejYkdyRsS14manoKel49eXE1XlkqMjM8QFcwWl9LS3pEYlpMbGt5QzVKOXQ+d0hMcXVydX5v
KE9GKWhoeiRZKnxYPlpJYnN3bnhSdnJ+CnoyPXJkT0dWdUR8eFJscEFaRTwwIVgxRiglQW5wbF5A
Vl5EM3ZiTX1xeGV8Tkk7VFRpWnk3KElNO1I2OVJrQT5hJgp6Nmd3WUUyc1JFelFfTEhtV3FCK29n
TWsoZk1hU0Zlb0RxLSFIa0ZCX25YdDUrMm5jRnVrOUJRTDFJJm9CMXpaaSkKellXezZfJi1JcDFs
Kk9WUkEjIzFJTFFTOzVSey1LXjB3R1RpSmJWU2lATEFeJEQkO0BKPl5HezZAJislNHtiMyhzCnpD
fkxFSGlUdigwYiN6eHQ/WUowcl9+cFVaTX5tUSg/PyhuIz4mdEQlK0BucT1BYmo1KjhSIX5VbDFg
R349cUZKNAp6Zmx8bThaRENZZ3RyYDRMY09wZ2lKWVg5cVJZNTtEY1d0aX5QbVMkVkIkRS1adF5m
NCl2TERPZV8zWFRxNV55bFcKeko5UEttIVYtOHNBT0pYblVmdUZOSWYwUjl0Sy1wTnMyaE8wNHpy
NjIwfTVCKE9rPnlCKU9mLTNzUDU5cWZRTmJtCnpBNHt3ITJAY0I7R2JSKH5zelZyYk8lKHc9NVMh
WGBvQG9AeCsrd2JOX3RNUFQwVjxRaEd7VWVKOzgoeyU9entMKgp6V2QwVWdRbDFmTkkhSCRZJGhY
SyN3MyFHdm4oNzROYil0KkZudWNBQWUxO2BaLS1CMDNDSHlCIzJncX1nO3FzfkkKemx1O148T3gr
PGotO19tNWlCeEpzUXh1cXZqczdRT1dNcG90YTwwKTktVnY7WEhiJXc9PmMpKkk7RmdzYmZeKmcw
CnoyRGk/SFRBcHdLcTMrWXdmTnNxZDNpUCV7aHlLMWl5dVZaY0AqMHRPXzMrTjAjR0Zzej44TWpl
SjJVSiVMISVoaQp6R1lZQXRoSGBFK3l3QSp1eyhlSj1pYTNoKiVrPzc3OXJrLUs8MFZaQVBrbDtU
RlVibWVpfCRmcVdPOCFfekl2cXQKeiRseSRWcmxINDZubnBYflg1WWswaUJKbDs9V3VBND5+WDQt
ZiZLMHlXZjQyaCYwYjMwdEBOWVgkN2VnUTFGcCFhCnpidWktRDZjV0NXViZ8UjFDWUBHOChxT21X
aldlWDNlWDdVZ2daUEdpbUF9c29PdVFkWGU0dVojMj41ek4+cWxJMAp6OXhrfWxFPXROcFgxbTYq
bkZyMkVRM3hzNzkhXnNDbGRESllFJG0ocVl2M3E3Pn0xUjc/aVpXNz4kfiolekthQ3wKej0kTj9N
RSQ+IyslVCZNWkNgZFcxd1VsNlopSmd5Q25+ViVLJmkwSHxpd0UlJD54c1pXM3RUZlp4SVVlPHhB
aiY0Cno0SHo0K3tfU1QwbnltLUxvSGhNfmUoMTEwJkQhVV9wI0luXlZMSW57SiFZI3omPD5QY2lA
cDtjUnV8ZD1JdEl3Rgp6MWNsVkh5e2hIP0BTRHwoWmZxaV4wRFExaGN6SE43eHE4NWgpcnpRcUxI
TVgyXklrdUs3RkIha0k0MHMkfENZN34Kek5YXntfVWpOOH1MJU1lZDt8Kz00Uk5UTW96bjhLVDsy
dGI3N2JVUENtaW9oK3JaQmZJaU02Zl9QMzRjUV9fbzFHCnpXcVFwM1ZMfn5wRTU/cU9EZiVpaVFR
M2Y0MllGQDA5dFEqJDx2PSpUQjZndntqeTg3OWRBNmlOc057NUVAIShrNAp6OEhoYWlVX15CfjQk
K2lIP21eQXJMJUE1KkVmb18lOHlTYjNESjIrKCQjaUhpOUxPbURtTUY3KjVOM24yJkUhSEcKem9s
cmtJMiFITTVxbk9IZzIzUTEmVWZEXmBpRkN6bGc7KWBUeGxSa1kqaSFWOT40dl9FS1V4O3QxS0NQ
Q0J0Z3FnCnpAK1RuO08pYTB1a3lfJWptK1dqTkI/PX5WeUg+ViNMISo9bCpAT1M2U1Z5dF9VRUgm
TkE9P1Yyc3RIUHlLa1ZOeQp6PEoqNzNKNDNVY0IzYkgxUE0yQEladztFMC1QcigyP0VfeSVjKTR7
ZkkoV1lybz4mamc8I2Nqcm9zKXsjamkpZEsKeiUpV2UwTF80Nzg9SFo4LUB4bndzS3JXczgpeGBN
QjsoWWBDbXUyYy0mU0godk4tRigqZWBsP2MlK2wkfHlfQUpKCnpoY0RHbndMdk4rYnU7X3NYfDE8
bUgpR0FQYS00fXtjVVdZJVk/bldyJihtWjBxfmE4cispViZyIVFmQGkzLXdafgp6azI5Zn1LNE12
NTY+QWllUGg8THtmVVV5UElgSjFqOTxIQ353JD1EbkJyfHZgZVAkNUthJDBBTW9yejhrd2o8NlIK
enFJRjBYPnhAdSYlUCRoZip4RStPPX5EP18oX0tHV1EhMTU4WUwteTkkKjZtbVBvO1JwKkRsNWxt
LW1WTTJpYGgtCnpNQG54djU5MF90dk13UERfe2w9YiRpT218K3xTe0Q5JlAlemVUJEdnWDZBa2wt
dGZVRj50TEBMZCFCJntwTjM5dAp6SD4zVmhxa3J9Mll1bCtqYjdVaW91V1ZHUE5zeFg3VWViYSs5
fH5kej9kKlFNJG5nMERaZk8wYDdmQXk/MnlNbXwKemNuUnpVaFomSWN3Z2pIOWN1VSF3K1ZTdFlh
e3AqKTRJZ0JmfEU4KXNxTVl0QjJLSF99U2ZzRnEoYzlpKFE2UzNVCm9CbyVESTxIKnxPeWBBJTw9
SiQ/cT98Z3VgbHRHWnEtPipLdjt3OyolKGk5V0Ble3s1Qz1sfW8hCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1pY29uc19lZjhjMDhfMjU2eDI0
MC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9j
c3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1pY29uc19lZjhjMDhfMjU2eDI0MC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODVlNjNlOWY2MDRjZTA0MmQ1OWViMDZhODQyOGVlYjdjYjc4OTZjOQpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgNDM2OQp6Y21kXj9gOE8yKV9zM15waE9yR31VbmZpVUVuOCg5UVcxP01O
a3hYVkRFcEZpbjJ7eFdyTHg1a0JDO2t+R208cVMKemxDakw3aThSS31Vfkojc0A2WSUxUzl+N2xi
PyR4TFUreXtnb19vKmhgQVY9c3BYWSohIVQ8bU9teFp+UjlSTDlRCnpkaitocmYmV15QI2Y5QyFa
cHBeVnt3ekl9Xk1CYERtK3NIe1RSMXc8NHQpdEEzX3JvYlg0Q2RDT0hKQ3w3ait2Vwp6JUotRU1Y
JmA4N2VuSWx1YVNjMF9TbllVeCRHelVjP3ZyTlh0Jklgbz9+N0MzUko+Qy1BanEhM0FmVThEeDkw
Xl8KenAzfU1Lakp6WUMrYFQoJmVnRlhRIzlFa3sqb1ZBYWEhenJadG1sUkZud1FQUkpYSDwlcGtL
MiplUGBwVD1sd0Q3CnppZnErNEJZX3JVVGErVXwyIyY/aTc+UFZ2RD83UjRaZk9MUFR7ZTx6KjlT
YSUtcStKWjBgdUZAdWZedVIwKzBlQQp6S09DeFhjYVFPQjB4eUwmJDd0fWRmWHt4PXo/d0hJczsm
eW8lbkpyYCt7WjJYOThIeTNgdG0kdTtkaGQ8OHlMKC0KejsjU25lO0xwens+OUd+RyFMczNzOEp0
UUVgak1NOXc8dGZrT2hjO3FsLTNhe2hPJUxDI1pXVlQobm58dmQ8cHpZCnpRdjVCRjNGeTJ+KD5s
MlY5JlErSzJESFcwTSt1UW1FciVuWUpeN2NLP3VJcFUtKT13bjcxWlotPUBhcjA7M15BWQp6NStU
SXsyYihlJXR7MlBaPEIleChuTmcxPl5IS0YqdnVAK1hyPGw2dyN8b2t4c3BmdGR2JEk5ck5fR1Ep
N3F8KjgKenM1eV9yRkBvSXExUm9VYGAkflVre3JoVkJeMm5fOHQySEpTeERGZmxrYjJ6Wit7V1Ns
fElvUD9TcjI9TXZfdHBiCnpCaHF3dWtlZ3x1bzlxZDhacVA8P2wpfCU8KjtEK0pYV1ppJW9uPUdo
Zi0wM01sc3o4aChRK2B2PiZCQWNAMkJDNAp6X3ZDZ3d3I2k9KWVhNVZvJGdsRUVWQkJnX1ZQQmoh
KU9PPilmQH0jZGc2VUxPZUM+TEJIejw7KjVZO1lmRTBsTngKemd7Tis0QGxPfm96eHBGNjlxVkBW
T0duYzI0OEl1YWc0QzFUKVBeKGhXa3BQIXtoIUpla1h9bV5RI2IyQjRmMW9UCnpJanNHeik0fS0k
clEqLXRTPHc1WSV4dDR2dkR6Tkk3TGpOREdMfDFUMmVVQDJAe1ZUcDlyVXVabHghRDJ7clVKewp6
M0ElcFc4JH5EQzBiMl5QOTU/d2J5dWVCMUJuNG8/YGBMblgkVWY5RjxDO31ONEdMZEFue1NaU2xU
N19QbENzMEkKekRCWGIlRmBHaUw3KXZrfEJpZVRXSFgzU2NNeHlRX00rQGluYDc5QXwyYj8jcjBB
SHVIPnVjJXFHPiU8NHhNI0UmCnpOKTdsUkt+XjJWZGlsb1k0PjsjfUEheUhPQVhFbUVpXitlQSMw
NXBhd0dYcz4heilnU29EdUkjPmJSQ3EtcWpKZQp6WilyPUFgKkVNWDYrKX5lcjFrZHYxTF4pMC1Q
c0FFTTdKRiRPNkc4PjQ5NiQyNGxrTzxtMSUycE9qdFd3ZXZNI0YKejQyPlNSXlJUZlV1SXolaVNm
bjViLXQhIyNjczdzUUkpO2dkQXZxbW5fdnwlSTlrO2ZDUGwwWilSMStoTlFPTkpOCnpIJTNqVDlz
T3EqYWBMRipNaVk9emxTU1FaO3tfRkw5TTA3QT1JbitPIX53Un09YnpHRVFwazIhVmMwcClxS0FI
Pwp6T2t7KCUwNlcjKURkSUNRX1MlUUA8MFkrIT85JSMkZ1dKJSlFTy08QlRlfS19aVo1NHN4fCR1
JWxRRklzP2s0LUIKel58Y19keEomOU1eP1djcW5FV3lNQURVQ3ZVcmhJYVQ7cEYtK0B2WTFpajAq
SmR6NWM+Pl5ZWlB7PGBvQjR+OXhoCnpMOS0wKmM0QEIjTzJ5bFlzX2dgS3kkemJ+diFNYE5SYU1O
RllGKkdzdXw3KT1KeXlNSGpGQz1IaEdVRUB7YUl8Qgp6Sn5JVFhVMDUyJTdqRmI1WXMjZmhTXz80
a3FjN0gwRVU0OUI4KENoZzAmSnpVPUdrYSN4T3oxKUgwZDRtN1puUkEKej1NXnRkWXxVNlQhZm10
ZXtXP19yOEh+cWRxfHF7NUFNVV8ySXQxSTQxNDNufnhMPzQmSyNCT0I0ODx3KlRlcWxsCnpmOVgw
Zno0YkhaLVkkfnxCRmZ7OW1QI3llQFlZVHEtQklDZlkmU3REWkRsI0d7WnR6MDJKMWtDJWJgVV48
NVppWgp6X19GaSF1ezJrWGBpRU5WbEF+TDIpXkxXOD1fOVZCO3xCYmomI2JPPGx6Z1YzWj5sOV9S
ZG0hKGNeQz9KVTt0RjAKekVoQG8xeTZRYV8+fSNBd1h7VlkrYENea05reGhnYjFQNWNCMCV4dXBB
WHlnOU5PPVNuWHJKVUU/clFne0xjc24rCnpBWktjdEdMZmJLX0IjXiZOZXZ8MF5mQiY/RE49YWs4
fDAhbnA1MjRMRDI1PXM4NEJQOFZsKDM9amZsTnB7WD5lQAp6NjM3Umk1eHg7JkpObCtYWUltQXx7
O1hSflAqc3ZZREVXWUo2STUhNnVPfjJ0d0ZDMVpRZXZCNyMzen4oYXB4biYKel5KQD5NY2A+UEph
aXJ7eVRgPGpacldYO3gtdjcqcW1EeEkzUCtNZyFPQyVrdyhsO1ZPdXpDfDgjbCU4VHY0KEcwCno3
XzFjdzVjaCE4OWJeTGJNdEN2JENUN0lPQHhBPml1YW4tVitpJXxIby1wQTwxP1Yta15SMlE8NTtD
byVYeG1MYAp6MDE4dDRUMFRUd09edylHeHs5T1NKXjlffGtnd1hgNyUwUnchUE9+QD94dm5mVWVo
dk47MlJjO15sPjNrZmJ0azMKejh7ajdwO1Mme3VUbFRlOSZIVGMzOHFAJV9LUUZrPCZue3Ztck43
eSZDentldGNFLT5ycSE2SEwpMkYhYWE9MCUhCnpNJUJ3byE3VFE1dDtAYV8jUX1zamt7VWViV1Fa
OHtjcCZITl4kKkpmSCM4c3BraGt7UkBDVkJpUHVQQHlFaHV7fQp6c1FmdWhUcVYlcmlvQVRwRXBo
TWZoeVJZYlZmVldgWXdMRlhVV20tPT09SihieU1mITU7V15DVjFnfjIxOTRYeCkKekZLfHp7cG0l
bi0pLURSZXtRaGsoZCFRYW9JKnklV242aDc8NkF7aSpTb2ImQl55fFNwZyEmSiRga04+endVSjN4
CnphQiRjaXU8blNOT2ltM3VZc1FQNWpjLT9OYXhqKGo8KXp9OzJob0ZuMCZ1X2tCTX1PQFZTNSlu
RFl4MXBmKlJRUgp6YFMpJHhCd2JeYnV6QVklZ25xN0NGcGludFdFYSk3eVg0NG1RKDlTeHo9P2tC
eGsqNnBAdzQyJCo+KjBGSktnfVQKenRnbmgpQVNGOG5qejU+aDY/ZiN7Yz08UWlnVmVZYnJLUmFl
cVdvRSslUzt0aD1NI2lCdGVOaCZVSnlWOURpUTJoCnpDb3ZUM2Z2MWVUUUBtU1huR28kIWFxVWxk
djZAcDBHV2tvYUVwRz04cilSUlJtYHxwfihUNjJocEVJdT1rYS1sSAp6SEZ6MkBsRF9RKmBSfUs1
K2VOZHtXblgtKmhFSG5gPipZcjRXXzM0JEdtVklvOE9MV2pjWks0YTBgK1l2LSEqfTkKekJ3S207
REFzQShuREktYGlIQDtgPWdQK217bGdGTEhLM20kV0A/KSZkR2hEQV9aMnhPekkwJHAoWkp0SCR2
Q3hFCnpqPitrWU5CSnpzLVRsU3ghdFNIfSVJOWZRdiltYyFDN1gwYktsWnY0ZiZ9QzMrTy00azdB
PHB9K21LbFE0clQ9bAp6Q24ye3BEbjE+bVZPfEtZWjl5ZFAlKE4xXnVpc1Y4eTt+cGB4NHFGWEQ/
IV9PeU45PXcoTzxWKiZNfTFJPmQ2VzsKekdyVD9HO2wydkBPYjVrXjh3PDl3JUpiamJefEh9UFlL
b31JPHFjVSNFUVY/KC07Q1ckM18rVGl4YUkjbEQteEpUCnooQU82Z3BoN2g/eV9VS21ealdpJk5Q
YERYPn5ib2JkIVhyVGJ6cDJacH5IOGxnSilJMz9sJihiRGlXZjhnRSY2Ygp6Pik5R0I9SXUtNiVJ
KCgrPj1qR1A+Q3pEOGMwb1dJVEZaR2dNIVE3fEpyVVlxNCNeWSh2dUR1LWE+T1dEYTRZNH0KejVh
XypsVyNJTF9hVmY4TCtUeX1jJjJWb2pMRUlBLTtlUUs2V28/PEthd1liWiEhZjMrYkA0VWkhdl9M
dDl0KnFrCnpEUndAVDVOc1RicmtGUUEla28lRzFfTGJ8aWpLRl9JVV50ZVkkXzg7R2h0fnQ1Zkll
UzlfIWtnMkFDMEwzJURBcAp6KSVARz1wNmV+MkQycWlzTGdlflpnXz54QXVLPmk7MVZXeDNjPSFz
MjtqXyppUkhPc2IqPjYtQzxxY2o4YEA9ck8KelB9WE1ZNjhZVjA+Z2NZUCtIbz1MQFhMZCpqfjJs
bi07V0hnKXxjQ2l4a3NIJEs9ezVyR1NEQHlCJUxJfChOQ2M4CnoxRXI4SCtRTyl+U35Le2c/bkh8
MmRCOFNLcylCeFE/JUd9fW8qTFYhTkcybSpUbVJ8cFdqfmdgPilDbEpDRSNGJAp6Y2opZkJnKGRL
T0ttYyRDeX1JUmxhc25nSVI+en5rUCZXV345Y0M5NTF7QUttblp+Wk1zcXVwNlFRZjdKMFQxO0MK
eks5KlFkNSooSHhXPXRsfFJmak8+bmtvVyNBVTN0PkprdXpXeHk0LWw/eG1UdjE1X3IxWEBwQGR6
XnsmaiY7e01xCnokXjAkMHEmeT9rYmRaaClrWitOZlhmcUxUR31RXmo+cUhsVUg0VkVLYDN5Xi16
Nlk8Nk84OEhmNHZeO30he3QtYQp6RFdnO3puWXUlNnpBMX5BNX48WE5yWUpCUzh+c25uJGpJRE88
eUBtSnlkemklWkgkWiQpUXVaYXolNDU9MW1+KX4KejRRYHpZd0xJWWZMZnhtVTBvfEdfNnpGWUA0
KmgrM2N6Pnc/PFRXRG0+ZnhPfmk4LUliKF4wMntjNHBYamhESV4yCnpYQjFMUDRkdld1YyVQWFF7
ciFkIzY+JHtybStNOEVKTTh5ZiMhSCRLcDhBeHdVWG01YDdUdS1KJG1IZTxlRHo4UAp6a2luViFP
aGI+Q0c+dnd8JkF5NDE1fV8xdyYqOUs4KzJkM3YxTitAYSR8ODIwbzR1NjBUakB1JmtJIX5xMlY5
WDsKej50TXZRREl8TyQjbSttMk8qKlpIcWBfeyM4KXJ5NmAmNXN+Mmt7TzREdTE2Rm4wUDsmXygw
IWU1JUJlbCl7blUwCnpKWH48OFU2aG9JJXl4fXFHWV8xVHE3WUtESilFVE9DcyZXKVRpQ3JLKjEl
REUqdlhkRC03aHdFKkxVZ2plSFJNYAp6JkBwa2hUaSZndG0jS2MrUUlLKzJZYm45LXNGVktOSHlJ
Z2ZvYjRIXzc3eVloKSlScSQ3UHd8K2FENiZ5WnxraTkKejhaYjZze29CdDFHK1BnZkljeGR9e21A
fjFuemhlO0xIKTU7IWdTOEBkZHlhYnBkQmM/N0pWbD90Uys8I2JQU01UCnoyQDB1WWRzV04oO1d3
KW4tUGxBLTByKzYyQGJZa0VhYGt7MHN9KWZKZ1laIzU9RG1JZEV2b2s3YVpKUml7dy18fQp6a2Vh
Jjx5I0EyYGhqaX1fI3YybTdza25kRmU9bFZ4eiYlKUVFPXBpT0VjSiZzTzxgX2I1XkclPG4jdnpw
QG9qXlgKeiVKaUI2IWh+e0dTQnhEbVF9azc0cU90Kzg0KVYlfkpxYCNpJTdKaXZNZUlVQDljfUVJ
Xks0MGxQfDR9Uzs9IUA3CnpHWjE8MyFIRFd+OUhKP1krPUg2S2hqS0JyVFBofWtIWmwlNVElVyFu
bGorYzRJRk0yUEVtM0NzQWp9NDNvNV9WWAp6SS0hMWE1ZFBaOU09X1EwNDZxMGt5fFI7PjZYfVpB
M2I3JnZiRGI3KXY4Q3VJKCt6elNmM3omUDJlT3JQTlA/RH4KejxXRTh4bnAhQFFCZWxlNUZXSzJs
TikkfSFjQ0JwZmhESXE5dklxWkJ2NXNRPHlTUWlsTGJlcjNSVEdwWmY3cmlhCnojPCV+NWNaT3k/
TVk3YjNvRyN5Wi14QFMweVIhazUrNlRVakBOKC18Ym50I0xKaDJ7fSVqeDlNSXd1dmU4JjY+Zgp6
bjBAKTBoO341RiZCRzV2PEFzVE9mTHVFRnRCTFdNI3JwPk9GVSE9d29XJlpTbH5ucnN7PzF3Pm5X
ZldfZG5wVGQKejRxdkxEWUoqZnQ+U3AlTSheX3hDWnBOQm48djBfXj95JCZpKilEJUxwUXAkME55
UkJMeHRqcE1nMkJ0Mjd3Vi19CnpBNz9Ae2VaO2NCRCVMMF9wVF9oQDBiN05vYj5jNjZKWH1BfFpM
OUlFTk1gVT5gcGg3ZDwrUlFpSX1ARThZKTcwcwp6TUMqXyYpKX1HbG1SfUB7djkqbm0pMjktPXJu
YFEkcmNeNEcpR1ZRSGxUcjZCcEd4dEh1VSg4QUY3RmZoNTQ/NXcKemorRVlUOT54KVBXTC1pUUBS
Tm08ayU0Nl94dTMpUkpsZ2JhYHhZVTAlKl8yOXl5MWdVKjE9dmdfQjthQEpgSjdQCnpaYnRwMU0q
ciYzKlMxcjY9RXoxRVUpaVdvbE9YKkZ5cmN6dEpgfV9iK1MmYmhrPlQ/Uit8Y0A9Rk9taik1WmE2
Xwp6QERrVnk0bF5MPlozI1NJQHNfZVZ3ZDNEKTxeSXZxOGF+Snt8NG1oT0xePDdNNEQ4KXt1dDtH
SXFxbmBvcUNrfHgKcE5oO1dhJEMwKG1kcHFZeiZGPnhLLXVWRD1EVDUlSnpoOFpUI2FYbWpyNzAl
Knt7UmFjU2BZdkwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3Mv
aW1hZ2VzL3VpLWljb25zX2ZmZDI3YV8yNTZ4MjQwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWlj
b25zX2ZmZDI3YV8yNTZ4MjQwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTE3ZWZmYTNkY2EyNGU3OTc4Y2Zj
NWY4Yjk2N2Y2NjFlODEwNDRmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MzY5CnpjbWReP2A4
TzIpX3MzQHBHbUxFKmAjTT4mWmBtcl9rY3d6NU5oJmc9TWNKM0UhO0NFMUUwcnlWNVJvOz5udnR2
dAp6ayZJPT1YZDtjVkdaQD5xX3h0bnh7MXU8YWQ3WFAtX21fTGx6MzFOWmRjRzJFUVJsZyNWbyg0
OHotPyheWlZ2emUKenw2VCNCPzRaQXZYbkE0eHVVb1JVYn53OH42OFhQI2UpWnRWZSt4JGkqYHFF
Mkx8YFhhKj1eZSZXfjw5TV8jdG5qCnojclZIK0FxPDdnRUd8ZjBKRmFRMzhtRShoPiU3LUQpTnw1
WXFPQj5pOyhiWiNvNjJ7SjJZOSZeRDN+Ul4kbytYPwp6d2J4QUVJYil4d0N3SzNUU1I0UVZ5bTZO
MXJWZ1BtbXQwY2FyeUJVY2VIUF8mdX17P15KbjdmMFBUJCNoPlVEcUkKenIhcShGJjFqSjJfIWp4
ZEFCPCk3SCRmb0kqMnp1bmN2dTs7JFNvVTdicj1BaUpAND1CQzR2Tk8+RFNgJlVJQj1LCno7Mikw
Rip0XkZCdlZmUHVUNEZWTVN3VXclWGtzanlsKzsjKkREeSU9b2NGT3l6REx2TFIoYHpDU091Sj0/
RldZbgp6NVpEIVVhb0Y+LSRAPVZ0P2EmO1VRWU0kT3FlMFpCP0plPzhabk14RGUmdXp6cyp6bEhk
PG4he2ZjT3ktM3RJeGMKemw5RzZmVTs/QD4pVjU4bmZKUGM4U14oe180Ymo1SFFfQiZFWEhXajZ3
eEBCOyFtcjA0Yl9NeClVRkwpVzdgViFjCnpwTXAjQyFhISFzaDNoNDkxeX1ecWZpbVhWWSUhK3NZ
dTBfRDxQPWpjPDUqI3w2Vjx7V1pHTmA2Tjc7VDVAQiYtTwp6NFlBO0xKY2dIX25CPURkPDZhcEl1
WVhfZFNSUzJ+ZDl9dSowQHRBdnAzO3hJVURgUTR7dlNIZUJITGwjdXVqPGkKemR3OUFvRkpkIVlZ
P0M5PS1XfTI7Zm1EMlVHR3wmfj5Xb0pNcXBOKEZSOUxNI2pkWnt2SnpFY2tgUF45KDFOPTRKCnph
OSV1NCQySjhUQWtVYUprX0ZYJWlIdXYjc3ZMX21NbXB7U1J9aWZjI1pjWHYlQ0ZzVD8qPk5eNnIo
JUQ/MVluVQp6QWFUP1VaR2xPbjx5VWAlV2E4WTllKDZkJW9lPmE2VVhYczBtKTNZRHB9ZCVoYkAp
QFkhbEtfQSZENntPUGxObmoKellZKiRiPnZuUnpMOD1DRGJRU2khREwzRCFQXnhoTnR3cllCeW8/
aC0mT3ZRWllKNmthe1JlIzx0Zmt1fVBrJWw+CnpTYzByeV9kKEskX1EyTXtZXk9+RE9LKHN6RE9u
TWlfPHB3VjlISmxqJSVwYkpOUiFOOCEwczFwe1Vwb2FqK0VUVQp6RUsrYXFMK3F3N0d9YTBQTDV1
WXRmUSpPUlRNKT4qaF9SeCVlU1J4QSVufEZ1QyY9Rj08TXZ2bkJBcyhyOV9BR3oKemojTExlTlIt
cFN0ek4jZGAyKXN2VUtyQVE4VkhkXj1iO09wQkN4P1JaeWtjSC10Yjl+cWJMJHgkKGAyPE5WfmNj
Cno0ejJCcEA7fm09dz9ZWTNgMUhRc2U8MHFVcm5AK1VtRmFkOTFnVHRaKXNjaWB3dmsxJV87TVdg
JlBmfDV0Rk11NAp6Tm50VUFjT0V1JXoqSm59N21GMnpLem0tcEFKNjlWKnUqayVQejBCdytANkQk
bmJYITVARn4jIW0wRDd5MkA+KUIKel9Rc2dtajhnIUdBK0xaT1gpPE1UWm5tdFNaTXZYfWlOfjZt
LUpJUVUyMEtGNmBVNnJzTntpVTxEdnIxV1NAek96CnpsIzZjZzY9SjQpeDxxe2skNnh6JGVZflhv
a1ZEM3hYbE5WS3BBQm9LZjlyNl5PIU1jLSUrenFlY3J6IUlCSFpQawp6dzduSnJtVUspMXFARTlm
Z14pZ2B7NmtDWGBpcSVmN1BvfCNXT29fenN1RSptKUIpKzI2TC0kX1IpOE10IWhfK20KekdMfjVl
UGx0XjYwPWU/LU1ZUnNSaHlEZ2xAN1p1RHd6QGpAT059MU9YbyYlOUZGajc5ZFlxOSNQbDJKMHRw
WnFXCnpvaileI1lGdD94Q2wrcjZyKWJHJU94WHhCOWJ6dWxSVzdMNFZ3elpBdE9EJCR3ZGRKc1l1
RTtMYVRNXyM8UUVrSwp6c05qPCpSQkZweUhPNmtVP2ZwN2JgeCR+bVhRdENLLTUmMTFHQ1BJWlJS
WTgwc011ZT97dmdTT29sSz1eKUxaeEgKemJBUmJSRnVWMExfVERhJjdjOW8+Z09XfXZibzl8bDhR
VzNpWXc5cUNEe29+eHReSElVPjtkVjVNSmdjMCN1SFRBCno8Yj85YF5LbXBjJlc0QkQ5OHpPakZ0
IU1XdWh9RSs8bH18e282b0dUYkMhTjRxaSg3dlhJRk1NT25WeE1iZk4pTgp6cGRCKk5CY31SMkh9
cT9+V20lV0hXeU5CJTdsQj1yanxCIW9JfG9zJjh6TlgyJlBhTyg3MyFTaUNHNl8tc2V3VE8KejFS
eiZoeChiMUg7UHlLcntZZm8yI19UY25qMlN7P15jKG8xMSYrZzBwZzB5VXZLYT44MCVFZV9yO0dg
R1Vqc3NtCnoqQWh0d3BXJUx5O1g0THExWnEjWnB1d3pyWkUkc1IwODdkTnt3N1BBNnxNbyM2d3dK
UDA4NUsraDcrRD5OeWVYIwp6a3w/TTxvWiY7S3JOPEw8SShJPWREQHE/Y2w0SWJSRiZuZE9zPDV1
d012ZyF7VEJVRDl1fE9NNGVVKn1tU1Z9YmcKeiFvIzYkNz1WTil4YyhwdXVzNnp3SFpWME9HKT9V
N1BrVyNBSW8peWRIcVdGZktRZDZpeHIyWHxPJHdpN0VsdH5RCnpQNnY8PzY0d2dBOHRVcVZtYTxo
Vz9lNTkleks4clowVlk2VT9uJi0wNW1YUUxSTFl2UiojaUhGYyRCWHprcWxIbwp6Nlc5U2lmcEZq
R1NuUlQmamF0P2g/JGEhZDVRcDxaJUt7dnQqM3QlPkpeRXMpSnRQLTJlTnIwRVFlKlpNYCZ9T1UK
ekNEKnVTU3ZpRSZwfXVYfEAxZ18lfDMqcmEqTWJCViN+Y3NoZGNGUShkR0xuVHFhTy0ze3U9PXgx
O1BwMmltISNgCnp1WjJgVGhmQW1pU3pifDRoYGM0P15ab0dPRipvWFljVn0oZ2UhdkBeYnNlP2Rh
QWBNYStiU1pMSWc7cElOMTd2TQp6SU9ZZks9QHNfUGo/fiNscW5ZMm8/ZDEkTXBvcXNZUXclZVgl
WDZZNCpeMjd7aE1XR3FJTEVNblZZVUVNVyN4N2YKenVeSSpuelhRQDZISjhuOzx6VU52ay1QRWpz
JTxYMWlvVSM1R1cjSEE9dWFUX19kcGF9Ril3YFlxOElzQWR0YDdVCnpgKyZme1VBdlQ5b0g4YX4j
UXtJU1Q/Zks0R24oekF5TFhxSUlCJnxSREM0PE1rRyhlV3M2N0dKeUVvZzwxQFI7cAp6cUVybWpG
YmwqS3I9V0BGYUBkbTJmKlVYWT02YUE4cFFea3g2R2Mhc09LXyFCR2olX0tYKEwpMHtfQk4tUkc+
MjYKem9eMStFd2kkZk4kVW51bTEoRlRiOEkjY1lnY0drbHdJRXh0I01iKEQ9eH5PVGVaXnViSilT
LXl3ZmRaUz9TUkNxCno8ZjYmamg/ZXJ9RmY0ZEtsaCt9WmdEVV54ZG9eTjRYR0F8UU1sWlhrMzZ5
MF9uOTRqKD5EbT1lVTx4KzByKyhLMAp6JGBrRHI2ciROP1h5WWE/eShULXk4PXRFakZBOWhfeFl2
ayEwO2tscVJQaCRmPitDQ1dPQDhTX20hV3thbFQpemoKelpKYmp4bTUmTm81eGVffkp3LWk3YCZH
fT1yKVBPR0dmRnE8Tzh5LTZDeHF9TytqVk9QS0NSam9Tb2RNXmZnU1Y7CnoyMVowfFhJNmVYUjdi
eE1TPSQwajsrV35CYlUqKkFUNj8heFQ7MkReek5gZHE+K2NAa1FiQiMpYXlgY29qJkMzLQp6KCMm
eFZAUTNAVkpke3FkSDRnQDRaSmkmbXg5ZUBJbzdAfihvNXZUcmtXPlFFTzFULWdtbFRSSEgrMyln
Y1VDMFAKemswN3J2RG5mKjdZNUp9OCE+Rl83RF5aM0lvSF51R0h9X2EoYXh7UShJcnZWJG9sZjNX
TiZEWT88bWYxeyN0cCo2CnpiZX5zU29WYnI0bHs7QGhLZDRWVUotMXNeaks+dVlaZnZYSSg7VnYm
RUFvUXRmSDxYNkB5eTt1U01VKnxhS1hLZAp6UzV2VT47KzRWSV9hPnloKkorQ2ohP2ghUVg/T2BR
WGtAQEc3QWpsb0plNTFDdypyUFhRPiN5P0JeXkV4UlFGdWkKem9sbXYqQzVLfC1wKXtyWmlDTmFp
XjBIYDEoUXIoSHozdiU3Tm5tcmlYdTJ0RD54c2JOIypSMyp3c1poUmo2THZiCnpuMEN1PXFrQz8q
ZTR7TkZfMz1eYlRiMWYhZz9AcnlGSDxtU1g3SiVGRDRPM1VaJUJ5XyU7MzBEWkphLUpHNWluNQp6
RmhmTyR3T2pPZXBQNz9+ZFJwaGpAV1U/O3pDS3o2ZVNBTVV3QXhUJUpNSXlFRzc7fGdfUSs3cnE+
Nlp3MnR6JUEKenp6Jm97d2BkRHY2NiE2V2s5dzEtZGdsUyNTbXtkb3h3Jmg1WjgmT05tbEJCdGV7
SilwdWFEemMhTEM9PXJQUlFLCnpRTkgyMz8tcklvXk1RZHQzVGshQkA4bCN9ZnhWdHJsYzhZPD5P
UmFWRSgkREtjezc3cVZeYCtgJV9Eb3RyVUQ9OAp6NH1MN1FuWmkzUmdVeSp0dGVZLT0kU3FBMkBJ
WldlKH1tSWBuemhBVHtxQylteSNySnNmb1MqPFpOUlYyZ1Jsaj8Keil2MUNsX1QrcUg8Vj4peENY
aiFUazY9MyljckBKdyNPY05xZ1MzcGc3eHw0IUEkfHcxNVghaHVSKnZCM3E5WWE0CnpGe3h1ekVR
ens5WVBsKGdrYH1HZmZ1dCVqb3RncXAkalp2elJPNEVzRXhmfjkzdll+MDRBeEg9bFI+UjN2M1Fz
Mgp6eSR2NFNOJWVlQEt6I2tEdEFSYVFEYGQhUiV9I0BUMT12OERBb3cqcj4rMGQxS1N7WnRBfktN
dGdtKSskSkh1bVcKenc9O0BxV2smTXVHQExLeCNLM0AmV013P3I9akQyXykoKiRMbWtDbTRfQH07
UVpJfFNQZThoSUM2eHFCeSFMUXlLCnowMV94bWZOQTlVbEJVQEt6dTc7elFZeEhFPk9DQURBJGd3
YVZxbWBlTj9YUUZATmtyb2NCfWxVNGhjQ2Y+d3Fpcgp6PllhPVBjRSFYbSNKRzh2QEcwbGomfilo
U2NNfVg1N3ZHdzNnPCReU1VsczUzZnxCaz41RlF3cUUmeyV1KGYkITEKemw4KzUzdnlZWmBtRUVw
JllUPD0oa3JoS3J3P35wU3tOKT9xezBxQlIjMlkhdzQhaFdNZGpgYShAQUByJHpWQit1CnowNkhi
QF85KGNRX0F4YlhJfC0ydz4jUVVocDdrPCtgejkrKGpraH52LVJlbnIjQzlVKyZqTDR2ZzYtRSRm
N0BVVQp6KDFmeEI4e1UydnF9aDNyRSFaK243PSg+RCZ9QDl+M21KXlI1fXxXVkdAIVJTaDNyeyE+
UUh3ZyF0MjlZUyZqaVIKenR5bl9xKms5SDBlZlo3aE8qYihXUnxHIVREWWByb2x+T2I0JjFPd2RN
OGtiR2pgXiR+TDVnZDxkN1lCNVlKV0BICnoxRWwzYDFGd0pOIzNEUjtMVTJYfEExZTBXXzF7YX4z
R0BoJm9Rb0ZSNF5SOHlMc09odm0lYFhvZ3syOFpSZXN5eAp6cUI2WkhLJld1Oz5XWWNlV3dMPVBC
e35OWD1jdTNwLXtTO2hxYUU/YlNIdiRnK1NBNmJ4eStWVTNZVlRQRGo2Q04KektMYl8oOWdNMlkj
S1c4T054akg5VG9eWSlyP3FsMmNxOCtXRTQzOHVJRiRoamZkTHM2LTshanY1NWpHY2MzSXBnCno7
fWFUMzJOQUVHZVU7Sn0majU9K3VgND8leGx3TDc/TkRuJTI9ezRXUzM5eW4zZjsmcj18fTU9TS1Z
MnlyeGVTdwp6diUqUG1We197I1FrMXNEPj9NMktEYXBifnozIUUqLUxQbUNlOXE4NkQlTUdTZTs0
fn5LLWpLUXhxNmJeOTAyX3sKeiU+NEc+QFhxazhtdVIqfHZHZTV7QDdzZHM8YVJjSSgpKy1kaz4y
aXxpO2d9b01rZCFvXjA9SEcrdmNQcmNONTRBCnpMR3YkUGxUZVBSeHB+LU9TYl8qYUFDTzFxY3tN
cGZTLWZ2KEBVbVJ2JVVPKWNTdDtlZUA5KFMpZj58fmJ3VUBlWgp6PWtUUypzZGpMY2x3TVo8Smd4
MEVeayRxbk14SEJhezBeKCFtZmlBKV5aRUo9LSEhWmVsY3lOfkVGOE1iYilpOWUKel4+RyM/JVUz
KWJxLXVqP0BAdmp+NnRxKVpTfHxKeHpgK2RpLU01PEZpZWBtdVdsKUE3dGZ6SXlJaGQlRjVQUVBo
CnpBeGY4TXh5fWV2dT0qbHRmfmppKXBGV2w3Sj02VzhFd3hJeXZ+fiUzbn1vYn5gQmJXUkxmdkJn
TkpZUXNmOGVYZgp6YipBPTNAR18xLXF3QTcjZlM7X3kldUVicCQ+U1hNPWgzRUxgP3BCPlc5QTtg
VjJ2TSl2ayYlS0Z5fFRBaCNBUUEKemJfPzwhSFRxWU56UDZqcnc/SCZPYE9DK0lufXo1e3BlMWVT
XldrNiltWXY7PzdhNnt2SyNncjVgbEQjVDJWcElrCnpMVHx5bmtaP255eys4aEw2KDRFYVEjJTNP
U01ERHp0Pko9PTNmQCVMTHtgdlUkM1pAQTJhOUMzYUMtWVk0M2RSPgpwSTdKMG5AO2IzfmApdWJ2
c3J8aVUobDtMe0EjRTZKYH1lQzR1c24tMHVRRWYmezJ3czFtKGw8TAoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1Nngy
NDAucG5nIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
Y3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQyZjhmOTkyYzcyN2RkYWE2MTdkYTIyNGE1MjJlNDYzZGY2OTAzODcKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDQzNjkKemNtZF4/YDhPMilfczNecCMlPnQ8SSQ1JUIqKCUkUmlmQWxK
RGwoKSsqX1cpdGo0YXRKbGBWITRrdX1NaGsqbz1rCnpqQWgxWEI4ezsjN344a15gfTYoJDZgI2o+
b3FKI1Jtd1YyPT1pYypyejdsT3c9ZWFxPUh+O191eDIxKS1KcGNndwp6ZGoraHJmJldeZjwlUWs5
WnBxZiM7cTNuNXt7UE9ZO2Yhd21UUjFBbjkoNCZJMHoxTE5YNTBRU1RWMk0lNHx5OWMKeiN7WlFJ
VkpLdX5hWTU/WmFaUCpHSUdxR3M9ZUBxNm98RVBoWkIzQ0M/QExuT1JLOE9Aent7PDBLdFNuNT8j
fk9XCnp5PUw7eDhUJioleHFFbFM7czV+UGprN2QyYnFJYUE8ZFcoPil4WmJvdm5aZDdlWDE3V054
eD13YHAoOHZ1bHdVWgp6bHtzb31NdVJOSng1IThTNUc7JG8yP0JBcFBIdCspIV4jKld3YD9yY1ZF
fW1jeXVZYFgyb3x1VlV5STlvMXQxMU8KemVtR1dSPzthRCMwJHZKaGlQaHZ+MGlYUyNpTHEhPlFk
PD9HJW5Kb14tcDROYTkhLX45YFNDdHU1cGI1YTl+PiRgCnpVe308fFZiOU1kPiQ0VE1iTDdDM0dQ
I3I7NFdjJH1aO15qO259eWMhRTNkOzxqcFZ9UE9RN1pnI0U7TmUqYj99YQp6bCpDJkU2VlA+YHdy
eSQhSmttSlAwJSh0SWghIVRFVDg9PEdkLTUtfUoma0o/ZW0oeE1FNkM2NUdBOSV1eipRRmYKejZr
TTdZMX55fFpUclpJO3ojQDxpbHJoZ3tpIXFIfnYrZmZtcjxpJmYjfG9wSnMyMldjXlJ2WjAlSnpl
Ujd1WlR9CnpzMEZYJUZ9KGM1QnRJMXhfc1U+K3tyaFVpXjYwRzB0MkhKU3hYdi0qRGdDKEhySmQ4
YHxEcDNOdkw1eWc+eEF2VQp6aG98ZkVBfndeLUhyVyZILUp3a3FOWDJJLWJFWEJSJlVocCt5Ml4p
MWgxSUlsTkN6QyF2LU16QCZ6JlZQeitjbDEKej1mJmY2WSpVfkNgaXhtNFN5MWhsJGhnKDQlRHk7
YnF+azdkMTxASyYlJU5MVGBMK0EpLVFYeUtWc3dYP29wOTAoCnpCI3llRkVpaEBje09YVThPcX4x
Q0ZJXzM4R1htbnMzKGA7VyhpK2JzbG92Q3g0dTdndks+RHJHT3VnKj9HfDFuegp6X09SfXxaWVMz
cHEtcD9yUzdHMHFhYFRNfXI1WHFEVDRjVj4lUXlrIzlFU31gamMrV3d8RGNiWnJGNlVHPkNlWHAK
ek9WSVZ9SzFlI3o5QHR1Iz9YKVJpPT96WE1CYFgzRy1fSTdGTC1acWBuYmZXdFhfRU8xKiErVTZw
SlctX2smK3ZrCnpNZH1USGh9eyhDaF93UGsoUEk0dlZCX0tUNzZrR3hWeXRMeHBXZ30mYkh3YGEz
RyNRenhWQElDTmF4JkBoazM8Xwp6QmhgVHE2Nkd7LXRDdyRWeyh5MHY3bCF0cDIwfkBnZEZYPHQy
eUFmN1RaYlU0SCsmTjBEMmhaXmFfNi1JKHlwJEEKekx1LTRZe0V6JGV0eCFUMEtFMUVeQUJndi09
YFBMP1d4Q3gyS2BOSjlidEVCfmIhNT5qekZiRiNiSkU3aT5UNHV4CnpRZHJGM29yZ153RmNudyQj
YlFNdkBTZk4zJEZ1bzdIbkJfYDJaR0J7WnFHcj4leFA7Ml8hUXs9Ti1aaFUxY35eNQp6ZHQ9T08j
d21jcGtYSnlDRz97eyZuPVJ7U249WXRnOzwwOUNIKWw3VEEmd2t0e1E7PlJyQTJJYTYtUWl4RVBM
clUKeiUwKU4kM05oMD9VODI1JjxGOT9XSzM+digkU3p9MEdfKCF2JnhTU0F6amU0e3J1cCteV0Be
fUJ5cU9iOTUkPHdOCnorRmxDKk9TK3xoUXFQQ0xMUCNHfHstR3N4e2whYyMkU3ZVfCo8RlVicz5F
MHNid0sqJSNHUH0hNmAlKlpATDsmQwp6M15kRSY+NSViV0FYbVA8c01ka14oQkdpeEpzUz9pUiMo
UzxzbkcrQ21LZDx+KCZJRiQjfkImKTZkMm1yRHVCaC0KemA3PVlQIys5WFVWKH5fQmlrNXVGbCNM
K01BPzlMVDwkYClHcml0YW5EIUApIWQhQ0s5aEhYJDZNLWtzYWVeRGBqCnozTzxRS3JNQXBmVzkm
QlQtbWdRb3BDTEdPVzshaj8/Y29rQXZzMCpEQmB7Mm1pdjAhYjUwWHNTJHlBeX55PipYMQp6X219
UGl2cyp1N0A5aT5xQSE1OGZEQ3dqXk08MVAodV5tO3VyVmRsTUA+YUlmK0UzLWQ5PFZNJXF5ayFP
SlZDV2gKelBBRVM9QTRoWkpZPFFeNkU7WTZWVn50Pz1ubXl1OUs1aShtYE9Od3tYWCQ0JD5aVz5m
YzRjUzd3NU8zc0NtS0tuCnorOTRBP1Z5ZlNCYjl7fXJFYkNJWXRYT1JKQkN2X19mblo+P2F9ZWRh
QSViUCRqST9KXnEwVUtPIW1kdUE4VSEzYgp6MENKX0pzfU5XUVpvZWJhcFZVSFAlcFBPVW0/MTwp
emQ8ZnE7TWhGe2lldkYybl8mUGhBU05xKiU5em1pSDZYTmoKekVzPUVhOFNXUHV6R0dsVXAhVEUt
OHFCKWEyM0lFc2ZLbT9kSCRpMXF4Q1Q1Xkw/QF5LQX16aWRQSSNndjhHay1YCnpxTStfQGg3WDtW
OSM3MmEreSZGREQxR29xX0pMPXt0anhCbCFuJGYzSVJmISRtQSgtTDslRzRTUloxIVhtMXoyZgp6
aGpYLUgwMX0+JWBoelVNLVk2ZzF6fEBAM0dfa2lvP1MwYmNialF1eEpkPnZVJFV5eig0KnBlRURT
VmMtRztPOyUKejlZOTclVHF9VFJzSCtvTiUydShveUM9Vzw5YGVAJm07aTtqQyVMO3NQKDlSQkRR
bnRoMztaTUVRTkZIM0dFZjBjCnpVPDNSRiFoTkctdkNEb29ZRlNeblBsRm52NChFbEkxPXZOY3I0
MlRGXnU8enBOR0BwbHElPDU8V0Erc0xUXns9LQp6KlNLYWBJZlRXYnpIUW0+cTY3ZntNb04+e2Ym
PnhBOTFyNHB6NVpjJkBQXmktOXx8YDk4diRTaSFVQH1vdVo4OFcKemc7WUw9T1E7NH1VUXRrcHlk
fmxEe3FXeTBIfGx3SlhLbWVueiNFPSo5a3QkWVgqWCF3RGs3SVRsSVVHV25qPmE3Cno8X0dRUjc1
MkBKKVkoVSluY3UoZDxxUzVVaHtyS2czXlZyMmJEfD5JaXQ3UH1vQnE4eCRGUDg1KSZOc3c8I3JP
Vwp6OFVfeCgxSilaZ20oOHRaWFUlKyh5WWNPK1o3I1pzelB3YTJgeWdpTVBheVg5S29uZHRGTVJL
ITd4YDl1V047KGYKemZXVz84eU9kajtHQTNXZTBZQVc5MmdXaXBuKGQ+emNiQSt2Wl8yMUI8R0Uw
ZXkqQlp2SnBxPXhIYH50ekBneHxjCnpSMURORzMmYSRzcG8hO2wqcGtrSTghIUxuZFhOXk1zPVBF
NE1ObHxQYUhVaTtidzVGOUJVJX4kPnhGPy1wZmNXYAp6YnFZPGs4R09wZktnRzhObUpRVnpsaEZC
dTZSJG5CQVh+NysrV0wwcmFFNms3I2JQUXdvPDFWQWBrWjt+ZlcpaWgKenFSSEVjbWgkVGBFTzxZ
WSpDQ2RKRCp4aHBIRFgzKkxfYVNeRlQxQStvTWxYeSR+O2MjKzcoVjwzTzJOLWUlQXVaCno2WVVm
ZnFGSEJYPDBkYj9DT2dMKXBRe2AlM1d6d2sqTkEhb3Jfe0FuQGZPVk0+Pz82aWUoNk0pcEA2QFdR
P1RsNwp6b0tyS0VqfHh+MnlaZWhoTUxrRlJSbk9DPlhMJkwrTjttMEJ7X09ROWd6elRZYiEhSmN0
PWJrP19oSXBZOXJPd1kKek1ucjY5Uig/OEVONTJxUitrIX5xbkNZYy1LbVYmKmQkJk5ZP3Q1Y2pS
KVYrbmNNb3I9cHVUUm9vP3s1ZEg7QCEqCno8flJyViErbGpBTis7UXgyTHJhWSZKV256XnxzWWJa
alArWTt8cEMjRHVIVUgrPkZ+eDNQcVRreCk9T0FFMFg5KAp6KEFPNmdwfkFIXntucStuKUxIWURE
OG1RTj9EREZjZCFVJmQ0UGFhanpTRDF+bFhxM3B7eD1edkl0cnEzZ0ReNE8Kej1oWVNgPyZDLTAm
S3VBVj5Kdn1UP2JhMElhZkwkfitiWn1wJDlsd3l5eD0tdVBOYEhwdnY8KUlhPk9XSGE0K040Cno2
enNjclckXlhBMzJFPGorVHl9Kz9NUG81VWMhcWJHVDtgNyVHeD9sPHhjOVlmVDdMUT5Kd143aFl0
a1JKcntROAp6UXwqMXBwX3E2TW5vfEQ2RVgha2dTdjBoMEkzfmVmX2wlJDx1KEAwYC1JUyZFTHx8
fVpOMVIoKkkpRWFeN0kteUcKenlYQ2poSi0xdUYoVXl6KV9eOT0qTl9EWTlLUzc5PkRURmpMYDB5
MTZuJV5kR05RbjsyVjgybXFvSWk5aXsxNXZ1CnpMcSYoQlRsOUNJblVqWmxUSWE+XiEhSGxNSzNX
OFNkX093MCtFOElUP2gkPTU1JF5aKSRXWUl1aWc9TztMcF8xUQp6NHdPVDtYYldRIT5NaGBwZFh1
U289SzxTVD19UCoheG9kbEVJQkh5JTV7VSRWWlMkd0VrTnNHfHUyPEtrKVdDeUwKenpUdnk/N004
JkNmcV81QFlJViErPFJuXnd0KTVxdHA8eEtfS0ZsZEQzTV5XQUdsTi1VUXxBTkVCWVZvRzB3M3hS
Cnpla2A/XyFhRldRJSRaRUFuPVhGSEVsbXtnS3p3QEJoMC1MTndaJlpoP3laJSoxNV9iX1k0e09z
el5+NE91bSEhPAp6c2UmIUc8YX1lfk90N3Zka2JqWW5VXl5Makd+RVRuPkJiYTt3VCF3S2BIZjFV
ZWgwNColRDdLZmoqI2J+Qk5mdnoKenNiZj91aU1tNS14aGFRfDdPbTJPclliVT5uZ1VNOSVGNW5V
PDY1SUZ5dShgeVo7VmIxKT13Q2QhTDJLP2MkZXpFCno0SWJTfF4/Wj4pZUVwfVpmandGKVdhdz9w
UEo/e34qZyU7ZTxUWDYmPmZ4T35OeDdkUUdMV1opY1BRKlQhKChXLQp6R20yP3RNKUt9N29HPDBY
ejxgbHRXanh2RTwkQUghNCpSe0EyfnVZR3JAbSF2bSpqK2UjQ0U5Xip9T2MjdWloQnwKejU7I2tN
WTJeOG1ycjgwJSorMDJiRHg2QntKc2NoKGQ3a1FHVjd+aUdUZ0ZaQnUkUGZgdE5mYEIye3x0N2ZH
aElxCnpvczB4RiNsJGJmeE90Y0dEZCpNRGJkS0JhQ0t4Zzx6QlNfdCFUaUkmRCZGUz5DRWJyOEpU
TmRfMWJqV0N7VWJnawp6OX4pOTtBMSY9RnlJdCRsIVZCWGZEfjZWQ2swZmpPJVF3TEo3azAwUkgq
JUk4Y0NxRjU0MlZ6UF47YE9VLV8/PTwKemJWfU9vUUUpSHFWYHwpWDUrV2JnU3hHV0g+dCs3LU87
KGx+WitGSkopc3lndV4rZUYwMSNTdWorcG5BY3chcz5wCnokLXhGfWM+N3Q5WDZIJF5WOWh2VDVI
e2pLdis9enpXSEEwcGd3OGU1ZlpwbTl2SXBoVnEzJVM0Kk4zJSZqc1leUQp6SyVzU1B1aj0/ZHtB
VHMwbzB5NiMwdzMlWVReQC1fc1R1VFV3SShReztsM0tqZUFiVmsjV21pJVBEeG1gem9xUX4Keigo
PC19KkZTUCU1Z3Q3dUkzdDEmNzVuZXtAMV5icGRXMTtNTUdOa1NyflVBdURiQjQrVlFpfHgoZ2RP
Xnppbl8pCnpuY2ZzMmhqOHhkaWl5KUB2Vmtma0l0TEt2c0d0Smg8QWgrTjlyNEZrIzRqfTMpNWZw
NCUkOE9QbSEyKnY4NSQyaQp6MTVwNFVqSD1EViE8K0wteX5zSVM3Jmsrd3dRQDNlQmxEMGV3R3sw
Kmw+clRiMFR+dEZsNFEzSiFmbGF1Uz09YiYKejZCPFZjNXdEJG5tQ19pYDBFPEFlRD8ySDxRRW9X
eFAte1g2X2kxNVFKRi1Ddi1OLU5MTjklJHw1TDs9ZDZsbUY1Cno7VXVLN3glQ3ElTj9UJn5sRCtN
ZVdafFM8X3NaNjhTaE5hMFhYcWFsPm08SXZpK3dnQVkqKHBWSnhPajM7UF5NcAp6e1B5NFEmaFZf
NFh0cVlOXldfYHcraylyaGJ+Yj8wYEBvbHgtdExgP2p5XjkmQ2Y3c3F4U1NvXj1BPEtjNlVZb2YK
el5Ea2VNUD4hZyVkRHZsQ2YoU3Qka1ZvZnZIOTB8OXlsLWdtdlJ2Y0tTJlllOURkb1RLQDJtfWlT
dkN7M20lNEUwCnpAVEpEN2MxVj8hVVJNNyt0P2YzKSV7WCg2SlhnfkE5VHZHUXlYNm4oXll0ME5Y
Oz52RFBjcn5tSUNQb29MV0FfYAp6PDFBPkZ1WHJ8QylkdERyKlBRdCVYczVXZVBXVUImZ0JqJHpa
I0JJWSU/akRkcGJTQS1QVjBgZEdmXm9hX0pwfVoKemxyR1Y3b2VgI0JeK25QSVFgWkRKZUphcz1y
dSM9KllMIytuP0dvfWYzMz4xR3Nae1RUeTJiZEJpaGp9bXoqbXAhCnpPem4le1dnTE09KkNwaXVL
VXMqR25IYXtCJDJzaUpxZk5pfFo7fHJIJXN0TSo4YjI2a0FNQ1lZJk5Id1BHdGxZbgp6N1VWeF9e
c2dSJFo4eDI3Zm9TNjNGQ1A8YjdOUUA0bSRXJmE0K3BiQGM2TDhyV2NZcHBIQDFEfmtEPnR8Z3Rj
R18KenkjQEN8IVZRVn5UWX1HNWU1N3FwP0Y0alJ4cXF+QGg2Xj8tY3ZEPnlTd1ZMbDJtNz1nRVJ0
RW4+RndfQE5EJXBPCm9pVkMqbWJ6PCVJKzBLMVpgK0xXdlokM34kK0EhR20/XmhwU2NAfHx9V3Jt
TFZLTHZ1enY7WTdBCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNz
L2pxdWVyeS11aS0xLjguMTAuY3VzdG9tLmNzcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvanF1ZXJ5LXVpLTEuOC4xMC5j
dXN0b20uY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNzA2ZTIy
MDc3YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20u
Y3NzCkBAIC0wLDAgKzEsNTczIEBACisvKgorICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgMS44
LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWku
Y29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9u
IDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDov
L2RvY3MuanF1ZXJ5LmNvbS9VSS9UaGVtaW5nL0FQSQorICovCisKKy8qIExheW91dCBoZWxwZXJz
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy51aS1oZWxwZXItaGlkZGVu
IHsgZGlzcGxheTogbm9uZTsgfQorLnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSB7IHBvc2l0
aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7IGNs
aXA6IHJlY3QoMXB4LDFweCwxcHgsMXB4KTsgfQorLnVpLWhlbHBlci1yZXNldCB7IG1hcmdpbjog
MDsgcGFkZGluZzogMDsgYm9yZGVyOiAwOyBvdXRsaW5lOiAwOyBsaW5lLWhlaWdodDogMS4zOyB0
ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtc2l6ZTogMTAwJTsgbGlzdC1zdHlsZTogbm9uZTsg
fQorLnVpLWhlbHBlci1jbGVhcmZpeDphZnRlciB7IGNvbnRlbnQ6ICIuIjsgZGlzcGxheTogYmxv
Y2s7IGhlaWdodDogMDsgY2xlYXI6IGJvdGg7IHZpc2liaWxpdHk6IGhpZGRlbjsgfQorLnVpLWhl
bHBlci1jbGVhcmZpeCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQorLyogcmVxdWlyZWQgY29t
bWVudCBmb3IgY2xlYXJmaXggdG8gd29yayBpbiBPcGVyYSBcKi8KKyogaHRtbCAudWktaGVscGVy
LWNsZWFyZml4IHsgaGVpZ2h0OjElOyB9CisudWktaGVscGVyLWNsZWFyZml4IHsgZGlzcGxheTpi
bG9jazsgfQorLyogZW5kIGNsZWFyZml4ICovCisudWktaGVscGVyLXpmaXggeyB3aWR0aDogMTAw
JTsgaGVpZ2h0OiAxMDAlOyB0b3A6IDA7IGxlZnQ6IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgb3Bh
Y2l0eTogMDsgZmlsdGVyOkFscGhhKE9wYWNpdHk9MCk7IH0KKworCisvKiBJbnRlcmFjdGlvbiBD
dWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy51aS1zdGF0ZS1kaXNh
YmxlZCB7IGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50OyB9CisKKworLyogSWNvbnMKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBzdGF0ZXMgYW5kIGltYWdlcyAq
LworLnVpLWljb24geyBkaXNwbGF5OiBibG9jazsgdGV4dC1pbmRlbnQ6IC05OTk5OXB4OyBvdmVy
ZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9CisKKworLyogTWlz
YyB2aXN1YWxzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogT3Zl
cmxheXMgKi8KKy51aS13aWRnZXQtb3ZlcmxheSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAw
OyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisKKworLyoKKyAqIGpRdWVy
eSBVSSBDU1MgRnJhbWV3b3JrIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JT
LnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIg
dGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcv
bGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvVGhlbWluZy9BUEkKKyAq
CisgKiBUbyB2aWV3IGFuZCBtb2RpZnkgdGhpcyB0aGVtZSwgdmlzaXQgaHR0cDovL2pxdWVyeXVp
LmNvbS90aGVtZXJvbGxlci8/ZmZEZWZhdWx0PVRyZWJ1Y2hldCUyME1TLCUyMFRhaG9tYSwlMjBW
ZXJkYW5hLCUyMEFyaWFsLCUyMHNhbnMtc2VyaWYmZndEZWZhdWx0PWJvbGQmZnNEZWZhdWx0PTEu
MWVtJmNvcm5lclJhZGl1cz00cHgmYmdDb2xvckhlYWRlcj1mNmE4MjgmYmdUZXh0dXJlSGVhZGVy
PTEyX2dsb3NzX3dhdmUucG5nJmJnSW1nT3BhY2l0eUhlYWRlcj0zNSZib3JkZXJDb2xvckhlYWRl
cj1lNzhmMDgmZmNIZWFkZXI9ZmZmZmZmJmljb25Db2xvckhlYWRlcj1mZmZmZmYmYmdDb2xvckNv
bnRlbnQ9ZWVlZWVlJmJnVGV4dHVyZUNvbnRlbnQ9MDNfaGlnaGxpZ2h0X3NvZnQucG5nJmJnSW1n
T3BhY2l0eUNvbnRlbnQ9MTAwJmJvcmRlckNvbG9yQ29udGVudD1kZGRkZGQmZmNDb250ZW50PTMz
MzMzMyZpY29uQ29sb3JDb250ZW50PTIyMjIyMiZiZ0NvbG9yRGVmYXVsdD1mNmY2ZjYmYmdUZXh0
dXJlRGVmYXVsdD0wMl9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5RGVmYXVsdD0xMDAmYm9yZGVyQ29s
b3JEZWZhdWx0PWNjY2NjYyZmY0RlZmF1bHQ9MWM5NGM0Jmljb25Db2xvckRlZmF1bHQ9ZWY4YzA4
JmJnQ29sb3JIb3Zlcj1mZGY1Y2UmYmdUZXh0dXJlSG92ZXI9MDJfZ2xhc3MucG5nJmJnSW1nT3Bh
Y2l0eUhvdmVyPTEwMCZib3JkZXJDb2xvckhvdmVyPWZiY2IwOSZmY0hvdmVyPWM3NzQwNSZpY29u
Q29sb3JIb3Zlcj1lZjhjMDgmYmdDb2xvckFjdGl2ZT1mZmZmZmYmYmdUZXh0dXJlQWN0aXZlPTAy
X2dsYXNzLnBuZyZiZ0ltZ09wYWNpdHlBY3RpdmU9NjUmYm9yZGVyQ29sb3JBY3RpdmU9ZmJkODUw
JmZjQWN0aXZlPWViOGYwMCZpY29uQ29sb3JBY3RpdmU9ZWY4YzA4JmJnQ29sb3JIaWdobGlnaHQ9
ZmZlNDVjJmJnVGV4dHVyZUhpZ2hsaWdodD0wM19oaWdobGlnaHRfc29mdC5wbmcmYmdJbWdPcGFj
aXR5SGlnaGxpZ2h0PTc1JmJvcmRlckNvbG9ySGlnaGxpZ2h0PWZlZDIyZiZmY0hpZ2hsaWdodD0z
NjM2MzYmaWNvbkNvbG9ySGlnaGxpZ2h0PTIyOGVmMSZiZ0NvbG9yRXJyb3I9YjgxOTAwJmJnVGV4
dHVyZUVycm9yPTA4X2RpYWdvbmFsc190aGljay5wbmcmYmdJbWdPcGFjaXR5RXJyb3I9MTgmYm9y
ZGVyQ29sb3JFcnJvcj1jZDBhMGEmZmNFcnJvcj1mZmZmZmYmaWNvbkNvbG9yRXJyb3I9ZmZkMjdh
JmJnQ29sb3JPdmVybGF5PTY2NjY2NiZiZ1RleHR1cmVPdmVybGF5PTA4X2RpYWdvbmFsc190aGlj
ay5wbmcmYmdJbWdPcGFjaXR5T3ZlcmxheT0yMCZvcGFjaXR5T3ZlcmxheT01MCZiZ0NvbG9yU2hh
ZG93PTAwMDAwMCZiZ1RleHR1cmVTaGFkb3c9MDFfZmxhdC5wbmcmYmdJbWdPcGFjaXR5U2hhZG93
PTEwJm9wYWNpdHlTaGFkb3c9MjAmdGhpY2tuZXNzU2hhZG93PTVweCZvZmZzZXRUb3BTaGFkb3c9
LTVweCZvZmZzZXRMZWZ0U2hhZG93PS01cHgmY29ybmVyUmFkaXVzU2hhZG93PTVweAorICovCisK
KworLyogQ29tcG9uZW50IGNvbnRhaW5lcnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLworLnVpLXdpZGdldCB7IGZvbnQtZmFtaWx5OiBUcmVidWNoZXQgTVMsIFRhaG9tYSwg
VmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMS4xZW07IH0KKy51aS13aWRn
ZXQgLnVpLXdpZGdldCB7IGZvbnQtc2l6ZTogMWVtOyB9CisudWktd2lkZ2V0IGlucHV0LCAudWkt
d2lkZ2V0IHNlbGVjdCwgLnVpLXdpZGdldCB0ZXh0YXJlYSwgLnVpLXdpZGdldCBidXR0b24geyBm
b250LWZhbWlseTogVHJlYnVjaGV0IE1TLCBUYWhvbWEsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNl
cmlmOyBmb250LXNpemU6IDFlbTsgfQorLnVpLXdpZGdldC1jb250ZW50IHsgYm9yZGVyOiAxcHgg
c29saWQgI2RkZGRkZDsgYmFja2dyb3VuZDogI2VlZWVlZSB1cmwoaW1hZ2VzL3VpLWJnX2hpZ2hs
aWdodC1zb2Z0XzEwMF9lZWVlZWVfMXgxMDAucG5nKSA1MCUgdG9wIHJlcGVhdC14OyBjb2xvcjog
IzMzMzMzMzsgfQorLnVpLXdpZGdldC1jb250ZW50IGEgeyBjb2xvcjogIzMzMzMzMzsgfQorLnVp
LXdpZGdldC1oZWFkZXIgeyBib3JkZXI6IDFweCBzb2xpZCAjZTc4ZjA4OyBiYWNrZ3JvdW5kOiAj
ZjZhODI4IHVybChpbWFnZXMvdWktYmdfZ2xvc3Mtd2F2ZV8zNV9mNmE4MjhfNTAweDEwMC5wbmcp
IDUwJSA1MCUgcmVwZWF0LXg7IGNvbG9yOiAjZmZmZmZmOyBmb250LXdlaWdodDogYm9sZDsgfQor
LnVpLXdpZGdldC1oZWFkZXIgYSB7IGNvbG9yOiAjZmZmZmZmOyB9CisKKy8qIEludGVyYWN0aW9u
IHN0YXRlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisudWktc3RhdGUt
ZGVmYXVsdCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0
LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCB7IGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7IGJh
Y2tncm91bmQ6ICNmNmY2ZjYgdXJsKGltYWdlcy91aS1iZ19nbGFzc18xMDBfZjZmNmY2XzF4NDAw
LnBuZykgNTAlIDUwJSByZXBlYXQteDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAjMWM5NGM0
OyB9CisudWktc3RhdGUtZGVmYXVsdCBhLCAudWktc3RhdGUtZGVmYXVsdCBhOmxpbmssIC51aS1z
dGF0ZS1kZWZhdWx0IGE6dmlzaXRlZCB7IGNvbG9yOiAjMWM5NGM0OyB0ZXh0LWRlY29yYXRpb246
IG5vbmU7IH0KKy51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1o
b3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMs
IC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51
aS1zdGF0ZS1mb2N1cyB7IGJvcmRlcjogMXB4IHNvbGlkICNmYmNiMDk7IGJhY2tncm91bmQ6ICNm
ZGY1Y2UgdXJsKGltYWdlcy91aS1iZ19nbGFzc18xMDBfZmRmNWNlXzF4NDAwLnBuZykgNTAlIDUw
JSByZXBlYXQteDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAjYzc3NDA1OyB9CisudWktc3Rh
dGUtaG92ZXIgYSwgLnVpLXN0YXRlLWhvdmVyIGE6aG92ZXIgeyBjb2xvcjogI2M3NzQwNTsgdGV4
dC1kZWNvcmF0aW9uOiBub25lOyB9CisudWktc3RhdGUtYWN0aXZlLCAudWktd2lkZ2V0LWNvbnRl
bnQgLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSB7
IGJvcmRlcjogMXB4IHNvbGlkICNmYmQ4NTA7IGJhY2tncm91bmQ6ICNmZmZmZmYgdXJsKGltYWdl
cy91aS1iZ19nbGFzc182NV9mZmZmZmZfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBmb250
LXdlaWdodDogYm9sZDsgY29sb3I6ICNlYjhmMDA7IH0KKy51aS1zdGF0ZS1hY3RpdmUgYSwgLnVp
LXN0YXRlLWFjdGl2ZSBhOmxpbmssIC51aS1zdGF0ZS1hY3RpdmUgYTp2aXNpdGVkIHsgY29sb3I6
ICNlYjhmMDA7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQorLnVpLXdpZGdldCA6YWN0aXZlIHsg
b3V0bGluZTogbm9uZTsgfQorCisvKiBJbnRlcmFjdGlvbiBDdWVzCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKi8KKy51aS1zdGF0ZS1oaWdobGlnaHQsIC51aS13aWRnZXQtY29u
dGVudCAudWktc3RhdGUtaGlnaGxpZ2h0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGln
aGxpZ2h0ICB7Ym9yZGVyOiAxcHggc29saWQgI2ZlZDIyZjsgYmFja2dyb3VuZDogI2ZmZTQ1YyB1
cmwoaW1hZ2VzL3VpLWJnX2hpZ2hsaWdodC1zb2Z0Xzc1X2ZmZTQ1Y18xeDEwMC5wbmcpIDUwJSB0
b3AgcmVwZWF0LXg7IGNvbG9yOiAjMzYzNjM2OyB9CisudWktc3RhdGUtaGlnaGxpZ2h0IGEsIC51
aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1oZWFkZXIg
LnVpLXN0YXRlLWhpZ2hsaWdodCBhIHsgY29sb3I6ICMzNjM2MzY7IH0KKy51aS1zdGF0ZS1lcnJv
ciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwgLnVpLXdpZGdldC1oZWFkZXIg
LnVpLXN0YXRlLWVycm9yIHtib3JkZXI6IDFweCBzb2xpZCAjY2QwYTBhOyBiYWNrZ3JvdW5kOiAj
YjgxOTAwIHVybChpbWFnZXMvdWktYmdfZGlhZ29uYWxzLXRoaWNrXzE4X2I4MTkwMF80MHg0MC5w
bmcpIDUwJSA1MCUgcmVwZWF0OyBjb2xvcjogI2ZmZmZmZjsgfQorLnVpLXN0YXRlLWVycm9yIGEs
IC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwgLnVpLXdpZGdldC1oZWFkZXIg
LnVpLXN0YXRlLWVycm9yIGEgeyBjb2xvcjogI2ZmZmZmZjsgfQorLnVpLXN0YXRlLWVycm9yLXRl
eHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwgLnVpLXdpZGdldC1o
ZWFkZXIgLnVpLXN0YXRlLWVycm9yLXRleHQgeyBjb2xvcjogI2ZmZmZmZjsgfQorLnVpLXByaW9y
aXR5LXByaW1hcnksIC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwgLnVp
LXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXByaW1hcnkgeyBmb250LXdlaWdodDogYm9sZDsg
fQorLnVpLXByaW9yaXR5LXNlY29uZGFyeSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0
eS1zZWNvbmRhcnksICAudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktc2Vjb25kYXJ5IHsg
b3BhY2l0eTogLjc7IGZpbHRlcjpBbHBoYShPcGFjaXR5PTcwKTsgZm9udC13ZWlnaHQ6IG5vcm1h
bDsgfQorLnVpLXN0YXRlLWRpc2FibGVkLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRp
c2FibGVkLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGlzYWJsZWQgeyBvcGFjaXR5OiAu
MzU7IGZpbHRlcjpBbHBoYShPcGFjaXR5PTM1KTsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfQor
CisvKiBJY29ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIHN0
YXRlcyBhbmQgaW1hZ2VzICovCisudWktaWNvbiB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7
IGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfMjIyMjIyXzI1NngyNDAucG5n
KTsgfQorLnVpLXdpZGdldC1jb250ZW50IC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
aW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZyk7IH0KKy51aS13aWRnZXQtaGVhZGVy
IC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zX2ZmZmZmZl8y
NTZ4MjQwLnBuZyk7IH0KKy51aS1zdGF0ZS1kZWZhdWx0IC51aS1pY29uIHsgYmFja2dyb3VuZC1p
bWFnZTogdXJsKGltYWdlcy91aS1pY29uc19lZjhjMDhfMjU2eDI0MC5wbmcpOyB9CisudWktc3Rh
dGUtaG92ZXIgLnVpLWljb24sIC51aS1zdGF0ZS1mb2N1cyAudWktaWNvbiB7YmFja2dyb3VuZC1p
bWFnZTogdXJsKGltYWdlcy91aS1pY29uc19lZjhjMDhfMjU2eDI0MC5wbmcpOyB9CisudWktc3Rh
dGUtYWN0aXZlIC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25z
X2VmOGMwOF8yNTZ4MjQwLnBuZyk7IH0KKy51aS1zdGF0ZS1oaWdobGlnaHQgLnVpLWljb24ge2Jh
Y2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfMjI4ZWYxXzI1NngyNDAucG5nKTsg
fQorLnVpLXN0YXRlLWVycm9yIC51aS1pY29uLCAudWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNv
biB7YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc19mZmQyN2FfMjU2eDI0MC5w
bmcpOyB9CisKKy8qIHBvc2l0aW9uaW5nICovCisudWktaWNvbi1jYXJhdC0xLW4geyBiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiAwIDA7IH0KKy51aS1pY29uLWNhcmF0LTEtbmUgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtMTZweCAwOyB9CisudWktaWNvbi1jYXJhdC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtMzJweCAwOyB9CisudWktaWNvbi1jYXJhdC0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogLTQ4cHggMDsgfQorLnVpLWljb24tY2FyYXQtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
LTY0cHggMDsgfQorLnVpLWljb24tY2FyYXQtMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04
MHB4IDA7IH0KKy51aS1pY29uLWNhcmF0LTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4
IDA7IH0KKy51aS1pY29uLWNhcmF0LTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHgg
MDsgfQorLnVpLWljb24tY2FyYXQtMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHgg
MDsgfQorLnVpLWljb24tY2FyYXQtMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHgg
MDsgfQorLnVpLWljb24tdHJpYW5nbGUtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTZw
eDsgfQorLnVpLWljb24tdHJpYW5nbGUtMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4
IC0xNnB4OyB9CisudWktaWNvbi10cmlhbmdsZS0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAt
MzJweCAtMTZweDsgfQorLnVpLWljb24tdHJpYW5nbGUtMS1zZSB7IGJhY2tncm91bmQtcG9zaXRp
b246IC00OHB4IC0xNnB4OyB9CisudWktaWNvbi10cmlhbmdsZS0xLXMgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtNjRweCAtMTZweDsgfQorLnVpLWljb24tdHJpYW5nbGUtMS1zdyB7IGJhY2tncm91
bmQtcG9zaXRpb246IC04MHB4IC0xNnB4OyB9CisudWktaWNvbi10cmlhbmdsZS0xLXcgeyBiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTZweDsgfQorLnVpLWljb24tdHJpYW5nbGUtMS1udyB7
IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTZweDsgfQorLnVpLWljb24tdHJpYW5nbGUt
Mi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2cHg7IH0KKy51aS1pY29uLXRy
aWFuZ2xlLTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNnB4OyB9CisudWkt
aWNvbi1hcnJvdy0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0zMnB4OyB9CisudWktaWNv
bi1hcnJvdy0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTMycHg7IH0KKy51aS1p
Y29uLWFycm93LTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0zMnB4OyB9CisudWkt
aWNvbi1hcnJvdy0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTMycHg7IH0KKy51
aS1pY29uLWFycm93LTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0zMnB4OyB9Cisu
dWktaWNvbi1hcnJvdy0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTMycHg7IH0K
Ky51aS1pY29uLWFycm93LTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0zMnB4OyB9
CisudWktaWNvbi1hcnJvdy0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0zMnB4
OyB9CisudWktaWNvbi1hcnJvdy0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAt
MzJweDsgfQorLnVpLWljb24tYXJyb3ctMi1uZS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0x
NDRweCAtMzJweDsgfQorLnVpLWljb24tYXJyb3ctMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtMTYwcHggLTMycHg7IH0KKy51aS1pY29uLWFycm93LTItc2UtbncgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtMTc2cHggLTMycHg7IH0KKy51aS1pY29uLWFycm93c3RvcC0xLW4geyBiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiAtMTkycHggLTMycHg7IH0KKy51aS1pY29uLWFycm93c3RvcC0xLWUgeyBi
YWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTMycHg7IH0KKy51aS1pY29uLWFycm93c3RvcC0x
LXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTMycHg7IH0KKy51aS1pY29uLWFycm93
c3RvcC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTMycHg7IH0KKy51aS1pY29u
LWFycm93dGhpY2stMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDhweDsgfQorLnVpLWlj
b24tYXJyb3d0aGljay0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTQ4cHg7IH0K
Ky51aS1pY29uLWFycm93dGhpY2stMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTQ4
cHg7IH0KKy51aS1pY29uLWFycm93dGhpY2stMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00
OHB4IC00OHB4OyB9CisudWktaWNvbi1hcnJvd3RoaWNrLTEtcyB7IGJhY2tncm91bmQtcG9zaXRp
b246IC02NHB4IC00OHB4OyB9CisudWktaWNvbi1hcnJvd3RoaWNrLTEtc3cgeyBiYWNrZ3JvdW5k
LXBvc2l0aW9uOiAtODBweCAtNDhweDsgfQorLnVpLWljb24tYXJyb3d0aGljay0xLXcgeyBiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNDhweDsgfQorLnVpLWljb24tYXJyb3d0aGljay0xLW53
IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC00OHB4OyB9CisudWktaWNvbi1hcnJvd3Ro
aWNrLTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC00OHB4OyB9CisudWktaWNv
bi1hcnJvd3RoaWNrLTItbmUtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTQ4cHg7
IH0KKy51aS1pY29uLWFycm93dGhpY2stMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYw
cHggLTQ4cHg7IH0KKy51aS1pY29uLWFycm93dGhpY2stMi1zZS1udyB7IGJhY2tncm91bmQtcG9z
aXRpb246IC0xNzZweCAtNDhweDsgfQorLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1uIHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC00OHB4OyB9CisudWktaWNvbi1hcnJvd3RoaWNrc3Rv
cC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTQ4cHg7IH0KKy51aS1pY29uLWFy
cm93dGhpY2tzdG9wLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtNDhweDsgfQor
LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4
IC00OHB4OyB9CisudWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtdyB7IGJhY2tncm91bmQtcG9z
aXRpb246IDAgLTY0cHg7IH0KKy51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1uIHsgYmFja2dy
b3VuZC1wb3NpdGlvbjogLTE2cHggLTY0cHg7IH0KKy51aS1pY29uLWFycm93cmV0dXJudGhpY2st
MS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTY0cHg7IH0KKy51aS1pY29uLWFycm93
cmV0dXJudGhpY2stMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTY0cHg7IH0KKy51
aS1pY29uLWFycm93cmV0dXJuLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC02NHB4
OyB9CisudWktaWNvbi1hcnJvd3JldHVybi0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBw
eCAtNjRweDsgfQorLnVpLWljb24tYXJyb3dyZXR1cm4tMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogLTk2cHggLTY0cHg7IH0KKy51aS1pY29uLWFycm93cmV0dXJuLTEtcyB7IGJhY2tncm91bmQt
cG9zaXRpb246IC0xMTJweCAtNjRweDsgfQorLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtdyB7IGJh
Y2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtNjRweDsgfQorLnVpLWljb24tYXJyb3dyZWZyZXNo
LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNjRweDsgfQorLnVpLWljb24tYXJy
b3dyZWZyZXNoLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNjRweDsgfQorLnVp
LWljb24tYXJyb3dyZWZyZXNoLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNjRw
eDsgfQorLnVpLWljb24tYXJyb3ctNCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHg7IH0K
Ky51aS1pY29uLWFycm93LTQtZGlhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC04MHB4
OyB9CisudWktaWNvbi1leHRsaW5rIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTgwcHg7
IH0KKy51aS1pY29uLW5ld3dpbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC04MHB4OyB9
CisudWktaWNvbi1yZWZyZXNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTgwcHg7IH0K
Ky51aS1pY29uLXNodWZmbGUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtODBweDsgfQor
LnVpLWljb24tdHJhbnNmZXItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTgwcHg7
IH0KKy51aS1pY29uLXRyYW5zZmVydGhpY2stZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEx
MnB4IC04MHB4OyB9CisudWktaWNvbi1mb2xkZXItY29sbGFwc2VkIHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogMCAtOTZweDsgfQorLnVpLWljb24tZm9sZGVyLW9wZW4geyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtMTZweCAtOTZweDsgfQorLnVpLWljb24tZG9jdW1lbnQgeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtMzJweCAtOTZweDsgfQorLnVpLWljb24tZG9jdW1lbnQtYiB7IGJhY2tncm91bmQtcG9z
aXRpb246IC00OHB4IC05NnB4OyB9CisudWktaWNvbi1ub3RlIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogLTY0cHggLTk2cHg7IH0KKy51aS1pY29uLW1haWwtY2xvc2VkIHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogLTgwcHggLTk2cHg7IH0KKy51aS1pY29uLW1haWwtb3BlbiB7IGJhY2tncm91bmQtcG9z
aXRpb246IC05NnB4IC05NnB4OyB9CisudWktaWNvbi1zdWl0Y2FzZSB7IGJhY2tncm91bmQtcG9z
aXRpb246IC0xMTJweCAtOTZweDsgfQorLnVpLWljb24tY29tbWVudCB7IGJhY2tncm91bmQtcG9z
aXRpb246IC0xMjhweCAtOTZweDsgfQorLnVpLWljb24tcGVyc29uIHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogLTE0NHB4IC05NnB4OyB9CisudWktaWNvbi1wcmludCB7IGJhY2tncm91bmQtcG9zaXRp
b246IC0xNjBweCAtOTZweDsgfQorLnVpLWljb24tdHJhc2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtMTc2cHggLTk2cHg7IH0KKy51aS1pY29uLWxvY2tlZCB7IGJhY2tncm91bmQtcG9zaXRpb246
IC0xOTJweCAtOTZweDsgfQorLnVpLWljb24tdW5sb2NrZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtMjA4cHggLTk2cHg7IH0KKy51aS1pY29uLWJvb2ttYXJrIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogLTIyNHB4IC05NnB4OyB9CisudWktaWNvbi10YWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAt
MjQwcHggLTk2cHg7IH0KKy51aS1pY29uLWhvbWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0x
MTJweDsgfQorLnVpLWljb24tZmxhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMTJw
eDsgfQorLnVpLWljb24tY2FsZW5kYXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTEy
cHg7IH0KKy51aS1pY29uLWNhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTEycHg7
IH0KKy51aS1pY29uLXBlbmNpbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMTJweDsg
fQorLnVpLWljb24tY2xvY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTEycHg7IH0K
Ky51aS1pY29uLWRpc2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTEycHg7IH0KKy51
aS1pY29uLWNhbGN1bGF0b3IgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTExMnB4OyB9
CisudWktaWNvbi16b29taW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTExMnB4OyB9
CisudWktaWNvbi16b29tb3V0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMTJweDsg
fQorLnVpLWljb24tc2VhcmNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMTJweDsg
fQorLnVpLWljb24td3JlbmNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMTJweDsg
fQorLnVpLWljb24tZ2VhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTEycHg7IH0K
Ky51aS1pY29uLWhlYXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMTJweDsgfQor
LnVpLWljb24tc3RhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTEycHg7IH0KKy51
aS1pY29uLWxpbmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTExMnB4OyB9CisudWkt
aWNvbi1jYW5jZWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjhweDsgfQorLnVpLWljb24t
cGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMjhweDsgfQorLnVpLWljb24tcGx1
c3RoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTEyOHB4OyB9CisudWktaWNvbi1t
aW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMjhweDsgfQorLnVpLWljb24tbWlu
dXN0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMjhweDsgfQorLnVpLWljb24t
Y2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTI4cHg7IH0KKy51aS1pY29uLWNs
b3NldGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTI4cHg7IH0KKy51aS1pY29u
LWtleSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTI4cHg7IH0KKy51aS1pY29uLWxp
Z2h0YnVsYiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTI4cHg7IH0KKy51aS1pY29u
LXNjaXNzb3JzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMjhweDsgfQorLnVpLWlj
b24tY2xpcGJvYXJkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMjhweDsgfQorLnVp
LWljb24tY29weSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTI4cHg7IH0KKy51aS1p
Y29uLWNvbnRhY3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTEyOHB4OyB9CisudWkt
aWNvbi1pbWFnZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTI4cHg7IH0KKy51aS1p
Y29uLXZpZGVvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMjhweDsgfQorLnVpLWlj
b24tc2NyaXB0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMjhweDsgfQorLnVpLWlj
b24tYWxlcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNDRweDsgfQorLnVpLWljb24taW5m
byB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNDRweDsgfQorLnVpLWljb24tbm90aWNl
IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE0NHB4OyB9CisudWktaWNvbi1oZWxwIHsg
YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE0NHB4OyB9CisudWktaWNvbi1jaGVjayB7IGJh
Y2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNDRweDsgfQorLnVpLWljb24tYnVsbGV0IHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE0NHB4OyB9CisudWktaWNvbi1yYWRpby1vZmYgeyBi
YWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTQ0cHg7IH0KKy51aS1pY29uLXJhZGlvLW9uIHsg
YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNDRweDsgfQorLnVpLWljb24tcGluLXcgeyBi
YWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE0NHB4OyB9CisudWktaWNvbi1waW4tcyB7IGJh
Y2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTQ0cHg7IH0KKy51aS1pY29uLXBsYXkgeyBiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAwIC0xNjBweDsgfQorLnVpLWljb24tcGF1c2UgeyBiYWNrZ3JvdW5k
LXBvc2l0aW9uOiAtMTZweCAtMTYwcHg7IH0KKy51aS1pY29uLXNlZWstbmV4dCB7IGJhY2tncm91
bmQtcG9zaXRpb246IC0zMnB4IC0xNjBweDsgfQorLnVpLWljb24tc2Vlay1wcmV2IHsgYmFja2dy
b3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2MHB4OyB9CisudWktaWNvbi1zZWVrLWVuZCB7IGJhY2tn
cm91bmQtcG9zaXRpb246IC02NHB4IC0xNjBweDsgfQorLnVpLWljb24tc2Vlay1zdGFydCB7IGJh
Y2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDsgfQorLyogdWktaWNvbi1zZWVrLWZpcnN0
IGlzIGRlcHJlY2F0ZWQsIHVzZSB1aS1pY29uLXNlZWstc3RhcnQgaW5zdGVhZCAqLworLnVpLWlj
b24tc2Vlay1maXJzdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDsgfQorLnVp
LWljb24tc3RvcCB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNjBweDsgfQorLnVpLWlj
b24tZWplY3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2MHB4OyB9CisudWktaWNv
bi12b2x1bWUtb2ZmIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNjBweDsgfQorLnVp
LWljb24tdm9sdW1lLW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNjBweDsgfQor
LnVpLWljb24tcG93ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNzZweDsgfQorLnVpLWlj
b24tc2lnbmFsLWRpYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTc2cHg7IH0KKy51
aS1pY29uLXNpZ25hbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNzZweDsgfQorLnVp
LWljb24tYmF0dGVyeS0wIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE3NnB4OyB9Cisu
dWktaWNvbi1iYXR0ZXJ5LTEgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTc2cHg7IH0K
Ky51aS1pY29uLWJhdHRlcnktMiB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNzZweDsg
fQorLnVpLWljb24tYmF0dGVyeS0zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE3NnB4
OyB9CisudWktaWNvbi1jaXJjbGUtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE5MnB4
OyB9CisudWktaWNvbi1jaXJjbGUtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAt
MTkycHg7IH0KKy51aS1pY29uLWNpcmNsZS1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0z
MnB4IC0xOTJweDsgfQorLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWUgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtNDhweCAtMTkycHg7IH0KKy51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1zIHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE5MnB4OyB9CisudWktaWNvbi1jaXJjbGUtdHJpYW5n
bGUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xOTJweDsgfQorLnVpLWljb24tY2ly
Y2xlLXRyaWFuZ2xlLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTkycHg7IH0KKy51
aS1pY29uLWNpcmNsZS1hcnJvdy1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xOTJw
eDsgfQorLnVpLWljb24tY2lyY2xlLWFycm93LXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4
cHggLTE5MnB4OyB9CisudWktaWNvbi1jaXJjbGUtYXJyb3ctdyB7IGJhY2tncm91bmQtcG9zaXRp
b246IC0xNDRweCAtMTkycHg7IH0KKy51aS1pY29uLWNpcmNsZS1hcnJvdy1uIHsgYmFja2dyb3Vu
ZC1wb3NpdGlvbjogLTE2MHB4IC0xOTJweDsgfQorLnVpLWljb24tY2lyY2xlLXpvb21pbiB7IGJh
Y2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTkycHg7IH0KKy51aS1pY29uLWNpcmNsZS16b29t
b3V0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xOTJweDsgfQorLnVpLWljb24tY2ly
Y2xlLWNoZWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xOTJweDsgfQorLnVpLWlj
b24tY2lyY2xlc21hbGwtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIwOHB4OyB9Cisu
dWktaWNvbi1jaXJjbGVzbWFsbC1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0y
MDhweDsgfQorLnVpLWljb24tY2lyY2xlc21hbGwtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtMzJweCAtMjA4cHg7IH0KKy51aS1pY29uLXNxdWFyZXNtYWxsLXBsdXMgeyBiYWNrZ3JvdW5k
LXBvc2l0aW9uOiAtNDhweCAtMjA4cHg7IH0KKy51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVzIHsg
YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIwOHB4OyB9CisudWktaWNvbi1zcXVhcmVzbWFs
bC1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMDhweDsgfQorLnVpLWljb24t
Z3JpcC1kb3R0ZWQtdmVydGljYWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMjRweDsgfQor
LnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0x
NnB4IC0yMjRweDsgfQorLnVpLWljb24tZ3JpcC1zb2xpZC12ZXJ0aWNhbCB7IGJhY2tncm91bmQt
cG9zaXRpb246IC0zMnB4IC0yMjRweDsgfQorLnVpLWljb24tZ3JpcC1zb2xpZC1ob3Jpem9udGFs
IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIyNHB4OyB9CisudWktaWNvbi1ncmlwc21h
bGwtZGlhZ29uYWwtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjI0cHg7IH0KKy51
aS1pY29uLWdyaXAtZGlhZ29uYWwtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjI0
cHg7IH0KKworCisvKiBNaXNjIHZpc3VhbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLworCisvKiBDb3JuZXIgcmFkaXVzICovCisudWktY29ybmVyLXRsIHsgLW1vei1ib3Jk
ZXItcmFkaXVzLXRvcGxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0
cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgfQorLnVpLWNvcm5lci10ciB7IC1tb3ot
Ym9yZGVyLXJhZGl1cy10b3ByaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFk
aXVzOiA0cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IH0KKy51aS1jb3JuZXItYmwg
eyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0
b20tbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyB9Cisu
dWktY29ybmVyLWJyIHsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiA0cHg7IC13ZWJr
aXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1y
YWRpdXM6IDRweDsgfQorLnVpLWNvcm5lci10b3AgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVm
dDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1s
ZWZ0LXJhZGl1czogNHB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6IDRweDsgLXdlYmtp
dC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czog
NHB4OyB9CisudWktY29ybmVyLWJvdHRvbSB7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0
OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItYm90
dG9tLWxlZnQtcmFkaXVzOiA0cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDogNHB4
OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20t
cmlnaHQtcmFkaXVzOiA0cHg7IH0KKy51aS1jb3JuZXItcmlnaHQgeyAgLW1vei1ib3JkZXItcmFk
aXVzLXRvcHJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsg
Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJp
Z2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVy
LWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgfQorLnVpLWNvcm5lci1sZWZ0IHsgLW1vei1ib3Jk
ZXItcmFkaXVzLXRvcGxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0
cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRv
bWxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7IGJvcmRl
ci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgfQorLnVpLWNvcm5lci1hbGwgeyAtbW96LWJvcmRl
ci1yYWRpdXM6IDRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7IGJvcmRlci1yYWRpdXM6
IDRweDsgfQorCisvKiBPdmVybGF5cyAqLworLnVpLXdpZGdldC1vdmVybGF5IHsgYmFja2dyb3Vu
ZDogIzY2NjY2NiB1cmwoaW1hZ2VzL3VpLWJnX2RpYWdvbmFscy10aGlja18yMF82NjY2NjZfNDB4
NDAucG5nKSA1MCUgNTAlIHJlcGVhdDsgb3BhY2l0eTogLjUwO2ZpbHRlcjpBbHBoYShPcGFjaXR5
PTUwKTsgfQorLnVpLXdpZGdldC1zaGFkb3cgeyBtYXJnaW46IC01cHggMCAwIC01cHg7IHBhZGRp
bmc6IDVweDsgYmFja2dyb3VuZDogIzAwMDAwMCB1cmwoaW1hZ2VzL3VpLWJnX2ZsYXRfMTBfMDAw
MDAwXzQweDEwMC5wbmcpIDUwJSA1MCUgcmVwZWF0LXg7IG9wYWNpdHk6IC4yMDtmaWx0ZXI6QWxw
aGEoT3BhY2l0eT0yMCk7IC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAtd2Via2l0LWJvcmRlci1y
YWRpdXM6IDVweDsgYm9yZGVyLXJhZGl1czogNXB4OyB9LyoKKyAqIGpRdWVyeSBVSSBSZXNpemFi
bGUgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1
ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBW
ZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICog
aHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9SZXNpemFibGUjdGhlbWluZworICovCisudWktcmVz
aXphYmxlIHsgcG9zaXRpb246IHJlbGF0aXZlO30KKy51aS1yZXNpemFibGUtaGFuZGxlIHsgcG9z
aXRpb246IGFic29sdXRlO2ZvbnQtc2l6ZTogMC4xcHg7ei1pbmRleDogOTk5OTk7IGRpc3BsYXk6
IGJsb2NrO30KKy51aS1yZXNpemFibGUtZGlzYWJsZWQgLnVpLXJlc2l6YWJsZS1oYW5kbGUsIC51
aS1yZXNpemFibGUtYXV0b2hpZGUgLnVpLXJlc2l6YWJsZS1oYW5kbGUgeyBkaXNwbGF5OiBub25l
OyB9CisudWktcmVzaXphYmxlLW4geyBjdXJzb3I6IG4tcmVzaXplOyBoZWlnaHQ6IDdweDsgd2lk
dGg6IDEwMCU7IHRvcDogLTVweDsgbGVmdDogMDsgfQorLnVpLXJlc2l6YWJsZS1zIHsgY3Vyc29y
OiBzLXJlc2l6ZTsgaGVpZ2h0OiA3cHg7IHdpZHRoOiAxMDAlOyBib3R0b206IC01cHg7IGxlZnQ6
IDA7IH0KKy51aS1yZXNpemFibGUtZSB7IGN1cnNvcjogZS1yZXNpemU7IHdpZHRoOiA3cHg7IHJp
Z2h0OiAtNXB4OyB0b3A6IDA7IGhlaWdodDogMTAwJTsgfQorLnVpLXJlc2l6YWJsZS13IHsgY3Vy
c29yOiB3LXJlc2l6ZTsgd2lkdGg6IDdweDsgbGVmdDogLTVweDsgdG9wOiAwOyBoZWlnaHQ6IDEw
MCU7IH0KKy51aS1yZXNpemFibGUtc2UgeyBjdXJzb3I6IHNlLXJlc2l6ZTsgd2lkdGg6IDEycHg7
IGhlaWdodDogMTJweDsgcmlnaHQ6IDFweDsgYm90dG9tOiAxcHg7IH0KKy51aS1yZXNpemFibGUt
c3cgeyBjdXJzb3I6IHN3LXJlc2l6ZTsgd2lkdGg6IDlweDsgaGVpZ2h0OiA5cHg7IGxlZnQ6IC01
cHg7IGJvdHRvbTogLTVweDsgfQorLnVpLXJlc2l6YWJsZS1udyB7IGN1cnNvcjogbnctcmVzaXpl
OyB3aWR0aDogOXB4OyBoZWlnaHQ6IDlweDsgbGVmdDogLTVweDsgdG9wOiAtNXB4OyB9CisudWkt
cmVzaXphYmxlLW5lIHsgY3Vyc29yOiBuZS1yZXNpemU7IHdpZHRoOiA5cHg7IGhlaWdodDogOXB4
OyByaWdodDogLTVweDsgdG9wOiAtNXB4O30vKgorICogalF1ZXJ5IFVJIFNlbGVjdGFibGUgMS44
LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWku
Y29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9u
IDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDov
L2RvY3MuanF1ZXJ5LmNvbS9VSS9TZWxlY3RhYmxlI3RoZW1pbmcKKyAqLworLnVpLXNlbGVjdGFi
bGUtaGVscGVyIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDA7IGJvcmRlcjoxcHgg
ZG90dGVkIGJsYWNrOyB9CisvKgorICogalF1ZXJ5IFVJIEFjY29yZGlvbiAxLjguMTAKKyAqCisg
KiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQp
CisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNl
cy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVl
cnkuY29tL1VJL0FjY29yZGlvbiN0aGVtaW5nCisgKi8KKy8qIElFL1dpbiAtIEZpeCBhbmltYXRp
b24gYnVnIC0gIzQ2MTUgKi8KKy51aS1hY2NvcmRpb24geyB3aWR0aDogMTAwJTsgfQorLnVpLWFj
Y29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlciB7IGN1cnNvcjogcG9pbnRlcjsgcG9zaXRpb246
IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAxcHg7IHpvb206IDE7IH0KKy51aS1hY2NvcmRpb24gLnVp
LWFjY29yZGlvbi1saS1maXggeyBkaXNwbGF5OiBpbmxpbmU7IH0KKy51aS1hY2NvcmRpb24gLnVp
LWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHsgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9
CisudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIGEgeyBkaXNwbGF5OiBibG9jazsg
Zm9udC1zaXplOiAxZW07IHBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIC43ZW07IH0KKy51aS1hY2Nv
cmRpb24taWNvbnMgLnVpLWFjY29yZGlvbi1oZWFkZXIgYSB7IHBhZGRpbmctbGVmdDogMi4yZW07
IH0KKy51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXIgLnVpLWljb24geyBwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IC41ZW07IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtOHB4OyB9Cisu
dWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudCB7IHBhZGRpbmc6IDFlbSAyLjJlbTsg
Ym9yZGVyLXRvcDogMDsgbWFyZ2luLXRvcDogLTJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6
IDFweDsgbWFyZ2luLWJvdHRvbTogMnB4OyBvdmVyZmxvdzogYXV0bzsgZGlzcGxheTogbm9uZTsg
em9vbTogMTsgfQorLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIHsg
ZGlzcGxheTogYmxvY2s7IH0KKy8qCisgKiBqUXVlcnkgVUkgQXV0b2NvbXBsZXRlIDEuOC4xMAor
ICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9h
Ym91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxp
Y2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2Nz
LmpxdWVyeS5jb20vVUkvQXV0b2NvbXBsZXRlI3RoZW1pbmcKKyAqLworLnVpLWF1dG9jb21wbGV0
ZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgY3Vyc29yOiBkZWZhdWx0OyB9CQorCisvKiB3b3JrYXJv
dW5kcyAqLworKiBodG1sIC51aS1hdXRvY29tcGxldGUgeyB3aWR0aDoxcHg7IH0gLyogd2l0aG91
dCB0aGlzLCB0aGUgbWVudSBleHBhbmRzIHRvIDEwMCUgaW4gSUU2ICovCisKKy8qCisgKiBqUXVl
cnkgVUkgTWVudSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMCwgQVVUSE9SUy50eHQgKGh0
dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQg
b3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UK
KyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL01lbnUjdGhlbWluZworICovCisudWkt
bWVudSB7CisJbGlzdC1zdHlsZTpub25lOworCXBhZGRpbmc6IDJweDsKKwltYXJnaW46IDA7CisJ
ZGlzcGxheTpibG9jazsKKwlmbG9hdDogbGVmdDsKK30KKy51aS1tZW51IC51aS1tZW51IHsKKwlt
YXJnaW4tdG9wOiAtM3B4OworfQorLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSB7CisJbWFyZ2luOjA7
CisJcGFkZGluZzogMDsKKwl6b29tOiAxOworCWZsb2F0OiBsZWZ0OworCWNsZWFyOiBsZWZ0Owor
CXdpZHRoOiAxMDAlOworfQorLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSBhIHsKKwl0ZXh0LWRlY29y
YXRpb246bm9uZTsKKwlkaXNwbGF5OmJsb2NrOworCXBhZGRpbmc6LjJlbSAuNGVtOworCWxpbmUt
aGVpZ2h0OjEuNTsKKwl6b29tOjE7Cit9CisudWktbWVudSAudWktbWVudS1pdGVtIGEudWktc3Rh
dGUtaG92ZXIsCisudWktbWVudSAudWktbWVudS1pdGVtIGEudWktc3RhdGUtYWN0aXZlIHsKKwlm
b250LXdlaWdodDogbm9ybWFsOworCW1hcmdpbjogLTFweDsKK30KKy8qCisgKiBqUXVlcnkgVUkg
QnV0dG9uIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDov
L2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBH
UEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoK
KyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvQnV0dG9uI3RoZW1pbmcKKyAqLworLnVpLWJ1
dHRvbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5n
OiAwOyBtYXJnaW4tcmlnaHQ6IC4xZW07IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50
OyBjdXJzb3I6IHBvaW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgem9vbTogMTsgb3ZlcmZsb3c6
IHZpc2libGU7IH0gLyogdGhlIG92ZXJmbG93IHByb3BlcnR5IHJlbW92ZXMgZXh0cmEgd2lkdGgg
aW4gSUUgKi8KKy51aS1idXR0b24taWNvbi1vbmx5IHsgd2lkdGg6IDIuMmVtOyB9IC8qIHRvIG1h
a2Ugcm9vbSBmb3IgdGhlIGljb24sIGEgd2lkdGggbmVlZHMgdG8gYmUgc2V0IGhlcmUgKi8KK2J1
dHRvbi51aS1idXR0b24taWNvbi1vbmx5IHsgd2lkdGg6IDIuNGVtOyB9IC8qIGJ1dHRvbiBlbGVt
ZW50cyBzZWVtIHRvIG5lZWQgYSBsaXR0bGUgbW9yZSB3aWR0aCAqLworLnVpLWJ1dHRvbi1pY29u
cy1vbmx5IHsgd2lkdGg6IDMuNGVtOyB9IAorYnV0dG9uLnVpLWJ1dHRvbi1pY29ucy1vbmx5IHsg
d2lkdGg6IDMuN2VtOyB9IAorCisvKmJ1dHRvbiB0ZXh0IGVsZW1lbnQgKi8KKy51aS1idXR0b24g
LnVpLWJ1dHRvbi10ZXh0IHsgZGlzcGxheTogYmxvY2s7IGxpbmUtaGVpZ2h0OiAxLjQ7ICB9Cisu
dWktYnV0dG9uLXRleHQtb25seSAudWktYnV0dG9uLXRleHQgeyBwYWRkaW5nOiAuNGVtIDFlbTsg
fQorLnVpLWJ1dHRvbi1pY29uLW9ubHkgLnVpLWJ1dHRvbi10ZXh0LCAudWktYnV0dG9uLWljb25z
LW9ubHkgLnVpLWJ1dHRvbi10ZXh0IHsgcGFkZGluZzogLjRlbTsgdGV4dC1pbmRlbnQ6IC05OTk5
OTk5cHg7IH0KKy51aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgLnVpLWJ1dHRvbi10ZXh0LCAu
dWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRvbi10ZXh0IHsgcGFkZGluZzogLjRlbSAxZW0g
LjRlbSAyLjFlbTsgfQorLnVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1idXR0b24t
dGV4dCwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmc6IC40
ZW0gMi4xZW0gLjRlbSAxZW07IH0KKy51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLXRl
eHQgeyBwYWRkaW5nLWxlZnQ6IDIuMWVtOyBwYWRkaW5nLXJpZ2h0OiAyLjFlbTsgfQorLyogbm8g
aWNvbiBzdXBwb3J0IGZvciBpbnB1dCBlbGVtZW50cywgcHJvdmlkZSBwYWRkaW5nIGJ5IGRlZmF1
bHQgKi8KK2lucHV0LnVpLWJ1dHRvbiB7IHBhZGRpbmc6IC40ZW0gMWVtOyB9CisKKy8qYnV0dG9u
IGljb24gZWxlbWVudChzKSAqLworLnVpLWJ1dHRvbi1pY29uLW9ubHkgLnVpLWljb24sIC51aS1i
dXR0b24tdGV4dC1pY29uLXByaW1hcnkgLnVpLWljb24sIC51aS1idXR0b24tdGV4dC1pY29uLXNl
Y29uZGFyeSAudWktaWNvbiwgLnVpLWJ1dHRvbi10ZXh0LWljb25zIC51aS1pY29uLCAudWktYnV0
dG9uLWljb25zLW9ubHkgLnVpLWljb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBt
YXJnaW4tdG9wOiAtOHB4OyB9CisudWktYnV0dG9uLWljb24tb25seSAudWktaWNvbiB7IGxlZnQ6
IDUwJTsgbWFyZ2luLWxlZnQ6IC04cHg7IH0KKy51aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkg
LnVpLWJ1dHRvbi1pY29uLXByaW1hcnksIC51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9u
LWljb24tcHJpbWFyeSwgLnVpLWJ1dHRvbi1pY29ucy1vbmx5IC51aS1idXR0b24taWNvbi1wcmlt
YXJ5IHsgbGVmdDogLjVlbTsgfQorLnVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1i
dXR0b24taWNvbi1zZWNvbmRhcnksIC51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLWlj
b24tc2Vjb25kYXJ5LCAudWktYnV0dG9uLWljb25zLW9ubHkgLnVpLWJ1dHRvbi1pY29uLXNlY29u
ZGFyeSB7IHJpZ2h0OiAuNWVtOyB9CisudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRvbi1p
Y29uLXNlY29uZGFyeSwgLnVpLWJ1dHRvbi1pY29ucy1vbmx5IC51aS1idXR0b24taWNvbi1zZWNv
bmRhcnkgeyByaWdodDogLjVlbTsgfQorCisvKmJ1dHRvbiBzZXRzKi8KKy51aS1idXR0b25zZXQg
eyBtYXJnaW4tcmlnaHQ6IDdweDsgfQorLnVpLWJ1dHRvbnNldCAudWktYnV0dG9uIHsgbWFyZ2lu
LWxlZnQ6IDA7IG1hcmdpbi1yaWdodDogLS4zZW07IH0KKworLyogd29ya2Fyb3VuZHMgKi8KK2J1
dHRvbi51aS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIgeyBib3JkZXI6IDA7IHBhZGRpbmc6IDA7
IH0gLyogcmVzZXQgZXh0cmEgcGFkZGluZyBpbiBGaXJlZm94ICovCisvKgorICogalF1ZXJ5IFVJ
IERpYWxvZyAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6
Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3Ig
R1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAq
CisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0RpYWxvZyN0aGVtaW5nCisgKi8KKy51aS1k
aWFsb2cgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHBhZGRpbmc6IC4yZW07IHdpZHRoOiAzMDBweDsg
b3ZlcmZsb3c6IGhpZGRlbjsgfQorLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyIHsgcGFk
ZGluZzogLjRlbSAxZW07IHBvc2l0aW9uOiByZWxhdGl2ZTsgIH0KKy51aS1kaWFsb2cgLnVpLWRp
YWxvZy10aXRsZSB7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IC4xZW0gMTZweCAuMWVtIDA7IH0gCisu
dWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgeyBwb3NpdGlvbjogYWJzb2x1dGU7
IHJpZ2h0OiAuM2VtOyB0b3A6IDUwJTsgd2lkdGg6IDE5cHg7IG1hcmdpbjogLTEwcHggMCAwIDA7
IHBhZGRpbmc6IDFweDsgaGVpZ2h0OiAxOHB4OyB9CisudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0
bGViYXItY2xvc2Ugc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDFweDsgfQorLnVpLWRp
YWxvZyAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlOmhvdmVyLCAudWktZGlhbG9nIC51aS1kaWFs
b2ctdGl0bGViYXItY2xvc2U6Zm9jdXMgeyBwYWRkaW5nOiAwOyB9CisudWktZGlhbG9nIC51aS1k
aWFsb2ctY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyOiAwOyBwYWRkaW5nOiAu
NWVtIDFlbTsgYmFja2dyb3VuZDogbm9uZTsgb3ZlcmZsb3c6IGF1dG87IHpvb206IDE7IH0KKy51
aS1kaWFsb2cgLnVpLWRpYWxvZy1idXR0b25wYW5lIHsgdGV4dC1hbGlnbjogbGVmdDsgYm9yZGVy
LXdpZHRoOiAxcHggMCAwIDA7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IG1hcmdpbjogLjVlbSAw
IDAgMDsgcGFkZGluZzogLjNlbSAxZW0gLjVlbSAuNGVtOyB9CisudWktZGlhbG9nIC51aS1kaWFs
b2ctYnV0dG9ucGFuZSAudWktZGlhbG9nLWJ1dHRvbnNldCB7IGZsb2F0OiByaWdodDsgfQorLnVp
LWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgYnV0dG9uIHsgbWFyZ2luOiAuNWVtIC40ZW0g
LjVlbSAwOyBjdXJzb3I6IHBvaW50ZXI7IH0KKy51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSB7
IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IHJpZ2h0OiAzcHg7IGJvdHRvbTogM3B4OyB9Cisu
dWktZHJhZ2dhYmxlIC51aS1kaWFsb2ctdGl0bGViYXIgeyBjdXJzb3I6IG1vdmU7IH0KKy8qCisg
KiBqUXVlcnkgVUkgU2xpZGVyIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JT
LnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIg
dGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcv
bGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvU2xpZGVyI3RoZW1pbmcK
KyAqLworLnVpLXNsaWRlciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogbGVmdDsg
fQorLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1p
bmRleDogMjsgd2lkdGg6IDEuMmVtOyBoZWlnaHQ6IDEuMmVtOyBjdXJzb3I6IGRlZmF1bHQ7IH0K
Ky51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRl
eDogMTsgZm9udC1zaXplOiAuN2VtOyBkaXNwbGF5OiBibG9jazsgYm9yZGVyOiAwOyBiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiAwIDA7IH0KKworLnVpLXNsaWRlci1ob3Jpem9udGFsIHsgaGVpZ2h0OiAu
OGVtOyB9CisudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUgeyB0b3A6IC0u
M2VtOyBtYXJnaW4tbGVmdDogLS42ZW07IH0KKy51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xp
ZGVyLXJhbmdlIHsgdG9wOiAwOyBoZWlnaHQ6IDEwMCU7IH0KKy51aS1zbGlkZXItaG9yaXpvbnRh
bCAudWktc2xpZGVyLXJhbmdlLW1pbiB7IGxlZnQ6IDA7IH0KKy51aS1zbGlkZXItaG9yaXpvbnRh
bCAudWktc2xpZGVyLXJhbmdlLW1heCB7IHJpZ2h0OiAwOyB9CisKKy51aS1zbGlkZXItdmVydGlj
YWwgeyB3aWR0aDogLjhlbTsgaGVpZ2h0OiAxMDBweDsgfQorLnVpLXNsaWRlci12ZXJ0aWNhbCAu
dWktc2xpZGVyLWhhbmRsZSB7IGxlZnQ6IC0uM2VtOyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLWJv
dHRvbTogLS42ZW07IH0KKy51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZSB7IGxl
ZnQ6IDA7IHdpZHRoOiAxMDAlOyB9CisudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFu
Z2UtbWluIHsgYm90dG9tOiAwOyB9CisudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFu
Z2UtbWF4IHsgdG9wOiAwOyB9LyoKKyAqIGpRdWVyeSBVSSBUYWJzIDEuOC4xMAorICoKKyAqIENv
cHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAq
IER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgor
ICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5j
b20vVUkvVGFicyN0aGVtaW5nCisgKi8KKy51aS10YWJzIHsgcG9zaXRpb246IHJlbGF0aXZlOyBw
YWRkaW5nOiAuMmVtOyB6b29tOiAxOyB9IC8qIHBvc2l0aW9uOiByZWxhdGl2ZSBwcmV2ZW50cyBJ
RSBzY3JvbGwgYnVnIChlbGVtZW50IHdpdGggcG9zaXRpb246IHJlbGF0aXZlIGluc2lkZSBjb250
YWluZXIgd2l0aCBvdmVyZmxvdzogYXV0byBhcHBlYXIgYXMgImZpeGVkIikgKi8KKy51aS10YWJz
IC51aS10YWJzLW5hdiB7IG1hcmdpbjogMDsgcGFkZGluZzogLjJlbSAuMmVtIDA7IH0KKy51aS10
YWJzIC51aS10YWJzLW5hdiBsaSB7IGxpc3Qtc3R5bGU6IG5vbmU7IGZsb2F0OiBsZWZ0OyBwb3Np
dGlvbjogcmVsYXRpdmU7IHRvcDogMXB4OyBtYXJnaW46IDAgLjJlbSAxcHggMDsgYm9yZGVyLWJv
dHRvbTogMCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Cisu
dWktdGFicyAudWktdGFicy1uYXYgbGkgYSB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAuNWVtIDFl
bTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CisudWktdGFicyAudWktdGFicy1uYXYgbGkudWkt
dGFicy1zZWxlY3RlZCB7IG1hcmdpbi1ib3R0b206IDA7IHBhZGRpbmctYm90dG9tOiAxcHg7IH0K
Ky51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS10YWJzLXNlbGVjdGVkIGEsIC51aS10YWJzIC51
aS10YWJzLW5hdiBsaS51aS1zdGF0ZS1kaXNhYmxlZCBhLCAudWktdGFicyAudWktdGFicy1uYXYg
bGkudWktc3RhdGUtcHJvY2Vzc2luZyBhIHsgY3Vyc29yOiB0ZXh0OyB9CisudWktdGFicyAudWkt
dGFicy1uYXYgbGkgYSwgLnVpLXRhYnMudWktdGFicy1jb2xsYXBzaWJsZSAudWktdGFicy1uYXYg
bGkudWktdGFicy1zZWxlY3RlZCBhIHsgY3Vyc29yOiBwb2ludGVyOyB9IC8qIGZpcnN0IHNlbGVj
dG9yIGluIGdyb3VwIHNlZW1zIG9ic29sZXRlLCBidXQgcmVxdWlyZWQgdG8gb3ZlcmNvbWUgYnVn
IGluIE9wZXJhIGFwcGx5aW5nIGN1cnNvcjogdGV4dCBvdmVyYWxsIGlmIGRlZmluZWQgZWxzZXdo
ZXJlLi4uICovCisudWktdGFicyAudWktdGFicy1wYW5lbCB7IGRpc3BsYXk6IGJsb2NrOyBib3Jk
ZXItd2lkdGg6IDA7IHBhZGRpbmc6IDFlbSAxLjRlbTsgYmFja2dyb3VuZDogbm9uZTsgfQorLnVp
LXRhYnMgLnVpLXRhYnMtaGlkZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfQorLyoKKyAq
IGpRdWVyeSBVSSBEYXRlcGlja2VyIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRI
T1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5k
ZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5v
cmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRGF0ZXBpY2tlciN0
aGVtaW5nCisgKi8KKy51aS1kYXRlcGlja2VyIHsgd2lkdGg6IDE3ZW07IHBhZGRpbmc6IC4yZW0g
LjJlbSAwOyBkaXNwbGF5OiBub25lOyB9CisudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1o
ZWFkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZzouMmVtIDA7IH0KKy51aS1kYXRlcGlj
a2VyIC51aS1kYXRlcGlja2VyLXByZXYsIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5l
eHQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOiAycHg7IHdpZHRoOiAxLjhlbTsgaGVpZ2h0OiAx
LjhlbTsgfQorLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlciwgLnVpLWRh
dGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7IHRvcDogMXB4OyB9CisudWktZGF0
ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHsgbGVmdDoycHg7IH0KKy51aS1kYXRlcGlja2Vy
IC51aS1kYXRlcGlja2VyLW5leHQgeyByaWdodDoycHg7IH0KKy51aS1kYXRlcGlja2VyIC51aS1k
YXRlcGlja2VyLXByZXYtaG92ZXIgeyBsZWZ0OjFweDsgfQorLnVpLWRhdGVwaWNrZXIgLnVpLWRh
dGVwaWNrZXItbmV4dC1ob3ZlciB7IHJpZ2h0OjFweDsgfQorLnVpLWRhdGVwaWNrZXIgLnVpLWRh
dGVwaWNrZXItcHJldiBzcGFuLCAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHNw
YW4geyBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MCU7IG1hcmdp
bi1sZWZ0OiAtOHB4OyB0b3A6IDUwJTsgbWFyZ2luLXRvcDogLThweDsgIH0KKy51aS1kYXRlcGlj
a2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHsgbWFyZ2luOiAwIDIuM2VtOyBsaW5lLWhlaWdodDog
MS44ZW07IHRleHQtYWxpZ246IGNlbnRlcjsgfQorLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNr
ZXItdGl0bGUgc2VsZWN0IHsgZm9udC1zaXplOjFlbTsgbWFyZ2luOjFweCAwOyB9CisudWktZGF0
ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aC15ZWFyIHt3aWR0aDogMTAwJTt9Cisu
dWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgCisudWktZGF0ZXBpY2tl
ciBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIHsgd2lkdGg6IDQ5JTt9CisudWktZGF0ZXBpY2tl
ciB0YWJsZSB7d2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogLjllbTsgYm9yZGVyLWNvbGxhcHNlOiBj
b2xsYXBzZTsgbWFyZ2luOjAgMCAuNGVtOyB9CisudWktZGF0ZXBpY2tlciB0aCB7IHBhZGRpbmc6
IC43ZW0gLjNlbTsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXdlaWdodDogYm9sZDsgYm9yZGVy
OiAwOyAgfQorLnVpLWRhdGVwaWNrZXIgdGQgeyBib3JkZXI6IDA7IHBhZGRpbmc6IDFweDsgfQor
LnVpLWRhdGVwaWNrZXIgdGQgc3BhbiwgLnVpLWRhdGVwaWNrZXIgdGQgYSB7IGRpc3BsYXk6IGJs
b2NrOyBwYWRkaW5nOiAuMmVtOyB0ZXh0LWFsaWduOiByaWdodDsgdGV4dC1kZWNvcmF0aW9uOiBu
b25lOyB9CisudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHsgYmFja2dy
b3VuZC1pbWFnZTogbm9uZTsgbWFyZ2luOiAuN2VtIDAgMCAwOyBwYWRkaW5nOjAgLjJlbTsgYm9y
ZGVyLWxlZnQ6IDA7IGJvcmRlci1yaWdodDogMDsgYm9yZGVyLWJvdHRvbTogMDsgfQorLnVpLWRh
dGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24geyBmbG9hdDogcmlnaHQ7
IG1hcmdpbjogLjVlbSAuMmVtIC40ZW07IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZzogLjJlbSAu
NmVtIC4zZW0gLjZlbTsgd2lkdGg6YXV0bzsgb3ZlcmZsb3c6dmlzaWJsZTsgfQorLnVpLWRhdGVw
aWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJy
ZW50IHsgZmxvYXQ6bGVmdDsgfQorCisvKiB3aXRoIG11bHRpcGxlIGNhbGVuZGFycyAqLworLnVp
LWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1tdWx0aSB7IHdpZHRoOmF1dG87IH0KKy51aS1kYXRl
cGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgZmxvYXQ6bGVmdDsgfQorLnVpLWRh
dGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAgdGFibGUgeyB3aWR0aDo5NSU7IG1h
cmdpbjowIGF1dG8gLjRlbTsgfQorLnVpLWRhdGVwaWNrZXItbXVsdGktMiAudWktZGF0ZXBpY2tl
ci1ncm91cCB7IHdpZHRoOjUwJTsgfQorLnVpLWRhdGVwaWNrZXItbXVsdGktMyAudWktZGF0ZXBp
Y2tlci1ncm91cCB7IHdpZHRoOjMzLjMlOyB9CisudWktZGF0ZXBpY2tlci1tdWx0aS00IC51aS1k
YXRlcGlja2VyLWdyb3VwIHsgd2lkdGg6MjUlOyB9CisudWktZGF0ZXBpY2tlci1tdWx0aSAudWkt
ZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlja2VyLWhlYWRlciB7IGJvcmRlci1sZWZ0
LXdpZHRoOjA7IH0KKy51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLW1p
ZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItbGVmdC13aWR0aDowOyB9CisudWkt
ZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHsgY2xlYXI6bGVmdDsg
fQorLnVpLWRhdGVwaWNrZXItcm93LWJyZWFrIHsgY2xlYXI6Ym90aDsgd2lkdGg6MTAwJTsgfQor
CisvKiBSVEwgc3VwcG9ydCAqLworLnVpLWRhdGVwaWNrZXItcnRsIHsgZGlyZWN0aW9uOiBydGw7
IH0KKy51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2IHsgcmlnaHQ6IDJweDsg
bGVmdDogYXV0bzsgfQorLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQgeyBs
ZWZ0OiAycHg7IHJpZ2h0OiBhdXRvOyB9CisudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNr
ZXItcHJldjpob3ZlciB7IHJpZ2h0OiAxcHg7IGxlZnQ6IGF1dG87IH0KKy51aS1kYXRlcGlja2Vy
LXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0OmhvdmVyIHsgbGVmdDogMXB4OyByaWdodDogYXV0bzsg
fQorLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgeyBjbGVhcjpy
aWdodDsgfQorLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0
dG9uIHsgZmxvYXQ6IGxlZnQ7IH0KKy51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1i
dXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQgeyBmbG9hdDpyaWdodDsgfQor
LnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgZmxvYXQ6cmlnaHQ7IH0K
Ky51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlj
a2VyLWhlYWRlciB7IGJvcmRlci1yaWdodC13aWR0aDowOyBib3JkZXItbGVmdC13aWR0aDoxcHg7
IH0KKy51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRh
dGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOjA7IGJvcmRlci1sZWZ0LXdpZHRo
OjFweDsgfQorCisvKiBJRTYgSUZSQU1FIEZJWCAodGFrZW4gZnJvbSBkYXRlcGlja2VyIDEuNS4z
ICovCisudWktZGF0ZXBpY2tlci1jb3ZlciB7CisgICAgZGlzcGxheTogbm9uZTsgLypzb3JyeSBm
b3IgSUU1Ki8KKyAgICBkaXNwbGF5LyoqLzogYmxvY2s7IC8qc29ycnkgZm9yIElFNSovCisgICAg
cG9zaXRpb246IGFic29sdXRlOyAvKm11c3QgaGF2ZSovCisgICAgei1pbmRleDogLTE7IC8qbXVz
dCBoYXZlKi8KKyAgICBmaWx0ZXI6IG1hc2soKTsgLyptdXN0IGhhdmUqLworICAgIHRvcDogLTRw
eDsgLyptdXN0IGhhdmUqLworICAgIGxlZnQ6IC00cHg7IC8qbXVzdCBoYXZlKi8KKyAgICB3aWR0
aDogMjAwcHg7IC8qbXVzdCBoYXZlKi8KKyAgICBoZWlnaHQ6IDIwMHB4OyAvKm11c3QgaGF2ZSov
Cit9LyoKKyAqIGpRdWVyeSBVSSBQcm9ncmVzc2JhciAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQg
MjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxp
Y2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6
Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1By
b2dyZXNzYmFyI3RoZW1pbmcKKyAqLworLnVpLXByb2dyZXNzYmFyIHsgaGVpZ2h0OjJlbTsgdGV4
dC1hbGlnbjogbGVmdDsgfQorLnVpLXByb2dyZXNzYmFyIC51aS1wcm9ncmVzc2Jhci12YWx1ZSB7
bWFyZ2luOiAtMXB4OyBoZWlnaHQ6MTAwJTsgfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2Nzc1RyYW5zZm9ybS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY3NzVHJhbnNmb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmMzYjk5NjQ4YWNhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzVHJhbnNmb3JtLmh0bWwK
QEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisjcGFyZW50WSB7Cisg
IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwMDBweCk7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVZKC0xMDAwMHB4KTsKKyAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAwMHB4
KTsKKyAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwMDBweCk7CisgIC1tb3otdHJhbnNm
b3JtOiB0cmFuc2xhdGVZKC0xMDAwMHB4KTsKK30KKyNwYXJlbnRYIHsKKyAgdHJhbnNmb3JtOiB0
cmFuc2xhdGVYKC0xMDAwMHB4KTsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEw
MDAwcHgpOworICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMDAwcHgpOworICAtbXMtdHJh
bnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAwMHB4KTsKKyAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0
ZVgoLTEwMDAwcHgpOworfQorI3RyYW5zZm9ybVggeworICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgo
LTEwMDAwcHgpOworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwMDBweCk7Cisg
IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwMDBweCk7CisgIC1tcy10cmFuc2Zvcm06IHRy
YW5zbGF0ZVgoLTEwMDAwcHgpOworICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwMDBw
eCk7Cit9CisjdHJhbnNmb3JtWSB7CisgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwMDBweCk7
CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAwMHB4KTsKKyAgLW8tdHJhbnNm
b3JtOiB0cmFuc2xhdGVZKC0xMDAwMHB4KTsKKyAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgt
MTAwMDBweCk7CisgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAwMHB4KTsKK30KKwor
I3plcm8tdHJhbnNmb3JtIHsKKyAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7CisgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7CisgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRl
WSgwcHgpOworICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7CisgIC1tb3otdHJhbnNm
b3JtOiB0cmFuc2xhdGVZKDBweCk7CisgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOworICAt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOworICAtby10cmFuc2Zvcm06IHRyYW5z
bGF0ZVgoMHB4KTsKKyAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOworICAtbW96LXRy
YW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOworfQorPC9zdHlsZT4KKzxkaXYgaWQ9J3plcm8tdHJh
bmZvcm0nPgorWW91IHNob3VsZG4ndCBzZWUgYW55dGhpbmcgb3RoZXIgdGhhbiB0aGlzIHNlbnRl
bmNlIG9uIHRoZSBwYWdlCis8L2Rpdj4KKzxkaXYgaWQ9J3BhcmVudFknPgorICBJIGhhdmUgYSBo
aWRkZW4gY2hpbGQKKyAgPGRpdiBpZD0nY2hpbGRZJz4KKyAgICBJIGFtIGEgaGlkZGVuIGNoaWxk
CisgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSdwYXJlbnRYJz4KKyAgSSBoYXZlIGEgaGlkZGVu
IGNoaWxkCisgIDxkaXYgaWQ9J2NoaWxkWCc+CisgICAgSSBhbSBhIGhpZGRlbiBjaGlsZAorICA8
L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0ndHJhbnNmb3JtWCc+SSBhbSBhIGhpZGRlbiBlbGVtZW50
IDwvZGl2PgorPGRpdiBpZD0ndHJhbnNmb3JtWSc+SSBhbSBhIGhpZGRlbiBlbGVtZW50IDwvZGl2
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY3NzVHJhbnNmb3JtMi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvY3NzVHJhbnNmb3JtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi42MDI5MjRiZmJiYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzc1RyYW5zZm9ybTIu
aHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyNuZWdhdGl2
ZS1wZXJjZW50YWdlLXRyYW5zZm9ybVl7CisgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzVweCk7
CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03NSUpOworICAtby10cmFuc2Zvcm06
IHRyYW5zbGF0ZVkoLTc1JSk7CisgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTc1JSk7Cisg
IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03NSUpOworfQorLmJsb2NrIHsKKyAgZGlzcGxh
eSA9IGJsb2NrOworfQorPC9zdHlsZT4KKzxkaXYgY2xhc3M9J2Jsb2NrJz4KKyAgPGJyLz4KKzwv
ZGl2PgorICA8YnIvPgorPGRpdiBjbGFzcz0nYmxvY2snPgorPC9kaXY+Cis8ZGl2IGlkPSduZWdh
dGl2ZS1wZXJjZW50YWdlLXRyYW5zZm9ybVknPkkgYW0gbm90IGEgaGlkZGVuIGVsZW1lbnQgPC9k
aXY+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9kb2N1bWVudF93cml0ZV9pbl9vbmxvYWQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2RvY3VtZW50X3dyaXRlX2luX29ubG9hZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMTVmYzQ3OWVhOQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2RvY3VtZW50X3dyaXRlX2luX29ubG9hZC5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5Eb2N1bWVudCBXcml0ZSBJbiBPbmxvYWQ8L3RpdGxl
PgorICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICBkb2N1bWVudC53cml0
ZWxuKCdnb29kYnllLCB3b3JsZCEnKTsKKyAgICB9CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJpbml0KCk7Ij4KKzxwPmhlbGxvIHdvcmxkPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvZHJhZ0FuZERyb3BJbnNpZGVTY3JvbGxlZERpdi5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHJhZ0FuZERyb3BJbnNpZGVTY3JvbGxl
ZERpdi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYjJlZTlh
MjQ2MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2RyYWdBbmREcm9wSW5zaWRlU2Nyb2xsZWREaXYuaHRtbApAQCAtMCww
ICsxLDY3IEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorPCEtLQorLmRyYWdtZXtwb3NpdGlv
bjpyZWxhdGl2ZTt9CistLT4KKzwvc3R5bGU+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
MS4yIj4KKzwhLS0KKwordmFyIGllPWRvY3VtZW50LmFsbDsKK3ZhciBubjY9ZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQmJiFkb2N1bWVudC5hbGw7CisKK3ZhciBpc2RyYWc9ZmFsc2U7Cit2YXIgeCx5
OwordmFyIGRvYmo7CisKK2Z1bmN0aW9uIG1vdmVtb3VzZShlKQoreworCisgIGlmIChpc2RyYWcp
CisgIHsKKyAgICBkb2JqLnN0eWxlLmxlZnQgPSBubjYgPyB0eCArIGUuY2xpZW50WCAtIHggOiB0
eCArIGV2ZW50LmNsaWVudFggLSB4OworICAgIGRvYmouc3R5bGUudG9wICA9IG5uNiA/IHR5ICsg
ZS5jbGllbnRZIC0geSA6IHR5ICsgZXZlbnQuY2xpZW50WSAtIHk7CisgICAgcmV0dXJuIGZhbHNl
OworICB9Cit9CisKK2Z1bmN0aW9uIHNlbGVjdG1vdXNlKGUpCit7CisgIHZhciBmb2JqICAgICAg
ID0gbm42ID8gZS50YXJnZXQgOiBldmVudC5zcmNFbGVtZW50OworICB2YXIgdG9wZWxlbWVudCA9
IG5uNiA/ICJIVE1MIiA6ICJCT0RZIjsKKworICB3aGlsZSAoZm9iai50YWdOYW1lICE9IHRvcGVs
ZW1lbnQgJiYgZm9iai5jbGFzc05hbWUgIT0gImRyYWdtZSIpCisgIHsKKyAgICBmb2JqID0gbm42
ID8gZm9iai5wYXJlbnROb2RlIDogZm9iai5wYXJlbnRFbGVtZW50OworICB9CisKKyAgaWYgKGZv
YmouY2xhc3NOYW1lPT0iZHJhZ21lIikKKyAgeworICAgIGlzZHJhZyA9IHRydWU7CisgICAgZG9i
aiA9IGZvYmo7CisgICAgdHggPSBwYXJzZUludChkb2JqLnN0eWxlLmxlZnQrMCk7CisgICAgdHkg
PSBwYXJzZUludChkb2JqLnN0eWxlLnRvcCswKTsKKyAgICB4ID0gbm42ID8gZS5jbGllbnRYIDog
ZXZlbnQuY2xpZW50WDsKKyAgICB5ID0gbm42ID8gZS5jbGllbnRZIDogZXZlbnQuY2xpZW50WTsK
KyAgICBkb2N1bWVudC5vbm1vdXNlbW92ZT1tb3ZlbW91c2U7CisgICAgcmV0dXJuIGZhbHNlOwor
ICB9Cit9CisKK2RvY3VtZW50Lm9ubW91c2Vkb3duPXNlbGVjdG1vdXNlOworZG9jdW1lbnQub25t
b3VzZXVwPW5ldyBGdW5jdGlvbigiaXNkcmFnPWZhbHNlIik7CisKKy8vLS0+Cis8L3NjcmlwdD4K
KworPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9Im92ZXJmbG93OiBzY3JvbGw7IG1hcmdp
bjogMjBweDsgaGVpZ2h0OiA5MCU7IHdpZHRoOiA5MCUiPgorICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDogNDAwMHB4OyB3aWR0aDogNDAwMHB4OyI+CisgICAgICA8ZGl2IGlkPSJ0ZXN0MSIgY2xhc3M9
ImRyYWdtZSIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyIgLz4KKyAgICA8L2Rp
dj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvZHJhZ0FuZERyb3BUZXN0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9kcmFnQW5kRHJvcFRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmRlZTE2YjBiNGUKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFnQW5kRHJv
cFRlc3QuaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPGh0bWw+Cis8Ym9keT4KKworPHN0eWxlPgor
PCEtLQorLmRyYWdtZXtwb3NpdGlvbjpyZWxhdGl2ZTt9CistLT4KKzwvc3R5bGU+Cis8c2NyaXB0
IGxhbmd1YWdlPSJKYXZhU2NyaXB0MS4yIj4KKzwhLS0KKwordmFyIGllPWRvY3VtZW50LmFsbDsK
K3ZhciBubjY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQmJiFkb2N1bWVudC5hbGw7CisKK3ZhciBp
c2RyYWc9ZmFsc2U7Cit2YXIgeCx5OwordmFyIGRvYmo7CisKK2Z1bmN0aW9uIG1vdmVtb3VzZShl
KQoreworICBpZiAoaXNkcmFnKQorICB7CisgICAgaWYgKGUgJiYgZS5jbGllbnRYKQorICAgIHsK
KyAgICAgIGRvYmouc3R5bGUubGVmdCA9IHR4ICsgZS5jbGllbnRYIC0geDsKKyAgICAgIGRvYmou
c3R5bGUudG9wID0gdHkgKyBlLmNsaWVudFkgLSB5CisgICAgfQorICAgIGVsc2UKKyAgICB7Cisg
ICAgICBkb2JqLnN0eWxlLmxlZnQgPSB0eCArIGV2ZW50LmNsaWVudFggLSB4OworICAgICAgZG9i
ai5zdHlsZS50b3AgPSB0eSArIGV2ZW50LmNsaWVudFkgLSB5OworICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7CisgIH0KK30KKworZnVuY3Rpb24gc2VsZWN0bW91c2UoZSkKK3sKKyAgdmFyIGZvYmo7
CisgIHZhciB0b3BlbGVtZW50OworICBpZiAoZSAmJiBlLnRhcmdldCkKKyAgeworICAgIGZvYmog
PSBlLnRhcmdldDsKKyAgICB0b3BlbGVtZW50ID0gIkhUTUwiOworICB9CisgIGVsc2UKKyAgewor
ICAgIGZvYmogPSBldmVudC5zcmNFbGVtZW50OworICAgIHRvcGVsZW1lbnQgPSAiQk9EWSI7Cisg
IH0KKworICB3aGlsZSAoZm9iai50YWdOYW1lICE9IHRvcGVsZW1lbnQgJiYgZm9iai5jbGFzc05h
bWUgIT0gImRyYWdtZSIpCisgIHsKKyAgICBpZiAoZm9iai5wYXJlbnROb2RlKQorICAgIHsKKyAg
ICAgIGZvYmogPSBmb2JqLnBhcmVudE5vZGU7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAg
ICBmb2JqID0gZm9iai5wYXJlbnRFbGVtZW50OworICAgIH0KKyAgfQorCisgIGlmIChmb2JqLmNs
YXNzTmFtZT09ImRyYWdtZSIpCisgIHsKKyAgICBpc2RyYWcgPSB0cnVlOworICAgIGRvYmogPSBm
b2JqOworICAgIHR4ID0gcGFyc2VJbnQoZG9iai5zdHlsZS5sZWZ0KzApOworICAgIHR5ID0gcGFy
c2VJbnQoZG9iai5zdHlsZS50b3ArMCk7CisgICAgaWYgKGUgJiYgZS5jbGllbnRYKQorICAgIHsK
KyAgICAgIHggPSBlLmNsaWVudFg7CisgICAgICB5ID0gZS5jbGllbnRZOworICAgIH0KKyAgICBl
bHNlCisgICAgeworICAgICAgeCA9IGV2ZW50LmNsaWVudFg7CisgICAgICB5ID0gZXZlbnQuY2xp
ZW50WTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5vbm1vdXNlbW92ZT1tb3ZlbW91c2U7CisgICAg
cmV0dXJuIGZhbHNlOworICB9Cit9CisKK2RvY3VtZW50Lm9ubW91c2Vkb3duPXNlbGVjdG1vdXNl
OworZG9jdW1lbnQub25tb3VzZXVwPW5ldyBGdW5jdGlvbigiaXNkcmFnPWZhbHNlIik7CisKKy8v
LS0+Cis8L3NjcmlwdD4KKworCisKKzxpbWcgc3JjPSJpY29uLmdpZiIgY2xhc3M9ImRyYWdtZSIg
aWQ9InRlc3QxIj48YnI+Cis8aW1nIHNyYz0iaWNvbi5naWYiIGNsYXNzPSJkcmFnbWUiIGlkPSJ0
ZXN0MiI+PGJyPgorPGI+IkhpIHRoZXJlPC9iPgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyBsZWZ0OiAyMTBweDsgdG9wOiA4MHB4OyBoZWlnaHQ6IDQwMHB4OyB3aWR0aDogMTAwcHg7
IHBhZGRpbmc6IDEwZW07Ij4KKzxpbWcgc3JjPSJpY29uLmdpZiIgY2xhc3M9ImRyYWdtZSIgaWQ9
InRlc3QzIj48YnI+Cis8aW1nIHNyYz0iaWNvbi5naWYiIGNsYXNzPSJkcmFnbWUiIGlkPSJ0ZXN0
NCI+PGJyPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFnRHJvcE92ZXJmbG93Lmh0
bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFn
RHJvcE92ZXJmbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmVjYjI1NjI1ZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHJhZ0Ryb3BPdmVyZmxvdy5odG1sCkBAIC0wLDAgKzEs
MTA0IEBACis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSI+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CisgICAgYm9keSB7CisgICAgICBjb2xvcjogIzIyMjsKKyAgICAgIGZvbnQtc2l6ZTog
MTNweDsKKyAgICB9CisKKyAgICAudGltZS1zbG90IHsKKyAgICAgIGhlaWdodDogNDdweDsKKyAg
ICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Rk
ZDsKKyAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDsKKyAgICAgIHotaW5kZXg6IDI7CisgICAgfQor
CisgICAgI3RpbWUtbWFya2VyIHsKKyAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAjNGQ5MGZl
OworICAgICAgaGVpZ2h0OiA2cHg7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB3
aWR0aDogMTAwJTsKKyAgICAgIHotaW5kZXg6IDQ7CisgICAgICBjdXJzb3I6IHJvdy1yZXNpemU7
CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA0NzBw
eDsiPgorICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij4KKyAgICA8ZGl2IHN0eWxl
PSJvdmVyZmxvdzogYXV0bzsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDg1JTsgYm9yZGVy
OiAxcHggc29saWQgI2ViZWJlYiI+CisgICAgICA8ZGl2IGlkPSJ0aW1lLW1hcmtlciIgc3R5bGU9
InRvcDogNDMyOyI+PC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjEyYW08L2Rp
dj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+MWFtPC9kaXY+CisgICAgICA8ZGl2IGNs
YXNzPSJ0aW1lLXNsb3QiPjJhbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90Ij4z
YW08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+NGFtPC9kaXY+CisgICAgICA8
ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjVhbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1z
bG90Ij42YW08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+N2FtPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjhhbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0i
dGltZS1zbG90Ij45YW08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+MTBhbTwv
ZGl2PgorICAgICAgPGRpdiBpZD0iMTFhbSIgY2xhc3M9InRpbWUtc2xvdCI+MTFhbTwvZGl2Pgor
ICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90Ij4xMnBtPC9kaXY+CisgICAgICA8ZGl2IGNsYXNz
PSJ0aW1lLXNsb3QiPjFwbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90Ij4ycG08
L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+M3BtPC9kaXY+CisgICAgICA8ZGl2
IGNsYXNzPSJ0aW1lLXNsb3QiPjRwbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90
Ij41cG08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+NnBtPC9kaXY+CisgICAg
ICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjdwbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGlt
ZS1zbG90Ij44cG08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+OXBtPC9kaXY+
CisgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjEwcG08L2Rpdj4KKyAgICAgIDxkaXYgY2xh
c3M9InRpbWUtc2xvdCI+MTFwbTwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2Pgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICB2YXIgc3RhcnRUaW1lID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RpbWUtbWFya2VyJyk7CisKKyAgdmFyIGllID0gZG9jdW1lbnQu
YWxsOworICB2YXIgbm42ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgJiYgIWRvY3VtZW50LmFs
bDsKKworICB2YXIgaXNEcmFnID0gZmFsc2U7CisgIHZhciB4LCB5LCB0eCwgdHk7CisgIHZhciBk
cmFnRWw7CisKKyAgZnVuY3Rpb24gbW92ZW1vdXNlKGUpIHsKKyAgICBpZiAoaXNEcmFnKSB7Cisg
ICAgICB2YXIgZHkgPSAobm42ID8gZS5jbGllbnRZIC0geSA6IGV2ZW50LmNsaWVudFkgLSB5KTsK
KyAgICAgIGlmIChkeSAlIDEyID09IDApIHsKKyAgICAgICAgZHJhZ0VsLnN0eWxlLnRvcCA9IHR5
ICsgZHk7CisgICAgICB9CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisKKyAgZnVu
Y3Rpb24gc2VsZWN0bW91c2UoZSkgeworICAgIHZhciBzcmNFbCA9IG5uNiA/IGUudGFyZ2V0IDog
ZXZlbnQuc3JjRWxlbWVudDsKKyAgICB2YXIgdG9wRWxlbWVudCA9IG5uNiA/ICJIVE1MIiA6ICJC
T0RZIjsKKworICAgIHdoaWxlIChzcmNFbC50YWdOYW1lICE9IHRvcEVsZW1lbnQgJiYgc3JjRWwg
IT0gc3RhcnRUaW1lKSB7CisgICAgICBzcmNFbCA9IG5uNiA/IHNyY0VsLnBhcmVudE5vZGUgOiBz
cmNFbC5wYXJlbnRFbGVtZW50OworICAgIH0KKworICAgIGlmIChzcmNFbCA9PT0gc3RhcnRUaW1l
KSB7CisgICAgICBpc0RyYWcgPSB0cnVlOworICAgICAgZHJhZ0VsID0gc3JjRWw7CisgICAgICB0
eCA9IHBhcnNlSW50KGRyYWdFbC5zdHlsZS5sZWZ0ICsgMCk7CisgICAgICB0eSA9IHBhcnNlSW50
KGRyYWdFbC5zdHlsZS50b3AgKyAwKTsKKyAgICAgIHggPSBubjYgPyBlLmNsaWVudFggOiBldmVu
dC5jbGllbnRYOworICAgICAgeSA9IG5uNiA/IGUuY2xpZW50WSA6IGV2ZW50LmNsaWVudFk7Cisg
ICAgICBkb2N1bWVudC5vbm1vdXNlbW92ZSA9IG1vdmVtb3VzZTsKKyAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgIH0KKworICBkb2N1bWVudC5vbm1vdXNlZG93biA9IHNlbGVjdG1vdXNlOwor
ICBkb2N1bWVudC5vbm1vdXNldXAgPSBmdW5jdGlvbigpIHsgaXNEcmFnID0gZmFsc2U7IH07Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9kcmFnZ2FibGVMaXN0cy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvZHJhZ2dhYmxlTGlzdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uZjdlMGRjYWNlNDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFnZ2FibGVMaXN0cy5o
dG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
ICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KKyAgICA8dGl0bGU+alF1ZXJ5
IFVJIFNvcnRhYmxlIC0gQ29ubmVjdCBsaXN0czwvdGl0bGU+CisgICAgPCEtLWxpbmsgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9ImRldmVsb3BtZW50LWJ1bmRsZS90aGVtZXMvYmFzZS9qcXVlcnkudWku
YWxsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiAvLS0+CisgICAgPCEtLWxpbmsgdHlwZT0idGV4dC9j
c3MiIGhyZWY9ImRldmVsb3BtZW50LWJ1bmRsZS9kZW1vcy9kZW1vcy5jc3MiIHJlbD0ic3R5bGVz
aGVldCIgLy0tPgorICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiBocmVmPSJjc3MvdWktbGlnaHRu
ZXNzL2pxdWVyeS11aS0xLjguMTAuY3VzdG9tLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPgorICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2pxdWVyeS0xLjQuNC5taW4u
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Impz
L2pxdWVyeS11aS0xLjguMTAuY3VzdG9tLm1pbi5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KKyAgICAgICNzb3J0YWJsZTEsICNzb3J0YWJsZTIgeyBsaXN0LXN0eWxl
LXR5cGU6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1y
aWdodDogMTBweDsgfQorICAgICAgI3NvcnRhYmxlMSBsaSwgI3NvcnRhYmxlMiBsaSB7IG1hcmdp
bjogMCA1cHggNXB4IDVweDsgcGFkZGluZzogNXB4OyBmb250LXNpemU6IDEuMmVtOyB3aWR0aDog
MTIwcHg7IH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgJCgiI3NvcnRhYmxlMSwgI3NvcnRh
YmxlMiIpLnNvcnRhYmxlKHsKKyAgICAgICAgICAgIGNvbm5lY3RXaXRoOiAnLmNvbm5lY3RlZFNv
cnRhYmxlJworICAgICAgICAgICAgfSkuZGlzYWJsZVNlbGVjdGlvbigpOworCisgICAgICAgICAg
dmFyIHJlcG9ydF9ldmVudCA9IGZ1bmN0aW9uKHJlcG9ydF90ZXh0KSB7CisgICAgICAgICAgICB2
YXIgcmVwb3J0RWxlbWVudCA9ICQoIiNkcmFnZ2luZ19yZXBvcnRzIik7CisgICAgICAgICAgICB2
YXIgb3JpZ1RleHQgPSByZXBvcnRFbGVtZW50LnRleHQoKTsKKyAgICAgICAgICAgIHJlcG9ydEVs
ZW1lbnQudGV4dChvcmlnVGV4dCArICIgIiArIHJlcG9ydF90ZXh0KTsKKyAgICAgICAgICB9CisK
KyAgICAgICAgICAkKCIjc29ydGFibGUyIikuZHJvcHBhYmxlKHsKKyAgICAgICAgICAgIG91dDog
ZnVuY3Rpb24oZXZlbnQsIHVpKSB7CisgICAgICAgICAgICAgIHJlcG9ydF9ldmVudCgiRHJhZ091
dCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAkKCIjc29y
dGFibGUxIikuZHJvcHBhYmxlKHsKKyAgICAgICAgICAgIGRyb3A6IGZ1bmN0aW9uKGV2ZW50LCB1
aSkgeworICAgICAgICAgICAgICByZXBvcnRfZXZlbnQoIkRyb3BJbiAiICsgdWkuZHJhZ2dhYmxl
LnRleHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9KTsK
KyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJkZW1v
Ij4KKyAgICAgIDx1bCBpZD0ic29ydGFibGUxIiBjbGFzcz0iY29ubmVjdGVkU29ydGFibGUiPgor
ICAgICAgICA8bGkgaWQ9ImxlZnRpdGVtLTEiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0Ij5MZWZ0
SXRlbSAxPC9saT4KKyAgICAgICAgPGxpIGlkPSJsZWZ0aXRlbS0yIiBjbGFzcz0idWktc3RhdGUt
ZGVmYXVsdCI+TGVmdEl0ZW0gMjwvbGk+CisgICAgICAgIDxsaSBpZD0ibGVmdGl0ZW0tMyIgY2xh
c3M9InVpLXN0YXRlLWRlZmF1bHQiPkxlZnRJdGVtIDM8L2xpPgorICAgICAgICA8bGkgaWQ9Imxl
ZnRpdGVtLTQiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0Ij5MZWZ0SXRlbSA0PC9saT4KKyAgICAg
ICAgPGxpIGlkPSJsZWZ0aXRlbS01IiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCI+TGVmdEl0ZW0g
NTwvbGk+CisgICAgICA8L3VsPgorCisgICAgICA8dWwgaWQ9InNvcnRhYmxlMiIgY2xhc3M9ImNv
bm5lY3RlZFNvcnRhYmxlIj4KKyAgICAgICAgPGxpIGlkPSJyaWdodGl0ZW0tMSIgY2xhc3M9InVp
LXN0YXRlLWhpZ2hsaWdodCI+UmlnaHRJdGVtIDE8L2xpPgorICAgICAgICA8bGkgaWQ9InJpZ2h0
aXRlbS0yIiBjbGFzcz0idWktc3RhdGUtaGlnaGxpZ2h0Ij5SaWdodEl0ZW0gMjwvbGk+CisgICAg
ICAgIDxsaSBpZD0icmlnaHRpdGVtLTMiIGNsYXNzPSJ1aS1zdGF0ZS1oaWdobGlnaHQiPlJpZ2h0
SXRlbSAzPC9saT4KKyAgICAgICAgPGxpIGlkPSJyaWdodGl0ZW0tNCIgY2xhc3M9InVpLXN0YXRl
LWhpZ2hsaWdodCI+UmlnaHRJdGVtIDQ8L2xpPgorICAgICAgICA8bGkgaWQ9InJpZ2h0aXRlbS01
IiBjbGFzcz0idWktc3RhdGUtaGlnaGxpZ2h0Ij5SaWdodEl0ZW0gNTwvbGk+CisgICAgICA8L3Vs
PgorCisgICAgPC9kaXY+CisKKyAgICA8YnIvPgorICAgIDxkaXYgY2xhc3M9InRlc3QtZGF0YSI+
CisgICAgICA8cCBpZD0iZHJhZ2dpbmdfcmVwb3J0cyI+Tm90aGluZyBoYXBwZW5lZC48L3A+Cisg
ICAgPC9kaXY+CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHJvcHBhYmxlSXRlbXMuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Ryb3BwYWJs
ZUl0ZW1zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjODUw
YWM5NmI3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvZHJvcHBhYmxlSXRlbXMuaHRtbApAQCAtMCwwICsxLDY1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCIgLz4KKyAgPHRpdGxlPmpRdWVyeSBVSSBEcm9wcGFibGUgLSBEZWZhdWx0IERlbW88
L3RpdGxlPgorICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiBocmVmPSJjc3MvdWktbGlnaHRuZXNz
L2pxdWVyeS11aS0xLjguMTAuY3VzdG9tLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPgorICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2pxdWVyeS0xLjQuNC5taW4uanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2px
dWVyeS11aS0xLjguMTAuY3VzdG9tLm1pbi5qcyI+PC9zY3JpcHQ+CisgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisgICNkcmFnZ2FibGUgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBh
ZGRpbmc6IDAuNWVtOyBmbG9hdDogbGVmdDsgbWFyZ2luOiAxMHB4IDEwcHggMTBweCAwOyB9Cisg
ICNkcm9wcGFibGUgeyB3aWR0aDogMTUwcHg7IGhlaWdodDogMTUwcHg7IHBhZGRpbmc6IDAuNWVt
OyBmbG9hdDogbGVmdDsgbWFyZ2luOiAxMHB4OyB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgJChmdW5jdGlvbigpIHsKKyAgICAkKCIjZHJhZ2dhYmxl
IikuZHJhZ2dhYmxlKCk7CisgICAgJCgiI2Ryb3BwYWJsZSIpLmRyb3BwYWJsZSh7CisgICAgICBk
cm9wOiBmdW5jdGlvbihldmVudCwgdWkpIHsKKyAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygndWkt
c3RhdGUtaGlnaGxpZ2h0JykuZmluZCgncCcpLmh0bWwoJ0Ryb3BwZWQhJyk7CisgICAgICB9Cisg
IH0pOworCisgICAgICAgIHZhciByZXBvcnRfZXZlbnQgPSBmdW5jdGlvbihyZXBvcnRfdGV4dCkg
eworICAgICAgICAgIHZhciByZXBvcnRFbGVtZW50ID0gJCgiI2Ryb3BfcmVwb3J0cyIpOworICAg
ICAgICAgIHZhciBvcmlnVGV4dCA9IHJlcG9ydEVsZW1lbnQudGV4dCgpOworICAgICAgICAgIHJl
cG9ydEVsZW1lbnQudGV4dChvcmlnVGV4dCArICIgIiArIHJlcG9ydF90ZXh0KTsKKyAgICAgICAg
fQorCisgICAgICAgICQoJ2JvZHknKS5tb3VzZWRvd24oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICByZXBvcnRfZXZlbnQoJ2Rvd24nKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgJCgnYm9keScp
Lm1vdXNlbW92ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9ydF9ldmVudCgnbW92ZScp
OworICAgICAgICB9KTsKKworICAgICAgICAkKCdib2R5JykubW91c2V1cChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHJlcG9ydF9ldmVudCgndXAnKTsKKyAgICAgICAgfSk7CisgIH0pOworICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZGVtbyI+CisKKzxkaXYgaWQ9
ImRyYWdnYWJsZSIgY2xhc3M9InVpLXdpZGdldC1jb250ZW50Ij4KKyAgPHA+RHJhZyBtZSB0byBt
eSB0YXJnZXQ8L3A+Cis8L2Rpdj4KKworPGRpdiBpZD0iZHJvcHBhYmxlIiBjbGFzcz0idWktd2lk
Z2V0LWhlYWRlciI+CisgIDxwPkRyb3AgaGVyZTwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJ0
ZXN0LWRhdGEiPgorICA8cCBpZD0iZHJvcF9yZXBvcnRzIj5zdGFydDwvcD4KKzwvZGl2PgorCis8
L2Rpdj48IS0tIEVuZCBkZW1vIC0tPgorCis8ZGl2IGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4K
KworPHA+VGFrZW4gZnJvbSB0aGUgSlF1ZXJ5IGRlbW8uPC9wPgorCis8L2Rpdj48IS0tIEVuZCBk
ZW1vLWRlc2NyaXB0aW9uIC0tPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHluYW1pYy5odG1sIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHluYW1pYy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOWU2MDY3OGQyYQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2R5bmFtaWMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRw
Oi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDx0aXRsZT48L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAg
ICAgIHZhciBuZXh0ID0gMDsKKworICAgICAgZnVuY3Rpb24gYWRkTW9yZSgpIHsKKyAgICAgICAg
dmFyIGJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpOworICAgICAgICBib3guaWQg
PSAnYm94JyArIG5leHQrKzsKKyAgICAgICAgYm94LmNsYXNzTmFtZSA9ICdyZWRib3gnOworICAg
ICAgICBib3guc3R5bGUud2lkdGggPSAnMTUwcHgnOworICAgICAgICBib3guc3R5bGUuaGVpZ2h0
ID0gJzE1MHB4JzsKKyAgICAgICAgYm94LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOwor
ICAgICAgICBib3guc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7CisgICAgICAgIGJv
eC5zdHlsZS5tYXJnaW4gPSAnNXB4JzsKKworICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGJveCk7CisgICAg
ICAgIH0sIDEwMDApOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiByZXZlYWwoKSB7CisgICAg
ICAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JldmVhbGVkJyk7CisgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGVsZW0uc3R5bGUu
ZGlzcGxheSA9ICcnOworICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aW5wdXQgaWQ9ImFkZGVyIiB0eXBlPSJidXR0b24i
IHZhbHVlPSJBZGQgYSBib3ghIiBvbmNsaWNrPSJhZGRNb3JlKCkiLz4KKworICAgIDxpbnB1dCBp
ZD0icmV2ZWFsIiB0eXBlPSJidXR0b24iIHZhbHVlPSJSZXZlYWwgYSBuZXcgaW5wdXQiIG9uY2xp
Y2s9InJldmVhbCgpOyIgLz4KKworICAgIDxpbnB1dCBpZD0icmV2ZWFsZWQiIHN0eWxlPSJkaXNw
bGF5Om5vbmU7IiAvPgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZHluYW1pY2FsbHlNb2RpZmllZFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2R5bmFtaWNhbGx5TW9kaWZpZWRQYWdlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVkN2M3ZWQyYjQ2Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZHluYW1pY2FsbHlNb2RpZmllZFBhZ2UuaHRtbApAQCAtMCwwICsxLDQyIEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICA8aGVhZD4KKyAgICA8dGl0bGU+RGVs
YXllZCByZW1vdmUgb2YgYW4gZWxlbWVudDwvdGl0bGU+CisKKyAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgICAgICAKKyAgICAgIHZhciBwYXJlbnROb2RlOworICAgICAgdmFy
IGVsZW1lbnRJZDsKKyAgICAgICAgCisgICAgICBmdW5jdGlvbiB0aW1lZFJlbW92ZSgpCisgICAg
ICB7CisgICAgICAgIHZhciB0ID0gc2V0VGltZW91dCgncmVtb3ZlRWxlbWVudCgpJywgNTAwKTsK
KyAgICAgICAgdCA9IHNldFRpbWVvdXQoJ2luc2VydEVsZW1lbnQoKScsIDIwMDApOworICAgICAg
fQorCisgICAgICBmdW5jdGlvbiByZW1vdmVFbGVtZW50KCkKKyAgICAgIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWxlbWVudC10by1yZW1vdmUnKTsK
KyAgICAgICAgZWxlbWVudElkID0gZWxlbWVudC5pZDsKKyAgICAgICAgcGFyZW50Tm9kZSA9IGVs
ZW1lbnQucGFyZW50Tm9kZTsKKyAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50
KTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gaW5zZXJ0RWxlbWVudCgpCisgICAgICB7Cisg
ICAgICAgIHZhciBuZXdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOworICAg
ICAgICBuZXdFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBlbGVtZW50SWQpOworICAgICAgICBu
ZXdFbGVtZW50LmlubmVySFRNTCA9ICduZXcgZWxlbWVudCc7CisgICAgICAgIHBhcmVudE5vZGUu
YXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgPC9o
ZWFkPgorICA8Ym9keT4KKyAgICA8Zm9ybT4KKyAgICAgIDxpbnB1dCBpZD0iYnV0dG9uRGVsZXRl
IiB0eXBlPSJidXR0b24iIHZhbHVlPSJlbGVtZW50IHdpbGwgYmUgcmVtb3ZlZCBpbiBoYWxmIGEg
c2Vjb25kIgorICAgICAgb25jbGljaz0idGltZWRSZW1vdmUoKSIvPgorICAgIDwvZm9ybT4KKyAg
ICA8cCBpZD0iZWxlbWVudC10by1yZW1vdmUiPmVsZW1lbnQ8L3A+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2Vycm9ycy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvZXJyb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjc4ZmI5MDIwNzdlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZXJyb3JzLmh0bWwKQEAgLTAsMCArMSwxNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgorICAgICAgd2luZG93LkVSUk9SUyA9IFtdOworCisgICAgICB3aW5k
b3cub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgd2luZG93LkVSUk9SUy5wdXNoKGUp
OworICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aW5w
dXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iVGhyb3chIiBvbmNsaWNrPSJ0aHJvdyBFcnJvcignYm9v
bSEnKTsiLz4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZml4ZWRGb290ZXJOb1Njcm9sbC5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZml4ZWRG
b290ZXJOb1Njcm9sbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5jYTY1ZDFmZWViZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZpeGVkRm9vdGVyTm9TY3JvbGwuaHRtbApAQCAtMCww
ICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5GaXhl
ZCBmb290ZXIgd2l0aCBubyBzY3JvbGxiYXI8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxk
aXYgc3R5bGU9IndpZHRoOiAxMDAlOyBtaW4taGVpZ2h0OiAxMDAlOyI+CisgICAgPGRpdiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDBweDsiPgorICAgICAgPGEgaWQ9Imxpbmsi
IGhyZWY9InhodG1sVGVzdC5odG1sIj5DbGljayBtZTwvYT4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZml4ZWRG
b290ZXJOb1Njcm9sbFF1aXJrc01vZGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZpeGVkRm9vdGVyTm9TY3JvbGxRdWlya3NNb2RlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1OTNiZjM1YzZiCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvZml4ZWRGb290ZXJOb1Njcm9sbFF1aXJrc01vZGUuaHRtbApAQCAtMCwwICsxLDEyIEBA
Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+Rml4ZWQgZm9vdGVyIHdpdGggbm8gc2Nyb2xsYmFy
PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgbWlu
LWhlaWdodDogMTAwJTsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90
dG9tOiAwcHg7Ij4KKyAgICAgIDxhIGlkPSJsaW5rIiBocmVmPSJ4aHRtbFRlc3QuaHRtbCI+Q2xp
Y2sgbWU8L2E+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zvcm1QYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mb3JtUGFnZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NWFlMmI3ZDZiZAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zvcm1Q
YWdlLmh0bWwKQEAgLTAsMCArMSwxNzUgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPldl
IExlYXZlIEZyb20gSGVyZTwvdGl0bGU+CisKKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CisgICAgICAgICAgICB2YXIg
bmV3TG9jYXRpb24gPSAnL2NvbW1vbi9wYWdlLzMnOworICAgICAgICAgICAgd2luZG93LmxvY2F0
aW9uID0gbmV3TG9jYXRpb247CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorVGhlcmUgc2hvdWxkIGJlIGEgZm9ybSBoZXJlOgorCis8Zm9ybSBtZXRob2Q9ImdldCIg
YWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImxvZ2luIj4KKyAgICA8aW5wdXQgdHlwZT0i
ZW1haWwiIGlkPSJlbWFpbCIvPgorICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJhZ2UiLz4K
KyAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0QnV0dG9uIiB2YWx1ZT0iSGVsbG8g
dGhlcmUiLz4KKzwvZm9ybT4KKworPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFn
ZS5odG1sIiBuYW1lPSJpbWFnZSI+CisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VC
dXR0b24iIGFsdD0iY2xpY2sgbWUhIiBzcmM9ImltYWdlcy9idXR0b24uZ2lmIi8+Cis8L2Zvcm0+
CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgbmFtZT0ib3B0
aW9uYWwiIHN0eWxlPSJkaXNwbGF5OiBibG9jayI+CisgICAgSGVyZSdzIGEgY2hlY2tib3g6Cisg
ICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2t5IiBuYW1lPSJjaGVja3kiIHZhbHVl
PSJmdXJyZnUiLz4KKyAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVja2VkY2hlY2t5
IiBuYW1lPSJjaGVja2VkY2hlY2t5IiBjaGVja2VkPSJjaGVja2VkIiAvPgorICAgIDxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9ImRpc2FibGVkY2hlY2t5IiBkaXNhYmxlZD0iZGlzYWJsZWQiIG5h
bWU9ImRpc2FibGVkY2hlY2t5IiAvPgorICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InJh
bmRvbWx5X2Rpc2FibGVkX2NoZWNreSIgZGlzYWJsZWQ9InNvbWVyYW5kb21zdHJpbmciIGNoZWNr
ZWQ9ImNoZWNrZWQiIG5hbWU9InJhbmRvbWx5ZGlzYWJsZWRjaGVja3kiIC8+CisgICAgPGJyLz4K
KyAgICA8c2VsZWN0IG5hbWU9InNlbGVjdG9tYXRpYyI+CisgICAgICAgIDxvcHRpb24gc2VsZWN0
ZWQ9InNlbGVjdGVkIiBpZD0ibm9uX211bHRpX29wdGlvbiIgdmFsdWU9Im9uZSI+T25lPC9vcHRp
b24+CisgICAgICAgIDxvcHRpb24gdmFsdWU9InR3byI+VHdvPC9vcHRpb24+CisgICAgICAgIDxv
cHRpb24gdmFsdWU9ImZvdXIiPkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0i
c3RpbGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVudGx5Ij5TdGlsbCBsZWFybmluZyBo
b3cgdG8gY291bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKworICAgIDxz
ZWxlY3QgbmFtZT0ibXVsdGkiIGlkPSJtdWx0aSIgbXVsdGlwbGU9Im11bHRpcGxlIj4KKyAgICAg
ICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiIHZhbHVlPSJlZ2dzIj5FZ2dzPC9vcHRpb24+
CisgICAgICAgIDxvcHRpb24gdmFsdWU9ImhhbSI+SGFtPC9vcHRpb24+CisgICAgICAgIDxvcHRp
b24gc2VsZWN0ZWQ9InNlbGVjdGVkIiB2YWx1ZT0ic2F1c2FnZXMiPlNhdXNhZ2VzPC9vcHRpb24+
CisgICAgICAgIDxvcHRpb24gdmFsdWU9Im9uaW9uIGdyYXZ5Ij5PbmlvbiBncmF2eTwvb3B0aW9u
PgorICAgIDwvc2VsZWN0PgorCisgICAgPHNlbGVjdCBuYW1lPSJuby1zZWxlY3QiIGRpc2FibGVk
PSJkaXNhYmxlZCI+CisgICAgICA8b3B0aW9uIHZhbHVlPSJmb28iPkZvbzwvb3B0aW9uPgorICAg
ICAgPG9wdGlvbiB2YWx1ZT0iYmFyIj5CYXI8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKworCQk8
c2VsZWN0IG5hbWU9InNlbGVjdF9lbXB0eV9tdWx0aXBsZSIgbXVsdGlwbGU+CisJCQk8b3B0aW9u
IGlkPSJtdWx0aV8xIiB2YWx1ZT0ic2VsZWN0XzEiPnNlbGVjdF8xPC9vcHRpb24+CisJCQk8b3B0
aW9uIGlkPSJtdWx0aV8yIiB2YWx1ZT0ic2VsZWN0XzIiPnNlbGVjdF8yPC9vcHRpb24+CisJCQk8
b3B0aW9uIGlkPSJtdWx0aV8zIiB2YWx1ZT0ic2VsZWN0XzMiPnNlbGVjdF8zPC9vcHRpb24+CisJ
CQk8b3B0aW9uIGlkPSJtdWx0aV80IiB2YWx1ZT0ic2VsZWN0XzQiPnNlbGVjdF80PC9vcHRpb24+
CisJCTwvc2VsZWN0PgorCisJCTxzZWxlY3QgbmFtZT0ibXVsdGlfdHJ1ZSIgbXVsdGlwbGU9InRy
dWUiPgorCQkJPG9wdGlvbiBpZD0ibXVsdGlfdHJ1ZV8xIiB2YWx1ZT0ic2VsZWN0XzEiPnNlbGVj
dF8xPC9vcHRpb24+CisJCQk8b3B0aW9uIGlkPSJtdWx0aV90cnVlXzIiIHZhbHVlPSJzZWxlY3Rf
MiI+c2VsZWN0XzI8L29wdGlvbj4KKwkJPC9zZWxlY3Q+CisKKwkJPHNlbGVjdCBuYW1lPSJtdWx0
aV9mYWxzZSIgbXVsdGlwbGU9ImZhbHNlIj4KKwkJCTxvcHRpb24gaWQ9Im11bHRpX2ZhbHNlXzEi
IHZhbHVlPSJzZWxlY3RfMSI+c2VsZWN0XzE8L29wdGlvbj4KKwkJCTxvcHRpb24gaWQ9Im11bHRp
X2ZhbHNlXzIiIHZhbHVlPSJzZWxlY3RfMiI+c2VsZWN0XzI8L29wdGlvbj4KKwkJPC9zZWxlY3Q+
CisKKyAgICA8c2VsZWN0IGlkPSJpbnZpc2lfc2VsZWN0IiBzdHlsZT0ib3BhY2l0eTowOyI+Cisg
ICAgICA8b3B0aW9uIHNlbGVjdGVkIHZhbHVlPSJhcHBsZXMiPkFwcGxlczwvb3B0aW9uPgorICAg
ICAgPG9wdGlvbiB2YWx1ZT0ib3JhbmdlcyI+T3Jhbmdlczwvb3B0aW9uPgorICAgIDwvc2VsZWN0
PgorCisgICAgPHNlbGVjdCBuYW1lPSJzZWxlY3QtZGVmYXVsdCI+CisgICAgICAgIDxvcHRpb24+
T25lPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+VHdvPC9vcHRpb24+CisgICAgICAgIDxvcHRp
b24+Rm91cjwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlN0aWxsIGxlYXJuaW5nIGhvdyB0byBj
b3VudCwgYXBwYXJlbnRseTwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorCisgICAgPHNlbGVjdCBu
YW1lPSJzZWxlY3Rfd2l0aF9zcGFjZXMiPgorICAgICAgICA8b3B0aW9uPk9uZTwvb3B0aW9uPgor
ICAgICAgICA8b3B0aW9uPiAgVHdvICA8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4KKyAgICAg
ICAgICBGb3VyCisgICAgICAgIDwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPgorICAgICAgICAg
IFN0aWxsIGxlYXJuaW5nICAgaG93IHRvIGNvdW50LAorICAgICAgICAgIGFwcGFyZW50bHkKKyAg
ICAgICAgPC9vcHRpb24+CisgICAgPC9zZWxlY3Q+CisKKyAgICA8c2VsZWN0PgorICAgIAk8b3B0
aW9uIGlkPSJibGFua09wdGlvbiI+PC9vcHRpb24+CisgICAgCTxvcHRpb24gaWQ9Im9wdGlvbkVt
cHR5VmFsdWVTZXQiIHZhbHVlPSIiPm5vdGhpbmc8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKwor
ICAgIDxici8+CisKKyAgICA8aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJjaGVlc2UiIG5hbWU9InNu
YWNrIiB2YWx1ZT0iY2hlZXNlIi8+Q2hlZXNlPGJyLz4KKyAgICA8aW5wdXQgdHlwZT0icmFkaW8i
IGlkPSJwZWFzIiBuYW1lPSJzbmFjayIgdmFsdWU9InBlYXMiLz5QZWFzPGJyLz4KKyAgICA8aW5w
dXQgdHlwZT0icmFkaW8iIGlkPSJjaGVlc2VfYW5kX3BlYXMiIG5hbWU9InNuYWNrIiB2YWx1ZT0i
Y2hlZXNlIGFuZCBwZWFzIiBjaGVja2VkLz5DaGVlc2UgYW5kIHBlYXM8YnIvPgorICAgIDxpbnB1
dCB0eXBlPSJyYWRpbyIgaWQ9Im5vdGhpbmciIG5hbWU9InNuYWNrIiB2YWx1ZT0ibm93dCIgZGlz
YWJsZWQ9ImRpc2FibGVkIi8+Tm90IGEgc2F1c2FnZTxici8+CisgICAgPGlucHV0IHR5cGU9InJh
ZGlvIiBpZD0icmFuZG9tbHlfZGlzYWJsZWRfbm90aGluZyIgbmFtZT0ic25hY2siIHZhbHVlPSJm
dW5ueSBub3d0IiBkaXNhYmxlZD0ic29tZWRpc2FibGluZ3N0cmluZyIvPk5vdCBhbm90aGVyIHNh
dXNhZ2UKKworICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImhpZGRlbiIgdmFsdWU9ImZy
b21hZ2UiIC8+CisKKyAgICA8cCBpZD0iY2hlZXNlTGlrZXIiPkkgbGlrZSBjaGVlc2U8L3A+Cisg
ICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkNsaWNrISIvPgorICAgIAorICAgIDxpbnB1
dCB0eXBlPSJyYWRpbyIgaWQ9ImxvbmVfZGlzYWJsZWRfc2VsZWN0ZWRfcmFkaW8iIG5hbWU9Im5v
dF9hX3NuYWNrIiB2YWx1ZT0iY3VtYmVybGFuZCIgY2hlY2tlZD0iY2hlY2tlZCIgZGlzYWJsZWQ9
ImRpc2FibGVkIiAvPkN1bWJlcmxhbmQgc2F1c2FnZQorPC9mb3JtPgorCis8Zm9ybSBtZXRob2Q9
ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImRpc2FibGUiPgorICAgIDxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0id29ya2luZyIvPgorICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
bm90V29ya2luZyIgZGlzYWJsZWQ9InRydWUiLz4KKworICAgIDx0ZXh0YXJlYSBpZD0ibm90V29y
a2luZ0FyZWEiIGRpc2FibGVkPSJkaXNhYmxlZCIgY29scz0iNSIgcm93cz0iNSI+PC90ZXh0YXJl
YT4KKworICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXRXaXRoVGV4dCIgdmFsdWU9IkV4
YW1wbGUgdGV4dCIvPgorICAgIDx0ZXh0YXJlYSBpZD0id2l0aFRleHQiIHJvd3M9IjUiIGNvbHM9
IjUiPkV4YW1wbGUgdGV4dDwvdGV4dGFyZWE+CisgICAgPHRleHRhcmVhIGlkPSJlbXB0eVRleHRB
cmVhIiByb3dzPSI1IiBjb2xzPSI1Ij48L3RleHRhcmVhPgorPC9mb3JtPgorCis8Zm9ybSBtZXRo
b2Q9InBvc3QiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIj4KKyAgICA8c2VsZWN0IGlkPSJyZWRp
cmVjdCIgbmFtZT0icmVkaXJlY3QiIG9uY2hhbmdlPSJqYXZhc2NyaXB0OmNoYW5nZVBhZ2UoKTsi
PgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9Im9uZSI+T25lPC9v
cHRpb24+CisgICAgICAgIDxvcHRpb24gaWQ9ImNoYW5nZW1lIiB2YWx1ZT0idHdvIj5Ud288L29w
dGlvbj4KKyAgICA8L3NlbGVjdD4KKworICAgIDxpbnB1dCBpZD0ibm8tdHlwZSIgLz4KKyAgICA8
aW5wdXQgdHlwZT0iZmlsZSIgaWQ9InVwbG9hZCIgb25jaGFuZ2U9ImRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmaWxlUmVzdWx0cycpLmlubmVySFRNTCA9ICdjaGFuZ2VkJzsiIC8+CisgICAgPHNw
YW4gaWQ9ImZpbGVSZXN1bHRzIj48L3NwYW4+CisKKyAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiAv
PgorPC9mb3JtPgorCis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwi
PgorICA8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Im5hbWUiIG5hbWU9ImlkLW5hbWUxIi8+Cisg
IDxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iaWQiICAgaWQ9ImlkLW5hbWUxIi8+CisKKyAgPCEt
LSBSZXZlcnNlIHRoZSBvcmRlcmluZyAtLT4KKyAgPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJp
ZCIgICBpZD0iaWQtbmFtZTIiLz4KKyAgPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJuYW1lIiBu
YW1lPSJpZC1uYW1lMiIvPgorICA8aW5wdXQgbmFtZT0icmVhZG9ubHkiIHJlYWRvbmx5PSJyZWFk
b25seSIgLz4KKzwvZm9ybT4KKworPCEtLSBmb3JtIHdpdGggbmVzdGVkIGNoaWxkcmVuIC0tPgor
PGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIiBpZD0ibmVzdGVkX2Zv
cm0iPgorICA8ZGl2PgorICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0ibmFtZSIgbmFtZT0i
eCIvPgorICA8L2Rpdj4KKyAgPGlucHV0IHR5cGU9InN1Ym1pdCIgLz4KKzwvZm9ybT4gIAorCis8
IS0tIEZvcm0gd2l0aCBkaXNhYmxlZCBmb3JtIGVsZW1lbnRzIC0tPgorPGZvcm0gbWV0aG9kPSJn
ZXQiIGFjdGlvbj0ieGh0bWxUZXN0Lmh0bWwiPgorICA8cD4KKyAgICA8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9ImRpc2FibGVkVGV4dEVsZW1lbnQxIiBkaXNhYmxlZD0iZm9vIiAvPgorICAgIDxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0iZGlzYWJsZWRUZXh0RWxlbWVudDIiIGRpc2FibGVkPSIiIC8+Cisg
ICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImRpc2FibGVkU3VibWl0RWxlbWVudCIgZGlzYWJs
ZWQ9InF3ZXJ0eSIgdmFsdWU9IlN1Ym1pdCIgLz4KKyAgPC9wPgorPC9mb3JtPgorPCEtLSBFbXB0
eSBkaXYgdG8gdGVzdCBHZXRBdHRyaWJ1dGUgLS0+Cis8ZGl2IGlkPSJ3YWxsYWNlIiBjbGFzcz0i
Z3JvbWl0Ij48L2Rpdj4KKworPGlucHV0IHR5cGU9J2J1dHRvbicgaWQ9J2tpbGxJZnJhbWUnIG9u
Y2xpY2s9J3RvcC5yZW1vdmUoKTsnIHZhbHVlPSJLaWxsIGNvbnRhaW5pbmcgaWZyYW1lIiAvPgor
Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJmb3JtUGFnZS5odG1sIj4KKyAgPHA+CisgICAg
PGxhYmVsIGZvcj0iY2hlY2tib3gtd2l0aC1sYWJlbCIgaWQ9ImxhYmVsLWZvci1jaGVja2JveC13
aXRoLWxhYmVsIj5MYWJlbDwvbGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2ti
b3gtd2l0aC1sYWJlbCIgLz4KKyAgPC9wPgorPC9mb3JtPgorPGlucHV0IGlkPSJ2c2VhcmNoR2Fk
Z2V0IiBuYW1lPSJTZWFyY2hhYmxlVGV4dCIgdHlwZT0idGV4dCIgc2l6ZT0iMTgiIHZhbHVlPSIi
IHRpdGxlPSJIdmFkIHPDuGdlciBkdT8iIGFjY2Vzc2tleT0iNCIgY2xhc3M9ImlucHV0TGFiZWwi
IC8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mb3JtU2VsZWN0aW9uUGFnZS5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZm9ybVNlbGVjdGlvblBh
Z2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDg5MGMwOGU4
MjMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9mb3JtU2VsZWN0aW9uUGFnZS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzw/
eG1sIHZlcnNpb249IjEuMCI/PgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3Rp
bmcgVHlwaW5nIGludG8gYm9keTwvdGl0bGU+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgICAgICBmdW5jdGlvbiBzZXRNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSBtZXNzYWdl
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2hvd1NlbGVjdGVkKCkgeworICAgICAg
ICAgIHZhciBzZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ211bHRpJyk7
CisgICAgICAgICAgaWYgKHNlbGVjdEVsZW1lbnQgPT0gbnVsbCkgeworICAgICAgICAgICAgYXBw
ZW5kTWVzc2FnZSgibnVsbCEiKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgb3B0aW9u
c19hcnJheSA9IHNlbGVjdEVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ29wdGlvbicpOwor
ICAgICAgICAgIHZhciBzZWxlY3RlZF9jaGVlc2UgPSAiIjsKKyAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG9wdGlvbnNfYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChv
cHRpb25zX2FycmF5W2ldLnNlbGVjdGVkKSB7CisgICAgICAgICAgICAgIHNlbGVjdGVkX2NoZWVz
ZSA9IHNlbGVjdGVkX2NoZWVzZSArIG9wdGlvbnNfYXJyYXlbaV0ubGFiZWwgKyAiICI7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIHNldE1lc3NhZ2Uoc2VsZWN0ZWRfY2hl
ZXNlKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGgx
PlR5cGUgU3R1ZmY8L2gxPgorCisgIDxkaXYgaWQ9InJlc3VsdCI+CisgICAgJm5ic3A7CisgIDwv
ZGl2PgorCisgIDxmb3JtIGFjdGlvbj0iIiBpZD0ib24tZm9ybSIgbmFtZT0ibXVsdGljaG9pY2Ui
PgorICAgIDxzZWxlY3QgbmFtZT0ibXVsdGkiIGlkPSJtdWx0aSIgbXVsdGlwbGU9Im11bHRpcGxl
Ij4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiIGxhYmVsPSJlbW1lbnRhbCI+
RW1tZW50YWw8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiBsYWJlbD0icm9xdWVmb3J0IiA+Um9x
dWVmb3J0PC9vcHRpb24+CisgICAgICAgIDxvcHRpb24gbGFiZWw9InBhcm1pZ2lhbm8iPlBhcm1p
Z2lhbm88L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiBsYWJlbD0iY2hlZGRhciI+Q2hlZGRhcjwv
b3B0aW9uPgorICAgIDwvc2VsZWN0PgorICA8L2Zvcm0+CisKKyAgPGlucHV0IHR5cGU9ImJ1dHRv
biIgbmFtZT0ic2hvd3NlbGVjdGVkIiBvbmNsaWNrPSJzaG93U2VsZWN0ZWQoKSIgdmFsdWU9IlNo
b3cgc2VsZWN0ZWQiLz4KKzwvYm9keT4KKwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZm9ybV9oYW5kbGluZ19qc19zdWJtaXQuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zvcm1f
aGFuZGxpbmdfanNfc3VibWl0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjMwMjMxNDM5MjlhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZm9ybV9oYW5kbGluZ19qc19zdWJtaXQuaHRt
bApAQCAtMCwwICsxLDMwIEBACis8IS0tCisgIH4gQ29weXJpZ2h0IDIwMTIgU2VsZW5pdW0gY29t
bWl0dGVycworICB+IENvcHlyaWdodCAyMDEyIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kK
KyAgfgorICB+IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAg
KHRoZSAiTGljZW5zZSIpOworICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGlu
IGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkg
b2YgdGhlIExpY2Vuc2UgYXQKKyAgfgorICB+ICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp
Y2Vuc2VzL0xJQ0VOU0UtMi4wCisgIH4KKyAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgIH4gZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAg
fiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4
cHJlc3Mgb3IgaW1wbGllZC4KKyAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgIH4gbGltaXRhdGlvbnMgdW5kZXIg
dGhlIExpY2Vuc2UuCisgIC0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHRpdGxlPkZvcm0gd2l0aCBKUyBhY3Rpb248L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cisg
IDxmb3JtIGlkPSJ0aGVGb3JtIiBtZXRob2Q9ImdldCIgYWN0aW9uPSJqYXZhc2NyaXB0OmFsZXJ0
KCdUYXN0eSBjaGVlc2UnKTsiPgorICAgICAgPGlucHV0IG5hbWU9InVudXNlZCIgdHlwZT0ic3Vi
bWl0Ij4KKyAgPC9mb3JtPgorCisgIDxwIGlkPSJyZXN1bHQiPjwvcD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZVBhZ2UzLmh0bWwgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZVBhZ2UzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlNjJlNDU1Y2UzCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZnJhbWVQYWdlMy5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDx0aXRsZT5pbm5lcjwvdGl0bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9m
cmFtZVNjcm9sbENoaWxkLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9mcmFtZVNjcm9sbENoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjNlYjNiZjQ3ZDU1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVTY3JvbGxDaGls
ZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgPHRpdGxlPkNoaWxkIGZyYW1lPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8aDE+VGhp
cyBpcyBhIHNjcm9sbGluZyBmcmFtZSB0ZXN0PC9oMT4KKyAgPGRpdj4KKyAgICA8dGFibGU+Cisg
ICAgICA8dHIgaGVpZ2h0PSI1MHB4Ij4KKyAgICAgICAgPHRkPkZpcnN0IHJvdzwvdGQ+CisgICAg
ICA8L3RyPgorICAgICAgPHRyIGhlaWdodD0iNTBweCI+CisgICAgICAgIDx0ZD5TZWNvbmQgcm93
PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHIgaGVpZ2h0PSI1MHB4Ij4KKyAgICAgICAgPHRk
PlRoaXJkIHJvdzwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyIGhlaWdodD0iNTBweCI+Cisg
ICAgICAgIDx0ZD5Gb3VydGggcm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAg
PC9kaXY+CisgIDxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFtZT0nc2Nyb2xsX2NoZWNrYm94JyAv
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1l
U2Nyb2xsUGFnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZnJhbWVTY3JvbGxQYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmI3ZmI4ZjI0MmEzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVTY3JvbGxQYWdlLmh0bWwK
QEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0
bGU+V2VsY29tZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PgorICAgIDxp
ZnJhbWUgbmFtZT0ic2Nyb2xsaW5nX2NoaWxkX2ZyYW1lIiBzcmM9ImZyYW1lU2Nyb2xsUGFyZW50
Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iMjAwIj48L2lmcmFtZT4KKyAgPC9kaXY+CisgIDxk
aXY+CisgICAgPGlmcmFtZSBuYW1lPSJzY3JvbGxpbmdfZnJhbWUiIHNyYz0iZnJhbWVTY3JvbGxD
aGlsZC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjIwMCIgPjwvaWZyYW1lPgorICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lU2Nyb2xsUGFyZW50Lmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZVNjcm9sbFBhcmVudC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmNjYjZkMzY1NAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2ZyYW1lU2Nyb2xsUGFyZW50Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+V2VsY29tZSBQYWdlPC90aXRsZT4K
KzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PgorICAgIDxpZnJhbWUgbmFtZT0ic2Nyb2xsaW5nX2Zy
YW1lIiBzcmM9ImZyYW1lU2Nyb2xsQ2hpbGQuaHRtbCIgd2lkdGg9IjYwMCIgaGVpZ2h0PSI1MDAi
PjwvaWZyYW1lPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lV2l0aEFuaW1h
bHMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2ZyYW1lV2l0aEFuaW1hbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMWUwZGM4NzA0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZVdpdGhBbmltYWxzLmh0bWwKQEAgLTAs
MCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGhpcyBwYWdlIGhhcyBpZnJh
bWVzPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGgxIGlkPSJpZnJhbWVfcGFnZV9oZWFkaW5n
Ij5UaGlzIGlzIHRoZSBoZWFkaW5nPC9oMT4KKworPGlmcmFtZSBzcmM9ImFuaW1hbHMiIG1hcmdp
bmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIg
YWxsb3d0cmFuc3BhcmVuY3k9InRydWUiCisgICAgICAgIGZyYW1lYm9yZGVyPSIwIiBoZWlnaHQ9
IjYwMCIgc2Nyb2xsaW5nPSJubyIgd2lkdGg9IjEyMCIgaWQ9ImlmcmFtZTEiIG5hbWU9ImlmcmFt
ZTEtbmFtZSIgLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9i
dWc0ODc2Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMvYnVnNDg3Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZWQ1OTdkMzc5NQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lX3N3aXRj
aGluZ190ZXN0cy9idWc0ODc2Lmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBpc3N1ZSA0ODc2PC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGlmcmFtZSBpZD0iaWZyYW1lIiBzcmM9ImJ1ZzQ4NzZfaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9idWc0ODc2X2lmcmFtZS5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dpdGNoaW5nX3Rlc3Rz
L2J1ZzQ4NzZfaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjU3ZDQ3ZDg0NWJkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2J1ZzQ4NzZf
aWZyYW1lLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKwk8aGVhZD48L2hlYWQ+CisJPGJv
ZHk+CisJICAgIDxmb3JtID4KKwkJICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0VGV4dCIg
Lz4KKwkJICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0QnV0dG9uIiB2YWx1ZT0ic3Vi
bWl0IiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249d2luZG93LmxvY2F0aW9uOyIgLz4KKwkJPGZv
cm0+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zy
YW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMvZGVs
ZXRpbmdGcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45
YzI3ZTA0YzQ4NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1l
Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAor77u/PGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+RGVs
ZXRpbmcgZnJhbWU6IG1haW4gcGFnZTwvdGl0bGU+Cis8L2hlYWQ+CisgICAgICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZSgpIHsK
KyAgICAgICAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlm
cmFtZTEiKTsKKyAgICAgICAgICAgICAgICB2YXIgbXlEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibXlEaXYiKTsKKyAgICAgICAgICAgICAgICBteURpdi5yZW1vdmVDaGlsZChpZnJhbWUp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZnVuY3Rpb24gYWRkQmFjaygpIHsKKyAgICAg
ICAgICAgICAgICB2YXIgaWZyYW1lID0gJzxpZnJhbWUgc3JjPSJkZWxldGluZ0ZyYW1lX2lmcmFt
ZTIuaHRtbCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgdG9wbWFyZ2luPSIwIiBs
ZWZ0bWFyZ2luPSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgZnJhbWVib3JkZXI9IjAiIGhl
aWdodD0iMjAwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iNDAwIiBpZD0iaWZyYW1lMSI+PC9pZnJh
bWU+JzsKKyAgICAgICAgICAgICAgICB2YXIgbXlEaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm15RGl2MiIpOworICAgICAgICAgICAgICAgIG15RGl2Mi5pbm5lckhUTUwgPSBpZnJhbWU7
CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorPGJvZHk+CisKKzxkaXYgaWQ9J215
RGl2Jz4KKzxpZnJhbWUgc3JjPSJkZWxldGluZ0ZyYW1lX2lmcmFtZS5odG1sIiBtYXJnaW5oZWln
aHQ9IjAiIG1hcmdpbndpZHRoPSIwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIGFsbG93
dHJhbnNwYXJlbmN5PSJ0cnVlIgorICAgICAgICBmcmFtZWJvcmRlcj0iMSIgaGVpZ2h0PSIyMDAi
IHNjcm9sbGluZz0ibm8iIHdpZHRoPSI0MDAiIGlkPSJpZnJhbWUxIj48L2lmcmFtZT4KKyAgICAg
ICAgCisgICAgICAgIDwvZGl2PgorPGRpdiBpZD0nbXlEaXYyJz4KKworPC9kaXY+Cis8aW5wdXQg
dHlwZT0nYnV0dG9uJyBpZD0nYWRkQmFja0ZyYW1lJyB2YWx1ZT0nQWRkIGJhY2sgZnJhbWUnIG9u
Y2xpY2s9J2FkZEJhY2soKTsnIC8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZV9zd2l0Y2hp
bmdfdGVzdHMvZGVsZXRpbmdGcmFtZV9pZnJhbWUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGlu
Z0ZyYW1lX2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5lNGI5NzIzZTlmMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0Zy
YW1lX2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0
bGU+RGVsZXRpbmcgZnJhbWU6IGlmcmFtZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1
dCB0eXBlPSdidXR0b24nIGlkPSdraWxsSWZyYW1lJyBvbmNsaWNrPSd0b3AucmVtb3ZlKCk7JyB2
YWx1ZT0iS2lsbCBjb250YWluaW5nIGlmcmFtZSIgLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zy
YW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lX2lmcmFtZTIuaHRtbCBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lX3N3aXRjaGluZ190
ZXN0cy9kZWxldGluZ0ZyYW1lX2lmcmFtZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNDc3NjRlYjNlYjUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZV9zd2l0Y2hpbmdfdGVz
dHMvZGVsZXRpbmdGcmFtZV9pZnJhbWUyLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5EZWxldGluZyBmcmFtZTogaWZyYW1lIDI8L3RpdGxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJzdWNjZXNzIj5BZGRlZCBiYWNrPC9kaXY+PC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZnJhbWVzZXQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2ZyYW1lc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjAzOWM1ZjIxNzcyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVzZXQuaHRtbApAQCAtMCww
ICsxLDE0IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPlVuaXF1ZSB0aXRsZTwvdGl0
bGU+CisgIDwvaGVhZD4KKzxmcmFtZXNldCBjb2xzPSIqLCAqLCAqLCAqLCAqLCAqLCAqIj4KKyAg
ICA8ZnJhbWUgbmFtZT0iZmlyc3QiIHNyYz0icGFnZS8xIi8+CisgICAgPGZyYW1lIG5hbWU9InNl
Y29uZCIgc3JjPSJwYWdlLzI/dGl0bGU9RmlzaCIvPgorICAgIDxmcmFtZSBuYW1lPSJ0aGlyZCIg
c3JjPSJmb3JtUGFnZS5odG1sIi8+CisgICAgPGZyYW1lIG5hbWU9ImZvdXJ0aCIgc3JjPSJmcmFt
ZXNldFBhZ2UyLmh0bWwiLz4KKyAgICA8ZnJhbWUgaWQ9ImZpZnRoIiBzcmM9InhodG1sVGVzdC5o
dG1sIi8+CisgICAgPGZyYW1lIGlkPSJzaXh0aCIgc3JjPSJpZnJhbWVzLmh0bWwiLz4KKyAgICA8
ZnJhbWUgaWQ9InNpeHRoLmlmcmFtZTEiIHNyYz0icGFnZS8zIi8+Cis8L2ZyYW1lc2V0PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZnJhbWVzZXRQYWdlMi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVzZXRQYWdlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZWEzNWZmNzFiNwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lc2V0UGFn
ZTIuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+PC9oZWFkPgorPGZyYW1lc2V0
IGNvbHM9IiosICoiPgorICAgIDxmcmFtZSBuYW1lPSJjaGlsZDEiIHNyYz0icGFnZS8xMCIvPgor
ICAgIDxmcmFtZSBuYW1lPSJjaGlsZDIiIHNyYz0icGFnZS8xMSIvPgorPC9mcmFtZXNldD4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZXNldFBhZ2UzLmh0bWwg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZXNl
dFBhZ2UzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQyYTkz
MDA3ZjkyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvZnJhbWVzZXRQYWdlMy5odG1sCkBAIC0wLDAgKzEsNCBAQAorPGZy
YW1lc2V0PgorICAgIDxmcmFtZSBzcmM9ImZyYW1lUGFnZTMuaHRtbCIgaWQ9ImZpcnN0Ij48L2Zy
YW1lPgorICAgIDxmcmFtZSBzcmM9ImZyYW1lUGFnZTMuaHRtbCIgaWQ9InNlY29uZCI+PC9mcmFt
ZT4KKzwvZnJhbWVzZXQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZ2FsYXh5Ly5n
aXRpZ25vcmUgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9nYWxheHkvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uZTY5ZGUyOWJiMmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2dsb2JhbHNjb3BlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9nbG9iYWxzY29wZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNGNhOTdhYjcxNQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2dsb2Jh
bHNjb3BlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
PGhlYWQ+CisgICAgPHRpdGxlPkdsb2JhbCBzY29wZTwvdGl0bGU+CisgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgd2luZG93LncgPSAidyI7CisgICAgICB3aW5kb3cu
aCA9ICJoIjsKKyAgICAgIHdpbmRvdy5fX3dlYmRyaXZlcl93ID0gIl9fd2ViZHJpdmVyX3ciOwor
ICAgICAgd2luZG93Ll9fd2ViZHJpdmVyX2ggPSAiX193ZWJkcml2ZXJfaCI7CisgICAgPC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDEwcHg7IGhlaWdodDogMTBweDsgd2lkdGg6IDEwcHg7IGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7IiBpZD0idG9jbGljayI+PC9kaXY+CisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2hpZGRlbi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvaGlkZGVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjBlODA5N2U5NzNlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaGlkZGVuLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgaWQ9J3NpbmdsZUhpZGRlbicgaGlkZGVuPlRoaXMg
d2lsbCBub3QgYmUgdmlzaWJsZTwvZGl2PgorPGRpdiBpZD0ncGFyZW50JyBoaWRkZW4+CisgIDxk
aXYgaWQ9J2NoaWxkJz5NeSBwYXJlbnQgaXMgaGlkZGVuIHNvIHlvdSBjYW4ndCBzZWUgbWU8L2Rp
dj4KKzwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2hpZGRlbl9wYXJ0aWFs
bHkuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2hpZGRlbl9wYXJ0aWFsbHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZjBmOWZlNWI4YTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9oaWRkZW5fcGFydGlhbGx5Lmh0bWwKQEAgLTAs
MCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxl
PjwvdGl0bGU+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgdmFy
IG5leHQgPSAwOworCisgICAgICBmdW5jdGlvbiBhZGRWaXNpYmxlQm94KCkgeworICAgICAgICB2
YXIgYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7CisgICAgICAgIGJveC5pZCA9
ICdib3gnICsgbmV4dCsrOworICAgICAgICBib3guY2xhc3NOYW1lID0gJ3JlZGJveCc7CisgICAg
ICAgIGJveC5zdHlsZS53aWR0aCA9ICcxNTBweCc7CisgICAgICAgIGJveC5zdHlsZS5oZWlnaHQg
PSAnMTUwcHgnOworICAgICAgICBib3guc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7Cisg
ICAgICAgIGJveC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKKyAgICAgICAgYm94
LnN0eWxlLm1hcmdpbiA9ICc1cHgnOworICAgICAgICBib3guc3R5bGUudmlzaWJpbGl0eSA9ICd2
aXNpYmxlJworCisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYm94KTsKKyAgICAgICAgfSwgMTAwMCk7Cisg
ICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGFkZEhpZGRlbkJveCgpIHsKKyAgICAgICAgdmFyIGJv
eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpOworICAgICAgICBib3guaWQgPSAnYm94
JyArIG5leHQrKzsKKyAgICAgICAgYm94LmNsYXNzTmFtZSA9ICdyZWRib3gnOworICAgICAgICBi
b3guc3R5bGUud2lkdGggPSAnMTUwcHgnOworICAgICAgICBib3guc3R5bGUuaGVpZ2h0ID0gJzE1
MHB4JzsKKyAgICAgICAgYm94LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAgICAg
ICBib3guc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7CisgICAgICAgIGJveC5zdHls
ZS5tYXJnaW4gPSAnNXB4JzsKKyAgICAgICAgYm94LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVu
JzsKKworICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGJveCk7CisgICAgICAgIH0sIDEwMDApOworICAgICAg
fQorICAgIDwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxpbnB1dCBpZD0iYWRk
VmlzaWJsZSIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iQWRkIGEgdmlzaWJsZSBib3ghIiBvbmNsaWNr
PSJhZGRWaXNpYmxlQm94KCkiLz4KKyAgICA8aW5wdXQgaWQ9ImFkZEhpZGRlbiIgdHlwZT0iYnV0
dG9uIiB2YWx1ZT0iQWRkIGEgaGlkZGVuIGJveCEiIG9uY2xpY2s9ImFkZEhpZGRlbkJveCgpOyIg
Lz4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvYmx1ZS5qcGcgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS9ibHVlLmpwZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ZWEyN2M0MmZhYTdiNWU1NmM0M2QzZGIzMTdkNWU0ZWNmMWNiNjEzCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCA5Mgp6Y21aP3diaEVIYkctNURmWGtjSmFXU0dKTEIhOTkxTmReV1Q1Q017
NVVAfnMkVXdRZzF8S2Q0WVpncD9JeDkyeTEKcythciVAJnBNYUFJPEBUYF93aTNZKlQzflh8OD8m
QktZa3ZyXzlLZnZjS0IkaXZvY3IlMDR4UDBmQiptaAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvaHRtbDUvZGF0YWJhc2UuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9odG1sNS9kYXRhYmFzZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uYzYzMzNiZThjZDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS9kYXRhYmFzZS5qcwpA
QCAtMCwwICsxLDg0IEBACit2YXIgZGF0YWJhc2U9e307CitkYXRhYmFzZS5kYj17fTsKKworZGF0
YWJhc2Uub25FcnJvciA9IGZ1bmN0aW9uKHR4LCBlKSB7CisgIHZhciBsb2cgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgbG9nLnNldEF0dHJpYnV0ZSgnbmFtZScsJ2Vycm9yJyk7
CisgIGxvZy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywnYmFja2dyb3VuZC1jb2xvcjpyZWQnKTsKKyAg
bG9nLmlubmVyVGV4dCA9IGUubWVzc2FnZTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xv
Z3MnKS5hcHBlbmRDaGlsZChsb2cpOworfQorCitkYXRhYmFzZS5vblN1Y2Nlc3MgPSBmdW5jdGlv
bih0eCwgcikgeworICBpZiAoci5yb3dzLmxlbmd0aCkgeworICAgIHZhciBvbDsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHIucm93cy5sZW5ndGg7IGkrKykgeworICAgICAgb2wgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdvbCcpOworICAgICAgb2wuaW5uZXJIVE1MID0gci5yb3dzLml0ZW0o
aSkuSUQgKyAiOiAiICsgci5yb3dzLml0ZW0oaSkuZG9jbmFtZSArICIgKCIgKyByLnJvd3MuaXRl
bShpKS5jcmVhdGVkICsgIikiOworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ3Mn
KS5hcHBlbmRDaGlsZChvbCk7CisgICAgfQorCisgIH0KK30KKworZGF0YWJhc2Uub3Blbj1mdW5j
dGlvbigpeworICBkYXRhYmFzZS5kYj1vcGVuRGF0YWJhc2UoJ0hUTUw1JywgJzEuMCcsICdPZmZs
aW5lIGRvY3VtZW50IHN0b3JhZ2UnLCAxMDAqMTAyNCk7Cit9CisKK2RhdGFiYXNlLmNyZWF0ZT1m
dW5jdGlvbigpeworICBkYXRhYmFzZS5kYi50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgeworICAg
IHR4LmV4ZWN1dGVTcWwoIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGRvY3MoSUQgSU5URUdF
UiBQUklNQVJZIEtFWSBBU0MsIGRvY25hbWUgVEVYVCwgY3JlYXRlZCBUSU1FU1RBTVAgREVGQVVM
VCBDVVJSRU5UX1RJTUVTVEFNUCkiLAorICAgICAgW10sCisgICAgICBkYXRhYmFzZS5vblN1Y2Nl
c3MsCisgICAgICBkYXRhYmFzZS5vbkVycm9yKTsKKyAgfSk7fQorCitkYXRhYmFzZS5hZGQgPSBm
dW5jdGlvbihtZXNzYWdlKSB7CisgIGRhdGFiYXNlLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4
KXsKKyAgICB0eC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBkb2NzKGRvY25hbWUpIFZBTFVFUyAo
PykiLAorICAgICAgICBbbWVzc2FnZV0sIGRhdGFiYXNlLm9uU3VjY2VzcywgZGF0YWJhc2Uub25F
cnJvcik7CisgICAgfSk7Cit9CisKK2RhdGFiYXNlLnNlbGVjdEFsbCA9IGZ1bmN0aW9uKCkgewor
ICBkYXRhYmFzZS5kYi50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgeworICAgIHR4LmV4ZWN1dGVT
cWwoIlNFTEVDVCAqIEZST00gZG9jcyIsIFtdLCBkYXRhYmFzZS5vblN1Y2Nlc3MsCisgICAgICAg
IGRhdGFiYXNlLm9uRXJyb3IpOworIH0pOworfQorCitkYXRhYmFzZS5vbkRlbGV0ZUFsbFN1Y2Nl
c3MgPSBmdW5jdGlvbih0eCwgcikgeworICB2YXIgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50OworICB2YXIgZGJfY29tcGxldGVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgIGRiX2NvbXBsZXRlZC5zZXRBdHRyaWJ1dGUoImlkIiwgImRiX2NvbXBsZXRlZCIpOworICBk
Yl9jb21wbGV0ZWQuaW5uZXJUZXh0ID0gImRiIG9wZXJhdGlvbiBjb21wbGV0ZWQiOworICBkb2Mu
YXBwZW5kQ2hpbGQoZGJfY29tcGxldGVkKTsKK30KKworZGF0YWJhc2UuZGVsZXRlQWxsID0gZnVu
Y3Rpb24oKSB7CisgIGRhdGFiYXNlLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7CisgICAg
dHguZXhlY3V0ZVNxbCgiZGVsZXRlIGZyb20gZG9jcyIsIFtdLCBkYXRhYmFzZS5vbkRlbGV0ZUFs
bFN1Y2Nlc3MsCisgICAgICAgIGRhdGFiYXNlLm9uRXJyb3IpOworICB9KTsKK30KKwordmFyIGxv
ZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworbG9nLnNldEF0dHJpYnV0ZSgnbmFt
ZScsJ25vdGljZScpOworbG9nLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdiYWNrZ3JvdW5kLWNvbG9y
OnllbGxvdycpOworbG9nLmlubmVyVGV4dCA9IHR5cGVvZiB3aW5kb3cub3BlbkRhdGFiYXNlID09
ICJmdW5jdGlvbiIgPyAiV2ViIERhdGFiYXNlIGlzIHN1cHBvcnRlZC4iIDogIldlYiBEYXRhYmFz
ZSBpcyBub3Qgc3VwcG9ydGVkLiI7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9ncycpLmFw
cGVuZENoaWxkKGxvZyk7CisKK3RyeSB7CisgIGRhdGFiYXNlLm9wZW4oKTsKKyAgZGF0YWJhc2Uu
Y3JlYXRlKCk7CisgIGRhdGFiYXNlLmFkZCgnRG9jIDEnKTsKKyAgZGF0YWJhc2UuYWRkKCdEb2Mg
MicpOworICBkYXRhYmFzZS5zZWxlY3RBbGwoKTsKKyAgZGF0YWJhc2UuZGVsZXRlQWxsKCk7Cit9
IGNhdGNoKGVycm9yKSB7CisgIHZhciBsb2cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgbG9nLnNldEF0dHJpYnV0ZSgnbmFtZScsJ2NyaXRpY2FsJyk7CisgIGxvZy5zZXRBdHRy
aWJ1dGUoJ3N0eWxlJywnYmFja2dyb3VuZC1jb2xvcjpwaW5rJyk7CisgIGxvZy5pbm5lclRleHQg
PSAgZXJyb3I7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dzJykuYXBwZW5kQ2hpbGQo
bG9nKTsKK30KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2h0bWw1L2dlb2xvY2F0aW9uLmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvZ2VvbG9jYXRpb24uanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYwN2FmMTQ4ZWQwCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRt
bDUvZ2VvbG9jYXRpb24uanMKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gc3VjY2Vzcyhwb3Np
dGlvbikgeworICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMi
KTsKKyAgbWVzc2FnZS5pbm5lckhUTUwgPSI8aW1nIHNyYz0naHR0cDovL21hcHMuZ29vZ2xlLmNv
bS9tYXBzL2FwaS9zdGF0aWNtYXA/Y2VudGVyPSIgKyBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGUg
KyAiLCIgKyBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlICsgIiZzaXplPTMwMHgyMDAmbWFwdHlw
ZT1yb2FkbWFwJnpvb209MTImJm1hcmtlcnM9c2l6ZTptaWR8Y29sb3I6cmVkfCIgKyBwb3NpdGlv
bi5jb29yZHMubGF0aXR1ZGUgKyAiLCIgKyBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlICsgIiZz
ZW5zb3I9ZmFsc2UnIC8+IjsKKyAgbWVzc2FnZS5pbm5lckhUTUwgKz0gIjxwPkxvbmdpdHVkZTog
IiArIHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUgKyAiPC9wPiI7CisgIG1lc3NhZ2UuaW5uZXJI
VE1MICs9ICI8cD5MYXRpdHVkZTogIiArIHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSArICI8L3A+
IjsKKyAgbWVzc2FnZS5pbm5lckhUTUwgKz0gIjxwPkFsdGl0dWRlOiAiICsgcG9zaXRpb24uY29v
cmRzLmFsdGl0dWRlICsgIjwvcD4iOworfQorCitmdW5jdGlvbiBlcnJvcihtc2cpIHsKKyAgdmFy
IG1lc3NhZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzIik7CisgIG1lc3NhZ2Uu
aW5uZXJIVE1MID0gIkZhaWxlZCB0byBnZXQgZ2VvbG9jYXRpb24uIjsKK30KKworaWYgKG5hdmln
YXRvci5nZW9sb2NhdGlvbikgeworICBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBv
c2l0aW9uKHN1Y2Nlc3MsIGVycm9yKTsKK30gZWxzZSB7CisgIGVycm9yKCdHZW9sb2NhdGlvbiBp
cyBub3Qgc3VwcG9ydGVkLicpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0
bWw1L2dyZWVuLmpwZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2h0bWw1L2dyZWVuLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTBkM2JlYTQ3OTNhNWZlM2EzYTM2
ZTI5YmExNzQ1NDA1NDA1MTNkCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21aP3diaEVI
YkctNURmWGtjSnFUO3MmUnpAWWUoMXhQWTU9enN7MjM8SHlLT2FJRSNafX1JYCo+YkNVXlN3UjQK
dGBQJnxPT25jVjM/QTU3bEAzQGJEXjExJTRfeFoxTC1+YUxSYUozJjxecyZRN09QIVUkOFVRYHhC
KVJ8cQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvcmVkLmpwZyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0bWw1L3JlZC5qcGcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjI5NmUyNzE5NTZkNWQ0ZTA5MzliOTcwNmU4NmIyYzJiYzBkNjViNwpHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgOTIKemNtWj93YmhFSGJHLTVEZlhrY0xZJEgya0J6QFllKDF4UFk1
PXpzezIzPEh5S09hSUUjWn19SWAqPmJDVV5Td1I0CnRgUCZ8T09uY1YzP0E1N2xAM0BiRF4xMSU0
X3haMUwtfmFMUmFKMyY8XnMmUTdPUCFVJDhVUktkQismbz4KCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2h0bWw1L3N0YXR1cy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvc3RhdHVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjM5NDExNmE1MjJkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvc3RhdHVzLmh0
bWwKQEAgLTAsMCArMSBAQAorPGh0bWw+PGhlYWQ+PHRpdGxlPk9ubGluZTwvdGl0bGU+PC9oZWFk
Pjxib2R5PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS90ZXN0LmFwcGNhY2hlIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvdGVzdC5hcHBjYWNo
ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2JjNGUwMDI1NzYKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9odG1sNS90ZXN0LmFwcGNhY2hlCkBAIC0wLDAgKzEsMTEgQEAKK0NBQ0hFIE1BTklG
RVNUCisKK0NBQ0hFOgorIyBBZGRpdGlvbmFsIGl0ZW1zIHRvIGNhY2hlLgoreWVsbG93LmpwZwor
cmVkLmpwZworYmx1ZS5qcGcKK2dyZWVuLmpwZworCitGQUxMQkFDSzoKK3N0YXR1cy5odG1sIG9m
ZmxpbmUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvaHRtbDUveWVsbG93LmpwZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0bWw1L3llbGxvdy5qcGcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M2
MDliMzcxMjkxYWViNjcyZmViNmJjMjQ0OTdkNWY2NGQyMDI4OApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgOTIKemNtWj93YmhFSGJHLTVEZlhrY0xZY1o+bEQ2bzBhU0M8WXg2MGdfPjBHSCZUI2RI
T0I/O3lHSnhiI0sxNj1RbkBiCnJCYWRtJUkrd2pWd2UyMUVAbFFWMnp4Nik8Yj8qQj1lamN2JkJh
MSRFXy1MdUtHRlNydWZDd2R6CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNVBhZ2Uu
aHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0
bWw1UGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNTVk
ZGMzYTFhNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2h0bWw1UGFnZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxodG1s
IG1hbmlmZXN0PSJodG1sNS90ZXN0LmFwcGNhY2hlIj4KKzxoZWFkPgorPHRpdGxlPkhUTUw1PC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8aDM+R2VvbG9jYXRpb24gVGVzdDwvaDM+Cis8ZGl2
IGlkPSJzdGF0dXMiPkxvY2F0aW9uIHVua25vd248L2Rpdj4KKzxzY3JpcHQgbGFuZ3VhZ2U9Imph
dmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodG1sNS9nZW9sb2NhdGlvbi5q
cyI+PC9zY3JpcHQ+CisKKzxoMz5XZWIgU1FMIERhdGFiYXNlIFRlc3Q8L2gzPgorPGRpdiBpZD0i
bG9ncyI+PC9kaXY+Cis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iaHRtbDUvZGF0YWJhc2UuanMiPjwvc2NyaXB0PgorCis8aDM+QXBwbGlj
YXRpb24gQ2FjaGUgVGVzdDwvaDM+Cis8ZGl2IGlkPSJpbWFnZXMiPgorICA8cD5DdXJyZW50IG5l
dHdvcmsgc3RhdHVzOiA8c3BhbiBpZD0ic3RhdGUiPjwvc3Bhbj48L3A+CisgIDxzY3JpcHQ+Cisg
ICAgdmFyIHN0YXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRlJykKKyAgICBzZXRJ
bnRlcnZhbChmdW5jdGlvbiAoKSB7CisgICAgICBzdGF0ZS5jbGFzc05hbWUgPSBuYXZpZ2F0b3Iu
b25MaW5lID8gJ29ubGluZScgOiAnb2ZmbGluZSc7CisgICAgICBzdGF0ZS5pbm5lckhUTUwgPSBu
YXZpZ2F0b3Iub25MaW5lID8gJ29ubGluZScgOiAnb2ZmbGluZSc7CisgICAgfSwgMjUwKTsKKyAg
PC9zY3JpcHQ+CisgIDxpbWcgaWQ9InJlZCIgc3JjPSJodG1sNS9yZWQuanBnIj4KKyAgPGltZyBp
ZD0iYmx1ZSIgc3JjPSJodG1sNS9ibHVlLmpwZyI+CisgIDxpbWcgaWQ9ImdyZWVuIiBzcmM9Imh0
bWw1L2dyZWVuLmpwZyI+CisgIDxpbWcgaWQ9InllbGxvdyIgc3JjPSJodG1sNS95ZWxsb3cuanBn
Ij4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pY29uLmdpZiBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ljb24uZ2lmCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJiOTk0NjE5Mjc1Njc0YTM2MWYwOTIzMzNjYmZhMTIyMjA5ZDY1NDYKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDEyNwp6Y21aP3diaDl1fDZrLXIhU2l9R1h8QUFvYitXJGQ4fDF+eExmQippVWdY
MkY/UjBrdmxRcDNSUEJPI15nZH5BWl4KenNhPD84KjFxSXJJQHJzZ3NINW1QPiZ5YlNDbH5lQCU8
UyN7XzI2ZSNmcVc9U2c8d3wpKlZVRlEodCNQUHkxRkdkCmJGQTAmRV9OZVJYcUdjTnx3P0F5figz
c31SIzkkMm9IITN0PgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaWRFbGVtZW50cy5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaWRFbGVt
ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40N2YwODM0
Y2FjYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2lkRWxlbWVudHMuaHRtbApAQCAtMCwwICsxLDIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGRpdiBpZD0id2l0aC5kb3RzIj5FbGVtZW50IHdpdGggYSBkb3QgaW4gdGhlIGlk
PC9kaXY+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9pZnJhbWVBdEJvdHRvbS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaWZyYW1lQXRCb3R0b20uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTY4NmJhMzEyMTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pZnJhbWVB
dEJvdHRvbS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PlRoaXMgcGFnZSBoYXMgaWZyYW1lczwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMSBpZD0i
aWZyYW1lX3BhZ2VfaGVhZGluZyI+VGhpcyBpcyB0aGUgaGVhZGluZzwvaDE+CisKKzxkaXYgc3R5
bGU9InBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiAwcHg7IHJpZ2h0OiAwcHg7IHdpZHRoOiAxNTBw
eDsgaGVpZ2h0OiAxNTBweDsiPgorICA8aWZyYW1lIHNyYz0iZHJhZ0FuZERyb3BUZXN0Lmh0bWwi
IG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdp
bj0iMCIgYWxsb3d0cmFuc3BhcmVuY3k9InRydWUiIGZyYW1lYm9yZGVyPSIxIiBoZWlnaHQ9IjEw
MCIgc2Nyb2xsaW5nPSJubyIgd2lkdGg9IjEwMCIgaWQ9ImlmcmFtZTEiIG5hbWU9ImlmcmFtZTEt
bmFtZSIgLz4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaWZyYW1lV2l0aEFs
ZXJ0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9pZnJhbWVXaXRoQWxlcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmM1NGRkZDU4ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pZnJhbWVXaXRoQWxlcnQuaHRtbApAQCAtMCww
ICsxIEBACis8YSBocmVmPSIjIiBpZD0iYWxlcnRJbkZyYW1lIiBvbmNsaWNrPSJhbGVydCgnZnJh
bWVkIGNoZWVzZScpOyI+Y2xpY2sgbWU8L2E+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pZnJhbWVXaXRoSWZyYW1lLmh0bWwgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pZnJhbWVXaXRo
SWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIyOWM1
NGYzYzVjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvaWZyYW1lV2l0aElmcmFtZS5odG1sCkBAIC0wLDAgKzEgQEAKKzxp
ZnJhbWUgc3JjPSJpZnJhbWVXaXRoQWxlcnQuaHRtbCIgbmFtZT0iaWZyYW1lV2l0aEFsZXJ0Ij48
L2lmcmFtZT4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2lmcmFtZXMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2lmcmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZTAwYjQ4MmFhMDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pZnJhbWVzLmh0bWwKQEAgLTAs
MCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGhpcyBwYWdlIGhhcyBpZnJh
bWVzPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGgxIGlkPSJpZnJhbWVfcGFnZV9oZWFkaW5n
Ij5UaGlzIGlzIHRoZSBoZWFkaW5nPC9oMT4KKworPGlmcmFtZSBzcmM9ImZvcm1QYWdlLmh0bWwi
IG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdp
bj0iMCIgYWxsb3d0cmFuc3BhcmVuY3k9InRydWUiCisgICAgICAgIGZyYW1lYm9yZGVyPSIwIiBo
ZWlnaHQ9IjYwMCIgc2Nyb2xsaW5nPSJubyIgd2lkdGg9IjEyMCIgaWQ9ImlmcmFtZTEiIG5hbWU9
ImlmcmFtZTEtbmFtZSIgLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2luamVjdGFibGVDb250ZW50
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9p
bmplY3RhYmxlQ29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi43MjQ4ZGNjZjhkOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2luamVjdGFibGVDb250ZW50Lmh0bWwKQEAgLTAs
MCArMSwyMiBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5yYW5kb20gbnVtYmVyczwv
dGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgIGZ1bmN0aW9uIGRpc3BsYXkoKSB7CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW1iZXJzJykudGV4dENvbnRlbnQgPSBudW1iZXJz
LmpvaW4oJyAnKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBv
bmxvYWQ9ImRpc3BsYXkoKSI+CisgICAgPHA+U29tZSByYW5kb20gbnVtYmVycyBiZXR3ZWVuIDAg
YW5kIDEwMDo8L3A+CisKKyAgICA8IS0tIFBsYWNlaG9sZGVyIGZvciB0aGUgbGlzdCBvZiByYW5k
b20gbnVtYmVycyAtLT4KKyAgICA8cCBpZD0ibnVtYmVycyI+PC9wPgorICAgIDxzY3JpcHQ+Cisg
ICAgICBudW1iZXJzID0gW107CisgICAgICB3aGlsZSAobnVtYmVycy5sZW5ndGggPCAxMDApIHsK
KyAgICAgICAgbnVtYmVycy5wdXNoKE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMCkpOwor
ICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pbnB1dHMuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2lucHV0
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNjA4NTRmYTlm
YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2lucHV0cy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzxodG1sPgorPGhlYWQ+
CisgICAgPHRpdGxlPmlucHV0czwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5UZXN0aW5n
IElucHV0czwvaDE+CisKKzxmb3JtIGFjdGlvbj0iIyI+CisgIDxpbnB1dCBuYW1lPSJub190eXBl
IiB2YWx1ZT0iaW5wdXQgd2l0aCBubyB0eXBlIiAvPjxici8+CisgIDxici8+CisgIDxpbnB1dCBu
YW1lPSJudW1iZXJfaW5wdXQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQyIiAvPjxici8+CisgIDxp
bnB1dCBuYW1lPSJyYW5nZV9pbnB1dCIgdHlwZT0icmFuZ2UiIHZhbHVlPSI0MiIgLz48YnIvPgor
ICA8YnIvPgorICA8aW5wdXQgbmFtZT0iZW1haWxfaW5wdXQiIHR5cGU9ImVtYWlsIiB2YWx1ZT0i
YWRtaW5AbG9jYWxob3N0IiAvPjxici8+CisgIDxpbnB1dCBuYW1lPSJwYXNzd29yZF9pbnB1dCIg
dHlwZT0icGFzc3dvcmQiIHZhbHVlPSJxd2VydHkiIC8+PGJyLz4KKyAgPGlucHV0IG5hbWU9InNl
YXJjaF9pbnB1dCIgdHlwZT0ic2VhcmNoIiB2YWx1ZT0ic2VhcmNoIiAvPjxici8+CisgIDxpbnB1
dCBuYW1lPSJ0ZWxfaW5wdXQiIHR5cGU9InRlbCIgdmFsdWU9IjkxMSIgLz48YnIvPgorICA8aW5w
dXQgbmFtZT0idGV4dF9pbnB1dCIgdHlwZT0idGV4dCIgdmFsdWU9InRleHQgaW5wdXQiIC8+PGJy
Lz4KKyAgPGlucHV0IG5hbWU9InVybF9pbnB1dCIgdHlwZT0idXJsIiB2YWx1ZT0iaHR0cDovL3Nl
bGVuaXVtaHEub3JnLyIgLz48YnIvPgorICA8YnIvPgorICA8aW5wdXQgbmFtZT0iY2hlY2tib3hf
aW5wdXQiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iQ2hlY2tib3giIGNoZWNrZWQgLz48YnIvPgor
ICA8aW5wdXQgbmFtZT0icmFkaW9faW5wdXQiIHR5cGU9InJhZGlvIiB2YWx1ZT0icmFkaW8xIiBj
aGVja2VkIC8+PGJyLz4KKyAgPGlucHV0IG5hbWU9InJhZGlvX2lucHV0IiB0eXBlPSJyYWRpbyIg
dmFsdWU9InJhZGlvMiIgLz48YnIvPgorICA8YnIvPgorICA8aW5wdXQgbmFtZT0iY29sb3JfaW5w
dXQiIHR5cGU9ImNvbG9yIiB2YWx1ZT0iIzAwZmZmZiIgLz48YnIvPgorICA8YnIvPgorICA8aW5w
dXQgbmFtZT0iZGF0ZV9pbnB1dCIgdHlwZT0iZGF0ZSIgdmFsdWU9IjIwMTctMTEtMjIiIC8+PGJy
Lz4KKyAgPGlucHV0IG5hbWU9ImRhdGV0aW1lX2lucHV0IiB0eXBlPSJkYXRldGltZSIgdmFsdWU9
IjIwMTctMTEtMjJUMTE6MjIiIC8+PGJyLz4KKyAgPGlucHV0IG5hbWU9ImRhdGV0aW1lX2xvY2Fs
X2lucHV0IiB0eXBlPSJkYXRldGltZS1sb2NhbCIgdmFsdWU9IjIwMTctMTEtMjJUMTE6MjIiIC8+
PGJyLz4KKyAgPGlucHV0IG5hbWU9InRpbWVfaW5wdXQiIHR5cGU9InRpbWUiIHZhbHVlPSIxMToy
MiIgLz48YnIvPgorICA8aW5wdXQgbmFtZT0ibW9udGhfaW5wdXQiIHR5cGU9Im1vbnRoIiB2YWx1
ZT0iMjAxNy0xMSIgLz48YnIvPgorICA8aW5wdXQgbmFtZT0id2Vla19pbnB1dCIgdHlwZT0id2Vl
ayIgdmFsdWU9IjIwMTctVzQ3IiAvPjxici8+CisgIDxici8+CisgIDxpbnB1dCBuYW1lPSJidXR0
b25faW5wdXQiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJ1dHRvbiIgLz4mbmJzcDsKKyAgPGlucHV0
IG5hbWU9ImltYWdlX2lucHV0IiB0eXBlPSJpbWFnZSIgdmFsdWU9ImltYWdlIiBzcmM9Imljb24u
Z2lmIiAvPiZuYnNwOworICA8aW5wdXQgbmFtZT0icmVzZXRfaW5wdXQiIHR5cGU9InJlc2V0IiB2
YWx1ZT0icmVzZXQiIC8+Jm5ic3A7CisgIDxpbnB1dCBuYW1lPSJzdWJtaXRfaW5wdXQiIHR5cGU9
InN1Ym1pdCIgdmFsdWU9InN1Ym1pdCIgLz4mbmJzcDsKKworICA8aW5wdXQgbmFtZT0iaGlkZGVu
X2lucHV0IiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJoaWRkZW4iIC8+Cis8L2Zvcm0+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9qYXZhc2NyaXB0RW5oYW5jZWRGb3JtLmh0bWwgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0RW5oYW5jZWRGb3Jt
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNiY2ZmNDMzNTg5
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvamF2YXNjcmlwdEVuaGFuY2VkRm9ybS5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25h
bC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPkphdmFzY3JpcHQgRW5oYW5jZWQgUGFnZTwvdGl0
bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8Zm9ybSBpZD0iZm9ybTEiIGFj
dGlvbj0iamF2YXNjcmlwdEVuaGFuY2VkRm9ybS5odG1sIiBtZXRob2Q9InBvc3QiPgorICAgICAg
ICAgICAgPHA+CisgICAgICAgICAgICAgICAgPGxhYmVsIGlkPSJsYWJlbGZvcnVzZXJuYW1lIiBm
b3I9InVzZXJuYW1lIj4KKyAgICAgICAgICAgICAgICAgICAgVXNlcm5hbWU6IDxpbnB1dCBpZD0i
dXNlcm5hbWUiIHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiAvPgorICAgICAgICAgICAgICAg
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKS52YWx1ZSA9ICdNaWNoYWVs
JzsKKyAgICAgICAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICAgICAgPC9sYWJl
bD4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIDxs
YWJlbCBmb3I9InBhc3N3b3JkIj4KKyAgICAgICAgICAgICAgICAgICAgUGFzc3dvcmQ6IDxpbnB1
dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgLz4KKyAgICAg
ICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAg
ICAgICAgICAgICAgICAgdmFyIHogPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQn
KTsgc2V0VGltZW91dCgndHJ5e3ouZm9jdXMoKTt6LnNlbGVjdCgpO30gY2F0Y2goZSkge30nLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICAgICAgPC9sYWJl
bD4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIDxp
bnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiIC8+CisgICAgICAgICAgICA8L3A+Cisg
ICAgICAgIDwvZm9ybT4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvamF2YXNjcmlwdFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRQYWdlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjYWMyNTJlODk5Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvamF2YXNj
cmlwdFBhZ2UuaHRtbApAQCAtMCwwICsxLDI4NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDExL0RURC94aHRtbDExLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+VGVzdGluZyBKYXZhc2NyaXB0PC90aXRsZT4KKyAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIHZhciBzZWVuID0ge307CisKKyAgICAgICAg
ZnVuY3Rpb24gdXBkYXRlQ29udGVudChpbnB1dCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc3VsdFBhcmFncmFwaCcpLmlubmVySFRNTCA9IGlucHV0LnZhbHVlOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZGlzcGxheU1lc3NhZ2UobWVzc2FnZSkgewor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFBhcmFncmFwaCcpLmlu
bmVySFRNTCA9IG1lc3NhZ2U7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhcHBlbmRN
ZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXN1bHRQYXJhZ3JhcGgnKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICIgIjsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJlZ2lzdGVyKG1lc3NhZ2UpIHsKKyAgICAgICAgICBpZiAoIXNl
ZW5bbWVzc2FnZV0pIHsKKyAgICAgICAgICAgIGFwcGVuZE1lc3NhZ2UobWVzc2FnZSk7CisgICAg
ICAgICAgICBzZWVuW21lc3NhZ2VdID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBkZWxheWVkU2hvd0hpZGUoZGVsYXksIHNob3cpIHsKKyAgICAgICAg
ICB2YXIgYmxhY2tCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xpY2tUb0hpZGUnKTsK
KyAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJs
YWNrQm94LnN0eWxlLmRpc3BsYXkgPSBzaG93ID8gJycgOiAnbm9uZSc7CisgICAgICAgICAgfSwg
ZGVsYXkpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgorICAgICAgICB2YXIgc3RhcnRMaXN0ID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAvLyBVZ2guIExldCdzIGhvcGUgbm8tb25lIGlzIGZha2luZyB0aGVpciB1c2VyIGFn
ZW50IHdoZW4gcnVubmluZyB0aGUgdGVzdHMKKyAgICAgICAgICAgIGlmIChuYXZpZ2F0b3IudXNl
ckFnZW50LmluZGV4T2YoIk1TSUUiKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHZhciBuYXZS
b290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdiIpOworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbmF2Um9vdC5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBub2RlID0gbmF2Um9vdC5jaGlsZE5vZGVzW2ldOworICAgICAg
ICAgICAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PSAiTEkiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBub2RlLm9ubW91c2VvdmVyID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5jbGFzc05hbWUgKz0gIiBvdmVyIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9ubW91c2VvdXQgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsYXNzTmFtZSA9
IHRoaXMuY2xhc3NOYW1lLnJlcGxhY2UoIiBvdmVyIiwgIiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgd2luZG93Lm9ubG9hZD1zdGFydExpc3Q7Cisg
ICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI25hdiB7
CisgICAgICAgICAgICBwYWRkaW5nOiAwOyBtYXJnaW46IDA7IGxpc3Qtc3R5bGU6IG5vbmU7Cisg
ICAgICAgIH0KKyAgICAgICAgI25hdiBsaSB7CisgICAgICAgICAgICBmbG9hdDogbGVmdDsgcG9z
aXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTBlbTsKKyAgICAgICAgfQorICAgICAgICAjbmF2IGxp
IHVsIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9w
OiAxZW07IGxlZnQ6IDA7CisgICAgICAgIH0KKyAgICAgICAgI25hdiBsaSA+IHVsIHsgdG9wOiBh
dXRvOyBsZWZ0OiBhdXRvOyB9CisgICAgICAgICNuYXYgbGk6aG92ZXIgdWwsICNuYXYgbGkub3Zl
ciB1bHsgZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQ6IHdoaXRlOyB9CisgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGgxPlR5cGUgU3R1ZmY8L2gxPgorCis8ZGl2PgorICAgIDx1bCBp
ZD0ibmF2Ij4KKyAgICAgICAgPGxpIGlkPSJtZW51MSI+TWVudSAxCisgICAgICAgICAgICA8dWw+
CisgICAgICAgICAgICAgICAgPGxpIGlkPSJpdGVtMSIgb25jbGljaz0iZGlzcGxheU1lc3NhZ2Uo
J2l0ZW0gMScpOyI+SXRlbSAxPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+SXRlbSAyPC9saT4K
KyAgICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgPC91bD4KKzwvZGl2PgorCis8
ZGl2IGlkPSJyZXN1bHRDb250YWluZXIiIGhlaWdodD0iMzAiPiZuYnNwOworICA8ZGl2IGlkPSJy
ZXN1bHQiIHN0eWxlPSJ3aWR0aDozMDA7aGVpZ2h0OjYwIj4KKyAgICA8cCBpZD0icmVzdWx0UGFy
YWdyYXBoIj4mbmJzcDs8L3A+CisgIDwvZGl2PgorCis8L2Rpdj4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCis8ZGl2IGlkPSJmb3JtYWdlZGRvbiI+CisgICAgPGZvcm0gYWN0aW9u
PSIjIj4KKyAgICAgICAgS2V5IFVwOiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImtleVVwIiBvbmtl
eXVwPSJqYXZhc2NyaXB0OnVwZGF0ZUNvbnRlbnQodGhpcykiLz48YnIvPgorICAgICAgICBLZXkg
RG93bjogPGlucHV0IHR5cGU9InRleHQiIGlkPSJrZXlEb3duIiBvbmtleWRvd249ImphdmFzY3Jp
cHQ6dXBkYXRlQ29udGVudCh0aGlzKSIvPjxici8+CisgICAgICAgIEtleSBQcmVzczogPGlucHV0
IHR5cGU9InRleHQiIGlkPSJrZXlQcmVzcyIgb25rZXlwcmVzcz0iamF2YXNjcmlwdDp1cGRhdGVD
b250ZW50KHRoaXMpIi8+PGJyLz4KKyAgICAgICAgQ2hhbmdlOiA8aW5wdXQgdHlwZT0idGV4dCIg
aWQ9ImNoYW5nZSIgb25rZXlwcmVzcz0iamF2YXNjcmlwdDpkaXNwbGF5TWVzc2FnZSgnY2hhbmdl
JykiLz48YnIvPgorICAgICAgICA8dGV4dGFyZWEgaWQ9ImtleURvd25BcmVhIiBvbmtleWRvd249
ImphdmFzY3JpcHQ6dXBkYXRlQ29udGVudCh0aGlzKSIgcm93cz0iMiIgY29scz0iMTUiPjwvdGV4
dGFyZWE+CisgICAgICAgIDx0ZXh0YXJlYSBpZD0ia2V5UHJlc3NBcmVhIiBvbmtleXByZXNzPSJq
YXZhc2NyaXB0OnVwZGF0ZUNvbnRlbnQodGhpcykiIHJvd3M9IjIiIGNvbHM9IjE1Ij48L3RleHRh
cmVhPgorICAgICAgICA8dGV4dGFyZWEgaWQ9ImtleVVwQXJlYSIgb25rZXl1cD0iamF2YXNjcmlw
dDp1cGRhdGVDb250ZW50KHRoaXMpIiByb3dzPSIyIiBjb2xzPSIxNSI+PC90ZXh0YXJlYT4KKyAg
ICAgICAgPHNlbGVjdCBpZD0ic2VsZWN0b3IiIG9uY2hhbmdlPSJqYXZhc2NyaXB0OnVwZGF0ZUNv
bnRlbnQodGhpcykiPgorICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZm9vIj5Gb288L29wdGlv
bj4KKyAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJhciI+QmFyPC9vcHRpb24+CisgICAgICAg
IDwvc2VsZWN0PgorICAgICAgICA8c2VsZWN0IGlkPSJzZWxlY3RvcjIiIG9uY2xpY2s9ImphdmFz
Y3JpcHQ6dXBkYXRlQ29udGVudCh0aGlzKSI+CisgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJm
b28iPkZvbzwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYmFyIj5CYXI8L29w
dGlvbj4KKyAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9ImNoZWNrYm94IiB2YWx1ZT0iY2hlY2tib3ggdGhpbmciIG9uY2hhbmdlPSJqYXZhc2NyaXB0
OnVwZGF0ZUNvbnRlbnQodGhpcykiLz4KKyAgICAgICAgPGlucHV0IGlkPSJjbGlja0ZpZWxkIiB0
eXBlPSJ0ZXh0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xpY2tGaWVsZCcp
LnZhbHVlPSdDbGlja2VkJzsiIHZhbHVlPSJIZWxsbyIvPgorICAgICAgICA8aW5wdXQgaWQ9ImRv
dWJsZUNsaWNrRmllbGQiIHR5cGU9InRleHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkb3VibGVDbGlja0ZpZWxkJykudmFsdWU9J0NsaWNrZWQnOyIgb25kYmxjbGljaz0iZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvdWJsZUNsaWNrRmllbGQnKS52YWx1ZT0nRG91YmxlQ2xp
Y2tlZCc7IiBvbmNvbnRleHRtZW51PSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG91YmxlQ2xp
Y2tGaWVsZCcpLnZhbHVlPSdDb250ZXh0Q2xpY2tlZCc7IHJldHVybiBmYWxzZTsiIHZhbHVlPSJE
b3VibGVIZWxsbyIvPgorICAgICAgICA8aW5wdXQgaWQ9ImNsZWFyTWUiIHZhbHVlPSJTb21ldGhp
bmciIG9uY2hhbmdlPSJkaXNwbGF5TWVzc2FnZSgnQ2xlYXJlZCcpIi8+CisgICAgPC9mb3JtPgor
PC9kaXY+CisKKzxkaXY+CisgICAgPHA+PGEgaHJlZj0iIyIgb25jbGljaz0iamF2YXNjcmlwdDpk
b2N1bWVudC50aXRsZT0nQ2hhbmdlZCciPkNoYW5nZSB0aGUgcGFnZSB0aXRsZSE8L2E+PC9wPgor
CisgICAgPHA+PGEgb25jbGljaz0iamF2YXNjcmlwdDpkb2N1bWVudC50aXRsZT0nQ2hhbmdlZCci
IGlkPSJub2hyZWYiPk5vIGhyZWY8L2E+PC9wPgorCisgICAgPHA+PGEgaWQ9InVwZGF0ZWRpdiIg
aHJlZj0iIyIgb25jbGljaz0iamF2YXNjcmlwdDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHlu
YW1vJykuaW5uZXJIVE1MID0gJ0Zpc2ggYW5kIGNoaXBzISc7Ij5VcGRhdGUgYQorICAgICAgICBk
aXY8L2E+PC9wPgorPC9kaXY+CisKKzxkaXYgaWQ9ImR5bmFtbyI+V2hhdCdzIGZvciBkaW5uZXI/
PC9kaXY+CisKKzxkaXYgaWQ9Im1vdXNlZG93biIgb25tb3VzZWRvd249ImphdmFzY3JpcHQ6ZGlz
cGxheU1lc3NhZ2UoJ21vdXNlIGRvd24nKTsiPgorICAgIDxwPkNsaWNrIGZvciB0aGUgbW91c2Ug
ZG93biBldmVudDwvcD4KKyAgICA8c3Bhbj48cCBpZD0iY2hpbGQiPkhlcmUncyBzb21lIHRleHQ8
L3A+PC9zcGFuPgorPC9kaXY+CisKKzxkaXYgaWQ9Im1vdXNldXAiIG9ubW91c2V1cD0iamF2YXNj
cmlwdDpkaXNwbGF5TWVzc2FnZSgnbW91c2UgdXAnKTsiPgorICAgIDxwPkNsaWNrIGZvciB0aGUg
bW91c2UgdXAgZXZlbnQ8L3A+Cis8L2Rpdj4KKworPGRpdiBpZD0ibW91c2VjbGljayIgb25jbGlj
az0iamF2YXNjcmlwdDpkaXNwbGF5TWVzc2FnZSgnbW91c2UgY2xpY2snKTsiPgorICAgIDxwPkNs
aWNrIGZvciB0aGUgbW91c2UgY2xpY2sgZXZlbnQ8L3A+Cis8L2Rpdj4KKworPGRpdiBpZD0iZXJy
b3IiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2Vzbm90ZXhpc3QnKS5pbm5l
ckhUTUwgPSAnY2hlZXNlJzsiPgorICAgIENsaWNraW5nIHRoaXMgY2F1c2VzIGEgSlMgZXhjZXB0
aW9uIGluIHRoZSBjbGljayBoYW5kbGVyCis8L2Rpdj4KKworPGRpdj4KKyAgPGZvcm0gYWN0aW9u
PSJyZXN1bHRQYWdlLmh0bWwiIGlkPSJvbi1mb3JtIj4KKyAgICA8aW5wdXQgaWQ9InRoZXdvcmtz
IgorICAgICAgICAgICBvbmZvY3VzPSJhcHBlbmRNZXNzYWdlKCdmb2N1cycpIgorICAgICAgICAg
ICBvbmtleWRvd249ImFwcGVuZE1lc3NhZ2UoJ2tleWRvd24nKSIKKyAgICAgICAgICAgb25rZXlw
cmVzcz0iYXBwZW5kTWVzc2FnZSgna2V5cHJlc3MnKSIKKyAgICAgICAgICAgb25rZXl1cD0iYXBw
ZW5kTWVzc2FnZSgna2V5dXAnKSIKKyAgICAgICAgICAgb25ibHVyPSJhcHBlbmRNZXNzYWdlKCdi
bHVyJykiCisgICAgICAgICAgIG9uY2hhbmdlPSJhcHBlbmRNZXNzYWdlKCdjaGFuZ2UnKSIKKyAg
ICAgICAgICAgLz4KKworICAgIDxpbnB1dCBpZD0iY2hhbmdlYWJsZSIgbmFtZT0iY2hhbmdlYWJs
ZSIgb25mb2N1cz0iYXBwZW5kTWVzc2FnZSgnZm9jdXMnKSIgb25jaGFuZ2U9ImFwcGVuZE1lc3Nh
Z2UoJ2NoYW5nZScpIiBvbmJsdXI9ImFwcGVuZE1lc3NhZ2UoJ2JsdXInKSIvPgorICAgICAgICAg
ICAKKyAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InBsYWluQnV0dG9uIiAKKyAgICAJCW9u
Zm9jdXM9ImFwcGVuZE1lc3NhZ2UoJ2ZvY3VzJykiCisgICAgICAgICAgIAlvbmtleWRvd249ImFw
cGVuZE1lc3NhZ2UoJ2tleWRvd24nKSIKKyAgICAgICAgICAgCW9ua2V5cHJlc3M9ImFwcGVuZE1l
c3NhZ2UoJ2tleXByZXNzJykiCisgICAgICAgICAgIAlvbmtleXVwPSJhcHBlbmRNZXNzYWdlKCdr
ZXl1cCcpIgorICAgICAgICAgICAJb25ibHVyPSJhcHBlbmRNZXNzYWdlKCdibHVyJykiCisgICAg
ICAgICAgIAlvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdjbGljaycpIgorICAgICAgICAgICAJb25t
b3VzZWRvd249ImFwcGVuZE1lc3NhZ2UoJ21vdXNlZG93biAnKSIgCisgICAgICAgICAgIAlvbm1v
dXNldXA9ImFwcGVuZE1lc3NhZ2UoJ21vdXNldXAgJykiCisgICAgICAgICAgICBvbm1vdXNlb3Zl
cj0icmVnaXN0ZXIoJ21vdXNlb3ZlciAnKSIKKyAgICAgICAgICAgIG9ubW91c2Vtb3ZlPSJyZWdp
c3RlcignbW91c2Vtb3ZlICcpIgorICAgID4KKyAgICAgICAgPGI+R28gc29tZXdoZXJlPC9iPgor
ICAgIDwvYnV0dG9uPgorICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0dGluZ0J1
dHRvbiI+PGVtcGg+c3VibWl0PC9lbXBoPjwvYnV0dG9uPgorICAgIDxidXR0b24gdHlwZT0iYnV0
dG9uIiBpZD0ianNTdWJtaXRCdXR0b24iIG9uY2xpY2s9ImphdmFzY3JpcHQ6ZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ29uLWZvcm0nKS5zdWJtaXQoKTsiPlN1Ym1pdG9tYXRpYzwvYnV0dG9uPgor
CisgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJzd2l0Y2hGb2N1cyIgb25jbGljaz0iZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoZXdvcmtzJykuZm9jdXMoKTsiPlN3aXRjaCBmb2N1czwv
YnV0dG9uPgorICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzd2l0Y2hGb2N1cycpOyB2YXIgY2xpY2tFdmVudCA9
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50cycpOyBjbGlja0V2ZW50LmluaXRNb3Vz
ZUV2ZW50KCdjbGljaycsIHRydWUsIHRydWUsIG51bGwsIDAsIDAsIDAsIDAsIDAsZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIDAsIGVsZW1lbnQpO2VsZW1lbnQuZGlzcGF0Y2hFdmVudChjbGlj
a0V2ZW50KTsiPkRvIG1hZ2ljPC9idXR0b24+PGJyLz4KKyAgICA8bGFiZWwgaWQ9ImxhYmVsRm9y
Q2hlY2tib3giIGZvcj0ibGFiZWxlZENoZWNrYm94IiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCds
YWJlbGNsaWNrJykiPlRvZ2dsZSBjaGVja2JveDwvbGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0ibGFiZWxlZENoZWNrYm94IiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdjaGJveGNsaWNr
JykiLz4KKyAgPC9mb3JtPgorICAKKyAgPGZvcm0gYWN0aW9uPSJqYXZhc2NyaXB0UGFnZS5odG1s
IiBpZD0ic3VibWl0TGlzdGVuaW5nRm9ybSIgb25zdWJtaXQ9ImFwcGVuZE1lc3NhZ2UoJ2Zvcm0t
b25zdWJtaXQgJyk7IHJldHVybiBmYWxzZTsiPgorICAgIDxwPgorICAgICAgPGlucHV0IGlkPSJz
dWJtaXRMaXN0ZW5pbmdGb3JtLXRleHQiIHR5cGU9InRleHQiIG9uc3VibWl0PSJhcHBlbmRNZXNz
YWdlKCd0ZXh0LW9uc3VibWl0ICcpIiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCd0ZXh0LW9uY2xp
Y2sgJyk7IiAvPgorICAgICAgPGlucHV0IGlkPSJzdWJtaXRMaXN0ZW5pbmdGb3JtLXN1Ym1pdCIg
dHlwZT0ic3VibWl0IiBvbnN1Ym1pdD0iYXBwZW5kTWVzc2FnZSgnc3VibWl0LW9uc3VibWl0ICcp
IiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdzdWJtaXQtb25jbGljayAnKTsiIC8+CisgICAgPC9w
PgorICA8L2Zvcm0+Cis8L2Rpdj4KKworPHAgaWQ9InN1cHByZXNzZWRQYXJhZ3JhcGgiIHN0eWxl
PSJkaXNwbGF5OiBub25lIj5BIHBhcmFncmFwaCBzdXBwcmVzc2VkIHVzaW5nIENTUyBkaXNwbGF5
PW5vbmU8L3A+CisKKzxkaXY+CisgICAgPHAgaWQ9ImRpc3BsYXllZCI+RGlzcGxheWVkPC9wPgor
CisgICAgPGZvcm0gYWN0aW9uPSIjIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW4i
IC8+IDwvZm9ybT4KKworICAgIDxwIGlkPSJub25lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPkRp
c3BsYXkgc2V0IHRvIG5vbmU8L3A+CisKKyAgICA8cCBpZD0iaGlkZGVuIiBzdHlsZT0idmlzaWJp
bGl0eTogaGlkZGVuOyI+SGlkZGVuPC9wPgorCisgICAgPGRpdiBpZD0iaGlkZGVucGFyZW50IiBz
dHlsZT0iaGVpZ2h0OiAyZW07IGRpc3BsYXk6IG5vbmU7Ij4KKyAgICAgIDxkaXYgaWQ9ImhpZGRl
bmNoaWxkIj4KKyAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImhpZGRlbmxpbmsiPm9rPC9hPgorICAg
ICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgCisgICAgPGRpdiBzdHlsZT0idmlzaWJpbGl0eTog
aGlkZGVuOyI+CisgICAgICA8c3Bhbj4KKyAgICAgICAgPGlucHV0IGlkPSJ1bmNsaWNrYWJsZSIg
Lz4KKyAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idW50b2dnbGFibGUiIGNoZWNr
ZWQ9ImNoZWNrZWQiIC8+Q2hlY2sgYm94IHlvdSBjYW4ndCBzZWUKKyAgICAgIDwvc3Bhbj4KKyAg
ICA8L2Rpdj4KKworICAgIDxwIGlkPSJvdXRlciIgc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+
QSA8YiBpZD0idmlzaWJsZVN1YkVsZW1lbnQiIHN0eWxlPSJ2aXNpYmlsaXR5OiB2aXNpYmxlIj5z
dWItZWxlbWVudCB0aGF0IGlzIGV4cGxpY2l0bHkgdmlzaWJsZTwvYj4gdXNpbmcgQ1NTIHZpc2li
aWxpdHk9dmlzaWJsZTwvcD4KKzwvZGl2PgorCis8ZGl2PgorICAgIDxmb3JtPgorICAgICAgICA8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImtleVJlcG9ydGVyIiBzaXplPSI4MCIKKyAgICAgICAgICAg
ICAgIG9ua2V5dXA9ImFwcGVuZE1lc3NhZ2UoJ3VwOiAnICsgZXZlbnQua2V5Q29kZSkiCisgICAg
ICAgICAgICAgICBvbmtleXByZXNzPSJhcHBlbmRNZXNzYWdlKCdwcmVzczogJyArIGV2ZW50Lmtl
eUNvZGUpIgorICAgICAgICAgICAgICAgb25rZXlkb3duPSJkaXNwbGF5TWVzc2FnZSgnJyk7IGFw
cGVuZE1lc3NhZ2UoJ2Rvd246ICcgKyBldmVudC5rZXlDb2RlKSIgLz4KKyAgICAgICAgPGlucHV0
IG5hbWU9InN1cHByZXNzIiBvbmtleWRvd249ImlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgZXZl
bnQucHJldmVudERlZmF1bHQoKTsgZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTsgcmV0dXJuIGZh
bHNlOyIgb25rZXlwcmVzcz0iYXBwZW5kTWVzc2FnZSgncHJlc3MnKTsiLz4KKyAgICA8L2Zvcm0+
Cis8L2Rpdj4KKworPCEtLSBVc2VkIGZvciB0ZXN0aW5nIHN0eWxlcyAtLT4KKzxkaXYgc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IGdyZWVuOyIgaWQ9ImdyZWVuLXBhcmVudCI+CisgIDxwIGlkPSJz
dHlsZTEiPlRoaXMgc2hvdWxkIGJlIGdyZWVuaXNoPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaSBp
ZD0iZ3JlZW4taXRlbSI+U28gc2hvdWxkIHRoaXM8L2xpPgorICAgICAgPGxpIGlkPSJyZWQtaXRl
bSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsiPkJ1dCB0aGlzIGlzIHJlZDwvbGk+Cisg
ICAgPC91bD4KKzwvZGl2PgorCis8YSBocmVmPSIjIiBpZD0iY2xvc2UiIG9uY2xpY2s9IndpbmRv
dy5jbG9zZSgpOyI+Q2xvc2Ugd2luZG93PC9hPgorCis8ZGl2IGlkPSJkZWxldGUiIG9uY2xpY2s9
InZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbGV0ZWQnKTsgdGhpcy5yZW1vdmVD
aGlsZChkKTsiPgorICAgIDxwIGlkPSJkZWxldGVkIj5JIHNob3VsZCBiZSBkZWxldGVkIHdoZW4g
eW91IGNsaWNrIG15IGNvbnRhaW5pbmcgZGl2PC9wPgorICAgIDxwPldoZXJlYXMsIEkgc2hvdWxk
IG5vdDwvcD4KKzwvZGl2PgorCis8ZGl2PgorICAgIDxzcGFuIGlkPSJoaWRlTWUiIG9uY2xpY2s9
InRoaXMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsiPkNsaWNrIHRvIGhpZGUgbWUuPC9zcGFuPgor
PC9kaXY+CisKKzxkaXYgaWQ9ImhpZGVPbkJsdXIiIHRhYmluZGV4PSIwIgorICAgICBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZWQiCisgICAg
IG9uYmx1cj0iYXBwZW5kTWVzc2FnZSgnYmx1cicpOyB0aGlzLnN0eWxlLmRpc3BsYXkgPSAnbm9u
ZSc7Ij4KKyAgPGRpdiBpZD0iaGlkZU9uQmx1ckNoaWxkIgorICAgICAgIHN0eWxlPSJ3aWR0aDog
MzBweDsgaGVpZ2h0OiAzMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibHVlIj4KKyAgICB4CisgIDwv
ZGl2PgorICBGb2N1c2FibGUuIFdpbGwgaGlkZSB3aGVuIGZvY3VzIGlzIGxvc3QuCis8L2Rpdj4K
KworPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPgorICBDbGljayBhY3Rpb25zIGRlbGF5
ZWQgYnkgMzAwMG1zOgorICA8ZGl2IGlkPSJjbGlja1RvU2hvdyIgb25jbGljaz0iZGVsYXllZFNo
b3dIaWRlKDMwMDAsIHRydWUpOyIKKyAgICAgICBzdHlsZT0iZmxvYXQ6IGxlZnQ7d2lkdGg6IDEw
MHB4O2hlaWdodDoxMDBweDtib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPgorICAgIENsaWNrIHRv
IHNob3cgYmxhY2sgYm94CisgIDwvZGl2PgorICA8ZGl2IGlkPSJjbGlja1RvSGlkZSIgb25jbGlj
az0iZGVsYXllZFNob3dIaWRlKDMwMDAsIGZhbHNlKTsiCisgICAgICAgc3R5bGU9ImZsb2F0OiBs
ZWZ0O3dpZHRoOiAxMDBweDtoZWlnaHQ6MTAwcHg7Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyBjb2xvcjogd2hpdGU7IGRpc3Bs
YXk6IG5vbmU7Ij4KKyAgICBDbGljayB0byBoaWRlIGJsYWNrIGJveAorICA8L2Rpdj4KKyAgPGRp
diBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2PgorPC9kaXY+CisKKzxhIGlkPSJuZXdfd2luZG93
IiBvbm1vdXNldXA9IndpbmRvdy5vcGVuKCdjbG9zZWFibGVfd2luZG93Lmh0bWwnLCAnY2xvc2Vf
bWUnKSIgaHJlZj0iIyI+Q2xpY2sgbWUgdG8gb3BlbiBhIG5ldyB3aW5kb3c8L2E+CisKKzxhIGlk
PSJ0aHJvd2luZy1tb3VzZW92ZXIiIG9ubW91c2VvdmVyPSJ0aHJvdyBuZXcgRXJyb3IoKSIgaHJl
Zj0iI3Rocm93aW5nLW1vdXNlb3ZlciI+TW91c2Ugb3ZlciBtZSB3aWxsIHRocm93IGEgSlMgZXJy
b3I8L2E+CisKKzxkaXYgaWQ9InBhcmVudCI+CisgICAgPHNwYW4gaWQ9Im1vdmFibGUiIG9ubW91
c2VvdmVyPSJ2YXIgcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3ZhYmxlJyk7IGRpc3Bs
YXlNZXNzYWdlKCdwYXJlbnQgbWF0Y2hlcz8gJyArIChwICE9IGV2ZW50LnJlbGF0ZWRUYXJnZXQp
KTsiPgorICAgICAgICBDbGljayBvbiBtZSB0byBzaG93IHRoZSByZWxhdGVkIHRhcmdldAorICAg
IDwvc3Bhbj4KKzwvZGl2PgorCis8ZGl2IGlkPSJ6ZXJvIiBzdHlsZT0id2lkdGg6MDtoZWlnaHQ6
MCI+CisgIDxkaXY+CisgICAgPGltZyBzcmM9Im1hcC5wbmciPgorICA8L2Rpdj4KKzwvZGl2Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanF1ZXJ5LTEuMy4yLmpzIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanF1ZXJ5LTEuMy4yLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NjJjZGU1NmMzNwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2pxdWVyeS0xLjMuMi5qcwpAQCAtMCwwICsxLDQzNzYgQEAKKy8qIQorICogalF1ZXJ5IEphdmFT
Y3JpcHQgTGlicmFyeSB2MS4zLjIKKyAqIGh0dHA6Ly9qcXVlcnkuY29tLworICoKKyAqIENvcHly
aWdodCAoYykgMjAwOSBKb2huIFJlc2lnCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQg
YW5kIEdQTCBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vTGljZW5zZQorICoK
KyAqIERhdGU6IDIwMDktMDItMTkgMTc6MzQ6MjEgLTA1MDAgKFRodSwgMTkgRmViIDIwMDkpCisg
KiBSZXZpc2lvbjogNjI0NgorICovCisoZnVuY3Rpb24oKXsKKwordmFyIAorCS8vIFdpbGwgc3Bl
ZWQgdXAgcmVmZXJlbmNlcyB0byB3aW5kb3csIGFuZCBhbGxvd3MgbXVuZ2luZyBpdHMgbmFtZS4K
Kwl3aW5kb3cgPSB0aGlzLAorCS8vIFdpbGwgc3BlZWQgdXAgcmVmZXJlbmNlcyB0byB1bmRlZmlu
ZWQsIGFuZCBhbGxvd3MgbXVuZ2luZyBpdHMgbmFtZS4KKwl1bmRlZmluZWQsCisJLy8gTWFwIG92
ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlCisJX2pRdWVyeSA9IHdpbmRvdy5qUXVlcnks
CisJLy8gTWFwIG92ZXIgdGhlICQgaW4gY2FzZSBvZiBvdmVyd3JpdGUKKwlfJCA9IHdpbmRvdy4k
LAorCisJalF1ZXJ5ID0gd2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0gZnVuY3Rpb24oIHNlbGVj
dG9yLCBjb250ZXh0ICkgeworCQkvLyBUaGUgalF1ZXJ5IG9iamVjdCBpcyBhY3R1YWxseSBqdXN0
IHRoZSBpbml0IGNvbnN0cnVjdG9yICdlbmhhbmNlZCcKKwkJcmV0dXJuIG5ldyBqUXVlcnkuZm4u
aW5pdCggc2VsZWN0b3IsIGNvbnRleHQgKTsKKwl9LAorCisJLy8gQSBzaW1wbGUgd2F5IHRvIGNo
ZWNrIGZvciBIVE1MIHN0cmluZ3Mgb3IgSUQgc3RyaW5ncworCS8vIChib3RoIG9mIHdoaWNoIHdl
IG9wdGltaXplIGZvcikKKwlxdWlja0V4cHIgPSAvXltePF0qKDwoLnxccykrPilbXj5dKiR8XiMo
W1x3LV0rKSQvLAorCS8vIElzIGl0IGEgc2ltcGxlIHNlbGVjdG9yCisJaXNTaW1wbGUgPSAvXi5b
XjojXFtcLixdKiQvOworCitqUXVlcnkuZm4gPSBqUXVlcnkucHJvdG90eXBlID0geworCWluaXQ6
IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHsKKwkJLy8gTWFrZSBzdXJlIHRoYXQgYSBz
ZWxlY3Rpb24gd2FzIHByb3ZpZGVkCisJCXNlbGVjdG9yID0gc2VsZWN0b3IgfHwgZG9jdW1lbnQ7
CisKKwkJLy8gSGFuZGxlICQoRE9NRWxlbWVudCkKKwkJaWYgKCBzZWxlY3Rvci5ub2RlVHlwZSAp
IHsKKwkJCXRoaXNbMF0gPSBzZWxlY3RvcjsKKwkJCXRoaXMubGVuZ3RoID0gMTsKKwkJCXRoaXMu
Y29udGV4dCA9IHNlbGVjdG9yOworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJLy8gSGFuZGxlIEhU
TUwgc3RyaW5ncworCQlpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gInN0cmluZyIgKSB7CisJCQkv
LyBBcmUgd2UgZGVhbGluZyB3aXRoIEhUTUwgc3RyaW5nIG9yIGFuIElEPworCQkJdmFyIG1hdGNo
ID0gcXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICk7CisKKwkJCS8vIFZlcmlmeSBhIG1hdGNoLCBh
bmQgdGhhdCBubyBjb250ZXh0IHdhcyBzcGVjaWZpZWQgZm9yICNpZAorCQkJaWYgKCBtYXRjaCAm
JiAobWF0Y2hbMV0gfHwgIWNvbnRleHQpICkgeworCisJCQkJLy8gSEFORExFOiAkKGh0bWwpIC0+
ICQoYXJyYXkpCisJCQkJaWYgKCBtYXRjaFsxXSApCisJCQkJCXNlbGVjdG9yID0galF1ZXJ5LmNs
ZWFuKCBbIG1hdGNoWzFdIF0sIGNvbnRleHQgKTsKKworCQkJCS8vIEhBTkRMRTogJCgiI2lkIikK
KwkJCQllbHNlIHsKKwkJCQkJdmFyIGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggbWF0
Y2hbM10gKTsKKworCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJl
dHVybiBpdGVtcworCQkJCQkvLyBieSBuYW1lIGluc3RlYWQgb2YgSUQKKwkJCQkJaWYgKCBlbGVt
ICYmIGVsZW0uaWQgIT0gbWF0Y2hbM10gKQorCQkJCQkJcmV0dXJuIGpRdWVyeSgpLmZpbmQoIHNl
bGVjdG9yICk7CisKKwkJCQkJLy8gT3RoZXJ3aXNlLCB3ZSBpbmplY3QgdGhlIGVsZW1lbnQgZGly
ZWN0bHkgaW50byB0aGUgalF1ZXJ5IG9iamVjdAorCQkJCQl2YXIgcmV0ID0galF1ZXJ5KCBlbGVt
IHx8IFtdICk7CisJCQkJCXJldC5jb250ZXh0ID0gZG9jdW1lbnQ7CisJCQkJCXJldC5zZWxlY3Rv
ciA9IHNlbGVjdG9yOworCQkJCQlyZXR1cm4gcmV0OworCQkJCX0KKworCQkJLy8gSEFORExFOiAk
KGV4cHIsIFtjb250ZXh0XSkKKwkJCS8vICh3aGljaCBpcyBqdXN0IGVxdWl2YWxlbnQgdG86ICQo
Y29udGVudCkuZmluZChleHByKQorCQkJfSBlbHNlCisJCQkJcmV0dXJuIGpRdWVyeSggY29udGV4
dCApLmZpbmQoIHNlbGVjdG9yICk7CisKKwkJLy8gSEFORExFOiAkKGZ1bmN0aW9uKQorCQkvLyBT
aG9ydGN1dCBmb3IgZG9jdW1lbnQgcmVhZHkKKwkJfSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rp
b24oIHNlbGVjdG9yICkgKQorCQkJcmV0dXJuIGpRdWVyeSggZG9jdW1lbnQgKS5yZWFkeSggc2Vs
ZWN0b3IgKTsKKworCQkvLyBNYWtlIHN1cmUgdGhhdCBvbGQgc2VsZWN0b3Igc3RhdGUgaXMgcGFz
c2VkIGFsb25nCisJCWlmICggc2VsZWN0b3Iuc2VsZWN0b3IgJiYgc2VsZWN0b3IuY29udGV4dCAp
IHsKKwkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3Rvci5zZWxlY3RvcjsKKwkJCXRoaXMuY29udGV4
dCA9IHNlbGVjdG9yLmNvbnRleHQ7CisJCX0KKworCQlyZXR1cm4gdGhpcy5zZXRBcnJheShqUXVl
cnkuaXNBcnJheSggc2VsZWN0b3IgKSA/CisJCQlzZWxlY3RvciA6CisJCQlqUXVlcnkubWFrZUFy
cmF5KHNlbGVjdG9yKSk7CisJfSwKKworCS8vIFN0YXJ0IHdpdGggYW4gZW1wdHkgc2VsZWN0b3IK
KwlzZWxlY3RvcjogIiIsCisKKwkvLyBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIGpRdWVyeSBiZWlu
ZyB1c2VkCisJanF1ZXJ5OiAiMS4zLjIiLAorCisJLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBj
b250YWluZWQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQKKwlzaXplOiBmdW5jdGlvbigpIHsK
KwkJcmV0dXJuIHRoaXMubGVuZ3RoOworCX0sCisKKwkvLyBHZXQgdGhlIE50aCBlbGVtZW50IGlu
IHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0IE9SCisJLy8gR2V0IHRoZSB3aG9sZSBtYXRjaGVkIGVs
ZW1lbnQgc2V0IGFzIGEgY2xlYW4gYXJyYXkKKwlnZXQ6IGZ1bmN0aW9uKCBudW0gKSB7CisJCXJl
dHVybiBudW0gPT09IHVuZGVmaW5lZCA/CisKKwkJCS8vIFJldHVybiBhICdjbGVhbicgYXJyYXkK
KwkJCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKCB0aGlzICkgOgorCisJCQkvLyBSZXR1cm4g
anVzdCB0aGUgb2JqZWN0CisJCQl0aGlzWyBudW0gXTsKKwl9LAorCisJLy8gVGFrZSBhbiBhcnJh
eSBvZiBlbGVtZW50cyBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjaworCS8vIChyZXR1cm5pbmcg
dGhlIG5ldyBtYXRjaGVkIGVsZW1lbnQgc2V0KQorCXB1c2hTdGFjazogZnVuY3Rpb24oIGVsZW1z
LCBuYW1lLCBzZWxlY3RvciApIHsKKwkJLy8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxl
bWVudCBzZXQKKwkJdmFyIHJldCA9IGpRdWVyeSggZWxlbXMgKTsKKworCQkvLyBBZGQgdGhlIG9s
ZCBvYmplY3Qgb250byB0aGUgc3RhY2sgKGFzIGEgcmVmZXJlbmNlKQorCQlyZXQucHJldk9iamVj
dCA9IHRoaXM7CisKKwkJcmV0LmNvbnRleHQgPSB0aGlzLmNvbnRleHQ7CisKKwkJaWYgKCBuYW1l
ID09PSAiZmluZCIgKQorCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICh0aGlzLnNl
bGVjdG9yID8gIiAiIDogIiIpICsgc2VsZWN0b3I7CisJCWVsc2UgaWYgKCBuYW1lICkKKwkJCXJl
dC5zZWxlY3RvciA9IHRoaXMuc2VsZWN0b3IgKyAiLiIgKyBuYW1lICsgIigiICsgc2VsZWN0b3Ig
KyAiKSI7CisKKwkJLy8gUmV0dXJuIHRoZSBuZXdseS1mb3JtZWQgZWxlbWVudCBzZXQKKwkJcmV0
dXJuIHJldDsKKwl9LAorCisJLy8gRm9yY2UgdGhlIGN1cnJlbnQgbWF0Y2hlZCBzZXQgb2YgZWxl
bWVudHMgdG8gYmVjb21lCisJLy8gdGhlIHNwZWNpZmllZCBhcnJheSBvZiBlbGVtZW50cyAoZGVz
dHJveWluZyB0aGUgc3RhY2sgaW4gdGhlIHByb2Nlc3MpCisJLy8gWW91IHNob3VsZCB1c2UgcHVz
aFN0YWNrKCkgaW4gb3JkZXIgdG8gZG8gdGhpcywgYnV0IG1haW50YWluIHRoZSBzdGFjaworCXNl
dEFycmF5OiBmdW5jdGlvbiggZWxlbXMgKSB7CisJCS8vIFJlc2V0dGluZyB0aGUgbGVuZ3RoIHRv
IDAsIHRoZW4gdXNpbmcgdGhlIG5hdGl2ZSBBcnJheSBwdXNoCisJCS8vIGlzIGEgc3VwZXItZmFz
dCB3YXkgdG8gcG9wdWxhdGUgYW4gb2JqZWN0IHdpdGggYXJyYXktbGlrZSBwcm9wZXJ0aWVzCisJ
CXRoaXMubGVuZ3RoID0gMDsKKwkJQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoIHRoaXMsIGVs
ZW1zICk7CisKKwkJcmV0dXJuIHRoaXM7CisJfSwKKworCS8vIEV4ZWN1dGUgYSBjYWxsYmFjayBm
b3IgZXZlcnkgZWxlbWVudCBpbiB0aGUgbWF0Y2hlZCBzZXQuCisJLy8gKFlvdSBjYW4gc2VlZCB0
aGUgYXJndW1lbnRzIHdpdGggYW4gYXJyYXkgb2YgYXJncywgYnV0IHRoaXMgaXMKKwkvLyBvbmx5
IHVzZWQgaW50ZXJuYWxseS4pCisJZWFjaDogZnVuY3Rpb24oIGNhbGxiYWNrLCBhcmdzICkgewor
CQlyZXR1cm4galF1ZXJ5LmVhY2goIHRoaXMsIGNhbGxiYWNrLCBhcmdzICk7CisJfSwKKworCS8v
IERldGVybWluZSB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCB3aXRoaW4KKwkvLyB0aGUgbWF0
Y2hlZCBzZXQgb2YgZWxlbWVudHMKKwlpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7CisJCS8vIExv
Y2F0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRlc2lyZWQgZWxlbWVudAorCQlyZXR1cm4galF1ZXJ5
LmluQXJyYXkoCisJCQkvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJz
dCBlbGVtZW50IGlzIHVzZWQKKwkJCWVsZW0gJiYgZWxlbS5qcXVlcnkgPyBlbGVtWzBdIDogZWxl
bQorCQksIHRoaXMgKTsKKwl9LAorCisJYXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlLCB0eXBl
ICkgeworCQl2YXIgb3B0aW9ucyA9IG5hbWU7CisKKwkJLy8gTG9vayBmb3IgdGhlIGNhc2Ugd2hl
cmUgd2UncmUgYWNjZXNzaW5nIGEgc3R5bGUgdmFsdWUKKwkJaWYgKCB0eXBlb2YgbmFtZSA9PT0g
InN0cmluZyIgKQorCQkJaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkKKwkJCQlyZXR1cm4gdGhp
c1swXSAmJiBqUXVlcnlbIHR5cGUgfHwgImF0dHIiIF0oIHRoaXNbMF0sIG5hbWUgKTsKKworCQkJ
ZWxzZSB7CisJCQkJb3B0aW9ucyA9IHt9OworCQkJCW9wdGlvbnNbIG5hbWUgXSA9IHZhbHVlOwor
CQkJfQorCisJCS8vIENoZWNrIHRvIHNlZSBpZiB3ZSdyZSBzZXR0aW5nIHN0eWxlIHZhbHVlcwor
CQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpeworCQkJLy8gU2V0IGFsbCB0aGUgc3R5bGVz
CisJCQlmb3IgKCBuYW1lIGluIG9wdGlvbnMgKQorCQkJCWpRdWVyeS5hdHRyKAorCQkJCQl0eXBl
ID8KKwkJCQkJCXRoaXMuc3R5bGUgOgorCQkJCQkJdGhpcywKKwkJCQkJbmFtZSwgalF1ZXJ5LnBy
b3AoIHRoaXMsIG9wdGlvbnNbIG5hbWUgXSwgdHlwZSwgaSwgbmFtZSApCisJCQkJKTsKKwkJfSk7
CisJfSwKKworCWNzczogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CisJCS8vIGlnbm9yZSBuZWdh
dGl2ZSB3aWR0aCBhbmQgaGVpZ2h0IHZhbHVlcworCQlpZiAoIChrZXkgPT0gJ3dpZHRoJyB8fCBr
ZXkgPT0gJ2hlaWdodCcpICYmIHBhcnNlRmxvYXQodmFsdWUpIDwgMCApCisJCQl2YWx1ZSA9IHVu
ZGVmaW5lZDsKKwkJcmV0dXJuIHRoaXMuYXR0cigga2V5LCB2YWx1ZSwgImN1ckNTUyIgKTsKKwl9
LAorCisJdGV4dDogZnVuY3Rpb24oIHRleHQgKSB7CisJCWlmICggdHlwZW9mIHRleHQgIT09ICJv
YmplY3QiICYmIHRleHQgIT0gbnVsbCApCisJCQlyZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgg
KHRoaXNbMF0gJiYgdGhpc1swXS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50KS5jcmVhdGVUZXh0
Tm9kZSggdGV4dCApICk7CisKKwkJdmFyIHJldCA9ICIiOworCisJCWpRdWVyeS5lYWNoKCB0ZXh0
IHx8IHRoaXMsIGZ1bmN0aW9uKCl7CisJCQlqUXVlcnkuZWFjaCggdGhpcy5jaGlsZE5vZGVzLCBm
dW5jdGlvbigpeworCQkJCWlmICggdGhpcy5ub2RlVHlwZSAhPSA4ICkKKwkJCQkJcmV0ICs9IHRo
aXMubm9kZVR5cGUgIT0gMSA/CisJCQkJCQl0aGlzLm5vZGVWYWx1ZSA6CisJCQkJCQlqUXVlcnku
Zm4udGV4dCggWyB0aGlzIF0gKTsKKwkJCX0pOworCQl9KTsKKworCQlyZXR1cm4gcmV0OworCX0s
CisKKwl3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHsKKwkJaWYgKCB0aGlzWzBdICkgeworCQkJ
Ly8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmQKKwkJCXZhciB3cmFwID0g
alF1ZXJ5KCBodG1sLCB0aGlzWzBdLm93bmVyRG9jdW1lbnQgKS5jbG9uZSgpOworCisJCQlpZiAo
IHRoaXNbMF0ucGFyZW50Tm9kZSApCisJCQkJd3JhcC5pbnNlcnRCZWZvcmUoIHRoaXNbMF0gKTsK
KworCQkJd3JhcC5tYXAoZnVuY3Rpb24oKXsKKwkJCQl2YXIgZWxlbSA9IHRoaXM7CisKKwkJCQl3
aGlsZSAoIGVsZW0uZmlyc3RDaGlsZCApCisJCQkJCWVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7CisK
KwkJCQlyZXR1cm4gZWxlbTsKKwkJCX0pLmFwcGVuZCh0aGlzKTsKKwkJfQorCisJCXJldHVybiB0
aGlzOworCX0sCisKKwl3cmFwSW5uZXI6IGZ1bmN0aW9uKCBodG1sICkgeworCQlyZXR1cm4gdGhp
cy5lYWNoKGZ1bmN0aW9uKCl7CisJCQlqUXVlcnkoIHRoaXMgKS5jb250ZW50cygpLndyYXBBbGwo
IGh0bWwgKTsKKwkJfSk7CisJfSwKKworCXdyYXA6IGZ1bmN0aW9uKCBodG1sICkgeworCQlyZXR1
cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CisJCQlqUXVlcnkoIHRoaXMgKS53cmFwQWxsKCBodG1s
ICk7CisJCX0pOworCX0sCisKKwlhcHBlbmQ6IGZ1bmN0aW9uKCkgeworCQlyZXR1cm4gdGhpcy5k
b21NYW5pcChhcmd1bWVudHMsIHRydWUsIGZ1bmN0aW9uKGVsZW0peworCQkJaWYgKHRoaXMubm9k
ZVR5cGUgPT0gMSkKKwkJCQl0aGlzLmFwcGVuZENoaWxkKCBlbGVtICk7CisJCX0pOworCX0sCisK
KwlwcmVwZW5kOiBmdW5jdGlvbigpIHsKKwkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRz
LCB0cnVlLCBmdW5jdGlvbihlbGVtKXsKKwkJCWlmICh0aGlzLm5vZGVUeXBlID09IDEpCisJCQkJ
dGhpcy5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMuZmlyc3RDaGlsZCApOworCQl9KTsKKwl9LAor
CisJYmVmb3JlOiBmdW5jdGlvbigpIHsKKwkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRz
LCBmYWxzZSwgZnVuY3Rpb24oZWxlbSl7CisJCQl0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KCBlbGVtLCB0aGlzICk7CisJCX0pOworCX0sCisKKwlhZnRlcjogZnVuY3Rpb24oKSB7CisJCXJl
dHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywgZmFsc2UsIGZ1bmN0aW9uKGVsZW0peworCQkJ
dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcy5uZXh0U2libGluZyApOwor
CQl9KTsKKwl9LAorCisJZW5kOiBmdW5jdGlvbigpIHsKKwkJcmV0dXJuIHRoaXMucHJldk9iamVj
dCB8fCBqUXVlcnkoIFtdICk7CisJfSwKKworCS8vIEZvciBpbnRlcm5hbCB1c2Ugb25seS4KKwkv
LyBCZWhhdmVzIGxpa2UgYW4gQXJyYXkncyBtZXRob2QsIG5vdCBsaWtlIGEgalF1ZXJ5IG1ldGhv
ZC4KKwlwdXNoOiBbXS5wdXNoLAorCXNvcnQ6IFtdLnNvcnQsCisJc3BsaWNlOiBbXS5zcGxpY2Us
CisKKwlmaW5kOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CisJCWlmICggdGhpcy5sZW5ndGggPT09
IDEgKSB7CisJCQl2YXIgcmV0ID0gdGhpcy5wdXNoU3RhY2soIFtdLCAiZmluZCIsIHNlbGVjdG9y
ICk7CisJCQlyZXQubGVuZ3RoID0gMDsKKwkJCWpRdWVyeS5maW5kKCBzZWxlY3RvciwgdGhpc1sw
XSwgcmV0ICk7CisJCQlyZXR1cm4gcmV0OworCQl9IGVsc2UgeworCQkJcmV0dXJuIHRoaXMucHVz
aFN0YWNrKCBqUXVlcnkudW5pcXVlKGpRdWVyeS5tYXAodGhpcywgZnVuY3Rpb24oZWxlbSl7CisJ
CQkJcmV0dXJuIGpRdWVyeS5maW5kKCBzZWxlY3RvciwgZWxlbSApOworCQkJfSkpLCAiZmluZCIs
IHNlbGVjdG9yICk7CisJCX0KKwl9LAorCisJY2xvbmU6IGZ1bmN0aW9uKCBldmVudHMgKSB7CisJ
CS8vIERvIHRoZSBjbG9uZQorCQl2YXIgcmV0ID0gdGhpcy5tYXAoZnVuY3Rpb24oKXsKKwkJCWlm
ICggIWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCAmJiAhalF1ZXJ5LmlzWE1MRG9jKHRoaXMp
ICkgeworCQkJCS8vIElFIGNvcGllcyBldmVudHMgYm91bmQgdmlhIGF0dGFjaEV2ZW50IHdoZW4K
KwkJCQkvLyB1c2luZyBjbG9uZU5vZGUuIENhbGxpbmcgZGV0YWNoRXZlbnQgb24gdGhlCisJCQkJ
Ly8gY2xvbmUgd2lsbCBhbHNvIHJlbW92ZSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWduYWwKKwkJ
CQkvLyBJbiBvcmRlciB0byBnZXQgYXJvdW5kIHRoaXMsIHdlIHVzZSBpbm5lckhUTUwuCisJCQkJ
Ly8gVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyBzb21lIG1vZGlmaWNhdGlvbnMgdG8KKwkJCQkv
LyBhdHRyaWJ1dGVzIGluIElFIHRoYXQgYXJlIGFjdHVhbGx5IG9ubHkgc3RvcmVkCisJCQkJLy8g
YXMgcHJvcGVydGllcyB3aWxsIG5vdCBiZSBjb3BpZWQgKHN1Y2ggYXMgdGhlCisJCQkJLy8gdGhl
IG5hbWUgYXR0cmlidXRlIG9uIGFuIGlucHV0KS4KKwkJCQl2YXIgaHRtbCA9IHRoaXMub3V0ZXJI
VE1MOworCQkJCWlmICggIWh0bWwgKSB7CisJCQkJCXZhciBkaXYgPSB0aGlzLm93bmVyRG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisJCQkJCWRpdi5hcHBlbmRDaGlsZCggdGhpcy5jbG9u
ZU5vZGUodHJ1ZSkgKTsKKwkJCQkJaHRtbCA9IGRpdi5pbm5lckhUTUw7CisJCQkJfQorCisJCQkJ
cmV0dXJuIGpRdWVyeS5jbGVhbihbaHRtbC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVs
bCkiL2csICIiKS5yZXBsYWNlKC9eXHMqLywgIiIpXSlbMF07CisJCQl9IGVsc2UKKwkJCQlyZXR1
cm4gdGhpcy5jbG9uZU5vZGUodHJ1ZSk7CisJCX0pOworCisJCS8vIENvcHkgdGhlIGV2ZW50cyBm
cm9tIHRoZSBvcmlnaW5hbCB0byB0aGUgY2xvbmUKKwkJaWYgKCBldmVudHMgPT09IHRydWUgKSB7
CisJCQl2YXIgb3JpZyA9IHRoaXMuZmluZCgiKiIpLmFuZFNlbGYoKSwgaSA9IDA7CisKKwkJCXJl
dC5maW5kKCIqIikuYW5kU2VsZigpLmVhY2goZnVuY3Rpb24oKXsKKwkJCQlpZiAoIHRoaXMubm9k
ZU5hbWUgIT09IG9yaWdbaV0ubm9kZU5hbWUgKQorCQkJCQlyZXR1cm47CisKKwkJCQl2YXIgZXZl
bnRzID0galF1ZXJ5LmRhdGEoIG9yaWdbaV0sICJldmVudHMiICk7CisKKwkJCQlmb3IgKCB2YXIg
dHlwZSBpbiBldmVudHMgKSB7CisJCQkJCWZvciAoIHZhciBoYW5kbGVyIGluIGV2ZW50c1sgdHlw
ZSBdICkgeworCQkJCQkJalF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgdHlwZSwgZXZlbnRzWyB0eXBl
IF1bIGhhbmRsZXIgXSwgZXZlbnRzWyB0eXBlIF1bIGhhbmRsZXIgXS5kYXRhICk7CisJCQkJCX0K
KwkJCQl9CisKKwkJCQlpKys7CisJCQl9KTsKKwkJfQorCisJCS8vIFJldHVybiB0aGUgY2xvbmVk
IHNldAorCQlyZXR1cm4gcmV0OworCX0sCisKKwlmaWx0ZXI6IGZ1bmN0aW9uKCBzZWxlY3RvciAp
IHsKKwkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKAorCQkJalF1ZXJ5LmlzRnVuY3Rpb24oIHNlbGVj
dG9yICkgJiYKKwkJCWpRdWVyeS5ncmVwKHRoaXMsIGZ1bmN0aW9uKGVsZW0sIGkpeworCQkJCXJl
dHVybiBzZWxlY3Rvci5jYWxsKCBlbGVtLCBpICk7CisJCQl9KSB8fAorCisJCQlqUXVlcnkubXVs
dGlGaWx0ZXIoIHNlbGVjdG9yLCBqUXVlcnkuZ3JlcCh0aGlzLCBmdW5jdGlvbihlbGVtKXsKKwkJ
CQlyZXR1cm4gZWxlbS5ub2RlVHlwZSA9PT0gMTsKKwkJCX0pICksICJmaWx0ZXIiLCBzZWxlY3Rv
ciApOworCX0sCisKKwljbG9zZXN0OiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CisJCXZhciBwb3Mg
PSBqUXVlcnkuZXhwci5tYXRjaC5QT1MudGVzdCggc2VsZWN0b3IgKSA/IGpRdWVyeShzZWxlY3Rv
cikgOiBudWxsLAorCQkJY2xvc2VyID0gMDsKKworCQlyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24o
KXsKKwkJCXZhciBjdXIgPSB0aGlzOworCQkJd2hpbGUgKCBjdXIgJiYgY3VyLm93bmVyRG9jdW1l
bnQgKSB7CisJCQkJaWYgKCBwb3MgPyBwb3MuaW5kZXgoY3VyKSA+IC0xIDogalF1ZXJ5KGN1ciku
aXMoc2VsZWN0b3IpICkgeworCQkJCQlqUXVlcnkuZGF0YShjdXIsICJjbG9zZXN0IiwgY2xvc2Vy
KTsKKwkJCQkJcmV0dXJuIGN1cjsKKwkJCQl9CisJCQkJY3VyID0gY3VyLnBhcmVudE5vZGU7CisJ
CQkJY2xvc2VyKys7CisJCQl9CisJCX0pOworCX0sCisKKwlub3Q6IGZ1bmN0aW9uKCBzZWxlY3Rv
ciApIHsKKwkJaWYgKCB0eXBlb2Ygc2VsZWN0b3IgPT09ICJzdHJpbmciICkKKwkJCS8vIHRlc3Qg
c3BlY2lhbCBjYXNlIHdoZXJlIGp1c3Qgb25lIHNlbGVjdG9yIGlzIHBhc3NlZCBpbgorCQkJaWYg
KCBpc1NpbXBsZS50ZXN0KCBzZWxlY3RvciApICkKKwkJCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2so
IGpRdWVyeS5tdWx0aUZpbHRlciggc2VsZWN0b3IsIHRoaXMsIHRydWUgKSwgIm5vdCIsIHNlbGVj
dG9yICk7CisJCQllbHNlCisJCQkJc2VsZWN0b3IgPSBqUXVlcnkubXVsdGlGaWx0ZXIoIHNlbGVj
dG9yLCB0aGlzICk7CisKKwkJdmFyIGlzQXJyYXlMaWtlID0gc2VsZWN0b3IubGVuZ3RoICYmIHNl
bGVjdG9yW3NlbGVjdG9yLmxlbmd0aCAtIDFdICE9PSB1bmRlZmluZWQgJiYgIXNlbGVjdG9yLm5v
ZGVUeXBlOworCQlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKSB7CisJCQlyZXR1cm4gaXNB
cnJheUxpa2UgPyBqUXVlcnkuaW5BcnJheSggdGhpcywgc2VsZWN0b3IgKSA8IDAgOiB0aGlzICE9
IHNlbGVjdG9yOworCQl9KTsKKwl9LAorCisJYWRkOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CisJ
CXJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5LnVuaXF1ZSggalF1ZXJ5Lm1lcmdlKAorCQkJ
dGhpcy5nZXQoKSwKKwkJCXR5cGVvZiBzZWxlY3RvciA9PT0gInN0cmluZyIgPworCQkJCWpRdWVy
eSggc2VsZWN0b3IgKSA6CisJCQkJalF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IgKQorCQkpKSk7
CisJfSwKKworCWlzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CisJCXJldHVybiAhIXNlbGVjdG9y
ICYmIGpRdWVyeS5tdWx0aUZpbHRlciggc2VsZWN0b3IsIHRoaXMgKS5sZW5ndGggPiAwOworCX0s
CisKKwloYXNDbGFzczogZnVuY3Rpb24oIHNlbGVjdG9yICkgeworCQlyZXR1cm4gISFzZWxlY3Rv
ciAmJiB0aGlzLmlzKCAiLiIgKyBzZWxlY3RvciApOworCX0sCisKKwl2YWw6IGZ1bmN0aW9uKCB2
YWx1ZSApIHsKKwkJaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgewkJCQorCQkJdmFyIGVsZW0g
PSB0aGlzWzBdOworCisJCQlpZiAoIGVsZW0gKSB7CisJCQkJaWYoIGpRdWVyeS5ub2RlTmFtZSgg
ZWxlbSwgJ29wdGlvbicgKSApCisJCQkJCXJldHVybiAoZWxlbS5hdHRyaWJ1dGVzLnZhbHVlIHx8
IHt9KS5zcGVjaWZpZWQgPyBlbGVtLnZhbHVlIDogZWxlbS50ZXh0OworCQkJCQorCQkJCS8vIFdl
IG5lZWQgdG8gaGFuZGxlIHNlbGVjdCBib3hlcyBzcGVjaWFsCisJCQkJaWYgKCBqUXVlcnkubm9k
ZU5hbWUoIGVsZW0sICJzZWxlY3QiICkgKSB7CisJCQkJCXZhciBpbmRleCA9IGVsZW0uc2VsZWN0
ZWRJbmRleCwKKwkJCQkJCXZhbHVlcyA9IFtdLAorCQkJCQkJb3B0aW9ucyA9IGVsZW0ub3B0aW9u
cywKKwkJCQkJCW9uZSA9IGVsZW0udHlwZSA9PSAic2VsZWN0LW9uZSI7CisKKwkJCQkJLy8gTm90
aGluZyB3YXMgc2VsZWN0ZWQKKwkJCQkJaWYgKCBpbmRleCA8IDAgKQorCQkJCQkJcmV0dXJuIG51
bGw7CisKKwkJCQkJLy8gTG9vcCB0aHJvdWdoIGFsbCB0aGUgc2VsZWN0ZWQgb3B0aW9ucworCQkJ
CQlmb3IgKCB2YXIgaSA9IG9uZSA/IGluZGV4IDogMCwgbWF4ID0gb25lID8gaW5kZXggKyAxIDog
b3B0aW9ucy5sZW5ndGg7IGkgPCBtYXg7IGkrKyApIHsKKwkJCQkJCXZhciBvcHRpb24gPSBvcHRp
b25zWyBpIF07CisKKwkJCQkJCWlmICggb3B0aW9uLnNlbGVjdGVkICkgeworCQkJCQkJCS8vIEdl
dCB0aGUgc3BlY2lmYyB2YWx1ZSBmb3IgdGhlIG9wdGlvbgorCQkJCQkJCXZhbHVlID0galF1ZXJ5
KG9wdGlvbikudmFsKCk7CisKKwkJCQkJCQkvLyBXZSBkb24ndCBuZWVkIGFuIGFycmF5IGZvciBv
bmUgc2VsZWN0cworCQkJCQkJCWlmICggb25lICkKKwkJCQkJCQkJcmV0dXJuIHZhbHVlOworCisJ
CQkJCQkJLy8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXkKKwkJCQkJCQl2YWx1ZXMucHVz
aCggdmFsdWUgKTsKKwkJCQkJCX0KKwkJCQkJfQorCisJCQkJCXJldHVybiB2YWx1ZXM7CQkJCQor
CQkJCX0KKworCQkJCS8vIEV2ZXJ5dGhpbmcgZWxzZSwgd2UganVzdCBncmFiIHRoZSB2YWx1ZQor
CQkJCXJldHVybiAoZWxlbS52YWx1ZSB8fCAiIikucmVwbGFjZSgvXHIvZywgIiIpOworCisJCQl9
CisKKwkJCXJldHVybiB1bmRlZmluZWQ7CisJCX0KKworCQlpZiAoIHR5cGVvZiB2YWx1ZSA9PT0g
Im51bWJlciIgKQorCQkJdmFsdWUgKz0gJyc7CisKKwkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv
bigpeworCQkJaWYgKCB0aGlzLm5vZGVUeXBlICE9IDEgKQorCQkJCXJldHVybjsKKworCQkJaWYg
KCBqUXVlcnkuaXNBcnJheSh2YWx1ZSkgJiYgL3JhZGlvfGNoZWNrYm94Ly50ZXN0KCB0aGlzLnR5
cGUgKSApCisJCQkJdGhpcy5jaGVja2VkID0gKGpRdWVyeS5pbkFycmF5KHRoaXMudmFsdWUsIHZh
bHVlKSA+PSAwIHx8CisJCQkJCWpRdWVyeS5pbkFycmF5KHRoaXMubmFtZSwgdmFsdWUpID49IDAp
OworCisJCQllbHNlIGlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0aGlzLCAic2VsZWN0IiApICkgewor
CQkJCXZhciB2YWx1ZXMgPSBqUXVlcnkubWFrZUFycmF5KHZhbHVlKTsKKworCQkJCWpRdWVyeSgg
Im9wdGlvbiIsIHRoaXMgKS5lYWNoKGZ1bmN0aW9uKCl7CisJCQkJCXRoaXMuc2VsZWN0ZWQgPSAo
alF1ZXJ5LmluQXJyYXkoIHRoaXMudmFsdWUsIHZhbHVlcyApID49IDAgfHwKKwkJCQkJCWpRdWVy
eS5pbkFycmF5KCB0aGlzLnRleHQsIHZhbHVlcyApID49IDApOworCQkJCX0pOworCisJCQkJaWYg
KCAhdmFsdWVzLmxlbmd0aCApCisJCQkJCXRoaXMuc2VsZWN0ZWRJbmRleCA9IC0xOworCisJCQl9
IGVsc2UKKwkJCQl0aGlzLnZhbHVlID0gdmFsdWU7CisJCX0pOworCX0sCisKKwlodG1sOiBmdW5j
dGlvbiggdmFsdWUgKSB7CisJCXJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8KKwkJCSh0aGlz
WzBdID8KKwkJCQl0aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8
bnVsbCkiL2csICIiKSA6CisJCQkJbnVsbCkgOgorCQkJdGhpcy5lbXB0eSgpLmFwcGVuZCggdmFs
dWUgKTsKKwl9LAorCisJcmVwbGFjZVdpdGg6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKKwkJcmV0dXJu
IHRoaXMuYWZ0ZXIoIHZhbHVlICkucmVtb3ZlKCk7CisJfSwKKworCWVxOiBmdW5jdGlvbiggaSAp
IHsKKwkJcmV0dXJuIHRoaXMuc2xpY2UoIGksICtpICsgMSApOworCX0sCisKKwlzbGljZTogZnVu
Y3Rpb24oKSB7CisJCXJldHVybiB0aGlzLnB1c2hTdGFjayggQXJyYXkucHJvdG90eXBlLnNsaWNl
LmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKSwKKwkJCSJzbGljZSIsIEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpICk7CisJfSwKKworCW1hcDogZnVuY3Rpb24o
IGNhbGxiYWNrICkgeworCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5tYXAodGhpcywg
ZnVuY3Rpb24oZWxlbSwgaSl7CisJCQlyZXR1cm4gY2FsbGJhY2suY2FsbCggZWxlbSwgaSwgZWxl
bSApOworCQl9KSk7CisJfSwKKworCWFuZFNlbGY6IGZ1bmN0aW9uKCkgeworCQlyZXR1cm4gdGhp
cy5hZGQoIHRoaXMucHJldk9iamVjdCApOworCX0sCisKKwlkb21NYW5pcDogZnVuY3Rpb24oIGFy
Z3MsIHRhYmxlLCBjYWxsYmFjayApIHsKKwkJaWYgKCB0aGlzWzBdICkgeworCQkJdmFyIGZyYWdt
ZW50ID0gKHRoaXNbMF0ub3duZXJEb2N1bWVudCB8fCB0aGlzWzBdKS5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCksCisJCQkJc2NyaXB0cyA9IGpRdWVyeS5jbGVhbiggYXJncywgKHRoaXNbMF0ub3du
ZXJEb2N1bWVudCB8fCB0aGlzWzBdKSwgZnJhZ21lbnQgKSwKKwkJCQlmaXJzdCA9IGZyYWdtZW50
LmZpcnN0Q2hpbGQ7CisKKwkJCWlmICggZmlyc3QgKQorCQkJCWZvciAoIHZhciBpID0gMCwgbCA9
IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkKKwkJCQkJY2FsbGJhY2suY2FsbCggcm9vdCh0aGlz
W2ldLCBmaXJzdCksIHRoaXMubGVuZ3RoID4gMSB8fCBpID4gMCA/CisJCQkJCQkJZnJhZ21lbnQu
Y2xvbmVOb2RlKHRydWUpIDogZnJhZ21lbnQgKTsKKwkJCisJCQlpZiAoIHNjcmlwdHMgKQorCQkJ
CWpRdWVyeS5lYWNoKCBzY3JpcHRzLCBldmFsU2NyaXB0ICk7CisJCX0KKworCQlyZXR1cm4gdGhp
czsKKwkJCisJCWZ1bmN0aW9uIHJvb3QoIGVsZW0sIGN1ciApIHsKKwkJCXJldHVybiB0YWJsZSAm
JiBqUXVlcnkubm9kZU5hbWUoZWxlbSwgInRhYmxlIikgJiYgalF1ZXJ5Lm5vZGVOYW1lKGN1ciwg
InRyIikgPworCQkJCShlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdIHx8CisJ
CQkJZWxlbS5hcHBlbmRDaGlsZChlbGVtLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJv
ZHkiKSkpIDoKKwkJCQllbGVtOworCQl9CisJfQorfTsKKworLy8gR2l2ZSB0aGUgaW5pdCBmdW5j
dGlvbiB0aGUgalF1ZXJ5IHByb3RvdHlwZSBmb3IgbGF0ZXIgaW5zdGFudGlhdGlvbgoralF1ZXJ5
LmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuOworCitmdW5jdGlvbiBldmFsU2NyaXB0KCBp
LCBlbGVtICkgeworCWlmICggZWxlbS5zcmMgKQorCQlqUXVlcnkuYWpheCh7CisJCQl1cmw6IGVs
ZW0uc3JjLAorCQkJYXN5bmM6IGZhbHNlLAorCQkJZGF0YVR5cGU6ICJzY3JpcHQiCisJCX0pOwor
CisJZWxzZQorCQlqUXVlcnkuZ2xvYmFsRXZhbCggZWxlbS50ZXh0IHx8IGVsZW0udGV4dENvbnRl
bnQgfHwgZWxlbS5pbm5lckhUTUwgfHwgIiIgKTsKKworCWlmICggZWxlbS5wYXJlbnROb2RlICkK
KwkJZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICk7Cit9CisKK2Z1bmN0aW9uIG5v
dygpeworCXJldHVybiArbmV3IERhdGU7Cit9CisKK2pRdWVyeS5leHRlbmQgPSBqUXVlcnkuZm4u
ZXh0ZW5kID0gZnVuY3Rpb24oKSB7CisJLy8gY29weSByZWZlcmVuY2UgdG8gdGFyZ2V0IG9iamVj
dAorCXZhciB0YXJnZXQgPSBhcmd1bWVudHNbMF0gfHwge30sIGkgPSAxLCBsZW5ndGggPSBhcmd1
bWVudHMubGVuZ3RoLCBkZWVwID0gZmFsc2UsIG9wdGlvbnM7CisKKwkvLyBIYW5kbGUgYSBkZWVw
IGNvcHkgc2l0dWF0aW9uCisJaWYgKCB0eXBlb2YgdGFyZ2V0ID09PSAiYm9vbGVhbiIgKSB7CisJ
CWRlZXAgPSB0YXJnZXQ7CisJCXRhcmdldCA9IGFyZ3VtZW50c1sxXSB8fCB7fTsKKwkJLy8gc2tp
cCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldAorCQlpID0gMjsKKwl9CisKKwkvLyBIYW5kbGUg
Y2FzZSB3aGVuIHRhcmdldCBpcyBhIHN0cmluZyBvciBzb21ldGhpbmcgKHBvc3NpYmxlIGluIGRl
ZXAgY29weSkKKwlpZiAoIHR5cGVvZiB0YXJnZXQgIT09ICJvYmplY3QiICYmICFqUXVlcnkuaXNG
dW5jdGlvbih0YXJnZXQpICkKKwkJdGFyZ2V0ID0ge307CisKKwkvLyBleHRlbmQgalF1ZXJ5IGl0
c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWQKKwlpZiAoIGxlbmd0aCA9PSBpICkg
eworCQl0YXJnZXQgPSB0aGlzOworCQktLWk7CisJfQorCisJZm9yICggOyBpIDwgbGVuZ3RoOyBp
KysgKQorCQkvLyBPbmx5IGRlYWwgd2l0aCBub24tbnVsbC91bmRlZmluZWQgdmFsdWVzCisJCWlm
ICggKG9wdGlvbnMgPSBhcmd1bWVudHNbIGkgXSkgIT0gbnVsbCApCisJCQkvLyBFeHRlbmQgdGhl
IGJhc2Ugb2JqZWN0CisJCQlmb3IgKCB2YXIgbmFtZSBpbiBvcHRpb25zICkgeworCQkJCXZhciBz
cmMgPSB0YXJnZXRbIG5hbWUgXSwgY29weSA9IG9wdGlvbnNbIG5hbWUgXTsKKworCQkJCS8vIFBy
ZXZlbnQgbmV2ZXItZW5kaW5nIGxvb3AKKwkJCQlpZiAoIHRhcmdldCA9PT0gY29weSApCisJCQkJ
CWNvbnRpbnVlOworCisJCQkJLy8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJnaW5nIG9iamVjdCB2YWx1
ZXMKKwkJCQlpZiAoIGRlZXAgJiYgY29weSAmJiB0eXBlb2YgY29weSA9PT0gIm9iamVjdCIgJiYg
IWNvcHkubm9kZVR5cGUgKQorCQkJCQl0YXJnZXRbIG5hbWUgXSA9IGpRdWVyeS5leHRlbmQoIGRl
ZXAsIAorCQkJCQkJLy8gTmV2ZXIgbW92ZSBvcmlnaW5hbCBvYmplY3RzLCBjbG9uZSB0aGVtCisJ
CQkJCQlzcmMgfHwgKCBjb3B5Lmxlbmd0aCAhPSBudWxsID8gWyBdIDogeyB9ICkKKwkJCQkJLCBj
b3B5ICk7CisKKwkJCQkvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzCisJCQkJZWxz
ZSBpZiAoIGNvcHkgIT09IHVuZGVmaW5lZCApCisJCQkJCXRhcmdldFsgbmFtZSBdID0gY29weTsK
KworCQkJfQorCisJLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmplY3QKKwlyZXR1cm4gdGFyZ2V0
OworfTsKKworLy8gZXhjbHVkZSB0aGUgZm9sbG93aW5nIGNzcyBwcm9wZXJ0aWVzIHRvIGFkZCBw
eAordmFyCWV4Y2x1ZGUgPSAvei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5l
LT9oZWlnaHQvaSwKKwkvLyBjYWNoZSBkZWZhdWx0VmlldworCWRlZmF1bHRWaWV3ID0gZG9jdW1l
bnQuZGVmYXVsdFZpZXcgfHwge30sCisJdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nOworCitqUXVlcnkuZXh0ZW5kKHsKKwlub0NvbmZsaWN0OiBmdW5jdGlvbiggZGVlcCApIHsK
KwkJd2luZG93LiQgPSBfJDsKKworCQlpZiAoIGRlZXAgKQorCQkJd2luZG93LmpRdWVyeSA9IF9q
UXVlcnk7CisKKwkJcmV0dXJuIGpRdWVyeTsKKwl9LAorCisJLy8gU2VlIHRlc3QvdW5pdC9jb3Jl
LmpzIGZvciBkZXRhaWxzIGNvbmNlcm5pbmcgaXNGdW5jdGlvbi4KKwkvLyBTaW5jZSB2ZXJzaW9u
IDEuMywgRE9NIG1ldGhvZHMgYW5kIGZ1bmN0aW9ucyBsaWtlIGFsZXJ0CisJLy8gYXJlbid0IHN1
cHBvcnRlZC4gVGhleSByZXR1cm4gZmFsc2Ugb24gSUUgKCMyOTY4KS4KKwlpc0Z1bmN0aW9uOiBm
dW5jdGlvbiggb2JqICkgeworCQlyZXR1cm4gdG9TdHJpbmcuY2FsbChvYmopID09PSAiW29iamVj
dCBGdW5jdGlvbl0iOworCX0sCisKKwlpc0FycmF5OiBmdW5jdGlvbiggb2JqICkgeworCQlyZXR1
cm4gdG9TdHJpbmcuY2FsbChvYmopID09PSAiW29iamVjdCBBcnJheV0iOworCX0sCisKKwkvLyBj
aGVjayBpZiBhbiBlbGVtZW50IGlzIGluIGEgKG9yIGlzIGFuKSBYTUwgZG9jdW1lbnQKKwlpc1hN
TERvYzogZnVuY3Rpb24oIGVsZW0gKSB7CisJCXJldHVybiBlbGVtLm5vZGVUeXBlID09PSA5ICYm
IGVsZW0uZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lICE9PSAiSFRNTCIgfHwKKwkJCSEhZWxlbS5v
d25lckRvY3VtZW50ICYmIGpRdWVyeS5pc1hNTERvYyggZWxlbS5vd25lckRvY3VtZW50ICk7CisJ
fSwKKworCS8vIEV2YWx1bGF0ZXMgYSBzY3JpcHQgaW4gYSBnbG9iYWwgY29udGV4dAorCWdsb2Jh
bEV2YWw6IGZ1bmN0aW9uKCBkYXRhICkgeworCQlpZiAoIGRhdGEgJiYgL1xTLy50ZXN0KGRhdGEp
ICkgeworCQkJLy8gSW5zcGlyZWQgYnkgY29kZSBieSBBbmRyZWEgR2lhbW1hcmNoaQorCQkJLy8g
aHR0cDovL3dlYnJlZmxlY3Rpb24uYmxvZ3Nwb3QuY29tLzIwMDcvMDgvZ2xvYmFsLXNjb3BlLWV2
YWx1YXRpb24tYW5kLWRvbS5odG1sCisJCQl2YXIgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJoZWFkIilbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAorCQkJCXNj
cmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworCisJCQlzY3JpcHQudHlw
ZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOworCQkJaWYgKCBqUXVlcnkuc3VwcG9ydC5zY3JpcHRFdmFs
ICkKKwkJCQlzY3JpcHQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCBkYXRh
ICkgKTsKKwkJCWVsc2UKKwkJCQlzY3JpcHQudGV4dCA9IGRhdGE7CisKKwkJCS8vIFVzZSBpbnNl
cnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCAgdG8gY2lyY3VtdmVudCBhbiBJRTYgYnVn
LgorCQkJLy8gVGhpcyBhcmlzZXMgd2hlbiBhIGJhc2Ugbm9kZSBpcyB1c2VkICgjMjcwOSkuCisJ
CQloZWFkLmluc2VydEJlZm9yZSggc2NyaXB0LCBoZWFkLmZpcnN0Q2hpbGQgKTsKKwkJCWhlYWQu
cmVtb3ZlQ2hpbGQoIHNjcmlwdCApOworCQl9CisJfSwKKworCW5vZGVOYW1lOiBmdW5jdGlvbigg
ZWxlbSwgbmFtZSApIHsKKwkJcmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50
b1VwcGVyQ2FzZSgpID09IG5hbWUudG9VcHBlckNhc2UoKTsKKwl9LAorCisJLy8gYXJncyBpcyBm
b3IgaW50ZXJuYWwgdXNhZ2Ugb25seQorCWVhY2g6IGZ1bmN0aW9uKCBvYmplY3QsIGNhbGxiYWNr
LCBhcmdzICkgeworCQl2YXIgbmFtZSwgaSA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7CisK
KwkJaWYgKCBhcmdzICkgeworCQkJaWYgKCBsZW5ndGggPT09IHVuZGVmaW5lZCApIHsKKwkJCQlm
b3IgKCBuYW1lIGluIG9iamVjdCApCisJCQkJCWlmICggY2FsbGJhY2suYXBwbHkoIG9iamVjdFsg
bmFtZSBdLCBhcmdzICkgPT09IGZhbHNlICkKKwkJCQkJCWJyZWFrOworCQkJfSBlbHNlCisJCQkJ
Zm9yICggOyBpIDwgbGVuZ3RoOyApCisJCQkJCWlmICggY2FsbGJhY2suYXBwbHkoIG9iamVjdFsg
aSsrIF0sIGFyZ3MgKSA9PT0gZmFsc2UgKQorCQkJCQkJYnJlYWs7CisKKwkJLy8gQSBzcGVjaWFs
LCBmYXN0LCBjYXNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIG9mIGVhY2gKKwkJfSBlbHNlIHsK
KwkJCWlmICggbGVuZ3RoID09PSB1bmRlZmluZWQgKSB7CisJCQkJZm9yICggbmFtZSBpbiBvYmpl
Y3QgKQorCQkJCQlpZiAoIGNhbGxiYWNrLmNhbGwoIG9iamVjdFsgbmFtZSBdLCBuYW1lLCBvYmpl
Y3RbIG5hbWUgXSApID09PSBmYWxzZSApCisJCQkJCQlicmVhazsKKwkJCX0gZWxzZQorCQkJCWZv
ciAoIHZhciB2YWx1ZSA9IG9iamVjdFswXTsKKwkJCQkJaSA8IGxlbmd0aCAmJiBjYWxsYmFjay5j
YWxsKCB2YWx1ZSwgaSwgdmFsdWUgKSAhPT0gZmFsc2U7IHZhbHVlID0gb2JqZWN0WysraV0gKXt9
CisJCX0KKworCQlyZXR1cm4gb2JqZWN0OworCX0sCisKKwlwcm9wOiBmdW5jdGlvbiggZWxlbSwg
dmFsdWUsIHR5cGUsIGksIG5hbWUgKSB7CisJCS8vIEhhbmRsZSBleGVjdXRhYmxlIGZ1bmN0aW9u
cworCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApICkKKwkJCXZhbHVlID0gdmFsdWUu
Y2FsbCggZWxlbSwgaSApOworCisJCS8vIEhhbmRsZSBwYXNzaW5nIGluIGEgbnVtYmVyIHRvIGEg
Q1NTIHByb3BlcnR5CisJCXJldHVybiB0eXBlb2YgdmFsdWUgPT09ICJudW1iZXIiICYmIHR5cGUg
PT0gImN1ckNTUyIgJiYgIWV4Y2x1ZGUudGVzdCggbmFtZSApID8KKwkJCXZhbHVlICsgInB4IiA6
CisJCQl2YWx1ZTsKKwl9LAorCisJY2xhc3NOYW1lOiB7CisJCS8vIGludGVybmFsIG9ubHksIHVz
ZSBhZGRDbGFzcygiY2xhc3MiKQorCQlhZGQ6IGZ1bmN0aW9uKCBlbGVtLCBjbGFzc05hbWVzICkg
eworCQkJalF1ZXJ5LmVhY2goKGNsYXNzTmFtZXMgfHwgIiIpLnNwbGl0KC9ccysvKSwgZnVuY3Rp
b24oaSwgY2xhc3NOYW1lKXsKKwkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT0gMSAmJiAhalF1ZXJ5
LmNsYXNzTmFtZS5oYXMoIGVsZW0uY2xhc3NOYW1lLCBjbGFzc05hbWUgKSApCisJCQkJCWVsZW0u
Y2xhc3NOYW1lICs9IChlbGVtLmNsYXNzTmFtZSA/ICIgIiA6ICIiKSArIGNsYXNzTmFtZTsKKwkJ
CX0pOworCQl9LAorCisJCS8vIGludGVybmFsIG9ubHksIHVzZSByZW1vdmVDbGFzcygiY2xhc3Mi
KQorCQlyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCBjbGFzc05hbWVzICkgeworCQkJaWYgKGVsZW0u
bm9kZVR5cGUgPT0gMSkKKwkJCQllbGVtLmNsYXNzTmFtZSA9IGNsYXNzTmFtZXMgIT09IHVuZGVm
aW5lZCA/CisJCQkJCWpRdWVyeS5ncmVwKGVsZW0uY2xhc3NOYW1lLnNwbGl0KC9ccysvKSwgZnVu
Y3Rpb24oY2xhc3NOYW1lKXsKKwkJCQkJCXJldHVybiAhalF1ZXJ5LmNsYXNzTmFtZS5oYXMoIGNs
YXNzTmFtZXMsIGNsYXNzTmFtZSApOworCQkJCQl9KS5qb2luKCIgIikgOgorCQkJCQkiIjsKKwkJ
fSwKKworCQkvLyBpbnRlcm5hbCBvbmx5LCB1c2UgaGFzQ2xhc3MoImNsYXNzIikKKwkJaGFzOiBm
dW5jdGlvbiggZWxlbSwgY2xhc3NOYW1lICkgeworCQkJcmV0dXJuIGVsZW0gJiYgalF1ZXJ5Lmlu
QXJyYXkoIGNsYXNzTmFtZSwgKGVsZW0uY2xhc3NOYW1lIHx8IGVsZW0pLnRvU3RyaW5nKCkuc3Bs
aXQoL1xzKy8pICkgPiAtMTsKKwkJfQorCX0sCisKKwkvLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBz
d2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25z
CisJc3dhcDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGNhbGxiYWNrICkgeworCQl2YXIgb2xk
ID0ge307CisJCS8vIFJlbWVtYmVyIHRoZSBvbGQgdmFsdWVzLCBhbmQgaW5zZXJ0IHRoZSBuZXcg
b25lcworCQlmb3IgKCB2YXIgbmFtZSBpbiBvcHRpb25zICkgeworCQkJb2xkWyBuYW1lIF0gPSBl
bGVtLnN0eWxlWyBuYW1lIF07CisJCQllbGVtLnN0eWxlWyBuYW1lIF0gPSBvcHRpb25zWyBuYW1l
IF07CisJCX0KKworCQljYWxsYmFjay5jYWxsKCBlbGVtICk7CisKKwkJLy8gUmV2ZXJ0IHRoZSBv
bGQgdmFsdWVzCisJCWZvciAoIHZhciBuYW1lIGluIG9wdGlvbnMgKQorCQkJZWxlbS5zdHlsZVsg
bmFtZSBdID0gb2xkWyBuYW1lIF07CisJfSwKKworCWNzczogZnVuY3Rpb24oIGVsZW0sIG5hbWUs
IGZvcmNlLCBleHRyYSApIHsKKwkJaWYgKCBuYW1lID09ICJ3aWR0aCIgfHwgbmFtZSA9PSAiaGVp
Z2h0IiApIHsKKwkJCXZhciB2YWwsIHByb3BzID0geyBwb3NpdGlvbjogImFic29sdXRlIiwgdmlz
aWJpbGl0eTogImhpZGRlbiIsIGRpc3BsYXk6ImJsb2NrIiB9LCB3aGljaCA9IG5hbWUgPT0gIndp
ZHRoIiA/IFsgIkxlZnQiLCAiUmlnaHQiIF0gOiBbICJUb3AiLCAiQm90dG9tIiBdOworCisJCQlm
dW5jdGlvbiBnZXRXSCgpIHsKKwkJCQl2YWwgPSBuYW1lID09ICJ3aWR0aCIgPyBlbGVtLm9mZnNl
dFdpZHRoIDogZWxlbS5vZmZzZXRIZWlnaHQ7CisKKwkJCQlpZiAoIGV4dHJhID09PSAiYm9yZGVy
IiApCisJCQkJCXJldHVybjsKKworCQkJCWpRdWVyeS5lYWNoKCB3aGljaCwgZnVuY3Rpb24oKSB7
CisJCQkJCWlmICggIWV4dHJhICkKKwkJCQkJCXZhbCAtPSBwYXJzZUZsb2F0KGpRdWVyeS5jdXJD
U1MoIGVsZW0sICJwYWRkaW5nIiArIHRoaXMsIHRydWUpKSB8fCAwOworCQkJCQlpZiAoIGV4dHJh
ID09PSAibWFyZ2luIiApCisJCQkJCQl2YWwgKz0gcGFyc2VGbG9hdChqUXVlcnkuY3VyQ1NTKCBl
bGVtLCAibWFyZ2luIiArIHRoaXMsIHRydWUpKSB8fCAwOworCQkJCQllbHNlCisJCQkJCQl2YWwg
LT0gcGFyc2VGbG9hdChqUXVlcnkuY3VyQ1NTKCBlbGVtLCAiYm9yZGVyIiArIHRoaXMgKyAiV2lk
dGgiLCB0cnVlKSkgfHwgMDsKKwkJCQl9KTsKKwkJCX0KKworCQkJaWYgKCBlbGVtLm9mZnNldFdp
ZHRoICE9PSAwICkKKwkJCQlnZXRXSCgpOworCQkJZWxzZQorCQkJCWpRdWVyeS5zd2FwKCBlbGVt
LCBwcm9wcywgZ2V0V0ggKTsKKworCQkJcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgucm91bmQodmFs
KSk7CisJCX0KKworCQlyZXR1cm4galF1ZXJ5LmN1ckNTUyggZWxlbSwgbmFtZSwgZm9yY2UgKTsK
Kwl9LAorCisJY3VyQ1NTOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZm9yY2UgKSB7CisJCXZhciBy
ZXQsIHN0eWxlID0gZWxlbS5zdHlsZTsKKworCQkvLyBXZSBuZWVkIHRvIGhhbmRsZSBvcGFjaXR5
IHNwZWNpYWwgaW4gSUUKKwkJaWYgKCBuYW1lID09ICJvcGFjaXR5IiAmJiAhalF1ZXJ5LnN1cHBv
cnQub3BhY2l0eSApIHsKKwkJCXJldCA9IGpRdWVyeS5hdHRyKCBzdHlsZSwgIm9wYWNpdHkiICk7
CisKKwkJCXJldHVybiByZXQgPT0gIiIgPworCQkJCSIxIiA6CisJCQkJcmV0OworCQl9CisKKwkJ
Ly8gTWFrZSBzdXJlIHdlJ3JlIHVzaW5nIHRoZSByaWdodCBuYW1lIGZvciBnZXR0aW5nIHRoZSBm
bG9hdCB2YWx1ZQorCQlpZiAoIG5hbWUubWF0Y2goIC9mbG9hdC9pICkgKQorCQkJbmFtZSA9IHN0
eWxlRmxvYXQ7CisKKwkJaWYgKCAhZm9yY2UgJiYgc3R5bGUgJiYgc3R5bGVbIG5hbWUgXSApCisJ
CQlyZXQgPSBzdHlsZVsgbmFtZSBdOworCisJCWVsc2UgaWYgKCBkZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlICkgeworCisJCQkvLyBPbmx5ICJmbG9hdCIgaXMgbmVlZGVkIGhlcmUKKwkJCWlm
ICggbmFtZS5tYXRjaCggL2Zsb2F0L2kgKSApCisJCQkJbmFtZSA9ICJmbG9hdCI7CisKKwkJCW5h
bWUgPSBuYW1lLnJlcGxhY2UoIC8oW0EtWl0pL2csICItJDEiICkudG9Mb3dlckNhc2UoKTsKKwor
CQkJdmFyIGNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKCBlbGVt
LCBudWxsICk7CisKKwkJCWlmICggY29tcHV0ZWRTdHlsZSApCisJCQkJcmV0ID0gY29tcHV0ZWRT
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCBuYW1lICk7CisKKwkJCS8vIFdlIHNob3VsZCBhbHdheXMg
Z2V0IGEgbnVtYmVyIGJhY2sgZnJvbSBvcGFjaXR5CisJCQlpZiAoIG5hbWUgPT0gIm9wYWNpdHki
ICYmIHJldCA9PSAiIiApCisJCQkJcmV0ID0gIjEiOworCisJCX0gZWxzZSBpZiAoIGVsZW0uY3Vy
cmVudFN0eWxlICkgeworCQkJdmFyIGNhbWVsQ2FzZSA9IG5hbWUucmVwbGFjZSgvXC0oXHcpL2cs
IGZ1bmN0aW9uKGFsbCwgbGV0dGVyKXsKKwkJCQlyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7
CisJCQl9KTsKKworCQkJcmV0ID0gZWxlbS5jdXJyZW50U3R5bGVbIG5hbWUgXSB8fCBlbGVtLmN1
cnJlbnRTdHlsZVsgY2FtZWxDYXNlIF07CisKKwkJCS8vIEZyb20gdGhlIGF3ZXNvbWUgaGFjayBi
eSBEZWFuIEVkd2FyZHMKKwkJCS8vIGh0dHA6Ly9lcmlrLmVhZS5uZXQvYXJjaGl2ZXMvMjAwNy8w
Ny8yNy8xOC41NC4xNS8jY29tbWVudC0xMDIyOTEKKworCQkJLy8gSWYgd2UncmUgbm90IGRlYWxp
bmcgd2l0aCBhIHJlZ3VsYXIgcGl4ZWwgbnVtYmVyCisJCQkvLyBidXQgYSBudW1iZXIgdGhhdCBo
YXMgYSB3ZWlyZCBlbmRpbmcsIHdlIG5lZWQgdG8gY29udmVydCBpdCB0byBwaXhlbHMKKwkJCWlm
ICggIS9eXGQrKHB4KT8kL2kudGVzdCggcmV0ICkgJiYgL15cZC8udGVzdCggcmV0ICkgKSB7CisJ
CQkJLy8gUmVtZW1iZXIgdGhlIG9yaWdpbmFsIHZhbHVlcworCQkJCXZhciBsZWZ0ID0gc3R5bGUu
bGVmdCwgcnNMZWZ0ID0gZWxlbS5ydW50aW1lU3R5bGUubGVmdDsKKworCQkJCS8vIFB1dCBpbiB0
aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXQKKwkJCQllbGVtLnJ1bnRp
bWVTdHlsZS5sZWZ0ID0gZWxlbS5jdXJyZW50U3R5bGUubGVmdDsKKwkJCQlzdHlsZS5sZWZ0ID0g
cmV0IHx8IDA7CisJCQkJcmV0ID0gc3R5bGUucGl4ZWxMZWZ0ICsgInB4IjsKKworCQkJCS8vIFJl
dmVydCB0aGUgY2hhbmdlZCB2YWx1ZXMKKwkJCQlzdHlsZS5sZWZ0ID0gbGVmdDsKKwkJCQllbGVt
LnJ1bnRpbWVTdHlsZS5sZWZ0ID0gcnNMZWZ0OworCQkJfQorCQl9CisKKwkJcmV0dXJuIHJldDsK
Kwl9LAorCisJY2xlYW46IGZ1bmN0aW9uKCBlbGVtcywgY29udGV4dCwgZnJhZ21lbnQgKSB7CisJ
CWNvbnRleHQgPSBjb250ZXh0IHx8IGRvY3VtZW50OworCisJCS8vICFjb250ZXh0LmNyZWF0ZUVs
ZW1lbnQgZmFpbHMgaW4gSUUgd2l0aCBhbiBlcnJvciBidXQgcmV0dXJucyB0eXBlb2YgJ29iamVj
dCcKKwkJaWYgKCB0eXBlb2YgY29udGV4dC5jcmVhdGVFbGVtZW50ID09PSAidW5kZWZpbmVkIiAp
CisJCQljb250ZXh0ID0gY29udGV4dC5vd25lckRvY3VtZW50IHx8IGNvbnRleHRbMF0gJiYgY29u
dGV4dFswXS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50OworCisJCS8vIElmIGEgc2luZ2xlIHN0
cmluZyBpcyBwYXNzZWQgaW4gYW5kIGl0J3MgYSBzaW5nbGUgdGFnCisJCS8vIGp1c3QgZG8gYSBj
cmVhdGVFbGVtZW50IGFuZCBza2lwIHRoZSByZXN0CisJCWlmICggIWZyYWdtZW50ICYmIGVsZW1z
Lmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgZWxlbXNbMF0gPT09ICJzdHJpbmciICkgeworCQkJdmFy
IG1hdGNoID0gL148KFx3KylccypcLz8+JC8uZXhlYyhlbGVtc1swXSk7CisJCQlpZiAoIG1hdGNo
ICkKKwkJCQlyZXR1cm4gWyBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoIG1hdGNoWzFdICkgXTsKKwkJ
fQorCisJCXZhciByZXQgPSBbXSwgc2NyaXB0cyA9IFtdLCBkaXYgPSBjb250ZXh0LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworCisJCWpRdWVyeS5lYWNoKGVsZW1zLCBmdW5jdGlvbihpLCBlbGVtKXsK
KwkJCWlmICggdHlwZW9mIGVsZW0gPT09ICJudW1iZXIiICkKKwkJCQllbGVtICs9ICcnOworCisJ
CQlpZiAoICFlbGVtICkKKwkJCQlyZXR1cm47CisKKwkJCS8vIENvbnZlcnQgaHRtbCBzdHJpbmcg
aW50byBET00gbm9kZXMKKwkJCWlmICggdHlwZW9mIGVsZW0gPT09ICJzdHJpbmciICkgeworCQkJ
CS8vIEZpeCAiWEhUTUwiLXN0eWxlIHRhZ3MgaW4gYWxsIGJyb3dzZXJzCisJCQkJZWxlbSA9IGVs
ZW0ucmVwbGFjZSgvKDwoXHcrKVtePl0qPylcLz4vZywgZnVuY3Rpb24oYWxsLCBmcm9udCwgdGFn
KXsKKwkJCQkJcmV0dXJuIHRhZy5tYXRjaCgvXihhYmJyfGJyfGNvbHxpbWd8aW5wdXR8bGlua3xt
ZXRhfHBhcmFtfGhyfGFyZWF8ZW1iZWQpJC9pKSA/CisJCQkJCQlhbGwgOgorCQkJCQkJZnJvbnQg
KyAiPjwvIiArIHRhZyArICI+IjsKKwkJCQl9KTsKKworCQkJCS8vIFRyaW0gd2hpdGVzcGFjZSwg
b3RoZXJ3aXNlIGluZGV4T2Ygd29uJ3Qgd29yayBhcyBleHBlY3RlZAorCQkJCXZhciB0YWdzID0g
ZWxlbS5yZXBsYWNlKC9eXHMrLywgIiIpLnN1YnN0cmluZygwLCAxMCkudG9Mb3dlckNhc2UoKTsK
KworCQkJCXZhciB3cmFwID0KKwkJCQkJLy8gb3B0aW9uIG9yIG9wdGdyb3VwCisJCQkJCSF0YWdz
LmluZGV4T2YoIjxvcHQiKSAmJgorCQkJCQlbIDEsICI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBs
ZSc+IiwgIjwvc2VsZWN0PiIgXSB8fAorCisJCQkJCSF0YWdzLmluZGV4T2YoIjxsZWciKSAmJgor
CQkJCQlbIDEsICI8ZmllbGRzZXQ+IiwgIjwvZmllbGRzZXQ+IiBdIHx8CisKKwkJCQkJdGFncy5t
YXRjaCgvXjwodGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3xjYXApLykgJiYKKwkJCQkJWyAxLCAiPHRh
YmxlPiIsICI8L3RhYmxlPiIgXSB8fAorCisJCQkJCSF0YWdzLmluZGV4T2YoIjx0ciIpICYmCisJ
CQkJCVsgMiwgIjx0YWJsZT48dGJvZHk+IiwgIjwvdGJvZHk+PC90YWJsZT4iIF0gfHwKKworCQkJ
CSAJLy8gPHRoZWFkPiBtYXRjaGVkIGFib3ZlCisJCQkJCSghdGFncy5pbmRleE9mKCI8dGQiKSB8
fCAhdGFncy5pbmRleE9mKCI8dGgiKSkgJiYKKwkJCQkJWyAzLCAiPHRhYmxlPjx0Ym9keT48dHI+
IiwgIjwvdHI+PC90Ym9keT48L3RhYmxlPiIgXSB8fAorCisJCQkJCSF0YWdzLmluZGV4T2YoIjxj
b2wiKSAmJgorCQkJCQlbIDIsICI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsICI8
L2NvbGdyb3VwPjwvdGFibGU+IiBdIHx8CisKKwkJCQkJLy8gSUUgY2FuJ3Qgc2VyaWFsaXplIDxs
aW5rPiBhbmQgPHNjcmlwdD4gdGFncyBub3JtYWxseQorCQkJCQkhalF1ZXJ5LnN1cHBvcnQuaHRt
bFNlcmlhbGl6ZSAmJgorCQkJCQlbIDEsICJkaXY8ZGl2PiIsICI8L2Rpdj4iIF0gfHwKKworCQkJ
CQlbIDAsICIiLCAiIiBdOworCisJCQkJLy8gR28gdG8gaHRtbCBhbmQgYmFjaywgdGhlbiBwZWVs
IG9mZiBleHRyYSB3cmFwcGVycworCQkJCWRpdi5pbm5lckhUTUwgPSB3cmFwWzFdICsgZWxlbSAr
IHdyYXBbMl07CisKKwkJCQkvLyBNb3ZlIHRvIHRoZSByaWdodCBkZXB0aAorCQkJCXdoaWxlICgg
d3JhcFswXS0tICkKKwkJCQkJZGl2ID0gZGl2Lmxhc3RDaGlsZDsKKworCQkJCS8vIFJlbW92ZSBJ
RSdzIGF1dG9pbnNlcnRlZCA8dGJvZHk+IGZyb20gdGFibGUgZnJhZ21lbnRzCisJCQkJaWYgKCAh
alF1ZXJ5LnN1cHBvcnQudGJvZHkgKSB7CisKKwkJCQkJLy8gU3RyaW5nIHdhcyBhIDx0YWJsZT4s
ICptYXkqIGhhdmUgc3B1cmlvdXMgPHRib2R5PgorCQkJCQl2YXIgaGFzQm9keSA9IC88dGJvZHkv
aS50ZXN0KGVsZW0pLAorCQkJCQkJdGJvZHkgPSAhdGFncy5pbmRleE9mKCI8dGFibGUiKSAmJiAh
aGFzQm9keSA/CisJCQkJCQkJZGl2LmZpcnN0Q2hpbGQgJiYgZGl2LmZpcnN0Q2hpbGQuY2hpbGRO
b2RlcyA6CisKKwkJCQkJCS8vIFN0cmluZyB3YXMgYSBiYXJlIDx0aGVhZD4gb3IgPHRmb290Pgor
CQkJCQkJd3JhcFsxXSA9PSAiPHRhYmxlPiIgJiYgIWhhc0JvZHkgPworCQkJCQkJCWRpdi5jaGls
ZE5vZGVzIDoKKwkJCQkJCQlbXTsKKworCQkJCQlmb3IgKCB2YXIgaiA9IHRib2R5Lmxlbmd0aCAt
IDE7IGogPj0gMCA7IC0taiApCisJCQkJCQlpZiAoIGpRdWVyeS5ub2RlTmFtZSggdGJvZHlbIGog
XSwgInRib2R5IiApICYmICF0Ym9keVsgaiBdLmNoaWxkTm9kZXMubGVuZ3RoICkKKwkJCQkJCQl0
Ym9keVsgaiBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRib2R5WyBqIF0gKTsKKworCQkJCQl9
CisKKwkJCQkvLyBJRSBjb21wbGV0ZWx5IGtpbGxzIGxlYWRpbmcgd2hpdGVzcGFjZSB3aGVuIGlu
bmVySFRNTCBpcyB1c2VkCisJCQkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3Bh
Y2UgJiYgL15ccy8udGVzdCggZWxlbSApICkKKwkJCQkJZGl2Lmluc2VydEJlZm9yZSggY29udGV4
dC5jcmVhdGVUZXh0Tm9kZSggZWxlbS5tYXRjaCgvXlxzKi8pWzBdICksIGRpdi5maXJzdENoaWxk
ICk7CisJCQkJCisJCQkJZWxlbSA9IGpRdWVyeS5tYWtlQXJyYXkoIGRpdi5jaGlsZE5vZGVzICk7
CisJCQl9CisKKwkJCWlmICggZWxlbS5ub2RlVHlwZSApCisJCQkJcmV0LnB1c2goIGVsZW0gKTsK
KwkJCWVsc2UKKwkJCQlyZXQgPSBqUXVlcnkubWVyZ2UoIHJldCwgZWxlbSApOworCisJCX0pOwor
CisJCWlmICggZnJhZ21lbnQgKSB7CisJCQlmb3IgKCB2YXIgaSA9IDA7IHJldFtpXTsgaSsrICkg
eworCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCByZXRbaV0sICJzY3JpcHQiICkgJiYgKCFyZXRb
aV0udHlwZSB8fCByZXRbaV0udHlwZS50b0xvd2VyQ2FzZSgpID09PSAidGV4dC9qYXZhc2NyaXB0
IikgKSB7CisJCQkJCXNjcmlwdHMucHVzaCggcmV0W2ldLnBhcmVudE5vZGUgPyByZXRbaV0ucGFy
ZW50Tm9kZS5yZW1vdmVDaGlsZCggcmV0W2ldICkgOiByZXRbaV0gKTsKKwkJCQl9IGVsc2Ugewor
CQkJCQlpZiAoIHJldFtpXS5ub2RlVHlwZSA9PT0gMSApCisJCQkJCQlyZXQuc3BsaWNlLmFwcGx5
KCByZXQsIFtpICsgMSwgMF0uY29uY2F0KGpRdWVyeS5tYWtlQXJyYXkocmV0W2ldLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJzY3JpcHQiKSkpICk7CisJCQkJCWZyYWdtZW50LmFwcGVuZENoaWxkKCBy
ZXRbaV0gKTsKKwkJCQl9CisJCQl9CisJCQkKKwkJCXJldHVybiBzY3JpcHRzOworCQl9CisKKwkJ
cmV0dXJuIHJldDsKKwl9LAorCisJYXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkg
eworCQkvLyBkb24ndCBzZXQgYXR0cmlidXRlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCisJ
CWlmICghZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PSA4KQor
CQkJcmV0dXJuIHVuZGVmaW5lZDsKKworCQl2YXIgbm90eG1sID0gIWpRdWVyeS5pc1hNTERvYygg
ZWxlbSApLAorCQkJLy8gV2hldGhlciB3ZSBhcmUgc2V0dGluZyAob3IgZ2V0dGluZykKKwkJCXNl
dCA9IHZhbHVlICE9PSB1bmRlZmluZWQ7CisKKwkJLy8gVHJ5IHRvIG5vcm1hbGl6ZS9maXggdGhl
IG5hbWUKKwkJbmFtZSA9IG5vdHhtbCAmJiBqUXVlcnkucHJvcHNbIG5hbWUgXSB8fCBuYW1lOwor
CisJCS8vIE9ubHkgZG8gYWxsIHRoZSBmb2xsb3dpbmcgaWYgdGhpcyBpcyBhIG5vZGUgKGZhc3Rl
ciBmb3Igc3R5bGUpCisJCS8vIElFIGVsZW0uZ2V0QXR0cmlidXRlIHBhc3NlcyBldmVuIGZvciBz
dHlsZQorCQlpZiAoIGVsZW0udGFnTmFtZSApIHsKKworCQkJLy8gVGhlc2UgYXR0cmlidXRlcyBy
ZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50CisJCQl2YXIgc3BlY2lhbCA9IC9ocmVmfHNyY3xzdHls
ZS8udGVzdCggbmFtZSApOworCisJCQkvLyBTYWZhcmkgbWlzLXJlcG9ydHMgdGhlIGRlZmF1bHQg
c2VsZWN0ZWQgcHJvcGVydHkgb2YgYSBoaWRkZW4gb3B0aW9uCisJCQkvLyBBY2Nlc3NpbmcgdGhl
IHBhcmVudCdzIHNlbGVjdGVkSW5kZXggcHJvcGVydHkgZml4ZXMgaXQKKwkJCWlmICggbmFtZSA9
PSAic2VsZWN0ZWQiICYmIGVsZW0ucGFyZW50Tm9kZSApCisJCQkJZWxlbS5wYXJlbnROb2RlLnNl
bGVjdGVkSW5kZXg7CisKKwkJCS8vIElmIGFwcGxpY2FibGUsIGFjY2VzcyB0aGUgYXR0cmlidXRl
IHZpYSB0aGUgRE9NIDAgd2F5CisJCQlpZiAoIG5hbWUgaW4gZWxlbSAmJiBub3R4bWwgJiYgIXNw
ZWNpYWwgKSB7CisJCQkJaWYgKCBzZXQgKXsKKwkJCQkJLy8gV2UgY2FuJ3QgYWxsb3cgdGhlIHR5
cGUgcHJvcGVydHkgdG8gYmUgY2hhbmdlZCAoc2luY2UgaXQgY2F1c2VzIHByb2JsZW1zIGluIElF
KQorCQkJCQlpZiAoIG5hbWUgPT0gInR5cGUiICYmIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgImlu
cHV0IiApICYmIGVsZW0ucGFyZW50Tm9kZSApCisJCQkJCQl0aHJvdyAidHlwZSBwcm9wZXJ0eSBj
YW4ndCBiZSBjaGFuZ2VkIjsKKworCQkJCQllbGVtWyBuYW1lIF0gPSB2YWx1ZTsKKwkJCQl9CisK
KwkJCQkvLyBicm93c2VycyBpbmRleCBlbGVtZW50cyBieSBpZC9uYW1lIG9uIGZvcm1zLCBnaXZl
IHByaW9yaXR5IHRvIGF0dHJpYnV0ZXMuCisJCQkJaWYoIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwg
ImZvcm0iICkgJiYgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKG5hbWUpICkKKwkJCQkJcmV0dXJuIGVs
ZW0uZ2V0QXR0cmlidXRlTm9kZSggbmFtZSApLm5vZGVWYWx1ZTsKKworCQkJCS8vIGVsZW0udGFi
SW5kZXggZG9lc24ndCBhbHdheXMgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gaXQgaGFz
bid0IGJlZW4gZXhwbGljaXRseSBzZXQKKwkJCQkvLyBodHRwOi8vZmx1aWRwcm9qZWN0Lm9yZy9i
bG9nLzIwMDgvMDEvMDkvZ2V0dGluZy1zZXR0aW5nLWFuZC1yZW1vdmluZy10YWJpbmRleC12YWx1
ZXMtd2l0aC1qYXZhc2NyaXB0LworCQkJCWlmICggbmFtZSA9PSAidGFiSW5kZXgiICkgeworCQkJ
CQl2YXIgYXR0cmlidXRlTm9kZSA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggInRhYkluZGV4IiAp
OworCQkJCQlyZXR1cm4gYXR0cmlidXRlTm9kZSAmJiBhdHRyaWJ1dGVOb2RlLnNwZWNpZmllZAor
CQkJCQkJPyBhdHRyaWJ1dGVOb2RlLnZhbHVlCisJCQkJCQk6IGVsZW0ubm9kZU5hbWUubWF0Y2go
LyhidXR0b258aW5wdXR8b2JqZWN0fHNlbGVjdHx0ZXh0YXJlYSkvaSkKKwkJCQkJCQk/IDAKKwkJ
CQkJCQk6IGVsZW0ubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkgJiYgZWxlbS5ocmVmCisJ
CQkJCQkJCT8gMAorCQkJCQkJCQk6IHVuZGVmaW5lZDsKKwkJCQl9CisKKwkJCQlyZXR1cm4gZWxl
bVsgbmFtZSBdOworCQkJfQorCisJCQlpZiAoICFqUXVlcnkuc3VwcG9ydC5zdHlsZSAmJiBub3R4
bWwgJiYgIG5hbWUgPT0gInN0eWxlIiApCisJCQkJcmV0dXJuIGpRdWVyeS5hdHRyKCBlbGVtLnN0
eWxlLCAiY3NzVGV4dCIsIHZhbHVlICk7CisKKwkJCWlmICggc2V0ICkKKwkJCQkvLyBjb252ZXJ0
IHRoZSB2YWx1ZSB0byBhIHN0cmluZyAoYWxsIGJyb3dzZXJzIGRvIHRoaXMgYnV0IElFKSBzZWUg
IzEwNzAKKwkJCQllbGVtLnNldEF0dHJpYnV0ZSggbmFtZSwgIiIgKyB2YWx1ZSApOworCisJCQl2
YXIgYXR0ciA9ICFqUXVlcnkuc3VwcG9ydC5ocmVmTm9ybWFsaXplZCAmJiBub3R4bWwgJiYgc3Bl
Y2lhbAorCQkJCQkvLyBTb21lIGF0dHJpYnV0ZXMgcmVxdWlyZSBhIHNwZWNpYWwgY2FsbCBvbiBJ
RQorCQkJCQk/IGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lLCAyICkKKwkJCQkJOiBlbGVtLmdldEF0
dHJpYnV0ZSggbmFtZSApOworCisJCQkvLyBOb24tZXhpc3RlbnQgYXR0cmlidXRlcyByZXR1cm4g
bnVsbCwgd2Ugbm9ybWFsaXplIHRvIHVuZGVmaW5lZAorCQkJcmV0dXJuIGF0dHIgPT09IG51bGwg
PyB1bmRlZmluZWQgOiBhdHRyOworCQl9CisKKwkJLy8gZWxlbSBpcyBhY3R1YWxseSBlbGVtLnN0
eWxlIC4uLiBzZXQgdGhlIHN0eWxlCisKKwkJLy8gSUUgdXNlcyBmaWx0ZXJzIGZvciBvcGFjaXR5
CisJCWlmICggIWpRdWVyeS5zdXBwb3J0Lm9wYWNpdHkgJiYgbmFtZSA9PSAib3BhY2l0eSIgKSB7
CisJCQlpZiAoIHNldCApIHsKKwkJCQkvLyBJRSBoYXMgdHJvdWJsZSB3aXRoIG9wYWNpdHkgaWYg
aXQgZG9lcyBub3QgaGF2ZSBsYXlvdXQKKwkJCQkvLyBGb3JjZSBpdCBieSBzZXR0aW5nIHRoZSB6
b29tIGxldmVsCisJCQkJZWxlbS56b29tID0gMTsKKworCQkJCS8vIFNldCB0aGUgYWxwaGEgZmls
dGVyIHRvIHNldCB0aGUgb3BhY2l0eQorCQkJCWVsZW0uZmlsdGVyID0gKGVsZW0uZmlsdGVyIHx8
ICIiKS5yZXBsYWNlKCAvYWxwaGFcKFteKV0qXCkvLCAiIiApICsKKwkJCQkJKHBhcnNlSW50KCB2
YWx1ZSApICsgJycgPT0gIk5hTiIgPyAiIiA6ICJhbHBoYShvcGFjaXR5PSIgKyB2YWx1ZSAqIDEw
MCArICIpIik7CisJCQl9CisKKwkJCXJldHVybiBlbGVtLmZpbHRlciAmJiBlbGVtLmZpbHRlci5p
bmRleE9mKCJvcGFjaXR5PSIpID49IDAgPworCQkJCShwYXJzZUZsb2F0KCBlbGVtLmZpbHRlci5t
YXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0gKSAvIDEwMCkgKyAnJzoKKwkJCQkiIjsKKwkJfQor
CisJCW5hbWUgPSBuYW1lLnJlcGxhY2UoLy0oW2Etel0pL2lnLCBmdW5jdGlvbihhbGwsIGxldHRl
cil7CisJCQlyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7CisJCX0pOworCisJCWlmICggc2V0
ICkKKwkJCWVsZW1bIG5hbWUgXSA9IHZhbHVlOworCisJCXJldHVybiBlbGVtWyBuYW1lIF07CisJ
fSwKKworCXRyaW06IGZ1bmN0aW9uKCB0ZXh0ICkgeworCQlyZXR1cm4gKHRleHQgfHwgIiIpLnJl
cGxhY2UoIC9eXHMrfFxzKyQvZywgIiIgKTsKKwl9LAorCisJbWFrZUFycmF5OiBmdW5jdGlvbigg
YXJyYXkgKSB7CisJCXZhciByZXQgPSBbXTsKKworCQlpZiggYXJyYXkgIT0gbnVsbCApeworCQkJ
dmFyIGkgPSBhcnJheS5sZW5ndGg7CisJCQkvLyBUaGUgd2luZG93LCBzdHJpbmdzIChhbmQgZnVu
Y3Rpb25zKSBhbHNvIGhhdmUgJ2xlbmd0aCcKKwkJCWlmKCBpID09IG51bGwgfHwgdHlwZW9mIGFy
cmF5ID09PSAic3RyaW5nIiB8fCBqUXVlcnkuaXNGdW5jdGlvbihhcnJheSkgfHwgYXJyYXkuc2V0
SW50ZXJ2YWwgKQorCQkJCXJldFswXSA9IGFycmF5OworCQkJZWxzZQorCQkJCXdoaWxlKCBpICkK
KwkJCQkJcmV0Wy0taV0gPSBhcnJheVtpXTsKKwkJfQorCisJCXJldHVybiByZXQ7CisJfSwKKwor
CWluQXJyYXk6IGZ1bmN0aW9uKCBlbGVtLCBhcnJheSApIHsKKwkJZm9yICggdmFyIGkgPSAwLCBs
ZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKyApCisJCS8vIFVzZSA9PT0gYmVj
YXVzZSBvbiBJRSwgd2luZG93ID09IGRvY3VtZW50CisJCQlpZiAoIGFycmF5WyBpIF0gPT09IGVs
ZW0gKQorCQkJCXJldHVybiBpOworCisJCXJldHVybiAtMTsKKwl9LAorCisJbWVyZ2U6IGZ1bmN0
aW9uKCBmaXJzdCwgc2Vjb25kICkgeworCQkvLyBXZSBoYXZlIHRvIGxvb3AgdGhpcyB3YXkgYmVj
YXVzZSBJRSAmIE9wZXJhIG92ZXJ3cml0ZSB0aGUgbGVuZ3RoCisJCS8vIGV4cGFuZG8gb2YgZ2V0
RWxlbWVudHNCeVRhZ05hbWUKKwkJdmFyIGkgPSAwLCBlbGVtLCBwb3MgPSBmaXJzdC5sZW5ndGg7
CisJCS8vIEFsc28sIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNvcnJlY3QgZWxlbWVu
dHMgYXJlIGJlaW5nIHJldHVybmVkCisJCS8vIChJRSByZXR1cm5zIGNvbW1lbnQgbm9kZXMgaW4g
YSAnKicgcXVlcnkpCisJCWlmICggIWpRdWVyeS5zdXBwb3J0LmdldEFsbCApIHsKKwkJCXdoaWxl
ICggKGVsZW0gPSBzZWNvbmRbIGkrKyBdKSAhPSBudWxsICkKKwkJCQlpZiAoIGVsZW0ubm9kZVR5
cGUgIT0gOCApCisJCQkJCWZpcnN0WyBwb3MrKyBdID0gZWxlbTsKKworCQl9IGVsc2UKKwkJCXdo
aWxlICggKGVsZW0gPSBzZWNvbmRbIGkrKyBdKSAhPSBudWxsICkKKwkJCQlmaXJzdFsgcG9zKysg
XSA9IGVsZW07CisKKwkJcmV0dXJuIGZpcnN0OworCX0sCisKKwl1bmlxdWU6IGZ1bmN0aW9uKCBh
cnJheSApIHsKKwkJdmFyIHJldCA9IFtdLCBkb25lID0ge307CisKKwkJdHJ5IHsKKworCQkJZm9y
ICggdmFyIGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKyApIHsK
KwkJCQl2YXIgaWQgPSBqUXVlcnkuZGF0YSggYXJyYXlbIGkgXSApOworCisJCQkJaWYgKCAhZG9u
ZVsgaWQgXSApIHsKKwkJCQkJZG9uZVsgaWQgXSA9IHRydWU7CisJCQkJCXJldC5wdXNoKCBhcnJh
eVsgaSBdICk7CisJCQkJfQorCQkJfQorCisJCX0gY2F0Y2goIGUgKSB7CisJCQlyZXQgPSBhcnJh
eTsKKwkJfQorCisJCXJldHVybiByZXQ7CisJfSwKKworCWdyZXA6IGZ1bmN0aW9uKCBlbGVtcywg
Y2FsbGJhY2ssIGludiApIHsKKwkJdmFyIHJldCA9IFtdOworCisJCS8vIEdvIHRocm91Z2ggdGhl
IGFycmF5LCBvbmx5IHNhdmluZyB0aGUgaXRlbXMKKwkJLy8gdGhhdCBwYXNzIHRoZSB2YWxpZGF0
b3IgZnVuY3Rpb24KKwkJZm9yICggdmFyIGkgPSAwLCBsZW5ndGggPSBlbGVtcy5sZW5ndGg7IGkg
PCBsZW5ndGg7IGkrKyApCisJCQlpZiAoICFpbnYgIT0gIWNhbGxiYWNrKCBlbGVtc1sgaSBdLCBp
ICkgKQorCQkJCXJldC5wdXNoKCBlbGVtc1sgaSBdICk7CisKKwkJcmV0dXJuIHJldDsKKwl9LAor
CisJbWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrICkgeworCQl2YXIgcmV0ID0gW107CisK
KwkJLy8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1z
IHRvIHRoZWlyCisJCS8vIG5ldyB2YWx1ZSAob3IgdmFsdWVzKS4KKwkJZm9yICggdmFyIGkgPSAw
LCBsZW5ndGggPSBlbGVtcy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKyApIHsKKwkJCXZhciB2YWx1
ZSA9IGNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpICk7CisKKwkJCWlmICggdmFsdWUgIT0gbnVsbCAp
CisJCQkJcmV0WyByZXQubGVuZ3RoIF0gPSB2YWx1ZTsKKwkJfQorCisJCXJldHVybiByZXQuY29u
Y2F0LmFwcGx5KCBbXSwgcmV0ICk7CisJfQorfSk7CisKKy8vIFVzZSBvZiBqUXVlcnkuYnJvd3Nl
ciBpcyBkZXByZWNhdGVkLgorLy8gSXQncyBpbmNsdWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGli
aWxpdHkgYW5kIHBsdWdpbnMsCisvLyBhbHRob3VnaCB0aGV5IHNob3VsZCB3b3JrIHRvIG1pZ3Jh
dGUgYXdheS4KKwordmFyIHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNh
c2UoKTsKKworLy8gRmlndXJlIG91dCB3aGF0IGJyb3dzZXIgaXMgYmVpbmcgdXNlZAoralF1ZXJ5
LmJyb3dzZXIgPSB7CisJdmVyc2lvbjogKHVzZXJBZ2VudC5tYXRjaCggLy4rKD86cnZ8aXR8cmF8
aWUpW1wvOiBdKFtcZC5dKykvICkgfHwgWzAsJzAnXSlbMV0sCisJc2FmYXJpOiAvd2Via2l0Ly50
ZXN0KCB1c2VyQWdlbnQgKSwKKwlvcGVyYTogL29wZXJhLy50ZXN0KCB1c2VyQWdlbnQgKSwKKwlt
c2llOiAvbXNpZS8udGVzdCggdXNlckFnZW50ICkgJiYgIS9vcGVyYS8udGVzdCggdXNlckFnZW50
ICksCisJbW96aWxsYTogL21vemlsbGEvLnRlc3QoIHVzZXJBZ2VudCApICYmICEvKGNvbXBhdGli
bGV8d2Via2l0KS8udGVzdCggdXNlckFnZW50ICkKK307CisKK2pRdWVyeS5lYWNoKHsKKwlwYXJl
bnQ6IGZ1bmN0aW9uKGVsZW0pe3JldHVybiBlbGVtLnBhcmVudE5vZGU7fSwKKwlwYXJlbnRzOiBm
dW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5LmRpcihlbGVtLCJwYXJlbnROb2RlIik7fSwKKwlu
ZXh0OiBmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5Lm50aChlbGVtLDIsIm5leHRTaWJsaW5n
Iik7fSwKKwlwcmV2OiBmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5Lm50aChlbGVtLDIsInBy
ZXZpb3VzU2libGluZyIpO30sCisJbmV4dEFsbDogZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVy
eS5kaXIoZWxlbSwibmV4dFNpYmxpbmciKTt9LAorCXByZXZBbGw6IGZ1bmN0aW9uKGVsZW0pe3Jl
dHVybiBqUXVlcnkuZGlyKGVsZW0sInByZXZpb3VzU2libGluZyIpO30sCisJc2libGluZ3M6IGZ1
bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkuc2libGluZyhlbGVtLnBhcmVudE5vZGUuZmlyc3RD
aGlsZCxlbGVtKTt9LAorCWNoaWxkcmVuOiBmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5LnNp
YmxpbmcoZWxlbS5maXJzdENoaWxkKTt9LAorCWNvbnRlbnRzOiBmdW5jdGlvbihlbGVtKXtyZXR1
cm4galF1ZXJ5Lm5vZGVOYW1lKGVsZW0sImlmcmFtZSIpP2VsZW0uY29udGVudERvY3VtZW50fHxl
bGVtLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6alF1ZXJ5Lm1ha2VBcnJheShlbGVtLmNoaWxkTm9k
ZXMpO30KK30sIGZ1bmN0aW9uKG5hbWUsIGZuKXsKKwlqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0
aW9uKCBzZWxlY3RvciApIHsKKwkJdmFyIHJldCA9IGpRdWVyeS5tYXAoIHRoaXMsIGZuICk7CisK
KwkJaWYgKCBzZWxlY3RvciAmJiB0eXBlb2Ygc2VsZWN0b3IgPT0gInN0cmluZyIgKQorCQkJcmV0
ID0galF1ZXJ5Lm11bHRpRmlsdGVyKCBzZWxlY3RvciwgcmV0ICk7CisKKwkJcmV0dXJuIHRoaXMu
cHVzaFN0YWNrKCBqUXVlcnkudW5pcXVlKCByZXQgKSwgbmFtZSwgc2VsZWN0b3IgKTsKKwl9Owor
fSk7CisKK2pRdWVyeS5lYWNoKHsKKwlhcHBlbmRUbzogImFwcGVuZCIsCisJcHJlcGVuZFRvOiAi
cHJlcGVuZCIsCisJaW5zZXJ0QmVmb3JlOiAiYmVmb3JlIiwKKwlpbnNlcnRBZnRlcjogImFmdGVy
IiwKKwlyZXBsYWNlQWxsOiAicmVwbGFjZVdpdGgiCit9LCBmdW5jdGlvbihuYW1lLCBvcmlnaW5h
bCl7CisJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CisJCXZhciBy
ZXQgPSBbXSwgaW5zZXJ0ID0galF1ZXJ5KCBzZWxlY3RvciApOworCisJCWZvciAoIHZhciBpID0g
MCwgbCA9IGluc2VydC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CisJCQl2YXIgZWxlbXMgPSAoaSA+
IDAgPyB0aGlzLmNsb25lKHRydWUpIDogdGhpcykuZ2V0KCk7CisJCQlqUXVlcnkuZm5bIG9yaWdp
bmFsIF0uYXBwbHkoIGpRdWVyeShpbnNlcnRbaV0pLCBlbGVtcyApOworCQkJcmV0ID0gcmV0LmNv
bmNhdCggZWxlbXMgKTsKKwkJfQorCisJCXJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0LCBuYW1l
LCBzZWxlY3RvciApOworCX07Cit9KTsKKworalF1ZXJ5LmVhY2goeworCXJlbW92ZUF0dHI6IGZ1
bmN0aW9uKCBuYW1lICkgeworCQlqUXVlcnkuYXR0ciggdGhpcywgbmFtZSwgIiIgKTsKKwkJaWYg
KHRoaXMubm9kZVR5cGUgPT0gMSkKKwkJCXRoaXMucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7CisJ
fSwKKworCWFkZENsYXNzOiBmdW5jdGlvbiggY2xhc3NOYW1lcyApIHsKKwkJalF1ZXJ5LmNsYXNz
TmFtZS5hZGQoIHRoaXMsIGNsYXNzTmFtZXMgKTsKKwl9LAorCisJcmVtb3ZlQ2xhc3M6IGZ1bmN0
aW9uKCBjbGFzc05hbWVzICkgeworCQlqUXVlcnkuY2xhc3NOYW1lLnJlbW92ZSggdGhpcywgY2xh
c3NOYW1lcyApOworCX0sCisKKwl0b2dnbGVDbGFzczogZnVuY3Rpb24oIGNsYXNzTmFtZXMsIHN0
YXRlICkgeworCQlpZiggdHlwZW9mIHN0YXRlICE9PSAiYm9vbGVhbiIgKQorCQkJc3RhdGUgPSAh
alF1ZXJ5LmNsYXNzTmFtZS5oYXMoIHRoaXMsIGNsYXNzTmFtZXMgKTsKKwkJalF1ZXJ5LmNsYXNz
TmFtZVsgc3RhdGUgPyAiYWRkIiA6ICJyZW1vdmUiIF0oIHRoaXMsIGNsYXNzTmFtZXMgKTsKKwl9
LAorCisJcmVtb3ZlOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CisJCWlmICggIXNlbGVjdG9yIHx8
IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBbIHRoaXMgXSApLmxlbmd0aCApIHsKKwkJCS8vIFBy
ZXZlbnQgbWVtb3J5IGxlYWtzCisJCQlqUXVlcnkoICIqIiwgdGhpcyApLmFkZChbdGhpc10pLmVh
Y2goZnVuY3Rpb24oKXsKKwkJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKHRoaXMpOworCQkJCWpRdWVy
eS5yZW1vdmVEYXRhKHRoaXMpOworCQkJfSk7CisJCQlpZiAodGhpcy5wYXJlbnROb2RlKQorCQkJ
CXRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggdGhpcyApOworCQl9CisJfSwKKworCWVtcHR5
OiBmdW5jdGlvbigpIHsKKwkJLy8gUmVtb3ZlIGVsZW1lbnQgbm9kZXMgYW5kIHByZXZlbnQgbWVt
b3J5IGxlYWtzCisJCWpRdWVyeSh0aGlzKS5jaGlsZHJlbigpLnJlbW92ZSgpOworCisJCS8vIFJl
bW92ZSBhbnkgcmVtYWluaW5nIG5vZGVzCisJCXdoaWxlICggdGhpcy5maXJzdENoaWxkICkKKwkJ
CXRoaXMucmVtb3ZlQ2hpbGQoIHRoaXMuZmlyc3RDaGlsZCApOworCX0KK30sIGZ1bmN0aW9uKG5h
bWUsIGZuKXsKKwlqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCl7CisJCXJldHVybiB0aGlz
LmVhY2goIGZuLCBhcmd1bWVudHMgKTsKKwl9OworfSk7CisKKy8vIEhlbHBlciBmdW5jdGlvbiB1
c2VkIGJ5IHRoZSBkaW1lbnNpb25zIGFuZCBvZmZzZXQgbW9kdWxlcworZnVuY3Rpb24gbnVtKGVs
ZW0sIHByb3ApIHsKKwlyZXR1cm4gZWxlbVswXSAmJiBwYXJzZUludCggalF1ZXJ5LmN1ckNTUyhl
bGVtWzBdLCBwcm9wLCB0cnVlKSwgMTAgKSB8fCAwOworfQordmFyIGV4cGFuZG8gPSAialF1ZXJ5
IiArIG5vdygpLCB1dWlkID0gMCwgd2luZG93RGF0YSA9IHt9OworCitqUXVlcnkuZXh0ZW5kKHsK
KwljYWNoZToge30sCisKKwlkYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZGF0YSApIHsKKwkJ
ZWxlbSA9IGVsZW0gPT0gd2luZG93ID8KKwkJCXdpbmRvd0RhdGEgOgorCQkJZWxlbTsKKworCQl2
YXIgaWQgPSBlbGVtWyBleHBhbmRvIF07CisKKwkJLy8gQ29tcHV0ZSBhIHVuaXF1ZSBJRCBmb3Ig
dGhlIGVsZW1lbnQKKwkJaWYgKCAhaWQgKQorCQkJaWQgPSBlbGVtWyBleHBhbmRvIF0gPSArK3V1
aWQ7CisKKwkJLy8gT25seSBnZW5lcmF0ZSB0aGUgZGF0YSBjYWNoZSBpZiB3ZSdyZQorCQkvLyB0
cnlpbmcgdG8gYWNjZXNzIG9yIG1hbmlwdWxhdGUgaXQKKwkJaWYgKCBuYW1lICYmICFqUXVlcnku
Y2FjaGVbIGlkIF0gKQorCQkJalF1ZXJ5LmNhY2hlWyBpZCBdID0ge307CisKKwkJLy8gUHJldmVu
dCBvdmVycmlkaW5nIHRoZSBuYW1lZCBjYWNoZSB3aXRoIHVuZGVmaW5lZCB2YWx1ZXMKKwkJaWYg
KCBkYXRhICE9PSB1bmRlZmluZWQgKQorCQkJalF1ZXJ5LmNhY2hlWyBpZCBdWyBuYW1lIF0gPSBk
YXRhOworCisJCS8vIFJldHVybiB0aGUgbmFtZWQgY2FjaGUgZGF0YSwgb3IgdGhlIElEIGZvciB0
aGUgZWxlbWVudAorCQlyZXR1cm4gbmFtZSA/CisJCQlqUXVlcnkuY2FjaGVbIGlkIF1bIG5hbWUg
XSA6CisJCQlpZDsKKwl9LAorCisJcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7
CisJCWVsZW0gPSBlbGVtID09IHdpbmRvdyA/CisJCQl3aW5kb3dEYXRhIDoKKwkJCWVsZW07CisK
KwkJdmFyIGlkID0gZWxlbVsgZXhwYW5kbyBdOworCisJCS8vIElmIHdlIHdhbnQgdG8gcmVtb3Zl
IGEgc3BlY2lmaWMgc2VjdGlvbiBvZiB0aGUgZWxlbWVudCdzIGRhdGEKKwkJaWYgKCBuYW1lICkg
eworCQkJaWYgKCBqUXVlcnkuY2FjaGVbIGlkIF0gKSB7CisJCQkJLy8gUmVtb3ZlIHRoZSBzZWN0
aW9uIG9mIGNhY2hlIGRhdGEKKwkJCQlkZWxldGUgalF1ZXJ5LmNhY2hlWyBpZCBdWyBuYW1lIF07
CisKKwkJCQkvLyBJZiB3ZSd2ZSByZW1vdmVkIGFsbCB0aGUgZGF0YSwgcmVtb3ZlIHRoZSBlbGVt
ZW50J3MgY2FjaGUKKwkJCQluYW1lID0gIiI7CisKKwkJCQlmb3IgKCBuYW1lIGluIGpRdWVyeS5j
YWNoZVsgaWQgXSApCisJCQkJCWJyZWFrOworCisJCQkJaWYgKCAhbmFtZSApCisJCQkJCWpRdWVy
eS5yZW1vdmVEYXRhKCBlbGVtICk7CisJCQl9CisKKwkJLy8gT3RoZXJ3aXNlLCB3ZSB3YW50IHRv
IHJlbW92ZSBhbGwgb2YgdGhlIGVsZW1lbnQncyBkYXRhCisJCX0gZWxzZSB7CisJCQkvLyBDbGVh
biB1cCB0aGUgZWxlbWVudCBleHBhbmRvCisJCQl0cnkgeworCQkJCWRlbGV0ZSBlbGVtWyBleHBh
bmRvIF07CisJCQl9IGNhdGNoKGUpeworCQkJCS8vIElFIGhhcyB0cm91YmxlIGRpcmVjdGx5IHJl
bW92aW5nIHRoZSBleHBhbmRvCisJCQkJLy8gYnV0IGl0J3Mgb2sgd2l0aCB1c2luZyByZW1vdmVB
dHRyaWJ1dGUKKwkJCQlpZiAoIGVsZW0ucmVtb3ZlQXR0cmlidXRlICkKKwkJCQkJZWxlbS5yZW1v
dmVBdHRyaWJ1dGUoIGV4cGFuZG8gKTsKKwkJCX0KKworCQkJLy8gQ29tcGxldGVseSByZW1vdmUg
dGhlIGRhdGEgY2FjaGUKKwkJCWRlbGV0ZSBqUXVlcnkuY2FjaGVbIGlkIF07CisJCX0KKwl9LAor
CXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSwgZGF0YSApIHsKKwkJaWYgKCBlbGVtICl7CisJ
CisJCQl0eXBlID0gKHR5cGUgfHwgImZ4IikgKyAicXVldWUiOworCQorCQkJdmFyIHEgPSBqUXVl
cnkuZGF0YSggZWxlbSwgdHlwZSApOworCQorCQkJaWYgKCAhcSB8fCBqUXVlcnkuaXNBcnJheShk
YXRhKSApCisJCQkJcSA9IGpRdWVyeS5kYXRhKCBlbGVtLCB0eXBlLCBqUXVlcnkubWFrZUFycmF5
KGRhdGEpICk7CisJCQllbHNlIGlmKCBkYXRhICkKKwkJCQlxLnB1c2goIGRhdGEgKTsKKwkKKwkJ
fQorCQlyZXR1cm4gcTsKKwl9LAorCisJZGVxdWV1ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGUgKXsK
KwkJdmFyIHF1ZXVlID0galF1ZXJ5LnF1ZXVlKCBlbGVtLCB0eXBlICksCisJCQlmbiA9IHF1ZXVl
LnNoaWZ0KCk7CisJCQorCQlpZiggIXR5cGUgfHwgdHlwZSA9PT0gImZ4IiApCisJCQlmbiA9IHF1
ZXVlWzBdOworCQkJCisJCWlmKCBmbiAhPT0gdW5kZWZpbmVkICkKKwkJCWZuLmNhbGwoZWxlbSk7
CisJfQorfSk7CisKK2pRdWVyeS5mbi5leHRlbmQoeworCWRhdGE6IGZ1bmN0aW9uKCBrZXksIHZh
bHVlICl7CisJCXZhciBwYXJ0cyA9IGtleS5zcGxpdCgiLiIpOworCQlwYXJ0c1sxXSA9IHBhcnRz
WzFdID8gIi4iICsgcGFydHNbMV0gOiAiIjsKKworCQlpZiAoIHZhbHVlID09PSB1bmRlZmluZWQg
KSB7CisJCQl2YXIgZGF0YSA9IHRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiICsgcGFydHNb
MV0gKyAiISIsIFtwYXJ0c1swXV0pOworCisJCQlpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiB0
aGlzLmxlbmd0aCApCisJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdLCBrZXkgKTsKKwor
CQkJcmV0dXJuIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBwYXJ0c1sxXSA/CisJCQkJdGhpcy5kYXRh
KCBwYXJ0c1swXSApIDoKKwkJCQlkYXRhOworCQl9IGVsc2UKKwkJCXJldHVybiB0aGlzLnRyaWdn
ZXIoInNldERhdGEiICsgcGFydHNbMV0gKyAiISIsIFtwYXJ0c1swXSwgdmFsdWVdKS5lYWNoKGZ1
bmN0aW9uKCl7CisJCQkJalF1ZXJ5LmRhdGEoIHRoaXMsIGtleSwgdmFsdWUgKTsKKwkJCX0pOwor
CX0sCisKKwlyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICl7CisJCXJldHVybiB0aGlzLmVhY2go
ZnVuY3Rpb24oKXsKKwkJCWpRdWVyeS5yZW1vdmVEYXRhKCB0aGlzLCBrZXkgKTsKKwkJfSk7CisJ
fSwKKwlxdWV1ZTogZnVuY3Rpb24odHlwZSwgZGF0YSl7CisJCWlmICggdHlwZW9mIHR5cGUgIT09
ICJzdHJpbmciICkgeworCQkJZGF0YSA9IHR5cGU7CisJCQl0eXBlID0gImZ4IjsKKwkJfQorCisJ
CWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICkKKwkJCXJldHVybiBqUXVlcnkucXVldWUoIHRoaXNb
MF0sIHR5cGUgKTsKKworCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CisJCQl2YXIgcXVl
dWUgPSBqUXVlcnkucXVldWUoIHRoaXMsIHR5cGUsIGRhdGEgKTsKKwkJCQorCQkJIGlmKCB0eXBl
ID09ICJmeCIgJiYgcXVldWUubGVuZ3RoID09IDEgKQorCQkJCXF1ZXVlWzBdLmNhbGwodGhpcyk7
CisJCX0pOworCX0sCisJZGVxdWV1ZTogZnVuY3Rpb24odHlwZSl7CisJCXJldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oKXsKKwkJCWpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7CisJCX0pOwor
CX0KK30pOy8qIQorICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUgLSB2MC45LjMKKyAqICBD
b3B5cmlnaHQgMjAwOSwgVGhlIERvam8gRm91bmRhdGlvbgorICogIFJlbGVhc2VkIHVuZGVyIHRo
ZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4KKyAqICBNb3JlIGluZm9ybWF0aW9uOiBodHRw
Oi8vc2l6emxlanMuY29tLworICovCisoZnVuY3Rpb24oKXsKKwordmFyIGNodW5rZXIgPSAvKCg/
OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsn
Il18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2cs
CisJZG9uZSA9IDAsCisJdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOworCit2
YXIgU2l6emxlID0gZnVuY3Rpb24oc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQpIHsK
KwlyZXN1bHRzID0gcmVzdWx0cyB8fCBbXTsKKwljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVu
dDsKKworCWlmICggY29udGV4dC5ub2RlVHlwZSAhPT0gMSAmJiBjb250ZXh0Lm5vZGVUeXBlICE9
PSA5ICkKKwkJcmV0dXJuIFtdOworCQorCWlmICggIXNlbGVjdG9yIHx8IHR5cGVvZiBzZWxlY3Rv
ciAhPT0gInN0cmluZyIgKSB7CisJCXJldHVybiByZXN1bHRzOworCX0KKworCXZhciBwYXJ0cyA9
IFtdLCBtLCBzZXQsIGNoZWNrU2V0LCBjaGVjaywgbW9kZSwgZXh0cmEsIHBydW5lID0gdHJ1ZTsK
KwkKKwkvLyBSZXNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGNodW5rZXIgcmVnZXhwIChzdGFydCBm
cm9tIGhlYWQpCisJY2h1bmtlci5sYXN0SW5kZXggPSAwOworCQorCXdoaWxlICggKG0gPSBjaHVu
a2VyLmV4ZWMoc2VsZWN0b3IpKSAhPT0gbnVsbCApIHsKKwkJcGFydHMucHVzaCggbVsxXSApOwor
CQkKKwkJaWYgKCBtWzJdICkgeworCQkJZXh0cmEgPSBSZWdFeHAucmlnaHRDb250ZXh0OworCQkJ
YnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIHBhcnRzLmxlbmd0aCA+IDEgJiYgb3JpZ1BPUy5leGVj
KCBzZWxlY3RvciApICkgeworCQlpZiAoIHBhcnRzLmxlbmd0aCA9PT0gMiAmJiBFeHByLnJlbGF0
aXZlWyBwYXJ0c1swXSBdICkgeworCQkJc2V0ID0gcG9zUHJvY2VzcyggcGFydHNbMF0gKyBwYXJ0
c1sxXSwgY29udGV4dCApOworCQl9IGVsc2UgeworCQkJc2V0ID0gRXhwci5yZWxhdGl2ZVsgcGFy
dHNbMF0gXSA/CisJCQkJWyBjb250ZXh0IF0gOgorCQkJCVNpenpsZSggcGFydHMuc2hpZnQoKSwg
Y29udGV4dCApOworCisJCQl3aGlsZSAoIHBhcnRzLmxlbmd0aCApIHsKKwkJCQlzZWxlY3RvciA9
IHBhcnRzLnNoaWZ0KCk7CisKKwkJCQlpZiAoIEV4cHIucmVsYXRpdmVbIHNlbGVjdG9yIF0gKQor
CQkJCQlzZWxlY3RvciArPSBwYXJ0cy5zaGlmdCgpOworCisJCQkJc2V0ID0gcG9zUHJvY2Vzcygg
c2VsZWN0b3IsIHNldCApOworCQkJfQorCQl9CisJfSBlbHNlIHsKKwkJdmFyIHJldCA9IHNlZWQg
PworCQkJeyBleHByOiBwYXJ0cy5wb3AoKSwgc2V0OiBtYWtlQXJyYXkoc2VlZCkgfSA6CisJCQlT
aXp6bGUuZmluZCggcGFydHMucG9wKCksIHBhcnRzLmxlbmd0aCA9PT0gMSAmJiBjb250ZXh0LnBh
cmVudE5vZGUgPyBjb250ZXh0LnBhcmVudE5vZGUgOiBjb250ZXh0LCBpc1hNTChjb250ZXh0KSAp
OworCQlzZXQgPSBTaXp6bGUuZmlsdGVyKCByZXQuZXhwciwgcmV0LnNldCApOworCisJCWlmICgg
cGFydHMubGVuZ3RoID4gMCApIHsKKwkJCWNoZWNrU2V0ID0gbWFrZUFycmF5KHNldCk7CisJCX0g
ZWxzZSB7CisJCQlwcnVuZSA9IGZhbHNlOworCQl9CisKKwkJd2hpbGUgKCBwYXJ0cy5sZW5ndGgg
KSB7CisJCQl2YXIgY3VyID0gcGFydHMucG9wKCksIHBvcCA9IGN1cjsKKworCQkJaWYgKCAhRXhw
ci5yZWxhdGl2ZVsgY3VyIF0gKSB7CisJCQkJY3VyID0gIiI7CisJCQl9IGVsc2UgeworCQkJCXBv
cCA9IHBhcnRzLnBvcCgpOworCQkJfQorCisJCQlpZiAoIHBvcCA9PSBudWxsICkgeworCQkJCXBv
cCA9IGNvbnRleHQ7CisJCQl9CisKKwkJCUV4cHIucmVsYXRpdmVbIGN1ciBdKCBjaGVja1NldCwg
cG9wLCBpc1hNTChjb250ZXh0KSApOworCQl9CisJfQorCisJaWYgKCAhY2hlY2tTZXQgKSB7CisJ
CWNoZWNrU2V0ID0gc2V0OworCX0KKworCWlmICggIWNoZWNrU2V0ICkgeworCQl0aHJvdyAiU3lu
dGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIiArIChjdXIgfHwgc2VsZWN0b3Ip
OworCX0KKworCWlmICggdG9TdHJpbmcuY2FsbChjaGVja1NldCkgPT09ICJbb2JqZWN0IEFycmF5
XSIgKSB7CisJCWlmICggIXBydW5lICkgeworCQkJcmVzdWx0cy5wdXNoLmFwcGx5KCByZXN1bHRz
LCBjaGVja1NldCApOworCQl9IGVsc2UgaWYgKCBjb250ZXh0Lm5vZGVUeXBlID09PSAxICkgewor
CQkJZm9yICggdmFyIGkgPSAwOyBjaGVja1NldFtpXSAhPSBudWxsOyBpKysgKSB7CisJCQkJaWYg
KCBjaGVja1NldFtpXSAmJiAoY2hlY2tTZXRbaV0gPT09IHRydWUgfHwgY2hlY2tTZXRbaV0ubm9k
ZVR5cGUgPT09IDEgJiYgY29udGFpbnMoY29udGV4dCwgY2hlY2tTZXRbaV0pKSApIHsKKwkJCQkJ
cmVzdWx0cy5wdXNoKCBzZXRbaV0gKTsKKwkJCQl9CisJCQl9CisJCX0gZWxzZSB7CisJCQlmb3Ig
KCB2YXIgaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKKwkJCQlpZiAoIGNoZWNr
U2V0W2ldICYmIGNoZWNrU2V0W2ldLm5vZGVUeXBlID09PSAxICkgeworCQkJCQlyZXN1bHRzLnB1
c2goIHNldFtpXSApOworCQkJCX0KKwkJCX0KKwkJfQorCX0gZWxzZSB7CisJCW1ha2VBcnJheSgg
Y2hlY2tTZXQsIHJlc3VsdHMgKTsKKwl9CisKKwlpZiAoIGV4dHJhICkgeworCQlTaXp6bGUoIGV4
dHJhLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICk7CisKKwkJaWYgKCBzb3J0T3JkZXIgKSB7CisJ
CQloYXNEdXBsaWNhdGUgPSBmYWxzZTsKKwkJCXJlc3VsdHMuc29ydChzb3J0T3JkZXIpOworCisJ
CQlpZiAoIGhhc0R1cGxpY2F0ZSApIHsKKwkJCQlmb3IgKCB2YXIgaSA9IDE7IGkgPCByZXN1bHRz
Lmxlbmd0aDsgaSsrICkgeworCQkJCQlpZiAoIHJlc3VsdHNbaV0gPT09IHJlc3VsdHNbaS0xXSAp
IHsKKwkJCQkJCXJlc3VsdHMuc3BsaWNlKGktLSwgMSk7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJ
CX0KKwl9CisKKwlyZXR1cm4gcmVzdWx0czsKK307CisKK1NpenpsZS5tYXRjaGVzID0gZnVuY3Rp
b24oZXhwciwgc2V0KXsKKwlyZXR1cm4gU2l6emxlKGV4cHIsIG51bGwsIG51bGwsIHNldCk7Cit9
OworCitTaXp6bGUuZmluZCA9IGZ1bmN0aW9uKGV4cHIsIGNvbnRleHQsIGlzWE1MKXsKKwl2YXIg
c2V0LCBtYXRjaDsKKworCWlmICggIWV4cHIgKSB7CisJCXJldHVybiBbXTsKKwl9CisKKwlmb3Ig
KCB2YXIgaSA9IDAsIGwgPSBFeHByLm9yZGVyLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKKwkJdmFy
IHR5cGUgPSBFeHByLm9yZGVyW2ldLCBtYXRjaDsKKwkJCisJCWlmICggKG1hdGNoID0gRXhwci5t
YXRjaFsgdHlwZSBdLmV4ZWMoIGV4cHIgKSkgKSB7CisJCQl2YXIgbGVmdCA9IFJlZ0V4cC5sZWZ0
Q29udGV4dDsKKworCQkJaWYgKCBsZWZ0LnN1YnN0ciggbGVmdC5sZW5ndGggLSAxICkgIT09ICJc
XCIgKSB7CisJCQkJbWF0Y2hbMV0gPSAobWF0Y2hbMV0gfHwgIiIpLnJlcGxhY2UoL1xcL2csICIi
KTsKKwkJCQlzZXQgPSBFeHByLmZpbmRbIHR5cGUgXSggbWF0Y2gsIGNvbnRleHQsIGlzWE1MICk7
CisJCQkJaWYgKCBzZXQgIT0gbnVsbCApIHsKKwkJCQkJZXhwciA9IGV4cHIucmVwbGFjZSggRXhw
ci5tYXRjaFsgdHlwZSBdLCAiIiApOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCX0KKwl9
CisKKwlpZiAoICFzZXQgKSB7CisJCXNldCA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
IioiKTsKKwl9CisKKwlyZXR1cm4ge3NldDogc2V0LCBleHByOiBleHByfTsKK307CisKK1Npenps
ZS5maWx0ZXIgPSBmdW5jdGlvbihleHByLCBzZXQsIGlucGxhY2UsIG5vdCl7CisJdmFyIG9sZCA9
IGV4cHIsIHJlc3VsdCA9IFtdLCBjdXJMb29wID0gc2V0LCBtYXRjaCwgYW55Rm91bmQsCisJCWlz
WE1MRmlsdGVyID0gc2V0ICYmIHNldFswXSAmJiBpc1hNTChzZXRbMF0pOworCisJd2hpbGUgKCBl
eHByICYmIHNldC5sZW5ndGggKSB7CisJCWZvciAoIHZhciB0eXBlIGluIEV4cHIuZmlsdGVyICkg
eworCQkJaWYgKCAobWF0Y2ggPSBFeHByLm1hdGNoWyB0eXBlIF0uZXhlYyggZXhwciApKSAhPSBu
dWxsICkgeworCQkJCXZhciBmaWx0ZXIgPSBFeHByLmZpbHRlclsgdHlwZSBdLCBmb3VuZCwgaXRl
bTsKKwkJCQlhbnlGb3VuZCA9IGZhbHNlOworCisJCQkJaWYgKCBjdXJMb29wID09IHJlc3VsdCAp
IHsKKwkJCQkJcmVzdWx0ID0gW107CisJCQkJfQorCisJCQkJaWYgKCBFeHByLnByZUZpbHRlclsg
dHlwZSBdICkgeworCQkJCQltYXRjaCA9IEV4cHIucHJlRmlsdGVyWyB0eXBlIF0oIG1hdGNoLCBj
dXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNYTUxGaWx0ZXIgKTsKKworCQkJCQlpZiAo
ICFtYXRjaCApIHsKKwkJCQkJCWFueUZvdW5kID0gZm91bmQgPSB0cnVlOworCQkJCQl9IGVsc2Ug
aWYgKCBtYXRjaCA9PT0gdHJ1ZSApIHsKKwkJCQkJCWNvbnRpbnVlOworCQkJCQl9CisJCQkJfQor
CisJCQkJaWYgKCBtYXRjaCApIHsKKwkJCQkJZm9yICggdmFyIGkgPSAwOyAoaXRlbSA9IGN1ckxv
b3BbaV0pICE9IG51bGw7IGkrKyApIHsKKwkJCQkJCWlmICggaXRlbSApIHsKKwkJCQkJCQlmb3Vu
ZCA9IGZpbHRlciggaXRlbSwgbWF0Y2gsIGksIGN1ckxvb3AgKTsKKwkJCQkJCQl2YXIgcGFzcyA9
IG5vdCBeICEhZm91bmQ7CisKKwkJCQkJCQlpZiAoIGlucGxhY2UgJiYgZm91bmQgIT0gbnVsbCAp
IHsKKwkJCQkJCQkJaWYgKCBwYXNzICkgeworCQkJCQkJCQkJYW55Rm91bmQgPSB0cnVlOworCQkJ
CQkJCQl9IGVsc2UgeworCQkJCQkJCQkJY3VyTG9vcFtpXSA9IGZhbHNlOworCQkJCQkJCQl9CisJ
CQkJCQkJfSBlbHNlIGlmICggcGFzcyApIHsKKwkJCQkJCQkJcmVzdWx0LnB1c2goIGl0ZW0gKTsK
KwkJCQkJCQkJYW55Rm91bmQgPSB0cnVlOworCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJfQorCQkJ
CX0KKworCQkJCWlmICggZm91bmQgIT09IHVuZGVmaW5lZCApIHsKKwkJCQkJaWYgKCAhaW5wbGFj
ZSApIHsKKwkJCQkJCWN1ckxvb3AgPSByZXN1bHQ7CisJCQkJCX0KKworCQkJCQlleHByID0gZXhw
ci5yZXBsYWNlKCBFeHByLm1hdGNoWyB0eXBlIF0sICIiICk7CisKKwkJCQkJaWYgKCAhYW55Rm91
bmQgKSB7CisJCQkJCQlyZXR1cm4gW107CisJCQkJCX0KKworCQkJCQlicmVhazsKKwkJCQl9CisJ
CQl9CisJCX0KKworCQkvLyBJbXByb3BlciBleHByZXNzaW9uCisJCWlmICggZXhwciA9PSBvbGQg
KSB7CisJCQlpZiAoIGFueUZvdW5kID09IG51bGwgKSB7CisJCQkJdGhyb3cgIlN5bnRheCBlcnJv
ciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIgKyBleHByOworCQkJfSBlbHNlIHsKKwkJCQli
cmVhazsKKwkJCX0KKwkJfQorCisJCW9sZCA9IGV4cHI7CisJfQorCisJcmV0dXJuIGN1ckxvb3A7
Cit9OworCit2YXIgRXhwciA9IFNpenpsZS5zZWxlY3RvcnMgPSB7CisJb3JkZXI6IFsgIklEIiwg
Ik5BTUUiLCAiVEFHIiBdLAorCW1hdGNoOiB7CisJCUlEOiAvIygoPzpbXHdcdTAwYzAtXHVGRkZG
Xy1dfFxcLikrKS8sCisJCUNMQVNTOiAvXC4oKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKykv
LAorCQlOQU1FOiAvXFtuYW1lPVsnIl0qKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspWyci
XSpcXS8sCisJCUFUVFI6IC9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/
OihcUz89KVxzKihbJyJdKikoLio/KVwzfClccypcXS8sCisJCVRBRzogL14oKD86W1x3XHUwMGMw
LVx1RkZGRlwqXy1dfFxcLikrKS8sCisJCUNISUxEOiAvOihvbmx5fG50aHxsYXN0fGZpcnN0KS1j
aGlsZCg/OlwoKGV2ZW58b2RkfFtcZG4rLV0qKVwpKT8vLAorCQlQT1M6IC86KG50aHxlcXxndHxs
dHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sCisJCVBTRVVE
TzogLzooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKykoPzpcKChbJyJdKikoKD86XChbXlwp
XStcKXxbXlwyXChcKV0qKSspXDJcKSk/LworCX0sCisJYXR0ck1hcDogeworCQkiY2xhc3MiOiAi
Y2xhc3NOYW1lIiwKKwkJImZvciI6ICJodG1sRm9yIgorCX0sCisJYXR0ckhhbmRsZTogeworCQlo
cmVmOiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSgiaHJlZiIp
OworCQl9CisJfSwKKwlyZWxhdGl2ZTogeworCQkiKyI6IGZ1bmN0aW9uKGNoZWNrU2V0LCBwYXJ0
LCBpc1hNTCl7CisJCQl2YXIgaXNQYXJ0U3RyID0gdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciLAor
CQkJCWlzVGFnID0gaXNQYXJ0U3RyICYmICEvXFcvLnRlc3QocGFydCksCisJCQkJaXNQYXJ0U3Ry
Tm90VGFnID0gaXNQYXJ0U3RyICYmICFpc1RhZzsKKworCQkJaWYgKCBpc1RhZyAmJiAhaXNYTUwg
KSB7CisJCQkJcGFydCA9IHBhcnQudG9VcHBlckNhc2UoKTsKKwkJCX0KKworCQkJZm9yICggdmFy
IGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3RoLCBlbGVtOyBpIDwgbDsgaSsrICkgeworCQkJCWlm
ICggKGVsZW0gPSBjaGVja1NldFtpXSkgKSB7CisJCQkJCXdoaWxlICggKGVsZW0gPSBlbGVtLnBy
ZXZpb3VzU2libGluZykgJiYgZWxlbS5ub2RlVHlwZSAhPT0gMSApIHt9CisKKwkJCQkJY2hlY2tT
ZXRbaV0gPSBpc1BhcnRTdHJOb3RUYWcgfHwgZWxlbSAmJiBlbGVtLm5vZGVOYW1lID09PSBwYXJ0
ID8KKwkJCQkJCWVsZW0gfHwgZmFsc2UgOgorCQkJCQkJZWxlbSA9PT0gcGFydDsKKwkJCQl9CisJ
CQl9CisKKwkJCWlmICggaXNQYXJ0U3RyTm90VGFnICkgeworCQkJCVNpenpsZS5maWx0ZXIoIHBh
cnQsIGNoZWNrU2V0LCB0cnVlICk7CisJCQl9CisJCX0sCisJCSI+IjogZnVuY3Rpb24oY2hlY2tT
ZXQsIHBhcnQsIGlzWE1MKXsKKwkJCXZhciBpc1BhcnRTdHIgPSB0eXBlb2YgcGFydCA9PT0gInN0
cmluZyI7CisKKwkJCWlmICggaXNQYXJ0U3RyICYmICEvXFcvLnRlc3QocGFydCkgKSB7CisJCQkJ
cGFydCA9IGlzWE1MID8gcGFydCA6IHBhcnQudG9VcHBlckNhc2UoKTsKKworCQkJCWZvciAoIHZh
ciBpID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKKwkJCQkJdmFyIGVs
ZW0gPSBjaGVja1NldFtpXTsKKwkJCQkJaWYgKCBlbGVtICkgeworCQkJCQkJdmFyIHBhcmVudCA9
IGVsZW0ucGFyZW50Tm9kZTsKKwkJCQkJCWNoZWNrU2V0W2ldID0gcGFyZW50Lm5vZGVOYW1lID09
PSBwYXJ0ID8gcGFyZW50IDogZmFsc2U7CisJCQkJCX0KKwkJCQl9CisJCQl9IGVsc2UgeworCQkJ
CWZvciAoIHZhciBpID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKKwkJ
CQkJdmFyIGVsZW0gPSBjaGVja1NldFtpXTsKKwkJCQkJaWYgKCBlbGVtICkgeworCQkJCQkJY2hl
Y2tTZXRbaV0gPSBpc1BhcnRTdHIgPworCQkJCQkJCWVsZW0ucGFyZW50Tm9kZSA6CisJCQkJCQkJ
ZWxlbS5wYXJlbnROb2RlID09PSBwYXJ0OworCQkJCQl9CisJCQkJfQorCisJCQkJaWYgKCBpc1Bh
cnRTdHIgKSB7CisJCQkJCVNpenpsZS5maWx0ZXIoIHBhcnQsIGNoZWNrU2V0LCB0cnVlICk7CisJ
CQkJfQorCQkJfQorCQl9LAorCQkiIjogZnVuY3Rpb24oY2hlY2tTZXQsIHBhcnQsIGlzWE1MKXsK
KwkJCXZhciBkb25lTmFtZSA9IGRvbmUrKywgY2hlY2tGbiA9IGRpckNoZWNrOworCisJCQlpZiAo
ICFwYXJ0Lm1hdGNoKC9cVy8pICkgeworCQkJCXZhciBub2RlQ2hlY2sgPSBwYXJ0ID0gaXNYTUwg
PyBwYXJ0IDogcGFydC50b1VwcGVyQ2FzZSgpOworCQkJCWNoZWNrRm4gPSBkaXJOb2RlQ2hlY2s7
CisJCQl9CisKKwkJCWNoZWNrRm4oInBhcmVudE5vZGUiLCBwYXJ0LCBkb25lTmFtZSwgY2hlY2tT
ZXQsIG5vZGVDaGVjaywgaXNYTUwpOworCQl9LAorCQkifiI6IGZ1bmN0aW9uKGNoZWNrU2V0LCBw
YXJ0LCBpc1hNTCl7CisJCQl2YXIgZG9uZU5hbWUgPSBkb25lKyssIGNoZWNrRm4gPSBkaXJDaGVj
azsKKworCQkJaWYgKCB0eXBlb2YgcGFydCA9PT0gInN0cmluZyIgJiYgIXBhcnQubWF0Y2goL1xX
LykgKSB7CisJCQkJdmFyIG5vZGVDaGVjayA9IHBhcnQgPSBpc1hNTCA/IHBhcnQgOiBwYXJ0LnRv
VXBwZXJDYXNlKCk7CisJCQkJY2hlY2tGbiA9IGRpck5vZGVDaGVjazsKKwkJCX0KKworCQkJY2hl
Y2tGbigicHJldmlvdXNTaWJsaW5nIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hl
Y2ssIGlzWE1MKTsKKwkJfQorCX0sCisJZmluZDogeworCQlJRDogZnVuY3Rpb24obWF0Y2gsIGNv
bnRleHQsIGlzWE1MKXsKKwkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09
ICJ1bmRlZmluZWQiICYmICFpc1hNTCApIHsKKwkJCQl2YXIgbSA9IGNvbnRleHQuZ2V0RWxlbWVu
dEJ5SWQobWF0Y2hbMV0pOworCQkJCXJldHVybiBtID8gW21dIDogW107CisJCQl9CisJCX0sCisJ
CU5BTUU6IGZ1bmN0aW9uKG1hdGNoLCBjb250ZXh0LCBpc1hNTCl7CisJCQlpZiAoIHR5cGVvZiBj
b250ZXh0LmdldEVsZW1lbnRzQnlOYW1lICE9PSAidW5kZWZpbmVkIiApIHsKKwkJCQl2YXIgcmV0
ID0gW10sIHJlc3VsdHMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKG1hdGNoWzFdKTsKKwor
CQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHJlc3VsdHMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewor
CQkJCQlpZiAoIHJlc3VsdHNbaV0uZ2V0QXR0cmlidXRlKCJuYW1lIikgPT09IG1hdGNoWzFdICkg
eworCQkJCQkJcmV0LnB1c2goIHJlc3VsdHNbaV0gKTsKKwkJCQkJfQorCQkJCX0KKworCQkJCXJl
dHVybiByZXQubGVuZ3RoID09PSAwID8gbnVsbCA6IHJldDsKKwkJCX0KKwkJfSwKKwkJVEFHOiBm
dW5jdGlvbihtYXRjaCwgY29udGV4dCl7CisJCQlyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5
VGFnTmFtZShtYXRjaFsxXSk7CisJCX0KKwl9LAorCXByZUZpbHRlcjogeworCQlDTEFTUzogZnVu
Y3Rpb24obWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCl7CisJCQlt
YXRjaCA9ICIgIiArIG1hdGNoWzFdLnJlcGxhY2UoL1xcL2csICIiKSArICIgIjsKKworCQkJaWYg
KCBpc1hNTCApIHsKKwkJCQlyZXR1cm4gbWF0Y2g7CisJCQl9CisKKwkJCWZvciAoIHZhciBpID0g
MCwgZWxlbTsgKGVsZW0gPSBjdXJMb29wW2ldKSAhPSBudWxsOyBpKysgKSB7CisJCQkJaWYgKCBl
bGVtICkgeworCQkJCQlpZiAoIG5vdCBeIChlbGVtLmNsYXNzTmFtZSAmJiAoIiAiICsgZWxlbS5j
bGFzc05hbWUgKyAiICIpLmluZGV4T2YobWF0Y2gpID49IDApICkgeworCQkJCQkJaWYgKCAhaW5w
bGFjZSApCisJCQkJCQkJcmVzdWx0LnB1c2goIGVsZW0gKTsKKwkJCQkJfSBlbHNlIGlmICggaW5w
bGFjZSApIHsKKwkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKKwkJCQkJfQorCQkJCX0KKwkJCX0K
KworCQkJcmV0dXJuIGZhbHNlOworCQl9LAorCQlJRDogZnVuY3Rpb24obWF0Y2gpeworCQkJcmV0
dXJuIG1hdGNoWzFdLnJlcGxhY2UoL1xcL2csICIiKTsKKwkJfSwKKwkJVEFHOiBmdW5jdGlvbiht
YXRjaCwgY3VyTG9vcCl7CisJCQlmb3IgKCB2YXIgaSA9IDA7IGN1ckxvb3BbaV0gPT09IGZhbHNl
OyBpKysgKXt9CisJCQlyZXR1cm4gY3VyTG9vcFtpXSAmJiBpc1hNTChjdXJMb29wW2ldKSA/IG1h
dGNoWzFdIDogbWF0Y2hbMV0udG9VcHBlckNhc2UoKTsKKwkJfSwKKwkJQ0hJTEQ6IGZ1bmN0aW9u
KG1hdGNoKXsKKwkJCWlmICggbWF0Y2hbMV0gPT0gIm50aCIgKSB7CisJCQkJLy8gcGFyc2UgZXF1
YXRpb25zIGxpa2UgJ2V2ZW4nLCAnb2RkJywgJzUnLCAnMm4nLCAnM24rMicsICc0bi0xJywgJy1u
KzYnCisJCQkJdmFyIHRlc3QgPSAvKC0/KShcZCopbigoPzpcK3wtKT9cZCopLy5leGVjKAorCQkJ
CQltYXRjaFsyXSA9PSAiZXZlbiIgJiYgIjJuIiB8fCBtYXRjaFsyXSA9PSAib2RkIiAmJiAiMm4r
MSIgfHwKKwkJCQkJIS9cRC8udGVzdCggbWF0Y2hbMl0gKSAmJiAiMG4rIiArIG1hdGNoWzJdIHx8
IG1hdGNoWzJdKTsKKworCQkJCS8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVycyAoZmlyc3QpbisobGFz
dCkgaW5jbHVkaW5nIGlmIHRoZXkgYXJlIG5lZ2F0aXZlCisJCQkJbWF0Y2hbMl0gPSAodGVzdFsx
XSArICh0ZXN0WzJdIHx8IDEpKSAtIDA7CisJCQkJbWF0Y2hbM10gPSB0ZXN0WzNdIC0gMDsKKwkJ
CX0KKworCQkJLy8gVE9ETzogTW92ZSB0byBub3JtYWwgY2FjaGluZyBzeXN0ZW0KKwkJCW1hdGNo
WzBdID0gZG9uZSsrOworCisJCQlyZXR1cm4gbWF0Y2g7CisJCX0sCisJCUFUVFI6IGZ1bmN0aW9u
KG1hdGNoLCBjdXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNYTUwpeworCQkJdmFyIG5h
bWUgPSBtYXRjaFsxXS5yZXBsYWNlKC9cXC9nLCAiIik7CisJCQkKKwkJCWlmICggIWlzWE1MICYm
IEV4cHIuYXR0ck1hcFtuYW1lXSApIHsKKwkJCQltYXRjaFsxXSA9IEV4cHIuYXR0ck1hcFtuYW1l
XTsKKwkJCX0KKworCQkJaWYgKCBtYXRjaFsyXSA9PT0gIn49IiApIHsKKwkJCQltYXRjaFs0XSA9
ICIgIiArIG1hdGNoWzRdICsgIiAiOworCQkJfQorCisJCQlyZXR1cm4gbWF0Y2g7CisJCX0sCisJ
CVBTRVVETzogZnVuY3Rpb24obWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90KXsK
KwkJCWlmICggbWF0Y2hbMV0gPT09ICJub3QiICkgeworCQkJCS8vIElmIHdlJ3JlIGRlYWxpbmcg
d2l0aCBhIGNvbXBsZXggZXhwcmVzc2lvbiwgb3IgYSBzaW1wbGUgb25lCisJCQkJaWYgKCBtYXRj
aFszXS5tYXRjaChjaHVua2VyKS5sZW5ndGggPiAxIHx8IC9eXHcvLnRlc3QobWF0Y2hbM10pICkg
eworCQkJCQltYXRjaFszXSA9IFNpenpsZShtYXRjaFszXSwgbnVsbCwgbnVsbCwgY3VyTG9vcCk7
CisJCQkJfSBlbHNlIHsKKwkJCQkJdmFyIHJldCA9IFNpenpsZS5maWx0ZXIobWF0Y2hbM10sIGN1
ckxvb3AsIGlucGxhY2UsIHRydWUgXiBub3QpOworCQkJCQlpZiAoICFpbnBsYWNlICkgeworCQkJ
CQkJcmVzdWx0LnB1c2guYXBwbHkoIHJlc3VsdCwgcmV0ICk7CisJCQkJCX0KKwkJCQkJcmV0dXJu
IGZhbHNlOworCQkJCX0KKwkJCX0gZWxzZSBpZiAoIEV4cHIubWF0Y2guUE9TLnRlc3QoIG1hdGNo
WzBdICkgfHwgRXhwci5tYXRjaC5DSElMRC50ZXN0KCBtYXRjaFswXSApICkgeworCQkJCXJldHVy
biB0cnVlOworCQkJfQorCQkJCisJCQlyZXR1cm4gbWF0Y2g7CisJCX0sCisJCVBPUzogZnVuY3Rp
b24obWF0Y2gpeworCQkJbWF0Y2gudW5zaGlmdCggdHJ1ZSApOworCQkJcmV0dXJuIG1hdGNoOwor
CQl9CisJfSwKKwlmaWx0ZXJzOiB7CisJCWVuYWJsZWQ6IGZ1bmN0aW9uKGVsZW0peworCQkJcmV0
dXJuIGVsZW0uZGlzYWJsZWQgPT09IGZhbHNlICYmIGVsZW0udHlwZSAhPT0gImhpZGRlbiI7CisJ
CX0sCisJCWRpc2FibGVkOiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiBlbGVtLmRpc2FibGVk
ID09PSB0cnVlOworCQl9LAorCQljaGVja2VkOiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiBl
bGVtLmNoZWNrZWQgPT09IHRydWU7CisJCX0sCisJCXNlbGVjdGVkOiBmdW5jdGlvbihlbGVtKXsK
KwkJCS8vIEFjY2Vzc2luZyB0aGlzIHByb3BlcnR5IG1ha2VzIHNlbGVjdGVkLWJ5LWRlZmF1bHQK
KwkJCS8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHkKKwkJCWVsZW0ucGFyZW50Tm9k
ZS5zZWxlY3RlZEluZGV4OworCQkJcmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7CisJCX0s
CisJCXBhcmVudDogZnVuY3Rpb24oZWxlbSl7CisJCQlyZXR1cm4gISFlbGVtLmZpcnN0Q2hpbGQ7
CisJCX0sCisJCWVtcHR5OiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAhZWxlbS5maXJzdENo
aWxkOworCQl9LAorCQloYXM6IGZ1bmN0aW9uKGVsZW0sIGksIG1hdGNoKXsKKwkJCXJldHVybiAh
IVNpenpsZSggbWF0Y2hbM10sIGVsZW0gKS5sZW5ndGg7CisJCX0sCisJCWhlYWRlcjogZnVuY3Rp
b24oZWxlbSl7CisJCQlyZXR1cm4gL2hcZC9pLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTsKKwkJfSwK
KwkJdGV4dDogZnVuY3Rpb24oZWxlbSl7CisJCQlyZXR1cm4gInRleHQiID09PSBlbGVtLnR5cGU7
CisJCX0sCisJCXJhZGlvOiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAicmFkaW8iID09PSBl
bGVtLnR5cGU7CisJCX0sCisJCWNoZWNrYm94OiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAi
Y2hlY2tib3giID09PSBlbGVtLnR5cGU7CisJCX0sCisJCWZpbGU6IGZ1bmN0aW9uKGVsZW0pewor
CQkJcmV0dXJuICJmaWxlIiA9PT0gZWxlbS50eXBlOworCQl9LAorCQlwYXNzd29yZDogZnVuY3Rp
b24oZWxlbSl7CisJCQlyZXR1cm4gInBhc3N3b3JkIiA9PT0gZWxlbS50eXBlOworCQl9LAorCQlz
dWJtaXQ6IGZ1bmN0aW9uKGVsZW0peworCQkJcmV0dXJuICJzdWJtaXQiID09PSBlbGVtLnR5cGU7
CisJCX0sCisJCWltYWdlOiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAiaW1hZ2UiID09PSBl
bGVtLnR5cGU7CisJCX0sCisJCXJlc2V0OiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAicmVz
ZXQiID09PSBlbGVtLnR5cGU7CisJCX0sCisJCWJ1dHRvbjogZnVuY3Rpb24oZWxlbSl7CisJCQly
ZXR1cm4gImJ1dHRvbiIgPT09IGVsZW0udHlwZSB8fCBlbGVtLm5vZGVOYW1lLnRvVXBwZXJDYXNl
KCkgPT09ICJCVVRUT04iOworCQl9LAorCQlpbnB1dDogZnVuY3Rpb24oZWxlbSl7CisJCQlyZXR1
cm4gL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGVsZW0ubm9kZU5hbWUpOwor
CQl9CisJfSwKKwlzZXRGaWx0ZXJzOiB7CisJCWZpcnN0OiBmdW5jdGlvbihlbGVtLCBpKXsKKwkJ
CXJldHVybiBpID09PSAwOworCQl9LAorCQlsYXN0OiBmdW5jdGlvbihlbGVtLCBpLCBtYXRjaCwg
YXJyYXkpeworCQkJcmV0dXJuIGkgPT09IGFycmF5Lmxlbmd0aCAtIDE7CisJCX0sCisJCWV2ZW46
IGZ1bmN0aW9uKGVsZW0sIGkpeworCQkJcmV0dXJuIGkgJSAyID09PSAwOworCQl9LAorCQlvZGQ6
IGZ1bmN0aW9uKGVsZW0sIGkpeworCQkJcmV0dXJuIGkgJSAyID09PSAxOworCQl9LAorCQlsdDog
ZnVuY3Rpb24oZWxlbSwgaSwgbWF0Y2gpeworCQkJcmV0dXJuIGkgPCBtYXRjaFszXSAtIDA7CisJ
CX0sCisJCWd0OiBmdW5jdGlvbihlbGVtLCBpLCBtYXRjaCl7CisJCQlyZXR1cm4gaSA+IG1hdGNo
WzNdIC0gMDsKKwkJfSwKKwkJbnRoOiBmdW5jdGlvbihlbGVtLCBpLCBtYXRjaCl7CisJCQlyZXR1
cm4gbWF0Y2hbM10gLSAwID09IGk7CisJCX0sCisJCWVxOiBmdW5jdGlvbihlbGVtLCBpLCBtYXRj
aCl7CisJCQlyZXR1cm4gbWF0Y2hbM10gLSAwID09IGk7CisJCX0KKwl9LAorCWZpbHRlcjogewor
CQlQU0VVRE86IGZ1bmN0aW9uKGVsZW0sIG1hdGNoLCBpLCBhcnJheSl7CisJCQl2YXIgbmFtZSA9
IG1hdGNoWzFdLCBmaWx0ZXIgPSBFeHByLmZpbHRlcnNbIG5hbWUgXTsKKworCQkJaWYgKCBmaWx0
ZXIgKSB7CisJCQkJcmV0dXJuIGZpbHRlciggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICk7CisJCQl9
IGVsc2UgaWYgKCBuYW1lID09PSAiY29udGFpbnMiICkgeworCQkJCXJldHVybiAoZWxlbS50ZXh0
Q29udGVudCB8fCBlbGVtLmlubmVyVGV4dCB8fCAiIikuaW5kZXhPZihtYXRjaFszXSkgPj0gMDsK
KwkJCX0gZWxzZSBpZiAoIG5hbWUgPT09ICJub3QiICkgeworCQkJCXZhciBub3QgPSBtYXRjaFsz
XTsKKworCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IG5vdC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7
CisJCQkJCWlmICggbm90W2ldID09PSBlbGVtICkgeworCQkJCQkJcmV0dXJuIGZhbHNlOworCQkJ
CQl9CisJCQkJfQorCisJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCX0sCisJCUNISUxEOiBmdW5j
dGlvbihlbGVtLCBtYXRjaCl7CisJCQl2YXIgdHlwZSA9IG1hdGNoWzFdLCBub2RlID0gZWxlbTsK
KwkJCXN3aXRjaCAodHlwZSkgeworCQkJCWNhc2UgJ29ubHknOgorCQkJCWNhc2UgJ2ZpcnN0JzoK
KwkJCQkJd2hpbGUgKG5vZGUgPSBub2RlLnByZXZpb3VzU2libGluZykgIHsKKwkJCQkJCWlmICgg
bm9kZS5ub2RlVHlwZSA9PT0gMSApIHJldHVybiBmYWxzZTsKKwkJCQkJfQorCQkJCQlpZiAoIHR5
cGUgPT0gJ2ZpcnN0JykgcmV0dXJuIHRydWU7CisJCQkJCW5vZGUgPSBlbGVtOworCQkJCWNhc2Ug
J2xhc3QnOgorCQkJCQl3aGlsZSAobm9kZSA9IG5vZGUubmV4dFNpYmxpbmcpICB7CisJCQkJCQlp
ZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSByZXR1cm4gZmFsc2U7CisJCQkJCX0KKwkJCQkJcmV0
dXJuIHRydWU7CisJCQkJY2FzZSAnbnRoJzoKKwkJCQkJdmFyIGZpcnN0ID0gbWF0Y2hbMl0sIGxh
c3QgPSBtYXRjaFszXTsKKworCQkJCQlpZiAoIGZpcnN0ID09IDEgJiYgbGFzdCA9PSAwICkgewor
CQkJCQkJcmV0dXJuIHRydWU7CisJCQkJCX0KKwkJCQkJCisJCQkJCXZhciBkb25lTmFtZSA9IG1h
dGNoWzBdLAorCQkJCQkJcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOworCQorCQkJCQlpZiAoIHBh
cmVudCAmJiAocGFyZW50LnNpemNhY2hlICE9PSBkb25lTmFtZSB8fCAhZWxlbS5ub2RlSW5kZXgp
ICkgeworCQkJCQkJdmFyIGNvdW50ID0gMDsKKwkJCQkJCWZvciAoIG5vZGUgPSBwYXJlbnQuZmly
c3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcgKSB7CisJCQkJCQkJaWYgKCBu
b2RlLm5vZGVUeXBlID09PSAxICkgeworCQkJCQkJCQlub2RlLm5vZGVJbmRleCA9ICsrY291bnQ7
CisJCQkJCQkJfQorCQkJCQkJfSAKKwkJCQkJCXBhcmVudC5zaXpjYWNoZSA9IGRvbmVOYW1lOwor
CQkJCQl9CisJCQkJCQorCQkJCQl2YXIgZGlmZiA9IGVsZW0ubm9kZUluZGV4IC0gbGFzdDsKKwkJ
CQkJaWYgKCBmaXJzdCA9PSAwICkgeworCQkJCQkJcmV0dXJuIGRpZmYgPT0gMDsKKwkJCQkJfSBl
bHNlIHsKKwkJCQkJCXJldHVybiAoIGRpZmYgJSBmaXJzdCA9PSAwICYmIGRpZmYgLyBmaXJzdCA+
PSAwICk7CisJCQkJCX0KKwkJCX0KKwkJfSwKKwkJSUQ6IGZ1bmN0aW9uKGVsZW0sIG1hdGNoKXsK
KwkJCXJldHVybiBlbGVtLm5vZGVUeXBlID09PSAxICYmIGVsZW0uZ2V0QXR0cmlidXRlKCJpZCIp
ID09PSBtYXRjaDsKKwkJfSwKKwkJVEFHOiBmdW5jdGlvbihlbGVtLCBtYXRjaCl7CisJCQlyZXR1
cm4gKG1hdGNoID09PSAiKiIgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSkgfHwgZWxlbS5ub2RlTmFt
ZSA9PT0gbWF0Y2g7CisJCX0sCisJCUNMQVNTOiBmdW5jdGlvbihlbGVtLCBtYXRjaCl7CisJCQly
ZXR1cm4gKCIgIiArIChlbGVtLmNsYXNzTmFtZSB8fCBlbGVtLmdldEF0dHJpYnV0ZSgiY2xhc3Mi
KSkgKyAiICIpCisJCQkJLmluZGV4T2YoIG1hdGNoICkgPiAtMTsKKwkJfSwKKwkJQVRUUjogZnVu
Y3Rpb24oZWxlbSwgbWF0Y2gpeworCQkJdmFyIG5hbWUgPSBtYXRjaFsxXSwKKwkJCQlyZXN1bHQg
PSBFeHByLmF0dHJIYW5kbGVbIG5hbWUgXSA/CisJCQkJCUV4cHIuYXR0ckhhbmRsZVsgbmFtZSBd
KCBlbGVtICkgOgorCQkJCQllbGVtWyBuYW1lIF0gIT0gbnVsbCA/CisJCQkJCQllbGVtWyBuYW1l
IF0gOgorCQkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSwKKwkJCQl2YWx1ZSA9IHJlc3Vs
dCArICIiLAorCQkJCXR5cGUgPSBtYXRjaFsyXSwKKwkJCQljaGVjayA9IG1hdGNoWzRdOworCisJ
CQlyZXR1cm4gcmVzdWx0ID09IG51bGwgPworCQkJCXR5cGUgPT09ICIhPSIgOgorCQkJCXR5cGUg
PT09ICI9IiA/CisJCQkJdmFsdWUgPT09IGNoZWNrIDoKKwkJCQl0eXBlID09PSAiKj0iID8KKwkJ
CQl2YWx1ZS5pbmRleE9mKGNoZWNrKSA+PSAwIDoKKwkJCQl0eXBlID09PSAifj0iID8KKwkJCQko
IiAiICsgdmFsdWUgKyAiICIpLmluZGV4T2YoY2hlY2spID49IDAgOgorCQkJCSFjaGVjayA/CisJ
CQkJdmFsdWUgJiYgcmVzdWx0ICE9PSBmYWxzZSA6CisJCQkJdHlwZSA9PT0gIiE9IiA/CisJCQkJ
dmFsdWUgIT0gY2hlY2sgOgorCQkJCXR5cGUgPT09ICJePSIgPworCQkJCXZhbHVlLmluZGV4T2Yo
Y2hlY2spID09PSAwIDoKKwkJCQl0eXBlID09PSAiJD0iID8KKwkJCQl2YWx1ZS5zdWJzdHIodmFs
dWUubGVuZ3RoIC0gY2hlY2subGVuZ3RoKSA9PT0gY2hlY2sgOgorCQkJCXR5cGUgPT09ICJ8PSIg
PworCQkJCXZhbHVlID09PSBjaGVjayB8fCB2YWx1ZS5zdWJzdHIoMCwgY2hlY2subGVuZ3RoICsg
MSkgPT09IGNoZWNrICsgIi0iIDoKKwkJCQlmYWxzZTsKKwkJfSwKKwkJUE9TOiBmdW5jdGlvbihl
bGVtLCBtYXRjaCwgaSwgYXJyYXkpeworCQkJdmFyIG5hbWUgPSBtYXRjaFsyXSwgZmlsdGVyID0g
RXhwci5zZXRGaWx0ZXJzWyBuYW1lIF07CisKKwkJCWlmICggZmlsdGVyICkgeworCQkJCXJldHVy
biBmaWx0ZXIoIGVsZW0sIGksIG1hdGNoLCBhcnJheSApOworCQkJfQorCQl9CisJfQorfTsKKwor
dmFyIG9yaWdQT1MgPSBFeHByLm1hdGNoLlBPUzsKKworZm9yICggdmFyIHR5cGUgaW4gRXhwci5t
YXRjaCApIHsKKwlFeHByLm1hdGNoWyB0eXBlIF0gPSBSZWdFeHAoIEV4cHIubWF0Y2hbIHR5cGUg
XS5zb3VyY2UgKyAvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UgKTsKK30KKwordmFy
IG1ha2VBcnJheSA9IGZ1bmN0aW9uKGFycmF5LCByZXN1bHRzKSB7CisJYXJyYXkgPSBBcnJheS5w
cm90b3R5cGUuc2xpY2UuY2FsbCggYXJyYXkgKTsKKworCWlmICggcmVzdWx0cyApIHsKKwkJcmVz
dWx0cy5wdXNoLmFwcGx5KCByZXN1bHRzLCBhcnJheSApOworCQlyZXR1cm4gcmVzdWx0czsKKwl9
CisJCisJcmV0dXJuIGFycmF5OworfTsKKworLy8gUGVyZm9ybSBhIHNpbXBsZSBjaGVjayB0byBk
ZXRlcm1pbmUgaWYgdGhlIGJyb3dzZXIgaXMgY2FwYWJsZSBvZgorLy8gY29udmVydGluZyBhIE5v
ZGVMaXN0IHRvIGFuIGFycmF5IHVzaW5nIGJ1aWx0aW4gbWV0aG9kcy4KK3RyeSB7CisJQXJyYXku
cHJvdG90eXBlLnNsaWNlLmNhbGwoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVz
ICk7CisKKy8vIFByb3ZpZGUgYSBmYWxsYmFjayBtZXRob2QgaWYgaXQgZG9lcyBub3Qgd29yawor
fSBjYXRjaChlKXsKKwltYWtlQXJyYXkgPSBmdW5jdGlvbihhcnJheSwgcmVzdWx0cykgeworCQl2
YXIgcmV0ID0gcmVzdWx0cyB8fCBbXTsKKworCQlpZiAoIHRvU3RyaW5nLmNhbGwoYXJyYXkpID09
PSAiW29iamVjdCBBcnJheV0iICkgeworCQkJQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoIHJl
dCwgYXJyYXkgKTsKKwkJfSBlbHNlIHsKKwkJCWlmICggdHlwZW9mIGFycmF5Lmxlbmd0aCA9PT0g
Im51bWJlciIgKSB7CisJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gYXJyYXkubGVuZ3RoOyBpIDwg
bDsgaSsrICkgeworCQkJCQlyZXQucHVzaCggYXJyYXlbaV0gKTsKKwkJCQl9CisJCQl9IGVsc2Ug
eworCQkJCWZvciAoIHZhciBpID0gMDsgYXJyYXlbaV07IGkrKyApIHsKKwkJCQkJcmV0LnB1c2go
IGFycmF5W2ldICk7CisJCQkJfQorCQkJfQorCQl9CisKKwkJcmV0dXJuIHJldDsKKwl9OworfQor
Cit2YXIgc29ydE9yZGVyOworCitpZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb21wYXJl
RG9jdW1lbnRQb3NpdGlvbiApIHsKKwlzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHsKKwkJ
dmFyIHJldCA9IGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikgJiA0ID8gLTEgOiBhID09PSBi
ID8gMCA6IDE7CisJCWlmICggcmV0ID09PSAwICkgeworCQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsK
KwkJfQorCQlyZXR1cm4gcmV0OworCX07Cit9IGVsc2UgaWYgKCAic291cmNlSW5kZXgiIGluIGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudCApIHsKKwlzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiAp
IHsKKwkJdmFyIHJldCA9IGEuc291cmNlSW5kZXggLSBiLnNvdXJjZUluZGV4OworCQlpZiAoIHJl
dCA9PT0gMCApIHsKKwkJCWhhc0R1cGxpY2F0ZSA9IHRydWU7CisJCX0KKwkJcmV0dXJuIHJldDsK
Kwl9OworfSBlbHNlIGlmICggZG9jdW1lbnQuY3JlYXRlUmFuZ2UgKSB7CisJc29ydE9yZGVyID0g
ZnVuY3Rpb24oIGEsIGIgKSB7CisJCXZhciBhUmFuZ2UgPSBhLm93bmVyRG9jdW1lbnQuY3JlYXRl
UmFuZ2UoKSwgYlJhbmdlID0gYi5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisJCWFSYW5n
ZS5zZWxlY3ROb2RlKGEpOworCQlhUmFuZ2UuY29sbGFwc2UodHJ1ZSk7CisJCWJSYW5nZS5zZWxl
Y3ROb2RlKGIpOworCQliUmFuZ2UuY29sbGFwc2UodHJ1ZSk7CisJCXZhciByZXQgPSBhUmFuZ2Uu
Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RPX0VORCwgYlJhbmdlKTsKKwkJaWYg
KCByZXQgPT09IDAgKSB7CisJCQloYXNEdXBsaWNhdGUgPSB0cnVlOworCQl9CisJCXJldHVybiBy
ZXQ7CisJfTsKK30KKworLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBicm93c2VyIHJldHVybnMgZWxl
bWVudHMgYnkgbmFtZSB3aGVuCisvLyBxdWVyeWluZyBieSBnZXRFbGVtZW50QnlJZCAoYW5kIHBy
b3ZpZGUgYSB3b3JrYXJvdW5kKQorKGZ1bmN0aW9uKCl7CisJLy8gV2UncmUgZ29pbmcgdG8gaW5q
ZWN0IGEgZmFrZSBpbnB1dCBlbGVtZW50IHdpdGggYSBzcGVjaWZpZWQgbmFtZQorCXZhciBmb3Jt
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZm9ybSIpLAorCQlpZCA9ICJzY3JpcHQiICsgKG5l
dyBEYXRlKS5nZXRUaW1lKCk7CisJZm9ybS5pbm5lckhUTUwgPSAiPGlucHV0IG5hbWU9JyIgKyBp
ZCArICInLz4iOworCisJLy8gSW5qZWN0IGl0IGludG8gdGhlIHJvb3QgZWxlbWVudCwgY2hlY2sg
aXRzIHN0YXR1cywgYW5kIHJlbW92ZSBpdCBxdWlja2x5CisJdmFyIHJvb3QgPSBkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQ7CisJcm9vdC5pbnNlcnRCZWZvcmUoIGZvcm0sIHJvb3QuZmlyc3RDaGls
ZCApOworCisJLy8gVGhlIHdvcmthcm91bmQgaGFzIHRvIGRvIGFkZGl0aW9uYWwgY2hlY2tzIGFm
dGVyIGEgZ2V0RWxlbWVudEJ5SWQKKwkvLyBXaGljaCBzbG93cyB0aGluZ3MgZG93biBmb3Igb3Ro
ZXIgYnJvd3NlcnMgKGhlbmNlIHRoZSBicmFuY2hpbmcpCisJaWYgKCAhIWRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCBpZCApICkgeworCQlFeHByLmZpbmQuSUQgPSBmdW5jdGlvbihtYXRjaCwgY29u
dGV4dCwgaXNYTUwpeworCQkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0g
InVuZGVmaW5lZCIgJiYgIWlzWE1MICkgeworCQkJCXZhciBtID0gY29udGV4dC5nZXRFbGVtZW50
QnlJZChtYXRjaFsxXSk7CisJCQkJcmV0dXJuIG0gPyBtLmlkID09PSBtYXRjaFsxXSB8fCB0eXBl
b2YgbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSAidW5kZWZpbmVkIiAmJiBtLmdldEF0dHJpYnV0ZU5v
ZGUoImlkIikubm9kZVZhbHVlID09PSBtYXRjaFsxXSA/IFttXSA6IHVuZGVmaW5lZCA6IFtdOwor
CQkJfQorCQl9OworCisJCUV4cHIuZmlsdGVyLklEID0gZnVuY3Rpb24oZWxlbSwgbWF0Y2gpewor
CQkJdmFyIG5vZGUgPSB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSAidW5kZWZpbmVk
IiAmJiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7CisJCQlyZXR1cm4gZWxlbS5ub2RlVHlw
ZSA9PT0gMSAmJiBub2RlICYmIG5vZGUubm9kZVZhbHVlID09PSBtYXRjaDsKKwkJfTsKKwl9CisK
Kwlyb290LnJlbW92ZUNoaWxkKCBmb3JtICk7Cit9KSgpOworCisoZnVuY3Rpb24oKXsKKwkvLyBD
aGVjayB0byBzZWUgaWYgdGhlIGJyb3dzZXIgcmV0dXJucyBvbmx5IGVsZW1lbnRzCisJLy8gd2hl
biBkb2luZyBnZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpCisKKwkvLyBDcmVhdGUgYSBmYWtlIGVs
ZW1lbnQKKwl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisJZGl2LmFw
cGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSApOworCisJLy8gTWFrZSBzdXJl
IG5vIGNvbW1lbnRzIGFyZSBmb3VuZAorCWlmICggZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIq
IikubGVuZ3RoID4gMCApIHsKKwkJRXhwci5maW5kLlRBRyA9IGZ1bmN0aW9uKG1hdGNoLCBjb250
ZXh0KXsKKwkJCXZhciByZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZShtYXRj
aFsxXSk7CisKKwkJCS8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHMKKwkJCWlmICggbWF0
Y2hbMV0gPT09ICIqIiApIHsKKwkJCQl2YXIgdG1wID0gW107CisKKwkJCQlmb3IgKCB2YXIgaSA9
IDA7IHJlc3VsdHNbaV07IGkrKyApIHsKKwkJCQkJaWYgKCByZXN1bHRzW2ldLm5vZGVUeXBlID09
PSAxICkgeworCQkJCQkJdG1wLnB1c2goIHJlc3VsdHNbaV0gKTsKKwkJCQkJfQorCQkJCX0KKwor
CQkJCXJlc3VsdHMgPSB0bXA7CisJCQl9CisKKwkJCXJldHVybiByZXN1bHRzOworCQl9OworCX0K
KworCS8vIENoZWNrIHRvIHNlZSBpZiBhbiBhdHRyaWJ1dGUgcmV0dXJucyBub3JtYWxpemVkIGhy
ZWYgYXR0cmlidXRlcworCWRpdi5pbm5lckhUTUwgPSAiPGEgaHJlZj0nIyc+PC9hPiI7CisJaWYg
KCBkaXYuZmlyc3RDaGlsZCAmJiB0eXBlb2YgZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlICE9
PSAidW5kZWZpbmVkIiAmJgorCQkJZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIikg
IT09ICIjIiApIHsKKwkJRXhwci5hdHRySGFuZGxlLmhyZWYgPSBmdW5jdGlvbihlbGVtKXsKKwkJ
CXJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSgiaHJlZiIsIDIpOworCQl9OworCX0KK30pKCk7CisK
K2lmICggZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCApIChmdW5jdGlvbigpeworCXZhciBvbGRT
aXp6bGUgPSBTaXp6bGUsIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworCWRp
di5pbm5lckhUTUwgPSAiPHAgY2xhc3M9J1RFU1QnPjwvcD4iOworCisJLy8gU2FmYXJpIGNhbid0
IGhhbmRsZSB1cHBlcmNhc2Ugb3IgdW5pY29kZSBjaGFyYWN0ZXJzIHdoZW4KKwkvLyBpbiBxdWly
a3MgbW9kZS4KKwlpZiAoIGRpdi5xdWVyeVNlbGVjdG9yQWxsICYmIGRpdi5xdWVyeVNlbGVjdG9y
QWxsKCIuVEVTVCIpLmxlbmd0aCA9PT0gMCApIHsKKwkJcmV0dXJuOworCX0KKwkKKwlTaXp6bGUg
PSBmdW5jdGlvbihxdWVyeSwgY29udGV4dCwgZXh0cmEsIHNlZWQpeworCQljb250ZXh0ID0gY29u
dGV4dCB8fCBkb2N1bWVudDsKKworCQkvLyBPbmx5IHVzZSBxdWVyeVNlbGVjdG9yQWxsIG9uIG5v
bi1YTUwgZG9jdW1lbnRzCisJCS8vIChJRCBzZWxlY3RvcnMgZG9uJ3Qgd29yayBpbiBub24tSFRN
TCBkb2N1bWVudHMpCisJCWlmICggIXNlZWQgJiYgY29udGV4dC5ub2RlVHlwZSA9PT0gOSAmJiAh
aXNYTUwoY29udGV4dCkgKSB7CisJCQl0cnkgeworCQkJCXJldHVybiBtYWtlQXJyYXkoIGNvbnRl
eHQucXVlcnlTZWxlY3RvckFsbChxdWVyeSksIGV4dHJhICk7CisJCQl9IGNhdGNoKGUpe30KKwkJ
fQorCQkKKwkJcmV0dXJuIG9sZFNpenpsZShxdWVyeSwgY29udGV4dCwgZXh0cmEsIHNlZWQpOwor
CX07CisKKwlTaXp6bGUuZmluZCA9IG9sZFNpenpsZS5maW5kOworCVNpenpsZS5maWx0ZXIgPSBv
bGRTaXp6bGUuZmlsdGVyOworCVNpenpsZS5zZWxlY3RvcnMgPSBvbGRTaXp6bGUuc2VsZWN0b3Jz
OworCVNpenpsZS5tYXRjaGVzID0gb2xkU2l6emxlLm1hdGNoZXM7Cit9KSgpOworCitpZiAoIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSAoZnVuY3Rpb24oKXsKKwl2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisJZGl2LmlubmVySFRNTCA9ICI8ZGl2IGNsYXNzPSd0
ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7CisKKwkvLyBPcGVyYSBjYW4n
dCBmaW5kIGEgc2Vjb25kIGNsYXNzbmFtZSAoaW4gOS42KQorCWlmICggZGl2LmdldEVsZW1lbnRz
QnlDbGFzc05hbWUoImUiKS5sZW5ndGggPT09IDAgKQorCQlyZXR1cm47CisKKwkvLyBTYWZhcmkg
Y2FjaGVzIGNsYXNzIGF0dHJpYnV0ZXMsIGRvZXNuJ3QgY2F0Y2ggY2hhbmdlcyAoaW4gMy4yKQor
CWRpdi5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gImUiOworCisJaWYgKCBkaXYuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgiZSIpLmxlbmd0aCA9PT0gMSApCisJCXJldHVybjsKKworCUV4cHIub3JkZXIu
c3BsaWNlKDEsIDAsICJDTEFTUyIpOworCUV4cHIuZmluZC5DTEFTUyA9IGZ1bmN0aW9uKG1hdGNo
LCBjb250ZXh0LCBpc1hNTCkgeworCQlpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlD
bGFzc05hbWUgIT09ICJ1bmRlZmluZWQiICYmICFpc1hNTCApIHsKKwkJCXJldHVybiBjb250ZXh0
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUobWF0Y2hbMV0pOworCQl9CisJfTsKK30pKCk7CisKK2Z1
bmN0aW9uIGRpck5vZGVDaGVjayggZGlyLCBjdXIsIGRvbmVOYW1lLCBjaGVja1NldCwgbm9kZUNo
ZWNrLCBpc1hNTCApIHsKKwl2YXIgc2liRGlyID0gZGlyID09ICJwcmV2aW91c1NpYmxpbmciICYm
ICFpc1hNTDsKKwlmb3IgKCB2YXIgaSA9IDAsIGwgPSBjaGVja1NldC5sZW5ndGg7IGkgPCBsOyBp
KysgKSB7CisJCXZhciBlbGVtID0gY2hlY2tTZXRbaV07CisJCWlmICggZWxlbSApIHsKKwkJCWlm
ICggc2liRGlyICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKXsKKwkJCQllbGVtLnNpemNhY2hlID0g
ZG9uZU5hbWU7CisJCQkJZWxlbS5zaXpzZXQgPSBpOworCQkJfQorCQkJZWxlbSA9IGVsZW1bZGly
XTsKKwkJCXZhciBtYXRjaCA9IGZhbHNlOworCisJCQl3aGlsZSAoIGVsZW0gKSB7CisJCQkJaWYg
KCBlbGVtLnNpemNhY2hlID09PSBkb25lTmFtZSApIHsKKwkJCQkJbWF0Y2ggPSBjaGVja1NldFtl
bGVtLnNpenNldF07CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWlmICggZWxlbS5ub2RlVHlw
ZSA9PT0gMSAmJiAhaXNYTUwgKXsKKwkJCQkJZWxlbS5zaXpjYWNoZSA9IGRvbmVOYW1lOworCQkJ
CQllbGVtLnNpenNldCA9IGk7CisJCQkJfQorCisJCQkJaWYgKCBlbGVtLm5vZGVOYW1lID09PSBj
dXIgKSB7CisJCQkJCW1hdGNoID0gZWxlbTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJZWxl
bSA9IGVsZW1bZGlyXTsKKwkJCX0KKworCQkJY2hlY2tTZXRbaV0gPSBtYXRjaDsKKwkJfQorCX0K
K30KKworZnVuY3Rpb24gZGlyQ2hlY2soIGRpciwgY3VyLCBkb25lTmFtZSwgY2hlY2tTZXQsIG5v
ZGVDaGVjaywgaXNYTUwgKSB7CisJdmFyIHNpYkRpciA9IGRpciA9PSAicHJldmlvdXNTaWJsaW5n
IiAmJiAhaXNYTUw7CisJZm9yICggdmFyIGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3RoOyBpIDwg
bDsgaSsrICkgeworCQl2YXIgZWxlbSA9IGNoZWNrU2V0W2ldOworCQlpZiAoIGVsZW0gKSB7CisJ
CQlpZiAoIHNpYkRpciAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkgeworCQkJCWVsZW0uc2l6Y2Fj
aGUgPSBkb25lTmFtZTsKKwkJCQllbGVtLnNpenNldCA9IGk7CisJCQl9CisJCQllbGVtID0gZWxl
bVtkaXJdOworCQkJdmFyIG1hdGNoID0gZmFsc2U7CisKKwkJCXdoaWxlICggZWxlbSApIHsKKwkJ
CQlpZiAoIGVsZW0uc2l6Y2FjaGUgPT09IGRvbmVOYW1lICkgeworCQkJCQltYXRjaCA9IGNoZWNr
U2V0W2VsZW0uc2l6c2V0XTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJaWYgKCBlbGVtLm5v
ZGVUeXBlID09PSAxICkgeworCQkJCQlpZiAoICFpc1hNTCApIHsKKwkJCQkJCWVsZW0uc2l6Y2Fj
aGUgPSBkb25lTmFtZTsKKwkJCQkJCWVsZW0uc2l6c2V0ID0gaTsKKwkJCQkJfQorCQkJCQlpZiAo
IHR5cGVvZiBjdXIgIT09ICJzdHJpbmciICkgeworCQkJCQkJaWYgKCBlbGVtID09PSBjdXIgKSB7
CisJCQkJCQkJbWF0Y2ggPSB0cnVlOworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCisJCQkJCX0g
ZWxzZSBpZiAoIFNpenpsZS5maWx0ZXIoIGN1ciwgW2VsZW1dICkubGVuZ3RoID4gMCApIHsKKwkJ
CQkJCW1hdGNoID0gZWxlbTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCisJCQkJZWxl
bSA9IGVsZW1bZGlyXTsKKwkJCX0KKworCQkJY2hlY2tTZXRbaV0gPSBtYXRjaDsKKwkJfQorCX0K
K30KKwordmFyIGNvbnRhaW5zID0gZG9jdW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gPyAg
ZnVuY3Rpb24oYSwgYil7CisJcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikgJiAx
NjsKK30gOiBmdW5jdGlvbihhLCBiKXsKKwlyZXR1cm4gYSAhPT0gYiAmJiAoYS5jb250YWlucyA/
IGEuY29udGFpbnMoYikgOiB0cnVlKTsKK307CisKK3ZhciBpc1hNTCA9IGZ1bmN0aW9uKGVsZW0p
eworCXJldHVybiBlbGVtLm5vZGVUeXBlID09PSA5ICYmIGVsZW0uZG9jdW1lbnRFbGVtZW50Lm5v
ZGVOYW1lICE9PSAiSFRNTCIgfHwKKwkJISFlbGVtLm93bmVyRG9jdW1lbnQgJiYgaXNYTUwoIGVs
ZW0ub3duZXJEb2N1bWVudCApOworfTsKKwordmFyIHBvc1Byb2Nlc3MgPSBmdW5jdGlvbihzZWxl
Y3RvciwgY29udGV4dCl7CisJdmFyIHRtcFNldCA9IFtdLCBsYXRlciA9ICIiLCBtYXRjaCwKKwkJ
cm9vdCA9IGNvbnRleHQubm9kZVR5cGUgPyBbY29udGV4dF0gOiBjb250ZXh0OworCisJLy8gUG9z
aXRpb24gc2VsZWN0b3JzIG11c3QgYmUgZG9uZSBhZnRlciB0aGUgZmlsdGVyCisJLy8gQW5kIHNv
IG11c3QgOm5vdChwb3NpdGlvbmFsKSBzbyB3ZSBtb3ZlIGFsbCBQU0VVRE9zIHRvIHRoZSBlbmQK
Kwl3aGlsZSAoIChtYXRjaCA9IEV4cHIubWF0Y2guUFNFVURPLmV4ZWMoIHNlbGVjdG9yICkpICkg
eworCQlsYXRlciArPSBtYXRjaFswXTsKKwkJc2VsZWN0b3IgPSBzZWxlY3Rvci5yZXBsYWNlKCBF
eHByLm1hdGNoLlBTRVVETywgIiIgKTsKKwl9CisKKwlzZWxlY3RvciA9IEV4cHIucmVsYXRpdmVb
c2VsZWN0b3JdID8gc2VsZWN0b3IgKyAiKiIgOiBzZWxlY3RvcjsKKworCWZvciAoIHZhciBpID0g
MCwgbCA9IHJvb3QubGVuZ3RoOyBpIDwgbDsgaSsrICkgeworCQlTaXp6bGUoIHNlbGVjdG9yLCBy
b290W2ldLCB0bXBTZXQgKTsKKwl9CisKKwlyZXR1cm4gU2l6emxlLmZpbHRlciggbGF0ZXIsIHRt
cFNldCApOworfTsKKworLy8gRVhQT1NFCitqUXVlcnkuZmluZCA9IFNpenpsZTsKK2pRdWVyeS5m
aWx0ZXIgPSBTaXp6bGUuZmlsdGVyOworalF1ZXJ5LmV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzOwor
alF1ZXJ5LmV4cHJbIjoiXSA9IGpRdWVyeS5leHByLmZpbHRlcnM7CisKK1NpenpsZS5zZWxlY3Rv
cnMuZmlsdGVycy5oaWRkZW4gPSBmdW5jdGlvbihlbGVtKXsKKwlyZXR1cm4gZWxlbS5vZmZzZXRX
aWR0aCA9PT0gMCB8fCBlbGVtLm9mZnNldEhlaWdodCA9PT0gMDsKK307CisKK1NpenpsZS5zZWxl
Y3RvcnMuZmlsdGVycy52aXNpYmxlID0gZnVuY3Rpb24oZWxlbSl7CisJcmV0dXJuIGVsZW0ub2Zm
c2V0V2lkdGggPiAwIHx8IGVsZW0ub2Zmc2V0SGVpZ2h0ID4gMDsKK307CisKK1NpenpsZS5zZWxl
Y3RvcnMuZmlsdGVycy5hbmltYXRlZCA9IGZ1bmN0aW9uKGVsZW0peworCXJldHVybiBqUXVlcnku
Z3JlcChqUXVlcnkudGltZXJzLCBmdW5jdGlvbihmbil7CisJCXJldHVybiBlbGVtID09PSBmbi5l
bGVtOworCX0pLmxlbmd0aDsKK307CisKK2pRdWVyeS5tdWx0aUZpbHRlciA9IGZ1bmN0aW9uKCBl
eHByLCBlbGVtcywgbm90ICkgeworCWlmICggbm90ICkgeworCQlleHByID0gIjpub3QoIiArIGV4
cHIgKyAiKSI7CisJfQorCisJcmV0dXJuIFNpenpsZS5tYXRjaGVzKGV4cHIsIGVsZW1zKTsKK307
CisKK2pRdWVyeS5kaXIgPSBmdW5jdGlvbiggZWxlbSwgZGlyICl7CisJdmFyIG1hdGNoZWQgPSBb
XSwgY3VyID0gZWxlbVtkaXJdOworCXdoaWxlICggY3VyICYmIGN1ciAhPSBkb2N1bWVudCApIHsK
KwkJaWYgKCBjdXIubm9kZVR5cGUgPT0gMSApCisJCQltYXRjaGVkLnB1c2goIGN1ciApOworCQlj
dXIgPSBjdXJbZGlyXTsKKwl9CisJcmV0dXJuIG1hdGNoZWQ7Cit9OworCitqUXVlcnkubnRoID0g
ZnVuY3Rpb24oY3VyLCByZXN1bHQsIGRpciwgZWxlbSl7CisJcmVzdWx0ID0gcmVzdWx0IHx8IDE7
CisJdmFyIG51bSA9IDA7CisKKwlmb3IgKCA7IGN1cjsgY3VyID0gY3VyW2Rpcl0gKQorCQlpZiAo
IGN1ci5ub2RlVHlwZSA9PSAxICYmICsrbnVtID09IHJlc3VsdCApCisJCQlicmVhazsKKworCXJl
dHVybiBjdXI7Cit9OworCitqUXVlcnkuc2libGluZyA9IGZ1bmN0aW9uKG4sIGVsZW0peworCXZh
ciByID0gW107CisKKwlmb3IgKCA7IG47IG4gPSBuLm5leHRTaWJsaW5nICkgeworCQlpZiAoIG4u
bm9kZVR5cGUgPT0gMSAmJiBuICE9IGVsZW0gKQorCQkJci5wdXNoKCBuICk7CisJfQorCisJcmV0
dXJuIHI7Cit9OworCityZXR1cm47CisKK3dpbmRvdy5TaXp6bGUgPSBTaXp6bGU7CisKK30pKCk7
CisvKgorICogQSBudW1iZXIgb2YgaGVscGVyIGZ1bmN0aW9ucyB1c2VkIGZvciBtYW5hZ2luZyBl
dmVudHMuCisgKiBNYW55IG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhpcyBjb2RlIG9yaWdpbmF0ZWQg
ZnJvbQorICogRGVhbiBFZHdhcmRzJyBhZGRFdmVudCBsaWJyYXJ5LgorICovCitqUXVlcnkuZXZl
bnQgPSB7CisKKwkvLyBCaW5kIGFuIGV2ZW50IHRvIGFuIGVsZW1lbnQKKwkvLyBPcmlnaW5hbCBi
eSBEZWFuIEVkd2FyZHMKKwlhZGQ6IGZ1bmN0aW9uKGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBkYXRh
KSB7CisJCWlmICggZWxlbS5ub2RlVHlwZSA9PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT0gOCApCisJ
CQlyZXR1cm47CisKKwkJLy8gRm9yIHdoYXRldmVyIHJlYXNvbiwgSUUgaGFzIHRyb3VibGUgcGFz
c2luZyB0aGUgd2luZG93IG9iamVjdAorCQkvLyBhcm91bmQsIGNhdXNpbmcgaXQgdG8gYmUgY2xv
bmVkIGluIHRoZSBwcm9jZXNzCisJCWlmICggZWxlbS5zZXRJbnRlcnZhbCAmJiBlbGVtICE9IHdp
bmRvdyApCisJCQllbGVtID0gd2luZG93OworCisJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBmdW5j
dGlvbiBiZWluZyBleGVjdXRlZCBoYXMgYSB1bmlxdWUgSUQKKwkJaWYgKCAhaGFuZGxlci5ndWlk
ICkKKwkJCWhhbmRsZXIuZ3VpZCA9IHRoaXMuZ3VpZCsrOworCisJCS8vIGlmIGRhdGEgaXMgcGFz
c2VkLCBiaW5kIHRvIGhhbmRsZXIKKwkJaWYgKCBkYXRhICE9PSB1bmRlZmluZWQgKSB7CisJCQkv
LyBDcmVhdGUgdGVtcG9yYXJ5IGZ1bmN0aW9uIHBvaW50ZXIgdG8gb3JpZ2luYWwgaGFuZGxlcgor
CQkJdmFyIGZuID0gaGFuZGxlcjsKKworCQkJLy8gQ3JlYXRlIHVuaXF1ZSBoYW5kbGVyIGZ1bmN0
aW9uLCB3cmFwcGVkIGFyb3VuZCBvcmlnaW5hbCBoYW5kbGVyCisJCQloYW5kbGVyID0gdGhpcy5w
cm94eSggZm4gKTsKKworCQkJLy8gU3RvcmUgZGF0YSBpbiB1bmlxdWUgaGFuZGxlcgorCQkJaGFu
ZGxlci5kYXRhID0gZGF0YTsKKwkJfQorCisJCS8vIEluaXQgdGhlIGVsZW1lbnQncyBldmVudCBz
dHJ1Y3R1cmUKKwkJdmFyIGV2ZW50cyA9IGpRdWVyeS5kYXRhKGVsZW0sICJldmVudHMiKSB8fCBq
UXVlcnkuZGF0YShlbGVtLCAiZXZlbnRzIiwge30pLAorCQkJaGFuZGxlID0galF1ZXJ5LmRhdGEo
ZWxlbSwgImhhbmRsZSIpIHx8IGpRdWVyeS5kYXRhKGVsZW0sICJoYW5kbGUiLCBmdW5jdGlvbigp
eworCQkJCS8vIEhhbmRsZSB0aGUgc2Vjb25kIGV2ZW50IG9mIGEgdHJpZ2dlciBhbmQgd2hlbgor
CQkJCS8vIGFuIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhIHBhZ2UgaGFzIHVubG9hZGVkCisJCQkJ
cmV0dXJuIHR5cGVvZiBqUXVlcnkgIT09ICJ1bmRlZmluZWQiICYmICFqUXVlcnkuZXZlbnQudHJp
Z2dlcmVkID8KKwkJCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVl
LmVsZW0sIGFyZ3VtZW50cykgOgorCQkJCQl1bmRlZmluZWQ7CisJCQl9KTsKKwkJLy8gQWRkIGVs
ZW0gYXMgYSBwcm9wZXJ0eSBvZiB0aGUgaGFuZGxlIGZ1bmN0aW9uCisJCS8vIFRoaXMgaXMgdG8g
cHJldmVudCBhIG1lbW9yeSBsZWFrIHdpdGggbm9uLW5hdGl2ZQorCQkvLyBldmVudCBpbiBJRS4K
KwkJaGFuZGxlLmVsZW0gPSBlbGVtOworCisJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2Vw
YXJhdGVkIGJ5IGEgc3BhY2UKKwkJLy8galF1ZXJ5KC4uLikuYmluZCgibW91c2VvdmVyIG1vdXNl
b3V0IiwgZm4pOworCQlqUXVlcnkuZWFjaCh0eXBlcy5zcGxpdCgvXHMrLyksIGZ1bmN0aW9uKGlu
ZGV4LCB0eXBlKSB7CisJCQkvLyBOYW1lc3BhY2VkIGV2ZW50IGhhbmRsZXJzCisJCQl2YXIgbmFt
ZXNwYWNlcyA9IHR5cGUuc3BsaXQoIi4iKTsKKwkJCXR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7
CisJCQloYW5kbGVyLnR5cGUgPSBuYW1lc3BhY2VzLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTsK
KworCQkJLy8gR2V0IHRoZSBjdXJyZW50IGxpc3Qgb2YgZnVuY3Rpb25zIGJvdW5kIHRvIHRoaXMg
ZXZlbnQKKwkJCXZhciBoYW5kbGVycyA9IGV2ZW50c1t0eXBlXTsKKwkJCQorCQkJaWYgKCBqUXVl
cnkuZXZlbnQuc3BlY2lhbEFsbFt0eXBlXSApCisJCQkJalF1ZXJ5LmV2ZW50LnNwZWNpYWxBbGxb
dHlwZV0uc2V0dXAuY2FsbChlbGVtLCBkYXRhLCBuYW1lc3BhY2VzKTsKKworCQkJLy8gSW5pdCB0
aGUgZXZlbnQgaGFuZGxlciBxdWV1ZQorCQkJaWYgKCFoYW5kbGVycykgeworCQkJCWhhbmRsZXJz
ID0gZXZlbnRzW3R5cGVdID0ge307CisKKwkJCQkvLyBDaGVjayBmb3IgYSBzcGVjaWFsIGV2ZW50
IGhhbmRsZXIKKwkJCQkvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyL2F0dGFjaEV2ZW50IGlm
IHRoZSBzcGVjaWFsCisJCQkJLy8gZXZlbnRzIGhhbmRsZXIgcmV0dXJucyBmYWxzZQorCQkJCWlm
ICggIWpRdWVyeS5ldmVudC5zcGVjaWFsW3R5cGVdIHx8IGpRdWVyeS5ldmVudC5zcGVjaWFsW3R5
cGVdLnNldHVwLmNhbGwoZWxlbSwgZGF0YSwgbmFtZXNwYWNlcykgPT09IGZhbHNlICkgeworCQkJ
CQkvLyBCaW5kIHRoZSBnbG9iYWwgZXZlbnQgaGFuZGxlciB0byB0aGUgZWxlbWVudAorCQkJCQlp
ZiAoZWxlbS5hZGRFdmVudExpc3RlbmVyKQorCQkJCQkJZWxlbS5hZGRFdmVudExpc3RlbmVyKHR5
cGUsIGhhbmRsZSwgZmFsc2UpOworCQkJCQllbHNlIGlmIChlbGVtLmF0dGFjaEV2ZW50KQorCQkJ
CQkJZWxlbS5hdHRhY2hFdmVudCgib24iICsgdHlwZSwgaGFuZGxlKTsKKwkJCQl9CisJCQl9CisK
KwkJCS8vIEFkZCB0aGUgZnVuY3Rpb24gdG8gdGhlIGVsZW1lbnQncyBoYW5kbGVyIGxpc3QKKwkJ
CWhhbmRsZXJzW2hhbmRsZXIuZ3VpZF0gPSBoYW5kbGVyOworCisJCQkvLyBLZWVwIHRyYWNrIG9m
IHdoaWNoIGV2ZW50cyBoYXZlIGJlZW4gdXNlZCwgZm9yIGdsb2JhbCB0cmlnZ2VyaW5nCisJCQlq
UXVlcnkuZXZlbnQuZ2xvYmFsW3R5cGVdID0gdHJ1ZTsKKwkJfSk7CisKKwkJLy8gTnVsbGlmeSBl
bGVtIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzIGluIElFCisJCWVsZW0gPSBudWxsOworCX0sCisK
KwlndWlkOiAxLAorCWdsb2JhbDoge30sCisKKwkvLyBEZXRhY2ggYW4gZXZlbnQgb3Igc2V0IG9m
IGV2ZW50cyBmcm9tIGFuIGVsZW1lbnQKKwlyZW1vdmU6IGZ1bmN0aW9uKGVsZW0sIHR5cGVzLCBo
YW5kbGVyKSB7CisJCS8vIGRvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVz
CisJCWlmICggZWxlbS5ub2RlVHlwZSA9PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT0gOCApCisJCQly
ZXR1cm47CisKKwkJdmFyIGV2ZW50cyA9IGpRdWVyeS5kYXRhKGVsZW0sICJldmVudHMiKSwgcmV0
LCBpbmRleDsKKworCQlpZiAoIGV2ZW50cyApIHsKKwkJCS8vIFVuYmluZCBhbGwgZXZlbnRzIGZv
ciB0aGUgZWxlbWVudAorCQkJaWYgKCB0eXBlcyA9PT0gdW5kZWZpbmVkIHx8ICh0eXBlb2YgdHlw
ZXMgPT09ICJzdHJpbmciICYmIHR5cGVzLmNoYXJBdCgwKSA9PSAiLiIpICkKKwkJCQlmb3IgKCB2
YXIgdHlwZSBpbiBldmVudHMgKQorCQkJCQl0aGlzLnJlbW92ZSggZWxlbSwgdHlwZSArICh0eXBl
cyB8fCAiIikgKTsKKwkJCWVsc2UgeworCQkJCS8vIHR5cGVzIGlzIGFjdHVhbGx5IGFuIGV2ZW50
IG9iamVjdCBoZXJlCisJCQkJaWYgKCB0eXBlcy50eXBlICkgeworCQkJCQloYW5kbGVyID0gdHlw
ZXMuaGFuZGxlcjsKKwkJCQkJdHlwZXMgPSB0eXBlcy50eXBlOworCQkJCX0KKworCQkJCS8vIEhh
bmRsZSBtdWx0aXBsZSBldmVudHMgc2VwZXJhdGVkIGJ5IGEgc3BhY2UKKwkJCQkvLyBqUXVlcnko
Li4uKS51bmJpbmQoIm1vdXNlb3ZlciBtb3VzZW91dCIsIGZuKTsKKwkJCQlqUXVlcnkuZWFjaCh0
eXBlcy5zcGxpdCgvXHMrLyksIGZ1bmN0aW9uKGluZGV4LCB0eXBlKXsKKwkJCQkJLy8gTmFtZXNw
YWNlZCBldmVudCBoYW5kbGVycworCQkJCQl2YXIgbmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoIi4i
KTsKKwkJCQkJdHlwZSA9IG5hbWVzcGFjZXMuc2hpZnQoKTsKKwkJCQkJdmFyIG5hbWVzcGFjZSA9
IFJlZ0V4cCgiKF58XFwuKSIgKyBuYW1lc3BhY2VzLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwu
IikgKyAiKFxcLnwkKSIpOworCisJCQkJCWlmICggZXZlbnRzW3R5cGVdICkgeworCQkJCQkJLy8g
cmVtb3ZlIHRoZSBnaXZlbiBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gdHlwZQorCQkJCQkJaWYgKCBo
YW5kbGVyICkKKwkJCQkJCQlkZWxldGUgZXZlbnRzW3R5cGVdW2hhbmRsZXIuZ3VpZF07CisKKwkJ
CQkJCS8vIHJlbW92ZSBhbGwgaGFuZGxlcnMgZm9yIHRoZSBnaXZlbiB0eXBlCisJCQkJCQllbHNl
CisJCQkJCQkJZm9yICggdmFyIGhhbmRsZSBpbiBldmVudHNbdHlwZV0gKQorCQkJCQkJCQkvLyBI
YW5kbGUgdGhlIHJlbW92YWwgb2YgbmFtZXNwYWNlZCBldmVudHMKKwkJCQkJCQkJaWYgKCBuYW1l
c3BhY2UudGVzdChldmVudHNbdHlwZV1baGFuZGxlXS50eXBlKSApCisJCQkJCQkJCQlkZWxldGUg
ZXZlbnRzW3R5cGVdW2hhbmRsZV07CisJCQkJCQkJCQkKKwkJCQkJCWlmICggalF1ZXJ5LmV2ZW50
LnNwZWNpYWxBbGxbdHlwZV0gKQorCQkJCQkJCWpRdWVyeS5ldmVudC5zcGVjaWFsQWxsW3R5cGVd
LnRlYXJkb3duLmNhbGwoZWxlbSwgbmFtZXNwYWNlcyk7CisKKwkJCQkJCS8vIHJlbW92ZSBnZW5l
cmljIGV2ZW50IGhhbmRsZXIgaWYgbm8gbW9yZSBoYW5kbGVycyBleGlzdAorCQkJCQkJZm9yICgg
cmV0IGluIGV2ZW50c1t0eXBlXSApIGJyZWFrOworCQkJCQkJaWYgKCAhcmV0ICkgeworCQkJCQkJ
CWlmICggIWpRdWVyeS5ldmVudC5zcGVjaWFsW3R5cGVdIHx8IGpRdWVyeS5ldmVudC5zcGVjaWFs
W3R5cGVdLnRlYXJkb3duLmNhbGwoZWxlbSwgbmFtZXNwYWNlcykgPT09IGZhbHNlICkgeworCQkJ
CQkJCQlpZiAoZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKQorCQkJCQkJCQkJZWxlbS5yZW1vdmVF
dmVudExpc3RlbmVyKHR5cGUsIGpRdWVyeS5kYXRhKGVsZW0sICJoYW5kbGUiKSwgZmFsc2UpOwor
CQkJCQkJCQllbHNlIGlmIChlbGVtLmRldGFjaEV2ZW50KQorCQkJCQkJCQkJZWxlbS5kZXRhY2hF
dmVudCgib24iICsgdHlwZSwgalF1ZXJ5LmRhdGEoZWxlbSwgImhhbmRsZSIpKTsKKwkJCQkJCQl9
CisJCQkJCQkJcmV0ID0gbnVsbDsKKwkJCQkJCQlkZWxldGUgZXZlbnRzW3R5cGVdOworCQkJCQkJ
fQorCQkJCQl9CisJCQkJfSk7CisJCQl9CisKKwkJCS8vIFJlbW92ZSB0aGUgZXhwYW5kbyBpZiBp
dCdzIG5vIGxvbmdlciB1c2VkCisJCQlmb3IgKCByZXQgaW4gZXZlbnRzICkgYnJlYWs7CisJCQlp
ZiAoICFyZXQgKSB7CisJCQkJdmFyIGhhbmRsZSA9IGpRdWVyeS5kYXRhKCBlbGVtLCAiaGFuZGxl
IiApOworCQkJCWlmICggaGFuZGxlICkgaGFuZGxlLmVsZW0gPSBudWxsOworCQkJCWpRdWVyeS5y
ZW1vdmVEYXRhKCBlbGVtLCAiZXZlbnRzIiApOworCQkJCWpRdWVyeS5yZW1vdmVEYXRhKCBlbGVt
LCAiaGFuZGxlIiApOworCQkJfQorCQl9CisJfSwKKworCS8vIGJ1YmJsaW5nIGlzIGludGVybmFs
CisJdHJpZ2dlcjogZnVuY3Rpb24oIGV2ZW50LCBkYXRhLCBlbGVtLCBidWJibGluZyApIHsKKwkJ
Ly8gRXZlbnQgb2JqZWN0IG9yIGV2ZW50IHR5cGUKKwkJdmFyIHR5cGUgPSBldmVudC50eXBlIHx8
IGV2ZW50OworCisJCWlmKCAhYnViYmxpbmcgKXsKKwkJCWV2ZW50ID0gdHlwZW9mIGV2ZW50ID09
PSAib2JqZWN0IiA/CisJCQkJLy8galF1ZXJ5LkV2ZW50IG9iamVjdAorCQkJCWV2ZW50W2V4cGFu
ZG9dID8gZXZlbnQgOgorCQkJCS8vIE9iamVjdCBsaXRlcmFsCisJCQkJalF1ZXJ5LmV4dGVuZCgg
alF1ZXJ5LkV2ZW50KHR5cGUpLCBldmVudCApIDoKKwkJCQkvLyBKdXN0IHRoZSBldmVudCB0eXBl
IChzdHJpbmcpCisJCQkJalF1ZXJ5LkV2ZW50KHR5cGUpOworCisJCQlpZiAoIHR5cGUuaW5kZXhP
ZigiISIpID49IDAgKSB7CisJCQkJZXZlbnQudHlwZSA9IHR5cGUgPSB0eXBlLnNsaWNlKDAsIC0x
KTsKKwkJCQlldmVudC5leGNsdXNpdmUgPSB0cnVlOworCQkJfQorCisJCQkvLyBIYW5kbGUgYSBn
bG9iYWwgdHJpZ2dlcgorCQkJaWYgKCAhZWxlbSApIHsKKwkJCQkvLyBEb24ndCBidWJibGUgY3Vz
dG9tIGV2ZW50cyB3aGVuIGdsb2JhbCAodG8gYXZvaWQgdG9vIG11Y2ggb3ZlcmhlYWQpCisJCQkJ
ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisJCQkJLy8gT25seSB0cmlnZ2VyIGlmIHdlJ3ZlIGV2
ZXIgYm91bmQgYW4gZXZlbnQgZm9yIGl0CisJCQkJaWYgKCB0aGlzLmdsb2JhbFt0eXBlXSApCisJ
CQkJCWpRdWVyeS5lYWNoKCBqUXVlcnkuY2FjaGUsIGZ1bmN0aW9uKCl7CisJCQkJCQlpZiAoIHRo
aXMuZXZlbnRzICYmIHRoaXMuZXZlbnRzW3R5cGVdICkKKwkJCQkJCQlqUXVlcnkuZXZlbnQudHJp
Z2dlciggZXZlbnQsIGRhdGEsIHRoaXMuaGFuZGxlLmVsZW0gKTsKKwkJCQkJfSk7CisJCQl9CisK
KwkJCS8vIEhhbmRsZSB0cmlnZ2VyaW5nIGEgc2luZ2xlIGVsZW1lbnQKKworCQkJLy8gZG9uJ3Qg
ZG8gZXZlbnRzIG9uIHRleHQgYW5kIGNvbW1lbnQgbm9kZXMKKwkJCWlmICggIWVsZW0gfHwgZWxl
bS5ub2RlVHlwZSA9PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT0gOCApCisJCQkJcmV0dXJuIHVuZGVm
aW5lZDsKKwkJCQorCQkJLy8gQ2xlYW4gdXAgaW4gY2FzZSBpdCBpcyByZXVzZWQKKwkJCWV2ZW50
LnJlc3VsdCA9IHVuZGVmaW5lZDsKKwkJCWV2ZW50LnRhcmdldCA9IGVsZW07CisJCQkKKwkJCS8v
IENsb25lIHRoZSBpbmNvbWluZyBkYXRhLCBpZiBhbnkKKwkJCWRhdGEgPSBqUXVlcnkubWFrZUFy
cmF5KGRhdGEpOworCQkJZGF0YS51bnNoaWZ0KCBldmVudCApOworCQl9CisKKwkJZXZlbnQuY3Vy
cmVudFRhcmdldCA9IGVsZW07CisKKwkJLy8gVHJpZ2dlciB0aGUgZXZlbnQsIGl0IGlzIGFzc3Vt
ZWQgdGhhdCAiaGFuZGxlIiBpcyBhIGZ1bmN0aW9uCisJCXZhciBoYW5kbGUgPSBqUXVlcnkuZGF0
YShlbGVtLCAiaGFuZGxlIik7CisJCWlmICggaGFuZGxlICkKKwkJCWhhbmRsZS5hcHBseSggZWxl
bSwgZGF0YSApOworCisJCS8vIEhhbmRsZSB0cmlnZ2VyaW5nIG5hdGl2ZSAub25mb28gaGFuZGxl
cnMgKGFuZCBvbiBsaW5rcyBzaW5jZSB3ZSBkb24ndCBjYWxsIC5jbGljaygpIGZvciBsaW5rcykK
KwkJaWYgKCAoIWVsZW1bdHlwZV0gfHwgKGpRdWVyeS5ub2RlTmFtZShlbGVtLCAnYScpICYmIHR5
cGUgPT0gImNsaWNrIikpICYmIGVsZW1bIm9uIit0eXBlXSAmJiBlbGVtWyJvbiIrdHlwZV0uYXBw
bHkoIGVsZW0sIGRhdGEgKSA9PT0gZmFsc2UgKQorCQkJZXZlbnQucmVzdWx0ID0gZmFsc2U7CisK
KwkJLy8gVHJpZ2dlciB0aGUgbmF0aXZlIGV2ZW50cyAoZXhjZXB0IGZvciBjbGlja3Mgb24gbGlu
a3MpCisJCWlmICggIWJ1YmJsaW5nICYmIGVsZW1bdHlwZV0gJiYgIWV2ZW50LmlzRGVmYXVsdFBy
ZXZlbnRlZCgpICYmICEoalF1ZXJ5Lm5vZGVOYW1lKGVsZW0sICdhJykgJiYgdHlwZSA9PSAiY2xp
Y2siKSApIHsKKwkJCXRoaXMudHJpZ2dlcmVkID0gdHJ1ZTsKKwkJCXRyeSB7CisJCQkJZWxlbVsg
dHlwZSBdKCk7CisJCQkvLyBwcmV2ZW50IElFIGZyb20gdGhyb3dpbmcgYW4gZXJyb3IgZm9yIHNv
bWUgaGlkZGVuIGVsZW1lbnRzCisJCQl9IGNhdGNoIChlKSB7fQorCQl9CisKKwkJdGhpcy50cmln
Z2VyZWQgPSBmYWxzZTsKKworCQlpZiAoICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkg
eworCQkJdmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZSB8fCBlbGVtLm93bmVyRG9jdW1lbnQ7
CisJCQlpZiAoIHBhcmVudCApCisJCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoZXZlbnQsIGRhdGEs
IHBhcmVudCwgdHJ1ZSk7CisJCX0KKwl9LAorCisJaGFuZGxlOiBmdW5jdGlvbihldmVudCkgewor
CQkvLyByZXR1cm5lZCB1bmRlZmluZWQgb3IgZmFsc2UKKwkJdmFyIGFsbCwgaGFuZGxlcnM7CisK
KwkJZXZlbnQgPSBhcmd1bWVudHNbMF0gPSBqUXVlcnkuZXZlbnQuZml4KCBldmVudCB8fCB3aW5k
b3cuZXZlbnQgKTsKKwkJZXZlbnQuY3VycmVudFRhcmdldCA9IHRoaXM7CisJCQorCQkvLyBOYW1l
c3BhY2VkIGV2ZW50IGhhbmRsZXJzCisJCXZhciBuYW1lc3BhY2VzID0gZXZlbnQudHlwZS5zcGxp
dCgiLiIpOworCQlldmVudC50eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOworCisJCS8vIENhY2hl
IHRoaXMgbm93LCBhbGwgPSB0cnVlIG1lYW5zLCBhbnkgaGFuZGxlcgorCQlhbGwgPSAhbmFtZXNw
YWNlcy5sZW5ndGggJiYgIWV2ZW50LmV4Y2x1c2l2ZTsKKwkJCisJCXZhciBuYW1lc3BhY2UgPSBS
ZWdFeHAoIihefFxcLikiICsgbmFtZXNwYWNlcy5zbGljZSgpLnNvcnQoKS5qb2luKCIuKlxcLiIp
ICsgIihcXC58JCkiKTsKKworCQloYW5kbGVycyA9ICggalF1ZXJ5LmRhdGEodGhpcywgImV2ZW50
cyIpIHx8IHt9IClbZXZlbnQudHlwZV07CisKKwkJZm9yICggdmFyIGogaW4gaGFuZGxlcnMgKSB7
CisJCQl2YXIgaGFuZGxlciA9IGhhbmRsZXJzW2pdOworCisJCQkvLyBGaWx0ZXIgdGhlIGZ1bmN0
aW9ucyBieSBjbGFzcworCQkJaWYgKCBhbGwgfHwgbmFtZXNwYWNlLnRlc3QoaGFuZGxlci50eXBl
KSApIHsKKwkJCQkvLyBQYXNzIGluIGEgcmVmZXJlbmNlIHRvIHRoZSBoYW5kbGVyIGZ1bmN0aW9u
IGl0c2VsZgorCQkJCS8vIFNvIHRoYXQgd2UgY2FuIGxhdGVyIHJlbW92ZSBpdAorCQkJCWV2ZW50
LmhhbmRsZXIgPSBoYW5kbGVyOworCQkJCWV2ZW50LmRhdGEgPSBoYW5kbGVyLmRhdGE7CisKKwkJ
CQl2YXIgcmV0ID0gaGFuZGxlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisJCQkJaWYoIHJl
dCAhPT0gdW5kZWZpbmVkICl7CisJCQkJCWV2ZW50LnJlc3VsdCA9IHJldDsKKwkJCQkJaWYgKCBy
ZXQgPT09IGZhbHNlICkgeworCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKKwkJCQkJCWV2
ZW50LnN0b3BQcm9wYWdhdGlvbigpOworCQkJCQl9CisJCQkJfQorCisJCQkJaWYoIGV2ZW50Lmlz
SW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkgKQorCQkJCQlicmVhazsKKworCQkJfQorCQl9
CisJfSwKKworCXByb3BzOiAiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBidXR0
b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtleSBjdXJyZW50VGFy
Z2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIG1l
dGFLZXkgbmV3VmFsdWUgb3JpZ2luYWxUYXJnZXQgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0
ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQg
dGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCisKKwlm
aXg6IGZ1bmN0aW9uKGV2ZW50KSB7CisJCWlmICggZXZlbnRbZXhwYW5kb10gKQorCQkJcmV0dXJu
IGV2ZW50OworCisJCS8vIHN0b3JlIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgZXZlbnQgb2JqZWN0
CisJCS8vIGFuZCAiY2xvbmUiIHRvIHNldCByZWFkLW9ubHkgcHJvcGVydGllcworCQl2YXIgb3Jp
Z2luYWxFdmVudCA9IGV2ZW50OworCQlldmVudCA9IGpRdWVyeS5FdmVudCggb3JpZ2luYWxFdmVu
dCApOworCisJCWZvciAoIHZhciBpID0gdGhpcy5wcm9wcy5sZW5ndGgsIHByb3A7IGk7ICl7CisJ
CQlwcm9wID0gdGhpcy5wcm9wc1sgLS1pIF07CisJCQlldmVudFsgcHJvcCBdID0gb3JpZ2luYWxF
dmVudFsgcHJvcCBdOworCQl9CisKKwkJLy8gRml4IHRhcmdldCBwcm9wZXJ0eSwgaWYgbmVjZXNz
YXJ5CisJCWlmICggIWV2ZW50LnRhcmdldCApCisJCQlldmVudC50YXJnZXQgPSBldmVudC5zcmNF
bGVtZW50IHx8IGRvY3VtZW50OyAvLyBGaXhlcyAjMTkyNSB3aGVyZSBzcmNFbGVtZW50IG1pZ2h0
IG5vdCBiZSBkZWZpbmVkIGVpdGhlcgorCisJCS8vIGNoZWNrIGlmIHRhcmdldCBpcyBhIHRleHRu
b2RlIChzYWZhcmkpCisJCWlmICggZXZlbnQudGFyZ2V0Lm5vZGVUeXBlID09IDMgKQorCQkJZXZl
bnQudGFyZ2V0ID0gZXZlbnQudGFyZ2V0LnBhcmVudE5vZGU7CisKKwkJLy8gQWRkIHJlbGF0ZWRU
YXJnZXQsIGlmIG5lY2Vzc2FyeQorCQlpZiAoICFldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50
LmZyb21FbGVtZW50ICkKKwkJCWV2ZW50LnJlbGF0ZWRUYXJnZXQgPSBldmVudC5mcm9tRWxlbWVu
dCA9PSBldmVudC50YXJnZXQgPyBldmVudC50b0VsZW1lbnQgOiBldmVudC5mcm9tRWxlbWVudDsK
KworCQkvLyBDYWxjdWxhdGUgcGFnZVgvWSBpZiBtaXNzaW5nIGFuZCBjbGllbnRYL1kgYXZhaWxh
YmxlCisJCWlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBldmVudC5jbGllbnRYICE9IG51bGwg
KSB7CisJCQl2YXIgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBib2R5ID0gZG9jdW1l
bnQuYm9keTsKKwkJCWV2ZW50LnBhZ2VYID0gZXZlbnQuY2xpZW50WCArIChkb2MgJiYgZG9jLnNj
cm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLSAoZG9jLmNsaWVudExl
ZnQgfHwgMCk7CisJCQlldmVudC5wYWdlWSA9IGV2ZW50LmNsaWVudFkgKyAoZG9jICYmIGRvYy5z
Y3JvbGxUb3AgfHwgYm9keSAmJiBib2R5LnNjcm9sbFRvcCB8fCAwKSAtIChkb2MuY2xpZW50VG9w
IHx8IDApOworCQl9CisKKwkJLy8gQWRkIHdoaWNoIGZvciBrZXkgZXZlbnRzCisJCWlmICggIWV2
ZW50LndoaWNoICYmICgoZXZlbnQuY2hhckNvZGUgfHwgZXZlbnQuY2hhckNvZGUgPT09IDApID8g
ZXZlbnQuY2hhckNvZGUgOiBldmVudC5rZXlDb2RlKSApCisJCQlldmVudC53aGljaCA9IGV2ZW50
LmNoYXJDb2RlIHx8IGV2ZW50LmtleUNvZGU7CisKKwkJLy8gQWRkIG1ldGFLZXkgdG8gbm9uLU1h
YyBicm93c2VycyAodXNlIGN0cmwgZm9yIFBDJ3MgYW5kIE1ldGEgZm9yIE1hY3MpCisJCWlmICgg
IWV2ZW50Lm1ldGFLZXkgJiYgZXZlbnQuY3RybEtleSApCisJCQlldmVudC5tZXRhS2V5ID0gZXZl
bnQuY3RybEtleTsKKworCQkvLyBBZGQgd2hpY2ggZm9yIGNsaWNrOiAxID09IGxlZnQ7IDIgPT0g
bWlkZGxlOyAzID09IHJpZ2h0CisJCS8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwg
c28gZG9uJ3QgdXNlIGl0CisJCWlmICggIWV2ZW50LndoaWNoICYmIGV2ZW50LmJ1dHRvbiApCisJ
CQlldmVudC53aGljaCA9IChldmVudC5idXR0b24gJiAxID8gMSA6ICggZXZlbnQuYnV0dG9uICYg
MiA/IDMgOiAoIGV2ZW50LmJ1dHRvbiAmIDQgPyAyIDogMCApICkpOworCisJCXJldHVybiBldmVu
dDsKKwl9LAorCisJcHJveHk6IGZ1bmN0aW9uKCBmbiwgcHJveHkgKXsKKwkJcHJveHkgPSBwcm94
eSB8fCBmdW5jdGlvbigpeyByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfTsKKwkJ
Ly8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBzYW1lIG9mIG9yaWdpbmFs
IGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkCisJCXByb3h5Lmd1aWQgPSBmbi5ndWlkID0g
Zm4uZ3VpZCB8fCBwcm94eS5ndWlkIHx8IHRoaXMuZ3VpZCsrOworCQkvLyBTbyBwcm94eSBjYW4g
YmUgZGVjbGFyZWQgYXMgYW4gYXJndW1lbnQKKwkJcmV0dXJuIHByb3h5OworCX0sCisKKwlzcGVj
aWFsOiB7CisJCXJlYWR5OiB7CisJCQkvLyBNYWtlIHN1cmUgdGhlIHJlYWR5IGV2ZW50IGlzIHNl
dHVwCisJCQlzZXR1cDogYmluZFJlYWR5LAorCQkJdGVhcmRvd246IGZ1bmN0aW9uKCkge30KKwkJ
fQorCX0sCisJCisJc3BlY2lhbEFsbDogeworCQlsaXZlOiB7CisJCQlzZXR1cDogZnVuY3Rpb24o
IHNlbGVjdG9yLCBuYW1lc3BhY2VzICl7CisJCQkJalF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgbmFt
ZXNwYWNlc1swXSwgbGl2ZUhhbmRsZXIgKTsKKwkJCX0sCisJCQl0ZWFyZG93bjogIGZ1bmN0aW9u
KCBuYW1lc3BhY2VzICl7CisJCQkJaWYgKCBuYW1lc3BhY2VzLmxlbmd0aCApIHsKKwkJCQkJdmFy
IHJlbW92ZSA9IDAsIG5hbWUgPSBSZWdFeHAoIihefFxcLikiICsgbmFtZXNwYWNlc1swXSArICIo
XFwufCQpIik7CisJCQkJCQorCQkJCQlqUXVlcnkuZWFjaCggKGpRdWVyeS5kYXRhKHRoaXMsICJl
dmVudHMiKS5saXZlIHx8IHt9KSwgZnVuY3Rpb24oKXsKKwkJCQkJCWlmICggbmFtZS50ZXN0KHRo
aXMudHlwZSkgKQorCQkJCQkJCXJlbW92ZSsrOworCQkJCQl9KTsKKwkJCQkJCisJCQkJCWlmICgg
cmVtb3ZlIDwgMSApCisJCQkJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCBuYW1lc3BhY2Vz
WzBdLCBsaXZlSGFuZGxlciApOworCQkJCX0KKwkJCX0KKwkJfQorCX0KK307CisKK2pRdWVyeS5F
dmVudCA9IGZ1bmN0aW9uKCBzcmMgKXsKKwkvLyBBbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQg
dGhlICduZXcnIGtleXdvcmQKKwlpZiggIXRoaXMucHJldmVudERlZmF1bHQgKQorCQlyZXR1cm4g
bmV3IGpRdWVyeS5FdmVudChzcmMpOworCQorCS8vIEV2ZW50IG9iamVjdAorCWlmKCBzcmMgJiYg
c3JjLnR5cGUgKXsKKwkJdGhpcy5vcmlnaW5hbEV2ZW50ID0gc3JjOworCQl0aGlzLnR5cGUgPSBz
cmMudHlwZTsKKwkvLyBFdmVudCB0eXBlCisJfWVsc2UKKwkJdGhpcy50eXBlID0gc3JjOworCisJ
Ly8gdGltZVN0YW1wIGlzIGJ1Z2d5IGZvciBzb21lIGV2ZW50cyBvbiBGaXJlZm94KCMzODQzKQor
CS8vIFNvIHdlIHdvbid0IHJlbHkgb24gdGhlIG5hdGl2ZSB2YWx1ZQorCXRoaXMudGltZVN0YW1w
ID0gbm93KCk7CisJCisJLy8gTWFyayBpdCBhcyBmaXhlZAorCXRoaXNbZXhwYW5kb10gPSB0cnVl
OworfTsKKworZnVuY3Rpb24gcmV0dXJuRmFsc2UoKXsKKwlyZXR1cm4gZmFsc2U7Cit9CitmdW5j
dGlvbiByZXR1cm5UcnVlKCl7CisJcmV0dXJuIHRydWU7Cit9CisKKy8vIGpRdWVyeS5FdmVudCBp
cyBiYXNlZCBvbiBET00zIEV2ZW50cyBhcyBzcGVjaWZpZWQgYnkgdGhlIEVDTUFTY3JpcHQgTGFu
Z3VhZ2UgQmluZGluZworLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9XRC1ET00tTGV2ZWwt
My1FdmVudHMtMjAwMzAzMzEvZWNtYS1zY3JpcHQtYmluZGluZy5odG1sCitqUXVlcnkuRXZlbnQu
cHJvdG90eXBlID0geworCXByZXZlbnREZWZhdWx0OiBmdW5jdGlvbigpIHsKKwkJdGhpcy5pc0Rl
ZmF1bHRQcmV2ZW50ZWQgPSByZXR1cm5UcnVlOworCisJCXZhciBlID0gdGhpcy5vcmlnaW5hbEV2
ZW50OworCQlpZiggIWUgKQorCQkJcmV0dXJuOworCQkvLyBpZiBwcmV2ZW50RGVmYXVsdCBleGlz
dHMgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVudAorCQlpZiAoZS5wcmV2ZW50RGVmYXVsdCkK
KwkJCWUucHJldmVudERlZmF1bHQoKTsKKwkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgcmV0dXJuVmFs
dWUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IHRvIGZhbHNlIChJRSkKKwkJZS5yZXR1
cm5WYWx1ZSA9IGZhbHNlOworCX0sCisJc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKKwkJ
dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7CisKKwkJdmFyIGUgPSB0aGlz
Lm9yaWdpbmFsRXZlbnQ7CisJCWlmKCAhZSApCisJCQlyZXR1cm47CisJCS8vIGlmIHN0b3BQcm9w
YWdhdGlvbiBleGlzdHMgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVudAorCQlpZiAoZS5zdG9w
UHJvcGFnYXRpb24pCisJCQllLnN0b3BQcm9wYWdhdGlvbigpOworCQkvLyBvdGhlcndpc2Ugc2V0
IHRoZSBjYW5jZWxCdWJibGUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IHRvIHRydWUg
KElFKQorCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7CisJfSwKKwlzdG9wSW1tZWRpYXRlUHJvcGFn
YXRpb246ZnVuY3Rpb24oKXsKKwkJdGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9
IHJldHVyblRydWU7CisJCXRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7CisJfSwKKwlpc0RlZmF1bHRQ
cmV2ZW50ZWQ6IHJldHVybkZhbHNlLAorCWlzUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxz
ZSwKKwlpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UKK307CisvLyBD
aGVja3MgaWYgYW4gZXZlbnQgaGFwcGVuZWQgb24gYW4gZWxlbWVudCB3aXRoaW4gYW5vdGhlciBl
bGVtZW50CisvLyBVc2VkIGluIGpRdWVyeS5ldmVudC5zcGVjaWFsLm1vdXNlZW50ZXIgYW5kIG1v
dXNlbGVhdmUgaGFuZGxlcnMKK3ZhciB3aXRoaW5FbGVtZW50ID0gZnVuY3Rpb24oZXZlbnQpIHsK
KwkvLyBDaGVjayBpZiBtb3VzZShvdmVyfG91dCkgYXJlIHN0aWxsIHdpdGhpbiB0aGUgc2FtZSBw
YXJlbnQgZWxlbWVudAorCXZhciBwYXJlbnQgPSBldmVudC5yZWxhdGVkVGFyZ2V0OworCS8vIFRy
YXZlcnNlIHVwIHRoZSB0cmVlCisJd2hpbGUgKCBwYXJlbnQgJiYgcGFyZW50ICE9IHRoaXMgKQor
CQl0cnkgeyBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZTsgfQorCQljYXRjaChlKSB7IHBhcmVu
dCA9IHRoaXM7IH0KKwkKKwlpZiggcGFyZW50ICE9IHRoaXMgKXsKKwkJLy8gc2V0IHRoZSBjb3Jy
ZWN0IGV2ZW50IHR5cGUKKwkJZXZlbnQudHlwZSA9IGV2ZW50LmRhdGE7CisJCS8vIGhhbmRsZSBl
dmVudCBpZiB3ZSBhY3R1YWxseSBqdXN0IG1vdXNlZCBvbiB0byBhIG5vbiBzdWItZWxlbWVudAor
CQlqUXVlcnkuZXZlbnQuaGFuZGxlLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsKKwl9Cit9Owor
CQoralF1ZXJ5LmVhY2goeyAKKwltb3VzZW92ZXI6ICdtb3VzZWVudGVyJywgCisJbW91c2VvdXQ6
ICdtb3VzZWxlYXZlJworfSwgZnVuY3Rpb24oIG9yaWcsIGZpeCApeworCWpRdWVyeS5ldmVudC5z
cGVjaWFsWyBmaXggXSA9IHsKKwkJc2V0dXA6IGZ1bmN0aW9uKCl7CisJCQlqUXVlcnkuZXZlbnQu
YWRkKCB0aGlzLCBvcmlnLCB3aXRoaW5FbGVtZW50LCBmaXggKTsKKwkJfSwKKwkJdGVhcmRvd246
IGZ1bmN0aW9uKCl7CisJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCBvcmlnLCB3aXRoaW5F
bGVtZW50ICk7CisJCX0KKwl9OwkJCSAgIAorfSk7CisKK2pRdWVyeS5mbi5leHRlbmQoeworCWJp
bmQ6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhLCBmbiApIHsKKwkJcmV0dXJuIHR5cGUgPT0gInVubG9h
ZCIgPyB0aGlzLm9uZSh0eXBlLCBkYXRhLCBmbikgOiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKKwkJ
CWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIHR5cGUsIGZuIHx8IGRhdGEsIGZuICYmIGRhdGEgKTsK
KwkJfSk7CisJfSwKKworCW9uZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEsIGZuICkgeworCQl2YXIg
b25lID0galF1ZXJ5LmV2ZW50LnByb3h5KCBmbiB8fCBkYXRhLCBmdW5jdGlvbihldmVudCkgewor
CQkJalF1ZXJ5KHRoaXMpLnVuYmluZChldmVudCwgb25lKTsKKwkJCXJldHVybiAoZm4gfHwgZGF0
YSkuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOworCQl9KTsKKwkJcmV0dXJuIHRoaXMuZWFjaChm
dW5jdGlvbigpeworCQkJalF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgdHlwZSwgb25lLCBmbiAmJiBk
YXRhKTsKKwkJfSk7CisJfSwKKworCXVuYmluZDogZnVuY3Rpb24oIHR5cGUsIGZuICkgeworCQly
ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CisJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlz
LCB0eXBlLCBmbiApOworCQl9KTsKKwl9LAorCisJdHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRh
dGEgKSB7CisJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKKwkJCWpRdWVyeS5ldmVudC50
cmlnZ2VyKCB0eXBlLCBkYXRhLCB0aGlzICk7CisJCX0pOworCX0sCisKKwl0cmlnZ2VySGFuZGxl
cjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CisJCWlmKCB0aGlzWzBdICl7CisJCQl2YXIgZXZl
bnQgPSBqUXVlcnkuRXZlbnQodHlwZSk7CisJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOworCQkJ
ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQs
IGRhdGEsIHRoaXNbMF0gKTsKKwkJCXJldHVybiBldmVudC5yZXN1bHQ7CisJCX0JCQorCX0sCisK
Kwl0b2dnbGU6IGZ1bmN0aW9uKCBmbiApIHsKKwkJLy8gU2F2ZSByZWZlcmVuY2UgdG8gYXJndW1l
bnRzIGZvciBhY2Nlc3MgaW4gY2xvc3VyZQorCQl2YXIgYXJncyA9IGFyZ3VtZW50cywgaSA9IDE7
CisKKwkJLy8gbGluayBhbGwgdGhlIGZ1bmN0aW9ucywgc28gYW55IG9mIHRoZW0gY2FuIHVuYmlu
ZCB0aGlzIGNsaWNrIGhhbmRsZXIKKwkJd2hpbGUoIGkgPCBhcmdzLmxlbmd0aCApCisJCQlqUXVl
cnkuZXZlbnQucHJveHkoIGZuLCBhcmdzW2krK10gKTsKKworCQlyZXR1cm4gdGhpcy5jbGljaygg
alF1ZXJ5LmV2ZW50LnByb3h5KCBmbiwgZnVuY3Rpb24oZXZlbnQpIHsKKwkJCS8vIEZpZ3VyZSBv
dXQgd2hpY2ggZnVuY3Rpb24gdG8gZXhlY3V0ZQorCQkJdGhpcy5sYXN0VG9nZ2xlID0gKCB0aGlz
Lmxhc3RUb2dnbGUgfHwgMCApICUgaTsKKworCQkJLy8gTWFrZSBzdXJlIHRoYXQgY2xpY2tzIHN0
b3AKKwkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisKKwkJCS8vIGFuZCBleGVjdXRlIHRoZSBm
dW5jdGlvbgorCQkJcmV0dXJuIGFyZ3NbIHRoaXMubGFzdFRvZ2dsZSsrIF0uYXBwbHkoIHRoaXMs
IGFyZ3VtZW50cyApIHx8IGZhbHNlOworCQl9KSk7CisJfSwKKworCWhvdmVyOiBmdW5jdGlvbihm
bk92ZXIsIGZuT3V0KSB7CisJCXJldHVybiB0aGlzLm1vdXNlZW50ZXIoZm5PdmVyKS5tb3VzZWxl
YXZlKGZuT3V0KTsKKwl9LAorCisJcmVhZHk6IGZ1bmN0aW9uKGZuKSB7CisJCS8vIEF0dGFjaCB0
aGUgbGlzdGVuZXJzCisJCWJpbmRSZWFkeSgpOworCisJCS8vIElmIHRoZSBET00gaXMgYWxyZWFk
eSByZWFkeQorCQlpZiAoIGpRdWVyeS5pc1JlYWR5ICkKKwkJCS8vIEV4ZWN1dGUgdGhlIGZ1bmN0
aW9uIGltbWVkaWF0ZWx5CisJCQlmbi5jYWxsKCBkb2N1bWVudCwgalF1ZXJ5ICk7CisKKwkJLy8g
T3RoZXJ3aXNlLCByZW1lbWJlciB0aGUgZnVuY3Rpb24gZm9yIGxhdGVyCisJCWVsc2UKKwkJCS8v
IEFkZCB0aGUgZnVuY3Rpb24gdG8gdGhlIHdhaXQgbGlzdAorCQkJalF1ZXJ5LnJlYWR5TGlzdC5w
dXNoKCBmbiApOworCisJCXJldHVybiB0aGlzOworCX0sCisJCisJbGl2ZTogZnVuY3Rpb24oIHR5
cGUsIGZuICl7CisJCXZhciBwcm94eSA9IGpRdWVyeS5ldmVudC5wcm94eSggZm4gKTsKKwkJcHJv
eHkuZ3VpZCArPSB0aGlzLnNlbGVjdG9yICsgdHlwZTsKKworCQlqUXVlcnkoZG9jdW1lbnQpLmJp
bmQoIGxpdmVDb252ZXJ0KHR5cGUsIHRoaXMuc2VsZWN0b3IpLCB0aGlzLnNlbGVjdG9yLCBwcm94
eSApOworCisJCXJldHVybiB0aGlzOworCX0sCisJCisJZGllOiBmdW5jdGlvbiggdHlwZSwgZm4g
KXsKKwkJalF1ZXJ5KGRvY3VtZW50KS51bmJpbmQoIGxpdmVDb252ZXJ0KHR5cGUsIHRoaXMuc2Vs
ZWN0b3IpLCBmbiA/IHsgZ3VpZDogZm4uZ3VpZCArIHRoaXMuc2VsZWN0b3IgKyB0eXBlIH0gOiBu
dWxsICk7CisJCXJldHVybiB0aGlzOworCX0KK30pOworCitmdW5jdGlvbiBsaXZlSGFuZGxlcigg
ZXZlbnQgKXsKKwl2YXIgY2hlY2sgPSBSZWdFeHAoIihefFxcLikiICsgZXZlbnQudHlwZSArICIo
XFwufCQpIiksCisJCXN0b3AgPSB0cnVlLAorCQllbGVtcyA9IFtdOworCisJalF1ZXJ5LmVhY2go
alF1ZXJ5LmRhdGEodGhpcywgImV2ZW50cyIpLmxpdmUgfHwgW10sIGZ1bmN0aW9uKGksIGZuKXsK
KwkJaWYgKCBjaGVjay50ZXN0KGZuLnR5cGUpICkgeworCQkJdmFyIGVsZW0gPSBqUXVlcnkoZXZl
bnQudGFyZ2V0KS5jbG9zZXN0KGZuLmRhdGEpWzBdOworCQkJaWYgKCBlbGVtICkKKwkJCQllbGVt
cy5wdXNoKHsgZWxlbTogZWxlbSwgZm46IGZuIH0pOworCQl9CisJfSk7CisKKwllbGVtcy5zb3J0
KGZ1bmN0aW9uKGEsYikgeworCQlyZXR1cm4galF1ZXJ5LmRhdGEoYS5lbGVtLCAiY2xvc2VzdCIp
IC0galF1ZXJ5LmRhdGEoYi5lbGVtLCAiY2xvc2VzdCIpOworCX0pOworCQorCWpRdWVyeS5lYWNo
KGVsZW1zLCBmdW5jdGlvbigpeworCQlpZiAoIHRoaXMuZm4uY2FsbCh0aGlzLmVsZW0sIGV2ZW50
LCB0aGlzLmZuLmRhdGEpID09PSBmYWxzZSApCisJCQlyZXR1cm4gKHN0b3AgPSBmYWxzZSk7CisJ
fSk7CisKKwlyZXR1cm4gc3RvcDsKK30KKworZnVuY3Rpb24gbGl2ZUNvbnZlcnQodHlwZSwgc2Vs
ZWN0b3IpeworCXJldHVybiBbImxpdmUiLCB0eXBlLCBzZWxlY3Rvci5yZXBsYWNlKC9cLi9nLCAi
YCIpLnJlcGxhY2UoLyAvZywgInwiKV0uam9pbigiLiIpOworfQorCitqUXVlcnkuZXh0ZW5kKHsK
Kwlpc1JlYWR5OiBmYWxzZSwKKwlyZWFkeUxpc3Q6IFtdLAorCS8vIEhhbmRsZSB3aGVuIHRoZSBE
T00gaXMgcmVhZHkKKwlyZWFkeTogZnVuY3Rpb24oKSB7CisJCS8vIE1ha2Ugc3VyZSB0aGF0IHRo
ZSBET00gaXMgbm90IGFscmVhZHkgbG9hZGVkCisJCWlmICggIWpRdWVyeS5pc1JlYWR5ICkgewor
CQkJLy8gUmVtZW1iZXIgdGhhdCB0aGUgRE9NIGlzIHJlYWR5CisJCQlqUXVlcnkuaXNSZWFkeSA9
IHRydWU7CisKKwkJCS8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4ZWN1dGUK
KwkJCWlmICggalF1ZXJ5LnJlYWR5TGlzdCApIHsKKwkJCQkvLyBFeGVjdXRlIGFsbCBvZiB0aGVt
CisJCQkJalF1ZXJ5LmVhY2goIGpRdWVyeS5yZWFkeUxpc3QsIGZ1bmN0aW9uKCl7CisJCQkJCXRo
aXMuY2FsbCggZG9jdW1lbnQsIGpRdWVyeSApOworCQkJCX0pOworCisJCQkJLy8gUmVzZXQgdGhl
IGxpc3Qgb2YgZnVuY3Rpb25zCisJCQkJalF1ZXJ5LnJlYWR5TGlzdCA9IG51bGw7CisJCQl9CisK
KwkJCS8vIFRyaWdnZXIgYW55IGJvdW5kIHJlYWR5IGV2ZW50cworCQkJalF1ZXJ5KGRvY3VtZW50
KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKTsKKwkJfQorCX0KK30pOworCit2YXIgcmVhZHlCb3Vu
ZCA9IGZhbHNlOworCitmdW5jdGlvbiBiaW5kUmVhZHkoKXsKKwlpZiAoIHJlYWR5Qm91bmQgKSBy
ZXR1cm47CisJcmVhZHlCb3VuZCA9IHRydWU7CisKKwkvLyBNb3ppbGxhLCBPcGVyYSBhbmQgd2Vi
a2l0IG5pZ2h0bGllcyBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGV2ZW50CisJaWYgKCBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyICkgeworCQkvLyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNr
CisJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rp
b24oKXsKKwkJCWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoICJET01Db250ZW50TG9hZGVk
IiwgYXJndW1lbnRzLmNhbGxlZSwgZmFsc2UgKTsKKwkJCWpRdWVyeS5yZWFkeSgpOworCQl9LCBm
YWxzZSApOworCisJLy8gSWYgSUUgZXZlbnQgbW9kZWwgaXMgdXNlZAorCX0gZWxzZSBpZiAoIGRv
Y3VtZW50LmF0dGFjaEV2ZW50ICkgeworCQkvLyBlbnN1cmUgZmlyaW5nIGJlZm9yZSBvbmxvYWQs
CisJCS8vIG1heWJlIGxhdGUgYnV0IHNhZmUgYWxzbyBmb3IgaWZyYW1lcworCQlkb2N1bWVudC5h
dHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgZnVuY3Rpb24oKXsKKwkJCWlmICggZG9j
dW1lbnQucmVhZHlTdGF0ZSA9PT0gImNvbXBsZXRlIiApIHsKKwkJCQlkb2N1bWVudC5kZXRhY2hF
dmVudCggIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGFyZ3VtZW50cy5jYWxsZWUgKTsKKwkJCQlqUXVl
cnkucmVhZHkoKTsKKwkJCX0KKwkJfSk7CisKKwkJLy8gSWYgSUUgYW5kIG5vdCBhbiBpZnJhbWUK
KwkJLy8gY29udGludWFsbHkgY2hlY2sgdG8gc2VlIGlmIHRoZSBkb2N1bWVudCBpcyByZWFkeQor
CQlpZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCAmJiB3aW5kb3cgPT0gd2lu
ZG93LnRvcCApIChmdW5jdGlvbigpeworCQkJaWYgKCBqUXVlcnkuaXNSZWFkeSApIHJldHVybjsK
KworCQkJdHJ5IHsKKwkJCQkvLyBJZiBJRSBpcyB1c2VkLCB1c2UgdGhlIHRyaWNrIGJ5IERpZWdv
IFBlcmluaQorCQkJCS8vIGh0dHA6Ly9qYXZhc2NyaXB0Lm53Ym94LmNvbS9JRUNvbnRlbnRMb2Fk
ZWQvCisJCQkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik7CisJCQl9
IGNhdGNoKCBlcnJvciApIHsKKwkJCQlzZXRUaW1lb3V0KCBhcmd1bWVudHMuY2FsbGVlLCAwICk7
CisJCQkJcmV0dXJuOworCQkJfQorCisJCQkvLyBhbmQgZXhlY3V0ZSBhbnkgd2FpdGluZyBmdW5j
dGlvbnMKKwkJCWpRdWVyeS5yZWFkeSgpOworCQl9KSgpOworCX0KKworCS8vIEEgZmFsbGJhY2sg
dG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrCisJalF1ZXJ5LmV2ZW50LmFk
ZCggd2luZG93LCAibG9hZCIsIGpRdWVyeS5yZWFkeSApOworfQorCitqUXVlcnkuZWFjaCggKCJi
bHVyLGZvY3VzLGxvYWQscmVzaXplLHNjcm9sbCx1bmxvYWQsY2xpY2ssZGJsY2xpY2ssIiArCisJ
Im1vdXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRl
cixtb3VzZWxlYXZlLCIgKworCSJjaGFuZ2Usc2VsZWN0LHN1Ym1pdCxrZXlkb3duLGtleXByZXNz
LGtleXVwLGVycm9yIikuc3BsaXQoIiwiKSwgZnVuY3Rpb24oaSwgbmFtZSl7CisKKwkvLyBIYW5k
bGUgZXZlbnQgYmluZGluZworCWpRdWVyeS5mbltuYW1lXSA9IGZ1bmN0aW9uKGZuKXsKKwkJcmV0
dXJuIGZuID8gdGhpcy5iaW5kKG5hbWUsIGZuKSA6IHRoaXMudHJpZ2dlcihuYW1lKTsKKwl9Owor
fSk7CisKKy8vIFByZXZlbnQgbWVtb3J5IGxlYWtzIGluIElFCisvLyBBbmQgcHJldmVudCBlcnJv
cnMgb24gcmVmcmVzaCB3aXRoIGV2ZW50cyBsaWtlIG1vdXNlb3ZlciBpbiBvdGhlciBicm93c2Vy
cworLy8gV2luZG93IGlzbid0IGluY2x1ZGVkIHNvIGFzIG5vdCB0byB1bmJpbmQgZXhpc3Rpbmcg
dW5sb2FkIGV2ZW50cworalF1ZXJ5KCB3aW5kb3cgKS5iaW5kKCAndW5sb2FkJywgZnVuY3Rpb24o
KXsgCisJZm9yICggdmFyIGlkIGluIGpRdWVyeS5jYWNoZSApCisJCS8vIFNraXAgdGhlIHdpbmRv
dworCQlpZiAoIGlkICE9IDEgJiYgalF1ZXJ5LmNhY2hlWyBpZCBdLmhhbmRsZSApCisJCQlqUXVl
cnkuZXZlbnQucmVtb3ZlKCBqUXVlcnkuY2FjaGVbIGlkIF0uaGFuZGxlLmVsZW0gKTsKK30pOyAK
KyhmdW5jdGlvbigpeworCisJalF1ZXJ5LnN1cHBvcnQgPSB7fTsKKworCXZhciByb290ID0gZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LAorCQlzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzY3JpcHQiKSwKKwkJZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksCisJCWlk
ID0gInNjcmlwdCIgKyAobmV3IERhdGUpLmdldFRpbWUoKTsKKworCWRpdi5zdHlsZS5kaXNwbGF5
ID0gIm5vbmUiOworCWRpdi5pbm5lckhUTUwgPSAnICAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxh
IGhyZWY9Ii9hIiBzdHlsZT0iY29sb3I6cmVkO2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTsiPmE8L2E+
PHNlbGVjdD48b3B0aW9uPnRleHQ8L29wdGlvbj48L3NlbGVjdD48b2JqZWN0PjxwYXJhbS8+PC9v
YmplY3Q+JzsKKworCXZhciBhbGwgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSwKKwkJ
YSA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdOworCisJLy8gQ2FuJ3QgZ2V0IGJh
c2ljIHRlc3Qgc3VwcG9ydAorCWlmICggIWFsbCB8fCAhYWxsLmxlbmd0aCB8fCAhYSApIHsKKwkJ
cmV0dXJuOworCX0KKworCWpRdWVyeS5zdXBwb3J0ID0geworCQkvLyBJRSBzdHJpcHMgbGVhZGlu
ZyB3aGl0ZXNwYWNlIHdoZW4gLmlubmVySFRNTCBpcyB1c2VkCisJCWxlYWRpbmdXaGl0ZXNwYWNl
OiBkaXYuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PSAzLAorCQkKKwkJLy8gTWFrZSBzdXJlIHRoYXQg
dGJvZHkgZWxlbWVudHMgYXJlbid0IGF1dG9tYXRpY2FsbHkgaW5zZXJ0ZWQKKwkJLy8gSUUgd2ls
bCBpbnNlcnQgdGhlbSBpbnRvIGVtcHR5IHRhYmxlcworCQl0Ym9keTogIWRpdi5nZXRFbGVtZW50
c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsCisJCQorCQkvLyBNYWtlIHN1cmUgdGhhdCB5b3Ug
Y2FuIGdldCBhbGwgZWxlbWVudHMgaW4gYW4gPG9iamVjdD4gZWxlbWVudAorCQkvLyBJRSA3IGFs
d2F5cyByZXR1cm5zIG5vIHJlc3VsdHMKKwkJb2JqZWN0QWxsOiAhIWRpdi5nZXRFbGVtZW50c0J5
VGFnTmFtZSgib2JqZWN0IilbMF0KKwkJCS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0
aCwKKwkJCisJCS8vIE1ha2Ugc3VyZSB0aGF0IGxpbmsgZWxlbWVudHMgZ2V0IHNlcmlhbGl6ZWQg
Y29ycmVjdGx5IGJ5IGlubmVySFRNTAorCQkvLyBUaGlzIHJlcXVpcmVzIGEgd3JhcHBlciBlbGVt
ZW50IGluIElFCisJCWh0bWxTZXJpYWxpemU6ICEhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJs
aW5rIikubGVuZ3RoLAorCQkKKwkJLy8gR2V0IHRoZSBzdHlsZSBpbmZvcm1hdGlvbiBmcm9tIGdl
dEF0dHJpYnV0ZQorCQkvLyAoSUUgdXNlcyAuY3NzVGV4dCBpbnN0ZWQpCisJCXN0eWxlOiAvcmVk
Ly50ZXN0KCBhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSApLAorCQkKKwkJLy8gTWFrZSBzdXJlIHRo
YXQgVVJMcyBhcmVuJ3QgbWFuaXB1bGF0ZWQKKwkJLy8gKElFIG5vcm1hbGl6ZXMgaXQgYnkgZGVm
YXVsdCkKKwkJaHJlZk5vcm1hbGl6ZWQ6IGEuZ2V0QXR0cmlidXRlKCJocmVmIikgPT09ICIvYSIs
CisJCQorCQkvLyBNYWtlIHN1cmUgdGhhdCBlbGVtZW50IG9wYWNpdHkgZXhpc3RzCisJCS8vIChJ
RSB1c2VzIGZpbHRlciBpbnN0ZWFkKQorCQlvcGFjaXR5OiBhLnN0eWxlLm9wYWNpdHkgPT09ICIw
LjUiLAorCQkKKwkJLy8gVmVyaWZ5IHN0eWxlIGZsb2F0IGV4aXN0ZW5jZQorCQkvLyAoSUUgdXNl
cyBzdHlsZUZsb2F0IGluc3RlYWQgb2YgY3NzRmxvYXQpCisJCWNzc0Zsb2F0OiAhIWEuc3R5bGUu
Y3NzRmxvYXQsCisKKwkJLy8gV2lsbCBiZSBkZWZpbmVkIGxhdGVyCisJCXNjcmlwdEV2YWw6IGZh
bHNlLAorCQlub0Nsb25lRXZlbnQ6IHRydWUsCisJCWJveE1vZGVsOiBudWxsCisJfTsKKwkKKwlz
Y3JpcHQudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOworCXRyeSB7CisJCXNjcmlwdC5hcHBlbmRD
aGlsZCggZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoICJ3aW5kb3cuIiArIGlkICsgIj0xOyIgKSAp
OworCX0gY2F0Y2goZSl7fQorCisJcm9vdC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgcm9vdC5maXJz
dENoaWxkICk7CisJCisJLy8gTWFrZSBzdXJlIHRoYXQgdGhlIGV4ZWN1dGlvbiBvZiBjb2RlIHdv
cmtzIGJ5IGluamVjdGluZyBhIHNjcmlwdAorCS8vIHRhZyB3aXRoIGFwcGVuZENoaWxkL2NyZWF0
ZVRleHROb2RlCisJLy8gKElFIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzLCBmYWlscywgYW5kIHVzZXMg
LnRleHQgaW5zdGVhZCkKKwlpZiAoIHdpbmRvd1sgaWQgXSApIHsKKwkJalF1ZXJ5LnN1cHBvcnQu
c2NyaXB0RXZhbCA9IHRydWU7CisJCWRlbGV0ZSB3aW5kb3dbIGlkIF07CisJfQorCisJcm9vdC5y
ZW1vdmVDaGlsZCggc2NyaXB0ICk7CisKKwlpZiAoIGRpdi5hdHRhY2hFdmVudCAmJiBkaXYuZmly
ZUV2ZW50ICkgeworCQlkaXYuYXR0YWNoRXZlbnQoIm9uY2xpY2siLCBmdW5jdGlvbigpeworCQkJ
Ly8gQ2xvbmluZyBhIG5vZGUgc2hvdWxkbid0IGNvcHkgb3ZlciBhbnkKKwkJCS8vIGJvdW5kIGV2
ZW50IGhhbmRsZXJzIChJRSBkb2VzIHRoaXMpCisJCQlqUXVlcnkuc3VwcG9ydC5ub0Nsb25lRXZl
bnQgPSBmYWxzZTsKKwkJCWRpdi5kZXRhY2hFdmVudCgib25jbGljayIsIGFyZ3VtZW50cy5jYWxs
ZWUpOworCQl9KTsKKwkJZGl2LmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKTsK
Kwl9CisKKwkvLyBGaWd1cmUgb3V0IGlmIHRoZSBXM0MgYm94IG1vZGVsIHdvcmtzIGFzIGV4cGVj
dGVkCisJLy8gZG9jdW1lbnQuYm9keSBtdXN0IGV4aXN0IGJlZm9yZSB3ZSBjYW4gZG8gdGhpcwor
CWpRdWVyeShmdW5jdGlvbigpeworCQl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisJCWRpdi5zdHlsZS53aWR0aCA9IGRpdi5zdHlsZS5wYWRkaW5nTGVmdCA9ICIxcHgi
OworCisJCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoIGRpdiApOworCQlqUXVlcnkuYm94TW9k
ZWwgPSBqUXVlcnkuc3VwcG9ydC5ib3hNb2RlbCA9IGRpdi5vZmZzZXRXaWR0aCA9PT0gMjsKKwkJ
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCggZGl2ICkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK
Kwl9KTsKK30pKCk7CisKK3ZhciBzdHlsZUZsb2F0ID0galF1ZXJ5LnN1cHBvcnQuY3NzRmxvYXQg
PyAiY3NzRmxvYXQiIDogInN0eWxlRmxvYXQiOworCitqUXVlcnkucHJvcHMgPSB7CisJImZvciI6
ICJodG1sRm9yIiwKKwkiY2xhc3MiOiAiY2xhc3NOYW1lIiwKKwkiZmxvYXQiOiBzdHlsZUZsb2F0
LAorCWNzc0Zsb2F0OiBzdHlsZUZsb2F0LAorCXN0eWxlRmxvYXQ6IHN0eWxlRmxvYXQsCisJcmVh
ZG9ubHk6ICJyZWFkT25seSIsCisJbWF4bGVuZ3RoOiAibWF4TGVuZ3RoIiwKKwljZWxsc3BhY2lu
ZzogImNlbGxTcGFjaW5nIiwKKwlyb3dzcGFuOiAicm93U3BhbiIsCisJdGFiaW5kZXg6ICJ0YWJJ
bmRleCIKK307CitqUXVlcnkuZm4uZXh0ZW5kKHsKKwkvLyBLZWVwIGEgY29weSBvZiB0aGUgb2xk
IGxvYWQKKwlfbG9hZDogalF1ZXJ5LmZuLmxvYWQsCisKKwlsb2FkOiBmdW5jdGlvbiggdXJsLCBw
YXJhbXMsIGNhbGxiYWNrICkgeworCQlpZiAoIHR5cGVvZiB1cmwgIT09ICJzdHJpbmciICkKKwkJ
CXJldHVybiB0aGlzLl9sb2FkKCB1cmwgKTsKKworCQl2YXIgb2ZmID0gdXJsLmluZGV4T2YoIiAi
KTsKKwkJaWYgKCBvZmYgPj0gMCApIHsKKwkJCXZhciBzZWxlY3RvciA9IHVybC5zbGljZShvZmYs
IHVybC5sZW5ndGgpOworCQkJdXJsID0gdXJsLnNsaWNlKDAsIG9mZik7CisJCX0KKworCQkvLyBE
ZWZhdWx0IHRvIGEgR0VUIHJlcXVlc3QKKwkJdmFyIHR5cGUgPSAiR0VUIjsKKworCQkvLyBJZiB0
aGUgc2Vjb25kIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQKKwkJaWYgKCBwYXJhbXMgKQorCQkJLy8g
SWYgaXQncyBhIGZ1bmN0aW9uCisJCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBwYXJhbXMgKSAp
IHsKKwkJCQkvLyBXZSBhc3N1bWUgdGhhdCBpdCdzIHRoZSBjYWxsYmFjaworCQkJCWNhbGxiYWNr
ID0gcGFyYW1zOworCQkJCXBhcmFtcyA9IG51bGw7CisKKwkJCS8vIE90aGVyd2lzZSwgYnVpbGQg
YSBwYXJhbSBzdHJpbmcKKwkJCX0gZWxzZSBpZiggdHlwZW9mIHBhcmFtcyA9PT0gIm9iamVjdCIg
KSB7CisJCQkJcGFyYW1zID0galF1ZXJ5LnBhcmFtKCBwYXJhbXMgKTsKKwkJCQl0eXBlID0gIlBP
U1QiOworCQkJfQorCisJCXZhciBzZWxmID0gdGhpczsKKworCQkvLyBSZXF1ZXN0IHRoZSByZW1v
dGUgZG9jdW1lbnQKKwkJalF1ZXJ5LmFqYXgoeworCQkJdXJsOiB1cmwsCisJCQl0eXBlOiB0eXBl
LAorCQkJZGF0YVR5cGU6ICJodG1sIiwKKwkJCWRhdGE6IHBhcmFtcywKKwkJCWNvbXBsZXRlOiBm
dW5jdGlvbihyZXMsIHN0YXR1cyl7CisJCQkJLy8gSWYgc3VjY2Vzc2Z1bCwgaW5qZWN0IHRoZSBI
VE1MIGludG8gYWxsIHRoZSBtYXRjaGVkIGVsZW1lbnRzCisJCQkJaWYgKCBzdGF0dXMgPT0gInN1
Y2Nlc3MiIHx8IHN0YXR1cyA9PSAibm90bW9kaWZpZWQiICkKKwkJCQkJLy8gU2VlIGlmIGEgc2Vs
ZWN0b3Igd2FzIHNwZWNpZmllZAorCQkJCQlzZWxmLmh0bWwoIHNlbGVjdG9yID8KKwkJCQkJCS8v
IENyZWF0ZSBhIGR1bW15IGRpdiB0byBob2xkIHRoZSByZXN1bHRzCisJCQkJCQlqUXVlcnkoIjxk
aXYvPiIpCisJCQkJCQkJLy8gaW5qZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgZG9jdW1lbnQgaW4s
IHJlbW92aW5nIHRoZSBzY3JpcHRzCisJCQkJCQkJLy8gdG8gYXZvaWQgYW55ICdQZXJtaXNzaW9u
IERlbmllZCcgZXJyb3JzIGluIElFCisJCQkJCQkJLmFwcGVuZChyZXMucmVzcG9uc2VUZXh0LnJl
cGxhY2UoLzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCAiIikpCisKKwkJCQkJCQkvLyBMb2Nh
dGUgdGhlIHNwZWNpZmllZCBlbGVtZW50cworCQkJCQkJCS5maW5kKHNlbGVjdG9yKSA6CisKKwkJ
CQkJCS8vIElmIG5vdCwganVzdCBpbmplY3QgdGhlIGZ1bGwgcmVzdWx0CisJCQkJCQlyZXMucmVz
cG9uc2VUZXh0ICk7CisKKwkJCQlpZiggY2FsbGJhY2sgKQorCQkJCQlzZWxmLmVhY2goIGNhbGxi
YWNrLCBbcmVzLnJlc3BvbnNlVGV4dCwgc3RhdHVzLCByZXNdICk7CisJCQl9CisJCX0pOworCQly
ZXR1cm4gdGhpczsKKwl9LAorCisJc2VyaWFsaXplOiBmdW5jdGlvbigpIHsKKwkJcmV0dXJuIGpR
dWVyeS5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpOworCX0sCisJc2VyaWFsaXplQXJyYXk6
IGZ1bmN0aW9uKCkgeworCQlyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXsKKwkJCXJldHVybiB0
aGlzLmVsZW1lbnRzID8galF1ZXJ5Lm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKSA6IHRoaXM7CisJ
CX0pCisJCS5maWx0ZXIoZnVuY3Rpb24oKXsKKwkJCXJldHVybiB0aGlzLm5hbWUgJiYgIXRoaXMu
ZGlzYWJsZWQgJiYKKwkJCQkodGhpcy5jaGVja2VkIHx8IC9zZWxlY3R8dGV4dGFyZWEvaS50ZXN0
KHRoaXMubm9kZU5hbWUpIHx8CisJCQkJCS90ZXh0fGhpZGRlbnxwYXNzd29yZHxzZWFyY2gvaS50
ZXN0KHRoaXMudHlwZSkpOworCQl9KQorCQkubWFwKGZ1bmN0aW9uKGksIGVsZW0peworCQkJdmFy
IHZhbCA9IGpRdWVyeSh0aGlzKS52YWwoKTsKKwkJCXJldHVybiB2YWwgPT0gbnVsbCA/IG51bGwg
OgorCQkJCWpRdWVyeS5pc0FycmF5KHZhbCkgPworCQkJCQlqUXVlcnkubWFwKCB2YWwsIGZ1bmN0
aW9uKHZhbCwgaSl7CisJCQkJCQlyZXR1cm4ge25hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbH07
CisJCQkJCX0pIDoKKwkJCQkJe25hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbH07CisJCX0pLmdl
dCgpOworCX0KK30pOworCisvLyBBdHRhY2ggYSBidW5jaCBvZiBmdW5jdGlvbnMgZm9yIGhhbmRs
aW5nIGNvbW1vbiBBSkFYIGV2ZW50cworalF1ZXJ5LmVhY2goICJhamF4U3RhcnQsYWpheFN0b3As
YWpheENvbXBsZXRlLGFqYXhFcnJvcixhamF4U3VjY2VzcyxhamF4U2VuZCIuc3BsaXQoIiwiKSwg
ZnVuY3Rpb24oaSxvKXsKKwlqUXVlcnkuZm5bb10gPSBmdW5jdGlvbihmKXsKKwkJcmV0dXJuIHRo
aXMuYmluZChvLCBmKTsKKwl9OworfSk7CisKK3ZhciBqc2MgPSBub3coKTsKKworalF1ZXJ5LmV4
dGVuZCh7CisgIAorCWdldDogZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2ssIHR5cGUgKSB7
CisJCS8vIHNoaWZ0IGFyZ3VtZW50cyBpZiBkYXRhIGFyZ3VtZW50IHdhcyBvbW1pdGVkCisJCWlm
ICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKKwkJCWNhbGxiYWNrID0gZGF0YTsKKwkJ
CWRhdGEgPSBudWxsOworCQl9CisKKwkJcmV0dXJuIGpRdWVyeS5hamF4KHsKKwkJCXR5cGU6ICJH
RVQiLAorCQkJdXJsOiB1cmwsCisJCQlkYXRhOiBkYXRhLAorCQkJc3VjY2VzczogY2FsbGJhY2ss
CisJCQlkYXRhVHlwZTogdHlwZQorCQl9KTsKKwl9LAorCisJZ2V0U2NyaXB0OiBmdW5jdGlvbigg
dXJsLCBjYWxsYmFjayApIHsKKwkJcmV0dXJuIGpRdWVyeS5nZXQodXJsLCBudWxsLCBjYWxsYmFj
aywgInNjcmlwdCIpOworCX0sCisKKwlnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxs
YmFjayApIHsKKwkJcmV0dXJuIGpRdWVyeS5nZXQodXJsLCBkYXRhLCBjYWxsYmFjaywgImpzb24i
KTsKKwl9LAorCisJcG9zdDogZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2ssIHR5cGUgKSB7
CisJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKKwkJCWNhbGxiYWNrID0gZGF0
YTsKKwkJCWRhdGEgPSB7fTsKKwkJfQorCisJCXJldHVybiBqUXVlcnkuYWpheCh7CisJCQl0eXBl
OiAiUE9TVCIsCisJCQl1cmw6IHVybCwKKwkJCWRhdGE6IGRhdGEsCisJCQlzdWNjZXNzOiBjYWxs
YmFjaywKKwkJCWRhdGFUeXBlOiB0eXBlCisJCX0pOworCX0sCisKKwlhamF4U2V0dXA6IGZ1bmN0
aW9uKCBzZXR0aW5ncyApIHsKKwkJalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LmFqYXhTZXR0aW5ncywg
c2V0dGluZ3MgKTsKKwl9LAorCisJYWpheFNldHRpbmdzOiB7CisJCXVybDogbG9jYXRpb24uaHJl
ZiwKKwkJZ2xvYmFsOiB0cnVlLAorCQl0eXBlOiAiR0VUIiwKKwkJY29udGVudFR5cGU6ICJhcHBs
aWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLAorCQlwcm9jZXNzRGF0YTogdHJ1ZSwKKwkJ
YXN5bmM6IHRydWUsCisJCS8qCisJCXRpbWVvdXQ6IDAsCisJCWRhdGE6IG51bGwsCisJCXVzZXJu
YW1lOiBudWxsLAorCQlwYXNzd29yZDogbnVsbCwKKwkJKi8KKwkJLy8gQ3JlYXRlIHRoZSByZXF1
ZXN0IG9iamVjdDsgTWljcm9zb2Z0IGZhaWxlZCB0byBwcm9wZXJseQorCQkvLyBpbXBsZW1lbnQg
dGhlIFhNTEh0dHBSZXF1ZXN0IGluIElFNywgc28gd2UgdXNlIHRoZSBBY3RpdmVYT2JqZWN0IHdo
ZW4gaXQgaXMgYXZhaWxhYmxlCisJCS8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRlbiBi
eSBjYWxsaW5nIGpRdWVyeS5hamF4U2V0dXAKKwkJeGhyOmZ1bmN0aW9uKCl7CisJCQlyZXR1cm4g
d2luZG93LkFjdGl2ZVhPYmplY3QgPyBuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhU
VFAiKSA6IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworCQl9LAorCQlhY2NlcHRzOiB7CisJCQl4bWw6
ICJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIiwKKwkJCWh0bWw6ICJ0ZXh0L2h0bWwiLAorCQkJ
c2NyaXB0OiAidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiwKKwkJCWpz
b246ICJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLAorCQkJdGV4dDogInRleHQv
cGxhaW4iLAorCQkJX2RlZmF1bHQ6ICIqLyoiCisJCX0KKwl9LAorCisJLy8gTGFzdC1Nb2RpZmll
ZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdAorCWxhc3RNb2RpZmllZDoge30sCisKKwlh
amF4OiBmdW5jdGlvbiggcyApIHsKKwkJLy8gRXh0ZW5kIHRoZSBzZXR0aW5ncywgYnV0IHJlLWV4
dGVuZCAncycgc28gdGhhdCBpdCBjYW4gYmUKKwkJLy8gY2hlY2tlZCBhZ2FpbiBsYXRlciAoaW4g
dGhlIHRlc3Qgc3VpdGUsIHNwZWNpZmljYWxseSkKKwkJcyA9IGpRdWVyeS5leHRlbmQodHJ1ZSwg
cywgalF1ZXJ5LmV4dGVuZCh0cnVlLCB7fSwgalF1ZXJ5LmFqYXhTZXR0aW5ncywgcykpOworCisJ
CXZhciBqc29ucCwganNyZSA9IC89XD8oJnwkKS9nLCBzdGF0dXMsIGRhdGEsCisJCQl0eXBlID0g
cy50eXBlLnRvVXBwZXJDYXNlKCk7CisKKwkJLy8gY29udmVydCBkYXRhIGlmIG5vdCBhbHJlYWR5
IGEgc3RyaW5nCisJCWlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiYgdHlwZW9mIHMuZGF0
YSAhPT0gInN0cmluZyIgKQorCQkJcy5kYXRhID0galF1ZXJ5LnBhcmFtKHMuZGF0YSk7CisKKwkJ
Ly8gSGFuZGxlIEpTT05QIFBhcmFtZXRlciBDYWxsYmFja3MKKwkJaWYgKCBzLmRhdGFUeXBlID09
ICJqc29ucCIgKSB7CisJCQlpZiAoIHR5cGUgPT0gIkdFVCIgKSB7CisJCQkJaWYgKCAhcy51cmwu
bWF0Y2goanNyZSkgKQorCQkJCQlzLnVybCArPSAocy51cmwubWF0Y2goL1w/LykgPyAiJiIgOiAi
PyIpICsgKHMuanNvbnAgfHwgImNhbGxiYWNrIikgKyAiPT8iOworCQkJfSBlbHNlIGlmICggIXMu
ZGF0YSB8fCAhcy5kYXRhLm1hdGNoKGpzcmUpICkKKwkJCQlzLmRhdGEgPSAocy5kYXRhID8gcy5k
YXRhICsgIiYiIDogIiIpICsgKHMuanNvbnAgfHwgImNhbGxiYWNrIikgKyAiPT8iOworCQkJcy5k
YXRhVHlwZSA9ICJqc29uIjsKKwkJfQorCisJCS8vIEJ1aWxkIHRlbXBvcmFyeSBKU09OUCBmdW5j
dGlvbgorCQlpZiAoIHMuZGF0YVR5cGUgPT0gImpzb24iICYmIChzLmRhdGEgJiYgcy5kYXRhLm1h
dGNoKGpzcmUpIHx8IHMudXJsLm1hdGNoKGpzcmUpKSApIHsKKwkJCWpzb25wID0gImpzb25wIiAr
IGpzYysrOworCisJCQkvLyBSZXBsYWNlIHRoZSA9PyBzZXF1ZW5jZSBib3RoIGluIHRoZSBxdWVy
eSBzdHJpbmcgYW5kIHRoZSBkYXRhCisJCQlpZiAoIHMuZGF0YSApCisJCQkJcy5kYXRhID0gKHMu
ZGF0YSArICIiKS5yZXBsYWNlKGpzcmUsICI9IiArIGpzb25wICsgIiQxIik7CisJCQlzLnVybCA9
IHMudXJsLnJlcGxhY2UoanNyZSwgIj0iICsganNvbnAgKyAiJDEiKTsKKworCQkJLy8gV2UgbmVl
ZCB0byBtYWtlIHN1cmUKKwkJCS8vIHRoYXQgYSBKU09OUCBzdHlsZSByZXNwb25zZSBpcyBleGVj
dXRlZCBwcm9wZXJseQorCQkJcy5kYXRhVHlwZSA9ICJzY3JpcHQiOworCisJCQkvLyBIYW5kbGUg
SlNPTlAtc3R5bGUgbG9hZGluZworCQkJd2luZG93WyBqc29ucCBdID0gZnVuY3Rpb24odG1wKXsK
KwkJCQlkYXRhID0gdG1wOworCQkJCXN1Y2Nlc3MoKTsKKwkJCQljb21wbGV0ZSgpOworCQkJCS8v
IEdhcmJhZ2UgY29sbGVjdAorCQkJCXdpbmRvd1sganNvbnAgXSA9IHVuZGVmaW5lZDsKKwkJCQl0
cnl7IGRlbGV0ZSB3aW5kb3dbIGpzb25wIF07IH0gY2F0Y2goZSl7fQorCQkJCWlmICggaGVhZCAp
CisJCQkJCWhlYWQucmVtb3ZlQ2hpbGQoIHNjcmlwdCApOworCQkJfTsKKwkJfQorCisJCWlmICgg
cy5kYXRhVHlwZSA9PSAic2NyaXB0IiAmJiBzLmNhY2hlID09IG51bGwgKQorCQkJcy5jYWNoZSA9
IGZhbHNlOworCisJCWlmICggcy5jYWNoZSA9PT0gZmFsc2UgJiYgdHlwZSA9PSAiR0VUIiApIHsK
KwkJCXZhciB0cyA9IG5vdygpOworCQkJLy8gdHJ5IHJlcGxhY2luZyBfPSBpZiBpdCBpcyB0aGVy
ZQorCQkJdmFyIHJldCA9IHMudXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkvLCAiJDFfPSIg
KyB0cyArICIkMiIpOworCQkJLy8gaWYgbm90aGluZyB3YXMgcmVwbGFjZWQsIGFkZCB0aW1lc3Rh
bXAgdG8gdGhlIGVuZAorCQkJcy51cmwgPSByZXQgKyAoKHJldCA9PSBzLnVybCkgPyAocy51cmwu
bWF0Y2goL1w/LykgPyAiJiIgOiAiPyIpICsgIl89IiArIHRzIDogIiIpOworCQl9CisKKwkJLy8g
SWYgZGF0YSBpcyBhdmFpbGFibGUsIGFwcGVuZCBkYXRhIHRvIHVybCBmb3IgZ2V0IHJlcXVlc3Rz
CisJCWlmICggcy5kYXRhICYmIHR5cGUgPT0gIkdFVCIgKSB7CisJCQlzLnVybCArPSAocy51cmwu
bWF0Y2goL1w/LykgPyAiJiIgOiAiPyIpICsgcy5kYXRhOworCisJCQkvLyBJRSBsaWtlcyB0byBz
ZW5kIGJvdGggZ2V0IGFuZCBwb3N0IGRhdGEsIHByZXZlbnQgdGhpcworCQkJcy5kYXRhID0gbnVs
bDsKKwkJfQorCisJCS8vIFdhdGNoIGZvciBhIG5ldyBzZXQgb2YgcmVxdWVzdHMKKwkJaWYgKCBz
Lmdsb2JhbCAmJiAhIGpRdWVyeS5hY3RpdmUrKyApCisJCQlqUXVlcnkuZXZlbnQudHJpZ2dlcigg
ImFqYXhTdGFydCIgKTsKKworCQkvLyBNYXRjaGVzIGFuIGFic29sdXRlIFVSTCwgYW5kIHNhdmVz
IHRoZSBkb21haW4KKwkJdmFyIHBhcnRzID0gL14oXHcrOik/XC9cLyhbXlwvPyNdKykvLmV4ZWMo
IHMudXJsICk7CisKKwkJLy8gSWYgd2UncmUgcmVxdWVzdGluZyBhIHJlbW90ZSBkb2N1bWVudAor
CQkvLyBhbmQgdHJ5aW5nIHRvIGxvYWQgSlNPTiBvciBTY3JpcHQgd2l0aCBhIEdFVAorCQlpZiAo
IHMuZGF0YVR5cGUgPT0gInNjcmlwdCIgJiYgdHlwZSA9PSAiR0VUIiAmJiBwYXJ0cworCQkJJiYg
KCBwYXJ0c1sxXSAmJiBwYXJ0c1sxXSAhPSBsb2NhdGlvbi5wcm90b2NvbCB8fCBwYXJ0c1syXSAh
PSBsb2NhdGlvbi5ob3N0ICkpeworCisJCQl2YXIgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJoZWFkIilbMF07CisJCQl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic2NyaXB0Iik7CisJCQlzY3JpcHQuc3JjID0gcy51cmw7CisJCQlpZiAocy5zY3JpcHRD
aGFyc2V0KQorCQkJCXNjcmlwdC5jaGFyc2V0ID0gcy5zY3JpcHRDaGFyc2V0OworCisJCQkvLyBI
YW5kbGUgU2NyaXB0IGxvYWRpbmcKKwkJCWlmICggIWpzb25wICkgeworCQkJCXZhciBkb25lID0g
ZmFsc2U7CisKKwkJCQkvLyBBdHRhY2ggaGFuZGxlcnMgZm9yIGFsbCBicm93c2VycworCQkJCXNj
cmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXsKKwkJ
CQkJaWYgKCAhZG9uZSAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fAorCQkJCQkJCXRoaXMucmVhZHlT
dGF0ZSA9PSAibG9hZGVkIiB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgKSB7CisJ
CQkJCQlkb25lID0gdHJ1ZTsKKwkJCQkJCXN1Y2Nlc3MoKTsKKwkJCQkJCWNvbXBsZXRlKCk7CisK
KwkJCQkJCS8vIEhhbmRsZSBtZW1vcnkgbGVhayBpbiBJRQorCQkJCQkJc2NyaXB0Lm9ubG9hZCA9
IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsOworCQkJCQkJaGVhZC5yZW1vdmVDaGls
ZCggc2NyaXB0ICk7CisJCQkJCX0KKwkJCQl9OworCQkJfQorCisJCQloZWFkLmFwcGVuZENoaWxk
KHNjcmlwdCk7CisKKwkJCS8vIFdlIGhhbmRsZSBldmVyeXRoaW5nIHVzaW5nIHRoZSBzY3JpcHQg
ZWxlbWVudCBpbmplY3Rpb24KKwkJCXJldHVybiB1bmRlZmluZWQ7CisJCX0KKworCQl2YXIgcmVx
dWVzdERvbmUgPSBmYWxzZTsKKworCQkvLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JqZWN0CisJCXZh
ciB4aHIgPSBzLnhocigpOworCisJCS8vIE9wZW4gdGhlIHNvY2tldAorCQkvLyBQYXNzaW5nIG51
bGwgdXNlcm5hbWUsIGdlbmVyYXRlcyBhIGxvZ2luIHBvcHVwIG9uIE9wZXJhICgjMjg2NSkKKwkJ
aWYoIHMudXNlcm5hbWUgKQorCQkJeGhyLm9wZW4odHlwZSwgcy51cmwsIHMuYXN5bmMsIHMudXNl
cm5hbWUsIHMucGFzc3dvcmQpOworCQllbHNlCisJCQl4aHIub3Blbih0eXBlLCBzLnVybCwgcy5h
c3luYyk7CisKKwkJLy8gTmVlZCBhbiBleHRyYSB0cnkvY2F0Y2ggZm9yIGNyb3NzIGRvbWFpbiBy
ZXF1ZXN0cyBpbiBGaXJlZm94IDMKKwkJdHJ5IHsKKwkJCS8vIFNldCB0aGUgY29ycmVjdCBoZWFk
ZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudAorCQkJaWYgKCBzLmRhdGEgKQorCQkJCXhoci5zZXRS
ZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCBzLmNvbnRlbnRUeXBlKTsKKworCQkJLy8gU2V0
IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIsIGlmIGlmTW9kaWZpZWQgbW9kZS4KKwkJCWlm
ICggcy5pZk1vZGlmaWVkICkKKwkJCQl4aHIuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQt
U2luY2UiLAorCQkJCQlqUXVlcnkubGFzdE1vZGlmaWVkW3MudXJsXSB8fCAiVGh1LCAwMSBKYW4g
MTk3MCAwMDowMDowMCBHTVQiICk7CisKKwkJCS8vIFNldCBoZWFkZXIgc28gdGhlIGNhbGxlZCBz
Y3JpcHQga25vd3MgdGhhdCBpdCdzIGFuIFhNTEh0dHBSZXF1ZXN0CisJCQl4aHIuc2V0UmVxdWVz
dEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsICJYTUxIdHRwUmVxdWVzdCIpOworCisJCQkvLyBT
ZXQgdGhlIEFjY2VwdHMgaGVhZGVyIGZvciB0aGUgc2VydmVyLCBkZXBlbmRpbmcgb24gdGhlIGRh
dGFUeXBlCisJCQl4aHIuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iiwgcy5kYXRhVHlwZSAmJiBz
LmFjY2VwdHNbIHMuZGF0YVR5cGUgXSA/CisJCQkJcy5hY2NlcHRzWyBzLmRhdGFUeXBlIF0gKyAi
LCAqLyoiIDoKKwkJCQlzLmFjY2VwdHMuX2RlZmF1bHQgKTsKKwkJfSBjYXRjaChlKXt9CisKKwkJ
Ly8gQWxsb3cgY3VzdG9tIGhlYWRlcnMvbWltZXR5cGVzIGFuZCBlYXJseSBhYm9ydAorCQlpZiAo
IHMuYmVmb3JlU2VuZCAmJiBzLmJlZm9yZVNlbmQoeGhyLCBzKSA9PT0gZmFsc2UgKSB7CisJCQkv
LyBIYW5kbGUgdGhlIGdsb2JhbCBBSkFYIGNvdW50ZXIKKwkJCWlmICggcy5nbG9iYWwgJiYgISAt
LWpRdWVyeS5hY3RpdmUgKQorCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCAiYWpheFN0b3AiICk7
CisJCQkvLyBjbG9zZSBvcGVuZGVkIHNvY2tldAorCQkJeGhyLmFib3J0KCk7CisJCQlyZXR1cm4g
ZmFsc2U7CisJCX0KKworCQlpZiAoIHMuZ2xvYmFsICkKKwkJCWpRdWVyeS5ldmVudC50cmlnZ2Vy
KCJhamF4U2VuZCIsIFt4aHIsIHNdKTsKKworCQkvLyBXYWl0IGZvciBhIHJlc3BvbnNlIHRvIGNv
bWUgYmFjaworCQl2YXIgb25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oaXNUaW1lb3V0KXsK
KwkJCS8vIFRoZSByZXF1ZXN0IHdhcyBhYm9ydGVkLCBjbGVhciB0aGUgaW50ZXJ2YWwgYW5kIGRl
Y3JlbWVudCBqUXVlcnkuYWN0aXZlCisJCQlpZiAoeGhyLnJlYWR5U3RhdGUgPT0gMCkgeworCQkJ
CWlmIChpdmFsKSB7CisJCQkJCS8vIGNsZWFyIHBvbGwgaW50ZXJ2YWwKKwkJCQkJY2xlYXJJbnRl
cnZhbChpdmFsKTsKKwkJCQkJaXZhbCA9IG51bGw7CisJCQkJCS8vIEhhbmRsZSB0aGUgZ2xvYmFs
IEFKQVggY291bnRlcgorCQkJCQlpZiAoIHMuZ2xvYmFsICYmICEgLS1qUXVlcnkuYWN0aXZlICkK
KwkJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCAiYWpheFN0b3AiICk7CisJCQkJfQorCQkJLy8g
VGhlIHRyYW5zZmVyIGlzIGNvbXBsZXRlIGFuZCB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIG9yIHRo
ZSByZXF1ZXN0IHRpbWVkIG91dAorCQkJfSBlbHNlIGlmICggIXJlcXVlc3REb25lICYmIHhociAm
JiAoeGhyLnJlYWR5U3RhdGUgPT0gNCB8fCBpc1RpbWVvdXQgPT0gInRpbWVvdXQiKSApIHsKKwkJ
CQlyZXF1ZXN0RG9uZSA9IHRydWU7CisKKwkJCQkvLyBjbGVhciBwb2xsIGludGVydmFsCisJCQkJ
aWYgKGl2YWwpIHsKKwkJCQkJY2xlYXJJbnRlcnZhbChpdmFsKTsKKwkJCQkJaXZhbCA9IG51bGw7
CisJCQkJfQorCisJCQkJc3RhdHVzID0gaXNUaW1lb3V0ID09ICJ0aW1lb3V0IiA/ICJ0aW1lb3V0
IiA6CisJCQkJCSFqUXVlcnkuaHR0cFN1Y2Nlc3MoIHhociApID8gImVycm9yIiA6CisJCQkJCXMu
aWZNb2RpZmllZCAmJiBqUXVlcnkuaHR0cE5vdE1vZGlmaWVkKCB4aHIsIHMudXJsICkgPyAibm90
bW9kaWZpZWQiIDoKKwkJCQkJInN1Y2Nlc3MiOworCisJCQkJaWYgKCBzdGF0dXMgPT0gInN1Y2Nl
c3MiICkgeworCQkJCQkvLyBXYXRjaCBmb3IsIGFuZCBjYXRjaCwgWE1MIGRvY3VtZW50IHBhcnNl
IGVycm9ycworCQkJCQl0cnkgeworCQkJCQkJLy8gcHJvY2VzcyB0aGUgZGF0YSAocnVucyB0aGUg
eG1sIHRocm91Z2ggaHR0cERhdGEgcmVnYXJkbGVzcyBvZiBjYWxsYmFjaykKKwkJCQkJCWRhdGEg
PSBqUXVlcnkuaHR0cERhdGEoIHhociwgcy5kYXRhVHlwZSwgcyApOworCQkJCQl9IGNhdGNoKGUp
IHsKKwkJCQkJCXN0YXR1cyA9ICJwYXJzZXJlcnJvciI7CisJCQkJCX0KKwkJCQl9CisKKwkJCQkv
LyBNYWtlIHN1cmUgdGhhdCB0aGUgcmVxdWVzdCB3YXMgc3VjY2Vzc2Z1bCBvciBub3Rtb2RpZmll
ZAorCQkJCWlmICggc3RhdHVzID09ICJzdWNjZXNzIiApIHsKKwkJCQkJLy8gQ2FjaGUgTGFzdC1N
b2RpZmllZCBoZWFkZXIsIGlmIGlmTW9kaWZpZWQgbW9kZS4KKwkJCQkJdmFyIG1vZFJlczsKKwkJ
CQkJdHJ5IHsKKwkJCQkJCW1vZFJlcyA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2Rp
ZmllZCIpOworCQkJCQl9IGNhdGNoKGUpIHt9IC8vIHN3YWxsb3cgZXhjZXB0aW9uIHRocm93biBi
eSBGRiBpZiBoZWFkZXIgaXMgbm90IGF2YWlsYWJsZQorCisJCQkJCWlmICggcy5pZk1vZGlmaWVk
ICYmIG1vZFJlcyApCisJCQkJCQlqUXVlcnkubGFzdE1vZGlmaWVkW3MudXJsXSA9IG1vZFJlczsK
KworCQkJCQkvLyBKU09OUCBoYW5kbGVzIGl0cyBvd24gc3VjY2VzcyBjYWxsYmFjaworCQkJCQlp
ZiAoICFqc29ucCApCisJCQkJCQlzdWNjZXNzKCk7CisJCQkJfSBlbHNlCisJCQkJCWpRdWVyeS5o
YW5kbGVFcnJvcihzLCB4aHIsIHN0YXR1cyk7CisKKwkJCQkvLyBGaXJlIHRoZSBjb21wbGV0ZSBo
YW5kbGVycworCQkJCWNvbXBsZXRlKCk7CisKKwkJCQlpZiAoIGlzVGltZW91dCApCisJCQkJCXho
ci5hYm9ydCgpOworCisJCQkJLy8gU3RvcCBtZW1vcnkgbGVha3MKKwkJCQlpZiAoIHMuYXN5bmMg
KQorCQkJCQl4aHIgPSBudWxsOworCQkJfQorCQl9OworCisJCWlmICggcy5hc3luYyApIHsKKwkJ
CS8vIGRvbid0IGF0dGFjaCB0aGUgaGFuZGxlciB0byB0aGUgcmVxdWVzdCwganVzdCBwb2xsIGl0
IGluc3RlYWQKKwkJCXZhciBpdmFsID0gc2V0SW50ZXJ2YWwob25yZWFkeXN0YXRlY2hhbmdlLCAx
Myk7CisKKwkJCS8vIFRpbWVvdXQgY2hlY2tlcgorCQkJaWYgKCBzLnRpbWVvdXQgPiAwICkKKwkJ
CQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CisJCQkJCS8vIENoZWNrIHRvIHNlZSBpZiB0aGUgcmVx
dWVzdCBpcyBzdGlsbCBoYXBwZW5pbmcKKwkJCQkJaWYgKCB4aHIgJiYgIXJlcXVlc3REb25lICkK
KwkJCQkJCW9ucmVhZHlzdGF0ZWNoYW5nZSggInRpbWVvdXQiICk7CisJCQkJfSwgcy50aW1lb3V0
KTsKKwkJfQorCisJCS8vIFNlbmQgdGhlIGRhdGEKKwkJdHJ5IHsKKwkJCXhoci5zZW5kKHMuZGF0
YSk7CisJCX0gY2F0Y2goZSkgeworCQkJalF1ZXJ5LmhhbmRsZUVycm9yKHMsIHhociwgbnVsbCwg
ZSk7CisJCX0KKworCQkvLyBmaXJlZm94IDEuNSBkb2Vzbid0IGZpcmUgc3RhdGVjaGFuZ2UgZm9y
IHN5bmMgcmVxdWVzdHMKKwkJaWYgKCAhcy5hc3luYyApCisJCQlvbnJlYWR5c3RhdGVjaGFuZ2Uo
KTsKKworCQlmdW5jdGlvbiBzdWNjZXNzKCl7CisJCQkvLyBJZiBhIGxvY2FsIGNhbGxiYWNrIHdh
cyBzcGVjaWZpZWQsIGZpcmUgaXQgYW5kIHBhc3MgaXQgdGhlIGRhdGEKKwkJCWlmICggcy5zdWNj
ZXNzICkKKwkJCQlzLnN1Y2Nlc3MoIGRhdGEsIHN0YXR1cyApOworCisJCQkvLyBGaXJlIHRoZSBn
bG9iYWwgY2FsbGJhY2sKKwkJCWlmICggcy5nbG9iYWwgKQorCQkJCWpRdWVyeS5ldmVudC50cmln
Z2VyKCAiYWpheFN1Y2Nlc3MiLCBbeGhyLCBzXSApOworCQl9CisKKwkJZnVuY3Rpb24gY29tcGxl
dGUoKXsKKwkJCS8vIFByb2Nlc3MgcmVzdWx0CisJCQlpZiAoIHMuY29tcGxldGUgKQorCQkJCXMu
Y29tcGxldGUoeGhyLCBzdGF0dXMpOworCisJCQkvLyBUaGUgcmVxdWVzdCB3YXMgY29tcGxldGVk
CisJCQlpZiAoIHMuZ2xvYmFsICkKKwkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggImFqYXhDb21w
bGV0ZSIsIFt4aHIsIHNdICk7CisKKwkJCS8vIEhhbmRsZSB0aGUgZ2xvYmFsIEFKQVggY291bnRl
cgorCQkJaWYgKCBzLmdsb2JhbCAmJiAhIC0talF1ZXJ5LmFjdGl2ZSApCisJCQkJalF1ZXJ5LmV2
ZW50LnRyaWdnZXIoICJhamF4U3RvcCIgKTsKKwkJfQorCisJCS8vIHJldHVybiBYTUxIdHRwUmVx
dWVzdCB0byBhbGxvdyBhYm9ydGluZyB0aGUgcmVxdWVzdCBldGMuCisJCXJldHVybiB4aHI7CisJ
fSwKKworCWhhbmRsZUVycm9yOiBmdW5jdGlvbiggcywgeGhyLCBzdGF0dXMsIGUgKSB7CisJCS8v
IElmIGEgbG9jYWwgY2FsbGJhY2sgd2FzIHNwZWNpZmllZCwgZmlyZSBpdAorCQlpZiAoIHMuZXJy
b3IgKSBzLmVycm9yKCB4aHIsIHN0YXR1cywgZSApOworCisJCS8vIEZpcmUgdGhlIGdsb2JhbCBj
YWxsYmFjaworCQlpZiAoIHMuZ2xvYmFsICkKKwkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCAiYWph
eEVycm9yIiwgW3hociwgcywgZV0gKTsKKwl9LAorCisJLy8gQ291bnRlciBmb3IgaG9sZGluZyB0
aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzCisJYWN0aXZlOiAwLAorCisJLy8gRGV0ZXJtaW5l
cyBpZiBhbiBYTUxIdHRwUmVxdWVzdCB3YXMgc3VjY2Vzc2Z1bCBvciBub3QKKwlodHRwU3VjY2Vz
czogZnVuY3Rpb24oIHhociApIHsKKwkJdHJ5IHsKKwkJCS8vIElFIGVycm9yIHNvbWV0aW1lcyBy
ZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0IHNvIHRyZWF0IGl0IGFzIHN1Y2Nlc3Ms
IHNlZSAjMTQ1MAorCQkJcmV0dXJuICF4aHIuc3RhdHVzICYmIGxvY2F0aW9uLnByb3RvY29sID09
ICJmaWxlOiIgfHwKKwkJCQkoIHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAg
KSB8fCB4aHIuc3RhdHVzID09IDMwNCB8fCB4aHIuc3RhdHVzID09IDEyMjM7CisJCX0gY2F0Y2go
ZSl7fQorCQlyZXR1cm4gZmFsc2U7CisJfSwKKworCS8vIERldGVybWluZXMgaWYgYW4gWE1MSHR0
cFJlcXVlc3QgcmV0dXJucyBOb3RNb2RpZmllZAorCWh0dHBOb3RNb2RpZmllZDogZnVuY3Rpb24o
IHhociwgdXJsICkgeworCQl0cnkgeworCQkJdmFyIHhoclJlcyA9IHhoci5nZXRSZXNwb25zZUhl
YWRlcigiTGFzdC1Nb2RpZmllZCIpOworCisJCQkvLyBGaXJlZm94IGFsd2F5cyByZXR1cm5zIDIw
MC4gY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlCisJCQlyZXR1cm4geGhyLnN0YXR1cyA9PSAzMDQg
fHwgeGhyUmVzID09IGpRdWVyeS5sYXN0TW9kaWZpZWRbdXJsXTsKKwkJfSBjYXRjaChlKXt9CisJ
CXJldHVybiBmYWxzZTsKKwl9LAorCisJaHR0cERhdGE6IGZ1bmN0aW9uKCB4aHIsIHR5cGUsIHMg
KSB7CisJCXZhciBjdCA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIiksCisJ
CQl4bWwgPSB0eXBlID09ICJ4bWwiIHx8ICF0eXBlICYmIGN0ICYmIGN0LmluZGV4T2YoInhtbCIp
ID49IDAsCisJCQlkYXRhID0geG1sID8geGhyLnJlc3BvbnNlWE1MIDogeGhyLnJlc3BvbnNlVGV4
dDsKKworCQlpZiAoIHhtbCAmJiBkYXRhLmRvY3VtZW50RWxlbWVudC50YWdOYW1lID09ICJwYXJz
ZXJlcnJvciIgKQorCQkJdGhyb3cgInBhcnNlcmVycm9yIjsKKwkJCQorCQkvLyBBbGxvdyBhIHBy
ZS1maWx0ZXJpbmcgZnVuY3Rpb24gdG8gc2FuaXRpemUgdGhlIHJlc3BvbnNlCisJCS8vIHMgIT0g
bnVsbCBpcyBjaGVja2VkIHRvIGtlZXAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKwkJaWYoIHMg
JiYgcy5kYXRhRmlsdGVyICkKKwkJCWRhdGEgPSBzLmRhdGFGaWx0ZXIoIGRhdGEsIHR5cGUgKTsK
KworCQkvLyBUaGUgZmlsdGVyIGNhbiBhY3R1YWxseSBwYXJzZSB0aGUgcmVzcG9uc2UKKwkJaWYo
IHR5cGVvZiBkYXRhID09PSAic3RyaW5nIiApeworCisJCQkvLyBJZiB0aGUgdHlwZSBpcyAic2Ny
aXB0IiwgZXZhbCBpdCBpbiBnbG9iYWwgY29udGV4dAorCQkJaWYgKCB0eXBlID09ICJzY3JpcHQi
ICkKKwkJCQlqUXVlcnkuZ2xvYmFsRXZhbCggZGF0YSApOworCisJCQkvLyBHZXQgdGhlIEphdmFT
Y3JpcHQgb2JqZWN0LCBpZiBKU09OIGlzIHVzZWQuCisJCQlpZiAoIHR5cGUgPT0gImpzb24iICkK
KwkJCQlkYXRhID0gd2luZG93WyJldmFsIl0oIigiICsgZGF0YSArICIpIik7CisJCX0KKwkJCisJ
CXJldHVybiBkYXRhOworCX0sCisKKwkvLyBTZXJpYWxpemUgYW4gYXJyYXkgb2YgZm9ybSBlbGVt
ZW50cyBvciBhIHNldCBvZgorCS8vIGtleS92YWx1ZXMgaW50byBhIHF1ZXJ5IHN0cmluZworCXBh
cmFtOiBmdW5jdGlvbiggYSApIHsKKwkJdmFyIHMgPSBbIF07CisKKwkJZnVuY3Rpb24gYWRkKCBr
ZXksIHZhbHVlICl7CisJCQlzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkg
KyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpOworCQl9OworCisJCS8vIElmIGFuIGFy
cmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5CisJCS8vIG9mIGZv
cm0gZWxlbWVudHMKKwkJaWYgKCBqUXVlcnkuaXNBcnJheShhKSB8fCBhLmpxdWVyeSApCisJCQkv
LyBTZXJpYWxpemUgdGhlIGZvcm0gZWxlbWVudHMKKwkJCWpRdWVyeS5lYWNoKCBhLCBmdW5jdGlv
bigpeworCQkJCWFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7CisJCQl9KTsKKworCQkvLyBP
dGhlcndpc2UsIGFzc3VtZSB0aGF0IGl0J3MgYW4gb2JqZWN0IG9mIGtleS92YWx1ZSBwYWlycwor
CQllbHNlCisJCQkvLyBTZXJpYWxpemUgdGhlIGtleS92YWx1ZXMKKwkJCWZvciAoIHZhciBqIGlu
IGEgKQorCQkJCS8vIElmIHRoZSB2YWx1ZSBpcyBhbiBhcnJheSB0aGVuIHRoZSBrZXkgbmFtZXMg
bmVlZCB0byBiZSByZXBlYXRlZAorCQkJCWlmICggalF1ZXJ5LmlzQXJyYXkoYVtqXSkgKQorCQkJ
CQlqUXVlcnkuZWFjaCggYVtqXSwgZnVuY3Rpb24oKXsKKwkJCQkJCWFkZCggaiwgdGhpcyApOwor
CQkJCQl9KTsKKwkJCQllbHNlCisJCQkJCWFkZCggaiwgalF1ZXJ5LmlzRnVuY3Rpb24oYVtqXSkg
PyBhW2pdKCkgOiBhW2pdICk7CisKKwkJLy8gUmV0dXJuIHRoZSByZXN1bHRpbmcgc2VyaWFsaXph
dGlvbgorCQlyZXR1cm4gcy5qb2luKCImIikucmVwbGFjZSgvJTIwL2csICIrIik7CisJfQorCit9
KTsKK3ZhciBlbGVtZGlzcGxheSA9IHt9LAorCXRpbWVySWQsCisJZnhBdHRycyA9IFsKKwkJLy8g
aGVpZ2h0IGFuaW1hdGlvbnMKKwkJWyAiaGVpZ2h0IiwgIm1hcmdpblRvcCIsICJtYXJnaW5Cb3R0
b20iLCAicGFkZGluZ1RvcCIsICJwYWRkaW5nQm90dG9tIiBdLAorCQkvLyB3aWR0aCBhbmltYXRp
b25zCisJCVsgIndpZHRoIiwgIm1hcmdpbkxlZnQiLCAibWFyZ2luUmlnaHQiLCAicGFkZGluZ0xl
ZnQiLCAicGFkZGluZ1JpZ2h0IiBdLAorCQkvLyBvcGFjaXR5IGFuaW1hdGlvbnMKKwkJWyAib3Bh
Y2l0eSIgXQorCV07CisKK2Z1bmN0aW9uIGdlbkZ4KCB0eXBlLCBudW0gKXsKKwl2YXIgb2JqID0g
e307CisJalF1ZXJ5LmVhY2goIGZ4QXR0cnMuY29uY2F0LmFwcGx5KFtdLCBmeEF0dHJzLnNsaWNl
KDAsbnVtKSksIGZ1bmN0aW9uKCl7CisJCW9ialsgdGhpcyBdID0gdHlwZTsKKwl9KTsKKwlyZXR1
cm4gb2JqOworfQorCitqUXVlcnkuZm4uZXh0ZW5kKHsKKwlzaG93OiBmdW5jdGlvbihzcGVlZCxj
YWxsYmFjayl7CisJCWlmICggc3BlZWQgKSB7CisJCQlyZXR1cm4gdGhpcy5hbmltYXRlKCBnZW5G
eCgic2hvdyIsIDMpLCBzcGVlZCwgY2FsbGJhY2spOworCQl9IGVsc2UgeworCQkJZm9yICggdmFy
IGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKXsKKwkJCQl2YXIgb2xkID0galF1
ZXJ5LmRhdGEodGhpc1tpXSwgIm9sZGRpc3BsYXkiKTsKKwkJCQkKKwkJCQl0aGlzW2ldLnN0eWxl
LmRpc3BsYXkgPSBvbGQgfHwgIiI7CisJCQkJCisJCQkJaWYgKCBqUXVlcnkuY3NzKHRoaXNbaV0s
ICJkaXNwbGF5IikgPT09ICJub25lIiApIHsKKwkJCQkJdmFyIHRhZ05hbWUgPSB0aGlzW2ldLnRh
Z05hbWUsIGRpc3BsYXk7CisJCQkJCQorCQkJCQlpZiAoIGVsZW1kaXNwbGF5WyB0YWdOYW1lIF0g
KSB7CisJCQkJCQlkaXNwbGF5ID0gZWxlbWRpc3BsYXlbIHRhZ05hbWUgXTsKKwkJCQkJfSBlbHNl
IHsKKwkJCQkJCXZhciBlbGVtID0galF1ZXJ5KCI8IiArIHRhZ05hbWUgKyAiIC8+IikuYXBwZW5k
VG8oImJvZHkiKTsKKwkJCQkJCQorCQkJCQkJZGlzcGxheSA9IGVsZW0uY3NzKCJkaXNwbGF5Iik7
CisJCQkJCQlpZiAoIGRpc3BsYXkgPT09ICJub25lIiApCisJCQkJCQkJZGlzcGxheSA9ICJibG9j
ayI7CisJCQkJCQkKKwkJCQkJCWVsZW0ucmVtb3ZlKCk7CisJCQkJCQkKKwkJCQkJCWVsZW1kaXNw
bGF5WyB0YWdOYW1lIF0gPSBkaXNwbGF5OworCQkJCQl9CisJCQkJCQorCQkJCQlqUXVlcnkuZGF0
YSh0aGlzW2ldLCAib2xkZGlzcGxheSIsIGRpc3BsYXkpOworCQkJCX0KKwkJCX0KKworCQkJLy8g
U2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wCisJCQkvLyB0
byBhdm9pZCB0aGUgY29uc3RhbnQgcmVmbG93CisJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlz
Lmxlbmd0aDsgaSA8IGw7IGkrKyApeworCQkJCXRoaXNbaV0uc3R5bGUuZGlzcGxheSA9IGpRdWVy
eS5kYXRhKHRoaXNbaV0sICJvbGRkaXNwbGF5IikgfHwgIiI7CisJCQl9CisJCQkKKwkJCXJldHVy
biB0aGlzOworCQl9CisJfSwKKworCWhpZGU6IGZ1bmN0aW9uKHNwZWVkLGNhbGxiYWNrKXsKKwkJ
aWYgKCBzcGVlZCApIHsKKwkJCXJldHVybiB0aGlzLmFuaW1hdGUoIGdlbkZ4KCJoaWRlIiwgMyks
IHNwZWVkLCBjYWxsYmFjayk7CisJCX0gZWxzZSB7CisJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0
aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApeworCQkJCXZhciBvbGQgPSBqUXVlcnkuZGF0YSh0aGlz
W2ldLCAib2xkZGlzcGxheSIpOworCQkJCWlmICggIW9sZCAmJiBvbGQgIT09ICJub25lIiApCisJ
CQkJCWpRdWVyeS5kYXRhKHRoaXNbaV0sICJvbGRkaXNwbGF5IiwgalF1ZXJ5LmNzcyh0aGlzW2ld
LCAiZGlzcGxheSIpKTsKKwkJCX0KKworCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVt
ZW50cyBpbiBhIHNlY29uZCBsb29wCisJCQkvLyB0byBhdm9pZCB0aGUgY29uc3RhbnQgcmVmbG93
CisJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApeworCQkJ
CXRoaXNbaV0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKwkJCX0KKworCQkJcmV0dXJuIHRoaXM7
CisJCX0KKwl9LAorCisJLy8gU2F2ZSB0aGUgb2xkIHRvZ2dsZSBmdW5jdGlvbgorCV90b2dnbGU6
IGpRdWVyeS5mbi50b2dnbGUsCisKKwl0b2dnbGU6IGZ1bmN0aW9uKCBmbiwgZm4yICl7CisJCXZh
ciBib29sID0gdHlwZW9mIGZuID09PSAiYm9vbGVhbiI7CisKKwkJcmV0dXJuIGpRdWVyeS5pc0Z1
bmN0aW9uKGZuKSAmJiBqUXVlcnkuaXNGdW5jdGlvbihmbjIpID8KKwkJCXRoaXMuX3RvZ2dsZS5h
cHBseSggdGhpcywgYXJndW1lbnRzICkgOgorCQkJZm4gPT0gbnVsbCB8fCBib29sID8KKwkJCQl0
aGlzLmVhY2goZnVuY3Rpb24oKXsKKwkJCQkJdmFyIHN0YXRlID0gYm9vbCA/IGZuIDogalF1ZXJ5
KHRoaXMpLmlzKCI6aGlkZGVuIik7CisJCQkJCWpRdWVyeSh0aGlzKVsgc3RhdGUgPyAic2hvdyIg
OiAiaGlkZSIgXSgpOworCQkJCX0pIDoKKwkJCQl0aGlzLmFuaW1hdGUoZ2VuRngoInRvZ2dsZSIs
IDMpLCBmbiwgZm4yKTsKKwl9LAorCisJZmFkZVRvOiBmdW5jdGlvbihzcGVlZCx0byxjYWxsYmFj
ayl7CisJCXJldHVybiB0aGlzLmFuaW1hdGUoe29wYWNpdHk6IHRvfSwgc3BlZWQsIGNhbGxiYWNr
KTsKKwl9LAorCisJYW5pbWF0ZTogZnVuY3Rpb24oIHByb3AsIHNwZWVkLCBlYXNpbmcsIGNhbGxi
YWNrICkgeworCQl2YXIgb3B0YWxsID0galF1ZXJ5LnNwZWVkKHNwZWVkLCBlYXNpbmcsIGNhbGxi
YWNrKTsKKworCQlyZXR1cm4gdGhpc1sgb3B0YWxsLnF1ZXVlID09PSBmYWxzZSA/ICJlYWNoIiA6
ICJxdWV1ZSIgXShmdW5jdGlvbigpeworCQkKKwkJCXZhciBvcHQgPSBqUXVlcnkuZXh0ZW5kKHt9
LCBvcHRhbGwpLCBwLAorCQkJCWhpZGRlbiA9IHRoaXMubm9kZVR5cGUgPT0gMSAmJiBqUXVlcnko
dGhpcykuaXMoIjpoaWRkZW4iKSwKKwkJCQlzZWxmID0gdGhpczsKKwkKKwkJCWZvciAoIHAgaW4g
cHJvcCApIHsKKwkJCQlpZiAoIHByb3BbcF0gPT0gImhpZGUiICYmIGhpZGRlbiB8fCBwcm9wW3Bd
ID09ICJzaG93IiAmJiAhaGlkZGVuICkKKwkJCQkJcmV0dXJuIG9wdC5jb21wbGV0ZS5jYWxsKHRo
aXMpOworCisJCQkJaWYgKCAoIHAgPT0gImhlaWdodCIgfHwgcCA9PSAid2lkdGgiICkgJiYgdGhp
cy5zdHlsZSApIHsKKwkJCQkJLy8gU3RvcmUgZGlzcGxheSBwcm9wZXJ0eQorCQkJCQlvcHQuZGlz
cGxheSA9IGpRdWVyeS5jc3ModGhpcywgImRpc3BsYXkiKTsKKworCQkJCQkvLyBNYWtlIHN1cmUg
dGhhdCBub3RoaW5nIHNuZWFrcyBvdXQKKwkJCQkJb3B0Lm92ZXJmbG93ID0gdGhpcy5zdHlsZS5v
dmVyZmxvdzsKKwkJCQl9CisJCQl9CisKKwkJCWlmICggb3B0Lm92ZXJmbG93ICE9IG51bGwgKQor
CQkJCXRoaXMuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKKworCQkJb3B0LmN1ckFuaW0gPSBq
UXVlcnkuZXh0ZW5kKHt9LCBwcm9wKTsKKworCQkJalF1ZXJ5LmVhY2goIHByb3AsIGZ1bmN0aW9u
KG5hbWUsIHZhbCl7CisJCQkJdmFyIGUgPSBuZXcgalF1ZXJ5LmZ4KCBzZWxmLCBvcHQsIG5hbWUg
KTsKKworCQkJCWlmICggL3RvZ2dsZXxzaG93fGhpZGUvLnRlc3QodmFsKSApCisJCQkJCWVbIHZh
bCA9PSAidG9nZ2xlIiA/IGhpZGRlbiA/ICJzaG93IiA6ICJoaWRlIiA6IHZhbCBdKCBwcm9wICk7
CisJCQkJZWxzZSB7CisJCQkJCXZhciBwYXJ0cyA9IHZhbC50b1N0cmluZygpLm1hdGNoKC9eKFsr
LV09KT8oW1xkKy0uXSspKC4qKSQvKSwKKwkJCQkJCXN0YXJ0ID0gZS5jdXIodHJ1ZSkgfHwgMDsK
KworCQkJCQlpZiAoIHBhcnRzICkgeworCQkJCQkJdmFyIGVuZCA9IHBhcnNlRmxvYXQocGFydHNb
Ml0pLAorCQkJCQkJCXVuaXQgPSBwYXJ0c1szXSB8fCAicHgiOworCisJCQkJCQkvLyBXZSBuZWVk
IHRvIGNvbXB1dGUgc3RhcnRpbmcgdmFsdWUKKwkJCQkJCWlmICggdW5pdCAhPSAicHgiICkgewor
CQkJCQkJCXNlbGYuc3R5bGVbIG5hbWUgXSA9IChlbmQgfHwgMSkgKyB1bml0OworCQkJCQkJCXN0
YXJ0ID0gKChlbmQgfHwgMSkgLyBlLmN1cih0cnVlKSkgKiBzdGFydDsKKwkJCQkJCQlzZWxmLnN0
eWxlWyBuYW1lIF0gPSBzdGFydCArIHVuaXQ7CisJCQkJCQl9CisKKwkJCQkJCS8vIElmIGEgKz0v
LT0gdG9rZW4gd2FzIHByb3ZpZGVkLCB3ZSdyZSBkb2luZyBhIHJlbGF0aXZlIGFuaW1hdGlvbgor
CQkJCQkJaWYgKCBwYXJ0c1sxXSApCisJCQkJCQkJZW5kID0gKChwYXJ0c1sxXSA9PSAiLT0iID8g
LTEgOiAxKSAqIGVuZCkgKyBzdGFydDsKKworCQkJCQkJZS5jdXN0b20oIHN0YXJ0LCBlbmQsIHVu
aXQgKTsKKwkJCQkJfSBlbHNlCisJCQkJCQllLmN1c3RvbSggc3RhcnQsIHZhbCwgIiIgKTsKKwkJ
CQl9CisJCQl9KTsKKworCQkJLy8gRm9yIEpTIHN0cmljdCBjb21wbGlhbmNlCisJCQlyZXR1cm4g
dHJ1ZTsKKwkJfSk7CisJfSwKKworCXN0b3A6IGZ1bmN0aW9uKGNsZWFyUXVldWUsIGdvdG9FbmQp
eworCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKKworCQlpZiAoY2xlYXJRdWV1ZSkKKwkJ
CXRoaXMucXVldWUoW10pOworCisJCXRoaXMuZWFjaChmdW5jdGlvbigpeworCQkJLy8gZ28gaW4g
cmV2ZXJzZSBvcmRlciBzbyBhbnl0aGluZyBhZGRlZCB0byB0aGUgcXVldWUgZHVyaW5nIHRoZSBs
b29wIGlzIGlnbm9yZWQKKwkJCWZvciAoIHZhciBpID0gdGltZXJzLmxlbmd0aCAtIDE7IGkgPj0g
MDsgaS0tICkKKwkJCQlpZiAoIHRpbWVyc1tpXS5lbGVtID09IHRoaXMgKSB7CisJCQkJCWlmIChn
b3RvRW5kKQorCQkJCQkJLy8gZm9yY2UgdGhlIG5leHQgc3RlcCB0byBiZSB0aGUgbGFzdAorCQkJ
CQkJdGltZXJzW2ldKHRydWUpOworCQkJCQl0aW1lcnMuc3BsaWNlKGksIDEpOworCQkJCX0KKwkJ
fSk7CisKKwkJLy8gc3RhcnQgdGhlIG5leHQgaW4gdGhlIHF1ZXVlIGlmIHRoZSBsYXN0IHN0ZXAg
d2Fzbid0IGZvcmNlZAorCQlpZiAoIWdvdG9FbmQpCisJCQl0aGlzLmRlcXVldWUoKTsKKworCQly
ZXR1cm4gdGhpczsKKwl9CisKK30pOworCisvLyBHZW5lcmF0ZSBzaG9ydGN1dHMgZm9yIGN1c3Rv
bSBhbmltYXRpb25zCitqUXVlcnkuZWFjaCh7CisJc2xpZGVEb3duOiBnZW5GeCgic2hvdyIsIDEp
LAorCXNsaWRlVXA6IGdlbkZ4KCJoaWRlIiwgMSksCisJc2xpZGVUb2dnbGU6IGdlbkZ4KCJ0b2dn
bGUiLCAxKSwKKwlmYWRlSW46IHsgb3BhY2l0eTogInNob3ciIH0sCisJZmFkZU91dDogeyBvcGFj
aXR5OiAiaGlkZSIgfQorfSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICl7CisJalF1ZXJ5LmZuWyBu
YW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGNhbGxiYWNrICl7CisJCXJldHVybiB0aGlzLmFuaW1h
dGUoIHByb3BzLCBzcGVlZCwgY2FsbGJhY2sgKTsKKwl9OworfSk7CisKK2pRdWVyeS5leHRlbmQo
eworCisJc3BlZWQ6IGZ1bmN0aW9uKHNwZWVkLCBlYXNpbmcsIGZuKSB7CisJCXZhciBvcHQgPSB0
eXBlb2Ygc3BlZWQgPT09ICJvYmplY3QiID8gc3BlZWQgOiB7CisJCQljb21wbGV0ZTogZm4gfHwg
IWZuICYmIGVhc2luZyB8fAorCQkJCWpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVk
LAorCQkJZHVyYXRpb246IHNwZWVkLAorCQkJZWFzaW5nOiBmbiAmJiBlYXNpbmcgfHwgZWFzaW5n
ICYmICFqUXVlcnkuaXNGdW5jdGlvbihlYXNpbmcpICYmIGVhc2luZworCQl9OworCisJCW9wdC5k
dXJhdGlvbiA9IGpRdWVyeS5meC5vZmYgPyAwIDogdHlwZW9mIG9wdC5kdXJhdGlvbiA9PT0gIm51
bWJlciIgPyBvcHQuZHVyYXRpb24gOgorCQkJalF1ZXJ5LmZ4LnNwZWVkc1tvcHQuZHVyYXRpb25d
IHx8IGpRdWVyeS5meC5zcGVlZHMuX2RlZmF1bHQ7CisKKwkJLy8gUXVldWVpbmcKKwkJb3B0Lm9s
ZCA9IG9wdC5jb21wbGV0ZTsKKwkJb3B0LmNvbXBsZXRlID0gZnVuY3Rpb24oKXsKKwkJCWlmICgg
b3B0LnF1ZXVlICE9PSBmYWxzZSApCisJCQkJalF1ZXJ5KHRoaXMpLmRlcXVldWUoKTsKKwkJCWlm
ICggalF1ZXJ5LmlzRnVuY3Rpb24oIG9wdC5vbGQgKSApCisJCQkJb3B0Lm9sZC5jYWxsKCB0aGlz
ICk7CisJCX07CisKKwkJcmV0dXJuIG9wdDsKKwl9LAorCisJZWFzaW5nOiB7CisJCWxpbmVhcjog
ZnVuY3Rpb24oIHAsIG4sIGZpcnN0TnVtLCBkaWZmICkgeworCQkJcmV0dXJuIGZpcnN0TnVtICsg
ZGlmZiAqIHA7CisJCX0sCisJCXN3aW5nOiBmdW5jdGlvbiggcCwgbiwgZmlyc3ROdW0sIGRpZmYg
KSB7CisJCQlyZXR1cm4gKCgtTWF0aC5jb3MocCpNYXRoLlBJKS8yKSArIDAuNSkgKiBkaWZmICsg
Zmlyc3ROdW07CisJCX0KKwl9LAorCisJdGltZXJzOiBbXSwKKworCWZ4OiBmdW5jdGlvbiggZWxl
bSwgb3B0aW9ucywgcHJvcCApeworCQl0aGlzLm9wdGlvbnMgPSBvcHRpb25zOworCQl0aGlzLmVs
ZW0gPSBlbGVtOworCQl0aGlzLnByb3AgPSBwcm9wOworCisJCWlmICggIW9wdGlvbnMub3JpZyAp
CisJCQlvcHRpb25zLm9yaWcgPSB7fTsKKwl9CisKK30pOworCitqUXVlcnkuZngucHJvdG90eXBl
ID0geworCisJLy8gU2ltcGxlIGZ1bmN0aW9uIGZvciBzZXR0aW5nIGEgc3R5bGUgdmFsdWUKKwl1
cGRhdGU6IGZ1bmN0aW9uKCl7CisJCWlmICggdGhpcy5vcHRpb25zLnN0ZXAgKQorCQkJdGhpcy5v
cHRpb25zLnN0ZXAuY2FsbCggdGhpcy5lbGVtLCB0aGlzLm5vdywgdGhpcyApOworCisJCShqUXVl
cnkuZnguc3RlcFt0aGlzLnByb3BdIHx8IGpRdWVyeS5meC5zdGVwLl9kZWZhdWx0KSggdGhpcyAp
OworCisJCS8vIFNldCBkaXNwbGF5IHByb3BlcnR5IHRvIGJsb2NrIGZvciBoZWlnaHQvd2lkdGgg
YW5pbWF0aW9ucworCQlpZiAoICggdGhpcy5wcm9wID09ICJoZWlnaHQiIHx8IHRoaXMucHJvcCA9
PSAid2lkdGgiICkgJiYgdGhpcy5lbGVtLnN0eWxlICkKKwkJCXRoaXMuZWxlbS5zdHlsZS5kaXNw
bGF5ID0gImJsb2NrIjsKKwl9LAorCisJLy8gR2V0IHRoZSBjdXJyZW50IHNpemUKKwljdXI6IGZ1
bmN0aW9uKGZvcmNlKXsKKwkJaWYgKCB0aGlzLmVsZW1bdGhpcy5wcm9wXSAhPSBudWxsICYmICgh
dGhpcy5lbGVtLnN0eWxlIHx8IHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdID09IG51bGwpICkK
KwkJCXJldHVybiB0aGlzLmVsZW1bIHRoaXMucHJvcCBdOworCisJCXZhciByID0gcGFyc2VGbG9h
dChqUXVlcnkuY3NzKHRoaXMuZWxlbSwgdGhpcy5wcm9wLCBmb3JjZSkpOworCQlyZXR1cm4gciAm
JiByID4gLTEwMDAwID8gciA6IHBhcnNlRmxvYXQoalF1ZXJ5LmN1ckNTUyh0aGlzLmVsZW0sIHRo
aXMucHJvcCkpIHx8IDA7CisJfSwKKworCS8vIFN0YXJ0IGFuIGFuaW1hdGlvbiBmcm9tIG9uZSBu
dW1iZXIgdG8gYW5vdGhlcgorCWN1c3RvbTogZnVuY3Rpb24oZnJvbSwgdG8sIHVuaXQpeworCQl0
aGlzLnN0YXJ0VGltZSA9IG5vdygpOworCQl0aGlzLnN0YXJ0ID0gZnJvbTsKKwkJdGhpcy5lbmQg
PSB0bzsKKwkJdGhpcy51bml0ID0gdW5pdCB8fCB0aGlzLnVuaXQgfHwgInB4IjsKKwkJdGhpcy5u
b3cgPSB0aGlzLnN0YXJ0OworCQl0aGlzLnBvcyA9IHRoaXMuc3RhdGUgPSAwOworCisJCXZhciBz
ZWxmID0gdGhpczsKKwkJZnVuY3Rpb24gdChnb3RvRW5kKXsKKwkJCXJldHVybiBzZWxmLnN0ZXAo
Z290b0VuZCk7CisJCX0KKworCQl0LmVsZW0gPSB0aGlzLmVsZW07CisKKwkJaWYgKCB0KCkgJiYg
alF1ZXJ5LnRpbWVycy5wdXNoKHQpICYmICF0aW1lcklkICkgeworCQkJdGltZXJJZCA9IHNldElu
dGVydmFsKGZ1bmN0aW9uKCl7CisJCQkJdmFyIHRpbWVycyA9IGpRdWVyeS50aW1lcnM7CisKKwkJ
CQlmb3IgKCB2YXIgaSA9IDA7IGkgPCB0aW1lcnMubGVuZ3RoOyBpKysgKQorCQkJCQlpZiAoICF0
aW1lcnNbaV0oKSApCisJCQkJCQl0aW1lcnMuc3BsaWNlKGktLSwgMSk7CisKKwkJCQlpZiAoICF0
aW1lcnMubGVuZ3RoICkgeworCQkJCQljbGVhckludGVydmFsKCB0aW1lcklkICk7CisJCQkJCXRp
bWVySWQgPSB1bmRlZmluZWQ7CisJCQkJfQorCQkJfSwgMTMpOworCQl9CisJfSwKKworCS8vIFNp
bXBsZSAnc2hvdycgZnVuY3Rpb24KKwlzaG93OiBmdW5jdGlvbigpeworCQkvLyBSZW1lbWJlciB3
aGVyZSB3ZSBzdGFydGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNrIHRvIGl0IGxhdGVyCisJCXRo
aXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF0gPSBqUXVlcnkuYXR0ciggdGhpcy5lbGVtLnN0eWxl
LCB0aGlzLnByb3AgKTsKKwkJdGhpcy5vcHRpb25zLnNob3cgPSB0cnVlOworCisJCS8vIEJlZ2lu
IHRoZSBhbmltYXRpb24KKwkJLy8gTWFrZSBzdXJlIHRoYXQgd2Ugc3RhcnQgYXQgYSBzbWFsbCB3
aWR0aC9oZWlnaHQgdG8gYXZvaWQgYW55CisJCS8vIGZsYXNoIG9mIGNvbnRlbnQKKwkJdGhpcy5j
dXN0b20odGhpcy5wcm9wID09ICJ3aWR0aCIgfHwgdGhpcy5wcm9wID09ICJoZWlnaHQiID8gMSA6
IDAsIHRoaXMuY3VyKCkpOworCisJCS8vIFN0YXJ0IGJ5IHNob3dpbmcgdGhlIGVsZW1lbnQKKwkJ
alF1ZXJ5KHRoaXMuZWxlbSkuc2hvdygpOworCX0sCisKKwkvLyBTaW1wbGUgJ2hpZGUnIGZ1bmN0
aW9uCisJaGlkZTogZnVuY3Rpb24oKXsKKwkJLy8gUmVtZW1iZXIgd2hlcmUgd2Ugc3RhcnRlZCwg
c28gdGhhdCB3ZSBjYW4gZ28gYmFjayB0byBpdCBsYXRlcgorCQl0aGlzLm9wdGlvbnMub3JpZ1t0
aGlzLnByb3BdID0galF1ZXJ5LmF0dHIoIHRoaXMuZWxlbS5zdHlsZSwgdGhpcy5wcm9wICk7CisJ
CXRoaXMub3B0aW9ucy5oaWRlID0gdHJ1ZTsKKworCQkvLyBCZWdpbiB0aGUgYW5pbWF0aW9uCisJ
CXRoaXMuY3VzdG9tKHRoaXMuY3VyKCksIDApOworCX0sCisKKwkvLyBFYWNoIHN0ZXAgb2YgYW4g
YW5pbWF0aW9uCisJc3RlcDogZnVuY3Rpb24oZ290b0VuZCl7CisJCXZhciB0ID0gbm93KCk7CisK
KwkJaWYgKCBnb3RvRW5kIHx8IHQgPj0gdGhpcy5vcHRpb25zLmR1cmF0aW9uICsgdGhpcy5zdGFy
dFRpbWUgKSB7CisJCQl0aGlzLm5vdyA9IHRoaXMuZW5kOworCQkJdGhpcy5wb3MgPSB0aGlzLnN0
YXRlID0gMTsKKwkJCXRoaXMudXBkYXRlKCk7CisKKwkJCXRoaXMub3B0aW9ucy5jdXJBbmltWyB0
aGlzLnByb3AgXSA9IHRydWU7CisKKwkJCXZhciBkb25lID0gdHJ1ZTsKKwkJCWZvciAoIHZhciBp
IGluIHRoaXMub3B0aW9ucy5jdXJBbmltICkKKwkJCQlpZiAoIHRoaXMub3B0aW9ucy5jdXJBbmlt
W2ldICE9PSB0cnVlICkKKwkJCQkJZG9uZSA9IGZhbHNlOworCisJCQlpZiAoIGRvbmUgKSB7CisJ
CQkJaWYgKCB0aGlzLm9wdGlvbnMuZGlzcGxheSAhPSBudWxsICkgeworCQkJCQkvLyBSZXNldCB0
aGUgb3ZlcmZsb3cKKwkJCQkJdGhpcy5lbGVtLnN0eWxlLm92ZXJmbG93ID0gdGhpcy5vcHRpb25z
Lm92ZXJmbG93OworCisJCQkJCS8vIFJlc2V0IHRoZSBkaXNwbGF5CisJCQkJCXRoaXMuZWxlbS5z
dHlsZS5kaXNwbGF5ID0gdGhpcy5vcHRpb25zLmRpc3BsYXk7CisJCQkJCWlmICggalF1ZXJ5LmNz
cyh0aGlzLmVsZW0sICJkaXNwbGF5IikgPT0gIm5vbmUiICkKKwkJCQkJCXRoaXMuZWxlbS5zdHls
ZS5kaXNwbGF5ID0gImJsb2NrIjsKKwkJCQl9CisKKwkJCQkvLyBIaWRlIHRoZSBlbGVtZW50IGlm
IHRoZSAiaGlkZSIgb3BlcmF0aW9uIHdhcyBkb25lCisJCQkJaWYgKCB0aGlzLm9wdGlvbnMuaGlk
ZSApCisJCQkJCWpRdWVyeSh0aGlzLmVsZW0pLmhpZGUoKTsKKworCQkJCS8vIFJlc2V0IHRoZSBw
cm9wZXJ0aWVzLCBpZiB0aGUgaXRlbSBoYXMgYmVlbiBoaWRkZW4gb3Igc2hvd24KKwkJCQlpZiAo
IHRoaXMub3B0aW9ucy5oaWRlIHx8IHRoaXMub3B0aW9ucy5zaG93ICkKKwkJCQkJZm9yICggdmFy
IHAgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0gKQorCQkJCQkJalF1ZXJ5LmF0dHIodGhpcy5lbGVt
LnN0eWxlLCBwLCB0aGlzLm9wdGlvbnMub3JpZ1twXSk7CisJCQkJCQorCQkJCS8vIEV4ZWN1dGUg
dGhlIGNvbXBsZXRlIGZ1bmN0aW9uCisJCQkJdGhpcy5vcHRpb25zLmNvbXBsZXRlLmNhbGwoIHRo
aXMuZWxlbSApOworCQkJfQorCisJCQlyZXR1cm4gZmFsc2U7CisJCX0gZWxzZSB7CisJCQl2YXIg
biA9IHQgLSB0aGlzLnN0YXJ0VGltZTsKKwkJCXRoaXMuc3RhdGUgPSBuIC8gdGhpcy5vcHRpb25z
LmR1cmF0aW9uOworCisJCQkvLyBQZXJmb3JtIHRoZSBlYXNpbmcgZnVuY3Rpb24sIGRlZmF1bHRz
IHRvIHN3aW5nCisJCQl0aGlzLnBvcyA9IGpRdWVyeS5lYXNpbmdbdGhpcy5vcHRpb25zLmVhc2lu
ZyB8fCAoalF1ZXJ5LmVhc2luZy5zd2luZyA/ICJzd2luZyIgOiAibGluZWFyIildKHRoaXMuc3Rh
dGUsIG4sIDAsIDEsIHRoaXMub3B0aW9ucy5kdXJhdGlvbik7CisJCQl0aGlzLm5vdyA9IHRoaXMu
c3RhcnQgKyAoKHRoaXMuZW5kIC0gdGhpcy5zdGFydCkgKiB0aGlzLnBvcyk7CisKKwkJCS8vIFBl
cmZvcm0gdGhlIG5leHQgc3RlcCBvZiB0aGUgYW5pbWF0aW9uCisJCQl0aGlzLnVwZGF0ZSgpOwor
CQl9CisKKwkJcmV0dXJuIHRydWU7CisJfQorCit9OworCitqUXVlcnkuZXh0ZW5kKCBqUXVlcnku
ZngsIHsKKwlzcGVlZHM6eworCQlzbG93OiA2MDAsCisgCQlmYXN0OiAyMDAsCisgCQkvLyBEZWZh
dWx0IHNwZWVkCisgCQlfZGVmYXVsdDogNDAwCisJfSwKKwlzdGVwOiB7CisKKwkJb3BhY2l0eTog
ZnVuY3Rpb24oZngpeworCQkJalF1ZXJ5LmF0dHIoZnguZWxlbS5zdHlsZSwgIm9wYWNpdHkiLCBm
eC5ub3cpOworCQl9LAorCisJCV9kZWZhdWx0OiBmdW5jdGlvbihmeCl7CisJCQlpZiAoIGZ4LmVs
ZW0uc3R5bGUgJiYgZnguZWxlbS5zdHlsZVsgZngucHJvcCBdICE9IG51bGwgKQorCQkJCWZ4LmVs
ZW0uc3R5bGVbIGZ4LnByb3AgXSA9IGZ4Lm5vdyArIGZ4LnVuaXQ7CisJCQllbHNlCisJCQkJZngu
ZWxlbVsgZngucHJvcCBdID0gZngubm93OworCQl9CisJfQorfSk7CitpZiAoIGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudFsiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Il0gKQorCWpRdWVyeS5mbi5vZmZz
ZXQgPSBmdW5jdGlvbigpIHsKKwkJaWYgKCAhdGhpc1swXSApIHJldHVybiB7IHRvcDogMCwgbGVm
dDogMCB9OworCQlpZiAoIHRoaXNbMF0gPT09IHRoaXNbMF0ub3duZXJEb2N1bWVudC5ib2R5ICkg
cmV0dXJuIGpRdWVyeS5vZmZzZXQuYm9keU9mZnNldCggdGhpc1swXSApOworCQl2YXIgYm94ICA9
IHRoaXNbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIGRvYyA9IHRoaXNbMF0ub3duZXJEb2N1
bWVudCwgYm9keSA9IGRvYy5ib2R5LCBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudCwKKwkJ
CWNsaWVudFRvcCA9IGRvY0VsZW0uY2xpZW50VG9wIHx8IGJvZHkuY2xpZW50VG9wIHx8IDAsIGNs
aWVudExlZnQgPSBkb2NFbGVtLmNsaWVudExlZnQgfHwgYm9keS5jbGllbnRMZWZ0IHx8IDAsCisJ
CQl0b3AgID0gYm94LnRvcCAgKyAoc2VsZi5wYWdlWU9mZnNldCB8fCBqUXVlcnkuYm94TW9kZWwg
JiYgZG9jRWxlbS5zY3JvbGxUb3AgIHx8IGJvZHkuc2Nyb2xsVG9wICkgLSBjbGllbnRUb3AsCisJ
CQlsZWZ0ID0gYm94LmxlZnQgKyAoc2VsZi5wYWdlWE9mZnNldCB8fCBqUXVlcnkuYm94TW9kZWwg
JiYgZG9jRWxlbS5zY3JvbGxMZWZ0IHx8IGJvZHkuc2Nyb2xsTGVmdCkgLSBjbGllbnRMZWZ0Owor
CQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OworCX07CitlbHNlIAorCWpRdWVyeS5m
bi5vZmZzZXQgPSBmdW5jdGlvbigpIHsKKwkJaWYgKCAhdGhpc1swXSApIHJldHVybiB7IHRvcDog
MCwgbGVmdDogMCB9OworCQlpZiAoIHRoaXNbMF0gPT09IHRoaXNbMF0ub3duZXJEb2N1bWVudC5i
b2R5ICkgcmV0dXJuIGpRdWVyeS5vZmZzZXQuYm9keU9mZnNldCggdGhpc1swXSApOworCQlqUXVl
cnkub2Zmc2V0LmluaXRpYWxpemVkIHx8IGpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSgpOworCisJ
CXZhciBlbGVtID0gdGhpc1swXSwgb2Zmc2V0UGFyZW50ID0gZWxlbS5vZmZzZXRQYXJlbnQsIHBy
ZXZPZmZzZXRQYXJlbnQgPSBlbGVtLAorCQkJZG9jID0gZWxlbS5vd25lckRvY3VtZW50LCBjb21w
dXRlZFN0eWxlLCBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudCwKKwkJCWJvZHkgPSBkb2Mu
Ym9keSwgZGVmYXVsdFZpZXcgPSBkb2MuZGVmYXVsdFZpZXcsCisJCQlwcmV2Q29tcHV0ZWRTdHls
ZSA9IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgbnVsbCksCisJCQl0b3AgPSBl
bGVtLm9mZnNldFRvcCwgbGVmdCA9IGVsZW0ub2Zmc2V0TGVmdDsKKworCQl3aGlsZSAoIChlbGVt
ID0gZWxlbS5wYXJlbnROb2RlKSAmJiBlbGVtICE9PSBib2R5ICYmIGVsZW0gIT09IGRvY0VsZW0g
KSB7CisJCQljb21wdXRlZFN0eWxlID0gZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
LCBudWxsKTsKKwkJCXRvcCAtPSBlbGVtLnNjcm9sbFRvcCwgbGVmdCAtPSBlbGVtLnNjcm9sbExl
ZnQ7CisJCQlpZiAoIGVsZW0gPT09IG9mZnNldFBhcmVudCApIHsKKwkJCQl0b3AgKz0gZWxlbS5v
ZmZzZXRUb3AsIGxlZnQgKz0gZWxlbS5vZmZzZXRMZWZ0OworCQkJCWlmICggalF1ZXJ5Lm9mZnNl
dC5kb2VzTm90QWRkQm9yZGVyICYmICEoalF1ZXJ5Lm9mZnNldC5kb2VzQWRkQm9yZGVyRm9yVGFi
bGVBbmRDZWxscyAmJiAvXnQoYWJsZXxkfGgpJC9pLnRlc3QoZWxlbS50YWdOYW1lKSkgKQorCQkJ
CQl0b3AgICs9IHBhcnNlSW50KCBjb21wdXRlZFN0eWxlLmJvcmRlclRvcFdpZHRoLCAgMTApIHx8
IDAsCisJCQkJCWxlZnQgKz0gcGFyc2VJbnQoIGNvbXB1dGVkU3R5bGUuYm9yZGVyTGVmdFdpZHRo
LCAxMCkgfHwgMDsKKwkJCQlwcmV2T2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50LCBvZmZzZXRQ
YXJlbnQgPSBlbGVtLm9mZnNldFBhcmVudDsKKwkJCX0KKwkJCWlmICggalF1ZXJ5Lm9mZnNldC5z
dWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUgJiYgY29tcHV0ZWRTdHlsZS5vdmVy
ZmxvdyAhPT0gInZpc2libGUiICkKKwkJCQl0b3AgICs9IHBhcnNlSW50KCBjb21wdXRlZFN0eWxl
LmJvcmRlclRvcFdpZHRoLCAgMTApIHx8IDAsCisJCQkJbGVmdCArPSBwYXJzZUludCggY29tcHV0
ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGgsIDEwKSB8fCAwOworCQkJcHJldkNvbXB1dGVkU3R5bGUg
PSBjb21wdXRlZFN0eWxlOworCQl9CisKKwkJaWYgKCBwcmV2Q29tcHV0ZWRTdHlsZS5wb3NpdGlv
biA9PT0gInJlbGF0aXZlIiB8fCBwcmV2Q29tcHV0ZWRTdHlsZS5wb3NpdGlvbiA9PT0gInN0YXRp
YyIgKQorCQkJdG9wICArPSBib2R5Lm9mZnNldFRvcCwKKwkJCWxlZnQgKz0gYm9keS5vZmZzZXRM
ZWZ0OworCisJCWlmICggcHJldkNvbXB1dGVkU3R5bGUucG9zaXRpb24gPT09ICJmaXhlZCIgKQor
CQkJdG9wICArPSBNYXRoLm1heChkb2NFbGVtLnNjcm9sbFRvcCwgYm9keS5zY3JvbGxUb3ApLAor
CQkJbGVmdCArPSBNYXRoLm1heChkb2NFbGVtLnNjcm9sbExlZnQsIGJvZHkuc2Nyb2xsTGVmdCk7
CisKKwkJcmV0dXJuIHsgdG9wOiB0b3AsIGxlZnQ6IGxlZnQgfTsKKwl9OworCitqUXVlcnkub2Zm
c2V0ID0geworCWluaXRpYWxpemU6IGZ1bmN0aW9uKCkgeworCQlpZiAoIHRoaXMuaW5pdGlhbGl6
ZWQgKSByZXR1cm47CisJCXZhciBib2R5ID0gZG9jdW1lbnQuYm9keSwgY29udGFpbmVyID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIGlubmVyRGl2LCBjaGVja0RpdiwgdGFibGUsIHRk
LCBydWxlcywgcHJvcCwgYm9keU1hcmdpblRvcCA9IGJvZHkuc3R5bGUubWFyZ2luVG9wLAorCQkJ
aHRtbCA9ICc8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2lu
OjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsi
PjxkaXY+PC9kaXY+PC9kaXY+PHRhYmxlIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDts
ZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7
aGVpZ2h0OjFweDsiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZD48L3Rk
PjwvdHI+PC90YWJsZT4nOworCisJCXJ1bGVzID0geyBwb3NpdGlvbjogJ2Fic29sdXRlJywgdG9w
OiAwLCBsZWZ0OiAwLCBtYXJnaW46IDAsIGJvcmRlcjogMCwgd2lkdGg6ICcxcHgnLCBoZWlnaHQ6
ICcxcHgnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9OworCQlmb3IgKCBwcm9wIGluIHJ1bGVzICkg
Y29udGFpbmVyLnN0eWxlW3Byb3BdID0gcnVsZXNbcHJvcF07CisKKwkJY29udGFpbmVyLmlubmVy
SFRNTCA9IGh0bWw7CisJCWJvZHkuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lciwgYm9keS5maXJzdENo
aWxkKTsKKwkJaW5uZXJEaXYgPSBjb250YWluZXIuZmlyc3RDaGlsZCwgY2hlY2tEaXYgPSBpbm5l
ckRpdi5maXJzdENoaWxkLCB0ZCA9IGlubmVyRGl2Lm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQuZmly
c3RDaGlsZDsKKworCQl0aGlzLmRvZXNOb3RBZGRCb3JkZXIgPSAoY2hlY2tEaXYub2Zmc2V0VG9w
ICE9PSA1KTsKKwkJdGhpcy5kb2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxscyA9ICh0ZC5vZmZz
ZXRUb3AgPT09IDUpOworCisJCWlubmVyRGl2LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbicsIGlu
bmVyRGl2LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKKwkJdGhpcy5zdWJ0cmFjdHNCb3Jk
ZXJGb3JPdmVyZmxvd05vdFZpc2libGUgPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAtNSk7CisK
KwkJYm9keS5zdHlsZS5tYXJnaW5Ub3AgPSAnMXB4JzsKKwkJdGhpcy5kb2VzTm90SW5jbHVkZU1h
cmdpbkluQm9keU9mZnNldCA9IChib2R5Lm9mZnNldFRvcCA9PT0gMCk7CisJCWJvZHkuc3R5bGUu
bWFyZ2luVG9wID0gYm9keU1hcmdpblRvcDsKKworCQlib2R5LnJlbW92ZUNoaWxkKGNvbnRhaW5l
cik7CisJCXRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworCX0sCisKKwlib2R5T2Zmc2V0OiBmdW5j
dGlvbihib2R5KSB7CisJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZWQgfHwgalF1ZXJ5Lm9mZnNl
dC5pbml0aWFsaXplKCk7CisJCXZhciB0b3AgPSBib2R5Lm9mZnNldFRvcCwgbGVmdCA9IGJvZHku
b2Zmc2V0TGVmdDsKKwkJaWYgKCBqUXVlcnkub2Zmc2V0LmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5C
b2R5T2Zmc2V0ICkKKwkJCXRvcCAgKz0gcGFyc2VJbnQoIGpRdWVyeS5jdXJDU1MoYm9keSwgJ21h
cmdpblRvcCcsICB0cnVlKSwgMTAgKSB8fCAwLAorCQkJbGVmdCArPSBwYXJzZUludCggalF1ZXJ5
LmN1ckNTUyhib2R5LCAnbWFyZ2luTGVmdCcsIHRydWUpLCAxMCApIHx8IDA7CisJCXJldHVybiB7
IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07CisJfQorfTsKKworCitqUXVlcnkuZm4uZXh0ZW5kKHsK
Kwlwb3NpdGlvbjogZnVuY3Rpb24oKSB7CisJCXZhciBsZWZ0ID0gMCwgdG9wID0gMCwgcmVzdWx0
czsKKworCQlpZiAoIHRoaXNbMF0gKSB7CisJCQkvLyBHZXQgKnJlYWwqIG9mZnNldFBhcmVudAor
CQkJdmFyIG9mZnNldFBhcmVudCA9IHRoaXMub2Zmc2V0UGFyZW50KCksCisKKwkJCS8vIEdldCBj
b3JyZWN0IG9mZnNldHMKKwkJCW9mZnNldCAgICAgICA9IHRoaXMub2Zmc2V0KCksCisJCQlwYXJl
bnRPZmZzZXQgPSAvXmJvZHl8aHRtbCQvaS50ZXN0KG9mZnNldFBhcmVudFswXS50YWdOYW1lKSA/
IHsgdG9wOiAwLCBsZWZ0OiAwIH0gOiBvZmZzZXRQYXJlbnQub2Zmc2V0KCk7CisKKwkJCS8vIFN1
YnRyYWN0IGVsZW1lbnQgbWFyZ2lucworCQkJLy8gbm90ZTogd2hlbiBhbiBlbGVtZW50IGhhcyBt
YXJnaW46IGF1dG8gdGhlIG9mZnNldExlZnQgYW5kIG1hcmdpbkxlZnQgCisJCQkvLyBhcmUgdGhl
IHNhbWUgaW4gU2FmYXJpIGNhdXNpbmcgb2Zmc2V0LmxlZnQgdG8gaW5jb3JyZWN0bHkgYmUgMAor
CQkJb2Zmc2V0LnRvcCAgLT0gbnVtKCB0aGlzLCAnbWFyZ2luVG9wJyAgKTsKKwkJCW9mZnNldC5s
ZWZ0IC09IG51bSggdGhpcywgJ21hcmdpbkxlZnQnICk7CisKKwkJCS8vIEFkZCBvZmZzZXRQYXJl
bnQgYm9yZGVycworCQkJcGFyZW50T2Zmc2V0LnRvcCAgKz0gbnVtKCBvZmZzZXRQYXJlbnQsICdi
b3JkZXJUb3BXaWR0aCcgICk7CisJCQlwYXJlbnRPZmZzZXQubGVmdCArPSBudW0oIG9mZnNldFBh
cmVudCwgJ2JvcmRlckxlZnRXaWR0aCcgKTsKKworCQkJLy8gU3VidHJhY3QgdGhlIHR3byBvZmZz
ZXRzCisJCQlyZXN1bHRzID0geworCQkJCXRvcDogIG9mZnNldC50b3AgIC0gcGFyZW50T2Zmc2V0
LnRvcCwKKwkJCQlsZWZ0OiBvZmZzZXQubGVmdCAtIHBhcmVudE9mZnNldC5sZWZ0CisJCQl9Owor
CQl9CisKKwkJcmV0dXJuIHJlc3VsdHM7CisJfSwKKworCW9mZnNldFBhcmVudDogZnVuY3Rpb24o
KSB7CisJCXZhciBvZmZzZXRQYXJlbnQgPSB0aGlzWzBdLm9mZnNldFBhcmVudCB8fCBkb2N1bWVu
dC5ib2R5OworCQl3aGlsZSAoIG9mZnNldFBhcmVudCAmJiAoIS9eYm9keXxodG1sJC9pLnRlc3Qo
b2Zmc2V0UGFyZW50LnRhZ05hbWUpICYmIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50LCAncG9zaXRp
b24nKSA9PSAnc3RhdGljJykgKQorCQkJb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50Lm9mZnNl
dFBhcmVudDsKKwkJcmV0dXJuIGpRdWVyeShvZmZzZXRQYXJlbnQpOworCX0KK30pOworCisKKy8v
IENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kcworalF1ZXJ5LmVhY2goIFsn
TGVmdCcsICdUb3AnXSwgZnVuY3Rpb24oaSwgbmFtZSkgeworCXZhciBtZXRob2QgPSAnc2Nyb2xs
JyArIG5hbWU7CisJCisJalF1ZXJ5LmZuWyBtZXRob2QgXSA9IGZ1bmN0aW9uKHZhbCkgeworCQlp
ZiAoIXRoaXNbMF0pIHJldHVybiBudWxsOworCisJCXJldHVybiB2YWwgIT09IHVuZGVmaW5lZCA/
CisKKwkJCS8vIFNldCB0aGUgc2Nyb2xsIG9mZnNldAorCQkJdGhpcy5lYWNoKGZ1bmN0aW9uKCkg
eworCQkJCXRoaXMgPT0gd2luZG93IHx8IHRoaXMgPT0gZG9jdW1lbnQgPworCQkJCQl3aW5kb3cu
c2Nyb2xsVG8oCisJCQkJCQkhaSA/IHZhbCA6IGpRdWVyeSh3aW5kb3cpLnNjcm9sbExlZnQoKSwK
KwkJCQkJCSBpID8gdmFsIDogalF1ZXJ5KHdpbmRvdykuc2Nyb2xsVG9wKCkKKwkJCQkJKSA6CisJ
CQkJCXRoaXNbIG1ldGhvZCBdID0gdmFsOworCQkJfSkgOgorCisJCQkvLyBSZXR1cm4gdGhlIHNj
cm9sbCBvZmZzZXQKKwkJCXRoaXNbMF0gPT0gd2luZG93IHx8IHRoaXNbMF0gPT0gZG9jdW1lbnQg
PworCQkJCXNlbGZbIGkgPyAncGFnZVlPZmZzZXQnIDogJ3BhZ2VYT2Zmc2V0JyBdIHx8CisJCQkJ
CWpRdWVyeS5ib3hNb2RlbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbIG1ldGhvZCBdIHx8
CisJCQkJCWRvY3VtZW50LmJvZHlbIG1ldGhvZCBdIDoKKwkJCQl0aGlzWzBdWyBtZXRob2QgXTsK
Kwl9OworfSk7CisvLyBDcmVhdGUgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGgsIG91dGVySGVpZ2h0
IGFuZCBvdXRlcldpZHRoIG1ldGhvZHMKK2pRdWVyeS5lYWNoKFsgIkhlaWdodCIsICJXaWR0aCIg
XSwgZnVuY3Rpb24oaSwgbmFtZSl7CisKKwl2YXIgdGwgPSBpID8gIkxlZnQiICA6ICJUb3AiLCAg
Ly8gdG9wIG9yIGxlZnQKKwkJYnIgPSBpID8gIlJpZ2h0IiA6ICJCb3R0b20iLCAvLyBib3R0b20g
b3IgcmlnaHQKKwkJbG93ZXIgPSBuYW1lLnRvTG93ZXJDYXNlKCk7CisKKwkvLyBpbm5lckhlaWdo
dCBhbmQgaW5uZXJXaWR0aAorCWpRdWVyeS5mblsiaW5uZXIiICsgbmFtZV0gPSBmdW5jdGlvbigp
eworCQlyZXR1cm4gdGhpc1swXSA/CisJCQlqUXVlcnkuY3NzKCB0aGlzWzBdLCBsb3dlciwgZmFs
c2UsICJwYWRkaW5nIiApIDoKKwkJCW51bGw7CisJfTsKKworCS8vIG91dGVySGVpZ2h0IGFuZCBv
dXRlcldpZHRoCisJalF1ZXJ5LmZuWyJvdXRlciIgKyBuYW1lXSA9IGZ1bmN0aW9uKG1hcmdpbikg
eworCQlyZXR1cm4gdGhpc1swXSA/CisJCQlqUXVlcnkuY3NzKCB0aGlzWzBdLCBsb3dlciwgZmFs
c2UsIG1hcmdpbiA/ICJtYXJnaW4iIDogImJvcmRlciIgKSA6CisJCQludWxsOworCX07CisJCisJ
dmFyIHR5cGUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7CisKKwlqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1
bmN0aW9uKCBzaXplICkgeworCQkvLyBHZXQgd2luZG93IHdpZHRoIG9yIGhlaWdodAorCQlyZXR1
cm4gdGhpc1swXSA9PSB3aW5kb3cgPworCQkJLy8gRXZlcnlvbmUgZWxzZSB1c2UgZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50IG9yIGRvY3VtZW50LmJvZHkgZGVwZW5kaW5nIG9uIFF1aXJrcyB2cyBT
dGFuZGFyZHMgbW9kZQorCQkJZG9jdW1lbnQuY29tcGF0TW9kZSA9PSAiQ1NTMUNvbXBhdCIgJiYg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyAiY2xpZW50IiArIG5hbWUgXSB8fAorCQkJZG9jdW1l
bnQuYm9keVsgImNsaWVudCIgKyBuYW1lIF0gOgorCisJCQkvLyBHZXQgZG9jdW1lbnQgd2lkdGgg
b3IgaGVpZ2h0CisJCQl0aGlzWzBdID09IGRvY3VtZW50ID8KKwkJCQkvLyBFaXRoZXIgc2Nyb2xs
W1dpZHRoL0hlaWdodF0gb3Igb2Zmc2V0W1dpZHRoL0hlaWdodF0sIHdoaWNoZXZlciBpcyBncmVh
dGVyCisJCQkJTWF0aC5tYXgoCisJCQkJCWRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50
IiArIG5hbWVdLAorCQkJCQlkb2N1bWVudC5ib2R5WyJzY3JvbGwiICsgbmFtZV0sIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudFsic2Nyb2xsIiArIG5hbWVdLAorCQkJCQlkb2N1bWVudC5ib2R5WyJv
ZmZzZXQiICsgbmFtZV0sIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IiArIG5hbWVd
CisJCQkJKSA6CisKKwkJCQkvLyBHZXQgb3Igc2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxl
bWVudAorCQkJCXNpemUgPT09IHVuZGVmaW5lZCA/CisJCQkJCS8vIEdldCB3aWR0aCBvciBoZWln
aHQgb24gdGhlIGVsZW1lbnQKKwkJCQkJKHRoaXMubGVuZ3RoID8galF1ZXJ5LmNzcyggdGhpc1sw
XSwgdHlwZSApIDogbnVsbCkgOgorCisJCQkJCS8vIFNldCB0aGUgd2lkdGggb3IgaGVpZ2h0IG9u
IHRoZSBlbGVtZW50IChkZWZhdWx0IHRvIHBpeGVscyBpZiB2YWx1ZSBpcyB1bml0bGVzcykKKwkJ
CQkJdGhpcy5jc3MoIHR5cGUsIHR5cGVvZiBzaXplID09PSAic3RyaW5nIiA/IHNpemUgOiBzaXpl
ICsgInB4IiApOworCX07CisKK30pOworfSkoKTsKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL2pxdWVyeS0xLjQuNC5taW4uanMg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9qcXVl
cnktMS40LjQubWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44
ZjNjYTJlMmRhZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL2pxdWVyeS0xLjQuNC5taW4uanMKQEAgLTAsMCArMSwx
NjcgQEAKKy8qIQorICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS40LjQKKyAqIGh0dHA6
Ly9qcXVlcnkuY29tLworICoKKyAqIENvcHlyaWdodCAyMDEwLCBKb2huIFJlc2lnCisgKiBEdWFs
IGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0
dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBJbmNsdWRlcyBTaXp6bGUuanMKKyAqIGh0
dHA6Ly9zaXp6bGVqcy5jb20vCisgKiBDb3B5cmlnaHQgMjAxMCwgVGhlIERvam8gRm91bmRhdGlv
bgorICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgorICoK
KyAqIERhdGU6IFRodSBOb3YgMTEgMTk6MDQ6NTMgMjAxMCAtMDUwMAorICovCisoZnVuY3Rpb24o
RSxCKXtmdW5jdGlvbiBrYShhLGIsZCl7aWYoZD09PUImJmEubm9kZVR5cGU9PT0xKXtkPWEuZ2V0
QXR0cmlidXRlKCJkYXRhLSIrYik7aWYodHlwZW9mIGQ9PT0ic3RyaW5nIil7dHJ5e2Q9ZD09PSJ0
cnVlIj90cnVlOmQ9PT0iZmFsc2UiP2ZhbHNlOmQ9PT0ibnVsbCI/bnVsbDohYy5pc05hTihkKT9w
YXJzZUZsb2F0KGQpOkphLnRlc3QoZCk/Yy5wYXJzZUpTT04oZCk6ZH1jYXRjaChlKXt9Yy5kYXRh
KGEsYixkKX1lbHNlIGQ9Qn1yZXR1cm4gZH1mdW5jdGlvbiBVKCl7cmV0dXJuIGZhbHNlfWZ1bmN0
aW9uIGNhKCl7cmV0dXJuIHRydWV9ZnVuY3Rpb24gbGEoYSxiLGQpe2RbMF0udHlwZT1hO3JldHVy
biBjLmV2ZW50LmhhbmRsZS5hcHBseShiLGQpfWZ1bmN0aW9uIEthKGEpe3ZhciBiLGQsZSxmLGgs
bCxrLG8seCxyLEEsQz1bXTtmPVtdO2g9Yy5kYXRhKHRoaXMsdGhpcy5ub2RlVHlwZT8iZXZlbnRz
IjoiX19ldmVudHNfXyIpO2lmKHR5cGVvZiBoPT09ImZ1bmN0aW9uIiloPQoraC5ldmVudHM7aWYo
IShhLmxpdmVGaXJlZD09PXRoaXN8fCFofHwhaC5saXZlfHxhLmJ1dHRvbiYmYS50eXBlPT09ImNs
aWNrIikpe2lmKGEubmFtZXNwYWNlKUE9UmVnRXhwKCIoXnxcXC4pIithLm5hbWVzcGFjZS5zcGxp
dCgiLiIpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpO2EubGl2ZUZpcmVkPXRoaXM7
dmFyIEo9aC5saXZlLnNsaWNlKDApO2ZvcihrPTA7azxKLmxlbmd0aDtrKyspe2g9SltrXTtoLm9y
aWdUeXBlLnJlcGxhY2UoWCwiIik9PT1hLnR5cGU/Zi5wdXNoKGguc2VsZWN0b3IpOkouc3BsaWNl
KGstLSwxKX1mPWMoYS50YXJnZXQpLmNsb3Nlc3QoZixhLmN1cnJlbnRUYXJnZXQpO289MDtmb3Io
eD1mLmxlbmd0aDtvPHg7bysrKXtyPWZbb107Zm9yKGs9MDtrPEoubGVuZ3RoO2srKyl7aD1KW2td
O2lmKHIuc2VsZWN0b3I9PT1oLnNlbGVjdG9yJiYoIUF8fEEudGVzdChoLm5hbWVzcGFjZSkpKXts
PXIuZWxlbTtlPW51bGw7aWYoaC5wcmVUeXBlPT09Im1vdXNlZW50ZXIifHwKK2gucHJlVHlwZT09
PSJtb3VzZWxlYXZlIil7YS50eXBlPWgucHJlVHlwZTtlPWMoYS5yZWxhdGVkVGFyZ2V0KS5jbG9z
ZXN0KGguc2VsZWN0b3IpWzBdfWlmKCFlfHxlIT09bClDLnB1c2goe2VsZW06bCxoYW5kbGVPYmo6
aCxsZXZlbDpyLmxldmVsfSl9fX1vPTA7Zm9yKHg9Qy5sZW5ndGg7bzx4O28rKyl7Zj1DW29dO2lm
KGQmJmYubGV2ZWw+ZClicmVhazthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtO2EuZGF0YT1mLmhhbmRs
ZU9iai5kYXRhO2EuaGFuZGxlT2JqPWYuaGFuZGxlT2JqO0E9Zi5oYW5kbGVPYmoub3JpZ0hhbmRs
ZXIuYXBwbHkoZi5lbGVtLGFyZ3VtZW50cyk7aWYoQT09PWZhbHNlfHxhLmlzUHJvcGFnYXRpb25T
dG9wcGVkKCkpe2Q9Zi5sZXZlbDtpZihBPT09ZmFsc2UpYj1mYWxzZTtpZihhLmlzSW1tZWRpYXRl
UHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWt9fXJldHVybiBifX1mdW5jdGlvbiBZKGEsYil7cmV0
dXJuKGEmJmEhPT0iKiI/YSsiLiI6IiIpK2IucmVwbGFjZShMYSwKKyJgIikucmVwbGFjZShNYSwi
JiIpfWZ1bmN0aW9uIG1hKGEsYixkKXtpZihjLmlzRnVuY3Rpb24oYikpcmV0dXJuIGMuZ3JlcChh
LGZ1bmN0aW9uKGYsaCl7cmV0dXJuISFiLmNhbGwoZixoLGYpPT09ZH0pO2Vsc2UgaWYoYi5ub2Rl
VHlwZSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZil7cmV0dXJuIGY9PT1iPT09ZH0pO2Vsc2Ug
aWYodHlwZW9mIGI9PT0ic3RyaW5nIil7dmFyIGU9Yy5ncmVwKGEsZnVuY3Rpb24oZil7cmV0dXJu
IGYubm9kZVR5cGU9PT0xfSk7aWYoTmEudGVzdChiKSlyZXR1cm4gYy5maWx0ZXIoYixlLCFkKTtl
bHNlIGI9Yy5maWx0ZXIoYixlKX1yZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZil7cmV0dXJuIGMu
aW5BcnJheShmLGIpPj0wPT09ZH0pfWZ1bmN0aW9uIG5hKGEsYil7dmFyIGQ9MDtiLmVhY2goZnVu
Y3Rpb24oKXtpZih0aGlzLm5vZGVOYW1lPT09KGFbZF0mJmFbZF0ubm9kZU5hbWUpKXt2YXIgZT1j
LmRhdGEoYVtkKytdKSxmPWMuZGF0YSh0aGlzLAorZSk7aWYoZT1lJiZlLmV2ZW50cyl7ZGVsZXRl
IGYuaGFuZGxlO2YuZXZlbnRzPXt9O2Zvcih2YXIgaCBpbiBlKWZvcih2YXIgbCBpbiBlW2hdKWMu
ZXZlbnQuYWRkKHRoaXMsaCxlW2hdW2xdLGVbaF1bbF0uZGF0YSl9fX0pfWZ1bmN0aW9uIE9hKGEs
Yil7Yi5zcmM/Yy5hamF4KHt1cmw6Yi5zcmMsYXN5bmM6ZmFsc2UsZGF0YVR5cGU6InNjcmlwdCJ9
KTpjLmdsb2JhbEV2YWwoYi50ZXh0fHxiLnRleHRDb250ZW50fHxiLmlubmVySFRNTHx8IiIpO2Iu
cGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpfWZ1bmN0aW9uIG9hKGEsYixk
KXt2YXIgZT1iPT09IndpZHRoIj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0O2lmKGQ9PT0i
Ym9yZGVyIilyZXR1cm4gZTtjLmVhY2goYj09PSJ3aWR0aCI/UGE6UWEsZnVuY3Rpb24oKXtkfHwo
ZS09cGFyc2VGbG9hdChjLmNzcyhhLCJwYWRkaW5nIit0aGlzKSl8fDApO2lmKGQ9PT0ibWFyZ2lu
IillKz1wYXJzZUZsb2F0KGMuY3NzKGEsCisibWFyZ2luIit0aGlzKSl8fDA7ZWxzZSBlLT1wYXJz
ZUZsb2F0KGMuY3NzKGEsImJvcmRlciIrdGhpcysiV2lkdGgiKSl8fDB9KTtyZXR1cm4gZX1mdW5j
dGlvbiBkYShhLGIsZCxlKXtpZihjLmlzQXJyYXkoYikmJmIubGVuZ3RoKWMuZWFjaChiLGZ1bmN0
aW9uKGYsaCl7ZHx8UmEudGVzdChhKT9lKGEsaCk6ZGEoYSsiWyIrKHR5cGVvZiBoPT09Im9iamVj
dCJ8fGMuaXNBcnJheShoKT9mOiIiKSsiXSIsaCxkLGUpfSk7ZWxzZSBpZighZCYmYiE9bnVsbCYm
dHlwZW9mIGI9PT0ib2JqZWN0IiljLmlzRW1wdHlPYmplY3QoYik/ZShhLCIiKTpjLmVhY2goYixm
dW5jdGlvbihmLGgpe2RhKGErIlsiK2YrIl0iLGgsZCxlKX0pO2Vsc2UgZShhLGIpfWZ1bmN0aW9u
IFMoYSxiKXt2YXIgZD17fTtjLmVhY2gocGEuY29uY2F0LmFwcGx5KFtdLHBhLnNsaWNlKDAsYikp
LGZ1bmN0aW9uKCl7ZFt0aGlzXT1hfSk7cmV0dXJuIGR9ZnVuY3Rpb24gcWEoYSl7aWYoIWVhW2Fd
KXt2YXIgYj1jKCI8IisKK2ErIj4iKS5hcHBlbmRUbygiYm9keSIpLGQ9Yi5jc3MoImRpc3BsYXki
KTtiLnJlbW92ZSgpO2lmKGQ9PT0ibm9uZSJ8fGQ9PT0iIilkPSJibG9jayI7ZWFbYV09ZH1yZXR1
cm4gZWFbYV19ZnVuY3Rpb24gZmEoYSl7cmV0dXJuIGMuaXNXaW5kb3coYSk/YTphLm5vZGVUeXBl
PT09OT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzpmYWxzZX12YXIgdD1FLmRvY3VtZW50
LGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYoIWIuaXNSZWFkeSl7dHJ5e3QuZG9jdW1lbnRF
bGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goail7c2V0VGltZW91dChhLDEpO3JldHVybn1i
LnJlYWR5KCl9fXZhciBiPWZ1bmN0aW9uKGoscyl7cmV0dXJuIG5ldyBiLmZuLmluaXQoaixzKX0s
ZD1FLmpRdWVyeSxlPUUuJCxmLGg9L14oPzpbXjxdKig8W1x3XFddKz4pW14+XSokfCMoW1x3XC1d
KykkKS8sbD0vXFMvLGs9L15ccysvLG89L1xzKyQvLHg9L1xXLyxyPS9cZC8sQT0vXjwoXHcrKVxz
KlwvPz4oPzo8XC9cMT4pPyQvLAorQz0vXltcXSw6e31cc10qJC8sSj0vXFwoPzpbIlxcXC9iZm5y
dF18dVswLTlhLWZBLUZdezR9KS9nLHc9LyJbXiJcXFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/
XGQrKD86XC5cZCopPyg/OltlRV1bK1wtXT9cZCspPy9nLEk9Lyg/Ol58OnwsKSg/OlxzKlxbKSsv
ZyxMPS8od2Via2l0KVsgXC9dKFtcdy5dKykvLGc9LyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9d
KFtcdy5dKykvLGk9Lyhtc2llKSAoW1x3Ll0rKS8sbj0vKG1vemlsbGEpKD86Lio/IHJ2OihbXHcu
XSspKT8vLG09bmF2aWdhdG9yLnVzZXJBZ2VudCxwPWZhbHNlLHE9W10sdSx5PU9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcsRj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LE09QXJyYXku
cHJvdG90eXBlLnB1c2gsTj1BcnJheS5wcm90b3R5cGUuc2xpY2UsTz1TdHJpbmcucHJvdG90eXBl
LnRyaW0sRD1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixSPXt9O2IuZm49Yi5wcm90b3R5cGU9e2lu
aXQ6ZnVuY3Rpb24oaiwKK3Mpe3ZhciB2LHosSDtpZighailyZXR1cm4gdGhpcztpZihqLm5vZGVU
eXBlKXt0aGlzLmNvbnRleHQ9dGhpc1swXT1qO3RoaXMubGVuZ3RoPTE7cmV0dXJuIHRoaXN9aWYo
aj09PSJib2R5IiYmIXMmJnQuYm9keSl7dGhpcy5jb250ZXh0PXQ7dGhpc1swXT10LmJvZHk7dGhp
cy5zZWxlY3Rvcj0iYm9keSI7dGhpcy5sZW5ndGg9MTtyZXR1cm4gdGhpc31pZih0eXBlb2Ygaj09
PSJzdHJpbmciKWlmKCh2PWguZXhlYyhqKSkmJih2WzFdfHwhcykpaWYodlsxXSl7SD1zP3Mub3du
ZXJEb2N1bWVudHx8czp0O2lmKHo9QS5leGVjKGopKWlmKGIuaXNQbGFpbk9iamVjdChzKSl7aj1b
dC5jcmVhdGVFbGVtZW50KHpbMV0pXTtiLmZuLmF0dHIuY2FsbChqLHMsdHJ1ZSl9ZWxzZSBqPVtI
LmNyZWF0ZUVsZW1lbnQoelsxXSldO2Vsc2V7ej1iLmJ1aWxkRnJhZ21lbnQoW3ZbMV1dLFtIXSk7
aj0oei5jYWNoZWFibGU/ei5mcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk6ei5mcmFnbWVudCkuY2hp
bGROb2Rlc31yZXR1cm4gYi5tZXJnZSh0aGlzLAorail9ZWxzZXtpZigoej10LmdldEVsZW1lbnRC
eUlkKHZbMl0pKSYmei5wYXJlbnROb2RlKXtpZih6LmlkIT09dlsyXSlyZXR1cm4gZi5maW5kKGop
O3RoaXMubGVuZ3RoPTE7dGhpc1swXT16fXRoaXMuY29udGV4dD10O3RoaXMuc2VsZWN0b3I9ajty
ZXR1cm4gdGhpc31lbHNlIGlmKCFzJiYheC50ZXN0KGopKXt0aGlzLnNlbGVjdG9yPWo7dGhpcy5j
b250ZXh0PXQ7aj10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGopO3JldHVybiBiLm1lcmdlKHRoaXMs
ail9ZWxzZSByZXR1cm4hc3x8cy5qcXVlcnk/KHN8fGYpLmZpbmQoaik6YihzKS5maW5kKGopO2Vs
c2UgaWYoYi5pc0Z1bmN0aW9uKGopKXJldHVybiBmLnJlYWR5KGopO2lmKGouc2VsZWN0b3IhPT1C
KXt0aGlzLnNlbGVjdG9yPWouc2VsZWN0b3I7dGhpcy5jb250ZXh0PWouY29udGV4dH1yZXR1cm4g
Yi5tYWtlQXJyYXkoaix0aGlzKX0sc2VsZWN0b3I6IiIsanF1ZXJ5OiIxLjQuNCIsbGVuZ3RoOjAs
c2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sCit0b0FycmF5OmZ1bmN0aW9uKCl7
cmV0dXJuIE4uY2FsbCh0aGlzLDApfSxnZXQ6ZnVuY3Rpb24oail7cmV0dXJuIGo9PW51bGw/dGhp
cy50b0FycmF5KCk6ajwwP3RoaXMuc2xpY2UoailbMF06dGhpc1tqXX0scHVzaFN0YWNrOmZ1bmN0
aW9uKGoscyx2KXt2YXIgej1iKCk7Yi5pc0FycmF5KGopP00uYXBwbHkoeixqKTpiLm1lcmdlKHos
aik7ei5wcmV2T2JqZWN0PXRoaXM7ei5jb250ZXh0PXRoaXMuY29udGV4dDtpZihzPT09ImZpbmQi
KXouc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK3Y7ZWxzZSBp
ZihzKXouc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisiLiIrcysiKCIrdisiKSI7cmV0dXJuIHp9LGVh
Y2g6ZnVuY3Rpb24oaixzKXtyZXR1cm4gYi5lYWNoKHRoaXMsaixzKX0scmVhZHk6ZnVuY3Rpb24o
ail7Yi5iaW5kUmVhZHkoKTtpZihiLmlzUmVhZHkpai5jYWxsKHQsYik7ZWxzZSBxJiZxLnB1c2go
aik7cmV0dXJuIHRoaXN9LGVxOmZ1bmN0aW9uKGope3JldHVybiBqPT09CistMT90aGlzLnNsaWNl
KGopOnRoaXMuc2xpY2UoaiwraisxKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgw
KX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sc2xpY2U6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5wdXNoU3RhY2soTi5hcHBseSh0aGlzLGFyZ3VtZW50cyksInNsaWNlIixOLmNh
bGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oail7cmV0dXJuIHRoaXMucHVz
aFN0YWNrKGIubWFwKHRoaXMsZnVuY3Rpb24ocyx2KXtyZXR1cm4gai5jYWxsKHMsdixzKX0pKX0s
ZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8YihudWxsKX0scHVzaDpNLHNv
cnQ6W10uc29ydCxzcGxpY2U6W10uc3BsaWNlfTtiLmZuLmluaXQucHJvdG90eXBlPWIuZm47Yi5l
eHRlbmQ9Yi5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgaixzLHYseixILEc9YXJndW1lbnRzWzBd
fHx7fSxLPTEsUT1hcmd1bWVudHMubGVuZ3RoLGdhPWZhbHNlOworaWYodHlwZW9mIEc9PT0iYm9v
bGVhbiIpe2dhPUc7Rz1hcmd1bWVudHNbMV18fHt9O0s9Mn1pZih0eXBlb2YgRyE9PSJvYmplY3Qi
JiYhYi5pc0Z1bmN0aW9uKEcpKUc9e307aWYoUT09PUspe0c9dGhpczstLUt9Zm9yKDtLPFE7Sysr
KWlmKChqPWFyZ3VtZW50c1tLXSkhPW51bGwpZm9yKHMgaW4gail7dj1HW3NdO3o9altzXTtpZihH
IT09eilpZihnYSYmeiYmKGIuaXNQbGFpbk9iamVjdCh6KXx8KEg9Yi5pc0FycmF5KHopKSkpe2lm
KEgpe0g9ZmFsc2U7dj12JiZiLmlzQXJyYXkodik/djpbXX1lbHNlIHY9diYmYi5pc1BsYWluT2Jq
ZWN0KHYpP3Y6e307R1tzXT1iLmV4dGVuZChnYSx2LHopfWVsc2UgaWYoeiE9PUIpR1tzXT16fXJl
dHVybiBHfTtiLmV4dGVuZCh7bm9Db25mbGljdDpmdW5jdGlvbihqKXtFLiQ9ZTtpZihqKUUualF1
ZXJ5PWQ7cmV0dXJuIGJ9LGlzUmVhZHk6ZmFsc2UscmVhZHlXYWl0OjEscmVhZHk6ZnVuY3Rpb24o
ail7aj09PXRydWUmJmIucmVhZHlXYWl0LS07CitpZighYi5yZWFkeVdhaXR8fGohPT10cnVlJiYh
Yi5pc1JlYWR5KXtpZighdC5ib2R5KXJldHVybiBzZXRUaW1lb3V0KGIucmVhZHksMSk7Yi5pc1Jl
YWR5PXRydWU7aWYoIShqIT09dHJ1ZSYmLS1iLnJlYWR5V2FpdD4wKSlpZihxKXt2YXIgcz0wLHY9
cTtmb3IocT1udWxsO2o9dltzKytdOylqLmNhbGwodCxiKTtiLmZuLnRyaWdnZXImJmIodCkudHJp
Z2dlcigicmVhZHkiKS51bmJpbmQoInJlYWR5Iil9fX0sYmluZFJlYWR5OmZ1bmN0aW9uKCl7aWYo
IXApe3A9dHJ1ZTtpZih0LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXJldHVybiBzZXRUaW1lb3V0
KGIucmVhZHksMSk7aWYodC5hZGRFdmVudExpc3RlbmVyKXt0LmFkZEV2ZW50TGlzdGVuZXIoIkRP
TUNvbnRlbnRMb2FkZWQiLHUsZmFsc2UpO0UuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYi5yZWFk
eSxmYWxzZSl9ZWxzZSBpZih0LmF0dGFjaEV2ZW50KXt0LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3Rh
dGVjaGFuZ2UiLHUpO0UuYXR0YWNoRXZlbnQoIm9ubG9hZCIsCitiLnJlYWR5KTt2YXIgaj1mYWxz
ZTt0cnl7aj1FLmZyYW1lRWxlbWVudD09bnVsbH1jYXRjaChzKXt9dC5kb2N1bWVudEVsZW1lbnQu
ZG9TY3JvbGwmJmomJmEoKX19fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKGope3JldHVybiBiLnR5cGUo
aik9PT0iZnVuY3Rpb24ifSxpc0FycmF5OkFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGope3JldHVy
biBiLnR5cGUoaik9PT0iYXJyYXkifSxpc1dpbmRvdzpmdW5jdGlvbihqKXtyZXR1cm4gaiYmdHlw
ZW9mIGo9PT0ib2JqZWN0IiYmInNldEludGVydmFsImluIGp9LGlzTmFOOmZ1bmN0aW9uKGope3Jl
dHVybiBqPT1udWxsfHwhci50ZXN0KGopfHxpc05hTihqKX0sdHlwZTpmdW5jdGlvbihqKXtyZXR1
cm4gaj09bnVsbD9TdHJpbmcoaik6Ult5LmNhbGwoaildfHwib2JqZWN0In0saXNQbGFpbk9iamVj
dDpmdW5jdGlvbihqKXtpZighanx8Yi50eXBlKGopIT09Im9iamVjdCJ8fGoubm9kZVR5cGV8fGIu
aXNXaW5kb3coaikpcmV0dXJuIGZhbHNlO2lmKGouY29uc3RydWN0b3ImJgorIUYuY2FsbChqLCJj
b25zdHJ1Y3RvciIpJiYhRi5jYWxsKGouY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlw
ZU9mIikpcmV0dXJuIGZhbHNlO2Zvcih2YXIgcyBpbiBqKTtyZXR1cm4gcz09PUJ8fEYuY2FsbChq
LHMpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGope2Zvcih2YXIgcyBpbiBqKXJldHVybiBmYWxz
ZTtyZXR1cm4gdHJ1ZX0sZXJyb3I6ZnVuY3Rpb24oail7dGhyb3cgajt9LHBhcnNlSlNPTjpmdW5j
dGlvbihqKXtpZih0eXBlb2YgaiE9PSJzdHJpbmcifHwhailyZXR1cm4gbnVsbDtqPWIudHJpbShq
KTtpZihDLnRlc3Qoai5yZXBsYWNlKEosIkAiKS5yZXBsYWNlKHcsIl0iKS5yZXBsYWNlKEksIiIp
KSlyZXR1cm4gRS5KU09OJiZFLkpTT04ucGFyc2U/RS5KU09OLnBhcnNlKGopOihuZXcgRnVuY3Rp
b24oInJldHVybiAiK2opKSgpO2Vsc2UgYi5lcnJvcigiSW52YWxpZCBKU09OOiAiK2opfSxub29w
OmZ1bmN0aW9uKCl7fSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGope2lmKGomJgorbC50ZXN0KGopKXt2
YXIgcz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fHQuZG9jdW1lbnRFbGVtZW50
LHY9dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt2LnR5cGU9InRleHQvamF2YXNjcmlwdCI7aWYo
Yi5zdXBwb3J0LnNjcmlwdEV2YWwpdi5hcHBlbmRDaGlsZCh0LmNyZWF0ZVRleHROb2RlKGopKTtl
bHNlIHYudGV4dD1qO3MuaW5zZXJ0QmVmb3JlKHYscy5maXJzdENoaWxkKTtzLnJlbW92ZUNoaWxk
KHYpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oaixzKXtyZXR1cm4gai5ub2RlTmFtZSYmai5ub2RlTmFt
ZS50b1VwcGVyQ2FzZSgpPT09cy50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGoscyx2KXt2
YXIgeixIPTAsRz1qLmxlbmd0aCxLPUc9PT1CfHxiLmlzRnVuY3Rpb24oaik7aWYodilpZihLKWZv
cih6IGluIGope2lmKHMuYXBwbHkoalt6XSx2KT09PWZhbHNlKWJyZWFrfWVsc2UgZm9yKDtIPEc7
KXtpZihzLmFwcGx5KGpbSCsrXSx2KT09PWZhbHNlKWJyZWFrfWVsc2UgaWYoSylmb3IoeiBpbiBq
KXtpZihzLmNhbGwoalt6XSwKK3osalt6XSk9PT1mYWxzZSlicmVha31lbHNlIGZvcih2PWpbMF07
SDxHJiZzLmNhbGwodixILHYpIT09ZmFsc2U7dj1qWysrSF0pO3JldHVybiBqfSx0cmltOk8/ZnVu
Y3Rpb24oail7cmV0dXJuIGo9PW51bGw/IiI6Ty5jYWxsKGopfTpmdW5jdGlvbihqKXtyZXR1cm4g
aj09bnVsbD8iIjpqLnRvU3RyaW5nKCkucmVwbGFjZShrLCIiKS5yZXBsYWNlKG8sIiIpfSxtYWtl
QXJyYXk6ZnVuY3Rpb24oaixzKXt2YXIgdj1zfHxbXTtpZihqIT1udWxsKXt2YXIgej1iLnR5cGUo
aik7ai5sZW5ndGg9PW51bGx8fHo9PT0ic3RyaW5nInx8ej09PSJmdW5jdGlvbiJ8fHo9PT0icmVn
ZXhwInx8Yi5pc1dpbmRvdyhqKT9NLmNhbGwodixqKTpiLm1lcmdlKHYsail9cmV0dXJuIHZ9LGlu
QXJyYXk6ZnVuY3Rpb24oaixzKXtpZihzLmluZGV4T2YpcmV0dXJuIHMuaW5kZXhPZihqKTtmb3Io
dmFyIHY9MCx6PXMubGVuZ3RoO3Y8ejt2KyspaWYoc1t2XT09PWopcmV0dXJuIHY7cmV0dXJuLTF9
LG1lcmdlOmZ1bmN0aW9uKGosCitzKXt2YXIgdj1qLmxlbmd0aCx6PTA7aWYodHlwZW9mIHMubGVu
Z3RoPT09Im51bWJlciIpZm9yKHZhciBIPXMubGVuZ3RoO3o8SDt6Kyspalt2KytdPXNbel07ZWxz
ZSBmb3IoO3Nbel0hPT1COylqW3YrK109c1t6KytdO2oubGVuZ3RoPXY7cmV0dXJuIGp9LGdyZXA6
ZnVuY3Rpb24oaixzLHYpe3ZhciB6PVtdLEg7dj0hIXY7Zm9yKHZhciBHPTAsSz1qLmxlbmd0aDtH
PEs7RysrKXtIPSEhcyhqW0ddLEcpO3YhPT1IJiZ6LnB1c2goaltHXSl9cmV0dXJuIHp9LG1hcDpm
dW5jdGlvbihqLHMsdil7Zm9yKHZhciB6PVtdLEgsRz0wLEs9ai5sZW5ndGg7RzxLO0crKyl7SD1z
KGpbR10sRyx2KTtpZihIIT1udWxsKXpbei5sZW5ndGhdPUh9cmV0dXJuIHouY29uY2F0LmFwcGx5
KFtdLHopfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oaixzLHYpe2lmKGFyZ3VtZW50cy5sZW5ndGg9
PT0yKWlmKHR5cGVvZiBzPT09InN0cmluZyIpe3Y9ajtqPXZbc107cz1CfWVsc2UgaWYocyYmIWIu
aXNGdW5jdGlvbihzKSl7dj0KK3M7cz1CfWlmKCFzJiZqKXM9ZnVuY3Rpb24oKXtyZXR1cm4gai5h
cHBseSh2fHx0aGlzLGFyZ3VtZW50cyl9O2lmKGopcy5ndWlkPWouZ3VpZD1qLmd1aWR8fHMuZ3Vp
ZHx8Yi5ndWlkKys7cmV0dXJuIHN9LGFjY2VzczpmdW5jdGlvbihqLHMsdix6LEgsRyl7dmFyIEs9
ai5sZW5ndGg7aWYodHlwZW9mIHM9PT0ib2JqZWN0Iil7Zm9yKHZhciBRIGluIHMpYi5hY2Nlc3Mo
aixRLHNbUV0seixILHYpO3JldHVybiBqfWlmKHYhPT1CKXt6PSFHJiZ6JiZiLmlzRnVuY3Rpb24o
dik7Zm9yKFE9MDtRPEs7USsrKUgoaltRXSxzLHo/di5jYWxsKGpbUV0sUSxIKGpbUV0scykpOnYs
Ryk7cmV0dXJuIGp9cmV0dXJuIEs/SChqWzBdLHMpOkJ9LG5vdzpmdW5jdGlvbigpe3JldHVybihu
ZXcgRGF0ZSkuZ2V0VGltZSgpfSx1YU1hdGNoOmZ1bmN0aW9uKGope2o9ai50b0xvd2VyQ2FzZSgp
O2o9TC5leGVjKGopfHxnLmV4ZWMoail8fGkuZXhlYyhqKXx8ai5pbmRleE9mKCJjb21wYXRpYmxl
Iik8MCYmbi5leGVjKGopfHwKK1tdO3JldHVybnticm93c2VyOmpbMV18fCIiLHZlcnNpb246alsy
XXx8IjAifX0sYnJvd3Nlcjp7fX0pO2IuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0
aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCIuc3BsaXQoIiAiKSxmdW5jdGlvbihqLHMpe1Jb
IltvYmplY3QgIitzKyJdIl09cy50b0xvd2VyQ2FzZSgpfSk7bT1iLnVhTWF0Y2gobSk7aWYobS5i
cm93c2VyKXtiLmJyb3dzZXJbbS5icm93c2VyXT10cnVlO2IuYnJvd3Nlci52ZXJzaW9uPW0udmVy
c2lvbn1pZihiLmJyb3dzZXIud2Via2l0KWIuYnJvd3Nlci5zYWZhcmk9dHJ1ZTtpZihEKWIuaW5B
cnJheT1mdW5jdGlvbihqLHMpe3JldHVybiBELmNhbGwocyxqKX07aWYoIS9ccy8udGVzdCgiXHUw
MGEwIikpe2s9L15bXHNceEEwXSsvO289L1tcc1x4QTBdKyQvfWY9Yih0KTtpZih0LmFkZEV2ZW50
TGlzdGVuZXIpdT1mdW5jdGlvbigpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExv
YWRlZCIsdSwKK2ZhbHNlKTtiLnJlYWR5KCl9O2Vsc2UgaWYodC5hdHRhY2hFdmVudCl1PWZ1bmN0
aW9uKCl7aWYodC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil7dC5kZXRhY2hFdmVudCgib25yZWFk
eXN0YXRlY2hhbmdlIix1KTtiLnJlYWR5KCl9fTtyZXR1cm4gRS5qUXVlcnk9RS4kPWJ9KCk7KGZ1
bmN0aW9uKCl7Yy5zdXBwb3J0PXt9O3ZhciBhPXQuZG9jdW1lbnRFbGVtZW50LGI9dC5jcmVhdGVF
bGVtZW50KCJzY3JpcHQiKSxkPXQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT0ic2NyaXB0IitjLm5v
dygpO2Quc3R5bGUuZGlzcGxheT0ibm9uZSI7ZC5pbm5lckhUTUw9IiAgIDxsaW5rLz48dGFibGU+
PC90YWJsZT48YSBocmVmPScvYScgc3R5bGU9J2NvbG9yOnJlZDtmbG9hdDpsZWZ0O29wYWNpdHk6
LjU1Oyc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iO3ZhciBmPWQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoIioiKSxoPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxsPXQuY3JlYXRl
RWxlbWVudCgic2VsZWN0IiksCitrPWwuYXBwZW5kQ2hpbGQodC5jcmVhdGVFbGVtZW50KCJvcHRp
b24iKSk7aWYoISghZnx8IWYubGVuZ3RofHwhaCkpe2Muc3VwcG9ydD17bGVhZGluZ1doaXRlc3Bh
Y2U6ZC5maXJzdENoaWxkLm5vZGVUeXBlPT09Myx0Ym9keTohZC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgidGJvZHkiKS5sZW5ndGgsaHRtbFNlcmlhbGl6ZTohIWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImxpbmsiKS5sZW5ndGgsc3R5bGU6L3JlZC8udGVzdChoLmdldEF0dHJpYnV0ZSgic3R5bGUiKSks
aHJlZk5vcm1hbGl6ZWQ6aC5nZXRBdHRyaWJ1dGUoImhyZWYiKT09PSIvYSIsb3BhY2l0eTovXjAu
NTUkLy50ZXN0KGguc3R5bGUub3BhY2l0eSksY3NzRmxvYXQ6ISFoLnN0eWxlLmNzc0Zsb2F0LGNo
ZWNrT246ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS52YWx1ZT09PSJvbiIsb3B0
U2VsZWN0ZWQ6ay5zZWxlY3RlZCxkZWxldGVFeHBhbmRvOnRydWUsb3B0RGlzYWJsZWQ6ZmFsc2Us
Y2hlY2tDbG9uZTpmYWxzZSwKK3NjcmlwdEV2YWw6ZmFsc2Usbm9DbG9uZUV2ZW50OnRydWUsYm94
TW9kZWw6bnVsbCxpbmxpbmVCbG9ja05lZWRzTGF5b3V0OmZhbHNlLHNocmlua1dyYXBCbG9ja3M6
ZmFsc2UscmVsaWFibGVIaWRkZW5PZmZzZXRzOnRydWV9O2wuZGlzYWJsZWQ9dHJ1ZTtjLnN1cHBv
cnQub3B0RGlzYWJsZWQ9IWsuZGlzYWJsZWQ7Yi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO3RyeXti
LmFwcGVuZENoaWxkKHQuY3JlYXRlVGV4dE5vZGUoIndpbmRvdy4iK2UrIj0xOyIpKX1jYXRjaChv
KXt9YS5pbnNlcnRCZWZvcmUoYixhLmZpcnN0Q2hpbGQpO2lmKEVbZV0pe2Muc3VwcG9ydC5zY3Jp
cHRFdmFsPXRydWU7ZGVsZXRlIEVbZV19dHJ5e2RlbGV0ZSBiLnRlc3R9Y2F0Y2goeCl7Yy5zdXBw
b3J0LmRlbGV0ZUV4cGFuZG89ZmFsc2V9YS5yZW1vdmVDaGlsZChiKTtpZihkLmF0dGFjaEV2ZW50
JiZkLmZpcmVFdmVudCl7ZC5hdHRhY2hFdmVudCgib25jbGljayIsZnVuY3Rpb24gcigpe2Muc3Vw
cG9ydC5ub0Nsb25lRXZlbnQ9CitmYWxzZTtkLmRldGFjaEV2ZW50KCJvbmNsaWNrIixyKX0pO2Qu
Y2xvbmVOb2RlKHRydWUpLmZpcmVFdmVudCgib25jbGljayIpfWQ9dC5jcmVhdGVFbGVtZW50KCJk
aXYiKTtkLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdyYWRpb3Rlc3QnIGNo
ZWNrZWQ9J2NoZWNrZWQnLz4iO2E9dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7YS5hcHBlbmRD
aGlsZChkLmZpcnN0Q2hpbGQpO2Muc3VwcG9ydC5jaGVja0Nsb25lPWEuY2xvbmVOb2RlKHRydWUp
LmNsb25lTm9kZSh0cnVlKS5sYXN0Q2hpbGQuY2hlY2tlZDtjKGZ1bmN0aW9uKCl7dmFyIHI9dC5j
cmVhdGVFbGVtZW50KCJkaXYiKTtyLnN0eWxlLndpZHRoPXIuc3R5bGUucGFkZGluZ0xlZnQ9IjFw
eCI7dC5ib2R5LmFwcGVuZENoaWxkKHIpO2MuYm94TW9kZWw9Yy5zdXBwb3J0LmJveE1vZGVsPXIu
b2Zmc2V0V2lkdGg9PT0yO2lmKCJ6b29tImluIHIuc3R5bGUpe3Iuc3R5bGUuZGlzcGxheT0iaW5s
aW5lIjtyLnN0eWxlLnpvb209CisxO2Muc3VwcG9ydC5pbmxpbmVCbG9ja05lZWRzTGF5b3V0PXIu
b2Zmc2V0V2lkdGg9PT0yO3Iuc3R5bGUuZGlzcGxheT0iIjtyLmlubmVySFRNTD0iPGRpdiBzdHls
ZT0nd2lkdGg6NHB4Oyc+PC9kaXY+IjtjLnN1cHBvcnQuc2hyaW5rV3JhcEJsb2Nrcz1yLm9mZnNl
dFdpZHRoIT09Mn1yLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQgc3R5bGU9J3BhZGRpbmc6MDtk
aXNwbGF5Om5vbmUnPjwvdGQ+PHRkPnQ8L3RkPjwvdHI+PC90YWJsZT4iO3ZhciBBPXIuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoInRkIik7Yy5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cz1BWzBd
Lm9mZnNldEhlaWdodD09PTA7QVswXS5zdHlsZS5kaXNwbGF5PSIiO0FbMV0uc3R5bGUuZGlzcGxh
eT0ibm9uZSI7Yy5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cz1jLnN1cHBvcnQucmVsaWFi
bGVIaWRkZW5PZmZzZXRzJiZBWzBdLm9mZnNldEhlaWdodD09PTA7ci5pbm5lckhUTUw9IiI7dC5i
b2R5LnJlbW92ZUNoaWxkKHIpLnN0eWxlLmRpc3BsYXk9Cisibm9uZSJ9KTthPWZ1bmN0aW9uKHIp
e3ZhciBBPXQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cj0ib24iK3I7dmFyIEM9ciBpbiBBO2lmKCFD
KXtBLnNldEF0dHJpYnV0ZShyLCJyZXR1cm47Iik7Qz10eXBlb2YgQVtyXT09PSJmdW5jdGlvbiJ9
cmV0dXJuIEN9O2Muc3VwcG9ydC5zdWJtaXRCdWJibGVzPWEoInN1Ym1pdCIpO2Muc3VwcG9ydC5j
aGFuZ2VCdWJibGVzPWEoImNoYW5nZSIpO2E9Yj1kPWY9aD1udWxsfX0pKCk7dmFyIHJhPXt9LEph
PS9eKD86XHsuKlx9fFxbLipcXSkkLztjLmV4dGVuZCh7Y2FjaGU6e30sdXVpZDowLGV4cGFuZG86
ImpRdWVyeSIrYy5ub3coKSxub0RhdGE6e2VtYmVkOnRydWUsb2JqZWN0OiJjbHNpZDpEMjdDREI2
RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiLGFwcGxldDp0cnVlfSxkYXRhOmZ1bmN0aW9u
KGEsYixkKXtpZihjLmFjY2VwdERhdGEoYSkpe2E9YT09RT9yYTphO3ZhciBlPWEubm9kZVR5cGUs
Zj1lP2FbYy5leHBhbmRvXTpudWxsLGg9CitjLmNhY2hlO2lmKCEoZSYmIWYmJnR5cGVvZiBiPT09
InN0cmluZyImJmQ9PT1CKSl7aWYoZSlmfHwoYVtjLmV4cGFuZG9dPWY9KytjLnV1aWQpO2Vsc2Ug
aD1hO2lmKHR5cGVvZiBiPT09Im9iamVjdCIpaWYoZSloW2ZdPWMuZXh0ZW5kKGhbZl0sYik7ZWxz
ZSBjLmV4dGVuZChoLGIpO2Vsc2UgaWYoZSYmIWhbZl0paFtmXT17fTthPWU/aFtmXTpoO2lmKGQh
PT1CKWFbYl09ZDtyZXR1cm4gdHlwZW9mIGI9PT0ic3RyaW5nIj9hW2JdOmF9fX0scmVtb3ZlRGF0
YTpmdW5jdGlvbihhLGIpe2lmKGMuYWNjZXB0RGF0YShhKSl7YT1hPT1FP3JhOmE7dmFyIGQ9YS5u
b2RlVHlwZSxlPWQ/YVtjLmV4cGFuZG9dOmEsZj1jLmNhY2hlLGg9ZD9mW2VdOmU7aWYoYil7aWYo
aCl7ZGVsZXRlIGhbYl07ZCYmYy5pc0VtcHR5T2JqZWN0KGgpJiZjLnJlbW92ZURhdGEoYSl9fWVs
c2UgaWYoZCYmYy5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8pZGVsZXRlIGFbYy5leHBhbmRvXTtlbHNl
IGlmKGEucmVtb3ZlQXR0cmlidXRlKWEucmVtb3ZlQXR0cmlidXRlKGMuZXhwYW5kbyk7CitlbHNl
IGlmKGQpZGVsZXRlIGZbZV07ZWxzZSBmb3IodmFyIGwgaW4gYSlkZWxldGUgYVtsXX19LGFjY2Vw
dERhdGE6ZnVuY3Rpb24oYSl7aWYoYS5ub2RlTmFtZSl7dmFyIGI9Yy5ub0RhdGFbYS5ub2RlTmFt
ZS50b0xvd2VyQ2FzZSgpXTtpZihiKXJldHVybiEoYj09PXRydWV8fGEuZ2V0QXR0cmlidXRlKCJj
bGFzc2lkIikhPT1iKX1yZXR1cm4gdHJ1ZX19KTtjLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihh
LGIpe3ZhciBkPW51bGw7aWYodHlwZW9mIGE9PT0idW5kZWZpbmVkIil7aWYodGhpcy5sZW5ndGgp
e3ZhciBlPXRoaXNbMF0uYXR0cmlidXRlcyxmO2Q9Yy5kYXRhKHRoaXNbMF0pO2Zvcih2YXIgaD0w
LGw9ZS5sZW5ndGg7aDxsO2grKyl7Zj1lW2hdLm5hbWU7aWYoZi5pbmRleE9mKCJkYXRhLSIpPT09
MCl7Zj1mLnN1YnN0cig1KTtrYSh0aGlzWzBdLGYsZFtmXSl9fX1yZXR1cm4gZH1lbHNlIGlmKHR5
cGVvZiBhPT09Im9iamVjdCIpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlz
LAorYSl9KTt2YXIgaz1hLnNwbGl0KCIuIik7a1sxXT1rWzFdPyIuIitrWzFdOiIiO2lmKGI9PT1C
KXtkPXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK2tbMV0rIiEiLFtrWzBdXSk7aWYoZD09
PUImJnRoaXMubGVuZ3RoKXtkPWMuZGF0YSh0aGlzWzBdLGEpO2Q9a2EodGhpc1swXSxhLGQpfXJl
dHVybiBkPT09QiYma1sxXT90aGlzLmRhdGEoa1swXSk6ZH1lbHNlIHJldHVybiB0aGlzLmVhY2go
ZnVuY3Rpb24oKXt2YXIgbz1jKHRoaXMpLHg9W2tbMF0sYl07by50cmlnZ2VySGFuZGxlcigic2V0
RGF0YSIra1sxXSsiISIseCk7Yy5kYXRhKHRoaXMsYSxiKTtvLnRyaWdnZXJIYW5kbGVyKCJjaGFu
Z2VEYXRhIitrWzFdKyIhIix4KX0pfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oKXtjLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pO2MuZXh0ZW5kKHtxdWV1
ZTpmdW5jdGlvbihhLGIsZCl7aWYoYSl7Yj0oYnx8ImZ4IikrInF1ZXVlIjt2YXIgZT0KK2MuZGF0
YShhLGIpO2lmKCFkKXJldHVybiBlfHxbXTtpZighZXx8Yy5pc0FycmF5KGQpKWU9Yy5kYXRhKGEs
YixjLm1ha2VBcnJheShkKSk7ZWxzZSBlLnB1c2goZCk7cmV0dXJuIGV9fSxkZXF1ZXVlOmZ1bmN0
aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBkPWMucXVldWUoYSxiKSxlPWQuc2hpZnQoKTtpZihlPT09
ImlucHJvZ3Jlc3MiKWU9ZC5zaGlmdCgpO2lmKGUpe2I9PT0iZngiJiZkLnVuc2hpZnQoImlucHJv
Z3Jlc3MiKTtlLmNhbGwoYSxmdW5jdGlvbigpe2MuZGVxdWV1ZShhLGIpfSl9fX0pO2MuZm4uZXh0
ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpe2I9YTthPSJm
eCJ9aWYoYj09PUIpcmV0dXJuIGMucXVldWUodGhpc1swXSxhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1
bmN0aW9uKCl7dmFyIGQ9Yy5xdWV1ZSh0aGlzLGEsYik7YT09PSJmeCImJmRbMF0hPT0iaW5wcm9n
cmVzcyImJmMuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRo
aXMuZWFjaChmdW5jdGlvbigpe2MuZGVxdWV1ZSh0aGlzLAorYSl9KX0sZGVsYXk6ZnVuY3Rpb24o
YSxiKXthPWMuZng/Yy5meC5zcGVlZHNbYV18fGE6YTtiPWJ8fCJmeCI7cmV0dXJuIHRoaXMucXVl
dWUoYixmdW5jdGlvbigpe3ZhciBkPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2MuZGVxdWV1
ZShkLGIpfSxhKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8
fCJmeCIsW10pfX0pO3ZhciBzYT0vW1xuXHRdL2csaGE9L1xzKy8sU2E9L1xyL2csVGE9L14oPzpo
cmVmfHNyY3xzdHlsZSkkLyxVYT0vXig/OmJ1dHRvbnxpbnB1dCkkL2ksVmE9L14oPzpidXR0b258
aW5wdXR8b2JqZWN0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksV2E9L15hKD86cmVhKT8kL2ksdGE9L14o
PzpyYWRpb3xjaGVja2JveCkkL2k7Yy5wcm9wcz17ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNs
YXNzTmFtZSIscmVhZG9ubHk6InJlYWRPbmx5IixtYXhsZW5ndGg6Im1heExlbmd0aCIsY2VsbHNw
YWNpbmc6ImNlbGxTcGFjaW5nIixyb3dzcGFuOiJyb3dTcGFuIiwKK2NvbHNwYW46ImNvbFNwYW4i
LHRhYmluZGV4OiJ0YWJJbmRleCIsdXNlbWFwOiJ1c2VNYXAiLGZyYW1lYm9yZGVyOiJmcmFtZUJv
cmRlciJ9O2MuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGMuYWNjZXNzKHRo
aXMsYSxiLHRydWUsYy5hdHRyKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5l
YWNoKGZ1bmN0aW9uKCl7Yy5hdHRyKHRoaXMsYSwiIik7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMu
cmVtb3ZlQXR0cmlidXRlKGEpfSl9LGFkZENsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlv
bihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHgpe3ZhciByPWModGhpcyk7ci5hZGRDbGFz
cyhhLmNhbGwodGhpcyx4LHIuYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3Ry
aW5nIilmb3IodmFyIGI9KGF8fCIiKS5zcGxpdChoYSksZD0wLGU9dGhpcy5sZW5ndGg7ZDxlO2Qr
Kyl7dmFyIGY9dGhpc1tkXTtpZihmLm5vZGVUeXBlPT09CisxKWlmKGYuY2xhc3NOYW1lKXtmb3Io
dmFyIGg9IiAiK2YuY2xhc3NOYW1lKyIgIixsPWYuY2xhc3NOYW1lLGs9MCxvPWIubGVuZ3RoO2s8
bztrKyspaWYoaC5pbmRleE9mKCIgIitiW2tdKyIgIik8MClsKz0iICIrYltrXTtmLmNsYXNzTmFt
ZT1jLnRyaW0obCl9ZWxzZSBmLmNsYXNzTmFtZT1hfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpm
dW5jdGlvbihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihv
KXt2YXIgeD1jKHRoaXMpO3gucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsbyx4LmF0dHIoImNsYXNz
IikpKX0pO2lmKGEmJnR5cGVvZiBhPT09InN0cmluZyJ8fGE9PT1CKWZvcih2YXIgYj0oYXx8IiIp
LnNwbGl0KGhhKSxkPTAsZT10aGlzLmxlbmd0aDtkPGU7ZCsrKXt2YXIgZj10aGlzW2RdO2lmKGYu
bm9kZVR5cGU9PT0xJiZmLmNsYXNzTmFtZSlpZihhKXtmb3IodmFyIGg9KCIgIitmLmNsYXNzTmFt
ZSsiICIpLnJlcGxhY2Uoc2EsIiAiKSwKK2w9MCxrPWIubGVuZ3RoO2w8aztsKyspaD1oLnJlcGxh
Y2UoIiAiK2JbbF0rIiAiLCIgIik7Zi5jbGFzc05hbWU9Yy50cmltKGgpfWVsc2UgZi5jbGFzc05h
bWU9IiJ9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGEsYil7dmFyIGQ9dHlwZW9m
IGEsZT10eXBlb2YgYj09PSJib29sZWFuIjtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMu
ZWFjaChmdW5jdGlvbihmKXt2YXIgaD1jKHRoaXMpO2gudG9nZ2xlQ2xhc3MoYS5jYWxsKHRoaXMs
ZixoLmF0dHIoImNsYXNzIiksYiksYil9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYo
ZD09PSJzdHJpbmciKWZvcih2YXIgZixoPTAsbD1jKHRoaXMpLGs9YixvPWEuc3BsaXQoaGEpO2Y9
b1toKytdOyl7az1lP2s6IWwuaGFzQ2xhc3MoZik7bFtrPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNz
Il0oZil9ZWxzZSBpZihkPT09InVuZGVmaW5lZCJ8fGQ9PT0iYm9vbGVhbiIpe3RoaXMuY2xhc3NO
YW1lJiZjLmRhdGEodGhpcywKKyJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSk7dGhpcy5j
bGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT1mYWxzZT8iIjpjLmRhdGEodGhpcywiX19jbGFz
c05hbWVfXyIpfHwiIn19KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7YT0iICIrYSsiICI7Zm9yKHZh
ciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlmKCgiICIrdGhpc1tiXS5jbGFzc05hbWUrIiAi
KS5yZXBsYWNlKHNhLCIgIikuaW5kZXhPZihhKT4tMSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9
LHZhbDpmdW5jdGlvbihhKXtpZighYXJndW1lbnRzLmxlbmd0aCl7dmFyIGI9dGhpc1swXTtpZihi
KXtpZihjLm5vZGVOYW1lKGIsIm9wdGlvbiIpKXt2YXIgZD1iLmF0dHJpYnV0ZXMudmFsdWU7cmV0
dXJuIWR8fGQuc3BlY2lmaWVkP2IudmFsdWU6Yi50ZXh0fWlmKGMubm9kZU5hbWUoYiwic2VsZWN0
Iikpe3ZhciBlPWIuc2VsZWN0ZWRJbmRleDtkPVtdO3ZhciBmPWIub3B0aW9ucztiPWIudHlwZT09
PSJzZWxlY3Qtb25lIjsKK2lmKGU8MClyZXR1cm4gbnVsbDt2YXIgaD1iP2U6MDtmb3IoZT1iP2Ur
MTpmLmxlbmd0aDtoPGU7aCsrKXt2YXIgbD1mW2hdO2lmKGwuc2VsZWN0ZWQmJihjLnN1cHBvcnQu
b3B0RGlzYWJsZWQ/IWwuZGlzYWJsZWQ6bC5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIik9PT1udWxs
KSYmKCFsLnBhcmVudE5vZGUuZGlzYWJsZWR8fCFjLm5vZGVOYW1lKGwucGFyZW50Tm9kZSwib3B0
Z3JvdXAiKSkpe2E9YyhsKS52YWwoKTtpZihiKXJldHVybiBhO2QucHVzaChhKX19cmV0dXJuIGR9
aWYodGEudGVzdChiLnR5cGUpJiYhYy5zdXBwb3J0LmNoZWNrT24pcmV0dXJuIGIuZ2V0QXR0cmli
dXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmIudmFsdWU7cmV0dXJuKGIudmFsdWV8fCIiKS5yZXBs
YWNlKFNhLCIiKX1yZXR1cm4gQn12YXIgaz1jLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFj
aChmdW5jdGlvbihvKXt2YXIgeD1jKHRoaXMpLHI9YTtpZih0aGlzLm5vZGVUeXBlPT09MSl7aWYo
aylyPQorYS5jYWxsKHRoaXMsbyx4LnZhbCgpKTtpZihyPT1udWxsKXI9IiI7ZWxzZSBpZih0eXBl
b2Ygcj09PSJudW1iZXIiKXIrPSIiO2Vsc2UgaWYoYy5pc0FycmF5KHIpKXI9Yy5tYXAocixmdW5j
dGlvbihDKXtyZXR1cm4gQz09bnVsbD8iIjpDKyIifSk7aWYoYy5pc0FycmF5KHIpJiZ0YS50ZXN0
KHRoaXMudHlwZSkpdGhpcy5jaGVja2VkPWMuaW5BcnJheSh4LnZhbCgpLHIpPj0wO2Vsc2UgaWYo
Yy5ub2RlTmFtZSh0aGlzLCJzZWxlY3QiKSl7dmFyIEE9Yy5tYWtlQXJyYXkocik7Yygib3B0aW9u
Iix0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZD1jLmluQXJyYXkoYyh0aGlzKS52
YWwoKSxBKT49MH0pO2lmKCFBLmxlbmd0aCl0aGlzLnNlbGVjdGVkSW5kZXg9LTF9ZWxzZSB0aGlz
LnZhbHVlPXJ9fSl9fSk7Yy5leHRlbmQoe2F0dHJGbjp7dmFsOnRydWUsY3NzOnRydWUsaHRtbDp0
cnVlLHRleHQ6dHJ1ZSxkYXRhOnRydWUsd2lkdGg6dHJ1ZSxoZWlnaHQ6dHJ1ZSxvZmZzZXQ6dHJ1
ZX0sCithdHRyOmZ1bmN0aW9uKGEsYixkLGUpe2lmKCFhfHxhLm5vZGVUeXBlPT09M3x8YS5ub2Rl
VHlwZT09PTgpcmV0dXJuIEI7aWYoZSYmYiBpbiBjLmF0dHJGbilyZXR1cm4gYyhhKVtiXShkKTtl
PWEubm9kZVR5cGUhPT0xfHwhYy5pc1hNTERvYyhhKTt2YXIgZj1kIT09QjtiPWUmJmMucHJvcHNb
Yl18fGI7dmFyIGg9VGEudGVzdChiKTtpZigoYiBpbiBhfHxhW2JdIT09QikmJmUmJiFoKXtpZihm
KXtiPT09InR5cGUiJiZVYS50ZXN0KGEubm9kZU5hbWUpJiZhLnBhcmVudE5vZGUmJmMuZXJyb3Io
InR5cGUgcHJvcGVydHkgY2FuJ3QgYmUgY2hhbmdlZCIpO2lmKGQ9PT1udWxsKWEubm9kZVR5cGU9
PT0xJiZhLnJlbW92ZUF0dHJpYnV0ZShiKTtlbHNlIGFbYl09ZH1pZihjLm5vZGVOYW1lKGEsImZv
cm0iKSYmYS5nZXRBdHRyaWJ1dGVOb2RlKGIpKXJldHVybiBhLmdldEF0dHJpYnV0ZU5vZGUoYiku
bm9kZVZhbHVlO2lmKGI9PT0idGFiSW5kZXgiKXJldHVybihiPWEuZ2V0QXR0cmlidXRlTm9kZSgi
dGFiSW5kZXgiKSkmJgorYi5zcGVjaWZpZWQ/Yi52YWx1ZTpWYS50ZXN0KGEubm9kZU5hbWUpfHxX
YS50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDpCO3JldHVybiBhW2JdfWlmKCFjLnN1cHBvcnQu
c3R5bGUmJmUmJmI9PT0ic3R5bGUiKXtpZihmKWEuc3R5bGUuY3NzVGV4dD0iIitkO3JldHVybiBh
LnN0eWxlLmNzc1RleHR9ZiYmYS5zZXRBdHRyaWJ1dGUoYiwiIitkKTtpZighYS5hdHRyaWJ1dGVz
W2JdJiZhLmhhc0F0dHJpYnV0ZSYmIWEuaGFzQXR0cmlidXRlKGIpKXJldHVybiBCO2E9IWMuc3Vw
cG9ydC5ocmVmTm9ybWFsaXplZCYmZSYmaD9hLmdldEF0dHJpYnV0ZShiLDIpOmEuZ2V0QXR0cmli
dXRlKGIpO3JldHVybiBhPT09bnVsbD9COmF9fSk7dmFyIFg9L1wuKC4qKSQvLGlhPS9eKD86dGV4
dGFyZWF8aW5wdXR8c2VsZWN0KSQvaSxMYT0vXC4vZyxNYT0vIC9nLFhhPS9bXlx3XHMufGBdL2cs
WWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShYYSwiXFwkJiIpfSx1YT17Zm9jdXNpbjow
LGZvY3Vzb3V0OjB9OworYy5ldmVudD17YWRkOmZ1bmN0aW9uKGEsYixkLGUpe2lmKCEoYS5ub2Rl
VHlwZT09PTN8fGEubm9kZVR5cGU9PT04KSl7aWYoYy5pc1dpbmRvdyhhKSYmYSE9PUUmJiFhLmZy
YW1lRWxlbWVudClhPUU7aWYoZD09PWZhbHNlKWQ9VTtlbHNlIGlmKCFkKXJldHVybjt2YXIgZixo
O2lmKGQuaGFuZGxlcil7Zj1kO2Q9Zi5oYW5kbGVyfWlmKCFkLmd1aWQpZC5ndWlkPWMuZ3VpZCsr
O2lmKGg9Yy5kYXRhKGEpKXt2YXIgbD1hLm5vZGVUeXBlPyJldmVudHMiOiJfX2V2ZW50c19fIixr
PWhbbF0sbz1oLmhhbmRsZTtpZih0eXBlb2Ygaz09PSJmdW5jdGlvbiIpe289ay5oYW5kbGU7az1r
LmV2ZW50c31lbHNlIGlmKCFrKXthLm5vZGVUeXBlfHwoaFtsXT1oPWZ1bmN0aW9uKCl7fSk7aC5l
dmVudHM9az17fX1pZighbyloLmhhbmRsZT1vPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBjIT09
InVuZGVmaW5lZCImJiFjLmV2ZW50LnRyaWdnZXJlZD9jLmV2ZW50LmhhbmRsZS5hcHBseShvLmVs
ZW0sCithcmd1bWVudHMpOkJ9O28uZWxlbT1hO2I9Yi5zcGxpdCgiICIpO2Zvcih2YXIgeD0wLHI7
bD1iW3grK107KXtoPWY/Yy5leHRlbmQoe30sZik6e2hhbmRsZXI6ZCxkYXRhOmV9O2lmKGwuaW5k
ZXhPZigiLiIpPi0xKXtyPWwuc3BsaXQoIi4iKTtsPXIuc2hpZnQoKTtoLm5hbWVzcGFjZT1yLnNs
aWNlKDApLnNvcnQoKS5qb2luKCIuIil9ZWxzZXtyPVtdO2gubmFtZXNwYWNlPSIifWgudHlwZT1s
O2lmKCFoLmd1aWQpaC5ndWlkPWQuZ3VpZDt2YXIgQT1rW2xdLEM9Yy5ldmVudC5zcGVjaWFsW2xd
fHx7fTtpZighQSl7QT1rW2xdPVtdO2lmKCFDLnNldHVwfHxDLnNldHVwLmNhbGwoYSxlLHIsbyk9
PT1mYWxzZSlpZihhLmFkZEV2ZW50TGlzdGVuZXIpYS5hZGRFdmVudExpc3RlbmVyKGwsbyxmYWxz
ZSk7ZWxzZSBhLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrbCxvKX1pZihDLmFkZCl7
Qy5hZGQuY2FsbChhLGgpO2lmKCFoLmhhbmRsZXIuZ3VpZCloLmhhbmRsZXIuZ3VpZD0KK2QuZ3Vp
ZH1BLnB1c2goaCk7Yy5ldmVudC5nbG9iYWxbbF09dHJ1ZX1hPW51bGx9fX0sZ2xvYmFsOnt9LHJl
bW92ZTpmdW5jdGlvbihhLGIsZCxlKXtpZighKGEubm9kZVR5cGU9PT0zfHxhLm5vZGVUeXBlPT09
OCkpe2lmKGQ9PT1mYWxzZSlkPVU7dmFyIGYsaCxsPTAsayxvLHgscixBLEMsSj1hLm5vZGVUeXBl
PyJldmVudHMiOiJfX2V2ZW50c19fIix3PWMuZGF0YShhKSxJPXcmJndbSl07aWYodyYmSSl7aWYo
dHlwZW9mIEk9PT0iZnVuY3Rpb24iKXt3PUk7ST1JLmV2ZW50c31pZihiJiZiLnR5cGUpe2Q9Yi5o
YW5kbGVyO2I9Yi50eXBlfWlmKCFifHx0eXBlb2YgYj09PSJzdHJpbmciJiZiLmNoYXJBdCgwKT09
PSIuIil7Yj1ifHwiIjtmb3IoZiBpbiBJKWMuZXZlbnQucmVtb3ZlKGEsZitiKX1lbHNle2Zvcihi
PWIuc3BsaXQoIiAiKTtmPWJbbCsrXTspe3I9ZjtrPWYuaW5kZXhPZigiLiIpPDA7bz1bXTtpZigh
ayl7bz1mLnNwbGl0KCIuIik7Zj1vLnNoaWZ0KCk7eD1SZWdFeHAoIihefFxcLikiKworYy5tYXAo
by5zbGljZSgwKS5zb3J0KCksWWEpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWlm
KEE9SVtmXSlpZihkKXtyPWMuZXZlbnQuc3BlY2lhbFtmXXx8e307Zm9yKGg9ZXx8MDtoPEEubGVu
Z3RoO2grKyl7Qz1BW2hdO2lmKGQuZ3VpZD09PUMuZ3VpZCl7aWYoa3x8eC50ZXN0KEMubmFtZXNw
YWNlKSl7ZT09bnVsbCYmQS5zcGxpY2UoaC0tLDEpO3IucmVtb3ZlJiZyLnJlbW92ZS5jYWxsKGEs
Qyl9aWYoZSE9bnVsbClicmVha319aWYoQS5sZW5ndGg9PT0wfHxlIT1udWxsJiZBLmxlbmd0aD09
PTEpe2lmKCFyLnRlYXJkb3dufHxyLnRlYXJkb3duLmNhbGwoYSxvKT09PWZhbHNlKWMucmVtb3Zl
RXZlbnQoYSxmLHcuaGFuZGxlKTtkZWxldGUgSVtmXX19ZWxzZSBmb3IoaD0wO2g8QS5sZW5ndGg7
aCsrKXtDPUFbaF07aWYoa3x8eC50ZXN0KEMubmFtZXNwYWNlKSl7Yy5ldmVudC5yZW1vdmUoYSxy
LEMuaGFuZGxlcixoKTtBLnNwbGljZShoLS0sMSl9fX1pZihjLmlzRW1wdHlPYmplY3QoSSkpe2lm
KGI9Cit3LmhhbmRsZSliLmVsZW09bnVsbDtkZWxldGUgdy5ldmVudHM7ZGVsZXRlIHcuaGFuZGxl
O2lmKHR5cGVvZiB3PT09ImZ1bmN0aW9uIiljLnJlbW92ZURhdGEoYSxKKTtlbHNlIGMuaXNFbXB0
eU9iamVjdCh3KSYmYy5yZW1vdmVEYXRhKGEpfX19fX0sdHJpZ2dlcjpmdW5jdGlvbihhLGIsZCxl
KXt2YXIgZj1hLnR5cGV8fGE7aWYoIWUpe2E9dHlwZW9mIGE9PT0ib2JqZWN0Ij9hW2MuZXhwYW5k
b10/YTpjLmV4dGVuZChjLkV2ZW50KGYpLGEpOmMuRXZlbnQoZik7aWYoZi5pbmRleE9mKCIhIik+
PTApe2EudHlwZT1mPWYuc2xpY2UoMCwtMSk7YS5leGNsdXNpdmU9dHJ1ZX1pZighZCl7YS5zdG9w
UHJvcGFnYXRpb24oKTtjLmV2ZW50Lmdsb2JhbFtmXSYmYy5lYWNoKGMuY2FjaGUsZnVuY3Rpb24o
KXt0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbZl0mJmMuZXZlbnQudHJpZ2dlcihhLGIsdGhpcy5o
YW5kbGUuZWxlbSl9KX1pZighZHx8ZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9PT0KKzgpcmV0
dXJuIEI7YS5yZXN1bHQ9QjthLnRhcmdldD1kO2I9Yy5tYWtlQXJyYXkoYik7Yi51bnNoaWZ0KGEp
fWEuY3VycmVudFRhcmdldD1kOyhlPWQubm9kZVR5cGU/Yy5kYXRhKGQsImhhbmRsZSIpOihjLmRh
dGEoZCwiX19ldmVudHNfXyIpfHx7fSkuaGFuZGxlKSYmZS5hcHBseShkLGIpO2U9ZC5wYXJlbnRO
b2RlfHxkLm93bmVyRG9jdW1lbnQ7dHJ5e2lmKCEoZCYmZC5ub2RlTmFtZSYmYy5ub0RhdGFbZC5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkpaWYoZFsib24iK2ZdJiZkWyJvbiIrZl0uYXBwbHkoZCxi
KT09PWZhbHNlKXthLnJlc3VsdD1mYWxzZTthLnByZXZlbnREZWZhdWx0KCl9fWNhdGNoKGgpe31p
ZighYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZlKWMuZXZlbnQudHJpZ2dlcihhLGIsZSx0cnVl
KTtlbHNlIGlmKCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgbDtlPWEudGFyZ2V0O3ZhciBr
PWYucmVwbGFjZShYLCIiKSxvPWMubm9kZU5hbWUoZSwiYSIpJiZrPT09CisiY2xpY2siLHg9Yy5l
dmVudC5zcGVjaWFsW2tdfHx7fTtpZigoIXguX2RlZmF1bHR8fHguX2RlZmF1bHQuY2FsbChkLGEp
PT09ZmFsc2UpJiYhbyYmIShlJiZlLm5vZGVOYW1lJiZjLm5vRGF0YVtlLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCldKSl7dHJ5e2lmKGVba10pe2lmKGw9ZVsib24iK2tdKWVbIm9uIitrXT1udWxsO2Mu
ZXZlbnQudHJpZ2dlcmVkPXRydWU7ZVtrXSgpfX1jYXRjaChyKXt9aWYobCllWyJvbiIra109bDtj
LmV2ZW50LnRyaWdnZXJlZD1mYWxzZX19fSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGIsZCxlLGY7
ZD1bXTt2YXIgaD1jLm1ha2VBcnJheShhcmd1bWVudHMpO2E9aFswXT1jLmV2ZW50LmZpeChhfHxF
LmV2ZW50KTthLmN1cnJlbnRUYXJnZXQ9dGhpcztiPWEudHlwZS5pbmRleE9mKCIuIik8MCYmIWEu
ZXhjbHVzaXZlO2lmKCFiKXtlPWEudHlwZS5zcGxpdCgiLiIpO2EudHlwZT1lLnNoaWZ0KCk7ZD1l
LnNsaWNlKDApLnNvcnQoKTtlPVJlZ0V4cCgiKF58XFwuKSIrCitkLmpvaW4oIlxcLig/Oi4qXFwu
KT8iKSsiKFxcLnwkKSIpfWEubmFtZXNwYWNlPWEubmFtZXNwYWNlfHxkLmpvaW4oIi4iKTtmPWMu
ZGF0YSh0aGlzLHRoaXMubm9kZVR5cGU/ImV2ZW50cyI6Il9fZXZlbnRzX18iKTtpZih0eXBlb2Yg
Zj09PSJmdW5jdGlvbiIpZj1mLmV2ZW50cztkPShmfHx7fSlbYS50eXBlXTtpZihmJiZkKXtkPWQu
c2xpY2UoMCk7Zj0wO2Zvcih2YXIgbD1kLmxlbmd0aDtmPGw7ZisrKXt2YXIgaz1kW2ZdO2lmKGJ8
fGUudGVzdChrLm5hbWVzcGFjZSkpe2EuaGFuZGxlcj1rLmhhbmRsZXI7YS5kYXRhPWsuZGF0YTth
LmhhbmRsZU9iaj1rO2s9ay5oYW5kbGVyLmFwcGx5KHRoaXMsaCk7aWYoayE9PUIpe2EucmVzdWx0
PWs7aWYoaz09PWZhbHNlKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKX19
aWYoYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrfX19cmV0dXJuIGEucmVz
dWx0fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBidXR0b24gY2Fu
Y2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRh
dGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBs
YXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgcHJldlZh
bHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNy
Y0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIg
IiksCitmaXg6ZnVuY3Rpb24oYSl7aWYoYVtjLmV4cGFuZG9dKXJldHVybiBhO3ZhciBiPWE7YT1j
LkV2ZW50KGIpO2Zvcih2YXIgZD10aGlzLnByb3BzLmxlbmd0aCxlO2Q7KXtlPXRoaXMucHJvcHNb
LS1kXTthW2VdPWJbZV19aWYoIWEudGFyZ2V0KWEudGFyZ2V0PWEuc3JjRWxlbWVudHx8dDtpZihh
LnRhcmdldC5ub2RlVHlwZT09PTMpYS50YXJnZXQ9YS50YXJnZXQucGFyZW50Tm9kZTtpZighYS5y
ZWxhdGVkVGFyZ2V0JiZhLmZyb21FbGVtZW50KWEucmVsYXRlZFRhcmdldD1hLmZyb21FbGVtZW50
PT09YS50YXJnZXQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudDtpZihhLnBhZ2VYPT1udWxsJiZh
LmNsaWVudFghPW51bGwpe2I9dC5kb2N1bWVudEVsZW1lbnQ7ZD10LmJvZHk7YS5wYWdlWD1hLmNs
aWVudFgrKGImJmIuc2Nyb2xsTGVmdHx8ZCYmZC5zY3JvbGxMZWZ0fHwwKS0oYiYmYi5jbGllbnRM
ZWZ0fHxkJiZkLmNsaWVudExlZnR8fDApO2EucGFnZVk9YS5jbGllbnRZKyhiJiZiLnNjcm9sbFRv
cHx8CitkJiZkLnNjcm9sbFRvcHx8MCktKGImJmIuY2xpZW50VG9wfHxkJiZkLmNsaWVudFRvcHx8
MCl9aWYoYS53aGljaD09bnVsbCYmKGEuY2hhckNvZGUhPW51bGx8fGEua2V5Q29kZSE9bnVsbCkp
YS53aGljaD1hLmNoYXJDb2RlIT1udWxsP2EuY2hhckNvZGU6YS5rZXlDb2RlO2lmKCFhLm1ldGFL
ZXkmJmEuY3RybEtleSlhLm1ldGFLZXk9YS5jdHJsS2V5O2lmKCFhLndoaWNoJiZhLmJ1dHRvbiE9
PUIpYS53aGljaD1hLmJ1dHRvbiYxPzE6YS5idXR0b24mMj8zOmEuYnV0dG9uJjQ/MjowO3JldHVy
biBhfSxndWlkOjFFOCxwcm94eTpjLnByb3h5LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpjLmJpbmRS
ZWFkeSx0ZWFyZG93bjpjLm5vb3B9LGxpdmU6e2FkZDpmdW5jdGlvbihhKXtjLmV2ZW50LmFkZCh0
aGlzLFkoYS5vcmlnVHlwZSxhLnNlbGVjdG9yKSxjLmV4dGVuZCh7fSxhLHtoYW5kbGVyOkthLGd1
aWQ6YS5oYW5kbGVyLmd1aWR9KSl9LHJlbW92ZTpmdW5jdGlvbihhKXtjLmV2ZW50LnJlbW92ZSh0
aGlzLAorWShhLm9yaWdUeXBlLGEuc2VsZWN0b3IpLGEpfX0sYmVmb3JldW5sb2FkOntzZXR1cDpm
dW5jdGlvbihhLGIsZCl7aWYoYy5pc1dpbmRvdyh0aGlzKSl0aGlzLm9uYmVmb3JldW5sb2FkPWR9
LHRlYXJkb3duOmZ1bmN0aW9uKGEsYil7aWYodGhpcy5vbmJlZm9yZXVubG9hZD09PWIpdGhpcy5v
bmJlZm9yZXVubG9hZD1udWxsfX19fTtjLnJlbW92ZUV2ZW50PXQucmVtb3ZlRXZlbnRMaXN0ZW5l
cj9mdW5jdGlvbihhLGIsZCl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlz
dGVuZXIoYixkLGZhbHNlKX06ZnVuY3Rpb24oYSxiLGQpe2EuZGV0YWNoRXZlbnQmJmEuZGV0YWNo
RXZlbnQoIm9uIitiLGQpfTtjLkV2ZW50PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLnByZXZlbnREZWZh
dWx0KXJldHVybiBuZXcgYy5FdmVudChhKTtpZihhJiZhLnR5cGUpe3RoaXMub3JpZ2luYWxFdmVu
dD1hO3RoaXMudHlwZT1hLnR5cGV9ZWxzZSB0aGlzLnR5cGU9YTt0aGlzLnRpbWVTdGFtcD0KK2Mu
bm93KCk7dGhpc1tjLmV4cGFuZG9dPXRydWV9O2MuRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVm
YXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWNhO3ZhciBhPXRoaXMub3Jp
Z2luYWxFdmVudDtpZihhKWlmKGEucHJldmVudERlZmF1bHQpYS5wcmV2ZW50RGVmYXVsdCgpO2Vs
c2UgYS5yZXR1cm5WYWx1ZT1mYWxzZX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5p
c1Byb3BhZ2F0aW9uU3RvcHBlZD1jYTt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoYSl7YS5z
dG9wUHJvcGFnYXRpb24mJmEuc3RvcFByb3BhZ2F0aW9uKCk7YS5jYW5jZWxCdWJibGU9dHJ1ZX19
LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNJbW1lZGlhdGVQcm9w
YWdhdGlvblN0b3BwZWQ9Y2E7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVu
dGVkOlUsaXNQcm9wYWdhdGlvblN0b3BwZWQ6VSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBl
ZDpVfTsKK3ZhciB2YT1mdW5jdGlvbihhKXt2YXIgYj1hLnJlbGF0ZWRUYXJnZXQ7dHJ5e2Zvcig7
YiYmYiE9PXRoaXM7KWI9Yi5wYXJlbnROb2RlO2lmKGIhPT10aGlzKXthLnR5cGU9YS5kYXRhO2Mu
ZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19Y2F0Y2goZCl7fX0sd2E9ZnVuY3Rp
b24oYSl7YS50eXBlPWEuZGF0YTtjLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9
O2MuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9LGZ1
bmN0aW9uKGEsYil7Yy5ldmVudC5zcGVjaWFsW2FdPXtzZXR1cDpmdW5jdGlvbihkKXtjLmV2ZW50
LmFkZCh0aGlzLGIsZCYmZC5zZWxlY3Rvcj93YTp2YSxhKX0sdGVhcmRvd246ZnVuY3Rpb24oZCl7
Yy5ldmVudC5yZW1vdmUodGhpcyxiLGQmJmQuc2VsZWN0b3I/d2E6dmEpfX19KTtpZighYy5zdXBw
b3J0LnN1Ym1pdEJ1YmJsZXMpYy5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24o
KXtpZih0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0KKyJmb3JtIil7Yy5ldmVudC5hZGQo
dGhpcywiY2xpY2suc3BlY2lhbFN1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1i
LnR5cGU7aWYoKGQ9PT0ic3VibWl0Inx8ZD09PSJpbWFnZSIpJiZjKGIpLmNsb3Nlc3QoImZvcm0i
KS5sZW5ndGgpe2EubGl2ZUZpcmVkPUI7cmV0dXJuIGxhKCJzdWJtaXQiLHRoaXMsYXJndW1lbnRz
KX19KTtjLmV2ZW50LmFkZCh0aGlzLCJrZXlwcmVzcy5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihh
KXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZigoZD09PSJ0ZXh0Inx8ZD09PSJwYXNzd29yZCIp
JiZjKGIpLmNsb3Nlc3QoImZvcm0iKS5sZW5ndGgmJmEua2V5Q29kZT09PTEzKXthLmxpdmVGaXJl
ZD1CO3JldHVybiBsYSgic3VibWl0Iix0aGlzLGFyZ3VtZW50cyl9fSl9ZWxzZSByZXR1cm4gZmFs
c2V9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Yy5ldmVudC5yZW1vdmUodGhpcywiLnNwZWNpYWxTdWJt
aXQiKX19O2lmKCFjLnN1cHBvcnQuY2hhbmdlQnViYmxlcyl7dmFyIFYsCit4YT1mdW5jdGlvbihh
KXt2YXIgYj1hLnR5cGUsZD1hLnZhbHVlO2lmKGI9PT0icmFkaW8ifHxiPT09ImNoZWNrYm94Iilk
PWEuY2hlY2tlZDtlbHNlIGlmKGI9PT0ic2VsZWN0LW11bHRpcGxlIilkPWEuc2VsZWN0ZWRJbmRl
eD4tMT9jLm1hcChhLm9wdGlvbnMsZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2VsZWN0ZWR9KS5qb2lu
KCItIik6IiI7ZWxzZSBpZihhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2VsZWN0IilkPWEu
c2VsZWN0ZWRJbmRleDtyZXR1cm4gZH0sWj1mdW5jdGlvbihhLGIpe3ZhciBkPWEudGFyZ2V0LGUs
ZjtpZighKCFpYS50ZXN0KGQubm9kZU5hbWUpfHxkLnJlYWRPbmx5KSl7ZT1jLmRhdGEoZCwiX2No
YW5nZV9kYXRhIik7Zj14YShkKTtpZihhLnR5cGUhPT0iZm9jdXNvdXQifHxkLnR5cGUhPT0icmFk
aW8iKWMuZGF0YShkLCJfY2hhbmdlX2RhdGEiLGYpO2lmKCEoZT09PUJ8fGY9PT1lKSlpZihlIT1u
dWxsfHxmKXthLnR5cGU9ImNoYW5nZSI7YS5saXZlRmlyZWQ9CitCO3JldHVybiBjLmV2ZW50LnRy
aWdnZXIoYSxiLGQpfX19O2MuZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e2ZpbHRlcnM6e2ZvY3Vzb3V0
OlosYmVmb3JlZGVhY3RpdmF0ZTpaLGNsaWNrOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9
Yi50eXBlO2lmKGQ9PT0icmFkaW8ifHxkPT09ImNoZWNrYm94Inx8Yi5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpPT09InNlbGVjdCIpcmV0dXJuIFouY2FsbCh0aGlzLGEpfSxrZXlkb3duOmZ1bmN0aW9u
KGEpe3ZhciBiPWEudGFyZ2V0LGQ9Yi50eXBlO2lmKGEua2V5Q29kZT09PTEzJiZiLm5vZGVOYW1l
LnRvTG93ZXJDYXNlKCkhPT0idGV4dGFyZWEifHxhLmtleUNvZGU9PT0zMiYmKGQ9PT0iY2hlY2ti
b3gifHxkPT09InJhZGlvIil8fGQ9PT0ic2VsZWN0LW11bHRpcGxlIilyZXR1cm4gWi5jYWxsKHRo
aXMsYSl9LGJlZm9yZWFjdGl2YXRlOmZ1bmN0aW9uKGEpe2E9YS50YXJnZXQ7Yy5kYXRhKGEsIl9j
aGFuZ2VfZGF0YSIseGEoYSkpfX0sc2V0dXA6ZnVuY3Rpb24oKXtpZih0aGlzLnR5cGU9PT0KKyJm
aWxlIilyZXR1cm4gZmFsc2U7Zm9yKHZhciBhIGluIFYpYy5ldmVudC5hZGQodGhpcyxhKyIuc3Bl
Y2lhbENoYW5nZSIsVlthXSk7cmV0dXJuIGlhLnRlc3QodGhpcy5ub2RlTmFtZSl9LHRlYXJkb3du
OmZ1bmN0aW9uKCl7Yy5ldmVudC5yZW1vdmUodGhpcywiLnNwZWNpYWxDaGFuZ2UiKTtyZXR1cm4g
aWEudGVzdCh0aGlzLm5vZGVOYW1lKX19O1Y9Yy5ldmVudC5zcGVjaWFsLmNoYW5nZS5maWx0ZXJz
O1YuZm9jdXM9Vi5iZWZvcmVhY3RpdmF0ZX10LmFkZEV2ZW50TGlzdGVuZXImJmMuZWFjaCh7Zm9j
dXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBkKGUp
e2U9Yy5ldmVudC5maXgoZSk7ZS50eXBlPWI7cmV0dXJuIGMuZXZlbnQudHJpZ2dlcihlLG51bGws
ZS50YXJnZXQpfWMuZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt1YVtiXSsrPT09
MCYmdC5hZGRFdmVudExpc3RlbmVyKGEsZCx0cnVlKX0sdGVhcmRvd246ZnVuY3Rpb24oKXstLXVh
W2JdPT09CiswJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxkLHRydWUpfX19KTtjLmVhY2goWyJi
aW5kIiwib25lIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQsZSxmKXtpZih0eXBl
b2YgZD09PSJvYmplY3QiKXtmb3IodmFyIGggaW4gZCl0aGlzW2JdKGgsZSxkW2hdLGYpO3JldHVy
biB0aGlzfWlmKGMuaXNGdW5jdGlvbihlKXx8ZT09PWZhbHNlKXtmPWU7ZT1CfXZhciBsPWI9PT0i
b25lIj9jLnByb3h5KGYsZnVuY3Rpb24obyl7Yyh0aGlzKS51bmJpbmQobyxsKTtyZXR1cm4gZi5h
cHBseSh0aGlzLGFyZ3VtZW50cyl9KTpmO2lmKGQ9PT0idW5sb2FkIiYmYiE9PSJvbmUiKXRoaXMu
b25lKGQsZSxmKTtlbHNle2g9MDtmb3IodmFyIGs9dGhpcy5sZW5ndGg7aDxrO2grKyljLmV2ZW50
LmFkZCh0aGlzW2hdLGQsbCxlKX1yZXR1cm4gdGhpc319KTtjLmZuLmV4dGVuZCh7dW5iaW5kOmZ1
bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ib2JqZWN0IiYmIWEucHJldmVudERlZmF1bHQpZm9y
KHZhciBkIGluIGEpdGhpcy51bmJpbmQoZCwKK2FbZF0pO2Vsc2V7ZD0wO2Zvcih2YXIgZT10aGlz
Lmxlbmd0aDtkPGU7ZCsrKWMuZXZlbnQucmVtb3ZlKHRoaXNbZF0sYSxiKX1yZXR1cm4gdGhpc30s
ZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGQsZSl7cmV0dXJuIHRoaXMubGl2ZShiLGQsZSxhKX0sdW5k
ZWxlZ2F0ZTpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMu
dW5iaW5kKCJsaXZlIik6dGhpcy5kaWUoYixudWxsLGQsYSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxi
KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0p
fSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe2lmKHRoaXNbMF0pe3ZhciBkPWMuRXZlbnQo
YSk7ZC5wcmV2ZW50RGVmYXVsdCgpO2Quc3RvcFByb3BhZ2F0aW9uKCk7Yy5ldmVudC50cmlnZ2Vy
KGQsYix0aGlzWzBdKTtyZXR1cm4gZC5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oYSl7Zm9yKHZh
ciBiPWFyZ3VtZW50cyxkPQorMTtkPGIubGVuZ3RoOyljLnByb3h5KGEsYltkKytdKTtyZXR1cm4g
dGhpcy5jbGljayhjLnByb3h5KGEsZnVuY3Rpb24oZSl7dmFyIGY9KGMuZGF0YSh0aGlzLCJsYXN0
VG9nZ2xlIithLmd1aWQpfHwwKSVkO2MuZGF0YSh0aGlzLCJsYXN0VG9nZ2xlIithLmd1aWQsZisx
KTtlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGJbZl0uYXBwbHkodGhpcyxhcmd1bWVudHMpfHxm
YWxzZX0pKX0saG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1v
dXNlbGVhdmUoYnx8YSl9fSk7dmFyIHlhPXtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQi
LG1vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifTtjLmVhY2goWyJs
aXZlIiwiZGllIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQsZSxmLGgpe3ZhciBs
LGs9MCxvLHgscj1ofHx0aGlzLnNlbGVjdG9yO2g9aD90aGlzOmModGhpcy5jb250ZXh0KTtpZih0
eXBlb2YgZD09PQorIm9iamVjdCImJiFkLnByZXZlbnREZWZhdWx0KXtmb3IobCBpbiBkKWhbYl0o
bCxlLGRbbF0scik7cmV0dXJuIHRoaXN9aWYoYy5pc0Z1bmN0aW9uKGUpKXtmPWU7ZT1CfWZvcihk
PShkfHwiIikuc3BsaXQoIiAiKTsobD1kW2srK10pIT1udWxsOyl7bz1YLmV4ZWMobCk7eD0iIjtp
ZihvKXt4PW9bMF07bD1sLnJlcGxhY2UoWCwiIil9aWYobD09PSJob3ZlciIpZC5wdXNoKCJtb3Vz
ZWVudGVyIit4LCJtb3VzZWxlYXZlIit4KTtlbHNle289bDtpZihsPT09ImZvY3VzInx8bD09PSJi
bHVyIil7ZC5wdXNoKHlhW2xdK3gpO2wrPXh9ZWxzZSBsPSh5YVtsXXx8bCkreDtpZihiPT09Imxp
dmUiKXt4PTA7Zm9yKHZhciBBPWgubGVuZ3RoO3g8QTt4KyspYy5ldmVudC5hZGQoaFt4XSwibGl2
ZS4iK1kobCxyKSx7ZGF0YTplLHNlbGVjdG9yOnIsaGFuZGxlcjpmLG9yaWdUeXBlOmwsb3JpZ0hh
bmRsZXI6ZixwcmVUeXBlOm99KX1lbHNlIGgudW5iaW5kKCJsaXZlLiIrWShsLHIpLGYpfX1yZXR1
cm4gdGhpc319KTsKK2MuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVz
aXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vt
b3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVj
dCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciIuc3BsaXQoIiAiKSxmdW5jdGlv
bihhLGIpe2MuZm5bYl09ZnVuY3Rpb24oZCxlKXtpZihlPT1udWxsKXtlPWQ7ZD1udWxsfXJldHVy
biBhcmd1bWVudHMubGVuZ3RoPjA/dGhpcy5iaW5kKGIsZCxlKTp0aGlzLnRyaWdnZXIoYil9O2lm
KGMuYXR0ckZuKWMuYXR0ckZuW2JdPXRydWV9KTtFLmF0dGFjaEV2ZW50JiYhRS5hZGRFdmVudExp
c3RlbmVyJiZjKEUpLmJpbmQoInVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gYy5jYWNo
ZSlpZihjLmNhY2hlW2FdLmhhbmRsZSl0cnl7Yy5ldmVudC5yZW1vdmUoYy5jYWNoZVthXS5oYW5k
bGUuZWxlbSl9Y2F0Y2goYil7fX0pOworKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShnLGksbixtLHAs
cSl7cD0wO2Zvcih2YXIgdT1tLmxlbmd0aDtwPHU7cCsrKXt2YXIgeT1tW3BdO2lmKHkpe3ZhciBG
PWZhbHNlO2Zvcih5PXlbZ107eTspe2lmKHkuc2l6Y2FjaGU9PT1uKXtGPW1beS5zaXpzZXRdO2Jy
ZWFrfWlmKHkubm9kZVR5cGU9PT0xJiYhcSl7eS5zaXpjYWNoZT1uO3kuc2l6c2V0PXB9aWYoeS5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09aSl7Rj15O2JyZWFrfXk9eVtnXX1tW3BdPUZ9fX1mdW5j
dGlvbiBiKGcsaSxuLG0scCxxKXtwPTA7Zm9yKHZhciB1PW0ubGVuZ3RoO3A8dTtwKyspe3ZhciB5
PW1bcF07aWYoeSl7dmFyIEY9ZmFsc2U7Zm9yKHk9eVtnXTt5Oyl7aWYoeS5zaXpjYWNoZT09PW4p
e0Y9bVt5LnNpenNldF07YnJlYWt9aWYoeS5ub2RlVHlwZT09PTEpe2lmKCFxKXt5LnNpemNhY2hl
PW47eS5zaXpzZXQ9cH1pZih0eXBlb2YgaSE9PSJzdHJpbmciKXtpZih5PT09aSl7Rj10cnVlO2Jy
ZWFrfX1lbHNlIGlmKGsuZmlsdGVyKGksCitbeV0pLmxlbmd0aD4wKXtGPXk7YnJlYWt9fXk9eVtn
XX1tW3BdPUZ9fX12YXIgZD0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtb
XlxbXF1dKlxdfFsnIl1bXiciXSpbJyJdfFteXFtcXSciXSspK1xdfFxcLnxbXiA+K34sKFxbXFxd
KykrfFs+K35dKShccyosXHMqKT8oKD86LnxccnxcbikqKS9nLGU9MCxmPU9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcsaD1mYWxzZSxsPXRydWU7WzAsMF0uc29ydChmdW5jdGlvbigpe2w9ZmFsc2U7
cmV0dXJuIDB9KTt2YXIgaz1mdW5jdGlvbihnLGksbixtKXtuPW58fFtdO3ZhciBwPWk9aXx8dDtp
ZihpLm5vZGVUeXBlIT09MSYmaS5ub2RlVHlwZSE9PTkpcmV0dXJuW107aWYoIWd8fHR5cGVvZiBn
IT09InN0cmluZyIpcmV0dXJuIG47dmFyIHEsdSx5LEYsTSxOPXRydWUsTz1rLmlzWE1MKGkpLEQ9
W10sUj1nO2Rve2QuZXhlYygiIik7aWYocT1kLmV4ZWMoUikpe1I9cVszXTtELnB1c2gocVsxXSk7
aWYocVsyXSl7Rj1xWzNdOworYnJlYWt9fX13aGlsZShxKTtpZihELmxlbmd0aD4xJiZ4LmV4ZWMo
ZykpaWYoRC5sZW5ndGg9PT0yJiZvLnJlbGF0aXZlW0RbMF1dKXU9TChEWzBdK0RbMV0saSk7ZWxz
ZSBmb3IodT1vLnJlbGF0aXZlW0RbMF1dP1tpXTprKEQuc2hpZnQoKSxpKTtELmxlbmd0aDspe2c9
RC5zaGlmdCgpO2lmKG8ucmVsYXRpdmVbZ10pZys9RC5zaGlmdCgpO3U9TChnLHUpfWVsc2V7aWYo
IW0mJkQubGVuZ3RoPjEmJmkubm9kZVR5cGU9PT05JiYhTyYmby5tYXRjaC5JRC50ZXN0KERbMF0p
JiYhby5tYXRjaC5JRC50ZXN0KERbRC5sZW5ndGgtMV0pKXtxPWsuZmluZChELnNoaWZ0KCksaSxP
KTtpPXEuZXhwcj9rLmZpbHRlcihxLmV4cHIscS5zZXQpWzBdOnEuc2V0WzBdfWlmKGkpe3E9bT97
ZXhwcjpELnBvcCgpLHNldDpDKG0pfTprLmZpbmQoRC5wb3AoKSxELmxlbmd0aD09PTEmJihEWzBd
PT09In4ifHxEWzBdPT09IisiKSYmaS5wYXJlbnROb2RlP2kucGFyZW50Tm9kZTppLE8pO3U9cS5l
eHByP2suZmlsdGVyKHEuZXhwciwKK3Euc2V0KTpxLnNldDtpZihELmxlbmd0aD4wKXk9Qyh1KTtl
bHNlIE49ZmFsc2U7Zm9yKDtELmxlbmd0aDspe3E9TT1ELnBvcCgpO2lmKG8ucmVsYXRpdmVbTV0p
cT1ELnBvcCgpO2Vsc2UgTT0iIjtpZihxPT1udWxsKXE9aTtvLnJlbGF0aXZlW01dKHkscSxPKX19
ZWxzZSB5PVtdfXl8fCh5PXUpO3l8fGsuZXJyb3IoTXx8Zyk7aWYoZi5jYWxsKHkpPT09IltvYmpl
Y3QgQXJyYXldIilpZihOKWlmKGkmJmkubm9kZVR5cGU9PT0xKWZvcihnPTA7eVtnXSE9bnVsbDtn
Kyspe2lmKHlbZ10mJih5W2ddPT09dHJ1ZXx8eVtnXS5ub2RlVHlwZT09PTEmJmsuY29udGFpbnMo
aSx5W2ddKSkpbi5wdXNoKHVbZ10pfWVsc2UgZm9yKGc9MDt5W2ddIT1udWxsO2crKyl5W2ddJiZ5
W2ddLm5vZGVUeXBlPT09MSYmbi5wdXNoKHVbZ10pO2Vsc2Ugbi5wdXNoLmFwcGx5KG4seSk7ZWxz
ZSBDKHksbik7aWYoRil7ayhGLHAsbixtKTtrLnVuaXF1ZVNvcnQobil9cmV0dXJuIG59O2sudW5p
cXVlU29ydD1mdW5jdGlvbihnKXtpZih3KXtoPQorbDtnLnNvcnQodyk7aWYoaClmb3IodmFyIGk9
MTtpPGcubGVuZ3RoO2krKylnW2ldPT09Z1tpLTFdJiZnLnNwbGljZShpLS0sMSl9cmV0dXJuIGd9
O2subWF0Y2hlcz1mdW5jdGlvbihnLGkpe3JldHVybiBrKGcsbnVsbCxudWxsLGkpfTtrLm1hdGNo
ZXNTZWxlY3Rvcj1mdW5jdGlvbihnLGkpe3JldHVybiBrKGksbnVsbCxudWxsLFtnXSkubGVuZ3Ro
PjB9O2suZmluZD1mdW5jdGlvbihnLGksbil7dmFyIG07aWYoIWcpcmV0dXJuW107Zm9yKHZhciBw
PTAscT1vLm9yZGVyLmxlbmd0aDtwPHE7cCsrKXt2YXIgdSx5PW8ub3JkZXJbcF07aWYodT1vLmxl
ZnRNYXRjaFt5XS5leGVjKGcpKXt2YXIgRj11WzFdO3Uuc3BsaWNlKDEsMSk7aWYoRi5zdWJzdHIo
Ri5sZW5ndGgtMSkhPT0iXFwiKXt1WzFdPSh1WzFdfHwiIikucmVwbGFjZSgvXFwvZywiIik7bT1v
LmZpbmRbeV0odSxpLG4pO2lmKG0hPW51bGwpe2c9Zy5yZXBsYWNlKG8ubWF0Y2hbeV0sIiIpO2Jy
ZWFrfX19fW18fChtPWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7CityZXR1cm57c2V0Om0s
ZXhwcjpnfX07ay5maWx0ZXI9ZnVuY3Rpb24oZyxpLG4sbSl7Zm9yKHZhciBwLHEsdT1nLHk9W10s
Rj1pLE09aSYmaVswXSYmay5pc1hNTChpWzBdKTtnJiZpLmxlbmd0aDspe2Zvcih2YXIgTiBpbiBv
LmZpbHRlcilpZigocD1vLmxlZnRNYXRjaFtOXS5leGVjKGcpKSE9bnVsbCYmcFsyXSl7dmFyIE8s
RCxSPW8uZmlsdGVyW05dO0Q9cFsxXTtxPWZhbHNlO3Auc3BsaWNlKDEsMSk7aWYoRC5zdWJzdHIo
RC5sZW5ndGgtMSkhPT0iXFwiKXtpZihGPT09eSl5PVtdO2lmKG8ucHJlRmlsdGVyW05dKWlmKHA9
by5wcmVGaWx0ZXJbTl0ocCxGLG4seSxtLE0pKXtpZihwPT09dHJ1ZSljb250aW51ZX1lbHNlIHE9
Tz10cnVlO2lmKHApZm9yKHZhciBqPTA7KEQ9RltqXSkhPW51bGw7aisrKWlmKEQpe089UihELHAs
aixGKTt2YXIgcz1tXiEhTztpZihuJiZPIT1udWxsKWlmKHMpcT10cnVlO2Vsc2UgRltqXT1mYWxz
ZTtlbHNlIGlmKHMpe3kucHVzaChEKTtxPXRydWV9fWlmKE8hPT0KK0Ipe258fChGPXkpO2c9Zy5y
ZXBsYWNlKG8ubWF0Y2hbTl0sIiIpO2lmKCFxKXJldHVybltdO2JyZWFrfX19aWYoZz09PXUpaWYo
cT09bnVsbClrLmVycm9yKGcpO2Vsc2UgYnJlYWs7dT1nfXJldHVybiBGfTtrLmVycm9yPWZ1bmN0
aW9uKGcpe3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZzt9
O3ZhciBvPWsuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDov
IygoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1c
dUZGRkZcLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRlwt
XXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikr
KVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBj
MC1cdUZGRkZcKlwtXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxk
KD86XCgoZXZlbnxvZGR8W1xkbitcLV0qKVwpKT8vLAorUE9TOi86KG50aHxlcXxndHxsdHxmaXJz
dHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W15cLV18JCkvLFBTRVVETzovOigoPzpb
XHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKSg/OlwoKFsnIl0/KSgoPzpcKFteXCldK1wpfFteXChc
KV0qKSspXDJcKSk/L30sbGVmdE1hdGNoOnt9LGF0dHJNYXA6eyJjbGFzcyI6ImNsYXNzTmFtZSIs
ImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKGcpe3JldHVybiBnLmdl
dEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihnLGkpe3ZhciBuPXR5
cGVvZiBpPT09InN0cmluZyIsbT1uJiYhL1xXLy50ZXN0KGkpO249biYmIW07aWYobSlpPWkudG9M
b3dlckNhc2UoKTttPTA7Zm9yKHZhciBwPWcubGVuZ3RoLHE7bTxwO20rKylpZihxPWdbbV0pe2Zv
cig7KHE9cS5wcmV2aW91c1NpYmxpbmcpJiZxLm5vZGVUeXBlIT09MTspO2dbbV09bnx8cSYmcS5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09CitpP3F8fGZhbHNlOnE9PT1pfW4mJmsuZmlsdGVyKGks
Zyx0cnVlKX0sIj4iOmZ1bmN0aW9uKGcsaSl7dmFyIG4sbT10eXBlb2YgaT09PSJzdHJpbmciLHA9
MCxxPWcubGVuZ3RoO2lmKG0mJiEvXFcvLnRlc3QoaSkpZm9yKGk9aS50b0xvd2VyQ2FzZSgpO3A8
cTtwKyspe2lmKG49Z1twXSl7bj1uLnBhcmVudE5vZGU7Z1twXT1uLm5vZGVOYW1lLnRvTG93ZXJD
YXNlKCk9PT1pP246ZmFsc2V9fWVsc2V7Zm9yKDtwPHE7cCsrKWlmKG49Z1twXSlnW3BdPW0/bi5w
YXJlbnROb2RlOm4ucGFyZW50Tm9kZT09PWk7bSYmay5maWx0ZXIoaSxnLHRydWUpfX0sIiI6ZnVu
Y3Rpb24oZyxpLG4pe3ZhciBtLHA9ZSsrLHE9YjtpZih0eXBlb2YgaT09PSJzdHJpbmciJiYhL1xX
Ly50ZXN0KGkpKXttPWk9aS50b0xvd2VyQ2FzZSgpO3E9YX1xKCJwYXJlbnROb2RlIixpLHAsZyxt
LG4pfSwifiI6ZnVuY3Rpb24oZyxpLG4pe3ZhciBtLHA9ZSsrLHE9YjtpZih0eXBlb2YgaT09PSJz
dHJpbmciJiYhL1xXLy50ZXN0KGkpKXttPQoraT1pLnRvTG93ZXJDYXNlKCk7cT1hfXEoInByZXZp
b3VzU2libGluZyIsaSxwLGcsbSxuKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGcsaSxuKXtpZih0eXBl
b2YgaS5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhbilyZXR1cm4oZz1pLmdldEVsZW1l
bnRCeUlkKGdbMV0pKSYmZy5wYXJlbnROb2RlP1tnXTpbXX0sTkFNRTpmdW5jdGlvbihnLGkpe2lm
KHR5cGVvZiBpLmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe2Zvcih2YXIgbj1bXSxt
PWkuZ2V0RWxlbWVudHNCeU5hbWUoZ1sxXSkscD0wLHE9bS5sZW5ndGg7cDxxO3ArKyltW3BdLmdl
dEF0dHJpYnV0ZSgibmFtZSIpPT09Z1sxXSYmbi5wdXNoKG1bcF0pO3JldHVybiBuLmxlbmd0aD09
PTA/bnVsbDpufX0sVEFHOmZ1bmN0aW9uKGcsaSl7cmV0dXJuIGkuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoZ1sxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKGcsaSxuLG0scCxxKXtnPSIgIitn
WzFdLnJlcGxhY2UoL1xcL2csCisiIikrIiAiO2lmKHEpcmV0dXJuIGc7cT0wO2Zvcih2YXIgdTso
dT1pW3FdKSE9bnVsbDtxKyspaWYodSlpZihwXih1LmNsYXNzTmFtZSYmKCIgIit1LmNsYXNzTmFt
ZSsiICIpLnJlcGxhY2UoL1tcdFxuXS9nLCIgIikuaW5kZXhPZihnKT49MCkpbnx8bS5wdXNoKHUp
O2Vsc2UgaWYobilpW3FdPWZhbHNlO3JldHVybiBmYWxzZX0sSUQ6ZnVuY3Rpb24oZyl7cmV0dXJu
IGdbMV0ucmVwbGFjZSgvXFwvZywiIil9LFRBRzpmdW5jdGlvbihnKXtyZXR1cm4gZ1sxXS50b0xv
d2VyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihnKXtpZihnWzFdPT09Im50aCIpe3ZhciBpPS8oLT8p
KFxkKiluKCg/OlwrfC0pP1xkKikvLmV4ZWMoZ1syXT09PSJldmVuIiYmIjJuInx8Z1syXT09PSJv
ZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoZ1syXSkmJiIwbisiK2dbMl18fGdbMl0pO2dbMl09aVsx
XSsoaVsyXXx8MSktMDtnWzNdPWlbM10tMH1nWzBdPWUrKztyZXR1cm4gZ30sQVRUUjpmdW5jdGlv
bihnLGksbiwKK20scCxxKXtpPWdbMV0ucmVwbGFjZSgvXFwvZywiIik7aWYoIXEmJm8uYXR0ck1h
cFtpXSlnWzFdPW8uYXR0ck1hcFtpXTtpZihnWzJdPT09In49IilnWzRdPSIgIitnWzRdKyIgIjty
ZXR1cm4gZ30sUFNFVURPOmZ1bmN0aW9uKGcsaSxuLG0scCl7aWYoZ1sxXT09PSJub3QiKWlmKChk
LmV4ZWMoZ1szXSl8fCIiKS5sZW5ndGg+MXx8L15cdy8udGVzdChnWzNdKSlnWzNdPWsoZ1szXSxu
dWxsLG51bGwsaSk7ZWxzZXtnPWsuZmlsdGVyKGdbM10saSxuLHRydWVecCk7bnx8bS5wdXNoLmFw
cGx5KG0sZyk7cmV0dXJuIGZhbHNlfWVsc2UgaWYoby5tYXRjaC5QT1MudGVzdChnWzBdKXx8by5t
YXRjaC5DSElMRC50ZXN0KGdbMF0pKXJldHVybiB0cnVlO3JldHVybiBnfSxQT1M6ZnVuY3Rpb24o
Zyl7Zy51bnNoaWZ0KHRydWUpO3JldHVybiBnfX0sZmlsdGVyczp7ZW5hYmxlZDpmdW5jdGlvbihn
KXtyZXR1cm4gZy5kaXNhYmxlZD09PWZhbHNlJiZnLnR5cGUhPT0iaGlkZGVuIn0sZGlzYWJsZWQ6
ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZGlzYWJsZWQ9PT0KK3RydWV9LGNoZWNrZWQ6ZnVuY3Rpb24o
Zyl7cmV0dXJuIGcuY2hlY2tlZD09PXRydWV9LHNlbGVjdGVkOmZ1bmN0aW9uKGcpe3JldHVybiBn
LnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKGcpe3JldHVybiEhZy5maXJzdENoaWxk
fSxlbXB0eTpmdW5jdGlvbihnKXtyZXR1cm4hZy5maXJzdENoaWxkfSxoYXM6ZnVuY3Rpb24oZyxp
LG4pe3JldHVybiEhayhuWzNdLGcpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKGcpe3JldHVybi9o
XGQvaS50ZXN0KGcubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKGcpe3JldHVybiJ0ZXh0Ij09PWcu
dHlwZX0scmFkaW86ZnVuY3Rpb24oZyl7cmV0dXJuInJhZGlvIj09PWcudHlwZX0sY2hlY2tib3g6
ZnVuY3Rpb24oZyl7cmV0dXJuImNoZWNrYm94Ij09PWcudHlwZX0sZmlsZTpmdW5jdGlvbihnKXty
ZXR1cm4iZmlsZSI9PT1nLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGcpe3JldHVybiJwYXNzd29y
ZCI9PT1nLnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihnKXtyZXR1cm4ic3VibWl0Ij09PQorZy50eXBl
fSxpbWFnZTpmdW5jdGlvbihnKXtyZXR1cm4iaW1hZ2UiPT09Zy50eXBlfSxyZXNldDpmdW5jdGlv
bihnKXtyZXR1cm4icmVzZXQiPT09Zy50eXBlfSxidXR0b246ZnVuY3Rpb24oZyl7cmV0dXJuImJ1
dHRvbiI9PT1nLnR5cGV8fGcubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJidXR0b24ifSxpbnB1
dDpmdW5jdGlvbihnKXtyZXR1cm4vaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9pLnRlc3Qo
Zy5ub2RlTmFtZSl9fSxzZXRGaWx0ZXJzOntmaXJzdDpmdW5jdGlvbihnLGkpe3JldHVybiBpPT09
MH0sbGFzdDpmdW5jdGlvbihnLGksbixtKXtyZXR1cm4gaT09PW0ubGVuZ3RoLTF9LGV2ZW46ZnVu
Y3Rpb24oZyxpKXtyZXR1cm4gaSUyPT09MH0sb2RkOmZ1bmN0aW9uKGcsaSl7cmV0dXJuIGklMj09
PTF9LGx0OmZ1bmN0aW9uKGcsaSxuKXtyZXR1cm4gaTxuWzNdLTB9LGd0OmZ1bmN0aW9uKGcsaSxu
KXtyZXR1cm4gaT5uWzNdLTB9LG50aDpmdW5jdGlvbihnLGksbil7cmV0dXJuIG5bM10tCiswPT09
aX0sZXE6ZnVuY3Rpb24oZyxpLG4pe3JldHVybiBuWzNdLTA9PT1pfX0sZmlsdGVyOntQU0VVRE86
ZnVuY3Rpb24oZyxpLG4sbSl7dmFyIHA9aVsxXSxxPW8uZmlsdGVyc1twXTtpZihxKXJldHVybiBx
KGcsbixpLG0pO2Vsc2UgaWYocD09PSJjb250YWlucyIpcmV0dXJuKGcudGV4dENvbnRlbnR8fGcu
aW5uZXJUZXh0fHxrLmdldFRleHQoW2ddKXx8IiIpLmluZGV4T2YoaVszXSk+PTA7ZWxzZSBpZihw
PT09Im5vdCIpe2k9aVszXTtuPTA7Zm9yKG09aS5sZW5ndGg7bjxtO24rKylpZihpW25dPT09Zyly
ZXR1cm4gZmFsc2U7cmV0dXJuIHRydWV9ZWxzZSBrLmVycm9yKCJTeW50YXggZXJyb3IsIHVucmVj
b2duaXplZCBleHByZXNzaW9uOiAiK3ApfSxDSElMRDpmdW5jdGlvbihnLGkpe3ZhciBuPWlbMV0s
bT1nO3N3aXRjaChuKXtjYXNlICJvbmx5IjpjYXNlICJmaXJzdCI6Zm9yKDttPW0ucHJldmlvdXNT
aWJsaW5nOylpZihtLm5vZGVUeXBlPT09MSlyZXR1cm4gZmFsc2U7aWYobj09PQorImZpcnN0Iily
ZXR1cm4gdHJ1ZTttPWc7Y2FzZSAibGFzdCI6Zm9yKDttPW0ubmV4dFNpYmxpbmc7KWlmKG0ubm9k
ZVR5cGU9PT0xKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZTtjYXNlICJudGgiOm49aVsyXTt2YXIg
cD1pWzNdO2lmKG49PT0xJiZwPT09MClyZXR1cm4gdHJ1ZTt2YXIgcT1pWzBdLHU9Zy5wYXJlbnRO
b2RlO2lmKHUmJih1LnNpemNhY2hlIT09cXx8IWcubm9kZUluZGV4KSl7dmFyIHk9MDtmb3IobT11
LmZpcnN0Q2hpbGQ7bTttPW0ubmV4dFNpYmxpbmcpaWYobS5ub2RlVHlwZT09PTEpbS5ub2RlSW5k
ZXg9Kyt5O3Uuc2l6Y2FjaGU9cX1tPWcubm9kZUluZGV4LXA7cmV0dXJuIG49PT0wP209PT0wOm0l
bj09PTAmJm0vbj49MH19LElEOmZ1bmN0aW9uKGcsaSl7cmV0dXJuIGcubm9kZVR5cGU9PT0xJiZn
LmdldEF0dHJpYnV0ZSgiaWQiKT09PWl9LFRBRzpmdW5jdGlvbihnLGkpe3JldHVybiBpPT09Iioi
JiZnLm5vZGVUeXBlPT09MXx8Zy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09CitpfSxDTEFTUzpm
dW5jdGlvbihnLGkpe3JldHVybigiICIrKGcuY2xhc3NOYW1lfHxnLmdldEF0dHJpYnV0ZSgiY2xh
c3MiKSkrIiAiKS5pbmRleE9mKGkpPi0xfSxBVFRSOmZ1bmN0aW9uKGcsaSl7dmFyIG49aVsxXTtu
PW8uYXR0ckhhbmRsZVtuXT9vLmF0dHJIYW5kbGVbbl0oZyk6Z1tuXSE9bnVsbD9nW25dOmcuZ2V0
QXR0cmlidXRlKG4pO3ZhciBtPW4rIiIscD1pWzJdLHE9aVs0XTtyZXR1cm4gbj09bnVsbD9wPT09
IiE9IjpwPT09Ij0iP209PT1xOnA9PT0iKj0iP20uaW5kZXhPZihxKT49MDpwPT09In49Ij8oIiAi
K20rIiAiKS5pbmRleE9mKHEpPj0wOiFxP20mJm4hPT1mYWxzZTpwPT09IiE9Ij9tIT09cTpwPT09
Il49Ij9tLmluZGV4T2YocSk9PT0wOnA9PT0iJD0iP20uc3Vic3RyKG0ubGVuZ3RoLXEubGVuZ3Ro
KT09PXE6cD09PSJ8PSI/bT09PXF8fG0uc3Vic3RyKDAscS5sZW5ndGgrMSk9PT1xKyItIjpmYWxz
ZX0sUE9TOmZ1bmN0aW9uKGcsaSxuLG0pe3ZhciBwPW8uc2V0RmlsdGVyc1tpWzJdXTsKK2lmKHAp
cmV0dXJuIHAoZyxuLGksbSl9fX0seD1vLm1hdGNoLlBPUyxyPWZ1bmN0aW9uKGcsaSl7cmV0dXJu
IlxcIisoaS0wKzEpfSxBO2ZvcihBIGluIG8ubWF0Y2gpe28ubWF0Y2hbQV09UmVnRXhwKG8ubWF0
Y2hbQV0uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSk7by5sZWZ0TWF0
Y2hbQV09UmVnRXhwKC8oXig/Oi58XHJ8XG4pKj8pLy5zb3VyY2Urby5tYXRjaFtBXS5zb3VyY2Uu
cmVwbGFjZSgvXFwoXGQrKS9nLHIpKX12YXIgQz1mdW5jdGlvbihnLGkpe2c9QXJyYXkucHJvdG90
eXBlLnNsaWNlLmNhbGwoZywwKTtpZihpKXtpLnB1c2guYXBwbHkoaSxnKTtyZXR1cm4gaX1yZXR1
cm4gZ307dHJ5e0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQuZG9jdW1lbnRFbGVtZW50LmNo
aWxkTm9kZXMsMCl9Y2F0Y2goSil7Qz1mdW5jdGlvbihnLGkpe3ZhciBuPTAsbT1pfHxbXTtpZihm
LmNhbGwoZyk9PT0iW29iamVjdCBBcnJheV0iKUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KG0s
CitnKTtlbHNlIGlmKHR5cGVvZiBnLmxlbmd0aD09PSJudW1iZXIiKWZvcih2YXIgcD1nLmxlbmd0
aDtuPHA7bisrKW0ucHVzaChnW25dKTtlbHNlIGZvcig7Z1tuXTtuKyspbS5wdXNoKGdbbl0pO3Jl
dHVybiBtfX12YXIgdyxJO2lmKHQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKXc9ZnVuY3Rpb24oZyxpKXtpZihnPT09aSl7aD10cnVlO3JldHVybiAwfWlmKCFnLmNvbXBh
cmVEb2N1bWVudFBvc2l0aW9ufHwhaS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbilyZXR1cm4gZy5j
b21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxO3JldHVybiBnLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGkpJjQ/LTE6MX07ZWxzZXt3PWZ1bmN0aW9uKGcsaSl7dmFyIG4sbSxwPVtdLHE9W107bj1n
LnBhcmVudE5vZGU7bT1pLnBhcmVudE5vZGU7dmFyIHU9bjtpZihnPT09aSl7aD10cnVlO3JldHVy
biAwfWVsc2UgaWYobj09PW0pcmV0dXJuIEkoZyxpKTtlbHNlIGlmKG4pe2lmKCFtKXJldHVybiAx
fWVsc2UgcmV0dXJuLTE7Citmb3IoO3U7KXtwLnVuc2hpZnQodSk7dT11LnBhcmVudE5vZGV9Zm9y
KHU9bTt1Oyl7cS51bnNoaWZ0KHUpO3U9dS5wYXJlbnROb2RlfW49cC5sZW5ndGg7bT1xLmxlbmd0
aDtmb3IodT0wO3U8biYmdTxtO3UrKylpZihwW3VdIT09cVt1XSlyZXR1cm4gSShwW3VdLHFbdV0p
O3JldHVybiB1PT09bj9JKGcscVt1XSwtMSk6SShwW3VdLGksMSl9O0k9ZnVuY3Rpb24oZyxpLG4p
e2lmKGc9PT1pKXJldHVybiBuO2ZvcihnPWcubmV4dFNpYmxpbmc7Zzspe2lmKGc9PT1pKXJldHVy
bi0xO2c9Zy5uZXh0U2libGluZ31yZXR1cm4gMX19ay5nZXRUZXh0PWZ1bmN0aW9uKGcpe2Zvcih2
YXIgaT0iIixuLG09MDtnW21dO20rKyl7bj1nW21dO2lmKG4ubm9kZVR5cGU9PT0zfHxuLm5vZGVU
eXBlPT09NClpKz1uLm5vZGVWYWx1ZTtlbHNlIGlmKG4ubm9kZVR5cGUhPT04KWkrPWsuZ2V0VGV4
dChuLmNoaWxkTm9kZXMpfXJldHVybiBpfTsoZnVuY3Rpb24oKXt2YXIgZz10LmNyZWF0ZUVsZW1l
bnQoImRpdiIpLAoraT0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKSxuPXQuZG9jdW1lbnRF
bGVtZW50O2cuaW5uZXJIVE1MPSI8YSBuYW1lPSciK2krIicvPiI7bi5pbnNlcnRCZWZvcmUoZyxu
LmZpcnN0Q2hpbGQpO2lmKHQuZ2V0RWxlbWVudEJ5SWQoaSkpe28uZmluZC5JRD1mdW5jdGlvbiht
LHAscSl7aWYodHlwZW9mIHAuZ2V0RWxlbWVudEJ5SWQhPT0idW5kZWZpbmVkIiYmIXEpcmV0dXJu
KHA9cC5nZXRFbGVtZW50QnlJZChtWzFdKSk/cC5pZD09PW1bMV18fHR5cGVvZiBwLmdldEF0dHJp
YnV0ZU5vZGUhPT0idW5kZWZpbmVkIiYmcC5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLm5vZGVWYWx1
ZT09PW1bMV0/W3BdOkI6W119O28uZmlsdGVyLklEPWZ1bmN0aW9uKG0scCl7dmFyIHE9dHlwZW9m
IG0uZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZtLmdldEF0dHJpYnV0ZU5vZGUoImlk
Iik7cmV0dXJuIG0ubm9kZVR5cGU9PT0xJiZxJiZxLm5vZGVWYWx1ZT09PXB9fW4ucmVtb3ZlQ2hp
bGQoZyk7CituPWc9bnVsbH0pKCk7KGZ1bmN0aW9uKCl7dmFyIGc9dC5jcmVhdGVFbGVtZW50KCJk
aXYiKTtnLmFwcGVuZENoaWxkKHQuY3JlYXRlQ29tbWVudCgiIikpO2lmKGcuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoIioiKS5sZW5ndGg+MClvLmZpbmQuVEFHPWZ1bmN0aW9uKGksbil7dmFyIG09bi5n
ZXRFbGVtZW50c0J5VGFnTmFtZShpWzFdKTtpZihpWzFdPT09IioiKXtmb3IodmFyIHA9W10scT0w
O21bcV07cSsrKW1bcV0ubm9kZVR5cGU9PT0xJiZwLnB1c2gobVtxXSk7bT1wfXJldHVybiBtfTtn
LmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiI7aWYoZy5maXJzdENoaWxkJiZ0eXBlb2YgZy5m
aXJzdENoaWxkLmdldEF0dHJpYnV0ZSE9PSJ1bmRlZmluZWQiJiZnLmZpcnN0Q2hpbGQuZ2V0QXR0
cmlidXRlKCJocmVmIikhPT0iIyIpby5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rpb24oaSl7cmV0dXJu
IGkuZ2V0QXR0cmlidXRlKCJocmVmIiwyKX07Zz1udWxsfSkoKTt0LnF1ZXJ5U2VsZWN0b3JBbGwm
JgorZnVuY3Rpb24oKXt2YXIgZz1rLGk9dC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmlubmVySFRN
TD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKCEoaS5xdWVyeVNlbGVjdG9yQWxsJiZpLnF1ZXJ5
U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoPT09MCkpe2s9ZnVuY3Rpb24obSxwLHEsdSl7cD1w
fHx0O209bS5yZXBsYWNlKC9cPVxzKihbXiciXF1dKilccypcXS9nLCI9JyQxJ10iKTtpZighdSYm
IWsuaXNYTUwocCkpaWYocC5ub2RlVHlwZT09PTkpdHJ5e3JldHVybiBDKHAucXVlcnlTZWxlY3Rv
ckFsbChtKSxxKX1jYXRjaCh5KXt9ZWxzZSBpZihwLm5vZGVUeXBlPT09MSYmcC5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpIT09Im9iamVjdCIpe3ZhciBGPXAuZ2V0QXR0cmlidXRlKCJpZCIpLE09Rnx8
Il9fc2l6emxlX18iO0Z8fHAuc2V0QXR0cmlidXRlKCJpZCIsTSk7dHJ5e3JldHVybiBDKHAucXVl
cnlTZWxlY3RvckFsbCgiIyIrTSsiICIrbSkscSl9Y2F0Y2goTil7fWZpbmFsbHl7Rnx8CitwLnJl
bW92ZUF0dHJpYnV0ZSgiaWQiKX19cmV0dXJuIGcobSxwLHEsdSl9O2Zvcih2YXIgbiBpbiBnKWtb
bl09Z1tuXTtpPW51bGx9fSgpOyhmdW5jdGlvbigpe3ZhciBnPXQuZG9jdW1lbnRFbGVtZW50LGk9
Zy5tYXRjaGVzU2VsZWN0b3J8fGcubW96TWF0Y2hlc1NlbGVjdG9yfHxnLndlYmtpdE1hdGNoZXNT
ZWxlY3Rvcnx8Zy5tc01hdGNoZXNTZWxlY3RvcixuPWZhbHNlO3RyeXtpLmNhbGwodC5kb2N1bWVu
dEVsZW1lbnQsIlt0ZXN0IT0nJ106c2l6emxlIil9Y2F0Y2gobSl7bj10cnVlfWlmKGkpay5tYXRj
aGVzU2VsZWN0b3I9ZnVuY3Rpb24ocCxxKXtxPXEucmVwbGFjZSgvXD1ccyooW14nIlxdXSopXHMq
XF0vZywiPSckMSddIik7aWYoIWsuaXNYTUwocCkpdHJ5e2lmKG58fCFvLm1hdGNoLlBTRVVETy50
ZXN0KHEpJiYhLyE9Ly50ZXN0KHEpKXJldHVybiBpLmNhbGwocCxxKX1jYXRjaCh1KXt9cmV0dXJu
IGsocSxudWxsLG51bGwsW3BdKS5sZW5ndGg+MH19KSgpOyhmdW5jdGlvbigpe3ZhciBnPQordC5j
cmVhdGVFbGVtZW50KCJkaXYiKTtnLmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rp
dj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKCEoIWcuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZXx8Zy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MCkpe2cubGFzdENoaWxk
LmNsYXNzTmFtZT0iZSI7aWYoZy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoIT09
MSl7by5vcmRlci5zcGxpY2UoMSwwLCJDTEFTUyIpO28uZmluZC5DTEFTUz1mdW5jdGlvbihpLG4s
bSl7aWYodHlwZW9mIG4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PSJ1bmRlZmluZWQiJiYhbSly
ZXR1cm4gbi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGlbMV0pfTtnPW51bGx9fX0pKCk7ay5jb250
YWlucz10LmRvY3VtZW50RWxlbWVudC5jb250YWlucz9mdW5jdGlvbihnLGkpe3JldHVybiBnIT09
aSYmKGcuY29udGFpbnM/Zy5jb250YWlucyhpKTp0cnVlKX06dC5kb2N1bWVudEVsZW1lbnQuY29t
cGFyZURvY3VtZW50UG9zaXRpb24/CitmdW5jdGlvbihnLGkpe3JldHVybiEhKGcuY29tcGFyZURv
Y3VtZW50UG9zaXRpb24oaSkmMTYpfTpmdW5jdGlvbigpe3JldHVybiBmYWxzZX07ay5pc1hNTD1m
dW5jdGlvbihnKXtyZXR1cm4oZz0oZz9nLm93bmVyRG9jdW1lbnR8fGc6MCkuZG9jdW1lbnRFbGVt
ZW50KT9nLm5vZGVOYW1lIT09IkhUTUwiOmZhbHNlfTt2YXIgTD1mdW5jdGlvbihnLGkpe2Zvcih2
YXIgbixtPVtdLHA9IiIscT1pLm5vZGVUeXBlP1tpXTppO249by5tYXRjaC5QU0VVRE8uZXhlYyhn
KTspe3ArPW5bMF07Zz1nLnJlcGxhY2Uoby5tYXRjaC5QU0VVRE8sIiIpfWc9by5yZWxhdGl2ZVtn
XT9nKyIqIjpnO249MDtmb3IodmFyIHU9cS5sZW5ndGg7bjx1O24rKylrKGcscVtuXSxtKTtyZXR1
cm4gay5maWx0ZXIocCxtKX07Yy5maW5kPWs7Yy5leHByPWsuc2VsZWN0b3JzO2MuZXhwclsiOiJd
PWMuZXhwci5maWx0ZXJzO2MudW5pcXVlPWsudW5pcXVlU29ydDtjLnRleHQ9ay5nZXRUZXh0O2Mu
aXNYTUxEb2M9ay5pc1hNTDsKK2MuY29udGFpbnM9ay5jb250YWluc30pKCk7dmFyIFphPS9VbnRp
bCQvLCRhPS9eKD86cGFyZW50c3xwcmV2VW50aWx8cHJldkFsbCkvLGFiPS8sLyxOYT0vXi5bXjoj
XFtcLixdKiQvLGJiPUFycmF5LnByb3RvdHlwZS5zbGljZSxjYj1jLmV4cHIubWF0Y2guUE9TO2Mu
Zm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10aGlzLnB1c2hTdGFjaygiIiwi
ZmluZCIsYSksZD0wLGU9MCxmPXRoaXMubGVuZ3RoO2U8ZjtlKyspe2Q9Yi5sZW5ndGg7Yy5maW5k
KGEsdGhpc1tlXSxiKTtpZihlPjApZm9yKHZhciBoPWQ7aDxiLmxlbmd0aDtoKyspZm9yKHZhciBs
PTA7bDxkO2wrKylpZihiW2xdPT09YltoXSl7Yi5zcGxpY2UoaC0tLDEpO2JyZWFrfX1yZXR1cm4g
Yn0saGFzOmZ1bmN0aW9uKGEpe3ZhciBiPWMoYSk7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9u
KCl7Zm9yKHZhciBkPTAsZT1iLmxlbmd0aDtkPGU7ZCsrKWlmKGMuY29udGFpbnModGhpcyxiW2Rd
KSlyZXR1cm4gdHJ1ZX0pfSwKK25vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2so
bWEodGhpcyxhLGZhbHNlKSwibm90IixhKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlz
LnB1c2hTdGFjayhtYSh0aGlzLGEsdHJ1ZSksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3Jl
dHVybiEhYSYmYy5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+MH0sY2xvc2VzdDpmdW5jdGlvbihhLGIp
e3ZhciBkPVtdLGUsZixoPXRoaXNbMF07aWYoYy5pc0FycmF5KGEpKXt2YXIgbCxrPXt9LG89MTtp
ZihoJiZhLmxlbmd0aCl7ZT0wO2ZvcihmPWEubGVuZ3RoO2U8ZjtlKyspe2w9YVtlXTtrW2xdfHwo
a1tsXT1jLmV4cHIubWF0Y2guUE9TLnRlc3QobCk/YyhsLGJ8fHRoaXMuY29udGV4dCk6bCl9Zm9y
KDtoJiZoLm93bmVyRG9jdW1lbnQmJmghPT1iOyl7Zm9yKGwgaW4gayl7ZT1rW2xdO2lmKGUuanF1
ZXJ5P2UuaW5kZXgoaCk+LTE6YyhoKS5pcyhlKSlkLnB1c2goe3NlbGVjdG9yOmwsZWxlbTpoLGxl
dmVsOm99KX1oPQoraC5wYXJlbnROb2RlO28rK319cmV0dXJuIGR9bD1jYi50ZXN0KGEpP2MoYSxi
fHx0aGlzLmNvbnRleHQpOm51bGw7ZT0wO2ZvcihmPXRoaXMubGVuZ3RoO2U8ZjtlKyspZm9yKGg9
dGhpc1tlXTtoOylpZihsP2wuaW5kZXgoaCk+LTE6Yy5maW5kLm1hdGNoZXNTZWxlY3RvcihoLGEp
KXtkLnB1c2goaCk7YnJlYWt9ZWxzZXtoPWgucGFyZW50Tm9kZTtpZighaHx8IWgub3duZXJEb2N1
bWVudHx8aD09PWIpYnJlYWt9ZD1kLmxlbmd0aD4xP2MudW5pcXVlKGQpOmQ7cmV0dXJuIHRoaXMu
cHVzaFN0YWNrKGQsImNsb3Nlc3QiLGEpfSxpbmRleDpmdW5jdGlvbihhKXtpZighYXx8dHlwZW9m
IGE9PT0ic3RyaW5nIilyZXR1cm4gYy5pbkFycmF5KHRoaXNbMF0sYT9jKGEpOnRoaXMucGFyZW50
KCkuY2hpbGRyZW4oKSk7cmV0dXJuIGMuaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyl9LGFk
ZDpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhPT09InN0cmluZyI/YyhhLGJ8fHRoaXMuY29u
dGV4dCk6CitjLm1ha2VBcnJheShhKSxlPWMubWVyZ2UodGhpcy5nZXQoKSxkKTtyZXR1cm4gdGhp
cy5wdXNoU3RhY2soIWRbMF18fCFkWzBdLnBhcmVudE5vZGV8fGRbMF0ucGFyZW50Tm9kZS5ub2Rl
VHlwZT09PTExfHwhZVswXXx8IWVbMF0ucGFyZW50Tm9kZXx8ZVswXS5wYXJlbnROb2RlLm5vZGVU
eXBlPT09MTE/ZTpjLnVuaXF1ZShlKSl9LGFuZFNlbGY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5h
ZGQodGhpcy5wcmV2T2JqZWN0KX19KTtjLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4o
YT1hLnBhcmVudE5vZGUpJiZhLm5vZGVUeXBlIT09MTE/YTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9u
KGEpe3JldHVybiBjLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihh
LGIsZCl7cmV0dXJuIGMuZGlyKGEsInBhcmVudE5vZGUiLGQpfSxuZXh0OmZ1bmN0aW9uKGEpe3Jl
dHVybiBjLm50aChhLDIsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIGMu
bnRoKGEsCisyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4g
Yy5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIo
YSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMu
ZGlyKGEsIm5leHRTaWJsaW5nIixkKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4g
Yy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixkKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJu
IGMuc2libGluZyhhLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24o
YSl7cmV0dXJuIGMuc2libGluZyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXty
ZXR1cm4gYy5ub2RlTmFtZShhLCJpZnJhbWUiKT9hLmNvbnRlbnREb2N1bWVudHx8YS5jb250ZW50
V2luZG93LmRvY3VtZW50OmMubWFrZUFycmF5KGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLAor
Yil7Yy5mblthXT1mdW5jdGlvbihkLGUpe3ZhciBmPWMubWFwKHRoaXMsYixkKTtaYS50ZXN0KGEp
fHwoZT1kKTtpZihlJiZ0eXBlb2YgZT09PSJzdHJpbmciKWY9Yy5maWx0ZXIoZSxmKTtmPXRoaXMu
bGVuZ3RoPjE/Yy51bmlxdWUoZik6ZjtpZigodGhpcy5sZW5ndGg+MXx8YWIudGVzdChlKSkmJiRh
LnRlc3QoYSkpZj1mLnJldmVyc2UoKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZixhLGJiLmNhbGwo
YXJndW1lbnRzKS5qb2luKCIsIikpfX0pO2MuZXh0ZW5kKHtmaWx0ZXI6ZnVuY3Rpb24oYSxiLGQp
e2lmKGQpYT0iOm5vdCgiK2ErIikiO3JldHVybiBiLmxlbmd0aD09PTE/Yy5maW5kLm1hdGNoZXNT
ZWxlY3RvcihiWzBdLGEpP1tiWzBdXTpbXTpjLmZpbmQubWF0Y2hlcyhhLGIpfSxkaXI6ZnVuY3Rp
b24oYSxiLGQpe3ZhciBlPVtdO2ZvcihhPWFbYl07YSYmYS5ub2RlVHlwZSE9PTkmJihkPT09Qnx8
YS5ub2RlVHlwZSE9PTF8fCFjKGEpLmlzKGQpKTspe2Eubm9kZVR5cGU9PT0xJiYKK2UucHVzaChh
KTthPWFbYl19cmV0dXJuIGV9LG50aDpmdW5jdGlvbihhLGIsZCl7Yj1ifHwxO2Zvcih2YXIgZT0w
O2E7YT1hW2RdKWlmKGEubm9kZVR5cGU9PT0xJiYrK2U9PT1iKWJyZWFrO3JldHVybiBhfSxzaWJs
aW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPVtdO2E7YT1hLm5leHRTaWJsaW5nKWEubm9kZVR5
cGU9PT0xJiZhIT09YiYmZC5wdXNoKGEpO3JldHVybiBkfX0pO3ZhciB6YT0vIGpRdWVyeVxkKz0i
KD86XGQrfG51bGwpIi9nLCQ9L15ccysvLEFhPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1n
fGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vaWcsQmE9LzwoW1x3Ol0r
KS8sZGI9Lzx0Ym9keS9pLGViPS88fCYjP1x3KzsvLENhPS88KD86c2NyaXB0fG9iamVjdHxlbWJl
ZHxvcHRpb258c3R5bGUpL2ksRGE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ks
ZmI9L1w9KFtePSInPlxzXStcLyk+L2csUD17b3B0aW9uOlsxLAorIjxzZWxlY3QgbXVsdGlwbGU9
J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxk
c2V0PiJdLHRoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9k
eT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+
PC90Ym9keT48L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91
cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sYXJlYTpbMSwiPG1hcD4iLCI8L21hcD4iXSxfZGVm
YXVsdDpbMCwiIiwiIl19O1Aub3B0Z3JvdXA9UC5vcHRpb247UC50Ym9keT1QLnRmb290PVAuY29s
Z3JvdXA9UC5jYXB0aW9uPVAudGhlYWQ7UC50aD1QLnRkO2lmKCFjLnN1cHBvcnQuaHRtbFNlcmlh
bGl6ZSlQLl9kZWZhdWx0PVsxLCJkaXY8ZGl2PiIsIjwvZGl2PiJdO2MuZm4uZXh0ZW5kKHt0ZXh0
OmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9u
KGIpe3ZhciBkPQorYyh0aGlzKTtkLnRleHQoYS5jYWxsKHRoaXMsYixkLnRleHQoKSkpfSk7aWYo
dHlwZW9mIGEhPT0ib2JqZWN0IiYmYSE9PUIpcmV0dXJuIHRoaXMuZW1wdHkoKS5hcHBlbmQoKHRo
aXNbMF0mJnRoaXNbMF0ub3duZXJEb2N1bWVudHx8dCkuY3JlYXRlVGV4dE5vZGUoYSkpO3JldHVy
biBjLnRleHQodGhpcyl9LHdyYXBBbGw6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJl
dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZCl7Yyh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGQp
KX0pO2lmKHRoaXNbMF0pe3ZhciBiPWMoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNs
b25lKHRydWUpO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSk7Yi5t
YXAoZnVuY3Rpb24oKXtmb3IodmFyIGQ9dGhpcztkLmZpcnN0Q2hpbGQmJmQuZmlyc3RDaGlsZC5u
b2RlVHlwZT09PTE7KWQ9ZC5maXJzdENoaWxkO3JldHVybiBkfSkuYXBwZW5kKHRoaXMpfXJldHVy
biB0aGlzfSwKK3dyYXBJbm5lcjpmdW5jdGlvbihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJu
IHRoaXMuZWFjaChmdW5jdGlvbihiKXtjKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9
KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKSxkPWIuY29udGVudHMo
KTtkLmxlbmd0aD9kLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXty
ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS53cmFwQWxsKGEpfSl9LHVud3JhcDpm
dW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtjLm5vZGVOYW1l
KHRoaXMsImJvZHkiKXx8Yyh0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5k
KCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVl
LGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmFwcGVuZENoaWxkKGEpfSl9LAor
cHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1
bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmluc2VydEJlZm9yZShhLHRoaXMuZmly
c3RDaGlsZCl9KX0sYmVmb3JlOmZ1bmN0aW9uKCl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnRO
b2RlKXJldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihiKXt0aGlz
LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsdGhpcyl9KTtlbHNlIGlmKGFyZ3VtZW50cy5sZW5n
dGgpe3ZhciBhPWMoYXJndW1lbnRzWzBdKTthLnB1c2guYXBwbHkoYSx0aGlzLnRvQXJyYXkoKSk7
cmV0dXJuIHRoaXMucHVzaFN0YWNrKGEsImJlZm9yZSIsYXJndW1lbnRzKX19LGFmdGVyOmZ1bmN0
aW9uKCl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXJldHVybiB0aGlzLmRvbU1hbmlw
KGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihiKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KGIsCit0aGlzLm5leHRTaWJsaW5nKX0pO2Vsc2UgaWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIGE9
dGhpcy5wdXNoU3RhY2sodGhpcywiYWZ0ZXIiLGFyZ3VtZW50cyk7YS5wdXNoLmFwcGx5KGEsYyhh
cmd1bWVudHNbMF0pLnRvQXJyYXkoKSk7cmV0dXJuIGF9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtm
b3IodmFyIGQ9MCxlOyhlPXRoaXNbZF0pIT1udWxsO2QrKylpZighYXx8Yy5maWx0ZXIoYSxbZV0p
Lmxlbmd0aCl7aWYoIWImJmUubm9kZVR5cGU9PT0xKXtjLmNsZWFuRGF0YShlLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCIqIikpO2MuY2xlYW5EYXRhKFtlXSl9ZS5wYXJlbnROb2RlJiZlLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoZSl9cmV0dXJuIHRoaXN9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBh
PTAsYjsoYj10aGlzW2FdKSE9bnVsbDthKyspZm9yKGIubm9kZVR5cGU9PT0xJiZjLmNsZWFuRGF0
YShiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO2IuZmlyc3RDaGlsZDspYi5yZW1vdmVDaGls
ZChiLmZpcnN0Q2hpbGQpOworcmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEpe3ZhciBiPXRo
aXMubWFwKGZ1bmN0aW9uKCl7aWYoIWMuc3VwcG9ydC5ub0Nsb25lRXZlbnQmJiFjLmlzWE1MRG9j
KHRoaXMpKXt2YXIgZD10aGlzLm91dGVySFRNTCxlPXRoaXMub3duZXJEb2N1bWVudDtpZighZCl7
ZD1lLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuYXBwZW5kQ2hpbGQodGhpcy5jbG9uZU5vZGUodHJ1
ZSkpO2Q9ZC5pbm5lckhUTUx9cmV0dXJuIGMuY2xlYW4oW2QucmVwbGFjZSh6YSwiIikucmVwbGFj
ZShmYiwnPSIkMSI+JykucmVwbGFjZSgkLCIiKV0sZSlbMF19ZWxzZSByZXR1cm4gdGhpcy5jbG9u
ZU5vZGUodHJ1ZSl9KTtpZihhPT09dHJ1ZSl7bmEodGhpcyxiKTtuYSh0aGlzLmZpbmQoIioiKSxi
LmZpbmQoIioiKSl9cmV0dXJuIGJ9LGh0bWw6ZnVuY3Rpb24oYSl7aWYoYT09PUIpcmV0dXJuIHRo
aXNbMF0mJnRoaXNbMF0ubm9kZVR5cGU9PT0xP3RoaXNbMF0uaW5uZXJIVE1MLnJlcGxhY2UoemEs
IiIpOm51bGw7CitlbHNlIGlmKHR5cGVvZiBhPT09InN0cmluZyImJiFDYS50ZXN0KGEpJiYoYy5z
dXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlfHwhJC50ZXN0KGEpKSYmIVBbKEJhLmV4ZWMoYSl8fFsi
IiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPWEucmVwbGFjZShBYSwiPCQxPjwvJDI+Iik7dHJ5
e2Zvcih2YXIgYj0wLGQ9dGhpcy5sZW5ndGg7YjxkO2IrKylpZih0aGlzW2JdLm5vZGVUeXBlPT09
MSl7Yy5jbGVhbkRhdGEodGhpc1tiXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTt0aGlzW2Jd
LmlubmVySFRNTD1hfX1jYXRjaChlKXt0aGlzLmVtcHR5KCkuYXBwZW5kKGEpfX1lbHNlIGMuaXNG
dW5jdGlvbihhKT90aGlzLmVhY2goZnVuY3Rpb24oZil7dmFyIGg9Yyh0aGlzKTtoLmh0bWwoYS5j
YWxsKHRoaXMsZixoLmh0bWwoKSkpfSk6dGhpcy5lbXB0eSgpLmFwcGVuZChhKTtyZXR1cm4gdGhp
c30scmVwbGFjZVdpdGg6ZnVuY3Rpb24oYSl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2Rl
KXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXt2YXIgZD0K
K2ModGhpcyksZT1kLmh0bWwoKTtkLnJlcGxhY2VXaXRoKGEuY2FsbCh0aGlzLGIsZSkpfSk7aWYo
dHlwZW9mIGEhPT0ic3RyaW5nIilhPWMoYSkuZGV0YWNoKCk7cmV0dXJuIHRoaXMuZWFjaChmdW5j
dGlvbigpe3ZhciBiPXRoaXMubmV4dFNpYmxpbmcsZD10aGlzLnBhcmVudE5vZGU7Yyh0aGlzKS5y
ZW1vdmUoKTtiP2MoYikuYmVmb3JlKGEpOmMoZCkuYXBwZW5kKGEpfSl9ZWxzZSByZXR1cm4gdGhp
cy5wdXNoU3RhY2soYyhjLmlzRnVuY3Rpb24oYSk/YSgpOmEpLCJyZXBsYWNlV2l0aCIsYSl9LGRl
dGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSx0cnVlKX0sZG9tTWFuaXA6ZnVu
Y3Rpb24oYSxiLGQpe3ZhciBlLGYsaCxsPWFbMF0saz1bXTtpZighYy5zdXBwb3J0LmNoZWNrQ2xv
bmUmJmFyZ3VtZW50cy5sZW5ndGg9PT0zJiZ0eXBlb2YgbD09PSJzdHJpbmciJiZEYS50ZXN0KGwp
KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmRvbU1hbmlwKGEsCitiLGQsdHJ1
ZSl9KTtpZihjLmlzRnVuY3Rpb24obCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih4KXt2YXIg
cj1jKHRoaXMpO2FbMF09bC5jYWxsKHRoaXMseCxiP3IuaHRtbCgpOkIpO3IuZG9tTWFuaXAoYSxi
LGQpfSk7aWYodGhpc1swXSl7ZT1sJiZsLnBhcmVudE5vZGU7ZT1jLnN1cHBvcnQucGFyZW50Tm9k
ZSYmZSYmZS5ub2RlVHlwZT09PTExJiZlLmNoaWxkTm9kZXMubGVuZ3RoPT09dGhpcy5sZW5ndGg/
e2ZyYWdtZW50OmV9OmMuYnVpbGRGcmFnbWVudChhLHRoaXMsayk7aD1lLmZyYWdtZW50O2lmKGY9
aC5jaGlsZE5vZGVzLmxlbmd0aD09PTE/aD1oLmZpcnN0Q2hpbGQ6aC5maXJzdENoaWxkKXtiPWIm
JmMubm9kZU5hbWUoZiwidHIiKTtmPTA7Zm9yKHZhciBvPXRoaXMubGVuZ3RoO2Y8bztmKyspZC5j
YWxsKGI/Yy5ub2RlTmFtZSh0aGlzW2ZdLCJ0YWJsZSIpP3RoaXNbZl0uZ2V0RWxlbWVudHNCeVRh
Z05hbWUoInRib2R5IilbMF18fHRoaXNbZl0uYXBwZW5kQ2hpbGQodGhpc1tmXS5vd25lckRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5IikpOgordGhpc1tmXTp0aGlzW2ZdLGY+MHx8ZS5jYWNo
ZWFibGV8fHRoaXMubGVuZ3RoPjE/aC5jbG9uZU5vZGUodHJ1ZSk6aCl9ay5sZW5ndGgmJmMuZWFj
aChrLE9hKX1yZXR1cm4gdGhpc319KTtjLmJ1aWxkRnJhZ21lbnQ9ZnVuY3Rpb24oYSxiLGQpe3Zh
ciBlLGYsaDtiPWImJmJbMF0/YlswXS5vd25lckRvY3VtZW50fHxiWzBdOnQ7aWYoYS5sZW5ndGg9
PT0xJiZ0eXBlb2YgYVswXT09PSJzdHJpbmciJiZhWzBdLmxlbmd0aDw1MTImJmI9PT10JiYhQ2Eu
dGVzdChhWzBdKSYmKGMuc3VwcG9ydC5jaGVja0Nsb25lfHwhRGEudGVzdChhWzBdKSkpe2Y9dHJ1
ZTtpZihoPWMuZnJhZ21lbnRzW2FbMF1dKWlmKGghPT0xKWU9aH1pZighZSl7ZT1iLmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTtjLmNsZWFuKGEsYixlLGQpfWlmKGYpYy5mcmFnbWVudHNbYVswXV09
aD9lOjE7cmV0dXJue2ZyYWdtZW50OmUsY2FjaGVhYmxlOmZ9fTtjLmZyYWdtZW50cz17fTtjLmVh
Y2goe2FwcGVuZFRvOiJhcHBlbmQiLAorcHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6
ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1
bmN0aW9uKGEsYil7Yy5mblthXT1mdW5jdGlvbihkKXt2YXIgZT1bXTtkPWMoZCk7dmFyIGY9dGhp
cy5sZW5ndGg9PT0xJiZ0aGlzWzBdLnBhcmVudE5vZGU7aWYoZiYmZi5ub2RlVHlwZT09PTExJiZm
LmNoaWxkTm9kZXMubGVuZ3RoPT09MSYmZC5sZW5ndGg9PT0xKXtkW2JdKHRoaXNbMF0pO3JldHVy
biB0aGlzfWVsc2V7Zj0wO2Zvcih2YXIgaD1kLmxlbmd0aDtmPGg7ZisrKXt2YXIgbD0oZj4wP3Ro
aXMuY2xvbmUodHJ1ZSk6dGhpcykuZ2V0KCk7YyhkW2ZdKVtiXShsKTtlPWUuY29uY2F0KGwpfXJl
dHVybiB0aGlzLnB1c2hTdGFjayhlLGEsZC5zZWxlY3Rvcil9fX0pO2MuZXh0ZW5kKHtjbGVhbjpm
dW5jdGlvbihhLGIsZCxlKXtiPWJ8fHQ7aWYodHlwZW9mIGIuY3JlYXRlRWxlbWVudD09PSJ1bmRl
ZmluZWQiKWI9Yi5vd25lckRvY3VtZW50fHwKK2JbMF0mJmJbMF0ub3duZXJEb2N1bWVudHx8dDtm
b3IodmFyIGY9W10saD0wLGw7KGw9YVtoXSkhPW51bGw7aCsrKXtpZih0eXBlb2YgbD09PSJudW1i
ZXIiKWwrPSIiO2lmKGwpe2lmKHR5cGVvZiBsPT09InN0cmluZyImJiFlYi50ZXN0KGwpKWw9Yi5j
cmVhdGVUZXh0Tm9kZShsKTtlbHNlIGlmKHR5cGVvZiBsPT09InN0cmluZyIpe2w9bC5yZXBsYWNl
KEFhLCI8JDE+PC8kMj4iKTt2YXIgaz0oQmEuZXhlYyhsKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNh
c2UoKSxvPVBba118fFAuX2RlZmF1bHQseD1vWzBdLHI9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtm
b3Ioci5pbm5lckhUTUw9b1sxXStsK29bMl07eC0tOylyPXIubGFzdENoaWxkO2lmKCFjLnN1cHBv
cnQudGJvZHkpe3g9ZGIudGVzdChsKTtrPWs9PT0idGFibGUiJiYheD9yLmZpcnN0Q2hpbGQmJnIu
Zmlyc3RDaGlsZC5jaGlsZE5vZGVzOm9bMV09PT0iPHRhYmxlPiImJiF4P3IuY2hpbGROb2Rlczpb
XTtmb3Iobz1rLmxlbmd0aC0KKzE7bz49MDstLW8pYy5ub2RlTmFtZShrW29dLCJ0Ym9keSIpJiYh
a1tvXS5jaGlsZE5vZGVzLmxlbmd0aCYma1tvXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGtbb10p
fSFjLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJiQudGVzdChsKSYmci5pbnNlcnRCZWZvcmUo
Yi5jcmVhdGVUZXh0Tm9kZSgkLmV4ZWMobClbMF0pLHIuZmlyc3RDaGlsZCk7bD1yLmNoaWxkTm9k
ZXN9aWYobC5ub2RlVHlwZSlmLnB1c2gobCk7ZWxzZSBmPWMubWVyZ2UoZixsKX19aWYoZClmb3Io
aD0wO2ZbaF07aCsrKWlmKGUmJmMubm9kZU5hbWUoZltoXSwic2NyaXB0IikmJighZltoXS50eXBl
fHxmW2hdLnR5cGUudG9Mb3dlckNhc2UoKT09PSJ0ZXh0L2phdmFzY3JpcHQiKSllLnB1c2goZlto
XS5wYXJlbnROb2RlP2ZbaF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmW2hdKTpmW2hdKTtlbHNl
e2ZbaF0ubm9kZVR5cGU9PT0xJiZmLnNwbGljZS5hcHBseShmLFtoKzEsMF0uY29uY2F0KGMubWFr
ZUFycmF5KGZbaF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKSkpOworZC5hcHBlbmRD
aGlsZChmW2hdKX1yZXR1cm4gZn0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixkLGU9
Yy5jYWNoZSxmPWMuZXZlbnQuc3BlY2lhbCxoPWMuc3VwcG9ydC5kZWxldGVFeHBhbmRvLGw9MCxr
OyhrPWFbbF0pIT1udWxsO2wrKylpZighKGsubm9kZU5hbWUmJmMubm9EYXRhW2subm9kZU5hbWUu
dG9Mb3dlckNhc2UoKV0pKWlmKGQ9a1tjLmV4cGFuZG9dKXtpZigoYj1lW2RdKSYmYi5ldmVudHMp
Zm9yKHZhciBvIGluIGIuZXZlbnRzKWZbb10/Yy5ldmVudC5yZW1vdmUoayxvKTpjLnJlbW92ZUV2
ZW50KGssbyxiLmhhbmRsZSk7aWYoaClkZWxldGUga1tjLmV4cGFuZG9dO2Vsc2Ugay5yZW1vdmVB
dHRyaWJ1dGUmJmsucmVtb3ZlQXR0cmlidXRlKGMuZXhwYW5kbyk7ZGVsZXRlIGVbZF19fX0pO3Zh
ciBFYT0vYWxwaGFcKFteKV0qXCkvaSxnYj0vb3BhY2l0eT0oW14pXSopLyxoYj0vLShbYS16XSkv
aWcsaWI9LyhbQS1aXSkvZyxGYT0vXi0/XGQrKD86cHgpPyQvaSwKK2piPS9eLT9cZC8sa2I9e3Bv
c2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LFBh
PVsiTGVmdCIsIlJpZ2h0Il0sUWE9WyJUb3AiLCJCb3R0b20iXSxXLEdhLGFhLGxiPWZ1bmN0aW9u
KGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX07Yy5mbi5jc3M9ZnVuY3Rpb24oYSxiKXtpZihh
cmd1bWVudHMubGVuZ3RoPT09MiYmYj09PUIpcmV0dXJuIHRoaXM7cmV0dXJuIGMuYWNjZXNzKHRo
aXMsYSxiLHRydWUsZnVuY3Rpb24oZCxlLGYpe3JldHVybiBmIT09Qj9jLnN0eWxlKGQsZSxmKTpj
LmNzcyhkLGUpfSl9O2MuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEs
Yil7aWYoYil7dmFyIGQ9VyhhLCJvcGFjaXR5Iiwib3BhY2l0eSIpO3JldHVybiBkPT09IiI/IjEi
OmR9ZWxzZSByZXR1cm4gYS5zdHlsZS5vcGFjaXR5fX19LGNzc051bWJlcjp7ekluZGV4OnRydWUs
Zm9udFdlaWdodDp0cnVlLG9wYWNpdHk6dHJ1ZSwKK3pvb206dHJ1ZSxsaW5lSGVpZ2h0OnRydWV9
LGNzc1Byb3BzOnsiZmxvYXQiOmMuc3VwcG9ydC5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZs
b2F0In0sc3R5bGU6ZnVuY3Rpb24oYSxiLGQsZSl7aWYoISghYXx8YS5ub2RlVHlwZT09PTN8fGEu
bm9kZVR5cGU9PT04fHwhYS5zdHlsZSkpe3ZhciBmLGg9Yy5jYW1lbENhc2UoYiksbD1hLnN0eWxl
LGs9Yy5jc3NIb29rc1toXTtiPWMuY3NzUHJvcHNbaF18fGg7aWYoZCE9PUIpe2lmKCEodHlwZW9m
IGQ9PT0ibnVtYmVyIiYmaXNOYU4oZCl8fGQ9PW51bGwpKXtpZih0eXBlb2YgZD09PSJudW1iZXIi
JiYhYy5jc3NOdW1iZXJbaF0pZCs9InB4IjtpZigha3x8ISgic2V0ImluIGspfHwoZD1rLnNldChh
LGQpKSE9PUIpdHJ5e2xbYl09ZH1jYXRjaChvKXt9fX1lbHNle2lmKGsmJiJnZXQiaW4gayYmKGY9
ay5nZXQoYSxmYWxzZSxlKSkhPT1CKXJldHVybiBmO3JldHVybiBsW2JdfX19LGNzczpmdW5jdGlv
bihhLGIsZCl7dmFyIGUsZj1jLmNhbWVsQ2FzZShiKSwKK2g9Yy5jc3NIb29rc1tmXTtiPWMuY3Nz
UHJvcHNbZl18fGY7aWYoaCYmImdldCJpbiBoJiYoZT1oLmdldChhLHRydWUsZCkpIT09QilyZXR1
cm4gZTtlbHNlIGlmKFcpcmV0dXJuIFcoYSxiLGYpfSxzd2FwOmZ1bmN0aW9uKGEsYixkKXt2YXIg
ZT17fSxmO2ZvcihmIGluIGIpe2VbZl09YS5zdHlsZVtmXTthLnN0eWxlW2ZdPWJbZl19ZC5jYWxs
KGEpO2ZvcihmIGluIGIpYS5zdHlsZVtmXT1lW2ZdfSxjYW1lbENhc2U6ZnVuY3Rpb24oYSl7cmV0
dXJuIGEucmVwbGFjZShoYixsYil9fSk7Yy5jdXJDU1M9Yy5jc3M7Yy5lYWNoKFsiaGVpZ2h0Iiwi
d2lkdGgiXSxmdW5jdGlvbihhLGIpe2MuY3NzSG9va3NbYl09e2dldDpmdW5jdGlvbihkLGUsZil7
dmFyIGg7aWYoZSl7aWYoZC5vZmZzZXRXaWR0aCE9PTApaD1vYShkLGIsZik7ZWxzZSBjLnN3YXAo
ZCxrYixmdW5jdGlvbigpe2g9b2EoZCxiLGYpfSk7aWYoaDw9MCl7aD1XKGQsYixiKTtpZihoPT09
IjBweCImJmFhKWg9YWEoZCxiLGIpOworaWYoaCE9bnVsbClyZXR1cm4gaD09PSIifHxoPT09ImF1
dG8iPyIwcHgiOmh9aWYoaDwwfHxoPT1udWxsKXtoPWQuc3R5bGVbYl07cmV0dXJuIGg9PT0iInx8
aD09PSJhdXRvIj8iMHB4IjpofXJldHVybiB0eXBlb2YgaD09PSJzdHJpbmciP2g6aCsicHgifX0s
c2V0OmZ1bmN0aW9uKGQsZSl7aWYoRmEudGVzdChlKSl7ZT1wYXJzZUZsb2F0KGUpO2lmKGU+PTAp
cmV0dXJuIGUrInB4In1lbHNlIHJldHVybiBlfX19KTtpZighYy5zdXBwb3J0Lm9wYWNpdHkpYy5j
c3NIb29rcy5vcGFjaXR5PXtnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZ2IudGVzdCgoYiYmYS5j
dXJyZW50U3R5bGU/YS5jdXJyZW50U3R5bGUuZmlsdGVyOmEuc3R5bGUuZmlsdGVyKXx8IiIpP3Bh
cnNlRmxvYXQoUmVnRXhwLiQxKS8xMDArIiI6Yj8iMSI6IiJ9LHNldDpmdW5jdGlvbihhLGIpe3Zh
ciBkPWEuc3R5bGU7ZC56b29tPTE7dmFyIGU9Yy5pc05hTihiKT8iIjoiYWxwaGEob3BhY2l0eT0i
K2IqMTAwKyIpIixmPQorZC5maWx0ZXJ8fCIiO2QuZmlsdGVyPUVhLnRlc3QoZik/Zi5yZXBsYWNl
KEVhLGUpOmQuZmlsdGVyKyIgIitlfX07aWYodC5kZWZhdWx0VmlldyYmdC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKUdhPWZ1bmN0aW9uKGEsYixkKXt2YXIgZTtkPWQucmVwbGFjZShpYiwi
LSQxIikudG9Mb3dlckNhc2UoKTtpZighKGI9YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSly
ZXR1cm4gQjtpZihiPWIuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpKXtlPWIuZ2V0UHJvcGVydHlW
YWx1ZShkKTtpZihlPT09IiImJiFjLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQsYSkpZT1jLnN0eWxlKGEsZCl9cmV0dXJuIGV9O2lmKHQuZG9jdW1lbnRFbGVtZW50LmN1
cnJlbnRTdHlsZSlhYT1mdW5jdGlvbihhLGIpe3ZhciBkLGUsZj1hLmN1cnJlbnRTdHlsZSYmYS5j
dXJyZW50U3R5bGVbYl0saD1hLnN0eWxlO2lmKCFGYS50ZXN0KGYpJiZqYi50ZXN0KGYpKXtkPWgu
bGVmdDsKK2U9YS5ydW50aW1lU3R5bGUubGVmdDthLnJ1bnRpbWVTdHlsZS5sZWZ0PWEuY3VycmVu
dFN0eWxlLmxlZnQ7aC5sZWZ0PWI9PT0iZm9udFNpemUiPyIxZW0iOmZ8fDA7Zj1oLnBpeGVsTGVm
dCsicHgiO2gubGVmdD1kO2EucnVudGltZVN0eWxlLmxlZnQ9ZX1yZXR1cm4gZj09PSIiPyJhdXRv
IjpmfTtXPUdhfHxhYTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKXtjLmV4cHIuZmlsdGVycy5o
aWRkZW49ZnVuY3Rpb24oYSl7dmFyIGI9YS5vZmZzZXRIZWlnaHQ7cmV0dXJuIGEub2Zmc2V0V2lk
dGg9PT0wJiZiPT09MHx8IWMuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMmJihhLnN0eWxl
LmRpc3BsYXl8fGMuY3NzKGEsImRpc3BsYXkiKSk9PT0ibm9uZSJ9O2MuZXhwci5maWx0ZXJzLnZp
c2libGU9ZnVuY3Rpb24oYSl7cmV0dXJuIWMuZXhwci5maWx0ZXJzLmhpZGRlbihhKX19dmFyIG1i
PWMubm93KCksbmI9LzxzY3JpcHRcYltePF0qKD86KD8hPFwvc2NyaXB0Pik8W148XSopKjxcL3Nj
cmlwdD4vZ2ksCitvYj0vXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSxwYj0vXig/OmNvbG9yfGRhdGV8
ZGF0ZXRpbWV8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8
dGVsfHRleHR8dGltZXx1cmx8d2VlaykkL2kscWI9L14oPzpHRVR8SEVBRCkkLyxSYT0vXFtcXSQv
LFQ9L1w9XD8oJnwkKS8samE9L1w/LyxyYj0vKFs/Jl0pXz1bXiZdKi8sc2I9L14oXHcrOik/XC9c
LyhbXlwvPyNdKykvLHRiPS8lMjAvZyx1Yj0vIy4qJC8sSGE9Yy5mbi5sb2FkO2MuZm4uZXh0ZW5k
KHtsb2FkOmZ1bmN0aW9uKGEsYixkKXtpZih0eXBlb2YgYSE9PSJzdHJpbmciJiZIYSlyZXR1cm4g
SGEuYXBwbHkodGhpcyxhcmd1bWVudHMpO2Vsc2UgaWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlz
O3ZhciBlPWEuaW5kZXhPZigiICIpO2lmKGU+PTApe3ZhciBmPWEuc2xpY2UoZSxhLmxlbmd0aCk7
YT1hLnNsaWNlKDAsZSl9ZT0iR0VUIjtpZihiKWlmKGMuaXNGdW5jdGlvbihiKSl7ZD1iO2I9bnVs
bH1lbHNlIGlmKHR5cGVvZiBiPT09Cisib2JqZWN0Iil7Yj1jLnBhcmFtKGIsYy5hamF4U2V0dGlu
Z3MudHJhZGl0aW9uYWwpO2U9IlBPU1QifXZhciBoPXRoaXM7Yy5hamF4KHt1cmw6YSx0eXBlOmUs
ZGF0YVR5cGU6Imh0bWwiLGRhdGE6Yixjb21wbGV0ZTpmdW5jdGlvbihsLGspe2lmKGs9PT0ic3Vj
Y2VzcyJ8fGs9PT0ibm90bW9kaWZpZWQiKWguaHRtbChmP2MoIjxkaXY+IikuYXBwZW5kKGwucmVz
cG9uc2VUZXh0LnJlcGxhY2UobmIsIiIpKS5maW5kKGYpOmwucmVzcG9uc2VUZXh0KTtkJiZoLmVh
Y2goZCxbbC5yZXNwb25zZVRleHQsayxsXSl9fSk7cmV0dXJuIHRoaXN9LHNlcmlhbGl6ZTpmdW5j
dGlvbigpe3JldHVybiBjLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LHNlcmlhbGl6ZUFy
cmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxl
bWVudHM/Yy5tYWtlQXJyYXkodGhpcy5lbGVtZW50cyk6dGhpc30pLmZpbHRlcihmdW5jdGlvbigp
e3JldHVybiB0aGlzLm5hbWUmJgorIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fG9iLnRl
c3QodGhpcy5ub2RlTmFtZSl8fHBiLnRlc3QodGhpcy50eXBlKSl9KS5tYXAoZnVuY3Rpb24oYSxi
KXt2YXIgZD1jKHRoaXMpLnZhbCgpO3JldHVybiBkPT1udWxsP251bGw6Yy5pc0FycmF5KGQpP2Mu
bWFwKGQsZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmV9fSk6e25hbWU6Yi5u
YW1lLHZhbHVlOmR9fSkuZ2V0KCl9fSk7Yy5lYWNoKCJhamF4U3RhcnQgYWpheFN0b3AgYWpheENv
bXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoIiAiKSxmdW5jdGlv
bihhLGIpe2MuZm5bYl09ZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMuYmluZChiLGQpfX0pO2MuZXh0
ZW5kKHtnZXQ6ZnVuY3Rpb24oYSxiLGQsZSl7aWYoYy5pc0Z1bmN0aW9uKGIpKXtlPWV8fGQ7ZD1i
O2I9bnVsbH1yZXR1cm4gYy5hamF4KHt0eXBlOiJHRVQiLHVybDphLGRhdGE6YixzdWNjZXNzOmQs
ZGF0YVR5cGU6ZX0pfSwKK2dldFNjcmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBjLmdldChhLG51
bGwsYiwic2NyaXB0Iil9LGdldEpTT046ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmdldChhLGIs
ZCwianNvbiIpfSxwb3N0OmZ1bmN0aW9uKGEsYixkLGUpe2lmKGMuaXNGdW5jdGlvbihiKSl7ZT1l
fHxkO2Q9YjtiPXt9fXJldHVybiBjLmFqYXgoe3R5cGU6IlBPU1QiLHVybDphLGRhdGE6YixzdWNj
ZXNzOmQsZGF0YVR5cGU6ZX0pfSxhamF4U2V0dXA6ZnVuY3Rpb24oYSl7Yy5leHRlbmQoYy5hamF4
U2V0dGluZ3MsYSl9LGFqYXhTZXR0aW5nczp7dXJsOmxvY2F0aW9uLmhyZWYsZ2xvYmFsOnRydWUs
dHlwZToiR0VUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk
Iixwcm9jZXNzRGF0YTp0cnVlLGFzeW5jOnRydWUseGhyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBF
LlhNTEh0dHBSZXF1ZXN0fSxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwi
LGh0bWw6InRleHQvaHRtbCIsCitzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24v
amF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0
OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGFqYXg6ZnVuY3Rpb24oYSl7dmFyIGI9Yy5l
eHRlbmQodHJ1ZSx7fSxjLmFqYXhTZXR0aW5ncyxhKSxkLGUsZixoPWIudHlwZS50b1VwcGVyQ2Fz
ZSgpLGw9cWIudGVzdChoKTtiLnVybD1iLnVybC5yZXBsYWNlKHViLCIiKTtiLmNvbnRleHQ9YSYm
YS5jb250ZXh0IT1udWxsP2EuY29udGV4dDpiO2lmKGIuZGF0YSYmYi5wcm9jZXNzRGF0YSYmdHlw
ZW9mIGIuZGF0YSE9PSJzdHJpbmciKWIuZGF0YT1jLnBhcmFtKGIuZGF0YSxiLnRyYWRpdGlvbmFs
KTtpZihiLmRhdGFUeXBlPT09Impzb25wIil7aWYoaD09PSJHRVQiKVQudGVzdChiLnVybCl8fChi
LnVybCs9KGphLnRlc3QoYi51cmwpPyImIjoiPyIpKyhiLmpzb25wfHwiY2FsbGJhY2siKSsiPT8i
KTtlbHNlIGlmKCFiLmRhdGF8fAorIVQudGVzdChiLmRhdGEpKWIuZGF0YT0oYi5kYXRhP2IuZGF0
YSsiJiI6IiIpKyhiLmpzb25wfHwiY2FsbGJhY2siKSsiPT8iO2IuZGF0YVR5cGU9Impzb24ifWlm
KGIuZGF0YVR5cGU9PT0ianNvbiImJihiLmRhdGEmJlQudGVzdChiLmRhdGEpfHxULnRlc3QoYi51
cmwpKSl7ZD1iLmpzb25wQ2FsbGJhY2t8fCJqc29ucCIrbWIrKztpZihiLmRhdGEpYi5kYXRhPShi
LmRhdGErIiIpLnJlcGxhY2UoVCwiPSIrZCsiJDEiKTtiLnVybD1iLnVybC5yZXBsYWNlKFQsIj0i
K2QrIiQxIik7Yi5kYXRhVHlwZT0ic2NyaXB0Ijt2YXIgaz1FW2RdO0VbZF09ZnVuY3Rpb24obSl7
aWYoYy5pc0Z1bmN0aW9uKGspKWsobSk7ZWxzZXtFW2RdPUI7dHJ5e2RlbGV0ZSBFW2RdfWNhdGNo
KHApe319Zj1tO2MuaGFuZGxlU3VjY2VzcyhiLHcsZSxmKTtjLmhhbmRsZUNvbXBsZXRlKGIsdyxl
LGYpO3ImJnIucmVtb3ZlQ2hpbGQoQSl9fWlmKGIuZGF0YVR5cGU9PT0ic2NyaXB0IiYmYi5jYWNo
ZT09PW51bGwpYi5jYWNoZT0KK2ZhbHNlO2lmKGIuY2FjaGU9PT1mYWxzZSYmbCl7dmFyIG89Yy5u
b3coKSx4PWIudXJsLnJlcGxhY2UocmIsIiQxXz0iK28pO2IudXJsPXgrKHg9PT1iLnVybD8oamEu
dGVzdChiLnVybCk/IiYiOiI/IikrIl89IitvOiIiKX1pZihiLmRhdGEmJmwpYi51cmwrPShqYS50
ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmRhdGE7Yi5nbG9iYWwmJmMuYWN0aXZlKys9PT0wJiZjLmV2
ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpO289KG89c2IuZXhlYyhiLnVybCkpJiYob1sxXSYmb1sx
XS50b0xvd2VyQ2FzZSgpIT09bG9jYXRpb24ucHJvdG9jb2x8fG9bMl0udG9Mb3dlckNhc2UoKSE9
PWxvY2F0aW9uLmhvc3QpO2lmKGIuZGF0YVR5cGU9PT0ic2NyaXB0IiYmaD09PSJHRVQiJiZvKXt2
YXIgcj10LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fHQuZG9jdW1lbnRFbGVtZW50
LEE9dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihiLnNjcmlwdENoYXJzZXQpQS5jaGFyc2V0
PWIuc2NyaXB0Q2hhcnNldDsKK0Euc3JjPWIudXJsO2lmKCFkKXt2YXIgQz1mYWxzZTtBLm9ubG9h
ZD1BLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKCFDJiYoIXRoaXMucmVhZHlTdGF0
ZXx8dGhpcy5yZWFkeVN0YXRlPT09ImxvYWRlZCJ8fHRoaXMucmVhZHlTdGF0ZT09PSJjb21wbGV0
ZSIpKXtDPXRydWU7Yy5oYW5kbGVTdWNjZXNzKGIsdyxlLGYpO2MuaGFuZGxlQ29tcGxldGUoYix3
LGUsZik7QS5vbmxvYWQ9QS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDtyJiZBLnBhcmVudE5vZGUm
JnIucmVtb3ZlQ2hpbGQoQSl9fX1yLmluc2VydEJlZm9yZShBLHIuZmlyc3RDaGlsZCk7cmV0dXJu
IEJ9dmFyIEo9ZmFsc2Usdz1iLnhocigpO2lmKHcpe2IudXNlcm5hbWU/dy5vcGVuKGgsYi51cmws
Yi5hc3luYyxiLnVzZXJuYW1lLGIucGFzc3dvcmQpOncub3BlbihoLGIudXJsLGIuYXN5bmMpO3Ry
eXtpZihiLmRhdGEhPW51bGwmJiFsfHxhJiZhLmNvbnRlbnRUeXBlKXcuc2V0UmVxdWVzdEhlYWRl
cigiQ29udGVudC1UeXBlIiwKK2IuY29udGVudFR5cGUpO2lmKGIuaWZNb2RpZmllZCl7Yy5sYXN0
TW9kaWZpZWRbYi51cmxdJiZ3LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixj
Lmxhc3RNb2RpZmllZFtiLnVybF0pO2MuZXRhZ1tiLnVybF0mJncuc2V0UmVxdWVzdEhlYWRlcigi
SWYtTm9uZS1NYXRjaCIsYy5ldGFnW2IudXJsXSl9b3x8dy5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJl
cXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTt3LnNldFJlcXVlc3RIZWFkZXIoIkFjY2Vw
dCIsYi5kYXRhVHlwZSYmYi5hY2NlcHRzW2IuZGF0YVR5cGVdP2IuYWNjZXB0c1tiLmRhdGFUeXBl
XSsiLCAqLyo7IHE9MC4wMSI6Yi5hY2NlcHRzLl9kZWZhdWx0KX1jYXRjaChJKXt9aWYoYi5iZWZv
cmVTZW5kJiZiLmJlZm9yZVNlbmQuY2FsbChiLmNvbnRleHQsdyxiKT09PWZhbHNlKXtiLmdsb2Jh
bCYmYy5hY3RpdmUtLT09PTEmJmMuZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKTt3LmFib3J0KCk7
cmV0dXJuIGZhbHNlfWIuZ2xvYmFsJiYKK2MudHJpZ2dlckdsb2JhbChiLCJhamF4U2VuZCIsW3cs
Yl0pO3ZhciBMPXcub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKG0pe2lmKCF3fHx3LnJlYWR5
U3RhdGU9PT0wfHxtPT09ImFib3J0Iil7Snx8Yy5oYW5kbGVDb21wbGV0ZShiLHcsZSxmKTtKPXRy
dWU7aWYodyl3Lm9ucmVhZHlzdGF0ZWNoYW5nZT1jLm5vb3B9ZWxzZSBpZighSiYmdyYmKHcucmVh
ZHlTdGF0ZT09PTR8fG09PT0idGltZW91dCIpKXtKPXRydWU7dy5vbnJlYWR5c3RhdGVjaGFuZ2U9
Yy5ub29wO2U9bT09PSJ0aW1lb3V0Ij8idGltZW91dCI6IWMuaHR0cFN1Y2Nlc3Modyk/ImVycm9y
IjpiLmlmTW9kaWZpZWQmJmMuaHR0cE5vdE1vZGlmaWVkKHcsYi51cmwpPyJub3Rtb2RpZmllZCI6
InN1Y2Nlc3MiO3ZhciBwO2lmKGU9PT0ic3VjY2VzcyIpdHJ5e2Y9Yy5odHRwRGF0YSh3LGIuZGF0
YVR5cGUsYil9Y2F0Y2gocSl7ZT0icGFyc2VyZXJyb3IiO3A9cX1pZihlPT09InN1Y2Nlc3MifHxl
PT09Im5vdG1vZGlmaWVkIilkfHwKK2MuaGFuZGxlU3VjY2VzcyhiLHcsZSxmKTtlbHNlIGMuaGFu
ZGxlRXJyb3IoYix3LGUscCk7ZHx8Yy5oYW5kbGVDb21wbGV0ZShiLHcsZSxmKTttPT09InRpbWVv
dXQiJiZ3LmFib3J0KCk7aWYoYi5hc3luYyl3PW51bGx9fTt0cnl7dmFyIGc9dy5hYm9ydDt3LmFi
b3J0PWZ1bmN0aW9uKCl7dyYmRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuY2FsbChnLHcpO0woImFi
b3J0Iil9fWNhdGNoKGkpe31iLmFzeW5jJiZiLnRpbWVvdXQ+MCYmc2V0VGltZW91dChmdW5jdGlv
bigpe3cmJiFKJiZMKCJ0aW1lb3V0Iil9LGIudGltZW91dCk7dHJ5e3cuc2VuZChsfHxiLmRhdGE9
PW51bGw/bnVsbDpiLmRhdGEpfWNhdGNoKG4pe2MuaGFuZGxlRXJyb3IoYix3LG51bGwsbik7Yy5o
YW5kbGVDb21wbGV0ZShiLHcsZSxmKX1iLmFzeW5jfHxMKCk7cmV0dXJuIHd9fSxwYXJhbTpmdW5j
dGlvbihhLGIpe3ZhciBkPVtdLGU9ZnVuY3Rpb24oaCxsKXtsPWMuaXNGdW5jdGlvbihsKT9sKCk6
bDtkW2QubGVuZ3RoXT0KK2VuY29kZVVSSUNvbXBvbmVudChoKSsiPSIrZW5jb2RlVVJJQ29tcG9u
ZW50KGwpfTtpZihiPT09QiliPWMuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsO2lmKGMuaXNBcnJh
eShhKXx8YS5qcXVlcnkpYy5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVl
KX0pO2Vsc2UgZm9yKHZhciBmIGluIGEpZGEoZixhW2ZdLGIsZSk7cmV0dXJuIGQuam9pbigiJiIp
LnJlcGxhY2UodGIsIisiKX19KTtjLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0
YWc6e30saGFuZGxlRXJyb3I6ZnVuY3Rpb24oYSxiLGQsZSl7YS5lcnJvciYmYS5lcnJvci5jYWxs
KGEuY29udGV4dCxiLGQsZSk7YS5nbG9iYWwmJmMudHJpZ2dlckdsb2JhbChhLCJhamF4RXJyb3Ii
LFtiLGEsZV0pfSxoYW5kbGVTdWNjZXNzOmZ1bmN0aW9uKGEsYixkLGUpe2Euc3VjY2VzcyYmYS5z
dWNjZXNzLmNhbGwoYS5jb250ZXh0LGUsZCxiKTthLmdsb2JhbCYmYy50cmlnZ2VyR2xvYmFsKGEs
ImFqYXhTdWNjZXNzIiwKK1tiLGFdKX0saGFuZGxlQ29tcGxldGU6ZnVuY3Rpb24oYSxiLGQpe2Eu
Y29tcGxldGUmJmEuY29tcGxldGUuY2FsbChhLmNvbnRleHQsYixkKTthLmdsb2JhbCYmYy50cmln
Z2VyR2xvYmFsKGEsImFqYXhDb21wbGV0ZSIsW2IsYV0pO2EuZ2xvYmFsJiZjLmFjdGl2ZS0tPT09
MSYmYy5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfSx0cmlnZ2VyR2xvYmFsOmZ1bmN0aW9uKGEs
YixkKXsoYS5jb250ZXh0JiZhLmNvbnRleHQudXJsPT1udWxsP2MoYS5jb250ZXh0KTpjLmV2ZW50
KS50cmlnZ2VyKGIsZCl9LGh0dHBTdWNjZXNzOmZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4hYS5zdGF0
dXMmJmxvY2F0aW9uLnByb3RvY29sPT09ImZpbGU6Inx8YS5zdGF0dXM+PTIwMCYmYS5zdGF0dXM8
MzAwfHxhLnN0YXR1cz09PTMwNHx8YS5zdGF0dXM9PT0xMjIzfWNhdGNoKGIpe31yZXR1cm4gZmFs
c2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihhLGIpe3ZhciBkPWEuZ2V0UmVzcG9uc2VIZWFk
ZXIoIkxhc3QtTW9kaWZpZWQiKSwKK2U9YS5nZXRSZXNwb25zZUhlYWRlcigiRXRhZyIpO2lmKGQp
Yy5sYXN0TW9kaWZpZWRbYl09ZDtpZihlKWMuZXRhZ1tiXT1lO3JldHVybiBhLnN0YXR1cz09PTMw
NH0saHR0cERhdGE6ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEuZ2V0UmVzcG9uc2VIZWFkZXIoImNv
bnRlbnQtdHlwZSIpfHwiIixmPWI9PT0ieG1sInx8IWImJmUuaW5kZXhPZigieG1sIik+PTA7YT1m
P2EucmVzcG9uc2VYTUw6YS5yZXNwb25zZVRleHQ7ZiYmYS5kb2N1bWVudEVsZW1lbnQubm9kZU5h
bWU9PT0icGFyc2VyZXJyb3IiJiZjLmVycm9yKCJwYXJzZXJlcnJvciIpO2lmKGQmJmQuZGF0YUZp
bHRlcilhPWQuZGF0YUZpbHRlcihhLGIpO2lmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoYj09PSJq
c29uInx8IWImJmUuaW5kZXhPZigianNvbiIpPj0wKWE9Yy5wYXJzZUpTT04oYSk7ZWxzZSBpZihi
PT09InNjcmlwdCJ8fCFiJiZlLmluZGV4T2YoImphdmFzY3JpcHQiKT49MCljLmdsb2JhbEV2YWwo
YSk7cmV0dXJuIGF9fSk7CitpZihFLkFjdGl2ZVhPYmplY3QpYy5hamF4U2V0dGluZ3MueGhyPWZ1
bmN0aW9uKCl7aWYoRS5sb2NhdGlvbi5wcm90b2NvbCE9PSJmaWxlOiIpdHJ5e3JldHVybiBuZXcg
RS5YTUxIdHRwUmVxdWVzdH1jYXRjaChhKXt9dHJ5e3JldHVybiBuZXcgRS5BY3RpdmVYT2JqZWN0
KCJNaWNyb3NvZnQuWE1MSFRUUCIpfWNhdGNoKGIpe319O2Muc3VwcG9ydC5hamF4PSEhYy5hamF4
U2V0dGluZ3MueGhyKCk7dmFyIGVhPXt9LHZiPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyx3Yj0v
XihbK1wtXT0pPyhbXGQrLlwtXSspKC4qKSQvLGJhLHBhPVtbImhlaWdodCIsIm1hcmdpblRvcCIs
Im1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIl0sWyJ3aWR0aCIsIm1h
cmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0Il0sWyJv
cGFjaXR5Il1dO2MuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9uKGEsYixkKXtpZihhfHxhPT09MCly
ZXR1cm4gdGhpcy5hbmltYXRlKFMoInNob3ciLAorMyksYSxiLGQpO2Vsc2V7ZD0wO2Zvcih2YXIg
ZT10aGlzLmxlbmd0aDtkPGU7ZCsrKXthPXRoaXNbZF07Yj1hLnN0eWxlLmRpc3BsYXk7aWYoIWMu
ZGF0YShhLCJvbGRkaXNwbGF5IikmJmI9PT0ibm9uZSIpYj1hLnN0eWxlLmRpc3BsYXk9IiI7Yj09
PSIiJiZjLmNzcyhhLCJkaXNwbGF5Iik9PT0ibm9uZSImJmMuZGF0YShhLCJvbGRkaXNwbGF5Iixx
YShhLm5vZGVOYW1lKSl9Zm9yKGQ9MDtkPGU7ZCsrKXthPXRoaXNbZF07Yj1hLnN0eWxlLmRpc3Bs
YXk7aWYoYj09PSIifHxiPT09Im5vbmUiKWEuc3R5bGUuZGlzcGxheT1jLmRhdGEoYSwib2xkZGlz
cGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oYSxiLGQpe2lmKGF8fGE9PT0w
KXJldHVybiB0aGlzLmFuaW1hdGUoUygiaGlkZSIsMyksYSxiLGQpO2Vsc2V7YT0wO2ZvcihiPXRo
aXMubGVuZ3RoO2E8YjthKyspe2Q9Yy5jc3ModGhpc1thXSwiZGlzcGxheSIpO2QhPT0ibm9uZSIm
JmMuZGF0YSh0aGlzW2FdLCJvbGRkaXNwbGF5IiwKK2QpfWZvcihhPTA7YTxiO2ErKyl0aGlzW2Fd
LnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybiB0aGlzfX0sX3RvZ2dsZTpjLmZuLnRvZ2dsZSx0
b2dnbGU6ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPXR5cGVvZiBhPT09ImJvb2xlYW4iO2lmKGMuaXNG
dW5jdGlvbihhKSYmYy5pc0Z1bmN0aW9uKGIpKXRoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3Vt
ZW50cyk7ZWxzZSBhPT1udWxsfHxlP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWU/YTpjKHRo
aXMpLmlzKCI6aGlkZGVuIik7Yyh0aGlzKVtmPyJzaG93IjoiaGlkZSJdKCl9KTp0aGlzLmFuaW1h
dGUoUygidG9nZ2xlIiwzKSxhLGIsZCk7cmV0dXJuIHRoaXN9LGZhZGVUbzpmdW5jdGlvbihhLGIs
ZCxlKXtyZXR1cm4gdGhpcy5maWx0ZXIoIjpoaWRkZW4iKS5jc3MoIm9wYWNpdHkiLDApLnNob3co
KS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsZCxlKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIs
ZCxlKXt2YXIgZj1jLnNwZWVkKGIsCitkLGUpO2lmKGMuaXNFbXB0eU9iamVjdChhKSlyZXR1cm4g
dGhpcy5lYWNoKGYuY29tcGxldGUpO3JldHVybiB0aGlzW2YucXVldWU9PT1mYWxzZT8iZWFjaCI6
InF1ZXVlIl0oZnVuY3Rpb24oKXt2YXIgaD1jLmV4dGVuZCh7fSxmKSxsLGs9dGhpcy5ub2RlVHlw
ZT09PTEsbz1rJiZjKHRoaXMpLmlzKCI6aGlkZGVuIikseD10aGlzO2ZvcihsIGluIGEpe3ZhciBy
PWMuY2FtZWxDYXNlKGwpO2lmKGwhPT1yKXthW3JdPWFbbF07ZGVsZXRlIGFbbF07bD1yfWlmKGFb
bF09PT0iaGlkZSImJm98fGFbbF09PT0ic2hvdyImJiFvKXJldHVybiBoLmNvbXBsZXRlLmNhbGwo
dGhpcyk7aWYoayYmKGw9PT0iaGVpZ2h0Inx8bD09PSJ3aWR0aCIpKXtoLm92ZXJmbG93PVt0aGlz
LnN0eWxlLm92ZXJmbG93LHRoaXMuc3R5bGUub3ZlcmZsb3dYLHRoaXMuc3R5bGUub3ZlcmZsb3dZ
XTtpZihjLmNzcyh0aGlzLCJkaXNwbGF5Iik9PT0iaW5saW5lIiYmYy5jc3ModGhpcywiZmxvYXQi
KT09PSJub25lIilpZihjLnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dClpZihxYSh0aGlz
Lm5vZGVOYW1lKT09PQorImlubGluZSIpdGhpcy5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2si
O2Vsc2V7dGhpcy5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiO3RoaXMuc3R5bGUuem9vbT0xfWVsc2Ug
dGhpcy5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2sifWlmKGMuaXNBcnJheShhW2xdKSl7KGgu
c3BlY2lhbEVhc2luZz1oLnNwZWNpYWxFYXNpbmd8fHt9KVtsXT1hW2xdWzFdO2FbbF09YVtsXVsw
XX19aWYoaC5vdmVyZmxvdyE9bnVsbCl0aGlzLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2guY3Vy
QW5pbT1jLmV4dGVuZCh7fSxhKTtjLmVhY2goYSxmdW5jdGlvbihBLEMpe3ZhciBKPW5ldyBjLmZ4
KHgsaCxBKTtpZih2Yi50ZXN0KEMpKUpbQz09PSJ0b2dnbGUiP28/InNob3ciOiJoaWRlIjpDXShh
KTtlbHNle3ZhciB3PXdiLmV4ZWMoQyksST1KLmN1cigpfHwwO2lmKHcpe3ZhciBMPXBhcnNlRmxv
YXQod1syXSksZz13WzNdfHwicHgiO2lmKGchPT0icHgiKXtjLnN0eWxlKHgsQSwoTHx8MSkrZyk7
ST0oTHx8CisxKS9KLmN1cigpKkk7Yy5zdHlsZSh4LEEsSStnKX1pZih3WzFdKUw9KHdbMV09PT0i
LT0iPy0xOjEpKkwrSTtKLmN1c3RvbShJLEwsZyl9ZWxzZSBKLmN1c3RvbShJLEMsIiIpfX0pO3Jl
dHVybiB0cnVlfSl9LHN0b3A6ZnVuY3Rpb24oYSxiKXt2YXIgZD1jLnRpbWVyczthJiZ0aGlzLnF1
ZXVlKFtdKTt0aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIGU9ZC5sZW5ndGgtMTtlPj0wO2Ut
LSlpZihkW2VdLmVsZW09PT10aGlzKXtiJiZkW2VdKHRydWUpO2Quc3BsaWNlKGUsMSl9fSk7Ynx8
dGhpcy5kZXF1ZXVlKCk7cmV0dXJuIHRoaXN9fSk7Yy5lYWNoKHtzbGlkZURvd246Uygic2hvdyIs
MSksc2xpZGVVcDpTKCJoaWRlIiwxKSxzbGlkZVRvZ2dsZTpTKCJ0b2dnbGUiLDEpLGZhZGVJbjp7
b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFj
aXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1bmN0aW9uKGQsZSxmKXtyZXR1
cm4gdGhpcy5hbmltYXRlKGIsCitkLGUsZil9fSk7Yy5leHRlbmQoe3NwZWVkOmZ1bmN0aW9uKGEs
YixkKXt2YXIgZT1hJiZ0eXBlb2YgYT09PSJvYmplY3QiP2MuZXh0ZW5kKHt9LGEpOntjb21wbGV0
ZTpkfHwhZCYmYnx8Yy5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmQmJmJ8fGIm
JiFjLmlzRnVuY3Rpb24oYikmJmJ9O2UuZHVyYXRpb249Yy5meC5vZmY/MDp0eXBlb2YgZS5kdXJh
dGlvbj09PSJudW1iZXIiP2UuZHVyYXRpb246ZS5kdXJhdGlvbiBpbiBjLmZ4LnNwZWVkcz9jLmZ4
LnNwZWVkc1tlLmR1cmF0aW9uXTpjLmZ4LnNwZWVkcy5fZGVmYXVsdDtlLm9sZD1lLmNvbXBsZXRl
O2UuY29tcGxldGU9ZnVuY3Rpb24oKXtlLnF1ZXVlIT09ZmFsc2UmJmModGhpcykuZGVxdWV1ZSgp
O2MuaXNGdW5jdGlvbihlLm9sZCkmJmUub2xkLmNhbGwodGhpcyl9O3JldHVybiBlfSxlYXNpbmc6
e2xpbmVhcjpmdW5jdGlvbihhLGIsZCxlKXtyZXR1cm4gZCtlKmF9LHN3aW5nOmZ1bmN0aW9uKGEs
YixkLGUpe3JldHVybigtTWF0aC5jb3MoYSoKK01hdGguUEkpLzIrMC41KSplK2R9fSx0aW1lcnM6
W10sZng6ZnVuY3Rpb24oYSxiLGQpe3RoaXMub3B0aW9ucz1iO3RoaXMuZWxlbT1hO3RoaXMucHJv
cD1kO2lmKCFiLm9yaWcpYi5vcmlnPXt9fX0pO2MuZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rp
b24oKXt0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0s
dGhpcy5ub3csdGhpcyk7KGMuZnguc3RlcFt0aGlzLnByb3BdfHxjLmZ4LnN0ZXAuX2RlZmF1bHQp
KHRoaXMpfSxjdXI6ZnVuY3Rpb24oKXtpZih0aGlzLmVsZW1bdGhpcy5wcm9wXSE9bnVsbCYmKCF0
aGlzLmVsZW0uc3R5bGV8fHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdPT1udWxsKSlyZXR1cm4g
dGhpcy5lbGVtW3RoaXMucHJvcF07dmFyIGE9cGFyc2VGbG9hdChjLmNzcyh0aGlzLmVsZW0sdGhp
cy5wcm9wKSk7cmV0dXJuIGEmJmE+LTFFND9hOjB9LGN1c3RvbTpmdW5jdGlvbihhLGIsZCl7ZnVu
Y3Rpb24gZShsKXtyZXR1cm4gZi5zdGVwKGwpfQordmFyIGY9dGhpcyxoPWMuZng7dGhpcy5zdGFy
dFRpbWU9Yy5ub3coKTt0aGlzLnN0YXJ0PWE7dGhpcy5lbmQ9Yjt0aGlzLnVuaXQ9ZHx8dGhpcy51
bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO2UuZWxl
bT10aGlzLmVsZW07aWYoZSgpJiZjLnRpbWVycy5wdXNoKGUpJiYhYmEpYmE9c2V0SW50ZXJ2YWwo
aC50aWNrLGguaW50ZXJ2YWwpfSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhp
cy5wcm9wXT1jLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5zaG93PXRy
dWU7dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5wcm9wPT09ImhlaWdodCI/
MTowLHRoaXMuY3VyKCkpO2ModGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlz
Lm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7dGhp
cy5vcHRpb25zLmhpZGU9dHJ1ZTsKK3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksMCl9LHN0ZXA6ZnVu
Y3Rpb24oYSl7dmFyIGI9Yy5ub3coKSxkPXRydWU7aWYoYXx8Yj49dGhpcy5vcHRpb25zLmR1cmF0
aW9uK3RoaXMuc3RhcnRUaW1lKXt0aGlzLm5vdz10aGlzLmVuZDt0aGlzLnBvcz10aGlzLnN0YXRl
PTE7dGhpcy51cGRhdGUoKTt0aGlzLm9wdGlvbnMuY3VyQW5pbVt0aGlzLnByb3BdPXRydWU7Zm9y
KHZhciBlIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKWlmKHRoaXMub3B0aW9ucy5jdXJBbmltW2Vd
IT09dHJ1ZSlkPWZhbHNlO2lmKGQpe2lmKHRoaXMub3B0aW9ucy5vdmVyZmxvdyE9bnVsbCYmIWMu
c3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzKXt2YXIgZj10aGlzLmVsZW0saD10aGlzLm9wdGlvbnM7
Yy5lYWNoKFsiIiwiWCIsIlkiXSxmdW5jdGlvbihrLG8pe2Yuc3R5bGVbIm92ZXJmbG93IitvXT1o
Lm92ZXJmbG93W2tdfSl9dGhpcy5vcHRpb25zLmhpZGUmJmModGhpcy5lbGVtKS5oaWRlKCk7aWYo
dGhpcy5vcHRpb25zLmhpZGV8fAordGhpcy5vcHRpb25zLnNob3cpZm9yKHZhciBsIGluIHRoaXMu
b3B0aW9ucy5jdXJBbmltKWMuc3R5bGUodGhpcy5lbGVtLGwsdGhpcy5vcHRpb25zLm9yaWdbbF0p
O3RoaXMub3B0aW9ucy5jb21wbGV0ZS5jYWxsKHRoaXMuZWxlbSl9cmV0dXJuIGZhbHNlfWVsc2V7
YT1iLXRoaXMuc3RhcnRUaW1lO3RoaXMuc3RhdGU9YS90aGlzLm9wdGlvbnMuZHVyYXRpb247Yj10
aGlzLm9wdGlvbnMuZWFzaW5nfHwoYy5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIik7dGhp
cy5wb3M9Yy5lYXNpbmdbdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmcmJnRoaXMub3B0aW9ucy5z
cGVjaWFsRWFzaW5nW3RoaXMucHJvcF18fGJdKHRoaXMuc3RhdGUsYSwwLDEsdGhpcy5vcHRpb25z
LmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0Kyh0aGlzLmVuZC10aGlzLnN0YXJ0KSp0aGlz
LnBvczt0aGlzLnVwZGF0ZSgpfXJldHVybiB0cnVlfX07Yy5leHRlbmQoYy5meCx7dGljazpmdW5j
dGlvbigpe2Zvcih2YXIgYT0KK2MudGltZXJzLGI9MDtiPGEubGVuZ3RoO2IrKylhW2JdKCl8fGEu
c3BsaWNlKGItLSwxKTthLmxlbmd0aHx8Yy5meC5zdG9wKCl9LGludGVydmFsOjEzLHN0b3A6ZnVu
Y3Rpb24oKXtjbGVhckludGVydmFsKGJhKTtiYT1udWxsfSxzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6
MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihhKXtjLnN0eWxlKGEuZWxl
bSwib3BhY2l0eSIsYS5ub3cpfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtpZihhLmVsZW0uc3R5bGUm
JmEuZWxlbS5zdHlsZVthLnByb3BdIT1udWxsKWEuZWxlbS5zdHlsZVthLnByb3BdPShhLnByb3A9
PT0id2lkdGgifHxhLnByb3A9PT0iaGVpZ2h0Ij9NYXRoLm1heCgwLGEubm93KTphLm5vdykrYS51
bml0O2Vsc2UgYS5lbGVtW2EucHJvcF09YS5ub3d9fX0pO2lmKGMuZXhwciYmYy5leHByLmZpbHRl
cnMpYy5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGMuZ3JlcChjLnRp
bWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PQorYi5lbGVtfSkubGVuZ3RofTt2YXIgeGI9L150
KD86YWJsZXxkfGgpJC9pLElhPS9eKD86Ym9keXxodG1sKSQvaTtjLmZuLm9mZnNldD0iZ2V0Qm91
bmRpbmdDbGllbnRSZWN0ImluIHQuZG9jdW1lbnRFbGVtZW50P2Z1bmN0aW9uKGEpe3ZhciBiPXRo
aXNbMF0sZDtpZihhKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obCl7Yy5vZmZzZXQuc2V0T2Zm
c2V0KHRoaXMsYSxsKX0pO2lmKCFifHwhYi5vd25lckRvY3VtZW50KXJldHVybiBudWxsO2lmKGI9
PT1iLm93bmVyRG9jdW1lbnQuYm9keSlyZXR1cm4gYy5vZmZzZXQuYm9keU9mZnNldChiKTt0cnl7
ZD1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKGUpe312YXIgZj1iLm93bmVyRG9jdW1l
bnQsaD1mLmRvY3VtZW50RWxlbWVudDtpZighZHx8IWMuY29udGFpbnMoaCxiKSlyZXR1cm4gZHx8
e3RvcDowLGxlZnQ6MH07Yj1mLmJvZHk7Zj1mYShmKTtyZXR1cm57dG9wOmQudG9wKyhmLnBhZ2VZ
T2Zmc2V0fHxjLnN1cHBvcnQuYm94TW9kZWwmJgoraC5zY3JvbGxUb3B8fGIuc2Nyb2xsVG9wKS0o
aC5jbGllbnRUb3B8fGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoZi5wYWdlWE9mZnNldHx8
Yy5zdXBwb3J0LmJveE1vZGVsJiZoLnNjcm9sbExlZnR8fGIuc2Nyb2xsTGVmdCktKGguY2xpZW50
TGVmdHx8Yi5jbGllbnRMZWZ0fHwwKX19OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF07aWYoYSly
ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHgpe2Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEseCl9
KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3Vt
ZW50LmJvZHkpcmV0dXJuIGMub2Zmc2V0LmJvZHlPZmZzZXQoYik7Yy5vZmZzZXQuaW5pdGlhbGl6
ZSgpO3ZhciBkLGU9Yi5vZmZzZXRQYXJlbnQsZj1iLm93bmVyRG9jdW1lbnQsaD1mLmRvY3VtZW50
RWxlbWVudCxsPWYuYm9keTtkPShmPWYuZGVmYXVsdFZpZXcpP2YuZ2V0Q29tcHV0ZWRTdHlsZShi
LG51bGwpOmIuY3VycmVudFN0eWxlOworZm9yKHZhciBrPWIub2Zmc2V0VG9wLG89Yi5vZmZzZXRM
ZWZ0OyhiPWIucGFyZW50Tm9kZSkmJmIhPT1sJiZiIT09aDspe2lmKGMub2Zmc2V0LnN1cHBvcnRz
Rml4ZWRQb3NpdGlvbiYmZC5wb3NpdGlvbj09PSJmaXhlZCIpYnJlYWs7ZD1mP2YuZ2V0Q29tcHV0
ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlO2stPWIuc2Nyb2xsVG9wO28tPWIuc2Nyb2xs
TGVmdDtpZihiPT09ZSl7ays9Yi5vZmZzZXRUb3A7bys9Yi5vZmZzZXRMZWZ0O2lmKGMub2Zmc2V0
LmRvZXNOb3RBZGRCb3JkZXImJiEoYy5vZmZzZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2Vs
bHMmJnhiLnRlc3QoYi5ub2RlTmFtZSkpKXtrKz1wYXJzZUZsb2F0KGQuYm9yZGVyVG9wV2lkdGgp
fHwwO28rPXBhcnNlRmxvYXQoZC5ib3JkZXJMZWZ0V2lkdGgpfHwwfWU9Yi5vZmZzZXRQYXJlbnR9
aWYoYy5vZmZzZXQuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlJiZkLm92ZXJm
bG93IT09InZpc2libGUiKXtrKz0KK3BhcnNlRmxvYXQoZC5ib3JkZXJUb3BXaWR0aCl8fDA7bys9
cGFyc2VGbG9hdChkLmJvcmRlckxlZnRXaWR0aCl8fDB9ZD1kfWlmKGQucG9zaXRpb249PT0icmVs
YXRpdmUifHxkLnBvc2l0aW9uPT09InN0YXRpYyIpe2srPWwub2Zmc2V0VG9wO28rPWwub2Zmc2V0
TGVmdH1pZihjLm9mZnNldC5zdXBwb3J0c0ZpeGVkUG9zaXRpb24mJmQucG9zaXRpb249PT0iZml4
ZWQiKXtrKz1NYXRoLm1heChoLnNjcm9sbFRvcCxsLnNjcm9sbFRvcCk7bys9TWF0aC5tYXgoaC5z
Y3JvbGxMZWZ0LGwuc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDprLGxlZnQ6b319O2Mub2Zmc2V0PXtp
bml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGE9dC5ib2R5LGI9dC5jcmVhdGVFbGVtZW50KCJkaXYi
KSxkLGUsZixoPXBhcnNlRmxvYXQoYy5jc3MoYSwibWFyZ2luVG9wIikpfHwwO2MuZXh0ZW5kKGIu
c3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDowLG1hcmdpbjowLGJvcmRlcjow
LHdpZHRoOiIxcHgiLAoraGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtiLmlubmVy
SFRNTD0iPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjow
O2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48
ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVm
dDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hl
aWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48
L3RyPjwvdGFibGU+IjthLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCk7ZD1iLmZpcnN0Q2hp
bGQ7ZT1kLmZpcnN0Q2hpbGQ7Zj1kLm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDt0
aGlzLmRvZXNOb3RBZGRCb3JkZXI9ZS5vZmZzZXRUb3AhPT01O3RoaXMuZG9lc0FkZEJvcmRlckZv
clRhYmxlQW5kQ2VsbHM9CitmLm9mZnNldFRvcD09PTU7ZS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQi
O2Uuc3R5bGUudG9wPSIyMHB4Ijt0aGlzLnN1cHBvcnRzRml4ZWRQb3NpdGlvbj1lLm9mZnNldFRv
cD09PTIwfHxlLm9mZnNldFRvcD09PTE1O2Uuc3R5bGUucG9zaXRpb249ZS5zdHlsZS50b3A9IiI7
ZC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjtkLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7dGhp
cy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGU9ZS5vZmZzZXRUb3A9PT0tNTt0
aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PWEub2Zmc2V0VG9wIT09aDthLnJl
bW92ZUNoaWxkKGIpO2Mub2Zmc2V0LmluaXRpYWxpemU9Yy5ub29wfSxib2R5T2Zmc2V0OmZ1bmN0
aW9uKGEpe3ZhciBiPWEub2Zmc2V0VG9wLGQ9YS5vZmZzZXRMZWZ0O2Mub2Zmc2V0LmluaXRpYWxp
emUoKTtpZihjLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Yis9cGFy
c2VGbG9hdChjLmNzcyhhLAorIm1hcmdpblRvcCIpKXx8MDtkKz1wYXJzZUZsb2F0KGMuY3NzKGEs
Im1hcmdpbkxlZnQiKSl8fDB9cmV0dXJue3RvcDpiLGxlZnQ6ZH19LHNldE9mZnNldDpmdW5jdGlv
bihhLGIsZCl7dmFyIGU9Yy5jc3MoYSwicG9zaXRpb24iKTtpZihlPT09InN0YXRpYyIpYS5zdHls
ZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBmPWMoYSksaD1mLm9mZnNldCgpLGw9Yy5jc3MoYSwi
dG9wIiksaz1jLmNzcyhhLCJsZWZ0Iiksbz1lPT09ImFic29sdXRlIiYmYy5pbkFycmF5KCJhdXRv
IixbbCxrXSk+LTE7ZT17fTt2YXIgeD17fTtpZihvKXg9Zi5wb3NpdGlvbigpO2w9bz94LnRvcDpw
YXJzZUludChsLDEwKXx8MDtrPW8/eC5sZWZ0OnBhcnNlSW50KGssMTApfHwwO2lmKGMuaXNGdW5j
dGlvbihiKSliPWIuY2FsbChhLGQsaCk7aWYoYi50b3AhPW51bGwpZS50b3A9Yi50b3AtaC50b3Ar
bDtpZihiLmxlZnQhPW51bGwpZS5sZWZ0PWIubGVmdC1oLmxlZnQrazsidXNpbmciaW4gYj9iLnVz
aW5nLmNhbGwoYSwKK2UpOmYuY3NzKGUpfX07Yy5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9u
KCl7aWYoIXRoaXNbMF0pcmV0dXJuIG51bGw7dmFyIGE9dGhpc1swXSxiPXRoaXMub2Zmc2V0UGFy
ZW50KCksZD10aGlzLm9mZnNldCgpLGU9SWEudGVzdChiWzBdLm5vZGVOYW1lKT97dG9wOjAsbGVm
dDowfTpiLm9mZnNldCgpO2QudG9wLT1wYXJzZUZsb2F0KGMuY3NzKGEsIm1hcmdpblRvcCIpKXx8
MDtkLmxlZnQtPXBhcnNlRmxvYXQoYy5jc3MoYSwibWFyZ2luTGVmdCIpKXx8MDtlLnRvcCs9cGFy
c2VGbG9hdChjLmNzcyhiWzBdLCJib3JkZXJUb3BXaWR0aCIpKXx8MDtlLmxlZnQrPXBhcnNlRmxv
YXQoYy5jc3MoYlswXSwiYm9yZGVyTGVmdFdpZHRoIikpfHwwO3JldHVybnt0b3A6ZC50b3AtZS50
b3AsbGVmdDpkLmxlZnQtZS5sZWZ0fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRo
aXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHx0LmJvZHk7YSYm
IUlhLnRlc3QoYS5ub2RlTmFtZSkmJgorYy5jc3MoYSwicG9zaXRpb24iKT09PSJzdGF0aWMiOylh
PWEub2Zmc2V0UGFyZW50O3JldHVybiBhfSl9fSk7Yy5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0
aW9uKGEsYil7dmFyIGQ9InNjcm9sbCIrYjtjLmZuW2RdPWZ1bmN0aW9uKGUpe3ZhciBmPXRoaXNb
MF0saDtpZighZilyZXR1cm4gbnVsbDtpZihlIT09QilyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9u
KCl7aWYoaD1mYSh0aGlzKSloLnNjcm9sbFRvKCFhP2U6YyhoKS5zY3JvbGxMZWZ0KCksYT9lOmMo
aCkuc2Nyb2xsVG9wKCkpO2Vsc2UgdGhpc1tkXT1lfSk7ZWxzZSByZXR1cm4oaD1mYShmKSk/InBh
Z2VYT2Zmc2V0ImluIGg/aFthPyJwYWdlWU9mZnNldCI6InBhZ2VYT2Zmc2V0Il06Yy5zdXBwb3J0
LmJveE1vZGVsJiZoLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXXx8aC5kb2N1bWVudC5ib2R5
W2RdOmZbZF19fSk7Yy5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihhLGIpe3ZhciBk
PWIudG9Mb3dlckNhc2UoKTsKK2MuZm5bImlubmVyIitiXT1mdW5jdGlvbigpe3JldHVybiB0aGlz
WzBdP3BhcnNlRmxvYXQoYy5jc3ModGhpc1swXSxkLCJwYWRkaW5nIikpOm51bGx9O2MuZm5bIm91
dGVyIitiXT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc1swXT9wYXJzZUZsb2F0KGMuY3NzKHRoaXNb
MF0sZCxlPyJtYXJnaW4iOiJib3JkZXIiKSk6bnVsbH07Yy5mbltkXT1mdW5jdGlvbihlKXt2YXIg
Zj10aGlzWzBdO2lmKCFmKXJldHVybiBlPT1udWxsP251bGw6dGhpcztpZihjLmlzRnVuY3Rpb24o
ZSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihsKXt2YXIgaz1jKHRoaXMpO2tbZF0oZS5jYWxs
KHRoaXMsbCxrW2RdKCkpKX0pO2lmKGMuaXNXaW5kb3coZikpcmV0dXJuIGYuZG9jdW1lbnQuY29t
cGF0TW9kZT09PSJDU1MxQ29tcGF0IiYmZi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVu
dCIrYl18fGYuZG9jdW1lbnQuYm9keVsiY2xpZW50IitiXTtlbHNlIGlmKGYubm9kZVR5cGU9PT05
KXJldHVybiBNYXRoLm1heChmLmRvY3VtZW50RWxlbWVudFsiY2xpZW50IisKK2JdLGYuYm9keVsi
c2Nyb2xsIitiXSxmLmRvY3VtZW50RWxlbWVudFsic2Nyb2xsIitiXSxmLmJvZHlbIm9mZnNldCIr
Yl0sZi5kb2N1bWVudEVsZW1lbnRbIm9mZnNldCIrYl0pO2Vsc2UgaWYoZT09PUIpe2Y9Yy5jc3Mo
ZixkKTt2YXIgaD1wYXJzZUZsb2F0KGYpO3JldHVybiBjLmlzTmFOKGgpP2Y6aH1lbHNlIHJldHVy
biB0aGlzLmNzcyhkLHR5cGVvZiBlPT09InN0cmluZyI/ZTplKyJweCIpfX0pfSkod2luZG93KTsK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2pzL2pxdWVyeS11aS0xLjguMTAuY3VzdG9tLm1pbi5qcyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL2pxdWVyeS11aS0xLjguMTAuY3VzdG9t
Lm1pbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2Q0ZmYxY2Vj
MTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9qcy9qcXVlcnktdWktMS44LjEwLmN1c3RvbS5taW4uanMKQEAgLTAsMCAr
MSw3ODIgQEAKKy8qIQorICogalF1ZXJ5IFVJIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDEx
LCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5z
ZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2px
dWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkKKyAqLwor
KGZ1bmN0aW9uKGMsail7ZnVuY3Rpb24gayhhKXtyZXR1cm4hYyhhKS5wYXJlbnRzKCkuYW5kU2Vs
ZigpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBjLmN1ckNTUyh0aGlzLCJ2aXNpYmlsaXR5Iik9
PT0iaGlkZGVuInx8Yy5leHByLmZpbHRlcnMuaGlkZGVuKHRoaXMpfSkubGVuZ3RofWMudWk9Yy51
aXx8e307aWYoIWMudWkudmVyc2lvbil7Yy5leHRlbmQoYy51aSx7dmVyc2lvbjoiMS44LjEwIixr
ZXlDb2RlOntBTFQ6MTgsQkFDS1NQQUNFOjgsQ0FQU19MT0NLOjIwLENPTU1BOjE4OCxDT01NQU5E
OjkxLENPTU1BTkRfTEVGVDo5MSxDT01NQU5EX1JJR0hUOjkzLENPTlRST0w6MTcsREVMRVRFOjQ2
LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LElOU0VSVDo0NSxMRUZU
OjM3LE1FTlU6OTMsTlVNUEFEX0FERDoxMDcsTlVNUEFEX0RFQ0lNQUw6MTEwLE5VTVBBRF9ESVZJ
REU6MTExLE5VTVBBRF9FTlRFUjoxMDgsTlVNUEFEX01VTFRJUExZOjEwNiwKK05VTVBBRF9TVUJU
UkFDVDoxMDksUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTSElG
VDoxNixTUEFDRTozMixUQUI6OSxVUDozOCxXSU5ET1dTOjkxfX0pO2MuZm4uZXh0ZW5kKHtfZm9j
dXM6Yy5mbi5mb2N1cyxmb2N1czpmdW5jdGlvbihhLGIpe3JldHVybiB0eXBlb2YgYT09PSJudW1i
ZXIiP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigp
e2MoZCkuZm9jdXMoKTtiJiZiLmNhbGwoZCl9LGEpfSk6dGhpcy5fZm9jdXMuYXBwbHkodGhpcyxh
cmd1bWVudHMpfSxzY3JvbGxQYXJlbnQ6ZnVuY3Rpb24oKXt2YXIgYTthPWMuYnJvd3Nlci5tc2ll
JiYvKHN0YXRpY3xyZWxhdGl2ZSkvLnRlc3QodGhpcy5jc3MoInBvc2l0aW9uIikpfHwvYWJzb2x1
dGUvLnRlc3QodGhpcy5jc3MoInBvc2l0aW9uIikpP3RoaXMucGFyZW50cygpLmZpbHRlcihmdW5j
dGlvbigpe3JldHVybi8ocmVsYXRpdmV8YWJzb2x1dGV8Zml4ZWQpLy50ZXN0KGMuY3VyQ1NTKHRo
aXMsCisicG9zaXRpb24iLDEpKSYmLyhhdXRvfHNjcm9sbCkvLnRlc3QoYy5jdXJDU1ModGhpcywi
b3ZlcmZsb3ciLDEpK2MuY3VyQ1NTKHRoaXMsIm92ZXJmbG93LXkiLDEpK2MuY3VyQ1NTKHRoaXMs
Im92ZXJmbG93LXgiLDEpKX0pLmVxKDApOnRoaXMucGFyZW50cygpLmZpbHRlcihmdW5jdGlvbigp
e3JldHVybi8oYXV0b3xzY3JvbGwpLy50ZXN0KGMuY3VyQ1NTKHRoaXMsIm92ZXJmbG93IiwxKStj
LmN1ckNTUyh0aGlzLCJvdmVyZmxvdy15IiwxKStjLmN1ckNTUyh0aGlzLCJvdmVyZmxvdy14Iiwx
KSl9KS5lcSgwKTtyZXR1cm4vZml4ZWQvLnRlc3QodGhpcy5jc3MoInBvc2l0aW9uIikpfHwhYS5s
ZW5ndGg/Yyhkb2N1bWVudCk6YX0sekluZGV4OmZ1bmN0aW9uKGEpe2lmKGEhPT1qKXJldHVybiB0
aGlzLmNzcygiekluZGV4IixhKTtpZih0aGlzLmxlbmd0aCl7YT1jKHRoaXNbMF0pO2Zvcih2YXIg
YjthLmxlbmd0aCYmYVswXSE9PWRvY3VtZW50Oyl7Yj1hLmNzcygicG9zaXRpb24iKTsKK2lmKGI9
PT0iYWJzb2x1dGUifHxiPT09InJlbGF0aXZlInx8Yj09PSJmaXhlZCIpe2I9cGFyc2VJbnQoYS5j
c3MoInpJbmRleCIpLDEwKTtpZighaXNOYU4oYikmJmIhPT0wKXJldHVybiBifWE9YS5wYXJlbnQo
KX19cmV0dXJuIDB9LGRpc2FibGVTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iaW5k
KChjLnN1cHBvcnQuc2VsZWN0c3RhcnQ/InNlbGVjdHN0YXJ0IjoibW91c2Vkb3duIikrIi51aS1k
aXNhYmxlU2VsZWN0aW9uIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCl9KX0sZW5hYmxl
U2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5iaW5kKCIudWktZGlzYWJsZVNlbGVj
dGlvbiIpfX0pO2MuZWFjaChbIldpZHRoIiwiSGVpZ2h0Il0sZnVuY3Rpb24oYSxiKXtmdW5jdGlv
biBkKGYsZyxsLG0pe2MuZWFjaChlLGZ1bmN0aW9uKCl7Zy09cGFyc2VGbG9hdChjLmN1ckNTUyhm
LCJwYWRkaW5nIit0aGlzLHRydWUpKXx8MDtpZihsKWctPXBhcnNlRmxvYXQoYy5jdXJDU1MoZiwK
KyJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDA7aWYobSlnLT1wYXJzZUZsb2F0KGMuY3Vy
Q1NTKGYsIm1hcmdpbiIrdGhpcyx0cnVlKSl8fDB9KTtyZXR1cm4gZ312YXIgZT1iPT09IldpZHRo
Ij9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl0saD1iLnRvTG93ZXJDYXNlKCksaT17
aW5uZXJXaWR0aDpjLmZuLmlubmVyV2lkdGgsaW5uZXJIZWlnaHQ6Yy5mbi5pbm5lckhlaWdodCxv
dXRlcldpZHRoOmMuZm4ub3V0ZXJXaWR0aCxvdXRlckhlaWdodDpjLmZuLm91dGVySGVpZ2h0fTtj
LmZuWyJpbm5lciIrYl09ZnVuY3Rpb24oZil7aWYoZj09PWopcmV0dXJuIGlbImlubmVyIitiXS5j
YWxsKHRoaXMpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmNzcyhoLGQodGhp
cyxmKSsicHgiKX0pfTtjLmZuWyJvdXRlciIrYl09ZnVuY3Rpb24oZixnKXtpZih0eXBlb2YgZiE9
PSJudW1iZXIiKXJldHVybiBpWyJvdXRlciIrYl0uY2FsbCh0aGlzLGYpO3JldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oKXtjKHRoaXMpLmNzcyhoLAorZCh0aGlzLGYsdHJ1ZSxnKSsicHgiKX0pfX0p
O2MuZXh0ZW5kKGMuZXhwclsiOiJdLHtkYXRhOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4hIWMuZGF0
YShhLGRbM10pfSxmb2N1c2FibGU6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpLGQ9Yy5hdHRyKGEsInRhYmluZGV4Iik7aWYoImFyZWEiPT09Yil7Yj1hLnBhcmVudE5v
ZGU7ZD1iLm5hbWU7aWYoIWEuaHJlZnx8IWR8fGIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PSJt
YXAiKXJldHVybiBmYWxzZTthPWMoImltZ1t1c2VtYXA9IyIrZCsiXSIpWzBdO3JldHVybiEhYSYm
ayhhKX1yZXR1cm4oL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0Ly50ZXN0KGIp
PyFhLmRpc2FibGVkOiJhIj09Yj9hLmhyZWZ8fCFpc05hTihkKTohaXNOYU4oZCkpJiZrKGEpfSx0
YWJiYWJsZTpmdW5jdGlvbihhKXt2YXIgYj1jLmF0dHIoYSwidGFiaW5kZXgiKTtyZXR1cm4oaXNO
YU4oYil8fGI+PTApJiZjKGEpLmlzKCI6Zm9jdXNhYmxlIil9fSk7CitjKGZ1bmN0aW9uKCl7dmFy
IGE9ZG9jdW1lbnQuYm9keSxiPWEuYXBwZW5kQ2hpbGQoYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKSk7Yy5leHRlbmQoYi5zdHlsZSx7bWluSGVpZ2h0OiIxMDBweCIsaGVpZ2h0OiJhdXRv
IixwYWRkaW5nOjAsYm9yZGVyV2lkdGg6MH0pO2Muc3VwcG9ydC5taW5IZWlnaHQ9Yi5vZmZzZXRI
ZWlnaHQ9PT0xMDA7Yy5zdXBwb3J0LnNlbGVjdHN0YXJ0PSJvbnNlbGVjdHN0YXJ0ImluIGI7YS5y
ZW1vdmVDaGlsZChiKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pO2MuZXh0ZW5kKGMudWkse3BsdWdp
bjp7YWRkOmZ1bmN0aW9uKGEsYixkKXthPWMudWlbYV0ucHJvdG90eXBlO2Zvcih2YXIgZSBpbiBk
KXthLnBsdWdpbnNbZV09YS5wbHVnaW5zW2VdfHxbXTthLnBsdWdpbnNbZV0ucHVzaChbYixkW2Vd
XSl9fSxjYWxsOmZ1bmN0aW9uKGEsYixkKXtpZigoYj1hLnBsdWdpbnNbYl0pJiZhLmVsZW1lbnRb
MF0ucGFyZW50Tm9kZSlmb3IodmFyIGU9MDtlPGIubGVuZ3RoO2UrKylhLm9wdGlvbnNbYltlXVsw
XV0mJgorYltlXVsxXS5hcHBseShhLmVsZW1lbnQsZCl9fSxjb250YWluczpmdW5jdGlvbihhLGIp
e3JldHVybiBkb2N1bWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9hLmNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uKGIpJjE2OmEhPT1iJiZhLmNvbnRhaW5zKGIpfSxoYXNTY3JvbGw6ZnVuY3Rpb24o
YSxiKXtpZihjKGEpLmNzcygib3ZlcmZsb3ciKT09PSJoaWRkZW4iKXJldHVybiBmYWxzZTtiPWIm
JmI9PT0ibGVmdCI/InNjcm9sbExlZnQiOiJzY3JvbGxUb3AiO3ZhciBkPWZhbHNlO2lmKGFbYl0+
MClyZXR1cm4gdHJ1ZTthW2JdPTE7ZD1hW2JdPjA7YVtiXT0wO3JldHVybiBkfSxpc092ZXJBeGlz
OmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYT5iJiZhPGIrZH0saXNPdmVyOmZ1bmN0aW9uKGEsYixk
LGUsaCxpKXtyZXR1cm4gYy51aS5pc092ZXJBeGlzKGEsZCxoKSYmYy51aS5pc092ZXJBeGlzKGIs
ZSxpKX19KX19KShqUXVlcnkpOworOy8qIQorICogalF1ZXJ5IFVJIFdpZGdldCAxLjguMTAKKyAq
CisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJv
dXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNl
bnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5q
cXVlcnkuY29tL1VJL1dpZGdldAorICovCisoZnVuY3Rpb24oYixqKXtpZihiLmNsZWFuRGF0YSl7
dmFyIGs9Yi5jbGVhbkRhdGE7Yi5jbGVhbkRhdGE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPTAsZDso
ZD1hW2NdKSE9bnVsbDtjKyspYihkKS50cmlnZ2VySGFuZGxlcigicmVtb3ZlIik7ayhhKX19ZWxz
ZXt2YXIgbD1iLmZuLnJlbW92ZTtiLmZuLnJlbW92ZT1mdW5jdGlvbihhLGMpe3JldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oKXtpZighYylpZighYXx8Yi5maWx0ZXIoYSxbdGhpc10pLmxlbmd0aCli
KCIqIix0aGlzKS5hZGQoW3RoaXNdKS5lYWNoKGZ1bmN0aW9uKCl7Yih0aGlzKS50cmlnZ2VySGFu
ZGxlcigicmVtb3ZlIil9KTtyZXR1cm4gbC5jYWxsKGIodGhpcyksYSxjKX0pfX1iLndpZGdldD1m
dW5jdGlvbihhLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpWzBdLGY7YT1hLnNwbGl0KCIuIilbMV07
Zj1lKyItIithO2lmKCFkKXtkPWM7Yz1iLldpZGdldH1iLmV4cHJbIjoiXVtmXT1mdW5jdGlvbiho
KXtyZXR1cm4hIWIuZGF0YShoLAorYSl9O2JbZV09YltlXXx8e307YltlXVthXT1mdW5jdGlvbiho
LGcpe2FyZ3VtZW50cy5sZW5ndGgmJnRoaXMuX2NyZWF0ZVdpZGdldChoLGcpfTtjPW5ldyBjO2Mu
b3B0aW9ucz1iLmV4dGVuZCh0cnVlLHt9LGMub3B0aW9ucyk7YltlXVthXS5wcm90b3R5cGU9Yi5l
eHRlbmQodHJ1ZSxjLHtuYW1lc3BhY2U6ZSx3aWRnZXROYW1lOmEsd2lkZ2V0RXZlbnRQcmVmaXg6
YltlXVthXS5wcm90b3R5cGUud2lkZ2V0RXZlbnRQcmVmaXh8fGEsd2lkZ2V0QmFzZUNsYXNzOmZ9
LGQpO2Iud2lkZ2V0LmJyaWRnZShhLGJbZV1bYV0pfTtiLndpZGdldC5icmlkZ2U9ZnVuY3Rpb24o
YSxjKXtiLmZuW2FdPWZ1bmN0aW9uKGQpe3ZhciBlPXR5cGVvZiBkPT09InN0cmluZyIsZj1BcnJh
eS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksaD10aGlzO2Q9IWUmJmYubGVuZ3Ro
P2IuZXh0ZW5kLmFwcGx5KG51bGwsW3RydWUsZF0uY29uY2F0KGYpKTpkO2lmKGUmJmQuY2hhckF0
KDApPT09Il8iKXJldHVybiBoOworZT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZz1iLmRhdGEo
dGhpcyxhKSxpPWcmJmIuaXNGdW5jdGlvbihnW2RdKT9nW2RdLmFwcGx5KGcsZik6ZztpZihpIT09
ZyYmaSE9PWope2g9aTtyZXR1cm4gZmFsc2V9fSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9
Yi5kYXRhKHRoaXMsYSk7Zz9nLm9wdGlvbihkfHx7fSkuX2luaXQoKTpiLmRhdGEodGhpcyxhLG5l
dyBjKGQsdGhpcykpfSk7cmV0dXJuIGh9fTtiLldpZGdldD1mdW5jdGlvbihhLGMpe2FyZ3VtZW50
cy5sZW5ndGgmJnRoaXMuX2NyZWF0ZVdpZGdldChhLGMpfTtiLldpZGdldC5wcm90b3R5cGU9e3dp
ZGdldE5hbWU6IndpZGdldCIsd2lkZ2V0RXZlbnRQcmVmaXg6IiIsb3B0aW9uczp7ZGlzYWJsZWQ6
ZmFsc2V9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24oYSxjKXtiLmRhdGEoYyx0aGlzLndpZGdldE5h
bWUsdGhpcyk7dGhpcy5lbGVtZW50PWIoYyk7dGhpcy5vcHRpb25zPWIuZXh0ZW5kKHRydWUse30s
dGhpcy5vcHRpb25zLAordGhpcy5fZ2V0Q3JlYXRlT3B0aW9ucygpLGEpO3ZhciBkPXRoaXM7dGhp
cy5lbGVtZW50LmJpbmQoInJlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbigpe2QuZGVz
dHJveSgpfSk7dGhpcy5fY3JlYXRlKCk7dGhpcy5fdHJpZ2dlcigiY3JlYXRlIik7dGhpcy5faW5p
dCgpfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3JldHVybiBiLm1ldGFkYXRhJiZiLm1l
dGFkYXRhLmdldCh0aGlzLmVsZW1lbnRbMF0pW3RoaXMud2lkZ2V0TmFtZV19LF9jcmVhdGU6ZnVu
Y3Rpb24oKXt9LF9pbml0OmZ1bmN0aW9uKCl7fSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVt
ZW50LnVuYmluZCgiLiIrdGhpcy53aWRnZXROYW1lKS5yZW1vdmVEYXRhKHRoaXMud2lkZ2V0TmFt
ZSk7dGhpcy53aWRnZXQoKS51bmJpbmQoIi4iK3RoaXMud2lkZ2V0TmFtZSkucmVtb3ZlQXR0cigi
YXJpYS1kaXNhYmxlZCIpLnJlbW92ZUNsYXNzKHRoaXMud2lkZ2V0QmFzZUNsYXNzKyItZGlzYWJs
ZWQgdWktc3RhdGUtZGlzYWJsZWQiKX0sCit3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5l
bGVtZW50fSxvcHRpb246ZnVuY3Rpb24oYSxjKXt2YXIgZD1hO2lmKGFyZ3VtZW50cy5sZW5ndGg9
PT0wKXJldHVybiBiLmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMpO2lmKHR5cGVvZiBhPT09InN0cmlu
ZyIpe2lmKGM9PT1qKXJldHVybiB0aGlzLm9wdGlvbnNbYV07ZD17fTtkW2FdPWN9dGhpcy5fc2V0
T3B0aW9ucyhkKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbnM6ZnVuY3Rpb24oYSl7dmFyIGM9dGhp
cztiLmVhY2goYSxmdW5jdGlvbihkLGUpe2MuX3NldE9wdGlvbihkLGUpfSk7cmV0dXJuIHRoaXN9
LF9zZXRPcHRpb246ZnVuY3Rpb24oYSxjKXt0aGlzLm9wdGlvbnNbYV09YztpZihhPT09ImRpc2Fi
bGVkIil0aGlzLndpZGdldCgpW2M/ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXSh0aGlzLndpZGdl
dEJhc2VDbGFzcysiLWRpc2FibGVkIHVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNh
YmxlZCIsYyk7cmV0dXJuIHRoaXN9LAorZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Nl
dE9wdGlvbigiZGlzYWJsZWQiLGZhbHNlKX0sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlz
Ll9zZXRPcHRpb24oImRpc2FibGVkIix0cnVlKX0sX3RyaWdnZXI6ZnVuY3Rpb24oYSxjLGQpe3Zh
ciBlPXRoaXMub3B0aW9uc1thXTtjPWIuRXZlbnQoYyk7Yy50eXBlPShhPT09dGhpcy53aWRnZXRF
dmVudFByZWZpeD9hOnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrYSkudG9Mb3dlckNhc2UoKTtkPWR8
fHt9O2lmKGMub3JpZ2luYWxFdmVudCl7YT1iLmV2ZW50LnByb3BzLmxlbmd0aDtmb3IodmFyIGY7
YTspe2Y9Yi5ldmVudC5wcm9wc1stLWFdO2NbZl09Yy5vcmlnaW5hbEV2ZW50W2ZdfX10aGlzLmVs
ZW1lbnQudHJpZ2dlcihjLGQpO3JldHVybiEoYi5pc0Z1bmN0aW9uKGUpJiZlLmNhbGwodGhpcy5l
bGVtZW50WzBdLGMsZCk9PT1mYWxzZXx8Yy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl9fX0pKGpRdWVy
eSk7Cis7LyohCisgKiBqUXVlcnkgVUkgTW91c2UgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIw
MTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNl
bnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8v
anF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9Nb3Vz
ZQorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkudWkud2lkZ2V0LmpzCisgKi8KKyhmdW5jdGlv
bihjKXtjLndpZGdldCgidWkubW91c2UiLHtvcHRpb25zOntjYW5jZWw6IjppbnB1dCxvcHRpb24i
LGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhp
cy5lbGVtZW50LmJpbmQoIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihiKXty
ZXR1cm4gYS5fbW91c2VEb3duKGIpfSkuYmluZCgiY2xpY2suIit0aGlzLndpZGdldE5hbWUsZnVu
Y3Rpb24oYil7aWYodHJ1ZT09PWMuZGF0YShiLnRhcmdldCxhLndpZGdldE5hbWUrIi5wcmV2ZW50
Q2xpY2tFdmVudCIpKXtjLnJlbW92ZURhdGEoYi50YXJnZXQsYS53aWRnZXROYW1lKyIucHJldmVu
dENsaWNrRXZlbnQiKTtiLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3JldHVybiBmYWxzZX19
KTt0aGlzLnN0YXJ0ZWQ9ZmFsc2V9LF9tb3VzZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1l
bnQudW5iaW5kKCIuIit0aGlzLndpZGdldE5hbWUpfSxfbW91c2VEb3duOmZ1bmN0aW9uKGEpe2Eu
b3JpZ2luYWxFdmVudD0KK2Eub3JpZ2luYWxFdmVudHx8e307aWYoIWEub3JpZ2luYWxFdmVudC5t
b3VzZUhhbmRsZWQpe3RoaXMuX21vdXNlU3RhcnRlZCYmdGhpcy5fbW91c2VVcChhKTt0aGlzLl9t
b3VzZURvd25FdmVudD1hO3ZhciBiPXRoaXMsZT1hLndoaWNoPT0xLGY9dHlwZW9mIHRoaXMub3B0
aW9ucy5jYW5jZWw9PSJzdHJpbmciP2MoYS50YXJnZXQpLnBhcmVudHMoKS5hZGQoYS50YXJnZXQp
LmZpbHRlcih0aGlzLm9wdGlvbnMuY2FuY2VsKS5sZW5ndGg6ZmFsc2U7aWYoIWV8fGZ8fCF0aGlz
Ll9tb3VzZUNhcHR1cmUoYSkpcmV0dXJuIHRydWU7dGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9w
dGlvbnMuZGVsYXk7aWYoIXRoaXMubW91c2VEZWxheU1ldCl0aGlzLl9tb3VzZURlbGF5VGltZXI9
c2V0VGltZW91dChmdW5jdGlvbigpe2IubW91c2VEZWxheU1ldD10cnVlfSx0aGlzLm9wdGlvbnMu
ZGVsYXkpO2lmKHRoaXMuX21vdXNlRGlzdGFuY2VNZXQoYSkmJnRoaXMuX21vdXNlRGVsYXlNZXQo
YSkpe3RoaXMuX21vdXNlU3RhcnRlZD0KK3RoaXMuX21vdXNlU3RhcnQoYSkhPT1mYWxzZTtpZigh
dGhpcy5fbW91c2VTdGFydGVkKXthLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIHRydWV9fXRoaXMu
X21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKGQpe3JldHVybiBiLl9tb3VzZU1vdmUoZCl9O3Ro
aXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbihkKXtyZXR1cm4gYi5fbW91c2VVcChkKX07Yyhk
b2N1bWVudCkuYmluZCgibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92
ZURlbGVnYXRlKS5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBE
ZWxlZ2F0ZSk7YS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBhLm9yaWdpbmFsRXZlbnQubW91c2VI
YW5kbGVkPXRydWV9fSxfbW91c2VNb3ZlOmZ1bmN0aW9uKGEpe2lmKGMuYnJvd3Nlci5tc2llJiYh
KGRvY3VtZW50LmRvY3VtZW50TW9kZT49OSkmJiFhLmJ1dHRvbilyZXR1cm4gdGhpcy5fbW91c2VV
cChhKTtpZih0aGlzLl9tb3VzZVN0YXJ0ZWQpe3RoaXMuX21vdXNlRHJhZyhhKTsKK3JldHVybiBh
LnByZXZlbnREZWZhdWx0KCl9aWYodGhpcy5fbW91c2VEaXN0YW5jZU1ldChhKSYmdGhpcy5fbW91
c2VEZWxheU1ldChhKSkodGhpcy5fbW91c2VTdGFydGVkPXRoaXMuX21vdXNlU3RhcnQodGhpcy5f
bW91c2VEb3duRXZlbnQsYSkhPT1mYWxzZSk/dGhpcy5fbW91c2VEcmFnKGEpOnRoaXMuX21vdXNl
VXAoYSk7cmV0dXJuIXRoaXMuX21vdXNlU3RhcnRlZH0sX21vdXNlVXA6ZnVuY3Rpb24oYSl7Yyhk
b2N1bWVudCkudW5iaW5kKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VN
b3ZlRGVsZWdhdGUpLnVuYmluZCgibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3Vz
ZVVwRGVsZWdhdGUpO2lmKHRoaXMuX21vdXNlU3RhcnRlZCl7dGhpcy5fbW91c2VTdGFydGVkPWZh
bHNlO2EudGFyZ2V0PT10aGlzLl9tb3VzZURvd25FdmVudC50YXJnZXQmJmMuZGF0YShhLnRhcmdl
dCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIsCit0cnVlKTt0aGlzLl9tb3Vz
ZVN0b3AoYSl9cmV0dXJuIGZhbHNlfSxfbW91c2VEaXN0YW5jZU1ldDpmdW5jdGlvbihhKXtyZXR1
cm4gTWF0aC5tYXgoTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVgtYS5wYWdlWCks
TWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVktYS5wYWdlWSkpPj10aGlzLm9wdGlv
bnMuZGlzdGFuY2V9LF9tb3VzZURlbGF5TWV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW91c2VE
ZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXt9LF9tb3VzZURyYWc6ZnVuY3Rpb24oKXt9
LF9tb3VzZVN0b3A6ZnVuY3Rpb24oKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oKXtyZXR1cm4g
dHJ1ZX19KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBQb3NpdGlvbiAxLjguMTAKKyAq
CisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJv
dXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNl
bnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5q
cXVlcnkuY29tL1VJL1Bvc2l0aW9uCisgKi8KKyhmdW5jdGlvbihjKXtjLnVpPWMudWl8fHt9O3Zh
ciBuPS9sZWZ0fGNlbnRlcnxyaWdodC8sbz0vdG9wfGNlbnRlcnxib3R0b20vLHQ9Yy5mbi5wb3Np
dGlvbix1PWMuZm4ub2Zmc2V0O2MuZm4ucG9zaXRpb249ZnVuY3Rpb24oYil7aWYoIWJ8fCFiLm9m
KXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtiPWMuZXh0ZW5kKHt9LGIpO3ZhciBhPWMo
Yi5vZiksZD1hWzBdLGc9KGIuY29sbGlzaW9ufHwiZmxpcCIpLnNwbGl0KCIgIiksZT1iLm9mZnNl
dD9iLm9mZnNldC5zcGxpdCgiICIpOlswLDBdLGgsayxqO2lmKGQubm9kZVR5cGU9PT05KXtoPWEu
d2lkdGgoKTtrPWEuaGVpZ2h0KCk7aj17dG9wOjAsbGVmdDowfX1lbHNlIGlmKGQuc2V0VGltZW91
dCl7aD1hLndpZHRoKCk7az1hLmhlaWdodCgpO2o9e3RvcDphLnNjcm9sbFRvcCgpLGxlZnQ6YS5z
Y3JvbGxMZWZ0KCl9fWVsc2UgaWYoZC5wcmV2ZW50RGVmYXVsdCl7Yi5hdD0ibGVmdCB0b3AiO2g9
az0wO2o9e3RvcDpiLm9mLnBhZ2VZLAorbGVmdDpiLm9mLnBhZ2VYfX1lbHNle2g9YS5vdXRlcldp
ZHRoKCk7az1hLm91dGVySGVpZ2h0KCk7aj1hLm9mZnNldCgpfWMuZWFjaChbIm15IiwiYXQiXSxm
dW5jdGlvbigpe3ZhciBmPShiW3RoaXNdfHwiIikuc3BsaXQoIiAiKTtpZihmLmxlbmd0aD09PTEp
Zj1uLnRlc3QoZlswXSk/Zi5jb25jYXQoWyJjZW50ZXIiXSk6by50ZXN0KGZbMF0pP1siY2VudGVy
Il0uY29uY2F0KGYpOlsiY2VudGVyIiwiY2VudGVyIl07ZlswXT1uLnRlc3QoZlswXSk/ZlswXToi
Y2VudGVyIjtmWzFdPW8udGVzdChmWzFdKT9mWzFdOiJjZW50ZXIiO2JbdGhpc109Zn0pO2lmKGcu
bGVuZ3RoPT09MSlnWzFdPWdbMF07ZVswXT1wYXJzZUludChlWzBdLDEwKXx8MDtpZihlLmxlbmd0
aD09PTEpZVsxXT1lWzBdO2VbMV09cGFyc2VJbnQoZVsxXSwxMCl8fDA7aWYoYi5hdFswXT09PSJy
aWdodCIpai5sZWZ0Kz1oO2Vsc2UgaWYoYi5hdFswXT09PSJjZW50ZXIiKWoubGVmdCs9aC8yO2lm
KGIuYXRbMV09PT0iYm90dG9tIilqLnRvcCs9CitrO2Vsc2UgaWYoYi5hdFsxXT09PSJjZW50ZXIi
KWoudG9wKz1rLzI7ai5sZWZ0Kz1lWzBdO2oudG9wKz1lWzFdO3JldHVybiB0aGlzLmVhY2goZnVu
Y3Rpb24oKXt2YXIgZj1jKHRoaXMpLGw9Zi5vdXRlcldpZHRoKCksbT1mLm91dGVySGVpZ2h0KCks
cD1wYXJzZUludChjLmN1ckNTUyh0aGlzLCJtYXJnaW5MZWZ0Iix0cnVlKSl8fDAscT1wYXJzZUlu
dChjLmN1ckNTUyh0aGlzLCJtYXJnaW5Ub3AiLHRydWUpKXx8MCx2PWwrcCsocGFyc2VJbnQoYy5j
dXJDU1ModGhpcywibWFyZ2luUmlnaHQiLHRydWUpKXx8MCksdz1tK3ErKHBhcnNlSW50KGMuY3Vy
Q1NTKHRoaXMsIm1hcmdpbkJvdHRvbSIsdHJ1ZSkpfHwwKSxpPWMuZXh0ZW5kKHt9LGopLHI7aWYo
Yi5teVswXT09PSJyaWdodCIpaS5sZWZ0LT1sO2Vsc2UgaWYoYi5teVswXT09PSJjZW50ZXIiKWku
bGVmdC09bC8yO2lmKGIubXlbMV09PT0iYm90dG9tIilpLnRvcC09bTtlbHNlIGlmKGIubXlbMV09
PT0iY2VudGVyIilpLnRvcC09CittLzI7aS5sZWZ0PU1hdGgucm91bmQoaS5sZWZ0KTtpLnRvcD1N
YXRoLnJvdW5kKGkudG9wKTtyPXtsZWZ0OmkubGVmdC1wLHRvcDppLnRvcC1xfTtjLmVhY2goWyJs
ZWZ0IiwidG9wIl0sZnVuY3Rpb24ocyx4KXtjLnVpLnBvc2l0aW9uW2dbc11dJiZjLnVpLnBvc2l0
aW9uW2dbc11dW3hdKGkse3RhcmdldFdpZHRoOmgsdGFyZ2V0SGVpZ2h0OmssZWxlbVdpZHRoOmws
ZWxlbUhlaWdodDptLGNvbGxpc2lvblBvc2l0aW9uOnIsY29sbGlzaW9uV2lkdGg6dixjb2xsaXNp
b25IZWlnaHQ6dyxvZmZzZXQ6ZSxteTpiLm15LGF0OmIuYXR9KX0pO2MuZm4uYmdpZnJhbWUmJmYu
YmdpZnJhbWUoKTtmLm9mZnNldChjLmV4dGVuZChpLHt1c2luZzpiLnVzaW5nfSkpfSl9O2MudWku
cG9zaXRpb249e2ZpdDp7bGVmdDpmdW5jdGlvbihiLGEpe3ZhciBkPWMod2luZG93KTtkPWEuY29s
bGlzaW9uUG9zaXRpb24ubGVmdCthLmNvbGxpc2lvbldpZHRoLWQud2lkdGgoKS1kLnNjcm9sbExl
ZnQoKTtiLmxlZnQ9CitkPjA/Yi5sZWZ0LWQ6TWF0aC5tYXgoYi5sZWZ0LWEuY29sbGlzaW9uUG9z
aXRpb24ubGVmdCxiLmxlZnQpfSx0b3A6ZnVuY3Rpb24oYixhKXt2YXIgZD1jKHdpbmRvdyk7ZD1h
LmNvbGxpc2lvblBvc2l0aW9uLnRvcCthLmNvbGxpc2lvbkhlaWdodC1kLmhlaWdodCgpLWQuc2Ny
b2xsVG9wKCk7Yi50b3A9ZD4wP2IudG9wLWQ6TWF0aC5tYXgoYi50b3AtYS5jb2xsaXNpb25Qb3Np
dGlvbi50b3AsYi50b3ApfX0sZmxpcDp7bGVmdDpmdW5jdGlvbihiLGEpe2lmKGEuYXRbMF0hPT0i
Y2VudGVyIil7dmFyIGQ9Yyh3aW5kb3cpO2Q9YS5jb2xsaXNpb25Qb3NpdGlvbi5sZWZ0K2EuY29s
bGlzaW9uV2lkdGgtZC53aWR0aCgpLWQuc2Nyb2xsTGVmdCgpO3ZhciBnPWEubXlbMF09PT0ibGVm
dCI/LWEuZWxlbVdpZHRoOmEubXlbMF09PT0icmlnaHQiP2EuZWxlbVdpZHRoOjAsZT1hLmF0WzBd
PT09ImxlZnQiP2EudGFyZ2V0V2lkdGg6LWEudGFyZ2V0V2lkdGgsaD0tMiphLm9mZnNldFswXTti
LmxlZnQrPQorYS5jb2xsaXNpb25Qb3NpdGlvbi5sZWZ0PDA/ZytlK2g6ZD4wP2crZStoOjB9fSx0
b3A6ZnVuY3Rpb24oYixhKXtpZihhLmF0WzFdIT09ImNlbnRlciIpe3ZhciBkPWMod2luZG93KTtk
PWEuY29sbGlzaW9uUG9zaXRpb24udG9wK2EuY29sbGlzaW9uSGVpZ2h0LWQuaGVpZ2h0KCktZC5z
Y3JvbGxUb3AoKTt2YXIgZz1hLm15WzFdPT09InRvcCI/LWEuZWxlbUhlaWdodDphLm15WzFdPT09
ImJvdHRvbSI/YS5lbGVtSGVpZ2h0OjAsZT1hLmF0WzFdPT09InRvcCI/YS50YXJnZXRIZWlnaHQ6
LWEudGFyZ2V0SGVpZ2h0LGg9LTIqYS5vZmZzZXRbMV07Yi50b3ArPWEuY29sbGlzaW9uUG9zaXRp
b24udG9wPDA/ZytlK2g6ZD4wP2crZStoOjB9fX19O2lmKCFjLm9mZnNldC5zZXRPZmZzZXQpe2Mu
b2Zmc2V0LnNldE9mZnNldD1mdW5jdGlvbihiLGEpe2lmKC9zdGF0aWMvLnRlc3QoYy5jdXJDU1Mo
YiwicG9zaXRpb24iKSkpYi5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBkPWMoYiksCitn
PWQub2Zmc2V0KCksZT1wYXJzZUludChjLmN1ckNTUyhiLCJ0b3AiLHRydWUpLDEwKXx8MCxoPXBh
cnNlSW50KGMuY3VyQ1NTKGIsImxlZnQiLHRydWUpLDEwKXx8MDtnPXt0b3A6YS50b3AtZy50b3Ar
ZSxsZWZ0OmEubGVmdC1nLmxlZnQraH07InVzaW5nImluIGE/YS51c2luZy5jYWxsKGIsZyk6ZC5j
c3MoZyl9O2MuZm4ub2Zmc2V0PWZ1bmN0aW9uKGIpe3ZhciBhPXRoaXNbMF07aWYoIWF8fCFhLm93
bmVyRG9jdW1lbnQpcmV0dXJuIG51bGw7aWYoYilyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7
Yy5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsYil9KTtyZXR1cm4gdS5jYWxsKHRoaXMpfX19KShqUXVl
cnkpOworOy8qCisgKiBqUXVlcnkgVUkgRHJhZ2dhYmxlIDEuOC4xMAorICoKKyAqIENvcHlyaWdo
dCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwg
bGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0
cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkv
RHJhZ2dhYmxlcworICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkudWkuY29yZS5qcworICoJanF1
ZXJ5LnVpLm1vdXNlLmpzCisgKglqcXVlcnkudWkud2lkZ2V0LmpzCisgKi8KKyhmdW5jdGlvbihk
KXtkLndpZGdldCgidWkuZHJhZ2dhYmxlIixkLnVpLm1vdXNlLHt3aWRnZXRFdmVudFByZWZpeDoi
ZHJhZyIsb3B0aW9uczp7YWRkQ2xhc3Nlczp0cnVlLGFwcGVuZFRvOiJwYXJlbnQiLGF4aXM6ZmFs
c2UsY29ubmVjdFRvU29ydGFibGU6ZmFsc2UsY29udGFpbm1lbnQ6ZmFsc2UsY3Vyc29yOiJhdXRv
IixjdXJzb3JBdDpmYWxzZSxncmlkOmZhbHNlLGhhbmRsZTpmYWxzZSxoZWxwZXI6Im9yaWdpbmFs
IixpZnJhbWVGaXg6ZmFsc2Usb3BhY2l0eTpmYWxzZSxyZWZyZXNoUG9zaXRpb25zOmZhbHNlLHJl
dmVydDpmYWxzZSxyZXZlcnREdXJhdGlvbjo1MDAsc2NvcGU6ImRlZmF1bHQiLHNjcm9sbDp0cnVl
LHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNuYXA6ZmFsc2Usc25hcE1vZGU6
ImJvdGgiLHNuYXBUb2xlcmFuY2U6MjAsc3RhY2s6ZmFsc2UsekluZGV4OmZhbHNlfSxfY3JlYXRl
OmZ1bmN0aW9uKCl7aWYodGhpcy5vcHRpb25zLmhlbHBlcj09Cisib3JpZ2luYWwiJiYhL14oPzpy
fGF8ZikvLnRlc3QodGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSkpdGhpcy5lbGVtZW50WzBd
LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7dGhpcy5vcHRpb25zLmFkZENsYXNzZXMmJnRoaXMu
ZWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlIik7dGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0
aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZS1kaXNhYmxlZCIpO3RoaXMuX21vdXNl
SW5pdCgpfSxkZXN0cm95OmZ1bmN0aW9uKCl7aWYodGhpcy5lbGVtZW50LmRhdGEoImRyYWdnYWJs
ZSIpKXt0aGlzLmVsZW1lbnQucmVtb3ZlRGF0YSgiZHJhZ2dhYmxlIikudW5iaW5kKCIuZHJhZ2dh
YmxlIikucmVtb3ZlQ2xhc3MoInVpLWRyYWdnYWJsZSB1aS1kcmFnZ2FibGUtZHJhZ2dpbmcgdWkt
ZHJhZ2dhYmxlLWRpc2FibGVkIik7dGhpcy5fbW91c2VEZXN0cm95KCk7cmV0dXJuIHRoaXN9fSxf
bW91c2VDYXB0dXJlOmZ1bmN0aW9uKGEpe3ZhciBiPQordGhpcy5vcHRpb25zO2lmKHRoaXMuaGVs
cGVyfHxiLmRpc2FibGVkfHxkKGEudGFyZ2V0KS5pcygiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKSly
ZXR1cm4gZmFsc2U7dGhpcy5oYW5kbGU9dGhpcy5fZ2V0SGFuZGxlKGEpO2lmKCF0aGlzLmhhbmRs
ZSlyZXR1cm4gZmFsc2U7cmV0dXJuIHRydWV9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKGEpe3ZhciBi
PXRoaXMub3B0aW9uczt0aGlzLmhlbHBlcj10aGlzLl9jcmVhdGVIZWxwZXIoYSk7dGhpcy5fY2Fj
aGVIZWxwZXJQcm9wb3J0aW9ucygpO2lmKGQudWkuZGRtYW5hZ2VyKWQudWkuZGRtYW5hZ2VyLmN1
cnJlbnQ9dGhpczt0aGlzLl9jYWNoZU1hcmdpbnMoKTt0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVs
cGVyLmNzcygicG9zaXRpb24iKTt0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQ
YXJlbnQoKTt0aGlzLm9mZnNldD10aGlzLnBvc2l0aW9uQWJzPXRoaXMuZWxlbWVudC5vZmZzZXQo
KTt0aGlzLm9mZnNldD17dG9wOnRoaXMub2Zmc2V0LnRvcC0KK3RoaXMubWFyZ2lucy50b3AsbGVm
dDp0aGlzLm9mZnNldC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0fTtkLmV4dGVuZCh0aGlzLm9mZnNl
dCx7Y2xpY2s6e2xlZnQ6YS5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDphLnBhZ2VZLXRoaXMu
b2Zmc2V0LnRvcH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMu
X2dldFJlbGF0aXZlT2Zmc2V0KCl9KTt0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5wb3NpdGlv
bj10aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKGEpO3RoaXMub3JpZ2luYWxQYWdlWD1hLnBhZ2VYO3Ro
aXMub3JpZ2luYWxQYWdlWT1hLnBhZ2VZO2IuY3Vyc29yQXQmJnRoaXMuX2FkanVzdE9mZnNldEZy
b21IZWxwZXIoYi5jdXJzb3JBdCk7Yi5jb250YWlubWVudCYmdGhpcy5fc2V0Q29udGFpbm1lbnQo
KTtpZih0aGlzLl90cmlnZ2VyKCJzdGFydCIsYSk9PT1mYWxzZSl7dGhpcy5fY2xlYXIoKTtyZXR1
cm4gZmFsc2V9dGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpOworZC51aS5kZG1hbmFnZXIm
JiFiLmRyb3BCZWhhdmlvdXImJmQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsYSk7
dGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpO3RoaXMuX21vdXNl
RHJhZyhhLHRydWUpO3JldHVybiB0cnVlfSxfbW91c2VEcmFnOmZ1bmN0aW9uKGEsYil7dGhpcy5w
b3NpdGlvbj10aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKGEpO3RoaXMucG9zaXRpb25BYnM9dGhpcy5f
Y29udmVydFBvc2l0aW9uVG8oImFic29sdXRlIik7aWYoIWIpe2I9dGhpcy5fdWlIYXNoKCk7aWYo
dGhpcy5fdHJpZ2dlcigiZHJhZyIsYSxiKT09PWZhbHNlKXt0aGlzLl9tb3VzZVVwKHt9KTtyZXR1
cm4gZmFsc2V9dGhpcy5wb3NpdGlvbj1iLnBvc2l0aW9ufWlmKCF0aGlzLm9wdGlvbnMuYXhpc3x8
dGhpcy5vcHRpb25zLmF4aXMhPSJ5Iil0aGlzLmhlbHBlclswXS5zdHlsZS5sZWZ0PXRoaXMucG9z
aXRpb24ubGVmdCsicHgiO2lmKCF0aGlzLm9wdGlvbnMuYXhpc3x8Cit0aGlzLm9wdGlvbnMuYXhp
cyE9IngiKXRoaXMuaGVscGVyWzBdLnN0eWxlLnRvcD10aGlzLnBvc2l0aW9uLnRvcCsicHgiO2Qu
dWkuZGRtYW5hZ2VyJiZkLnVpLmRkbWFuYWdlci5kcmFnKHRoaXMsYSk7cmV0dXJuIGZhbHNlfSxf
bW91c2VTdG9wOmZ1bmN0aW9uKGEpe3ZhciBiPWZhbHNlO2lmKGQudWkuZGRtYW5hZ2VyJiYhdGhp
cy5vcHRpb25zLmRyb3BCZWhhdmlvdXIpYj1kLnVpLmRkbWFuYWdlci5kcm9wKHRoaXMsYSk7aWYo
dGhpcy5kcm9wcGVkKXtiPXRoaXMuZHJvcHBlZDt0aGlzLmRyb3BwZWQ9ZmFsc2V9aWYoKCF0aGlz
LmVsZW1lbnRbMF18fCF0aGlzLmVsZW1lbnRbMF0ucGFyZW50Tm9kZSkmJnRoaXMub3B0aW9ucy5o
ZWxwZXI9PSJvcmlnaW5hbCIpcmV0dXJuIGZhbHNlO2lmKHRoaXMub3B0aW9ucy5yZXZlcnQ9PSJp
bnZhbGlkIiYmIWJ8fHRoaXMub3B0aW9ucy5yZXZlcnQ9PSJ2YWxpZCImJmJ8fHRoaXMub3B0aW9u
cy5yZXZlcnQ9PT10cnVlfHxkLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLnJldmVydCkmJgordGhp
cy5vcHRpb25zLnJldmVydC5jYWxsKHRoaXMuZWxlbWVudCxiKSl7dmFyIGM9dGhpcztkKHRoaXMu
aGVscGVyKS5hbmltYXRlKHRoaXMub3JpZ2luYWxQb3NpdGlvbixwYXJzZUludCh0aGlzLm9wdGlv
bnMucmV2ZXJ0RHVyYXRpb24sMTApLGZ1bmN0aW9uKCl7Yy5fdHJpZ2dlcigic3RvcCIsYSkhPT1m
YWxzZSYmYy5fY2xlYXIoKX0pfWVsc2UgdGhpcy5fdHJpZ2dlcigic3RvcCIsYSkhPT1mYWxzZSYm
dGhpcy5fY2xlYXIoKTtyZXR1cm4gZmFsc2V9LGNhbmNlbDpmdW5jdGlvbigpe3RoaXMuaGVscGVy
LmlzKCIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIik/dGhpcy5fbW91c2VVcCh7fSk6dGhpcy5fY2xl
YXIoKTtyZXR1cm4gdGhpc30sX2dldEhhbmRsZTpmdW5jdGlvbihhKXt2YXIgYj0hdGhpcy5vcHRp
b25zLmhhbmRsZXx8IWQodGhpcy5vcHRpb25zLmhhbmRsZSx0aGlzLmVsZW1lbnQpLmxlbmd0aD90
cnVlOmZhbHNlO2QodGhpcy5vcHRpb25zLmhhbmRsZSx0aGlzLmVsZW1lbnQpLmZpbmQoIioiKS5h
bmRTZWxmKCkuZWFjaChmdW5jdGlvbigpe2lmKHRoaXM9PQorYS50YXJnZXQpYj10cnVlfSk7cmV0
dXJuIGJ9LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zO2E9ZC5p
c0Z1bmN0aW9uKGIuaGVscGVyKT9kKGIuaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbYV0p
KTpiLmhlbHBlcj09ImNsb25lIj90aGlzLmVsZW1lbnQuY2xvbmUoKTp0aGlzLmVsZW1lbnQ7YS5w
YXJlbnRzKCJib2R5IikubGVuZ3RofHxhLmFwcGVuZFRvKGIuYXBwZW5kVG89PSJwYXJlbnQiP3Ro
aXMuZWxlbWVudFswXS5wYXJlbnROb2RlOmIuYXBwZW5kVG8pO2FbMF0hPXRoaXMuZWxlbWVudFsw
XSYmIS8oZml4ZWR8YWJzb2x1dGUpLy50ZXN0KGEuY3NzKCJwb3NpdGlvbiIpKSYmYS5jc3MoInBv
c2l0aW9uIiwiYWJzb2x1dGUiKTtyZXR1cm4gYX0sX2FkanVzdE9mZnNldEZyb21IZWxwZXI6ZnVu
Y3Rpb24oYSl7aWYodHlwZW9mIGE9PSJzdHJpbmciKWE9YS5zcGxpdCgiICIpO2lmKGQuaXNBcnJh
eShhKSlhPXtsZWZ0OithWzBdLHRvcDorYVsxXXx8CiswfTtpZigibGVmdCJpbiBhKXRoaXMub2Zm
c2V0LmNsaWNrLmxlZnQ9YS5sZWZ0K3RoaXMubWFyZ2lucy5sZWZ0O2lmKCJyaWdodCJpbiBhKXRo
aXMub2Zmc2V0LmNsaWNrLmxlZnQ9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC1hLnJpZ2h0
K3RoaXMubWFyZ2lucy5sZWZ0O2lmKCJ0b3AiaW4gYSl0aGlzLm9mZnNldC5jbGljay50b3A9YS50
b3ArdGhpcy5tYXJnaW5zLnRvcDtpZigiYm90dG9tImluIGEpdGhpcy5vZmZzZXQuY2xpY2sudG9w
PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LWEuYm90dG9tK3RoaXMubWFyZ2lucy50b3B9
LF9nZXRQYXJlbnRPZmZzZXQ6ZnVuY3Rpb24oKXt0aGlzLm9mZnNldFBhcmVudD10aGlzLmhlbHBl
ci5vZmZzZXRQYXJlbnQoKTt2YXIgYT10aGlzLm9mZnNldFBhcmVudC5vZmZzZXQoKTtpZih0aGlz
LmNzc1Bvc2l0aW9uPT0iYWJzb2x1dGUiJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQm
JmQudWkuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sCit0aGlzLm9mZnNldFBhcmVudFsw
XSkpe2EubGVmdCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpO2EudG9wKz10aGlzLnNj
cm9sbFBhcmVudC5zY3JvbGxUb3AoKX1pZih0aGlzLm9mZnNldFBhcmVudFswXT09ZG9jdW1lbnQu
Ym9keXx8dGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFtZSYmdGhpcy5vZmZzZXRQYXJlbnRbMF0u
dGFnTmFtZS50b0xvd2VyQ2FzZSgpPT0iaHRtbCImJmQuYnJvd3Nlci5tc2llKWE9e3RvcDowLGxl
ZnQ6MH07cmV0dXJue3RvcDphLnRvcCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJi
b3JkZXJUb3BXaWR0aCIpLDEwKXx8MCksbGVmdDphLmxlZnQrKHBhcnNlSW50KHRoaXMub2Zmc2V0
UGFyZW50LmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKX19LF9nZXRSZWxhdGl2ZU9mZnNl
dDpmdW5jdGlvbigpe2lmKHRoaXMuY3NzUG9zaXRpb249PSJyZWxhdGl2ZSIpe3ZhciBhPXRoaXMu
ZWxlbWVudC5wb3NpdGlvbigpO3JldHVybnt0b3A6YS50b3AtCisocGFyc2VJbnQodGhpcy5oZWxw
ZXIuY3NzKCJ0b3AiKSwxMCl8fDApK3RoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpLGxlZnQ6
YS5sZWZ0LShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSwxMCl8fDApK3RoaXMuc2Ny
b2xsUGFyZW50LnNjcm9sbExlZnQoKX19ZWxzZSByZXR1cm57dG9wOjAsbGVmdDowfX0sX2NhY2hl
TWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmVsZW1l
bnQuY3NzKCJtYXJnaW5MZWZ0IiksMTApfHwwLHRvcDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3Nz
KCJtYXJnaW5Ub3AiKSwxMCl8fDB9fSxfY2FjaGVIZWxwZXJQcm9wb3J0aW9uczpmdW5jdGlvbigp
e3RoaXMuaGVscGVyUHJvcG9ydGlvbnM9e3dpZHRoOnRoaXMuaGVscGVyLm91dGVyV2lkdGgoKSxo
ZWlnaHQ6dGhpcy5oZWxwZXIub3V0ZXJIZWlnaHQoKX19LF9zZXRDb250YWlubWVudDpmdW5jdGlv
bigpe3ZhciBhPXRoaXMub3B0aW9ucztpZihhLmNvbnRhaW5tZW50PT0KKyJwYXJlbnQiKWEuY29u
dGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZTtpZihhLmNvbnRhaW5tZW50PT0iZG9j
dW1lbnQifHxhLmNvbnRhaW5tZW50PT0id2luZG93Iil0aGlzLmNvbnRhaW5tZW50PVsoYS5jb250
YWlubWVudD09ImRvY3VtZW50Ij8wOmQod2luZG93KS5zY3JvbGxMZWZ0KCkpLXRoaXMub2Zmc2V0
LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsKGEuY29udGFpbm1lbnQ9PSJk
b2N1bWVudCI/MDpkKHdpbmRvdykuc2Nyb2xsVG9wKCkpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRv
cC10aGlzLm9mZnNldC5wYXJlbnQudG9wLChhLmNvbnRhaW5tZW50PT0iZG9jdW1lbnQiPzA6ZCh3
aW5kb3cpLnNjcm9sbExlZnQoKSkrZChhLmNvbnRhaW5tZW50PT0iZG9jdW1lbnQiP2RvY3VtZW50
OndpbmRvdykud2lkdGgoKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lu
cy5sZWZ0LChhLmNvbnRhaW5tZW50PT0iZG9jdW1lbnQiPworMDpkKHdpbmRvdykuc2Nyb2xsVG9w
KCkpKyhkKGEuY29udGFpbm1lbnQ9PSJkb2N1bWVudCI/ZG9jdW1lbnQ6d2luZG93KS5oZWlnaHQo
KXx8ZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCktdGhpcy5oZWxwZXJQcm9w
b3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcF07aWYoIS9eKGRvY3VtZW50fHdpbmRvd3xw
YXJlbnQpJC8udGVzdChhLmNvbnRhaW5tZW50KSYmYS5jb250YWlubWVudC5jb25zdHJ1Y3RvciE9
QXJyYXkpe3ZhciBiPWQoYS5jb250YWlubWVudClbMF07aWYoYil7YT1kKGEuY29udGFpbm1lbnQp
Lm9mZnNldCgpO3ZhciBjPWQoYikuY3NzKCJvdmVyZmxvdyIpIT0iaGlkZGVuIjt0aGlzLmNvbnRh
aW5tZW50PVthLmxlZnQrKHBhcnNlSW50KGQoYikuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8
fDApKyhwYXJzZUludChkKGIpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLXRoaXMubWFyZ2lu
cy5sZWZ0LGEudG9wKyhwYXJzZUludChkKGIpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwKKzEwKXx8
MCkrKHBhcnNlSW50KGQoYikuY3NzKCJwYWRkaW5nVG9wIiksMTApfHwwKS10aGlzLm1hcmdpbnMu
dG9wLGEubGVmdCsoYz9NYXRoLm1heChiLnNjcm9sbFdpZHRoLGIub2Zmc2V0V2lkdGgpOmIub2Zm
c2V0V2lkdGgpLShwYXJzZUludChkKGIpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKS0o
cGFyc2VJbnQoZChiKS5jc3MoInBhZGRpbmdSaWdodCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9w
b3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCxhLnRvcCsoYz9NYXRoLm1heChiLnNjcm9s
bEhlaWdodCxiLm9mZnNldEhlaWdodCk6Yi5vZmZzZXRIZWlnaHQpLShwYXJzZUludChkKGIpLmNz
cygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChkKGIpLmNzcygicGFkZGluZ0Jv
dHRvbSIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5z
LnRvcF19fWVsc2UgaWYoYS5jb250YWlubWVudC5jb25zdHJ1Y3Rvcj09CitBcnJheSl0aGlzLmNv
bnRhaW5tZW50PWEuY29udGFpbm1lbnR9LF9jb252ZXJ0UG9zaXRpb25UbzpmdW5jdGlvbihhLGIp
e2lmKCFiKWI9dGhpcy5wb3NpdGlvbjthPWE9PSJhYnNvbHV0ZSI/MTotMTt2YXIgYz10aGlzLmNz
c1Bvc2l0aW9uPT0iYWJzb2x1dGUiJiYhKHRoaXMuc2Nyb2xsUGFyZW50WzBdIT1kb2N1bWVudCYm
ZC51aS5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSkp
P3RoaXMub2Zmc2V0UGFyZW50OnRoaXMuc2Nyb2xsUGFyZW50LGY9LyhodG1sfGJvZHkpL2kudGVz
dChjWzBdLnRhZ05hbWUpO3JldHVybnt0b3A6Yi50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9w
KmErdGhpcy5vZmZzZXQucGFyZW50LnRvcCphLShkLmJyb3dzZXIuc2FmYXJpJiZkLmJyb3dzZXIu
dmVyc2lvbjw1MjYmJnRoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/MDoodGhpcy5jc3NQb3NpdGlv
bj09ImZpeGVkIj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk6CitmPzA6Yy5zY3JvbGxU
b3AoKSkqYSksbGVmdDpiLmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCphK3RoaXMub2Zm
c2V0LnBhcmVudC5sZWZ0KmEtKGQuYnJvd3Nlci5zYWZhcmkmJmQuYnJvd3Nlci52ZXJzaW9uPDUy
NiYmdGhpcy5jc3NQb3NpdGlvbj09ImZpeGVkIj8wOih0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQi
Py10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6Zj8wOmMuc2Nyb2xsTGVmdCgpKSphKX19
LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9ucyxjPXRoaXMu
Y3NzUG9zaXRpb249PSJhYnNvbHV0ZSImJiEodGhpcy5zY3JvbGxQYXJlbnRbMF0hPWRvY3VtZW50
JiZkLnVpLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBd
KSk/dGhpcy5vZmZzZXRQYXJlbnQ6dGhpcy5zY3JvbGxQYXJlbnQsZj0vKGh0bWx8Ym9keSkvaS50
ZXN0KGNbMF0udGFnTmFtZSksZT1hLnBhZ2VYLGc9YS5wYWdlWTsKK2lmKHRoaXMub3JpZ2luYWxQ
b3NpdGlvbil7aWYodGhpcy5jb250YWlubWVudCl7aWYoYS5wYWdlWC10aGlzLm9mZnNldC5jbGlj
ay5sZWZ0PHRoaXMuY29udGFpbm1lbnRbMF0pZT10aGlzLmNvbnRhaW5tZW50WzBdK3RoaXMub2Zm
c2V0LmNsaWNrLmxlZnQ7aWYoYS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A8dGhpcy5jb250
YWlubWVudFsxXSlnPXRoaXMuY29udGFpbm1lbnRbMV0rdGhpcy5vZmZzZXQuY2xpY2sudG9wO2lm
KGEucGFnZVgtdGhpcy5vZmZzZXQuY2xpY2subGVmdD50aGlzLmNvbnRhaW5tZW50WzJdKWU9dGhp
cy5jb250YWlubWVudFsyXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0O2lmKGEucGFnZVktdGhpcy5v
ZmZzZXQuY2xpY2sudG9wPnRoaXMuY29udGFpbm1lbnRbM10pZz10aGlzLmNvbnRhaW5tZW50WzNd
K3RoaXMub2Zmc2V0LmNsaWNrLnRvcH1pZihiLmdyaWQpe2c9dGhpcy5vcmlnaW5hbFBhZ2VZK01h
dGgucm91bmQoKGctdGhpcy5vcmlnaW5hbFBhZ2VZKS8KK2IuZ3JpZFsxXSkqYi5ncmlkWzFdO2c9
dGhpcy5jb250YWlubWVudD8hKGctdGhpcy5vZmZzZXQuY2xpY2sudG9wPHRoaXMuY29udGFpbm1l
bnRbMV18fGctdGhpcy5vZmZzZXQuY2xpY2sudG9wPnRoaXMuY29udGFpbm1lbnRbM10pP2c6IShn
LXRoaXMub2Zmc2V0LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdKT9nLWIuZ3JpZFsxXTpn
K2IuZ3JpZFsxXTpnO2U9dGhpcy5vcmlnaW5hbFBhZ2VYK01hdGgucm91bmQoKGUtdGhpcy5vcmln
aW5hbFBhZ2VYKS9iLmdyaWRbMF0pKmIuZ3JpZFswXTtlPXRoaXMuY29udGFpbm1lbnQ/IShlLXRo
aXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXXx8ZS10aGlzLm9mZnNldC5j
bGljay5sZWZ0PnRoaXMuY29udGFpbm1lbnRbMl0pP2U6IShlLXRoaXMub2Zmc2V0LmNsaWNrLmxl
ZnQ8dGhpcy5jb250YWlubWVudFswXSk/ZS1iLmdyaWRbMF06ZStiLmdyaWRbMF06ZX19cmV0dXJu
e3RvcDpnLXRoaXMub2Zmc2V0LmNsaWNrLnRvcC0KK3RoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10
aGlzLm9mZnNldC5wYXJlbnQudG9wKyhkLmJyb3dzZXIuc2FmYXJpJiZkLmJyb3dzZXIudmVyc2lv
bjw1MjYmJnRoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/MDp0aGlzLmNzc1Bvc2l0aW9uPT0iZml4
ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTpmPzA6Yy5zY3JvbGxUb3AoKSksbGVm
dDplLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQtdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlz
Lm9mZnNldC5wYXJlbnQubGVmdCsoZC5icm93c2VyLnNhZmFyaSYmZC5icm93c2VyLnZlcnNpb248
NTI2JiZ0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPzA6dGhpcy5jc3NQb3NpdGlvbj09ImZpeGVk
Ij8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOmY/MDpjLnNjcm9sbExlZnQoKSl9fSxf
Y2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmhlbHBlci5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlLWRy
YWdnaW5nIik7dGhpcy5oZWxwZXJbMF0hPQordGhpcy5lbGVtZW50WzBdJiYhdGhpcy5jYW5jZWxI
ZWxwZXJSZW1vdmFsJiZ0aGlzLmhlbHBlci5yZW1vdmUoKTt0aGlzLmhlbHBlcj1udWxsO3RoaXMu
Y2FuY2VsSGVscGVyUmVtb3ZhbD1mYWxzZX0sX3RyaWdnZXI6ZnVuY3Rpb24oYSxiLGMpe2M9Y3x8
dGhpcy5fdWlIYXNoKCk7ZC51aS5wbHVnaW4uY2FsbCh0aGlzLGEsW2IsY10pO2lmKGE9PSJkcmFn
Iil0aGlzLnBvc2l0aW9uQWJzPXRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCJhYnNvbHV0ZSIpO3Jl
dHVybiBkLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCh0aGlzLGEsYixjKX0scGx1Z2lu
czp7fSxfdWlIYXNoOmZ1bmN0aW9uKCl7cmV0dXJue2hlbHBlcjp0aGlzLmhlbHBlcixwb3NpdGlv
bjp0aGlzLnBvc2l0aW9uLG9yaWdpbmFsUG9zaXRpb246dGhpcy5vcmlnaW5hbFBvc2l0aW9uLG9m
ZnNldDp0aGlzLnBvc2l0aW9uQWJzfX19KTtkLmV4dGVuZChkLnVpLmRyYWdnYWJsZSx7dmVyc2lv
bjoiMS44LjEwIn0pOworZC51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJjb25uZWN0VG9Tb3J0
YWJsZSIse3N0YXJ0OmZ1bmN0aW9uKGEsYil7dmFyIGM9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUi
KSxmPWMub3B0aW9ucyxlPWQuZXh0ZW5kKHt9LGIse2l0ZW06Yy5lbGVtZW50fSk7Yy5zb3J0YWJs
ZXM9W107ZChmLmNvbm5lY3RUb1NvcnRhYmxlKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9ZC5kYXRh
KHRoaXMsInNvcnRhYmxlIik7aWYoZyYmIWcub3B0aW9ucy5kaXNhYmxlZCl7Yy5zb3J0YWJsZXMu
cHVzaCh7aW5zdGFuY2U6ZyxzaG91bGRSZXZlcnQ6Zy5vcHRpb25zLnJldmVydH0pO2cuX3JlZnJl
c2hJdGVtcygpO2cuX3RyaWdnZXIoImFjdGl2YXRlIixhLGUpfX0pfSxzdG9wOmZ1bmN0aW9uKGEs
Yil7dmFyIGM9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKSxmPWQuZXh0ZW5kKHt9LGIse2l0ZW06
Yy5lbGVtZW50fSk7ZC5lYWNoKGMuc29ydGFibGVzLGZ1bmN0aW9uKCl7aWYodGhpcy5pbnN0YW5j
ZS5pc092ZXIpe3RoaXMuaW5zdGFuY2UuaXNPdmVyPQorMDtjLmNhbmNlbEhlbHBlclJlbW92YWw9
dHJ1ZTt0aGlzLmluc3RhbmNlLmNhbmNlbEhlbHBlclJlbW92YWw9ZmFsc2U7aWYodGhpcy5zaG91
bGRSZXZlcnQpdGhpcy5pbnN0YW5jZS5vcHRpb25zLnJldmVydD10cnVlO3RoaXMuaW5zdGFuY2Uu
X21vdXNlU3RvcChhKTt0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGVscGVyPXRoaXMuaW5zdGFuY2Uu
b3B0aW9ucy5faGVscGVyO2Mub3B0aW9ucy5oZWxwZXI9PSJvcmlnaW5hbCImJnRoaXMuaW5zdGFu
Y2UuY3VycmVudEl0ZW0uY3NzKHt0b3A6ImF1dG8iLGxlZnQ6ImF1dG8ifSl9ZWxzZXt0aGlzLmlu
c3RhbmNlLmNhbmNlbEhlbHBlclJlbW92YWw9ZmFsc2U7dGhpcy5pbnN0YW5jZS5fdHJpZ2dlcigi
ZGVhY3RpdmF0ZSIsYSxmKX19KX0sZHJhZzpmdW5jdGlvbihhLGIpe3ZhciBjPWQodGhpcykuZGF0
YSgiZHJhZ2dhYmxlIiksZj10aGlzO2QuZWFjaChjLnNvcnRhYmxlcyxmdW5jdGlvbigpe3RoaXMu
aW5zdGFuY2UucG9zaXRpb25BYnM9CitjLnBvc2l0aW9uQWJzO3RoaXMuaW5zdGFuY2UuaGVscGVy
UHJvcG9ydGlvbnM9Yy5oZWxwZXJQcm9wb3J0aW9uczt0aGlzLmluc3RhbmNlLm9mZnNldC5jbGlj
az1jLm9mZnNldC5jbGljaztpZih0aGlzLmluc3RhbmNlLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmlu
c3RhbmNlLmNvbnRhaW5lckNhY2hlKSl7aWYoIXRoaXMuaW5zdGFuY2UuaXNPdmVyKXt0aGlzLmlu
c3RhbmNlLmlzT3Zlcj0xO3RoaXMuaW5zdGFuY2UuY3VycmVudEl0ZW09ZChmKS5jbG9uZSgpLmFw
cGVuZFRvKHRoaXMuaW5zdGFuY2UuZWxlbWVudCkuZGF0YSgic29ydGFibGUtaXRlbSIsdHJ1ZSk7
dGhpcy5pbnN0YW5jZS5vcHRpb25zLl9oZWxwZXI9dGhpcy5pbnN0YW5jZS5vcHRpb25zLmhlbHBl
cjt0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGVscGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGIuaGVscGVy
WzBdfTthLnRhcmdldD10aGlzLmluc3RhbmNlLmN1cnJlbnRJdGVtWzBdO3RoaXMuaW5zdGFuY2Uu
X21vdXNlQ2FwdHVyZShhLAordHJ1ZSk7dGhpcy5pbnN0YW5jZS5fbW91c2VTdGFydChhLHRydWUs
dHJ1ZSk7dGhpcy5pbnN0YW5jZS5vZmZzZXQuY2xpY2sudG9wPWMub2Zmc2V0LmNsaWNrLnRvcDt0
aGlzLmluc3RhbmNlLm9mZnNldC5jbGljay5sZWZ0PWMub2Zmc2V0LmNsaWNrLmxlZnQ7dGhpcy5p
bnN0YW5jZS5vZmZzZXQucGFyZW50LmxlZnQtPWMub2Zmc2V0LnBhcmVudC5sZWZ0LXRoaXMuaW5z
dGFuY2Uub2Zmc2V0LnBhcmVudC5sZWZ0O3RoaXMuaW5zdGFuY2Uub2Zmc2V0LnBhcmVudC50b3At
PWMub2Zmc2V0LnBhcmVudC50b3AtdGhpcy5pbnN0YW5jZS5vZmZzZXQucGFyZW50LnRvcDtjLl90
cmlnZ2VyKCJ0b1NvcnRhYmxlIixhKTtjLmRyb3BwZWQ9dGhpcy5pbnN0YW5jZS5lbGVtZW50O2Mu
Y3VycmVudEl0ZW09Yy5lbGVtZW50O3RoaXMuaW5zdGFuY2UuZnJvbU91dHNpZGU9Y310aGlzLmlu
c3RhbmNlLmN1cnJlbnRJdGVtJiZ0aGlzLmluc3RhbmNlLl9tb3VzZURyYWcoYSl9ZWxzZSBpZih0
aGlzLmluc3RhbmNlLmlzT3Zlcil7dGhpcy5pbnN0YW5jZS5pc092ZXI9CiswO3RoaXMuaW5zdGFu
Y2UuY2FuY2VsSGVscGVyUmVtb3ZhbD10cnVlO3RoaXMuaW5zdGFuY2Uub3B0aW9ucy5yZXZlcnQ9
ZmFsc2U7dGhpcy5pbnN0YW5jZS5fdHJpZ2dlcigib3V0IixhLHRoaXMuaW5zdGFuY2UuX3VpSGFz
aCh0aGlzLmluc3RhbmNlKSk7dGhpcy5pbnN0YW5jZS5fbW91c2VTdG9wKGEsdHJ1ZSk7dGhpcy5p
bnN0YW5jZS5vcHRpb25zLmhlbHBlcj10aGlzLmluc3RhbmNlLm9wdGlvbnMuX2hlbHBlcjt0aGlz
Lmluc3RhbmNlLmN1cnJlbnRJdGVtLnJlbW92ZSgpO3RoaXMuaW5zdGFuY2UucGxhY2Vob2xkZXIm
JnRoaXMuaW5zdGFuY2UucGxhY2Vob2xkZXIucmVtb3ZlKCk7Yy5fdHJpZ2dlcigiZnJvbVNvcnRh
YmxlIixhKTtjLmRyb3BwZWQ9ZmFsc2V9fSl9fSk7ZC51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUi
LCJjdXJzb3IiLHtzdGFydDpmdW5jdGlvbigpe3ZhciBhPWQoImJvZHkiKSxiPWQodGhpcykuZGF0
YSgiZHJhZ2dhYmxlIikub3B0aW9ucztpZihhLmNzcygiY3Vyc29yIikpYi5fY3Vyc29yPQorYS5j
c3MoImN1cnNvciIpO2EuY3NzKCJjdXJzb3IiLGIuY3Vyc29yKX0sc3RvcDpmdW5jdGlvbigpe3Zh
ciBhPWQodGhpcykuZGF0YSgiZHJhZ2dhYmxlIikub3B0aW9uczthLl9jdXJzb3ImJmQoImJvZHki
KS5jc3MoImN1cnNvciIsYS5fY3Vyc29yKX19KTtkLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIs
ImlmcmFtZUZpeCIse3N0YXJ0OmZ1bmN0aW9uKCl7dmFyIGE9ZCh0aGlzKS5kYXRhKCJkcmFnZ2Fi
bGUiKS5vcHRpb25zO2QoYS5pZnJhbWVGaXg9PT10cnVlPyJpZnJhbWUiOmEuaWZyYW1lRml4KS5l
YWNoKGZ1bmN0aW9uKCl7ZCgnPGRpdiBjbGFzcz0idWktZHJhZ2dhYmxlLWlmcmFtZUZpeCIgc3R5
bGU9ImJhY2tncm91bmQ6ICNmZmY7Ij48L2Rpdj4nKS5jc3Moe3dpZHRoOnRoaXMub2Zmc2V0V2lk
dGgrInB4IixoZWlnaHQ6dGhpcy5vZmZzZXRIZWlnaHQrInB4Iixwb3NpdGlvbjoiYWJzb2x1dGUi
LG9wYWNpdHk6IjAuMDAxIix6SW5kZXg6MUUzfSkuY3NzKGQodGhpcykub2Zmc2V0KCkpLmFwcGVu
ZFRvKCJib2R5Iil9KX0sCitzdG9wOmZ1bmN0aW9uKCl7ZCgiZGl2LnVpLWRyYWdnYWJsZS1pZnJh
bWVGaXgiKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMp
fSl9fSk7ZC51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJvcGFjaXR5Iix7c3RhcnQ6ZnVuY3Rp
b24oYSxiKXthPWQoYi5oZWxwZXIpO2I9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25z
O2lmKGEuY3NzKCJvcGFjaXR5IikpYi5fb3BhY2l0eT1hLmNzcygib3BhY2l0eSIpO2EuY3NzKCJv
cGFjaXR5IixiLm9wYWNpdHkpfSxzdG9wOmZ1bmN0aW9uKGEsYil7YT1kKHRoaXMpLmRhdGEoImRy
YWdnYWJsZSIpLm9wdGlvbnM7YS5fb3BhY2l0eSYmZChiLmhlbHBlcikuY3NzKCJvcGFjaXR5Iixh
Ll9vcGFjaXR5KX19KTtkLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInNjcm9sbCIse3N0YXJ0
OmZ1bmN0aW9uKCl7dmFyIGE9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKTtpZihhLnNjcm9sbFBh
cmVudFswXSE9Citkb2N1bWVudCYmYS5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSE9IkhUTUwiKWEu
b3ZlcmZsb3dPZmZzZXQ9YS5zY3JvbGxQYXJlbnQub2Zmc2V0KCl9LGRyYWc6ZnVuY3Rpb24oYSl7
dmFyIGI9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKSxjPWIub3B0aW9ucyxmPWZhbHNlO2lmKGIu
c2Nyb2xsUGFyZW50WzBdIT1kb2N1bWVudCYmYi5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSE9IkhU
TUwiKXtpZighYy5heGlzfHxjLmF4aXMhPSJ4IilpZihiLm92ZXJmbG93T2Zmc2V0LnRvcCtiLnNj
cm9sbFBhcmVudFswXS5vZmZzZXRIZWlnaHQtYS5wYWdlWTxjLnNjcm9sbFNlbnNpdGl2aXR5KWIu
c2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcD1mPWIuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcCtj
LnNjcm9sbFNwZWVkO2Vsc2UgaWYoYS5wYWdlWS1iLm92ZXJmbG93T2Zmc2V0LnRvcDxjLnNjcm9s
bFNlbnNpdGl2aXR5KWIuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcD1mPWIuc2Nyb2xsUGFyZW50
WzBdLnNjcm9sbFRvcC0KK2Muc2Nyb2xsU3BlZWQ7aWYoIWMuYXhpc3x8Yy5heGlzIT0ieSIpaWYo
Yi5vdmVyZmxvd09mZnNldC5sZWZ0K2Iuc2Nyb2xsUGFyZW50WzBdLm9mZnNldFdpZHRoLWEucGFn
ZVg8Yy5zY3JvbGxTZW5zaXRpdml0eSliLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0PWY9Yi5z
Y3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdCtjLnNjcm9sbFNwZWVkO2Vsc2UgaWYoYS5wYWdlWC1i
Lm92ZXJmbG93T2Zmc2V0LmxlZnQ8Yy5zY3JvbGxTZW5zaXRpdml0eSliLnNjcm9sbFBhcmVudFsw
XS5zY3JvbGxMZWZ0PWY9Yi5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdC1jLnNjcm9sbFNwZWVk
fWVsc2V7aWYoIWMuYXhpc3x8Yy5heGlzIT0ieCIpaWYoYS5wYWdlWS1kKGRvY3VtZW50KS5zY3Jv
bGxUb3AoKTxjLnNjcm9sbFNlbnNpdGl2aXR5KWY9ZChkb2N1bWVudCkuc2Nyb2xsVG9wKGQoZG9j
dW1lbnQpLnNjcm9sbFRvcCgpLWMuc2Nyb2xsU3BlZWQpO2Vsc2UgaWYoZCh3aW5kb3cpLmhlaWdo
dCgpLQorKGEucGFnZVktZChkb2N1bWVudCkuc2Nyb2xsVG9wKCkpPGMuc2Nyb2xsU2Vuc2l0aXZp
dHkpZj1kKGRvY3VtZW50KS5zY3JvbGxUb3AoZChkb2N1bWVudCkuc2Nyb2xsVG9wKCkrYy5zY3Jv
bGxTcGVlZCk7aWYoIWMuYXhpc3x8Yy5heGlzIT0ieSIpaWYoYS5wYWdlWC1kKGRvY3VtZW50KS5z
Y3JvbGxMZWZ0KCk8Yy5zY3JvbGxTZW5zaXRpdml0eSlmPWQoZG9jdW1lbnQpLnNjcm9sbExlZnQo
ZChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpLWMuc2Nyb2xsU3BlZWQpO2Vsc2UgaWYoZCh3aW5kb3cp
LndpZHRoKCktKGEucGFnZVgtZChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpKTxjLnNjcm9sbFNlbnNp
dGl2aXR5KWY9ZChkb2N1bWVudCkuc2Nyb2xsTGVmdChkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkr
Yy5zY3JvbGxTcGVlZCl9ZiE9PWZhbHNlJiZkLnVpLmRkbWFuYWdlciYmIWMuZHJvcEJlaGF2aW91
ciYmZC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoYixhKX19KTtkLnVpLnBsdWdpbi5hZGQo
ImRyYWdnYWJsZSIsCisic25hcCIse3N0YXJ0OmZ1bmN0aW9uKCl7dmFyIGE9ZCh0aGlzKS5kYXRh
KCJkcmFnZ2FibGUiKSxiPWEub3B0aW9uczthLnNuYXBFbGVtZW50cz1bXTtkKGIuc25hcC5jb25z
dHJ1Y3RvciE9U3RyaW5nP2Iuc25hcC5pdGVtc3x8IjpkYXRhKGRyYWdnYWJsZSkiOmIuc25hcCku
ZWFjaChmdW5jdGlvbigpe3ZhciBjPWQodGhpcyksZj1jLm9mZnNldCgpO3RoaXMhPWEuZWxlbWVu
dFswXSYmYS5zbmFwRWxlbWVudHMucHVzaCh7aXRlbTp0aGlzLHdpZHRoOmMub3V0ZXJXaWR0aCgp
LGhlaWdodDpjLm91dGVySGVpZ2h0KCksdG9wOmYudG9wLGxlZnQ6Zi5sZWZ0fSl9KX0sZHJhZzpm
dW5jdGlvbihhLGIpe2Zvcih2YXIgYz1kKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLGY9Yy5vcHRp
b25zLGU9Zi5zbmFwVG9sZXJhbmNlLGc9Yi5vZmZzZXQubGVmdCxuPWcrYy5oZWxwZXJQcm9wb3J0
aW9ucy53aWR0aCxtPWIub2Zmc2V0LnRvcCxvPW0rYy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQs
aD0KK2Muc25hcEVsZW1lbnRzLmxlbmd0aC0xO2g+PTA7aC0tKXt2YXIgaT1jLnNuYXBFbGVtZW50
c1toXS5sZWZ0LGs9aStjLnNuYXBFbGVtZW50c1toXS53aWR0aCxqPWMuc25hcEVsZW1lbnRzW2hd
LnRvcCxsPWorYy5zbmFwRWxlbWVudHNbaF0uaGVpZ2h0O2lmKGktZTxnJiZnPGsrZSYmai1lPG0m
Jm08bCtlfHxpLWU8ZyYmZzxrK2UmJmotZTxvJiZvPGwrZXx8aS1lPG4mJm48aytlJiZqLWU8bSYm
bTxsK2V8fGktZTxuJiZuPGsrZSYmai1lPG8mJm88bCtlKXtpZihmLnNuYXBNb2RlIT0iaW5uZXIi
KXt2YXIgcD1NYXRoLmFicyhqLW8pPD1lLHE9TWF0aC5hYnMobC1tKTw9ZSxyPU1hdGguYWJzKGkt
bik8PWUscz1NYXRoLmFicyhrLWcpPD1lO2lmKHApYi5wb3NpdGlvbi50b3A9Yy5fY29udmVydFBv
c2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOmotYy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbGVm
dDowfSkudG9wLWMubWFyZ2lucy50b3A7aWYocSliLnBvc2l0aW9uLnRvcD1jLl9jb252ZXJ0UG9z
aXRpb25UbygicmVsYXRpdmUiLAore3RvcDpsLGxlZnQ6MH0pLnRvcC1jLm1hcmdpbnMudG9wO2lm
KHIpYi5wb3NpdGlvbi5sZWZ0PWMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDow
LGxlZnQ6aS1jLmhlbHBlclByb3BvcnRpb25zLndpZHRofSkubGVmdC1jLm1hcmdpbnMubGVmdDtp
ZihzKWIucG9zaXRpb24ubGVmdD1jLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6
MCxsZWZ0Omt9KS5sZWZ0LWMubWFyZ2lucy5sZWZ0fXZhciB0PXB8fHF8fHJ8fHM7aWYoZi5zbmFw
TW9kZSE9Im91dGVyIil7cD1NYXRoLmFicyhqLW0pPD1lO3E9TWF0aC5hYnMobC1vKTw9ZTtyPU1h
dGguYWJzKGktZyk8PWU7cz1NYXRoLmFicyhrLW4pPD1lO2lmKHApYi5wb3NpdGlvbi50b3A9Yy5f
Y29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOmosbGVmdDowfSkudG9wLWMubWFyZ2lu
cy50b3A7aWYocSliLnBvc2l0aW9uLnRvcD1jLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUi
LHt0b3A6bC1jLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCwKK2xlZnQ6MH0pLnRvcC1jLm1hcmdp
bnMudG9wO2lmKHIpYi5wb3NpdGlvbi5sZWZ0PWMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2
ZSIse3RvcDowLGxlZnQ6aX0pLmxlZnQtYy5tYXJnaW5zLmxlZnQ7aWYocyliLnBvc2l0aW9uLmxl
ZnQ9Yy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDprLWMuaGVscGVy
UHJvcG9ydGlvbnMud2lkdGh9KS5sZWZ0LWMubWFyZ2lucy5sZWZ0fWlmKCFjLnNuYXBFbGVtZW50
c1toXS5zbmFwcGluZyYmKHB8fHF8fHJ8fHN8fHQpKWMub3B0aW9ucy5zbmFwLnNuYXAmJmMub3B0
aW9ucy5zbmFwLnNuYXAuY2FsbChjLmVsZW1lbnQsYSxkLmV4dGVuZChjLl91aUhhc2goKSx7c25h
cEl0ZW06Yy5zbmFwRWxlbWVudHNbaF0uaXRlbX0pKTtjLnNuYXBFbGVtZW50c1toXS5zbmFwcGlu
Zz1wfHxxfHxyfHxzfHx0fWVsc2V7Yy5zbmFwRWxlbWVudHNbaF0uc25hcHBpbmcmJmMub3B0aW9u
cy5zbmFwLnJlbGVhc2UmJmMub3B0aW9ucy5zbmFwLnJlbGVhc2UuY2FsbChjLmVsZW1lbnQsCith
LGQuZXh0ZW5kKGMuX3VpSGFzaCgpLHtzbmFwSXRlbTpjLnNuYXBFbGVtZW50c1toXS5pdGVtfSkp
O2Muc25hcEVsZW1lbnRzW2hdLnNuYXBwaW5nPWZhbHNlfX19fSk7ZC51aS5wbHVnaW4uYWRkKCJk
cmFnZ2FibGUiLCJzdGFjayIse3N0YXJ0OmZ1bmN0aW9uKCl7dmFyIGE9ZCh0aGlzKS5kYXRhKCJk
cmFnZ2FibGUiKS5vcHRpb25zO2E9ZC5tYWtlQXJyYXkoZChhLnN0YWNrKSkuc29ydChmdW5jdGlv
bihjLGYpe3JldHVybihwYXJzZUludChkKGMpLmNzcygiekluZGV4IiksMTApfHwwKS0ocGFyc2VJ
bnQoZChmKS5jc3MoInpJbmRleCIpLDEwKXx8MCl9KTtpZihhLmxlbmd0aCl7dmFyIGI9cGFyc2VJ
bnQoYVswXS5zdHlsZS56SW5kZXgpfHwwO2QoYSkuZWFjaChmdW5jdGlvbihjKXt0aGlzLnN0eWxl
LnpJbmRleD1iK2N9KTt0aGlzWzBdLnN0eWxlLnpJbmRleD1iK2EubGVuZ3RofX19KTtkLnVpLnBs
dWdpbi5hZGQoImRyYWdnYWJsZSIsInpJbmRleCIse3N0YXJ0OmZ1bmN0aW9uKGEsCitiKXthPWQo
Yi5oZWxwZXIpO2I9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25zO2lmKGEuY3NzKCJ6
SW5kZXgiKSliLl96SW5kZXg9YS5jc3MoInpJbmRleCIpO2EuY3NzKCJ6SW5kZXgiLGIuekluZGV4
KX0sc3RvcDpmdW5jdGlvbihhLGIpe2E9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25z
O2EuX3pJbmRleCYmZChiLmhlbHBlcikuY3NzKCJ6SW5kZXgiLGEuX3pJbmRleCl9fSl9KShqUXVl
cnkpOworOy8qCisgKiBqUXVlcnkgVUkgRHJvcHBhYmxlIDEuOC4xMAorICoKKyAqIENvcHlyaWdo
dCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwg
bGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0
cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkv
RHJvcHBhYmxlcworICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkudWkuY29yZS5qcworICoJanF1
ZXJ5LnVpLndpZGdldC5qcworICoJanF1ZXJ5LnVpLm1vdXNlLmpzCisgKglqcXVlcnkudWkuZHJh
Z2dhYmxlLmpzCisgKi8KKyhmdW5jdGlvbihkKXtkLndpZGdldCgidWkuZHJvcHBhYmxlIix7d2lk
Z2V0RXZlbnRQcmVmaXg6ImRyb3AiLG9wdGlvbnM6e2FjY2VwdDoiKiIsYWN0aXZlQ2xhc3M6ZmFs
c2UsYWRkQ2xhc3Nlczp0cnVlLGdyZWVkeTpmYWxzZSxob3ZlckNsYXNzOmZhbHNlLHNjb3BlOiJk
ZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgYT10
aGlzLm9wdGlvbnMsYj1hLmFjY2VwdDt0aGlzLmlzb3Zlcj0wO3RoaXMuaXNvdXQ9MTt0aGlzLmFj
Y2VwdD1kLmlzRnVuY3Rpb24oYik/YjpmdW5jdGlvbihjKXtyZXR1cm4gYy5pcyhiKX07dGhpcy5w
cm9wb3J0aW9ucz17d2lkdGg6dGhpcy5lbGVtZW50WzBdLm9mZnNldFdpZHRoLGhlaWdodDp0aGlz
LmVsZW1lbnRbMF0ub2Zmc2V0SGVpZ2h0fTtkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW2Euc2Nv
cGVdPWQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbYS5zY29wZV18fFtdO2QudWkuZGRtYW5hZ2Vy
LmRyb3BwYWJsZXNbYS5zY29wZV0ucHVzaCh0aGlzKTsKK2EuYWRkQ2xhc3NlcyYmdGhpcy5lbGVt
ZW50LmFkZENsYXNzKCJ1aS1kcm9wcGFibGUiKX0sZGVzdHJveTpmdW5jdGlvbigpe2Zvcih2YXIg
YT1kLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RoaXMub3B0aW9ucy5zY29wZV0sYj0wO2I8YS5s
ZW5ndGg7YisrKWFbYl09PXRoaXMmJmEuc3BsaWNlKGIsMSk7dGhpcy5lbGVtZW50LnJlbW92ZUNs
YXNzKCJ1aS1kcm9wcGFibGUgdWktZHJvcHBhYmxlLWRpc2FibGVkIikucmVtb3ZlRGF0YSgiZHJv
cHBhYmxlIikudW5iaW5kKCIuZHJvcHBhYmxlIik7cmV0dXJuIHRoaXN9LF9zZXRPcHRpb246ZnVu
Y3Rpb24oYSxiKXtpZihhPT0iYWNjZXB0Iil0aGlzLmFjY2VwdD1kLmlzRnVuY3Rpb24oYik/Yjpm
dW5jdGlvbihjKXtyZXR1cm4gYy5pcyhiKX07ZC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24u
YXBwbHkodGhpcyxhcmd1bWVudHMpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9ZC51aS5k
ZG1hbmFnZXIuY3VycmVudDt0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJgordGhpcy5lbGVtZW50
LmFkZENsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyk7YiYmdGhpcy5fdHJpZ2dlcigiYWN0
aXZhdGUiLGEsdGhpcy51aShiKSl9LF9kZWFjdGl2YXRlOmZ1bmN0aW9uKGEpe3ZhciBiPWQudWku
ZGRtYW5hZ2VyLmN1cnJlbnQ7dGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzJiZ0aGlzLmVsZW1lbnQu
cmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKTtiJiZ0aGlzLl90cmlnZ2VyKCJk
ZWFjdGl2YXRlIixhLHRoaXMudWkoYikpfSxfb3ZlcjpmdW5jdGlvbihhKXt2YXIgYj1kLnVpLmRk
bWFuYWdlci5jdXJyZW50O2lmKCEoIWJ8fChiLmN1cnJlbnRJdGVtfHxiLmVsZW1lbnQpWzBdPT10
aGlzLmVsZW1lbnRbMF0pKWlmKHRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLGIuY3Vy
cmVudEl0ZW18fGIuZWxlbWVudCkpe3RoaXMub3B0aW9ucy5ob3ZlckNsYXNzJiZ0aGlzLmVsZW1l
bnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MpOwordGhpcy5fdHJpZ2dlcigib3Zl
ciIsYSx0aGlzLnVpKGIpKX19LF9vdXQ6ZnVuY3Rpb24oYSl7dmFyIGI9ZC51aS5kZG1hbmFnZXIu
Y3VycmVudDtpZighKCFifHwoYi5jdXJyZW50SXRlbXx8Yi5lbGVtZW50KVswXT09dGhpcy5lbGVt
ZW50WzBdKSlpZih0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxiLmN1cnJlbnRJdGVt
fHxiLmVsZW1lbnQpKXt0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyYmdGhpcy5lbGVtZW50LnJlbW92
ZUNsYXNzKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzKTt0aGlzLl90cmlnZ2VyKCJvdXQiLGEsdGhp
cy51aShiKSl9fSxfZHJvcDpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fGQudWkuZGRtYW5hZ2VyLmN1
cnJlbnQ7aWYoIWN8fChjLmN1cnJlbnRJdGVtfHxjLmVsZW1lbnQpWzBdPT10aGlzLmVsZW1lbnRb
MF0pcmV0dXJuIGZhbHNlO3ZhciBlPWZhbHNlO3RoaXMuZWxlbWVudC5maW5kKCI6ZGF0YShkcm9w
cGFibGUpIikubm90KCIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIikuZWFjaChmdW5jdGlvbigpe3Zh
ciBnPQorZC5kYXRhKHRoaXMsImRyb3BwYWJsZSIpO2lmKGcub3B0aW9ucy5ncmVlZHkmJiFnLm9w
dGlvbnMuZGlzYWJsZWQmJmcub3B0aW9ucy5zY29wZT09Yy5vcHRpb25zLnNjb3BlJiZnLmFjY2Vw
dC5jYWxsKGcuZWxlbWVudFswXSxjLmN1cnJlbnRJdGVtfHxjLmVsZW1lbnQpJiZkLnVpLmludGVy
c2VjdChjLGQuZXh0ZW5kKGcse29mZnNldDpnLmVsZW1lbnQub2Zmc2V0KCl9KSxnLm9wdGlvbnMu
dG9sZXJhbmNlKSl7ZT10cnVlO3JldHVybiBmYWxzZX19KTtpZihlKXJldHVybiBmYWxzZTtpZih0
aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxjLmN1cnJlbnRJdGVtfHxjLmVsZW1lbnQp
KXt0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlz
Lm9wdGlvbnMuYWN0aXZlQ2xhc3MpO3RoaXMub3B0aW9ucy5ob3ZlckNsYXNzJiZ0aGlzLmVsZW1l
bnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MpO3RoaXMuX3RyaWdnZXIoImRy
b3AiLAorYSx0aGlzLnVpKGMpKTtyZXR1cm4gdGhpcy5lbGVtZW50fXJldHVybiBmYWxzZX0sdWk6
ZnVuY3Rpb24oYSl7cmV0dXJue2RyYWdnYWJsZTphLmN1cnJlbnRJdGVtfHxhLmVsZW1lbnQsaGVs
cGVyOmEuaGVscGVyLHBvc2l0aW9uOmEucG9zaXRpb24sb2Zmc2V0OmEucG9zaXRpb25BYnN9fX0p
O2QuZXh0ZW5kKGQudWkuZHJvcHBhYmxlLHt2ZXJzaW9uOiIxLjguMTAifSk7ZC51aS5pbnRlcnNl
Y3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFiLm9mZnNldClyZXR1cm4gZmFsc2U7dmFyIGU9KGEucG9z
aXRpb25BYnN8fGEucG9zaXRpb24uYWJzb2x1dGUpLmxlZnQsZz1lK2EuaGVscGVyUHJvcG9ydGlv
bnMud2lkdGgsZj0oYS5wb3NpdGlvbkFic3x8YS5wb3NpdGlvbi5hYnNvbHV0ZSkudG9wLGg9Zith
LmhlbHBlclByb3BvcnRpb25zLmhlaWdodCxpPWIub2Zmc2V0LmxlZnQsaz1pK2IucHJvcG9ydGlv
bnMud2lkdGgsaj1iLm9mZnNldC50b3AsbD1qK2IucHJvcG9ydGlvbnMuaGVpZ2h0Oworc3dpdGNo
KGMpe2Nhc2UgImZpdCI6cmV0dXJuIGk8PWUmJmc8PWsmJmo8PWYmJmg8PWw7Y2FzZSAiaW50ZXJz
ZWN0IjpyZXR1cm4gaTxlK2EuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMiYmZy1hLmhlbHBlclBy
b3BvcnRpb25zLndpZHRoLzI8ayYmajxmK2EuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzImJmgt
YS5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQvMjxsO2Nhc2UgInBvaW50ZXIiOnJldHVybiBkLnVp
LmlzT3ZlcigoYS5wb3NpdGlvbkFic3x8YS5wb3NpdGlvbi5hYnNvbHV0ZSkudG9wKyhhLmNsaWNr
T2Zmc2V0fHxhLm9mZnNldC5jbGljaykudG9wLChhLnBvc2l0aW9uQWJzfHxhLnBvc2l0aW9uLmFi
c29sdXRlKS5sZWZ0KyhhLmNsaWNrT2Zmc2V0fHxhLm9mZnNldC5jbGljaykubGVmdCxqLGksYi5w
cm9wb3J0aW9ucy5oZWlnaHQsYi5wcm9wb3J0aW9ucy53aWR0aCk7Y2FzZSAidG91Y2giOnJldHVy
bihmPj1qJiZmPD1sfHxoPj1qJiZoPD1sfHxmPGomJmg+bCkmJihlPj0KK2kmJmU8PWt8fGc+PWkm
Jmc8PWt8fGU8aSYmZz5rKTtkZWZhdWx0OnJldHVybiBmYWxzZX19O2QudWkuZGRtYW5hZ2VyPXtj
dXJyZW50Om51bGwsZHJvcHBhYmxlczp7ImRlZmF1bHQiOltdfSxwcmVwYXJlT2Zmc2V0czpmdW5j
dGlvbihhLGIpe3ZhciBjPWQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbYS5vcHRpb25zLnNjb3Bl
XXx8W10sZT1iP2IudHlwZTpudWxsLGc9KGEuY3VycmVudEl0ZW18fGEuZWxlbWVudCkuZmluZCgi
OmRhdGEoZHJvcHBhYmxlKSIpLmFuZFNlbGYoKSxmPTA7YTpmb3IoO2Y8Yy5sZW5ndGg7ZisrKWlm
KCEoY1tmXS5vcHRpb25zLmRpc2FibGVkfHxhJiYhY1tmXS5hY2NlcHQuY2FsbChjW2ZdLmVsZW1l
bnRbMF0sYS5jdXJyZW50SXRlbXx8YS5lbGVtZW50KSkpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7
aCsrKWlmKGdbaF09PWNbZl0uZWxlbWVudFswXSl7Y1tmXS5wcm9wb3J0aW9ucy5oZWlnaHQ9MDtj
b250aW51ZSBhfWNbZl0udmlzaWJsZT1jW2ZdLmVsZW1lbnQuY3NzKCJkaXNwbGF5IikhPQorIm5v
bmUiO2lmKGNbZl0udmlzaWJsZSl7Y1tmXS5vZmZzZXQ9Y1tmXS5lbGVtZW50Lm9mZnNldCgpO2Nb
Zl0ucHJvcG9ydGlvbnM9e3dpZHRoOmNbZl0uZWxlbWVudFswXS5vZmZzZXRXaWR0aCxoZWlnaHQ6
Y1tmXS5lbGVtZW50WzBdLm9mZnNldEhlaWdodH07ZT09Im1vdXNlZG93biImJmNbZl0uX2FjdGl2
YXRlLmNhbGwoY1tmXSxiKX19fSxkcm9wOmZ1bmN0aW9uKGEsYil7dmFyIGM9ZmFsc2U7ZC5lYWNo
KGQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbYS5vcHRpb25zLnNjb3BlXXx8W10sZnVuY3Rpb24o
KXtpZih0aGlzLm9wdGlvbnMpe2lmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMudmlzaWJs
ZSYmZC51aS5pbnRlcnNlY3QoYSx0aGlzLHRoaXMub3B0aW9ucy50b2xlcmFuY2UpKWM9Y3x8dGhp
cy5fZHJvcC5jYWxsKHRoaXMsYik7aWYoIXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy52aXNp
YmxlJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxhLmN1cnJlbnRJdGVtfHwKK2Eu
ZWxlbWVudCkpe3RoaXMuaXNvdXQ9MTt0aGlzLmlzb3Zlcj0wO3RoaXMuX2RlYWN0aXZhdGUuY2Fs
bCh0aGlzLGIpfX19KTtyZXR1cm4gY30sZHJhZzpmdW5jdGlvbihhLGIpe2Eub3B0aW9ucy5yZWZy
ZXNoUG9zaXRpb25zJiZkLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyhhLGIpO2QuZWFjaChk
LnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW2Eub3B0aW9ucy5zY29wZV18fFtdLGZ1bmN0aW9uKCl7
aWYoISh0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fHRoaXMuZ3JlZWR5Q2hpbGR8fCF0aGlzLnZpc2li
bGUpKXt2YXIgYz1kLnVpLmludGVyc2VjdChhLHRoaXMsdGhpcy5vcHRpb25zLnRvbGVyYW5jZSk7
aWYoYz0hYyYmdGhpcy5pc292ZXI9PTE/Imlzb3V0IjpjJiZ0aGlzLmlzb3Zlcj09MD8iaXNvdmVy
IjpudWxsKXt2YXIgZTtpZih0aGlzLm9wdGlvbnMuZ3JlZWR5KXt2YXIgZz10aGlzLmVsZW1lbnQu
cGFyZW50cygiOmRhdGEoZHJvcHBhYmxlKTplcSgwKSIpO2lmKGcubGVuZ3RoKXtlPQorZC5kYXRh
KGdbMF0sImRyb3BwYWJsZSIpO2UuZ3JlZWR5Q2hpbGQ9Yz09Imlzb3ZlciI/MTowfX1pZihlJiZj
PT0iaXNvdmVyIil7ZS5pc292ZXI9MDtlLmlzb3V0PTE7ZS5fb3V0LmNhbGwoZSxiKX10aGlzW2Nd
PTE7dGhpc1tjPT0iaXNvdXQiPyJpc292ZXIiOiJpc291dCJdPTA7dGhpc1tjPT0iaXNvdmVyIj8i
X292ZXIiOiJfb3V0Il0uY2FsbCh0aGlzLGIpO2lmKGUmJmM9PSJpc291dCIpe2UuaXNvdXQ9MDtl
Lmlzb3Zlcj0xO2UuX292ZXIuY2FsbChlLGIpfX19fSl9fX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpR
dWVyeSBVSSBSZXNpemFibGUgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMu
dHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0
aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9s
aWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9SZXNpemFibGVzCisgKgor
ICogRGVwZW5kczoKKyAqCWpxdWVyeS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkubW91c2UuanMK
KyAqCWpxdWVyeS51aS53aWRnZXQuanMKKyAqLworKGZ1bmN0aW9uKGUpe2Uud2lkZ2V0KCJ1aS5y
ZXNpemFibGUiLGUudWkubW91c2Use3dpZGdldEV2ZW50UHJlZml4OiJyZXNpemUiLG9wdGlvbnM6
e2Fsc29SZXNpemU6ZmFsc2UsYW5pbWF0ZTpmYWxzZSxhbmltYXRlRHVyYXRpb246InNsb3ciLGFu
aW1hdGVFYXNpbmc6InN3aW5nIixhc3BlY3RSYXRpbzpmYWxzZSxhdXRvSGlkZTpmYWxzZSxjb250
YWlubWVudDpmYWxzZSxnaG9zdDpmYWxzZSxncmlkOmZhbHNlLGhhbmRsZXM6ImUscyxzZSIsaGVs
cGVyOmZhbHNlLG1heEhlaWdodDpudWxsLG1heFdpZHRoOm51bGwsbWluSGVpZ2h0OjEwLG1pbldp
ZHRoOjEwLHpJbmRleDoxRTN9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLGE9dGhpcy5v
cHRpb25zO3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktcmVzaXphYmxlIik7ZS5leHRlbmQodGhp
cyx7X2FzcGVjdFJhdGlvOiEhYS5hc3BlY3RSYXRpbyxhc3BlY3RSYXRpbzphLmFzcGVjdFJhdGlv
LG9yaWdpbmFsRWxlbWVudDp0aGlzLmVsZW1lbnQsCitfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVt
ZW50czpbXSxfaGVscGVyOmEuaGVscGVyfHxhLmdob3N0fHxhLmFuaW1hdGU/YS5oZWxwZXJ8fCJ1
aS1yZXNpemFibGUtaGVscGVyIjpudWxsfSk7aWYodGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1h
dGNoKC9jYW52YXN8dGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbnxpbWcvaSkpey9yZWxhdGl2
ZS8udGVzdCh0aGlzLmVsZW1lbnQuY3NzKCJwb3NpdGlvbiIpKSYmZS5icm93c2VyLm9wZXJhJiZ0
aGlzLmVsZW1lbnQuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDoiYXV0byIsbGVmdDoiYXV0
byJ9KTt0aGlzLmVsZW1lbnQud3JhcChlKCc8ZGl2IGNsYXNzPSJ1aS13cmFwcGVyIiBzdHlsZT0i
b3ZlcmZsb3c6IGhpZGRlbjsiPjwvZGl2PicpLmNzcyh7cG9zaXRpb246dGhpcy5lbGVtZW50LmNz
cygicG9zaXRpb24iKSx3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlz
LmVsZW1lbnQub3V0ZXJIZWlnaHQoKSwKK3RvcDp0aGlzLmVsZW1lbnQuY3NzKCJ0b3AiKSxsZWZ0
OnRoaXMuZWxlbWVudC5jc3MoImxlZnQiKX0pKTt0aGlzLmVsZW1lbnQ9dGhpcy5lbGVtZW50LnBh
cmVudCgpLmRhdGEoInJlc2l6YWJsZSIsdGhpcy5lbGVtZW50LmRhdGEoInJlc2l6YWJsZSIpKTt0
aGlzLmVsZW1lbnRJc1dyYXBwZXI9dHJ1ZTt0aGlzLmVsZW1lbnQuY3NzKHttYXJnaW5MZWZ0OnRo
aXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luTGVmdCIpLG1hcmdpblRvcDp0aGlzLm9yaWdp
bmFsRWxlbWVudC5jc3MoIm1hcmdpblRvcCIpLG1hcmdpblJpZ2h0OnRoaXMub3JpZ2luYWxFbGVt
ZW50LmNzcygibWFyZ2luUmlnaHQiKSxtYXJnaW5Cb3R0b206dGhpcy5vcmlnaW5hbEVsZW1lbnQu
Y3NzKCJtYXJnaW5Cb3R0b20iKX0pO3RoaXMub3JpZ2luYWxFbGVtZW50LmNzcyh7bWFyZ2luTGVm
dDowLG1hcmdpblRvcDowLG1hcmdpblJpZ2h0OjAsbWFyZ2luQm90dG9tOjB9KTt0aGlzLm9yaWdp
bmFsUmVzaXplU3R5bGU9Cit0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIpO3RoaXMu
b3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIiwibm9uZSIpO3RoaXMuX3Byb3BvcnRpb25hbGx5
UmVzaXplRWxlbWVudHMucHVzaCh0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOiJz
dGF0aWMiLHpvb206MSxkaXNwbGF5OiJibG9jayJ9KSk7dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3Nz
KHttYXJnaW46dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW4iKX0pO3RoaXMuX3Byb3Bv
cnRpb25hbGx5UmVzaXplKCl9dGhpcy5oYW5kbGVzPWEuaGFuZGxlc3x8KCFlKCIudWktcmVzaXph
YmxlLWhhbmRsZSIsdGhpcy5lbGVtZW50KS5sZW5ndGg/ImUscyxzZSI6e246Ii51aS1yZXNpemFi
bGUtbiIsZToiLnVpLXJlc2l6YWJsZS1lIixzOiIudWktcmVzaXphYmxlLXMiLHc6Ii51aS1yZXNp
emFibGUtdyIsc2U6Ii51aS1yZXNpemFibGUtc2UiLHN3OiIudWktcmVzaXphYmxlLXN3IixuZToi
LnVpLXJlc2l6YWJsZS1uZSIsCitudzoiLnVpLXJlc2l6YWJsZS1udyJ9KTtpZih0aGlzLmhhbmRs
ZXMuY29uc3RydWN0b3I9PVN0cmluZyl7aWYodGhpcy5oYW5kbGVzPT0iYWxsIil0aGlzLmhhbmRs
ZXM9Im4sZSxzLHcsc2Usc3csbmUsbnciO3ZhciBjPXRoaXMuaGFuZGxlcy5zcGxpdCgiLCIpO3Ro
aXMuaGFuZGxlcz17fTtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGY9ZS50cmltKGNb
ZF0pLGc9ZSgnPGRpdiBjbGFzcz0idWktcmVzaXphYmxlLWhhbmRsZSAnKygidWktcmVzaXphYmxl
LSIrZikrJyI+PC9kaXY+Jyk7L3N3fHNlfG5lfG53Ly50ZXN0KGYpJiZnLmNzcyh7ekluZGV4Oisr
YS56SW5kZXh9KTsic2UiPT1mJiZnLmFkZENsYXNzKCJ1aS1pY29uIHVpLWljb24tZ3JpcHNtYWxs
LWRpYWdvbmFsLXNlIik7dGhpcy5oYW5kbGVzW2ZdPSIudWktcmVzaXphYmxlLSIrZjt0aGlzLmVs
ZW1lbnQuYXBwZW5kKGcpfX10aGlzLl9yZW5kZXJBeGlzPWZ1bmN0aW9uKGgpe2g9aHx8dGhpcy5l
bGVtZW50O2Zvcih2YXIgaSBpbiB0aGlzLmhhbmRsZXMpe2lmKHRoaXMuaGFuZGxlc1tpXS5jb25z
dHJ1Y3Rvcj09CitTdHJpbmcpdGhpcy5oYW5kbGVzW2ldPWUodGhpcy5oYW5kbGVzW2ldLHRoaXMu
ZWxlbWVudCkuc2hvdygpO2lmKHRoaXMuZWxlbWVudElzV3JhcHBlciYmdGhpcy5vcmlnaW5hbEVs
ZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL3RleHRhcmVhfGlucHV0fHNlbGVjdHxidXR0b24vaSkp
e3ZhciBqPWUodGhpcy5oYW5kbGVzW2ldLHRoaXMuZWxlbWVudCksaz0wO2s9L3N3fG5lfG53fHNl
fG58cy8udGVzdChpKT9qLm91dGVySGVpZ2h0KCk6ai5vdXRlcldpZHRoKCk7aj1bInBhZGRpbmci
LC9uZXxud3xuLy50ZXN0KGkpPyJUb3AiOi9zZXxzd3xzLy50ZXN0KGkpPyJCb3R0b20iOi9eZSQv
LnRlc3QoaSk/IlJpZ2h0IjoiTGVmdCJdLmpvaW4oIiIpO2guY3NzKGosayk7dGhpcy5fcHJvcG9y
dGlvbmFsbHlSZXNpemUoKX1lKHRoaXMuaGFuZGxlc1tpXSl9fTt0aGlzLl9yZW5kZXJBeGlzKHRo
aXMuZWxlbWVudCk7dGhpcy5faGFuZGxlcz1lKCIudWktcmVzaXphYmxlLWhhbmRsZSIsdGhpcy5l
bGVtZW50KS5kaXNhYmxlU2VsZWN0aW9uKCk7Cit0aGlzLl9oYW5kbGVzLm1vdXNlb3ZlcihmdW5j
dGlvbigpe2lmKCFiLnJlc2l6aW5nKXtpZih0aGlzLmNsYXNzTmFtZSl2YXIgaD10aGlzLmNsYXNz
TmFtZS5tYXRjaCgvdWktcmVzaXphYmxlLShzZXxzd3xuZXxud3xufGV8c3x3KS9pKTtiLmF4aXM9
aCYmaFsxXT9oWzFdOiJzZSJ9fSk7aWYoYS5hdXRvSGlkZSl7dGhpcy5faGFuZGxlcy5oaWRlKCk7
ZSh0aGlzLmVsZW1lbnQpLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKS5ob3Zlcihm
dW5jdGlvbigpe2UodGhpcykucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpO2Iu
X2hhbmRsZXMuc2hvdygpfSxmdW5jdGlvbigpe2lmKCFiLnJlc2l6aW5nKXtlKHRoaXMpLmFkZENs
YXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKTtiLl9oYW5kbGVzLmhpZGUoKX19KX10aGlzLl9t
b3VzZUluaXQoKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX21vdXNlRGVzdHJveSgpO3ZhciBi
PWZ1bmN0aW9uKGMpe2UoYykucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUt
ZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikucmVtb3ZlRGF0YSgicmVzaXphYmxlIiku
dW5iaW5kKCIucmVzaXphYmxlIikuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKS5yZW1vdmUo
KX07CitpZih0aGlzLmVsZW1lbnRJc1dyYXBwZXIpe2IodGhpcy5lbGVtZW50KTt2YXIgYT10aGlz
LmVsZW1lbnQ7YS5hZnRlcih0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOmEuY3Nz
KCJwb3NpdGlvbiIpLHdpZHRoOmEub3V0ZXJXaWR0aCgpLGhlaWdodDphLm91dGVySGVpZ2h0KCks
dG9wOmEuY3NzKCJ0b3AiKSxsZWZ0OmEuY3NzKCJsZWZ0Iil9KSkucmVtb3ZlKCl9dGhpcy5vcmln
aW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLHRoaXMub3JpZ2luYWxSZXNpemVTdHlsZSk7Yih0aGlz
Lm9yaWdpbmFsRWxlbWVudCk7cmV0dXJuIHRoaXN9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oYil7
dmFyIGE9ZmFsc2U7Zm9yKHZhciBjIGluIHRoaXMuaGFuZGxlcylpZihlKHRoaXMuaGFuZGxlc1tj
XSlbMF09PWIudGFyZ2V0KWE9dHJ1ZTtyZXR1cm4hdGhpcy5vcHRpb25zLmRpc2FibGVkJiZhfSxf
bW91c2VTdGFydDpmdW5jdGlvbihiKXt2YXIgYT10aGlzLm9wdGlvbnMsYz10aGlzLmVsZW1lbnQu
cG9zaXRpb24oKSwKK2Q9dGhpcy5lbGVtZW50O3RoaXMucmVzaXppbmc9dHJ1ZTt0aGlzLmRvY3Vt
ZW50U2Nyb2xsPXt0b3A6ZShkb2N1bWVudCkuc2Nyb2xsVG9wKCksbGVmdDplKGRvY3VtZW50KS5z
Y3JvbGxMZWZ0KCl9O2lmKGQuaXMoIi51aS1kcmFnZ2FibGUiKXx8L2Fic29sdXRlLy50ZXN0KGQu
Y3NzKCJwb3NpdGlvbiIpKSlkLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6Yy50b3AsbGVm
dDpjLmxlZnR9KTtlLmJyb3dzZXIub3BlcmEmJi9yZWxhdGl2ZS8udGVzdChkLmNzcygicG9zaXRp
b24iKSkmJmQuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDoiYXV0byIsbGVmdDoiYXV0byJ9
KTt0aGlzLl9yZW5kZXJQcm94eSgpO2M9bSh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSk7dmFyIGY9
bSh0aGlzLmhlbHBlci5jc3MoInRvcCIpKTtpZihhLmNvbnRhaW5tZW50KXtjKz1lKGEuY29udGFp
bm1lbnQpLnNjcm9sbExlZnQoKXx8MDtmKz1lKGEuY29udGFpbm1lbnQpLnNjcm9sbFRvcCgpfHww
fXRoaXMub2Zmc2V0PQordGhpcy5oZWxwZXIub2Zmc2V0KCk7dGhpcy5wb3NpdGlvbj17bGVmdDpj
LHRvcDpmfTt0aGlzLnNpemU9dGhpcy5faGVscGVyP3t3aWR0aDpkLm91dGVyV2lkdGgoKSxoZWln
aHQ6ZC5vdXRlckhlaWdodCgpfTp7d2lkdGg6ZC53aWR0aCgpLGhlaWdodDpkLmhlaWdodCgpfTt0
aGlzLm9yaWdpbmFsU2l6ZT10aGlzLl9oZWxwZXI/e3dpZHRoOmQub3V0ZXJXaWR0aCgpLGhlaWdo
dDpkLm91dGVySGVpZ2h0KCl9Ont3aWR0aDpkLndpZHRoKCksaGVpZ2h0OmQuaGVpZ2h0KCl9O3Ro
aXMub3JpZ2luYWxQb3NpdGlvbj17bGVmdDpjLHRvcDpmfTt0aGlzLnNpemVEaWZmPXt3aWR0aDpk
Lm91dGVyV2lkdGgoKS1kLndpZHRoKCksaGVpZ2h0OmQub3V0ZXJIZWlnaHQoKS1kLmhlaWdodCgp
fTt0aGlzLm9yaWdpbmFsTW91c2VQb3NpdGlvbj17bGVmdDpiLnBhZ2VYLHRvcDpiLnBhZ2VZfTt0
aGlzLmFzcGVjdFJhdGlvPXR5cGVvZiBhLmFzcGVjdFJhdGlvPT0ibnVtYmVyIj9hLmFzcGVjdFJh
dGlvOgordGhpcy5vcmlnaW5hbFNpemUud2lkdGgvdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0fHwx
O2E9ZSgiLnVpLXJlc2l6YWJsZS0iK3RoaXMuYXhpcykuY3NzKCJjdXJzb3IiKTtlKCJib2R5Iiku
Y3NzKCJjdXJzb3IiLGE9PSJhdXRvIj90aGlzLmF4aXMrIi1yZXNpemUiOmEpO2QuYWRkQ2xhc3Mo
InVpLXJlc2l6YWJsZS1yZXNpemluZyIpO3RoaXMuX3Byb3BhZ2F0ZSgic3RhcnQiLGIpO3JldHVy
biB0cnVlfSxfbW91c2VEcmFnOmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXMuaGVscGVyLGM9dGhpcy5v
cmlnaW5hbE1vdXNlUG9zaXRpb24sZD10aGlzLl9jaGFuZ2VbdGhpcy5heGlzXTtpZighZClyZXR1
cm4gZmFsc2U7Yz1kLmFwcGx5KHRoaXMsW2IsYi5wYWdlWC1jLmxlZnR8fDAsYi5wYWdlWS1jLnRv
cHx8MF0pO2lmKHRoaXMuX2FzcGVjdFJhdGlvfHxiLnNoaWZ0S2V5KWM9dGhpcy5fdXBkYXRlUmF0
aW8oYyxiKTtjPXRoaXMuX3Jlc3BlY3RTaXplKGMsYik7dGhpcy5fcHJvcGFnYXRlKCJyZXNpemUi
LAorYik7YS5jc3Moe3RvcDp0aGlzLnBvc2l0aW9uLnRvcCsicHgiLGxlZnQ6dGhpcy5wb3NpdGlv
bi5sZWZ0KyJweCIsd2lkdGg6dGhpcy5zaXplLndpZHRoKyJweCIsaGVpZ2h0OnRoaXMuc2l6ZS5o
ZWlnaHQrInB4In0pOyF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxl
bWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpO3RoaXMuX3VwZGF0ZUNh
Y2hlKGMpO3RoaXMuX3RyaWdnZXIoInJlc2l6ZSIsYix0aGlzLnVpKCkpO3JldHVybiBmYWxzZX0s
X21vdXNlU3RvcDpmdW5jdGlvbihiKXt0aGlzLnJlc2l6aW5nPWZhbHNlO3ZhciBhPXRoaXMub3B0
aW9ucyxjPXRoaXM7aWYodGhpcy5faGVscGVyKXt2YXIgZD10aGlzLl9wcm9wb3J0aW9uYWxseVJl
c2l6ZUVsZW1lbnRzLGY9ZC5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoZFswXS5ub2RlTmFtZSk7
ZD1mJiZlLnVpLmhhc1Njcm9sbChkWzBdLCJsZWZ0Iik/MDpjLnNpemVEaWZmLmhlaWdodDsKK2Y9
Zj8wOmMuc2l6ZURpZmYud2lkdGg7Zj17d2lkdGg6Yy5oZWxwZXIud2lkdGgoKS1mLGhlaWdodDpj
LmhlbHBlci5oZWlnaHQoKS1kfTtkPXBhcnNlSW50KGMuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkr
KGMucG9zaXRpb24ubGVmdC1jLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGw7dmFyIGc9cGFy
c2VJbnQoYy5lbGVtZW50LmNzcygidG9wIiksMTApKyhjLnBvc2l0aW9uLnRvcC1jLm9yaWdpbmFs
UG9zaXRpb24udG9wKXx8bnVsbDthLmFuaW1hdGV8fHRoaXMuZWxlbWVudC5jc3MoZS5leHRlbmQo
Zix7dG9wOmcsbGVmdDpkfSkpO2MuaGVscGVyLmhlaWdodChjLnNpemUuaGVpZ2h0KTtjLmhlbHBl
ci53aWR0aChjLnNpemUud2lkdGgpO3RoaXMuX2hlbHBlciYmIWEuYW5pbWF0ZSYmdGhpcy5fcHJv
cG9ydGlvbmFsbHlSZXNpemUoKX1lKCJib2R5IikuY3NzKCJjdXJzb3IiLCJhdXRvIik7dGhpcy5l
bGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKTsKK3RoaXMuX3Byb3Bh
Z2F0ZSgic3RvcCIsYik7dGhpcy5faGVscGVyJiZ0aGlzLmhlbHBlci5yZW1vdmUoKTtyZXR1cm4g
ZmFsc2V9LF91cGRhdGVDYWNoZTpmdW5jdGlvbihiKXt0aGlzLm9mZnNldD10aGlzLmhlbHBlci5v
ZmZzZXQoKTtpZihsKGIubGVmdCkpdGhpcy5wb3NpdGlvbi5sZWZ0PWIubGVmdDtpZihsKGIudG9w
KSl0aGlzLnBvc2l0aW9uLnRvcD1iLnRvcDtpZihsKGIuaGVpZ2h0KSl0aGlzLnNpemUuaGVpZ2h0
PWIuaGVpZ2h0O2lmKGwoYi53aWR0aCkpdGhpcy5zaXplLndpZHRoPWIud2lkdGh9LF91cGRhdGVS
YXRpbzpmdW5jdGlvbihiKXt2YXIgYT10aGlzLnBvc2l0aW9uLGM9dGhpcy5zaXplLGQ9dGhpcy5h
eGlzO2lmKGIuaGVpZ2h0KWIud2lkdGg9Yy5oZWlnaHQqdGhpcy5hc3BlY3RSYXRpbztlbHNlIGlm
KGIud2lkdGgpYi5oZWlnaHQ9Yy53aWR0aC90aGlzLmFzcGVjdFJhdGlvO2lmKGQ9PSJzdyIpe2Iu
bGVmdD1hLmxlZnQrKGMud2lkdGgtYi53aWR0aCk7Yi50b3A9CitudWxsfWlmKGQ9PSJudyIpe2Iu
dG9wPWEudG9wKyhjLmhlaWdodC1iLmhlaWdodCk7Yi5sZWZ0PWEubGVmdCsoYy53aWR0aC1iLndp
ZHRoKX1yZXR1cm4gYn0sX3Jlc3BlY3RTaXplOmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXMub3B0aW9u
cyxjPXRoaXMuYXhpcyxkPWwoYi53aWR0aCkmJmEubWF4V2lkdGgmJmEubWF4V2lkdGg8Yi53aWR0
aCxmPWwoYi5oZWlnaHQpJiZhLm1heEhlaWdodCYmYS5tYXhIZWlnaHQ8Yi5oZWlnaHQsZz1sKGIu
d2lkdGgpJiZhLm1pbldpZHRoJiZhLm1pbldpZHRoPmIud2lkdGgsaD1sKGIuaGVpZ2h0KSYmYS5t
aW5IZWlnaHQmJmEubWluSGVpZ2h0PmIuaGVpZ2h0O2lmKGcpYi53aWR0aD1hLm1pbldpZHRoO2lm
KGgpYi5oZWlnaHQ9YS5taW5IZWlnaHQ7aWYoZCliLndpZHRoPWEubWF4V2lkdGg7aWYoZiliLmhl
aWdodD1hLm1heEhlaWdodDt2YXIgaT10aGlzLm9yaWdpbmFsUG9zaXRpb24ubGVmdCt0aGlzLm9y
aWdpbmFsU2l6ZS53aWR0aCxqPXRoaXMucG9zaXRpb24udG9wKwordGhpcy5zaXplLmhlaWdodCxr
PS9zd3xud3x3Ly50ZXN0KGMpO2M9L253fG5lfG4vLnRlc3QoYyk7aWYoZyYmayliLmxlZnQ9aS1h
Lm1pbldpZHRoO2lmKGQmJmspYi5sZWZ0PWktYS5tYXhXaWR0aDtpZihoJiZjKWIudG9wPWotYS5t
aW5IZWlnaHQ7aWYoZiYmYyliLnRvcD1qLWEubWF4SGVpZ2h0O2lmKChhPSFiLndpZHRoJiYhYi5o
ZWlnaHQpJiYhYi5sZWZ0JiZiLnRvcCliLnRvcD1udWxsO2Vsc2UgaWYoYSYmIWIudG9wJiZiLmxl
ZnQpYi5sZWZ0PW51bGw7cmV0dXJuIGJ9LF9wcm9wb3J0aW9uYWxseVJlc2l6ZTpmdW5jdGlvbigp
e2lmKHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKWZvcih2YXIgYj10
aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50LGE9MDthPHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXpl
RWxlbWVudHMubGVuZ3RoO2ErKyl7dmFyIGM9dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVt
ZW50c1thXTtpZighdGhpcy5ib3JkZXJEaWYpe3ZhciBkPQorW2MuY3NzKCJib3JkZXJUb3BXaWR0
aCIpLGMuY3NzKCJib3JkZXJSaWdodFdpZHRoIiksYy5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiks
Yy5jc3MoImJvcmRlckxlZnRXaWR0aCIpXSxmPVtjLmNzcygicGFkZGluZ1RvcCIpLGMuY3NzKCJw
YWRkaW5nUmlnaHQiKSxjLmNzcygicGFkZGluZ0JvdHRvbSIpLGMuY3NzKCJwYWRkaW5nTGVmdCIp
XTt0aGlzLmJvcmRlckRpZj1lLm1hcChkLGZ1bmN0aW9uKGcsaCl7Zz1wYXJzZUludChnLDEwKXx8
MDtoPXBhcnNlSW50KGZbaF0sMTApfHwwO3JldHVybiBnK2h9KX1lLmJyb3dzZXIubXNpZSYmKGUo
YikuaXMoIjpoaWRkZW4iKXx8ZShiKS5wYXJlbnRzKCI6aGlkZGVuIikubGVuZ3RoKXx8Yy5jc3Mo
e2hlaWdodDpiLmhlaWdodCgpLXRoaXMuYm9yZGVyRGlmWzBdLXRoaXMuYm9yZGVyRGlmWzJdfHww
LHdpZHRoOmIud2lkdGgoKS10aGlzLmJvcmRlckRpZlsxXS10aGlzLmJvcmRlckRpZlszXXx8MH0p
fX0sX3JlbmRlclByb3h5OmZ1bmN0aW9uKCl7dmFyIGI9Cit0aGlzLm9wdGlvbnM7dGhpcy5lbGVt
ZW50T2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKTtpZih0aGlzLl9oZWxwZXIpe3RoaXMuaGVs
cGVyPXRoaXMuaGVscGVyfHxlKCc8ZGl2IHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj4n
KTt2YXIgYT1lLmJyb3dzZXIubXNpZSYmZS5icm93c2VyLnZlcnNpb248NyxjPWE/MTowO2E9YT8y
Oi0xO3RoaXMuaGVscGVyLmFkZENsYXNzKHRoaXMuX2hlbHBlcikuY3NzKHt3aWR0aDp0aGlzLmVs
ZW1lbnQub3V0ZXJXaWR0aCgpK2EsaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpK2Es
cG9zaXRpb246ImFic29sdXRlIixsZWZ0OnRoaXMuZWxlbWVudE9mZnNldC5sZWZ0LWMrInB4Iix0
b3A6dGhpcy5lbGVtZW50T2Zmc2V0LnRvcC1jKyJweCIsekluZGV4OisrYi56SW5kZXh9KTt0aGlz
LmhlbHBlci5hcHBlbmRUbygiYm9keSIpLmRpc2FibGVTZWxlY3Rpb24oKX1lbHNlIHRoaXMuaGVs
cGVyPXRoaXMuZWxlbWVudH0sX2NoYW5nZTp7ZTpmdW5jdGlvbihiLAorYSl7cmV0dXJue3dpZHRo
OnRoaXMub3JpZ2luYWxTaXplLndpZHRoK2F9fSx3OmZ1bmN0aW9uKGIsYSl7cmV0dXJue2xlZnQ6
dGhpcy5vcmlnaW5hbFBvc2l0aW9uLmxlZnQrYSx3aWR0aDp0aGlzLm9yaWdpbmFsU2l6ZS53aWR0
aC1hfX0sbjpmdW5jdGlvbihiLGEsYyl7cmV0dXJue3RvcDp0aGlzLm9yaWdpbmFsUG9zaXRpb24u
dG9wK2MsaGVpZ2h0OnRoaXMub3JpZ2luYWxTaXplLmhlaWdodC1jfX0sczpmdW5jdGlvbihiLGEs
Yyl7cmV0dXJue2hlaWdodDp0aGlzLm9yaWdpbmFsU2l6ZS5oZWlnaHQrY319LHNlOmZ1bmN0aW9u
KGIsYSxjKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcyxhcmd1bWVu
dHMpLHRoaXMuX2NoYW5nZS5lLmFwcGx5KHRoaXMsW2IsYSxjXSkpfSxzdzpmdW5jdGlvbihiLGEs
Yyl7cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5zLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0
aGlzLl9jaGFuZ2Uudy5hcHBseSh0aGlzLFtiLGEsCitjXSkpfSxuZTpmdW5jdGlvbihiLGEsYyl7
cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlz
Ll9jaGFuZ2UuZS5hcHBseSh0aGlzLFtiLGEsY10pKX0sbnc6ZnVuY3Rpb24oYixhLGMpe3JldHVy
biBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hh
bmdlLncuYXBwbHkodGhpcyxbYixhLGNdKSl9fSxfcHJvcGFnYXRlOmZ1bmN0aW9uKGIsYSl7ZS51
aS5wbHVnaW4uY2FsbCh0aGlzLGIsW2EsdGhpcy51aSgpXSk7YiE9InJlc2l6ZSImJnRoaXMuX3Ry
aWdnZXIoYixhLHRoaXMudWkoKSl9LHBsdWdpbnM6e30sdWk6ZnVuY3Rpb24oKXtyZXR1cm57b3Jp
Z2luYWxFbGVtZW50OnRoaXMub3JpZ2luYWxFbGVtZW50LGVsZW1lbnQ6dGhpcy5lbGVtZW50LGhl
bHBlcjp0aGlzLmhlbHBlcixwb3NpdGlvbjp0aGlzLnBvc2l0aW9uLHNpemU6dGhpcy5zaXplLG9y
aWdpbmFsU2l6ZTp0aGlzLm9yaWdpbmFsU2l6ZSwKK29yaWdpbmFsUG9zaXRpb246dGhpcy5vcmln
aW5hbFBvc2l0aW9ufX19KTtlLmV4dGVuZChlLnVpLnJlc2l6YWJsZSx7dmVyc2lvbjoiMS44LjEw
In0pO2UudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYWxzb1Jlc2l6ZSIse3N0YXJ0OmZ1bmN0
aW9uKCl7dmFyIGI9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKS5vcHRpb25zLGE9ZnVuY3Rpb24o
Yyl7ZShjKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9ZSh0aGlzKTtkLmRhdGEoInJlc2l6YWJsZS1h
bHNvcmVzaXplIix7d2lkdGg6cGFyc2VJbnQoZC53aWR0aCgpLDEwKSxoZWlnaHQ6cGFyc2VJbnQo
ZC5oZWlnaHQoKSwxMCksbGVmdDpwYXJzZUludChkLmNzcygibGVmdCIpLDEwKSx0b3A6cGFyc2VJ
bnQoZC5jc3MoInRvcCIpLDEwKSxwb3NpdGlvbjpkLmNzcygicG9zaXRpb24iKX0pfSl9O2lmKHR5
cGVvZiBiLmFsc29SZXNpemU9PSJvYmplY3QiJiYhYi5hbHNvUmVzaXplLnBhcmVudE5vZGUpaWYo
Yi5hbHNvUmVzaXplLmxlbmd0aCl7Yi5hbHNvUmVzaXplPQorYi5hbHNvUmVzaXplWzBdO2EoYi5h
bHNvUmVzaXplKX1lbHNlIGUuZWFjaChiLmFsc29SZXNpemUsZnVuY3Rpb24oYyl7YShjKX0pO2Vs
c2UgYShiLmFsc29SZXNpemUpfSxyZXNpemU6ZnVuY3Rpb24oYixhKXt2YXIgYz1lKHRoaXMpLmRh
dGEoInJlc2l6YWJsZSIpO2I9Yy5vcHRpb25zO3ZhciBkPWMub3JpZ2luYWxTaXplLGY9Yy5vcmln
aW5hbFBvc2l0aW9uLGc9e2hlaWdodDpjLnNpemUuaGVpZ2h0LWQuaGVpZ2h0fHwwLHdpZHRoOmMu
c2l6ZS53aWR0aC1kLndpZHRofHwwLHRvcDpjLnBvc2l0aW9uLnRvcC1mLnRvcHx8MCxsZWZ0OmMu
cG9zaXRpb24ubGVmdC1mLmxlZnR8fDB9LGg9ZnVuY3Rpb24oaSxqKXtlKGkpLmVhY2goZnVuY3Rp
b24oKXt2YXIgaz1lKHRoaXMpLHE9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIp
LHA9e30scj1qJiZqLmxlbmd0aD9qOmsucGFyZW50cyhhLm9yaWdpbmFsRWxlbWVudFswXSkubGVu
Z3RoP1sid2lkdGgiLCJoZWlnaHQiXTpbIndpZHRoIiwKKyJoZWlnaHQiLCJ0b3AiLCJsZWZ0Il07
ZS5lYWNoKHIsZnVuY3Rpb24obixvKXtpZigobj0ocVtvXXx8MCkrKGdbb118fDApKSYmbj49MClw
W29dPW58fG51bGx9KTtpZihlLmJyb3dzZXIub3BlcmEmJi9yZWxhdGl2ZS8udGVzdChrLmNzcygi
cG9zaXRpb24iKSkpe2MuX3JldmVydFRvUmVsYXRpdmVQb3NpdGlvbj10cnVlO2suY3NzKHtwb3Np
dGlvbjoiYWJzb2x1dGUiLHRvcDoiYXV0byIsbGVmdDoiYXV0byJ9KX1rLmNzcyhwKX0pfTt0eXBl
b2YgYi5hbHNvUmVzaXplPT0ib2JqZWN0IiYmIWIuYWxzb1Jlc2l6ZS5ub2RlVHlwZT9lLmVhY2go
Yi5hbHNvUmVzaXplLGZ1bmN0aW9uKGksail7aChpLGopfSk6aChiLmFsc29SZXNpemUpfSxzdG9w
OmZ1bmN0aW9uKCl7dmFyIGI9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKSxhPWIub3B0aW9ucyxj
PWZ1bmN0aW9uKGQpe2UoZCkuZWFjaChmdW5jdGlvbigpe3ZhciBmPWUodGhpcyk7Zi5jc3Moe3Bv
c2l0aW9uOmYuZGF0YSgicmVzaXphYmxlLWFsc29yZXNpemUiKS5wb3NpdGlvbn0pfSl9OworaWYo
Yi5fcmV2ZXJ0VG9SZWxhdGl2ZVBvc2l0aW9uKXtiLl9yZXZlcnRUb1JlbGF0aXZlUG9zaXRpb249
ZmFsc2U7dHlwZW9mIGEuYWxzb1Jlc2l6ZT09Im9iamVjdCImJiFhLmFsc29SZXNpemUubm9kZVR5
cGU/ZS5lYWNoKGEuYWxzb1Jlc2l6ZSxmdW5jdGlvbihkKXtjKGQpfSk6YyhhLmFsc29SZXNpemUp
fWUodGhpcykucmVtb3ZlRGF0YSgicmVzaXphYmxlLWFsc29yZXNpemUiKX19KTtlLnVpLnBsdWdp
bi5hZGQoInJlc2l6YWJsZSIsImFuaW1hdGUiLHtzdG9wOmZ1bmN0aW9uKGIpe3ZhciBhPWUodGhp
cykuZGF0YSgicmVzaXphYmxlIiksYz1hLm9wdGlvbnMsZD1hLl9wcm9wb3J0aW9uYWxseVJlc2l6
ZUVsZW1lbnRzLGY9ZC5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoZFswXS5ub2RlTmFtZSksZz1m
JiZlLnVpLmhhc1Njcm9sbChkWzBdLCJsZWZ0Iik/MDphLnNpemVEaWZmLmhlaWdodDtmPXt3aWR0
aDphLnNpemUud2lkdGgtKGY/MDphLnNpemVEaWZmLndpZHRoKSxoZWlnaHQ6YS5zaXplLmhlaWdo
dC0KK2d9O2c9cGFyc2VJbnQoYS5lbGVtZW50LmNzcygibGVmdCIpLDEwKSsoYS5wb3NpdGlvbi5s
ZWZ0LWEub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KXx8bnVsbDt2YXIgaD1wYXJzZUludChhLmVsZW1l
bnQuY3NzKCJ0b3AiKSwxMCkrKGEucG9zaXRpb24udG9wLWEub3JpZ2luYWxQb3NpdGlvbi50b3Ap
fHxudWxsO2EuZWxlbWVudC5hbmltYXRlKGUuZXh0ZW5kKGYsaCYmZz97dG9wOmgsbGVmdDpnfTp7
fSkse2R1cmF0aW9uOmMuYW5pbWF0ZUR1cmF0aW9uLGVhc2luZzpjLmFuaW1hdGVFYXNpbmcsc3Rl
cDpmdW5jdGlvbigpe3ZhciBpPXt3aWR0aDpwYXJzZUludChhLmVsZW1lbnQuY3NzKCJ3aWR0aCIp
LDEwKSxoZWlnaHQ6cGFyc2VJbnQoYS5lbGVtZW50LmNzcygiaGVpZ2h0IiksMTApLHRvcDpwYXJz
ZUludChhLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCksbGVmdDpwYXJzZUludChhLmVsZW1lbnQuY3Nz
KCJsZWZ0IiksMTApfTtkJiZkLmxlbmd0aCYmZShkWzBdKS5jc3Moe3dpZHRoOmkud2lkdGgsCito
ZWlnaHQ6aS5oZWlnaHR9KTthLl91cGRhdGVDYWNoZShpKTthLl9wcm9wYWdhdGUoInJlc2l6ZSIs
Yil9fSl9fSk7ZS51aS5wbHVnaW4uYWRkKCJyZXNpemFibGUiLCJjb250YWlubWVudCIse3N0YXJ0
OmZ1bmN0aW9uKCl7dmFyIGI9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKSxhPWIuZWxlbWVudCxj
PWIub3B0aW9ucy5jb250YWlubWVudDtpZihhPWMgaW5zdGFuY2VvZiBlP2MuZ2V0KDApOi9wYXJl
bnQvLnRlc3QoYyk/YS5wYXJlbnQoKS5nZXQoMCk6Yyl7Yi5jb250YWluZXJFbGVtZW50PWUoYSk7
aWYoL2RvY3VtZW50Ly50ZXN0KGMpfHxjPT1kb2N1bWVudCl7Yi5jb250YWluZXJPZmZzZXQ9e2xl
ZnQ6MCx0b3A6MH07Yi5jb250YWluZXJQb3NpdGlvbj17bGVmdDowLHRvcDowfTtiLnBhcmVudERh
dGE9e2VsZW1lbnQ6ZShkb2N1bWVudCksbGVmdDowLHRvcDowLHdpZHRoOmUoZG9jdW1lbnQpLndp
ZHRoKCksaGVpZ2h0OmUoZG9jdW1lbnQpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5v
ZGUuc2Nyb2xsSGVpZ2h0fX1lbHNle3ZhciBkPQorZShhKSxmPVtdO2UoWyJUb3AiLCJSaWdodCIs
IkxlZnQiLCJCb3R0b20iXSkuZWFjaChmdW5jdGlvbihpLGope2ZbaV09bShkLmNzcygicGFkZGlu
ZyIraikpfSk7Yi5jb250YWluZXJPZmZzZXQ9ZC5vZmZzZXQoKTtiLmNvbnRhaW5lclBvc2l0aW9u
PWQucG9zaXRpb24oKTtiLmNvbnRhaW5lclNpemU9e2hlaWdodDpkLmlubmVySGVpZ2h0KCktZlsz
XSx3aWR0aDpkLmlubmVyV2lkdGgoKS1mWzFdfTtjPWIuY29udGFpbmVyT2Zmc2V0O3ZhciBnPWIu
Y29udGFpbmVyU2l6ZS5oZWlnaHQsaD1iLmNvbnRhaW5lclNpemUud2lkdGg7aD1lLnVpLmhhc1Nj
cm9sbChhLCJsZWZ0Iik/YS5zY3JvbGxXaWR0aDpoO2c9ZS51aS5oYXNTY3JvbGwoYSk/YS5zY3Jv
bGxIZWlnaHQ6ZztiLnBhcmVudERhdGE9e2VsZW1lbnQ6YSxsZWZ0OmMubGVmdCx0b3A6Yy50b3As
d2lkdGg6aCxoZWlnaHQ6Z319fX0scmVzaXplOmZ1bmN0aW9uKGIpe3ZhciBhPWUodGhpcykuZGF0
YSgicmVzaXphYmxlIiksYz1hLm9wdGlvbnMsCitkPWEuY29udGFpbmVyT2Zmc2V0LGY9YS5wb3Np
dGlvbjtiPWEuX2FzcGVjdFJhdGlvfHxiLnNoaWZ0S2V5O3ZhciBnPXt0b3A6MCxsZWZ0OjB9LGg9
YS5jb250YWluZXJFbGVtZW50O2lmKGhbMF0hPWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KGguY3Nz
KCJwb3NpdGlvbiIpKSlnPWQ7aWYoZi5sZWZ0PChhLl9oZWxwZXI/ZC5sZWZ0OjApKXthLnNpemUu
d2lkdGgrPWEuX2hlbHBlcj9hLnBvc2l0aW9uLmxlZnQtZC5sZWZ0OmEucG9zaXRpb24ubGVmdC1n
LmxlZnQ7aWYoYilhLnNpemUuaGVpZ2h0PWEuc2l6ZS53aWR0aC9jLmFzcGVjdFJhdGlvO2EucG9z
aXRpb24ubGVmdD1jLmhlbHBlcj9kLmxlZnQ6MH1pZihmLnRvcDwoYS5faGVscGVyP2QudG9wOjAp
KXthLnNpemUuaGVpZ2h0Kz1hLl9oZWxwZXI/YS5wb3NpdGlvbi50b3AtZC50b3A6YS5wb3NpdGlv
bi50b3A7aWYoYilhLnNpemUud2lkdGg9YS5zaXplLmhlaWdodCpjLmFzcGVjdFJhdGlvO2EucG9z
aXRpb24udG9wPWEuX2hlbHBlcj8KK2QudG9wOjB9YS5vZmZzZXQubGVmdD1hLnBhcmVudERhdGEu
bGVmdCthLnBvc2l0aW9uLmxlZnQ7YS5vZmZzZXQudG9wPWEucGFyZW50RGF0YS50b3ArYS5wb3Np
dGlvbi50b3A7Yz1NYXRoLmFicygoYS5faGVscGVyP2Eub2Zmc2V0LmxlZnQtZy5sZWZ0OmEub2Zm
c2V0LmxlZnQtZy5sZWZ0KSthLnNpemVEaWZmLndpZHRoKTtkPU1hdGguYWJzKChhLl9oZWxwZXI/
YS5vZmZzZXQudG9wLWcudG9wOmEub2Zmc2V0LnRvcC1kLnRvcCkrYS5zaXplRGlmZi5oZWlnaHQp
O2Y9YS5jb250YWluZXJFbGVtZW50LmdldCgwKT09YS5lbGVtZW50LnBhcmVudCgpLmdldCgwKTtn
PS9yZWxhdGl2ZXxhYnNvbHV0ZS8udGVzdChhLmNvbnRhaW5lckVsZW1lbnQuY3NzKCJwb3NpdGlv
biIpKTtpZihmJiZnKWMtPWEucGFyZW50RGF0YS5sZWZ0O2lmKGMrYS5zaXplLndpZHRoPj1hLnBh
cmVudERhdGEud2lkdGgpe2Euc2l6ZS53aWR0aD1hLnBhcmVudERhdGEud2lkdGgtYztpZihiKWEu
c2l6ZS5oZWlnaHQ9CithLnNpemUud2lkdGgvYS5hc3BlY3RSYXRpb31pZihkK2Euc2l6ZS5oZWln
aHQ+PWEucGFyZW50RGF0YS5oZWlnaHQpe2Euc2l6ZS5oZWlnaHQ9YS5wYXJlbnREYXRhLmhlaWdo
dC1kO2lmKGIpYS5zaXplLndpZHRoPWEuc2l6ZS5oZWlnaHQqYS5hc3BlY3RSYXRpb319LHN0b3A6
ZnVuY3Rpb24oKXt2YXIgYj1lKHRoaXMpLmRhdGEoInJlc2l6YWJsZSIpLGE9Yi5vcHRpb25zLGM9
Yi5jb250YWluZXJPZmZzZXQsZD1iLmNvbnRhaW5lclBvc2l0aW9uLGY9Yi5jb250YWluZXJFbGVt
ZW50LGc9ZShiLmhlbHBlciksaD1nLm9mZnNldCgpLGk9Zy5vdXRlcldpZHRoKCktYi5zaXplRGlm
Zi53aWR0aDtnPWcub3V0ZXJIZWlnaHQoKS1iLnNpemVEaWZmLmhlaWdodDtiLl9oZWxwZXImJiFh
LmFuaW1hdGUmJi9yZWxhdGl2ZS8udGVzdChmLmNzcygicG9zaXRpb24iKSkmJmUodGhpcykuY3Nz
KHtsZWZ0OmgubGVmdC1kLmxlZnQtYy5sZWZ0LHdpZHRoOmksaGVpZ2h0Omd9KTtiLl9oZWxwZXIm
JiFhLmFuaW1hdGUmJgorL3N0YXRpYy8udGVzdChmLmNzcygicG9zaXRpb24iKSkmJmUodGhpcyku
Y3NzKHtsZWZ0OmgubGVmdC1kLmxlZnQtYy5sZWZ0LHdpZHRoOmksaGVpZ2h0Omd9KX19KTtlLnVp
LnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdob3N0Iix7c3RhcnQ6ZnVuY3Rpb24oKXt2YXIgYj1l
KHRoaXMpLmRhdGEoInJlc2l6YWJsZSIpLGE9Yi5vcHRpb25zLGM9Yi5zaXplO2IuZ2hvc3Q9Yi5v
cmlnaW5hbEVsZW1lbnQuY2xvbmUoKTtiLmdob3N0LmNzcyh7b3BhY2l0eTowLjI1LGRpc3BsYXk6
ImJsb2NrIixwb3NpdGlvbjoicmVsYXRpdmUiLGhlaWdodDpjLmhlaWdodCx3aWR0aDpjLndpZHRo
LG1hcmdpbjowLGxlZnQ6MCx0b3A6MH0pLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtZ2hvc3QiKS5h
ZGRDbGFzcyh0eXBlb2YgYS5naG9zdD09InN0cmluZyI/YS5naG9zdDoiIik7Yi5naG9zdC5hcHBl
bmRUbyhiLmhlbHBlcil9LHJlc2l6ZTpmdW5jdGlvbigpe3ZhciBiPWUodGhpcykuZGF0YSgicmVz
aXphYmxlIik7CitiLmdob3N0JiZiLmdob3N0LmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixoZWln
aHQ6Yi5zaXplLmhlaWdodCx3aWR0aDpiLnNpemUud2lkdGh9KX0sc3RvcDpmdW5jdGlvbigpe3Zh
ciBiPWUodGhpcykuZGF0YSgicmVzaXphYmxlIik7Yi5naG9zdCYmYi5oZWxwZXImJmIuaGVscGVy
LmdldCgwKS5yZW1vdmVDaGlsZChiLmdob3N0LmdldCgwKSl9fSk7ZS51aS5wbHVnaW4uYWRkKCJy
ZXNpemFibGUiLCJncmlkIix7cmVzaXplOmZ1bmN0aW9uKCl7dmFyIGI9ZSh0aGlzKS5kYXRhKCJy
ZXNpemFibGUiKSxhPWIub3B0aW9ucyxjPWIuc2l6ZSxkPWIub3JpZ2luYWxTaXplLGY9Yi5vcmln
aW5hbFBvc2l0aW9uLGc9Yi5heGlzO2EuZ3JpZD10eXBlb2YgYS5ncmlkPT0ibnVtYmVyIj9bYS5n
cmlkLGEuZ3JpZF06YS5ncmlkO3ZhciBoPU1hdGgucm91bmQoKGMud2lkdGgtZC53aWR0aCkvKGEu
Z3JpZFswXXx8MSkpKihhLmdyaWRbMF18fDEpO2E9TWF0aC5yb3VuZCgoYy5oZWlnaHQtZC5oZWln
aHQpLworKGEuZ3JpZFsxXXx8MSkpKihhLmdyaWRbMV18fDEpO2lmKC9eKHNlfHN8ZSkkLy50ZXN0
KGcpKXtiLnNpemUud2lkdGg9ZC53aWR0aCtoO2Iuc2l6ZS5oZWlnaHQ9ZC5oZWlnaHQrYX1lbHNl
IGlmKC9eKG5lKSQvLnRlc3QoZykpe2Iuc2l6ZS53aWR0aD1kLndpZHRoK2g7Yi5zaXplLmhlaWdo
dD1kLmhlaWdodCthO2IucG9zaXRpb24udG9wPWYudG9wLWF9ZWxzZXtpZigvXihzdykkLy50ZXN0
KGcpKXtiLnNpemUud2lkdGg9ZC53aWR0aCtoO2Iuc2l6ZS5oZWlnaHQ9ZC5oZWlnaHQrYX1lbHNl
e2Iuc2l6ZS53aWR0aD1kLndpZHRoK2g7Yi5zaXplLmhlaWdodD1kLmhlaWdodCthO2IucG9zaXRp
b24udG9wPWYudG9wLWF9Yi5wb3NpdGlvbi5sZWZ0PWYubGVmdC1ofX19KTt2YXIgbT1mdW5jdGlv
bihiKXtyZXR1cm4gcGFyc2VJbnQoYiwxMCl8fDB9LGw9ZnVuY3Rpb24oYil7cmV0dXJuIWlzTmFO
KHBhcnNlSW50KGIsMTApKX19KShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkgU2VsZWN0YWJs
ZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVl
cnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZl
cnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBo
dHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1NlbGVjdGFibGVzCisgKgorICogRGVwZW5kczoKKyAq
CWpxdWVyeS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkubW91c2UuanMKKyAqCWpxdWVyeS51aS53
aWRnZXQuanMKKyAqLworKGZ1bmN0aW9uKGUpe2Uud2lkZ2V0KCJ1aS5zZWxlY3RhYmxlIixlLnVp
Lm1vdXNlLHtvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b1JlZnJlc2g6dHJ1ZSxkaXN0YW5j
ZTowLGZpbHRlcjoiKiIsdG9sZXJhbmNlOiJ0b3VjaCJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIg
Yz10aGlzO3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0YWJsZSIpO3RoaXMuZHJhZ2dl
ZD1mYWxzZTt2YXIgZjt0aGlzLnJlZnJlc2g9ZnVuY3Rpb24oKXtmPWUoYy5vcHRpb25zLmZpbHRl
cixjLmVsZW1lbnRbMF0pO2YuZWFjaChmdW5jdGlvbigpe3ZhciBkPWUodGhpcyksYj1kLm9mZnNl
dCgpO2UuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iLHtlbGVtZW50OnRoaXMsJGVsZW1lbnQ6
ZCxsZWZ0OmIubGVmdCx0b3A6Yi50b3AscmlnaHQ6Yi5sZWZ0K2Qub3V0ZXJXaWR0aCgpLGJvdHRv
bTpiLnRvcCtkLm91dGVySGVpZ2h0KCksc3RhcnRzZWxlY3RlZDpmYWxzZSxzZWxlY3RlZDpkLmhh
c0NsYXNzKCJ1aS1zZWxlY3RlZCIpLAorc2VsZWN0aW5nOmQuaGFzQ2xhc3MoInVpLXNlbGVjdGlu
ZyIpLHVuc2VsZWN0aW5nOmQuaGFzQ2xhc3MoInVpLXVuc2VsZWN0aW5nIil9KX0pfTt0aGlzLnJl
ZnJlc2goKTt0aGlzLnNlbGVjdGVlcz1mLmFkZENsYXNzKCJ1aS1zZWxlY3RlZSIpO3RoaXMuX21v
dXNlSW5pdCgpO3RoaXMuaGVscGVyPWUoIjxkaXYgY2xhc3M9J3VpLXNlbGVjdGFibGUtaGVscGVy
Jz48L2Rpdj4iKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWVzLnJlbW92ZUNsYXNz
KCJ1aS1zZWxlY3RlZSIpLnJlbW92ZURhdGEoInNlbGVjdGFibGUtaXRlbSIpO3RoaXMuZWxlbWVu
dC5yZW1vdmVDbGFzcygidWktc2VsZWN0YWJsZSB1aS1zZWxlY3RhYmxlLWRpc2FibGVkIikucmVt
b3ZlRGF0YSgic2VsZWN0YWJsZSIpLnVuYmluZCgiLnNlbGVjdGFibGUiKTt0aGlzLl9tb3VzZURl
c3Ryb3koKTtyZXR1cm4gdGhpc30sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oYyl7dmFyIGY9dGhpczt0
aGlzLm9wb3M9W2MucGFnZVgsCitjLnBhZ2VZXTtpZighdGhpcy5vcHRpb25zLmRpc2FibGVkKXt2
YXIgZD10aGlzLm9wdGlvbnM7dGhpcy5zZWxlY3RlZXM9ZShkLmZpbHRlcix0aGlzLmVsZW1lbnRb
MF0pO3RoaXMuX3RyaWdnZXIoInN0YXJ0IixjKTtlKGQuYXBwZW5kVG8pLmFwcGVuZCh0aGlzLmhl
bHBlcik7dGhpcy5oZWxwZXIuY3NzKHtsZWZ0OmMuY2xpZW50WCx0b3A6Yy5jbGllbnRZLHdpZHRo
OjAsaGVpZ2h0OjB9KTtkLmF1dG9SZWZyZXNoJiZ0aGlzLnJlZnJlc2goKTt0aGlzLnNlbGVjdGVl
cy5maWx0ZXIoIi51aS1zZWxlY3RlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1lLmRhdGEodGhp
cywic2VsZWN0YWJsZS1pdGVtIik7Yi5zdGFydHNlbGVjdGVkPXRydWU7aWYoIWMubWV0YUtleSl7
Yi4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKTtiLnNlbGVjdGVkPWZhbHNlO2Iu
JGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIik7Yi51bnNlbGVjdGluZz10cnVlO2Yu
X3RyaWdnZXIoInVuc2VsZWN0aW5nIiwKK2Mse3Vuc2VsZWN0aW5nOmIuZWxlbWVudH0pfX0pO2Uo
Yy50YXJnZXQpLnBhcmVudHMoKS5hbmRTZWxmKCkuZWFjaChmdW5jdGlvbigpe3ZhciBiPWUuZGF0
YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtpZihiKXt2YXIgZz0hYy5tZXRhS2V5fHwhYi4kZWxl
bWVudC5oYXNDbGFzcygidWktc2VsZWN0ZWQiKTtiLiRlbGVtZW50LnJlbW92ZUNsYXNzKGc/InVp
LXVuc2VsZWN0aW5nIjoidWktc2VsZWN0ZWQiKS5hZGRDbGFzcyhnPyJ1aS1zZWxlY3RpbmciOiJ1
aS11bnNlbGVjdGluZyIpO2IudW5zZWxlY3Rpbmc9IWc7Yi5zZWxlY3Rpbmc9ZzsoYi5zZWxlY3Rl
ZD1nKT9mLl90cmlnZ2VyKCJzZWxlY3RpbmciLGMse3NlbGVjdGluZzpiLmVsZW1lbnR9KTpmLl90
cmlnZ2VyKCJ1bnNlbGVjdGluZyIsYyx7dW5zZWxlY3Rpbmc6Yi5lbGVtZW50fSk7cmV0dXJuIGZh
bHNlfX0pfX0sX21vdXNlRHJhZzpmdW5jdGlvbihjKXt2YXIgZj10aGlzO3RoaXMuZHJhZ2dlZD10
cnVlO2lmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQpe3ZhciBkPQordGhpcy5vcHRpb25zLGI9dGhp
cy5vcG9zWzBdLGc9dGhpcy5vcG9zWzFdLGg9Yy5wYWdlWCxpPWMucGFnZVk7aWYoYj5oKXt2YXIg
aj1oO2g9YjtiPWp9aWYoZz5pKXtqPWk7aT1nO2c9an10aGlzLmhlbHBlci5jc3Moe2xlZnQ6Yix0
b3A6Zyx3aWR0aDpoLWIsaGVpZ2h0OmktZ30pO3RoaXMuc2VsZWN0ZWVzLmVhY2goZnVuY3Rpb24o
KXt2YXIgYT1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7aWYoISghYXx8YS5lbGVtZW50
PT1mLmVsZW1lbnRbMF0pKXt2YXIgaz1mYWxzZTtpZihkLnRvbGVyYW5jZT09InRvdWNoIilrPSEo
YS5sZWZ0Pmh8fGEucmlnaHQ8Ynx8YS50b3A+aXx8YS5ib3R0b208Zyk7ZWxzZSBpZihkLnRvbGVy
YW5jZT09ImZpdCIpaz1hLmxlZnQ+YiYmYS5yaWdodDxoJiZhLnRvcD5nJiZhLmJvdHRvbTxpO2lm
KGspe2lmKGEuc2VsZWN0ZWQpe2EuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVkIik7
YS5zZWxlY3RlZD1mYWxzZX1pZihhLnVuc2VsZWN0aW5nKXthLiRlbGVtZW50LnJlbW92ZUNsYXNz
KCJ1aS11bnNlbGVjdGluZyIpOworYS51bnNlbGVjdGluZz1mYWxzZX1pZighYS5zZWxlY3Rpbmcp
e2EuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGluZyIpO2Euc2VsZWN0aW5nPXRydWU7Zi5f
dHJpZ2dlcigic2VsZWN0aW5nIixjLHtzZWxlY3Rpbmc6YS5lbGVtZW50fSl9fWVsc2V7aWYoYS5z
ZWxlY3RpbmcpaWYoYy5tZXRhS2V5JiZhLnN0YXJ0c2VsZWN0ZWQpe2EuJGVsZW1lbnQucmVtb3Zl
Q2xhc3MoInVpLXNlbGVjdGluZyIpO2Euc2VsZWN0aW5nPWZhbHNlO2EuJGVsZW1lbnQuYWRkQ2xh
c3MoInVpLXNlbGVjdGVkIik7YS5zZWxlY3RlZD10cnVlfWVsc2V7YS4kZWxlbWVudC5yZW1vdmVD
bGFzcygidWktc2VsZWN0aW5nIik7YS5zZWxlY3Rpbmc9ZmFsc2U7aWYoYS5zdGFydHNlbGVjdGVk
KXthLiRlbGVtZW50LmFkZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpO2EudW5zZWxlY3Rpbmc9dHJ1
ZX1mLl90cmlnZ2VyKCJ1bnNlbGVjdGluZyIsYyx7dW5zZWxlY3Rpbmc6YS5lbGVtZW50fSl9aWYo
YS5zZWxlY3RlZClpZighYy5tZXRhS2V5JiYKKyFhLnN0YXJ0c2VsZWN0ZWQpe2EuJGVsZW1lbnQu
cmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVkIik7YS5zZWxlY3RlZD1mYWxzZTthLiRlbGVtZW50LmFk
ZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpO2EudW5zZWxlY3Rpbmc9dHJ1ZTtmLl90cmlnZ2VyKCJ1
bnNlbGVjdGluZyIsYyx7dW5zZWxlY3Rpbmc6YS5lbGVtZW50fSl9fX19KTtyZXR1cm4gZmFsc2V9
fSxfbW91c2VTdG9wOmZ1bmN0aW9uKGMpe3ZhciBmPXRoaXM7dGhpcy5kcmFnZ2VkPWZhbHNlO2Uo
Ii51aS11bnNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9
ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO2QuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVp
LXVuc2VsZWN0aW5nIik7ZC51bnNlbGVjdGluZz1mYWxzZTtkLnN0YXJ0c2VsZWN0ZWQ9ZmFsc2U7
Zi5fdHJpZ2dlcigidW5zZWxlY3RlZCIsYyx7dW5zZWxlY3RlZDpkLmVsZW1lbnR9KX0pO2UoIi51
aS1zZWxlY3RpbmciLHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe3ZhciBkPQorZS5k
YXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO2QuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNl
bGVjdGluZyIpLmFkZENsYXNzKCJ1aS1zZWxlY3RlZCIpO2Quc2VsZWN0aW5nPWZhbHNlO2Quc2Vs
ZWN0ZWQ9dHJ1ZTtkLnN0YXJ0c2VsZWN0ZWQ9dHJ1ZTtmLl90cmlnZ2VyKCJzZWxlY3RlZCIsYyx7
c2VsZWN0ZWQ6ZC5lbGVtZW50fSl9KTt0aGlzLl90cmlnZ2VyKCJzdG9wIixjKTt0aGlzLmhlbHBl
ci5yZW1vdmUoKTtyZXR1cm4gZmFsc2V9fSk7ZS5leHRlbmQoZS51aS5zZWxlY3RhYmxlLHt2ZXJz
aW9uOiIxLjguMTAifSl9KShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkgU29ydGFibGUgMS44
LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWku
Y29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9u
IDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDov
L2RvY3MuanF1ZXJ5LmNvbS9VSS9Tb3J0YWJsZXMKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5
LnVpLmNvcmUuanMKKyAqCWpxdWVyeS51aS5tb3VzZS5qcworICoJanF1ZXJ5LnVpLndpZGdldC5q
cworICovCisoZnVuY3Rpb24oZCl7ZC53aWRnZXQoInVpLnNvcnRhYmxlIixkLnVpLm1vdXNlLHt3
aWRnZXRFdmVudFByZWZpeDoic29ydCIsb3B0aW9uczp7YXBwZW5kVG86InBhcmVudCIsYXhpczpm
YWxzZSxjb25uZWN0V2l0aDpmYWxzZSxjb250YWlubWVudDpmYWxzZSxjdXJzb3I6ImF1dG8iLGN1
cnNvckF0OmZhbHNlLGRyb3BPbkVtcHR5OnRydWUsZm9yY2VQbGFjZWhvbGRlclNpemU6ZmFsc2Us
Zm9yY2VIZWxwZXJTaXplOmZhbHNlLGdyaWQ6ZmFsc2UsaGFuZGxlOmZhbHNlLGhlbHBlcjoib3Jp
Z2luYWwiLGl0ZW1zOiI+ICoiLG9wYWNpdHk6ZmFsc2UscGxhY2Vob2xkZXI6ZmFsc2UscmV2ZXJ0
OmZhbHNlLHNjcm9sbDp0cnVlLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNj
b3BlOiJkZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCIsekluZGV4OjFFM30sX2NyZWF0ZTpm
dW5jdGlvbigpe3RoaXMuY29udGFpbmVyQ2FjaGU9e307dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1
aS1zb3J0YWJsZSIpOwordGhpcy5yZWZyZXNoKCk7dGhpcy5mbG9hdGluZz10aGlzLml0ZW1zLmxl
bmd0aD8vbGVmdHxyaWdodC8udGVzdCh0aGlzLml0ZW1zWzBdLml0ZW0uY3NzKCJmbG9hdCIpKTpm
YWxzZTt0aGlzLm9mZnNldD10aGlzLmVsZW1lbnQub2Zmc2V0KCk7dGhpcy5fbW91c2VJbml0KCl9
LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxl
IHVpLXNvcnRhYmxlLWRpc2FibGVkIikucmVtb3ZlRGF0YSgic29ydGFibGUiKS51bmJpbmQoIi5z
b3J0YWJsZSIpO3RoaXMuX21vdXNlRGVzdHJveSgpO2Zvcih2YXIgYT10aGlzLml0ZW1zLmxlbmd0
aC0xO2E+PTA7YS0tKXRoaXMuaXRlbXNbYV0uaXRlbS5yZW1vdmVEYXRhKCJzb3J0YWJsZS1pdGVt
Iik7cmV0dXJuIHRoaXN9LF9zZXRPcHRpb246ZnVuY3Rpb24oYSxiKXtpZihhPT09ImRpc2FibGVk
Iil7dGhpcy5vcHRpb25zW2FdPWI7dGhpcy53aWRnZXQoKVtiPyJhZGRDbGFzcyI6InJlbW92ZUNs
YXNzIl0oInVpLXNvcnRhYmxlLWRpc2FibGVkIil9ZWxzZSBkLldpZGdldC5wcm90b3R5cGUuX3Nl
dE9wdGlvbi5hcHBseSh0aGlzLAorYXJndW1lbnRzKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbihh
LGIpe2lmKHRoaXMucmV2ZXJ0aW5nKXJldHVybiBmYWxzZTtpZih0aGlzLm9wdGlvbnMuZGlzYWJs
ZWR8fHRoaXMub3B0aW9ucy50eXBlPT0ic3RhdGljIilyZXR1cm4gZmFsc2U7dGhpcy5fcmVmcmVz
aEl0ZW1zKGEpO3ZhciBjPW51bGwsZT10aGlzO2QoYS50YXJnZXQpLnBhcmVudHMoKS5lYWNoKGZ1
bmN0aW9uKCl7aWYoZC5kYXRhKHRoaXMsInNvcnRhYmxlLWl0ZW0iKT09ZSl7Yz1kKHRoaXMpO3Jl
dHVybiBmYWxzZX19KTtpZihkLmRhdGEoYS50YXJnZXQsInNvcnRhYmxlLWl0ZW0iKT09ZSljPWQo
YS50YXJnZXQpO2lmKCFjKXJldHVybiBmYWxzZTtpZih0aGlzLm9wdGlvbnMuaGFuZGxlJiYhYil7
dmFyIGY9ZmFsc2U7ZCh0aGlzLm9wdGlvbnMuaGFuZGxlLGMpLmZpbmQoIioiKS5hbmRTZWxmKCku
ZWFjaChmdW5jdGlvbigpe2lmKHRoaXM9PWEudGFyZ2V0KWY9dHJ1ZX0pO2lmKCFmKXJldHVybiBm
YWxzZX10aGlzLmN1cnJlbnRJdGVtPQorYzt0aGlzLl9yZW1vdmVDdXJyZW50c0Zyb21JdGVtcygp
O3JldHVybiB0cnVlfSxfbW91c2VTdGFydDpmdW5jdGlvbihhLGIsYyl7Yj10aGlzLm9wdGlvbnM7
dmFyIGU9dGhpczt0aGlzLmN1cnJlbnRDb250YWluZXI9dGhpczt0aGlzLnJlZnJlc2hQb3NpdGlv
bnMoKTt0aGlzLmhlbHBlcj10aGlzLl9jcmVhdGVIZWxwZXIoYSk7dGhpcy5fY2FjaGVIZWxwZXJQ
cm9wb3J0aW9ucygpO3RoaXMuX2NhY2hlTWFyZ2lucygpO3RoaXMuc2Nyb2xsUGFyZW50PXRoaXMu
aGVscGVyLnNjcm9sbFBhcmVudCgpO3RoaXMub2Zmc2V0PXRoaXMuY3VycmVudEl0ZW0ub2Zmc2V0
KCk7dGhpcy5vZmZzZXQ9e3RvcDp0aGlzLm9mZnNldC50b3AtdGhpcy5tYXJnaW5zLnRvcCxsZWZ0
OnRoaXMub2Zmc2V0LmxlZnQtdGhpcy5tYXJnaW5zLmxlZnR9O3RoaXMuaGVscGVyLmNzcygicG9z
aXRpb24iLCJhYnNvbHV0ZSIpO3RoaXMuY3NzUG9zaXRpb249dGhpcy5oZWxwZXIuY3NzKCJwb3Np
dGlvbiIpO2QuZXh0ZW5kKHRoaXMub2Zmc2V0LAore2NsaWNrOntsZWZ0OmEucGFnZVgtdGhpcy5v
ZmZzZXQubGVmdCx0b3A6YS5wYWdlWS10aGlzLm9mZnNldC50b3B9LHBhcmVudDp0aGlzLl9nZXRQ
YXJlbnRPZmZzZXQoKSxyZWxhdGl2ZTp0aGlzLl9nZXRSZWxhdGl2ZU9mZnNldCgpfSk7dGhpcy5v
cmlnaW5hbFBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24oYSk7dGhpcy5vcmlnaW5hbFBh
Z2VYPWEucGFnZVg7dGhpcy5vcmlnaW5hbFBhZ2VZPWEucGFnZVk7Yi5jdXJzb3JBdCYmdGhpcy5f
YWRqdXN0T2Zmc2V0RnJvbUhlbHBlcihiLmN1cnNvckF0KTt0aGlzLmRvbVBvc2l0aW9uPXtwcmV2
OnRoaXMuY3VycmVudEl0ZW0ucHJldigpWzBdLHBhcmVudDp0aGlzLmN1cnJlbnRJdGVtLnBhcmVu
dCgpWzBdfTt0aGlzLmhlbHBlclswXSE9dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5jdXJyZW50
SXRlbS5oaWRlKCk7dGhpcy5fY3JlYXRlUGxhY2Vob2xkZXIoKTtiLmNvbnRhaW5tZW50JiZ0aGlz
Ll9zZXRDb250YWlubWVudCgpOworaWYoYi5jdXJzb3Ipe2lmKGQoImJvZHkiKS5jc3MoImN1cnNv
ciIpKXRoaXMuX3N0b3JlZEN1cnNvcj1kKCJib2R5IikuY3NzKCJjdXJzb3IiKTtkKCJib2R5Iiku
Y3NzKCJjdXJzb3IiLGIuY3Vyc29yKX1pZihiLm9wYWNpdHkpe2lmKHRoaXMuaGVscGVyLmNzcygi
b3BhY2l0eSIpKXRoaXMuX3N0b3JlZE9wYWNpdHk9dGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5Iik7
dGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IixiLm9wYWNpdHkpfWlmKGIuekluZGV4KXtpZih0aGlz
LmhlbHBlci5jc3MoInpJbmRleCIpKXRoaXMuX3N0b3JlZFpJbmRleD10aGlzLmhlbHBlci5jc3Mo
InpJbmRleCIpO3RoaXMuaGVscGVyLmNzcygiekluZGV4IixiLnpJbmRleCl9aWYodGhpcy5zY3Jv
bGxQYXJlbnRbMF0hPWRvY3VtZW50JiZ0aGlzLnNjcm9sbFBhcmVudFswXS50YWdOYW1lIT0iSFRN
TCIpdGhpcy5vdmVyZmxvd09mZnNldD10aGlzLnNjcm9sbFBhcmVudC5vZmZzZXQoKTt0aGlzLl90
cmlnZ2VyKCJzdGFydCIsCithLHRoaXMuX3VpSGFzaCgpKTt0aGlzLl9wcmVzZXJ2ZUhlbHBlclBy
b3BvcnRpb25zfHx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCk7aWYoIWMpZm9yKGM9dGhp
cy5jb250YWluZXJzLmxlbmd0aC0xO2M+PTA7Yy0tKXRoaXMuY29udGFpbmVyc1tjXS5fdHJpZ2dl
cigiYWN0aXZhdGUiLGEsZS5fdWlIYXNoKHRoaXMpKTtpZihkLnVpLmRkbWFuYWdlcilkLnVpLmRk
bWFuYWdlci5jdXJyZW50PXRoaXM7ZC51aS5kZG1hbmFnZXImJiFiLmRyb3BCZWhhdmlvdXImJmQu
dWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsYSk7dGhpcy5kcmFnZ2luZz10cnVlO3Ro
aXMuaGVscGVyLmFkZENsYXNzKCJ1aS1zb3J0YWJsZS1oZWxwZXIiKTt0aGlzLl9tb3VzZURyYWco
YSk7cmV0dXJuIHRydWV9LF9tb3VzZURyYWc6ZnVuY3Rpb24oYSl7dGhpcy5wb3NpdGlvbj10aGlz
Ll9nZW5lcmF0ZVBvc2l0aW9uKGEpO3RoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0
aW9uVG8oImFic29sdXRlIik7CitpZighdGhpcy5sYXN0UG9zaXRpb25BYnMpdGhpcy5sYXN0UG9z
aXRpb25BYnM9dGhpcy5wb3NpdGlvbkFicztpZih0aGlzLm9wdGlvbnMuc2Nyb2xsKXt2YXIgYj10
aGlzLm9wdGlvbnMsYz1mYWxzZTtpZih0aGlzLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQmJnRo
aXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWUhPSJIVE1MIil7aWYodGhpcy5vdmVyZmxvd09mZnNl
dC50b3ArdGhpcy5zY3JvbGxQYXJlbnRbMF0ub2Zmc2V0SGVpZ2h0LWEucGFnZVk8Yi5zY3JvbGxT
ZW5zaXRpdml0eSl0aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3A9Yz10aGlzLnNjcm9sbFBh
cmVudFswXS5zY3JvbGxUb3ArYi5zY3JvbGxTcGVlZDtlbHNlIGlmKGEucGFnZVktdGhpcy5vdmVy
Zmxvd09mZnNldC50b3A8Yi5zY3JvbGxTZW5zaXRpdml0eSl0aGlzLnNjcm9sbFBhcmVudFswXS5z
Y3JvbGxUb3A9Yz10aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3AtYi5zY3JvbGxTcGVlZDtp
Zih0aGlzLm92ZXJmbG93T2Zmc2V0LmxlZnQrCit0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRX
aWR0aC1hLnBhZ2VYPGIuc2Nyb2xsU2Vuc2l0aXZpdHkpdGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Ny
b2xsTGVmdD1jPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQrYi5zY3JvbGxTcGVlZDtl
bHNlIGlmKGEucGFnZVgtdGhpcy5vdmVyZmxvd09mZnNldC5sZWZ0PGIuc2Nyb2xsU2Vuc2l0aXZp
dHkpdGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1jPXRoaXMuc2Nyb2xsUGFyZW50WzBd
LnNjcm9sbExlZnQtYi5zY3JvbGxTcGVlZH1lbHNle2lmKGEucGFnZVktZChkb2N1bWVudCkuc2Ny
b2xsVG9wKCk8Yi5zY3JvbGxTZW5zaXRpdml0eSljPWQoZG9jdW1lbnQpLnNjcm9sbFRvcChkKGRv
Y3VtZW50KS5zY3JvbGxUb3AoKS1iLnNjcm9sbFNwZWVkKTtlbHNlIGlmKGQod2luZG93KS5oZWln
aHQoKS0oYS5wYWdlWS1kKGRvY3VtZW50KS5zY3JvbGxUb3AoKSk8Yi5zY3JvbGxTZW5zaXRpdml0
eSljPWQoZG9jdW1lbnQpLnNjcm9sbFRvcChkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSsKK2Iuc2Ny
b2xsU3BlZWQpO2lmKGEucGFnZVgtZChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpPGIuc2Nyb2xsU2Vu
c2l0aXZpdHkpYz1kKGRvY3VtZW50KS5zY3JvbGxMZWZ0KGQoZG9jdW1lbnQpLnNjcm9sbExlZnQo
KS1iLnNjcm9sbFNwZWVkKTtlbHNlIGlmKGQod2luZG93KS53aWR0aCgpLShhLnBhZ2VYLWQoZG9j
dW1lbnQpLnNjcm9sbExlZnQoKSk8Yi5zY3JvbGxTZW5zaXRpdml0eSljPWQoZG9jdW1lbnQpLnNj
cm9sbExlZnQoZChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpK2Iuc2Nyb2xsU3BlZWQpfWMhPT1mYWxz
ZSYmZC51aS5kZG1hbmFnZXImJiFiLmRyb3BCZWhhdmlvdXImJmQudWkuZGRtYW5hZ2VyLnByZXBh
cmVPZmZzZXRzKHRoaXMsYSl9dGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25U
bygiYWJzb2x1dGUiKTtpZighdGhpcy5vcHRpb25zLmF4aXN8fHRoaXMub3B0aW9ucy5heGlzIT0i
eSIpdGhpcy5oZWxwZXJbMF0uc3R5bGUubGVmdD10aGlzLnBvc2l0aW9uLmxlZnQrCisicHgiO2lm
KCF0aGlzLm9wdGlvbnMuYXhpc3x8dGhpcy5vcHRpb25zLmF4aXMhPSJ4Iil0aGlzLmhlbHBlclsw
XS5zdHlsZS50b3A9dGhpcy5wb3NpdGlvbi50b3ArInB4Ijtmb3IoYj10aGlzLml0ZW1zLmxlbmd0
aC0xO2I+PTA7Yi0tKXtjPXRoaXMuaXRlbXNbYl07dmFyIGU9Yy5pdGVtWzBdLGY9dGhpcy5faW50
ZXJzZWN0c1dpdGhQb2ludGVyKGMpO2lmKGYpaWYoZSE9dGhpcy5jdXJyZW50SXRlbVswXSYmdGhp
cy5wbGFjZWhvbGRlcltmPT0xPyJuZXh0IjoicHJldiJdKClbMF0hPWUmJiFkLnVpLmNvbnRhaW5z
KHRoaXMucGxhY2Vob2xkZXJbMF0sZSkmJih0aGlzLm9wdGlvbnMudHlwZT09InNlbWktZHluYW1p
YyI/IWQudWkuY29udGFpbnModGhpcy5lbGVtZW50WzBdLGUpOnRydWUpKXt0aGlzLmRpcmVjdGlv
bj1mPT0xPyJkb3duIjoidXAiO2lmKHRoaXMub3B0aW9ucy50b2xlcmFuY2U9PSJwb2ludGVyInx8
dGhpcy5faW50ZXJzZWN0c1dpdGhTaWRlcyhjKSl0aGlzLl9yZWFycmFuZ2UoYSwKK2MpO2Vsc2Ug
YnJlYWs7dGhpcy5fdHJpZ2dlcigiY2hhbmdlIixhLHRoaXMuX3VpSGFzaCgpKTticmVha319dGhp
cy5fY29udGFjdENvbnRhaW5lcnMoYSk7ZC51aS5kZG1hbmFnZXImJmQudWkuZGRtYW5hZ2VyLmRy
YWcodGhpcyxhKTt0aGlzLl90cmlnZ2VyKCJzb3J0IixhLHRoaXMuX3VpSGFzaCgpKTt0aGlzLmxh
c3RQb3NpdGlvbkFicz10aGlzLnBvc2l0aW9uQWJzO3JldHVybiBmYWxzZX0sX21vdXNlU3RvcDpm
dW5jdGlvbihhLGIpe2lmKGEpe2QudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhh
dmlvdXImJmQudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyxhKTtpZih0aGlzLm9wdGlvbnMucmV2ZXJ0
KXt2YXIgYz10aGlzO2I9Yy5wbGFjZWhvbGRlci5vZmZzZXQoKTtjLnJldmVydGluZz10cnVlO2Qo
dGhpcy5oZWxwZXIpLmFuaW1hdGUoe2xlZnQ6Yi5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0
LWMubWFyZ2lucy5sZWZ0Kyh0aGlzLm9mZnNldFBhcmVudFswXT09Citkb2N1bWVudC5ib2R5PzA6
dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsTGVmdCksdG9wOmIudG9wLXRoaXMub2Zmc2V0LnBh
cmVudC50b3AtYy5tYXJnaW5zLnRvcCsodGhpcy5vZmZzZXRQYXJlbnRbMF09PWRvY3VtZW50LmJv
ZHk/MDp0aGlzLm9mZnNldFBhcmVudFswXS5zY3JvbGxUb3ApfSxwYXJzZUludCh0aGlzLm9wdGlv
bnMucmV2ZXJ0LDEwKXx8NTAwLGZ1bmN0aW9uKCl7Yy5fY2xlYXIoYSl9KX1lbHNlIHRoaXMuX2Ns
ZWFyKGEsYik7cmV0dXJuIGZhbHNlfX0sY2FuY2VsOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcztpZih0
aGlzLmRyYWdnaW5nKXt0aGlzLl9tb3VzZVVwKHt0YXJnZXQ6bnVsbH0pO3RoaXMub3B0aW9ucy5o
ZWxwZXI9PSJvcmlnaW5hbCI/dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5y
ZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik6dGhpcy5jdXJyZW50SXRlbS5zaG93KCk7
Zm9yKHZhciBiPXRoaXMuY29udGFpbmVycy5sZW5ndGgtCisxO2I+PTA7Yi0tKXt0aGlzLmNvbnRh
aW5lcnNbYl0uX3RyaWdnZXIoImRlYWN0aXZhdGUiLG51bGwsYS5fdWlIYXNoKHRoaXMpKTtpZih0
aGlzLmNvbnRhaW5lcnNbYl0uY29udGFpbmVyQ2FjaGUub3Zlcil7dGhpcy5jb250YWluZXJzW2Jd
Ll90cmlnZ2VyKCJvdXQiLG51bGwsYS5fdWlIYXNoKHRoaXMpKTt0aGlzLmNvbnRhaW5lcnNbYl0u
Y29udGFpbmVyQ2FjaGUub3Zlcj0wfX19aWYodGhpcy5wbGFjZWhvbGRlcil7dGhpcy5wbGFjZWhv
bGRlclswXS5wYXJlbnROb2RlJiZ0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUucmVtb3Zl
Q2hpbGQodGhpcy5wbGFjZWhvbGRlclswXSk7dGhpcy5vcHRpb25zLmhlbHBlciE9Im9yaWdpbmFs
IiYmdGhpcy5oZWxwZXImJnRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUmJnRoaXMuaGVscGVyLnJl
bW92ZSgpO2QuZXh0ZW5kKHRoaXMse2hlbHBlcjpudWxsLGRyYWdnaW5nOmZhbHNlLHJldmVydGlu
ZzpmYWxzZSxfbm9GaW5hbFNvcnQ6bnVsbH0pOwordGhpcy5kb21Qb3NpdGlvbi5wcmV2P2QodGhp
cy5kb21Qb3NpdGlvbi5wcmV2KS5hZnRlcih0aGlzLmN1cnJlbnRJdGVtKTpkKHRoaXMuZG9tUG9z
aXRpb24ucGFyZW50KS5wcmVwZW5kKHRoaXMuY3VycmVudEl0ZW0pfXJldHVybiB0aGlzfSxzZXJp
YWxpemU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fZ2V0SXRlbXNBc2pRdWVyeShhJiZhLmNvbm5l
Y3RlZCksYz1bXTthPWF8fHt9O2QoYikuZWFjaChmdW5jdGlvbigpe3ZhciBlPShkKGEuaXRlbXx8
dGhpcykuYXR0cihhLmF0dHJpYnV0ZXx8ImlkIil8fCIiKS5tYXRjaChhLmV4cHJlc3Npb258fC8o
LispWy09X10oLispLyk7aWYoZSljLnB1c2goKGEua2V5fHxlWzFdKyJbXSIpKyI9IisoYS5rZXkm
JmEuZXhwcmVzc2lvbj9lWzFdOmVbMl0pKX0pOyFjLmxlbmd0aCYmYS5rZXkmJmMucHVzaChhLmtl
eSsiPSIpO3JldHVybiBjLmpvaW4oIiYiKX0sdG9BcnJheTpmdW5jdGlvbihhKXt2YXIgYj10aGlz
Ll9nZXRJdGVtc0FzalF1ZXJ5KGEmJgorYS5jb25uZWN0ZWQpLGM9W107YT1hfHx7fTtiLmVhY2go
ZnVuY3Rpb24oKXtjLnB1c2goZChhLml0ZW18fHRoaXMpLmF0dHIoYS5hdHRyaWJ1dGV8fCJpZCIp
fHwiIil9KTtyZXR1cm4gY30sX2ludGVyc2VjdHNXaXRoOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMu
cG9zaXRpb25BYnMubGVmdCxjPWIrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCxlPXRoaXMu
cG9zaXRpb25BYnMudG9wLGY9ZSt0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCxnPWEubGVm
dCxoPWcrYS53aWR0aCxpPWEudG9wLGs9aSthLmhlaWdodCxqPXRoaXMub2Zmc2V0LmNsaWNrLnRv
cCxsPXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ7aj1lK2o+aSYmZStqPGsmJmIrbD5nJiZiK2w8aDty
ZXR1cm4gdGhpcy5vcHRpb25zLnRvbGVyYW5jZT09InBvaW50ZXIifHx0aGlzLm9wdGlvbnMuZm9y
Y2VQb2ludGVyRm9yQ29udGFpbmVyc3x8dGhpcy5vcHRpb25zLnRvbGVyYW5jZSE9InBvaW50ZXIi
JiZ0aGlzLmhlbHBlclByb3BvcnRpb25zW3RoaXMuZmxvYXRpbmc/Cisid2lkdGgiOiJoZWlnaHQi
XT5hW3RoaXMuZmxvYXRpbmc/IndpZHRoIjoiaGVpZ2h0Il0/ajpnPGIrdGhpcy5oZWxwZXJQcm9w
b3J0aW9ucy53aWR0aC8yJiZjLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMjxoJiZpPGUr
dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQvMiYmZi10aGlzLmhlbHBlclByb3BvcnRpb25z
LmhlaWdodC8yPGt9LF9pbnRlcnNlY3RzV2l0aFBvaW50ZXI6ZnVuY3Rpb24oYSl7dmFyIGI9ZC51
aS5pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCxh
LnRvcCxhLmhlaWdodCk7YT1kLnVpLmlzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy5sZWZ0K3Ro
aXMub2Zmc2V0LmNsaWNrLmxlZnQsYS5sZWZ0LGEud2lkdGgpO2I9YiYmYTthPXRoaXMuX2dldERy
YWdWZXJ0aWNhbERpcmVjdGlvbigpO3ZhciBjPXRoaXMuX2dldERyYWdIb3Jpem9udGFsRGlyZWN0
aW9uKCk7aWYoIWIpcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLmZsb2F0aW5nPworYyYmYz09InJp
Z2h0Inx8YT09ImRvd24iPzI6MTphJiYoYT09ImRvd24iPzI6MSl9LF9pbnRlcnNlY3RzV2l0aFNp
ZGVzOmZ1bmN0aW9uKGEpe3ZhciBiPWQudWkuaXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLnRv
cCt0aGlzLm9mZnNldC5jbGljay50b3AsYS50b3ArYS5oZWlnaHQvMixhLmhlaWdodCk7YT1kLnVp
LmlzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy5sZWZ0K3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQs
YS5sZWZ0K2Eud2lkdGgvMixhLndpZHRoKTt2YXIgYz10aGlzLl9nZXREcmFnVmVydGljYWxEaXJl
Y3Rpb24oKSxlPXRoaXMuX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uKCk7cmV0dXJuIHRoaXMu
ZmxvYXRpbmcmJmU/ZT09InJpZ2h0IiYmYXx8ZT09ImxlZnQiJiYhYTpjJiYoYz09ImRvd24iJiZi
fHxjPT0idXAiJiYhYil9LF9nZXREcmFnVmVydGljYWxEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIg
YT10aGlzLnBvc2l0aW9uQWJzLnRvcC10aGlzLmxhc3RQb3NpdGlvbkFicy50b3A7CityZXR1cm4g
YSE9MCYmKGE+MD8iZG93biI6InVwIil9LF9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbjpmdW5j
dGlvbigpe3ZhciBhPXRoaXMucG9zaXRpb25BYnMubGVmdC10aGlzLmxhc3RQb3NpdGlvbkFicy5s
ZWZ0O3JldHVybiBhIT0wJiYoYT4wPyJyaWdodCI6ImxlZnQiKX0scmVmcmVzaDpmdW5jdGlvbihh
KXt0aGlzLl9yZWZyZXNoSXRlbXMoYSk7dGhpcy5yZWZyZXNoUG9zaXRpb25zKCk7cmV0dXJuIHRo
aXN9LF9jb25uZWN0V2l0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucztyZXR1cm4gYS5j
b25uZWN0V2l0aC5jb25zdHJ1Y3Rvcj09U3RyaW5nP1thLmNvbm5lY3RXaXRoXTphLmNvbm5lY3RX
aXRofSxfZ2V0SXRlbXNBc2pRdWVyeTpmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGU9dGhpcy5f
Y29ubmVjdFdpdGgoKTtpZihlJiZhKWZvcihhPWUubGVuZ3RoLTE7YT49MDthLS0pZm9yKHZhciBm
PWQoZVthXSksZz1mLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgaD0KK2QuZGF0YShmW2ddLCJzb3J0
YWJsZSIpO2lmKGgmJmghPXRoaXMmJiFoLm9wdGlvbnMuZGlzYWJsZWQpYy5wdXNoKFtkLmlzRnVu
Y3Rpb24oaC5vcHRpb25zLml0ZW1zKT9oLm9wdGlvbnMuaXRlbXMuY2FsbChoLmVsZW1lbnQpOmQo
aC5vcHRpb25zLml0ZW1zLGguZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90
KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSxoXSl9Yy5wdXNoKFtkLmlzRnVuY3Rpb24odGhp
cy5vcHRpb25zLml0ZW1zKT90aGlzLm9wdGlvbnMuaXRlbXMuY2FsbCh0aGlzLmVsZW1lbnQsbnVs
bCx7b3B0aW9uczp0aGlzLm9wdGlvbnMsaXRlbTp0aGlzLmN1cnJlbnRJdGVtfSk6ZCh0aGlzLm9w
dGlvbnMuaXRlbXMsdGhpcy5lbGVtZW50KS5ub3QoIi51aS1zb3J0YWJsZS1oZWxwZXIiKS5ub3Qo
Ii51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIpLHRoaXNdKTtmb3IoYT1jLmxlbmd0aC0xO2E+PTA7
YS0tKWNbYV1bMF0uZWFjaChmdW5jdGlvbigpe2IucHVzaCh0aGlzKX0pOworcmV0dXJuIGQoYil9
LF9yZW1vdmVDdXJyZW50c0Zyb21JdGVtczpmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmN1cnJl
bnRJdGVtLmZpbmQoIjpkYXRhKHNvcnRhYmxlLWl0ZW0pIiksYj0wO2I8dGhpcy5pdGVtcy5sZW5n
dGg7YisrKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY109PXRoaXMuaXRlbXNbYl0uaXRl
bVswXSYmdGhpcy5pdGVtcy5zcGxpY2UoYiwxKX0sX3JlZnJlc2hJdGVtczpmdW5jdGlvbihhKXt0
aGlzLml0ZW1zPVtdO3RoaXMuY29udGFpbmVycz1bdGhpc107dmFyIGI9dGhpcy5pdGVtcyxjPVtb
ZC5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5pdGVtcyk/dGhpcy5vcHRpb25zLml0ZW1zLmNhbGwo
dGhpcy5lbGVtZW50WzBdLGEse2l0ZW06dGhpcy5jdXJyZW50SXRlbX0pOmQodGhpcy5vcHRpb25z
Lml0ZW1zLHRoaXMuZWxlbWVudCksdGhpc11dLGU9dGhpcy5fY29ubmVjdFdpdGgoKTtpZihlKWZv
cih2YXIgZj1lLmxlbmd0aC0xO2Y+PTA7Zi0tKWZvcih2YXIgZz0KK2QoZVtmXSksaD1nLmxlbmd0
aC0xO2g+PTA7aC0tKXt2YXIgaT1kLmRhdGEoZ1toXSwic29ydGFibGUiKTtpZihpJiZpIT10aGlz
JiYhaS5vcHRpb25zLmRpc2FibGVkKXtjLnB1c2goW2QuaXNGdW5jdGlvbihpLm9wdGlvbnMuaXRl
bXMpP2kub3B0aW9ucy5pdGVtcy5jYWxsKGkuZWxlbWVudFswXSxhLHtpdGVtOnRoaXMuY3VycmVu
dEl0ZW19KTpkKGkub3B0aW9ucy5pdGVtcyxpLmVsZW1lbnQpLGldKTt0aGlzLmNvbnRhaW5lcnMu
cHVzaChpKX19Zm9yKGY9Yy5sZW5ndGgtMTtmPj0wO2YtLSl7YT1jW2ZdWzFdO2U9Y1tmXVswXTto
PTA7Zm9yKGc9ZS5sZW5ndGg7aDxnO2grKyl7aT1kKGVbaF0pO2kuZGF0YSgic29ydGFibGUtaXRl
bSIsYSk7Yi5wdXNoKHtpdGVtOmksaW5zdGFuY2U6YSx3aWR0aDowLGhlaWdodDowLGxlZnQ6MCx0
b3A6MH0pfX19LHJlZnJlc2hQb3NpdGlvbnM6ZnVuY3Rpb24oYSl7aWYodGhpcy5vZmZzZXRQYXJl
bnQmJnRoaXMuaGVscGVyKXRoaXMub2Zmc2V0LnBhcmVudD0KK3RoaXMuX2dldFBhcmVudE9mZnNl
dCgpO2Zvcih2YXIgYj10aGlzLml0ZW1zLmxlbmd0aC0xO2I+PTA7Yi0tKXt2YXIgYz10aGlzLml0
ZW1zW2JdLGU9dGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQ/ZCh0aGlzLm9wdGlvbnMudG9s
ZXJhbmNlRWxlbWVudCxjLml0ZW0pOmMuaXRlbTtpZighYSl7Yy53aWR0aD1lLm91dGVyV2lkdGgo
KTtjLmhlaWdodD1lLm91dGVySGVpZ2h0KCl9ZT1lLm9mZnNldCgpO2MubGVmdD1lLmxlZnQ7Yy50
b3A9ZS50b3B9aWYodGhpcy5vcHRpb25zLmN1c3RvbSYmdGhpcy5vcHRpb25zLmN1c3RvbS5yZWZy
ZXNoQ29udGFpbmVycyl0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzLmNhbGwo
dGhpcyk7ZWxzZSBmb3IoYj10aGlzLmNvbnRhaW5lcnMubGVuZ3RoLTE7Yj49MDtiLS0pe2U9dGhp
cy5jb250YWluZXJzW2JdLmVsZW1lbnQub2Zmc2V0KCk7dGhpcy5jb250YWluZXJzW2JdLmNvbnRh
aW5lckNhY2hlLmxlZnQ9ZS5sZWZ0O3RoaXMuY29udGFpbmVyc1tiXS5jb250YWluZXJDYWNoZS50
b3A9CitlLnRvcDt0aGlzLmNvbnRhaW5lcnNbYl0uY29udGFpbmVyQ2FjaGUud2lkdGg9dGhpcy5j
b250YWluZXJzW2JdLmVsZW1lbnQub3V0ZXJXaWR0aCgpO3RoaXMuY29udGFpbmVyc1tiXS5jb250
YWluZXJDYWNoZS5oZWlnaHQ9dGhpcy5jb250YWluZXJzW2JdLmVsZW1lbnQub3V0ZXJIZWlnaHQo
KX1yZXR1cm4gdGhpc30sX2NyZWF0ZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHRo
aXMsYz1iLm9wdGlvbnM7aWYoIWMucGxhY2Vob2xkZXJ8fGMucGxhY2Vob2xkZXIuY29uc3RydWN0
b3I9PVN0cmluZyl7dmFyIGU9Yy5wbGFjZWhvbGRlcjtjLnBsYWNlaG9sZGVyPXtlbGVtZW50OmZ1
bmN0aW9uKCl7dmFyIGY9ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KGIuY3VycmVudEl0ZW1bMF0u
bm9kZU5hbWUpKS5hZGRDbGFzcyhlfHxiLmN1cnJlbnRJdGVtWzBdLmNsYXNzTmFtZSsiIHVpLXNv
cnRhYmxlLXBsYWNlaG9sZGVyIikucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpWzBd
OworaWYoIWUpZi5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO3JldHVybiBmfSx1cGRhdGU6ZnVu
Y3Rpb24oZixnKXtpZighKGUmJiFjLmZvcmNlUGxhY2Vob2xkZXJTaXplKSl7Zy5oZWlnaHQoKXx8
Zy5oZWlnaHQoYi5jdXJyZW50SXRlbS5pbm5lckhlaWdodCgpLXBhcnNlSW50KGIuY3VycmVudEl0
ZW0uY3NzKCJwYWRkaW5nVG9wIil8fDAsMTApLXBhcnNlSW50KGIuY3VycmVudEl0ZW0uY3NzKCJw
YWRkaW5nQm90dG9tIil8fDAsMTApKTtnLndpZHRoKCl8fGcud2lkdGgoYi5jdXJyZW50SXRlbS5p
bm5lcldpZHRoKCktcGFyc2VJbnQoYi5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdMZWZ0Iil8fDAs
MTApLXBhcnNlSW50KGIuY3VycmVudEl0ZW0uY3NzKCJwYWRkaW5nUmlnaHQiKXx8MCwxMCkpfX19
fWIucGxhY2Vob2xkZXI9ZChjLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbChiLmVsZW1lbnQsYi5j
dXJyZW50SXRlbSkpO2IuY3VycmVudEl0ZW0uYWZ0ZXIoYi5wbGFjZWhvbGRlcik7CitjLnBsYWNl
aG9sZGVyLnVwZGF0ZShiLGIucGxhY2Vob2xkZXIpfSxfY29udGFjdENvbnRhaW5lcnM6ZnVuY3Rp
b24oYSl7Zm9yKHZhciBiPW51bGwsYz1udWxsLGU9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO2U+
PTA7ZS0tKWlmKCFkLnVpLmNvbnRhaW5zKHRoaXMuY3VycmVudEl0ZW1bMF0sdGhpcy5jb250YWlu
ZXJzW2VdLmVsZW1lbnRbMF0pKWlmKHRoaXMuX2ludGVyc2VjdHNXaXRoKHRoaXMuY29udGFpbmVy
c1tlXS5jb250YWluZXJDYWNoZSkpe2lmKCEoYiYmZC51aS5jb250YWlucyh0aGlzLmNvbnRhaW5l
cnNbZV0uZWxlbWVudFswXSxiLmVsZW1lbnRbMF0pKSl7Yj10aGlzLmNvbnRhaW5lcnNbZV07Yz1l
fX1lbHNlIGlmKHRoaXMuY29udGFpbmVyc1tlXS5jb250YWluZXJDYWNoZS5vdmVyKXt0aGlzLmNv
bnRhaW5lcnNbZV0uX3RyaWdnZXIoIm91dCIsYSx0aGlzLl91aUhhc2godGhpcykpO3RoaXMuY29u
dGFpbmVyc1tlXS5jb250YWluZXJDYWNoZS5vdmVyPTB9aWYoYilpZih0aGlzLmNvbnRhaW5lcnMu
bGVuZ3RoPT09CisxKXt0aGlzLmNvbnRhaW5lcnNbY10uX3RyaWdnZXIoIm92ZXIiLGEsdGhpcy5f
dWlIYXNoKHRoaXMpKTt0aGlzLmNvbnRhaW5lcnNbY10uY29udGFpbmVyQ2FjaGUub3Zlcj0xfWVs
c2UgaWYodGhpcy5jdXJyZW50Q29udGFpbmVyIT10aGlzLmNvbnRhaW5lcnNbY10pe2I9MUU0O2U9
bnVsbDtmb3IodmFyIGY9dGhpcy5wb3NpdGlvbkFic1t0aGlzLmNvbnRhaW5lcnNbY10uZmxvYXRp
bmc/ImxlZnQiOiJ0b3AiXSxnPXRoaXMuaXRlbXMubGVuZ3RoLTE7Zz49MDtnLS0paWYoZC51aS5j
b250YWlucyh0aGlzLmNvbnRhaW5lcnNbY10uZWxlbWVudFswXSx0aGlzLml0ZW1zW2ddLml0ZW1b
MF0pKXt2YXIgaD10aGlzLml0ZW1zW2ddW3RoaXMuY29udGFpbmVyc1tjXS5mbG9hdGluZz8ibGVm
dCI6InRvcCJdO2lmKE1hdGguYWJzKGgtZik8Yil7Yj1NYXRoLmFicyhoLWYpO2U9dGhpcy5pdGVt
c1tnXX19aWYoZXx8dGhpcy5vcHRpb25zLmRyb3BPbkVtcHR5KXt0aGlzLmN1cnJlbnRDb250YWlu
ZXI9Cit0aGlzLmNvbnRhaW5lcnNbY107ZT90aGlzLl9yZWFycmFuZ2UoYSxlLG51bGwsdHJ1ZSk6
dGhpcy5fcmVhcnJhbmdlKGEsbnVsbCx0aGlzLmNvbnRhaW5lcnNbY10uZWxlbWVudCx0cnVlKTt0
aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGEsdGhpcy5fdWlIYXNoKCkpO3RoaXMuY29udGFpbmVyc1tj
XS5fdHJpZ2dlcigiY2hhbmdlIixhLHRoaXMuX3VpSGFzaCh0aGlzKSk7dGhpcy5vcHRpb25zLnBs
YWNlaG9sZGVyLnVwZGF0ZSh0aGlzLmN1cnJlbnRDb250YWluZXIsdGhpcy5wbGFjZWhvbGRlcik7
dGhpcy5jb250YWluZXJzW2NdLl90cmlnZ2VyKCJvdmVyIixhLHRoaXMuX3VpSGFzaCh0aGlzKSk7
dGhpcy5jb250YWluZXJzW2NdLmNvbnRhaW5lckNhY2hlLm92ZXI9MX19fSxfY3JlYXRlSGVscGVy
OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9uczthPWQuaXNGdW5jdGlvbihiLmhlbHBlcik/
ZChiLmhlbHBlci5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW2EsdGhpcy5jdXJyZW50SXRlbV0pKToK
K2IuaGVscGVyPT0iY2xvbmUiP3RoaXMuY3VycmVudEl0ZW0uY2xvbmUoKTp0aGlzLmN1cnJlbnRJ
dGVtO2EucGFyZW50cygiYm9keSIpLmxlbmd0aHx8ZChiLmFwcGVuZFRvIT0icGFyZW50Ij9iLmFw
cGVuZFRvOnRoaXMuY3VycmVudEl0ZW1bMF0ucGFyZW50Tm9kZSlbMF0uYXBwZW5kQ2hpbGQoYVsw
XSk7aWYoYVswXT09dGhpcy5jdXJyZW50SXRlbVswXSl0aGlzLl9zdG9yZWRDU1M9e3dpZHRoOnRo
aXMuY3VycmVudEl0ZW1bMF0uc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuY3VycmVudEl0ZW1bMF0u
c3R5bGUuaGVpZ2h0LHBvc2l0aW9uOnRoaXMuY3VycmVudEl0ZW0uY3NzKCJwb3NpdGlvbiIpLHRv
cDp0aGlzLmN1cnJlbnRJdGVtLmNzcygidG9wIiksbGVmdDp0aGlzLmN1cnJlbnRJdGVtLmNzcygi
bGVmdCIpfTtpZihhWzBdLnN0eWxlLndpZHRoPT0iInx8Yi5mb3JjZUhlbHBlclNpemUpYS53aWR0
aCh0aGlzLmN1cnJlbnRJdGVtLndpZHRoKCkpO2lmKGFbMF0uc3R5bGUuaGVpZ2h0PT0KKyIifHxi
LmZvcmNlSGVscGVyU2l6ZSlhLmhlaWdodCh0aGlzLmN1cnJlbnRJdGVtLmhlaWdodCgpKTtyZXR1
cm4gYX0sX2FkanVzdE9mZnNldEZyb21IZWxwZXI6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PSJz
dHJpbmciKWE9YS5zcGxpdCgiICIpO2lmKGQuaXNBcnJheShhKSlhPXtsZWZ0OithWzBdLHRvcDor
YVsxXXx8MH07aWYoImxlZnQiaW4gYSl0aGlzLm9mZnNldC5jbGljay5sZWZ0PWEubGVmdCt0aGlz
Lm1hcmdpbnMubGVmdDtpZigicmlnaHQiaW4gYSl0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMu
aGVscGVyUHJvcG9ydGlvbnMud2lkdGgtYS5yaWdodCt0aGlzLm1hcmdpbnMubGVmdDtpZigidG9w
ImluIGEpdGhpcy5vZmZzZXQuY2xpY2sudG9wPWEudG9wK3RoaXMubWFyZ2lucy50b3A7aWYoImJv
dHRvbSJpbiBhKXRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhl
aWdodC1hLmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wfSxfZ2V0UGFyZW50T2Zmc2V0OmZ1bmN0aW9u
KCl7dGhpcy5vZmZzZXRQYXJlbnQ9Cit0aGlzLmhlbHBlci5vZmZzZXRQYXJlbnQoKTt2YXIgYT10
aGlzLm9mZnNldFBhcmVudC5vZmZzZXQoKTtpZih0aGlzLmNzc1Bvc2l0aW9uPT0iYWJzb2x1dGUi
JiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQmJmQudWkuY29udGFpbnModGhpcy5zY3Jv
bGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pKXthLmxlZnQrPXRoaXMuc2Nyb2xsUGFy
ZW50LnNjcm9sbExlZnQoKTthLnRvcCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCl9aWYo
dGhpcy5vZmZzZXRQYXJlbnRbMF09PWRvY3VtZW50LmJvZHl8fHRoaXMub2Zmc2V0UGFyZW50WzBd
LnRhZ05hbWUmJnRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09Imh0
bWwiJiZkLmJyb3dzZXIubXNpZSlhPXt0b3A6MCxsZWZ0OjB9O3JldHVybnt0b3A6YS50b3ArKHBh
cnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLGxl
ZnQ6YS5sZWZ0KyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlckxlZnRXaWR0
aCIpLAorMTApfHwwKX19LF9nZXRSZWxhdGl2ZU9mZnNldDpmdW5jdGlvbigpe2lmKHRoaXMuY3Nz
UG9zaXRpb249PSJyZWxhdGl2ZSIpe3ZhciBhPXRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTty
ZXR1cm57dG9wOmEudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkr
dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCksbGVmdDphLmxlZnQtKHBhcnNlSW50KHRoaXMu
aGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgp
fX1lbHNlIHJldHVybnt0b3A6MCxsZWZ0OjB9fSxfY2FjaGVNYXJnaW5zOmZ1bmN0aW9uKCl7dGhp
cy5tYXJnaW5zPXtsZWZ0OnBhcnNlSW50KHRoaXMuY3VycmVudEl0ZW0uY3NzKCJtYXJnaW5MZWZ0
IiksMTApfHwwLHRvcDpwYXJzZUludCh0aGlzLmN1cnJlbnRJdGVtLmNzcygibWFyZ2luVG9wIiks
MTApfHwwfX0sX2NhY2hlSGVscGVyUHJvcG9ydGlvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlbHBlclBy
b3BvcnRpb25zPQore3dpZHRoOnRoaXMuaGVscGVyLm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5o
ZWxwZXIub3V0ZXJIZWlnaHQoKX19LF9zZXRDb250YWlubWVudDpmdW5jdGlvbigpe3ZhciBhPXRo
aXMub3B0aW9ucztpZihhLmNvbnRhaW5tZW50PT0icGFyZW50IilhLmNvbnRhaW5tZW50PXRoaXMu
aGVscGVyWzBdLnBhcmVudE5vZGU7aWYoYS5jb250YWlubWVudD09ImRvY3VtZW50Inx8YS5jb250
YWlubWVudD09IndpbmRvdyIpdGhpcy5jb250YWlubWVudD1bMC10aGlzLm9mZnNldC5yZWxhdGl2
ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0LDAtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9w
LXRoaXMub2Zmc2V0LnBhcmVudC50b3AsZChhLmNvbnRhaW5tZW50PT0iZG9jdW1lbnQiP2RvY3Vt
ZW50OndpbmRvdykud2lkdGgoKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFy
Z2lucy5sZWZ0LChkKGEuY29udGFpbm1lbnQ9PSJkb2N1bWVudCI/ZG9jdW1lbnQ6d2luZG93KS5o
ZWlnaHQoKXx8Citkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhl
bHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXTtpZighL14oZG9jdW1lbnR8
d2luZG93fHBhcmVudCkkLy50ZXN0KGEuY29udGFpbm1lbnQpKXt2YXIgYj1kKGEuY29udGFpbm1l
bnQpWzBdO2E9ZChhLmNvbnRhaW5tZW50KS5vZmZzZXQoKTt2YXIgYz1kKGIpLmNzcygib3ZlcmZs
b3ciKSE9ImhpZGRlbiI7dGhpcy5jb250YWlubWVudD1bYS5sZWZ0KyhwYXJzZUludChkKGIpLmNz
cygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoZChiKS5jc3MoInBhZGRpbmdM
ZWZ0IiksMTApfHwwKS10aGlzLm1hcmdpbnMubGVmdCxhLnRvcCsocGFyc2VJbnQoZChiKS5jc3Mo
ImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoZChiKS5jc3MoInBhZGRpbmdUb3Ai
KSwxMCl8fDApLXRoaXMubWFyZ2lucy50b3AsYS5sZWZ0KyhjP01hdGgubWF4KGIuc2Nyb2xsV2lk
dGgsCitiLm9mZnNldFdpZHRoKTpiLm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoZChiKS5jc3MoImJv
cmRlckxlZnRXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGQoYikuY3NzKCJwYWRkaW5nUmlnaHQi
KSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQs
YS50b3ArKGM/TWF0aC5tYXgoYi5zY3JvbGxIZWlnaHQsYi5vZmZzZXRIZWlnaHQpOmIub2Zmc2V0
SGVpZ2h0KS0ocGFyc2VJbnQoZChiKS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFy
c2VJbnQoZChiKS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9y
dGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdfX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0
aW9uKGEsYil7aWYoIWIpYj10aGlzLnBvc2l0aW9uO2E9YT09ImFic29sdXRlIj8xOi0xO3ZhciBj
PXRoaXMuY3NzUG9zaXRpb249PSJhYnNvbHV0ZSImJiEodGhpcy5zY3JvbGxQYXJlbnRbMF0hPQor
ZG9jdW1lbnQmJmQudWkuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQ
YXJlbnRbMF0pKT90aGlzLm9mZnNldFBhcmVudDp0aGlzLnNjcm9sbFBhcmVudCxlPS8oaHRtbHxi
b2R5KS9pLnRlc3QoY1swXS50YWdOYW1lKTtyZXR1cm57dG9wOmIudG9wK3RoaXMub2Zmc2V0LnJl
bGF0aXZlLnRvcCphK3RoaXMub2Zmc2V0LnBhcmVudC50b3AqYS0oZC5icm93c2VyLnNhZmFyaSYm
dGhpcy5jc3NQb3NpdGlvbj09ImZpeGVkIj8wOih0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10
aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTplPzA6Yy5zY3JvbGxUb3AoKSkqYSksbGVmdDpi
LmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCphK3RoaXMub2Zmc2V0LnBhcmVudC5sZWZ0
KmEtKGQuYnJvd3Nlci5zYWZhcmkmJnRoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/MDoodGhpcy5j
c3NQb3NpdGlvbj09ImZpeGVkIj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOgorZT8w
OmMuc2Nyb2xsTGVmdCgpKSphKX19LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGEpe3ZhciBi
PXRoaXMub3B0aW9ucyxjPXRoaXMuY3NzUG9zaXRpb249PSJhYnNvbHV0ZSImJiEodGhpcy5zY3Jv
bGxQYXJlbnRbMF0hPWRvY3VtZW50JiZkLnVpLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBd
LHRoaXMub2Zmc2V0UGFyZW50WzBdKSk/dGhpcy5vZmZzZXRQYXJlbnQ6dGhpcy5zY3JvbGxQYXJl
bnQsZT0vKGh0bWx8Ym9keSkvaS50ZXN0KGNbMF0udGFnTmFtZSk7aWYodGhpcy5jc3NQb3NpdGlv
bj09InJlbGF0aXZlIiYmISh0aGlzLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQmJnRoaXMuc2Ny
b2xsUGFyZW50WzBdIT10aGlzLm9mZnNldFBhcmVudFswXSkpdGhpcy5vZmZzZXQucmVsYXRpdmU9
dGhpcy5fZ2V0UmVsYXRpdmVPZmZzZXQoKTt2YXIgZj1hLnBhZ2VYLGc9YS5wYWdlWTtpZih0aGlz
Lm9yaWdpbmFsUG9zaXRpb24pe2lmKHRoaXMuY29udGFpbm1lbnQpe2lmKGEucGFnZVgtCit0aGlz
Lm9mZnNldC5jbGljay5sZWZ0PHRoaXMuY29udGFpbm1lbnRbMF0pZj10aGlzLmNvbnRhaW5tZW50
WzBdK3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQ7aWYoYS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50
b3A8dGhpcy5jb250YWlubWVudFsxXSlnPXRoaXMuY29udGFpbm1lbnRbMV0rdGhpcy5vZmZzZXQu
Y2xpY2sudG9wO2lmKGEucGFnZVgtdGhpcy5vZmZzZXQuY2xpY2subGVmdD50aGlzLmNvbnRhaW5t
ZW50WzJdKWY9dGhpcy5jb250YWlubWVudFsyXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0O2lmKGEu
cGFnZVktdGhpcy5vZmZzZXQuY2xpY2sudG9wPnRoaXMuY29udGFpbm1lbnRbM10pZz10aGlzLmNv
bnRhaW5tZW50WzNdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcH1pZihiLmdyaWQpe2c9dGhpcy5vcmln
aW5hbFBhZ2VZK01hdGgucm91bmQoKGctdGhpcy5vcmlnaW5hbFBhZ2VZKS9iLmdyaWRbMV0pKmIu
Z3JpZFsxXTtnPXRoaXMuY29udGFpbm1lbnQ/IShnLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDwKK3Ro
aXMuY29udGFpbm1lbnRbMV18fGctdGhpcy5vZmZzZXQuY2xpY2sudG9wPnRoaXMuY29udGFpbm1l
bnRbM10pP2c6IShnLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdKT9n
LWIuZ3JpZFsxXTpnK2IuZ3JpZFsxXTpnO2Y9dGhpcy5vcmlnaW5hbFBhZ2VYK01hdGgucm91bmQo
KGYtdGhpcy5vcmlnaW5hbFBhZ2VYKS9iLmdyaWRbMF0pKmIuZ3JpZFswXTtmPXRoaXMuY29udGFp
bm1lbnQ/IShmLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXXx8Zi10
aGlzLm9mZnNldC5jbGljay5sZWZ0PnRoaXMuY29udGFpbm1lbnRbMl0pP2Y6IShmLXRoaXMub2Zm
c2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXSk/Zi1iLmdyaWRbMF06ZitiLmdyaWRb
MF06Zn19cmV0dXJue3RvcDpnLXRoaXMub2Zmc2V0LmNsaWNrLnRvcC10aGlzLm9mZnNldC5yZWxh
dGl2ZS50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcCsoZC5icm93c2VyLnNhZmFyaSYmCit0aGlz
LmNzc1Bvc2l0aW9uPT0iZml4ZWQiPzA6dGhpcy5jc3NQb3NpdGlvbj09ImZpeGVkIj8tdGhpcy5z
Y3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk6ZT8wOmMuc2Nyb2xsVG9wKCkpLGxlZnQ6Zi10aGlzLm9m
ZnNldC5jbGljay5sZWZ0LXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFy
ZW50LmxlZnQrKGQuYnJvd3Nlci5zYWZhcmkmJnRoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/MDp0
aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6
ZT8wOmMuc2Nyb2xsTGVmdCgpKX19LF9yZWFycmFuZ2U6ZnVuY3Rpb24oYSxiLGMsZSl7Yz9jWzBd
LmFwcGVuZENoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pOmIuaXRlbVswXS5wYXJlbnROb2RlLmlu
c2VydEJlZm9yZSh0aGlzLnBsYWNlaG9sZGVyWzBdLHRoaXMuZGlyZWN0aW9uPT0iZG93biI/Yi5p
dGVtWzBdOmIuaXRlbVswXS5uZXh0U2libGluZyk7dGhpcy5jb3VudGVyPQordGhpcy5jb3VudGVy
PysrdGhpcy5jb3VudGVyOjE7dmFyIGY9dGhpcyxnPXRoaXMuY291bnRlcjt3aW5kb3cuc2V0VGlt
ZW91dChmdW5jdGlvbigpe2c9PWYuY291bnRlciYmZi5yZWZyZXNoUG9zaXRpb25zKCFlKX0sMCl9
LF9jbGVhcjpmdW5jdGlvbihhLGIpe3RoaXMucmV2ZXJ0aW5nPWZhbHNlO3ZhciBjPVtdOyF0aGlz
Ll9ub0ZpbmFsU29ydCYmdGhpcy5jdXJyZW50SXRlbVswXS5wYXJlbnROb2RlJiZ0aGlzLnBsYWNl
aG9sZGVyLmJlZm9yZSh0aGlzLmN1cnJlbnRJdGVtKTt0aGlzLl9ub0ZpbmFsU29ydD1udWxsO2lm
KHRoaXMuaGVscGVyWzBdPT10aGlzLmN1cnJlbnRJdGVtWzBdKXtmb3IodmFyIGUgaW4gdGhpcy5f
c3RvcmVkQ1NTKWlmKHRoaXMuX3N0b3JlZENTU1tlXT09ImF1dG8ifHx0aGlzLl9zdG9yZWRDU1Nb
ZV09PSJzdGF0aWMiKXRoaXMuX3N0b3JlZENTU1tlXT0iIjt0aGlzLmN1cnJlbnRJdGVtLmNzcyh0
aGlzLl9zdG9yZWRDU1MpLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oZWxwZXIiKX1lbHNlIHRo
aXMuY3VycmVudEl0ZW0uc2hvdygpOwordGhpcy5mcm9tT3V0c2lkZSYmIWImJmMucHVzaChmdW5j
dGlvbihmKXt0aGlzLl90cmlnZ2VyKCJyZWNlaXZlIixmLHRoaXMuX3VpSGFzaCh0aGlzLmZyb21P
dXRzaWRlKSl9KTtpZigodGhpcy5mcm9tT3V0c2lkZXx8dGhpcy5kb21Qb3NpdGlvbi5wcmV2IT10
aGlzLmN1cnJlbnRJdGVtLnByZXYoKS5ub3QoIi51aS1zb3J0YWJsZS1oZWxwZXIiKVswXXx8dGhp
cy5kb21Qb3NpdGlvbi5wYXJlbnQhPXRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF0pJiYhYilj
LnB1c2goZnVuY3Rpb24oZil7dGhpcy5fdHJpZ2dlcigidXBkYXRlIixmLHRoaXMuX3VpSGFzaCgp
KX0pO2lmKCFkLnVpLmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSx0aGlzLmN1cnJlbnRJdGVtWzBd
KSl7Ynx8Yy5wdXNoKGZ1bmN0aW9uKGYpe3RoaXMuX3RyaWdnZXIoInJlbW92ZSIsZix0aGlzLl91
aUhhc2goKSl9KTtmb3IoZT10aGlzLmNvbnRhaW5lcnMubGVuZ3RoLTE7ZT49MDtlLS0paWYoZC51
aS5jb250YWlucyh0aGlzLmNvbnRhaW5lcnNbZV0uZWxlbWVudFswXSwKK3RoaXMuY3VycmVudEl0
ZW1bMF0pJiYhYil7Yy5wdXNoKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtmLl90cmln
Z2VyKCJyZWNlaXZlIixnLHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jb250
YWluZXJzW2VdKSk7Yy5wdXNoKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtmLl90cmln
Z2VyKCJ1cGRhdGUiLGcsdGhpcy5fdWlIYXNoKHRoaXMpKX19LmNhbGwodGhpcyx0aGlzLmNvbnRh
aW5lcnNbZV0pKX19Zm9yKGU9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO2U+PTA7ZS0tKXtifHxj
LnB1c2goZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe2YuX3RyaWdnZXIoImRlYWN0aXZh
dGUiLGcsdGhpcy5fdWlIYXNoKHRoaXMpKX19LmNhbGwodGhpcyx0aGlzLmNvbnRhaW5lcnNbZV0p
KTtpZih0aGlzLmNvbnRhaW5lcnNbZV0uY29udGFpbmVyQ2FjaGUub3Zlcil7Yy5wdXNoKGZ1bmN0
aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtmLl90cmlnZ2VyKCJvdXQiLAorZyx0aGlzLl91aUhh
c2godGhpcykpfX0uY2FsbCh0aGlzLHRoaXMuY29udGFpbmVyc1tlXSkpO3RoaXMuY29udGFpbmVy
c1tlXS5jb250YWluZXJDYWNoZS5vdmVyPTB9fXRoaXMuX3N0b3JlZEN1cnNvciYmZCgiYm9keSIp
LmNzcygiY3Vyc29yIix0aGlzLl9zdG9yZWRDdXJzb3IpO3RoaXMuX3N0b3JlZE9wYWNpdHkmJnRo
aXMuaGVscGVyLmNzcygib3BhY2l0eSIsdGhpcy5fc3RvcmVkT3BhY2l0eSk7aWYodGhpcy5fc3Rv
cmVkWkluZGV4KXRoaXMuaGVscGVyLmNzcygiekluZGV4Iix0aGlzLl9zdG9yZWRaSW5kZXg9PSJh
dXRvIj8iIjp0aGlzLl9zdG9yZWRaSW5kZXgpO3RoaXMuZHJhZ2dpbmc9ZmFsc2U7aWYodGhpcy5j
YW5jZWxIZWxwZXJSZW1vdmFsKXtpZighYil7dGhpcy5fdHJpZ2dlcigiYmVmb3JlU3RvcCIsYSx0
aGlzLl91aUhhc2goKSk7Zm9yKGU9MDtlPGMubGVuZ3RoO2UrKyljW2VdLmNhbGwodGhpcyxhKTt0
aGlzLl90cmlnZ2VyKCJzdG9wIixhLHRoaXMuX3VpSGFzaCgpKX1yZXR1cm4gZmFsc2V9Ynx8Cit0
aGlzLl90cmlnZ2VyKCJiZWZvcmVTdG9wIixhLHRoaXMuX3VpSGFzaCgpKTt0aGlzLnBsYWNlaG9s
ZGVyWzBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5wbGFjZWhvbGRlclswXSk7dGhpcy5o
ZWxwZXJbMF0hPXRoaXMuY3VycmVudEl0ZW1bMF0mJnRoaXMuaGVscGVyLnJlbW92ZSgpO3RoaXMu
aGVscGVyPW51bGw7aWYoIWIpe2ZvcihlPTA7ZTxjLmxlbmd0aDtlKyspY1tlXS5jYWxsKHRoaXMs
YSk7dGhpcy5fdHJpZ2dlcigic3RvcCIsYSx0aGlzLl91aUhhc2goKSl9dGhpcy5mcm9tT3V0c2lk
ZT1mYWxzZTtyZXR1cm4gdHJ1ZX0sX3RyaWdnZXI6ZnVuY3Rpb24oKXtkLldpZGdldC5wcm90b3R5
cGUuX3RyaWdnZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpPT09ZmFsc2UmJnRoaXMuY2FuY2VsKCl9
LF91aUhhc2g6ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dGhpcztyZXR1cm57aGVscGVyOmIuaGVscGVy
LHBsYWNlaG9sZGVyOmIucGxhY2Vob2xkZXJ8fGQoW10pLHBvc2l0aW9uOmIucG9zaXRpb24sCitv
cmlnaW5hbFBvc2l0aW9uOmIub3JpZ2luYWxQb3NpdGlvbixvZmZzZXQ6Yi5wb3NpdGlvbkFicyxp
dGVtOmIuY3VycmVudEl0ZW0sc2VuZGVyOmE/YS5lbGVtZW50Om51bGx9fX0pO2QuZXh0ZW5kKGQu
dWkuc29ydGFibGUse3ZlcnNpb246IjEuOC4xMCJ9KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVy
eSBVSSBBY2NvcmRpb24gMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0
IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUg
TUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNl
bnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9BY2NvcmRpb24KKyAqCisgKiBE
ZXBlbmRzOgorICoJanF1ZXJ5LnVpLmNvcmUuanMKKyAqCWpxdWVyeS51aS53aWRnZXQuanMKKyAq
LworKGZ1bmN0aW9uKGMpe2Mud2lkZ2V0KCJ1aS5hY2NvcmRpb24iLHtvcHRpb25zOnthY3RpdmU6
MCxhbmltYXRlZDoic2xpZGUiLGF1dG9IZWlnaHQ6dHJ1ZSxjbGVhclN0eWxlOmZhbHNlLGNvbGxh
cHNpYmxlOmZhbHNlLGV2ZW50OiJjbGljayIsZmlsbFNwYWNlOmZhbHNlLGhlYWRlcjoiPiBsaSA+
IDpmaXJzdC1jaGlsZCw+IDpub3QobGkpOmV2ZW4iLGljb25zOntoZWFkZXI6InVpLWljb24tdHJp
YW5nbGUtMS1lIixoZWFkZXJTZWxlY3RlZDoidWktaWNvbi10cmlhbmdsZS0xLXMifSxuYXZpZ2F0
aW9uOmZhbHNlLG5hdmlnYXRpb25GaWx0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ocmVmLnRv
TG93ZXJDYXNlKCk9PT1sb2NhdGlvbi5ocmVmLnRvTG93ZXJDYXNlKCl9fSxfY3JlYXRlOmZ1bmN0
aW9uKCl7dmFyIGE9dGhpcyxiPWEub3B0aW9uczthLnJ1bm5pbmc9MDthLmVsZW1lbnQuYWRkQ2xh
c3MoInVpLWFjY29yZGlvbiB1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IikuY2hpbGRyZW4oImxp
IikuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1saS1maXgiKTsKK2EuaGVhZGVycz1hLmVsZW1lbnQu
ZmluZChiLmhlYWRlcikuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXIgdWktaGVscGVyLXJl
c2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIpLmJpbmQoIm1vdXNlZW50ZXIuYWNj
b3JkaW9uIixmdW5jdGlvbigpe2IuZGlzYWJsZWR8fGModGhpcykuYWRkQ2xhc3MoInVpLXN0YXRl
LWhvdmVyIil9KS5iaW5kKCJtb3VzZWxlYXZlLmFjY29yZGlvbiIsZnVuY3Rpb24oKXtiLmRpc2Fi
bGVkfHxjKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfSkuYmluZCgiZm9jdXMu
YWNjb3JkaW9uIixmdW5jdGlvbigpe2IuZGlzYWJsZWR8fGModGhpcykuYWRkQ2xhc3MoInVpLXN0
YXRlLWZvY3VzIil9KS5iaW5kKCJibHVyLmFjY29yZGlvbiIsZnVuY3Rpb24oKXtiLmRpc2FibGVk
fHxjKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSk7YS5oZWFkZXJzLm5leHQo
KS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWNvbnRlbnQgdWktaGVscGVyLXJlc2V0IHVpLXdpZGdl
dC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iKTsKK2lmKGIubmF2aWdhdGlvbil7dmFyIGQ9YS5l
bGVtZW50LmZpbmQoImEiKS5maWx0ZXIoYi5uYXZpZ2F0aW9uRmlsdGVyKS5lcSgwKTtpZihkLmxl
bmd0aCl7dmFyIGg9ZC5jbG9zZXN0KCIudWktYWNjb3JkaW9uLWhlYWRlciIpO2EuYWN0aXZlPWgu
bGVuZ3RoP2g6ZC5jbG9zZXN0KCIudWktYWNjb3JkaW9uLWNvbnRlbnQiKS5wcmV2KCl9fWEuYWN0
aXZlPWEuX2ZpbmRBY3RpdmUoYS5hY3RpdmV8fGIuYWN0aXZlKS5hZGRDbGFzcygidWktc3RhdGUt
ZGVmYXVsdCB1aS1zdGF0ZS1hY3RpdmUiKS50b2dnbGVDbGFzcygidWktY29ybmVyLWFsbCIpLnRv
Z2dsZUNsYXNzKCJ1aS1jb3JuZXItdG9wIik7YS5hY3RpdmUubmV4dCgpLmFkZENsYXNzKCJ1aS1h
Y2NvcmRpb24tY29udGVudC1hY3RpdmUiKTthLl9jcmVhdGVJY29ucygpO2EucmVzaXplKCk7YS5l
bGVtZW50LmF0dHIoInJvbGUiLCJ0YWJsaXN0Iik7YS5oZWFkZXJzLmF0dHIoInJvbGUiLCJ0YWIi
KS5iaW5kKCJrZXlkb3duLmFjY29yZGlvbiIsCitmdW5jdGlvbihmKXtyZXR1cm4gYS5fa2V5ZG93
bihmKX0pLm5leHQoKS5hdHRyKCJyb2xlIiwidGFicGFuZWwiKTthLmhlYWRlcnMubm90KGEuYWN0
aXZlfHwiIikuYXR0cih7ImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KS5uZXh0
KCkuaGlkZSgpO2EuYWN0aXZlLmxlbmd0aD9hLmFjdGl2ZS5hdHRyKHsiYXJpYS1leHBhbmRlZCI6
InRydWUiLHRhYkluZGV4OjB9KTphLmhlYWRlcnMuZXEoMCkuYXR0cigidGFiSW5kZXgiLDApO2Mu
YnJvd3Nlci5zYWZhcml8fGEuaGVhZGVycy5maW5kKCJhIikuYXR0cigidGFiSW5kZXgiLC0xKTti
LmV2ZW50JiZhLmhlYWRlcnMuYmluZChiLmV2ZW50LnNwbGl0KCIgIikuam9pbigiLmFjY29yZGlv
biAiKSsiLmFjY29yZGlvbiIsZnVuY3Rpb24oZil7YS5fY2xpY2tIYW5kbGVyLmNhbGwoYSxmLHRo
aXMpO2YucHJldmVudERlZmF1bHQoKX0pfSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgYT10
aGlzLm9wdGlvbnM7aWYoYS5pY29ucyl7YygiPHNwYW4+PC9zcGFuPiIpLmFkZENsYXNzKCJ1aS1p
Y29uICIrCithLmljb25zLmhlYWRlcikucHJlcGVuZFRvKHRoaXMuaGVhZGVycyk7dGhpcy5hY3Rp
dmUuY2hpbGRyZW4oIi51aS1pY29uIikudG9nZ2xlQ2xhc3MoYS5pY29ucy5oZWFkZXIpLnRvZ2ds
ZUNsYXNzKGEuaWNvbnMuaGVhZGVyU2VsZWN0ZWQpO3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWkt
YWNjb3JkaW9uLWljb25zIil9fSxfZGVzdHJveUljb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWFkZXJz
LmNoaWxkcmVuKCIudWktaWNvbiIpLnJlbW92ZSgpO3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygi
dWktYWNjb3JkaW9uLWljb25zIil9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlv
bnM7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhl
bHBlci1yZXNldCIpLnJlbW92ZUF0dHIoInJvbGUiKTt0aGlzLmhlYWRlcnMudW5iaW5kKCIuYWNj
b3JkaW9uIikucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWRp
c2FibGVkIHVpLWhlbHBlci1yZXNldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWkt
c3RhdGUtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIHVpLWNvcm5lci10b3AiKS5yZW1vdmVBdHRy
KCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS1leHBhbmRlZCIpLnJlbW92ZUF0dHIoInRhYkluZGV4
Iik7Cit0aGlzLmhlYWRlcnMuZmluZCgiYSIpLnJlbW92ZUF0dHIoInRhYkluZGV4Iik7dGhpcy5f
ZGVzdHJveUljb25zKCk7dmFyIGI9dGhpcy5oZWFkZXJzLm5leHQoKS5jc3MoImRpc3BsYXkiLCIi
KS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1yZXNldCB1aS13aWRn
ZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWFjY29yZGlvbi1jb250ZW50IHVpLWFjY29y
ZGlvbi1jb250ZW50LWFjdGl2ZSB1aS1hY2NvcmRpb24tZGlzYWJsZWQgdWktc3RhdGUtZGlzYWJs
ZWQiKTtpZihhLmF1dG9IZWlnaHR8fGEuZmlsbEhlaWdodCliLmNzcygiaGVpZ2h0IiwiIik7cmV0
dXJuIGMuV2lkZ2V0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyl9LF9zZXRPcHRpb246ZnVu
Y3Rpb24oYSxiKXtjLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5hcHBseSh0aGlzLGFyZ3Vt
ZW50cyk7YT09ImFjdGl2ZSImJnRoaXMuYWN0aXZhdGUoYik7aWYoYT09Imljb25zIil7dGhpcy5f
ZGVzdHJveUljb25zKCk7CitiJiZ0aGlzLl9jcmVhdGVJY29ucygpfWlmKGE9PSJkaXNhYmxlZCIp
dGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKVtiPyJhZGRDbGFzcyI6InJlbW92
ZUNsYXNzIl0oInVpLWFjY29yZGlvbi1kaXNhYmxlZCB1aS1zdGF0ZS1kaXNhYmxlZCIpfSxfa2V5
ZG93bjpmdW5jdGlvbihhKXtpZighKHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8YS5hbHRLZXl8fGEu
Y3RybEtleSkpe3ZhciBiPWMudWkua2V5Q29kZSxkPXRoaXMuaGVhZGVycy5sZW5ndGgsaD10aGlz
LmhlYWRlcnMuaW5kZXgoYS50YXJnZXQpLGY9ZmFsc2U7c3dpdGNoKGEua2V5Q29kZSl7Y2FzZSBi
LlJJR0hUOmNhc2UgYi5ET1dOOmY9dGhpcy5oZWFkZXJzWyhoKzEpJWRdO2JyZWFrO2Nhc2UgYi5M
RUZUOmNhc2UgYi5VUDpmPXRoaXMuaGVhZGVyc1soaC0xK2QpJWRdO2JyZWFrO2Nhc2UgYi5TUEFD
RTpjYXNlIGIuRU5URVI6dGhpcy5fY2xpY2tIYW5kbGVyKHt0YXJnZXQ6YS50YXJnZXR9LGEudGFy
Z2V0KTsKK2EucHJldmVudERlZmF1bHQoKX1pZihmKXtjKGEudGFyZ2V0KS5hdHRyKCJ0YWJJbmRl
eCIsLTEpO2MoZikuYXR0cigidGFiSW5kZXgiLDApO2YuZm9jdXMoKTtyZXR1cm4gZmFsc2V9cmV0
dXJuIHRydWV9fSxyZXNpemU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMsYjtpZihhLmZp
bGxTcGFjZSl7aWYoYy5icm93c2VyLm1zaWUpe3ZhciBkPXRoaXMuZWxlbWVudC5wYXJlbnQoKS5j
c3MoIm92ZXJmbG93Iik7dGhpcy5lbGVtZW50LnBhcmVudCgpLmNzcygib3ZlcmZsb3ciLCJoaWRk
ZW4iKX1iPXRoaXMuZWxlbWVudC5wYXJlbnQoKS5oZWlnaHQoKTtjLmJyb3dzZXIubXNpZSYmdGhp
cy5lbGVtZW50LnBhcmVudCgpLmNzcygib3ZlcmZsb3ciLGQpO3RoaXMuaGVhZGVycy5lYWNoKGZ1
bmN0aW9uKCl7Yi09Yyh0aGlzKS5vdXRlckhlaWdodCh0cnVlKX0pO3RoaXMuaGVhZGVycy5uZXh0
KCkuZWFjaChmdW5jdGlvbigpe2ModGhpcykuaGVpZ2h0KE1hdGgubWF4KDAsYi1jKHRoaXMpLmlu
bmVySGVpZ2h0KCkrCitjKHRoaXMpLmhlaWdodCgpKSl9KS5jc3MoIm92ZXJmbG93IiwiYXV0byIp
fWVsc2UgaWYoYS5hdXRvSGVpZ2h0KXtiPTA7dGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0
aW9uKCl7Yj1NYXRoLm1heChiLGModGhpcykuaGVpZ2h0KCIiKS5oZWlnaHQoKSl9KS5oZWlnaHQo
Yil9cmV0dXJuIHRoaXN9LGFjdGl2YXRlOmZ1bmN0aW9uKGEpe3RoaXMub3B0aW9ucy5hY3RpdmU9
YTthPXRoaXMuX2ZpbmRBY3RpdmUoYSlbMF07dGhpcy5fY2xpY2tIYW5kbGVyKHt0YXJnZXQ6YX0s
YSk7cmV0dXJuIHRoaXN9LF9maW5kQWN0aXZlOmZ1bmN0aW9uKGEpe3JldHVybiBhP3R5cGVvZiBh
PT09Im51bWJlciI/dGhpcy5oZWFkZXJzLmZpbHRlcigiOmVxKCIrYSsiKSIpOnRoaXMuaGVhZGVy
cy5ub3QodGhpcy5oZWFkZXJzLm5vdChhKSk6YT09PWZhbHNlP2MoW10pOnRoaXMuaGVhZGVycy5m
aWx0ZXIoIjplcSgwKSIpfSxfY2xpY2tIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGQ9dGhpcy5v
cHRpb25zOworaWYoIWQuZGlzYWJsZWQpaWYoYS50YXJnZXQpe2E9YyhhLmN1cnJlbnRUYXJnZXR8
fGIpO2I9YVswXT09PXRoaXMuYWN0aXZlWzBdO2QuYWN0aXZlPWQuY29sbGFwc2libGUmJmI/ZmFs
c2U6dGhpcy5oZWFkZXJzLmluZGV4KGEpO2lmKCEodGhpcy5ydW5uaW5nfHwhZC5jb2xsYXBzaWJs
ZSYmYikpe3ZhciBoPXRoaXMuYWN0aXZlO2o9YS5uZXh0KCk7Zz10aGlzLmFjdGl2ZS5uZXh0KCk7
ZT17b3B0aW9uczpkLG5ld0hlYWRlcjpiJiZkLmNvbGxhcHNpYmxlP2MoW10pOmEsb2xkSGVhZGVy
OnRoaXMuYWN0aXZlLG5ld0NvbnRlbnQ6YiYmZC5jb2xsYXBzaWJsZT9jKFtdKTpqLG9sZENvbnRl
bnQ6Z307dmFyIGY9dGhpcy5oZWFkZXJzLmluZGV4KHRoaXMuYWN0aXZlWzBdKT50aGlzLmhlYWRl
cnMuaW5kZXgoYVswXSk7dGhpcy5hY3RpdmU9Yj9jKFtdKTphO3RoaXMuX3RvZ2dsZShqLGcsZSxi
LGYpO2gucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIikuYWRkQ2xh
c3MoInVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIpLmNoaWxkcmVuKCIudWktaWNvbiIp
LnJlbW92ZUNsYXNzKGQuaWNvbnMuaGVhZGVyU2VsZWN0ZWQpLmFkZENsYXNzKGQuaWNvbnMuaGVh
ZGVyKTsKK2lmKCFiKXthLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1h
bGwiKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIHVpLWNvcm5lci10b3AiKS5jaGlsZHJlbigi
LnVpLWljb24iKS5yZW1vdmVDbGFzcyhkLmljb25zLmhlYWRlcikuYWRkQ2xhc3MoZC5pY29ucy5o
ZWFkZXJTZWxlY3RlZCk7YS5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFj
dGl2ZSIpfX19ZWxzZSBpZihkLmNvbGxhcHNpYmxlKXt0aGlzLmFjdGl2ZS5yZW1vdmVDbGFzcygi
dWktc3RhdGUtYWN0aXZlIHVpLWNvcm5lci10b3AiKS5hZGRDbGFzcygidWktc3RhdGUtZGVmYXVs
dCB1aS1jb3JuZXItYWxsIikuY2hpbGRyZW4oIi51aS1pY29uIikucmVtb3ZlQ2xhc3MoZC5pY29u
cy5oZWFkZXJTZWxlY3RlZCkuYWRkQ2xhc3MoZC5pY29ucy5oZWFkZXIpO3RoaXMuYWN0aXZlLm5l
eHQoKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIik7dmFyIGc9dGhpcy5h
Y3RpdmUubmV4dCgpLAorZT17b3B0aW9uczpkLG5ld0hlYWRlcjpjKFtdKSxvbGRIZWFkZXI6ZC5h
Y3RpdmUsbmV3Q29udGVudDpjKFtdKSxvbGRDb250ZW50Omd9LGo9dGhpcy5hY3RpdmU9YyhbXSk7
dGhpcy5fdG9nZ2xlKGosZyxlKX19LF90b2dnbGU6ZnVuY3Rpb24oYSxiLGQsaCxmKXt2YXIgZz10
aGlzLGU9Zy5vcHRpb25zO2cudG9TaG93PWE7Zy50b0hpZGU9YjtnLmRhdGE9ZDt2YXIgaj1mdW5j
dGlvbigpe2lmKGcpcmV0dXJuIGcuX2NvbXBsZXRlZC5hcHBseShnLGFyZ3VtZW50cyl9O2cuX3Ry
aWdnZXIoImNoYW5nZXN0YXJ0IixudWxsLGcuZGF0YSk7Zy5ydW5uaW5nPWIuc2l6ZSgpPT09MD9h
LnNpemUoKTpiLnNpemUoKTtpZihlLmFuaW1hdGVkKXtkPXt9O2Q9ZS5jb2xsYXBzaWJsZSYmaD97
dG9TaG93OmMoW10pLHRvSGlkZTpiLGNvbXBsZXRlOmosZG93bjpmLGF1dG9IZWlnaHQ6ZS5hdXRv
SGVpZ2h0fHxlLmZpbGxTcGFjZX06e3RvU2hvdzphLHRvSGlkZTpiLGNvbXBsZXRlOmosZG93bjpm
LGF1dG9IZWlnaHQ6ZS5hdXRvSGVpZ2h0fHwKK2UuZmlsbFNwYWNlfTtpZighZS5wcm94aWVkKWUu
cHJveGllZD1lLmFuaW1hdGVkO2lmKCFlLnByb3hpZWREdXJhdGlvbillLnByb3hpZWREdXJhdGlv
bj1lLmR1cmF0aW9uO2UuYW5pbWF0ZWQ9Yy5pc0Z1bmN0aW9uKGUucHJveGllZCk/ZS5wcm94aWVk
KGQpOmUucHJveGllZDtlLmR1cmF0aW9uPWMuaXNGdW5jdGlvbihlLnByb3hpZWREdXJhdGlvbik/
ZS5wcm94aWVkRHVyYXRpb24oZCk6ZS5wcm94aWVkRHVyYXRpb247aD1jLnVpLmFjY29yZGlvbi5h
bmltYXRpb25zO3ZhciBpPWUuZHVyYXRpb24saz1lLmFuaW1hdGVkO2lmKGsmJiFoW2tdJiYhYy5l
YXNpbmdba10paz0ic2xpZGUiO2hba118fChoW2tdPWZ1bmN0aW9uKGwpe3RoaXMuc2xpZGUobCx7
ZWFzaW5nOmssZHVyYXRpb246aXx8NzAwfSl9KTtoW2tdKGQpfWVsc2V7aWYoZS5jb2xsYXBzaWJs
ZSYmaClhLnRvZ2dsZSgpO2Vsc2V7Yi5oaWRlKCk7YS5zaG93KCl9aih0cnVlKX1iLnByZXYoKS5h
dHRyKHsiYXJpYS1leHBhbmRlZCI6ImZhbHNlIiwKK3RhYkluZGV4Oi0xfSkuYmx1cigpO2EucHJl
digpLmF0dHIoeyJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLmZvY3VzKCl9LF9j
b21wbGV0ZWQ6ZnVuY3Rpb24oYSl7dGhpcy5ydW5uaW5nPWE/MDotLXRoaXMucnVubmluZztpZigh
dGhpcy5ydW5uaW5nKXt0aGlzLm9wdGlvbnMuY2xlYXJTdHlsZSYmdGhpcy50b1Nob3cuYWRkKHRo
aXMudG9IaWRlKS5jc3Moe2hlaWdodDoiIixvdmVyZmxvdzoiIn0pO3RoaXMudG9IaWRlLnJlbW92
ZUNsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKTtpZih0aGlzLnRvSGlkZS5sZW5n
dGgpdGhpcy50b0hpZGUucGFyZW50KClbMF0uY2xhc3NOYW1lPXRoaXMudG9IaWRlLnBhcmVudCgp
WzBdLmNsYXNzTmFtZTt0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLG51bGwsdGhpcy5kYXRhKX19fSk7
Yy5leHRlbmQoYy51aS5hY2NvcmRpb24se3ZlcnNpb246IjEuOC4xMCIsYW5pbWF0aW9uczp7c2xp
ZGU6ZnVuY3Rpb24oYSxiKXthPQorYy5leHRlbmQoe2Vhc2luZzoic3dpbmciLGR1cmF0aW9uOjMw
MH0sYSxiKTtpZihhLnRvSGlkZS5zaXplKCkpaWYoYS50b1Nob3cuc2l6ZSgpKXt2YXIgZD1hLnRv
U2hvdy5jc3MoIm92ZXJmbG93IiksaD0wLGY9e30sZz17fSxlO2I9YS50b1Nob3c7ZT1iWzBdLnN0
eWxlLndpZHRoO2Iud2lkdGgocGFyc2VJbnQoYi5wYXJlbnQoKS53aWR0aCgpLDEwKS1wYXJzZUlu
dChiLmNzcygicGFkZGluZ0xlZnQiKSwxMCktcGFyc2VJbnQoYi5jc3MoInBhZGRpbmdSaWdodCIp
LDEwKS0ocGFyc2VJbnQoYi5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50
KGIuY3NzKCJib3JkZXJSaWdodFdpZHRoIiksMTApfHwwKSk7Yy5lYWNoKFsiaGVpZ2h0IiwicGFk
ZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iXSxmdW5jdGlvbihqLGkpe2dbaV09ImhpZGUiO2o9KCIi
K2MuY3NzKGEudG9TaG93WzBdLGkpKS5tYXRjaCgvXihbXGQrLS5dKykoLiopJC8pO2ZbaV09e3Zh
bHVlOmpbMV0sCit1bml0OmpbMl18fCJweCJ9fSk7YS50b1Nob3cuY3NzKHtoZWlnaHQ6MCxvdmVy
ZmxvdzoiaGlkZGVuIn0pLnNob3coKTthLnRvSGlkZS5maWx0ZXIoIjpoaWRkZW4iKS5lYWNoKGEu
Y29tcGxldGUpLmVuZCgpLmZpbHRlcigiOnZpc2libGUiKS5hbmltYXRlKGcse3N0ZXA6ZnVuY3Rp
b24oaixpKXtpZihpLnByb3A9PSJoZWlnaHQiKWg9aS5lbmQtaS5zdGFydD09PTA/MDooaS5ub3ct
aS5zdGFydCkvKGkuZW5kLWkuc3RhcnQpO2EudG9TaG93WzBdLnN0eWxlW2kucHJvcF09aCpmW2ku
cHJvcF0udmFsdWUrZltpLnByb3BdLnVuaXR9LGR1cmF0aW9uOmEuZHVyYXRpb24sZWFzaW5nOmEu
ZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7YS5hdXRvSGVpZ2h0fHxhLnRvU2hvdy5jc3MoImhl
aWdodCIsIiIpO2EudG9TaG93LmNzcyh7d2lkdGg6ZSxvdmVyZmxvdzpkfSk7YS5jb21wbGV0ZSgp
fX0pfWVsc2UgYS50b0hpZGUuYW5pbWF0ZSh7aGVpZ2h0OiJoaWRlIixwYWRkaW5nVG9wOiJoaWRl
IiwKK3BhZGRpbmdCb3R0b206ImhpZGUifSxhKTtlbHNlIGEudG9TaG93LmFuaW1hdGUoe2hlaWdo
dDoic2hvdyIscGFkZGluZ1RvcDoic2hvdyIscGFkZGluZ0JvdHRvbToic2hvdyJ9LGEpfSxib3Vu
Y2VzbGlkZTpmdW5jdGlvbihhKXt0aGlzLnNsaWRlKGEse2Vhc2luZzphLmRvd24/ImVhc2VPdXRC
b3VuY2UiOiJzd2luZyIsZHVyYXRpb246YS5kb3duPzFFMzoyMDB9KX19fSl9KShqUXVlcnkpOwor
Oy8qCisgKiBqUXVlcnkgVUkgQXV0b2NvbXBsZXRlIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAy
MDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGlj
ZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDov
L2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvQXV0
b2NvbXBsZXRlCisgKgorICogRGVwZW5kczoKKyAqCWpxdWVyeS51aS5jb3JlLmpzCisgKglqcXVl
cnkudWkud2lkZ2V0LmpzCisgKglqcXVlcnkudWkucG9zaXRpb24uanMKKyAqLworKGZ1bmN0aW9u
KGQpe3ZhciBlPTA7ZC53aWRnZXQoInVpLmF1dG9jb21wbGV0ZSIse29wdGlvbnM6e2FwcGVuZFRv
OiJib2R5IixkZWxheTozMDAsbWluTGVuZ3RoOjEscG9zaXRpb246e215OiJsZWZ0IHRvcCIsYXQ6
ImxlZnQgYm90dG9tIixjb2xsaXNpb246Im5vbmUifSxzb3VyY2U6bnVsbH0scGVuZGluZzowLF9j
cmVhdGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy5lbGVtZW50WzBdLm93bmVyRG9jdW1l
bnQsZzt0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1pbnB1dCIpLmF0dHIo
ImF1dG9jb21wbGV0ZSIsIm9mZiIpLmF0dHIoe3JvbGU6InRleHRib3giLCJhcmlhLWF1dG9jb21w
bGV0ZSI6Imxpc3QiLCJhcmlhLWhhc3BvcHVwIjoidHJ1ZSJ9KS5iaW5kKCJrZXlkb3duLmF1dG9j
b21wbGV0ZSIsZnVuY3Rpb24oYyl7aWYoIShhLm9wdGlvbnMuZGlzYWJsZWR8fGEuZWxlbWVudC5h
dHRyKCJyZWFkb25seSIpKSl7Zz1mYWxzZTt2YXIgZj1kLnVpLmtleUNvZGU7Citzd2l0Y2goYy5r
ZXlDb2RlKXtjYXNlIGYuUEFHRV9VUDphLl9tb3ZlKCJwcmV2aW91c1BhZ2UiLGMpO2JyZWFrO2Nh
c2UgZi5QQUdFX0RPV046YS5fbW92ZSgibmV4dFBhZ2UiLGMpO2JyZWFrO2Nhc2UgZi5VUDphLl9t
b3ZlKCJwcmV2aW91cyIsYyk7Yy5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgZi5ET1dOOmEu
X21vdmUoIm5leHQiLGMpO2MucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIGYuRU5URVI6Y2Fz
ZSBmLk5VTVBBRF9FTlRFUjppZihhLm1lbnUuYWN0aXZlKXtnPXRydWU7Yy5wcmV2ZW50RGVmYXVs
dCgpfWNhc2UgZi5UQUI6aWYoIWEubWVudS5hY3RpdmUpcmV0dXJuO2EubWVudS5zZWxlY3QoYyk7
YnJlYWs7Y2FzZSBmLkVTQ0FQRTphLmVsZW1lbnQudmFsKGEudGVybSk7YS5jbG9zZShjKTticmVh
aztkZWZhdWx0OmNsZWFyVGltZW91dChhLnNlYXJjaGluZyk7YS5zZWFyY2hpbmc9c2V0VGltZW91
dChmdW5jdGlvbigpe2lmKGEudGVybSE9YS5lbGVtZW50LnZhbCgpKXthLnNlbGVjdGVkSXRlbT0K
K251bGw7YS5zZWFyY2gobnVsbCxjKX19LGEub3B0aW9ucy5kZWxheSk7YnJlYWt9fX0pLmJpbmQo
ImtleXByZXNzLmF1dG9jb21wbGV0ZSIsZnVuY3Rpb24oYyl7aWYoZyl7Zz1mYWxzZTtjLnByZXZl
bnREZWZhdWx0KCl9fSkuYmluZCgiZm9jdXMuYXV0b2NvbXBsZXRlIixmdW5jdGlvbigpe2lmKCFh
Lm9wdGlvbnMuZGlzYWJsZWQpe2Euc2VsZWN0ZWRJdGVtPW51bGw7YS5wcmV2aW91cz1hLmVsZW1l
bnQudmFsKCl9fSkuYmluZCgiYmx1ci5hdXRvY29tcGxldGUiLGZ1bmN0aW9uKGMpe2lmKCFhLm9w
dGlvbnMuZGlzYWJsZWQpe2NsZWFyVGltZW91dChhLnNlYXJjaGluZyk7YS5jbG9zaW5nPXNldFRp
bWVvdXQoZnVuY3Rpb24oKXthLmNsb3NlKGMpO2EuX2NoYW5nZShjKX0sMTUwKX19KTt0aGlzLl9p
bml0U291cmNlKCk7dGhpcy5yZXNwb25zZT1mdW5jdGlvbigpe3JldHVybiBhLl9yZXNwb25zZS5h
cHBseShhLGFyZ3VtZW50cyl9O3RoaXMubWVudT1kKCI8dWw+PC91bD4iKS5hZGRDbGFzcygidWkt
YXV0b2NvbXBsZXRlIikuYXBwZW5kVG8oZCh0aGlzLm9wdGlvbnMuYXBwZW5kVG98fAorImJvZHki
LGIpWzBdKS5tb3VzZWRvd24oZnVuY3Rpb24oYyl7dmFyIGY9YS5tZW51LmVsZW1lbnRbMF07ZChj
LnRhcmdldCkuY2xvc2VzdCgiLnVpLW1lbnUtaXRlbSIpLmxlbmd0aHx8c2V0VGltZW91dChmdW5j
dGlvbigpe2QoZG9jdW1lbnQpLm9uZSgibW91c2Vkb3duIixmdW5jdGlvbihoKXtoLnRhcmdldCE9
PWEuZWxlbWVudFswXSYmaC50YXJnZXQhPT1mJiYhZC51aS5jb250YWlucyhmLGgudGFyZ2V0KSYm
YS5jbG9zZSgpfSl9LDEpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5jbG9z
aW5nKX0sMTMpfSkubWVudSh7Zm9jdXM6ZnVuY3Rpb24oYyxmKXtmPWYuaXRlbS5kYXRhKCJpdGVt
LmF1dG9jb21wbGV0ZSIpO2ZhbHNlIT09YS5fdHJpZ2dlcigiZm9jdXMiLGMse2l0ZW06Zn0pJiYv
XmtleS8udGVzdChjLm9yaWdpbmFsRXZlbnQudHlwZSkmJmEuZWxlbWVudC52YWwoZi52YWx1ZSl9
LHNlbGVjdGVkOmZ1bmN0aW9uKGMsZil7dmFyIGg9Zi5pdGVtLmRhdGEoIml0ZW0uYXV0b2NvbXBs
ZXRlIiksCitpPWEucHJldmlvdXM7aWYoYS5lbGVtZW50WzBdIT09Yi5hY3RpdmVFbGVtZW50KXth
LmVsZW1lbnQuZm9jdXMoKTthLnByZXZpb3VzPWk7c2V0VGltZW91dChmdW5jdGlvbigpe2EucHJl
dmlvdXM9aTthLnNlbGVjdGVkSXRlbT1ofSwxKX1mYWxzZSE9PWEuX3RyaWdnZXIoInNlbGVjdCIs
Yyx7aXRlbTpofSkmJmEuZWxlbWVudC52YWwoaC52YWx1ZSk7YS50ZXJtPWEuZWxlbWVudC52YWwo
KTthLmNsb3NlKGMpO2Euc2VsZWN0ZWRJdGVtPWh9LGJsdXI6ZnVuY3Rpb24oKXthLm1lbnUuZWxl
bWVudC5pcygiOnZpc2libGUiKSYmYS5lbGVtZW50LnZhbCgpIT09YS50ZXJtJiZhLmVsZW1lbnQu
dmFsKGEudGVybSl9fSkuekluZGV4KHRoaXMuZWxlbWVudC56SW5kZXgoKSsxKS5jc3Moe3RvcDow
LGxlZnQ6MH0pLmhpZGUoKS5kYXRhKCJtZW51Iik7ZC5mbi5iZ2lmcmFtZSYmdGhpcy5tZW51LmVs
ZW1lbnQuYmdpZnJhbWUoKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVD
bGFzcygidWktYXV0b2NvbXBsZXRlLWlucHV0IikucmVtb3ZlQXR0cigiYXV0b2NvbXBsZXRlIiku
cmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtYXV0b2NvbXBsZXRlIikucmVtb3Zl
QXR0cigiYXJpYS1oYXNwb3B1cCIpOwordGhpcy5tZW51LmVsZW1lbnQucmVtb3ZlKCk7ZC5XaWRn
ZXQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKX0sX3NldE9wdGlvbjpmdW5jdGlvbihhLGIp
e2QuV2lkZ2V0LnByb3RvdHlwZS5fc2V0T3B0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthPT09
InNvdXJjZSImJnRoaXMuX2luaXRTb3VyY2UoKTtpZihhPT09ImFwcGVuZFRvIil0aGlzLm1lbnUu
ZWxlbWVudC5hcHBlbmRUbyhkKGJ8fCJib2R5Iix0aGlzLmVsZW1lbnRbMF0ub3duZXJEb2N1bWVu
dClbMF0pO2E9PT0iZGlzYWJsZWQiJiZiJiZ0aGlzLnhociYmdGhpcy54aHIuYWJvcnQoKX0sX2lu
aXRTb3VyY2U6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGIsZztpZihkLmlzQXJyYXkodGhpcy5vcHRp
b25zLnNvdXJjZSkpe2I9dGhpcy5vcHRpb25zLnNvdXJjZTt0aGlzLnNvdXJjZT1mdW5jdGlvbihj
LGYpe2YoZC51aS5hdXRvY29tcGxldGUuZmlsdGVyKGIsYy50ZXJtKSl9fWVsc2UgaWYodHlwZW9m
IHRoaXMub3B0aW9ucy5zb3VyY2U9PT0KKyJzdHJpbmciKXtnPXRoaXMub3B0aW9ucy5zb3VyY2U7
dGhpcy5zb3VyY2U9ZnVuY3Rpb24oYyxmKXthLnhociYmYS54aHIuYWJvcnQoKTthLnhocj1kLmFq
YXgoe3VybDpnLGRhdGE6YyxkYXRhVHlwZToianNvbiIsYXV0b2NvbXBsZXRlUmVxdWVzdDorK2Us
c3VjY2VzczpmdW5jdGlvbihoKXt0aGlzLmF1dG9jb21wbGV0ZVJlcXVlc3Q9PT1lJiZmKGgpfSxl
cnJvcjpmdW5jdGlvbigpe3RoaXMuYXV0b2NvbXBsZXRlUmVxdWVzdD09PWUmJmYoW10pfX0pfX1l
bHNlIHRoaXMuc291cmNlPXRoaXMub3B0aW9ucy5zb3VyY2V9LHNlYXJjaDpmdW5jdGlvbihhLGIp
e2E9YSE9bnVsbD9hOnRoaXMuZWxlbWVudC52YWwoKTt0aGlzLnRlcm09dGhpcy5lbGVtZW50LnZh
bCgpO2lmKGEubGVuZ3RoPHRoaXMub3B0aW9ucy5taW5MZW5ndGgpcmV0dXJuIHRoaXMuY2xvc2Uo
Yik7Y2xlYXJUaW1lb3V0KHRoaXMuY2xvc2luZyk7aWYodGhpcy5fdHJpZ2dlcigic2VhcmNoIixi
KSE9PWZhbHNlKXJldHVybiB0aGlzLl9zZWFyY2goYSl9LAorX3NlYXJjaDpmdW5jdGlvbihhKXt0
aGlzLnBlbmRpbmcrKzt0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2Fk
aW5nIik7dGhpcy5zb3VyY2Uoe3Rlcm06YX0sdGhpcy5yZXNwb25zZSl9LF9yZXNwb25zZTpmdW5j
dGlvbihhKXtpZighdGhpcy5vcHRpb25zLmRpc2FibGVkJiZhJiZhLmxlbmd0aCl7YT10aGlzLl9u
b3JtYWxpemUoYSk7dGhpcy5fc3VnZ2VzdChhKTt0aGlzLl90cmlnZ2VyKCJvcGVuIil9ZWxzZSB0
aGlzLmNsb3NlKCk7dGhpcy5wZW5kaW5nLS07dGhpcy5wZW5kaW5nfHx0aGlzLmVsZW1lbnQucmVt
b3ZlQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIil9LGNsb3NlOmZ1bmN0aW9uKGEpe2Ns
ZWFyVGltZW91dCh0aGlzLmNsb3NpbmcpO2lmKHRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJs
ZSIpKXt0aGlzLm1lbnUuZWxlbWVudC5oaWRlKCk7dGhpcy5tZW51LmRlYWN0aXZhdGUoKTt0aGlz
Ll90cmlnZ2VyKCJjbG9zZSIsYSl9fSxfY2hhbmdlOmZ1bmN0aW9uKGEpe3RoaXMucHJldmlvdXMh
PT0KK3RoaXMuZWxlbWVudC52YWwoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixhLHtpdGVtOnRo
aXMuc2VsZWN0ZWRJdGVtfSl9LF9ub3JtYWxpemU6ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGgmJmFb
MF0ubGFiZWwmJmFbMF0udmFsdWUpcmV0dXJuIGE7cmV0dXJuIGQubWFwKGEsZnVuY3Rpb24oYil7
aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm57bGFiZWw6Yix2YWx1ZTpifTtyZXR1cm4gZC5l
eHRlbmQoe2xhYmVsOmIubGFiZWx8fGIudmFsdWUsdmFsdWU6Yi52YWx1ZXx8Yi5sYWJlbH0sYil9
KX0sX3N1Z2dlc3Q6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKS56
SW5kZXgodGhpcy5lbGVtZW50LnpJbmRleCgpKzEpO3RoaXMuX3JlbmRlck1lbnUoYixhKTt0aGlz
Lm1lbnUuZGVhY3RpdmF0ZSgpO3RoaXMubWVudS5yZWZyZXNoKCk7Yi5zaG93KCk7dGhpcy5fcmVz
aXplTWVudSgpO2IucG9zaXRpb24oZC5leHRlbmQoe29mOnRoaXMuZWxlbWVudH0sdGhpcy5vcHRp
b25zLnBvc2l0aW9uKSl9LAorX3Jlc2l6ZU1lbnU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm1lbnUu
ZWxlbWVudDthLm91dGVyV2lkdGgoTWF0aC5tYXgoYS53aWR0aCgiIikub3V0ZXJXaWR0aCgpLHRo
aXMuZWxlbWVudC5vdXRlcldpZHRoKCkpKX0sX3JlbmRlck1lbnU6ZnVuY3Rpb24oYSxiKXt2YXIg
Zz10aGlzO2QuZWFjaChiLGZ1bmN0aW9uKGMsZil7Zy5fcmVuZGVySXRlbShhLGYpfSl9LF9yZW5k
ZXJJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGQoIjxsaT48L2xpPiIpLmRhdGEoIml0ZW0uYXV0
b2NvbXBsZXRlIixiKS5hcHBlbmQoZCgiPGE+PC9hPiIpLnRleHQoYi5sYWJlbCkpLmFwcGVuZFRv
KGEpfSxfbW92ZTpmdW5jdGlvbihhLGIpe2lmKHRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJs
ZSIpKWlmKHRoaXMubWVudS5maXJzdCgpJiYvXnByZXZpb3VzLy50ZXN0KGEpfHx0aGlzLm1lbnUu
bGFzdCgpJiYvXm5leHQvLnRlc3QoYSkpe3RoaXMuZWxlbWVudC52YWwodGhpcy50ZXJtKTt0aGlz
Lm1lbnUuZGVhY3RpdmF0ZSgpfWVsc2UgdGhpcy5tZW51W2FdKGIpOworZWxzZSB0aGlzLnNlYXJj
aChudWxsLGIpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW51LmVsZW1lbnR9fSk7
ZC5leHRlbmQoZC51aS5hdXRvY29tcGxldGUse2VzY2FwZVJlZ2V4OmZ1bmN0aW9uKGEpe3JldHVy
biBhLnJlcGxhY2UoL1stW1xde30oKSorPy4sXFxeJHwjXHNdL2csIlxcJCYiKX0sZmlsdGVyOmZ1
bmN0aW9uKGEsYil7dmFyIGc9bmV3IFJlZ0V4cChkLnVpLmF1dG9jb21wbGV0ZS5lc2NhcGVSZWdl
eChiKSwiaSIpO3JldHVybiBkLmdyZXAoYSxmdW5jdGlvbihjKXtyZXR1cm4gZy50ZXN0KGMubGFi
ZWx8fGMudmFsdWV8fGMpfSl9fSl9KShqUXVlcnkpOworKGZ1bmN0aW9uKGQpe2Qud2lkZ2V0KCJ1
aS5tZW51Iix7X2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5lbGVtZW50LmFkZENs
YXNzKCJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiku
YXR0cih7cm9sZToibGlzdGJveCIsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6InVpLWFjdGl2ZS1t
ZW51aXRlbSJ9KS5jbGljayhmdW5jdGlvbihhKXtpZihkKGEudGFyZ2V0KS5jbG9zZXN0KCIudWkt
bWVudS1pdGVtIGEiKS5sZW5ndGgpe2EucHJldmVudERlZmF1bHQoKTtlLnNlbGVjdChhKX19KTt0
aGlzLnJlZnJlc2goKX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5lbGVtZW50
LmNoaWxkcmVuKCJsaTpub3QoLnVpLW1lbnUtaXRlbSk6aGFzKGEpIikuYWRkQ2xhc3MoInVpLW1l
bnUtaXRlbSIpLmF0dHIoInJvbGUiLCJtZW51aXRlbSIpLmNoaWxkcmVuKCJhIikuYWRkQ2xhc3Mo
InVpLWNvcm5lci1hbGwiKS5hdHRyKCJ0YWJpbmRleCIsCistMSkubW91c2VlbnRlcihmdW5jdGlv
bihhKXtlLmFjdGl2YXRlKGEsZCh0aGlzKS5wYXJlbnQoKSl9KS5tb3VzZWxlYXZlKGZ1bmN0aW9u
KCl7ZS5kZWFjdGl2YXRlKCl9KX0sYWN0aXZhdGU6ZnVuY3Rpb24oZSxhKXt0aGlzLmRlYWN0aXZh
dGUoKTtpZih0aGlzLmhhc1Njcm9sbCgpKXt2YXIgYj1hLm9mZnNldCgpLnRvcC10aGlzLmVsZW1l
bnQub2Zmc2V0KCkudG9wLGc9dGhpcy5lbGVtZW50LmF0dHIoInNjcm9sbFRvcCIpLGM9dGhpcy5l
bGVtZW50LmhlaWdodCgpO2lmKGI8MCl0aGlzLmVsZW1lbnQuYXR0cigic2Nyb2xsVG9wIixnK2Ip
O2Vsc2UgYj49YyYmdGhpcy5lbGVtZW50LmF0dHIoInNjcm9sbFRvcCIsZytiLWMrYS5oZWlnaHQo
KSl9dGhpcy5hY3RpdmU9YS5lcSgwKS5jaGlsZHJlbigiYSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1o
b3ZlciIpLmF0dHIoImlkIiwidWktYWN0aXZlLW1lbnVpdGVtIikuZW5kKCk7dGhpcy5fdHJpZ2dl
cigiZm9jdXMiLGUse2l0ZW06YX0pfSwKK2RlYWN0aXZhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLmFj
dGl2ZSl7dGhpcy5hY3RpdmUuY2hpbGRyZW4oImEiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92
ZXIiKS5yZW1vdmVBdHRyKCJpZCIpO3RoaXMuX3RyaWdnZXIoImJsdXIiKTt0aGlzLmFjdGl2ZT1u
dWxsfX0sbmV4dDpmdW5jdGlvbihlKXt0aGlzLm1vdmUoIm5leHQiLCIudWktbWVudS1pdGVtOmZp
cnN0IixlKX0scHJldmlvdXM6ZnVuY3Rpb24oZSl7dGhpcy5tb3ZlKCJwcmV2IiwiLnVpLW1lbnUt
aXRlbTpsYXN0IixlKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmUmJiF0aGlz
LmFjdGl2ZS5wcmV2QWxsKCIudWktbWVudS1pdGVtIikubGVuZ3RofSxsYXN0OmZ1bmN0aW9uKCl7
cmV0dXJuIHRoaXMuYWN0aXZlJiYhdGhpcy5hY3RpdmUubmV4dEFsbCgiLnVpLW1lbnUtaXRlbSIp
Lmxlbmd0aH0sbW92ZTpmdW5jdGlvbihlLGEsYil7aWYodGhpcy5hY3RpdmUpe2U9dGhpcy5hY3Rp
dmVbZSsiQWxsIl0oIi51aS1tZW51LWl0ZW0iKS5lcSgwKTsKK2UubGVuZ3RoP3RoaXMuYWN0aXZh
dGUoYixlKTp0aGlzLmFjdGl2YXRlKGIsdGhpcy5lbGVtZW50LmNoaWxkcmVuKGEpKX1lbHNlIHRo
aXMuYWN0aXZhdGUoYix0aGlzLmVsZW1lbnQuY2hpbGRyZW4oYSkpfSxuZXh0UGFnZTpmdW5jdGlv
bihlKXtpZih0aGlzLmhhc1Njcm9sbCgpKWlmKCF0aGlzLmFjdGl2ZXx8dGhpcy5sYXN0KCkpdGhp
cy5hY3RpdmF0ZShlLHRoaXMuZWxlbWVudC5jaGlsZHJlbigiLnVpLW1lbnUtaXRlbTpmaXJzdCIp
KTtlbHNle3ZhciBhPXRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcCxiPXRoaXMuZWxlbWVudC5oZWln
aHQoKSxnPXRoaXMuZWxlbWVudC5jaGlsZHJlbigiLnVpLW1lbnUtaXRlbSIpLmZpbHRlcihmdW5j
dGlvbigpe3ZhciBjPWQodGhpcykub2Zmc2V0KCkudG9wLWEtYitkKHRoaXMpLmhlaWdodCgpO3Jl
dHVybiBjPDEwJiZjPi0xMH0pO2cubGVuZ3RofHwoZz10aGlzLmVsZW1lbnQuY2hpbGRyZW4oIi51
aS1tZW51LWl0ZW06bGFzdCIpKTt0aGlzLmFjdGl2YXRlKGUsCitnKX1lbHNlIHRoaXMuYWN0aXZh
dGUoZSx0aGlzLmVsZW1lbnQuY2hpbGRyZW4oIi51aS1tZW51LWl0ZW0iKS5maWx0ZXIoIXRoaXMu
YWN0aXZlfHx0aGlzLmxhc3QoKT8iOmZpcnN0IjoiOmxhc3QiKSl9LHByZXZpb3VzUGFnZTpmdW5j
dGlvbihlKXtpZih0aGlzLmhhc1Njcm9sbCgpKWlmKCF0aGlzLmFjdGl2ZXx8dGhpcy5maXJzdCgp
KXRoaXMuYWN0aXZhdGUoZSx0aGlzLmVsZW1lbnQuY2hpbGRyZW4oIi51aS1tZW51LWl0ZW06bGFz
dCIpKTtlbHNle3ZhciBhPXRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcCxiPXRoaXMuZWxlbWVudC5o
ZWlnaHQoKTtyZXN1bHQ9dGhpcy5lbGVtZW50LmNoaWxkcmVuKCIudWktbWVudS1pdGVtIikuZmls
dGVyKGZ1bmN0aW9uKCl7dmFyIGc9ZCh0aGlzKS5vZmZzZXQoKS50b3AtYStiLWQodGhpcykuaGVp
Z2h0KCk7cmV0dXJuIGc8MTAmJmc+LTEwfSk7cmVzdWx0Lmxlbmd0aHx8KHJlc3VsdD10aGlzLmVs
ZW1lbnQuY2hpbGRyZW4oIi51aS1tZW51LWl0ZW06Zmlyc3QiKSk7Cit0aGlzLmFjdGl2YXRlKGUs
cmVzdWx0KX1lbHNlIHRoaXMuYWN0aXZhdGUoZSx0aGlzLmVsZW1lbnQuY2hpbGRyZW4oIi51aS1t
ZW51LWl0ZW0iKS5maWx0ZXIoIXRoaXMuYWN0aXZlfHx0aGlzLmZpcnN0KCk/IjpsYXN0IjoiOmZp
cnN0IikpfSxoYXNTY3JvbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50LmhlaWdodCgp
PHRoaXMuZWxlbWVudC5hdHRyKCJzY3JvbGxIZWlnaHQiKX0sc2VsZWN0OmZ1bmN0aW9uKGUpe3Ro
aXMuX3RyaWdnZXIoInNlbGVjdGVkIixlLHtpdGVtOnRoaXMuYWN0aXZlfSl9fSl9KShqUXVlcnkp
OworOy8qCisgKiBqUXVlcnkgVUkgQnV0dG9uIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDEx
LCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5z
ZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2px
dWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvQnV0dG9u
CisgKgorICogRGVwZW5kczoKKyAqCWpxdWVyeS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkud2lk
Z2V0LmpzCisgKi8KKyhmdW5jdGlvbihhKXt2YXIgZyxpPWZ1bmN0aW9uKGIpe2EoIjp1aS1idXR0
b24iLGIudGFyZ2V0LmZvcm0pLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLmRhdGEoImJ1
dHRvbiIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLnJlZnJlc2goKX0sMSl9KX0saD1mdW5jdGlv
bihiKXt2YXIgYz1iLm5hbWUsZD1iLmZvcm0sZj1hKFtdKTtpZihjKWY9ZD9hKGQpLmZpbmQoIltu
YW1lPSciK2MrIiddIik6YSgiW25hbWU9JyIrYysiJ10iLGIub3duZXJEb2N1bWVudCkuZmlsdGVy
KGZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZm9ybX0pO3JldHVybiBmfTthLndpZGdldCgidWkuYnV0
dG9uIix7b3B0aW9uczp7ZGlzYWJsZWQ6bnVsbCx0ZXh0OnRydWUsbGFiZWw6bnVsbCxpY29uczp7
cHJpbWFyeTpudWxsLHNlY29uZGFyeTpudWxsfX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxl
bWVudC5jbG9zZXN0KCJmb3JtIikudW5iaW5kKCJyZXNldC5idXR0b24iKS5iaW5kKCJyZXNldC5i
dXR0b24iLAoraSk7aWYodHlwZW9mIHRoaXMub3B0aW9ucy5kaXNhYmxlZCE9PSJib29sZWFuIil0
aGlzLm9wdGlvbnMuZGlzYWJsZWQ9dGhpcy5lbGVtZW50LmF0dHIoImRpc2FibGVkIik7dGhpcy5f
ZGV0ZXJtaW5lQnV0dG9uVHlwZSgpO3RoaXMuaGFzVGl0bGU9ISF0aGlzLmJ1dHRvbkVsZW1lbnQu
YXR0cigidGl0bGUiKTt2YXIgYj10aGlzLGM9dGhpcy5vcHRpb25zLGQ9dGhpcy50eXBlPT09ImNo
ZWNrYm94Inx8dGhpcy50eXBlPT09InJhZGlvIixmPSJ1aS1zdGF0ZS1ob3ZlciIrKCFkPyIgdWkt
c3RhdGUtYWN0aXZlIjoiIik7aWYoYy5sYWJlbD09PW51bGwpYy5sYWJlbD10aGlzLmJ1dHRvbkVs
ZW1lbnQuaHRtbCgpO2lmKHRoaXMuZWxlbWVudC5pcygiOmRpc2FibGVkIikpYy5kaXNhYmxlZD10
cnVlO3RoaXMuYnV0dG9uRWxlbWVudC5hZGRDbGFzcygidWktYnV0dG9uIHVpLXdpZGdldCB1aS1z
dGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKS5hdHRyKCJyb2xlIiwiYnV0dG9uIikuYmluZCgi
bW91c2VlbnRlci5idXR0b24iLAorZnVuY3Rpb24oKXtpZighYy5kaXNhYmxlZCl7YSh0aGlzKS5h
ZGRDbGFzcygidWktc3RhdGUtaG92ZXIiKTt0aGlzPT09ZyYmYSh0aGlzKS5hZGRDbGFzcygidWkt
c3RhdGUtYWN0aXZlIil9fSkuYmluZCgibW91c2VsZWF2ZS5idXR0b24iLGZ1bmN0aW9uKCl7Yy5k
aXNhYmxlZHx8YSh0aGlzKS5yZW1vdmVDbGFzcyhmKX0pLmJpbmQoImZvY3VzLmJ1dHRvbiIsZnVu
Y3Rpb24oKXthKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSkuYmluZCgiYmx1ci5i
dXR0b24iLGZ1bmN0aW9uKCl7YSh0aGlzKS5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKX0p
O2QmJnRoaXMuZWxlbWVudC5iaW5kKCJjaGFuZ2UuYnV0dG9uIixmdW5jdGlvbigpe2IucmVmcmVz
aCgpfSk7aWYodGhpcy50eXBlPT09ImNoZWNrYm94Iil0aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgi
Y2xpY2suYnV0dG9uIixmdW5jdGlvbigpe2lmKGMuZGlzYWJsZWQpcmV0dXJuIGZhbHNlO2EodGhp
cykudG9nZ2xlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpOworYi5idXR0b25FbGVtZW50LmF0dHIo
ImFyaWEtcHJlc3NlZCIsYi5lbGVtZW50WzBdLmNoZWNrZWQpfSk7ZWxzZSBpZih0aGlzLnR5cGU9
PT0icmFkaW8iKXRoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCJjbGljay5idXR0b24iLGZ1bmN0aW9u
KCl7aWYoYy5kaXNhYmxlZClyZXR1cm4gZmFsc2U7YSh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUt
YWN0aXZlIik7Yi5idXR0b25FbGVtZW50LmF0dHIoImFyaWEtcHJlc3NlZCIsdHJ1ZSk7dmFyIGU9
Yi5lbGVtZW50WzBdO2goZSkubm90KGUpLm1hcChmdW5jdGlvbigpe3JldHVybiBhKHRoaXMpLmJ1
dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikuYXR0cigi
YXJpYS1wcmVzc2VkIixmYWxzZSl9KTtlbHNle3RoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCJtb3Vz
ZWRvd24uYnV0dG9uIixmdW5jdGlvbigpe2lmKGMuZGlzYWJsZWQpcmV0dXJuIGZhbHNlO2EodGhp
cykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpOworZz10aGlzO2EoZG9jdW1lbnQpLm9uZSgi
bW91c2V1cCIsZnVuY3Rpb24oKXtnPW51bGx9KX0pLmJpbmQoIm1vdXNldXAuYnV0dG9uIixmdW5j
dGlvbigpe2lmKGMuZGlzYWJsZWQpcmV0dXJuIGZhbHNlO2EodGhpcykucmVtb3ZlQ2xhc3MoInVp
LXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgia2V5ZG93bi5idXR0b24iLGZ1bmN0aW9uKGUpe2lmKGMu
ZGlzYWJsZWQpcmV0dXJuIGZhbHNlO2lmKGUua2V5Q29kZT09YS51aS5rZXlDb2RlLlNQQUNFfHxl
LmtleUNvZGU9PWEudWkua2V5Q29kZS5FTlRFUilhKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1h
Y3RpdmUiKX0pLmJpbmQoImtleXVwLmJ1dHRvbiIsZnVuY3Rpb24oKXthKHRoaXMpLnJlbW92ZUNs
YXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0pO3RoaXMuYnV0dG9uRWxlbWVudC5pcygiYSIpJiZ0aGlz
LmJ1dHRvbkVsZW1lbnQua2V5dXAoZnVuY3Rpb24oZSl7ZS5rZXlDb2RlPT09YS51aS5rZXlDb2Rl
LlNQQUNFJiZhKHRoaXMpLmNsaWNrKCl9KX10aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIiwKK2Mu
ZGlzYWJsZWQpfSxfZGV0ZXJtaW5lQnV0dG9uVHlwZTpmdW5jdGlvbigpe3RoaXMudHlwZT10aGlz
LmVsZW1lbnQuaXMoIjpjaGVja2JveCIpPyJjaGVja2JveCI6dGhpcy5lbGVtZW50LmlzKCI6cmFk
aW8iKT8icmFkaW8iOnRoaXMuZWxlbWVudC5pcygiaW5wdXQiKT8iaW5wdXQiOiJidXR0b24iO2lm
KHRoaXMudHlwZT09PSJjaGVja2JveCJ8fHRoaXMudHlwZT09PSJyYWRpbyIpe3RoaXMuYnV0dG9u
RWxlbWVudD10aGlzLmVsZW1lbnQucGFyZW50cygpLmxhc3QoKS5maW5kKCJsYWJlbFtmb3I9Iit0
aGlzLmVsZW1lbnQuYXR0cigiaWQiKSsiXSIpO3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktaGVs
cGVyLWhpZGRlbi1hY2Nlc3NpYmxlIik7dmFyIGI9dGhpcy5lbGVtZW50LmlzKCI6Y2hlY2tlZCIp
O2ImJnRoaXMuYnV0dG9uRWxlbWVudC5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIik7dGhpcy5i
dXR0b25FbGVtZW50LmF0dHIoImFyaWEtcHJlc3NlZCIsYil9ZWxzZSB0aGlzLmJ1dHRvbkVsZW1l
bnQ9Cit0aGlzLmVsZW1lbnR9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1dHRvbkVs
ZW1lbnR9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWhl
bHBlci1oaWRkZW4tYWNjZXNzaWJsZSIpO3RoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcygi
dWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktc3Rh
dGUtaG92ZXIgdWktc3RhdGUtYWN0aXZlICB1aS1idXR0b24taWNvbnMtb25seSB1aS1idXR0b24t
aWNvbi1vbmx5IHVpLWJ1dHRvbi10ZXh0LWljb25zIHVpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFy
eSB1aS1idXR0b24tdGV4dC1pY29uLXNlY29uZGFyeSB1aS1idXR0b24tdGV4dC1vbmx5IikucmVt
b3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtcHJlc3NlZCIpLmh0bWwodGhpcy5idXR0
b25FbGVtZW50LmZpbmQoIi51aS1idXR0b24tdGV4dCIpLmh0bWwoKSk7dGhpcy5oYXNUaXRsZXx8
Cit0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQXR0cigidGl0bGUiKTthLldpZGdldC5wcm90b3R5
cGUuZGVzdHJveS5jYWxsKHRoaXMpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGIsYyl7YS5XaWRnZXQu
cHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGI9PT0iZGlzYWJs
ZWQiKWM/dGhpcy5lbGVtZW50LmF0dHIoImRpc2FibGVkIix0cnVlKTp0aGlzLmVsZW1lbnQucmVt
b3ZlQXR0cigiZGlzYWJsZWQiKTt0aGlzLl9yZXNldEJ1dHRvbigpfSxyZWZyZXNoOmZ1bmN0aW9u
KCl7dmFyIGI9dGhpcy5lbGVtZW50LmlzKCI6ZGlzYWJsZWQiKTtiIT09dGhpcy5vcHRpb25zLmRp
c2FibGVkJiZ0aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIixiKTtpZih0aGlzLnR5cGU9PT0icmFk
aW8iKWgodGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5pcygiOmNoZWNr
ZWQiKT9hKHRoaXMpLmJ1dHRvbigid2lkZ2V0IikuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIp
LmF0dHIoImFyaWEtcHJlc3NlZCIsCit0cnVlKTphKHRoaXMpLmJ1dHRvbigid2lkZ2V0IikucmVt
b3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsZmFsc2UpfSk7
ZWxzZSBpZih0aGlzLnR5cGU9PT0iY2hlY2tib3giKXRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQi
KT90aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFy
aWEtcHJlc3NlZCIsdHJ1ZSk6dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zdGF0
ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLGZhbHNlKX0sX3Jlc2V0QnV0dG9uOmZ1bmN0
aW9uKCl7aWYodGhpcy50eXBlPT09ImlucHV0Iil0aGlzLm9wdGlvbnMubGFiZWwmJnRoaXMuZWxl
bWVudC52YWwodGhpcy5vcHRpb25zLmxhYmVsKTtlbHNle3ZhciBiPXRoaXMuYnV0dG9uRWxlbWVu
dC5yZW1vdmVDbGFzcygidWktYnV0dG9uLWljb25zLW9ubHkgdWktYnV0dG9uLWljb24tb25seSB1
aS1idXR0b24tdGV4dC1pY29ucyB1aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgdWktYnV0dG9u
LXRleHQtaWNvbi1zZWNvbmRhcnkgdWktYnV0dG9uLXRleHQtb25seSIpLAorYz1hKCI8c3Bhbj48
L3NwYW4+IikuYWRkQ2xhc3MoInVpLWJ1dHRvbi10ZXh0IikuaHRtbCh0aGlzLm9wdGlvbnMubGFi
ZWwpLmFwcGVuZFRvKGIuZW1wdHkoKSkudGV4dCgpLGQ9dGhpcy5vcHRpb25zLmljb25zLGY9ZC5w
cmltYXJ5JiZkLnNlY29uZGFyeSxlPVtdO2lmKGQucHJpbWFyeXx8ZC5zZWNvbmRhcnkpe2UucHVz
aCgidWktYnV0dG9uLXRleHQtaWNvbiIrKGY/InMiOmQucHJpbWFyeT8iLXByaW1hcnkiOiItc2Vj
b25kYXJ5IikpO2QucHJpbWFyeSYmYi5wcmVwZW5kKCI8c3BhbiBjbGFzcz0ndWktYnV0dG9uLWlj
b24tcHJpbWFyeSB1aS1pY29uICIrZC5wcmltYXJ5KyInPjwvc3Bhbj4iKTtkLnNlY29uZGFyeSYm
Yi5hcHBlbmQoIjxzcGFuIGNsYXNzPSd1aS1idXR0b24taWNvbi1zZWNvbmRhcnkgdWktaWNvbiAi
K2Quc2Vjb25kYXJ5KyInPjwvc3Bhbj4iKTtpZighdGhpcy5vcHRpb25zLnRleHQpe2UucHVzaChm
PyJ1aS1idXR0b24taWNvbnMtb25seSI6InVpLWJ1dHRvbi1pY29uLW9ubHkiKTsKK2IucmVtb3Zl
Q2xhc3MoInVpLWJ1dHRvbi10ZXh0LWljb25zIHVpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFyeSB1
aS1idXR0b24tdGV4dC1pY29uLXNlY29uZGFyeSIpO3RoaXMuaGFzVGl0bGV8fGIuYXR0cigidGl0
bGUiLGMpfX1lbHNlIGUucHVzaCgidWktYnV0dG9uLXRleHQtb25seSIpO2IuYWRkQ2xhc3MoZS5q
b2luKCIgIikpfX19KTthLndpZGdldCgidWkuYnV0dG9uc2V0Iix7b3B0aW9uczp7aXRlbXM6Ijpi
dXR0b24sIDpzdWJtaXQsIDpyZXNldCwgOmNoZWNrYm94LCA6cmFkaW8sIGEsIDpkYXRhKGJ1dHRv
bikifSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1idXR0b25z
ZXQiKX0sX2luaXQ6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX0sX3NldE9wdGlvbjpmdW5jdGlv
bihiLGMpe2I9PT0iZGlzYWJsZWQiJiZ0aGlzLmJ1dHRvbnMuYnV0dG9uKCJvcHRpb24iLGIsYyk7
YS5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHkodGhpcywKK2FyZ3VtZW50cyl9LHJl
ZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLmJ1dHRvbnM9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRp
b25zLml0ZW1zKS5maWx0ZXIoIjp1aS1idXR0b24iKS5idXR0b24oInJlZnJlc2giKS5lbmQoKS5u
b3QoIjp1aS1idXR0b24iKS5idXR0b24oKS5lbmQoKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gYSh0
aGlzKS5idXR0b24oIndpZGdldCIpWzBdfSkucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwgdWkt
Y29ybmVyLWxlZnQgdWktY29ybmVyLXJpZ2h0IikuZmlsdGVyKCI6Zmlyc3QiKS5hZGRDbGFzcygi
dWktY29ybmVyLWxlZnQiKS5lbmQoKS5maWx0ZXIoIjpsYXN0IikuYWRkQ2xhc3MoInVpLWNvcm5l
ci1yaWdodCIpLmVuZCgpLmVuZCgpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJl
bW92ZUNsYXNzKCJ1aS1idXR0b25zZXQiKTt0aGlzLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKCl7cmV0
dXJuIGEodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXIt
bGVmdCB1aS1jb3JuZXItcmlnaHQiKS5lbmQoKS5idXR0b24oImRlc3Ryb3kiKTsKK2EuV2lkZ2V0
LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyl9fSl9KShqUXVlcnkpOworOy8qCisgKiBqUXVl
cnkgVUkgRGlhbG9nIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAo
aHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1J
VCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5z
ZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRGlhbG9nCisgKgorICogRGVwZW5k
czoKKyAqCWpxdWVyeS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkud2lkZ2V0LmpzCisgKiAganF1
ZXJ5LnVpLmJ1dHRvbi5qcworICoJanF1ZXJ5LnVpLmRyYWdnYWJsZS5qcworICoJanF1ZXJ5LnVp
Lm1vdXNlLmpzCisgKglqcXVlcnkudWkucG9zaXRpb24uanMKKyAqCWpxdWVyeS51aS5yZXNpemFi
bGUuanMKKyAqLworKGZ1bmN0aW9uKGMsail7dmFyIGs9e2J1dHRvbnM6dHJ1ZSxoZWlnaHQ6dHJ1
ZSxtYXhIZWlnaHQ6dHJ1ZSxtYXhXaWR0aDp0cnVlLG1pbkhlaWdodDp0cnVlLG1pbldpZHRoOnRy
dWUsd2lkdGg6dHJ1ZX0sbD17bWF4SGVpZ2h0OnRydWUsbWF4V2lkdGg6dHJ1ZSxtaW5IZWlnaHQ6
dHJ1ZSxtaW5XaWR0aDp0cnVlfTtjLndpZGdldCgidWkuZGlhbG9nIix7b3B0aW9uczp7YXV0b09w
ZW46dHJ1ZSxidXR0b25zOnt9LGNsb3NlT25Fc2NhcGU6dHJ1ZSxjbG9zZVRleHQ6ImNsb3NlIixk
aWFsb2dDbGFzczoiIixkcmFnZ2FibGU6dHJ1ZSxoaWRlOm51bGwsaGVpZ2h0OiJhdXRvIixtYXhI
ZWlnaHQ6ZmFsc2UsbWF4V2lkdGg6ZmFsc2UsbWluSGVpZ2h0OjE1MCxtaW5XaWR0aDoxNTAsbW9k
YWw6ZmFsc2UscG9zaXRpb246e215OiJjZW50ZXIiLGF0OiJjZW50ZXIiLGNvbGxpc2lvbjoiZml0
Iix1c2luZzpmdW5jdGlvbihhKXt2YXIgYj1jKHRoaXMpLmNzcyhhKS5vZmZzZXQoKS50b3A7Yjww
JiYKK2ModGhpcykuY3NzKCJ0b3AiLGEudG9wLWIpfX0scmVzaXphYmxlOnRydWUsc2hvdzpudWxs
LHN0YWNrOnRydWUsdGl0bGU6IiIsd2lkdGg6MzAwLHpJbmRleDoxRTN9LF9jcmVhdGU6ZnVuY3Rp
b24oKXt0aGlzLm9yaWdpbmFsVGl0bGU9dGhpcy5lbGVtZW50LmF0dHIoInRpdGxlIik7aWYodHlw
ZW9mIHRoaXMub3JpZ2luYWxUaXRsZSE9PSJzdHJpbmciKXRoaXMub3JpZ2luYWxUaXRsZT0iIjt0
aGlzLm9wdGlvbnMudGl0bGU9dGhpcy5vcHRpb25zLnRpdGxlfHx0aGlzLm9yaWdpbmFsVGl0bGU7
dmFyIGE9dGhpcyxiPWEub3B0aW9ucyxkPWIudGl0bGV8fCImIzE2MDsiLGU9Yy51aS5kaWFsb2cu
Z2V0VGl0bGVJZChhLmVsZW1lbnQpLGc9KGEudWlEaWFsb2c9YygiPGRpdj48L2Rpdj4iKSkuYXBw
ZW5kVG8oZG9jdW1lbnQuYm9keSkuaGlkZSgpLmFkZENsYXNzKCJ1aS1kaWFsb2cgdWktd2lkZ2V0
IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgIitiLmRpYWxvZ0NsYXNzKS5jc3Moe3pJ
bmRleDpiLnpJbmRleH0pLmF0dHIoInRhYkluZGV4IiwKKy0xKS5jc3MoIm91dGxpbmUiLDApLmtl
eWRvd24oZnVuY3Rpb24oaSl7aWYoYi5jbG9zZU9uRXNjYXBlJiZpLmtleUNvZGUmJmkua2V5Q29k
ZT09PWMudWkua2V5Q29kZS5FU0NBUEUpe2EuY2xvc2UoaSk7aS5wcmV2ZW50RGVmYXVsdCgpfX0p
LmF0dHIoe3JvbGU6ImRpYWxvZyIsImFyaWEtbGFiZWxsZWRieSI6ZX0pLm1vdXNlZG93bihmdW5j
dGlvbihpKXthLm1vdmVUb1RvcChmYWxzZSxpKX0pO2EuZWxlbWVudC5zaG93KCkucmVtb3ZlQXR0
cigidGl0bGUiKS5hZGRDbGFzcygidWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQi
KS5hcHBlbmRUbyhnKTt2YXIgZj0oYS51aURpYWxvZ1RpdGxlYmFyPWMoIjxkaXY+PC9kaXY+Iikp
LmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXIt
YWxsIHVpLWhlbHBlci1jbGVhcmZpeCIpLnByZXBlbmRUbyhnKSxoPWMoJzxhIGhyZWY9IiMiPjwv
YT4nKS5hZGRDbGFzcygidWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiKS5h
dHRyKCJyb2xlIiwKKyJidXR0b24iKS5ob3ZlcihmdW5jdGlvbigpe2guYWRkQ2xhc3MoInVpLXN0
YXRlLWhvdmVyIil9LGZ1bmN0aW9uKCl7aC5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKX0p
LmZvY3VzKGZ1bmN0aW9uKCl7aC5hZGRDbGFzcygidWktc3RhdGUtZm9jdXMiKX0pLmJsdXIoZnVu
Y3Rpb24oKXtoLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSkuY2xpY2soZnVuY3Rpb24o
aSl7YS5jbG9zZShpKTtyZXR1cm4gZmFsc2V9KS5hcHBlbmRUbyhmKTsoYS51aURpYWxvZ1RpdGxl
YmFyQ2xvc2VUZXh0PWMoIjxzcGFuPjwvc3Bhbj4iKSkuYWRkQ2xhc3MoInVpLWljb24gdWktaWNv
bi1jbG9zZXRoaWNrIikudGV4dChiLmNsb3NlVGV4dCkuYXBwZW5kVG8oaCk7YygiPHNwYW4+PC9z
cGFuPiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGUiKS5hdHRyKCJpZCIsZSkuaHRtbChkKS5w
cmVwZW5kVG8oZik7aWYoYy5pc0Z1bmN0aW9uKGIuYmVmb3JlY2xvc2UpJiYhYy5pc0Z1bmN0aW9u
KGIuYmVmb3JlQ2xvc2UpKWIuYmVmb3JlQ2xvc2U9CitiLmJlZm9yZWNsb3NlO2YuZmluZCgiKiIp
LmFkZChmKS5kaXNhYmxlU2VsZWN0aW9uKCk7Yi5kcmFnZ2FibGUmJmMuZm4uZHJhZ2dhYmxlJiZh
Ll9tYWtlRHJhZ2dhYmxlKCk7Yi5yZXNpemFibGUmJmMuZm4ucmVzaXphYmxlJiZhLl9tYWtlUmVz
aXphYmxlKCk7YS5fY3JlYXRlQnV0dG9ucyhiLmJ1dHRvbnMpO2EuX2lzT3Blbj1mYWxzZTtjLmZu
LmJnaWZyYW1lJiZnLmJnaWZyYW1lKCl9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLmF1
dG9PcGVuJiZ0aGlzLm9wZW4oKX0sZGVzdHJveTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7YS5vdmVy
bGF5JiZhLm92ZXJsYXkuZGVzdHJveSgpO2EudWlEaWFsb2cuaGlkZSgpO2EuZWxlbWVudC51bmJp
bmQoIi5kaWFsb2ciKS5yZW1vdmVEYXRhKCJkaWFsb2ciKS5yZW1vdmVDbGFzcygidWktZGlhbG9n
LWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiKS5oaWRlKCkuYXBwZW5kVG8oImJvZHkiKTthLnVp
RGlhbG9nLnJlbW92ZSgpO2Eub3JpZ2luYWxUaXRsZSYmCithLmVsZW1lbnQuYXR0cigidGl0bGUi
LGEub3JpZ2luYWxUaXRsZSk7cmV0dXJuIGF9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlz
LnVpRGlhbG9nfSxjbG9zZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGQsZTtpZihmYWxzZSE9PWIu
X3RyaWdnZXIoImJlZm9yZUNsb3NlIixhKSl7Yi5vdmVybGF5JiZiLm92ZXJsYXkuZGVzdHJveSgp
O2IudWlEaWFsb2cudW5iaW5kKCJrZXlwcmVzcy51aS1kaWFsb2ciKTtiLl9pc09wZW49ZmFsc2U7
aWYoYi5vcHRpb25zLmhpZGUpYi51aURpYWxvZy5oaWRlKGIub3B0aW9ucy5oaWRlLGZ1bmN0aW9u
KCl7Yi5fdHJpZ2dlcigiY2xvc2UiLGEpfSk7ZWxzZXtiLnVpRGlhbG9nLmhpZGUoKTtiLl90cmln
Z2VyKCJjbG9zZSIsYSl9Yy51aS5kaWFsb2cub3ZlcmxheS5yZXNpemUoKTtpZihiLm9wdGlvbnMu
bW9kYWwpe2Q9MDtjKCIudWktZGlhbG9nIikuZWFjaChmdW5jdGlvbigpe2lmKHRoaXMhPT1iLnVp
RGlhbG9nWzBdKXtlPWModGhpcykuY3NzKCJ6LWluZGV4Iik7Citpc05hTihlKXx8KGQ9TWF0aC5t
YXgoZCxlKSl9fSk7Yy51aS5kaWFsb2cubWF4Wj1kfXJldHVybiBifX0saXNPcGVuOmZ1bmN0aW9u
KCl7cmV0dXJuIHRoaXMuX2lzT3Blbn0sbW92ZVRvVG9wOmZ1bmN0aW9uKGEsYil7dmFyIGQ9dGhp
cyxlPWQub3B0aW9ucztpZihlLm1vZGFsJiYhYXx8IWUuc3RhY2smJiFlLm1vZGFsKXJldHVybiBk
Ll90cmlnZ2VyKCJmb2N1cyIsYik7aWYoZS56SW5kZXg+Yy51aS5kaWFsb2cubWF4WiljLnVpLmRp
YWxvZy5tYXhaPWUuekluZGV4O2lmKGQub3ZlcmxheSl7Yy51aS5kaWFsb2cubWF4Wis9MTtkLm92
ZXJsYXkuJGVsLmNzcygiei1pbmRleCIsYy51aS5kaWFsb2cub3ZlcmxheS5tYXhaPWMudWkuZGlh
bG9nLm1heFopfWE9e3Njcm9sbFRvcDpkLmVsZW1lbnQuYXR0cigic2Nyb2xsVG9wIiksc2Nyb2xs
TGVmdDpkLmVsZW1lbnQuYXR0cigic2Nyb2xsTGVmdCIpfTtjLnVpLmRpYWxvZy5tYXhaKz0xO2Qu
dWlEaWFsb2cuY3NzKCJ6LWluZGV4IixjLnVpLmRpYWxvZy5tYXhaKTsKK2QuZWxlbWVudC5hdHRy
KGEpO2QuX3RyaWdnZXIoImZvY3VzIixiKTtyZXR1cm4gZH0sb3BlbjpmdW5jdGlvbigpe2lmKCF0
aGlzLl9pc09wZW4pe3ZhciBhPXRoaXMsYj1hLm9wdGlvbnMsZD1hLnVpRGlhbG9nO2Eub3Zlcmxh
eT1iLm1vZGFsP25ldyBjLnVpLmRpYWxvZy5vdmVybGF5KGEpOm51bGw7YS5fc2l6ZSgpO2EuX3Bv
c2l0aW9uKGIucG9zaXRpb24pO2Quc2hvdyhiLnNob3cpO2EubW92ZVRvVG9wKHRydWUpO2IubW9k
YWwmJmQuYmluZCgia2V5cHJlc3MudWktZGlhbG9nIixmdW5jdGlvbihlKXtpZihlLmtleUNvZGU9
PT1jLnVpLmtleUNvZGUuVEFCKXt2YXIgZz1jKCI6dGFiYmFibGUiLHRoaXMpLGY9Zy5maWx0ZXIo
IjpmaXJzdCIpO2c9Zy5maWx0ZXIoIjpsYXN0Iik7aWYoZS50YXJnZXQ9PT1nWzBdJiYhZS5zaGlm
dEtleSl7Zi5mb2N1cygxKTtyZXR1cm4gZmFsc2V9ZWxzZSBpZihlLnRhcmdldD09PWZbMF0mJmUu
c2hpZnRLZXkpe2cuZm9jdXMoMSk7cmV0dXJuIGZhbHNlfX19KTsKK2MoYS5lbGVtZW50LmZpbmQo
Ijp0YWJiYWJsZSIpLmdldCgpLmNvbmNhdChkLmZpbmQoIi51aS1kaWFsb2ctYnV0dG9ucGFuZSA6
dGFiYmFibGUiKS5nZXQoKS5jb25jYXQoZC5nZXQoKSkpKS5lcSgwKS5mb2N1cygpO2EuX2lzT3Bl
bj10cnVlO2EuX3RyaWdnZXIoIm9wZW4iKTtyZXR1cm4gYX19LF9jcmVhdGVCdXR0b25zOmZ1bmN0
aW9uKGEpe3ZhciBiPXRoaXMsZD1mYWxzZSxlPWMoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVp
LWRpYWxvZy1idXR0b25wYW5lIHVpLXdpZGdldC1jb250ZW50IHVpLWhlbHBlci1jbGVhcmZpeCIp
LGc9YygiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnNldCIpLmFwcGVu
ZFRvKGUpO2IudWlEaWFsb2cuZmluZCgiLnVpLWRpYWxvZy1idXR0b25wYW5lIikucmVtb3ZlKCk7
dHlwZW9mIGE9PT0ib2JqZWN0IiYmYSE9PW51bGwmJmMuZWFjaChhLGZ1bmN0aW9uKCl7cmV0dXJu
IShkPXRydWUpfSk7aWYoZCl7Yy5lYWNoKGEsZnVuY3Rpb24oZiwKK2gpe2g9Yy5pc0Z1bmN0aW9u
KGgpP3tjbGljazpoLHRleHQ6Zn06aDtmPWMoJzxidXR0b24gdHlwZT0iYnV0dG9uIj48L2J1dHRv
bj4nKS5hdHRyKGgsdHJ1ZSkudW5iaW5kKCJjbGljayIpLmNsaWNrKGZ1bmN0aW9uKCl7aC5jbGlj
ay5hcHBseShiLmVsZW1lbnRbMF0sYXJndW1lbnRzKX0pLmFwcGVuZFRvKGcpO2MuZm4uYnV0dG9u
JiZmLmJ1dHRvbigpfSk7ZS5hcHBlbmRUbyhiLnVpRGlhbG9nKX19LF9tYWtlRHJhZ2dhYmxlOmZ1
bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtyZXR1cm57cG9zaXRpb246Zi5wb3NpdGlvbixvZmZzZXQ6
Zi5vZmZzZXR9fXZhciBiPXRoaXMsZD1iLm9wdGlvbnMsZT1jKGRvY3VtZW50KSxnO2IudWlEaWFs
b2cuZHJhZ2dhYmxlKHtjYW5jZWw6Ii51aS1kaWFsb2ctY29udGVudCwgLnVpLWRpYWxvZy10aXRs
ZWJhci1jbG9zZSIsaGFuZGxlOiIudWktZGlhbG9nLXRpdGxlYmFyIixjb250YWlubWVudDoiZG9j
dW1lbnQiLHN0YXJ0OmZ1bmN0aW9uKGYsaCl7Zz0KK2QuaGVpZ2h0PT09ImF1dG8iPyJhdXRvIjpj
KHRoaXMpLmhlaWdodCgpO2ModGhpcykuaGVpZ2h0KGModGhpcykuaGVpZ2h0KCkpLmFkZENsYXNz
KCJ1aS1kaWFsb2ctZHJhZ2dpbmciKTtiLl90cmlnZ2VyKCJkcmFnU3RhcnQiLGYsYShoKSl9LGRy
YWc6ZnVuY3Rpb24oZixoKXtiLl90cmlnZ2VyKCJkcmFnIixmLGEoaCkpfSxzdG9wOmZ1bmN0aW9u
KGYsaCl7ZC5wb3NpdGlvbj1baC5wb3NpdGlvbi5sZWZ0LWUuc2Nyb2xsTGVmdCgpLGgucG9zaXRp
b24udG9wLWUuc2Nyb2xsVG9wKCldO2ModGhpcykucmVtb3ZlQ2xhc3MoInVpLWRpYWxvZy1kcmFn
Z2luZyIpLmhlaWdodChnKTtiLl90cmlnZ2VyKCJkcmFnU3RvcCIsZixhKGgpKTtjLnVpLmRpYWxv
Zy5vdmVybGF5LnJlc2l6ZSgpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbihhKXtmdW5jdGlv
biBiKGYpe3JldHVybntvcmlnaW5hbFBvc2l0aW9uOmYub3JpZ2luYWxQb3NpdGlvbixvcmlnaW5h
bFNpemU6Zi5vcmlnaW5hbFNpemUsCitwb3NpdGlvbjpmLnBvc2l0aW9uLHNpemU6Zi5zaXplfX1h
PWE9PT1qP3RoaXMub3B0aW9ucy5yZXNpemFibGU6YTt2YXIgZD10aGlzLGU9ZC5vcHRpb25zLGc9
ZC51aURpYWxvZy5jc3MoInBvc2l0aW9uIik7YT10eXBlb2YgYT09PSJzdHJpbmciP2E6Im4sZSxz
LHcsc2Usc3csbmUsbnciO2QudWlEaWFsb2cucmVzaXphYmxlKHtjYW5jZWw6Ii51aS1kaWFsb2ct
Y29udGVudCIsY29udGFpbm1lbnQ6ImRvY3VtZW50IixhbHNvUmVzaXplOmQuZWxlbWVudCxtYXhX
aWR0aDplLm1heFdpZHRoLG1heEhlaWdodDplLm1heEhlaWdodCxtaW5XaWR0aDplLm1pbldpZHRo
LG1pbkhlaWdodDpkLl9taW5IZWlnaHQoKSxoYW5kbGVzOmEsc3RhcnQ6ZnVuY3Rpb24oZixoKXtj
KHRoaXMpLmFkZENsYXNzKCJ1aS1kaWFsb2ctcmVzaXppbmciKTtkLl90cmlnZ2VyKCJyZXNpemVT
dGFydCIsZixiKGgpKX0scmVzaXplOmZ1bmN0aW9uKGYsaCl7ZC5fdHJpZ2dlcigicmVzaXplIixm
LGIoaCkpfSxzdG9wOmZ1bmN0aW9uKGYsCitoKXtjKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1kaWFs
b2ctcmVzaXppbmciKTtlLmhlaWdodD1jKHRoaXMpLmhlaWdodCgpO2Uud2lkdGg9Yyh0aGlzKS53
aWR0aCgpO2QuX3RyaWdnZXIoInJlc2l6ZVN0b3AiLGYsYihoKSk7Yy51aS5kaWFsb2cub3Zlcmxh
eS5yZXNpemUoKX19KS5jc3MoInBvc2l0aW9uIixnKS5maW5kKCIudWktcmVzaXphYmxlLXNlIiku
YWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwLWRpYWdvbmFsLXNlIil9LF9taW5IZWlnaHQ6
ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnM7cmV0dXJuIGEuaGVpZ2h0PT09ImF1dG8iP2Eu
bWluSGVpZ2h0Ok1hdGgubWluKGEubWluSGVpZ2h0LGEuaGVpZ2h0KX0sX3Bvc2l0aW9uOmZ1bmN0
aW9uKGEpe3ZhciBiPVtdLGQ9WzAsMF0sZTtpZihhKXtpZih0eXBlb2YgYT09PSJzdHJpbmcifHx0
eXBlb2YgYT09PSJvYmplY3QiJiYiMCJpbiBhKXtiPWEuc3BsaXQ/YS5zcGxpdCgiICIpOlthWzBd
LGFbMV1dO2lmKGIubGVuZ3RoPT09CisxKWJbMV09YlswXTtjLmVhY2goWyJsZWZ0IiwidG9wIl0s
ZnVuY3Rpb24oZyxmKXtpZigrYltnXT09PWJbZ10pe2RbZ109YltnXTtiW2ddPWZ9fSk7YT17bXk6
Yi5qb2luKCIgIiksYXQ6Yi5qb2luKCIgIiksb2Zmc2V0OmQuam9pbigiICIpfX1hPWMuZXh0ZW5k
KHt9LGMudWkuZGlhbG9nLnByb3RvdHlwZS5vcHRpb25zLnBvc2l0aW9uLGEpfWVsc2UgYT1jLnVp
LmRpYWxvZy5wcm90b3R5cGUub3B0aW9ucy5wb3NpdGlvbjsoZT10aGlzLnVpRGlhbG9nLmlzKCI6
dmlzaWJsZSIpKXx8dGhpcy51aURpYWxvZy5zaG93KCk7dGhpcy51aURpYWxvZy5jc3Moe3RvcDow
LGxlZnQ6MH0pLnBvc2l0aW9uKGMuZXh0ZW5kKHtvZjp3aW5kb3d9LGEpKTtlfHx0aGlzLnVpRGlh
bG9nLmhpZGUoKX0sX3NldE9wdGlvbnM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxkPXt9LGU9ZmFs
c2U7Yy5lYWNoKGEsZnVuY3Rpb24oZyxmKXtiLl9zZXRPcHRpb24oZyxmKTtpZihnIGluIGspZT10
cnVlO2lmKGcgaW4KK2wpZFtnXT1mfSk7ZSYmdGhpcy5fc2l6ZSgpO3RoaXMudWlEaWFsb2cuaXMo
IjpkYXRhKHJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsZCl9
LF9zZXRPcHRpb246ZnVuY3Rpb24oYSxiKXt2YXIgZD10aGlzLGU9ZC51aURpYWxvZztzd2l0Y2go
YSl7Y2FzZSAiYmVmb3JlY2xvc2UiOmE9ImJlZm9yZUNsb3NlIjticmVhaztjYXNlICJidXR0b25z
IjpkLl9jcmVhdGVCdXR0b25zKGIpO2JyZWFrO2Nhc2UgImNsb3NlVGV4dCI6ZC51aURpYWxvZ1Rp
dGxlYmFyQ2xvc2VUZXh0LnRleHQoIiIrYik7YnJlYWs7Y2FzZSAiZGlhbG9nQ2xhc3MiOmUucmVt
b3ZlQ2xhc3MoZC5vcHRpb25zLmRpYWxvZ0NsYXNzKS5hZGRDbGFzcygidWktZGlhbG9nIHVpLXdp
ZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsICIrYik7YnJlYWs7Y2FzZSAiZGlz
YWJsZWQiOmI/ZS5hZGRDbGFzcygidWktZGlhbG9nLWRpc2FibGVkIik6ZS5yZW1vdmVDbGFzcygi
dWktZGlhbG9nLWRpc2FibGVkIik7CiticmVhaztjYXNlICJkcmFnZ2FibGUiOnZhciBnPWUuaXMo
IjpkYXRhKGRyYWdnYWJsZSkiKTtnJiYhYiYmZS5kcmFnZ2FibGUoImRlc3Ryb3kiKTshZyYmYiYm
ZC5fbWFrZURyYWdnYWJsZSgpO2JyZWFrO2Nhc2UgInBvc2l0aW9uIjpkLl9wb3NpdGlvbihiKTti
cmVhaztjYXNlICJyZXNpemFibGUiOihnPWUuaXMoIjpkYXRhKHJlc2l6YWJsZSkiKSkmJiFiJiZl
LnJlc2l6YWJsZSgiZGVzdHJveSIpO2cmJnR5cGVvZiBiPT09InN0cmluZyImJmUucmVzaXphYmxl
KCJvcHRpb24iLCJoYW5kbGVzIixiKTshZyYmYiE9PWZhbHNlJiZkLl9tYWtlUmVzaXphYmxlKGIp
O2JyZWFrO2Nhc2UgInRpdGxlIjpjKCIudWktZGlhbG9nLXRpdGxlIixkLnVpRGlhbG9nVGl0bGVi
YXIpLmh0bWwoIiIrKGJ8fCImIzE2MDsiKSk7YnJlYWt9Yy5XaWRnZXQucHJvdG90eXBlLl9zZXRP
cHRpb24uYXBwbHkoZCxhcmd1bWVudHMpfSxfc2l6ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0
aW9ucyxiLGQsZT0KK3RoaXMudWlEaWFsb2cuaXMoIjp2aXNpYmxlIik7dGhpcy5lbGVtZW50LnNo
b3coKS5jc3Moe3dpZHRoOiJhdXRvIixtaW5IZWlnaHQ6MCxoZWlnaHQ6MH0pO2lmKGEubWluV2lk
dGg+YS53aWR0aClhLndpZHRoPWEubWluV2lkdGg7Yj10aGlzLnVpRGlhbG9nLmNzcyh7aGVpZ2h0
OiJhdXRvIix3aWR0aDphLndpZHRofSkuaGVpZ2h0KCk7ZD1NYXRoLm1heCgwLGEubWluSGVpZ2h0
LWIpO2lmKGEuaGVpZ2h0PT09ImF1dG8iKWlmKGMuc3VwcG9ydC5taW5IZWlnaHQpdGhpcy5lbGVt
ZW50LmNzcyh7bWluSGVpZ2h0OmQsaGVpZ2h0OiJhdXRvIn0pO2Vsc2V7dGhpcy51aURpYWxvZy5z
aG93KCk7YT10aGlzLmVsZW1lbnQuY3NzKCJoZWlnaHQiLCJhdXRvIikuaGVpZ2h0KCk7ZXx8dGhp
cy51aURpYWxvZy5oaWRlKCk7dGhpcy5lbGVtZW50LmhlaWdodChNYXRoLm1heChhLGQpKX1lbHNl
IHRoaXMuZWxlbWVudC5oZWlnaHQoTWF0aC5tYXgoYS5oZWlnaHQtYiwwKSk7dGhpcy51aURpYWxv
Zy5pcygiOmRhdGEocmVzaXphYmxlKSIpJiYKK3RoaXMudWlEaWFsb2cucmVzaXphYmxlKCJvcHRp
b24iLCJtaW5IZWlnaHQiLHRoaXMuX21pbkhlaWdodCgpKX19KTtjLmV4dGVuZChjLnVpLmRpYWxv
Zyx7dmVyc2lvbjoiMS44LjEwIix1dWlkOjAsbWF4WjowLGdldFRpdGxlSWQ6ZnVuY3Rpb24oYSl7
YT1hLmF0dHIoImlkIik7aWYoIWEpe3RoaXMudXVpZCs9MTthPXRoaXMudXVpZH1yZXR1cm4idWkt
ZGlhbG9nLXRpdGxlLSIrYX0sb3ZlcmxheTpmdW5jdGlvbihhKXt0aGlzLiRlbD1jLnVpLmRpYWxv
Zy5vdmVybGF5LmNyZWF0ZShhKX19KTtjLmV4dGVuZChjLnVpLmRpYWxvZy5vdmVybGF5LHtpbnN0
YW5jZXM6W10sb2xkSW5zdGFuY2VzOltdLG1heFo6MCxldmVudHM6Yy5tYXAoImZvY3VzLG1vdXNl
ZG93bixtb3VzZXVwLGtleWRvd24sa2V5cHJlc3MsY2xpY2siLnNwbGl0KCIsIiksZnVuY3Rpb24o
YSl7cmV0dXJuIGErIi5kaWFsb2ctb3ZlcmxheSJ9KS5qb2luKCIgIiksY3JlYXRlOmZ1bmN0aW9u
KGEpe2lmKHRoaXMuaW5zdGFuY2VzLmxlbmd0aD09PQorMCl7c2V0VGltZW91dChmdW5jdGlvbigp
e2MudWkuZGlhbG9nLm92ZXJsYXkuaW5zdGFuY2VzLmxlbmd0aCYmYyhkb2N1bWVudCkuYmluZChj
LnVpLmRpYWxvZy5vdmVybGF5LmV2ZW50cyxmdW5jdGlvbihkKXtpZihjKGQudGFyZ2V0KS56SW5k
ZXgoKTxjLnVpLmRpYWxvZy5vdmVybGF5Lm1heFopcmV0dXJuIGZhbHNlfSl9LDEpO2MoZG9jdW1l
bnQpLmJpbmQoImtleWRvd24uZGlhbG9nLW92ZXJsYXkiLGZ1bmN0aW9uKGQpe2lmKGEub3B0aW9u
cy5jbG9zZU9uRXNjYXBlJiZkLmtleUNvZGUmJmQua2V5Q29kZT09PWMudWkua2V5Q29kZS5FU0NB
UEUpe2EuY2xvc2UoZCk7ZC5wcmV2ZW50RGVmYXVsdCgpfX0pO2Mod2luZG93KS5iaW5kKCJyZXNp
emUuZGlhbG9nLW92ZXJsYXkiLGMudWkuZGlhbG9nLm92ZXJsYXkucmVzaXplKX12YXIgYj0odGhp
cy5vbGRJbnN0YW5jZXMucG9wKCl8fGMoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLXdpZGdl
dC1vdmVybGF5IikpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmNzcyh7d2lkdGg6dGhpcy53aWR0
aCgpLAoraGVpZ2h0OnRoaXMuaGVpZ2h0KCl9KTtjLmZuLmJnaWZyYW1lJiZiLmJnaWZyYW1lKCk7
dGhpcy5pbnN0YW5jZXMucHVzaChiKTtyZXR1cm4gYn0sZGVzdHJveTpmdW5jdGlvbihhKXt2YXIg
Yj1jLmluQXJyYXkoYSx0aGlzLmluc3RhbmNlcyk7YiE9LTEmJnRoaXMub2xkSW5zdGFuY2VzLnB1
c2godGhpcy5pbnN0YW5jZXMuc3BsaWNlKGIsMSlbMF0pO3RoaXMuaW5zdGFuY2VzLmxlbmd0aD09
PTAmJmMoW2RvY3VtZW50LHdpbmRvd10pLnVuYmluZCgiLmRpYWxvZy1vdmVybGF5Iik7YS5yZW1v
dmUoKTt2YXIgZD0wO2MuZWFjaCh0aGlzLmluc3RhbmNlcyxmdW5jdGlvbigpe2Q9TWF0aC5tYXgo
ZCx0aGlzLmNzcygiei1pbmRleCIpKX0pO3RoaXMubWF4Wj1kfSxoZWlnaHQ6ZnVuY3Rpb24oKXt2
YXIgYSxiO2lmKGMuYnJvd3Nlci5tc2llJiZjLmJyb3dzZXIudmVyc2lvbjw3KXthPU1hdGgubWF4
KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuYm9keS5zY3Jv
bGxIZWlnaHQpOworYj1NYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVp
Z2h0LGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0KTtyZXR1cm4gYTxiP2Mod2luZG93KS5oZWln
aHQoKSsicHgiOmErInB4In1lbHNlIHJldHVybiBjKGRvY3VtZW50KS5oZWlnaHQoKSsicHgifSx3
aWR0aDpmdW5jdGlvbigpe3ZhciBhLGI7aWYoYy5icm93c2VyLm1zaWUmJmMuYnJvd3Nlci52ZXJz
aW9uPDcpe2E9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoLGRv
Y3VtZW50LmJvZHkuc2Nyb2xsV2lkdGgpO2I9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50Lm9mZnNldFdpZHRoLGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgpO3JldHVybiBhPGI/Yyh3
aW5kb3cpLndpZHRoKCkrInB4IjphKyJweCJ9ZWxzZSByZXR1cm4gYyhkb2N1bWVudCkud2lkdGgo
KSsicHgifSxyZXNpemU6ZnVuY3Rpb24oKXt2YXIgYT1jKFtdKTtjLmVhY2goYy51aS5kaWFsb2cu
b3ZlcmxheS5pbnN0YW5jZXMsCitmdW5jdGlvbigpe2E9YS5hZGQodGhpcyl9KTthLmNzcyh7d2lk
dGg6MCxoZWlnaHQ6MH0pLmNzcyh7d2lkdGg6Yy51aS5kaWFsb2cub3ZlcmxheS53aWR0aCgpLGhl
aWdodDpjLnVpLmRpYWxvZy5vdmVybGF5LmhlaWdodCgpfSl9fSk7Yy5leHRlbmQoYy51aS5kaWFs
b2cub3ZlcmxheS5wcm90b3R5cGUse2Rlc3Ryb3k6ZnVuY3Rpb24oKXtjLnVpLmRpYWxvZy5vdmVy
bGF5LmRlc3Ryb3kodGhpcy4kZWwpfX0pfSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIFNs
aWRlciAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9q
cXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BM
IFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisg
KiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1NsaWRlcgorICoKKyAqIERlcGVuZHM6CisgKglq
cXVlcnkudWkuY29yZS5qcworICoJanF1ZXJ5LnVpLm1vdXNlLmpzCisgKglqcXVlcnkudWkud2lk
Z2V0LmpzCisgKi8KKyhmdW5jdGlvbihkKXtkLndpZGdldCgidWkuc2xpZGVyIixkLnVpLm1vdXNl
LHt3aWRnZXRFdmVudFByZWZpeDoic2xpZGUiLG9wdGlvbnM6e2FuaW1hdGU6ZmFsc2UsZGlzdGFu
Y2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTpmYWxzZSxz
dGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBiPXRoaXMs
YT10aGlzLm9wdGlvbnM7dGhpcy5fbW91c2VTbGlkaW5nPXRoaXMuX2tleVNsaWRpbmc9ZmFsc2U7
dGhpcy5fYW5pbWF0ZU9mZj10cnVlO3RoaXMuX2hhbmRsZUluZGV4PW51bGw7dGhpcy5fZGV0ZWN0
T3JpZW50YXRpb24oKTt0aGlzLl9tb3VzZUluaXQoKTt0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVp
LXNsaWRlciB1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKyIgdWktd2lkZ2V0IHVpLXdpZGdl
dC1jb250ZW50IHVpLWNvcm5lci1hbGwiKTthLmRpc2FibGVkJiZ0aGlzLmVsZW1lbnQuYWRkQ2xh
c3MoInVpLXNsaWRlci1kaXNhYmxlZCB1aS1kaXNhYmxlZCIpOwordGhpcy5yYW5nZT1kKFtdKTtp
ZihhLnJhbmdlKXtpZihhLnJhbmdlPT09dHJ1ZSl7dGhpcy5yYW5nZT1kKCI8ZGl2PjwvZGl2PiIp
O2lmKCFhLnZhbHVlcylhLnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigp
XTtpZihhLnZhbHVlcy5sZW5ndGgmJmEudmFsdWVzLmxlbmd0aCE9PTIpYS52YWx1ZXM9W2EudmFs
dWVzWzBdLGEudmFsdWVzWzBdXX1lbHNlIHRoaXMucmFuZ2U9ZCgiPGRpdj48L2Rpdj4iKTt0aGlz
LnJhbmdlLmFwcGVuZFRvKHRoaXMuZWxlbWVudCkuYWRkQ2xhc3MoInVpLXNsaWRlci1yYW5nZSIp
O2lmKGEucmFuZ2U9PT0ibWluInx8YS5yYW5nZT09PSJtYXgiKXRoaXMucmFuZ2UuYWRkQ2xhc3Mo
InVpLXNsaWRlci1yYW5nZS0iK2EucmFuZ2UpO3RoaXMucmFuZ2UuYWRkQ2xhc3MoInVpLXdpZGdl
dC1oZWFkZXIiKX1kKCIudWktc2xpZGVyLWhhbmRsZSIsdGhpcy5lbGVtZW50KS5sZW5ndGg9PT0w
JiZkKCI8YSBocmVmPScjJz48L2E+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KS5hZGRDbGFzcygi
dWktc2xpZGVyLWhhbmRsZSIpOworaWYoYS52YWx1ZXMmJmEudmFsdWVzLmxlbmd0aClmb3IoO2Qo
Ii51aS1zbGlkZXItaGFuZGxlIix0aGlzLmVsZW1lbnQpLmxlbmd0aDxhLnZhbHVlcy5sZW5ndGg7
KWQoIjxhIGhyZWY9JyMnPjwvYT4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLmFkZENsYXNzKCJ1
aS1zbGlkZXItaGFuZGxlIik7dGhpcy5oYW5kbGVzPWQoIi51aS1zbGlkZXItaGFuZGxlIix0aGlz
LmVsZW1lbnQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKTt0aGlz
LmhhbmRsZT10aGlzLmhhbmRsZXMuZXEoMCk7dGhpcy5oYW5kbGVzLmFkZCh0aGlzLnJhbmdlKS5m
aWx0ZXIoImEiKS5jbGljayhmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCl9KS5ob3Zlcihm
dW5jdGlvbigpe2EuZGlzYWJsZWR8fGQodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWhvdmVyIil9
LGZ1bmN0aW9uKCl7ZCh0aGlzKS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKX0pLmZvY3Vz
KGZ1bmN0aW9uKCl7aWYoYS5kaXNhYmxlZClkKHRoaXMpLmJsdXIoKTsKK2Vsc2V7ZCgiLnVpLXNs
aWRlciAudWktc3RhdGUtZm9jdXMiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKTtkKHRo
aXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfX0pLmJsdXIoZnVuY3Rpb24oKXtkKHRoaXMp
LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSk7dGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rp
b24oYyl7ZCh0aGlzKS5kYXRhKCJpbmRleC51aS1zbGlkZXItaGFuZGxlIixjKX0pO3RoaXMuaGFu
ZGxlcy5rZXlkb3duKGZ1bmN0aW9uKGMpe3ZhciBlPXRydWUsZj1kKHRoaXMpLmRhdGEoImluZGV4
LnVpLXNsaWRlci1oYW5kbGUiKSxoLGcsaTtpZighYi5vcHRpb25zLmRpc2FibGVkKXtzd2l0Y2go
Yy5rZXlDb2RlKXtjYXNlIGQudWkua2V5Q29kZS5IT01FOmNhc2UgZC51aS5rZXlDb2RlLkVORDpj
YXNlIGQudWkua2V5Q29kZS5QQUdFX1VQOmNhc2UgZC51aS5rZXlDb2RlLlBBR0VfRE9XTjpjYXNl
IGQudWkua2V5Q29kZS5VUDpjYXNlIGQudWkua2V5Q29kZS5SSUdIVDpjYXNlIGQudWkua2V5Q29k
ZS5ET1dOOmNhc2UgZC51aS5rZXlDb2RlLkxFRlQ6ZT0KK2ZhbHNlO2lmKCFiLl9rZXlTbGlkaW5n
KXtiLl9rZXlTbGlkaW5nPXRydWU7ZCh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIik7
aD1iLl9zdGFydChjLGYpO2lmKGg9PT1mYWxzZSlyZXR1cm59YnJlYWt9aT1iLm9wdGlvbnMuc3Rl
cDtoPWIub3B0aW9ucy52YWx1ZXMmJmIub3B0aW9ucy52YWx1ZXMubGVuZ3RoPyhnPWIudmFsdWVz
KGYpKTooZz1iLnZhbHVlKCkpO3N3aXRjaChjLmtleUNvZGUpe2Nhc2UgZC51aS5rZXlDb2RlLkhP
TUU6Zz1iLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgZC51aS5rZXlDb2RlLkVORDpnPWIuX3ZhbHVl
TWF4KCk7YnJlYWs7Y2FzZSBkLnVpLmtleUNvZGUuUEFHRV9VUDpnPWIuX3RyaW1BbGlnblZhbHVl
KGgrKGIuX3ZhbHVlTWF4KCktYi5fdmFsdWVNaW4oKSkvNSk7YnJlYWs7Y2FzZSBkLnVpLmtleUNv
ZGUuUEFHRV9ET1dOOmc9Yi5fdHJpbUFsaWduVmFsdWUoaC0oYi5fdmFsdWVNYXgoKS1iLl92YWx1
ZU1pbigpKS81KTticmVhaztjYXNlIGQudWkua2V5Q29kZS5VUDpjYXNlIGQudWkua2V5Q29kZS5S
SUdIVDppZihoPT09CitiLl92YWx1ZU1heCgpKXJldHVybjtnPWIuX3RyaW1BbGlnblZhbHVlKGgr
aSk7YnJlYWs7Y2FzZSBkLnVpLmtleUNvZGUuRE9XTjpjYXNlIGQudWkua2V5Q29kZS5MRUZUOmlm
KGg9PT1iLl92YWx1ZU1pbigpKXJldHVybjtnPWIuX3RyaW1BbGlnblZhbHVlKGgtaSk7YnJlYWt9
Yi5fc2xpZGUoYyxmLGcpO3JldHVybiBlfX0pLmtleXVwKGZ1bmN0aW9uKGMpe3ZhciBlPWQodGhp
cykuZGF0YSgiaW5kZXgudWktc2xpZGVyLWhhbmRsZSIpO2lmKGIuX2tleVNsaWRpbmcpe2IuX2tl
eVNsaWRpbmc9ZmFsc2U7Yi5fc3RvcChjLGUpO2IuX2NoYW5nZShjLGUpO2QodGhpcykucmVtb3Zl
Q2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfX0pO3RoaXMuX3JlZnJlc2hWYWx1ZSgpO3RoaXMuX2Fu
aW1hdGVPZmY9ZmFsc2V9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZXMucmVtb3ZlKCk7
dGhpcy5yYW5nZS5yZW1vdmUoKTt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNsaWRlciB1
aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwgdWktc2xpZGVyLWRpc2FibGVk
IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIikucmVtb3ZlRGF0YSgi
c2xpZGVyIikudW5iaW5kKCIuc2xpZGVyIik7Cit0aGlzLl9tb3VzZURlc3Ryb3koKTtyZXR1cm4g
dGhpc30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbihiKXt2YXIgYT10aGlzLm9wdGlvbnMsYyxlLGYs
aCxnO2lmKGEuZGlzYWJsZWQpcmV0dXJuIGZhbHNlO3RoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRo
aXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgp
fTt0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpO2M9dGhpcy5fbm9ybVZh
bHVlRnJvbU1vdXNlKHt4OmIucGFnZVgseTpiLnBhZ2VZfSk7ZT10aGlzLl92YWx1ZU1heCgpLXRo
aXMuX3ZhbHVlTWluKCkrMTtoPXRoaXM7dGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oaSl7dmFy
IGo9TWF0aC5hYnMoYy1oLnZhbHVlcyhpKSk7aWYoZT5qKXtlPWo7Zj1kKHRoaXMpO2c9aX19KTtp
ZihhLnJhbmdlPT09dHJ1ZSYmdGhpcy52YWx1ZXMoMSk9PT1hLm1pbil7Zys9MTtmPWQodGhpcy5o
YW5kbGVzW2ddKX1pZih0aGlzLl9zdGFydChiLAorZyk9PT1mYWxzZSlyZXR1cm4gZmFsc2U7dGhp
cy5fbW91c2VTbGlkaW5nPXRydWU7aC5faGFuZGxlSW5kZXg9ZztmLmFkZENsYXNzKCJ1aS1zdGF0
ZS1hY3RpdmUiKS5mb2N1cygpO2E9Zi5vZmZzZXQoKTt0aGlzLl9jbGlja09mZnNldD0hZChiLnRh
cmdldCkucGFyZW50cygpLmFuZFNlbGYoKS5pcygiLnVpLXNsaWRlci1oYW5kbGUiKT97bGVmdDow
LHRvcDowfTp7bGVmdDpiLnBhZ2VYLWEubGVmdC1mLndpZHRoKCkvMix0b3A6Yi5wYWdlWS1hLnRv
cC1mLmhlaWdodCgpLzItKHBhcnNlSW50KGYuY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCkt
KHBhcnNlSW50KGYuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLDEwKXx8MCkrKHBhcnNlSW50KGYu
Y3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDApfTt0aGlzLmhhbmRsZXMuaGFzQ2xhc3MoInVpLXN0YXRl
LWhvdmVyIil8fHRoaXMuX3NsaWRlKGIsZyxjKTtyZXR1cm4gdGhpcy5fYW5pbWF0ZU9mZj10cnVl
fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiB0cnVlfSwKK19tb3VzZURyYWc6ZnVuY3Rp
b24oYil7dmFyIGE9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKHt4OmIucGFnZVgseTpiLnBhZ2VZ
fSk7dGhpcy5fc2xpZGUoYix0aGlzLl9oYW5kbGVJbmRleCxhKTtyZXR1cm4gZmFsc2V9LF9tb3Vz
ZVN0b3A6ZnVuY3Rpb24oYil7dGhpcy5oYW5kbGVzLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3Rp
dmUiKTt0aGlzLl9tb3VzZVNsaWRpbmc9ZmFsc2U7dGhpcy5fc3RvcChiLHRoaXMuX2hhbmRsZUlu
ZGV4KTt0aGlzLl9jaGFuZ2UoYix0aGlzLl9oYW5kbGVJbmRleCk7dGhpcy5fY2xpY2tPZmZzZXQ9
dGhpcy5faGFuZGxlSW5kZXg9bnVsbDtyZXR1cm4gdGhpcy5fYW5pbWF0ZU9mZj1mYWxzZX0sX2Rl
dGVjdE9yaWVudGF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5vcmllbnRhdGlvbj10aGlzLm9wdGlvbnMu
b3JpZW50YXRpb249PT0idmVydGljYWwiPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwifSxfbm9ybVZh
bHVlRnJvbU1vdXNlOmZ1bmN0aW9uKGIpe3ZhciBhOworaWYodGhpcy5vcmllbnRhdGlvbj09PSJo
b3Jpem9udGFsIil7YT10aGlzLmVsZW1lbnRTaXplLndpZHRoO2I9Yi54LXRoaXMuZWxlbWVudE9m
ZnNldC5sZWZ0LSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC5sZWZ0OjApfWVs
c2V7YT10aGlzLmVsZW1lbnRTaXplLmhlaWdodDtiPWIueS10aGlzLmVsZW1lbnRPZmZzZXQudG9w
LSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC50b3A6MCl9YT1iL2E7aWYoYT4x
KWE9MTtpZihhPDApYT0wO2lmKHRoaXMub3JpZW50YXRpb249PT0idmVydGljYWwiKWE9MS1hO2I9
dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpO3JldHVybiB0aGlzLl90cmltQWxpZ25W
YWx1ZSh0aGlzLl92YWx1ZU1pbigpK2EqYil9LF9zdGFydDpmdW5jdGlvbihiLGEpe3ZhciBjPXto
YW5kbGU6dGhpcy5oYW5kbGVzW2FdLHZhbHVlOnRoaXMudmFsdWUoKX07aWYodGhpcy5vcHRpb25z
LnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgpe2MudmFsdWU9Cit0aGlzLnZhbHVl
cyhhKTtjLnZhbHVlcz10aGlzLnZhbHVlcygpfXJldHVybiB0aGlzLl90cmlnZ2VyKCJzdGFydCIs
YixjKX0sX3NsaWRlOmZ1bmN0aW9uKGIsYSxjKXt2YXIgZTtpZih0aGlzLm9wdGlvbnMudmFsdWVz
JiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCl7ZT10aGlzLnZhbHVlcyhhPzA6MSk7aWYodGhp
cy5vcHRpb25zLnZhbHVlcy5sZW5ndGg9PT0yJiZ0aGlzLm9wdGlvbnMucmFuZ2U9PT10cnVlJiYo
YT09PTAmJmM+ZXx8YT09PTEmJmM8ZSkpYz1lO2lmKGMhPT10aGlzLnZhbHVlcyhhKSl7ZT10aGlz
LnZhbHVlcygpO2VbYV09YztiPXRoaXMuX3RyaWdnZXIoInNsaWRlIixiLHtoYW5kbGU6dGhpcy5o
YW5kbGVzW2FdLHZhbHVlOmMsdmFsdWVzOmV9KTt0aGlzLnZhbHVlcyhhPzA6MSk7YiE9PWZhbHNl
JiZ0aGlzLnZhbHVlcyhhLGMsdHJ1ZSl9fWVsc2UgaWYoYyE9PXRoaXMudmFsdWUoKSl7Yj10aGlz
Ll90cmlnZ2VyKCJzbGlkZSIsYix7aGFuZGxlOnRoaXMuaGFuZGxlc1thXSwKK3ZhbHVlOmN9KTti
IT09ZmFsc2UmJnRoaXMudmFsdWUoYyl9fSxfc3RvcDpmdW5jdGlvbihiLGEpe3ZhciBjPXtoYW5k
bGU6dGhpcy5oYW5kbGVzW2FdLHZhbHVlOnRoaXMudmFsdWUoKX07aWYodGhpcy5vcHRpb25zLnZh
bHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgpe2MudmFsdWU9dGhpcy52YWx1ZXMoYSk7
Yy52YWx1ZXM9dGhpcy52YWx1ZXMoKX10aGlzLl90cmlnZ2VyKCJzdG9wIixiLGMpfSxfY2hhbmdl
OmZ1bmN0aW9uKGIsYSl7aWYoIXRoaXMuX2tleVNsaWRpbmcmJiF0aGlzLl9tb3VzZVNsaWRpbmcp
e3ZhciBjPXtoYW5kbGU6dGhpcy5oYW5kbGVzW2FdLHZhbHVlOnRoaXMudmFsdWUoKX07aWYodGhp
cy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgpe2MudmFsdWU9dGhp
cy52YWx1ZXMoYSk7Yy52YWx1ZXM9dGhpcy52YWx1ZXMoKX10aGlzLl90cmlnZ2VyKCJjaGFuZ2Ui
LGIsYyl9fSx2YWx1ZTpmdW5jdGlvbihiKXtpZihhcmd1bWVudHMubGVuZ3RoKXt0aGlzLm9wdGlv
bnMudmFsdWU9Cit0aGlzLl90cmltQWxpZ25WYWx1ZShiKTt0aGlzLl9yZWZyZXNoVmFsdWUoKTt0
aGlzLl9jaGFuZ2UobnVsbCwwKX1yZXR1cm4gdGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9u
KGIsYSl7dmFyIGMsZSxmO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7dGhpcy5vcHRpb25zLnZhbHVl
c1tiXT10aGlzLl90cmltQWxpZ25WYWx1ZShhKTt0aGlzLl9yZWZyZXNoVmFsdWUoKTt0aGlzLl9j
aGFuZ2UobnVsbCxiKX1pZihhcmd1bWVudHMubGVuZ3RoKWlmKGQuaXNBcnJheShhcmd1bWVudHNb
MF0pKXtjPXRoaXMub3B0aW9ucy52YWx1ZXM7ZT1hcmd1bWVudHNbMF07Zm9yKGY9MDtmPGMubGVu
Z3RoO2YrPTEpe2NbZl09dGhpcy5fdHJpbUFsaWduVmFsdWUoZVtmXSk7dGhpcy5fY2hhbmdlKG51
bGwsZil9dGhpcy5fcmVmcmVzaFZhbHVlKCl9ZWxzZSByZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVl
cyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/dGhpcy5fdmFsdWVzKGIpOnRoaXMudmFsdWUo
KTsKK2Vsc2UgcmV0dXJuIHRoaXMuX3ZhbHVlcygpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGIsYSl7
dmFyIGMsZT0wO2lmKGQuaXNBcnJheSh0aGlzLm9wdGlvbnMudmFsdWVzKSllPXRoaXMub3B0aW9u
cy52YWx1ZXMubGVuZ3RoO2QuV2lkZ2V0LnByb3RvdHlwZS5fc2V0T3B0aW9uLmFwcGx5KHRoaXMs
YXJndW1lbnRzKTtzd2l0Y2goYil7Y2FzZSAiZGlzYWJsZWQiOmlmKGEpe3RoaXMuaGFuZGxlcy5m
aWx0ZXIoIi51aS1zdGF0ZS1mb2N1cyIpLmJsdXIoKTt0aGlzLmhhbmRsZXMucmVtb3ZlQ2xhc3Mo
InVpLXN0YXRlLWhvdmVyIik7dGhpcy5oYW5kbGVzLmF0dHIoImRpc2FibGVkIiwiZGlzYWJsZWQi
KTt0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWRpc2FibGVkIil9ZWxzZXt0aGlzLmhhbmRsZXMu
cmVtb3ZlQXR0cigiZGlzYWJsZWQiKTt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRpc2Fi
bGVkIil9YnJlYWs7Y2FzZSAib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCk7
Cit0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNsaWRlci1ob3Jpem9udGFsIHVpLXNsaWRl
ci12ZXJ0aWNhbCIpLmFkZENsYXNzKCJ1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKTt0aGlz
Ll9yZWZyZXNoVmFsdWUoKTticmVhaztjYXNlICJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj10cnVl
O3RoaXMuX3JlZnJlc2hWYWx1ZSgpO3RoaXMuX2NoYW5nZShudWxsLDApO3RoaXMuX2FuaW1hdGVP
ZmY9ZmFsc2U7YnJlYWs7Y2FzZSAidmFsdWVzIjp0aGlzLl9hbmltYXRlT2ZmPXRydWU7dGhpcy5f
cmVmcmVzaFZhbHVlKCk7Zm9yKGM9MDtjPGU7Yys9MSl0aGlzLl9jaGFuZ2UobnVsbCxjKTt0aGlz
Ll9hbmltYXRlT2ZmPWZhbHNlO2JyZWFrfX0sX3ZhbHVlOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5v
cHRpb25zLnZhbHVlO3JldHVybiBiPXRoaXMuX3RyaW1BbGlnblZhbHVlKGIpfSxfdmFsdWVzOmZ1
bmN0aW9uKGIpe3ZhciBhLGM7aWYoYXJndW1lbnRzLmxlbmd0aCl7YT10aGlzLm9wdGlvbnMudmFs
dWVzW2JdOworcmV0dXJuIGE9dGhpcy5fdHJpbUFsaWduVmFsdWUoYSl9ZWxzZXthPXRoaXMub3B0
aW9ucy52YWx1ZXMuc2xpY2UoKTtmb3IoYz0wO2M8YS5sZW5ndGg7Yys9MSlhW2NdPXRoaXMuX3Ry
aW1BbGlnblZhbHVlKGFbY10pO3JldHVybiBhfX0sX3RyaW1BbGlnblZhbHVlOmZ1bmN0aW9uKGIp
e2lmKGI8PXRoaXMuX3ZhbHVlTWluKCkpcmV0dXJuIHRoaXMuX3ZhbHVlTWluKCk7aWYoYj49dGhp
cy5fdmFsdWVNYXgoKSlyZXR1cm4gdGhpcy5fdmFsdWVNYXgoKTt2YXIgYT10aGlzLm9wdGlvbnMu
c3RlcD4wP3RoaXMub3B0aW9ucy5zdGVwOjEsYz0oYi10aGlzLl92YWx1ZU1pbigpKSVhO2FsaWdu
VmFsdWU9Yi1jO2lmKE1hdGguYWJzKGMpKjI+PWEpYWxpZ25WYWx1ZSs9Yz4wP2E6LWE7cmV0dXJu
IHBhcnNlRmxvYXQoYWxpZ25WYWx1ZS50b0ZpeGVkKDUpKX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7
cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlz
Lm9wdGlvbnMubWF4fSwKK19yZWZyZXNoVmFsdWU6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLm9wdGlv
bnMucmFuZ2UsYT10aGlzLm9wdGlvbnMsYz10aGlzLGU9IXRoaXMuX2FuaW1hdGVPZmY/YS5hbmlt
YXRlOmZhbHNlLGYsaD17fSxnLGksaixsO2lmKHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0
aW9ucy52YWx1ZXMubGVuZ3RoKXRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGspe2Y9KGMudmFs
dWVzKGspLWMuX3ZhbHVlTWluKCkpLyhjLl92YWx1ZU1heCgpLWMuX3ZhbHVlTWluKCkpKjEwMDto
W2Mub3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCI/ImxlZnQiOiJib3R0b20iXT1mKyIlIjtkKHRo
aXMpLnN0b3AoMSwxKVtlPyJhbmltYXRlIjoiY3NzIl0oaCxhLmFuaW1hdGUpO2lmKGMub3B0aW9u
cy5yYW5nZT09PXRydWUpaWYoYy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIil7aWYoaz09PTAp
Yy5yYW5nZS5zdG9wKDEsMSlbZT8iYW5pbWF0ZSI6ImNzcyJdKHtsZWZ0OmYrIiUifSxhLmFuaW1h
dGUpOworaWYoaz09PTEpYy5yYW5nZVtlPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmYtZysiJSJ9
LHtxdWV1ZTpmYWxzZSxkdXJhdGlvbjphLmFuaW1hdGV9KX1lbHNle2lmKGs9PT0wKWMucmFuZ2Uu
c3RvcCgxLDEpW2U/ImFuaW1hdGUiOiJjc3MiXSh7Ym90dG9tOmYrIiUifSxhLmFuaW1hdGUpO2lm
KGs9PT0xKWMucmFuZ2VbZT8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6Zi1nKyIlIn0se3F1ZXVl
OmZhbHNlLGR1cmF0aW9uOmEuYW5pbWF0ZX0pfWc9Zn0pO2Vsc2V7aT10aGlzLnZhbHVlKCk7aj10
aGlzLl92YWx1ZU1pbigpO2w9dGhpcy5fdmFsdWVNYXgoKTtmPWwhPT1qPyhpLWopLyhsLWopKjEw
MDowO2hbYy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIj8ibGVmdCI6ImJvdHRvbSJdPWYrIiUi
O3RoaXMuaGFuZGxlLnN0b3AoMSwxKVtlPyJhbmltYXRlIjoiY3NzIl0oaCxhLmFuaW1hdGUpO2lm
KGI9PT0ibWluIiYmdGhpcy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIil0aGlzLnJhbmdlLnN0
b3AoMSwKKzEpW2U/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6ZisiJSJ9LGEuYW5pbWF0ZSk7aWYo
Yj09PSJtYXgiJiZ0aGlzLm9yaWVudGF0aW9uPT09Imhvcml6b250YWwiKXRoaXMucmFuZ2VbZT8i
YW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDoxMDAtZisiJSJ9LHtxdWV1ZTpmYWxzZSxkdXJhdGlvbjph
LmFuaW1hdGV9KTtpZihiPT09Im1pbiImJnRoaXMub3JpZW50YXRpb249PT0idmVydGljYWwiKXRo
aXMucmFuZ2Uuc3RvcCgxLDEpW2U/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmYrIiUifSxhLmFu
aW1hdGUpO2lmKGI9PT0ibWF4IiYmdGhpcy5vcmllbnRhdGlvbj09PSJ2ZXJ0aWNhbCIpdGhpcy5y
YW5nZVtlPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDoxMDAtZisiJSJ9LHtxdWV1ZTpmYWxzZSxk
dXJhdGlvbjphLmFuaW1hdGV9KX19fSk7ZC5leHRlbmQoZC51aS5zbGlkZXIse3ZlcnNpb246IjEu
OC4xMCJ9KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBUYWJzIDEuOC4xMAorICoKKyAq
IENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkK
KyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2Vz
LgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVy
eS5jb20vVUkvVGFicworICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkudWkuY29yZS5qcworICoJ
anF1ZXJ5LnVpLndpZGdldC5qcworICovCisoZnVuY3Rpb24oZCxwKXtmdW5jdGlvbiB1KCl7cmV0
dXJuKyt2fWZ1bmN0aW9uIHcoKXtyZXR1cm4rK3h9dmFyIHY9MCx4PTA7ZC53aWRnZXQoInVpLnRh
YnMiLHtvcHRpb25zOnthZGQ6bnVsbCxhamF4T3B0aW9uczpudWxsLGNhY2hlOmZhbHNlLGNvb2tp
ZTpudWxsLGNvbGxhcHNpYmxlOmZhbHNlLGRpc2FibGU6bnVsbCxkaXNhYmxlZDpbXSxlbmFibGU6
bnVsbCxldmVudDoiY2xpY2siLGZ4Om51bGwsaWRQcmVmaXg6InVpLXRhYnMtIixsb2FkOm51bGws
cGFuZWxUZW1wbGF0ZToiPGRpdj48L2Rpdj4iLHJlbW92ZTpudWxsLHNlbGVjdDpudWxsLHNob3c6
bnVsbCxzcGlubmVyOiI8ZW0+TG9hZGluZyYjODIzMDs8L2VtPiIsdGFiVGVtcGxhdGU6IjxsaT48
YSBocmVmPScje2hyZWZ9Jz48c3Bhbj4je2xhYmVsfTwvc3Bhbj48L2E+PC9saT4ifSxfY3JlYXRl
OmZ1bmN0aW9uKCl7dGhpcy5fdGFiaWZ5KHRydWUpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGIsZSl7
aWYoYj09InNlbGVjdGVkIil0aGlzLm9wdGlvbnMuY29sbGFwc2libGUmJgorZT09dGhpcy5vcHRp
b25zLnNlbGVjdGVkfHx0aGlzLnNlbGVjdChlKTtlbHNle3RoaXMub3B0aW9uc1tiXT1lO3RoaXMu
X3RhYmlmeSgpfX0sX3RhYklkOmZ1bmN0aW9uKGIpe3JldHVybiBiLnRpdGxlJiZiLnRpdGxlLnJl
cGxhY2UoL1xzL2csIl8iKS5yZXBsYWNlKC9bXlx3XHUwMGMwLVx1RkZGRi1dL2csIiIpfHx0aGlz
Lm9wdGlvbnMuaWRQcmVmaXgrdSgpfSxfc2FuaXRpemVTZWxlY3RvcjpmdW5jdGlvbihiKXtyZXR1
cm4gYi5yZXBsYWNlKC86L2csIlxcOiIpfSxfY29va2llOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5j
b29raWV8fCh0aGlzLmNvb2tpZT10aGlzLm9wdGlvbnMuY29va2llLm5hbWV8fCJ1aS10YWJzLSIr
dygpKTtyZXR1cm4gZC5jb29raWUuYXBwbHkobnVsbCxbYl0uY29uY2F0KGQubWFrZUFycmF5KGFy
Z3VtZW50cykpKX0sX3VpOmZ1bmN0aW9uKGIsZSl7cmV0dXJue3RhYjpiLHBhbmVsOmUsaW5kZXg6
dGhpcy5hbmNob3JzLmluZGV4KGIpfX0sX2NsZWFudXA6ZnVuY3Rpb24oKXt0aGlzLmxpcy5maWx0
ZXIoIi51aS1zdGF0ZS1wcm9jZXNzaW5nIikucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLXByb2Nlc3Np
bmciKS5maW5kKCJzcGFuOmRhdGEobGFiZWwudGFicykiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9
CitkKHRoaXMpO2IuaHRtbChiLmRhdGEoImxhYmVsLnRhYnMiKSkucmVtb3ZlRGF0YSgibGFiZWwu
dGFicyIpfSl9LF90YWJpZnk6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZShnLGYpe2cuY3NzKCJkaXNw
bGF5IiwiIik7IWQuc3VwcG9ydC5vcGFjaXR5JiZmLm9wYWNpdHkmJmdbMF0uc3R5bGUucmVtb3Zl
QXR0cmlidXRlKCJmaWx0ZXIiKX12YXIgYT10aGlzLGM9dGhpcy5vcHRpb25zLGg9L14jLisvO3Ro
aXMubGlzdD10aGlzLmVsZW1lbnQuZmluZCgib2wsdWwiKS5lcSgwKTt0aGlzLmxpcz1kKCIgPiBs
aTpoYXMoYVtocmVmXSkiLHRoaXMubGlzdCk7dGhpcy5hbmNob3JzPXRoaXMubGlzLm1hcChmdW5j
dGlvbigpe3JldHVybiBkKCJhIix0aGlzKVswXX0pO3RoaXMucGFuZWxzPWQoW10pO3RoaXMuYW5j
aG9ycy5lYWNoKGZ1bmN0aW9uKGcsZil7dmFyIGk9ZChmKS5hdHRyKCJocmVmIiksbD1pLnNwbGl0
KCIjIilbMF0scTtpZihsJiYobD09PWxvY2F0aW9uLnRvU3RyaW5nKCkuc3BsaXQoIiMiKVswXXx8
CisocT1kKCJiYXNlIilbMF0pJiZsPT09cS5ocmVmKSl7aT1mLmhhc2g7Zi5ocmVmPWl9aWYoaC50
ZXN0KGkpKWEucGFuZWxzPWEucGFuZWxzLmFkZChhLmVsZW1lbnQuZmluZChhLl9zYW5pdGl6ZVNl
bGVjdG9yKGkpKSk7ZWxzZSBpZihpJiZpIT09IiMiKXtkLmRhdGEoZiwiaHJlZi50YWJzIixpKTtk
LmRhdGEoZiwibG9hZC50YWJzIixpLnJlcGxhY2UoLyMuKiQvLCIiKSk7aT1hLl90YWJJZChmKTtm
LmhyZWY9IiMiK2k7Zj1hLmVsZW1lbnQuZmluZCgiIyIraSk7aWYoIWYubGVuZ3RoKXtmPWQoYy5w
YW5lbFRlbXBsYXRlKS5hdHRyKCJpZCIsaSkuYWRkQ2xhc3MoInVpLXRhYnMtcGFuZWwgdWktd2lk
Z2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmluc2VydEFmdGVyKGEucGFuZWxzW2ctMV18
fGEubGlzdCk7Zi5kYXRhKCJkZXN0cm95LnRhYnMiLHRydWUpfWEucGFuZWxzPWEucGFuZWxzLmFk
ZChmKX1lbHNlIGMuZGlzYWJsZWQucHVzaChnKX0pO2lmKGIpe3RoaXMuZWxlbWVudC5hZGRDbGFz
cygidWktdGFicyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCIpOwor
dGhpcy5saXN0LmFkZENsYXNzKCJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktaGVscGVy
LWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCIpO3RoaXMubGlzLmFkZENs
YXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiKTt0aGlzLnBhbmVscy5hZGRDbGFz
cygidWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIik7aWYo
Yy5zZWxlY3RlZD09PXApe2xvY2F0aW9uLmhhc2gmJnRoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9u
KGcsZil7aWYoZi5oYXNoPT1sb2NhdGlvbi5oYXNoKXtjLnNlbGVjdGVkPWc7cmV0dXJuIGZhbHNl
fX0pO2lmKHR5cGVvZiBjLnNlbGVjdGVkIT09Im51bWJlciImJmMuY29va2llKWMuc2VsZWN0ZWQ9
cGFyc2VJbnQoYS5fY29va2llKCksMTApO2lmKHR5cGVvZiBjLnNlbGVjdGVkIT09Im51bWJlciIm
JnRoaXMubGlzLmZpbHRlcigiLnVpLXRhYnMtc2VsZWN0ZWQiKS5sZW5ndGgpYy5zZWxlY3RlZD0K
K3RoaXMubGlzLmluZGV4KHRoaXMubGlzLmZpbHRlcigiLnVpLXRhYnMtc2VsZWN0ZWQiKSk7Yy5z
ZWxlY3RlZD1jLnNlbGVjdGVkfHwodGhpcy5saXMubGVuZ3RoPzA6LTEpfWVsc2UgaWYoYy5zZWxl
Y3RlZD09PW51bGwpYy5zZWxlY3RlZD0tMTtjLnNlbGVjdGVkPWMuc2VsZWN0ZWQ+PTAmJnRoaXMu
YW5jaG9yc1tjLnNlbGVjdGVkXXx8Yy5zZWxlY3RlZDwwP2Muc2VsZWN0ZWQ6MDtjLmRpc2FibGVk
PWQudW5pcXVlKGMuZGlzYWJsZWQuY29uY2F0KGQubWFwKHRoaXMubGlzLmZpbHRlcigiLnVpLXN0
YXRlLWRpc2FibGVkIiksZnVuY3Rpb24oZyl7cmV0dXJuIGEubGlzLmluZGV4KGcpfSkpKS5zb3J0
KCk7ZC5pbkFycmF5KGMuc2VsZWN0ZWQsYy5kaXNhYmxlZCkhPS0xJiZjLmRpc2FibGVkLnNwbGlj
ZShkLmluQXJyYXkoYy5zZWxlY3RlZCxjLmRpc2FibGVkKSwxKTt0aGlzLnBhbmVscy5hZGRDbGFz
cygidWktdGFicy1oaWRlIik7dGhpcy5saXMucmVtb3ZlQ2xhc3MoInVpLXRhYnMtc2VsZWN0ZWQg
dWktc3RhdGUtYWN0aXZlIik7CitpZihjLnNlbGVjdGVkPj0wJiZ0aGlzLmFuY2hvcnMubGVuZ3Ro
KXthLmVsZW1lbnQuZmluZChhLl9zYW5pdGl6ZVNlbGVjdG9yKGEuYW5jaG9yc1tjLnNlbGVjdGVk
XS5oYXNoKSkucmVtb3ZlQ2xhc3MoInVpLXRhYnMtaGlkZSIpO3RoaXMubGlzLmVxKGMuc2VsZWN0
ZWQpLmFkZENsYXNzKCJ1aS10YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSIpO2EuZWxlbWVu
dC5xdWV1ZSgidGFicyIsZnVuY3Rpb24oKXthLl90cmlnZ2VyKCJzaG93IixudWxsLGEuX3VpKGEu
YW5jaG9yc1tjLnNlbGVjdGVkXSxhLmVsZW1lbnQuZmluZChhLl9zYW5pdGl6ZVNlbGVjdG9yKGEu
YW5jaG9yc1tjLnNlbGVjdGVkXS5oYXNoKSlbMF0pKX0pO3RoaXMubG9hZChjLnNlbGVjdGVkKX1k
KHdpbmRvdykuYmluZCgidW5sb2FkIixmdW5jdGlvbigpe2EubGlzLmFkZChhLmFuY2hvcnMpLnVu
YmluZCgiLnRhYnMiKTthLmxpcz1hLmFuY2hvcnM9YS5wYW5lbHM9bnVsbH0pfWVsc2UgYy5zZWxl
Y3RlZD10aGlzLmxpcy5pbmRleCh0aGlzLmxpcy5maWx0ZXIoIi51aS10YWJzLXNlbGVjdGVkIikp
OwordGhpcy5lbGVtZW50W2MuY29sbGFwc2libGU/ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXSgi
dWktdGFicy1jb2xsYXBzaWJsZSIpO2MuY29va2llJiZ0aGlzLl9jb29raWUoYy5zZWxlY3RlZCxj
LmNvb2tpZSk7Yj0wO2Zvcih2YXIgajtqPXRoaXMubGlzW2JdO2IrKylkKGopW2QuaW5BcnJheShi
LGMuZGlzYWJsZWQpIT0tMSYmIWQoaikuaGFzQ2xhc3MoInVpLXRhYnMtc2VsZWN0ZWQiKT8iYWRk
Q2xhc3MiOiJyZW1vdmVDbGFzcyJdKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpO2MuY2FjaGU9PT1mYWxz
ZSYmdGhpcy5hbmNob3JzLnJlbW92ZURhdGEoImNhY2hlLnRhYnMiKTt0aGlzLmxpcy5hZGQodGhp
cy5hbmNob3JzKS51bmJpbmQoIi50YWJzIik7aWYoYy5ldmVudCE9PSJtb3VzZW92ZXIiKXt2YXIg
az1mdW5jdGlvbihnLGYpe2YuaXMoIjpub3QoLnVpLXN0YXRlLWRpc2FibGVkKSIpJiZmLmFkZENs
YXNzKCJ1aS1zdGF0ZS0iK2cpfSxuPWZ1bmN0aW9uKGcsZil7Zi5yZW1vdmVDbGFzcygidWktc3Rh
dGUtIisKK2cpfTt0aGlzLmxpcy5iaW5kKCJtb3VzZW92ZXIudGFicyIsZnVuY3Rpb24oKXtrKCJo
b3ZlciIsZCh0aGlzKSl9KTt0aGlzLmxpcy5iaW5kKCJtb3VzZW91dC50YWJzIixmdW5jdGlvbigp
e24oImhvdmVyIixkKHRoaXMpKX0pO3RoaXMuYW5jaG9ycy5iaW5kKCJmb2N1cy50YWJzIixmdW5j
dGlvbigpe2soImZvY3VzIixkKHRoaXMpLmNsb3Nlc3QoImxpIikpfSk7dGhpcy5hbmNob3JzLmJp
bmQoImJsdXIudGFicyIsZnVuY3Rpb24oKXtuKCJmb2N1cyIsZCh0aGlzKS5jbG9zZXN0KCJsaSIp
KX0pfXZhciBtLG87aWYoYy5meClpZihkLmlzQXJyYXkoYy5meCkpe209Yy5meFswXTtvPWMuZnhb
MV19ZWxzZSBtPW89Yy5meDt2YXIgcj1vP2Z1bmN0aW9uKGcsZil7ZChnKS5jbG9zZXN0KCJsaSIp
LmFkZENsYXNzKCJ1aS10YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSIpO2YuaGlkZSgpLnJl
bW92ZUNsYXNzKCJ1aS10YWJzLWhpZGUiKS5hbmltYXRlKG8sby5kdXJhdGlvbnx8Im5vcm1hbCIs
CitmdW5jdGlvbigpe2UoZixvKTthLl90cmlnZ2VyKCJzaG93IixudWxsLGEuX3VpKGcsZlswXSkp
fSl9OmZ1bmN0aW9uKGcsZil7ZChnKS5jbG9zZXN0KCJsaSIpLmFkZENsYXNzKCJ1aS10YWJzLXNl
bGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSIpO2YucmVtb3ZlQ2xhc3MoInVpLXRhYnMtaGlkZSIpO2Eu
X3RyaWdnZXIoInNob3ciLG51bGwsYS5fdWkoZyxmWzBdKSl9LHM9bT9mdW5jdGlvbihnLGYpe2Yu
YW5pbWF0ZShtLG0uZHVyYXRpb258fCJub3JtYWwiLGZ1bmN0aW9uKCl7YS5saXMucmVtb3ZlQ2xh
c3MoInVpLXRhYnMtc2VsZWN0ZWQgdWktc3RhdGUtYWN0aXZlIik7Zi5hZGRDbGFzcygidWktdGFi
cy1oaWRlIik7ZShmLG0pO2EuZWxlbWVudC5kZXF1ZXVlKCJ0YWJzIil9KX06ZnVuY3Rpb24oZyxm
KXthLmxpcy5yZW1vdmVDbGFzcygidWktdGFicy1zZWxlY3RlZCB1aS1zdGF0ZS1hY3RpdmUiKTtm
LmFkZENsYXNzKCJ1aS10YWJzLWhpZGUiKTthLmVsZW1lbnQuZGVxdWV1ZSgidGFicyIpfTsKK3Ro
aXMuYW5jaG9ycy5iaW5kKGMuZXZlbnQrIi50YWJzIixmdW5jdGlvbigpe3ZhciBnPXRoaXMsZj1k
KGcpLmNsb3Nlc3QoImxpIiksaT1hLnBhbmVscy5maWx0ZXIoIjpub3QoLnVpLXRhYnMtaGlkZSki
KSxsPWEuZWxlbWVudC5maW5kKGEuX3Nhbml0aXplU2VsZWN0b3IoZy5oYXNoKSk7aWYoZi5oYXND
bGFzcygidWktdGFicy1zZWxlY3RlZCIpJiYhYy5jb2xsYXBzaWJsZXx8Zi5oYXNDbGFzcygidWkt
c3RhdGUtZGlzYWJsZWQiKXx8Zi5oYXNDbGFzcygidWktc3RhdGUtcHJvY2Vzc2luZyIpfHxhLnBh
bmVscy5maWx0ZXIoIjphbmltYXRlZCIpLmxlbmd0aHx8YS5fdHJpZ2dlcigic2VsZWN0IixudWxs
LGEuX3VpKHRoaXMsbFswXSkpPT09ZmFsc2Upe3RoaXMuYmx1cigpO3JldHVybiBmYWxzZX1jLnNl
bGVjdGVkPWEuYW5jaG9ycy5pbmRleCh0aGlzKTthLmFib3J0KCk7aWYoYy5jb2xsYXBzaWJsZSlp
ZihmLmhhc0NsYXNzKCJ1aS10YWJzLXNlbGVjdGVkIikpe2Muc2VsZWN0ZWQ9CistMTtjLmNvb2tp
ZSYmYS5fY29va2llKGMuc2VsZWN0ZWQsYy5jb29raWUpO2EuZWxlbWVudC5xdWV1ZSgidGFicyIs
ZnVuY3Rpb24oKXtzKGcsaSl9KS5kZXF1ZXVlKCJ0YWJzIik7dGhpcy5ibHVyKCk7cmV0dXJuIGZh
bHNlfWVsc2UgaWYoIWkubGVuZ3RoKXtjLmNvb2tpZSYmYS5fY29va2llKGMuc2VsZWN0ZWQsYy5j
b29raWUpO2EuZWxlbWVudC5xdWV1ZSgidGFicyIsZnVuY3Rpb24oKXtyKGcsbCl9KTthLmxvYWQo
YS5hbmNob3JzLmluZGV4KHRoaXMpKTt0aGlzLmJsdXIoKTtyZXR1cm4gZmFsc2V9Yy5jb29raWUm
JmEuX2Nvb2tpZShjLnNlbGVjdGVkLGMuY29va2llKTtpZihsLmxlbmd0aCl7aS5sZW5ndGgmJmEu
ZWxlbWVudC5xdWV1ZSgidGFicyIsZnVuY3Rpb24oKXtzKGcsaSl9KTthLmVsZW1lbnQucXVldWUo
InRhYnMiLGZ1bmN0aW9uKCl7cihnLGwpfSk7YS5sb2FkKGEuYW5jaG9ycy5pbmRleCh0aGlzKSl9
ZWxzZSB0aHJvdyJqUXVlcnkgVUkgVGFiczogTWlzbWF0Y2hpbmcgZnJhZ21lbnQgaWRlbnRpZmll
ci4iOworZC5icm93c2VyLm1zaWUmJnRoaXMuYmx1cigpfSk7dGhpcy5hbmNob3JzLmJpbmQoImNs
aWNrLnRhYnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSl9LF9nZXRJbmRleDpmdW5jdGlvbihi
KXtpZih0eXBlb2YgYj09InN0cmluZyIpYj10aGlzLmFuY2hvcnMuaW5kZXgodGhpcy5hbmNob3Jz
LmZpbHRlcigiW2hyZWYkPSIrYisiXSIpKTtyZXR1cm4gYn0sZGVzdHJveTpmdW5jdGlvbigpe3Zh
ciBiPXRoaXMub3B0aW9uczt0aGlzLmFib3J0KCk7dGhpcy5lbGVtZW50LnVuYmluZCgiLnRhYnMi
KS5yZW1vdmVDbGFzcygidWktdGFicyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29y
bmVyLWFsbCB1aS10YWJzLWNvbGxhcHNpYmxlIikucmVtb3ZlRGF0YSgidGFicyIpO3RoaXMubGlz
dC5yZW1vdmVDbGFzcygidWktdGFicy1uYXYgdWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVh
cmZpeCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiKTt0aGlzLmFuY2hvcnMuZWFjaChm
dW5jdGlvbigpe3ZhciBlPQorZC5kYXRhKHRoaXMsImhyZWYudGFicyIpO2lmKGUpdGhpcy5ocmVm
PWU7dmFyIGE9ZCh0aGlzKS51bmJpbmQoIi50YWJzIik7ZC5lYWNoKFsiaHJlZiIsImxvYWQiLCJj
YWNoZSJdLGZ1bmN0aW9uKGMsaCl7YS5yZW1vdmVEYXRhKGgrIi50YWJzIil9KX0pO3RoaXMubGlz
LnVuYmluZCgiLnRhYnMiKS5hZGQodGhpcy5wYW5lbHMpLmVhY2goZnVuY3Rpb24oKXtkLmRhdGEo
dGhpcywiZGVzdHJveS50YWJzIik/ZCh0aGlzKS5yZW1vdmUoKTpkKHRoaXMpLnJlbW92ZUNsYXNz
KCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AgdWktdGFicy1zZWxlY3RlZCB1aS1zdGF0
ZS1hY3RpdmUgdWktc3RhdGUtaG92ZXIgdWktc3RhdGUtZm9jdXMgdWktc3RhdGUtZGlzYWJsZWQg
dWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLXRhYnMt
aGlkZSIpfSk7Yi5jb29raWUmJnRoaXMuX2Nvb2tpZShudWxsLGIuY29va2llKTtyZXR1cm4gdGhp
c30sYWRkOmZ1bmN0aW9uKGIsCitlLGEpe2lmKGE9PT1wKWE9dGhpcy5hbmNob3JzLmxlbmd0aDt2
YXIgYz10aGlzLGg9dGhpcy5vcHRpb25zO2U9ZChoLnRhYlRlbXBsYXRlLnJlcGxhY2UoLyNce2hy
ZWZcfS9nLGIpLnJlcGxhY2UoLyNce2xhYmVsXH0vZyxlKSk7Yj0hYi5pbmRleE9mKCIjIik/Yi5y
ZXBsYWNlKCIjIiwiIik6dGhpcy5fdGFiSWQoZCgiYSIsZSlbMF0pO2UuYWRkQ2xhc3MoInVpLXN0
YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCIpLmRhdGEoImRlc3Ryb3kudGFicyIsdHJ1ZSk7dmFy
IGo9Yy5lbGVtZW50LmZpbmQoIiMiK2IpO2oubGVuZ3RofHwoaj1kKGgucGFuZWxUZW1wbGF0ZSku
YXR0cigiaWQiLGIpLmRhdGEoImRlc3Ryb3kudGFicyIsdHJ1ZSkpO2ouYWRkQ2xhc3MoInVpLXRh
YnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSB1aS10YWJzLWhpZGUi
KTtpZihhPj10aGlzLmxpcy5sZW5ndGgpe2UuYXBwZW5kVG8odGhpcy5saXN0KTtqLmFwcGVuZFRv
KHRoaXMubGlzdFswXS5wYXJlbnROb2RlKX1lbHNle2UuaW5zZXJ0QmVmb3JlKHRoaXMubGlzW2Fd
KTsKK2ouaW5zZXJ0QmVmb3JlKHRoaXMucGFuZWxzW2FdKX1oLmRpc2FibGVkPWQubWFwKGguZGlz
YWJsZWQsZnVuY3Rpb24oayl7cmV0dXJuIGs+PWE/KytrOmt9KTt0aGlzLl90YWJpZnkoKTtpZih0
aGlzLmFuY2hvcnMubGVuZ3RoPT0xKXtoLnNlbGVjdGVkPTA7ZS5hZGRDbGFzcygidWktdGFicy1z
ZWxlY3RlZCB1aS1zdGF0ZS1hY3RpdmUiKTtqLnJlbW92ZUNsYXNzKCJ1aS10YWJzLWhpZGUiKTt0
aGlzLmVsZW1lbnQucXVldWUoInRhYnMiLGZ1bmN0aW9uKCl7Yy5fdHJpZ2dlcigic2hvdyIsbnVs
bCxjLl91aShjLmFuY2hvcnNbMF0sYy5wYW5lbHNbMF0pKX0pO3RoaXMubG9hZCgwKX10aGlzLl90
cmlnZ2VyKCJhZGQiLG51bGwsdGhpcy5fdWkodGhpcy5hbmNob3JzW2FdLHRoaXMucGFuZWxzW2Fd
KSk7cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbihiKXtiPXRoaXMuX2dldEluZGV4KGIpO3Zh
ciBlPXRoaXMub3B0aW9ucyxhPXRoaXMubGlzLmVxKGIpLnJlbW92ZSgpLGM9dGhpcy5wYW5lbHMu
ZXEoYikucmVtb3ZlKCk7CitpZihhLmhhc0NsYXNzKCJ1aS10YWJzLXNlbGVjdGVkIikmJnRoaXMu
YW5jaG9ycy5sZW5ndGg+MSl0aGlzLnNlbGVjdChiKyhiKzE8dGhpcy5hbmNob3JzLmxlbmd0aD8x
Oi0xKSk7ZS5kaXNhYmxlZD1kLm1hcChkLmdyZXAoZS5kaXNhYmxlZCxmdW5jdGlvbihoKXtyZXR1
cm4gaCE9Yn0pLGZ1bmN0aW9uKGgpe3JldHVybiBoPj1iPy0taDpofSk7dGhpcy5fdGFiaWZ5KCk7
dGhpcy5fdHJpZ2dlcigicmVtb3ZlIixudWxsLHRoaXMuX3VpKGEuZmluZCgiYSIpWzBdLGNbMF0p
KTtyZXR1cm4gdGhpc30sZW5hYmxlOmZ1bmN0aW9uKGIpe2I9dGhpcy5fZ2V0SW5kZXgoYik7dmFy
IGU9dGhpcy5vcHRpb25zO2lmKGQuaW5BcnJheShiLGUuZGlzYWJsZWQpIT0tMSl7dGhpcy5saXMu
ZXEoYikucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik7ZS5kaXNhYmxlZD1kLmdyZXAo
ZS5kaXNhYmxlZCxmdW5jdGlvbihhKXtyZXR1cm4gYSE9Yn0pO3RoaXMuX3RyaWdnZXIoImVuYWJs
ZSIsbnVsbCwKK3RoaXMuX3VpKHRoaXMuYW5jaG9yc1tiXSx0aGlzLnBhbmVsc1tiXSkpO3JldHVy
biB0aGlzfX0sZGlzYWJsZTpmdW5jdGlvbihiKXtiPXRoaXMuX2dldEluZGV4KGIpO3ZhciBlPXRo
aXMub3B0aW9ucztpZihiIT1lLnNlbGVjdGVkKXt0aGlzLmxpcy5lcShiKS5hZGRDbGFzcygidWkt
c3RhdGUtZGlzYWJsZWQiKTtlLmRpc2FibGVkLnB1c2goYik7ZS5kaXNhYmxlZC5zb3J0KCk7dGhp
cy5fdHJpZ2dlcigiZGlzYWJsZSIsbnVsbCx0aGlzLl91aSh0aGlzLmFuY2hvcnNbYl0sdGhpcy5w
YW5lbHNbYl0pKX1yZXR1cm4gdGhpc30sc2VsZWN0OmZ1bmN0aW9uKGIpe2I9dGhpcy5fZ2V0SW5k
ZXgoYik7aWYoYj09LTEpaWYodGhpcy5vcHRpb25zLmNvbGxhcHNpYmxlJiZ0aGlzLm9wdGlvbnMu
c2VsZWN0ZWQhPS0xKWI9dGhpcy5vcHRpb25zLnNlbGVjdGVkO2Vsc2UgcmV0dXJuIHRoaXM7dGhp
cy5hbmNob3JzLmVxKGIpLnRyaWdnZXIodGhpcy5vcHRpb25zLmV2ZW50KyIudGFicyIpO3JldHVy
biB0aGlzfSwKK2xvYWQ6ZnVuY3Rpb24oYil7Yj10aGlzLl9nZXRJbmRleChiKTt2YXIgZT10aGlz
LGE9dGhpcy5vcHRpb25zLGM9dGhpcy5hbmNob3JzLmVxKGIpWzBdLGg9ZC5kYXRhKGMsImxvYWQu
dGFicyIpO3RoaXMuYWJvcnQoKTtpZighaHx8dGhpcy5lbGVtZW50LnF1ZXVlKCJ0YWJzIikubGVu
Z3RoIT09MCYmZC5kYXRhKGMsImNhY2hlLnRhYnMiKSl0aGlzLmVsZW1lbnQuZGVxdWV1ZSgidGFi
cyIpO2Vsc2V7dGhpcy5saXMuZXEoYikuYWRkQ2xhc3MoInVpLXN0YXRlLXByb2Nlc3NpbmciKTtp
ZihhLnNwaW5uZXIpe3ZhciBqPWQoInNwYW4iLGMpO2ouZGF0YSgibGFiZWwudGFicyIsai5odG1s
KCkpLmh0bWwoYS5zcGlubmVyKX10aGlzLnhocj1kLmFqYXgoZC5leHRlbmQoe30sYS5hamF4T3B0
aW9ucyx7dXJsOmgsc3VjY2VzczpmdW5jdGlvbihrLG4pe2UuZWxlbWVudC5maW5kKGUuX3Nhbml0
aXplU2VsZWN0b3IoYy5oYXNoKSkuaHRtbChrKTtlLl9jbGVhbnVwKCk7YS5jYWNoZSYmZC5kYXRh
KGMsCisiY2FjaGUudGFicyIsdHJ1ZSk7ZS5fdHJpZ2dlcigibG9hZCIsbnVsbCxlLl91aShlLmFu
Y2hvcnNbYl0sZS5wYW5lbHNbYl0pKTt0cnl7YS5hamF4T3B0aW9ucy5zdWNjZXNzKGssbil9Y2F0
Y2gobSl7fX0sZXJyb3I6ZnVuY3Rpb24oayxuKXtlLl9jbGVhbnVwKCk7ZS5fdHJpZ2dlcigibG9h
ZCIsbnVsbCxlLl91aShlLmFuY2hvcnNbYl0sZS5wYW5lbHNbYl0pKTt0cnl7YS5hamF4T3B0aW9u
cy5lcnJvcihrLG4sYixjKX1jYXRjaChtKXt9fX0pKTtlLmVsZW1lbnQuZGVxdWV1ZSgidGFicyIp
O3JldHVybiB0aGlzfX0sYWJvcnQ6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucXVldWUoW10pO3Ro
aXMucGFuZWxzLnN0b3AoZmFsc2UsdHJ1ZSk7dGhpcy5lbGVtZW50LnF1ZXVlKCJ0YWJzIix0aGlz
LmVsZW1lbnQucXVldWUoInRhYnMiKS5zcGxpY2UoLTIsMikpO2lmKHRoaXMueGhyKXt0aGlzLnho
ci5hYm9ydCgpO2RlbGV0ZSB0aGlzLnhocn10aGlzLl9jbGVhbnVwKCk7cmV0dXJuIHRoaXN9LAor
dXJsOmZ1bmN0aW9uKGIsZSl7dGhpcy5hbmNob3JzLmVxKGIpLnJlbW92ZURhdGEoImNhY2hlLnRh
YnMiKS5kYXRhKCJsb2FkLnRhYnMiLGUpO3JldHVybiB0aGlzfSxsZW5ndGg6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5hbmNob3JzLmxlbmd0aH19KTtkLmV4dGVuZChkLnVpLnRhYnMse3ZlcnNpb246
IjEuOC4xMCJ9KTtkLmV4dGVuZChkLnVpLnRhYnMucHJvdG90eXBlLHtyb3RhdGlvbjpudWxsLHJv
dGF0ZTpmdW5jdGlvbihiLGUpe3ZhciBhPXRoaXMsYz10aGlzLm9wdGlvbnMsaD1hLl9yb3RhdGV8
fChhLl9yb3RhdGU9ZnVuY3Rpb24oail7Y2xlYXJUaW1lb3V0KGEucm90YXRpb24pO2Eucm90YXRp
b249c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBrPWMuc2VsZWN0ZWQ7YS5zZWxlY3QoKytrPGEu
YW5jaG9ycy5sZW5ndGg/azowKX0sYik7aiYmai5zdG9wUHJvcGFnYXRpb24oKX0pO2U9YS5fdW5y
b3RhdGV8fChhLl91bnJvdGF0ZT0hZT9mdW5jdGlvbihqKXtqLmNsaWVudFgmJgorYS5yb3RhdGUo
bnVsbCl9OmZ1bmN0aW9uKCl7dD1jLnNlbGVjdGVkO2goKX0pO2lmKGIpe3RoaXMuZWxlbWVudC5i
aW5kKCJ0YWJzc2hvdyIsaCk7dGhpcy5hbmNob3JzLmJpbmQoYy5ldmVudCsiLnRhYnMiLGUpO2go
KX1lbHNle2NsZWFyVGltZW91dChhLnJvdGF0aW9uKTt0aGlzLmVsZW1lbnQudW5iaW5kKCJ0YWJz
c2hvdyIsaCk7dGhpcy5hbmNob3JzLnVuYmluZChjLmV2ZW50KyIudGFicyIsZSk7ZGVsZXRlIHRo
aXMuX3JvdGF0ZTtkZWxldGUgdGhpcy5fdW5yb3RhdGV9cmV0dXJuIHRoaXN9fSl9KShqUXVlcnkp
OworOy8qCisgKiBqUXVlcnkgVUkgRGF0ZXBpY2tlciAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQg
MjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxp
Y2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6
Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0Rh
dGVwaWNrZXIKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LnVpLmNvcmUuanMKKyAqLworKGZ1
bmN0aW9uKGQsRyl7ZnVuY3Rpb24gSygpe3RoaXMuZGVidWc9ZmFsc2U7dGhpcy5fY3VySW5zdD1u
dWxsO3RoaXMuX2tleUV2ZW50PWZhbHNlO3RoaXMuX2Rpc2FibGVkSW5wdXRzPVtdO3RoaXMuX2lu
RGlhbG9nPXRoaXMuX2RhdGVwaWNrZXJTaG93aW5nPWZhbHNlO3RoaXMuX21haW5EaXZJZD0idWkt
ZGF0ZXBpY2tlci1kaXYiO3RoaXMuX2lubGluZUNsYXNzPSJ1aS1kYXRlcGlja2VyLWlubGluZSI7
dGhpcy5fYXBwZW5kQ2xhc3M9InVpLWRhdGVwaWNrZXItYXBwZW5kIjt0aGlzLl90cmlnZ2VyQ2xh
c3M9InVpLWRhdGVwaWNrZXItdHJpZ2dlciI7dGhpcy5fZGlhbG9nQ2xhc3M9InVpLWRhdGVwaWNr
ZXItZGlhbG9nIjt0aGlzLl9kaXNhYmxlQ2xhc3M9InVpLWRhdGVwaWNrZXItZGlzYWJsZWQiO3Ro
aXMuX3Vuc2VsZWN0YWJsZUNsYXNzPSJ1aS1kYXRlcGlja2VyLXVuc2VsZWN0YWJsZSI7dGhpcy5f
Y3VycmVudENsYXNzPSJ1aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5Ijt0aGlzLl9kYXlPdmVyQ2xh
c3M9CisidWktZGF0ZXBpY2tlci1kYXlzLWNlbGwtb3ZlciI7dGhpcy5yZWdpb25hbD1bXTt0aGlz
LnJlZ2lvbmFsWyIiXT17Y2xvc2VUZXh0OiJEb25lIixwcmV2VGV4dDoiUHJldiIsbmV4dFRleHQ6
Ik5leHQiLGN1cnJlbnRUZXh0OiJUb2RheSIsbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFy
eSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJl
ciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFu
IiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0Iiwi
Tm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVz
ZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4i
LCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwK
KyJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSx3ZWVrSGVhZGVyOiJXayIsZGF0ZUZvcm1h
dDoibW0vZGQveXkiLGZpcnN0RGF5OjAsaXNSVEw6ZmFsc2Usc2hvd01vbnRoQWZ0ZXJZZWFyOmZh
bHNlLHllYXJTdWZmaXg6IiJ9O3RoaXMuX2RlZmF1bHRzPXtzaG93T246ImZvY3VzIixzaG93QW5p
bToiZmFkZUluIixzaG93T3B0aW9uczp7fSxkZWZhdWx0RGF0ZTpudWxsLGFwcGVuZFRleHQ6IiIs
YnV0dG9uVGV4dDoiLi4uIixidXR0b25JbWFnZToiIixidXR0b25JbWFnZU9ubHk6ZmFsc2UsaGlk
ZUlmTm9QcmV2TmV4dDpmYWxzZSxuYXZpZ2F0aW9uQXNEYXRlRm9ybWF0OmZhbHNlLGdvdG9DdXJy
ZW50OmZhbHNlLGNoYW5nZU1vbnRoOmZhbHNlLGNoYW5nZVllYXI6ZmFsc2UseWVhclJhbmdlOiJj
LTEwOmMrMTAiLHNob3dPdGhlck1vbnRoczpmYWxzZSxzZWxlY3RPdGhlck1vbnRoczpmYWxzZSxz
aG93V2VlazpmYWxzZSxjYWxjdWxhdGVXZWVrOnRoaXMuaXNvODYwMVdlZWssc2hvcnRZZWFyQ3V0
b2ZmOiIrMTAiLAorbWluRGF0ZTpudWxsLG1heERhdGU6bnVsbCxkdXJhdGlvbjoiZmFzdCIsYmVm
b3JlU2hvd0RheTpudWxsLGJlZm9yZVNob3c6bnVsbCxvblNlbGVjdDpudWxsLG9uQ2hhbmdlTW9u
dGhZZWFyOm51bGwsb25DbG9zZTpudWxsLG51bWJlck9mTW9udGhzOjEsc2hvd0N1cnJlbnRBdFBv
czowLHN0ZXBNb250aHM6MSxzdGVwQmlnTW9udGhzOjEyLGFsdEZpZWxkOiIiLGFsdEZvcm1hdDoi
Iixjb25zdHJhaW5JbnB1dDp0cnVlLHNob3dCdXR0b25QYW5lbDpmYWxzZSxhdXRvU2l6ZTpmYWxz
ZX07ZC5leHRlbmQodGhpcy5fZGVmYXVsdHMsdGhpcy5yZWdpb25hbFsiIl0pO3RoaXMuZHBEaXY9
ZCgnPGRpdiBpZD0iJyt0aGlzLl9tYWluRGl2SWQrJyIgY2xhc3M9InVpLWRhdGVwaWNrZXIgdWkt
d2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxs
Ij48L2Rpdj4nKX1mdW5jdGlvbiBFKGEsYil7ZC5leHRlbmQoYSxiKTtmb3IodmFyIGMgaW4gYilp
ZihiW2NdPT0KK251bGx8fGJbY109PUcpYVtjXT1iW2NdO3JldHVybiBhfWQuZXh0ZW5kKGQudWks
e2RhdGVwaWNrZXI6e3ZlcnNpb246IjEuOC4xMCJ9fSk7dmFyIHk9KG5ldyBEYXRlKS5nZXRUaW1l
KCk7ZC5leHRlbmQoSy5wcm90b3R5cGUse21hcmtlckNsYXNzTmFtZToiaGFzRGF0ZXBpY2tlciIs
bG9nOmZ1bmN0aW9uKCl7dGhpcy5kZWJ1ZyYmY29uc29sZS5sb2cuYXBwbHkoIiIsYXJndW1lbnRz
KX0sX3dpZGdldERhdGVwaWNrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kcERpdn0sc2V0RGVm
YXVsdHM6ZnVuY3Rpb24oYSl7RSh0aGlzLl9kZWZhdWx0cyxhfHx7fSk7cmV0dXJuIHRoaXN9LF9h
dHRhY2hEYXRlcGlja2VyOmZ1bmN0aW9uKGEsYil7dmFyIGM9bnVsbDtmb3IodmFyIGUgaW4gdGhp
cy5fZGVmYXVsdHMpe3ZhciBmPWEuZ2V0QXR0cmlidXRlKCJkYXRlOiIrZSk7aWYoZil7Yz1jfHx7
fTt0cnl7Y1tlXT1ldmFsKGYpfWNhdGNoKGgpe2NbZV09Zn19fWU9YS5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpOworZj1lPT0iZGl2Inx8ZT09InNwYW4iO2lmKCFhLmlkKXt0aGlzLnV1aWQrPTE7YS5p
ZD0iZHAiK3RoaXMudXVpZH12YXIgaT10aGlzLl9uZXdJbnN0KGQoYSksZik7aS5zZXR0aW5ncz1k
LmV4dGVuZCh7fSxifHx7fSxjfHx7fSk7aWYoZT09ImlucHV0Iil0aGlzLl9jb25uZWN0RGF0ZXBp
Y2tlcihhLGkpO2Vsc2UgZiYmdGhpcy5faW5saW5lRGF0ZXBpY2tlcihhLGkpfSxfbmV3SW5zdDpm
dW5jdGlvbihhLGIpe3JldHVybntpZDphWzBdLmlkLnJlcGxhY2UoLyhbXkEtWmEtejAtOV8tXSkv
ZywiXFxcXCQxIiksaW5wdXQ6YSxzZWxlY3RlZERheTowLHNlbGVjdGVkTW9udGg6MCxzZWxlY3Rl
ZFllYXI6MCxkcmF3TW9udGg6MCxkcmF3WWVhcjowLGlubGluZTpiLGRwRGl2OiFiP3RoaXMuZHBE
aXY6ZCgnPGRpdiBjbGFzcz0iJyt0aGlzLl9pbmxpbmVDbGFzcysnIHVpLWRhdGVwaWNrZXIgdWkt
d2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxs
Ij48L2Rpdj4nKX19LAorX2Nvbm5lY3REYXRlcGlja2VyOmZ1bmN0aW9uKGEsYil7dmFyIGM9ZChh
KTtiLmFwcGVuZD1kKFtdKTtiLnRyaWdnZXI9ZChbXSk7aWYoIWMuaGFzQ2xhc3ModGhpcy5tYXJr
ZXJDbGFzc05hbWUpKXt0aGlzLl9hdHRhY2htZW50cyhjLGIpO2MuYWRkQ2xhc3ModGhpcy5tYXJr
ZXJDbGFzc05hbWUpLmtleWRvd24odGhpcy5fZG9LZXlEb3duKS5rZXlwcmVzcyh0aGlzLl9kb0tl
eVByZXNzKS5rZXl1cCh0aGlzLl9kb0tleVVwKS5iaW5kKCJzZXREYXRhLmRhdGVwaWNrZXIiLGZ1
bmN0aW9uKGUsZixoKXtiLnNldHRpbmdzW2ZdPWh9KS5iaW5kKCJnZXREYXRhLmRhdGVwaWNrZXIi
LGZ1bmN0aW9uKGUsZil7cmV0dXJuIHRoaXMuX2dldChiLGYpfSk7dGhpcy5fYXV0b1NpemUoYik7
ZC5kYXRhKGEsImRhdGVwaWNrZXIiLGIpfX0sX2F0dGFjaG1lbnRzOmZ1bmN0aW9uKGEsYil7dmFy
IGM9dGhpcy5fZ2V0KGIsImFwcGVuZFRleHQiKSxlPXRoaXMuX2dldChiLCJpc1JUTCIpO2IuYXBw
ZW5kJiYKK2IuYXBwZW5kLnJlbW92ZSgpO2lmKGMpe2IuYXBwZW5kPWQoJzxzcGFuIGNsYXNzPSIn
K3RoaXMuX2FwcGVuZENsYXNzKyciPicrYysiPC9zcGFuPiIpO2FbZT8iYmVmb3JlIjoiYWZ0ZXIi
XShiLmFwcGVuZCl9YS51bmJpbmQoImZvY3VzIix0aGlzLl9zaG93RGF0ZXBpY2tlcik7Yi50cmln
Z2VyJiZiLnRyaWdnZXIucmVtb3ZlKCk7Yz10aGlzLl9nZXQoYiwic2hvd09uIik7aWYoYz09ImZv
Y3VzInx8Yz09ImJvdGgiKWEuZm9jdXModGhpcy5fc2hvd0RhdGVwaWNrZXIpO2lmKGM9PSJidXR0
b24ifHxjPT0iYm90aCIpe2M9dGhpcy5fZ2V0KGIsImJ1dHRvblRleHQiKTt2YXIgZj10aGlzLl9n
ZXQoYiwiYnV0dG9uSW1hZ2UiKTtiLnRyaWdnZXI9ZCh0aGlzLl9nZXQoYiwiYnV0dG9uSW1hZ2VP
bmx5Iik/ZCgiPGltZy8+IikuYWRkQ2xhc3ModGhpcy5fdHJpZ2dlckNsYXNzKS5hdHRyKHtzcmM6
ZixhbHQ6Yyx0aXRsZTpjfSk6ZCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iPjwvYnV0dG9uPicpLmFk
ZENsYXNzKHRoaXMuX3RyaWdnZXJDbGFzcykuaHRtbChmPT0KKyIiP2M6ZCgiPGltZy8+IikuYXR0
cih7c3JjOmYsYWx0OmMsdGl0bGU6Y30pKSk7YVtlPyJiZWZvcmUiOiJhZnRlciJdKGIudHJpZ2dl
cik7Yi50cmlnZ2VyLmNsaWNrKGZ1bmN0aW9uKCl7ZC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hv
d2luZyYmZC5kYXRlcGlja2VyLl9sYXN0SW5wdXQ9PWFbMF0/ZC5kYXRlcGlja2VyLl9oaWRlRGF0
ZXBpY2tlcigpOmQuZGF0ZXBpY2tlci5fc2hvd0RhdGVwaWNrZXIoYVswXSk7cmV0dXJuIGZhbHNl
fSl9fSxfYXV0b1NpemU6ZnVuY3Rpb24oYSl7aWYodGhpcy5fZ2V0KGEsImF1dG9TaXplIikmJiFh
LmlubGluZSl7dmFyIGI9bmV3IERhdGUoMjAwOSwxMSwyMCksYz10aGlzLl9nZXQoYSwiZGF0ZUZv
cm1hdCIpO2lmKGMubWF0Y2goL1tETV0vKSl7dmFyIGU9ZnVuY3Rpb24oZil7Zm9yKHZhciBoPTAs
aT0wLGc9MDtnPGYubGVuZ3RoO2crKylpZihmW2ddLmxlbmd0aD5oKXtoPWZbZ10ubGVuZ3RoO2k9
Z31yZXR1cm4gaX07Yi5zZXRNb250aChlKHRoaXMuX2dldChhLAorYy5tYXRjaCgvTU0vKT8ibW9u
dGhOYW1lcyI6Im1vbnRoTmFtZXNTaG9ydCIpKSk7Yi5zZXREYXRlKGUodGhpcy5fZ2V0KGEsYy5t
YXRjaCgvREQvKT8iZGF5TmFtZXMiOiJkYXlOYW1lc1Nob3J0IikpKzIwLWIuZ2V0RGF5KCkpfWEu
aW5wdXQuYXR0cigic2l6ZSIsdGhpcy5fZm9ybWF0RGF0ZShhLGIpLmxlbmd0aCl9fSxfaW5saW5l
RGF0ZXBpY2tlcjpmdW5jdGlvbihhLGIpe3ZhciBjPWQoYSk7aWYoIWMuaGFzQ2xhc3ModGhpcy5t
YXJrZXJDbGFzc05hbWUpKXtjLmFkZENsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKS5hcHBlbmQo
Yi5kcERpdikuYmluZCgic2V0RGF0YS5kYXRlcGlja2VyIixmdW5jdGlvbihlLGYsaCl7Yi5zZXR0
aW5nc1tmXT1ofSkuYmluZCgiZ2V0RGF0YS5kYXRlcGlja2VyIixmdW5jdGlvbihlLGYpe3JldHVy
biB0aGlzLl9nZXQoYixmKX0pO2QuZGF0YShhLCJkYXRlcGlja2VyIixiKTt0aGlzLl9zZXREYXRl
KGIsdGhpcy5fZ2V0RGVmYXVsdERhdGUoYiksCit0cnVlKTt0aGlzLl91cGRhdGVEYXRlcGlja2Vy
KGIpO3RoaXMuX3VwZGF0ZUFsdGVybmF0ZShiKTtiLmRwRGl2LnNob3coKX19LF9kaWFsb2dEYXRl
cGlja2VyOmZ1bmN0aW9uKGEsYixjLGUsZil7YT10aGlzLl9kaWFsb2dJbnN0O2lmKCFhKXt0aGlz
LnV1aWQrPTE7dGhpcy5fZGlhbG9nSW5wdXQ9ZCgnPGlucHV0IHR5cGU9InRleHQiIGlkPSInKygi
ZHAiK3RoaXMudXVpZCkrJyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMTAwcHg7
IHdpZHRoOiAwcHg7IHotaW5kZXg6IC0xMDsiLz4nKTt0aGlzLl9kaWFsb2dJbnB1dC5rZXlkb3du
KHRoaXMuX2RvS2V5RG93bik7ZCgiYm9keSIpLmFwcGVuZCh0aGlzLl9kaWFsb2dJbnB1dCk7YT10
aGlzLl9kaWFsb2dJbnN0PXRoaXMuX25ld0luc3QodGhpcy5fZGlhbG9nSW5wdXQsZmFsc2UpO2Eu
c2V0dGluZ3M9e307ZC5kYXRhKHRoaXMuX2RpYWxvZ0lucHV0WzBdLCJkYXRlcGlja2VyIixhKX1F
KGEuc2V0dGluZ3MsZXx8e30pOworYj1iJiZiLmNvbnN0cnVjdG9yPT1EYXRlP3RoaXMuX2Zvcm1h
dERhdGUoYSxiKTpiO3RoaXMuX2RpYWxvZ0lucHV0LnZhbChiKTt0aGlzLl9wb3M9Zj9mLmxlbmd0
aD9mOltmLnBhZ2VYLGYucGFnZVldOm51bGw7aWYoIXRoaXMuX3Bvcyl0aGlzLl9wb3M9W2RvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aC8yLTEwMCsoZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCksZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LmNsaWVudEhlaWdodC8yLTE1MCsoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApXTt0aGlzLl9kaWFsb2dJbnB1dC5j
c3MoImxlZnQiLHRoaXMuX3Bvc1swXSsyMCsicHgiKS5jc3MoInRvcCIsdGhpcy5fcG9zWzFdKyJw
eCIpO2Euc2V0dGluZ3Mub25TZWxlY3Q9Yzt0aGlzLl9pbkRpYWxvZz10cnVlO3RoaXMuZHBEaXYu
YWRkQ2xhc3ModGhpcy5fZGlhbG9nQ2xhc3MpOwordGhpcy5fc2hvd0RhdGVwaWNrZXIodGhpcy5f
ZGlhbG9nSW5wdXRbMF0pO2QuYmxvY2tVSSYmZC5ibG9ja1VJKHRoaXMuZHBEaXYpO2QuZGF0YSh0
aGlzLl9kaWFsb2dJbnB1dFswXSwiZGF0ZXBpY2tlciIsYSk7cmV0dXJuIHRoaXN9LF9kZXN0cm95
RGF0ZXBpY2tlcjpmdW5jdGlvbihhKXt2YXIgYj1kKGEpLGM9ZC5kYXRhKGEsImRhdGVwaWNrZXIi
KTtpZihiLmhhc0NsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKSl7dmFyIGU9YS5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpO2QucmVtb3ZlRGF0YShhLCJkYXRlcGlja2VyIik7aWYoZT09ImlucHV0Iil7
Yy5hcHBlbmQucmVtb3ZlKCk7Yy50cmlnZ2VyLnJlbW92ZSgpO2IucmVtb3ZlQ2xhc3ModGhpcy5t
YXJrZXJDbGFzc05hbWUpLnVuYmluZCgiZm9jdXMiLHRoaXMuX3Nob3dEYXRlcGlja2VyKS51bmJp
bmQoImtleWRvd24iLHRoaXMuX2RvS2V5RG93bikudW5iaW5kKCJrZXlwcmVzcyIsdGhpcy5fZG9L
ZXlQcmVzcykudW5iaW5kKCJrZXl1cCIsCit0aGlzLl9kb0tleVVwKX1lbHNlIGlmKGU9PSJkaXYi
fHxlPT0ic3BhbiIpYi5yZW1vdmVDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkuZW1wdHkoKX19
LF9lbmFibGVEYXRlcGlja2VyOmZ1bmN0aW9uKGEpe3ZhciBiPWQoYSksYz1kLmRhdGEoYSwiZGF0
ZXBpY2tlciIpO2lmKGIuaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpKXt2YXIgZT1hLm5v
ZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoZT09ImlucHV0Iil7YS5kaXNhYmxlZD1mYWxzZTtjLnRy
aWdnZXIuZmlsdGVyKCJidXR0b24iKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZD1mYWxz
ZX0pLmVuZCgpLmZpbHRlcigiaW1nIikuY3NzKHtvcGFjaXR5OiIxLjAiLGN1cnNvcjoiIn0pfWVs
c2UgaWYoZT09ImRpdiJ8fGU9PSJzcGFuIiliLmNoaWxkcmVuKCIuIit0aGlzLl9pbmxpbmVDbGFz
cykuY2hpbGRyZW4oKS5yZW1vdmVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKTt0aGlzLl9kaXNh
YmxlZElucHV0cz1kLm1hcCh0aGlzLl9kaXNhYmxlZElucHV0cywKK2Z1bmN0aW9uKGYpe3JldHVy
biBmPT1hP251bGw6Zn0pfX0sX2Rpc2FibGVEYXRlcGlja2VyOmZ1bmN0aW9uKGEpe3ZhciBiPWQo
YSksYz1kLmRhdGEoYSwiZGF0ZXBpY2tlciIpO2lmKGIuaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFz
c05hbWUpKXt2YXIgZT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoZT09ImlucHV0Iil7YS5k
aXNhYmxlZD10cnVlO2MudHJpZ2dlci5maWx0ZXIoImJ1dHRvbiIpLmVhY2goZnVuY3Rpb24oKXt0
aGlzLmRpc2FibGVkPXRydWV9KS5lbmQoKS5maWx0ZXIoImltZyIpLmNzcyh7b3BhY2l0eToiMC41
IixjdXJzb3I6ImRlZmF1bHQifSl9ZWxzZSBpZihlPT0iZGl2Inx8ZT09InNwYW4iKWIuY2hpbGRy
ZW4oIi4iK3RoaXMuX2lubGluZUNsYXNzKS5jaGlsZHJlbigpLmFkZENsYXNzKCJ1aS1zdGF0ZS1k
aXNhYmxlZCIpO3RoaXMuX2Rpc2FibGVkSW5wdXRzPWQubWFwKHRoaXMuX2Rpc2FibGVkSW5wdXRz
LGZ1bmN0aW9uKGYpe3JldHVybiBmPT1hP251bGw6CitmfSk7dGhpcy5fZGlzYWJsZWRJbnB1dHNb
dGhpcy5fZGlzYWJsZWRJbnB1dHMubGVuZ3RoXT1hfX0sX2lzRGlzYWJsZWREYXRlcGlja2VyOmZ1
bmN0aW9uKGEpe2lmKCFhKXJldHVybiBmYWxzZTtmb3IodmFyIGI9MDtiPHRoaXMuX2Rpc2FibGVk
SW5wdXRzLmxlbmd0aDtiKyspaWYodGhpcy5fZGlzYWJsZWRJbnB1dHNbYl09PWEpcmV0dXJuIHRy
dWU7cmV0dXJuIGZhbHNlfSxfZ2V0SW5zdDpmdW5jdGlvbihhKXt0cnl7cmV0dXJuIGQuZGF0YShh
LCJkYXRlcGlja2VyIil9Y2F0Y2goYil7dGhyb3ciTWlzc2luZyBpbnN0YW5jZSBkYXRhIGZvciB0
aGlzIGRhdGVwaWNrZXIiO319LF9vcHRpb25EYXRlcGlja2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIg
ZT10aGlzLl9nZXRJbnN0KGEpO2lmKGFyZ3VtZW50cy5sZW5ndGg9PTImJnR5cGVvZiBiPT0ic3Ry
aW5nIilyZXR1cm4gYj09ImRlZmF1bHRzIj9kLmV4dGVuZCh7fSxkLmRhdGVwaWNrZXIuX2RlZmF1
bHRzKTplP2I9PSJhbGwiP2QuZXh0ZW5kKHt9LAorZS5zZXR0aW5ncyk6dGhpcy5fZ2V0KGUsYik6
bnVsbDt2YXIgZj1ifHx7fTtpZih0eXBlb2YgYj09InN0cmluZyIpe2Y9e307ZltiXT1jfWlmKGUp
e3RoaXMuX2N1ckluc3Q9PWUmJnRoaXMuX2hpZGVEYXRlcGlja2VyKCk7dmFyIGg9dGhpcy5fZ2V0
RGF0ZURhdGVwaWNrZXIoYSx0cnVlKTtFKGUuc2V0dGluZ3MsZik7dGhpcy5fYXR0YWNobWVudHMo
ZChhKSxlKTt0aGlzLl9hdXRvU2l6ZShlKTt0aGlzLl9zZXREYXRlRGF0ZXBpY2tlcihhLGgpO3Ro
aXMuX3VwZGF0ZURhdGVwaWNrZXIoZSl9fSxfY2hhbmdlRGF0ZXBpY2tlcjpmdW5jdGlvbihhLGIs
Yyl7dGhpcy5fb3B0aW9uRGF0ZXBpY2tlcihhLGIsYyl9LF9yZWZyZXNoRGF0ZXBpY2tlcjpmdW5j
dGlvbihhKXsoYT10aGlzLl9nZXRJbnN0KGEpKSYmdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihhKX0s
X3NldERhdGVEYXRlcGlja2VyOmZ1bmN0aW9uKGEsYil7aWYoYT10aGlzLl9nZXRJbnN0KGEpKXt0
aGlzLl9zZXREYXRlKGEsYik7Cit0aGlzLl91cGRhdGVEYXRlcGlja2VyKGEpO3RoaXMuX3VwZGF0
ZUFsdGVybmF0ZShhKX19LF9nZXREYXRlRGF0ZXBpY2tlcjpmdW5jdGlvbihhLGIpeyhhPXRoaXMu
X2dldEluc3QoYSkpJiYhYS5pbmxpbmUmJnRoaXMuX3NldERhdGVGcm9tRmllbGQoYSxiKTtyZXR1
cm4gYT90aGlzLl9nZXREYXRlKGEpOm51bGx9LF9kb0tleURvd246ZnVuY3Rpb24oYSl7dmFyIGI9
ZC5kYXRlcGlja2VyLl9nZXRJbnN0KGEudGFyZ2V0KSxjPXRydWUsZT1iLmRwRGl2LmlzKCIudWkt
ZGF0ZXBpY2tlci1ydGwiKTtiLl9rZXlFdmVudD10cnVlO2lmKGQuZGF0ZXBpY2tlci5fZGF0ZXBp
Y2tlclNob3dpbmcpc3dpdGNoKGEua2V5Q29kZSl7Y2FzZSA5OmQuZGF0ZXBpY2tlci5faGlkZURh
dGVwaWNrZXIoKTtjPWZhbHNlO2JyZWFrO2Nhc2UgMTM6Yz1kKCJ0ZC4iK2QuZGF0ZXBpY2tlci5f
ZGF5T3ZlckNsYXNzKyI6bm90KC4iK2QuZGF0ZXBpY2tlci5fY3VycmVudENsYXNzKyIpIixiLmRw
RGl2KTtjWzBdPworZC5kYXRlcGlja2VyLl9zZWxlY3REYXkoYS50YXJnZXQsYi5zZWxlY3RlZE1v
bnRoLGIuc2VsZWN0ZWRZZWFyLGNbMF0pOmQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTty
ZXR1cm4gZmFsc2U7Y2FzZSAyNzpkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7YnJlYWs7
Y2FzZSAzMzpkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoYS50YXJnZXQsYS5jdHJsS2V5Py1kLmRh
dGVwaWNrZXIuX2dldChiLCJzdGVwQmlnTW9udGhzIik6LWQuZGF0ZXBpY2tlci5fZ2V0KGIsInN0
ZXBNb250aHMiKSwiTSIpO2JyZWFrO2Nhc2UgMzQ6ZC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGEu
dGFyZ2V0LGEuY3RybEtleT8rZC5kYXRlcGlja2VyLl9nZXQoYiwic3RlcEJpZ01vbnRocyIpOitk
LmRhdGVwaWNrZXIuX2dldChiLCJzdGVwTW9udGhzIiksIk0iKTticmVhaztjYXNlIDM1OmlmKGEu
Y3RybEtleXx8YS5tZXRhS2V5KWQuZGF0ZXBpY2tlci5fY2xlYXJEYXRlKGEudGFyZ2V0KTtjPWEu
Y3RybEtleXx8CithLm1ldGFLZXk7YnJlYWs7Y2FzZSAzNjppZihhLmN0cmxLZXl8fGEubWV0YUtl
eSlkLmRhdGVwaWNrZXIuX2dvdG9Ub2RheShhLnRhcmdldCk7Yz1hLmN0cmxLZXl8fGEubWV0YUtl
eTticmVhaztjYXNlIDM3OmlmKGEuY3RybEtleXx8YS5tZXRhS2V5KWQuZGF0ZXBpY2tlci5fYWRq
dXN0RGF0ZShhLnRhcmdldCxlPysxOi0xLCJEIik7Yz1hLmN0cmxLZXl8fGEubWV0YUtleTtpZihh
Lm9yaWdpbmFsRXZlbnQuYWx0S2V5KWQuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZShhLnRhcmdldCxh
LmN0cmxLZXk/LWQuZGF0ZXBpY2tlci5fZ2V0KGIsInN0ZXBCaWdNb250aHMiKTotZC5kYXRlcGlj
a2VyLl9nZXQoYiwic3RlcE1vbnRocyIpLCJNIik7YnJlYWs7Y2FzZSAzODppZihhLmN0cmxLZXl8
fGEubWV0YUtleSlkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoYS50YXJnZXQsLTcsIkQiKTtjPWEu
Y3RybEtleXx8YS5tZXRhS2V5O2JyZWFrO2Nhc2UgMzk6aWYoYS5jdHJsS2V5fHxhLm1ldGFLZXkp
ZC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGEudGFyZ2V0LAorZT8tMTorMSwiRCIpO2M9YS5jdHJs
S2V5fHxhLm1ldGFLZXk7aWYoYS5vcmlnaW5hbEV2ZW50LmFsdEtleSlkLmRhdGVwaWNrZXIuX2Fk
anVzdERhdGUoYS50YXJnZXQsYS5jdHJsS2V5PytkLmRhdGVwaWNrZXIuX2dldChiLCJzdGVwQmln
TW9udGhzIik6K2QuZGF0ZXBpY2tlci5fZ2V0KGIsInN0ZXBNb250aHMiKSwiTSIpO2JyZWFrO2Nh
c2UgNDA6aWYoYS5jdHJsS2V5fHxhLm1ldGFLZXkpZC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGEu
dGFyZ2V0LCs3LCJEIik7Yz1hLmN0cmxLZXl8fGEubWV0YUtleTticmVhaztkZWZhdWx0OmM9ZmFs
c2V9ZWxzZSBpZihhLmtleUNvZGU9PTM2JiZhLmN0cmxLZXkpZC5kYXRlcGlja2VyLl9zaG93RGF0
ZXBpY2tlcih0aGlzKTtlbHNlIGM9ZmFsc2U7aWYoYyl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3Rv
cFByb3BhZ2F0aW9uKCl9fSxfZG9LZXlQcmVzczpmdW5jdGlvbihhKXt2YXIgYj1kLmRhdGVwaWNr
ZXIuX2dldEluc3QoYS50YXJnZXQpO2lmKGQuZGF0ZXBpY2tlci5fZ2V0KGIsCisiY29uc3RyYWlu
SW5wdXQiKSl7Yj1kLmRhdGVwaWNrZXIuX3Bvc3NpYmxlQ2hhcnMoZC5kYXRlcGlja2VyLl9nZXQo
YiwiZGF0ZUZvcm1hdCIpKTt2YXIgYz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEuY2hhckNvZGU9PUc/
YS5rZXlDb2RlOmEuY2hhckNvZGUpO3JldHVybiBhLmN0cmxLZXl8fGEubWV0YUtleXx8YzwiICJ8
fCFifHxiLmluZGV4T2YoYyk+LTF9fSxfZG9LZXlVcDpmdW5jdGlvbihhKXthPWQuZGF0ZXBpY2tl
ci5fZ2V0SW5zdChhLnRhcmdldCk7aWYoYS5pbnB1dC52YWwoKSE9YS5sYXN0VmFsKXRyeXtpZihk
LmRhdGVwaWNrZXIucGFyc2VEYXRlKGQuZGF0ZXBpY2tlci5fZ2V0KGEsImRhdGVGb3JtYXQiKSxh
LmlucHV0P2EuaW5wdXQudmFsKCk6bnVsbCxkLmRhdGVwaWNrZXIuX2dldEZvcm1hdENvbmZpZyhh
KSkpe2QuZGF0ZXBpY2tlci5fc2V0RGF0ZUZyb21GaWVsZChhKTtkLmRhdGVwaWNrZXIuX3VwZGF0
ZUFsdGVybmF0ZShhKTtkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoYSl9fWNhdGNoKGIp
e2QuZGF0ZXBpY2tlci5sb2coYil9cmV0dXJuIHRydWV9LAorX3Nob3dEYXRlcGlja2VyOmZ1bmN0
aW9uKGEpe2E9YS50YXJnZXR8fGE7aWYoYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT0iaW5wdXQi
KWE9ZCgiaW5wdXQiLGEucGFyZW50Tm9kZSlbMF07aWYoIShkLmRhdGVwaWNrZXIuX2lzRGlzYWJs
ZWREYXRlcGlja2VyKGEpfHxkLmRhdGVwaWNrZXIuX2xhc3RJbnB1dD09YSkpe3ZhciBiPWQuZGF0
ZXBpY2tlci5fZ2V0SW5zdChhKTtkLmRhdGVwaWNrZXIuX2N1ckluc3QmJmQuZGF0ZXBpY2tlci5f
Y3VySW5zdCE9YiYmZC5kYXRlcGlja2VyLl9jdXJJbnN0LmRwRGl2LnN0b3AodHJ1ZSx0cnVlKTt2
YXIgYz1kLmRhdGVwaWNrZXIuX2dldChiLCJiZWZvcmVTaG93Iik7RShiLnNldHRpbmdzLGM/Yy5h
cHBseShhLFthLGJdKTp7fSk7Yi5sYXN0VmFsPW51bGw7ZC5kYXRlcGlja2VyLl9sYXN0SW5wdXQ9
YTtkLmRhdGVwaWNrZXIuX3NldERhdGVGcm9tRmllbGQoYik7aWYoZC5kYXRlcGlja2VyLl9pbkRp
YWxvZylhLnZhbHVlPSIiO2lmKCFkLmRhdGVwaWNrZXIuX3Bvcyl7ZC5kYXRlcGlja2VyLl9wb3M9
CitkLmRhdGVwaWNrZXIuX2ZpbmRQb3MoYSk7ZC5kYXRlcGlja2VyLl9wb3NbMV0rPWEub2Zmc2V0
SGVpZ2h0fXZhciBlPWZhbHNlO2QoYSkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXtlfD1kKHRo
aXMpLmNzcygicG9zaXRpb24iKT09ImZpeGVkIjtyZXR1cm4hZX0pO2lmKGUmJmQuYnJvd3Nlci5v
cGVyYSl7ZC5kYXRlcGlja2VyLl9wb3NbMF0tPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3Jv
bGxMZWZ0O2QuZGF0ZXBpY2tlci5fcG9zWzFdLT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Ny
b2xsVG9wfWM9e2xlZnQ6ZC5kYXRlcGlja2VyLl9wb3NbMF0sdG9wOmQuZGF0ZXBpY2tlci5fcG9z
WzFdfTtkLmRhdGVwaWNrZXIuX3Bvcz1udWxsO2IuZHBEaXYuZW1wdHkoKTtiLmRwRGl2LmNzcyh7
cG9zaXRpb246ImFic29sdXRlIixkaXNwbGF5OiJibG9jayIsdG9wOiItMTAwMHB4In0pO2QuZGF0
ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcihiKTtjPWQuZGF0ZXBpY2tlci5fY2hlY2tPZmZzZXQo
YiwKK2MsZSk7Yi5kcERpdi5jc3Moe3Bvc2l0aW9uOmQuZGF0ZXBpY2tlci5faW5EaWFsb2cmJmQu
YmxvY2tVST8ic3RhdGljIjplPyJmaXhlZCI6ImFic29sdXRlIixkaXNwbGF5OiJub25lIixsZWZ0
OmMubGVmdCsicHgiLHRvcDpjLnRvcCsicHgifSk7aWYoIWIuaW5saW5lKXtjPWQuZGF0ZXBpY2tl
ci5fZ2V0KGIsInNob3dBbmltIik7dmFyIGY9ZC5kYXRlcGlja2VyLl9nZXQoYiwiZHVyYXRpb24i
KSxoPWZ1bmN0aW9uKCl7ZC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZz10cnVlO3ZhciBp
PWIuZHBEaXYuZmluZCgiaWZyYW1lLnVpLWRhdGVwaWNrZXItY292ZXIiKTtpZihpLmxlbmd0aCl7
dmFyIGc9ZC5kYXRlcGlja2VyLl9nZXRCb3JkZXJzKGIuZHBEaXYpO2kuY3NzKHtsZWZ0Oi1nWzBd
LHRvcDotZ1sxXSx3aWR0aDpiLmRwRGl2Lm91dGVyV2lkdGgoKSxoZWlnaHQ6Yi5kcERpdi5vdXRl
ckhlaWdodCgpfSl9fTtiLmRwRGl2LnpJbmRleChkKGEpLnpJbmRleCgpKzEpO2QuZWZmZWN0cyYm
CitkLmVmZmVjdHNbY10/Yi5kcERpdi5zaG93KGMsZC5kYXRlcGlja2VyLl9nZXQoYiwic2hvd09w
dGlvbnMiKSxmLGgpOmIuZHBEaXZbY3x8InNob3ciXShjP2Y6bnVsbCxoKTtpZighY3x8IWYpaCgp
O2IuaW5wdXQuaXMoIjp2aXNpYmxlIikmJiFiLmlucHV0LmlzKCI6ZGlzYWJsZWQiKSYmYi5pbnB1
dC5mb2N1cygpO2QuZGF0ZXBpY2tlci5fY3VySW5zdD1ifX19LF91cGRhdGVEYXRlcGlja2VyOmZ1
bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1kLmRhdGVwaWNrZXIuX2dldEJvcmRlcnMoYS5kcERpdik7
YS5kcERpdi5lbXB0eSgpLmFwcGVuZCh0aGlzLl9nZW5lcmF0ZUhUTUwoYSkpO3ZhciBlPWEuZHBE
aXYuZmluZCgiaWZyYW1lLnVpLWRhdGVwaWNrZXItY292ZXIiKTtlLmxlbmd0aCYmZS5jc3Moe2xl
ZnQ6LWNbMF0sdG9wOi1jWzFdLHdpZHRoOmEuZHBEaXYub3V0ZXJXaWR0aCgpLGhlaWdodDphLmRw
RGl2Lm91dGVySGVpZ2h0KCl9KTthLmRwRGl2LmZpbmQoImJ1dHRvbiwgLnVpLWRhdGVwaWNrZXIt
cHJldiwgLnVpLWRhdGVwaWNrZXItbmV4dCwgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgYSIp
LmJpbmQoIm1vdXNlb3V0IiwKK2Z1bmN0aW9uKCl7ZCh0aGlzKS5yZW1vdmVDbGFzcygidWktc3Rh
dGUtaG92ZXIiKTt0aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRlcGlja2VyLXByZXYiKSE9
LTEmJmQodGhpcykucmVtb3ZlQ2xhc3MoInVpLWRhdGVwaWNrZXItcHJldi1ob3ZlciIpO3RoaXMu
Y2xhc3NOYW1lLmluZGV4T2YoInVpLWRhdGVwaWNrZXItbmV4dCIpIT0tMSYmZCh0aGlzKS5yZW1v
dmVDbGFzcygidWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIil9KS5iaW5kKCJtb3VzZW92ZXIiLGZ1
bmN0aW9uKCl7aWYoIWIuX2lzRGlzYWJsZWREYXRlcGlja2VyKGEuaW5saW5lP2EuZHBEaXYucGFy
ZW50KClbMF06YS5pbnB1dFswXSkpe2QodGhpcykucGFyZW50cygiLnVpLWRhdGVwaWNrZXItY2Fs
ZW5kYXIiKS5maW5kKCJhIikucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWhvdmVyIik7ZCh0aGlzKS5h
ZGRDbGFzcygidWktc3RhdGUtaG92ZXIiKTt0aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRl
cGlja2VyLXByZXYiKSE9CistMSYmZCh0aGlzKS5hZGRDbGFzcygidWktZGF0ZXBpY2tlci1wcmV2
LWhvdmVyIik7dGhpcy5jbGFzc05hbWUuaW5kZXhPZigidWktZGF0ZXBpY2tlci1uZXh0IikhPS0x
JiZkKHRoaXMpLmFkZENsYXNzKCJ1aS1kYXRlcGlja2VyLW5leHQtaG92ZXIiKX19KS5lbmQoKS5m
aW5kKCIuIit0aGlzLl9kYXlPdmVyQ2xhc3MrIiBhIikudHJpZ2dlcigibW91c2VvdmVyIikuZW5k
KCk7Yz10aGlzLl9nZXROdW1iZXJPZk1vbnRocyhhKTtlPWNbMV07ZT4xP2EuZHBEaXYuYWRkQ2xh
c3MoInVpLWRhdGVwaWNrZXItbXVsdGktIitlKS5jc3MoIndpZHRoIiwxNyplKyJlbSIpOmEuZHBE
aXYucmVtb3ZlQ2xhc3MoInVpLWRhdGVwaWNrZXItbXVsdGktMiB1aS1kYXRlcGlja2VyLW11bHRp
LTMgdWktZGF0ZXBpY2tlci1tdWx0aS00Iikud2lkdGgoIiIpO2EuZHBEaXZbKGNbMF0hPTF8fGNb
MV0hPTE/ImFkZCI6InJlbW92ZSIpKyJDbGFzcyJdKCJ1aS1kYXRlcGlja2VyLW11bHRpIik7YS5k
cERpdlsodGhpcy5fZ2V0KGEsCisiaXNSVEwiKT8iYWRkIjoicmVtb3ZlIikrIkNsYXNzIl0oInVp
LWRhdGVwaWNrZXItcnRsIik7YT09ZC5kYXRlcGlja2VyLl9jdXJJbnN0JiZkLmRhdGVwaWNrZXIu
X2RhdGVwaWNrZXJTaG93aW5nJiZhLmlucHV0JiZhLmlucHV0LmlzKCI6dmlzaWJsZSIpJiYhYS5p
bnB1dC5pcygiOmRpc2FibGVkIikmJmEuaW5wdXRbMF0hPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQm
JmEuaW5wdXQuZm9jdXMoKTtpZihhLnllYXJzaHRtbCl7dmFyIGY9YS55ZWFyc2h0bWw7c2V0VGlt
ZW91dChmdW5jdGlvbigpe2Y9PT1hLnllYXJzaHRtbCYmYS5kcERpdi5maW5kKCJzZWxlY3QudWkt
ZGF0ZXBpY2tlci15ZWFyOmZpcnN0IikucmVwbGFjZVdpdGgoYS55ZWFyc2h0bWwpO2Y9YS55ZWFy
c2h0bWw9bnVsbH0sMCl9fSxfZ2V0Qm9yZGVyczpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihj
KXtyZXR1cm57dGhpbjoxLG1lZGl1bToyLHRoaWNrOjN9W2NdfHxjfTtyZXR1cm5bcGFyc2VGbG9h
dChiKGEuY3NzKCJib3JkZXItbGVmdC13aWR0aCIpKSksCitwYXJzZUZsb2F0KGIoYS5jc3MoImJv
cmRlci10b3Atd2lkdGgiKSkpXX0sX2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1h
LmRwRGl2Lm91dGVyV2lkdGgoKSxmPWEuZHBEaXYub3V0ZXJIZWlnaHQoKSxoPWEuaW5wdXQ/YS5p
bnB1dC5vdXRlcldpZHRoKCk6MCxpPWEuaW5wdXQ/YS5pbnB1dC5vdXRlckhlaWdodCgpOjAsZz1k
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgrZChkb2N1bWVudCkuc2Nyb2xsTGVm
dCgpLGo9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCtkKGRvY3VtZW50KS5z
Y3JvbGxUb3AoKTtiLmxlZnQtPXRoaXMuX2dldChhLCJpc1JUTCIpP2UtaDowO2IubGVmdC09YyYm
Yi5sZWZ0PT1hLmlucHV0Lm9mZnNldCgpLmxlZnQ/ZChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpOjA7
Yi50b3AtPWMmJmIudG9wPT1hLmlucHV0Lm9mZnNldCgpLnRvcCtpP2QoZG9jdW1lbnQpLnNjcm9s
bFRvcCgpOjA7Yi5sZWZ0LT1NYXRoLm1pbihiLmxlZnQsCitiLmxlZnQrZT5nJiZnPmU/TWF0aC5h
YnMoYi5sZWZ0K2UtZyk6MCk7Yi50b3AtPU1hdGgubWluKGIudG9wLGIudG9wK2Y+aiYmaj5mP01h
dGguYWJzKGYraSk6MCk7cmV0dXJuIGJ9LF9maW5kUG9zOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10
aGlzLl9nZXQodGhpcy5fZ2V0SW5zdChhKSwiaXNSVEwiKTthJiYoYS50eXBlPT0iaGlkZGVuInx8
YS5ub2RlVHlwZSE9MXx8ZC5leHByLmZpbHRlcnMuaGlkZGVuKGEpKTspYT1hW2I/InByZXZpb3Vz
U2libGluZyI6Im5leHRTaWJsaW5nIl07YT1kKGEpLm9mZnNldCgpO3JldHVyblthLmxlZnQsYS50
b3BdfSxfaGlkZURhdGVwaWNrZXI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fY3VySW5zdDtpZigh
KCFifHxhJiZiIT1kLmRhdGEoYSwiZGF0ZXBpY2tlciIpKSlpZih0aGlzLl9kYXRlcGlja2VyU2hv
d2luZyl7YT10aGlzLl9nZXQoYiwic2hvd0FuaW0iKTt2YXIgYz10aGlzLl9nZXQoYiwiZHVyYXRp
b24iKSxlPWZ1bmN0aW9uKCl7ZC5kYXRlcGlja2VyLl90aWR5RGlhbG9nKGIpOwordGhpcy5fY3Vy
SW5zdD1udWxsfTtkLmVmZmVjdHMmJmQuZWZmZWN0c1thXT9iLmRwRGl2LmhpZGUoYSxkLmRhdGVw
aWNrZXIuX2dldChiLCJzaG93T3B0aW9ucyIpLGMsZSk6Yi5kcERpdlthPT0ic2xpZGVEb3duIj8i
c2xpZGVVcCI6YT09ImZhZGVJbiI/ImZhZGVPdXQiOiJoaWRlIl0oYT9jOm51bGwsZSk7YXx8ZSgp
O2lmKGE9dGhpcy5fZ2V0KGIsIm9uQ2xvc2UiKSlhLmFwcGx5KGIuaW5wdXQ/Yi5pbnB1dFswXTpu
dWxsLFtiLmlucHV0P2IuaW5wdXQudmFsKCk6IiIsYl0pO3RoaXMuX2RhdGVwaWNrZXJTaG93aW5n
PWZhbHNlO3RoaXMuX2xhc3RJbnB1dD1udWxsO2lmKHRoaXMuX2luRGlhbG9nKXt0aGlzLl9kaWFs
b2dJbnB1dC5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDoiMCIsdG9wOiItMTAwcHgifSk7
aWYoZC5ibG9ja1VJKXtkLnVuYmxvY2tVSSgpO2QoImJvZHkiKS5hcHBlbmQodGhpcy5kcERpdil9
fXRoaXMuX2luRGlhbG9nPWZhbHNlfX0sX3RpZHlEaWFsb2c6ZnVuY3Rpb24oYSl7YS5kcERpdi5y
ZW1vdmVDbGFzcyh0aGlzLl9kaWFsb2dDbGFzcykudW5iaW5kKCIudWktZGF0ZXBpY2tlci1jYWxl
bmRhciIpfSwKK19jaGVja0V4dGVybmFsQ2xpY2s6ZnVuY3Rpb24oYSl7aWYoZC5kYXRlcGlja2Vy
Ll9jdXJJbnN0KXthPWQoYS50YXJnZXQpO2FbMF0uaWQhPWQuZGF0ZXBpY2tlci5fbWFpbkRpdklk
JiZhLnBhcmVudHMoIiMiK2QuZGF0ZXBpY2tlci5fbWFpbkRpdklkKS5sZW5ndGg9PTAmJiFhLmhh
c0NsYXNzKGQuZGF0ZXBpY2tlci5tYXJrZXJDbGFzc05hbWUpJiYhYS5oYXNDbGFzcyhkLmRhdGVw
aWNrZXIuX3RyaWdnZXJDbGFzcykmJmQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcmJiEo
ZC5kYXRlcGlja2VyLl9pbkRpYWxvZyYmZC5ibG9ja1VJKSYmZC5kYXRlcGlja2VyLl9oaWRlRGF0
ZXBpY2tlcigpfX0sX2FkanVzdERhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9ZChhKTt2YXIgZT10aGlz
Ll9nZXRJbnN0KGFbMF0pO2lmKCF0aGlzLl9pc0Rpc2FibGVkRGF0ZXBpY2tlcihhWzBdKSl7dGhp
cy5fYWRqdXN0SW5zdERhdGUoZSxiKyhjPT0iTSI/dGhpcy5fZ2V0KGUsInNob3dDdXJyZW50QXRQ
b3MiKToKKzApLGMpO3RoaXMuX3VwZGF0ZURhdGVwaWNrZXIoZSl9fSxfZ290b1RvZGF5OmZ1bmN0
aW9uKGEpe2E9ZChhKTt2YXIgYj10aGlzLl9nZXRJbnN0KGFbMF0pO2lmKHRoaXMuX2dldChiLCJn
b3RvQ3VycmVudCIpJiZiLmN1cnJlbnREYXkpe2Iuc2VsZWN0ZWREYXk9Yi5jdXJyZW50RGF5O2Iu
ZHJhd01vbnRoPWIuc2VsZWN0ZWRNb250aD1iLmN1cnJlbnRNb250aDtiLmRyYXdZZWFyPWIuc2Vs
ZWN0ZWRZZWFyPWIuY3VycmVudFllYXJ9ZWxzZXt2YXIgYz1uZXcgRGF0ZTtiLnNlbGVjdGVkRGF5
PWMuZ2V0RGF0ZSgpO2IuZHJhd01vbnRoPWIuc2VsZWN0ZWRNb250aD1jLmdldE1vbnRoKCk7Yi5k
cmF3WWVhcj1iLnNlbGVjdGVkWWVhcj1jLmdldEZ1bGxZZWFyKCl9dGhpcy5fbm90aWZ5Q2hhbmdl
KGIpO3RoaXMuX2FkanVzdERhdGUoYSl9LF9zZWxlY3RNb250aFllYXI6ZnVuY3Rpb24oYSxiLGMp
e2E9ZChhKTt2YXIgZT10aGlzLl9nZXRJbnN0KGFbMF0pO2UuX3NlbGVjdGluZ01vbnRoWWVhcj0K
K2ZhbHNlO2VbInNlbGVjdGVkIisoYz09Ik0iPyJNb250aCI6IlllYXIiKV09ZVsiZHJhdyIrKGM9
PSJNIj8iTW9udGgiOiJZZWFyIildPXBhcnNlSW50KGIub3B0aW9uc1tiLnNlbGVjdGVkSW5kZXhd
LnZhbHVlLDEwKTt0aGlzLl9ub3RpZnlDaGFuZ2UoZSk7dGhpcy5fYWRqdXN0RGF0ZShhKX0sX2Ns
aWNrTW9udGhZZWFyOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX2dldEluc3QoZChhKVswXSk7Yi5p
bnB1dCYmYi5fc2VsZWN0aW5nTW9udGhZZWFyJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5pbnB1
dC5mb2N1cygpfSwwKTtiLl9zZWxlY3RpbmdNb250aFllYXI9IWIuX3NlbGVjdGluZ01vbnRoWWVh
cn0sX3NlbGVjdERheTpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZj1kKGEpO2lmKCEoZChlKS5oYXND
bGFzcyh0aGlzLl91bnNlbGVjdGFibGVDbGFzcyl8fHRoaXMuX2lzRGlzYWJsZWREYXRlcGlja2Vy
KGZbMF0pKSl7Zj10aGlzLl9nZXRJbnN0KGZbMF0pO2Yuc2VsZWN0ZWREYXk9Zi5jdXJyZW50RGF5
PQorZCgiYSIsZSkuaHRtbCgpO2Yuc2VsZWN0ZWRNb250aD1mLmN1cnJlbnRNb250aD1iO2Yuc2Vs
ZWN0ZWRZZWFyPWYuY3VycmVudFllYXI9Yzt0aGlzLl9zZWxlY3REYXRlKGEsdGhpcy5fZm9ybWF0
RGF0ZShmLGYuY3VycmVudERheSxmLmN1cnJlbnRNb250aCxmLmN1cnJlbnRZZWFyKSl9fSxfY2xl
YXJEYXRlOmZ1bmN0aW9uKGEpe2E9ZChhKTt0aGlzLl9nZXRJbnN0KGFbMF0pO3RoaXMuX3NlbGVj
dERhdGUoYSwiIil9LF9zZWxlY3REYXRlOmZ1bmN0aW9uKGEsYil7YT10aGlzLl9nZXRJbnN0KGQo
YSlbMF0pO2I9YiE9bnVsbD9iOnRoaXMuX2Zvcm1hdERhdGUoYSk7YS5pbnB1dCYmYS5pbnB1dC52
YWwoYik7dGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGEpO3ZhciBjPXRoaXMuX2dldChhLCJvblNlbGVj
dCIpO2lmKGMpYy5hcHBseShhLmlucHV0P2EuaW5wdXRbMF06bnVsbCxbYixhXSk7ZWxzZSBhLmlu
cHV0JiZhLmlucHV0LnRyaWdnZXIoImNoYW5nZSIpO2lmKGEuaW5saW5lKXRoaXMuX3VwZGF0ZURh
dGVwaWNrZXIoYSk7CitlbHNle3RoaXMuX2hpZGVEYXRlcGlja2VyKCk7dGhpcy5fbGFzdElucHV0
PWEuaW5wdXRbMF07dHlwZW9mIGEuaW5wdXRbMF0hPSJvYmplY3QiJiZhLmlucHV0LmZvY3VzKCk7
dGhpcy5fbGFzdElucHV0PW51bGx9fSxfdXBkYXRlQWx0ZXJuYXRlOmZ1bmN0aW9uKGEpe3ZhciBi
PXRoaXMuX2dldChhLCJhbHRGaWVsZCIpO2lmKGIpe3ZhciBjPXRoaXMuX2dldChhLCJhbHRGb3Jt
YXQiKXx8dGhpcy5fZ2V0KGEsImRhdGVGb3JtYXQiKSxlPXRoaXMuX2dldERhdGUoYSksZj10aGlz
LmZvcm1hdERhdGUoYyxlLHRoaXMuX2dldEZvcm1hdENvbmZpZyhhKSk7ZChiKS5lYWNoKGZ1bmN0
aW9uKCl7ZCh0aGlzKS52YWwoZil9KX19LG5vV2Vla2VuZHM6ZnVuY3Rpb24oYSl7YT1hLmdldERh
eSgpO3JldHVyblthPjAmJmE8NiwiIl19LGlzbzg2MDFXZWVrOmZ1bmN0aW9uKGEpe2E9bmV3IERh
dGUoYS5nZXRUaW1lKCkpO2Euc2V0RGF0ZShhLmdldERhdGUoKSs0LShhLmdldERheSgpfHw3KSk7
dmFyIGI9CithLmdldFRpbWUoKTthLnNldE1vbnRoKDApO2Euc2V0RGF0ZSgxKTtyZXR1cm4gTWF0
aC5mbG9vcihNYXRoLnJvdW5kKChiLWEpLzg2NEU1KS83KSsxfSxwYXJzZURhdGU6ZnVuY3Rpb24o
YSxiLGMpe2lmKGE9PW51bGx8fGI9PW51bGwpdGhyb3ciSW52YWxpZCBhcmd1bWVudHMiO2I9dHlw
ZW9mIGI9PSJvYmplY3QiP2IudG9TdHJpbmcoKTpiKyIiO2lmKGI9PSIiKXJldHVybiBudWxsO3Zh
ciBlPShjP2Muc2hvcnRZZWFyQ3V0b2ZmOm51bGwpfHx0aGlzLl9kZWZhdWx0cy5zaG9ydFllYXJD
dXRvZmY7ZT10eXBlb2YgZSE9InN0cmluZyI/ZToobmV3IERhdGUpLmdldEZ1bGxZZWFyKCklMTAw
K3BhcnNlSW50KGUsMTApO2Zvcih2YXIgZj0oYz9jLmRheU5hbWVzU2hvcnQ6bnVsbCl8fHRoaXMu
X2RlZmF1bHRzLmRheU5hbWVzU2hvcnQsaD0oYz9jLmRheU5hbWVzOm51bGwpfHx0aGlzLl9kZWZh
dWx0cy5kYXlOYW1lcyxpPShjP2MubW9udGhOYW1lc1Nob3J0Om51bGwpfHx0aGlzLl9kZWZhdWx0
cy5tb250aE5hbWVzU2hvcnQsCitnPShjP2MubW9udGhOYW1lczpudWxsKXx8dGhpcy5fZGVmYXVs
dHMubW9udGhOYW1lcyxqPWM9LTEsbD0tMSx1PS0xLGs9ZmFsc2Usbz1mdW5jdGlvbihwKXsocD16
KzE8YS5sZW5ndGgmJmEuY2hhckF0KHorMSk9PXApJiZ6Kys7cmV0dXJuIHB9LG09ZnVuY3Rpb24o
cCl7dmFyIHY9byhwKTtwPW5ldyBSZWdFeHAoIl5cXGR7MSwiKyhwPT0iQCI/MTQ6cD09IiEiPzIw
OnA9PSJ5IiYmdj80OnA9PSJvIj8zOjIpKyJ9Iik7cD1iLnN1YnN0cmluZyhzKS5tYXRjaChwKTtp
ZighcCl0aHJvdyJNaXNzaW5nIG51bWJlciBhdCBwb3NpdGlvbiAiK3M7cys9cFswXS5sZW5ndGg7
cmV0dXJuIHBhcnNlSW50KHBbMF0sMTApfSxuPWZ1bmN0aW9uKHAsdixIKXtwPW8ocCk/SDp2O2Zv
cih2PTA7djxwLmxlbmd0aDt2KyspaWYoYi5zdWJzdHIocyxwW3ZdLmxlbmd0aCkudG9Mb3dlckNh
c2UoKT09cFt2XS50b0xvd2VyQ2FzZSgpKXtzKz1wW3ZdLmxlbmd0aDtyZXR1cm4gdisxfXRocm93
IlVua25vd24gbmFtZSBhdCBwb3NpdGlvbiAiKworczt9LHI9ZnVuY3Rpb24oKXtpZihiLmNoYXJB
dChzKSE9YS5jaGFyQXQoeikpdGhyb3ciVW5leHBlY3RlZCBsaXRlcmFsIGF0IHBvc2l0aW9uICIr
cztzKyt9LHM9MCx6PTA7ejxhLmxlbmd0aDt6KyspaWYoaylpZihhLmNoYXJBdCh6KT09IiciJiYh
bygiJyIpKWs9ZmFsc2U7ZWxzZSByKCk7ZWxzZSBzd2l0Y2goYS5jaGFyQXQoeikpe2Nhc2UgImQi
Omw9bSgiZCIpO2JyZWFrO2Nhc2UgIkQiOm4oIkQiLGYsaCk7YnJlYWs7Y2FzZSAibyI6dT1tKCJv
Iik7YnJlYWs7Y2FzZSAibSI6aj1tKCJtIik7YnJlYWs7Y2FzZSAiTSI6aj1uKCJNIixpLGcpO2Jy
ZWFrO2Nhc2UgInkiOmM9bSgieSIpO2JyZWFrO2Nhc2UgIkAiOnZhciB3PW5ldyBEYXRlKG0oIkAi
KSk7Yz13LmdldEZ1bGxZZWFyKCk7aj13LmdldE1vbnRoKCkrMTtsPXcuZ2V0RGF0ZSgpO2JyZWFr
O2Nhc2UgIiEiOnc9bmV3IERhdGUoKG0oIiEiKS10aGlzLl90aWNrc1RvMTk3MCkvMUU0KTtjPXcu
Z2V0RnVsbFllYXIoKTtqPXcuZ2V0TW9udGgoKSsKKzE7bD13LmdldERhdGUoKTticmVhaztjYXNl
ICInIjppZihvKCInIikpcigpO2Vsc2Ugaz10cnVlO2JyZWFrO2RlZmF1bHQ6cigpfWlmKGM9PS0x
KWM9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpO2Vsc2UgaWYoYzwxMDApYys9KG5ldyBEYXRlKS5n
ZXRGdWxsWWVhcigpLShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSUxMDArKGM8PWU/MDotMTAwKTtp
Zih1Pi0xKXtqPTE7bD11O2Rve2U9dGhpcy5fZ2V0RGF5c0luTW9udGgoYyxqLTEpO2lmKGw8PWUp
YnJlYWs7aisrO2wtPWV9d2hpbGUoMSl9dz10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcg
RGF0ZShjLGotMSxsKSk7aWYody5nZXRGdWxsWWVhcigpIT1jfHx3LmdldE1vbnRoKCkrMSE9anx8
dy5nZXREYXRlKCkhPWwpdGhyb3ciSW52YWxpZCBkYXRlIjtyZXR1cm4gd30sQVRPTToieXktbW0t
ZGQiLENPT0tJRToiRCwgZGQgTSB5eSIsSVNPXzg2MDE6Inl5LW1tLWRkIixSRkNfODIyOiJELCBk
IE0geSIsUkZDXzg1MDoiREQsIGRkLU0teSIsCitSRkNfMTAzNjoiRCwgZCBNIHkiLFJGQ18xMTIz
OiJELCBkIE0geXkiLFJGQ18yODIyOiJELCBkIE0geXkiLFJTUzoiRCwgZCBNIHkiLFRJQ0tTOiIh
IixUSU1FU1RBTVA6IkAiLFczQzoieXktbW0tZGQiLF90aWNrc1RvMTk3MDooNzE4Njg1K01hdGgu
Zmxvb3IoNDkyLjUpLU1hdGguZmxvb3IoMTkuNykrTWF0aC5mbG9vcig0LjkyNSkpKjI0KjYwKjYw
KjFFNyxmb3JtYXREYXRlOmZ1bmN0aW9uKGEsYixjKXtpZighYilyZXR1cm4iIjt2YXIgZT0oYz9j
LmRheU5hbWVzU2hvcnQ6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLmRheU5hbWVzU2hvcnQsZj0oYz9j
LmRheU5hbWVzOm51bGwpfHx0aGlzLl9kZWZhdWx0cy5kYXlOYW1lcyxoPShjP2MubW9udGhOYW1l
c1Nob3J0Om51bGwpfHx0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzU2hvcnQ7Yz0oYz9jLm1vbnRo
TmFtZXM6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXM7dmFyIGk9ZnVuY3Rpb24obyl7
KG89aysxPGEubGVuZ3RoJiYKK2EuY2hhckF0KGsrMSk9PW8pJiZrKys7cmV0dXJuIG99LGc9ZnVu
Y3Rpb24obyxtLG4pe209IiIrbTtpZihpKG8pKWZvcig7bS5sZW5ndGg8bjspbT0iMCIrbTtyZXR1
cm4gbX0saj1mdW5jdGlvbihvLG0sbixyKXtyZXR1cm4gaShvKT9yW21dOm5bbV19LGw9IiIsdT1m
YWxzZTtpZihiKWZvcih2YXIgaz0wO2s8YS5sZW5ndGg7aysrKWlmKHUpaWYoYS5jaGFyQXQoayk9
PSInIiYmIWkoIiciKSl1PWZhbHNlO2Vsc2UgbCs9YS5jaGFyQXQoayk7ZWxzZSBzd2l0Y2goYS5j
aGFyQXQoaykpe2Nhc2UgImQiOmwrPWcoImQiLGIuZ2V0RGF0ZSgpLDIpO2JyZWFrO2Nhc2UgIkQi
OmwrPWooIkQiLGIuZ2V0RGF5KCksZSxmKTticmVhaztjYXNlICJvIjpsKz1nKCJvIiwoYi5nZXRU
aW1lKCktKG5ldyBEYXRlKGIuZ2V0RnVsbFllYXIoKSwwLDApKS5nZXRUaW1lKCkpLzg2NEU1LDMp
O2JyZWFrO2Nhc2UgIm0iOmwrPWcoIm0iLGIuZ2V0TW9udGgoKSsxLDIpO2JyZWFrO2Nhc2UgIk0i
OmwrPWooIk0iLAorYi5nZXRNb250aCgpLGgsYyk7YnJlYWs7Y2FzZSAieSI6bCs9aSgieSIpP2Iu
Z2V0RnVsbFllYXIoKTooYi5nZXRZZWFyKCklMTAwPDEwPyIwIjoiIikrYi5nZXRZZWFyKCklMTAw
O2JyZWFrO2Nhc2UgIkAiOmwrPWIuZ2V0VGltZSgpO2JyZWFrO2Nhc2UgIiEiOmwrPWIuZ2V0VGlt
ZSgpKjFFNCt0aGlzLl90aWNrc1RvMTk3MDticmVhaztjYXNlICInIjppZihpKCInIikpbCs9Iici
O2Vsc2UgdT10cnVlO2JyZWFrO2RlZmF1bHQ6bCs9YS5jaGFyQXQoayl9cmV0dXJuIGx9LF9wb3Nz
aWJsZUNoYXJzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iIixjPWZhbHNlLGU9ZnVuY3Rpb24oaCl7
KGg9ZisxPGEubGVuZ3RoJiZhLmNoYXJBdChmKzEpPT1oKSYmZisrO3JldHVybiBofSxmPTA7Zjxh
Lmxlbmd0aDtmKyspaWYoYylpZihhLmNoYXJBdChmKT09IiciJiYhZSgiJyIpKWM9ZmFsc2U7ZWxz
ZSBiKz1hLmNoYXJBdChmKTtlbHNlIHN3aXRjaChhLmNoYXJBdChmKSl7Y2FzZSAiZCI6Y2FzZSAi
bSI6Y2FzZSAieSI6Y2FzZSAiQCI6Yis9CisiMDEyMzQ1Njc4OSI7YnJlYWs7Y2FzZSAiRCI6Y2Fz
ZSAiTSI6cmV0dXJuIG51bGw7Y2FzZSAiJyI6aWYoZSgiJyIpKWIrPSInIjtlbHNlIGM9dHJ1ZTti
cmVhaztkZWZhdWx0OmIrPWEuY2hhckF0KGYpfXJldHVybiBifSxfZ2V0OmZ1bmN0aW9uKGEsYil7
cmV0dXJuIGEuc2V0dGluZ3NbYl0hPT1HP2Euc2V0dGluZ3NbYl06dGhpcy5fZGVmYXVsdHNbYl19
LF9zZXREYXRlRnJvbUZpZWxkOmZ1bmN0aW9uKGEsYil7aWYoYS5pbnB1dC52YWwoKSE9YS5sYXN0
VmFsKXt2YXIgYz10aGlzLl9nZXQoYSwiZGF0ZUZvcm1hdCIpLGU9YS5sYXN0VmFsPWEuaW5wdXQ/
YS5pbnB1dC52YWwoKTpudWxsLGYsaDtmPWg9dGhpcy5fZ2V0RGVmYXVsdERhdGUoYSk7dmFyIGk9
dGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGEpO3RyeXtmPXRoaXMucGFyc2VEYXRlKGMsZSxpKXx8aH1j
YXRjaChnKXt0aGlzLmxvZyhnKTtlPWI/IiI6ZX1hLnNlbGVjdGVkRGF5PWYuZ2V0RGF0ZSgpO2Eu
ZHJhd01vbnRoPWEuc2VsZWN0ZWRNb250aD0KK2YuZ2V0TW9udGgoKTthLmRyYXdZZWFyPWEuc2Vs
ZWN0ZWRZZWFyPWYuZ2V0RnVsbFllYXIoKTthLmN1cnJlbnREYXk9ZT9mLmdldERhdGUoKTowO2Eu
Y3VycmVudE1vbnRoPWU/Zi5nZXRNb250aCgpOjA7YS5jdXJyZW50WWVhcj1lP2YuZ2V0RnVsbFll
YXIoKTowO3RoaXMuX2FkanVzdEluc3REYXRlKGEpfX0sX2dldERlZmF1bHREYXRlOmZ1bmN0aW9u
KGEpe3JldHVybiB0aGlzLl9yZXN0cmljdE1pbk1heChhLHRoaXMuX2RldGVybWluZURhdGUoYSx0
aGlzLl9nZXQoYSwiZGVmYXVsdERhdGUiKSxuZXcgRGF0ZSkpfSxfZGV0ZXJtaW5lRGF0ZTpmdW5j
dGlvbihhLGIsYyl7dmFyIGU9ZnVuY3Rpb24oaCl7dmFyIGk9bmV3IERhdGU7aS5zZXREYXRlKGku
Z2V0RGF0ZSgpK2gpO3JldHVybiBpfSxmPWZ1bmN0aW9uKGgpe3RyeXtyZXR1cm4gZC5kYXRlcGlj
a2VyLnBhcnNlRGF0ZShkLmRhdGVwaWNrZXIuX2dldChhLCJkYXRlRm9ybWF0IiksaCxkLmRhdGVw
aWNrZXIuX2dldEZvcm1hdENvbmZpZyhhKSl9Y2F0Y2goaSl7fXZhciBnPQorKGgudG9Mb3dlckNh
c2UoKS5tYXRjaCgvXmMvKT9kLmRhdGVwaWNrZXIuX2dldERhdGUoYSk6bnVsbCl8fG5ldyBEYXRl
LGo9Zy5nZXRGdWxsWWVhcigpLGw9Zy5nZXRNb250aCgpO2c9Zy5nZXREYXRlKCk7Zm9yKHZhciB1
PS8oWystXT9bMC05XSspXHMqKGR8RHx3fFd8bXxNfHl8WSk/L2csaz11LmV4ZWMoaCk7azspe3N3
aXRjaChrWzJdfHwiZCIpe2Nhc2UgImQiOmNhc2UgIkQiOmcrPXBhcnNlSW50KGtbMV0sMTApO2Jy
ZWFrO2Nhc2UgInciOmNhc2UgIlciOmcrPXBhcnNlSW50KGtbMV0sMTApKjc7YnJlYWs7Y2FzZSAi
bSI6Y2FzZSAiTSI6bCs9cGFyc2VJbnQoa1sxXSwxMCk7Zz1NYXRoLm1pbihnLGQuZGF0ZXBpY2tl
ci5fZ2V0RGF5c0luTW9udGgoaixsKSk7YnJlYWs7Y2FzZSAieSI6Y2FzZSAiWSI6ais9cGFyc2VJ
bnQoa1sxXSwxMCk7Zz1NYXRoLm1pbihnLGQuZGF0ZXBpY2tlci5fZ2V0RGF5c0luTW9udGgoaixs
KSk7YnJlYWt9az11LmV4ZWMoaCl9cmV0dXJuIG5ldyBEYXRlKGosCitsLGcpfTtpZihiPShiPWI9
PW51bGx8fGI9PT0iIj9jOnR5cGVvZiBiPT0ic3RyaW5nIj9mKGIpOnR5cGVvZiBiPT0ibnVtYmVy
Ij9pc05hTihiKT9jOmUoYik6bmV3IERhdGUoYi5nZXRUaW1lKCkpKSYmYi50b1N0cmluZygpPT0i
SW52YWxpZCBEYXRlIj9jOmIpe2Iuc2V0SG91cnMoMCk7Yi5zZXRNaW51dGVzKDApO2Iuc2V0U2Vj
b25kcygwKTtiLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gdGhpcy5fZGF5bGlnaHRTYXZpbmdB
ZGp1c3QoYil9LF9kYXlsaWdodFNhdmluZ0FkanVzdDpmdW5jdGlvbihhKXtpZighYSlyZXR1cm4g
bnVsbDthLnNldEhvdXJzKGEuZ2V0SG91cnMoKT4xMj9hLmdldEhvdXJzKCkrMjowKTtyZXR1cm4g
YX0sX3NldERhdGU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPSFiLGY9YS5zZWxlY3RlZE1vbnRoLGg9
YS5zZWxlY3RlZFllYXI7Yj10aGlzLl9yZXN0cmljdE1pbk1heChhLHRoaXMuX2RldGVybWluZURh
dGUoYSxiLG5ldyBEYXRlKSk7YS5zZWxlY3RlZERheT0KK2EuY3VycmVudERheT1iLmdldERhdGUo
KTthLmRyYXdNb250aD1hLnNlbGVjdGVkTW9udGg9YS5jdXJyZW50TW9udGg9Yi5nZXRNb250aCgp
O2EuZHJhd1llYXI9YS5zZWxlY3RlZFllYXI9YS5jdXJyZW50WWVhcj1iLmdldEZ1bGxZZWFyKCk7
aWYoKGYhPWEuc2VsZWN0ZWRNb250aHx8aCE9YS5zZWxlY3RlZFllYXIpJiYhYyl0aGlzLl9ub3Rp
ZnlDaGFuZ2UoYSk7dGhpcy5fYWRqdXN0SW5zdERhdGUoYSk7aWYoYS5pbnB1dClhLmlucHV0LnZh
bChlPyIiOnRoaXMuX2Zvcm1hdERhdGUoYSkpfSxfZ2V0RGF0ZTpmdW5jdGlvbihhKXtyZXR1cm4h
YS5jdXJyZW50WWVhcnx8YS5pbnB1dCYmYS5pbnB1dC52YWwoKT09IiI/bnVsbDp0aGlzLl9kYXls
aWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShhLmN1cnJlbnRZZWFyLGEuY3VycmVudE1vbnRoLGEu
Y3VycmVudERheSkpfSxfZ2VuZXJhdGVIVE1MOmZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBEYXRlO2I9
dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoYi5nZXRGdWxsWWVhcigpLAorYi5n
ZXRNb250aCgpLGIuZ2V0RGF0ZSgpKSk7dmFyIGM9dGhpcy5fZ2V0KGEsImlzUlRMIiksZT10aGlz
Ll9nZXQoYSwic2hvd0J1dHRvblBhbmVsIiksZj10aGlzLl9nZXQoYSwiaGlkZUlmTm9QcmV2TmV4
dCIpLGg9dGhpcy5fZ2V0KGEsIm5hdmlnYXRpb25Bc0RhdGVGb3JtYXQiKSxpPXRoaXMuX2dldE51
bWJlck9mTW9udGhzKGEpLGc9dGhpcy5fZ2V0KGEsInNob3dDdXJyZW50QXRQb3MiKSxqPXRoaXMu
X2dldChhLCJzdGVwTW9udGhzIiksbD1pWzBdIT0xfHxpWzFdIT0xLHU9dGhpcy5fZGF5bGlnaHRT
YXZpbmdBZGp1c3QoIWEuY3VycmVudERheT9uZXcgRGF0ZSg5OTk5LDksOSk6bmV3IERhdGUoYS5j
dXJyZW50WWVhcixhLmN1cnJlbnRNb250aCxhLmN1cnJlbnREYXkpKSxrPXRoaXMuX2dldE1pbk1h
eERhdGUoYSwibWluIiksbz10aGlzLl9nZXRNaW5NYXhEYXRlKGEsIm1heCIpO2c9YS5kcmF3TW9u
dGgtZzt2YXIgbT1hLmRyYXdZZWFyO2lmKGc8MCl7Zys9MTI7bS0tfWlmKG8pe3ZhciBuPQordGhp
cy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoby5nZXRGdWxsWWVhcigpLG8uZ2V0TW9u
dGgoKS1pWzBdKmlbMV0rMSxvLmdldERhdGUoKSkpO2ZvcihuPWsmJm48az9rOm47dGhpcy5fZGF5
bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUobSxnLDEpKT5uOyl7Zy0tO2lmKGc8MCl7Zz0xMTtt
LS19fX1hLmRyYXdNb250aD1nO2EuZHJhd1llYXI9bTtuPXRoaXMuX2dldChhLCJwcmV2VGV4dCIp
O249IWg/bjp0aGlzLmZvcm1hdERhdGUobix0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcg
RGF0ZShtLGctaiwxKSksdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGEpKTtuPXRoaXMuX2NhbkFkanVz
dE1vbnRoKGEsLTEsbSxnKT8nPGEgY2xhc3M9InVpLWRhdGVwaWNrZXItcHJldiB1aS1jb3JuZXIt
YWxsIiBvbmNsaWNrPSJEUF9qUXVlcnlfJyt5KyIuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZSgnIyIr
YS5pZCsiJywgLSIraisiLCAnTScpO1wiIHRpdGxlPVwiIituKyciPjxzcGFuIGNsYXNzPSJ1aS1p
Y29uIHVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLScrCisoYz8iZSI6InciKSsnIj4nK24rIjwvc3Bh
bj48L2E+IjpmPyIiOic8YSBjbGFzcz0idWktZGF0ZXBpY2tlci1wcmV2IHVpLWNvcm5lci1hbGwg
dWktc3RhdGUtZGlzYWJsZWQiIHRpdGxlPSInK24rJyI+PHNwYW4gY2xhc3M9InVpLWljb24gdWkt
aWNvbi1jaXJjbGUtdHJpYW5nbGUtJysoYz8iZSI6InciKSsnIj4nK24rIjwvc3Bhbj48L2E+Ijt2
YXIgcj10aGlzLl9nZXQoYSwibmV4dFRleHQiKTtyPSFoP3I6dGhpcy5mb3JtYXREYXRlKHIsdGhp
cy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUobSxnK2osMSkpLHRoaXMuX2dldEZvcm1h
dENvbmZpZyhhKSk7Zj10aGlzLl9jYW5BZGp1c3RNb250aChhLCsxLG0sZyk/JzxhIGNsYXNzPSJ1
aS1kYXRlcGlja2VyLW5leHQgdWktY29ybmVyLWFsbCIgb25jbGljaz0iRFBfalF1ZXJ5XycreSsi
LmRhdGVwaWNrZXIuX2FkanVzdERhdGUoJyMiK2EuaWQrIicsICsiK2orIiwgJ00nKTtcIiB0aXRs
ZT1cIiIrcisnIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0n
KworKGM/InciOiJlIikrJyI+JytyKyI8L3NwYW4+PC9hPiI6Zj8iIjonPGEgY2xhc3M9InVpLWRh
dGVwaWNrZXItbmV4dCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRpc2FibGVkIiB0aXRsZT0iJyty
KyciPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLScrKGM/Inci
OiJlIikrJyI+JytyKyI8L3NwYW4+PC9hPiI7aj10aGlzLl9nZXQoYSwiY3VycmVudFRleHQiKTty
PXRoaXMuX2dldChhLCJnb3RvQ3VycmVudCIpJiZhLmN1cnJlbnREYXk/dTpiO2o9IWg/ajp0aGlz
LmZvcm1hdERhdGUoaixyLHRoaXMuX2dldEZvcm1hdENvbmZpZyhhKSk7aD0hYS5pbmxpbmU/Jzxi
dXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idWktZGF0ZXBpY2tlci1jbG9zZSB1aS1zdGF0ZS1k
ZWZhdWx0IHVpLXByaW9yaXR5LXByaW1hcnkgdWktY29ybmVyLWFsbCIgb25jbGljaz0iRFBfalF1
ZXJ5XycreSsnLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7Ij4nK3RoaXMuX2dldChhLAor
ImNsb3NlVGV4dCIpKyI8L2J1dHRvbj4iOiIiO2U9ZT8nPGRpdiBjbGFzcz0idWktZGF0ZXBpY2tl
ci1idXR0b25wYW5lIHVpLXdpZGdldC1jb250ZW50Ij4nKyhjP2g6IiIpKyh0aGlzLl9pc0luUmFu
Z2UoYSxyKT8nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ1aS1kYXRlcGlja2VyLWN1cnJl
bnQgdWktc3RhdGUtZGVmYXVsdCB1aS1wcmlvcml0eS1zZWNvbmRhcnkgdWktY29ybmVyLWFsbCIg
b25jbGljaz0iRFBfalF1ZXJ5XycreSsiLmRhdGVwaWNrZXIuX2dvdG9Ub2RheSgnIyIrYS5pZCsi
Jyk7XCI+IitqKyI8L2J1dHRvbj4iOiIiKSsoYz8iIjpoKSsiPC9kaXY+IjoiIjtoPXBhcnNlSW50
KHRoaXMuX2dldChhLCJmaXJzdERheSIpLDEwKTtoPWlzTmFOKGgpPzA6aDtqPXRoaXMuX2dldChh
LCJzaG93V2VlayIpO3I9dGhpcy5fZ2V0KGEsImRheU5hbWVzIik7dGhpcy5fZ2V0KGEsImRheU5h
bWVzU2hvcnQiKTt2YXIgcz10aGlzLl9nZXQoYSwiZGF5TmFtZXNNaW4iKSx6PQordGhpcy5fZ2V0
KGEsIm1vbnRoTmFtZXMiKSx3PXRoaXMuX2dldChhLCJtb250aE5hbWVzU2hvcnQiKSxwPXRoaXMu
X2dldChhLCJiZWZvcmVTaG93RGF5Iiksdj10aGlzLl9nZXQoYSwic2hvd090aGVyTW9udGhzIiks
SD10aGlzLl9nZXQoYSwic2VsZWN0T3RoZXJNb250aHMiKTt0aGlzLl9nZXQoYSwiY2FsY3VsYXRl
V2VlayIpO2Zvcih2YXIgTD10aGlzLl9nZXREZWZhdWx0RGF0ZShhKSxJPSIiLEM9MDtDPGlbMF07
QysrKXtmb3IodmFyIE09IiIsRD0wO0Q8aVsxXTtEKyspe3ZhciBOPXRoaXMuX2RheWxpZ2h0U2F2
aW5nQWRqdXN0KG5ldyBEYXRlKG0sZyxhLnNlbGVjdGVkRGF5KSksdD0iIHVpLWNvcm5lci1hbGwi
LHg9IiI7aWYobCl7eCs9JzxkaXYgY2xhc3M9InVpLWRhdGVwaWNrZXItZ3JvdXAnO2lmKGlbMV0+
MSlzd2l0Y2goRCl7Y2FzZSAwOngrPSIgdWktZGF0ZXBpY2tlci1ncm91cC1maXJzdCI7dD0iIHVp
LWNvcm5lci0iKyhjPyJyaWdodCI6ImxlZnQiKTticmVhaztjYXNlIGlbMV0tCisxOngrPSIgdWkt
ZGF0ZXBpY2tlci1ncm91cC1sYXN0Ijt0PSIgdWktY29ybmVyLSIrKGM/ImxlZnQiOiJyaWdodCIp
O2JyZWFrO2RlZmF1bHQ6eCs9IiB1aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSI7dD0iIjticmVh
a314Kz0nIj4nfXgrPSc8ZGl2IGNsYXNzPSJ1aS1kYXRlcGlja2VyLWhlYWRlciB1aS13aWRnZXQt
aGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCcrdCsnIj4nKygvYWxsfGxlZnQvLnRlc3QodCkmJkM9
PTA/Yz9mOm46IiIpKygvYWxsfHJpZ2h0Ly50ZXN0KHQpJiZDPT0wP2M/bjpmOiIiKSt0aGlzLl9n
ZW5lcmF0ZU1vbnRoWWVhckhlYWRlcihhLGcsbSxrLG8sQz4wfHxEPjAseix3KSsnPC9kaXY+PHRh
YmxlIGNsYXNzPSJ1aS1kYXRlcGlja2VyLWNhbGVuZGFyIj48dGhlYWQ+PHRyPic7dmFyIEE9aj8n
PHRoIGNsYXNzPSJ1aS1kYXRlcGlja2VyLXdlZWstY29sIj4nK3RoaXMuX2dldChhLCJ3ZWVrSGVh
ZGVyIikrIjwvdGg+IjoiIjtmb3IodD0wO3Q8Nzt0Kyspe3ZhciBxPQorKHQraCklNztBKz0iPHRo
IisoKHQraCs2KSU3Pj01PycgY2xhc3M9InVpLWRhdGVwaWNrZXItd2Vlay1lbmQiJzoiIikrJz48
c3BhbiB0aXRsZT0iJytyW3FdKyciPicrc1txXSsiPC9zcGFuPjwvdGg+In14Kz1BKyI8L3RyPjwv
dGhlYWQ+PHRib2R5PiI7QT10aGlzLl9nZXREYXlzSW5Nb250aChtLGcpO2lmKG09PWEuc2VsZWN0
ZWRZZWFyJiZnPT1hLnNlbGVjdGVkTW9udGgpYS5zZWxlY3RlZERheT1NYXRoLm1pbihhLnNlbGVj
dGVkRGF5LEEpO3Q9KHRoaXMuX2dldEZpcnN0RGF5T2ZNb250aChtLGcpLWgrNyklNztBPWw/NjpN
YXRoLmNlaWwoKHQrQSkvNyk7cT10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZSht
LGcsMS10KSk7Zm9yKHZhciBPPTA7TzxBO08rKyl7eCs9Ijx0cj4iO3ZhciBQPSFqPyIiOic8dGQg
Y2xhc3M9InVpLWRhdGVwaWNrZXItd2Vlay1jb2wiPicrdGhpcy5fZ2V0KGEsImNhbGN1bGF0ZVdl
ZWsiKShxKSsiPC90ZD4iO2Zvcih0PTA7dDw3O3QrKyl7dmFyIEY9CitwP3AuYXBwbHkoYS5pbnB1
dD9hLmlucHV0WzBdOm51bGwsW3FdKTpbdHJ1ZSwiIl0sQj1xLmdldE1vbnRoKCkhPWcsSj1CJiYh
SHx8IUZbMF18fGsmJnE8a3x8byYmcT5vO1ArPSc8dGQgY2xhc3M9IicrKCh0K2grNiklNz49NT8i
IHVpLWRhdGVwaWNrZXItd2Vlay1lbmQiOiIiKSsoQj8iIHVpLWRhdGVwaWNrZXItb3RoZXItbW9u
dGgiOiIiKSsocS5nZXRUaW1lKCk9PU4uZ2V0VGltZSgpJiZnPT1hLnNlbGVjdGVkTW9udGgmJmEu
X2tleUV2ZW50fHxMLmdldFRpbWUoKT09cS5nZXRUaW1lKCkmJkwuZ2V0VGltZSgpPT1OLmdldFRp
bWUoKT8iICIrdGhpcy5fZGF5T3ZlckNsYXNzOiIiKSsoSj8iICIrdGhpcy5fdW5zZWxlY3RhYmxl
Q2xhc3MrIiB1aS1zdGF0ZS1kaXNhYmxlZCI6IiIpKyhCJiYhdj8iIjoiICIrRlsxXSsocS5nZXRU
aW1lKCk9PXUuZ2V0VGltZSgpPyIgIit0aGlzLl9jdXJyZW50Q2xhc3M6IiIpKyhxLmdldFRpbWUo
KT09Yi5nZXRUaW1lKCk/IiB1aS1kYXRlcGlja2VyLXRvZGF5IjoKKyIiKSkrJyInKygoIUJ8fHYp
JiZGWzJdPycgdGl0bGU9IicrRlsyXSsnIic6IiIpKyhKPyIiOicgb25jbGljaz0iRFBfalF1ZXJ5
XycreSsiLmRhdGVwaWNrZXIuX3NlbGVjdERheSgnIyIrYS5pZCsiJywiK3EuZ2V0TW9udGgoKSsi
LCIrcS5nZXRGdWxsWWVhcigpKycsIHRoaXMpO3JldHVybiBmYWxzZTsiJykrIj4iKyhCJiYhdj8i
JiN4YTA7IjpKPyc8c3BhbiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCI+JytxLmdldERhdGUoKSsi
PC9zcGFuPiI6JzxhIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0JysocS5nZXRUaW1lKCk9PWIuZ2V0
VGltZSgpPyIgdWktc3RhdGUtaGlnaGxpZ2h0IjoiIikrKHEuZ2V0VGltZSgpPT11LmdldFRpbWUo
KT8iIHVpLXN0YXRlLWFjdGl2ZSI6IiIpKyhCPyIgdWktcHJpb3JpdHktc2Vjb25kYXJ5IjoiIikr
JyIgaHJlZj0iIyI+JytxLmdldERhdGUoKSsiPC9hPiIpKyI8L3RkPiI7cS5zZXREYXRlKHEuZ2V0
RGF0ZSgpKzEpO3E9dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QocSl9eCs9CitQKyI8L3RyPiJ9
ZysrO2lmKGc+MTEpe2c9MDttKyt9eCs9IjwvdGJvZHk+PC90YWJsZT4iKyhsPyI8L2Rpdj4iKyhp
WzBdPjAmJkQ9PWlbMV0tMT8nPGRpdiBjbGFzcz0idWktZGF0ZXBpY2tlci1yb3ctYnJlYWsiPjwv
ZGl2Pic6IiIpOiIiKTtNKz14fUkrPU19SSs9ZSsoZC5icm93c2VyLm1zaWUmJnBhcnNlSW50KGQu
YnJvd3Nlci52ZXJzaW9uLDEwKTw3JiYhYS5pbmxpbmU/JzxpZnJhbWUgc3JjPSJqYXZhc2NyaXB0
OmZhbHNlOyIgY2xhc3M9InVpLWRhdGVwaWNrZXItY292ZXIiIGZyYW1lYm9yZGVyPSIwIj48L2lm
cmFtZT4nOiIiKTthLl9rZXlFdmVudD1mYWxzZTtyZXR1cm4gSX0sX2dlbmVyYXRlTW9udGhZZWFy
SGVhZGVyOmZ1bmN0aW9uKGEsYixjLGUsZixoLGksZyl7dmFyIGo9dGhpcy5fZ2V0KGEsImNoYW5n
ZU1vbnRoIiksbD10aGlzLl9nZXQoYSwiY2hhbmdlWWVhciIpLHU9dGhpcy5fZ2V0KGEsInNob3dN
b250aEFmdGVyWWVhciIpLGs9JzxkaXYgY2xhc3M9InVpLWRhdGVwaWNrZXItdGl0bGUiPicsCitv
PSIiO2lmKGh8fCFqKW8rPSc8c3BhbiBjbGFzcz0idWktZGF0ZXBpY2tlci1tb250aCI+JytpW2Jd
KyI8L3NwYW4+IjtlbHNle2k9ZSYmZS5nZXRGdWxsWWVhcigpPT1jO3ZhciBtPWYmJmYuZ2V0RnVs
bFllYXIoKT09YztvKz0nPHNlbGVjdCBjbGFzcz0idWktZGF0ZXBpY2tlci1tb250aCIgb25jaGFu
Z2U9IkRQX2pRdWVyeV8nK3krIi5kYXRlcGlja2VyLl9zZWxlY3RNb250aFllYXIoJyMiK2EuaWQr
IicsIHRoaXMsICdNJyk7XCIgb25jbGljaz1cIkRQX2pRdWVyeV8iK3krIi5kYXRlcGlja2VyLl9j
bGlja01vbnRoWWVhcignIyIrYS5pZCsiJyk7XCI+Ijtmb3IodmFyIG49MDtuPDEyO24rKylpZigo
IWl8fG4+PWUuZ2V0TW9udGgoKSkmJighbXx8bjw9Zi5nZXRNb250aCgpKSlvKz0nPG9wdGlvbiB2
YWx1ZT0iJytuKyciJysobj09Yj8nIHNlbGVjdGVkPSJzZWxlY3RlZCInOiIiKSsiPiIrZ1tuXSsi
PC9vcHRpb24+IjtvKz0iPC9zZWxlY3Q+In11fHwoays9bysoaHx8IShqJiYKK2wpPyImI3hhMDsi
OiIiKSk7YS55ZWFyc2h0bWw9IiI7aWYoaHx8IWwpays9JzxzcGFuIGNsYXNzPSJ1aS1kYXRlcGlj
a2VyLXllYXIiPicrYysiPC9zcGFuPiI7ZWxzZXtnPXRoaXMuX2dldChhLCJ5ZWFyUmFuZ2UiKS5z
cGxpdCgiOiIpO3ZhciByPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTtpPWZ1bmN0aW9uKHMpe3M9
cy5tYXRjaCgvY1srLV0uKi8pP2MrcGFyc2VJbnQocy5zdWJzdHJpbmcoMSksMTApOnMubWF0Y2go
L1srLV0uKi8pP3IrcGFyc2VJbnQocywxMCk6cGFyc2VJbnQocywxMCk7cmV0dXJuIGlzTmFOKHMp
P3I6c307Yj1pKGdbMF0pO2c9TWF0aC5tYXgoYixpKGdbMV18fCIiKSk7Yj1lP01hdGgubWF4KGIs
ZS5nZXRGdWxsWWVhcigpKTpiO2c9Zj9NYXRoLm1pbihnLGYuZ2V0RnVsbFllYXIoKSk6Zztmb3Io
YS55ZWFyc2h0bWwrPSc8c2VsZWN0IGNsYXNzPSJ1aS1kYXRlcGlja2VyLXllYXIiIG9uY2hhbmdl
PSJEUF9qUXVlcnlfJyt5KyIuZGF0ZXBpY2tlci5fc2VsZWN0TW9udGhZZWFyKCcjIisKK2EuaWQr
IicsIHRoaXMsICdZJyk7XCIgb25jbGljaz1cIkRQX2pRdWVyeV8iK3krIi5kYXRlcGlja2VyLl9j
bGlja01vbnRoWWVhcignIyIrYS5pZCsiJyk7XCI+IjtiPD1nO2IrKylhLnllYXJzaHRtbCs9Jzxv
cHRpb24gdmFsdWU9IicrYisnIicrKGI9PWM/JyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIikrIj4i
K2IrIjwvb3B0aW9uPiI7YS55ZWFyc2h0bWwrPSI8L3NlbGVjdD4iO2lmKGQuYnJvd3Nlci5tb3pp
bGxhKWsrPSc8c2VsZWN0IGNsYXNzPSJ1aS1kYXRlcGlja2VyLXllYXIiPjxvcHRpb24gdmFsdWU9
IicrYysnIiBzZWxlY3RlZD0ic2VsZWN0ZWQiPicrYysiPC9vcHRpb24+PC9zZWxlY3Q+IjtlbHNl
e2srPWEueWVhcnNodG1sO2EueWVhcnNodG1sPW51bGx9fWsrPXRoaXMuX2dldChhLCJ5ZWFyU3Vm
Zml4Iik7aWYodSlrKz0oaHx8IShqJiZsKT8iJiN4YTA7IjoiIikrbztrKz0iPC9kaXY+IjtyZXR1
cm4ga30sX2FkanVzdEluc3REYXRlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT0KK2EuZHJhd1llYXIr
KGM9PSJZIj9iOjApLGY9YS5kcmF3TW9udGgrKGM9PSJNIj9iOjApO2I9TWF0aC5taW4oYS5zZWxl
Y3RlZERheSx0aGlzLl9nZXREYXlzSW5Nb250aChlLGYpKSsoYz09IkQiP2I6MCk7ZT10aGlzLl9y
ZXN0cmljdE1pbk1heChhLHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGUsZixi
KSkpO2Euc2VsZWN0ZWREYXk9ZS5nZXREYXRlKCk7YS5kcmF3TW9udGg9YS5zZWxlY3RlZE1vbnRo
PWUuZ2V0TW9udGgoKTthLmRyYXdZZWFyPWEuc2VsZWN0ZWRZZWFyPWUuZ2V0RnVsbFllYXIoKTtp
ZihjPT0iTSJ8fGM9PSJZIil0aGlzLl9ub3RpZnlDaGFuZ2UoYSl9LF9yZXN0cmljdE1pbk1heDpm
dW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX2dldE1pbk1heERhdGUoYSwibWluIik7YT10aGlzLl9n
ZXRNaW5NYXhEYXRlKGEsIm1heCIpO2I9YyYmYjxjP2M6YjtyZXR1cm4gYj1hJiZiPmE/YTpifSxf
bm90aWZ5Q2hhbmdlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX2dldChhLAorIm9uQ2hhbmdlTW9u
dGhZZWFyIik7aWYoYiliLmFwcGx5KGEuaW5wdXQ/YS5pbnB1dFswXTpudWxsLFthLnNlbGVjdGVk
WWVhcixhLnNlbGVjdGVkTW9udGgrMSxhXSl9LF9nZXROdW1iZXJPZk1vbnRoczpmdW5jdGlvbihh
KXthPXRoaXMuX2dldChhLCJudW1iZXJPZk1vbnRocyIpO3JldHVybiBhPT1udWxsP1sxLDFdOnR5
cGVvZiBhPT0ibnVtYmVyIj9bMSxhXTphfSxfZ2V0TWluTWF4RGF0ZTpmdW5jdGlvbihhLGIpe3Jl
dHVybiB0aGlzLl9kZXRlcm1pbmVEYXRlKGEsdGhpcy5fZ2V0KGEsYisiRGF0ZSIpLG51bGwpfSxf
Z2V0RGF5c0luTW9udGg6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gMzItdGhpcy5fZGF5bGlnaHRTYXZp
bmdBZGp1c3QobmV3IERhdGUoYSxiLDMyKSkuZ2V0RGF0ZSgpfSxfZ2V0Rmlyc3REYXlPZk1vbnRo
OmZ1bmN0aW9uKGEsYil7cmV0dXJuKG5ldyBEYXRlKGEsYiwxKSkuZ2V0RGF5KCl9LF9jYW5BZGp1
c3RNb250aDpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZj10aGlzLl9nZXROdW1iZXJPZk1vbnRocyhh
KTsKK2M9dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoYyxlKyhiPDA/YjpmWzBd
KmZbMV0pLDEpKTtiPDAmJmMuc2V0RGF0ZSh0aGlzLl9nZXREYXlzSW5Nb250aChjLmdldEZ1bGxZ
ZWFyKCksYy5nZXRNb250aCgpKSk7cmV0dXJuIHRoaXMuX2lzSW5SYW5nZShhLGMpfSxfaXNJblJh
bmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fZ2V0TWluTWF4RGF0ZShhLCJtaW4iKTthPXRo
aXMuX2dldE1pbk1heERhdGUoYSwibWF4Iik7cmV0dXJuKCFjfHxiLmdldFRpbWUoKT49Yy5nZXRU
aW1lKCkpJiYoIWF8fGIuZ2V0VGltZSgpPD1hLmdldFRpbWUoKSl9LF9nZXRGb3JtYXRDb25maWc6
ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fZ2V0KGEsInNob3J0WWVhckN1dG9mZiIpO2I9dHlwZW9m
IGIhPSJzdHJpbmciP2I6KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpJTEwMCtwYXJzZUludChiLDEw
KTtyZXR1cm57c2hvcnRZZWFyQ3V0b2ZmOmIsZGF5TmFtZXNTaG9ydDp0aGlzLl9nZXQoYSwKKyJk
YXlOYW1lc1Nob3J0IiksZGF5TmFtZXM6dGhpcy5fZ2V0KGEsImRheU5hbWVzIiksbW9udGhOYW1l
c1Nob3J0OnRoaXMuX2dldChhLCJtb250aE5hbWVzU2hvcnQiKSxtb250aE5hbWVzOnRoaXMuX2dl
dChhLCJtb250aE5hbWVzIil9fSxfZm9ybWF0RGF0ZTpmdW5jdGlvbihhLGIsYyxlKXtpZighYil7
YS5jdXJyZW50RGF5PWEuc2VsZWN0ZWREYXk7YS5jdXJyZW50TW9udGg9YS5zZWxlY3RlZE1vbnRo
O2EuY3VycmVudFllYXI9YS5zZWxlY3RlZFllYXJ9Yj1iP3R5cGVvZiBiPT0ib2JqZWN0Ij9iOnRo
aXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGUsYyxiKSk6dGhpcy5fZGF5bGlnaHRT
YXZpbmdBZGp1c3QobmV3IERhdGUoYS5jdXJyZW50WWVhcixhLmN1cnJlbnRNb250aCxhLmN1cnJl
bnREYXkpKTtyZXR1cm4gdGhpcy5mb3JtYXREYXRlKHRoaXMuX2dldChhLCJkYXRlRm9ybWF0Iiks
Yix0aGlzLl9nZXRGb3JtYXRDb25maWcoYSkpfX0pO2QuZm4uZGF0ZXBpY2tlcj0KK2Z1bmN0aW9u
KGEpe2lmKCF0aGlzLmxlbmd0aClyZXR1cm4gdGhpcztpZighZC5kYXRlcGlja2VyLmluaXRpYWxp
emVkKXtkKGRvY3VtZW50KS5tb3VzZWRvd24oZC5kYXRlcGlja2VyLl9jaGVja0V4dGVybmFsQ2xp
Y2spLmZpbmQoImJvZHkiKS5hcHBlbmQoZC5kYXRlcGlja2VyLmRwRGl2KTtkLmRhdGVwaWNrZXIu
aW5pdGlhbGl6ZWQ9dHJ1ZX12YXIgYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVu
dHMsMSk7aWYodHlwZW9mIGE9PSJzdHJpbmciJiYoYT09ImlzRGlzYWJsZWQifHxhPT0iZ2V0RGF0
ZSJ8fGE9PSJ3aWRnZXQiKSlyZXR1cm4gZC5kYXRlcGlja2VyWyJfIithKyJEYXRlcGlja2VyIl0u
YXBwbHkoZC5kYXRlcGlja2VyLFt0aGlzWzBdXS5jb25jYXQoYikpO2lmKGE9PSJvcHRpb24iJiZh
cmd1bWVudHMubGVuZ3RoPT0yJiZ0eXBlb2YgYXJndW1lbnRzWzFdPT0ic3RyaW5nIilyZXR1cm4g
ZC5kYXRlcGlja2VyWyJfIithKyJEYXRlcGlja2VyIl0uYXBwbHkoZC5kYXRlcGlja2VyLAorW3Ro
aXNbMF1dLmNvbmNhdChiKSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3R5cGVvZiBhPT0i
c3RyaW5nIj9kLmRhdGVwaWNrZXJbIl8iK2ErIkRhdGVwaWNrZXIiXS5hcHBseShkLmRhdGVwaWNr
ZXIsW3RoaXNdLmNvbmNhdChiKSk6ZC5kYXRlcGlja2VyLl9hdHRhY2hEYXRlcGlja2VyKHRoaXMs
YSl9KX07ZC5kYXRlcGlja2VyPW5ldyBLO2QuZGF0ZXBpY2tlci5pbml0aWFsaXplZD1mYWxzZTtk
LmRhdGVwaWNrZXIudXVpZD0obmV3IERhdGUpLmdldFRpbWUoKTtkLmRhdGVwaWNrZXIudmVyc2lv
bj0iMS44LjEwIjt3aW5kb3dbIkRQX2pRdWVyeV8iK3ldPWR9KShqUXVlcnkpOworOy8qCisgKiBq
UXVlcnkgVUkgUHJvZ3Jlc3NiYXIgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhP
UlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRl
ciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9y
Zy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9Qcm9ncmVzc2Jhcgor
ICoKKyAqIERlcGVuZHM6CisgKiAgIGpxdWVyeS51aS5jb3JlLmpzCisgKiAgIGpxdWVyeS51aS53
aWRnZXQuanMKKyAqLworKGZ1bmN0aW9uKGIsZCl7Yi53aWRnZXQoInVpLnByb2dyZXNzYmFyIix7
b3B0aW9uczp7dmFsdWU6MCxtYXg6MTAwfSxtaW46MCxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5l
bGVtZW50LmFkZENsYXNzKCJ1aS1wcm9ncmVzc2JhciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRl
bnQgdWktY29ybmVyLWFsbCIpLmF0dHIoe3JvbGU6InByb2dyZXNzYmFyIiwiYXJpYS12YWx1ZW1p
biI6dGhpcy5taW4sImFyaWEtdmFsdWVtYXgiOnRoaXMub3B0aW9ucy5tYXgsImFyaWEtdmFsdWVu
b3ciOnRoaXMuX3ZhbHVlKCl9KTt0aGlzLnZhbHVlRGl2PWIoIjxkaXYgY2xhc3M9J3VpLXByb2dy
ZXNzYmFyLXZhbHVlIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWxlZnQnPjwvZGl2PiIpLmFw
cGVuZFRvKHRoaXMuZWxlbWVudCk7dGhpcy5vbGRWYWx1ZT10aGlzLl92YWx1ZSgpO3RoaXMuX3Jl
ZnJlc2hWYWx1ZSgpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNz
KCJ1aS1wcm9ncmVzc2JhciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFs
bCIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbWluIikucmVtb3Zl
QXR0cigiYXJpYS12YWx1ZW1heCIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVub3ciKTsKK3RoaXMu
dmFsdWVEaXYucmVtb3ZlKCk7Yi5XaWRnZXQucHJvdG90eXBlLmRlc3Ryb3kuYXBwbHkodGhpcyxh
cmd1bWVudHMpfSx2YWx1ZTpmdW5jdGlvbihhKXtpZihhPT09ZClyZXR1cm4gdGhpcy5fdmFsdWUo
KTt0aGlzLl9zZXRPcHRpb24oInZhbHVlIixhKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5j
dGlvbihhLGMpe2lmKGE9PT0idmFsdWUiKXt0aGlzLm9wdGlvbnMudmFsdWU9Yzt0aGlzLl9yZWZy
ZXNoVmFsdWUoKTt0aGlzLl92YWx1ZSgpPT09dGhpcy5vcHRpb25zLm1heCYmdGhpcy5fdHJpZ2dl
cigiY29tcGxldGUiKX1iLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5hcHBseSh0aGlzLGFy
Z3VtZW50cyl9LF92YWx1ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy52YWx1ZTtpZih0
eXBlb2YgYSE9PSJudW1iZXIiKWE9MDtyZXR1cm4gTWF0aC5taW4odGhpcy5vcHRpb25zLm1heCxN
YXRoLm1heCh0aGlzLm1pbixhKSl9LF9wZXJjZW50YWdlOmZ1bmN0aW9uKCl7cmV0dXJuIDEwMCoK
K3RoaXMuX3ZhbHVlKCkvdGhpcy5vcHRpb25zLm1heH0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigp
e3ZhciBhPXRoaXMudmFsdWUoKSxjPXRoaXMuX3BlcmNlbnRhZ2UoKTtpZih0aGlzLm9sZFZhbHVl
IT09YSl7dGhpcy5vbGRWYWx1ZT1hO3RoaXMuX3RyaWdnZXIoImNoYW5nZSIpfXRoaXMudmFsdWVE
aXYudG9nZ2xlQ2xhc3MoInVpLWNvcm5lci1yaWdodCIsYT09PXRoaXMub3B0aW9ucy5tYXgpLndp
ZHRoKGMudG9GaXhlZCgwKSsiJSIpO3RoaXMuZWxlbWVudC5hdHRyKCJhcmlhLXZhbHVlbm93Iixh
KX19KTtiLmV4dGVuZChiLnVpLnByb2dyZXNzYmFyLHt2ZXJzaW9uOiIxLjguMTAifSl9KShqUXVl
cnkpOworOy8qCisgKiBqUXVlcnkgVUkgRWZmZWN0cyAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQg
MjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxp
Y2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6
Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0Vm
ZmVjdHMvCisgKi8KK2pRdWVyeS5lZmZlY3RzfHxmdW5jdGlvbihmLGope2Z1bmN0aW9uIG4oYyl7
dmFyIGE7aWYoYyYmYy5jb25zdHJ1Y3Rvcj09QXJyYXkmJmMubGVuZ3RoPT0zKXJldHVybiBjO2lm
KGE9L3JnYlwoXHMqKFswLTldezEsM30pXHMqLFxzKihbMC05XXsxLDN9KVxzKixccyooWzAtOV17
MSwzfSlccypcKS8uZXhlYyhjKSlyZXR1cm5bcGFyc2VJbnQoYVsxXSwxMCkscGFyc2VJbnQoYVsy
XSwxMCkscGFyc2VJbnQoYVszXSwxMCldO2lmKGE9L3JnYlwoXHMqKFswLTldKyg/OlwuWzAtOV0r
KT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAtOV0rKT8pXCVccyosXHMqKFswLTldKyg/OlwuWzAt
OV0rKT8pXCVccypcKS8uZXhlYyhjKSlyZXR1cm5bcGFyc2VGbG9hdChhWzFdKSoyLjU1LHBhcnNl
RmxvYXQoYVsyXSkqMi41NSxwYXJzZUZsb2F0KGFbM10pKjIuNTVdO2lmKGE9LyMoW2EtZkEtRjAt
OV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkvLmV4ZWMoYykpcmV0dXJuW3Bh
cnNlSW50KGFbMV0sCisxNikscGFyc2VJbnQoYVsyXSwxNikscGFyc2VJbnQoYVszXSwxNildO2lm
KGE9LyMoW2EtZkEtRjAtOV0pKFthLWZBLUYwLTldKShbYS1mQS1GMC05XSkvLmV4ZWMoYykpcmV0
dXJuW3BhcnNlSW50KGFbMV0rYVsxXSwxNikscGFyc2VJbnQoYVsyXSthWzJdLDE2KSxwYXJzZUlu
dChhWzNdK2FbM10sMTYpXTtpZigvcmdiYVwoMCwgMCwgMCwgMFwpLy5leGVjKGMpKXJldHVybiBv
LnRyYW5zcGFyZW50O3JldHVybiBvW2YudHJpbShjKS50b0xvd2VyQ2FzZSgpXX1mdW5jdGlvbiBz
KGMsYSl7dmFyIGI7ZG97Yj1mLmN1ckNTUyhjLGEpO2lmKGIhPSIiJiZiIT0idHJhbnNwYXJlbnQi
fHxmLm5vZGVOYW1lKGMsImJvZHkiKSlicmVhazthPSJiYWNrZ3JvdW5kQ29sb3IifXdoaWxlKGM9
Yy5wYXJlbnROb2RlKTtyZXR1cm4gbihiKX1mdW5jdGlvbiBwKCl7dmFyIGM9ZG9jdW1lbnQuZGVm
YXVsdFZpZXc/ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLG51bGwp
OnRoaXMuY3VycmVudFN0eWxlLAorYT17fSxiLGQ7aWYoYyYmYy5sZW5ndGgmJmNbMF0mJmNbY1sw
XV0pZm9yKHZhciBlPWMubGVuZ3RoO2UtLTspe2I9Y1tlXTtpZih0eXBlb2YgY1tiXT09InN0cmlu
ZyIpe2Q9Yi5yZXBsYWNlKC9cLShcdykvZyxmdW5jdGlvbihnLGgpe3JldHVybiBoLnRvVXBwZXJD
YXNlKCl9KTthW2RdPWNbYl19fWVsc2UgZm9yKGIgaW4gYylpZih0eXBlb2YgY1tiXT09PSJzdHJp
bmciKWFbYl09Y1tiXTtyZXR1cm4gYX1mdW5jdGlvbiBxKGMpe3ZhciBhLGI7Zm9yKGEgaW4gYyl7
Yj1jW2FdO2lmKGI9PW51bGx8fGYuaXNGdW5jdGlvbihiKXx8YSBpbiB0fHwvc2Nyb2xsYmFyLy50
ZXN0KGEpfHwhL2NvbG9yL2kudGVzdChhKSYmaXNOYU4ocGFyc2VGbG9hdChiKSkpZGVsZXRlIGNb
YV19cmV0dXJuIGN9ZnVuY3Rpb24gdShjLGEpe3ZhciBiPXtfOjB9LGQ7Zm9yKGQgaW4gYSlpZihj
W2RdIT1hW2RdKWJbZF09YVtkXTtyZXR1cm4gYn1mdW5jdGlvbiBrKGMsYSxiLGQpe2lmKHR5cGVv
ZiBjPT0ib2JqZWN0Iil7ZD0KK2E7Yj1udWxsO2E9YztjPWEuZWZmZWN0fWlmKGYuaXNGdW5jdGlv
bihhKSl7ZD1hO2I9bnVsbDthPXt9fWlmKHR5cGVvZiBhPT0ibnVtYmVyInx8Zi5meC5zcGVlZHNb
YV0pe2Q9YjtiPWE7YT17fX1pZihmLmlzRnVuY3Rpb24oYikpe2Q9YjtiPW51bGx9YT1hfHx7fTti
PWJ8fGEuZHVyYXRpb247Yj1mLmZ4Lm9mZj8wOnR5cGVvZiBiPT0ibnVtYmVyIj9iOmIgaW4gZi5m
eC5zcGVlZHM/Zi5meC5zcGVlZHNbYl06Zi5meC5zcGVlZHMuX2RlZmF1bHQ7ZD1kfHxhLmNvbXBs
ZXRlO3JldHVybltjLGEsYixkXX1mdW5jdGlvbiBtKGMpe2lmKCFjfHx0eXBlb2YgYz09PSJudW1i
ZXIifHxmLmZ4LnNwZWVkc1tjXSlyZXR1cm4gdHJ1ZTtpZih0eXBlb2YgYz09PSJzdHJpbmciJiYh
Zi5lZmZlY3RzW2NdKXJldHVybiB0cnVlO3JldHVybiBmYWxzZX1mLmVmZmVjdHM9e307Zi5lYWNo
KFsiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJMZWZ0Q29sb3Ii
LCJib3JkZXJSaWdodENvbG9yIiwKKyJib3JkZXJUb3BDb2xvciIsImJvcmRlckNvbG9yIiwiY29s
b3IiLCJvdXRsaW5lQ29sb3IiXSxmdW5jdGlvbihjLGEpe2YuZnguc3RlcFthXT1mdW5jdGlvbihi
KXtpZighYi5jb2xvckluaXQpe2Iuc3RhcnQ9cyhiLmVsZW0sYSk7Yi5lbmQ9bihiLmVuZCk7Yi5j
b2xvckluaXQ9dHJ1ZX1iLmVsZW0uc3R5bGVbYV09InJnYigiK01hdGgubWF4KE1hdGgubWluKHBh
cnNlSW50KGIucG9zKihiLmVuZFswXS1iLnN0YXJ0WzBdKStiLnN0YXJ0WzBdLDEwKSwyNTUpLDAp
KyIsIitNYXRoLm1heChNYXRoLm1pbihwYXJzZUludChiLnBvcyooYi5lbmRbMV0tYi5zdGFydFsx
XSkrYi5zdGFydFsxXSwxMCksMjU1KSwwKSsiLCIrTWF0aC5tYXgoTWF0aC5taW4ocGFyc2VJbnQo
Yi5wb3MqKGIuZW5kWzJdLWIuc3RhcnRbMl0pK2Iuc3RhcnRbMl0sMTApLDI1NSksMCkrIikifX0p
O3ZhciBvPXthcXVhOlswLDI1NSwyNTVdLGF6dXJlOlsyNDAsMjU1LDI1NV0sYmVpZ2U6WzI0NSwy
NDUsMjIwXSxibGFjazpbMCwKKzAsMF0sYmx1ZTpbMCwwLDI1NV0sYnJvd246WzE2NSw0Miw0Ml0s
Y3lhbjpbMCwyNTUsMjU1XSxkYXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0s
ZGFya2dyZXk6WzE2OSwxNjksMTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtraGFraTpbMTg5
LDE4MywxMDddLGRhcmttYWdlbnRhOlsxMzksMCwxMzldLGRhcmtvbGl2ZWdyZWVuOls4NSwxMDcs
NDddLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMF0sZGFya29yY2hpZDpbMTUzLDUwLDIwNF0sZGFya3Jl
ZDpbMTM5LDAsMF0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjJdLGRhcmt2aW9sZXQ6WzE0OCwwLDIx
MV0sZnVjaHNpYTpbMjU1LDAsMjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdyZWVuOlswLDEyOCwwXSxp
bmRpZ286Wzc1LDAsMTMwXSxraGFraTpbMjQwLDIzMCwxNDBdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwy
MzBdLGxpZ2h0Y3lhbjpbMjI0LDI1NSwyNTVdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdo
dGdyZXk6WzIxMSwKKzIxMSwyMTFdLGxpZ2h0cGluazpbMjU1LDE4MiwxOTNdLGxpZ2h0eWVsbG93
OlsyNTUsMjU1LDIyNF0sbGltZTpbMCwyNTUsMF0sbWFnZW50YTpbMjU1LDAsMjU1XSxtYXJvb246
WzEyOCwwLDBdLG5hdnk6WzAsMCwxMjhdLG9saXZlOlsxMjgsMTI4LDBdLG9yYW5nZTpbMjU1LDE2
NSwwXSxwaW5rOlsyNTUsMTkyLDIwM10scHVycGxlOlsxMjgsMCwxMjhdLHZpb2xldDpbMTI4LDAs
MTI4XSxyZWQ6WzI1NSwwLDBdLHNpbHZlcjpbMTkyLDE5MiwxOTJdLHdoaXRlOlsyNTUsMjU1LDI1
NV0seWVsbG93OlsyNTUsMjU1LDBdLHRyYW5zcGFyZW50OlsyNTUsMjU1LDI1NV19LHI9WyJhZGQi
LCJyZW1vdmUiLCJ0b2dnbGUiXSx0PXtib3JkZXI6MSxib3JkZXJCb3R0b206MSxib3JkZXJDb2xv
cjoxLGJvcmRlckxlZnQ6MSxib3JkZXJSaWdodDoxLGJvcmRlclRvcDoxLGJvcmRlcldpZHRoOjEs
bWFyZ2luOjEscGFkZGluZzoxfTtmLmVmZmVjdHMuYW5pbWF0ZUNsYXNzPWZ1bmN0aW9uKGMsYSxi
LAorZCl7aWYoZi5pc0Z1bmN0aW9uKGIpKXtkPWI7Yj1udWxsfXJldHVybiB0aGlzLnF1ZXVlKCJm
eCIsZnVuY3Rpb24oKXt2YXIgZT1mKHRoaXMpLGc9ZS5hdHRyKCJzdHlsZSIpfHwiICIsaD1xKHAu
Y2FsbCh0aGlzKSksbCx2PWUuYXR0cigiY2xhc3NOYW1lIik7Zi5lYWNoKHIsZnVuY3Rpb24odyxp
KXtjW2ldJiZlW2krIkNsYXNzIl0oY1tpXSl9KTtsPXEocC5jYWxsKHRoaXMpKTtlLmF0dHIoImNs
YXNzTmFtZSIsdik7ZS5hbmltYXRlKHUoaCxsKSxhLGIsZnVuY3Rpb24oKXtmLmVhY2gocixmdW5j
dGlvbih3LGkpe2NbaV0mJmVbaSsiQ2xhc3MiXShjW2ldKX0pO2lmKHR5cGVvZiBlLmF0dHIoInN0
eWxlIik9PSJvYmplY3QiKXtlLmF0dHIoInN0eWxlIikuY3NzVGV4dD0iIjtlLmF0dHIoInN0eWxl
IikuY3NzVGV4dD1nfWVsc2UgZS5hdHRyKCJzdHlsZSIsZyk7ZCYmZC5hcHBseSh0aGlzLGFyZ3Vt
ZW50cyl9KTtoPWYucXVldWUodGhpcyk7bD1oLnNwbGljZShoLmxlbmd0aC0xLDEpWzBdOworaC5z
cGxpY2UoMSwwLGwpO2YuZGVxdWV1ZSh0aGlzKX0pfTtmLmZuLmV4dGVuZCh7X2FkZENsYXNzOmYu
Zm4uYWRkQ2xhc3MsYWRkQ2xhc3M6ZnVuY3Rpb24oYyxhLGIsZCl7cmV0dXJuIGE/Zi5lZmZlY3Rz
LmFuaW1hdGVDbGFzcy5hcHBseSh0aGlzLFt7YWRkOmN9LGEsYixkXSk6dGhpcy5fYWRkQ2xhc3Mo
Yyl9LF9yZW1vdmVDbGFzczpmLmZuLnJlbW92ZUNsYXNzLHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGMs
YSxiLGQpe3JldHVybiBhP2YuZWZmZWN0cy5hbmltYXRlQ2xhc3MuYXBwbHkodGhpcyxbe3JlbW92
ZTpjfSxhLGIsZF0pOnRoaXMuX3JlbW92ZUNsYXNzKGMpfSxfdG9nZ2xlQ2xhc3M6Zi5mbi50b2dn
bGVDbGFzcyx0b2dnbGVDbGFzczpmdW5jdGlvbihjLGEsYixkLGUpe3JldHVybiB0eXBlb2YgYT09
ImJvb2xlYW4ifHxhPT09aj9iP2YuZWZmZWN0cy5hbmltYXRlQ2xhc3MuYXBwbHkodGhpcyxbYT97
YWRkOmN9OntyZW1vdmU6Y30sYixkLGVdKTp0aGlzLl90b2dnbGVDbGFzcyhjLAorYSk6Zi5lZmZl
Y3RzLmFuaW1hdGVDbGFzcy5hcHBseSh0aGlzLFt7dG9nZ2xlOmN9LGEsYixkXSl9LHN3aXRjaENs
YXNzOmZ1bmN0aW9uKGMsYSxiLGQsZSl7cmV0dXJuIGYuZWZmZWN0cy5hbmltYXRlQ2xhc3MuYXBw
bHkodGhpcyxbe2FkZDphLHJlbW92ZTpjfSxiLGQsZV0pfX0pO2YuZXh0ZW5kKGYuZWZmZWN0cyx7
dmVyc2lvbjoiMS44LjEwIixzYXZlOmZ1bmN0aW9uKGMsYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0
aDtiKyspYVtiXSE9PW51bGwmJmMuZGF0YSgiZWMuc3RvcmFnZS4iK2FbYl0sY1swXS5zdHlsZVth
W2JdXSl9LHJlc3RvcmU6ZnVuY3Rpb24oYyxhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKylh
W2JdIT09bnVsbCYmYy5jc3MoYVtiXSxjLmRhdGEoImVjLnN0b3JhZ2UuIithW2JdKSl9LHNldE1v
ZGU6ZnVuY3Rpb24oYyxhKXtpZihhPT0idG9nZ2xlIilhPWMuaXMoIjpoaWRkZW4iKT8ic2hvdyI6
ImhpZGUiO3JldHVybiBhfSxnZXRCYXNlbGluZTpmdW5jdGlvbihjLAorYSl7dmFyIGI7c3dpdGNo
KGNbMF0pe2Nhc2UgInRvcCI6Yj0wO2JyZWFrO2Nhc2UgIm1pZGRsZSI6Yj0wLjU7YnJlYWs7Y2Fz
ZSAiYm90dG9tIjpiPTE7YnJlYWs7ZGVmYXVsdDpiPWNbMF0vYS5oZWlnaHR9c3dpdGNoKGNbMV0p
e2Nhc2UgImxlZnQiOmM9MDticmVhaztjYXNlICJjZW50ZXIiOmM9MC41O2JyZWFrO2Nhc2UgInJp
Z2h0IjpjPTE7YnJlYWs7ZGVmYXVsdDpjPWNbMV0vYS53aWR0aH1yZXR1cm57eDpjLHk6Yn19LGNy
ZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oYyl7aWYoYy5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3Jh
cHBlciIpKXJldHVybiBjLnBhcmVudCgpO3ZhciBhPXt3aWR0aDpjLm91dGVyV2lkdGgodHJ1ZSks
aGVpZ2h0OmMub3V0ZXJIZWlnaHQodHJ1ZSksImZsb2F0IjpjLmNzcygiZmxvYXQiKX0sYj1mKCI8
ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJ1aS1lZmZlY3RzLXdyYXBwZXIiKS5jc3Moe2ZvbnRTaXpl
OiIxMDAlIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsCitib3JkZXI6Im5vbmUiLG1hcmdpbjow
LHBhZGRpbmc6MH0pO2Mud3JhcChiKTtiPWMucGFyZW50KCk7aWYoYy5jc3MoInBvc2l0aW9uIik9
PSJzdGF0aWMiKXtiLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pO2MuY3NzKHtwb3NpdGlvbjoi
cmVsYXRpdmUifSl9ZWxzZXtmLmV4dGVuZChhLHtwb3NpdGlvbjpjLmNzcygicG9zaXRpb24iKSx6
SW5kZXg6Yy5jc3MoInotaW5kZXgiKX0pO2YuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJy
aWdodCJdLGZ1bmN0aW9uKGQsZSl7YVtlXT1jLmNzcyhlKTtpZihpc05hTihwYXJzZUludChhW2Vd
LDEwKSkpYVtlXT0iYXV0byJ9KTtjLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0
OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KX1yZXR1cm4gYi5jc3MoYSkuc2hvdygpfSxy
ZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKGMpe2lmKGMucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdy
YXBwZXIiKSlyZXR1cm4gYy5wYXJlbnQoKS5yZXBsYWNlV2l0aChjKTsKK3JldHVybiBjfSxzZXRU
cmFuc2l0aW9uOmZ1bmN0aW9uKGMsYSxiLGQpe2Q9ZHx8e307Zi5lYWNoKGEsZnVuY3Rpb24oZSxn
KXt1bml0PWMuY3NzVW5pdChnKTtpZih1bml0WzBdPjApZFtnXT11bml0WzBdKmIrdW5pdFsxXX0p
O3JldHVybiBkfX0pO2YuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oYyl7dmFyIGE9ay5hcHBs
eSh0aGlzLGFyZ3VtZW50cyksYj17b3B0aW9uczphWzFdLGR1cmF0aW9uOmFbMl0sY2FsbGJhY2s6
YVszXX07YT1iLm9wdGlvbnMubW9kZTt2YXIgZD1mLmVmZmVjdHNbY107aWYoZi5meC5vZmZ8fCFk
KXJldHVybiBhP3RoaXNbYV0oYi5kdXJhdGlvbixiLmNhbGxiYWNrKTp0aGlzLmVhY2goZnVuY3Rp
b24oKXtiLmNhbGxiYWNrJiZiLmNhbGxiYWNrLmNhbGwodGhpcyl9KTtyZXR1cm4gZC5jYWxsKHRo
aXMsYil9LF9zaG93OmYuZm4uc2hvdyxzaG93OmZ1bmN0aW9uKGMpe2lmKG0oYykpcmV0dXJuIHRo
aXMuX3Nob3cuYXBwbHkodGhpcyxhcmd1bWVudHMpOworZWxzZXt2YXIgYT1rLmFwcGx5KHRoaXMs
YXJndW1lbnRzKTthWzFdLm1vZGU9InNob3ciO3JldHVybiB0aGlzLmVmZmVjdC5hcHBseSh0aGlz
LGEpfX0sX2hpZGU6Zi5mbi5oaWRlLGhpZGU6ZnVuY3Rpb24oYyl7aWYobShjKSlyZXR1cm4gdGhp
cy5faGlkZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZWxzZXt2YXIgYT1rLmFwcGx5KHRoaXMsYXJn
dW1lbnRzKTthWzFdLm1vZGU9ImhpZGUiO3JldHVybiB0aGlzLmVmZmVjdC5hcHBseSh0aGlzLGEp
fX0sX190b2dnbGU6Zi5mbi50b2dnbGUsdG9nZ2xlOmZ1bmN0aW9uKGMpe2lmKG0oYyl8fHR5cGVv
ZiBjPT09ImJvb2xlYW4ifHxmLmlzRnVuY3Rpb24oYykpcmV0dXJuIHRoaXMuX190b2dnbGUuYXBw
bHkodGhpcyxhcmd1bWVudHMpO2Vsc2V7dmFyIGE9ay5hcHBseSh0aGlzLGFyZ3VtZW50cyk7YVsx
XS5tb2RlPSJ0b2dnbGUiO3JldHVybiB0aGlzLmVmZmVjdC5hcHBseSh0aGlzLGEpfX0sY3NzVW5p
dDpmdW5jdGlvbihjKXt2YXIgYT10aGlzLmNzcyhjKSwKK2I9W107Zi5lYWNoKFsiZW0iLCJweCIs
IiUiLCJwdCJdLGZ1bmN0aW9uKGQsZSl7aWYoYS5pbmRleE9mKGUpPjApYj1bcGFyc2VGbG9hdChh
KSxlXX0pO3JldHVybiBifX0pO2YuZWFzaW5nLmpzd2luZz1mLmVhc2luZy5zd2luZztmLmV4dGVu
ZChmLmVhc2luZyx7ZGVmOiJlYXNlT3V0UXVhZCIsc3dpbmc6ZnVuY3Rpb24oYyxhLGIsZCxlKXty
ZXR1cm4gZi5lYXNpbmdbZi5lYXNpbmcuZGVmXShjLGEsYixkLGUpfSxlYXNlSW5RdWFkOmZ1bmN0
aW9uKGMsYSxiLGQsZSl7cmV0dXJuIGQqKGEvPWUpKmErYn0sZWFzZU91dFF1YWQ6ZnVuY3Rpb24o
YyxhLGIsZCxlKXtyZXR1cm4tZCooYS89ZSkqKGEtMikrYn0sZWFzZUluT3V0UXVhZDpmdW5jdGlv
bihjLGEsYixkLGUpe2lmKChhLz1lLzIpPDEpcmV0dXJuIGQvMiphKmErYjtyZXR1cm4tZC8yKigt
LWEqKGEtMiktMSkrYn0sZWFzZUluQ3ViaWM6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4gZCoo
YS89ZSkqYSphK2J9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihjLAorYSxiLGQsZSl7cmV0dXJuIGQq
KChhPWEvZS0xKSphKmErMSkrYn0sZWFzZUluT3V0Q3ViaWM6ZnVuY3Rpb24oYyxhLGIsZCxlKXtp
ZigoYS89ZS8yKTwxKXJldHVybiBkLzIqYSphKmErYjtyZXR1cm4gZC8yKigoYS09MikqYSphKzIp
K2J9LGVhc2VJblF1YXJ0OmZ1bmN0aW9uKGMsYSxiLGQsZSl7cmV0dXJuIGQqKGEvPWUpKmEqYSph
K2J9LGVhc2VPdXRRdWFydDpmdW5jdGlvbihjLGEsYixkLGUpe3JldHVybi1kKigoYT1hL2UtMSkq
YSphKmEtMSkrYn0sZWFzZUluT3V0UXVhcnQ6ZnVuY3Rpb24oYyxhLGIsZCxlKXtpZigoYS89ZS8y
KTwxKXJldHVybiBkLzIqYSphKmEqYStiO3JldHVybi1kLzIqKChhLT0yKSphKmEqYS0yKStifSxl
YXNlSW5RdWludDpmdW5jdGlvbihjLGEsYixkLGUpe3JldHVybiBkKihhLz1lKSphKmEqYSphK2J9
LGVhc2VPdXRRdWludDpmdW5jdGlvbihjLGEsYixkLGUpe3JldHVybiBkKigoYT1hL2UtMSkqYSph
KmEqYSsxKStifSxlYXNlSW5PdXRRdWludDpmdW5jdGlvbihjLAorYSxiLGQsZSl7aWYoKGEvPWUv
Mik8MSlyZXR1cm4gZC8yKmEqYSphKmEqYStiO3JldHVybiBkLzIqKChhLT0yKSphKmEqYSphKzIp
K2J9LGVhc2VJblNpbmU6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4tZCpNYXRoLmNvcyhhL2Uq
KE1hdGguUEkvMikpK2QrYn0sZWFzZU91dFNpbmU6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4g
ZCpNYXRoLnNpbihhL2UqKE1hdGguUEkvMikpK2J9LGVhc2VJbk91dFNpbmU6ZnVuY3Rpb24oYyxh
LGIsZCxlKXtyZXR1cm4tZC8yKihNYXRoLmNvcyhNYXRoLlBJKmEvZSktMSkrYn0sZWFzZUluRXhw
bzpmdW5jdGlvbihjLGEsYixkLGUpe3JldHVybiBhPT0wP2I6ZCpNYXRoLnBvdygyLDEwKihhL2Ut
MSkpK2J9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKGMsYSxiLGQsZSl7cmV0dXJuIGE9PWU/YitkOmQq
KC1NYXRoLnBvdygyLC0xMCphL2UpKzEpK2J9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oYyxhLGIs
ZCxlKXtpZihhPT0wKXJldHVybiBiO2lmKGE9PQorZSlyZXR1cm4gYitkO2lmKChhLz1lLzIpPDEp
cmV0dXJuIGQvMipNYXRoLnBvdygyLDEwKihhLTEpKStiO3JldHVybiBkLzIqKC1NYXRoLnBvdygy
LC0xMCotLWEpKzIpK2J9LGVhc2VJbkNpcmM6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4tZCoo
TWF0aC5zcXJ0KDEtKGEvPWUpKmEpLTEpK2J9LGVhc2VPdXRDaXJjOmZ1bmN0aW9uKGMsYSxiLGQs
ZSl7cmV0dXJuIGQqTWF0aC5zcXJ0KDEtKGE9YS9lLTEpKmEpK2J9LGVhc2VJbk91dENpcmM6ZnVu
Y3Rpb24oYyxhLGIsZCxlKXtpZigoYS89ZS8yKTwxKXJldHVybi1kLzIqKE1hdGguc3FydCgxLWEq
YSktMSkrYjtyZXR1cm4gZC8yKihNYXRoLnNxcnQoMS0oYS09MikqYSkrMSkrYn0sZWFzZUluRWxh
c3RpYzpmdW5jdGlvbihjLGEsYixkLGUpe2M9MS43MDE1ODt2YXIgZz0wLGg9ZDtpZihhPT0wKXJl
dHVybiBiO2lmKChhLz1lKT09MSlyZXR1cm4gYitkO2d8fChnPWUqMC4zKTtpZihoPE1hdGguYWJz
KGQpKXtoPWQ7Yz1nLzR9ZWxzZSBjPQorZy8oMipNYXRoLlBJKSpNYXRoLmFzaW4oZC9oKTtyZXR1
cm4tKGgqTWF0aC5wb3coMiwxMCooYS09MSkpKk1hdGguc2luKChhKmUtYykqMipNYXRoLlBJL2cp
KStifSxlYXNlT3V0RWxhc3RpYzpmdW5jdGlvbihjLGEsYixkLGUpe2M9MS43MDE1ODt2YXIgZz0w
LGg9ZDtpZihhPT0wKXJldHVybiBiO2lmKChhLz1lKT09MSlyZXR1cm4gYitkO2d8fChnPWUqMC4z
KTtpZihoPE1hdGguYWJzKGQpKXtoPWQ7Yz1nLzR9ZWxzZSBjPWcvKDIqTWF0aC5QSSkqTWF0aC5h
c2luKGQvaCk7cmV0dXJuIGgqTWF0aC5wb3coMiwtMTAqYSkqTWF0aC5zaW4oKGEqZS1jKSoyKk1h
dGguUEkvZykrZCtifSxlYXNlSW5PdXRFbGFzdGljOmZ1bmN0aW9uKGMsYSxiLGQsZSl7Yz0xLjcw
MTU4O3ZhciBnPTAsaD1kO2lmKGE9PTApcmV0dXJuIGI7aWYoKGEvPWUvMik9PTIpcmV0dXJuIGIr
ZDtnfHwoZz1lKjAuMyoxLjUpO2lmKGg8TWF0aC5hYnMoZCkpe2g9ZDtjPWcvNH1lbHNlIGM9Zy8o
MipNYXRoLlBJKSpNYXRoLmFzaW4oZC8KK2gpO2lmKGE8MSlyZXR1cm4tMC41KmgqTWF0aC5wb3co
MiwxMCooYS09MSkpKk1hdGguc2luKChhKmUtYykqMipNYXRoLlBJL2cpK2I7cmV0dXJuIGgqTWF0
aC5wb3coMiwtMTAqKGEtPTEpKSpNYXRoLnNpbigoYSplLWMpKjIqTWF0aC5QSS9nKSowLjUrZCti
fSxlYXNlSW5CYWNrOmZ1bmN0aW9uKGMsYSxiLGQsZSxnKXtpZihnPT1qKWc9MS43MDE1ODtyZXR1
cm4gZCooYS89ZSkqYSooKGcrMSkqYS1nKStifSxlYXNlT3V0QmFjazpmdW5jdGlvbihjLGEsYixk
LGUsZyl7aWYoZz09ailnPTEuNzAxNTg7cmV0dXJuIGQqKChhPWEvZS0xKSphKigoZysxKSphK2cp
KzEpK2J9LGVhc2VJbk91dEJhY2s6ZnVuY3Rpb24oYyxhLGIsZCxlLGcpe2lmKGc9PWopZz0xLjcw
MTU4O2lmKChhLz1lLzIpPDEpcmV0dXJuIGQvMiphKmEqKCgoZyo9MS41MjUpKzEpKmEtZykrYjty
ZXR1cm4gZC8yKigoYS09MikqYSooKChnKj0xLjUyNSkrMSkqYStnKSsyKStifSxlYXNlSW5Cb3Vu
Y2U6ZnVuY3Rpb24oYywKK2EsYixkLGUpe3JldHVybiBkLWYuZWFzaW5nLmVhc2VPdXRCb3VuY2Uo
YyxlLWEsMCxkLGUpK2J9LGVhc2VPdXRCb3VuY2U6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4o
YS89ZSk8MS8yLjc1P2QqNy41NjI1KmEqYStiOmE8Mi8yLjc1P2QqKDcuNTYyNSooYS09MS41LzIu
NzUpKmErMC43NSkrYjphPDIuNS8yLjc1P2QqKDcuNTYyNSooYS09Mi4yNS8yLjc1KSphKzAuOTM3
NSkrYjpkKig3LjU2MjUqKGEtPTIuNjI1LzIuNzUpKmErMC45ODQzNzUpK2J9LGVhc2VJbk91dEJv
dW5jZTpmdW5jdGlvbihjLGEsYixkLGUpe2lmKGE8ZS8yKXJldHVybiBmLmVhc2luZy5lYXNlSW5C
b3VuY2UoYyxhKjIsMCxkLGUpKjAuNStiO3JldHVybiBmLmVhc2luZy5lYXNlT3V0Qm91bmNlKGMs
YSoyLWUsMCxkLGUpKjAuNStkKjAuNStifX0pfShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkg
RWZmZWN0cyBCbGluZCAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQg
KGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBN
SVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vu
c2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMvQmxpbmQKKyAqCisg
KiBEZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVjdHMuY29yZS5qcworICovCisoZnVuY3Rpb24oYil7
Yi5lZmZlY3RzLmJsaW5kPWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7
dmFyIGE9Yih0aGlzKSxnPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQi
XSxmPWIuZWZmZWN0cy5zZXRNb2RlKGEsYy5vcHRpb25zLm1vZGV8fCJoaWRlIiksZD1jLm9wdGlv
bnMuZGlyZWN0aW9ufHwidmVydGljYWwiO2IuZWZmZWN0cy5zYXZlKGEsZyk7YS5zaG93KCk7dmFy
IGU9Yi5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoYSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIn0pLGg9
ZD09InZlcnRpY2FsIj8iaGVpZ2h0Ijoid2lkdGgiO2Q9ZD09InZlcnRpY2FsIj9lLmhlaWdodCgp
OmUud2lkdGgoKTtmPT0ic2hvdyImJmUuY3NzKGgsMCk7dmFyIGk9e307aVtoXT1mPT0ic2hvdyI/
ZDowO2UuYW5pbWF0ZShpLGMuZHVyYXRpb24sYy5vcHRpb25zLmVhc2luZyxmdW5jdGlvbigpe2Y9
PSJoaWRlIiYmYS5oaWRlKCk7Yi5lZmZlY3RzLnJlc3RvcmUoYSwKK2cpO2IuZWZmZWN0cy5yZW1v
dmVXcmFwcGVyKGEpO2MuY2FsbGJhY2smJmMuY2FsbGJhY2suYXBwbHkoYVswXSxhcmd1bWVudHMp
O2EuZGVxdWV1ZSgpfSl9KX19KShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkgRWZmZWN0cyBC
b3VuY2UgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8v
anF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQ
TCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgor
ICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9FZmZlY3RzL0JvdW5jZQorICoKKyAqIERlcGVu
ZHM6CisgKglqcXVlcnkuZWZmZWN0cy5jb3JlLmpzCisgKi8KKyhmdW5jdGlvbihlKXtlLmVmZmVj
dHMuYm91bmNlPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGE9
ZSh0aGlzKSxsPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSxoPWUu
ZWZmZWN0cy5zZXRNb2RlKGEsYi5vcHRpb25zLm1vZGV8fCJlZmZlY3QiKSxkPWIub3B0aW9ucy5k
aXJlY3Rpb258fCJ1cCIsYz1iLm9wdGlvbnMuZGlzdGFuY2V8fDIwLG09Yi5vcHRpb25zLnRpbWVz
fHw1LGk9Yi5kdXJhdGlvbnx8MjUwOy9zaG93fGhpZGUvLnRlc3QoaCkmJmwucHVzaCgib3BhY2l0
eSIpO2UuZWZmZWN0cy5zYXZlKGEsbCk7YS5zaG93KCk7ZS5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIo
YSk7dmFyIGY9ZD09InVwInx8ZD09ImRvd24iPyJ0b3AiOiJsZWZ0IjtkPWQ9PSJ1cCJ8fGQ9PSJs
ZWZ0Ij8icG9zIjoibmVnIjtjPWIub3B0aW9ucy5kaXN0YW5jZXx8KGY9PSJ0b3AiP2Eub3V0ZXJI
ZWlnaHQoe21hcmdpbjp0cnVlfSkvMzphLm91dGVyV2lkdGgoe21hcmdpbjp0cnVlfSkvCiszKTtp
ZihoPT0ic2hvdyIpYS5jc3MoIm9wYWNpdHkiLDApLmNzcyhmLGQ9PSJwb3MiPy1jOmMpO2lmKGg9
PSJoaWRlIiljLz1tKjI7aCE9ImhpZGUiJiZtLS07aWYoaD09InNob3ciKXt2YXIgZz17b3BhY2l0
eToxfTtnW2ZdPShkPT0icG9zIj8iKz0iOiItPSIpK2M7YS5hbmltYXRlKGcsaS8yLGIub3B0aW9u
cy5lYXNpbmcpO2MvPTI7bS0tfWZvcihnPTA7ZzxtO2crKyl7dmFyIGo9e30saz17fTtqW2ZdPShk
PT0icG9zIj8iLT0iOiIrPSIpK2M7a1tmXT0oZD09InBvcyI/Iis9IjoiLT0iKStjO2EuYW5pbWF0
ZShqLGkvMixiLm9wdGlvbnMuZWFzaW5nKS5hbmltYXRlKGssaS8yLGIub3B0aW9ucy5lYXNpbmcp
O2M9aD09ImhpZGUiP2MqMjpjLzJ9aWYoaD09ImhpZGUiKXtnPXtvcGFjaXR5OjB9O2dbZl09KGQ9
PSJwb3MiPyItPSI6Iis9IikrYzthLmFuaW1hdGUoZyxpLzIsYi5vcHRpb25zLmVhc2luZyxmdW5j
dGlvbigpe2EuaGlkZSgpO2UuZWZmZWN0cy5yZXN0b3JlKGEsbCk7ZS5lZmZlY3RzLnJlbW92ZVdy
YXBwZXIoYSk7CitiLmNhbGxiYWNrJiZiLmNhbGxiYWNrLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0p
fWVsc2V7aj17fTtrPXt9O2pbZl09KGQ9PSJwb3MiPyItPSI6Iis9IikrYztrW2ZdPShkPT0icG9z
Ij8iKz0iOiItPSIpK2M7YS5hbmltYXRlKGosaS8yLGIub3B0aW9ucy5lYXNpbmcpLmFuaW1hdGUo
ayxpLzIsYi5vcHRpb25zLmVhc2luZyxmdW5jdGlvbigpe2UuZWZmZWN0cy5yZXN0b3JlKGEsbCk7
ZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoYSk7Yi5jYWxsYmFjayYmYi5jYWxsYmFjay5hcHBseSh0
aGlzLGFyZ3VtZW50cyl9KX1hLnF1ZXVlKCJmeCIsZnVuY3Rpb24oKXthLmRlcXVldWUoKX0pO2Eu
ZGVxdWV1ZSgpfSl9fSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIEVmZmVjdHMgQ2xpcCAx
LjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1
aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNp
b24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRw
Oi8vZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMvQ2xpcAorICoKKyAqIERlcGVuZHM6CisgKglq
cXVlcnkuZWZmZWN0cy5jb3JlLmpzCisgKi8KKyhmdW5jdGlvbihiKXtiLmVmZmVjdHMuY2xpcD1m
dW5jdGlvbihlKXtyZXR1cm4gdGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBhPWIodGhpcyksaT1b
InBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiaGVpZ2h0Iiwid2lkdGgi
XSxmPWIuZWZmZWN0cy5zZXRNb2RlKGEsZS5vcHRpb25zLm1vZGV8fCJoaWRlIiksYz1lLm9wdGlv
bnMuZGlyZWN0aW9ufHwidmVydGljYWwiO2IuZWZmZWN0cy5zYXZlKGEsaSk7YS5zaG93KCk7dmFy
IGQ9Yi5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoYSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIn0pO2Q9
YVswXS50YWdOYW1lPT0iSU1HIj9kOmE7dmFyIGc9e3NpemU6Yz09InZlcnRpY2FsIj8iaGVpZ2h0
Ijoid2lkdGgiLHBvc2l0aW9uOmM9PSJ2ZXJ0aWNhbCI/InRvcCI6ImxlZnQifTtjPWM9PSJ2ZXJ0
aWNhbCI/ZC5oZWlnaHQoKTpkLndpZHRoKCk7aWYoZj09InNob3ciKXtkLmNzcyhnLnNpemUsMCk7
ZC5jc3MoZy5wb3NpdGlvbiwKK2MvMil9dmFyIGg9e307aFtnLnNpemVdPWY9PSJzaG93Ij9jOjA7
aFtnLnBvc2l0aW9uXT1mPT0ic2hvdyI/MDpjLzI7ZC5hbmltYXRlKGgse3F1ZXVlOmZhbHNlLGR1
cmF0aW9uOmUuZHVyYXRpb24sZWFzaW5nOmUub3B0aW9ucy5lYXNpbmcsY29tcGxldGU6ZnVuY3Rp
b24oKXtmPT0iaGlkZSImJmEuaGlkZSgpO2IuZWZmZWN0cy5yZXN0b3JlKGEsaSk7Yi5lZmZlY3Rz
LnJlbW92ZVdyYXBwZXIoYSk7ZS5jYWxsYmFjayYmZS5jYWxsYmFjay5hcHBseShhWzBdLGFyZ3Vt
ZW50cyk7YS5kZXF1ZXVlKCl9fSl9KX19KShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkgRWZm
ZWN0cyBEcm9wIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0
cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBv
ciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQor
ICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRWZmZWN0cy9Ecm9wCisgKgorICogRGVw
ZW5kczoKKyAqCWpxdWVyeS5lZmZlY3RzLmNvcmUuanMKKyAqLworKGZ1bmN0aW9uKGMpe2MuZWZm
ZWN0cy5kcm9wPWZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGE9
Yyh0aGlzKSxoPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJvcGFj
aXR5Il0sZT1jLmVmZmVjdHMuc2V0TW9kZShhLGQub3B0aW9ucy5tb2RlfHwiaGlkZSIpLGI9ZC5v
cHRpb25zLmRpcmVjdGlvbnx8ImxlZnQiO2MuZWZmZWN0cy5zYXZlKGEsaCk7YS5zaG93KCk7Yy5l
ZmZlY3RzLmNyZWF0ZVdyYXBwZXIoYSk7dmFyIGY9Yj09InVwInx8Yj09ImRvd24iPyJ0b3AiOiJs
ZWZ0IjtiPWI9PSJ1cCJ8fGI9PSJsZWZ0Ij8icG9zIjoibmVnIjt2YXIgZz1kLm9wdGlvbnMuZGlz
dGFuY2V8fChmPT0idG9wIj9hLm91dGVySGVpZ2h0KHttYXJnaW46dHJ1ZX0pLzI6YS5vdXRlcldp
ZHRoKHttYXJnaW46dHJ1ZX0pLzIpO2lmKGU9PSJzaG93IilhLmNzcygib3BhY2l0eSIsMCkuY3Nz
KGYsYj09InBvcyI/LWc6Zyk7dmFyIGk9e29wYWNpdHk6ZT09Cisic2hvdyI/MTowfTtpW2ZdPShl
PT0ic2hvdyI/Yj09InBvcyI/Iis9IjoiLT0iOmI9PSJwb3MiPyItPSI6Iis9IikrZzthLmFuaW1h
dGUoaSx7cXVldWU6ZmFsc2UsZHVyYXRpb246ZC5kdXJhdGlvbixlYXNpbmc6ZC5vcHRpb25zLmVh
c2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe2U9PSJoaWRlIiYmYS5oaWRlKCk7Yy5lZmZlY3RzLnJl
c3RvcmUoYSxoKTtjLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihhKTtkLmNhbGxiYWNrJiZkLmNhbGxi
YWNrLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthLmRlcXVldWUoKX19KX0pfX0pKGpRdWVyeSk7Cis7
LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIEV4cGxvZGUgMS44LjEwCisgKgorICogQ29weXJpZ2h0
IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBs
aWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRw
Oi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9F
ZmZlY3RzL0V4cGxvZGUKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVjdHMuY29yZS5q
cworICovCisoZnVuY3Rpb24oail7ai5lZmZlY3RzLmV4cGxvZGU9ZnVuY3Rpb24oYSl7cmV0dXJu
IHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgYz1hLm9wdGlvbnMucGllY2VzP01hdGgucm91bmQo
TWF0aC5zcXJ0KGEub3B0aW9ucy5waWVjZXMpKTozLGQ9YS5vcHRpb25zLnBpZWNlcz9NYXRoLnJv
dW5kKE1hdGguc3FydChhLm9wdGlvbnMucGllY2VzKSk6MzthLm9wdGlvbnMubW9kZT1hLm9wdGlv
bnMubW9kZT09InRvZ2dsZSI/aih0aGlzKS5pcygiOnZpc2libGUiKT8iaGlkZSI6InNob3ciOmEu
b3B0aW9ucy5tb2RlO3ZhciBiPWoodGhpcykuc2hvdygpLmNzcygidmlzaWJpbGl0eSIsImhpZGRl
biIpLGc9Yi5vZmZzZXQoKTtnLnRvcC09cGFyc2VJbnQoYi5jc3MoIm1hcmdpblRvcCIpLDEwKXx8
MDtnLmxlZnQtPXBhcnNlSW50KGIuY3NzKCJtYXJnaW5MZWZ0IiksMTApfHwwO2Zvcih2YXIgaD1i
Lm91dGVyV2lkdGgodHJ1ZSksaT1iLm91dGVySGVpZ2h0KHRydWUpLGU9MDtlPGM7ZSsrKWZvcih2
YXIgZj0KKzA7ZjxkO2YrKyliLmNsb25lKCkuYXBwZW5kVG8oImJvZHkiKS53cmFwKCI8ZGl2Pjwv
ZGl2PiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJ2aXNpYmxlIixsZWZ0
Oi1mKihoL2QpLHRvcDotZSooaS9jKX0pLnBhcmVudCgpLmFkZENsYXNzKCJ1aS1lZmZlY3RzLWV4
cGxvZGUiKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsb3ZlcmZsb3c6ImhpZGRlbiIsd2lkdGg6
aC9kLGhlaWdodDppL2MsbGVmdDpnLmxlZnQrZiooaC9kKSsoYS5vcHRpb25zLm1vZGU9PSJzaG93
Ij8oZi1NYXRoLmZsb29yKGQvMikpKihoL2QpOjApLHRvcDpnLnRvcCtlKihpL2MpKyhhLm9wdGlv
bnMubW9kZT09InNob3ciPyhlLU1hdGguZmxvb3IoYy8yKSkqKGkvYyk6MCksb3BhY2l0eTphLm9w
dGlvbnMubW9kZT09InNob3ciPzA6MX0pLmFuaW1hdGUoe2xlZnQ6Zy5sZWZ0K2YqKGgvZCkrKGEu
b3B0aW9ucy5tb2RlPT0ic2hvdyI/MDooZi1NYXRoLmZsb29yKGQvMikpKihoL2QpKSx0b3A6Zy50
b3ArCitlKihpL2MpKyhhLm9wdGlvbnMubW9kZT09InNob3ciPzA6KGUtTWF0aC5mbG9vcihjLzIp
KSooaS9jKSksb3BhY2l0eTphLm9wdGlvbnMubW9kZT09InNob3ciPzE6MH0sYS5kdXJhdGlvbnx8
NTAwKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5vcHRpb25zLm1vZGU9PSJzaG93Ij9iLmNzcyh7
dmlzaWJpbGl0eToidmlzaWJsZSJ9KTpiLmNzcyh7dmlzaWJpbGl0eToidmlzaWJsZSJ9KS5oaWRl
KCk7YS5jYWxsYmFjayYmYS5jYWxsYmFjay5hcHBseShiWzBdKTtiLmRlcXVldWUoKTtqKCJkaXYu
dWktZWZmZWN0cy1leHBsb2RlIikucmVtb3ZlKCl9LGEuZHVyYXRpb258fDUwMCl9KX19KShqUXVl
cnkpOworOy8qCisgKiBqUXVlcnkgVUkgRWZmZWN0cyBGYWRlIDEuOC4xMAorICoKKyAqIENvcHly
aWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1
YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICog
aHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20v
VUkvRWZmZWN0cy9GYWRlCisgKgorICogRGVwZW5kczoKKyAqCWpxdWVyeS5lZmZlY3RzLmNvcmUu
anMKKyAqLworKGZ1bmN0aW9uKGIpe2IuZWZmZWN0cy5mYWRlPWZ1bmN0aW9uKGEpe3JldHVybiB0
aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGM9Yih0aGlzKSxkPWIuZWZmZWN0cy5zZXRNb2RlKGMs
YS5vcHRpb25zLm1vZGV8fCJoaWRlIik7Yy5hbmltYXRlKHtvcGFjaXR5OmR9LHtxdWV1ZTpmYWxz
ZSxkdXJhdGlvbjphLmR1cmF0aW9uLGVhc2luZzphLm9wdGlvbnMuZWFzaW5nLGNvbXBsZXRlOmZ1
bmN0aW9uKCl7YS5jYWxsYmFjayYmYS5jYWxsYmFjay5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Yy5k
ZXF1ZXVlKCl9fSl9KX19KShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkgRWZmZWN0cyBGb2xk
IDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVy
eXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVy
c2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0
dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRWZmZWN0cy9Gb2xkCisgKgorICogRGVwZW5kczoKKyAq
CWpxdWVyeS5lZmZlY3RzLmNvcmUuanMKKyAqLworKGZ1bmN0aW9uKGMpe2MuZWZmZWN0cy5mb2xk
PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKSxq
PVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSxkPWMuZWZmZWN0cy5z
ZXRNb2RlKGIsYS5vcHRpb25zLm1vZGV8fCJoaWRlIiksZz1hLm9wdGlvbnMuc2l6ZXx8MTUsaD0h
IWEub3B0aW9ucy5ob3JpekZpcnN0LGs9YS5kdXJhdGlvbj9hLmR1cmF0aW9uLzI6Yy5meC5zcGVl
ZHMuX2RlZmF1bHQvMjtjLmVmZmVjdHMuc2F2ZShiLGopO2Iuc2hvdygpO3ZhciBlPWMuZWZmZWN0
cy5jcmVhdGVXcmFwcGVyKGIpLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxmPWQ9PSJzaG93IiE9
aCxsPWY/WyJ3aWR0aCIsImhlaWdodCJdOlsiaGVpZ2h0Iiwid2lkdGgiXTtmPWY/W2Uud2lkdGgo
KSxlLmhlaWdodCgpXTpbZS5oZWlnaHQoKSxlLndpZHRoKCldO3ZhciBpPS8oWzAtOV0rKSUvLmV4
ZWMoZyk7aWYoaSlnPXBhcnNlSW50KGlbMV0sCisxMCkvMTAwKmZbZD09ImhpZGUiPzA6MV07aWYo
ZD09InNob3ciKWUuY3NzKGg/e2hlaWdodDowLHdpZHRoOmd9OntoZWlnaHQ6Zyx3aWR0aDowfSk7
aD17fTtpPXt9O2hbbFswXV09ZD09InNob3ciP2ZbMF06ZztpW2xbMV1dPWQ9PSJzaG93Ij9mWzFd
OjA7ZS5hbmltYXRlKGgsayxhLm9wdGlvbnMuZWFzaW5nKS5hbmltYXRlKGksayxhLm9wdGlvbnMu
ZWFzaW5nLGZ1bmN0aW9uKCl7ZD09ImhpZGUiJiZiLmhpZGUoKTtjLmVmZmVjdHMucmVzdG9yZShi
LGopO2MuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKGIpO2EuY2FsbGJhY2smJmEuY2FsbGJhY2suYXBw
bHkoYlswXSxhcmd1bWVudHMpO2IuZGVxdWV1ZSgpfSl9KX19KShqUXVlcnkpOworOy8qCisgKiBq
UXVlcnkgVUkgRWZmZWN0cyBIaWdobGlnaHQgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEs
IEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNl
ZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1
ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9FZmZlY3Rz
L0hpZ2hsaWdodAorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkuZWZmZWN0cy5jb3JlLmpzCisg
Ki8KKyhmdW5jdGlvbihiKXtiLmVmZmVjdHMuaGlnaGxpZ2h0PWZ1bmN0aW9uKGMpe3JldHVybiB0
aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGE9Yih0aGlzKSxlPVsiYmFja2dyb3VuZEltYWdlIiwi
YmFja2dyb3VuZENvbG9yIiwib3BhY2l0eSJdLGQ9Yi5lZmZlY3RzLnNldE1vZGUoYSxjLm9wdGlv
bnMubW9kZXx8InNob3ciKSxmPXtiYWNrZ3JvdW5kQ29sb3I6YS5jc3MoImJhY2tncm91bmRDb2xv
ciIpfTtpZihkPT0iaGlkZSIpZi5vcGFjaXR5PTA7Yi5lZmZlY3RzLnNhdmUoYSxlKTthLnNob3co
KS5jc3Moe2JhY2tncm91bmRJbWFnZToibm9uZSIsYmFja2dyb3VuZENvbG9yOmMub3B0aW9ucy5j
b2xvcnx8IiNmZmZmOTkifSkuYW5pbWF0ZShmLHtxdWV1ZTpmYWxzZSxkdXJhdGlvbjpjLmR1cmF0
aW9uLGVhc2luZzpjLm9wdGlvbnMuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ZD09ImhpZGUi
JiZhLmhpZGUoKTtiLmVmZmVjdHMucmVzdG9yZShhLGUpO2Q9PSJzaG93IiYmIWIuc3VwcG9ydC5v
cGFjaXR5JiYKK3RoaXMuc3R5bGUucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKTtjLmNhbGxiYWNr
JiZjLmNhbGxiYWNrLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthLmRlcXVldWUoKX19KX0pfX0pKGpR
dWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIFB1bHNhdGUgMS44LjEwCisgKgorICog
Q29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQor
ICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMu
CisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5
LmNvbS9VSS9FZmZlY3RzL1B1bHNhdGUKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVj
dHMuY29yZS5qcworICovCisoZnVuY3Rpb24oZCl7ZC5lZmZlY3RzLnB1bHNhdGU9ZnVuY3Rpb24o
YSl7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgYj1kKHRoaXMpLGM9ZC5lZmZlY3Rz
LnNldE1vZGUoYixhLm9wdGlvbnMubW9kZXx8InNob3ciKTt0aW1lcz0oYS5vcHRpb25zLnRpbWVz
fHw1KSoyLTE7ZHVyYXRpb249YS5kdXJhdGlvbj9hLmR1cmF0aW9uLzI6ZC5meC5zcGVlZHMuX2Rl
ZmF1bHQvMjtpc1Zpc2libGU9Yi5pcygiOnZpc2libGUiKTthbmltYXRlVG89MDtpZighaXNWaXNp
YmxlKXtiLmNzcygib3BhY2l0eSIsMCkuc2hvdygpO2FuaW1hdGVUbz0xfWlmKGM9PSJoaWRlIiYm
aXNWaXNpYmxlfHxjPT0ic2hvdyImJiFpc1Zpc2libGUpdGltZXMtLTtmb3IoYz0wO2M8dGltZXM7
YysrKXtiLmFuaW1hdGUoe29wYWNpdHk6YW5pbWF0ZVRvfSxkdXJhdGlvbixhLm9wdGlvbnMuZWFz
aW5nKTthbmltYXRlVG89KGFuaW1hdGVUbysxKSUyfWIuYW5pbWF0ZSh7b3BhY2l0eTphbmltYXRl
VG99LGR1cmF0aW9uLAorYS5vcHRpb25zLmVhc2luZyxmdW5jdGlvbigpe2FuaW1hdGVUbz09MCYm
Yi5oaWRlKCk7YS5jYWxsYmFjayYmYS5jYWxsYmFjay5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTti
LnF1ZXVlKCJmeCIsZnVuY3Rpb24oKXtiLmRlcXVldWUoKX0pLmRlcXVldWUoKX0pfX0pKGpRdWVy
eSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIFNjYWxlIDEuOC4xMAorICoKKyAqIENvcHly
aWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1
YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICog
aHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20v
VUkvRWZmZWN0cy9TY2FsZQorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkuZWZmZWN0cy5jb3Jl
LmpzCisgKi8KKyhmdW5jdGlvbihjKXtjLmVmZmVjdHMucHVmZj1mdW5jdGlvbihiKXtyZXR1cm4g
dGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBhPWModGhpcyksZT1jLmVmZmVjdHMuc2V0TW9kZShh
LGIub3B0aW9ucy5tb2RlfHwiaGlkZSIpLGc9cGFyc2VJbnQoYi5vcHRpb25zLnBlcmNlbnQsMTAp
fHwxNTAsaD1nLzEwMCxpPXtoZWlnaHQ6YS5oZWlnaHQoKSx3aWR0aDphLndpZHRoKCl9O2MuZXh0
ZW5kKGIub3B0aW9ucyx7ZmFkZTp0cnVlLG1vZGU6ZSxwZXJjZW50OmU9PSJoaWRlIj9nOjEwMCxm
cm9tOmU9PSJoaWRlIj9pOntoZWlnaHQ6aS5oZWlnaHQqaCx3aWR0aDppLndpZHRoKmh9fSk7YS5l
ZmZlY3QoInNjYWxlIixiLm9wdGlvbnMsYi5kdXJhdGlvbixiLmNhbGxiYWNrKTthLmRlcXVldWUo
KX0pfTtjLmVmZmVjdHMuc2NhbGU9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rp
b24oKXt2YXIgYT1jKHRoaXMpLGU9Yy5leHRlbmQodHJ1ZSx7fSxiLm9wdGlvbnMpLGc9Yy5lZmZl
Y3RzLnNldE1vZGUoYSwKK2Iub3B0aW9ucy5tb2RlfHwiZWZmZWN0IiksaD1wYXJzZUludChiLm9w
dGlvbnMucGVyY2VudCwxMCl8fChwYXJzZUludChiLm9wdGlvbnMucGVyY2VudCwxMCk9PTA/MDpn
PT0iaGlkZSI/MDoxMDApLGk9Yi5vcHRpb25zLmRpcmVjdGlvbnx8ImJvdGgiLGY9Yi5vcHRpb25z
Lm9yaWdpbjtpZihnIT0iZWZmZWN0Iil7ZS5vcmlnaW49Znx8WyJtaWRkbGUiLCJjZW50ZXIiXTtl
LnJlc3RvcmU9dHJ1ZX1mPXtoZWlnaHQ6YS5oZWlnaHQoKSx3aWR0aDphLndpZHRoKCl9O2EuZnJv
bT1iLm9wdGlvbnMuZnJvbXx8KGc9PSJzaG93Ij97aGVpZ2h0OjAsd2lkdGg6MH06Zik7aD17eTpp
IT0iaG9yaXpvbnRhbCI/aC8xMDA6MSx4OmkhPSJ2ZXJ0aWNhbCI/aC8xMDA6MX07YS50bz17aGVp
Z2h0OmYuaGVpZ2h0KmgueSx3aWR0aDpmLndpZHRoKmgueH07aWYoYi5vcHRpb25zLmZhZGUpe2lm
KGc9PSJzaG93Iil7YS5mcm9tLm9wYWNpdHk9MDthLnRvLm9wYWNpdHk9MX1pZihnPT0iaGlkZSIp
e2EuZnJvbS5vcGFjaXR5PQorMTthLnRvLm9wYWNpdHk9MH19ZS5mcm9tPWEuZnJvbTtlLnRvPWEu
dG87ZS5tb2RlPWc7YS5lZmZlY3QoInNpemUiLGUsYi5kdXJhdGlvbixiLmNhbGxiYWNrKTthLmRl
cXVldWUoKX0pfTtjLmVmZmVjdHMuc2l6ZT1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5xdWV1ZShm
dW5jdGlvbigpe3ZhciBhPWModGhpcyksZT1bInBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVm
dCIsInJpZ2h0Iiwid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyIsIm9wYWNpdHkiXSxnPVsicG9z
aXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJvdmVyZmxvdyIsIm9wYWNpdHki
XSxoPVsid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyJdLGk9WyJmb250U2l6ZSJdLGY9WyJib3Jk
ZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0
b20iXSxrPVsiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHRXaWR0aCIsInBhZGRpbmdMZWZ0
IiwicGFkZGluZ1JpZ2h0Il0sCitwPWMuZWZmZWN0cy5zZXRNb2RlKGEsYi5vcHRpb25zLm1vZGV8
fCJlZmZlY3QiKSxuPWIub3B0aW9ucy5yZXN0b3JlfHxmYWxzZSxtPWIub3B0aW9ucy5zY2FsZXx8
ImJvdGgiLGw9Yi5vcHRpb25zLm9yaWdpbixqPXtoZWlnaHQ6YS5oZWlnaHQoKSx3aWR0aDphLndp
ZHRoKCl9O2EuZnJvbT1iLm9wdGlvbnMuZnJvbXx8ajthLnRvPWIub3B0aW9ucy50b3x8ajtpZihs
KXtsPWMuZWZmZWN0cy5nZXRCYXNlbGluZShsLGopO2EuZnJvbS50b3A9KGouaGVpZ2h0LWEuZnJv
bS5oZWlnaHQpKmwueTthLmZyb20ubGVmdD0oai53aWR0aC1hLmZyb20ud2lkdGgpKmwueDthLnRv
LnRvcD0oai5oZWlnaHQtYS50by5oZWlnaHQpKmwueTthLnRvLmxlZnQ9KGoud2lkdGgtYS50by53
aWR0aCkqbC54fXZhciBkPXtmcm9tOnt5OmEuZnJvbS5oZWlnaHQvai5oZWlnaHQseDphLmZyb20u
d2lkdGgvai53aWR0aH0sdG86e3k6YS50by5oZWlnaHQvai5oZWlnaHQseDphLnRvLndpZHRoL2ou
d2lkdGh9fTsKK2lmKG09PSJib3gifHxtPT0iYm90aCIpe2lmKGQuZnJvbS55IT1kLnRvLnkpe2U9
ZS5jb25jYXQoZik7YS5mcm9tPWMuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGEsZixkLmZyb20ueSxh
LmZyb20pO2EudG89Yy5lZmZlY3RzLnNldFRyYW5zaXRpb24oYSxmLGQudG8ueSxhLnRvKX1pZihk
LmZyb20ueCE9ZC50by54KXtlPWUuY29uY2F0KGspO2EuZnJvbT1jLmVmZmVjdHMuc2V0VHJhbnNp
dGlvbihhLGssZC5mcm9tLngsYS5mcm9tKTthLnRvPWMuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGEs
ayxkLnRvLngsYS50byl9fWlmKG09PSJjb250ZW50Inx8bT09ImJvdGgiKWlmKGQuZnJvbS55IT1k
LnRvLnkpe2U9ZS5jb25jYXQoaSk7YS5mcm9tPWMuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGEsaSxk
LmZyb20ueSxhLmZyb20pO2EudG89Yy5lZmZlY3RzLnNldFRyYW5zaXRpb24oYSxpLGQudG8ueSxh
LnRvKX1jLmVmZmVjdHMuc2F2ZShhLG4/ZTpnKTthLnNob3coKTtjLmVmZmVjdHMuY3JlYXRlV3Jh
cHBlcihhKTsKK2EuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLmNzcyhhLmZyb20pO2lmKG09PSJj
b250ZW50Inx8bT09ImJvdGgiKXtmPWYuY29uY2F0KFsibWFyZ2luVG9wIiwibWFyZ2luQm90dG9t
Il0pLmNvbmNhdChpKTtrPWsuY29uY2F0KFsibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0Il0pO2g9
ZS5jb25jYXQoZikuY29uY2F0KGspO2EuZmluZCgiKlt3aWR0aF0iKS5lYWNoKGZ1bmN0aW9uKCl7
Y2hpbGQ9Yyh0aGlzKTtuJiZjLmVmZmVjdHMuc2F2ZShjaGlsZCxoKTt2YXIgbz17aGVpZ2h0OmNo
aWxkLmhlaWdodCgpLHdpZHRoOmNoaWxkLndpZHRoKCl9O2NoaWxkLmZyb209e2hlaWdodDpvLmhl
aWdodCpkLmZyb20ueSx3aWR0aDpvLndpZHRoKmQuZnJvbS54fTtjaGlsZC50bz17aGVpZ2h0Om8u
aGVpZ2h0KmQudG8ueSx3aWR0aDpvLndpZHRoKmQudG8ueH07aWYoZC5mcm9tLnkhPWQudG8ueSl7
Y2hpbGQuZnJvbT1jLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihjaGlsZCxmLGQuZnJvbS55LGNoaWxk
LmZyb20pOworY2hpbGQudG89Yy5lZmZlY3RzLnNldFRyYW5zaXRpb24oY2hpbGQsZixkLnRvLnks
Y2hpbGQudG8pfWlmKGQuZnJvbS54IT1kLnRvLngpe2NoaWxkLmZyb209Yy5lZmZlY3RzLnNldFRy
YW5zaXRpb24oY2hpbGQsayxkLmZyb20ueCxjaGlsZC5mcm9tKTtjaGlsZC50bz1jLmVmZmVjdHMu
c2V0VHJhbnNpdGlvbihjaGlsZCxrLGQudG8ueCxjaGlsZC50byl9Y2hpbGQuY3NzKGNoaWxkLmZy
b20pO2NoaWxkLmFuaW1hdGUoY2hpbGQudG8sYi5kdXJhdGlvbixiLm9wdGlvbnMuZWFzaW5nLGZ1
bmN0aW9uKCl7biYmYy5lZmZlY3RzLnJlc3RvcmUoY2hpbGQsaCl9KX0pfWEuYW5pbWF0ZShhLnRv
LHtxdWV1ZTpmYWxzZSxkdXJhdGlvbjpiLmR1cmF0aW9uLGVhc2luZzpiLm9wdGlvbnMuZWFzaW5n
LGNvbXBsZXRlOmZ1bmN0aW9uKCl7YS50by5vcGFjaXR5PT09MCYmYS5jc3MoIm9wYWNpdHkiLGEu
ZnJvbS5vcGFjaXR5KTtwPT0iaGlkZSImJmEuaGlkZSgpO2MuZWZmZWN0cy5yZXN0b3JlKGEsCitu
P2U6Zyk7Yy5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoYSk7Yi5jYWxsYmFjayYmYi5jYWxsYmFjay5h
cHBseSh0aGlzLGFyZ3VtZW50cyk7YS5kZXF1ZXVlKCl9fSl9KX19KShqUXVlcnkpOworOy8qCisg
KiBqUXVlcnkgVUkgRWZmZWN0cyBTaGFrZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwg
QVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2Vk
IHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVl
cnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMv
U2hha2UKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVjdHMuY29yZS5qcworICovCiso
ZnVuY3Rpb24oZCl7ZC5lZmZlY3RzLnNoYWtlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVl
KGZ1bmN0aW9uKCl7dmFyIGI9ZCh0aGlzKSxqPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJs
ZWZ0IiwicmlnaHQiXTtkLmVmZmVjdHMuc2V0TW9kZShiLGEub3B0aW9ucy5tb2RlfHwiZWZmZWN0
Iik7dmFyIGM9YS5vcHRpb25zLmRpcmVjdGlvbnx8ImxlZnQiLGU9YS5vcHRpb25zLmRpc3RhbmNl
fHwyMCxsPWEub3B0aW9ucy50aW1lc3x8MyxmPWEuZHVyYXRpb258fGEub3B0aW9ucy5kdXJhdGlv
bnx8MTQwO2QuZWZmZWN0cy5zYXZlKGIsaik7Yi5zaG93KCk7ZC5lZmZlY3RzLmNyZWF0ZVdyYXBw
ZXIoYik7dmFyIGc9Yz09InVwInx8Yz09ImRvd24iPyJ0b3AiOiJsZWZ0IixoPWM9PSJ1cCJ8fGM9
PSJsZWZ0Ij8icG9zIjoibmVnIjtjPXt9O3ZhciBpPXt9LGs9e307Y1tnXT0oaD09InBvcyI/Ii09
IjoiKz0iKStlO2lbZ109KGg9PSJwb3MiPyIrPSI6Ii09IikrZSoyO2tbZ109CisoaD09InBvcyI/
Ii09IjoiKz0iKStlKjI7Yi5hbmltYXRlKGMsZixhLm9wdGlvbnMuZWFzaW5nKTtmb3IoZT0xO2U8
bDtlKyspYi5hbmltYXRlKGksZixhLm9wdGlvbnMuZWFzaW5nKS5hbmltYXRlKGssZixhLm9wdGlv
bnMuZWFzaW5nKTtiLmFuaW1hdGUoaSxmLGEub3B0aW9ucy5lYXNpbmcpLmFuaW1hdGUoYyxmLzIs
YS5vcHRpb25zLmVhc2luZyxmdW5jdGlvbigpe2QuZWZmZWN0cy5yZXN0b3JlKGIsaik7ZC5lZmZl
Y3RzLnJlbW92ZVdyYXBwZXIoYik7YS5jYWxsYmFjayYmYS5jYWxsYmFjay5hcHBseSh0aGlzLGFy
Z3VtZW50cyl9KTtiLnF1ZXVlKCJmeCIsZnVuY3Rpb24oKXtiLmRlcXVldWUoKX0pO2IuZGVxdWV1
ZSgpfSl9fSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIEVmZmVjdHMgU2xpZGUgMS44LjEw
CisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29t
L2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIg
bGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2Rv
Y3MuanF1ZXJ5LmNvbS9VSS9FZmZlY3RzL1NsaWRlCisgKgorICogRGVwZW5kczoKKyAqCWpxdWVy
eS5lZmZlY3RzLmNvcmUuanMKKyAqLworKGZ1bmN0aW9uKGMpe2MuZWZmZWN0cy5zbGlkZT1mdW5j
dGlvbihkKXtyZXR1cm4gdGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBhPWModGhpcyksaD1bInBv
c2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Il0sZj1jLmVmZmVjdHMuc2V0TW9k
ZShhLGQub3B0aW9ucy5tb2RlfHwic2hvdyIpLGI9ZC5vcHRpb25zLmRpcmVjdGlvbnx8ImxlZnQi
O2MuZWZmZWN0cy5zYXZlKGEsaCk7YS5zaG93KCk7Yy5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoYSku
Y3NzKHtvdmVyZmxvdzoiaGlkZGVuIn0pO3ZhciBnPWI9PSJ1cCJ8fGI9PSJkb3duIj8idG9wIjoi
bGVmdCI7Yj1iPT0idXAifHxiPT0ibGVmdCI/InBvcyI6Im5lZyI7dmFyIGU9ZC5vcHRpb25zLmRp
c3RhbmNlfHwoZz09InRvcCI/YS5vdXRlckhlaWdodCh7bWFyZ2luOnRydWV9KTphLm91dGVyV2lk
dGgoe21hcmdpbjp0cnVlfSkpO2lmKGY9PSJzaG93IilhLmNzcyhnLGI9PSJwb3MiP2lzTmFOKGUp
PyItIitlOi1lOmUpOwordmFyIGk9e307aVtnXT0oZj09InNob3ciP2I9PSJwb3MiPyIrPSI6Ii09
IjpiPT0icG9zIj8iLT0iOiIrPSIpK2U7YS5hbmltYXRlKGkse3F1ZXVlOmZhbHNlLGR1cmF0aW9u
OmQuZHVyYXRpb24sZWFzaW5nOmQub3B0aW9ucy5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXtm
PT0iaGlkZSImJmEuaGlkZSgpO2MuZWZmZWN0cy5yZXN0b3JlKGEsaCk7Yy5lZmZlY3RzLnJlbW92
ZVdyYXBwZXIoYSk7ZC5jYWxsYmFjayYmZC5jYWxsYmFjay5hcHBseSh0aGlzLGFyZ3VtZW50cyk7
YS5kZXF1ZXVlKCl9fSl9KX19KShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkgRWZmZWN0cyBU
cmFuc2ZlciAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6
Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3Ig
R1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAq
CisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMvVHJhbnNmZXIKKyAqCisgKiBE
ZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVjdHMuY29yZS5qcworICovCisoZnVuY3Rpb24oZSl7ZS5l
ZmZlY3RzLnRyYW5zZmVyPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7
dmFyIGI9ZSh0aGlzKSxjPWUoYS5vcHRpb25zLnRvKSxkPWMub2Zmc2V0KCk7Yz17dG9wOmQudG9w
LGxlZnQ6ZC5sZWZ0LGhlaWdodDpjLmlubmVySGVpZ2h0KCksd2lkdGg6Yy5pbm5lcldpZHRoKCl9
O2Q9Yi5vZmZzZXQoKTt2YXIgZj1lKCc8ZGl2IGNsYXNzPSJ1aS1lZmZlY3RzLXRyYW5zZmVyIj48
L2Rpdj4nKS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KS5hZGRDbGFzcyhhLm9wdGlvbnMuY2xhc3NO
YW1lKS5jc3Moe3RvcDpkLnRvcCxsZWZ0OmQubGVmdCxoZWlnaHQ6Yi5pbm5lckhlaWdodCgpLHdp
ZHRoOmIuaW5uZXJXaWR0aCgpLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KS5hbmltYXRlKGMsYS5kdXJh
dGlvbixhLm9wdGlvbnMuZWFzaW5nLGZ1bmN0aW9uKCl7Zi5yZW1vdmUoKTthLmNhbGxiYWNrJiZh
LmNhbGxiYWNrLmFwcGx5KGJbMF0sYXJndW1lbnRzKTsKK2IuZGVxdWV1ZSgpfSl9KX19KShqUXVl
cnkpOworOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3Jh
eS9jb250ZW50LmlubGluZS5taW4uY3NzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2NvbnRlbnQuaW5saW5lLm1pbi5j
c3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlmMTk0ZjZhNjQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2NvbnRlbnQuaW5saW5lLm1pbi5jc3MKQEAgLTAs
MCArMSBAQAorLm1jZS1vYmplY3R7Ym9yZGVyOjFweCBkb3R0ZWQgIzNBM0EzQTtiYWNrZ3JvdW5k
OiNkNWQ1ZDUgdXJsKGltZy9vYmplY3QuZ2lmKSBuby1yZXBlYXQgY2VudGVyfS5tY2UtcGFnZWJy
ZWFre2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7d2lkdGg6MTAwJTtoZWln
aHQ6NXB4O2JvcmRlcjoxcHggZGFzaGVkICM2NjY7bWFyZ2luLXRvcDoxNXB4O3BhZ2UtYnJlYWst
YmVmb3JlOmFsd2F5c31AbWVkaWEgcHJpbnR7Lm1jZS1wYWdlYnJlYWt7Ym9yZGVyOjBweH19Lm1j
ZS1pdGVtLWFuY2hvcntjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0
LXVzZXItc2VsZWN0OmFsbDstd2Via2l0LXVzZXItbW9kaWZ5OnJlYWQtb25seTstbW96LXVzZXIt
c2VsZWN0OmFsbDstbW96LXVzZXItbW9kaWZ5OnJlYWQtb25seTt1c2VyLXNlbGVjdDphbGw7dXNl
ci1tb2RpZnk6cmVhZC1vbmx5O3dpZHRoOjlweCAhaW1wb3J0YW50O2hlaWdodDo5cHggIWltcG9y
dGFudDtib3JkZXI6MXB4IGRvdHRlZCAjM0EzQTNBO2JhY2tncm91bmQ6I2Q1ZDVkNSB1cmwoaW1n
L2FuY2hvci5naWYpIG5vLXJlcGVhdCBjZW50ZXJ9Lm1jZS1uYnNwe2JhY2tncm91bmQ6I0FBQX1o
cntjdXJzb3I6ZGVmYXVsdH0ubWNlLW1hdGNoLW1hcmtlcntiYWNrZ3JvdW5kOiNBQUE7Y29sb3I6
I2ZmZn0ubWNlLW1hdGNoLW1hcmtlci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiMzMzk5ZmY7Y29sb3I6
I2ZmZn0ubWNlLXNwZWxsY2hlY2tlci13b3Jke2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNGMDA7
Y3Vyc29yOmRlZmF1bHR9Lm1jZS1zcGVsbGNoZWNrZXItZ3JhbW1hcntib3JkZXItYm90dG9tOjJw
eCBzb2xpZCAjMDA4MDAwO2N1cnNvcjpkZWZhdWx0fS5tY2UtaXRlbS10YWJsZSwubWNlLWl0ZW0t
dGFibGUgdGQsLm1jZS1pdGVtLXRhYmxlIHRoLC5tY2UtaXRlbS10YWJsZSBjYXB0aW9ue2JvcmRl
cjoxcHggZGFzaGVkICNCQkJ9dGQubWNlLWl0ZW0tc2VsZWN0ZWQsdGgubWNlLWl0ZW0tc2VsZWN0
ZWR7YmFja2dyb3VuZC1jb2xvcjojMzM5OWZmICFpbXBvcnRhbnR9Lm1jZS1lZGl0LWZvY3Vze291
dGxpbmU6MXB4IGRvdHRlZCAjMzMzfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pz
L3NraW5zL2xpZ2h0Z3JheS9jb250ZW50Lm1pbi5jc3MgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvY29udGVudC5taW4u
Y3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYTA4YzY4OTZmZQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9jb250ZW50Lm1pbi5jc3MKQEAgLTAsMCArMSBA
QAorYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7Y29sb3I6IzAwMDAwMDtmb250LWZhbWls
eTpWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB4O3Njcm9s
bGJhci0zZGxpZ2h0LWNvbG9yOiNGMEYwRUU7c2Nyb2xsYmFyLWFycm93LWNvbG9yOiM2NzY2NjI7
c2Nyb2xsYmFyLWJhc2UtY29sb3I6I0YwRjBFRTtzY3JvbGxiYXItZGFya3NoYWRvdy1jb2xvcjoj
REREREREO3Njcm9sbGJhci1mYWNlLWNvbG9yOiNFMEUwREQ7c2Nyb2xsYmFyLWhpZ2hsaWdodC1j
b2xvcjojRjBGMEVFO3Njcm9sbGJhci1zaGFkb3ctY29sb3I6I0YwRjBFRTtzY3JvbGxiYXItdHJh
Y2stY29sb3I6I0Y1RjVGNX10ZCx0aHtmb250LWZhbWlseTpWZXJkYW5hLEFyaWFsLEhlbHZldGlj
YSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB4fS5tY2Utb2JqZWN0e2JvcmRlcjoxcHggZG90dGVk
ICMzQTNBM0E7YmFja2dyb3VuZDojZDVkNWQ1IHVybChpbWcvb2JqZWN0LmdpZikgbm8tcmVwZWF0
IGNlbnRlcn0ubWNlLXBhZ2VicmVha3tjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmJsb2NrO2JvcmRl
cjowO3dpZHRoOjEwMCU7aGVpZ2h0OjVweDtib3JkZXI6MXB4IGRhc2hlZCAjNjY2O21hcmdpbi10
b3A6MTVweDtwYWdlLWJyZWFrLWJlZm9yZTphbHdheXN9QG1lZGlhIHByaW50ey5tY2UtcGFnZWJy
ZWFre2JvcmRlcjowcHh9fS5tY2UtaXRlbS1hbmNob3J7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpp
bmxpbmUtYmxvY2s7LXdlYmtpdC11c2VyLXNlbGVjdDphbGw7LXdlYmtpdC11c2VyLW1vZGlmeTpy
ZWFkLW9ubHk7LW1vei11c2VyLXNlbGVjdDphbGw7LW1vei11c2VyLW1vZGlmeTpyZWFkLW9ubHk7
dXNlci1zZWxlY3Q6YWxsO3VzZXItbW9kaWZ5OnJlYWQtb25seTt3aWR0aDo5cHggIWltcG9ydGFu
dDtoZWlnaHQ6OXB4ICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBkb3R0ZWQgIzNBM0EzQTtiYWNrZ3Jv
dW5kOiNkNWQ1ZDUgdXJsKGltZy9hbmNob3IuZ2lmKSBuby1yZXBlYXQgY2VudGVyfS5tY2UtbmJz
cHtiYWNrZ3JvdW5kOiNBQUF9aHJ7Y3Vyc29yOmRlZmF1bHR9Lm1jZS1tYXRjaC1tYXJrZXJ7YmFj
a2dyb3VuZDojQUFBO2NvbG9yOiNmZmZ9Lm1jZS1tYXRjaC1tYXJrZXItc2VsZWN0ZWR7YmFja2dy
b3VuZDojMzM5OWZmO2NvbG9yOiNmZmZ9Lm1jZS1zcGVsbGNoZWNrZXItd29yZHtib3JkZXItYm90
dG9tOjJweCBzb2xpZCAjRjAwO2N1cnNvcjpkZWZhdWx0fS5tY2Utc3BlbGxjaGVja2VyLWdyYW1t
YXJ7Ym9yZGVyLWJvdHRvbToycHggc29saWQgIzAwODAwMDtjdXJzb3I6ZGVmYXVsdH0ubWNlLWl0
ZW0tdGFibGUsLm1jZS1pdGVtLXRhYmxlIHRkLC5tY2UtaXRlbS10YWJsZSB0aCwubWNlLWl0ZW0t
dGFibGUgY2FwdGlvbntib3JkZXI6MXB4IGRhc2hlZCAjQkJCfXRkLm1jZS1pdGVtLXNlbGVjdGVk
LHRoLm1jZS1pdGVtLXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6IzMzOTlmZiAhaW1wb3J0YW50
fS5tY2UtZWRpdC1mb2N1c3tvdXRsaW5lOjFweCBkb3R0ZWQgIzMzM30KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvcmVhZG1lLm1kIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGln
aHRncmF5L2ZvbnRzL3JlYWRtZS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZmE1ZDYzOTQ2YzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvcmVh
ZG1lLm1kCkBAIC0wLDAgKzEgQEAKK0ljb25zIGFyZSBnZW5lcmF0ZWQgYW5kIHByb3ZpZGVkIGJ5
IHRoZSBodHRwOi8vaWNvbW9vbi5pbyBzZXJ2aWNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2Zv
bnRzL3RpbnltY2Utc21hbGwuZGV2LnN2ZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxs
LmRldi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU3OGI4Njk1
NDliCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Utc21hbGwuZGV2
LnN2ZwpAQCAtMCwwICsxLDE3NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJu
byI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0
cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+Cis8c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8bWV0YWRhdGE+CitUaGlzIGlzIGEg
Y3VzdG9tIFNWRyBmb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgorPGljb25zZXQgZ3JpZD0iMTYi
PjwvaWNvbnNldD4KKzwvbWV0YWRhdGE+Cis8ZGVmcz4KKzxmb250IGlkPSJ0aW55bWNlLXNtYWxs
IiBob3Jpei1hZHYteD0iNTEyIiA+Cis8Zm9udC1mYWNlIHVuaXRzLXBlci1lbT0iNTEyIiBhc2Nl
bnQ9IjQ4MCIgZGVzY2VudD0iLTMyIiAvPgorPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUx
MiIgLz4KKzxnbHlwaCBjbGFzcz0iaGlkZGVuIiB1bmljb2RlPSImI3hmMDAwOyIgZD0iTTAsNDgw
TCA1MTIgLTMyTDAgLTMyIHoiIGhvcml6LWFkdi14PSIwIiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwMjA7IiBkPSJNIDM1Miw2NGwwLDE4LjUwMiBjIDc1LjY3NCwzMC44MTQsIDEyOCw5Ni45MSwg
MTI4LDE3My40OThjMCwxMDYuMDM5LTEwMC4yODgsMTkyLTIyNCwxOTJTIDMyLDM2Mi4wMzksIDMy
LDI1NgorCWMwLTc2LjU4OCwgNTIuMzI3LTE0Mi42ODQsIDEyOC0xNzMuNDk4TCAxNjAsNjQgTCA2
NCw2NCBsLTMyLDQ4bDAtMTEyIGwgMTYwLDAgTCAxOTIsMTExLjQwNiBjLTUwLjQ1LDI1LjY4MS04
NS4zMzMsODAuNzctODUuMzMzLDE0NC41OTQKKwljMCw4OC4zNjYsIDY2Ljg1OSwxNjAsIDE0OS4z
MzMsMTYwYyA4Mi40NzQsMCwgMTQ5LjMzMy03MS42MzQsIDE0OS4zMzMtMTYwYzAtNjMuODI0LTM0
Ljg4My0xMTguOTEzLTg1LjMzMy0xNDQuNTk0TCAzMjAsMCBsIDE2MCwwIEwgNDgwLDExMiBsLTMy
LTQ4CisJTCAzNTIsNjQgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDEzOyIgZD0iTSAxMjgs
NDQ4bDAtNDQ4IGwgMTI4LDEyOGwgMTI4LTEyOEwgMzg0LDQ0OCBMIDEyOCw0NDggeiBNIDM1Miw4
NS4yNTVsLTk2LDk2bC05Ni05NkwgMTYwLDQxNiBsIDE5MiwwIEwgMzUyLDg1LjI1NSB6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMTI7IiBkPSJNIDQ2My42MzcsMzY0Ljg5MmwtNjYuNzQ1LDY2
Ljc0NEMgMzg2LjM0LDQ0Mi4xODgsIDM3Mi4yNzYsNDQ4LCAzNTcuMjkzLDQ0OHMtMjkuMDQ3LTUu
ODEyLTM5LjU5OC0xNi4zNjNsLTgyLjc0Ni04Mi43NDUKKwkJYy0yMS44MzQtMjEuODM0LTIxLjgz
NC01Ny4zNjIsMC03OS4xOTZsIDEuMzczLTEuMzczbCAzMy45NDEsMzMuOTQxbC0xLjM3MywxLjM3
M2MtMy4wNjYsMy4wNjYtMy4wNjYsOC4yNDcsMCwxMS4zMTNsIDgyLjc0Niw4Mi43NDYKKwkJQyAz
NTMuNjQxLDM5OS43LCAzNTYuMDQwLDQwMCwgMzU3LjI5Miw0MDBzIDMuNjUxLTAuMjk5LCA1LjY1
Ni0yLjMwNWwgNjYuNzQ1LTY2Ljc0NGMgMy4wNjYtMy4wNjcsIDMuMDY2LTguMjQ5LCAwLjAwMS0x
MS4zMTRsLTgyLjc0Ny04Mi43NDcKKwkJYy0yLjAwNC0yLjAwNC00LjQwMy0yLjMwNC01LjY1NS0y
LjMwNHMtMy42NTEsMC4zLTUuNjU2LDIuMzA2bC0xLjM3MywxLjM3M2wtMzMuOTQtMzMuOTQybCAx
LjM3MS0xLjM3MQorCQljIDEwLjU1My0xMC41NTQsIDI0LjYxNS0xNi4zNjQsIDM5LjYtMTYuMzY0
cyAyOS4wNDcsNS44MTIsIDM5LjU5OCwxNi4zNjNsIDgyLjc0Nyw4Mi43NDZDIDQ4NS40NywzMDcu
NTMsIDQ4NS40NywzNDMuMDU3LCA0NjMuNjM3LDM2NC44OTIKKwkJek0gMjc1LjY3OCwxNzkuNjc4
bC0zMy45NDEtMzMuOTQxbCAxLjM3My0xLjM3M2MgMi4wMDQtMi4wMDQsIDIuMzA1LTQuNDAzLCAy
LjMwNS01LjY1NWMwLTEuMjUzLTAuMjk5LTMuNjUxLTIuMzAzLTUuNjU3CisJCWwtODIuNzQ3LTgy
Ljc0NWMtMi4wMDUtMi4wMDUtNC40MDUtMi4zMDUtNS42NTctMi4zMDVzLTMuNjUyLDAuMy01LjY1
NywyLjMwNUwgODIuMzA1LDExNy4wNTBDIDgwLjMsMTE5LjA1NSwgODAsMTIxLjQ1NSwgODAsMTIy
LjcwNworCQlzIDAuMjk5LDMuNjUsIDIuMzA1LDUuNjU2bCA4Mi43NDUsODIuNzQ0YyAyLjAwNSwy
LjAwNiwgNC40MDUsMi4zMDYsIDUuNjU3LDIuMzA2cyAzLjY1Mi0wLjMsIDUuNjU3LTIuMzA2bCAx
LjM3My0xLjM3MWwgMzMuOTQxLDMzLjk0CisJCWwtMS4zNzMsMS4zNzNjLTEwLjU1MiwxMC41NTIt
MjQuNjE1LDE2LjM2My0zOS41OTgsMTYuMzYzcy0yOS4wNDYtNS44MTItMzkuNTk4LTE2LjM2M2wt
ODIuNzQ0LTgyLjc0MworCQlDIDM3LjgxMiwxNTEuNzU0LCAzMiwxMzcuNjg5LCAzMiwxMjIuNzA3
cyA1LjgxMi0yOS4wNDcsIDE2LjM2My0zOS41OTlsIDY2Ljc0NS02Ni43NDVDIDEyNS42NjEsNS44
MTIsIDEzOS43MjQsMCwgMTU0LjcwNywwCisJCXMgMjkuMDQ2LDUuODEyLCAzOS41OTgsMTYuMzYz
bCA4Mi43NDcsODIuNzQ2YyAxMC41NTIsMTAuNTUyLCAxNi4zNjEsMjQuNjE1LCAxNi4zNjEsMzku
NTk4cy01LjgxMiwyOS4wNDctMTYuMzYzLDM5LjU5OAorCQlMIDI3NS42NzgsMTc5LjY3OHpNIDQw
MCw2MWMtNC44NjIsMC05LjcyNSwxLjg1NC0xMy40MzUsNS41NjVsLTY0LDYzLjk5OWMtNy40MjIs
Ny40Mi03LjQyMiwxOS40NDksMCwyNi44NjkKKwkJCWMgNy40Miw3LjQyMiwgMTkuNDQ4LDcuNDIy
LCAyNi44NjgsMGwgNjQtNjRjIDcuNDIyLTcuNDIsIDcuNDIyLTE5LjQ0OCwwLTI2Ljg2OEMgNDA5
LjcyNSw2Mi44NTQsIDQwNC44NjIsNjEsIDQwMCw2MXpNIDMwNCwwYy04LjgzNywwLTE2LDcuMTYz
LTE2LDE2bDAsNjQgYzAsOC44MzcsIDcuMTYzLDE2LCAxNiwxNnMgMTYtNy4xNjMsIDE2LTE2bDAt
NjQgQyAzMjAsNy4xNjMsIDMxMi44MzcsMCwgMzA0LDB6TSA0NjQsMTYwbC02NCwwIGMtOC44Mzcs
MC0xNiw3LjE2My0xNiwxNnMgNy4xNjMsMTYsIDE2LDE2bCA2NCwwIGMgOC44MzcsMCwgMTYtNy4x
NjMsIDE2LTE2UyA0NzIuODM3LDE2MCwgNDY0LDE2MHpNIDExMiwzODdjIDQuODYyLDAsIDkuNzI1
LTEuODU0LCAxMy40MzUtNS41NjVsIDY0LTY0YyA3LjQyMS03LjQyLCA3LjQyMS0xOS40NDksMC0y
Ni44NjljLTcuNDItNy40MjItMTkuNDQ5LTcuNDIyLTI2Ljg2OSwwCisJCQlsLTY0LDY0Yy03LjQy
MSw3LjQyLTcuNDIxLDE5LjQ0OSwwLDI2Ljg2OUMgMTAyLjI3NSwzODUuMTQ2LCAxMDcuMTM4LDM4
NywgMTEyLDM4N3pNIDIwOCw0NDhjIDguODM3LDAsIDE2LTcuMTYzLCAxNi0xNmwwLTY0IGMwLTgu
ODM3LTcuMTYzLTE2LTE2LTE2cy0xNiw3LjE2My0xNiwxNkwgMTkyLDQzMiBDIDE5Miw0NDAuODM3
LCAxOTkuMTYzLDQ0OCwgMjA4LDQ0OHpNIDQ4LDI4OGwgNjQsMCBjIDguODM3LDAsIDE2LTcuMTYz
LCAxNi0xNnMtNy4xNjMtMTYtMTYtMTZMIDQ4LDI1NiBjLTguODM3LDAtMTYsNy4xNjMtMTYsMTZT
IDM5LjE2MywyODgsIDQ4LDI4OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMTsiIGQ9Ik0g
NDYzLjYzNywzNjQuODkybC02Ni43NDUsNjYuNzQ0QyAzODYuMzQsNDQyLjE4OCwgMzcyLjI3Niw0
NDgsIDM1Ny4yOTMsNDQ4cy0yOS4wNDctNS44MTItMzkuNTk4LTE2LjM2M2wtODIuNzQ2LTgyLjc0
NQorCQljLTIxLjgzNC0yMS44MzQtMjEuODM0LTU3LjM2MiwwLTc5LjE5NmwgMS4zNzMtMS4zNzNs
IDMzLjk0MSwzMy45NDFsLTEuMzczLDEuMzczYy0zLjA2NiwzLjA2Ni0zLjA2Niw4LjI0NywwLDEx
LjMxM2wgODIuNzQ2LDgyLjc0NgorCQlDIDM1My42NDEsMzk5LjcsIDM1Ni4wNDAsNDAwLCAzNTcu
MjkyLDQwMHMgMy42NTEtMC4yOTksIDUuNjU2LTIuMzA1bCA2Ni43NDUtNjYuNzQ0YyAzLjA2Ni0z
LjA2NywgMy4wNjYtOC4yNDksIDAuMDAxLTExLjMxNGwtODIuNzQ3LTgyLjc0NworCQljLTIuMDA0
LTIuMDA0LTQuNDAzLTIuMzA0LTUuNjU1LTIuMzA0cy0zLjY1MSwwLjMtNS42NTYsMi4zMDZsLTEu
MzczLDEuMzczbC0zMy45NC0zMy45NDJsIDEuMzcxLTEuMzcxCisJCWMgMTAuNTUzLTEwLjU1NCwg
MjQuNjE1LTE2LjM2NCwgMzkuNi0xNi4zNjRzIDI5LjA0Nyw1LjgxMiwgMzkuNTk4LDE2LjM2M2wg
ODIuNzQ3LDgyLjc0NkMgNDg1LjQ3LDMwNy41MywgNDg1LjQ3LDM0My4wNTcsIDQ2My42MzcsMzY0
Ljg5MgorCQl6TSAyNzUuNjc4LDE3OS42NzhsLTMzLjk0MS0zMy45NDFsIDEuMzczLTEuMzczYyAy
LjAwNC0yLjAwNCwgMi4zMDUtNC40MDMsIDIuMzA1LTUuNjU1YzAtMS4yNTMtMC4yOTktMy42NTEt
Mi4zMDMtNS42NTcKKwkJbC04Mi43NDctODIuNzQ1Yy0yLjAwNS0yLjAwNS00LjQwNS0yLjMwNS01
LjY1Ny0yLjMwNXMtMy42NTIsMC4zLTUuNjU3LDIuMzA1TCA4Mi4zMDUsMTE3LjA1MEMgODAuMywx
MTkuMDU1LCA4MCwxMjEuNDU1LCA4MCwxMjIuNzA3CisJCXMgMC4yOTksMy42NSwgMi4zMDUsNS42
NTZsIDgyLjc0NSw4Mi43NDRjIDIuMDA1LDIuMDA2LCA0LjQwNSwyLjMwNiwgNS42NTcsMi4zMDZz
IDMuNjUyLTAuMywgNS42NTctMi4zMDZsIDEuMzczLTEuMzcxbCAzMy45NDEsMzMuOTQKKwkJbC0x
LjM3MywxLjM3M2MtMTAuNTUyLDEwLjU1Mi0yNC42MTUsMTYuMzYzLTM5LjU5OCwxNi4zNjNzLTI5
LjA0Ni01LjgxMi0zOS41OTgtMTYuMzYzbC04Mi43NDQtODIuNzQzCisJCUMgMzcuODEyLDE1MS43
NTQsIDMyLDEzNy42ODksIDMyLDEyMi43MDdzIDUuODEyLTI5LjA0NywgMTYuMzYzLTM5LjU5OWwg
NjYuNzQ1LTY2Ljc0NUMgMTI1LjY2MSw1LjgxMiwgMTM5LjcyNCwwLCAxNTQuNzA3LDAKKwkJcyAy
OS4wNDYsNS44MTIsIDM5LjU5OCwxNi4zNjNsIDgyLjc0Nyw4Mi43NDZjIDEwLjU1MiwxMC41NTIs
IDE2LjM2MSwyNC42MTUsIDE2LjM2MSwzOS41OThzLTUuODEyLDI5LjA0Ny0xNi4zNjMsMzkuNTk4
CisJCUwgMjc1LjY3OCwxNzkuNjc4ek0gMTc2LDEyNWMtNC44NjIsMC05LjcyNSwxLjg1NS0xMy40
MzUsNS41NjRjLTcuNDIsNy40Mi03LjQyLDE5LjQ0OSwwLDI2Ljg2OWwgMTYwLDE2MGMgNy40Miw3
LjQyLCAxOS40NDgsNy40MiwgMjYuODY4LDAKKwkJYyA3LjQyMi03LjQyLCA3LjQyMi0xOS40NSww
LTI2Ljg3bC0xNjAtMTYwQyAxODUuNzI1LDEyNi44NTUsIDE4MC44NjIsMTI1LCAxNzYsMTI1eiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDEwOyIgZD0iTSAyODgsMzM5LjMzN0wgMjg4LDQ0OCBs
IDE2OC4wMDEtMTY4TCAyODgsMTEyTCAyODgsMjIzLjA0OCBDIDkyLjU0NywyMjcuNjMzLCAxMzAu
NSw5OS41LCAxNjAsMEMgMTYsMTYwLCA1My45NTQsMzQ1LjQzNywgMjg4LDMzOS4zMzd6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMGY7IiBkPSJNIDM1MiwwYyAyOS41LDk5LjUsIDY3LjQ1Mywy
MjcuNjMzLTEyOCwyMjMuMDQ4TCAyMjQsMTEyIEwgNTUuOTk5LDI4MEwgMjI0LDQ0OGwwLTEwOC42
NjMgQyA0NTguMDQ2LDM0NS40MzcsIDQ5NiwxNjAsIDM1MiwweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDBlOyIgZD0iTSAxMjguMjE0LDI2Ny42MzdjIDUyLjksMCwgOTUuNzg2LTQ1LjU4NSwg
OTUuNzg2LTEwMS44MTlDIDIyNCwxMDkuNTg2LCAxODEuMTE0LDY0LCAxMjguMjE0LDY0CisJYy01
Mi45MDEsMC05NS43ODYsNDUuNTg1LTk1Ljc4NiwxMDEuODE4TCAzMiwxODAuMzY0QyAzMiwyOTIu
ODI5LCAxMTcuNzcsMzg0LCAyMjMuNTcyLDM4NGwwLTU4LjE4MiBjLTM2LjU1LDAtNzAuOTEzLTE1
LjEzLTk2Ljc1OC00Mi42MDIKKwljLTQuOTc3LTUuMjg5LTkuNTE3LTEwLjkxNy0xMy42MTItMTYu
ODI4QyAxMTguMDk0LDI2Ny4yMDgsIDEyMy4xMDUsMjY3LjYzNywgMTI4LjIxNCwyNjcuNjM3ek0g
Mzg0LjIxNCwyNjcuNjM3YyA1Mi45LDAsIDk1Ljc4Ni00NS41ODUsIDk1Ljc4Ni0xMDEuODE5QyA0
ODAsMTA5LjU4NiwgNDM3LjExNCw2NCwgMzg0LjIxNCw2NAorCWMtNTIuOTAxLDAtOTUuNzg2LDQ1
LjU4NS05NS43ODYsMTAxLjgxOEwgMjg4LDE4MC4zNjRDIDI4OCwyOTIuODI5LCAzNzMuNzcsMzg0
LCA0NzkuNTcyLDM4NGwwLTU4LjE4MiBjLTM2LjU1LDAtNzAuOTEzLTE1LjEzLTk2Ljc1OC00Mi42
MDIKKwljLTQuOTc4LTUuMjg5LTkuNTE4LTEwLjkxNy0xMy42MTItMTYuODI4QyAzNzQuMDk0LDI2
Ny4yMDgsIDM3OS4xMDUsMjY3LjYzNywgMzg0LjIxNCwyNjcuNjM3eiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDBjOyIgZD0iTSAzMiwzODRMIDQ4MCwzODRMIDQ4MCwzMjBMIDMyLDMyMHpNIDE5
MiwxOTJMIDQ4MCwxOTJMIDQ4MCwxMjhMIDE5MiwxMjh6TSAxOTIsMjg4TCA0ODAsMjg4TCA0ODAs
MjI0TCAxOTIsMjI0ek0gMzIsOTZMIDQ4MCw5NkwgNDgwLDMyTCAzMiwzMnpNIDMyLDI4OEwgMTQ0
LDIwOEwgMzIsMTI4IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwZDsiIGQ9Ik0gMzIsMzg0
TCA0ODAsMzg0TCA0ODAsMzIwTCAzMiwzMjB6TSAzMiwxOTJMIDMyMCwxOTJMIDMyMCwxMjhMIDMy
LDEyOHpNIDMyLDI4OEwgMzIwLDI4OEwgMzIwLDIyNEwgMzIsMjI0ek0gMzIsOTZMIDQ4MCw5Nkwg
NDgwLDMyTCAzMiwzMnpNIDQ4MCwyODhMIDM2OCwyMDhMIDQ4MCwxMjggeiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDBiOyIgZD0iTSAxOTIsNDE2TCA0ODAsNDE2TCA0ODAsMzUyTCAxOTIsMzUy
ek0gMTkyLDI1NkwgNDgwLDI1NkwgNDgwLDE5MkwgMTkyLDE5MnpNIDE5Miw5NkwgNDgwLDk2TCA0
ODAsMzJMIDE5MiwzMnpNIDE2MCwyMTVMIDE2MCwyODhMIDEyOCwyODhMIDEyOCw0NDhMIDY0LDQ0
OEwgNjQsNDE2TCA5Niw0MTZMIDk2LDI4OEwgNjQsMjg4TCA2NCwyNTZMIDEyOCwyNTZMIDEyOCwy
MzFMIDY0LDIwMUwgNjQsMTI4TCAxMjgsMTI4TCAxMjgsOTZMIDY0LDk2TCA2NCw2NEwgMTI4LDY0
TCAxMjgsMzJMIDY0LDMyTCA2NCwwTCAxNjAsMEwgMTYwLDE2MEwgOTYsMTYwTCA5NiwxODUgCXoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwYTsiIGQ9Ik0gMTkyLDQxNkwgNDgwLDQxNkwgNDgw
LDM1MkwgMTkyLDM1MnpNIDE5MiwyNTZMIDQ4MCwyNTZMIDQ4MCwxOTJMIDE5MiwxOTJ6TSAxOTIs
OTZMIDQ4MCw5NkwgNDgwLDMyTCAxOTIsMzJ6TSA2NCwzODRBMzIsMzIgMjcwMCAxIDEgMTI4LDM4
NEEzMiwzMiAyNzAwIDEgMSA2NCwzODR6TSA2NCwyMjRBMzIsMzIgMjcwMCAxIDEgMTI4LDIyNEEz
MiwzMiAyNzAwIDEgMSA2NCwyMjR6TSA2NCw2NEEzMiwzMiAyNzAwIDEgMSAxMjgsNjRBMzIsMzIg
MjcwMCAxIDEgNjQsNjR6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDk7IiBkPSJNIDQ0NCwy
ODhsLTI4LDAgTCA0MTYsNDE2IGwgMzIsMCBMIDQ0OCw0NDggTCAyODgsNDQ4IGwwLTMyIGwgMzIs
MCBsMC0xMjggTCAxOTIsMjg4IEwgMTkyLDQxNiBsIDMyLDAgTCAyMjQsNDQ4IEwgNjQsNDQ4IGww
LTMyIGwgMzIsMCBsMC0xMjggTCA2OCwyODggYy0xOS44LDAtMzYtMTYuMi0zNi0zNmwwLTIxNiBj
MC0xOS44LCAxNi4yLTM2LCAzNi0zNmwgMTIwLDAgCisJYyAxOS44LDAsIDM2LDE2LjIsIDM2LDM2
TCAyMjQsMTkyIGwgNjQsMCBsMC0xNTYgYzAtMTkuOCwgMTYuMi0zNiwgMzYtMzZsIDEyMCwwIGMg
MTkuOCwwLCAzNiwxNi4yLCAzNiwzNkwgNDgwLDI1MiBDIDQ4MCwyNzEuOCwgNDYzLjgsMjg4LCA0
NDQsMjg4eiBNIDE3NCwzMkwgODIsMzIgCisJYy05LjksMC0xOCw3LjItMTgsMTZzIDguMSwxNiwg
MTgsMTZsIDkyLDAgYyA5LjksMCwgMTgtNy4yLCAxOC0xNlMgMTgzLjksMzIsIDE3NCwzMnogTSAy
NzIsMjI0bC0zMiwwIGMtOC44LDAtMTYsNy4yLTE2LDE2cyA3LjIsMTYsIDE2LDE2bCAzMiwwIAor
CWMgOC44LDAsIDE2LTcuMiwgMTYtMTZTIDI4MC44LDIyNCwgMjcyLDIyNHogTSA0MzAsMzJsLTky
LDAgYy05LjksMC0xOCw3LjItMTgsMTZzIDguMSwxNiwgMTgsMTZsIDkyLDAgYyA5LjksMCwgMTgt
Ny4yLCAxOC0xNlMgNDM5LjksMzIsIDQzMCwzMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAw
ODsiIGQ9Ik0gMzUyLDI4OGwwLDgwIGMwLDguOC03LjIsMTYtMTYsMTZsLTgwLDAgTCAyNTYsNDE2
IGMwLDE3LjYtMTQuNCwzMi0zMiwzMmwtNjQsMCBjLTE3LjYwMiwwLTMyLTE0LjQtMzItMzJsMC0z
MiBMIDQ4LDM4NCBjLTguODAxLDAtMTYtNy4yLTE2LTE2bDAtMjU2IAorCWMwLTguOCwgNy4xOTkt
MTYsIDE2LTE2bCAxMTIsMCBsMC05NiBsIDE5MiwwIGwgOTYsOTZMIDQ0OCwyODggTCAzNTIsMjg4
IHogTSAxNjAsNDE1Ljk0M2MgMC4wMTcsMC4wMTksIDAuMDM2LDAuMDM5LCAwLjA1NywwLjA1N2wg
NjMuODg0LDAgCisJYyAwLjAyMS0wLjAxOCwgMC4wNDEtMC4wMzgsIDAuMDU5LTAuMDU3TCAyMjQs
Mzg0IGwtNjQsMCBMIDE2MCw0MTUuOTQzIEwgMTYwLDQxNS45NDN6IE0gOTYsMzIwbDAsMzIgbCAx
OTIsMCBsMC0zMiBMIDk2LDMyMCB6IE0gMzUyLDQ1LjI1NUwgMzUyLDk2IGwgNTAuNzQ1LDAgTCAz
NTIsNDUuMjU1egorCSBNIDQxNiwxMjhsLTk2LDAgbDAtOTYgTCAxOTIsMzIgTCAxOTIsMjU2IGwg
MjI0LDAgTCA0MTYsMTI4IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMTsiIGQ9Ik0gNDE2
LDMyMGwtOTYsMCBsMCwzMiBsLTk2LDk2TCAzMiw0NDggbDAtMzUyIGwgMTkyLDAgbDAtOTYgbCAy
ODgsMCBMIDUxMiwyMjQgTCA0MTYsMzIweiBNIDQxNiwyNzQuNzQ1TCA0NjYuNzQ1LDIyNEwgNDE2
LDIyNCBMIDQxNiwyNzQuNzQ1IHogTSAyMjQsNDAyLjc0NUwgMjc0Ljc0NSwzNTIKKwlMIDIyNCwz
NTIgTCAyMjQsNDAyLjc0NSB6IE0gNjQsNDE2bCAxMjgsMCBsMC05NiBsIDk2LDAgbDAtMTkyIEwg
NjQsMTI4IEwgNjQsNDE2IHogTSA0ODAsMzJMIDI1NiwzMiBsMCw2NCBsIDY0LDAgTCAzMjAsMjg4
IGwgNjQsMCBsMC05NiBsIDk2LDAgTCA0ODAsMzIgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDA3OyIgZD0iTSA0MzIuMjA0LDE0NC45MzRjLTIzLjIzNSwyMy4yMzUtNTMuNDY5LDM0LjAwMi04
MC41NDEsMzEuNDAzTCAzMjAsMjA4bCA5Niw5NmMwLDAsIDY0LDY0LDAsMTI4TCAyNTYsMjcyTCA5
Niw0MzIKKwkJYy02NC02NCwwLTEyOCwwLTEyOGwgOTYtOTZsLTMxLjY2My0zMS42NjNjLTI3LjA3
MiwyLjU5OS01Ny4zMDUtOC4xNjktODAuNTQtMzEuNDAzYy0zNy40OS0zNy40OS00Mi41NTYtOTMu
MjA5LTExLjMxMy0xMjQuNDUKKwkJYyAzMS4yNDEtMzEuMjQxLCA4Ni45Ni0yNi4xNzcsIDEyNC40
NSwxMS4zMTNjIDIzLjIzNSwyMy4yMzQsIDM0LjAwMSw1My40NjksIDMxLjQwMyw4MC41NEwgMjU2
LDE0NGwgMzEuNjY0LTMxLjY2NAorCQljLTIuNTk4LTI3LjA3MiwgOC4xNjgtNTcuMzA1LCAzMS40
MDMtODAuNTM5YyAzNy40ODktMzcuNDksIDkzLjIwOS00Mi41NTYsIDEyNC40NDktMTEuMzEzCisJ
CUMgNDc0Ljc2LDUxLjcyNSwgNDY5LjY5NCwxMDcuNDQzLCA0MzIuMjA0LDE0NC45MzR6IE0gMTc2
LjU2MiwxMDAuNzExYy0xLjEwNi0xMi4xNjYtNy41MS0yNC45MTMtMTcuNTctMzQuOTczCisJCUMg
MTQ3Ljg4Niw1NC42MzEsIDEzMy40NTIsNDgsIDEyMC4zODMsNDhjLTUuMjYyLDAtMTIuNjQ5LDEu
MTE0LTE3Ljk1OCw2LjQyNGMtMTAuNzAzLDEwLjcwMi04LjY4OCwzNi41NjYsIDExLjMxMyw1Ni41
NjgKKwkJYyAxMS4xMDYsMTEuMTA3LCAyNS41NCwxNy43MzgsIDM4LjYwOSwxNy43MzhjIDUuMjYy
LDAsIDEyLjY0OS0xLjExNCwgMTcuOTU4LTYuNDI0QyAxNzYuODYxLDExNS43NTEsIDE3Ny4wNDAs
MTA1Ljk2MiwgMTc2LjU2MiwxMDAuNzExegorCQkgTSAyNTYsMTc2Yy0xNy42NzMsMC0zMiwxNC4z
MjctMzIsMzJzIDE0LjMyNywzMiwgMzIsMzJzIDMyLTE0LjMyNywgMzItMzJTIDI3My42NzMsMTc2
LCAyNTYsMTc2eiBNIDQwOS41NzYsNTQuNDI0CisJCWMtNS4zMS01LjMxLTEyLjY5Ni02LjQyNC0x
Ny45NTgtNi40MjRjLTEzLjA2OSwwLTI3LjUwMyw2LjYzMS0zOC42MDksMTcuNzM4Yy0xMC4wNjEs
MTAuMDYwLTE2LjQ2NCwyMi44MDctMTcuNTY5LDM0Ljk3MworCQljLTAuNDc5LDUuMjUxLTAuMywx
NS4wNDAsIDYuMjU3LDIxLjU5NmMgNS4zMDksNS4zMTEsIDEyLjY5NSw2LjQyNCwgMTcuOTU4LDYu
NDI0YyAxMy4wNjgsMCwgMjcuNTAzLTYuNjMxLCAzOC42MDgtMTcuNzM3CisJCUMgNDE4LjI2NSw5
MC45OSwgNDIwLjI3OSw2NS4xMjYsIDQwOS41NzYsNTQuNDI0eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDA2OyIgZD0iTSAzMiwzODRMIDQ4MCwzODRMIDQ4MCwzMjBMIDMyLDMyMHpNIDMyLDE5
MkwgNDgwLDE5MkwgNDgwLDEyOEwgMzIsMTI4ek0gMzIsMjg4TCA0ODAsMjg4TCA0ODAsMjI0TCAz
MiwyMjR6TSAzMiw5NkwgNDgwLDk2TCA0ODAsMzJMIDMyLDMyeiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDA0OyIgZD0iTSAzMiwzODRMIDQ4MCwzODRMIDQ4MCwzMjBMIDMyLDMyMHpNIDMyLDE5
MkwgNDgwLDE5MkwgNDgwLDEyOEwgMzIsMTI4ek0gMTI4LDI4OEwgMzg0LDI4OEwgMzg0LDIyNEwg
MTI4LDIyNHpNIDEyOCw5NkwgMzg0LDk2TCAzODQsMzJMIDEyOCwzMnoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAwNTsiIGQ9Ik0gMzIsMzg0TCA0ODAsMzg0TCA0ODAsMzIwTCAzMiwzMjB6TSAz
MiwxOTJMIDQ4MCwxOTJMIDQ4MCwxMjhMIDMyLDEyOHpNIDE5MiwyODhMIDQ4MCwyODhMIDQ4MCwy
MjRMIDE5MiwyMjR6TSAxOTIsOTZMIDQ4MCw5NkwgNDgwLDMyTCAxOTIsMzJ6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNIDMyLDM4NEwgNDgwLDM4NEwgNDgwLDMyMEwgMzIsMzIw
ek0gMzIsMTkyTCA0ODAsMTkyTCA0ODAsMTI4TCAzMiwxMjh6TSAzMiwyODhMIDMyMCwyODhMIDMy
MCwyMjRMIDMyLDIyNHpNIDMyLDk2TCAzMjAsOTZMIDMyMCwzMkwgMzIsMzJ6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMmQ7IiBkPSJNIDQ4MCwyMjRsLTQuNTcxLDAgTCAzNDcuMDYyLDIyNCBj
LTI1LjAzOSwxNy43MS01Ny4yMTUsMjcuNDMtOTEuMDYyLDI3LjQzYy00NC42MDMsMC04Mi4yODYs
MjUuMTIxLTgyLjI4Niw1NC44NTYKKwljMCwyOS43MzUsIDM3LjY4Myw1NC44NTcsIDgyLjI4Niw1
NC44NTdjIDM3LjUyOSwwLCA3MC4xNTQtMTcuNzg4LCA3OS41Ni00MS4xNDNsIDU2LjUwOCwwIGMt
My45NjUsMjUuMzIyLTE4Ljc5LDQ4Ljk4NC00Mi4wMjksNjYuNDEzCisJQyAzMjQuNTk5LDQwNS40
OTMsIDI5MS4yMDEsNDE2LCAyNTYsNDE2Yy0zNS4yMDIsMC02OC41OTgtMTAuNTA3LTk0LjAzNy0y
OS41ODdjLTI3LjM5NC0yMC41NDUtNDMuMTA2LTQ5Ljc1MS00My4xMDYtODAuMTI3CisJcyAxNS43
MTItNTkuNTgyLCA0My4xMDYtODAuMTI3YyAwLjk3OC0wLjczMywgMS45NzEtMS40NDksIDIuOTcz
LTIuMTU4TCAzNi41NzEsMjI0LjAwMSBMIDMyLDIyNC4wMDEgbDAtMzIgbCAyNTYuMjY2LDAgYyAy
OS4xMDQtOC41NTMsIDUwLjAyMS0yOC4xMzUsIDUwLjAyMS01MC4yODYKKwljMC0yOS43MzQtMzcu
Njg0LTU0Ljg1NS04Mi4yODYtNTQuODU1Yy0zNy41MywwLTcwLjE1NCwxNy43ODctNzkuNTU5LDQx
LjE0M2wtNTYuNTA4LDAgYyAzLjk2NS0yNS4zMiwgMTguNzkxLTQ4Ljk4NCwgNDIuMDMwLTY2LjQx
MworCUMgMTg3LjQwMiw0Mi41MDgsIDIyMC43OTgsMzIsIDI1NiwzMmMgMzUuMjAxLDAsIDY4LjU5
OSwxMC41MDgsIDk0LjAzNywyOS41ODdjIDI3LjM5NSwyMC41NDUsIDQzLjEwNCw0OS43NTEsIDQz
LjEwNCw4MC4xMjcKKwljMCwxNy42NDktNS4zMjcsMzQuODk2LTE1LjE0Nyw1MC4yODZMIDQ4MCwx
OTIgTCA0ODAsMjI0IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyYzsiIGQ9Ik0gOTYsNjRs
IDI4OCwwIGwwLTMyIEwgOTYsMzIgTCA5Niw2NCB6TSAzMjAsNDE2bDAtMTkyIGMwLTE1LjY1Ni03
LjM1LTMwLjgxMi0yMC42OTUtNDIuNjc2QyAyODMuODM0LDE2Ny41NzMsIDI2Mi43NzEsMTYwLCAy
NDAsMTYwYy0yMi43NzIsMC00My44MzQsNy41NzMtNTkuMzA0LDIxLjMyNAorCUMgMTY3LjM1LDE5
My4xODgsIDE2MCwyMDguMzQ0LCAxNjAsMjI0TCAxNjAsNDE2IEwgOTYsNDE2IGwwLTE5MiBjMC03
MC42OTEsIDY0LjQ3MS0xMjgsIDE0NC0xMjhjIDc5LjUyOSwwLCAxNDQsNTcuMzA5LCAxNDQsMTI4
TCAzODQsNDE2IEwgMzIwLDQxNiB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMmI7IiBkPSJN
IDQxNiw0MTZsMC0zMiBsLTcyLDAgTCAyMTYsNjRsIDcyLDAgbDAtMzIgTCA2NCwzMiBsMCwzMiBs
IDcyLDAgTCAyNjQsMzg0bC03MiwwIEwgMTkyLDQxNiBMIDQxNiw0MTYgeiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDJhOyIgZD0iTSAzMTIuNzIxLDIzMi45MDlDIDMzNi43NTgsMjUxLjk4NCwg
MzUyLDI4MC4zMzcsIDM1MiwzMTJjMCw1Ny40MzgtNTAuMTQ1LDEwNC0xMTIsMTA0TCAxMjgsNDE2
IGwwLTM4NCBsIDE0NCwwIAorCWMgNjEuODU2LDAsIDExMiw0Ni41NjIsIDExMiwxMDRDIDM4NCwx
ODAuMDk4LCAzNTQuNDQxLDIxNy43ODEsIDMxMi43MjEsMjMyLjkwOXogTSAxOTIsMzI4YzAsMTMu
MjU1LCAxMC43NDUsMjQsIDI0LDI0bCAzMy42MDIsMCAKKwlDIDI3MC44MDksMzUyLCAyODgsMzMw
LjUxLCAyODgsMzA0cy0xNy4xOTEtNDgtMzguMzk4LTQ4TCAxOTIsMjU2IEwgMTkyLDMyOCB6IE0g
MjczLjYsOTZMIDIxNiw5NiBjLTEzLjI1NSwwLTI0LDEwLjc0NS0yNCwyNGwwLDcyIGwgODEuNiww
IAorCWMgMjEuMjA5LDAsIDM4LjQtMjEuNDksIDM4LjQtNDhTIDI5NC44MDksOTYsIDI3My42LDk2
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDAxOyIgZD0iTSA0MjUuMzczLDM1OC42MjdsLTY2
Ljc0Niw2Ni43NDVDIDM0Ni4xODMsNDM3LjgxOCwgMzIxLjYsNDQ4LCAzMDQsNDQ4TCA5Niw0NDgg
Yy0xNy42LDAtMzItMTQuNC0zMi0zMmwwLTM4NCBjMC0xNy42LCAxNC40LTMyLCAzMi0zMmwgMzIw
LDAgCisJYyAxNy42LDAsIDMyLDE0LjQsIDMyLDMyTCA0NDgsMzA0IEMgNDQ4LDMyMS42LCA0Mzcu
ODE3LDM0Ni4xODIsIDQyNS4zNzMsMzU4LjYyN3ogTSA0MDIuNzQ1LDMzNi4wMDFjIDMuMzk2LTMu
Mzk4LCA2Ljg5Ni05LjU4MSwgOS40NDctMTYuMDAxTCAzMjAsMzIwIAorCUwgMzIwLDQxMi4xOTMg
YyA2LjQyLTIuNTUsIDEyLjYwMi02LjA1MCwgMTYtOS40NDhMIDQwMi43NDUsMzM2LjAwMXogTSA0
MTUuOTQyLDMyTCA5Ni4wNTcsMzIgYy0wLjAyMCwwLjAxNy0wLjA0MSwwLjAzOC0wLjA1NywwLjA1
OEwgOTYsNDE1Ljk0MyAKKwljIDAuMDE3LDAuMDIwLCAwLjAzOCwwLjA0MSwgMC4wNTcsMC4wNTdM
IDI4OCw0MTYgbDAtMTI4IGwgMTI4LDAgbDAtMjU1Ljk0MiBDIDQxNS45ODMsMzIuMDM4LCA0MTUu
OTYyLDMyLjAxNywgNDE1Ljk0MiwzMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMDsiIGQ9
Ik0gNDgwLDQwTCA0ODAsMzM1Ljk2OSBMIDM2OC4wMzEsNDQ4TCA3Miw0NDggYy0yMi4wOTEsMC00
MC0xNy45MDgtNDAtNDBsMC0zNjggYzAtMjIuMDkyLCAxNy45MDktNDAsIDQwLTQwbCAzNjgsMCAK
KwlDIDQ2Mi4wOTIsMCwgNDgwLDE3LjkwOCwgNDgwLDQweiBNIDI4OCwzODRsIDMyLDAgbDAtOTYg
bC0zMiwwIEwgMjg4LDM4NCB6IE0gMzUyLDY0TCAxNjAsNjQgTCAxNjAsMTkxLjk0MSBjIDAuMDE3
LDAuMDIxLCAwLjAzOCwwLjA0MSwgMC4wNTgsMC4wNTlsIDE5MS44ODUsMCAKKwljIDAuMDIwLTAu
MDE4LCAwLjA0MS0wLjAzOCwgMC4wNTgtMC4wNTlMIDM1Miw2NEwgMzUyLDY0eiBNIDQxNiw2NGwt
MzIsMCBMIDM4NCwxOTIgYzAsMTcuNi0xNC40LDMyLTMyLDMyTCAxNjAsMjI0IGMtMTcuNiwwLTMy
LTE0LjQtMzItMzJsMC0xMjggTCA5Niw2NCBMIDk2LDM4NCAKKwlsIDMyLDAgbDAtOTYgYzAtMTcu
NiwgMTQuNC0zMiwgMzItMzJsIDE2MCwwIGMgMTcuNiwwLCAzMiwxNC40LCAzMiwzMmwwLDg1LjUw
NSBsIDY0LTY0LjAzNkwgNDE2LDY0IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxYjsiIGQ9
Ik0gMzIsMzg0bDAtMzUyIGwgNDQ4LDAgTCA0ODAsMzg0IEwgMzIsMzg0IHogTSAxOTIsMTYwbDAs
NjQgbCAxMjgsMCBsMC02NCBMIDE5MiwxNjAgeiBNIDMyMCwxMjhsMC02NCBMIDE5Miw2NCBsMCw2
NCBMIDMyMCwxMjggeiBNIDMyMCwzMjBsMC02NCBMIDE5MiwyNTYgbDAsNjQgTCAzMjAsMzIwIHog
TSAxNjAsMzIwbDAtNjQgTCA2NCwyNTYgbDAsNjQgTCAxNjAsMzIwIAorCXogTSA2NCwyMjRsIDk2
LDAgbDAtNjQgTCA2NCwxNjAgTCA2NCwyMjQgeiBNIDM1MiwyMjRsIDk2LDAgbDAtNjQgbC05Niww
IEwgMzUyLDIyNCB6IE0gMzUyLDI1NmwwLDY0IGwgOTYsMCBsMC02NCBMIDM1MiwyNTYgeiBNIDY0
LDEyOGwgOTYsMCBsMC02NCBMIDY0LDY0IEwgNjQsMTI4IHogTSAzNTIsNjRsMCw2NCBsIDk2LDAg
bDAtNjQgTCAzNTIsNjQgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDIxOyIgZD0iTSAyNTYs
NDEwYyA0OS42ODMsMCwgOTYuMzkxLTE5LjM0NywgMTMxLjUyMS01NC40NzhTIDQ0MiwyNzMuNjgz
LCA0NDIsMjI0cy0xOS4zNDgtOTYuMzkxLTU0LjQ3OS0xMzEuNTIxUyAzMDUuNjgzLDM4LCAyNTYs
MzgKKwlzLTk2LjM5MSwxOS4zNDgtMTMxLjUyMiw1NC40NzlTIDcwLDE3NC4zMTcsIDcwLDIyNHMg
MTkuMzQ3LDk2LjM5MSwgNTQuNDc4LDEzMS41MjJTIDIwNi4zMTcsNDEwLCAyNTYsNDEwIE0gMjU2
LDQ0OAorCUMgMTMyLjI4OCw0NDgsIDMyLDM0Ny43MTIsIDMyLDIyNHMgMTAwLjI4OC0yMjQsIDIy
NC0yMjRzIDIyNCwxMDAuMjg4LCAyMjQsMjI0UyAzNzkuNzEyLDQ0OCwgMjU2LDQ0OEwgMjU2LDQ0
OHpNIDE2MCwyODhBMzIsMzIgMjcwMCAxIDEgMjI0LDI4OEEzMiwzMiAyNzAwIDEgMSAxNjAsMjg4
ek0gMjg4LDI4OEEzMiwzMiAyNzAwIDEgMSAzNTIsMjg4QTMyLDMyIDI3MDAgMSAxIDI4OCwyODh6
TSAyNTYsMTUyYy01MC45MiwwLTk2LjI4LDE4LjQzNy0xMjUuNTgzLDQ3LjE2NEMgMTQxLjk4LDE0
MC4zNiwgMTkzLjgwNiw5NiwgMjU2LDk2YyA2Mi4xOTQsMCwgMTE0LjAyMCw0NC4zNiwgMTI1LjU4
NCwxMDMuMTY0CisJQyAzNTIuMjgsMTcwLjQzNywgMzA2LjkyLDE1MiwgMjU2LDE1MnoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTAyMzsiIGQ9Ik0gMjQwLDI4OEwgMTQ0LDM4NEwgMjA4LDQ0OEwg
MzIsNDQ4TCAzMiwyNzJMIDk2LDMzNkwgMTkyLDI0MCB6TSAzMjAsMjQwTCA0MTYsMzM2TCA0ODAs
MjcyTCA0ODAsNDQ4TCAzMDQsNDQ4TCAzNjgsMzg0TCAyNzIsMjg4IHpNIDI3MiwxNjBMIDM2OCw2
NEwgMzA0LDBMIDQ4MCwwTCA0ODAsMTc2TCA0MTYsMTEyTCAzMjAsMjA4IHpNIDE5MiwyMDhMIDk2
LDExMkwgMzIsMTc2TCAzMiwwTCAyMDgsMEwgMTQ0LDY0TCAyNDAsMTYwIHoiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTAxYzsiIGQ9Ik0gMzIsMjU2TCA0ODAsMjU2TCA0ODAsMTkyTCAzMiwxOTJ6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWQ7IiBkPSJNIDMyLDk2bCAyNTYsMCBsMC02NCBM
IDMyLDMyIEwgMzIsOTYgeiBNIDM4NCwzODRMIDI3My43MjEsMzg0IGwtOTEuODgzLTI1NmwtNjYu
MTQ0LDAgbCA5MS44ODEsMjU2TCA5NiwzODQgTCA5Niw0NDggbCAyODgsMCBMIDM4NCwzODQgeiBN
IDQ2NC44ODcsMzJMIDQwMCw5Ni44ODcKKwlMIDMzNS4xMTMsMzJMIDMwNCw2My4xMTNMIDM2OC44
ODcsMTI4TCAzMDQsMTkyLjg4N0wgMzM1LjExMywyMjRMIDQwMCwxNTkuMTEzTCA0NjQuODg3LDIy
NEwgNDk2LDE5Mi44ODdMIDQzMS4xMTMsMTI4TCA0OTYsNjMuMTEzCisJTCA0NjQuODg3LDMyeiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDIyOyIgZD0iTSAxMjgsNDE2bCAyNTYsMCBsMC02NCBM
IDEyOCwzNTIgTCAxMjgsNDE2IHogTSA0NDgsMzIwTCA2NCwzMjAgYy0xNy42LDAtMzItMTQuNC0z
Mi0zMmwwLTEyOCBjMC0xNy42LCAxNC4zOTgtMzIsIDMyLTMybCA2NCwwIGwwLTk2IGwgMjU2LDAg
bDAsOTYgbCA2NCwwIAorCWMgMTcuNiwwLCAzMiwxNC40LCAzMiwzMkwgNDgwLDI4OCBDIDQ4MCwz
MDUuNiwgNDY1LjYsMzIwLCA0NDgsMzIweiBNIDM1Miw2NEwgMTYwLDY0IEwgMTYwLDE5MiBsIDE5
MiwwIEwgMzUyLDY0IHogTSA0NTUuMiwyNzJjMC0xMi44MTMtMTAuMzg3LTIzLjItMjMuMTk5LTIz
LjIKKwlTIDQwOC44LDI1OS4xODcsIDQwOC44LDI3MnMgMTAuMzg5LDIzLjIsIDIzLjIwMSwyMy4y
QyA0NDQuODE0LDI5NS4yLCA0NTUuMiwyODQuODEzLCA0NTUuMiwyNzJ6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMmU7IiBkPSJNIDE5Miw0MTZjLTYxLjg1NiwwLTExMi01MC4xNDQtMTEyLTEx
MnMgNTAuMTQ0LTExMiwgMTEyLTExMmwwLTE2MCBsIDY0LDAgTCAyNTYsMzUyIGwgMzIsMCBsMC0z
MjAgbCA2NCwwIEwgMzUyLDM1MiBsIDY0LDAgTCA0MTYsNDE2IEwgMTkyLDQxNiB6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwMmY7IiBkPSJNIDIyNCw0MTZjLTYxLjg1NiwwLTExMi01MC4xNDQt
MTEyLTExMnMgNTAuMTQ0LTExMiwgMTEyLTExMmwwLTE2MCBsIDY0LDAgTCAyODgsMzUyIGwgMzIs
MCBsMC0zMjAgbCA2NCwwIEwgMzg0LDM1MiBsIDY0LDAgTCA0NDgsNDE2IEwgMjI0LDQxNiB6TSAz
MiwzMkwgMTQ0LDEyOEwgMzIsMjI0IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMDsiIGQ9
Ik0gMTYwLDQxNkMgOTguMTQ0LDQxNiwgNDgsMzY1Ljg1NiwgNDgsMzA0cyA1MC4xNDQtMTEyLCAx
MTItMTEybDAtMTYwIGwgNjQsMCBMIDIyNCwzNTIgbCAzMiwwIGwwLTMyMCBsIDY0LDAgTCAzMjAs
MzUyIGwgNjQsMCBMIDM4NCw0MTYgTCAxNjAsNDE2IHpNIDQ4MCwyMjRMIDM2OCwxMjhMIDQ4MCwz
MiB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjY7IiBkPSJNIDI1NiwyODhMIDMyMCwyODhM
IDMyMCwyNTZMIDI1NiwyNTZ6TSAyNTYsOTZMIDMyMCw5NkwgMzIwLDY0TCAyNTYsNjR6TSAyODgs
MTkyTCAzNTIsMTkyTCAzNTIsMTYwTCAyODgsMTYwek0gMzg0LDE5MkwgMzg0LDk2TCAzNTIsOTZM
IDM1Miw2NEwgNDE2LDY0TCA0MTYsMTkyIAl6TSAxOTIsMTkyTCAyNTYsMTkyTCAyNTYsMTYwTCAx
OTIsMTYwek0gMTYwLDk2TCAyMjQsOTZMIDIyNCw2NEwgMTYwLDY0ek0gMTYwLDI4OEwgMjI0LDI4
OEwgMjI0LDI1NkwgMTYwLDI1NnpNIDk2LDM4NEwgOTYsMjU2TCAxMjgsMjU2TCAxMjgsMzUyTCAx
NjAsMzUyTCAxNjAsMzg0IAl6TSAzNTIsMjU2TCA0MTYsMjU2TCA0MTYsMzg0TCAzODQsMzg0TCAz
ODQsMjg4TCAzNTIsMjg4IAl6TSAzMiw0NDhsMC00NDggbCA0NDgsMCBMIDQ4MCw0NDggTCAzMiw0
NDggeiBNIDQ0OCwzMkwgNjQsMzIgTCA2NCw0MTYgbCAzODQsMCBMIDQ0OCwzMiB6TSA5NiwxOTJM
IDk2LDY0TCAxMjgsNjRMIDEyOCwxNjBMIDE2MCwxNjBMIDE2MCwxOTIgCXpNIDI4OCwzODRMIDM1
MiwzODRMIDM1MiwzNTJMIDI4OCwzNTJ6TSAxOTIsMzg0TCAyNTYsMzg0TCAyNTYsMzUyTCAxOTIs
MzUyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDI3OyIgZD0iTSA0MDgsNDQ4bCA4LTE5Mkwg
OTYsMjU2IGwgOCwxOTJsIDE2LDAgbCA4LTE2MGwgMjU2LDAgbCA4LDE2MEwgNDA4LDQ0OCB6IE0g
MTA0LDBsLTgsMTYwbCAzMjAsMCBsLTgtMTYwbC0xNiwwIGwtOCwxMjhMIDEyOCwxMjggbC04LTEy
OEwgMTA0LDAgek0gMzIsMjI0TCA5NiwyMjRMIDk2LDE5MkwgMzIsMTkyek0gMTI4LDIyNEwgMTky
LDIyNEwgMTkyLDE5MkwgMTI4LDE5MnpNIDIyNCwyMjRMIDI4OCwyMjRMIDI4OCwxOTJMIDIyNCwx
OTJ6TSAzMjAsMjI0TCAzODQsMjI0TCAzODQsMTkyTCAzMjAsMTkyek0gNDE2LDIyNEwgNDgwLDIy
NEwgNDgwLDE5MkwgNDE2LDE5MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNDsiIGQ9Ik0g
NDgwLDQxNkwgNDgwLDQ0OCBsLTk2LDAgYy0xNy42MDEsMC0zMi0xNC40LTMyLTMybDAtMTYwIGMw
LTcuOTI4LCAyLjkyOS0xNS4yMDEsIDcuNzQ4LTIwLjgwN0wgMjA4LDEwNWwtNzEsNzRsLTQxLTM1
bCAxMTItMTQ0bCAyMDgsMjI0bCA2NCwwIAorCQlsMCwzMiBsLTk2LDAgTCAzODQsNDE2IEwgNDgw
LDQxNiB6TSAxMjgsMjI0bCAzMiwwIEwgMTYwLDQxNiBjMCwxNy42LTE0LjQsMzItMzIsMzJMIDY0
LDQ0OCBjLTE3LjYsMC0zMi0xNC40LTMyLTMybDAtMTkyIGwgMzIsMCBsMCw5NiBsIDY0LDAgTCAx
MjgsMjI0IHogTSA2NCwzNTJMIDY0LDQxNiBsIDY0LDAgbDAtNjQgTCA2NCwzNTIgek0gMzIwLDI1
NmwwLDQ4IGMwLDE3LjYtNC40LDMyLTIyLDMyYyAxNy42LDAsIDIyLDE0LjQsIDIyLDMyTCAzMjAs
NDE2IGMwLDE3LjYtMTQuNCwzMi0zMiwzMmwtOTYsMCBsMC0yMjQgbCA5NiwwIEMgMzA1LjYsMjI0
LCAzMjAsMjM4LjQsIDMyMCwyNTZ6CisJCSBNIDIyNCw0MTZsIDY0LDAgbDAtNjQgbC02NCwwIEwg
MjI0LDQxNiB6IE0gMjI0LDMyMGwgNjQsMCBsMC02NCBsLTY0LDAgTCAyMjQsMzIwIHoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTAyNTsiIGQ9Ik0gMjI0LDIyNGwtNjQsMCBsMCw2NCBsIDY0LDAg
bDAsNjQgbCA2NCwwIGwwLTY0IGwgNjQsMCBsMC02NCBsLTY0LDAgbDAtNjQgbC02NCwwIEwgMjI0
LDIyNCB6IE0gNDgwLDE5MmwwLTE2MCBMIDMyLDMyIEwgMzIsMTkyIGwgNjQsMCBsMC05NiBsIDMy
MCwwIGwwLDk2IEwgNDgwLDE5MiB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTc7IiBkPSJN
IDIwOCwxMjhMIDExMiwyMjRMIDIwOCwzMjBMIDE3NiwzNTJMIDQ4LDIyNEwgMTc2LDk2IHpNIDMz
NiwzNTJMIDMwNCwzMjBMIDQwMCwyMjRMIDMwNCwxMjhMIDMzNiw5NkwgNDY0LDIyNCB6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNIDIyNCwxMjhsIDY0LDAgbDAtNjQgbC02NCww
IEwgMjI0LDEyOCB6IE0gMzUyLDM1MmMgMTcuNjczLDAsIDMyLTE0LjMyNywgMzItMzJsMC04MyBs
LTExNC03N2wtNDYsMCBsMCwzMiBsIDk2LDY0bDAsMzIgTCAxNjAsMjg4IGwwLDY0IEwgMzUyLDM1
MiB6IE0gMjU2LDQ0OAorCWMtNTkuODMzLDAtMTE2LjA4My0yMy4zLTE1OC4zOTItNjUuNjA4QyA1
NS4zMDEsMzQwLjA4MywgMzIsMjgzLjgzMywgMzIsMjI0YzAtNTkuODMyLCAyMy4zMDEtMTE2LjA4
NCwgNjUuNjA4LTE1OC4zOTIKKwlDIDEzOS45MTcsMjMuMywgMTk2LjE2NywwLCAyNTYsMGMgNTku
ODMyLDAsIDExNi4wODQsMjMuMywgMTU4LjM5Miw2NS42MDhDIDQ1Ni43LDEwNy45MTYsIDQ4MCwx
NjQuMTY4LCA0ODAsMjI0CisJYzAsNTkuODMzLTIzLjMsMTE2LjA4My02NS42MDgsMTU4LjM5MkMg
MzcyLjA4NCw0MjQuNywgMzE1LjgzMiw0NDgsIDI1Niw0NDh6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwMTQ7IiBkPSJNIDQ0OCw0MTZMIDY0LDQxNiBjLTE3LjYsMC0zMi0xNC40LTMyLTMybDAt
MzIwIGMwLTE3LjYsIDE0LjQtMzIsIDMyLTMybCAzODQsMCBjIDE3LjYsMCwgMzIsMTQuNCwgMzIs
MzJMIDQ4MCwzODQgQyA0ODAsNDAxLjYsIDQ2NS42LDQxNiwgNDQ4LDQxNnoKKwkJIE0gNDQ4LDY0
LjA1OGMtMC4wMDYtMC4wMDctMC4wMTUtMC4wMTQtMC4wMjEtMC4wMjFMIDM1MiwyMjRsLTgwLTY0
TCAxNjAsMzA0TCA2NC4wMTYsNjQuMDQyYy0wLjAwNSwwLjAwNS0wLjAxMSwwLjAxMS0wLjAxNiww
LjAxNgorCQlMIDY0LDM4My45NDMgYyAwLjAxNywwLjAyMCwgMC4wMzgsMC4wNDEsIDAuMDU3LDAu
MDU3bCAzODMuODg1LDAgYyAwLjAyMC0wLjAxNywgMC4wNDEtMC4wMzgsIDAuMDU4LTAuMDU4TCA0
NDgsNjQuMDU4IHpNIDMyMCwzMDRBNDgsNDggMjcwMCAxIDEgNDE2LDMwNEE0OCw0OCAyNzAwIDEg
MSAzMjAsMzA0eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE1OyIgZD0iTSA0NDgsNDE2TCA2
NCw0MTYgYy0xNy42LDAtMzItMTQuNC0zMi0zMmwwLTMyMCBjMC0xNy42LCAxNC40LTMyLCAzMi0z
MmwgMzg0LDAgYyAxNy42LDAsIDMyLDE0LjQsIDMyLDMyTCA0ODAsMzg0IEMgNDgwLDQwMS42LCA0
NjUuNiw0MTYsIDQ0OCw0MTZ6CisJIE0gMTI4LDY0TCA2NCw2NCBsMCw2NCBsIDY0LDAgTCAxMjgs
NjQgeiBNIDEyOCwxOTJMIDY0LDE5MiBsMCw2NCBsIDY0LDAgTCAxMjgsMTkyIHogTSAxMjgsMzIw
TCA2NCwzMjAgTCA2NCwzODQgbCA2NCwwIEwgMTI4LDMyMCB6IE0gMzUyLDY0TCAxNjAsNjQgTCAx
NjAsMzg0IGwgMTkyLDAgTCAzNTIsNjQgeiBNIDQ0OCw2NGwtNjQsMCBsMCw2NCBsIDY0LDAgTCA0
NDgsNjQgegorCSBNIDQ0OCwxOTJsLTY0LDAgbDAsNjQgbCA2NCwwIEwgNDQ4LDE5MiB6IE0gNDQ4
LDMyMGwtNjQsMCBMIDM4NCwzODQgbCA2NCwwIEwgNDQ4LDMyMCB6TSAxOTIsMzIwTCAxOTIsMTI4
TCAzMzYsMjI0IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxODsiIGQ9Ik0gMzguODk5LDMy
Ny42ODhsIDQwLjcwNy0yNS40NDFDIDEwNS4wMDcsMzQyLjgwNCwgMTQ0LDM3My45NzQsIDE5MC4y
MSwzODkuMzdsLTE1LjE4Myw0NS41NDcKKwkJQyAxMTguMTUzLDQxNS45NjgsIDcwLjE2MywzNzcu
NjA0LCAzOC44OTksMzI3LjY4OHpNIDMzNi45NzMsNDM0LjkxN0wgMzIxLjc5LDM4OS4zN2MgNDYu
MjExLTE1LjM5NiwgODUuMjAyLTQ2LjU2NiwgMTEwLjYwNC04Ny4xMjRsIDQwLjcwNiwyNS40NDEK
KwkJQyA0NDEuODM3LDM3Ny42MDQsIDM5My44NDcsNDE1Ljk2OCwgMzM2Ljk3Myw0MzQuOTE3ek0g
MzAzLjk4NywxMjcuOTk2Yy0yLjQwNCwwLTQuODQ2LDAuNTQ1LTcuMTQzLDEuNjkzTCAyMjQsMTY2
LjExMUwgMjI0LDI3MiBjMCw4LjgzNiwgNy4xNjQsMTYsIDE2LDE2cyAxNi03LjE2NCwgMTYtMTZs
MC04Ni4xMTEgCisJCWwgNTUuMTU1LTI3LjU3OGMgNy45MDMtMy45NTEsIDExLjEwNy0xMy41NjIs
IDcuMTU1LTIxLjQ2NkMgMzE1LjUwOCwxMzEuMjM4LCAzMDkuODU2LDEyNy45OTcsIDMwMy45ODcs
MTI3Ljk5NnpNIDI1NiwzODRDIDE0OS45NjEsMzg0LCA2NCwyOTguMDM5LCA2NCwxOTJjMC0xMDYu
MDM5LCA4NS45NjEtMTkyLCAxOTItMTkyYyAxMDYuMDM5LDAsIDE5Miw4NS45NjEsIDE5MiwxOTIK
KwlDIDQ0OCwyOTguMDM5LCAzNjIuMDM5LDM4NCwgMjU2LDM4NHogTSAyNTYsNDhjLTc5LjUyOSww
LTE0NCw2NC40NzEtMTQ0LDE0NGMwLDc5LjUyOSwgNjQuNDcxLDE0NCwgMTQ0LDE0NGMgNzkuNTI5
LDAsIDE0NC02NC40NzEsIDE0NC0xNDQKKwlDIDQwMCwxMTIuNDcxLCAzMzUuNTI5LDQ4LCAyNTYs
NDh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTk7IiBkPSJNIDMyLDI1Mi4xMjdjIDIyLjY1
OSwyNC45NiwgNDguNTgxLDQ2LjE4LCA3Ni42MzYsNjIuNTYyQyAxNTMuODAyLDM0MS4wNjEsIDIw
NC43NTksMzU1LCAyNTYsMzU1CisJCWMgNTEuMjQsMCwgMTAyLjE5OC0xMy45MzksIDE0Ny4zNjMt
NDAuMzEyYyAyOC4wNTYtMTYuMzgyLCA1My45NzgtMzcuNjAyLCA3Ni42MzctNjIuNTYybDAsNTgu
NzE2IAorCQljLTE2LjUwNSwxNC4wNTktMzQuMDYyLDI2LjU3LTUyLjQzNCwzNy4yOTdDIDM3NS4w
NjMsMzc4Ljc5NiwgMzE1LjczNywzOTUsIDI1NiwzOTVzLTExOS4wNjQtMTYuMjA0LTE3MS41Njct
NDYuODYKKwkJQyA2Ni4wNjIsMzM3LjQxMywgNDguNTA1LDMyNC45MDEsIDMyLDMxMC44NDJMIDMy
LDI1Mi4xMjcgek0gMjU2LDMyMGMtOTEuNTk4LDAtMTcyLjkxOS01MC4yNzgtMjI0LTEyOGMgNTEu
MDgxLTc3LjcyNCwgMTMyLjQwMi0xMjgsIDIyNC0xMjhjIDkxLjU5OCwwLCAxNzIuOTE5LDUwLjI3
NiwgMjI0LDEyOAorCUMgNDI4LjkxOSwyNjkuNzIyLCAzNDcuNTk4LDMyMCwgMjU2LDMyMHogTSAy
NTYsMjI0YzAtMTcuNjczLTE0LjMyNy0zMi0zMi0zMnMtMzIsMTQuMzI3LTMyLDMyYzAsMTcuNjc0
LCAxNC4zMjcsMzIsIDMyLDMyCisJUyAyNTYsMjQxLjY3NCwgMjU2LDIyNHogTSAzNjQuMDMzLDEz
MS42NjlDIDMzMC4zMTYsMTExLjk4MiwgMjkzLjk2OSwxMDIsIDI1NiwxMDJzLTc0LjMxNiw5Ljk4
Mi0xMDguMDMzLDI5LjY2OQorCUMgMTIyLjE5LDE0Ni43MjEsIDk4LjY1OSwxNjcuMzI0LCA3OC45
MSwxOTJjIDE5Ljc0OSwyNC42NzUsIDQzLjI4LDQ1LjI3OSwgNjkuMDU4LDYwLjMzYyA2LjYzOCwz
Ljg3NiwgMTMuMzc5LDcuMzcsIDIwLjIxMywxMC40OTEKKwlDIDE2Mi45MjUsMjUwLjk1LCAxNjAs
MjM3LjgxNywgMTYwLDIyNGMwLTUzLjAyMCwgNDIuOTgxLTk2LCA5Ni05NmMgNTMuMDIwLDAsIDk2
LDQyLjk4LCA5Niw5NmMwLDEzLjgxNy0yLjkyNSwyNi45NS04LjE4LDM4LjgyMQorCWMgNi44MzQt
My4xMjIsIDEzLjU3NS02LjYxNSwgMjAuMjEzLTEwLjQ5MWMgMjUuNzc3LTE1LjA1MSwgNDkuMzA4
LTM1LjY1NSwgNjkuMDU4LTYwLjMzCisJQyA0MTMuMzQyLDE2Ny4zMjQsIDM4OS44MTEsMTQ2Ljcy
MSwgMzY0LjAzMywxMzEuNjY5eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFhOyIgZD0iTSAz
MjUuNTg0LDMzOC4wODNDIDMxMy4yNzgsMzc5LjA2NCwgMzExLjE0NiwzODQsIDI3MiwzODRsLTMy
LDAgYy0zOS44MDksMC00MS4zMzItNS4wNzYtNTQuMjA5LTQ4YzAtMC4wMDEsMC0wLjAwMS0wLjAw
MS0wLjAwMgorCUwgMTEzLjc5MSw5NmwgNTYuODE4LDAgbCAyOC44LDk2bCAxMTMuMTgzLDAgbCAy
OC44LTk2bCA1Ni44MTUsMCBMIDMyNS41ODQsMzM4LjA4M3ogTSAyMTguNjA5LDI1NmwgMTkuMiw2
OGMgNS4wNDMsMTYuODA5LCAxOC4xOSwxNSwgMTguMTksMTUKKwlzIDEzLjE0NywxLjgwOSwgMTgu
MTktMTVsIDAuMDAyLDAgbCAxOS4yLTY4TCAyMTguNjA5LDI1NiB6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwMjg7IiBkPSJNIDI4OCw0NDggQyA0MTEuNzEyLDQ0OCA1MTIsMzQ3LjcxMiA1MTIs
MjI0IEMgNTEyLDEwMC4yODggNDExLjcxMiwwIDI4OCwwIEwgMjg4LDQ4IEMgMzM1LjAxMiw0OCAz
NzkuMjA5LDY2LjMwNyA0MTIuNDUxLDk5LjU0OSBDIDQ0NS42OTMsMTMyLjc5MSA0NjQsMTc2Ljk4
OCA0NjQsMjI0IEMgNDY0LDI3MS4wMTEgNDQ1LjY5MywzMTUuMjA5IDQxMi40NTEsMzQ4LjQ1MSBD
IDM3OS4yMDksMzgxLjY5MyAzMzUuMDEyLDQwMCAyODgsNDAwIEMgMjQwLjk4OSw0MDAgMTk2Ljc5
MSwzODEuNjkzIDE2My41NDksMzQ4LjQ1MSBDIDEzNy45NzksMzIyLjg4MiAxMjEuMjU4LDI5MC44
MjggMTE0Ljg5NiwyNTYgTCAyMDgsMjU2IEwgOTYsMTI4IEwgLTE2LDI1NiBMIDY2LjI4NSwyNTYg
QyA4MS44MTUsMzY0LjU1MSAxNzUuMTU0LDQ0OCAyODgsNDQ4IFpNIDM4NCwyNTYgTCAzODQsMTky
IEwgMjU2LDE5MiBMIDI1NiwzNTIgTCAzMjAsMzUyIEwgMzIwLDI1NiBaIiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMDI7IiBkPSJNIDUxMiwxODMuNzcxbDAsODAuNDU4IGwtNzkuNTcyLDcuOTU3
Yy00LjA5MywxNS4wMjEtMTAuMDQ0LDI5LjI3NC0xNy42MDUsNDIuNDlsIDUyLjI5OCw2My45MTlM
IDQxMC41OTUsNDM1LjEybC02My45MTgtNTIuMjk4CisJYy0xMy4yMTcsNy41NjItMjcuNDcxLDEz
LjUxMy00Mi40OTEsMTcuNjA0TCAyOTYuMjI5LDQ4MGwtODAuNDU4LDAgbC03Ljk1Ny03OS41NzNj
LTE1LjAyMS00LjA5My0yOS4yNzQtMTAuMDQzLTQyLjQ5LTE3LjYwNAorCUwgMTAxLjQwNSw0MzUu
MTJMIDQ0Ljg4LDM3OC41OTVsIDUyLjI5OC02My45MThjLTcuNTYyLTEzLjIxNi0xMy41MTMtMjcu
NDctMTcuNjA1LTQyLjQ5TDAsMjY0LjIyOWwwLTgwLjQ1OCBsIDc5LjU3My03Ljk1NworCWMgNC4w
OTMtMTUuMDIxLCAxMC4wNDMtMjkuMjc0LCAxNy42MDUtNDIuNDkxTCA0NC44OCw2OS40MDVsIDU2
LjUyNC01Ni41MjRsIDYzLjkxOSw1Mi4yOThjIDEzLjIxNi03LjU2MiwgMjcuNDctMTMuNTE0LCA0
Mi40OS0xNy42MDUKKwlMIDIxNS43NzEtMzJsIDgwLjQ1OCwwIGwgNy45NTcsNzkuNTcyYyAxNS4w
MjEsNC4wOTMsIDI5LjI3NCwxMC4wNDQsIDQyLjQ5MSwxNy42MDVsIDYzLjkxOC01Mi4yOThsIDU2
LjUyNCw1Ni41MjRsLTUyLjI5OCw2My45MTgKKwljIDcuNTYyLDEzLjIxNywgMTMuNTE0LDI3LjQ3
MSwgMTcuNjA1LDQyLjQ5TCA1MTIsMTgzLjc3MXogTSAzNTIsMTkybC02NC02NGwtNjQsMCBsLTY0
LDY0bDAsNjQgbCA2NCw2NGwgNjQsMCBsIDY0LTY0TCAzNTIsMTkyIHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAxZjsiIGQ9Ik0gMzg0LDM3NyBMIDM4NCwzNTIgTCA0NDgsMzUyIEwgNDQ4LDMy
MCBMIDM1MiwzMjAgTCAzNTIsMzkzIEwgNDE2LDQyMyBMIDQxNiw0NDggTCAzNTIsNDQ4IEwgMzUy
LDQ4MCBMIDQ0OCw0ODAgTCA0NDgsNDA3IFpNIDMzOCwzNTJMIDI3MCwzNTJMIDE3NiwyNThMIDgy
LDM1MkwgMTQsMzUyTCAxNDIsMjI0TCAxNCw5NkwgODIsOTZMIDE3NiwxOTBMIDI3MCw5NkwgMzM4
LDk2TCAyMTAsMjI0IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxZTsiIGQ9Ik0gMzg0LDI1
IEwgMzg0LDAgTCA0NDgsMCBMIDQ0OC0zMiBMIDM1Mi0zMiBMIDM1Miw0MSBMIDQxNiw3MSBMIDQx
Niw5NiBMIDM1Miw5NiBMIDM1MiwxMjggTCA0NDgsMTI4IEwgNDQ4LDU1IFpNIDMzOCwzNTJMIDI3
MCwzNTJMIDE3NiwyNThMIDgyLDM1MkwgMTQsMzUyTCAxNDIsMjI0TCAxNCw5NkwgODIsOTZMIDE3
NiwxOTBMIDI3MCw5NkwgMzM4LDk2TCAyMTAsMjI0IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAzNTsiIGQ9Ik0gMzUyLDI4OGwwLDgwIGMwLDguOC03LjIsMTYtMTYsMTZsLTgwLDAgTCAyNTYs
NDE2IGMwLDE3LjYtMTQuNCwzMi0zMiwzMmwtNjQsMCBjLTE3LjYwMiwwLTMyLTE0LjQtMzItMzJs
MC0zMiBMIDQ4LDM4NCBjLTguODAxLDAtMTYtNy4yLTE2LTE2CisJCWwwLTI1NiBjMC04LjgsIDcu
MTk5LTE2LCAxNi0xNmwgMTEyLDAgbDAtOTYgbCAyODgsMCBMIDQ0OCwyODggTCAzNTIsMjg4IHog
TSAxNjAsNDE1Ljk0M2MgMC4wMTcsMC4wMTksIDAuMDM2LDAuMDM5LCAwLjA1NywwLjA1N2wgNjMu
ODg0LDAgCisJCWMgMC4wMjEtMC4wMTgsIDAuMDQxLTAuMDM4LCAwLjA1OS0wLjA1N0wgMjI0LDM4
NCBsLTY0LDAgTCAxNjAsNDE1Ljk0MyB6IE0gOTYsMzIwbDAsMzIgbCAxOTIsMCBsMC0zMiBMIDk2
LDMyMCB6IE0gNDE2LDMyTCAxOTIsMzIgTCAxOTIsMjU2IGwgMjI0LDAgTCA0MTYsMzIgek0gMjI0
LDIyNEwgMjI0LDE2MEwgMjQwLDE2MEwgMjU2LDE5MkwgMjg4LDE5MkwgMjg4LDk2TCAyNjQsOTZM
IDI2NCw2NEwgMzQ0LDY0TCAzNDQsOTZMIDMyMCw5NkwgMzIwLDE5MkwgMzUyLDE5MkwgMzY4LDE2
MEwgMzg0LDE2MEwgMzg0LDIyNCAJeiIgZGF0YS10YWdzPSJwYXN0ZXRleHQiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTAzMjsiIGQ9Ik0gMzg0LDM1MkwgNDE2LDM1MkwgNDE2LDMyMEwgMzg0LDMy
MHpNIDMyMCwyODhMIDM1MiwyODhMIDM1MiwyNTZMIDMyMCwyNTZ6TSAzMjAsMjI0TCAzNTIsMjI0
TCAzNTIsMTkyTCAzMjAsMTkyek0gMzIwLDE2MEwgMzUyLDE2MEwgMzUyLDEyOEwgMzIwLDEyOHpN
IDI1NiwyMjRMIDI4OCwyMjRMIDI4OCwxOTJMIDI1NiwxOTJ6TSAyNTYsMTYwTCAyODgsMTYwTCAy
ODgsMTI4TCAyNTYsMTI4ek0gMTkyLDE2MEwgMjI0LDE2MEwgMjI0LDEyOEwgMTkyLDEyOHpNIDM4
NCwyODhMIDQxNiwyODhMIDQxNiwyNTZMIDM4NCwyNTZ6TSAzODQsMjI0TCA0MTYsMjI0TCA0MTYs
MTkyTCAzODQsMTkyek0gMzg0LDE2MEwgNDE2LDE2MEwgNDE2LDEyOEwgMzg0LDEyOHpNIDM4NCw5
NkwgNDE2LDk2TCA0MTYsNjRMIDM4NCw2NHpNIDMyMCw5NkwgMzUyLDk2TCAzNTIsNjRMIDMyMCw2
NHpNIDI1Niw5NkwgMjg4LDk2TCAyODgsNjRMIDI1Niw2NHpNIDE5Miw5NkwgMjI0LDk2TCAyMjQs
NjRMIDE5Miw2NHpNIDEyOCw5NkwgMTYwLDk2TCAxNjAsNjRMIDEyOCw2NHoiIGRhdGEtdGFncz0i
cmVzaXplLCBkb3RzIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzQ7IiBkPSJNIDQ2NCw0MTZM
IDI1Niw0MTZMIDI0MCw0NDhMIDY0LDQ0OEwgMzIsMzg0TCA0ODAsMzg0IHpNIDQyMC4xNywxMjhM
IDQ2NCwxMjggbCAxNiwyMjRMIDMyLDM1MiBsIDMyLTMyMGwgMTc4LjA0MCwwIEMgMTg5LjU5OSw1
MC44ODgsIDE1MiwxMDEuMTMzLCAxNTIsMTYwYzAsNzQuOTkxLCA2MS4wMDksMTM2LCAxMzYsMTM2
CisJYyA3NC45OSwwLCAxMzYtNjEuMDA5LCAxMzYtMTM2QyA0MjQsMTQ5LjE2MSwgNDIyLjY4OSwx
MzguNDI1LCA0MjAuMTcsMTI4ek0gNDM3LjQ5OCw1NS4xMjVsLTY3LjI0OCw1NS4zNDZDIDM3OC45
NzcsMTI0LjkzMiwgMzg0LDE0MS44NzgsIDM4NCwxNjBjMCw1My4wMjAtNDIuOTgsOTYtOTYsOTZz
LTk2LTQyLjk4LTk2LTk2CisJcyA0Mi45OC05NiwgOTYtOTZjIDE4LjEyMiwwLCAzNS4wNjksNS4w
MjMsIDQ5LjUyOSwxMy43NWwgNTUuMzQ2LTY3LjI0OGMgMTEuNDgxLTEzLjMzOSwgMzEuMDU5LTE0
LjA3MCwgNDMuNTAzLTEuNjI2bCAyLjc0NiwyLjc0NgorCUMgNDUxLjU2OCwyNC4wNjYsIDQ1MC44
MzcsNDMuNjQ0LCA0MzcuNDk4LDU1LjEyNXogTSAyODgsOThjLTM0LjI0MiwwLTYyLDI3Ljc1OC02
Miw2MnMgMjcuNzU4LDYyLCA2Miw2MnMgNjItMjcuNzU4LCA2Mi02MgorCVMgMzIyLjI0Miw5OCwg
Mjg4LDk4eiIgZGF0YS10YWdzPSJicm93c2UiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjA7IiBo
b3Jpei1hZHYteD0iMjU2IiAvPgorPC9mb250PjwvZGVmcz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS1zbWFsbC5l
b3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9z
a2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS1zbWFsbC5lb3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBlMmQy
ZTVjNzQ3Y2FmOWQ0MTMxMDk3NmFmOTZjNzVjNjk2YjQ0OApHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMTAzMTYKemNtZDU/VTJHaUpiLXM4MF9pdUtXeVIkPHw8Wl5iRzxXUTh2enV8S0FXNj5pXndr
MjZeWGVtdCRNNnJrZEg9LVhfCnpjMmhmVW5ASkRATDBjM2Bmd1puKzYhWCRUZUpSdXdaNDx5SyN4
RiU0M1JLQk07cjV9fkIwJTdfMnIzd0xQISNVNgp6LT9fODFUdjhHWkJRR0JFJk9QX2V5PVR0N191
VEtDZHVHcWlHSXFtZGo1Q1N0eWcwa1RzcGtDcCZVJEtfVHRFQXAKelV3dzE7R3NnQ0BTSn0oI0R0
bno+VmI4TVgqPHRueXMxMEAqZX5nKnowX3Q5NXptQyFkeU47Un5gdlBqTnF0KG1vCno4dX5lR2lP
c1ZgSmxVSFE4anY3NDdCWlBGZSh2Skp2ZUVwLWYxPjdIcX5PXnI4PUxHMChIMHR3cWtRU2JqYU4z
Mgp6bXIjQlV4JCl4VipJKEZwYFg/dCk0akY2U2RnPUwlPWVCUEIrZk52cXFGMWxKZ2JNa2AoaXFB
d3AqOzF7bH4tU1QKem5QOzg9YEZrakxGSkY2aDt9QDVIe3ZsKTJHXzMxYUhlVENnWFpRbXNjVHNr
KFpkYGYoWlJffCYjJTU2RCpFWC1jCnpAKyMhUzwmcW9AbE9ASilGY3Jfdl5BfUxfWGd+am1qaj9a
MHlQPUNpPzQ2ZW41ISRARmcrSlp9SD9TRk1LeEhOdAp6bC1eanlkK0JNRkRlTWUjbE5vclhxMFpe
ZmM5KjtEdF5lRD9KbUdTPnRVSzNUNW9OeWhRJTctUk45eSskNGY7M0UKeklDPk9eLVU7UkQ5MkZ2
TCVkdk56IVc7PFE8dVQrTVczJWltWDBHZnVueDxyeHQ5OGsxRVUhc3oqfFM+aE5+P1dECnpVaDxH
RXVobXxlbWt4NVluJjdSblhRQWJCaitRNjVaU240QT98cXx+KTNqWEM7RzBDbmpeb0YlQDJIdWE5
X3pWYAp6PklnQy0oeDJ0Q283QSotVzY8ZnpBbjMobTd9OWc8NkxMUkQ9YFdvOGg9d21TQTlCWiN5
VXFAPWhke2dZdmhKRikKekUhU214eTAje0Q8a2ZrfSlscVVnJVhNa1Z1QmJEJG5WTVM+Y1UhbDBs
eEElSD1jZzNZRU5NVHxAYGxEYVNGJX15CnpLV0pwTDNKUTM7Vm9RP0RyN3ZAPyQ/RUJSPz4kdGYq
TChhTWVlJVVxM1BlU0x5NyNgKEAyKGtuamhENU9YKH1+SQp6UnUhM2xOI0BHdy1qRGpkek1rWT89
VWFsSGFiZE4jeTNvbGsjeiQrPiM8MUx1dEl4e3x5cnI4TXFIZGRWa3l8emYKenJyVnZtSmp1UHpu
JXVFRj93YjR7Y2xET3I/cyZFKHYzMEh9cz1SVzxTOTk1JVd+Pl87YUA5WXcwIWI5VXt0MXNHCnpV
dEhoK2wtK2k1SDQtaWlJYDEkQ2RQWFJyMTEqWS1SVGBHfll4aUA5JDMwJnByYFAzX0xPPTgpQitT
Ym17WDR0Kwp6MmJedFRReV5fS18lIV9eQCQjSmw/OXU7amBPfFQxemFIfFJXPngrIXpyfktScnZT
MmxndGFBdz9KVGJHODVmR24Kej53TC05WEd9PnFySjd5bVlhRlpVYzVKT0sqPiEyUHYmUUdLeEtJ
RjdaWilDVV5HT1IycypVR1d0QW9uKyU5PXpLCnpSQEliUlA/TXlnPl5gdWd0KX14Xm5UbG0pb25S
IWRqWWlSXm1MQ2I2dFl1WClXPVlRR0B7YFNgbmFMWTZjTntKbwp6YEhiMFlQVWRyMnhueW99Uzx3
X0ljfitHYTYta3kyTCY7RTRSVFc4PXF8Yz1ySE89MV5QZ0hiSyY9cCQ9dCo5JCUKekdLeWl5dmh0
bmVUfHNTWG99YChkc3MrMj5vNTtJYyN6U2YqVjw/S1FOKnJ2SkxhQWdaSSRwc2Noby02MFYrMDxs
Cno5RiVgZXFMISt6Q2BLaiY1ajJmOUheIXRaTXlYVSM3KmhvdjYwWGQhSHI4czVKcSZDfjtCRlo3
UWgrP3BFdzlzVgp6eGhYV1orSWt5ayQ9amFaWCNxN29pd0JyOGQ3VlZATnJyVjl2cGBqd2FTKzdW
QTkyaT89bE1ZaHI1NnZLUkFoJm0Kelo4N1NBcmxJMm1qPz8/Tz1Vb2lDVlNpNX4qdUJhZ1hWMC1X
QVN2RzFaZHJ1YXthaiU1SGEtdHlIODh4ek5rPlI7CnpmWnUoXj5EKm1xLShBSnU5ZHt4cEw+a3g0
akhZRXd7V1QpfDBZeWFiISVLPiQlQ2YyezFMN0djb3ErLUlDeGVGcgp6ZmBoamNRWClSQHJ8KT5A
b3M8JCltPmYofCU4JkIrNkR5Ym9ZJFlzO2BkSCoock8kMlM1dXVWeXd2Uzk3JUBNNk4Kem5ZZ194
O3NJJl5JbHxxVl9lb19RYDJxZzt6fE4mUTVUISgjLSZGeEBAdi10PD14bDxtKD51ckZ3cClveEty
TTdxCnpqVT1JVmhzZHplXyFrJUNOV31UdXYkVnV4XnxLREgyd3NAakEyZkh7STZqaVImQm0rfDY2
IzIwVE5odityQmYwUwp6dFohfShAUittcF4qd21lM1okc1liekFVQ1N0VWx8RT95RyR0dU4lN1d7
KkxsUkdGZE9DcGZ7UGc7Z1pAVHNfOEQKejtubm5Ze29hcW1ZSE1HeXhVV15FeXVSfHR0aHMtKm1M
OyRRJHwkbkwqKFd1fm0mVF9wWWtJc3l4cTB3aCQya1RjCnpDeF9reVBrVFBaUW5Ea3MxejFsTFIp
VDxFeDc/MWtUSVljN0FVOUd6YkB0fVhDdHNMIVNLMEl2QytEUFZIKmEyJQp6UGR4Sm15azdLO2FR
azc+bSR6LWJKIUE1a1AxZUhaJmRyLT1QbkFiPHRNMjNyUHg2YWJacjsybSY3Rks9YGhob3wKeklS
T197N1Q5K2llYjJCelckJUZ4b0RiNmVBfiQpcEhweDQlSXhETFdhQGVmcHJETCNJOXQ+NGdxc01j
K3dLJklUCnorSGc8bUdIc0x4QHkzLUl4NSh8fitCamJ0bShYbXs8anRpeWpIbChVZkt6Kk1Xc05W
dnZLYH56O3hTJmM7S0t9Rgp6REFTSWM8TzYwaFpOJnd5VzV4UFhLbk9DRjt7OUBxLS1aaFlLTF5m
RU0hOUk8OyFXWElUX251c05UO1pIUUlOMH0KelFkNlMjRHg5S3pgKiVNQGRzczU0Zn5FfD1HcCp5
I05pdFNoI3VaN3JwLVh+LWslOGh8SWhENCRYanFuSUtuaUx8CnpWdiZGWTYwK31YXz02QHlNak5E
bFRPdShJUTV0VChKKnc/QFpPQEY8cC13YHFofiFFclZ2Vzw3U3BWKXx7b2lOKgp6I2RCYk5eZlJk
bUhaKS1ZeTBrKlIoSzU3P1JEcnhCUWp1aU9XMHl+R0BgZGhVKHgmays/WmNaaERKUipaISRRKCkK
enooLUc9RGphJEdVZTskdy1Ge1Ezbj9HMWhLPyF2V2g3Qlh4I21HLTwyMUdDVnJNaUN4SDJPRDRx
eTUyN09ETkxsCno2RXgoKEttYCN8UlhQV2h8TVp2WDQ3YDxDaH17dWwmIXstbnV1OGRPbW0zdlZG
TURNaVY3RktvanZKWSo1S1ZnRAp6NEZkakhAMn1CS1V+U0Bxakl0RnY+RzU0Pj9sTzVFV3dAMCU5
TyVmMVkqNm0qX0MmeHFPcX5OaHBufjx5ZlFPK2AKekN9Kj9mZnwyR3RCMlQwajQ/NmZuXmBna1hh
ZmtjOF98OS0rPkk3TGN6PWMlUzNEI3NUUFRXZ3VsXnV0N2R+ZG5RCno0WWxCNF5sdWYhMis5Wj00
QShXUiZiPFppI2ZjTnJqcEhEcHdoI2lsa0p2cz1oeEN1TDkpd1J6YW5RR0Fnaz1oPQp6RmomUzhg
TllaSSk8S1lQWnNIUDxxM0loZjlKJEVNa1FNNUo4Qk5YZ2A1PW1lK00oSSRWcmlfRCQ+M0k7bztf
NSUKenk5USEoWD51PDw0b31KdF9HbWZpT1p2ME8wKUNxWmlULXJ4dFohRWtvVWw4JGc4JlkyPGNM
aCVJMT5mWjl+Rzs+CnpfJkBXJVZ0S0BFSV94fiNmY0R1NDFoe1o9cllZPnZMRjdRNShQcCMtb0x8
LT9kekVtRiZXWnBAKlRxUnczX0thSgp6VWUqI3xMcUxIfWtGSStsR2RreytpPGFBKCRuJntrKiU9
P3I5TFBfIVQmc2NZI2ApUUZDdnt8KUxjb244RXpVbCYKelFZVXZRJkZkPyFaTSMmTDxvd0stSWNg
O3kxKjFDUVI0eStsNj5Ib2F0MmglP3F4VFFraCtKeFlNYmMkTlVLQ2xFCnp6UE1rKShONXRpOSZH
VlI/QHstXyF8ZSZxQyl5N21hM0EkMWRHOWF6PXVDVEood25WdVVZcXFNQyl6V2t1d3g0Sgp6bTMr
YjlXcG5JN19JZFVsdFVlfVk0U3RET1h9Z1Y/TmdOSUcyeXR8VlluVjcxbjZzOFJKKlBPMjlAZnhG
VENuTXUKeiFafUhnMTF7em98S1F7cGx9YV5OWnEzWThEbDs+IWE7e3BiNytSclZZU3A9ZWhpa1JO
Mmp7QXFTdHd9VD1FPFc9CnptQ0RsNWxnKHt2X1l2VzhWYy02Nyg7Vk53dWFGJVhEZH5EP1dGKDYt
dDRiJG1wMVAtOzQmNzlfLVI5JVdOVV5BOAp6aSY8NjBPKUN+aEdSTV95Q1pwdWJjfT5HaiR6LXpY
QHpXI0NnXjd1VT0xN19jREpaMSpCX29IVXZZczxrdnNsaCMKeiUwKk1mK2huZk5makBQRD1eVUAo
IzRTdFB0d151MEwkN315PUxETlZ1WTZ0PjtYKjwoLTl2b0piTT8tZXc3aiZxCnpUPDcrWi1RdGde
ZGJWNzJpc2hgWG87Zjt4ZWY7UXx1VCplfk42PGklRChDb3hWa0lOWCotR2g3NVBXI3l3NUcjfQp6
KE40MiRBRGNwfmRJdFYtZ15qWHBpfj00diRfKlI5KTNVTXN5KkF5JXYwTnVPWHdkQmgkNlh+I3JG
SVVYYnJkRjcKejZ3dCpUeTcjJlgjbHYzMjFIZ2xXcXF+blFwcW5HRzJMJCNld2tlQ0RlfXdXUCR8
WlBtSTs5QyphYCt2QU85aDExCno4QVkkIXlkfTJ+VXV7Xmg5NiRnQl5DJiopaCF8RklfMG1JXkhv
NWJ9JCYtX1Z8R0BYVExxUlV6Pz9yPUo1T0BYVgp6LWI2ZSkyQnpkTmApdH54ITNvNSg7MnBVdzgh
TGJYei1iSUBmfiUqV2RnXm8taXU+NEBiR0RBZTQ/T2kkNyRPbGIKenRScUh+QEl0Zz56KVJubzdr
fENhdGRzSmhkMTA4QjcjMHRhJT47U0c+NiNHTzA8P0o4blpyUlc5OVA/Vml3RU5pCnolfVZSVWg1
N2psQ3Q4KX0hZyUwQmx9UzVxQTZUODdUczs2e3ZJM20rRTRpdHxELSRYRE9zcEs5JTJnSU91Vnc0
Zwp6aGVqTDY0dm1jK0lAVENIRytvYkwrZyF2dkM5eGlvWEJMKzFCNzJHYjdVV0FYZjxTPHJOI0Zw
V2ZAQzg2WGFneUIKekw7e3hkLVBZTEtUX0h7XmVSS2dzJk1IJWx4Pj1+MnheN2tyWDF5XzB4eDBv
Mm5odSFxVV5oNX55RE9aXmxyeEBGCno/WiV2SyZveWl7SHx8VlRffWhFRFdBTjZRO1d5RW5xWjl6
e213I0smbXZnbjV7aVZ8V25PZCUjKjlHUH1TbGI5eAp6MTNVaEJxV051PSsjMHlrXm5uMTFQTThW
YjlJbE5fP20mbH1eSUBuQmgwNlFlNHZofkxQbylVcl8oZlNhUk1wVnMKekcpSkpxN24zODViK0Fv
dHVgcytuKz4mfUV3anQzJGpUUHxDVj9YM3s1dmp3NT0tNiMrNEdYKVlqWkxDTTh7TipHCnp6YHVw
YW9WWDg+S21AOEVzdTNofk4qbjA3NGVQVDImK2I+Q1MlQEgjb3tNPn5EVExvYWJndTJHLWNVJTwh
K2Z8JQp6RW1aYGEodXEyVkVrfVZVbW99YyplWWA3eG50PWJVTS1PYj9oOChAZkEkPEB0PEBtVnA5
VDgqNGgkWDVJTTJBMjsKek5Mb2craDdqeUcmJFZ1Sm9oWGplOElGUz4jQyRITVdrR2FfTVRCWXNI
d29qVGJxP1RuU1VAaVZSZ2M3aWJTZjx7CnpyTEhlNyZVJW1wVVF0cVhxOV9QM01MLW0lantgfShz
dGl0Sks8eVNnZktRR2RKSVlTNWxXMEwpaztyckY1WlB7bAp6NjJPZ3x6YHw/VzZ5PEQ5NlV1WD5H
TyFNeylQdkBXOzg4JHg7RSlnd20zK3NFayROJVZKZGIpSTtXP3M9VnRnRD8KekV7WiRDQHA2MnA+
eDNid0ZvP3U9aTJ5Q2Iyc04/ZVU7dkVpZ0stIXY5WWNkbkx2cChUNk5ranoyRU5Cb2Y7M19yCnpM
cGd1VD0qMzNLO0xJclhaWDRWT3kjQE09NUc2P09KZFdjQzU9Mm9MY0piIXFxVzRRJWNXNk8/VSZ8
dDVNN3wxYgp6czViTmtYcTlAaDxsVnFJQHBSViVnYjYhbmFWSkhYaz49ej96RUNPWEkmUyVpTnBj
NUpsUCU+bCh3OD9rRktGKVoKel5LO00mOTtZYT14VSomMkgmZTY2M1NvSFFrKEcocWp7P1hpPDgw
Kk1ZIXR4PyYwJFJ1JU13Qno8bUd8eTxQTHxQCno0PGNZaVp+Jjg+ailmbzFtfDFQNGUhJCttVklR
Y0U8Vk4tdlVzdHFAK0I4dEZXbGlKUWc9MTwpUSFiP0NmN2VIPAp6d1J+LVFxU09tWjZWdFZGZVhP
RUFPLTw0PigzdWEyIUlgd2twZUIkcmZ9REEqb3opVmJKM1pLQWs0STwxR2hJcU4KemczMzQhX1pe
ekBwZyU0SjhrPDx+JTEob0VnMlJuV0JFfSNDM1NNPyk3MF9pQz0/bm8hM0kqOXVvbno4VTk+aUtN
CnoyY0hjT01BS3t6VXJ5dXdeQXZgaC15Y0lYPW97XzVoJl9ZM1k+QH1zazRCS3FAYGp5UztvMnxP
bVRPQmJ0QzZfJAp6IWohZHl1UyZDQER1ez5nKktjQyZNaG9TN3R4JX1kJWpRMC1zMnQmWCZkZy0z
KFMzISZ6RUxaaUV6dCt2UVdpMCUKekgjeTVlVS1vUUBGRmVXJVR8S01JblBONFVzfT9mfGVgWWUz
YSMyZnRPMSorKiVHSW45Z0w2bURubm1PTyZFUH1sCnpIT3hIQyE4KyFFKX5YOFJQUis0fTwwYnZJ
VFFNbUtzU0U5UE9janctNzE4KytTVlRNfEZee3B9MHNyVjhUeVRvJgp6P3FDIW47Q3ZVYVVZT3Qr
byNCI29zZ2wyUzR9UGp7TT8zZyZpaVkzQzViI1UjM0JOP18+bnlOeDFsWldieip9dlgKektEOVU2
dTRSTCFCIUlVcHpXRVR6ZnY8N1FveHQ7QSZqVjZuezlWOFpsb2wydT1tdio5Rlo4QFpmSHU5KmtB
c05lCnpKOFp+JiV4QXo3RUgxKT53cVg/fmZ5T1I3Mm4qKW5iT34hdFhpVjVFdXBUKWY4cXExVHJT
KWtZKXUpTXY0JllRPQp6QkV1fmZDRVAje3smfDIzeCZtPkojQ2BqUXNiT0BzJVV9PTBuNTlZZjI+
VE12NDZKbm5meEFXcGR0bCVganczM3EKeit4UkZoJXhTN0FyMT1PTUZDJlVBOz93VFg3ODJtZVp7
SUg2YShNaX1wO0ZJeHpFXkZHN09kJnpAJHV6cDMrS0BDCnpEU1Qzdyh6NiVrZExmX0pJIVoyfFNN
WGgzKXhLTShRTilGfFFqIUJYNVQ1OEY8VEJRcnRxfnZNaGNCT29hPC0lOAp6Xjk0T1VObHtLZTZG
OC1Uayp3dE5JcHlGbUMqbndSQW9LJTFjPz9eIzAmQlNqQUxBM2dROHZuVmYxKUdAM3w1clAKejYw
OWFsRnNBcWFTUDhYP2VWbGs9P3N2TyFzcE8yVmsyPEImVVl7JkV0U0J1ZHUmKjBLMmRVc2dleDlV
ak5CPzgpCno+RVooKXY3Q2VvI3tPfnJIY3NrRXpJQ1ZuRCtyMjhDeXp4eGBtR0laO0tjRj9QU2hw
NkBaRHRscVN2NlNnWDl5Nwp6SzI3QmBvZ1NqODRXO3hNPHd1YUJwfUtJMHJzcz1EWm9sc091NGc5
N2wmSVl2WTNtTjI2SkgtRz0oazwoPWZ2TVoKejNqNFZ1TXdiUWwpIUVuQiYtZXY/byZOIzw5eztp
UVhWUzs9VE1BUUZAdHlVWCRfRUd0T2xlZDQtfDdFaUVFPk9LCnp7SHlXNW5RdiMkV3EmKlMhfFhy
aGpORStnXlNPOE81OVIrYnxNIUt9IWpwd30zbT0+MyZCKit8YFFPRV83VCtxeQp6I1NjcEwocE85
V1ErXlV9cT1gSmprSWA+N2E2eSMyRXxkTCpYaG0mdHJ0UTtvY0tvJElFdSgoMVBiOzltLWx0WGsK
ekBOOGU3Q1hmN0ZwVSZiO19RJHtedTRHVXtKUUYoTW5hfk4oZ2lkJVNiaXk7Q0hUMztyemktMHh7
eSZTbV9ZZElpCnoreTIjO3VmQmZlKzI7P3hhJUpRNDx2bzZGeEFUe0ZfaHJXKCNxYU5+aXI/VUVm
Wk94PHB6cHhZem1FR15fQUd2cgpPX2MjKiRHN3FFS15aSXx9VXpnUFkKCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLnN2ZyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5z
L2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uOTMwYzQ4ZGNlZmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdy
YXkvZm9udHMvdGlueW1jZS1zbWFsbC5zdmcKQEAgLTAsMCArMSw2MiBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8v
RFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQv
c3ZnMTEuZHRkIiA+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8
bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgorPGRlZnM+Cis8Zm9udCBp
ZD0idGlueW1jZS1zbWFsbCIgaG9yaXotYWR2LXg9IjUxMiI+Cis8Zm9udC1mYWNlIHVuaXRzLXBl
ci1lbT0iNTEyIiBhc2NlbnQ9IjQ4MCIgZGVzY2VudD0iLTMyIiAvPgorPG1pc3NpbmctZ2x5cGgg
aG9yaXotYWR2LXg9IjUxMiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3gyMDsiIGQ9IiIgaG9yaXot
YWR2LXg9IjI1NiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDAwOyIgZD0iTTQ4MCA0MHYyOTUu
OTY5bC0xMTEuOTY5IDExMi4wMzFoLTI5Ni4wMzFjLTIyLjA5MSAwLTQwLTE3LjkwOC00MC00MHYt
MzY4YzAtMjIuMDkyIDE3LjkwOS00MCA0MC00MGgzNjhjMjIuMDkyIDAgNDAgMTcuOTA4IDQwIDQw
ek0yODggMzg0aDMydi05NmgtMzJ2OTZ6TTM1MiA2NGgtMTkydjEyNy45NDFjMC4wMTcgMC4wMjEg
MC4wMzggMC4wNDEgMC4wNTggMC4wNTloMTkxLjg4NWMwLjAyMC0wLjAxOCAwLjA0MS0wLjAzOCAw
LjA1OC0wLjA1OWwtMC4wMDEtMTI3Ljk0MXpNNDE2IDY0aC0zMnYxMjhjMCAxNy42LTE0LjQgMzIt
MzIgMzJoLTE5MmMtMTcuNiAwLTMyLTE0LjQtMzItMzJ2LTEyOGgtMzJ2MzIwaDMydi05NmMwLTE3
LjYgMTQuNC0zMiAzMi0zMmgxNjBjMTcuNiAwIDMyIDE0LjQgMzIgMzJ2ODUuNTA1bDY0LTY0LjAz
NnYtMjQ1LjQ2OXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik00MjUuMzczIDM1
OC42MjdsLTY2Ljc0NiA2Ni43NDVjLTEyLjQ0NCAxMi40NDYtMzcuMDI3IDIyLjYyOC01NC42Mjcg
MjIuNjI4aC0yMDhjLTE3LjYgMC0zMi0xNC40LTMyLTMydi0zODRjMC0xNy42IDE0LjQtMzIgMzIt
MzJoMzIwYzE3LjYgMCAzMiAxNC40IDMyIDMydjI3MmMwIDE3LjYtMTAuMTgzIDQyLjE4Mi0yMi42
MjcgNTQuNjI3ek00MDIuNzQ1IDMzNi4wMDFjMy4zOTYtMy4zOTggNi44OTYtOS41ODEgOS40NDct
MTYuMDAxaC05Mi4xOTJ2OTIuMTkzYzYuNDItMi41NSAxMi42MDItNi4wNTAgMTYtOS40NDhsNjYu
NzQ1LTY2Ljc0NHpNNDE1Ljk0MiAzMmgtMzE5Ljg4NWMtMC4wMjAgMC4wMTctMC4wNDEgMC4wMzgt
MC4wNTcgMC4wNTh2MzgzLjg4NWMwLjAxNyAwLjAyMCAwLjAzOCAwLjA0MSAwLjA1NyAwLjA1N2gx
OTEuOTQzdi0xMjhoMTI4di0yNTUuOTQyYy0wLjAxNy0wLjAyMC0wLjAzOC0wLjA0MS0wLjA1OC0w
LjA1OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik01MTIgMTgzLjc3MXY4MC40
NThsLTc5LjU3MiA3Ljk1N2MtNC4wOTMgMTUuMDIxLTEwLjA0NCAyOS4yNzQtMTcuNjA1IDQyLjQ5
bDUyLjI5OCA2My45MTktNTYuNTI2IDU2LjUyNS02My45MTgtNTIuMjk4Yy0xMy4yMTcgNy41NjIt
MjcuNDcxIDEzLjUxMy00Mi40OTEgMTcuNjA0bC03Ljk1NyA3OS41NzRoLTgwLjQ1OGwtNy45NTct
NzkuNTczYy0xNS4wMjEtNC4wOTMtMjkuMjc0LTEwLjA0My00Mi40OS0xNy42MDRsLTYzLjkxOSA1
Mi4yOTctNTYuNTI1LTU2LjUyNSA1Mi4yOTgtNjMuOTE4Yy03LjU2Mi0xMy4yMTYtMTMuNTEzLTI3
LjQ3LTE3LjYwNS00Mi40OWwtNzkuNTczLTcuOTU4di04MC40NThsNzkuNTczLTcuOTU3YzQuMDkz
LTE1LjAyMSAxMC4wNDMtMjkuMjc0IDE3LjYwNS00Mi40OTFsLTUyLjI5OC02My45MTggNTYuNTI0
LTU2LjUyNCA2My45MTkgNTIuMjk4YzEzLjIxNi03LjU2MiAyNy40Ny0xMy41MTQgNDIuNDktMTcu
NjA1bDcuOTU4LTc5LjU3NGg4MC40NThsNy45NTcgNzkuNTcyYzE1LjAyMSA0LjA5MyAyOS4yNzQg
MTAuMDQ0IDQyLjQ5MSAxNy42MDVsNjMuOTE4LTUyLjI5OCA1Ni41MjQgNTYuNTI0LTUyLjI5OCA2
My45MThjNy41NjIgMTMuMjE3IDEzLjUxNCAyNy40NzEgMTcuNjA1IDQyLjQ5bDc5LjU3NCA3Ljk2
ek0zNTIgMTkybC02NC02NGgtNjRsLTY0IDY0djY0bDY0IDY0aDY0bDY0LTY0di02NHoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTAwMzsiIGQ9Ik0zMiAzODRoNDQ4di02NGgtNDQ4ek0zMiAxOTJo
NDQ4di02NGgtNDQ4ek0zMiAyODhoMjg4di02NGgtMjg4ek0zMiA5NmgyODh2LTY0aC0yODh6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDQ7IiBkPSJNMzIgMzg0aDQ0OHYtNjRoLTQ0OHpNMzIg
MTkyaDQ0OHYtNjRoLTQ0OHpNMTI4IDI4OGgyNTZ2LTY0aC0yNTZ6TTEyOCA5NmgyNTZ2LTY0aC0y
NTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDU7IiBkPSJNMzIgMzg0aDQ0OHYtNjRoLTQ0
OHpNMzIgMTkyaDQ0OHYtNjRoLTQ0OHpNMTkyIDI4OGgyODh2LTY0aC0yODh6TTE5MiA5NmgyODh2
LTY0aC0yODh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDY7IiBkPSJNMzIgMzg0aDQ0OHYt
NjRoLTQ0OHpNMzIgMTkyaDQ0OHYtNjRoLTQ0OHpNMzIgMjg4aDQ0OHYtNjRoLTQ0OHpNMzIgOTZo
NDQ4di02NGgtNDQ4eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDA3OyIgZD0iTTQzMi4yMDQg
MTQ0LjkzNGMtMjMuMjM1IDIzLjIzNS01My40NjkgMzQuMDAyLTgwLjU0MSAzMS40MDNsLTMxLjY2
MyAzMS42NjMgOTYgOTZjMCAwIDY0IDY0IDAgMTI4bC0xNjAtMTYwLTE2MCAxNjBjLTY0LTY0IDAt
MTI4IDAtMTI4bDk2LTk2LTMxLjY2My0zMS42NjNjLTI3LjA3MiAyLjU5OS01Ny4zMDUtOC4xNjkt
ODAuNTQtMzEuNDAzLTM3LjQ5LTM3LjQ5LTQyLjU1Ni05My4yMDktMTEuMzEzLTEyNC40NSAzMS4y
NDEtMzEuMjQxIDg2Ljk2LTI2LjE3NyAxMjQuNDUgMTEuMzEzIDIzLjIzNSAyMy4yMzQgMzQuMDAx
IDUzLjQ2OSAzMS40MDMgODAuNTRsMzEuNjYzIDMxLjY2MyAzMS42NjQtMzEuNjY0Yy0yLjU5OC0y
Ny4wNzIgOC4xNjgtNTcuMzA1IDMxLjQwMy04MC41MzkgMzcuNDg5LTM3LjQ5IDkzLjIwOS00Mi41
NTYgMTI0LjQ0OS0xMS4zMTMgMzEuMjQ0IDMxLjI0MSAyNi4xNzggODYuOTU5LTExLjMxMiAxMjQu
NDV6TTE3Ni41NjIgMTAwLjcxMWMtMS4xMDYtMTIuMTY2LTcuNTEtMjQuOTEzLTE3LjU3LTM0Ljk3
My0xMS4xMDYtMTEuMTA3LTI1LjU0LTE3LjczOC0zOC42MDktMTcuNzM4LTUuMjYyIDAtMTIuNjQ5
IDEuMTE0LTE3Ljk1OCA2LjQyNC0xMC43MDMgMTAuNzAyLTguNjg4IDM2LjU2NiAxMS4zMTMgNTYu
NTY4IDExLjEwNiAxMS4xMDcgMjUuNTQgMTcuNzM4IDM4LjYwOSAxNy43MzggNS4yNjIgMCAxMi42
NDktMS4xMTQgMTcuOTU4LTYuNDI0IDYuNTU2LTYuNTU1IDYuNzM1LTE2LjM0NCA2LjI1Ny0yMS41
OTV6TTI1NiAxNzZjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzIt
MTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnpNNDA5LjU3NiA1NC40MjRjLTUuMzEtNS4zMS0x
Mi42OTYtNi40MjQtMTcuOTU4LTYuNDI0LTEzLjA2OSAwLTI3LjUwMyA2LjYzMS0zOC42MDkgMTcu
NzM4LTEwLjA2MSAxMC4wNjAtMTYuNDY0IDIyLjgwNy0xNy41NjkgMzQuOTczLTAuNDc5IDUuMjUx
LTAuMyAxNS4wNDAgNi4yNTcgMjEuNTk2IDUuMzA5IDUuMzExIDEyLjY5NSA2LjQyNCAxNy45NTgg
Ni40MjQgMTMuMDY4IDAgMjcuNTAzLTYuNjMxIDM4LjYwOC0xNy43MzcgMjAuMDAyLTIwLjAwNCAy
Mi4wMTYtNDUuODY4IDExLjMxMy01Ni41N3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwODsi
IGQ9Ik0zNTIgMjg4djgwYzAgOC44LTcuMiAxNi0xNiAxNmgtODB2MzJjMCAxNy42LTE0LjQgMzIt
MzIgMzJoLTY0Yy0xNy42MDIgMC0zMi0xNC40LTMyLTMydi0zMmgtODBjLTguODAxIDAtMTYtNy4y
LTE2LTE2di0yNTZjMC04LjggNy4xOTktMTYgMTYtMTZoMTEydi05NmgxOTJsOTYgOTZ2MTkyaC05
NnpNMTYwIDQxNS45NDNjMC4wMTcgMC4wMTkgMC4wMzYgMC4wMzkgMC4wNTcgMC4wNTdoNjMuODg0
YzAuMDIxLTAuMDE4IDAuMDQxLTAuMDM4IDAuMDU5LTAuMDU3di0zMS45NDNoLTY0djMxLjk0M3pN
OTYgMzIwdjMyaDE5MnYtMzJoLTE5MnpNMzUyIDQ1LjI1NXY1MC43NDVoNTAuNzQ1bC01MC43NDUt
NTAuNzQ1ek00MTYgMTI4aC05NnYtOTZoLTEyOHYyMjRoMjI0di0xMjh6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMDk7IiBkPSJNNDQ0IDI4OGgtMjh2MTI4aDMydjMyaC0xNjB2LTMyaDMydi0x
MjhoLTEyOHYxMjhoMzJ2MzJoLTE2MHYtMzJoMzJ2LTEyOGgtMjhjLTE5LjggMC0zNi0xNi4yLTM2
LTM2di0yMTZjMC0xOS44IDE2LjItMzYgMzYtMzZoMTIwYzE5LjggMCAzNiAxNi4yIDM2IDM2djE1
Nmg2NHYtMTU2YzAtMTkuOCAxNi4yLTM2IDM2LTM2aDEyMGMxOS44IDAgMzYgMTYuMiAzNiAzNnYy
MTZjMCAxOS44LTE2LjIgMzYtMzYgMzZ6TTE3NCAzMmgtOTJjLTkuOSAwLTE4IDcuMi0xOCAxNnM4
LjEgMTYgMTggMTZoOTJjOS45IDAgMTgtNy4yIDE4LTE2cy04LjEtMTYtMTgtMTZ6TTI3MiAyMjRo
LTMyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0x
NnMtNy4yLTE2LTE2LTE2ek00MzAgMzJoLTkyYy05LjkgMC0xOCA3LjItMTggMTZzOC4xIDE2IDE4
IDE2aDkyYzkuOSAwIDE4LTcuMiAxOC0xNnMtOC4xLTE2LTE4LTE2eiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDBhOyIgZD0iTTE5MiA0MTZoMjg4di02NGgtMjg4ek0xOTIgMjU2aDI4OHYtNjRo
LTI4OHpNMTkyIDk2aDI4OHYtNjRoLTI4OHpNNjQgMzg0YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0z
MnMzMiAxNC4zMjcgMzIgMzJjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMyLTE3LjY3MyAwLTMyLTE0
LjMyNy0zMi0zMnpNNjQgMjI0YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIg
MzJjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMyLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnpNNjQg
NjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMmMwIDE3LjY3My0xNC4z
MjcgMzItMzIgMzItMTcuNjczIDAtMzItMTQuMzI3LTMyLTMyeiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDBiOyIgZD0iTTE5MiA0MTZoMjg4di02NGgtMjg4ek0xOTIgMjU2aDI4OHYtNjRoLTI4
OHpNMTkyIDk2aDI4OHYtNjRoLTI4OHpNMTYwIDIxNXY3M2gtMzJ2MTYwaC02NHYtMzJoMzJ2LTEy
OGgtMzJ2LTMyaDY0di0yNWwtNjQtMzB2LTczaDY0di0zMmgtNjR2LTMyaDY0di0zMmgtNjR2LTMy
aDk2djE2MGgtNjR2MjV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGM7IiBkPSJNMzIgMzg0
aDQ0OHYtNjRoLTQ0OHpNMTkyIDE5MmgyODh2LTY0aC0yODh6TTE5MiAyODhoMjg4di02NGgtMjg4
ek0zMiA5Nmg0NDh2LTY0aC00NDh6TTMyIDI4OGwxMTItODAtMTEyLTgweiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDBkOyIgZD0iTTMyIDM4NGg0NDh2LTY0aC00NDh6TTMyIDE5MmgyODh2LTY0
aC0yODh6TTMyIDI4OGgyODh2LTY0aC0yODh6TTMyIDk2aDQ0OHYtNjRoLTQ0OHpNNDgwIDI4OGwt
MTEyLTgwIDExMi04MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwZTsiIGQ9Ik0xMjguMjE0
IDI2Ny42MzdjNTIuOSAwIDk1Ljc4Ni00NS41ODUgOTUuNzg2LTEwMS44MTkgMC01Ni4yMzItNDIu
ODg2LTEwMS44MTgtOTUuNzg2LTEwMS44MTgtNTIuOTAxIDAtOTUuNzg2IDQ1LjU4NS05NS43ODYg
MTAxLjgxOGwtMC40MjggMTQuNTQ2YzAgMTEyLjQ2NSA4NS43NyAyMDMuNjM2IDE5MS41NzIgMjAz
LjYzNnYtNTguMTgyYy0zNi41NSAwLTcwLjkxMy0xNS4xMy05Ni43NTgtNDIuNjAyLTQuOTc3LTUu
Mjg5LTkuNTE3LTEwLjkxNy0xMy42MTItMTYuODI4IDQuODkyIDAuODIgOS45MDMgMS4yNDkgMTUu
MDEyIDEuMjQ5ek0zODQuMjE0IDI2Ny42MzdjNTIuOSAwIDk1Ljc4Ni00NS41ODUgOTUuNzg2LTEw
MS44MTkgMC01Ni4yMzItNDIuODg2LTEwMS44MTgtOTUuNzg2LTEwMS44MTgtNTIuOTAxIDAtOTUu
Nzg2IDQ1LjU4NS05NS43ODYgMTAxLjgxOGwtMC40MjggMTQuNTQ2YzAgMTEyLjQ2NSA4NS43NyAy
MDMuNjM2IDE5MS41NzIgMjAzLjYzNnYtNTguMTgyYy0zNi41NSAwLTcwLjkxMy0xNS4xMy05Ni43
NTgtNDIuNjAyLTQuOTc4LTUuMjg5LTkuNTE4LTEwLjkxNy0xMy42MTItMTYuODI4IDQuODkyIDAu
ODIgOS45MDMgMS4yNDkgMTUuMDEyIDEuMjQ5eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDBm
OyIgZD0iTTM1MiAwYzI5LjUgOTkuNSA2Ny40NTMgMjI3LjYzMy0xMjggMjIzLjA0OHYtMTExLjA0
OGwtMTY4LjAwMSAxNjggMTY4LjAwMSAxNjh2LTEwOC42NjNjMjM0LjA0NiA2LjEgMjcyLTE3OS4z
MzcgMTI4LTMzOS4zMzd6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNMjg4IDMz
OS4zMzd2MTA4LjY2M2wxNjguMDAxLTE2OC0xNjguMDAxLTE2OHYxMTEuMDQ4Yy0xOTUuNDUzIDQu
NTg1LTE1Ny41LTEyMy41NDgtMTI4LTIyMy4wNDgtMTQ0IDE2MC0xMDYuMDQ2IDM0NS40MzcgMTI4
IDMzOS4zMzd6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTE7IiBkPSJNNDYzLjYzNyAzNjQu
ODkybC02Ni43NDUgNjYuNzQ0Yy0xMC41NTIgMTAuNTUyLTI0LjYxNiAxNi4zNjQtMzkuNTk5IDE2
LjM2NHMtMjkuMDQ3LTUuODEyLTM5LjU5OC0xNi4zNjNsLTgyLjc0Ni04Mi43NDVjLTIxLjgzNC0y
MS44MzQtMjEuODM0LTU3LjM2MiAwLTc5LjE5NmwxLjM3My0xLjM3MyAzMy45NDEgMzMuOTQxLTEu
MzczIDEuMzczYy0zLjA2NiAzLjA2Ni0zLjA2NiA4LjI0NyAwIDExLjMxM2w4Mi43NDYgODIuNzQ2
YzIuMDA1IDIuMDA0IDQuNDA0IDIuMzA0IDUuNjU2IDIuMzA0czMuNjUxLTAuMjk5IDUuNjU2LTIu
MzA1bDY2Ljc0NS02Ni43NDRjMy4wNjYtMy4wNjcgMy4wNjYtOC4yNDkgMC4wMDEtMTEuMzE0bC04
Mi43NDctODIuNzQ3Yy0yLjAwNC0yLjAwNC00LjQwMy0yLjMwNC01LjY1NS0yLjMwNHMtMy42NTEg
MC4zLTUuNjU2IDIuMzA2bC0xLjM3MyAxLjM3My0zMy45NC0zMy45NDIgMS4zNzEtMS4zNzFjMTAu
NTUzLTEwLjU1NCAyNC42MTUtMTYuMzY0IDM5LjYtMTYuMzY0czI5LjA0NyA1LjgxMiAzOS41OTgg
MTYuMzYzbDgyLjc0NyA4Mi43NDZjMjEuODMxIDIxLjgzMyAyMS44MzEgNTcuMzYtMC4wMDIgNzku
MTk1ek0yNzUuNjc4IDE3OS42NzhsLTMzLjk0MS0zMy45NDEgMS4zNzMtMS4zNzNjMi4wMDQtMi4w
MDQgMi4zMDUtNC40MDMgMi4zMDUtNS42NTUgMC0xLjI1My0wLjI5OS0zLjY1MS0yLjMwMy01LjY1
N2wtODIuNzQ3LTgyLjc0NWMtMi4wMDUtMi4wMDUtNC40MDUtMi4zMDUtNS42NTctMi4zMDVzLTMu
NjUyIDAuMy01LjY1NyAyLjMwNWwtNjYuNzQ2IDY2Ljc0M2MtMi4wMDUgMi4wMDUtMi4zMDUgNC40
MDUtMi4zMDUgNS42NTdzMC4yOTkgMy42NSAyLjMwNSA1LjY1Nmw4Mi43NDUgODIuNzQ0YzIuMDA1
IDIuMDA2IDQuNDA1IDIuMzA2IDUuNjU3IDIuMzA2czMuNjUyLTAuMyA1LjY1Ny0yLjMwNmwxLjM3
My0xLjM3MSAzMy45NDEgMzMuOTQtMS4zNzMgMS4zNzNjLTEwLjU1MiAxMC41NTItMjQuNjE1IDE2
LjM2My0zOS41OTggMTYuMzYzcy0yOS4wNDYtNS44MTItMzkuNTk4LTE2LjM2M2wtODIuNzQ0LTgy
Ljc0M2MtMTAuNTUzLTEwLjU1Mi0xNi4zNjUtMjQuNjE3LTE2LjM2NS0zOS41OTlzNS44MTItMjku
MDQ3IDE2LjM2My0zOS41OTlsNjYuNzQ1LTY2Ljc0NWMxMC41NTMtMTAuNTUxIDI0LjYxNi0xNi4z
NjMgMzkuNTk5LTE2LjM2M3MyOS4wNDYgNS44MTIgMzkuNTk4IDE2LjM2M2w4Mi43NDcgODIuNzQ2
YzEwLjU1MiAxMC41NTIgMTYuMzYxIDI0LjYxNSAxNi4zNjEgMzkuNTk4cy01LjgxMiAyOS4wNDct
MTYuMzYzIDM5LjU5OGwtMS4zNzIgMS4zNzN6TTE3NiAxMjVjLTQuODYyIDAtOS43MjUgMS44NTUt
MTMuNDM1IDUuNTY0LTcuNDIgNy40Mi03LjQyIDE5LjQ0OSAwIDI2Ljg2OWwxNjAgMTYwYzcuNDIg
Ny40MiAxOS40NDggNy40MiAyNi44NjggMCA3LjQyMi03LjQyIDcuNDIyLTE5LjQ1IDAtMjYuODds
LTE2MC0xNjBjLTMuNzA4LTMuNzA4LTguNTcxLTUuNTYzLTEzLjQzMy01LjU2M3oiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik00NjMuNjM3IDM2NC44OTJsLTY2Ljc0NSA2Ni43NDRj
LTEwLjU1MiAxMC41NTItMjQuNjE2IDE2LjM2NC0zOS41OTkgMTYuMzY0cy0yOS4wNDctNS44MTIt
MzkuNTk4LTE2LjM2M2wtODIuNzQ2LTgyLjc0NWMtMjEuODM0LTIxLjgzNC0yMS44MzQtNTcuMzYy
IDAtNzkuMTk2bDEuMzczLTEuMzczIDMzLjk0MSAzMy45NDEtMS4zNzMgMS4zNzNjLTMuMDY2IDMu
MDY2LTMuMDY2IDguMjQ3IDAgMTEuMzEzbDgyLjc0NiA4Mi43NDZjMi4wMDUgMi4wMDQgNC40MDQg
Mi4zMDQgNS42NTYgMi4zMDRzMy42NTEtMC4yOTkgNS42NTYtMi4zMDVsNjYuNzQ1LTY2Ljc0NGMz
LjA2Ni0zLjA2NyAzLjA2Ni04LjI0OSAwLjAwMS0xMS4zMTRsLTgyLjc0Ny04Mi43NDdjLTIuMDA0
LTIuMDA0LTQuNDAzLTIuMzA0LTUuNjU1LTIuMzA0cy0zLjY1MSAwLjMtNS42NTYgMi4zMDZsLTEu
MzczIDEuMzczLTMzLjk0LTMzLjk0MiAxLjM3MS0xLjM3MWMxMC41NTMtMTAuNTU0IDI0LjYxNS0x
Ni4zNjQgMzkuNi0xNi4zNjRzMjkuMDQ3IDUuODEyIDM5LjU5OCAxNi4zNjNsODIuNzQ3IDgyLjc0
NmMyMS44MzEgMjEuODMzIDIxLjgzMSA1Ny4zNi0wLjAwMiA3OS4xOTV6TTI3NS42NzggMTc5LjY3
OGwtMzMuOTQxLTMzLjk0MSAxLjM3My0xLjM3M2MyLjAwNC0yLjAwNCAyLjMwNS00LjQwMyAyLjMw
NS01LjY1NSAwLTEuMjUzLTAuMjk5LTMuNjUxLTIuMzAzLTUuNjU3bC04Mi43NDctODIuNzQ1Yy0y
LjAwNS0yLjAwNS00LjQwNS0yLjMwNS01LjY1Ny0yLjMwNXMtMy42NTIgMC4zLTUuNjU3IDIuMzA1
bC02Ni43NDYgNjYuNzQzYy0yLjAwNSAyLjAwNS0yLjMwNSA0LjQwNS0yLjMwNSA1LjY1N3MwLjI5
OSAzLjY1IDIuMzA1IDUuNjU2bDgyLjc0NSA4Mi43NDRjMi4wMDUgMi4wMDYgNC40MDUgMi4zMDYg
NS42NTcgMi4zMDZzMy42NTItMC4zIDUuNjU3LTIuMzA2bDEuMzczLTEuMzcxIDMzLjk0MSAzMy45
NC0xLjM3MyAxLjM3M2MtMTAuNTUyIDEwLjU1Mi0yNC42MTUgMTYuMzYzLTM5LjU5OCAxNi4zNjNz
LTI5LjA0Ni01LjgxMi0zOS41OTgtMTYuMzYzbC04Mi43NDQtODIuNzQzYy0xMC41NTMtMTAuNTUy
LTE2LjM2NS0yNC42MTctMTYuMzY1LTM5LjU5OXM1LjgxMi0yOS4wNDcgMTYuMzYzLTM5LjU5OWw2
Ni43NDUtNjYuNzQ1YzEwLjU1My0xMC41NTEgMjQuNjE2LTE2LjM2MyAzOS41OTktMTYuMzYzczI5
LjA0NiA1LjgxMiAzOS41OTggMTYuMzYzbDgyLjc0NyA4Mi43NDZjMTAuNTUyIDEwLjU1MiAxNi4z
NjEgMjQuNjE1IDE2LjM2MSAzOS41OThzLTUuODEyIDI5LjA0Ny0xNi4zNjMgMzkuNTk4bC0xLjM3
MiAxLjM3M3pNNDAwIDYxYy00Ljg2MiAwLTkuNzI1IDEuODU0LTEzLjQzNSA1LjU2NWwtNjQgNjMu
OTk5Yy03LjQyMiA3LjQyLTcuNDIyIDE5LjQ0OSAwIDI2Ljg2OSA3LjQyIDcuNDIyIDE5LjQ0OCA3
LjQyMiAyNi44NjggMGw2NC02NGM3LjQyMi03LjQyIDcuNDIyLTE5LjQ0OCAwLTI2Ljg2OC0zLjcw
OC0zLjcxMS04LjU3MS01LjU2NS0xMy40MzMtNS41NjV6TTMwNCAwYy04LjgzNyAwLTE2IDcuMTYz
LTE2IDE2djY0YzAgOC44MzcgNy4xNjMgMTYgMTYgMTZzMTYtNy4xNjMgMTYtMTZ2LTY0YzAtOC44
MzctNy4xNjMtMTYtMTYtMTZ6TTQ2NCAxNjBoLTY0Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2czcu
MTYzIDE2IDE2IDE2aDY0YzguODM3IDAgMTYtNy4xNjMgMTYtMTZzLTcuMTYzLTE2LTE2LTE2ek0x
MTIgMzg3YzQuODYyIDAgOS43MjUtMS44NTQgMTMuNDM1LTUuNTY1bDY0LTY0YzcuNDIxLTcuNDIg
Ny40MjEtMTkuNDQ5IDAtMjYuODY5LTcuNDItNy40MjItMTkuNDQ5LTcuNDIyLTI2Ljg2OSAwbC02
NCA2NGMtNy40MjEgNy40Mi03LjQyMSAxOS40NDkgMCAyNi44NjkgMy43MDkgMy43MTEgOC41NzIg
NS41NjUgMTMuNDM0IDUuNTY1ek0yMDggNDQ4YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTY0YzAt
OC44MzctNy4xNjMtMTYtMTYtMTZzLTE2IDcuMTYzLTE2IDE2djY0YzAgOC44MzcgNy4xNjMgMTYg
MTYgMTZ6TTQ4IDI4OGg2NGM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2cy03LjE2My0xNi0xNi0xNmgt
NjRjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZzNy4xNjMgMTYgMTYgMTZ6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMTM7IiBkPSJNMTI4IDQ0OHYtNDQ4bDEyOCAxMjggMTI4LTEyOHY0NDhoLTI1
NnpNMzUyIDg1LjI1NWwtOTYgOTYtOTYtOTZ2MzMwLjc0NWgxOTJ2LTMzMC43NDV6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNNDQ4IDQxNmgtMzg0Yy0xNy42IDAtMzItMTQuNC0z
Mi0zMnYtMzIwYzAtMTcuNiAxNC40LTMyIDMyLTMyaDM4NGMxNy42IDAgMzIgMTQuNCAzMiAzMnYz
MjBjMCAxNy42LTE0LjQgMzItMzIgMzJ6TTQ0OCA2NC4wNThjLTAuMDA2LTAuMDA3LTAuMDE1LTAu
MDE0LTAuMDIxLTAuMDIxbC05NS45NzkgMTU5Ljk2My04MC02NC0xMTIgMTQ0LTk1Ljk4NC0yMzku
OTU4Yy0wLjAwNSAwLjAwNS0wLjAxMSAwLjAxMS0wLjAxNiAwLjAxNnYzMTkuODg1YzAuMDE3IDAu
MDIwIDAuMDM4IDAuMDQxIDAuMDU3IDAuMDU3aDM4My44ODVjMC4wMjAtMC4wMTcgMC4wNDEtMC4w
MzggMC4wNTgtMC4wNTh2LTMxOS44ODR6TTMyMCAzMDRjMC0yNi41MSAyMS40OS00OCA0OC00OHM0
OCAyMS40OSA0OCA0OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4LTI2LjUxIDAtNDgtMjEuNDktNDgt
NDh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTU7IiBkPSJNNDQ4IDQxNmgtMzg0Yy0xNy42
IDAtMzItMTQuNC0zMi0zMnYtMzIwYzAtMTcuNiAxNC40LTMyIDMyLTMyaDM4NGMxNy42IDAgMzIg
MTQuNCAzMiAzMnYzMjBjMCAxNy42LTE0LjQgMzItMzIgMzJ6TTEyOCA2NGgtNjR2NjRoNjR2LTY0
ek0xMjggMTkyaC02NHY2NGg2NHYtNjR6TTEyOCAzMjBoLTY0djY0aDY0di02NHpNMzUyIDY0aC0x
OTJ2MzIwaDE5MnYtMzIwek00NDggNjRoLTY0djY0aDY0di02NHpNNDQ4IDE5MmgtNjR2NjRoNjR2
LTY0ek00NDggMzIwaC02NHY2NGg2NHYtNjR6TTE5MiAzMjB2LTE5MmwxNDQgOTZ6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNMjI0IDEyOGg2NHYtNjRoLTY0djY0ek0zNTIgMzUy
YzE3LjY3MyAwIDMyLTE0LjMyNyAzMi0zMnYtODNsLTExNC03N2gtNDZ2MzJsOTYgNjR2MzJoLTE2
MHY2NGgxOTJ6TTI1NiA0NDhjLTU5LjgzMyAwLTExNi4wODMtMjMuMy0xNTguMzkyLTY1LjYwOC00
Mi4zMDctNDIuMzA5LTY1LjYwOC05OC41NTktNjUuNjA4LTE1OC4zOTIgMC01OS44MzIgMjMuMzAx
LTExNi4wODQgNjUuNjA4LTE1OC4zOTIgNDIuMzA5LTQyLjMwOCA5OC41NTktNjUuNjA4IDE1OC4z
OTItNjUuNjA4IDU5LjgzMiAwIDExNi4wODQgMjMuMyAxNTguMzkyIDY1LjYwOCA0Mi4zMDggNDIu
MzA4IDY1LjYwOCA5OC41NiA2NS42MDggMTU4LjM5MiAwIDU5LjgzMy0yMy4zIDExNi4wODMtNjUu
NjA4IDE1OC4zOTItNDIuMzA4IDQyLjMwOC05OC41NiA2NS42MDgtMTU4LjM5MiA2NS42MDh6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTc7IiBkPSJNMjA4IDEyOGwtOTYgOTYgOTYgOTYtMzIg
MzItMTI4LTEyOCAxMjgtMTI4ek0zMzYgMzUybC0zMi0zMiA5Ni05Ni05Ni05NiAzMi0zMiAxMjgg
MTI4eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE4OyIgZD0iTTM4Ljg5OSAzMjcuNjg4bDQw
LjcwNy0yNS40NDFjMjUuNDAxIDQwLjU1NyA2NC4zOTQgNzEuNzI3IDExMC42MDQgODcuMTIzbC0x
NS4xODMgNDUuNTQ3Yy01Ni44NzQtMTguOTQ5LTEwNC44NjQtNTcuMzEzLTEzNi4xMjgtMTA3LjIy
OXpNMzM2Ljk3MyA0MzQuOTE3bC0xNS4xODMtNDUuNTQ3YzQ2LjIxMS0xNS4zOTYgODUuMjAyLTQ2
LjU2NiAxMTAuNjA0LTg3LjEyNGw0MC43MDYgMjUuNDQxYy0zMS4yNjMgNDkuOTE3LTc5LjI1MyA4
OC4yODEtMTM2LjEyNyAxMDcuMjN6TTMwMy45ODcgMTI3Ljk5NmMtMi40MDQgMC00Ljg0NiAwLjU0
NS03LjE0MyAxLjY5M2wtNzIuODQ0IDM2LjQyMnYxMDUuODg5YzAgOC44MzYgNy4xNjQgMTYgMTYg
MTZzMTYtNy4xNjQgMTYtMTZ2LTg2LjExMWw1NS4xNTUtMjcuNTc4YzcuOTAzLTMuOTUxIDExLjEw
Ny0xMy41NjIgNy4xNTUtMjEuNDY2LTIuODAyLTUuNjA3LTguNDU0LTguODQ4LTE0LjMyMy04Ljg0
OXpNMjU2IDM4NGMtMTA2LjAzOSAwLTE5Mi04NS45NjEtMTkyLTE5MnM4NS45NjEtMTkyIDE5Mi0x
OTJjMTA2LjAzOSAwIDE5MiA4NS45NjEgMTkyIDE5MiAwIDEwNi4wMzktODUuOTYxIDE5Mi0xOTIg
MTkyek0yNTYgNDhjLTc5LjUyOSAwLTE0NCA2NC40NzEtMTQ0IDE0NHM2NC40NzEgMTQ0IDE0NCAx
NDRjNzkuNTI5IDAgMTQ0LTY0LjQ3MSAxNDQtMTQ0IDAtNzkuNTI5LTY0LjQ3MS0xNDQtMTQ0LTE0
NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxOTsiIGQ9Ik0zMiAyNTIuMTI3YzIyLjY1OSAy
NC45NiA0OC41ODEgNDYuMTggNzYuNjM2IDYyLjU2MiA0NS4xNjYgMjYuMzcyIDk2LjEyMyA0MC4z
MTEgMTQ3LjM2NCA0MC4zMTEgNTEuMjQgMCAxMDIuMTk4LTEzLjkzOSAxNDcuMzYzLTQwLjMxMiAy
OC4wNTYtMTYuMzgyIDUzLjk3OC0zNy42MDIgNzYuNjM3LTYyLjU2MnY1OC43MTZjLTE2LjUwNSAx
NC4wNTktMzQuMDYyIDI2LjU3LTUyLjQzNCAzNy4yOTctNTIuNTAzIDMwLjY1Ny0xMTEuODI5IDQ2
Ljg2MS0xNzEuNTY2IDQ2Ljg2MXMtMTE5LjA2NC0xNi4yMDQtMTcxLjU2Ny00Ni44NmMtMTguMzcx
LTEwLjcyNy0zNS45MjgtMjMuMjM5LTUyLjQzMy0zNy4yOTh2LTU4LjcxNXpNMjU2IDMyMGMtOTEu
NTk4IDAtMTcyLjkxOS01MC4yNzgtMjI0LTEyOCA1MS4wODEtNzcuNzI0IDEzMi40MDItMTI4IDIy
NC0xMjggOTEuNTk4IDAgMTcyLjkxOSA1MC4yNzYgMjI0IDEyOC01MS4wODEgNzcuNzIyLTEzMi40
MDIgMTI4LTIyNCAxMjh6TTI1NiAyMjRjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiAxNC4z
MjctMzIgMzJjMCAxNy42NzQgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNiAzMi0zMnpNMzY0LjAz
MyAxMzEuNjY5Yy0zMy43MTctMTkuNjg3LTcwLjA2NC0yOS42NjktMTA4LjAzMy0yOS42NjlzLTc0
LjMxNiA5Ljk4Mi0xMDguMDMzIDI5LjY2OWMtMjUuNzc3IDE1LjA1Mi00OS4zMDggMzUuNjU1LTY5
LjA1NyA2MC4zMzEgMTkuNzQ5IDI0LjY3NSA0My4yOCA0NS4yNzkgNjkuMDU4IDYwLjMzIDYuNjM4
IDMuODc2IDEzLjM3OSA3LjM3IDIwLjIxMyAxMC40OTEtNS4yNTYtMTEuODcxLTguMTgxLTI1LjAw
NC04LjE4MS0zOC44MjEgMC01My4wMjAgNDIuOTgxLTk2IDk2LTk2IDUzLjAyMCAwIDk2IDQyLjk4
IDk2IDk2IDAgMTMuODE3LTIuOTI1IDI2Ljk1LTguMTggMzguODIxIDYuODM0LTMuMTIyIDEzLjU3
NS02LjYxNSAyMC4yMTMtMTAuNDkxIDI1Ljc3Ny0xNS4wNTEgNDkuMzA4LTM1LjY1NSA2OS4wNTgt
NjAuMzMtMTkuNzQ5LTI0LjY3Ni00My4yOC00NS4yNzktNjkuMDU4LTYwLjMzMXoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAxYTsiIGQ9Ik0zMjUuNTg0IDMzOC4wODNjLTEyLjMwNiA0MC45ODEt
MTQuNDM4IDQ1LjkxNy01My41ODQgNDUuOTE3aC0zMmMtMzkuODA5IDAtNDEuMzMyLTUuMDc2LTU0
LjIwOS00OCAwLTAuMDAxIDAtMC4wMDEtMC4wMDEtMC4wMDJsLTcxLjk5OS0yMzkuOTk4aDU2Ljgx
OGwyOC44IDk2aDExMy4xODNsMjguOC05Nmg1Ni44MTVsLTcyLjYyMyAyNDIuMDgzek0yMTguNjA5
IDI1NmwxOS4yIDY4YzUuMDQzIDE2LjgwOSAxOC4xOSAxNSAxOC4xOSAxNXMxMy4xNDcgMS44MDkg
MTguMTktMTVoMC4wMDJsMTkuMi02OGgtNzQuNzgyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDFiOyIgZD0iTTMyIDM4NHYtMzUyaDQ0OHYzNTJoLTQ0OHpNMTkyIDE2MHY2NGgxMjh2LTY0aC0x
Mjh6TTMyMCAxMjh2LTY0aC0xMjh2NjRoMTI4ek0zMjAgMzIwdi02NGgtMTI4djY0aDEyOHpNMTYw
IDMyMHYtNjRoLTk2djY0aDk2ek02NCAyMjRoOTZ2LTY0aC05NnY2NHpNMzUyIDIyNGg5NnYtNjRo
LTk2djY0ek0zNTIgMjU2djY0aDk2di02NGgtOTZ6TTY0IDEyOGg5NnYtNjRoLTk2djY0ek0zNTIg
NjR2NjRoOTZ2LTY0aC05NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxYzsiIGQ9Ik0zMiAy
NTZoNDQ4di02NGgtNDQ4eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFkOyIgZD0iTTMyIDk2
aDI1NnYtNjRoLTI1NnY2NHpNMzg0IDM4NGgtMTEwLjI3OWwtOTEuODgzLTI1NmgtNjYuMTQ0bDkx
Ljg4MSAyNTZoLTExMS41NzV2NjRoMjg4di02NHpNNDY0Ljg4NyAzMmwtNjQuODg3IDY0Ljg4Ny02
NC44ODctNjQuODg3LTMxLjExMyAzMS4xMTMgNjQuODg3IDY0Ljg4Ny02NC44ODcgNjQuODg3IDMx
LjExMyAzMS4xMTMgNjQuODg3LTY0Ljg4NyA2NC44ODcgNjQuODg3IDMxLjExMy0zMS4xMTMtNjQu
ODg3LTY0Ljg4NyA2NC44ODctNjQuODg3LTMxLjExMy0zMS4xMTN6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwMWU7IiBkPSJNMzg0IDI1di0yNWg2NHYtMzJoLTk2djczbDY0IDMwdjI1aC02NHYz
Mmg5NnYtNzN6TTMzOCAzNTJoLTY4bC05NC05NC05NCA5NGgtNjhsMTI4LTEyOC0xMjgtMTI4aDY4
bDk0IDk0IDk0LTk0aDY4bC0xMjggMTI4eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFmOyIg
ZD0iTTM4NCAzNzd2LTI1aDY0di0zMmgtOTZ2NzNsNjQgMzB2MjVoLTY0djMyaDk2di03M3pNMzM4
IDM1MmgtNjhsLTk0LTk0LTk0IDk0aC02OGwxMjgtMTI4LTEyOC0xMjhoNjhsOTQgOTQgOTQtOTRo
NjhsLTEyOCAxMjh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNMzUyIDY0djE4
LjUwMmM3NS42NzQgMzAuODE0IDEyOCA5Ni45MSAxMjggMTczLjQ5OCAwIDEwNi4wMzktMTAwLjI4
OCAxOTItMjI0IDE5MnMtMjI0LTg1Ljk2MS0yMjQtMTkyYzAtNzYuNTg4IDUyLjMyNy0xNDIuNjg0
IDEyOC0xNzMuNDk4di0xOC41MDJoLTk2bC0zMiA0OHYtMTEyaDE2MHYxMTEuNDA2Yy01MC40NSAy
NS42ODEtODUuMzMzIDgwLjc3LTg1LjMzMyAxNDQuNTk0IDAgODguMzY2IDY2Ljg1OSAxNjAgMTQ5
LjMzMyAxNjAgODIuNDc0IDAgMTQ5LjMzMy03MS42MzQgMTQ5LjMzMy0xNjAgMC02My44MjQtMzQu
ODgzLTExOC45MTMtODUuMzMzLTE0NC41OTR2LTExMS40MDZoMTYwdjExMmwtMzItNDhoLTk2eiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDIxOyIgZD0iTTI1NiA0MTBjNDkuNjgzIDAgOTYuMzkx
LTE5LjM0NyAxMzEuNTIxLTU0LjQ3OHM1NC40NzktODEuODM5IDU0LjQ3OS0xMzEuNTIyLTE5LjM0
OC05Ni4zOTEtNTQuNDc5LTEzMS41MjEtODEuODM4LTU0LjQ3OS0xMzEuNTIxLTU0LjQ3OS05Ni4z
OTEgMTkuMzQ4LTEzMS41MjIgNTQuNDc5LTU0LjQ3OCA4MS44MzgtNTQuNDc4IDEzMS41MjEgMTku
MzQ3IDk2LjM5MSA1NC40NzggMTMxLjUyMiA4MS44MzkgNTQuNDc4IDEzMS41MjIgNTQuNDc4ek0y
NTYgNDQ4Yy0xMjMuNzEyIDAtMjI0LTEwMC4yODgtMjI0LTIyNHMxMDAuMjg4LTIyNCAyMjQtMjI0
IDIyNCAxMDAuMjg4IDIyNCAyMjQtMTAwLjI4OCAyMjQtMjI0IDIyNHYwek0xNjAgMjg4YzAtMTcu
NjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIgMzJjMCAxNy42NzMtMTQuMzI3IDMyLTMy
IDMyLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnpNMjg4IDI4OGMwLTE3LjY3MyAxNC4zMjctMzIg
MzItMzJzMzIgMTQuMzI3IDMyIDMyYzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMi0xNy42NzMgMC0z
Mi0xNC4zMjctMzItMzJ6TTI1NiAxNTJjLTUwLjkyIDAtOTYuMjggMTguNDM3LTEyNS41ODMgNDcu
MTY0IDExLjU2My01OC44MDQgNjMuMzg5LTEwMy4xNjQgMTI1LjU4My0xMDMuMTY0IDYyLjE5NCAw
IDExNC4wMjAgNDQuMzYgMTI1LjU4NCAxMDMuMTY0LTI5LjMwNC0yOC43MjctNzQuNjY0LTQ3LjE2
NC0xMjUuNTg0LTQ3LjE2NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMjsiIGQ9Ik0xMjgg
NDE2aDI1NnYtNjRoLTI1NnY2NHpNNDQ4IDMyMGgtMzg0Yy0xNy42IDAtMzItMTQuNC0zMi0zMnYt
MTI4YzAtMTcuNiAxNC4zOTgtMzIgMzItMzJoNjR2LTk2aDI1NnY5Nmg2NGMxNy42IDAgMzIgMTQu
NCAzMiAzMnYxMjhjMCAxNy42LTE0LjQgMzItMzIgMzJ6TTM1MiA2NGgtMTkydjEyOGgxOTJ2LTEy
OHpNNDU1LjIgMjcyYzAtMTIuODEzLTEwLjM4Ny0yMy4yLTIzLjE5OS0yMy4ycy0yMy4yMDEgMTAu
Mzg3LTIzLjIwMSAyMy4yIDEwLjM4OSAyMy4yIDIzLjIwMSAyMy4yYzEyLjgxMyAwIDIzLjE5OS0x
MC4zODcgMjMuMTk5LTIzLjJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjM7IiBkPSJNMjQw
IDI4OGwtOTYgOTYgNjQgNjRoLTE3NnYtMTc2bDY0IDY0IDk2LTk2ek0zMjAgMjQwbDk2IDk2IDY0
LTY0djE3NmgtMTc2bDY0LTY0LTk2LTk2ek0yNzIgMTYwbDk2LTk2LTY0LTY0aDE3NnYxNzZsLTY0
LTY0LTk2IDk2ek0xOTIgMjA4bC05Ni05Ni02NCA2NHYtMTc2aDE3NmwtNjQgNjQgOTYgOTZ6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjQ7IiBkPSJNNDgwIDQxNnYzMmgtOTZjLTE3LjYwMSAw
LTMyLTE0LjQtMzItMzJ2LTE2MGMwLTcuOTI4IDIuOTI5LTE1LjIwMSA3Ljc0OC0yMC44MDdsLTE1
MS43NDgtMTMwLjE5My03MSA3NC00MS0zNSAxMTItMTQ0IDIwOCAyMjRoNjR2MzJoLTk2djE2MGg5
NnpNMTI4IDIyNGgzMnYxOTJjMCAxNy42LTE0LjQgMzItMzIgMzJoLTY0Yy0xNy42IDAtMzItMTQu
NC0zMi0zMnYtMTkyaDMydjk2aDY0di05NnpNNjQgMzUydjY0aDY0di02NGgtNjR6TTMyMCAyNTZ2
NDhjMCAxNy42LTQuNCAzMi0yMiAzMiAxNy42IDAgMjIgMTQuNCAyMiAzMnY0OGMwIDE3LjYtMTQu
NCAzMi0zMiAzMmgtOTZ2LTIyNGg5NmMxNy42IDAgMzIgMTQuNCAzMiAzMnpNMjI0IDQxNmg2NHYt
NjRoLTY0djY0ek0yMjQgMzIwaDY0di02NGgtNjR2NjR6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwMjU7IiBkPSJNMjI0IDIyNGgtNjR2NjRoNjR2NjRoNjR2LTY0aDY0di02NGgtNjR2LTY0aC02
NHY2NHpNNDgwIDE5MnYtMTYwaC00NDh2MTYwaDY0di05NmgzMjB2OTZoNjR6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMjY7IiBkPSJNMjU2IDI4OGg2NHYtMzJoLTY0ek0yNTYgOTZoNjR2LTMy
aC02NHpNMjg4IDE5Mmg2NHYtMzJoLTY0ek0zODQgMTkydi05NmgtMzJ2LTMyaDY0djEyOHpNMTky
IDE5Mmg2NHYtMzJoLTY0ek0xNjAgOTZoNjR2LTMyaC02NHpNMTYwIDI4OGg2NHYtMzJoLTY0ek05
NiAzODR2LTEyOGgzMnY5NmgzMnYzMnpNMzUyIDI1Nmg2NHYxMjhoLTMydi05NmgtMzJ6TTMyIDQ0
OHYtNDQ4aDQ0OHY0NDhoLTQ0OHpNNDQ4IDMyaC0zODR2Mzg0aDM4NHYtMzg0ek05NiAxOTJ2LTEy
OGgzMnY5NmgzMnYzMnpNMjg4IDM4NGg2NHYtMzJoLTY0ek0xOTIgMzg0aDY0di0zMmgtNjR6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjc7IiBkPSJNNDA4IDQ0OGw4LTE5MmgtMzIwbDggMTky
aDE2bDgtMTYwaDI1Nmw4IDE2MGgxNnpNMTA0IDBsLTggMTYwaDMyMGwtOC0xNjBoLTE2bC04IDEy
OGgtMjU2bC04LTEyOGgtMTZ6TTMyIDIyNGg2NHYtMzJoLTY0ek0xMjggMjI0aDY0di0zMmgtNjR6
TTIyNCAyMjRoNjR2LTMyaC02NHpNMzIwIDIyNGg2NHYtMzJoLTY0ek00MTYgMjI0aDY0di0zMmgt
NjR6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjg7IiBkPSJNMjg4IDQ0OGMxMjMuNzEyIDAg
MjI0LTEwMC4yODggMjI0LTIyNHMtMTAwLjI4OC0yMjQtMjI0LTIyNHY0OGM0Ny4wMTIgMCA5MS4y
MDkgMTguMzA3IDEyNC40NTEgNTEuNTQ5IDMzLjI0MiAzMy4yNDIgNTEuNTQ5IDc3LjQzOSA1MS41
NDkgMTI0LjQ1MSAwIDQ3LjAxMS0xOC4zMDcgOTEuMjA5LTUxLjU0OSAxMjQuNDUxLTMzLjI0MiAz
My4yNDItNzcuNDM5IDUxLjU0OS0xMjQuNDUxIDUxLjU0OS00Ny4wMTEgMC05MS4yMDktMTguMzA3
LTEyNC40NTEtNTEuNTQ5LTI1LjU3LTI1LjU2OS00Mi4yOTEtNTcuNjIzLTQ4LjY1My05Mi40NTFo
OTMuMTA0bC0xMTItMTI4LTExMiAxMjhoODIuMjg1YzE1LjUzIDEwOC41NTEgMTA4Ljg2OSAxOTIg
MjIxLjcxNSAxOTJ6TTM4NCAyNTZ2LTY0aC0xMjh2MTYwaDY0di05NnoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAyYTsiIGQ9Ik0zMTIuNzIxIDIzMi45MDljMjQuMDM3IDE5LjA3NSAzOS4yNzkg
NDcuNDI4IDM5LjI3OSA3OS4wOTEgMCA1Ny40MzgtNTAuMTQ1IDEwNC0xMTIgMTA0aC0xMTJ2LTM4
NGgxNDRjNjEuODU2IDAgMTEyIDQ2LjU2MiAxMTIgMTA0IDAgNDQuMDk4LTI5LjU1OSA4MS43ODEt
NzEuMjc5IDk2LjkwOXpNMTkyIDMyOGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzMuNjAyYzIx
LjIwNyAwIDM4LjM5OC0yMS40OSAzOC4zOTgtNDhzLTE3LjE5MS00OC0zOC4zOTgtNDhoLTU3LjYw
MnY3MnpNMjczLjYgOTZoLTU3LjZjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY3Mmg4MS42YzIx
LjIwOSAwIDM4LjQtMjEuNDkgMzguNC00OHMtMTcuMTkxLTQ4LTM4LjQtNDh6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMmI7IiBkPSJNNDE2IDQxNnYtMzJoLTcybC0xMjgtMzIwaDcydi0zMmgt
MjI0djMyaDcybDEyOCAzMjBoLTcydjMyaDIyNHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAy
YzsiIGQ9Ik05NiA2NGgyODh2LTMyaC0yODh2MzJ6TTMyMCA0MTZ2LTE5MmMwLTE1LjY1Ni03LjM1
LTMwLjgxMi0yMC42OTUtNDIuNjc2LTE1LjQ3MS0xMy43NTEtMzYuNTM0LTIxLjMyNC01OS4zMDUt
MjEuMzI0LTIyLjc3MiAwLTQzLjgzNCA3LjU3My01OS4zMDQgMjEuMzI0LTEzLjM0NiAxMS44NjQt
MjAuNjk2IDI3LjAyMC0yMC42OTYgNDIuNjc2djE5MmgtNjR2LTE5MmMwLTcwLjY5MSA2NC40NzEt
MTI4IDE0NC0xMjhzMTQ0IDU3LjMwOSAxNDQgMTI4djE5MmgtNjR6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwMmQ7IiBkPSJNNDgwIDIyNGgtMTMyLjkzOGMtMjUuMDM5IDE3LjcxLTU3LjIxNSAy
Ny40My05MS4wNjIgMjcuNDMtNDQuNjAzIDAtODIuMjg2IDI1LjEyMS04Mi4yODYgNTQuODU2IDAg
MjkuNzM1IDM3LjY4MyA1NC44NTcgODIuMjg2IDU0Ljg1NyAzNy41MjkgMCA3MC4xNTQtMTcuNzg4
IDc5LjU2LTQxLjE0M2g1Ni41MDhjLTMuOTY1IDI1LjMyMi0xOC43OSA0OC45ODQtNDIuMDI5IDY2
LjQxMy0yNS40NCAxOS4wODAtNTguODM4IDI5LjU4Ny05NC4wMzkgMjkuNTg3LTM1LjIwMiAwLTY4
LjU5OC0xMC41MDctOTQuMDM3LTI5LjU4Ny0yNy4zOTQtMjAuNTQ1LTQzLjEwNi00OS43NTEtNDMu
MTA2LTgwLjEyN3MxNS43MTItNTkuNTgyIDQzLjEwNi04MC4xMjdjMC45NzgtMC43MzMgMS45NzEt
MS40NDkgMi45NzMtMi4xNThoLTEzMi45MzZ2LTMyaDI1Ni4yNjZjMjkuMTA0LTguNTUzIDUwLjAy
MS0yOC4xMzUgNTAuMDIxLTUwLjI4NiAwLTI5LjczNC0zNy42ODQtNTQuODU1LTgyLjI4Ni01NC44
NTUtMzcuNTMgMC03MC4xNTQgMTcuNzg3LTc5LjU1OSA0MS4xNDNoLTU2LjUwOGMzLjk2NS0yNS4z
MiAxOC43OTEtNDguOTg0IDQyLjAzMC02Ni40MTMgMjUuNDM4LTE5LjA4MiA1OC44MzQtMjkuNTkg
OTQuMDM2LTI5LjU5IDM1LjIwMSAwIDY4LjU5OSAxMC41MDggOTQuMDM3IDI5LjU4NyAyNy4zOTUg
MjAuNTQ1IDQzLjEwNCA0OS43NTEgNDMuMTA0IDgwLjEyNyAwIDE3LjY0OS01LjMyNyAzNC44OTYt
MTUuMTQ3IDUwLjI4NmgxMDIuMDA2djMyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJlOyIg
ZD0iTTE5MiA0MTZjLTYxLjg1NiAwLTExMi01MC4xNDQtMTEyLTExMnM1MC4xNDQtMTEyIDExMi0x
MTJ2LTE2MGg2NHYzMjBoMzJ2LTMyMGg2NHYzMjBoNjR2NjRoLTIyNHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAyZjsiIGQ9Ik0yMjQgNDE2Yy02MS44NTYgMC0xMTItNTAuMTQ0LTExMi0xMTJz
NTAuMTQ0LTExMiAxMTItMTEydi0xNjBoNjR2MzIwaDMydi0zMjBoNjR2MzIwaDY0djY0aC0yMjR6
TTMyIDMybDExMiA5Ni0xMTIgOTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzA7IiBkPSJN
MTYwIDQxNmMtNjEuODU2IDAtMTEyLTUwLjE0NC0xMTItMTEyczUwLjE0NC0xMTIgMTEyLTExMnYt
MTYwaDY0djMyMGgzMnYtMzIwaDY0djMyMGg2NHY2NGgtMjI0ek00ODAgMjI0bC0xMTItOTYgMTEy
LTk2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDMxOyIgZD0iTTQxNiAzMjBoLTk2djMybC05
NiA5NmgtMTkydi0zNTJoMTkydi05NmgyODh2MjI0bC05NiA5NnpNNDE2IDI3NC43NDVsNTAuNzQ1
LTUwLjc0NWgtNTAuNzQ1djUwLjc0NXpNMjI0IDQwMi43NDVsNTAuNzQ1LTUwLjc0NWgtNTAuNzQ1
djUwLjc0NXpNNjQgNDE2aDEyOHYtOTZoOTZ2LTE5MmgtMjI0djI4OHpNNDgwIDMyaC0yMjR2NjRo
NjR2MTkyaDY0di05Nmg5NnYtMTYweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDMyOyIgZD0i
TTM4NCAzNTJoMzJ2LTMyaC0zMnpNMzIwIDI4OGgzMnYtMzJoLTMyek0zMjAgMjI0aDMydi0zMmgt
MzJ6TTMyMCAxNjBoMzJ2LTMyaC0zMnpNMjU2IDIyNGgzMnYtMzJoLTMyek0yNTYgMTYwaDMydi0z
MmgtMzJ6TTE5MiAxNjBoMzJ2LTMyaC0zMnpNMzg0IDI4OGgzMnYtMzJoLTMyek0zODQgMjI0aDMy
di0zMmgtMzJ6TTM4NCAxNjBoMzJ2LTMyaC0zMnpNMzg0IDk2aDMydi0zMmgtMzJ6TTMyMCA5Nmgz
MnYtMzJoLTMyek0yNTYgOTZoMzJ2LTMyaC0zMnpNMTkyIDk2aDMydi0zMmgtMzJ6TTEyOCA5Nmgz
MnYtMzJoLTMyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDM0OyIgZD0iTTQ2NCA0MTZoLTIw
OGwtMTYgMzJoLTE3NmwtMzItNjRoNDQ4ek00MjAuMTcgMTI4aDQzLjgzbDE2IDIyNGgtNDQ4bDMy
LTMyMGgxNzguMDQwYy01Mi40NDEgMTguODg4LTkwLjA0MCA2OS4xMzMtOTAuMDQwIDEyOCAwIDc0
Ljk5MSA2MS4wMDkgMTM2IDEzNiAxMzYgNzQuOTkgMCAxMzYtNjEuMDA5IDEzNi0xMzYgMC0xMC44
MzktMS4zMTEtMjEuNTc1LTMuODMtMzJ6TTQzNy40OTggNTUuMTI1bC02Ny4yNDggNTUuMzQ2Yzgu
NzI3IDE0LjQ2MSAxMy43NSAzMS40MDcgMTMuNzUgNDkuNTI5IDAgNTMuMDIwLTQyLjk4IDk2LTk2
IDk2cy05Ni00Mi45OC05Ni05NiA0Mi45OC05NiA5Ni05NmMxOC4xMjIgMCAzNS4wNjkgNS4wMjMg
NDkuNTI5IDEzLjc1bDU1LjM0Ni02Ny4yNDhjMTEuNDgxLTEzLjMzOSAzMS4wNTktMTQuMDcwIDQz
LjUwMy0xLjYyNmwyLjc0NiAyLjc0NmMxMi40NDQgMTIuNDQ0IDExLjcxMyAzMi4wMjItMS42MjYg
NDMuNTAzek0yODggOThjLTM0LjI0MiAwLTYyIDI3Ljc1OC02MiA2MnMyNy43NTggNjIgNjIgNjIg
NjItMjcuNzU4IDYyLTYyLTI3Ljc1OC02Mi02Mi02MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAzNTsiIGQ9Ik0zNTIgMjg4djgwYzAgOC44LTcuMiAxNi0xNiAxNmgtODB2MzJjMCAxNy42LTE0
LjQgMzItMzIgMzJoLTY0Yy0xNy42MDIgMC0zMi0xNC40LTMyLTMydi0zMmgtODBjLTguODAxIDAt
MTYtNy4yLTE2LTE2di0yNTZjMC04LjggNy4xOTktMTYgMTYtMTZoMTEydi05NmgyODh2Mjg4aC05
NnpNMTYwIDQxNS45NDNjMC4wMTcgMC4wMTkgMC4wMzYgMC4wMzkgMC4wNTcgMC4wNTdoNjMuODg0
YzAuMDIxLTAuMDE4IDAuMDQxLTAuMDM4IDAuMDU5LTAuMDU3di0zMS45NDNoLTY0djMxLjk0M3pN
OTYgMzIwdjMyaDE5MnYtMzJoLTE5MnpNNDE2IDMyaC0yMjR2MjI0aDIyNHYtMjI0ek0yMjQgMjI0
di02NGgxNmwxNiAzMmgzMnYtOTZoLTI0di0zMmg4MHYzMmgtMjR2OTZoMzJsMTYtMzJoMTZ2NjR6
IiAvPgorPC9mb250PjwvZGVmcz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS1zbWFsbC50dGYgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkv
Zm9udHMvdGlueW1jZS1zbWFsbC50dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZjNmVjNDU4YjVjMDMyZjEwNGMx
MjMxOGZmNzIxZDMxZDlkYWI4ZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAxMjgKemNtZDU/
VTJHaUpiLXM4MF9pdUtXeVIkPHw8Wl5iRzxkQnJhenV8S0FXNj5pXndrNndYWGVtZXhNNnJrZEg9
LVhfCnpjMmdeRT5xKmM2TDBjM2BmaDRZQjYhWCRUZUpSdXdNSDlkJSN4RiU0M1JLQk07cjV9fkIw
JUFgMnIzd0xQISNVNgp6LT9fODFUIyp0REJRS3Vpb3FPKGBkKFdKRUA0NFNPX1k0X2xqT0FGIVdW
WkRBM3lVajheT3lnTG5zPD9jPVBxdzwKenVeJmEtalBZQGxGVFMrLT5LNWA2JUM5M2dVYj1NcyNt
IzRhYmBzQH52RjVGcFUpWCRwYF97a3lqSXBVREpZUmJtCno3NGxEfEZfZDNNZEZ0aU11ZjZeWCZw
Wms4NF5aeDJ5ODdKYUZFOVMkTCZsfnJwP3ZNfj1JZE1SRVBudnlGM1FmOAp6JkM0Jm1aSm9IbCpi
SXZOPmVrZylVeFM+dVQkMDBLdmMmaWVyc0NOWHs2Kjl9K1Jyfj9XOSlhUy1PJEEkX1Q4NWMKejUh
JEBGalVWclY4YHVtcnBmWTA7NjF9bUNKM1h5M2dgR3VpRzZUO3YpSCZWUj9uPH00e2VSbi1DdE9h
S2I/M1hRCnpxUmg4ez9rSkF6TmQ0WlRMSTFgWE1+fnZySk1wZzBGKEpaXjlRKVRQJXpAQmQ5eig3
JUhwfFhvPUVgb1BYLVpiUAp6VDk+QFclRFU4K0oqKEJPd0F4NElXZT5eblRKNjtaPUAzViYzRW5E
dTdGd1IqWG5CJmA3Vm1FTC1aelJsUDBKTXgKenpDfjIqSURRPWFqKyk4b3Y3WERRanZ5bDx7YUhT
e01OTkEqMkEhUz9mP2dia0F3OCEpQUBfcm57XkZeUlghdFZvCnpBJEpWOT4rQ1JsMigtSCg+I2l4
PWEkVUJrWXdKPStVUiNoezlWTkgzUWtSelBpYUp4OXNrcyQjd3s9QGJYfnlQJQp6ZXApZmpsSips
VlopbHV6QzdVKClnR00mMXBuJGg0d2p7fTFgVT5ab3RlKG1ELWF+Ykl5fm5ATkN0b19QS3ZXY3sK
emQrIV9sP3dYTztjdiZsJXJjI3ErUmd3OVpXdi1tKntpTlVQJV9NKTVad3JGUGgxSl5iTE1PV3pB
RlZ8aiEqVjtXCnp6OTI5MW1UcUUqeF4yb3Vacks9XlpnPVlQQj08ViZhPndxdD4rKngjKW12YDY8
SnAkUEhuXmd3XjZGN3YmMUd8JQp6djAtUylSc1pOSkJ2SlVyQ3A/YVBhc0JYOWNINzAoTlZxV1F5
dSUjbThLSHlAdj93eEdYO3xYZD8mbDdWZCVqM2MKenVnZldnZSZ8Tz9uM3NMfWNYc3k9SU5RZGlL
LXl2T1k1R1V2PCMhOVBQeWZDMHJ7bWFwSj4pO2Jze0NEa2l5ZGNBCnp2c2M7b3Y5X2VKb3V6ZD88
M2UkSG9pRSReajRBMStSSX1AUm9udXdxajsrLXR5RHFKRCo3KlYhN1libT90dEokRQp6QSEqQDN3
ZWhAYWJ4XyR9VTYtaUJzK3YqQFlMWWFSLTNSViF0TGdrIXJlYXhIQ202fFZxZnM9Zjx3cFcxWWd2
X3kKelMoM0I0e0E5Q2ZYN1l5MjlmIStDSzRVaFVsbGZkJEV9N2UwUnh8fWxvPmU3OU1VckwxUCU+
MGhSWWo1fD5HU0RFCnpQNGw8SzZCUygpYmo0T2VFOSMxeGpBOXRGdGI4WVZTNVRXO0FaWnErWVFn
VUpDaTNvPEB2eGY3Nz5jNSs1KGl0UQp6UCUwVVVqI3FIVnA9cWwwSUR0bmgyanlSdnNITGhhaWpt
MWMxV2x2T2pXT3dwUTdSUF8jI0RpYWdleDx3amtRezUKejQrQzJneEVsdCY2ZCtHPCVqPmpUWlZI
WDl3JSFJPl4wdWRVVDBsK0Q7c0teaS1YS3dZbDNfIX1FS3Q9fTkwVzE7CnpNO3ZxSmQ0M1E9PkJV
MVE3MV5PPytsKUcoWTNNa0M8TWUqdmNeODZpKnh3VGdjQ1dGfHZGRih2a1E4cmh3PUJaegp6ZWw5
UzIyY0wocjhXYFQ8cSQ4dl4hMCoxfGJvTiUrZCNtYG48NCl2K05hTVBoKFhAPUl6Zk9jZHBvcip3
Y3V+PCoKelN5blk9S3NAV0RHY1h8aldia2w2YVBXM1FPMnBePV5kMFpLbFR4QXpsWT1RcmBCNUgh
Vmc9S0h0JU9CVUFCIUJVCnpea1h9Q001cldfP0lZN2liM3wpUkNUezxWY3pfeH1qJlFmO2VOdmY2
ZXQ7aHoqdHR7KHFMZkpVSnIlJGZBMW1MNQp6JkwtRzhlZkw9MGJ9TFp7c0QpMGRrdEVkS0J7Rk9A
ez1AfTI1Xj9fSzk0K3ghe2hXZzxmKV4oQzJoSDZNaipsZDcKenZvVUxnZ2dSMiQpJi1iSD42QW5T
PnN3bWBKbXpkO1Y7XjMkMHg3QzstND91M1IqOHw9ISVNPXheQFV2MT5+VG54CnpEbEBlRUJxdnoz
dSE7bnFZc2RLLXlxZG5RLX1gWWBaNT0yVTU0NVYzKkg8NXpINGwhfnZJS1RPOEFYO2pgPWtjPgp6
KCloR3hPXj1yLUh4RTc1YWdNe3MkKVB2Rik0bVV9bDxYKk8wb0shbWxfMjJQRXdeSz4pajZPJCRj
PmF3cFN5WVUKenNUVXtSSDglYV5zZD8kQCY2fTZ5bGgze1p1TlFxSSs8dSgmPCF4SlUmelFWc2xl
TXQ5Yk14bDgpOCYhZW5taFU4CnpRfmJpXm4+VmpZXlFXR2llJkNIflByXmwmMUBfJVctP1F2Yio/
WnN2PVl6RHIkVzMwWVA0VyhgJmckQk85NSFvWgp6YDhYXz0yU1ppVz08eiZuRXpSP3BIciRpQ09k
STd2eW01OExFcG1JTUhxTXZGQntXK3lkMkBMbDw3djY4O004N1AKelVGWFpOWXskOGBiZXp7TF8l
TVNQJUN6R3FgR0E+QlRYQik9U2gybm81UH1TKWMpIzRAeDhaYHAmdzthKFE3I3lgCnpjdkU7KTdZ
T3E/KHJHR1E1RzFVSClSZF5iM2E2O3d7QHFXfTkrbktNcGVlKWVPelpnYmw4alpCYVlkNEQ9I3Jw
ZAp6V1N9XmdQcDdSZTc/eCFqa2IpWUxTUn4rcGd6UkBXezgxQWtxWVlCT0VzKz85Qz1FQj84UCgz
YWM0a0tFUCR3WikKekx+PG4qdkJxZ2t0YmNjfntfbkhAO3lKS0JfTDxaSzg9OX5QVTBObUlYYSg5
eXN6Qlptc1l0VHR2Q0Fob2A5aytGCnpZMTRSXl9Ua04kbCN9ZXlWSWs9PztHP0hiNl49WjhGWTdh
O1pvZWhlJV4kMyRwb0Y+dyEta1JVViZ0YmExRUxyRwp6TzVIeUw4dlVFMyhmKGtrQkB9NyZOZ0RF
Q3BuYH5+RHhDdyRmQnZnPDJIcnw2I08/Xk9YSD1ZT1NmJCp0JVotWXcKem0lVEMkdS1tSykkQmol
QGgkZy03MV82SihfdClxcXVyfjJRTSVnTnpeIVRuYmNiUG5vR1RjZlc0cz5LaEhZaiZACnpkbT47
UXJwXkgkUHtHRGx6e0FpZWwoWDQjIUFOcitrdGZvTjJPV0goZFFzJXh4V29Oa2R9cHtaYiVMeEo7
NmZfdgp6MVp5JUVDKz1tbyMha1JIelBIQHVoRldraWBuTCpWMVo0eWJoVSokdT1pWSslOz1+RSoj
Jk04UCt3OHt1I1ApR0kKenEoN1lYQWJlVmlnVDVeekVLXnY4ITdfSHBDcjxYWjR1WFZwNlBKSnRQ
Mlh0WSRWRnlgdFdYIXNYbGt4NDFXX0UrCno0JG4+KE9Kayk+MkRqcSQ/QlV3cDhpPilRJC1WRzdj
djYwX1BzPjRIKHdgKzNAWV81e15ydTUtZVk9OS1neCRGdgp6MWFOPk9NYFlzMG5KQUZ7czh8S1l8
QjMkPCVPaF5uVk5iQTRYckdOaGZEMCNRbiErOShMPU5OYFpBTSRmYERJPFEKeio5aDA+dE8kXkZV
N1IkPHo+Xld7V2kwX1YxUWg3Pj0oPTs2KFEmNi13QXxLMnAzZkp7JmlINiVFPGUkN3RwPkltCno9
allPJClSQUVkMFhLQFlIMmNWRW8hcTR+dWRsa2M/TlZLbV5ScnsteEsmWFdqcH5GYHh3TlFNdFp7
UiE7IUlTSAp6LXJyKiphO2YhSU50WTNNUURqfkUobUBHRkpCNiF3dSsxbUVOOFAhSCtZXzhtdj4l
PnhBTjN9QT89U2kyT25ZTHwKem8yX3dQb0FvOXErQjJpRFYrITxAZThKeW1eWHgoUDFAO31SSnw8
PXpldS1GVnlOI0ppOTFaZGFhZGRgam1eZDFrCnp2ejluTHIjTyF1KjNkfj51PDRrPklaMk5MRjZK
NzQ7TiUjVU47T3cqJkNGQ1BHYyZEbnUzRClXVEFeVFMpJWluNQp6WVBCUFc9QnRgbkN9YGQwc2Jr
QlAlSlEqTyVeaG1ANSNkdGR6YD0zVDk2eHhWa1IySCo+M1Y1b0IjU2V2TispUVoKenh+SDVELUJo
e0w9SHR2cnY4Wks+U3lqYk5EOzdzR0MpOHt2cXZYcVpPflh5ZVdVfWdzR2I3RSNpSFhKTE5TWCZK
CnpENVV2Q0JaczUxby08VWxTazdlMU1OYEd3V1VrVklLWHJsVzlJeFdVRWxXR0NOVXlJIXVtMkZ8
MWUtI3lkX2ZsQgp6TFA5ZCNMd3czfV8wR0RxdmI/bFg9a35KUTsqWTMkd3A/X0k8KmNyckp2TSVB
e01neUFSJmFfKCZfSShha01aLXgKek49QkJtbUN+SWNgMClIME9AfFlzb25oSE5IaWNPQTRFKkhe
OClaOGYxdzN3KTgjYUthV249cSRaTXVuTHhsVkE8CnpweGE0fnlHb1F3P0hvZXVDYF8mPnBvPT9u
P3t5UTNock5nZ2ZDbVJoY09PP2tIJURMKDI8JU80UXgtJTIyPDFoVAp6T1lyMSROKXghYEBIK3lS
M2hWJGhsZz5LNENBU2I/WkNKMXpLbVl7dUNfZD9rNyo9clE7ekpqPXhieCh4UTxIPGcKeiExdVhC
S2AhNiNNVDElcGNtP0woTF85aE1yc09kRFl9JXMxM0I8R0Q5bDAkVkR9VipTWCQpK0ZEYCVkNWBi
LSMjCnpgYERPc3U4emQjb187ekVrJSQtODV1LV9YQT0pd0VyU0gjK1UrKipQcWBZV2U4MElDMCNZ
MUU+S159M3NDSXEkcwp6RWdwOH1hMWFafSl3YlReIVQ0Z2MobUh2NVZkNERBUjs5VCg5eW4yRCgk
M3ArWW08e31iMDgpd3opOFE3bj53O08KemspcUdVPlhFNWpXb2hlYndteUEkdn5tM0sqeDJGWWpu
VHU/XzNZS0hDQ3BQMj5taGsmVmFZREFtKVVQYXo2MnUoCnoxanZ+TDRnZX1oQ2M9KzRrbTlhTHpf
UHlFOGhnN2QjRUdTa0U/fiU2V3ZXcCgzc3FDcyYxJTd7SD5ONmtZaU9ZOQp6ZkdIMWxnVHROeGdI
eEd1IyZmRk9uNzhmdWhPT3F0b3Y4fGNkIUtnPC1hMGU8Q1ZGI30wPkooOVp8bkpUdH5QVjkKelI2
MDBRJWEheEd6KzRBdzgtWiRJJERjP3Z6cGF2NjE5ekd9NUoxcmhHdlMtVndVTm1rPSNYPGg0N0go
OWQ0ST5ECnpAdUF8VzZoUiFuQjxxSCU4b0hlMzJ2cW9EYSloeENjRjFpT2hQUWBYUWpmJG9CcyE/
RTA9e2AxZ3EkdVNiPVZMYwp6eU4jYDNWUnk4I05weHRWK3FvMD93LUF7Vl9hUEY5Sz1uZzRmYG0/
SzEwQTx2ZUhQKV97VGVoMjVrJTUrRiVMRnsKekBIPmRrd0xSNHYzTXFQKzQ7UUpXaWw5P0VRSFFZ
UUM9bGgrI3VLfWJjTGgpckBXMXV3K30zVCMoVGZ+WDVIVkFaCnprQmMpMlc1PFhrc3QtaG1Lcy1v
Vk16ViR3Pl5DMjQtUkw/fDlIJW9KMlNKR1dUdVJHPT1ueyh2KWRYJTUjeipUTQp6ITApaHRVSWVO
aGkzUkNZVDN8fERVdEZCXkFQS3lwcjA3SVo1TVlYY0N7NzstbDZYfWFvV185S0VqR3MlbjglSz4K
emxrNX4pNUxZRGYrJlY8SVRjOEFSQlBYISUrQlFXd1Rob057OUh8VmZMb01+N2A2NzR9Jj5UMTxn
aE02WWFibCFpCnpPZ1BWQFVQeVMzRDVEcjNOMGZgPWomUXNqLXwwR0cycjNMQkBtKFQ3JVA+TXM+
XksreldCT25tMjIwMSNWQUdKPwp6Wm90R0xha3FpKkZfYSpVN3teZX4tIWdpIVE4RzkpTzE7fCNf
ZCMhaUp9WDJDKG1SamlJRCFPRzZveV5BSWwxV2wKeigpSnglNWE4RX1oIX5OdExLfl9MZUYwamZv
LUJEY2E4NWtrXiNFYlE0cUR0djVvVi0wSWd1fF4zYzhNNGVxeGZgCnowbn10bWBIYnxIdCohSCNk
Klg/Q1hhJGNgbHZ1akVXIWc3V3YmUlp5SVFQaXZNQz9aYTxkYm5XYSZSX15WMT8kZgp6cmlmKDtw
JF9yI3o7fCtvTChoajB1cCY1c05sd1NZazdkbFBIZDNGbnd7RjtUXl54NGohUXlwQSVjeEJRXjsq
XzYKemotTmxTVztFcXxUSzshXnEqfXxAcllCMGh1cng3VUU3ISo9K0I0SzdKcC1ObmZFYilqaXd0
VDRJVX5ySyRKJHZmCnpAd3dCM0pAJEJYSGF5IzwjM1FKVDw4YUBoREcmUE5RbFBQazErVXl+Rml2
dX5reDlmRFdJKH5vdUIteU8lcCNwMwp6OzdGayRgPkF0R1RGSFowJWpNdis7ZWx3SCZFZDt3ZH5r
dW5rUDhRNmh6NVA1eSUoYChGXyRnIVZFZlNzdlJVNCsKelEhOEJpclBAa3V4bihzSG10TDUlbWhl
PytfRVFEJUBjc0gqU2k4fGV4bjMoMllXMT50eiR6Kzd4dD1wS1MhP3RfCnpwPlNaLSU0U1JTTEFS
N2UlO3tVNDwpQVA3SHBMZW48O0FYXikjWGdGbiMpeS04SDdKR25NJTIrcjlQIXohN31BKQp6KWAt
RW1CV0tOYGFzT3VVcTRPR01wNXxaIWIza2lWMSMrazYqdXdGV2UoaEZGTjwhKkZ5QiQrU0J2bk9w
Sl9Ic0sKejRAdH5wRU9Ae194KDY0V3FQbGw2aVY8KyQhPmJvMmN0JlRxV0w+SntaezM1UnNAdV9C
ezVWQyFfYj4kZmw2PUIxCno1JkpwfHRRLU0wSFpreTQrb2V6S2prYXNxcGVZSTlFc0prSEx+YEoz
OUNJaHx5eDgtQVIyWTkzRmFvODhnJFRPQQp6NXpoLWZ1TW5WM0ZaQU9lVil6YWxHOVU5OXVtcD5Y
QFN0czIjWXYjQyVNUVZVY3twOWRuaUNvbV82bj49UEtaV3kKemlmbjBwVDFXTTE7LUxkTDZfPzB4
aSR3YEgoMVNsN3BufFNJKyNfK3t4blhKO28kV0glMTJKWjRsMEN3e09mdiYoCnotOVheM1FOYlA8
eFIyd0FPNnhYMGlWSmdeWTZAdlNnMnBSfFZ2RzIrSkc2eGFjPUZxfk9TYz56S1hBQ3peUEx9NQp6
OD4wbmxkUyFma1chbDB5dzBzKCQpVFErN01ZJiRjPWUzVEslalhxKlM2OCp+N0hTbDZwezxuVUtu
e2NfeChLPDkKekhEX3pZaHhwO2tyPWd0ZFghKDNXUGZ0Pm0pNHZJdioxJCtzXjcpKXtYcVhkbXEm
WDEhMGlRZ0V0eXpWJlQhKVlHCnozRXdDaTwtTU9NJHBNMkVDOT8jcGk0dShJe1hiU2h0enNXMW98
eWFIWmRAdWtxWl59NnNrR2xHT0FhZWFPOXx9agp6Iz9WMTNfPmk5YD5GVGxubjE4MUR6KCpgNnBA
T2wwKnRtXzhkWGpKNz5IaWw1TVd2SStxOTZVUTRRPTRXQChFN1YKekNCNSs3V2FweVNwc1IhQTZO
XjRnPHVzaWNxTnhwfl5jbSR4aylvbHhhRVBZb09Hc3xOPyVKK3JDZCFuay05Qm1pCno0eFNUVkEx
VWEhLVJTNFUtJDRyZHhnJG9HMUBfaDEqVihgRV5aWGtCQm1NKmFRfFpzN2tMOS0lcm1XI1I+bz03
VAp6NUQ9S3NydTR0bnxKaGhGZSRWKDk8OXs+WCZPVm0/byRRYVp8Q2xwITMlTWBrLXBOMGR8NmN5
QDNUdVVAM2h4I14KekhsSHZmXk1+ZXQ3ciQwfnN+OHRRREFofH1FQiNPVERaRyY7QCtken18RmVN
JHFVXmEkXzd8Y1J3WiltWFB0KTEpCnoqWlpgTGBsVVh0ZlBTLTJ0RWAzK3lAN25eMD1+bTBiUVdp
X0tMI2RvQzQoQmBuYX5OKGdpZCVTYml5O0M2UF5qSgp6cTNAVWFlR3tJcXV+Km0/Y0FaXmomI0BR
UzUmU1I0V3d5eUs7ckIoOXVjNz0zeU5WVkxWdz8rKmBNJkw2ZCojYVkKeiVnPz1WPGtpY1ltb0RB
RTg5TldRRlJ8YWkzcFQ8MnpVPGhlWG0+QDN1ISZZTDtEZiNjTHdfQ2phfWYwXktKaX1fCktmPytp
S1VqR2s5c2UjMSsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3Jh
eS9mb250cy90aW55bWNlLXNtYWxsLndvZmYgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS1zbWFs
bC53b2ZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhNzJjNzRiNDViYTM3MjVhNmZmN2Q4ZDA5MDFjNTM4NDY3YzY0
ZTIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDc4NDgKemNtZUhNZHdmJD5vPENgR0BRTSh0PH5y
a1o+VWBMKEl9eEVKeE0rMWc0cGRNdzN9fn1KTjVOTDh3NUZ3e3FfbXxFCno4ayhqfWV8QEJCVEti
PzVZazlfXmJ0KHU+ITRLc2x4PFRDP3lVeHlfU2F4PTBvYX15Wl81KlY+cFVaQ2RkdXxlMQp6UCNE
KyFjVy1qZXtoaTB9ZHRTZkNJcC1FRlUlWXNeKXctT3FkLXQ7RzQ5fnNrT2VmeDdlLTxyWDlGTj0h
ak5OJnMKejIpWEdnLXNQIXRre0cpeTQqQlVLTkkoMmphOXdVaktKcE9RYjZQbXVIP2JqT3YmY0p6
dj1qKyhTKHpFQGt2RTMpCnpMbjJKUGUpalYkV0hOVTU0NVZqPzVje2lgSkY7QF4jbUprQl50Y0d3
eCpNTyklX3MpbUojazErKTUzeGtZLTJgbAp6Q2kxP3xtQFpGKlBCfVI+S1gwPWdXMiF9K2NyQz1E
Z3o1RTZyXyZraSomOW84KkphTSRvU1R1OCEqbnF5Y19lZ3EKek96NXVJKEQoS0NQR0AoZFA3cD1r
R2oxcmdnP3U0OXpYdTJ4WldpJk1aJFpwJU0wRHBaeDNZJT96ayVKdz9xTlMqCnpLViU4KTBoV2s/
Qzl9dWI2S3BBNCZhNW5ydCEzKzI3UnpNP3RjYUJ7MlhpckU5QGZlX1N1WSE0YGA3e1kzLSVUcAp6
VmFNND9jOGRLWWAtR2p3cCNQMmlmdHw8MXxDIy1fRT48ViRYNmtPJGVOVDZ7P21wZExVb25PJjVg
fVhNNkFQMigKejdDdGR8dGA7UTxEb0k1MUx9Vjd4ZD1XaClxUTRjPDB1ZW5kcU13THBwQDxmVkNg
Q2sxaC1malFNMWh3bUBEY0BICnpxUUZaT2MhPmZwUVEjI0N5aE1TUUREVjttVVpUS0Q2bktkT0ZI
enRuM091Y29OZGhsUDszV3lYQiFRUENAUjleeAp6bEU2ejZjdTR7KE5rQW5EczNaWkVCJXFRNilJ
OEMoYz4tI2xmU007ej1GTWo7TSg0Jl9FRCVlaVhFIzk3WEVNTDsKekxFUkRFYEl1UVRLYVhqTyZE
UUptfEgzbyk9cmxmVUB3Qig1am8lPGlrNChSUmRnfUJ+Wnp7UnolblV4R2NqbWc4Cnp1Tm9kVUVI
Tn0xUFRmNUg9SmohUiNDaFYqK35VM0U/e0JUV159PW1HendOfHJVbTcxV28tcURWeyprOytLNigy
Swp6d30td3JhTEghfnw1Y3dNV2REVXMkfWQmRHFFfi1PeXBUI3RzOEZJeWRRT0dpQmA9Y3soaTRB
fnkxVklSTndxNWYKekY4aGcwSGxpUjhzQUlCZkJ+cHg+dmAxMmA2ZVVTREAmTClHRDJsdHdKNHkp
YiM3bjVXb0p1NFZpPXJfPHomTXEzCnpseXtTKW4yQzImTStiRkZiVCtWKlI1diQtOSNkNUxzU2tL
WGB7cWBHdXpuS1o1Xnk3b1cwUT1eMDl0ZHJRcWU5SQp6K1UzVURDVEJ5bkc+N09NWiszZlk4ZiZF
d3BYQlo4MzBWYjspQFBDXkdgMFdlbXxgU1NlYkhoPSRmeHtOcnFqdFMKenlyIzNkIWBVR24zIzUp
KFJgR0lnZDI/QmxSQ1BMO3MqLXRHTz9oPj5RP2VYT08rOUFlUDkkb3xxfnQwfUszJkN8CnolOT5H
R1Q0Zm5jNElKWnVzUDMkaFQ5UXZ3JVcyLSgpWTA3R2w+KTBxTV5ePjc3bTIxJD4yd1FNJWBMTFVW
ailYXwp6MChkOUBre2tSWHFhNEROVFB8VEwoYlh2bCNWamtzQ3tjJlFDNl5QfFZHMFQrcEo0SnVu
NCpkNkZlJkVtKGlETnwKem58cDJ1cjZfK1QreHY2ZEBAcGxWS04hVCEyTGhJV3E/Kk1+Rj57THJx
YkRoN3ZlfGZrVntXRDBvfCk7Zz96ajFLCnpqKGRpTmB1cDRWKSRXJTNlIXE+Xj1DfGVjK2xNbGJ5
WnJuMmAoNEt+aGF8UC1kRCo/S3kyOWI4dFNvYUBrYyp1NAp6KWdESiUhPi09bXd6ZHYkSjJqS0gm
UXRCSkNJYDhzLSttJVBMP01JSi1PKylGSXZ9bzhRZUY8fVF5eD9lYTwkN0AKej1ie1FLXkgjUHdU
QzNhTEpJRig9LWV5bTt4NHhPJHNsKFk7Kjt+fUckeCRnOGxuY3IqTTJDfmw+RF45SkdMYiozCnoz
emtWaXdqfnFhUEVJRm5oZ3Z9SHd0Sm1FR15VNFlLJXMmYFFtaUs4Jl5AQ1o1IW5EJU9NNGA7U3A9
eFhCJEZTTgp6JHRIQTZAdV89Y0kobjI9dWpZWD52SSMoezUhei1+PzJ2M0R2fXkoVmxfeWx3NHtw
XkFKYGshPXQ5NGFnOWBQYjcKekV1fHVLRXs5VzVTN3xSZ0gtbVVEYiMrbSVNOVNPJWM7fGomNWcy
Kyl5TmFOPXtpO3UlTCk8fUNVaDxLeiNvSjJLCnpJcFZGPGZecE9LRHlNXl98NF4oajctQkI4SSRr
ZlAhQjU7clVhZ01QaTgpa35STz8+XkdBUCMyUkNPPi1RSD8xeQp6UlEtWSt3anA3PTZTaDtBT19j
ZE43SmtkLVpIaCZ2RiZtYl9ZPkJQX1FaYEl5ZmhDc347d0BISnFfdVoyVCQ5dGwKelJmYSRAIXhD
SzljY0UjUTZWUlk1akQkfkNedlM5fGA2PmlxTi1welUwVSR+KT51dCFZXyspU2NnQnVqMShrSCh8
CnoyaUgoNHJLWWMwTmg+TStGcFd5byFBYXB+enFrbX5gWlJ4JHZkY0UqeG0+UjVucmNyeWVwb151
ZUo0SnM2VXFDfAp6enBmYjdSVzMrbHRvbz47e1ljZXVySntMQVU4Y0BiJX1+Mng8czV2UFBJKist
ZXgkXjViKExwR0hTU0dOWERRfCgKeld0bWJARWczQFZMcHU0JTR8ISFQRUlFfT9kOX1rS0VtKih7
M259YTZMYUUrOEk5UylmWWE3WWEqZUlQaiF5NmhKCnpzR2JfYyZuK0JEVj1jTEFZWHloZj9JdChY
QS1FZVBjWVN0dExtaDllPn5NOGJDdnx3Kis1fnNzJVhEQjFlQ1Bedwp6blZnK25AOCU3Y2RFRCtP
aHoyMSomQEgjdGw0IUFeQT0tU1QxOCU5SVpnOXxEJm1DPiQ5PEElSCUxVkxaYTgjRkwKekJ5YyNi
bTc8R240bWNhcGlSUlc7ZnpqNkg9fEhtNilsdTBoVlE+am4qK3M1fis5cyZ3anV0T2BGemxfaldl
MGh5CnpwcVNnTG9TR0hwd0tYb2NpfmZKY0ZrPyFiZFEpVzFCdWp2WT1QZipBUW96RSl2bGZ7eik2
ZTl2Rl9TMCZDbTstMwp6KnFCTGg9Q25PKigxYmcrVHhJb087SUZXSD5JSjFwX0s/VGpTVG9zKHZ1
WWJUVFA4Y3YqeUwkfGRJakg7dVdzYigKelBIMmxOVSl7Km5vcSZkaXRUSjdLO31KaE5obWNpbDZj
b0VVQSlBNkc2RGdreXBRQztiazBLMjJDRjcpMVFeJXNhCnp2ay1FbCtkMmlnO2tfV0tGdW1GJW5H
fCFmMV5kcmdDZT9ZX3VaZiFCViE8Q0YzOCptSVBNUHhpdyhPP2UpWXBlLQp6X207a1YlQkwrYEM/
Njh+endMLVJoTXJpJm1JTTFCU1Q1cj01KlJnWEFCTC1wWEBlZilMQXBsT0Q/bCh+R1FvTXoKejNj
X1VDMFdhRFM/UXUtMVRARyhCQndDPE9gfCVuJDw2dDF7a09PRmhufVlJa08we1JDcilTdHhYKm4o
TFBkJTlOCnpYOE5mOEIlUCR1e3g9VUVlNnhRUDxWcEt6YGtOVUNRflFAZ04wcyR4IzFzcSRaR1Bk
PSNsbXJAd05KTCR1eDJLfAp6TylNcml5ckZ6NTR7emNGISpBP0ErJG9oRT1GYiNBbzAqZClETSRZ
I20jeUs0JWloUXRjdElOOCNkQWlVOWVTb20KemRQek1neVEjTGBUYHcoc2pWQGojJmh3QXdAc15z
Iz9LTV5JPmd3OFJsQWM5X190RV9NYlJYUyFjSyRgV05OM0w/Cnp4O1gjcmVlZXRGenNrdkNZa1Fo
YjJMZyExX0JOVDRFdFhecXpeezFaeygpVjZkdj9DSD51QVNPIW1zP1RPPyRUUAp6K1J8U2ooWXQo
VyRKUU1zWjdjViQ9KSNROWlxZSVpQzYheVpaN3I4KjEhVkloPjwlN0RUbTlKNCQzOUl2TjlYOSUK
emspeXZee2hMUWQ9QWM+WmxDKylOKkxRZjUhc2ZgP01IP0tNbHR+Kn12d0pzbitJeCF6ZEkkUEBj
WGZLM253enxoCnp1NUdteVI4QWBvcm9UZ1FkazUocXhWcVlRKkE4IU9iQih1VlM2UDJpWiRWTGt5
PVlTejdVOCRiN2puaDArcTBlfAp6OH1XNWk9Yy02Mj9VNUYjJkoobUpzNyN8aHJXM1NDYXE7K3Y8
KGBrWVhKQC14KU0jKDtZP1grNW1pJmFtWldfOEcKelQoRUxNP0UyeUM/SkA8I0E7a2lmZ2NSOWlq
bmVXVXopKUZINUtkeG1ob2xMcUFqSFdlMmYteSQ5TnZDMUw0RntICnppP30pcmszWGZGV3dIbj48
RDErSjgyckpAaFgoO0RfUFN+ZSV+NT8lKEsmMkV2NDBJe2RrWCQzRztIYXFyQXVANgp6cEV8WWwp
YyphNVBWTFdHaW1hUiptPTVFQk9hJWRLYT9yN3t6Jjt3VjJ0NlFMJGtpQlNMfCNJKFhWM219MzZ4
NVIKenZ1Z1peeldubWIqJmt0SkJFJmRrNDkmYll5WSgre0Q7RU1YXzMmVHNKTjV6bkdoSXdMdEh1
JWoyfHtkdGVDKC1UCno9U295O0JIUDtwXkpLO2YjUFlPVlM7cnxyengoangmKihHeWExcVRUT09g
Y2xsaH1gRlJySSFKTzt8VUA3a1dAMAp6cH5KPG1XZ1hiaXZ4ZD9ydCQwbj1oN0RQM2liMnd2bygl
YEdVTW9JS0JRKC07X2Bxd2c5WFEtRzB0cD9HTWVfLXcKejZLZFN+MVNPOH1LWXcxdE4/Z0t1V0o1
QnpOaXw9NFlZTkdAY0EtdFpUVjczVHlMMCNNU2FJejZfdnc4KWM0KWBECnp4ZnxEKHRRTXhqRDdN
VyRBejZzOXJlbWZuamsrO3YpVWpNOVE0IXs5KHp2NUVZfWAjelEpJCNwcklHKXF2Uik8fQp6ITc2
WllhPHQtPClaV15QaCp9Kn5mbzdjJDlhQXQ2UCpkUGRRVVphWDMxU1dUNDhrbFpEYVp8Mk9lWEVU
OCNHeGcKejNUaTFTN0s8cWVYRiMmYTFWZl54QWxETVc7U209YTd6RnZUMiRMSW1QRjBPZ1BxbX56
cHgmUEhQY0xOUXU0NU1MCnpxI2VVUk1RbkozSUFDMit0K0YycFlqaFp2REcqa2FWNmVFWXUhd1Y1
MDNAdDlqIz8mfS1VZFNyRTt6Y1dOeFFyZAp6WTM7KHBneUdsJDlkVW5mYmQlTn0jd2QofGNAfmJy
OSg1KWZiZmhUYUQxMGAhNUhxd05Kdz1JMDg0SiVtcXpwNU0KejkyPmZWOGQxXzhifjdTMz0kRXpZ
OFhJYXNVc085cUU3PmVqM01hIVRzU1FwUU41Q00wcERSe2ExQzc7JmM1UnJZCnpGJEBCRzAlNEZz
UiQtN3I9MVpGRSQyfCZNSFFgell5QXstI2lVSyled3FXdXtETVJRMT5AUWtXRD11U042bClpPwp6
O0khYHBZM0BRaENvV20jRClfQjJzIzQ5UlIwWnwtZmkjdjlVb19jWTM9aDRGNEQ+bl8mSUQqbj11
JCt0NSl3M0IKemRZZDFpTCoxX3E0ISt1Ymg+cDthbDAoX0F6QktySl9qQnxkSnp3JXRfTkljWnco
MmJEX2I+cGtKJGw5WDhTeVNmCnpfeG0jbiQ0KDBaNlNsU0NXeCthcnBwP3Q2Xm1PaGFLYj1UQnZK
M31ibjg4YSVXZnQtR1kyKmw8cGhMTXNGTFgtawp6JXM8R34tcXpNbShqZjZaK0tKNXo8IXs5dk10
WWopV0IhPzFDTz1LUWYtMmpuVF9QQnBEPVFnN1crQ09hTVZNeEYKej58O3k7UitqdTlWfnYldU1X
QXJoPVowV0ZKSnMyNkNuVk89RXs/a0AjSmtqNFI9JXlRVm9RfnM/NmpxJnRpNjFQCnp2eS19VG1i
WTNVdlojPn5jdCYlfUMrSnQ8VCVsSyhjSiZWODE+SDdaSG0jKT5jaE8kal94aXdGRyhgVEFSPVlH
eAp6eWs/OzY3NW1QRHA2cz9QJUEpTWJnNXZ6NSh2NmZ1eG1fRH5aPmdgVnJ9e2J4QVl7V3peUyNe
cWltOHh0VW8yUCkKendgPVFtXmg+RzRuK2lITl9pcjYyOTtgZS0yV1lUdXBsNWUpKkl3RkJKNit3
NVBVKCtnRWE0O2VHRD1JTVd3ZE4wCno/UzBycVJwXkZ4cktwWis2cnVwOE1XYDFoPnN3WTx0KFJ+
WCkoMkk2NVI3NyR6YV50RzI2MGdKQ1BpPDtXST1Hbgp6I2YjcXJBO0ZZaDVRZmtzK0BXSEotSi1T
ZihiY1Bvail0I3dxT2BlUDdKbDZuNnBKN2hSMmRmUFd0MFVpPzFFeE4KenEhcFdtPiUpNWJGX2xu
RGkhRG1nSCZCK34qR256X1hyNXcpeDwrdW1pRi0we2xJUXhBSTlaIXpULUtLUVZaM2I/Cno3ekA0
fUtIKDVgRFIkVGxLZGlgTjs7Vld4TjliTXA8aH1Qa3AtPD8mcFY4d35TeXglPmthak1WcEZHWmVv
dH5Zcgp6c3FkczgpYjFBMmFseFElelBmM3JyXygxTCRMWTRid3tBemYpWSE8fGNodlFrd0BLPlg5
RigmdVp4MFI5O0dSOCoKelhpcHd4USs4Zm53czNGJT1qKnModV9QdX5DIyFHKis5TCZFZGMlfTxQ
NGwoT3hHe0JEVGZmTmxuX1Z5cXlVfDVtCnplbV89b0dnazA0Qm41QlMrJTgqfUBWdk5uSGltcE0l
QEUoZVYpMlE8ISNLWH57OGFaTShufSltaXxoe09NMClDQAp6NlE3XjFjcGteK3Nya0NgM0gpXjkr
N35DP2w9NjZ1anpOc0NQfFMhfWxwNjZ4O3pfJj5fJWFyUXVVUkA0S1lzc3MKeigpaiN8fEMqUlVL
MH0mfnw3aEgtckY5ZChpYFUxOyM+WWdzd0Y7MykkOF9NaFN3alZLXzFfKSo7YHk1Jnl+dTc3CnpP
KX5iO2locFIxejkrdCM3e15HKmtydTZuQU1sOTI8Nyl8PF8pNWVZUWx3Q09FdHJ9Um9reUtgZ3ZT
TCRnY2oqJgp6TlNRKjVJd0N+TiMyWClFU2xeVnEkfDx4Y3BObyhYJHQkPzMleig1QXFUWTRGIzgp
VTZ4UWA+R045d01LeWFqJGQKekxTXkl+Jik1cHxOKmtwQ0FMR09qI1ZwYF5YTX5ReUkmRiYzdkI7
a3JxNGw3Kk1RRn0kTT1IIWE0UFRtO00oRkE2CnplJTJ3QE9AQVlEMVpKMkhWfXxLNFd8JDZSaFVx
WTduNFNqU1JUMTdXcmshUThqalJNODdUMiolSGspayptQkRpRwp6VFp3YzUoJUNFekhSQUN9QDxI
X1puKVI+dmZfVXZ9Pj4wcHJWMTtOUDFNdF5gVkBwdFBxdD1CQylYSFMqKFM7WSMKVShSbFYweHwr
dzlBJjhEKUd9bkZwMmkpdXJKcGNkegoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tp
bnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2UuZGV2LnN2ZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55
bWNlLmRldi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM4N2I4
Y2QxYWFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2UuZGV2LnN2
ZwpAQCAtMCwwICsxLDE1MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/
PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+Cis8c3ZnIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8bWV0YWRhdGE+CitUaGlzIGlzIGEgY3Vz
dG9tIFNWRyBmb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgorPGljb25zZXQgZ3JpZD0iMTYiPjwv
aWNvbnNldD4KKzwvbWV0YWRhdGE+Cis8ZGVmcz4KKzxmb250IGlkPSJ0aW55bWNlIiBob3Jpei1h
ZHYteD0iNTEyIiA+Cis8Zm9udC1mYWNlIHVuaXRzLXBlci1lbT0iNTEyIiBhc2NlbnQ9IjQ4MCIg
ZGVzY2VudD0iLTMyIiAvPgorPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUxMiIgLz4KKzxn
bHlwaCBjbGFzcz0iaGlkZGVuIiB1bmljb2RlPSImI3hmMDAwOyIgZD0iTTAsNDgwTCA1MTIgLTMy
TDAgLTMyIHoiIGhvcml6LWFkdi14PSIwIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzQ7IiBk
PSJNIDQ2NCw0MTZMIDI1Niw0MTZMIDI0MCw0NDhMIDY0LDQ0OEwgMzIsMzg0TCA0ODAsMzg0IHpN
IDQ1Mi4xNywxMjhsIDM3LjQzLDAgTCA1MTIsMzUyTDAsMzUyIGwgMzItMzIwbCAyNDIuMDQwLDAg
QyAyMjEuNTk5LDUwLjg4OCwgMTg0LDEwMS4xMzMsIDE4NCwxNjBjMCw3NC45OTEsIDYxLjAwOSwx
MzYsIDEzNiwxMzYKKwljIDc0Ljk5LDAsIDEzNi02MS4wMDksIDEzNi0xMzZDIDQ1NiwxNDkuMTYx
LCA0NTQuNjg5LDEzOC40MjUsIDQ1Mi4xNywxMjh6TSA1MDEuNDk4LDIzLjEyNWwtOTkuMjQ4LDg3
LjM0NkMgNDEwLjk3NywxMjQuOTMxLCA0MTYsMTQxLjg3OCwgNDE2LDE2MGMwLDUzLjAyMC00Mi45
OCw5Ni05Niw5NnMtOTYtNDIuOTgtOTYtOTYKKwlzIDQyLjk4LTk2LCA5Ni05NmMgMTguMTIyLDAs
IDM1LjA2OSw1LjAyMywgNDkuNTI5LDEzLjc1bCA4Ny4zNDYtOTkuMjQ4YyAxMS40ODEtMTMuMzM5
LCAzMS4wNTktMTQuMDcwLCA0My41MDMtMS42MjZsIDIuNzQ2LDIuNzQ2CisJQyA1MTUuNTY4LTcu
OTM0LCA1MTQuODM3LDExLjY0NCwgNTAxLjQ5OCwyMy4xMjV6IE0gMzIwLDk4Yy0zNC4yNDIsMC02
MiwyNy43NTgtNjIsNjJzIDI3Ljc1OCw2MiwgNjIsNjJzIDYyLTI3Ljc1OCwgNjItNjIKKwlTIDM1
NC4yNDIsOTgsIDMyMCw5OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMjsiIGQ9Ik0gMzg0
LDM1MkwgNDE2LDM1MkwgNDE2LDMyMEwgMzg0LDMyMHpNIDMyMCwyODhMIDM1MiwyODhMIDM1Miwy
NTZMIDMyMCwyNTZ6TSAzMjAsMjI0TCAzNTIsMjI0TCAzNTIsMTkyTCAzMjAsMTkyek0gMzIwLDE2
MEwgMzUyLDE2MEwgMzUyLDEyOEwgMzIwLDEyOHpNIDI1NiwyMjRMIDI4OCwyMjRMIDI4OCwxOTJM
IDI1NiwxOTJ6TSAyNTYsMTYwTCAyODgsMTYwTCAyODgsMTI4TCAyNTYsMTI4ek0gMTkyLDE2MEwg
MjI0LDE2MEwgMjI0LDEyOEwgMTkyLDEyOHpNIDM4NCwyODhMIDQxNiwyODhMIDQxNiwyNTZMIDM4
NCwyNTZ6TSAzODQsMjI0TCA0MTYsMjI0TCA0MTYsMTkyTCAzODQsMTkyek0gMzg0LDE2MEwgNDE2
LDE2MEwgNDE2LDEyOEwgMzg0LDEyOHpNIDM4NCw5NkwgNDE2LDk2TCA0MTYsNjRMIDM4NCw2NHpN
IDMyMCw5NkwgMzUyLDk2TCAzNTIsNjRMIDMyMCw2NHpNIDI1Niw5NkwgMjg4LDk2TCAyODgsNjRM
IDI1Niw2NHpNIDE5Miw5NkwgMjI0LDk2TCAyMjQsNjRMIDE5Miw2NHpNIDEyOCw5NkwgMTYwLDk2
TCAxNjAsNjRMIDEyOCw2NHoiIGRhdGEtdGFncz0icmVzaXplLCBkb3RzIiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMzE7IiBkPSJNIDQxNiwzNTJsLTk2LDAgTCAzMjAsMzg0IEwgMjI0LDQ4MEww
LDQ4MCBsMC0zODQgbCAxOTIsMCBsMC0xMjggbCAzMjAsMCBMIDUxMiwyNTYgTCA0MTYsMzUyeiBN
IDQxNiwzMDYuNzQ1TCA0NjYuNzQ1LDI1NkwgNDE2LDI1NiBMIDQxNiwzMDYuNzQ1IHogTSAyMjQs
NDM0Ljc0NUwgMjc0Ljc0NSwzODRMIDIyNCwzODQgCisJTCAyMjQsNDM0Ljc0NSB6IE0gMzIsNDQ4
bCAxNjAsMCBsMC05NiBsIDk2LDAgbDAtMjI0IEwgMzIsMTI4IEwgMzIsNDQ4IHogTSA0ODAsMEwg
MjI0LDAgbDAsOTYgbCA5NiwwIEwgMzIwLDMyMCBsIDY0LDAgbDAtOTYgbCA5NiwwIEwgNDgwLDAg
eiIgZGF0YS10YWdzPSJjb3B5IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzA7IiBkPSJNIDEy
OCw0NDggTCAzODQsNDQ4IEwgMzg0LDM4NCBMIDMyMCwzODQgTCAzMjAsMCBMIDI1NiwwIEwgMjU2
LDM4NCBMIDE5MiwzODQgTCAxOTIsMCBMIDEyOCwwIEwgMTI4LDIyNCBDIDY2LjE0NCwyMjQgMTYs
Mjc0LjE0NCAxNiwzMzYgQyAxNiwzOTcuODU2IDY2LjE0NCw0NDggMTI4LDQ0OCBaTSA0ODAsMzJM
IDM1MiwxNDRMIDQ4MCwyNTYgeiIgZGF0YS10YWdzPSJydGwiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAyZjsiIGQ9Ik0gMjI0LDQ0OCBMIDQ4MCw0NDggTCA0ODAsMzg0IEwgNDE2LDM4NCBMIDQx
NiwwIEwgMzUyLDAgTCAzNTIsMzg0IEwgMjg4LDM4NCBMIDI4OCwwIEwgMjI0LDAgTCAyMjQsMjI0
IEMgMTYyLjE0NCwyMjQgMTEyLDI3NC4xNDQgMTEyLDMzNiBDIDExMiwzOTcuODU2IDE2Mi4xNDQs
NDQ4IDIyNCw0NDggWk0gMzIsMjU2TCAxNjAsMTQ0TCAzMiwzMiB6IiBkYXRhLXRhZ3M9Imx0ciIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJlOyIgZD0iTSAxOTIsNDQ4IEwgNDQ4LDQ0OCBMIDQ0
OCwzODQgTCAzODQsMzg0IEwgMzg0LDAgTCAzMjAsMCBMIDMyMCwzODQgTCAyNTYsMzg0IEwgMjU2
LDAgTCAxOTIsMCBMIDE5MiwyMjQgQyAxMzAuMTQ0LDIyNCA4MCwyNzQuMTQ0IDgwLDMzNiBDIDgw
LDM5Ny44NTYgMTMwLjE0NCw0NDggMTkyLDQ0OCBaIiBkYXRhLXRhZ3M9InZpc3VhbGNoYXJzIiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMmQ7IiBkPSJNIDM2NS43MSwyMjEuNDgyIEMgMzk3LjY3
LDE5Ny41MTMgNDE2LDE2My40MzkgNDE2LDEyOCBDIDQxNiw5Mi41NjEgMzk3LjY3LDU4LjQ4NyAz
NjUuNzEsMzQuNTE4IEMgMzM2LjAzMSwxMi4yNTkgMjk3LjA2OCwwIDI1NiwwIEMgMjE0LjkzMSww
IDE3NS45NjksMTIuMjU5IDE0Ni4yOSwzNC41MTggQyAxMTQuMzMsNTguNDg3IDk2LDkyLjU2MSA5
NiwxMjggTCAxNjAsMTI4IEMgMTYwLDkzLjMwOSAyMDMuOTYzLDY0IDI1Niw2NCBDIDMwOC4wMzcs
NjQgMzUyLDkzLjMwOSAzNTIsMTI4IEMgMzUyLDE2Mi42OTEgMzA4LjAzNywxOTIgMjU2LDE5MiBD
IDIxNC45MzEsMTkyIDE3NS45NjksMjA0LjI1OSAxNDYuMjksMjI2LjUxOCBDIDExNC4zMywyNTAu
NDg4IDk2LDI4NC41NjEgOTYsMzIwIEMgOTYsMzU1LjQzOSAxMTQuMzMsMzg5LjUxMiAxNDYuMjks
NDEzLjQ4MiBDIDE3NS45NjksNDM1Ljc0MSAyMTQuOTMxLDQ0OCAyNTYsNDQ4IEMgMjk3LjA2OCw0
NDggMzM2LjAzMSw0MzUuNzQxIDM2NS43MSw0MTMuNDgyIEMgMzk3LjY3LDM4OS41MTIgNDE2LDM1
NS40MzkgNDE2LDMyMCBMIDM1MiwzMjAgQyAzNTIsMzU0LjY5MSAzMDguMDM3LDM4NCAyNTYsMzg0
IEMgMjAzLjk2MywzODQgMTYwLDM1NC42OTEgMTYwLDMyMCBDIDE2MCwyODUuMzA5IDIwMy45NjMs
MjU2IDI1NiwyNTYgQyAyOTcuMDY4LDI1NiAzMzYuMDMxLDI0My43NDEgMzY1LjcxLDIyMS40ODIg
Wk0wLDIyNEwgNTEyLDIyNEwgNTEyLDE5MkwwLDE5MnoiIGRhdGEtdGFncz0ic3RyaWtldGhyb3Vn
aCIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJjOyIgZD0iTSAzNTIsNDQ4IEwgNDE2LDQ0OCBM
IDQxNiwyNDAgQyA0MTYsMTYwLjQ3MSAzNDQuMzY2LDk2IDI1Niw5NiBDIDE2Ny42MzUsOTYgOTYs
MTYwLjQ3MSA5NiwyNDAgTCA5Niw0NDggTCAxNjAsNDQ4IEwgMTYwLDI0MCBDIDE2MCwyMTkuOTE3
IDE2OS4xMTksMjAwLjY0OCAxODUuNjc3LDE4NS43NDcgQyAyMDQuMTI1LDE2OS4xNDUgMjI5LjEs
MTYwIDI1NiwxNjAgQyAyODIuOSwxNjAgMzA3Ljg3NSwxNjkuMTQ1IDMyNi4zMjMsMTg1Ljc0NyBD
IDM0Mi44ODEsMjAwLjY0OCAzNTIsMjE5LjkxNyAzNTIsMjQwIEwgMzUyLDQ0OCBaTSA5Niw2NEwg
NDE2LDY0TCA0MTYsMEwgOTYsMHoiIGRhdGEtdGFncz0idW5kZXJsaW5lIiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMmI7IiBkPSJNIDQ0OCw0NDggTCA0NDgsNDE2IEwgMzg0LDQxNiBMIDIyNCwz
MiBMIDI4OCwzMiBMIDI4OCwwIEwgNjQsMCBMIDY0LDMyIEwgMTI4LDMyIEwgMjg4LDQxNiBMIDIy
NCw0MTYgTCAyMjQsNDQ4IFoiIGRhdGEtdGFncz0iaXRhbGljIiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwMmE7IiBkPSJNIDM1My45NCwyMzcuNjc0QyAzNzIuNjg5LDI1OS45NDUsIDM4NCwyODgu
Njc4LCAzODQsMzIwYzAsNzAuNTgtNTcuNDIxLDEyOC0xMjgsMTI4bC02NCwwIGwtNjQsMCBMIDk2
LDQ0OCBsMC00NDggbCAzMiwwIGwgNjQsMCBsIDk2LDAgCisJYyA3MC41NzksMCwgMTI4LDU3LjQy
MSwgMTI4LDEyOEMgNDE2LDE3NC40NzgsIDM5MS4xMDEsMjE1LjI0OCwgMzUzLjk0LDIzNy42NzR6
IE0gMTkyLDM4NGwgNTAuNzUsMCBjIDI3Ljk4NCwwLCA1MC43NS0yOC43MSwgNTAuNzUtNjQKKwlz
LTIyLjc2Ni02NC01MC43NS02NEwgMTkyLDI1NiBMIDE5MiwzODQgeiBNIDI3MS41LDY0TCAxOTIs
NjQgTCAxOTIsMTkyIGwgNzkuNSwwIGMgMjkuMjI1LDAsIDUzLTI4LjcxLCA1My02NFMgMzAwLjcy
NSw2NCwgMjcxLjUsNjR6IiBkYXRhLXRhZ3M9ImJvbGQwIiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwMjk7IiBkPSJNIDE5Miw2NEwgMjg4LDY0TCAyODgtMzJMIDE5Mi0zMnpNIDQwMCw0NDggQyA0
MjYuNTEsNDQ4IDQ0OCw0MjYuNTEgNDQ4LDQwMCBMIDQ0OCwyNTYgTCAyODgsMTYwIEwgMjg4LDk2
IEwgMTkyLDk2IEwgMTkyLDE5MiBMIDM1MiwyODggTCAzNTIsMzUyIEwgOTYsMzUyIEwgOTYsNDQ4
IEwgNDAwLDQ0OCBaIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjg7IiBkPSJNIDI4OCw0NDgg
QyA0MTEuNzEyLDQ0OCA1MTIsMzQ3LjcxMiA1MTIsMjI0IEMgNTEyLDEwMC4yODggNDExLjcxMiww
IDI4OCwwIEwgMjg4LDQ4IEMgMzM1LjAxMiw0OCAzNzkuMjA5LDY2LjMwNyA0MTIuNDUxLDk5LjU0
OSBDIDQ0NS42OTMsMTMyLjc5MSA0NjQsMTc2Ljk4OCA0NjQsMjI0IEMgNDY0LDI3MS4wMTEgNDQ1
LjY5MywzMTUuMjA5IDQxMi40NTEsMzQ4LjQ1MSBDIDM3OS4yMDksMzgxLjY5MyAzMzUuMDEyLDQw
MCAyODgsNDAwIEMgMjQwLjk4OSw0MDAgMTk2Ljc5MSwzODEuNjkzIDE2My41NDksMzQ4LjQ1MSBD
IDEzNy45NzksMzIyLjg4MiAxMjEuMjU4LDI5MC44MjggMTE0Ljg5NiwyNTYgTCAyMDgsMjU2IEwg
OTYsMTI4IEwgLTE2LDI1NiBMIDY2LjI4NSwyNTYgQyA4MS44MTUsMzY0LjU1MSAxNzUuMTU0LDQ0
OCAyODgsNDQ4IFpNIDM4NCwyNTYgTCAzODQsMTkyIEwgMjU2LDE5MiBMIDI1NiwzNTIgTCAzMjAs
MzUyIEwgMzIwLDI1NiBaIiBkYXRhLXRhZ3M9InJlc3RvcmVkcmFmdCIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDI3OyIgZD0iTTAsMjI0TCA2NCwyMjRMIDY0LDE5MkwwLDE5MnpNIDk2LDIyNEwg
MTkyLDIyNEwgMTkyLDE5MkwgOTYsMTkyek0gMjI0LDIyNEwgMjg4LDIyNEwgMjg4LDE5MkwgMjI0
LDE5MnpNIDMyMCwyMjRMIDQxNiwyMjRMIDQxNiwxOTJMIDMyMCwxOTJ6TSA0NDgsMjI0TCA1MTIs
MjI0TCA1MTIsMTkyTCA0NDgsMTkyek0gNDQwLDQ4MCBMIDQ0OCwyNTYgTCA2NCwyNTYgTCA3Miw0
ODAgTCA4OCw0ODAgTCA5NiwyODggTCA0MTYsMjg4IEwgNDI0LDQ4MCBaTSA3Mi0zMiBMIDY0LDE2
MCBMIDQ0OCwxNjAgTCA0NDAtMzIgTCA0MjQtMzIgTCA0MTYsMTI4IEwgOTYsMTI4IEwgODgtMzIg
WiIgZGF0YS10YWdzPSJwYWdlYnJlYWsiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNjsiIGQ9
Ik0gMTkyLDM4NEwgMjU2LDM4NEwgMjU2LDM1MkwgMTkyLDM1MnpNIDI4OCwzODRMIDM1MiwzODRM
IDM1MiwzNTJMIDI4OCwzNTJ6TSA0NDgsMzg0IEwgNDQ4LDI1NiBMIDM1MiwyNTYgTCAzNTIsMjg4
IEwgNDE2LDI4OCBMIDQxNiwzNTIgTCAzODQsMzUyIEwgMzg0LDM4NCBaTSAxNjAsMjg4TCAyMjQs
Mjg4TCAyMjQsMjU2TCAxNjAsMjU2ek0gMjU2LDI4OEwgMzIwLDI4OEwgMzIwLDI1NkwgMjU2LDI1
NnpNIDk2LDM1MiBMIDk2LDI4OCBMIDEyOCwyODggTCAxMjgsMjU2IEwgNjQsMjU2IEwgNjQsMzg0
IEwgMTYwLDM4NCBMIDE2MCwzNTIgWk0gMTkyLDE5MkwgMjU2LDE5MkwgMjU2LDE2MEwgMTkyLDE2
MHpNIDI4OCwxOTJMIDM1MiwxOTJMIDM1MiwxNjBMIDI4OCwxNjB6TSA0NDgsMTkyIEwgNDQ4LDY0
IEwgMzUyLDY0IEwgMzUyLDk2IEwgNDE2LDk2IEwgNDE2LDE2MCBMIDM4NCwxNjAgTCAzODQsMTky
IFpNIDE2MCw5NkwgMjI0LDk2TCAyMjQsNjRMIDE2MCw2NHpNIDI1Niw5NkwgMzIwLDk2TCAzMjAs
NjRMIDI1Niw2NHpNIDk2LDE2MCBMIDk2LDk2IEwgMTI4LDk2IEwgMTI4LDY0IEwgNjQsNjQgTCA2
NCwxOTIgTCAxNjAsMTkyIEwgMTYwLDE2MCBaTSA0ODAsNDQ4IEwgMzIsNDQ4IEwgMzIsMCBMIDQ4
MCwwIEwgNDgwLDQ0OCBaIE0gNTEyLDQ4MCBMIDUxMiw0ODAgTCA1MTItMzIgTCAwLTMyIEwgMCw0
ODAgTCA1MTIsNDgwIFoiIGRhdGEtdGFncz0idGVtcGxhdGUiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAyNTsiIGQ9Ik0gMjI0LDE5MiBMIDEyOCwxOTIgTCAxMjgsMjU2IEwgMjI0LDI1NiBMIDIy
NCwzNTIgTCAyODgsMzUyIEwgMjg4LDI1NiBMIDM4NCwyNTYgTCAzODQsMTkyIEwgMjg4LDE5MiBM
IDI4OCw5NiBMIDIyNCw5NiBaTSA1MTIsMTYwIEwgNTEyLTMyIEwgMC0zMiBMIDAsMTYwIEwgNjQs
MTYwIEwgNjQsMzIgTCA0NDgsMzIgTCA0NDgsMTYwIFoiIGRhdGEtdGFncz0ibm9uYnJlYWtpbmci
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNDsiIGQ9Ik0gNjQsMzUybCA2NCwwIGwwLTk2IGwg
MzIsMCBMIDE2MCw0NDggYzAsMTcuNi0xNC40LDMyLTMyLDMyTCA2NCw0ODAgQyA0Ni40LDQ4MCwg
MzIsNDY1LjYsIDMyLDQ0OGwwLTE5MiBsIDMyLDAgTCA2NCwzNTIgeiBNIDY0LDQ0OGwgNjQsMCBs
MC02NCBMIDY0LDM4NCBMIDY0LDQ0OCB6IE0gNDgwLDQ0OEwgNDgwLDQ4MCBsLTk2LDAgCisJYy0x
Ny42MDEsMC0zMi0xNC40LTMyLTMybDAtMTYwIGMwLTE3LjYsIDE0LjM5OS0zMiwgMzItMzJsIDk2
LDAgbDAsMzIgbC05NiwwIEwgMzg0LDQ0OCBMIDQ4MCw0NDggeiBNIDMyMCw0MDBMIDMyMCw0NDgg
YzAsMTcuNi0xNC40LDMyLTMyLDMybC05NiwwIGwwLTIyNCBsIDk2LDAgCisJYyAxNy42LDAsIDMy
LDE0LjQsIDMyLDMybDAsNDggYzAsMTcuNi00LjQsMzItMjIsMzJDIDMxNS42LDM2OCwgMzIwLDM4
Mi40LCAzMjAsNDAweiBNIDI4OCwyODhsLTY0LDAgbDAsNjQgbCA2NCwwIEwgMjg4LDI4OCB6IE0g
Mjg4LDM4NGwtNjQsMCBMIDIyNCw0NDggbCA2NCwwIEwgMjg4LDM4NCB6TSA0MTYsMTkyIEwgMjA4
LTMyIEwgOTYsMTEyIEwgMTM3LDE0NyBMIDIwOCw3MyBMIDM4NCwyMjQgWiIgZGF0YS10YWdzPSJz
cGVsbGNoZWNrZXIiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMzsiIGQ9Ik0gNTEyLDQ4MCBM
IDUxMiwyODggTCA0NDIuODcsMzU3LjEzIEwgMzM2Ljg3LDI1MS4xMyBMIDI4My4xMywzMDQuODcg
TCAzODkuMTMsNDEwLjg3IEwgMzIwLDQ4MCBaTSAxMjIuODcsNDEwLjg3IEwgMjI4Ljg3LDMwNC44
NyBMIDE3NS4xMywyNTEuMTMgTCA2OS4xMywzNTcuMTMgTCAwLDI4OCBMIDAsNDgwIEwgMTkyLDQ4
MCBaTSA0NDIuODcsOTAuODcgTCA1MTIsMTYwIEwgNTEyLTMyIEwgMzIwLTMyIEwgMzg5LjEzLDM3
LjEzIEwgMjgzLjEzLDE0My4xMyBMIDMzNi44NywxOTYuODcgWk0gMjI4Ljg3LDE0My4xMyBMIDEy
Mi44NywzNy4xMyBMIDE5Mi0zMiBMIDAtMzIgTCAwLDE2MCBMIDY5LjEzLDkwLjg3IEwgMTc1LjEz
LDE5Ni44NyBaIiBkYXRhLXRhZ3M9ImZ1bGxzY3JlZW4iIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAyMjsiIGQ9Ik0gMTI4LDQ0OEwgMzg0LDQ0OEwgMzg0LDM4NEwgMTI4LDM4NHpNIDQ4MCwzNTJM
IDMyLDM1MiBDIDE0LjQsMzUyLDAsMzM3LjYsMCwzMjBsMC0xNjAgYzAtMTcuNiwgMTQuMzk4LTMy
LCAzMi0zMmwgOTYsMCBsMC0xMjggbCAyNTYsMCBMIDM4NCwxMjggbCA5NiwwIGMgMTcuNiwwLCAz
MiwxNC40LCAzMiwzMkwgNTEyLDMyMCAKKwkJQyA1MTIsMzM3LjYsIDQ5Ny42LDM1MiwgNDgwLDM1
MnogTSAzNTIsMzJMIDE2MCwzMiBMIDE2MCwxOTIgbCAxOTIsMCBMIDM1MiwzMiB6IE0gNDg3LjIs
MzA0YzAtMTIuODEzLTEwLjM4Ny0yMy4yLTIzLjE5OS0yMy4yCisJCWMtMTIuODEzLDAtMjMuMjAx
LDEwLjM4Ny0yMy4yMDEsMjMuMnMgMTAuMzg4LDIzLjIsIDIzLjIwMSwyMy4yQyA0NzYuODE0LDMy
Ny4yLCA0ODcuMiwzMTYuODEzLCA0ODcuMiwzMDR6IiBkYXRhLXRhZ3M9InByaW50IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwMjE7IiBkPSJNIDI1Niw0ODBDIDExNC42MTUsNDgwLDAsMzY1LjM4
NiwwLDIyNGMwLTE0MS4zODUsIDExNC42MTQtMjU2LCAyNTYtMjU2YyAxNDEuMzg1LDAsIDI1Niwx
MTQuNjE1LCAyNTYsMjU2CisJQyA1MTIsMzY1LjM4NiwgMzk3LjM4NSw0ODAsIDI1Niw0ODB6IE0g
MjU2LDhjLTExOS4yOTMsMC0yMTYsOTYuNzA2LTIxNiwyMTZjMCwxMTkuMjkzLCA5Ni43MDcsMjE2
LCAyMTYsMjE2YyAxMTkuMjk1LDAsIDIxNi05Ni43MDcsIDIxNi0yMTYKKwlDIDQ3MiwxMDQuNzA2
LCAzNzUuMjk1LDgsIDI1Niw4eiBNIDE5MiwzMjBjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0z
MiwxNC4zMjctMzIsMzJzIDE0LjMyNywzMiwgMzIsMzJTIDE5MiwzMzcuNjczLCAxOTIsMzIwegor
CSBNIDM4NCwzMjBjMC0xNy42NzMtMTQuMzI2LTMyLTMyLTMycy0zMiwxNC4zMjctMzIsMzJzIDE0
LjMyNiwzMiwgMzIsMzJTIDM4NCwzMzcuNjczLCAzODQsMzIwek0gMjU2LDE1NCBDIDMyNi41Mzcs
MTU0IDM4Ny4zNDQsMTgyLjc2NiA0MTUuMjMxLDIxNS41OTYgQyA0MDQuNzk1LDEyOS45ODYgMzM3
LjA4Nyw2NCAyNTYsNjQgQyAxNzQuOTQxLDY0IDEwNy4yNTEsMTMwLjAxMyA5Ni43NzgsMjE1LjU4
NCBDIDEyNC42NzEsMTgyLjc2MSAxODUuNDcxLDE1NCAyNTYsMTU0IFoiIGRhdGEtdGFncz0iZW1v
dGljb25zIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNIDM1MiwzMiBMIDQ4MCwz
MiBMIDUxMiw5NiBMIDUxMi0zMiBMIDMyMC0zMiBMIDMyMCw3NS4xMDcgQyAzODUuNTU2LDEwMy4z
NDkgNDMyLDE3My42ODggNDMyLDI1NiBDIDQzMiwzNjMuMjE2IDM1My4yMDEsNDQ3LjEzMyAyNTYs
NDQ3LjEzMyBDIDE1OC43OTcsNDQ3LjEzMyA4MCwzNjMuMjE3IDgwLDI1NiBDIDgwLDE3My42ODgg
MTI2LjQ0MywxMDMuMzQ5IDE5Miw3NS4xMDcgTCAxOTItMzIgTCAwLTMyIEwgMCw5NiBMIDMyLDMy
IEwgMTYwLDMyIEwgMTYwLDQ4LjI5NSBDIDY2LjE4NSw4MS41MjUgMCwxNjEuOTk2IDAsMjU2IEMg
MCwzNzkuNzEyIDExNC42MTUsNDgwIDI1Niw0ODAgQyAzOTcuMzg1LDQ4MCA1MTIsMzc5LjcxMiA1
MTIsMjU2IEMgNTEyLDE2MS45OTYgNDQ1LjgxNSw4MS41MjUgMzUyLDQ4LjI5NSBMIDM1MiwzMiBa
IiBkYXRhLXRhZ3M9ImNoYXJtYXAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxZjsiIGQ9Ik0g
Mzg0LDM3NyBMIDM4NCwzNTIgTCA0NDgsMzUyIEwgNDQ4LDMyMCBMIDM1MiwzMjAgTCAzNTIsMzkz
IEwgNDE2LDQyMyBMIDQxNiw0NDggTCAzNTIsNDQ4IEwgMzUyLDQ4MCBMIDQ0OCw0ODAgTCA0NDgs
NDA3IFpNIDMzOCwzNTJMIDI3MCwzNTJMIDE3NiwyNThMIDgyLDM1MkwgMTQsMzUyTCAxNDIsMjI0
TCAxNCw5NkwgODIsOTZMIDE3NiwxOTBMIDI3MCw5NkwgMzM4LDk2TCAyMTAsMjI0IHoiIGRhdGEt
dGFncz0ic3VwIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWU7IiBkPSJNIDM4NCwyNSBMIDM4
NCwwIEwgNDQ4LDAgTCA0NDgtMzIgTCAzNTItMzIgTCAzNTIsNDEgTCA0MTYsNzEgTCA0MTYsOTYg
TCAzNTIsOTYgTCAzNTIsMTI4IEwgNDQ4LDEyOCBMIDQ0OCw1NSBaTSAzMzgsMzUyTCAyNzAsMzUy
TCAxNzYsMjU4TCA4MiwzNTJMIDE0LDM1MkwgMTQyLDIyNEwgMTQsOTZMIDgyLDk2TCAxNzYsMTkw
TCAyNzAsOTZMIDMzOCw5NkwgMjEwLDIyNCB6IiBkYXRhLXRhZ3M9InN1YiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDFkOyIgZD0iTTAsMzJMIDI4OCwzMkwgMjg4LTMyTDAtMzJ6TSA5Niw0ODBM
IDQ0OCw0ODBMIDQ0OCw0MTZMIDk2LDQxNnpNIDEzOC42OTQsNjQgTCAyNDEuMDM4LDQ1Ni4wODIg
TCAzMDIuOTYzLDQzOS45MTggTCAyMDQuODM4LDY0IFpNIDQ2NC44ODctMzIgTCA0MDAsMzIuODg3
IEwgMzM1LjExMy0zMiBMIDMwNC0wLjg4NyBMIDM2OC44ODcsNjQgTCAzMDQsMTI4Ljg4NyBMIDMz
NS4xMTMsMTYwIEwgNDAwLDk1LjExMyBMIDQ2NC44ODcsMTYwIEwgNDk2LDEyOC44ODcgTCA0MzEu
MTEzLDY0IEwgNDk2LTAuODg3IFoiIGRhdGEtdGFncz0icmVtb3ZlZm9ybWF0IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMWM7IiBkPSJNMCwyNTZMIDUxMiwyNTZMIDUxMiwxOTJMMCwxOTJ6IiBk
YXRhLXRhZ3M9ImhyIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWI7IiBkPSJNMCw0NDhsMC00
NDggbCA1MTIsMCBMIDUxMiw0NDggTDAsNDQ4IHogTSAxOTIsMTYwbDAsOTYgbCAxMjgsMCBsMC05
NiBMIDE5MiwxNjAgeiBNIDMyMCwxMjhsMC05NiBMIDE5MiwzMiBsMCw5NiBMIDMyMCwxMjggeiBN
IDMyMCwzODRsMC05NiBMIDE5MiwyODggTCAxOTIsMzg0IEwgMzIwLDM4NCB6IE0gMTYwLDM4NGww
LTk2IEwgMzIsMjg4IEwgMzIsMzg0IEwgMTYwLDM4NCB6CisJIE0gMzIsMjU2bCAxMjgsMCBsMC05
NiBMIDMyLDE2MCBMIDMyLDI1NiB6IE0gMzUyLDI1NmwgMTI4LDAgbDAtOTYgTCAzNTIsMTYwIEwg
MzUyLDI1NiB6IE0gMzUyLDI4OEwgMzUyLDM4NCBsIDEyOCwwIGwwLTk2IEwgMzUyLDI4OCB6IE0g
MzIsMTI4bCAxMjgsMCBsMC05NiBMIDMyLDMyIEwgMzIsMTI4IHogTSAzNTIsMzJsMCw5NiBsIDEy
OCwwIGwwLTk2IEwgMzUyLDMyIHoiIGRhdGEtdGFncz0idGFibGUiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAxYTsiIGQ9Ik0gMTYxLjAwOSw2NGwgMjguOCw5NmwgMTMyLjM4MiwwIGwgMjguOC05
NmwgNTYuODE2LDAgTCAzMTEuODA5LDM4NEwgMjAwLjE5MSwzODQgbC05Ni0zMjBMIDE2MS4wMDks
NjQgeiBNIDIzNy44MDksMzIwbCAzNi4zODIsMCBsIDI4LjgtOTZsLTkzLjk4MiwwIAorCUwgMjM3
LjgwOSwzMjB6IiBkYXRhLXRhZ3M9ImZvcmVjb2xvciIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDE5OyIgZD0iTSAyNTYsMzIwQyAxNTEuMzE2LDMyMCwgNTguMzc4LDI2OS43MjIsMCwxOTJjIDU4
LjM3OC03Ny43MjMsIDE1MS4zMTYtMTI4LCAyNTYtMTI4YyAxMDQuNjg0LDAsIDE5Ny42MjIsNTAu
Mjc3LCAyNTYsMTI4CisJQyA0NTMuNjIyLDI2OS43MjIsIDM2MC42ODQsMzIwLCAyNTYsMzIweiBN
IDIyNCwyNTZjIDE3LjY3MywwLCAzMi0xNC4zMjcsIDMyLTMycy0xNC4zMjctMzItMzItMzJzLTMy
LDE0LjMyNy0zMiwzMlMgMjA2LjMyNywyNTYsIDIyNCwyNTZ6CisJIE0gMzg2LjgwOCwxMjcuMzUy
Yy0xOS44MjQtMTAuMTI5LTQwLjgyNi0xNy45MzEtNjIuNDIzLTIzLjE4OEMgMzAyLjE0MSw5OC43
NDYsIDI3OS4xMzQsOTYsIDI1Niw5NgorCWMtMjMuMTMzLDAtNDYuMTQxLDIuNzQ2LTY4LjM4NCw4
LjE2MmMtMjEuNTk3LDUuMjU5LTQyLjU5OSwxMy4wNjEtNjIuNDIzLDIzLjE4OGMtMzEuNTEsMTYu
MTAxLTYwLjExMSwzOC4yMDUtODMuODIsNjQuNjQ5CisJYyAyMy43MDksMjYuNDQ0LCA1Mi4zMSw0
OC41NSwgODMuODIsNjQuNjQ5YyAxNi4xNjgsOC4yNjEsIDMzLjEyMSwxNC45NzMsIDUwLjU0MSwy
MC4wMjBDIDE2NS43OSwyNjEuNTQ3LCAxNjAsMjQzLjQ1MSwgMTYwLDIyNAorCWMwLTUzLjAyMCwg
NDIuOTgxLTk2LCA5Ni05NmMgNTMuMDE5LDAsIDk2LDQyLjk4LCA5Niw5NmMwLDE5LjQ1MS01Ljc5
MSwzNy41NDctMTUuNzMzLDUyLjY3YyAxNy40MTktNS4wNDgsIDM0LjM3Mi0xMS43NiwgNTAuNTQx
LTIwLjAyMQorCWMgMzEuNTExLTE2LjA5OSwgNjAuMTA5LTM4LjIwNCwgODMuODE5LTY0LjY0OUMg
NDQ2LjkxNywxNjUuNTU3LCA0MTguMzE4LDE0My40NSwgMzg2LjgwOCwxMjcuMzUyeiBNIDQzMC40
NTksMzU4LjEzOQorCUMgMzc2LjA5OSwzODUuOTE2LCAzMTcuNDAzLDQwMCwgMjU2LDQwMGMtNjEu
NDAzLDAtMTIwLjA5OS0xNC4wODQtMTc0LjQ1OS00MS44NjFDIDUyLjE1NSwzNDMuMTIzLCAyNC42
NzUsMzI0LjE4NywwLDMwMi4xMDFsMC01NC42MDMgCisJYyAyNy42NjksMjkuMjgzLCA2MC4zNDcs
NTMuODc3LCA5Ni4wOTcsNzIuMTQ1QyAxNDUuOTA3LDM0NS4wOTUsIDE5OS43MDYsMzU4LCAyNTYs
MzU4cyAxMTAuMDkzLTEyLjkwNSwgMTU5LjkwMi0zOC4zNTgKKwljIDM1Ljc1MS0xOC4yNjgsIDY4
LjQyOS00Mi44NjIsIDk2LjA5OC03Mi4xNDVMIDUxMiwzMDIuMSBDIDQ4Ny4zMjUsMzI0LjE4Nywg
NDU5Ljg0NiwzNDMuMTIzLCA0MzAuNDU5LDM1OC4xMzl6IiBkYXRhLXRhZ3M9InByZXZpZXciIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxODsiIGQ9Ik0gMjU2LDM4NEMgMTQ5Ljk2MiwzODQsIDY0
LDI5OC4wMzksIDY0LDE5MnMgODUuOTYxLTE5MiwgMTkyLTE5MmMgMTA2LjAzNywwLCAxOTIsODUu
OTYxLCAxOTIsMTkyUyAzNjIuMDM3LDM4NCwgMjU2LDM4NHoKKwkJIE0gMzU3LjgyMiw5MC4xNzdD
IDMzMC42MjYsNjIuOTc5LCAyOTQuNDY0LDQ4LCAyNTYsNDhzLTc0LjYyNSwxNC45NzktMTAxLjgy
Myw0Mi4xNzdDIDEyNi45NzksMTE3LjM3NCwgMTEyLDE1My41MzYsIDExMiwxOTIKKwkJcyAxNC45
NzksNzQuNjI1LCA0Mi4xNzcsMTAxLjgyM0MgMTgxLjM3NSwzMjEuMDIxLCAyMTcuNTM2LDMzNiwg
MjU2LDMzNnMgNzQuNjI2LTE0Ljk3OSwgMTAxLjgyMS00Mi4xNzcKKwkJQyAzODUuMDIyLDI2Ni42
MjUsIDQwMCwyMzAuNDY0LCA0MDAsMTkyUyAzODUuMDIxLDExNy4zNzQsIDM1Ny44MjIsOTAuMTc3
ek0gMTYyLjk2NSwzNzguMDY5bC0yMS40Nyw0Mi45MzlDIDkyLjA1OCwzOTYuMjQsIDUxLjc2LDM1
NS45NDIsIDI2Ljk5MiwzMDYuNTA0bCA0Mi45MzgtMjEuNDcKKwkJQyA5MC4wNTQsMzI1LjIwMiwg
MTIyLjc5NiwzNTcuOTQ1LCAxNjIuOTY1LDM3OC4wNjl6TSA0NDIuMDY3LDI4NS4wMzVsIDQyLjkz
OSwyMS40NjlDIDQ2MC4yNCwzNTUuOTQyLCA0MTkuOTQzLDM5Ni4yNCwgMzcwLjUwNCw0MjEuMDA4
bC0yMS40NzItNDIuOTM5CisJCUMgMzg5LjIwMSwzNTcuOTQ1LCA0MjEuOTQ0LDMyNS4yMDMsIDQ0
Mi4wNjcsMjg1LjAzNXpNIDI1NiwyODhsLTMyLDAgbDAtOTYgYzAtNS4wNTUsIDIuMzUtOS41NTUs
IDYuMDExLTEyLjQ4NmwtMC4wMDYtMC4wMDhsIDgwLTY0bCAxOS45ODgsMjQuOTg4TCAyNTYsMTk5
LjY4OUwgMjU2LDI4OCB6IiBkYXRhLXRhZ3M9Imluc2VydHRpbWUiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAxNzsiIGQ9Ik0gMTYwLDM1MkwgMzIsMjI0TCAxNjAsOTZMIDIyNCw5NkwgOTYsMjI0
TCAyMjQsMzUyIAl6TSAzNTIsMzUyTCAyODgsMzUyTCA0MTYsMjI0TCAyODgsOTZMIDM1Miw5Nkwg
NDgwLDIyNCAJeiIgZGF0YS10YWdzPSJjb2RlIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7
IiBkPSJNIDIyNCwxMjhMIDI4OCwxMjhMIDI4OCw2NEwgMjI0LDY0ek0gMzUyLDM1MiBDIDM2OS42
NzMsMzUyIDM4NCwzMzcuNjczIDM4NCwzMjAgTCAzODQsMjI0IEwgMjg4LDE2MCBMIDIyNCwxNjAg
TCAyMjQsMTkyIEwgMzIwLDI1NiBMIDMyMCwyODggTCAxNjAsMjg4IEwgMTYwLDM1MiBMIDM1Miwz
NTIgWk0gMjU2LDQzMiBDIDIwMC40NDEsNDMyIDE0OC4yMDgsNDEwLjM2NCAxMDguOTIyLDM3MS4w
NzggQyA2OS42MzYsMzMxLjc5MiA0OCwyNzkuNTU5IDQ4LDIyNCBDIDQ4LDE2OC40NDEgNjkuNjM2
LDExNi4yMDggMTA4LjkyMiw3Ni45MjIgQyAxNDguMjA4LDM3LjYzNiAyMDAuNDQxLDE2IDI1Niwx
NiBDIDMxMS41NTksMTYgMzYzLjc5MiwzNy42MzYgNDAzLjA3OCw3Ni45MjIgQyA0NDIuMzY0LDEx
Ni4yMDggNDY0LDE2OC40NDEgNDY0LDIyNCBDIDQ2NCwyNzkuNTU5IDQ0Mi4zNjQsMzMxLjc5MiA0
MDMuMDc4LDM3MS4wNzggQyAzNjMuNzkyLDQxMC4zNjQgMzExLjU1OSw0MzIgMjU2LDQzMiBaIE0g
MjU2LDQ4MCBMIDI1Niw0ODAgQyAzOTcuMzg1LDQ4MCA1MTIsMzY1LjM4NSA1MTIsMjI0IEMgNTEy
LDgyLjYxNSAzOTcuMzg1LTMyIDI1Ni0zMiBDIDExNC42MTUtMzIgMCw4Mi42MTUgMCwyMjQgQyAw
LDM2NS4zODUgMTE0LjYxNSw0ODAgMjU2LDQ4MCBaIiBkYXRhLXRhZ3M9ImhlbHAiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAxNTsiIGQ9Ik0wLDQxNmwwLTM4NCBsIDUxMiwwIEwgNTEyLDQxNiBM
MCw0MTYgeiBNIDk2LDY0TCAzMiw2NCBsMCw2NCBsIDY0LDAgTCA5Niw2NCB6IE0gOTYsMTkyTCAz
MiwxOTIgbDAsNjQgbCA2NCwwIEwgOTYsMTkyIHogTSA5NiwzMjBMIDMyLDMyMCBMIDMyLDM4NCBs
IDY0LDAgTCA5NiwzMjAgeiBNIDM4NCw2NEwgMTI4LDY0IEwgMTI4LDM4NCBsIDI1NiwwIEwgMzg0
LDY0IHoKKwkJIE0gNDgwLDY0bC02NCwwIGwwLDY0IGwgNjQsMCBMIDQ4MCw2NCB6IE0gNDgwLDE5
MmwtNjQsMCBsMCw2NCBsIDY0LDAgTCA0ODAsMTkyIHogTSA0ODAsMzIwbC02NCwwIEwgNDE2LDM4
NCBsIDY0LDAgTCA0ODAsMzIwIHpNIDE5MiwzMjBMIDE5MiwxMjhMIDMyMCwyMjQgCXoiIGRhdGEt
dGFncz0ibWVkaWEiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNDsiIGQ9Ik0wLDQxNmwwLTQx
NiBsIDUxMiwwIEwgNTEyLDQxNiBMMCw0MTYgeiBNIDQ4MCwzMkwgMzIsMzIgTCAzMiwzODQgbCA0
NDgsMCBMIDQ4MCwzMiB6TSAzNTIsMzA0QTQ4LDQ4IDMwNjAgMSAwIDQ0OCwzMDRBNDgsNDggMzA2
MCAxIDAgMzUyLDMwNHpNIDQ0OCw2NCBMIDY0LDY0IEwgMTYwLDMyMCBMIDI4OCwxNjAgTCAzNTIs
MjA4IFoiIGRhdGEtdGFncz0iaW1hZ2UiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9
Ik0gOTYsNDgwbDAtNTEyIGwgMTYwLDE2MGwgMTYwLTE2MEwgNDE2LDQ4MCBMIDk2LDQ4MCB6IE0g
Mzg0LDQ1LjI1NWwtMTI4LDEyOGwtMTI4LTEyOEwgMTI4LDQ0OCBsIDI1NiwwIEwgMzg0LDQ1LjI1
NSB6IiBkYXRhLXRhZ3M9ImFuY2hvciIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDEyOyIgZD0i
TSAyMzguNDQ0LDE0Mi40NDNjIDIuMjgtNC41MjQsIDMuNDk1LTkuNTc5LCAzLjQ5NS0xNC44NDhj
MC04LjgwOC0zLjM3Mi0xNy4wMjktOS40OTYtMjMuMTU0bC04MS42OS04MS42OQorCQljLTYuMTI0
LTYuMTI0LTE0LjM0OC05LjQ5Ni0yMy4xNTQtOS40OTZzLTE3LjAzMCwzLjM3Mi0yMy4xNTQsOS40
OTZsLTQ5LjY5LDQ5LjY5Yy02LjEyNCw2LjEyNS05LjQ5NiwxNC4zNDgtOS40OTYsMjMuMTU0CisJ
CXMgMy4zNzIsMTcuMDMwLCA5LjQ5NiwyMy4xNTRsIDgxLjY5LDgxLjY5MWMgNi4xMjQsNi4xMjMs
IDE0LjM0OCw5LjQ5NiwgMjMuMTU0LDkuNDk2YyA1LjI2OSwwLCAxMC4zMjItMS4yMTUsIDE0Ljg0
OC0zLjQ5NGwgMzIuNjY5LDMyLjY2OAorCQljLTEzLjkzNSwxMC43MDUtMzAuNzIsMTYuMDgwLTQ3
LjUxNywxNi4wODBjLTE5Ljk5MywwLTM5Ljk4Ni03LjU4My01NS4xNTQtMjIuNzUxbC04MS42OS04
MS42OTEKKwkJYy0zMC4zMzUtMzAuMzM1LTMwLjMzNS03OS45NzUsMC0xMTAuMzA5bCA0OS42OS00
OS42OTFjIDE1LjE2Ny0xNS4xNjYsIDM1LjE2LTIyLjc1LCA1NS4xNTMtMjIuNzUKKwkJYyAxOS45
OTQsMCwgMzkuOTg3LDcuNTg0LCA1NS4xNTQsMjIuNzUxbCA4MS42OSw4MS42OWMgMjcuOTEsMjcu
OTEsIDMwLjExOSw3Mi4xNDksIDYuNjcyLDEwMi42NzNMIDIzOC40NDQsMTQyLjQ0M3pNIDQ4OS4y
NDgsNDA3LjU1OGwtNDkuNjksNDkuNjkxQyA0MjQuMzkxLDQ3Mi40MTcsIDQwNC4zOTgsNDgwLCAz
ODQuNDA0LDQ4MGMtMTkuOTkzLDAtMzkuOTg1LTcuNTgzLTU1LjE1My0yMi43NTFsLTgxLjY5MS04
MS42OTEKKwkJYy0yNy45MS0yNy45MS0zMC4xMTktNzIuMTQ5LTYuNjcxLTEwMi42NzFsIDMyLjY2
OSwzMi42N2MtMi4yNzksNC41MjUtMy40OTQsOS41OC0zLjQ5NCwxNC44NDdjMCw4LjgwOCwgMy4z
NzIsMTcuMDMwLCA5LjQ5NiwyMy4xNTQKKwkJbCA4MS42OTEsODEuNjkxYyA2LjEyMyw2LjEyNCwg
MTQuMzQ3LDkuNDk3LCAyMy4xNTMsOS40OTdjIDguODA4LDAsIDE3LjAzMC0zLjM3MywgMjMuMTU0
LTkuNDk3bCA0OS42OS00OS42OTEKKwkJYyA2LjEyNC02LjEyNCwgOS40OTYtMTQuMzQ3LCA5LjQ5
Ni0yMy4xNTRjMC04LjgwNy0zLjM3Mi0xNy4wMzAtOS40OTYtMjMuMTU0bC04MS42OS04MS42OTFj
LTYuMTI0LTYuMTI0LTE0LjM0Ny05LjQ5Ni0yMy4xNTQtOS40OTYKKwkJYy01LjI2OCwwLTEwLjMy
MiwxLjIxNS0xNC44NDgsMy40OTVsLTMyLjY2OS0zMi42NjljIDEzLjkzNi0xMC43MDUsIDMwLjcy
LTE2LjA4MCwgNDcuNTE3LTE2LjA4MGMgMTkuOTk0LDAsIDM5Ljk4Nyw3LjU4NCwgNTUuMTU0LDIy
Ljc1MgorCQlsIDgxLjY5LDgxLjY5QyA1MTkuNTg0LDMyNy41ODQsIDUxOS41ODQsMzc3LjIyMywg
NDg5LjI0OCw0MDcuNTU4ek0gMTE2LjY4NCwzNDAuNjg4TCAyMC42ODcsNDM2LjY4NUwgNDMuMzE1
LDQ1OS4zMTNMIDEzOS4zMTIsMzYzLjMxNnpNIDE5Miw0ODBMIDIyNCw0ODBMIDIyNCwzODRMIDE5
MiwzODR6TTAsMjg4TCA5NiwyODhMIDk2LDI1NkwwLDI1NnpNIDM5NS4zMTYsMTA3LjMxMkwgNDkx
LjMxNCwxMS4zMTRMIDQ2OC42ODYtMTEuMzE0TCAzNzIuNjg4LDg0LjY4NHpNIDI4OCw2NEwgMzIw
LDY0TCAzMjAtMzJMIDI4OC0zMnpNIDQxNiwxOTJMIDUxMiwxOTJMIDUxMiwxNjBMIDQxNiwxNjB6
IiBkYXRhLXRhZ3M9InVubGluayIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDExOyIgZD0iTSAx
NjAsMTI4YyA4LjgtOC44LCAyMy42MzctOC4zNjMsIDMyLjk3MSwwLjk3MUwgMzUxLjAzMCwyODcu
MDI5QyAzNjAuMzY0LDI5Ni4zNjMsIDM2MC44LDMxMS4yLCAzNTIsMzIwCisJCXMtMjMuNjM3LDgu
MzYzLTMyLjk3MS0wLjk3MUwgMTYwLjk3MSwxNjAuOTcxQyAxNTEuNjM3LDE1MS42MzcsIDE1MS4y
LDEzNi44LCAxNjAsMTI4ek0gMjM4LjQ0NCwxNDIuNDQ0YyAyLjI4LTQuNTI1LCAzLjQ5NS05LjU4
LCAzLjQ5NS0xNC44NDhjMC04LjgwOC0zLjM3Mi0xNy4wMzAtOS40OTYtMjMuMTU0bC04MS42OTEt
ODEuNjkxCisJCWMtNi4xMjQtNi4xMjQtMTQuMzQ3LTkuNDk2LTIzLjE1NC05LjQ5NnMtMTcuMDMw
LDMuMzcyLTIzLjE1NCw5LjQ5NmwtNDkuNjkxLDQ5LjY5MWMtNi4xMjQsNi4xMjQtOS40OTYsMTQu
MzQ3LTkuNDk2LDIzLjE1NAorCQlzIDMuMzcyLDE3LjAzMCwgOS40OTYsMjMuMTU0bCA4MS42OTEs
ODEuNjkxYyA2LjEyNCw2LjEyNCwgMTQuMzQ3LDkuNDk3LCAyMy4xNTQsOS40OTdjIDUuMjY4LDAs
IDEwLjMyMi0xLjIxNSwgMTQuODQ4LTMuNDk1bCAzMi42NjksMzIuNjY5CisJCWMtMTMuOTM1LDEw
LjcwNS0zMC43MiwxNi4wODAtNDcuNTE3LDE2LjA4MGMtMTkuOTkzLDAtMzkuOTg2LTcuNTgzLTU1
LjE1NC0yMi43NTFsLTgxLjY5MS04MS42OTEKKwkJYy0zMC4zMzUtMzAuMzM1LTMwLjMzNS03OS45
NzQsMC0xMTAuMzA5bCA0OS42OTEtNDkuNjkxQyA4Ny42MTEtMjQuNDE2LCAxMDcuNjA0LTMyLCAx
MjcuNTk3LTMyCisJCWMgMTkuOTk0LDAsIDM5Ljk4Nyw3LjU4NCwgNTUuMTU0LDIyLjc1MWwgODEu
NjkxLDgxLjY5MWMgMjcuOTEsMjcuOTEsIDMwLjExOSw3Mi4xNDksIDYuNjcyLDEwMi42NzJMIDIz
OC40NDQsMTQyLjQ0NHpNIDQ4OS4yNDksNDA3LjU1OGwtNDkuNjkxLDQ5LjY5MUMgNDI0LjM5MSw0
NzIuNDE3LCA0MDQuMzk4LDQ4MCwgMzg0LjQwNCw0ODBjLTE5Ljk5MywwLTM5Ljk4Ni03LjU4My01
NS4xNTQtMjIuNzUxbC04MS42OTEtODEuNjkxCisJCWMtMjcuOTEtMjcuOTEtMzAuMTE5LTcyLjE0
OS02LjY3MS0xMDIuNjcxbCAzMi42NjksMzIuNjdjLTIuMjc5LDQuNTI1LTMuNDk0LDkuNTgtMy40
OTQsMTQuODQ3YzAsOC44MDgsIDMuMzcyLDE3LjAzMCwgOS40OTYsMjMuMTU0CisJCWwgODEuNjkx
LDgxLjY5MWMgNi4xMjQsNi4xMjQsIDE0LjM0Nyw5LjQ5NywgMjMuMTU0LDkuNDk3cyAxNy4wMzAt
My4zNzMsIDIzLjE1NC05LjQ5N2wgNDkuNjkxLTQ5LjY5MQorCQljIDYuMTI0LTYuMTI0LCA5LjQ5
Ni0xNC4zNDcsIDkuNDk2LTIzLjE1NHMtMy4zNzItMTcuMDMwLTkuNDk2LTIzLjE1NGwtODEuNjkx
LTgxLjY5MWMtNi4xMjQtNi4xMjQtMTQuMzQ3LTkuNDk2LTIzLjE1NC05LjQ5NgorCQljLTUuMjY4
LDAtMTAuMzIyLDEuMjE1LTE0Ljg0OCwzLjQ5NWwtMzIuNjY5LTMyLjY2OWMgMTMuOTM2LTEwLjcw
NSwgMzAuNzItMTYuMDgwLCA0Ny41MTctMTYuMDgwYyAxOS45OTQsMCwgMzkuOTg3LDcuNTg0LCA1
NS4xNTQsMjIuNzUxCisJCWwgODEuNjkxLDgxLjY5MUMgNTE5LjU4NCwzMjcuNTg0LCA1MTkuNTg0
LDM3Ny4yMjMsIDQ4OS4yNDksNDA3LjU1OHoiIGRhdGEtdGFncz0ibGluayIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDEwOyIgZD0iTSAyODgsMzU1LjgxNEwgMjg4LDQ4MCBsIDE5Mi0xOTJMIDI4
OCw5NkwgMjg4LDIyMi45MTIgQyA2NC42MjUsMjI4LjE1MywgNzQuMjA2LDcxLjAxNiwgMTMxLjA3
MC0zMgorCUMtOS4yODYsMTE5LjcwNywgMjAuNTIsMzYyLjc4NSwgMjg4LDM1NS44MTR6IiBkYXRh
LXRhZ3M9InJlZG8iIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwZjsiIGQ9Ik0gMzgwLjkzMS0z
MkMgNDM3Ljc5NCw3MS4wMTYsIDQ0Ny4zNzUsMjI4LjE1MywgMjI0LDIyMi45MTJMIDIyNCw5NiBM
IDMyLDI4OEwgMjI0LDQ4MGwwLTEyNC4xODYgCisJQyA0OTEuNDgxLDM2Mi43ODUsIDUyMS4yODUs
MTE5LjcwNywgMzgwLjkzMS0zMnoiIGRhdGEtdGFncz0idW5kbyIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDBlOyIgZD0iTSAxMTIuNSwyNTYgQyAxNzQuMzU2LDI1NiAyMjQuNSwyMDUuODU1IDIy
NC41LDE0NCBDIDIyNC41LDgyLjE0NCAxNzQuMzU2LDMyIDExMi41LDMyIEMgNTAuNjQ0LDMyIDAu
NSw4Mi4xNDQgMC41LDE0NCBMIDAsMTYwIEMgMCwyODMuNzEyIDEwMC4yODgsMzg0IDIyNCwzODQg
TCAyMjQsMzIwIEMgMTgxLjI2MywzMjAgMTQxLjA4MywzMDMuMzU3IDExMC44NjMsMjczLjEzNyBD
IDEwNS4wNDYsMjY3LjMxOSA5OS43MzcsMjYxLjEyOSA5NC45NDgsMjU0LjYyNyBDIDEwMC42Njcs
MjU1LjUyNyAxMDYuNTI4LDI1NiAxMTIuNSwyNTYgWk0gNDAwLjUsMjU2IEMgNDYyLjM1NSwyNTYg
NTEyLjUsMjA1Ljg1NSA1MTIuNSwxNDQgQyA1MTIuNSw4Mi4xNDQgNDYyLjM1NSwzMiA0MDAuNSwz
MiBDIDMzOC42NDUsMzIgMjg4LjUsODIuMTQ0IDI4OC41LDE0NCBMIDI4OCwxNjAgQyAyODgsMjgz
LjcxMiAzODguMjg4LDM4NCA1MTIsMzg0IEwgNTEyLDMyMCBDIDQ2OS4yNjMsMzIwIDQyOS4wODMs
MzAzLjM1NyAzOTguODYzLDI3My4xMzcgQyAzOTMuMDQ1LDI2Ny4zMTkgMzg3LjczNiwyNjEuMTI5
IDM4Mi45NDcsMjU0LjYyNyBDIDM4OC42NjcsMjU1LjUyNyAzOTQuNTI3LDI1NiA0MDAuNSwyNTYg
WiIgZGF0YS10YWdzPSJibG9ja3F1b3RlIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGQ7IiBk
PSJNMCw0NDhMIDUxMiw0NDhMIDUxMiwzODRMMCwzODR6TSAxOTIsMzUyTCA1MTIsMzUyTCA1MTIs
Mjg4TCAxOTIsMjg4ek0gMTkyLDI1NkwgNTEyLDI1NkwgNTEyLDE5MkwgMTkyLDE5MnpNIDE5Miwx
NjBMIDUxMiwxNjBMIDUxMiw5NkwgMTkyLDk2ek0wLDY0TCA1MTIsNjRMIDUxMiwwTDAsMHpNIDEy
OCwzMjAgTCAxMjgsMTI4IEwgMCwyMjQgWiIgZGF0YS10YWdzPSJvdXRkZW50IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMGM7IiBkPSJNMCw0NDhMIDUxMiw0NDhMIDUxMiwzODRMMCwzODR6TSAx
OTIsMzUyTCA1MTIsMzUyTCA1MTIsMjg4TCAxOTIsMjg4ek0gMTkyLDI1NkwgNTEyLDI1NkwgNTEy
LDE5MkwgMTkyLDE5MnpNIDE5MiwxNjBMIDUxMiwxNjBMIDUxMiw5NkwgMTkyLDk2ek0wLDY0TCA1
MTIsNjRMIDUxMiwwTDAsMHpNIDAsMTI4IEwgMCwzMjAgTCAxMjgsMjI0IFoiIGRhdGEtdGFncz0i
aW5kZW50IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGI7IiBkPSJNIDE5Miw2NEwgNTEyLDY0
TCA1MTIsMEwgMTkyLDB6TSAxOTIsMjU2TCA1MTIsMjU2TCA1MTIsMTkyTCAxOTIsMTkyek0gMTky
LDQ0OEwgNTEyLDQ0OEwgNTEyLDM4NEwgMTkyLDM4NHpNIDk2LDQ4MCBMIDk2LDM1MiBMIDY0LDM1
MiBMIDY0LDQ0OCBMIDMyLDQ0OCBMIDMyLDQ4MCBaTSA2NCwyMTcgTCA2NCwxOTIgTCAxMjgsMTky
IEwgMTI4LDE2MCBMIDMyLDE2MCBMIDMyLDIzMyBMIDk2LDI2MyBMIDk2LDI4OCBMIDMyLDI4OCBM
IDMyLDMyMCBMIDEyOCwzMjAgTCAxMjgsMjQ3IFpNIDEyOCwxMjggTCAxMjgtMzIgTCAzMi0zMiBM
IDMyLDAgTCA5NiwwIEwgOTYsMzIgTCAzMiwzMiBMIDMyLDY0IEwgOTYsNjQgTCA5Niw5NiBMIDMy
LDk2IEwgMzIsMTI4IFoiIGRhdGEtdGFncz0ibnVtbGlzdCIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDBhOyIgZD0iTSAxOTIsNDQ4bCAzMjAsMCBsMC02NCBMIDE5MiwzODQgTCAxOTIsNDQ4IHog
TSAxOTIsMjU2bCAzMjAsMCBsMC02NCBMIDE5MiwxOTIgTCAxOTIsMjU2IHogTSAxOTIsNjRsIDMy
MCwwIGwwLTY0IEwgMTkyLDAgTCAxOTIsNjQgek0wLDQxNkE2NCw2NCAzMDYwIDEgMCAxMjgsNDE2
QTY0LDY0IDMwNjAgMSAwIDAsNDE2ek0wLDIyNEE2NCw2NCAzMDYwIDEgMCAxMjgsMjI0QTY0LDY0
IDMwNjAgMSAwIDAsMjI0ek0wLDMyQTY0LDY0IDMwNjAgMSAwIDEyOCwzMkE2NCw2NCAzMDYwIDEg
MCAwLDMyeiIgZGF0YS10YWdzPSJidWxsaXN0IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDk7
IiBkPSJNIDMyLDQ4MEwgMjI0LDQ4MEwgMjI0LDQ0OEwgMzIsNDQ4ek0gMjg4LDQ4MEwgNDgwLDQ4
MEwgNDgwLDQ0OEwgMjg4LDQ0OHpNIDQ3NiwzMjBsLTI4LDAgTCA0NDgsNDQ4IEwgMzIwLDQ0OCBs
MC0xMjggTCAxOTIsMzIwIEwgMTkyLDQ0OCBMIDY0LDQ0OCBsMC0xMjggTCAzNiwzMjAgYy0xOS44
LDAtMzYtMTYuMi0zNi0zNmwwLTI4MCBjMC0xOS44LCAxNi4yLTM2LCAzNi0zNmwgMTUyLDAgYyAx
OS44LDAsIDM2LDE2LjIsIDM2LDM2TCAyMjQsMTkyIGwgNjQsMCAKKwlsMC0xODggYzAtMTkuOCwg
MTYuMi0zNiwgMzYtMzZsIDE1MiwwIGMgMTkuOCwwLCAzNiwxNi4yLCAzNiwzNkwgNTEyLDI4NCBD
IDUxMiwzMDMuOCwgNDk1LjgsMzIwLCA0NzYsMzIweiBNIDE3NCwwTCA1MCwwIGMtOS45LDAtMTgs
Ny4yLTE4LDE2CisJcyA4LjEsMTYsIDE4LDE2bCAxMjQsMCBjIDkuOSwwLCAxOC03LjIsIDE4LTE2
UyAxODMuOSwwLCAxNzQsMHogTSAyNzIsMjI0bC0zMiwwIGMtOC44LDAtMTYsNy4yLTE2LDE2cyA3
LjIsMTYsIDE2LDE2bCAzMiwwIGMgOC44LDAsIDE2LTcuMiwgMTYtMTYKKwlTIDI4MC44LDIyNCwg
MjcyLDIyNHogTSA0NjIsMEwgMzM4LDAgYy05LjksMC0xOCw3LjItMTgsMTZzIDguMSwxNiwgMTgs
MTZsIDEyNCwwIGMgOS45LDAsIDE4LTcuMiwgMTgtMTZTIDQ3MS45LDAsIDQ2MiwweiIgZGF0YS10
YWdzPSJzZWFyY2hyZXBsYWNlIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDg7IiBkPSJNIDQx
NiwzMjBMIDQxNiw0MDAgYzAsOC44LTcuMiwxNi0xNiwxNkwgMjg4LDQxNiBMIDI4OCw0NDggYzAs
MTcuNi0xNC40LDMyLTMyLDMybC02NCwwIGMtMTcuNjAyLDAtMzItMTQuNC0zMi0zMmwwLTMyIEwg
NDgsNDE2IGMtOC44MDEsMC0xNi03LjItMTYtMTZsMC0zMjAgCisJYzAtOC44LCA3LjE5OS0xNiwg
MTYtMTZsIDE0NCwwIGwwLTk2IGwgMjI0LDAgbCA5Niw5NkwgNTEyLDMyMCBMIDQxNiwzMjAgeiBN
IDE5Miw0NDcuOTQzYyAwLjAxNywwLjAxOSwgMC4wMzYsMC4wMzksIDAuMDU3LDAuMDU3bCA2My44
ODQsMCAKKwljIDAuMDIxLTAuMDE4LCAwLjA0MS0wLjAzOCwgMC4wNTktMC4wNTdMIDI1Niw0MTYg
bC02NCwwIEwgMTkyLDQ0Ny45NDMgeiBNIDk2LDM1MkwgOTYsMzg0IGwgMjU2LDAgbDAtMzIgTCA5
NiwzNTIgeiBNIDQxNiwxMy4yNTVMIDQxNiw2NCBsIDUwLjc0NSwwIEwgNDE2LDEzLjI1NXogTSA0
ODAsOTZsLTk2LDAgbDAtOTYgCisJTCAyMjQsMCBMIDIyNCwyODggbCAyNTYsMCBMIDQ4MCw5NiB6
IiBkYXRhLXRhZ3M9InBhc3RlIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNIDQ0
NS4zODcsMTI1LjQyM2MtMjIuODI3LDIyLjc3OC01MS44NjQsMzQuNTM2LTc4Ljk3MywzNC41MzZs
LTE0LjU1NiwwIGwtMzEuOTUyLDMyLjAwNGwgMTI3LjgxLDEyOC4wMTkKKwljIDMxLjk1MiwzMi4w
MDUsIDMxLjk1Miw5Ni4wMTQsMCwxMjguMDE5TCAyNTYuMDAxLDI1NS45NzNMIDY0LjI4NSw0NDhj
LTMxLjk1Mi0zMi4wMDQtMzEuOTUyLTk2LjAxNCwwLTEyOC4wMTlsIDEyNy44MTEtMTI4LjAxNwor
CWwtMzEuOTUzLTMyLjAwNGwtMTQuNTU3LDAgYy0yNy4xMSwwLTU2LjE0Ni0xMS43NTktNzguOTc0
LTM0LjUzOGMtNDAuODExLTQwLjcyMS00Ni4zMjUtMTAxLjI0Mi0xMi4zMTUtMTM1LjE3NQorCUMg
NjkuMjgyLTI0LjcwNCwgODkuNDQxLTMyLCAxMTAuNzk1LTMyYyAyNy4xMDgsMCwgNTYuMTQ1LDEx
Ljc1NywgNzguOTczLDM0LjUzNmMgMjYuNzkyLDI2LjczMiwgMzguMzcxLDYyLCAzMy41NDIsOTIu
Njc0bCAzMi42OTIsMzIuNzQ0CisJbCAzMi42ODgtMzIuNzQ0Yy00LjgyOC0zMC42NzQsIDYuNzUz
LTY1Ljk0MSwgMzMuNTQyLTkyLjY3NEMgMzQ1LjA2My0yMC4yNDMsIDM3NC4wOTgtMzIsIDQwMS4y
MDYtMzIKKwljIDIxLjM1NCwwLCA0MS41MTIsNy4yOTYsIDU2LjQ5NywyMi4yNDhDIDQ5MS43MTMs
MjQuMTgxLCA0ODYuMTk3LDg0LjcwMiwgNDQ1LjM4NywxMjUuNDIzeiBNIDE3Ni41MTIsNTcuMjMx
CisJYy0zLjg0OS04Ljk0MS05LjUwNS0xNy4xNzMtMTYuODEzLTI0LjQ2M2MtNy4zMTgtNy4zMDIt
MTUuNTg2LTEyLjk1OS0yNC41NzQtMTYuODEyYy04LjA2Ni0zLjQ1OC0xNi40OC01LjI4NC0yNC4z
MzEtNS4yODQKKwljLTcuNTczLDAtMTguMzA2LDEuNzAxLTI2LjQzMSw5LjgwNmMtOC4wNjgsOC4w
NTItOS43NiwxOC42NTktOS43NiwyNi4xNDRjMCw3Ljc3MSwgMS44MjEsMTYuMTA1LCA1LjI2Mywy
NC4xMDYKKwljIDMuODUsOC45NDIsIDkuNTA3LDE3LjE3MywgMTYuODEzLDI0LjQ2M2MgNy4zMTcs
Ny4zMDMsIDE1LjU4NiwxMi45NTcsIDI0LjU3NSwxNi44MTJjIDguMDY3LDMuNDU3LCAxNi40OCw1
LjI4NCwgMjQuMzMyLDUuMjg0CisJYyA3LjU3MywwLCAxOC4zMDYtMS43LCAyNi40MjktOS44MDdj
IDguMDY3LTguMDQ5LCA5Ljc2MS0xOC42NTgsIDkuNzYxLTI2LjE0MkMgMTgxLjc3Nyw3My41Njcs
IDE3OS45NTcsNjUuMjMsIDE3Ni41MTIsNTcuMjMxegorCSBNIDI1Ni4wMDIsMTQ2LjcwMmMtMjQu
OTU3LDAtNDUuMTg4LDIwLjI2Ni00NS4xODgsNDUuMjYzYzAsMjQuOTk2LCAyMC4yMzEsNDUuMjYs
IDQ1LjE4OCw0NS4yNnMgNDUuMTg2LTIwLjI2NCwgNDUuMTg2LTQ1LjI2CisJQyAzMDEuMTg4LDE2
Ni45NjYsIDI4MC45NTgsMTQ2LjcwMiwgMjU2LjAwMiwxNDYuNzAyeiBNIDQyNy42MzYsMjAuNDc5
Yy04LjEyNC04LjEwNC0xOC44NTYtOS44MDYtMjYuNDMtOS44MDYKKwljLTcuODUyLDAtMTYuMjY1
LDEuODI2LTI0LjMzMyw1LjI4NGMtOC45ODYsMy44NTMtMTcuMjU0LDkuNTEtMjQuNTcxLDE2Ljgx
MmMtNy4zMDcsNy4yOS0xMi45NjMsMTUuNTIxLTE2LjgxMywyNC40NjMKKwljLTMuNDQzLDcuOTk5
LTUuMjYzLDE2LjMzNi01LjI2MywyNC4xMDZjMCw3LjQ4MywgMS42OTIsMTguMDk0LCA5Ljc2LDI2
LjE0M2MgOC4xMjMsOC4xMDQsIDE4Ljg1Niw5LjgwNywgMjYuNDMsOS44MDcKKwljIDcuODUsMCwg
MTYuMjY1LTEuODI3LCAyNC4zMy01LjI4NGMgOC45ODktMy44NTQsIDE3LjI1OC05LjUwOSwgMjQu
NTc1LTE2LjgxMmMgNy4zMDUtNy4yOSwgMTIuOTYyLTE1LjUyMSwgMTYuODEzLTI0LjQ2MworCWMg
My40NDItNy45OTksIDUuMjYzLTE2LjMzNSwgNS4yNjMtMjQuMTA2QyA0MzcuMzk2LDM5LjEzOCwg
NDM1LjcwMiwyOC41MywgNDI3LjYzNiwyMC40Nzl6IiBkYXRhLXRhZ3M9ImN1dCIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3hlMDA2OyIgZD0iTTAsNDQ4TCA1MTIsNDQ4TCA1MTIsMzg0TDAsMzg0ek0w
LDM1MkwgNTEyLDM1MkwgNTEyLDI4OEwwLDI4OHpNMCwyNTZMIDUxMiwyNTZMIDUxMiwxOTJMMCwx
OTJ6TTAsMTYwTCA1MTIsMTYwTCA1MTIsOTZMMCw5NnpNMCw2NEwgNTEyLDY0TCA1MTIsMEwwLDB6
IiBkYXRhLXRhZ3M9ImFsaWduanVzdGlmeSIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDA1OyIg
ZD0iTTAsNDQ4TCA1MTIsNDQ4TCA1MTIsMzg0TDAsMzg0ek0gMTkyLDM1MkwgNTEyLDM1MkwgNTEy
LDI4OEwgMTkyLDI4OHpNIDE5MiwxNjBMIDUxMiwxNjBMIDUxMiw5NkwgMTkyLDk2ek0wLDI1Nkwg
NTEyLDI1NkwgNTEyLDE5MkwwLDE5MnpNMCw2NEwgNTEyLDY0TCA1MTIsMEwwLDB6IiBkYXRhLXRh
Z3M9ImFsaWducmlnaHQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNDsiIGQ9Ik0wLDQ0OEwg
NTEyLDQ0OEwgNTEyLDM4NEwwLDM4NHpNIDk2LDM1MkwgNDE2LDM1MkwgNDE2LDI4OEwgOTYsMjg4
ek0gOTYsMTYwTCA0MTYsMTYwTCA0MTYsOTZMIDk2LDk2ek0wLDI1NkwgNTEyLDI1NkwgNTEyLDE5
MkwwLDE5MnpNMCw2NEwgNTEyLDY0TCA1MTIsMEwwLDB6IiBkYXRhLXRhZ3M9ImFsaWduY2VudGVy
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNMCw0NDhMIDUxMiw0NDhMIDUxMiwz
ODRMMCwzODR6TTAsMzUyTCAzMjAsMzUyTCAzMjAsMjg4TDAsMjg4ek0wLDE2MEwgMzIwLDE2MEwg
MzIwLDk2TDAsOTZ6TTAsMjU2TCA1MTIsMjU2TCA1MTIsMTkyTDAsMTkyek0wLDY0TCA1MTIsNjRM
IDUxMiwwTDAsMHoiIGRhdGEtdGFncz0iYWxpZ25sZWZ0IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwMDI7IiBkPSJNIDUxMiwxODMuNzcxbDAsODAuNDU4IGwtNzkuNTcyLDcuOTU3Yy00LjA5Mywx
NS4wMjEtMTAuMDQ0LDI5LjI3NC0xNy42MDUsNDIuNDlsIDUyLjI5OCw2My45MTlMIDQxMC41OTUs
NDM1LjEybC02My45MTgtNTIuMjk4CisJYy0xMy4yMTcsNy41NjItMjcuNDcxLDEzLjUxMy00Mi40
OTEsMTcuNjA0TCAyOTYuMjI5LDQ4MGwtODAuNDU4LDAgbC03Ljk1Ny03OS41NzNjLTE1LjAyMS00
LjA5My0yOS4yNzQtMTAuMDQzLTQyLjQ5LTE3LjYwNAorCUwgMTAxLjQwNSw0MzUuMTJMIDQ0Ljg4
LDM3OC41OTVsIDUyLjI5OC02My45MThjLTcuNTYyLTEzLjIxNi0xMy41MTMtMjcuNDctMTcuNjA1
LTQyLjQ5TDAsMjY0LjIyOWwwLTgwLjQ1OCBsIDc5LjU3My03Ljk1NworCWMgNC4wOTMtMTUuMDIx
LCAxMC4wNDMtMjkuMjc0LCAxNy42MDUtNDIuNDkxTCA0NC44OCw2OS40MDVsIDU2LjUyNC01Ni41
MjRsIDYzLjkxOSw1Mi4yOThjIDEzLjIxNi03LjU2MiwgMjcuNDctMTMuNTE0LCA0Mi40OS0xNy42
MDUKKwlMIDIxNS43NzEtMzJsIDgwLjQ1OCwwIGwgNy45NTcsNzkuNTcyYyAxNS4wMjEsNC4wOTMs
IDI5LjI3NCwxMC4wNDQsIDQyLjQ5MSwxNy42MDVsIDYzLjkxOC01Mi4yOThsIDU2LjUyNCw1Ni41
MjRsLTUyLjI5OCw2My45MTgKKwljIDcuNTYyLDEzLjIxNywgMTMuNTE0LDI3LjQ3MSwgMTcuNjA1
LDQyLjQ5TCA1MTIsMTgzLjc3MXogTSAzNTIsMTkybC02NC02NGwtNjQsMCBsLTY0LDY0bDAsNjQg
bCA2NCw2NGwgNjQsMCBsIDY0LTY0TCAzNTIsMTkyIHoiIGRhdGEtdGFncz0iZnVsbHBhZ2UiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik0gNDUxLjcxNiwzODAuMjg1bC03MS40MzIs
NzEuNDMxQyAzNjQuNzI4LDQ2Ny4yNzIsIDMzNCw0ODAsIDMxMiw0ODBMIDcyLDQ4MCBDIDUwLDQ4
MCwgMzIsNDYyLCAzMiw0NDBsMC00MzIgYzAtMjIsIDE4LTQwLCA0MC00MGwgMzY4LDAgYyAyMiww
LCA0MCwxOCwgNDAsNDAKKwlMIDQ4MCwzMTIgQyA0ODAsMzM0LCA0NjcuMjcyLDM2NC43MjksIDQ1
MS43MTYsMzgwLjI4NXogTSA0MjkuMDg5LDM1Ny42NTdjIDEuNTY1LTEuNTY1LCAzLjEyNS0zLjQ4
NywgNC42NC01LjY1N0wgMzUyLDM1MiBMIDM1Miw0MzMuNzI4IAorCWMgMi4xNy0xLjUxNSwgNC4w
OTItMy4wNzUsIDUuNjU3LTQuNjRMIDQyOS4wODksMzU3LjY1N3ogTSA0NDgsOGMwLTQuMzM2LTMu
NjY0LTgtOC04TCA3MiwwIGMtNC4zMzYsMC04LDMuNjY0LTgsOEwgNjQsNDQwIGMwLDQuMzM2LCAz
LjY2NCw4LCA4LDgKKwlsIDI0MCwwIGMgMi40MTYsMCwgNS4xMjctMC4zMDUsIDgtMC44NTJMIDMy
MCwzMjAgbCAxMjcuMTQ4LDAgYyAwLjU0Ny0yLjg3MywgMC44NTItNS41ODMsIDAuODUyLThMIDQ0
OCw4IHoiIGRhdGEtdGFncz0ibmV3ZG9jdW1lbnQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAw
MDsiIGQ9Ik0gNDQ4LDQ4MEwwLDQ4MCBsMC01MTIgbCA1MTIsMCBMIDUxMiw0MTYgTCA0NDgsNDgw
eiBNIDI1Niw0MTZsIDY0LDAgbDAtMTI4IGwtNjQsMCBMIDI1Niw0MTYgeiBNIDQ0OCwzMkwgNjQs
MzIgTCA2NCw0MTYgbCAzMiwwIGwwLTE2MCBsIDI4OCwwIEwgMzg0LDQxNiBsIDM3LjQ4OSwwIEwg
NDQ4LDM4OS40OTFMIDQ0OCwzMiB6IiBkYXRhLXRhZ3M9InNhdmUiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAzMzsiIGQ9Ik0gNjQsMjA4TCAyMDgsNjRMIDQ0OCwzMDRMIDM4NCwzNjhMIDIwOCwx
OTJMIDEyOCwyNzIgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTSAyNTYsMjI0
TCAyNTYsMTYwTCAyNzIsMTYwTCAyODgsMTkyTCAzMjAsMTkyTCAzMjAsNjRMIDI5Niw2NEwgMjk2
LDMyTCA0MDgsMzJMIDQwOCw2NEwgMzg0LDY0TCAzODQsMTkyTCA0MTYsMTkyTCA0MzIsMTYwTCA0
NDgsMTYwTCA0NDgsMjI0IAl6TSA0MTYsMzIwTCA0MTYsNDAwIGMwLDguOC03LjIsMTYtMTYsMTZM
IDI4OCw0MTYgTCAyODgsNDQ4IGMwLDE3LjYtMTQuNCwzMi0zMiwzMmwtNjQsMCBjLTE3LjYwMiww
LTMyLTE0LjQtMzItMzJsMC0zMiBMIDQ4LDQxNiBjLTguODAxLDAtMTYtNy4yLTE2LTE2bDAtMzIw
IAorCQljMC04LjgsIDcuMTk5LTE2LCAxNi0xNmwgMTQ0LDAgbDAtOTYgbCAzMjAsMCBMIDUxMiwz
MjAgTCA0MTYsMzIwIHogTSAxOTIsNDQ3Ljk0M2MgMC4wMTcsMC4wMTksIDAuMDM2LDAuMDM5LCAw
LjA1NywwLjA1N2wgNjMuODg0LDAgCisJCWMgMC4wMjEtMC4wMTgsIDAuMDQxLTAuMDM4LCAwLjA1
OS0wLjA1N0wgMjU2LDQxNiBsLTY0LDAgTCAxOTIsNDQ3Ljk0MyB6IE0gOTYsMzUyTCA5NiwzODQg
bCAyNTYsMCBsMC0zMiBMIDk2LDM1MiB6IE0gNDgwLDBMIDIyNCwwIEwgMjI0LDI4OCBsIDI1Niww
IEwgNDgwLDAgeiIgZGF0YS10YWdzPSJwYXN0ZXRleHQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
MjA7IiBob3Jpei1hZHYteD0iMjU2IiAvPgorPC9mb250PjwvZGVmcz48L3N2Zz4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS5l
b3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9z
a2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS5lb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzEwODViZmQyOTVh
YmNmOTQwODcxYzg2MzE2NTY1NmRmOGIwOTRjMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAw
MjQKemNtYl9pZHlFfnxTd0NtcWNrY1QrYEBCMiVVaG1HWD9kKkRZX1dKcX1aXm83RlAkemNRJlpg
T304T0xAV1BNaj0+CnpYJmx1ZFF6ZTJfTTk3cCVMQEo9MHFFO1lPTkQpTzw3ME12c3BaKT0rZn51
LW94UUhVQzVXemYoM0tlKHhlUD9Gdwp6LXJlO2hzaEU0dW9iU0I4XlBPfFBeRjdYKVMlPE1WVypG
bTRWdyllJXU1IXdgY1hlfDwpczNGWlojPyp3dCEwZW0KeipkX0sxZCFEXypGMCEtaUpTeWJhWH5h
KmxwSkM2akd3ZW09KVl3REZkNkIoQG5sR1RQJUApfV8rYXYwM1pILUxvCnpGd0Z1Y3ZweDZTenAh
TDl8TGRRVF5CI2hLX1RyaGYtZGdWKXM1Rjd9MTVjZktYJF40IVheTUBmb19wb1ZFQjlZewp6NjZ3
b35ITk54b2A3YEklend8RnsjIyNAY2VEQmw5a3BEXj1NZnhxSWNSWVJaKCZjQmxeMCFGOGl9ZCVO
ZCpTU3YKej4hKktzMn1QZWxgcUlUU20pRj13KnwhKipIanVXVEtYZFc/SkByNTZBdzcjZV9PSEcw
KGswTXxYWFlIMEdnKUglCnpEcE9IKkY5I0x1P2x9R2Q4KWFgJHlgaEpMPzlHcUlTZyp9ez4tZ349
dW1SMGIxeGhvcWFNV1cze1plVSNEYT1FaAp6VkZ0PCs8a2BMMVVWSHQyKlZtRURrWWNAXkJFe0dM
LWQxY21aWUspR2khK1k4YEp1a1I5Ryg1NT55Nz96b2Q9NTYKemRsLThVVj5kdyk8QmVqWT07Jl4+
KWg7KVJabmU+TnRzKVFtcDJXUCteVEt7JGI5O0s2X3hnK0A5UiZTPTJpQCo/Cnp8RmZYYXJ0dCQ7
byRZNCMwKyV4e0pOaXNjKCN1KzE+Wm1LU1E+TDZmd011UEtjV1FmVGQhfjM8dEtfKCYmTk9HMQp6
byR8fklVK1AlUHdZe35yKWo9KUlsS0ckQnQ+LUpIKVc0PjM4SV5PY24rMlchdnxjY0VCOy1efHVT
d0Q9RjNIbGQKejNZUjZofDRWcUdNQilubkg8YD0pWE9Yfmo8IShLZHE1XjgpemJ8Z0RXXnlVTWtT
Yk8zeCtTNV97Z05hZD4lVzd4Cno1fj5vVy07S31fIVQ+PyRRdldZOGA8VF51LWFQT2Jue0x4a0pC
fmd0Rll1UDBsWFhZOGEmbiRtdC01VUtSO01tYwp6YWtzTX5jZFUtSEJIelV3ejImcSF1MnElVERw
d1IkVWYkPWFYKX49RXRBPlZIXzRYfnhzLXAxSytaMTtfQHFGYiYKekhycztMaF9FbykwVz4lc1Zs
e1FfPH4lRGlSJkc9V3pqaDN2NTsoeD9oWkcxRj5DbSZpITBSRmElfXNHeEYlRC1LCnptIUJaPlot
bmlgO1N4ajx6OGd8QFEoUE9QajM2PGxncWtEPCpXMitBVl5yOClAY2g+P1UmcSslPn1+ZWY7RHZk
NAp6N2s0QDxkPipVcDxhbko9YWxPXlZGMzNxV3UhRm1fQjdxWn1qKWhHek5LPFZVZF8jWSErMWcz
emRBVCNRQkRLTGEKel5wfT8wMTMrZmdySFZ5K00oO0d8QmB9a19SRzBLeFBISV8wNFQmOT5YTz9G
TyFCQTVme1o7RmRXQCRBYjtENEFaCnopeWtQezxDRXp1UGlPej1rNDV5X1JOa3lzRHRmVj9XWVQm
anBISFB+PCUqSGNudztCQlN2Sy0xdnNBNjVePHAtcwp6Vz0qTS1AQmFyX1NtVFBTWWxAXyt4fTww
WkFjZ2pqKmhSJDF4QHQmQFlOIWV+RyhhLTtCNmklV1M7JVVmWXVTUW4KemwrcCgwTSFJRER3amA+
a3h+ZlA5KDgtRD4kdWg3PlRvdCV3TiFPP3NVNm16R1IldSh9TDY1SmR2TUkkNUdSKzskCnpPYzt0
TnVvWXpIY1Q2fDRZRCQkVVZiKEBRKH5VLVliZmppZDB+ck9gPUpieUk1bjB6JVM/b0o1cC1XbFRi
elBQPAp6TyNgJjRNM0o/bTxQa2tuT3I/cSRKJjlqS0l8PGEld3c2X0dmSSF6fDRFdSY5SSV4KSM8
Zm85dUdweC1IdW9aUmAKekdQSiFzRllTdW9WNF9KKnRXKyZsPmU0fThidnduRHZya0BoNWdAVTMr
TVRAWj5ZWX0jUmN1c3c3Z0h5JXNqME4/Cno+RkpjWkNUcE1vU3l5fCQtfTV9NXZ2cTdAKlkqNF53
MjhNJDx1PXUlQ058YVZobV99fFc/PFhDWlRHK0V5NyY5cwp6NGpJITFHTFU0JlVVcV89VzFvUHVm
Yk4oXnV2JT9VTDFCWW51PksrTFJ0NTJaK2VIa25nJVFuNT9kMjU9MiZgUEsKemZSI0pqdiNqa3xi
e0tMTmhWTS1US2BeMWBRa3NeXj4yRExANElsI2ctPypaUCl6ZyMjQFB3VnIjUV54KXBsfF4yCnpv
XjlLfTlzfmw8S1A4PktfZyhfPTVyUXlGbjV6VU0jbDcyUjQ5JWF5UVpUPC1ZIy0pT05aVTNFcHko
eElWcll3dAp6ZDcrN18tWm88KHspN2xMaXpDX1dOWVZWREZ7JDxGJjs3MEshck53bWtGXjBHTT4/
ZClDZk9WOzZBVEdGRFN8X2MKeihKb2lYJTsqNGV0S2pSbE9BeHspYG9WTHk9WXYtZj07NGgxZSZF
fnZ7fm9uSlQxUi1maSNvUUF1NHp1VT45MU5lCnpyLXt+fnNucm48YVozcEpPfXo8KTVlJilyQW9M
MDRocm5CfEl5YntSakZAfGI4Rm1ELUF1OXFsJkYlcjYhd2M9dQp6TFJXPzJrbzV6Nj9+PmNOYkA3
QHRKNT8tQSV+flVmZEYjO1dgTkd1WFNYeHBQTVN8PndKaHBGSmdPJSFZbU5pIXwKelFDeWZtZVc+
TVduTm5JKDZeUGtlbHxmVnFgfG5sVzExfmRgXnEqZEpJQFBeKHVJYz5NWUkqI2oyZzJ+JmkhZ2pf
Cno9YUd8MyhyYU9PTUxPfkZyfWtxR0lEMCp8OW5xR3pFeGtSSDwyN3JadVcqWkZwRmktPmMpOGtr
U30mZ0M9ZE9nfAp6WXRxdW1OMVhraWRpZXc8UC1ZZ3xlam9rVDtJOH5XSUlZZj9fVEdpMiVRTWJB
WikkbS08Q1BrV0Z1WjlTQXVXP00KelM+Vz9CJHNKVU03T2dGeiR+KzIwMXlyNWxrK01keUd+PylI
PSt3OW5kYn4zYT4+R3tpNjRsOzc0cytKZzJoRTkpCnpFXkpqcGBFfCUmYz5fOExtQnh7QTNWSChD
TDQlWjlCbyNyKk44fjlgZWhQMT5uTV83QV4wfTtiRHc5clU3UFZ8SAp6WnxFWU9QREA2ckB1VGZv
S09YNzspUFBDQCNffFN+Z0QjVnlaJGFMdmd1RiF9OEVQPWY2V1k5P0s8aCk5ZzI7KmIKekImYWs8
Q0t9cVFed2A5QnkxfnRESW0yankwektYeUUmTEBHPiZjVnMqVnNHa15YI3xTN3VsRUNtJk05JkVV
fXwpCnpUNEhJYlEoSj1sZ2YlOWdCd2A5JHdONmQySyhmWWg7bnA+X19ISjVac2oxSTIkLSoxN3Ik
dHNfKXBlfEB0fE89eAp6SVJSQ2ooKG5JeGk/TXhDfEtIWlJ8Q1YzIytxTkEtd2ZfUloyY2hTRHt9
LWAqVV9EKmNxfD1mQFd8YSlIWUR2O20KelU1MHQ1RDYyNUMka3ZqWUdWQl8lYVpMNGVkVUNSIVVW
OyZZQV9kV0RiOXtXbHcwVVpLLVh7RUgzUENWXkYjSTJSCnorJmM0ZHt5MlY5ezQtfiZrNT5Udzli
bDU3S0s2ZVhgKEs1fSFwZzt0UmN2NW87Sz0malphP0k5NVd1PkQkSipffQp6aWEmd1dGWlZCIT9U
IWNiUnVAblRLNUw4R0xPbHI9YyQ/YV84ZkJ9ND5oT0FjZVVGRU1rdExtKUhJbXJ4MlklcjMKelpy
P2A7eFptJmMhZi1qJnlVdG02NHxTVkR1bV5xVDtBTT9LT0UjSXFjRShoY05oPUR+Q3wtZ25jWE04
JjhXSDNSCnojcHJQeCN2Rj9pe2F6cioyPk0taz5FY2hPVU8hQXlrelRfYiNDdTYqQzNjWFYhWEFR
QkNPdEY+dU8oOD5QTmFqIwp6WSNhRDE1UztLbkFROVYoISVCJSVSdTVmfTRlNyhHNEVeZnRiVGds
fkBgaXl8ekJ4VHgtSmE4YV53e2p8dX05bFUKempBXnZWMGApeXx3TmBKQGEpNHtrYUNeYy1PS1VT
OT1NakYpN3JOeS05aypyYVpsQGFyVUxiO3BsPiRUJG1JTzcmCnpwQDA1P2U7I0tjaHVDclVGbDxg
SiQkLVYrJCNiSiZ4NV96YTB4XjhqMFB4UHBLcUo9KiUwLXUqb1VCX2Jhen0tdgp6QV5CaUFFaXJZ
QUBjckFJJV5xOD4qT3pJKVFUKEppR0IlT1JPXmw3MFgySH1ueXRlMjNOditoVmtFQ3wjbTY3cDAK
end8MXBRPld4d0BLUiF+P3ppUUppVTlCQUYhN3k0di1+YVpfRj5kdDE/T305fTQpLU1jJl81RlFN
KCtHcnZ8bHslCno+e1pPbzk5dl9iamI8aVJiRUc9O3QqbjRFNU99b2xUIy0rVFh+OTItbmNBMzYy
VUNQVXM+YlM8b1p6YWM4UEJXTAp6TXBNcTU8QT9YdllXb2YhY1EmQWJ3fn19KnpoVUdIMTtaIzck
dGYhcTRXbSVWOHlWPlJSSHs7fld3ZE4ydENPQ30KemtGX2U1KT5zfkRQMF45NVpQZUxTKn0zfTsl
ZXJJdCZQdXZnc2lhSjZXR3F7RFg2TEhheG1sOzI5VUhPQ1JIYWYmCnpiRmI3fm40RFpfbVhnPmJ3
b09RKF8+PCV+TFk8U1NnSkxJbFB8RnVlcmRjWkY7a3Y0LXEtQW5Cb2hUdVNeanQyWgp6TnlyfG1e
XmZVJVQyPCtsJUB2R0p4Pl9wZXNYWH47YElLSExSbnJ9I2tqdHZ6X290YzEtLWF6fHVxPFBEYW8y
TD8Kem1oNl5ZdEpRZ0RAe1AmO3sraHI0I0UhfHdDU2dzQjt9KylvNENqNyR1JiR3eWdUdTBESHg3
SXduT0tHfVlGU210CnpwQ1l9O3YyKD5DVlNgTH5eNjZTQ0tgUFkpdk9Xdk5vKGg3bGhgQzJtS1pO
V0JNQ1hZSko+UiM8di1JJTxecztAdwp6T1IqMCojI2ppTiRoczNBay0hUFZBTmZMTkAjflFIayQr
KUR6Nkc2OWpkTSNAYXE3fCRkUlZzQHg2dXA5OyQyVSEKekppKFIyaG9fUmk/TWNqb2pERUF3Zjc0
R2dRQSQmaGdGWG8lSF97QmFyPml1dSRWJmw+SjNAZCFsPCt7ZkNDP3Z1Cno/NkQoM0Fsez5+TCZF
MUNkbl5iTDJwNDJmMndEWCRjPGNqUWBtSiZDUzdLekgxUSNZRm1ldEZrJUl5SHRpVih4WAp6ITZ4
QzE5THZSQ0Eqbj1MTjY0Y3AxZV9nPyZQXjY0NzdwKiZhZD1eKEk1e15PK0NsNSEmWEdpRmpfZj94
dmMySGgKel5wMXNuUXhGfUtsYU5xVGB4YlZqcEFFYzFjNWQoQzdXbzM/UT93NTZveSpiQElMXl54
ZFBwOXV1PX5NKFlANGhzCnojP0YwMFBmSTJUZT5sX0tueFdHUFN1OGVTTHZ4bnNnKFNZPzxpVGUx
O0tANlpjLXlXRXd7Rjg9WTttcShEaWI/OQp6Xj9HT0xna209NDdSUHVtOEdhSj9YTlM9ZWRjSlJY
SCpaQnQ9YFdiWVRESCs0dWNfMD4pezBefmZrKSMjQntMaG8Kei1HUFhVKWRwMF9CKiQ5ZUBDSFpn
O3lpPmozaVBPM0VwTUhPSyVDRmBlUXxoMGViSHR+PW4yQmA9VmplY1JSZmstCno5RnlacF59MTlr
Mm5KdzM/N3x1dXUxUElHcVMjQj1YRmFBdFc+a2RzdEJNVnpsbGpfcSVWMEM/Q2c+ZFNSITNxLQp6
RllMVz1edn4hT3teKTNrKU5fRTJVZj99fkZCfSFHdT5UMkJNM3MoU1Y3bC1OZCs0S3R7amAlRSFI
TX12XzVmelkKenQtOF9pbVk1WntPflJ3eVhjSXJqbGhoX1Q2Vjw3MSVvZ2NrNyQ+b1AxVlVrVGQo
cF9uUk4wPSN5TXV7PkpuNCRiCno2RkN4UTBiYGQ/JE1iP35ZamJ6TSVZOHBnVztMWDloSylKMnlM
PExmUUk4TV5oPTRWWnd0bT5WK0IqSSN3OUxeeQp6QWJFaylAKHVfQ1gmNEk1IUR4e1lkY2NaNXEh
SUlZNUVBVHJBKjNPZWZWfH5fNFdeM3xjWipIMjdIcSk8PUNUZ0UKejNvfnxIJXZPdFJHdXJvYk48
IWs3KGhoWm5VYVVCTXZ2T2ZVYns1SVA0RiZ5Ty0/TXVXV1A4NFNnRk5VNiRZfkdfCno0aGlVcEM5
cGwpTX5zJCUtMzcyWTJqZmZYVl9mPkNhWWM2dDt+MUIpRnZVbWBpVkAzSjFKQHlxNHRFOzM4Zm9Z
Wgp6PFVsSlZaXlAmWk0jMTJvKGVFMFp6PHl9LWh5ZHwkeVZuYXRDPmApUWxoJmB0ZHY2SVJZSFY8
KiplMDxPTnpCLWwKekNxdSo0OVR4XjEkeGdTKj9MXjl6bnAyYVJZJm9temN4NUsxTld+K15FTSF2
QnFpYnVZSFJzXkhKMyR7ME5oVlVPCnpKKTNKTFpCc1JDRyNkblNrZzF7OV4pVzlwITwlPVpaIUpn
JDdxVURlWThOamk3TitBUTt1MSV7PDw9bjg7IW8mbAp6TCNlYkQjPTdDeUxhVU4wU2g+JStXO3Yl
RHh3N2ZyY09QRmhEPik7VHRDO1RfVyFPN1pzcWF5UFZxP05lZUw2Vj4KejQ0e2g+NyZIbVozT3lC
KTJnUmAqZn5Wa3ZLJSNXTDlzPTx9VkI2cFdSMGwpJkBmZGI2eD4zY01aWTAmPzxKfUVFCno7U2xG
ZyUtcmB6Y09QZ3A0KHVORldJZChCWllpNSk4SX13WmFeI3V0QExHTUB1YEZrfmUoam8oZ0dyO0FC
LSVfMwp6aEVMQTgpKDw/fFl3X0N0NmozbDgrdVE+aXYrV0tVbU4mTjFUT0BBPjdDcDQpR3x+NWJy
YktJOSVIWFZgcDNtMU8KeiM/cUFJPDtSPHFOXj85PEBnVm51KWEhcW10ZjIzdnM8MGhsRjstS2xF
WG5GQEQkMjNRMWhsZVEjMmNCbnR0UShUCnpLNCtfVihPVGlZN0ZKS0lEMVBsa3Itb1FlSmpvIypS
Kj4jIWAjfj1gejd0YWpPekAyZTJXKkBoVjFmTWFaQUxgSwp6K2NzUmArOFdTZFUwQE8xNStBT19n
M2I4MmU8T3JfcEQ9Rk43QUU5bDNBZ1l+O0JWbXNrbldfNVA4STZOcCtKSlIKelFSRVBfKnVMMW5V
MGlJMC0xQSpHI0p9cjx3WmU3Z2RwYEdWem1FPVd7fD9zO1RzUTBZTldBJHl6WCRzQkVQIVAwCnph
diFAaHglYWY3NEk/P2NFMCk5dUs/NjFoTm5aM04wdGd0eUItNF83aW03WmtrUFAqTnlvd15nVlUh
ZzROSmY4PAp6OGErfG1qWjtZa2E9YDswPW5lN3AxWklqWm0zN0N2ZGZqXz5eX3FBS3o1YWEoVkBM
VEU/azBiZFgzdUhxNGNZQjkKeiVJPVZmSUR4fWEtR1hCI0psbnkoZlQqO0ZqIX5WMnhlXmJMVSVP
VSMqWEg1R09zJnVDZjNHd352ZW9JT2lIVzdACnpEJGNxViYqSldEOzk/MktDV3tseWhtfnxEZ1g9
YSQpeEohWTU/TX0zJSk3Uj8mVSpiJkE4cFJvMm9LPj80OHVeSwp6ZDA1TjlZZkY0MjtrNXpEU3Er
Rn1DNmhAal9ZN2w3WSVxMGo1MFNAeFQ0WiZRSDZKWSNHJHtPfHdpNmlfTHVRRE8KejRlfFkyO3xB
QWooNFIlbDNJJSYpWk54QEk3ZDx6K1ZnblFRcHVVNiY3dHFOfWtDWX1VTyNrTmhZfWdhZnVERTlG
CnpsSUtGfUVXKkB4Pm1QZU9mOURUYVQwI2I2ZjNmPF9KQ2tfKkk7O2x7Pms4a3x1Jjd3SHEzPTs+
VzFAVXIhdWMxfgp6QUEwRTJlZWg1ckhBUyVGSTd1aCotWXNRWT5yd2kzMVNAWHUkOHBsMCVFI2xw
cj8tXmxrZnhCLU89ND0zej0rcWMKekJrZCEyYWcwMitpZU11WTVHV2xXY3JrMXZpflFSUFBXTyht
dWtzbXUpJDx9ZTxnWkVKbGtiJGpxeF4qT2JJUnsyCnpmMUA1enBIS3Rzdkw1S2FzKDsoNDgqZHEz
TkcrUitYYDJfISVqUiNJZXtUTH5gcCkjJUd4Zn1CQ2R+QSpfaCNTQgp6ZWs8M145bXN0PV9ydl5I
e3YtSmRgT29HNXIoaFB8RCFlYWRkTyFPbldDfWUqJUdNe3hla1djSlBTIyV4bGRwSnAKejQ5a0Zi
I0lPU1IhNUNJPyRCfk8rNFUlZHBoRH5WVXZ5ZmR9Tmc7PURNc1MyUGYrTCZ9OU5+PU0yeGtPcVh1
Q2dkCno4e3lwaXExVE4rMi17VFcobGdKJGFgRWk+RSNIQEl7PGRzVzB9VDIrekFtRkwmQ2EwSmQz
S0szPjxONkNYMlZmOQpTaSFhWWtBa2c8YFZwUjBMPkdPWXkrTz5sSwoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Uuc3ZnIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRn
cmF5L2ZvbnRzL3RpbnltY2Uuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5mZWI5YmEzOGRlMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55
bWNlLnN2ZwpAQCAtMCwwICsxLDYzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9
Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzxtZXRhZGF0YT5HZW5lcmF0ZWQg
YnkgSWNvTW9vbjwvbWV0YWRhdGE+Cis8ZGVmcz4KKzxmb250IGlkPSJ0aW55bWNlIiBob3Jpei1h
ZHYteD0iNTEyIj4KKzxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSI1MTIiIGFzY2VudD0iNDgwIiBk
ZXNjZW50PSItMzIiIC8+Cis8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iNTEyIiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeDIwOyIgZD0iIiBob3Jpei1hZHYteD0iMjU2IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMDA7IiBkPSJNNDQ4IDQ4MGgtNDQ4di01MTJoNTEydjQ0OGwtNjQgNjR6TTI1
NiA0MTZoNjR2LTEyOGgtNjR2MTI4ek00NDggMzJoLTM4NHYzODRoMzJ2LTE2MGgyODh2MTYwaDM3
LjQ4OWwyNi41MTEtMjYuNTA5di0zNTcuNDkxeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDAx
OyIgZD0iTTQ1MS43MTYgMzgwLjI4NWwtNzEuNDMyIDcxLjQzMWMtMTUuNTU2IDE1LjU1Ni00Ni4y
ODQgMjguMjg0LTY4LjI4NCAyOC4yODRoLTI0MGMtMjIgMC00MC0xOC00MC00MHYtNDMyYzAtMjIg
MTgtNDAgNDAtNDBoMzY4YzIyIDAgNDAgMTggNDAgNDB2MzA0YzAgMjItMTIuNzI4IDUyLjcyOS0y
OC4yODQgNjguMjg1ek00MjkuMDg5IDM1Ny42NTdjMS41NjUtMS41NjUgMy4xMjUtMy40ODcgNC42
NC01LjY1N2gtODEuNzI5djgxLjcyOGMyLjE3LTEuNTE1IDQuMDkyLTMuMDc1IDUuNjU3LTQuNjRs
NzEuNDMyLTcxLjQzMXpNNDQ4IDhjMC00LjMzNi0zLjY2NC04LTgtOGgtMzY4Yy00LjMzNiAwLTgg
My42NjQtOCA4djQzMmMwIDQuMzM2IDMuNjY0IDggOCA4aDI0MGMyLjQxNiAwIDUuMTI3LTAuMzA1
IDgtMC44NTJ2LTEyNy4xNDhoMTI3LjE0OGMwLjU0Ny0yLjg3MyAwLjg1Mi01LjU4MyAwLjg1Mi04
di0zMDR6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDI7IiBkPSJNNTEyIDE4My43NzF2ODAu
NDU4bC03OS41NzIgNy45NTdjLTQuMDkzIDE1LjAyMS0xMC4wNDQgMjkuMjc0LTE3LjYwNSA0Mi40
OWw1Mi4yOTggNjMuOTE5LTU2LjUyNiA1Ni41MjUtNjMuOTE4LTUyLjI5OGMtMTMuMjE3IDcuNTYy
LTI3LjQ3MSAxMy41MTMtNDIuNDkxIDE3LjYwNGwtNy45NTcgNzkuNTc0aC04MC40NThsLTcuOTU3
LTc5LjU3M2MtMTUuMDIxLTQuMDkzLTI5LjI3NC0xMC4wNDMtNDIuNDktMTcuNjA0bC02My45MTkg
NTIuMjk3LTU2LjUyNS01Ni41MjUgNTIuMjk4LTYzLjkxOGMtNy41NjItMTMuMjE2LTEzLjUxMy0y
Ny40Ny0xNy42MDUtNDIuNDlsLTc5LjU3My03Ljk1OHYtODAuNDU4bDc5LjU3My03Ljk1N2M0LjA5
My0xNS4wMjEgMTAuMDQzLTI5LjI3NCAxNy42MDUtNDIuNDkxbC01Mi4yOTgtNjMuOTE4IDU2LjUy
NC01Ni41MjQgNjMuOTE5IDUyLjI5OGMxMy4yMTYtNy41NjIgMjcuNDctMTMuNTE0IDQyLjQ5LTE3
LjYwNWw3Ljk1OC03OS41NzRoODAuNDU4bDcuOTU3IDc5LjU3MmMxNS4wMjEgNC4wOTMgMjkuMjc0
IDEwLjA0NCA0Mi40OTEgMTcuNjA1bDYzLjkxOC01Mi4yOTggNTYuNTI0IDU2LjUyNC01Mi4yOTgg
NjMuOTE4YzcuNTYyIDEzLjIxNyAxMy41MTQgMjcuNDcxIDE3LjYwNSA0Mi40OWw3OS41NzQgNy45
NnpNMzUyIDE5MmwtNjQtNjRoLTY0bC02NCA2NHY2NGw2NCA2NGg2NGw2NC02NHYtNjR6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNMCA0NDhoNTEydi02NGgtNTEyek0wIDM1Mmgz
MjB2LTY0aC0zMjB6TTAgMTYwaDMyMHYtNjRoLTMyMHpNMCAyNTZoNTEydi02NGgtNTEyek0wIDY0
aDUxMnYtNjRoLTUxMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNDsiIGQ9Ik0wIDQ0OGg1
MTJ2LTY0aC01MTJ6TTk2IDM1MmgzMjB2LTY0aC0zMjB6TTk2IDE2MGgzMjB2LTY0aC0zMjB6TTAg
MjU2aDUxMnYtNjRoLTUxMnpNMCA2NGg1MTJ2LTY0aC01MTJ6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwMDU7IiBkPSJNMCA0NDhoNTEydi02NGgtNTEyek0xOTIgMzUyaDMyMHYtNjRoLTMyMHpN
MTkyIDE2MGgzMjB2LTY0aC0zMjB6TTAgMjU2aDUxMnYtNjRoLTUxMnpNMCA2NGg1MTJ2LTY0aC01
MTJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDY7IiBkPSJNMCA0NDhoNTEydi02NGgtNTEy
ek0wIDM1Mmg1MTJ2LTY0aC01MTJ6TTAgMjU2aDUxMnYtNjRoLTUxMnpNMCAxNjBoNTEydi02NGgt
NTEyek0wIDY0aDUxMnYtNjRoLTUxMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNzsiIGQ9
Ik00NDUuMzg3IDEyNS40MjNjLTIyLjgyNyAyMi43NzgtNTEuODY0IDM0LjUzNi03OC45NzMgMzQu
NTM2aC0xNC41NTZsLTMxLjk1MiAzMi4wMDQgMTI3LjgxIDEyOC4wMTljMzEuOTUyIDMyLjAwNSAz
MS45NTIgOTYuMDE0IDAgMTI4LjAxOWwtMTkxLjcxNS0xOTIuMDI4LTE5MS43MTYgMTkyLjAyN2Mt
MzEuOTUyLTMyLjAwNC0zMS45NTItOTYuMDE0IDAtMTI4LjAxOWwxMjcuODExLTEyOC4wMTctMzEu
OTUzLTMyLjAwNGgtMTQuNTU3Yy0yNy4xMSAwLTU2LjE0Ni0xMS43NTktNzguOTc0LTM0LjUzOC00
MC44MTEtNDAuNzIxLTQ2LjMyNS0xMDEuMjQyLTEyLjMxNS0xMzUuMTc1IDE0Ljk4NS0xNC45NTEg
MzUuMTQ0LTIyLjI0NyA1Ni40OTgtMjIuMjQ3IDI3LjEwOCAwIDU2LjE0NSAxMS43NTcgNzguOTcz
IDM0LjUzNiAyNi43OTIgMjYuNzMyIDM4LjM3MSA2MiAzMy41NDIgOTIuNjc0bDMyLjY5MiAzMi43
NDQgMzIuNjg4LTMyLjc0NGMtNC44MjgtMzAuNjc0IDYuNzUzLTY1Ljk0MSAzMy41NDItOTIuNjc0
IDIyLjgzMS0yMi43NzkgNTEuODY2LTM0LjUzNiA3OC45NzQtMzQuNTM2IDIxLjM1NCAwIDQxLjUx
MiA3LjI5NiA1Ni40OTcgMjIuMjQ4IDM0LjAxMCAzMy45MzMgMjguNDk0IDk0LjQ1NC0xMi4zMTYg
MTM1LjE3NXpNMTc2LjUxMiA1Ny4yMzFjLTMuODQ5LTguOTQxLTkuNTA1LTE3LjE3My0xNi44MTMt
MjQuNDYzLTcuMzE4LTcuMzAyLTE1LjU4Ni0xMi45NTktMjQuNTc0LTE2LjgxMi04LjA2Ni0zLjQ1
OC0xNi40OC01LjI4NC0yNC4zMzEtNS4yODQtNy41NzMgMC0xOC4zMDYgMS43MDEtMjYuNDMxIDku
ODA2LTguMDY4IDguMDUyLTkuNzYgMTguNjU5LTkuNzYgMjYuMTQ0IDAgNy43NzEgMS44MjEgMTYu
MTA1IDUuMjYzIDI0LjEwNiAzLjg1IDguOTQyIDkuNTA3IDE3LjE3MyAxNi44MTMgMjQuNDYzIDcu
MzE3IDcuMzAzIDE1LjU4NiAxMi45NTcgMjQuNTc1IDE2LjgxMiA4LjA2NyAzLjQ1NyAxNi40OCA1
LjI4NCAyNC4zMzIgNS4yODQgNy41NzMgMCAxOC4zMDYtMS43IDI2LjQyOS05LjgwNyA4LjA2Ny04
LjA0OSA5Ljc2MS0xOC42NTggOS43NjEtMjYuMTQyIDAuMDAxLTcuNzcxLTEuODE5LTE2LjEwOC01
LjI2NC0yNC4xMDd6TTI1Ni4wMDIgMTQ2LjcwMmMtMjQuOTU3IDAtNDUuMTg4IDIwLjI2Ni00NS4x
ODggNDUuMjYzIDAgMjQuOTk2IDIwLjIzMSA0NS4yNiA0NS4xODggNDUuMjZzNDUuMTg2LTIwLjI2
NCA0NS4xODYtNDUuMjZjMC0yNC45OTktMjAuMjMtNDUuMjYzLTQ1LjE4Ni00NS4yNjN6TTQyNy42
MzYgMjAuNDc5Yy04LjEyNC04LjEwNC0xOC44NTYtOS44MDYtMjYuNDMtOS44MDYtNy44NTIgMC0x
Ni4yNjUgMS44MjYtMjQuMzMzIDUuMjg0LTguOTg2IDMuODUzLTE3LjI1NCA5LjUxLTI0LjU3MSAx
Ni44MTItNy4zMDcgNy4yOS0xMi45NjMgMTUuNTIxLTE2LjgxMyAyNC40NjMtMy40NDMgNy45OTkt
NS4yNjMgMTYuMzM2LTUuMjYzIDI0LjEwNiAwIDcuNDgzIDEuNjkyIDE4LjA5NCA5Ljc2IDI2LjE0
MyA4LjEyMyA4LjEwNCAxOC44NTYgOS44MDcgMjYuNDMgOS44MDcgNy44NSAwIDE2LjI2NS0xLjgy
NyAyNC4zMy01LjI4NCA4Ljk4OS0zLjg1NCAxNy4yNTgtOS41MDkgMjQuNTc1LTE2LjgxMiA3LjMw
NS03LjI5IDEyLjk2Mi0xNS41MjEgMTYuODEzLTI0LjQ2MyAzLjQ0Mi03Ljk5OSA1LjI2My0xNi4z
MzUgNS4yNjMtMjQuMTA2LTAuMDAxLTcuNDg1LTEuNjk1LTE4LjA5My05Ljc2MS0yNi4xNDR6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDg7IiBkPSJNNDE2IDMyMHY4MGMwIDguOC03LjIgMTYt
MTYgMTZoLTExMnYzMmMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtNjRjLTE3LjYwMiAwLTMyLTE0LjQt
MzItMzJ2LTMyaC0xMTJjLTguODAxIDAtMTYtNy4yLTE2LTE2di0zMjBjMC04LjggNy4xOTktMTYg
MTYtMTZoMTQ0di05NmgyMjRsOTYgOTZ2MjU2aC05NnpNMTkyIDQ0Ny45NDNjMC4wMTcgMC4wMTkg
MC4wMzYgMC4wMzkgMC4wNTcgMC4wNTdoNjMuODg0YzAuMDIxLTAuMDE4IDAuMDQxLTAuMDM4IDAu
MDU5LTAuMDU3di0zMS45NDNoLTY0djMxLjk0M3pNOTYgMzUydjMyaDI1NnYtMzJoLTI1NnpNNDE2
IDEzLjI1NXY1MC43NDVoNTAuNzQ1bC01MC43NDUtNTAuNzQ1ek00ODAgOTZoLTk2di05NmgtMTYw
djI4OGgyNTZ2LTE5MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwOTsiIGQ9Ik0zMiA0ODBo
MTkydi0zMmgtMTkyek0yODggNDgwaDE5MnYtMzJoLTE5MnpNNDc2IDMyMGgtMjh2MTI4aC0xMjh2
LTEyOGgtMTI4djEyOGgtMTI4di0xMjhoLTI4Yy0xOS44IDAtMzYtMTYuMi0zNi0zNnYtMjgwYzAt
MTkuOCAxNi4yLTM2IDM2LTM2aDE1MmMxOS44IDAgMzYgMTYuMiAzNiAzNnYxODhoNjR2LTE4OGMw
LTE5LjggMTYuMi0zNiAzNi0zNmgxNTJjMTkuOCAwIDM2IDE2LjIgMzYgMzZ2MjgwYzAgMTkuOC0x
Ni4yIDM2LTM2IDM2ek0xNzQgMGgtMTI0Yy05LjkgMC0xOCA3LjItMTggMTZzOC4xIDE2IDE4IDE2
aDEyNGM5LjkgMCAxOC03LjIgMTgtMTZzLTguMS0xNi0xOC0xNnpNMjcyIDIyNGgtMzJjLTguOCAw
LTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYt
MTYtMTZ6TTQ2MiAwaC0xMjRjLTkuOSAwLTE4IDcuMi0xOCAxNnM4LjEgMTYgMTggMTZoMTI0Yzku
OSAwIDE4LTcuMiAxOC0xNnMtOC4xLTE2LTE4LTE2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDBhOyIgZD0iTTE5MiA0NDhoMzIwdi02NGgtMzIwdjY0ek0xOTIgMjU2aDMyMHYtNjRoLTMyMHY2
NHpNMTkyIDY0aDMyMHYtNjRoLTMyMHY2NHpNMCA0MTZjMCAzNS4zNDYgMjguNjU0IDY0IDY0IDY0
czY0LTI4LjY1NCA2NC02NGMwLTM1LjM0Ni0yOC42NTQtNjQtNjQtNjQtMzUuMzQ2IDAtNjQgMjgu
NjU0LTY0IDY0ek0wIDIyNGMwIDM1LjM0NiAyOC42NTQgNjQgNjQgNjRzNjQtMjguNjU0IDY0LTY0
YzAtMzUuMzQ2LTI4LjY1NC02NC02NC02NC0zNS4zNDYgMC02NCAyOC42NTQtNjQgNjR6TTAgMzJj
MCAzNS4zNDYgMjguNjU0IDY0IDY0IDY0czY0LTI4LjY1NCA2NC02NGMwLTM1LjM0Ni0yOC42NTQt
NjQtNjQtNjQtMzUuMzQ2IDAtNjQgMjguNjU0LTY0IDY0eiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDBiOyIgZD0iTTE5MiA2NGgzMjB2LTY0aC0zMjB6TTE5MiAyNTZoMzIwdi02NGgtMzIwek0x
OTIgNDQ4aDMyMHYtNjRoLTMyMHpNOTYgNDgwdi0xMjhoLTMydjk2aC0zMnYzMnpNNjQgMjE3di0y
NWg2NHYtMzJoLTk2djczbDY0IDMwdjI1aC02NHYzMmg5NnYtNzN6TTEyOCAxMjh2LTE2MGgtOTZ2
MzJoNjR2MzJoLTY0djMyaDY0djMyaC02NHYzMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAw
YzsiIGQ9Ik0wIDQ0OGg1MTJ2LTY0aC01MTJ6TTE5MiAzNTJoMzIwdi02NGgtMzIwek0xOTIgMjU2
aDMyMHYtNjRoLTMyMHpNMTkyIDE2MGgzMjB2LTY0aC0zMjB6TTAgNjRoNTEydi02NGgtNTEyek0w
IDEyOHYxOTJsMTI4LTk2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDBkOyIgZD0iTTAgNDQ4
aDUxMnYtNjRoLTUxMnpNMTkyIDM1MmgzMjB2LTY0aC0zMjB6TTE5MiAyNTZoMzIwdi02NGgtMzIw
ek0xOTIgMTYwaDMyMHYtNjRoLTMyMHpNMCA2NGg1MTJ2LTY0aC01MTJ6TTEyOCAzMjB2LTE5Mmwt
MTI4IDk2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDBlOyIgZD0iTTExMi41IDI1NmM2MS44
NTYgMCAxMTItNTAuMTQ1IDExMi0xMTIgMC02MS44NTYtNTAuMTQ0LTExMi0xMTItMTEyLTYxLjg1
NiAwLTExMiA1MC4xNDQtMTEyIDExMmwtMC41IDE2YzAgMTIzLjcxMiAxMDAuMjg4IDIyNCAyMjQg
MjI0di02NGMtNDIuNzM3IDAtODIuOTE3LTE2LjY0My0xMTMuMTM3LTQ2Ljg2My01LjgxNy01Ljgx
OC0xMS4xMjYtMTIuMDA4LTE1LjkxNS0xOC41MSA1LjcxOSAwLjkgMTEuNTggMS4zNzMgMTcuNTUy
IDEuMzczek00MDAuNSAyNTZjNjEuODU1IDAgMTEyLTUwLjE0NSAxMTItMTEyIDAtNjEuODU2LTUw
LjE0NS0xMTItMTEyLTExMi02MS44NTUgMC0xMTIgNTAuMTQ0LTExMiAxMTJsLTAuNSAxNmMwIDEy
My43MTIgMTAwLjI4OCAyMjQgMjI0IDIyNHYtNjRjLTQyLjczNyAwLTgyLjkxNy0xNi42NDMtMTEz
LjEzNy00Ni44NjMtNS44MTgtNS44MTgtMTEuMTI3LTEyLjAwOC0xNS45MTYtMTguNTEgNS43MiAw
LjkgMTEuNTggMS4zNzMgMTcuNTUzIDEuMzczeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDBm
OyIgZD0iTTM4MC45MzEtMzJjNTYuODYzIDEwMy4wMTYgNjYuNDQ0IDI2MC4xNTMtMTU2LjkzMSAy
NTQuOTEydi0xMjYuOTEybC0xOTIgMTkyIDE5MiAxOTJ2LTEyNC4xODZjMjY3LjQ4MSA2Ljk3MSAy
OTcuMjg1LTIzNi4xMDcgMTU2LjkzMS0zODcuODE0eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDEwOyIgZD0iTTI4OCAzNTUuODE0djEyNC4xODZsMTkyLTE5Mi0xOTItMTkydjEyNi45MTJjLTIy
My4zNzUgNS4yNDEtMjEzLjc5NC0xNTEuODk2LTE1Ni45My0yNTQuOTEyLTE0MC4zNTYgMTUxLjcw
Ny0xMTAuNTUgMzk0Ljc4NSAxNTYuOTMgMzg3LjgxNHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAxMTsiIGQ9Ik0xNjAgMTI4YzguOC04LjggMjMuNjM3LTguMzYzIDMyLjk3MSAwLjk3MWwxNTgu
MDU5IDE1OC4wNThjOS4zMzQgOS4zMzQgOS43NyAyNC4xNzEgMC45NyAzMi45NzFzLTIzLjYzNyA4
LjM2My0zMi45NzEtMC45NzFsLTE1OC4wNTgtMTU4LjA1OGMtOS4zMzQtOS4zMzQtOS43NzEtMjQu
MTcxLTAuOTcxLTMyLjk3MXpNMjM4LjQ0NCAxNDIuNDQ0YzIuMjgtNC41MjUgMy40OTUtOS41OCAz
LjQ5NS0xNC44NDggMC04LjgwOC0zLjM3Mi0xNy4wMzAtOS40OTYtMjMuMTU0bC04MS42OTEtODEu
NjkxYy02LjEyNC02LjEyNC0xNC4zNDctOS40OTYtMjMuMTU0LTkuNDk2cy0xNy4wMzAgMy4zNzIt
MjMuMTU0IDkuNDk2bC00OS42OTEgNDkuNjkxYy02LjEyNCA2LjEyNC05LjQ5NiAxNC4zNDctOS40
OTYgMjMuMTU0czMuMzcyIDE3LjAzMCA5LjQ5NiAyMy4xNTRsODEuNjkxIDgxLjY5MWM2LjEyNCA2
LjEyNCAxNC4zNDcgOS40OTcgMjMuMTU0IDkuNDk3IDUuMjY4IDAgMTAuMzIyLTEuMjE1IDE0Ljg0
OC0zLjQ5NWwzMi42NjkgMzIuNjY5Yy0xMy45MzUgMTAuNzA1LTMwLjcyIDE2LjA4MC00Ny41MTcg
MTYuMDgwLTE5Ljk5MyAwLTM5Ljk4Ni03LjU4My01NS4xNTQtMjIuNzUxbC04MS42OTEtODEuNjkx
Yy0zMC4zMzUtMzAuMzM1LTMwLjMzNS03OS45NzQgMC0xMTAuMzA5bDQ5LjY5MS00OS42OTFjMTUu
MTY3LTE1LjE2NiAzNS4xNi0yMi43NSA1NS4xNTMtMjIuNzUgMTkuOTk0IDAgMzkuOTg3IDcuNTg0
IDU1LjE1NCAyMi43NTFsODEuNjkxIDgxLjY5MWMyNy45MSAyNy45MSAzMC4xMTkgNzIuMTQ5IDYu
NjcyIDEwMi42NzJsLTMyLjY3LTMyLjY3ek00ODkuMjQ5IDQwNy41NThsLTQ5LjY5MSA0OS42OTFj
LTE1LjE2NyAxNS4xNjgtMzUuMTYgMjIuNzUxLTU1LjE1NCAyMi43NTEtMTkuOTkzIDAtMzkuOTg2
LTcuNTgzLTU1LjE1NC0yMi43NTFsLTgxLjY5MS04MS42OTFjLTI3LjkxLTI3LjkxLTMwLjExOS03
Mi4xNDktNi42NzEtMTAyLjY3MWwzMi42NjkgMzIuNjdjLTIuMjc5IDQuNTI1LTMuNDk0IDkuNTgt
My40OTQgMTQuODQ3IDAgOC44MDggMy4zNzIgMTcuMDMwIDkuNDk2IDIzLjE1NGw4MS42OTEgODEu
NjkxYzYuMTI0IDYuMTI0IDE0LjM0NyA5LjQ5NyAyMy4xNTQgOS40OTdzMTcuMDMwLTMuMzczIDIz
LjE1NC05LjQ5N2w0OS42OTEtNDkuNjkxYzYuMTI0LTYuMTI0IDkuNDk2LTE0LjM0NyA5LjQ5Ni0y
My4xNTRzLTMuMzcyLTE3LjAzMC05LjQ5Ni0yMy4xNTRsLTgxLjY5MS04MS42OTFjLTYuMTI0LTYu
MTI0LTE0LjM0Ny05LjQ5Ni0yMy4xNTQtOS40OTYtNS4yNjggMC0xMC4zMjIgMS4yMTUtMTQuODQ4
IDMuNDk1bC0zMi42NjktMzIuNjY5YzEzLjkzNi0xMC43MDUgMzAuNzItMTYuMDgwIDQ3LjUxNy0x
Ni4wODAgMTkuOTk0IDAgMzkuOTg3IDcuNTg0IDU1LjE1NCAyMi43NTFsODEuNjkxIDgxLjY5MWMz
MC4zMzUgMzAuMzMzIDMwLjMzNSA3OS45NzIgMCAxMTAuMzA3eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDEyOyIgZD0iTTIzOC40NDQgMTQyLjQ0M2MyLjI4LTQuNTI0IDMuNDk1LTkuNTc5IDMu
NDk1LTE0Ljg0OCAwLTguODA4LTMuMzcyLTE3LjAyOS05LjQ5Ni0yMy4xNTRsLTgxLjY5LTgxLjY5
Yy02LjEyNC02LjEyNC0xNC4zNDgtOS40OTYtMjMuMTU0LTkuNDk2cy0xNy4wMzAgMy4zNzItMjMu
MTU0IDkuNDk2bC00OS42OSA0OS42OWMtNi4xMjQgNi4xMjUtOS40OTYgMTQuMzQ4LTkuNDk2IDIz
LjE1NHMzLjM3MiAxNy4wMzAgOS40OTYgMjMuMTU0bDgxLjY5IDgxLjY5MWM2LjEyNCA2LjEyMyAx
NC4zNDggOS40OTYgMjMuMTU0IDkuNDk2IDUuMjY5IDAgMTAuMzIyLTEuMjE1IDE0Ljg0OC0zLjQ5
NGwzMi42NjkgMzIuNjY4Yy0xMy45MzUgMTAuNzA1LTMwLjcyIDE2LjA4MC00Ny41MTcgMTYuMDgw
LTE5Ljk5MyAwLTM5Ljk4Ni03LjU4My01NS4xNTQtMjIuNzUxbC04MS42OS04MS42OTFjLTMwLjMz
NS0zMC4zMzUtMzAuMzM1LTc5Ljk3NSAwLTExMC4zMDlsNDkuNjktNDkuNjkxYzE1LjE2Ny0xNS4x
NjYgMzUuMTYtMjIuNzUgNTUuMTUzLTIyLjc1IDE5Ljk5NCAwIDM5Ljk4NyA3LjU4NCA1NS4xNTQg
MjIuNzUxbDgxLjY5IDgxLjY5YzI3LjkxIDI3LjkxIDMwLjExOSA3Mi4xNDkgNi42NzIgMTAyLjY3
M2wtMzIuNjctMzIuNjY5ek00ODkuMjQ4IDQwNy41NThsLTQ5LjY5IDQ5LjY5MWMtMTUuMTY3IDE1
LjE2OC0zNS4xNiAyMi43NTEtNTUuMTU0IDIyLjc1MS0xOS45OTMgMC0zOS45ODUtNy41ODMtNTUu
MTUzLTIyLjc1MWwtODEuNjkxLTgxLjY5MWMtMjcuOTEtMjcuOTEtMzAuMTE5LTcyLjE0OS02LjY3
MS0xMDIuNjcxbDMyLjY2OSAzMi42N2MtMi4yNzkgNC41MjUtMy40OTQgOS41OC0zLjQ5NCAxNC44
NDcgMCA4LjgwOCAzLjM3MiAxNy4wMzAgOS40OTYgMjMuMTU0bDgxLjY5MSA4MS42OTFjNi4xMjMg
Ni4xMjQgMTQuMzQ3IDkuNDk3IDIzLjE1MyA5LjQ5NyA4LjgwOCAwIDE3LjAzMC0zLjM3MyAyMy4x
NTQtOS40OTdsNDkuNjktNDkuNjkxYzYuMTI0LTYuMTI0IDkuNDk2LTE0LjM0NyA5LjQ5Ni0yMy4x
NTRzLTMuMzcyLTE3LjAzMC05LjQ5Ni0yMy4xNTRsLTgxLjY5LTgxLjY5MWMtNi4xMjQtNi4xMjQt
MTQuMzQ3LTkuNDk2LTIzLjE1NC05LjQ5Ni01LjI2OCAwLTEwLjMyMiAxLjIxNS0xNC44NDggMy40
OTVsLTMyLjY2OS0zMi42NjljMTMuOTM2LTEwLjcwNSAzMC43Mi0xNi4wODAgNDcuNTE3LTE2LjA4
MCAxOS45OTQgMCAzOS45ODcgNy41ODQgNTUuMTU0IDIyLjc1Mmw4MS42OSA4MS42OWMzMC4zMzYg
MzAuMzMzIDMwLjMzNiA3OS45NzIgMCAxMTAuMzA3ek0xMTYuNjg0IDM0MC42ODhsLTk1Ljk5NyA5
NS45OTcgMjIuNjI4IDIyLjYyOCA5NS45OTctOTUuOTk3ek0xOTIgNDgwaDMydi05NmgtMzJ6TTAg
Mjg4aDk2di0zMmgtOTZ6TTM5NS4zMTYgMTA3LjMxMmw5NS45OTgtOTUuOTk4LTIyLjYyOC0yMi42
MjgtOTUuOTk4IDk1Ljk5OHpNMjg4IDY0aDMydi05NmgtMzJ6TTQxNiAxOTJoOTZ2LTMyaC05Nnoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik05NiA0ODB2LTUxMmwxNjAgMTYwIDE2
MC0xNjB2NTEyaC0zMjB6TTM4NCA0NS4yNTVsLTEyOCAxMjgtMTI4LTEyOHY0MDIuNzQ1aDI1NnYt
NDAyLjc0NXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNDsiIGQ9Ik0wIDQxNnYtNDE2aDUx
MnY0MTZoLTUxMnpNNDgwIDMyaC00NDh2MzUyaDQ0OHYtMzUyek0zNTIgMzA0YzAgMjYuNTEgMjEu
NDkgNDggNDggNDhzNDgtMjEuNDkgNDgtNDhjMC0yNi41MS0yMS40OS00OC00OC00OC0yNi41MSAw
LTQ4IDIxLjQ5LTQ4IDQ4ek00NDggNjRoLTM4NGw5NiAyNTYgMTI4LTE2MCA2NCA0OHoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTAxNTsiIGQ9Ik0wIDQxNnYtMzg0aDUxMnYzODRoLTUxMnpNOTYg
NjRoLTY0djY0aDY0di02NHpNOTYgMTkyaC02NHY2NGg2NHYtNjR6TTk2IDMyMGgtNjR2NjRoNjR2
LTY0ek0zODQgNjRoLTI1NnYzMjBoMjU2di0zMjB6TTQ4MCA2NGgtNjR2NjRoNjR2LTY0ek00ODAg
MTkyaC02NHY2NGg2NHYtNjR6TTQ4MCAzMjBoLTY0djY0aDY0di02NHpNMTkyIDMyMHYtMTkybDEy
OCA5NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNjsiIGQ9Ik0yMjQgMTI4aDY0di02NGgt
NjR6TTM1MiAzNTJjMTcuNjczIDAgMzItMTQuMzI3IDMyLTMydi05NmwtOTYtNjRoLTY0djMybDk2
IDY0djMyaC0xNjB2NjRoMTkyek0yNTYgNDMyYy01NS41NTkgMC0xMDcuNzkyLTIxLjYzNi0xNDcu
MDc4LTYwLjkyMnMtNjAuOTIyLTkxLjUxOS02MC45MjItMTQ3LjA3OGMwLTU1LjU1OSAyMS42MzYt
MTA3Ljc5MiA2MC45MjItMTQ3LjA3OCAzOS4yODYtMzkuMjg2IDkxLjUxOS02MC45MjIgMTQ3LjA3
OC02MC45MjIgNTUuNTU5IDAgMTA3Ljc5MiAyMS42MzYgMTQ3LjA3OCA2MC45MjIgMzkuMjg2IDM5
LjI4NiA2MC45MjIgOTEuNTE5IDYwLjkyMiAxNDcuMDc4IDAgNTUuNTU5LTIxLjYzNiAxMDcuNzky
LTYwLjkyMiAxNDcuMDc4LTM5LjI4NiAzOS4yODYtOTEuNTE5IDYwLjkyMi0xNDcuMDc4IDYwLjky
MnpNMjU2IDQ4MHYwYzE0MS4zODUgMCAyNTYtMTE0LjYxNSAyNTYtMjU2cy0xMTQuNjE1LTI1Ni0y
NTYtMjU2Yy0xNDEuMzg1IDAtMjU2IDExNC42MTUtMjU2IDI1NiAwIDE0MS4zODUgMTE0LjYxNSAy
NTYgMjU2IDI1NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik0xNjAgMzUybC0x
MjgtMTI4IDEyOC0xMjhoNjRsLTEyOCAxMjggMTI4IDEyOHpNMzUyIDM1MmgtNjRsMTI4LTEyOC0x
MjgtMTI4aDY0bDEyOCAxMjh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTg7IiBkPSJNMjU2
IDM4NGMtMTA2LjAzOCAwLTE5Mi04NS45NjEtMTkyLTE5MnM4NS45NjEtMTkyIDE5Mi0xOTJjMTA2
LjAzNyAwIDE5MiA4NS45NjEgMTkyIDE5MnMtODUuOTYzIDE5Mi0xOTIgMTkyek0zNTcuODIyIDkw
LjE3N2MtMjcuMTk2LTI3LjE5OC02My4zNTgtNDIuMTc3LTEwMS44MjItNDIuMTc3cy03NC42MjUg
MTQuOTc5LTEwMS44MjMgNDIuMTc3Yy0yNy4xOTggMjcuMTk3LTQyLjE3NyA2My4zNTktNDIuMTc3
IDEwMS44MjNzMTQuOTc5IDc0LjYyNSA0Mi4xNzcgMTAxLjgyM2MyNy4xOTggMjcuMTk4IDYzLjM1
OSA0Mi4xNzcgMTAxLjgyMyA0Mi4xNzdzNzQuNjI2LTE0Ljk3OSAxMDEuODIxLTQyLjE3N2MyNy4y
MDEtMjcuMTk4IDQyLjE3OS02My4zNTkgNDIuMTc5LTEwMS44MjNzLTE0Ljk3OS03NC42MjYtNDIu
MTc4LTEwMS44MjN6TTE2Mi45NjUgMzc4LjA2OWwtMjEuNDcgNDIuOTM5Yy00OS40MzctMjQuNzY4
LTg5LjczNS02NS4wNjYtMTE0LjUwMy0xMTQuNTA0bDQyLjkzOC0yMS40N2MyMC4xMjQgNDAuMTY4
IDUyLjg2NiA3Mi45MTEgOTMuMDM1IDkzLjAzNXpNNDQyLjA2NyAyODUuMDM1bDQyLjkzOSAyMS40
NjljLTI0Ljc2NiA0OS40MzgtNjUuMDYzIDg5LjczNi0xMTQuNTAyIDExNC41MDRsLTIxLjQ3Mi00
Mi45MzljNDAuMTY5LTIwLjEyNCA3Mi45MTItNTIuODY2IDkzLjAzNS05My4wMzR6TTI1NiAyODho
LTMydi05NmMwLTUuMDU1IDIuMzUtOS41NTUgNi4wMTEtMTIuNDg2bC0wLjAwNi0wLjAwOCA4MC02
NCAxOS45ODggMjQuOTg4LTczLjk5MyA1OS4xOTV2ODguMzExeiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDE5OyIgZD0iTTI1NiAzMjBjLTEwNC42ODQgMC0xOTcuNjIyLTUwLjI3OC0yNTYtMTI4
IDU4LjM3OC03Ny43MjMgMTUxLjMxNi0xMjggMjU2LTEyOCAxMDQuNjg0IDAgMTk3LjYyMiA1MC4y
NzcgMjU2IDEyOC01OC4zNzggNzcuNzIyLTE1MS4zMTYgMTI4LTI1NiAxMjh6TTIyNCAyNTZjMTcu
NjczIDAgMzItMTQuMzI3IDMyLTMycy0xNC4zMjctMzItMzItMzItMzIgMTQuMzI3LTMyIDMyIDE0
LjMyNyAzMiAzMiAzMnpNMzg2LjgwOCAxMjcuMzUyYy0xOS44MjQtMTAuMTI5LTQwLjgyNi0xNy45
MzEtNjIuNDIzLTIzLjE4OC0yMi4yNDQtNS40MTgtNDUuMjUxLTguMTY0LTY4LjM4NS04LjE2NC0y
My4xMzMgMC00Ni4xNDEgMi43NDYtNjguMzg0IDguMTYyLTIxLjU5NyA1LjI1OS00Mi41OTkgMTMu
MDYxLTYyLjQyMyAyMy4xODgtMzEuNTEgMTYuMTAxLTYwLjExMSAzOC4yMDUtODMuODIgNjQuNjQ5
IDIzLjcwOSAyNi40NDQgNTIuMzEgNDguNTUgODMuODIgNjQuNjQ5IDE2LjE2OCA4LjI2MSAzMy4x
MjEgMTQuOTczIDUwLjU0MSAyMC4wMjAtOS45NDQtMTUuMTIxLTE1LjczNC0zMy4yMTctMTUuNzM0
LTUyLjY2OCAwLTUzLjAyMCA0Mi45ODEtOTYgOTYtOTYgNTMuMDE5IDAgOTYgNDIuOTggOTYgOTYg
MCAxOS40NTEtNS43OTEgMzcuNTQ3LTE1LjczMyA1Mi42NyAxNy40MTktNS4wNDggMzQuMzcyLTEx
Ljc2IDUwLjU0MS0yMC4wMjEgMzEuNTExLTE2LjA5OSA2MC4xMDktMzguMjA0IDgzLjgxOS02NC42
NDktMjMuNzEtMjYuNDQzLTUyLjMwOS00OC41NS04My44MTktNjQuNjQ4ek00MzAuNDU5IDM1OC4x
MzljLTU0LjM2IDI3Ljc3Ny0xMTMuMDU2IDQxLjg2MS0xNzQuNDU5IDQxLjg2MS02MS40MDMgMC0x
MjAuMDk5LTE0LjA4NC0xNzQuNDU5LTQxLjg2MS0yOS4zODYtMTUuMDE2LTU2Ljg2Ni0zMy45NTIt
ODEuNTQxLTU2LjAzOHYtNTQuNjAzYzI3LjY2OSAyOS4yODMgNjAuMzQ3IDUzLjg3NyA5Ni4wOTcg
NzIuMTQ1IDQ5LjgxIDI1LjQ1MiAxMDMuNjA5IDM4LjM1NyAxNTkuOTAzIDM4LjM1N3MxMTAuMDkz
LTEyLjkwNSAxNTkuOTAyLTM4LjM1OGMzNS43NTEtMTguMjY4IDY4LjQyOS00Mi44NjIgOTYuMDk4
LTcyLjE0NXY1NC42MDNjLTI0LjY3NSAyMi4wODctNTIuMTU0IDQxLjAyMy04MS41NDEgNTYuMDM5
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFhOyIgZD0iTTE2MS4wMDkgNjRsMjguOCA5Nmgx
MzIuMzgybDI4LjgtOTZoNTYuODE2bC05NS45OTggMzIwaC0xMTEuNjE4bC05Ni0zMjBoNTYuODE4
ek0yMzcuODA5IDMyMGgzNi4zODJsMjguOC05NmgtOTMuOTgybDI4LjggOTZ6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMWI7IiBkPSJNMCA0NDh2LTQ0OGg1MTJ2NDQ4aC01MTJ6TTE5MiAxNjB2
OTZoMTI4di05NmgtMTI4ek0zMjAgMTI4di05NmgtMTI4djk2aDEyOHpNMzIwIDM4NHYtOTZoLTEy
OHY5NmgxMjh6TTE2MCAzODR2LTk2aC0xMjh2OTZoMTI4ek0zMiAyNTZoMTI4di05NmgtMTI4djk2
ek0zNTIgMjU2aDEyOHYtOTZoLTEyOHY5NnpNMzUyIDI4OHY5NmgxMjh2LTk2aC0xMjh6TTMyIDEy
OGgxMjh2LTk2aC0xMjh2OTZ6TTM1MiAzMnY5NmgxMjh2LTk2aC0xMjh6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMWM7IiBkPSJNMCAyNTZoNTEydi02NGgtNTEyeiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDFkOyIgZD0iTTAgMzJoMjg4di02NGgtMjg4ek05NiA0ODBoMzUydi02NGgtMzUy
ek0xMzguNjk0IDY0bDEwMi4zNDQgMzkyLjA4MiA2MS45MjUtMTYuMTY0LTk4LjEyNS0zNzUuOTE4
ek00NjQuODg3LTMybC02NC44ODcgNjQuODg3LTY0Ljg4Ny02NC44ODctMzEuMTEzIDMxLjExMyA2
NC44ODcgNjQuODg3LTY0Ljg4NyA2NC44ODcgMzEuMTEzIDMxLjExMyA2NC44ODctNjQuODg3IDY0
Ljg4NyA2NC44ODcgMzEuMTEzLTMxLjExMy02NC44ODctNjQuODg3IDY0Ljg4Ny02NC44ODd6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWU7IiBkPSJNMzg0IDI1di0yNWg2NHYtMzJoLTk2djcz
bDY0IDMwdjI1aC02NHYzMmg5NnYtNzN6TTMzOCAzNTJoLTY4bC05NC05NC05NCA5NGgtNjhsMTI4
LTEyOC0xMjgtMTI4aDY4bDk0IDk0IDk0LTk0aDY4bC0xMjggMTI4eiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDFmOyIgZD0iTTM4NCAzNzd2LTI1aDY0di0zMmgtOTZ2NzNsNjQgMzB2MjVoLTY0
djMyaDk2di03M3pNMzM4IDM1MmgtNjhsLTk0LTk0LTk0IDk0aC02OGwxMjgtMTI4LTEyOC0xMjho
NjhsOTQgOTQgOTQtOTRoNjhsLTEyOCAxMjh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7
IiBkPSJNMzUyIDMyaDEyOGwzMiA2NHYtMTI4aC0xOTJ2MTA3LjEwN2M2NS41NTYgMjguMjQyIDEx
MiA5OC41ODEgMTEyIDE4MC44OTMgMCAxMDcuMjE2LTc4Ljc5OSAxOTEuMTMzLTE3NiAxOTEuMTMz
LTk3LjIwMyAwLTE3Ni04My45MTYtMTc2LTE5MS4xMzMgMC04Mi4zMTIgNDYuNDQzLTE1Mi42NTEg
MTEyLTE4MC44OTN2LTEwNy4xMDdoLTE5MnYxMjhsMzItNjRoMTI4djE2LjI5NWMtOTMuODE1IDMz
LjIzLTE2MCAxMTMuNzAxLTE2MCAyMDcuNzA1IDAgMTIzLjcxMiAxMTQuNjE1IDIyNCAyNTYgMjI0
IDE0MS4zODUgMCAyNTYtMTAwLjI4OCAyNTYtMjI0IDAtOTQuMDA0LTY2LjE4NS0xNzQuNDc1LTE2
MC0yMDcuNzA1di0xNi4yOTV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjE7IiBkPSJNMjU2
IDQ4MGMtMTQxLjM4NSAwLTI1Ni0xMTQuNjE0LTI1Ni0yNTYgMC0xNDEuMzg1IDExNC42MTQtMjU2
IDI1Ni0yNTYgMTQxLjM4NSAwIDI1NiAxMTQuNjE1IDI1NiAyNTYgMCAxNDEuMzg2LTExNC42MTUg
MjU2LTI1NiAyNTZ6TTI1NiA4Yy0xMTkuMjkzIDAtMjE2IDk2LjcwNi0yMTYgMjE2IDAgMTE5LjI5
MyA5Ni43MDcgMjE2IDIxNiAyMTYgMTE5LjI5NSAwIDIxNi05Ni43MDcgMjE2LTIxNiAwLTExOS4y
OTQtOTYuNzA1LTIxNi0yMTYtMjE2ek0xOTIgMzIwYzAtMTcuNjczLTE0LjMyNy0zMi0zMi0zMnMt
MzIgMTQuMzI3LTMyIDMyIDE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzJ6TTM4NCAzMjBj
MC0xNy42NzMtMTQuMzI2LTMyLTMyLTMycy0zMiAxNC4zMjctMzIgMzIgMTQuMzI2IDMyIDMyIDMy
IDMyLTE0LjMyNyAzMi0zMnpNMjU2IDE1NGM3MC41MzcgMCAxMzEuMzQ0IDI4Ljc2NiAxNTkuMjMx
IDYxLjU5Ni0xMC40MzYtODUuNjEtNzguMTQ0LTE1MS41OTYtMTU5LjIzMS0xNTEuNTk2LTgxLjA1
OSAwLTE0OC43NDkgNjYuMDEzLTE1OS4yMjIgMTUxLjU4NCAyNy44OTMtMzIuODIzIDg4LjY5My02
MS41ODQgMTU5LjIyMi02MS41ODR6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjI7IiBkPSJN
MTI4IDQ0OGgyNTZ2LTY0aC0yNTZ6TTQ4MCAzNTJoLTQ0OGMtMTcuNiAwLTMyLTE0LjQtMzItMzJ2
LTE2MGMwLTE3LjYgMTQuMzk4LTMyIDMyLTMyaDk2di0xMjhoMjU2djEyOGg5NmMxNy42IDAgMzIg
MTQuNCAzMiAzMnYxNjBjMCAxNy42LTE0LjQgMzItMzIgMzJ6TTM1MiAzMmgtMTkydjE2MGgxOTJ2
LTE2MHpNNDg3LjIgMzA0YzAtMTIuODEzLTEwLjM4Ny0yMy4yLTIzLjE5OS0yMy4yLTEyLjgxMyAw
LTIzLjIwMSAxMC4zODctMjMuMjAxIDIzLjJzMTAuMzg4IDIzLjIgMjMuMjAxIDIzLjJjMTIuODEz
IDAgMjMuMTk5LTEwLjM4NyAyMy4xOTktMjMuMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAy
MzsiIGQ9Ik01MTIgNDgwdi0xOTJsLTY5LjEzIDY5LjEzLTEwNi0xMDYtNTMuNzQgNTMuNzQgMTA2
IDEwNi02OS4xMyA2OS4xM3pNMTIyLjg3IDQxMC44N2wxMDYtMTA2LTUzLjc0LTUzLjc0LTEwNiAx
MDYtNjkuMTMtNjkuMTN2MTkyaDE5MnpNNDQyLjg3IDkwLjg3bDY5LjEzIDY5LjEzdi0xOTJoLTE5
Mmw2OS4xMyA2OS4xMy0xMDYgMTA2IDUzLjc0IDUzLjc0ek0yMjguODcgMTQzLjEzbC0xMDYtMTA2
IDY5LjEzLTY5LjEzaC0xOTJ2MTkybDY5LjEzLTY5LjEzIDEwNiAxMDZ6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMjQ7IiBkPSJNNjQgMzUyaDY0di05NmgzMnYxOTJjMCAxNy42LTE0LjQgMzIt
MzIgMzJoLTY0Yy0xNy42IDAtMzItMTQuNC0zMi0zMnYtMTkyaDMydjk2ek02NCA0NDhoNjR2LTY0
aC02NHY2NHpNNDgwIDQ0OHYzMmgtOTZjLTE3LjYwMSAwLTMyLTE0LjQtMzItMzJ2LTE2MGMwLTE3
LjYgMTQuMzk5LTMyIDMyLTMyaDk2djMyaC05NnYxNjBoOTZ6TTMyMCA0MDB2NDhjMCAxNy42LTE0
LjQgMzItMzIgMzJoLTk2di0yMjRoOTZjMTcuNiAwIDMyIDE0LjQgMzIgMzJ2NDhjMCAxNy42LTQu
NCAzMi0yMiAzMiAxNy42IDAgMjIgMTQuNCAyMiAzMnpNMjg4IDI4OGgtNjR2NjRoNjR2LTY0ek0y
ODggMzg0aC02NHY2NGg2NHYtNjR6TTQxNiAxOTJsLTIwOC0yMjQtMTEyIDE0NCA0MSAzNSA3MS03
NCAxNzYgMTUxeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTTIyNCAxOTJoLTk2
djY0aDk2djk2aDY0di05Nmg5NnYtNjRoLTk2di05NmgtNjR6TTUxMiAxNjB2LTE5MmgtNTEydjE5
Mmg2NHYtMTI4aDM4NHYxMjh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjY7IiBkPSJNMTky
IDM4NGg2NHYtMzJoLTY0ek0yODggMzg0aDY0di0zMmgtNjR6TTQ0OCAzODR2LTEyOGgtOTZ2MzJo
NjR2NjRoLTMydjMyek0xNjAgMjg4aDY0di0zMmgtNjR6TTI1NiAyODhoNjR2LTMyaC02NHpNOTYg
MzUydi02NGgzMnYtMzJoLTY0djEyOGg5NnYtMzJ6TTE5MiAxOTJoNjR2LTMyaC02NHpNMjg4IDE5
Mmg2NHYtMzJoLTY0ek00NDggMTkydi0xMjhoLTk2djMyaDY0djY0aC0zMnYzMnpNMTYwIDk2aDY0
di0zMmgtNjR6TTI1NiA5Nmg2NHYtMzJoLTY0ek05NiAxNjB2LTY0aDMydi0zMmgtNjR2MTI4aDk2
di0zMnpNNDgwIDQ0OGgtNDQ4di00NDhoNDQ4djQ0OHpNNTEyIDQ4MHYwLTUxMmgtNTEydjUxMmg1
MTJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjc7IiBkPSJNMCAyMjRoNjR2LTMyaC02NHpN
OTYgMjI0aDk2di0zMmgtOTZ6TTIyNCAyMjRoNjR2LTMyaC02NHpNMzIwIDIyNGg5NnYtMzJoLTk2
ek00NDggMjI0aDY0di0zMmgtNjR6TTQ0MCA0ODBsOC0yMjRoLTM4NGw4IDIyNGgxNmw4LTE5Mmgz
MjBsOCAxOTJ6TTcyLTMybC04IDE5MmgzODRsLTgtMTkyaC0xNmwtOCAxNjBoLTMyMGwtOC0xNjB6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjg7IiBkPSJNMjg4IDQ0OGMxMjMuNzEyIDAgMjI0
LTEwMC4yODggMjI0LTIyNHMtMTAwLjI4OC0yMjQtMjI0LTIyNHY0OGM0Ny4wMTIgMCA5MS4yMDkg
MTguMzA3IDEyNC40NTEgNTEuNTQ5IDMzLjI0MiAzMy4yNDIgNTEuNTQ5IDc3LjQzOSA1MS41NDkg
MTI0LjQ1MSAwIDQ3LjAxMS0xOC4zMDcgOTEuMjA5LTUxLjU0OSAxMjQuNDUxLTMzLjI0MiAzMy4y
NDItNzcuNDM5IDUxLjU0OS0xMjQuNDUxIDUxLjU0OS00Ny4wMTEgMC05MS4yMDktMTguMzA3LTEy
NC40NTEtNTEuNTQ5LTI1LjU3LTI1LjU2OS00Mi4yOTEtNTcuNjIzLTQ4LjY1My05Mi40NTFoOTMu
MTA0bC0xMTItMTI4LTExMiAxMjhoODIuMjg1YzE1LjUzIDEwOC41NTEgMTA4Ljg2OSAxOTIgMjIx
LjcxNSAxOTJ6TTM4NCAyNTZ2LTY0aC0xMjh2MTYwaDY0di05NnoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAyYTsiIGQ9Ik0zNTMuOTQgMjM3LjY3NGMxOC43NDkgMjIuMjcxIDMwLjA2MCA1MS4w
MDQgMzAuMDYwIDgyLjMyNiAwIDcwLjU4LTU3LjQyMSAxMjgtMTI4IDEyOGgtMTYwdi00NDhoMTky
YzcwLjU3OSAwIDEyOCA1Ny40MjEgMTI4IDEyOCAwIDQ2LjQ3OC0yNC44OTkgODcuMjQ4LTYyLjA2
MCAxMDkuNjc0ek0xOTIgMzg0aDUwLjc1YzI3Ljk4NCAwIDUwLjc1LTI4LjcxIDUwLjc1LTY0cy0y
Mi43NjYtNjQtNTAuNzUtNjRoLTUwLjc1djEyOHpNMjcxLjUgNjRoLTc5LjV2MTI4aDc5LjVjMjku
MjI1IDAgNTMtMjguNzEgNTMtNjRzLTIzLjc3NS02NC01My02NHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAyYjsiIGQ9Ik00NDggNDQ4di0zMmgtNjRsLTE2MC0zODRoNjR2LTMyaC0yMjR2MzJo
NjRsMTYwIDM4NGgtNjR2MzJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMmM7IiBkPSJNMzUy
IDQ0OGg2NHYtMjA4YzAtNzkuNTI5LTcxLjYzNC0xNDQtMTYwLTE0NC04OC4zNjUgMC0xNjAgNjQu
NDcxLTE2MCAxNDR2MjA4aDY0di0yMDhjMC0yMC4wODMgOS4xMTktMzkuMzUyIDI1LjY3Ny01NC4y
NTMgMTguNDQ4LTE2LjYwMiA0My40MjMtMjUuNzQ3IDcwLjMyMy0yNS43NDcgMjYuOSAwIDUxLjg3
NSA5LjE0NSA3MC4zMjMgMjUuNzQ3IDE2LjU1OCAxNC45MDEgMjUuNjc3IDM0LjE3IDI1LjY3NyA1
NC4yNTN2MjA4ek05NiA2NGgzMjB2LTY0aC0zMjB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
MmQ7IiBkPSJNMzY1LjcxIDIyMS40ODJjMzEuOTYtMjMuOTY5IDUwLjI5LTU4LjA0MyA1MC4yOS05
My40ODJzLTE4LjMzLTY5LjUxMy01MC4yOS05My40ODJjLTI5LjY3OS0yMi4yNTktNjguNjQyLTM0
LjUxOC0xMDkuNzEtMzQuNTE4LTQxLjA2OSAwLTgwLjAzMSAxMi4yNTktMTA5LjcxIDM0LjUxOC0z
MS45NiAyMy45NjktNTAuMjkgNTguMDQzLTUwLjI5IDkzLjQ4Mmg2NGMwLTM0LjY5MSA0My45NjMt
NjQgOTYtNjRzOTYgMjkuMzA5IDk2IDY0YzAgMzQuNjkxLTQzLjk2MyA2NC05NiA2NC00MS4wNjkg
MC04MC4wMzEgMTIuMjU5LTEwOS43MSAzNC41MTgtMzEuOTYgMjMuOTctNTAuMjkgNTguMDQzLTUw
LjI5IDkzLjQ4MiAwIDM1LjQzOSAxOC4zMyA2OS41MTIgNTAuMjkgOTMuNDgyIDI5LjY3OSAyMi4y
NTkgNjguNjQxIDM0LjUxOCAxMDkuNzEgMzQuNTE4IDQxLjA2OCAwIDgwLjAzMS0xMi4yNTkgMTA5
LjcxLTM0LjUxOCAzMS45Ni0yMy45NyA1MC4yOS01OC4wNDMgNTAuMjktOTMuNDgyaC02NGMwIDM0
LjY5MS00My45NjMgNjQtOTYgNjQtNTIuMDM3IDAtOTYtMjkuMzA5LTk2LTY0IDAtMzQuNjkxIDQz
Ljk2My02NCA5Ni02NCA0MS4wNjggMCA4MC4wMzEtMTIuMjU5IDEwOS43MS0zNC41MTh6TTAgMjI0
aDUxMnYtMzJoLTUxMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyZTsiIGQ9Ik0xOTIgNDQ4
aDI1NnYtNjRoLTY0di0zODRoLTY0djM4NGgtNjR2LTM4NGgtNjR2MjI0Yy02MS44NTYgMC0xMTIg
NTAuMTQ0LTExMiAxMTJzNTAuMTQ0IDExMiAxMTIgMTEyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDJmOyIgZD0iTTIyNCA0NDhoMjU2di02NGgtNjR2LTM4NGgtNjR2Mzg0aC02NHYtMzg0aC02
NHYyMjRjLTYxLjg1NiAwLTExMiA1MC4xNDQtMTEyIDExMnM1MC4xNDQgMTEyIDExMiAxMTJ6TTMy
IDI1NmwxMjgtMTEyLTEyOC0xMTJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzA7IiBkPSJN
MTI4IDQ0OGgyNTZ2LTY0aC02NHYtMzg0aC02NHYzODRoLTY0di0zODRoLTY0djIyNGMtNjEuODU2
IDAtMTEyIDUwLjE0NC0xMTIgMTEyczUwLjE0NCAxMTIgMTEyIDExMnpNNDgwIDMybC0xMjggMTEy
IDEyOCAxMTJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzE7IiBkPSJNNDE2IDM1MmgtOTZ2
MzJsLTk2IDk2aC0yMjR2LTM4NGgxOTJ2LTEyOGgzMjB2Mjg4bC05NiA5NnpNNDE2IDMwNi43NDVs
NTAuNzQ1LTUwLjc0NWgtNTAuNzQ1djUwLjc0NXpNMjI0IDQzNC43NDVsNTAuNzQ1LTUwLjc0NWgt
NTAuNzQ1djUwLjc0NXpNMzIgNDQ4aDE2MHYtOTZoOTZ2LTIyNGgtMjU2djMyMHpNNDgwIDBoLTI1
NnY5Nmg5NnYyMjRoNjR2LTk2aDk2di0yMjR6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzI7
IiBkPSJNMzg0IDM1MmgzMnYtMzJoLTMyek0zMjAgMjg4aDMydi0zMmgtMzJ6TTMyMCAyMjRoMzJ2
LTMyaC0zMnpNMzIwIDE2MGgzMnYtMzJoLTMyek0yNTYgMjI0aDMydi0zMmgtMzJ6TTI1NiAxNjBo
MzJ2LTMyaC0zMnpNMTkyIDE2MGgzMnYtMzJoLTMyek0zODQgMjg4aDMydi0zMmgtMzJ6TTM4NCAy
MjRoMzJ2LTMyaC0zMnpNMzg0IDE2MGgzMnYtMzJoLTMyek0zODQgOTZoMzJ2LTMyaC0zMnpNMzIw
IDk2aDMydi0zMmgtMzJ6TTI1NiA5NmgzMnYtMzJoLTMyek0xOTIgOTZoMzJ2LTMyaC0zMnpNMTI4
IDk2aDMydi0zMmgtMzJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzM7IiBkPSJNNjQgMjA4
bDE0NC0xNDQgMjQwIDI0MC02NCA2NC0xNzYtMTc2LTgwIDgweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDM0OyIgZD0iTTQ2NCA0MTZoLTIwOGwtMTYgMzJoLTE3NmwtMzItNjRoNDQ4ek00NTIu
MTcgMTI4aDM3LjQzbDIyLjQgMjI0aC01MTJsMzItMzIwaDI0Mi4wNDBjLTUyLjQ0MSAxOC44ODgt
OTAuMDQwIDY5LjEzMy05MC4wNDAgMTI4IDAgNzQuOTkxIDYxLjAwOSAxMzYgMTM2IDEzNiA3NC45
OSAwIDEzNi02MS4wMDkgMTM2LTEzNiAwLTEwLjgzOS0xLjMxMS0yMS41NzUtMy44My0zMnpNNTAx
LjQ5OCAyMy4xMjVsLTk5LjI0OCA4Ny4zNDZjOC43MjcgMTQuNDYgMTMuNzUgMzEuNDA3IDEzLjc1
IDQ5LjUyOSAwIDUzLjAyMC00Mi45OCA5Ni05NiA5NnMtOTYtNDIuOTgtOTYtOTYgNDIuOTgtOTYg
OTYtOTZjMTguMTIyIDAgMzUuMDY5IDUuMDIzIDQ5LjUyOSAxMy43NWw4Ny4zNDYtOTkuMjQ4YzEx
LjQ4MS0xMy4zMzkgMzEuMDU5LTE0LjA3MCA0My41MDMtMS42MjZsMi43NDYgMi43NDZjMTIuNDQ0
IDEyLjQ0NCAxMS43MTMgMzIuMDIyLTEuNjI2IDQzLjUwM3pNMzIwIDk4Yy0zNC4yNDIgMC02MiAy
Ny43NTgtNjIgNjJzMjcuNzU4IDYyIDYyIDYyIDYyLTI3Ljc1OCA2Mi02Mi0yNy43NTgtNjItNjIt
NjJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzU7IiBkPSJNMjU2IDIyNHYtNjRoMTZsMTYg
MzJoMzJ2LTEyOGgtMjR2LTMyaDExMnYzMmgtMjR2MTI4aDMybDE2LTMyaDE2djY0ek00MTYgMzIw
djgwYzAgOC44LTcuMiAxNi0xNiAxNmgtMTEydjMyYzAgMTcuNi0xNC40IDMyLTMyIDMyaC02NGMt
MTcuNjAyIDAtMzItMTQuNC0zMi0zMnYtMzJoLTExMmMtOC44MDEgMC0xNi03LjItMTYtMTZ2LTMy
MGMwLTguOCA3LjE5OS0xNiAxNi0xNmgxNDR2LTk2aDMyMHYzNTJoLTk2ek0xOTIgNDQ3Ljk0M2Mw
LjAxNyAwLjAxOSAwLjAzNiAwLjAzOSAwLjA1NyAwLjA1N2g2My44ODRjMC4wMjEtMC4wMTggMC4w
NDEtMC4wMzggMC4wNTktMC4wNTd2LTMxLjk0M2gtNjR2MzEuOTQzek05NiAzNTJ2MzJoMjU2di0z
MmgtMjU2ek00ODAgMGgtMjU2djI4OGgyNTZ2LTI4OHoiIC8+Cis8L2ZvbnQ+PC9kZWZzPjwvc3Zn
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250
cy90aW55bWNlLnR0ZiBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLnR0ZgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ODEwM2MyYjYyODdmYTIwOWJmMWU2MmM3ZWExMDdmZDY1YTM1MWYxCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCA5ODYwCnpjbWJfaWR5RX58U3dDbXFja2NUIWNoPnYzSk5JN2kmYVVuM2RVeTh2YGpL
cUxtRi1YYGNHZ2FzUkRtU3AqdmBYPQp6bE8tYHRxQj4tJVIzI009M1opV30zaDFWJjYkbGtsTD1t
YiY4M2c+KEtmcUtfUmFGWllRM01xdG1gNzJlO3g1MU0KeiUqQEBwVU8kcUcqP1o9RT1rPVpNb2J4
QDtFYVF4XkVETT47X1RHRW47PEN+RHVZWDMoeUdYJj1pKVlzUj4tfSNxCnojd1NzfXxBe2oldFJw
WD5PdTZ5SUdjUH1XYE0lNEtxeD0kTSZGPyZVez4tX0pGYUp4MnZHKUNGLX1mWGM8aUM9Mwp6cCFe
MlBKRDxGRz43fVErXjB6M3pnWXgmRGRHNzMpdEVZYz4yfkQzeGBPP0tSRlJpbD12dWBtclcxI0Zq
ZCo8VCMKenlCb2pYTXxsbyY5OVZ6dWctZjZsJitJdkJYUl5mam5AbU85SnNlYzl5T1I2fFl6Ty0h
XiY1Rk8kbG0oK2pQKk9iCnp6a3hzQTJSNUo/PXxFLTFCcVctI2hCdmo9bjhKTUlJY0FfdUw3bWZ8
PnZ1TihjVmgjITM/PGd6Qn0jbmI/O1hYRgp6bFgwUl55ZzF8TlRPNjRTYjk0YGdzVzwxcGNeeFIp
PXd0MUR0bGIxbmo1b3s4dmE1U215SGpuSkoqKE9BPkB0ckEKenpRcHs8X29HNFJhQSMoTV9YbXVs
OUVPOUNoclFtITtCJW5RcTRmaC1nWTlBVzBHR1FVeVpVVEYoeUxsUz5aK0A8CnpUY3cpNF47JiZO
Y2s2cldkIzhDLXN9O0RiJmJEUygtMEpLcVUrJnJ+Xj9taEAtOTwwV21pZUZGcjU5X0olKWUjfAp6
SWhBdituPGJ0OXZ8Y2lHNnkhYHN1Uz9QP0YzSGxkOGtaJGBAUVprJU1kQXdvSDxgPSlYSG1kJmA3
UytecCN+YTEKenhIbFFFPF9hMFVuNW9vP3gtRFZNZVVjO3s4QCFGTjYxb3ptLS0qIT8hVnBSMygl
PigjYGBGY0YtK2JeSG85V099Cnp5Uk48PEZZPmx0a2FidEwzdiFXTGMwO3l4eVc1YmJ4en1CbHlM
USlJbUc5KVAtZ1l9KCYkY0FDI3VZYENTTjhqQQp6KjM0P2dueFA/QXtyeE1sc3dqTno3Ul4waEpi
JjszaGgybCFoX050fDA5cVc2YUdFLSN4eVkpRlJoIW9FdWFpTE4KejFQPF5BNWhhMn1JcjFHcF5t
fEFeYjM8SHFnMk5yZjZ7Tl81PnRYdn54Q0J2ekA0QSVUNVpDNF5WQFJ3aXI2JGU2CnpeLWw3S0g3
YVokYz5lM3l1VmRecl83P2tWQFdPKDtvNGVncnpKT0Q5MyV0Um54ISFJOzNKT3ZrP0JGZjBPNWc7
eQp6WWVPaThXJExZaFp8RW5yK1BrUXtBYWBlMXI0RzE7ZSR1amM1WGtJP1JJXkVEXmxvY0cweUJC
YjROMCNUcV8jYVcKemtsMWwkYzRkfGpqMH19QXBWZzJ3VGRNO0J8SERrQlVkYHAzcFVDRVVIdmRP
fEVWNVVwaT42aHA+RSk3PSVqJnNlCnpGX1dvUlllcUoyYV8rUWIqKGhlcmlkRDwlPCRPV1NuXkw3
WF96JHFLI3VaaTk2aUhXZ056bntJM2R4WD1CNFQ3Kwp6SDYlcWZSRH5ORkFRYGQ8aUNaJkVkNXY9
fFVvd3FLKjVLVThSKmNgMEw+RTw4NzBDY1BTPHhnfTF+IVNTMD1GI2IKejhxSzFzdlpUbz5pNnRK
KV8ofj85UUpnVD4rUyRyUWs7cDx2TDFsNjBPZT9RdVJHQTg5ZVFaYXorMDU9M3REN2BICnpNbms/
ZXYkSj9hKS1fY1lhPnBmMURhKlI5JWQpMHZmVlErS3ZYLV95cjAyPytPZ1gyZ2BLdVR3Zm0jeDRT
PUVMSgp6YldPJnh1aUspTldsJXxmM1NCKFFJX3d9QFdrO2J5SjFZeSk/JkorN24mUU10Uj1MKVk0
c3B4dG1mUC1yZEM1YjkKeiNAMHpYZEJAWWNaTDN7d1REKnM/bGhAVHVSYD5PNk1xUVVSUD1LbThg
JDVxNntlWkkjMihqbitLQFpsJVUhISkxCnpkZVJWd2RKWkQwMyh6eGtvV09BZ1UtRz5CMGA1ZU5Y
K3NASXg/JiRZIU9wUmRMdERVaCVwbHFBNHlkNUNOaWJPZAp6NCg/ZmtjKSo9OTdUM20jN05wTH5E
aSNEKndyWEpJPylFQnNkekJNS29KRztRbFZLUTY+Vj1HXldlV09SMW8lVVUKemZXYkV8RThfR3RX
ZTdheHE8YiswekJYKGUwPSh9eTR6UCF6ITFHVihCPTVlUExWUyFNPj1PMVcjWWxQb21LN3VXCnpy
PzNud3VyfUx8SnJ2cnVMa2NLPCQ9RGJZYWpgRzdRUHdSaGhVIW5LSyhqb1MmeVNWT19uVlZoa0FG
UDRjM2dESgp6M2g9UXU8bTE/ZWwtVSVVaGk4SCVmaFI/Qmk3YDQ9aWA8TVpBa1A5e2NSWWZTdyRL
bHJiTm0zamliTX0qXmI1a2sKejhUfEpTPWZlJTg3a2xYQUlHQ0ZEYmVzTEUkOXRNdTlva3dRPT8t
b1MxOzFyQlZLQmxHOVVuI2txNUpATnRDbzhzCnp5cllQQFBuaDlIRmJCRktXSGFuOyZeZGIwRSot
UWI0MlBeQTxvbE1yPUZPWWU/WVpmNFdxUXNZTChiY0dvTChxUgp6UG1PMEtNTnVUXlVnJUB6bU9X
VWRGPmwtUmpTQShaaDB9TW1lSnhrWE5+IWBpZCRUc0VEJmhhViF1I041cmpxXkIKekV3XmohWWo5
Mkh1VU9USTJrd3VlYkktJV5hb21TYUU9I1hRKFBpbnhpPVJHI0o+Y3hNI0NPRDQtbSYlMFk9UEo5
CnoxLXtCezRtclI3ZnIrWnNhb2YrSTxMNTMlKFd9eigkJW90bnBNTFFLSGMpMFojKHAzMyo0Y1VY
ZCpITU5VKjJ+bwp6aE9XJUkzJXNRamQ0YnBKYUtpOD1GK3kxO1pMLUswV1lSbjYzTSpQKU13Yk9O
aHp7c0YmMH1NWVdAKjtkdEZXbV8KekJrWHYwMG9YU09IemV4NGk1JXslc31GfTBBd0JyMmhWcENC
encjekA1KztxSzt1UCF6dGIrekV3TH5VQGpFfF5PCnpWRWghYFJDQnFVVyl1cn4/Tmx6QyVgSXY5
TGViRGdJaCZQP08hRyhFdEEwR3hBKmNiQjJBdChocn5xM2chYF8wdAp6UXo+fiVMXjh9XlRxbXF+
US1SZm9GJEl5NmpWVnhSa1dNdFRRYHp5IWlFTlhiK2lGSjkwdElIZ0hDbl89RVV9WCgKeip7YHk8
KiUjUHZ2TTtlT3YjKkdnLSNsVmgrajdMeGE8eyQ9e3xSU0lGLWdvNmJaWHRZVjFlfEVsZzRZJCp4
dEEwCnpqSFEtNythZUVkSUd6cSFnOyY/TEVuUD1hWjMrU2BveXpiMWMhI241UTIqYn5kR0pQMTQ/
MnokIUw8Szh6Pm1Qcgp6MTtIPWlfYHJJKXMhNjlNaDFAQ2BacT40K3NrI2pKUEVwcTJXUmI1V3dQ
ZzQ7PGx+cz8+Rm1eMEJmQVZJM1FZPksKeik4QHApcjBNWD9fUFE8aiRyWFpQZFZseW9ecihJMldC
Z0o0UDRteTV1XnoxZmBhOGcrTGolWnY1QXZAZlZxdypDCnoqRGcxNEc2LWFZVVQrWF9Dayl9O0FZ
JCRIO0tpUm4+NlpvPCQjPSZDZjIjKjVnUDY1VlZffXt8Mil4YmcrUmR1bgp6TVIhQyF7ZWpQOyg4
IVpiJV5QVlI0OGtEdmQyYkxQZyorSmFjeGtrcWBkI0kkeDBqflBBVVZVaTN5OEFEVT9wNDMKeld4
RW44cyQ+O35YJXNJKGwoKTY2WH5oSHUhWjc7V2ZpdVVGIWtgfXRHUXZSKlFNJmsldDJjPCFRZiR8
LTJaPTFuCnp0aWxlbFE7O0RUV3dKdzRoKzFPZj84WXtUK19xdTcwPnoydzB+KWNqRy17TntXYzR1
eGBIJXM7JHwkaHJXP0lGZgp6VHtIfjVpbWpQQllrTilTO2JVYGkjfiR2YUlrd1J1ND5hJjgpTE9n
QSRSViExcXZIdD05aihJeCsoIWZuVStBe3kKemNEPVQoZCk7MGJga19jWlA2YGtgSTE9PW5mY15P
Z3tzcjhIK2AqMnMyalNCKVA3Vyo8UG12b2Z5SW4yNzV7VHVLCnoxd2VGMDRqUDQ0RmZPfDY3RyZM
Q21BZmk1NGUxQmxaSHVqMkxoUnErWjBeYGZxcD9CQGpgUFJPdkdLYDVWUkMlVAp6Ryl0elk7a0NX
eVB3SklzVj1Tezx1Wj5MPHh4RzZ4KUBXQWgjZmg8K3sjQSNoYmdnIXJob2ZpLXtvdmEtIzwpMkwK
emNTZ31ZSlVXdmMhMlU/d0FHYGdkdkFwPTsqKkNFX15LNn1jRjVhMk0lI3JFVHVWbj8/Zmdxd3lf
S0lSc1l6dXdgCno/OX1GVnk0V0s4Jl4wbD82YS10TVhSQHokMlNZaD9rMDBKJnVrU3k2K30odFIo
TWxTJXtKSyNybD88YT9ybDcxYAp6SGpHbEtYeWpuYEdudHhJJnVSSHdVTUQrTTlCPGNaP2VRWWFu
eGRtcCt3OE51d3JrSUF3dGReNFVBMWh6Uj9DPzcKeiptJUNgJmRwb2F7RzQwT2tCYH1BcmRGJEd4
bkY1NVBFOVNnRHJ4USQrb3EmWXtze15rVmFgZF8hTFU7fXMxLXtVCnopMngoPTJ3aGNHKHNHNEBQ
THZRdWRaQ2NoQnZnO3xgcDBaQnRFJStNN2ZNRHFZZ0l+bXJic2JiRns3NiVSPD4pRAp6M1Y5WCR7
dmBBSFRrc19mbVNebHY/JUFIKW1jNlFIeDRVbW9lUkFxUnVwUyZadjIqSD9EUnxUM3hgaFArIUBW
Q0sKem9ORlpYO0hXT3ohPEpIUTFaQzg9RSRFKnp5KHFCciMzZjtxVHpIRDwrQTJYUl4jaWcyaS1i
JnRWTmN9VHIpJl5HCnpfWDQ4KE01S05ZSTIyaDFjdFV6UExDflctZkY1SGswIWB4MWw8dURkUEJ7
TGs3ZG5leWd9I3NEM3A8VzJzTWlGeQp6V2Zpd0JVMTVpSG57ZnhUa1NeWitgMDhVXkllZDZKe1ct
cUdlQ1gpY09NfTtndj1YaGY2JFJMbjJ6biNTZlAyUUcKemd+ZD97U2xrcn4xZ2VDR0F9bzNLJFJt
IyYyfUFNVGtwdmBzeypneio1USVVPjJTdVAmOzZsVmMjSEhVSDdrQGNICnopPWhDP0daSjBCMDs7
PyZGcyV3VEVDT3MmJlp4MEgkTz5zQzUqP3dCRUdSZjkrQSUqPm8/Slk8YkxaajMkQDB8dgp6aj5y
a3loanh2blQ2MWpJcHw8MFBQaUo+Nz93Xk0wbjN7cnluJT0qLUd5OFB0bS02JWI0ITA+NXBxUWU0
Yzs5QFUKenVFMjRSbWU1MWBWM3BrbXskdHk4V2pQNyVRK25EbTFeQTx0LW5BN3YtSDtffTEzb2xv
c2E7NigrZkUqOHdHTiVVCnpFelAke1UzOUcmaFR9YH5PO2VmTilvbkRveUN4TzBJbG5ae2B8MHgy
ZEB3aFBtZUJNNHF0YmpXU31LM2hFWjZoUgp6RT01aDxYMS1uKTtzaFF8V0orY1pWIU1Ob0JrLXIl
Z2VqVGdJNGZNPDtBJm1taG1ie3E5cmRqMHdIcHpOYDxZLU0KekVebFpxNXwpJm5GcDdSbykodXJQ
O0U1JFUxK0xWdU4xZWlPMm85bml5cGhxS0d5KV9GUyVSR1BuRmdJdjZWfWZYCnowO0g0cytWUUdq
R2V7RmA0dFQzOHY3O0NFVHshd0Beb285VEcoemJhS3UwZ3xLRVc0YGlkUXVGeE0tcUlNPXZtNAp6
I0QjcyNRR3E8fFZuPVhlZXY7amY5cX13THpUT2hNOyZuKVFiZWJMRj1WWCZRcS1Xd2oqNSs9Sjlm
b3N+Xyh2Y1YKelViaTJ3VHheeCZgQEE+WURDbT0oKmdSMXFWSGREPTM0TUcmeXN8IWoqRT44MnFJ
NmR5eEBYd2pMI01aUUZFI1pFCnpmcSkyRF9ldTFseytzUk56Zjh2KiVLXztOKz9JRGk3KVpsWGEx
VGFAak1OOEt7R2c0UCYlPW58ej5sQn1hUmR9Qwp6NH1DQ1ErXz45cG56aTh6RTs1Z0cqYDMoMjw2
XmhrPGVRUCkoPTc/OVVuO3ZhNj10IU1Ae1FWczJpYVhCND51Q0AKel9YNk1QJEJeUigmVU5ad0Jj
UHsyRyZtJXJFMCltbG9kN3ZUaEU1Tl8pKjdyWT9UPlpvVGg8a1NPUElqQWdvaTBzCnpsMlZMWnd3
dzRJKChIMSNpQkJVPG9xLSUhaDRnSjBnVX4xJCsmMmIyZ0ErSzJqNk0rezlgNXd9UTNSc3tLNDtS
Iwp6KWtPQXxhaWhrRG14Pil5RTN3OCpMVjBwREpsKngrej4pNnNFYmdSUXVGeyZHJUhed2hVQkBk
b0hCQlpTSEQpUTcKemtzZS1PS2RyZms/JTQoVWN0a3BwTSh5MyZHYVp8JCtkSn1NSTFpbH5gTW0p
OUF+VT5zNUJBb0VYN0hmUFcxQEVSCnphX1Y4YVptS1NFXjs+TlpPS3R2YG87OCRPZHZVeE1qVzQh
cW5VWT1qeWt9TW14PjJaXy1vNXdvSE0zU1FHS0hHPwp6bz43SXJMIUFhYjRKYkQhP2FYSj1UZmgq
dUlFNnV6dSZsNkM1ayppTyQwMndNRiRncUQmK2o3PEFCMnRySzB0UmMKek0zQWd1QyE7VF94WUxj
YmRVQ3pIODdKSnFJVFJsY3syaEFeSGskfGM/Q0BuaHFyLTJobnIwUUEzPGAxX25lZ2FKCnpXNXU7
P2NjcFJWaWN4P3xxblZgSU9idzF0IU1ITEFlVWkyMFk9NFI8bWBReEBwXnc/fE1qWHJRYHstQGJ3
P21IfQp6UiYkMnZkcDF8MHYjI1dEU0o1YUk4PFhRJXNffX54dHktLSRRS1dvV2Arb1dqSzB7djZj
UVkxek18Z31AQ1gqKiEKem96S0tJSG8xVXlLOTc4fUB8TjlYMmd+UGQ0S0YkP2U2Tkw3WF92KWND
JCpeJjRpaXMkaUg4JVVaP3VFM3BJK2FJCnpFZChhU011WT1DJlVMVXJ8TSN+ZEJJail6dTRzSzc9
eHtGWjJ5VGlHcFR4cWdfO18kVmdvQSlFWnUlQWBea1c1SQp6O2FrQXAjdGs1U2xQPGQhJSNsbHA2
bTdIMnA9S2V6NWExcEBZKCg0LUpUSm5wN2w1Xio0SG96VDUxZTN0Mzd6MEoKeiZrSD4tQU17RFIx
XnU4OGBpbUB0WDcyRi0od1RudXZ8JFpuSi1qPjcjRF9vdzFjTmokPGBNfTY0MEY8SFgrN29DCnpI
a3dGPmBhKW1EOFE+QGBpaDJ+fEE0clgjSVBXRTtHeX1RZDBVens2YDBva3E2biN8SVVIe0Zpe3lT
P3wjOVA/KQp6P0BMJWErTmJldEArV0VjK192Nzd5PjdHV2prdClEeEUkNE8xWkU8IzltKWslcjlF
PHU+WlooPE10SjxubUNgIzcKemsweGo5MUxwakR0dlF5cld8ayk+bXVEPjhidUZGNngzNkp7Qj82
bH5aWklFSXZiaHtTdzwpVWo3NG5xR2I0cWpHCnpiTm1nfkE0S3wmKT9BKE41SSk1KTRDU2NAd0gl
X2hHKTU5cDg8M3BVZkpqenl4dlg7Y0Q1bGcwUS18TG5pdWoldQp6ZG1aRz4kSHhRPGl1a0RHIz9I
bHY4ek9XPUBfbnMmb3pIOHFwSm1RVUMxLTRYJXQxeVVkYW4xMDROVGFGYDRUUSUKek5IO1RtR01a
I0NnQnlRbWdHfDc+O3hrKjFBe1JQbWsqMkBmX35AZz4ra2UyYTUtSiRgaT93Z3dwNV99QDtYUUQ4
CnpTTkp+fjdCYERBXiMzUiVtfXVYU2FRe1g5TTteTCRBM29HYkx5Pz4kUHM/ZShAMHp4MmAlKEVk
QnMmPSZCelpjWAp6KzkjNV9DJERLTXBpQys0bzh+a29nXl9QdU1MOXQ3bE5Aenk0YXE/JkF5R0wq
QClPdVc2fih0VC0wbUc9VSopcy0KenViJEAtQSU5SyFvX3hGZjlweHZLUGJ0NXZ7RWQxPGVNfTl0
bS1KQm83NSY+ciErNjheVnJJb3VPdmspbnpHVkp9CnpgUkM/O1deZDFhSj1lJnM8KVUwYWVeMzdQ
e0k/M04hb2tBRjNPXzg0N2U3P0lRMmMhSGVAYlRRam5hRSFyd18xaQp6TFp7Rn1xK0koSCpsI0Uy
IU84bmVWMlR5Kk4/O2xBJklERWZlPFhvYmVCJnIydW0oLUZvV0xmbUBMQXxDdTRHVXsKeklBYmAq
OE4pSG83PjtxcWFFdnBDSEg8eHdqRSErI1ZvJE1XKn57IUFAU2tUN0FVKTRzSzszaHdiI09uaCEx
bDUmCnplSih4cT84X0k9cDVJIUBQR2pIYD59U3xCPjxrY1c4R3VFZjJRb3JAMX0qMj1JVXMldlEj
dUZ+JlNJaHlOSG0+VApKNn1AbHh7MnZ1RHFfek02CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS53b2ZmIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRz
L3RpbnltY2Uud29mZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDFhZTM5NmE4ODIzOTI3ODY1M2NmNjNhYzM2MzBi
NmI4MzYwMTAyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3NjY0CnpjbWReRWVSTmJzbWFoJmVA
JnMmeV5xVXo1b2s/Nik5YV98Y01pKzRRcGZFdmdNVT0oPjw1N0ArSzxBNjNuLUcmQQp6PkYjYHg4
fWlrVWs4fXR6MFpCKilSTHNGb0tuRU9rODs9fmVrN3dQQzQoamUlKzFBelpCdiRXdnlAJm5QPnV2
fXQKemp5d0xqdWU8OHF4Xj9VSz5mXyM5eDg1c3pBU2RTbWh2TmFwdUtrTFFXNE55RVY8dmgzP2xt
dGJDajtESiN3UEVVCno+Q1AjODkoLVcmRSFtOXl2SVlEVkdBWS02NklvVFR2S1lMdFA8Rl80dylw
SXNDc3ZrJUgpVEdgTitQQU5VQTswNwp6eSEla1RPe1ZrRGU9JjB7bkJlKFBvK3tJcmFMVk1oMStH
b3ReYFpRNEdDNTdEZT1iPEwzMyU1dXFDRDB9dmxnKyEKemw/QUs4KC08PyZsRjl6N0JXSF8/Tj9q
UCFYfjwrNFgkKSN1WUFRM0NPcDBxPVZSXngtKXkkTHYtdDZjI0RiWG9vCnpxUTZNfSlpXmVKQHAr
PTtlTGBBPUdyQiRNO0A2Xz54dk9PVVVsV25ERTA5aDBVKElJQV82b2EtTz1PZVUmKTVfXgp6PmhJ
WSFiXz10eVM/bkwjSmEjdmBwRlBCSyomfVF2VGY+fkpuN1BATD4/ITdCVFVpdEh2dDZ1e157YCR4
ekBCR0UKeipzSlZ5XzlwdSRfOHRxZjU3PFpTUX0hQUFmXz0+ZGk9byRKUDIpfUpDZWAjeSkyfGMj
UHUkJE15MGhIYng0TTZLCno+I2F0WEM4PXpnJjUpVCpXOzExV282SyZQKiswbF5tZHgmeSo8Q1c1
QyRzcjdgPD17a2tZITF7RVF5eVRAdjxhZAp6bWMrfUZjdiV1Sk9YNmlveWV4XkFDR29OKFVZNWtt
bDZZQVhGSDdQWG95P1lhKiVCe1g7JD0mYFk+QWdHQHY8ZGUKencjM1ZwUH12ZUhUUzg/XnNCOCg5
RXVtKH11RmE1OEdiR2R1MntsN1AmNnZxcGlmSnBtb3owU35sZ2lTZC1kQ34qCnoqZTlrISkzY19w
UWY4IVY3fUpAMEpITVZFOTZNI35uejR0fHUxe04td296JWw7O2shMiNAIypjPG9HNHl5JVlYIQp6
IVolbDVkKndANHs/VitNYklkO1RDcyNHNHI9PjVNSUFQKmxTNUxVd2VmN3whUyhBUTBzbjMjU2RE
UE53MzlHWnoKenU9PH1yK3cke1VWd3lTcipFTXQwNXB9NkMyVEBGbVlEN19vSjtaZn5UQDRaRzdD
VnUhYU4mcXEpUithOG1MUndgCnpGJGxLcElvZS1MYGhSbkNiWkluUW8laGVZR0xYTl5PXldVIz94
eWxgYXdgO0AmJmwwYy1jM3EwbTNUTEdjMmMpTwp6O3Z9YzsmSGFARCNwUERGWkVmN1RaTDJiaT10
STczPiRWMmFYWGYpZ2Bxd0plO1VYbzVtVVVGdU93OV5LZiFCPFMKejZvSUV+cWI2ITxQKU1JN0NK
fUZ9citWNm8obilrbDZaZmUhR3s/e0QweVhXdmNJOXx6QGQ8a191V0dBbXQhITRqCnpMdnpTR2hn
YTVCKWx+VHVgfC10I2tLNEhxZ31PPipqK2Y+UGQza2VYRH08Rj9gLSNQJjt+V3EqZmpZJU1YTmRl
bQp6SmtaP1UrVE55d2EhO0pkNGU+UzxuZ2h5XnBYKVppWVBafFQ5LTxIfjNXNE5pT3NPaG8pKmpQ
e2xUI0k4KDBVbE8KelpXJmImd295ezN4ek9aTmZYTCtsdFVuUyFJNCp+dkpBTmJ0MjYzVHhLWlo2
KDl+MlcrY1RlSFlCMnVjejg1OTwxCnpSV0x7KVhIZH17QCtUYko9X0dzNXNSKWExYVhQRHI3ZzZD
O1pyOV9oWThEPGA3cFV5PWI8PSs4K3U3NXp8Q3RAbgp6KSplcz4xX3N2aStKWVRWP0JDR2k+VShO
R2J5SFZjQWFMK3QmRClRXnB5KkY4UTBxSzNVWjJuRl8xMWRveW1qNk4KekZMYE44cXUxfSU4biU8
NCs4VldIZjN3ISZfcVZtUmBDR01TI293ZkQxRHwjQF8mdDhfd3JhQHh3dERLbCVEP2AqCnpUMCYp
QXcyJF82YnM/aiFHQWZ+eHZhJTg9OyNfQF8+aCozaDtKdUNCVz4yJVgjcTBPQSklZmVRZGpEMXBm
Y3xhVQp6e2VIaTtxWSklJlRtQUtsUl9DdjJeWjkpKGhKMiVrZUJeRFlfSWVhXilGIzRFVH4zOz4l
PiEjbkI/QHh0dFpGWU8KeiNaSjdPczthMTVBdHgkMG4pJTJCbEBEfEJ3RH5talctNV9ZeEZgfUtw
Oz9MUkVANHMweFJlbDdFPjRsdEU+VyNrCnptNFg3UT5DflpgQkNQKzFPMj59VCh4cDd+ayFsNXla
aUFyQE4odFM7JXxTUXs7Z0hlfU5OZDRTZyspLTxCSXpyMQp6aSp5P0BQdHJ4aSVjIUQpJUZ4WExQ
R3VieFVGaGFiI0ppfVlnU3l9aTdLUEFlKGYzeE5MMDNnYjhLJlY2ZFJXIWQKemlET2FQTkYmWVB3
akQ1RlVAMCpOPG5qOGROJT15IVJIcmQ3aEVRN0ByWCl4bFloY0x1ZTMoKTNrblp7c1AtZndQCno7
VTxsaExOTTFLRG5mO2FSWFd0eWNaZCNBVW0+bGZ3U3xTcXNJWlI/VmQjIyh1QGM8flVGWmVKcUYk
ejhqaXtKLQp6Q3M3MGAkYikpXk4rcDxCcjxFdWlJemFwRVVgTDRWIVpebDUpQ1BWcWdlM1hOYD9z
OWNyTEpQTStaYVhiQEZ5MyYKemZ6JnFQNUVrb0NoSnVkPnFuezRsNjUoYjZlTio0Mlc2UzcleF97
fWlnfTV5e083QUVROWhqMnpGVGFFJEREYnJfCnpYd3tQaTF2TkZiX19hMitRWSUoX2twOHhZPUlC
SkhkaCU7Y1dhKmB+U2luaXJOeSM3Uz4wRVRSOW5rQ2E0RS1qPgp6MzxIVGAoQ05aKFdVdmh9aVIr
fjtueDF1WHMtN1drSXcweXFtayk5X09wZkxXRy17ZTZ2UEN4Nnc4bnIoXkp0WH4KejkqPzREPilH
N25Ye2dqWiRfTVJnUShhPiUpZUBZSyYhXjB1JjEtN2whPVVFZ1c/IXFhezU0K0ZSdEhaKUBMI1Ix
CnolQWZ3aztsWXxUWU4ze2Y9NmJrQlViVy1ON1Q2cT5gNj89OGB9fS1iLWstMCR3dyFsVmM2cXg5
S1l0KH5UbFYlZwp6eTtPUVlTLStsKFgwYjtGYzE1N2ZrQ3MmQ3QqbiU3aTtDKFctQ0gxMD56Zjwh
Mi0yRzFHRypJVmN1a2BsYiF7fmcKenlWY2loYlB9R29NeikwYXRAbUlVd1QqUjZAKEp4KmNHdHFA
O2l4LTBXYyZWcGRNJj5uUXt4Zld7cj8ock91MVhOCnpNIUxIclJ7cHhVTEpoKiUhZil2Z3N+UnpF
bVBkY0J8My1+aS1FTTF5LT9sTCswSGJndkNDbX17Vj89R3hFQnhUOQp6cW5lQj0jOShaSnMkK3ZT
KztIPjs+QWhuJk5PUUQ3KzlwamtZTGxUeilGcT1qMlIhdn42dUNhayhRMlBjYD01UyMKektlcFBa
SCZRVmJaYF9FQ0hhPD1KbTVBPEJWLXxgQzRjTkJPdDRUPFUwY253dDVxKCZOS1NBZ05XNWY8e25T
dlA5CnpINUZTOWlMa01eZ241SzZCWUZ2bDRxSnZ0NVFheF4wYlZ9R2p2LXNicHhSMDgjPlF5MWYo
Mkk+cU0rUXFMTkhpdgp6OWEweGx0fihFeEpDXyNJO19scVRkNTgwa3lIQyZ3SV5LTzRTTkN5e0Mp
fiV1S0FoWFY4MUNkJT8zLUw8bDFTNmoKek5ZQkp5MlcxZVhyLT9MQGIoc1BiMipiUkdHNEp1MjU1
WDc5QVYmdHo3Q0UtfmFfRSoyQ0B7QEppKDFyN25tTG0pCnpEZjhvKkJRISFFZX5mSG89RW5nMGl+
ZnBRVClkYG9ITGEjS2YjVXRlYHp4UUw9anIqdGJOZ3tVN1hWNG1SZjFnewp6U09ieU9tMX5OTjYr
SVdUOzZCMmFtI2tWPHZScGFoPTNPcmc0N3x7I2h+VWxZayMxaHsrTnV8cD9eRTA+X3pQdE4Kej4k
X0dkYG9ibmBtU3A4cnlSRWh2a3V3ZTF5WX1BczdKVnhGMmsoMHctTXM5PC1AZl9WJnoyMy1GbnhD
UCU/fT5ACno7TzMqKGs+YSFgcmtsI0VzPiVzNU5qcjU/WE0xfW05UGFKOXMrTHU2XnR4LV53WFMq
PjtuKEREYWtwJnJtdT03UQp6REN7WUhYNzRrN0peZFhXe0ByYnpFIUNBWm5gbzBsNDxBfGFJPXhP
dWp2KDdwdiFePUhTLWFjVTtxOTtKYk00KHcKenh9bmdPVSFmY2s3M3p9U01lUGV8QXVYeX1RZENl
YHlyfjRJMzx2SyQ1WndGaG99PkhUKmQ8cj1qbTx8KHA0fThJCno/SlpFfjU0QHppY3V6cTkzcDZ2
Tl9DPkBtc0x5JjVGO1ctLWx2TkwoQj5wZWhUYj4xWElgdl96az5OVlU5RU1VbQp6cSpCQUw1Mntk
bWl3dVk/UXJuIVdLXlooX09DRDgoJlcpfj4zWlcqT1FVcE8zalZAQWZHX29HblpLRz5OKmdDcX0K
ekVPJnB8RlhKUihNcTdDaHYlQE5RQiNPOVRTUWR0ZkFBdUdBQzM/Kn02fkJwMTs5ezNtejR6Mztf
dlpKWEkoNkA8Cnp7KGZZcWB0JER2MyNUTHQlPkRhPTFVKkZAUlR0M28+Qz98R3hTK2k2KFliVHly
b1UoQ3dybX19Xjc3M2NmMkZrOwp6TSl4ZjtedVFFM2hgITxQX1AlX0VLQlJCJWAxM1RITXQ5cyE4
OHF3VmBSXjdmbHB6SSNDMXtydSp9PG5EeWwwNWMKeiRzSVRDT1R6fFhxQm1leXJzPzwwblo4Yjsz
ZDZoKjxIMlN4KnNpcVZxO1MlOXI0PlU2JEpCZ1BBNVlVaENvdnhYCnomcCRWQV4hWVN8Tzg4SGto
TVFzK3JffUdOZCYyOSQkeX5rPzFEdmclcHx8PmEyZFpaLXhNdyFhclVtYS1mODR3Tgp6dC0+P1hh
YWQlV3NtYUJZK0JXUXpQV2VLZHVpSDQ0d156WmlBfHhqc2FgMW58QG5Gfi1xRyF+ezQrblRtU1Qk
eksKekNabHZUNmpQKT4tJnxlMm5LbzFQY0deWHx3ckB2OStwQjNhUDh5b3JLeSpqVz5DRFV9WjtY
dU9vYVh3bjlDYWpmCnokJiQ+R29FI2EpcChDTz5IZCNHPThnanJzZUw4ZEdqV0BXP21aK0pUcipu
Kl9JWm8ke2pCcy1aQG94d3c1PH58Ygp6JHYoazNDbDQmVDEycXYmayVaU3FMPi1tMzYxMHd6ODlp
ODNWMDBMJlp1YEFUdU89YkUpbUBffEt2dllAYU1WZjcKemF6Ynp9OG51LX5GNEZNODRwcTw3VTMj
alJJKFg+Sm9ucFF+bHF5YHBBPHNJWTJ6blBufDhjallZKD58X1VgV21uCnpvQilQfEleN2JyJG12
SGIyaSFMfVBEbis5TmxNcylraGg+VSlFYjlkKztJVDJDYVcoQj5iOGlBIT4tWlpTV2E+eAp6Vnor
JSlARnlXK2NPOHRzKj5UN1hLSSpgY1RiPjFEbmo4XlVBTDw2NTt1YGhYTklkdn10XkZYPTN0KyNG
Xzx7VncKeilqQHZqJHpoTlZ0YEVtRilobE8qeXQ8PTt5YS1JZkFaP2hrTDg8MkhecmN+e2RpbzdG
eiskbj5APmw0XiZWaHBtCnoyUmRKKlNMbGBVN3VPQX1LbG9WWkJsSE04Uj0kNFNoTFJfcEhFV2c2
TktiYD1yd1lyNSM1O3VQdnlUTGFOeXVaQgp6LThnTzlMUmQzQTxzMEVxX2pLPipxa2NOYCg4PjhZ
SW9kRXtMekI8WSQmKy0zVU0/QTIpMSZDT2lSO3k0I0N4ZzcKeklJT3R9QG9yK052QVJSQnFkQWZx
QkhsLVBqcTF8RUxZT012bUVuT3tibG4haVIqc1hmJVVFaytpXl5BSkt8RnNMCno1fiRKaElMKD03
cEZ1TmRVV2tUWnIrRW8obllMK25XI15Pb0pUbDFJciotYiQ5bmtnfD1pb2Y5WVk1NGJNXjFSeQp6
NnRPYEt4O29gQ2EmN3Jxcj5ucX5fdGZMYElPWGp1PXlDUng8RVV2ST5lcyRsYyR8KllpI1RjMHB+
dzFpRk9pQF8Kem9yaSl3MllMP2c5SGM9eXtMfSVMNXtGY3Z5SyhWY2Rkd0s0Z2hgMFJRa3NtZCN0
QnQxKUlIJiVGdl4lNXN4ZS1KCno1LXVKO2pMfHpza0c+PVFuTSpELUcpJUB9ZT8/ZTI2PkowWHda
KEhSS2ZiOUxqQGV8SzN6WlA1bUA2Q25qfT5jUgp6am1TbGJTcXZZREdiOSNyNUhVMThzdmNYNF4q
eDNsODxGRCRkWTM5fWFqUz1DSyZNNVJNOyRTRTNlYkBWJUMxbmQKelQ1ZnJHTkQlQXBCeU0qbURa
QnpwQEdlc0okb0tHcU5naDBfRWxGUSZeTD4+NExZcDZeO0N9TnxGOyQtYGU4T2lCCno+R1NwWmJC
NTYySlZnQ145I3NWT2BPc1VxMGJZZElgKzRkWEYwNT0mNH50c2p4cURWMHI5YWE5WkA+TE15LSNt
MQp6cWA5PUVWTX4zcl40Zkxramh9RVcoNlNydV80TzQ7OTtTekIjUl9DYndBTSt4VExQTiQkJkd3
UlJhZTgjVH1vM0UKei0/ZykkdDc/YSQtfUFuQGoqNUVlQVJYLU9NTWt8dncyc3lsNnxJdlJxUVU4
cXlATlZ9bV5qXjFpV3dGMUpyQFlMCno5X255Kno8cUtqb2E5ZT80O0JYQXU9VzQrN0EkSChea2dW
UHtKcXk4Q1EtOD55ckshPypjaU82WigkdFlTbmV+ZQp6IThldSNpVGVuZmpMIypQVVooVSolWiR4
cz9DZWFfKzRLMEImS2g1UU9ydTBIM18xbGx6NSsxfGEjP0deJEFQKUgKelByeFVmNndvRz9hclZa
dUd0ZDllYFNhajFsLVN2Nk0jKiZrKH5RKU5GXlA2WXJJREdLMzk/cmlYaDN7dmlFcTxtCnpTS1Rx
ZiM+Kz1CX1RIbFI/P35SeWV8NyRCaVYxeV8tQClTNUBgRHRVZVp+aDFoV2hnPHo/MVQkRV9+MHJj
KiNvSAp6NmUlTmRQbk1KUytyQ3h6Wjg9JT9CSzx0a2Vuc00qWSVsQWxCelNBVFJjQSg3cmxmNTBG
NTR0Jit8UGY3QChRSDYKemk5Mnt+NW1FK0hJKzg0Skw3SlBPR2Y+VSYhQXhGZWJ8XjZpQ2VYJFZB
eHtDbEFpKkM0ZFRONEIxLSZGZWI5e2deCnpDK007Rz0jIW5HJEZVcFBEIUZwMFNBWmlpPDgmTXxQ
UkI5aGJSMDhJJDEmc2RTaFNzJFhkQjBMdjMwREZtOXFsaQp6dVZ4UDttOVNGcWlvbmZhUz9wJFpF
NHhHe2BQdU9qQ2NZMUBXPjRVfFVfUVBQbVIjQlpnSSowVjNBXz9EdDYzZ14KWkFJQnB6KmdiZT81
eHk9SzhJTG5ZaDN4WHp7e2xsNz8/TTBvCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9z
a2lucy9saWdodGdyYXkvaW1nL2FuY2hvci5naWYgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvaW1nL2FuY2hvci5naWYK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjA2MzQ4YzdmNTNkYmExNjlhOWFjYTcyNzlhMmE5NzNmNGIwN2JkYgpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgNTMKemNtWj93YmhFSGJXTV5QIVhrY1VqZzglPmpFQjw1d0c4
cXxrS3p4dTQwfjFlQVYme3k1ZWBsMUtGb2lLTlNPV2t6CkMrWUNHYQoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ltZy9sb2FkZXIuZ2lmIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5
L2ltZy9sb2FkZXIuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2OWU5MzcyMzJiMjRlYTMwZjAxYzY4YmJkMmVi
Yzc5OGRjZWNmY2IKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI2MDgKemNtZFZjZHIodFg5dFpH
Qzl5aUd+PUhfKlEtMCVuKGtXcVAqRCNod3tBUXU4OzElZ2wtSHJmJnsyPzQ4S1g7aEh5CnozWmUq
ekV6NHQzWGRVRnlMYk5QVVlsQWB8Qn1QPU4xZnF0TDE8P2VWOWMhJl44RHdeczRSJCpfYF5SPT9Y
V0Juewp6e3lzRDMleDhZKmAjb185KCNYdiFVJShnbTlzcmg/bWpNOG5wUHdIZUFNZncpQDlPR21Y
PSQ8Qj9GTklQdjlaek4KemFNKX0leTxYcWsrfXojV0p2dXROdSZ+aDQoUDZiKD1qUEBqQXxlNjwx
TGJuTCR6Jm8zcU5iKU1KdzFKQ1gtVFdxCnpOfktiPip9Uzs4NyN8LVc5djwjRzt1bChlJWQzKU4o
XjljJGQyRHp7N30/RXJqTmQ7e0VNS2tDc2syMX5iOUd2Zwp6RG88N0w9M1o1SE5iVmxaVWNtMWVn
I28jQ1pDSlVgM0lZSHdNLT56Q2Q/dVlyRjN2S0ZlTX12P2YrJXM8WWY8WFUKeiZkNjYlSkM3NnhA
OU51OHdSWT17dTxNJFFzNDBfLUp+Nnh9Z2hFbEVQPzF4Rjk5KSRHP1BaaUdTVE11fU5GRC1JCnpk
eSl5b1dTMjVIVCRLPj9FPmx5fDNXMjVyeTkjTk5iVHgtfTBPTjU4ZFRyc15peHtfMU8wV2h+U1ZT
QmxIKUFqbgp6UG5eR2Jqen1QQ3ROQCNrZVImaEsmRGhsLWIka1o4XlMpeCNkaDB7N1g9WCVDQ0pr
N1AxUFNPPlQmUzhJNHsjTGcKemI1IylvPTshWlAqMW5Ne2NJNEAoeDdvMjcqU0EoKU5IbXJuNjdh
TkBQbWl+KGlfU25yallud2gzNmFHJSFAaTBkCnpxYnZmYTQ0Znw/T0c0bnRQfG5iamhFbDxPaX1I
QXFMSGNRPEEtUloyYE95ZWlzRXBrOUFAc1RYSXEkWGYlQzhBeQp6U2s3TTxYMzEqcDVLbiNaIURa
WGJ3O0k1WW5GOCVEUChKNWpMb2lEVEFjKTgoQ00oK29sKmk+MSlZcDZaTkB5ankKenk0PT1RbUx5
JXQ7cHMzUj9+ZjJLZlRUSXwyP3E4ZEZkNl56NUdGK1hhJlkpc2pHKWh4aXQ4PGFOMXI+MHBQY09Q
Cno8SWhlYEVBTElSQG9qZ1Y1VDFDOzNGQXB1b2kpbmombkNHVmQ2dyNRe2hOfUdWMHUhIXpUUkJy
O256NT1UakUxKAp6SH4rSGYlb05pSU5CbE1fJG1FVUYjeW8zbChiM2FjRz9ye2JrK3BqdEJhU3Mo
VVRiZnpOT3c5O0YrLWRNLVUrPkoKeipMV3tTeUdIRCVoVW90VitXJUl9ZkJMQUl4ITh8NyN9JDtj
bEtRK3smRmpEcUdRMlpOeChsWU0zKiV+fUlMbmFvCnpNYGF1aTU1flpGSmw8eDhAQzNaZEVNZW9h
aTMha1J5TVJual5Ra3hOOXk4UEs0VD51XiE1cmRBOTxUfH4kQmErIwp6UFkxIXIkUThYcEAlTmA9
TXNKIVFQMSt9JHhZYmF0SkhCej5RXzdINjhIXzsjI3V7eChZbi12U2ZJUkNiXk5xc2cKekdSUyFF
Z20+aCtvPH1MZVY0JkNMUmVvOUZyRGpEdnN9OD9Kd0MpI1FzfGllPXI/fnhVaCkmKmRgRng+Rkd9
JVgjCnpOZHRESEJLaExQQzB3cG9vRkRBUUtMJSo2VHxVTEgkPXdYIU5oY2FzZ0Q8QjZ7SmkrSEZE
YmFlRSZLZ1MlT0ZwVwp6KlUkM1g7aXY9d21jez8+M2Q7LWQkSTY8QT1keHYwQjJOU0swOTRERSVZ
UyVQZldOcWcyR2V7RWc2TmlgTjJwOWoKelcjYFpSJlZJbyRgZD55UkszeU4rRX5DMTMzNV9pTE90
Kyo5dXZTWmA+KktBfXZtfTA4d1JxPT41bHx0Kk5hJmpSCnotPERTZyNxRjdGRXB3eVNpQyoyfilu
K0R4cjt6TkhYV3R2JGo+QzEmQ2Bua0VrI3NCfEB5eXQtI2ZYbmdQMDRNeQp6bTd1JFElRUpiSHBg
Pn5gNVcmTHtXITZgeSZ9TE1TO2pmVXBnT343VExWTVJaOUlDKUlacDBBJHtgeXAweyZ3Y28KeiMx
bnhAWE1raHFlSyU3P1JFN0pkTHIxXm53RmZhSjBRJkx2P1dOSiU5fVZTSnNOWTIrVVlzMiVFVTBK
fmF5Rlh2CnppKj83S0NYUUhrRClPNiEwUSU0TitIVE9ESHhKe2tRU3VRWCRsLXJTd2t3aCh6TWtk
Znp4eUd3bEB5SEMpQzRwPAp6Jm4yJTgjTT8pUUBtZ0hMMW90OGBTRmRTRWo5eWV8akh5K1U4I0BI
b1VFeEc9QEFWa1JBZV9xWW00RXB6SzZMKiYKemhgKTI2P1YjZjQjX2heUDlHPGhiayNXfUNzM0tZ
T05gZiF+dGdIe18xT15SbihzJmU7aXw+XiU+aDItSDMpJFFQCnpRb3Z1Nko5cUR2c3hxd2VEZE5O
YSFMYj9MNF9VRnt0TFhfbjxjSDRzLXtqZT5ON3IwVV92RjE0WUtjR1ItKkdsfQp6eDNvRyliemZ8
NjVkQnhELTsyWkNwPz9LOytUdVE5b25uSz89PTVoemJrYl5yX2c+ejQjRDhtY3Y4KCtYZG9zekEK
ekN4LXFoZGd4TU5Nb3RqfVNpTF82Vih0TGNzSzcoTShyKCV1PH1RclZmT3Z5SzZfO35OT1RsUEdm
WEBNN1M1WVFGCnomKiQoeWxKTUhKdF5fYVFldXtDNk5hVEUkRzNITk5AX1NuTjhZY2FLbiVgKUZA
fkwxeCthaDctZ0VKUHBjNnclMwp6eVh9citRayQ0UkhaemZIKXtlfkYqcUo8TjhQMERXbTg3bSRn
bHo1eStHLXg/Wj9FNm4xNFFDPUIycmpOOHlGQ3wKekRUWj87Z3lqP1RCJSpVWEFtbnQqLXorMjU+
e2QqTDhhNm40O1U/K3tkZTAtdCltYWwjVFZ4ZSkzRn1eVUJoK3pkClQpNl8qKiNjZ3BfKz9KTDko
ZXczQmxORj51CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkv
aW1nL29iamVjdC5naWYgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvaW1nL29iamVjdC5naWYKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Nj
ZDdmMDIzZmI4MDkwOGNiMzNiYjdkOTYwNDIzNmNkMjFiN2FlNwpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMTUyCnpjbVY7SjBCOFM0TmsldzFWRyNmZzBKOUdPPD5sbytLUjw3OFo/dj91UzY1ZzR7
ciVZMyp4bFhUJUY0PmBAOSsyYgp6X3d3QGNvdD5Ua3xOaz5IR1hNWXBBXjhMVzAwMGpGRUMydWkw
MSpIVTAwMEM8KDgpPXdkIzwmdHlYSU1qSEJWYGQKekJTaXx4c2ozKDtuRDBrUTBhSnE4ZUxIfngw
MlB8dDIhX0omV3FiJTBpbz8jeEQ8dXB4bkBEdXBgN0dlM1hIMEhICkcwMDI4fEsxNEE5CgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvaW1nL3RyYW5zLmdpZiBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5z
L2xpZ2h0Z3JheS9pbWcvdHJhbnMuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4ODQ4NjUxN2ZhOGRhMTNlYmQx
NTBlOGY2NWQ1MDk2YzNlMTBjM2EKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQzCm5jbVo/d2Jo
RUhiV01wN3VuN3t4OWlhJUt4TVN5R181RmFHTnp7S1JqJFkyY3NiKWZfeAoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L3NraW4uaWU3Lm1pbi5jc3MgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdo
dGdyYXkvc2tpbi5pZTcubWluLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uY2QyYmJkZjNmMTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvc2tpbi5pZTcu
bWluLmNzcwpAQCAtMCwwICsxIEBACisubWNlLWNvbnRhaW5lciwubWNlLWNvbnRhaW5lciAqLC5t
Y2Utd2lkZ2V0LC5tY2Utd2lkZ2V0ICosLm1jZS1yZXNldHttYXJnaW46MDtwYWRkaW5nOjA7Ym9y
ZGVyOjA7b3V0bGluZTowO3ZlcnRpY2FsLWFsaWduOnRvcDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50
O3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMzMzM7Zm9udC1mYW1pbHk6IkhlbHZldGljYSBO
ZXVlIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDt0ZXh0LXNoYWRv
dzpub25lO2Zsb2F0Om5vbmU7cG9zaXRpb246c3RhdGljO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87
d2hpdGUtc3BhY2U6bm93cmFwO2N1cnNvcjppbmhlcml0Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1j
b2xvcjp0cmFuc3BhcmVudDtsaW5lLWhlaWdodDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO3Rl
eHQtYWxpZ246bGVmdDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7LXdlYmtpdC1ib3gtc2l6
aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7ZGlyZWN0aW9uOmx0cn0ubWNl
LXdpZGdldCBidXR0b257LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6
aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5tY2UtY29udGFpbmVyICpbdW5z
ZWxlY3RhYmxlXXstbW96LXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25l
Oy1vLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ubWNlLWZhZGV7b3BhY2l0eTow
Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgbGluZWFyO3RyYW5zaXRpb246b3BhY2l0
eSAuMTVzIGxpbmVhcn0ubWNlLWZhZGUubWNlLWlue29wYWNpdHk6MX0ubWNlLXRpbnltY2V7dmlz
aWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmV9Lm1jZS1mdWxsc2Ny
ZWVue2JvcmRlcjowO3BhZGRpbmc6MDttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjEw
MCU7ei1pbmRleDoxMDB9ZGl2Lm1jZS1mdWxsc2NyZWVue3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xl
ZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDphdXRvfS5tY2UtdGlueW1jZXtkaXNwbGF5OmJsb2NrOy13
ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFk
aXVzOjJweH0ubWNlLXdvcmRjb3VudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3Bh
ZGRpbmc6OHB4fWRpdi5tY2UtZWRpdC1hcmVhe2JhY2tncm91bmQ6I0ZGRjtmaWx0ZXI6bm9uZX0u
bWNlLXN0YXR1c2Jhcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLXN0YXR1c2JhciAubWNlLWNvbnRh
aW5lci1ib2R5e3Bvc2l0aW9uOnJlbGF0aXZlfS5tY2UtZnVsbHNjcmVlbiAubWNlLXJlc2l6ZWhh
bmRsZXtkaXNwbGF5Om5vbmV9Lm1jZS1jaGFybWFwe2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0u
bWNlLWNoYXJtYXAgdGR7Y3Vyc29yOmRlZmF1bHQ7Ym9yZGVyOjFweCBzb2xpZCAjOWU5ZTllO3dp
ZHRoOjIwcHg7aGVpZ2h0OjIwcHg7bGluZS1oZWlnaHQ6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjt2
ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzoycHh9Lm1jZS1jaGFybWFwIHRkIGRpdnt0ZXh0
LWFsaWduOmNlbnRlcn0ubWNlLWNoYXJtYXAgdGQ6aG92ZXJ7YmFja2dyb3VuZDojZDlkOWQ5fS5t
Y2UtZ3JpZCB0ZCBkaXZ7Ym9yZGVyOjFweCBzb2xpZCAjZDZkNmQ2O3dpZHRoOjEycHg7aGVpZ2h0
OjEycHg7bWFyZ2luOjJweDtjdXJzb3I6cG9pbnRlcn0ubWNlLWdyaWQgdGQgZGl2OmZvY3Vze2Jv
cmRlci1jb2xvcjojYTFhMWExfS5tY2UtZ3JpZHtib3JkZXItc3BhY2luZzoycHg7Ym9yZGVyLWNv
bGxhcHNlOnNlcGFyYXRlfS5tY2UtZ3JpZCBhe2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjFweCBzb2xp
ZCB0cmFuc3BhcmVudH0ubWNlLWdyaWQgYTpob3ZlciwubWNlLWdyaWQgYTpmb2N1c3tib3JkZXIt
Y29sb3I6I2ExYTFhMX0ubWNlLWdyaWQtYm9yZGVye21hcmdpbjowIDRweCAwIDRweH0ubWNlLWdy
aWQtYm9yZGVyIGF7Ym9yZGVyLWNvbG9yOiNkNmQ2ZDY7d2lkdGg6MTNweDtoZWlnaHQ6MTNweH0u
bWNlLWdyaWQtYm9yZGVyIGE6aG92ZXIsLm1jZS1ncmlkLWJvcmRlciBhLm1jZS1hY3RpdmV7Ym9y
ZGVyLWNvbG9yOiNhMWExYTE7YmFja2dyb3VuZDojYzhkZWY0fS5tY2UtdGV4dC1jZW50ZXJ7dGV4
dC1hbGlnbjpjZW50ZXJ9ZGl2Lm1jZS10aW55bWNlLWlubGluZXt3aWR0aDoxMDAlOy13ZWJraXQt
Ym94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ubWNl
LXRvb2xiYXItZ3Jwe3BhZGRpbmctYm90dG9tOjJweH0ubWNlLXRvb2xiYXItZ3JwIC5tY2UtZmxv
dy1sYXlvdXQtaXRlbXttYXJnaW4tYm90dG9tOjB9Lm1jZS1ydGwgLm1jZS13b3JkY291bnR7bGVm
dDowO3JpZ2h0OmF1dG99Lm1jZS1jb250YWluZXIsLm1jZS1jb250YWluZXItYm9keXtkaXNwbGF5
OmJsb2NrfS5tY2UtYXV0b3Njcm9sbHtvdmVyZmxvdzpoaWRkZW59Lm1jZS1zY3JvbGxiYXJ7cG9z
aXRpb246YWJzb2x1dGU7d2lkdGg6N3B4O2hlaWdodDoxMDAlO3RvcDoycHg7cmlnaHQ6MnB4O29w
YWNpdHk6LjQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO3pvb206MX0ubWNlLXNjcm9sbGJhci1o
e3RvcDphdXRvO3JpZ2h0OmF1dG87bGVmdDoycHg7Ym90dG9tOjJweDt3aWR0aDoxMDAlO2hlaWdo
dDo3cHh9Lm1jZS1zY3JvbGxiYXItdGh1bWJ7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1j
b2xvcjojMDAwO2JvcmRlcjoxcHggc29saWQgIzg4ODtib3JkZXItY29sb3I6cmdiYSg4NSw4NSw4
NSwwLjYpO3dpZHRoOjVweDtoZWlnaHQ6MTAwJTstd2Via2l0LWJvcmRlci1yYWRpdXM6N3B4Oy1t
b3otYm9yZGVyLXJhZGl1czo3cHg7Ym9yZGVyLXJhZGl1czo3cHh9Lm1jZS1zY3JvbGxiYXItaCAu
bWNlLXNjcm9sbGJhci10aHVtYnt3aWR0aDoxMDAlO2hlaWdodDo1cHh9Lm1jZS1zY3JvbGxiYXI6
aG92ZXIsLm1jZS1zY3JvbGxiYXIubWNlLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNBQUE7b3Bh
Y2l0eTouNjtmaWx0ZXI6YWxwaGEob3BhY2l0eT02MCk7em9vbToxOy13ZWJraXQtYm9yZGVyLXJh
ZGl1czo3cHg7LW1vei1ib3JkZXItcmFkaXVzOjdweDtib3JkZXItcmFkaXVzOjdweH0ubWNlLXNj
cm9sbHtwb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLXBhbmVse2JvcmRlcjowIHNvbGlkICM5ZTllOWU7
YmFja2dyb3VuZC1jb2xvcjojZjBmMGYwO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3Jh
ZGllbnQodG9wLCAjZmRmZGZkLCAjZGRkKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGll
bnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZmRmZGZkKSwgdG8oI2RkZCkpO2JhY2tncm91
bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmRmZGZkLCAjZGRkKTtiYWNr
Z3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZGZkZmQsICNkZGQpO2JhY2tn
cm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZkZmRmZCwgI2RkZCk7YmFj
a2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1p
Y3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZmZGZkZmQnLCBlbmRDb2xvcnN0cj0n
I2ZmZGRkZGRkJywgR3JhZGllbnRUeXBlPTApO3pvb206MX0ubWNlLWZsb2F0cGFuZWx7cG9zaXRp
b246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAw
LjIpOy1tb3otYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtib3gtc2hh
ZG93OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpfS5tY2UtZmxvYXRwYW5lbC5tY2UtZml4
ZWR7cG9zaXRpb246Zml4ZWR9Lm1jZS1mbG9hdHBhbmVsIC5tY2UtYXJyb3csLm1jZS1mbG9hdHBh
bmVsIC5tY2UtYXJyb3c6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0
aDowO2hlaWdodDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9
Lm1jZS1mbG9hdHBhbmVsIC5tY2UtYXJyb3d7Ym9yZGVyLXdpZHRoOjExcHh9Lm1jZS1mbG9hdHBh
bmVsIC5tY2UtYXJyb3c6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjEwcHg7Y29udGVudDoiIn0ubWNlLWZs
b2F0cGFuZWwubWNlLXBvcG92ZXJ7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jv
c29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LXdl
YmtpdC1ib3JkZXItcmFkaXVzOjZweDstbW96LWJvcmRlci1yYWRpdXM6NnB4O2JvcmRlci1yYWRp
dXM6NnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTst
bW96LWJveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7Ym94LXNoYWRvdzow
IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTt0b3A6MDtsZWZ0OjA7YmFja2dyb3VuZDojZmZm
O2JvcmRlcjoxcHggc29saWQgIzllOWU5ZTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4y
NSl9Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVyLm1jZS1ib3R0b217bWFyZ2luLXRvcDoxMHB4
OyptYXJnaW4tdG9wOjB9Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVyLm1jZS1ib3R0b20+Lm1j
ZS1hcnJvd3tsZWZ0OjUwJTttYXJnaW4tbGVmdDotMTFweDtib3JkZXItdG9wLXdpZHRoOjA7Ym9y
ZGVyLWJvdHRvbS1jb2xvcjojOWU5ZTllO2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCww
LjI1KTt0b3A6LTExcHh9Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVyLm1jZS1ib3R0b20+Lm1j
ZS1hcnJvdzphZnRlcnt0b3A6MXB4O21hcmdpbi1sZWZ0Oi0xMHB4O2JvcmRlci10b3Atd2lkdGg6
MDtib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVyLm1j
ZS1ib3R0b20ubWNlLXN0YXJ0e21hcmdpbi1sZWZ0Oi0yMnB4fS5tY2UtZmxvYXRwYW5lbC5tY2Ut
cG9wb3Zlci5tY2UtYm90dG9tLm1jZS1zdGFydD4ubWNlLWFycm93e2xlZnQ6MjBweH0ubWNlLWZs
b2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRvbS5tY2UtZW5ke21hcmdpbi1sZWZ0OjIycHh9
Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVyLm1jZS1ib3R0b20ubWNlLWVuZD4ubWNlLWFycm93
e3JpZ2h0OjEwcHg7bGVmdDphdXRvfS5tY2UtZnVsbHNjcmVlbntib3JkZXI6MDtwYWRkaW5nOjA7
bWFyZ2luOjA7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6I2ZmZjtoZWlnaHQ6MTAwJX1kaXYu
bWNlLWZ1bGxzY3JlZW57cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowfSNtY2UtbW9kYWwtYmxv
Y2t7b3BhY2l0eTowO2ZpbHRlcjphbHBoYShvcGFjaXR5PTApO3pvb206MTtwb3NpdGlvbjpmaXhl
ZDtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiMwMDB9I21j
ZS1tb2RhbC1ibG9jay5tY2UtaW57b3BhY2l0eTouMztmaWx0ZXI6YWxwaGEob3BhY2l0eT0zMCk7
em9vbToxfS5tY2Utd2luZG93LW1vdmV7Y3Vyc29yOm1vdmV9Lm1jZS13aW5kb3d7LXdlYmtpdC1i
b3JkZXItcmFkaXVzOjZweDstbW96LWJvcmRlci1yYWRpdXM6NnB4O2JvcmRlci1yYWRpdXM6NnB4
Oy13ZWJraXQtYm94LXNoYWRvdzowIDNweCA3cHggcmdiYSgwLCAwLCAwLCAwLjMpOy1tb3otYm94
LXNoYWRvdzowIDNweCA3cHggcmdiYSgwLCAwLCAwLCAwLjMpO2JveC1zaGFkb3c6MCAzcHggN3B4
IHJnYmEoMCwgMCwgMCwgMC4zKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9z
b2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBmYWxzZSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtiYWNr
Z3JvdW5kOiNmZmY7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO29wYWNpdHk6MDstd2Via2l0
LXRyYW5zaXRpb246b3BhY2l0eSAxNTBtcyBlYXNlLWluO3RyYW5zaXRpb246b3BhY2l0eSAxNTBt
cyBlYXNlLWlufS5tY2Utd2luZG93Lm1jZS1pbntvcGFjaXR5OjF9Lm1jZS13aW5kb3ctaGVhZHtw
YWRkaW5nOjlweCAxNXB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjNWM1YzU7cG9zaXRpb246
cmVsYXRpdmV9Lm1jZS13aW5kb3ctaGVhZCAubWNlLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3Jp
Z2h0OjE1cHg7dG9wOjlweDtmb250LXNpemU6MjBweDtmb250LXdlaWdodDpib2xkO2xpbmUtaGVp
Z2h0OjIwcHg7Y29sb3I6Izg1ODU4NTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjBweDtvdmVyZmxv
dzpoaWRkZW59Lm1jZS1jbG9zZTpob3Zlcntjb2xvcjojYWRhZGFkfS5tY2Utd2luZG93LWhlYWQg
Lm1jZS10aXRsZXtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OmJv
bGQ7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVsZWdpYmlsaXR5O3BhZGRpbmctcmlnaHQ6MTBweH0u
bWNlLXdpbmRvdyAubWNlLWNvbnRhaW5lci1ib2R5e2Rpc3BsYXk6YmxvY2t9Lm1jZS1mb290e2Rp
c3BsYXk6YmxvY2s7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci10b3A6MXB4IHNvbGlkICNj
NWM1YzU7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4Oy1tb3otYm9yZGVyLXJhZGl1
czowIDAgNnB4IDZweDtib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4fS5tY2Utd2luZG93LWhlYWQg
Lm1jZS1kcmFnaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Y3Vyc29yOm1vdmU7d2lk
dGg6OTAlO2hlaWdodDoxMDAlfS5tY2Utd2luZG93IGlmcmFtZXt3aWR0aDoxMDAlO2hlaWdodDox
MDAlfS5tY2Utd2luZG93Lm1jZS1mdWxsc2NyZWVuLC5tY2Utd2luZG93Lm1jZS1mdWxsc2NyZWVu
IC5tY2UtZm9vdHstd2Via2l0LWJvcmRlci1yYWRpdXM6MDstbW96LWJvcmRlci1yYWRpdXM6MDti
b3JkZXItcmFkaXVzOjB9Lm1jZS1ydGwgLm1jZS13aW5kb3ctaGVhZCAubWNlLWNsb3Nle3Bvc2l0
aW9uOmFic29sdXRlO3JpZ2h0OmF1dG87bGVmdDoxNXB4fS5tY2UtcnRsIC5tY2Utd2luZG93LWhl
YWQgLm1jZS1kcmFnaHtsZWZ0OmF1dG87cmlnaHQ6MH0ubWNlLXJ0bCAubWNlLXdpbmRvdy1oZWFk
IC5tY2UtdGl0bGV7ZGlyZWN0aW9uOnJ0bDt0ZXh0LWFsaWduOnJpZ2h0fS5tY2UtYWJzLWxheW91
dHtwb3NpdGlvbjpyZWxhdGl2ZX1ib2R5IC5tY2UtYWJzLWxheW91dC1pdGVtLC5tY2UtYWJzLWVu
ZHtwb3NpdGlvbjphYnNvbHV0ZX0ubWNlLWFicy1lbmR7d2lkdGg6MXB4O2hlaWdodDoxcHh9Lm1j
ZS1jb250YWluZXItYm9keS5tY2UtYWJzLWxheW91dHtvdmVyZmxvdzpoaWRkZW59Lm1jZS10b29s
dGlwe3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6NXB4O29wYWNpdHk6Ljg7ZmlsdGVyOmFscGhh
KG9wYWNpdHk9ODApO3pvb206MX0ubWNlLXRvb2x0aXAtaW5uZXJ7Zm9udC1zaXplOjExcHg7YmFj
a2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmY7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6NXB4
IDhweCA0cHggOHB4O3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vcm1hbH0ubWNlLXRv
b2x0aXAtaW5uZXJ7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6
M3B4O2JvcmRlci1yYWRpdXM6M3B4fS5tY2UtdG9vbHRpcC1pbm5lcnstd2Via2l0LWJveC1zaGFk
b3c6MCAwIDVweCAjMDAwMDAwOy1tb3otYm94LXNoYWRvdzowIDAgNXB4ICMwMDAwMDA7Ym94LXNo
YWRvdzowIDAgNXB4ICMwMDAwMDB9Lm1jZS10b29sdGlwLWFycm93e3Bvc2l0aW9uOmFic29sdXRl
O3dpZHRoOjA7aGVpZ2h0OjA7bGluZS1oZWlnaHQ6MDtib3JkZXI6NXB4IGRhc2hlZCAjMDAwfS5t
Y2UtdG9vbHRpcC1hcnJvdy1ue2JvcmRlci1ib3R0b20tY29sb3I6IzAwMH0ubWNlLXRvb2x0aXAt
YXJyb3ctc3tib3JkZXItdG9wLWNvbG9yOiMwMDB9Lm1jZS10b29sdGlwLWFycm93LWV7Ym9yZGVy
LWxlZnQtY29sb3I6IzAwMH0ubWNlLXRvb2x0aXAtYXJyb3ctd3tib3JkZXItcmlnaHQtY29sb3I6
IzAwMH0ubWNlLXRvb2x0aXAtbncsLm1jZS10b29sdGlwLXN3e21hcmdpbi1sZWZ0Oi0xNHB4fS5t
Y2UtdG9vbHRpcC1uIC5tY2UtdG9vbHRpcC1hcnJvd3t0b3A6MHB4O2xlZnQ6NTAlO21hcmdpbi1s
ZWZ0Oi01cHg7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItdG9wOm5vbmU7Ym9yZGVy
LWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5t
Y2UtdG9vbHRpcC1udyAubWNlLXRvb2x0aXAtYXJyb3d7dG9wOjA7bGVmdDoxMHB4O2JvcmRlci1i
b3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5z
cGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWNlLXRvb2x0aXAtbmUgLm1j
ZS10b29sdGlwLWFycm93e3RvcDowO3JpZ2h0OjEwcHg7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xp
ZDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJp
Z2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tY2UtdG9vbHRpcC1zIC5tY2UtdG9vbHRpcC1hcnJvd3ti
b3R0b206MDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNXB4O2JvcmRlci10b3Atc3R5bGU6c29saWQ7
Ym9yZGVyLWJvdHRvbTpub25lO2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1y
aWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWNlLXRvb2x0aXAtc3cgLm1jZS10b29sdGlwLWFycm93
e2JvdHRvbTowO2xlZnQ6MTBweDtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b206
bm9uZTtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dHJh
bnNwYXJlbnR9Lm1jZS10b29sdGlwLXNlIC5tY2UtdG9vbHRpcC1hcnJvd3tib3R0b206MDtyaWdo
dDoxMHB4O2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbTpub25lO2JvcmRlci1s
ZWZ0LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWNl
LXRvb2x0aXAtZSAubWNlLXRvb2x0aXAtYXJyb3d7cmlnaHQ6MDt0b3A6NTAlO21hcmdpbi10b3A6
LTVweDtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItdG9w
LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnR9Lm1jZS10
b29sdGlwLXcgLm1jZS10b29sdGlwLWFycm93e2xlZnQ6MDt0b3A6NTAlO21hcmdpbi10b3A6LTVw
eDtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItdG9wLWNv
bG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnR9Lm1jZS1idG57
Ym9yZGVyOjFweCBzb2xpZCAjYjFiMWIxO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMSkgcmdi
YSgwLDAsMCwwLjEpIHJnYmEoMCwwLDAsMC4yNSkgcmdiYSgwLDAsMCwwLjI1KTtwb3NpdGlvbjpy
ZWxhdGl2ZTt0ZXh0LXNoYWRvdzowIDFweCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjc1KTtkaXNw
bGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206MTstd2Via2l0LWJvcmRlci1y
YWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtp
dC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFw
eCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCBy
Z2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO2Jv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIDAgMXB4IDJw
eCByZ2JhKDAsIDAsIDAsIDAuMDUpO2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtiYWNrZ3JvdW5k
LWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3Vu
ZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2ZmZiks
IHRvKCNkOWQ5ZDkpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRv
cCwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9w
LCAjZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0
b20sICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9n
aWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2Zm
ZmZmZmZmJywgZW5kQ29sb3JzdHI9JyNmZmQ5ZDlkOScsIEdyYWRpZW50VHlwZT0wKTt6b29tOjF9
Lm1jZS1idG46aG92ZXIsLm1jZS1idG46Zm9jdXN7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9y
OiNlM2UzZTM7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmMmYy
ZjIsICNjY2MpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwg
MCAxMDAlLCBmcm9tKCNmMmYyZjIpLCB0bygjY2NjKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0
LWxpbmVhci1ncmFkaWVudCh0b3AsICNmMmYyZjIsICNjY2MpO2JhY2tncm91bmQtaW1hZ2U6LW8t
bGluZWFyLWdyYWRpZW50KHRvcCwgI2YyZjJmMiwgI2NjYyk7YmFja2dyb3VuZC1pbWFnZTpsaW5l
YXItZ3JhZGllbnQodG8gYm90dG9tLCAjZjJmMmYyLCAjY2NjKTtiYWNrZ3JvdW5kLXJlcGVhdDpy
ZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50
KHN0YXJ0Q29sb3JzdHI9JyNmZmYyZjJmMicsIGVuZENvbG9yc3RyPScjZmZjY2NjY2MnLCBHcmFk
aWVudFR5cGU9MCk7em9vbToxfS5tY2UtYnRuLm1jZS1kaXNhYmxlZCBidXR0b24sLm1jZS1idG4u
bWNlLWRpc2FibGVkOmhvdmVyIGJ1dHRvbntjdXJzb3I6ZGVmYXVsdDstd2Via2l0LWJveC1zaGFk
b3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7b3BhY2l0eTouNDtm
aWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7em9vbToxfS5tY2UtYnRuLm1jZS1hY3RpdmUsLm1jZS1i
dG4ubWNlLWFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkNmQ2ZDY7YmFja2dyb3VuZC1p
bWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91
bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKCNlNmU2
ZTYpLCB0bygjYzBjMGMwKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVu
dCh0b3AsICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRp
ZW50KHRvcCwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGll
bnQodG8gYm90dG9tLCAjZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQt
eDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0
Q29sb3JzdHI9JyNmZmU2ZTZlNicsIGVuZENvbG9yc3RyPScjZmZjMGMwYzAnLCBHcmFkaWVudFR5
cGU9MCk7em9vbToxOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAw
LCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7LW1vei1ib3gtc2hhZG93
Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAw
LCAwLCAwLjA1KTtib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUp
LCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KX0ubWNlLWJ0bjpub3QoLm1jZS1kaXNhYmxl
ZCk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Q2ZDZkNjtiYWNrZ3JvdW5kLWltYWdlOi1tb3ot
bGluZWFyLWdyYWRpZW50KHRvcCwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1pbWFnZTot
d2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2U2ZTZlNiksIHRvKCNj
MGMwYzApKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2U2
ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCAj
ZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0
b20sICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpw
cm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0n
I2ZmZTZlNmU2JywgZW5kQ29sb3JzdHI9JyNmZmMwYzBjMCcsIEdyYWRpZW50VHlwZT0wKTt6b29t
OjE7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUp
LCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAy
cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUp
O2JveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJw
eCByZ2JhKDAsIDAsIDAsIDAuMDUpfS5tY2UtYnRuIGJ1dHRvbntwYWRkaW5nOjRweCAxMHB4O2Zv
bnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIwcHg7KmxpbmUtaGVpZ2h0OjE2cHg7Y3Vyc29yOnBv
aW50ZXI7Y29sb3I6IzMzMzt0ZXh0LWFsaWduOmNlbnRlcjtvdmVyZmxvdzp2aXNpYmxlOy13ZWJr
aXQtYXBwZWFyYW5jZTpub25lfS5tY2UtYnRuIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3Jk
ZXI6MDtwYWRkaW5nOjB9Lm1jZS1idG4gaXt0ZXh0LXNoYWRvdzoxcHggMXB4ICNmZmZ9Lm1jZS1w
cmltYXJ5e21pbi13aWR0aDo1MHB4O2NvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjYjFiMWIx
O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMSkgcmdiYSgwLDAsMCwwLjEpIHJnYmEoMCwwLDAs
MC4yNSkgcmdiYSgwLDAsMCwwLjI1KTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDZkY2M7YmFja2dyb3Vu
ZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMwOGMsICMwNGMpO2JhY2tncm91bmQt
aW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKCMwOGMpLCB0
bygjMDRjKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMw
OGMsICMwNGMpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzA4Yywg
IzA0Yyk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDhjLCAj
MDRjKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFu
c2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjAwODhjYycsIGVuZENv
bG9yc3RyPScjZmYwMDQ0Y2MnLCBHcmFkaWVudFR5cGU9MCk7em9vbToxfS5tY2UtcHJpbWFyeTpo
b3ZlciwubWNlLXByaW1hcnk6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojMDA1ZmIzO2JhY2tncm91
bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMDA3N2IzLCAjMDAzY2IzKTtiYWNr
Z3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgj
MDA3N2IzKSwgdG8oIzAwM2NiMykpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3Jh
ZGllbnQodG9wLCAjMDA3N2IzLCAjMDAzY2IzKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1n
cmFkaWVudCh0b3AsICMwMDc3YjMsICMwMDNjYjMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdy
YWRpZW50KHRvIGJvdHRvbSwgIzAwNzdiMywgIzAwM2NiMyk7YmFja2dyb3VuZC1yZXBlYXQ6cmVw
ZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChz
dGFydENvbG9yc3RyPScjZmYwMDc3YjMnLCBlbmRDb2xvcnN0cj0nI2ZmMDAzY2IzJywgR3JhZGll
bnRUeXBlPTApO3pvb206MX0ubWNlLXByaW1hcnkubWNlLWRpc2FibGVkIGJ1dHRvbiwubWNlLXBy
aW1hcnkubWNlLWRpc2FibGVkOmhvdmVyIGJ1dHRvbntjdXJzb3I6ZGVmYXVsdDstd2Via2l0LWJv
eC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7b3BhY2l0
eTouNDtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7em9vbToxfS5tY2UtcHJpbWFyeS5tY2UtYWN0
aXZlLC5tY2UtcHJpbWFyeS5tY2UtYWN0aXZlOmhvdmVyLC5tY2UtcHJpbWFyeTpub3QoLm1jZS1k
aXNhYmxlZCk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwNTI5OTtiYWNrZ3JvdW5kLWltYWdl
Oi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzA2OSwgIzAzOSk7YmFja2dyb3VuZC1pbWFnZTot
d2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oIzA2OSksIHRvKCMwMzkp
KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzA2OSwgIzAz
OSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCAjMDY5LCAjMDM5KTti
YWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwNjksICMwMzkpO2Jh
Y2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5N
aWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMDA2Njk5JywgZW5kQ29sb3JzdHI9
JyNmZjAwMzM5OScsIEdyYWRpZW50VHlwZT0wKTt6b29tOjE7LXdlYmtpdC1ib3gtc2hhZG93Omlu
c2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAw
LCAwLjA1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4x
NSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO2JveC1zaGFkb3c6aW5zZXQgMCAycHgg
NHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpfS5t
Y2UtcHJpbWFyeSBidXR0b24sLm1jZS1wcmltYXJ5IGJ1dHRvbiBpe2NvbG9yOiNmZmY7dGV4dC1z
aGFkb3c6MXB4IDFweCAjMzMzfS5tY2UtYnRuLWxhcmdlIGJ1dHRvbntwYWRkaW5nOjlweCAxNHB4
O2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0Om5vcm1hbDstd2Via2l0LWJvcmRlci1yYWRpdXM6
NXB4Oy1tb3otYm9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXJhZGl1czo1cHh9Lm1jZS1idG4tbGFy
Z2UgaXttYXJnaW4tdG9wOjJweH0ubWNlLWJ0bi1zbWFsbCBidXR0b257cGFkZGluZzoxcHggNXB4
O2ZvbnQtc2l6ZToxMnB4OypwYWRkaW5nLWJvdHRvbToycHh9Lm1jZS1idG4tc21hbGwgaXtsaW5l
LWhlaWdodDoyMHB4O3ZlcnRpY2FsLWFsaWduOnRvcDsqbGluZS1oZWlnaHQ6MThweH0ubWNlLWJ0
biAubWNlLWNhcmV0e21hcmdpbi10b3A6OHB4O21hcmdpbi1sZWZ0OjB9Lm1jZS1idG4tc21hbGwg
Lm1jZS1jYXJldHttYXJnaW4tdG9wOjhweDttYXJnaW4tbGVmdDowfS5tY2UtY2FyZXR7ZGlzcGxh
eTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7d2lkdGg6MDtoZWlnaHQ6MDt2
ZXJ0aWNhbC1hbGlnbjp0b3A7Ym9yZGVyLXRvcDo0cHggc29saWQgIzMzMztib3JkZXItcmlnaHQ6
NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtj
b250ZW50OiIifS5tY2UtZGlzYWJsZWQgLm1jZS1jYXJldHtib3JkZXItdG9wLWNvbG9yOiNhYWF9
Lm1jZS1jYXJldC5tY2UtdXB7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgIzMzMztib3JkZXItdG9w
OjB9Lm1jZS1ydGwgLm1jZS1idG4gYnV0dG9ue2RpcmVjdGlvbjpydGx9Lm1jZS1idG4tZ3JvdXAg
Lm1jZS1idG57Ym9yZGVyLXdpZHRoOjFweCAwIDFweCAwO21hcmdpbjowOy13ZWJraXQtYm9yZGVy
LXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO2JvcmRlci1yYWRpdXM6MH0ubWNlLWJ0bi1n
cm91cCAubWNlLWZpcnN0e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjYjFiMWIxO2JvcmRlci1sZWZ0
OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMjUpOy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHggMCAw
IDNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4IDAgMCAzcHg7Ym9yZGVyLXJhZGl1czozcHggMCAw
IDNweH0ubWNlLWJ0bi1ncm91cCAubWNlLWxhc3R7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjYjFi
MWIxO2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpOy13ZWJraXQtYm9yZGVy
LXJhZGl1czowIDNweCAzcHggMDstbW96LWJvcmRlci1yYWRpdXM6MCAzcHggM3B4IDA7Ym9yZGVy
LXJhZGl1czowIDNweCAzcHggMH0ubWNlLWJ0bi1ncm91cCAubWNlLWZpcnN0Lm1jZS1sYXN0ey13
ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFk
aXVzOjNweH0ubWNlLWJ0bi1ncm91cCAubWNlLWJ0bi5tY2UtZmxvdy1sYXlvdXQtaXRlbXttYXJn
aW46MH0ubWNlLWNoZWNrYm94e2N1cnNvcjpwb2ludGVyfWkubWNlLWktY2hlY2tib3h7bWFyZ2lu
OjAgM3B4IDAgMDtib3JkZXI6MXB4IHNvbGlkICNjNWM1YzU7LXdlYmtpdC1ib3JkZXItcmFkaXVz
OjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4Oy13ZWJraXQtYm94
LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgMCAxcHggMnB4
IHJnYmEoMCwgMCwgMCwgMC4wNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgy
NTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtib3gtc2hh
ZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFweCAycHggcmdi
YSgwLCAwLCAwLCAwLjA1KTtiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjA7YmFja2dyb3VuZC1pbWFn
ZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtaW1h
Z2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKCNmZmYpLCB0bygj
ZDlkOWQ5KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNm
ZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2Zm
ZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAj
ZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRY
SW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmZm
ZicsIGVuZENvbG9yc3RyPScjZmZkOWQ5ZDknLCBHcmFkaWVudFR5cGU9MCk7em9vbToxO3RleHQt
aW5kZW50Oi0xMGVtOypmb250LXNpemU6MDsqbGluZS1oZWlnaHQ6MDsqdGV4dC1pbmRlbnQ6MDtv
dmVyZmxvdzpoaWRkZW59Lm1jZS1jaGVja2VkIGkubWNlLWktY2hlY2tib3h7Y29sb3I6IzMzMztm
b250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxNnB4O3RleHQtaW5kZW50OjB9Lm1jZS1jaGVja2Jv
eDpmb2N1cyBpLm1jZS1pLWNoZWNrYm94LC5tY2UtY2hlY2tib3gubWNlLWZvY3VzIGkubWNlLWkt
Y2hlY2tib3h7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDgyLDE2OCwyMzYsMC44KTstd2Via2l0LWJv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJn
YmEoODIsIDE2OCwgMjM2LCAwLjY1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJn
YmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjY1KTtib3gt
c2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2Jh
KDgyLCAxNjgsIDIzNiwgMC42NSl9Lm1jZS1jaGVja2JveC5tY2UtZGlzYWJsZWQgLm1jZS1sYWJl
bCwubWNlLWNoZWNrYm94Lm1jZS1kaXNhYmxlZCBpLm1jZS1pLWNoZWNrYm94e2NvbG9yOiNhY2Fj
YWN9Lm1jZS1ydGwgLm1jZS1jaGVja2JveHtkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246cmlnaHR9
Lm1jZS1ydGwgaS5tY2UtaS1jaGVja2JveHttYXJnaW46MCAwIDAgM3B4fS5tY2UtY29sb3JidXR0
b24gLm1jZS1pY297cG9zaXRpb246cmVsYXRpdmV9Lm1jZS1jb2xvcmJ1dHRvbi1ncmlke21hcmdp
bjo0cHh9Lm1jZS1jb2xvcmJ1dHRvbiBidXR0b257cGFkZGluZy1yaWdodDo0cHh9Lm1jZS1jb2xv
cmJ1dHRvbiAubWNlLXByZXZpZXd7cGFkZGluZy1yaWdodDozcHg7ZGlzcGxheTpibG9jaztwb3Np
dGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO21hcmdpbi1sZWZ0Oi0xNHB4O21hcmdpbi10
b3A6N3B4O2JhY2tncm91bmQ6Z3JheTt3aWR0aDoxM3B4O2hlaWdodDoycHg7b3ZlcmZsb3c6aGlk
ZGVufS5tY2UtY29sb3JidXR0b24ubWNlLWJ0bi1zbWFsbCAubWNlLXByZXZpZXd7bWFyZ2luLWxl
ZnQ6LTE2cHg7cGFkZGluZy1yaWdodDowO3dpZHRoOjE2cHh9Lm1jZS1jb2xvcmJ1dHRvbiAubWNl
LW9wZW57cGFkZGluZy1sZWZ0OjRweDtib3JkZXItbGVmdDoxcHggc29saWQgdHJhbnNwYXJlbnQ7
Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB0cmFuc3BhcmVudH0ubWNlLWNvbG9yYnV0dG9uOmhvdmVy
IC5tY2Utb3Blbntib3JkZXItbGVmdC1jb2xvcjojYmRiZGJkO2JvcmRlci1yaWdodC1jb2xvcjoj
YmRiZGJkfS5tY2UtY29sb3JidXR0b24ubWNlLWJ0bi1zbWFsbCAubWNlLW9wZW57cGFkZGluZzow
IDNweCAwIDNweH0ubWNlLXJ0bCAubWNlLWNvbG9yYnV0dG9ue2RpcmVjdGlvbjpydGx9Lm1jZS1y
dGwgLm1jZS1jb2xvcmJ1dHRvbiAubWNlLXByZXZpZXd7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLXJp
Z2h0OjA7cGFkZGluZy1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6LTE0cHh9Lm1jZS1ydGwgLm1jZS1j
b2xvcmJ1dHRvbi5tY2UtYnRuLXNtYWxsIC5tY2UtcHJldmlld3ttYXJnaW4tbGVmdDowO3BhZGRp
bmctcmlnaHQ6MDttYXJnaW4tcmlnaHQ6LTE3cHg7cGFkZGluZy1sZWZ0OjB9Lm1jZS1ydGwgLm1j
ZS1jb2xvcmJ1dHRvbiBidXR0b257cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctbGVmdDoxMHB4
fS5tY2UtcnRsIC5tY2UtY29sb3JidXR0b24gLm1jZS1vcGVue3BhZGRpbmctbGVmdDo0cHg7cGFk
ZGluZy1yaWdodDo0cHh9Lm1jZS1jb21ib2JveHtkaXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxh
eTppbmxpbmU7Knpvb206MTstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJh
ZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4
IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4
IHJnYmEoMCwgMCwgMCwgMC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwg
MCwgMCwgMC4wNzUpOypoZWlnaHQ6MzJweH0ubWNlLWNvbWJvYm94IGlucHV0e2JvcmRlcjoxcHgg
c29saWQgI2M1YzVjNTtib3JkZXItcmlnaHQtY29sb3I6I2M1YzVjNTtoZWlnaHQ6MjhweH0ubWNl
LWNvbWJvYm94Lm1jZS1kaXNhYmxlZCBpbnB1dHtjb2xvcjojYWRhZGFkfS5tY2UtY29tYm9ib3gu
bWNlLWhhcy1vcGVuIGlucHV0ey13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggMCAwIDRweDstbW96
LWJvcmRlci1yYWRpdXM6NHB4IDAgMCA0cHg7Ym9yZGVyLXJhZGl1czo0cHggMCAwIDRweH0ubWNl
LWNvbWJvYm94IC5tY2UtYnRue2JvcmRlci1sZWZ0OjA7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjAg
NHB4IDRweCAwOy1tb3otYm9yZGVyLXJhZGl1czowIDRweCA0cHggMDtib3JkZXItcmFkaXVzOjAg
NHB4IDRweCAwfS5tY2UtY29tYm9ib3ggYnV0dG9ue3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmct
bGVmdDo4cHh9Lm1jZS1jb21ib2JveC5tY2UtZGlzYWJsZWQgLm1jZS1idG4gYnV0dG9ue2N1cnNv
cjpkZWZhdWx0Oy13ZWJraXQtYm94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2Jv
eC1zaGFkb3c6bm9uZTtvcGFjaXR5Oi40O2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTt6b29tOjF9
Lm1jZS1wYXRoe2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9vbToxO3Bh
ZGRpbmc6OHB4O3doaXRlLXNwYWNlOm5vcm1hbH0ubWNlLXBhdGggLm1jZS10eHR7ZGlzcGxheTpp
bmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDozcHh9Lm1jZS1wYXRoIC5tY2UtcGF0aC1ib2R5e2Rp
c3BsYXk6aW5saW5lLWJsb2NrfS5tY2UtcGF0aC1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrOypk
aXNwbGF5OmlubGluZTsqem9vbToxO2N1cnNvcjpwb2ludGVyO2NvbG9yOiMzMzN9Lm1jZS1wYXRo
LWl0ZW06aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ubWNlLXBhdGgtaXRlbTpmb2N1
c3tiYWNrZ3JvdW5kOiM2NjY7Y29sb3I6I2ZmZn0ubWNlLXBhdGggLm1jZS1kaXZpZGVye2Rpc3Bs
YXk6aW5saW5lfS5tY2UtZGlzYWJsZWQgLm1jZS1wYXRoLWl0ZW17Y29sb3I6I2FhYX0ubWNlLXJ0
bCAubWNlLXBhdGh7ZGlyZWN0aW9uOnJ0bH0ubWNlLWZpZWxkc2V0e2JvcmRlcjowIHNvbGlkICM5
RTlFOUU7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4O2Jv
cmRlci1yYWRpdXM6M3B4fS5tY2UtZmllbGRzZXQ+Lm1jZS1jb250YWluZXItYm9keXttYXJnaW4t
dG9wOi0xNXB4fS5tY2UtZmllbGRzZXQtdGl0bGV7bWFyZ2luLWxlZnQ6NXB4O3BhZGRpbmc6MCA1
cHggMCA1cHh9Lm1jZS1maXQtbGF5b3V0e2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5Omlu
bGluZTsqem9vbToxfS5tY2UtZml0LWxheW91dC1pdGVte3Bvc2l0aW9uOmFic29sdXRlfS5tY2Ut
Zmxvdy1sYXlvdXQtaXRlbXtkaXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpv
b206MX0ubWNlLWZsb3ctbGF5b3V0LWl0ZW17bWFyZ2luOjJweCAwIDJweCAycHh9Lm1jZS1mbG93
LWxheW91dC1pdGVtLm1jZS1sYXN0e21hcmdpbi1yaWdodDoycHh9Lm1jZS1mbG93LWxheW91dHt3
aGl0ZS1zcGFjZTpub3JtYWx9Lm1jZS10aW55bWNlLWlubGluZSAubWNlLWZsb3ctbGF5b3V0e3do
aXRlLXNwYWNlOm5vd3JhcH0ubWNlLXJ0bCAubWNlLWZsb3ctbGF5b3V0e3RleHQtYWxpZ246cmln
aHQ7ZGlyZWN0aW9uOnJ0bH0ubWNlLXJ0bCAubWNlLWZsb3ctbGF5b3V0LWl0ZW17bWFyZ2luOjJw
eCAycHggMnB4IDB9Lm1jZS1ydGwgLm1jZS1mbG93LWxheW91dC1pdGVtLm1jZS1sYXN0e21hcmdp
bi1sZWZ0OjJweH0ubWNlLWlmcmFtZXtib3JkZXI6MCBzb2xpZCAjOWU5ZTllO3dpZHRoOjEwMCU7
aGVpZ2h0OjEwMCV9Lm1jZS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxp
bmU7Knpvb206MTt0ZXh0LXNoYWRvdzowIDFweCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjc1KTtv
dmVyZmxvdzpoaWRkZW59Lm1jZS1sYWJlbC5tY2UtYXV0b3Njcm9sbHtvdmVyZmxvdzphdXRvfS5t
Y2UtbGFiZWwubWNlLWRpc2FibGVke2NvbG9yOiNhYWF9Lm1jZS1sYWJlbC5tY2UtbXVsdGlsaW5l
e3doaXRlLXNwYWNlOnByZS13cmFwfS5tY2UtbGFiZWwubWNlLWVycm9ye2NvbG9yOiNhMDB9Lm1j
ZS1ydGwgLm1jZS1sYWJlbHt0ZXh0LWFsaWduOnJpZ2h0O2RpcmVjdGlvbjpydGx9Lm1jZS1tZW51
YmFyIC5tY2UtbWVudWJ0bntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZDp0cmFu
c3BhcmVudDstd2Via2l0LWJvcmRlci1yYWRpdXM6MDstbW96LWJvcmRlci1yYWRpdXM6MDtib3Jk
ZXItcmFkaXVzOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7
Ym94LXNoYWRvdzpub25lO2ZpbHRlcjpub25lfS5tY2UtbWVudWJhcntib3JkZXI6MXB4IHNvbGlk
ICNjNGM0YzR9Lm1jZS1tZW51YmFyIC5tY2UtbWVudWJ0biBidXR0b24gc3Bhbntjb2xvcjojMzMz
fS5tY2UtbWVudWJhciAubWNlLWNhcmV0e2JvcmRlci10b3AtY29sb3I6IzMzM30ubWNlLW1lbnVi
YXIgLm1jZS1tZW51YnRuOmhvdmVyLC5tY2UtbWVudWJhciAubWNlLW1lbnVidG4ubWNlLWFjdGl2
ZSwubWNlLW1lbnViYXIgLm1jZS1tZW51YnRuOmZvY3Vze2JvcmRlci1jb2xvcjp0cmFuc3BhcmVu
dDtiYWNrZ3JvdW5kOiNlNmU2ZTY7ZmlsdGVyOm5vbmU7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7
LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5tY2UtbWVudWJ0biBzcGFue2Nv
bG9yOiMzMzM7bWFyZ2luLXJpZ2h0OjJweDtsaW5lLWhlaWdodDoyMHB4OypsaW5lLWhlaWdodDox
NnB4fS5tY2UtbWVudWJ0bi5tY2UtYnRuLXNtYWxsIHNwYW57Zm9udC1zaXplOjEycHh9Lm1jZS1t
ZW51YnRuLm1jZS1maXhlZC13aWR0aCBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93
LXg6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2lkdGg6OTBweH0ubWNlLW1lbnVidG4u
bWNlLWZpeGVkLXdpZHRoLm1jZS1idG4tc21hbGwgc3Bhbnt3aWR0aDo3MHB4fS5tY2UtbWVudWJ0
biAubWNlLWNhcmV0eyptYXJnaW4tdG9wOjZweH0ubWNlLXJ0bCAubWNlLW1lbnVidG4gYnV0dG9u
e2RpcmVjdGlvbjpydGw7dGV4dC1hbGlnbjpyaWdodH0ubWNlLWxpc3Rib3ggYnV0dG9ue3RleHQt
YWxpZ246bGVmdDtwYWRkaW5nLXJpZ2h0OjIwcHg7cG9zaXRpb246cmVsYXRpdmV9Lm1jZS1saXN0
Ym94IC5tY2UtY2FyZXR7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLXRvcDotMnB4O3JpZ2h0Ojhw
eDt0b3A6NTAlfS5tY2UtcnRsIC5tY2UtbGlzdGJveCAubWNlLWNhcmV0e3JpZ2h0OmF1dG87bGVm
dDo4cHh9Lm1jZS1ydGwgLm1jZS1saXN0Ym94IGJ1dHRvbntwYWRkaW5nLXJpZ2h0OjEwcHg7cGFk
ZGluZy1sZWZ0OjIwcHh9Lm1jZS1tZW51LWl0ZW17ZGlzcGxheTpibG9jaztwYWRkaW5nOjZweCAx
NXB4IDZweCAxMnB4O2NsZWFyOmJvdGg7Zm9udC13ZWlnaHQ6bm9ybWFsO2xpbmUtaGVpZ2h0OjIw
cHg7Y29sb3I6IzMzMzt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWln
aHQ6bm9ybWFsO2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tYm90dG9t
OjFweH0ubWNlLW1lbnUtaXRlbSAubWNlLWljbywubWNlLW1lbnUtaXRlbSAubWNlLXRleHR7Y29s
b3I6IzMzM30ubWNlLW1lbnUtaXRlbS5tY2UtZGlzYWJsZWQgLm1jZS10ZXh0LC5tY2UtbWVudS1p
dGVtLm1jZS1kaXNhYmxlZCAubWNlLWljb3tjb2xvcjojYWRhZGFkfS5tY2UtbWVudS1pdGVtOmhv
dmVyIC5tY2UtdGV4dCwubWNlLW1lbnUtaXRlbS5tY2Utc2VsZWN0ZWQgLm1jZS10ZXh0LC5tY2Ut
bWVudS1pdGVtOmZvY3VzIC5tY2UtdGV4dHtjb2xvcjojZmZmfS5tY2UtbWVudS1pdGVtOmhvdmVy
IC5tY2UtaWNvLC5tY2UtbWVudS1pdGVtLm1jZS1zZWxlY3RlZCAubWNlLWljbywubWNlLW1lbnUt
aXRlbTpmb2N1cyAubWNlLWljb3tjb2xvcjojZmZmfS5tY2UtbWVudS1pdGVtLm1jZS1kaXNhYmxl
ZDpob3ZlcntiYWNrZ3JvdW5kOiNjY2N9Lm1jZS1tZW51LXNob3J0Y3V0e2Rpc3BsYXk6aW5saW5l
LWJsb2NrO2NvbG9yOiNhZGFkYWR9Lm1jZS1tZW51LXNob3J0Y3V0e2Rpc3BsYXk6aW5saW5lLWJs
b2NrOypkaXNwbGF5OmlubGluZTsqem9vbToxO3BhZGRpbmc6MCAxNXB4IDAgMjBweH0ubWNlLW1l
bnUtaXRlbTpob3ZlciAubWNlLW1lbnUtc2hvcnRjdXQsLm1jZS1tZW51LWl0ZW0ubWNlLXNlbGVj
dGVkIC5tY2UtbWVudS1zaG9ydGN1dCwubWNlLW1lbnUtaXRlbTpmb2N1cyAubWNlLW1lbnUtc2hv
cnRjdXR7Y29sb3I6I2ZmZn0ubWNlLW1lbnUtaXRlbSAubWNlLWNhcmV0e21hcmdpbi10b3A6NHB4
OyptYXJnaW4tdG9wOjNweDttYXJnaW4tcmlnaHQ6NnB4O2JvcmRlci10b3A6NHB4IHNvbGlkIHRy
YW5zcGFyZW50O2JvcmRlci1ib3R0b206NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0
OjRweCBzb2xpZCAjMzMzfS5tY2UtbWVudS1pdGVtLm1jZS1zZWxlY3RlZCAubWNlLWNhcmV0LC5t
Y2UtbWVudS1pdGVtOmZvY3VzIC5tY2UtY2FyZXQsLm1jZS1tZW51LWl0ZW06aG92ZXIgLm1jZS1j
YXJldHtib3JkZXItbGVmdC1jb2xvcjojZmZmfS5tY2UtbWVudS1hbGlnbiAubWNlLW1lbnUtc2hv
cnRjdXR7Km1hcmdpbi10b3A6LTJweH0ubWNlLW1lbnUtYWxpZ24gLm1jZS1tZW51LXNob3J0Y3V0
LC5tY2UtbWVudS1hbGlnbiAubWNlLWNhcmV0e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjB9Lm1j
ZS1tZW51LWl0ZW0ubWNlLWFjdGl2ZSBpe3Zpc2liaWxpdHk6dmlzaWJsZX0ubWNlLW1lbnUtaXRl
bS1ub3JtYWwubWNlLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNjOGRlZjR9Lm1jZS1tZW51LWl0
ZW0tcHJldmlldy5tY2UtYWN0aXZle2JvcmRlci1sZWZ0OjVweCBzb2xpZCAjYWFhfS5tY2UtbWVu
dS1pdGVtLW5vcm1hbC5tY2UtYWN0aXZlIC5tY2UtdGV4dHtjb2xvcjojMzMzfS5tY2UtbWVudS1p
dGVtLW5vcm1hbC5tY2UtYWN0aXZlOmhvdmVyIC5tY2UtdGV4dCwubWNlLW1lbnUtaXRlbS1ub3Jt
YWwubWNlLWFjdGl2ZTpob3ZlciAubWNlLWljb3tjb2xvcjojZmZmfS5tY2UtbWVudS1pdGVtLW5v
cm1hbC5tY2UtYWN0aXZlOmZvY3VzIC5tY2UtdGV4dCwubWNlLW1lbnUtaXRlbS1ub3JtYWwubWNl
LWFjdGl2ZTpmb2N1cyAubWNlLWljb3tjb2xvcjojZmZmfS5tY2UtbWVudS1pdGVtOmhvdmVyLC5t
Y2UtbWVudS1pdGVtLm1jZS1zZWxlY3RlZCwubWNlLW1lbnUtaXRlbTpmb2N1c3t0ZXh0LWRlY29y
YXRpb246bm9uZTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwODFjMjtiYWNrZ3JvdW5k
LWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzA4YywgIzAwNzdiMyk7YmFja2dyb3Vu
ZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oIzA4Yyks
IHRvKCMwMDc3YjMpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRv
cCwgIzA4YywgIzAwNzdiMyk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9w
LCAjMDhjLCAjMDA3N2IzKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0
b20sICMwOGMsICMwMDc3YjMpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9n
aWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2Zm
MDA4OGNjJywgZW5kQ29sb3JzdHI9JyNmZjAwNzdiMycsIEdyYWRpZW50VHlwZT0wKTt6b29tOjF9
ZGl2Lm1jZS1tZW51IC5tY2UtbWVudS1pdGVtLXNlcCwubWNlLW1lbnUtaXRlbS1zZXA6aG92ZXJ7
Ym9yZGVyOjA7cGFkZGluZzowO2hlaWdodDoxcHg7bWFyZ2luOjlweCAxcHg7b3ZlcmZsb3c6aGlk
ZGVuO2JhY2tncm91bmQ6I2NiY2JjYjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmO2N1cnNv
cjpkZWZhdWx0O2ZpbHRlcjpub25lfS5tY2UtbWVudS5tY2UtcnRse2RpcmVjdGlvbjpydGx9Lm1j
ZS1ydGwgLm1jZS1tZW51LWl0ZW17dGV4dC1hbGlnbjpyaWdodDtkaXJlY3Rpb246cnRsO3BhZGRp
bmc6NnB4IDEycHggNnB4IDE1cHh9Lm1jZS1tZW51LWFsaWduLm1jZS1ydGwgLm1jZS1tZW51LXNo
b3J0Y3V0LC5tY2UtbWVudS1hbGlnbi5tY2UtcnRsIC5tY2UtY2FyZXR7cmlnaHQ6YXV0bztsZWZ0
OjB9Lm1jZS1ydGwgLm1jZS1tZW51LWl0ZW0gLm1jZS1jYXJldHttYXJnaW4tbGVmdDo2cHg7bWFy
Z2luLXJpZ2h0OjA7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCAjMzMzO2JvcmRlci1sZWZ0OjB9Lm1j
ZS1ydGwgLm1jZS1tZW51LWl0ZW0ubWNlLXNlbGVjdGVkIC5tY2UtY2FyZXQsLm1jZS1ydGwgLm1j
ZS1tZW51LWl0ZW06Zm9jdXMgLm1jZS1jYXJldCwubWNlLXJ0bCAubWNlLW1lbnUtaXRlbTpob3Zl
ciAubWNlLWNhcmV0e2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1j
b2xvcjojZmZmfS5tY2UtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7ZmlsdGVy
OnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFs
c2UpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7ei1pbmRleDoxMDAwO3BhZGRpbmc6NXB4IDAgNXB4
IDA7bWFyZ2luOjJweCAwIDA7bWluLXdpZHRoOjE2MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6
MXB4IHNvbGlkICM5ODk4OTg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7ei1pbmRl
eDoxMDAyOy13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7LW1vei1ib3JkZXItcmFkaXVzOjZweDti
b3JkZXItcmFkaXVzOjZweDstd2Via2l0LWJveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAs
IDAsIDAuMik7LW1vei1ib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO2Jv
eC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7bWF4LWhlaWdodDo0MDBweDtv
dmVyZmxvdzphdXRvO292ZXJmbG93LXg6aGlkZGVufS5tY2UtbWVudSBpe2Rpc3BsYXk6bm9uZX0u
bWNlLW1lbnUtaGFzLWljb25zIGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5l
fS5tY2UtbWVudS1zdWItdHItdGx7bWFyZ2luOi02cHggMCAwIC0xcHh9Lm1jZS1tZW51LXN1Yi1i
ci1ibHttYXJnaW46NnB4IDAgMCAtMXB4fS5tY2UtbWVudS1zdWItdGwtdHJ7bWFyZ2luOi02cHgg
MCAwIDFweH0ubWNlLW1lbnUtc3ViLWJsLWJye21hcmdpbjo2cHggMCAwIDFweH0ubWNlLWNvbnRh
aW5lci1ib2R5IC5tY2UtcmVzaXplaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7Ym90
dG9tOjA7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDt2aXNpYmlsaXR5OnZpc2libGU7Y3Vyc29yOnMt
cmVzaXplO21hcmdpbjowfS5tY2UtY29udGFpbmVyLWJvZHkgLm1jZS1yZXNpemVoYW5kbGUtYm90
aHtjdXJzb3I6c2UtcmVzaXplfWkubWNlLWktcmVzaXple2NvbG9yOiMzMzN9Lm1jZS1zcGFjZXJ7
dmlzaWJpbGl0eTpoaWRkZW59Lm1jZS1zcGxpdGJ0biAubWNlLW9wZW57Ym9yZGVyLWxlZnQ6MXB4
IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDoxcHggc29saWQgdHJhbnNwYXJlbnR9Lm1j
ZS1zcGxpdGJ0bjpob3ZlciAubWNlLW9wZW57Ym9yZGVyLWxlZnQtY29sb3I6I2JkYmRiZDtib3Jk
ZXItcmlnaHQtY29sb3I6I2JkYmRiZH0ubWNlLXNwbGl0YnRuIGJ1dHRvbntwYWRkaW5nLXJpZ2h0
OjRweH0ubWNlLXNwbGl0YnRuIC5tY2Utb3BlbntwYWRkaW5nLWxlZnQ6NHB4fS5tY2Utc3BsaXRi
dG4gLm1jZS1vcGVuLm1jZS1hY3RpdmV7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDRw
eCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTstbW96
LWJveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJw
eCByZ2JhKDAsIDAsIDAsIDAuMDUpO2JveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwg
MCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpfS5tY2Utc3BsaXRidG4u
bWNlLWJ0bi1zbWFsbCAubWNlLW9wZW57cGFkZGluZzowIDNweCAwIDNweH0ubWNlLXJ0bCAubWNl
LXNwbGl0YnRue2RpcmVjdGlvbjpydGw7dGV4dC1hbGlnbjpyaWdodH0ubWNlLXJ0bCAubWNlLXNw
bGl0YnRuIGJ1dHRvbntwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1sZWZ0OjEwcHh9Lm1jZS1y
dGwgLm1jZS1zcGxpdGJ0biAubWNlLW9wZW57cGFkZGluZy1sZWZ0OjRweDtwYWRkaW5nLXJpZ2h0
OjRweH0ubWNlLXN0YWNrLWxheW91dC1pdGVte2Rpc3BsYXk6YmxvY2t9Lm1jZS10YWJze2Rpc3Bs
YXk6YmxvY2s7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2M1YzVjNX0ubWNlLXRhYntkaXNwbGF5
OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206MTtib3JkZXI6MXB4IHNvbGlkICNj
NWM1YzU7Ym9yZGVyLXdpZHRoOjAgMXB4IDAgMDtiYWNrZ3JvdW5kOiNlM2UzZTM7cGFkZGluZzo4
cHg7dGV4dC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMjU1LDI1NSwyNTUsMC43NSk7aGVpZ2h0OjEz
cHg7Y3Vyc29yOnBvaW50ZXJ9Lm1jZS10YWI6aG92ZXJ7YmFja2dyb3VuZDojZmRmZGZkfS5tY2Ut
dGFiLm1jZS1hY3RpdmV7YmFja2dyb3VuZDojZmRmZGZkO2JvcmRlci1ib3R0b20tY29sb3I6dHJh
bnNwYXJlbnQ7bWFyZ2luLWJvdHRvbTotMXB4O2hlaWdodDoxNHB4fS5tY2UtcnRsIC5tY2UtdGFi
c3t0ZXh0LWFsaWduOnJpZ2h0O2RpcmVjdGlvbjpydGx9Lm1jZS1ydGwgLm1jZS10YWJ7Ym9yZGVy
LXdpZHRoOjAgMCAwIDFweH0ubWNlLXRleHRib3h7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHgg
c29saWQgI2M1YzVjNTstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1
czozcHg7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFw
eCByZ2JhKDAsIDAsIDAsIDAuMDc1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJn
YmEoMCwgMCwgMCwgMC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwg
MCwgMC4wNzUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXIg
bGluZWFyIC4ycywgYm94LXNoYWRvdyBsaW5lYXIgLjJzO3RyYW5zaXRpb246Ym9yZGVyIGxpbmVh
ciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4ycztoZWlnaHQ6MjhweDtyZXNpemU6bm9uZTtwYWRk
aW5nOjAgNHB4IDAgNHB4O3doaXRlLXNwYWNlOnByZS13cmFwOyp3aGl0ZS1zcGFjZTpwcmU7Y29s
b3I6IzMzM30ubWNlLXRleHRib3g6Zm9jdXMsLm1jZS10ZXh0Ym94Lm1jZS1mb2N1c3tib3JkZXIt
Y29sb3I6cmdiYSg4MiwxNjgsMjM2LDAuOCk7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4
IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42
NSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwg
MCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAx
cHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHggcmdiYSg4MiwgMTY4LCAyMzYsIDAuNjUp
fS5tY2UtcGxhY2Vob2xkZXIgLm1jZS10ZXh0Ym94e2NvbG9yOiNhYWF9Lm1jZS10ZXh0Ym94Lm1j
ZS1tdWx0aWxpbmV7cGFkZGluZzo0cHh9Lm1jZS10ZXh0Ym94Lm1jZS1kaXNhYmxlZHtjb2xvcjoj
YWRhZGFkfS5tY2UtcnRsIC5tY2UtdGV4dGJveHt0ZXh0LWFsaWduOnJpZ2h0O2RpcmVjdGlvbjpy
dGx9Lm1jZS10aHJvYmJlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAw
JTtoZWlnaHQ6MTAwJTtvcGFjaXR5Oi42O2ZpbHRlcjphbHBoYShvcGFjaXR5PTYwKTt6b29tOjE7
YmFja2dyb3VuZDojZmZmIHVybCgnaW1nL2xvYWRlci5naWYnKSBuby1yZXBlYXQgY2VudGVyIGNl
bnRlcn0ubWNlLXRocm9iYmVyLWlubGluZXtwb3NpdGlvbjpzdGF0aWM7aGVpZ2h0OjUwcHh9QGZv
bnQtZmFjZXtmb250LWZhbWlseTondGlueW1jZSc7c3JjOnVybCgnZm9udHMvdGlueW1jZS5lb3Qn
KTtzcmM6dXJsKCdmb250cy90aW55bWNlLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9w
ZW50eXBlJyksdXJsKCdmb250cy90aW55bWNlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJ2Zv
bnRzL3RpbnltY2UudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLHVybCgnZm9udHMvdGlueW1jZS5z
dmcjdGlueW1jZScpIGZvcm1hdCgnc3ZnJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6
bm9ybWFsfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J3RpbnltY2Utc21hbGwnO3NyYzp1cmwoJ2Zv
bnRzL3RpbnltY2Utc21hbGwuZW90Jyk7c3JjOnVybCgnZm9udHMvdGlueW1jZS1zbWFsbC5lb3Q/
I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnZm9udHMvdGlueW1jZS1z
bWFsbC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCdmb250cy90aW55bWNlLXNtYWxsLnR0Zicp
IGZvcm1hdCgndHJ1ZXR5cGUnKSx1cmwoJ2ZvbnRzL3RpbnltY2Utc21hbGwuc3ZnI3RpbnltY2Un
KSBmb3JtYXQoJ3N2ZycpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOm5vcm1hbH0ubWNl
LWljb3tmb250LWZhbWlseTondGlueW1jZSc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6
bm9ybWFsO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246dGV4
dC10b3A7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtkaXNwbGF5OmlubGluZS1i
bG9jaztiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IGNlbnRlciBjZW50ZXI7d2lkdGg6MTZweDtoZWln
aHQ6MTZweDtjb2xvcjojMzMzOy1pZTctaWNvbjonICd9Lm1jZS1idG4tc21hbGwgLm1jZS1pY297
Zm9udC1mYW1pbHk6J3RpbnltY2Utc21hbGwnfS5tY2UtaWNvLGkubWNlLWktY2hlY2tib3h7em9v
bTpleHByZXNzaW9uKHRoaXMucnVudGltZVN0eWxlWyd6b29tJ10gPSAnMScsIHRoaXMuaW5uZXJI
VE1MID0gdGhpcy5jdXJyZW50U3R5bGVbJy1pZTctaWNvbiddLnN1YnN0cigxLCAxKSArICcmbmJz
cDsnKX0ubWNlLWktc2F2ZXstaWU3LWljb246IlxlMDAwIn0ubWNlLWktbmV3ZG9jdW1lbnR7LWll
Ny1pY29uOiJcZTAwMSJ9Lm1jZS1pLWZ1bGxwYWdley1pZTctaWNvbjoiXGUwMDIifS5tY2UtaS1h
bGlnbmxlZnR7LWllNy1pY29uOiJcZTAwMyJ9Lm1jZS1pLWFsaWduY2VudGVyey1pZTctaWNvbjoi
XGUwMDQifS5tY2UtaS1hbGlnbnJpZ2h0ey1pZTctaWNvbjoiXGUwMDUifS5tY2UtaS1hbGlnbmp1
c3RpZnl7LWllNy1pY29uOiJcZTAwNiJ9Lm1jZS1pLWN1dHstaWU3LWljb246IlxlMDA3In0ubWNl
LWktcGFzdGV7LWllNy1pY29uOiJcZTAwOCJ9Lm1jZS1pLXNlYXJjaHJlcGxhY2V7LWllNy1pY29u
OiJcZTAwOSJ9Lm1jZS1pLWJ1bGxpc3R7LWllNy1pY29uOiJcZTAwYSJ9Lm1jZS1pLW51bWxpc3R7
LWllNy1pY29uOiJcZTAwYiJ9Lm1jZS1pLWluZGVudHstaWU3LWljb246IlxlMDBjIn0ubWNlLWkt
b3V0ZGVudHstaWU3LWljb246IlxlMDBkIn0ubWNlLWktYmxvY2txdW90ZXstaWU3LWljb246Ilxl
MDBlIn0ubWNlLWktdW5kb3staWU3LWljb246IlxlMDBmIn0ubWNlLWktcmVkb3staWU3LWljb246
IlxlMDEwIn0ubWNlLWktbGlua3staWU3LWljb246IlxlMDExIn0ubWNlLWktdW5saW5rey1pZTct
aWNvbjoiXGUwMTIifS5tY2UtaS1hbmNob3J7LWllNy1pY29uOiJcZTAxMyJ9Lm1jZS1pLWltYWdl
ey1pZTctaWNvbjoiXGUwMTQifS5tY2UtaS1tZWRpYXstaWU3LWljb246IlxlMDE1In0ubWNlLWkt
aGVscHstaWU3LWljb246IlxlMDE2In0ubWNlLWktY29kZXstaWU3LWljb246IlxlMDE3In0ubWNl
LWktaW5zZXJ0ZGF0ZXRpbWV7LWllNy1pY29uOiJcZTAxOCJ9Lm1jZS1pLXByZXZpZXd7LWllNy1p
Y29uOiJcZTAxOSJ9Lm1jZS1pLWZvcmVjb2xvcnstaWU3LWljb246IlxlMDFhIn0ubWNlLWktYmFj
a2NvbG9yey1pZTctaWNvbjoiXGUwMWEifS5tY2UtaS10YWJsZXstaWU3LWljb246IlxlMDFiIn0u
bWNlLWktaHJ7LWllNy1pY29uOiJcZTAxYyJ9Lm1jZS1pLXJlbW92ZWZvcm1hdHstaWU3LWljb246
IlxlMDFkIn0ubWNlLWktc3Vic2NyaXB0ey1pZTctaWNvbjoiXGUwMWUifS5tY2UtaS1zdXBlcnNj
cmlwdHstaWU3LWljb246IlxlMDFmIn0ubWNlLWktY2hhcm1hcHstaWU3LWljb246IlxlMDIwIn0u
bWNlLWktZW1vdGljb25zey1pZTctaWNvbjoiXGUwMjEifS5tY2UtaS1wcmludHstaWU3LWljb246
IlxlMDIyIn0ubWNlLWktZnVsbHNjcmVlbnstaWU3LWljb246IlxlMDIzIn0ubWNlLWktc3BlbGxj
aGVja2Vyey1pZTctaWNvbjoiXGUwMjQifS5tY2UtaS1ub25icmVha2luZ3staWU3LWljb246Ilxl
MDI1In0ubWNlLWktdGVtcGxhdGV7LWllNy1pY29uOiJcZTAyNiJ9Lm1jZS1pLXBhZ2VicmVha3st
aWU3LWljb246IlxlMDI3In0ubWNlLWktcmVzdG9yZWRyYWZ0ey1pZTctaWNvbjoiXGUwMjgifS5t
Y2UtaS11bnRpdGxlZHstaWU3LWljb246IlxlMDI5In0ubWNlLWktYm9sZHstaWU3LWljb246Ilxl
MDJhIn0ubWNlLWktaXRhbGljey1pZTctaWNvbjoiXGUwMmIifS5tY2UtaS11bmRlcmxpbmV7LWll
Ny1pY29uOiJcZTAyYyJ9Lm1jZS1pLXN0cmlrZXRocm91Z2h7LWllNy1pY29uOiJcZTAyZCJ9Lm1j
ZS1pLXZpc3VhbGNoYXJzey1pZTctaWNvbjoiXGUwMmUifS5tY2UtaS1sdHJ7LWllNy1pY29uOiJc
ZTAyZiJ9Lm1jZS1pLXJ0bHstaWU3LWljb246IlxlMDMwIn0ubWNlLWktY29weXstaWU3LWljb246
IlxlMDMxIn0ubWNlLWktcmVzaXpley1pZTctaWNvbjoiXGUwMzIifS5tY2UtaS1icm93c2V7LWll
Ny1pY29uOiJcZTAzNCJ9Lm1jZS1pLXBhc3RldGV4dHstaWU3LWljb246IlxlMDM1In0ubWNlLWkt
Y2hlY2tib3gsLm1jZS1pLXNlbGVjdGVkey1pZTctaWNvbjoiXGUwMzMifS5tY2UtaS1zZWxlY3Rl
ZHt2aXNpYmlsaXR5OmhpZGRlbn0ubWNlLWktYmFja2NvbG9ye2JhY2tncm91bmQ6I0JCQn0KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvc2tpbi5taW4u
Y3NzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMv
c2tpbnMvbGlnaHRncmF5L3NraW4ubWluLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMjg0YWMxZGVhNmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvc2tp
bi5taW4uY3NzCkBAIC0wLDAgKzEgQEAKKy5tY2UtY29udGFpbmVyLC5tY2UtY29udGFpbmVyICos
Lm1jZS13aWRnZXQsLm1jZS13aWRnZXQgKiwubWNlLXJlc2V0e21hcmdpbjowO3BhZGRpbmc6MDti
b3JkZXI6MDtvdXRsaW5lOjA7dmVydGljYWwtYWxpZ246dG9wO2JhY2tncm91bmQ6dHJhbnNwYXJl
bnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6IzMzMztmb250LWZhbWlseToiSGVsdmV0aWNh
IE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O3RleHQtc2hh
ZG93Om5vbmU7ZmxvYXQ6bm9uZTtwb3NpdGlvbjpzdGF0aWM7d2lkdGg6YXV0bztoZWlnaHQ6YXV0
bzt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOmluaGVyaXQ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0
LWNvbG9yOnRyYW5zcGFyZW50O2xpbmUtaGVpZ2h0Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7
dGV4dC1hbGlnbjpsZWZ0Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDstd2Via2l0LWJveC1z
aXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXJlY3Rpb246bHRyfS5t
Y2Utd2lkZ2V0IGJ1dHRvbnstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1z
aXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1jZS1jb250YWluZXIgKlt1
bnNlbGVjdGFibGVdey1tb3otdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5v
bmU7LW8tdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5tY2UtZmFkZXtvcGFjaXR5
OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5lYXI7dHJhbnNpdGlvbjpvcGFj
aXR5IC4xNXMgbGluZWFyfS5tY2UtZmFkZS5tY2UtaW57b3BhY2l0eToxfS5tY2UtdGlueW1jZXt2
aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLWZ1bGxz
Y3JlZW57Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6
MTAwJTt6LWluZGV4OjEwMH1kaXYubWNlLWZ1bGxzY3JlZW57cG9zaXRpb246Zml4ZWQ7dG9wOjA7
bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG99Lm1jZS10aW55bWNle2Rpc3BsYXk6YmxvY2s7
LXdlYmtpdC1ib3JkZXItcmFkaXVzOjJweDstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1y
YWRpdXM6MnB4fS5tY2Utd29yZGNvdW50e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7
cGFkZGluZzo4cHh9ZGl2Lm1jZS1lZGl0LWFyZWF7YmFja2dyb3VuZDojRkZGO2ZpbHRlcjpub25l
fS5tY2Utc3RhdHVzYmFye3Bvc2l0aW9uOnJlbGF0aXZlfS5tY2Utc3RhdHVzYmFyIC5tY2UtY29u
dGFpbmVyLWJvZHl7cG9zaXRpb246cmVsYXRpdmV9Lm1jZS1mdWxsc2NyZWVuIC5tY2UtcmVzaXpl
aGFuZGxle2Rpc3BsYXk6bm9uZX0ubWNlLWNoYXJtYXB7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNl
fS5tY2UtY2hhcm1hcCB0ZHtjdXJzb3I6ZGVmYXVsdDtib3JkZXI6MXB4IHNvbGlkICM5ZTllOWU7
d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtsaW5lLWhlaWdodDoyMHB4O3RleHQtYWxpZ246Y2VudGVy
O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtwYWRkaW5nOjJweH0ubWNlLWNoYXJtYXAgdGQgZGl2e3Rl
eHQtYWxpZ246Y2VudGVyfS5tY2UtY2hhcm1hcCB0ZDpob3ZlcntiYWNrZ3JvdW5kOiNkOWQ5ZDl9
Lm1jZS1ncmlkIHRkIGRpdntib3JkZXI6MXB4IHNvbGlkICNkNmQ2ZDY7d2lkdGg6MTJweDtoZWln
aHQ6MTJweDttYXJnaW46MnB4O2N1cnNvcjpwb2ludGVyfS5tY2UtZ3JpZCB0ZCBkaXY6Zm9jdXN7
Ym9yZGVyLWNvbG9yOiNhMWExYTF9Lm1jZS1ncmlke2JvcmRlci1zcGFjaW5nOjJweDtib3JkZXIt
Y29sbGFwc2U6c2VwYXJhdGV9Lm1jZS1ncmlkIGF7ZGlzcGxheTpibG9jaztib3JkZXI6MXB4IHNv
bGlkIHRyYW5zcGFyZW50fS5tY2UtZ3JpZCBhOmhvdmVyLC5tY2UtZ3JpZCBhOmZvY3Vze2JvcmRl
ci1jb2xvcjojYTFhMWExfS5tY2UtZ3JpZC1ib3JkZXJ7bWFyZ2luOjAgNHB4IDAgNHB4fS5tY2Ut
Z3JpZC1ib3JkZXIgYXtib3JkZXItY29sb3I6I2Q2ZDZkNjt3aWR0aDoxM3B4O2hlaWdodDoxM3B4
fS5tY2UtZ3JpZC1ib3JkZXIgYTpob3ZlciwubWNlLWdyaWQtYm9yZGVyIGEubWNlLWFjdGl2ZXti
b3JkZXItY29sb3I6I2ExYTFhMTtiYWNrZ3JvdW5kOiNjOGRlZjR9Lm1jZS10ZXh0LWNlbnRlcnt0
ZXh0LWFsaWduOmNlbnRlcn1kaXYubWNlLXRpbnltY2UtaW5saW5le3dpZHRoOjEwMCU7LXdlYmtp
dC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5t
Y2UtdG9vbGJhci1ncnB7cGFkZGluZy1ib3R0b206MnB4fS5tY2UtdG9vbGJhci1ncnAgLm1jZS1m
bG93LWxheW91dC1pdGVte21hcmdpbi1ib3R0b206MH0ubWNlLXJ0bCAubWNlLXdvcmRjb3VudHts
ZWZ0OjA7cmlnaHQ6YXV0b30ubWNlLWNvbnRhaW5lciwubWNlLWNvbnRhaW5lci1ib2R5e2Rpc3Bs
YXk6YmxvY2t9Lm1jZS1hdXRvc2Nyb2xse292ZXJmbG93OmhpZGRlbn0ubWNlLXNjcm9sbGJhcntw
b3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3cHg7aGVpZ2h0OjEwMCU7dG9wOjJweDtyaWdodDoycHg7
b3BhY2l0eTouNDtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7em9vbToxfS5tY2Utc2Nyb2xsYmFy
LWh7dG9wOmF1dG87cmlnaHQ6YXV0bztsZWZ0OjJweDtib3R0b206MnB4O3dpZHRoOjEwMCU7aGVp
Z2h0OjdweH0ubWNlLXNjcm9sbGJhci10aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5k
LWNvbG9yOiMwMDA7Ym9yZGVyOjFweCBzb2xpZCAjODg4O2JvcmRlci1jb2xvcjpyZ2JhKDg1LDg1
LDg1LDAuNik7d2lkdGg6NXB4O2hlaWdodDoxMDAlOy13ZWJraXQtYm9yZGVyLXJhZGl1czo3cHg7
LW1vei1ib3JkZXItcmFkaXVzOjdweDtib3JkZXItcmFkaXVzOjdweH0ubWNlLXNjcm9sbGJhci1o
IC5tY2Utc2Nyb2xsYmFyLXRodW1ie3dpZHRoOjEwMCU7aGVpZ2h0OjVweH0ubWNlLXNjcm9sbGJh
cjpob3ZlciwubWNlLXNjcm9sbGJhci5tY2UtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I0FBQTtv
cGFjaXR5Oi42O2ZpbHRlcjphbHBoYShvcGFjaXR5PTYwKTt6b29tOjE7LXdlYmtpdC1ib3JkZXIt
cmFkaXVzOjdweDstbW96LWJvcmRlci1yYWRpdXM6N3B4O2JvcmRlci1yYWRpdXM6N3B4fS5tY2Ut
c2Nyb2xse3Bvc2l0aW9uOnJlbGF0aXZlfS5tY2UtcGFuZWx7Ym9yZGVyOjAgc29saWQgIzllOWU5
ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjA7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1n
cmFkaWVudCh0b3AsICNmZGZkZmQsICNkZGQpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFk
aWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKCNmZGZkZmQpLCB0bygjZGRkKSk7YmFja2dy
b3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZGZkZmQsICNkZGQpO2Jh
Y2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZkZmRmZCwgI2RkZCk7YmFj
a2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmRmZGZkLCAjZGRkKTti
YWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0u
TWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmZkZmRmZCcsIGVuZENvbG9yc3Ry
PScjZmZkZGRkZGQnLCBHcmFkaWVudFR5cGU9MCk7em9vbToxfS5tY2UtZmxvYXRwYW5lbHtwb3Np
dGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAsIDAs
IDAuMik7LW1vei1ib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO2JveC1z
aGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMil9Lm1jZS1mbG9hdHBhbmVsLm1jZS1m
aXhlZHtwb3NpdGlvbjpmaXhlZH0ubWNlLWZsb2F0cGFuZWwgLm1jZS1hcnJvdywubWNlLWZsb2F0
cGFuZWwgLm1jZS1hcnJvdzphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3dp
ZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xp
ZH0ubWNlLWZsb2F0cGFuZWwgLm1jZS1hcnJvd3tib3JkZXItd2lkdGg6MTFweH0ubWNlLWZsb2F0
cGFuZWwgLm1jZS1hcnJvdzphZnRlcntib3JkZXItd2lkdGg6MTBweDtjb250ZW50OiIifS5tY2Ut
ZmxvYXRwYW5lbC5tY2UtcG9wb3ZlcntmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWlj
cm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBmYWxzZSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDst
d2Via2l0LWJvcmRlci1yYWRpdXM6NnB4Oy1tb3otYm9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyLXJh
ZGl1czo2cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIp
Oy1tb3otYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtib3gtc2hhZG93
OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO3RvcDowO2xlZnQ6MDtiYWNrZ3JvdW5kOiNm
ZmY7Ym9yZGVyOjFweCBzb2xpZCAjOWU5ZTllO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCww
LjI1KX0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRvbXttYXJnaW4tdG9wOjEw
cHg7Km1hcmdpbi10b3A6MH0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRvbT4u
bWNlLWFycm93e2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xMXB4O2JvcmRlci10b3Atd2lkdGg6MDti
b3JkZXItYm90dG9tLWNvbG9yOiM5ZTllOWU7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsMCww
LDAuMjUpO3RvcDotMTFweH0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRvbT4u
bWNlLWFycm93OmFmdGVye3RvcDoxcHg7bWFyZ2luLWxlZnQ6LTEwcHg7Ym9yZGVyLXRvcC13aWR0
aDowO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIu
bWNlLWJvdHRvbS5tY2Utc3RhcnR7bWFyZ2luLWxlZnQ6LTIycHh9Lm1jZS1mbG9hdHBhbmVsLm1j
ZS1wb3BvdmVyLm1jZS1ib3R0b20ubWNlLXN0YXJ0Pi5tY2UtYXJyb3d7bGVmdDoyMHB4fS5tY2Ut
ZmxvYXRwYW5lbC5tY2UtcG9wb3Zlci5tY2UtYm90dG9tLm1jZS1lbmR7bWFyZ2luLWxlZnQ6MjJw
eH0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRvbS5tY2UtZW5kPi5tY2UtYXJy
b3d7cmlnaHQ6MTBweDtsZWZ0OmF1dG99Lm1jZS1mdWxsc2NyZWVue2JvcmRlcjowO3BhZGRpbmc6
MDttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojZmZmO2hlaWdodDoxMDAlfWRp
di5tY2UtZnVsbHNjcmVlbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjB9I21jZS1tb2RhbC1i
bG9ja3tvcGFjaXR5OjA7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7em9vbToxO3Bvc2l0aW9uOmZp
eGVkO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6IzAwMH0j
bWNlLW1vZGFsLWJsb2NrLm1jZS1pbntvcGFjaXR5Oi4zO2ZpbHRlcjphbHBoYShvcGFjaXR5PTMw
KTt6b29tOjF9Lm1jZS13aW5kb3ctbW92ZXtjdXJzb3I6bW92ZX0ubWNlLXdpbmRvd3std2Via2l0
LWJvcmRlci1yYWRpdXM6NnB4Oy1tb3otYm9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyLXJhZGl1czo2
cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMyk7LW1vei1i
b3gtc2hhZG93OjAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMyk7Ym94LXNoYWRvdzowIDNweCA3
cHggcmdiYSgwLCAwLCAwLCAwLjMpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNy
b3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2Jh
Y2tncm91bmQ6I2ZmZjtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowOy13ZWJr
aXQtdHJhbnNpdGlvbjpvcGFjaXR5IDE1MG1zIGVhc2UtaW47dHJhbnNpdGlvbjpvcGFjaXR5IDE1
MG1zIGVhc2UtaW59Lm1jZS13aW5kb3cubWNlLWlue29wYWNpdHk6MX0ubWNlLXdpbmRvdy1oZWFk
e3BhZGRpbmc6OXB4IDE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2M1YzVjNTtwb3NpdGlv
bjpyZWxhdGl2ZX0ubWNlLXdpbmRvdy1oZWFkIC5tY2UtY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7
cmlnaHQ6MTVweDt0b3A6OXB4O2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7bGluZS1o
ZWlnaHQ6MjBweDtjb2xvcjojODU4NTg1O2N1cnNvcjpwb2ludGVyO2hlaWdodDoyMHB4O292ZXJm
bG93OmhpZGRlbn0ubWNlLWNsb3NlOmhvdmVye2NvbG9yOiNhZGFkYWR9Lm1jZS13aW5kb3ctaGVh
ZCAubWNlLXRpdGxle2xpbmUtaGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6
Ym9sZDt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZWxlZ2liaWxpdHk7cGFkZGluZy1yaWdodDoxMHB4
fS5tY2Utd2luZG93IC5tY2UtY29udGFpbmVyLWJvZHl7ZGlzcGxheTpibG9ja30ubWNlLWZvb3R7
ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXRvcDoxcHggc29saWQg
I2M1YzVjNTstd2Via2l0LWJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7LW1vei1ib3JkZXItcmFk
aXVzOjAgMCA2cHggNnB4O2JvcmRlci1yYWRpdXM6MCAwIDZweCA2cHh9Lm1jZS13aW5kb3ctaGVh
ZCAubWNlLWRyYWdoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtjdXJzb3I6bW92ZTt3
aWR0aDo5MCU7aGVpZ2h0OjEwMCV9Lm1jZS13aW5kb3cgaWZyYW1le3dpZHRoOjEwMCU7aGVpZ2h0
OjEwMCV9Lm1jZS13aW5kb3cubWNlLWZ1bGxzY3JlZW4sLm1jZS13aW5kb3cubWNlLWZ1bGxzY3Jl
ZW4gLm1jZS1mb290ey13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czow
O2JvcmRlci1yYWRpdXM6MH0ubWNlLXJ0bCAubWNlLXdpbmRvdy1oZWFkIC5tY2UtY2xvc2V7cG9z
aXRpb246YWJzb2x1dGU7cmlnaHQ6YXV0bztsZWZ0OjE1cHh9Lm1jZS1ydGwgLm1jZS13aW5kb3ct
aGVhZCAubWNlLWRyYWdoe2xlZnQ6YXV0bztyaWdodDowfS5tY2UtcnRsIC5tY2Utd2luZG93LWhl
YWQgLm1jZS10aXRsZXtkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246cmlnaHR9Lm1jZS1hYnMtbGF5
b3V0e3Bvc2l0aW9uOnJlbGF0aXZlfWJvZHkgLm1jZS1hYnMtbGF5b3V0LWl0ZW0sLm1jZS1hYnMt
ZW5ke3Bvc2l0aW9uOmFic29sdXRlfS5tY2UtYWJzLWVuZHt3aWR0aDoxcHg7aGVpZ2h0OjFweH0u
bWNlLWNvbnRhaW5lci1ib2R5Lm1jZS1hYnMtbGF5b3V0e292ZXJmbG93OmhpZGRlbn0ubWNlLXRv
b2x0aXB7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzo1cHg7b3BhY2l0eTouODtmaWx0ZXI6YWxw
aGEob3BhY2l0eT04MCk7em9vbToxfS5tY2UtdG9vbHRpcC1pbm5lcntmb250LXNpemU6MTFweDti
YWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6I2ZmZjttYXgtd2lkdGg6MjAwcHg7cGFkZGluZzo1
cHggOHB4IDRweCA4cHg7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm9ybWFsfS5tY2Ut
dG9vbHRpcC1pbm5lcnstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1
czozcHg7Ym9yZGVyLXJhZGl1czozcHh9Lm1jZS10b29sdGlwLWlubmVyey13ZWJraXQtYm94LXNo
YWRvdzowIDAgNXB4ICMwMDAwMDA7LW1vei1ib3gtc2hhZG93OjAgMCA1cHggIzAwMDAwMDtib3gt
c2hhZG93OjAgMCA1cHggIzAwMDAwMH0ubWNlLXRvb2x0aXAtYXJyb3d7cG9zaXRpb246YWJzb2x1
dGU7d2lkdGg6MDtoZWlnaHQ6MDtsaW5lLWhlaWdodDowO2JvcmRlcjo1cHggZGFzaGVkICMwMDB9
Lm1jZS10b29sdGlwLWFycm93LW57Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwfS5tY2UtdG9vbHRp
cC1hcnJvdy1ze2JvcmRlci10b3AtY29sb3I6IzAwMH0ubWNlLXRvb2x0aXAtYXJyb3ctZXtib3Jk
ZXItbGVmdC1jb2xvcjojMDAwfS5tY2UtdG9vbHRpcC1hcnJvdy13e2JvcmRlci1yaWdodC1jb2xv
cjojMDAwfS5tY2UtdG9vbHRpcC1udywubWNlLXRvb2x0aXAtc3d7bWFyZ2luLWxlZnQ6LTE0cHh9
Lm1jZS10b29sdGlwLW4gLm1jZS10b29sdGlwLWFycm93e3RvcDowcHg7bGVmdDo1MCU7bWFyZ2lu
LWxlZnQ6LTVweDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci10b3A6bm9uZTtib3Jk
ZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnR9
Lm1jZS10b29sdGlwLW53IC5tY2UtdG9vbHRpcC1hcnJvd3t0b3A6MDtsZWZ0OjEwcHg7Ym9yZGVy
LWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQtY29sb3I6dHJh
bnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tY2UtdG9vbHRpcC1uZSAu
bWNlLXRvb2x0aXAtYXJyb3d7dG9wOjA7cmlnaHQ6MTBweDtib3JkZXItYm90dG9tLXN0eWxlOnNv
bGlkO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXIt
cmlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lm1jZS10b29sdGlwLXMgLm1jZS10b29sdGlwLWFycm93
e2JvdHRvbTowO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi01cHg7Ym9yZGVyLXRvcC1zdHlsZTpzb2xp
ZDtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVy
LXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tY2UtdG9vbHRpcC1zdyAubWNlLXRvb2x0aXAtYXJy
b3d7Ym90dG9tOjA7bGVmdDoxMHB4O2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRv
bTpub25lO2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0
cmFuc3BhcmVudH0ubWNlLXRvb2x0aXAtc2UgLm1jZS10b29sdGlwLWFycm93e2JvdHRvbTowO3Jp
Z2h0OjEwcHg7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVy
LWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5t
Y2UtdG9vbHRpcC1lIC5tY2UtdG9vbHRpcC1hcnJvd3tyaWdodDowO3RvcDo1MCU7bWFyZ2luLXRv
cDotNXB4O2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10
b3AtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudH0ubWNl
LXRvb2x0aXAtdyAubWNlLXRvb2x0aXAtYXJyb3d7bGVmdDowO3RvcDo1MCU7bWFyZ2luLXRvcDot
NXB4O2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItbGVmdDpub25lO2JvcmRlci10b3At
Y29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudH0ubWNlLWJ0
bntib3JkZXI6MXB4IHNvbGlkICNiMWIxYjE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKSBy
Z2JhKDAsMCwwLDAuMSkgcmdiYSgwLDAsMCwwLjI1KSByZ2JhKDAsMCwwLDAuMjUpO3Bvc2l0aW9u
OnJlbGF0aXZlO3RleHQtc2hhZG93OjAgMXB4IDFweCByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpO2Rp
c3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9vbToxOy13ZWJraXQtYm9yZGVy
LXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweDstd2Vi
a2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIDAg
MXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAw
IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7
Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgMCAxcHgg
MnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7YmFja2dyb3VuZC1jb2xvcjojZjBmMGYwO2JhY2tncm91
bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmLCAjZDlkOWQ5KTtiYWNrZ3Jv
dW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZmZm
KSwgdG8oI2Q5ZDlkOSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQo
dG9wLCAjZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0
b3AsICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJv
dHRvbSwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnBy
b2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScj
ZmZmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2ZmZDlkOWQ5JywgR3JhZGllbnRUeXBlPTApO3pvb206
MX0ubWNlLWJ0bjpob3ZlciwubWNlLWJ0bjpmb2N1c3tjb2xvcjojMzMzO2JhY2tncm91bmQtY29s
b3I6I2UzZTNlMztiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2Yy
ZjJmMiwgI2NjYyk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAw
LCAwIDEwMCUsIGZyb20oI2YyZjJmMiksIHRvKCNjY2MpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJr
aXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2YyZjJmMiwgI2NjYyk7YmFja2dyb3VuZC1pbWFnZTot
by1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmMmYyLCAjY2NjKTtiYWNrZ3JvdW5kLWltYWdlOmxp
bmVhci1ncmFkaWVudCh0byBib3R0b20sICNmMmYyZjIsICNjY2MpO2JhY2tncm91bmQtcmVwZWF0
OnJlcGVhdC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGll
bnQoc3RhcnRDb2xvcnN0cj0nI2ZmZjJmMmYyJywgZW5kQ29sb3JzdHI9JyNmZmNjY2NjYycsIEdy
YWRpZW50VHlwZT0wKTt6b29tOjF9Lm1jZS1idG4ubWNlLWRpc2FibGVkIGJ1dHRvbiwubWNlLWJ0
bi5tY2UtZGlzYWJsZWQ6aG92ZXIgYnV0dG9ue2N1cnNvcjpkZWZhdWx0Oy13ZWJraXQtYm94LXNo
YWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtvcGFjaXR5Oi40
O2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTt6b29tOjF9Lm1jZS1idG4ubWNlLWFjdGl2ZSwubWNl
LWJ0bi5tY2UtYWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Q2ZDZkNjtiYWNrZ3JvdW5k
LWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dy
b3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2U2
ZTZlNiksIHRvKCNjMGMwYzApKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRp
ZW50KHRvcCwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3Jh
ZGllbnQodG9wLCAjZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFk
aWVudCh0byBib3R0b20sICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVh
dC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3Rh
cnRDb2xvcnN0cj0nI2ZmZTZlNmU2JywgZW5kQ29sb3JzdHI9JyNmZmMwYzBjMCcsIEdyYWRpZW50
VHlwZT0wKTt6b29tOjE7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAs
IDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTstbW96LWJveC1zaGFk
b3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAs
IDAsIDAsIDAuMDUpO2JveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4x
NSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpfS5tY2UtYnRuOm5vdCgubWNlLWRpc2Fi
bGVkKTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDZkNmQ2O2JhY2tncm91bmQtaW1hZ2U6LW1v
ei1saW5lYXItZ3JhZGllbnQodG9wLCAjZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLWltYWdl
Oi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZTZlNmU2KSwgdG8o
I2MwYzBjMCkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAj
ZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3As
ICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJv
dHRvbSwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVy
OnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3Ry
PScjZmZlNmU2ZTYnLCBlbmRDb2xvcnN0cj0nI2ZmYzBjMGMwJywgR3JhZGllbnRUeXBlPTApO3pv
b206MTstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4x
NSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOy1tb3otYm94LXNoYWRvdzppbnNldCAw
IDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4w
NSk7Ym94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHgg
MnB4IHJnYmEoMCwgMCwgMCwgMC4wNSl9Lm1jZS1idG4gYnV0dG9ue3BhZGRpbmc6NHB4IDEwcHg7
Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjBweDsqbGluZS1oZWlnaHQ6MTZweDtjdXJzb3I6
cG9pbnRlcjtjb2xvcjojMzMzO3RleHQtYWxpZ246Y2VudGVyO292ZXJmbG93OnZpc2libGU7LXdl
YmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm1jZS1idG4gYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2Jv
cmRlcjowO3BhZGRpbmc6MH0ubWNlLWJ0biBpe3RleHQtc2hhZG93OjFweCAxcHggI2ZmZn0ubWNl
LXByaW1hcnl7bWluLXdpZHRoOjUwcHg7Y29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNiMWIx
YjE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKSByZ2JhKDAsMCwwLDAuMSkgcmdiYSgwLDAs
MCwwLjI1KSByZ2JhKDAsMCwwLDAuMjUpO2JhY2tncm91bmQtY29sb3I6IzAwNmRjYztiYWNrZ3Jv
dW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzA4YywgIzA0Yyk7YmFja2dyb3Vu
ZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oIzA4Yyks
IHRvKCMwNGMpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwg
IzA4YywgIzA0Yyk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCAjMDhj
LCAjMDRjKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwOGMs
ICMwNGMpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRy
YW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMDA4OGNjJywgZW5k
Q29sb3JzdHI9JyNmZjAwNDRjYycsIEdyYWRpZW50VHlwZT0wKTt6b29tOjF9Lm1jZS1wcmltYXJ5
OmhvdmVyLC5tY2UtcHJpbWFyeTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiMwMDVmYjM7YmFja2dy
b3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMwMDc3YjMsICMwMDNjYjMpO2Jh
Y2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9t
KCMwMDc3YjMpLCB0bygjMDAzY2IzKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1n
cmFkaWVudCh0b3AsICMwMDc3YjMsICMwMDNjYjMpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFy
LWdyYWRpZW50KHRvcCwgIzAwNzdiMywgIzAwM2NiMyk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXIt
Z3JhZGllbnQodG8gYm90dG9tLCAjMDA3N2IzLCAjMDAzY2IzKTtiYWNrZ3JvdW5kLXJlcGVhdDpy
ZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50
KHN0YXJ0Q29sb3JzdHI9JyNmZjAwNzdiMycsIGVuZENvbG9yc3RyPScjZmYwMDNjYjMnLCBHcmFk
aWVudFR5cGU9MCk7em9vbToxfS5tY2UtcHJpbWFyeS5tY2UtZGlzYWJsZWQgYnV0dG9uLC5tY2Ut
cHJpbWFyeS5tY2UtZGlzYWJsZWQ6aG92ZXIgYnV0dG9ue2N1cnNvcjpkZWZhdWx0Oy13ZWJraXQt
Ym94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtvcGFj
aXR5Oi40O2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTt6b29tOjF9Lm1jZS1wcmltYXJ5Lm1jZS1h
Y3RpdmUsLm1jZS1wcmltYXJ5Lm1jZS1hY3RpdmU6aG92ZXIsLm1jZS1wcmltYXJ5Om5vdCgubWNl
LWRpc2FibGVkKTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDA1Mjk5O2JhY2tncm91bmQtaW1h
Z2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMDY5LCAjMDM5KTtiYWNrZ3JvdW5kLWltYWdl
Oi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjMDY5KSwgdG8oIzAz
OSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMDY5LCAj
MDM5KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMwNjksICMwMzkp
O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzA2OSwgIzAzOSk7
YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3Jt
Lk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYwMDY2OTknLCBlbmRDb2xvcnN0
cj0nI2ZmMDAzMzk5JywgR3JhZGllbnRUeXBlPTApO3pvb206MTstd2Via2l0LWJveC1zaGFkb3c6
aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAs
IDAsIDAuMDUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAw
LjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym94LXNoYWRvdzppbnNldCAwIDJw
eCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSl9
Lm1jZS1wcmltYXJ5IGJ1dHRvbiwubWNlLXByaW1hcnkgYnV0dG9uIGl7Y29sb3I6I2ZmZjt0ZXh0
LXNoYWRvdzoxcHggMXB4ICMzMzN9Lm1jZS1idG4tbGFyZ2UgYnV0dG9ue3BhZGRpbmc6OXB4IDE0
cHg7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6bm9ybWFsOy13ZWJraXQtYm9yZGVyLXJhZGl1
czo1cHg7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweH0ubWNlLWJ0bi1s
YXJnZSBpe21hcmdpbi10b3A6MnB4fS5tY2UtYnRuLXNtYWxsIGJ1dHRvbntwYWRkaW5nOjFweCA1
cHg7Zm9udC1zaXplOjEycHg7KnBhZGRpbmctYm90dG9tOjJweH0ubWNlLWJ0bi1zbWFsbCBpe2xp
bmUtaGVpZ2h0OjIwcHg7dmVydGljYWwtYWxpZ246dG9wOypsaW5lLWhlaWdodDoxOHB4fS5tY2Ut
YnRuIC5tY2UtY2FyZXR7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLWxlZnQ6MH0ubWNlLWJ0bi1zbWFs
bCAubWNlLWNhcmV0e21hcmdpbi10b3A6OHB4O21hcmdpbi1sZWZ0OjB9Lm1jZS1jYXJldHtkaXNw
bGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206MTt3aWR0aDowO2hlaWdodDow
O3ZlcnRpY2FsLWFsaWduOnRvcDtib3JkZXItdG9wOjRweCBzb2xpZCAjMzMzO2JvcmRlci1yaWdo
dDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50
O2NvbnRlbnQ6IiJ9Lm1jZS1kaXNhYmxlZCAubWNlLWNhcmV0e2JvcmRlci10b3AtY29sb3I6I2Fh
YX0ubWNlLWNhcmV0Lm1jZS11cHtib3JkZXItYm90dG9tOjRweCBzb2xpZCAjMzMzO2JvcmRlci10
b3A6MH0ubWNlLXJ0bCAubWNlLWJ0biBidXR0b257ZGlyZWN0aW9uOnJ0bH0ubWNlLWJ0bi1ncm91
cCAubWNlLWJ0bntib3JkZXItd2lkdGg6MXB4IDAgMXB4IDA7bWFyZ2luOjA7LXdlYmtpdC1ib3Jk
ZXItcmFkaXVzOjA7LW1vei1ib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXJhZGl1czowfS5tY2UtYnRu
LWdyb3VwIC5tY2UtZmlyc3R7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNiMWIxYjE7Ym9yZGVyLWxl
ZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yNSk7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweCAw
IDAgM3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDtib3JkZXItcmFkaXVzOjNweCAw
IDAgM3B4fS5tY2UtYnRuLWdyb3VwIC5tY2UtbGFzdHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNi
MWIxYjE7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7LXdlYmtpdC1ib3Jk
ZXItcmFkaXVzOjAgM3B4IDNweCAwOy1tb3otYm9yZGVyLXJhZGl1czowIDNweCAzcHggMDtib3Jk
ZXItcmFkaXVzOjAgM3B4IDNweCAwfS5tY2UtYnRuLWdyb3VwIC5tY2UtZmlyc3QubWNlLWxhc3R7
LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1y
YWRpdXM6M3B4fS5tY2UtYnRuLWdyb3VwIC5tY2UtYnRuLm1jZS1mbG93LWxheW91dC1pdGVte21h
cmdpbjowfS5tY2UtY2hlY2tib3h7Y3Vyc29yOnBvaW50ZXJ9aS5tY2UtaS1jaGVja2JveHttYXJn
aW46MCAzcHggMCAwO2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTstd2Via2l0LWJvcmRlci1yYWRp
dXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1i
b3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFweCAy
cHggcmdiYSgwLCAwLCAwLCAwLjA1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2Jh
KDI1NSwgMjU1LCAyNTUsIDAuMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO2JveC1z
aGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIDAgMXB4IDJweCBy
Z2JhKDAsIDAsIDAsIDAuMDUpO2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtiYWNrZ3JvdW5kLWlt
YWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1p
bWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2ZmZiksIHRv
KCNkOWQ5ZDkpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwg
I2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCAj
ZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20s
ICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9naWQ6
RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZmZm
ZmZmJywgZW5kQ29sb3JzdHI9JyNmZmQ5ZDlkOScsIEdyYWRpZW50VHlwZT0wKTt6b29tOjE7dGV4
dC1pbmRlbnQ6LTEwZW07KmZvbnQtc2l6ZTowOypsaW5lLWhlaWdodDowOyp0ZXh0LWluZGVudDow
O292ZXJmbG93OmhpZGRlbn0ubWNlLWNoZWNrZWQgaS5tY2UtaS1jaGVja2JveHtjb2xvcjojMzMz
O2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE2cHg7dGV4dC1pbmRlbnQ6MH0ubWNlLWNoZWNr
Ym94OmZvY3VzIGkubWNlLWktY2hlY2tib3gsLm1jZS1jaGVja2JveC5tY2UtZm9jdXMgaS5tY2Ut
aS1jaGVja2JveHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoODIsMTY4LDIzNiwwLjgpOy13ZWJraXQt
Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHgg
cmdiYSg4MiwgMTY4LCAyMzYsIDAuNjUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHgg
cmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHggcmdiYSg4MiwgMTY4LCAyMzYsIDAuNjUpO2Jv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJn
YmEoODIsIDE2OCwgMjM2LCAwLjY1KX0ubWNlLWNoZWNrYm94Lm1jZS1kaXNhYmxlZCAubWNlLWxh
YmVsLC5tY2UtY2hlY2tib3gubWNlLWRpc2FibGVkIGkubWNlLWktY2hlY2tib3h7Y29sb3I6I2Fj
YWNhY30ubWNlLXJ0bCAubWNlLWNoZWNrYm94e2RpcmVjdGlvbjpydGw7dGV4dC1hbGlnbjpyaWdo
dH0ubWNlLXJ0bCBpLm1jZS1pLWNoZWNrYm94e21hcmdpbjowIDAgMCAzcHh9Lm1jZS1jb2xvcmJ1
dHRvbiAubWNlLWljb3twb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLWNvbG9yYnV0dG9uLWdyaWR7bWFy
Z2luOjRweH0ubWNlLWNvbG9yYnV0dG9uIGJ1dHRvbntwYWRkaW5nLXJpZ2h0OjRweH0ubWNlLWNv
bG9yYnV0dG9uIC5tY2UtcHJldmlld3twYWRkaW5nLXJpZ2h0OjNweDtkaXNwbGF5OmJsb2NrO3Bv
c2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCU7bWFyZ2luLWxlZnQ6LTE0cHg7bWFyZ2lu
LXRvcDo3cHg7YmFja2dyb3VuZDpncmF5O3dpZHRoOjEzcHg7aGVpZ2h0OjJweDtvdmVyZmxvdzpo
aWRkZW59Lm1jZS1jb2xvcmJ1dHRvbi5tY2UtYnRuLXNtYWxsIC5tY2UtcHJldmlld3ttYXJnaW4t
bGVmdDotMTZweDtwYWRkaW5nLXJpZ2h0OjA7d2lkdGg6MTZweH0ubWNlLWNvbG9yYnV0dG9uIC5t
Y2Utb3BlbntwYWRkaW5nLWxlZnQ6NHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCB0cmFuc3BhcmVu
dDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5tY2UtY29sb3JidXR0b246aG92
ZXIgLm1jZS1vcGVue2JvcmRlci1sZWZ0LWNvbG9yOiNiZGJkYmQ7Ym9yZGVyLXJpZ2h0LWNvbG9y
OiNiZGJkYmR9Lm1jZS1jb2xvcmJ1dHRvbi5tY2UtYnRuLXNtYWxsIC5tY2Utb3BlbntwYWRkaW5n
OjAgM3B4IDAgM3B4fS5tY2UtcnRsIC5tY2UtY29sb3JidXR0b257ZGlyZWN0aW9uOnJ0bH0ubWNl
LXJ0bCAubWNlLWNvbG9yYnV0dG9uIC5tY2UtcHJldmlld3ttYXJnaW4tbGVmdDowO3BhZGRpbmct
cmlnaHQ6MDtwYWRkaW5nLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotMTRweH0ubWNlLXJ0bCAubWNl
LWNvbG9yYnV0dG9uLm1jZS1idG4tc21hbGwgLm1jZS1wcmV2aWV3e21hcmdpbi1sZWZ0OjA7cGFk
ZGluZy1yaWdodDowO21hcmdpbi1yaWdodDotMTdweDtwYWRkaW5nLWxlZnQ6MH0ubWNlLXJ0bCAu
bWNlLWNvbG9yYnV0dG9uIGJ1dHRvbntwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1sZWZ0OjEw
cHh9Lm1jZS1ydGwgLm1jZS1jb2xvcmJ1dHRvbiAubWNlLW9wZW57cGFkZGluZy1sZWZ0OjRweDtw
YWRkaW5nLXJpZ2h0OjRweH0ubWNlLWNvbWJvYm94e2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNw
bGF5OmlubGluZTsqem9vbToxOy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXIt
cmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAx
cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAx
cHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgw
LCAwLCAwLCAwLjA3NSk7KmhlaWdodDozMnB4fS5tY2UtY29tYm9ib3ggaW5wdXR7Ym9yZGVyOjFw
eCBzb2xpZCAjYzVjNWM1O2JvcmRlci1yaWdodC1jb2xvcjojYzVjNWM1O2hlaWdodDoyOHB4fS5t
Y2UtY29tYm9ib3gubWNlLWRpc2FibGVkIGlucHV0e2NvbG9yOiNhZGFkYWR9Lm1jZS1jb21ib2Jv
eC5tY2UtaGFzLW9wZW4gaW5wdXR7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweCAwIDAgNHB4Oy1t
b3otYm9yZGVyLXJhZGl1czo0cHggMCAwIDRweDtib3JkZXItcmFkaXVzOjRweCAwIDAgNHB4fS5t
Y2UtY29tYm9ib3ggLm1jZS1idG57Ym9yZGVyLWxlZnQ6MDstd2Via2l0LWJvcmRlci1yYWRpdXM6
MCA0cHggNHB4IDA7LW1vei1ib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwO2JvcmRlci1yYWRpdXM6
MCA0cHggNHB4IDB9Lm1jZS1jb21ib2JveCBidXR0b257cGFkZGluZy1yaWdodDo4cHg7cGFkZGlu
Zy1sZWZ0OjhweH0ubWNlLWNvbWJvYm94Lm1jZS1kaXNhYmxlZCAubWNlLWJ0biBidXR0b257Y3Vy
c29yOmRlZmF1bHQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7
Ym94LXNoYWRvdzpub25lO29wYWNpdHk6LjQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO3pvb206
MX0ubWNlLXBhdGh7ZGlzcGxheTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7
cGFkZGluZzo4cHg7d2hpdGUtc3BhY2U6bm9ybWFsfS5tY2UtcGF0aCAubWNlLXR4dHtkaXNwbGF5
OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0OjNweH0ubWNlLXBhdGggLm1jZS1wYXRoLWJvZHl7
ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm1jZS1wYXRoLWl0ZW17ZGlzcGxheTppbmxpbmUtYmxvY2s7
KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6IzMzM30ubWNlLXBh
dGgtaXRlbTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5tY2UtcGF0aC1pdGVtOmZv
Y3Vze2JhY2tncm91bmQ6IzY2Njtjb2xvcjojZmZmfS5tY2UtcGF0aCAubWNlLWRpdmlkZXJ7ZGlz
cGxheTppbmxpbmV9Lm1jZS1kaXNhYmxlZCAubWNlLXBhdGgtaXRlbXtjb2xvcjojYWFhfS5tY2Ut
cnRsIC5tY2UtcGF0aHtkaXJlY3Rpb246cnRsfS5tY2UtZmllbGRzZXR7Ym9yZGVyOjAgc29saWQg
IzlFOUU5RTstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7
Ym9yZGVyLXJhZGl1czozcHh9Lm1jZS1maWVsZHNldD4ubWNlLWNvbnRhaW5lci1ib2R5e21hcmdp
bi10b3A6LTE1cHh9Lm1jZS1maWVsZHNldC10aXRsZXttYXJnaW4tbGVmdDo1cHg7cGFkZGluZzow
IDVweCAwIDVweH0ubWNlLWZpdC1sYXlvdXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6
aW5saW5lOyp6b29tOjF9Lm1jZS1maXQtbGF5b3V0LWl0ZW17cG9zaXRpb246YWJzb2x1dGV9Lm1j
ZS1mbG93LWxheW91dC1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsq
em9vbToxfS5tY2UtZmxvdy1sYXlvdXQtaXRlbXttYXJnaW46MnB4IDAgMnB4IDJweH0ubWNlLWZs
b3ctbGF5b3V0LWl0ZW0ubWNlLWxhc3R7bWFyZ2luLXJpZ2h0OjJweH0ubWNlLWZsb3ctbGF5b3V0
e3doaXRlLXNwYWNlOm5vcm1hbH0ubWNlLXRpbnltY2UtaW5saW5lIC5tY2UtZmxvdy1sYXlvdXR7
d2hpdGUtc3BhY2U6bm93cmFwfS5tY2UtcnRsIC5tY2UtZmxvdy1sYXlvdXR7dGV4dC1hbGlnbjpy
aWdodDtkaXJlY3Rpb246cnRsfS5tY2UtcnRsIC5tY2UtZmxvdy1sYXlvdXQtaXRlbXttYXJnaW46
MnB4IDJweCAycHggMH0ubWNlLXJ0bCAubWNlLWZsb3ctbGF5b3V0LWl0ZW0ubWNlLWxhc3R7bWFy
Z2luLWxlZnQ6MnB4fS5tY2UtaWZyYW1le2JvcmRlcjowIHNvbGlkICM5ZTllOWU7d2lkdGg6MTAw
JTtoZWlnaHQ6MTAwJX0ubWNlLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5Omlu
bGluZTsqem9vbToxO3RleHQtc2hhZG93OjAgMXB4IDFweCByZ2JhKDI1NSwyNTUsMjU1LDAuNzUp
O292ZXJmbG93OmhpZGRlbn0ubWNlLWxhYmVsLm1jZS1hdXRvc2Nyb2xse292ZXJmbG93OmF1dG99
Lm1jZS1sYWJlbC5tY2UtZGlzYWJsZWR7Y29sb3I6I2FhYX0ubWNlLWxhYmVsLm1jZS1tdWx0aWxp
bmV7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1jZS1sYWJlbC5tY2UtZXJyb3J7Y29sb3I6I2EwMH0u
bWNlLXJ0bCAubWNlLWxhYmVse3RleHQtYWxpZ246cmlnaHQ7ZGlyZWN0aW9uOnJ0bH0ubWNlLW1l
bnViYXIgLm1jZS1tZW51YnRue2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kOnRy
YW5zcGFyZW50Oy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO2Jv
cmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9u
ZTtib3gtc2hhZG93Om5vbmU7ZmlsdGVyOm5vbmV9Lm1jZS1tZW51YmFye2JvcmRlcjoxcHggc29s
aWQgI2M0YzRjNH0ubWNlLW1lbnViYXIgLm1jZS1tZW51YnRuIGJ1dHRvbiBzcGFue2NvbG9yOiMz
MzN9Lm1jZS1tZW51YmFyIC5tY2UtY2FyZXR7Ym9yZGVyLXRvcC1jb2xvcjojMzMzfS5tY2UtbWVu
dWJhciAubWNlLW1lbnVidG46aG92ZXIsLm1jZS1tZW51YmFyIC5tY2UtbWVudWJ0bi5tY2UtYWN0
aXZlLC5tY2UtbWVudWJhciAubWNlLW1lbnVidG46Zm9jdXN7Ym9yZGVyLWNvbG9yOnRyYW5zcGFy
ZW50O2JhY2tncm91bmQ6I2U2ZTZlNjtmaWx0ZXI6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9u
ZTstbW96LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9Lm1jZS1tZW51YnRuIHNwYW57
Y29sb3I6IzMzMzttYXJnaW4tcmlnaHQ6MnB4O2xpbmUtaGVpZ2h0OjIwcHg7KmxpbmUtaGVpZ2h0
OjE2cHh9Lm1jZS1tZW51YnRuLm1jZS1idG4tc21hbGwgc3Bhbntmb250LXNpemU6MTJweH0ubWNl
LW1lbnVidG4ubWNlLWZpeGVkLXdpZHRoIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZs
b3cteDpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aWR0aDo5MHB4fS5tY2UtbWVudWJ0
bi5tY2UtZml4ZWQtd2lkdGgubWNlLWJ0bi1zbWFsbCBzcGFue3dpZHRoOjcwcHh9Lm1jZS1tZW51
YnRuIC5tY2UtY2FyZXR7Km1hcmdpbi10b3A6NnB4fS5tY2UtcnRsIC5tY2UtbWVudWJ0biBidXR0
b257ZGlyZWN0aW9uOnJ0bDt0ZXh0LWFsaWduOnJpZ2h0fS5tY2UtbGlzdGJveCBidXR0b257dGV4
dC1hbGlnbjpsZWZ0O3BhZGRpbmctcmlnaHQ6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLWxp
c3Rib3ggLm1jZS1jYXJldHtwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW4tdG9wOi0ycHg7cmlnaHQ6
OHB4O3RvcDo1MCV9Lm1jZS1ydGwgLm1jZS1saXN0Ym94IC5tY2UtY2FyZXR7cmlnaHQ6YXV0bzts
ZWZ0OjhweH0ubWNlLXJ0bCAubWNlLWxpc3Rib3ggYnV0dG9ue3BhZGRpbmctcmlnaHQ6MTBweDtw
YWRkaW5nLWxlZnQ6MjBweH0ubWNlLW1lbnUtaXRlbXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6NnB4
IDE1cHggNnB4IDEycHg7Y2xlYXI6Ym90aDtmb250LXdlaWdodDpub3JtYWw7bGluZS1oZWlnaHQ6
MjBweDtjb2xvcjojMzMzO3doaXRlLXNwYWNlOm5vd3JhcDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhl
aWdodDpub3JtYWw7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1ib3R0
b206MXB4fS5tY2UtbWVudS1pdGVtIC5tY2UtaWNvLC5tY2UtbWVudS1pdGVtIC5tY2UtdGV4dHtj
b2xvcjojMzMzfS5tY2UtbWVudS1pdGVtLm1jZS1kaXNhYmxlZCAubWNlLXRleHQsLm1jZS1tZW51
LWl0ZW0ubWNlLWRpc2FibGVkIC5tY2UtaWNve2NvbG9yOiNhZGFkYWR9Lm1jZS1tZW51LWl0ZW06
aG92ZXIgLm1jZS10ZXh0LC5tY2UtbWVudS1pdGVtLm1jZS1zZWxlY3RlZCAubWNlLXRleHQsLm1j
ZS1tZW51LWl0ZW06Zm9jdXMgLm1jZS10ZXh0e2NvbG9yOiNmZmZ9Lm1jZS1tZW51LWl0ZW06aG92
ZXIgLm1jZS1pY28sLm1jZS1tZW51LWl0ZW0ubWNlLXNlbGVjdGVkIC5tY2UtaWNvLC5tY2UtbWVu
dS1pdGVtOmZvY3VzIC5tY2UtaWNve2NvbG9yOiNmZmZ9Lm1jZS1tZW51LWl0ZW0ubWNlLWRpc2Fi
bGVkOmhvdmVye2JhY2tncm91bmQ6I2NjY30ubWNlLW1lbnUtc2hvcnRjdXR7ZGlzcGxheTppbmxp
bmUtYmxvY2s7Y29sb3I6I2FkYWRhZH0ubWNlLW1lbnUtc2hvcnRjdXR7ZGlzcGxheTppbmxpbmUt
YmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7cGFkZGluZzowIDE1cHggMCAyMHB4fS5tY2Ut
bWVudS1pdGVtOmhvdmVyIC5tY2UtbWVudS1zaG9ydGN1dCwubWNlLW1lbnUtaXRlbS5tY2Utc2Vs
ZWN0ZWQgLm1jZS1tZW51LXNob3J0Y3V0LC5tY2UtbWVudS1pdGVtOmZvY3VzIC5tY2UtbWVudS1z
aG9ydGN1dHtjb2xvcjojZmZmfS5tY2UtbWVudS1pdGVtIC5tY2UtY2FyZXR7bWFyZ2luLXRvcDo0
cHg7Km1hcmdpbi10b3A6M3B4O21hcmdpbi1yaWdodDo2cHg7Ym9yZGVyLXRvcDo0cHggc29saWQg
dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxl
ZnQ6NHB4IHNvbGlkICMzMzN9Lm1jZS1tZW51LWl0ZW0ubWNlLXNlbGVjdGVkIC5tY2UtY2FyZXQs
Lm1jZS1tZW51LWl0ZW06Zm9jdXMgLm1jZS1jYXJldCwubWNlLW1lbnUtaXRlbTpob3ZlciAubWNl
LWNhcmV0e2JvcmRlci1sZWZ0LWNvbG9yOiNmZmZ9Lm1jZS1tZW51LWFsaWduIC5tY2UtbWVudS1z
aG9ydGN1dHsqbWFyZ2luLXRvcDotMnB4fS5tY2UtbWVudS1hbGlnbiAubWNlLW1lbnUtc2hvcnRj
dXQsLm1jZS1tZW51LWFsaWduIC5tY2UtY2FyZXR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0u
bWNlLW1lbnUtaXRlbS5tY2UtYWN0aXZlIGl7dmlzaWJpbGl0eTp2aXNpYmxlfS5tY2UtbWVudS1p
dGVtLW5vcm1hbC5tY2UtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2M4ZGVmNH0ubWNlLW1lbnUt
aXRlbS1wcmV2aWV3Lm1jZS1hY3RpdmV7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkICNhYWF9Lm1jZS1t
ZW51LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmUgLm1jZS10ZXh0e2NvbG9yOiMzMzN9Lm1jZS1tZW51
LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmU6aG92ZXIgLm1jZS10ZXh0LC5tY2UtbWVudS1pdGVtLW5v
cm1hbC5tY2UtYWN0aXZlOmhvdmVyIC5tY2UtaWNve2NvbG9yOiNmZmZ9Lm1jZS1tZW51LWl0ZW0t
bm9ybWFsLm1jZS1hY3RpdmU6Zm9jdXMgLm1jZS10ZXh0LC5tY2UtbWVudS1pdGVtLW5vcm1hbC5t
Y2UtYWN0aXZlOmZvY3VzIC5tY2UtaWNve2NvbG9yOiNmZmZ9Lm1jZS1tZW51LWl0ZW06aG92ZXIs
Lm1jZS1tZW51LWl0ZW0ubWNlLXNlbGVjdGVkLC5tY2UtbWVudS1pdGVtOmZvY3Vze3RleHQtZGVj
b3JhdGlvbjpub25lO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA4MWMyO2JhY2tncm91
bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMDhjLCAjMDA3N2IzKTtiYWNrZ3Jv
dW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjMDhj
KSwgdG8oIzAwNzdiMykpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQo
dG9wLCAjMDhjLCAjMDA3N2IzKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0
b3AsICMwOGMsICMwMDc3YjMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJv
dHRvbSwgIzA4YywgIzAwNzdiMyk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnBy
b2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScj
ZmYwMDg4Y2MnLCBlbmRDb2xvcnN0cj0nI2ZmMDA3N2IzJywgR3JhZGllbnRUeXBlPTApO3pvb206
MX1kaXYubWNlLW1lbnUgLm1jZS1tZW51LWl0ZW0tc2VwLC5tY2UtbWVudS1pdGVtLXNlcDpob3Zl
cntib3JkZXI6MDtwYWRkaW5nOjA7aGVpZ2h0OjFweDttYXJnaW46OXB4IDFweDtvdmVyZmxvdzpo
aWRkZW47YmFja2dyb3VuZDojY2JjYmNiO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZmY7Y3Vy
c29yOmRlZmF1bHQ7ZmlsdGVyOm5vbmV9Lm1jZS1tZW51Lm1jZS1ydGx7ZGlyZWN0aW9uOnJ0bH0u
bWNlLXJ0bCAubWNlLW1lbnUtaXRlbXt0ZXh0LWFsaWduOnJpZ2h0O2RpcmVjdGlvbjpydGw7cGFk
ZGluZzo2cHggMTJweCA2cHggMTVweH0ubWNlLW1lbnUtYWxpZ24ubWNlLXJ0bCAubWNlLW1lbnUt
c2hvcnRjdXQsLm1jZS1tZW51LWFsaWduLm1jZS1ydGwgLm1jZS1jYXJldHtyaWdodDphdXRvO2xl
ZnQ6MH0ubWNlLXJ0bCAubWNlLW1lbnUtaXRlbSAubWNlLWNhcmV0e21hcmdpbi1sZWZ0OjZweDtt
YXJnaW4tcmlnaHQ6MDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkICMzMzM7Ym9yZGVyLWxlZnQ6MH0u
bWNlLXJ0bCAubWNlLW1lbnUtaXRlbS5tY2Utc2VsZWN0ZWQgLm1jZS1jYXJldCwubWNlLXJ0bCAu
bWNlLW1lbnUtaXRlbTpmb2N1cyAubWNlLWNhcmV0LC5tY2UtcnRsIC5tY2UtbWVudS1pdGVtOmhv
dmVyIC5tY2UtY2FyZXR7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0
LWNvbG9yOiNmZmZ9Lm1jZS1tZW51e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtmaWx0
ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBm
YWxzZSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt6LWluZGV4OjEwMDA7cGFkZGluZzo1cHggMCA1
cHggMDttYXJnaW46MnB4IDAgMDttaW4td2lkdGg6MTYwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRl
cjoxcHggc29saWQgIzk4OTg5ODtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yKTt6LWlu
ZGV4OjEwMDI7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDstbW96LWJvcmRlci1yYWRpdXM6NnB4
O2JvcmRlci1yYWRpdXM6NnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwg
MCwgMCwgMC4yKTstbW96LWJveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7
Ym94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTttYXgtaGVpZ2h0OjQwMHB4
O292ZXJmbG93OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59Lm1jZS1tZW51IGl7ZGlzcGxheTpub25l
fS5tY2UtbWVudS1oYXMtaWNvbnMgaXtkaXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxp
bmV9Lm1jZS1tZW51LXN1Yi10ci10bHttYXJnaW46LTZweCAwIDAgLTFweH0ubWNlLW1lbnUtc3Vi
LWJyLWJse21hcmdpbjo2cHggMCAwIC0xcHh9Lm1jZS1tZW51LXN1Yi10bC10cnttYXJnaW46LTZw
eCAwIDAgMXB4fS5tY2UtbWVudS1zdWItYmwtYnJ7bWFyZ2luOjZweCAwIDAgMXB4fS5tY2UtY29u
dGFpbmVyLWJvZHkgLm1jZS1yZXNpemVoYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDti
b3R0b206MDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3Zpc2liaWxpdHk6dmlzaWJsZTtjdXJzb3I6
cy1yZXNpemU7bWFyZ2luOjB9Lm1jZS1jb250YWluZXItYm9keSAubWNlLXJlc2l6ZWhhbmRsZS1i
b3Roe2N1cnNvcjpzZS1yZXNpemV9aS5tY2UtaS1yZXNpemV7Y29sb3I6IzMzM30ubWNlLXNwYWNl
cnt2aXNpYmlsaXR5OmhpZGRlbn0ubWNlLXNwbGl0YnRuIC5tY2Utb3Blbntib3JkZXItbGVmdDox
cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB0cmFuc3BhcmVudH0u
bWNlLXNwbGl0YnRuOmhvdmVyIC5tY2Utb3Blbntib3JkZXItbGVmdC1jb2xvcjojYmRiZGJkO2Jv
cmRlci1yaWdodC1jb2xvcjojYmRiZGJkfS5tY2Utc3BsaXRidG4gYnV0dG9ue3BhZGRpbmctcmln
aHQ6NHB4fS5tY2Utc3BsaXRidG4gLm1jZS1vcGVue3BhZGRpbmctbGVmdDo0cHh9Lm1jZS1zcGxp
dGJ0biAubWNlLW9wZW4ubWNlLWFjdGl2ZXstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHgg
NHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOy1t
b3otYm94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHgg
MnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgw
LCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSl9Lm1jZS1zcGxpdGJ0
bi5tY2UtYnRuLXNtYWxsIC5tY2Utb3BlbntwYWRkaW5nOjAgM3B4IDAgM3B4fS5tY2UtcnRsIC5t
Y2Utc3BsaXRidG57ZGlyZWN0aW9uOnJ0bDt0ZXh0LWFsaWduOnJpZ2h0fS5tY2UtcnRsIC5tY2Ut
c3BsaXRidG4gYnV0dG9ue3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWxlZnQ6MTBweH0ubWNl
LXJ0bCAubWNlLXNwbGl0YnRuIC5tY2Utb3BlbntwYWRkaW5nLWxlZnQ6NHB4O3BhZGRpbmctcmln
aHQ6NHB4fS5tY2Utc3RhY2stbGF5b3V0LWl0ZW17ZGlzcGxheTpibG9ja30ubWNlLXRhYnN7ZGlz
cGxheTpibG9jaztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzVjNWM1fS5tY2UtdGFie2Rpc3Bs
YXk6aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9vbToxO2JvcmRlcjoxcHggc29saWQg
I2M1YzVjNTtib3JkZXItd2lkdGg6MCAxcHggMCAwO2JhY2tncm91bmQ6I2UzZTNlMztwYWRkaW5n
OjhweDt0ZXh0LXNoYWRvdzowIDFweCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjc1KTtoZWlnaHQ6
MTNweDtjdXJzb3I6cG9pbnRlcn0ubWNlLXRhYjpob3ZlcntiYWNrZ3JvdW5kOiNmZGZkZmR9Lm1j
ZS10YWIubWNlLWFjdGl2ZXtiYWNrZ3JvdW5kOiNmZGZkZmQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0
cmFuc3BhcmVudDttYXJnaW4tYm90dG9tOi0xcHg7aGVpZ2h0OjE0cHh9Lm1jZS1ydGwgLm1jZS10
YWJze3RleHQtYWxpZ246cmlnaHQ7ZGlyZWN0aW9uOnJ0bH0ubWNlLXJ0bCAubWNlLXRhYntib3Jk
ZXItd2lkdGg6MCAwIDAgMXB4fS5tY2UtdGV4dGJveHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFw
eCBzb2xpZCAjYzVjNWM1Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFk
aXVzOjNweDtib3JkZXItcmFkaXVzOjNweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHgg
MXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHgg
cmdiYSgwLCAwLCAwLCAwLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAw
LCAwLCAwLjA3NSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC10cmFuc2l0aW9uOmJvcmRl
ciBsaW5lYXIgLjJzLCBib3gtc2hhZG93IGxpbmVhciAuMnM7dHJhbnNpdGlvbjpib3JkZXIgbGlu
ZWFyIC4ycywgYm94LXNoYWRvdyBsaW5lYXIgLjJzO2hlaWdodDoyOHB4O3Jlc2l6ZTpub25lO3Bh
ZGRpbmc6MCA0cHggMCA0cHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7KndoaXRlLXNwYWNlOnByZTtj
b2xvcjojMzMzfS5tY2UtdGV4dGJveDpmb2N1cywubWNlLXRleHRib3gubWNlLWZvY3Vze2JvcmRl
ci1jb2xvcjpyZ2JhKDgyLDE2OCwyMzYsMC44KTstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAx
cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAw
LjY1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUp
LCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjY1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4
IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42
NSl9Lm1jZS1wbGFjZWhvbGRlciAubWNlLXRleHRib3h7Y29sb3I6I2FhYX0ubWNlLXRleHRib3gu
bWNlLW11bHRpbGluZXtwYWRkaW5nOjRweH0ubWNlLXRleHRib3gubWNlLWRpc2FibGVke2NvbG9y
OiNhZGFkYWR9Lm1jZS1ydGwgLm1jZS10ZXh0Ym94e3RleHQtYWxpZ246cmlnaHQ7ZGlyZWN0aW9u
OnJ0bH0ubWNlLXRocm9iYmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDox
MDAlO2hlaWdodDoxMDAlO29wYWNpdHk6LjY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NjApO3pvb206
MTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCdpbWcvbG9hZGVyLmdpZicpIG5vLXJlcGVhdCBjZW50ZXIg
Y2VudGVyfS5tY2UtdGhyb2JiZXItaW5saW5le3Bvc2l0aW9uOnN0YXRpYztoZWlnaHQ6NTBweH1A
Zm9udC1mYWNle2ZvbnQtZmFtaWx5Oid0aW55bWNlJztzcmM6dXJsKCdmb250cy90aW55bWNlLmVv
dCcpO3NyYzp1cmwoJ2ZvbnRzL3RpbnltY2UuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQt
b3BlbnR5cGUnKSx1cmwoJ2ZvbnRzL3RpbnltY2Uud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgn
Zm9udHMvdGlueW1jZS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksdXJsKCdmb250cy90aW55bWNl
LnN2ZyN0aW55bWNlJykgZm9ybWF0KCdzdmcnKTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHls
ZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTondGlueW1jZS1zbWFsbCc7c3JjOnVybCgn
Zm9udHMvdGlueW1jZS1zbWFsbC5lb3QnKTtzcmM6dXJsKCdmb250cy90aW55bWNlLXNtYWxsLmVv
dD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCdmb250cy90aW55bWNl
LXNtYWxsLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJ2ZvbnRzL3RpbnltY2Utc21hbGwudHRm
JykgZm9ybWF0KCd0cnVldHlwZScpLHVybCgnZm9udHMvdGlueW1jZS1zbWFsbC5zdmcjdGlueW1j
ZScpIGZvcm1hdCgnc3ZnJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfS5t
Y2UtaWNve2ZvbnQtZmFtaWx5Oid0aW55bWNlJyxBcmlhbDtmb250LXN0eWxlOm5vcm1hbDtmb250
LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXNpemU6MTZweDtsaW5lLWhl
aWdodDoxNnB4O3NwZWFrOm5vbmU7dmVydGljYWwtYWxpZ246dGV4dC10b3A7LXdlYmtpdC1mb250
LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7
ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDp0cmFuc3BhcmVudCBjZW50ZXIgY2VudGVy
O2JhY2tncm91bmQtc2l6ZTpjb3Zlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2NvbG9yOiMzMzN9
Lm1jZS1idG4tc21hbGwgLm1jZS1pY297Zm9udC1mYW1pbHk6J3RpbnltY2Utc21hbGwnLEFyaWFs
fS5tY2UtaS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZTAwMCJ9Lm1jZS1pLW5ld2RvY3VtZW50OmJl
Zm9yZXtjb250ZW50OiJcZTAwMSJ9Lm1jZS1pLWZ1bGxwYWdlOmJlZm9yZXtjb250ZW50OiJcZTAw
MiJ9Lm1jZS1pLWFsaWdubGVmdDpiZWZvcmV7Y29udGVudDoiXGUwMDMifS5tY2UtaS1hbGlnbmNl
bnRlcjpiZWZvcmV7Y29udGVudDoiXGUwMDQifS5tY2UtaS1hbGlnbnJpZ2h0OmJlZm9yZXtjb250
ZW50OiJcZTAwNSJ9Lm1jZS1pLWFsaWduanVzdGlmeTpiZWZvcmV7Y29udGVudDoiXGUwMDYifS5t
Y2UtaS1jdXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDA3In0ubWNlLWktcGFzdGU6YmVmb3Jle2NvbnRl
bnQ6IlxlMDA4In0ubWNlLWktc2VhcmNocmVwbGFjZTpiZWZvcmV7Y29udGVudDoiXGUwMDkifS5t
Y2UtaS1idWxsaXN0OmJlZm9yZXtjb250ZW50OiJcZTAwYSJ9Lm1jZS1pLW51bWxpc3Q6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDBiIn0ubWNlLWktaW5kZW50OmJlZm9yZXtjb250ZW50OiJcZTAwYyJ9Lm1j
ZS1pLW91dGRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDBkIn0ubWNlLWktYmxvY2txdW90ZTpiZWZv
cmV7Y29udGVudDoiXGUwMGUifS5tY2UtaS11bmRvOmJlZm9yZXtjb250ZW50OiJcZTAwZiJ9Lm1j
ZS1pLXJlZG86YmVmb3Jle2NvbnRlbnQ6IlxlMDEwIn0ubWNlLWktbGluazpiZWZvcmV7Y29udGVu
dDoiXGUwMTEifS5tY2UtaS11bmxpbms6YmVmb3Jle2NvbnRlbnQ6IlxlMDEyIn0ubWNlLWktYW5j
aG9yOmJlZm9yZXtjb250ZW50OiJcZTAxMyJ9Lm1jZS1pLWltYWdlOmJlZm9yZXtjb250ZW50OiJc
ZTAxNCJ9Lm1jZS1pLW1lZGlhOmJlZm9yZXtjb250ZW50OiJcZTAxNSJ9Lm1jZS1pLWhlbHA6YmVm
b3Jle2NvbnRlbnQ6IlxlMDE2In0ubWNlLWktY29kZTpiZWZvcmV7Y29udGVudDoiXGUwMTcifS5t
Y2UtaS1pbnNlcnRkYXRldGltZTpiZWZvcmV7Y29udGVudDoiXGUwMTgifS5tY2UtaS1wcmV2aWV3
OmJlZm9yZXtjb250ZW50OiJcZTAxOSJ9Lm1jZS1pLWZvcmVjb2xvcjpiZWZvcmV7Y29udGVudDoi
XGUwMWEifS5tY2UtaS1iYWNrY29sb3I6YmVmb3Jle2NvbnRlbnQ6IlxlMDFhIn0ubWNlLWktdGFi
bGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDFiIn0ubWNlLWktaHI6YmVmb3Jle2NvbnRlbnQ6IlxlMDFj
In0ubWNlLWktcmVtb3ZlZm9ybWF0OmJlZm9yZXtjb250ZW50OiJcZTAxZCJ9Lm1jZS1pLXN1YnNj
cmlwdDpiZWZvcmV7Y29udGVudDoiXGUwMWUifS5tY2UtaS1zdXBlcnNjcmlwdDpiZWZvcmV7Y29u
dGVudDoiXGUwMWYifS5tY2UtaS1jaGFybWFwOmJlZm9yZXtjb250ZW50OiJcZTAyMCJ9Lm1jZS1p
LWVtb3RpY29uczpiZWZvcmV7Y29udGVudDoiXGUwMjEifS5tY2UtaS1wcmludDpiZWZvcmV7Y29u
dGVudDoiXGUwMjIifS5tY2UtaS1mdWxsc2NyZWVuOmJlZm9yZXtjb250ZW50OiJcZTAyMyJ9Lm1j
ZS1pLXNwZWxsY2hlY2tlcjpiZWZvcmV7Y29udGVudDoiXGUwMjQifS5tY2UtaS1ub25icmVha2lu
ZzpiZWZvcmV7Y29udGVudDoiXGUwMjUifS5tY2UtaS10ZW1wbGF0ZTpiZWZvcmV7Y29udGVudDoi
XGUwMjYifS5tY2UtaS1wYWdlYnJlYWs6YmVmb3Jle2NvbnRlbnQ6IlxlMDI3In0ubWNlLWktcmVz
dG9yZWRyYWZ0OmJlZm9yZXtjb250ZW50OiJcZTAyOCJ9Lm1jZS1pLXVudGl0bGVkOmJlZm9yZXtj
b250ZW50OiJcZTAyOSJ9Lm1jZS1pLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDJhIn0ubWNlLWkt
aXRhbGljOmJlZm9yZXtjb250ZW50OiJcZTAyYiJ9Lm1jZS1pLXVuZGVybGluZTpiZWZvcmV7Y29u
dGVudDoiXGUwMmMifS5tY2UtaS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZTAyZCJ9
Lm1jZS1pLXZpc3VhbGNoYXJzOmJlZm9yZXtjb250ZW50OiJcZTAyZSJ9Lm1jZS1pLXZpc3VhbGJs
b2NrczpiZWZvcmV7Y29udGVudDoiXGUwMmUifS5tY2UtaS1sdHI6YmVmb3Jle2NvbnRlbnQ6Ilxl
MDJmIn0ubWNlLWktcnRsOmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9Lm1jZS1pLWNvcHk6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDMxIn0ubWNlLWktcmVzaXplOmJlZm9yZXtjb250ZW50OiJcZTAzMiJ9Lm1j
ZS1pLWJyb3dzZTpiZWZvcmV7Y29udGVudDoiXGUwMzQifS5tY2UtaS1wYXN0ZXRleHQ6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDM1In0ubWNlLWktY2hlY2tib3g6YmVmb3JlLC5tY2UtaS1zZWxlY3RlZDpi
ZWZvcmV7Y29udGVudDoiXGUwMzMifS5tY2UtaS1zZWxlY3RlZHt2aXNpYmlsaXR5OmhpZGRlbn1p
Lm1jZS1pLWJhY2tjb2xvcnt0ZXh0LXNoYWRvdzpub25lO2JhY2tncm91bmQ6I2JiYn0KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy90aGVtZXMvbW9kZXJuL3RoZW1lLm1pbi5qcyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3RoZW1l
cy9tb2Rlcm4vdGhlbWUubWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5lMjU4NDlkZjM3MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3RoZW1lcy9tb2Rlcm4vdGhlbWUubWluLmpz
CkBAIC0wLDAgKzEgQEAKK3RpbnltY2UuVGhlbWVNYW5hZ2VyLmFkZCgibW9kZXJuIixmdW5jdGlv
bihlKXtmdW5jdGlvbiB0KCl7ZnVuY3Rpb24gdCh0KXt2YXIgbixvPVtdO2lmKHQpcmV0dXJuIGQo
dC5zcGxpdCgvWyAsXS8pLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGkoKXt2YXIgaT1lLnNlbGVjdGlv
bjsiYnVsbGlzdCI9PXImJmkuc2VsZWN0b3JDaGFuZ2VkKCJ1bCA+IGxpIixmdW5jdGlvbihlLGkp
e2Zvcih2YXIgbixvPWkucGFyZW50cy5sZW5ndGg7by0tJiYobj1pLnBhcmVudHNbb10ubm9kZU5h
bWUsIk9MIiE9biYmIlVMIiE9bik7KTt0LmFjdGl2ZShlJiYiVUwiPT1uKX0pLCJudW1saXN0Ij09
ciYmaS5zZWxlY3RvckNoYW5nZWQoIm9sID4gbGkiLGZ1bmN0aW9uKGUsaSl7Zm9yKHZhciBuLG89
aS5wYXJlbnRzLmxlbmd0aDtvLS0mJihuPWkucGFyZW50c1tvXS5ub2RlTmFtZSwiT0wiIT1uJiYi
VUwiIT1uKTspO3QuYWN0aXZlKGUmJiJPTCI9PW4pfSksdC5zZXR0aW5ncy5zdGF0ZVNlbGVjdG9y
JiZpLnNlbGVjdG9yQ2hhbmdlZCh0LnNldHRpbmdzLnN0YXRlU2VsZWN0b3IsZnVuY3Rpb24oZSl7
dC5hY3RpdmUoZSl9LCEwKSx0LnNldHRpbmdzLmRpc2FibGVkU3RhdGVTZWxlY3RvciYmaS5zZWxl
Y3RvckNoYW5nZWQodC5zZXR0aW5ncy5kaXNhYmxlZFN0YXRlU2VsZWN0b3IsZnVuY3Rpb24oZSl7
dC5kaXNhYmxlZChlKX0pfXZhciByOyJ8Ij09dD9uPW51bGw6Yy5oYXModCk/KHQ9e3R5cGU6dH0s
dS50b29sYmFyX2l0ZW1zX3NpemUmJih0LnNpemU9dS50b29sYmFyX2l0ZW1zX3NpemUpLG8ucHVz
aCh0KSxuPW51bGwpOihufHwobj17dHlwZToiYnV0dG9uZ3JvdXAiLGl0ZW1zOltdfSxvLnB1c2go
bikpLGUuYnV0dG9uc1t0XSYmKHI9dCx0PWUuYnV0dG9uc1tyXSwiZnVuY3Rpb24iPT10eXBlb2Yg
dCYmKHQ9dCgpKSx0LnR5cGU9dC50eXBlfHwiYnV0dG9uIix1LnRvb2xiYXJfaXRlbXNfc2l6ZSYm
KHQuc2l6ZT11LnRvb2xiYXJfaXRlbXNfc2l6ZSksdD1jLmNyZWF0ZSh0KSxuLml0ZW1zLnB1c2go
dCksZS5pbml0aWFsaXplZD9pKCk6ZS5vbigiaW5pdCIsaSkpKX0pLGkucHVzaCh7dHlwZToidG9v
bGJhciIsbGF5b3V0OiJmbG93IixpdGVtczpvfSksITB9dmFyIGk9W107aWYodGlueW1jZS5pc0Fy
cmF5KHUudG9vbGJhcikpe2lmKDA9PT11LnRvb2xiYXIubGVuZ3RoKXJldHVybjt0aW55bWNlLmVh
Y2godS50b29sYmFyLGZ1bmN0aW9uKGUsdCl7dVsidG9vbGJhciIrKHQrMSldPWV9KSxkZWxldGUg
dS50b29sYmFyfWZvcih2YXIgbj0xOzEwPm4mJnQodVsidG9vbGJhciIrbl0pO24rKyk7cmV0dXJu
IGkubGVuZ3RofHx1LnRvb2xiYXI9PT0hMXx8dCh1LnRvb2xiYXJ8fGYpLGkubGVuZ3RoP3t0eXBl
OiJwYW5lbCIsbGF5b3V0OiJzdGFjayIsY2xhc3NlczoidG9vbGJhci1ncnAiLGFyaWFSb290OiEw
LGFyaWFSZW1lbWJlcjohMCxpdGVtczppfTp2b2lkIDB9ZnVuY3Rpb24gaSgpe2Z1bmN0aW9uIHQo
dCl7dmFyIGk7cmV0dXJuInwiPT10P3t0ZXh0OiJ8In06aT1lLm1lbnVJdGVtc1t0XX1mdW5jdGlv
biBpKGkpe3ZhciBuLG8scixhLHM7aWYocz10aW55bWNlLm1ha2VNYXAoKHUucmVtb3ZlZF9tZW51
aXRlbXN8fCIiKS5zcGxpdCgvWyAsXS8pKSx1Lm1lbnU/KG89dS5tZW51W2ldLGE9ITApOm89aFtp
XSxvKXtuPXt0ZXh0Om8udGl0bGV9LHI9W10sZCgoby5pdGVtc3x8IiIpLnNwbGl0KC9bICxdLyks
ZnVuY3Rpb24oZSl7dmFyIGk9dChlKTtpJiYhc1tlXSYmci5wdXNoKHQoZSkpfSksYXx8ZChlLm1l
bnVJdGVtcyxmdW5jdGlvbihlKXtlLmNvbnRleHQ9PWkmJigiYmVmb3JlIj09ZS5zZXBhcmF0b3Im
JnIucHVzaCh7dGV4dDoifCJ9KSxlLnByZXBlbmRUb0NvbnRleHQ/ci51bnNoaWZ0KGUpOnIucHVz
aChlKSwiYWZ0ZXIiPT1lLnNlcGFyYXRvciYmci5wdXNoKHt0ZXh0OiJ8In0pKX0pO2Zvcih2YXIg
bD0wO2w8ci5sZW5ndGg7bCsrKSJ8Ij09cltsXS50ZXh0JiYoMD09PWx8fGw9PXIubGVuZ3RoLTEp
JiZyLnNwbGljZShsLDEpO2lmKG4ubWVudT1yLCFuLm1lbnUubGVuZ3RoKXJldHVybiBudWxsfXJl
dHVybiBufXZhciBuLG89W10scj1bXTtpZih1Lm1lbnUpZm9yKG4gaW4gdS5tZW51KXIucHVzaChu
KTtlbHNlIGZvcihuIGluIGgpci5wdXNoKG4pO2Zvcih2YXIgYT0ic3RyaW5nIj09dHlwZW9mIHUu
bWVudWJhcj91Lm1lbnViYXIuc3BsaXQoL1sgLF0vKTpyLHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFy
IGw9YVtzXTtsPWkobCksbCYmby5wdXNoKGwpfXJldHVybiBvfWZ1bmN0aW9uIG4odCl7ZnVuY3Rp
b24gaShlKXt2YXIgaT10LmZpbmQoZSlbMF07aSYmaS5mb2N1cyghMCl9ZS5zaG9ydGN1dHMuYWRk
KCJBbHQrRjkiLCIiLGZ1bmN0aW9uKCl7aSgibWVudWJhciIpfSksZS5zaG9ydGN1dHMuYWRkKCJB
bHQrRjEwIiwiIixmdW5jdGlvbigpe2koInRvb2xiYXIiKX0pLGUuc2hvcnRjdXRzLmFkZCgiQWx0
K0YxMSIsIiIsZnVuY3Rpb24oKXtpKCJlbGVtZW50cGF0aCIpfSksdC5vbigiY2FuY2VsIixmdW5j
dGlvbigpe2UuZm9jdXMoKX0pfWZ1bmN0aW9uIG8odCxpKXtmdW5jdGlvbiBuKGUpe3JldHVybnt3
aWR0aDplLmNsaWVudFdpZHRoLGhlaWdodDplLmNsaWVudEhlaWdodH19dmFyIG8scixhLHM7bz1l
LmdldENvbnRhaW5lcigpLHI9ZS5nZXRDb250ZW50QXJlYUNvbnRhaW5lcigpLmZpcnN0Q2hpbGQs
YT1uKG8pLHM9bihyKSxudWxsIT09dCYmKHQ9TWF0aC5tYXgodS5taW5fd2lkdGh8fDEwMCx0KSx0
PU1hdGgubWluKHUubWF4X3dpZHRofHw2NTUzNSx0KSxtLmNzcyhvLCJ3aWR0aCIsdCsoYS53aWR0
aC1zLndpZHRoKSksbS5jc3Mociwid2lkdGgiLHQpKSxpPU1hdGgubWF4KHUubWluX2hlaWdodHx8
MTAwLGkpLGk9TWF0aC5taW4odS5tYXhfaGVpZ2h0fHw2NTUzNSxpKSxtLmNzcyhyLCJoZWlnaHQi
LGkpLGUuZmlyZSgiUmVzaXplRWRpdG9yIil9ZnVuY3Rpb24gcih0LGkpe3ZhciBuPWUuZ2V0Q29u
dGVudEFyZWFDb250YWluZXIoKTtsLnJlc2l6ZVRvKG4uY2xpZW50V2lkdGgrdCxuLmNsaWVudEhl
aWdodCtpKX1mdW5jdGlvbiBhKG8pe2Z1bmN0aW9uIHIoKXtpZihoJiZoLm1vdmVSZWwmJmgudmlz
aWJsZSgpJiYhaC5fZml4ZWQpe3ZhciB0PWUuc2VsZWN0aW9uLmdldFNjcm9sbENvbnRhaW5lcigp
LGk9ZS5nZXRCb2R5KCksbj0wLG89MDtpZih0KXt2YXIgcj1tLmdldFBvcyhpKSxhPW0uZ2V0UG9z
KHQpO249TWF0aC5tYXgoMCxhLngtci54KSxvPU1hdGgubWF4KDAsYS55LXIueSl9aC5maXhlZCgh
MSkubW92ZVJlbChpLGUucnRsP1sidHItYnIiLCJici10ciJdOlsidGwtYmwiLCJibC10bCJdKS5t
b3ZlQnkobixvKX19ZnVuY3Rpb24gYSgpe2gmJihoLnNob3coKSxyKCksbS5hZGRDbGFzcyhlLmdl
dEJvZHkoKSwibWNlLWVkaXQtZm9jdXMiKSl9ZnVuY3Rpb24gcygpe2gmJihoLmhpZGUoKSxtLnJl
bW92ZUNsYXNzKGUuZ2V0Qm9keSgpLCJtY2UtZWRpdC1mb2N1cyIpKX1mdW5jdGlvbiBkKCl7cmV0
dXJuIGg/dm9pZChoLnZpc2libGUoKXx8YSgpKTooaD1sLnBhbmVsPWMuY3JlYXRlKHt0eXBlOmY/
InBhbmVsIjoiZmxvYXRwYW5lbCIscm9sZToiYXBwbGljYXRpb24iLGNsYXNzZXM6InRpbnltY2Ug
dGlueW1jZS1pbmxpbmUiLGxheW91dDoiZmxleCIsZGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduOiJz
dHJldGNoIixhdXRvaGlkZTohMSxhdXRvZml4OiEwLGZpeGVkOiEhZixib3JkZXI6MSxpdGVtczpb
dS5tZW51YmFyPT09ITE/bnVsbDp7dHlwZToibWVudWJhciIsYm9yZGVyOiIwIDAgMSAwIixpdGVt
czppKCl9LHQoKV19KSxlLmZpcmUoIkJlZm9yZVJlbmRlclVJIiksaC5yZW5kZXJUbyhmfHxkb2N1
bWVudC5ib2R5KS5yZWZsb3coKSxuKGgpLGEoKSxlLm9uKCJub2RlQ2hhbmdlIixyKSxlLm9uKCJh
Y3RpdmF0ZSIsYSksZS5vbigiZGVhY3RpdmF0ZSIscyksdm9pZCBlLm5vZGVDaGFuZ2VkKCkpfXZh
ciBoLGY7cmV0dXJuIHUuZml4ZWRfdG9vbGJhcl9jb250YWluZXImJihmPW0uc2VsZWN0KHUuZml4
ZWRfdG9vbGJhcl9jb250YWluZXIpWzBdKSx1LmNvbnRlbnRfZWRpdGFibGU9ITAsZS5vbigiZm9j
dXMiLGZ1bmN0aW9uKCl7by5za2luVWlDc3M/dGlueW1jZS5ET00uc3R5bGVTaGVldExvYWRlci5s
b2FkKG8uc2tpblVpQ3NzLGQsZCk6ZCgpfSksZS5vbigiYmx1ciBoaWRlIixzKSxlLm9uKCJyZW1v
dmUiLGZ1bmN0aW9uKCl7aCYmKGgucmVtb3ZlKCksaD1udWxsKX0pLG8uc2tpblVpQ3NzJiZ0aW55
bWNlLkRPTS5zdHlsZVNoZWV0TG9hZGVyLmxvYWQoby5za2luVWlDc3MpLHt9fWZ1bmN0aW9uIHMo
cil7dmFyIGEscyxkO3JldHVybiByLnNraW5VaUNzcyYmdGlueW1jZS5ET00ubG9hZENTUyhyLnNr
aW5VaUNzcyksYT1sLnBhbmVsPWMuY3JlYXRlKHt0eXBlOiJwYW5lbCIscm9sZToiYXBwbGljYXRp
b24iLGNsYXNzZXM6InRpbnltY2UiLHN0eWxlOiJ2aXNpYmlsaXR5OiBoaWRkZW4iLGxheW91dDoi
c3RhY2siLGJvcmRlcjoxLGl0ZW1zOlt1Lm1lbnViYXI9PT0hMT9udWxsOnt0eXBlOiJtZW51YmFy
Iixib3JkZXI6IjAgMCAxIDAiLGl0ZW1zOmkoKX0sdCgpLHt0eXBlOiJwYW5lbCIsbmFtZToiaWZy
YW1lIixsYXlvdXQ6InN0YWNrIixjbGFzc2VzOiJlZGl0LWFyZWEiLGh0bWw6IiIsYm9yZGVyOiIx
IDAgMCAwIn1dfSksdS5yZXNpemUhPT0hMSYmKHM9e3R5cGU6InJlc2l6ZWhhbmRsZSIsZGlyZWN0
aW9uOnUucmVzaXplLG9uUmVzaXplU3RhcnQ6ZnVuY3Rpb24oKXt2YXIgdD1lLmdldENvbnRlbnRB
cmVhQ29udGFpbmVyKCkuZmlyc3RDaGlsZDtkPXt3aWR0aDp0LmNsaWVudFdpZHRoLGhlaWdodDp0
LmNsaWVudEhlaWdodH19LG9uUmVzaXplOmZ1bmN0aW9uKGUpeyJib3RoIj09dS5yZXNpemU/byhk
LndpZHRoK2UuZGVsdGFYLGQuaGVpZ2h0K2UuZGVsdGFZKTpvKG51bGwsZC5oZWlnaHQrZS5kZWx0
YVkpfX0pLHUuc3RhdHVzYmFyIT09ITEmJmEuYWRkKHt0eXBlOiJwYW5lbCIsbmFtZToic3RhdHVz
YmFyIixjbGFzc2VzOiJzdGF0dXNiYXIiLGxheW91dDoiZmxvdyIsYm9yZGVyOiIxIDAgMCAwIixh
cmlhUm9vdDohMCxpdGVtczpbe3R5cGU6ImVsZW1lbnRwYXRoIn0sc119KSx1LnJlYWRvbmx5JiZh
LmZpbmQoIioiKS5kaXNhYmxlZCghMCksZS5maXJlKCJCZWZvcmVSZW5kZXJVSSIpLGEucmVuZGVy
QmVmb3JlKHIudGFyZ2V0Tm9kZSkucmVmbG93KCksdS53aWR0aCYmdGlueW1jZS5ET00uc2V0U3R5
bGUoYS5nZXRFbCgpLCJ3aWR0aCIsdS53aWR0aCksZS5vbigicmVtb3ZlIixmdW5jdGlvbigpe2Eu
cmVtb3ZlKCksYT1udWxsfSksbihhKSx7aWZyYW1lQ29udGFpbmVyOmEuZmluZCgiI2lmcmFtZSIp
WzBdLmdldEVsKCksZWRpdG9yQ29udGFpbmVyOmEuZ2V0RWwoKX19dmFyIGw9dGhpcyx1PWUuc2V0
dGluZ3MsYz10aW55bWNlLnVpLkZhY3RvcnksZD10aW55bWNlLmVhY2gsbT10aW55bWNlLkRPTSxo
PXtmaWxlOnt0aXRsZToiRmlsZSIsaXRlbXM6Im5ld2RvY3VtZW50In0sZWRpdDp7dGl0bGU6IkVk
aXQiLGl0ZW1zOiJ1bmRvIHJlZG8gfCBjdXQgY29weSBwYXN0ZSBwYXN0ZXRleHQgfCBzZWxlY3Rh
bGwifSxpbnNlcnQ6e3RpdGxlOiJJbnNlcnQiLGl0ZW1zOiJ8In0sdmlldzp7dGl0bGU6IlZpZXci
LGl0ZW1zOiJ2aXN1YWxhaWQgfCJ9LGZvcm1hdDp7dGl0bGU6IkZvcm1hdCIsaXRlbXM6ImJvbGQg
aXRhbGljIHVuZGVybGluZSBzdHJpa2V0aHJvdWdoIHN1cGVyc2NyaXB0IHN1YnNjcmlwdCB8IGZv
cm1hdHMgfCByZW1vdmVmb3JtYXQifSx0YWJsZTp7dGl0bGU6IlRhYmxlIn0sdG9vbHM6e3RpdGxl
OiJUb29scyJ9fSxmPSJ1bmRvIHJlZG8gfCBzdHlsZXNlbGVjdCB8IGJvbGQgaXRhbGljIHwgYWxp
Z25sZWZ0IGFsaWduY2VudGVyIGFsaWducmlnaHQgYWxpZ25qdXN0aWZ5IHwgYnVsbGlzdCBudW1s
aXN0IG91dGRlbnQgaW5kZW50IHwgbGluayBpbWFnZSI7bC5yZW5kZXJVST1mdW5jdGlvbih0KXt2
YXIgaT11LnNraW4hPT0hMT91LnNraW58fCJsaWdodGdyYXkiOiExO2lmKGkpe3ZhciBuPXUuc2tp
bl91cmw7bj1uP2UuZG9jdW1lbnRCYXNlVVJJLnRvQWJzb2x1dGUobik6dGlueW1jZS5iYXNlVVJM
KyIvc2tpbnMvIitpLHQuc2tpblVpQ3NzPXRpbnltY2UuRW52LmRvY3VtZW50TW9kZTw9Nz9uKyIv
c2tpbi5pZTcubWluLmNzcyI6bisiL3NraW4ubWluLmNzcyIsZS5jb250ZW50Q1NTLnB1c2gobisi
L2NvbnRlbnQiKyhlLmlubGluZT8iLmlubGluZSI6IiIpKyIubWluLmNzcyIpfXJldHVybiBlLm9u
KCJQcm9ncmVzc1N0YXRlIixmdW5jdGlvbihlKXtsLnRocm9iYmVyPWwudGhyb2JiZXJ8fG5ldyB0
aW55bWNlLnVpLlRocm9iYmVyKGwucGFuZWwuZ2V0RWwoImJvZHkiKSksZS5zdGF0ZT9sLnRocm9i
YmVyLnNob3coZS50aW1lKTpsLnRocm9iYmVyLmhpZGUoKX0pLHUuaW5saW5lP2EodCk6cyh0KX0s
bC5yZXNpemVUbz1vLGwucmVzaXplQnk9cn0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2pzL3RpbnltY2UubWluLmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvanMvdGlueW1jZS5taW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjNhYjdkZjdmY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvdGlueW1jZS5taW4uanMK
QEAgLTAsMCArMSwxMCBAQAorLy8gNC4wLjI2ICgyMDE0LTA1LTA2KQorIWZ1bmN0aW9uKGUsdCl7
InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXtmb3IodmFyIG4scj1bXSxpPTA7aTxlLmxlbmd0
aDsrK2kpe2lmKG49c1tlW2ldXXx8byhlW2ldKSwhbil0aHJvdyJtb2R1bGUgZGVmaW5pdGlvbiBk
ZXBlbmRlY3kgbm90IGZvdW5kOiAiK2VbaV07ci5wdXNoKG4pfXQuYXBwbHkobnVsbCxyKX1mdW5j
dGlvbiByKGUscixpKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3ciaW52YWxpZCBtb2R1bGUg
ZGVmaW5pdGlvbiwgbW9kdWxlIGlkIG11c3QgYmUgZGVmaW5lZCBhbmQgYmUgYSBzdHJpbmciO2lm
KHI9PT10KXRocm93ImludmFsaWQgbW9kdWxlIGRlZmluaXRpb24sIGRlcGVuZGVuY2llcyBtdXN0
IGJlIHNwZWNpZmllZCI7aWYoaT09PXQpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlvbiwg
ZGVmaW5pdGlvbiBmdW5jdGlvbiBtdXN0IGJlIHNwZWNpZmllZCI7bihyLGZ1bmN0aW9uKCl7c1tl
XT1pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pfWZ1bmN0aW9uIGkoZSl7cmV0dXJuISFzW2VdfWZ1
bmN0aW9uIG8odCl7Zm9yKHZhciBuPWUscj10LnNwbGl0KC9bLlwvXS8pLGk9MDtpPHIubGVuZ3Ro
OysraSl7aWYoIW5bcltpXV0pcmV0dXJuO249bltyW2ldXX1yZXR1cm4gbn1mdW5jdGlvbiBhKG4p
e2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXtmb3IodmFyIGk9ZSxvPW5bcl0sYT1vLnNwbGl0
KC9bLlwvXS8pLGw9MDtsPGEubGVuZ3RoLTE7KytsKWlbYVtsXV09PT10JiYoaVthW2xdXT17fSks
aT1pW2FbbF1dO2lbYVthLmxlbmd0aC0xXV09c1tvXX19dmFyIHM9e30sbD0idGlueW1jZS9kb20v
RXZlbnRVdGlscyIsYz0idGlueW1jZS9kb20vU2l6emxlIix1PSJ0aW55bWNlL2RvbS9Eb21RdWVy
eSIsZD0idGlueW1jZS9odG1sL1N0eWxlcyIsZj0idGlueW1jZS9kb20vVHJlZVdhbGtlciIscD0i
dGlueW1jZS91dGlsL1Rvb2xzIixoPSJ0aW55bWNlL2RvbS9SYW5nZSIsbT0idGlueW1jZS9odG1s
L0VudGl0aWVzIixnPSJ0aW55bWNlL0VudiIsdj0idGlueW1jZS9kb20vU3R5bGVTaGVldExvYWRl
ciIseT0idGlueW1jZS9kb20vRE9NVXRpbHMiLGI9InRpbnltY2UvZG9tL1NjcmlwdExvYWRlciIs
Qz0idGlueW1jZS9BZGRPbk1hbmFnZXIiLHg9InRpbnltY2UvaHRtbC9Ob2RlIix3PSJ0aW55bWNl
L2h0bWwvU2NoZW1hIixfPSJ0aW55bWNlL2h0bWwvU2F4UGFyc2VyIixOPSJ0aW55bWNlL2h0bWwv
RG9tUGFyc2VyIixFPSJ0aW55bWNlL2h0bWwvV3JpdGVyIixTPSJ0aW55bWNlL2h0bWwvU2VyaWFs
aXplciIsaz0idGlueW1jZS9kb20vU2VyaWFsaXplciIsVD0idGlueW1jZS9kb20vVHJpZGVudFNl
bGVjdGlvbiIsUj0idGlueW1jZS91dGlsL1ZLIixBPSJ0aW55bWNlL2RvbS9Db250cm9sU2VsZWN0
aW9uIixCPSJ0aW55bWNlL2RvbS9SYW5nZVV0aWxzIixEPSJ0aW55bWNlL2RvbS9TZWxlY3Rpb24i
LEw9InRpbnltY2UvZm10L1ByZXZpZXciLE09InRpbnltY2UvRm9ybWF0dGVyIixIPSJ0aW55bWNl
L1VuZG9NYW5hZ2VyIixQPSJ0aW55bWNlL0VudGVyS2V5IixPPSJ0aW55bWNlL0ZvcmNlQmxvY2tz
IixJPSJ0aW55bWNlL0VkaXRvckNvbW1hbmRzIixGPSJ0aW55bWNlL3V0aWwvVVJJIix6PSJ0aW55
bWNlL3V0aWwvQ2xhc3MiLFc9InRpbnltY2UvdXRpbC9FdmVudERpc3BhdGNoZXIiLFY9InRpbnlt
Y2UvdWkvU2VsZWN0b3IiLFU9InRpbnltY2UvdWkvQ29sbGVjdGlvbiIscT0idGlueW1jZS91aS9E
b21VdGlscyIsJD0idGlueW1jZS91aS9Db250cm9sIixqPSJ0aW55bWNlL3VpL0ZhY3RvcnkiLEs9
InRpbnltY2UvdWkvS2V5Ym9hcmROYXZpZ2F0aW9uIixHPSJ0aW55bWNlL3VpL0NvbnRhaW5lciIs
WT0idGlueW1jZS91aS9EcmFnSGVscGVyIixYPSJ0aW55bWNlL3VpL1Njcm9sbGFibGUiLEo9InRp
bnltY2UvdWkvUGFuZWwiLFE9InRpbnltY2UvdWkvTW92YWJsZSIsWj0idGlueW1jZS91aS9SZXNp
emFibGUiLGV0PSJ0aW55bWNlL3VpL0Zsb2F0UGFuZWwiLHR0PSJ0aW55bWNlL3VpL1dpbmRvdyIs
bnQ9InRpbnltY2UvdWkvTWVzc2FnZUJveCIscnQ9InRpbnltY2UvV2luZG93TWFuYWdlciIsaXQ9
InRpbnltY2UvdXRpbC9RdWlya3MiLG90PSJ0aW55bWNlL3V0aWwvT2JzZXJ2YWJsZSIsYXQ9InRp
bnltY2UvRWRpdG9yT2JzZXJ2YWJsZSIsc3Q9InRpbnltY2UvU2hvcnRjdXRzIixsdD0idGlueW1j
ZS9FZGl0b3IiLGN0PSJ0aW55bWNlL3V0aWwvSTE4biIsdXQ9InRpbnltY2UvRm9jdXNNYW5hZ2Vy
IixkdD0idGlueW1jZS9FZGl0b3JNYW5hZ2VyIixmdD0idGlueW1jZS9MZWdhY3lJbnB1dCIscHQ9
InRpbnltY2UvdXRpbC9YSFIiLGh0PSJ0aW55bWNlL3V0aWwvSlNPTiIsbXQ9InRpbnltY2UvdXRp
bC9KU09OUmVxdWVzdCIsZ3Q9InRpbnltY2UvdXRpbC9KU09OUCIsdnQ9InRpbnltY2UvdXRpbC9M
b2NhbFN0b3JhZ2UiLHl0PSJ0aW55bWNlL0NvbXBhdCIsYnQ9InRpbnltY2UvdWkvTGF5b3V0IixD
dD0idGlueW1jZS91aS9BYnNvbHV0ZUxheW91dCIseHQ9InRpbnltY2UvdWkvVG9vbHRpcCIsd3Q9
InRpbnltY2UvdWkvV2lkZ2V0IixfdD0idGlueW1jZS91aS9CdXR0b24iLE50PSJ0aW55bWNlL3Vp
L0J1dHRvbkdyb3VwIixFdD0idGlueW1jZS91aS9DaGVja2JveCIsU3Q9InRpbnltY2UvdWkvUGFu
ZWxCdXR0b24iLGt0PSJ0aW55bWNlL3VpL0NvbG9yQnV0dG9uIixUdD0idGlueW1jZS91aS9Db21i
b0JveCIsUnQ9InRpbnltY2UvdWkvUGF0aCIsQXQ9InRpbnltY2UvdWkvRWxlbWVudFBhdGgiLEJ0
PSJ0aW55bWNlL3VpL0Zvcm1JdGVtIixEdD0idGlueW1jZS91aS9Gb3JtIixMdD0idGlueW1jZS91
aS9GaWVsZFNldCIsTXQ9InRpbnltY2UvdWkvRmlsZVBpY2tlciIsSHQ9InRpbnltY2UvdWkvRml0
TGF5b3V0IixQdD0idGlueW1jZS91aS9GbGV4TGF5b3V0IixPdD0idGlueW1jZS91aS9GbG93TGF5
b3V0IixJdD0idGlueW1jZS91aS9Gb3JtYXRDb250cm9scyIsRnQ9InRpbnltY2UvdWkvR3JpZExh
eW91dCIsenQ9InRpbnltY2UvdWkvSWZyYW1lIixXdD0idGlueW1jZS91aS9MYWJlbCIsVnQ9InRp
bnltY2UvdWkvVG9vbGJhciIsVXQ9InRpbnltY2UvdWkvTWVudUJhciIscXQ9InRpbnltY2UvdWkv
TWVudUJ1dHRvbiIsJHQ9InRpbnltY2UvdWkvTGlzdEJveCIsanQ9InRpbnltY2UvdWkvTWVudUl0
ZW0iLEt0PSJ0aW55bWNlL3VpL01lbnUiLEd0PSJ0aW55bWNlL3VpL1JhZGlvIixZdD0idGlueW1j
ZS91aS9SZXNpemVIYW5kbGUiLFh0PSJ0aW55bWNlL3VpL1NwYWNlciIsSnQ9InRpbnltY2UvdWkv
U3BsaXRCdXR0b24iLFF0PSJ0aW55bWNlL3VpL1N0YWNrTGF5b3V0IixadD0idGlueW1jZS91aS9U
YWJQYW5lbCIsZW49InRpbnltY2UvdWkvVGV4dEJveCIsdG49InRpbnltY2UvdWkvVGhyb2JiZXIi
O3IobCxbXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4scil7ZS5hZGRFdmVudExpc3RlbmVy
P2UuYWRkRXZlbnRMaXN0ZW5lcih0LG4scnx8ITEpOmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZl
bnQoIm9uIit0LG4pfWZ1bmN0aW9uIHQoZSx0LG4scil7ZS5yZW1vdmVFdmVudExpc3RlbmVyP2Uu
cmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4scnx8ITEpOmUuZGV0YWNoRXZlbnQmJmUuZGV0YWNoRXZl
bnQoIm9uIit0LG4pfWZ1bmN0aW9uIG4oZSx0KXtmdW5jdGlvbiBuKCl7cmV0dXJuITF9ZnVuY3Rp
b24gcigpe3JldHVybiEwfXZhciBpLG89dHx8e30sbDtmb3IoaSBpbiBlKXNbaV18fChvW2ldPWVb
aV0pO2lmKG8udGFyZ2V0fHwoby50YXJnZXQ9by5zcmNFbGVtZW50fHxkb2N1bWVudCksZSYmYS50
ZXN0KGUudHlwZSkmJmUucGFnZVg9PT1sJiZlLmNsaWVudFghPT1sKXt2YXIgYz1vLnRhcmdldC5v
d25lckRvY3VtZW50fHxkb2N1bWVudCx1PWMuZG9jdW1lbnRFbGVtZW50LGQ9Yy5ib2R5O28ucGFn
ZVg9ZS5jbGllbnRYKyh1JiZ1LnNjcm9sbExlZnR8fGQmJmQuc2Nyb2xsTGVmdHx8MCktKHUmJnUu
Y2xpZW50TGVmdHx8ZCYmZC5jbGllbnRMZWZ0fHwwKSxvLnBhZ2VZPWUuY2xpZW50WSsodSYmdS5z
Y3JvbGxUb3B8fGQmJmQuc2Nyb2xsVG9wfHwwKS0odSYmdS5jbGllbnRUb3B8fGQmJmQuY2xpZW50
VG9wfHwwKX1yZXR1cm4gby5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe28uaXNEZWZhdWx0UHJl
dmVudGVkPXIsZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJu
VmFsdWU9ITEpfSxvLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe28uaXNQcm9wYWdhdGlvblN0
b3BwZWQ9cixlJiYoZS5zdG9wUHJvcGFnYXRpb24/ZS5zdG9wUHJvcGFnYXRpb24oKTplLmNhbmNl
bEJ1YmJsZT0hMCl9LG8uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7by5pc0lt
bWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1yLG8uc3RvcFByb3BhZ2F0aW9uKCl9LG8uaXNEZWZh
dWx0UHJldmVudGVkfHwoby5pc0RlZmF1bHRQcmV2ZW50ZWQ9bixvLmlzUHJvcGFnYXRpb25TdG9w
cGVkPW4sby5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1uKSxvfWZ1bmN0aW9uIHIobixy
LGkpe2Z1bmN0aW9uIG8oKXtpLmRvbUxvYWRlZHx8KGkuZG9tTG9hZGVkPSEwLHIoYykpfWZ1bmN0
aW9uIGEoKXsoImNvbXBsZXRlIj09PWwucmVhZHlTdGF0ZXx8ImludGVyYWN0aXZlIj09PWwucmVh
ZHlTdGF0ZSYmbC5ib2R5KSYmKHQobCwicmVhZHlzdGF0ZWNoYW5nZSIsYSksbygpKX1mdW5jdGlv
biBzKCl7dHJ5e2wuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goZSl7cmV0
dXJuIHZvaWQgc2V0VGltZW91dChzLDApfW8oKX12YXIgbD1uLmRvY3VtZW50LGM9e3R5cGU6InJl
YWR5In07cmV0dXJuIGkuZG9tTG9hZGVkP3ZvaWQgcihjKToobC5hZGRFdmVudExpc3RlbmVyPyJj
b21wbGV0ZSI9PT1sLnJlYWR5U3RhdGU/bygpOmUobiwiRE9NQ29udGVudExvYWRlZCIsbyk6KGUo
bCwicmVhZHlzdGF0ZWNoYW5nZSIsYSksbC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJm4uc2Vs
Zj09PW4udG9wJiZzKCkpLHZvaWQgZShuLCJsb2FkIixvKSl9ZnVuY3Rpb24gaSgpe2Z1bmN0aW9u
IGkoZSx0KXt2YXIgbixyLGksbyxhPXNbdF07aWYobj1hJiZhW2UudHlwZV0pZm9yKHI9MCxpPW4u
bGVuZ3RoO2k+cjtyKyspaWYobz1uW3JdLG8mJm8uZnVuYy5jYWxsKG8uc2NvcGUsZSk9PT0hMSYm
ZS5wcmV2ZW50RGVmYXVsdCgpLGUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSlyZXR1
cm59dmFyIGE9dGhpcyxzPXt9LGwsYyx1LGQsZjtjPW8rKCtuZXcgRGF0ZSkudG9TdHJpbmcoMzIp
LGQ9Im9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdT0ib25mb2N1c2lu
ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxmPXttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1v
dXNlbGVhdmU6Im1vdXNlb3V0In0sbD0xLGEuZG9tTG9hZGVkPSExLGEuZXZlbnRzPXMsYS5iaW5k
PWZ1bmN0aW9uKHQsbyxwLGgpe2Z1bmN0aW9uIG0oZSl7aShuKGV8fF8uZXZlbnQpLGcpfXZhciBn
LHYseSxiLEMseCx3LF89d2luZG93O2lmKHQmJjMhPT10Lm5vZGVUeXBlJiY4IT09dC5ub2RlVHlw
ZSl7Zm9yKHRbY10/Zz10W2NdOihnPWwrKyx0W2NdPWcsc1tnXT17fSksaD1ofHx0LG89by5zcGxp
dCgiICIpLHk9by5sZW5ndGg7eS0tOyliPW9beV0seD1tLEM9dz0hMSwiRE9NQ29udGVudExvYWRl
ZCI9PT1iJiYoYj0icmVhZHkiKSxhLmRvbUxvYWRlZCYmInJlYWR5Ij09PWImJiJjb21wbGV0ZSI9
PXQucmVhZHlTdGF0ZT9wLmNhbGwoaCxuKHt0eXBlOmJ9KSk6KGR8fChDPWZbYl0sQyYmKHg9ZnVu
Y3Rpb24oZSl7dmFyIHQscjtpZih0PWUuY3VycmVudFRhcmdldCxyPWUucmVsYXRlZFRhcmdldCxy
JiZ0LmNvbnRhaW5zKXI9dC5jb250YWlucyhyKTtlbHNlIGZvcig7ciYmciE9PXQ7KXI9ci5wYXJl
bnROb2RlO3J8fChlPW4oZXx8Xy5ldmVudCksZS50eXBlPSJtb3VzZW91dCI9PT1lLnR5cGU/Im1v
dXNlbGVhdmUiOiJtb3VzZWVudGVyIixlLnRhcmdldD10LGkoZSxnKSl9KSksdXx8ImZvY3VzaW4i
IT09YiYmImZvY3Vzb3V0IiE9PWJ8fCh3PSEwLEM9ImZvY3VzaW4iPT09Yj8iZm9jdXMiOiJibHVy
Iix4PWZ1bmN0aW9uKGUpe2U9bihlfHxfLmV2ZW50KSxlLnR5cGU9ImZvY3VzIj09PWUudHlwZT8i
Zm9jdXNpbiI6ImZvY3Vzb3V0IixpKGUsZyl9KSx2PXNbZ11bYl0sdj8icmVhZHkiPT09YiYmYS5k
b21Mb2FkZWQ/cCh7dHlwZTpifSk6di5wdXNoKHtmdW5jOnAsc2NvcGU6aH0pOihzW2ddW2JdPXY9
W3tmdW5jOnAsc2NvcGU6aH1dLHYuZmFrZU5hbWU9Qyx2LmNhcHR1cmU9dyx2Lm5hdGl2ZUhhbmRs
ZXI9eCwicmVhZHkiPT09Yj9yKHQseCxhKTplKHQsQ3x8Yix4LHcpKSk7cmV0dXJuIHQ9dj0wLHB9
fSxhLnVuYmluZD1mdW5jdGlvbihlLG4scil7dmFyIGksbyxsLHUsZCxmO2lmKCFlfHwzPT09ZS5u
b2RlVHlwZXx8OD09PWUubm9kZVR5cGUpcmV0dXJuIGE7aWYoaT1lW2NdKXtpZihmPXNbaV0sbil7
Zm9yKG49bi5zcGxpdCgiICIpLGw9bi5sZW5ndGg7bC0tOylpZihkPW5bbF0sbz1mW2RdKXtpZihy
KWZvcih1PW8ubGVuZ3RoO3UtLTspaWYob1t1XS5mdW5jPT09cil7dmFyIHA9by5uYXRpdmVIYW5k
bGVyLGg9by5mYWtlTmFtZSxtPW8uY2FwdHVyZTtvPW8uc2xpY2UoMCx1KS5jb25jYXQoby5zbGlj
ZSh1KzEpKSxvLm5hdGl2ZUhhbmRsZXI9cCxvLmZha2VOYW1lPWgsby5jYXB0dXJlPW0sZltkXT1v
fXImJjAhPT1vLmxlbmd0aHx8KGRlbGV0ZSBmW2RdLHQoZSxvLmZha2VOYW1lfHxkLG8ubmF0aXZl
SGFuZGxlcixvLmNhcHR1cmUpKX19ZWxzZXtmb3IoZCBpbiBmKW89ZltkXSx0KGUsby5mYWtlTmFt
ZXx8ZCxvLm5hdGl2ZUhhbmRsZXIsby5jYXB0dXJlKTtmPXt9fWZvcihkIGluIGYpcmV0dXJuIGE7
ZGVsZXRlIHNbaV07dHJ5e2RlbGV0ZSBlW2NdfWNhdGNoKGcpe2VbY109bnVsbH19cmV0dXJuIGF9
LGEuZmlyZT1mdW5jdGlvbihlLHQscil7dmFyIG87aWYoIWV8fDM9PT1lLm5vZGVUeXBlfHw4PT09
ZS5ub2RlVHlwZSlyZXR1cm4gYTtyPW4obnVsbCxyKSxyLnR5cGU9dCxyLnRhcmdldD1lO2RvIG89
ZVtjXSxvJiZpKHIsbyksZT1lLnBhcmVudE5vZGV8fGUub3duZXJEb2N1bWVudHx8ZS5kZWZhdWx0
Vmlld3x8ZS5wYXJlbnRXaW5kb3c7d2hpbGUoZSYmIXIuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSk7
cmV0dXJuIGF9LGEuY2xlYW49ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWEudW5iaW5kO2lmKCFlfHwz
PT09ZS5ub2RlVHlwZXx8OD09PWUubm9kZVR5cGUpcmV0dXJuIGE7aWYoZVtjXSYmcihlKSxlLmdl
dEVsZW1lbnRzQnlUYWdOYW1lfHwoZT1lLmRvY3VtZW50KSxlJiZlLmdldEVsZW1lbnRzQnlUYWdO
YW1lKWZvcihyKGUpLG49ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLHQ9bi5sZW5ndGg7dC0t
OyllPW5bdF0sZVtjXSYmcihlKTtyZXR1cm4gYX0sYS5kZXN0cm95PWZ1bmN0aW9uKCl7cz17fX0s
YS5jYW5jZWw9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9w
SW1tZWRpYXRlUHJvcGFnYXRpb24oKSksITF9fXZhciBvPSJtY2UtZGF0YS0iLGE9L14oPzptb3Vz
ZXxjb250ZXh0bWVudSl8Y2xpY2svLHM9e2tleUxvY2F0aW9uOjEsbGF5ZXJYOjEsbGF5ZXJZOjEs
cmV0dXJuVmFsdWU6MX07cmV0dXJuIGkuRXZlbnQ9bmV3IGksaS5FdmVudC5iaW5kKHdpbmRvdywi
cmVhZHkiLGZ1bmN0aW9uKCl7fSksaX0pLHIoYyxbXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7
cmV0dXJuIG10LnRlc3QoZSsiIil9ZnVuY3Rpb24gbigpe3ZhciBlLHQ9W107cmV0dXJuIGU9ZnVu
Y3Rpb24obixyKXtyZXR1cm4gdC5wdXNoKG4rPSIgIik+Xy5jYWNoZUxlbmd0aCYmZGVsZXRlIGVb
dC5zaGlmdCgpXSxlW25dPXIscn19ZnVuY3Rpb24gcihlKXtyZXR1cm4gZVtJXT0hMCxlfWZ1bmN0
aW9uIGkoZSl7dmFyIHQ9Qi5jcmVhdGVFbGVtZW50KCJkaXYiKTt0cnl7cmV0dXJuISFlKHQpfWNh
dGNoKG4pe3JldHVybiExfWZpbmFsbHl7dD1udWxsfX1mdW5jdGlvbiBvKGUsdCxuLHIpe3ZhciBp
LG8sYSxzLGwsYyxmLHAsaCxtO2lmKCh0P3Qub3duZXJEb2N1bWVudHx8dDpGKSE9PUImJkEodCks
dD10fHxCLG49bnx8W10sIWV8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gbjtpZigxIT09KHM9
dC5ub2RlVHlwZSkmJjkhPT1zKXJldHVybltdO2lmKEwmJiFyKXtpZihpPWd0LmV4ZWMoZSkpaWYo
YT1pWzFdKXtpZig5PT09cyl7aWYobz10LmdldEVsZW1lbnRCeUlkKGEpLCFvfHwhby5wYXJlbnRO
b2RlKXJldHVybiBuO2lmKG8uaWQ9PT1hKXJldHVybiBuLnB1c2gobyksbn1lbHNlIGlmKHQub3du
ZXJEb2N1bWVudCYmKG89dC5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKSYmTyh0LG8p
JiZvLmlkPT09YSlyZXR1cm4gbi5wdXNoKG8pLG59ZWxzZXtpZihpWzJdKXJldHVybiBaLmFwcGx5
KG4sdC5nZXRFbGVtZW50c0J5VGFnTmFtZShlKSksbjtpZigoYT1pWzNdKSYmei5nZXRFbGVtZW50
c0J5Q2xhc3NOYW1lJiZ0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIFouYXBwbHkobix0
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYSkpLG59aWYoei5xc2EmJiFNLnRlc3QoZSkpe2lmKGY9
ITAscD1JLGg9dCxtPTk9PT1zJiZlLDE9PT1zJiYib2JqZWN0IiE9PXQubm9kZU5hbWUudG9Mb3dl
ckNhc2UoKSl7Zm9yKGM9dShlKSwoZj10LmdldEF0dHJpYnV0ZSgiaWQiKSk/cD1mLnJlcGxhY2Uo
YnQsIlxcJCYiKTp0LnNldEF0dHJpYnV0ZSgiaWQiLHApLHA9IltpZD0nIitwKyInXSAiLGw9Yy5s
ZW5ndGg7bC0tOyljW2xdPXArZChjW2xdKTtoPWh0LnRlc3QoZSkmJnQucGFyZW50Tm9kZXx8dCxt
PWMuam9pbigiLCIpfWlmKG0pdHJ5e3JldHVybiBaLmFwcGx5KG4saC5xdWVyeVNlbGVjdG9yQWxs
KG0pKSxufWNhdGNoKGcpe31maW5hbGx5e2Z8fHQucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0
dXJuIGIoZS5yZXBsYWNlKGx0LCIkMSIpLHQsbixyKX1mdW5jdGlvbiBhKGUsdCl7dmFyIG49dCYm
ZSxyPW4mJih+dC5zb3VyY2VJbmRleHx8WSktKH5lLnNvdXJjZUluZGV4fHxZKTtpZihyKXJldHVy
biByO2lmKG4pZm9yKDtuPW4ubmV4dFNpYmxpbmc7KWlmKG49PT10KXJldHVybi0xO3JldHVybiBl
PzE6LTF9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1uJiZ0LnR5cGU9PT1lfX1mdW5jdGlvbiBsKGUp
e3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJu
KCJpbnB1dCI9PT1ufHwiYnV0dG9uIj09PW4pJiZ0LnR5cGU9PT1lfX1mdW5jdGlvbiBjKGUpe3Jl
dHVybiByKGZ1bmN0aW9uKHQpe3JldHVybiB0PSt0LHIoZnVuY3Rpb24obixyKXtmb3IodmFyIGks
bz1lKFtdLG4ubGVuZ3RoLHQpLGE9by5sZW5ndGg7YS0tOyluW2k9b1thXV0mJihuW2ldPSEocltp
XT1uW2ldKSl9KX0pfWZ1bmN0aW9uIHUoZSx0KXt2YXIgbixyLGksYSxzLGwsYyx1PXFbZSsiICJd
O2lmKHUpcmV0dXJuIHQ/MDp1LnNsaWNlKDApO2ZvcihzPWUsbD1bXSxjPV8ucHJlRmlsdGVyO3M7
KXsoIW58fChyPWN0LmV4ZWMocykpKSYmKHImJihzPXMuc2xpY2UoclswXS5sZW5ndGgpfHxzKSxs
LnB1c2goaT1bXSkpLG49ITEsKHI9dXQuZXhlYyhzKSkmJihuPXIuc2hpZnQoKSxpLnB1c2goe3Zh
bHVlOm4sdHlwZTpyWzBdLnJlcGxhY2UobHQsIiAiKX0pLHM9cy5zbGljZShuLmxlbmd0aCkpO2Zv
cihhIGluIF8uZmlsdGVyKSEocj1wdFthXS5leGVjKHMpKXx8Y1thXSYmIShyPWNbYV0ocikpfHwo
bj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6YSxtYXRjaGVzOnJ9KSxzPXMuc2xpY2Uo
bi5sZW5ndGgpKTtpZighbilicmVha31yZXR1cm4gdD9zLmxlbmd0aDpzP28uZXJyb3IoZSk6cShl
LGwpLnNsaWNlKDApfWZ1bmN0aW9uIGQoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aCxyPSIiO24+
dDt0Kyspcis9ZVt0XS52YWx1ZTtyZXR1cm4gcn1mdW5jdGlvbiBmKGUsdCxuKXt2YXIgcj10LmRp
cixpPW4mJiJwYXJlbnROb2RlIj09PXIsbz1WKys7cmV0dXJuIHQuZmlyc3Q/ZnVuY3Rpb24odCxu
LG8pe2Zvcig7dD10W3JdOylpZigxPT09dC5ub2RlVHlwZXx8aSlyZXR1cm4gZSh0LG4sbyl9OmZ1
bmN0aW9uKHQsbixhKXt2YXIgcyxsLGMsdT1XKyIgIitvO2lmKGEpe2Zvcig7dD10W3JdOylpZigo
MT09PXQubm9kZVR5cGV8fGkpJiZlKHQsbixhKSlyZXR1cm4hMH1lbHNlIGZvcig7dD10W3JdOylp
ZigxPT09dC5ub2RlVHlwZXx8aSlpZihjPXRbSV18fCh0W0ldPXt9KSwobD1jW3JdKSYmbFswXT09
PXUpe2lmKChzPWxbMV0pPT09ITB8fHM9PT13KXJldHVybiBzPT09ITB9ZWxzZSBpZihsPWNbcl09
W3VdLGxbMV09ZSh0LG4sYSl8fHcsbFsxXT09PSEwKXJldHVybiEwfX1mdW5jdGlvbiBwKGUpe3Jl
dHVybiBlLmxlbmd0aD4xP2Z1bmN0aW9uKHQsbixyKXtmb3IodmFyIGk9ZS5sZW5ndGg7aS0tOylp
ZighZVtpXSh0LG4scikpcmV0dXJuITE7cmV0dXJuITB9OmVbMF19ZnVuY3Rpb24gaChlLHQsbixy
LGkpe2Zvcih2YXIgbyxhPVtdLHM9MCxsPWUubGVuZ3RoLGM9bnVsbCE9dDtsPnM7cysrKShvPWVb
c10pJiYoIW58fG4obyxyLGkpKSYmKGEucHVzaChvKSxjJiZ0LnB1c2gocykpO3JldHVybiBhfWZ1
bmN0aW9uIG0oZSx0LG4saSxvLGEpe3JldHVybiBpJiYhaVtJXSYmKGk9bShpKSksbyYmIW9bSV0m
JihvPW0obyxhKSkscihmdW5jdGlvbihyLGEscyxsKXt2YXIgYyx1LGQsZj1bXSxwPVtdLG09YS5s
ZW5ndGgsZz1yfHx5KHR8fCIqIixzLm5vZGVUeXBlP1tzXTpzLFtdKSx2PSFlfHwhciYmdD9nOmgo
ZyxmLGUscyxsKSxiPW4/b3x8KHI/ZTptfHxpKT9bXTphOnY7aWYobiYmbih2LGIscyxsKSxpKWZv
cihjPWgoYixwKSxpKGMsW10scyxsKSx1PWMubGVuZ3RoO3UtLTspKGQ9Y1t1XSkmJihiW3BbdV1d
PSEodltwW3VdXT1kKSk7aWYocil7aWYob3x8ZSl7aWYobyl7Zm9yKGM9W10sdT1iLmxlbmd0aDt1
LS07KShkPWJbdV0pJiZjLnB1c2godlt1XT1kKTtvKG51bGwsYj1bXSxjLGwpfWZvcih1PWIubGVu
Z3RoO3UtLTspKGQ9Ylt1XSkmJihjPW8/dHQuY2FsbChyLGQpOmZbdV0pPi0xJiYocltjXT0hKGFb
Y109ZCkpfX1lbHNlIGI9aChiPT09YT9iLnNwbGljZShtLGIubGVuZ3RoKTpiKSxvP28obnVsbCxh
LGIsbCk6Wi5hcHBseShhLGIpfSl9ZnVuY3Rpb24gZyhlKXtmb3IodmFyIHQsbixyLGk9ZS5sZW5n
dGgsbz1fLnJlbGF0aXZlW2VbMF0udHlwZV0sYT1vfHxfLnJlbGF0aXZlWyIgIl0scz1vPzE6MCxs
PWYoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fSxhLCEwKSxjPWYoZnVuY3Rpb24oZSl7cmV0dXJu
IHR0LmNhbGwodCxlKT4tMX0sYSwhMCksdT1bZnVuY3Rpb24oZSxuLHIpe3JldHVybiFvJiYocnx8
biE9PWspfHwoKHQ9bikubm9kZVR5cGU/bChlLG4scik6YyhlLG4scikpfV07aT5zO3MrKylpZihu
PV8ucmVsYXRpdmVbZVtzXS50eXBlXSl1PVtmKHAodSksbildO2Vsc2V7aWYobj1fLmZpbHRlcltl
W3NdLnR5cGVdLmFwcGx5KG51bGwsZVtzXS5tYXRjaGVzKSxuW0ldKXtmb3Iocj0rK3M7aT5yJiYh
Xy5yZWxhdGl2ZVtlW3JdLnR5cGVdO3IrKyk7cmV0dXJuIG0ocz4xJiZwKHUpLHM+MSYmZChlLnNs
aWNlKDAscy0xKSkucmVwbGFjZShsdCwiJDEiKSxuLHI+cyYmZyhlLnNsaWNlKHMscikpLGk+ciYm
ZyhlPWUuc2xpY2UocikpLGk+ciYmZChlKSl9dS5wdXNoKG4pfXJldHVybiBwKHUpfWZ1bmN0aW9u
IHYoZSx0KXt2YXIgbj0wLGk9dC5sZW5ndGg+MCxhPWUubGVuZ3RoPjAscz1mdW5jdGlvbihyLHMs
bCxjLHUpe3ZhciBkLGYscCxtPVtdLGc9MCx2PSIwIix5PXImJltdLGI9bnVsbCE9dSxDPWsseD1y
fHxhJiZfLmZpbmQuVEFHKCIqIix1JiZzLnBhcmVudE5vZGV8fHMpLE49Vys9bnVsbD09Qz8xOk1h
dGgucmFuZG9tKCl8fC4xO2ZvcihiJiYoaz1zIT09QiYmcyx3PW4pO251bGwhPShkPXhbdl0pO3Yr
Kyl7aWYoYSYmZCl7Zm9yKGY9MDtwPWVbZisrXTspaWYocChkLHMsbCkpe2MucHVzaChkKTticmVh
a31iJiYoVz1OLHc9KytuKX1pJiYoKGQ9IXAmJmQpJiZnLS0sciYmeS5wdXNoKGQpKX1pZihnKz12
LGkmJnYhPT1nKXtmb3IoZj0wO3A9dFtmKytdOylwKHksbSxzLGwpO2lmKHIpe2lmKGc+MClmb3Io
O3YtLTspeVt2XXx8bVt2XXx8KG1bdl09Si5jYWxsKGMpKTttPWgobSl9Wi5hcHBseShjLG0pLGIm
JiFyJiZtLmxlbmd0aD4wJiZnK3QubGVuZ3RoPjEmJm8udW5pcXVlU29ydChjKX1yZXR1cm4gYiYm
KFc9TixrPUMpLHl9O3JldHVybiBpP3Iocyk6c31mdW5jdGlvbiB5KGUsdCxuKXtmb3IodmFyIHI9
MCxpPXQubGVuZ3RoO2k+cjtyKyspbyhlLHRbcl0sbik7cmV0dXJuIG59ZnVuY3Rpb24gYihlLHQs
bixyKXt2YXIgaSxvLGEscyxsLGM9dShlKTtpZighciYmMT09PWMubGVuZ3RoKXtpZihvPWNbMF09
Y1swXS5zbGljZSgwKSxvLmxlbmd0aD4yJiYiSUQiPT09KGE9b1swXSkudHlwZSYmOT09PXQubm9k
ZVR5cGUmJkwmJl8ucmVsYXRpdmVbb1sxXS50eXBlXSl7aWYodD0oXy5maW5kLklEKGEubWF0Y2hl
c1swXS5yZXBsYWNlKHh0LHd0KSx0KXx8W10pWzBdLCF0KXJldHVybiBuO2U9ZS5zbGljZShvLnNo
aWZ0KCkudmFsdWUubGVuZ3RoKX1mb3IoaT1wdC5uZWVkc0NvbnRleHQudGVzdChlKT8wOm8ubGVu
Z3RoO2ktLSYmKGE9b1tpXSwhXy5yZWxhdGl2ZVtzPWEudHlwZV0pOylpZigobD1fLmZpbmRbc10p
JiYocj1sKGEubWF0Y2hlc1swXS5yZXBsYWNlKHh0LHd0KSxodC50ZXN0KG9bMF0udHlwZSkmJnQu
cGFyZW50Tm9kZXx8dCkpKXtpZihvLnNwbGljZShpLDEpLGU9ci5sZW5ndGgmJmQobyksIWUpcmV0
dXJuIFouYXBwbHkobixyKSxuO2JyZWFrfX1yZXR1cm4gUyhlLGMpKHIsdCwhTCxuLGh0LnRlc3Qo
ZSkpLG59ZnVuY3Rpb24gQygpe312YXIgeCx3LF8sTixFLFMsayxULFIsQSxCLEQsTCxNLEgsUCxP
LEk9InNpenpsZSIrLW5ldyBEYXRlLEY9d2luZG93LmRvY3VtZW50LHo9e30sVz0wLFY9MCxVPW4o
KSxxPW4oKSwkPW4oKSxqPSExLEs9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sRz10eXBlb2YgdCxZPTE8
PDMxLFg9W10sSj1YLnBvcCxRPVgucHVzaCxaPVgucHVzaCxldD1YLnNsaWNlLHR0PVguaW5kZXhP
Znx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj10aGlzLmxlbmd0aDtuPnQ7dCsrKWlmKHRoaXNb
dF09PT1lKXJldHVybiB0O3JldHVybi0xfSxudD0iW1xceDIwXFx0XFxyXFxuXFxmXSIscnQ9Iig/
OlxcXFwufFtcXHctXXxbXlxceDAwLVxceGEwXSkrIixpdD1ydC5yZXBsYWNlKCJ3IiwidyMiKSxv
dD0iKFsqXiR8IX5dPz0pIixhdD0iXFxbIitudCsiKigiK3J0KyIpIitudCsiKig/OiIrb3QrbnQr
IiooPzooWydcIl0pKCg/OlxcXFwufFteXFxcXF0pKj8pXFwzfCgiK2l0KyIpfCl8KSIrbnQrIipc
XF0iLHN0PSI6KCIrcnQrIikoPzpcXCgoKFsnXCJdKSgoPzpcXFxcLnxbXlxcXFxdKSo/KVxcM3wo
KD86XFxcXC58W15cXFxcKClbXFxdXXwiK2F0LnJlcGxhY2UoMyw4KSsiKSopfC4qKVxcKXwpIixs
dD1uZXcgUmVnRXhwKCJeIitudCsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitudCsiKyQi
LCJnIiksY3Q9bmV3IFJlZ0V4cCgiXiIrbnQrIiosIitudCsiKiIpLHV0PW5ldyBSZWdFeHAoIl4i
K250KyIqKFtcXHgyMFxcdFxcclxcblxcZj4rfl0pIitudCsiKiIpLGR0PW5ldyBSZWdFeHAoc3Qp
LGZ0PW5ldyBSZWdFeHAoIl4iK2l0KyIkIikscHQ9e0lEOm5ldyBSZWdFeHAoIl4jKCIrcnQrIiki
KSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrcnQrIikiKSxOQU1FOm5ldyBSZWdFeHAoIl5cXFtu
YW1lPVsnXCJdPygiK3J0KyIpWydcIl0/XFxdIiksVEFHOm5ldyBSZWdFeHAoIl4oIitydC5yZXBs
YWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrYXQpLFBTRVVETzpuZXcgUmVn
RXhwKCJeIitzdCksQ0hJTEQ6bmV3IFJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgt
bGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoIitudCsiKihldmVufG9kZHwoKFsrLV18KShcXGQq
KW58KSIrbnQrIiooPzooWystXXwpIitudCsiKihcXGQrKXwpKSIrbnQrIipcXCl8KSIsImkiKSxu
ZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrbnQrIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0
fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrbnQrIiooKD86LVxcZCk/XFxkKikiK250KyIqXFwpfCko
Pz1bXi1dfCQpIiwiaSIpfSxodD0vW1x4MjBcdFxyXG5cZl0qWyt+XS8sbXQ9L15bXntdK1x7XHMq
XFtuYXRpdmUgY29kZS8sZ3Q9L14oPzojKFtcd1wtXSspfChcdyspfFwuKFtcd1wtXSspKSQvLHZ0
PS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2kseXQ9L15oXGQkL2ksYnQ9Lyd8
XFwvZyxDdD0vXD1bXHgyMFx0XHJcblxmXSooW14nIlxdXSopW1x4MjBcdFxyXG5cZl0qXF0vZyx4
dD0vXFwoW1xkYS1mQS1GXXsxLDZ9W1x4MjBcdFxyXG5cZl0/fC4pL2csd3Q9ZnVuY3Rpb24oZSx0
KXt2YXIgbj0iMHgiK3QtNjU1MzY7cmV0dXJuIG4hPT1uP3Q6MD5uP1N0cmluZy5mcm9tQ2hhckNv
ZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjAp
fTt0cnl7Wi5hcHBseShYPWV0LmNhbGwoRi5jaGlsZE5vZGVzKSxGLmNoaWxkTm9kZXMpLFhbRi5j
aGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goX3Qpe1o9e2FwcGx5OlgubGVuZ3RoP2Z1
bmN0aW9uKGUsdCl7US5hcHBseShlLGV0LmNhbGwodCkpfTpmdW5jdGlvbihlLHQpe2Zvcih2YXIg
bj1lLmxlbmd0aCxyPTA7ZVtuKytdPXRbcisrXTspO2UubGVuZ3RoPW4tMX19fUU9by5pc1hNTD1m
dW5jdGlvbihlKXt2YXIgdD1lJiYoZS5vd25lckRvY3VtZW50fHxlKS5kb2N1bWVudEVsZW1lbnQ7
cmV0dXJuIHQ/IkhUTUwiIT09dC5ub2RlTmFtZTohMX0sQT1vLnNldERvY3VtZW50PWZ1bmN0aW9u
KG4pe3ZhciByPW4/bi5vd25lckRvY3VtZW50fHxuOkY7cmV0dXJuIHIhPT1CJiY5PT09ci5ub2Rl
VHlwZSYmci5kb2N1bWVudEVsZW1lbnQ/KEI9cixEPXIuZG9jdW1lbnRFbGVtZW50LEw9IUUociks
ei5nZXRFbGVtZW50c0J5VGFnTmFtZT1pKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGVuZENoaWxk
KHIuY3JlYXRlQ29tbWVudCgiIikpLCFlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3Ro
fSksei5hdHRyaWJ1dGVzPWkoZnVuY3Rpb24oZSl7ZS5pbm5lckhUTUw9IjxzZWxlY3Q+PC9zZWxl
Y3Q+Ijt2YXIgdD10eXBlb2YgZS5sYXN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJtdWx0aXBsZSIpO3Jl
dHVybiJib29sZWFuIiE9PXQmJiJzdHJpbmciIT09dH0pLHouZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZT1pKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0iPGRpdiBjbGFzcz0naGlkZGVuIGUn
PjwvZGl2PjxkaXYgY2xhc3M9J2hpZGRlbic+PC9kaXY+IixlLmdldEVsZW1lbnRzQnlDbGFzc05h
bWUmJmUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD8oZS5sYXN0Q2hpbGQuY2xh
c3NOYW1lPSJlIiwyPT09ZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoKTohMX0p
LHouZ2V0QnlOYW1lPWkoZnVuY3Rpb24oZSl7ZS5pZD1JKzAsZS5hcHBlbmRDaGlsZChCLmNyZWF0
ZUVsZW1lbnQoImEiKSkuc2V0QXR0cmlidXRlKCJuYW1lIixJKSxlLmFwcGVuZENoaWxkKEIuY3Jl
YXRlRWxlbWVudCgiaSIpKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLEkpLEQuYXBwZW5kQ2hpbGQoZSk7
dmFyIHQ9ci5nZXRFbGVtZW50c0J5TmFtZSYmci5nZXRFbGVtZW50c0J5TmFtZShJKS5sZW5ndGg9
PT0yK3IuZ2V0RWxlbWVudHNCeU5hbWUoSSswKS5sZW5ndGg7cmV0dXJuIEQucmVtb3ZlQ2hpbGQo
ZSksdH0pLHouc29ydERldGFjaGVkPWkoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29tcGFyZURvY3Vt
ZW50UG9zaXRpb24mJjEmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihCLmNyZWF0ZUVsZW1lbnQo
ImRpdiIpKX0pLF8uYXR0ckhhbmRsZT1pKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0i
PGEgaHJlZj0nIyc+PC9hPiIsZS5maXJzdENoaWxkJiZ0eXBlb2YgZS5maXJzdENoaWxkLmdldEF0
dHJpYnV0ZSE9PUcmJiIjIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pP3t9
OntocmVmOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSgiaHJlZiIsMil9LHR5cGU6
ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKCJ0eXBlIil9fSx6LmdldEJ5TmFtZT8o
Xy5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQhPT1HJiZM
KXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuJiZuLnBhcmVudE5vZGU/W25dOltd
fX0sXy5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHh0LHd0KTtyZXR1cm4g
ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKCJpZCIpPT09dH19KTooXy5maW5kLklE
PWZ1bmN0aW9uKGUsbil7aWYodHlwZW9mIG4uZ2V0RWxlbWVudEJ5SWQhPT1HJiZMKXt2YXIgcj1u
LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiByP3IuaWQ9PT1lfHx0eXBlb2Ygci5nZXRBdHRyaWJ1
dGVOb2RlIT09RyYmci5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLnZhbHVlPT09ZT9bcl06dDpbXX19
LF8uZmlsdGVyLklEPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh4dCx3dCk7cmV0dXJuIGZ1
bmN0aW9uKGUpe3ZhciBuPXR5cGVvZiBlLmdldEF0dHJpYnV0ZU5vZGUhPT1HJiZlLmdldEF0dHJp
YnV0ZU5vZGUoImlkIik7cmV0dXJuIG4mJm4udmFsdWU9PT10fX0pLF8uZmluZC5UQUc9ei5nZXRF
bGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihlLHQpe3JldHVybiB0eXBlb2YgdC5nZXRFbGVtZW50
c0J5VGFnTmFtZSE9PUc/dC5nZXRFbGVtZW50c0J5VGFnTmFtZShlKTp2b2lkIDB9OmZ1bmN0aW9u
KGUsdCl7dmFyIG4scj1bXSxpPTAsbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpO2lmKCIqIj09
PWUpe2Zvcig7bj1vW2krK107KTE9PT1uLm5vZGVUeXBlJiZyLnB1c2gobik7cmV0dXJuIHJ9cmV0
dXJuIG99LF8uZmluZC5OQU1FPXouZ2V0QnlOYW1lJiZmdW5jdGlvbihlLHQpe3JldHVybiB0eXBl
b2YgdC5nZXRFbGVtZW50c0J5TmFtZSE9PUc/dC5nZXRFbGVtZW50c0J5TmFtZShuYW1lKTp2b2lk
IDB9LF8uZmluZC5DTEFTUz16LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGUsdCl7
cmV0dXJuIHR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUhPT1HJiZMP3QuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZShlKTp2b2lkIDB9LEg9W10sTT1bIjpmb2N1cyJdLCh6LnFzYT1lKHIucXVl
cnlTZWxlY3RvckFsbCkpJiYoaShmdW5jdGlvbihlKXtlLmlubmVySFRNTD0iPHNlbGVjdD48b3B0
aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsZS5xdWVyeVNlbGVjdG9yQWxsKCJb
c2VsZWN0ZWRdIikubGVuZ3RofHxNLnB1c2goIlxcWyIrbnQrIiooPzpjaGVja2VkfGRpc2FibGVk
fGlzbWFwfG11bHRpcGxlfHJlYWRvbmx5fHNlbGVjdGVkfHZhbHVlKSIpLGUucXVlcnlTZWxlY3Rv
ckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fE0ucHVzaCgiOmNoZWNrZWQiKX0pLGkoZnVuY3Rpb24o
ZSl7ZS5pbm5lckhUTUw9IjxpbnB1dCB0eXBlPSdoaWRkZW4nIGk9JycvPiIsZS5xdWVyeVNlbGVj
dG9yQWxsKCJbaV49JyddIikubGVuZ3RoJiZNLnB1c2goIlsqXiRdPSIrbnQrIiooPzpcIlwifCcn
KSIpLGUucXVlcnlTZWxlY3RvckFsbCgiOmVuYWJsZWQiKS5sZW5ndGh8fE0ucHVzaCgiOmVuYWJs
ZWQiLCI6ZGlzYWJsZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIiosOngiKSxNLnB1c2goIiwuKjoi
KX0pKSwoei5tYXRjaGVzU2VsZWN0b3I9ZShQPUQubWF0Y2hlc1NlbGVjdG9yfHxELm1vek1hdGNo
ZXNTZWxlY3Rvcnx8RC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fEQub01hdGNoZXNTZWxlY3Rvcnx8
RC5tc01hdGNoZXNTZWxlY3RvcikpJiZpKGZ1bmN0aW9uKGUpe3ouZGlzY29ubmVjdGVkTWF0Y2g9
UC5jYWxsKGUsImRpdiIpLFAuY2FsbChlLCJbcyE9JyddOngiKSxILnB1c2goIiE9IixzdCl9KSxN
PW5ldyBSZWdFeHAoTS5qb2luKCJ8IikpLEg9SC5sZW5ndGgmJm5ldyBSZWdFeHAoSC5qb2luKCJ8
IikpLE89ZShELmNvbnRhaW5zKXx8RC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihl
LHQpe3ZhciBuPTk9PT1lLm5vZGVUeXBlP2UuZG9jdW1lbnRFbGVtZW50OmUscj10JiZ0LnBhcmVu
dE5vZGU7cmV0dXJuIGU9PT1yfHwhKCFyfHwxIT09ci5ub2RlVHlwZXx8IShuLmNvbnRhaW5zP24u
Y29udGFpbnMocik6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmZS5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihyKSkpfTpmdW5jdGlvbihlLHQpe2lmKHQpZm9yKDt0PXQucGFyZW50Tm9kZTsp
aWYodD09PWUpcmV0dXJuITA7cmV0dXJuITF9LEs9RC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9m
dW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiBqPSEwLDA7dmFyIG49dC5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbiYmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmZS5jb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbih0KTtyZXR1cm4gbj8xJm58fFQmJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSk9
PT1uP2U9PT1yfHxPKEYsZSk/LTE6dD09PXJ8fE8oRix0KT8xOlI/dHQuY2FsbChSLGUpLXR0LmNh
bGwoUix0KTowOjQmbj8tMToxOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24/LTE6MX06ZnVuY3Rp
b24oZSx0KXt2YXIgbixpPTAsbz1lLnBhcmVudE5vZGUscz10LnBhcmVudE5vZGUsbD1bZV0sYz1b
dF07aWYoZT09PXQpcmV0dXJuIGo9ITAsMDtpZighb3x8IXMpcmV0dXJuIGU9PT1yPy0xOnQ9PT1y
PzE6bz8tMTpzPzE6MDtpZihvPT09cylyZXR1cm4gYShlLHQpO2ZvcihuPWU7bj1uLnBhcmVudE5v
ZGU7KWwudW5zaGlmdChuKTtmb3Iobj10O249bi5wYXJlbnROb2RlOyljLnVuc2hpZnQobik7Zm9y
KDtsW2ldPT09Y1tpXTspaSsrO3JldHVybiBpP2EobFtpXSxjW2ldKTpsW2ldPT09Rj8tMTpjW2ld
PT09Rj8xOjB9LEIpOkJ9LG8ubWF0Y2hlcz1mdW5jdGlvbihlLHQpe3JldHVybiBvKGUsbnVsbCxu
dWxsLHQpfSxvLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKChlLm93bmVyRG9jdW1l
bnR8fGUpIT09QiYmQShlKSx0PXQucmVwbGFjZShDdCwiPSckMSddIiksei5tYXRjaGVzU2VsZWN0
b3ImJkwmJighSHx8IUgudGVzdCh0KSkmJiFNLnRlc3QodCkpdHJ5e3ZhciBuPVAuY2FsbChlLHQp
O2lmKG58fHouZGlzY29ubmVjdGVkTWF0Y2h8fGUuZG9jdW1lbnQmJjExIT09ZS5kb2N1bWVudC5u
b2RlVHlwZSlyZXR1cm4gbn1jYXRjaChyKXt9cmV0dXJuIG8odCxCLG51bGwsW2VdKS5sZW5ndGg+
MH0sby5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybihlLm93bmVyRG9jdW1lbnR8fGUpIT09
QiYmQShlKSxPKGUsdCl9LG8uYXR0cj1mdW5jdGlvbihlLHQpe3ZhciBuO3JldHVybihlLm93bmVy
RG9jdW1lbnR8fGUpIT09QiYmQShlKSxMJiYodD10LnRvTG93ZXJDYXNlKCkpLChuPV8uYXR0ckhh
bmRsZVt0XSk/bihlKTohTHx8ei5hdHRyaWJ1dGVzP2UuZ2V0QXR0cmlidXRlKHQpOigobj1lLmdl
dEF0dHJpYnV0ZU5vZGUodCkpfHxlLmdldEF0dHJpYnV0ZSh0KSkmJmVbdF09PT0hMD90Om4mJm4u
c3BlY2lmaWVkP24udmFsdWU6bnVsbH0sby5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJy
b3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZSl9LG8udW5pcXVl
U29ydD1mdW5jdGlvbihlKXt2YXIgdCxuPVtdLHI9MCxpPTA7aWYoaj0hei5kZXRlY3REdXBsaWNh
dGVzLFQ9IXouc29ydERldGFjaGVkLFI9IXouc29ydFN0YWJsZSYmZS5zbGljZSgwKSxlLnNvcnQo
Syksail7Zm9yKDt0PWVbaSsrXTspdD09PWVbaV0mJihyPW4ucHVzaChpKSk7Zm9yKDtyLS07KWUu
c3BsaWNlKG5bcl0sMSl9cmV0dXJuIGV9LE49by5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49
IiIscj0wLGk9ZS5ub2RlVHlwZTtpZihpKXtpZigxPT09aXx8OT09PWl8fDExPT09aSl7aWYoInN0
cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUu
Zmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1OKGUpfWVsc2UgaWYoMz09PWl8fDQ9PT1p
KXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIGZvcig7dD1lW3JdO3IrKyluKz1OKHQpO3JldHVybiBu
fSxfPW8uc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86cixtYXRjaDpwdCxm
aW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGly
OiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7
ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVy
biBlWzFdPWVbMV0ucmVwbGFjZSh4dCx3dCksZVszXT0oZVs0XXx8ZVs1XXx8IiIpLnJlcGxhY2Uo
eHQsd3QpLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJ
TEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsx
XS5zbGljZSgwLDMpPyhlWzNdfHxvLmVycm9yKGVbMF0pLGVbNF09KyhlWzRdP2VbNV0rKGVbNl18
fDEpOjIqKCJldmVuIj09PWVbM118fCJvZGQiPT09ZVszXSkpLGVbNV09KyhlWzddK2VbOF18fCJv
ZGQiPT09ZVszXSkpOmVbM10mJm8uZXJyb3IoZVswXSksZX0sUFNFVURPOmZ1bmN0aW9uKGUpe3Zh
ciB0LG49IWVbNV0mJmVbMl07cmV0dXJuIHB0LkNISUxELnRlc3QoZVswXSk/bnVsbDooZVs0XT9l
WzJdPWVbNF06biYmZHQudGVzdChuKSYmKHQ9dShuLCEwKSkmJih0PW4uaW5kZXhPZigiKSIsbi5s
ZW5ndGgtdCktbi5sZW5ndGgpJiYoZVswXT1lWzBdLnNsaWNlKDAsdCksZVsyXT1uLnNsaWNlKDAs
dCkpLGUuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihlKXtyZXR1cm4iKiI9PT1l
P2Z1bmN0aW9uKCl7cmV0dXJuITB9OihlPWUucmVwbGFjZSh4dCx3dCkudG9Mb3dlckNhc2UoKSxm
dW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09
ZX0pfSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1VW2UrIiAiXTtyZXR1cm4gdHx8KHQ9bmV3IFJl
Z0V4cCgiKF58IitudCsiKSIrZSsiKCIrbnQrInwkKSIpKSYmVShlLGZ1bmN0aW9uKGUpe3JldHVy
biB0LnRlc3QoZS5jbGFzc05hbWV8fHR5cGVvZiBlLmdldEF0dHJpYnV0ZSE9PUcmJmUuZ2V0QXR0
cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0
aW9uKHIpe3ZhciBpPW8uYXR0cihyLGUpO3JldHVybiBudWxsPT1pPyIhPSI9PT10OnQ/KGkrPSIi
LCI9Ij09PXQ/aT09PW46IiE9Ij09PXQ/aSE9PW46Il49Ij09PXQ/biYmMD09PWkuaW5kZXhPZihu
KToiKj0iPT09dD9uJiZpLmluZGV4T2Yobik+LTE6IiQ9Ij09PXQ/biYmaS5zbGljZSgtbi5sZW5n
dGgpPT09bjoifj0iPT09dD8oIiAiK2krIiAiKS5pbmRleE9mKG4pPi0xOiJ8PSI9PT10P2k9PT1u
fHxpLnNsaWNlKDAsbi5sZW5ndGgrMSk9PT1uKyItIjohMSk6ITB9fSxDSElMRDpmdW5jdGlvbihl
LHQsbixyLGkpe3ZhciBvPSJudGgiIT09ZS5zbGljZSgwLDMpLGE9Imxhc3QiIT09ZS5zbGljZSgt
NCkscz0ib2YtdHlwZSI9PT10O3JldHVybiAxPT09ciYmMD09PWk/ZnVuY3Rpb24oZSl7cmV0dXJu
ISFlLnBhcmVudE5vZGV9OmZ1bmN0aW9uKHQsbixsKXt2YXIgYyx1LGQsZixwLGgsbT1vIT09YT8i
bmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLGc9dC5wYXJlbnROb2RlLHY9cyYmdC5ub2Rl
TmFtZS50b0xvd2VyQ2FzZSgpLHk9IWwmJiFzO2lmKGcpe2lmKG8pe2Zvcig7bTspe2ZvcihkPXQ7
ZD1kW21dOylpZihzP2Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXY6MT09PWQubm9kZVR5cGUp
cmV0dXJuITE7aD1tPSJvbmx5Ij09PWUmJiFoJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKGg9
W2E/Zy5maXJzdENoaWxkOmcubGFzdENoaWxkXSxhJiZ5KXtmb3IodT1nW0ldfHwoZ1tJXT17fSks
Yz11W2VdfHxbXSxwPWNbMF09PT1XJiZjWzFdLGY9Y1swXT09PVcmJmNbMl0sZD1wJiZnLmNoaWxk
Tm9kZXNbcF07ZD0rK3AmJmQmJmRbbV18fChmPXA9MCl8fGgucG9wKCk7KWlmKDE9PT1kLm5vZGVU
eXBlJiYrK2YmJmQ9PT10KXt1W2VdPVtXLHAsZl07YnJlYWt9fWVsc2UgaWYoeSYmKGM9KHRbSV18
fCh0W0ldPXt9KSlbZV0pJiZjWzBdPT09VylmPWNbMV07ZWxzZSBmb3IoOyhkPSsrcCYmZCYmZFtt
XXx8KGY9cD0wKXx8aC5wb3AoKSkmJigocz9kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT12OjEh
PT1kLm5vZGVUeXBlKXx8ISsrZnx8KHkmJigoZFtJXXx8KGRbSV09e30pKVtlXT1bVyxmXSksZCE9
PXQpKTspO3JldHVybiBmLT1pLGY9PT1yfHxmJXI9PT0wJiZmL3I+PTB9fX0sUFNFVURPOmZ1bmN0
aW9uKGUsdCl7dmFyIG4saT1fLnBzZXVkb3NbZV18fF8uc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNl
KCldfHxvLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrZSk7cmV0dXJuIGlbSV0/aSh0KTpp
Lmxlbmd0aD4xPyhuPVtlLGUsIiIsdF0sXy5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGUudG9M
b3dlckNhc2UoKSk/cihmdW5jdGlvbihlLG4pe2Zvcih2YXIgcixvPWkoZSx0KSxhPW8ubGVuZ3Ro
O2EtLTspcj10dC5jYWxsKGUsb1thXSksZVtyXT0hKG5bcl09b1thXSl9KTpmdW5jdGlvbihlKXty
ZXR1cm4gaShlLDAsbil9KTppfX0scHNldWRvczp7bm90OnIoZnVuY3Rpb24oZSl7dmFyIHQ9W10s
bj1bXSxpPVMoZS5yZXBsYWNlKGx0LCIkMSIpKTtyZXR1cm4gaVtJXT9yKGZ1bmN0aW9uKGUsdCxu
LHIpe2Zvcih2YXIgbyxhPWkoZSxudWxsLHIsW10pLHM9ZS5sZW5ndGg7cy0tOykobz1hW3NdKSYm
KGVbc109ISh0W3NdPW8pKX0pOmZ1bmN0aW9uKGUscixvKXtyZXR1cm4gdFswXT1lLGkodCxudWxs
LG8sbiksIW4ucG9wKCl9fSksaGFzOnIoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3Jl
dHVybiBvKGUsdCkubGVuZ3RoPjB9fSksY29udGFpbnM6cihmdW5jdGlvbihlKXtyZXR1cm4gZnVu
Y3Rpb24odCl7cmV0dXJuKHQudGV4dENvbnRlbnR8fHQuaW5uZXJUZXh0fHxOKHQpKS5pbmRleE9m
KGUpPi0xfX0pLGxhbmc6cihmdW5jdGlvbihlKXtyZXR1cm4gZnQudGVzdChlfHwiIil8fG8uZXJy
b3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrZSksZT1lLnJlcGxhY2UoeHQsd3QpLnRvTG93ZXJDYXNl
KCksZnVuY3Rpb24odCl7dmFyIG47ZG8gaWYobj1MP3QubGFuZzp0LmdldEF0dHJpYnV0ZSgieG1s
OmxhbmciKXx8dC5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4gbj1uLnRvTG93ZXJDYXNlKCks
bj09PWV8fDA9PT1uLmluZGV4T2YoZSsiLSIpO3doaWxlKCh0PXQucGFyZW50Tm9kZSkmJjE9PT10
Lm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9d2luZG93Lmxv
Y2F0aW9uJiZ3aW5kb3cubG9jYXRpb24uaGFzaDtyZXR1cm4gdCYmdC5zbGljZSgxKT09PWUuaWR9
LHJvb3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1EfSxmb2N1czpmdW5jdGlvbihlKXtyZXR1cm4g
ZT09PUIuYWN0aXZlRWxlbWVudCYmKCFCLmhhc0ZvY3VzfHxCLmhhc0ZvY3VzKCkpJiYhIShlLnR5
cGV8fGUuaHJlZnx8fmUudGFiSW5kZXgpfSxlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLmRp
c2FibGVkPT09ITF9LGRpc2FibGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLmRpc2FibGVkPT09ITB9
LGNoZWNrZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVy
biJpbnB1dCI9PT10JiYhIWUuY2hlY2tlZHx8Im9wdGlvbiI9PT10JiYhIWUuc2VsZWN0ZWR9LHNl
bGVjdGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxl
Y3RlZEluZGV4LGUuc2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oZSl7Zm9yKGU9ZS5maXJz
dENoaWxkO2U7ZT1lLm5leHRTaWJsaW5nKWlmKGUubm9kZU5hbWU+IkAifHwzPT09ZS5ub2RlVHlw
ZXx8ND09PWUubm9kZVR5cGUpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihlKXty
ZXR1cm4hXy5wc2V1ZG9zLmVtcHR5KGUpfSxoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHl0LnRl
c3QoZS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiB2dC50ZXN0KGUubm9kZU5h
bWUpfSxidXR0b246ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3Jl
dHVybiJpbnB1dCI9PT10JiYiYnV0dG9uIj09PWUudHlwZXx8ImJ1dHRvbiI9PT10fSx0ZXh0OmZ1
bmN0aW9uKGUpe3ZhciB0O3JldHVybiJpbnB1dCI9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkm
JiJ0ZXh0Ij09PWUudHlwZSYmKG51bGw9PSh0PWUuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHx0LnRv
TG93ZXJDYXNlKCk9PT1lLnR5cGUpfSxmaXJzdDpjKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFz
dDpjKGZ1bmN0aW9uKGUsdCl7cmV0dXJuW3QtMV19KSxlcTpjKGZ1bmN0aW9uKGUsdCxuKXtyZXR1
cm5bMD5uP24rdDpuXX0pLGV2ZW46YyhmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO3Q+bjtuKz0y
KWUucHVzaChuKTtyZXR1cm4gZX0pLG9kZDpjKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTE7dD5u
O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksbHQ6YyhmdW5jdGlvbihlLHQsbil7Zm9yKHZhciBy
PTA+bj9uK3Q6bjstLXI+PTA7KWUucHVzaChyKTtyZXR1cm4gZX0pLGd0OmMoZnVuY3Rpb24oZSx0
LG4pe2Zvcih2YXIgcj0wPm4/bit0Om47KytyPHQ7KWUucHVzaChyKTtyZXR1cm4gZX0pfX07Zm9y
KHggaW57cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0p
Xy5wc2V1ZG9zW3hdPXMoeCk7Zm9yKHggaW57c3VibWl0OiEwLHJlc2V0OiEwfSlfLnBzZXVkb3Nb
eF09bCh4KTtyZXR1cm4gUz1vLmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPVtdLGk9W10s
bz0kW2UrIiAiXTtpZighbyl7Zm9yKHR8fCh0PXUoZSkpLG49dC5sZW5ndGg7bi0tOylvPWcodFtu
XSksb1tJXT9yLnB1c2gobyk6aS5wdXNoKG8pO289JChlLHYoaSxyKSl9cmV0dXJuIG99LF8ucHNl
dWRvcy5udGg9Xy5wc2V1ZG9zLmVxLEMucHJvdG90eXBlPV8uZmlsdGVycz1fLnBzZXVkb3MsXy5z
ZXRGaWx0ZXJzPW5ldyBDLHouc29ydFN0YWJsZT1JLnNwbGl0KCIiKS5zb3J0KEspLmpvaW4oIiIp
PT09SSxBKCksWzAsMF0uc29ydChLKSx6LmRldGVjdER1cGxpY2F0ZXM9aixvfSkscih1LFtsLGNd
LGZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gcihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGV9
ZnVuY3Rpb24gaShlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9ZnVuY3Rpb24gbyhlKXt2YXIg
dCxuLHI7Zm9yKHI9di5jcmVhdGVFbGVtZW50KCJkaXYiKSx0PXYuY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpLHIuaW5uZXJIVE1MPWU7bj1yLmZpcnN0Q2hpbGQ7KXQuYXBwZW5kQ2hpbGQobik7cmV0
dXJuIHR9ZnVuY3Rpb24gYShlLHQsbil7dmFyIHI7aWYoInN0cmluZyI9PXR5cGVvZiB0KXQ9byh0
KTtlbHNlIGlmKHQubGVuZ3RoKXtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKWEoZSx0W3JdLG4pO3Jl
dHVybiBlfWZvcihyPWUubGVuZ3RoO3ItLTspbi5jYWxsKGVbcl0sdC5wYXJlbnROb2RlP3Q6dCk7
cmV0dXJuIGV9ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBlJiZ0JiYtMSE9PSgiICIrZS5jbGFzc05h
bWUrIiAiKS5pbmRleE9mKCIgIit0KyIgIil9ZnVuY3Rpb24gbChlLHQpe3ZhciBuO2ZvcihlPWV8
fFtdLCJzdHJpbmciPT10eXBlb2YgZSYmKGU9ZS5zcGxpdCgiICIpKSx0PXR8fHt9LG49ZS5sZW5n
dGg7bi0tOyl0W2Vbbl1dPXt9O3JldHVybiB0fWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gbmV3IGMu
Zm4uaW5pdChlLHQpfWZ1bmN0aW9uIHUoZSl7dmFyIHQ9YXJndW1lbnRzLG4scixpO2ZvcihyPTE7
cjx0Lmxlbmd0aDtyKyspe249dFtyXTtmb3IoaSBpbiBuKWVbaV09bltpXX1yZXR1cm4gZX1mdW5j
dGlvbiBkKGUpe3ZhciB0PVtdLG4scjtmb3Iobj0wLHI9ZS5sZW5ndGg7cj5uO24rKyl0W25dPWVb
bl07cmV0dXJuIHR9ZnVuY3Rpb24gZihlLHQpe3ZhciBuO2lmKHQuaW5kZXhPZilyZXR1cm4gdC5p
bmRleE9mKGUpO2ZvcihuPXQubGVuZ3RoO24tLTspaWYodFtuXT09PWUpcmV0dXJuIG47cmV0dXJu
LTF9ZnVuY3Rpb24gcChlKXtyZXR1cm4gbnVsbD09PWV8fGU9PT10PyIiOigiIitlKS5yZXBsYWNl
KE4sIiIpfWZ1bmN0aW9uIGgoZSx0KXt2YXIgbixyLGksbyxhO2lmKGUpaWYobj1lLmxlbmd0aCxu
PT09byl7Zm9yKHIgaW4gZSlpZihlLmhhc093blByb3BlcnR5KHIpJiYoYT1lW3JdLHQuY2FsbChh
LGEscik9PT0hMSkpYnJlYWt9ZWxzZSBmb3IoaT0wO24+aSYmKGE9ZVtpXSx0LmNhbGwoYSxhLHIp
IT09ITEpO2krKyk7cmV0dXJuIGV9ZnVuY3Rpb24gbShlLG4scil7Zm9yKHZhciBpPVtdLG89ZVtu
XTtvJiY5IT09by5ub2RlVHlwZSYmKHI9PT10fHwxIT09by5ub2RlVHlwZXx8IWMobykuaXMocikp
OykxPT09by5ub2RlVHlwZSYmaS5wdXNoKG8pLG89b1tuXTtyZXR1cm4gaX1mdW5jdGlvbiBnKGUs
dCxuLHIpe2Zvcih2YXIgaT1bXTtlO2U9ZVtuXSlyJiZlLm5vZGVUeXBlIT09cnx8ZT09PXR8fGku
cHVzaChlKTtyZXR1cm4gaX12YXIgdj1kb2N1bWVudCx5PUFycmF5LnByb3RvdHlwZS5wdXNoLGI9
QXJyYXkucHJvdG90eXBlLnNsaWNlLEM9L14oPzpbXiM8XSooPFtcd1xXXSs+KVtePl0qJHwjKFtc
d1wtXSopJCkvLHg9ZS5FdmVudCx3PWwoImZpbGxPcGFjaXR5IGZvbnRXZWlnaHQgbGluZUhlaWdo
dCBvcGFjaXR5IG9ycGhhbnMgd2lkb3dzIHpJbmRleCB6b29tIiksXz1BcnJheS5pc0FycmF5fHxm
dW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5jYWxsKGUpfSxOPS9eXHMqfFxzKiQvZztyZXR1cm4gYy5mbj1jLnByb3RvdHlwZT17Y29u
c3RydWN0b3I6YyxzZWxlY3RvcjoiIixsZW5ndGg6MCxpbml0OmZ1bmN0aW9uKGUsdCl7dmFyIG49
dGhpcyxyLGE7aWYoIWUpcmV0dXJuIG47aWYoZS5ub2RlVHlwZSlyZXR1cm4gbi5jb250ZXh0PW5b
MF09ZSxuLmxlbmd0aD0xLG47aWYoaShlKSl7aWYocj0iPCI9PT1lLmNoYXJBdCgwKSYmIj4iPT09
ZS5jaGFyQXQoZS5sZW5ndGgtMSkmJmUubGVuZ3RoPj0zP1tudWxsLGUsbnVsbF06Qy5leGVjKGUp
LCFyKXJldHVybiBjKHR8fGRvY3VtZW50KS5maW5kKGUpO2lmKHJbMV0pZm9yKGE9byhlKS5maXJz
dENoaWxkO2E7KXRoaXMuYWRkKGEpLGE9YS5uZXh0U2libGluZztlbHNle2lmKGE9di5nZXRFbGVt
ZW50QnlJZChyWzJdKSxhLmlkIT09clsyXSlyZXR1cm4gbi5maW5kKGUpO24ubGVuZ3RoPTEsblsw
XT1hfX1lbHNlIHRoaXMuYWRkKGUpO3JldHVybiBufSx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJu
IGQodGhpcyl9LGFkZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiBfKGUpP3kuYXBwbHko
dCxlKTplIGluc3RhbmNlb2YgYz90LmFkZChlLnRvQXJyYXkoKSk6eS5jYWxsKHQsZSksdH0sYXR0
cjpmdW5jdGlvbihlLG4pe3ZhciBpPXRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBlKWgoZSxmdW5j
dGlvbihlLHQpe2kuYXR0cih0LGUpfSk7ZWxzZXtpZighcihuKSlyZXR1cm4gaVswXSYmMT09PWlb
MF0ubm9kZVR5cGU/aVswXS5nZXRBdHRyaWJ1dGUoZSk6dDt0aGlzLmVhY2goZnVuY3Rpb24oKXsx
PT09dGhpcy5ub2RlVHlwZSYmdGhpcy5zZXRBdHRyaWJ1dGUoZSxuKX0pfXJldHVybiBpfSxjc3M6
ZnVuY3Rpb24oZSxuKXt2YXIgaT10aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgZSloKGUsZnVuY3Rp
b24oZSx0KXtpLmNzcyh0LGUpfSk7ZWxzZXtpZihlPWUucmVwbGFjZSgvLShcRCkvZyxmdW5jdGlv
bihlLHQpe3JldHVybiB0LnRvVXBwZXJDYXNlKCl9KSwhcihuKSlyZXR1cm4gaVswXT9pWzBdLnN0
eWxlW2VdOnQ7Im51bWJlciIhPXR5cGVvZiBufHx3W2VdfHwobis9InB4IiksaS5lYWNoKGZ1bmN0
aW9uKCl7dmFyIHQ9dGhpcy5zdHlsZTsib3BhY2l0eSI9PT1lJiZ0aGlzLnJ1bnRpbWVTdHlsZSYm
InVuZGVmaW5lZCI9PXR5cGVvZiB0aGlzLnJ1bnRpbWVTdHlsZS5vcGFjaXR5JiYodC5maWx0ZXI9
IiI9PT1uPyIiOiJhbHBoYShvcGFjaXR5PSIrMTAwKm4rIikiKTt0cnl7dFtlXT1ufWNhdGNoKHIp
e319KX1yZXR1cm4gaX0scmVtb3ZlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMsdCxuPXRoaXMu
bGVuZ3RoO24tLTspdD1lW25dLHguY2xlYW4odCksdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQodCk7cmV0dXJuIHRoaXN9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRo
aXMsdCxuPXRoaXMubGVuZ3RoO24tLTspZm9yKHQ9ZVtuXTt0LmZpcnN0Q2hpbGQ7KXQucmVtb3Zl
Q2hpbGQodC5maXJzdENoaWxkKTtyZXR1cm4gdGhpc30saHRtbDpmdW5jdGlvbihlKXt2YXIgdD10
aGlzLG47aWYocihlKSl7Zm9yKG49dC5sZW5ndGg7bi0tOyl0W25dLmlubmVySFRNTD1lO3JldHVy
biB0fXJldHVybiB0WzBdP3RbMF0uaW5uZXJIVE1MOiIifSx0ZXh0OmZ1bmN0aW9uKGUpe3ZhciB0
PXRoaXMsbjtpZihyKGUpKXtmb3Iobj10Lmxlbmd0aDtuLS07KXRbbl0uaW5uZXJUZXh0PXRbMF0u
dGV4dENvbnRlbnQ9ZTtyZXR1cm4gdH1yZXR1cm4gdFswXT90WzBdLmlubmVyVGV4dHx8dFswXS50
ZXh0Q29udGVudDoiIn0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcyxhcmd1bWVudHMs
ZnVuY3Rpb24oZSl7MT09PXRoaXMubm9kZVR5cGUmJnRoaXMuYXBwZW5kQ2hpbGQoZSl9KX0scHJl
cGVuZDpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpezE9PT10
aGlzLm5vZGVUeXBlJiZ0aGlzLmluc2VydEJlZm9yZShlLHRoaXMuZmlyc3RDaGlsZCl9KX0sYmVm
b3JlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gZVswXSYmZVswXS5wYXJlbnROb2RlP2Eo
ZSxhcmd1bWVudHMsZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRo
aXMubmV4dFNpYmxpbmcpfSk6ZX0sYWZ0ZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBl
WzBdJiZlWzBdLnBhcmVudE5vZGU/YShlLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcyl9KTplfSxhcHBlbmRUbzpmdW5jdGlvbihlKXtyZXR1
cm4gYyhlKS5hcHBlbmQodGhpcyksdGhpc30sYWRkQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHRo
aXMudG9nZ2xlQ2xhc3MoZSwhMCl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlz
LnRvZ2dsZUNsYXNzKGUsITEpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7
cmV0dXJuLTEhPT1lLmluZGV4T2YoIiAiKT9oKGUuc3BsaXQoIiAiKSxmdW5jdGlvbigpe24udG9n
Z2xlQ2xhc3ModGhpcyx0KX0pOm4uZWFjaChmdW5jdGlvbihuKXt2YXIgcjtzKG4sZSkhPT10JiYo
cj1uLmNsYXNzTmFtZSx0P24uY2xhc3NOYW1lKz1yPyIgIitlOmU6bi5jbGFzc05hbWU9cCgoIiAi
K3IrIiAiKS5yZXBsYWNlKCIgIitlKyIgIiwiICIpKSl9KSxufSxoYXNDbGFzczpmdW5jdGlvbihl
KXtyZXR1cm4gcyh0aGlzWzBdLGUpfSxlYWNoOmZ1bmN0aW9uKGUpe3JldHVybiBoKHRoaXMsZSl9
LG9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3guYmluZCh0aGlz
LGUsdCl9KX0sb2ZmOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3gu
dW5iaW5kKHRoaXMsZSx0KX0pfSxzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3NzKCJkaXNw
bGF5IiwiIil9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jc3MoImRpc3BsYXkiLCJub25l
Iil9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBjKGIuYXBwbHkodGhpcyxhcmd1bWVudHMp
KX0sZXE6ZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT1lP3RoaXMuc2xpY2UoZSk6dGhpcy5zbGljZShl
LCtlKzEpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9u
KCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbihlKXt2YXIgdD10aGlz
O3JldHVybiB0WzBdJiZ0WzBdLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGMoZSlbMF0sdFswXSks
dH0sd3JhcDpmdW5jdGlvbihlKXtyZXR1cm4gZT1jKGUpWzBdLHRoaXMuZWFjaChmdW5jdGlvbigp
e3ZhciB0PXRoaXMsbj1lLmNsb25lTm9kZSghMSk7dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShu
LHQpLG4uYXBwZW5kQ2hpbGQodCl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFj
aChmdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLHQ9ZS5maXJzdENoaWxkLG47dDspbj10LHQ9dC5u
ZXh0U2libGluZyxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4sZSl9KX0sY2xvbmU6ZnVuY3Rp
b24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZS5wdXNoKHRoaXMuY2xv
bmVOb2RlKCEwKSl9KSxjKGUpfSxmaW5kOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj1bXTtmb3IodD0w
LG49dGhpcy5sZW5ndGg7bj50O3QrKyljLmZpbmQoZSx0aGlzW3RdLHIpO3JldHVybiBjKHIpfSxw
dXNoOnksc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2V9LHUoYyx7ZXh0ZW5kOnUsdG9BcnJh
eTpkLGluQXJyYXk6Zixpc0FycmF5Ol8sZWFjaDpoLHRyaW06cCxtYWtlTWFwOmwsZmluZDpuLGV4
cHI6bi5zZWxlY3RvcnMsdW5pcXVlOm4udW5pcXVlU29ydCx0ZXh0Om4uZ2V0VGV4dCxpc1hNTERv
YzpuLmlzWE1MLGNvbnRhaW5zOm4uY29udGFpbnMsZmlsdGVyOmZ1bmN0aW9uKGUsdCxuKXtyZXR1
cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksdD0xPT09dC5sZW5ndGg/Yy5maW5kLm1hdGNoZXNTZWxl
Y3Rvcih0WzBdLGUpP1t0WzBdXTpbXTpjLmZpbmQubWF0Y2hlcyhlLHQpfX0pLGgoe3BhcmVudDpm
dW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJjExIT09dC5ub2RlVHlwZT90
Om51bGx9LHBhcmVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIG0oZSwicGFyZW50Tm9kZSIpfSxwYXJl
bnRzVW50aWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbShlLCJwYXJlbnROb2RlIix0KX0sbmV4dDpm
dW5jdGlvbihlKXtyZXR1cm4gZyhlLCJuZXh0U2libGluZyIsMSl9LHByZXY6ZnVuY3Rpb24oZSl7
cmV0dXJuIGcoZSwicHJldmlvdXNTaWJsaW5nIiwxKX0sbmV4dE5vZGVzOmZ1bmN0aW9uKGUpe3Jl
dHVybiBnKGUsIm5leHRTaWJsaW5nIil9LHByZXZOb2RlczpmdW5jdGlvbihlKXtyZXR1cm4gZyhl
LCJwcmV2aW91c1NpYmxpbmciKX0sY2hpbGRyZW46ZnVuY3Rpb24oZSl7cmV0dXJuIGcoZS5maXJz
dENoaWxkLCJuZXh0U2libGluZyIsMSl9LGNvbnRlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiBkKCgi
aWZyYW1lIj09PWUubm9kZU5hbWU/ZS5jb250ZW50RG9jdW1lbnR8fGUuY29udGVudFdpbmRvdy5k
b2N1bWVudDplKS5jaGlsZE5vZGVzKX19LGZ1bmN0aW9uKGUsdCl7Yy5mbltlXT1mdW5jdGlvbihu
KXt2YXIgcj10aGlzLGk7aWYoci5sZW5ndGg+MSl0aHJvdyBuZXcgRXJyb3IoIkRvbVF1ZXJ5IG9u
bHkgc3VwcG9ydHMgdHJhdmVyc2UgZnVuY3Rpb25zIG9uIGEgc2luZ2xlIG5vZGUuIik7cmV0dXJu
IHJbMF0mJihpPXQoclswXSxuKSksaT1jKGkpLG4mJiJwYXJlbnRzVW50aWwiIT09ZT9pLmZpbHRl
cihuKTppfX0pLGMuZm4uZmlsdGVyPWZ1bmN0aW9uKGUpe3JldHVybiBjLmZpbHRlcihlKX0sYy5m
bi5pcz1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJnRoaXMuZmlsdGVyKGUpLmxlbmd0aD4wfSxjLmZu
LmluaXQucHJvdG90eXBlPWMuZm4sY30pLHIoZCxbXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlv
bihlLHQpe2Z1bmN0aW9uIG4oZSx0LG4scil7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZT1wYXJzZUlu
dChlLDEwKS50b1N0cmluZygxNiksZS5sZW5ndGg+MT9lOiIwIitlCit9cmV0dXJuIiMiK2kodCkr
aShuKStpKHIpfXZhciByPS9yZ2JccypcKFxzKihbMC05XSspXHMqLFxzKihbMC05XSspXHMqLFxz
KihbMC05XSspXHMqXCkvZ2ksaT0vKD86dXJsKD86KD86XChccypcIihbXlwiXSspXCJccypcKSl8
KD86XChccypcJyhbXlwnXSspXCdccypcKSl8KD86XChccyooW14pXHNdKylccypcKSkpKXwoPzpc
JyhbXlwnXSspXCcpfCg/OlwiKFteXCJdKylcIikvZ2ksbz0vXHMqKFteOl0rKTpccyooW147XSsp
Oz8vZyxhPS9ccyskLyxzLGwsYz17fSx1LGQ9Ilx1ZmVmZiI7Zm9yKGU9ZXx8e30sdT0oIlxcXCIg
XFwnIFxcOyBcXDogOyA6ICIrZCkuc3BsaXQoIiAiKSxsPTA7bDx1Lmxlbmd0aDtsKyspY1t1W2xd
XT1kK2wsY1tkK2xdPXVbbF07cmV0dXJue3RvSGV4OmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxh
Y2UocixuKX0scGFyc2U6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gcyhlLHQsbil7dmFyIHIsaSxvLGE7
aWYocj1tW2UrIi10b3AiK3RdLHImJihpPW1bZSsiLXJpZ2h0Iit0XSxpJiYobz1tW2UrIi1ib3R0
b20iK3RdLG8mJihhPW1bZSsiLWxlZnQiK3RdKSkpKXt2YXIgcz1bcixpLG8sYV07Zm9yKGw9cy5s
ZW5ndGgtMTtsLS0mJnNbbF09PT1zW2wrMV07KTtsPi0xJiZufHwobVtlK3RdPS0xPT1sP3NbMF06
cy5qb2luKCIgIiksZGVsZXRlIG1bZSsiLXRvcCIrdF0sZGVsZXRlIG1bZSsiLXJpZ2h0Iit0XSxk
ZWxldGUgbVtlKyItYm90dG9tIit0XSxkZWxldGUgbVtlKyItbGVmdCIrdF0pfX1mdW5jdGlvbiB1
KGUpe3ZhciB0PW1bZV0sbjtpZih0KXtmb3IodD10LnNwbGl0KCIgIiksbj10Lmxlbmd0aDtuLS07
KWlmKHRbbl0hPT10WzBdKXJldHVybiExO3JldHVybiBtW2VdPXRbMF0sITB9fWZ1bmN0aW9uIGQo
ZSx0LG4scil7dSh0KSYmdShuKSYmdShyKSYmKG1bZV09bVt0XSsiICIrbVtuXSsiICIrbVtyXSxk
ZWxldGUgbVt0XSxkZWxldGUgbVtuXSxkZWxldGUgbVtyXSl9ZnVuY3Rpb24gZihlKXtyZXR1cm4g
Yj0hMCxjW2VdfWZ1bmN0aW9uIHAoZSx0KXtyZXR1cm4gYiYmKGU9ZS5yZXBsYWNlKC9cdUZFRkZb
MC05XS9nLGZ1bmN0aW9uKGUpe3JldHVybiBjW2VdfSkpLHR8fChlPWUucmVwbGFjZSgvXFwoW1wn
XCI7Ol0pL2csIiQxIikpLGV9ZnVuY3Rpb24gaCh0LG4scixpLG8sYSl7aWYobz1vfHxhKXJldHVy
biBvPXAobyksIiciK28ucmVwbGFjZSgvXCcvZywiXFwnIikrIiciO2lmKG49cChufHxyfHxpKSwh
ZS5hbGxvd19zY3JpcHRfdXJscyl7dmFyIHM9bi5yZXBsYWNlKC9bXHNcclxuXSsvLCIiKTtpZigv
KGphdmF8dmIpc2NyaXB0Oi9pLnRlc3QocykpcmV0dXJuIiI7aWYoIWUuYWxsb3dfc3ZnX2RhdGFf
dXJscyYmL15kYXRhOmltYWdlXC9zdmcvaS50ZXN0KHMpKXJldHVybiIifXJldHVybiBDJiYobj1D
LmNhbGwoeCxuLCJzdHlsZSIpKSwidXJsKCciK24ucmVwbGFjZSgvXCcvZywiXFwnIikrIicpIn12
YXIgbT17fSxnLHYseSxiLEM9ZS51cmxfY29udmVydGVyLHg9ZS51cmxfY29udmVydGVyX3Njb3Bl
fHx0aGlzO2lmKHQpe2Zvcih0PXQucmVwbGFjZSgvW1x1MDAwMC1cdTAwMUZdL2csIiIpLHQ9dC5y
ZXBsYWNlKC9cXFtcIlwnOzpcdUZFRkZdL2csZikucmVwbGFjZSgvXCJbXlwiXStcInxcJ1teXCdd
K1wnL2csZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvWzs6XS9nLGYpfSk7Zz1vLmV4ZWMo
dCk7KXtpZih2PWdbMV0ucmVwbGFjZShhLCIiKS50b0xvd2VyQ2FzZSgpLHk9Z1syXS5yZXBsYWNl
KGEsIiIpLHk9eS5yZXBsYWNlKC9cXFswLTlhLWZdKy9nLGZ1bmN0aW9uKGUpe3JldHVybiBTdHJp
bmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGUuc3Vic3RyKDEpLDE2KSl9KSx2JiZ5Lmxlbmd0aD4w
KXtpZighZS5hbGxvd19zY3JpcHRfdXJscyYmKCJiZWhhdmlvciI9PXZ8fC9leHByZXNzaW9uXHMq
XCh8XC9cKnxcKlwvLy50ZXN0KHkpKSljb250aW51ZTsiZm9udC13ZWlnaHQiPT09diYmIjcwMCI9
PT15P3k9ImJvbGQiOigiY29sb3IiPT09dnx8ImJhY2tncm91bmQtY29sb3IiPT09dikmJih5PXku
dG9Mb3dlckNhc2UoKSkseT15LnJlcGxhY2UocixuKSx5PXkucmVwbGFjZShpLGgpLG1bdl09Yj9w
KHksITApOnl9by5sYXN0SW5kZXg9Zy5pbmRleCtnWzBdLmxlbmd0aH1zKCJib3JkZXIiLCIiLCEw
KSxzKCJib3JkZXIiLCItd2lkdGgiKSxzKCJib3JkZXIiLCItY29sb3IiKSxzKCJib3JkZXIiLCIt
c3R5bGUiKSxzKCJwYWRkaW5nIiwiIikscygibWFyZ2luIiwiIiksZCgiYm9yZGVyIiwiYm9yZGVy
LXdpZHRoIiwiYm9yZGVyLXN0eWxlIiwiYm9yZGVyLWNvbG9yIiksIm1lZGl1bSBub25lIj09PW0u
Ym9yZGVyJiZkZWxldGUgbS5ib3JkZXIsIm5vbmUiPT09bVsiYm9yZGVyLWltYWdlIl0mJmRlbGV0
ZSBtWyJib3JkZXItaW1hZ2UiXX1yZXR1cm4gbX0sc2VyaWFsaXplOmZ1bmN0aW9uKGUsbil7ZnVu
Y3Rpb24gcihuKXt2YXIgcixvLGEsbDtpZihyPXQuc3R5bGVzW25dKWZvcihvPTAsYT1yLmxlbmd0
aDthPm87bysrKW49cltvXSxsPWVbbl0sbCE9PXMmJmwubGVuZ3RoPjAmJihpKz0oaS5sZW5ndGg+
MD8iICI6IiIpK24rIjogIitsKyI7Iil9dmFyIGk9IiIsbyxhO2lmKG4mJnQmJnQuc3R5bGVzKXIo
IioiKSxyKG4pO2Vsc2UgZm9yKG8gaW4gZSlhPWVbb10sYSE9PXMmJmEubGVuZ3RoPjAmJihpKz0o
aS5sZW5ndGg+MD8iICI6IiIpK28rIjogIithKyI7Iik7cmV0dXJuIGl9fX19KSxyKGYsW10sZnVu
Y3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUsbixyLGkpe3ZhciBvLGE7
aWYoZSl7aWYoIWkmJmVbbl0pcmV0dXJuIGVbbl07aWYoZSE9dCl7aWYobz1lW3JdKXJldHVybiBv
O2ZvcihhPWUucGFyZW50Tm9kZTthJiZhIT10O2E9YS5wYXJlbnROb2RlKWlmKG89YVtyXSlyZXR1
cm4gb319fXZhciByPWU7dGhpcy5jdXJyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHRoaXMubmV4
dD1mdW5jdGlvbihlKXtyZXR1cm4gcj1uKHIsImZpcnN0Q2hpbGQiLCJuZXh0U2libGluZyIsZSl9
LHRoaXMucHJldj1mdW5jdGlvbihlKXtyZXR1cm4gcj1uKHIsImxhc3RDaGlsZCIsInByZXZpb3Vz
U2libGluZyIsZSl9fX0pLHIocCxbXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIG51
bGw9PT1lfHxlPT09dD8iIjooIiIrZSkucmVwbGFjZShtLCIiKX1mdW5jdGlvbiBuKGUsbil7cmV0
dXJuIG4/ImFycmF5Ij09biYmZyhlKT8hMDp0eXBlb2YgZT09bjplIT09dH1mdW5jdGlvbiByKGUp
e3ZhciB0PVtdLG4scjtmb3Iobj0wLHI9ZS5sZW5ndGg7cj5uO24rKyl0W25dPWVbbl07cmV0dXJu
IHR9ZnVuY3Rpb24gaShlLHQsbil7dmFyIHI7Zm9yKGU9ZXx8W10sdD10fHwiLCIsInN0cmluZyI9
PXR5cGVvZiBlJiYoZT1lLnNwbGl0KHQpKSxuPW58fHt9LHI9ZS5sZW5ndGg7ci0tOyluW2Vbcl1d
PXt9O3JldHVybiBufWZ1bmN0aW9uIG8oZSxuLHIpe3ZhciBpLG87aWYoIWUpcmV0dXJuIDA7aWYo
cj1yfHxlLGUubGVuZ3RoIT09dCl7Zm9yKGk9MCxvPWUubGVuZ3RoO28+aTtpKyspaWYobi5jYWxs
KHIsZVtpXSxpLGUpPT09ITEpcmV0dXJuIDB9ZWxzZSBmb3IoaSBpbiBlKWlmKGUuaGFzT3duUHJv
cGVydHkoaSkmJm4uY2FsbChyLGVbaV0saSxlKT09PSExKXJldHVybiAwO3JldHVybiAxfWZ1bmN0
aW9uIGEoZSx0KXt2YXIgbj1bXTtyZXR1cm4gbyhlLGZ1bmN0aW9uKGUpe24ucHVzaCh0KGUpKX0p
LG59ZnVuY3Rpb24gcyhlLHQpe3ZhciBuPVtdO3JldHVybiBvKGUsZnVuY3Rpb24oZSl7KCF0fHx0
KGUpKSYmbi5wdXNoKGUpfSksbn1mdW5jdGlvbiBsKGUsdCxuKXt2YXIgcj10aGlzLGksbyxhLHMs
bCxjPTA7aWYoZT0vXigoc3RhdGljKSApPyhbXHcuXSspKDooW1x3Ll0rKSk/Ly5leGVjKGUpLGE9
ZVszXS5tYXRjaCgvKF58XC4pKFx3KykkL2kpWzJdLG89ci5jcmVhdGVOUyhlWzNdLnJlcGxhY2Uo
L1wuXHcrJC8sIiIpLG4pLCFvW2FdKXtpZigic3RhdGljIj09ZVsyXSlyZXR1cm4gb1thXT10LHZv
aWQodGhpcy5vbkNyZWF0ZSYmdGhpcy5vbkNyZWF0ZShlWzJdLGVbM10sb1thXSkpO3RbYV18fCh0
W2FdPWZ1bmN0aW9uKCl7fSxjPTEpLG9bYV09dFthXSxyLmV4dGVuZChvW2FdLnByb3RvdHlwZSx0
KSxlWzVdJiYoaT1yLnJlc29sdmUoZVs1XSkucHJvdG90eXBlLHM9ZVs1XS5tYXRjaCgvXC4oXHcr
KSQvaSlbMV0sbD1vW2FdLG9bYV09Yz9mdW5jdGlvbigpe3JldHVybiBpW3NdLmFwcGx5KHRoaXMs
YXJndW1lbnRzKX06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQ9aVtzXSxsLmFwcGx5KHRo
aXMsYXJndW1lbnRzKX0sb1thXS5wcm90b3R5cGVbYV09b1thXSxyLmVhY2goaSxmdW5jdGlvbihl
LHQpe29bYV0ucHJvdG90eXBlW3RdPWlbdF19KSxyLmVhY2godCxmdW5jdGlvbihlLHQpe2lbdF0/
b1thXS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQ9aVt0XSxlLmFw
cGx5KHRoaXMsYXJndW1lbnRzKX06dCE9YSYmKG9bYV0ucHJvdG90eXBlW3RdPWUpfSkpLHIuZWFj
aCh0WyJzdGF0aWMiXSxmdW5jdGlvbihlLHQpe29bYV1bdF09ZX0pfX1mdW5jdGlvbiBjKGUsdCl7
dmFyIG4scjtpZihlKWZvcihuPTAscj1lLmxlbmd0aDtyPm47bisrKWlmKGVbbl09PT10KXJldHVy
biBuO3JldHVybi0xfWZ1bmN0aW9uIHUoZSxuKXt2YXIgcixpLG8sYT1hcmd1bWVudHMscztmb3Io
cj0xLGk9YS5sZW5ndGg7aT5yO3IrKyl7bj1hW3JdO2ZvcihvIGluIG4pbi5oYXNPd25Qcm9wZXJ0
eShvKSYmKHM9bltvXSxzIT09dCYmKGVbb109cykpfXJldHVybiBlfWZ1bmN0aW9uIGQoZSx0LG4s
cil7cj1yfHx0aGlzLGUmJihuJiYoZT1lW25dKSxvKGUsZnVuY3Rpb24oZSxpKXtyZXR1cm4gdC5j
YWxsKHIsZSxpLG4pPT09ITE/ITE6dm9pZCBkKGUsdCxuLHIpfSkpfWZ1bmN0aW9uIGYoZSx0KXt2
YXIgbixyO2Zvcih0PXR8fHdpbmRvdyxlPWUuc3BsaXQoIi4iKSxuPTA7bjxlLmxlbmd0aDtuKysp
cj1lW25dLHRbcl18fCh0W3JdPXt9KSx0PXRbcl07cmV0dXJuIHR9ZnVuY3Rpb24gcChlLHQpe3Zh
ciBuLHI7Zm9yKHQ9dHx8d2luZG93LGU9ZS5zcGxpdCgiLiIpLG49MCxyPWUubGVuZ3RoO3I+biYm
KHQ9dFtlW25dXSx0KTtuKyspO3JldHVybiB0fWZ1bmN0aW9uIGgodCxyKXtyZXR1cm4hdHx8bih0
LCJhcnJheSIpP3Q6YSh0LnNwbGl0KHJ8fCIsIiksZSl9dmFyIG09L15ccyp8XHMqJC9nLGc9QXJy
YXkuaXNBcnJheXx8ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX07cmV0dXJue3RyaW06ZSxpc0FycmF5OmcsaXM6bix0
b0FycmF5OnIsbWFrZU1hcDppLGVhY2g6byxtYXA6YSxncmVwOnMsaW5BcnJheTpjLGV4dGVuZDp1
LGNyZWF0ZTpsLHdhbGs6ZCxjcmVhdGVOUzpmLHJlc29sdmU6cCxleHBsb2RlOmh9fSkscihoLFtw
XSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIHIoKXtyZXR1cm4gSC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCl9ZnVuY3Rpb24gaShlLHQpe18oRixlLHQpfWZ1bmN0aW9uIG8oZSx0
KXtfKHosZSx0KX1mdW5jdGlvbiBhKGUpe2koZS5wYXJlbnROb2RlLGooZSkpfWZ1bmN0aW9uIHMo
ZSl7aShlLnBhcmVudE5vZGUsaihlKSsxKX1mdW5jdGlvbiBsKGUpe28oZS5wYXJlbnROb2RlLGoo
ZSkpfWZ1bmN0aW9uIGMoZSl7byhlLnBhcmVudE5vZGUsaihlKSsxKX1mdW5jdGlvbiB1KGUpe2U/
KE1bVV09TVtWXSxNW3FdPU1bV10pOihNW1ZdPU1bVV0sTVtXXT1NW3FdKSxNLmNvbGxhcHNlZD1G
fWZ1bmN0aW9uIGQoZSl7YShlKSxjKGUpfWZ1bmN0aW9uIGYoZSl7aShlLDApLG8oZSwxPT09ZS5u
b2RlVHlwZT9lLmNoaWxkTm9kZXMubGVuZ3RoOmUubm9kZVZhbHVlLmxlbmd0aCl9ZnVuY3Rpb24g
cChlLHQpe3ZhciBuPU1bVl0scj1NW1ddLGk9TVtVXSxvPU1bcV0sYT10LnN0YXJ0Q29udGFpbmVy
LHM9dC5zdGFydE9mZnNldCxsPXQuZW5kQ29udGFpbmVyLGM9dC5lbmRPZmZzZXQ7cmV0dXJuIDA9
PT1lP3cobixyLGEscyk6MT09PWU/dyhpLG8sYSxzKToyPT09ZT93KGksbyxsLGMpOjM9PT1lP3co
bixyLGwsYyk6dm9pZCAwfWZ1bmN0aW9uIGgoKXtOKEkpfWZ1bmN0aW9uIG0oKXtyZXR1cm4gTihQ
KX1mdW5jdGlvbiBnKCl7cmV0dXJuIE4oTyl9ZnVuY3Rpb24gdihlKXt2YXIgdD10aGlzW1ZdLHI9
dGhpc1tXXSxpLG87MyE9PXQubm9kZVR5cGUmJjQhPT10Lm5vZGVUeXBlfHwhdC5ub2RlVmFsdWU/
KHQuY2hpbGROb2Rlcy5sZW5ndGg+MCYmKG89dC5jaGlsZE5vZGVzW3JdKSxvP3QuaW5zZXJ0QmVm
b3JlKGUsbyk6Mz09dC5ub2RlVHlwZT9uLmluc2VydEFmdGVyKGUsdCk6dC5hcHBlbmRDaGlsZChl
KSk6cj9yPj10Lm5vZGVWYWx1ZS5sZW5ndGg/bi5pbnNlcnRBZnRlcihlLHQpOihpPXQuc3BsaXRU
ZXh0KHIpLHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxpKSk6dC5wYXJlbnROb2RlLmluc2Vy
dEJlZm9yZShlLHQpfWZ1bmN0aW9uIHkoZSl7dmFyIHQ9TS5leHRyYWN0Q29udGVudHMoKTtNLmlu
c2VydE5vZGUoZSksZS5hcHBlbmRDaGlsZCh0KSxNLnNlbGVjdE5vZGUoZSl9ZnVuY3Rpb24gYigp
e3JldHVybiAkKG5ldyB0KG4pLHtzdGFydENvbnRhaW5lcjpNW1ZdLHN0YXJ0T2Zmc2V0Ok1bV10s
ZW5kQ29udGFpbmVyOk1bVV0sZW5kT2Zmc2V0Ok1bcV0sY29sbGFwc2VkOk0uY29sbGFwc2VkLGNv
bW1vbkFuY2VzdG9yQ29udGFpbmVyOk0uY29tbW9uQW5jZXN0b3JDb250YWluZXJ9KX1mdW5jdGlv
biBDKGUsdCl7dmFyIG47aWYoMz09ZS5ub2RlVHlwZSlyZXR1cm4gZTtpZigwPnQpcmV0dXJuIGU7
Zm9yKG49ZS5maXJzdENoaWxkO24mJnQ+MDspLS10LG49bi5uZXh0U2libGluZztyZXR1cm4gbj9u
OmV9ZnVuY3Rpb24geCgpe3JldHVybiBNW1ZdPT1NW1VdJiZNW1ddPT1NW3FdfWZ1bmN0aW9uIHco
ZSx0LHIsaSl7dmFyIG8sYSxzLGwsYyx1O2lmKGU9PXIpcmV0dXJuIHQ9PWk/MDppPnQ/LTE6MTtm
b3Iobz1yO28mJm8ucGFyZW50Tm9kZSE9ZTspbz1vLnBhcmVudE5vZGU7aWYobyl7Zm9yKGE9MCxz
PWUuZmlyc3RDaGlsZDtzIT1vJiZ0PmE7KWErKyxzPXMubmV4dFNpYmxpbmc7cmV0dXJuIGE+PXQ/
LTE6MX1mb3Iobz1lO28mJm8ucGFyZW50Tm9kZSE9cjspbz1vLnBhcmVudE5vZGU7aWYobyl7Zm9y
KGE9MCxzPXIuZmlyc3RDaGlsZDtzIT1vJiZpPmE7KWErKyxzPXMubmV4dFNpYmxpbmc7cmV0dXJu
IGk+YT8tMToxfWZvcihsPW4uZmluZENvbW1vbkFuY2VzdG9yKGUsciksYz1lO2MmJmMucGFyZW50
Tm9kZSE9bDspYz1jLnBhcmVudE5vZGU7Zm9yKGN8fChjPWwpLHU9cjt1JiZ1LnBhcmVudE5vZGUh
PWw7KXU9dS5wYXJlbnROb2RlO2lmKHV8fCh1PWwpLGM9PXUpcmV0dXJuIDA7Zm9yKHM9bC5maXJz
dENoaWxkO3M7KXtpZihzPT1jKXJldHVybi0xO2lmKHM9PXUpcmV0dXJuIDE7cz1zLm5leHRTaWJs
aW5nfX1mdW5jdGlvbiBfKGUsdCxyKXt2YXIgaSxvO2ZvcihlPyhNW1ZdPXQsTVtXXT1yKTooTVtV
XT10LE1bcV09ciksaT1NW1VdO2kucGFyZW50Tm9kZTspaT1pLnBhcmVudE5vZGU7Zm9yKG89TVtW
XTtvLnBhcmVudE5vZGU7KW89by5wYXJlbnROb2RlO289PWk/dyhNW1ZdLE1bV10sTVtVXSxNW3Fd
KT4wJiZNLmNvbGxhcHNlKGUpOk0uY29sbGFwc2UoZSksTS5jb2xsYXBzZWQ9eCgpLE0uY29tbW9u
QW5jZXN0b3JDb250YWluZXI9bi5maW5kQ29tbW9uQW5jZXN0b3IoTVtWXSxNW1VdKX1mdW5jdGlv
biBOKGUpe3ZhciB0LG49MCxyPTAsaSxvLGEscyxsLGM7aWYoTVtWXT09TVtVXSlyZXR1cm4gRShl
KTtmb3IodD1NW1VdLGk9dC5wYXJlbnROb2RlO2k7dD1pLGk9aS5wYXJlbnROb2RlKXtpZihpPT1N
W1ZdKXJldHVybiBTKHQsZSk7KytufWZvcih0PU1bVl0saT10LnBhcmVudE5vZGU7aTt0PWksaT1p
LnBhcmVudE5vZGUpe2lmKGk9PU1bVV0pcmV0dXJuIGsodCxlKTsrK3J9Zm9yKG89ci1uLGE9TVtW
XTtvPjA7KWE9YS5wYXJlbnROb2RlLG8tLTtmb3Iocz1NW1VdOzA+bzspcz1zLnBhcmVudE5vZGUs
bysrO2ZvcihsPWEucGFyZW50Tm9kZSxjPXMucGFyZW50Tm9kZTtsIT1jO2w9bC5wYXJlbnROb2Rl
LGM9Yy5wYXJlbnROb2RlKWE9bCxzPWM7cmV0dXJuIFQoYSxzLGUpfWZ1bmN0aW9uIEUoZSl7dmFy
IHQsbixpLG8sYSxzLGwsYyx1O2lmKGUhPUkmJih0PXIoKSksTVtXXT09TVtxXSlyZXR1cm4gdDtp
ZigzPT1NW1ZdLm5vZGVUeXBlKXtpZihuPU1bVl0ubm9kZVZhbHVlLGk9bi5zdWJzdHJpbmcoTVtX
XSxNW3FdKSxlIT1PJiYobz1NW1ZdLGM9TVtXXSx1PU1bcV0tTVtXXSwwPT09YyYmdT49by5ub2Rl
VmFsdWUubGVuZ3RoLTE/by5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pOm8uZGVsZXRlRGF0YShj
LHUpLE0uY29sbGFwc2UoRikpLGU9PUkpcmV0dXJuO3JldHVybiBpLmxlbmd0aD4wJiZ0LmFwcGVu
ZENoaWxkKEguY3JlYXRlVGV4dE5vZGUoaSkpLHR9Zm9yKG89QyhNW1ZdLE1bV10pLGE9TVtxXS1N
W1ddO28mJmE+MDspcz1vLm5leHRTaWJsaW5nLGw9RChvLGUpLHQmJnQuYXBwZW5kQ2hpbGQobCks
LS1hLG89cztyZXR1cm4gZSE9TyYmTS5jb2xsYXBzZShGKSx0fWZ1bmN0aW9uIFMoZSx0KXt2YXIg
bixpLG8sYSxzLGw7aWYodCE9SSYmKG49cigpKSxpPVIoZSx0KSxuJiZuLmFwcGVuZENoaWxkKGkp
LG89aihlKSxhPW8tTVtXXSwwPj1hKXJldHVybiB0IT1PJiYoTS5zZXRFbmRCZWZvcmUoZSksTS5j
b2xsYXBzZSh6KSksbjtmb3IoaT1lLnByZXZpb3VzU2libGluZzthPjA7KXM9aS5wcmV2aW91c1Np
YmxpbmcsbD1EKGksdCksbiYmbi5pbnNlcnRCZWZvcmUobCxuLmZpcnN0Q2hpbGQpLC0tYSxpPXM7
cmV0dXJuIHQhPU8mJihNLnNldEVuZEJlZm9yZShlKSxNLmNvbGxhcHNlKHopKSxufWZ1bmN0aW9u
IGsoZSx0KXt2YXIgbixpLG8sYSxzLGw7Zm9yKHQhPUkmJihuPXIoKSksbz1BKGUsdCksbiYmbi5h
cHBlbmRDaGlsZChvKSxpPWooZSksKytpLGE9TVtxXS1pLG89ZS5uZXh0U2libGluZztvJiZhPjA7
KXM9by5uZXh0U2libGluZyxsPUQobyx0KSxuJiZuLmFwcGVuZENoaWxkKGwpLC0tYSxvPXM7cmV0
dXJuIHQhPU8mJihNLnNldFN0YXJ0QWZ0ZXIoZSksTS5jb2xsYXBzZShGKSksbn1mdW5jdGlvbiBU
KGUsdCxuKXt2YXIgaSxvLGEscyxsLGMsdTtmb3IobiE9SSYmKG89cigpKSxpPUEoZSxuKSxvJiZv
LmFwcGVuZENoaWxkKGkpLGE9aihlKSxzPWoodCksKythLGw9cy1hLGM9ZS5uZXh0U2libGluZzts
PjA7KXU9Yy5uZXh0U2libGluZyxpPUQoYyxuKSxvJiZvLmFwcGVuZENoaWxkKGkpLGM9dSwtLWw7
cmV0dXJuIGk9Uih0LG4pLG8mJm8uYXBwZW5kQ2hpbGQoaSksbiE9TyYmKE0uc2V0U3RhcnRBZnRl
cihlKSxNLmNvbGxhcHNlKEYpKSxvfWZ1bmN0aW9uIFIoZSx0KXt2YXIgbj1DKE1bVV0sTVtxXS0x
KSxyLGksbyxhLHMsbD1uIT1NW1VdO2lmKG49PWUpcmV0dXJuIEIobixsLHosdCk7Zm9yKHI9bi5w
YXJlbnROb2RlLGk9QihyLHoseix0KTtyOyl7Zm9yKDtuOylvPW4ucHJldmlvdXNTaWJsaW5nLGE9
QihuLGwseix0KSx0IT1JJiZpLmluc2VydEJlZm9yZShhLGkuZmlyc3RDaGlsZCksbD1GLG49bztp
ZihyPT1lKXJldHVybiBpO249ci5wcmV2aW91c1NpYmxpbmcscj1yLnBhcmVudE5vZGUscz1CKHIs
eix6LHQpLHQhPUkmJnMuYXBwZW5kQ2hpbGQoaSksaT1zfX1mdW5jdGlvbiBBKGUsdCl7dmFyIG49
QyhNW1ZdLE1bV10pLHI9biE9TVtWXSxpLG8sYSxzLGw7aWYobj09ZSlyZXR1cm4gQihuLHIsRix0
KTtmb3IoaT1uLnBhcmVudE5vZGUsbz1CKGkseixGLHQpO2k7KXtmb3IoO247KWE9bi5uZXh0U2li
bGluZyxzPUIobixyLEYsdCksdCE9SSYmby5hcHBlbmRDaGlsZChzKSxyPUYsbj1hO2lmKGk9PWUp
cmV0dXJuIG87bj1pLm5leHRTaWJsaW5nLGk9aS5wYXJlbnROb2RlLGw9QihpLHosRix0KSx0IT1J
JiZsLmFwcGVuZENoaWxkKG8pLG89bH19ZnVuY3Rpb24gQihlLHQscixpKXt2YXIgbyxhLHMsbCxj
O2lmKHQpcmV0dXJuIEQoZSxpKTtpZigzPT1lLm5vZGVUeXBlKXtpZihvPWUubm9kZVZhbHVlLHI/
KGw9TVtXXSxhPW8uc3Vic3RyaW5nKGwpLHM9by5zdWJzdHJpbmcoMCxsKSk6KGw9TVtxXSxhPW8u
c3Vic3RyaW5nKDAsbCkscz1vLnN1YnN0cmluZyhsKSksaSE9TyYmKGUubm9kZVZhbHVlPXMpLGk9
PUkpcmV0dXJuO3JldHVybiBjPW4uY2xvbmUoZSx6KSxjLm5vZGVWYWx1ZT1hLGN9aWYoaSE9SSly
ZXR1cm4gbi5jbG9uZShlLHopfWZ1bmN0aW9uIEQoZSx0KXtyZXR1cm4gdCE9ST90PT1PP24uY2xv
bmUoZSxGKTplOnZvaWQgZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfWZ1bmN0aW9uIEwoKXty
ZXR1cm4gbi5jcmVhdGUoImJvZHkiLG51bGwsZygpKS5vdXRlclRleHR9dmFyIE09dGhpcyxIPW4u
ZG9jLFA9MCxPPTEsST0yLEY9ITAsej0hMSxXPSJzdGFydE9mZnNldCIsVj0ic3RhcnRDb250YWlu
ZXIiLFU9ImVuZENvbnRhaW5lciIscT0iZW5kT2Zmc2V0IiwkPWUuZXh0ZW5kLGo9bi5ub2RlSW5k
ZXg7cmV0dXJuICQoTSx7c3RhcnRDb250YWluZXI6SCxzdGFydE9mZnNldDowLGVuZENvbnRhaW5l
cjpILGVuZE9mZnNldDowLGNvbGxhcHNlZDpGLGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyOkgsU1RB
UlRfVE9fU1RBUlQ6MCxTVEFSVF9UT19FTkQ6MSxFTkRfVE9fRU5EOjIsRU5EX1RPX1NUQVJUOjMs
c2V0U3RhcnQ6aSxzZXRFbmQ6byxzZXRTdGFydEJlZm9yZTphLHNldFN0YXJ0QWZ0ZXI6cyxzZXRF
bmRCZWZvcmU6bCxzZXRFbmRBZnRlcjpjLGNvbGxhcHNlOnUsc2VsZWN0Tm9kZTpkLHNlbGVjdE5v
ZGVDb250ZW50czpmLGNvbXBhcmVCb3VuZGFyeVBvaW50czpwLGRlbGV0ZUNvbnRlbnRzOmgsZXh0
cmFjdENvbnRlbnRzOm0sY2xvbmVDb250ZW50czpnLGluc2VydE5vZGU6dixzdXJyb3VuZENvbnRl
bnRzOnksY2xvbmVSYW5nZTpiLHRvU3RyaW5nSUU6TH0pLE19cmV0dXJuIHQucHJvdG90eXBlLnRv
U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmdJRSgpfSx0fSkscihtLFtwXSxm
dW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe3ZhciB0O3JldHVybiB0PWRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpLHQuaW5uZXJIVE1MPWUsdC50ZXh0Q29udGVudHx8dC5pbm5lclRleHR8fGV9
ZnVuY3Rpb24gbihlLHQpe3ZhciBuLHIsaSxhPXt9O2lmKGUpe2ZvcihlPWUuc3BsaXQoIiwiKSx0
PXR8fDEwLG49MDtuPGUubGVuZ3RoO24rPTIpcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50
KGVbbl0sdCkpLG9bcl18fChpPSImIitlW24rMV0rIjsiLGFbcl09aSxhW2ldPXIpO3JldHVybiBh
fX12YXIgcj1lLm1ha2VNYXAsaSxvLGEscz0vWyY8PlwiXHUwMDYwXHUwMDdFLVx1RDdGRlx1RTAw
MC1cdUZGRUZdfFtcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nLGw9L1s8PiZcdTAwN0Ut
XHVEN0ZGXHVFMDAwLVx1RkZFRl18W1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csYz0v
Wzw+JlwiXCddL2csdT0vJigjeHwjKT8oW1x3XSspOy9nLGQ9ezEyODoiXHUyMGFjIiwxMzA6Ilx1
MjAxYSIsMTMxOiJcdTAxOTIiLDEzMjoiXHUyMDFlIiwxMzM6Ilx1MjAyNiIsMTM0OiJcdTIwMjAi
LDEzNToiXHUyMDIxIiwxMzY6Ilx1MDJjNiIsMTM3OiJcdTIwMzAiLDEzODoiXHUwMTYwIiwxMzk6
Ilx1MjAzOSIsMTQwOiJcdTAxNTIiLDE0MjoiXHUwMTdkIiwxNDU6Ilx1MjAxOCIsMTQ2OiJcdTIw
MTkiLDE0NzoiXHUyMDFjIiwxNDg6Ilx1MjAxZCIsMTQ5OiJcdTIwMjIiLDE1MDoiXHUyMDEzIiwx
NTE6Ilx1MjAxNCIsMTUyOiJcdTAyZGMiLDE1MzoiXHUyMTIyIiwxNTQ6Ilx1MDE2MSIsMTU1OiJc
dTIwM2EiLDE1NjoiXHUwMTUzIiwxNTg6Ilx1MDE3ZSIsMTU5OiJcdTAxNzgifTtvPXsnIic6IiZx
dW90OyIsIiciOiImIzM5OyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCImIjoiJmFtcDsiLCJgIjoi
JiM5NjsifSxhPXsiJmx0OyI6IjwiLCImZ3Q7IjoiPiIsIiZhbXA7IjoiJiIsIiZxdW90OyI6JyIn
LCImYXBvczsiOiInIn0saT1uKCI1MCxuYnNwLDUxLGlleGNsLDUyLGNlbnQsNTMscG91bmQsNTQs
Y3VycmVuLDU1LHllbiw1NixicnZiYXIsNTcsc2VjdCw1OCx1bWwsNTksY29weSw1YSxvcmRmLDVi
LGxhcXVvLDVjLG5vdCw1ZCxzaHksNWUscmVnLDVmLG1hY3IsNWcsZGVnLDVoLHBsdXNtbiw1aSxz
dXAyLDVqLHN1cDMsNWssYWN1dGUsNWwsbWljcm8sNW0scGFyYSw1bixtaWRkb3QsNW8sY2VkaWws
NXAsc3VwMSw1cSxvcmRtLDVyLHJhcXVvLDVzLGZyYWMxNCw1dCxmcmFjMTIsNXUsZnJhYzM0LDV2
LGlxdWVzdCw2MCxBZ3JhdmUsNjEsQWFjdXRlLDYyLEFjaXJjLDYzLEF0aWxkZSw2NCxBdW1sLDY1
LEFyaW5nLDY2LEFFbGlnLDY3LENjZWRpbCw2OCxFZ3JhdmUsNjksRWFjdXRlLDZhLEVjaXJjLDZi
LEV1bWwsNmMsSWdyYXZlLDZkLElhY3V0ZSw2ZSxJY2lyYyw2ZixJdW1sLDZnLEVUSCw2aCxOdGls
ZGUsNmksT2dyYXZlLDZqLE9hY3V0ZSw2ayxPY2lyYyw2bCxPdGlsZGUsNm0sT3VtbCw2bix0aW1l
cyw2byxPc2xhc2gsNnAsVWdyYXZlLDZxLFVhY3V0ZSw2cixVY2lyYyw2cyxVdW1sLDZ0LFlhY3V0
ZSw2dSxUSE9STiw2dixzemxpZyw3MCxhZ3JhdmUsNzEsYWFjdXRlLDcyLGFjaXJjLDczLGF0aWxk
ZSw3NCxhdW1sLDc1LGFyaW5nLDc2LGFlbGlnLDc3LGNjZWRpbCw3OCxlZ3JhdmUsNzksZWFjdXRl
LDdhLGVjaXJjLDdiLGV1bWwsN2MsaWdyYXZlLDdkLGlhY3V0ZSw3ZSxpY2lyYyw3ZixpdW1sLDdn
LGV0aCw3aCxudGlsZGUsN2ksb2dyYXZlLDdqLG9hY3V0ZSw3ayxvY2lyYyw3bCxvdGlsZGUsN20s
b3VtbCw3bixkaXZpZGUsN28sb3NsYXNoLDdwLHVncmF2ZSw3cSx1YWN1dGUsN3IsdWNpcmMsN3Ms
dXVtbCw3dCx5YWN1dGUsN3UsdGhvcm4sN3YseXVtbCxjaSxmbm9mLHNoLEFscGhhLHNpLEJldGEs
c2osR2FtbWEsc2ssRGVsdGEsc2wsRXBzaWxvbixzbSxaZXRhLHNuLEV0YSxzbyxUaGV0YSxzcCxJ
b3RhLHNxLEthcHBhLHNyLExhbWJkYSxzcyxNdSxzdCxOdSxzdSxYaSxzdixPbWljcm9uLHQwLFBp
LHQxLFJobyx0MyxTaWdtYSx0NCxUYXUsdDUsVXBzaWxvbix0NixQaGksdDcsQ2hpLHQ4LFBzaSx0
OSxPbWVnYSx0aCxhbHBoYSx0aSxiZXRhLHRqLGdhbW1hLHRrLGRlbHRhLHRsLGVwc2lsb24sdG0s
emV0YSx0bixldGEsdG8sdGhldGEsdHAsaW90YSx0cSxrYXBwYSx0cixsYW1iZGEsdHMsbXUsdHQs
bnUsdHUseGksdHYsb21pY3Jvbix1MCxwaSx1MSxyaG8sdTIsc2lnbWFmLHUzLHNpZ21hLHU0LHRh
dSx1NSx1cHNpbG9uLHU2LHBoaSx1NyxjaGksdTgscHNpLHU5LG9tZWdhLHVoLHRoZXRhc3ltLHVp
LHVwc2loLHVtLHBpdiw4MTIsYnVsbCw4MTYsaGVsbGlwLDgxaSxwcmltZSw4MWosUHJpbWUsODF1
LG9saW5lLDgyNCxmcmFzbCw4OG8sd2VpZXJwLDg4aCxpbWFnZSw4OHMscmVhbCw4OTIsdHJhZGUs
ODlsLGFsZWZzeW0sOGNnLGxhcnIsOGNoLHVhcnIsOGNpLHJhcnIsOGNqLGRhcnIsOGNrLGhhcnIs
OGRsLGNyYXJyLDhlZyxsQXJyLDhlaCx1QXJyLDhlaSxyQXJyLDhlaixkQXJyLDhlayxoQXJyLDhn
MCxmb3JhbGwsOGcyLHBhcnQsOGczLGV4aXN0LDhnNSxlbXB0eSw4ZzcsbmFibGEsOGc4LGlzaW4s
OGc5LG5vdGluLDhnYixuaSw4Z2YscHJvZCw4Z2gsc3VtLDhnaSxtaW51cyw4Z24sbG93YXN0LDhn
cSxyYWRpYyw4Z3QscHJvcCw4Z3UsaW5maW4sOGgwLGFuZyw4aDcsYW5kLDhoOCxvciw4aDksY2Fw
LDhoYSxjdXAsOGhiLGludCw4aGssdGhlcmU0LDhocyxzaW0sOGk1LGNvbmcsOGk4LGFzeW1wLDhq
MCxuZSw4ajEsZXF1aXYsOGo0LGxlLDhqNSxnZSw4azIsc3ViLDhrMyxzdXAsOGs0LG5zdWIsOGs2
LHN1YmUsOGs3LHN1cGUsOGtsLG9wbHVzLDhrbixvdGltZXMsOGw1LHBlcnAsOG01LHNkb3QsOG84
LGxjZWlsLDhvOSxyY2VpbCw4b2EsbGZsb29yLDhvYixyZmxvb3IsOHA5LGxhbmcsOHBhLHJhbmcs
OWVhLGxveiw5ajAsc3BhZGVzLDlqMyxjbHVicyw5ajUsaGVhcnRzLDlqNixkaWFtcyxhaSxPRWxp
ZyxhaixvZWxpZyxiMCxTY2Fyb24sYjEsc2Nhcm9uLGJvLFl1bWwsbTYsY2lyYyxtcyx0aWxkZSw4
MDIsZW5zcCw4MDMsZW1zcCw4MDksdGhpbnNwLDgwYyx6d25qLDgwZCx6d2osODBlLGxybSw4MGYs
cmxtLDgwaixuZGFzaCw4MGssbWRhc2gsODBvLGxzcXVvLDgwcCxyc3F1byw4MHEsc2JxdW8sODBz
LGxkcXVvLDgwdCxyZHF1byw4MHUsYmRxdW8sODEwLGRhZ2dlciw4MTEsRGFnZ2VyLDgxZyxwZXJt
aWwsODFwLGxzYXF1byw4MXEscnNhcXVvLDg1YyxldXJvIiwzMik7dmFyIGY9e2VuY29kZVJhdzpm
dW5jdGlvbihlLHQpe3JldHVybiBlLnJlcGxhY2UodD9zOmwsZnVuY3Rpb24oZSl7cmV0dXJuIG9b
ZV18fGV9KX0sZW5jb2RlQWxsUmF3OmZ1bmN0aW9uKGUpe3JldHVybigiIitlKS5yZXBsYWNlKGMs
ZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV18fGV9KX0sZW5jb2RlTnVtZXJpYzpmdW5jdGlvbihlLHQp
e3JldHVybiBlLnJlcGxhY2UodD9zOmwsZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoPjE/IiYj
IisoMTAyNCooZS5jaGFyQ29kZUF0KDApLTU1Mjk2KSsoZS5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2
NTUzNikrIjsiOm9bZV18fCImIyIrZS5jaGFyQ29kZUF0KDApKyI7In0pfSxlbmNvZGVOYW1lZDpm
dW5jdGlvbihlLHQsbil7cmV0dXJuIG49bnx8aSxlLnJlcGxhY2UodD9zOmwsZnVuY3Rpb24oZSl7
cmV0dXJuIG9bZV18fG5bZV18fGV9KX0sZ2V0RW5jb2RlRnVuYzpmdW5jdGlvbihlLHQpe2Z1bmN0
aW9uIGEoZSxuKXtyZXR1cm4gZS5yZXBsYWNlKG4/czpsLGZ1bmN0aW9uKGUpe3JldHVybiBvW2Vd
fHx0W2VdfHwiJiMiK2UuY2hhckNvZGVBdCgwKSsiOyJ8fGV9KX1mdW5jdGlvbiBjKGUsbil7cmV0
dXJuIGYuZW5jb2RlTmFtZWQoZSxuLHQpfXJldHVybiB0PW4odCl8fGksZT1yKGUucmVwbGFjZSgv
XCsvZywiLCIpKSxlLm5hbWVkJiZlLm51bWVyaWM/YTplLm5hbWVkP3Q/YzpmLmVuY29kZU5hbWVk
OmUubnVtZXJpYz9mLmVuY29kZU51bWVyaWM6Zi5lbmNvZGVSYXd9LGRlY29kZTpmdW5jdGlvbihl
KXtyZXR1cm4gZS5yZXBsYWNlKHUsZnVuY3Rpb24oZSxuLHIpe3JldHVybiBuPyhyPXBhcnNlSW50
KHIsMj09PW4ubGVuZ3RoPzE2OjEwKSxyPjY1NTM1PyhyLT02NTUzNixTdHJpbmcuZnJvbUNoYXJD
b2RlKDU1Mjk2KyhyPj4xMCksNTYzMjArKDEwMjMmcikpKTpkW3JdfHxTdHJpbmcuZnJvbUNoYXJD
b2RlKHIpKTphW2VdfHxpW2VdfHx0KGUpfSl9fTtyZXR1cm4gZn0pLHIoZyxbXSxmdW5jdGlvbigp
e3ZhciBlPW5hdmlnYXRvcix0PWUudXNlckFnZW50LG4scixpLG8sYSxzLGw7bj13aW5kb3cub3Bl
cmEmJndpbmRvdy5vcGVyYS5idWlsZE51bWJlcixyPS9XZWJLaXQvLnRlc3QodCksaT0hciYmIW4m
Ji9NU0lFL2dpLnRlc3QodCkmJi9FeHBsb3Jlci9naS50ZXN0KGUuYXBwTmFtZSksaT1pJiYvTVNJ
RSAoXHcrKVwuLy5leGVjKHQpWzFdLG89LTE9PXQuaW5kZXhPZigiVHJpZGVudC8iKXx8LTE9PXQu
aW5kZXhPZigicnY6IikmJi0xPT1lLmFwcE5hbWUuaW5kZXhPZigiTmV0c2NhcGUiKT8hMToxMSxp
PWl8fG8sYT0hciYmIW8mJi9HZWNrby8udGVzdCh0KSxzPS0xIT10LmluZGV4T2YoIk1hYyIpLGw9
LyhpUGFkfGlQaG9uZSkvLnRlc3QodCk7dmFyIGM9IWx8fHQubWF0Y2goL0FwcGxlV2ViS2l0XC8o
XGQqKS8pWzFdPj01MzQ7cmV0dXJue29wZXJhOm4sd2Via2l0OnIsaWU6aSxnZWNrbzphLG1hYzpz
LGlPUzpsLGNvbnRlbnRFZGl0YWJsZTpjLHRyYW5zcGFyZW50U3JjOiJkYXRhOmltYWdlL2dpZjti
YXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJ
QlJBQTciLGNhcmV0QWZ0ZXI6OCE9aSxyYW5nZTp3aW5kb3cuZ2V0U2VsZWN0aW9uJiYiUmFuZ2Ui
aW4gd2luZG93LGRvY3VtZW50TW9kZTppP2RvY3VtZW50LmRvY3VtZW50TW9kZXx8NzoxMH19KSxy
KHYsW10sZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKHQpe2UuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0KX1mdW5jdGlvbiByKHQs
cixzKXtmdW5jdGlvbiBsKCl7Zm9yKHZhciBlPXYucGFzc2VkLHQ9ZS5sZW5ndGg7dC0tOyllW3Rd
KCk7di5zdGF0dXM9Mix2LnBhc3NlZD1bXSx2LmZhaWxlZD1bXX1mdW5jdGlvbiBjKCl7Zm9yKHZh
ciBlPXYuZmFpbGVkLHQ9ZS5sZW5ndGg7dC0tOyllW3RdKCk7di5zdGF0dXM9Myx2LnBhc3NlZD1b
XSx2LmZhaWxlZD1bXX1mdW5jdGlvbiB1KCl7dmFyIGU9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRj
aCgvV2ViS2l0XC8oXGQqKS8pO3JldHVybiEhKGUmJmVbMV08NTM2KX1mdW5jdGlvbiBkKGUsdCl7
ZSgpfHwoKG5ldyBEYXRlKS5nZXRUaW1lKCktZzxhP3dpbmRvdy5zZXRUaW1lb3V0KHQsMCk6Yygp
KX1mdW5jdGlvbiBmKCl7ZChmdW5jdGlvbigpe2Zvcih2YXIgdD1lLnN0eWxlU2hlZXRzLG4scj10
Lmxlbmd0aCxpO3ItLTspaWYobj10W3JdLGk9bi5vd25lck5vZGU/bi5vd25lck5vZGU6bi5vd25p
bmdFbGVtZW50LGkmJmkuaWQ9PT1oLmlkKXJldHVybiBsKCksITB9LGYpfWZ1bmN0aW9uIHAoKXtk
KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPW0uc2hlZXQuY3NzUnVsZXM7cmV0dXJuIGwoKSwhIWV9Y2F0
Y2godCl7fX0scCl9dmFyIGgsbSxnLHY7aWYob1t0XT92PW9bdF06KHY9e3Bhc3NlZDpbXSxmYWls
ZWQ6W119LG9bdF09diksciYmdi5wYXNzZWQucHVzaChyKSxzJiZ2LmZhaWxlZC5wdXNoKHMpLDEh
PXYuc3RhdHVzKXtpZigyPT12LnN0YXR1cylyZXR1cm4gdm9pZCBsKCk7aWYoMz09di5zdGF0dXMp
cmV0dXJuIHZvaWQgYygpO2lmKHYuc3RhdHVzPTEsaD1lLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxo
LnJlbD0ic3R5bGVzaGVldCIsaC50eXBlPSJ0ZXh0L2NzcyIsaC5pZD0idSIraSsrLGguYXN5bmM9
ITEsaC5kZWZlcj0hMSxnPShuZXcgRGF0ZSkuZ2V0VGltZSgpLCJvbmxvYWQiaW4gaCYmIXUoKSlo
Lm9ubG9hZD1mLGgub25lcnJvcj1jO2Vsc2V7aWYobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9m
KCJGaXJlZm94Iik+MClyZXR1cm4gbT1lLmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksbS50ZXh0Q29u
dGVudD0nQGltcG9ydCAiJyt0KyciJyxwKCksdm9pZCBuKG0pO2YoKX1uKGgpLGguaHJlZj10fX12
YXIgaT0wLG89e30sYTt0PXR8fHt9LGE9dC5tYXhMb2FkVGltZXx8NWUzLHRoaXMubG9hZD1yfX0p
LHIoeSxbYyxkLGwsZixoLG0sZyxwLHZdLGZ1bmN0aW9uKGUsbixyLGksbyxhLHMsbCxjKXtmdW5j
dGlvbiB1KGUsdCl7dmFyIGk9dGhpcyxvO2kuZG9jPWUsaS53aW49d2luZG93LGkuZmlsZXM9e30s
aS5jb3VudGVyPTAsaS5zdGRNb2RlPSF2fHxlLmRvY3VtZW50TW9kZT49OCxpLmJveE1vZGVsPSF2
fHwiQ1NTMUNvbXBhdCI9PWUuY29tcGF0TW9kZXx8aS5zdGRNb2RlLGkuaGFzT3V0ZXJIVE1MPSJv
dXRlckhUTUwiaW4gZS5jcmVhdGVFbGVtZW50KCJhIiksaS5zdHlsZVNoZWV0TG9hZGVyPW5ldyBj
KGUpLHRoaXMuYm91bmRFdmVudHM9W10saS5zZXR0aW5ncz10PW0oe2tlZXBfdmFsdWVzOiExLGhl
eF9jb2xvcnM6MX0sdCksaS5zY2hlbWE9dC5zY2hlbWEsaS5zdHlsZXM9bmV3IG4oe3VybF9jb252
ZXJ0ZXI6dC51cmxfY29udmVydGVyLHVybF9jb252ZXJ0ZXJfc2NvcGU6dC51cmxfY29udmVydGVy
X3Njb3BlfSx0LnNjaGVtYSksaS5maXhEb2MoZSksaS5ldmVudHM9dC5vd25FdmVudHM/bmV3IHIo
dC5wcm94eSk6ci5FdmVudCxvPXQuc2NoZW1hP3Quc2NoZW1hLmdldEJsb2NrRWxlbWVudHMoKTp7
fSxpLmlzQmxvY2s9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS5ub2RlVHlwZTty
ZXR1cm4gdD8hKDEhPT10fHwhb1tlLm5vZGVOYW1lXSk6ISFvW2VdfX12YXIgZD1sLmVhY2gsZj1s
LmlzLHA9bC5ncmVwLGg9bC50cmltLG09bC5leHRlbmQsZz1zLndlYmtpdCx2PXMuaWUseT0vXihb
YS16MC05XSw/KSskL2ksYj0vXlsgXHRcclxuXSokLyxDPWwubWFrZU1hcCgiZmlsbE9wYWNpdHkg
Zm9udFdlaWdodCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JwaGFucyB3aWRvd3MgekluZGV4IHpvb20i
LCIgIik7cmV0dXJuIHUucHJvdG90eXBlPXtyb290Om51bGwscHJvcHM6eyJmb3IiOiJodG1sRm9y
IiwiY2xhc3MiOiJjbGFzc05hbWUiLGNsYXNzTmFtZToiY2xhc3NOYW1lIixjaGVja2VkOiJjaGVj
a2VkIixkaXNhYmxlZDoiZGlzYWJsZWQiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixyZWFkb25seToi
cmVhZE9ubHkiLHNlbGVjdGVkOiJzZWxlY3RlZCIsdmFsdWU6InZhbHVlIixpZDoiaWQiLG5hbWU6
Im5hbWUiLHR5cGU6InR5cGUifSxmaXhEb2M6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5zZXR0aW5n
cyxuO2lmKHYmJnQuc2NoZW1hKXsiYWJiciBhcnRpY2xlIGFzaWRlIGF1ZGlvIGNhbnZhcyBkZXRh
aWxzIGZpZ2NhcHRpb24gZmlndXJlIGZvb3RlciBoZWFkZXIgaGdyb3VwIG1hcmsgbWVudSBtZXRl
ciBuYXYgb3V0cHV0IHByb2dyZXNzIHNlY3Rpb24gc3VtbWFyeSB0aW1lIHZpZGVvIi5yZXBsYWNl
KC9cdysvZyxmdW5jdGlvbih0KXtlLmNyZWF0ZUVsZW1lbnQodCl9KTtmb3IobiBpbiB0LnNjaGVt
YS5nZXRDdXN0b21FbGVtZW50cygpKWUuY3JlYXRlRWxlbWVudChuKX19LGNsb25lOmZ1bmN0aW9u
KGUsdCl7dmFyIG49dGhpcyxyLGk7cmV0dXJuIXZ8fDEhPT1lLm5vZGVUeXBlfHx0P2UuY2xvbmVO
b2RlKHQpOihpPW4uZG9jLHQ/ci5maXJzdENoaWxkOihyPWkuY3JlYXRlRWxlbWVudChlLm5vZGVO
YW1lKSxkKG4uZ2V0QXR0cmlicyhlKSxmdW5jdGlvbih0KXtuLnNldEF0dHJpYihyLHQubm9kZU5h
bWUsbi5nZXRBdHRyaWIoZSx0Lm5vZGVOYW1lKSl9KSxyKSl9LGdldFJvb3Q6ZnVuY3Rpb24oKXt2
YXIgZT10aGlzO3JldHVybiBlLmdldChlLnNldHRpbmdzLnJvb3RfZWxlbWVudCl8fGUuZG9jLmJv
ZHl9LGdldFZpZXdQb3J0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuIGU9ZT9lOnRoaXMud2lu
LHQ9ZS5kb2N1bWVudCxuPXRoaXMuYm94TW9kZWw/dC5kb2N1bWVudEVsZW1lbnQ6dC5ib2R5LHt4
OmUucGFnZVhPZmZzZXR8fG4uc2Nyb2xsTGVmdCx5OmUucGFnZVlPZmZzZXR8fG4uc2Nyb2xsVG9w
LHc6ZS5pbm5lcldpZHRofHxuLmNsaWVudFdpZHRoLGg6ZS5pbm5lckhlaWdodHx8bi5jbGllbnRI
ZWlnaHR9fSxnZXRSZWN0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbixyO3JldHVybiBlPXQuZ2V0
KGUpLG49dC5nZXRQb3MoZSkscj10LmdldFNpemUoZSkse3g6bi54LHk6bi55LHc6ci53LGg6ci5o
fX0sZ2V0U2l6ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG4scjtyZXR1cm4gZT10LmdldChlKSxu
PXQuZ2V0U3R5bGUoZSwid2lkdGgiKSxyPXQuZ2V0U3R5bGUoZSwiaGVpZ2h0IiksLTE9PT1uLmlu
ZGV4T2YoInB4IikmJihuPTApLC0xPT09ci5pbmRleE9mKCJweCIpJiYocj0wKSx7dzpwYXJzZUlu
dChuLDEwKXx8ZS5vZmZzZXRXaWR0aHx8ZS5jbGllbnRXaWR0aCxoOnBhcnNlSW50KHIsMTApfHxl
Lm9mZnNldEhlaWdodHx8ZS5jbGllbnRIZWlnaHR9fSxnZXRQYXJlbnQ6ZnVuY3Rpb24oZSx0LG4p
e3JldHVybiB0aGlzLmdldFBhcmVudHMoZSx0LG4sITEpfSxnZXRQYXJlbnRzOmZ1bmN0aW9uKGUs
bixyLGkpe3ZhciBvPXRoaXMsYSxzPVtdO2ZvcihlPW8uZ2V0KGUpLGk9aT09PXQscj1yfHwoIkJP
RFkiIT1vLmdldFJvb3QoKS5ub2RlTmFtZT9vLmdldFJvb3QoKS5wYXJlbnROb2RlOm51bGwpLGYo
biwic3RyaW5nIikmJihhPW4sbj0iKiI9PT1uP2Z1bmN0aW9uKGUpe3JldHVybiAxPT1lLm5vZGVU
eXBlfTpmdW5jdGlvbihlKXtyZXR1cm4gby5pcyhlLGEpfSk7ZSYmZSE9ciYmZS5ub2RlVHlwZSYm
OSE9PWUubm9kZVR5cGU7KXtpZighbnx8bihlKSl7aWYoIWkpcmV0dXJuIGU7cy5wdXNoKGUpfWU9
ZS5wYXJlbnROb2RlfXJldHVybiBpP3M6bnVsbH0sZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVy
biBlJiZ0aGlzLmRvYyYmInN0cmluZyI9PXR5cGVvZiBlJiYodD1lLGU9dGhpcy5kb2MuZ2V0RWxl
bWVudEJ5SWQoZSksZSYmZS5pZCE9PXQpP3RoaXMuZG9jLmdldEVsZW1lbnRzQnlOYW1lKHQpWzFd
OmV9LGdldE5leHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZmluZFNpYihlLHQsIm5leHRT
aWJsaW5nIil9LGdldFByZXY6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZmluZFNpYihlLHQs
InByZXZpb3VzU2libGluZyIpfSxzZWxlY3Q6ZnVuY3Rpb24odCxuKXt2YXIgcj10aGlzO3JldHVy
biBlKHQsci5nZXQobil8fHIuZ2V0KHIuc2V0dGluZ3Mucm9vdF9lbGVtZW50KXx8ci5kb2MsW10p
fSxpczpmdW5jdGlvbihuLHIpe3ZhciBpO2lmKG4ubGVuZ3RoPT09dCl7aWYoIioiPT09cilyZXR1
cm4gMT09bi5ub2RlVHlwZTtpZih5LnRlc3Qocikpe2ZvcihyPXIudG9Mb3dlckNhc2UoKS5zcGxp
dCgvLC8pLG49bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGk9ci5sZW5ndGgtMTtpPj0wO2ktLSlp
ZihyW2ldPT1uKXJldHVybiEwO3JldHVybiExfX1pZihuLm5vZGVUeXBlJiYxIT1uLm5vZGVUeXBl
KXJldHVybiExO3ZhciBvPW4ubm9kZVR5cGU/W25dOm47cmV0dXJuIGUocixvWzBdLm93bmVyRG9j
dW1lbnR8fG9bMF0sbnVsbCxvKS5sZW5ndGg+MH0sYWRkOmZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFy
IG89dGhpcztyZXR1cm4gdGhpcy5ydW4oZSxmdW5jdGlvbihlKXt2YXIgYTtyZXR1cm4gYT1mKHQs
InN0cmluZyIpP28uZG9jLmNyZWF0ZUVsZW1lbnQodCk6dCxvLnNldEF0dHJpYnMoYSxuKSxyJiYo
ci5ub2RlVHlwZT9hLmFwcGVuZENoaWxkKHIpOm8uc2V0SFRNTChhLHIpKSxpP2E6ZS5hcHBlbmRD
aGlsZChhKX0pfSxjcmVhdGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLmFkZCh0aGlzLmRv
Yy5jcmVhdGVFbGVtZW50KGUpLGUsdCxuLDEpfSxjcmVhdGVIVE1MOmZ1bmN0aW9uKGUsdCxuKXt2
YXIgcj0iIixpO3IrPSI8IitlO2ZvcihpIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShpKSYmbnVsbCE9
PXRbaV0mJihyKz0iICIraSsnPSInK3RoaXMuZW5jb2RlKHRbaV0pKyciJyk7cmV0dXJuInVuZGVm
aW5lZCIhPXR5cGVvZiBuP3IrIj4iK24rIjwvIitlKyI+IjpyKyIgLz4ifSxjcmVhdGVGcmFnbWVu
dDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcy5kb2MsaTtmb3IoaT1yLmNyZWF0ZUVsZW1lbnQo
ImRpdiIpLHQ9ci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZSYmKGkuaW5uZXJIVE1MPWUpO249
aS5maXJzdENoaWxkOyl0LmFwcGVuZENoaWxkKG4pO3JldHVybiB0fSxyZW1vdmU6ZnVuY3Rpb24o
ZSx0KXtyZXR1cm4gdGhpcy5ydW4oZSxmdW5jdGlvbihlKXt2YXIgbixyPWUucGFyZW50Tm9kZTtp
ZighcilyZXR1cm4gbnVsbDtpZih0KWZvcig7bj1lLmZpcnN0Q2hpbGQ7KSF2fHwzIT09bi5ub2Rl
VHlwZXx8bi5ub2RlVmFsdWU/ci5pbnNlcnRCZWZvcmUobixlKTplLnJlbW92ZUNoaWxkKG4pO3Jl
dHVybiByLnJlbW92ZUNoaWxkKGUpfSl9LHNldFN0eWxlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4g
dGhpcy5ydW4oZSxmdW5jdGlvbihlKXt2YXIgcj10aGlzLGksbztpZih0KWlmKCJzdHJpbmciPT10
eXBlb2YgdCl7aT1lLnN0eWxlLHQ9dC5yZXBsYWNlKC8tKFxEKS9nLGZ1bmN0aW9uKGUsdCl7cmV0
dXJuIHQudG9VcHBlckNhc2UoKX0pLCJudW1iZXIiIT10eXBlb2Ygbnx8Q1t0XXx8KG4rPSJweCIp
LCJvcGFjaXR5Ij09PXQmJmUucnVudGltZVN0eWxlJiYidW5kZWZpbmVkIj09dHlwZW9mIGUucnVu
dGltZVN0eWxlLm9wYWNpdHkmJihpLmZpbHRlcj0iIj09PW4/IiI6ImFscGhhKG9wYWNpdHk9Iisx
MDAqbisiKSIpLCJmbG9hdCI9PXQmJih0PSJjc3NGbG9hdCJpbiBlLnN0eWxlPyJjc3NGbG9hdCI6
InN0eWxlRmxvYXQiKTt0cnl7aVt0XT1ufWNhdGNoKGEpe31yLnNldHRpbmdzLnVwZGF0ZV9zdHls
ZXMmJmUucmVtb3ZlQXR0cmlidXRlKCJkYXRhLW1jZS1zdHlsZSIpfWVsc2UgZm9yKG8gaW4gdCly
LnNldFN0eWxlKGUsbyx0W29dKX0pfSxnZXRTdHlsZTpmdW5jdGlvbihlLG4scil7aWYoZT10aGlz
LmdldChlKSl7aWYodGhpcy5kb2MuZGVmYXVsdFZpZXcmJnIpe249bi5yZXBsYWNlKC9bQS1aXS9n
LGZ1bmN0aW9uKGUpe3JldHVybiItIitlfSk7dHJ5e3JldHVybiB0aGlzLmRvYy5kZWZhdWx0Vmll
dy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKX1jYXRjaChpKXty
ZXR1cm4gbnVsbH19cmV0dXJuIG49bi5yZXBsYWNlKC8tKFxEKS9nLGZ1bmN0aW9uKGUsdCl7cmV0
dXJuIHQudG9VcHBlckNhc2UoKX0pLCJmbG9hdCI9PW4mJihuPXY/InN0eWxlRmxvYXQiOiJjc3NG
bG9hdCIpLGUuY3VycmVudFN0eWxlJiZyP2UuY3VycmVudFN0eWxlW25dOmUuc3R5bGU/ZS5zdHls
ZVtuXTp0fX0sc2V0U3R5bGVzOmZ1bmN0aW9uKGUsdCl7dGhpcy5zZXRTdHlsZShlLHQpfSxjc3M6
ZnVuY3Rpb24oZSx0LG4pe3RoaXMuc2V0U3R5bGUoZSx0LG4pfSxyZW1vdmVBbGxBdHRyaWJzOmZ1
bmN0aW9uKGUpe3JldHVybiB0aGlzLnJ1bihlLGZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5hdHRyaWJ1
dGVzO2Zvcih0PW4ubGVuZ3RoLTE7dD49MDt0LS0pZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKG4uaXRl
bSh0KSl9KX0sc2V0QXR0cmliOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzO2lmKGUmJnQpcmV0
dXJuIHRoaXMucnVuKGUsZnVuY3Rpb24oZSl7dmFyIGk9ci5zZXR0aW5ncyxvPWUuZ2V0QXR0cmli
dXRlKHQpO2lmKG51bGwhPT1uKXN3aXRjaCh0KXtjYXNlInN0eWxlIjppZighZihuLCJzdHJpbmci
KSlyZXR1cm4gdm9pZCBkKG4sZnVuY3Rpb24odCxuKXtyLnNldFN0eWxlKGUsbix0KX0pO2kua2Vl
cF92YWx1ZXMmJihuP2Uuc2V0QXR0cmlidXRlKCJkYXRhLW1jZS1zdHlsZSIsbiwyKTplLnJlbW92
ZUF0dHJpYnV0ZSgiZGF0YS1tY2Utc3R5bGUiLDIpKSxlLnN0eWxlLmNzc1RleHQ9bjticmVhaztj
YXNlImNsYXNzIjplLmNsYXNzTmFtZT1ufHwiIjticmVhaztjYXNlInNyYyI6Y2FzZSJocmVmIjpp
LmtlZXBfdmFsdWVzJiYoaS51cmxfY29udmVydGVyJiYobj1pLnVybF9jb252ZXJ0ZXIuY2FsbChp
LnVybF9jb252ZXJ0ZXJfc2NvcGV8fHIsbix0LGUpKSxyLnNldEF0dHJpYihlLCJkYXRhLW1jZS0i
K3QsbiwyKSk7YnJlYWs7Y2FzZSJzaGFwZSI6ZS5zZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXN0eWxl
IixuKX1mKG4pJiZudWxsIT09biYmMCE9PW4ubGVuZ3RoP2Uuc2V0QXR0cmlidXRlKHQsIiIrbiwy
KTplLnJlbW92ZUF0dHJpYnV0ZSh0LDIpLG8hPW4mJmkub25TZXRBdHRyaWImJmkub25TZXRBdHRy
aWIoe2F0dHJFbG06ZSxhdHRyTmFtZTp0LGF0dHJWYWx1ZTpufSl9KX0sc2V0QXR0cmliczpmdW5j
dGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMucnVuKGUsZnVuY3Rpb24oZSl7ZCh0LGZ1
bmN0aW9uKHQscil7bi5zZXRBdHRyaWIoZSxyLHQpfSl9KX0sZ2V0QXR0cmliOmZ1bmN0aW9uKGUs
dCxuKXt2YXIgcixpPXRoaXMsbztpZihlPWkuZ2V0KGUpLCFlfHwxIT09ZS5ub2RlVHlwZSlyZXR1
cm4gbj09PW8/ITE6bjtpZihmKG4pfHwobj0iIiksL14oc3JjfGhyZWZ8c3R5bGV8Y29vcmRzfHNo
YXBlKSQvLnRlc3QodCkmJihyPWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS0iK3QpKSlyZXR1cm4g
cjtpZih2JiZpLnByb3BzW3RdJiYocj1lW2kucHJvcHNbdF1dLHI9ciYmci5ub2RlVmFsdWU/ci5u
b2RlVmFsdWU6cikscnx8KHI9ZS5nZXRBdHRyaWJ1dGUodCwyKSksL14oY2hlY2tlZHxjb21wYWN0
fGRlY2xhcmV8ZGVmZXJ8ZGlzYWJsZWR8aXNtYXB8bXVsdGlwbGV8bm9ocmVmfG5vc2hhZGV8bm93
cmFwfHJlYWRvbmx5fHNlbGVjdGVkKSQvLnRlc3QodCkpcmV0dXJuIGVbaS5wcm9wc1t0XV09PT0h
MCYmIiI9PT1yP3Q6cj90OiIiO2lmKCJGT1JNIj09PWUubm9kZU5hbWUmJmUuZ2V0QXR0cmlidXRl
Tm9kZSh0KSlyZXR1cm4gZS5nZXRBdHRyaWJ1dGVOb2RlKHQpLm5vZGVWYWx1ZTtpZigic3R5bGUi
PT09dCYmKHI9cnx8ZS5zdHlsZS5jc3NUZXh0LHImJihyPWkuc2VyaWFsaXplU3R5bGUoaS5wYXJz
ZVN0eWxlKHIpLGUubm9kZU5hbWUpLGkuc2V0dGluZ3Mua2VlcF92YWx1ZXMmJmUuc2V0QXR0cmli
dXRlKCJkYXRhLW1jZS1zdHlsZSIscikpKSxnJiYiY2xhc3MiPT09dCYmciYmKHI9ci5yZXBsYWNl
KC8oYXBwbGV8d2Via2l0KVwtW2EtelwtXSsvZ2ksIiIpKSx2KXN3aXRjaCh0KXtjYXNlInJvd3Nw
YW4iOmNhc2UiY29sc3BhbiI6MT09PXImJihyPSIiKTticmVhaztjYXNlInNpemUiOigiKzAiPT09
cnx8MjA9PT1yfHwwPT09cikmJihyPSIiKTticmVhaztjYXNlIndpZHRoIjpjYXNlImhlaWdodCI6
Y2FzZSJ2c3BhY2UiOmNhc2UiY2hlY2tlZCI6Y2FzZSJkaXNhYmxlZCI6Y2FzZSJyZWFkb25seSI6
MD09PXImJihyPSIiKTticmVhaztjYXNlImhzcGFjZSI6LTE9PT1yJiYocj0iIik7YnJlYWs7Y2Fz
ZSJtYXhsZW5ndGgiOmNhc2UidGFiaW5kZXgiOigzMjc2OD09PXJ8fDIxNDc0ODM2NDc9PT1yfHwi
MzI3NjgiPT09cikmJihyPSIiKTticmVhaztjYXNlIm11bHRpcGxlIjpjYXNlImNvbXBhY3QiOmNh
c2Uibm9zaGFkZSI6Y2FzZSJub3dyYXAiOnJldHVybiA2NTUzNT09PXI/dDpuO2Nhc2Uic2hhcGUi
OnI9ci50b0xvd2VyQ2FzZSgpO2JyZWFrO2RlZmF1bHQ6MD09PXQuaW5kZXhPZigib24iKSYmciYm
KHI9KCIiK3IpLnJlcGxhY2UoL15mdW5jdGlvblxzK1x3K1woXClccytce1xzKyguKilccytcfSQv
LCIkMSIpKX1yZXR1cm4gciE9PW8mJm51bGwhPT1yJiYiIiE9PXI/IiIrcjpufSxnZXRQb3M6ZnVu
Y3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9MCxpPTAsbyxhPW4uZG9jLHM7aWYoZT1uLmdldChlKSx0
PXR8fGEuYm9keSxlKXtpZih0PT09YS5ib2R5JiZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdClyZXR1
cm4gcz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ9bi5ib3hNb2RlbD9hLmRvY3VtZW50RWxl
bWVudDphLmJvZHkscj1zLmxlZnQrKGEuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fGEuYm9k
eS5zY3JvbGxMZWZ0KS10LmNsaWVudExlZnQsaT1zLnRvcCsoYS5kb2N1bWVudEVsZW1lbnQuc2Ny
b2xsVG9wfHxhLmJvZHkuc2Nyb2xsVG9wKS10LmNsaWVudFRvcCx7eDpyLHk6aX07Zm9yKG89ZTtv
JiZvIT10JiZvLm5vZGVUeXBlOylyKz1vLm9mZnNldExlZnR8fDAsaSs9by5vZmZzZXRUb3B8fDAs
bz1vLm9mZnNldFBhcmVudDtmb3Iobz1lLnBhcmVudE5vZGU7byYmbyE9dCYmby5ub2RlVHlwZTsp
ci09by5zY3JvbGxMZWZ0fHwwLGktPW8uc2Nyb2xsVG9wfHwwLG89by5wYXJlbnROb2RlfXJldHVy
bnt4OnIseTppfX0scGFyc2VTdHlsZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zdHlsZXMucGFy
c2UoZSl9LHNlcmlhbGl6ZVN0eWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc3R5bGVzLnNl
cmlhbGl6ZShlLHQpfSxhZGRTdHlsZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dC5kb2Mscixp
O2lmKHQhPT11LkRPTSYmbj09PWRvY3VtZW50KXt2YXIgbz11LkRPTS5hZGRlZFN0eWxlcztpZihv
PW98fFtdLG9bZV0pcmV0dXJuO29bZV09ITAsdS5ET00uYWRkZWRTdHlsZXM9b31pPW4uZ2V0RWxl
bWVudEJ5SWQoIm1jZURlZmF1bHRTdHlsZXMiKSxpfHwoaT1uLmNyZWF0ZUVsZW1lbnQoInN0eWxl
IiksaS5pZD0ibWNlRGVmYXVsdFN0eWxlcyIsaS50eXBlPSJ0ZXh0L2NzcyIscj1uLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sci5maXJzdENoaWxkP3IuaW5zZXJ0QmVmb3JlKGksci5m
aXJzdENoaWxkKTpyLmFwcGVuZENoaWxkKGkpKSxpLnN0eWxlU2hlZXQ/aS5zdHlsZVNoZWV0LmNz
c1RleHQrPWU6aS5hcHBlbmRDaGlsZChuLmNyZWF0ZVRleHROb2RlKGUpKX0sbG9hZENTUzpmdW5j
dGlvbihlKXt2YXIgdD10aGlzLG49dC5kb2MscjtyZXR1cm4gdCE9PXUuRE9NJiZuPT09ZG9jdW1l
bnQ/dm9pZCB1LkRPTS5sb2FkQ1NTKGUpOihlfHwoZT0iIikscj1uLmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJoZWFkIilbMF0sdm9pZCBkKGUuc3BsaXQoIiwiKSxmdW5jdGlvbihlKXt2YXIgaTt0LmZp
bGVzW2VdfHwodC5maWxlc1tlXT0hMCxpPXQuY3JlYXRlKCJsaW5rIix7cmVsOiJzdHlsZXNoZWV0
IixocmVmOmV9KSx2JiZuLmRvY3VtZW50TW9kZSYmbi5yZWNhbGMmJihpLm9ubG9hZD1mdW5jdGlv
bigpe24ucmVjYWxjJiZuLnJlY2FsYygpLGkub25sb2FkPW51bGx9KSxyLmFwcGVuZENoaWxkKGkp
KX0pKX0sYWRkQ2xhc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5ydW4oZSxmdW5jdGlvbihl
KXt2YXIgbjtyZXR1cm4gdD90aGlzLmhhc0NsYXNzKGUsdCk/ZS5jbGFzc05hbWU6KG49dGhpcy5y
ZW1vdmVDbGFzcyhlLHQpLGUuY2xhc3NOYW1lPW49KCIiIT09bj9uKyIgIjoiIikrdCxuKTowfSl9
LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyO3JldHVybiBuLnJ1bihlLGZ1
bmN0aW9uKGUpe3ZhciBpO3JldHVybiBuLmhhc0NsYXNzKGUsdCk/KHJ8fChyPW5ldyBSZWdFeHAo
IihefFxccyspIit0KyIoXFxzK3wkKSIsImciKSksaT1lLmNsYXNzTmFtZS5yZXBsYWNlKHIsIiAi
KSxpPWgoIiAiIT1pP2k6IiIpLGUuY2xhc3NOYW1lPWksaXx8KGUucmVtb3ZlQXR0cmlidXRlKCJj
bGFzcyIpLGUucmVtb3ZlQXR0cmlidXRlKCJjbGFzc05hbWUiKSksaSk6ZS5jbGFzc05hbWV9KX0s
aGFzQ2xhc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT10aGlzLmdldChlKSxlJiZ0Py0xIT09KCIg
IitlLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiAiK3QrIiAiKTohMX0sdG9nZ2xlQ2xhc3M6ZnVu
Y3Rpb24oZSxuLHIpe3I9cj09PXQ/IXRoaXMuaGFzQ2xhc3MoZSxuKTpyLHRoaXMuaGFzQ2xhc3Mo
ZSxuKSE9PXImJihyP3RoaXMuYWRkQ2xhc3MoZSxuKTp0aGlzLnJlbW92ZUNsYXNzKGUsbikpfSxz
aG93OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNldFN0eWxlKGUsImRpc3BsYXkiLCJibG9jayIp
fSxoaWRlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNldFN0eWxlKGUsImRpc3BsYXkiLCJub25l
Iil9LGlzSGlkZGVuOmZ1bmN0aW9uKGUpe3JldHVybiBlPXRoaXMuZ2V0KGUpLCFlfHwibm9uZSI9
PWUuc3R5bGUuZGlzcGxheXx8Im5vbmUiPT10aGlzLmdldFN0eWxlKGUsImRpc3BsYXkiKX0sdW5p
cXVlSWQ6ZnVuY3Rpb24oZSl7cmV0dXJuKGU/ZToibWNlXyIpK3RoaXMuY291bnRlcisrfSxzZXRI
VE1MOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gbi5ydW4oZSxmdW5jdGlvbihlKXtp
Zih2KXtmb3IoO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO3RyeXtl
LmlubmVySFRNTD0iPGJyIC8+Iit0LGUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKX1jYXRjaChy
KXt2YXIgaT1uLmNyZWF0ZSgiZGl2Iik7aS5pbm5lckhUTUw9IjxiciAvPiIrdCxkKHAoaS5jaGls
ZE5vZGVzKSxmdW5jdGlvbih0LG4pe24mJmUuY2FuSGF2ZUhUTUwmJmUuYXBwZW5kQ2hpbGQodCl9
KX19ZWxzZSBlLmlubmVySFRNTD10O3JldHVybiB0fSl9LGdldE91dGVySFRNTDpmdW5jdGlvbihl
KXt2YXIgdCxuPXRoaXM7cmV0dXJuKGU9bi5nZXQoZSkpPzE9PT1lLm5vZGVUeXBlJiZuLmhhc091
dGVySFRNTD9lLm91dGVySFRNTDoodD0oZS5vd25lckRvY3VtZW50fHxuLmRvYykuY3JlYXRlRWxl
bWVudCgiYm9keSIpLHQuYXBwZW5kQ2hpbGQoZS5jbG9uZU5vZGUoITApKSx0LmlubmVySFRNTCk6
bnVsbH0sc2V0T3V0ZXJIVE1MOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzO3JldHVybiByLnJ1
bihlLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGkoKXt2YXIgaSxvO2ZvcihvPW4uY3JlYXRlRWxlbWVu
dCgiYm9keSIpLG8uaW5uZXJIVE1MPXQsaT1vLmxhc3RDaGlsZDtpOylyLmluc2VydEFmdGVyKGku
Y2xvbmVOb2RlKCEwKSxlKSxpPWkucHJldmlvdXNTaWJsaW5nO3IucmVtb3ZlKGUpfWlmKDE9PWUu
bm9kZVR5cGUpaWYobj1ufHxlLm93bmVyRG9jdW1lbnR8fHIuZG9jLHYpdHJ5ezE9PWUubm9kZVR5
cGUmJnIuaGFzT3V0ZXJIVE1MP2Uub3V0ZXJIVE1MPXQ6aSgpfWNhdGNoKG8pe2koKX1lbHNlIGko
KX0pfSxkZWNvZGU6YS5kZWNvZGUsZW5jb2RlOmEuZW5jb2RlQWxsUmF3LGluc2VydEFmdGVyOmZ1
bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dGhpcy5nZXQodCksdGhpcy5ydW4oZSxmdW5jdGlvbihlKXt2
YXIgbixyO3JldHVybiBuPXQucGFyZW50Tm9kZSxyPXQubmV4dFNpYmxpbmcscj9uLmluc2VydEJl
Zm9yZShlLHIpOm4uYXBwZW5kQ2hpbGQoZSksZX0pfSxyZXBsYWNlOmZ1bmN0aW9uKGUsdCxuKXt2
YXIgcj10aGlzO3JldHVybiByLnJ1bih0LGZ1bmN0aW9uKHQpe3JldHVybiBmKHQsImFycmF5Iikm
JihlPWUuY2xvbmVOb2RlKCEwKSksbiYmZChwKHQuY2hpbGROb2RlcyksZnVuY3Rpb24odCl7ZS5h
cHBlbmRDaGlsZCh0KX0pLHQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoZSx0KX0pfSxyZW5hbWU6
ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI7cmV0dXJuIGUubm9kZU5hbWUhPXQudG9VcHBlckNh
c2UoKSYmKHI9bi5jcmVhdGUodCksZChuLmdldEF0dHJpYnMoZSksZnVuY3Rpb24odCl7bi5zZXRB
dHRyaWIocix0Lm5vZGVOYW1lLG4uZ2V0QXR0cmliKGUsdC5ub2RlTmFtZSkpfSksbi5yZXBsYWNl
KHIsZSwxKSkscnx8ZX0sZmluZENvbW1vbkFuY2VzdG9yOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBu
PWUscjtuOyl7Zm9yKHI9dDtyJiZuIT1yOylyPXIucGFyZW50Tm9kZTtpZihuPT1yKWJyZWFrO249
bi5wYXJlbnROb2RlfXJldHVybiFuJiZlLm93bmVyRG9jdW1lbnQ/ZS5vd25lckRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDpufSx0b0hleDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zdHlsZXMudG9I
ZXgobC50cmltKGUpKX0scnVuOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzLGk7cmV0dXJuInN0
cmluZyI9PXR5cGVvZiBlJiYoZT1yLmdldChlKSksZT8obj1ufHx0aGlzLGUubm9kZVR5cGV8fCFl
Lmxlbmd0aCYmMCE9PWUubGVuZ3RoP3QuY2FsbChuLGUpOihpPVtdLGQoZSxmdW5jdGlvbihlLG8p
e2UmJigic3RyaW5nIj09dHlwZW9mIGUmJihlPXIuZ2V0KGUpKSxpLnB1c2godC5jYWxsKG4sZSxv
KSkpfSksaSkpOiExfSxnZXRBdHRyaWJzOmZ1bmN0aW9uKGUpe3ZhciB0O2lmKGU9dGhpcy5nZXQo
ZSksIWUpcmV0dXJuW107aWYodil7aWYodD1bXSwiT0JKRUNUIj09ZS5ub2RlTmFtZSlyZXR1cm4g
ZS5hdHRyaWJ1dGVzOyJPUFRJT04iPT09ZS5ub2RlTmFtZSYmdGhpcy5nZXRBdHRyaWIoZSwic2Vs
ZWN0ZWQiKSYmdC5wdXNoKHtzcGVjaWZpZWQ6MSxub2RlTmFtZToic2VsZWN0ZWQifSk7dmFyIG49
LzxcLz9bXHc6XC1dKyA/fD1bXCJdW15cIl0rXCJ8PVwnW15cJ10rXCd8PVtcd1wtXSt8Pi9naTty
ZXR1cm4gZS5jbG9uZU5vZGUoITEpLm91dGVySFRNTC5yZXBsYWNlKG4sIiIpLnJlcGxhY2UoL1tc
dzpcLV0rL2dpLGZ1bmN0aW9uKGUpe3QucHVzaCh7c3BlY2lmaWVkOjEsbm9kZU5hbWU6ZX0pfSks
dH1yZXR1cm4gZS5hdHRyaWJ1dGVzfSxpc0VtcHR5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxy
LG8sYSxzLGwsYz0wO2lmKGU9ZS5maXJzdENoaWxkKXtzPW5ldyBpKGUsZS5wYXJlbnROb2RlKSx0
PXR8fG4uc2NoZW1hP24uc2NoZW1hLmdldE5vbkVtcHR5RWxlbWVudHMoKTpudWxsO2Rve2lmKGE9
ZS5ub2RlVHlwZSwxPT09YSl7aWYoZS5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLWJvZ3VzIikpY29u
dGludWU7aWYobD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksdCYmdFtsXSl7aWYoImJyIj09PWwp
e2MrKztjb250aW51ZX1yZXR1cm4hMX1mb3Iobz1uLmdldEF0dHJpYnMoZSkscj1vLmxlbmd0aDty
LS07KWlmKGw9b1tyXS5ub2RlTmFtZSwibmFtZSI9PT1sfHwiZGF0YS1tY2UtYm9va21hcmsiPT09
bClyZXR1cm4hMX1pZig4PT1hKXJldHVybiExO2lmKDM9PT1hJiYhYi50ZXN0KGUubm9kZVZhbHVl
KSlyZXR1cm4hMX13aGlsZShlPXMubmV4dCgpKX1yZXR1cm4gMT49Y30sY3JlYXRlUm5nOmZ1bmN0
aW9uKCl7dmFyIGU9dGhpcy5kb2M7cmV0dXJuIGUuY3JlYXRlUmFuZ2U/ZS5jcmVhdGVSYW5nZSgp
Om5ldyBvKHRoaXMpfSxub2RlSW5kZXg6ZnVuY3Rpb24oZSx0KXt2YXIgbj0wLHIsaTtpZihlKWZv
cihyPWUubm9kZVR5cGUsZT1lLnByZXZpb3VzU2libGluZztlO2U9ZS5wcmV2aW91c1NpYmxpbmcp
aT1lLm5vZGVUeXBlLCghdHx8MyE9aXx8aSE9ciYmZS5ub2RlVmFsdWUubGVuZ3RoKSYmKG4rKyxy
PWkpO3JldHVybiBufSxzcGxpdDpmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihlKXtmdW5jdGlv
biB0KGUpe3ZhciB0PWUucHJldmlvdXNTaWJsaW5nJiYiU1BBTiI9PWUucHJldmlvdXNTaWJsaW5n
Lm5vZGVOYW1lLG49ZS5uZXh0U2libGluZyYmIlNQQU4iPT1lLm5leHRTaWJsaW5nLm5vZGVOYW1l
O3JldHVybiB0JiZufXZhciBuLG89ZS5jaGlsZE5vZGVzLGE9ZS5ub2RlVHlwZTtpZigxIT1hfHwi
Ym9va21hcmsiIT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtdHlwZSIpKXtmb3Iobj1vLmxlbmd0
aC0xO24+PTA7bi0tKXIob1tuXSk7aWYoOSE9YSl7aWYoMz09YSYmZS5ub2RlVmFsdWUubGVuZ3Ro
PjApe3ZhciBzPWgoZS5ub2RlVmFsdWUpLmxlbmd0aDtpZighaS5pc0Jsb2NrKGUucGFyZW50Tm9k
ZSl8fHM+MHx8MD09PXMmJnQoZSkpcmV0dXJufWVsc2UgaWYoMT09YSYmKG89ZS5jaGlsZE5vZGVz
LDE9PW8ubGVuZ3RoJiZvWzBdJiYxPT1vWzBdLm5vZGVUeXBlJiYiYm9va21hcmsiPT1vWzBdLmdl
dEF0dHJpYnV0ZSgiZGF0YS1tY2UtdHlwZSIpJiZlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG9b
MF0sZSksby5sZW5ndGh8fC9eKGJyfGhyfGlucHV0fGltZykkL2kudGVzdChlLm5vZGVOYW1lKSkp
cmV0dXJuO2kucmVtb3ZlKGUpfXJldHVybiBlfX12YXIgaT10aGlzLG89aS5jcmVhdGVSbmcoKSxh
LHMsbDtyZXR1cm4gZSYmdD8oby5zZXRTdGFydChlLnBhcmVudE5vZGUsaS5ub2RlSW5kZXgoZSkp
LG8uc2V0RW5kKHQucGFyZW50Tm9kZSxpLm5vZGVJbmRleCh0KSksYT1vLmV4dHJhY3RDb250ZW50
cygpLG89aS5jcmVhdGVSbmcoKSxvLnNldFN0YXJ0KHQucGFyZW50Tm9kZSxpLm5vZGVJbmRleCh0
KSsxKSxvLnNldEVuZChlLnBhcmVudE5vZGUsaS5ub2RlSW5kZXgoZSkrMSkscz1vLmV4dHJhY3RD
b250ZW50cygpLGw9ZS5wYXJlbnROb2RlLGwuaW5zZXJ0QmVmb3JlKHIoYSksZSksbj9sLnJlcGxh
Y2VDaGlsZChuLHQpOmwuaW5zZXJ0QmVmb3JlKHQsZSksbC5pbnNlcnRCZWZvcmUocihzKSxlKSxp
LnJlbW92ZShlKSxufHx0KTp2b2lkIDB9LGJpbmQ6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dGhp
cztpZihsLmlzQXJyYXkoZSkpe2Zvcih2YXIgbz1lLmxlbmd0aDtvLS07KWVbb109aS5iaW5kKGVb
b10sdCxuLHIpO3JldHVybiBlfXJldHVybiFpLnNldHRpbmdzLmNvbGxlY3R8fGUhPT1pLmRvYyYm
ZSE9PWkud2lufHxpLmJvdW5kRXZlbnRzLnB1c2goW2UsdCxuLHJdKSxpLmV2ZW50cy5iaW5kKGUs
dCxuLHJ8fGkpfSx1bmJpbmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMsaTtpZihsLmlzQXJy
YXkoZSkpe2ZvcihpPWUubGVuZ3RoO2ktLTspZVtpXT1yLnVuYmluZChlW2ldLHQsbik7cmV0dXJu
IGV9aWYoci5ib3VuZEV2ZW50cyYmKGU9PT1yLmRvY3x8ZT09PXIud2luKSlmb3IoaT1yLmJvdW5k
RXZlbnRzLmxlbmd0aDtpLS07KXt2YXIgbz1yLmJvdW5kRXZlbnRzW2ldO2UhPW9bMF18fHQmJnQh
PW9bMV18fG4mJm4hPW9bMl18fHRoaXMuZXZlbnRzLnVuYmluZChvWzBdLG9bMV0sb1syXSl9cmV0
dXJuIHRoaXMuZXZlbnRzLnVuYmluZChlLHQsbil9LGZpcmU6ZnVuY3Rpb24oZSx0LG4pe3JldHVy
biB0aGlzLmV2ZW50cy5maXJlKGUsdCxuKX0sZ2V0Q29udGVudEVkaXRhYmxlOmZ1bmN0aW9uKGUp
e3ZhciB0O3JldHVybiBlJiYxPT1lLm5vZGVUeXBlPyh0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1j
ZS1jb250ZW50ZWRpdGFibGUiKSx0JiYiaW5oZXJpdCIhPT10P3Q6ImluaGVyaXQiIT09ZS5jb250
ZW50RWRpdGFibGU/ZS5jb250ZW50RWRpdGFibGU6bnVsbCk6bnVsbH0sZ2V0Q29udGVudEVkaXRh
YmxlUGFyZW50OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLmdldFJvb3QoKSxuPW51bGw7ZSYm
ZSE9PXQmJihuPXRoaXMuZ2V0Q29udGVudEVkaXRhYmxlKGUpLG51bGw9PT1uKTtlPWUucGFyZW50
Tm9kZSk7cmV0dXJuIG59LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHQuYm91bmRF
dmVudHMpe2Zvcih2YXIgbj10LmJvdW5kRXZlbnRzLmxlbmd0aDtuLS07KXt2YXIgcj10LmJvdW5k
RXZlbnRzW25dOwordGhpcy5ldmVudHMudW5iaW5kKHJbMF0sclsxXSxyWzJdKX10LmJvdW5kRXZl
bnRzPW51bGx9ZS5zZXREb2N1bWVudCYmZS5zZXREb2N1bWVudCgpLHQud2luPXQuZG9jPXQucm9v
dD10LmV2ZW50cz10LmZyYWc9bnVsbH0saXNDaGlsZE9mOmZ1bmN0aW9uKGUsdCl7Zm9yKDtlOyl7
aWYodD09PWUpcmV0dXJuITA7ZT1lLnBhcmVudE5vZGV9cmV0dXJuITF9LGR1bXBSbmc6ZnVuY3Rp
b24oZSl7cmV0dXJuInN0YXJ0Q29udGFpbmVyOiAiK2Uuc3RhcnRDb250YWluZXIubm9kZU5hbWUr
Iiwgc3RhcnRPZmZzZXQ6ICIrZS5zdGFydE9mZnNldCsiLCBlbmRDb250YWluZXI6ICIrZS5lbmRD
b250YWluZXIubm9kZU5hbWUrIiwgZW5kT2Zmc2V0OiAiK2UuZW5kT2Zmc2V0fSxfZmluZFNpYjpm
dW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcyxpPXQ7aWYoZSlmb3IoInN0cmluZyI9PXR5cGVvZiBp
JiYoaT1mdW5jdGlvbihlKXtyZXR1cm4gci5pcyhlLHQpfSksZT1lW25dO2U7ZT1lW25dKWlmKGko
ZSkpcmV0dXJuIGU7cmV0dXJuIG51bGx9fSx1LkRPTT1uZXcgdShkb2N1bWVudCksdX0pLHIoYixb
eSxwXSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXtmdW5jdGlvbiBlKGUsdCl7ZnVuY3Rpb24g
bigpe28ucmVtb3ZlKHMpLGEmJihhLm9ucmVhZHlzdGF0ZWNoYW5nZT1hLm9ubG9hZD1hPW51bGwp
LHQoKX1mdW5jdGlvbiBpKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLmxv
ZyYmY29uc29sZS5sb2coIkZhaWxlZCB0byBsb2FkOiAiK2UpfXZhciBvPXIsYSxzO3M9by51bmlx
dWVJZCgpLGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksYS5pZD1zLGEudHlwZT0i
dGV4dC9qYXZhc2NyaXB0IixhLnNyYz1lLCJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gYT9hLm9ucmVh
ZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpey9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYS5yZWFkeVN0
YXRlKSYmbigpfTphLm9ubG9hZD1uLGEub25lcnJvcj1pLChkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiaGVhZCIpWzBdfHxkb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZChhKX12YXIgdD0w
LG49MSxhPTIscz17fSxsPVtdLGM9e30sdT1bXSxkPTAsZjt0aGlzLmlzRG9uZT1mdW5jdGlvbihl
KXtyZXR1cm4gc1tlXT09YX0sdGhpcy5tYXJrRG9uZT1mdW5jdGlvbihlKXtzW2VdPWF9LHRoaXMu
YWRkPXRoaXMubG9hZD1mdW5jdGlvbihlLG4scil7dmFyIGk9c1tlXTtpPT1mJiYobC5wdXNoKGUp
LHNbZV09dCksbiYmKGNbZV18fChjW2VdPVtdKSxjW2VdLnB1c2goe2Z1bmM6bixzY29wZTpyfHx0
aGlzfSkpfSx0aGlzLmxvYWRRdWV1ZT1mdW5jdGlvbihlLHQpe3RoaXMubG9hZFNjcmlwdHMobCxl
LHQpfSx0aGlzLmxvYWRTY3JpcHRzPWZ1bmN0aW9uKHQscixsKXtmdW5jdGlvbiBwKGUpe2koY1tl
XSxmdW5jdGlvbihlKXtlLmZ1bmMuY2FsbChlLnNjb3BlKX0pLGNbZV09Zn12YXIgaDt1LnB1c2go
e2Z1bmM6cixzY29wZTpsfHx0aGlzfSksKGg9ZnVuY3Rpb24oKXt2YXIgcj1vKHQpO3QubGVuZ3Ro
PTAsaShyLGZ1bmN0aW9uKHQpe3JldHVybiBzW3RdPT1hP3ZvaWQgcCh0KTp2b2lkKHNbdF0hPW4m
JihzW3RdPW4sZCsrLGUodCxmdW5jdGlvbigpe3NbdF09YSxkLS0scCh0KSxoKCl9KSkpfSksZHx8
KGkodSxmdW5jdGlvbihlKXtlLmZ1bmMuY2FsbChlLnNjb3BlKX0pLHUubGVuZ3RoPTApfSkoKX19
dmFyIHI9ZS5ET00saT10LmVhY2gsbz10LmdyZXA7cmV0dXJuIG4uU2NyaXB0TG9hZGVyPW5ldyBu
LG59KSxyKEMsW2IscF0sZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiByKCl7dmFyIGU9dGhpcztlLml0
ZW1zPVtdLGUudXJscz17fSxlLmxvb2t1cD17fX12YXIgaT1uLmVhY2g7cmV0dXJuIHIucHJvdG90
eXBlPXtnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubG9va3VwW2VdP3RoaXMubG9va3VwW2Vd
Lmluc3RhbmNlOnR9LGRlcGVuZGVuY2llczpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpcy5s
b29rdXBbZV0mJih0PXRoaXMubG9va3VwW2VdLmRlcGVuZGVuY2llcyksdHx8W119LHJlcXVpcmVM
YW5nUGFjazpmdW5jdGlvbih0LG4pe3ZhciBpPXIubGFuZ3VhZ2U7aWYoaSYmci5sYW5ndWFnZUxv
YWQhPT0hMSl7aWYobilpZihuPSIsIituKyIsIiwtMSE9bi5pbmRleE9mKCIsIitpLnN1YnN0cigw
LDIpKyIsIikpaT1pLnN1YnN0cigwLDIpO2Vsc2UgaWYoLTE9PW4uaW5kZXhPZigiLCIraSsiLCIp
KXJldHVybjtlLlNjcmlwdExvYWRlci5hZGQodGhpcy51cmxzW3RdKyIvbGFuZ3MvIitpKyIuanMi
KX19LGFkZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuaXRlbXMucHVzaCh0KSx0aGlzLmxv
b2t1cFtlXT17aW5zdGFuY2U6dCxkZXBlbmRlbmNpZXM6bn0sdH0sY3JlYXRlVXJsOmZ1bmN0aW9u
KGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P3Q6e3ByZWZpeDplLnByZWZpeCxyZXNvdXJj
ZTp0LHN1ZmZpeDplLnN1ZmZpeH19LGFkZENvbXBvbmVudHM6ZnVuY3Rpb24odCxuKXt2YXIgcj10
aGlzLnVybHNbdF07aShuLGZ1bmN0aW9uKHQpe2UuU2NyaXB0TG9hZGVyLmFkZChyKyIvIit0KX0p
fSxsb2FkOmZ1bmN0aW9uKG4sbyxhLHMpe2Z1bmN0aW9uIGwoKXt2YXIgcj1jLmRlcGVuZGVuY2ll
cyhuKTtpKHIsZnVuY3Rpb24oZSl7dmFyIG49Yy5jcmVhdGVVcmwobyxlKTtjLmxvYWQobi5yZXNv
dXJjZSxuLHQsdCl9KSxhJiZhLmNhbGwocz9zOmUpfXZhciBjPXRoaXMsdT1vO2MudXJsc1tuXXx8
KCJvYmplY3QiPT10eXBlb2YgbyYmKHU9by5wcmVmaXgrby5yZXNvdXJjZStvLnN1ZmZpeCksMCE9
PXUuaW5kZXhPZigiLyIpJiYtMT09dS5pbmRleE9mKCI6Ly8iKSYmKHU9ci5iYXNlVVJMKyIvIit1
KSxjLnVybHNbbl09dS5zdWJzdHJpbmcoMCx1Lmxhc3RJbmRleE9mKCIvIikpLGMubG9va3VwW25d
P2woKTplLlNjcmlwdExvYWRlci5hZGQodSxsLHMpKX19LHIuUGx1Z2luTWFuYWdlcj1uZXcgcixy
LlRoZW1lTWFuYWdlcj1uZXcgcixyfSkscih4LFtdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQs
bil7dmFyIHIsaSxvPW4/Imxhc3RDaGlsZCI6ImZpcnN0Q2hpbGQiLGE9bj8icHJldiI6Im5leHQi
O2lmKGVbb10pcmV0dXJuIGVbb107aWYoZSE9PXQpe2lmKHI9ZVthXSlyZXR1cm4gcjtmb3IoaT1l
LnBhcmVudDtpJiZpIT09dDtpPWkucGFyZW50KWlmKHI9aVthXSlyZXR1cm4gcn19ZnVuY3Rpb24g
dChlLHQpe3RoaXMubmFtZT1lLHRoaXMudHlwZT10LDE9PT10JiYodGhpcy5hdHRyaWJ1dGVzPVtd
LHRoaXMuYXR0cmlidXRlcy5tYXA9e30pfXZhciBuPS9eWyBcdFxyXG5dKiQvLHI9eyIjdGV4dCI6
MywiI2NvbW1lbnQiOjgsIiNjZGF0YSI6NCwiI3BpIjo3LCIjZG9jdHlwZSI6MTAsIiNkb2N1bWVu
dC1mcmFnbWVudCI6MTF9O3JldHVybiB0LnByb3RvdHlwZT17cmVwbGFjZTpmdW5jdGlvbihlKXt2
YXIgdD10aGlzO3JldHVybiBlLnBhcmVudCYmZS5yZW1vdmUoKSx0Lmluc2VydChlLHQpLHQucmVt
b3ZlKCksdH0sYXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscixpLG87aWYoInN0cmluZyIh
PXR5cGVvZiBlKXtmb3IoaSBpbiBlKW4uYXR0cihpLGVbaV0pO3JldHVybiBufWlmKHI9bi5hdHRy
aWJ1dGVzKXtpZih0IT09byl7aWYobnVsbD09PXQpe2lmKGUgaW4gci5tYXApZm9yKGRlbGV0ZSBy
Lm1hcFtlXSxpPXIubGVuZ3RoO2ktLTspaWYocltpXS5uYW1lPT09ZSlyZXR1cm4gcj1yLnNwbGlj
ZShpLDEpLG47cmV0dXJuIG59aWYoZSBpbiByLm1hcCl7Zm9yKGk9ci5sZW5ndGg7aS0tOylpZihy
W2ldLm5hbWU9PT1lKXtyW2ldLnZhbHVlPXQ7YnJlYWt9fWVsc2Ugci5wdXNoKHtuYW1lOmUsdmFs
dWU6dH0pO3JldHVybiByLm1hcFtlXT10LG59cmV0dXJuIHIubWFwW2VdfX0sY2xvbmU6ZnVuY3Rp
b24oKXt2YXIgZT10aGlzLG49bmV3IHQoZS5uYW1lLGUudHlwZSkscixpLG8sYSxzO2lmKG89ZS5h
dHRyaWJ1dGVzKXtmb3Iocz1bXSxzLm1hcD17fSxyPTAsaT1vLmxlbmd0aDtpPnI7cisrKWE9b1ty
XSwiaWQiIT09YS5uYW1lJiYoc1tzLmxlbmd0aF09e25hbWU6YS5uYW1lLHZhbHVlOmEudmFsdWV9
LHMubWFwW2EubmFtZV09YS52YWx1ZSk7bi5hdHRyaWJ1dGVzPXN9cmV0dXJuIG4udmFsdWU9ZS52
YWx1ZSxuLnNob3J0RW5kZWQ9ZS5zaG9ydEVuZGVkLG59LHdyYXA6ZnVuY3Rpb24oZSl7dmFyIHQ9
dGhpcztyZXR1cm4gdC5wYXJlbnQuaW5zZXJ0KGUsdCksZS5hcHBlbmQodCksdH0sdW53cmFwOmZ1
bmN0aW9uKCl7dmFyIGU9dGhpcyx0LG47Zm9yKHQ9ZS5maXJzdENoaWxkO3Q7KW49dC5uZXh0LGUu
aW5zZXJ0KHQsZSwhMCksdD1uO2UucmVtb3ZlKCl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciBlPXRo
aXMsdD1lLnBhcmVudCxuPWUubmV4dCxyPWUucHJldjtyZXR1cm4gdCYmKHQuZmlyc3RDaGlsZD09
PWU/KHQuZmlyc3RDaGlsZD1uLG4mJihuLnByZXY9bnVsbCkpOnIubmV4dD1uLHQubGFzdENoaWxk
PT09ZT8odC5sYXN0Q2hpbGQ9cixyJiYoci5uZXh0PW51bGwpKTpuLnByZXY9cixlLnBhcmVudD1l
Lm5leHQ9ZS5wcmV2PW51bGwpLGV9LGFwcGVuZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG47cmV0
dXJuIGUucGFyZW50JiZlLnJlbW92ZSgpLG49dC5sYXN0Q2hpbGQsbj8obi5uZXh0PWUsZS5wcmV2
PW4sdC5sYXN0Q2hpbGQ9ZSk6dC5sYXN0Q2hpbGQ9dC5maXJzdENoaWxkPWUsZS5wYXJlbnQ9dCxl
fSxpbnNlcnQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiBlLnBhcmVudCYmZS5yZW1vdmUo
KSxyPXQucGFyZW50fHx0aGlzLG4/KHQ9PT1yLmZpcnN0Q2hpbGQ/ci5maXJzdENoaWxkPWU6dC5w
cmV2Lm5leHQ9ZSxlLnByZXY9dC5wcmV2LGUubmV4dD10LHQucHJldj1lKToodD09PXIubGFzdENo
aWxkP3IubGFzdENoaWxkPWU6dC5uZXh0LnByZXY9ZSxlLm5leHQ9dC5uZXh0LGUucHJldj10LHQu
bmV4dD1lKSxlLnBhcmVudD1yLGV9LGdldEFsbDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLHIsaT1b
XTtmb3Iocj1uLmZpcnN0Q2hpbGQ7cjtyPWUocixuKSlyLm5hbWU9PT10JiZpLnB1c2gocik7cmV0
dXJuIGl9LGVtcHR5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuLHIsaTtpZih0LmZpcnN0Q2hpbGQp
e2ZvcihuPVtdLGk9dC5maXJzdENoaWxkO2k7aT1lKGksdCkpbi5wdXNoKGkpO2ZvcihyPW4ubGVu
Z3RoO3ItLTspaT1uW3JdLGkucGFyZW50PWkuZmlyc3RDaGlsZD1pLmxhc3RDaGlsZD1pLm5leHQ9
aS5wcmV2PW51bGx9cmV0dXJuIHQuZmlyc3RDaGlsZD10Lmxhc3RDaGlsZD1udWxsLHR9LGlzRW1w
dHk6ZnVuY3Rpb24odCl7dmFyIHI9dGhpcyxpPXIuZmlyc3RDaGlsZCxvLGE7aWYoaSlkb3tpZigx
PT09aS50eXBlKXtpZihpLmF0dHJpYnV0ZXMubWFwWyJkYXRhLW1jZS1ib2d1cyJdKWNvbnRpbnVl
O2lmKHRbaS5uYW1lXSlyZXR1cm4hMTtmb3Iobz1pLmF0dHJpYnV0ZXMubGVuZ3RoO28tLTspaWYo
YT1pLmF0dHJpYnV0ZXNbb10ubmFtZSwibmFtZSI9PT1hfHwwPT09YS5pbmRleE9mKCJkYXRhLW1j
ZS0iKSlyZXR1cm4hMX1pZig4PT09aS50eXBlKXJldHVybiExO2lmKDM9PT1pLnR5cGUmJiFuLnRl
c3QoaS52YWx1ZSkpcmV0dXJuITF9d2hpbGUoaT1lKGkscikpO3JldHVybiEwfSx3YWxrOmZ1bmN0
aW9uKHQpe3JldHVybiBlKHRoaXMsbnVsbCx0KX19LHQuY3JlYXRlPWZ1bmN0aW9uKGUsbil7dmFy
IGksbztpZihpPW5ldyB0KGUscltlXXx8MSksbilmb3IobyBpbiBuKWkuYXR0cihvLG5bb10pO3Jl
dHVybiBpfSx0fSkscih3LFtwXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsdCl7cmV0dXJuIGU/
ZS5zcGxpdCh0fHwiICIpOltdfWZ1bmN0aW9uIG4oZSl7ZnVuY3Rpb24gbihlLG4scil7ZnVuY3Rp
b24gaShlKXt2YXIgdD17fSxuLHI7Zm9yKG49MCxyPWUubGVuZ3RoO3I+bjtuKyspdFtlW25dXT17
fTtyZXR1cm4gdH12YXIgbyxsLGMsdT1hcmd1bWVudHM7Zm9yKHI9cnx8W10sbj1ufHwiIiwic3Ry
aW5nIj09dHlwZW9mIHImJihyPXQocikpLGw9MztsPHUubGVuZ3RoO2wrKykic3RyaW5nIj09dHlw
ZW9mIHVbbF0mJih1W2xdPXQodVtsXSkpLHIucHVzaC5hcHBseShyLHVbbF0pO2ZvcihlPXQoZSks
bz1lLmxlbmd0aDtvLS07KWM9W10uY29uY2F0KHMsdChuKSksYVtlW29dXT17YXR0cmlidXRlczpp
KGMpLGF0dHJpYnV0ZXNPcmRlcjpjLGNoaWxkcmVuOmkocil9fWZ1bmN0aW9uIGkoZSxuKXt2YXIg
cixpLG8scztmb3IoZT10KGUpLHI9ZS5sZW5ndGgsbj10KG4pO3ItLTspZm9yKGk9YVtlW3JdXSxv
PTAscz1uLmxlbmd0aDtzPm87bysrKWkuYXR0cmlidXRlc1tuW29dXT17fSxpLmF0dHJpYnV0ZXNP
cmRlci5wdXNoKG5bb10pfXZhciBhPXt9LHMsbCxjLHUsZCxmO3JldHVybiByW2VdP3JbZV06KHM9
dCgiaWQgYWNjZXNza2V5IGNsYXNzIGRpciBsYW5nIHN0eWxlIHRhYmluZGV4IHRpdGxlIiksbD10
KCJhZGRyZXNzIGJsb2NrcXVvdGUgZGl2IGRsIGZpZWxkc2V0IGZvcm0gaDEgaDIgaDMgaDQgaDUg
aDYgaHIgbWVudSBvbCBwIHByZSB0YWJsZSB1bCIpLGM9dCgiYSBhYmJyIGIgYmRvIGJyIGJ1dHRv
biBjaXRlIGNvZGUgZGVsIGRmbiBlbSBlbWJlZCBpIGlmcmFtZSBpbWcgaW5wdXQgaW5zIGtiZCBs
YWJlbCBtYXAgbm9zY3JpcHQgb2JqZWN0IHEgcyBzYW1wIHNjcmlwdCBzZWxlY3Qgc21hbGwgc3Bh
biBzdHJvbmcgc3ViIHN1cCB0ZXh0YXJlYSB1IHZhciAjdGV4dCAjY29tbWVudCIpLCJodG1sNCIh
PWUmJihzLnB1c2guYXBwbHkocyx0KCJjb250ZW50ZWRpdGFibGUgY29udGV4dG1lbnUgZHJhZ2dh
YmxlIGRyb3B6b25lIGhpZGRlbiBzcGVsbGNoZWNrIHRyYW5zbGF0ZSIpKSxsLnB1c2guYXBwbHko
bCx0KCJhcnRpY2xlIGFzaWRlIGRldGFpbHMgZGlhbG9nIGZpZ3VyZSBoZWFkZXIgZm9vdGVyIGhn
cm91cCBzZWN0aW9uIG5hdiIpKSxjLnB1c2guYXBwbHkoYyx0KCJhdWRpbyBjYW52YXMgY29tbWFu
ZCBkYXRhbGlzdCBtYXJrIG1ldGVyIG91dHB1dCBwcm9ncmVzcyB0aW1lIHdiciB2aWRlbyBydWJ5
IGJkaSBrZXlnZW4iKSkpLCJodG1sNS1zdHJpY3QiIT1lJiYocy5wdXNoKCJ4bWw6bGFuZyIpLGY9
dCgiYWNyb255bSBhcHBsZXQgYmFzZWZvbnQgYmlnIGZvbnQgc3RyaWtlIHR0IiksYy5wdXNoLmFw
cGx5KGMsZiksbyhmLGZ1bmN0aW9uKGUpe24oZSwiIixjKX0pLGQ9dCgiY2VudGVyIGRpciBpc2lu
ZGV4IG5vZnJhbWVzIiksbC5wdXNoLmFwcGx5KGwsZCksdT1bXS5jb25jYXQobCxjKSxvKGQsZnVu
Y3Rpb24oZSl7bihlLCIiLHUpfSkpLHU9dXx8W10uY29uY2F0KGwsYyksbigiaHRtbCIsIm1hbmlm
ZXN0IiwiaGVhZCBib2R5IiksbigiaGVhZCIsIiIsImJhc2UgY29tbWFuZCBsaW5rIG1ldGEgbm9z
Y3JpcHQgc2NyaXB0IHN0eWxlIHRpdGxlIiksbigidGl0bGUgaHIgbm9zY3JpcHQgYnIiKSxuKCJi
YXNlIiwiaHJlZiB0YXJnZXQiKSxuKCJsaW5rIiwiaHJlZiByZWwgbWVkaWEgaHJlZmxhbmcgdHlw
ZSBzaXplcyBocmVmbGFuZyIpLG4oIm1ldGEiLCJuYW1lIGh0dHAtZXF1aXYgY29udGVudCBjaGFy
c2V0Iiksbigic3R5bGUiLCJtZWRpYSB0eXBlIHNjb3BlZCIpLG4oInNjcmlwdCIsInNyYyBhc3lu
YyBkZWZlciB0eXBlIGNoYXJzZXQiKSxuKCJib2R5Iiwib25hZnRlcnByaW50IG9uYmVmb3JlcHJp
bnQgb25iZWZvcmV1bmxvYWQgb25ibHVyIG9uZXJyb3Igb25mb2N1cyBvbmhhc2hjaGFuZ2Ugb25s
b2FkIG9ubWVzc2FnZSBvbm9mZmxpbmUgb25vbmxpbmUgb25wYWdlaGlkZSBvbnBhZ2VzaG93IG9u
cG9wc3RhdGUgb25yZXNpemUgb25zY3JvbGwgb25zdG9yYWdlIG9udW5sb2FkIix1KSxuKCJhZGRy
ZXNzIGR0IGRkIGRpdiBjYXB0aW9uIiwiIix1KSxuKCJoMSBoMiBoMyBoNCBoNSBoNiBwcmUgcCBh
YmJyIGNvZGUgdmFyIHNhbXAga2JkIHN1YiBzdXAgaSBiIHUgYmRvIHNwYW4gbGVnZW5kIGVtIHN0
cm9uZyBzbWFsbCBzIGNpdGUgZGZuIiwiIixjKSxuKCJibG9ja3F1b3RlIiwiY2l0ZSIsdSksbigi
b2wiLCJyZXZlcnNlZCBzdGFydCB0eXBlIiwibGkiKSxuKCJ1bCIsIiIsImxpIiksbigibGkiLCJ2
YWx1ZSIsdSksbigiZGwiLCIiLCJkdCBkZCIpLG4oImEiLCJocmVmIHRhcmdldCByZWwgbWVkaWEg
aHJlZmxhbmcgdHlwZSIsYyksbigicSIsImNpdGUiLGMpLG4oImlucyBkZWwiLCJjaXRlIGRhdGV0
aW1lIix1KSxuKCJpbWciLCJzcmMgYWx0IHVzZW1hcCBpc21hcCB3aWR0aCBoZWlnaHQiKSxuKCJp
ZnJhbWUiLCJzcmMgbmFtZSB3aWR0aCBoZWlnaHQiLHUpLG4oImVtYmVkIiwic3JjIHR5cGUgd2lk
dGggaGVpZ2h0Iiksbigib2JqZWN0IiwiZGF0YSB0eXBlIHR5cGVtdXN0bWF0Y2ggbmFtZSB1c2Vt
YXAgZm9ybSB3aWR0aCBoZWlnaHQiLHUsInBhcmFtIiksbigicGFyYW0iLCJuYW1lIHZhbHVlIiks
bigibWFwIiwibmFtZSIsdSwiYXJlYSIpLG4oImFyZWEiLCJhbHQgY29vcmRzIHNoYXBlIGhyZWYg
dGFyZ2V0IHJlbCBtZWRpYSBocmVmbGFuZyB0eXBlIiksbigidGFibGUiLCJib3JkZXIiLCJjYXB0
aW9uIGNvbGdyb3VwIHRoZWFkIHRmb290IHRib2R5IHRyIisoImh0bWw0Ij09ZT8iIGNvbCI6IiIp
KSxuKCJjb2xncm91cCIsInNwYW4iLCJjb2wiKSxuKCJjb2wiLCJzcGFuIiksbigidGJvZHkgdGhl
YWQgdGZvb3QiLCIiLCJ0ciIpLG4oInRyIiwiIiwidGQgdGgiKSxuKCJ0ZCIsImNvbHNwYW4gcm93
c3BhbiBoZWFkZXJzIix1KSxuKCJ0aCIsImNvbHNwYW4gcm93c3BhbiBoZWFkZXJzIHNjb3BlIGFi
YnIiLHUpLG4oImZvcm0iLCJhY2NlcHQtY2hhcnNldCBhY3Rpb24gYXV0b2NvbXBsZXRlIGVuY3R5
cGUgbWV0aG9kIG5hbWUgbm92YWxpZGF0ZSB0YXJnZXQiLHUpLG4oImZpZWxkc2V0IiwiZGlzYWJs
ZWQgZm9ybSBuYW1lIix1LCJsZWdlbmQiKSxuKCJsYWJlbCIsImZvcm0gZm9yIixjKSxuKCJpbnB1
dCIsImFjY2VwdCBhbHQgYXV0b2NvbXBsZXRlIGNoZWNrZWQgZGlybmFtZSBkaXNhYmxlZCBmb3Jt
IGZvcm1hY3Rpb24gZm9ybWVuY3R5cGUgZm9ybW1ldGhvZCBmb3Jtbm92YWxpZGF0ZSBmb3JtdGFy
Z2V0IGhlaWdodCBsaXN0IG1heCBtYXhsZW5ndGggbWluIG11bHRpcGxlIG5hbWUgcGF0dGVybiBy
ZWFkb25seSByZXF1aXJlZCBzaXplIHNyYyBzdGVwIHR5cGUgdmFsdWUgd2lkdGgiKSxuKCJidXR0
b24iLCJkaXNhYmxlZCBmb3JtIGZvcm1hY3Rpb24gZm9ybWVuY3R5cGUgZm9ybW1ldGhvZCBmb3Jt
bm92YWxpZGF0ZSBmb3JtdGFyZ2V0IG5hbWUgdHlwZSB2YWx1ZSIsImh0bWw0Ij09ZT91OmMpLG4o
InNlbGVjdCIsImRpc2FibGVkIGZvcm0gbXVsdGlwbGUgbmFtZSByZXF1aXJlZCBzaXplIiwib3B0
aW9uIG9wdGdyb3VwIiksbigib3B0Z3JvdXAiLCJkaXNhYmxlZCBsYWJlbCIsIm9wdGlvbiIpLG4o
Im9wdGlvbiIsImRpc2FibGVkIGxhYmVsIHNlbGVjdGVkIHZhbHVlIiksbigidGV4dGFyZWEiLCJj
b2xzIGRpcm5hbWUgZGlzYWJsZWQgZm9ybSBtYXhsZW5ndGggbmFtZSByZWFkb25seSByZXF1aXJl
ZCByb3dzIHdyYXAiKSxuKCJtZW51IiwidHlwZSBsYWJlbCIsdSwibGkiKSxuKCJub3NjcmlwdCIs
IiIsdSksImh0bWw0IiE9ZSYmKG4oIndiciIpLG4oInJ1YnkiLCIiLGMsInJ0IHJwIiksbigiZmln
Y2FwdGlvbiIsIiIsdSksbigibWFyayBydCBycCBzdW1tYXJ5IGJkaSIsIiIsYyksbigiY2FudmFz
Iiwid2lkdGggaGVpZ2h0Iix1KSxuKCJ2aWRlbyIsInNyYyBjcm9zc29yaWdpbiBwb3N0ZXIgcHJl
bG9hZCBhdXRvcGxheSBtZWRpYWdyb3VwIGxvb3AgbXV0ZWQgY29udHJvbHMgd2lkdGggaGVpZ2h0
IGJ1ZmZlcmVkIix1LCJ0cmFjayBzb3VyY2UiKSxuKCJhdWRpbyIsInNyYyBjcm9zc29yaWdpbiBw
cmVsb2FkIGF1dG9wbGF5IG1lZGlhZ3JvdXAgbG9vcCBtdXRlZCBjb250cm9scyBidWZmZXJlZCB2
b2x1bWUiLHUsInRyYWNrIHNvdXJjZSIpLG4oInNvdXJjZSIsInNyYyB0eXBlIG1lZGlhIiksbigi
dHJhY2siLCJraW5kIHNyYyBzcmNsYW5nIGxhYmVsIGRlZmF1bHQiKSxuKCJkYXRhbGlzdCIsIiIs
Yywib3B0aW9uIiksbigiYXJ0aWNsZSBzZWN0aW9uIG5hdiBhc2lkZSBoZWFkZXIgZm9vdGVyIiwi
Iix1KSxuKCJoZ3JvdXAiLCIiLCJoMSBoMiBoMyBoNCBoNSBoNiIpLG4oImZpZ3VyZSIsIiIsdSwi
ZmlnY2FwdGlvbiIpLG4oInRpbWUiLCJkYXRldGltZSIsYyksbigiZGlhbG9nIiwib3BlbiIsdSks
bigiY29tbWFuZCIsInR5cGUgbGFiZWwgaWNvbiBkaXNhYmxlZCBjaGVja2VkIHJhZGlvZ3JvdXAg
Y29tbWFuZCIpLG4oIm91dHB1dCIsImZvciBmb3JtIG5hbWUiLGMpLG4oInByb2dyZXNzIiwidmFs
dWUgbWF4IixjKSxuKCJtZXRlciIsInZhbHVlIG1pbiBtYXggbG93IGhpZ2ggb3B0aW11bSIsYyks
bigiZGV0YWlscyIsIm9wZW4iLHUsInN1bW1hcnkiKSxuKCJrZXlnZW4iLCJhdXRvZm9jdXMgY2hh
bGxlbmdlIGRpc2FibGVkIGZvcm0ga2V5dHlwZSBuYW1lIikpLCJodG1sNS1zdHJpY3QiIT1lJiYo
aSgic2NyaXB0IiwibGFuZ3VhZ2UgeG1sOnNwYWNlIiksaSgic3R5bGUiLCJ4bWw6c3BhY2UiKSxp
KCJvYmplY3QiLCJkZWNsYXJlIGNsYXNzaWQgY29kZWJhc2UgY29kZXR5cGUgYXJjaGl2ZSBzdGFu
ZGJ5IGFsaWduIGJvcmRlciBoc3BhY2UgdnNwYWNlIiksaSgicGFyYW0iLCJ2YWx1ZXR5cGUgdHlw
ZSIpLGkoImEiLCJjaGFyc2V0IG5hbWUgcmV2IHNoYXBlIGNvb3JkcyIpLGkoImJyIiwiY2xlYXIi
KSxpKCJhcHBsZXQiLCJjb2RlYmFzZSBhcmNoaXZlIGNvZGUgb2JqZWN0IGFsdCBuYW1lIHdpZHRo
IGhlaWdodCBhbGlnbiBoc3BhY2UgdnNwYWNlIiksaSgiaW1nIiwibmFtZSBsb25nZGVzYyBhbGln
biBib3JkZXIgaHNwYWNlIHZzcGFjZSIpLGkoImlmcmFtZSIsImxvbmdkZXNjIGZyYW1lYm9yZGVy
IG1hcmdpbndpZHRoIG1hcmdpbmhlaWdodCBzY3JvbGxpbmcgYWxpZ24iKSxpKCJmb250IGJhc2Vm
b250Iiwic2l6ZSBjb2xvciBmYWNlIiksaSgiaW5wdXQiLCJ1c2VtYXAgYWxpZ24iKSxpKCJzZWxl
Y3QiLCJvbmNoYW5nZSIpLGkoInRleHRhcmVhIiksaSgiaDEgaDIgaDMgaDQgaDUgaDYgZGl2IHAg
bGVnZW5kIGNhcHRpb24iLCJhbGlnbiIpLGkoInVsIiwidHlwZSBjb21wYWN0IiksaSgibGkiLCJ0
eXBlIiksaSgib2wgZGwgbWVudSBkaXIiLCJjb21wYWN0IiksaSgicHJlIiwid2lkdGggeG1sOnNw
YWNlIiksaSgiaHIiLCJhbGlnbiBub3NoYWRlIHNpemUgd2lkdGgiKSxpKCJpc2luZGV4IiwicHJv
bXB0IiksaSgidGFibGUiLCJzdW1tYXJ5IHdpZHRoIGZyYW1lIHJ1bGVzIGNlbGxzcGFjaW5nIGNl
bGxwYWRkaW5nIGFsaWduIGJnY29sb3IiKSxpKCJjb2wiLCJ3aWR0aCBhbGlnbiBjaGFyIGNoYXJv
ZmYgdmFsaWduIiksaSgiY29sZ3JvdXAiLCJ3aWR0aCBhbGlnbiBjaGFyIGNoYXJvZmYgdmFsaWdu
IiksaSgidGhlYWQiLCJhbGlnbiBjaGFyIGNoYXJvZmYgdmFsaWduIiksaSgidHIiLCJhbGlnbiBj
aGFyIGNoYXJvZmYgdmFsaWduIGJnY29sb3IiKSxpKCJ0aCIsImF4aXMgYWxpZ24gY2hhciBjaGFy
b2ZmIHZhbGlnbiBub3dyYXAgYmdjb2xvciB3aWR0aCBoZWlnaHQiKSxpKCJmb3JtIiwiYWNjZXB0
IiksaSgidGQiLCJhYmJyIGF4aXMgc2NvcGUgYWxpZ24gY2hhciBjaGFyb2ZmIHZhbGlnbiBub3dy
YXAgYmdjb2xvciB3aWR0aCBoZWlnaHQiKSxpKCJ0Zm9vdCIsImFsaWduIGNoYXIgY2hhcm9mZiB2
YWxpZ24iKSxpKCJ0Ym9keSIsImFsaWduIGNoYXIgY2hhcm9mZiB2YWxpZ24iKSxpKCJhcmVhIiwi
bm9ocmVmIiksaSgiYm9keSIsImJhY2tncm91bmQgYmdjb2xvciB0ZXh0IGxpbmsgdmxpbmsgYWxp
bmsiKSksImh0bWw0IiE9ZSYmKGkoImlucHV0IGJ1dHRvbiBzZWxlY3QgdGV4dGFyZWEiLCJhdXRv
Zm9jdXMiKSxpKCJpbnB1dCB0ZXh0YXJlYSIsInBsYWNlaG9sZGVyIiksaSgiYSIsImRvd25sb2Fk
IiksaSgibGluayBzY3JpcHQgaW1nIiwiY3Jvc3NvcmlnaW4iKSxpKCJpZnJhbWUiLCJzYW5kYm94
IHNlYW1sZXNzIGFsbG93ZnVsbHNjcmVlbiIpKSxvKHQoImEgZm9ybSBtZXRlciBwcm9ncmVzcyBk
Zm4iKSxmdW5jdGlvbihlKXthW2VdJiZkZWxldGUgYVtlXS5jaGlsZHJlbltlXX0pLGRlbGV0ZSBh
LmNhcHRpb24uY2hpbGRyZW4udGFibGUscltlXT1hLGEpfXZhciByPXt9LGk9ZS5tYWtlTWFwLG89
ZS5lYWNoLGE9ZS5leHRlbmQscz1lLmV4cGxvZGUsbD1lLmluQXJyYXk7cmV0dXJuIGZ1bmN0aW9u
KGUpe2Z1bmN0aW9uIGModCxuLG8pe3ZhciBzPWVbdF07cmV0dXJuIHM/cz1pKHMsL1ssIF0vLGko
cy50b1VwcGVyQ2FzZSgpLC9bLCBdLykpOihzPXJbdF0sc3x8KHM9aShuLCIgIixpKG4udG9VcHBl
ckNhc2UoKSwiICIpKSxzPWEocyxvKSxyW3RdPXMpKSxzfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIG5l
dyBSZWdFeHAoIl4iK2UucmVwbGFjZSgvKFs/KypdKS9nLCIuJDEiKSsiJCIpfWZ1bmN0aW9uIGQo
ZSl7dmFyIG4scixvLGEscyxjLGQsZixwLGgsbSxnLHksQyx4LHcsXyxOLEUsUz0vXihbIytcLV0p
PyhbXlxbIVwvXSspKD86XC8oW15cWyFdKykpPyg/OighPylcWyhbXlxdXSspXF0pPyQvLGs9L14o
WyFcLV0pPyhcdys6Olx3K3xbXj06PF0rKT8oPzooWz06PF0pKC4qKSk/JC8sVD0vWyo/K10vO2lm
KGUpZm9yKGU9dChlLCIsIiksdlsiQCJdJiYodz12WyJAIl0uYXR0cmlidXRlcyxfPXZbIkAiXS5h
dHRyaWJ1dGVzT3JkZXIpLG49MCxyPWUubGVuZ3RoO3I+bjtuKyspaWYocz1TLmV4ZWMoZVtuXSkp
e2lmKEM9c1sxXSxwPXNbMl0seD1zWzNdLGY9c1s1XSxnPXt9LHk9W10sYz17YXR0cmlidXRlczpn
LGF0dHJpYnV0ZXNPcmRlcjp5fSwiIyI9PT1DJiYoYy5wYWRkRW1wdHk9ITApLCItIj09PUMmJihj
LnJlbW92ZUVtcHR5PSEwKSwiISI9PT1zWzRdJiYoYy5yZW1vdmVFbXB0eUF0dHJzPSEwKSx3KXtm
b3IoTiBpbiB3KWdbTl09d1tOXTt5LnB1c2guYXBwbHkoeSxfKX1pZihmKWZvcihmPXQoZiwifCIp
LG89MCxhPWYubGVuZ3RoO2E+bztvKyspaWYocz1rLmV4ZWMoZltvXSkpe2lmKGQ9e30sbT1zWzFd
LGg9c1syXS5yZXBsYWNlKC86Oi9nLCI6IiksQz1zWzNdLEU9c1s0XSwiISI9PT1tJiYoYy5hdHRy
aWJ1dGVzUmVxdWlyZWQ9Yy5hdHRyaWJ1dGVzUmVxdWlyZWR8fFtdLGMuYXR0cmlidXRlc1JlcXVp
cmVkLnB1c2goaCksZC5yZXF1aXJlZD0hMCksIi0iPT09bSl7ZGVsZXRlIGdbaF0seS5zcGxpY2Uo
bCh5LGgpLDEpO2NvbnRpbnVlfUMmJigiPSI9PT1DJiYoYy5hdHRyaWJ1dGVzRGVmYXVsdD1jLmF0
dHJpYnV0ZXNEZWZhdWx0fHxbXSxjLmF0dHJpYnV0ZXNEZWZhdWx0LnB1c2goe25hbWU6aCx2YWx1
ZTpFfSksZC5kZWZhdWx0VmFsdWU9RSksIjoiPT09QyYmKGMuYXR0cmlidXRlc0ZvcmNlZD1jLmF0
dHJpYnV0ZXNGb3JjZWR8fFtdLGMuYXR0cmlidXRlc0ZvcmNlZC5wdXNoKHtuYW1lOmgsdmFsdWU6
RX0pLGQuZm9yY2VkVmFsdWU9RSksIjwiPT09QyYmKGQudmFsaWRWYWx1ZXM9aShFLCI/IikpKSxU
LnRlc3QoaCk/KGMuYXR0cmlidXRlUGF0dGVybnM9Yy5hdHRyaWJ1dGVQYXR0ZXJuc3x8W10sZC5w
YXR0ZXJuPXUoaCksYy5hdHRyaWJ1dGVQYXR0ZXJucy5wdXNoKGQpKTooZ1toXXx8eS5wdXNoKGgp
LGdbaF09ZCl9d3x8IkAiIT1wfHwodz1nLF89eSkseCYmKGMub3V0cHV0TmFtZT1wLHZbeF09Yyks
VC50ZXN0KHApPyhjLnBhdHRlcm49dShwKSxiLnB1c2goYykpOnZbcF09Y319ZnVuY3Rpb24gZihl
KXt2PXt9LGI9W10sZChlKSxvKHgsZnVuY3Rpb24oZSx0KXt5W3RdPWUuY2hpbGRyZW59KX1mdW5j
dGlvbiBwKGUpe3ZhciBuPS9eKH4pPyguKykkLztlJiYoci50ZXh0X2Jsb2NrX2VsZW1lbnRzPXIu
YmxvY2tfZWxlbWVudHM9bnVsbCxvKHQoZSwiLCIpLGZ1bmN0aW9uKGUpe3ZhciB0PW4uZXhlYyhl
KSxyPSJ+Ij09PXRbMV0saT1yPyJzcGFuIjoiZGl2IixzPXRbMl07aWYoeVtzXT15W2ldLFJbc109
aSxyfHwoU1tzLnRvVXBwZXJDYXNlKCldPXt9LFNbc109e30pLCF2W3NdKXt2YXIgbD12W2ldO2w9
YSh7fSxsKSxkZWxldGUgbC5yZW1vdmVFbXB0eUF0dHJzLGRlbGV0ZSBsLnJlbW92ZUVtcHR5LHZb
c109bH1vKHksZnVuY3Rpb24oZSx0KXtlW2ldJiYoeVt0XT1lPWEoe30seVt0XSksZVtzXT1lW2ld
KX0pfSkpfWZ1bmN0aW9uIGgoZSl7dmFyIG49L14oWytcLV0/KShcdyspXFsoW15cXV0rKVxdJC87
ZSYmbyh0KGUsIiwiKSxmdW5jdGlvbihlKXt2YXIgcj1uLmV4ZWMoZSksaSxzO3ImJihzPXJbMV0s
aT1zP3lbclsyXV06eVtyWzJdXT17IiNjb21tZW50Ijp7fX0saT15W3JbMl1dLG8odChyWzNdLCJ8
IiksZnVuY3Rpb24oZSl7Ii0iPT09cz8oeVtyWzJdXT1pPWEoe30seVtyWzJdXSksZGVsZXRlIGlb
ZV0pOmlbZV09e319KSl9KX1mdW5jdGlvbiBtKGUpe3ZhciB0PXZbZV0sbjtpZih0KXJldHVybiB0
O2ZvcihuPWIubGVuZ3RoO24tLTspaWYodD1iW25dLHQucGF0dGVybi50ZXN0KGUpKXJldHVybiB0
fXZhciBnPXRoaXMsdj17fSx5PXt9LGI9W10sQyx4LHcsXyxOLEUsUyxrLFQsUj17fSxBPXt9O2U9
ZXx8e30seD1uKGUuc2NoZW1hKSxlLnZlcmlmeV9odG1sPT09ITEmJihlLnZhbGlkX2VsZW1lbnRz
PSIqWypdIiksZS52YWxpZF9zdHlsZXMmJihDPXt9LG8oZS52YWxpZF9zdHlsZXMsZnVuY3Rpb24o
ZSx0KXtDW3RdPXMoZSl9KSksdz1jKCJ3aGl0ZXNwYWNlX2VsZW1lbnRzIiwicHJlIHNjcmlwdCBu
b3NjcmlwdCBzdHlsZSB0ZXh0YXJlYSB2aWRlbyBhdWRpbyBpZnJhbWUgb2JqZWN0IiksXz1jKCJz
ZWxmX2Nsb3NpbmdfZWxlbWVudHMiLCJjb2xncm91cCBkZCBkdCBsaSBvcHRpb24gcCB0ZCB0Zm9v
dCB0aCB0aGVhZCB0ciIpLE49Yygic2hvcnRfZW5kZWRfZWxlbWVudHMiLCJhcmVhIGJhc2UgYmFz
ZWZvbnQgYnIgY29sIGZyYW1lIGhyIGltZyBpbnB1dCBpc2luZGV4IGxpbmsgbWV0YSBwYXJhbSBl
bWJlZCBzb3VyY2Ugd2JyIHRyYWNrIiksRT1jKCJib29sZWFuX2F0dHJpYnV0ZXMiLCJjaGVja2Vk
IGNvbXBhY3QgZGVjbGFyZSBkZWZlciBkaXNhYmxlZCBpc21hcCBtdWx0aXBsZSBub2hyZWYgbm9y
ZXNpemUgbm9zaGFkZSBub3dyYXAgcmVhZG9ubHkgc2VsZWN0ZWQgYXV0b3BsYXkgbG9vcCBjb250
cm9scyIpLGs9Yygibm9uX2VtcHR5X2VsZW1lbnRzIiwidGQgdGggaWZyYW1lIHZpZGVvIGF1ZGlv
IG9iamVjdCBzY3JpcHQiLE4pLFQ9YygidGV4dF9ibG9ja19lbGVtZW50cyIsImgxIGgyIGgzIGg0
IGg1IGg2IHAgZGl2IGFkZHJlc3MgcHJlIGZvcm0gYmxvY2txdW90ZSBjZW50ZXIgZGlyIGZpZWxk
c2V0IGhlYWRlciBmb290ZXIgYXJ0aWNsZSBzZWN0aW9uIGhncm91cCBhc2lkZSBuYXYgZmlndXJl
IiksUz1jKCJibG9ja19lbGVtZW50cyIsImhyIHRhYmxlIHRib2R5IHRoZWFkIHRmb290IHRoIHRy
IHRkIGxpIG9sIHVsIGNhcHRpb24gZGwgZHQgZGQgbm9zY3JpcHQgbWVudSBpc2luZGV4IG9wdGlv
biBkYXRhbGlzdCBzZWxlY3Qgb3B0Z3JvdXAiLFQpLG8oKGUuc3BlY2lhbHx8InNjcmlwdCBub3Nj
cmlwdCBzdHlsZSB0ZXh0YXJlYSIpLnNwbGl0KCIgIiksZnVuY3Rpb24oZSl7QVtlXT1uZXcgUmVn
RXhwKCI8LyIrZSsiW14+XSo+IiwiZ2kiKX0pLGUudmFsaWRfZWxlbWVudHM/ZihlLnZhbGlkX2Vs
ZW1lbnRzKToobyh4LGZ1bmN0aW9uKGUsdCl7dlt0XT17YXR0cmlidXRlczplLmF0dHJpYnV0ZXMs
YXR0cmlidXRlc09yZGVyOmUuYXR0cmlidXRlc09yZGVyfSx5W3RdPWUuY2hpbGRyZW59KSwiaHRt
bDUiIT1lLnNjaGVtYSYmbyh0KCJzdHJvbmcvYiBlbS9pIiksZnVuY3Rpb24oZSl7ZT10KGUsIi8i
KSx2W2VbMV1dLm91dHB1dE5hbWU9ZVswXX0pLHYuaW1nLmF0dHJpYnV0ZXNEZWZhdWx0PVt7bmFt
ZToiYWx0Iix2YWx1ZToiIn1dLG8odCgib2wgdWwgc3ViIHN1cCBibG9ja3F1b3RlIHNwYW4gZm9u
dCBhIHRhYmxlIHRib2R5IHRyIHN0cm9uZyBlbSBiIGkiKSxmdW5jdGlvbihlKXt2W2VdJiYodltl
XS5yZW1vdmVFbXB0eT0hMCl9KSxvKHQoInAgaDEgaDIgaDMgaDQgaDUgaDYgdGggdGQgcHJlIGRp
diBhZGRyZXNzIGNhcHRpb24iKSxmdW5jdGlvbihlKXt2W2VdLnBhZGRFbXB0eT0hMH0pLG8odCgi
c3BhbiIpLGZ1bmN0aW9uKGUpe3ZbZV0ucmVtb3ZlRW1wdHlBdHRycz0hMH0pKSxwKGUuY3VzdG9t
X2VsZW1lbnRzKSxoKGUudmFsaWRfY2hpbGRyZW4pLGQoZS5leHRlbmRlZF92YWxpZF9lbGVtZW50
cyksaCgiK29sW3VsfG9sXSwrdWxbdWx8b2xdIiksZS5pbnZhbGlkX2VsZW1lbnRzJiZvKHMoZS5p
bnZhbGlkX2VsZW1lbnRzKSxmdW5jdGlvbihlKXt2W2VdJiZkZWxldGUgdltlXX0pLG0oInNwYW4i
KXx8ZCgic3BhblshZGF0YS1tY2UtdHlwZXwqXSIpLGcuY2hpbGRyZW49eSxnLnN0eWxlcz1DLGcu
Z2V0Qm9vbEF0dHJzPWZ1bmN0aW9uKCl7cmV0dXJuIEV9LGcuZ2V0QmxvY2tFbGVtZW50cz1mdW5j
dGlvbigpe3JldHVybiBTfSxnLmdldFRleHRCbG9ja0VsZW1lbnRzPWZ1bmN0aW9uKCl7cmV0dXJu
IFR9LGcuZ2V0U2hvcnRFbmRlZEVsZW1lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIE59LGcuZ2V0U2Vs
ZkNsb3NpbmdFbGVtZW50cz1mdW5jdGlvbigpe3JldHVybiBffSxnLmdldE5vbkVtcHR5RWxlbWVu
dHM9ZnVuY3Rpb24oKXtyZXR1cm4ga30sZy5nZXRXaGl0ZVNwYWNlRWxlbWVudHM9ZnVuY3Rpb24o
KXtyZXR1cm4gd30sZy5nZXRTcGVjaWFsRWxlbWVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gQX0sZy5p
c1ZhbGlkQ2hpbGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj15W2VdO3JldHVybiEoIW58fCFuW3RdKX0s
Zy5pc1ZhbGlkPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpPW0oZSk7aWYoaSl7aWYoIXQpcmV0dXJu
ITA7aWYoaS5hdHRyaWJ1dGVzW3RdKXJldHVybiEwO2lmKG49aS5hdHRyaWJ1dGVQYXR0ZXJucylm
b3Iocj1uLmxlbmd0aDtyLS07KWlmKG5bcl0ucGF0dGVybi50ZXN0KGUpKXJldHVybiEwfXJldHVy
biExfSxnLmdldEVsZW1lbnRSdWxlPW0sZy5nZXRDdXN0b21FbGVtZW50cz1mdW5jdGlvbigpe3Jl
dHVybiBSfSxnLmFkZFZhbGlkRWxlbWVudHM9ZCxnLnNldFZhbGlkRWxlbWVudHM9ZixnLmFkZEN1
c3RvbUVsZW1lbnRzPXAsZy5hZGRWYWxpZENoaWxkcmVuPWgsZy5lbGVtZW50cz12fX0pLHIoXyxb
dyxtLHBdLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uLmVhY2g7cmV0dXJuIGZ1bmN0aW9uKGksbyl7
ZnVuY3Rpb24gYSgpe312YXIgcz10aGlzO2k9aXx8e30scy5zY2hlbWE9bz1vfHxuZXcgZSxpLmZp
eF9zZWxmX2Nsb3NpbmchPT0hMSYmKGkuZml4X3NlbGZfY2xvc2luZz0hMCkscigiY29tbWVudCBj
ZGF0YSB0ZXh0IHN0YXJ0IGVuZCBwaSBkb2N0eXBlIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe2Um
JihzW2VdPWlbZV18fGEpfSkscy5wYXJzZT1mdW5jdGlvbihlKXtmdW5jdGlvbiByKGUpe3ZhciB0
LG47Zm9yKHQ9Zi5sZW5ndGg7dC0tJiZmW3RdLm5hbWUhPT1lOyk7aWYodD49MCl7Zm9yKG49Zi5s
ZW5ndGgtMTtuPj10O24tLSllPWZbbl0sZS52YWxpZCYmcy5lbmQoZS5uYW1lKTtmLmxlbmd0aD10
fX1mdW5jdGlvbiBhKGUsdCxuLHIsbyl7dmFyIGEscyxsPS9bXHNcdTAwMDAtXHUwMDFGXSsvZztp
Zih0PXQudG9Mb3dlckNhc2UoKSxuPXQgaW4gQz90OkYobnx8cnx8b3x8IiIpLHcmJiF2JiYwIT09
dC5pbmRleE9mKCJkYXRhLSIpKXtpZihhPWtbdF0sIWEmJlQpe2ZvcihzPVQubGVuZ3RoO3MtLSYm
KGE9VFtzXSwhYS5wYXR0ZXJuLnRlc3QodCkpOyk7LTE9PT1zJiYoYT1udWxsKX1pZighYSlyZXR1
cm47aWYoYS52YWxpZFZhbHVlcyYmIShuIGluIGEudmFsaWRWYWx1ZXMpKXJldHVybn1pZihXW3Rd
JiYhaS5hbGxvd19zY3JpcHRfdXJscyl7dmFyIGM9bi5yZXBsYWNlKGwsIiIpO3RyeXtjPWRlY29k
ZVVSSUNvbXBvbmVudChjKX1jYXRjaCh1KXtjPXVuZXNjYXBlKGMpfWlmKFYudGVzdChjKSlyZXR1
cm47aWYoIWkuYWxsb3dfaHRtbF9kYXRhX3VybHMmJlUudGVzdChjKSYmIS9eZGF0YTppbWFnZVwv
L2kudGVzdChjKSlyZXR1cm59cC5tYXBbdF09bixwLnB1c2goe25hbWU6dCx2YWx1ZTpufSl9dmFy
IHM9dGhpcyxsLGM9MCx1LGQsZj1bXSxwLGgsbSxnLHYseSxiLEMseCx3LF8sTixFLFMsayxULFIs
QSxCLEQsTCxNLEgsUCxPLEk9MCxGPXQuZGVjb2RlLHosVz1uLm1ha2VNYXAoInNyYyxocmVmLGRh
dGEsYmFja2dyb3VuZCxmb3JtYWN0aW9uLHBvc3RlciIpLFY9LygoamF2YXx2YilzY3JpcHR8bWh0
bWwpOi9pLFU9L15kYXRhOi9pO2ZvcihNPW5ldyBSZWdFeHAoIjwoPzooPzohLS0oW1xcd1xcV10q
PyktLT4pfCg/OiFcXFtDREFUQVxcWyhbXFx3XFxXXSo/KVxcXVxcXT4pfCg/OiFET0NUWVBFKFtc
XHdcXFddKj8pPil8KD86XFw/KFteXFxzXFwvPD5dKykgPyhbXFx3XFxXXSo/KVs/L10+KXwoPzpc
XC8oW14+XSspPil8KD86KFtBLVphLXowLTlcXC1cXDpcXC5dKykoKD86XFxzK1teXCInPl0rKD86
KD86XCJbXlwiXSpcIil8KD86J1teJ10qJyl8W14+XSopKSp8XFwvfFxccyspPikpIiwiZyIpLEg9
LyhbXHc6XC1dKykoPzpccyo9XHMqKD86KD86XCIoKD86W15cIl0pKilcIil8KD86XCcoKD86W15c
J10pKilcJyl8KFtePlxzXSspKSk/L2csYj1vLmdldFNob3J0RW5kZWRFbGVtZW50cygpLEw9aS5z
ZWxmX2Nsb3NpbmdfZWxlbWVudHN8fG8uZ2V0U2VsZkNsb3NpbmdFbGVtZW50cygpLEM9by5nZXRC
b29sQXR0cnMoKSx3PWkudmFsaWRhdGUseT1pLnJlbW92ZV9pbnRlcm5hbHMsej1pLmZpeF9zZWxm
X2Nsb3NpbmcsUD1vLmdldFNwZWNpYWxFbGVtZW50cygpO2w9TS5leGVjKGUpOyl7aWYoYzxsLmlu
ZGV4JiZzLnRleHQoRihlLnN1YnN0cihjLGwuaW5kZXgtYykpKSx1PWxbNl0pdT11LnRvTG93ZXJD
YXNlKCksIjoiPT09dS5jaGFyQXQoMCkmJih1PXUuc3Vic3RyKDEpKSxyKHUpO2Vsc2UgaWYodT1s
WzddKXtpZih1PXUudG9Mb3dlckNhc2UoKSwiOiI9PT11LmNoYXJBdCgwKSYmKHU9dS5zdWJzdHIo
MSkpLHg9dSBpbiBiLHomJkxbdV0mJmYubGVuZ3RoPjAmJmZbZi5sZW5ndGgtMV0ubmFtZT09PXUm
JnIodSksIXd8fChfPW8uZ2V0RWxlbWVudFJ1bGUodSkpKXtpZihOPSEwLHcmJihrPV8uYXR0cmli
dXRlcyxUPV8uYXR0cmlidXRlUGF0dGVybnMpLChTPWxbOF0pPyh2PS0xIT09Uy5pbmRleE9mKCJk
YXRhLW1jZS10eXBlIiksdiYmeSYmKE49ITEpLHA9W10scC5tYXA9e30sUy5yZXBsYWNlKEgsYSkp
OihwPVtdLHAubWFwPXt9KSx3JiYhdil7aWYoUj1fLmF0dHJpYnV0ZXNSZXF1aXJlZCxBPV8uYXR0
cmlidXRlc0RlZmF1bHQsQj1fLmF0dHJpYnV0ZXNGb3JjZWQsRD1fLnJlbW92ZUVtcHR5QXR0cnMs
RCYmIXAubGVuZ3RoJiYoTj0hMSksQilmb3IoaD1CLmxlbmd0aDtoLS07KUU9QltoXSxnPUUubmFt
ZSxPPUUudmFsdWUsInskdWlkfSI9PT1PJiYoTz0ibWNlXyIrSSsrKSxwLm1hcFtnXT1PLHAucHVz
aCh7bmFtZTpnLHZhbHVlOk99KTtpZihBKWZvcihoPUEubGVuZ3RoO2gtLTspRT1BW2hdLGc9RS5u
YW1lLGcgaW4gcC5tYXB8fChPPUUudmFsdWUsInskdWlkfSI9PT1PJiYoTz0ibWNlXyIrSSsrKSxw
Lm1hcFtnXT1PLHAucHVzaCh7bmFtZTpnLHZhbHVlOk99KSk7aWYoUil7Zm9yKGg9Ui5sZW5ndGg7
aC0tJiYhKFJbaF1pbiBwLm1hcCk7KTstMT09PWgmJihOPSExKX1wLm1hcFsiZGF0YS1tY2UtYm9n
dXMiXSYmKE49ITEpfU4mJnMuc3RhcnQodSxwLHgpfWVsc2UgTj0hMTtpZihkPVBbdV0pe2QubGFz
dEluZGV4PWM9bC5pbmRleCtsWzBdLmxlbmd0aCwobD1kLmV4ZWMoZSkpPyhOJiYobT1lLnN1YnN0
cihjLGwuaW5kZXgtYykpLGM9bC5pbmRleCtsWzBdLmxlbmd0aCk6KG09ZS5zdWJzdHIoYyksYz1l
Lmxlbmd0aCksTiYmKG0ubGVuZ3RoPjAmJnMudGV4dChtLCEwKSxzLmVuZCh1KSksTS5sYXN0SW5k
ZXg9Yztjb250aW51ZX14fHwoUyYmUy5pbmRleE9mKCIvIik9PVMubGVuZ3RoLTE/TiYmcy5lbmQo
dSk6Zi5wdXNoKHtuYW1lOnUsdmFsaWQ6Tn0pKX1lbHNlKHU9bFsxXSk/KCI+Ij09PXUuY2hhckF0
KDApJiYodT0iICIrdSksaS5hbGxvd19jb25kaXRpb25hbF9jb21tZW50c3x8IltpZiIhPT11LnN1
YnN0cigwLDMpfHwodT0iICIrdSkscy5jb21tZW50KHUpKToodT1sWzJdKT9zLmNkYXRhKHUpOih1
PWxbM10pP3MuZG9jdHlwZSh1KToodT1sWzRdKSYmcy5waSh1LGxbNV0pO2M9bC5pbmRleCtsWzBd
Lmxlbmd0aH1mb3IoYzxlLmxlbmd0aCYmcy50ZXh0KEYoZS5zdWJzdHIoYykpKSxoPWYubGVuZ3Ro
LTE7aD49MDtoLS0pdT1mW2hdLHUudmFsaWQmJnMuZW5kKHUubmFtZSl9fX0pLHIoTixbeCx3LF8s
cF0sZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9ci5tYWtlTWFwLG89ci5lYWNoLGE9ci5leHBsb2Rl
LHM9ci5leHRlbmQ7cmV0dXJuIGZ1bmN0aW9uKHIsbCl7ZnVuY3Rpb24gYyh0KXt2YXIgbixyLG8s
YSxzLGMsZCxmLHAsaCxtLGcsdix5O2ZvcihtPWkoInRyLHRkLHRoLHRib2R5LHRoZWFkLHRmb290
LHRhYmxlIiksaD1sLmdldE5vbkVtcHR5RWxlbWVudHMoKSxnPWwuZ2V0VGV4dEJsb2NrRWxlbWVu
dHMoKSxuPTA7bjx0Lmxlbmd0aDtuKyspaWYocj10W25dLHIucGFyZW50JiYhci5maXhlZClpZihn
W3IubmFtZV0mJiJsaSI9PXIucGFyZW50Lm5hbWUpe2Zvcih2PXIubmV4dDt2JiZnW3YubmFtZV07
KXYubmFtZT0ibGkiLHYuZml4ZWQ9ITAsci5wYXJlbnQuaW5zZXJ0KHYsci5wYXJlbnQpLHY9di5u
ZXh0O3IudW53cmFwKHIpfWVsc2V7Zm9yKGE9W3JdLG89ci5wYXJlbnQ7byYmIWwuaXNWYWxpZENo
aWxkKG8ubmFtZSxyLm5hbWUpJiYhbVtvLm5hbWVdO289by5wYXJlbnQpYS5wdXNoKG8pO2lmKG8m
JmEubGVuZ3RoPjEpe2ZvcihhLnJldmVyc2UoKSxzPWM9dS5maWx0ZXJOb2RlKGFbMF0uY2xvbmUo
KSkscD0wO3A8YS5sZW5ndGgtMTtwKyspe2ZvcihsLmlzVmFsaWRDaGlsZChjLm5hbWUsYVtwXS5u
YW1lKT8oZD11LmZpbHRlck5vZGUoYVtwXS5jbG9uZSgpKSxjLmFwcGVuZChkKSk6ZD1jLGY9YVtw
XS5maXJzdENoaWxkO2YmJmYhPWFbcCsxXTspeT1mLm5leHQsZC5hcHBlbmQoZiksZj15O2M9ZH1z
LmlzRW1wdHkoaCk/by5pbnNlcnQocixhWzBdLCEwKTooby5pbnNlcnQocyxhWzBdLCEwKSxvLmlu
c2VydChyLHMpKSxvPWFbMF0sKG8uaXNFbXB0eShoKXx8by5maXJzdENoaWxkPT09by5sYXN0Q2hp
bGQmJiJiciI9PT1vLmZpcnN0Q2hpbGQubmFtZSkmJm8uZW1wdHkoKS5yZW1vdmUoKX1lbHNlIGlm
KHIucGFyZW50KXtpZigibGkiPT09ci5uYW1lKXtpZih2PXIucHJldix2JiYoInVsIj09PXYubmFt
ZXx8InVsIj09PXYubmFtZSkpe3YuYXBwZW5kKHIpO2NvbnRpbnVlfWlmKHY9ci5uZXh0LHYmJigi
dWwiPT09di5uYW1lfHwidWwiPT09di5uYW1lKSl7di5pbnNlcnQocix2LmZpcnN0Q2hpbGQsITAp
O2NvbnRpbnVlfXIud3JhcCh1LmZpbHRlck5vZGUobmV3IGUoInVsIiwxKSkpO2NvbnRpbnVlfWwu
aXNWYWxpZENoaWxkKHIucGFyZW50Lm5hbWUsImRpdiIpJiZsLmlzVmFsaWRDaGlsZCgiZGl2Iixy
Lm5hbWUpP3Iud3JhcCh1LmZpbHRlck5vZGUobmV3IGUoImRpdiIsMSkpKToic3R5bGUiPT09ci5u
YW1lfHwic2NyaXB0Ij09PXIubmFtZT9yLmVtcHR5KCkucmVtb3ZlKCk6ci51bndyYXAoKX19fXZh
ciB1PXRoaXMsZD17fSxmPVtdLHA9e30saD17fTtyPXJ8fHt9LHIudmFsaWRhdGU9InZhbGlkYXRl
ImluIHI/ci52YWxpZGF0ZTohMCxyLnJvb3RfbmFtZT1yLnJvb3RfbmFtZXx8ImJvZHkiLHUuc2No
ZW1hPWw9bHx8bmV3IHQsdS5maWx0ZXJOb2RlPWZ1bmN0aW9uKGUpe3ZhciB0LG4scjtuIGluIGQm
JihyPXBbbl0scj9yLnB1c2goZSk6cFtuXT1bZV0pLHQ9Zi5sZW5ndGg7Zm9yKDt0LS07KW49Zlt0
XS5uYW1lLG4gaW4gZS5hdHRyaWJ1dGVzLm1hcCYmKHI9aFtuXSxyP3IucHVzaChlKTpoW25dPVtl
XSk7cmV0dXJuIGV9LHUuYWRkTm9kZUZpbHRlcj1mdW5jdGlvbihlLHQpe28oYShlKSxmdW5jdGlv
bihlKXt2YXIgbj1kW2VdO258fChkW2VdPW49W10pLG4ucHVzaCh0KX0pfSx1LmFkZEF0dHJpYnV0
ZUZpbHRlcj1mdW5jdGlvbihlLHQpe28oYShlKSxmdW5jdGlvbihlKXt2YXIgbjtmb3Iobj0wO248
Zi5sZW5ndGg7bisrKWlmKGZbbl0ubmFtZT09PWUpcmV0dXJuIHZvaWQgZltuXS5jYWxsYmFja3Mu
cHVzaCh0KTtmLnB1c2goe25hbWU6ZSxjYWxsYmFja3M6W3RdfSl9KX0sdS5wYXJzZT1mdW5jdGlv
bih0LG8pe2Z1bmN0aW9uIGEoKXtmdW5jdGlvbiBlKGUpe2UmJih0PWUuZmlyc3RDaGlsZCx0JiYz
PT10LnR5cGUmJih0LnZhbHVlPXQudmFsdWUucmVwbGFjZShSLCIiKSksdD1lLmxhc3RDaGlsZCx0
JiYzPT10LnR5cGUmJih0LnZhbHVlPXQudmFsdWUucmVwbGFjZShELCIiKSkpfXZhciB0PXkuZmly
c3RDaGlsZCxuLGk7aWYobC5pc1ZhbGlkQ2hpbGQoeS5uYW1lLEkudG9Mb3dlckNhc2UoKSkpe2Zv
cig7dDspbj10Lm5leHQsMz09dC50eXBlfHwxPT10LnR5cGUmJiJwIiE9PXQubmFtZSYmIVRbdC5u
YW1lXSYmIXQuYXR0cigiZGF0YS1tY2UtdHlwZSIpP2k/aS5hcHBlbmQodCk6KGk9dShJLDEpLGku
YXR0cihyLmZvcmNlZF9yb290X2Jsb2NrX2F0dHJzKSx5Lmluc2VydChpLHQpLGkuYXBwZW5kKHQp
KTooZShpKSxpPW51bGwpLHQ9bjtlKGkpfX1mdW5jdGlvbiB1KHQsbil7dmFyIHI9bmV3IGUodCxu
KSxpO3JldHVybiB0IGluIGQmJihpPXBbdF0saT9pLnB1c2gocik6cFt0XT1bcl0pLHJ9ZnVuY3Rp
b24gbShlKXt2YXIgdCxuLHI7Zm9yKHQ9ZS5wcmV2O3QmJjM9PT10LnR5cGU7KW49dC52YWx1ZS5y
ZXBsYWNlKEQsIiIpLG4ubGVuZ3RoPjA/KHQudmFsdWU9bix0PXQucHJldik6KHI9dC5wcmV2LHQu
cmVtb3ZlKCksdD1yKX1mdW5jdGlvbiBnKGUpe3ZhciB0LG49e307Zm9yKHQgaW4gZSkibGkiIT09
dCYmInAiIT10JiYoblt0XT1lW3RdKTtyZXR1cm4gbn12YXIgdix5LGIsQyx4LHcsXyxOLEUsUyxr
LFQsUixBPVtdLEIsRCxMLE0sSCxQLE8sSTtpZihvPW98fHt9LHA9e30saD17fSxUPXMoaSgic2Ny
aXB0LHN0eWxlLGhlYWQsaHRtbCxib2R5LHRpdGxlLG1ldGEscGFyYW0iKSxsLmdldEJsb2NrRWxl
bWVudHMoKSksTz1sLmdldE5vbkVtcHR5RWxlbWVudHMoKSxQPWwuY2hpbGRyZW4saz1yLnZhbGlk
YXRlLEk9ImZvcmNlZF9yb290X2Jsb2NrImluIG8/by5mb3JjZWRfcm9vdF9ibG9jazpyLmZvcmNl
ZF9yb290X2Jsb2NrLEg9bC5nZXRXaGl0ZVNwYWNlRWxlbWVudHMoKSxSPS9eWyBcdFxyXG5dKy8s
RD0vWyBcdFxyXG5dKyQvLEw9L1sgXHRcclxuXSsvZyxNPS9eWyBcdFxyXG5dKyQvLHY9bmV3IG4o
e3ZhbGlkYXRlOmssYWxsb3dfc2NyaXB0X3VybHM6ci5hbGxvd19zY3JpcHRfdXJscyxhbGxvd19j
b25kaXRpb25hbF9jb21tZW50czpyLmFsbG93X2NvbmRpdGlvbmFsX2NvbW1lbnRzLHNlbGZfY2xv
c2luZ19lbGVtZW50czpnKGwuZ2V0U2VsZkNsb3NpbmdFbGVtZW50cygpKSxjZGF0YTpmdW5jdGlv
bihlKXtiLmFwcGVuZCh1KCIjY2RhdGEiLDQpKS52YWx1ZT1lfSx0ZXh0OmZ1bmN0aW9uKGUsdCl7
dmFyIG47Qnx8KGU9ZS5yZXBsYWNlKEwsIiAiKSxiLmxhc3RDaGlsZCYmVFtiLmxhc3RDaGlsZC5u
YW1lXSYmKGU9ZS5yZXBsYWNlKFIsIiIpKSksMCE9PWUubGVuZ3RoJiYobj11KCIjdGV4dCIsMyks
bi5yYXc9ISF0LGIuYXBwZW5kKG4pLnZhbHVlPWUpfSxjb21tZW50OmZ1bmN0aW9uKGUpe2IuYXBw
ZW5kKHUoIiNjb21tZW50Iiw4KSkudmFsdWU9ZX0scGk6ZnVuY3Rpb24oZSx0KXtiLmFwcGVuZCh1
KGUsNykpLnZhbHVlPXQsbShiKX0sZG9jdHlwZTpmdW5jdGlvbihlKXt2YXIgdDt0PWIuYXBwZW5k
KHUoIiNkb2N0eXBlIiwxMCkpLHQudmFsdWU9ZSxtKGIpfSxzdGFydDpmdW5jdGlvbihlLHQsbil7
dmFyIHIsaSxvLGEscztpZihvPWs/bC5nZXRFbGVtZW50UnVsZShlKTp7fSl7Zm9yKHI9dShvLm91
dHB1dE5hbWV8fGUsMSksci5hdHRyaWJ1dGVzPXQsci5zaG9ydEVuZGVkPW4sYi5hcHBlbmQociks
cz1QW2IubmFtZV0scyYmUFtyLm5hbWVdJiYhc1tyLm5hbWVdJiZBLnB1c2gociksaT1mLmxlbmd0
aDtpLS07KWE9ZltpXS5uYW1lLGEgaW4gdC5tYXAmJihFPWhbYV0sRT9FLnB1c2gocik6aFthXT1b
cl0pO1RbZV0mJm0ociksbnx8KGI9ciksIUImJkhbZV0mJihCPSEwKX19LGVuZDpmdW5jdGlvbih0
KXt2YXIgbixyLGksbyxhO2lmKHI9az9sLmdldEVsZW1lbnRSdWxlKHQpOnt9KXtpZihUW3RdJiYh
Qil7aWYobj1iLmZpcnN0Q2hpbGQsbiYmMz09PW4udHlwZSlpZihpPW4udmFsdWUucmVwbGFjZShS
LCIiKSxpLmxlbmd0aD4wKW4udmFsdWU9aSxuPW4ubmV4dDtlbHNlIGZvcihvPW4ubmV4dCxuLnJl
bW92ZSgpLG49bztuJiYzPT09bi50eXBlOylpPW4udmFsdWUsbz1uLm5leHQsKDA9PT1pLmxlbmd0
aHx8TS50ZXN0KGkpKSYmKG4ucmVtb3ZlKCksbj1vKSxuPW87aWYobj1iLmxhc3RDaGlsZCxuJiYz
PT09bi50eXBlKWlmKGk9bi52YWx1ZS5yZXBsYWNlKEQsIiIpLGkubGVuZ3RoPjApbi52YWx1ZT1p
LG49bi5wcmV2O2Vsc2UgZm9yKG89bi5wcmV2LG4ucmVtb3ZlKCksbj1vO24mJjM9PT1uLnR5cGU7
KWk9bi52YWx1ZSxvPW4ucHJldiwoMD09PWkubGVuZ3RofHxNLnRlc3QoaSkpJiYobi5yZW1vdmUo
KSxuPW8pLG49b31pZihCJiZIW3RdJiYoQj0hMSksKHIucmVtb3ZlRW1wdHl8fHIucGFkZEVtcHR5
KSYmYi5pc0VtcHR5KE8pKWlmKHIucGFkZEVtcHR5KWIuZW1wdHkoKS5hcHBlbmQobmV3IGUoIiN0
ZXh0IiwiMyIpKS52YWx1ZT0iXHhhMCI7ZWxzZSBpZighYi5hdHRyaWJ1dGVzLm1hcC5uYW1lJiYh
Yi5hdHRyaWJ1dGVzLm1hcC5pZClyZXR1cm4gYT1iLnBhcmVudCxiLmVtcHR5KCkucmVtb3ZlKCks
dm9pZChiPWEpO2I9Yi5wYXJlbnR9fX0sbCkseT1iPW5ldyBlKG8uY29udGV4dHx8ci5yb290X25h
bWUsMTEpLHYucGFyc2UodCksayYmQS5sZW5ndGgmJihvLmNvbnRleHQ/by5pbnZhbGlkPSEwOmMo
QSkpLEkmJigiYm9keSI9PXkubmFtZXx8by5pc1Jvb3RDb250ZW50KSYmYSgpLCFvLmludmFsaWQp
e2ZvcihTIGluIHApe2ZvcihFPWRbU10sQz1wW1NdLF89Qy5sZW5ndGg7Xy0tOylDW19dLnBhcmVu
dHx8Qy5zcGxpY2UoXywxKTtmb3IoeD0wLHc9RS5sZW5ndGg7dz54O3grKylFW3hdKEMsUyxvKX1m
b3IoeD0wLHc9Zi5sZW5ndGg7dz54O3grKylpZihFPWZbeF0sRS5uYW1lIGluIGgpe2ZvcihDPWhb
RS5uYW1lXSxfPUMubGVuZ3RoO18tLTspQ1tfXS5wYXJlbnR8fEMuc3BsaWNlKF8sMSk7Zm9yKF89
MCxOPUUuY2FsbGJhY2tzLmxlbmd0aDtOPl87XysrKUUuY2FsbGJhY2tzW19dKEMsRS5uYW1lLG8p
fX1yZXR1cm4geX0sci5yZW1vdmVfdHJhaWxpbmdfYnJzJiZ1LmFkZE5vZGVGaWx0ZXIoImJyIixm
dW5jdGlvbih0KXt2YXIgbixyPXQubGVuZ3RoLGksbz1zKHt9LGwuZ2V0QmxvY2tFbGVtZW50cygp
KSxhPWwuZ2V0Tm9uRW1wdHlFbGVtZW50cygpLGMsdSxkLGYscCxoO2ZvcihvLmJvZHk9MSxuPTA7
cj5uO24rKylpZihpPXRbbl0sYz1pLnBhcmVudCxvW2kucGFyZW50Lm5hbWVdJiZpPT09Yy5sYXN0
Q2hpbGQpe2ZvcihkPWkucHJldjtkOyl7aWYoZj1kLm5hbWUsInNwYW4iIT09Znx8ImJvb2ttYXJr
IiE9PWQuYXR0cigiZGF0YS1tY2UtdHlwZSIpKXtpZigiYnIiIT09ZilicmVhaztpZigiYnIiPT09
Zil7aT1udWxsO2JyZWFrfX1kPWQucHJldn1pJiYoaS5yZW1vdmUoKSxjLmlzRW1wdHkoYSkmJihw
PWwuZ2V0RWxlbWVudFJ1bGUoYy5uYW1lKSxwJiYocC5yZW1vdmVFbXB0eT9jLnJlbW92ZSgpOnAu
cGFkZEVtcHR5JiYoYy5lbXB0eSgpLmFwcGVuZChuZXcgZSgiI3RleHQiLDMpKS52YWx1ZT0iXHhh
MCIpKSkpfWVsc2V7Zm9yKHU9aTtjJiZjLmZpcnN0Q2hpbGQ9PT11JiZjLmxhc3RDaGlsZD09PXUm
Jih1PWMsIW9bYy5uYW1lXSk7KWM9Yy5wYXJlbnQ7dT09PWMmJihoPW5ldyBlKCIjdGV4dCIsMyks
aC52YWx1ZT0iXHhhMCIsaS5yZXBsYWNlKGgpKX19KSxyLmFsbG93X2h0bWxfaW5fbmFtZWRfYW5j
aG9yfHx1LmFkZEF0dHJpYnV0ZUZpbHRlcigiaWQsbmFtZSIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0
PWUubGVuZ3RoLG4scixpLG87dC0tOylpZihvPWVbdF0sImEiPT09by5uYW1lJiZvLmZpcnN0Q2hp
bGQmJiFvLmF0dHIoImhyZWYiKSl7aT1vLnBhcmVudCxuPW8ubGFzdENoaWxkO2RvIHI9bi5wcmV2
LGkuaW5zZXJ0KG4sbyksbj1yO3doaWxlKG4pfX0pfX0pLHIoRSxbbSxwXSxmdW5jdGlvbihlLHQp
e3ZhciBuPXQubWFrZU1hcDtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9W10saSxvLGEscyxsO3Jl
dHVybiB0PXR8fHt9LGk9dC5pbmRlbnQsbz1uKHQuaW5kZW50X2JlZm9yZXx8IiIpLGE9bih0Lmlu
ZGVudF9hZnRlcnx8IiIpLHM9ZS5nZXRFbmNvZGVGdW5jKHQuZW50aXR5X2VuY29kaW5nfHwicmF3
Iix0LmVudGl0aWVzKSxsPSJodG1sIj09dC5lbGVtZW50X2Zvcm1hdCx7c3RhcnQ6ZnVuY3Rpb24o
ZSx0LG4pe3ZhciBjLHUsZCxmO2lmKGkmJm9bZV0mJnIubGVuZ3RoPjAmJihmPXJbci5sZW5ndGgt
MV0sZi5sZW5ndGg+MCYmIlxuIiE9PWYmJnIucHVzaCgiXG4iKSksci5wdXNoKCI8IixlKSx0KWZv
cihjPTAsdT10Lmxlbmd0aDt1PmM7YysrKWQ9dFtjXSxyLnB1c2goIiAiLGQubmFtZSwnPSInLHMo
ZC52YWx1ZSwhMCksJyInKTtyW3IubGVuZ3RoXT0hbnx8bD8iPiI6IiAvPiIsbiYmaSYmYVtlXSYm
ci5sZW5ndGg+MCYmKGY9cltyLmxlbmd0aC0xXSxmLmxlbmd0aD4wJiYiXG4iIT09ZiYmci5wdXNo
KCJcbiIpKX0sZW5kOmZ1bmN0aW9uKGUpe3ZhciB0O3IucHVzaCgiPC8iLGUsIj4iKSxpJiZhW2Vd
JiZyLmxlbmd0aD4wJiYodD1yW3IubGVuZ3RoLTFdLHQubGVuZ3RoPjAmJiJcbiIhPT10JiZyLnB1
c2goIlxuIikpfSx0ZXh0OmZ1bmN0aW9uKGUsdCl7ZS5sZW5ndGg+MCYmKHJbci5sZW5ndGhdPXQ/
ZTpzKGUpKX0sY2RhdGE6ZnVuY3Rpb24oZSl7ci5wdXNoKCI8IVtDREFUQVsiLGUsIl1dPiIpfSxj
b21tZW50OmZ1bmN0aW9uKGUpe3IucHVzaCgiPCEtLSIsZSwiLS0+Iil9LHBpOmZ1bmN0aW9uKGUs
dCl7dD9yLnB1c2goIjw/IixlLCIgIix0LCI/PiIpOnIucHVzaCgiPD8iLGUsIj8+IiksaSYmci5w
dXNoKCJcbiIpfSxkb2N0eXBlOmZ1bmN0aW9uKGUpe3IucHVzaCgiPCFET0NUWVBFIixlLCI+Iixp
PyJcbiI6IiIpfSxyZXNldDpmdW5jdGlvbigpe3IubGVuZ3RoPTB9LGdldENvbnRlbnQ6ZnVuY3Rp
b24oKXtyZXR1cm4gci5qb2luKCIiKS5yZXBsYWNlKC9cbiQvLCIiKX19fX0pLHIoUyxbRSx3XSxm
dW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMsbz1uZXcgZShuKTtu
PW58fHt9LG4udmFsaWRhdGU9InZhbGlkYXRlImluIG4/bi52YWxpZGF0ZTohMCxpLnNjaGVtYT1y
PXJ8fG5ldyB0LGkud3JpdGVyPW8saS5zZXJpYWxpemU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChl
KXt2YXIgbj1pW2UudHlwZV0scyxsLGMsdSxkLGYscCxoLG07aWYobiluKGUpO2Vsc2V7aWYocz1l
Lm5hbWUsbD1lLnNob3J0RW5kZWQsYz1lLmF0dHJpYnV0ZXMsYSYmYyYmYy5sZW5ndGg+MSl7Zm9y
KGY9W10sZi5tYXA9e30sbT1yLmdldEVsZW1lbnRSdWxlKGUubmFtZSkscD0wLGg9bS5hdHRyaWJ1
dGVzT3JkZXIubGVuZ3RoO2g+cDtwKyspdT1tLmF0dHJpYnV0ZXNPcmRlcltwXSx1IGluIGMubWFw
JiYoZD1jLm1hcFt1XSxmLm1hcFt1XT1kLGYucHVzaCh7bmFtZTp1LHZhbHVlOmR9KSk7Zm9yKHA9
MCxoPWMubGVuZ3RoO2g+cDtwKyspdT1jW3BdLm5hbWUsdSBpbiBmLm1hcHx8KGQ9Yy5tYXBbdV0s
Zi5tYXBbdV09ZCxmLnB1c2goe25hbWU6dSx2YWx1ZTpkfSkpO2M9Zn1pZihvLnN0YXJ0KGUubmFt
ZSxjLGwpLCFsKXtpZihlPWUuZmlyc3RDaGlsZClkbyB0KGUpO3doaWxlKGU9ZS5uZXh0KTtvLmVu
ZChzKX19fXZhciBpLGE7cmV0dXJuIGE9bi52YWxpZGF0ZSxpPXszOmZ1bmN0aW9uKGUpe28udGV4
dChlLnZhbHVlLGUucmF3KX0sODpmdW5jdGlvbihlKXtvLmNvbW1lbnQoZS52YWx1ZSl9LDc6ZnVu
Y3Rpb24oZSl7by5waShlLm5hbWUsZS52YWx1ZSl9LDEwOmZ1bmN0aW9uKGUpe28uZG9jdHlwZShl
LnZhbHVlKX0sNDpmdW5jdGlvbihlKXtvLmNkYXRhKGUudmFsdWUpfSwxMTpmdW5jdGlvbihlKXtp
ZihlPWUuZmlyc3RDaGlsZClkbyB0KGUpO3doaWxlKGU9ZS5uZXh0KX19LG8ucmVzZXQoKSwxIT1l
LnR5cGV8fG4uaW5uZXI/aVsxMV0oZSk6dChlKSxvLmdldENvbnRlbnQoKX19fSkscihrLFt5LE4s
bSxTLHgsdyxnLHBdLGZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEscyl7dmFyIGw9cy5lYWNoLGM9cy50
cmltLHU9ZS5ET007cmV0dXJuIGZ1bmN0aW9uKGUsaSl7dmFyIHMsZCxmO3JldHVybiBpJiYocz1p
LmRvbSxkPWkuc2NoZW1hKSxzPXN8fHUsZD1kfHxuZXcgbyhlKSxlLmVudGl0eV9lbmNvZGluZz1l
LmVudGl0eV9lbmNvZGluZ3x8Im5hbWVkIixlLnJlbW92ZV90cmFpbGluZ19icnM9InJlbW92ZV90
cmFpbGluZ19icnMiaW4gZT9lLnJlbW92ZV90cmFpbGluZ19icnM6ITAsZj1uZXcgdChlLGQpLGYu
YWRkQXR0cmlidXRlRmlsdGVyKCJkYXRhLW1jZS10YWJpbmRleCIsZnVuY3Rpb24oZSx0KXtmb3Io
dmFyIG49ZS5sZW5ndGgscjtuLS07KXI9ZVtuXSxyLmF0dHIoInRhYmluZGV4IixyLmF0dHJpYnV0
ZXMubWFwWyJkYXRhLW1jZS10YWJpbmRleCJdKSxyLmF0dHIodCxudWxsKX0pLGYuYWRkQXR0cmli
dXRlRmlsdGVyKCJzcmMsaHJlZixzdHlsZSIsZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9dC5sZW5n
dGgsaSxvLGE9ImRhdGEtbWNlLSIrbixsPWUudXJsX2NvbnZlcnRlcixjPWUudXJsX2NvbnZlcnRl
cl9zY29wZSx1O3ItLTspaT10W3JdLG89aS5hdHRyaWJ1dGVzLm1hcFthXSxvIT09dT8oaS5hdHRy
KG4sby5sZW5ndGg+MD9vOm51bGwpLGkuYXR0cihhLG51bGwpKToobz1pLmF0dHJpYnV0ZXMubWFw
W25dLCJzdHlsZSI9PT1uP289cy5zZXJpYWxpemVTdHlsZShzLnBhcnNlU3R5bGUobyksaS5uYW1l
KTpsJiYobz1sLmNhbGwoYyxvLG4saS5uYW1lKSksaS5hdHRyKG4sby5sZW5ndGg+MD9vOm51bGwp
KX0pLGYuYWRkQXR0cmlidXRlRmlsdGVyKCJjbGFzcyIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUu
bGVuZ3RoLG4scjt0LS07KW49ZVt0XSxyPW4uYXR0cigiY2xhc3MiKS5yZXBsYWNlKC8oPzpefFxz
KW1jZS1pdGVtLVx3Kyg/IVxTKS9nLCIiKSxuLmF0dHIoImNsYXNzIixyLmxlbmd0aD4wP3I6bnVs
bCl9KSxmLmFkZEF0dHJpYnV0ZUZpbHRlcigiZGF0YS1tY2UtdHlwZSIsZnVuY3Rpb24oZSx0LG4p
e2Zvcih2YXIgcj1lLmxlbmd0aCxpO3ItLTspaT1lW3JdLCJib29rbWFyayIhPT1pLmF0dHJpYnV0
ZXMubWFwWyJkYXRhLW1jZS10eXBlIl18fG4uY2xlYW51cHx8aS5yZW1vdmUoKX0pLGYuYWRkQXR0
cmlidXRlRmlsdGVyKCJkYXRhLW1jZS1leHBhbmRvIixmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1l
Lmxlbmd0aDtuLS07KWVbbl0uYXR0cih0LG51bGwpfSksZi5hZGROb2RlRmlsdGVyKCJub3Njcmlw
dCIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUubGVuZ3RoLHI7dC0tOylyPWVbdF0uZmlyc3RDaGls
ZCxyJiYoci52YWx1ZT1uLmRlY29kZShyLnZhbHVlKSl9KSxmLmFkZE5vZGVGaWx0ZXIoInNjcmlw
dCxzdHlsZSIsZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUpe3JldHVybiBlLnJlcGxhY2UoLyg8
IS0tXFtDREFUQVxbfFxdXF0tLT4pL2csIlxuIikucmVwbGFjZSgvXltcclxuXSp8W1xyXG5dKiQv
ZywiIikucmVwbGFjZSgvXlxzKigoPCEtLSk/KFxzKlwvXC8pP1xzKjwhXFtDREFUQVxbfCg8IS0t
XHMqKT9cL1wqXHMqPCFcW0NEQVRBXFtccypcKlwvfChcL1wvKT9ccyo8IS0tfFwvXCpccyo8IS0t
XHMqXCpcLylccypbXHJcbl0qL2dpLCIiKS5yZXBsYWNlKC9ccyooXC9cKlxzKlxdXF0+XHMqXCpc
LygtLT4pP3xccypcL1wvXHMqXF1cXT4oLS0+KT98XC9cL1xzKigtLT4pP3xcXVxdPnxcL1wqXHMq
LS0+XHMqXCpcL3xccyotLT5ccyopXHMqJC9nLCIiKX1mb3IodmFyIHI9ZS5sZW5ndGgsaSxvO3It
LTspaWYoaT1lW3JdLG89aS5maXJzdENoaWxkP2kuZmlyc3RDaGlsZC52YWx1ZToiIiwic2NyaXB0
Ij09PXQpe3ZhciBhPShpLmF0dHIoInR5cGUiKXx8InRleHQvamF2YXNjcmlwdCIpLnJlcGxhY2Uo
L15tY2VcLS8sIiIpO2kuYXR0cigidHlwZSIsInRleHQvamF2YXNjcmlwdCI9PT1hP251bGw6YSks
by5sZW5ndGg+MCYmKGkuZmlyc3RDaGlsZC52YWx1ZT0iLy8gPCFbQ0RBVEFbXG4iK24obykrIlxu
Ly8gXV0+Iil9ZWxzZSBvLmxlbmd0aD4wJiYoaS5maXJzdENoaWxkLnZhbHVlPSI8IS0tXG4iK24o
bykrIlxuLS0+Iil9KSxmLmFkZE5vZGVGaWx0ZXIoIiNjb21tZW50IixmdW5jdGlvbihlKXtmb3Io
dmFyIHQ9ZS5sZW5ndGgsbjt0LS07KW49ZVt0XSwwPT09bi52YWx1ZS5pbmRleE9mKCJbQ0RBVEFb
Iik/KG4ubmFtZT0iI2NkYXRhIixuLnR5cGU9NCxuLnZhbHVlPW4udmFsdWUucmVwbGFjZSgvXlxb
Q0RBVEFcW3xcXVxdJC9nLCIiKSk6MD09PW4udmFsdWUuaW5kZXhPZigibWNlOnByb3RlY3RlZCAi
KSYmKG4ubmFtZT0iI3RleHQiLG4udHlwZT0zLG4ucmF3PSEwLG4udmFsdWU9dW5lc2NhcGUobi52
YWx1ZSkuc3Vic3RyKDE0KSl9KSxmLmFkZE5vZGVGaWx0ZXIoInhtbDpuYW1lc3BhY2UsaW5wdXQi
LGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI7bi0tOylyPWVbbl0sNz09PXIudHlw
ZT9yLnJlbW92ZSgpOjE9PT1yLnR5cGUmJigiaW5wdXQiIT09dHx8InR5cGUiaW4gci5hdHRyaWJ1
dGVzLm1hcHx8ci5hdHRyKCJ0eXBlIiwidGV4dCIpKX0pLGUuZml4X2xpc3RfZWxlbWVudHMmJmYu
YWRkTm9kZUZpbHRlcigidWwsb2wiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxuLHI7
dC0tOyluPWVbdF0scj1uLnBhcmVudCwoInVsIj09PXIubmFtZXx8Im9sIj09PXIubmFtZSkmJm4u
cHJldiYmImxpIj09PW4ucHJldi5uYW1lJiZuLnByZXYuYXBwZW5kKG4pfSksZi5hZGRBdHRyaWJ1
dGVGaWx0ZXIoImRhdGEtbWNlLXNyYyxkYXRhLW1jZS1ocmVmLGRhdGEtbWNlLXN0eWxlLGRhdGEt
bWNlLXNlbGVjdGVkIixmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aDtuLS07KWVbbl0u
YXR0cih0LG51bGwpfSkse3NjaGVtYTpkLGFkZE5vZGVGaWx0ZXI6Zi5hZGROb2RlRmlsdGVyLGFk
ZEF0dHJpYnV0ZUZpbHRlcjpmLmFkZEF0dHJpYnV0ZUZpbHRlcixzZXJpYWxpemU6ZnVuY3Rpb24o
dCxuKXt2YXIgaT10aGlzLG8sdSxwLGgsbTtyZXR1cm4gYS5pZSYmcy5zZWxlY3QoInNjcmlwdCxz
dHlsZSxzZWxlY3QsbWFwIikubGVuZ3RoPjA/KG09dC5pbm5lckhUTUwsdD10LmNsb25lTm9kZSgh
MSkscy5zZXRIVE1MKHQsbSkpOnQ9dC5jbG9uZU5vZGUoITApLG89dC5vd25lckRvY3VtZW50Lmlt
cGxlbWVudGF0aW9uLG8uY3JlYXRlSFRNTERvY3VtZW50JiYodT1vLmNyZWF0ZUhUTUxEb2N1bWVu
dCgiIiksbCgiQk9EWSI9PXQubm9kZU5hbWU/dC5jaGlsZE5vZGVzOlt0XSxmdW5jdGlvbihlKXt1
LmJvZHkuYXBwZW5kQ2hpbGQodS5pbXBvcnROb2RlKGUsITApKX0pLHQ9IkJPRFkiIT10Lm5vZGVO
YW1lP3UuYm9keS5maXJzdENoaWxkOnUuYm9keSxwPXMuZG9jLHMuZG9jPXUpLG49bnx8e30sbi5m
b3JtYXQ9bi5mb3JtYXR8fCJodG1sIixuLnNlbGVjdGlvbiYmKG4uZm9yY2VkX3Jvb3RfYmxvY2s9
IiIpLG4ubm9fZXZlbnRzfHwobi5ub2RlPXQsaS5vblByZVByb2Nlc3MobikpLGg9bmV3IHIoZSxk
KSxuLmNvbnRlbnQ9aC5zZXJpYWxpemUoZi5wYXJzZShjKG4uZ2V0SW5uZXI/dC5pbm5lckhUTUw6
cy5nZXRPdXRlckhUTUwodCkpLG4pKSxuLmNsZWFudXB8fChuLmNvbnRlbnQ9bi5jb250ZW50LnJl
cGxhY2UoL1x1RkVGRi9nLCIiKSksbi5ub19ldmVudHN8fGkub25Qb3N0UHJvY2VzcyhuKSxwJiYo
cy5kb2M9cCksbi5ub2RlPW51bGwsbi5jb250ZW50fSxhZGRSdWxlczpmdW5jdGlvbihlKXtkLmFk
ZFZhbGlkRWxlbWVudHMoZSl9LHNldFJ1bGVzOmZ1bmN0aW9uKGUpe2Quc2V0VmFsaWRFbGVtZW50
cyhlKX0sb25QcmVQcm9jZXNzOmZ1bmN0aW9uKGUpe2kmJmkuZmlyZSgiUHJlUHJvY2VzcyIsZSl9
LG9uUG9zdFByb2Nlc3M6ZnVuY3Rpb24oZSl7aSYmaS5maXJlKCJQb3N0UHJvY2VzcyIsZSl9fX19
KSxyKFQsW10sZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2Z1bmN0aW9uIHQodCxuKXt2YXIgcixp
PTAsbyxhLHMsbCxjLHUsZD0tMSxmO2lmKHI9dC5kdXBsaWNhdGUoKSxyLmNvbGxhcHNlKG4pLGY9
ci5wYXJlbnRFbGVtZW50KCksZi5vd25lckRvY3VtZW50PT09ZS5kb20uZG9jKXtmb3IoOyJmYWxz
ZSI9PT1mLmNvbnRlbnRFZGl0YWJsZTspZj1mLnBhcmVudE5vZGU7CitpZighZi5oYXNDaGlsZE5v
ZGVzKCkpcmV0dXJue25vZGU6ZixpbnNpZGU6MX07Zm9yKHM9Zi5jaGlsZHJlbixvPXMubGVuZ3Ro
LTE7bz49aTspaWYodT1NYXRoLmZsb29yKChpK28pLzIpLGw9c1t1XSxyLm1vdmVUb0VsZW1lbnRU
ZXh0KGwpLGQ9ci5jb21wYXJlRW5kUG9pbnRzKG4/IlN0YXJ0VG9TdGFydCI6IkVuZFRvRW5kIix0
KSxkPjApbz11LTE7ZWxzZXtpZighKDA+ZCkpcmV0dXJue25vZGU6bH07aT11KzF9aWYoMD5kKWZv
cihsP3IuY29sbGFwc2UoITEpOihyLm1vdmVUb0VsZW1lbnRUZXh0KGYpLHIuY29sbGFwc2UoITAp
LGw9ZixhPSEwKSxjPTA7MCE9PXIuY29tcGFyZUVuZFBvaW50cyhuPyJTdGFydFRvU3RhcnQiOiJT
dGFydFRvRW5kIix0KSYmMCE9PXIubW92ZSgiY2hhcmFjdGVyIiwxKSYmZj09ci5wYXJlbnRFbGVt
ZW50KCk7KWMrKztlbHNlIGZvcihyLmNvbGxhcHNlKCEwKSxjPTA7MCE9PXIuY29tcGFyZUVuZFBv
aW50cyhuPyJTdGFydFRvU3RhcnQiOiJTdGFydFRvRW5kIix0KSYmMCE9PXIubW92ZSgiY2hhcmFj
dGVyIiwtMSkmJmY9PXIucGFyZW50RWxlbWVudCgpOyljKys7cmV0dXJue25vZGU6bCxwb3NpdGlv
bjpkLG9mZnNldDpjLGluc2lkZTphfX19ZnVuY3Rpb24gbigpe2Z1bmN0aW9uIG4oZSl7dmFyIG49
dChvLGUpLHIsaSxzPTAsbCxjLHU7aWYocj1uLm5vZGUsaT1uLm9mZnNldCxuLmluc2lkZSYmIXIu
aGFzQ2hpbGROb2RlcygpKXJldHVybiB2b2lkIGFbZT8ic2V0U3RhcnQiOiJzZXRFbmQiXShyLDAp
O2lmKGk9PT1jKXJldHVybiB2b2lkIGFbZT8ic2V0U3RhcnRCZWZvcmUiOiJzZXRFbmRBZnRlciJd
KHIpO2lmKG4ucG9zaXRpb248MCl7aWYobD1uLmluc2lkZT9yLmZpcnN0Q2hpbGQ6ci5uZXh0U2li
bGluZywhbClyZXR1cm4gdm9pZCBhW2U/InNldFN0YXJ0QWZ0ZXIiOiJzZXRFbmRBZnRlciJdKHIp
O2lmKCFpKXJldHVybiB2b2lkKDM9PWwubm9kZVR5cGU/YVtlPyJzZXRTdGFydCI6InNldEVuZCJd
KGwsMCk6YVtlPyJzZXRTdGFydEJlZm9yZSI6InNldEVuZEJlZm9yZSJdKGwpKTtmb3IoO2w7KXtp
Zih1PWwubm9kZVZhbHVlLHMrPXUubGVuZ3RoLHM+PWkpe3I9bCxzLT1pLHM9dS5sZW5ndGgtczti
cmVha31sPWwubmV4dFNpYmxpbmd9fWVsc2V7aWYobD1yLnByZXZpb3VzU2libGluZywhbClyZXR1
cm4gYVtlPyJzZXRTdGFydEJlZm9yZSI6InNldEVuZEJlZm9yZSJdKHIpO2lmKCFpKXJldHVybiB2
b2lkKDM9PXIubm9kZVR5cGU/YVtlPyJzZXRTdGFydCI6InNldEVuZCJdKGwsci5ub2RlVmFsdWUu
bGVuZ3RoKTphW2U/InNldFN0YXJ0QWZ0ZXIiOiJzZXRFbmRBZnRlciJdKGwpKTtmb3IoO2w7KXtp
ZihzKz1sLm5vZGVWYWx1ZS5sZW5ndGgscz49aSl7cj1sLHMtPWk7YnJlYWt9bD1sLnByZXZpb3Vz
U2libGluZ319YVtlPyJzZXRTdGFydCI6InNldEVuZCJdKHIscyl9dmFyIG89ZS5nZXRSbmcoKSxh
PWkuY3JlYXRlUm5nKCkscyxsLGMsdSxkO2lmKHM9by5pdGVtP28uaXRlbSgwKTpvLnBhcmVudEVs
ZW1lbnQoKSxzLm93bmVyRG9jdW1lbnQhPWkuZG9jKXJldHVybiBhO2lmKGw9ZS5pc0NvbGxhcHNl
ZCgpLG8uaXRlbSlyZXR1cm4gYS5zZXRTdGFydChzLnBhcmVudE5vZGUsaS5ub2RlSW5kZXgocykp
LGEuc2V0RW5kKGEuc3RhcnRDb250YWluZXIsYS5zdGFydE9mZnNldCsxKSxhO3RyeXtuKCEwKSxs
fHxuKCl9Y2F0Y2goZil7aWYoLTIxNDcwMjQ4MDkhPWYubnVtYmVyKXRocm93IGY7ZD1yLmdldEJv
b2ttYXJrKDIpLGM9by5kdXBsaWNhdGUoKSxjLmNvbGxhcHNlKCEwKSxzPWMucGFyZW50RWxlbWVu
dCgpLGx8fChjPW8uZHVwbGljYXRlKCksYy5jb2xsYXBzZSghMSksdT1jLnBhcmVudEVsZW1lbnQo
KSx1LmlubmVySFRNTD11LmlubmVySFRNTCkscy5pbm5lckhUTUw9cy5pbm5lckhUTUwsci5tb3Zl
VG9Cb29rbWFyayhkKSxvPWUuZ2V0Um5nKCksbighMCksbHx8bigpfXJldHVybiBhfXZhciByPXRo
aXMsaT1lLmRvbSxvPSExO3RoaXMuZ2V0Qm9va21hcms9ZnVuY3Rpb24obil7ZnVuY3Rpb24gcihl
KXt2YXIgdCxuLHIsbyxhPVtdO2Zvcih0PWUucGFyZW50Tm9kZSxuPWkuZ2V0Um9vdCgpLnBhcmVu
dE5vZGU7dCE9biYmOSE9PXQubm9kZVR5cGU7KXtmb3Iocj10LmNoaWxkcmVuLG89ci5sZW5ndGg7
by0tOylpZihlPT09cltvXSl7YS5wdXNoKG8pO2JyZWFrfWU9dCx0PXQucGFyZW50Tm9kZX1yZXR1
cm4gYX1mdW5jdGlvbiBvKGUpe3ZhciBuO3JldHVybiBuPXQoYSxlKSxuP3twb3NpdGlvbjpuLnBv
c2l0aW9uLG9mZnNldDpuLm9mZnNldCxpbmRleGVzOnIobi5ub2RlKSxpbnNpZGU6bi5pbnNpZGV9
OnZvaWQgMH12YXIgYT1lLmdldFJuZygpLHM9e307cmV0dXJuIDI9PT1uJiYoYS5pdGVtP3Muc3Rh
cnQ9e2N0cmw6ITAsaW5kZXhlczpyKGEuaXRlbSgwKSl9OihzLnN0YXJ0PW8oITApLGUuaXNDb2xs
YXBzZWQoKXx8KHMuZW5kPW8oKSkpKSxzfSx0aGlzLm1vdmVUb0Jvb2ttYXJrPWZ1bmN0aW9uKGUp
e2Z1bmN0aW9uIHQoZSl7dmFyIHQsbixyLG87Zm9yKHQ9aS5nZXRSb290KCksbj1lLmxlbmd0aC0x
O24+PTA7bi0tKW89dC5jaGlsZHJlbixyPWVbbl0scjw9by5sZW5ndGgtMSYmKHQ9b1tyXSk7cmV0
dXJuIHR9ZnVuY3Rpb24gbihuKXt2YXIgaT1lW24/InN0YXJ0IjoiZW5kIl0sYSxzLGwsYztpJiYo
YT1pLnBvc2l0aW9uPjAscz1vLmNyZWF0ZVRleHRSYW5nZSgpLHMubW92ZVRvRWxlbWVudFRleHQo
dChpLmluZGV4ZXMpKSxjPWkub2Zmc2V0LGMhPT1sPyhzLmNvbGxhcHNlKGkuaW5zaWRlfHxhKSxz
Lm1vdmVTdGFydCgiY2hhcmFjdGVyIixhPy1jOmMpKTpzLmNvbGxhcHNlKG4pLHIuc2V0RW5kUG9p
bnQobj8iU3RhcnRUb1N0YXJ0IjoiRW5kVG9TdGFydCIscyksbiYmci5jb2xsYXBzZSghMCkpfXZh
ciByLG89aS5kb2MuYm9keTtlLnN0YXJ0JiYoZS5zdGFydC5jdHJsPyhyPW8uY3JlYXRlQ29udHJv
bFJhbmdlKCksci5hZGRFbGVtZW50KHQoZS5zdGFydC5pbmRleGVzKSksci5zZWxlY3QoKSk6KHI9
by5jcmVhdGVUZXh0UmFuZ2UoKSxuKCEwKSxuKCksci5zZWxlY3QoKSkpfSx0aGlzLmFkZFJhbmdl
PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSl7dmFyIHQsbixhLGQsaDthPWkuY3JlYXRlKCJhIiks
dD1lP3M6YyxuPWU/bDp1LGQ9ci5kdXBsaWNhdGUoKSwodD09Znx8dD09Zi5kb2N1bWVudEVsZW1l
bnQpJiYodD1wLG49MCksMz09dC5ub2RlVHlwZT8odC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShh
LHQpLGQubW92ZVRvRWxlbWVudFRleHQoYSksZC5tb3ZlU3RhcnQoImNoYXJhY3RlciIsbiksaS5y
ZW1vdmUoYSksci5zZXRFbmRQb2ludChlPyJTdGFydFRvU3RhcnQiOiJFbmRUb0VuZCIsZCkpOiho
PXQuY2hpbGROb2RlcyxoLmxlbmd0aD8obj49aC5sZW5ndGg/aS5pbnNlcnRBZnRlcihhLGhbaC5s
ZW5ndGgtMV0pOnQuaW5zZXJ0QmVmb3JlKGEsaFtuXSksZC5tb3ZlVG9FbGVtZW50VGV4dChhKSk6
dC5jYW5IYXZlSFRNTCYmKHQuaW5uZXJIVE1MPSI8c3Bhbj4mI3hGRUZGOzwvc3Bhbj4iLGE9dC5m
aXJzdENoaWxkLGQubW92ZVRvRWxlbWVudFRleHQoYSksZC5jb2xsYXBzZShvKSksci5zZXRFbmRQ
b2ludChlPyJTdGFydFRvU3RhcnQiOiJFbmRUb0VuZCIsZCksaS5yZW1vdmUoYSkpfXZhciByLGEs
cyxsLGMsdSxkLGY9ZS5kb20uZG9jLHA9Zi5ib2R5LGgsbTtpZihzPXQuc3RhcnRDb250YWluZXIs
bD10LnN0YXJ0T2Zmc2V0LGM9dC5lbmRDb250YWluZXIsdT10LmVuZE9mZnNldCxyPXAuY3JlYXRl
VGV4dFJhbmdlKCkscz09YyYmMT09cy5ub2RlVHlwZSl7aWYobD09dSYmIXMuaGFzQ2hpbGROb2Rl
cygpKXtpZihzLmNhbkhhdmVIVE1MKXJldHVybiBkPXMucHJldmlvdXNTaWJsaW5nLGQmJiFkLmhh
c0NoaWxkTm9kZXMoKSYmaS5pc0Jsb2NrKGQpP2QuaW5uZXJIVE1MPSImI3hGRUZGOyI6ZD1udWxs
LHMuaW5uZXJIVE1MPSI8c3Bhbj4mI3hGRUZGOzwvc3Bhbj48c3Bhbj4mI3hGRUZGOzwvc3Bhbj4i
LHIubW92ZVRvRWxlbWVudFRleHQocy5sYXN0Q2hpbGQpLHIuc2VsZWN0KCksaS5kb2Muc2VsZWN0
aW9uLmNsZWFyKCkscy5pbm5lckhUTUw9IiIsdm9pZChkJiYoZC5pbm5lckhUTUw9IiIpKTtsPWku
bm9kZUluZGV4KHMpLHM9cy5wYXJlbnROb2RlfWlmKGw9PXUtMSl0cnl7aWYobT1zLmNoaWxkTm9k
ZXNbbF0sYT1wLmNyZWF0ZUNvbnRyb2xSYW5nZSgpLGEuYWRkRWxlbWVudChtKSxhLnNlbGVjdCgp
LGg9ZS5nZXRSbmcoKSxoLml0ZW0mJm09PT1oLml0ZW0oMCkpcmV0dXJufWNhdGNoKGcpe319bigh
MCksbigpLHIuc2VsZWN0KCl9LHRoaXMuZ2V0UmFuZ2VBdD1ufXJldHVybiBlfSkscihSLFtnXSxm
dW5jdGlvbihlKXtyZXR1cm57QkFDS1NQQUNFOjgsREVMRVRFOjQ2LERPV046NDAsRU5URVI6MTMs
TEVGVDozNyxSSUdIVDozOSxTUEFDRUJBUjozMixUQUI6OSxVUDozOCxtb2RpZmllclByZXNzZWQ6
ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2hpZnRLZXl8fGUuY3RybEtleXx8ZS5hbHRLZXl9LG1ldGFL
ZXlQcmVzc2VkOmZ1bmN0aW9uKHQpe3JldHVybihlLm1hYz90Lm1ldGFLZXk6dC5jdHJsS2V5KSYm
IXQuYWx0S2V5fX19KSxyKEEsW1IscCxnXSxmdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0aW9u
KHIsaSl7ZnVuY3Rpb24gbyhlKXt2YXIgdD1pLnNldHRpbmdzLm9iamVjdF9yZXNpemluZztyZXR1
cm4gdD09PSExfHxuLmlPUz8hMTooInN0cmluZyIhPXR5cGVvZiB0JiYodD0idGFibGUsaW1nLGRp
diIpLCJmYWxzZSI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtcmVzaXplIik/ITE6aS5kb20u
aXMoZSx0KSl9ZnVuY3Rpb24gYSh0KXt2YXIgbixyO249dC5zY3JlZW5YLWsscj10LnNjcmVlblkt
VCxIPW4qRVsyXStCLFA9cipFWzNdK0QsSD01Pkg/NTpILFA9NT5QPzU6UCwoZS5tb2RpZmllclBy
ZXNzZWQodCl8fCJJTUciPT13Lm5vZGVOYW1lJiZFWzJdKkVbM10hPT0wKSYmKEg9TWF0aC5yb3Vu
ZChQL0wpLFA9TWF0aC5yb3VuZChIKkwpKSxDLnNldFN0eWxlcyhfLHt3aWR0aDpILGhlaWdodDpQ
fSksRVsyXTwwJiZfLmNsaWVudFdpZHRoPD1IJiZDLnNldFN0eWxlKF8sImxlZnQiLFIrKEItSCkp
LEVbM108MCYmXy5jbGllbnRIZWlnaHQ8PVAmJkMuc2V0U3R5bGUoXywidG9wIixBKyhELVApKSxN
fHwoaS5maXJlKCJPYmplY3RSZXNpemVTdGFydCIse3RhcmdldDp3LHdpZHRoOkIsaGVpZ2h0OkR9
KSxNPSEwKX1mdW5jdGlvbiBzKCl7ZnVuY3Rpb24gZShlLHQpe3QmJih3LnN0eWxlW2VdfHwhaS5z
Y2hlbWEuaXNWYWxpZCh3Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksZSk/Qy5zZXRTdHlsZSh3LGUs
dCk6Qy5zZXRBdHRyaWIodyxlLHQpKX1NPSExLGUoIndpZHRoIixIKSxlKCJoZWlnaHQiLFApLEMu
dW5iaW5kKE8sIm1vdXNlbW92ZSIsYSksQy51bmJpbmQoTywibW91c2V1cCIscyksSSE9TyYmKEMu
dW5iaW5kKEksIm1vdXNlbW92ZSIsYSksQy51bmJpbmQoSSwibW91c2V1cCIscykpLEMucmVtb3Zl
KF8pLEYmJiJUQUJMRSIhPXcubm9kZU5hbWV8fGwodyksaS5maXJlKCJPYmplY3RSZXNpemVkIix7
dGFyZ2V0Oncsd2lkdGg6SCxoZWlnaHQ6UH0pLGkubm9kZUNoYW5nZWQoKX1mdW5jdGlvbiBsKGUs
dCxyKXt2YXIgbCx1LGQsZixwLGg9aS5nZXRCb2R5KCk7ZygpLGw9Qy5nZXRQb3MoZSxoKSxSPWwu
eCxBPWwueSxwPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1wLndpZHRofHxwLnJpZ2h0LXAu
bGVmdCxkPXAuaGVpZ2h0fHxwLmJvdHRvbS1wLnRvcCx3IT1lJiYobSgpLHc9ZSxIPVA9MCksZj1p
LmZpcmUoIk9iamVjdFNlbGVjdGVkIix7dGFyZ2V0OmV9KSxvKGUpJiYhZi5pc0RlZmF1bHRQcmV2
ZW50ZWQoKT94KE4sZnVuY3Rpb24oZSxvKXtmdW5jdGlvbiBsKHQpe2s9dC5zY3JlZW5YLFQ9dC5z
Y3JlZW5ZLEI9dy5jbGllbnRXaWR0aCxEPXcuY2xpZW50SGVpZ2h0LEw9RC9CLEU9ZSxfPXcuY2xv
bmVOb2RlKCEwKSxDLmFkZENsYXNzKF8sIm1jZS1jbG9uZWRyZXNpemFibGUiKSxfLmNvbnRlbnRF
ZGl0YWJsZT0hMSxfLnVuU2VsZWN0YWJlPSEwLEMuc2V0U3R5bGVzKF8se2xlZnQ6Uix0b3A6QSxt
YXJnaW46MH0pLF8ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLW1jZS1zZWxlY3RlZCIpLGkuZ2V0Qm9k
eSgpLmFwcGVuZENoaWxkKF8pLEMuYmluZChPLCJtb3VzZW1vdmUiLGEpLEMuYmluZChPLCJtb3Vz
ZXVwIixzKSxJIT1PJiYoQy5iaW5kKEksIm1vdXNlbW92ZSIsYSksQy5iaW5kKEksIm1vdXNldXAi
LHMpKX12YXIgYyxmO3JldHVybiB0P3ZvaWQobz09dCYmbChyKSk6KGM9Qy5nZXQoIm1jZVJlc2l6
ZUhhbmRsZSIrbyksYz9DLnNob3coYyk6KGY9aS5nZXRCb2R5KCksYz1DLmFkZChmLCJkaXYiLHtp
ZDoibWNlUmVzaXplSGFuZGxlIitvLCJkYXRhLW1jZS1ib2d1cyI6ITAsImNsYXNzIjoibWNlLXJl
c2l6ZWhhbmRsZSIsdW5zZWxlY3RhYmxlOiEwLHN0eWxlOiJjdXJzb3I6IitvKyItcmVzaXplOyBt
YXJnaW46MDsgcGFkZGluZzowIn0pLG4uaWUmJihjLmNvbnRlbnRFZGl0YWJsZT0hMSkpLGUuZWxt
fHwoQy5iaW5kKGMsIm1vdXNlZG93biIsZnVuY3Rpb24oZSl7ZS5zdG9wSW1tZWRpYXRlUHJvcGFn
YXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksbChlKX0pLGUuZWxtPWMpLHZvaWQgQy5zZXRTdHls
ZXMoYyx7bGVmdDp1KmVbMF0rUi1jLm9mZnNldFdpZHRoLzIsdG9wOmQqZVsxXStBLWMub2Zmc2V0
SGVpZ2h0LzJ9KSl9KTpjKCksdy5zZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXNlbGVjdGVkIiwiMSIp
fWZ1bmN0aW9uIGMoKXt2YXIgZSx0O2coKSx3JiZ3LnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1tY2Ut
c2VsZWN0ZWQiKTtmb3IoZSBpbiBOKXQ9Qy5nZXQoIm1jZVJlc2l6ZUhhbmRsZSIrZSksdCYmKEMu
dW5iaW5kKHQpLEMucmVtb3ZlKHQpKX1mdW5jdGlvbiB1KGUpe2Z1bmN0aW9uIHQoZSx0KXtpZihl
KWRvIGlmKGU9PT10KXJldHVybiEwO3doaWxlKGU9ZS5wYXJlbnROb2RlKX12YXIgbjtyZXR1cm4g
eChDLnNlbGVjdCgiaW1nW2RhdGEtbWNlLXNlbGVjdGVkXSxocltkYXRhLW1jZS1zZWxlY3RlZF0i
KSxmdW5jdGlvbihlKXtlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1tY2Utc2VsZWN0ZWQiKX0pLG49
Im1vdXNlZG93biI9PWUudHlwZT9lLnRhcmdldDpyLmdldE5vZGUoKSxuPUMuZ2V0UGFyZW50KG4s
Rj8idGFibGUiOiJ0YWJsZSxpbWcsaHIiKSx0KG4saS5nZXRCb2R5KCkpJiYodigpLHQoci5nZXRT
dGFydCgpLG4pJiZ0KHIuZ2V0RW5kKCksbikmJighRnx8biE9ci5nZXRTdGFydCgpJiYiSU1HIiE9
PXIuZ2V0U3RhcnQoKS5ub2RlTmFtZSkpP3ZvaWQgbChuKTp2b2lkIGMoKX1mdW5jdGlvbiBkKGUs
dCxuKXtlJiZlLmF0dGFjaEV2ZW50JiZlLmF0dGFjaEV2ZW50KCJvbiIrdCxuKX1mdW5jdGlvbiBm
KGUsdCxuKXtlJiZlLmRldGFjaEV2ZW50JiZlLmRldGFjaEV2ZW50KCJvbiIrdCxuKX1mdW5jdGlv
biBwKGUpe3ZhciB0PWUuc3JjRWxlbWVudCxuLHIsbyxhLHMsYyx1O249dC5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKSxjPVMuY2xpZW50WC1uLmxlZnQsdT1TLmNsaWVudFktbi50b3A7Zm9yKHIgaW4g
TilpZihvPU5bcl0sYT10Lm9mZnNldFdpZHRoKm9bMF0scz10Lm9mZnNldEhlaWdodCpvWzFdLE1h
dGguYWJzKGEtYyk8OCYmTWF0aC5hYnMocy11KTw4KXtFPW87YnJlYWt9TT0hMCxpLmdldERvYygp
LnNlbGVjdGlvbi5lbXB0eSgpLGwodCxyLFMpfWZ1bmN0aW9uIGgoZSl7dmFyIHQ9ZS5zcmNFbGVt
ZW50O2lmKHQhPXcpe2lmKG0oKSwwPT09dC5pZC5pbmRleE9mKCJtY2VSZXNpemVIYW5kbGUiKSly
ZXR1cm4gdm9pZChlLnJldHVyblZhbHVlPSExKTsoIklNRyI9PXQubm9kZU5hbWV8fCJUQUJMRSI9
PXQubm9kZU5hbWUpJiYoYygpLHc9dCxkKHQsInJlc2l6ZXN0YXJ0IixwKSl9fWZ1bmN0aW9uIG0o
KXtmKHcsInJlc2l6ZXN0YXJ0IixwKX1mdW5jdGlvbiBnKCl7Zm9yKHZhciBlIGluIE4pe3ZhciB0
PU5bZV07dC5lbG0mJihDLnVuYmluZCh0LmVsbSksZGVsZXRlIHQuZWxtKX19ZnVuY3Rpb24gdigp
e3RyeXtpLmdldERvYygpLmV4ZWNDb21tYW5kKCJlbmFibGVPYmplY3RSZXNpemluZyIsITEsITEp
fWNhdGNoKGUpe319ZnVuY3Rpb24geShlKXt2YXIgdDtpZihGKXt0PU8uYm9keS5jcmVhdGVDb250
cm9sUmFuZ2UoKTt0cnl7cmV0dXJuIHQuYWRkRWxlbWVudChlKSx0LnNlbGVjdCgpLCEwfWNhdGNo
KG4pe319fWZ1bmN0aW9uIGIoKXt3PV89bnVsbCxGJiYobSgpLGYoaS5nZXRCb2R5KCksImNvbnRy
b2xzZWxlY3QiLGgpKX12YXIgQz1pLmRvbSx4PXQuZWFjaCx3LF8sTixFLFMsayxULFIsQSxCLEQs
TCxNLEgsUCxPPWkuZ2V0RG9jKCksST1kb2N1bWVudCxGPW4uaWUmJm4uaWU8MTE7Tj17bjpbLjUs
MCwwLC0xXSxlOlsxLC41LDEsMF0sczpbLjUsMSwwLDFdLHc6WzAsLjUsLTEsMF0sbnc6WzAsMCwt
MSwtMV0sbmU6WzEsMCwxLC0xXSxzZTpbMSwxLDEsMV0sc3c6WzAsMSwtMSwxXX07dmFyIHo9Ii5t
Y2UtY29udGVudC1ib2R5IjtyZXR1cm4gaS5jb250ZW50U3R5bGVzLnB1c2goeisiIGRpdi5tY2Ut
cmVzaXplaGFuZGxlIHtwb3NpdGlvbjogYWJzb2x1dGU7Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7
YmFja2dyb3VuZDogI0ZGRjt3aWR0aDogNXB4O2hlaWdodDogNXB4O3otaW5kZXg6IDEwMDAwfSIr
eisiIC5tY2UtcmVzaXplaGFuZGxlOmhvdmVyIHtiYWNrZ3JvdW5kOiAjMDAwfSIreisiIGltZ1tk
YXRhLW1jZS1zZWxlY3RlZF0sIGhyW2RhdGEtbWNlLXNlbGVjdGVkXSB7b3V0bGluZTogMXB4IHNv
bGlkIGJsYWNrO3Jlc2l6ZTogbm9uZX0iK3orIiAubWNlLWNsb25lZHJlc2l6YWJsZSB7cG9zaXRp
b246IGFic29sdXRlOyIrKG4uZ2Vja28/IiI6Im91dGxpbmU6IDFweCBkYXNoZWQgYmxhY2s7Iikr
Im9wYWNpdHk6IC41O2ZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7ei1pbmRleDogMTAwMDB9Iiks
aS5vbigiaW5pdCIsZnVuY3Rpb24oKXtGPyhpLm9uKCJPYmplY3RSZXNpemVkIixmdW5jdGlvbihl
KXsiVEFCTEUiIT1lLnRhcmdldC5ub2RlTmFtZSYmKGMoKSx5KGUudGFyZ2V0KSl9KSxkKGkuZ2V0
Qm9keSgpLCJjb250cm9sc2VsZWN0IixoKSxpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpe1M9
ZX0pKToodigpLG4uaWU+PTExJiYoaS5vbigibW91c2V1cCIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50
YXJnZXQubm9kZU5hbWU7L14oVEFCTEV8SU1HfEhSKSQvLnRlc3QodCkmJihpLnNlbGVjdGlvbi5z
ZWxlY3QoZS50YXJnZXQsIlRBQkxFIj09dCksaS5ub2RlQ2hhbmdlZCgpKX0pLGkuZG9tLmJpbmQo
aS5nZXRCb2R5KCksIm1zY29udHJvbHNlbGVjdCIsZnVuY3Rpb24oZSl7L14oVEFCTEV8SU1HfEhS
KSQvLnRlc3QoZS50YXJnZXQubm9kZU5hbWUpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLCJJTUciPT1l
LnRhcmdldC50YWdOYW1lJiZ3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2kuc2VsZWN0aW9u
LnNlbGVjdChlLnRhcmdldCl9LDApKX0pKSksaS5vbigibm9kZWNoYW5nZSBtb3VzZWRvd24gbW91
c2V1cCBSZXNpemVFZGl0b3IiLHUpLGkub24oImtleWRvd24ga2V5dXAiLGZ1bmN0aW9uKGUpe3cm
JiJUQUJMRSI9PXcubm9kZU5hbWUmJnUoZSl9KSxpLm9uKCJoaWRlIixjKX0pLGkub24oInJlbW92
ZSIsZykse2lzUmVzaXphYmxlOm8sc2hvd1Jlc2l6ZVJlY3Q6bCxoaWRlUmVzaXplUmVjdDpjLHVw
ZGF0ZVJlc2l6ZVJlY3Q6dSxjb250cm9sU2VsZWN0OnksZGVzdHJveTpifX19KSxyKEIsW3AsZl0s
ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUpe3RoaXMud2Fsaz1mdW5jdGlvbih0LG4pe2Z1bmN0
aW9uIGkoZSl7dmFyIHQ7cmV0dXJuIHQ9ZVswXSwzPT09dC5ub2RlVHlwZSYmdD09PWwmJmM+PXQu
bm9kZVZhbHVlLmxlbmd0aCYmZS5zcGxpY2UoMCwxKSx0PWVbZS5sZW5ndGgtMV0sMD09PWQmJmUu
bGVuZ3RoPjAmJnQ9PT11JiYzPT09dC5ub2RlVHlwZSYmZS5zcGxpY2UoZS5sZW5ndGgtMSwxKSxl
fWZ1bmN0aW9uIG8oZSx0LG4pe2Zvcih2YXIgcj1bXTtlJiZlIT1uO2U9ZVt0XSlyLnB1c2goZSk7
cmV0dXJuIHJ9ZnVuY3Rpb24gYShlLHQpe2Rve2lmKGUucGFyZW50Tm9kZT09dClyZXR1cm4gZTtl
PWUucGFyZW50Tm9kZX13aGlsZShlKX1mdW5jdGlvbiBzKGUsdCxyKXt2YXIgYT1yPyJuZXh0U2li
bGluZyI6InByZXZpb3VzU2libGluZyI7Zm9yKG09ZSxnPW0ucGFyZW50Tm9kZTttJiZtIT10O209
ZylnPW0ucGFyZW50Tm9kZSx2PW8obT09ZT9tOm1bYV0sYSksdi5sZW5ndGgmJihyfHx2LnJldmVy
c2UoKSxuKGkodikpKX12YXIgbD10LnN0YXJ0Q29udGFpbmVyLGM9dC5zdGFydE9mZnNldCx1PXQu
ZW5kQ29udGFpbmVyLGQ9dC5lbmRPZmZzZXQsZixwLGgsbSxnLHYseTtpZih5PWUuc2VsZWN0KCJ0
ZC5tY2UtaXRlbS1zZWxlY3RlZCx0aC5tY2UtaXRlbS1zZWxlY3RlZCIpLHkubGVuZ3RoPjApcmV0
dXJuIHZvaWQgcih5LGZ1bmN0aW9uKGUpe24oW2VdKX0pO2lmKDE9PWwubm9kZVR5cGUmJmwuaGFz
Q2hpbGROb2RlcygpJiYobD1sLmNoaWxkTm9kZXNbY10pLDE9PXUubm9kZVR5cGUmJnUuaGFzQ2hp
bGROb2RlcygpJiYodT11LmNoaWxkTm9kZXNbTWF0aC5taW4oZC0xLHUuY2hpbGROb2Rlcy5sZW5n
dGgtMSldKSxsPT11KXJldHVybiBuKGkoW2xdKSk7Zm9yKGY9ZS5maW5kQ29tbW9uQW5jZXN0b3Io
bCx1KSxtPWw7bTttPW0ucGFyZW50Tm9kZSl7aWYobT09PXUpcmV0dXJuIHMobCxmLCEwKTtpZiht
PT09ZilicmVha31mb3IobT11O207bT1tLnBhcmVudE5vZGUpe2lmKG09PT1sKXJldHVybiBzKHUs
Zik7aWYobT09PWYpYnJlYWt9cD1hKGwsZil8fGwsaD1hKHUsZil8fHUscyhsLHAsITApLHY9byhw
PT1sP3A6cC5uZXh0U2libGluZywibmV4dFNpYmxpbmciLGg9PXU/aC5uZXh0U2libGluZzpoKSx2
Lmxlbmd0aCYmbihpKHYpKSxzKHUsaCl9LHRoaXMuc3BsaXQ9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24g
dChlLHQpe3JldHVybiBlLnNwbGl0VGV4dCh0KX12YXIgbj1lLnN0YXJ0Q29udGFpbmVyLHI9ZS5z
dGFydE9mZnNldCxpPWUuZW5kQ29udGFpbmVyLG89ZS5lbmRPZmZzZXQ7cmV0dXJuIG49PWkmJjM9
PW4ubm9kZVR5cGU/cj4wJiZyPG4ubm9kZVZhbHVlLmxlbmd0aCYmKGk9dChuLHIpLG49aS5wcmV2
aW91c1NpYmxpbmcsbz5yPyhvLT1yLG49aT10KGksbykucHJldmlvdXNTaWJsaW5nLG89aS5ub2Rl
VmFsdWUubGVuZ3RoLHI9MCk6bz0wKTooMz09bi5ub2RlVHlwZSYmcj4wJiZyPG4ubm9kZVZhbHVl
Lmxlbmd0aCYmKG49dChuLHIpLHI9MCksMz09aS5ub2RlVHlwZSYmbz4wJiZvPGkubm9kZVZhbHVl
Lmxlbmd0aCYmKGk9dChpLG8pLnByZXZpb3VzU2libGluZyxvPWkubm9kZVZhbHVlLmxlbmd0aCkp
LHtzdGFydENvbnRhaW5lcjpuLHN0YXJ0T2Zmc2V0OnIsZW5kQ29udGFpbmVyOmksZW5kT2Zmc2V0
Om99fSx0aGlzLm5vcm1hbGl6ZT1mdW5jdGlvbihuKXtmdW5jdGlvbiByKHIpe2Z1bmN0aW9uIGEo
bixyKXtmb3IodmFyIGk9bmV3IHQobixlLmdldFBhcmVudChuLnBhcmVudE5vZGUsZS5pc0Jsb2Nr
KXx8Zik7bj1pW3I/InByZXYiOiJuZXh0Il0oKTspaWYoIkJSIj09PW4ubm9kZU5hbWUpcmV0dXJu
ITB9ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBlLnByZXZpb3VzU2libGluZyYmZS5wcmV2aW91c1Np
Ymxpbmcubm9kZU5hbWU9PXR9ZnVuY3Rpb24gbChuLHIpe3ZhciBhLHMsbDtpZihyPXJ8fGMsbD1l
LmdldFBhcmVudChyLnBhcmVudE5vZGUsZS5pc0Jsb2NrKXx8ZixuJiYiQlIiPT1yLm5vZGVOYW1l
JiZnJiZlLmlzRW1wdHkobCkpcmV0dXJuIGM9ci5wYXJlbnROb2RlLHU9ZS5ub2RlSW5kZXgociks
dm9pZChpPSEwKTtmb3IoYT1uZXcgdChyLGwpO3A9YVtuPyJwcmV2IjoibmV4dCJdKCk7KXtpZigi
ZmFsc2UiPT09ZS5nZXRDb250ZW50RWRpdGFibGVQYXJlbnQocCkpcmV0dXJuO2lmKDM9PT1wLm5v
ZGVUeXBlJiZwLm5vZGVWYWx1ZS5sZW5ndGg+MClyZXR1cm4gYz1wLHU9bj9wLm5vZGVWYWx1ZS5s
ZW5ndGg6MCx2b2lkKGk9ITApO2lmKGUuaXNCbG9jayhwKXx8aFtwLm5vZGVOYW1lLnRvTG93ZXJD
YXNlKCldKXJldHVybjtzPXB9byYmcyYmKGM9cyxpPSEwLHU9MCl9dmFyIGMsdSxkLGY9ZS5nZXRS
b290KCkscCxoLG0sZztpZihjPW5bKHI/InN0YXJ0IjoiZW5kIikrIkNvbnRhaW5lciJdLHU9blso
cj8ic3RhcnQiOiJlbmQiKSsiT2Zmc2V0Il0sZz0xPT1jLm5vZGVUeXBlJiZ1PT09Yy5jaGlsZE5v
ZGVzLmxlbmd0aCxoPWUuc2NoZW1hLmdldE5vbkVtcHR5RWxlbWVudHMoKSxtPXIsMT09Yy5ub2Rl
VHlwZSYmdT5jLmNoaWxkTm9kZXMubGVuZ3RoLTEmJihtPSExKSw5PT09Yy5ub2RlVHlwZSYmKGM9
ZS5nZXRSb290KCksdT0wKSxjPT09Zil7aWYobSYmKHA9Yy5jaGlsZE5vZGVzW3U+MD91LTE6MF0s
cCYmKGhbcC5ub2RlTmFtZV18fCJUQUJMRSI9PXAubm9kZU5hbWUpKSlyZXR1cm47aWYoYy5oYXND
aGlsZE5vZGVzKCkmJih1PU1hdGgubWluKCFtJiZ1PjA/dS0xOnUsYy5jaGlsZE5vZGVzLmxlbmd0
aC0xKSxjPWMuY2hpbGROb2Rlc1t1XSx1PTAsYy5oYXNDaGlsZE5vZGVzKCkmJiEvVEFCTEUvLnRl
c3QoYy5ub2RlTmFtZSkpKXtwPWMsZD1uZXcgdChjLGYpO2Rve2lmKDM9PT1wLm5vZGVUeXBlJiZw
Lm5vZGVWYWx1ZS5sZW5ndGg+MCl7dT1tPzA6cC5ub2RlVmFsdWUubGVuZ3RoLGM9cCxpPSEwO2Jy
ZWFrfWlmKGhbcC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSl7dT1lLm5vZGVJbmRleChwKSxjPXAu
cGFyZW50Tm9kZSwiSU1HIiE9cC5ub2RlTmFtZXx8bXx8dSsrLGk9ITA7YnJlYWt9fXdoaWxlKHA9
bT9kLm5leHQoKTpkLnByZXYoKSl9fW8mJigzPT09Yy5ub2RlVHlwZSYmMD09PXUmJmwoITApLDE9
PT1jLm5vZGVUeXBlJiYocD1jLmNoaWxkTm9kZXNbdV0scHx8KHA9Yy5jaGlsZE5vZGVzW3UtMV0p
LCFwfHwiQlIiIT09cC5ub2RlTmFtZXx8cyhwLCJBIil8fGEocCl8fGEocCwhMCl8fGwoITAscCkp
KSxtJiYhbyYmMz09PWMubm9kZVR5cGUmJnU9PT1jLm5vZGVWYWx1ZS5sZW5ndGgmJmwoITEpLGkm
Jm5bInNldCIrKHI/IlN0YXJ0IjoiRW5kIildKGMsdSl9dmFyIGksbztyZXR1cm4gbz1uLmNvbGxh
cHNlZCxyKCEwKSxvfHxyKCksaSYmbyYmbi5jb2xsYXBzZSghMCksaX19dmFyIHI9ZS5lYWNoO3Jl
dHVybiBuLmNvbXBhcmVSYW5nZXM9ZnVuY3Rpb24oZSx0KXtpZihlJiZ0KXtpZighZS5pdGVtJiYh
ZS5kdXBsaWNhdGUpcmV0dXJuIGUuc3RhcnRDb250YWluZXI9PXQuc3RhcnRDb250YWluZXImJmUu
c3RhcnRPZmZzZXQ9PXQuc3RhcnRPZmZzZXQ7aWYoZS5pdGVtJiZ0Lml0ZW0mJmUuaXRlbSgwKT09
PXQuaXRlbSgwKSlyZXR1cm4hMDtpZihlLmlzRXF1YWwmJnQuaXNFcXVhbCYmdC5pc0VxdWFsKGUp
KXJldHVybiEwfXJldHVybiExfSxufSkscihELFtmLFQsQSxCLGcscF0sZnVuY3Rpb24oZSxuLHIs
aSxvLGEpe2Z1bmN0aW9uIHMoZSx0LGksbyl7dmFyIGE9dGhpczthLmRvbT1lLGEud2luPXQsYS5z
ZXJpYWxpemVyPWksYS5lZGl0b3I9byxhLmNvbnRyb2xTZWxlY3Rpb249bmV3IHIoYSxvKSxhLndp
bi5nZXRTZWxlY3Rpb258fChhLnRyaWRlbnRTZWw9bmV3IG4oYSkpfXZhciBsPWEuZWFjaCxjPWEu
Z3JlcCx1PWEudHJpbSxkPW8uaWUsZj1vLm9wZXJhO3JldHVybiBzLnByb3RvdHlwZT17c2V0Q3Vy
c29yTG9jYXRpb246ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9bi5kb20uY3JlYXRlUm5nKCk7
ZT8oci5zZXRTdGFydChlLHQpLHIuc2V0RW5kKGUsdCksbi5zZXRSbmcociksbi5jb2xsYXBzZSgh
MSkpOihuLl9tb3ZlRW5kUG9pbnQocixuLmVkaXRvci5nZXRCb2R5KCksITApLG4uc2V0Um5nKHIp
KX0sZ2V0Q29udGVudDpmdW5jdGlvbihlKXt2YXIgbj10aGlzLHI9bi5nZXRSbmcoKSxpPW4uZG9t
LmNyZWF0ZSgiYm9keSIpLG89bi5nZXRTZWwoKSxhLHMsbDtyZXR1cm4gZT1lfHx7fSxhPXM9IiIs
ZS5nZXQ9ITAsZS5mb3JtYXQ9ZS5mb3JtYXR8fCJodG1sIixlLnNlbGVjdGlvbj0hMCxuLmVkaXRv
ci5maXJlKCJCZWZvcmVHZXRDb250ZW50IixlKSwidGV4dCI9PWUuZm9ybWF0P24uaXNDb2xsYXBz
ZWQoKT8iIjpyLnRleHR8fChvLnRvU3RyaW5nP28udG9TdHJpbmcoKToiIik6KHIuY2xvbmVDb250
ZW50cz8obD1yLmNsb25lQ29udGVudHMoKSxsJiZpLmFwcGVuZENoaWxkKGwpKTpyLml0ZW0hPT10
fHxyLmh0bWxUZXh0IT09dD8oaS5pbm5lckhUTUw9Ijxicj4iKyhyLml0ZW0/ci5pdGVtKDApLm91
dGVySFRNTDpyLmh0bWxUZXh0KSxpLnJlbW92ZUNoaWxkKGkuZmlyc3RDaGlsZCkpOmkuaW5uZXJI
VE1MPXIudG9TdHJpbmcoKSwvXlxzLy50ZXN0KGkuaW5uZXJIVE1MKSYmKGE9IiAiKSwvXHMrJC8u
dGVzdChpLmlubmVySFRNTCkmJihzPSIgIiksZS5nZXRJbm5lcj0hMCxlLmNvbnRlbnQ9bi5pc0Nv
bGxhcHNlZCgpPyIiOmErbi5zZXJpYWxpemVyLnNlcmlhbGl6ZShpLGUpK3Msbi5lZGl0b3IuZmly
ZSgiR2V0Q29udGVudCIsZSksZS5jb250ZW50KX0sc2V0Q29udGVudDpmdW5jdGlvbihlLHQpe3Zh
ciBuPXRoaXMscj1uLmdldFJuZygpLGksbz1uLndpbi5kb2N1bWVudCxhLHM7aWYodD10fHx7Zm9y
bWF0OiJodG1sIn0sdC5zZXQ9ITAsdC5zZWxlY3Rpb249ITAsZT10LmNvbnRlbnQ9ZSx0Lm5vX2V2
ZW50c3x8bi5lZGl0b3IuZmlyZSgiQmVmb3JlU2V0Q29udGVudCIsdCksZT10LmNvbnRlbnQsci5p
bnNlcnROb2RlKXtlKz0nPHNwYW4gaWQ9Il9fY2FyZXQiPl88L3NwYW4+JyxyLnN0YXJ0Q29udGFp
bmVyPT1vJiZyLmVuZENvbnRhaW5lcj09bz9vLmJvZHkuaW5uZXJIVE1MPWU6KHIuZGVsZXRlQ29u
dGVudHMoKSwwPT09by5ib2R5LmNoaWxkTm9kZXMubGVuZ3RoP28uYm9keS5pbm5lckhUTUw9ZTpy
LmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudD9yLmluc2VydE5vZGUoci5jcmVhdGVDb250ZXh0dWFs
RnJhZ21lbnQoZSkpOihhPW8uY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHM9by5jcmVhdGVFbGVt
ZW50KCJkaXYiKSxhLmFwcGVuZENoaWxkKHMpLHMub3V0ZXJIVE1MPWUsci5pbnNlcnROb2RlKGEp
KSksaT1uLmRvbS5nZXQoIl9fY2FyZXQiKSxyPW8uY3JlYXRlUmFuZ2UoKSxyLnNldFN0YXJ0QmVm
b3JlKGkpLHIuc2V0RW5kQmVmb3JlKGkpLG4uc2V0Um5nKHIpLG4uZG9tLnJlbW92ZSgiX19jYXJl
dCIpO3RyeXtuLnNldFJuZyhyKX1jYXRjaChsKXt9fWVsc2Ugci5pdGVtJiYoby5leGVjQ29tbWFu
ZCgiRGVsZXRlIiwhMSxudWxsKSxyPW4uZ2V0Um5nKCkpLC9eXHMrLy50ZXN0KGUpPyhyLnBhc3Rl
SFRNTCgnPHNwYW4gaWQ9Il9fbWNlX3RtcCI+Xzwvc3Bhbj4nK2UpLG4uZG9tLnJlbW92ZSgiX19t
Y2VfdG1wIikpOnIucGFzdGVIVE1MKGUpO3Qubm9fZXZlbnRzfHxuLmVkaXRvci5maXJlKCJTZXRD
b250ZW50Iix0KX0sZ2V0U3RhcnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5nZXRSbmcoKSxu
LHIsaSxvO2lmKHQuZHVwbGljYXRlfHx0Lml0ZW0pe2lmKHQuaXRlbSlyZXR1cm4gdC5pdGVtKDAp
O2ZvcihpPXQuZHVwbGljYXRlKCksaS5jb2xsYXBzZSgxKSxuPWkucGFyZW50RWxlbWVudCgpLG4u
b3duZXJEb2N1bWVudCE9PWUuZG9tLmRvYyYmKG49ZS5kb20uZ2V0Um9vdCgpKSxyPW89dC5wYXJl
bnRFbGVtZW50KCk7bz1vLnBhcmVudE5vZGU7KWlmKG89PW4pe249cjticmVha31yZXR1cm4gbn1y
ZXR1cm4gbj10LnN0YXJ0Q29udGFpbmVyLDE9PW4ubm9kZVR5cGUmJm4uaGFzQ2hpbGROb2Rlcygp
JiYobj1uLmNoaWxkTm9kZXNbTWF0aC5taW4obi5jaGlsZE5vZGVzLmxlbmd0aC0xLHQuc3RhcnRP
ZmZzZXQpXSksbiYmMz09bi5ub2RlVHlwZT9uLnBhcmVudE5vZGU6bn0sZ2V0RW5kOmZ1bmN0aW9u
KCl7dmFyIGU9dGhpcyx0PWUuZ2V0Um5nKCksbixyO3JldHVybiB0LmR1cGxpY2F0ZXx8dC5pdGVt
P3QuaXRlbT90Lml0ZW0oMCk6KHQ9dC5kdXBsaWNhdGUoKSx0LmNvbGxhcHNlKDApLG49dC5wYXJl
bnRFbGVtZW50KCksbi5vd25lckRvY3VtZW50IT09ZS5kb20uZG9jJiYobj1lLmRvbS5nZXRSb290
KCkpLG4mJiJCT0RZIj09bi5ub2RlTmFtZT9uLmxhc3RDaGlsZHx8bjpuKToobj10LmVuZENvbnRh
aW5lcixyPXQuZW5kT2Zmc2V0LDE9PW4ubm9kZVR5cGUmJm4uaGFzQ2hpbGROb2RlcygpJiYobj1u
LmNoaWxkTm9kZXNbcj4wP3ItMTpyXSksbiYmMz09bi5ub2RlVHlwZT9uLnBhcmVudE5vZGU6bil9
LGdldEJvb2ttYXJrOmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihlLHQpe3ZhciBuPTA7cmV0dXJu
IGwoYS5zZWxlY3QoZSksZnVuY3Rpb24oZSxyKXtlPT10JiYobj1yKX0pLG59ZnVuY3Rpb24gcihl
KXtmdW5jdGlvbiB0KHQpe3ZhciBuLHIsaSxvPXQ/InN0YXJ0IjoiZW5kIjtuPWVbbysiQ29udGFp
bmVyIl0scj1lW28rIk9mZnNldCJdLDE9PW4ubm9kZVR5cGUmJiJUUiI9PW4ubm9kZU5hbWUmJihp
PW4uY2hpbGROb2RlcyxuPWlbTWF0aC5taW4odD9yOnItMSxpLmxlbmd0aC0xKV0sbiYmKHI9dD8w
Om4uY2hpbGROb2Rlcy5sZW5ndGgsZVsic2V0IisodD8iU3RhcnQiOiJFbmQiKV0obixyKSkpfXJl
dHVybiB0KCEwKSx0KCksZX1mdW5jdGlvbiBpKCl7ZnVuY3Rpb24gZShlLG4pe3ZhciBpPWVbbj8i
c3RhcnRDb250YWluZXIiOiJlbmRDb250YWluZXIiXSxhPWVbbj8ic3RhcnRPZmZzZXQiOiJlbmRP
ZmZzZXQiXSxzPVtdLGwsYyx1PTA7aWYoMz09aS5ub2RlVHlwZSl7aWYodClmb3IobD1pLnByZXZp
b3VzU2libGluZztsJiYzPT1sLm5vZGVUeXBlO2w9bC5wcmV2aW91c1NpYmxpbmcpYSs9bC5ub2Rl
VmFsdWUubGVuZ3RoO3MucHVzaChhKX1lbHNlIGM9aS5jaGlsZE5vZGVzLGE+PWMubGVuZ3RoJiZj
Lmxlbmd0aCYmKHU9MSxhPU1hdGgubWF4KDAsYy5sZW5ndGgtMSkpLHMucHVzaChvLmRvbS5ub2Rl
SW5kZXgoY1thXSx0KSt1KTtmb3IoO2kmJmkhPXI7aT1pLnBhcmVudE5vZGUpcy5wdXNoKG8uZG9t
Lm5vZGVJbmRleChpLHQpKTtyZXR1cm4gc312YXIgbj1vLmdldFJuZyghMCkscj1hLmdldFJvb3Qo
KSxpPXt9O3JldHVybiBpLnN0YXJ0PWUobiwhMCksby5pc0NvbGxhcHNlZCgpfHwoaS5lbmQ9ZShu
KSksaX12YXIgbz10aGlzLGE9by5kb20scyxjLHUsZCxmLHAsaD0iJiN4RkVGRjsiLG07aWYoMj09
ZSlyZXR1cm4gcD1vLmdldE5vZGUoKSxmPXA/cC5ub2RlTmFtZTpudWxsLCJJTUciPT1mP3tuYW1l
OmYsaW5kZXg6bihmLHApfTpvLnRyaWRlbnRTZWw/by50cmlkZW50U2VsLmdldEJvb2ttYXJrKGUp
OmkoKTtpZihlKXJldHVybntybmc6by5nZXRSbmcoKX07aWYocz1vLmdldFJuZygpLHU9YS51bmlx
dWVJZCgpLGQ9by5pc0NvbGxhcHNlZCgpLG09Im92ZXJmbG93OmhpZGRlbjtsaW5lLWhlaWdodDow
cHgiLHMuZHVwbGljYXRlfHxzLml0ZW0pe2lmKHMuaXRlbSlyZXR1cm4gcD1zLml0ZW0oMCksZj1w
Lm5vZGVOYW1lLHtuYW1lOmYsaW5kZXg6bihmLHApfTtjPXMuZHVwbGljYXRlKCk7dHJ5e3MuY29s
bGFwc2UoKSxzLnBhc3RlSFRNTCgnPHNwYW4gZGF0YS1tY2UtdHlwZT0iYm9va21hcmsiIGlkPSIn
K3UrJ19zdGFydCIgc3R5bGU9IicrbSsnIj4nK2grIjwvc3Bhbj4iKSxkfHwoYy5jb2xsYXBzZSgh
MSkscy5tb3ZlVG9FbGVtZW50VGV4dChjLnBhcmVudEVsZW1lbnQoKSksMD09PXMuY29tcGFyZUVu
ZFBvaW50cygiU3RhcnRUb0VuZCIsYykmJmMubW92ZSgiY2hhcmFjdGVyIiwtMSksYy5wYXN0ZUhU
TUwoJzxzcGFuIGRhdGEtbWNlLXR5cGU9ImJvb2ttYXJrIiBpZD0iJyt1KydfZW5kIiBzdHlsZT0i
JyttKyciPicraCsiPC9zcGFuPiIpKX1jYXRjaChnKXtyZXR1cm4gbnVsbH19ZWxzZXtpZihwPW8u
Z2V0Tm9kZSgpLGY9cC5ub2RlTmFtZSwiSU1HIj09ZilyZXR1cm57bmFtZTpmLGluZGV4Om4oZixw
KX07Yz1yKHMuY2xvbmVSYW5nZSgpKSxkfHwoYy5jb2xsYXBzZSghMSksYy5pbnNlcnROb2RlKGEu
Y3JlYXRlKCJzcGFuIix7ImRhdGEtbWNlLXR5cGUiOiJib29rbWFyayIsaWQ6dSsiX2VuZCIsc3R5
bGU6bX0saCkpKSxzPXIocykscy5jb2xsYXBzZSghMCkscy5pbnNlcnROb2RlKGEuY3JlYXRlKCJz
cGFuIix7ImRhdGEtbWNlLXR5cGUiOiJib29rbWFyayIsaWQ6dSsiX3N0YXJ0IixzdHlsZTptfSxo
KSl9cmV0dXJuIG8ubW92ZVRvQm9va21hcmsoe2lkOnUsa2VlcDoxfSkse2lkOnV9fSxtb3ZlVG9C
b29rbWFyazpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3ZhciBuPWVbdD8ic3RhcnQiOiJlbmQi
XSxyLGksbyxsO2lmKG4pe2ZvcihvPW5bMF0saT1zLHI9bi5sZW5ndGgtMTtyPj0xO3ItLSl7aWYo
bD1pLmNoaWxkTm9kZXMsbltyXT5sLmxlbmd0aC0xKXJldHVybjtpPWxbbltyXV19Mz09PWkubm9k
ZVR5cGUmJihvPU1hdGgubWluKG5bMF0saS5ub2RlVmFsdWUubGVuZ3RoKSksMT09PWkubm9kZVR5
cGUmJihvPU1hdGgubWluKG5bMF0saS5jaGlsZE5vZGVzLmxlbmd0aCkpLHQ/YS5zZXRTdGFydChp
LG8pOmEuc2V0RW5kKGksbyl9cmV0dXJuITB9ZnVuY3Rpb24gbih0KXt2YXIgbj1vLmdldChlLmlk
KyJfIit0KSxyLGksYSxzLGQ9ZS5rZWVwO2lmKG4mJihyPW4ucGFyZW50Tm9kZSwic3RhcnQiPT10
PyhkPyhyPW4uZmlyc3RDaGlsZCxpPTEpOmk9by5ub2RlSW5kZXgobiksdT1wPXIsaD1tPWkpOihk
PyhyPW4uZmlyc3RDaGlsZCxpPTEpOmk9by5ub2RlSW5kZXgobikscD1yLG09aSksIWQpKXtmb3Io
cz1uLnByZXZpb3VzU2libGluZyxhPW4ubmV4dFNpYmxpbmcsbChjKG4uY2hpbGROb2RlcyksZnVu
Y3Rpb24oZSl7Mz09ZS5ub2RlVHlwZSYmKGUubm9kZVZhbHVlPWUubm9kZVZhbHVlLnJlcGxhY2Uo
L1x1RkVGRi9nLCIiKSl9KTtuPW8uZ2V0KGUuaWQrIl8iK3QpOylvLnJlbW92ZShuLDEpO3MmJmEm
JnMubm9kZVR5cGU9PWEubm9kZVR5cGUmJjM9PXMubm9kZVR5cGUmJiFmJiYoaT1zLm5vZGVWYWx1
ZS5sZW5ndGgscy5hcHBlbmREYXRhKGEubm9kZVZhbHVlKSxvLnJlbW92ZShhKSwic3RhcnQiPT10
Pyh1PXA9cyxoPW09aSk6KHA9cyxtPWkpKX19ZnVuY3Rpb24gcihlKXtyZXR1cm4hby5pc0Jsb2Nr
KGUpfHxlLmlubmVySFRNTHx8ZHx8KGUuaW5uZXJIVE1MPSc8YnIgZGF0YS1tY2UtYm9ndXM9IjEi
IC8+JyksZX12YXIgaT10aGlzLG89aS5kb20sYSxzLHUscCxoLG07aWYoZSlpZihlLnN0YXJ0KXtp
ZihhPW8uY3JlYXRlUm5nKCkscz1vLmdldFJvb3QoKSxpLnRyaWRlbnRTZWwpcmV0dXJuIGkudHJp
ZGVudFNlbC5tb3ZlVG9Cb29rbWFyayhlKTt0KCEwKSYmdCgpJiZpLnNldFJuZyhhKX1lbHNlIGUu
aWQ/KG4oInN0YXJ0IiksbigiZW5kIiksdSYmKGE9by5jcmVhdGVSbmcoKSxhLnNldFN0YXJ0KHIo
dSksaCksYS5zZXRFbmQocihwKSxtKSxpLnNldFJuZyhhKSkpOmUubmFtZT9pLnNlbGVjdChvLnNl
bGVjdChlLm5hbWUpW2UuaW5kZXhdKTplLnJuZyYmaS5zZXRSbmcoZS5ybmcpfSxzZWxlY3Q6ZnVu
Y3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9bi5kb20saT1yLmNyZWF0ZVJuZygpLG87aWYobi5sYXN0
Rm9jdXNCb29rbWFyaz1udWxsLGUpe2lmKCF0JiZuLmNvbnRyb2xTZWxlY3Rpb24uY29udHJvbFNl
bGVjdChlKSlyZXR1cm47bz1yLm5vZGVJbmRleChlKSxpLnNldFN0YXJ0KGUucGFyZW50Tm9kZSxv
KSxpLnNldEVuZChlLnBhcmVudE5vZGUsbysxKSx0JiYobi5fbW92ZUVuZFBvaW50KGksZSwhMCks
bi5fbW92ZUVuZFBvaW50KGksZSkpLG4uc2V0Um5nKGkpfXJldHVybiBlfSxpc0NvbGxhcHNlZDpm
dW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLmdldFJuZygpLG49ZS5nZXRTZWwoKTtyZXR1cm4hdHx8
dC5pdGVtPyExOnQuY29tcGFyZUVuZFBvaW50cz8wPT09dC5jb21wYXJlRW5kUG9pbnRzKCJTdGFy
dFRvRW5kIix0KTohbnx8dC5jb2xsYXBzZWR9LGNvbGxhcHNlOmZ1bmN0aW9uKGUpe3ZhciB0PXRo
aXMsbj10LmdldFJuZygpLHI7bi5pdGVtJiYocj1uLml0ZW0oMCksbj10Lndpbi5kb2N1bWVudC5i
b2R5LmNyZWF0ZVRleHRSYW5nZSgpLG4ubW92ZVRvRWxlbWVudFRleHQocikpLG4uY29sbGFwc2Uo
ISFlKSx0LnNldFJuZyhuKX0sZ2V0U2VsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy53aW47cmV0dXJu
IGUuZ2V0U2VsZWN0aW9uP2UuZ2V0U2VsZWN0aW9uKCk6ZS5kb2N1bWVudC5zZWxlY3Rpb259LGdl
dFJuZzpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsdCxuKXt0cnl7cmV0dXJuIHQuY29tcGFyZUJv
dW5kYXJ5UG9pbnRzKGUsbil9Y2F0Y2gocil7cmV0dXJuLTF9fXZhciBuPXRoaXMscixpLG8sYT1u
Lndpbi5kb2N1bWVudCxzO2lmKCFlJiZuLmxhc3RGb2N1c0Jvb2ttYXJrKXt2YXIgbD1uLmxhc3RG
b2N1c0Jvb2ttYXJrO3JldHVybiBsLnN0YXJ0Q29udGFpbmVyPyhpPWEuY3JlYXRlUmFuZ2UoKSxp
LnNldFN0YXJ0KGwuc3RhcnRDb250YWluZXIsbC5zdGFydE9mZnNldCksaS5zZXRFbmQobC5lbmRD
b250YWluZXIsbC5lbmRPZmZzZXQpKTppPWwsaX1pZihlJiZuLnRyaWRlbnRTZWwpcmV0dXJuIG4u
dHJpZGVudFNlbC5nZXRSYW5nZUF0KDApO3RyeXsocj1uLmdldFNlbCgpKSYmKGk9ci5yYW5nZUNv
dW50PjA/ci5nZXRSYW5nZUF0KDApOnIuY3JlYXRlUmFuZ2U/ci5jcmVhdGVSYW5nZSgpOmEuY3Jl
YXRlUmFuZ2UoKSl9Y2F0Y2goYyl7fWlmKGQmJmkmJmkuc2V0U3RhcnQmJmEuc2VsZWN0aW9uKXt0
cnl7cz1hLnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpfWNhdGNoKGMpe31zJiZzLml0ZW0mJihvPXMu
aXRlbSgwKSxpPWEuY3JlYXRlUmFuZ2UoKSxpLnNldFN0YXJ0QmVmb3JlKG8pLGkuc2V0RW5kQWZ0
ZXIobykpfXJldHVybiBpfHwoaT1hLmNyZWF0ZVJhbmdlP2EuY3JlYXRlUmFuZ2UoKTphLmJvZHku
Y3JlYXRlVGV4dFJhbmdlKCkpLGkuc2V0U3RhcnQmJjk9PT1pLnN0YXJ0Q29udGFpbmVyLm5vZGVU
eXBlJiZpLmNvbGxhcHNlZCYmKG89bi5kb20uZ2V0Um9vdCgpLGkuc2V0U3RhcnQobywwKSxpLnNl
dEVuZChvLDApKSxuLnNlbGVjdGVkUmFuZ2UmJm4uZXhwbGljaXRSYW5nZSYmKDA9PT10KGkuU1RB
UlRfVE9fU1RBUlQsaSxuLnNlbGVjdGVkUmFuZ2UpJiYwPT09dChpLkVORF9UT19FTkQsaSxuLnNl
bGVjdGVkUmFuZ2UpP2k9bi5leHBsaWNpdFJhbmdlOihuLnNlbGVjdGVkUmFuZ2U9bnVsbCxuLmV4
cGxpY2l0UmFuZ2U9bnVsbCkpLGl9LHNldFJuZzpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscjtp
ZihlLnNlbGVjdCl0cnl7ZS5zZWxlY3QoKX1jYXRjaChpKXt9ZWxzZSBpZihuLnRyaWRlbnRTZWwp
e2lmKGUuY2xvbmVSYW5nZSl0cnl7cmV0dXJuIHZvaWQgbi50cmlkZW50U2VsLmFkZFJhbmdlKGUp
fWNhdGNoKGkpe319ZWxzZSBpZihyPW4uZ2V0U2VsKCkpe24uZXhwbGljaXRSYW5nZT1lO3RyeXty
LnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoZSl9Y2F0Y2goaSl7fXQ9PT0hMSYmci5leHRl
bmQmJihyLmNvbGxhcHNlKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSxyLmV4dGVuZChlLnN0
YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQpKSxuLnNlbGVjdGVkUmFuZ2U9ci5yYW5nZUNvdW50
PjA/ci5nZXRSYW5nZUF0KDApOm51bGx9fSxzZXROb2RlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7
cmV0dXJuIHQuc2V0Q29udGVudCh0LmRvbS5nZXRPdXRlckhUTUwoZSkpLGV9LGdldE5vZGU6ZnVu
Y3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPWU7ZSYmMz09PWUubm9kZVR5cGUmJjA9
PT1lLmxlbmd0aDspZT10P2UubmV4dFNpYmxpbmc6ZS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIGV8
fG59dmFyIHQ9dGhpcyxuPXQuZ2V0Um5nKCkscixpPW4uc3RhcnRDb250YWluZXIsbz1uLmVuZENv
bnRhaW5lcixhPW4uc3RhcnRPZmZzZXQscz1uLmVuZE9mZnNldCxsPXQuZG9tLmdldFJvb3QoKTty
ZXR1cm4gbj9uLnNldFN0YXJ0PyhyPW4uY29tbW9uQW5jZXN0b3JDb250YWluZXIsIW4uY29sbGFw
c2VkJiYoaT09byYmMj5zLWEmJmkuaGFzQ2hpbGROb2RlcygpJiYocj1pLmNoaWxkTm9kZXNbYV0p
LDM9PT1pLm5vZGVUeXBlJiYzPT09by5ub2RlVHlwZSYmKGk9aS5sZW5ndGg9PT1hP2UoaS5uZXh0
U2libGluZywhMCk6aS5wYXJlbnROb2RlLG89MD09PXM/ZShvLnByZXZpb3VzU2libGluZywhMSk6
by5wYXJlbnROb2RlLGkmJmk9PT1vKSk/aTpyJiYzPT1yLm5vZGVUeXBlP3IucGFyZW50Tm9kZTpy
KToocj1uLml0ZW0/bi5pdGVtKDApOm4ucGFyZW50RWxlbWVudCgpLHIub3duZXJEb2N1bWVudCE9
PXQud2luLmRvY3VtZW50JiYocj1sKSxyKTpsfSxnZXRTZWxlY3RlZEJsb2NrczpmdW5jdGlvbih0
LG4pe3ZhciByPXRoaXMsaT1yLmRvbSxvLGEscz1bXTtpZihhPWkuZ2V0Um9vdCgpLHQ9aS5nZXRQ
YXJlbnQodHx8ci5nZXRTdGFydCgpLGkuaXNCbG9jayksbj1pLmdldFBhcmVudChufHxyLmdldEVu
ZCgpLGkuaXNCbG9jayksdCYmdCE9YSYmcy5wdXNoKHQpLHQmJm4mJnQhPW4pe289dDtmb3IodmFy
IGw9bmV3IGUodCxhKTsobz1sLm5leHQoKSkmJm8hPW47KWkuaXNCbG9jayhvKSYmcy5wdXNoKG8p
fXJldHVybiBuJiZ0IT1uJiZuIT1hJiZzLnB1c2gobiksc30saXNGb3J3YXJkOmZ1bmN0aW9uKCl7
dmFyIGU9dGhpcy5kb20sdD10aGlzLmdldFNlbCgpLG4scjtyZXR1cm4gdCYmdC5hbmNob3JOb2Rl
JiZ0LmZvY3VzTm9kZT8obj1lLmNyZWF0ZVJuZygpLG4uc2V0U3RhcnQodC5hbmNob3JOb2RlLHQu
YW5jaG9yT2Zmc2V0KSxuLmNvbGxhcHNlKCEwKSxyPWUuY3JlYXRlUm5nKCksci5zZXRTdGFydCh0
LmZvY3VzTm9kZSx0LmZvY3VzT2Zmc2V0KSxyLmNvbGxhcHNlKCEwKSxuLmNvbXBhcmVCb3VuZGFy
eVBvaW50cyhuLlNUQVJUX1RPX1NUQVJULHIpPD0wKTohMH0sbm9ybWFsaXplOmZ1bmN0aW9uKCl7
dmFyIGU9dGhpcyx0PWUuZ2V0Um5nKCk7cmV0dXJuIWQmJm5ldyBpKGUuZG9tKS5ub3JtYWxpemUo
dCkmJmUuc2V0Um5nKHQsZS5pc0ZvcndhcmQoKSksdH0sc2VsZWN0b3JDaGFuZ2VkOmZ1bmN0aW9u
KGUsdCl7dmFyIG49dGhpcyxyO3JldHVybiBuLnNlbGVjdG9yQ2hhbmdlZERhdGF8fChuLnNlbGVj
dG9yQ2hhbmdlZERhdGE9e30scj17fSxuLmVkaXRvci5vbigiTm9kZUNoYW5nZSIsZnVuY3Rpb24o
ZSl7dmFyIHQ9ZS5lbGVtZW50LGk9bi5kb20sbz1pLmdldFBhcmVudHModCxudWxsLGkuZ2V0Um9v
dCgpKSxhPXt9O2wobi5zZWxlY3RvckNoYW5nZWREYXRhLGZ1bmN0aW9uKGUsdCl7bChvLGZ1bmN0
aW9uKG4pe3JldHVybiBpLmlzKG4sdCk/KHJbdF18fChsKGUsZnVuY3Rpb24oZSl7ZSghMCx7bm9k
ZTpuLHNlbGVjdG9yOnQscGFyZW50czpvfSl9KSxyW3RdPWUpLGFbdF09ZSwhMSk6dm9pZCAwfSl9
KSxsKHIsZnVuY3Rpb24oZSxuKXthW25dfHwoZGVsZXRlIHJbbl0sbChlLGZ1bmN0aW9uKGUpe2Uo
ITEse25vZGU6dCxzZWxlY3RvcjpuLHBhcmVudHM6b30pfSkpfSl9KSksbi5zZWxlY3RvckNoYW5n
ZWREYXRhW2VdfHwobi5zZWxlY3RvckNoYW5nZWREYXRhW2VdPVtdKSxuLnNlbGVjdG9yQ2hhbmdl
ZERhdGFbZV0ucHVzaCh0KSxufSxnZXRTY3JvbGxDb250YWluZXI6ZnVuY3Rpb24oKXtmb3IodmFy
IGUsdD10aGlzLmRvbS5nZXRSb290KCk7dCYmIkJPRFkiIT10Lm5vZGVOYW1lOyl7aWYodC5zY3Jv
bGxIZWlnaHQ+dC5jbGllbnRIZWlnaHQpe2U9dDticmVha310PXQucGFyZW50Tm9kZX1yZXR1cm4g
ZX0sc2Nyb2xsSW50b1ZpZXc6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXtmb3IodmFyIHQ9MCxu
PTAscj1lO3ImJnIubm9kZVR5cGU7KXQrPXIub2Zmc2V0TGVmdHx8MCxuKz1yLm9mZnNldFRvcHx8
MCxyPXIub2Zmc2V0UGFyZW50O3JldHVybnt4OnQseTpufX12YXIgbixyLGk9dGhpcyxvPWkuZG9t
LGE9by5nZXRSb290KCkscyxsO2lmKCJCT0RZIiE9YS5ub2RlTmFtZSl7dmFyIGM9aS5nZXRTY3Jv
bGxDb250YWluZXIoKTtpZihjKXJldHVybiBuPXQoZSkueS10KGMpLnksbD1jLmNsaWVudEhlaWdo
dCxzPWMuc2Nyb2xsVG9wLHZvaWQoKHM+bnx8bisyNT5zK2wpJiYoYy5zY3JvbGxUb3A9cz5uP246
bi1sKzI1KSl9cj1vLmdldFZpZXdQb3J0KGkuZWRpdG9yLmdldFdpbigpKSxuPW8uZ2V0UG9zKGUp
Lnkscz1yLnksbD1yLmgsKG48ci55fHxuKzI1PnMrbCkmJmkuZWRpdG9yLmdldFdpbigpLnNjcm9s
bFRvKDAscz5uP246bi1sKzI1KX0sX21vdmVFbmRQb2ludDpmdW5jdGlvbih0LG4scil7dmFyIGk9
bixhPW5ldyBlKG4saSkscz10aGlzLmRvbS5zY2hlbWEuZ2V0Tm9uRW1wdHlFbGVtZW50cygpO2Rv
e2lmKDM9PW4ubm9kZVR5cGUmJjAhPT11KG4ubm9kZVZhbHVlKS5sZW5ndGgpcmV0dXJuIHZvaWQo
cj90LnNldFN0YXJ0KG4sMCk6dC5zZXRFbmQobixuLm5vZGVWYWx1ZS5sZW5ndGgpKTtpZihzW24u
bm9kZU5hbWVdKXJldHVybiB2b2lkKHI/dC5zZXRTdGFydEJlZm9yZShuKToiQlIiPT1uLm5vZGVO
YW1lP3Quc2V0RW5kQmVmb3JlKG4pOnQuc2V0RW5kQWZ0ZXIobikpO2lmKG8uaWUmJm8uaWU8MTEm
JnRoaXMuZG9tLmlzQmxvY2sobikmJnRoaXMuZG9tLmlzRW1wdHkobikpcmV0dXJuIHZvaWQocj90
LnNldFN0YXJ0KG4sMCk6dC5zZXRFbmQobiwwKSl9d2hpbGUobj1yP2EubmV4dCgpOmEucHJldigp
KTsiQk9EWSI9PWkubm9kZU5hbWUmJihyP3Quc2V0U3RhcnQoaSwwKTp0LnNldEVuZChpLGkuY2hp
bGROb2Rlcy5sZW5ndGgpKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMud2luPW51bGwsdGhpcy5j
b250cm9sU2VsZWN0aW9uLmRlc3Ryb3koKX19LHN9KSxyKEwsW3BdLGZ1bmN0aW9uKGUpe2Z1bmN0
aW9uIHQoZSx0KXtmdW5jdGlvbiByKGUpe3JldHVybiBlLnJlcGxhY2UoLyUoXHcrKS9nLCIiKX12
YXIgaSxvLGE9ZS5kb20scz0iIixsLGM7aWYoYz1lLnNldHRpbmdzLnByZXZpZXdfc3R5bGVzLGM9
PT0hMSlyZXR1cm4iIjtpZihjfHwoYz0iZm9udC1mYW1pbHkgZm9udC1zaXplIGZvbnQtd2VpZ2h0
IGZvbnQtc3R5bGUgdGV4dC1kZWNvcmF0aW9uIHRleHQtdHJhbnNmb3JtIGNvbG9yIGJhY2tncm91
bmQtY29sb3IgYm9yZGVyIGJvcmRlci1yYWRpdXMgb3V0bGluZSB0ZXh0LXNoYWRvdyIpLCJzdHJp
bmciPT10eXBlb2YgdCl7aWYodD1lLmZvcm1hdHRlci5nZXQodCksIXQpcmV0dXJuO3Q9dFswXX1y
ZXR1cm4gaT10LmJsb2NrfHx0LmlubGluZXx8InNwYW4iLG89YS5jcmVhdGUoaSksbih0LnN0eWxl
cyxmdW5jdGlvbihlLHQpe2U9cihlKSxlJiZhLnNldFN0eWxlKG8sdCxlKX0pLG4odC5hdHRyaWJ1
dGVzLGZ1bmN0aW9uKGUsdCl7ZT1yKGUpLGUmJmEuc2V0QXR0cmliKG8sdCxlKX0pLG4odC5jbGFz
c2VzLGZ1bmN0aW9uKGUpe2U9cihlKSxhLmhhc0NsYXNzKG8sZSl8fGEuYWRkQ2xhc3MobyxlKX0p
LGUuZmlyZSgiUHJldmlld0Zvcm1hdHMiKSxhLnNldFN0eWxlcyhvLHtwb3NpdGlvbjoiYWJzb2x1
dGUiLGxlZnQ6LTY1NTM1fSksZS5nZXRCb2R5KCkuYXBwZW5kQ2hpbGQobyksbD1hLmdldFN0eWxl
KGUuZ2V0Qm9keSgpLCJmb250U2l6ZSIsITApLGw9L3B4JC8udGVzdChsKT9wYXJzZUludChsLDEw
KTowLG4oYy5zcGxpdCgiICIpLGZ1bmN0aW9uKHQpe3ZhciBuPWEuZ2V0U3R5bGUobyx0LCEwKTtp
ZighKCJiYWNrZ3JvdW5kLWNvbG9yIj09dCYmL3RyYW5zcGFyZW50fHJnYmFccypcKFteKV0rLFxz
KjBcKS8udGVzdChuKSYmKG49YS5nZXRTdHlsZShlLmdldEJvZHkoKSx0LCEwKSwiI2ZmZmZmZiI9
PWEudG9IZXgobikudG9Mb3dlckNhc2UoKSl8fCJjb2xvciI9PXQmJiIjMDAwMDAwIj09YS50b0hl
eChuKS50b0xvd2VyQ2FzZSgpKSl7aWYoImZvbnQtc2l6ZSI9PXQmJi9lbXwlJC8udGVzdChuKSl7
aWYoMD09PWwpcmV0dXJuO249cGFyc2VGbG9hdChuLDEwKS8oLyUkLy50ZXN0KG4pPzEwMDoxKSxu
PW4qbCsicHgifSJib3JkZXIiPT10JiZuJiYocys9InBhZGRpbmc6MCAycHg7Iikscys9dCsiOiIr
bisiOyJ9fSksZS5maXJlKCJBZnRlclByZXZpZXdGb3JtYXRzIiksYS5yZW1vdmUobyksc312YXIg
bj1lLmVhY2g7cmV0dXJue2dldENzc1RleHQ6dH19KSxyKE0sW2YsQixwLExdLGZ1bmN0aW9uKGUs
dCxuLHIpe3JldHVybiBmdW5jdGlvbihpKXtmdW5jdGlvbiBvKGUpe3JldHVybiBlLm5vZGVUeXBl
JiYoZT1lLm5vZGVOYW1lKSwhIWkuc2NoZW1hLmdldFRleHRCbG9ja0VsZW1lbnRzKClbZS50b0xv
d2VyQ2FzZSgpXX1mdW5jdGlvbiBhKGUsdCl7cmV0dXJuIHouZ2V0UGFyZW50cyhlLHQsei5nZXRS
b290KCkpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlJiYiX21jZV9jYXJldCI9
PT1lLmlkfWZ1bmN0aW9uIGwoKXtkKHt2YWxpZ250b3A6W3tzZWxlY3RvcjoidGQsdGgiLHN0eWxl
czp7dmVydGljYWxBbGlnbjoidG9wIn19XSx2YWxpZ25taWRkbGU6W3tzZWxlY3RvcjoidGQsdGgi
LHN0eWxlczp7dmVydGljYWxBbGlnbjoibWlkZGxlIn19XSx2YWxpZ25ib3R0b206W3tzZWxlY3Rv
cjoidGQsdGgiLHN0eWxlczp7dmVydGljYWxBbGlnbjoiYm90dG9tIn19XSxhbGlnbmxlZnQ6W3tz
ZWxlY3RvcjoiZmlndXJlLHAsaDEsaDIsaDMsaDQsaDUsaDYsdGQsdGgsdHIsZGl2LHVsLG9sLGxp
IixzdHlsZXM6e3RleHRBbGlnbjoibGVmdCJ9LGRlZmF1bHRCbG9jazoiZGl2In0se3NlbGVjdG9y
OiJpbWcsdGFibGUiLGNvbGxhcHNlZDohMSxzdHlsZXM6eyJmbG9hdCI6ImxlZnQifX1dLGFsaWdu
Y2VudGVyOlt7c2VsZWN0b3I6ImZpZ3VyZSxwLGgxLGgyLGgzLGg0LGg1LGg2LHRkLHRoLHRyLGRp
dix1bCxvbCxsaSIsc3R5bGVzOnt0ZXh0QWxpZ246ImNlbnRlciJ9LGRlZmF1bHRCbG9jazoiZGl2
In0se3NlbGVjdG9yOiJpbWciLGNvbGxhcHNlZDohMSxzdHlsZXM6e2Rpc3BsYXk6ImJsb2NrIixt
YXJnaW5MZWZ0OiJhdXRvIixtYXJnaW5SaWdodDoiYXV0byJ9fSx7c2VsZWN0b3I6InRhYmxlIixj
b2xsYXBzZWQ6ITEsc3R5bGVzOnttYXJnaW5MZWZ0OiJhdXRvIixtYXJnaW5SaWdodDoiYXV0byJ9
fV0sYWxpZ25yaWdodDpbe3NlbGVjdG9yOiJmaWd1cmUscCxoMSxoMixoMyxoNCxoNSxoNix0ZCx0
aCx0cixkaXYsdWwsb2wsbGkiLHN0eWxlczp7dGV4dEFsaWduOiJyaWdodCJ9LGRlZmF1bHRCbG9j
azoiZGl2In0se3NlbGVjdG9yOiJpbWcsdGFibGUiLGNvbGxhcHNlZDohMSxzdHlsZXM6eyJmbG9h
dCI6InJpZ2h0In19XSxhbGlnbmp1c3RpZnk6W3tzZWxlY3RvcjoiZmlndXJlLHAsaDEsaDIsaDMs
aDQsaDUsaDYsdGQsdGgsdHIsZGl2LHVsLG9sLGxpIixzdHlsZXM6e3RleHRBbGlnbjoianVzdGlm
eSJ9LGRlZmF1bHRCbG9jazoiZGl2In1dLGJvbGQ6W3tpbmxpbmU6InN0cm9uZyIscmVtb3ZlOiJh
bGwifSx7aW5saW5lOiJzcGFuIixzdHlsZXM6e2ZvbnRXZWlnaHQ6ImJvbGQifX0se2lubGluZToi
YiIscmVtb3ZlOiJhbGwifV0saXRhbGljOlt7aW5saW5lOiJlbSIscmVtb3ZlOiJhbGwifSx7aW5s
aW5lOiJzcGFuIixzdHlsZXM6e2ZvbnRTdHlsZToiaXRhbGljIn19LHtpbmxpbmU6ImkiLHJlbW92
ZToiYWxsIn1dLHVuZGVybGluZTpbe2lubGluZToic3BhbiIsc3R5bGVzOnt0ZXh0RGVjb3JhdGlv
bjoidW5kZXJsaW5lIn0sZXhhY3Q6ITB9LHtpbmxpbmU6InUiLHJlbW92ZToiYWxsIn1dLHN0cmlr
ZXRocm91Z2g6W3tpbmxpbmU6InNwYW4iLHN0eWxlczp7dGV4dERlY29yYXRpb246ImxpbmUtdGhy
b3VnaCJ9LGV4YWN0OiEwfSx7aW5saW5lOiJzdHJpa2UiLHJlbW92ZToiYWxsIn1dLGZvcmVjb2xv
cjp7aW5saW5lOiJzcGFuIixzdHlsZXM6e2NvbG9yOiIldmFsdWUifSx3cmFwX2xpbmtzOiExfSxo
aWxpdGVjb2xvcjp7aW5saW5lOiJzcGFuIixzdHlsZXM6e2JhY2tncm91bmRDb2xvcjoiJXZhbHVl
In0sd3JhcF9saW5rczohMX0sZm9udG5hbWU6e2lubGluZToic3BhbiIsc3R5bGVzOntmb250RmFt
aWx5OiIldmFsdWUifX0sZm9udHNpemU6e2lubGluZToic3BhbiIsc3R5bGVzOntmb250U2l6ZToi
JXZhbHVlIn19LGZvbnRzaXplX2NsYXNzOntpbmxpbmU6InNwYW4iLGF0dHJpYnV0ZXM6eyJjbGFz
cyI6IiV2YWx1ZSJ9fSxibG9ja3F1b3RlOntibG9jazoiYmxvY2txdW90ZSIsd3JhcHBlcjoxLHJl
bW92ZToiYWxsIn0sc3Vic2NyaXB0OntpbmxpbmU6InN1YiJ9LHN1cGVyc2NyaXB0OntpbmxpbmU6
InN1cCJ9LGNvZGU6e2lubGluZToiY29kZSJ9LGxpbms6e2lubGluZToiYSIsc2VsZWN0b3I6ImEi
LHJlbW92ZToiYWxsIixzcGxpdDohMCxkZWVwOiEwLG9ubWF0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4h
MH0sb25mb3JtYXQ6ZnVuY3Rpb24oZSx0LG4pe250KG4sZnVuY3Rpb24odCxuKXt6LnNldEF0dHJp
YihlLG4sdCl9KX19LHJlbW92ZWZvcm1hdDpbe3NlbGVjdG9yOiJiLHN0cm9uZyxlbSxpLGZvbnQs
dSxzdHJpa2Usc3ViLHN1cCxkZm4sY29kZSxzYW1wLGtiZCx2YXIsY2l0ZSxtYXJrLHEiLHJlbW92
ZToiYWxsIixzcGxpdDohMCxleHBhbmQ6ITEsYmxvY2tfZXhwYW5kOiEwLGRlZXA6ITB9LHtzZWxl
Y3Rvcjoic3BhbiIsYXR0cmlidXRlczpbInN0eWxlIiwiY2xhc3MiXSxyZW1vdmU6ImVtcHR5Iixz
cGxpdDohMCxleHBhbmQ6ITEsZGVlcDohMH0se3NlbGVjdG9yOiIqIixhdHRyaWJ1dGVzOlsic3R5
bGUiLCJjbGFzcyJdLHNwbGl0OiExLGV4cGFuZDohMSxkZWVwOiEwfV19KSxudCgicCBoMSBoMiBo
MyBoNCBoNSBoNiBkaXYgYWRkcmVzcyBwcmUgZGl2IGR0IGRkIHNhbXAiLnNwbGl0KC9ccy8pLGZ1
bmN0aW9uKGUpe2QoZSx7YmxvY2s6ZSxyZW1vdmU6ImFsbCJ9KX0pLGQoaS5zZXR0aW5ncy5mb3Jt
YXRzKX1mdW5jdGlvbiBjKCl7aS5hZGRTaG9ydGN1dCgiY3RybCtiIiwiYm9sZF9kZXNjIiwiQm9s
ZCIpLGkuYWRkU2hvcnRjdXQoImN0cmwraSIsIml0YWxpY19kZXNjIiwiSXRhbGljIiksaS5hZGRT
aG9ydGN1dCgiY3RybCt1IiwidW5kZXJsaW5lX2Rlc2MiLCJVbmRlcmxpbmUiKTtmb3IodmFyIGU9
MTs2Pj1lO2UrKylpLmFkZFNob3J0Y3V0KCJjdHJsKyIrZSwiIixbIkZvcm1hdEJsb2NrIiwhMSwi
aCIrZV0pO2kuYWRkU2hvcnRjdXQoImN0cmwrNyIsIiIsWyJGb3JtYXRCbG9jayIsITEsInAiXSks
aS5hZGRTaG9ydGN1dCgiY3RybCs4IiwiIixbIkZvcm1hdEJsb2NrIiwhMSwiZGl2Il0pLGkuYWRk
U2hvcnRjdXQoImN0cmwrOSIsIiIsWyJGb3JtYXRCbG9jayIsITEsImFkZHJlc3MiXSl9ZnVuY3Rp
b24gdShlKXtyZXR1cm4gZT9GW2VdOkZ9ZnVuY3Rpb24gZChlLHQpe2UmJigic3RyaW5nIiE9dHlw
ZW9mIGU/bnQoZSxmdW5jdGlvbihlLHQpe2QodCxlKX0pOih0PXQubGVuZ3RoP3Q6W3RdLG50KHQs
ZnVuY3Rpb24oZSl7ZS5kZWVwPT09USYmKGUuZGVlcD0hZS5zZWxlY3RvciksZS5zcGxpdD09PVEm
JihlLnNwbGl0PSFlLnNlbGVjdG9yfHxlLmlubGluZSksZS5yZW1vdmU9PT1RJiZlLnNlbGVjdG9y
JiYhZS5pbmxpbmUmJihlLnJlbW92ZT0ibm9uZSIpLGUuc2VsZWN0b3ImJmUuaW5saW5lJiYoZS5t
aXhlZD0hMCxlLmJsb2NrX2V4cGFuZD0hMCksInN0cmluZyI9PXR5cGVvZiBlLmNsYXNzZXMmJihl
LmNsYXNzZXM9ZS5jbGFzc2VzLnNwbGl0KC9ccysvKSl9KSxGW2VdPXQpKX1mdW5jdGlvbiBmKGUp
e3ZhciB0O3JldHVybiBpLmRvbS5nZXRQYXJlbnQoZSxmdW5jdGlvbihlKXtyZXR1cm4gdD1pLmRv
bS5nZXRTdHlsZShlLCJ0ZXh0LWRlY29yYXRpb24iKSx0JiYibm9uZSIhPT10fSksdH1mdW5jdGlv
biBwKGUpe3ZhciB0OzE9PT1lLm5vZGVUeXBlJiZlLnBhcmVudE5vZGUmJjE9PT1lLnBhcmVudE5v
ZGUubm9kZVR5cGUmJih0PWYoZS5wYXJlbnROb2RlKSxpLmRvbS5nZXRTdHlsZShlLCJjb2xvciIp
JiZ0P2kuZG9tLnNldFN0eWxlKGUsInRleHQtZGVjb3JhdGlvbiIsdCk6aS5kb20uZ2V0U3R5bGUo
ZSwidGV4dGRlY29yYXRpb24iKT09PXQmJmkuZG9tLnNldFN0eWxlKGUsInRleHQtZGVjb3JhdGlv
biIsbnVsbCkpfWZ1bmN0aW9uIGgodCxuLHIpe2Z1bmN0aW9uIGEoZSx0KXtpZih0PXR8fG0sZSl7
aWYodC5vbmZvcm1hdCYmdC5vbmZvcm1hdChlLHQsbixyKSxudCh0LnN0eWxlcyxmdW5jdGlvbih0
LHIpe3ouc2V0U3R5bGUoZSxyLGsodCxuKSl9KSx0LnN0eWxlcyl7dmFyIGk9ei5nZXRBdHRyaWIo
ZSwic3R5bGUiKTtpJiZlLnNldEF0dHJpYnV0ZSgiZGF0YS1tY2Utc3R5bGUiLGkpfW50KHQuYXR0
cmlidXRlcyxmdW5jdGlvbih0LHIpe3ouc2V0QXR0cmliKGUscixrKHQsbikpfSksbnQodC5jbGFz
c2VzLGZ1bmN0aW9uKHQpe3Q9ayh0LG4pLHouaGFzQ2xhc3MoZSx0KXx8ei5hZGRDbGFzcyhlLHQp
fSl9fWZ1bmN0aW9uIGwoKXtmdW5jdGlvbiB0KHQsbil7dmFyIGk9bmV3IGUobik7Zm9yKHI9aS5j
dXJyZW50KCk7cjtyPWkucHJldigpKWlmKHIuY2hpbGROb2Rlcy5sZW5ndGg+MXx8cj09dHx8IkJS
Ij09ci50YWdOYW1lKXJldHVybiByfXZhciBuPWkuc2VsZWN0aW9uLmdldFJuZygpLG89bi5zdGFy
dENvbnRhaW5lcixhPW4uZW5kQ29udGFpbmVyO2lmKG8hPWEmJjA9PT1uLmVuZE9mZnNldCl7dmFy
IHM9dChvLGEpLGw9Mz09cy5ub2RlVHlwZT9zLmxlbmd0aDpzLmNoaWxkTm9kZXMubGVuZ3RoO24u
c2V0RW5kKHMsbCl9cmV0dXJuIG59ZnVuY3Rpb24gYyhlLHQsbixyLGkpe3ZhciBvPVtdLGE9LTEs
cyxsPS0xLGM9LTEsdTtyZXR1cm4gbnQoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKGUsdCl7cmV0dXJu
IlVMIj09PWUubm9kZU5hbWV8fCJPTCI9PT1lLm5vZGVOYW1lPyhhPXQscz1lLCExKTp2b2lkIDB9
KSxudChlLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSxuKXsiU1BBTiI9PT1lLm5vZGVOYW1lJiYiYm9v
a21hcmsiPT16LmdldEF0dHJpYihlLCJkYXRhLW1jZS10eXBlIikmJihlLmlkPT10LmlkKyJfc3Rh
cnQiP2w9bjplLmlkPT10LmlkKyJfZW5kIiYmKGM9bikpfSksMD49YXx8YT5sJiZjPmE/KG50KHJ0
KGUuY2hpbGROb2RlcyksaSksMCk6KHU9ei5jbG9uZShuLFkpLG50KHJ0KGUuY2hpbGROb2Rlcyks
ZnVuY3Rpb24oZSx0KXsoYT5sJiZhPnR8fGw+YSYmdD5hKSYmKG8ucHVzaChlKSxlLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoZSkpfSksYT5sP2UuaW5zZXJ0QmVmb3JlKHUscyk6bD5hJiZlLmluc2Vy
dEJlZm9yZSh1LHMubmV4dFNpYmxpbmcpLHIucHVzaCh1KSxudChvLGZ1bmN0aW9uKGUpe3UuYXBw
ZW5kQ2hpbGQoZSl9KSx1KX1mdW5jdGlvbiBkKGUscixpKXt2YXIgbD1bXSx1LGQscD0hMDt1PW0u
aW5saW5lfHxtLmJsb2NrLGQ9ei5jcmVhdGUodSksYShkKSxWLndhbGsoZSxmdW5jdGlvbihlKXtm
dW5jdGlvbiBoKGUpe3ZhciB5LEMseCx3LF87cmV0dXJuIF89cCx5PWUubm9kZU5hbWUudG9Mb3dl
ckNhc2UoKSxDPWUucGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLDE9PT1lLm5vZGVU
eXBlJiZaKGUpJiYoXz1wLHA9InRydWUiPT09WihlKSx3PSEwKSxOKHksImJyIik/KGc9MCx2b2lk
KG0uYmxvY2smJnoucmVtb3ZlKGUpKSk6bS53cmFwcGVyJiZ2KGUsdCxuKT92b2lkKGc9MCk6cCYm
IXcmJm0uYmxvY2smJiFtLndyYXBwZXImJm8oeSkmJlUoQyx1KT8oZT16LnJlbmFtZShlLHUpLGEo
ZSksbC5wdXNoKGUpLHZvaWQoZz0wKSk6bS5zZWxlY3RvciYmKG50KGYsZnVuY3Rpb24odCl7ImNv
bGxhcHNlZCJpbiB0JiZ0LmNvbGxhcHNlZCE9PWJ8fHouaXMoZSx0LnNlbGVjdG9yKSYmIXMoZSkm
JihhKGUsdCkseD0hMCl9KSwhbS5pbmxpbmV8fHgpP3ZvaWQoZz0wKTp2b2lkKCFwfHx3fHwhVSh1
LHkpfHwhVShDLHUpfHwhaSYmMz09PWUubm9kZVR5cGUmJjE9PT1lLm5vZGVWYWx1ZS5sZW5ndGgm
JjY1Mjc5PT09ZS5ub2RlVmFsdWUuY2hhckNvZGVBdCgwKXx8cyhlKXx8bS5pbmxpbmUmJnEoZSk/
ImxpIj09eSYmcj9nPWMoZSxyLGQsbCxoKTooZz0wLG50KHJ0KGUuY2hpbGROb2RlcyksaCksdyYm
KHA9XyksZz0wKTooZ3x8KGc9ei5jbG9uZShkLFkpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo
ZyxlKSxsLnB1c2goZykpLGcuYXBwZW5kQ2hpbGQoZSkpKX12YXIgZztudChlLGgpfSksbS53cmFw
X2xpbmtzPT09ITEmJm50KGwsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXt2YXIgbixyLGk7aWYo
IkEiPT09ZS5ub2RlTmFtZSl7Zm9yKHI9ei5jbG9uZShkLFkpLGwucHVzaChyKSxpPXJ0KGUuY2hp
bGROb2Rlcyksbj0wO248aS5sZW5ndGg7bisrKXIuYXBwZW5kQ2hpbGQoaVtuXSk7ZS5hcHBlbmRD
aGlsZChyKX1udChydChlLmNoaWxkTm9kZXMpLHQpfXQoZSl9KSxudChsLGZ1bmN0aW9uKGUpe2Z1
bmN0aW9uIHIoZSl7dmFyIHQ9MDtyZXR1cm4gbnQoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKGUpe1Qo
ZSl8fE0oZSl8fHQrK30pLHR9ZnVuY3Rpb24gaShlKXt2YXIgdCxuO3JldHVybiBudChlLmNoaWxk
Tm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIDEhPWUubm9kZVR5cGV8fE0oZSl8fHMoZSk/dm9pZCAw
Oih0PWUsWSkKK30pLHQmJiFNKHQpJiZfKHQsbSkmJihuPXouY2xvbmUodCxZKSxhKG4pLHoucmVw
bGFjZShuLGUsWCksei5yZW1vdmUodCwxKSksbnx8ZX12YXIgbztpZihvPXIoZSksKGwubGVuZ3Ro
PjF8fCFxKGUpKSYmMD09PW8pcmV0dXJuIHZvaWQgei5yZW1vdmUoZSwxKTtpZihtLmlubGluZXx8
bS53cmFwcGVyKXtpZihtLmV4YWN0fHwxIT09b3x8KGU9aShlKSksbnQoZixmdW5jdGlvbih0KXtu
dCh6LnNlbGVjdCh0LmlubGluZSxlKSxmdW5jdGlvbihlKXt2YXIgcjtpZighTShlKSl7aWYodC53
cmFwX2xpbmtzPT09ITEpe3I9ZS5wYXJlbnROb2RlO2RvIGlmKCJBIj09PXIubm9kZU5hbWUpcmV0
dXJuO3doaWxlKHI9ci5wYXJlbnROb2RlKX1CKHQsbixlLHQuZXhhY3Q/ZTpudWxsKX19KX0pLHYo
ZS5wYXJlbnROb2RlLHQsbikpcmV0dXJuIHoucmVtb3ZlKGUsMSksZT0wLFg7bS5tZXJnZV93aXRo
X3BhcmVudHMmJnouZ2V0UGFyZW50KGUucGFyZW50Tm9kZSxmdW5jdGlvbihyKXtyZXR1cm4gdihy
LHQsbik/KHoucmVtb3ZlKGUsMSksZT0wLFgpOnZvaWQgMH0pLGUmJm0ubWVyZ2Vfc2libGluZ3Mh
PT0hMSYmKGU9SChMKGUpLGUpLGU9SChlLEwoZSxYKSkpfX0pfXZhciBmPXUodCksbT1mWzBdLGcs
eSxiPSFyJiZXLmlzQ29sbGFwc2VkKCk7aWYobSlpZihyKXIubm9kZVR5cGU/KHk9ei5jcmVhdGVS
bmcoKSx5LnNldFN0YXJ0QmVmb3JlKHIpLHkuc2V0RW5kQWZ0ZXIociksZChBKHksZiksbnVsbCwh
MCkpOmQocixudWxsLCEwKTtlbHNlIGlmKGImJm0uaW5saW5lJiYhei5zZWxlY3QoInRkLm1jZS1p
dGVtLXNlbGVjdGVkLHRoLm1jZS1pdGVtLXNlbGVjdGVkIikubGVuZ3RoKU8oImFwcGx5Iix0LG4p
O2Vsc2V7dmFyIEM9aS5zZWxlY3Rpb24uZ2V0Tm9kZSgpOyR8fCFmWzBdLmRlZmF1bHRCbG9ja3x8
ei5nZXRQYXJlbnQoQyx6LmlzQmxvY2spfHxoKGZbMF0uZGVmYXVsdEJsb2NrKSxpLnNlbGVjdGlv
bi5zZXRSbmcobCgpKSxnPVcuZ2V0Qm9va21hcmsoKSxkKEEoVy5nZXRSbmcoWCksZiksZyksbS5z
dHlsZXMmJihtLnN0eWxlcy5jb2xvcnx8bS5zdHlsZXMudGV4dERlY29yYXRpb24pJiYoaXQoQyxw
LCJjaGlsZE5vZGVzIikscChDKSksVy5tb3ZlVG9Cb29rbWFyayhnKSxJKFcuZ2V0Um5nKFgpKSxp
Lm5vZGVDaGFuZ2VkKCl9fWZ1bmN0aW9uIG0oZSx0LG4pe2Z1bmN0aW9uIHIoZSl7dmFyIG4saSxv
LGEscztpZigxPT09ZS5ub2RlVHlwZSYmWihlKSYmKGE9YixiPSJ0cnVlIj09PVooZSkscz0hMCks
bj1ydChlLmNoaWxkTm9kZXMpLGImJiFzKWZvcihpPTAsbz1wLmxlbmd0aDtvPmkmJiFCKHBbaV0s
dCxlLGUpO2krKyk7aWYoaC5kZWVwJiZuLmxlbmd0aCl7Zm9yKGk9MCxvPW4ubGVuZ3RoO28+aTtp
KyspcihuW2ldKTtzJiYoYj1hKX19ZnVuY3Rpb24gbyhuKXt2YXIgcjtyZXR1cm4gbnQoYShuLnBh
cmVudE5vZGUpLnJldmVyc2UoKSxmdW5jdGlvbihuKXt2YXIgaTtyfHwiX3N0YXJ0Ij09bi5pZHx8
Il9lbmQiPT1uLmlkfHwoaT12KG4sZSx0KSxpJiZpLnNwbGl0IT09ITEmJihyPW4pKX0pLHJ9ZnVu
Y3Rpb24gcyhlLG4scixpKXt2YXIgbyxhLHMsbCxjLHU7aWYoZSl7Zm9yKHU9ZS5wYXJlbnROb2Rl
LG89bi5wYXJlbnROb2RlO28mJm8hPXU7bz1vLnBhcmVudE5vZGUpe2ZvcihhPXouY2xvbmUobyxZ
KSxjPTA7YzxwLmxlbmd0aDtjKyspaWYoQihwW2NdLHQsYSxhKSl7YT0wO2JyZWFrfWEmJihzJiZh
LmFwcGVuZENoaWxkKHMpLGx8fChsPWEpLHM9YSl9IWl8fGgubWl4ZWQmJnEoZSl8fChuPXouc3Bs
aXQoZSxuKSkscyYmKHIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxyKSxsLmFwcGVuZENoaWxk
KHIpKX1yZXR1cm4gbn1mdW5jdGlvbiBsKGUpe3JldHVybiBzKG8oZSksZSxlLCEwKX1mdW5jdGlv
biBjKGUpe3ZhciB0PXouZ2V0KGU/Il9zdGFydCI6Il9lbmQiKSxuPXRbZT8iZmlyc3RDaGlsZCI6
Imxhc3RDaGlsZCJdO3JldHVybiBNKG4pJiYobj1uW2U/ImZpcnN0Q2hpbGQiOiJsYXN0Q2hpbGQi
XSksei5yZW1vdmUodCwhMCksbn1mdW5jdGlvbiBkKGUpe3ZhciB0LG4sbz1lLmNvbW1vbkFuY2Vz
dG9yQ29udGFpbmVyO2U9QShlLHAsWCksaC5zcGxpdCYmKHQ9UChlLFgpLG49UChlKSx0IT1uPygv
XihUUnxUSHxURCkkLy50ZXN0KHQubm9kZU5hbWUpJiZ0LmZpcnN0Q2hpbGQmJih0PSJUUiI9PXQu
bm9kZU5hbWU/dC5maXJzdENoaWxkLmZpcnN0Q2hpbGR8fHQ6dC5maXJzdENoaWxkfHx0KSxvJiYv
XlQoSEVBRHxCT0RZfEZPT1R8UikkLy50ZXN0KG8ubm9kZU5hbWUpJiYvXihUSHxURCkkLy50ZXN0
KG4ubm9kZU5hbWUpJiZuLmZpcnN0Q2hpbGQmJihuPW4uZmlyc3RDaGlsZHx8biksdD1SKHQsInNw
YW4iLHtpZDoiX3N0YXJ0IiwiZGF0YS1tY2UtdHlwZSI6ImJvb2ttYXJrIn0pLG49UihuLCJzcGFu
Iix7aWQ6Il9lbmQiLCJkYXRhLW1jZS10eXBlIjoiYm9va21hcmsifSksbCh0KSxsKG4pLHQ9YyhY
KSxuPWMoKSk6dD1uPWwodCksZS5zdGFydENvbnRhaW5lcj10LnBhcmVudE5vZGUsZS5zdGFydE9m
ZnNldD1qKHQpLGUuZW5kQ29udGFpbmVyPW4ucGFyZW50Tm9kZSxlLmVuZE9mZnNldD1qKG4pKzEp
LFYud2FsayhlLGZ1bmN0aW9uKGUpe250KGUsZnVuY3Rpb24oZSl7cihlKSwxPT09ZS5ub2RlVHlw
ZSYmInVuZGVybGluZSI9PT1pLmRvbS5nZXRTdHlsZShlLCJ0ZXh0LWRlY29yYXRpb24iKSYmZS5w
YXJlbnROb2RlJiYidW5kZXJsaW5lIj09PWYoZS5wYXJlbnROb2RlKSYmQih7ZGVlcDohMSxleGFj
dDohMCxpbmxpbmU6InNwYW4iLHN0eWxlczp7dGV4dERlY29yYXRpb246InVuZGVybGluZSJ9fSxu
dWxsLGUpfSl9KX12YXIgcD11KGUpLGg9cFswXSxtLGcsYj0hMDtyZXR1cm4gbj92b2lkKG4ubm9k
ZVR5cGU/KGc9ei5jcmVhdGVSbmcoKSxnLnNldFN0YXJ0QmVmb3JlKG4pLGcuc2V0RW5kQWZ0ZXIo
biksZChnKSk6ZChuKSk6dm9pZChXLmlzQ29sbGFwc2VkKCkmJmguaW5saW5lJiYhei5zZWxlY3Qo
InRkLm1jZS1pdGVtLXNlbGVjdGVkLHRoLm1jZS1pdGVtLXNlbGVjdGVkIikubGVuZ3RoP08oInJl
bW92ZSIsZSx0KToobT1XLmdldEJvb2ttYXJrKCksZChXLmdldFJuZyhYKSksVy5tb3ZlVG9Cb29r
bWFyayhtKSxoLmlubGluZSYmeShlLHQsVy5nZXRTdGFydCgpKSYmSShXLmdldFJuZyghMCkpLGku
bm9kZUNoYW5nZWQoKSkpfWZ1bmN0aW9uIGcoZSx0LG4pe3ZhciByPXUoZSk7IXkoZSx0LG4pfHwi
dG9nZ2xlImluIHJbMF0mJiFyWzBdLnRvZ2dsZT9oKGUsdCxuKTptKGUsdCxuKX1mdW5jdGlvbiB2
KGUsdCxuLHIpe2Z1bmN0aW9uIGkoZSx0LGkpe3ZhciBvLGEscz10W2ldLGw7aWYodC5vbm1hdGNo
KXJldHVybiB0Lm9ubWF0Y2goZSx0LGkpO2lmKHMpaWYocy5sZW5ndGg9PT1RKXtmb3IobyBpbiBz
KWlmKHMuaGFzT3duUHJvcGVydHkobykpe2lmKGE9ImF0dHJpYnV0ZXMiPT09aT96LmdldEF0dHJp
YihlLG8pOkUoZSxvKSxyJiYhYSYmIXQuZXhhY3QpcmV0dXJuO2lmKCghcnx8dC5leGFjdCkmJiFO
KGEsUyhrKHNbb10sbiksbykpKXJldHVybn19ZWxzZSBmb3IobD0wO2w8cy5sZW5ndGg7bCsrKWlm
KCJhdHRyaWJ1dGVzIj09PWk/ei5nZXRBdHRyaWIoZSxzW2xdKTpFKGUsc1tsXSkpcmV0dXJuIHQ7
cmV0dXJuIHR9dmFyIG89dSh0KSxhLHMsbDtpZihvJiZlKWZvcihzPTA7czxvLmxlbmd0aDtzKysp
aWYoYT1vW3NdLF8oZSxhKSYmaShlLGEsImF0dHJpYnV0ZXMiKSYmaShlLGEsInN0eWxlcyIpKXtp
ZihsPWEuY2xhc3Nlcylmb3Iocz0wO3M8bC5sZW5ndGg7cysrKWlmKCF6Lmhhc0NsYXNzKGUsbFtz
XSkpcmV0dXJuO3JldHVybiBhfX1mdW5jdGlvbiB5KGUsdCxuKXtmdW5jdGlvbiByKG4pe3ZhciBy
PXouZ2V0Um9vdCgpO3JldHVybiBuPT09cj8hMToobj16LmdldFBhcmVudChuLGZ1bmN0aW9uKG4p
e3JldHVybiBuLnBhcmVudE5vZGU9PT1yfHwhIXYobixlLHQsITApfSksdihuLGUsdCkpfXZhciBp
O3JldHVybiBuP3Iobik6KG49Vy5nZXROb2RlKCkscihuKT9YOihpPVcuZ2V0U3RhcnQoKSxpIT1u
JiZyKGkpP1g6WSkpfWZ1bmN0aW9uIGIoZSx0KXt2YXIgbixyPVtdLGk9e307cmV0dXJuIG49Vy5n
ZXRTdGFydCgpLHouZ2V0UGFyZW50KG4sZnVuY3Rpb24obil7dmFyIG8sYTtmb3Iobz0wO288ZS5s
ZW5ndGg7bysrKWE9ZVtvXSwhaVthXSYmdihuLGEsdCkmJihpW2FdPSEwLHIucHVzaChhKSl9LHou
Z2V0Um9vdCgpKSxyfWZ1bmN0aW9uIEMoZSl7dmFyIHQ9dShlKSxuLHIsaSxvLHM7aWYodClmb3Io
bj1XLmdldFN0YXJ0KCkscj1hKG4pLG89dC5sZW5ndGgtMTtvPj0wO28tLSl7aWYocz10W29dLnNl
bGVjdG9yLCFzfHx0W29dLmRlZmF1bHRCbG9jaylyZXR1cm4gWDtmb3IoaT1yLmxlbmd0aC0xO2k+
PTA7aS0tKWlmKHouaXMocltpXSxzKSlyZXR1cm4gWH1yZXR1cm4gWX1mdW5jdGlvbiB4KGUsdCxu
KXt2YXIgcjtyZXR1cm4gSnx8KEo9e30scj17fSxpLm9uKCJOb2RlQ2hhbmdlIixmdW5jdGlvbihl
KXt2YXIgdD1hKGUuZWxlbWVudCksbj17fTtudChKLGZ1bmN0aW9uKGUsaSl7bnQodCxmdW5jdGlv
bihvKXtyZXR1cm4gdihvLGkse30sZS5zaW1pbGFyKT8ocltpXXx8KG50KGUsZnVuY3Rpb24oZSl7
ZSghMCx7bm9kZTpvLGZvcm1hdDppLHBhcmVudHM6dH0pfSkscltpXT1lKSxuW2ldPWUsITEpOnZv
aWQgMH0pfSksbnQocixmdW5jdGlvbihpLG8pe25bb118fChkZWxldGUgcltvXSxudChpLGZ1bmN0
aW9uKG4pe24oITEse25vZGU6ZS5lbGVtZW50LGZvcm1hdDpvLHBhcmVudHM6dH0pfSkpfSl9KSks
bnQoZS5zcGxpdCgiLCIpLGZ1bmN0aW9uKGUpe0pbZV18fChKW2VdPVtdLEpbZV0uc2ltaWxhcj1u
KSxKW2VdLnB1c2godCl9KSx0aGlzfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIHIuZ2V0Q3NzVGV4dChp
LGUpfWZ1bmN0aW9uIF8oZSx0KXtyZXR1cm4gTihlLHQuaW5saW5lKT9YOk4oZSx0LmJsb2NrKT9Y
OnQuc2VsZWN0b3I/MT09ZS5ub2RlVHlwZSYmei5pcyhlLHQuc2VsZWN0b3IpOnZvaWQgMH1mdW5j
dGlvbiBOKGUsdCl7cmV0dXJuIGU9ZXx8IiIsdD10fHwiIixlPSIiKyhlLm5vZGVOYW1lfHxlKSx0
PSIiKyh0Lm5vZGVOYW1lfHx0KSxlLnRvTG93ZXJDYXNlKCk9PXQudG9Mb3dlckNhc2UoKX1mdW5j
dGlvbiBFKGUsdCl7cmV0dXJuIFMoei5nZXRTdHlsZShlLHQpLHQpfWZ1bmN0aW9uIFMoZSx0KXty
ZXR1cm4oImNvbG9yIj09dHx8ImJhY2tncm91bmRDb2xvciI9PXQpJiYoZT16LnRvSGV4KGUpKSwi
Zm9udFdlaWdodCI9PXQmJjcwMD09ZSYmKGU9ImJvbGQiKSwiZm9udEZhbWlseSI9PXQmJihlPWUu
cmVwbGFjZSgvW1wnXCJdL2csIiIpLnJlcGxhY2UoLyxccysvZywiLCIpKSwiIitlfWZ1bmN0aW9u
IGsoZSx0KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGU/ZT1lKHQpOnQmJihlPWUucmVwbGFjZSgv
JShcdyspL2csZnVuY3Rpb24oZSxuKXtyZXR1cm4gdFtuXXx8ZX0pKSxlfWZ1bmN0aW9uIFQoZSl7
cmV0dXJuIGUmJjM9PT1lLm5vZGVUeXBlJiYvXihbXHQgXHJcbl0rfCkkLy50ZXN0KGUubm9kZVZh
bHVlKX1mdW5jdGlvbiBSKGUsdCxuKXt2YXIgcj16LmNyZWF0ZSh0LG4pO3JldHVybiBlLnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKHIsZSksci5hcHBlbmRDaGlsZChlKSxyfWZ1bmN0aW9uIEEodCxu
LHIpe2Z1bmN0aW9uIHMoZSl7ZnVuY3Rpb24gdChlKXtyZXR1cm4iQlIiPT1lLm5vZGVOYW1lJiZl
LmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtYm9ndXMiKSYmIWUubmV4dFNpYmxpbmd9dmFyIHIsaSxv
LGEscztpZihyPWk9ZT9nOnksYT1lPyJwcmV2aW91c1NpYmxpbmciOiJuZXh0U2libGluZyIscz16
LmdldFJvb3QoKSwzPT1yLm5vZGVUeXBlJiYhVChyKSYmKGU/dj4wOmI8ci5ub2RlVmFsdWUubGVu
Z3RoKSlyZXR1cm4gcjtmb3IoOzspe2lmKCFuWzBdLmJsb2NrX2V4cGFuZCYmcShpKSlyZXR1cm4g
aTtmb3Iobz1pW2FdO287bz1vW2FdKWlmKCFNKG8pJiYhVChvKSYmIXQobykpcmV0dXJuIGk7aWYo
aS5wYXJlbnROb2RlPT1zKXtyPWk7YnJlYWt9aT1pLnBhcmVudE5vZGV9cmV0dXJuIHJ9ZnVuY3Rp
b24gbChlLHQpe2Zvcih0PT09USYmKHQ9Mz09PWUubm9kZVR5cGU/ZS5sZW5ndGg6ZS5jaGlsZE5v
ZGVzLmxlbmd0aCk7ZSYmZS5oYXNDaGlsZE5vZGVzKCk7KWU9ZS5jaGlsZE5vZGVzW3RdLGUmJih0
PTM9PT1lLm5vZGVUeXBlP2UubGVuZ3RoOmUuY2hpbGROb2Rlcy5sZW5ndGgpO3JldHVybntub2Rl
OmUsb2Zmc2V0OnR9fWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0PWU7dDspe2lmKDE9PT10Lm5vZGVU
eXBlJiZaKHQpKXJldHVybiJmYWxzZSI9PT1aKHQpP3Q6ZTt0PXQucGFyZW50Tm9kZX1yZXR1cm4g
ZX1mdW5jdGlvbiB1KHQsbixvKXtmdW5jdGlvbiBhKGUsdCl7dmFyIG4saSxhPWUubm9kZVZhbHVl
O3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgdCYmKHQ9bz9hLmxlbmd0aDowKSxvPyhuPWEubGFz
dEluZGV4T2YoIiAiLHQpLGk9YS5sYXN0SW5kZXhPZigiXHhhMCIsdCksbj1uPmk/bjppLC0xPT09
bnx8cnx8bisrKToobj1hLmluZGV4T2YoIiAiLHQpLGk9YS5pbmRleE9mKCJceGEwIix0KSxuPS0x
IT09biYmKC0xPT09aXx8aT5uKT9uOmkpLG59dmFyIHMsbCxjLHU7aWYoMz09PXQubm9kZVR5cGUp
e2lmKGM9YSh0LG4pLC0xIT09YylyZXR1cm57Y29udGFpbmVyOnQsb2Zmc2V0OmN9O3U9dH1mb3Io
cz1uZXcgZSh0LHouZ2V0UGFyZW50KHQscSl8fGkuZ2V0Qm9keSgpKTtsPXNbbz8icHJldiI6Im5l
eHQiXSgpOylpZigzPT09bC5ub2RlVHlwZSl7aWYodT1sLGM9YShsKSwtMSE9PWMpcmV0dXJue2Nv
bnRhaW5lcjpsLG9mZnNldDpjfX1lbHNlIGlmKHEobCkpYnJlYWs7cmV0dXJuIHU/KG49bz8wOnUu
bGVuZ3RoLHtjb250YWluZXI6dSxvZmZzZXQ6bn0pOnZvaWQgMH1mdW5jdGlvbiBkKGUscil7dmFy
IGksbyxzLGw7Zm9yKDM9PWUubm9kZVR5cGUmJjA9PT1lLm5vZGVWYWx1ZS5sZW5ndGgmJmVbcl0m
JihlPWVbcl0pLGk9YShlKSxvPTA7bzxpLmxlbmd0aDtvKyspZm9yKHM9MDtzPG4ubGVuZ3RoO3Mr
KylpZihsPW5bc10sISgiY29sbGFwc2VkImluIGwmJmwuY29sbGFwc2VkIT09dC5jb2xsYXBzZWQp
JiZ6LmlzKGlbb10sbC5zZWxlY3RvcikpcmV0dXJuIGlbb107cmV0dXJuIGV9ZnVuY3Rpb24gZihl
LHQpe3ZhciByLGk9ei5nZXRSb290KCk7aWYoblswXS53cmFwcGVyfHwocj16LmdldFBhcmVudChl
LG5bMF0uYmxvY2ssaSkpLHJ8fChyPXouZ2V0UGFyZW50KDM9PWUubm9kZVR5cGU/ZS5wYXJlbnRO
b2RlOmUsZnVuY3Rpb24oZSl7cmV0dXJuIGUhPWkmJm8oZSl9KSksciYmblswXS53cmFwcGVyJiYo
cj1hKHIsInVsLG9sIikucmV2ZXJzZSgpWzBdfHxyKSwhcilmb3Iocj1lO3JbdF0mJiFxKHJbdF0p
JiYocj1yW3RdLCFOKHIsImJyIikpOyk7cmV0dXJuIHJ8fGV9dmFyIHAsaCxtLGc9dC5zdGFydENv
bnRhaW5lcix2PXQuc3RhcnRPZmZzZXQseT10LmVuZENvbnRhaW5lcixiPXQuZW5kT2Zmc2V0O2lm
KDE9PWcubm9kZVR5cGUmJmcuaGFzQ2hpbGROb2RlcygpJiYocD1nLmNoaWxkTm9kZXMubGVuZ3Ro
LTEsZz1nLmNoaWxkTm9kZXNbdj5wP3A6dl0sMz09Zy5ub2RlVHlwZSYmKHY9MCkpLDE9PXkubm9k
ZVR5cGUmJnkuaGFzQ2hpbGROb2RlcygpJiYocD15LmNoaWxkTm9kZXMubGVuZ3RoLTEseT15LmNo
aWxkTm9kZXNbYj5wP3A6Yi0xXSwzPT15Lm5vZGVUeXBlJiYoYj15Lm5vZGVWYWx1ZS5sZW5ndGgp
KSxnPWMoZykseT1jKHkpLChNKGcucGFyZW50Tm9kZSl8fE0oZykpJiYoZz1NKGcpP2c6Zy5wYXJl
bnROb2RlLGc9Zy5uZXh0U2libGluZ3x8ZywzPT1nLm5vZGVUeXBlJiYodj0wKSksKE0oeS5wYXJl
bnROb2RlKXx8TSh5KSkmJih5PU0oeSk/eTp5LnBhcmVudE5vZGUseT15LnByZXZpb3VzU2libGlu
Z3x8eSwzPT15Lm5vZGVUeXBlJiYoYj15Lmxlbmd0aCkpLG5bMF0uaW5saW5lJiYodC5jb2xsYXBz
ZWQmJihtPXUoZyx2LCEwKSxtJiYoZz1tLmNvbnRhaW5lcix2PW0ub2Zmc2V0KSxtPXUoeSxiKSxt
JiYoeT1tLmNvbnRhaW5lcixiPW0ub2Zmc2V0KSksaD1sKHksYiksaC5ub2RlKSl7Zm9yKDtoLm5v
ZGUmJjA9PT1oLm9mZnNldCYmaC5ub2RlLnByZXZpb3VzU2libGluZzspaD1sKGgubm9kZS5wcmV2
aW91c1NpYmxpbmcpO2gubm9kZSYmaC5vZmZzZXQ+MCYmMz09PWgubm9kZS5ub2RlVHlwZSYmIiAi
PT09aC5ub2RlLm5vZGVWYWx1ZS5jaGFyQXQoaC5vZmZzZXQtMSkmJmgub2Zmc2V0PjEmJih5PWgu
bm9kZSx5LnNwbGl0VGV4dChoLm9mZnNldC0xKSl9cmV0dXJuKG5bMF0uaW5saW5lfHxuWzBdLmJs
b2NrX2V4cGFuZCkmJihuWzBdLmlubGluZSYmMz09Zy5ub2RlVHlwZSYmMCE9PXZ8fChnPXMoITAp
KSxuWzBdLmlubGluZSYmMz09eS5ub2RlVHlwZSYmYiE9PXkubm9kZVZhbHVlLmxlbmd0aHx8KHk9
cygpKSksblswXS5zZWxlY3RvciYmblswXS5leHBhbmQhPT1ZJiYhblswXS5pbmxpbmUmJihnPWQo
ZywicHJldmlvdXNTaWJsaW5nIikseT1kKHksIm5leHRTaWJsaW5nIikpLChuWzBdLmJsb2NrfHxu
WzBdLnNlbGVjdG9yKSYmKGc9ZihnLCJwcmV2aW91c1NpYmxpbmciKSx5PWYoeSwibmV4dFNpYmxp
bmciKSxuWzBdLmJsb2NrJiYocShnKXx8KGc9cyghMCkpLHEoeSl8fCh5PXMoKSkpKSwxPT1nLm5v
ZGVUeXBlJiYodj1qKGcpLGc9Zy5wYXJlbnROb2RlKSwxPT15Lm5vZGVUeXBlJiYoYj1qKHkpKzEs
eT15LnBhcmVudE5vZGUpLHtzdGFydENvbnRhaW5lcjpnLHN0YXJ0T2Zmc2V0OnYsZW5kQ29udGFp
bmVyOnksZW5kT2Zmc2V0OmJ9fWZ1bmN0aW9uIEIoZSx0LG4scil7dmFyIGksbyxhO2lmKCFfKG4s
ZSkpcmV0dXJuIFk7aWYoImFsbCIhPWUucmVtb3ZlKWZvcihudChlLnN0eWxlcyxmdW5jdGlvbihl
LGkpe2U9UyhrKGUsdCksaSksIm51bWJlciI9PXR5cGVvZiBpJiYoaT1lLHI9MCksKCFyfHxOKEUo
cixpKSxlKSkmJnouc2V0U3R5bGUobixpLCIiKSxhPTF9KSxhJiYiIj09PXouZ2V0QXR0cmliKG4s
InN0eWxlIikmJihuLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSxuLnJlbW92ZUF0dHJpYnV0ZSgi
ZGF0YS1tY2Utc3R5bGUiKSksbnQoZS5hdHRyaWJ1dGVzLGZ1bmN0aW9uKGUsaSl7dmFyIG87aWYo
ZT1rKGUsdCksIm51bWJlciI9PXR5cGVvZiBpJiYoaT1lLHI9MCksIXJ8fE4oei5nZXRBdHRyaWIo
cixpKSxlKSl7aWYoImNsYXNzIj09aSYmKGU9ei5nZXRBdHRyaWIobixpKSxlJiYobz0iIixudChl
LnNwbGl0KC9ccysvKSxmdW5jdGlvbihlKXsvbWNlXHcrLy50ZXN0KGUpJiYobys9KG8/IiAiOiIi
KStlKX0pLG8pKSlyZXR1cm4gdm9pZCB6LnNldEF0dHJpYihuLGksbyk7ImNsYXNzIj09aSYmbi5y
ZW1vdmVBdHRyaWJ1dGUoImNsYXNzTmFtZSIpLEcudGVzdChpKSYmbi5yZW1vdmVBdHRyaWJ1dGUo
ImRhdGEtbWNlLSIraSksbi5yZW1vdmVBdHRyaWJ1dGUoaSl9fSksbnQoZS5jbGFzc2VzLGZ1bmN0
aW9uKGUpe2U9ayhlLHQpLCghcnx8ei5oYXNDbGFzcyhyLGUpKSYmei5yZW1vdmVDbGFzcyhuLGUp
fSksbz16LmdldEF0dHJpYnMobiksaT0wO2k8by5sZW5ndGg7aSsrKWlmKDAhPT1vW2ldLm5vZGVO
YW1lLmluZGV4T2YoIl8iKSlyZXR1cm4gWTtyZXR1cm4ibm9uZSIhPWUucmVtb3ZlPyhEKG4sZSks
WCk6dm9pZCAwfWZ1bmN0aW9uIEQoZSx0KXtmdW5jdGlvbiBuKGUsdCxuKXtyZXR1cm4gZT1MKGUs
dCxuKSwhZXx8IkJSIj09ZS5ub2RlTmFtZXx8cShlKX12YXIgcj1lLnBhcmVudE5vZGUsbzt0LmJs
b2NrJiYoJD9yPT16LmdldFJvb3QoKSYmKHQubGlzdF9ibG9jayYmTihlLHQubGlzdF9ibG9jayl8
fG50KHJ0KGUuY2hpbGROb2RlcyksZnVuY3Rpb24oZSl7VSgkLGUubm9kZU5hbWUudG9Mb3dlckNh
c2UoKSk/bz9vLmFwcGVuZENoaWxkKGUpOihvPVIoZSwkKSx6LnNldEF0dHJpYnMobyxpLnNldHRp
bmdzLmZvcmNlZF9yb290X2Jsb2NrX2F0dHJzKSk6bz0wfSkpOnEoZSkmJiFxKHIpJiYobihlLFkp
fHxuKGUuZmlyc3RDaGlsZCxYLDEpfHxlLmluc2VydEJlZm9yZSh6LmNyZWF0ZSgiYnIiKSxlLmZp
cnN0Q2hpbGQpLG4oZSxYKXx8bihlLmxhc3RDaGlsZCxZLDEpfHxlLmFwcGVuZENoaWxkKHouY3Jl
YXRlKCJiciIpKSkpLHQuc2VsZWN0b3ImJnQuaW5saW5lJiYhTih0LmlubGluZSxlKXx8ei5yZW1v
dmUoZSwxKX1mdW5jdGlvbiBMKGUsdCxuKXtpZihlKWZvcih0PXQ/Im5leHRTaWJsaW5nIjoicHJl
dmlvdXNTaWJsaW5nIixlPW4/ZTplW3RdO2U7ZT1lW3RdKWlmKDE9PWUubm9kZVR5cGV8fCFUKGUp
KXJldHVybiBlfWZ1bmN0aW9uIE0oZSl7cmV0dXJuIGUmJjE9PWUubm9kZVR5cGUmJiJib29rbWFy
ayI9PWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS10eXBlIil9ZnVuY3Rpb24gSChlLHQpe2Z1bmN0
aW9uIG4oZSx0KXtmdW5jdGlvbiBuKGUpe3ZhciB0PXt9O3JldHVybiBudCh6LmdldEF0dHJpYnMo
ZSksZnVuY3Rpb24obil7dmFyIHI9bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOzAhPT1yLmluZGV4
T2YoIl8iKSYmInN0eWxlIiE9PXImJiJkYXRhLW1jZS1zdHlsZSIhPT1yJiYodFtyXT16LmdldEF0
dHJpYihlLHIpKX0pLHR9ZnVuY3Rpb24gcihlLHQpe3ZhciBuLHI7Zm9yKHIgaW4gZSlpZihlLmhh
c093blByb3BlcnR5KHIpKXtpZihuPXRbcl0sbj09PVEpcmV0dXJuIFk7aWYoZVtyXSE9bilyZXR1
cm4gWTtkZWxldGUgdFtyXX1mb3IociBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkocikpcmV0dXJu
IFk7cmV0dXJuIFh9cmV0dXJuIGUubm9kZU5hbWUhPXQubm9kZU5hbWU/WTpyKG4oZSksbih0KSkm
JnIoei5wYXJzZVN0eWxlKHouZ2V0QXR0cmliKGUsInN0eWxlIikpLHoucGFyc2VTdHlsZSh6Lmdl
dEF0dHJpYih0LCJzdHlsZSIpKSk/IU0oZSkmJiFNKHQpOll9ZnVuY3Rpb24gcihlLHQpe2Zvcihp
PWU7aTtpPWlbdF0pe2lmKDM9PWkubm9kZVR5cGUmJjAhPT1pLm5vZGVWYWx1ZS5sZW5ndGgpcmV0
dXJuIGU7aWYoMT09aS5ub2RlVHlwZSYmIU0oaSkpcmV0dXJuIGl9cmV0dXJuIGV9dmFyIGksbztp
ZihlJiZ0JiYoZT1yKGUsInByZXZpb3VzU2libGluZyIpLHQ9cih0LCJuZXh0U2libGluZyIpLG4o
ZSx0KSkpe2ZvcihpPWUubmV4dFNpYmxpbmc7aSYmaSE9dDspbz1pLGk9aS5uZXh0U2libGluZyxl
LmFwcGVuZENoaWxkKG8pO3JldHVybiB6LnJlbW92ZSh0KSxudChydCh0LmNoaWxkTm9kZXMpLGZ1
bmN0aW9uKHQpe2UuYXBwZW5kQ2hpbGQodCl9KSxlfXJldHVybiB0fWZ1bmN0aW9uIFAodCxuKXt2
YXIgcixvLGE7cmV0dXJuIHI9dFtuPyJzdGFydENvbnRhaW5lciI6ImVuZENvbnRhaW5lciJdLG89
dFtuPyJzdGFydE9mZnNldCI6ImVuZE9mZnNldCJdLDE9PXIubm9kZVR5cGUmJihhPXIuY2hpbGRO
b2Rlcy5sZW5ndGgtMSwhbiYmbyYmby0tLHI9ci5jaGlsZE5vZGVzW28+YT9hOm9dKSwzPT09ci5u
b2RlVHlwZSYmbiYmbz49ci5ub2RlVmFsdWUubGVuZ3RoJiYocj1uZXcgZShyLGkuZ2V0Qm9keSgp
KS5uZXh0KCl8fHIpLDMhPT1yLm5vZGVUeXBlfHxufHwwIT09b3x8KHI9bmV3IGUocixpLmdldEJv
ZHkoKSkucHJldigpfHxyKSxyfWZ1bmN0aW9uIE8odCxuLHIpe2Z1bmN0aW9uIGEoZSl7dmFyIHQ9
ei5jcmVhdGUoInNwYW4iLHtpZDp5LCJkYXRhLW1jZS1ib2d1cyI6ITAsc3R5bGU6Yj8iY29sb3I6
cmVkIjoiIn0pO3JldHVybiBlJiZ0LmFwcGVuZENoaWxkKGkuZ2V0RG9jKCkuY3JlYXRlVGV4dE5v
ZGUoSykpLHR9ZnVuY3Rpb24gcyhlLHQpe2Zvcig7ZTspe2lmKDM9PT1lLm5vZGVUeXBlJiZlLm5v
ZGVWYWx1ZSE9PUt8fGUuY2hpbGROb2Rlcy5sZW5ndGg+MSlyZXR1cm4hMTt0JiYxPT09ZS5ub2Rl
VHlwZSYmdC5wdXNoKGUpLGU9ZS5maXJzdENoaWxkfXJldHVybiEwfWZ1bmN0aW9uIGwoZSl7Zm9y
KDtlOyl7aWYoZS5pZD09PXkpcmV0dXJuIGU7ZT1lLnBhcmVudE5vZGV9fWZ1bmN0aW9uIGModCl7
dmFyIG47aWYodClmb3Iobj1uZXcgZSh0LHQpLHQ9bi5jdXJyZW50KCk7dDt0PW4ubmV4dCgpKWlm
KDM9PT10Lm5vZGVUeXBlKXJldHVybiB0fWZ1bmN0aW9uIGQoZSx0KXt2YXIgbixyO2lmKGUpcj1X
LmdldFJuZyghMCkscyhlKT8odCE9PSExJiYoci5zZXRTdGFydEJlZm9yZShlKSxyLnNldEVuZEJl
Zm9yZShlKSksei5yZW1vdmUoZSkpOihuPWMoZSksbi5ub2RlVmFsdWUuY2hhckF0KDApPT09SyYm
KG49bi5kZWxldGVEYXRhKDAsMSkpLHoucmVtb3ZlKGUsMSkpLFcuc2V0Um5nKHIpO2Vsc2UgaWYo
ZT1sKFcuZ2V0U3RhcnQoKSksIWUpZm9yKDtlPXouZ2V0KHkpOylkKGUsITEpfWZ1bmN0aW9uIGYo
KXt2YXIgZSx0LGksbyxzLGQsZjtlPVcuZ2V0Um5nKCEwKSxvPWUuc3RhcnRPZmZzZXQsZD1lLnN0
YXJ0Q29udGFpbmVyLGY9ZC5ub2RlVmFsdWUsdD1sKFcuZ2V0U3RhcnQoKSksdCYmKGk9Yyh0KSks
ZiYmbz4wJiZvPGYubGVuZ3RoJiYvXHcvLnRlc3QoZi5jaGFyQXQobykpJiYvXHcvLnRlc3QoZi5j
aGFyQXQoby0xKSk/KHM9Vy5nZXRCb29rbWFyaygpLGUuY29sbGFwc2UoITApLGU9QShlLHUobikp
LGU9Vi5zcGxpdChlKSxoKG4scixlKSxXLm1vdmVUb0Jvb2ttYXJrKHMpKToodCYmaS5ub2RlVmFs
dWU9PT1LP2gobixyLHQpOih0PWEoITApLGk9dC5maXJzdENoaWxkLGUuaW5zZXJ0Tm9kZSh0KSxv
PTEsaChuLHIsdCkpLFcuc2V0Q3Vyc29yTG9jYXRpb24oaSxvKSl9ZnVuY3Rpb24gcCgpe3ZhciBl
PVcuZ2V0Um5nKCEwKSx0LGkscyxsLGMsZCxmPVtdLHAsaDtmb3IodD1lLnN0YXJ0Q29udGFpbmVy
LGk9ZS5zdGFydE9mZnNldCxjPXQsMz09dC5ub2RlVHlwZSYmKChpIT10Lm5vZGVWYWx1ZS5sZW5n
dGh8fHQubm9kZVZhbHVlPT09SykmJihsPSEwKSxjPWMucGFyZW50Tm9kZSk7Yzspe2lmKHYoYyxu
LHIpKXtkPWM7YnJlYWt9Yy5uZXh0U2libGluZyYmKGw9ITApLGYucHVzaChjKSxjPWMucGFyZW50
Tm9kZX1pZihkKWlmKGwpcz1XLmdldEJvb2ttYXJrKCksZS5jb2xsYXBzZSghMCksZT1BKGUsdShu
KSwhMCksZT1WLnNwbGl0KGUpLG0obixyLGUpLFcubW92ZVRvQm9va21hcmsocyk7ZWxzZXtmb3Io
aD1hKCksYz1oLHA9Zi5sZW5ndGgtMTtwPj0wO3AtLSljLmFwcGVuZENoaWxkKHouY2xvbmUoZltw
XSwhMSkpLGM9Yy5maXJzdENoaWxkO2MuYXBwZW5kQ2hpbGQoei5kb2MuY3JlYXRlVGV4dE5vZGUo
SykpLGM9Yy5maXJzdENoaWxkO3ZhciBnPXouZ2V0UGFyZW50KGQsbyk7ZyYmei5pc0VtcHR5KGcp
P2QucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoaCxkKTp6Lmluc2VydEFmdGVyKGgsZCksVy5zZXRD
dXJzb3JMb2NhdGlvbihjLDEpLHouaXNFbXB0eShkKSYmei5yZW1vdmUoZCl9fWZ1bmN0aW9uIGco
KXt2YXIgZTtlPWwoVy5nZXRTdGFydCgpKSxlJiYhei5pc0VtcHR5KGUpJiZpdChlLGZ1bmN0aW9u
KGUpezEhPWUubm9kZVR5cGV8fGUuaWQ9PT15fHx6LmlzRW1wdHkoZSl8fHouc2V0QXR0cmliKGUs
ImRhdGEtbWNlLWJvZ3VzIixudWxsKX0sImNoaWxkTm9kZXMiKX12YXIgeT0iX21jZV9jYXJldCIs
Yj1pLnNldHRpbmdzLmNhcmV0X2RlYnVnO2kuX2hhc0NhcmV0RXZlbnRzfHwodHQ9ZnVuY3Rpb24o
KXt2YXIgZT1bXSx0O2lmKHMobChXLmdldFN0YXJ0KCkpLGUpKWZvcih0PWUubGVuZ3RoO3QtLTsp
ei5zZXRBdHRyaWIoZVt0XSwiZGF0YS1tY2UtYm9ndXMiLCIxIil9LGV0PWZ1bmN0aW9uKGUpe3Zh
ciB0PWUua2V5Q29kZTtkKCksKDg9PXR8fDM3PT10fHwzOT09dCkmJmQobChXLmdldFN0YXJ0KCkp
KSxnKCl9LGkub24oIlNldENvbnRlbnQiLGZ1bmN0aW9uKGUpe2Uuc2VsZWN0aW9uJiZnKCl9KSxp
Ll9oYXNDYXJldEV2ZW50cz0hMCksImFwcGx5Ij09dD9mKCk6cCgpfWZ1bmN0aW9uIEkodCl7dmFy
IG49dC5zdGFydENvbnRhaW5lcixyPXQuc3RhcnRPZmZzZXQsaSxvLGEscyxsO2lmKDM9PW4ubm9k
ZVR5cGUmJnI+PW4ubm9kZVZhbHVlLmxlbmd0aCYmKHI9aihuKSxuPW4ucGFyZW50Tm9kZSxpPSEw
KSwxPT1uLm5vZGVUeXBlKWZvcihzPW4uY2hpbGROb2RlcyxuPXNbTWF0aC5taW4ocixzLmxlbmd0
aC0xKV0sbz1uZXcgZShuLHouZ2V0UGFyZW50KG4sei5pc0Jsb2NrKSksKHI+cy5sZW5ndGgtMXx8
aSkmJm8ubmV4dCgpLGE9by5jdXJyZW50KCk7YTthPW8ubmV4dCgpKWlmKDM9PWEubm9kZVR5cGUm
JiFUKGEpKXJldHVybiBsPXouY3JlYXRlKCJhIixudWxsLEspLGEucGFyZW50Tm9kZS5pbnNlcnRC
ZWZvcmUobCxhKSx0LnNldFN0YXJ0KGEsMCksVy5zZXRSbmcodCksdm9pZCB6LnJlbW92ZShsKX12
YXIgRj17fSx6PWkuZG9tLFc9aS5zZWxlY3Rpb24sVj1uZXcgdCh6KSxVPWkuc2NoZW1hLmlzVmFs
aWRDaGlsZCxxPXouaXNCbG9jaywkPWkuc2V0dGluZ3MuZm9yY2VkX3Jvb3RfYmxvY2ssaj16Lm5v
ZGVJbmRleCxLPSJcdWZlZmYiLEc9L14oc3JjfGhyZWZ8c3R5bGUpJC8sWT0hMSxYPSEwLEosUSxa
PXouZ2V0Q29udGVudEVkaXRhYmxlLGV0LHR0LG50PW4uZWFjaCxydD1uLmdyZXAsaXQ9bi53YWxr
LG90PW4uZXh0ZW5kO290KHRoaXMse2dldDp1LHJlZ2lzdGVyOmQsYXBwbHk6aCxyZW1vdmU6bSx0
b2dnbGU6ZyxtYXRjaDp5LG1hdGNoQWxsOmIsbWF0Y2hOb2RlOnYsY2FuQXBwbHk6Qyxmb3JtYXRD
aGFuZ2VkOngsZ2V0Q3NzVGV4dDp3fSksbCgpLGMoKSxpLm9uKCJCZWZvcmVHZXRDb250ZW50Iixm
dW5jdGlvbigpe3R0JiZ0dCgpfSksaS5vbigibW91c2V1cCBrZXlkb3duIixmdW5jdGlvbihlKXtl
dCYmZXQoZSl9KX19KSxyKEgsW2cscF0sZnVuY3Rpb24oZSx0KXt2YXIgbj10LnRyaW0scjtyZXR1
cm4gcj1uZXcgUmVnRXhwKFsiPHNwYW5bXj5dK2RhdGEtbWNlLWJvZ3VzW14+XSs+W1x1MjAwYlx1
ZmVmZl0rPFxcL3NwYW4+IiwiPGRpdltePl0rZGF0YS1tY2UtYm9ndXNbXj5dKz48XFwvZGl2PiIs
J1xccz9kYXRhLW1jZS1zZWxlY3RlZD0iW14iXSsiJ10uam9pbigifCIpLCJnaSIpLGZ1bmN0aW9u
KHQpe2Z1bmN0aW9uIGkoKXtyZXR1cm4gbih0LmdldENvbnRlbnQoe2Zvcm1hdDoicmF3Iixub19l
dmVudHM6MX0pLnJlcGxhY2UociwiIikpfWZ1bmN0aW9uIG8oZSl7YS50eXBpbmc9ITEsYS5hZGQo
e30sZSl9dmFyIGE9dGhpcyxzPTAsbD1bXSxjLHUsZD0wO3JldHVybiB0Lm9uKCJpbml0IixmdW5j
dGlvbigpe2EuYWRkKCl9KSx0Lm9uKCJCZWZvcmVFeGVjQ29tbWFuZCIsZnVuY3Rpb24oZSl7dmFy
IHQ9ZS5jb21tYW5kOyJVbmRvIiE9dCYmIlJlZG8iIT10JiYibWNlUmVwYWludCIhPXQmJmEuYmVm
b3JlQ2hhbmdlKCl9KSx0Lm9uKCJFeGVjQ29tbWFuZCIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb21t
YW5kOyJVbmRvIiE9dCYmIlJlZG8iIT10JiYibWNlUmVwYWludCIhPXQmJm8oZSl9KSx0Lm9uKCJP
YmplY3RSZXNpemVTdGFydCIsZnVuY3Rpb24oKXthLmJlZm9yZUNoYW5nZSgpfSksdC5vbigiU2F2
ZUNvbnRlbnQgT2JqZWN0UmVzaXplZCBibHVyIixvKSx0Lm9uKCJEcmFnRW5kIixvKSx0Lm9uKCJL
ZXlVcCIsZnVuY3Rpb24obil7dmFyIHI9bi5rZXlDb2RlOyhyPj0zMyYmMzY+PXJ8fHI+PTM3JiY0
MD49cnx8NDU9PXJ8fDEzPT1yfHxuLmN0cmxLZXkpJiYobygpLHQubm9kZUNoYW5nZWQoKSksKDQ2
PT1yfHw4PT1yfHxlLm1hYyYmKDkxPT1yfHw5Mz09cikpJiZ0Lm5vZGVDaGFuZ2VkKCksdSYmYS50
eXBpbmcmJih0LmlzRGlydHkoKXx8KHQuaXNOb3REaXJ0eT0hbFswXXx8aSgpPT1sWzBdLmNvbnRl
bnQsdC5pc05vdERpcnR5fHx0LmZpcmUoImNoYW5nZSIse2xldmVsOmxbMF0sbGFzdExldmVsOm51
bGx9KSksdC5maXJlKCJUeXBpbmdVbmRvIiksdT0hMSx0Lm5vZGVDaGFuZ2VkKCkpfSksdC5vbigi
S2V5RG93biIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVybiB0Pj0zMyYmMzY+PXR8
fHQ+PTM3JiY0MD49dHx8NDU9PXQ/dm9pZChhLnR5cGluZyYmbyhlKSk6dm9pZCgoMTY+dHx8dD4y
MCkmJjIyNCE9dCYmOTEhPXQmJiFhLnR5cGluZyYmKGEuYmVmb3JlQ2hhbmdlKCksYS50eXBpbmc9
ITAsYS5hZGQoe30sZSksdT0hMCkpfSksdC5vbigiTW91c2VEb3duIixmdW5jdGlvbihlKXthLnR5
cGluZyYmbyhlKX0pLHQuYWRkU2hvcnRjdXQoImN0cmwreiIsIiIsIlVuZG8iKSx0LmFkZFNob3J0
Y3V0KCJjdHJsK3ksY3RybCtzaGlmdCt6IiwiIiwiUmVkbyIpLHQub24oIkFkZFVuZG8gVW5kbyBS
ZWRvIENsZWFyVW5kb3MgTW91c2VVcCIsZnVuY3Rpb24oZSl7ZS5pc0RlZmF1bHRQcmV2ZW50ZWQo
KXx8dC5ub2RlQ2hhbmdlZCgpfSksYT17ZGF0YTpsLHR5cGluZzohMSxiZWZvcmVDaGFuZ2U6ZnVu
Y3Rpb24oKXtkfHwoYz10LnNlbGVjdGlvbi5nZXRCb29rbWFyaygyLCEwKSl9LGFkZDpmdW5jdGlv
bihlLG4pe3ZhciByLG89dC5zZXR0aW5ncyxhO2lmKGU9ZXx8e30sZS5jb250ZW50PWkoKSxkfHx0
LnJlbW92ZWQpcmV0dXJuIG51bGw7aWYoYT1sW3NdLHQuZmlyZSgiQmVmb3JlQWRkVW5kbyIse2xl
dmVsOmUsbGFzdExldmVsOmEsb3JpZ2luYWxFdmVudDpufSkuaXNEZWZhdWx0UHJldmVudGVkKCkp
cmV0dXJuIG51bGw7aWYoYSYmYS5jb250ZW50PT1lLmNvbnRlbnQpcmV0dXJuIG51bGw7aWYobFtz
XSYmKGxbc10uYmVmb3JlQm9va21hcms9Yyksby5jdXN0b21fdW5kb19yZWRvX2xldmVscyYmbC5s
ZW5ndGg+by5jdXN0b21fdW5kb19yZWRvX2xldmVscyl7Zm9yKHI9MDtyPGwubGVuZ3RoLTE7cisr
KWxbcl09bFtyKzFdO2wubGVuZ3RoLS0scz1sLmxlbmd0aH1lLmJvb2ttYXJrPXQuc2VsZWN0aW9u
LmdldEJvb2ttYXJrKDIsITApLHM8bC5sZW5ndGgtMSYmKGwubGVuZ3RoPXMrMSksbC5wdXNoKGUp
LHM9bC5sZW5ndGgtMTt2YXIgdT17bGV2ZWw6ZSxsYXN0TGV2ZWw6YSxvcmlnaW5hbEV2ZW50Om59
O3JldHVybiB0LmZpcmUoIkFkZFVuZG8iLHUpLHM+MCYmKHQuaXNOb3REaXJ0eT0hMSx0LmZpcmUo
ImNoYW5nZSIsdSkpLGV9LHVuZG86ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gYS50eXBpbmcmJihh
LmFkZCgpLGEudHlwaW5nPSExKSxzPjAmJihlPWxbLS1zXSwwPT09cyYmKHQuaXNOb3REaXJ0eT0h
MCksdC5zZXRDb250ZW50KGUuY29udGVudCx7Zm9ybWF0OiJyYXcifSksdC5zZWxlY3Rpb24ubW92
ZVRvQm9va21hcmsoZS5iZWZvcmVCb29rbWFyayksdC5maXJlKCJ1bmRvIix7bGV2ZWw6ZX0pKSxl
fSxyZWRvOmZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIHM8bC5sZW5ndGgtMSYmKGU9bFsrK3NdLHQu
c2V0Q29udGVudChlLmNvbnRlbnQse2Zvcm1hdDoicmF3In0pLHQuc2VsZWN0aW9uLm1vdmVUb0Jv
b2ttYXJrKGUuYm9va21hcmspLHQuZmlyZSgicmVkbyIse2xldmVsOmV9KSksZX0sY2xlYXI6ZnVu
Y3Rpb24oKXtsPVtdLHM9MCxhLnR5cGluZz0hMSx0LmZpcmUoIkNsZWFyVW5kb3MiKX0saGFzVW5k
bzpmdW5jdGlvbigpe3JldHVybiBzPjB8fGEudHlwaW5nJiZsWzBdJiZpKCkhPWxbMF0uY29udGVu
dH0saGFzUmVkbzpmdW5jdGlvbigpe3JldHVybiBzPGwubGVuZ3RoLTEmJiF0aGlzLnR5cGluZ30s
dHJhbnNhY3Q6ZnVuY3Rpb24oZSl7YS5iZWZvcmVDaGFuZ2UoKTt0cnl7ZCsrLGUoKX1maW5hbGx5
e2QtLX1hLmFkZCgpfX19fSkscihQLFtmLEIsZ10sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4uaWUm
Jm4uaWU8MTE7cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIG8obyl7ZnVuY3Rpb24gZihlKXty
ZXR1cm4gZSYmYS5pc0Jsb2NrKGUpJiYhL14oVER8VEh8Q0FQVElPTnxGT1JNKSQvLnRlc3QoZS5u
b2RlTmFtZSkmJiEvXihmaXhlZHxhYnNvbHV0ZSkvaS50ZXN0KGUuc3R5bGUucG9zaXRpb24pJiYi
dHJ1ZSIhPT1hLmdldENvbnRlbnRFZGl0YWJsZShlKX1mdW5jdGlvbiBwKGUpe3ZhciB0O2EuaXNC
bG9jayhlKSYmKHQ9cy5nZXRSbmcoKSxlLmFwcGVuZENoaWxkKGEuY3JlYXRlKCJzcGFuIixudWxs
LCJceGEwIikpLHMuc2VsZWN0KGUpLGUubGFzdENoaWxkLm91dGVySFRNTD0iIixzLnNldFJuZyh0
KSl9ZnVuY3Rpb24gaChlKXtmb3IodmFyIHQ9ZSxuPVtdLHI7dD10LmZpcnN0Q2hpbGQ7KXtpZihh
LmlzQmxvY2sodCkpcmV0dXJuOzEhPXQubm9kZVR5cGV8fGRbdC5ub2RlTmFtZS50b0xvd2VyQ2Fz
ZSgpXXx8bi5wdXNoKHQpfWZvcihyPW4ubGVuZ3RoO3ItLTspdD1uW3JdLCF0Lmhhc0NoaWxkTm9k
ZXMoKXx8dC5maXJzdENoaWxkPT10Lmxhc3RDaGlsZCYmIiI9PT10LmZpcnN0Q2hpbGQubm9kZVZh
bHVlP2EucmVtb3ZlKHQpOiJBIj09dC5ub2RlTmFtZSYmIiAiPT09KHQuaW5uZXJUZXh0fHx0LnRl
eHRDb250ZW50KSYmYS5yZW1vdmUodCl9ZnVuY3Rpb24gbSh0KXtmdW5jdGlvbiByKGUpe2Zvcig7
ZTspe2lmKDE9PWUubm9kZVR5cGV8fDM9PWUubm9kZVR5cGUmJmUuZGF0YSYmL1tcclxuXHNdLy50
ZXN0KGUuZGF0YSkpcmV0dXJuIGU7ZT1lLm5leHRTaWJsaW5nfX12YXIgaSxvLGwsYz10LHU7aWYo
bi5pZSYmbi5pZTw5JiZCJiZCLmZpcnN0Q2hpbGQmJkIuZmlyc3RDaGlsZD09Qi5sYXN0Q2hpbGQm
JiJCUiI9PUIuZmlyc3RDaGlsZC50YWdOYW1lJiZhLnJlbW92ZShCLmZpcnN0Q2hpbGQpLCJMSSI9
PXQubm9kZU5hbWUpe3ZhciBmPXIodC5maXJzdENoaWxkKTtmJiYvXihVTHxPTCkkLy50ZXN0KGYu
bm9kZU5hbWUpJiZ0Lmluc2VydEJlZm9yZShhLmRvYy5jcmVhdGVUZXh0Tm9kZSgiXHhhMCIpLHQu
Zmlyc3RDaGlsZCl9aWYobD1hLmNyZWF0ZVJuZygpLHQuaGFzQ2hpbGROb2RlcygpKXtmb3IoaT1u
ZXcgZSh0LHQpO289aS5jdXJyZW50KCk7KXtpZigzPT1vLm5vZGVUeXBlKXtsLnNldFN0YXJ0KG8s
MCksbC5zZXRFbmQobywwKTticmVha31pZihkW28ubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pe2wu
c2V0U3RhcnRCZWZvcmUobyksbC5zZXRFbmRCZWZvcmUobyk7YnJlYWt9Yz1vLG89aS5uZXh0KCl9
b3x8KGwuc2V0U3RhcnQoYywwKSxsLnNldEVuZChjLDApKX1lbHNlIkJSIj09dC5ub2RlTmFtZT90
Lm5leHRTaWJsaW5nJiZhLmlzQmxvY2sodC5uZXh0U2libGluZyk/KCghRHx8OT5EKSYmKHU9YS5j
cmVhdGUoImJyIiksdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh1LHQpKSxsLnNldFN0YXJ0QmVm
b3JlKHQpLGwuc2V0RW5kQmVmb3JlKHQpKToobC5zZXRTdGFydEFmdGVyKHQpLGwuc2V0RW5kQWZ0
ZXIodCkpOihsLnNldFN0YXJ0KHQsMCksbC5zZXRFbmQodCwwKSk7cy5zZXRSbmcobCksYS5yZW1v
dmUodSkscy5zY3JvbGxJbnRvVmlldyh0KX1mdW5jdGlvbiBnKGUpe3ZhciB0PWwuZm9yY2VkX3Jv
b3RfYmxvY2s7dCYmdC50b0xvd2VyQ2FzZSgpPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJmEu
c2V0QXR0cmlicyhlLGwuZm9yY2VkX3Jvb3RfYmxvY2tfYXR0cnMpfWZ1bmN0aW9uIHYoZSl7dmFy
IHQ9UixuLGksbztpZihlfHwiVEFCTEUiPT1PPyhuPWEuY3JlYXRlKGV8fEYpLGcobikpOm49Qi5j
bG9uZU5vZGUoITEpLG89bixsLmtlZXBfc3R5bGVzIT09ITEpZG8gaWYoL14oU1BBTnxTVFJPTkd8
QnxFTXxJfEZPTlR8U1RSSUtFfFV8VkFSfENJVEV8REZOfENPREV8TUFSS3xRfFNVUHxTVUJ8U0FN
UCkkLy50ZXN0KHQubm9kZU5hbWUpKXtpZigiX21jZV9jYXJldCI9PXQuaWQpY29udGludWU7aT10
LmNsb25lTm9kZSghMSksYS5zZXRBdHRyaWIoaSwiaWQiLCIiKSxuLmhhc0NoaWxkTm9kZXMoKT8o
aS5hcHBlbmRDaGlsZChuLmZpcnN0Q2hpbGQpLG4uYXBwZW5kQ2hpbGQoaSkpOihvPWksbi5hcHBl
bmRDaGlsZChpKSl9d2hpbGUodD10LnBhcmVudE5vZGUpO3JldHVybiByfHwoby5pbm5lckhUTUw9
JzxiciBkYXRhLW1jZS1ib2d1cz0iMSI+Jyksbn1mdW5jdGlvbiB5KHQpe3ZhciBuLHIsaTtpZigz
PT1SLm5vZGVUeXBlJiYodD9BPjA6QTxSLm5vZGVWYWx1ZS5sZW5ndGgpKXJldHVybiExO2lmKFIu
cGFyZW50Tm9kZT09QiYmeiYmIXQpcmV0dXJuITA7aWYodCYmMT09Ui5ub2RlVHlwZSYmUj09Qi5m
aXJzdENoaWxkKXJldHVybiEwO2lmKCJUQUJMRSI9PT1SLm5vZGVOYW1lfHxSLnByZXZpb3VzU2li
bGluZyYmIlRBQkxFIj09Ui5wcmV2aW91c1NpYmxpbmcubm9kZU5hbWUpcmV0dXJuIHomJiF0fHwh
eiYmdDtmb3Iobj1uZXcgZShSLEIpLDM9PVIubm9kZVR5cGUmJih0JiYwPT09QT9uLnByZXYoKTp0
fHxBIT1SLm5vZGVWYWx1ZS5sZW5ndGh8fG4ubmV4dCgpKTtyPW4uY3VycmVudCgpOyl7aWYoMT09
PXIubm9kZVR5cGUpe2lmKCFyLmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtYm9ndXMiKSYmKGk9ci5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpLGRbaV0mJiJiciIhPT1pKSlyZXR1cm4hMX1lbHNlIGlmKDM9
PT1yLm5vZGVUeXBlJiYhL15bIFx0XHJcbl0qJC8udGVzdChyLm5vZGVWYWx1ZSkpcmV0dXJuITE7
dD9uLnByZXYoKTpuLm5leHQoKX1yZXR1cm4hMH1mdW5jdGlvbiBiKGUsdCl7dmFyIG4scixvLHMs
bCxjLGQ9Rnx8IlAiO2lmKHI9YS5nZXRQYXJlbnQoZSxhLmlzQmxvY2spLGM9aS5nZXRCb2R5KCku
bm9kZU5hbWUudG9Mb3dlckNhc2UoKSwhcnx8IWYocikpe2lmKHI9cnx8VCwhci5oYXNDaGlsZE5v
ZGVzKCkpcmV0dXJuIG49YS5jcmVhdGUoZCksZyhuKSxyLmFwcGVuZENoaWxkKG4pLFMuc2V0U3Rh
cnQobiwwKSxTLnNldEVuZChuLDApLG47Zm9yKHM9ZTtzLnBhcmVudE5vZGUhPXI7KXM9cy5wYXJl
bnROb2RlO2Zvcig7cyYmIWEuaXNCbG9jayhzKTspbz1zLHM9cy5wcmV2aW91c1NpYmxpbmc7aWYo
byYmdS5pc1ZhbGlkQ2hpbGQoYyxkLnRvTG93ZXJDYXNlKCkpKXtmb3Iobj1hLmNyZWF0ZShkKSxn
KG4pLG8ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixvKSxzPW87cyYmIWEuaXNCbG9jayhzKTsp
bD1zLm5leHRTaWJsaW5nLG4uYXBwZW5kQ2hpbGQocykscz1sO1Muc2V0U3RhcnQoZSx0KSxTLnNl
dEVuZChlLHQpfX1yZXR1cm4gZX1mdW5jdGlvbiBDKCl7ZnVuY3Rpb24gZShlKXtmb3IodmFyIHQ9
UFtlPyJmaXJzdENoaWxkIjoibGFzdENoaWxkIl07dCYmMSE9dC5ub2RlVHlwZTspdD10W2U/Im5l
eHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIl07cmV0dXJuIHQ9PT1CfWZ1bmN0aW9uIHQoKXt2
YXIgZT1QLnBhcmVudE5vZGU7cmV0dXJuIkxJIj09ZS5ub2RlTmFtZT9lOlB9dmFyIG49UC5wYXJl
bnROb2RlLm5vZGVOYW1lOy9eKE9MfFVMfExJKSQvLnRlc3QobikmJihGPSJMSSIpLE09Rj92KEYp
OmEuY3JlYXRlKCJCUiIpLGUoITApJiZlKCk/IkxJIj09bj9hLmluc2VydEFmdGVyKE0sdCgpKTph
LnJlcGxhY2UoTSxQKTplKCEwKT8iTEkiPT1uPyhhLmluc2VydEFmdGVyKE0sdCgpKSxNLmFwcGVu
ZENoaWxkKGEuZG9jLmNyZWF0ZVRleHROb2RlKCIgIikpLE0uYXBwZW5kQ2hpbGQoUCkpOlAucGFy
ZW50Tm9kZS5pbnNlcnRCZWZvcmUoTSxQKTplKCk/KGEuaW5zZXJ0QWZ0ZXIoTSx0KCkpLHAoTSkp
OihQPXQoKSxrPVMuY2xvbmVSYW5nZSgpLGsuc2V0U3RhcnRBZnRlcihCKSxrLnNldEVuZEFmdGVy
KFApLEg9ay5leHRyYWN0Q29udGVudHMoKSwiTEkiPT1GJiYiTEkiPT1ILmZpcnN0Q2hpbGQubm9k
ZU5hbWU/KE09SC5maXJzdENoaWxkLGEuaW5zZXJ0QWZ0ZXIoSCxQKSk6KGEuaW5zZXJ0QWZ0ZXIo
SCxQKSxhLmluc2VydEFmdGVyKE0sUCkpKSxhLnJlbW92ZShCKSxtKE0pLGMuYWRkKCl9ZnVuY3Rp
b24geCgpe2Zvcih2YXIgdD1uZXcgZShSLEIpLG47bj10Lm5leHQoKTspaWYoZFtuLm5vZGVOYW1l
LnRvTG93ZXJDYXNlKCldfHxuLmxlbmd0aD4wKXJldHVybiEwfWZ1bmN0aW9uIHcoKXt2YXIgZSx0
LG47UiYmMz09Ui5ub2RlVHlwZSYmQT49Ui5ub2RlVmFsdWUubGVuZ3RoJiYocnx8eCgpfHwoZT1h
LmNyZWF0ZSgiYnIiKSxTLmluc2VydE5vZGUoZSksUy5zZXRTdGFydEFmdGVyKGUpLFMuc2V0RW5k
QWZ0ZXIoZSksdD0hMCkpLGU9YS5jcmVhdGUoImJyIiksUy5pbnNlcnROb2RlKGUpLHImJiJQUkUi
PT1PJiYoIUR8fDg+RCkmJmUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYS5kb2MuY3JlYXRlVGV4
dE5vZGUoIlxyIiksZSksbj1hLmNyZWF0ZSgic3BhbiIse30sIiZuYnNwOyIpLGUucGFyZW50Tm9k
ZS5pbnNlcnRCZWZvcmUobixlKSxzLnNjcm9sbEludG9WaWV3KG4pLGEucmVtb3ZlKG4pLHQ/KFMu
c2V0U3RhcnRCZWZvcmUoZSksUy5zZXRFbmRCZWZvcmUoZSkpOihTLnNldFN0YXJ0QWZ0ZXIoZSks
Uy5zZXRFbmRBZnRlcihlKSkscy5zZXRSbmcoUyksYy5hZGQoKX1mdW5jdGlvbiBfKGUpe2RvIDM9
PT1lLm5vZGVUeXBlJiYoZS5ub2RlVmFsdWU9ZS5ub2RlVmFsdWUucmVwbGFjZSgvXltcclxuXSsv
LCIiKSksZT1lLmZpcnN0Q2hpbGQ7d2hpbGUoZSl9ZnVuY3Rpb24gTihlKXt2YXIgdD1hLmdldFJv
b3QoKSxuLHI7Zm9yKG49ZTtuIT09dCYmImZhbHNlIiE9PWEuZ2V0Q29udGVudEVkaXRhYmxlKG4p
OykidHJ1ZSI9PT1hLmdldENvbnRlbnRFZGl0YWJsZShuKSYmKHI9biksbj1uLnBhcmVudE5vZGU7
cmV0dXJuIG4hPT10P3I6dH1mdW5jdGlvbiBFKGUpe3ZhciB0O3J8fChlLm5vcm1hbGl6ZSgpLHQ9
ZS5sYXN0Q2hpbGQsKCF0fHwvXihsZWZ0fHJpZ2h0KSQvZ2kudGVzdChhLmdldFN0eWxlKHQsImZs
b2F0IiwhMCkpKSYmYS5hZGQoZSwiYnIiKSl9dmFyIFMsayxULFIsQSxCLEQsTCxNLEgsUCxPLEks
Rix6O2lmKFM9cy5nZXRSbmcoITApLCFvLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZighUy5jb2xs
YXBzZWQpcmV0dXJuIHZvaWQgaS5leGVjQ29tbWFuZCgiRGVsZXRlIik7aWYobmV3IHQoYSkubm9y
bWFsaXplKFMpLFI9Uy5zdGFydENvbnRhaW5lcixBPVMuc3RhcnRPZmZzZXQsRj0obC5mb3JjZV9w
X25ld2xpbmVzPyJwIjoiIil8fGwuZm9yY2VkX3Jvb3RfYmxvY2ssRj1GP0YudG9VcHBlckNhc2Uo
KToiIixEPWEuZG9jLmRvY3VtZW50TW9kZSxMPW8uc2hpZnRLZXksMT09Ui5ub2RlVHlwZSYmUi5o
YXNDaGlsZE5vZGVzKCkmJih6PUE+Ui5jaGlsZE5vZGVzLmxlbmd0aC0xLFI9Ui5jaGlsZE5vZGVz
W01hdGgubWluKEEsUi5jaGlsZE5vZGVzLmxlbmd0aC0xKV18fFIsQT16JiYzPT1SLm5vZGVUeXBl
P1Iubm9kZVZhbHVlLmxlbmd0aDowKSxUPU4oUikpe2lmKGMuYmVmb3JlQ2hhbmdlKCksIWEuaXNC
bG9jayhUKSYmVCE9YS5nZXRSb290KCkpcmV0dXJuIHZvaWQoKCFGfHxMKSYmdygpKTtpZigoRiYm
IUx8fCFGJiZMKSYmKFI9YihSLEEpKSxCPWEuZ2V0UGFyZW50KFIsYS5pc0Jsb2NrKSxQPUI/YS5n
ZXRQYXJlbnQoQi5wYXJlbnROb2RlLGEuaXNCbG9jayk6bnVsbCxPPUI/Qi5ub2RlTmFtZS50b1Vw
cGVyQ2FzZSgpOiIiLEk9UD9QLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk6IiIsIkxJIiE9SXx8by5j
dHJsS2V5fHwoQj1QLE89SSksIkxJIj09Tyl7aWYoIUYmJkwpcmV0dXJuIHZvaWQgdygpO2lmKGEu
aXNFbXB0eShCKSlyZXR1cm4gdm9pZCBDKCl9aWYoIlBSRSI9PU8mJmwuYnJfaW5fcHJlIT09ITEp
e2lmKCFMKXJldHVybiB2b2lkIHcoKX1lbHNlIGlmKCFGJiYhTCYmIkxJIiE9T3x8RiYmTClyZXR1
cm4gdm9pZCB3KCk7RiYmQj09PWkuZ2V0Qm9keSgpfHwoRj1GfHwiUCIseSgpPyhNPS9eKEhbMS02
XXxQUkV8RklHVVJFKSQvLnRlc3QoTykmJiJIR1JPVVAiIT1JP3YoRik6digpLGwuZW5kX2NvbnRh
aW5lcl9vbl9lbXB0eV9ibG9jayYmZihQKSYmYS5pc0VtcHR5KEIpP009YS5zcGxpdChQLEIpOmEu
aW5zZXJ0QWZ0ZXIoTSxCKSxtKE0pKTp5KCEwKT8oTT1CLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KHYoKSxCKSxwKE0pLG0oQikpOihrPVMuY2xvbmVSYW5nZSgpLGsuc2V0RW5kQWZ0ZXIoQiksSD1r
LmV4dHJhY3RDb250ZW50cygpLF8oSCksTT1ILmZpcnN0Q2hpbGQsYS5pbnNlcnRBZnRlcihILEIp
LGgoTSksRShCKSxtKE0pKSxhLnNldEF0dHJpYihNLCJpZCIsIiIpLGkuZmlyZSgiTmV3QmxvY2si
LHtuZXdCbG9jazpNfSksYy5hZGQoKSl9fX12YXIgYT1pLmRvbSxzPWkuc2VsZWN0aW9uLGw9aS5z
ZXR0aW5ncyxjPWkudW5kb01hbmFnZXIsdT1pLnNjaGVtYSxkPXUuZ2V0Tm9uRW1wdHlFbGVtZW50
cygpO2kub24oImtleWRvd24iLGZ1bmN0aW9uKGUpezEzPT1lLmtleUNvZGUmJm8oZSkhPT0hMSYm
ZS5wcmV2ZW50RGVmYXVsdCgpfSl9fSkscihPLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9u
KGUpe2Z1bmN0aW9uIHQoKXt2YXIgdD1pLmdldFN0YXJ0KCkscz1lLmdldEJvZHkoKSxsLGMsdSxk
LGYscCxoLG09LTE2Nzc3MjE1LGcsdix5LGIsQztpZihDPW4uZm9yY2VkX3Jvb3RfYmxvY2ssdCYm
MT09PXQubm9kZVR5cGUmJkMpe2Zvcig7dCYmdCE9czspe2lmKGFbdC5ub2RlTmFtZV0pcmV0dXJu
O3Q9dC5wYXJlbnROb2RlfWlmKGw9aS5nZXRSbmcoKSxsLnNldFN0YXJ0KXtjPWwuc3RhcnRDb250
YWluZXIsdT1sLnN0YXJ0T2Zmc2V0LGQ9bC5lbmRDb250YWluZXIsZj1sLmVuZE9mZnNldDt0cnl7
dj1lLmdldERvYygpLmFjdGl2ZUVsZW1lbnQ9PT1zfWNhdGNoKHgpe319ZWxzZSBsLml0ZW0mJih0
PWwuaXRlbSgwKSxsPWUuZ2V0RG9jKCkuYm9keS5jcmVhdGVUZXh0UmFuZ2UoKSxsLm1vdmVUb0Vs
ZW1lbnRUZXh0KHQpKSx2PWwucGFyZW50RWxlbWVudCgpLm93bmVyRG9jdW1lbnQ9PT1lLmdldERv
YygpLHk9bC5kdXBsaWNhdGUoKSx5LmNvbGxhcHNlKCEwKSx1PS0xKnkubW92ZSgiY2hhcmFjdGVy
IixtKSx5LmNvbGxhcHNlZHx8KHk9bC5kdXBsaWNhdGUoKSx5LmNvbGxhcHNlKCExKSxmPS0xKnku
bW92ZSgiY2hhcmFjdGVyIixtKS11KTtmb3IodD1zLmZpcnN0Q2hpbGQsYj1zLm5vZGVOYW1lLnRv
TG93ZXJDYXNlKCk7dDspaWYoKDM9PT10Lm5vZGVUeXBlfHwxPT10Lm5vZGVUeXBlJiYhYVt0Lm5v
ZGVOYW1lXSkmJm8uaXNWYWxpZENoaWxkKGIsQy50b0xvd2VyQ2FzZSgpKSl7aWYoMz09PXQubm9k
ZVR5cGUmJjA9PT10Lm5vZGVWYWx1ZS5sZW5ndGgpe2g9dCx0PXQubmV4dFNpYmxpbmcsci5yZW1v
dmUoaCk7Y29udGludWV9cHx8KHA9ci5jcmVhdGUoQyxlLnNldHRpbmdzLmZvcmNlZF9yb290X2Js
b2NrX2F0dHJzKSx0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHAsdCksZz0hMCksaD10LHQ9dC5u
ZXh0U2libGluZyxwLmFwcGVuZENoaWxkKGgpfWVsc2UgcD1udWxsLHQ9dC5uZXh0U2libGluZztp
ZihnJiZ2KXtpZihsLnNldFN0YXJ0KWwuc2V0U3RhcnQoYyx1KSxsLnNldEVuZChkLGYpLGkuc2V0
Um5nKGwpO2Vsc2UgdHJ5e2w9ZS5nZXREb2MoKS5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpLGwubW92
ZVRvRWxlbWVudFRleHQocyksbC5jb2xsYXBzZSghMCksbC5tb3ZlU3RhcnQoImNoYXJhY3RlciIs
dSksZj4wJiZsLm1vdmVFbmQoImNoYXJhY3RlciIsZiksbC5zZWxlY3QoKX1jYXRjaCh4KXt9ZS5u
b2RlQ2hhbmdlZCgpfX19dmFyIG49ZS5zZXR0aW5ncyxyPWUuZG9tLGk9ZS5zZWxlY3Rpb24sbz1l
LnNjaGVtYSxhPW8uZ2V0QmxvY2tFbGVtZW50cygpO24uZm9yY2VkX3Jvb3RfYmxvY2smJmUub24o
Ik5vZGVDaGFuZ2UiLHQpfX0pLHIoSSxbUyxnLHBdLGZ1bmN0aW9uKGUsbixyKXt2YXIgaT1yLmVh
Y2gsbz1yLmV4dGVuZCxhPXIubWFwLHM9ci5pbkFycmF5LGw9ci5leHBsb2RlLGM9bi5nZWNrbyx1
PW4uaWUsZD0hMCxmPSExO3JldHVybiBmdW5jdGlvbihyKXtmdW5jdGlvbiBwKGUsdCxuKXt2YXIg
cjtyZXR1cm4gZT1lLnRvTG93ZXJDYXNlKCksKHI9Ti5leGVjW2VdKT8ocihlLHQsbiksZCk6Zn1m
dW5jdGlvbiBoKGUpe3ZhciB0O3JldHVybiBlPWUudG9Mb3dlckNhc2UoKSwodD1OLnN0YXRlW2Vd
KT90KGUpOi0xfWZ1bmN0aW9uIG0oZSl7dmFyIHQ7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLCh0
PU4udmFsdWVbZV0pP3QoZSk6Zn1mdW5jdGlvbiBnKGUsdCl7dD10fHwiZXhlYyIsaShlLGZ1bmN0
aW9uKGUsbil7aShuLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiwiKSxmdW5jdGlvbihuKXtOW3RdW25d
PWV9KX0pfWZ1bmN0aW9uIHYoZSxuLGkpe3JldHVybiBuPT09dCYmKG49ZiksaT09PXQmJihpPW51
bGwpLHIuZ2V0RG9jKCkuZXhlY0NvbW1hbmQoZSxuLGkpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIFMu
bWF0Y2goZSl9ZnVuY3Rpb24gYihlLG4pe1MudG9nZ2xlKGUsbj97dmFsdWU6bn06dCksci5ub2Rl
Q2hhbmdlZCgpfWZ1bmN0aW9uIEMoZSl7az1fLmdldEJvb2ttYXJrKGUpfWZ1bmN0aW9uIHgoKXtf
Lm1vdmVUb0Jvb2ttYXJrKGspfXZhciB3PXIuZG9tLF89ci5zZWxlY3Rpb24sTj17c3RhdGU6e30s
ZXhlYzp7fSx2YWx1ZTp7fX0sRT1yLnNldHRpbmdzLFM9ci5mb3JtYXR0ZXIsaztvKHRoaXMse2V4
ZWNDb21tYW5kOnAscXVlcnlDb21tYW5kU3RhdGU6aCxxdWVyeUNvbW1hbmRWYWx1ZTptLGFkZENv
bW1hbmRzOmd9KSxnKHsibWNlUmVzZXREZXNpZ25Nb2RlLG1jZUJlZ2luVW5kb0xldmVsIjpmdW5j
dGlvbigpe30sIm1jZUVuZFVuZG9MZXZlbCxtY2VBZGRVbmRvTGV2ZWwiOmZ1bmN0aW9uKCl7ci51
bmRvTWFuYWdlci5hZGQoKX0sIkN1dCxDb3B5LFBhc3RlIjpmdW5jdGlvbihlKXt2YXIgdD1yLmdl
dERvYygpLGk7dHJ5e3YoZSl9Y2F0Y2gobyl7aT1kfWlmKGl8fCF0LnF1ZXJ5Q29tbWFuZFN1cHBv
cnRlZChlKSl7dmFyIGE9ci50cmFuc2xhdGUoIllvdXIgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQg
ZGlyZWN0IGFjY2VzcyB0byB0aGUgY2xpcGJvYXJkLiBQbGVhc2UgdXNlIHRoZSBDdHJsK1gvQy9W
IGtleWJvYXJkIHNob3J0Y3V0cyBpbnN0ZWFkLiIpO24ubWFjJiYoYT1hLnJlcGxhY2UoL0N0cmxc
Ky9nLCJcdTIzMTgrIikpLHIud2luZG93TWFuYWdlci5hbGVydChhKX19LHVubGluazpmdW5jdGlv
bigpe2lmKF8uaXNDb2xsYXBzZWQoKSl7dmFyIGU9Xy5nZXROb2RlKCk7cmV0dXJuIHZvaWQoIkEi
PT1lLnRhZ05hbWUmJnIuZG9tLnJlbW92ZShlLCEwKSl9Uy5yZW1vdmUoImxpbmsiKX0sIkp1c3Rp
ZnlMZWZ0LEp1c3RpZnlDZW50ZXIsSnVzdGlmeVJpZ2h0LEp1c3RpZnlGdWxsIjpmdW5jdGlvbihl
KXt2YXIgdD1lLnN1YnN0cmluZyg3KTsiZnVsbCI9PXQmJih0PSJqdXN0aWZ5IiksaSgibGVmdCxj
ZW50ZXIscmlnaHQsanVzdGlmeSIuc3BsaXQoIiwiKSxmdW5jdGlvbihlKXt0IT1lJiZTLnJlbW92
ZSgiYWxpZ24iK2UpfSksYigiYWxpZ24iK3QpLHAoIm1jZVJlcGFpbnQiKX0sIkluc2VydFVub3Jk
ZXJlZExpc3QsSW5zZXJ0T3JkZXJlZExpc3QiOmZ1bmN0aW9uKGUpe3ZhciB0LG47dihlKSx0PXcu
Z2V0UGFyZW50KF8uZ2V0Tm9kZSgpLCJvbCx1bCIpLHQmJihuPXQucGFyZW50Tm9kZSwvXihIWzEt
Nl18UHxBRERSRVNTfFBSRSkkLy50ZXN0KG4ubm9kZU5hbWUpJiYoQygpLHcuc3BsaXQobix0KSx4
KCkpKX0sIkJvbGQsSXRhbGljLFVuZGVybGluZSxTdHJpa2V0aHJvdWdoLFN1cGVyc2NyaXB0LFN1
YnNjcmlwdCI6ZnVuY3Rpb24oZSl7YihlKX0sIkZvcmVDb2xvcixIaWxpdGVDb2xvcixGb250TmFt
ZSI6ZnVuY3Rpb24oZSx0LG4pe2IoZSxuKX0sRm9udFNpemU6ZnVuY3Rpb24oZSx0LG4pe3ZhciBy
LGk7bj49MSYmNz49biYmKGk9bChFLmZvbnRfc2l6ZV9zdHlsZV92YWx1ZXMpLHI9bChFLmZvbnRf
c2l6ZV9jbGFzc2VzKSxuPXI/cltuLTFdfHxuOmlbbi0xXXx8biksYihlLG4pfSxSZW1vdmVGb3Jt
YXQ6ZnVuY3Rpb24oZSl7Uy5yZW1vdmUoZSl9LG1jZUJsb2NrUXVvdGU6ZnVuY3Rpb24oKXtiKCJi
bG9ja3F1b3RlIil9LEZvcm1hdEJsb2NrOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gYihufHwicCIp
fSxtY2VDbGVhbnVwOmZ1bmN0aW9uKCl7dmFyIGU9Xy5nZXRCb29rbWFyaygpO3Iuc2V0Q29udGVu
dChyLmdldENvbnRlbnQoe2NsZWFudXA6ZH0pLHtjbGVhbnVwOmR9KSxfLm1vdmVUb0Jvb2ttYXJr
KGUpfSxtY2VSZW1vdmVOb2RlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1ufHxfLmdldE5vZGUoKTtp
IT1yLmdldEJvZHkoKSYmKEMoKSxyLmRvbS5yZW1vdmUoaSxkKSx4KCkpfSxtY2VTZWxlY3ROb2Rl
RGVwdGg6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPTA7dy5nZXRQYXJlbnQoXy5nZXROb2RlKCksZnVu
Y3Rpb24oZSl7cmV0dXJuIDE9PWUubm9kZVR5cGUmJmkrKz09bj8oXy5zZWxlY3QoZSksZik6dm9p
ZCAwfSxyLmdldEJvZHkoKSl9LG1jZVNlbGVjdE5vZGU6ZnVuY3Rpb24oZSx0LG4pe18uc2VsZWN0
KG4pfSxtY2VJbnNlcnRDb250ZW50OmZ1bmN0aW9uKHQsbixpKXtmdW5jdGlvbiBvKGUpe2Z1bmN0
aW9uIHQoZSl7cmV0dXJuIHJbZV0mJjM9PXJbZV0ubm9kZVR5cGV9dmFyIG4scixpO3JldHVybiBu
PV8uZ2V0Um5nKCEwKSxyPW4uc3RhcnRDb250YWluZXIsaT1uLnN0YXJ0T2Zmc2V0LDM9PXIubm9k
ZVR5cGUmJihpPjA/ZT1lLnJlcGxhY2UoL14mbmJzcDsvLCIgIik6dCgicHJldmlvdXNTaWJsaW5n
Iil8fChlPWUucmVwbGFjZSgvXiAvLCImbmJzcDsiKSksaTxyLmxlbmd0aD9lPWUucmVwbGFjZSgv
Jm5ic3A7KDxicj58KSQvLCIgIik6dCgibmV4dFNpYmxpbmciKXx8KGU9ZS5yZXBsYWNlKC8oJm5i
c3A7fCApKDxicj58KSQvLCImbmJzcDsiKSkpLGV9dmFyIGEscyxsLGMsZCxmLHAsaCxtLGcsdjsv
XiB8ICQvLnRlc3QoaSkmJihpPW8oaSkpLGE9ci5wYXJzZXIscz1uZXcgZSh7fSxyLnNjaGVtYSks
dj0nPHNwYW4gaWQ9Im1jZV9tYXJrZXIiIGRhdGEtbWNlLXR5cGU9ImJvb2ttYXJrIj4mI3hGRUZG
OyYjMjAwQjs8L3NwYW4+JyxmPXtjb250ZW50OmksZm9ybWF0OiJodG1sIixzZWxlY3Rpb246ITB9
LHIuZmlyZSgiQmVmb3JlU2V0Q29udGVudCIsZiksaT1mLmNvbnRlbnQsLTE9PWkuaW5kZXhPZigi
eyRjYXJldH0iKSYmKGkrPSJ7JGNhcmV0fSIpLGk9aS5yZXBsYWNlKC9ce1wkY2FyZXRcfS8sdiks
aD1fLmdldFJuZygpO3ZhciB5PWguc3RhcnRDb250YWluZXJ8fChoLnBhcmVudEVsZW1lbnQ/aC5w
YXJlbnRFbGVtZW50KCk6bnVsbCksYj1yLmdldEJvZHkoKTt5PT09YiYmXy5pc0NvbGxhcHNlZCgp
JiZ3LmlzQmxvY2soYi5maXJzdENoaWxkKSYmdy5pc0VtcHR5KGIuZmlyc3RDaGlsZCkmJihoPXcu
Y3JlYXRlUm5nKCksaC5zZXRTdGFydChiLmZpcnN0Q2hpbGQsMCksaC5zZXRFbmQoYi5maXJzdENo
aWxkLDApLF8uc2V0Um5nKGgpKSxfLmlzQ29sbGFwc2VkKCl8fHIuZ2V0RG9jKCkuZXhlY0NvbW1h
bmQoIkRlbGV0ZSIsITEsbnVsbCksbD1fLmdldE5vZGUoKTt2YXIgQz17Y29udGV4dDpsLm5vZGVO
YW1lLnRvTG93ZXJDYXNlKCl9O2lmKGQ9YS5wYXJzZShpLEMpLG09ZC5sYXN0Q2hpbGQsIm1jZV9t
YXJrZXIiPT1tLmF0dHIoImlkIikpZm9yKHA9bSxtPW0ucHJldjttO209bS53YWxrKCEwKSlpZigz
PT1tLnR5cGV8fCF3LmlzQmxvY2sobS5uYW1lKSl7bS5wYXJlbnQuaW5zZXJ0KHAsbSwiYnIiPT09
bS5uYW1lKTticmVha31pZihDLmludmFsaWQpe2ZvcihfLnNldENvbnRlbnQodiksbD1fLmdldE5v
ZGUoKSxjPXIuZ2V0Qm9keSgpLDk9PWwubm9kZVR5cGU/bD1tPWM6bT1sO20hPT1jOylsPW0sbT1t
LnBhcmVudE5vZGU7aT1sPT1jP2MuaW5uZXJIVE1MOncuZ2V0T3V0ZXJIVE1MKGwpLGk9cy5zZXJp
YWxpemUoYS5wYXJzZShpLnJlcGxhY2UoLzxzcGFuIChpZD0ibWNlX21hcmtlciJ8aWQ9bWNlX21h
cmtlcikuKz88XC9zcGFuPi9pLGZ1bmN0aW9uKCl7cmV0dXJuIHMuc2VyaWFsaXplKGQpfSkpKSxs
PT1jP3cuc2V0SFRNTChjLGkpOncuc2V0T3V0ZXJIVE1MKGwsaSl9ZWxzZSBpPXMuc2VyaWFsaXpl
KGQpLG09bC5maXJzdENoaWxkLGc9bC5sYXN0Q2hpbGQsIW18fG09PT1nJiYiQlIiPT09bS5ub2Rl
TmFtZT93LnNldEhUTUwobCxpKTpfLnNldENvbnRlbnQoaSk7cD13LmdldCgibWNlX21hcmtlciIp
LF8uc2Nyb2xsSW50b1ZpZXcocCksaD13LmNyZWF0ZVJuZygpLG09cC5wcmV2aW91c1NpYmxpbmcs
bSYmMz09bS5ub2RlVHlwZT8oaC5zZXRTdGFydChtLG0ubm9kZVZhbHVlLmxlbmd0aCksdXx8KGc9
cC5uZXh0U2libGluZyxnJiYzPT1nLm5vZGVUeXBlJiYobS5hcHBlbmREYXRhKGcuZGF0YSksZy5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpKSkpOihoLnNldFN0YXJ0QmVmb3JlKHApLGguc2V0RW5k
QmVmb3JlKHApKSx3LnJlbW92ZShwKSxfLnNldFJuZyhoKSxyLmZpcmUoIlNldENvbnRlbnQiLGYp
LHIuYWRkVmlzdWFsKCl9LG1jZUluc2VydFJhd0hUTUw6ZnVuY3Rpb24oZSx0LG4pe18uc2V0Q29u
dGVudCgidGlueV9tY2VfbWFya2VyIiksci5zZXRDb250ZW50KHIuZ2V0Q29udGVudCgpLnJlcGxh
Y2UoL3RpbnlfbWNlX21hcmtlci9nLGZ1bmN0aW9uKCl7cmV0dXJuIG59KSl9LG1jZVRvZ2dsZUZv
cm1hdDpmdW5jdGlvbihlLHQsbil7YihuKX0sbWNlU2V0Q29udGVudDpmdW5jdGlvbihlLHQsbil7
ci5zZXRDb250ZW50KG4pfSwiSW5kZW50LE91dGRlbnQiOmZ1bmN0aW9uKGUpe3ZhciB0LG4sbzt0
PUUuaW5kZW50YXRpb24sbj0vW2EteiVdKyQvaS5leGVjKHQpLHQ9cGFyc2VJbnQodCwxMCksaCgi
SW5zZXJ0VW5vcmRlcmVkTGlzdCIpfHxoKCJJbnNlcnRPcmRlcmVkTGlzdCIpP3YoZSk6KEUuZm9y
Y2VkX3Jvb3RfYmxvY2t8fHcuZ2V0UGFyZW50KF8uZ2V0Tm9kZSgpLHcuaXNCbG9jayl8fFMuYXBw
bHkoImRpdiIpLGkoXy5nZXRTZWxlY3RlZEJsb2NrcygpLGZ1bmN0aW9uKGkpe2lmKCJMSSIhPWku
bm9kZU5hbWUpe3ZhciBhPXIuZ2V0UGFyYW0oImluZGVudF91c2VfbWFyZ2luIiwhMSk/Im1hcmdp
biI6InBhZGRpbmciO2ErPSJydGwiPT13LmdldFN0eWxlKGksImRpcmVjdGlvbiIsITApPyJSaWdo
dCI6IkxlZnQiLCJvdXRkZW50Ij09ZT8obz1NYXRoLm1heCgwLHBhcnNlSW50KGkuc3R5bGVbYV18
fDAsMTApLXQpLHcuc2V0U3R5bGUoaSxhLG8/bytuOiIiKSk6KG89cGFyc2VJbnQoaS5zdHlsZVth
XXx8MCwxMCkrdCtuLHcuc2V0U3R5bGUoaSxhLG8pKX19KSl9LG1jZVJlcGFpbnQ6ZnVuY3Rpb24o
KXtpZihjKXRyeXtDKGQpLF8uZ2V0U2VsKCkmJl8uZ2V0U2VsKCkuc2VsZWN0QWxsQ2hpbGRyZW4o
ci5nZXRCb2R5KCkpLF8uY29sbGFwc2UoZCkseCgpfWNhdGNoKGUpe319LEluc2VydEhvcml6b250
YWxSdWxlOmZ1bmN0aW9uKCl7ci5leGVjQ29tbWFuZCgibWNlSW5zZXJ0Q29udGVudCIsITEsIjxo
ciAvPiIpfSxtY2VUb2dnbGVWaXN1YWxBaWQ6ZnVuY3Rpb24oKXtyLmhhc1Zpc3VhbD0hci5oYXNW
aXN1YWwsci5hZGRWaXN1YWwoKX0sbWNlUmVwbGFjZUNvbnRlbnQ6ZnVuY3Rpb24oZSx0LG4pe3Iu
ZXhlY0NvbW1hbmQoIm1jZUluc2VydENvbnRlbnQiLCExLG4ucmVwbGFjZSgvXHtcJHNlbGVjdGlv
blx9L2csXy5nZXRDb250ZW50KHtmb3JtYXQ6InRleHQifSkpKX0sbWNlSW5zZXJ0TGluazpmdW5j
dGlvbihlLHQsbil7dmFyIHI7InN0cmluZyI9PXR5cGVvZiBuJiYobj17aHJlZjpufSkscj13Lmdl
dFBhcmVudChfLmdldE5vZGUoKSwiYSIpLG4uaHJlZj1uLmhyZWYucmVwbGFjZSgiICIsIiUyMCIp
LHImJm4uaHJlZnx8Uy5yZW1vdmUoImxpbmsiKSxuLmhyZWYmJlMuYXBwbHkoImxpbmsiLG4scil9
LHNlbGVjdEFsbDpmdW5jdGlvbigpe3ZhciBlPXcuZ2V0Um9vdCgpLHQ7Xy5nZXRSbmcoKS5zZXRT
dGFydD8odD13LmNyZWF0ZVJuZygpLHQuc2V0U3RhcnQoZSwwKSx0LnNldEVuZChlLGUuY2hpbGRO
b2Rlcy5sZW5ndGgpLF8uc2V0Um5nKHQpKToodD1fLmdldFJuZygpLHQuaXRlbXx8KHQubW92ZVRv
RWxlbWVudFRleHQoZSksdC5zZWxlY3QoKSkpfSwiZGVsZXRlIjpmdW5jdGlvbigpe3YoIkRlbGV0
ZSIpO3ZhciBlPXIuZ2V0Qm9keSgpO3cuaXNFbXB0eShlKSYmKHIuc2V0Q29udGVudCgiIiksZS5m
aXJzdENoaWxkJiZ3LmlzQmxvY2soZS5maXJzdENoaWxkKT9yLnNlbGVjdGlvbi5zZXRDdXJzb3JM
b2NhdGlvbihlLmZpcnN0Q2hpbGQsMCk6ci5zZWxlY3Rpb24uc2V0Q3Vyc29yTG9jYXRpb24oZSww
KSl9LG1jZU5ld0RvY3VtZW50OmZ1bmN0aW9uKCl7ci5zZXRDb250ZW50KCIiKX19KSxnKHsiSnVz
dGlmeUxlZnQsSnVzdGlmeUNlbnRlcixKdXN0aWZ5UmlnaHQsSnVzdGlmeUZ1bGwiOmZ1bmN0aW9u
KGUpe3ZhciB0PSJhbGlnbiIrZS5zdWJzdHJpbmcoNyksbj1fLmlzQ29sbGFwc2VkKCk/W3cuZ2V0
UGFyZW50KF8uZ2V0Tm9kZSgpLHcuaXNCbG9jayldOl8uZ2V0U2VsZWN0ZWRCbG9ja3MoKSxyPWEo
bixmdW5jdGlvbihlKXtyZXR1cm4hIVMubWF0Y2hOb2RlKGUsdCl9KTtyZXR1cm4tMSE9PXMocixk
KX0sIkJvbGQsSXRhbGljLFVuZGVybGluZSxTdHJpa2V0aHJvdWdoLFN1cGVyc2NyaXB0LFN1YnNj
cmlwdCI6ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSl9LG1jZUJsb2NrUXVvdGU6ZnVuY3Rpb24oKXty
ZXR1cm4geSgiYmxvY2txdW90ZSIpfSxPdXRkZW50OmZ1bmN0aW9uKCl7dmFyIGU7aWYoRS5pbmxp
bmVfc3R5bGVzKXtpZigoZT13LmdldFBhcmVudChfLmdldFN0YXJ0KCksdy5pc0Jsb2NrKSkmJnBh
cnNlSW50KGUuc3R5bGUucGFkZGluZ0xlZnQsMTApPjApcmV0dXJuIGQ7aWYoKGU9dy5nZXRQYXJl
bnQoXy5nZXRFbmQoKSx3LmlzQmxvY2spKSYmcGFyc2VJbnQoZS5zdHlsZS5wYWRkaW5nTGVmdCwx
MCk+MClyZXR1cm4gZAorfXJldHVybiBoKCJJbnNlcnRVbm9yZGVyZWRMaXN0Iil8fGgoIkluc2Vy
dE9yZGVyZWRMaXN0Iil8fCFFLmlubGluZV9zdHlsZXMmJiEhdy5nZXRQYXJlbnQoXy5nZXROb2Rl
KCksIkJMT0NLUVVPVEUiKX0sIkluc2VydFVub3JkZXJlZExpc3QsSW5zZXJ0T3JkZXJlZExpc3Qi
OmZ1bmN0aW9uKGUpe3ZhciB0PXcuZ2V0UGFyZW50KF8uZ2V0Tm9kZSgpLCJ1bCxvbCIpO3JldHVy
biB0JiYoImluc2VydHVub3JkZXJlZGxpc3QiPT09ZSYmIlVMIj09PXQudGFnTmFtZXx8Imluc2Vy
dG9yZGVyZWRsaXN0Ij09PWUmJiJPTCI9PT10LnRhZ05hbWUpfX0sInN0YXRlIiksZyh7IkZvbnRT
aXplLEZvbnROYW1lIjpmdW5jdGlvbihlKXt2YXIgdD0wLG47cmV0dXJuKG49dy5nZXRQYXJlbnQo
Xy5nZXROb2RlKCksInNwYW4iKSkmJih0PSJmb250c2l6ZSI9PWU/bi5zdHlsZS5mb250U2l6ZTpu
LnN0eWxlLmZvbnRGYW1pbHkucmVwbGFjZSgvLCAvZywiLCIpLnJlcGxhY2UoL1tcJ1wiXS9nLCIi
KS50b0xvd2VyQ2FzZSgpKSx0fX0sInZhbHVlIiksZyh7VW5kbzpmdW5jdGlvbigpe3IudW5kb01h
bmFnZXIudW5kbygpfSxSZWRvOmZ1bmN0aW9uKCl7ci51bmRvTWFuYWdlci5yZWRvKCl9fSl9fSks
cihGLFtwXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsaSl7dmFyIG89dGhpcyxhLHM7aWYoZT1y
KGUpLGk9by5zZXR0aW5ncz1pfHx7fSwvXihbXHdcLV0rKTooW15cL117Mn0pL2kudGVzdChlKXx8
L15ccyojLy50ZXN0KGUpKXJldHVybiB2b2lkKG8uc291cmNlPWUpO3ZhciBsPTA9PT1lLmluZGV4
T2YoIi8vIik7MCE9PWUuaW5kZXhPZigiLyIpfHxsfHwoZT0oaS5iYXNlX3VyaT9pLmJhc2VfdXJp
LnByb3RvY29sfHwiaHR0cCI6Imh0dHAiKSsiOi8vbWNlX2hvc3QiK2UpLC9eW1x3XC1dKjo/XC9c
Ly8udGVzdChlKXx8KHM9aS5iYXNlX3VyaT9pLmJhc2VfdXJpLnBhdGg6bmV3IHQobG9jYXRpb24u
aHJlZikuZGlyZWN0b3J5LGU9IiI9PT1pLmJhc2VfdXJpLnByb3RvY29sPyIvL21jZV9ob3N0Iitv
LnRvQWJzUGF0aChzLGUpOihpLmJhc2VfdXJpJiZpLmJhc2VfdXJpLnByb3RvY29sfHwiaHR0cCIp
KyI6Ly9tY2VfaG9zdCIrby50b0Fic1BhdGgocyxlKSksZT1lLnJlcGxhY2UoL0BAL2csIihtY2Vf
YXQpIiksZT0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKFteOlwvPyMuXSspOik/KD86XC9cLyk/
KCg/OigoW146QFwvXSopOj8oW146QFwvXSopKT9AKT8oW146XC8/I10qKSg/OjooXGQqKSk/KSgo
KFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNc
L10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLy5leGVjKGUpLG4oWyJzb3VyY2UiLCJwcm90
b2NvbCIsImF1dGhvcml0eSIsInVzZXJJbmZvIiwidXNlciIsInBhc3N3b3JkIiwiaG9zdCIsInBv
cnQiLCJyZWxhdGl2ZSIsInBhdGgiLCJkaXJlY3RvcnkiLCJmaWxlIiwicXVlcnkiLCJhbmNob3Ii
XSxmdW5jdGlvbih0LG4pe3ZhciByPWVbbl07ciYmKHI9ci5yZXBsYWNlKC9cKG1jZV9hdFwpL2cs
IkBAIikpLG9bdF09cn0pLGE9aS5iYXNlX3VyaSxhJiYoby5wcm90b2NvbHx8KG8ucHJvdG9jb2w9
YS5wcm90b2NvbCksby51c2VySW5mb3x8KG8udXNlckluZm89YS51c2VySW5mbyksby5wb3J0fHwi
bWNlX2hvc3QiIT09by5ob3N0fHwoby5wb3J0PWEucG9ydCksby5ob3N0JiYibWNlX2hvc3QiIT09
by5ob3N0fHwoby5ob3N0PWEuaG9zdCksby5zb3VyY2U9IiIpLGwmJihvLnByb3RvY29sPSIiKX12
YXIgbj1lLmVhY2gscj1lLnRyaW0saT17ZnRwOjIxLGh0dHA6ODAsaHR0cHM6NDQzLG1haWx0bzoy
NX07cmV0dXJuIHQucHJvdG90eXBlPXtzZXRQYXRoOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7ZT0v
XiguKj8pXC8/KFx3Kyk/JC8uZXhlYyhlKSx0LnBhdGg9ZVswXSx0LmRpcmVjdG9yeT1lWzFdLHQu
ZmlsZT1lWzJdLHQuc291cmNlPSIiLHQuZ2V0VVJJKCl9LHRvUmVsYXRpdmU6ZnVuY3Rpb24oZSl7
dmFyIG49dGhpcyxyO2lmKCIuLyI9PT1lKXJldHVybiBlO2lmKGU9bmV3IHQoZSx7YmFzZV91cmk6
bn0pLCJtY2VfaG9zdCIhPWUuaG9zdCYmbi5ob3N0IT1lLmhvc3QmJmUuaG9zdHx8bi5wb3J0IT1l
LnBvcnR8fG4ucHJvdG9jb2whPWUucHJvdG9jb2wmJiIiIT09ZS5wcm90b2NvbClyZXR1cm4gZS5n
ZXRVUkkoKTt2YXIgaT1uLmdldFVSSSgpLG89ZS5nZXRVUkkoKTtyZXR1cm4gaT09b3x8Ii8iPT1p
LmNoYXJBdChpLmxlbmd0aC0xKSYmaS5zdWJzdHIoMCxpLmxlbmd0aC0xKT09bz9pOihyPW4udG9S
ZWxQYXRoKG4ucGF0aCxlLnBhdGgpLGUucXVlcnkmJihyKz0iPyIrZS5xdWVyeSksZS5hbmNob3Im
JihyKz0iIyIrZS5hbmNob3IpLHIpfSx0b0Fic29sdXRlOmZ1bmN0aW9uKGUsbil7cmV0dXJuIGU9
bmV3IHQoZSx7YmFzZV91cmk6dGhpc30pLGUuZ2V0VVJJKG4mJnRoaXMuaXNTYW1lT3JpZ2luKGUp
KX0saXNTYW1lT3JpZ2luOmZ1bmN0aW9uKGUpe2lmKHRoaXMuaG9zdD09ZS5ob3N0JiZ0aGlzLnBy
b3RvY29sPT1lLnByb3RvY29sKXtpZih0aGlzLnBvcnQ9PWUucG9ydClyZXR1cm4hMDt2YXIgdD1p
W3RoaXMucHJvdG9jb2xdO2lmKHQmJih0aGlzLnBvcnR8fHQpPT0oZS5wb3J0fHx0KSlyZXR1cm4h
MH1yZXR1cm4hMX0sdG9SZWxQYXRoOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wLGk9IiIsbyxhO2lm
KGU9ZS5zdWJzdHJpbmcoMCxlLmxhc3RJbmRleE9mKCIvIikpLGU9ZS5zcGxpdCgiLyIpLG49dC5z
cGxpdCgiLyIpLGUubGVuZ3RoPj1uLmxlbmd0aClmb3Iobz0wLGE9ZS5sZW5ndGg7YT5vO28rKylp
ZihvPj1uLmxlbmd0aHx8ZVtvXSE9bltvXSl7cj1vKzE7YnJlYWt9aWYoZS5sZW5ndGg8bi5sZW5n
dGgpZm9yKG89MCxhPW4ubGVuZ3RoO2E+bztvKyspaWYobz49ZS5sZW5ndGh8fGVbb10hPW5bb10p
e3I9bysxO2JyZWFrfWlmKDE9PT1yKXJldHVybiB0O2ZvcihvPTAsYT1lLmxlbmd0aC0oci0xKTth
Pm87bysrKWkrPSIuLi8iO2ZvcihvPXItMSxhPW4ubGVuZ3RoO2E+bztvKyspaSs9byE9ci0xPyIv
IituW29dOm5bb107cmV0dXJuIGl9LHRvQWJzUGF0aDpmdW5jdGlvbihlLHQpe3ZhciByLGk9MCxv
PVtdLGEscztmb3IoYT0vXC8kLy50ZXN0KHQpPyIvIjoiIixlPWUuc3BsaXQoIi8iKSx0PXQuc3Bs
aXQoIi8iKSxuKGUsZnVuY3Rpb24oZSl7ZSYmby5wdXNoKGUpfSksZT1vLHI9dC5sZW5ndGgtMSxv
PVtdO3I+PTA7ci0tKTAhPT10W3JdLmxlbmd0aCYmIi4iIT09dFtyXSYmKCIuLiIhPT10W3JdP2k+
MD9pLS06by5wdXNoKHRbcl0pOmkrKyk7cmV0dXJuIHI9ZS5sZW5ndGgtaSxzPTA+PXI/by5yZXZl
cnNlKCkuam9pbigiLyIpOmUuc2xpY2UoMCxyKS5qb2luKCIvIikrIi8iK28ucmV2ZXJzZSgpLmpv
aW4oIi8iKSwwIT09cy5pbmRleE9mKCIvIikmJihzPSIvIitzKSxhJiZzLmxhc3RJbmRleE9mKCIv
IikhPT1zLmxlbmd0aC0xJiYocys9YSksc30sZ2V0VVJJOmZ1bmN0aW9uKGUpe3ZhciB0LG49dGhp
cztyZXR1cm4oIW4uc291cmNlfHxlKSYmKHQ9IiIsZXx8KHQrPW4ucHJvdG9jb2w/bi5wcm90b2Nv
bCsiOi8vIjoiLy8iLG4udXNlckluZm8mJih0Kz1uLnVzZXJJbmZvKyJAIiksbi5ob3N0JiYodCs9
bi5ob3N0KSxuLnBvcnQmJih0Kz0iOiIrbi5wb3J0KSksbi5wYXRoJiYodCs9bi5wYXRoKSxuLnF1
ZXJ5JiYodCs9Ij8iK24ucXVlcnkpLG4uYW5jaG9yJiYodCs9IiMiK24uYW5jaG9yKSxuLnNvdXJj
ZT10KSxuLnNvdXJjZX19LHR9KSxyKHosW3BdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt9dmFy
IG49ZS5lYWNoLHI9ZS5leHRlbmQsaSxvO3JldHVybiB0LmV4dGVuZD1pPWZ1bmN0aW9uKGUpe2Z1
bmN0aW9uIHQoKXt2YXIgZSx0LG4scj10aGlzO2lmKCFvJiYoci5pbml0JiZyLmluaXQuYXBwbHko
cixhcmd1bWVudHMpLHQ9ci5NaXhpbnMpKWZvcihlPXQubGVuZ3RoO2UtLTspbj10W2VdLG4uaW5p
dCYmbi5pbml0LmFwcGx5KHIsYXJndW1lbnRzKX1mdW5jdGlvbiBhKCl7cmV0dXJuIHRoaXN9ZnVu
Y3Rpb24gcyhlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMscj1uLl9zdXBlcixpO3Jl
dHVybiBuLl9zdXBlcj1jW2VdLGk9dC5hcHBseShuLGFyZ3VtZW50cyksbi5fc3VwZXI9cixpfX12
YXIgbD10aGlzLGM9bC5wcm90b3R5cGUsdSxkLGY7bz0hMCx1PW5ldyBsLG89ITEsZS5NaXhpbnMm
JihuKGUuTWl4aW5zLGZ1bmN0aW9uKHQpe3Q9dDtmb3IodmFyIG4gaW4gdCkiaW5pdCIhPT1uJiYo
ZVtuXT10W25dKX0pLGMuTWl4aW5zJiYoZS5NaXhpbnM9Yy5NaXhpbnMuY29uY2F0KGUuTWl4aW5z
KSkpLGUuTWV0aG9kcyYmbihlLk1ldGhvZHMuc3BsaXQoIiwiKSxmdW5jdGlvbih0KXtlW3RdPWF9
KSxlLlByb3BlcnRpZXMmJm4oZS5Qcm9wZXJ0aWVzLnNwbGl0KCIsIiksZnVuY3Rpb24odCl7dmFy
IG49Il8iK3Q7ZVt0XT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI7cmV0dXJuIGUhPT1yPyh0W25d
PWUsdCk6dFtuXX19KSxlLlN0YXRpY3MmJm4oZS5TdGF0aWNzLGZ1bmN0aW9uKGUsbil7dFtuXT1l
fSksZS5EZWZhdWx0cyYmYy5EZWZhdWx0cyYmKGUuRGVmYXVsdHM9cih7fSxjLkRlZmF1bHRzLGUu
RGVmYXVsdHMpKTtmb3IoZCBpbiBlKWY9ZVtkXSx1W2RdPSJmdW5jdGlvbiI9PXR5cGVvZiBmJiZj
W2RdP3MoZCxmKTpmO3JldHVybiB0LnByb3RvdHlwZT11LHQuY29uc3RydWN0b3I9dCx0LmV4dGVu
ZD1pLHR9LHR9KSxyKFcsW3BdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gdCgp
e3JldHVybiExfWZ1bmN0aW9uIG4oKXtyZXR1cm4hMH1mdW5jdGlvbiByKHIsaSl7dmFyIG8sYSxz
LHU7aWYocj1yLnRvTG93ZXJDYXNlKCksaT1pfHx7fSxpLnR5cGU9cixpLnRhcmdldHx8KGkudGFy
Z2V0PWwpLGkucHJldmVudERlZmF1bHR8fChpLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7aS5p
c0RlZmF1bHRQcmV2ZW50ZWQ9bn0saS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtpLmlzUHJv
cGFnYXRpb25TdG9wcGVkPW59LGkuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7
aS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1ufSxpLmlzRGVmYXVsdFByZXZlbnRlZD10
LGkuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dCxpLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVk
PXQpLGUuYmVmb3JlRmlyZSYmZS5iZWZvcmVGaXJlKGkpLG89Y1tyXSlmb3IoYT0wLHM9by5sZW5n
dGg7cz5hO2ErKyl7aWYob1thXT11PW9bYV0saS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBl
ZCgpKXJldHVybiBpLnN0b3BQcm9wYWdhdGlvbigpLGk7aWYodS5jYWxsKGwsaSk9PT0hMSlyZXR1
cm4gaS5wcmV2ZW50RGVmYXVsdCgpLGl9cmV0dXJuIGl9ZnVuY3Rpb24gaShlLG4scil7dmFyIGks
byxhO2lmKG49PT0hMSYmKG49dCksbilmb3Iobz1lLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAiKSxh
PW8ubGVuZ3RoO2EtLTspZT1vW2FdLGk9Y1tlXSxpfHwoaT1jW2VdPVtdLHUoZSwhMCkpLHI/aS51
bnNoaWZ0KG4pOmkucHVzaChuKTtyZXR1cm4gc31mdW5jdGlvbiBvKGUsdCl7dmFyIG4scixpLG8s
YTtpZihlKWZvcihvPWUudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpLG49by5sZW5ndGg7bi0tOyl7
aWYoZT1vW25dLHI9Y1tlXSwhZSl7Zm9yKGkgaW4gYyl1KGksITEpLGRlbGV0ZSBjW2ldO3JldHVy
biBzfWlmKHIpe2lmKHQpZm9yKGE9ci5sZW5ndGg7YS0tOylyW2FdPT09dCYmci5zcGxpY2UoYSwx
KTtlbHNlIHIubGVuZ3RoPTA7ci5sZW5ndGh8fCh1KGUsITEpLGRlbGV0ZSBjW2VdKX19ZWxzZXtm
b3IoZSBpbiBjKXUoZSwhMSk7Yz17fX1yZXR1cm4gc31mdW5jdGlvbiBhKGUpe3JldHVybiBlPWUu
dG9Mb3dlckNhc2UoKSwhKCFjW2VdfHwwPT09Y1tlXS5sZW5ndGgpfXZhciBzPXRoaXMsbCxjPXt9
LHU7ZT1lfHx7fSxsPWUuc2NvcGV8fHMsdT1lLnRvZ2dsZUV2ZW50fHx0LHMuZmlyZT1yLHMub249
aSxzLm9mZj1vLHMuaGFzPWF9dmFyIG49ZS5tYWtlTWFwKCJmb2N1cyBibHVyIGZvY3VzaW4gZm9j
dXNvdXQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3Zl
ciBiZWZvcmVwYXN0ZSBwYXN0ZSBjdXQgY29weSBzZWxlY3Rpb25jaGFuZ2UgbW91c2VvdXQgbW91
c2VlbnRlciBtb3VzZWxlYXZlIHdoZWVsIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgY29u
dGV4dG1lbnUgZHJhZ3N0YXJ0IGRyYWdlbmQgZHJhZ292ZXIgZHJhZ2dlc3R1cmUgZHJhZ2Ryb3Ag
ZHJvcCBkcmFnIHN1Ym1pdCIsIiAiKTtyZXR1cm4gdC5pc05hdGl2ZT1mdW5jdGlvbihlKXtyZXR1
cm4hIW5bZS50b0xvd2VyQ2FzZSgpXX0sdH0pLHIoVixbel0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24g
dChlKXtmb3IodmFyIHQ9W10sbj1lLmxlbmd0aCxyO24tLTspcj1lW25dLHIuX19jaGVja2VkfHwo
dC5wdXNoKHIpLHIuX19jaGVja2VkPTEpO2ZvcihuPXQubGVuZ3RoO24tLTspZGVsZXRlIHRbbl0u
X19jaGVja2VkO3JldHVybiB0fXZhciBuPS9eKFtcd1xcKl0rKT8oPzojKFtcd1xcXSspKT8oPzpc
LihbXHdcXFwuXSspKT8oPzpcW1xAPyhbXHdcXF0rKShbXF5cJFwqIX5dPz0pKFtcd1xcXSspXF0p
Pyg/Olw6KC4rKSk/L2kscj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtb
XlxbXF1dKlxdfFsnIl1bXiciXSpbJyJdfFteXFtcXSciXSspK1xdfFxcLnxbXiA+K34sKFxbXFxd
KykrfFs+K35dKShccyosXHMqKT8oKD86LnxccnxcbikqKS9nLGk9L15ccyp8XHMqJC9nLG8sYT1l
LmV4dGVuZCh7aW5pdDpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe3JldHVybiBlPyhlPWUudG9M
b3dlckNhc2UoKSxmdW5jdGlvbih0KXtyZXR1cm4iKiI9PT1lfHx0LnR5cGU9PT1lfSk6dm9pZCAw
fWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGU/ZnVuY3Rpb24odCl7cmV0dXJuIHQuX25hbWU9PT1lfTp2
b2lkIDB9ZnVuY3Rpb24gYShlKXtyZXR1cm4gZT8oZT1lLnNwbGl0KCIuIiksZnVuY3Rpb24odCl7
Zm9yKHZhciBuPWUubGVuZ3RoO24tLTspaWYoIXQuaGFzQ2xhc3MoZVtuXSkpcmV0dXJuITE7cmV0
dXJuITB9KTp2b2lkIDB9ZnVuY3Rpb24gcyhlLHQsbil7cmV0dXJuIGU/ZnVuY3Rpb24ocil7dmFy
IGk9cltlXT9yW2VdKCk6IiI7cmV0dXJuIHQ/Ij0iPT09dD9pPT09bjoiKj0iPT09dD9pLmluZGV4
T2Yobik+PTA6In49Ij09PXQ/KCIgIitpKyIgIikuaW5kZXhPZigiICIrbisiICIpPj0wOiIhPSI9
PT10P2khPW46Il49Ij09PXQ/MD09PWkuaW5kZXhPZihuKToiJD0iPT09dD9pLnN1YnN0cihpLmxl
bmd0aC1uLmxlbmd0aCk9PT1uOiExOiEhbn06dm9pZCAwfWZ1bmN0aW9uIGwoZSl7dmFyIHQ7cmV0
dXJuIGU/KGU9Lyg/Om5vdFwoKC4rKVwpKXwoLispL2kuZXhlYyhlKSxlWzFdPyh0PXUoZVsxXSxb
XSksZnVuY3Rpb24oZSl7cmV0dXJuIWQoZSx0KX0pOihlPWVbMl0sZnVuY3Rpb24odCxuLHIpe3Jl
dHVybiJmaXJzdCI9PT1lPzA9PT1uOiJsYXN0Ij09PWU/bj09PXItMToiZXZlbiI9PT1lP24lMj09
PTA6Im9kZCI9PT1lP24lMj09PTE6dFtlXT90W2VdKCk6ITF9KSk6dm9pZCAwfWZ1bmN0aW9uIGMo
ZSxyLGMpe2Z1bmN0aW9uIHUoZSl7ZSYmci5wdXNoKGUpfXZhciBkO3JldHVybiBkPW4uZXhlYyhl
LnJlcGxhY2UoaSwiIikpLHUodChkWzFdKSksdShvKGRbMl0pKSx1KGEoZFszXSkpLHUocyhkWzRd
LGRbNV0sZFs2XSkpLHUobChkWzddKSksci5wc3VlZG89ISFkWzddLHIuZGlyZWN0PWMscn1mdW5j
dGlvbiB1KGUsdCl7dmFyIG49W10saSxvLGE7ZG8gaWYoci5leGVjKCIiKSxvPXIuZXhlYyhlKSxv
JiYoZT1vWzNdLG4ucHVzaChvWzFdKSxvWzJdKSl7aT1vWzNdO2JyZWFrfXdoaWxlKG8pO2Zvcihp
JiZ1KGksdCksZT1bXSxhPTA7YTxuLmxlbmd0aDthKyspIj4iIT1uW2FdJiZlLnB1c2goYyhuW2Fd
LFtdLCI+Ij09PW5bYS0xXSkpO3JldHVybiB0LnB1c2goZSksdH12YXIgZD10aGlzLm1hdGNoO3Ro
aXMuX3NlbGVjdG9ycz11KGUsW10pfSxtYXRjaDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvLGEs
cyxsLGMsdSxkLGYscCxoO2Zvcih0PXR8fHRoaXMuX3NlbGVjdG9ycyxuPTAscj10Lmxlbmd0aDty
Pm47bisrKXtmb3IoYT10W25dLG89YS5sZW5ndGgsaD1lLHA9MCxpPW8tMTtpPj0wO2ktLSlmb3Io
Yz1hW2ldO2g7KXtpZihjLnBzdWVkbylmb3IoZj1oLnBhcmVudCgpLml0ZW1zKCksdT1kPWYubGVu
Z3RoO3UtLSYmZlt1XSE9PWg7KTtmb3Iocz0wLGw9Yy5sZW5ndGg7bD5zO3MrKylpZighY1tzXSho
LHUsZCkpe3M9bCsxO2JyZWFrfWlmKHM9PT1sKXtwKys7YnJlYWt9aWYoaT09PW8tMSlicmVhazto
PWgucGFyZW50KCl9aWYocD09PW8pcmV0dXJuITB9cmV0dXJuITF9LGZpbmQ6ZnVuY3Rpb24oZSl7
ZnVuY3Rpb24gbihlLHQsaSl7dmFyIG8sYSxzLGwsYyx1PXRbaV07Zm9yKG89MCxhPWUubGVuZ3Ro
O2E+bztvKyspe2ZvcihjPWVbb10scz0wLGw9dS5sZW5ndGg7bD5zO3MrKylpZighdVtzXShjLG8s
YSkpe3M9bCsxO2JyZWFrfWlmKHM9PT1sKWk9PXQubGVuZ3RoLTE/ci5wdXNoKGMpOmMuaXRlbXMm
Jm4oYy5pdGVtcygpLHQsaSsxKTtlbHNlIGlmKHUuZGlyZWN0KXJldHVybjtjLml0ZW1zJiZuKGMu
aXRlbXMoKSx0LGkpfX12YXIgcj1bXSxpLHMsbD10aGlzLl9zZWxlY3RvcnM7aWYoZS5pdGVtcyl7
Zm9yKGk9MCxzPWwubGVuZ3RoO3M+aTtpKyspbihlLml0ZW1zKCksbFtpXSwwKTtzPjEmJihyPXQo
cikpfXJldHVybiBvfHwobz1hLkNvbGxlY3Rpb24pLG5ldyBvKHIpfX0pO3JldHVybiBhfSkscihV
LFtwLFYsel0sZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz1BcnJheS5wcm90b3R5cGUucHVzaCxh
PUFycmF5LnByb3RvdHlwZS5zbGljZTtyZXR1cm4gaT17bGVuZ3RoOjAsaW5pdDpmdW5jdGlvbihl
KXtlJiZ0aGlzLmFkZChlKX0sYWRkOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIGUuaXNB
cnJheSh0KT9vLmFwcGx5KG4sdCk6dCBpbnN0YW5jZW9mIHI/bi5hZGQodC50b0FycmF5KCkpOm8u
Y2FsbChuLHQpLG59LHNldDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dC5sZW5ndGgscjtmb3Io
dC5sZW5ndGg9MCx0LmFkZChlKSxyPXQubGVuZ3RoO24+cjtyKyspZGVsZXRlIHRbcl07cmV0dXJu
IHR9LGZpbHRlcjpmdW5jdGlvbihlKXt2YXIgbj10aGlzLGksbyxhPVtdLHMsbDtmb3IoInN0cmlu
ZyI9PXR5cGVvZiBlPyhlPW5ldyB0KGUpLGw9ZnVuY3Rpb24odCl7cmV0dXJuIGUubWF0Y2godCl9
KTpsPWUsaT0wLG89bi5sZW5ndGg7bz5pO2krKylzPW5baV0sbChzKSYmYS5wdXNoKHMpO3JldHVy
biBuZXcgcihhKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIoYS5hcHBseSh0aGlzLGFy
Z3VtZW50cykpfSxlcTpmdW5jdGlvbihlKXtyZXR1cm4tMT09PWU/dGhpcy5zbGljZShlKTp0aGlz
LnNsaWNlKGUsK2UrMSl9LGVhY2g6ZnVuY3Rpb24odCl7cmV0dXJuIGUuZWFjaCh0aGlzLHQpLHRo
aXN9LHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZS50b0FycmF5KHRoaXMpfSxpbmRleE9mOmZ1
bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLG49dC5sZW5ndGg7bi0tJiZ0W25dIT09ZTspO3JldHVy
biBufSxyZXZlcnNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyByKGUudG9BcnJheSh0aGlzKS5yZXZl
cnNlKCkpfSxoYXNDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpc1swXT90aGlzWzBdLmhhc0Ns
YXNzKGUpOiExfSxwcm9wOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyLGk7cmV0dXJuIHQhPT1y
PyhuLmVhY2goZnVuY3Rpb24obil7bltlXSYmbltlXSh0KX0pLG4pOihpPW5bMF0saSYmaVtlXT9p
W2VdKCk6dm9pZCAwKX0sZXhlYzpmdW5jdGlvbih0KXt2YXIgbj10aGlzLHI9ZS50b0FycmF5KGFy
Z3VtZW50cykuc2xpY2UoMSk7cmV0dXJuIG4uZWFjaChmdW5jdGlvbihlKXtlW3RdJiZlW3RdLmFw
cGx5KGUscil9KSxufSxyZW1vdmU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5sZW5ndGg7ZS0t
Oyl0aGlzW2VdLnJlbW92ZSgpO3JldHVybiB0aGlzfX0sZS5lYWNoKCJmaXJlIG9uIG9mZiBzaG93
IGhpZGUgYWRkQ2xhc3MgcmVtb3ZlQ2xhc3MgYXBwZW5kIHByZXBlbmQgYmVmb3JlIGFmdGVyIHJl
ZmxvdyIuc3BsaXQoIiAiKSxmdW5jdGlvbih0KXtpW3RdPWZ1bmN0aW9uKCl7dmFyIG49ZS50b0Fy
cmF5KGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXt0IGluIGUmJmVbdF0u
YXBwbHkoZSxuKX0pLHRoaXN9fSksZS5lYWNoKCJ0ZXh0IG5hbWUgZGlzYWJsZWQgYWN0aXZlIHNl
bGVjdGVkIGNoZWNrZWQgdmlzaWJsZSBwYXJlbnQgdmFsdWUgZGF0YSIuc3BsaXQoIiAiKSxmdW5j
dGlvbihlKXtpW2VdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnByb3AoZSx0KX19KSxyPW4uZXh0
ZW5kKGkpLHQuQ29sbGVjdGlvbj1yLHJ9KSxyKHEsW3AseV0sZnVuY3Rpb24oZSx0KXtyZXR1cm57
aWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5ET00udW5pcXVlSWQoKX0sY3JlYXRlRnJhZ21lbnQ6ZnVu
Y3Rpb24oZSl7cmV0dXJuIHQuRE9NLmNyZWF0ZUZyYWdtZW50KGUpfSxnZXRXaW5kb3dTaXplOmZ1
bmN0aW9uKCl7cmV0dXJuIHQuRE9NLmdldFZpZXdQb3J0KCl9LGdldFNpemU6ZnVuY3Rpb24oZSl7
dmFyIHQsbjtpZihlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dmFyIHI9ZS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTt0PU1hdGgubWF4KHIud2lkdGh8fHIucmlnaHQtci5sZWZ0LGUub2Zmc2V0V2lk
dGgpLG49TWF0aC5tYXgoci5oZWlnaHR8fHIuYm90dG9tLXIuYm90dG9tLGUub2Zmc2V0SGVpZ2h0
KX1lbHNlIHQ9ZS5vZmZzZXRXaWR0aCxuPWUub2Zmc2V0SGVpZ2h0O3JldHVybnt3aWR0aDp0LGhl
aWdodDpufX0sZ2V0UG9zOmZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuRE9NLmdldFBvcyhlLG4pfSxn
ZXRWaWV3UG9ydDpmdW5jdGlvbihlKXtyZXR1cm4gdC5ET00uZ2V0Vmlld1BvcnQoZSl9LGdldDpm
dW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSl9LGFkZENsYXNzOmZ1
bmN0aW9uKGUsbil7cmV0dXJuIHQuRE9NLmFkZENsYXNzKGUsbil9LHJlbW92ZUNsYXNzOmZ1bmN0
aW9uKGUsbil7cmV0dXJuIHQuRE9NLnJlbW92ZUNsYXNzKGUsbil9LGhhc0NsYXNzOmZ1bmN0aW9u
KGUsbil7cmV0dXJuIHQuRE9NLmhhc0NsYXNzKGUsbil9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGUs
bixyKXtyZXR1cm4gdC5ET00udG9nZ2xlQ2xhc3MoZSxuLHIpfSxjc3M6ZnVuY3Rpb24oZSxuLHIp
e3JldHVybiB0LkRPTS5zZXRTdHlsZShlLG4scil9LG9uOmZ1bmN0aW9uKGUsbixyLGkpe3JldHVy
biB0LkRPTS5iaW5kKGUsbixyLGkpfSxvZmY6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0LkRPTS51
bmJpbmQoZSxuLHIpfSxmaXJlOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdC5ET00uZmlyZShlLG4s
cil9LGlubmVySHRtbDpmdW5jdGlvbihlLG4pe3QuRE9NLnNldEhUTUwoZSxuKX19fSkscigkLFt6
LHAsVyxVLHFdLGZ1bmN0aW9uKGUsdCxuLHIsaSl7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5fZXZl
bnREaXNwYXRjaGVyfHwoZS5fZXZlbnREaXNwYXRjaGVyPW5ldyBuKHtzY29wZTplLHRvZ2dsZUV2
ZW50OmZ1bmN0aW9uKHQscil7ciYmbi5pc05hdGl2ZSh0KSYmKGUuX25hdGl2ZUV2ZW50c3x8KGUu
X25hdGl2ZUV2ZW50cz17fSksZS5fbmF0aXZlRXZlbnRzW3RdPSEwLGUuX3JlbmRlcmVkJiZlLmJp
bmRQZW5kaW5nRXZlbnRzKCkpfX0pKSxlLl9ldmVudERpc3BhdGNoZXJ9dmFyIGE9e30scz0ib25t
b3VzZXdoZWVsImluIGRvY3VtZW50LGw9ITEsYz0ibWNlLSIsdT1lLmV4dGVuZCh7U3RhdGljczp7
ZWxlbWVudElkQ2FjaGU6YSxjbGFzc1ByZWZpeDpjfSxpc1J0bDpmdW5jdGlvbigpe3JldHVybiB1
LnJ0bH0sY2xhc3NQcmVmaXg6Yyxpbml0OmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscixvO2lmKG4u
c2V0dGluZ3M9ZT10LmV4dGVuZCh7fSxuLkRlZmF1bHRzLGUpLG4uX2lkPWUuaWR8fGkuaWQoKSxu
Ll90ZXh0PW4uX25hbWU9IiIsbi5fd2lkdGg9bi5faGVpZ2h0PTAsbi5fYXJpYT17cm9sZTplLnJv
bGV9LHI9ZS5jbGFzc2VzKWZvcihyPXIuc3BsaXQoIiAiKSxyLm1hcD17fSxvPXIubGVuZ3RoO28t
LTspci5tYXBbcltvXV09ITA7bi5fY2xhc3Nlcz1yfHxbXSxuLnZpc2libGUoITApLHQuZWFjaCgi
dGl0bGUgdGV4dCB3aWR0aCBoZWlnaHQgbmFtZSBjbGFzc2VzIHZpc2libGUgZGlzYWJsZWQgYWN0
aXZlIHZhbHVlIi5zcGxpdCgiICIpLGZ1bmN0aW9uKHQpe3ZhciByPWVbdF0saTtyIT09aT9uW3Rd
KHIpOm5bIl8iK3RdPT09aSYmKG5bIl8iK3RdPSExKX0pLG4ub24oImNsaWNrIixmdW5jdGlvbigp
e3JldHVybiBuLmRpc2FibGVkKCk/ITE6dm9pZCAwfSksZS5jbGFzc2VzJiZ0LmVhY2goZS5jbGFz
c2VzLnNwbGl0KCIgIiksZnVuY3Rpb24oZSl7bi5hZGRDbGFzcyhlKX0pLG4uc2V0dGluZ3M9ZSxu
Ll9ib3JkZXJCb3g9bi5wYXJzZUJveChlLmJvcmRlciksbi5fcGFkZGluZ0JveD1uLnBhcnNlQm94
KGUucGFkZGluZyksbi5fbWFyZ2luQm94PW4ucGFyc2VCb3goZS5tYXJnaW4pLGUuaGlkZGVuJiZu
LmhpZGUoKX0sUHJvcGVydGllczoicGFyZW50LHRpdGxlLHRleHQsd2lkdGgsaGVpZ2h0LGRpc2Fi
bGVkLGFjdGl2ZSxuYW1lLHZhbHVlIixNZXRob2RzOiJyZW5kZXJIdG1sIixnZXRDb250YWluZXJF
bG06ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuYm9keX0sZ2V0UGFyZW50Q3RybDpmdW5jdGlv
bihlKXtmb3IodmFyIHQsbj10aGlzLmdldFJvb3QoKS5jb250cm9sSWRMb29rdXA7ZSYmbiYmISh0
PW5bZS5pZF0pOyllPWUucGFyZW50Tm9kZTtyZXR1cm4gdH0scGFyc2VCb3g6ZnVuY3Rpb24oZSl7
dmFyIHQsbj0xMDtpZihlKXJldHVybiJudW1iZXIiPT10eXBlb2YgZT8oZT1lfHwwLHt0b3A6ZSxs
ZWZ0OmUsYm90dG9tOmUscmlnaHQ6ZX0pOihlPWUuc3BsaXQoIiAiKSx0PWUubGVuZ3RoLDE9PT10
P2VbMV09ZVsyXT1lWzNdPWVbMF06Mj09PXQ/KGVbMl09ZVswXSxlWzNdPWVbMV0pOjM9PT10JiYo
ZVszXT1lWzFdKSx7dG9wOnBhcnNlSW50KGVbMF0sbil8fDAscmlnaHQ6cGFyc2VJbnQoZVsxXSxu
KXx8MCxib3R0b206cGFyc2VJbnQoZVsyXSxuKXx8MCxsZWZ0OnBhcnNlSW50KGVbM10sbil8fDB9
KX0sYm9yZGVyQm94OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JvcmRlckJveH0scGFkZGluZ0Jv
eDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYWRkaW5nQm94fSxtYXJnaW5Cb3g6ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5fbWFyZ2luQm94fSxtZWFzdXJlQm94OmZ1bmN0aW9uKGUsdCl7ZnVuY3Rp
b24gbih0KXt2YXIgbj1kb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gbj8odD10LnJlcGxhY2Uo
L1tBLVpdL2csZnVuY3Rpb24oZSl7cmV0dXJuIi0iK2V9KSxuLmdldENvbXB1dGVkU3R5bGUoZSxu
dWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpKTplLmN1cnJlbnRTdHlsZVt0XX1mdW5jdGlvbiByKGUp
e3ZhciB0PXBhcnNlRmxvYXQobihlKSwxMCk7cmV0dXJuIGlzTmFOKHQpPzA6dH1yZXR1cm57dG9w
OnIodCsiVG9wV2lkdGgiKSxyaWdodDpyKHQrIlJpZ2h0V2lkdGgiKSxib3R0b206cih0KyJCb3R0
b21XaWR0aCIpLGxlZnQ6cih0KyJMZWZ0V2lkdGgiKX19LGluaXRMYXlvdXRSZWN0OmZ1bmN0aW9u
KCl7dmFyIGU9dGhpcyx0PWUuc2V0dGluZ3MsbixyLG89ZS5nZXRFbCgpLGEscyxsLGMsdSxkLGYs
cDtuPWUuX2JvcmRlckJveD1lLl9ib3JkZXJCb3h8fGUubWVhc3VyZUJveChvLCJib3JkZXIiKSxl
Ll9wYWRkaW5nQm94PWUuX3BhZGRpbmdCb3h8fGUubWVhc3VyZUJveChvLCJwYWRkaW5nIiksZS5f
bWFyZ2luQm94PWUuX21hcmdpbkJveHx8ZS5tZWFzdXJlQm94KG8sIm1hcmdpbiIpLHA9aS5nZXRT
aXplKG8pLGQ9dC5taW5XaWR0aCxmPXQubWluSGVpZ2h0LGw9ZHx8cC53aWR0aCxjPWZ8fHAuaGVp
Z2h0LGE9dC53aWR0aCxzPXQuaGVpZ2h0LHU9dC5hdXRvUmVzaXplLHU9InVuZGVmaW5lZCIhPXR5
cGVvZiB1P3U6IWEmJiFzLGE9YXx8bCxzPXN8fGM7dmFyIGg9bi5sZWZ0K24ucmlnaHQsbT1uLnRv
cCtuLmJvdHRvbSxnPXQubWF4V2lkdGh8fDY1NTM1LHY9dC5tYXhIZWlnaHR8fDY1NTM1O3JldHVy
biBlLl9sYXlvdXRSZWN0PXI9e3g6dC54fHwwLHk6dC55fHwwLHc6YSxoOnMsZGVsdGFXOmgsZGVs
dGFIOm0sY29udGVudFc6YS1oLGNvbnRlbnRIOnMtbSxpbm5lclc6YS1oLGlubmVySDpzLW0sc3Rh
cnRNaW5XaWR0aDpkfHwwLHN0YXJ0TWluSGVpZ2h0OmZ8fDAsbWluVzpNYXRoLm1pbihsLGcpLG1p
bkg6TWF0aC5taW4oYyx2KSxtYXhXOmcsbWF4SDp2LGF1dG9SZXNpemU6dSxzY3JvbGxXOjB9LGUu
X2xhc3RMYXlvdXRSZWN0PXt9LHJ9LGxheW91dFJlY3Q6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxu
PXQuX2xheW91dFJlY3QscixpLG8sYSxzLGw7cmV0dXJuIG58fChuPXQuaW5pdExheW91dFJlY3Qo
KSksZT8obz1uLmRlbHRhVyxhPW4uZGVsdGFILGUueCE9PXMmJihuLng9ZS54KSxlLnkhPT1zJiYo
bi55PWUueSksZS5taW5XIT09cyYmKG4ubWluVz1lLm1pblcpLGUubWluSCE9PXMmJihuLm1pbkg9
ZS5taW5IKSxpPWUudyxpIT09cyYmKGk9aTxuLm1pblc/bi5taW5XOmksaT1pPm4ubWF4Vz9uLm1h
eFc6aSxuLnc9aSxuLmlubmVyVz1pLW8pLGk9ZS5oLGkhPT1zJiYoaT1pPG4ubWluSD9uLm1pbkg6
aSxpPWk+bi5tYXhIP24ubWF4SDppLG4uaD1pLG4uaW5uZXJIPWktYSksaT1lLmlubmVyVyxpIT09
cyYmKGk9aTxuLm1pblctbz9uLm1pblctbzppLGk9aT5uLm1heFctbz9uLm1heFctbzppLG4uaW5u
ZXJXPWksbi53PWkrbyksaT1lLmlubmVySCxpIT09cyYmKGk9aTxuLm1pbkgtYT9uLm1pbkgtYTpp
LGk9aT5uLm1heEgtYT9uLm1heEgtYTppLG4uaW5uZXJIPWksbi5oPWkrYSksZS5jb250ZW50VyE9
PXMmJihuLmNvbnRlbnRXPWUuY29udGVudFcpLGUuY29udGVudEghPT1zJiYobi5jb250ZW50SD1l
LmNvbnRlbnRIKSxyPXQuX2xhc3RMYXlvdXRSZWN0LChyLnghPT1uLnh8fHIueSE9PW4ueXx8ci53
IT09bi53fHxyLmghPT1uLmgpJiYobD11LnJlcGFpbnRDb250cm9scyxsJiZsLm1hcCYmIWwubWFw
W3QuX2lkXSYmKGwucHVzaCh0KSxsLm1hcFt0Ll9pZF09ITApLHIueD1uLngsci55PW4ueSxyLnc9
bi53LHIuaD1uLmgpLHQpOm59LHJlcGFpbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQsbixyLGks
bz0wLGE9MCxzLGw7bD1kb2N1bWVudC5jcmVhdGVSYW5nZT9mdW5jdGlvbihlKXtyZXR1cm4gZX06
TWF0aC5yb3VuZCx0PWUuZ2V0RWwoKS5zdHlsZSxyPWUuX2xheW91dFJlY3Qscz1lLl9sYXN0UmVw
YWludFJlY3R8fHt9LGk9ZS5fYm9yZGVyQm94LG89aS5sZWZ0K2kucmlnaHQsYT1pLnRvcCtpLmJv
dHRvbSxyLnghPT1zLngmJih0LmxlZnQ9bChyLngpKyJweCIscy54PXIueCksci55IT09cy55JiYo
dC50b3A9bChyLnkpKyJweCIscy55PXIueSksci53IT09cy53JiYodC53aWR0aD1sKHIudy1vKSsi
cHgiLHMudz1yLncpLHIuaCE9PXMuaCYmKHQuaGVpZ2h0PWwoci5oLWEpKyJweCIscy5oPXIuaCks
ZS5faGFzQm9keSYmci5pbm5lclchPT1zLmlubmVyVyYmKG49ZS5nZXRFbCgiYm9keSIpLnN0eWxl
LG4ud2lkdGg9bChyLmlubmVyVykrInB4IixzLmlubmVyVz1yLmlubmVyVyksZS5faGFzQm9keSYm
ci5pbm5lckghPT1zLmlubmVySCYmKG49bnx8ZS5nZXRFbCgiYm9keSIpLnN0eWxlLG4uaGVpZ2h0
PWwoci5pbm5lckgpKyJweCIscy5pbm5lckg9ci5pbm5lckgpLGUuX2xhc3RSZXBhaW50UmVjdD1z
LGUuZmlyZSgicmVwYWludCIse30sITEpfSxvbjpmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSl7
dmFyIHQsbjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGU/ZTpmdW5jdGlvbihpKXtyZXR1cm4gdHx8
ci5wYXJlbnRzQW5kU2VsZigpLmVhY2goZnVuY3Rpb24ocil7dmFyIGk9ci5zZXR0aW5ncy5jYWxs
YmFja3M7cmV0dXJuIGkmJih0PWlbZV0pPyhuPXIsITEpOnZvaWQgMH0pLHQuY2FsbChuLGkpfX12
YXIgcj10aGlzO3JldHVybiBvKHIpLm9uKGUsbih0KSkscn0sb2ZmOmZ1bmN0aW9uKGUsdCl7cmV0
dXJuIG8odGhpcykub2ZmKGUsdCksdGhpc30sZmlyZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGhp
cztpZih0PXR8fHt9LHQuY29udHJvbHx8KHQuY29udHJvbD1yKSx0PW8ocikuZmlyZShlLHQpLG4h
PT0hMSYmci5wYXJlbnQpZm9yKHZhciBpPXIucGFyZW50KCk7aSYmIXQuaXNQcm9wYWdhdGlvblN0
b3BwZWQoKTspaS5maXJlKGUsdCwhMSksaT1pLnBhcmVudCgpO3JldHVybiB0fSxoYXNFdmVudExp
c3RlbmVyczpmdW5jdGlvbihlKXtyZXR1cm4gbyh0aGlzKS5oYXMoZSl9LHBhcmVudHM6ZnVuY3Rp
b24oZSl7dmFyIHQ9dGhpcyxuLGk9bmV3IHI7Zm9yKG49dC5wYXJlbnQoKTtuO249bi5wYXJlbnQo
KSlpLmFkZChuKTtyZXR1cm4gZSYmKGk9aS5maWx0ZXIoZSkpLGl9LHBhcmVudHNBbmRTZWxmOmZ1
bmN0aW9uKGUpe3JldHVybiBuZXcgcih0aGlzKS5hZGQodGhpcy5wYXJlbnRzKGUpKX0sbmV4dDpm
dW5jdGlvbigpe3ZhciBlPXRoaXMucGFyZW50KCkuaXRlbXMoKTtyZXR1cm4gZVtlLmluZGV4T2Yo
dGhpcykrMV19LHByZXY6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcmVudCgpLml0ZW1zKCk7cmV0
dXJuIGVbZS5pbmRleE9mKHRoaXMpLTFdfSxmaW5kQ29tbW9uQW5jZXN0b3I6ZnVuY3Rpb24oZSx0
KXtmb3IodmFyIG47ZTspe2ZvcihuPXQ7biYmZSE9bjspbj1uLnBhcmVudCgpO2lmKGU9PW4pYnJl
YWs7ZT1lLnBhcmVudCgpfXJldHVybiBlfSxoYXNDbGFzczpmdW5jdGlvbihlLHQpe3ZhciBuPXRo
aXMuX2NsYXNzZXNbdHx8ImNvbnRyb2wiXTtyZXR1cm4gZT10aGlzLmNsYXNzUHJlZml4K2UsbiYm
ISFuLm1hcFtlXX0sYWRkQ2xhc3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHIsaTtyZXR1cm4g
ZT10aGlzLmNsYXNzUHJlZml4K2Uscj1uLl9jbGFzc2VzW3R8fCJjb250cm9sIl0scnx8KHI9W10s
ci5tYXA9e30sbi5fY2xhc3Nlc1t0fHwiY29udHJvbCJdPXIpLHIubWFwW2VdfHwoci5tYXBbZV09
ZSxyLnB1c2goZSksbi5fcmVuZGVyZWQmJihpPW4uZ2V0RWwodCksaSYmKGkuY2xhc3NOYW1lPXIu
am9pbigiICIpKSkpLG59LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyLGks
bztpZihlPXRoaXMuY2xhc3NQcmVmaXgrZSxyPW4uX2NsYXNzZXNbdHx8ImNvbnRyb2wiXSxyJiZy
Lm1hcFtlXSlmb3IoZGVsZXRlIHIubWFwW2VdLGk9ci5sZW5ndGg7aS0tOylyW2ldPT09ZSYmci5z
cGxpY2UoaSwxKTtyZXR1cm4gbi5fcmVuZGVyZWQmJihvPW4uZ2V0RWwodCksbyYmKG8uY2xhc3NO
YW1lPXIuam9pbigiICIpKSksbn0sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRo
aXM7cmV0dXJuIHQ/ci5hZGRDbGFzcyhlLG4pOnIucmVtb3ZlQ2xhc3MoZSxuKSxyfSxjbGFzc2Vz
OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2NsYXNzZXNbZXx8ImNvbnRyb2wiXTtyZXR1cm4gdD90
LmpvaW4oIiAiKToiIn0saW5uZXJIdG1sOmZ1bmN0aW9uKGUpe3JldHVybiBpLmlubmVySHRtbCh0
aGlzLmdldEVsKCksZSksdGhpc30sZ2V0RWw6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWU/dGhpcy5f
aWQrIi0iK2U6dGhpcy5faWQ7cmV0dXJuIG49YVtyXT0odD09PSEwP251bGw6YVtyXSl8fGkuZ2V0
KHIpfSx2aXNpYmxlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbjtyZXR1cm4idW5kZWZpbmVkIiE9
dHlwZW9mIGU/KHQuX3Zpc2libGUhPT1lJiYodC5fcmVuZGVyZWQmJih0LmdldEVsKCkuc3R5bGUu
ZGlzcGxheT1lPyIiOiJub25lIiksdC5fdmlzaWJsZT1lLG49dC5wYXJlbnQoKSxuJiYobi5fbGFz
dFJlY3Q9bnVsbCksdC5maXJlKGU/InNob3ciOiJoaWRlIikpLHQpOnQuX3Zpc2libGV9LHNob3c6
ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52aXNpYmxlKCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVy
biB0aGlzLnZpc2libGUoITEpfSxmb2N1czpmdW5jdGlvbigpe3RyeXt0aGlzLmdldEVsKCkuZm9j
dXMoKX1jYXRjaChlKXt9cmV0dXJuIHRoaXN9LGJsdXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5n
ZXRFbCgpLmJsdXIoKSx0aGlzfSxhcmlhOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPW4uZ2V0
RWwobi5hcmlhVGFyZ2V0KTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHQ/bi5fYXJpYVtlXToo
bi5fYXJpYVtlXT10LG4uX3JlbmRlcmVkJiZyLnNldEF0dHJpYnV0ZSgicm9sZSI9PWU/ZToiYXJp
YS0iK2UsdCksbil9LGVuY29kZTpmdW5jdGlvbihlLHQpe3JldHVybiB0IT09ITEmJihlPXRoaXMu
dHJhbnNsYXRlKGUpKSwoZXx8IiIpLnJlcGxhY2UoL1smPD4iXS9nLGZ1bmN0aW9uKGUpe3JldHVy
biImIyIrZS5jaGFyQ29kZUF0KDApKyI7In0pfSx0cmFuc2xhdGU6ZnVuY3Rpb24oZSl7cmV0dXJu
IHUudHJhbnNsYXRlP3UudHJhbnNsYXRlKGUpOmV9LGJlZm9yZTpmdW5jdGlvbihlKXt2YXIgdD10
aGlzLG49dC5wYXJlbnQoKTtyZXR1cm4gbiYmbi5pbnNlcnQoZSxuLml0ZW1zKCkuaW5kZXhPZih0
KSwhMCksdH0sYWZ0ZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQucGFyZW50KCk7cmV0dXJu
IG4mJm4uaW5zZXJ0KGUsbi5pdGVtcygpLmluZGV4T2YodCkpLHR9LHJlbW92ZTpmdW5jdGlvbigp
e3ZhciBlPXRoaXMsdD1lLmdldEVsKCksbj1lLnBhcmVudCgpLHIsbztpZihlLml0ZW1zKXt2YXIg
cz1lLml0ZW1zKCkudG9BcnJheSgpO2ZvcihvPXMubGVuZ3RoO28tLTspc1tvXS5yZW1vdmUoKX1u
JiZuLml0ZW1zJiYocj1bXSxuLml0ZW1zKCkuZWFjaChmdW5jdGlvbih0KXt0IT09ZSYmci5wdXNo
KHQpfSksbi5pdGVtcygpLnNldChyKSxuLl9sYXN0UmVjdD1udWxsKSxlLl9ldmVudHNSb290JiZl
Ll9ldmVudHNSb290PT1lJiZpLm9mZih0KTt2YXIgbD1lLmdldFJvb3QoKS5jb250cm9sSWRMb29r
dXA7aWYobCYmZGVsZXRlIGxbZS5faWRdLGRlbGV0ZSBhW2UuX2lkXSx0JiZ0LnBhcmVudE5vZGUp
e3ZhciBjPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTtmb3Iobz1jLmxlbmd0aDtvLS07KWRl
bGV0ZSBhW2Nbb10uaWRdO3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1yZXR1cm4gZS5fcmVu
ZGVyZWQ9ITEsZX0scmVuZGVyQmVmb3JlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGUu
cGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaS5jcmVhdGVGcmFnbWVudCh0LnJlbmRlckh0bWwoKSks
ZSksdC5wb3N0UmVuZGVyKCksdH0scmVuZGVyVG86ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1
cm4gZT1lfHx0LmdldENvbnRhaW5lckVsbSgpLGUuYXBwZW5kQ2hpbGQoaS5jcmVhdGVGcmFnbWVu
dCh0LnJlbmRlckh0bWwoKSkpLHQucG9zdFJlbmRlcigpLHR9LHBvc3RSZW5kZXI6ZnVuY3Rpb24o
KXt2YXIgZT10aGlzLHQ9ZS5zZXR0aW5ncyxuLHIsbyxhLHM7Zm9yKGEgaW4gdCkwPT09YS5pbmRl
eE9mKCJvbiIpJiZlLm9uKGEuc3Vic3RyKDIpLHRbYV0pO2lmKGUuX2V2ZW50c1Jvb3Qpe2Zvcihv
PWUucGFyZW50KCk7IXMmJm87bz1vLnBhcmVudCgpKXM9by5fZXZlbnRzUm9vdDtpZihzKWZvcihh
IGluIHMuX25hdGl2ZUV2ZW50cyllLl9uYXRpdmVFdmVudHNbYV09ITB9ZS5iaW5kUGVuZGluZ0V2
ZW50cygpLHQuc3R5bGUmJihuPWUuZ2V0RWwoKSxuJiYobi5zZXRBdHRyaWJ1dGUoInN0eWxlIix0
LnN0eWxlKSxuLnN0eWxlLmNzc1RleHQ9dC5zdHlsZSkpLGUuX3Zpc2libGV8fGkuY3NzKGUuZ2V0
RWwoKSwiZGlzcGxheSIsIm5vbmUiKSxlLnNldHRpbmdzLmJvcmRlciYmKHI9ZS5ib3JkZXJCb3go
KSxpLmNzcyhlLmdldEVsKCkseyJib3JkZXItdG9wLXdpZHRoIjpyLnRvcCwiYm9yZGVyLXJpZ2h0
LXdpZHRoIjpyLnJpZ2h0LCJib3JkZXItYm90dG9tLXdpZHRoIjpyLmJvdHRvbSwiYm9yZGVyLWxl
ZnQtd2lkdGgiOnIubGVmdH0pKTt2YXIgbD1lLmdldFJvb3QoKTtsLmNvbnRyb2xJZExvb2t1cHx8
KGwuY29udHJvbElkTG9va3VwPXt9KSxsLmNvbnRyb2xJZExvb2t1cFtlLl9pZF09ZTtmb3IodmFy
IGMgaW4gZS5fYXJpYSllLmFyaWEoYyxlLl9hcmlhW2NdKTtlLmZpcmUoInBvc3RyZW5kZXIiLHt9
LCExKX0sc2Nyb2xsSW50b1ZpZXc6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlLHQpe3ZhciBuLHIs
aT1lO2ZvcihuPXI9MDtpJiZpIT10JiZpLm5vZGVUeXBlOyluKz1pLm9mZnNldExlZnR8fDAscis9
aS5vZmZzZXRUb3B8fDAsaT1pLm9mZnNldFBhcmVudDtyZXR1cm57eDpuLHk6cn19dmFyIG49dGhp
cy5nZXRFbCgpLHI9bi5wYXJlbnROb2RlLGksbyxhLHMsbCxjLHU9dChuLHIpO3JldHVybiBpPXUu
eCxvPXUueSxhPW4ub2Zmc2V0V2lkdGgscz1uLm9mZnNldEhlaWdodCxsPXIuY2xpZW50V2lkdGgs
Yz1yLmNsaWVudEhlaWdodCwiZW5kIj09ZT8oaS09bC1hLG8tPWMtcyk6ImNlbnRlciI9PWUmJihp
LT1sLzItYS8yLG8tPWMvMi1zLzIpLHIuc2Nyb2xsTGVmdD1pLHIuc2Nyb2xsVG9wPW8sdGhpc30s
YmluZFBlbmRpbmdFdmVudHM6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PW8uZ2V0UGFy
ZW50Q3RybChlLnRhcmdldCk7dCYmdC5maXJlKGUudHlwZSxlKX1mdW5jdGlvbiB0KCl7dmFyIGU9
ZC5fbGFzdEhvdmVyQ3RybDtlJiYoZS5maXJlKCJtb3VzZWxlYXZlIix7dGFyZ2V0OmUuZ2V0RWwo
KX0pLGUucGFyZW50cygpLmVhY2goZnVuY3Rpb24oZSl7ZS5maXJlKCJtb3VzZWxlYXZlIix7dGFy
Z2V0OmUuZ2V0RWwoKX0pfSksZC5fbGFzdEhvdmVyQ3RybD1udWxsKX1mdW5jdGlvbiBuKGUpe3Zh
ciB0PW8uZ2V0UGFyZW50Q3RybChlLnRhcmdldCksbj1kLl9sYXN0SG92ZXJDdHJsLHI9MCxpLGEs
cztpZih0IT09bil7aWYoZC5fbGFzdEhvdmVyQ3RybD10LGE9dC5wYXJlbnRzKCkudG9BcnJheSgp
LnJldmVyc2UoKSxhLnB1c2godCksbil7Zm9yKHM9bi5wYXJlbnRzKCkudG9BcnJheSgpLnJldmVy
c2UoKSxzLnB1c2gobikscj0wO3I8cy5sZW5ndGgmJmFbcl09PT1zW3JdO3IrKyk7Zm9yKGk9cy5s
ZW5ndGgtMTtpPj1yO2ktLSluPXNbaV0sbi5maXJlKCJtb3VzZWxlYXZlIix7dGFyZ2V0Om4uZ2V0
RWwoKX0pfWZvcihpPXI7aTxhLmxlbmd0aDtpKyspdD1hW2ldLHQuZmlyZSgibW91c2VlbnRlciIs
e3RhcmdldDp0LmdldEVsKCl9KX19ZnVuY3Rpb24gcihlKXtlLnByZXZlbnREZWZhdWx0KCksIm1v
dXNld2hlZWwiPT1lLnR5cGU/KGUuZGVsdGFZPS0xLzQwKmUud2hlZWxEZWx0YSxlLndoZWVsRGVs
dGFYJiYoZS5kZWx0YVg9LTEvNDAqZS53aGVlbERlbHRhWCkpOihlLmRlbHRhWD0wLGUuZGVsdGFZ
PWUuZGV0YWlsKSxlPW8uZmlyZSgid2hlZWwiLGUpfXZhciBvPXRoaXMsYSxjLHUsZCxmLHA7aWYo
by5fcmVuZGVyZWQ9ITAsZj1vLl9uYXRpdmVFdmVudHMpe2Zvcih1PW8ucGFyZW50cygpLnRvQXJy
YXkoKSx1LnVuc2hpZnQobyksYT0wLGM9dS5sZW5ndGg7IWQmJmM+YTthKyspZD11W2FdLl9ldmVu
dHNSb290O2ZvcihkfHwoZD11W3UubGVuZ3RoLTFdfHxvKSxvLl9ldmVudHNSb290PWQsYz1hLGE9
MDtjPmE7YSsrKXVbYV0uX2V2ZW50c1Jvb3Q9ZDt2YXIgaD1kLl9kZWxlZ2F0ZXM7aHx8KGg9ZC5f
ZGVsZWdhdGVzPXt9KTtmb3IocCBpbiBmKXtpZighZilyZXR1cm4hMTsid2hlZWwiIT09cHx8bD8o
Im1vdXNlZW50ZXIiPT09cHx8Im1vdXNlbGVhdmUiPT09cD9kLl9oYXNNb3VzZUVudGVyfHwoaS5v
bihkLmdldEVsKCksIm1vdXNlbGVhdmUiLHQpLGkub24oZC5nZXRFbCgpLCJtb3VzZW92ZXIiLG4p
LGQuX2hhc01vdXNlRW50ZXI9MSk6aFtwXXx8KGkub24oZC5nZXRFbCgpLHAsZSksaFtwXT0hMCks
ZltwXT0hMSk6cz9pLm9uKG8uZ2V0RWwoKSwibW91c2V3aGVlbCIscik6aS5vbihvLmdldEVsKCks
IkRPTU1vdXNlU2Nyb2xsIixyKX19fSxnZXRSb290OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMs
dCxuPVtdO2U7KXtpZihlLnJvb3RDb250cm9sKXt0PWUucm9vdENvbnRyb2w7YnJlYWt9bi5wdXNo
KGUpLHQ9ZSxlPWUucGFyZW50KCl9dHx8KHQ9dGhpcyk7Zm9yKHZhciByPW4ubGVuZ3RoO3ItLTsp
bltyXS5yb290Q29udHJvbD10O3JldHVybiB0fSxyZWZsb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5yZXBhaW50KCksdGhpc319KTtyZXR1cm4gdX0pLHIoaixbXSxmdW5jdGlvbigpe3ZhciBlPXt9
LHQ7cmV0dXJue2FkZDpmdW5jdGlvbih0LG4pe2VbdC50b0xvd2VyQ2FzZSgpXT1ufSxoYXM6ZnVu
Y3Rpb24odCl7cmV0dXJuISFlW3QudG9Mb3dlckNhc2UoKV19LGNyZWF0ZTpmdW5jdGlvbihuLHIp
e3ZhciBpLG8sYTtpZighdCl7YT10aW55bWNlLnVpO2ZvcihvIGluIGEpZVtvLnRvTG93ZXJDYXNl
KCldPWFbb107dD0hMH1pZigic3RyaW5nIj09dHlwZW9mIG4/KHI9cnx8e30sci50eXBlPW4pOihy
PW4sbj1yLnR5cGUpLG49bi50b0xvd2VyQ2FzZSgpLGk9ZVtuXSwhaSl0aHJvdyBuZXcgRXJyb3Io
IkNvdWxkIG5vdCBmaW5kIGNvbnRyb2wgYnkgdHlwZTogIituKTtyZXR1cm4gaT1uZXcgaShyKSxp
LnR5cGU9bixpfX19KSxyKEssW10sZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7ZnVuY3Rp
b24gdChlKXtyZXR1cm4gZT1lfHxiLGUmJmUuZ2V0QXR0cmlidXRlKCJyb2xlIil9ZnVuY3Rpb24g
bihlKXtmb3IodmFyIG4scj1lfHxiO3I9ci5wYXJlbnROb2RlOylpZihuPXQocikpcmV0dXJuIG59
ZnVuY3Rpb24gcihlKXt2YXIgdD1iO3JldHVybiB0P3QuZ2V0QXR0cmlidXRlKCJhcmlhLSIrZSk6
dm9pZCAwfWZ1bmN0aW9uIGkoZSl7dmFyIHQ9ZS50YWdOYW1lLnRvVXBwZXJDYXNlKCk7cmV0dXJu
IklOUFVUIj09dHx8IlRFWFRBUkVBIj09dH1mdW5jdGlvbiBvKGUpe3JldHVybiBpKGUpJiYhZS5o
aWRkZW4/ITA6L14oYnV0dG9ufG1lbnVpdGVtfGNoZWNrYm94fHRhYnxtZW51aXRlbWNoZWNrYm94
fG9wdGlvbnxncmlkY2VsbCkkLy50ZXN0KHQoZSkpPyEwOiExfWZ1bmN0aW9uIGEoZSl7ZnVuY3Rp
b24gdChlKXtpZigxPT1lLm5vZGVUeXBlJiYibm9uZSIhPWUuc3R5bGUuZGlzcGxheSl7byhlKSYm
bi5wdXNoKGUpO2Zvcih2YXIgcj0wO3I8ZS5jaGlsZE5vZGVzLmxlbmd0aDtyKyspdChlLmNoaWxk
Tm9kZXNbcl0pfX12YXIgbj1bXTtyZXR1cm4gdChlfHx5LmdldEVsKCkpLG59ZnVuY3Rpb24gcyhl
KXt2YXIgdCxuO2U9ZXx8QyxuPWUucGFyZW50cygpLnRvQXJyYXkoKSxuLnVuc2hpZnQoZSk7Zm9y
KHZhciByPTA7cjxuLmxlbmd0aCYmKHQ9bltyXSwhdC5zZXR0aW5ncy5hcmlhUm9vdCk7cisrKTty
ZXR1cm4gdH1mdW5jdGlvbiBsKGUpe3ZhciB0PXMoZSksbj1hKHQuZ2V0RWwoKSk7dC5zZXR0aW5n
cy5hcmlhUmVtZW1iZXImJiJsYXN0QXJpYUluZGV4ImluIHQ/Yyh0Lmxhc3RBcmlhSW5kZXgsbik6
YygwLG4pfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gMD5lP2U9dC5sZW5ndGgtMTplPj10Lmxlbmd0
aCYmKGU9MCksdFtlXSYmdFtlXS5mb2N1cygpLGV9ZnVuY3Rpb24gdShlLHQpe3ZhciBuPS0xLHI9
cygpO3Q9dHx8YShyLmdldEVsKCkpO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV09PT1i
JiYobj1pKTtuKz1lLHIubGFzdEFyaWFJbmRleD1jKG4sdCl9ZnVuY3Rpb24gZCgpe3ZhciBlPW4o
KTsidGFibGlzdCI9PWU/dSgtMSxhKGIucGFyZW50Tm9kZSkpOkMucGFyZW50KCkuc3VibWVudT9n
KCk6dSgtMSl9ZnVuY3Rpb24gZigpe3ZhciBlPXQoKSxpPW4oKTsidGFibGlzdCI9PWk/dSgxLGEo
Yi5wYXJlbnROb2RlKSk6Im1lbnVpdGVtIj09ZSYmIm1lbnUiPT1pJiZyKCJoYXNwb3B1cCIpP3Yo
KTp1KDEpfWZ1bmN0aW9uIHAoKXt1KC0xKX1mdW5jdGlvbiBoKCl7dmFyIGU9dCgpLGk9bigpOyJt
ZW51aXRlbSI9PWUmJiJtZW51YmFyIj09aT92KCk6ImJ1dHRvbiI9PWUmJnIoImhhc3BvcHVwIik/
dih7a2V5OiJkb3duIn0pOnUoMSl9ZnVuY3Rpb24gbShlKXt2YXIgdD1uKCk7aWYoInRhYmxpc3Qi
PT10KXt2YXIgcj1hKEMuZ2V0RWwoImJvZHkiKSlbMF07ciYmci5mb2N1cygpfWVsc2UgdShlLnNo
aWZ0S2V5Py0xOjEpfWZ1bmN0aW9uIGcoKXtDLmZpcmUoImNhbmNlbCIpfWZ1bmN0aW9uIHYoZSl7
ZT1lfHx7fSxDLmZpcmUoImNsaWNrIix7dGFyZ2V0OmIsYXJpYTplfSl9dmFyIHk9ZS5yb290LGIs
QztyZXR1cm4gYj1kb2N1bWVudC5hY3RpdmVFbGVtZW50LEM9eS5nZXRQYXJlbnRDdHJsKGIpLHku
b24oImtleWRvd24iLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0KXtpKGIpfHx0KGUpIT09ITEm
JmUucHJldmVudERlZmF1bHQoKX1pZighZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlzd2l0Y2goZS5r
ZXlDb2RlKXtjYXNlIDM3OnQoZSxkKTticmVhaztjYXNlIDM5OnQoZSxmKTticmVhaztjYXNlIDM4
OnQoZSxwKTticmVhaztjYXNlIDQwOnQoZSxoKTticmVhaztjYXNlIDI3OmcoKTticmVhaztjYXNl
IDE0OmNhc2UgMTM6Y2FzZSAzMjp0KGUsdik7YnJlYWs7Y2FzZSA5Om0oZSkhPT0hMSYmZS5wcmV2
ZW50RGVmYXVsdCgpfX0pLHkub24oImZvY3VzaW4iLGZ1bmN0aW9uKGUpe2I9ZS50YXJnZXQsQz1l
LmNvbnRyb2x9KSx7Zm9jdXNGaXJzdDpsfX19KSxyKEcsWyQsVSxWLGosSyxwLHFdLGZ1bmN0aW9u
KGUsdCxuLHIsaSxvLGEpe3ZhciBzPXt9O3JldHVybiBlLmV4dGVuZCh7bGF5b3V0OiIiLGlubmVy
Q2xhc3M6ImNvbnRhaW5lci1pbm5lciIsaW5pdDpmdW5jdGlvbihlKXt2YXIgbj10aGlzO24uX3N1
cGVyKGUpLGU9bi5zZXR0aW5ncyxuLl9maXhlZD1lLmZpeGVkLG4uX2l0ZW1zPW5ldyB0LG4uaXNS
dGwoKSYmbi5hZGRDbGFzcygicnRsIiksbi5hZGRDbGFzcygiY29udGFpbmVyIiksbi5hZGRDbGFz
cygiY29udGFpbmVyLWJvZHkiLCJib2R5IiksZS5jb250YWluZXJDbHMmJm4uYWRkQ2xhc3MoZS5j
b250YWluZXJDbHMpLG4uX2xheW91dD1yLmNyZWF0ZSgoZS5sYXlvdXR8fG4ubGF5b3V0KSsibGF5
b3V0Iiksbi5zZXR0aW5ncy5pdGVtcyYmbi5hZGQobi5zZXR0aW5ncy5pdGVtcyksbi5faGFzQm9k
eT0hMH0saXRlbXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXRlbXN9LGZpbmQ6ZnVuY3Rpb24o
ZSl7cmV0dXJuIGU9c1tlXT1zW2VdfHxuZXcgbihlKSxlLmZpbmQodGhpcyl9LGFkZDpmdW5jdGlv
bihlKXt2YXIgdD10aGlzO3JldHVybiB0Lml0ZW1zKCkuYWRkKHQuY3JlYXRlKGUpKS5wYXJlbnQo
dCksdH0sZm9jdXM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuLHIsaTtyZXR1cm4gZSYmKHI9dC5r
ZXlib2FyZE5hdnx8dC5wYXJlbnRzKCkuZXEoLTEpWzBdLmtleWJvYXJkTmF2KT92b2lkIHIuZm9j
dXNGaXJzdCh0KTooaT10LmZpbmQoIioiKSx0LnN0YXR1c2JhciYmaS5hZGQodC5zdGF0dXNiYXIu
aXRlbXMoKSksaS5lYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldHRpbmdzLmF1dG9mb2N1cz8o
bj1udWxsLCExKTp2b2lkKGUuY2FuRm9jdXMmJihuPW58fGUpKX0pLG4mJm4uZm9jdXMoKSx0KX0s
cmVwbGFjZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyPXRoaXMuaXRlbXMoKSxpPXIubGVuZ3Ro
O2ktLTspaWYocltpXT09PWUpe3JbaV09dDticmVha31pPj0wJiYobj10LmdldEVsKCksbiYmbi5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pLG49ZS5nZXRFbCgpLG4mJm4ucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChuKSksdC5wYXJlbnQodGhpcyl9LGNyZWF0ZTpmdW5jdGlvbih0KXt2YXIgbj10aGlz
LGksYT1bXTtyZXR1cm4gby5pc0FycmF5KHQpfHwodD1bdF0pLG8uZWFjaCh0LGZ1bmN0aW9uKHQp
e3QmJih0IGluc3RhbmNlb2YgZXx8KCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9e3R5cGU6dH0pLGk9
by5leHRlbmQoe30sbi5zZXR0aW5ncy5kZWZhdWx0cyx0KSx0LnR5cGU9aS50eXBlPWkudHlwZXx8
dC50eXBlfHxuLnNldHRpbmdzLmRlZmF1bHRUeXBlfHwoaS5kZWZhdWx0cz9pLmRlZmF1bHRzLnR5
cGU6bnVsbCksdD1yLmNyZWF0ZShpKSksYS5wdXNoKHQpKX0pLGF9LHJlbmRlck5ldzpmdW5jdGlv
bigpe3ZhciBlPXRoaXM7cmV0dXJuIGUuaXRlbXMoKS5lYWNoKGZ1bmN0aW9uKHQsbil7dmFyIHIs
aTt0LnBhcmVudChlKSx0Ll9yZW5kZXJlZHx8KHI9ZS5nZXRFbCgiYm9keSIpLGk9YS5jcmVhdGVG
cmFnbWVudCh0LnJlbmRlckh0bWwoKSksci5oYXNDaGlsZE5vZGVzKCkmJm48PXIuY2hpbGROb2Rl
cy5sZW5ndGgtMT9yLmluc2VydEJlZm9yZShpLHIuY2hpbGROb2Rlc1tuXSk6ci5hcHBlbmRDaGls
ZChpKSx0LnBvc3RSZW5kZXIoKSl9KSxlLl9sYXlvdXQuYXBwbHlDbGFzc2VzKGUpLGUuX2xhc3RS
ZWN0PW51bGwsZX0sYXBwZW5kOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFkZChlKS5yZW5kZXJO
ZXcoKX0scHJlcGVuZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0Lml0ZW1zKCkuc2V0
KHQuY3JlYXRlKGUpLmNvbmNhdCh0Lml0ZW1zKCkudG9BcnJheSgpKSksdC5yZW5kZXJOZXcoKX0s
aW5zZXJ0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzLGksbyxhO3JldHVybiBlPXIuY3JlYXRl
KGUpLGk9ci5pdGVtcygpLCFuJiZ0PGkubGVuZ3RoLTEmJih0Kz0xKSx0Pj0wJiZ0PGkubGVuZ3Ro
JiYobz1pLnNsaWNlKDAsdCkudG9BcnJheSgpLGE9aS5zbGljZSh0KS50b0FycmF5KCksaS5zZXQo
by5jb25jYXQoZSxhKSkpLHIucmVuZGVyTmV3KCl9LGZyb21KU09OOmZ1bmN0aW9uKGUpe3ZhciB0
PXRoaXM7Zm9yKHZhciBuIGluIGUpdC5maW5kKCIjIituKS52YWx1ZShlW25dKTtyZXR1cm4gdH0s
dG9KU09OOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXt9O3JldHVybiBlLmZpbmQoIioiKS5lYWNo
KGZ1bmN0aW9uKGUpe3ZhciBuPWUubmFtZSgpLHI9ZS52YWx1ZSgpO24mJiJ1bmRlZmluZWQiIT10
eXBlb2YgciYmKHRbbl09cil9KSx0fSxwcmVSZW5kZXI6ZnVuY3Rpb24oKXt9LHJlbmRlckh0bWw6
ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5fbGF5b3V0LG49dGhpcy5zZXR0aW5ncy5yb2xlO3Jl
dHVybiBlLnByZVJlbmRlcigpLHQucHJlUmVuZGVyKGUpLCc8ZGl2IGlkPSInK2UuX2lkKyciIGNs
YXNzPSInK2UuY2xhc3NlcygpKyciJysobj8nIHJvbGU9IicrdGhpcy5zZXR0aW5ncy5yb2xlKyci
JzoiIikrJz48ZGl2IGlkPSInK2UuX2lkKyctYm9keSIgY2xhc3M9IicrZS5jbGFzc2VzKCJib2R5
IikrJyI+JysoZS5zZXR0aW5ncy5odG1sfHwiIikrdC5yZW5kZXJIdG1sKGUpKyI8L2Rpdj48L2Rp
dj4ifSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0O3JldHVybiBlLml0ZW1zKCku
ZXhlYygicG9zdFJlbmRlciIpLGUuX3N1cGVyKCksZS5fbGF5b3V0LnBvc3RSZW5kZXIoZSksZS5f
cmVuZGVyZWQ9ITAsZS5zZXR0aW5ncy5zdHlsZSYmYS5jc3MoZS5nZXRFbCgpLGUuc2V0dGluZ3Mu
c3R5bGUpLGUuc2V0dGluZ3MuYm9yZGVyJiYodD1lLmJvcmRlckJveCgpLGEuY3NzKGUuZ2V0RWwo
KSx7ImJvcmRlci10b3Atd2lkdGgiOnQudG9wLCJib3JkZXItcmlnaHQtd2lkdGgiOnQucmlnaHQs
ImJvcmRlci1ib3R0b20td2lkdGgiOnQuYm90dG9tLCJib3JkZXItbGVmdC13aWR0aCI6dC5sZWZ0
fSkpLGUucGFyZW50KCl8fChlLmtleWJvYXJkTmF2PW5ldyBpKHtyb290OmV9KSksZX0saW5pdExh
eW91dFJlY3Q6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5fc3VwZXIoKTtyZXR1cm4gZS5fbGF5
b3V0LnJlY2FsYyhlKSx0fSxyZWNhbGM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5fbGF5b3V0
UmVjdCxuPWUuX2xhc3RSZWN0O3JldHVybiBuJiZuLnc9PXQudyYmbi5oPT10Lmg/dm9pZCAwOihl
Ll9sYXlvdXQucmVjYWxjKGUpLHQ9ZS5sYXlvdXRSZWN0KCksZS5fbGFzdFJlY3Q9e3g6dC54LHk6
dC55LHc6dC53LGg6dC5ofSwhMCl9LHJlZmxvdzpmdW5jdGlvbigpe3ZhciB0O2lmKHRoaXMudmlz
aWJsZSgpKXtmb3IoZS5yZXBhaW50Q29udHJvbHM9W10sZS5yZXBhaW50Q29udHJvbHMubWFwPXt9
LHRoaXMucmVjYWxjKCksdD1lLnJlcGFpbnRDb250cm9scy5sZW5ndGg7dC0tOyllLnJlcGFpbnRD
b250cm9sc1t0XS5yZXBhaW50KCk7ImZsb3ciIT09dGhpcy5zZXR0aW5ncy5sYXlvdXQmJiJzdGFj
ayIhPT10aGlzLnNldHRpbmdzLmxheW91dCYmdGhpcy5yZXBhaW50KCksZS5yZXBhaW50Q29udHJv
bHM9W119cmV0dXJuIHRoaXN9fSl9KSxyKFksW3FdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt2
YXIgZT1kb2N1bWVudCx0LG4scixpLG8sYSxzLGwsYz1NYXRoLm1heDtyZXR1cm4gdD1lLmRvY3Vt
ZW50RWxlbWVudCxuPWUuYm9keSxyPWModC5zY3JvbGxXaWR0aCxuLnNjcm9sbFdpZHRoKSxpPWMo
dC5jbGllbnRXaWR0aCxuLmNsaWVudFdpZHRoKSxvPWModC5vZmZzZXRXaWR0aCxuLm9mZnNldFdp
ZHRoKSxhPWModC5zY3JvbGxIZWlnaHQsbi5zY3JvbGxIZWlnaHQpLHM9Yyh0LmNsaWVudEhlaWdo
dCxuLmNsaWVudEhlaWdodCksbD1jKHQub2Zmc2V0SGVpZ2h0LG4ub2Zmc2V0SGVpZ2h0KSx7d2lk
dGg6bz5yP2k6cixoZWlnaHQ6bD5hP3M6YX19cmV0dXJuIGZ1bmN0aW9uKG4scil7ZnVuY3Rpb24g
aSgpe3JldHVybiBhLmdldEVsZW1lbnRCeUlkKHIuaGFuZGxlfHxuKX12YXIgbyxhPWRvY3VtZW50
LHMsbCxjLHUsZCxmO3I9cnx8e30sbD1mdW5jdGlvbihuKXt2YXIgbD10KCkscCxoO24ucHJldmVu
dERlZmF1bHQoKSxzPW4uYnV0dG9uLHA9aSgpLGQ9bi5zY3JlZW5YLGY9bi5zY3JlZW5ZLGg9d2lu
ZG93LmdldENvbXB1dGVkU3R5bGU/d2luZG93LmdldENvbXB1dGVkU3R5bGUocCxudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCJjdXJzb3IiKTpwLnJ1bnRpbWVTdHlsZS5jdXJzb3Isbz1hLmNyZWF0ZUVs
ZW1lbnQoImRpdiIpLGUuY3NzKG8se3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDowLHdp
ZHRoOmwud2lkdGgsaGVpZ2h0OmwuaGVpZ2h0LHpJbmRleDoyMTQ3NDgzNjQ3LG9wYWNpdHk6MWUt
NCxiYWNrZ3JvdW5kOiJyZWQiLGN1cnNvcjpofSksYS5ib2R5LmFwcGVuZENoaWxkKG8pLGUub24o
YSwibW91c2Vtb3ZlIix1KSxlLm9uKGEsIm1vdXNldXAiLGMpLHIuc3RhcnQobil9LHU9ZnVuY3Rp
b24oZSl7cmV0dXJuIGUuYnV0dG9uIT09cz9jKGUpOihlLmRlbHRhWD1lLnNjcmVlblgtZCxlLmRl
bHRhWT1lLnNjcmVlblktZixlLnByZXZlbnREZWZhdWx0KCksdm9pZCByLmRyYWcoZSkpfSxjPWZ1
bmN0aW9uKHQpe2Uub2ZmKGEsIm1vdXNlbW92ZSIsdSksZS5vZmYoYSwibW91c2V1cCIsYyksby5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pLHIuc3RvcCYmci5zdG9wKHQpfSx0aGlzLmRlc3Ryb3k9
ZnVuY3Rpb24oKXtlLm9mZihpKCkpfSxlLm9uKGkoKSwibW91c2Vkb3duIixsKX19KSxyKFgsW3Es
WV0sZnVuY3Rpb24oZSx0KXtyZXR1cm57aW5pdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5vbigi
cmVwYWludCIsZS5yZW5kZXJTY3JvbGwpfSxyZW5kZXJTY3JvbGw6ZnVuY3Rpb24oKXtmdW5jdGlv
biBuKCl7ZnVuY3Rpb24gdCh0LGEscyxsLGMsdSl7dmFyIGQsZixwLGgsbSxnLHYseSxiO2lmKGY9
aS5nZXRFbCgic2Nyb2xsIit0KSl7aWYoeT1hLnRvTG93ZXJDYXNlKCksYj1zLnRvTG93ZXJDYXNl
KCksaS5nZXRFbCgiYWJzZW5kIikmJmUuY3NzKGkuZ2V0RWwoImFic2VuZCIpLHksaS5sYXlvdXRS
ZWN0KClbbF0tMSksIWMpcmV0dXJuIHZvaWQgZS5jc3MoZiwiZGlzcGxheSIsIm5vbmUiKTtlLmNz
cyhmLCJkaXNwbGF5IiwiYmxvY2siKSxkPWkuZ2V0RWwoImJvZHkiKSxwPWkuZ2V0RWwoInNjcm9s
bCIrdCsidCIpLGg9ZFsiY2xpZW50IitzXS0yKm8saC09biYmcj9mWyJjbGllbnQiK3VdOjAsbT1k
WyJzY3JvbGwiK3NdLGc9aC9tLHY9e30sdlt5XT1kWyJvZmZzZXQiK2FdK28sdltiXT1oLGUuY3Nz
KGYsdiksdj17fSx2W3ldPWRbInNjcm9sbCIrYV0qZyx2W2JdPWgqZyxlLmNzcyhwLHYpfX12YXIg
bixyLGE7YT1pLmdldEVsKCJib2R5Iiksbj1hLnNjcm9sbFdpZHRoPmEuY2xpZW50V2lkdGgscj1h
LnNjcm9sbEhlaWdodD5hLmNsaWVudEhlaWdodCx0KCJoIiwiTGVmdCIsIldpZHRoIiwiY29udGVu
dFciLG4sIkhlaWdodCIpLHQoInYiLCJUb3AiLCJIZWlnaHQiLCJjb250ZW50SCIsciwiV2lkdGgi
KX1mdW5jdGlvbiByKCl7ZnVuY3Rpb24gbihuLHIsYSxzLGwpe3ZhciBjLHU9aS5faWQrIi1zY3Jv
bGwiK24sZD1pLmNsYXNzUHJlZml4O2kuZ2V0RWwoKS5hcHBlbmRDaGlsZChlLmNyZWF0ZUZyYWdt
ZW50KCc8ZGl2IGlkPSInK3UrJyIgY2xhc3M9IicrZCsic2Nyb2xsYmFyICIrZCsic2Nyb2xsYmFy
LSIrbisnIj48ZGl2IGlkPSInK3UrJ3QiIGNsYXNzPSInK2QrJ3Njcm9sbGJhci10aHVtYiI+PC9k
aXY+PC9kaXY+JykpLGkuZHJhZ2hlbHBlcj1uZXcgdCh1KyJ0Iix7c3RhcnQ6ZnVuY3Rpb24oKXtj
PWkuZ2V0RWwoImJvZHkiKVsic2Nyb2xsIityXSxlLmFkZENsYXNzKGUuZ2V0KHUpLGQrImFjdGl2
ZSIpfSxkcmFnOmZ1bmN0aW9uKGUpe3ZhciB0LHUsZCxmLHA9aS5sYXlvdXRSZWN0KCk7dT1wLmNv
bnRlbnRXPnAuaW5uZXJXLGQ9cC5jb250ZW50SD5wLmlubmVySCxmPWkuZ2V0RWwoImJvZHkiKVsi
Y2xpZW50IithXS0yKm8sZi09dSYmZD9pLmdldEVsKCJzY3JvbGwiK24pWyJjbGllbnQiK2xdOjAs
dD1mL2kuZ2V0RWwoImJvZHkiKVsic2Nyb2xsIithXSxpLmdldEVsKCJib2R5IilbInNjcm9sbCIr
cl09YytlWyJkZWx0YSIrc10vdH0sc3RvcDpmdW5jdGlvbigpe2UucmVtb3ZlQ2xhc3MoZS5nZXQo
dSksZCsiYWN0aXZlIil9fSl9aS5hZGRDbGFzcygic2Nyb2xsIiksbigidiIsIlRvcCIsIkhlaWdo
dCIsIlkiLCJXaWR0aCIpLG4oImgiLCJMZWZ0IiwiV2lkdGgiLCJYIiwiSGVpZ2h0Iil9dmFyIGk9
dGhpcyxvPTI7aS5zZXR0aW5ncy5hdXRvU2Nyb2xsJiYoaS5faGFzU2Nyb2xsfHwoaS5faGFzU2Ny
b2xsPSEwLHIoKSxpLm9uKCJ3aGVlbCIsZnVuY3Rpb24oZSl7dmFyIHQ9aS5nZXRFbCgiYm9keSIp
O3Quc2Nyb2xsTGVmdCs9MTAqKGUuZGVsdGFYfHwwKSx0LnNjcm9sbFRvcCs9MTAqZS5kZWx0YVks
bigpfSksZS5vbihpLmdldEVsKCJib2R5IiksInNjcm9sbCIsbikpLG4oKSl9fX0pLHIoSixbRyxY
XSxmdW5jdGlvbihlLHQpe3JldHVybiBlLmV4dGVuZCh7RGVmYXVsdHM6e2xheW91dDoiZml0Iixj
b250YWluZXJDbHM6InBhbmVsIn0sTWl4aW5zOlt0XSxyZW5kZXJIdG1sOmZ1bmN0aW9uKCl7dmFy
IGU9dGhpcyx0PWUuX2xheW91dCxuPWUuc2V0dGluZ3MuaHRtbDtyZXR1cm4gZS5wcmVSZW5kZXIo
KSx0LnByZVJlbmRlcihlKSwidW5kZWZpbmVkIj09dHlwZW9mIG4/bj0nPGRpdiBpZD0iJytlLl9p
ZCsnLWJvZHkiIGNsYXNzPSInK2UuY2xhc3NlcygiYm9keSIpKyciPicrdC5yZW5kZXJIdG1sKGUp
KyI8L2Rpdj4iOigiZnVuY3Rpb24iPT10eXBlb2YgbiYmKG49bi5jYWxsKGUpKSxlLl9oYXNCb2R5
PSExKSwnPGRpdiBpZD0iJytlLl9pZCsnIiBjbGFzcz0iJytlLmNsYXNzZXMoKSsnIiBoaWRlZm9j
dXM9IjEiIHRhYmluZGV4PSItMSIgcm9sZT0iZ3JvdXAiPicrKGUuX3ByZUJvZHlIdG1sfHwiIikr
bisiPC9kaXY+In19KX0pLHIoUSxbcV0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4scil7dmFy
IGksbyxhLHMsbCxjLHUsZCxmLHA7cmV0dXJuIGY9ZS5nZXRWaWV3UG9ydCgpLG89ZS5nZXRQb3Mo
biksYT1vLngscz1vLnksdC5fZml4ZWQmJihhLT1mLngscy09Zi55KSxpPXQuZ2V0RWwoKSxwPWUu
Z2V0U2l6ZShpKSxsPXAud2lkdGgsYz1wLmhlaWdodCxwPWUuZ2V0U2l6ZShuKSx1PXAud2lkdGgs
ZD1wLmhlaWdodCxyPShyfHwiIikuc3BsaXQoIiIpLCJiIj09PXJbMF0mJihzKz1kKSwiciI9PT1y
WzFdJiYoYSs9dSksImMiPT09clswXSYmKHMrPU1hdGgucm91bmQoZC8yKSksImMiPT09clsxXSYm
KGErPU1hdGgucm91bmQodS8yKSksImIiPT09clszXSYmKHMtPWMpLCJyIj09PXJbNF0mJihhLT1s
KSwiYyI9PT1yWzNdJiYocy09TWF0aC5yb3VuZChjLzIpKSwiYyI9PT1yWzRdJiYoYS09TWF0aC5y
b3VuZChsLzIpKSx7eDphLHk6cyx3OmwsaDpjfX1yZXR1cm57dGVzdE1vdmVSZWw6ZnVuY3Rpb24o
bixyKXtmb3IodmFyIGk9ZS5nZXRWaWV3UG9ydCgpLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIGE9
dCh0aGlzLG4scltvXSk7aWYodGhpcy5fZml4ZWQpe2lmKGEueD4wJiZhLngrYS53PGkudyYmYS55
PjAmJmEueSthLmg8aS5oKXJldHVybiByW29dfWVsc2UgaWYoYS54PmkueCYmYS54K2EudzxpLncr
aS54JiZhLnk+aS55JiZhLnkrYS5oPGkuaCtpLnkpcmV0dXJuIHJbb119cmV0dXJuIHJbMF19LG1v
dmVSZWw6ZnVuY3Rpb24oZSxuKXsic3RyaW5nIiE9dHlwZW9mIG4mJihuPXRoaXMudGVzdE1vdmVS
ZWwoZSxuKSk7Cit2YXIgcj10KHRoaXMsZSxuKTtyZXR1cm4gdGhpcy5tb3ZlVG8oci54LHIueSl9
LG1vdmVCeTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1uLmxheW91dFJlY3QoKTtyZXR1cm4g
bi5tb3ZlVG8oci54K2Usci55K3QpLG59LG1vdmVUbzpmdW5jdGlvbih0LG4pe2Z1bmN0aW9uIHIo
ZSx0LG4pe3JldHVybiAwPmU/MDplK24+dD8oZT10LW4sMD5lPzA6ZSk6ZX12YXIgaT10aGlzO2lm
KGkuc2V0dGluZ3MuY29uc3RyYWluVG9WaWV3cG9ydCl7dmFyIG89ZS5nZXRWaWV3UG9ydCh3aW5k
b3cpLGE9aS5sYXlvdXRSZWN0KCk7dD1yKHQsby53K28ueCxhLncpLG49cihuLG8uaCtvLnksYS5o
KX1yZXR1cm4gaS5fcmVuZGVyZWQ/aS5sYXlvdXRSZWN0KHt4OnQseTpufSkucmVwYWludCgpOihp
LnNldHRpbmdzLng9dCxpLnNldHRpbmdzLnk9biksaS5maXJlKCJtb3ZlIix7eDp0LHk6bn0pLGl9
fX0pLHIoWixbcV0sZnVuY3Rpb24oZSl7cmV0dXJue3Jlc2l6ZVRvQ29udGVudDpmdW5jdGlvbigp
e3RoaXMuX2xheW91dFJlY3QuYXV0b1Jlc2l6ZT0hMCx0aGlzLl9sYXN0UmVjdD1udWxsLHRoaXMu
cmVmbG93KCl9LHJlc2l6ZVRvOmZ1bmN0aW9uKHQsbil7aWYoMT49dHx8MT49bil7dmFyIHI9ZS5n
ZXRXaW5kb3dTaXplKCk7dD0xPj10P3Qqci53OnQsbj0xPj1uP24qci5oOm59cmV0dXJuIHRoaXMu
X2xheW91dFJlY3QuYXV0b1Jlc2l6ZT0hMSx0aGlzLmxheW91dFJlY3Qoe21pblc6dCxtaW5IOm4s
dzp0LGg6bn0pLnJlZmxvdygpfSxyZXNpemVCeTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1u
LmxheW91dFJlY3QoKTtyZXR1cm4gbi5yZXNpemVUbyhyLncrZSxyLmgrdCl9fX0pLHIoZXQsW0os
USxaLHFdLGZ1bmN0aW9uKGUsdCxuLHIpe2Z1bmN0aW9uIGkoZSl7dmFyIHQ7Zm9yKHQ9cy5sZW5n
dGg7dC0tOylzW3RdPT09ZSYmcy5zcGxpY2UodCwxKTtmb3IodD1sLmxlbmd0aDt0LS07KWxbdF09
PT1lJiZsLnNwbGljZSh0LDEpfXZhciBvLGEscz1bXSxsPVtdLGMsdT1lLmV4dGVuZCh7TWl4aW5z
Olt0LG5dLGluaXQ6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3ZhciBlLHQ9dS56SW5kZXh8fDY1
NTM1LG47aWYobC5sZW5ndGgpZm9yKGU9MDtlPGwubGVuZ3RoO2UrKylsW2VdLm1vZGFsJiYodCsr
LG49bFtlXSksbFtlXS5nZXRFbCgpLnN0eWxlLnpJbmRleD10LGxbZV0uekluZGV4PXQsdCsrO3Zh
ciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGQuY2xhc3NQcmVmaXgrIm1vZGFsLWJsb2NrIik7
bj9yLmNzcyhpLCJ6LWluZGV4IixuLnpJbmRleC0xKTppJiYoaS5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGkpLGM9ITEpLHUuY3VycmVudFpJbmRleD10fWZ1bmN0aW9uIG4oZSx0KXtmb3IoO2U7KXtp
ZihlPT10KXJldHVybiEwO2U9ZS5wYXJlbnQoKX19ZnVuY3Rpb24gaShlKXtmdW5jdGlvbiB0KHQs
bil7Zm9yKHZhciByLGk9MDtpPHMubGVuZ3RoO2krKylpZihzW2ldIT1lKWZvcihyPXNbaV0ucGFy
ZW50KCk7ciYmKHI9ci5wYXJlbnQoKSk7KXI9PWUmJnNbaV0uZml4ZWQodCkubW92ZUJ5KDAsbiku
cmVwYWludCgpfXZhciBuPXIuZ2V0Vmlld1BvcnQoKS55O2Uuc2V0dGluZ3MuYXV0b2ZpeCYmKGUu
X2ZpeGVkP2UuX2F1dG9GaXhZPm4mJihlLmZpeGVkKCExKS5sYXlvdXRSZWN0KHt5OmUuX2F1dG9G
aXhZfSkucmVwYWludCgpLHQoITEsZS5fYXV0b0ZpeFktbikpOihlLl9hdXRvRml4WT1lLmxheW91
dFJlY3QoKS55LGUuX2F1dG9GaXhZPG4mJihlLmZpeGVkKCEwKS5sYXlvdXRSZWN0KHt5OjB9KS5y
ZXBhaW50KCksdCghMCxuLWUuX2F1dG9GaXhZKSkpKX12YXIgZD10aGlzO2QuX3N1cGVyKGUpLGQu
X2V2ZW50c1Jvb3Q9ZCxkLmFkZENsYXNzKCJmbG9hdHBhbmVsIiksZS5hdXRvaGlkZSYmKG98fChv
PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1zLmxlbmd0aDt0LS07KXt2YXIgcj1zW3RdLGk9ci5nZXRQ
YXJlbnRDdHJsKGUudGFyZ2V0KTtpZihyLnNldHRpbmdzLmF1dG9oaWRlKXtpZihpJiYobihpLHIp
fHxyLnBhcmVudCgpPT09aSkpY29udGludWU7ZT1yLmZpcmUoImF1dG9oaWRlIix7dGFyZ2V0OmUu
dGFyZ2V0fSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8ci5oaWRlKCl9fX0sci5vbihkb2N1bWVu
dCwiY2xpY2siLG8pKSxzLnB1c2goZCkpLGUuYXV0b2ZpeCYmKGF8fChhPWZ1bmN0aW9uKCl7dmFy
IGU7Zm9yKGU9cy5sZW5ndGg7ZS0tOylpKHNbZV0pfSxyLm9uKHdpbmRvdywic2Nyb2xsIixhKSks
ZC5vbigibW92ZSIsZnVuY3Rpb24oKXtpKHRoaXMpfSkpLGQub24oInBvc3RyZW5kZXIgc2hvdyIs
ZnVuY3Rpb24oZSl7aWYoZS5jb250cm9sPT1kKXt2YXIgbixpPWQuY2xhc3NQcmVmaXg7ZC5tb2Rh
bCYmIWMmJihuPXIuY3JlYXRlRnJhZ21lbnQoJzxkaXYgaWQ9IicraSsnbW9kYWwtYmxvY2siIGNs
YXNzPSInK2krInJlc2V0ICIraSsnZmFkZSI+PC9kaXY+Jyksbj1uLmZpcnN0Q2hpbGQsZC5nZXRD
b250YWluZXJFbG0oKS5hcHBlbmRDaGlsZChuKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5hZGRD
bGFzcyhuLGkrImluIiksci5hZGRDbGFzcyhkLmdldEVsKCksaSsiaW4iKX0sMCksYz0hMCksbC5w
dXNoKGQpLHQoKX19KSxkLm9uKCJjbG9zZSBoaWRlIixmdW5jdGlvbihlKXtpZihlLmNvbnRyb2w9
PWQpe2Zvcih2YXIgbj1sLmxlbmd0aDtuLS07KWxbbl09PT1kJiZsLnNwbGljZShuLDEpO3QoKX19
KSxkLm9uKCJzaG93IixmdW5jdGlvbigpe2QucGFyZW50cygpLmVhY2goZnVuY3Rpb24oZSl7cmV0
dXJuIGUuX2ZpeGVkPyhkLmZpeGVkKCEwKSwhMSk6dm9pZCAwfSl9KSxlLnBvcG92ZXImJihkLl9w
cmVCb2R5SHRtbD0nPGRpdiBjbGFzcz0iJytkLmNsYXNzUHJlZml4KydhcnJvdyI+PC9kaXY+Jyxk
LmFkZENsYXNzKCJwb3BvdmVyIikuYWRkQ2xhc3MoImJvdHRvbSIpLmFkZENsYXNzKGQuaXNSdGwo
KT8iZW5kIjoic3RhcnQiKSl9LGZpeGVkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodC5fZml4
ZWQhPWUpe2lmKHQuX3JlbmRlcmVkKXt2YXIgbj1yLmdldFZpZXdQb3J0KCk7ZT90LmxheW91dFJl
Y3QoKS55LT1uLnk6dC5sYXlvdXRSZWN0KCkueSs9bi55fXQudG9nZ2xlQ2xhc3MoImZpeGVkIixl
KSx0Ll9maXhlZD1lfXJldHVybiB0fSxzaG93OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0LG49ZS5f
c3VwZXIoKTtmb3IodD1zLmxlbmd0aDt0LS0mJnNbdF0hPT1lOyk7cmV0dXJuLTE9PT10JiZzLnB1
c2goZSksbn0saGlkZTpmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpLHRoaXMuX3N1cGVyKCl9LGhp
ZGVBbGw6ZnVuY3Rpb24oKXt1LmhpZGVBbGwoKX0sY2xvc2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlz
O3JldHVybiBlLmZpcmUoImNsb3NlIiksZS5yZW1vdmUoKX0scmVtb3ZlOmZ1bmN0aW9uKCl7aSh0
aGlzKSx0aGlzLl9zdXBlcigpfSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1
cm4gZS5zZXR0aW5ncy5ib2R5Um9sZSYmdGhpcy5nZXRFbCgiYm9keSIpLnNldEF0dHJpYnV0ZSgi
cm9sZSIsZS5zZXR0aW5ncy5ib2R5Um9sZSksZS5fc3VwZXIoKX19KTtyZXR1cm4gdS5oaWRlQWxs
PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXMubGVuZ3RoO2UtLTspe3ZhciB0PXNbZV07dCYmdC5zZXR0
aW5ncy5hdXRvaGlkZSYmKHQuaGlkZSgpLHMuc3BsaWNlKGUsMSkpfX0sdX0pLHIodHQsW2V0LEos
cSxZXSxmdW5jdGlvbihlLHQsbixyKXt2YXIgaT1lLmV4dGVuZCh7bW9kYWw6ITAsRGVmYXVsdHM6
e2JvcmRlcjoxLGxheW91dDoiZmxleCIsY29udGFpbmVyQ2xzOiJwYW5lbCIscm9sZToiZGlhbG9n
IixjYWxsYmFja3M6e3N1Ym1pdDpmdW5jdGlvbigpe3RoaXMuZmlyZSgic3VibWl0Iix7ZGF0YTp0
aGlzLnRvSlNPTigpfSl9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpfX19LGluaXQ6ZnVu
Y3Rpb24oZSl7dmFyIG49dGhpcztuLl9zdXBlcihlKSxuLmlzUnRsKCkmJm4uYWRkQ2xhc3MoInJ0
bCIpLG4uYWRkQ2xhc3MoIndpbmRvdyIpLG4uX2ZpeGVkPSEwLGUuYnV0dG9ucyYmKG4uc3RhdHVz
YmFyPW5ldyB0KHtsYXlvdXQ6ImZsZXgiLGJvcmRlcjoiMSAwIDAgMCIsc3BhY2luZzozLHBhZGRp
bmc6MTAsYWxpZ246ImNlbnRlciIscGFjazpuLmlzUnRsKCk/InN0YXJ0IjoiZW5kIixkZWZhdWx0
czp7dHlwZToiYnV0dG9uIn0saXRlbXM6ZS5idXR0b25zfSksbi5zdGF0dXNiYXIuYWRkQ2xhc3Mo
ImZvb3QiKSxuLnN0YXR1c2Jhci5wYXJlbnQobikpLG4ub24oImNsaWNrIixmdW5jdGlvbihlKXst
MSE9ZS50YXJnZXQuY2xhc3NOYW1lLmluZGV4T2Yobi5jbGFzc1ByZWZpeCsiY2xvc2UiKSYmbi5j
bG9zZSgpfSksbi5vbigiY2FuY2VsIixmdW5jdGlvbigpe24uY2xvc2UoKX0pLG4uYXJpYSgiZGVz
Y3JpYmVkYnkiLG4uZGVzY3JpYmVkQnl8fG4uX2lkKyItbm9uZSIpLG4uYXJpYSgibGFiZWwiLGUu
dGl0bGUpLG4uX2Z1bGxzY3JlZW49ITF9LHJlY2FsYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1l
LnN0YXR1c2JhcixyLGksbyxhO2UuX2Z1bGxzY3JlZW4mJihlLmxheW91dFJlY3Qobi5nZXRXaW5k
b3dTaXplKCkpLGUubGF5b3V0UmVjdCgpLmNvbnRlbnRIPWUubGF5b3V0UmVjdCgpLmlubmVySCks
ZS5fc3VwZXIoKSxyPWUubGF5b3V0UmVjdCgpLGUuc2V0dGluZ3MudGl0bGUmJiFlLl9mdWxsc2Ny
ZWVuJiYoaT1yLmhlYWRlclcsaT5yLncmJihvPXIueC1NYXRoLm1heCgwLGkvMiksZS5sYXlvdXRS
ZWN0KHt3OmkseDpvfSksYT0hMCkpLHQmJih0LmxheW91dFJlY3Qoe3c6ZS5sYXlvdXRSZWN0KCku
aW5uZXJXfSkucmVjYWxjKCksaT10LmxheW91dFJlY3QoKS5taW5XK3IuZGVsdGFXLGk+ci53JiYo
bz1yLngtTWF0aC5tYXgoMCxpLXIudyksZS5sYXlvdXRSZWN0KHt3OmkseDpvfSksYT0hMCkpLGEm
JmUucmVjYWxjKCl9LGluaXRMYXlvdXRSZWN0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuX3N1
cGVyKCkscj0wLGk7aWYoZS5zZXR0aW5ncy50aXRsZSYmIWUuX2Z1bGxzY3JlZW4pe2k9ZS5nZXRF
bCgiaGVhZCIpO3ZhciBvPW4uZ2V0U2l6ZShpKTt0LmhlYWRlclc9by53aWR0aCx0LmhlYWRlckg9
by5oZWlnaHQscis9dC5oZWFkZXJIfWUuc3RhdHVzYmFyJiYocis9ZS5zdGF0dXNiYXIubGF5b3V0
UmVjdCgpLmgpLHQuZGVsdGFIKz1yLHQubWluSCs9cix0LmgrPXI7dmFyIGE9bi5nZXRXaW5kb3dT
aXplKCk7cmV0dXJuIHQueD1NYXRoLm1heCgwLGEudy8yLXQudy8yKSx0Lnk9TWF0aC5tYXgoMCxh
LmgvMi10LmgvMiksdH0scmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9sYXlv
dXQsbj1lLl9pZCxyPWUuY2xhc3NQcmVmaXgsaT1lLnNldHRpbmdzLG89IiIsYT0iIixzPWkuaHRt
bDtyZXR1cm4gZS5wcmVSZW5kZXIoKSx0LnByZVJlbmRlcihlKSxpLnRpdGxlJiYobz0nPGRpdiBp
ZD0iJytuKyctaGVhZCIgY2xhc3M9Iicrcisnd2luZG93LWhlYWQiPjxkaXYgaWQ9IicrbisnLXRp
dGxlIiBjbGFzcz0iJytyKyd0aXRsZSI+JytlLmVuY29kZShpLnRpdGxlKSsnPC9kaXY+PGJ1dHRv
biB0eXBlPSJidXR0b24iIGNsYXNzPSInK3IrJ2Nsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHhk
NzwvYnV0dG9uPjxkaXYgaWQ9IicrbisnLWRyYWdoIiBjbGFzcz0iJytyKydkcmFnaCI+PC9kaXY+
PC9kaXY+JyksaS51cmwmJihzPSc8aWZyYW1lIHNyYz0iJytpLnVybCsnIiB0YWJpbmRleD0iLTEi
PjwvaWZyYW1lPicpLCJ1bmRlZmluZWQiPT10eXBlb2YgcyYmKHM9dC5yZW5kZXJIdG1sKGUpKSxl
LnN0YXR1c2JhciYmKGE9ZS5zdGF0dXNiYXIucmVuZGVySHRtbCgpKSwnPGRpdiBpZD0iJytuKyci
IGNsYXNzPSInK2UuY2xhc3NlcygpKyciIGhpZGVmb2N1cz0iMSI+PGRpdiBjbGFzcz0iJytlLmNs
YXNzUHJlZml4KydyZXNldCIgcm9sZT0iYXBwbGljYXRpb24iPicrbysnPGRpdiBpZD0iJytuKyct
Ym9keSIgY2xhc3M9IicrZS5jbGFzc2VzKCJib2R5IikrJyI+JytzKyI8L2Rpdj4iK2ErIjwvZGl2
PjwvZGl2PiJ9LGZ1bGxzY3JlZW46ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxyPWRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudCxpLG89dC5jbGFzc1ByZWZpeCxhO2lmKGUhPXQuX2Z1bGxzY3JlZW4paWYo
bi5vbih3aW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXt2YXIgZTtpZih0Ll9mdWxsc2NyZWVuKWlm
KGkpdC5fdGltZXJ8fCh0Ll90aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU9bi5nZXRX
aW5kb3dTaXplKCk7dC5tb3ZlVG8oMCwwKS5yZXNpemVUbyhlLncsZS5oKSx0Ll90aW1lcj0wfSw1
MCkpO2Vsc2V7ZT0obmV3IERhdGUpLmdldFRpbWUoKTt2YXIgcj1uLmdldFdpbmRvd1NpemUoKTt0
Lm1vdmVUbygwLDApLnJlc2l6ZVRvKHIudyxyLmgpLChuZXcgRGF0ZSkuZ2V0VGltZSgpLWU+NTAm
JihpPSEwKX19KSxhPXQubGF5b3V0UmVjdCgpLHQuX2Z1bGxzY3JlZW49ZSxlKXt0Ll9pbml0aWFs
PXt4OmEueCx5OmEueSx3OmEudyxoOmEuaH0sdC5fYm9yZGVyQm94PXQucGFyc2VCb3goIjAiKSx0
LmdldEVsKCJoZWFkIikuc3R5bGUuZGlzcGxheT0ibm9uZSIsYS5kZWx0YUgtPWEuaGVhZGVySCsy
LG4uYWRkQ2xhc3MocixvKyJmdWxsc2NyZWVuIiksbi5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LG8r
ImZ1bGxzY3JlZW4iKSx0LmFkZENsYXNzKCJmdWxsc2NyZWVuIik7dmFyIHM9bi5nZXRXaW5kb3dT
aXplKCk7dC5tb3ZlVG8oMCwwKS5yZXNpemVUbyhzLncscy5oKX1lbHNlIHQuX2JvcmRlckJveD10
LnBhcnNlQm94KHQuc2V0dGluZ3MuYm9yZGVyKSx0LmdldEVsKCJoZWFkIikuc3R5bGUuZGlzcGxh
eT0iIixhLmRlbHRhSCs9YS5oZWFkZXJILG4ucmVtb3ZlQ2xhc3MocixvKyJmdWxsc2NyZWVuIiks
bi5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LG8rImZ1bGxzY3JlZW4iKSx0LnJlbW92ZUNsYXNz
KCJmdWxsc2NyZWVuIiksdC5tb3ZlVG8odC5faW5pdGlhbC54LHQuX2luaXRpYWwueSkucmVzaXpl
VG8odC5faW5pdGlhbC53LHQuX2luaXRpYWwuaCk7cmV0dXJuIHQucmVmbG93KCl9LHBvc3RSZW5k
ZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ7c2V0VGltZW91dChmdW5jdGlvbigpe2UuYWRkQ2xh
c3MoImluIil9LDApLGUuX3N1cGVyKCksZS5zdGF0dXNiYXImJmUuc3RhdHVzYmFyLnBvc3RSZW5k
ZXIoKSxlLmZvY3VzKCksdGhpcy5kcmFnSGVscGVyPW5ldyByKGUuX2lkKyItZHJhZ2giLHtzdGFy
dDpmdW5jdGlvbigpe3Q9e3g6ZS5sYXlvdXRSZWN0KCkueCx5OmUubGF5b3V0UmVjdCgpLnl9fSxk
cmFnOmZ1bmN0aW9uKG4pe2UubW92ZVRvKHQueCtuLmRlbHRhWCx0Lnkrbi5kZWx0YVkpfX0pLGUu
b24oInN1Ym1pdCIsZnVuY3Rpb24odCl7dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8ZS5jbG9zZSgp
fSl9LHN1Ym1pdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpcmUoInN1Ym1pdCIse2RhdGE6dGhp
cy50b0pTT04oKX0pfSxyZW1vdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5jbGFzc1ByZWZp
eDtlLmRyYWdIZWxwZXIuZGVzdHJveSgpLGUuX3N1cGVyKCksZS5zdGF0dXNiYXImJnRoaXMuc3Rh
dHVzYmFyLnJlbW92ZSgpLGUuX2Z1bGxzY3JlZW4mJihuLnJlbW92ZUNsYXNzKGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudCx0KyJmdWxsc2NyZWVuIiksbi5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5
LHQrImZ1bGxzY3JlZW4iKSl9LGdldENvbnRlbnRXaW5kb3c6ZnVuY3Rpb24oKXt2YXIgZT10aGlz
LmdldEVsKCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdO3JldHVybiBlP2UuY29u
dGVudFdpbmRvdzpudWxsfX0pO3JldHVybiBpfSkscihudCxbdHRdLGZ1bmN0aW9uKGUpe3ZhciB0
PWUuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKGUpe2U9e2JvcmRlcjoxLHBhZGRpbmc6MjAsbGF5b3V0
OiJmbGV4IixwYWNrOiJjZW50ZXIiLGFsaWduOiJjZW50ZXIiLGNvbnRhaW5lckNsczoicGFuZWwi
LGF1dG9TY3JvbGw6ITAsYnV0dG9uczp7dHlwZToiYnV0dG9uIix0ZXh0OiJPayIsYWN0aW9uOiJv
ayJ9LGl0ZW1zOnt0eXBlOiJsYWJlbCIsbXVsdGlsaW5lOiEwLG1heFdpZHRoOjUwMCxtYXhIZWln
aHQ6MjAwfX0sdGhpcy5fc3VwZXIoZSl9LFN0YXRpY3M6e09LOjEsT0tfQ0FOQ0VMOjIsWUVTX05P
OjMsWUVTX05PX0NBTkNFTDo0LG1zZ0JveDpmdW5jdGlvbihuKXt2YXIgcixpPW4uY2FsbGJhY2t8
fGZ1bmN0aW9uKCl7fTtzd2l0Y2gobi5idXR0b25zKXtjYXNlIHQuT0tfQ0FOQ0VMOnI9W3t0eXBl
OiJidXR0b24iLHRleHQ6Ik9rIixzdWJ0eXBlOiJwcmltYXJ5IixvbkNsaWNrOmZ1bmN0aW9uKGUp
e2UuY29udHJvbC5wYXJlbnRzKClbMV0uY2xvc2UoKSxpKCEwKX19LHt0eXBlOiJidXR0b24iLHRl
eHQ6IkNhbmNlbCIsb25DbGljazpmdW5jdGlvbihlKXtlLmNvbnRyb2wucGFyZW50cygpWzFdLmNs
b3NlKCksaSghMSl9fV07YnJlYWs7Y2FzZSB0LllFU19OTzpyPVt7dHlwZToiYnV0dG9uIix0ZXh0
OiJPayIsc3VidHlwZToicHJpbWFyeSIsb25DbGljazpmdW5jdGlvbihlKXtlLmNvbnRyb2wucGFy
ZW50cygpWzFdLmNsb3NlKCksaSghMCl9fV07YnJlYWs7Y2FzZSB0LllFU19OT19DQU5DRUw6cj1b
e3R5cGU6ImJ1dHRvbiIsdGV4dDoiT2siLHN1YnR5cGU6InByaW1hcnkiLG9uQ2xpY2s6ZnVuY3Rp
b24oZSl7ZS5jb250cm9sLnBhcmVudHMoKVsxXS5jbG9zZSgpfX1dO2JyZWFrO2RlZmF1bHQ6cj1b
e3R5cGU6ImJ1dHRvbiIsdGV4dDoiT2siLHN1YnR5cGU6InByaW1hcnkiLG9uQ2xpY2s6ZnVuY3Rp
b24oZSl7ZS5jb250cm9sLnBhcmVudHMoKVsxXS5jbG9zZSgpLGkoITApfX1dfXJldHVybiBuZXcg
ZSh7cGFkZGluZzoyMCx4Om4ueCx5Om4ueSxtaW5XaWR0aDozMDAsbWluSGVpZ2h0OjEwMCxsYXlv
dXQ6ImZsZXgiLHBhY2s6ImNlbnRlciIsYWxpZ246ImNlbnRlciIsYnV0dG9uczpyLHRpdGxlOm4u
dGl0bGUscm9sZToiYWxlcnRkaWFsb2ciLGl0ZW1zOnt0eXBlOiJsYWJlbCIsbXVsdGlsaW5lOiEw
LG1heFdpZHRoOjUwMCxtYXhIZWlnaHQ6MjAwLHRleHQ6bi50ZXh0fSxvblBvc3RSZW5kZXI6ZnVu
Y3Rpb24oKXt0aGlzLmFyaWEoImRlc2NyaWJlZGJ5Iix0aGlzLml0ZW1zKClbMF0uX2lkKX0sb25D
bG9zZTpuLm9uQ2xvc2Usb25DYW5jZWw6ZnVuY3Rpb24oKXtpKCExKX19KS5yZW5kZXJUbyhkb2N1
bWVudC5ib2R5KS5yZWZsb3coKX0sYWxlcnQ6ZnVuY3Rpb24oZSxuKXtyZXR1cm4ic3RyaW5nIj09
dHlwZW9mIGUmJihlPXt0ZXh0OmV9KSxlLmNhbGxiYWNrPW4sdC5tc2dCb3goZSl9LGNvbmZpcm06
ZnVuY3Rpb24oZSxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXt0ZXh0OmV9KSxlLmNh
bGxiYWNrPW4sZS5idXR0b25zPXQuT0tfQ0FOQ0VMLHQubXNnQm94KGUpfX19KTtyZXR1cm4gdH0p
LHIocnQsW3R0LG50XSxmdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihuKXtmdW5jdGlvbiBy
KCl7cmV0dXJuIG8ubGVuZ3RoP29bby5sZW5ndGgtMV06dm9pZCAwfXZhciBpPXRoaXMsbz1bXTtp
LndpbmRvd3M9byxpLm9wZW49ZnVuY3Rpb24odCxyKXt2YXIgaTtyZXR1cm4gbi5lZGl0b3JNYW5h
Z2VyLmFjdGl2ZUVkaXRvcj1uLHQudGl0bGU9dC50aXRsZXx8IiAiLHQudXJsPXQudXJsfHx0LmZp
bGUsdC51cmwmJih0LndpZHRoPXBhcnNlSW50KHQud2lkdGh8fDMyMCwxMCksdC5oZWlnaHQ9cGFy
c2VJbnQodC5oZWlnaHR8fDI0MCwxMCkpLHQuYm9keSYmKHQuaXRlbXM9e2RlZmF1bHRzOnQuZGVm
YXVsdHMsdHlwZTp0LmJvZHlUeXBlfHwiZm9ybSIsaXRlbXM6dC5ib2R5fSksdC51cmx8fHQuYnV0
dG9uc3x8KHQuYnV0dG9ucz1be3RleHQ6Ik9rIixzdWJ0eXBlOiJwcmltYXJ5IixvbmNsaWNrOmZ1
bmN0aW9uKCl7aS5maW5kKCJmb3JtIilbMF0uc3VibWl0KCl9fSx7dGV4dDoiQ2FuY2VsIixvbmNs
aWNrOmZ1bmN0aW9uKCl7aS5jbG9zZSgpfX1dKSxpPW5ldyBlKHQpLG8ucHVzaChpKSxpLm9uKCJj
bG9zZSIsZnVuY3Rpb24oKXtmb3IodmFyIGU9by5sZW5ndGg7ZS0tOylvW2VdPT09aSYmby5zcGxp
Y2UoZSwxKTtuLmZvY3VzKCl9KSx0LmRhdGEmJmkub24oInBvc3RSZW5kZXIiLGZ1bmN0aW9uKCl7
dGhpcy5maW5kKCIqIikuZWFjaChmdW5jdGlvbihlKXt2YXIgbj1lLm5hbWUoKTtuIGluIHQuZGF0
YSYmZS52YWx1ZSh0LmRhdGFbbl0pfSl9KSxpLmZlYXR1cmVzPXR8fHt9LGkucGFyYW1zPXJ8fHt9
LG4ubm9kZUNoYW5nZWQoKSxpLnJlbmRlclRvKCkucmVmbG93KCl9LGkuYWxlcnQ9ZnVuY3Rpb24o
ZSxyLGkpe3QuYWxlcnQoZSxmdW5jdGlvbigpe3I/ci5jYWxsKGl8fHRoaXMpOm4uZm9jdXMoKX0p
fSxpLmNvbmZpcm09ZnVuY3Rpb24oZSxuLHIpe3QuY29uZmlybShlLGZ1bmN0aW9uKGUpe24uY2Fs
bChyfHx0aGlzLGUpfSl9LGkuY2xvc2U9ZnVuY3Rpb24oKXtyKCkmJnIoKS5jbG9zZSgpfSxpLmdl
dFBhcmFtcz1mdW5jdGlvbigpe3JldHVybiByKCk/cigpLnBhcmFtczpudWxsfSxpLnNldFBhcmFt
cz1mdW5jdGlvbihlKXtyKCkmJihyKCkucGFyYW1zPWUpfSxpLmdldFdpbmRvd3M9ZnVuY3Rpb24o
KXtyZXR1cm4gb319fSkscihpdCxbUixCLHgsbSxnLHBdLGZ1bmN0aW9uKGUsdCxuLHIsaSxvKXty
ZXR1cm4gZnVuY3Rpb24oYSl7ZnVuY3Rpb24gcyhlLHQpe3RyeXthLmdldERvYygpLmV4ZWNDb21t
YW5kKGUsITEsdCl9Y2F0Y2gobil7fX1mdW5jdGlvbiBsKCl7dmFyIGU9YS5nZXREb2MoKS5kb2N1
bWVudE1vZGU7cmV0dXJuIGU/ZTo2fWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUuaXNEZWZhdWx0UHJl
dmVudGVkKCl9ZnVuY3Rpb24gdSgpe2Z1bmN0aW9uIHQoZSl7dmFyIHQ9bmV3IGkoZnVuY3Rpb24o
KXt9KTtvLmVhY2goYS5nZXRCb2R5KCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxmdW5jdGlv
bihlKXsiU1BBTiI9PWUudGFnTmFtZSYmZS5zZXRBdHRyaWJ1dGUoIm1jZS1kYXRhLW1hcmtlZCIs
MSksIWUuaGFzQXR0cmlidXRlKCJkYXRhLW1jZS1zdHlsZSIpJiZlLmhhc0F0dHJpYnV0ZSgic3R5
bGUiKSYmYS5kb20uc2V0QXR0cmliKGUsInN0eWxlIixlLmdldEF0dHJpYnV0ZSgic3R5bGUiKSl9
KSx0Lm9ic2VydmUoYS5nZXREb2MoKSx7Y2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITAsc3VidHJl
ZTohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJzdHlsZSJdfSksYS5nZXREb2MoKS5leGVjQ29tbWFuZChl
PyJGb3J3YXJkRGVsZXRlIjoiRGVsZXRlIiwhMSxudWxsKTt2YXIgbj1hLnNlbGVjdGlvbi5nZXRS
bmcoKSxyPW4uc3RhcnRDb250YWluZXIucGFyZW50Tm9kZTtvLmVhY2godC50YWtlUmVjb3Jkcygp
LGZ1bmN0aW9uKGUpe2lmKHEuaXNDaGlsZE9mKGUudGFyZ2V0LGEuZ2V0Qm9keSgpKSl7aWYoInN0
eWxlIj09ZS5hdHRyaWJ1dGVOYW1lKXt2YXIgdD1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEt
bWNlLXN0eWxlIik7dD9lLnRhcmdldC5zZXRBdHRyaWJ1dGUoInN0eWxlIix0KTplLnRhcmdldC5y
ZW1vdmVBdHRyaWJ1dGUoInN0eWxlIil9by5lYWNoKGUuYWRkZWROb2RlcyxmdW5jdGlvbihlKXtp
ZigiU1BBTiI9PWUubm9kZU5hbWUmJiFlLmdldEF0dHJpYnV0ZSgibWNlLWRhdGEtbWFya2VkIikp
e3ZhciB0LGk7ZT09ciYmKHQ9bi5zdGFydE9mZnNldCxpPWUuZmlyc3RDaGlsZCkscS5yZW1vdmUo
ZSwhMCksaSYmKG4uc2V0U3RhcnQoaSx0KSxuLnNldEVuZChpLHQpLGEuc2VsZWN0aW9uLnNldFJu
ZyhuKSl9fSl9fSksdC5kaXNjb25uZWN0KCksby5lYWNoKGEuZG9tLnNlbGVjdCgic3BhblttY2Ut
ZGF0YS1tYXJrZWRdIiksZnVuY3Rpb24oZSl7ZS5yZW1vdmVBdHRyaWJ1dGUoIm1jZS1kYXRhLW1h
cmtlZCIpfSl9dmFyIG49YS5nZXREb2MoKSxyPSJkYXRhOnRleHQvbWNlLWludGVybmFsLCIsaT13
aW5kb3cuTXV0YXRpb25PYnNlcnZlcixzLGw7aXx8KHM9ITAsaT1mdW5jdGlvbigpe2Z1bmN0aW9u
IGUoZSl7dmFyIHQ9ZS5yZWxhdGVkTm9kZXx8ZS50YXJnZXQ7bi5wdXNoKHt0YXJnZXQ6dCxhZGRl
ZE5vZGVzOlt0XX0pfWZ1bmN0aW9uIHQoZSl7dmFyIHQ9ZS5yZWxhdGVkTm9kZXx8ZS50YXJnZXQ7
bi5wdXNoKHt0YXJnZXQ6dCxhdHRyaWJ1dGVOYW1lOmUuYXR0ck5hbWV9KX12YXIgbj1bXSxyO3Ro
aXMub2JzZXJ2ZT1mdW5jdGlvbihuKXtyPW4sci5hZGRFdmVudExpc3RlbmVyKCJET01TdWJ0cmVl
TW9kaWZpZWQiLGUsITEpLHIuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkSW50b0Rv
Y3VtZW50IixlLCExKSxyLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsZSwhMSks
ci5hZGRFdmVudExpc3RlbmVyKCJET01BdHRyTW9kaWZpZWQiLHQsITEpfSx0aGlzLmRpc2Nvbm5l
Y3Q9ZnVuY3Rpb24oKXtyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTVN1YnRyZWVNb2RpZmllZCIs
ZSwhMSksci5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQi
LGUsITEpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkIixlLCExKSxyLnJl
bW92ZUV2ZW50TGlzdGVuZXIoIkRPTUF0dHJNb2RpZmllZCIsdCwhMSl9LHRoaXMudGFrZVJlY29y
ZHM9ZnVuY3Rpb24oKXtyZXR1cm4gbn19KSxhLm9uKCJrZXlkb3duIixmdW5jdGlvbihuKXt2YXIg
cj1uLmtleUNvZGU9PVUsaT1lLm1ldGFLZXlQcmVzc2VkKG4pO2lmKCFjKG4pJiYocnx8bi5rZXlD
b2RlPT1WKSl7dmFyIG89YS5zZWxlY3Rpb24uZ2V0Um5nKCkscz1vLnN0YXJ0Q29udGFpbmVyLGw9
by5zdGFydE9mZnNldDtpZighaSYmby5jb2xsYXBzZWQmJjM9PXMubm9kZVR5cGUmJihyP2w8cy5k
YXRhLmxlbmd0aDpsPjApKXJldHVybjtuLnByZXZlbnREZWZhdWx0KCksaSYmYS5zZWxlY3Rpb24u
Z2V0U2VsKCkubW9kaWZ5KCJleHRlbmQiLHI/ImZvcndhcmQiOiJiYWNrd2FyZCIsIndvcmQiKSx0
KHIpfX0pLGEub24oImtleXByZXNzIixmdW5jdGlvbihuKXtjKG4pfHwkLmlzQ29sbGFwc2VkKCl8
fCFuLmNoYXJDb2RlfHxlLm1ldGFLZXlQcmVzc2VkKG4pfHwobi5wcmV2ZW50RGVmYXVsdCgpLHQo
ITApLGEuc2VsZWN0aW9uLnNldENvbnRlbnQoU3RyaW5nLmZyb21DaGFyQ29kZShuLmNoYXJDb2Rl
KSkpfSksYS5hZGRDb21tYW5kKCJEZWxldGUiLGZ1bmN0aW9uKCl7dCgpfSksYS5hZGRDb21tYW5k
KCJGb3J3YXJkRGVsZXRlIixmdW5jdGlvbigpe3QoITApfSksc3x8KGEub24oImRyYWdzdGFydCIs
ZnVuY3Rpb24oZSl7dmFyIHQ7YS5zZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSYmIklNRyI9PWUudGFy
Z2V0LnRhZ05hbWUmJiQuc2VsZWN0KGUudGFyZ2V0KSxsPSQuZ2V0Um5nKCksdD1hLnNlbGVjdGlv
bi5nZXRDb250ZW50KCksdC5sZW5ndGg+MCYmZS5kYXRhVHJhbnNmZXIuc2V0RGF0YSgiVVJMIiwi
ZGF0YTp0ZXh0L21jZS1pbnRlcm5hbCwiK2VzY2FwZSh0KSl9KSxhLm9uKCJkcm9wIixmdW5jdGlv
bihlKXtpZighYyhlKSl7dmFyIGk9ZS5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgiVVJMIik7aWYoIWl8
fC0xPT1pLmluZGV4T2Yocil8fCFuLmNhcmV0UmFuZ2VGcm9tUG9pbnQpcmV0dXJuO2k9dW5lc2Nh
cGUoaS5zdWJzdHIoci5sZW5ndGgpKSxuLmNhcmV0UmFuZ2VGcm9tUG9pbnQmJihlLnByZXZlbnRE
ZWZhdWx0KCksd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgcj1uLmNhcmV0UmFuZ2VG
cm9tUG9pbnQoZS54LGUueSk7bCYmKCQuc2V0Um5nKGwpLGw9bnVsbCksdCgpLCQuc2V0Um5nKHIp
LGEuaW5zZXJ0Q29udGVudChpKX0sMCkpfX0pLGEub24oImN1dCIsZnVuY3Rpb24oZSl7IWMoZSkm
JmUuY2xpcGJvYXJkRGF0YSYmKGUucHJldmVudERlZmF1bHQoKSxlLmNsaXBib2FyZERhdGEuY2xl
YXJEYXRhKCksZS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvaHRtbCIsYS5zZWxlY3Rpb24u
Z2V0Q29udGVudCgpKSxlLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9wbGFpbiIsYS5zZWxl
Y3Rpb24uZ2V0Q29udGVudCh7Zm9ybWF0OiJ0ZXh0In0pKSx0KCEwKSl9KSl9ZnVuY3Rpb24gZCgp
e2Z1bmN0aW9uIGUoZSl7dmFyIHQ9cS5jcmVhdGUoImJvZHkiKSxuPWUuY2xvbmVDb250ZW50cygp
O3JldHVybiB0LmFwcGVuZENoaWxkKG4pLCQuc2VyaWFsaXplci5zZXJpYWxpemUodCx7Zm9ybWF0
OiJodG1sIn0pfWZ1bmN0aW9uIG4obil7aWYoIW4uc2V0U3RhcnQpe2lmKG4uaXRlbSlyZXR1cm4h
MTt2YXIgcj1uLmR1cGxpY2F0ZSgpO3JldHVybiByLm1vdmVUb0VsZW1lbnRUZXh0KGEuZ2V0Qm9k
eSgpKSx0LmNvbXBhcmVSYW5nZXMobixyKX12YXIgaT1lKG4pLG89cS5jcmVhdGVSbmcoKTtvLnNl
bGVjdE5vZGUoYS5nZXRCb2R5KCkpO3ZhciBzPWUobyk7cmV0dXJuIGk9PT1zfWEub24oImtleWRv
d24iLGZ1bmN0aW9uKGUpe3ZhciB0PWUua2V5Q29kZSxyLGk7aWYoIWMoZSkmJih0PT1VfHx0PT1W
KSl7aWYocj1hLnNlbGVjdGlvbi5pc0NvbGxhcHNlZCgpLGk9YS5nZXRCb2R5KCksciYmIXEuaXNF
bXB0eShpKSlyZXR1cm47aWYoIXImJiFuKGEuc2VsZWN0aW9uLmdldFJuZygpKSlyZXR1cm47ZS5w
cmV2ZW50RGVmYXVsdCgpLGEuc2V0Q29udGVudCgiIiksaS5maXJzdENoaWxkJiZxLmlzQmxvY2so
aS5maXJzdENoaWxkKT9hLnNlbGVjdGlvbi5zZXRDdXJzb3JMb2NhdGlvbihpLmZpcnN0Q2hpbGQs
MCk6YS5zZWxlY3Rpb24uc2V0Q3Vyc29yTG9jYXRpb24oaSwwKSxhLm5vZGVDaGFuZ2VkKCl9fSl9
ZnVuY3Rpb24gZigpe2Eub24oImtleWRvd24iLGZ1bmN0aW9uKHQpeyFjKHQpJiY2NT09dC5rZXlD
b2RlJiZlLm1ldGFLZXlQcmVzc2VkKHQpJiYodC5wcmV2ZW50RGVmYXVsdCgpLGEuZXhlY0NvbW1h
bmQoIlNlbGVjdEFsbCIpKX0pfWZ1bmN0aW9uIHAoKXthLnNldHRpbmdzLmNvbnRlbnRfZWRpdGFi
bGV8fChxLmJpbmQoYS5nZXREb2MoKSwiZm9jdXNpbiIsZnVuY3Rpb24oKXskLnNldFJuZygkLmdl
dFJuZygpKX0pLHEuYmluZChhLmdldERvYygpLCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpe2UudGFy
Z2V0PT1hLmdldERvYygpLmRvY3VtZW50RWxlbWVudCYmKGEuZ2V0Qm9keSgpLmZvY3VzKCksJC5z
ZXRSbmcoJC5nZXRSbmcoKSkpfSkpfWZ1bmN0aW9uIGgoKXthLm9uKCJrZXlkb3duIixmdW5jdGlv
bihlKXtpZighYyhlKSYmZS5rZXlDb2RlPT09ViYmJC5pc0NvbGxhcHNlZCgpJiYwPT09JC5nZXRS
bmcoITApLnN0YXJ0T2Zmc2V0KXt2YXIgdD0kLmdldE5vZGUoKSxuPXQucHJldmlvdXNTaWJsaW5n
O2lmKCJIUiI9PXQubm9kZU5hbWUpcmV0dXJuIHEucmVtb3ZlKHQpLHZvaWQgZS5wcmV2ZW50RGVm
YXVsdCgpO24mJm4ubm9kZU5hbWUmJiJociI9PT1uLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJihx
LnJlbW92ZShuKSxlLnByZXZlbnREZWZhdWx0KCkpfX0pfWZ1bmN0aW9uIG0oKXt3aW5kb3cuUmFu
Z2UucHJvdG90eXBlLmdldENsaWVudFJlY3RzfHxhLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUp
e2lmKCFjKGUpJiYiSFRNTCI9PT1lLnRhcmdldC5ub2RlTmFtZSl7dmFyIHQ9YS5nZXRCb2R5KCk7
dC5ibHVyKCksc2V0VGltZW91dChmdW5jdGlvbigpe3QuZm9jdXMoKX0sMCl9fSl9ZnVuY3Rpb24g
Zygpe2Eub24oImNsaWNrIixmdW5jdGlvbihlKXtlPWUudGFyZ2V0LC9eKElNR3xIUikkLy50ZXN0
KGUubm9kZU5hbWUpJiYkLmdldFNlbCgpLnNldEJhc2VBbmRFeHRlbnQoZSwwLGUsMSksIkEiPT1l
Lm5vZGVOYW1lJiZxLmhhc0NsYXNzKGUsIm1jZS1pdGVtLWFuY2hvciIpJiYkLnNlbGVjdChlKSxh
Lm5vZGVDaGFuZ2VkKCl9KX1mdW5jdGlvbiB2KCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXEuZ2V0QXR0
cmlicygkLmdldFN0YXJ0KCkuY2xvbmVOb2RlKCExKSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9
JC5nZXRTdGFydCgpO3QhPT1hLmdldEJvZHkoKSYmKHEuc2V0QXR0cmliKHQsInN0eWxlIixudWxs
KSxXKGUsZnVuY3Rpb24oZSl7dC5zZXRBdHRyaWJ1dGVOb2RlKGUuY2xvbmVOb2RlKCEwKSl9KSl9
fWZ1bmN0aW9uIHQoKXtyZXR1cm4hJC5pc0NvbGxhcHNlZCgpJiZxLmdldFBhcmVudCgkLmdldFN0
YXJ0KCkscS5pc0Jsb2NrKSE9cS5nZXRQYXJlbnQoJC5nZXRFbmQoKSxxLmlzQmxvY2spfWEub24o
ImtleXByZXNzIixmdW5jdGlvbihuKXt2YXIgcjtyZXR1cm4gYyhuKXx8OCE9bi5rZXlDb2RlJiY0
NiE9bi5rZXlDb2RlfHwhdCgpP3ZvaWQgMDoocj1lKCksYS5nZXREb2MoKS5leGVjQ29tbWFuZCgi
ZGVsZXRlIiwhMSxudWxsKSxyKCksbi5wcmV2ZW50RGVmYXVsdCgpLCExKX0pLHEuYmluZChhLmdl
dERvYygpLCJjdXQiLGZ1bmN0aW9uKG4pe3ZhciByOyFjKG4pJiZ0KCkmJihyPWUoKSxzZXRUaW1l
b3V0KGZ1bmN0aW9uKCl7cigpfSwwKSl9KX1mdW5jdGlvbiB5KCl7dmFyIGUsbjthLm9uKCJzZWxl
Y3Rpb25jaGFuZ2UiLGZ1bmN0aW9uKCl7biYmKGNsZWFyVGltZW91dChuKSxuPTApLG49d2luZG93
LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZighYS5yZW1vdmVkKXt2YXIgbj0kLmdldFJuZygpO2Um
JnQuY29tcGFyZVJhbmdlcyhuLGUpfHwoYS5ub2RlQ2hhbmdlZCgpLGU9bil9fSw1MCl9KX1mdW5j
dGlvbiBiKCl7ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJhcHBsaWNhdGlvbiIp
fWZ1bmN0aW9uIEMoKXthLm9uKCJrZXlkb3duIixmdW5jdGlvbihlKXtpZighYyhlKSYmZS5rZXlD
b2RlPT09ViYmJC5pc0NvbGxhcHNlZCgpJiYwPT09JC5nZXRSbmcoITApLnN0YXJ0T2Zmc2V0KXt2
YXIgdD0kLmdldE5vZGUoKS5wcmV2aW91c1NpYmxpbmc7aWYodCYmdC5ub2RlTmFtZSYmInRhYmxl
Ij09PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLCEx
fX0pfWZ1bmN0aW9uIHgoKXtsKCk+N3x8KHMoIlJlc3BlY3RWaXNpYmlsaXR5SW5EZXNpZ24iLCEw
KSxhLmNvbnRlbnRTdHlsZXMucHVzaCgiLm1jZUhpZGVCckluUHJlIHByZSBiciB7ZGlzcGxheTog
bm9uZX0iKSxxLmFkZENsYXNzKGEuZ2V0Qm9keSgpLCJtY2VIaWRlQnJJblByZSIpLEsuYWRkTm9k
ZUZpbHRlcigicHJlIixmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5sZW5ndGgscixpLG8sYTt0LS07
KWZvcihyPWVbdF0uZ2V0QWxsKCJiciIpLGk9ci5sZW5ndGg7aS0tOylvPXJbaV0sYT1vLnByZXYs
YSYmMz09PWEudHlwZSYmIlxuIiE9YS52YWx1ZS5jaGFyQXQoYS52YWx1ZS0xKT9hLnZhbHVlKz0i
XG4iOm8ucGFyZW50Lmluc2VydChuZXcgbigiI3RleHQiLDMpLG8sITApLnZhbHVlPSJcbiJ9KSxH
LmFkZE5vZGVGaWx0ZXIoInByZSIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUubGVuZ3RoLG4scixp
LG87dC0tOylmb3Iobj1lW3RdLmdldEFsbCgiYnIiKSxyPW4ubGVuZ3RoO3ItLTspaT1uW3JdLG89
aS5wcmV2LG8mJjM9PW8udHlwZSYmKG8udmFsdWU9by52YWx1ZS5yZXBsYWNlKC9ccj9cbiQvLCIi
KSl9KSl9ZnVuY3Rpb24gdygpe3EuYmluZChhLmdldEJvZHkoKSwibW91c2V1cCIsZnVuY3Rpb24o
KXt2YXIgZSx0PSQuZ2V0Tm9kZSgpOyJJTUciPT10Lm5vZGVOYW1lJiYoKGU9cS5nZXRTdHlsZSh0
LCJ3aWR0aCIpKSYmKHEuc2V0QXR0cmliKHQsIndpZHRoIixlLnJlcGxhY2UoL1teMC05JV0rL2cs
IiIpKSxxLnNldFN0eWxlKHQsIndpZHRoIiwiIikpLChlPXEuZ2V0U3R5bGUodCwiaGVpZ2h0Iikp
JiYocS5zZXRBdHRyaWIodCwiaGVpZ2h0IixlLnJlcGxhY2UoL1teMC05JV0rL2csIiIpKSxxLnNl
dFN0eWxlKHQsImhlaWdodCIsIiIpKSl9KX1mdW5jdGlvbiBfKCl7YS5vbigia2V5ZG93biIsZnVu
Y3Rpb24odCl7dmFyIG4scixpLG8scztpZighYyh0KSYmdC5rZXlDb2RlPT1lLkJBQ0tTUEFDRSYm
KG49JC5nZXRSbmcoKSxyPW4uc3RhcnRDb250YWluZXIsaT1uLnN0YXJ0T2Zmc2V0LG89cS5nZXRS
b290KCkscz1yLG4uY29sbGFwc2VkJiYwPT09aSkpe2Zvcig7cyYmcy5wYXJlbnROb2RlJiZzLnBh
cmVudE5vZGUuZmlyc3RDaGlsZD09cyYmcy5wYXJlbnROb2RlIT1vOylzPXMucGFyZW50Tm9kZTsi
QkxPQ0tRVU9URSI9PT1zLnRhZ05hbWUmJihhLmZvcm1hdHRlci50b2dnbGUoImJsb2NrcXVvdGUi
LG51bGwscyksbj1xLmNyZWF0ZVJuZygpLG4uc2V0U3RhcnQociwwKSxuLnNldEVuZChyLDApLCQu
c2V0Um5nKG4pKX19KX1mdW5jdGlvbiBOKCl7ZnVuY3Rpb24gZSgpe2EuX3JlZnJlc2hDb250ZW50
RWRpdGFibGUoKSxzKCJTdHlsZVdpdGhDU1MiLCExKSxzKCJlbmFibGVJbmxpbmVUYWJsZUVkaXRp
bmciLCExKSxqLm9iamVjdF9yZXNpemluZ3x8cygiZW5hYmxlT2JqZWN0UmVzaXppbmciLCExKX1q
LnJlYWRvbmx5fHxhLm9uKCJCZWZvcmVFeGVjQ29tbWFuZCBNb3VzZURvd24iLGUpfWZ1bmN0aW9u
IEUoKXtmdW5jdGlvbiBlKCl7VyhxLnNlbGVjdCgiYSIpLGZ1bmN0aW9uKGUpe3ZhciB0PWUucGFy
ZW50Tm9kZSxuPXEuZ2V0Um9vdCgpO2lmKHQubGFzdENoaWxkPT09ZSl7Zm9yKDt0JiYhcS5pc0Js
b2NrKHQpOyl7aWYodC5wYXJlbnROb2RlLmxhc3RDaGlsZCE9PXR8fHQ9PT1uKXJldHVybjt0PXQu
cGFyZW50Tm9kZX1xLmFkZCh0LCJiciIseyJkYXRhLW1jZS1ib2d1cyI6MX0pfX0pfWEub24oIlNl
dENvbnRlbnQgRXhlY0NvbW1hbmQiLGZ1bmN0aW9uKHQpeygic2V0Y29udGVudCI9PXQudHlwZXx8
Im1jZUluc2VydExpbmsiPT09dC5jb21tYW5kKSYmZSgpfSl9ZnVuY3Rpb24gUygpe2ouZm9yY2Vk
X3Jvb3RfYmxvY2smJmEub24oImluaXQiLGZ1bmN0aW9uKCl7cygiRGVmYXVsdFBhcmFncmFwaFNl
cGFyYXRvciIsai5mb3JjZWRfcm9vdF9ibG9jayl9KX1mdW5jdGlvbiBrKCl7YS5vbigiVW5kbyBS
ZWRvIFNldENvbnRlbnQiLGZ1bmN0aW9uKGUpe2UuaW5pdGlhbHx8YS5leGVjQ29tbWFuZCgibWNl
UmVwYWludCIpfSl9ZnVuY3Rpb24gVCgpe2Eub24oImtleWRvd24iLGZ1bmN0aW9uKGUpe3ZhciB0
O2MoZSl8fGUua2V5Q29kZSE9Vnx8KHQ9YS5nZXREb2MoKS5zZWxlY3Rpb24uY3JlYXRlUmFuZ2Uo
KSx0JiZ0Lml0ZW0mJihlLnByZXZlbnREZWZhdWx0KCksYS51bmRvTWFuYWdlci5iZWZvcmVDaGFu
Z2UoKSxxLnJlbW92ZSh0Lml0ZW0oMCkpLGEudW5kb01hbmFnZXIuYWRkKCkpKX0pfWZ1bmN0aW9u
IFIoKXt2YXIgZTtsKCk+PTEwJiYoZT0iIixXKCJwIGRpdiBoMSBoMiBoMyBoNCBoNSBoNiIuc3Bs
aXQoIiAiKSxmdW5jdGlvbih0LG4pe2UrPShuPjA/IiwiOiIiKSt0KyI6ZW1wdHkifSksYS5jb250
ZW50U3R5bGVzLnB1c2goZSsie3BhZGRpbmctcmlnaHQ6IDFweCAhaW1wb3J0YW50fSIpKX1mdW5j
dGlvbiBBKCl7bCgpPDkmJihLLmFkZE5vZGVGaWx0ZXIoIm5vc2NyaXB0IixmdW5jdGlvbihlKXtm
b3IodmFyIHQ9ZS5sZW5ndGgsbixyO3QtLTspbj1lW3RdLHI9bi5maXJzdENoaWxkLHImJm4uYXR0
cigiZGF0YS1tY2UtaW5uZXJ0ZXh0IixyLnZhbHVlKX0pLEcuYWRkTm9kZUZpbHRlcigibm9zY3Jp
cHQiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxpLG8sYTt0LS07KWk9ZVt0XSxvPWVb
dF0uZmlyc3RDaGlsZCxvP28udmFsdWU9ci5kZWNvZGUoby52YWx1ZSk6KGE9aS5hdHRyaWJ1dGVz
Lm1hcFsiZGF0YS1tY2UtaW5uZXJ0ZXh0Il0sYSYmKGkuYXR0cigiZGF0YS1tY2UtaW5uZXJ0ZXh0
IixudWxsKSxvPW5ldyBuKCIjdGV4dCIsMyksby52YWx1ZT1hLG8ucmF3PSEwLGkuYXBwZW5kKG8p
KSl9KSl9ZnVuY3Rpb24gQigpe2Z1bmN0aW9uIGUoZSx0KXt2YXIgbj1pLmNyZWF0ZVRleHRSYW5n
ZSgpO3RyeXtuLm1vdmVUb1BvaW50KGUsdCl9Y2F0Y2gocil7bj1udWxsfXJldHVybiBufWZ1bmN0
aW9uIHQodCl7dmFyIHI7dC5idXR0b24/KHI9ZSh0LngsdC55KSxyJiYoci5jb21wYXJlRW5kUG9p
bnRzKCJTdGFydFRvU3RhcnQiLGEpPjA/ci5zZXRFbmRQb2ludCgiU3RhcnRUb1N0YXJ0IixhKTpy
LnNldEVuZFBvaW50KCJFbmRUb0VuZCIsYSksci5zZWxlY3QoKSkpOm4oKX1mdW5jdGlvbiBuKCl7
dmFyIGU9ci5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTthJiYhZS5pdGVtJiYwPT09ZS5jb21wYXJl
RW5kUG9pbnRzKCJTdGFydFRvRW5kIixlKSYmYS5zZWxlY3QoKSxxLnVuYmluZChyLCJtb3VzZXVw
IixuKSxxLnVuYmluZChyLCJtb3VzZW1vdmUiLHQpLGE9bz0wfXZhciByPXEuZG9jLGk9ci5ib2R5
LG8sYSxzO3IuZG9jdW1lbnRFbGVtZW50LnVuc2VsZWN0YWJsZT0hMCxxLmJpbmQociwibW91c2Vk
b3duIGNvbnRleHRtZW51IixmdW5jdGlvbihpKXtpZigiSFRNTCI9PT1pLnRhcmdldC5ub2RlTmFt
ZSl7aWYobyYmbigpLHM9ci5kb2N1bWVudEVsZW1lbnQscy5zY3JvbGxIZWlnaHQ+cy5jbGllbnRI
ZWlnaHQpcmV0dXJuO289MSxhPWUoaS54LGkueSksYSYmKHEuYmluZChyLCJtb3VzZXVwIixuKSxx
LmJpbmQociwibW91c2Vtb3ZlIix0KSxxLmdldFJvb3QoKS5mb2N1cygpLGEuc2VsZWN0KCkpfX0p
fWZ1bmN0aW9uIEQoKXthLm9uKCJrZXl1cCBmb2N1c2luIG1vdXNldXAiLGZ1bmN0aW9uKHQpezY1
PT10LmtleUNvZGUmJmUubWV0YUtleVByZXNzZWQodCl8fCQubm9ybWFsaXplKCl9LCEwKX1mdW5j
dGlvbiBMKCl7YS5jb250ZW50U3R5bGVzLnB1c2goImltZzotbW96LWJyb2tlbiB7LW1vei1mb3Jj
ZS1icm9rZW4taW1hZ2UtaWNvbjoxO21pbi13aWR0aDoyNHB4O21pbi1oZWlnaHQ6MjRweH0iKX1m
dW5jdGlvbiBNKCl7YS5pbmxpbmV8fGEub24oImtleWRvd24iLGZ1bmN0aW9uKCl7ZG9jdW1lbnQu
YWN0aXZlRWxlbWVudD09ZG9jdW1lbnQuYm9keSYmYS5nZXRXaW4oKS5mb2N1cygpfSl9ZnVuY3Rp
b24gSCgpe2EuaW5saW5lfHwoYS5jb250ZW50U3R5bGVzLnB1c2goImJvZHkge21pbi1oZWlnaHQ6
IDE1MHB4fSIpLGEub24oImNsaWNrIixmdW5jdGlvbihlKXsiSFRNTCI9PWUudGFyZ2V0Lm5vZGVO
YW1lJiYoYS5nZXRCb2R5KCkuZm9jdXMoKSxhLnNlbGVjdGlvbi5ub3JtYWxpemUoKSxhLm5vZGVD
aGFuZ2VkKCkpfSkpfWZ1bmN0aW9uIFAoKXtpLm1hYyYmYS5vbigia2V5ZG93biIsZnVuY3Rpb24o
dCl7IWUubWV0YUtleVByZXNzZWQodCl8fDM3IT10LmtleUNvZGUmJjM5IT10LmtleUNvZGV8fCh0
LnByZXZlbnREZWZhdWx0KCksYS5zZWxlY3Rpb24uZ2V0U2VsKCkubW9kaWZ5KCJtb3ZlIiwzNz09
dC5rZXlDb2RlPyJiYWNrd2FyZCI6ImZvcndhcmQiLCJ3b3JkIikpfSl9ZnVuY3Rpb24gTygpe3Mo
IkF1dG9VcmxEZXRlY3QiLCExKX1mdW5jdGlvbiBJKCl7YS5pbmxpbmV8fGEub24oImZvY3VzIGJs
dXIgYmVmb3JlZ2V0Y29udGVudCIsZnVuY3Rpb24oKXt2YXIgZT1hLmRvbS5jcmVhdGUoImJyIik7
YS5nZXRCb2R5KCkuYXBwZW5kQ2hpbGQoZSksZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSwh
MCl9ZnVuY3Rpb24gRigpe2Eub24oImNsaWNrIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtk
byBpZigiQSI9PT10LnRhZ05hbWUpcmV0dXJuIHZvaWQgZS5wcmV2ZW50RGVmYXVsdCgpO3doaWxl
KHQ9dC5wYXJlbnROb2RlKX0pLGEuY29udGVudFN0eWxlcy5wdXNoKCIubWNlLWNvbnRlbnQtYm9k
eSB7LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lfSIpfWZ1bmN0aW9uIHooKXthLm9uKCJpbml0
IixmdW5jdGlvbigpe2EuZG9tLmJpbmQoYS5nZXRCb2R5KCksInN1Ym1pdCIsZnVuY3Rpb24oZSl7
ZS5wcmV2ZW50RGVmYXVsdCgpfSl9KX12YXIgVz1vLmVhY2gsVj1lLkJBQ0tTUEFDRSxVPWUuREVM
RVRFLHE9YS5kb20sJD1hLnNlbGVjdGlvbixqPWEuc2V0dGluZ3MsSz1hLnBhcnNlcixHPWEuc2Vy
aWFsaXplcixZPWkuZ2Vja28sWD1pLmllLEo9aS53ZWJraXQ7QygpLF8oKSxkKCksRCgpLEomJih1
KCkscCgpLGcoKSxTKCkseigpLGkuaU9TPyh5KCksTSgpLEgoKSxGKCkpOmYoKSksWCYmaS5pZTwx
MSYmKGgoKSxiKCkseCgpLHcoKSxUKCksUigpLEEoKSxCKCkpLGkuaWU+PTExJiYoSCgpLEkoKSks
aS5pZSYmKGYoKSxPKCkpLFkmJihoKCksbSgpLHYoKSxOKCksRSgpLGsoKSxMKCksUCgpKX19KSxy
KG90LFtXXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0Ll9ldmVudERpc3BhdGNo
ZXJ8fCh0Ll9ldmVudERpc3BhdGNoZXI9bmV3IGUoe3Njb3BlOnQsdG9nZ2xlRXZlbnQ6ZnVuY3Rp
b24obixyKXtlLmlzTmF0aXZlKG4pJiZ0LnRvZ2dsZU5hdGl2ZUV2ZW50JiZ0LnRvZ2dsZU5hdGl2
ZUV2ZW50KG4scil9fSkpLHQuX2V2ZW50RGlzcGF0Y2hlcn1yZXR1cm57ZmlyZTpmdW5jdGlvbihl
LG4scil7dmFyIGk9dGhpcztpZihpLnJlbW92ZWQmJiJyZW1vdmUiIT09ZSlyZXR1cm4gbjtpZihu
PXQoaSkuZmlyZShlLG4sciksciE9PSExJiZpLnBhcmVudClmb3IodmFyIG89aS5wYXJlbnQoKTtv
JiYhbi5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpOylvLmZpcmUoZSxuLCExKSxvPW8ucGFyZW50KCk7
cmV0dXJuIG59LG9uOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdCh0aGlzKS5vbihlLG4scil9LG9m
ZjpmdW5jdGlvbihlLG4pe3JldHVybiB0KHRoaXMpLm9mZihlLG4pfSxoYXNFdmVudExpc3RlbmVy
czpmdW5jdGlvbihlKXtyZXR1cm4gdCh0aGlzKS5oYXMoZSl9fX0pLHIoYXQsW290LHkscF0sZnVu
Y3Rpb24oZSx0LG4pe2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4ic2VsZWN0aW9uY2hhbmdlIj09dD9l
LmdldERvYygpOiFlLmlubGluZSYmL15tb3VzZXxjbGlja3xjb250ZXh0bWVudXxkcm9wLy50ZXN0
KHQpP2UuZ2V0RG9jKCk6ZS5nZXRCb2R5KCl9ZnVuY3Rpb24gaShlLHQpe3ZhciBuPWUuc2V0dGlu
Z3MuZXZlbnRfcm9vdCxpPWUuZWRpdG9yTWFuYWdlcixhPWkuZXZlbnRSb290RWxtfHxyKGUsdCk7
aWYobil7aWYoaS5yb290RXZlbnRzfHwoaS5yb290RXZlbnRzPXt9LGkub24oIlJlbW92ZUVkaXRv
ciIsZnVuY3Rpb24oKXtpLmFjdGl2ZUVkaXRvcnx8KG8udW5iaW5kKGEpLGRlbGV0ZSBpLnJvb3RF
dmVudHMpfSkpLGkucm9vdEV2ZW50c1t0XSlyZXR1cm47YT09ZS5nZXRCb2R5KCkmJihhPW8uc2Vs
ZWN0KG4pWzBdLGkuZXZlbnRSb290RWxtPWEpLGkucm9vdEV2ZW50c1t0XT0hMCxvLmJpbmQoYSx0
LGZ1bmN0aW9uKGUpe2Zvcih2YXIgbj1lLnRhcmdldCxyPWkuZWRpdG9ycyxhPXIubGVuZ3RoO2Et
LTspe3ZhciBzPXJbYV0uZ2V0Qm9keSgpOyhzPT09bnx8by5pc0NoaWxkT2YobixzKSkmJihyW2Fd
LmhpZGRlbnx8clthXS5maXJlKHQsZSkpfX0pfWVsc2UgZS5kb20uYmluZChhLHQsZnVuY3Rpb24o
bil7ZS5oaWRkZW58fGUuZmlyZSh0LG4pfSl9dmFyIG89dC5ET00sYT17YmluZFBlbmRpbmdFdmVu
dERlbGVnYXRlczpmdW5jdGlvbigpe3ZhciBlPXRoaXM7bi5lYWNoKGUuX3BlbmRpbmdOYXRpdmVF
dmVudHMsZnVuY3Rpb24odCl7aShlLHQpfSl9LHRvZ2dsZU5hdGl2ZUV2ZW50OmZ1bmN0aW9uKGUs
dCl7dmFyIG49dGhpcztuLnNldHRpbmdzLnJlYWRvbmx5fHwiZm9jdXMiIT1lJiYiYmx1ciIhPWUm
Jih0P24uaW5pdGlhbGl6ZWQ/aShuLGUpOm4uX3BlbmRpbmdOYXRpdmVFdmVudHM/bi5fcGVuZGlu
Z05hdGl2ZUV2ZW50cy5wdXNoKGUpOm4uX3BlbmRpbmdOYXRpdmVFdmVudHM9W2VdOm4uaW5pdGlh
bGl6ZWQmJm4uZG9tLnVuYmluZChyKG4sZSksZSkpfX07cmV0dXJuIGE9bi5leHRlbmQoe30sZSxh
KX0pLHIoc3QsW3AsZ10sZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmVhY2gscj1lLmV4cGxvZGUsaT17
Zjk6MTIwLGYxMDoxMjEsZjExOjEyMn07cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBhPXRoaXMscz17
fTtvLm9uKCJrZXl1cCBrZXlwcmVzcyBrZXlkb3duIixmdW5jdGlvbihlKXsoZS5hbHRLZXl8fGUu
Y3RybEtleXx8ZS5tZXRhS2V5KSYmbihzLGZ1bmN0aW9uKG4pe3ZhciByPXQubWFjP2UubWV0YUtl
eTplLmN0cmxLZXk7aWYobi5jdHJsPT1yJiZuLmFsdD09ZS5hbHRLZXkmJm4uc2hpZnQ9PWUuc2hp
ZnRLZXkpcmV0dXJuIGUua2V5Q29kZT09bi5rZXlDb2RlfHxlLmNoYXJDb2RlJiZlLmNoYXJDb2Rl
PT1uLmNoYXJDb2RlPyhlLnByZXZlbnREZWZhdWx0KCksImtleWRvd24iPT1lLnR5cGUmJm4uZnVu
Yy5jYWxsKG4uc2NvcGUpLCEwKTp2b2lkIDB9KX0pLGEuYWRkPWZ1bmN0aW9uKHQsYSxsLGMpe3Zh
ciB1O3JldHVybiB1PWwsInN0cmluZyI9PXR5cGVvZiBsP2w9ZnVuY3Rpb24oKXtvLmV4ZWNDb21t
YW5kKHUsITEsbnVsbCl9OmUuaXNBcnJheSh1KSYmKGw9ZnVuY3Rpb24oKXtvLmV4ZWNDb21tYW5k
KHVbMF0sdVsxXSx1WzJdKX0pLG4ocih0LnRvTG93ZXJDYXNlKCkpLGZ1bmN0aW9uKGUpe3ZhciB0
PXtmdW5jOmwsc2NvcGU6Y3x8byxkZXNjOm8udHJhbnNsYXRlKGEpLGFsdDohMSxjdHJsOiExLHNo
aWZ0OiExfTtuKHIoZSwiKyIpLGZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlImFsdCI6Y2FzZSJj
dHJsIjpjYXNlInNoaWZ0Ijp0W2VdPSEwO2JyZWFrO2RlZmF1bHQ6dC5jaGFyQ29kZT1lLmNoYXJD
b2RlQXQoMCksdC5rZXlDb2RlPWlbZV18fGUudG9VcHBlckNhc2UoKS5jaGFyQ29kZUF0KDApfX0p
LHNbKHQuY3RybD8iY3RybCI6IiIpKyIsIisodC5hbHQ/ImFsdCI6IiIpKyIsIisodC5zaGlmdD8i
c2hpZnQiOiIiKSsiLCIrdC5rZXlDb2RlXT10fSksITB9fX0pLHIobHQsW3ksQyx4LGssUyxELE0s
SCxQLE8sSSxGLGIsbCxydCx3LE4saXQsZyxwLGF0LHN0XSxmdW5jdGlvbihlLG4scixpLG8sYSxz
LGwsYyx1LGQsZixwLGgsbSxnLHYseSxiLEMseCx3KXtmdW5jdGlvbiBfKGUsdCxyKXt2YXIgaT10
aGlzLG8sYTtvPWkuZG9jdW1lbnRCYXNlVXJsPXIuZG9jdW1lbnRCYXNlVVJMLGE9ci5iYXNlVVJJ
LGkuc2V0dGluZ3M9dD1rKHtpZDplLHRoZW1lOiJtb2Rlcm4iLGRlbHRhX3dpZHRoOjAsZGVsdGFf
aGVpZ2h0OjAscG9wdXBfY3NzOiIiLHBsdWdpbnM6IiIsZG9jdW1lbnRfYmFzZV91cmw6byxhZGRf
Zm9ybV9zdWJtaXRfdHJpZ2dlcjohMCxzdWJtaXRfcGF0Y2g6ITAsYWRkX3VubG9hZF90cmlnZ2Vy
OiEwLGNvbnZlcnRfdXJsczohMCxyZWxhdGl2ZV91cmxzOiEwLHJlbW92ZV9zY3JpcHRfaG9zdDoh
MCxvYmplY3RfcmVzaXppbmc6ITAsZG9jdHlwZToiPCFET0NUWVBFIGh0bWw+Iix2aXN1YWw6ITAs
Zm9udF9zaXplX3N0eWxlX3ZhbHVlczoieHgtc21hbGwseC1zbWFsbCxzbWFsbCxtZWRpdW0sbGFy
Z2UseC1sYXJnZSx4eC1sYXJnZSIsZm9udF9zaXplX2xlZ2FjeV92YWx1ZXM6Inh4LXNtYWxsLHNt
YWxsLG1lZGl1bSxsYXJnZSx4LWxhcmdlLHh4LWxhcmdlLDMwMCUiLGZvcmNlZF9yb290X2Jsb2Nr
OiJwIixoaWRkZW5faW5wdXQ6ITAscGFkZF9lbXB0eV9lZGl0b3I6ITAscmVuZGVyX3VpOiEwLGlu
ZGVudGF0aW9uOiIzMHB4IixpbmxpbmVfc3R5bGVzOiEwLGNvbnZlcnRfZm9udHNfdG9fc3BhbnM6
ITAsaW5kZW50OiJzaW1wbGUiLGluZGVudF9iZWZvcmU6InAsaDEsaDIsaDMsaDQsaDUsaDYsYmxv
Y2txdW90ZSxkaXYsdGl0bGUsc3R5bGUscHJlLHNjcmlwdCx0ZCx1bCxsaSxhcmVhLHRhYmxlLHRo
ZWFkLHRmb290LHRib2R5LHRyLHNlY3Rpb24sYXJ0aWNsZSxoZ3JvdXAsYXNpZGUsZmlndXJlLG9w
dGlvbixvcHRncm91cCxkYXRhbGlzdCIsaW5kZW50X2FmdGVyOiJwLGgxLGgyLGgzLGg0LGg1LGg2
LGJsb2NrcXVvdGUsZGl2LHRpdGxlLHN0eWxlLHByZSxzY3JpcHQsdGQsdWwsbGksYXJlYSx0YWJs
ZSx0aGVhZCx0Zm9vdCx0Ym9keSx0cixzZWN0aW9uLGFydGljbGUsaGdyb3VwLGFzaWRlLGZpZ3Vy
ZSxvcHRpb24sb3B0Z3JvdXAsZGF0YWxpc3QiLHZhbGlkYXRlOiEwLGVudGl0eV9lbmNvZGluZzoi
bmFtZWQiLHVybF9jb252ZXJ0ZXI6aS5jb252ZXJ0VVJMLHVybF9jb252ZXJ0ZXJfc2NvcGU6aSxp
ZTdfY29tcGF0OiEwfSx0KSxuLmxhbmd1YWdlPXQubGFuZ3VhZ2V8fCJlbiIsbi5sYW5ndWFnZUxv
YWQ9dC5sYW5ndWFnZV9sb2FkLG4uYmFzZVVSTD1yLmJhc2VVUkwsaS5pZD10LmlkPWUsaS5pc05v
dERpcnR5PSEwLGkucGx1Z2lucz17fSxpLmRvY3VtZW50QmFzZVVSST1uZXcgZih0LmRvY3VtZW50
X2Jhc2VfdXJsfHxvLHtiYXNlX3VyaTphfSksaS5iYXNlVVJJPWEsaS5jb250ZW50Q1NTPVtdLGku
Y29udGVudFN0eWxlcz1bXSxpLnNob3J0Y3V0cz1uZXcgdyhpKSxpLmV4ZWNDb21tYW5kcz17fSxp
LnF1ZXJ5U3RhdGVDb21tYW5kcz17fSxpLnF1ZXJ5VmFsdWVDb21tYW5kcz17fSxpLmxvYWRlZENT
Uz17fSxpLnN1ZmZpeD1yLnN1ZmZpeCxpLmVkaXRvck1hbmFnZXI9cixpLmlubGluZT10LmlubGlu
ZSxyLmZpcmUoIlNldHVwRWRpdG9yIixpKSxpLmV4ZWNDYWxsYmFjaygic2V0dXAiLGkpfXZhciBO
PWUuRE9NLEU9bi5UaGVtZU1hbmFnZXIsUz1uLlBsdWdpbk1hbmFnZXIsaz1DLmV4dGVuZCxUPUMu
ZWFjaCxSPUMuZXhwbG9kZSxBPUMuaW5BcnJheSxCPUMudHJpbSxEPUMucmVzb2x2ZSxMPWguRXZl
bnQsTT1iLmdlY2tvLEg9Yi5pZTtyZXR1cm4gXy5wcm90b3R5cGU9e3JlbmRlcjpmdW5jdGlvbigp
e2Z1bmN0aW9uIGUoKXtOLnVuYmluZCh3aW5kb3csInJlYWR5IixlKSxuLnJlbmRlcigpfWZ1bmN0
aW9uIHQoKXt2YXIgZT1wLlNjcmlwdExvYWRlcjtpZihyLmxhbmd1YWdlJiYiZW4iIT1yLmxhbmd1
YWdlJiYhci5sYW5ndWFnZV91cmwmJihyLmxhbmd1YWdlX3VybD1uLmVkaXRvck1hbmFnZXIuYmFz
ZVVSTCsiL2xhbmdzLyIrci5sYW5ndWFnZSsiLmpzIiksci5sYW5ndWFnZV91cmwmJmUuYWRkKHIu
bGFuZ3VhZ2VfdXJsKSxyLnRoZW1lJiYiZnVuY3Rpb24iIT10eXBlb2Ygci50aGVtZSYmIi0iIT1y
LnRoZW1lLmNoYXJBdCgwKSYmIUUudXJsc1tyLnRoZW1lXSl7dmFyIHQ9ci50aGVtZV91cmw7dD10
P24uZG9jdW1lbnRCYXNlVVJJLnRvQWJzb2x1dGUodCk6InRoZW1lcy8iK3IudGhlbWUrIi90aGVt
ZSIrbysiLmpzIixFLmxvYWQoci50aGVtZSx0KX1DLmlzQXJyYXkoci5wbHVnaW5zKSYmKHIucGx1
Z2lucz1yLnBsdWdpbnMuam9pbigiICIpKSxUKHIuZXh0ZXJuYWxfcGx1Z2lucyxmdW5jdGlvbihl
LHQpe1MubG9hZCh0LGUpLHIucGx1Z2lucys9IiAiK3R9KSxUKHIucGx1Z2lucy5zcGxpdCgvWyAs
XS8pLGZ1bmN0aW9uKGUpe2lmKGU9QihlKSxlJiYhUy51cmxzW2VdKWlmKCItIj09ZS5jaGFyQXQo
MCkpe2U9ZS5zdWJzdHIoMSxlLmxlbmd0aCk7dmFyIHQ9Uy5kZXBlbmRlbmNpZXMoZSk7VCh0LGZ1
bmN0aW9uKGUpe3ZhciB0PXtwcmVmaXg6InBsdWdpbnMvIixyZXNvdXJjZTplLHN1ZmZpeDoiL3Bs
dWdpbiIrbysiLmpzIn07ZT1TLmNyZWF0ZVVybCh0LGUpLFMubG9hZChlLnJlc291cmNlLGUpfSl9
ZWxzZSBTLmxvYWQoZSx7cHJlZml4OiJwbHVnaW5zLyIscmVzb3VyY2U6ZSxzdWZmaXg6Ii9wbHVn
aW4iK28rIi5qcyJ9KX0pLGUubG9hZFF1ZXVlKGZ1bmN0aW9uKCl7bi5yZW1vdmVkfHxuLmluaXQo
KX0pfXZhciBuPXRoaXMscj1uLnNldHRpbmdzLGk9bi5pZCxvPW4uc3VmZml4O2lmKCFMLmRvbUxv
YWRlZClyZXR1cm4gdm9pZCBOLmJpbmQod2luZG93LCJyZWFkeSIsZSk7aWYobi5nZXRFbGVtZW50
KCkmJmIuY29udGVudEVkaXRhYmxlKXtyLmlubGluZT9uLmlubGluZT0hMDoobi5vcmdWaXNpYmls
aXR5PW4uZ2V0RWxlbWVudCgpLnN0eWxlLnZpc2liaWxpdHksbi5nZXRFbGVtZW50KCkuc3R5bGUu
dmlzaWJpbGl0eT0iaGlkZGVuIik7dmFyIGE9bi5nZXRFbGVtZW50KCkuZm9ybXx8Ti5nZXRQYXJl
bnQoaSwiZm9ybSIpO2EmJihuLmZvcm1FbGVtZW50PWEsci5oaWRkZW5faW5wdXQmJiEvVEVYVEFS
RUF8SU5QVVQvaS50ZXN0KG4uZ2V0RWxlbWVudCgpLm5vZGVOYW1lKSYmKE4uaW5zZXJ0QWZ0ZXIo
Ti5jcmVhdGUoImlucHV0Iix7dHlwZToiaGlkZGVuIixuYW1lOml9KSxpKSxuLmhhc0hpZGRlbklu
cHV0PSEwKSxuLmZvcm1FdmVudERlbGVnYXRlPWZ1bmN0aW9uKGUpe24uZmlyZShlLnR5cGUsZSl9
LE4uYmluZChhLCJzdWJtaXQgcmVzZXQiLG4uZm9ybUV2ZW50RGVsZWdhdGUpLG4ub24oInJlc2V0
IixmdW5jdGlvbigpe24uc2V0Q29udGVudChuLnN0YXJ0Q29udGVudCx7Zm9ybWF0OiJyYXcifSl9
KSwhci5zdWJtaXRfcGF0Y2h8fGEuc3VibWl0Lm5vZGVUeXBlfHxhLnN1Ym1pdC5sZW5ndGh8fGEu
X21jZU9sZFN1Ym1pdHx8KGEuX21jZU9sZFN1Ym1pdD1hLnN1Ym1pdCxhLnN1Ym1pdD1mdW5jdGlv
bigpe3JldHVybiBuLmVkaXRvck1hbmFnZXIudHJpZ2dlclNhdmUoKSxuLmlzTm90RGlydHk9ITAs
YS5fbWNlT2xkU3VibWl0KGEpfSkpLG4ud2luZG93TWFuYWdlcj1uZXcgbShuKSwieG1sIj09ci5l
bmNvZGluZyYmbi5vbigiR2V0Q29udGVudCIsZnVuY3Rpb24oZSl7ZS5zYXZlJiYoZS5jb250ZW50
PU4uZW5jb2RlKGUuY29udGVudCkpfSksci5hZGRfZm9ybV9zdWJtaXRfdHJpZ2dlciYmbi5vbigi
c3VibWl0IixmdW5jdGlvbigpe24uaW5pdGlhbGl6ZWQmJm4uc2F2ZSgpfSksci5hZGRfdW5sb2Fk
X3RyaWdnZXImJihuLl9iZWZvcmVVbmxvYWQ9ZnVuY3Rpb24oKXshbi5pbml0aWFsaXplZHx8bi5k
ZXN0cm95ZWR8fG4uaXNIaWRkZW4oKXx8bi5zYXZlKHtmb3JtYXQ6InJhdyIsbm9fZXZlbnRzOiEw
LHNldF9kaXJ0eTohMX0pfSxuLmVkaXRvck1hbmFnZXIub24oIkJlZm9yZVVubG9hZCIsbi5fYmVm
b3JlVW5sb2FkKSksdCgpfX0saW5pdDpmdW5jdGlvbigpe2Z1bmN0aW9uIGUobil7dmFyIHI9Uy5n
ZXQobiksaSxvO2k9Uy51cmxzW25dfHx0LmRvY3VtZW50QmFzZVVybC5yZXBsYWNlKC9cLyQvLCIi
KSxuPUIobiksciYmLTE9PT1BKG0sbikmJihUKFMuZGVwZW5kZW5jaWVzKG4pLGZ1bmN0aW9uKHQp
e2UodCl9KSxvPW5ldyByKHQsaSksdC5wbHVnaW5zW25dPW8sby5pbml0JiYoby5pbml0KHQsaSks
bS5wdXNoKG4pKSl9dmFyIHQ9dGhpcyxuPXQuc2V0dGluZ3Mscj10LmdldEVsZW1lbnQoKSxpLG8s
YSxzLGwsYyx1LGQsZixwLGgsbT1bXTtpZih0LnJ0bD10aGlzLmVkaXRvck1hbmFnZXIuaTE4bi5y
dGwsdC5lZGl0b3JNYW5hZ2VyLmFkZCh0KSxuLmFyaWFfbGFiZWw9bi5hcmlhX2xhYmVsfHxOLmdl
dEF0dHJpYihyLCJhcmlhLWxhYmVsIix0LmdldExhbmcoImFyaWEucmljaF90ZXh0X2FyZWEiKSks
bi50aGVtZSYmKCJmdW5jdGlvbiIhPXR5cGVvZiBuLnRoZW1lPyhuLnRoZW1lPW4udGhlbWUucmVw
bGFjZSgvLS8sIiIpLGM9RS5nZXQobi50aGVtZSksdC50aGVtZT1uZXcgYyh0LEUudXJsc1tuLnRo
ZW1lXSksdC50aGVtZS5pbml0JiZ0LnRoZW1lLmluaXQodCxFLnVybHNbbi50aGVtZV18fHQuZG9j
dW1lbnRCYXNlVXJsLnJlcGxhY2UoL1wvJC8sIiIpKSk6dC50aGVtZT1uLnRoZW1lKSxUKG4ucGx1
Z2lucy5yZXBsYWNlKC9cLS9nLCIiKS5zcGxpdCgvWyAsXS8pLGUpLG4ucmVuZGVyX3VpJiZ0LnRo
ZW1lJiYodC5vcmdEaXNwbGF5PXIuc3R5bGUuZGlzcGxheSwiZnVuY3Rpb24iIT10eXBlb2Ygbi50
aGVtZT8oaT1uLndpZHRofHxyLnN0eWxlLndpZHRofHxyLm9mZnNldFdpZHRoLG89bi5oZWlnaHR8
fHIuc3R5bGUuaGVpZ2h0fHxyLm9mZnNldEhlaWdodCxhPW4ubWluX2hlaWdodHx8MTAwLHA9L15b
MC05XC5dKyh8cHgpJC9pLHAudGVzdCgiIitpKSYmKGk9TWF0aC5tYXgocGFyc2VJbnQoaSwxMCks
MTAwKSkscC50ZXN0KCIiK28pJiYobz1NYXRoLm1heChwYXJzZUludChvLDEwKSxhKSksbD10LnRo
ZW1lLnJlbmRlclVJKHt0YXJnZXROb2RlOnIsd2lkdGg6aSxoZWlnaHQ6byxkZWx0YVdpZHRoOm4u
ZGVsdGFfd2lkdGgsZGVsdGFIZWlnaHQ6bi5kZWx0YV9oZWlnaHR9KSxuLmNvbnRlbnRfZWRpdGFi
bGV8fChOLnNldFN0eWxlcyhsLnNpemVDb250YWluZXJ8fGwuZWRpdG9yQ29udGFpbmVyLHt3aTJk
dGg6aSxoMmVpZ2h0Om99KSxvPShsLmlmcmFtZUhlaWdodHx8bykrKCJudW1iZXIiPT10eXBlb2Yg
bz9sLmRlbHRhSGVpZ2h0fHwwOiIiKSxhPm8mJihvPWEpKSk6KGw9bi50aGVtZSh0LHIpLGwuZWRp
dG9yQ29udGFpbmVyLm5vZGVUeXBlJiYobC5lZGl0b3JDb250YWluZXI9bC5lZGl0b3JDb250YWlu
ZXIuaWQ9bC5lZGl0b3JDb250YWluZXIuaWR8fHQuaWQrIl9wYXJlbnQiKSxsLmlmcmFtZUNvbnRh
aW5lci5ub2RlVHlwZSYmKGwuaWZyYW1lQ29udGFpbmVyPWwuaWZyYW1lQ29udGFpbmVyLmlkPWwu
aWZyYW1lQ29udGFpbmVyLmlkfHx0LmlkKyJfaWZyYW1lY29udGFpbmVyIiksbz1sLmlmcmFtZUhl
aWdodHx8ci5vZmZzZXRIZWlnaHQpLHQuZWRpdG9yQ29udGFpbmVyPWwuZWRpdG9yQ29udGFpbmVy
KSxuLmNvbnRlbnRfY3NzJiZUKFIobi5jb250ZW50X2NzcyksZnVuY3Rpb24oZSl7dC5jb250ZW50
Q1NTLnB1c2godC5kb2N1bWVudEJhc2VVUkkudG9BYnNvbHV0ZShlKSl9KSxuLmNvbnRlbnRfc3R5
bGUmJnQuY29udGVudFN0eWxlcy5wdXNoKG4uY29udGVudF9zdHlsZSksbi5jb250ZW50X2VkaXRh
YmxlKXJldHVybiByPXM9bD1udWxsLHQuaW5pdENvbnRlbnRCb2R5KCk7Zm9yKHQuaWZyYW1lSFRN
TD1uLmRvY3R5cGUrIjxodG1sPjxoZWFkPiIsbi5kb2N1bWVudF9iYXNlX3VybCE9dC5kb2N1bWVu
dEJhc2VVcmwmJih0LmlmcmFtZUhUTUwrPSc8YmFzZSBocmVmPSInK3QuZG9jdW1lbnRCYXNlVVJJ
LmdldFVSSSgpKyciIC8+JyksIWIuY2FyZXRBZnRlciYmbi5pZTdfY29tcGF0JiYodC5pZnJhbWVI
VE1MKz0nPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT03IiAv
PicpLHQuaWZyYW1lSFRNTCs9JzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPicsaD0wO2g8dC5jb250ZW50Q1NTLmxlbmd0
aDtoKyspe3ZhciBnPXQuY29udGVudENTU1toXTt0LmlmcmFtZUhUTUwrPSc8bGluayB0eXBlPSJ0
ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSInK2crJyIgLz4nLHQubG9hZGVkQ1NTW2dd
PSEwfWQ9bi5ib2R5X2lkfHwidGlueW1jZSIsLTEhPWQuaW5kZXhPZigiPSIpJiYoZD10LmdldFBh
cmFtKCJib2R5X2lkIiwiIiwiaGFzaCIpLGQ9ZFt0LmlkXXx8ZCksZj1uLmJvZHlfY2xhc3N8fCIi
LC0xIT1mLmluZGV4T2YoIj0iKSYmKGY9dC5nZXRQYXJhbSgiYm9keV9jbGFzcyIsIiIsImhhc2gi
KSxmPWZbdC5pZF18fCIiKSx0LmlmcmFtZUhUTUwrPSc8L2hlYWQ+PGJvZHkgaWQ9IicrZCsnIiBj
bGFzcz0ibWNlLWNvbnRlbnQtYm9keSAnK2YrJyIgb25sb2FkPSJ3aW5kb3cucGFyZW50LnRpbnlt
Y2UuZ2V0KFwnJyt0LmlkKyInKS5maXJlKCdsb2FkJyk7XCI+PGJyPjwvYm9keT48L2h0bWw+Ijt2
YXIgdj0namF2YXNjcmlwdDooZnVuY3Rpb24oKXtkb2N1bWVudC5vcGVuKCk7ZG9jdW1lbnQuZG9t
YWluPSInK2RvY3VtZW50LmRvbWFpbisnIjt2YXIgZWQgPSB3aW5kb3cucGFyZW50LnRpbnltY2Uu
Z2V0KCInK3QuaWQrJyIpO2RvY3VtZW50LndyaXRlKGVkLmlmcmFtZUhUTUwpO2RvY3VtZW50LmNs
b3NlKCk7ZWQuaW5pdENvbnRlbnRCb2R5KHRydWUpO30pKCknO2lmKGRvY3VtZW50LmRvbWFpbiE9
bG9jYXRpb24uaG9zdG5hbWUmJih1PXYpLHM9Ti5hZGQobC5pZnJhbWVDb250YWluZXIsImlmcmFt
ZSIse2lkOnQuaWQrIl9pZnIiLHNyYzp1fHwnamF2YXNjcmlwdDoiIicsZnJhbWVCb3JkZXI6IjAi
LGFsbG93VHJhbnNwYXJlbmN5OiJ0cnVlIix0aXRsZTp0LmVkaXRvck1hbmFnZXIudHJhbnNsYXRl
KCJSaWNoIFRleHQgQXJlYS4gUHJlc3MgQUxULUY5IGZvciBtZW51LiBQcmVzcyBBTFQtRjEwIGZv
ciB0b29sYmFyLiBQcmVzcyBBTFQtMCBmb3IgaGVscCIpLHN0eWxlOnt3aWR0aDoiMTAwJSIsaGVp
Z2h0Om8sZGlzcGxheToiYmxvY2sifX0pLEgpdHJ5e3QuZ2V0RG9jKCl9Y2F0Y2goeSl7cy5zcmM9
dT12fXQuY29udGVudEFyZWFDb250YWluZXI9bC5pZnJhbWVDb250YWluZXIsbC5lZGl0b3JDb250
YWluZXImJihOLmdldChsLmVkaXRvckNvbnRhaW5lcikuc3R5bGUuZGlzcGxheT10Lm9yZ0Rpc3Bs
YXkpLE4uZ2V0KHQuaWQpLnN0eWxlLmRpc3BsYXk9Im5vbmUiLE4uc2V0QXR0cmliKHQuaWQsImFy
aWEtaGlkZGVuIiwhMCksdXx8dC5pbml0Q29udGVudEJvZHkoKSxyPXM9bD1udWxsfSxpbml0Q29u
dGVudEJvZHk6ZnVuY3Rpb24odCl7dmFyIG49dGhpcyxvPW4uc2V0dGluZ3MsZj1OLmdldChuLmlk
KSxwPW4uZ2V0RG9jKCksaCxtO28uaW5saW5lfHwobi5nZXRFbGVtZW50KCkuc3R5bGUudmlzaWJp
bGl0eT1uLm9yZ1Zpc2liaWxpdHkpLHR8fG8uY29udGVudF9lZGl0YWJsZXx8KHAub3BlbigpLHAu
d3JpdGUobi5pZnJhbWVIVE1MKSxwLmNsb3NlKCkpLG8uY29udGVudF9lZGl0YWJsZSYmKG4ub24o
InJlbW92ZSIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldEJvZHkoKTtOLnJlbW92ZUNsYXNzKGUs
Im1jZS1jb250ZW50LWJvZHkiKSxOLnJlbW92ZUNsYXNzKGUsIm1jZS1lZGl0LWZvY3VzIiksTi5z
ZXRBdHRyaWIoZSwiY29udGVudEVkaXRhYmxlIixudWxsKX0pLE4uYWRkQ2xhc3MoZiwibWNlLWNv
bnRlbnQtYm9keSIpLG4uY29udGVudERvY3VtZW50PXA9by5jb250ZW50X2RvY3VtZW50fHxkb2N1
bWVudCxuLmNvbnRlbnRXaW5kb3c9by5jb250ZW50X3dpbmRvd3x8d2luZG93LG4uYm9keUVsZW1l
bnQ9ZixvLmNvbnRlbnRfZG9jdW1lbnQ9by5jb250ZW50X3dpbmRvdz1udWxsLG8ucm9vdF9uYW1l
PWYubm9kZU5hbWUudG9Mb3dlckNhc2UoKSksaD1uLmdldEJvZHkoKSxoLmRpc2FibGVkPSEwLG8u
cmVhZG9ubHl8fChuLmlubGluZSYmInN0YXRpYyI9PU4uZ2V0U3R5bGUoaCwicG9zaXRpb24iLCEw
KSYmKGguc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiksaC5jb250ZW50RWRpdGFibGU9bi5nZXRQ
YXJhbSgiY29udGVudF9lZGl0YWJsZV9zdGF0ZSIsITApKSxoLmRpc2FibGVkPSExLG4uc2NoZW1h
PW5ldyBnKG8pLG4uZG9tPW5ldyBlKHAse2tlZXBfdmFsdWVzOiEwLHVybF9jb252ZXJ0ZXI6bi5j
b252ZXJ0VVJMLHVybF9jb252ZXJ0ZXJfc2NvcGU6bixoZXhfY29sb3JzOm8uZm9yY2VfaGV4X3N0
eWxlX2NvbG9ycyxjbGFzc19maWx0ZXI6by5jbGFzc19maWx0ZXIsdXBkYXRlX3N0eWxlczohMCxy
b290X2VsZW1lbnQ6by5jb250ZW50X2VkaXRhYmxlP24uaWQ6bnVsbCxjb2xsZWN0Om8uY29udGVu
dF9lZGl0YWJsZSxzY2hlbWE6bi5zY2hlbWEsb25TZXRBdHRyaWI6ZnVuY3Rpb24oZSl7bi5maXJl
KCJTZXRBdHRyaWIiLGUpCit9fSksbi5wYXJzZXI9bmV3IHYobyxuLnNjaGVtYSksbi5wYXJzZXIu
YWRkQXR0cmlidXRlRmlsdGVyKCJzcmMsaHJlZixzdHlsZSx0YWJpbmRleCIsZnVuY3Rpb24oZSx0
KXtmb3IodmFyIHI9ZS5sZW5ndGgsaSxvPW4uZG9tLGEscztyLS07KWk9ZVtyXSxhPWkuYXR0cih0
KSxzPSJkYXRhLW1jZS0iK3QsaS5hdHRyaWJ1dGVzLm1hcFtzXXx8KCJzdHlsZSI9PT10P2kuYXR0
cihzLG8uc2VyaWFsaXplU3R5bGUoby5wYXJzZVN0eWxlKGEpLGkubmFtZSkpOiJ0YWJpbmRleCI9
PT10PyhpLmF0dHIocyxhKSxpLmF0dHIodCxudWxsKSk6aS5hdHRyKHMsbi5jb252ZXJ0VVJMKGEs
dCxpLm5hbWUpKSl9KSxuLnBhcnNlci5hZGROb2RlRmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGUp
e2Zvcih2YXIgdD1lLmxlbmd0aCxuO3QtLTspbj1lW3RdLG4uYXR0cigidHlwZSIsIm1jZS0iKyhu
LmF0dHIoInR5cGUiKXx8InRleHQvamF2YXNjcmlwdCIpKX0pLG4ucGFyc2VyLmFkZE5vZGVGaWx0
ZXIoIiNjZGF0YSIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUubGVuZ3RoLG47dC0tOyluPWVbdF0s
bi50eXBlPTgsbi5uYW1lPSIjY29tbWVudCIsbi52YWx1ZT0iW0NEQVRBWyIrbi52YWx1ZSsiXV0i
fSksbi5wYXJzZXIuYWRkTm9kZUZpbHRlcigicCxoMSxoMixoMyxoNCxoNSxoNixkaXYiLGZ1bmN0
aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxpLG89bi5zY2hlbWEuZ2V0Tm9uRW1wdHlFbGVtZW50
cygpO3QtLTspaT1lW3RdLGkuaXNFbXB0eShvKSYmKGkuZW1wdHkoKS5hcHBlbmQobmV3IHIoImJy
IiwxKSkuc2hvcnRFbmRlZD0hMCl9KSxuLnNlcmlhbGl6ZXI9bmV3IGkobyxuKSxuLnNlbGVjdGlv
bj1uZXcgYShuLmRvbSxuLmdldFdpbigpLG4uc2VyaWFsaXplcixuKSxuLmZvcm1hdHRlcj1uZXcg
cyhuKSxuLnVuZG9NYW5hZ2VyPW5ldyBsKG4pLG4uZm9yY2VCbG9ja3M9bmV3IHUobiksbi5lbnRl
cktleT1uZXcgYyhuKSxuLmVkaXRvckNvbW1hbmRzPW5ldyBkKG4pLG4uZmlyZSgiUHJlSW5pdCIp
LG8uYnJvd3Nlcl9zcGVsbGNoZWNrfHxvLmdlY2tvX3NwZWxsY2hlY2t8fChwLmJvZHkuc3BlbGxj
aGVjaz0hMSxOLnNldEF0dHJpYihoLCJzcGVsbGNoZWNrIiwiZmFsc2UiKSksbi5maXJlKCJQb3N0
UmVuZGVyIiksbi5xdWlya3M9eShuKSxvLmRpcmVjdGlvbmFsaXR5JiYoaC5kaXI9by5kaXJlY3Rp
b25hbGl0eSksby5ub3dyYXAmJihoLnN0eWxlLndoaXRlU3BhY2U9Im5vd3JhcCIpLG8ucHJvdGVj
dCYmbi5vbigiQmVmb3JlU2V0Q29udGVudCIsZnVuY3Rpb24oZSl7VChvLnByb3RlY3QsZnVuY3Rp
b24odCl7ZS5jb250ZW50PWUuY29udGVudC5yZXBsYWNlKHQsZnVuY3Rpb24oZSl7cmV0dXJuIjwh
LS1tY2U6cHJvdGVjdGVkICIrZXNjYXBlKGUpKyItLT4ifSl9KX0pLG4ub24oIlNldENvbnRlbnQi
LGZ1bmN0aW9uKCl7bi5hZGRWaXN1YWwobi5nZXRCb2R5KCkpfSksby5wYWRkX2VtcHR5X2VkaXRv
ciYmbi5vbigiUG9zdFByb2Nlc3MiLGZ1bmN0aW9uKGUpe2UuY29udGVudD1lLmNvbnRlbnQucmVw
bGFjZSgvXig8cFtePl0qPigmbmJzcDt8JiMxNjA7fFxzfFx1MDBhMHwpPFwvcD5bXHJcbl0qfDxi
ciBcLz5bXHJcbl0qKSQvLCIiKX0pLG4ubG9hZCh7aW5pdGlhbDohMCxmb3JtYXQ6Imh0bWwifSks
bi5zdGFydENvbnRlbnQ9bi5nZXRDb250ZW50KHtmb3JtYXQ6InJhdyJ9KSxuLmluaXRpYWxpemVk
PSEwLG4uYmluZFBlbmRpbmdFdmVudERlbGVnYXRlcygpLG4uZmlyZSgiaW5pdCIpLG4uZm9jdXMo
ITApLG4ubm9kZUNoYW5nZWQoe2luaXRpYWw6ITB9KSxuLmV4ZWNDYWxsYmFjaygiaW5pdF9pbnN0
YW5jZV9jYWxsYmFjayIsbiksbi5jb250ZW50U3R5bGVzLmxlbmd0aD4wJiYobT0iIixUKG4uY29u
dGVudFN0eWxlcyxmdW5jdGlvbihlKXttKz1lKyJcclxuIn0pLG4uZG9tLmFkZFN0eWxlKG0pKSxU
KG4uY29udGVudENTUyxmdW5jdGlvbihlKXtuLmxvYWRlZENTU1tlXXx8KG4uZG9tLmxvYWRDU1Mo
ZSksbi5sb2FkZWRDU1NbZV09ITApfSksby5hdXRvX2ZvY3VzJiZzZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7dmFyIGU9bi5lZGl0b3JNYW5hZ2VyLmdldChvLmF1dG9fZm9jdXMpO2Uuc2VsZWN0aW9uLnNl
bGVjdChlLmdldEJvZHkoKSwxKSxlLnNlbGVjdGlvbi5jb2xsYXBzZSgxKSxlLmdldEJvZHkoKS5m
b2N1cygpLGUuZ2V0V2luKCkuZm9jdXMoKX0sMTAwKSxmPXA9aD1udWxsfSxmb2N1czpmdW5jdGlv
bihlKXt2YXIgdCxuPXRoaXMscj1uLnNlbGVjdGlvbixpPW4uc2V0dGluZ3MuY29udGVudF9lZGl0
YWJsZSxvLGEscz1uLmdldERvYygpLGw7aWYoIWUpe2lmKG89ci5nZXRSbmcoKSxvLml0ZW0mJihh
PW8uaXRlbSgwKSksbi5fcmVmcmVzaENvbnRlbnRFZGl0YWJsZSgpLGl8fChiLm9wZXJhfHxuLmdl
dEJvZHkoKS5mb2N1cygpLG4uZ2V0V2luKCkuZm9jdXMoKSksTXx8aSl7aWYobD1uLmdldEJvZHko
KSxsLnNldEFjdGl2ZSl0cnl7bC5zZXRBY3RpdmUoKX1jYXRjaChjKXtsLmZvY3VzKCl9ZWxzZSBs
LmZvY3VzKCk7aSYmci5ub3JtYWxpemUoKX1hJiZhLm93bmVyRG9jdW1lbnQ9PXMmJihvPXMuYm9k
eS5jcmVhdGVDb250cm9sUmFuZ2UoKSxvLmFkZEVsZW1lbnQoYSksby5zZWxlY3QoKSl9bi5lZGl0
b3JNYW5hZ2VyLmFjdGl2ZUVkaXRvciE9biYmKCh0PW4uZWRpdG9yTWFuYWdlci5hY3RpdmVFZGl0
b3IpJiZ0LmZpcmUoImRlYWN0aXZhdGUiLHtyZWxhdGVkVGFyZ2V0Om59KSxuLmZpcmUoImFjdGl2
YXRlIix7cmVsYXRlZFRhcmdldDp0fSkpLG4uZWRpdG9yTWFuYWdlci5hY3RpdmVFZGl0b3I9bn0s
ZXhlY0NhbGxiYWNrOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10LnNldHRpbmdzW2VdLHI7aWYo
bilyZXR1cm4gdC5jYWxsYmFja0xvb2t1cCYmKHI9dC5jYWxsYmFja0xvb2t1cFtlXSkmJihuPXIu
ZnVuYyxyPXIuc2NvcGUpLCJzdHJpbmciPT10eXBlb2YgbiYmKHI9bi5yZXBsYWNlKC9cLlx3KyQv
LCIiKSxyPXI/RChyKTowLG49RChuKSx0LmNhbGxiYWNrTG9va3VwPXQuY2FsbGJhY2tMb29rdXB8
fHt9LHQuY2FsbGJhY2tMb29rdXBbZV09e2Z1bmM6bixzY29wZTpyfSksbi5hcHBseShyfHx0LEFy
cmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSl9LHRyYW5zbGF0ZTpmdW5jdGlv
bihlKXt2YXIgdD10aGlzLnNldHRpbmdzLmxhbmd1YWdlfHwiZW4iLG49dGhpcy5lZGl0b3JNYW5h
Z2VyLmkxOG47cmV0dXJuIGU/bi5kYXRhW3QrIi4iK2VdfHxlLnJlcGxhY2UoL1x7XCMoW15cfV0r
KVx9L2csZnVuY3Rpb24oZSxyKXtyZXR1cm4gbi5kYXRhW3QrIi4iK3JdfHwieyMiK3IrIn0ifSk6
IiJ9LGdldExhbmc6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdGhpcy5lZGl0b3JNYW5hZ2VyLmkxOG4u
ZGF0YVsodGhpcy5zZXR0aW5ncy5sYW5ndWFnZXx8ImVuIikrIi4iK2VdfHwobiE9PXQ/bjoieyMi
K2UrIn0iKX0sZ2V0UGFyYW06ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUgaW4gdGhpcy5zZXR0aW5n
cz90aGlzLnNldHRpbmdzW2VdOnQsaTtyZXR1cm4iaGFzaCI9PT1uPyhpPXt9LCJzdHJpbmciPT10
eXBlb2Ygcj9UKHIuc3BsaXQoci5pbmRleE9mKCI9Iik+MD8vWzssXSg/IVtePTssXSooPzpbOyxd
fCQpKS86IiwiKSxmdW5jdGlvbihlKXtlPWUuc3BsaXQoIj0iKSxpW0IoZVswXSldPUIoZS5sZW5n
dGg+MT9lWzFdOmUpfSk6aT1yLGkpOnJ9LG5vZGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhp
cyx0PWUuc2VsZWN0aW9uLG4scixpOyFlLmluaXRpYWxpemVkfHxlLnNldHRpbmdzLmRpc2FibGVf
bm9kZWNoYW5nZXx8ZS5zZXR0aW5ncy5yZWFkb25seXx8KGk9ZS5nZXRCb2R5KCksbj10LmdldFN0
YXJ0KCl8fGksbj1IJiZuLm93bmVyRG9jdW1lbnQhPWUuZ2V0RG9jKCk/ZS5nZXRCb2R5KCk6biwi
SU1HIj09bi5ub2RlTmFtZSYmdC5pc0NvbGxhcHNlZCgpJiYobj1uLnBhcmVudE5vZGUpLHI9W10s
ZS5kb20uZ2V0UGFyZW50KG4sZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1pPyEwOnZvaWQgci5wdXNo
KGUpfSksZS5maXJlKCJOb2RlQ2hhbmdlIix7ZWxlbWVudDpuLHBhcmVudHM6cn0pKX0sYWRkQnV0
dG9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0LmNtZCYmKHQub25jbGljaz1mdW5jdGlvbigp
e24uZXhlY0NvbW1hbmQodC5jbWQpfSksdC50ZXh0fHx0Lmljb258fCh0Lmljb249ZSksbi5idXR0
b25zPW4uYnV0dG9uc3x8e30sdC50b29sdGlwPXQudG9vbHRpcHx8dC50aXRsZSxuLmJ1dHRvbnNb
ZV09dH0sYWRkTWVudUl0ZW06ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3QuY21kJiYodC5vbmNs
aWNrPWZ1bmN0aW9uKCl7bi5leGVjQ29tbWFuZCh0LmNtZCl9KSxuLm1lbnVJdGVtcz1uLm1lbnVJ
dGVtc3x8e30sbi5tZW51SXRlbXNbZV09dH0sYWRkQ29tbWFuZDpmdW5jdGlvbihlLHQsbil7dGhp
cy5leGVjQ29tbWFuZHNbZV09e2Z1bmM6dCxzY29wZTpufHx0aGlzfX0sYWRkUXVlcnlTdGF0ZUhh
bmRsZXI6ZnVuY3Rpb24oZSx0LG4pe3RoaXMucXVlcnlTdGF0ZUNvbW1hbmRzW2VdPXtmdW5jOnQs
c2NvcGU6bnx8dGhpc319LGFkZFF1ZXJ5VmFsdWVIYW5kbGVyOmZ1bmN0aW9uKGUsdCxuKXt0aGlz
LnF1ZXJ5VmFsdWVDb21tYW5kc1tlXT17ZnVuYzp0LHNjb3BlOm58fHRoaXN9fSxhZGRTaG9ydGN1
dDpmdW5jdGlvbihlLHQsbixyKXt0aGlzLnNob3J0Y3V0cy5hZGQoZSx0LG4scil9LGV4ZWNDb21t
YW5kOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPXRoaXMsbz0wLGE7cmV0dXJuL14obWNlQWRkVW5k
b0xldmVsfG1jZUVuZFVuZG9MZXZlbHxtY2VCZWdpblVuZG9MZXZlbHxtY2VSZXBhaW50KSQvLnRl
c3QoZSl8fHImJnIuc2tpcF9mb2N1c3x8aS5mb2N1cygpLHI9ayh7fSxyKSxyPWkuZmlyZSgiQmVm
b3JlRXhlY0NvbW1hbmQiLHtjb21tYW5kOmUsdWk6dCx2YWx1ZTpufSksci5pc0RlZmF1bHRQcmV2
ZW50ZWQoKT8hMTooYT1pLmV4ZWNDb21tYW5kc1tlXSkmJmEuZnVuYy5jYWxsKGEuc2NvcGUsdCxu
KSE9PSEwPyhpLmZpcmUoIkV4ZWNDb21tYW5kIix7Y29tbWFuZDplLHVpOnQsdmFsdWU6bn0pLCEw
KTooVChpLnBsdWdpbnMsZnVuY3Rpb24ocil7cmV0dXJuIHIuZXhlY0NvbW1hbmQmJnIuZXhlY0Nv
bW1hbmQoZSx0LG4pPyhpLmZpcmUoIkV4ZWNDb21tYW5kIix7Y29tbWFuZDplLHVpOnQsdmFsdWU6
bn0pLG89ITAsITEpOnZvaWQgMH0pLG8/bzppLnRoZW1lJiZpLnRoZW1lLmV4ZWNDb21tYW5kJiZp
LnRoZW1lLmV4ZWNDb21tYW5kKGUsdCxuKT8oaS5maXJlKCJFeGVjQ29tbWFuZCIse2NvbW1hbmQ6
ZSx1aTp0LHZhbHVlOm59KSwhMCk6aS5lZGl0b3JDb21tYW5kcy5leGVjQ29tbWFuZChlLHQsbik/
KGkuZmlyZSgiRXhlY0NvbW1hbmQiLHtjb21tYW5kOmUsdWk6dCx2YWx1ZTpufSksITApOihpLmdl
dERvYygpLmV4ZWNDb21tYW5kKGUsdCxuKSx2b2lkIGkuZmlyZSgiRXhlY0NvbW1hbmQiLHtjb21t
YW5kOmUsdWk6dCx2YWx1ZTpufSkpKX0scXVlcnlDb21tYW5kU3RhdGU6ZnVuY3Rpb24oZSl7dmFy
IHQ9dGhpcyxuLHI7aWYoIXQuX2lzSGlkZGVuKCkpe2lmKChuPXQucXVlcnlTdGF0ZUNvbW1hbmRz
W2VdKSYmKHI9bi5mdW5jLmNhbGwobi5zY29wZSksciE9PSEwKSlyZXR1cm4gcjtpZihyPXQuZWRp
dG9yQ29tbWFuZHMucXVlcnlDb21tYW5kU3RhdGUoZSksLTEhPT1yKXJldHVybiByO3RyeXtyZXR1
cm4gdC5nZXREb2MoKS5xdWVyeUNvbW1hbmRTdGF0ZShlKX1jYXRjaChpKXt9fX0scXVlcnlDb21t
YW5kVmFsdWU6ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxyLGk7aWYoIW4uX2lzSGlkZGVuKCkpe2lm
KChyPW4ucXVlcnlWYWx1ZUNvbW1hbmRzW2VdKSYmKGk9ci5mdW5jLmNhbGwoci5zY29wZSksaSE9
PSEwKSlyZXR1cm4gaTtpZihpPW4uZWRpdG9yQ29tbWFuZHMucXVlcnlDb21tYW5kVmFsdWUoZSks
aSE9PXQpcmV0dXJuIGk7dHJ5e3JldHVybiBuLmdldERvYygpLnF1ZXJ5Q29tbWFuZFZhbHVlKGUp
fWNhdGNoKG8pe319fSxzaG93OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLmhpZGRlbiYmKGUuaGlk
ZGVuPSExLGUuaW5saW5lP2UuZ2V0Qm9keSgpLmNvbnRlbnRFZGl0YWJsZT0hMDooTi5zaG93KGUu
Z2V0Q29udGFpbmVyKCkpLE4uaGlkZShlLmlkKSksZS5sb2FkKCksZS5maXJlKCJzaG93IikpfSxo
aWRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuZ2V0RG9jKCk7ZS5oaWRkZW58fChlLmhpZGRl
bj0hMCxIJiZ0JiYhZS5pbmxpbmUmJnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpLGUuc2F2ZSgp
LGUuaW5saW5lPyhlLmdldEJvZHkoKS5jb250ZW50RWRpdGFibGU9ITEsZT09ZS5lZGl0b3JNYW5h
Z2VyLmZvY3VzZWRFZGl0b3ImJihlLmVkaXRvck1hbmFnZXIuZm9jdXNlZEVkaXRvcj1udWxsKSk6
KE4uaGlkZShlLmdldENvbnRhaW5lcigpKSxOLnNldFN0eWxlKGUuaWQsImRpc3BsYXkiLGUub3Jn
RGlzcGxheSkpLGUuZmlyZSgiaGlkZSIpKX0saXNIaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hIXRo
aXMuaGlkZGVufSxzZXRQcm9ncmVzc1N0YXRlOmZ1bmN0aW9uKGUsdCl7dGhpcy5maXJlKCJQcm9n
cmVzc1N0YXRlIix7c3RhdGU6ZSx0aW1lOnR9KX0sbG9hZDpmdW5jdGlvbihlKXt2YXIgbj10aGlz
LHI9bi5nZXRFbGVtZW50KCksaTtyZXR1cm4gcj8oZT1lfHx7fSxlLmxvYWQ9ITAsaT1uLnNldENv
bnRlbnQoci52YWx1ZSE9PXQ/ci52YWx1ZTpyLmlubmVySFRNTCxlKSxlLmVsZW1lbnQ9cixlLm5v
X2V2ZW50c3x8bi5maXJlKCJMb2FkQ29udGVudCIsZSksZS5lbGVtZW50PXI9bnVsbCxpKTp2b2lk
IDB9LHNhdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQuZ2V0RWxlbWVudCgpLHIsaTtpZihu
JiZ0LmluaXRpYWxpemVkKXJldHVybiBlPWV8fHt9LGUuc2F2ZT0hMCxlLmVsZW1lbnQ9bixyPWUu
Y29udGVudD10LmdldENvbnRlbnQoZSksZS5ub19ldmVudHN8fHQuZmlyZSgiU2F2ZUNvbnRlbnQi
LGUpLHI9ZS5jb250ZW50LC9URVhUQVJFQXxJTlBVVC9pLnRlc3Qobi5ub2RlTmFtZSk/bi52YWx1
ZT1yOih0LmlubGluZXx8KG4uaW5uZXJIVE1MPXIpLChpPU4uZ2V0UGFyZW50KHQuaWQsImZvcm0i
KSkmJlQoaS5lbGVtZW50cyxmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT10LmlkPyhlLnZhbHVl
PXIsITEpOnZvaWQgMH0pKSxlLmVsZW1lbnQ9bj1udWxsLGUuc2V0X2RpcnR5IT09ITEmJih0Lmlz
Tm90RGlydHk9ITApLHJ9LHNldENvbnRlbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9bi5n
ZXRCb2R5KCksaTtyZXR1cm4gdD10fHx7fSx0LmZvcm1hdD10LmZvcm1hdHx8Imh0bWwiLHQuc2V0
PSEwLHQuY29udGVudD1lLHQubm9fZXZlbnRzfHxuLmZpcmUoIkJlZm9yZVNldENvbnRlbnQiLHQp
LGU9dC5jb250ZW50LDA9PT1lLmxlbmd0aHx8L15ccyskLy50ZXN0KGUpPyhpPW4uc2V0dGluZ3Mu
Zm9yY2VkX3Jvb3RfYmxvY2ssaSYmbi5zY2hlbWEuaXNWYWxpZENoaWxkKHIubm9kZU5hbWUudG9M
b3dlckNhc2UoKSxpLnRvTG93ZXJDYXNlKCkpPyhlPUgmJjExPkg/IiI6JzxiciBkYXRhLW1jZS1i
b2d1cz0iMSI+JyxlPW4uZG9tLmNyZWF0ZUhUTUwoaSxuLnNldHRpbmdzLmZvcmNlZF9yb290X2Js
b2NrX2F0dHJzLGUpKTpIfHwoZT0nPGJyIGRhdGEtbWNlLWJvZ3VzPSIxIj4nKSxyLmlubmVySFRN
TD1lLG4uZmlyZSgiU2V0Q29udGVudCIsdCkpOigicmF3IiE9PXQuZm9ybWF0JiYoZT1uZXcgbyh7
fSxuLnNjaGVtYSkuc2VyaWFsaXplKG4ucGFyc2VyLnBhcnNlKGUse2lzUm9vdENvbnRlbnQ6ITB9
KSkpLHQuY29udGVudD1CKGUpLG4uZG9tLnNldEhUTUwocix0LmNvbnRlbnQpLHQubm9fZXZlbnRz
fHxuLmZpcmUoIlNldENvbnRlbnQiLHQpKSx0LmNvbnRlbnR9LGdldENvbnRlbnQ6ZnVuY3Rpb24o
ZSl7dmFyIHQ9dGhpcyxuLHI9dC5nZXRCb2R5KCk7cmV0dXJuIGU9ZXx8e30sZS5mb3JtYXQ9ZS5m
b3JtYXR8fCJodG1sIixlLmdldD0hMCxlLmdldElubmVyPSEwLGUubm9fZXZlbnRzfHx0LmZpcmUo
IkJlZm9yZUdldENvbnRlbnQiLGUpLG49InJhdyI9PWUuZm9ybWF0P3IuaW5uZXJIVE1MOiJ0ZXh0
Ij09ZS5mb3JtYXQ/ci5pbm5lclRleHR8fHIudGV4dENvbnRlbnQ6dC5zZXJpYWxpemVyLnNlcmlh
bGl6ZShyLGUpLGUuY29udGVudD0idGV4dCIhPWUuZm9ybWF0P0Iobik6bixlLm5vX2V2ZW50c3x8
dC5maXJlKCJHZXRDb250ZW50IixlKSxlLmNvbnRlbnR9LGluc2VydENvbnRlbnQ6ZnVuY3Rpb24o
ZSl7dGhpcy5leGVjQ29tbWFuZCgibWNlSW5zZXJ0Q29udGVudCIsITEsZSl9LGlzRGlydHk6ZnVu
Y3Rpb24oKXtyZXR1cm4hdGhpcy5pc05vdERpcnR5fSxnZXRDb250YWluZXI6ZnVuY3Rpb24oKXt2
YXIgZT10aGlzO3JldHVybiBlLmNvbnRhaW5lcnx8KGUuY29udGFpbmVyPU4uZ2V0KGUuZWRpdG9y
Q29udGFpbmVyfHxlLmlkKyJfcGFyZW50IikpLGUuY29udGFpbmVyfSxnZXRDb250ZW50QXJlYUNv
bnRhaW5lcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnRBcmVhQ29udGFpbmVyfSxnZXRF
bGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIE4uZ2V0KHRoaXMuc2V0dGluZ3MuY29udGVudF9lbGVt
ZW50fHx0aGlzLmlkKX0sZ2V0V2luOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0O3JldHVybiBlLmNv
bnRlbnRXaW5kb3d8fCh0PU4uZ2V0KGUuaWQrIl9pZnIiKSx0JiYoZS5jb250ZW50V2luZG93PXQu
Y29udGVudFdpbmRvdykpLGUuY29udGVudFdpbmRvd30sZ2V0RG9jOmZ1bmN0aW9uKCl7dmFyIGU9
dGhpcyx0O3JldHVybiBlLmNvbnRlbnREb2N1bWVudHx8KHQ9ZS5nZXRXaW4oKSx0JiYoZS5jb250
ZW50RG9jdW1lbnQ9dC5kb2N1bWVudCkpLGUuY29udGVudERvY3VtZW50fSxnZXRCb2R5OmZ1bmN0
aW9uKCl7cmV0dXJuIHRoaXMuYm9keUVsZW1lbnR8fHRoaXMuZ2V0RG9jKCkuYm9keX0sY29udmVy
dFVSTDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcyxpPXIuc2V0dGluZ3M7cmV0dXJuIGkudXJs
Y29udmVydGVyX2NhbGxiYWNrP3IuZXhlY0NhbGxiYWNrKCJ1cmxjb252ZXJ0ZXJfY2FsbGJhY2si
LGUsbiwhMCx0KTohaS5jb252ZXJ0X3VybHN8fG4mJiJMSU5LIj09bi5ub2RlTmFtZXx8MD09PWUu
aW5kZXhPZigiZmlsZToiKXx8MD09PWUubGVuZ3RoP2U6aS5yZWxhdGl2ZV91cmxzP3IuZG9jdW1l
bnRCYXNlVVJJLnRvUmVsYXRpdmUoZSk6ZT1yLmRvY3VtZW50QmFzZVVSSS50b0Fic29sdXRlKGUs
aS5yZW1vdmVfc2NyaXB0X2hvc3QpfSxhZGRWaXN1YWw6ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxy
PW4uc2V0dGluZ3MsaT1uLmRvbSxvO2U9ZXx8bi5nZXRCb2R5KCksbi5oYXNWaXN1YWw9PT10JiYo
bi5oYXNWaXN1YWw9ci52aXN1YWwpLFQoaS5zZWxlY3QoInRhYmxlLGEiLGUpLGZ1bmN0aW9uKGUp
e3ZhciB0O3N3aXRjaChlLm5vZGVOYW1lKXtjYXNlIlRBQkxFIjpyZXR1cm4gbz1yLnZpc3VhbF90
YWJsZV9jbGFzc3x8Im1jZS1pdGVtLXRhYmxlIix0PWkuZ2V0QXR0cmliKGUsImJvcmRlciIpLHZv
aWQodCYmIjAiIT10fHwobi5oYXNWaXN1YWw/aS5hZGRDbGFzcyhlLG8pOmkucmVtb3ZlQ2xhc3Mo
ZSxvKSkpO2Nhc2UiQSI6cmV0dXJuIHZvaWQoaS5nZXRBdHRyaWIoZSwiaHJlZiIsITEpfHwodD1p
LmdldEF0dHJpYihlLCJuYW1lIil8fGUuaWQsbz1yLnZpc3VhbF9hbmNob3JfY2xhc3N8fCJtY2Ut
aXRlbS1hbmNob3IiLHQmJihuLmhhc1Zpc3VhbD9pLmFkZENsYXNzKGUsbyk6aS5yZW1vdmVDbGFz
cyhlLG8pKSkpfX0pLG4uZmlyZSgiVmlzdWFsQWlkIix7ZWxlbWVudDplLGhhc1Zpc3VhbDpuLmhh
c1Zpc3VhbH0pfSxyZW1vdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCFlLnJlbW92ZWQpe2Uu
cmVtb3ZlZD0xLGUuc2F2ZSgpLGUuaGFzSGlkZGVuSW5wdXQmJk4ucmVtb3ZlKGUuZ2V0RWxlbWVu
dCgpLm5leHRTaWJsaW5nKSxlLmlubGluZXx8KEgmJjEwPkgmJmUuZ2V0RG9jKCkuZXhlY0NvbW1h
bmQoIlNlbGVjdEFsbCIsITEsbnVsbCksTi5zZXRTdHlsZShlLmlkLCJkaXNwbGF5IixlLm9yZ0Rp
c3BsYXkpLGUuZ2V0Qm9keSgpLm9ubG9hZD1udWxsLEwudW5iaW5kKGUuZ2V0V2luKCkpLEwudW5i
aW5kKGUuZ2V0RG9jKCkpKTt2YXIgdD1lLmdldENvbnRhaW5lcigpO0wudW5iaW5kKGUuZ2V0Qm9k
eSgpKSxMLnVuYmluZCh0KSxlLmZpcmUoInJlbW92ZSIpLGUuZWRpdG9yTWFuYWdlci5yZW1vdmUo
ZSksTi5yZW1vdmUodCksZS5kZXN0cm95KCl9fSxkZXN0cm95OmZ1bmN0aW9uKGUpe3ZhciB0PXRo
aXMsbjtpZighdC5kZXN0cm95ZWQpe2lmKCFlJiYhdC5yZW1vdmVkKXJldHVybiB2b2lkIHQucmVt
b3ZlKCk7ZSYmTSYmKEwudW5iaW5kKHQuZ2V0RG9jKCkpLEwudW5iaW5kKHQuZ2V0V2luKCkpLEwu
dW5iaW5kKHQuZ2V0Qm9keSgpKSksZXx8KHQuZWRpdG9yTWFuYWdlci5vZmYoImJlZm9yZXVubG9h
ZCIsdC5fYmVmb3JlVW5sb2FkKSx0LnRoZW1lJiZ0LnRoZW1lLmRlc3Ryb3kmJnQudGhlbWUuZGVz
dHJveSgpLHQuc2VsZWN0aW9uLmRlc3Ryb3koKSx0LmRvbS5kZXN0cm95KCkpLG49dC5mb3JtRWxl
bWVudCxuJiYobi5fbWNlT2xkU3VibWl0JiYobi5zdWJtaXQ9bi5fbWNlT2xkU3VibWl0LG4uX21j
ZU9sZFN1Ym1pdD1udWxsKSxOLnVuYmluZChuLCJzdWJtaXQgcmVzZXQiLHQuZm9ybUV2ZW50RGVs
ZWdhdGUpKSx0LmNvbnRlbnRBcmVhQ29udGFpbmVyPXQuZm9ybUVsZW1lbnQ9dC5jb250YWluZXI9
dC5lZGl0b3JDb250YWluZXI9bnVsbCx0LnNldHRpbmdzLmNvbnRlbnRfZWxlbWVudD10LmJvZHlF
bGVtZW50PXQuY29udGVudERvY3VtZW50PXQuY29udGVudFdpbmRvdz1udWxsLHQuc2VsZWN0aW9u
JiYodC5zZWxlY3Rpb249dC5zZWxlY3Rpb24ud2luPXQuc2VsZWN0aW9uLmRvbT10LnNlbGVjdGlv
bi5kb20uZG9jPW51bGwpLHQuZGVzdHJveWVkPTF9fSxfcmVmcmVzaENvbnRlbnRFZGl0YWJsZTpm
dW5jdGlvbigpe3ZhciBlPXRoaXMsdCxuO2UuX2lzSGlkZGVuKCkmJih0PWUuZ2V0Qm9keSgpLG49
dC5wYXJlbnROb2RlLG4ucmVtb3ZlQ2hpbGQodCksbi5hcHBlbmRDaGlsZCh0KSx0LmZvY3VzKCkp
fSxfaXNIaWRkZW46ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gTT8oZT10aGlzLnNlbGVjdGlvbi5n
ZXRTZWwoKSwhZXx8IWUucmFuZ2VDb3VudHx8MD09PWUucmFuZ2VDb3VudCk6MH19LGsoXy5wcm90
b3R5cGUseCksX30pLHIoY3QsW10sZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm57cnRsOiExLGFk
ZDpmdW5jdGlvbih0LG4pe2Zvcih2YXIgciBpbiBuKWVbcl09bltyXTt0aGlzLnJ0bD10aGlzLnJ0
bHx8InJ0bCI9PT1lLl9kaXJ9LHRyYW5zbGF0ZTpmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIj09
dHlwZW9mIHQpcmV0dXJuIHQ7aWYoInN0cmluZyIhPXR5cGVvZiB0JiZ0LnJhdylyZXR1cm4gdC5y
YXc7aWYodC5wdXNoKXt2YXIgbj10LnNsaWNlKDEpO3Q9KGVbdFswXV18fHRbMF0pLnJlcGxhY2Uo
L1x7KFteXH1dKylcfS9nLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5bdF19KX1yZXR1cm4gZVt0XXx8
dH0sZGF0YTplfX0pLHIodXQsW3ksZ10sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUpe2Z1bmN0
aW9uIHMoKXt0cnl7cmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnR9Y2F0Y2goZSl7cmV0dXJu
IGRvY3VtZW50LmJvZHl9fWZ1bmN0aW9uIGwoZSx0KXtpZih0JiZ0LnN0YXJ0Q29udGFpbmVyKXtp
ZighZS5pc0NoaWxkT2YodC5zdGFydENvbnRhaW5lcixlLmdldFJvb3QoKSl8fCFlLmlzQ2hpbGRP
Zih0LmVuZENvbnRhaW5lcixlLmdldFJvb3QoKSkpcmV0dXJuO3JldHVybntzdGFydENvbnRhaW5l
cjp0LnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0OnQuc3RhcnRPZmZzZXQsZW5kQ29udGFpbmVy
OnQuZW5kQ29udGFpbmVyLGVuZE9mZnNldDp0LmVuZE9mZnNldH19cmV0dXJuIHR9ZnVuY3Rpb24g
YyhlLHQpe3ZhciBuO3JldHVybiB0LnN0YXJ0Q29udGFpbmVyPyhuPWUuZ2V0RG9jKCkuY3JlYXRl
UmFuZ2UoKSxuLnNldFN0YXJ0KHQuc3RhcnRDb250YWluZXIsdC5zdGFydE9mZnNldCksbi5zZXRF
bmQodC5lbmRDb250YWluZXIsdC5lbmRPZmZzZXQpKTpuPXQsbn1mdW5jdGlvbiB1KGUpe3JldHVy
biEhYS5nZXRQYXJlbnQoZSxuLmlzRWRpdG9yVUlFbGVtZW50KX1mdW5jdGlvbiBkKG4pe3ZhciBk
PW4uZWRpdG9yO2Qub24oImluaXQiLGZ1bmN0aW9uKCl7KGQuaW5saW5lfHx0LmllKSYmKGQub24o
Im5vZGVjaGFuZ2Uga2V5dXAiLGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dDtlJiZlLmlkPT1kLmlkKyJfaWZyIiYmKGU9ZC5nZXRCb2R5KCkpLGQuZG9tLmlzQ2hpbGRPZihl
LGQuZ2V0Qm9keSgpKSYmKGQubGFzdFJuZz1kLnNlbGVjdGlvbi5nZXRSbmcoKSl9KSx0LndlYmtp
dCYmIXImJihyPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5hY3RpdmVFZGl0b3I7aWYodCYmdC5zZWxlY3Rp
b24pe3ZhciBuPXQuc2VsZWN0aW9uLmdldFJuZygpO24mJiFuLmNvbGxhcHNlZCYmKGQubGFzdFJu
Zz1uKX19LGEuYmluZChkb2N1bWVudCwic2VsZWN0aW9uY2hhbmdlIixyKSkpfSksZC5vbigic2V0
Y29udGVudCIsZnVuY3Rpb24oKXtkLmxhc3RSbmc9bnVsbH0pLGQub24oIm1vdXNlZG93biIsZnVu
Y3Rpb24oKXtkLnNlbGVjdGlvbi5sYXN0Rm9jdXNCb29rbWFyaz1udWxsfSksZC5vbigiZm9jdXNp
biIsZnVuY3Rpb24oKXt2YXIgdD1lLmZvY3VzZWRFZGl0b3I7ZC5zZWxlY3Rpb24ubGFzdEZvY3Vz
Qm9va21hcmsmJihkLnNlbGVjdGlvbi5zZXRSbmcoYyhkLGQuc2VsZWN0aW9uLmxhc3RGb2N1c0Jv
b2ttYXJrKSksZC5zZWxlY3Rpb24ubGFzdEZvY3VzQm9va21hcms9bnVsbCksdCE9ZCYmKHQmJnQu
ZmlyZSgiYmx1ciIse2ZvY3VzZWRFZGl0b3I6ZH0pLGUuYWN0aXZlRWRpdG9yPWQsZS5mb2N1c2Vk
RWRpdG9yPWQsZC5maXJlKCJmb2N1cyIse2JsdXJyZWRFZGl0b3I6dH0pLGQuZm9jdXMoITApKSxk
Lmxhc3RSbmc9bnVsbH0pLGQub24oImZvY3Vzb3V0IixmdW5jdGlvbigpe3dpbmRvdy5zZXRUaW1l
b3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZS5mb2N1c2VkRWRpdG9yO3UocygpKXx8dCE9ZHx8KGQuZmly
ZSgiYmx1ciIse2ZvY3VzZWRFZGl0b3I6bnVsbH0pLGUuZm9jdXNlZEVkaXRvcj1udWxsLGQuc2Vs
ZWN0aW9uJiYoZC5zZWxlY3Rpb24ubGFzdEZvY3VzQm9va21hcms9bnVsbCkpfSwwKX0pLGl8fChp
PWZ1bmN0aW9uKHQpe3ZhciBuPWUuYWN0aXZlRWRpdG9yO24mJnQudGFyZ2V0Lm93bmVyRG9jdW1l
bnQ9PWRvY3VtZW50JiYobi5zZWxlY3Rpb24mJihuLnNlbGVjdGlvbi5sYXN0Rm9jdXNCb29rbWFy
az1sKG4uZG9tLG4ubGFzdFJuZykpLHUodC50YXJnZXQpfHxlLmZvY3VzZWRFZGl0b3IhPW58fChu
LmZpcmUoImJsdXIiLHtmb2N1c2VkRWRpdG9yOm51bGx9KSxlLmZvY3VzZWRFZGl0b3I9bnVsbCkp
fSxhLmJpbmQoZG9jdW1lbnQsImZvY3VzaW4iLGkpKSxkLmlubGluZSYmIW8mJihvPWZ1bmN0aW9u
KHQpe3ZhciBuPWUuYWN0aXZlRWRpdG9yO2lmKG4uaW5saW5lJiYhbi5kb20uaXNDaGlsZE9mKHQu
dGFyZ2V0LG4uZ2V0Qm9keSgpKSl7dmFyIHI9bi5zZWxlY3Rpb24uZ2V0Um5nKCk7ci5jb2xsYXBz
ZWR8fChuLmxhc3RSbmc9cil9fSxhLmJpbmQoZG9jdW1lbnQsIm1vdXNldXAiLG8pKX1mdW5jdGlv
biBmKHQpe2UuZm9jdXNlZEVkaXRvcj09dC5lZGl0b3ImJihlLmZvY3VzZWRFZGl0b3I9bnVsbCks
ZS5hY3RpdmVFZGl0b3J8fChhLnVuYmluZChkb2N1bWVudCwic2VsZWN0aW9uY2hhbmdlIixyKSxh
LnVuYmluZChkb2N1bWVudCwiZm9jdXNpbiIsaSksYS51bmJpbmQoZG9jdW1lbnQsIm1vdXNldXAi
LG8pLHI9aT1vPW51bGwpfWUub24oIkFkZEVkaXRvciIsZCksZS5vbigiUmVtb3ZlRWRpdG9yIixm
KX12YXIgcixpLG8sYT1lLkRPTTtyZXR1cm4gbi5pc0VkaXRvclVJRWxlbWVudD1mdW5jdGlvbihl
KXtyZXR1cm4tMSE9PWUuY2xhc3NOYW1lLnRvU3RyaW5nKCkuaW5kZXhPZigibWNlLSIpfSxufSks
cihkdCxbbHQseSxGLGcscCxvdCxjdCx1dF0sZnVuY3Rpb24oZSx0LG4scixpLG8sYSxzKXtmdW5j
dGlvbiBsKGUpe3ZhciB0PWcuZWRpdG9ycyxuO2RlbGV0ZSB0W2UuaWRdO2Zvcih2YXIgcj0wO3I8
dC5sZW5ndGg7cisrKWlmKHRbcl09PWUpe3Quc3BsaWNlKHIsMSksbj0hMDticmVha31yZXR1cm4g
Zy5hY3RpdmVFZGl0b3I9PWUmJihnLmFjdGl2ZUVkaXRvcj10WzBdKSxnLmZvY3VzZWRFZGl0b3I9
PWUmJihnLmZvY3VzZWRFZGl0b3I9bnVsbCksbn1mdW5jdGlvbiBjKGUpe3JldHVybiBlJiYhKGUu
Z2V0Q29udGFpbmVyKCl8fGUuZ2V0Qm9keSgpKS5wYXJlbnROb2RlJiYobChlKSxlLmRlc3Ryb3ko
ITApLGU9bnVsbCksZX12YXIgdT10LkRPTSxkPWkuZXhwbG9kZSxmPWkuZWFjaCxwPWkuZXh0ZW5k
LGg9MCxtLGc7cmV0dXJuIGc9e21ham9yVmVyc2lvbjoiNCIsbWlub3JWZXJzaW9uOiIwLjI2Iixy
ZWxlYXNlRGF0ZToiMjAxNC0wNS0wNiIsZWRpdG9yczpbXSxpMThuOmEsYWN0aXZlRWRpdG9yOm51
bGwsc2V0dXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQscixpPSIiLG8sYTtpZihyPWRvY3VtZW50
LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgvW1w/I10uKiQvLCIiKS5yZXBsYWNlKC9bXC9cXF1bXlwv
XSskLywiIiksL1tcL1xcXSQvLnRlc3Qocil8fChyKz0iLyIpLG89d2luZG93LnRpbnltY2V8fHdp
bmRvdy50aW55TUNFUHJlSW5pdCl0PW8uYmFzZXx8by5iYXNlVVJMLGk9by5zdWZmaXg7ZWxzZXtm
b3IodmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGM9MDtjPGwu
bGVuZ3RoO2MrKylpZihhPWxbY10uc3JjLC90aW55bWNlKFwuZnVsbHxcLmpxdWVyeXwpKFwubWlu
fFwuZGV2fClcLmpzLy50ZXN0KGEpKXstMSE9YS5pbmRleE9mKCIubWluIikmJihpPSIubWluIiks
dD1hLnN1YnN0cmluZygwLGEubGFzdEluZGV4T2YoIi8iKSk7YnJlYWt9IXQmJmRvY3VtZW50LmN1
cnJlbnRTY3JpcHQmJihhPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjLC0xIT1hLmluZGV4T2Yo
Ii5taW4iKSYmKGk9Ii5taW4iKSx0PWEuc3Vic3RyaW5nKDAsYS5sYXN0SW5kZXhPZigiLyIpKSl9
ZS5iYXNlVVJMPW5ldyBuKHIpLnRvQWJzb2x1dGUodCksZS5kb2N1bWVudEJhc2VVUkw9cixlLmJh
c2VVUkk9bmV3IG4oZS5iYXNlVVJMKSxlLnN1ZmZpeD1pLGUuZm9jdXNNYW5hZ2VyPW5ldyBzKGUp
fSxpbml0OmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSl7dmFyIHQ9ZS5pZDtyZXR1cm4gdHx8KHQ9
ZS5uYW1lLHQ9dCYmIXUuZ2V0KHQpP2UubmFtZTp1LnVuaXF1ZUlkKCksZS5zZXRBdHRyaWJ1dGUo
ImlkIix0KSksdH1mdW5jdGlvbiByKHQsbil7aWYoIWMocy5nZXQodCkpKXt2YXIgcj1uZXcgZSh0
LG4scyk7bC5wdXNoKHIpLHIucmVuZGVyKCl9fWZ1bmN0aW9uIGkoZSx0LG4pe3ZhciByPWVbdF07
aWYocilyZXR1cm4gci5hcHBseShufHx0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFy
Z3VtZW50cywyKSl9ZnVuY3Rpb24gbyhlLHQpe3JldHVybiB0LmNvbnN0cnVjdG9yPT09UmVnRXhw
P3QudGVzdChlLmNsYXNzTmFtZSk6dS5oYXNDbGFzcyhlLHQpfWZ1bmN0aW9uIGEoKXt2YXIgYyxn
O2lmKHUudW5iaW5kKHdpbmRvdywicmVhZHkiLGEpLGkodCwib25wYWdlbG9hZCIpLHQudHlwZXMp
cmV0dXJuIHZvaWQgZih0LnR5cGVzLGZ1bmN0aW9uKGUpe2YodS5zZWxlY3QoZS5zZWxlY3Rvciks
ZnVuY3Rpb24oaSl7cihuKGkpLHAoe30sdCxlKSl9KX0pO2lmKHQuc2VsZWN0b3IpcmV0dXJuIHZv
aWQgZih1LnNlbGVjdCh0LnNlbGVjdG9yKSxmdW5jdGlvbihlKXtyKG4oZSksdCl9KTtzd2l0Y2go
dC5tb2RlKXtjYXNlImV4YWN0IjpjPXQuZWxlbWVudHN8fCIiLGMubGVuZ3RoPjAmJmYoZChjKSxm
dW5jdGlvbihuKXt1LmdldChuKT8obT1uZXcgZShuLHQscyksbC5wdXNoKG0pLG0ucmVuZGVyKCkp
OmYoZG9jdW1lbnQuZm9ybXMsZnVuY3Rpb24oZSl7ZihlLmVsZW1lbnRzLGZ1bmN0aW9uKGUpe2Uu
bmFtZT09PW4mJihuPSJtY2VfZWRpdG9yXyIraCsrLHUuc2V0QXR0cmliKGUsImlkIixuKSxyKG4s
dCkpfSl9KX0pO2JyZWFrO2Nhc2UidGV4dGFyZWFzIjpjYXNlInNwZWNpZmljX3RleHRhcmVhcyI6
Zih1LnNlbGVjdCgidGV4dGFyZWEiKSxmdW5jdGlvbihlKXt0LmVkaXRvcl9kZXNlbGVjdG9yJiZv
KGUsdC5lZGl0b3JfZGVzZWxlY3Rvcil8fCghdC5lZGl0b3Jfc2VsZWN0b3J8fG8oZSx0LmVkaXRv
cl9zZWxlY3RvcikpJiZyKG4oZSksdCl9KX10Lm9uaW5pdCYmKGM9Zz0wLGYobCxmdW5jdGlvbihl
KXtnKyssZS5pbml0aWFsaXplZD9jKys6ZS5vbigiaW5pdCIsZnVuY3Rpb24oKXtjKyssYz09ZyYm
aSh0LCJvbmluaXQiKX0pLGM9PWcmJmkodCwib25pbml0Iil9KSl9dmFyIHM9dGhpcyxsPVtdLG07
cy5zZXR0aW5ncz10LHUuYmluZCh3aW5kb3csInJlYWR5IixhKX0sZ2V0OmZ1bmN0aW9uKGUpe3Jl
dHVybiBhcmd1bWVudHMubGVuZ3RoP2UgaW4gdGhpcy5lZGl0b3JzP3RoaXMuZWRpdG9yc1tlXTpu
dWxsOnRoaXMuZWRpdG9yc30sYWRkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10LmVkaXRvcnM7
cmV0dXJuIG5bZS5pZF09ZSxuLnB1c2goZSksdC5hY3RpdmVFZGl0b3I9ZSx0LmZpcmUoIkFkZEVk
aXRvciIse2VkaXRvcjplfSksbXx8KG09ZnVuY3Rpb24oKXt0LmZpcmUoIkJlZm9yZVVubG9hZCIp
fSx1LmJpbmQod2luZG93LCJiZWZvcmV1bmxvYWQiLG0pKSxlfSxjcmVhdGVFZGl0b3I6ZnVuY3Rp
b24odCxuKXtyZXR1cm4gdGhpcy5hZGQobmV3IGUodCxuLHRoaXMpKX0scmVtb3ZlOmZ1bmN0aW9u
KGUpe3ZhciB0PXRoaXMsbixyPXQuZWRpdG9ycyxpO3tpZihlKXJldHVybiJzdHJpbmciPT10eXBl
b2YgZT8oZT1lLnNlbGVjdG9yfHxlLHZvaWQgZih1LnNlbGVjdChlKSxmdW5jdGlvbihlKXt0LnJl
bW92ZShyW2UuaWRdKX0pKTooaT1lLHJbaS5pZF0/KGwoaSkmJnQuZmlyZSgiUmVtb3ZlRWRpdG9y
Iix7ZWRpdG9yOml9KSxyLmxlbmd0aHx8dS51bmJpbmQod2luZG93LCJiZWZvcmV1bmxvYWQiLG0p
LGkucmVtb3ZlKCksaSk6bnVsbCk7Zm9yKG49ci5sZW5ndGgtMTtuPj0wO24tLSl0LnJlbW92ZShy
W25dKX19LGV4ZWNDb21tYW5kOmZ1bmN0aW9uKHQsbixyKXt2YXIgaT10aGlzLG89aS5nZXQocik7
c3dpdGNoKHQpe2Nhc2UibWNlQWRkRWRpdG9yIjpyZXR1cm4gaS5nZXQocil8fG5ldyBlKHIsaS5z
ZXR0aW5ncyxpKS5yZW5kZXIoKSwhMDtjYXNlIm1jZVJlbW92ZUVkaXRvciI6cmV0dXJuIG8mJm8u
cmVtb3ZlKCksITA7Y2FzZSJtY2VUb2dnbGVFZGl0b3IiOnJldHVybiBvPyhvLmlzSGlkZGVuKCk/
by5zaG93KCk6by5oaWRlKCksITApOihpLmV4ZWNDb21tYW5kKCJtY2VBZGRFZGl0b3IiLDAsciks
ITApfXJldHVybiBpLmFjdGl2ZUVkaXRvcj9pLmFjdGl2ZUVkaXRvci5leGVjQ29tbWFuZCh0LG4s
cik6ITF9LHRyaWdnZXJTYXZlOmZ1bmN0aW9uKCl7Zih0aGlzLmVkaXRvcnMsZnVuY3Rpb24oZSl7
ZS5zYXZlKCl9KX0sYWRkSTE4bjpmdW5jdGlvbihlLHQpe2EuYWRkKGUsdCl9LHRyYW5zbGF0ZTpm
dW5jdGlvbihlKXtyZXR1cm4gYS50cmFuc2xhdGUoZSl9fSxwKGcsbyksZy5zZXR1cCgpLHdpbmRv
dy50aW55bWNlPXdpbmRvdy50aW55TUNFPWcsZ30pLHIoZnQsW2R0LHBdLGZ1bmN0aW9uKGUsdCl7
dmFyIG49dC5lYWNoLHI9dC5leHBsb2RlO2Uub24oIkFkZEVkaXRvciIsZnVuY3Rpb24oZSl7dmFy
IHQ9ZS5lZGl0b3I7dC5vbigicHJlSW5pdCIsZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7bih0
LGZ1bmN0aW9uKHQsbil7dCYmcy5zZXRTdHlsZShlLG4sdCl9KSxzLnJlbmFtZShlLCJzcGFuIil9
ZnVuY3Rpb24gaShlKXtzPXQuZG9tLGwuY29udmVydF9mb250c190b19zcGFucyYmbihzLnNlbGVj
dCgiZm9udCx1LHN0cmlrZSIsZS5ub2RlKSxmdW5jdGlvbihlKXtvW2Uubm9kZU5hbWUudG9Mb3dl
ckNhc2UoKV0ocyxlKX0pfXZhciBvLGEscyxsPXQuc2V0dGluZ3M7bC5pbmxpbmVfc3R5bGVzJiYo
YT1yKGwuZm9udF9zaXplX2xlZ2FjeV92YWx1ZXMpLG89e2ZvbnQ6ZnVuY3Rpb24odCxuKXtlKG4s
e2JhY2tncm91bmRDb2xvcjpuLnN0eWxlLmJhY2tncm91bmRDb2xvcixjb2xvcjpuLmNvbG9yLGZv
bnRGYW1pbHk6bi5mYWNlLGZvbnRTaXplOmFbcGFyc2VJbnQobi5zaXplLDEwKS0xXX0pfSx1OmZ1
bmN0aW9uKHQsbil7ZShuLHt0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0pfSxzdHJpa2U6ZnVu
Y3Rpb24odCxuKXtlKG4se3RleHREZWNvcmF0aW9uOiJsaW5lLXRocm91Z2gifSl9fSx0Lm9uKCJQ
cmVQcm9jZXNzIFNldENvbnRlbnQiLGkpKX0pfSl9KSxyKHB0LFtdLGZ1bmN0aW9uKCl7cmV0dXJu
e3NlbmQ6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpeyFlLmFzeW5jfHw0PT1uLnJlYWR5U3RhdGV8
fHIrKz4xZTQ/KGUuc3VjY2VzcyYmMWU0PnImJjIwMD09bi5zdGF0dXM/ZS5zdWNjZXNzLmNhbGwo
ZS5zdWNjZXNzX3Njb3BlLCIiK24ucmVzcG9uc2VUZXh0LG4sZSk6ZS5lcnJvciYmZS5lcnJvci5j
YWxsKGUuZXJyb3Jfc2NvcGUscj4xZTQ/IlRJTUVEX09VVCI6IkdFTkVSQUwiLG4sZSksbj1udWxs
KTpzZXRUaW1lb3V0KHQsMTApfXZhciBuLHI9MDtpZihlLnNjb3BlPWUuc2NvcGV8fHRoaXMsZS5z
dWNjZXNzX3Njb3BlPWUuc3VjY2Vzc19zY29wZXx8ZS5zY29wZSxlLmVycm9yX3Njb3BlPWUuZXJy
b3Jfc2NvcGV8fGUuc2NvcGUsZS5hc3luYz1lLmFzeW5jPT09ITE/ITE6ITAsZS5kYXRhPWUuZGF0
YXx8IiIsbj1uZXcgWE1MSHR0cFJlcXVlc3Qpe2lmKG4ub3ZlcnJpZGVNaW1lVHlwZSYmbi5vdmVy
cmlkZU1pbWVUeXBlKGUuY29udGVudF90eXBlKSxuLm9wZW4oZS50eXBlfHwoZS5kYXRhPyJQT1NU
IjoiR0VUIiksZS51cmwsZS5hc3luYyksZS5jb250ZW50X3R5cGUmJm4uc2V0UmVxdWVzdEhlYWRl
cigiQ29udGVudC1UeXBlIixlLmNvbnRlbnRfdHlwZSksbi5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJl
cXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKSxuLnNlbmQoZS5kYXRhKSwhZS5hc3luYyly
ZXR1cm4gdCgpO3NldFRpbWVvdXQodCwxMCl9fX19KSxyKGh0LFtdLGZ1bmN0aW9uKCl7ZnVuY3Rp
b24gZSh0LG4pe3ZhciByLGksbyxhO2lmKG49bnx8JyInLG51bGw9PT10KXJldHVybiJudWxsIjtp
ZihvPXR5cGVvZiB0LCJzdHJpbmciPT1vKXJldHVybiBpPSJcYmIJdFxublxmZlxyclwiXCInJ1xc
XFwiLG4rdC5yZXBsYWNlKC8oW1x1MDA4MC1cdUZGRkZceDAwLVx4MWZcIlwnXFxdKS9nLGZ1bmN0
aW9uKGUsdCl7cmV0dXJuJyInPT09biYmIiciPT09ZT9lOihyPWkuaW5kZXhPZih0KSxyKzE/Ilxc
IitpLmNoYXJBdChyKzEpOihlPXQuY2hhckNvZGVBdCgpLnRvU3RyaW5nKDE2KSwiXFx1IisiMDAw
MCIuc3Vic3RyaW5nKGUubGVuZ3RoKStlKSl9KStuO2lmKCJvYmplY3QiPT1vKXtpZih0Lmhhc093
blByb3BlcnR5JiYiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHQpKXtmb3Iocj0wLGk9IlsiO3I8dC5sZW5ndGg7cisrKWkrPShyPjA/IiwiOiIiKStlKHRb
cl0sbik7cmV0dXJuIGkrIl0ifWk9InsiO2ZvcihhIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShhKSYm
KGkrPSJmdW5jdGlvbiIhPXR5cGVvZiB0W2FdPyhpLmxlbmd0aD4xPyIsIituOm4pK2ErbisiOiIr
ZSh0W2FdLG4pOiIiKTtyZXR1cm4gaSsifSJ9cmV0dXJuIiIrdH1yZXR1cm57c2VyaWFsaXplOmUs
cGFyc2U6ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB3aW5kb3dbU3RyaW5nLmZyb21DaGFyQ29kZSgx
MDEpKyJ2YWwiXSgiKCIrZSsiKSIpfWNhdGNoKHQpe319fX0pLHIobXQsW2h0LHB0LHBdLGZ1bmN0
aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUpe3RoaXMuc2V0dGluZ3M9aSh7fSxlKSx0aGlzLmNvdW50
PTB9dmFyIGk9bi5leHRlbmQ7cmV0dXJuIHIuc2VuZFJQQz1mdW5jdGlvbihlKXtyZXR1cm4obmV3
IHIpLnNlbmQoZSl9LHIucHJvdG90eXBlPXtzZW5kOmZ1bmN0aW9uKG4pe3ZhciByPW4uZXJyb3Is
bz1uLnN1Y2Nlc3M7bj1pKHRoaXMuc2V0dGluZ3Msbiksbi5zdWNjZXNzPWZ1bmN0aW9uKHQsaSl7
dD1lLnBhcnNlKHQpLCJ1bmRlZmluZWQiPT10eXBlb2YgdCYmKHQ9e2Vycm9yOiJKU09OIFBhcnNl
IGVycm9yLiJ9KSx0LmVycm9yP3IuY2FsbChuLmVycm9yX3Njb3BlfHxuLnNjb3BlLHQuZXJyb3Is
aSk6by5jYWxsKG4uc3VjY2Vzc19zY29wZXx8bi5zY29wZSx0LnJlc3VsdCl9LG4uZXJyb3I9ZnVu
Y3Rpb24oZSx0KXtyJiZyLmNhbGwobi5lcnJvcl9zY29wZXx8bi5zY29wZSxlLHQpfSxuLmRhdGE9
ZS5zZXJpYWxpemUoe2lkOm4uaWR8fCJjIit0aGlzLmNvdW50KyssbWV0aG9kOm4ubWV0aG9kLHBh
cmFtczpuLnBhcmFtc30pLG4uY29udGVudF90eXBlPSJhcHBsaWNhdGlvbi9qc29uIix0LnNlbmQo
bil9fSxyfSkscihndCxbeV0sZnVuY3Rpb24oZSl7cmV0dXJue2NhbGxiYWNrczp7fSxjb3VudDow
LHNlbmQ6ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPWUuRE9NLG89bi5jb3VudCE9PXQ/bi5jb3Vu
dDpyLmNvdW50LGE9InRpbnltY2VfanNvbnBfIitvO3IuY2FsbGJhY2tzW29dPWZ1bmN0aW9uKGUp
e2kucmVtb3ZlKGEpLGRlbGV0ZSByLmNhbGxiYWNrc1tvXSxuLmNhbGxiYWNrKGUpfSxpLmFkZChp
LmRvYy5ib2R5LCJzY3JpcHQiLHtpZDphLHNyYzpuLnVybCx0eXBlOiJ0ZXh0L2phdmFzY3JpcHQi
fSksci5jb3VudCsrfX19KSxyKHZ0LFtdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3M9W107Zm9y
KHZhciBlIGluIGEpcy5wdXNoKGUpO2kubGVuZ3RoPXMubGVuZ3RofWZ1bmN0aW9uIG4oKXtmdW5j
dGlvbiBuKGUpe3ZhciBuLHI7cmV0dXJuIHI9ZSE9PXQ/dStlOmkuaW5kZXhPZigiLCIsdSksLTE9
PT1yfHxyPmkubGVuZ3RoP251bGw6KG49aS5zdWJzdHJpbmcodSxyKSx1PXIrMSxuKX12YXIgcixp
LHMsdT0wO2lmKGE9e30sYyl7by5sb2FkKGwpLGk9by5nZXRBdHRyaWJ1dGUobCl8fCIiO2Rve3Zh
ciBkPW4oKTtpZihudWxsPT09ZClicmVhaztpZihyPW4ocGFyc2VJbnQoZCwzMil8fDApLG51bGwh
PT1yKXtpZihkPW4oKSxudWxsPT09ZClicmVhaztzPW4ocGFyc2VJbnQoZCwzMil8fDApLHImJihh
W3JdPXMpfX13aGlsZShudWxsIT09cik7ZSgpfX1mdW5jdGlvbiByKCl7dmFyIHQsbj0iIjtpZihj
KXtmb3IodmFyIHIgaW4gYSl0PWFbcl0sbis9KG4/IiwiOiIiKStyLmxlbmd0aC50b1N0cmluZygz
MikrIiwiK3IrIiwiK3QubGVuZ3RoLnRvU3RyaW5nKDMyKSsiLCIrdDtvLnNldEF0dHJpYnV0ZShs
LG4pO3RyeXtvLnNhdmUobCl9Y2F0Y2goaSl7fWUoKX19dmFyIGksbyxhLHMsbCxjO3RyeXtpZih3
aW5kb3cubG9jYWxTdG9yYWdlKXJldHVybiBsb2NhbFN0b3JhZ2V9Y2F0Y2godSl7fXJldHVybiBs
PSJ0aW55bWNlIixvPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxjPSEhby5hZGRCZWhhdmlvcixj
JiZvLmFkZEJlaGF2aW9yKCIjZGVmYXVsdCN1c2VyRGF0YSIpLGk9e2tleTpmdW5jdGlvbihlKXty
ZXR1cm4gc1tlXX0sZ2V0SXRlbTpmdW5jdGlvbihlKXtyZXR1cm4gZSBpbiBhP2FbZV06bnVsbH0s
c2V0SXRlbTpmdW5jdGlvbihlLHQpe2FbZV09IiIrdCxyKCl9LHJlbW92ZUl0ZW06ZnVuY3Rpb24o
ZSl7ZGVsZXRlIGFbZV0scigpfSxjbGVhcjpmdW5jdGlvbigpe2E9e30scigpfX0sbigpLGl9KSxy
KHl0LFt5LGwsYixDLHAsZ10sZnVuY3Rpb24oZSx0LG4scixpLG8pe3ZhciBhPXdpbmRvdy50aW55
bWNlO3JldHVybiBhLkRPTT1lLkRPTSxhLlNjcmlwdExvYWRlcj1uLlNjcmlwdExvYWRlcixhLlBs
dWdpbk1hbmFnZXI9ci5QbHVnaW5NYW5hZ2VyLGEuVGhlbWVNYW5hZ2VyPXIuVGhlbWVNYW5hZ2Vy
LGEuZG9tPWEuZG9tfHx7fSxhLmRvbS5FdmVudD10LkV2ZW50LGkuZWFjaChpLGZ1bmN0aW9uKGUs
dCl7YVt0XT1lfSksaS5lYWNoKCJpc09wZXJhIGlzV2ViS2l0IGlzSUUgaXNHZWNrbyBpc01hYyIu
c3BsaXQoIiAiKSxmdW5jdGlvbihlKXthW2VdPW9bZS5zdWJzdHIoMikudG9Mb3dlckNhc2UoKV19
KSx7fX0pLHIoYnQsW3oscF0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5leHRlbmQoe0RlZmF1bHRz
OntmaXJzdENvbnRyb2xDbGFzczoiZmlyc3QiLGxhc3RDb250cm9sQ2xhc3M6Imxhc3QifSxpbml0
OmZ1bmN0aW9uKGUpe3RoaXMuc2V0dGluZ3M9dC5leHRlbmQoe30sdGhpcy5EZWZhdWx0cyxlKX0s
cHJlUmVuZGVyOmZ1bmN0aW9uKGUpe2UuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5jb250YWluZXJD
bGFzcywiYm9keSIpfSxhcHBseUNsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQuc2V0
dGluZ3MscixpLG87cj1lLml0ZW1zKCkuZmlsdGVyKCI6dmlzaWJsZSIpLGk9bi5maXJzdENvbnRy
b2xDbGFzcyxvPW4ubGFzdENvbnRyb2xDbGFzcyxyLmVhY2goZnVuY3Rpb24oZSl7ZS5yZW1vdmVD
bGFzcyhpKS5yZW1vdmVDbGFzcyhvKSxuLmNvbnRyb2xDbGFzcyYmZS5hZGRDbGFzcyhuLmNvbnRy
b2xDbGFzcyl9KSxyLmVxKDApLmFkZENsYXNzKGkpLHIuZXEoLTEpLmFkZENsYXNzKG8pfSxyZW5k
ZXJIdG1sOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10LnNldHRpbmdzLHIsaT0iIjtyZXR1cm4g
cj1lLml0ZW1zKCksci5lcSgwKS5hZGRDbGFzcyhuLmZpcnN0Q29udHJvbENsYXNzKSxyLmVxKC0x
KS5hZGRDbGFzcyhuLmxhc3RDb250cm9sQ2xhc3MpLHIuZWFjaChmdW5jdGlvbihlKXtuLmNvbnRy
b2xDbGFzcyYmZS5hZGRDbGFzcyhuLmNvbnRyb2xDbGFzcyksaSs9ZS5yZW5kZXJIdG1sKCl9KSxp
fSxyZWNhbGM6ZnVuY3Rpb24oKXt9LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt9fSl9KSxyKEN0LFti
dF0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7Y29udGFpbmVyQ2xhc3M6
ImFicy1sYXlvdXQiLGNvbnRyb2xDbGFzczoiYWJzLWxheW91dC1pdGVtIn0scmVjYWxjOmZ1bmN0
aW9uKGUpe2UuaXRlbXMoKS5maWx0ZXIoIjp2aXNpYmxlIikuZWFjaChmdW5jdGlvbihlKXt2YXIg
dD1lLnNldHRpbmdzO2UubGF5b3V0UmVjdCh7eDp0LngseTp0Lnksdzp0LncsaDp0Lmh9KSxlLnJl
Y2FsYyYmZS5yZWNhbGMoKX0pfSxyZW5kZXJIdG1sOmZ1bmN0aW9uKGUpe3JldHVybic8ZGl2IGlk
PSInK2UuX2lkKyctYWJzZW5kIiBjbGFzcz0iJytlLmNsYXNzUHJlZml4KydhYnMtZW5kIj48L2Rp
dj4nK3RoaXMuX3N1cGVyKGUpfX0pfSkscih4dCxbJCxRXSxmdW5jdGlvbihlLHQpe3JldHVybiBl
LmV4dGVuZCh7TWl4aW5zOlt0XSxEZWZhdWx0czp7Y2xhc3Nlczoid2lkZ2V0IHRvb2x0aXAgdG9v
bHRpcC1uIn0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiJ1bmRlZmluZWQiIT10
eXBlb2YgZT8odC5fdmFsdWU9ZSx0Ll9yZW5kZXJlZCYmKHQuZ2V0RWwoKS5sYXN0Q2hpbGQuaW5u
ZXJIVE1MPXQuZW5jb2RlKGUpKSx0KTp0Ll92YWx1ZX0scmVuZGVySHRtbDpmdW5jdGlvbigpe3Zh
ciBlPXRoaXMsdD1lLmNsYXNzUHJlZml4O3JldHVybic8ZGl2IGlkPSInK2UuX2lkKyciIGNsYXNz
PSInK2UuY2xhc3NlcygpKyciIHJvbGU9InByZXNlbnRhdGlvbiI+PGRpdiBjbGFzcz0iJyt0Kyd0
b29sdGlwLWFycm93Ij48L2Rpdj48ZGl2IGNsYXNzPSInK3QrJ3Rvb2x0aXAtaW5uZXIiPicrZS5l
bmNvZGUoZS5fdGV4dCkrIjwvZGl2PjwvZGl2PiJ9LHJlcGFpbnQ6ZnVuY3Rpb24oKXt2YXIgZT10
aGlzLHQsbjt0PWUuZ2V0RWwoKS5zdHlsZSxuPWUuX2xheW91dFJlY3QsdC5sZWZ0PW4ueCsicHgi
LHQudG9wPW4ueSsicHgiLHQuekluZGV4PTEzMTA3MH19KX0pLHIod3QsWyQseHRdLGZ1bmN0aW9u
KGUsdCl7dmFyIG4scj1lLmV4dGVuZCh7aW5pdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3QuX3N1
cGVyKGUpLGU9dC5zZXR0aW5ncyx0LmNhbkZvY3VzPSEwLGUudG9vbHRpcCYmci50b29sdGlwcyE9
PSExJiYodC5vbigibW91c2VlbnRlciIsZnVuY3Rpb24obil7dmFyIHI9dC50b29sdGlwKCkubW92
ZVRvKC02NTUzNSk7aWYobi5jb250cm9sPT10KXt2YXIgaT1yLnRleHQoZS50b29sdGlwKS5zaG93
KCkudGVzdE1vdmVSZWwodC5nZXRFbCgpLFsiYmMtdGMiLCJiYy10bCIsImJjLXRyIl0pO3IudG9n
Z2xlQ2xhc3MoInRvb2x0aXAtbiIsImJjLXRjIj09aSksci50b2dnbGVDbGFzcygidG9vbHRpcC1u
dyIsImJjLXRsIj09aSksci50b2dnbGVDbGFzcygidG9vbHRpcC1uZSIsImJjLXRyIj09aSksci5t
b3ZlUmVsKHQuZ2V0RWwoKSxpKX1lbHNlIHIuaGlkZSgpfSksdC5vbigibW91c2VsZWF2ZSBtb3Vz
ZWRvd24gY2xpY2siLGZ1bmN0aW9uKCl7dC50b29sdGlwKCkuaGlkZSgpfSkpLHQuYXJpYSgibGFi
ZWwiLGUuYXJpYUxhYmVsfHxlLnRvb2x0aXApfSx0b29sdGlwOmZ1bmN0aW9uKCl7cmV0dXJuIG58
fChuPW5ldyB0KHt0eXBlOiJ0b29sdGlwIn0pLG4ucmVuZGVyVG8oKSksbn0sYWN0aXZlOmZ1bmN0
aW9uKGUpe3ZhciB0PXRoaXMsbjtyZXR1cm4gZSE9PW4mJih0LmFyaWEoInByZXNzZWQiLGUpLHQu
dG9nZ2xlQ2xhc3MoImFjdGl2ZSIsZSkpLHQuX3N1cGVyKGUpfSxkaXNhYmxlZDpmdW5jdGlvbihl
KXt2YXIgdD10aGlzLG47cmV0dXJuIGUhPT1uJiYodC5hcmlhKCJkaXNhYmxlZCIsZSksdC50b2dn
bGVDbGFzcygiZGlzYWJsZWQiLGUpKSx0Ll9zdXBlcihlKX0scG9zdFJlbmRlcjpmdW5jdGlvbigp
e3ZhciBlPXRoaXMsdD1lLnNldHRpbmdzO2UuX3JlbmRlcmVkPSEwLGUuX3N1cGVyKCksZS5wYXJl
bnQoKXx8IXQud2lkdGgmJiF0LmhlaWdodHx8KGUuaW5pdExheW91dFJlY3QoKSxlLnJlcGFpbnQo
KSksdC5hdXRvZm9jdXMmJmUuZm9jdXMoKX0scmVtb3ZlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIo
KSxuJiYobi5yZW1vdmUoKSxuPW51bGwpfX0pO3JldHVybiByfSkscihfdCxbd3RdLGZ1bmN0aW9u
KGUpe3JldHVybiBlLmV4dGVuZCh7RGVmYXVsdHM6e2NsYXNzZXM6IndpZGdldCBidG4iLHJvbGU6
ImJ1dHRvbiJ9LGluaXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuO3Qub24oImNsaWNrIG1vdXNl
ZG93biIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfSksdC5fc3VwZXIoZSksbj1lLnNp
emUsZS5zdWJ0eXBlJiZ0LmFkZENsYXNzKGUuc3VidHlwZSksbiYmdC5hZGRDbGFzcygiYnRuLSIr
bil9LGljb246ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQuY2xhc3NQcmVmaXg7aWYoInVuZGVm
aW5lZCI9PXR5cGVvZiBlKXJldHVybiB0LnNldHRpbmdzLmljb247aWYodC5zZXR0aW5ncy5pY29u
PWUsZT1lP24rImljbyAiK24rImktIit0LnNldHRpbmdzLmljb246IiIsdC5fcmVuZGVyZWQpe3Zh
ciByPXQuZ2V0RWwoKS5maXJzdENoaWxkLGk9ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaSIpWzBd
O2U/KGkmJmk9PXIuZmlyc3RDaGlsZHx8KGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpLHIu
aW5zZXJ0QmVmb3JlKGksci5maXJzdENoaWxkKSksaS5jbGFzc05hbWU9ZSk6aSYmci5yZW1vdmVD
aGlsZChpKSx0LnRleHQodC5fdGV4dCl9cmV0dXJuIHR9LHJlcGFpbnQ6ZnVuY3Rpb24oKXt2YXIg
ZT10aGlzLmdldEVsKCkuZmlyc3RDaGlsZC5zdHlsZTtlLndpZHRoPWUuaGVpZ2h0PSIxMDAlIix0
aGlzLl9zdXBlcigpfSx0ZXh0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodC5fcmVuZGVyZWQp
e3ZhciBuPXQuZ2V0RWwoKS5sYXN0Q2hpbGQubGFzdENoaWxkO24mJihuLmRhdGE9dC50cmFuc2xh
dGUoZSkpfXJldHVybiB0Ll9zdXBlcihlKX0scmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRo
aXMsdD1lLl9pZCxuPWUuY2xhc3NQcmVmaXgscj1lLnNldHRpbmdzLmljb24saTtyZXR1cm4gaT1l
LnNldHRpbmdzLmltYWdlLGk/KHI9Im5vbmUiLCJzdHJpbmciIT10eXBlb2YgaSYmKGk9d2luZG93
LmdldFNlbGVjdGlvbj9pWzBdOmlbMV0pLGk9IiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVy
bCgnIitpKyInKVwiIik6aT0iIixyPWUuc2V0dGluZ3MuaWNvbj9uKyJpY28gIituKyJpLSIrcjoi
IiwnPGRpdiBpZD0iJyt0KyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciIHRhYmluZGV4PSItMSIg
YXJpYS1sYWJlbGxlZGJ5PSInK3QrJyI+PGJ1dHRvbiByb2xlPSJwcmVzZW50YXRpb24iIHR5cGU9
ImJ1dHRvbiIgdGFiaW5kZXg9Ii0xIj4nKyhyPyc8aSBjbGFzcz0iJytyKyciJytpKyI+PC9pPiI6
IiIpKyhlLl90ZXh0PyhyPyJceGEwIjoiIikrZS5lbmNvZGUoZS5fdGV4dCk6IiIpKyI8L2J1dHRv
bj48L2Rpdj4ifX0pfSkscihOdCxbR10sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZh
dWx0czp7ZGVmYXVsdFR5cGU6ImJ1dHRvbiIscm9sZToiZ3JvdXAifSxyZW5kZXJIdG1sOmZ1bmN0
aW9uKCl7dmFyIGU9dGhpcyx0PWUuX2xheW91dDtyZXR1cm4gZS5hZGRDbGFzcygiYnRuLWdyb3Vw
IiksZS5wcmVSZW5kZXIoKSx0LnByZVJlbmRlcihlKSwnPGRpdiBpZD0iJytlLl9pZCsnIiBjbGFz
cz0iJytlLmNsYXNzZXMoKSsnIj48ZGl2IGlkPSInK2UuX2lkKyctYm9keSI+JysoZS5zZXR0aW5n
cy5odG1sfHwiIikrdC5yZW5kZXJIdG1sKGUpKyI8L2Rpdj48L2Rpdj4ifX0pfSkscihFdCxbd3Rd
LGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7RGVmYXVsdHM6e2NsYXNzZXM6ImNoZWNrYm94
Iixyb2xlOiJjaGVja2JveCIsY2hlY2tlZDohMX0saW5pdDpmdW5jdGlvbihlKXt2YXIgdD10aGlz
O3QuX3N1cGVyKGUpLHQub24oImNsaWNrIG1vdXNlZG93biIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50
RGVmYXVsdCgpfSksdC5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0
LmRpc2FibGVkKCl8fHQuY2hlY2tlZCghdC5jaGVja2VkKCkpfSksdC5jaGVja2VkKHQuc2V0dGlu
Z3MuY2hlY2tlZCl9LGNoZWNrZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4idW5kZWZp
bmVkIiE9dHlwZW9mIGU/KGU/dC5hZGRDbGFzcygiY2hlY2tlZCIpOnQucmVtb3ZlQ2xhc3MoImNo
ZWNrZWQiKSx0Ll9jaGVja2VkPWUsdC5hcmlhKCJjaGVja2VkIixlKSx0KTp0Ll9jaGVja2VkfSx2
YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jaGVja2VkKGUpfSxyZW5kZXJIdG1sOmZ1bmN0
aW9uKCl7dmFyIGU9dGhpcyx0PWUuX2lkLG49ZS5jbGFzc1ByZWZpeDtyZXR1cm4nPGRpdiBpZD0i
Jyt0KyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciIHVuc2VsZWN0YWJsZT0ib24iIGFyaWEtbGFi
ZWxsZWRieT0iJyt0KyctYWwiIHRhYmluZGV4PSItMSI+PGkgY2xhc3M9IicrbisiaWNvICIrbisn
aS1jaGVja2JveCI+PC9pPjxzcGFuIGlkPSInK3QrJy1hbCIgY2xhc3M9IicrbisnbGFiZWwiPicr
ZS5lbmNvZGUoZS5fdGV4dCkrIjwvc3Bhbj48L2Rpdj4ifX0pfSkscihTdCxbX3QsZXRdLGZ1bmN0
aW9uKGUsdCl7cmV0dXJuIGUuZXh0ZW5kKHtzaG93UGFuZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlz
LG49ZS5zZXR0aW5ncztpZihlLmFjdGl2ZSghMCksZS5wYW5lbCllLnBhbmVsLnNob3coKTtlbHNl
e3ZhciByPW4ucGFuZWw7ci50eXBlJiYocj17bGF5b3V0OiJncmlkIixpdGVtczpyfSksci5yb2xl
PXIucm9sZXx8ImRpYWxvZyIsci5wb3BvdmVyPSEwLHIuYXV0b2hpZGU9ITAsci5hcmlhUm9vdD0h
MCxlLnBhbmVsPW5ldyB0KHIpLm9uKCJoaWRlIixmdW5jdGlvbigpe2UuYWN0aXZlKCExKX0pLm9u
KCJjYW5jZWwiLGZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCksZS5mb2N1cygpLGUuaGlk
ZVBhbmVsKCl9KS5wYXJlbnQoZSkucmVuZGVyVG8oZS5nZXRDb250YWluZXJFbG0oKSksZS5wYW5l
bC5maXJlKCJzaG93IiksZS5wYW5lbC5yZWZsb3coKX1lLnBhbmVsLm1vdmVSZWwoZS5nZXRFbCgp
LG4ucG9wb3ZlckFsaWdufHwoZS5pc1J0bCgpP1siYmMtdHIiLCJiYy10YyJdOlsiYmMtdGwiLCJi
Yy10YyJdKSl9LGhpZGVQYW5lbDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5wYW5lbCYmZS5wYW5l
bC5oaWRlKCl9LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBlLmFyaWEo
Imhhc3BvcHVwIiwhMCksZS5vbigiY2xpY2siLGZ1bmN0aW9uKHQpe3QuY29udHJvbD09PWUmJihl
LnBhbmVsJiZlLnBhbmVsLnZpc2libGUoKT9lLmhpZGVQYW5lbCgpOihlLnNob3dQYW5lbCgpLGUu
cGFuZWwuZm9jdXMoISF0LmFyaWEpKSl9KSxlLl9zdXBlcigpfX0pfSkscihrdCxbU3QseV0sZnVu
Y3Rpb24oZSx0KXt2YXIgbj10LkRPTTtyZXR1cm4gZS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24oZSl7
dGhpcy5fc3VwZXIoZSksdGhpcy5hZGRDbGFzcygiY29sb3JidXR0b24iKX0sY29sb3I6ZnVuY3Rp
b24oZSl7cmV0dXJuIGU/KHRoaXMuX2NvbG9yPWUsdGhpcy5nZXRFbCgicHJldmlldyIpLnN0eWxl
LmJhY2tncm91bmRDb2xvcj1lLHRoaXMpOnRoaXMuX2NvbG9yfSxyZW5kZXJIdG1sOmZ1bmN0aW9u
KCl7dmFyIGU9dGhpcyx0PWUuX2lkLG49ZS5jbGFzc1ByZWZpeCxyPWUuc2V0dGluZ3MuaWNvbj9u
KyJpY28gIituKyJpLSIrZS5zZXR0aW5ncy5pY29uOiIiLGk9ZS5zZXR0aW5ncy5pbWFnZT8iIHN0
eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK2Uuc2V0dGluZ3MuaW1hZ2UrIicpXCIiOiIi
O3JldHVybic8ZGl2IGlkPSInK3QrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgcm9sZT0iYnV0
dG9uIiB0YWJpbmRleD0iLTEiIGFyaWEtaGFzcG9wdXA9InRydWUiPjxidXR0b24gcm9sZT0icHJl
c2VudGF0aW9uIiBoaWRlZm9jdXM9IjEiIHR5cGU9ImJ1dHRvbiIgdGFiaW5kZXg9Ii0xIj4nKyhy
Pyc8aSBjbGFzcz0iJytyKyciJytpKyI+PC9pPiI6IiIpKyc8c3BhbiBpZD0iJyt0KyctcHJldmll
dyIgY2xhc3M9IicrbisncHJldmlldyI+PC9zcGFuPicrKGUuX3RleHQ/KHI/IiAiOiIiKStlLl90
ZXh0OiIiKSsnPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSInK24rJ29wZW4i
IGhpZGVmb2N1cz0iMSIgdGFiaW5kZXg9Ii0xIj4gPGkgY2xhc3M9IicrbisnY2FyZXQiPjwvaT48
L2J1dHRvbj48L2Rpdj4nfSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuc2V0
dGluZ3Mub25jbGljaztyZXR1cm4gZS5vbigiY2xpY2siLGZ1bmN0aW9uKHIpe3IuYXJpYSYmImRv
d24iPT1yLmFyaWEua2V5fHxyLmNvbnRyb2whPWV8fG4uZ2V0UGFyZW50KHIudGFyZ2V0LCIuIitl
LmNsYXNzUHJlZml4KyJvcGVuIil8fChyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHQuY2Fs
bChlLHIpKX0pLGRlbGV0ZSBlLnNldHRpbmdzLm9uY2xpY2ssZS5fc3VwZXIoKX19KX0pLHIoVHQs
W3d0LGoscV0sZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLmV4dGVuZCh7aW5pdDpmdW5jdGlvbihl
KXt2YXIgdD10aGlzO3QuX3N1cGVyKGUpLHQuYWRkQ2xhc3MoImNvbWJvYm94IiksdC5zdWJpbnB1
dD0hMCx0LmFyaWFUYXJnZXQ9ImlucCIsZT10LnNldHRpbmdzLGUubWVudT1lLm1lbnV8fGUudmFs
dWVzLGUubWVudSYmKGUuaWNvbj0iY2FyZXQiKSx0Lm9uKCJjbGljayIsZnVuY3Rpb24obil7Zm9y
KHZhciByPW4udGFyZ2V0LGk9dC5nZXRFbCgpO3ImJnIhPWk7KXIuaWQmJi0xIT1yLmlkLmluZGV4
T2YoIi1vcGVuIikmJih0LmZpcmUoImFjdGlvbiIpLGUubWVudSYmKHQuc2hvd01lbnUoKSxuLmFy
aWEmJnQubWVudS5pdGVtcygpWzBdLmZvY3VzKCkpKSxyPXIucGFyZW50Tm9kZX0pLHQub24oImtl
eWRvd24iLGZ1bmN0aW9uKGUpeyJJTlBVVCI9PWUudGFyZ2V0Lm5vZGVOYW1lJiYxMz09ZS5rZXlD
b2RlJiZ0LnBhcmVudHMoKS5yZXZlcnNlKCkuZWFjaChmdW5jdGlvbihuKXtyZXR1cm4gZS5wcmV2
ZW50RGVmYXVsdCgpLHQuZmlyZSgiY2hhbmdlIiksbi5oYXNFdmVudExpc3RlbmVycygic3VibWl0
IikmJm4udG9KU09OPyhuLmZpcmUoInN1Ym1pdCIse2RhdGE6bi50b0pTT04oKX0pLCExKTp2b2lk
IDB9KX0pLGUucGxhY2Vob2xkZXImJih0LmFkZENsYXNzKCJwbGFjZWhvbGRlciIpLHQub24oImZv
Y3VzaW4iLGZ1bmN0aW9uKCl7dC5faGFzT25DaGFuZ2V8fChuLm9uKHQuZ2V0RWwoImlucCIpLCJj
aGFuZ2UiLGZ1bmN0aW9uKCl7dC5maXJlKCJjaGFuZ2UiKX0pLHQuX2hhc09uQ2hhbmdlPSEwKSx0
Lmhhc0NsYXNzKCJwbGFjZWhvbGRlciIpJiYodC5nZXRFbCgiaW5wIikudmFsdWU9IiIsdC5yZW1v
dmVDbGFzcygicGxhY2Vob2xkZXIiKSl9KSx0Lm9uKCJmb2N1c291dCIsZnVuY3Rpb24oKXswPT09
dC52YWx1ZSgpLmxlbmd0aCYmKHQuZ2V0RWwoImlucCIpLnZhbHVlPWUucGxhY2Vob2xkZXIsdC5h
ZGRDbGFzcygicGxhY2Vob2xkZXIiKSl9KSl9LHNob3dNZW51OmZ1bmN0aW9uKCl7dmFyIGU9dGhp
cyxuPWUuc2V0dGluZ3MscjtlLm1lbnV8fChyPW4ubWVudXx8W10sci5sZW5ndGg/cj17dHlwZToi
bWVudSIsaXRlbXM6cn06ci50eXBlPXIudHlwZXx8Im1lbnUiLGUubWVudT10LmNyZWF0ZShyKS5w
YXJlbnQoZSkucmVuZGVyVG8oZS5nZXRDb250YWluZXJFbG0oKSksZS5maXJlKCJjcmVhdGVtZW51
IiksZS5tZW51LnJlZmxvdygpLGUubWVudS5vbigiY2FuY2VsIixmdW5jdGlvbih0KXt0LmNvbnRy
b2w9PT1lLm1lbnUmJmUuZm9jdXMoKX0pLGUubWVudS5vbigic2hvdyBoaWRlIixmdW5jdGlvbih0
KXt0LmNvbnRyb2wuaXRlbXMoKS5lYWNoKGZ1bmN0aW9uKHQpe3QuYWN0aXZlKHQudmFsdWUoKT09
ZS52YWx1ZSgpKX0pfSkuZmlyZSgic2hvdyIpLGUubWVudS5vbigic2VsZWN0IixmdW5jdGlvbih0
KXtlLnZhbHVlKHQuY29udHJvbC52YWx1ZSgpKX0pLGUub24oImZvY3VzaW4iLGZ1bmN0aW9uKHQp
eyJJTlBVVCI9PXQudGFyZ2V0LnRhZ05hbWUudG9VcHBlckNhc2UoKSYmZS5tZW51LmhpZGUoKX0p
LGUuYXJpYSgiZXhwYW5kZWQiLCEwKSksZS5tZW51LnNob3coKSxlLm1lbnUubGF5b3V0UmVjdCh7
dzplLmxheW91dFJlY3QoKS53fSksZS5tZW51Lm1vdmVSZWwoZS5nZXRFbCgpLGUuaXNSdGwoKT9b
ImJyLXRyIiwidHItYnIiXTpbImJsLXRsIiwidGwtYmwiXSl9LHZhbHVlOmZ1bmN0aW9uKGUpe3Zh
ciB0PXRoaXM7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBlPyh0Ll92YWx1ZT1lLHQucmVtb3Zl
Q2xhc3MoInBsYWNlaG9sZGVyIiksdC5fcmVuZGVyZWQmJih0LmdldEVsKCJpbnAiKS52YWx1ZT1l
KSx0KTp0Ll9yZW5kZXJlZD8oZT10LmdldEVsKCJpbnAiKS52YWx1ZSxlIT10LnNldHRpbmdzLnBs
YWNlaG9sZGVyP2U6IiIpOnQuX3ZhbHVlfSxkaXNhYmxlZDpmdW5jdGlvbihlKXt2YXIgdD10aGlz
O3JldHVybiB0Ll9yZW5kZXJlZCYmInVuZGVmaW5lZCIhPXR5cGVvZiBlJiYodC5nZXRFbCgiaW5w
IikuZGlzYWJsZWQ9ZSksdC5fc3VwZXIoZSl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5nZXRFbCgi
aW5wIikuZm9jdXMoKX0scmVwYWludDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLmdldEVsKCks
cj1lLmdldEVsKCJvcGVuIiksaT1lLmxheW91dFJlY3QoKSxvLGE7bz1yP2kudy1uLmdldFNpemUo
cikud2lkdGgtMTA6aS53LTEwO3ZhciBzPWRvY3VtZW50O3JldHVybiBzLmFsbCYmKCFzLmRvY3Vt
ZW50TW9kZXx8cy5kb2N1bWVudE1vZGU8PTgpJiYoYT1lLmxheW91dFJlY3QoKS5oLTIrInB4Iiks
bi5jc3ModC5maXJzdENoaWxkLHt3aWR0aDpvLGxpbmVIZWlnaHQ6YX0pLGUuX3N1cGVyKCksZX0s
cG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIG4ub24odGhpcy5nZXRFbCgi
aW5wIiksImNoYW5nZSIsZnVuY3Rpb24oKXtlLmZpcmUoImNoYW5nZSIpfSksZS5fc3VwZXIoKX0s
cmVtb3ZlOmZ1bmN0aW9uKCl7bi5vZmYodGhpcy5nZXRFbCgiaW5wIikpLHRoaXMuX3N1cGVyKCl9
LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5faWQsbj1lLnNldHRpbmdzLHI9
ZS5jbGFzc1ByZWZpeCxpPW4udmFsdWV8fG4ucGxhY2Vob2xkZXJ8fCIiLG8sYSxzPSIiLGw9IiI7
cmV0dXJuInNwZWxsY2hlY2siaW4gbiYmKGwrPScgc3BlbGxjaGVjaz0iJytuLnNwZWxsY2hlY2sr
JyInKSxuLm1heExlbmd0aCYmKGwrPScgbWF4bGVuZ3RoPSInK24ubWF4TGVuZ3RoKyciJyksbi5z
aXplJiYobCs9JyBzaXplPSInK24uc2l6ZSsnIicpLG4uc3VidHlwZSYmKGwrPScgdHlwZT0iJytu
LnN1YnR5cGUrJyInKSxlLmRpc2FibGVkKCkmJihsKz0nIGRpc2FibGVkPSJkaXNhYmxlZCInKSxv
PW4uaWNvbixvJiYiY2FyZXQiIT1vJiYobz1yKyJpY28gIityKyJpLSIrbi5pY29uKSxhPWUuX3Rl
eHQsKG98fGEpJiYocz0nPGRpdiBpZD0iJyt0Kyctb3BlbiIgY2xhc3M9IicrcisiYnRuICIrcisn
b3BlbiIgdGFiSW5kZXg9Ii0xIiByb2xlPSJidXR0b24iPjxidXR0b24gaWQ9IicrdCsnLWFjdGlv
biIgdHlwZT0iYnV0dG9uIiBoaWRlZm9jdXM9IjEiIHRhYmluZGV4PSItMSI+JysoImNhcmV0IiE9
bz8nPGkgY2xhc3M9IicrbysnIj48L2k+JzonPGkgY2xhc3M9IicrcisnY2FyZXQiPjwvaT4nKSso
YT8obz8iICI6IiIpK2E6IiIpKyI8L2J1dHRvbj48L2Rpdj4iLGUuYWRkQ2xhc3MoImhhcy1vcGVu
IikpLCc8ZGl2IGlkPSInK3QrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyI+PGlucHV0IGlkPSIn
K3QrJy1pbnAiIGNsYXNzPSInK3IrInRleHRib3ggIityKydwbGFjZWhvbGRlciIgdmFsdWU9Iicr
aSsnIiBoaWRlZm9jdXM9IjEiJytsKyIgLz4iK3MrIjwvZGl2PiIKK319KX0pLHIoUnQsW3d0XSxm
dW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztl
LmRlbGltaXRlcnx8KGUuZGVsaW1pdGVyPSJceGJiIiksdC5fc3VwZXIoZSksdC5hZGRDbGFzcygi
cGF0aCIpLHQuY2FuRm9jdXM9ITAsdC5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciBuLHI9ZS50
YXJnZXQ7KG49ci5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSkmJnQuZmlyZSgic2VsZWN0Iix7
dmFsdWU6dC5kYXRhKClbbl0saW5kZXg6bn0pfSl9LGZvY3VzOmZ1bmN0aW9uKCl7dmFyIGU9dGhp
cztyZXR1cm4gZS5nZXRFbCgpLmZpcnN0Q2hpbGQuZm9jdXMoKSxlfSxkYXRhOmZ1bmN0aW9uKGUp
e3ZhciB0PXRoaXM7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBlPyh0Ll9kYXRhPWUsdC51cGRh
dGUoKSx0KTp0Ll9kYXRhfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLmlubmVySHRtbCh0aGlzLl9n
ZXRQYXRoSHRtbCgpKX0scG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5fc3VwZXIo
KSxlLmRhdGEoZS5zZXR0aW5ncy5kYXRhKX0scmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRo
aXM7cmV0dXJuJzxkaXYgaWQ9IicrZS5faWQrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyI+Jytl
Ll9nZXRQYXRoSHRtbCgpKyI8L2Rpdj4ifSxfZ2V0UGF0aEh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10
aGlzLHQ9ZS5fZGF0YXx8W10sbixyLGk9IiIsbz1lLmNsYXNzUHJlZml4O2ZvcihuPTAscj10Lmxl
bmd0aDtyPm47bisrKWkrPShuPjA/JzxkaXYgY2xhc3M9IicrbysnZGl2aWRlciIgYXJpYS1oaWRk
ZW49InRydWUiPiAnK2Uuc2V0dGluZ3MuZGVsaW1pdGVyKyIgPC9kaXY+IjoiIikrJzxkaXYgcm9s
ZT0iYnV0dG9uIiBjbGFzcz0iJytvKyJwYXRoLWl0ZW0iKyhuPT1yLTE/IiAiK28rImxhc3QiOiIi
KSsnIiBkYXRhLWluZGV4PSInK24rJyIgdGFiaW5kZXg9Ii0xIiBpZD0iJytlLl9pZCsiLSIrbisn
IiBhcmlhLWxldmVsPSInK24rJyI+Jyt0W25dLm5hbWUrIjwvZGl2PiI7cmV0dXJuIGl8fChpPSc8
ZGl2IGNsYXNzPSInK28rJ3BhdGgtaXRlbSI+XHhhMDwvZGl2PicpLGl9fSl9KSxyKEF0LFtSdCxk
dF0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5leHRlbmQoe3Bvc3RSZW5kZXI6ZnVuY3Rpb24oKXtm
dW5jdGlvbiBlKGUpe2lmKDE9PT1lLm5vZGVUeXBlKXtpZigiQlIiPT1lLm5vZGVOYW1lfHxlLmdl
dEF0dHJpYnV0ZSgiZGF0YS1tY2UtYm9ndXMiKSlyZXR1cm4hMDtpZigiYm9va21hcmsiPT09ZS5n
ZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXR5cGUiKSlyZXR1cm4hMH1yZXR1cm4hMX12YXIgbj10aGlz
LHI9dC5hY3RpdmVFZGl0b3I7cmV0dXJuIG4ub24oInNlbGVjdCIsZnVuY3Rpb24odCl7dmFyIG49
W10saSxvPXIuZ2V0Qm9keSgpO2ZvcihyLmZvY3VzKCksaT1yLnNlbGVjdGlvbi5nZXRTdGFydCgp
O2kmJmkhPW87KWUoaSl8fG4ucHVzaChpKSxpPWkucGFyZW50Tm9kZTtyLnNlbGVjdGlvbi5zZWxl
Y3QobltuLmxlbmd0aC0xLXQuaW5kZXhdKSxyLm5vZGVDaGFuZ2VkKCl9KSxyLm9uKCJub2RlQ2hh
bmdlIixmdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbz10LnBhcmVudHMsYT1vLmxlbmd0aDthLS07
KWlmKDE9PW9bYV0ubm9kZVR5cGUmJiFlKG9bYV0pKXt2YXIgcz1yLmZpcmUoIlJlc29sdmVOYW1l
Iix7bmFtZTpvW2FdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksdGFyZ2V0Om9bYV19KTtpLnB1c2go
e25hbWU6cy5uYW1lfSl9bi5kYXRhKGkpfSksbi5fc3VwZXIoKX19KX0pLHIoQnQsW0ddLGZ1bmN0
aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7RGVmYXVsdHM6e2xheW91dDoiZmxleCIsYWxpZ246ImNl
bnRlciIsZGVmYXVsdHM6e2ZsZXg6MX19LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlz
LHQ9ZS5fbGF5b3V0LG49ZS5jbGFzc1ByZWZpeDtyZXR1cm4gZS5hZGRDbGFzcygiZm9ybWl0ZW0i
KSx0LnByZVJlbmRlcihlKSwnPGRpdiBpZD0iJytlLl9pZCsnIiBjbGFzcz0iJytlLmNsYXNzZXMo
KSsnIiBoaWRlZm9jdXM9IjEiIHRhYmluZGV4PSItMSI+JysoZS5zZXR0aW5ncy50aXRsZT8nPGRp
diBpZD0iJytlLl9pZCsnLXRpdGxlIiBjbGFzcz0iJytuKyd0aXRsZSI+JytlLnNldHRpbmdzLnRp
dGxlKyI8L2Rpdj4iOiIiKSsnPGRpdiBpZD0iJytlLl9pZCsnLWJvZHkiIGNsYXNzPSInK2UuY2xh
c3NlcygiYm9keSIpKyciPicrKGUuc2V0dGluZ3MuaHRtbHx8IiIpK3QucmVuZGVySHRtbChlKSsi
PC9kaXY+PC9kaXY+In19KX0pLHIoRHQsW0csQnRdLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZXh0
ZW5kKHtEZWZhdWx0czp7Y29udGFpbmVyQ2xzOiJmb3JtIixsYXlvdXQ6ImZsZXgiLGRpcmVjdGlv
bjoiY29sdW1uIixhbGlnbjoic3RyZXRjaCIsZmxleDoxLHBhZGRpbmc6MjAsbGFiZWxHYXA6MzAs
c3BhY2luZzoxMCxjYWxsYmFja3M6e3N1Ym1pdDpmdW5jdGlvbigpe3RoaXMuc3VibWl0KCl9fX0s
cHJlUmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWUuaXRlbXMoKTtuLmVhY2goZnVuY3Rp
b24obil7dmFyIHIsaT1uLnNldHRpbmdzLmxhYmVsO2kmJihyPW5ldyB0KHtsYXlvdXQ6ImZsZXgi
LGF1dG9SZXNpemU6Im92ZXJmbG93IixkZWZhdWx0czp7ZmxleDoxfSxpdGVtczpbe3R5cGU6Imxh
YmVsIixpZDpuLl9pZCsiLWwiLHRleHQ6aSxmbGV4OjAsZm9ySWQ6bi5faWQsZGlzYWJsZWQ6bi5k
aXNhYmxlZCgpfV19KSxyLnR5cGU9ImZvcm1pdGVtIixuLmFyaWEoImxhYmVsbGVkYnkiLG4uX2lk
KyItbCIpLCJ1bmRlZmluZWQiPT10eXBlb2Ygbi5zZXR0aW5ncy5mbGV4JiYobi5zZXR0aW5ncy5m
bGV4PTEpLGUucmVwbGFjZShuLHIpLHIuYWRkKG4pKX0pfSxyZWNhbGNMYWJlbHM6ZnVuY3Rpb24o
KXt2YXIgZT10aGlzLHQ9MCxuPVtdLHIsaTtpZihlLnNldHRpbmdzLmxhYmVsR2FwQ2FsYyE9PSEx
KWZvcihlLml0ZW1zKCkuZmlsdGVyKCJmb3JtaXRlbSIpLmVhY2goZnVuY3Rpb24oZSl7dmFyIHI9
ZS5pdGVtcygpWzBdLGk9ci5nZXRFbCgpLmNsaWVudFdpZHRoO3Q9aT50P2k6dCxuLnB1c2gocil9
KSxpPWUuc2V0dGluZ3MubGFiZWxHYXB8fDAscj1uLmxlbmd0aDtyLS07KW5bcl0uc2V0dGluZ3Mu
bWluV2lkdGg9dCtpfSx2aXNpYmxlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3N1cGVyKGUpO3Jl
dHVybiBlPT09ITAmJnRoaXMuX3JlbmRlcmVkJiZ0aGlzLnJlY2FsY0xhYmVscygpLHR9LHN1Ym1p
dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpcmUoInN1Ym1pdCIse2RhdGE6dGhpcy50b0pTT04o
KX0pfSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9zdXBlcigpLGUucmVjYWxj
TGFiZWxzKCksZS5mcm9tSlNPTihlLnNldHRpbmdzLmRhdGEpfX0pfSkscihMdCxbRHRdLGZ1bmN0
aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7RGVmYXVsdHM6e2NvbnRhaW5lckNsczoiZmllbGRzZXQi
LGxheW91dDoiZmxleCIsZGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduOiJzdHJldGNoIixmbGV4OjEs
cGFkZGluZzoiMjUgMTUgNSAxNSIsbGFiZWxHYXA6MzAsc3BhY2luZzoxMCxib3JkZXI6MX0scmVu
ZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9sYXlvdXQsbj1lLmNsYXNzUHJlZml4
O3JldHVybiBlLnByZVJlbmRlcigpLHQucHJlUmVuZGVyKGUpLCc8ZmllbGRzZXQgaWQ9IicrZS5f
aWQrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgaGlkZWZvY3VzPSIxIiB0YWJpbmRleD0iLTEi
PicrKGUuc2V0dGluZ3MudGl0bGU/JzxsZWdlbmQgaWQ9IicrZS5faWQrJy10aXRsZSIgY2xhc3M9
IicrbisnZmllbGRzZXQtdGl0bGUiPicrZS5zZXR0aW5ncy50aXRsZSsiPC9sZWdlbmQ+IjoiIikr
JzxkaXYgaWQ9IicrZS5faWQrJy1ib2R5IiBjbGFzcz0iJytlLmNsYXNzZXMoImJvZHkiKSsnIj4n
KyhlLnNldHRpbmdzLmh0bWx8fCIiKSt0LnJlbmRlckh0bWwoZSkrIjwvZGl2PjwvZmllbGRzZXQ+
In19KX0pLHIoTXQsW1R0XSxmdW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe2luaXQ6ZnVuY3Rp
b24oZSl7dmFyIHQ9dGhpcyxuPXRpbnltY2UuYWN0aXZlRWRpdG9yLHI7ZS5zcGVsbGNoZWNrPSEx
LHI9bi5zZXR0aW5ncy5maWxlX2Jyb3dzZXJfY2FsbGJhY2ssciYmKGUuaWNvbj0iYnJvd3NlIixl
Lm9uYWN0aW9uPWZ1bmN0aW9uKCl7cih0LmdldEVsKCJpbnAiKS5pZCx0LmdldEVsKCJpbnAiKS52
YWx1ZSxlLmZpbGV0eXBlLHdpbmRvdyl9KSx0Ll9zdXBlcihlKX19KX0pLHIoSHQsW0N0XSxmdW5j
dGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe3JlY2FsYzpmdW5jdGlvbihlKXt2YXIgdD1lLmxheW91
dFJlY3QoKSxuPWUucGFkZGluZ0JveCgpO2UuaXRlbXMoKS5maWx0ZXIoIjp2aXNpYmxlIikuZWFj
aChmdW5jdGlvbihlKXtlLmxheW91dFJlY3Qoe3g6bi5sZWZ0LHk6bi50b3Asdzp0LmlubmVyVy1u
LnJpZ2h0LW4ubGVmdCxoOnQuaW5uZXJILW4udG9wLW4uYm90dG9tfSksZS5yZWNhbGMmJmUucmVj
YWxjKCl9KX19KX0pLHIoUHQsW0N0XSxmdW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe3JlY2Fs
YzpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscyxsLGMsdSxkLGYscCxoLG0sZyx2PVtdLHks
YixDLHgsdyxfLE4sRSxTLGssVCxSLEEsQixELEwsTSxILFAsTyxJLEYsej1NYXRoLm1heCxXPU1h
dGgubWluO2ZvcihyPWUuaXRlbXMoKS5maWx0ZXIoIjp2aXNpYmxlIiksaT1lLmxheW91dFJlY3Qo
KSxvPWUuX3BhZGRpbmdCb3gsYT1lLnNldHRpbmdzLGY9ZS5pc1J0bCgpP2EuZGlyZWN0aW9ufHwi
cm93LXJldmVyc2VkIjphLmRpcmVjdGlvbixzPWEuYWxpZ24sbD1lLmlzUnRsKCk/YS5wYWNrfHwi
ZW5kIjphLnBhY2ssYz1hLnNwYWNpbmd8fDAsKCJyb3ctcmV2ZXJzZWQiPT1mfHwiY29sdW1uLXJl
dmVyc2UiPT1mKSYmKHI9ci5zZXQoci50b0FycmF5KCkucmV2ZXJzZSgpKSxmPWYuc3BsaXQoIi0i
KVswXSksImNvbHVtbiI9PWY/KFM9InkiLE49ImgiLEU9Im1pbkgiLGs9Im1heEgiLFI9ImlubmVy
SCIsVD0idG9wIixBPSJkZWx0YUgiLEI9ImNvbnRlbnRIIixQPSJsZWZ0IixNPSJ3IixEPSJ4IixM
PSJpbm5lclciLEg9Im1pblciLE89InJpZ2h0IixJPSJkZWx0YVciLEY9ImNvbnRlbnRXIik6KFM9
IngiLE49InciLEU9Im1pblciLGs9Im1heFciLFI9ImlubmVyVyIsVD0ibGVmdCIsQT0iZGVsdGFX
IixCPSJjb250ZW50VyIsUD0idG9wIixNPSJoIixEPSJ5IixMPSJpbm5lckgiLEg9Im1pbkgiLE89
ImJvdHRvbSIsST0iZGVsdGFIIixGPSJjb250ZW50SCIpLGQ9aVtSXS1vW1RdLW9bVF0sXz11PTAs
dD0wLG49ci5sZW5ndGg7bj50O3QrKylwPXJbdF0saD1wLmxheW91dFJlY3QoKSxtPXAuc2V0dGlu
Z3MsZz1tLmZsZXgsZC09bi0xPnQ/YzowLGc+MCYmKHUrPWcsaFtrXSYmdi5wdXNoKHApLGguZmxl
eD1nKSxkLT1oW0VdLHk9b1tQXStoW0hdK29bT10seT5fJiYoXz15KTtpZih4PXt9LHhbRV09MD5k
P2lbRV0tZCtpW0FdOmlbUl0tZCtpW0FdLHhbSF09XytpW0ldLHhbQl09aVtSXS1kLHhbRl09Xyx4
Lm1pblc9Vyh4Lm1pblcsaS5tYXhXKSx4Lm1pbkg9Vyh4Lm1pbkgsaS5tYXhIKSx4Lm1pblc9eih4
Lm1pblcsaS5zdGFydE1pbldpZHRoKSx4Lm1pbkg9eih4Lm1pbkgsaS5zdGFydE1pbkhlaWdodCks
IWkuYXV0b1Jlc2l6ZXx8eC5taW5XPT1pLm1pblcmJngubWluSD09aS5taW5IKXtmb3IoQz1kL3Us
dD0wLG49di5sZW5ndGg7bj50O3QrKylwPXZbdF0saD1wLmxheW91dFJlY3QoKSxiPWhba10seT1o
W0VdK2guZmxleCpDLHk+Yj8oZC09aFtrXS1oW0VdLHUtPWguZmxleCxoLmZsZXg9MCxoLm1heEZs
ZXhTaXplPWIpOmgubWF4RmxleFNpemU9MDtmb3IoQz1kL3Usdz1vW1RdLHg9e30sMD09PXUmJigi
ZW5kIj09bD93PWQrb1tUXToiY2VudGVyIj09bD8odz1NYXRoLnJvdW5kKGlbUl0vMi0oaVtSXS1k
KS8yKStvW1RdLDA+dyYmKHc9b1tUXSkpOiJqdXN0aWZ5Ij09bCYmKHc9b1tUXSxjPU1hdGguZmxv
b3IoZC8oci5sZW5ndGgtMSkpKSkseFtEXT1vW1BdLHQ9MCxuPXIubGVuZ3RoO24+dDt0KyspcD1y
W3RdLGg9cC5sYXlvdXRSZWN0KCkseT1oLm1heEZsZXhTaXplfHxoW0VdLCJjZW50ZXIiPT09cz94
W0RdPU1hdGgucm91bmQoaVtMXS8yLWhbTV0vMik6InN0cmV0Y2giPT09cz8oeFtNXT16KGhbSF18
fDAsaVtMXS1vW1BdLW9bT10pLHhbRF09b1tQXSk6ImVuZCI9PT1zJiYoeFtEXT1pW0xdLWhbTV0t
by50b3ApLGguZmxleD4wJiYoeSs9aC5mbGV4KkMpLHhbTl09eSx4W1NdPXcscC5sYXlvdXRSZWN0
KHgpLHAucmVjYWxjJiZwLnJlY2FsYygpLHcrPXkrY31lbHNlIGlmKHgudz14Lm1pblcseC5oPXgu
bWluSCxlLmxheW91dFJlY3QoeCksdGhpcy5yZWNhbGMoZSksbnVsbD09PWUuX2xhc3RSZWN0KXt2
YXIgVj1lLnBhcmVudCgpO1YmJihWLl9sYXN0UmVjdD1udWxsLFYucmVjYWxjKCkpfX19KX0pLHIo
T3QsW2J0XSxmdW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe0RlZmF1bHRzOntjb250YWluZXJD
bGFzczoiZmxvdy1sYXlvdXQiLGNvbnRyb2xDbGFzczoiZmxvdy1sYXlvdXQtaXRlbSIsZW5kQ2xh
c3M6ImJyZWFrIn0scmVjYWxjOmZ1bmN0aW9uKGUpe2UuaXRlbXMoKS5maWx0ZXIoIjp2aXNpYmxl
IikuZWFjaChmdW5jdGlvbihlKXtlLnJlY2FsYyYmZS5yZWNhbGMoKX0pfX0pfSkscihJdCxbJCx3
dCxldCxwLGR0LGddLGZ1bmN0aW9uKGUsdCxuLHIsaSxvKXtmdW5jdGlvbiBhKGUpe2Z1bmN0aW9u
IHQodCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzO2Uub24oIm5vZGVDaGFuZ2UiLGZ1
bmN0aW9uKGkpe3ZhciBvPWUuZm9ybWF0dGVyLGE9bnVsbDtzKGkucGFyZW50cyxmdW5jdGlvbihl
KXtyZXR1cm4gcyh0LGZ1bmN0aW9uKHQpe3JldHVybiBuP28ubWF0Y2hOb2RlKGUsbix7dmFsdWU6
dC52YWx1ZX0pJiYoYT10LnZhbHVlKTpvLm1hdGNoTm9kZShlLHQudmFsdWUpJiYoYT10LnZhbHVl
KSxhPyExOnZvaWQgMH0pLGE/ITE6dm9pZCAwfSksci52YWx1ZShhKX0pfX1mdW5jdGlvbiByKGUp
e2U9ZS5yZXBsYWNlKC87JC8sIiIpLnNwbGl0KCI7Iik7Zm9yKHZhciB0PWUubGVuZ3RoO3QtLTsp
ZVt0XT1lW3RdLnNwbGl0KCI9Iik7cmV0dXJuIGV9ZnVuY3Rpb24gaSgpe2Z1bmN0aW9uIHQoZSl7
dmFyIG49W107aWYoZSlyZXR1cm4gcyhlLGZ1bmN0aW9uKGUpe3ZhciBvPXt0ZXh0OmUudGl0bGUs
aWNvbjplLmljb259O2lmKGUuaXRlbXMpby5tZW51PXQoZS5pdGVtcyk7ZWxzZXt2YXIgYT1lLmZv
cm1hdHx8ImN1c3RvbSIrcisrO2UuZm9ybWF0fHwoZS5uYW1lPWEsaS5wdXNoKGUpKSxvLmZvcm1h
dD1hfW4ucHVzaChvKX0pLG59ZnVuY3Rpb24gbigpe3ZhciBuO3JldHVybiBuPXQoZS5zZXR0aW5n
cy5zdHlsZV9mb3JtYXRzX21lcmdlP2Uuc2V0dGluZ3Muc3R5bGVfZm9ybWF0cz9vLmNvbmNhdChl
LnNldHRpbmdzLnN0eWxlX2Zvcm1hdHMpOm86ZS5zZXR0aW5ncy5zdHlsZV9mb3JtYXRzfHxvKX12
YXIgcj0wLGk9W10sbz1be3RpdGxlOiJIZWFkaW5ncyIsaXRlbXM6W3t0aXRsZToiSGVhZGluZyAx
Iixmb3JtYXQ6ImgxIn0se3RpdGxlOiJIZWFkaW5nIDIiLGZvcm1hdDoiaDIifSx7dGl0bGU6Ikhl
YWRpbmcgMyIsZm9ybWF0OiJoMyJ9LHt0aXRsZToiSGVhZGluZyA0Iixmb3JtYXQ6Img0In0se3Rp
dGxlOiJIZWFkaW5nIDUiLGZvcm1hdDoiaDUifSx7dGl0bGU6IkhlYWRpbmcgNiIsZm9ybWF0OiJo
NiJ9XX0se3RpdGxlOiJJbmxpbmUiLGl0ZW1zOlt7dGl0bGU6IkJvbGQiLGljb246ImJvbGQiLGZv
cm1hdDoiYm9sZCJ9LHt0aXRsZToiSXRhbGljIixpY29uOiJpdGFsaWMiLGZvcm1hdDoiaXRhbGlj
In0se3RpdGxlOiJVbmRlcmxpbmUiLGljb246InVuZGVybGluZSIsZm9ybWF0OiJ1bmRlcmxpbmUi
fSx7dGl0bGU6IlN0cmlrZXRocm91Z2giLGljb246InN0cmlrZXRocm91Z2giLGZvcm1hdDoic3Ry
aWtldGhyb3VnaCJ9LHt0aXRsZToiU3VwZXJzY3JpcHQiLGljb246InN1cGVyc2NyaXB0Iixmb3Jt
YXQ6InN1cGVyc2NyaXB0In0se3RpdGxlOiJTdWJzY3JpcHQiLGljb246InN1YnNjcmlwdCIsZm9y
bWF0OiJzdWJzY3JpcHQifSx7dGl0bGU6IkNvZGUiLGljb246ImNvZGUiLGZvcm1hdDoiY29kZSJ9
XX0se3RpdGxlOiJCbG9ja3MiLGl0ZW1zOlt7dGl0bGU6IlBhcmFncmFwaCIsZm9ybWF0OiJwIn0s
e3RpdGxlOiJCbG9ja3F1b3RlIixmb3JtYXQ6ImJsb2NrcXVvdGUifSx7dGl0bGU6IkRpdiIsZm9y
bWF0OiJkaXYifSx7dGl0bGU6IlByZSIsZm9ybWF0OiJwcmUifV19LHt0aXRsZToiQWxpZ25tZW50
IixpdGVtczpbe3RpdGxlOiJMZWZ0IixpY29uOiJhbGlnbmxlZnQiLGZvcm1hdDoiYWxpZ25sZWZ0
In0se3RpdGxlOiJDZW50ZXIiLGljb246ImFsaWduY2VudGVyIixmb3JtYXQ6ImFsaWduY2VudGVy
In0se3RpdGxlOiJSaWdodCIsaWNvbjoiYWxpZ25yaWdodCIsZm9ybWF0OiJhbGlnbnJpZ2h0In0s
e3RpdGxlOiJKdXN0aWZ5IixpY29uOiJhbGlnbmp1c3RpZnkiLGZvcm1hdDoiYWxpZ25qdXN0aWZ5
In1dfV07cmV0dXJuIGUub24oImluaXQiLGZ1bmN0aW9uKCl7cyhpLGZ1bmN0aW9uKHQpe2UuZm9y
bWF0dGVyLnJlZ2lzdGVyKHQubmFtZSx0KX0pfSkse3R5cGU6Im1lbnUiLGl0ZW1zOm4oKSxvblBv
c3RSZW5kZXI6ZnVuY3Rpb24odCl7ZS5maXJlKCJyZW5kZXJGb3JtYXRzTWVudSIse2NvbnRyb2w6
dC5jb250cm9sfSl9LGl0ZW1EZWZhdWx0czp7cHJldmlldzohMCx0ZXh0U3R5bGU6ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5zZXR0aW5ncy5mb3JtYXQ/ZS5mb3JtYXR0ZXIuZ2V0Q3NzVGV4dCh0aGlz
LnNldHRpbmdzLmZvcm1hdCk6dm9pZCAwfSxvblBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgdD10
aGlzLG49dGhpcy5zZXR0aW5ncy5mb3JtYXQ7biYmdC5wYXJlbnQoKS5vbigic2hvdyIsZnVuY3Rp
b24oKXt0LmRpc2FibGVkKCFlLmZvcm1hdHRlci5jYW5BcHBseShuKSksdC5hY3RpdmUoZS5mb3Jt
YXR0ZXIubWF0Y2gobikpfSl9LG9uY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLnNldHRpbmdzLmZvcm1h
dCYmZCh0aGlzLnNldHRpbmdzLmZvcm1hdCl9fX19ZnVuY3Rpb24gbygpe3JldHVybiBlLnVuZG9N
YW5hZ2VyP2UudW5kb01hbmFnZXIuaGFzVW5kbygpOiExfWZ1bmN0aW9uIGEoKXtyZXR1cm4gZS51
bmRvTWFuYWdlcj9lLnVuZG9NYW5hZ2VyLmhhc1JlZG8oKTohMX1mdW5jdGlvbiBsKCl7dmFyIHQ9
dGhpczt0LmRpc2FibGVkKCFvKCkpLGUub24oIlVuZG8gUmVkbyBBZGRVbmRvIFR5cGluZ1VuZG8i
LGZ1bmN0aW9uKCl7dC5kaXNhYmxlZCghbygpKX0pfWZ1bmN0aW9uIGMoKXt2YXIgdD10aGlzO3Qu
ZGlzYWJsZWQoIWEoKSksZS5vbigiVW5kbyBSZWRvIEFkZFVuZG8gVHlwaW5nVW5kbyIsZnVuY3Rp
b24oKXt0LmRpc2FibGVkKCFhKCkpfSl9ZnVuY3Rpb24gdSgpe3ZhciB0PXRoaXM7ZS5vbigiVmlz
dWFsQWlkIixmdW5jdGlvbihlKXt0LmFjdGl2ZShlLmhhc1Zpc3VhbCl9KSx0LmFjdGl2ZShlLmhh
c1Zpc3VhbCl9ZnVuY3Rpb24gZCh0KXt0LmNvbnRyb2wmJih0PXQuY29udHJvbC52YWx1ZSgpKSx0
JiZlLmV4ZWNDb21tYW5kKCJtY2VUb2dnbGVGb3JtYXQiLCExLHQpfXZhciBmO2Y9aSgpLHMoe2Jv
bGQ6IkJvbGQiLGl0YWxpYzoiSXRhbGljIix1bmRlcmxpbmU6IlVuZGVybGluZSIsc3RyaWtldGhy
b3VnaDoiU3RyaWtldGhyb3VnaCIsc3Vic2NyaXB0OiJTdWJzY3JpcHQiLHN1cGVyc2NyaXB0OiJT
dXBlcnNjcmlwdCJ9LGZ1bmN0aW9uKHQsbil7ZS5hZGRCdXR0b24obix7dG9vbHRpcDp0LG9uUG9z
dFJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ZS5mb3JtYXR0ZXI/ZS5mb3JtYXR0ZXIuZm9y
bWF0Q2hhbmdlZChuLGZ1bmN0aW9uKGUpe3QuYWN0aXZlKGUpfSk6ZS5vbigiaW5pdCIsZnVuY3Rp
b24oKXtlLmZvcm1hdHRlci5mb3JtYXRDaGFuZ2VkKG4sZnVuY3Rpb24oZSl7dC5hY3RpdmUoZSl9
KX0pfSxvbmNsaWNrOmZ1bmN0aW9uKCl7ZChuKX19KX0pLHMoe291dGRlbnQ6WyJEZWNyZWFzZSBp
bmRlbnQiLCJPdXRkZW50Il0saW5kZW50OlsiSW5jcmVhc2UgaW5kZW50IiwiSW5kZW50Il0sY3V0
OlsiQ3V0IiwiQ3V0Il0sY29weTpbIkNvcHkiLCJDb3B5Il0scGFzdGU6WyJQYXN0ZSIsIlBhc3Rl
Il0saGVscDpbIkhlbHAiLCJtY2VIZWxwIl0sc2VsZWN0YWxsOlsiU2VsZWN0IGFsbCIsIlNlbGVj
dEFsbCJdLGhyOlsiSW5zZXJ0IGhvcml6b250YWwgcnVsZSIsIkluc2VydEhvcml6b250YWxSdWxl
Il0scmVtb3ZlZm9ybWF0OlsiQ2xlYXIgZm9ybWF0dGluZyIsIlJlbW92ZUZvcm1hdCJdLHZpc3Vh
bGFpZDpbIlZpc3VhbCBhaWRzIiwibWNlVG9nZ2xlVmlzdWFsQWlkIl0sbmV3ZG9jdW1lbnQ6WyJO
ZXcgZG9jdW1lbnQiLCJtY2VOZXdEb2N1bWVudCJdfSxmdW5jdGlvbih0LG4pe2UuYWRkQnV0dG9u
KG4se3Rvb2x0aXA6dFswXSxjbWQ6dFsxXX0pfSkscyh7YmxvY2txdW90ZTpbIkJsb2NrcXVvdGUi
LCJtY2VCbG9ja1F1b3RlIl0sbnVtbGlzdDpbIk51bWJlcmVkIGxpc3QiLCJJbnNlcnRPcmRlcmVk
TGlzdCJdLGJ1bGxpc3Q6WyJCdWxsZXQgbGlzdCIsIkluc2VydFVub3JkZXJlZExpc3QiXSxzdWJz
Y3JpcHQ6WyJTdWJzY3JpcHQiLCJTdWJzY3JpcHQiXSxzdXBlcnNjcmlwdDpbIlN1cGVyc2NyaXB0
IiwiU3VwZXJzY3JpcHQiXSxhbGlnbmxlZnQ6WyJBbGlnbiBsZWZ0IiwiSnVzdGlmeUxlZnQiXSxh
bGlnbmNlbnRlcjpbIkFsaWduIGNlbnRlciIsIkp1c3RpZnlDZW50ZXIiXSxhbGlnbnJpZ2h0Olsi
QWxpZ24gcmlnaHQiLCJKdXN0aWZ5UmlnaHQiXSxhbGlnbmp1c3RpZnk6WyJKdXN0aWZ5IiwiSnVz
dGlmeUZ1bGwiXX0sZnVuY3Rpb24odCxuKXtlLmFkZEJ1dHRvbihuLHt0b29sdGlwOnRbMF0sY21k
OnRbMV0sb25Qb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztlLmZvcm1hdHRlcj9lLmZv
cm1hdHRlci5mb3JtYXRDaGFuZ2VkKG4sZnVuY3Rpb24oZSl7dC5hY3RpdmUoZSl9KTplLm9uKCJp
bml0IixmdW5jdGlvbigpe2UuZm9ybWF0dGVyLmZvcm1hdENoYW5nZWQobixmdW5jdGlvbihlKXt0
LmFjdGl2ZShlKX0pfSl9fSl9KSxlLmFkZEJ1dHRvbigidW5kbyIse3Rvb2x0aXA6IlVuZG8iLG9u
UG9zdFJlbmRlcjpsLGNtZDoidW5kbyJ9KSxlLmFkZEJ1dHRvbigicmVkbyIse3Rvb2x0aXA6IlJl
ZG8iLG9uUG9zdFJlbmRlcjpjLGNtZDoicmVkbyJ9KSxlLmFkZE1lbnVJdGVtKCJuZXdkb2N1bWVu
dCIse3RleHQ6Ik5ldyBkb2N1bWVudCIsc2hvcnRjdXQ6IkN0cmwrTiIsaWNvbjoibmV3ZG9jdW1l
bnQiLGNtZDoibWNlTmV3RG9jdW1lbnQifSksZS5hZGRNZW51SXRlbSgidW5kbyIse3RleHQ6IlVu
ZG8iLGljb246InVuZG8iLHNob3J0Y3V0OiJDdHJsK1oiLG9uUG9zdFJlbmRlcjpsLGNtZDoidW5k
byJ9KSxlLmFkZE1lbnVJdGVtKCJyZWRvIix7dGV4dDoiUmVkbyIsaWNvbjoicmVkbyIsc2hvcnRj
dXQ6IkN0cmwrWSIsb25Qb3N0UmVuZGVyOmMsY21kOiJyZWRvIn0pLGUuYWRkTWVudUl0ZW0oInZp
c3VhbGFpZCIse3RleHQ6IlZpc3VhbCBhaWRzIixzZWxlY3RhYmxlOiEwLG9uUG9zdFJlbmRlcjp1
LGNtZDoibWNlVG9nZ2xlVmlzdWFsQWlkIn0pLHMoe2N1dDpbIkN1dCIsIkN1dCIsIkN0cmwrWCJd
LGNvcHk6WyJDb3B5IiwiQ29weSIsIkN0cmwrQyJdLHBhc3RlOlsiUGFzdGUiLCJQYXN0ZSIsIkN0
cmwrViJdLHNlbGVjdGFsbDpbIlNlbGVjdCBhbGwiLCJTZWxlY3RBbGwiLCJDdHJsK0EiXSxib2xk
OlsiQm9sZCIsIkJvbGQiLCJDdHJsK0IiXSxpdGFsaWM6WyJJdGFsaWMiLCJJdGFsaWMiLCJDdHJs
K0kiXSx1bmRlcmxpbmU6WyJVbmRlcmxpbmUiLCJVbmRlcmxpbmUiXSxzdHJpa2V0aHJvdWdoOlsi
U3RyaWtldGhyb3VnaCIsIlN0cmlrZXRocm91Z2giXSxzdWJzY3JpcHQ6WyJTdWJzY3JpcHQiLCJT
dWJzY3JpcHQiXSxzdXBlcnNjcmlwdDpbIlN1cGVyc2NyaXB0IiwiU3VwZXJzY3JpcHQiXSxyZW1v
dmVmb3JtYXQ6WyJDbGVhciBmb3JtYXR0aW5nIiwiUmVtb3ZlRm9ybWF0Il19LGZ1bmN0aW9uKHQs
bil7ZS5hZGRNZW51SXRlbShuLHt0ZXh0OnRbMF0saWNvbjpuLHNob3J0Y3V0OnRbMl0sY21kOnRb
MV19KX0pLGUub24oIm1vdXNlZG93biIsZnVuY3Rpb24oKXtuLmhpZGVBbGwoKX0pLGUuYWRkQnV0
dG9uKCJzdHlsZXNlbGVjdCIse3R5cGU6Im1lbnVidXR0b24iLHRleHQ6IkZvcm1hdHMiLG1lbnU6
Zn0pLGUuYWRkQnV0dG9uKCJmb3JtYXRzZWxlY3QiLGZ1bmN0aW9uKCl7dmFyIG49W10saT1yKGUu
c2V0dGluZ3MuYmxvY2tfZm9ybWF0c3x8IlBhcmFncmFwaD1wO0FkZHJlc3M9YWRkcmVzcztQcmU9
cHJlO0hlYWRpbmcgMT1oMTtIZWFkaW5nIDI9aDI7SGVhZGluZyAzPWgzO0hlYWRpbmcgND1oNDtI
ZWFkaW5nIDU9aDU7SGVhZGluZyA2PWg2Iik7cmV0dXJuIHMoaSxmdW5jdGlvbih0KXtuLnB1c2go
e3RleHQ6dFswXSx2YWx1ZTp0WzFdLHRleHRTdHlsZTpmdW5jdGlvbigpe3JldHVybiBlLmZvcm1h
dHRlci5nZXRDc3NUZXh0KHRbMV0pfX0pfSkse3R5cGU6Imxpc3Rib3giLHRleHQ6aVswXVswXSx2
YWx1ZXM6bixmaXhlZFdpZHRoOiEwLG9uc2VsZWN0OmQsb25Qb3N0UmVuZGVyOnQobil9fSksZS5h
ZGRCdXR0b24oImZvbnRzZWxlY3QiLGZ1bmN0aW9uKCl7dmFyIG49IkFuZGFsZSBNb25vPWFuZGFs
ZSBtb25vLHRpbWVzO0FyaWFsPWFyaWFsLGhlbHZldGljYSxzYW5zLXNlcmlmO0FyaWFsIEJsYWNr
PWFyaWFsIGJsYWNrLGF2YW50IGdhcmRlO0Jvb2sgQW50aXF1YT1ib29rIGFudGlxdWEscGFsYXRp
bm87Q29taWMgU2FucyBNUz1jb21pYyBzYW5zIG1zLHNhbnMtc2VyaWY7Q291cmllciBOZXc9Y291
cmllciBuZXcsY291cmllcjtHZW9yZ2lhPWdlb3JnaWEscGFsYXRpbm87SGVsdmV0aWNhPWhlbHZl
dGljYTtJbXBhY3Q9aW1wYWN0LGNoaWNhZ287U3ltYm9sPXN5bWJvbDtUYWhvbWE9dGFob21hLGFy
aWFsLGhlbHZldGljYSxzYW5zLXNlcmlmO1Rlcm1pbmFsPXRlcm1pbmFsLG1vbmFjbztUaW1lcyBO
ZXcgUm9tYW49dGltZXMgbmV3IHJvbWFuLHRpbWVzO1RyZWJ1Y2hldCBNUz10cmVidWNoZXQgbXMs
Z2VuZXZhO1ZlcmRhbmE9dmVyZGFuYSxnZW5ldmE7V2ViZGluZ3M9d2ViZGluZ3M7V2luZ2Rpbmdz
PXdpbmdkaW5ncyx6YXBmIGRpbmdiYXRzIixpPVtdLG89cihlLnNldHRpbmdzLmZvbnRfZm9ybWF0
c3x8bik7cmV0dXJuIHMobyxmdW5jdGlvbihlKXtpLnB1c2goe3RleHQ6e3JhdzplWzBdfSx2YWx1
ZTplWzFdLHRleHRTdHlsZTotMT09ZVsxXS5pbmRleE9mKCJkaW5ncyIpPyJmb250LWZhbWlseToi
K2VbMV06IiJ9KX0pLHt0eXBlOiJsaXN0Ym94Iix0ZXh0OiJGb250IEZhbWlseSIsdG9vbHRpcDoi
Rm9udCBGYW1pbHkiLHZhbHVlczppLGZpeGVkV2lkdGg6ITAsb25Qb3N0UmVuZGVyOnQoaSwiZm9u
dG5hbWUiKSxvbnNlbGVjdDpmdW5jdGlvbih0KXt0LmNvbnRyb2wuc2V0dGluZ3MudmFsdWUmJmUu
ZXhlY0NvbW1hbmQoIkZvbnROYW1lIiwhMSx0LmNvbnRyb2wuc2V0dGluZ3MudmFsdWUpfX19KSxl
LmFkZEJ1dHRvbigiZm9udHNpemVzZWxlY3QiLGZ1bmN0aW9uKCl7dmFyIG49W10scj0iOHB0IDEw
cHQgMTJwdCAxNHB0IDE4cHQgMjRwdCAzNnB0IixpPWUuc2V0dGluZ3MuZm9udHNpemVfZm9ybWF0
c3x8cjtyZXR1cm4gcyhpLnNwbGl0KCIgIiksZnVuY3Rpb24oZSl7bi5wdXNoKHt0ZXh0OmUsdmFs
dWU6ZX0pfSkse3R5cGU6Imxpc3Rib3giLHRleHQ6IkZvbnQgU2l6ZXMiLHRvb2x0aXA6IkZvbnQg
U2l6ZXMiLHZhbHVlczpuLGZpeGVkV2lkdGg6ITAsb25Qb3N0UmVuZGVyOnQobiwiZm9udHNpemUi
KSxvbmNsaWNrOmZ1bmN0aW9uKHQpe3QuY29udHJvbC5zZXR0aW5ncy52YWx1ZSYmZS5leGVjQ29t
bWFuZCgiRm9udFNpemUiLCExLHQuY29udHJvbC5zZXR0aW5ncy52YWx1ZSl9fX0pLGUuYWRkTWVu
dUl0ZW0oImZvcm1hdHMiLHt0ZXh0OiJGb3JtYXRzIixtZW51OmZ9KX12YXIgcz1yLmVhY2g7aS5v
bigiQWRkRWRpdG9yIixmdW5jdGlvbih0KXt0LmVkaXRvci5ydGwmJihlLnJ0bD0hMCksYSh0LmVk
aXRvcil9KSxlLnRyYW5zbGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaS50cmFuc2xhdGUoZSl9LHQu
dG9vbHRpcHM9IW8uaU9TfSkscihGdCxbQ3RdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7
cmVjYWxjOmZ1bmN0aW9uKGUpe3ZhciB0PWUuc2V0dGluZ3MsbixyLGksbyxhLHMsbCxjLHUsZCxm
LHAsaCxtLGcsdix5LGIsQyx4LHcsXyxOPVtdLEU9W10sUyxrLFQsUjtmb3IodD1lLnNldHRpbmdz
LGk9ZS5pdGVtcygpLmZpbHRlcigiOnZpc2libGUiKSxvPWUubGF5b3V0UmVjdCgpLHI9dC5jb2x1
bW5zfHxNYXRoLmNlaWwoTWF0aC5zcXJ0KGkubGVuZ3RoKSksbj1NYXRoLmNlaWwoaS5sZW5ndGgv
cikseT10LnNwYWNpbmdIfHx0LnNwYWNpbmd8fDAsYj10LnNwYWNpbmdWfHx0LnNwYWNpbmd8fDAs
Qz10LmFsaWduSHx8dC5hbGlnbix4PXQuYWxpZ25WfHx0LmFsaWduLGc9ZS5fcGFkZGluZ0JveCxD
JiYic3RyaW5nIj09dHlwZW9mIEMmJihDPVtDXSkseCYmInN0cmluZyI9PXR5cGVvZiB4JiYoeD1b
eF0pLGQ9MDtyPmQ7ZCsrKU4ucHVzaCgwKTtmb3IoZj0wO24+ZjtmKyspRS5wdXNoKDApO2Zvcihm
PTA7bj5mO2YrKylmb3IoZD0wO3I+ZCYmKHU9aVtmKnIrZF0sdSk7ZCsrKWM9dS5sYXlvdXRSZWN0
KCksUz1jLm1pblcsaz1jLm1pbkgsTltkXT1TPk5bZF0/UzpOW2RdLEVbZl09az5FW2ZdP2s6RVtm
XTtmb3IoVD1vLmlubmVyVy1nLmxlZnQtZy5yaWdodCx3PTAsZD0wO3I+ZDtkKyspdys9TltkXSso
ZD4wP3k6MCksVC09KGQ+MD95OjApK05bZF07Zm9yKFI9by5pbm5lckgtZy50b3AtZy5ib3R0b20s
Xz0wLGY9MDtuPmY7ZisrKV8rPUVbZl0rKGY+MD9iOjApLFItPShmPjA/YjowKStFW2ZdO2lmKHcr
PWcubGVmdCtnLnJpZ2h0LF8rPWcudG9wK2cuYm90dG9tLGw9e30sbC5taW5XPXcrKG8udy1vLmlu
bmVyVyksbC5taW5IPV8rKG8uaC1vLmlubmVySCksbC5jb250ZW50Vz1sLm1pblctby5kZWx0YVcs
bC5jb250ZW50SD1sLm1pbkgtby5kZWx0YUgsbC5taW5XPU1hdGgubWluKGwubWluVyxvLm1heFcp
LGwubWluSD1NYXRoLm1pbihsLm1pbkgsby5tYXhIKSxsLm1pblc9TWF0aC5tYXgobC5taW5XLG8u
c3RhcnRNaW5XaWR0aCksbC5taW5IPU1hdGgubWF4KGwubWluSCxvLnN0YXJ0TWluSGVpZ2h0KSwh
by5hdXRvUmVzaXplfHxsLm1pblc9PW8ubWluVyYmbC5taW5IPT1vLm1pbkgpe28uYXV0b1Jlc2l6
ZSYmKGw9ZS5sYXlvdXRSZWN0KGwpLGwuY29udGVudFc9bC5taW5XLW8uZGVsdGFXLGwuY29udGVu
dEg9bC5taW5ILW8uZGVsdGFIKTt2YXIgQTtBPSJzdGFydCI9PXQucGFja1Y/MDpSPjA/TWF0aC5m
bG9vcihSL24pOjA7dmFyIEI9MCxEPXQuZmxleFdpZHRocztpZihEKWZvcihkPTA7ZDxELmxlbmd0
aDtkKyspQis9RFtkXTtlbHNlIEI9cjt2YXIgTD1UL0I7Zm9yKGQ9MDtyPmQ7ZCsrKU5bZF0rPUQ/
RFtkXSpMOkw7Zm9yKGg9Zy50b3AsZj0wO24+ZjtmKyspe2ZvcihwPWcubGVmdCxzPUVbZl0rQSxk
PTA7cj5kJiYodT1pW2YqcitkXSx1KTtkKyspbT11LnNldHRpbmdzLGM9dS5sYXlvdXRSZWN0KCks
YT1NYXRoLm1heChOW2RdLGMuc3RhcnRNaW5XaWR0aCksYy54PXAsYy55PWgsdj1tLmFsaWduSHx8
KEM/Q1tkXXx8Q1swXTpudWxsKSwiY2VudGVyIj09dj9jLng9cCthLzItYy53LzI6InJpZ2h0Ij09
dj9jLng9cCthLWMudzoic3RyZXRjaCI9PXYmJihjLnc9YSksdj1tLmFsaWduVnx8KHg/eFtkXXx8
eFswXTpudWxsKSwiY2VudGVyIj09dj9jLnk9aCtzLzItYy5oLzI6ImJvdHRvbSI9PXY/Yy55PWgr
cy1jLmg6InN0cmV0Y2giPT12JiYoYy5oPXMpLHUubGF5b3V0UmVjdChjKSxwKz1hK3ksdS5yZWNh
bGMmJnUucmVjYWxjKCk7aCs9cytifX1lbHNlIGlmKGwudz1sLm1pblcsbC5oPWwubWluSCxlLmxh
eW91dFJlY3QobCksdGhpcy5yZWNhbGMoZSksbnVsbD09PWUuX2xhc3RSZWN0KXt2YXIgTT1lLnBh
cmVudCgpO00mJihNLl9sYXN0UmVjdD1udWxsLE0ucmVjYWxjKCkpfX19KX0pLHIoenQsW3d0XSxm
dW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe3JlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10
aGlzO3JldHVybiBlLmFkZENsYXNzKCJpZnJhbWUiKSxlLmNhbkZvY3VzPSExLCc8aWZyYW1lIGlk
PSInK2UuX2lkKyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciIHRhYmluZGV4PSItMSIgc3JjPSIn
KyhlLnNldHRpbmdzLnVybHx8ImphdmFzY3JpcHQ6JyciKSsnIiBmcmFtZWJvcmRlcj0iMCI+PC9p
ZnJhbWU+J30sc3JjOmZ1bmN0aW9uKGUpe3RoaXMuZ2V0RWwoKS5zcmM9ZX0saHRtbDpmdW5jdGlv
bihlLHQpe3ZhciBuPXRoaXMscj10aGlzLmdldEVsKCkuY29udGVudFdpbmRvdy5kb2N1bWVudC5i
b2R5O3JldHVybiByPyhyLmlubmVySFRNTD1lLHQmJnQoKSk6c2V0VGltZW91dChmdW5jdGlvbigp
e24uaHRtbChlKX0sMCksdGhpc319KX0pLHIoV3QsW3d0LHFdLGZ1bmN0aW9uKGUsdCl7cmV0dXJu
IGUuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dC5fc3VwZXIoZSksdC5hZGRD
bGFzcygid2lkZ2V0IiksdC5hZGRDbGFzcygibGFiZWwiKSx0LmNhbkZvY3VzPSExLGUubXVsdGls
aW5lJiZ0LmFkZENsYXNzKCJhdXRvc2Nyb2xsIiksZS5zdHJvbmcmJnQuYWRkQ2xhc3MoInN0cm9u
ZyIpfSxpbml0TGF5b3V0UmVjdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1lLl9zdXBlcigpO2lm
KGUuc2V0dGluZ3MubXVsdGlsaW5lKXt2YXIgcj10LmdldFNpemUoZS5nZXRFbCgpKTtyLndpZHRo
Pm4ubWF4VyYmKG4ubWluVz1uLm1heFcsZS5hZGRDbGFzcygibXVsdGlsaW5lIikpLGUuZ2V0RWwo
KS5zdHlsZS53aWR0aD1uLm1pblcrInB4IixuLnN0YXJ0TWluSD1uLmg9bi5taW5IPU1hdGgubWlu
KG4ubWF4SCx0LmdldFNpemUoZS5nZXRFbCgpKS5oZWlnaHQpfXJldHVybiBufSxyZXBhaW50OmZ1
bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gZS5zZXR0aW5ncy5tdWx0aWxpbmV8fChlLmdldEVs
KCkuc3R5bGUubGluZUhlaWdodD1lLmxheW91dFJlY3QoKS5oKyJweCIpLGUuX3N1cGVyKCl9LHRl
eHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gdC5fcmVuZGVyZWQmJmUmJnRoaXMuaW5u
ZXJIdG1sKHQuZW5jb2RlKGUpKSx0Ll9zdXBlcihlKX0scmVuZGVySHRtbDpmdW5jdGlvbigpe3Zh
ciBlPXRoaXMsdD1lLnNldHRpbmdzLmZvcklkO3JldHVybic8bGFiZWwgaWQ9IicrZS5faWQrJyIg
Y2xhc3M9IicrZS5jbGFzc2VzKCkrJyInKyh0PycgZm9yPSInK3QrJyInOiIiKSsiPiIrZS5lbmNv
ZGUoZS5fdGV4dCkrIjwvbGFiZWw+In19KX0pLHIoVnQsW0ddLGZ1bmN0aW9uKGUpe3JldHVybiBl
LmV4dGVuZCh7RGVmYXVsdHM6e3JvbGU6InRvb2xiYXIiLGxheW91dDoiZmxvdyJ9LGluaXQ6ZnVu
Y3Rpb24oZSl7dmFyIHQ9dGhpczt0Ll9zdXBlcihlKSx0LmFkZENsYXNzKCJ0b29sYmFyIil9LHBv
c3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBlLml0ZW1zKCkuYWRkQ2xhc3Mo
InRvb2xiYXItaXRlbSIpLGUuX3N1cGVyKCl9fSl9KSxyKFV0LFtWdF0sZnVuY3Rpb24oZSl7cmV0
dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7cm9sZToibWVudWJhciIsY29udGFpbmVyQ2xzOiJtZW51
YmFyIixhcmlhUm9vdDohMCxkZWZhdWx0czp7dHlwZToibWVudWJ1dHRvbiJ9fX0pfSkscihxdCxb
X3QsaixVdF0sZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIHIoZSx0KXtmb3IoO2U7KXtpZih0PT09
ZSlyZXR1cm4hMDtlPWUucGFyZW50Tm9kZX1yZXR1cm4hMX12YXIgaT1lLmV4dGVuZCh7aW5pdDpm
dW5jdGlvbihlKXt2YXIgdD10aGlzO3QuX3JlbmRlck9wZW49ITAsdC5fc3VwZXIoZSksdC5hZGRD
bGFzcygibWVudWJ0biIpLGUuZml4ZWRXaWR0aCYmdC5hZGRDbGFzcygiZml4ZWQtd2lkdGgiKSx0
LmFyaWEoImhhc3BvcHVwIiwhMCksdC5oYXNQb3B1cD0hMH0sc2hvd01lbnU6ZnVuY3Rpb24oKXt2
YXIgZT10aGlzLG49ZS5zZXR0aW5ncyxyO3JldHVybiBlLm1lbnUmJmUubWVudS52aXNpYmxlKCk/
ZS5oaWRlTWVudSgpOihlLm1lbnV8fChyPW4ubWVudXx8W10sci5sZW5ndGg/cj17dHlwZToibWVu
dSIsaXRlbXM6cn06ci50eXBlPXIudHlwZXx8Im1lbnUiLGUubWVudT10LmNyZWF0ZShyKS5wYXJl
bnQoZSkucmVuZGVyVG8oKSxlLmZpcmUoImNyZWF0ZW1lbnUiKSxlLm1lbnUucmVmbG93KCksZS5t
ZW51Lm9uKCJjYW5jZWwiLGZ1bmN0aW9uKHQpe3QuY29udHJvbC5wYXJlbnQoKT09PWUubWVudSYm
KHQuc3RvcFByb3BhZ2F0aW9uKCksZS5mb2N1cygpLGUuaGlkZU1lbnUoKSl9KSxlLm1lbnUub24o
InNlbGVjdCIsZnVuY3Rpb24oKXtlLmZvY3VzKCl9KSxlLm1lbnUub24oInNob3cgaGlkZSIsZnVu
Y3Rpb24odCl7dC5jb250cm9sPT1lLm1lbnUmJmUuYWN0aXZlTWVudSgic2hvdyI9PXQudHlwZSks
ZS5hcmlhKCJleHBhbmRlZCIsInNob3ciPT10LnR5cGUpfSkuZmlyZSgic2hvdyIpKSxlLm1lbnUu
c2hvdygpLGUubWVudS5sYXlvdXRSZWN0KHt3OmUubGF5b3V0UmVjdCgpLnd9KSx2b2lkIGUubWVu
dS5tb3ZlUmVsKGUuZ2V0RWwoKSxlLmlzUnRsKCk/WyJici10ciIsInRyLWJyIl06WyJibC10bCIs
InRsLWJsIl0pKX0saGlkZU1lbnU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UubWVudSYmKGUubWVu
dS5pdGVtcygpLmVhY2goZnVuY3Rpb24oZSl7ZS5oaWRlTWVudSYmZS5oaWRlTWVudSgpfSksZS5t
ZW51LmhpZGUoKSl9LGFjdGl2ZU1lbnU6ZnVuY3Rpb24oZSl7dGhpcy50b2dnbGVDbGFzcygiYWN0
aXZlIixlKX0scmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9pZCxyPWUuY2xh
c3NQcmVmaXgsaT1lLnNldHRpbmdzLmljb24/cisiaWNvICIrcisiaS0iK2Uuc2V0dGluZ3MuaWNv
bjoiIjtyZXR1cm4gZS5hcmlhKCJyb2xlIixlLnBhcmVudCgpaW5zdGFuY2VvZiBuPyJtZW51aXRl
bSI6ImJ1dHRvbiIpLCc8ZGl2IGlkPSInK3QrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgdGFi
aW5kZXg9Ii0xIiBhcmlhLWxhYmVsbGVkYnk9IicrdCsnIj48YnV0dG9uIGlkPSInK3QrJy1vcGVu
IiByb2xlPSJwcmVzZW50YXRpb24iIHR5cGU9ImJ1dHRvbiIgdGFiaW5kZXg9Ii0xIj4nKyhpPyc8
aSBjbGFzcz0iJytpKyciPjwvaT4nOiIiKSsiPHNwYW4+IisoZS5fdGV4dD8oaT8iXHhhMCI6IiIp
K2UuZW5jb2RlKGUuX3RleHQpOiIiKSsnPC9zcGFuPiA8aSBjbGFzcz0iJytyKydjYXJldCI+PC9p
PjwvYnV0dG9uPjwvZGl2Pid9LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVy
biBlLm9uKCJjbGljayIsZnVuY3Rpb24odCl7dC5jb250cm9sPT09ZSYmcih0LnRhcmdldCxlLmdl
dEVsKCkpJiYoZS5zaG93TWVudSgpLHQuYXJpYSYmZS5tZW51Lml0ZW1zKClbMF0uZm9jdXMoKSl9
KSxlLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbih0KXt2YXIgbj10LmNvbnRyb2wscj1lLnBhcmVu
dCgpLG87biYmciYmbiBpbnN0YW5jZW9mIGkmJm4ucGFyZW50KCk9PXImJihyLml0ZW1zKCkuZmls
dGVyKCJNZW51QnV0dG9uIikuZWFjaChmdW5jdGlvbihlKXtlLmhpZGVNZW51JiZlIT1uJiYoZS5t
ZW51JiZlLm1lbnUudmlzaWJsZSgpJiYobz0hMCksZS5oaWRlTWVudSgpKX0pLG8mJihuLmZvY3Vz
KCksbi5zaG93TWVudSgpKSl9KSxlLl9zdXBlcigpfSx0ZXh0OmZ1bmN0aW9uKGUpe3ZhciB0PXRo
aXMsbixyO2lmKHQuX3JlbmRlcmVkKWZvcihyPXQuZ2V0RWwoIm9wZW4iKS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgic3BhbiIpLG49MDtuPHIubGVuZ3RoO24rKylyW25dLmlubmVySFRNTD0odC5zZXR0
aW5ncy5pY29uJiZlPyJceGEwIjoiIikrdC5lbmNvZGUoZSk7cmV0dXJuIHRoaXMuX3N1cGVyKGUp
fSxyZW1vdmU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlcigpLHRoaXMubWVudSYmdGhpcy5tZW51LnJl
bW92ZSgpfX0pO3JldHVybiBpfSkscigkdCxbcXRdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVu
ZCh7aW5pdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG4scixpLG8sYTtpZih0Ll92YWx1ZXM9bj1l
LnZhbHVlcyxuKXtmb3Iocj0wO3I8bi5sZW5ndGg7cisrKWlmKGk9bltyXS5zZWxlY3RlZHx8ZS52
YWx1ZT09PW5bcl0udmFsdWUpe289b3x8bltyXS50ZXh0LHQuX3ZhbHVlPW5bcl0udmFsdWU7YnJl
YWt9IWkmJm4ubGVuZ3RoPjAmJihvPW5bMF0udGV4dCx0Ll92YWx1ZT1uWzBdLnZhbHVlKSxlLm1l
bnU9bn1lLnRleHQ9ZS50ZXh0fHxvfHxuWzBdLnRleHQsdC5fc3VwZXIoZSksdC5hZGRDbGFzcygi
bGlzdGJveCIpLHQub24oInNlbGVjdCIsZnVuY3Rpb24obil7dmFyIHI9bi5jb250cm9sO2EmJihu
Lmxhc3RDb250cm9sPWEpLGUubXVsdGlwbGU/ci5hY3RpdmUoIXIuYWN0aXZlKCkpOnQudmFsdWUo
bi5jb250cm9sLnNldHRpbmdzLnZhbHVlKSxhPXJ9KX0sdmFsdWU6ZnVuY3Rpb24oZSl7ZnVuY3Rp
b24gdChlLG4pe2UuaXRlbXMoKS5lYWNoKGZ1bmN0aW9uKGUpe3I9ZS52YWx1ZSgpPT09bixyJiYo
aT1pfHxlLnRleHQoKSksZS5hY3RpdmUociksZS5tZW51JiZ0KGUubWVudSxuKX0pfXZhciBuPXRo
aXMscixpLG8sYTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGUpe2lmKG4ubWVudSl0KG4ubWVudSxl
KTtlbHNlIGZvcihvPW4uc2V0dGluZ3MubWVudSxhPTA7YTxvLmxlbmd0aDthKyspcj1vW2FdLnZh
bHVlPT1lLHImJihpPWl8fG9bYV0udGV4dCksb1thXS5hY3RpdmU9cjtuLnRleHQoaXx8dGhpcy5z
ZXR0aW5ncy50ZXh0KX1yZXR1cm4gbi5fc3VwZXIoZSl9fSl9KSxyKGp0LFt3dCxqLGddLGZ1bmN0
aW9uKGUsdCxuKXtyZXR1cm4gZS5leHRlbmQoe0RlZmF1bHRzOntib3JkZXI6MCxyb2xlOiJtZW51
aXRlbSJ9LGluaXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0Lmhhc1BvcHVwPSEwLHQuX3N1cGVy
KGUpLGU9dC5zZXR0aW5ncyx0LmFkZENsYXNzKCJtZW51LWl0ZW0iKSxlLm1lbnUmJnQuYWRkQ2xh
c3MoIm1lbnUtaXRlbS1leHBhbmQiKSxlLnByZXZpZXcmJnQuYWRkQ2xhc3MoIm1lbnUtaXRlbS1w
cmV2aWV3IiksKCItIj09PXQuX3RleHR8fCJ8Ij09PXQuX3RleHQpJiYodC5hZGRDbGFzcygibWVu
dS1pdGVtLXNlcCIpLHQuYXJpYSgicm9sZSIsInNlcGFyYXRvciIpLHQuX3RleHQ9Ii0iKSxlLnNl
bGVjdGFibGUmJih0LmFyaWEoInJvbGUiLCJtZW51aXRlbWNoZWNrYm94IiksdC5hZGRDbGFzcygi
bWVudS1pdGVtLWNoZWNrYm94IiksZS5pY29uPSJzZWxlY3RlZCIpLGUucHJldmlld3x8ZS5zZWxl
Y3RhYmxlfHx0LmFkZENsYXNzKCJtZW51LWl0ZW0tbm9ybWFsIiksdC5vbigibW91c2Vkb3duIixm
dW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9KSxlLm1lbnUmJiFlLmFyaWFIaWRlTWVudSYm
dC5hcmlhKCJoYXNwb3B1cCIsITApfSxoYXNNZW51czpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5z
ZXR0aW5ncy5tZW51fSxzaG93TWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1lLnNldHRpbmdz
LHIsaT1lLnBhcmVudCgpO2lmKGkuaXRlbXMoKS5lYWNoKGZ1bmN0aW9uKHQpe3QhPT1lJiZ0Lmhp
ZGVNZW51KCl9KSxuLm1lbnUpe3I9ZS5tZW51LHI/ci5zaG93KCk6KHI9bi5tZW51LHIubGVuZ3Ro
P3I9e3R5cGU6Im1lbnUiLGl0ZW1zOnJ9OnIudHlwZT1yLnR5cGV8fCJtZW51IixpLnNldHRpbmdz
Lml0ZW1EZWZhdWx0cyYmKHIuaXRlbURlZmF1bHRzPWkuc2V0dGluZ3MuaXRlbURlZmF1bHRzKSxy
PWUubWVudT10LmNyZWF0ZShyKS5wYXJlbnQoZSkucmVuZGVyVG8oKSxyLnJlZmxvdygpLHIuZmly
ZSgic2hvdyIpLHIub24oImNhbmNlbCIsZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKSxl
LmZvY3VzKCksci5oaWRlKCl9KSxyLm9uKCJoaWRlIixmdW5jdGlvbih0KXt0LmNvbnRyb2w9PT1y
JiZlLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpfSksci5zdWJtZW51PSEwKSxyLl9wYXJlbnRNZW51
PWksci5hZGRDbGFzcygibWVudS1zdWIiKTt2YXIgbz1yLnRlc3RNb3ZlUmVsKGUuZ2V0RWwoKSxl
LmlzUnRsKCk/WyJ0bC10ciIsImJsLWJyIiwidHItdGwiLCJici1ibCJdOlsidHItdGwiLCJici1i
bCIsInRsLXRyIiwiYmwtYnIiXSk7ci5tb3ZlUmVsKGUuZ2V0RWwoKSxvKSxyLnJlbD1vLG89Im1l
bnUtc3ViLSIrbyxyLnJlbW92ZUNsYXNzKHIuX2xhc3RSZWwpLHIuYWRkQ2xhc3Mobyksci5fbGFz
dFJlbD1vLGUuYWRkQ2xhc3MoInNlbGVjdGVkIiksZS5hcmlhKCJleHBhbmRlZCIsITApfX0saGlk
ZU1lbnU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBlLm1lbnUmJihlLm1lbnUuaXRlbXMo
KS5lYWNoKGZ1bmN0aW9uKGUpe2UuaGlkZU1lbnUmJmUuaGlkZU1lbnUoKX0pLGUubWVudS5oaWRl
KCksZS5hcmlhKCJleHBhbmRlZCIsITEpKSxlfSxyZW5kZXJIdG1sOmZ1bmN0aW9uKCl7dmFyIGU9
dGhpcyx0PWUuX2lkLHI9ZS5zZXR0aW5ncyxpPWUuY2xhc3NQcmVmaXgsbz1lLmVuY29kZShlLl90
ZXh0KSxhPWUuc2V0dGluZ3MuaWNvbixzPSIiLGw9ci5zaG9ydGN1dDtyZXR1cm4gYSYmZS5wYXJl
bnQoKS5hZGRDbGFzcygibWVudS1oYXMtaWNvbnMiKSxyLmltYWdlJiYoYT0ibm9uZSIscz0iIHN0
eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK3IuaW1hZ2UrIicpXCIiKSxsJiZuLm1hYyYm
KGw9bC5yZXBsYWNlKC9jdHJsXCthbHRcKy9pLCImI3gyMzI1OyYjeDIzMTg7IiksbD1sLnJlcGxh
Y2UoL2N0cmxcKy9pLCImI3gyMzE4OyIpLGw9bC5yZXBsYWNlKC9hbHRcKy9pLCImI3gyMzI1OyIp
LGw9bC5yZXBsYWNlKC9zaGlmdFwrL2ksIiYjeDIxRTc7IikpLGE9aSsiaWNvICIraSsiaS0iKyhl
LnNldHRpbmdzLmljb258fCJub25lIiksJzxkaXYgaWQ9IicrdCsnIiBjbGFzcz0iJytlLmNsYXNz
ZXMoKSsnIiB0YWJpbmRleD0iLTEiPicrKCItIiE9PW8/JzxpIGNsYXNzPSInK2ErJyInK3MrIj48
L2k+XHhhMCI6IiIpKygiLSIhPT1vPyc8c3BhbiBpZD0iJyt0KyctdGV4dCIgY2xhc3M9IicraSsn
dGV4dCI+JytvKyI8L3NwYW4+IjoiIikrKGw/JzxkaXYgaWQ9IicrdCsnLXNob3J0Y3V0IiBjbGFz
cz0iJytpKydtZW51LXNob3J0Y3V0Ij4nK2wrIjwvZGl2PiI6IiIpKyhyLm1lbnU/JzxkaXYgY2xh
c3M9IicraSsnY2FyZXQiPjwvZGl2Pic6IiIpKyI8L2Rpdj4ifSxwb3N0UmVuZGVyOmZ1bmN0aW9u
KCl7dmFyIGU9dGhpcyx0PWUuc2V0dGluZ3Msbj10LnRleHRTdHlsZTtpZigiZnVuY3Rpb24iPT10
eXBlb2YgbiYmKG49bi5jYWxsKHRoaXMpKSxuKXt2YXIgcj1lLmdldEVsKCJ0ZXh0Iik7ciYmci5z
ZXRBdHRyaWJ1dGUoInN0eWxlIixuKX1yZXR1cm4gZS5vbigibW91c2VlbnRlciBjbGljayIsZnVu
Y3Rpb24obil7bi5jb250cm9sPT09ZSYmKHQubWVudXx8ImNsaWNrIiE9PW4udHlwZT8oZS5zaG93
TWVudSgpLG4uYXJpYSYmZS5tZW51LmZvY3VzKCEwKSk6KGUuZmlyZSgic2VsZWN0IiksZS5wYXJl
bnQoKS5oaWRlQWxsKCkpKX0pLGUuX3N1cGVyKCksZX0sYWN0aXZlOmZ1bmN0aW9uKGUpe3JldHVy
biJ1bmRlZmluZWQiIT10eXBlb2YgZSYmdGhpcy5hcmlhKCJjaGVja2VkIixlKSx0aGlzLl9zdXBl
cihlKX0scmVtb3ZlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIoKSx0aGlzLm1lbnUmJnRoaXMubWVu
dS5yZW1vdmUoKX19KX0pLHIoS3QsW2V0LGp0LHBdLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmV4
dGVuZCh7RGVmYXVsdHM6e2RlZmF1bHRUeXBlOiJtZW51aXRlbSIsYm9yZGVyOjEsbGF5b3V0OiJz
dGFjayIscm9sZToiYXBwbGljYXRpb24iLGJvZHlSb2xlOiJtZW51IixhcmlhUm9vdDohMH0saW5p
dDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKGUuYXV0b2hpZGU9ITAsZS5jb25zdHJhaW5Ub1Zp
ZXdwb3J0PSEwLGUuaXRlbURlZmF1bHRzKWZvcih2YXIgcj1lLml0ZW1zLGk9ci5sZW5ndGg7aS0t
OylyW2ldPW4uZXh0ZW5kKHt9LGUuaXRlbURlZmF1bHRzLHJbaV0pO3QuX3N1cGVyKGUpLHQuYWRk
Q2xhc3MoIm1lbnUiKX0scmVwYWludDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvZ2dsZUNsYXNz
KCJtZW51LWFsaWduIiwhMCksdGhpcy5fc3VwZXIoKSx0aGlzLmdldEVsKCkuc3R5bGUuaGVpZ2h0
PSIiLHRoaXMuZ2V0RWwoImJvZHkiKS5zdHlsZS5oZWlnaHQ9IiIsdGhpc30sY2FuY2VsOmZ1bmN0
aW9uKCl7dmFyIGU9dGhpcztlLmhpZGVBbGwoKSxlLmZpcmUoInNlbGVjdCIpfSxoaWRlQWxsOmZ1
bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5maW5kKCJtZW51aXRlbSIpLmV4ZWMoImhp
ZGVNZW51IiksZS5fc3VwZXIoKX0scHJlUmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1
cm4gZS5pdGVtcygpLmVhY2goZnVuY3Rpb24odCl7dmFyIG49dC5zZXR0aW5ncztyZXR1cm4gbi5p
Y29ufHxuLnNlbGVjdGFibGU/KGUuX2hhc0ljb25zPSEwLCExKTp2b2lkIDB9KSxlLl9zdXBlcigp
fX0pO3JldHVybiByfSkscihHdCxbRXRdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7RGVm
YXVsdHM6e2NsYXNzZXM6InJhZGlvIixyb2xlOiJyYWRpbyJ9fSl9KSxyKFl0LFt3dCxZXSxmdW5j
dGlvbihlLHQpe3JldHVybiBlLmV4dGVuZCh7cmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRo
aXMsdD1lLmNsYXNzUHJlZml4O3JldHVybiBlLmFkZENsYXNzKCJyZXNpemVoYW5kbGUiKSwiYm90
aCI9PWUuc2V0dGluZ3MuZGlyZWN0aW9uJiZlLmFkZENsYXNzKCJyZXNpemVoYW5kbGUtYm90aCIp
LGUuY2FuRm9jdXM9ITEsJzxkaXYgaWQ9IicrZS5faWQrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkr
JyI+PGkgY2xhc3M9IicrdCsiaWNvICIrdCsnaS1yZXNpemUiPjwvaT48L2Rpdj4nfSxwb3N0UmVu
ZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9zdXBlcigpLGUucmVzaXplRHJhZ0hlbHBlcj1u
ZXcgdCh0aGlzLl9pZCx7c3RhcnQ6ZnVuY3Rpb24oKXtlLmZpcmUoIlJlc2l6ZVN0YXJ0Iil9LGRy
YWc6ZnVuY3Rpb24odCl7ImJvdGgiIT1lLnNldHRpbmdzLmRpcmVjdGlvbiYmKHQuZGVsdGFYPTAp
LGUuZmlyZSgiUmVzaXplIix0KX0sc3RvcDpmdW5jdGlvbigpe2UuZmlyZSgiUmVzaXplRW5kIil9
fSl9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc2l6ZURyYWdIZWxwZXImJnRoaXMu
cmVzaXplRHJhZ0hlbHBlci5kZXN0cm95KCksdGhpcy5fc3VwZXIoKX19KX0pLHIoWHQsW3d0XSxm
dW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe3JlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10
aGlzO3JldHVybiBlLmFkZENsYXNzKCJzcGFjZXIiKSxlLmNhbkZvY3VzPSExLCc8ZGl2IGlkPSIn
K2UuX2lkKyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciPjwvZGl2Pid9fSl9KSxyKEp0LFtxdCxx
XSxmdW5jdGlvbihlLHQpe3JldHVybiBlLmV4dGVuZCh7RGVmYXVsdHM6e2NsYXNzZXM6IndpZGdl
dCBidG4gc3BsaXRidG4iLHJvbGU6ImJ1dHRvbiJ9LHJlcGFpbnQ6ZnVuY3Rpb24oKXt2YXIgZT10
aGlzLG49ZS5nZXRFbCgpLHI9ZS5sYXlvdXRSZWN0KCksaSxvO3JldHVybiBlLl9zdXBlcigpLGk9
bi5maXJzdENoaWxkLG89bi5sYXN0Q2hpbGQsdC5jc3MoaSx7d2lkdGg6ci53LXQuZ2V0U2l6ZShv
KS53aWR0aCxoZWlnaHQ6ci5oLTJ9KSx0LmNzcyhvLHtoZWlnaHQ6ci5oLTJ9KSxlfSxhY3RpdmVN
ZW51OmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dC50b2dnbGVDbGFzcyhuLmdldEVsKCkubGFzdENo
aWxkLG4uY2xhc3NQcmVmaXgrImFjdGl2ZSIsZSl9LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIg
ZT10aGlzLHQ9ZS5faWQsbj1lLmNsYXNzUHJlZml4LHI9ZS5zZXR0aW5ncy5pY29uP24rImljbyAi
K24rImktIitlLnNldHRpbmdzLmljb246IiI7cmV0dXJuJzxkaXYgaWQ9IicrdCsnIiBjbGFzcz0i
JytlLmNsYXNzZXMoKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSItMSI+PGJ1dHRvbiB0eXBl
PSJidXR0b24iIGhpZGVmb2N1cz0iMSIgdGFiaW5kZXg9Ii0xIj4nKyhyPyc8aSBjbGFzcz0iJyty
KyciPjwvaT4nOiIiKSsoZS5fdGV4dD8ocj8iICI6IiIpK2UuX3RleHQ6IiIpKyc8L2J1dHRvbj48
YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Iicrbisnb3BlbiIgaGlkZWZvY3VzPSIxIiB0YWJp
bmRleD0iLTEiPicrKGUuX21lbnVCdG5UZXh0PyhyPyJceGEwIjoiIikrZS5fbWVudUJ0blRleHQ6
IiIpKycgPGkgY2xhc3M9IicrbisnY2FyZXQiPjwvaT48L2J1dHRvbj48L2Rpdj4nfSxwb3N0UmVu
ZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuc2V0dGluZ3Mub25jbGljaztyZXR1cm4gZS5v
bigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciBuPWUudGFyZ2V0O2lmKGUuY29udHJvbD09dGhpcylm
b3IoO247KXtpZihlLmFyaWEmJiJkb3duIiE9ZS5hcmlhLmtleXx8IkJVVFRPTiI9PW4ubm9kZU5h
bWUmJi0xPT1uLmNsYXNzTmFtZS5pbmRleE9mKCJvcGVuIikpcmV0dXJuIGUuc3RvcEltbWVkaWF0
ZVByb3BhZ2F0aW9uKCksdm9pZCB0LmNhbGwodGhpcyxlKTtuPW4ucGFyZW50Tm9kZX19KSxkZWxl
dGUgZS5zZXR0aW5ncy5vbmNsaWNrLGUuX3N1cGVyKCl9fSl9KSxyKFF0LFtPdF0sZnVuY3Rpb24o
ZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7Y29udGFpbmVyQ2xhc3M6InN0YWNrLWxheW91
dCIsY29udHJvbENsYXNzOiJzdGFjay1sYXlvdXQtaXRlbSIsZW5kQ2xhc3M6ImJyZWFrIn19KX0p
LHIoWnQsW0oscV0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5leHRlbmQoe2xhc3RJZHg6MCxEZWZh
dWx0czp7bGF5b3V0OiJhYnNvbHV0ZSIsZGVmYXVsdHM6e3R5cGU6InBhbmVsIn19LGFjdGl2YXRl
VGFiOmZ1bmN0aW9uKGUpe3ZhciBuO3RoaXMuYWN0aXZlVGFiSWQmJihuPXRoaXMuZ2V0RWwodGhp
cy5hY3RpdmVUYWJJZCksdC5yZW1vdmVDbGFzcyhuLHRoaXMuY2xhc3NQcmVmaXgrImFjdGl2ZSIp
LG4uc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKSksdGhpcy5hY3RpdmVUYWJJ
ZD0idCIrZSxuPXRoaXMuZ2V0RWwoInQiK2UpLG4uc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVk
IiwidHJ1ZSIpLHQuYWRkQ2xhc3Mobix0aGlzLmNsYXNzUHJlZml4KyJhY3RpdmUiKSxlIT10aGlz
Lmxhc3RJZHgmJih0aGlzLml0ZW1zKClbdGhpcy5sYXN0SWR4XS5oaWRlKCksdGhpcy5sYXN0SWR4
PWUpLHRoaXMuaXRlbXMoKVtlXS5zaG93KCkuZmlyZSgic2hvd3RhYiIpLHRoaXMucmVmbG93KCl9
LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5fbGF5b3V0LG49IiIscj1lLmNs
YXNzUHJlZml4O3JldHVybiBlLnByZVJlbmRlcigpLHQucHJlUmVuZGVyKGUpLGUuaXRlbXMoKS5l
YWNoKGZ1bmN0aW9uKHQsaSl7dmFyIG89ZS5faWQrIi10IitpO3QuYXJpYSgicm9sZSIsInRhYnBh
bmVsIiksdC5hcmlhKCJsYWJlbGxlZGJ5IixvKSxuKz0nPGRpdiBpZD0iJytvKyciIGNsYXNzPSIn
K3IrJ3RhYiIgdW5zZWxlY3RhYmxlPSJvbiIgcm9sZT0idGFiIiBhcmlhLWNvbnRyb2xzPSInK3Qu
X2lkKyciIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiB0YWJJbmRleD0iLTEiPicrZS5lbmNvZGUodC5z
ZXR0aW5ncy50aXRsZSkrIjwvZGl2PiJ9KSwnPGRpdiBpZD0iJytlLl9pZCsnIiBjbGFzcz0iJytl
LmNsYXNzZXMoKSsnIiBoaWRlZm9jdXM9IjEiIHRhYmluZGV4PSItMSI+PGRpdiBpZD0iJytlLl9p
ZCsnLWhlYWQiIGNsYXNzPSInK3IrJ3RhYnMiIHJvbGU9InRhYmxpc3QiPicrbisnPC9kaXY+PGRp
diBpZD0iJytlLl9pZCsnLWJvZHkiIGNsYXNzPSInK2UuY2xhc3NlcygiYm9keSIpKyciPicrdC5y
ZW5kZXJIdG1sKGUpKyI8L2Rpdj48L2Rpdj4ifSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9
dGhpcztlLl9zdXBlcigpLGUuc2V0dGluZ3MuYWN0aXZlVGFiPWUuc2V0dGluZ3MuYWN0aXZlVGFi
fHwwLGUuYWN0aXZhdGVUYWIoZS5zZXR0aW5ncy5hY3RpdmVUYWIpLHRoaXMub24oImNsaWNrIixm
dW5jdGlvbih0KXt2YXIgbj10LnRhcmdldC5wYXJlbnROb2RlO2lmKHQudGFyZ2V0LnBhcmVudE5v
ZGUuaWQ9PWUuX2lkKyItaGVhZCIpZm9yKHZhciByPW4uY2hpbGROb2Rlcy5sZW5ndGg7ci0tOylu
LmNoaWxkTm9kZXNbcl09PXQudGFyZ2V0JiZlLmFjdGl2YXRlVGFiKHIpfSl9LGluaXRMYXlvdXRS
ZWN0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuLHIsaTtyPXQuZ2V0U2l6ZShlLmdldEVsKCJoZWFk
IikpLndpZHRoLHI9MD5yPzA6cixpPTAsZS5pdGVtcygpLmVhY2goZnVuY3Rpb24odCxuKXtyPU1h
dGgubWF4KHIsdC5sYXlvdXRSZWN0KCkubWluVyksaT1NYXRoLm1heChpLHQubGF5b3V0UmVjdCgp
Lm1pbkgpLGUuc2V0dGluZ3MuYWN0aXZlVGFiIT1uJiZ0LmhpZGUoKX0pLGUuaXRlbXMoKS5lYWNo
KGZ1bmN0aW9uKGUpe2Uuc2V0dGluZ3MueD0wLGUuc2V0dGluZ3MueT0wLGUuc2V0dGluZ3Mudz1y
LGUuc2V0dGluZ3MuaD1pLGUubGF5b3V0UmVjdCh7eDowLHk6MCx3OnIsaDppfSl9KTt2YXIgbz10
LmdldFNpemUoZS5nZXRFbCgiaGVhZCIpKS5oZWlnaHQ7cmV0dXJuIGUuc2V0dGluZ3MubWluV2lk
dGg9cixlLnNldHRpbmdzLm1pbkhlaWdodD1pK28sbj1lLl9zdXBlcigpLG4uZGVsdGFIKz1vLG4u
aW5uZXJIPW4uaC1uLmRlbHRhSCxufX0pfSkscihlbixbd3QscV0sZnVuY3Rpb24oZSx0KXtyZXR1
cm4gZS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0Ll9zdXBlcihlKSx0Ll92
YWx1ZT1lLnZhbHVlfHwiIix0LmFkZENsYXNzKCJ0ZXh0Ym94IiksZS5tdWx0aWxpbmU/dC5hZGRD
bGFzcygibXVsdGlsaW5lIik6dC5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7MTM9PWUua2V5Q29k
ZSYmdC5wYXJlbnRzKCkucmV2ZXJzZSgpLmVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUucHJldmVu
dERlZmF1bHQoKSx0Lmhhc0V2ZW50TGlzdGVuZXJzKCJzdWJtaXQiKSYmdC50b0pTT04/KHQuZmly
ZSgic3VibWl0Iix7ZGF0YTp0LnRvSlNPTigpfSksITEpOnZvaWQgMH0pfSl9LGRpc2FibGVkOmZ1
bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHQuX3JlbmRlcmVkJiYidW5kZWZpbmVkIiE9dHlw
ZW9mIGUmJih0LmdldEVsKCkuZGlzYWJsZWQ9ZSksdC5fc3VwZXIoZSl9LHZhbHVlOmZ1bmN0aW9u
KGUpe3ZhciB0PXRoaXM7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBlPyh0Ll92YWx1ZT1lLHQu
X3JlbmRlcmVkJiYodC5nZXRFbCgpLnZhbHVlPWUpLHQpOnQuX3JlbmRlcmVkP3QuZ2V0RWwoKS52
YWx1ZTp0Ll92YWx1ZX0scmVwYWludDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdCxuLHIsaT0wLG89
MCxhO3Q9ZS5nZXRFbCgpLnN0eWxlLG49ZS5fbGF5b3V0UmVjdCxhPWUuX2xhc3RSZXBhaW50UmVj
dHx8e307dmFyIHM9ZG9jdW1lbnQ7cmV0dXJuIWUuc2V0dGluZ3MubXVsdGlsaW5lJiZzLmFsbCYm
KCFzLmRvY3VtZW50TW9kZXx8cy5kb2N1bWVudE1vZGU8PTgpJiYodC5saW5lSGVpZ2h0PW4uaC1v
KyJweCIpLHI9ZS5fYm9yZGVyQm94LGk9ci5sZWZ0K3IucmlnaHQrOCxvPXIudG9wK3IuYm90dG9t
KyhlLnNldHRpbmdzLm11bHRpbGluZT84OjApLG4ueCE9PWEueCYmKHQubGVmdD1uLngrInB4Iixh
Lng9bi54KSxuLnkhPT1hLnkmJih0LnRvcD1uLnkrInB4IixhLnk9bi55KSxuLnchPT1hLncmJih0
LndpZHRoPW4udy1pKyJweCIsYS53PW4udyksbi5oIT09YS5oJiYodC5oZWlnaHQ9bi5oLW8rInB4
IixhLmg9bi5oKSxlLl9sYXN0UmVwYWludFJlY3Q9YSxlLmZpcmUoInJlcGFpbnQiLHt9LCExKSxl
fSxyZW5kZXJIdG1sOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuX2lkLG49ZS5zZXR0aW5ncyxy
PWUuZW5jb2RlKGUuX3ZhbHVlLCExKSxpPSIiO3JldHVybiJzcGVsbGNoZWNrImluIG4mJihpKz0n
IHNwZWxsY2hlY2s9Iicrbi5zcGVsbGNoZWNrKyciJyksbi5tYXhMZW5ndGgmJihpKz0nIG1heGxl
bmd0aD0iJytuLm1heExlbmd0aCsnIicpLG4uc2l6ZSYmKGkrPScgc2l6ZT0iJytuLnNpemUrJyIn
KSxuLnN1YnR5cGUmJihpKz0nIHR5cGU9Iicrbi5zdWJ0eXBlKyciJyksZS5kaXNhYmxlZCgpJiYo
aSs9JyBkaXNhYmxlZD0iZGlzYWJsZWQiJyksbi5tdWx0aWxpbmU/Jzx0ZXh0YXJlYSBpZD0iJyt0
KyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciICcrKG4ucm93cz8nIHJvd3M9Iicrbi5yb3dzKyci
JzoiIikrJyBoaWRlZm9jdXM9IjEiJytpKyI+IityKyI8L3RleHRhcmVhPiI6JzxpbnB1dCBpZD0i
Jyt0KyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciIHZhbHVlPSInK3IrJyIgaGlkZWZvY3VzPSIx
IicraSsiIC8+In0scG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHQub24o
ZS5nZXRFbCgpLCJjaGFuZ2UiLGZ1bmN0aW9uKHQpe2UuZmlyZSgiY2hhbmdlIix0KX0pLGUuX3N1
cGVyKCl9LHJlbW92ZTpmdW5jdGlvbigpe3Qub2ZmKHRoaXMuZ2V0RWwoKSksdGhpcy5fc3VwZXIo
KX19KX0pLHIodG4sW3EsJF0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIg
aT10aGlzLG8sYT10LmNsYXNzUHJlZml4O2kuc2hvdz1mdW5jdGlvbih0KXtyZXR1cm4gaS5oaWRl
KCksbz0hMCx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe28mJm4uYXBwZW5kQ2hpbGQoZS5j
cmVhdGVGcmFnbWVudCgnPGRpdiBjbGFzcz0iJythKyJ0aHJvYmJlciIrKHI/IiAiK2ErInRocm9i
YmVyLWlubGluZSI6IiIpKyciPjwvZGl2PicpKX0sdHx8MCksaX0saS5oaWRlPWZ1bmN0aW9uKCl7
dmFyIGU9bi5sYXN0Q2hpbGQ7cmV0dXJuIGUmJi0xIT1lLmNsYXNzTmFtZS5pbmRleE9mKCJ0aHJv
YmJlciIpJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksbz0hMSxpfX19KSxhKFtsLGMsdSxk
LGYscCxoLG0sZyx2LHksYixDLHgsdyxfLE4sRSxTLGssVCxSLEEsQixELEwsTSxILFAsTyxJLEYs
eixXLFYsVSxxLCQsaixLLEcsWSxYLEosUSxaLGV0LHR0LG50LHJ0LGl0LG90LGF0LHN0LGx0LGN0
LHV0LGR0LGZ0LHB0LGh0LG10LGd0LHZ0LHl0LGJ0LEN0LHh0LHd0LF90LE50LEV0LFN0LGt0LFR0
LFJ0LEF0LEJ0LER0LEx0LE10LEh0LFB0LE90LEl0LEZ0LHp0LFd0LFZ0LFV0LHF0LCR0LGp0LEt0
LEd0LFl0LFh0LEp0LFF0LFp0LGVuLHRuXSl9KHRoaXMpO3RpbnltY2UuUGx1Z2luTWFuYWdlci5h
ZGQoImFkdmxpc3QiLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXt2YXIgbj1bXTtyZXR1cm4g
dGlueW1jZS5lYWNoKGUuc3BsaXQoL1sgLF0vKSxmdW5jdGlvbih0KXtuLnB1c2goe3RleHQ6dC5y
ZXBsYWNlKC9cLS9nLCIgIikucmVwbGFjZSgvXGJcdy9nLGZ1bmN0aW9uKHQpe3JldHVybiB0LnRv
VXBwZXJDYXNlKCl9KSxkYXRhOiJkZWZhdWx0Ij09dD8iIjp0fSl9KSxufWZ1bmN0aW9uIG4oZSxu
KXt2YXIgbyxsPXQuZG9tLGE9dC5zZWxlY3Rpb247bz1sLmdldFBhcmVudChhLmdldE5vZGUoKSwi
b2wsdWwiKSxvJiZvLm5vZGVOYW1lPT1lJiZuIT09ITF8fHQuZXhlY0NvbW1hbmQoIlVMIj09ZT8i
SW5zZXJ0VW5vcmRlcmVkTGlzdCI6Ikluc2VydE9yZGVyZWRMaXN0Iiksbj1uPT09ITE/aVtlXTpu
LGlbZV09bixvPWwuZ2V0UGFyZW50KGEuZ2V0Tm9kZSgpLCJvbCx1bCIpLG8mJihsLnNldFN0eWxl
KG8sImxpc3RTdHlsZVR5cGUiLG4pLG8ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLW1jZS1zdHlsZSIp
KSx0LmZvY3VzKCl9ZnVuY3Rpb24gbyhlKXt2YXIgbj10LmRvbS5nZXRTdHlsZSh0LmRvbS5nZXRQ
YXJlbnQodC5zZWxlY3Rpb24uZ2V0Tm9kZSgpLCJvbCx1bCIpLCJsaXN0U3R5bGVUeXBlIil8fCIi
O2UuY29udHJvbC5pdGVtcygpLmVhY2goZnVuY3Rpb24odCl7dC5hY3RpdmUodC5zZXR0aW5ncy5k
YXRhPT09bil9KX12YXIgbCxhLGk9e307bD1lKCJPTCIsdC5nZXRQYXJhbSgiYWR2bGlzdF9udW1i
ZXJfc3R5bGVzIiwiZGVmYXVsdCxsb3dlci1hbHBoYSxsb3dlci1ncmVlayxsb3dlci1yb21hbix1
cHBlci1hbHBoYSx1cHBlci1yb21hbiIpKSxhPWUoIlVMIix0LmdldFBhcmFtKCJhZHZsaXN0X2J1
bGxldF9zdHlsZXMiLCJkZWZhdWx0LGNpcmNsZSxkaXNjLHNxdWFyZSIpKSx0LmFkZEJ1dHRvbigi
bnVtbGlzdCIse3R5cGU6InNwbGl0YnV0dG9uIix0b29sdGlwOiJOdW1iZXJlZCBsaXN0IixtZW51
Omwsb25zaG93Om8sb25zZWxlY3Q6ZnVuY3Rpb24odCl7bigiT0wiLHQuY29udHJvbC5zZXR0aW5n
cy5kYXRhKX0sb25jbGljazpmdW5jdGlvbigpe24oIk9MIiwhMSl9fSksdC5hZGRCdXR0b24oImJ1
bGxpc3QiLHt0eXBlOiJzcGxpdGJ1dHRvbiIsdG9vbHRpcDoiQnVsbGV0IGxpc3QiLG1lbnU6YSxv
bnNob3c6byxvbnNlbGVjdDpmdW5jdGlvbih0KXtuKCJVTCIsdC5jb250cm9sLnNldHRpbmdzLmRh
dGEpfSxvbmNsaWNrOmZ1bmN0aW9uKCl7bigiVUwiLCExKX19KX0pO3RpbnltY2UuUGx1Z2luTWFu
YWdlci5hZGQoImFuY2hvciIsZnVuY3Rpb24obil7ZnVuY3Rpb24gZSgpe3ZhciBlPW4uc2VsZWN0
aW9uLmdldE5vZGUoKTtuLndpbmRvd01hbmFnZXIub3Blbih7dGl0bGU6IkFuY2hvciIsYm9keTp7
dHlwZToidGV4dGJveCIsbmFtZToibmFtZSIsc2l6ZTo0MCxsYWJlbDoiTmFtZSIsdmFsdWU6ZS5u
YW1lfHxlLmlkfSxvbnN1Ym1pdDpmdW5jdGlvbihlKXtuLmV4ZWNDb21tYW5kKCJtY2VJbnNlcnRD
b250ZW50IiwhMSxuLmRvbS5jcmVhdGVIVE1MKCJhIix7aWQ6ZS5kYXRhLm5hbWV9KSl9fSl9bi5h
ZGRCdXR0b24oImFuY2hvciIse2ljb246ImFuY2hvciIsdG9vbHRpcDoiQW5jaG9yIixvbmNsaWNr
OmUsc3RhdGVTZWxlY3RvcjoiYTpub3QoW2hyZWZdKSJ9KSxuLmFkZE1lbnVJdGVtKCJhbmNob3Ii
LHtpY29uOiJhbmNob3IiLHRleHQ6IkFuY2hvciIsY29udGV4dDoiaW5zZXJ0IixvbmNsaWNrOmV9
KX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoImF1dG9saW5rIixmdW5jdGlvbih0KXtmdW5j
dGlvbiBuKHQpe28odCwtMSwiKCIsITApfWZ1bmN0aW9uIGUodCl7byh0LDAsIiIsITApfWZ1bmN0
aW9uIGkodCl7byh0LC0xLCIiLCExKX1mdW5jdGlvbiBvKHQsbixlKXtmdW5jdGlvbiBpKHQsbil7
aWYoMD5uJiYobj0wKSwzPT10Lm5vZGVUeXBlKXt2YXIgZT10LmRhdGEubGVuZ3RoO24+ZSYmKG49
ZSl9cmV0dXJuIG59ZnVuY3Rpb24gbyh0LG4pe2Yuc2V0U3RhcnQodCxpKHQsbikpfWZ1bmN0aW9u
IHIodCxuKXtmLnNldEVuZCh0LGkodCxuKSl9dmFyIGYsZCxhLHMsYyxsLHUsZyxoO2lmKGY9dC5z
ZWxlY3Rpb24uZ2V0Um5nKCEwKS5jbG9uZVJhbmdlKCksZi5zdGFydE9mZnNldDw1KXtpZihnPWYu
ZW5kQ29udGFpbmVyLnByZXZpb3VzU2libGluZywhZyl7aWYoIWYuZW5kQ29udGFpbmVyLmZpcnN0
Q2hpbGR8fCFmLmVuZENvbnRhaW5lci5maXJzdENoaWxkLm5leHRTaWJsaW5nKXJldHVybjtnPWYu
ZW5kQ29udGFpbmVyLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmd9aWYoaD1nLmxlbmd0aCxvKGcsaCks
cihnLGgpLGYuZW5kT2Zmc2V0PDUpcmV0dXJuO2Q9Zi5lbmRPZmZzZXQscz1nfWVsc2V7aWYocz1m
LmVuZENvbnRhaW5lciwzIT1zLm5vZGVUeXBlJiZzLmZpcnN0Q2hpbGQpe2Zvcig7MyE9cy5ub2Rl
VHlwZSYmcy5maXJzdENoaWxkOylzPXMuZmlyc3RDaGlsZDszPT1zLm5vZGVUeXBlJiYobyhzLDAp
LHIocyxzLm5vZGVWYWx1ZS5sZW5ndGgpKX1kPTE9PWYuZW5kT2Zmc2V0PzI6Zi5lbmRPZmZzZXQt
MS1ufWE9ZDtkbyBvKHMsZD49Mj9kLTI6MCkscihzLGQ+PTE/ZC0xOjApLGQtPTE7d2hpbGUoIiAi
IT1mLnRvU3RyaW5nKCkmJiIiIT09Zi50b1N0cmluZygpJiYxNjAhPWYudG9TdHJpbmcoKS5jaGFy
Q29kZUF0KDApJiZkLTI+PTAmJmYudG9TdHJpbmcoKSE9ZSk7Zi50b1N0cmluZygpPT1lfHwxNjA9
PWYudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApPyhvKHMsZCkscihzLGEpLGQrPTEpOjA9PT1mLnN0
YXJ0T2Zmc2V0PyhvKHMsMCkscihzLGEpKToobyhzLGQpLHIocyxhKSksbD1mLnRvU3RyaW5nKCks
Ii4iPT1sLmNoYXJBdChsLmxlbmd0aC0xKSYmcihzLGEtMSksbD1mLnRvU3RyaW5nKCksdT1sLm1h
dGNoKC9eKGh0dHBzPzpcL1wvfHNzaDpcL1wvfGZ0cDpcL1wvfGZpbGU6XC98d3d3XC58KD86bWFp
bHRvOik/W0EtWjAtOS5fJStcLV0rQCkoLispJC9pKSx1JiYoInd3dy4iPT11WzFdP3VbMV09Imh0
dHA6Ly93d3cuIjovQCQvLnRlc3QodVsxXSkmJiEvXm1haWx0bzovLnRlc3QodVsxXSkmJih1WzFd
PSJtYWlsdG86Iit1WzFdKSxjPXQuc2VsZWN0aW9uLmdldEJvb2ttYXJrKCksdC5zZWxlY3Rpb24u
c2V0Um5nKGYpLHQuZXhlY0NvbW1hbmQoImNyZWF0ZWxpbmsiLCExLHVbMV0rdVsyXSksdC5zZWxl
Y3Rpb24ubW92ZVRvQm9va21hcmsoYyksdC5ub2RlQ2hhbmdlZCgpKX12YXIgcjtyZXR1cm4gdC5v
bigia2V5ZG93biIsZnVuY3Rpb24obil7cmV0dXJuIDEzPT1uLmtleUNvZGU/aSh0KTp2b2lkIDB9
KSx0aW55bWNlLkVudi5pZT92b2lkIHQub24oImZvY3VzIixmdW5jdGlvbigpe2lmKCFyKXtyPSEw
O3RyeXt0LmV4ZWNDb21tYW5kKCJBdXRvVXJsRGV0ZWN0IiwhMSwhMCl9Y2F0Y2gobil7fX19KToo
dC5vbigia2V5cHJlc3MiLGZ1bmN0aW9uKGUpe3JldHVybiA0MT09ZS5rZXlDb2RlP24odCk6dm9p
ZCAwfSksdm9pZCB0Lm9uKCJrZXl1cCIsZnVuY3Rpb24obil7cmV0dXJuIDMyPT1uLmtleUNvZGU/
ZSh0KTp2b2lkIDB9KSl9KTt0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJhdXRvcmVzaXplIixm
dW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7cmV0dXJuIGUucGx1Z2lucy5mdWxsc2NyZWVuJiZlLnBs
dWdpbnMuZnVsbHNjcmVlbi5pc0Z1bGxzY3JlZW4oKX1mdW5jdGlvbiBpKG4pe3ZhciBzLHIsZyx1
LGwsbSxoLGQsZj10aW55bWNlLkRPTTtpZihyPWUuZ2V0RG9jKCkpe2lmKGc9ci5ib2R5LHU9ci5k
b2N1bWVudEVsZW1lbnQsbD1vLmF1dG9yZXNpemVfbWluX2hlaWdodCwhZ3x8biYmInNldGNvbnRl
bnQiPT09bi50eXBlJiZuLmluaXRpYWx8fHQoKSlyZXR1cm4gdm9pZChnJiZ1JiYoZy5zdHlsZS5v
dmVyZmxvd1k9ImF1dG8iLHUuc3R5bGUub3ZlcmZsb3dZPSJhdXRvIikpO2g9ZS5kb20uZ2V0U3R5
bGUoZywibWFyZ2luLXRvcCIsITApLGQ9ZS5kb20uZ2V0U3R5bGUoZywibWFyZ2luLWJvdHRvbSIs
ITApLG09Zy5vZmZzZXRIZWlnaHQrcGFyc2VJbnQoaCwxMCkrcGFyc2VJbnQoZCwxMCksKGlzTmFO
KG0pfHwwPj1tKSYmKG09dGlueW1jZS5FbnYuaWU/Zy5zY3JvbGxIZWlnaHQ6dGlueW1jZS5FbnYu
d2Via2l0JiYwPT09Zy5jbGllbnRIZWlnaHQ/MDpnLm9mZnNldEhlaWdodCksbT5vLmF1dG9yZXNp
emVfbWluX2hlaWdodCYmKGw9bSksby5hdXRvcmVzaXplX21heF9oZWlnaHQmJm0+by5hdXRvcmVz
aXplX21heF9oZWlnaHQ/KGw9by5hdXRvcmVzaXplX21heF9oZWlnaHQsZy5zdHlsZS5vdmVyZmxv
d1k9ImF1dG8iLHUuc3R5bGUub3ZlcmZsb3dZPSJhdXRvIik6KGcuc3R5bGUub3ZlcmZsb3dZPSJo
aWRkZW4iLHUuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iLGcuc2Nyb2xsVG9wPTApLGwhPT1hJiYo
cz1sLWEsZi5zZXRTdHlsZShmLmdldChlLmlkKyJfaWZyIiksImhlaWdodCIsbCsicHgiKSxhPWws
dGlueW1jZS5pc1dlYktpdCYmMD5zJiZpKG4pKX19ZnVuY3Rpb24gbihlLHQsbyl7c2V0VGltZW91
dChmdW5jdGlvbigpe2koe30pLGUtLT9uKGUsdCxvKTpvJiZvKCl9LHQpfXZhciBvPWUuc2V0dGlu
Z3MsYT0wO2Uuc2V0dGluZ3MuaW5saW5lfHwoby5hdXRvcmVzaXplX21pbl9oZWlnaHQ9cGFyc2VJ
bnQoZS5nZXRQYXJhbSgiYXV0b3Jlc2l6ZV9taW5faGVpZ2h0IixlLmdldEVsZW1lbnQoKS5vZmZz
ZXRIZWlnaHQpLDEwKSxvLmF1dG9yZXNpemVfbWF4X2hlaWdodD1wYXJzZUludChlLmdldFBhcmFt
KCJhdXRvcmVzaXplX21heF9oZWlnaHQiLDApLDEwKSxlLm9uKCJpbml0IixmdW5jdGlvbigpe3Zh
ciB0PWUuZ2V0UGFyYW0oImF1dG9yZXNpemVfb3ZlcmZsb3dfcGFkZGluZyIsMSk7ZS5kb20uc2V0
U3R5bGVzKGUuZ2V0Qm9keSgpLHtwYWRkaW5nQm90dG9tOmUuZ2V0UGFyYW0oImF1dG9yZXNpemVf
Ym90dG9tX21hcmdpbiIsNTApLHBhZGRpbmdMZWZ0OnQscGFkZGluZ1JpZ2h0OnR9KX0pLGUub24o
Im5vZGVjaGFuZ2Ugc2V0Y29udGVudCBrZXl1cCBGdWxsc2NyZWVuU3RhdGVDaGFuZ2VkIixpKSxl
LmdldFBhcmFtKCJhdXRvcmVzaXplX29uX2luaXQiLCEwKSYmZS5vbigiaW5pdCIsZnVuY3Rpb24o
KXtuKDIwLDEwMCxmdW5jdGlvbigpe24oNSwxZTMpfSl9KSxlLmFkZENvbW1hbmQoIm1jZUF1dG9S
ZXNpemUiLGkpKX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoImF1dG9zYXZlIixmdW5jdGlv
bihlKXtmdW5jdGlvbiB0KGUsdCl7dmFyIG49e3M6MWUzLG06NmU0fTtyZXR1cm4gZT0vXihcZCsp
KFttc10/KSQvLmV4ZWMoIiIrKGV8fHQpKSwoZVsyXT9uW2VbMl1dOjEpKnBhcnNlSW50KGUsMTAp
fWZ1bmN0aW9uIG4oKXt2YXIgZT1wYXJzZUludChsLmdldEl0ZW0oZCsidGltZSIpLDEwKXx8MDty
ZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1lPnYuYXV0b3NhdmVfcmV0ZW50aW9uPyhhKCExKSwh
MSk6ITB9ZnVuY3Rpb24gYSh0KXtsLnJlbW92ZUl0ZW0oZCsiZHJhZnQiKSxsLnJlbW92ZUl0ZW0o
ZCsidGltZSIpLHQhPT0hMSYmZS5maXJlKCJSZW1vdmVEcmFmdCIpfWZ1bmN0aW9uIHIoKXshYygp
JiZlLmlzRGlydHkoKSYmKGwuc2V0SXRlbShkKyJkcmFmdCIsZS5nZXRDb250ZW50KHtmb3JtYXQ6
InJhdyIsbm9fZXZlbnRzOiEwfSkpLGwuc2V0SXRlbShkKyJ0aW1lIiwobmV3IERhdGUpLmdldFRp
bWUoKSksZS5maXJlKCJTdG9yZURyYWZ0IikpfWZ1bmN0aW9uIG8oKXtuKCkmJihlLnNldENvbnRl
bnQobC5nZXRJdGVtKGQrImRyYWZ0Iikse2Zvcm1hdDoicmF3In0pLGUuZmlyZSgiUmVzdG9yZURy
YWZ0IikpfWZ1bmN0aW9uIGkoKXttfHwoc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtlLnJlbW92ZWR8
fHIoKX0sdi5hdXRvc2F2ZV9pbnRlcnZhbCksbT0hMCl9ZnVuY3Rpb24gcygpe3ZhciB0PXRoaXM7
dC5kaXNhYmxlZCghbigpKSxlLm9uKCJTdG9yZURyYWZ0IFJlc3RvcmVEcmFmdCBSZW1vdmVEcmFm
dCIsZnVuY3Rpb24oKXt0LmRpc2FibGVkKCFuKCkpfSksaSgpfWZ1bmN0aW9uIHUoKXtlLnVuZG9N
YW5hZ2VyLmJlZm9yZUNoYW5nZSgpLG8oKSxhKCksZS51bmRvTWFuYWdlci5hZGQoKX1mdW5jdGlv
biBmKCl7dmFyIGU7cmV0dXJuIHRpbnltY2UuZWFjaCh0aW55bWNlLmVkaXRvcnMsZnVuY3Rpb24o
dCl7dC5wbHVnaW5zLmF1dG9zYXZlJiZ0LnBsdWdpbnMuYXV0b3NhdmUuc3RvcmVEcmFmdCgpLCFl
JiZ0LmlzRGlydHkoKSYmdC5nZXRQYXJhbSgiYXV0b3NhdmVfYXNrX2JlZm9yZV91bmxvYWQiLCEw
KSYmKGU9dC50cmFuc2xhdGUoIllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyBhcmUgeW91IHN1cmUg
eW91IHdhbnQgdG8gbmF2aWdhdGUgYXdheT8iKSl9KSxlfWZ1bmN0aW9uIGModCl7dmFyIG49ZS5z
ZXR0aW5ncy5mb3JjZWRfcm9vdF9ibG9jaztyZXR1cm4gdD10aW55bWNlLnRyaW0oInVuZGVmaW5l
ZCI9PXR5cGVvZiB0P2UuZ2V0Qm9keSgpLmlubmVySFRNTDp0KSwiIj09PXR8fG5ldyBSZWdFeHAo
Il48IituKyJbXj5dKj4oKMKgfCZuYnNwO3xbIAldfDxicltePl0qPikrP3wpPC8iK24rIj58PGJy
PiQiLCJpIikudGVzdCh0KX12YXIgZCxtLHY9ZS5zZXR0aW5ncyxsPXRpbnltY2UudXRpbC5Mb2Nh
bFN0b3JhZ2U7ZD12LmF1dG9zYXZlX3ByZWZpeHx8InRpbnltY2UtYXV0b3NhdmUte3BhdGh9e3F1
ZXJ5fS17aWR9LSIsZD1kLnJlcGxhY2UoL1x7cGF0aFx9L2csZG9jdW1lbnQubG9jYXRpb24ucGF0
aG5hbWUpLGQ9ZC5yZXBsYWNlKC9ce3F1ZXJ5XH0vZyxkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2gp
LGQ9ZC5yZXBsYWNlKC9ce2lkXH0vZyxlLmlkKSx2LmF1dG9zYXZlX2ludGVydmFsPXQodi5hdXRv
c2F2ZV9pbnRlcnZhbCwiMzBzIiksdi5hdXRvc2F2ZV9yZXRlbnRpb249dCh2LmF1dG9zYXZlX3Jl
dGVudGlvbiwiMjBtIiksZS5hZGRCdXR0b24oInJlc3RvcmVkcmFmdCIse3RpdGxlOiJSZXN0b3Jl
IGxhc3QgZHJhZnQiLG9uY2xpY2s6dSxvblBvc3RSZW5kZXI6c30pLGUuYWRkTWVudUl0ZW0oInJl
c3RvcmVkcmFmdCIse3RleHQ6IlJlc3RvcmUgbGFzdCBkcmFmdCIsb25jbGljazp1LG9uUG9zdFJl
bmRlcjpzLGNvbnRleHQ6ImZpbGUifSksZS5zZXR0aW5ncy5hdXRvc2F2ZV9yZXN0b3JlX3doZW5f
ZW1wdHkhPT0hMSYmKGUub24oImluaXQiLGZ1bmN0aW9uKCl7bigpJiZjKCkmJm8oKX0pLGUub24o
InNhdmVDb250ZW50IixmdW5jdGlvbigpe2EoKX0pKSx3aW5kb3cub25iZWZvcmV1bmxvYWQ9Zix0
aGlzLmhhc0RyYWZ0PW4sdGhpcy5zdG9yZURyYWZ0PXIsdGhpcy5yZXN0b3JlRHJhZnQ9byx0aGlz
LnJlbW92ZURyYWZ0PWEsdGhpcy5pc0VtcHR5PWN9KTshZnVuY3Rpb24oKXt0aW55bWNlLmNyZWF0
ZSgidGlueW1jZS5wbHVnaW5zLkJCQ29kZVBsdWdpbiIse2luaXQ6ZnVuY3Rpb24obyl7dmFyIGU9
dGhpcyx0PW8uZ2V0UGFyYW0oImJiY29kZV9kaWFsZWN0IiwicHVuYmIiKS50b0xvd2VyQ2FzZSgp
O28ub24oImJlZm9yZVNldENvbnRlbnQiLGZ1bmN0aW9uKG8pe28uY29udGVudD1lWyJfIit0KyJf
YmJjb2RlMmh0bWwiXShvLmNvbnRlbnQpfSksby5vbigicG9zdFByb2Nlc3MiLGZ1bmN0aW9uKG8p
e28uc2V0JiYoby5jb250ZW50PWVbIl8iK3QrIl9iYmNvZGUyaHRtbCJdKG8uY29udGVudCkpLG8u
Z2V0JiYoby5jb250ZW50PWVbIl8iK3QrIl9odG1sMmJiY29kZSJdKG8uY29udGVudCkpfSl9LGdl
dEluZm86ZnVuY3Rpb24oKXtyZXR1cm57bG9uZ25hbWU6IkJCQ29kZSBQbHVnaW4iLGF1dGhvcjoi
TW94aWVjb2RlIFN5c3RlbXMgQUIiLGF1dGhvcnVybDoiaHR0cDovL3d3dy50aW55bWNlLmNvbSIs
aW5mb3VybDoiaHR0cDovL3d3dy50aW55bWNlLmNvbS93aWtpLnBocC9QbHVnaW46YmJjb2RlIn19
LF9wdW5iYl9odG1sMmJiY29kZTpmdW5jdGlvbihvKXtmdW5jdGlvbiBlKGUsdCl7bz1vLnJlcGxh
Y2UoZSx0KX1yZXR1cm4gbz10aW55bWNlLnRyaW0obyksZSgvPGEuKj9ocmVmPVwiKC4qPylcIi4q
Pz4oLio/KTxcL2E+L2dpLCJbdXJsPSQxXSQyWy91cmxdIiksZSgvPGZvbnQuKj9jb2xvcj1cIigu
Kj8pXCIuKj9jbGFzcz1cImNvZGVTdHlsZVwiLio/PiguKj8pPFwvZm9udD4vZ2ksIltjb2RlXVtj
b2xvcj0kMV0kMlsvY29sb3JdWy9jb2RlXSIpLGUoLzxmb250Lio/Y29sb3I9XCIoLio/KVwiLio/
Y2xhc3M9XCJxdW90ZVN0eWxlXCIuKj8+KC4qPyk8XC9mb250Pi9naSwiW3F1b3RlXVtjb2xvcj0k
MV0kMlsvY29sb3JdWy9xdW90ZV0iKSxlKC88Zm9udC4qP2NsYXNzPVwiY29kZVN0eWxlXCIuKj9j
b2xvcj1cIiguKj8pXCIuKj8+KC4qPyk8XC9mb250Pi9naSwiW2NvZGVdW2NvbG9yPSQxXSQyWy9j
b2xvcl1bL2NvZGVdIiksZSgvPGZvbnQuKj9jbGFzcz1cInF1b3RlU3R5bGVcIi4qP2NvbG9yPVwi
KC4qPylcIi4qPz4oLio/KTxcL2ZvbnQ+L2dpLCJbcXVvdGVdW2NvbG9yPSQxXSQyWy9jb2xvcl1b
L3F1b3RlXSIpLGUoLzxzcGFuIHN0eWxlPVwiY29sb3I6ID8oLio/KTtcIj4oLio/KTxcL3NwYW4+
L2dpLCJbY29sb3I9JDFdJDJbL2NvbG9yXSIpLGUoLzxmb250Lio/Y29sb3I9XCIoLio/KVwiLio/
PiguKj8pPFwvZm9udD4vZ2ksIltjb2xvcj0kMV0kMlsvY29sb3JdIiksZSgvPHNwYW4gc3R5bGU9
XCJmb250LXNpemU6KC4qPyk7XCI+KC4qPyk8XC9zcGFuPi9naSwiW3NpemU9JDFdJDJbL3NpemVd
IiksZSgvPGZvbnQ+KC4qPyk8XC9mb250Pi9naSwiJDEiKSxlKC88aW1nLio/c3JjPVwiKC4qPylc
Ii4qP1wvPi9naSwiW2ltZ10kMVsvaW1nXSIpLGUoLzxzcGFuIGNsYXNzPVwiY29kZVN0eWxlXCI+
KC4qPyk8XC9zcGFuPi9naSwiW2NvZGVdJDFbL2NvZGVdIiksZSgvPHNwYW4gY2xhc3M9XCJxdW90
ZVN0eWxlXCI+KC4qPyk8XC9zcGFuPi9naSwiW3F1b3RlXSQxWy9xdW90ZV0iKSxlKC88c3Ryb25n
IGNsYXNzPVwiY29kZVN0eWxlXCI+KC4qPyk8XC9zdHJvbmc+L2dpLCJbY29kZV1bYl0kMVsvYl1b
L2NvZGVdIiksZSgvPHN0cm9uZyBjbGFzcz1cInF1b3RlU3R5bGVcIj4oLio/KTxcL3N0cm9uZz4v
Z2ksIltxdW90ZV1bYl0kMVsvYl1bL3F1b3RlXSIpLGUoLzxlbSBjbGFzcz1cImNvZGVTdHlsZVwi
PiguKj8pPFwvZW0+L2dpLCJbY29kZV1baV0kMVsvaV1bL2NvZGVdIiksZSgvPGVtIGNsYXNzPVwi
cXVvdGVTdHlsZVwiPiguKj8pPFwvZW0+L2dpLCJbcXVvdGVdW2ldJDFbL2ldWy9xdW90ZV0iKSxl
KC88dSBjbGFzcz1cImNvZGVTdHlsZVwiPiguKj8pPFwvdT4vZ2ksIltjb2RlXVt1XSQxWy91XVsv
Y29kZV0iKSxlKC88dSBjbGFzcz1cInF1b3RlU3R5bGVcIj4oLio/KTxcL3U+L2dpLCJbcXVvdGVd
W3VdJDFbL3VdWy9xdW90ZV0iKSxlKC88XC8oc3Ryb25nfGIpPi9naSwiWy9iXSIpLGUoLzwoc3Ry
b25nfGIpPi9naSwiW2JdIiksZSgvPFwvKGVtfGkpPi9naSwiWy9pXSIpLGUoLzwoZW18aSk+L2dp
LCJbaV0iKSxlKC88XC91Pi9naSwiWy91XSIpLGUoLzxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0
aW9uOiA/dW5kZXJsaW5lO1wiPiguKj8pPFwvc3Bhbj4vZ2ksIlt1XSQxWy91XSIpLGUoLzx1Pi9n
aSwiW3VdIiksZSgvPGJsb2NrcXVvdGVbXj5dKj4vZ2ksIltxdW90ZV0iKSxlKC88XC9ibG9ja3F1
b3RlPi9naSwiWy9xdW90ZV0iKSxlKC88YnIgXC8+L2dpLCJcbiIpLGUoLzxiclwvPi9naSwiXG4i
KSxlKC88YnI+L2dpLCJcbiIpLGUoLzxwPi9naSwiIiksZSgvPFwvcD4vZ2ksIlxuIiksZSgvJm5i
c3A7fFx1MDBhMC9naSwiICIpLGUoLyZxdW90Oy9naSwnIicpLGUoLyZsdDsvZ2ksIjwiKSxlKC8m
Z3Q7L2dpLCI+IiksZSgvJmFtcDsvZ2ksIiYiKSxvfSxfcHVuYmJfYmJjb2RlMmh0bWw6ZnVuY3Rp
b24obyl7ZnVuY3Rpb24gZShlLHQpe289by5yZXBsYWNlKGUsdCl9cmV0dXJuIG89dGlueW1jZS50
cmltKG8pLGUoL1xuL2dpLCI8YnIgLz4iKSxlKC9cW2JcXS9naSwiPHN0cm9uZz4iKSxlKC9cW1wv
YlxdL2dpLCI8L3N0cm9uZz4iKSxlKC9cW2lcXS9naSwiPGVtPiIpLGUoL1xbXC9pXF0vZ2ksIjwv
ZW0+IiksZSgvXFt1XF0vZ2ksIjx1PiIpLGUoL1xbXC91XF0vZ2ksIjwvdT4iKSxlKC9cW3VybD0o
W15cXV0rKVxdKC4qPylcW1wvdXJsXF0vZ2ksJzxhIGhyZWY9IiQxIj4kMjwvYT4nKSxlKC9cW3Vy
bFxdKC4qPylcW1wvdXJsXF0vZ2ksJzxhIGhyZWY9IiQxIj4kMTwvYT4nKSxlKC9cW2ltZ1xdKC4q
PylcW1wvaW1nXF0vZ2ksJzxpbWcgc3JjPSIkMSIgLz4nKSxlKC9cW2NvbG9yPSguKj8pXF0oLio/
KVxbXC9jb2xvclxdL2dpLCc8Zm9udCBjb2xvcj0iJDEiPiQyPC9mb250PicpLGUoL1xbY29kZVxd
KC4qPylcW1wvY29kZVxdL2dpLCc8c3BhbiBjbGFzcz0iY29kZVN0eWxlIj4kMTwvc3Bhbj4mbmJz
cDsnKSxlKC9cW3F1b3RlLio/XF0oLio/KVxbXC9xdW90ZVxdL2dpLCc8c3BhbiBjbGFzcz0icXVv
dGVTdHlsZSI+JDE8L3NwYW4+Jm5ic3A7Jyksb319KSx0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRk
KCJiYmNvZGUiLHRpbnltY2UucGx1Z2lucy5CQkNvZGVQbHVnaW4pfSgpO3RpbnltY2UuUGx1Z2lu
TWFuYWdlci5hZGQoImNoYXJtYXAiLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGEoKXtmdW5jdGlvbiBh
KGUpe2Zvcig7ZTspe2lmKCJURCI9PWUubm9kZU5hbWUpcmV0dXJuIGU7ZT1lLnBhcmVudE5vZGV9
fXZhciB0LHIsbyxuO3Q9Jzx0YWJsZSByb2xlPSJwcmVzZW50YXRpb24iIGNlbGxzcGFjaW5nPSIw
IiBjbGFzcz0ibWNlLWNoYXJtYXAiPjx0Ym9keT4nO3ZhciBsPTI1O2ZvcihvPTA7MTA+bztvKysp
e2Zvcih0Kz0iPHRyPiIscj0wO2w+cjtyKyspe3ZhciBzPWlbbypsK3JdO3QrPSc8dGQgdGl0bGU9
Iicrc1sxXSsnIj48ZGl2IHRhYmluZGV4PSItMSIgdGl0bGU9Iicrc1sxXSsnIiByb2xlPSJidXR0
b24iPicrKHM/U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChzWzBdLDEwKSk6IiZuYnNwOyIp
KyI8L2Rpdj48L3RkPiJ9dCs9IjwvdHI+In10Kz0iPC90Ym9keT48L3RhYmxlPiI7dmFyIGM9e3R5
cGU6ImNvbnRhaW5lciIsaHRtbDp0LG9uY2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGk9YS50YXJnZXQ7
IlREIj09aS50YWdOYW1lJiYoaT1pLmZpcnN0Q2hpbGQpLCJESVYiPT1pLnRhZ05hbWUmJihlLmV4
ZWNDb21tYW5kKCJtY2VJbnNlcnRDb250ZW50IiwhMSxpLmZpcnN0Q2hpbGQuZGF0YSksYS5jdHJs
S2V5fHxuLmNsb3NlKCkpfSxvbm1vdXNlb3ZlcjpmdW5jdGlvbihlKXt2YXIgaT1hKGUudGFyZ2V0
KTtpJiZuLmZpbmQoIiNwcmV2aWV3IikudGV4dChpLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5kYXRh
KX19O249ZS53aW5kb3dNYW5hZ2VyLm9wZW4oe3RpdGxlOiJTcGVjaWFsIGNoYXJhY3RlciIsc3Bh
Y2luZzoxMCxwYWRkaW5nOjEwLGl0ZW1zOltjLHt0eXBlOiJsYWJlbCIsbmFtZToicHJldmlldyIs
dGV4dDoiICIsc3R5bGU6ImZvbnQtc2l6ZTogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyIixib3Jk
ZXI6MSxtaW5XaWR0aDoxMDAsbWluSGVpZ2h0OjgwfV0sYnV0dG9uczpbe3RleHQ6IkNsb3NlIixv
bmNsaWNrOmZ1bmN0aW9uKCl7bi5jbG9zZSgpfX1dfSl9dmFyIGk9W1siMTYwIiwibm8tYnJlYWsg
c3BhY2UiXSxbIjM4IiwiYW1wZXJzYW5kIl0sWyIzNCIsInF1b3RhdGlvbiBtYXJrIl0sWyIxNjIi
LCJjZW50IHNpZ24iXSxbIjgzNjQiLCJldXJvIHNpZ24iXSxbIjE2MyIsInBvdW5kIHNpZ24iXSxb
IjE2NSIsInllbiBzaWduIl0sWyIxNjkiLCJjb3B5cmlnaHQgc2lnbiJdLFsiMTc0IiwicmVnaXN0
ZXJlZCBzaWduIl0sWyI4NDgyIiwidHJhZGUgbWFyayBzaWduIl0sWyI4MjQwIiwicGVyIG1pbGxl
IHNpZ24iXSxbIjE4MSIsIm1pY3JvIHNpZ24iXSxbIjE4MyIsIm1pZGRsZSBkb3QiXSxbIjgyMjYi
LCJidWxsZXQiXSxbIjgyMzAiLCJ0aHJlZSBkb3QgbGVhZGVyIl0sWyI4MjQyIiwibWludXRlcyAv
IGZlZXQiXSxbIjgyNDMiLCJzZWNvbmRzIC8gaW5jaGVzIl0sWyIxNjciLCJzZWN0aW9uIHNpZ24i
XSxbIjE4MiIsInBhcmFncmFwaCBzaWduIl0sWyIyMjMiLCJzaGFycCBzIC8gZXNzLXplZCJdLFsi
ODI0OSIsInNpbmdsZSBsZWZ0LXBvaW50aW5nIGFuZ2xlIHF1b3RhdGlvbiBtYXJrIl0sWyI4MjUw
Iiwic2luZ2xlIHJpZ2h0LXBvaW50aW5nIGFuZ2xlIHF1b3RhdGlvbiBtYXJrIl0sWyIxNzEiLCJs
ZWZ0IHBvaW50aW5nIGd1aWxsZW1ldCJdLFsiMTg3IiwicmlnaHQgcG9pbnRpbmcgZ3VpbGxlbWV0
Il0sWyI4MjE2IiwibGVmdCBzaW5nbGUgcXVvdGF0aW9uIG1hcmsiXSxbIjgyMTciLCJyaWdodCBz
aW5nbGUgcXVvdGF0aW9uIG1hcmsiXSxbIjgyMjAiLCJsZWZ0IGRvdWJsZSBxdW90YXRpb24gbWFy
ayJdLFsiODIyMSIsInJpZ2h0IGRvdWJsZSBxdW90YXRpb24gbWFyayJdLFsiODIxOCIsInNpbmds
ZSBsb3ctOSBxdW90YXRpb24gbWFyayJdLFsiODIyMiIsImRvdWJsZSBsb3ctOSBxdW90YXRpb24g
bWFyayJdLFsiNjAiLCJsZXNzLXRoYW4gc2lnbiJdLFsiNjIiLCJncmVhdGVyLXRoYW4gc2lnbiJd
LFsiODgwNCIsImxlc3MtdGhhbiBvciBlcXVhbCB0byJdLFsiODgwNSIsImdyZWF0ZXItdGhhbiBv
ciBlcXVhbCB0byJdLFsiODIxMSIsImVuIGRhc2giXSxbIjgyMTIiLCJlbSBkYXNoIl0sWyIxNzUi
LCJtYWNyb24iXSxbIjgyNTQiLCJvdmVybGluZSJdLFsiMTY0IiwiY3VycmVuY3kgc2lnbiJdLFsi
MTY2IiwiYnJva2VuIGJhciJdLFsiMTY4IiwiZGlhZXJlc2lzIl0sWyIxNjEiLCJpbnZlcnRlZCBl
eGNsYW1hdGlvbiBtYXJrIl0sWyIxOTEiLCJ0dXJuZWQgcXVlc3Rpb24gbWFyayJdLFsiNzEwIiwi
Y2lyY3VtZmxleCBhY2NlbnQiXSxbIjczMiIsInNtYWxsIHRpbGRlIl0sWyIxNzYiLCJkZWdyZWUg
c2lnbiJdLFsiODcyMiIsIm1pbnVzIHNpZ24iXSxbIjE3NyIsInBsdXMtbWludXMgc2lnbiJdLFsi
MjQ3IiwiZGl2aXNpb24gc2lnbiJdLFsiODI2MCIsImZyYWN0aW9uIHNsYXNoIl0sWyIyMTUiLCJt
dWx0aXBsaWNhdGlvbiBzaWduIl0sWyIxODUiLCJzdXBlcnNjcmlwdCBvbmUiXSxbIjE3OCIsInN1
cGVyc2NyaXB0IHR3byJdLFsiMTc5Iiwic3VwZXJzY3JpcHQgdGhyZWUiXSxbIjE4OCIsImZyYWN0
aW9uIG9uZSBxdWFydGVyIl0sWyIxODkiLCJmcmFjdGlvbiBvbmUgaGFsZiJdLFsiMTkwIiwiZnJh
Y3Rpb24gdGhyZWUgcXVhcnRlcnMiXSxbIjQwMiIsImZ1bmN0aW9uIC8gZmxvcmluIl0sWyI4NzQ3
IiwiaW50ZWdyYWwiXSxbIjg3MjEiLCJuLWFyeSBzdW1hdGlvbiJdLFsiODczNCIsImluZmluaXR5
Il0sWyI4NzMwIiwic3F1YXJlIHJvb3QiXSxbIjg3NjQiLCJzaW1pbGFyIHRvIl0sWyI4NzczIiwi
YXBwcm94aW1hdGVseSBlcXVhbCB0byJdLFsiODc3NiIsImFsbW9zdCBlcXVhbCB0byJdLFsiODgw
MCIsIm5vdCBlcXVhbCB0byJdLFsiODgwMSIsImlkZW50aWNhbCB0byJdLFsiODcxMiIsImVsZW1l
bnQgb2YiXSxbIjg3MTMiLCJub3QgYW4gZWxlbWVudCBvZiJdLFsiODcxNSIsImNvbnRhaW5zIGFz
IG1lbWJlciJdLFsiODcxOSIsIm4tYXJ5IHByb2R1Y3QiXSxbIjg3NDMiLCJsb2dpY2FsIGFuZCJd
LFsiODc0NCIsImxvZ2ljYWwgb3IiXSxbIjE3MiIsIm5vdCBzaWduIl0sWyI4NzQ1IiwiaW50ZXJz
ZWN0aW9uIl0sWyI4NzQ2IiwidW5pb24iXSxbIjg3MDYiLCJwYXJ0aWFsIGRpZmZlcmVudGlhbCJd
LFsiODcwNCIsImZvciBhbGwiXSxbIjg3MDciLCJ0aGVyZSBleGlzdHMiXSxbIjg3MDkiLCJkaWFt
ZXRlciJdLFsiODcxMSIsImJhY2t3YXJkIGRpZmZlcmVuY2UiXSxbIjg3MjciLCJhc3RlcmlzayBv
cGVyYXRvciJdLFsiODczMyIsInByb3BvcnRpb25hbCB0byJdLFsiODczNiIsImFuZ2xlIl0sWyIx
ODAiLCJhY3V0ZSBhY2NlbnQiXSxbIjE4NCIsImNlZGlsbGEiXSxbIjE3MCIsImZlbWluaW5lIG9y
ZGluYWwgaW5kaWNhdG9yIl0sWyIxODYiLCJtYXNjdWxpbmUgb3JkaW5hbCBpbmRpY2F0b3IiXSxb
IjgyMjQiLCJkYWdnZXIiXSxbIjgyMjUiLCJkb3VibGUgZGFnZ2VyIl0sWyIxOTIiLCJBIC0gZ3Jh
dmUiXSxbIjE5MyIsIkEgLSBhY3V0ZSJdLFsiMTk0IiwiQSAtIGNpcmN1bWZsZXgiXSxbIjE5NSIs
IkEgLSB0aWxkZSJdLFsiMTk2IiwiQSAtIGRpYWVyZXNpcyJdLFsiMTk3IiwiQSAtIHJpbmcgYWJv
dmUiXSxbIjE5OCIsImxpZ2F0dXJlIEFFIl0sWyIxOTkiLCJDIC0gY2VkaWxsYSJdLFsiMjAwIiwi
RSAtIGdyYXZlIl0sWyIyMDEiLCJFIC0gYWN1dGUiXSxbIjIwMiIsIkUgLSBjaXJjdW1mbGV4Il0s
WyIyMDMiLCJFIC0gZGlhZXJlc2lzIl0sWyIyMDQiLCJJIC0gZ3JhdmUiXSxbIjIwNSIsIkkgLSBh
Y3V0ZSJdLFsiMjA2IiwiSSAtIGNpcmN1bWZsZXgiXSxbIjIwNyIsIkkgLSBkaWFlcmVzaXMiXSxb
IjIwOCIsIkVUSCJdLFsiMjA5IiwiTiAtIHRpbGRlIl0sWyIyMTAiLCJPIC0gZ3JhdmUiXSxbIjIx
MSIsIk8gLSBhY3V0ZSJdLFsiMjEyIiwiTyAtIGNpcmN1bWZsZXgiXSxbIjIxMyIsIk8gLSB0aWxk
ZSJdLFsiMjE0IiwiTyAtIGRpYWVyZXNpcyJdLFsiMjE2IiwiTyAtIHNsYXNoIl0sWyIzMzgiLCJs
aWdhdHVyZSBPRSJdLFsiMzUyIiwiUyAtIGNhcm9uIl0sWyIyMTciLCJVIC0gZ3JhdmUiXSxbIjIx
OCIsIlUgLSBhY3V0ZSJdLFsiMjE5IiwiVSAtIGNpcmN1bWZsZXgiXSxbIjIyMCIsIlUgLSBkaWFl
cmVzaXMiXSxbIjIyMSIsIlkgLSBhY3V0ZSJdLFsiMzc2IiwiWSAtIGRpYWVyZXNpcyJdLFsiMjIy
IiwiVEhPUk4iXSxbIjIyNCIsImEgLSBncmF2ZSJdLFsiMjI1IiwiYSAtIGFjdXRlIl0sWyIyMjYi
LCJhIC0gY2lyY3VtZmxleCJdLFsiMjI3IiwiYSAtIHRpbGRlIl0sWyIyMjgiLCJhIC0gZGlhZXJl
c2lzIl0sWyIyMjkiLCJhIC0gcmluZyBhYm92ZSJdLFsiMjMwIiwibGlnYXR1cmUgYWUiXSxbIjIz
MSIsImMgLSBjZWRpbGxhIl0sWyIyMzIiLCJlIC0gZ3JhdmUiXSxbIjIzMyIsImUgLSBhY3V0ZSJd
LFsiMjM0IiwiZSAtIGNpcmN1bWZsZXgiXSxbIjIzNSIsImUgLSBkaWFlcmVzaXMiXSxbIjIzNiIs
ImkgLSBncmF2ZSJdLFsiMjM3IiwiaSAtIGFjdXRlIl0sWyIyMzgiLCJpIC0gY2lyY3VtZmxleCJd
LFsiMjM5IiwiaSAtIGRpYWVyZXNpcyJdLFsiMjQwIiwiZXRoIl0sWyIyNDEiLCJuIC0gdGlsZGUi
XSxbIjI0MiIsIm8gLSBncmF2ZSJdLFsiMjQzIiwibyAtIGFjdXRlIl0sWyIyNDQiLCJvIC0gY2ly
Y3VtZmxleCJdLFsiMjQ1IiwibyAtIHRpbGRlIl0sWyIyNDYiLCJvIC0gZGlhZXJlc2lzIl0sWyIy
NDgiLCJvIHNsYXNoIl0sWyIzMzkiLCJsaWdhdHVyZSBvZSJdLFsiMzUzIiwicyAtIGNhcm9uIl0s
WyIyNDkiLCJ1IC0gZ3JhdmUiXSxbIjI1MCIsInUgLSBhY3V0ZSJdLFsiMjUxIiwidSAtIGNpcmN1
bWZsZXgiXSxbIjI1MiIsInUgLSBkaWFlcmVzaXMiXSxbIjI1MyIsInkgLSBhY3V0ZSJdLFsiMjU0
IiwidGhvcm4iXSxbIjI1NSIsInkgLSBkaWFlcmVzaXMiXSxbIjkxMyIsIkFscGhhIl0sWyI5MTQi
LCJCZXRhIl0sWyI5MTUiLCJHYW1tYSJdLFsiOTE2IiwiRGVsdGEiXSxbIjkxNyIsIkVwc2lsb24i
XSxbIjkxOCIsIlpldGEiXSxbIjkxOSIsIkV0YSJdLFsiOTIwIiwiVGhldGEiXSxbIjkyMSIsIklv
dGEiXSxbIjkyMiIsIkthcHBhIl0sWyI5MjMiLCJMYW1iZGEiXSxbIjkyNCIsIk11Il0sWyI5MjUi
LCJOdSJdLFsiOTI2IiwiWGkiXSxbIjkyNyIsIk9taWNyb24iXSxbIjkyOCIsIlBpIl0sWyI5Mjki
LCJSaG8iXSxbIjkzMSIsIlNpZ21hIl0sWyI5MzIiLCJUYXUiXSxbIjkzMyIsIlVwc2lsb24iXSxb
IjkzNCIsIlBoaSJdLFsiOTM1IiwiQ2hpIl0sWyI5MzYiLCJQc2kiXSxbIjkzNyIsIk9tZWdhIl0s
WyI5NDUiLCJhbHBoYSJdLFsiOTQ2IiwiYmV0YSJdLFsiOTQ3IiwiZ2FtbWEiXSxbIjk0OCIsImRl
bHRhIl0sWyI5NDkiLCJlcHNpbG9uIl0sWyI5NTAiLCJ6ZXRhIl0sWyI5NTEiLCJldGEiXSxbIjk1
MiIsInRoZXRhIl0sWyI5NTMiLCJpb3RhIl0sWyI5NTQiLCJrYXBwYSJdLFsiOTU1IiwibGFtYmRh
Il0sWyI5NTYiLCJtdSJdLFsiOTU3IiwibnUiXSxbIjk1OCIsInhpIl0sWyI5NTkiLCJvbWljcm9u
Il0sWyI5NjAiLCJwaSJdLFsiOTYxIiwicmhvIl0sWyI5NjIiLCJmaW5hbCBzaWdtYSJdLFsiOTYz
Iiwic2lnbWEiXSxbIjk2NCIsInRhdSJdLFsiOTY1IiwidXBzaWxvbiJdLFsiOTY2IiwicGhpIl0s
WyI5NjciLCJjaGkiXSxbIjk2OCIsInBzaSJdLFsiOTY5Iiwib21lZ2EiXSxbIjg1MDEiLCJhbGVm
IHN5bWJvbCJdLFsiOTgyIiwicGkgc3ltYm9sIl0sWyI4NDc2IiwicmVhbCBwYXJ0IHN5bWJvbCJd
LFsiOTc4IiwidXBzaWxvbiAtIGhvb2sgc3ltYm9sIl0sWyI4NDcyIiwiV2VpZXJzdHJhc3MgcCJd
LFsiODQ2NSIsImltYWdpbmFyeSBwYXJ0Il0sWyI4NTkyIiwibGVmdHdhcmRzIGFycm93Il0sWyI4
NTkzIiwidXB3YXJkcyBhcnJvdyJdLFsiODU5NCIsInJpZ2h0d2FyZHMgYXJyb3ciXSxbIjg1OTUi
LCJkb3dud2FyZHMgYXJyb3ciXSxbIjg1OTYiLCJsZWZ0IHJpZ2h0IGFycm93Il0sWyI4NjI5Iiwi
Y2FycmlhZ2UgcmV0dXJuIl0sWyI4NjU2IiwibGVmdHdhcmRzIGRvdWJsZSBhcnJvdyJdLFsiODY1
NyIsInVwd2FyZHMgZG91YmxlIGFycm93Il0sWyI4NjU4IiwicmlnaHR3YXJkcyBkb3VibGUgYXJy
b3ciXSxbIjg2NTkiLCJkb3dud2FyZHMgZG91YmxlIGFycm93Il0sWyI4NjYwIiwibGVmdCByaWdo
dCBkb3VibGUgYXJyb3ciXSxbIjg3NTYiLCJ0aGVyZWZvcmUiXSxbIjg4MzQiLCJzdWJzZXQgb2Yi
XSxbIjg4MzUiLCJzdXBlcnNldCBvZiJdLFsiODgzNiIsIm5vdCBhIHN1YnNldCBvZiJdLFsiODgz
OCIsInN1YnNldCBvZiBvciBlcXVhbCB0byJdLFsiODgzOSIsInN1cGVyc2V0IG9mIG9yIGVxdWFs
IHRvIl0sWyI4ODUzIiwiY2lyY2xlZCBwbHVzIl0sWyI4ODU1IiwiY2lyY2xlZCB0aW1lcyJdLFsi
ODg2OSIsInBlcnBlbmRpY3VsYXIiXSxbIjg5MDEiLCJkb3Qgb3BlcmF0b3IiXSxbIjg5NjgiLCJs
ZWZ0IGNlaWxpbmciXSxbIjg5NjkiLCJyaWdodCBjZWlsaW5nIl0sWyI4OTcwIiwibGVmdCBmbG9v
ciJdLFsiODk3MSIsInJpZ2h0IGZsb29yIl0sWyI5MDAxIiwibGVmdC1wb2ludGluZyBhbmdsZSBi
cmFja2V0Il0sWyI5MDAyIiwicmlnaHQtcG9pbnRpbmcgYW5nbGUgYnJhY2tldCJdLFsiOTY3NCIs
ImxvemVuZ2UiXSxbIjk4MjQiLCJibGFjayBzcGFkZSBzdWl0Il0sWyI5ODI3IiwiYmxhY2sgY2x1
YiBzdWl0Il0sWyI5ODI5IiwiYmxhY2sgaGVhcnQgc3VpdCJdLFsiOTgzMCIsImJsYWNrIGRpYW1v
bmQgc3VpdCJdLFsiODE5NCIsImVuIHNwYWNlIl0sWyI4MTk1IiwiZW0gc3BhY2UiXSxbIjgyMDEi
LCJ0aGluIHNwYWNlIl0sWyI4MjA0IiwiemVybyB3aWR0aCBub24tam9pbmVyIl0sWyI4MjA1Iiwi
emVybyB3aWR0aCBqb2luZXIiXSxbIjgyMDYiLCJsZWZ0LXRvLXJpZ2h0IG1hcmsiXSxbIjgyMDci
LCJyaWdodC10by1sZWZ0IG1hcmsiXSxbIjE3MyIsInNvZnQgaHlwaGVuIl1dO2UuYWRkQnV0dG9u
KCJjaGFybWFwIix7aWNvbjoiY2hhcm1hcCIsdG9vbHRpcDoiU3BlY2lhbCBjaGFyYWN0ZXIiLG9u
Y2xpY2s6YX0pLGUuYWRkTWVudUl0ZW0oImNoYXJtYXAiLHtpY29uOiJjaGFybWFwIix0ZXh0OiJT
cGVjaWFsIGNoYXJhY3RlciIsb25jbGljazphLGNvbnRleHQ6Imluc2VydCJ9KX0pO3RpbnltY2Uu
UGx1Z2luTWFuYWdlci5hZGQoImNvZGUiLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG8oKXtlLndpbmRv
d01hbmFnZXIub3Blbih7dGl0bGU6IlNvdXJjZSBjb2RlIixib2R5Ont0eXBlOiJ0ZXh0Ym94Iixu
YW1lOiJjb2RlIixtdWx0aWxpbmU6ITAsbWluV2lkdGg6ZS5nZXRQYXJhbSgiY29kZV9kaWFsb2df
d2lkdGgiLDYwMCksbWluSGVpZ2h0OmUuZ2V0UGFyYW0oImNvZGVfZGlhbG9nX2hlaWdodCIsTWF0
aC5taW4odGlueW1jZS5ET00uZ2V0Vmlld1BvcnQoKS5oLTIwMCw1MDApKSx2YWx1ZTplLmdldENv
bnRlbnQoe3NvdXJjZV92aWV3OiEwfSksc3BlbGxjaGVjazohMSxzdHlsZToiZGlyZWN0aW9uOiBs
dHI7IHRleHQtYWxpZ246IGxlZnQifSxvblN1Ym1pdDpmdW5jdGlvbihvKXtlLmZvY3VzKCksZS51
bmRvTWFuYWdlci50cmFuc2FjdChmdW5jdGlvbigpe2Uuc2V0Q29udGVudChvLmRhdGEuY29kZSl9
KSxlLnNlbGVjdGlvbi5zZXRDdXJzb3JMb2NhdGlvbigpLGUubm9kZUNoYW5nZWQoKX19KX1lLmFk
ZENvbW1hbmQoIm1jZUNvZGVFZGl0b3IiLG8pLGUuYWRkQnV0dG9uKCJjb2RlIix7aWNvbjoiY29k
ZSIsdG9vbHRpcDoiU291cmNlIGNvZGUiLG9uY2xpY2s6b30pLGUuYWRkTWVudUl0ZW0oImNvZGUi
LHtpY29uOiJjb2RlIix0ZXh0OiJTb3VyY2UgY29kZSIsY29udGV4dDoidG9vbHMiLG9uY2xpY2s6
b30pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiY29udGV4dG1lbnUiLGZ1bmN0aW9uKGUp
e3ZhciBuLHQ9ZS5zZXR0aW5ncy5jb250ZXh0bWVudV9uZXZlcl91c2VfbmF0aXZlO2Uub24oImNv
bnRleHRtZW51IixmdW5jdGlvbihpKXt2YXIgbztpZighaS5jdHJsS2V5fHx0KXtpZihpLnByZXZl
bnREZWZhdWx0KCksbz1lLnNldHRpbmdzLmNvbnRleHRtZW51fHwibGluayBpbWFnZSBpbnNlcnR0
YWJsZSB8IGNlbGwgcm93IGNvbHVtbiBkZWxldGV0YWJsZSIsbiluLnNob3coKTtlbHNle3ZhciBj
PVtdO3RpbnltY2UuZWFjaChvLnNwbGl0KC9bICxdLyksZnVuY3Rpb24obil7dmFyIHQ9ZS5tZW51
SXRlbXNbbl07InwiPT1uJiYodD17dGV4dDpufSksdCYmKHQuc2hvcnRjdXQ9IiIsYy5wdXNoKHQp
KX0pO2Zvcih2YXIgYT0wO2E8Yy5sZW5ndGg7YSsrKSJ8Ij09Y1thXS50ZXh0JiYoMD09PWF8fGE9
PWMubGVuZ3RoLTEpJiZjLnNwbGljZShhLDEpO249bmV3IHRpbnltY2UudWkuTWVudSh7aXRlbXM6
Yyxjb250ZXh0OiJjb250ZXh0bWVudSJ9KS5hZGRDbGFzcygiY29udGV4dG1lbnUiKS5yZW5kZXJU
bygpLGUub24oInJlbW92ZSIsZnVuY3Rpb24oKXtuLnJlbW92ZSgpLG49bnVsbH0pfXZhciBsPXt4
OmkucGFnZVgseTppLnBhZ2VZfTtlLmlubGluZXx8KGw9dGlueW1jZS5ET00uZ2V0UG9zKGUuZ2V0
Q29udGVudEFyZWFDb250YWluZXIoKSksbC54Kz1pLmNsaWVudFgsbC55Kz1pLmNsaWVudFkpLG4u
bW92ZVRvKGwueCxsLnkpfX0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiZGlyZWN0aW9u
YWxpdHkiLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIGksbj10LmRvbSxyPXQuc2VsZWN0
aW9uLmdldFNlbGVjdGVkQmxvY2tzKCk7ci5sZW5ndGgmJihpPW4uZ2V0QXR0cmliKHJbMF0sImRp
ciIpLHRpbnltY2UuZWFjaChyLGZ1bmN0aW9uKHQpe24uZ2V0UGFyZW50KHQucGFyZW50Tm9kZSwi
KltkaXI9JyIrZSsiJ10iLG4uZ2V0Um9vdCgpKXx8KGkhPWU/bi5zZXRBdHRyaWIodCwiZGlyIixl
KTpuLnNldEF0dHJpYih0LCJkaXIiLG51bGwpKX0pLHQubm9kZUNoYW5nZWQoKSl9ZnVuY3Rpb24g
aSh0KXt2YXIgZT1bXTtyZXR1cm4gdGlueW1jZS5lYWNoKCJoMSBoMiBoMyBoNCBoNSBoNiBkaXYg
cCIuc3BsaXQoIiAiKSxmdW5jdGlvbihpKXtlLnB1c2goaSsiW2Rpcj0iK3QrIl0iKX0pLGUuam9p
bigiLCIpfXQuYWRkQ29tbWFuZCgibWNlRGlyZWN0aW9uTFRSIixmdW5jdGlvbigpe2UoImx0ciIp
fSksdC5hZGRDb21tYW5kKCJtY2VEaXJlY3Rpb25SVEwiLGZ1bmN0aW9uKCl7ZSgicnRsIil9KSx0
LmFkZEJ1dHRvbigibHRyIix7dGl0bGU6IkxlZnQgdG8gcmlnaHQiLGNtZDoibWNlRGlyZWN0aW9u
TFRSIixzdGF0ZVNlbGVjdG9yOmkoImx0ciIpfSksdC5hZGRCdXR0b24oInJ0bCIse3RpdGxlOiJS
aWdodCB0byBsZWZ0IixjbWQ6Im1jZURpcmVjdGlvblJUTCIsc3RhdGVTZWxlY3RvcjppKCJydGwi
KX0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiZW1vdGljb25zIixmdW5jdGlvbih0LGUp
e2Z1bmN0aW9uIGEoKXt2YXIgdDtyZXR1cm4gdD0nPHRhYmxlIHJvbGU9Imxpc3QiIGNsYXNzPSJt
Y2UtZ3JpZCI+Jyx0aW55bWNlLmVhY2goaSxmdW5jdGlvbihhKXt0Kz0iPHRyPiIsdGlueW1jZS5l
YWNoKGEsZnVuY3Rpb24oYSl7dmFyIGk9ZSsiL2ltZy9zbWlsZXktIithKyIuZ2lmIjt0Kz0nPHRk
PjxhIGhyZWY9IiMiIGRhdGEtbWNlLXVybD0iJytpKyciIGRhdGEtbWNlLWFsdD0iJythKyciIHRh
YmluZGV4PSItMSIgcm9sZT0ib3B0aW9uIiBhcmlhLWxhYmVsPSInK2ErJyI+PGltZyBzcmM9Iicr
aSsnIiBzdHlsZT0id2lkdGg6IDE4cHg7IGhlaWdodDogMThweCIgcm9sZT0icHJlc2VudGF0aW9u
IiAvPjwvYT48L3RkPid9KSx0Kz0iPC90cj4ifSksdCs9IjwvdGFibGU+In12YXIgaT1bWyJjb29s
IiwiY3J5IiwiZW1iYXJhc3NlZCIsImZvb3QtaW4tbW91dGgiXSxbImZyb3duIiwiaW5ub2NlbnQi
LCJraXNzIiwibGF1Z2hpbmciXSxbIm1vbmV5LW1vdXRoIiwic2VhbGVkIiwic21pbGUiLCJzdXJw
cmlzZWQiXSxbInRvbmd1ZS1vdXQiLCJ1bmRlY2lkZWQiLCJ3aW5rIiwieWVsbCJdXTt0LmFkZEJ1
dHRvbigiZW1vdGljb25zIix7dHlwZToicGFuZWxidXR0b24iLHBhbmVsOntyb2xlOiJhcHBsaWNh
dGlvbiIsYXV0b2hpZGU6ITAsaHRtbDphLG9uY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIGE9dC5kb20u
Z2V0UGFyZW50KGUudGFyZ2V0LCJhIik7YSYmKHQuaW5zZXJ0Q29udGVudCgnPGltZyBzcmM9Iicr
YS5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXVybCIpKyciIGFsdD0iJythLmdldEF0dHJpYnV0ZSgi
ZGF0YS1tY2UtYWx0IikrJyIgLz4nKSx0aGlzLmhpZGUoKSl9fSx0b29sdGlwOiJFbW90aWNvbnMi
fSl9KTt0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJmdWxscGFnZSIsZnVuY3Rpb24oZSl7ZnVu
Y3Rpb24gdCgpe3ZhciB0PW4oKTtlLndpbmRvd01hbmFnZXIub3Blbih7dGl0bGU6IkRvY3VtZW50
IHByb3BlcnRpZXMiLGRhdGE6dCxkZWZhdWx0czp7dHlwZToidGV4dGJveCIsc2l6ZTo0MH0sYm9k
eTpbe25hbWU6InRpdGxlIixsYWJlbDoiVGl0bGUifSx7bmFtZToia2V5d29yZHMiLGxhYmVsOiJL
ZXl3b3JkcyJ9LHtuYW1lOiJkZXNjcmlwdGlvbiIsbGFiZWw6IkRlc2NyaXB0aW9uIn0se25hbWU6
InJvYm90cyIsbGFiZWw6IlJvYm90cyJ9LHtuYW1lOiJhdXRob3IiLGxhYmVsOiJBdXRob3IifSx7
bmFtZToiZG9jZW5jb2RpbmciLGxhYmVsOiJFbmNvZGluZyJ9XSxvblN1Ym1pdDpmdW5jdGlvbihl
KXtsKHRpbnltY2UuZXh0ZW5kKHQsZS5kYXRhKSl9fSl9ZnVuY3Rpb24gbigpe2Z1bmN0aW9uIHQo
ZSx0KXt2YXIgbj1lLmF0dHIodCk7cmV0dXJuIG58fCIifXZhciBuLGwsYT1pKCkscj17fTtyZXR1
cm4gci5mb250ZmFjZT1lLmdldFBhcmFtKCJmdWxscGFnZV9kZWZhdWx0X2ZvbnRmYWNlIiwiIiks
ci5mb250c2l6ZT1lLmdldFBhcmFtKCJmdWxscGFnZV9kZWZhdWx0X2ZvbnRzaXplIiwiIiksbj1h
LmZpcnN0Q2hpbGQsNz09bi50eXBlJiYoci54bWxfcGk9ITAsbD0vZW5jb2Rpbmc9IihbXiJdKyki
Ly5leGVjKG4udmFsdWUpLGwmJihyLmRvY2VuY29kaW5nPWxbMV0pKSxuPWEuZ2V0QWxsKCIjZG9j
dHlwZSIpWzBdLG4mJihyLmRvY3R5cGU9IjwhRE9DVFlQRSIrbi52YWx1ZSsiPiIpLG49YS5nZXRB
bGwoInRpdGxlIilbMF0sbiYmbi5maXJzdENoaWxkJiYoci50aXRsZT1uLmZpcnN0Q2hpbGQudmFs
dWUpLHMoYS5nZXRBbGwoIm1ldGEiKSxmdW5jdGlvbihlKXt2YXIgdCxuPWUuYXR0cigibmFtZSIp
LGw9ZS5hdHRyKCJodHRwLWVxdWl2Iik7bj9yW24udG9Mb3dlckNhc2UoKV09ZS5hdHRyKCJjb250
ZW50Iik6IkNvbnRlbnQtVHlwZSI9PWwmJih0PS9jaGFyc2V0XHMqPVxzKiguKilccyovZ2kuZXhl
YyhlLmF0dHIoImNvbnRlbnQiKSksdCYmKHIuZG9jZW5jb2Rpbmc9dFsxXSkpfSksbj1hLmdldEFs
bCgiaHRtbCIpWzBdLG4mJihyLmxhbmdjb2RlPXQobiwibGFuZyIpfHx0KG4sInhtbDpsYW5nIikp
LHIuc3R5bGVzaGVldHM9W10sdGlueW1jZS5lYWNoKGEuZ2V0QWxsKCJsaW5rIiksZnVuY3Rpb24o
ZSl7InN0eWxlc2hlZXQiPT1lLmF0dHIoInJlbCIpJiZyLnN0eWxlc2hlZXRzLnB1c2goZS5hdHRy
KCJocmVmIikpfSksbj1hLmdldEFsbCgiYm9keSIpWzBdLG4mJihyLmxhbmdkaXI9dChuLCJkaXIi
KSxyLnN0eWxlPXQobiwic3R5bGUiKSxyLnZpc2l0ZWRfY29sb3I9dChuLCJ2bGluayIpLHIubGlu
a19jb2xvcj10KG4sImxpbmsiKSxyLmFjdGl2ZV9jb2xvcj10KG4sImFsaW5rIikpLHJ9ZnVuY3Rp
b24gbCh0KXtmdW5jdGlvbiBuKGUsdCxuKXtlLmF0dHIodCxuP246dm9pZCAwKX1mdW5jdGlvbiBs
KGUpe3IuZmlyc3RDaGlsZD9yLmluc2VydChlLHIuZmlyc3RDaGlsZCk6ci5hcHBlbmQoZSl9dmFy
IGEscixvLGMsdSxmPWUuZG9tO2E9aSgpLHI9YS5nZXRBbGwoImhlYWQiKVswXSxyfHwoYz1hLmdl
dEFsbCgiaHRtbCIpWzBdLHI9bmV3IG0oImhlYWQiLDEpLGMuZmlyc3RDaGlsZD9jLmluc2VydChy
LGMuZmlyc3RDaGlsZCwhMCk6Yy5hcHBlbmQocikpLGM9YS5maXJzdENoaWxkLHQueG1sX3BpPyh1
PSd2ZXJzaW9uPSIxLjAiJyx0LmRvY2VuY29kaW5nJiYodSs9JyBlbmNvZGluZz0iJyt0LmRvY2Vu
Y29kaW5nKyciJyksNyE9Yy50eXBlJiYoYz1uZXcgbSgieG1sIiw3KSxhLmluc2VydChjLGEuZmly
c3RDaGlsZCwhMCkpLGMudmFsdWU9dSk6YyYmNz09Yy50eXBlJiZjLnJlbW92ZSgpLGM9YS5nZXRB
bGwoIiNkb2N0eXBlIilbMF0sdC5kb2N0eXBlPyhjfHwoYz1uZXcgbSgiI2RvY3R5cGUiLDEwKSx0
LnhtbF9waT9hLmluc2VydChjLGEuZmlyc3RDaGlsZCk6bChjKSksYy52YWx1ZT10LmRvY3R5cGUu
c3Vic3RyaW5nKDksdC5kb2N0eXBlLmxlbmd0aC0xKSk6YyYmYy5yZW1vdmUoKSxjPW51bGwscyhh
LmdldEFsbCgibWV0YSIpLGZ1bmN0aW9uKGUpeyJDb250ZW50LVR5cGUiPT1lLmF0dHIoImh0dHAt
ZXF1aXYiKSYmKGM9ZSl9KSx0LmRvY2VuY29kaW5nPyhjfHwoYz1uZXcgbSgibWV0YSIsMSksYy5h
dHRyKCJodHRwLWVxdWl2IiwiQ29udGVudC1UeXBlIiksYy5zaG9ydEVuZGVkPSEwLGwoYykpLGMu
YXR0cigiY29udGVudCIsInRleHQvaHRtbDsgY2hhcnNldD0iK3QuZG9jZW5jb2RpbmcpKTpjLnJl
bW92ZSgpLGM9YS5nZXRBbGwoInRpdGxlIilbMF0sdC50aXRsZT8oYz9jLmVtcHR5KCk6KGM9bmV3
IG0oInRpdGxlIiwxKSxsKGMpKSxjLmFwcGVuZChuZXcgbSgiI3RleHQiLDMpKS52YWx1ZT10LnRp
dGxlKTpjJiZjLnJlbW92ZSgpLHMoImtleXdvcmRzLGRlc2NyaXB0aW9uLGF1dGhvcixjb3B5cmln
aHQscm9ib3RzIi5zcGxpdCgiLCIpLGZ1bmN0aW9uKGUpe3ZhciBuLGkscj1hLmdldEFsbCgibWV0
YSIpLG89dFtlXTtmb3Iobj0wO248ci5sZW5ndGg7bisrKWlmKGk9cltuXSxpLmF0dHIoIm5hbWUi
KT09ZSlyZXR1cm4gdm9pZChvP2kuYXR0cigiY29udGVudCIsbyk6aS5yZW1vdmUoKSk7byYmKGM9
bmV3IG0oIm1ldGEiLDEpLGMuYXR0cigibmFtZSIsZSksYy5hdHRyKCJjb250ZW50IixvKSxjLnNo
b3J0RW5kZWQ9ITAsbChjKSl9KTt2YXIgZz17fTt0aW55bWNlLmVhY2goYS5nZXRBbGwoImxpbmsi
KSxmdW5jdGlvbihlKXsic3R5bGVzaGVldCI9PWUuYXR0cigicmVsIikmJihnW2UuYXR0cigiaHJl
ZiIpXT1lKX0pLHRpbnltY2UuZWFjaCh0LnN0eWxlc2hlZXRzLGZ1bmN0aW9uKGUpe2dbZV18fChj
PW5ldyBtKCJsaW5rIiwxKSxjLmF0dHIoe3JlbDoic3R5bGVzaGVldCIsdGV4dDoidGV4dC9jc3Mi
LGhyZWY6ZX0pLGMuc2hvcnRFbmRlZD0hMCxsKGMpKSxkZWxldGUgZ1tlXX0pLHRpbnltY2UuZWFj
aChnLGZ1bmN0aW9uKGUpe2UucmVtb3ZlKCl9KSxjPWEuZ2V0QWxsKCJib2R5IilbMF0sYyYmKG4o
YywiZGlyIix0LmxhbmdkaXIpLG4oYywic3R5bGUiLHQuc3R5bGUpLG4oYywidmxpbmsiLHQudmlz
aXRlZF9jb2xvciksbihjLCJsaW5rIix0LmxpbmtfY29sb3IpLG4oYywiYWxpbmsiLHQuYWN0aXZl
X2NvbG9yKSxmLnNldEF0dHJpYnMoZS5nZXRCb2R5KCkse3N0eWxlOnQuc3R5bGUsZGlyOnQuZGly
LHZMaW5rOnQudmlzaXRlZF9jb2xvcixsaW5rOnQubGlua19jb2xvcixhTGluazp0LmFjdGl2ZV9j
b2xvcn0pKSxjPWEuZ2V0QWxsKCJodG1sIilbMF0sYyYmKG4oYywibGFuZyIsdC5sYW5nY29kZSks
bihjLCJ4bWw6bGFuZyIsdC5sYW5nY29kZSkpLHIuZmlyc3RDaGlsZHx8ci5yZW1vdmUoKSxvPW5l
dyB0aW55bWNlLmh0bWwuU2VyaWFsaXplcih7dmFsaWRhdGU6ITEsaW5kZW50OiEwLGFwcGx5X3Nv
dXJjZV9mb3JtYXR0aW5nOiEwLGluZGVudF9iZWZvcmU6ImhlYWQsaHRtbCxib2R5LG1ldGEsdGl0
bGUsc2NyaXB0LGxpbmssc3R5bGUiLGluZGVudF9hZnRlcjoiaGVhZCxodG1sLGJvZHksbWV0YSx0
aXRsZSxzY3JpcHQsbGluayxzdHlsZSJ9KS5zZXJpYWxpemUoYSksZD1vLnN1YnN0cmluZygwLG8u
aW5kZXhPZigiPC9ib2R5PiIpKX1mdW5jdGlvbiBpKCl7cmV0dXJuIG5ldyB0aW55bWNlLmh0bWwu
RG9tUGFyc2VyKHt2YWxpZGF0ZTohMSxyb290X25hbWU6IiNkb2N1bWVudCJ9KS5wYXJzZShkKX1m
dW5jdGlvbiBhKHQpe2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUucmVwbGFjZSgvPFwvP1tBLVpdKy9n
LGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9KX12YXIgbCxhLG8sbSx1PXQuY29u
dGVudCxmPSIiLGc9ZS5kb207aWYoIXQuc2VsZWN0aW9uJiYhKCJyYXciPT10LmZvcm1hdCYmZHx8
dC5zb3VyY2VfdmlldyYmZS5nZXRQYXJhbSgiZnVsbHBhZ2VfaGlkZV9pbl9zb3VyY2VfdmlldyIp
KSl7dT11LnJlcGxhY2UoLzwoXC8/KUJPRFkvZ2ksIjwkMWJvZHkiKSxsPXUuaW5kZXhPZigiPGJv
ZHkiKSwtMSE9bD8obD11LmluZGV4T2YoIj4iLGwpLGQ9bih1LnN1YnN0cmluZygwLGwrMSkpLGE9
dS5pbmRleE9mKCI8L2JvZHkiLGwpLC0xPT1hJiYoYT11Lmxlbmd0aCksdC5jb250ZW50PXUuc3Vi
c3RyaW5nKGwrMSxhKSxjPW4odS5zdWJzdHJpbmcoYSkpKTooZD1yKCksYz0iXG48L2JvZHk+XG48
L2h0bWw+Iiksbz1pKCkscyhvLmdldEFsbCgic3R5bGUiKSxmdW5jdGlvbihlKXtlLmZpcnN0Q2hp
bGQmJihmKz1lLmZpcnN0Q2hpbGQudmFsdWUpfSksbT1vLmdldEFsbCgiYm9keSIpWzBdLG0mJmcu
c2V0QXR0cmlicyhlLmdldEJvZHkoKSx7c3R5bGU6bS5hdHRyKCJzdHlsZSIpfHwiIixkaXI6bS5h
dHRyKCJkaXIiKXx8IiIsdkxpbms6bS5hdHRyKCJ2bGluayIpfHwiIixsaW5rOm0uYXR0cigibGlu
ayIpfHwiIixhTGluazptLmF0dHIoImFsaW5rIil8fCIifSksZy5yZW1vdmUoImZ1bGxwYWdlX3N0
eWxlcyIpO3ZhciB5PWUuZ2V0RG9jKCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXTtm
JiYoZy5hZGQoeSwic3R5bGUiLHtpZDoiZnVsbHBhZ2Vfc3R5bGVzIn0sZiksbT1nLmdldCgiZnVs
bHBhZ2Vfc3R5bGVzIiksbS5zdHlsZVNoZWV0JiYobS5zdHlsZVNoZWV0LmNzc1RleHQ9ZikpO3Zh
ciBoPXt9O3RpbnltY2UuZWFjaCh5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksZnVuY3Rp
b24oZSl7InN0eWxlc2hlZXQiPT1lLnJlbCYmZS5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLWZ1bGxw
YWdlIikmJihoW2UuaHJlZl09ZSl9KSx0aW55bWNlLmVhY2goby5nZXRBbGwoImxpbmsiKSxmdW5j
dGlvbihlKXt2YXIgdD1lLmF0dHIoImhyZWYiKTtoW3RdfHwic3R5bGVzaGVldCIhPWUuYXR0cigi
cmVsIil8fGcuYWRkKHksImxpbmsiLHtyZWw6InN0eWxlc2hlZXQiLHRleHQ6InRleHQvY3NzIixo
cmVmOnQsImRhdGEtbWNlLWZ1bGxwYWdlIjoiMSJ9KSxkZWxldGUgaFt0XX0pLHRpbnltY2UuZWFj
aChoLGZ1bmN0aW9uKGUpe2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pfX1mdW5jdGlvbiBy
KCl7dmFyIHQsbj0iIixsPSIiO3JldHVybiBlLmdldFBhcmFtKCJmdWxscGFnZV9kZWZhdWx0X3ht
bF9waSIpJiYobis9Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IicrZS5nZXRQYXJhbSgi
ZnVsbHBhZ2VfZGVmYXVsdF9lbmNvZGluZyIsIklTTy04ODU5LTEiKSsnIiA/PlxuJyksbis9ZS5n
ZXRQYXJhbSgiZnVsbHBhZ2VfZGVmYXVsdF9kb2N0eXBlIiwiPCFET0NUWVBFIGh0bWw+Iiksbis9
IlxuPGh0bWw+XG48aGVhZD5cbiIsKHQ9ZS5nZXRQYXJhbSgiZnVsbHBhZ2VfZGVmYXVsdF90aXRs
ZSIpKSYmKG4rPSI8dGl0bGU+Iit0KyI8L3RpdGxlPlxuIiksKHQ9ZS5nZXRQYXJhbSgiZnVsbHBh
Z2VfZGVmYXVsdF9lbmNvZGluZyIpKSYmKG4rPSc8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD0nK3QrJyIgLz5cbicpLCh0PWUuZ2V0UGFy
YW0oImZ1bGxwYWdlX2RlZmF1bHRfZm9udF9mYW1pbHkiKSkmJihsKz0iZm9udC1mYW1pbHk6ICIr
dCsiOyIpLCh0PWUuZ2V0UGFyYW0oImZ1bGxwYWdlX2RlZmF1bHRfZm9udF9zaXplIikpJiYobCs9
ImZvbnQtc2l6ZTogIit0KyI7IiksKHQ9ZS5nZXRQYXJhbSgiZnVsbHBhZ2VfZGVmYXVsdF90ZXh0
X2NvbG9yIikpJiYobCs9ImNvbG9yOiAiK3QrIjsiKSxuKz0iPC9oZWFkPlxuPGJvZHkiKyhsPycg
c3R5bGU9IicrbCsnIic6IiIpKyI+XG4ifWZ1bmN0aW9uIG8odCl7dC5zZWxlY3Rpb258fHQuc291
cmNlX3ZpZXcmJmUuZ2V0UGFyYW0oImZ1bGxwYWdlX2hpZGVfaW5fc291cmNlX3ZpZXciKXx8KHQu
Y29udGVudD10aW55bWNlLnRyaW0oZCkrIlxuIit0aW55bWNlLnRyaW0odC5jb250ZW50KSsiXG4i
K3RpbnltY2UudHJpbShjKSl9dmFyIGQsYyxzPXRpbnltY2UuZWFjaCxtPXRpbnltY2UuaHRtbC5O
b2RlO2UuYWRkQ29tbWFuZCgibWNlRnVsbFBhZ2VQcm9wZXJ0aWVzIix0KSxlLmFkZEJ1dHRvbigi
ZnVsbHBhZ2UiLHt0aXRsZToiRG9jdW1lbnQgcHJvcGVydGllcyIsY21kOiJtY2VGdWxsUGFnZVBy
b3BlcnRpZXMifSksZS5hZGRNZW51SXRlbSgiZnVsbHBhZ2UiLHt0ZXh0OiJEb2N1bWVudCBwcm9w
ZXJ0aWVzIixjbWQ6Im1jZUZ1bGxQYWdlUHJvcGVydGllcyIsY29udGV4dDoiZmlsZSJ9KSxlLm9u
KCJCZWZvcmVTZXRDb250ZW50IixhKSxlLm9uKCJHZXRDb250ZW50IixvKX0pO3RpbnltY2UuUGx1
Z2luTWFuYWdlci5hZGQoImZ1bGxzY3JlZW4iLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt2YXIg
ZSx0LG49d2luZG93LGk9ZG9jdW1lbnQsbD1pLmJvZHk7cmV0dXJuIGwub2Zmc2V0V2lkdGgmJihl
PWwub2Zmc2V0V2lkdGgsdD1sLm9mZnNldEhlaWdodCksbi5pbm5lcldpZHRoJiZuLmlubmVySGVp
Z2h0JiYoZT1uLmlubmVyV2lkdGgsdD1uLmlubmVySGVpZ2h0KSx7dzplLGg6dH19ZnVuY3Rpb24g
bigpe2Z1bmN0aW9uIG4oKXtkLnNldFN0eWxlKGEsImhlaWdodCIsdCgpLmgtKGguY2xpZW50SGVp
Z2h0LWEuY2xpZW50SGVpZ2h0KSl9dmFyIHUsaCxhLGYsbT1kb2N1bWVudC5ib2R5LGc9ZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50O3M9IXMsaD1lLmdldENvbnRhaW5lcigpLHU9aC5zdHlsZSxhPWUu
Z2V0Q29udGVudEFyZWFDb250YWluZXIoKS5maXJzdENoaWxkLGY9YS5zdHlsZSxzPyhpPWYud2lk
dGgsbD1mLmhlaWdodCxmLndpZHRoPWYuaGVpZ2h0PSIxMDAlIixjPXUud2lkdGgsbz11LmhlaWdo
dCx1LndpZHRoPXUuaGVpZ2h0PSIiLGQuYWRkQ2xhc3MobSwibWNlLWZ1bGxzY3JlZW4iKSxkLmFk
ZENsYXNzKGcsIm1jZS1mdWxsc2NyZWVuIiksZC5hZGRDbGFzcyhoLCJtY2UtZnVsbHNjcmVlbiIp
LGQuYmluZCh3aW5kb3csInJlc2l6ZSIsbiksbigpLHI9bik6KGYud2lkdGg9aSxmLmhlaWdodD1s
LGMmJih1LndpZHRoPWMpLG8mJih1LmhlaWdodD1vKSxkLnJlbW92ZUNsYXNzKG0sIm1jZS1mdWxs
c2NyZWVuIiksZC5yZW1vdmVDbGFzcyhnLCJtY2UtZnVsbHNjcmVlbiIpLGQucmVtb3ZlQ2xhc3Mo
aCwibWNlLWZ1bGxzY3JlZW4iKSxkLnVuYmluZCh3aW5kb3csInJlc2l6ZSIscikpLGUuZmlyZSgi
RnVsbHNjcmVlblN0YXRlQ2hhbmdlZCIse3N0YXRlOnN9KX12YXIgaSxsLHIsYyxvLHM9ITEsZD10
aW55bWNlLkRPTTtyZXR1cm4gZS5zZXR0aW5ncy5pbmxpbmU/dm9pZCAwOihlLm9uKCJpbml0Iixm
dW5jdGlvbigpe2UuYWRkU2hvcnRjdXQoIkN0cmwrQWx0K0YiLCIiLG4pfSksZS5vbigicmVtb3Zl
IixmdW5jdGlvbigpe3ImJmQudW5iaW5kKHdpbmRvdywicmVzaXplIixyKX0pLGUuYWRkQ29tbWFu
ZCgibWNlRnVsbFNjcmVlbiIsbiksZS5hZGRNZW51SXRlbSgiZnVsbHNjcmVlbiIse3RleHQ6IkZ1
bGxzY3JlZW4iLHNob3J0Y3V0OiJDdHJsK0FsdCtGIixzZWxlY3RhYmxlOiEwLG9uQ2xpY2s6bixv
blBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2Uub24oIkZ1bGxzY3JlZW5TdGF0ZUNo
YW5nZWQiLGZ1bmN0aW9uKGUpe3QuYWN0aXZlKGUuc3RhdGUpfSl9LGNvbnRleHQ6InZpZXcifSks
ZS5hZGRCdXR0b24oImZ1bGxzY3JlZW4iLHt0b29sdGlwOiJGdWxsc2NyZWVuIixzaG9ydGN1dDoi
Q3RybCtBbHQrRiIsb25DbGljazpuLG9uUG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7
ZS5vbigiRnVsbHNjcmVlblN0YXRlQ2hhbmdlZCIsZnVuY3Rpb24oZSl7dC5hY3RpdmUoZS5zdGF0
ZSl9KX19KSx7aXNGdWxsc2NyZWVuOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSl9KTt0aW55bWNlLlBs
dWdpbk1hbmFnZXIuYWRkKCJociIsZnVuY3Rpb24obil7bi5hZGRDb21tYW5kKCJJbnNlcnRIb3Jp
em9udGFsUnVsZSIsZnVuY3Rpb24oKXtuLmV4ZWNDb21tYW5kKCJtY2VJbnNlcnRDb250ZW50Iiwh
MSwiPGhyIC8+Iil9KSxuLmFkZEJ1dHRvbigiaHIiLHtpY29uOiJociIsdG9vbHRpcDoiSG9yaXpv
bnRhbCBsaW5lIixjbWQ6Ikluc2VydEhvcml6b250YWxSdWxlIn0pLG4uYWRkTWVudUl0ZW0oImhy
Iix7aWNvbjoiaHIiLHRleHQ6Ikhvcml6b250YWwgbGluZSIsY21kOiJJbnNlcnRIb3Jpem9udGFs
UnVsZSIsY29udGV4dDoiaW5zZXJ0In0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiaW1h
Z2UiLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0KXtmdW5jdGlvbiBpKGUsaSl7bi5wYXJlbnRO
b2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksdCh7d2lkdGg6ZSxoZWlnaHQ6aX0pfXZh
ciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO24ub25sb2FkPWZ1bmN0aW9uKCl7aShu
LmNsaWVudFdpZHRoLG4uY2xpZW50SGVpZ2h0KX0sbi5vbmVycm9yPWZ1bmN0aW9uKCl7aSgpfTt2
YXIgYT1uLnN0eWxlO2EudmlzaWJpbGl0eT0iaGlkZGVuIixhLnBvc2l0aW9uPSJmaXhlZCIsYS5i
b3R0b209YS5sZWZ0PTAsYS53aWR0aD1hLmhlaWdodD0iYXV0byIsZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChuKSxuLnNyYz1lfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHRpbnltY2UuZWFjaCh0LGZ1
bmN0aW9uKHQpe3QudGV4dFN0eWxlPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZm9ybWF0dGVyLmdldENz
c1RleHQoe2lubGluZToiaW1nIixjbGFzc2VzOlt0LnZhbHVlXX0pfX0pLHR9ZnVuY3Rpb24gbih0
KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1lLnNldHRpbmdzLmltYWdlX2xpc3Q7InN0cmluZyI9
PXR5cGVvZiBpP3RpbnltY2UudXRpbC5YSFIuc2VuZCh7dXJsOmksc3VjY2VzczpmdW5jdGlvbihl
KXt0KHRpbnltY2UudXRpbC5KU09OLnBhcnNlKGUpKX19KToiZnVuY3Rpb24iPT10eXBlb2YgaT9p
KHQpOnQoaSl9fWZ1bmN0aW9uIGEobil7ZnVuY3Rpb24gYSh0LGksbil7dmFyIGEsbD1bXTtyZXR1
cm4gdGlueW1jZS5lYWNoKGUuc2V0dGluZ3NbdF18fG4sZnVuY3Rpb24oZSl7dmFyIHQ9e3RleHQ6
ZS50ZXh0fHxlLnRpdGxlLHZhbHVlOmUudmFsdWV9O2wucHVzaCh0KSwoZltpXT09PWUudmFsdWV8
fCFhJiZlLnNlbGVjdGVkKSYmKGE9dCl9KSxhJiYhZltpXSYmKGZbaV09YS52YWx1ZSxhLnNlbGVj
dGVkPSEwKSxsfWZ1bmN0aW9uIGwoKXt2YXIgdD1be3RleHQ6Ik5vbmUiLHZhbHVlOiIifV07cmV0
dXJuIHRpbnltY2UuZWFjaChuLGZ1bmN0aW9uKGkpe3QucHVzaCh7dGV4dDppLnRleHR8fGkudGl0
bGUsdmFsdWU6ZS5jb252ZXJ0VVJMKGkudmFsdWV8fGkudXJsLCJzcmMiKSxtZW51OmkubWVudX0p
fSksdH1mdW5jdGlvbiBvKCl7dmFyIGUsdCxpLG47ZT11LmZpbmQoIiN3aWR0aCIpWzBdLHQ9dS5m
aW5kKCIjaGVpZ2h0IilbMF0saT1lLnZhbHVlKCksbj10LnZhbHVlKCksdS5maW5kKCIjY29uc3Ry
YWluIilbMF0uY2hlY2tlZCgpJiZnJiZoJiZpJiZuJiYoZyE9aT8obj1NYXRoLnJvdW5kKGkvZypu
KSx0LnZhbHVlKG4pKTooaT1NYXRoLnJvdW5kKG4vaCppKSxlLnZhbHVlKGkpKSksZz1pLGg9bn1m
dW5jdGlvbiBzKCl7ZnVuY3Rpb24gdCh0KXtmdW5jdGlvbiBpKCl7dC5vbmxvYWQ9dC5vbmVycm9y
PW51bGwsZS5zZWxlY3Rpb24uc2VsZWN0KHQpLGUubm9kZUNoYW5nZWQoKX10Lm9ubG9hZD1mdW5j
dGlvbigpe2Yud2lkdGh8fGYuaGVpZ2h0fHx5LnNldEF0dHJpYnModCx7d2lkdGg6dC5jbGllbnRX
aWR0aCxoZWlnaHQ6dC5jbGllbnRIZWlnaHR9KSxpKCl9LHQub25lcnJvcj1pfWQoKSxvKCksZj10
aW55bWNlLmV4dGVuZChmLHUudG9KU09OKCkpLGYuYWx0fHwoZi5hbHQ9IiIpLCIiPT09Zi53aWR0
aCYmKGYud2lkdGg9bnVsbCksIiI9PT1mLmhlaWdodCYmKGYuaGVpZ2h0PW51bGwpLGYuc3R5bGV8
fChmLnN0eWxlPW51bGwpLGY9e3NyYzpmLnNyYyxhbHQ6Zi5hbHQsd2lkdGg6Zi53aWR0aCxoZWln
aHQ6Zi5oZWlnaHQsc3R5bGU6Zi5zdHlsZSwiY2xhc3MiOmZbImNsYXNzIl19LGZbImNsYXNzIl18
fGRlbGV0ZSBmWyJjbGFzcyJdLGUudW5kb01hbmFnZXIudHJhbnNhY3QoZnVuY3Rpb24oKXtyZXR1
cm4gZi5zcmM/KHY/eS5zZXRBdHRyaWJzKHYsZik6KGYuaWQ9Il9fbWNlbmV3IixlLmZvY3VzKCks
ZS5zZWxlY3Rpb24uc2V0Q29udGVudCh5LmNyZWF0ZUhUTUwoImltZyIsZikpLHY9eS5nZXQoIl9f
bWNlbmV3IikseS5zZXRBdHRyaWIodiwiaWQiLG51bGwpKSx2b2lkIHQodikpOnZvaWQodiYmKHku
cmVtb3ZlKHYpLGUuZm9jdXMoKSxlLm5vZGVDaGFuZ2VkKCkpKX0pfWZ1bmN0aW9uIHIoZSl7cmV0
dXJuIGUmJihlPWUucmVwbGFjZSgvcHgkLywiIikpLGV9ZnVuY3Rpb24gYygpe20mJm0udmFsdWUo
ZS5jb252ZXJ0VVJMKHRoaXMudmFsdWUoKSwic3JjIikpLHQodGhpcy52YWx1ZSgpLGZ1bmN0aW9u
KGUpe2Uud2lkdGgmJmUuaGVpZ2h0JiYoZz1lLndpZHRoLGg9ZS5oZWlnaHQsdS5maW5kKCIjd2lk
dGgiKS52YWx1ZShnKSx1LmZpbmQoIiNoZWlnaHQiKS52YWx1ZShoKSl9KX1mdW5jdGlvbiBkKCl7
ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5sZW5ndGg+MCYmL15bMC05XSskLy50ZXN0KGUpJiYoZSs9
InB4IiksZX1pZihlLnNldHRpbmdzLmltYWdlX2FkdnRhYil7dmFyIGk9dS50b0pTT04oKSxuPXku
cGFyc2VTdHlsZShpLnN0eWxlKTtkZWxldGUgbi5tYXJnaW4sblsibWFyZ2luLXRvcCJdPW5bIm1h
cmdpbi1ib3R0b20iXT10KGkudnNwYWNlKSxuWyJtYXJnaW4tbGVmdCJdPW5bIm1hcmdpbi1yaWdo
dCJdPXQoaS5oc3BhY2UpLG5bImJvcmRlci13aWR0aCJdPXQoaS5ib3JkZXIpLHUuZmluZCgiI3N0
eWxlIikudmFsdWUoeS5zZXJpYWxpemVTdHlsZSh5LnBhcnNlU3R5bGUoeS5zZXJpYWxpemVTdHls
ZShuKSkpKX19dmFyIHUsZyxoLG0scCxmPXt9LHk9ZS5kb20sdj1lLnNlbGVjdGlvbi5nZXROb2Rl
KCk7Zz15LmdldEF0dHJpYih2LCJ3aWR0aCIpLGg9eS5nZXRBdHRyaWIodiwiaGVpZ2h0IiksIklN
RyIhPXYubm9kZU5hbWV8fHYuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1vYmplY3QiKXx8di5nZXRB
dHRyaWJ1dGUoImRhdGEtbWNlLXBsYWNlaG9sZGVyIik/dj1udWxsOmY9e3NyYzp5LmdldEF0dHJp
Yih2LCJzcmMiKSxhbHQ6eS5nZXRBdHRyaWIodiwiYWx0IiksImNsYXNzIjp5LmdldEF0dHJpYih2
LCJjbGFzcyIpLHdpZHRoOmcsaGVpZ2h0Omh9LG4mJihtPXt0eXBlOiJsaXN0Ym94IixsYWJlbDoi
SW1hZ2UgbGlzdCIsdmFsdWVzOmwoKSx2YWx1ZTpmLnNyYyYmZS5jb252ZXJ0VVJMKGYuc3JjLCJz
cmMiKSxvbnNlbGVjdDpmdW5jdGlvbihlKXt2YXIgdD11LmZpbmQoIiNhbHQiKTsoIXQudmFsdWUo
KXx8ZS5sYXN0Q29udHJvbCYmdC52YWx1ZSgpPT1lLmxhc3RDb250cm9sLnRleHQoKSkmJnQudmFs
dWUoZS5jb250cm9sLnRleHQoKSksdS5maW5kKCIjc3JjIikudmFsdWUoZS5jb250cm9sLnZhbHVl
KCkpfSxvblBvc3RSZW5kZXI6ZnVuY3Rpb24oKXttPXRoaXN9fSksZS5zZXR0aW5ncy5pbWFnZV9j
bGFzc19saXN0JiYocD17bmFtZToiY2xhc3MiLHR5cGU6Imxpc3Rib3giLGxhYmVsOiJDbGFzcyIs
dmFsdWVzOmkoYSgiaW1hZ2VfY2xhc3NfbGlzdCIsImNsYXNzIikpfSk7dmFyIGI9W3tuYW1lOiJz
cmMiLHR5cGU6ImZpbGVwaWNrZXIiLGZpbGV0eXBlOiJpbWFnZSIsbGFiZWw6IlNvdXJjZSIsYXV0
b2ZvY3VzOiEwLG9uY2hhbmdlOmN9LG1dO2Uuc2V0dGluZ3MuaW1hZ2VfZGVzY3JpcHRpb24hPT0h
MSYmYi5wdXNoKHtuYW1lOiJhbHQiLHR5cGU6InRleHRib3giLGxhYmVsOiJJbWFnZSBkZXNjcmlw
dGlvbiJ9KSxlLnNldHRpbmdzLmltYWdlX2RpbWVuc2lvbnMhPT0hMSYmYi5wdXNoKHt0eXBlOiJj
b250YWluZXIiLGxhYmVsOiJEaW1lbnNpb25zIixsYXlvdXQ6ImZsZXgiLGRpcmVjdGlvbjoicm93
IixhbGlnbjoiY2VudGVyIixzcGFjaW5nOjUsaXRlbXM6W3tuYW1lOiJ3aWR0aCIsdHlwZToidGV4
dGJveCIsbWF4TGVuZ3RoOjUsc2l6ZTozLG9uY2hhbmdlOm8sYXJpYUxhYmVsOiJXaWR0aCJ9LHt0
eXBlOiJsYWJlbCIsdGV4dDoieCJ9LHtuYW1lOiJoZWlnaHQiLHR5cGU6InRleHRib3giLG1heExl
bmd0aDo1LHNpemU6MyxvbmNoYW5nZTpvLGFyaWFMYWJlbDoiSGVpZ2h0In0se25hbWU6ImNvbnN0
cmFpbiIsdHlwZToiY2hlY2tib3giLGNoZWNrZWQ6ITAsdGV4dDoiQ29uc3RyYWluIHByb3BvcnRp
b25zIn1dfSksYi5wdXNoKHApLGUuc2V0dGluZ3MuaW1hZ2VfYWR2dGFiPyh2JiYoZi5oc3BhY2U9
cih2LnN0eWxlLm1hcmdpbkxlZnR8fHYuc3R5bGUubWFyZ2luUmlnaHQpLGYudnNwYWNlPXIodi5z
dHlsZS5tYXJnaW5Ub3B8fHYuc3R5bGUubWFyZ2luQm90dG9tKSxmLmJvcmRlcj1yKHYuc3R5bGUu
Ym9yZGVyV2lkdGgpLGYuc3R5bGU9ZS5kb20uc2VyaWFsaXplU3R5bGUoZS5kb20ucGFyc2VTdHls
ZShlLmRvbS5nZXRBdHRyaWIodiwic3R5bGUiKSkpKSx1PWUud2luZG93TWFuYWdlci5vcGVuKHt0
aXRsZToiSW5zZXJ0L2VkaXQgaW1hZ2UiLGRhdGE6Zixib2R5VHlwZToidGFicGFuZWwiLGJvZHk6
W3t0aXRsZToiR2VuZXJhbCIsdHlwZToiZm9ybSIsaXRlbXM6Yn0se3RpdGxlOiJBZHZhbmNlZCIs
dHlwZToiZm9ybSIscGFjazoic3RhcnQiLGl0ZW1zOlt7bGFiZWw6IlN0eWxlIixuYW1lOiJzdHls
ZSIsdHlwZToidGV4dGJveCJ9LHt0eXBlOiJmb3JtIixsYXlvdXQ6ImdyaWQiLHBhY2tWOiJzdGFy
dCIsY29sdW1uczoyLHBhZGRpbmc6MCxhbGlnbkg6WyJsZWZ0IiwicmlnaHQiXSxkZWZhdWx0czp7
dHlwZToidGV4dGJveCIsbWF4V2lkdGg6NTAsb25jaGFuZ2U6ZH0saXRlbXM6W3tsYWJlbDoiVmVy
dGljYWwgc3BhY2UiLG5hbWU6InZzcGFjZSJ9LHtsYWJlbDoiSG9yaXpvbnRhbCBzcGFjZSIsbmFt
ZToiaHNwYWNlIn0se2xhYmVsOiJCb3JkZXIiLG5hbWU6ImJvcmRlciJ9XX1dfV0sb25TdWJtaXQ6
c30pKTp1PWUud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiSW5zZXJ0L2VkaXQgaW1hZ2UiLGRh
dGE6Zixib2R5OmIsb25TdWJtaXQ6c30pfWUuYWRkQnV0dG9uKCJpbWFnZSIse2ljb246ImltYWdl
Iix0b29sdGlwOiJJbnNlcnQvZWRpdCBpbWFnZSIsb25jbGljazpuKGEpLHN0YXRlU2VsZWN0b3I6
ImltZzpub3QoW2RhdGEtbWNlLW9iamVjdF0sW2RhdGEtbWNlLXBsYWNlaG9sZGVyXSkifSksZS5h
ZGRNZW51SXRlbSgiaW1hZ2UiLHtpY29uOiJpbWFnZSIsdGV4dDoiSW5zZXJ0IGltYWdlIixvbmNs
aWNrOm4oYSksY29udGV4dDoiaW5zZXJ0IixwcmVwZW5kVG9Db250ZXh0OiEwfSl9KTt0aW55bWNl
LlBsdWdpbk1hbmFnZXIuYWRkKCJpbXBvcnRjc3MiLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7
cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUpe3JldHVybi0xIT09ZS5pbmRleE9m
KHQpfTp0IGluc3RhbmNlb2YgUmVnRXhwP2Z1bmN0aW9uKGUpe3JldHVybiB0LnRlc3QoZSl9OnR9
ZnVuY3Rpb24gbihlLG4pe2Z1bmN0aW9uIGkodCxlKXt2YXIgYyxvPXQuaHJlZjtpZihvJiZuKG8s
ZSkpe3ModC5pbXBvcnRzLGZ1bmN0aW9uKHQpe2kodCwhMCl9KTt0cnl7Yz10LmNzc1J1bGVzfHx0
LnJ1bGVzfWNhdGNoKGEpe31zKGMsZnVuY3Rpb24odCl7dC5zdHlsZVNoZWV0P2kodC5zdHlsZVNo
ZWV0LCEwKTp0LnNlbGVjdG9yVGV4dCYmcyh0LnNlbGVjdG9yVGV4dC5zcGxpdCgiLCIpLGZ1bmN0
aW9uKHQpe3IucHVzaCh0aW55bWNlLnRyaW0odCkpfSl9KX19dmFyIHI9W10sYz17fTtzKHQuY29u
dGVudENTUyxmdW5jdGlvbih0KXtjW3RdPSEwfSksbnx8KG49ZnVuY3Rpb24odCxlKXtyZXR1cm4g
ZXx8Y1t0XX0pO3RyeXtzKGUuc3R5bGVTaGVldHMsZnVuY3Rpb24odCl7aSh0KX0pfWNhdGNoKG8p
e31yZXR1cm4gcn1mdW5jdGlvbiBpKGUpe3ZhciBuLGk9L14oPzooW2EtejAtOVwtX10rKSk/KFwu
W2EtejAtOV9cLVwuXSspJC9pLmV4ZWMoZSk7aWYoaSl7dmFyIHI9aVsxXSxzPWlbMl0uc3Vic3Ry
KDEpLnNwbGl0KCIuIikuam9pbigiICIpLGM9dGlueW1jZS5tYWtlTWFwKCJhLGltZyIpO3JldHVy
biBpWzFdPyhuPXt0aXRsZTplfSx0LnNjaGVtYS5nZXRUZXh0QmxvY2tFbGVtZW50cygpW3JdP24u
YmxvY2s9cjp0LnNjaGVtYS5nZXRCbG9ja0VsZW1lbnRzKClbcl18fGNbci50b0xvd2VyQ2FzZSgp
XT9uLnNlbGVjdG9yPXI6bi5pbmxpbmU9cik6aVsyXSYmKG49e2lubGluZToic3BhbiIsdGl0bGU6
ZS5zdWJzdHIoMSksY2xhc3NlczpzfSksdC5zZXR0aW5ncy5pbXBvcnRjc3NfbWVyZ2VfY2xhc3Nl
cyE9PSExP24uY2xhc3Nlcz1zOm4uYXR0cmlidXRlcz17ImNsYXNzIjpzfSxufX12YXIgcj10aGlz
LHM9dGlueW1jZS5lYWNoO3Qub24oInJlbmRlckZvcm1hdHNNZW51IixmdW5jdGlvbihjKXt2YXIg
bz10LnNldHRpbmdzLGE9e30sbD1vLmltcG9ydGNzc19zZWxlY3Rvcl9jb252ZXJ0ZXJ8fGksZj1l
KG8uaW1wb3J0Y3NzX3NlbGVjdG9yX2ZpbHRlciksbT1jLmNvbnRyb2w7dC5zZXR0aW5ncy5pbXBv
cnRjc3NfYXBwZW5kfHxtLml0ZW1zKCkucmVtb3ZlKCk7dmFyIHU9W107dGlueW1jZS5lYWNoKG8u
aW1wb3J0Y3NzX2dyb3VwcyxmdW5jdGlvbih0KXt0PXRpbnltY2UuZXh0ZW5kKHt9LHQpLHQuZmls
dGVyPWUodC5maWx0ZXIpLHUucHVzaCh0KX0pLHMobihjLmRvY3x8dC5nZXREb2MoKSxlKG8uaW1w
b3J0Y3NzX2ZpbGVfZmlsdGVyKSksZnVuY3Rpb24oZSl7aWYoLTE9PT1lLmluZGV4T2YoIi5tY2Ut
IikmJiFhW2VdJiYoIWZ8fGYoZSkpKXt2YXIgbixpPWwuY2FsbChyLGUpO2lmKGkpe3ZhciBzPWku
bmFtZXx8dGlueW1jZS5ET00udW5pcXVlSWQoKTtpZih1KWZvcih2YXIgYz0wO2M8dS5sZW5ndGg7
YysrKWlmKCF1W2NdLmZpbHRlcnx8dVtjXS5maWx0ZXIoZSkpe3VbY10uaXRlbXx8KHVbY10uaXRl
bT17dGV4dDp1W2NdLnRpdGxlLG1lbnU6W119KSxuPXVbY10uaXRlbS5tZW51O2JyZWFrfXQuZm9y
bWF0dGVyLnJlZ2lzdGVyKHMsaSk7dmFyIG89dGlueW1jZS5leHRlbmQoe30sbS5zZXR0aW5ncy5p
dGVtRGVmYXVsdHMse3RleHQ6aS50aXRsZSxmb3JtYXQ6c30pO24/bi5wdXNoKG8pOm0uYWRkKG8p
fWFbZV09ITB9fSkscyh1LGZ1bmN0aW9uKHQpe20uYWRkKHQuaXRlbSl9KSxjLmNvbnRyb2wucmVu
ZGVyTmV3KCl9KSxyLmNvbnZlcnRTZWxlY3RvclRvRm9ybWF0PWl9KTt0aW55bWNlLlBsdWdpbk1h
bmFnZXIuYWRkKCJpbnNlcnRkYXRldGltZSIsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LGEpe2Z1
bmN0aW9uIG4oZSx0KXtpZihlPSIiK2UsZS5sZW5ndGg8dClmb3IodmFyIGE9MDthPHQtZS5sZW5n
dGg7YSsrKWU9IjAiK2U7cmV0dXJuIGV9cmV0dXJuIGE9YXx8bmV3IERhdGUsdD10LnJlcGxhY2Uo
IiVEIiwiJW0vJWQvJVkiKSx0PXQucmVwbGFjZSgiJXIiLCIlSTolTTolUyAlcCIpLHQ9dC5yZXBs
YWNlKCIlWSIsIiIrYS5nZXRGdWxsWWVhcigpKSx0PXQucmVwbGFjZSgiJXkiLCIiK2EuZ2V0WWVh
cigpKSx0PXQucmVwbGFjZSgiJW0iLG4oYS5nZXRNb250aCgpKzEsMikpLHQ9dC5yZXBsYWNlKCIl
ZCIsbihhLmdldERhdGUoKSwyKSksdD10LnJlcGxhY2UoIiVIIiwiIituKGEuZ2V0SG91cnMoKSwy
KSksdD10LnJlcGxhY2UoIiVNIiwiIituKGEuZ2V0TWludXRlcygpLDIpKSx0PXQucmVwbGFjZSgi
JVMiLCIiK24oYS5nZXRTZWNvbmRzKCksMikpLHQ9dC5yZXBsYWNlKCIlSSIsIiIrKChhLmdldEhv
dXJzKCkrMTEpJTEyKzEpKSx0PXQucmVwbGFjZSgiJXAiLCIiKyhhLmdldEhvdXJzKCk8MTI/IkFN
IjoiUE0iKSksdD10LnJlcGxhY2UoIiVCIiwiIitlLnRyYW5zbGF0ZShtW2EuZ2V0TW9udGgoKV0p
KSx0PXQucmVwbGFjZSgiJWIiLCIiK2UudHJhbnNsYXRlKGNbYS5nZXRNb250aCgpXSkpLHQ9dC5y
ZXBsYWNlKCIlQSIsIiIrZS50cmFuc2xhdGUoZFthLmdldERheSgpXSkpLHQ9dC5yZXBsYWNlKCIl
YSIsIiIrZS50cmFuc2xhdGUoaVthLmdldERheSgpXSkpLHQ9dC5yZXBsYWNlKCIlJSIsIiUiKX1m
dW5jdGlvbiBhKGEpe3ZhciBuPXQoYSk7aWYoZS5zZXR0aW5ncy5pbnNlcnRkYXRldGltZV9lbGVt
ZW50KXt2YXIgcjtyPXQoLyVbSE1TSXBdLy50ZXN0KGEpPyIlWS0lbS0lZFQlSDolTSI6IiVZLSVt
LSVkIiksbj0nPHRpbWUgZGF0ZXRpbWU9IicrcisnIj4nK24rIjwvdGltZT4iO3ZhciBpPWUuZG9t
LmdldFBhcmVudChlLnNlbGVjdGlvbi5nZXRTdGFydCgpLCJ0aW1lIik7aWYoaSlyZXR1cm4gdm9p
ZCBlLmRvbS5zZXRPdXRlckhUTUwoaSxuKX1lLmluc2VydENvbnRlbnQobil9dmFyIG4scixpPSJT
dW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgU3VuIi5zcGxpdCgiICIpLGQ9IlN1bmRheSBNb25k
YXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5IFN1bmRheSIuc3Bs
aXQoIiAiKSxjPSJKYW4gRmViIE1hciBBcHIgTWF5IEp1biBKdWwgQXVnIFNlcCBPY3QgTm92IERl
YyIuc3BsaXQoIiAiKSxtPSJKYW51YXJ5IEZlYnJ1YXJ5IE1hcmNoIEFwcmlsIE1heSBKdW5lIEp1
bHkgQXVndXN0IFNlcHRlbWJlciBPY3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIp
LHU9W107ZS5hZGRDb21tYW5kKCJtY2VJbnNlcnREYXRlIixmdW5jdGlvbigpe2EoZS5nZXRQYXJh
bSgiaW5zZXJ0ZGF0ZXRpbWVfZGF0ZWZvcm1hdCIsZS50cmFuc2xhdGUoIiVZLSVtLSVkIikpKX0p
LGUuYWRkQ29tbWFuZCgibWNlSW5zZXJ0VGltZSIsZnVuY3Rpb24oKXthKGUuZ2V0UGFyYW0oImlu
c2VydGRhdGV0aW1lX3RpbWVmb3JtYXQiLGUudHJhbnNsYXRlKCIlSDolTTolUyIpKSl9KSxlLmFk
ZEJ1dHRvbigiaW5zZXJ0ZGF0ZXRpbWUiLHt0eXBlOiJzcGxpdGJ1dHRvbiIsdGl0bGU6Ikluc2Vy
dCBkYXRlL3RpbWUiLG9uY2xpY2s6ZnVuY3Rpb24oKXthKG58fHIpfSxtZW51OnV9KSx0aW55bWNl
LmVhY2goZS5zZXR0aW5ncy5pbnNlcnRkYXRldGltZV9mb3JtYXRzfHxbIiVIOiVNOiVTIiwiJVkt
JW0tJWQiLCIlSTolTTolUyAlcCIsIiVEIl0sZnVuY3Rpb24oZSl7cnx8KHI9ZSksdS5wdXNoKHt0
ZXh0OnQoZSksb25jbGljazpmdW5jdGlvbigpe249ZSxhKGUpfX0pfSksZS5hZGRNZW51SXRlbSgi
aW5zZXJ0ZGF0ZXRpbWUiLHtpY29uOiJkYXRlIix0ZXh0OiJJbnNlcnQgZGF0ZS90aW1lIixtZW51
OnUsY29udGV4dDoiaW5zZXJ0In0pfSk7IWZ1bmN0aW9uKGUpe2Uub24oIkFkZEVkaXRvciIsZnVu
Y3Rpb24oZSl7ZS5lZGl0b3Iuc2V0dGluZ3MuaW5saW5lX3N0eWxlcz0hMX0pLGUuUGx1Z2luTWFu
YWdlci5hZGQoImxlZ2FjeW91dHB1dCIsZnVuY3Rpb24odCl7dC5vbigiaW5pdCIsZnVuY3Rpb24o
KXt2YXIgaT0icCxoMSxoMixoMyxoNCxoNSxoNix0ZCx0aCxkaXYsdWwsb2wsbGksdGFibGUsaW1n
IixuPWUuZXhwbG9kZSh0LnNldHRpbmdzLmZvbnRfc2l6ZV9zdHlsZV92YWx1ZXMpLGw9dC5zY2hl
bWE7dC5mb3JtYXR0ZXIucmVnaXN0ZXIoe2FsaWdubGVmdDp7c2VsZWN0b3I6aSxhdHRyaWJ1dGVz
OnthbGlnbjoibGVmdCJ9fSxhbGlnbmNlbnRlcjp7c2VsZWN0b3I6aSxhdHRyaWJ1dGVzOnthbGln
bjoiY2VudGVyIn19LGFsaWducmlnaHQ6e3NlbGVjdG9yOmksYXR0cmlidXRlczp7YWxpZ246InJp
Z2h0In19LGFsaWduanVzdGlmeTp7c2VsZWN0b3I6aSxhdHRyaWJ1dGVzOnthbGlnbjoianVzdGlm
eSJ9fSxib2xkOlt7aW5saW5lOiJiIixyZW1vdmU6ImFsbCJ9LHtpbmxpbmU6InN0cm9uZyIscmVt
b3ZlOiJhbGwifSx7aW5saW5lOiJzcGFuIixzdHlsZXM6e2ZvbnRXZWlnaHQ6ImJvbGQifX1dLGl0
YWxpYzpbe2lubGluZToiaSIscmVtb3ZlOiJhbGwifSx7aW5saW5lOiJlbSIscmVtb3ZlOiJhbGwi
fSx7aW5saW5lOiJzcGFuIixzdHlsZXM6e2ZvbnRTdHlsZToiaXRhbGljIn19XSx1bmRlcmxpbmU6
W3tpbmxpbmU6InUiLHJlbW92ZToiYWxsIn0se2lubGluZToic3BhbiIsc3R5bGVzOnt0ZXh0RGVj
b3JhdGlvbjoidW5kZXJsaW5lIn0sZXhhY3Q6ITB9XSxzdHJpa2V0aHJvdWdoOlt7aW5saW5lOiJz
dHJpa2UiLHJlbW92ZToiYWxsIn0se2lubGluZToic3BhbiIsc3R5bGVzOnt0ZXh0RGVjb3JhdGlv
bjoibGluZS10aHJvdWdoIn0sZXhhY3Q6ITB9XSxmb250bmFtZTp7aW5saW5lOiJmb250IixhdHRy
aWJ1dGVzOntmYWNlOiIldmFsdWUifX0sZm9udHNpemU6e2lubGluZToiZm9udCIsYXR0cmlidXRl
czp7c2l6ZTpmdW5jdGlvbih0KXtyZXR1cm4gZS5pbkFycmF5KG4sdC52YWx1ZSkrMX19fSxmb3Jl
Y29sb3I6e2lubGluZToiZm9udCIsYXR0cmlidXRlczp7Y29sb3I6IiV2YWx1ZSJ9fSxoaWxpdGVj
b2xvcjp7aW5saW5lOiJmb250IixzdHlsZXM6e2JhY2tncm91bmRDb2xvcjoiJXZhbHVlIn19fSks
ZS5lYWNoKCJiLGksdSxzdHJpa2UiLnNwbGl0KCIsIiksZnVuY3Rpb24oZSl7bC5hZGRWYWxpZEVs
ZW1lbnRzKGUrIlsqXSIpfSksbC5nZXRFbGVtZW50UnVsZSgiZm9udCIpfHxsLmFkZFZhbGlkRWxl
bWVudHMoImZvbnRbZmFjZXxzaXplfGNvbG9yfHN0eWxlXSIpLGUuZWFjaChpLnNwbGl0KCIsIiks
ZnVuY3Rpb24oZSl7dmFyIHQ9bC5nZXRFbGVtZW50UnVsZShlKTt0JiYodC5hdHRyaWJ1dGVzLmFs
aWdufHwodC5hdHRyaWJ1dGVzLmFsaWduPXt9LHQuYXR0cmlidXRlc09yZGVyLnB1c2goImFsaWdu
IikpKX0pfSl9KX0odGlueW1jZSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgibGluayIsZnVu
Y3Rpb24odCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10LnNldHRpbmdz
LmxpbmtfbGlzdDsic3RyaW5nIj09dHlwZW9mIG4/dGlueW1jZS51dGlsLlhIUi5zZW5kKHt1cmw6
bixzdWNjZXNzOmZ1bmN0aW9uKHQpe2UodGlueW1jZS51dGlsLkpTT04ucGFyc2UodCkpfX0pOiJm
dW5jdGlvbiI9PXR5cGVvZiBuP24oZSk6ZShuKX19ZnVuY3Rpb24gbihlKXtmdW5jdGlvbiBuKHQp
e3ZhciBlPWQuZmluZCgiI3RleHQiKTsoIWUudmFsdWUoKXx8dC5sYXN0Q29udHJvbCYmZS52YWx1
ZSgpPT10Lmxhc3RDb250cm9sLnRleHQoKSkmJmUudmFsdWUodC5jb250cm9sLnRleHQoKSksZC5m
aW5kKCIjaHJlZiIpLnZhbHVlKHQuY29udHJvbC52YWx1ZSgpKX1mdW5jdGlvbiBsKCl7dmFyIG49
W3t0ZXh0OiJOb25lIix2YWx1ZToiIn1dO3JldHVybiB0aW55bWNlLmVhY2goZSxmdW5jdGlvbihl
KXtuLnB1c2goe3RleHQ6ZS50ZXh0fHxlLnRpdGxlLHZhbHVlOnQuY29udmVydFVSTChlLnZhbHVl
fHxlLnVybCwiaHJlZiIpLG1lbnU6ZS5tZW51fSl9KSxufWZ1bmN0aW9uIGkoZSl7cmV0dXJuIHRp
bnltY2UuZWFjaChlLGZ1bmN0aW9uKGUpe2UudGV4dFN0eWxlPWZ1bmN0aW9uKCl7cmV0dXJuIHQu
Zm9ybWF0dGVyLmdldENzc1RleHQoe2lubGluZToiYSIsY2xhc3NlczpbZS52YWx1ZV19KX19KSxl
fWZ1bmN0aW9uIGEoZSxuLGwpe3ZhciBpLGE9W107cmV0dXJuIHRpbnltY2UuZWFjaCh0LnNldHRp
bmdzW2VdfHxsLGZ1bmN0aW9uKHQpe3ZhciBlPXt0ZXh0OnQudGV4dHx8dC50aXRsZSx2YWx1ZTp0
LnZhbHVlfTthLnB1c2goZSksKGJbbl09PT10LnZhbHVlfHwhaSYmdC5zZWxlY3RlZCkmJihpPWUp
fSksaSYmIWJbbl0mJihiW25dPWkudmFsdWUsaS5zZWxlY3RlZD0hMCksYX1mdW5jdGlvbiByKGUp
e3ZhciBsPVtdO3JldHVybiB0aW55bWNlLmVhY2godC5kb20uc2VsZWN0KCJhOm5vdChbaHJlZl0p
IiksZnVuY3Rpb24odCl7dmFyIG49dC5uYW1lfHx0LmlkO24mJmwucHVzaCh7dGV4dDpuLHZhbHVl
OiIjIituLHNlbGVjdGVkOi0xIT1lLmluZGV4T2YoIiMiK24pfSl9KSxsLmxlbmd0aD8obC51bnNo
aWZ0KHt0ZXh0OiJOb25lIix2YWx1ZToiIn0pLHtuYW1lOiJhbmNob3IiLHR5cGU6Imxpc3Rib3gi
LGxhYmVsOiJBbmNob3JzIix2YWx1ZXM6bCxvbnNlbGVjdDpufSk6dm9pZCAwfWZ1bmN0aW9uIG8o
KXtoJiZoLnZhbHVlKHQuY29udmVydFVSTCh0aGlzLnZhbHVlKCksImhyZWYiKSksIWYmJjA9PT1i
LnRleHQubGVuZ3RoJiZ4JiZ0aGlzLnBhcmVudCgpLnBhcmVudCgpLmZpbmQoIiN0ZXh0IilbMF0u
dmFsdWUodGhpcy52YWx1ZSgpKX1mdW5jdGlvbiBzKHQpe3ZhciBlPWsuZ2V0Q29udGVudCgpO2lm
KC88Ly50ZXN0KGUpJiYoIS9ePGEgW14+XSs+W148XSs8XC9hPiQvLnRlc3QoZSl8fC0xPT1lLmlu
ZGV4T2YoImhyZWY9IikpKXJldHVybiExO2lmKHQpe3ZhciBuLGw9dC5jaGlsZE5vZGVzO2lmKDA9
PT1sLmxlbmd0aClyZXR1cm4hMTtmb3Iobj1sLmxlbmd0aC0xO24+PTA7bi0tKWlmKDMhPWxbbl0u
bm9kZVR5cGUpcmV0dXJuITF9cmV0dXJuITB9dmFyIHUsYyxmLGQseCx2LGgsZyxtLHAseSxiPXt9
LGs9dC5zZWxlY3Rpb24sdz10LmRvbTt1PWsuZ2V0Tm9kZSgpLGM9dy5nZXRQYXJlbnQodSwiYVto
cmVmXSIpLHg9cygpLGIudGV4dD1mPWM/Yy5pbm5lclRleHR8fGMudGV4dENvbnRlbnQ6ay5nZXRD
b250ZW50KHtmb3JtYXQ6InRleHQifSksYi5ocmVmPWM/dy5nZXRBdHRyaWIoYywiaHJlZiIpOiIi
LGIudGFyZ2V0PWM/dy5nZXRBdHRyaWIoYywidGFyZ2V0Iik6dC5zZXR0aW5ncy5kZWZhdWx0X2xp
bmtfdGFyZ2V0fHxudWxsLGIucmVsPWM/dy5nZXRBdHRyaWIoYywicmVsIik6bnVsbCxiWyJjbGFz
cyJdPWM/dy5nZXRBdHRyaWIoYywiY2xhc3MiKTpudWxsLGIudGl0bGU9Yz93LmdldEF0dHJpYihj
LCJ0aXRsZSIpOiIiLHgmJih2PXtuYW1lOiJ0ZXh0Iix0eXBlOiJ0ZXh0Ym94IixzaXplOjQwLGxh
YmVsOiJUZXh0IHRvIGRpc3BsYXkiLG9uY2hhbmdlOmZ1bmN0aW9uKCl7Yi50ZXh0PXRoaXMudmFs
dWUoKX19KSxlJiYoaD17dHlwZToibGlzdGJveCIsbGFiZWw6IkxpbmsgbGlzdCIsdmFsdWVzOmwo
KSxvbnNlbGVjdDpuLHZhbHVlOnQuY29udmVydFVSTChiLmhyZWYsImhyZWYiKSxvblBvc3RSZW5k
ZXI6ZnVuY3Rpb24oKXtoPXRoaXN9fSksdC5zZXR0aW5ncy50YXJnZXRfbGlzdCE9PSExJiYobT17
bmFtZToidGFyZ2V0Iix0eXBlOiJsaXN0Ym94IixsYWJlbDoiVGFyZ2V0Iix2YWx1ZXM6YSgidGFy
Z2V0X2xpc3QiLCJ0YXJnZXQiLFt7dGV4dDoiTm9uZSIsdmFsdWU6IiJ9LHt0ZXh0OiJOZXcgd2lu
ZG93Iix2YWx1ZToiX2JsYW5rIn1dKX0pLHQuc2V0dGluZ3MucmVsX2xpc3QmJihnPXtuYW1lOiJy
ZWwiLHR5cGU6Imxpc3Rib3giLGxhYmVsOiJSZWwiLHZhbHVlczphKCJyZWxfbGlzdCIsInJlbCIs
W3t0ZXh0OiJOb25lIix2YWx1ZToiIn1dKX0pLHQuc2V0dGluZ3MubGlua19jbGFzc19saXN0JiYo
cD17bmFtZToiY2xhc3MiLHR5cGU6Imxpc3Rib3giLGxhYmVsOiJDbGFzcyIsdmFsdWVzOmkoYSgi
bGlua19jbGFzc19saXN0IiwiY2xhc3MiKSl9KSx0LnNldHRpbmdzLmxpbmtfdGl0bGUhPT0hMSYm
KHk9e25hbWU6InRpdGxlIix0eXBlOiJ0ZXh0Ym94IixsYWJlbDoiVGl0bGUiLHZhbHVlOmIudGl0
bGV9KSxkPXQud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiSW5zZXJ0IGxpbmsiLGRhdGE6Yixi
b2R5Olt7bmFtZToiaHJlZiIsdHlwZToiZmlsZXBpY2tlciIsZmlsZXR5cGU6ImZpbGUiLHNpemU6
NDAsYXV0b2ZvY3VzOiEwLGxhYmVsOiJVcmwiLG9uY2hhbmdlOm8sb25rZXl1cDpvfSx2LHkscihi
LmhyZWYpLGgsZyxtLHBdLG9uU3VibWl0OmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oZSxuKXt2YXIg
bD10LnNlbGVjdGlvbi5nZXRSbmcoKTt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3Qud2lu
ZG93TWFuYWdlci5jb25maXJtKGUsZnVuY3Rpb24oZSl7dC5zZWxlY3Rpb24uc2V0Um5nKGwpLG4o
ZSl9KX0sMCl9ZnVuY3Rpb24gbCgpe3ZhciBlPXtocmVmOmksdGFyZ2V0OmIudGFyZ2V0P2IudGFy
Z2V0Om51bGwscmVsOmIucmVsP2IucmVsOm51bGwsImNsYXNzIjpiWyJjbGFzcyJdP2JbImNsYXNz
Il06bnVsbCx0aXRsZTpiLnRpdGxlP2IudGl0bGU6bnVsbH07Yz8odC5mb2N1cygpLHgmJmIudGV4
dCE9ZiYmKCJpbm5lclRleHQiaW4gYz9jLmlubmVyVGV4dD1iLnRleHQ6Yy50ZXh0Q29udGVudD1i
LnRleHQpLHcuc2V0QXR0cmlicyhjLGUpLGsuc2VsZWN0KGMpLHQudW5kb01hbmFnZXIuYWRkKCkp
Ong/dC5pbnNlcnRDb250ZW50KHcuY3JlYXRlSFRNTCgiYSIsZSx3LmVuY29kZShiLnRleHQpKSk6
dC5leGVjQ29tbWFuZCgibWNlSW5zZXJ0TGluayIsITEsZSl9dmFyIGk7cmV0dXJuIGI9dGlueW1j
ZS5leHRlbmQoYixlLmRhdGEpLChpPWIuaHJlZik/aS5pbmRleE9mKCJAIik+MCYmLTE9PWkuaW5k
ZXhPZigiLy8iKSYmLTE9PWkuaW5kZXhPZigibWFpbHRvOiIpP3ZvaWQgbigiVGhlIFVSTCB5b3Ug
ZW50ZXJlZCBzZWVtcyB0byBiZSBhbiBlbWFpbCBhZGRyZXNzLiBEbyB5b3Ugd2FudCB0byBhZGQg
dGhlIHJlcXVpcmVkIG1haWx0bzogcHJlZml4PyIsZnVuY3Rpb24odCl7dCYmKGk9Im1haWx0bzoi
K2kpLGwoKX0pOi9eXHMqd3d3XC4vaS50ZXN0KGkpP3ZvaWQgbigiVGhlIFVSTCB5b3UgZW50ZXJl
ZCBzZWVtcyB0byBiZSBhbiBleHRlcm5hbCBsaW5rLiBEbyB5b3Ugd2FudCB0byBhZGQgdGhlIHJl
cXVpcmVkIGh0dHA6Ly8gcHJlZml4PyIsZnVuY3Rpb24odCl7dCYmKGk9Imh0dHA6Ly8iK2kpLGwo
KX0pOnZvaWQgbCgpOnZvaWQgdC5leGVjQ29tbWFuZCgidW5saW5rIil9fSl9dC5hZGRCdXR0b24o
ImxpbmsiLHtpY29uOiJsaW5rIix0b29sdGlwOiJJbnNlcnQvZWRpdCBsaW5rIixzaG9ydGN1dDoi
Q3RybCtLIixvbmNsaWNrOmUobiksc3RhdGVTZWxlY3RvcjoiYVtocmVmXSJ9KSx0LmFkZEJ1dHRv
bigidW5saW5rIix7aWNvbjoidW5saW5rIix0b29sdGlwOiJSZW1vdmUgbGluayIsY21kOiJ1bmxp
bmsiLHN0YXRlU2VsZWN0b3I6ImFbaHJlZl0ifSksdC5hZGRTaG9ydGN1dCgiQ3RybCtLIiwiIixl
KG4pKSx0aGlzLnNob3dEaWFsb2c9bix0LmFkZE1lbnVJdGVtKCJsaW5rIix7aWNvbjoibGluayIs
dGV4dDoiSW5zZXJ0IGxpbmsiLHNob3J0Y3V0OiJDdHJsK0siLG9uY2xpY2s6ZShuKSxzdGF0ZVNl
bGVjdG9yOiJhW2hyZWZdIixjb250ZXh0OiJpbnNlcnQiLHByZXBlbmRUb0NvbnRleHQ6ITB9KX0p
O3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoImxpc3RzIixmdW5jdGlvbihlKXtmdW5jdGlvbiB0
KGUpe3JldHVybiBlJiYvXihPTHxVTCkkLy50ZXN0KGUubm9kZU5hbWUpfWZ1bmN0aW9uIG4oZSl7
cmV0dXJuIGUucGFyZW50Tm9kZS5maXJzdENoaWxkPT1lfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGUu
cGFyZW50Tm9kZS5sYXN0Q2hpbGQ9PWV9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdCYmISFlLnNjaGVt
YS5nZXRUZXh0QmxvY2tFbGVtZW50cygpW3Qubm9kZU5hbWVdfWZ1bmN0aW9uIGkoZSl7cmV0dXJu
IGUmJiJTUEFOIj09PWUubm9kZU5hbWUmJiJib29rbWFyayI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0
YS1tY2UtdHlwZSIpfXZhciBhPXRoaXM7ZS5vbigiaW5pdCIsZnVuY3Rpb24oKXtmdW5jdGlvbiBk
KGUpe2Z1bmN0aW9uIHQodCl7dmFyIHIsbyxpO289ZVt0PyJzdGFydENvbnRhaW5lciI6ImVuZENv
bnRhaW5lciJdLGk9ZVt0PyJzdGFydE9mZnNldCI6ImVuZE9mZnNldCJdLDE9PW8ubm9kZVR5cGUm
JihyPWIuY3JlYXRlKCJzcGFuIix7ImRhdGEtbWNlLXR5cGUiOiJib29rbWFyayJ9KSxvLmhhc0No
aWxkTm9kZXMoKT8oaT1NYXRoLm1pbihpLG8uY2hpbGROb2Rlcy5sZW5ndGgtMSksdD9vLmluc2Vy
dEJlZm9yZShyLG8uY2hpbGROb2Rlc1tpXSk6Yi5pbnNlcnRBZnRlcihyLG8uY2hpbGROb2Rlc1tp
XSkpOm8uYXBwZW5kQ2hpbGQociksbz1yLGk9MCksblt0PyJzdGFydENvbnRhaW5lciI6ImVuZENv
bnRhaW5lciJdPW8sblt0PyJzdGFydE9mZnNldCI6ImVuZE9mZnNldCJdPWl9dmFyIG49e307cmV0
dXJuIHQoITApLGUuY29sbGFwc2VkfHx0KCksbn1mdW5jdGlvbiBzKGUpe2Z1bmN0aW9uIHQodCl7
ZnVuY3Rpb24gbihlKXtmb3IodmFyIHQ9ZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsbj0wO3Q7KXtp
Zih0PT1lKXJldHVybiBuOygxIT10Lm5vZGVUeXBlfHwiYm9va21hcmsiIT10LmdldEF0dHJpYnV0
ZSgiZGF0YS1tY2UtdHlwZSIpKSYmbisrLHQ9dC5uZXh0U2libGluZ31yZXR1cm4tMX12YXIgcixv
LGk7cj1pPWVbdD8ic3RhcnRDb250YWluZXIiOiJlbmRDb250YWluZXIiXSxvPWVbdD8ic3RhcnRP
ZmZzZXQiOiJlbmRPZmZzZXQiXSxyJiYoMT09ci5ub2RlVHlwZSYmKG89bihyKSxyPXIucGFyZW50
Tm9kZSxiLnJlbW92ZShpKSksZVt0PyJzdGFydENvbnRhaW5lciI6ImVuZENvbnRhaW5lciJdPXIs
ZVt0PyJzdGFydE9mZnNldCI6ImVuZE9mZnNldCJdPW8pfXQoITApLHQoKTt2YXIgbj1iLmNyZWF0
ZVJuZygpO24uc2V0U3RhcnQoZS5zdGFydENvbnRhaW5lcixlLnN0YXJ0T2Zmc2V0KSxlLmVuZENv
bnRhaW5lciYmbi5zZXRFbmQoZS5lbmRDb250YWluZXIsZS5lbmRPZmZzZXQpLGsuc2V0Um5nKG4p
fWZ1bmN0aW9uIGYodCxuKXt2YXIgcixvLGksYT1iLmNyZWF0ZUZyYWdtZW50KCksZD1lLnNjaGVt
YS5nZXRCbG9ja0VsZW1lbnRzKCk7aWYoZS5zZXR0aW5ncy5mb3JjZWRfcm9vdF9ibG9jayYmKG49
bnx8ZS5zZXR0aW5ncy5mb3JjZWRfcm9vdF9ibG9jayksbiYmKG89Yi5jcmVhdGUobiksby50YWdO
YW1lPT09ZS5zZXR0aW5ncy5mb3JjZWRfcm9vdF9ibG9jayYmYi5zZXRBdHRyaWJzKG8sZS5zZXR0
aW5ncy5mb3JjZWRfcm9vdF9ibG9ja19hdHRycyksYS5hcHBlbmRDaGlsZChvKSksdClmb3IoO3I9
dC5maXJzdENoaWxkOyl7dmFyIHM9ci5ub2RlTmFtZTtpfHwiU1BBTiI9PXMmJiJib29rbWFyayI9
PXIuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS10eXBlIil8fChpPSEwKSxkW3NdPyhhLmFwcGVuZENo
aWxkKHIpLG89bnVsbCk6bj8ob3x8KG89Yi5jcmVhdGUobiksYS5hcHBlbmRDaGlsZChvKSksby5h
cHBlbmRDaGlsZChyKSk6YS5hcHBlbmRDaGlsZChyKX1yZXR1cm4gZS5zZXR0aW5ncy5mb3JjZWRf
cm9vdF9ibG9jaz9pfHx0aW55bWNlLkVudi5pZSYmISh0aW55bWNlLkVudi5pZT4xMCl8fG8uYXBw
ZW5kQ2hpbGQoYi5jcmVhdGUoImJyIix7ImRhdGEtbWNlLWJvZ3VzIjoiMSJ9KSk6YS5hcHBlbmRD
aGlsZChiLmNyZWF0ZSgiYnIiKSksYX1mdW5jdGlvbiBsKCl7cmV0dXJuIHRpbnltY2UuZ3JlcChr
LmdldFNlbGVjdGVkQmxvY2tzKCksZnVuY3Rpb24oZSl7cmV0dXJuIkxJIj09ZS5ub2RlTmFtZX0p
fWZ1bmN0aW9uIGMoZSx0LG4pe3ZhciByLG8saT1iLnNlbGVjdCgnc3BhbltkYXRhLW1jZS10eXBl
PSJib29rbWFyayJdJyxlKTtuPW58fGYodCkscj1iLmNyZWF0ZVJuZygpLHIuc2V0U3RhcnRBZnRl
cih0KSxyLnNldEVuZEFmdGVyKGUpLG89ci5leHRyYWN0Q29udGVudHMoKSxiLmlzRW1wdHkobyl8
fGIuaW5zZXJ0QWZ0ZXIobyxlKSxiLmluc2VydEFmdGVyKG4sZSksYi5pc0VtcHR5KHQucGFyZW50
Tm9kZSkmJih0aW55bWNlLmVhY2goaSxmdW5jdGlvbihlKXt0LnBhcmVudE5vZGUucGFyZW50Tm9k
ZS5pbnNlcnRCZWZvcmUoZSx0LnBhcmVudE5vZGUpfSksYi5yZW1vdmUodC5wYXJlbnROb2RlKSks
Yi5yZW1vdmUodCl9ZnVuY3Rpb24gcChlKXt2YXIgbixyO2lmKG49ZS5uZXh0U2libGluZyxuJiZ0
KG4pJiZuLm5vZGVOYW1lPT1lLm5vZGVOYW1lKXtmb3IoO3I9bi5maXJzdENoaWxkOyllLmFwcGVu
ZENoaWxkKHIpO2IucmVtb3ZlKG4pfWlmKG49ZS5wcmV2aW91c1NpYmxpbmcsbiYmdChuKSYmbi5u
b2RlTmFtZT09ZS5ub2RlTmFtZSl7Zm9yKDtyPW4uZmlyc3RDaGlsZDspZS5pbnNlcnRCZWZvcmUo
cixlLmZpcnN0Q2hpbGQpO2IucmVtb3ZlKG4pfX1mdW5jdGlvbiB1KGUpe3RpbnltY2UuZWFjaCh0
aW55bWNlLmdyZXAoYi5zZWxlY3QoIm9sLHVsIixlKSksZnVuY3Rpb24oZSl7dmFyIG4scj1lLnBh
cmVudE5vZGU7IkxJIj09ci5ub2RlTmFtZSYmci5maXJzdENoaWxkPT1lJiYobj1yLnByZXZpb3Vz
U2libGluZyxuJiYiTEkiPT1uLm5vZGVOYW1lJiYobi5hcHBlbmRDaGlsZChlKSxiLmlzRW1wdHko
cikmJmIucmVtb3ZlKHIpKSksdChyKSYmKG49ci5wcmV2aW91c1NpYmxpbmcsbiYmIkxJIj09bi5u
b2RlTmFtZSYmbi5hcHBlbmRDaGlsZChlKSl9KX1mdW5jdGlvbiBtKGUpe2Z1bmN0aW9uIG8oZSl7
Yi5pc0VtcHR5KGUpJiZiLnJlbW92ZShlKX12YXIgaSxhPWUucGFyZW50Tm9kZSxkPWEucGFyZW50
Tm9kZTtyZXR1cm4gbihlKSYmcihlKT8oIkxJIj09ZC5ub2RlTmFtZT8oYi5pbnNlcnRBZnRlcihl
LGQpLG8oZCksYi5yZW1vdmUoYSkpOnQoZCk/Yi5yZW1vdmUoYSwhMCk6KGQuaW5zZXJ0QmVmb3Jl
KGYoZSksYSksYi5yZW1vdmUoYSkpLCEwKTpuKGUpPygiTEkiPT1kLm5vZGVOYW1lPyhiLmluc2Vy
dEFmdGVyKGUsZCksZS5hcHBlbmRDaGlsZChhKSxvKGQpKTp0KGQpP2QuaW5zZXJ0QmVmb3JlKGUs
YSk6KGQuaW5zZXJ0QmVmb3JlKGYoZSksYSksYi5yZW1vdmUoZSkpLCEwKTpyKGUpPygiTEkiPT1k
Lm5vZGVOYW1lP2IuaW5zZXJ0QWZ0ZXIoZSxkKTp0KGQpP2IuaW5zZXJ0QWZ0ZXIoZSxhKTooYi5p
bnNlcnRBZnRlcihmKGUpLGEpLGIucmVtb3ZlKGUpKSwhMCk6KCJMSSI9PWQubm9kZU5hbWU/KGE9
ZCxpPWYoZSwiTEkiKSk6aT10KGQpP2YoZSwiTEkiKTpmKGUpLGMoYSxlLGkpLHUoYS5wYXJlbnRO
b2RlKSwhMCl9ZnVuY3Rpb24gaChlKXtmdW5jdGlvbiBuKG4scil7dmFyIG87aWYodChuKSl7Zm9y
KDtvPWUubGFzdENoaWxkLmZpcnN0Q2hpbGQ7KXIuYXBwZW5kQ2hpbGQobyk7Yi5yZW1vdmUobil9
fXZhciByLG87cmV0dXJuIHI9ZS5wcmV2aW91c1NpYmxpbmcsciYmdChyKT8oci5hcHBlbmRDaGls
ZChlKSwhMCk6ciYmIkxJIj09ci5ub2RlTmFtZSYmdChyLmxhc3RDaGlsZCk/KHIubGFzdENoaWxk
LmFwcGVuZENoaWxkKGUpLG4oZS5sYXN0Q2hpbGQsci5sYXN0Q2hpbGQpLCEwKToocj1lLm5leHRT
aWJsaW5nLHImJnQocik/KHIuaW5zZXJ0QmVmb3JlKGUsci5maXJzdENoaWxkKSwhMCk6ciYmIkxJ
Ij09ci5ub2RlTmFtZSYmdChlLmxhc3RDaGlsZCk/ITE6KHI9ZS5wcmV2aW91c1NpYmxpbmcsciYm
IkxJIj09ci5ub2RlTmFtZT8obz1iLmNyZWF0ZShlLnBhcmVudE5vZGUubm9kZU5hbWUpLHIuYXBw
ZW5kQ2hpbGQobyksby5hcHBlbmRDaGlsZChlKSxuKGUubGFzdENoaWxkLG8pLCEwKTohMSkpfWZ1
bmN0aW9uIHYoKXt2YXIgdD1sKCk7aWYodC5sZW5ndGgpe2Zvcih2YXIgbj1kKGsuZ2V0Um5nKCEw
KSkscj0wO3I8dC5sZW5ndGgmJihoKHRbcl0pfHwwIT09cik7cisrKTtyZXR1cm4gcyhuKSxlLm5v
ZGVDaGFuZ2VkKCksITB9fWZ1bmN0aW9uIEMoKXt2YXIgdD1sKCk7aWYodC5sZW5ndGgpe3ZhciBu
LHIsbz1kKGsuZ2V0Um5nKCEwKSksaT1lLmdldEJvZHkoKTtmb3Iobj10Lmxlbmd0aDtuLS07KWZv
cih2YXIgYT10W25dLnBhcmVudE5vZGU7YSYmYSE9aTspe2ZvcihyPXQubGVuZ3RoO3ItLTspaWYo
dFtyXT09PWEpe3Quc3BsaWNlKG4sMSk7YnJlYWt9YT1hLnBhcmVudE5vZGV9Zm9yKG49MDtuPHQu
bGVuZ3RoJiYobSh0W25dKXx8MCE9PW4pO24rKyk7cmV0dXJuIHMobyksZS5ub2RlQ2hhbmdlZCgp
LCEwfX1mdW5jdGlvbiBnKG4pe2Z1bmN0aW9uIHIoKXtmdW5jdGlvbiB0KGUpe3ZhciB0LG47Zm9y
KHQ9YVtlPyJzdGFydENvbnRhaW5lciI6ImVuZENvbnRhaW5lciJdLG49YVtlPyJzdGFydE9mZnNl
dCI6ImVuZE9mZnNldCJdLDE9PXQubm9kZVR5cGUmJih0PXQuY2hpbGROb2Rlc1tNYXRoLm1pbihu
LHQuY2hpbGROb2Rlcy5sZW5ndGgtMSldfHx0KTt0LnBhcmVudE5vZGUhPWQ7KXtpZihvKHQpKXJl
dHVybiB0O2lmKC9eKFREfFRIKSQvLnRlc3QodC5wYXJlbnROb2RlLm5vZGVOYW1lKSlyZXR1cm4g
dDt0PXQucGFyZW50Tm9kZX1yZXR1cm4gdH1mb3IodmFyIG4scj1bXSxkPWUuZ2V0Qm9keSgpLHM9
dCghMCksZj10KCksbD1bXSxjPXM7YyYmKGwucHVzaChjKSxjIT1mKTtjPWMubmV4dFNpYmxpbmcp
O3JldHVybiB0aW55bWNlLmVhY2gobCxmdW5jdGlvbihlKXtpZihvKGUpKXJldHVybiByLnB1c2go
ZSksdm9pZChuPW51bGwpO2lmKGIuaXNCbG9jayhlKXx8IkJSIj09ZS5ub2RlTmFtZSlyZXR1cm4i
QlIiPT1lLm5vZGVOYW1lJiZiLnJlbW92ZShlKSx2b2lkKG49bnVsbCk7dmFyIHQ9ZS5uZXh0U2li
bGluZztyZXR1cm4gaShlKSYmKG8odCl8fCF0JiZlLnBhcmVudE5vZGU9PWQpP3ZvaWQobj1udWxs
KToobnx8KG49Yi5jcmVhdGUoInAiKSxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4sZSksci5w
dXNoKG4pKSx2b2lkIG4uYXBwZW5kQ2hpbGQoZSkpfSkscn12YXIgYT1rLmdldFJuZyghMCksZj1k
KGEpLGw9cigpO3RpbnltY2UuZWFjaChsLGZ1bmN0aW9uKGUpe3ZhciByLG87bz1lLnByZXZpb3Vz
U2libGluZyxvJiZ0KG8pJiZvLm5vZGVOYW1lPT1uPyhyPW8sZT1iLnJlbmFtZShlLCJMSSIpLG8u
YXBwZW5kQ2hpbGQoZSkpOihyPWIuY3JlYXRlKG4pLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo
cixlKSxyLmFwcGVuZENoaWxkKGUpLGU9Yi5yZW5hbWUoZSwiTEkiKSkscChyKX0pLHMoZil9ZnVu
Y3Rpb24gTigpe3ZhciBuPWQoay5nZXRSbmcoITApKSxyPWUuZ2V0Qm9keSgpO3RpbnltY2UuZWFj
aChsKCksZnVuY3Rpb24oZSl7dmFyIG4sbztpZihiLmlzRW1wdHkoZSkpcmV0dXJuIHZvaWQgbShl
KTtmb3Iobj1lO24mJm4hPXI7bj1uLnBhcmVudE5vZGUpdChuKSYmKG89bik7YyhvLGUpfSkscyhu
KX1mdW5jdGlvbiB5KGUpe3ZhciB0PWIuZ2V0UGFyZW50KGsuZ2V0U3RhcnQoKSwiT0wsVUwiKTtp
Zih0KWlmKHQubm9kZU5hbWU9PWUpTihlKTtlbHNle3ZhciBuPWQoay5nZXRSbmcoITApKTtwKGIu
cmVuYW1lKHQsZSkpLHMobil9ZWxzZSBnKGUpfXZhciBiPWUuZG9tLGs9ZS5zZWxlY3Rpb247YS5i
YWNrc3BhY2VEZWxldGU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihlLHQpe3ZhciBuPWUuc3RhcnRD
b250YWluZXIscj1lLnN0YXJ0T2Zmc2V0O2lmKDM9PW4ubm9kZVR5cGUmJih0P3I8bi5kYXRhLmxl
bmd0aDpyPjApKXJldHVybiBuO2Zvcih2YXIgbz1uZXcgdGlueW1jZS5kb20uVHJlZVdhbGtlcihl
LnN0YXJ0Q29udGFpbmVyKTtuPW9bdD8ibmV4dCI6InByZXYiXSgpOylpZigzPT1uLm5vZGVUeXBl
JiZuLmRhdGEubGVuZ3RoPjApcmV0dXJuIG59ZnVuY3Rpb24gcihlLG4pe3ZhciByLG8saT1lLnBh
cmVudE5vZGU7Zm9yKHQobi5sYXN0Q2hpbGQpJiYobz1uLmxhc3RDaGlsZCkscj1uLmxhc3RDaGls
ZCxyJiYiQlIiPT1yLm5vZGVOYW1lJiZlLmhhc0NoaWxkTm9kZXMoKSYmYi5yZW1vdmUocik7cj1l
LmZpcnN0Q2hpbGQ7KW4uYXBwZW5kQ2hpbGQocik7byYmbi5hcHBlbmRDaGlsZChvKSxiLnJlbW92
ZShlKSxiLmlzRW1wdHkoaSkmJmIucmVtb3ZlKGkpfWlmKGsuaXNDb2xsYXBzZWQoKSl7dmFyIG89
Yi5nZXRQYXJlbnQoay5nZXRTdGFydCgpLCJMSSIpO2lmKG8pe3ZhciBpPWsuZ2V0Um5nKCEwKSxh
PWIuZ2V0UGFyZW50KG4oaSxlKSwiTEkiKTtpZihhJiZhIT1vKXt2YXIgZj1kKGkpO3JldHVybiBl
P3IoYSxvKTpyKG8sYSkscyhmKSwhMH1pZighYSYmIWUmJk4oby5wYXJlbnROb2RlLm5vZGVOYW1l
KSlyZXR1cm4hMH19fSxlLmFkZENvbW1hbmQoIkluZGVudCIsZnVuY3Rpb24oKXtyZXR1cm4gdigp
P3ZvaWQgMDohMH0pLGUuYWRkQ29tbWFuZCgiT3V0ZGVudCIsZnVuY3Rpb24oKXtyZXR1cm4gQygp
P3ZvaWQgMDohMH0pLGUuYWRkQ29tbWFuZCgiSW5zZXJ0VW5vcmRlcmVkTGlzdCIsZnVuY3Rpb24o
KXt5KCJVTCIpfSksZS5hZGRDb21tYW5kKCJJbnNlcnRPcmRlcmVkTGlzdCIsZnVuY3Rpb24oKXt5
KCJPTCIpfSksZS5vbigia2V5ZG93biIsZnVuY3Rpb24odCl7OT09dC5rZXlDb2RlJiZlLmRvbS5n
ZXRQYXJlbnQoZS5zZWxlY3Rpb24uZ2V0U3RhcnQoKSwiTEkiKSYmKHQucHJldmVudERlZmF1bHQo
KSx0LnNoaWZ0S2V5P0MoKTp2KCkpfSl9KSxlLmFkZEJ1dHRvbigiaW5kZW50Iix7aWNvbjoiaW5k
ZW50Iix0aXRsZToiSW5jcmVhc2UgaW5kZW50IixjbWQ6IkluZGVudCIsb25Qb3N0UmVuZGVyOmZ1
bmN0aW9uKCl7dmFyIHQ9dGhpcztlLm9uKCJub2RlY2hhbmdlIixmdW5jdGlvbigpe2Zvcih2YXIg
cj1lLnNlbGVjdGlvbi5nZXRTZWxlY3RlZEJsb2NrcygpLG89ITEsaT0wLGE9ci5sZW5ndGg7IW8m
JmE+aTtpKyspe3ZhciBkPXJbaV0ubm9kZU5hbWU7bz0iTEkiPT1kJiZuKHJbaV0pfHwiVUwiPT1k
fHwiT0wiPT1kfXQuZGlzYWJsZWQobyl9KX19KSxlLm9uKCJrZXlkb3duIixmdW5jdGlvbihlKXtl
LmtleUNvZGU9PXRpbnltY2UudXRpbC5WSy5CQUNLU1BBQ0U/YS5iYWNrc3BhY2VEZWxldGUoKSYm
ZS5wcmV2ZW50RGVmYXVsdCgpOmUua2V5Q29kZT09dGlueW1jZS51dGlsLlZLLkRFTEVURSYmYS5i
YWNrc3BhY2VEZWxldGUoITApJiZlLnByZXZlbnREZWZhdWx0KCl9KX0pO3RpbnltY2UuUGx1Z2lu
TWFuYWdlci5hZGQoIm1lZGlhIixmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoZSl7cmV0dXJuLTEh
PWUuaW5kZXhPZigiLm1wMyIpPyJhdWRpby9tcGVnIjotMSE9ZS5pbmRleE9mKCIud2F2Iik/ImF1
ZGlvL3dhdiI6LTEhPWUuaW5kZXhPZigiLm1wNCIpPyJ2aWRlby9tcDQiOi0xIT1lLmluZGV4T2Yo
Ii53ZWJtIik/InZpZGVvL3dlYm0iOi0xIT1lLmluZGV4T2YoIi5vZ2ciKT8idmlkZW8vb2dnIjot
MSE9ZS5pbmRleE9mKCIuc3dmIik/ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIjoiIn1m
dW5jdGlvbiByKHQpe3ZhciBpPWUuc2V0dGluZ3MubWVkaWFfc2NyaXB0cztpZihpKWZvcih2YXIg
cj0wO3I8aS5sZW5ndGg7cisrKWlmKC0xIT09dC5pbmRleE9mKGlbcl0uZmlsdGVyKSlyZXR1cm4g
aVtyXX1mdW5jdGlvbiBvKCl7ZnVuY3Rpb24gdChlKXt2YXIgdCxhLGMsczt0PWkuZmluZCgiI3dp
ZHRoIilbMF0sYT1pLmZpbmQoIiNoZWlnaHQiKVswXSxjPXQudmFsdWUoKSxzPWEudmFsdWUoKSxp
LmZpbmQoIiNjb25zdHJhaW4iKVswXS5jaGVja2VkKCkmJnImJm8mJmMmJnMmJihlLmNvbnRyb2w9
PXQ/KHM9TWF0aC5yb3VuZChjL3IqcyksYS52YWx1ZShzKSk6KGM9TWF0aC5yb3VuZChzL28qYyks
dC52YWx1ZShjKSkpLHI9YyxvPXN9dmFyIGkscixvLG0sdT1be25hbWU6InNvdXJjZTEiLHR5cGU6
ImZpbGVwaWNrZXIiLGZpbGV0eXBlOiJtZWRpYSIsc2l6ZTo0MCxhdXRvZm9jdXM6ITAsbGFiZWw6
IlNvdXJjZSJ9XTtlLnNldHRpbmdzLm1lZGlhX2FsdF9zb3VyY2UhPT0hMSYmdS5wdXNoKHtuYW1l
OiJzb3VyY2UyIix0eXBlOiJmaWxlcGlja2VyIixmaWxldHlwZToibWVkaWEiLHNpemU6NDAsbGFi
ZWw6IkFsdGVybmF0aXZlIHNvdXJjZSJ9KSxlLnNldHRpbmdzLm1lZGlhX3Bvc3RlciE9PSExJiZ1
LnB1c2goe25hbWU6InBvc3RlciIsdHlwZToiZmlsZXBpY2tlciIsZmlsZXR5cGU6ImltYWdlIixz
aXplOjQwLGxhYmVsOiJQb3N0ZXIifSksZS5zZXR0aW5ncy5tZWRpYV9kaW1lbnNpb25zIT09ITEm
JnUucHVzaCh7dHlwZToiY29udGFpbmVyIixsYWJlbDoiRGltZW5zaW9ucyIsbGF5b3V0OiJmbGV4
IixhbGlnbjoiY2VudGVyIixzcGFjaW5nOjUsaXRlbXM6W3tuYW1lOiJ3aWR0aCIsdHlwZToidGV4
dGJveCIsbWF4TGVuZ3RoOjMsc2l6ZTozLG9uY2hhbmdlOnR9LHt0eXBlOiJsYWJlbCIsdGV4dDoi
eCJ9LHtuYW1lOiJoZWlnaHQiLHR5cGU6InRleHRib3giLG1heExlbmd0aDozLHNpemU6MyxvbmNo
YW5nZTp0fSx7bmFtZToiY29uc3RyYWluIix0eXBlOiJjaGVja2JveCIsY2hlY2tlZDohMCx0ZXh0
OiJDb25zdHJhaW4gcHJvcG9ydGlvbnMifV19KSxtPW4oZS5zZWxlY3Rpb24uZ2V0Tm9kZSgpKSxy
PW0ud2lkdGgsbz1tLmhlaWdodCxpPWUud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiSW5zZXJ0
L2VkaXQgdmlkZW8iLGRhdGE6bSxib2R5VHlwZToidGFicGFuZWwiLGJvZHk6W3t0aXRsZToiR2Vu
ZXJhbCIsdHlwZToiZm9ybSIsb25TaG93VGFiOmZ1bmN0aW9uKCl7bT1zKHRoaXMubmV4dCgpLmZp
bmQoIiNlbWJlZCIpLnZhbHVlKCkpLHRoaXMuZnJvbUpTT04obSl9LGl0ZW1zOnV9LHt0aXRsZToi
RW1iZWQiLHR5cGU6InBhbmVsIixsYXlvdXQ6ImZsZXgiLGRpcmVjdGlvbjoiY29sdW1uIixhbGln
bjoic3RyZXRjaCIscGFkZGluZzoxMCxzcGFjaW5nOjEwLG9uU2hvd1RhYjpmdW5jdGlvbigpe3Ro
aXMuZmluZCgiI2VtYmVkIikudmFsdWUoYyh0aGlzLnBhcmVudCgpLnRvSlNPTigpKSl9LGl0ZW1z
Olt7dHlwZToibGFiZWwiLHRleHQ6IlBhc3RlIHlvdXIgZW1iZWQgY29kZSBiZWxvdzoiLGZvcklk
OiJtY2VtZWRpYXNvdXJjZSJ9LHtpZDoibWNlbWVkaWFzb3VyY2UiLHR5cGU6InRleHRib3giLGZs
ZXg6MSxuYW1lOiJlbWJlZCIsdmFsdWU6YSgpLG11bHRpbGluZTohMCxsYWJlbDoiU291cmNlIn1d
fV0sb25TdWJtaXQ6ZnVuY3Rpb24oKXtlLmluc2VydENvbnRlbnQoYyh0aGlzLnRvSlNPTigpKSl9
fSl9ZnVuY3Rpb24gYSgpe3ZhciB0PWUuc2VsZWN0aW9uLmdldE5vZGUoKTtyZXR1cm4gdC5nZXRB
dHRyaWJ1dGUoImRhdGEtbWNlLW9iamVjdCIpP2Uuc2VsZWN0aW9uLmdldENvbnRlbnQoKTp2b2lk
IDB9ZnVuY3Rpb24gYyhvKXt2YXIgYT0iIjtpZighby5zb3VyY2UxJiYodGlueW1jZS5leHRlbmQo
byxzKG8uZW1iZWQpKSwhby5zb3VyY2UxKSlyZXR1cm4iIjtpZihvLnNvdXJjZTJ8fChvLnNvdXJj
ZTI9IiIpLG8ucG9zdGVyfHwoby5wb3N0ZXI9IiIpLG8uc291cmNlMT1lLmNvbnZlcnRVUkwoby5z
b3VyY2UxLCJzb3VyY2UiKSxvLnNvdXJjZTI9ZS5jb252ZXJ0VVJMKG8uc291cmNlMiwic291cmNl
Iiksby5zb3VyY2UxbWltZT1pKG8uc291cmNlMSksby5zb3VyY2UybWltZT1pKG8uc291cmNlMiks
by5wb3N0ZXI9ZS5jb252ZXJ0VVJMKG8ucG9zdGVyLCJwb3N0ZXIiKSxvLmZsYXNoUGxheWVyVXJs
PWUuY29udmVydFVSTCh0KyIvbW94aWVwbGF5ZXIuc3dmIiwibW92aWUiKSx0aW55bWNlLmVhY2go
dSxmdW5jdGlvbihlKXt2YXIgdCxpLHI7aWYodD1lLnJlZ2V4LmV4ZWMoby5zb3VyY2UxKSl7Zm9y
KHI9ZS51cmwsaT0wO3RbaV07aSsrKXI9ci5yZXBsYWNlKCIkIitpLGZ1bmN0aW9uKCl7cmV0dXJu
IHRbaV19KTtvLnNvdXJjZTE9cixvLnR5cGU9ZS50eXBlLG8ud2lkdGg9by53aWR0aHx8ZS53LG8u
aGVpZ2h0PW8uaGVpZ2h0fHxlLmh9fSksby5lbWJlZClhPW0oby5lbWJlZCxvLCEwKTtlbHNle3Zh
ciBjPXIoby5zb3VyY2UxKTtjJiYoby50eXBlPSJzY3JpcHQiLG8ud2lkdGg9Yy53aWR0aCxvLmhl
aWdodD1jLmhlaWdodCksby53aWR0aD1vLndpZHRofHwzMDAsby5oZWlnaHQ9by5oZWlnaHR8fDE1
MCx0aW55bWNlLmVhY2gobyxmdW5jdGlvbih0LGkpe29baV09ZS5kb20uZW5jb2RlKHQpfSksImlm
cmFtZSI9PW8udHlwZT9hKz0nPGlmcmFtZSBzcmM9Iicrby5zb3VyY2UxKyciIHdpZHRoPSInK28u
d2lkdGgrJyIgaGVpZ2h0PSInK28uaGVpZ2h0KyciPjwvaWZyYW1lPic6ImFwcGxpY2F0aW9uL3gt
c2hvY2t3YXZlLWZsYXNoIj09by5zb3VyY2UxbWltZT8oYSs9JzxvYmplY3QgZGF0YT0iJytvLnNv
dXJjZTErJyIgd2lkdGg9Iicrby53aWR0aCsnIiBoZWlnaHQ9Iicrby5oZWlnaHQrJyIgdHlwZT0i
YXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giPicsby5wb3N0ZXImJihhKz0nPGltZyBzcmM9
Iicrby5wb3N0ZXIrJyIgd2lkdGg9Iicrby53aWR0aCsnIiBoZWlnaHQ9Iicrby5oZWlnaHQrJyIg
Lz4nKSxhKz0iPC9vYmplY3Q+Iik6LTEhPW8uc291cmNlMW1pbWUuaW5kZXhPZigiYXVkaW8iKT9l
LnNldHRpbmdzLmF1ZGlvX3RlbXBsYXRlX2NhbGxiYWNrP2E9ZS5zZXR0aW5ncy5hdWRpb190ZW1w
bGF0ZV9jYWxsYmFjayhvKTphKz0nPGF1ZGlvIGNvbnRyb2xzPSJjb250cm9scyIgc3JjPSInK28u
c291cmNlMSsnIj4nKyhvLnNvdXJjZTI/J1xuPHNvdXJjZSBzcmM9Iicrby5zb3VyY2UyKyciJyso
by5zb3VyY2UybWltZT8nIHR5cGU9Iicrby5zb3VyY2UybWltZSsnIic6IiIpKyIgLz5cbiI6IiIp
KyI8L2F1ZGlvPiI6InNjcmlwdCI9PW8udHlwZT9hKz0nPHNjcmlwdCBzcmM9Iicrby5zb3VyY2Ux
KyciPjwvc2NyaXB0Pic6YT1lLnNldHRpbmdzLnZpZGVvX3RlbXBsYXRlX2NhbGxiYWNrP2Uuc2V0
dGluZ3MudmlkZW9fdGVtcGxhdGVfY2FsbGJhY2sobyk6Jzx2aWRlbyB3aWR0aD0iJytvLndpZHRo
KyciIGhlaWdodD0iJytvLmhlaWdodCsnIicrKG8ucG9zdGVyPycgcG9zdGVyPSInK28ucG9zdGVy
KyciJzoiIikrJyBjb250cm9scz0iY29udHJvbHMiPlxuPHNvdXJjZSBzcmM9Iicrby5zb3VyY2Ux
KyciJysoby5zb3VyY2UxbWltZT8nIHR5cGU9Iicrby5zb3VyY2UxbWltZSsnIic6IiIpKyIgLz5c
biIrKG8uc291cmNlMj8nPHNvdXJjZSBzcmM9Iicrby5zb3VyY2UyKyciJysoby5zb3VyY2UybWlt
ZT8nIHR5cGU9Iicrby5zb3VyY2UybWltZSsnIic6IiIpKyIgLz5cbiI6IiIpKyI8L3ZpZGVvPiJ9
cmV0dXJuIGF9ZnVuY3Rpb24gcyhlKXt2YXIgdD17fTtyZXR1cm4gbmV3IHRpbnltY2UuaHRtbC5T
YXhQYXJzZXIoe3ZhbGlkYXRlOiExLGFsbG93X2NvbmRpdGlvbmFsX2NvbW1lbnRzOiEwLHNwZWNp
YWw6InNjcmlwdCxub3NjcmlwdCIsc3RhcnQ6ZnVuY3Rpb24oZSxpKXtpZih0LnNvdXJjZTF8fCJw
YXJhbSIhPWV8fCh0LnNvdXJjZTE9aS5tYXAubW92aWUpLCgiaWZyYW1lIj09ZXx8Im9iamVjdCI9
PWV8fCJlbWJlZCI9PWV8fCJ2aWRlbyI9PWV8fCJhdWRpbyI9PWUpJiYodC50eXBlfHwodC50eXBl
PWUpLHQ9dGlueW1jZS5leHRlbmQoaS5tYXAsdCkpLCJzY3JpcHQiPT1lKXt2YXIgbz1yKGkubWFw
LnNyYyk7aWYoIW8pcmV0dXJuO3Q9e3R5cGU6InNjcmlwdCIsc291cmNlMTppLm1hcC5zcmMsd2lk
dGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHR9fSJzb3VyY2UiPT1lJiYodC5zb3VyY2UxP3Quc291
cmNlMnx8KHQuc291cmNlMj1pLm1hcC5zcmMpOnQuc291cmNlMT1pLm1hcC5zcmMpLCJpbWciIT1l
fHx0LnBvc3Rlcnx8KHQucG9zdGVyPWkubWFwLnNyYyl9fSkucGFyc2UoZSksdC5zb3VyY2UxPXQu
c291cmNlMXx8dC5zcmN8fHQuZGF0YSx0LnNvdXJjZTI9dC5zb3VyY2UyfHwiIix0LnBvc3Rlcj10
LnBvc3Rlcnx8IiIsdH1mdW5jdGlvbiBuKHQpe3JldHVybiB0LmdldEF0dHJpYnV0ZSgiZGF0YS1t
Y2Utb2JqZWN0Iik/cyhlLnNlcmlhbGl6ZXIuc2VyaWFsaXplKHQse3NlbGVjdGlvbjohMH0pKTp7
fX1mdW5jdGlvbiBtKGUsdCxpKXtmdW5jdGlvbiByKGUsdCl7dmFyIGkscixvLGE7Zm9yKGkgaW4g
dClpZihvPSIiK3RbaV0sZS5tYXBbaV0pZm9yKHI9ZS5sZW5ndGg7ci0tOylhPWVbcl0sYS5uYW1l
PT1pJiYobz8oZS5tYXBbaV09byxhLnZhbHVlPW8pOihkZWxldGUgZS5tYXBbaV0sZS5zcGxpY2Uo
ciwxKSkpO2Vsc2UgbyYmKGUucHVzaCh7bmFtZTppLHZhbHVlOm99KSxlLm1hcFtpXT1vKX12YXIg
byxhPW5ldyB0aW55bWNlLmh0bWwuV3JpdGVyLGM9MDtyZXR1cm4gbmV3IHRpbnltY2UuaHRtbC5T
YXhQYXJzZXIoe3ZhbGlkYXRlOiExLGFsbG93X2NvbmRpdGlvbmFsX2NvbW1lbnRzOiEwLHNwZWNp
YWw6InNjcmlwdCxub3NjcmlwdCIsY29tbWVudDpmdW5jdGlvbihlKXthLmNvbW1lbnQoZSl9LGNk
YXRhOmZ1bmN0aW9uKGUpe2EuY2RhdGEoZSl9LHRleHQ6ZnVuY3Rpb24oZSx0KXthLnRleHQoZSx0
KX0sc3RhcnQ6ZnVuY3Rpb24oZSxzLG4pe3N3aXRjaChlKXtjYXNlInZpZGVvIjpjYXNlIm9iamVj
dCI6Y2FzZSJlbWJlZCI6Y2FzZSJpbWciOmNhc2UiaWZyYW1lIjpyKHMse3dpZHRoOnQud2lkdGgs
aGVpZ2h0OnQuaGVpZ2h0fSl9aWYoaSlzd2l0Y2goZSl7Y2FzZSJ2aWRlbyI6cihzLHtwb3N0ZXI6
dC5wb3N0ZXIsc3JjOiIifSksdC5zb3VyY2UyJiZyKHMse3NyYzoiIn0pO2JyZWFrO2Nhc2UiaWZy
YW1lIjpyKHMse3NyYzp0LnNvdXJjZTF9KTticmVhaztjYXNlInNvdXJjZSI6aWYoYysrLDI+PWMm
JihyKHMse3NyYzp0WyJzb3VyY2UiK2NdLHR5cGU6dFsic291cmNlIitjKyJtaW1lIl19KSwhdFsi
c291cmNlIitjXSkpcmV0dXJuO2JyZWFrO2Nhc2UiaW1nIjppZighdC5wb3N0ZXIpcmV0dXJuO289
ITB9YS5zdGFydChlLHMsbil9LGVuZDpmdW5jdGlvbihlKXtpZigidmlkZW8iPT1lJiZpKWZvcih2
YXIgcz0xOzI+PXM7cysrKWlmKHRbInNvdXJjZSIrc10pe3ZhciBuPVtdO24ubWFwPXt9LHM+YyYm
KHIobix7c3JjOnRbInNvdXJjZSIrc10sdHlwZTp0WyJzb3VyY2UiK3MrIm1pbWUiXX0pLGEuc3Rh
cnQoInNvdXJjZSIsbiwhMCkpfWlmKHQucG9zdGVyJiYib2JqZWN0Ij09ZSYmaSYmIW8pe3ZhciBt
PVtdO20ubWFwPXt9LHIobSx7c3JjOnQucG9zdGVyLHdpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVp
Z2h0fSksYS5zdGFydCgiaW1nIixtLCEwKX1hLmVuZChlKX19LG5ldyB0aW55bWNlLmh0bWwuU2No
ZW1hKHt9KSkucGFyc2UoZSksYS5nZXRDb250ZW50KCl9dmFyIHU9W3tyZWdleDoveW91dHVcLmJl
XC8oW1x3XC0uXSspLyx0eXBlOiJpZnJhbWUiLHc6NDI1LGg6MzUwLHVybDoiLy93d3cueW91dHVi
ZS5jb20vZW1iZWQvJDEifSx7cmVnZXg6L3lvdXR1YmVcLmNvbSguKyl2PShbXiZdKykvLHR5cGU6
ImlmcmFtZSIsdzo0MjUsaDozNTAsdXJsOiIvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8kMiJ9LHty
ZWdleDovdmltZW9cLmNvbVwvKFswLTldKykvLHR5cGU6ImlmcmFtZSIsdzo0MjUsaDozNTAsdXJs
OiIvL3BsYXllci52aW1lby5jb20vdmlkZW8vJDE/dGl0bGU9MCZieWxpbmU9MCZwb3J0cmFpdD0w
JmNvbG9yPThkYzdkYyJ9LHtyZWdleDovbWFwc1wuZ29vZ2xlXC4oW2Etel17MiwzfSlcL21hcHNc
LyguKyltc2lkPSguKykvLHR5cGU6ImlmcmFtZSIsdzo0MjUsaDozNTAsdXJsOicvL21hcHMuZ29v
Z2xlLmNvbS9tYXBzL21zP21zaWQ9JDImb3V0cHV0PWVtYmVkIid9XTtlLm9uKCJSZXNvbHZlTmFt
ZSIsZnVuY3Rpb24oZSl7dmFyIHQ7MT09ZS50YXJnZXQubm9kZVR5cGUmJih0PWUudGFyZ2V0Lmdl
dEF0dHJpYnV0ZSgiZGF0YS1tY2Utb2JqZWN0IikpJiYoZS5uYW1lPXQpfSksZS5vbigicHJlSW5p
dCIsZnVuY3Rpb24oKXt2YXIgdD1lLnNjaGVtYS5nZXRTcGVjaWFsRWxlbWVudHMoKTt0aW55bWNl
LmVhY2goInZpZGVvIGF1ZGlvIGlmcmFtZSBvYmplY3QiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSl7
dFtlXT1uZXcgUmVnRXhwKCI8LyIrZSsiW14+XSo+IiwiZ2kiKX0pO3ZhciBpPWUuc2NoZW1hLmdl
dEJvb2xBdHRycygpO3RpbnltY2UuZWFjaCgid2Via2l0YWxsb3dmdWxsc2NyZWVuIG1vemFsbG93
ZnVsbHNjcmVlbiBhbGxvd2Z1bGxzY3JlZW4iLnNwbGl0KCIgIiksZnVuY3Rpb24oZSl7aVtlXT17
fX0pLGUucGFyc2VyLmFkZE5vZGVGaWx0ZXIoImlmcmFtZSx2aWRlbyxhdWRpbyxvYmplY3QsZW1i
ZWQsc2NyaXB0IixmdW5jdGlvbih0LGkpe2Zvcih2YXIgbyxhLGMscyxuLG0sdSxkLGw9dC5sZW5n
dGg7bC0tOylpZihhPXRbbF0sYS5wYXJlbnQmJigic2NyaXB0IiE9YS5uYW1lfHwoZD1yKGEuYXR0
cigic3JjIikpKSkpe2ZvcihjPW5ldyB0aW55bWNlLmh0bWwuTm9kZSgiaW1nIiwxKSxjLnNob3J0
RW5kZWQ9ITAsZCYmKGQud2lkdGgmJmEuYXR0cigid2lkdGgiLGQud2lkdGgudG9TdHJpbmcoKSks
ZC5oZWlnaHQmJmEuYXR0cigiaGVpZ2h0IixkLmhlaWdodC50b1N0cmluZygpKSksbT1hLmF0dHJp
YnV0ZXMsbz1tLmxlbmd0aDtvLS07KXM9bVtvXS5uYW1lLG49bVtvXS52YWx1ZSwid2lkdGgiIT09
cyYmImhlaWdodCIhPT1zJiYic3R5bGUiIT09cyYmKCgiZGF0YSI9PXN8fCJzcmMiPT1zKSYmKG49
ZS5jb252ZXJ0VVJMKG4scykpLGMuYXR0cigiZGF0YS1tY2UtcC0iK3MsbikpO3U9YS5maXJzdENo
aWxkJiZhLmZpcnN0Q2hpbGQudmFsdWUsdSYmKGMuYXR0cigiZGF0YS1tY2UtaHRtbCIsZXNjYXBl
KHUpKSxjLmZpcnN0Q2hpbGQ9bnVsbCksYy5hdHRyKHt3aWR0aDphLmF0dHIoIndpZHRoIil8fCIz
MDAiLGhlaWdodDphLmF0dHIoImhlaWdodCIpfHwoImF1ZGlvIj09aT8iMzAiOiIxNTAiKSxzdHls
ZTphLmF0dHIoInN0eWxlIiksc3JjOnRpbnltY2UuRW52LnRyYW5zcGFyZW50U3JjLCJkYXRhLW1j
ZS1vYmplY3QiOmksImNsYXNzIjoibWNlLW9iamVjdCBtY2Utb2JqZWN0LSIraX0pLGEucmVwbGFj
ZShjKX19KSxlLnNlcmlhbGl6ZXIuYWRkQXR0cmlidXRlRmlsdGVyKCJkYXRhLW1jZS1vYmplY3Qi
LGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpLHIsbyxhLGMscyxuLG09ZS5sZW5ndGg7bS0tOylpZihp
PWVbbV0saS5wYXJlbnQpe2ZvcihuPWkuYXR0cih0KSxyPW5ldyB0aW55bWNlLmh0bWwuTm9kZShu
LDEpLCJhdWRpbyIhPW4mJiJzY3JpcHQiIT1uJiZyLmF0dHIoe3dpZHRoOmkuYXR0cigid2lkdGgi
KSxoZWlnaHQ6aS5hdHRyKCJoZWlnaHQiKX0pLHIuYXR0cih7c3R5bGU6aS5hdHRyKCJzdHlsZSIp
fSksYT1pLmF0dHJpYnV0ZXMsbz1hLmxlbmd0aDtvLS07KXt2YXIgdT1hW29dLm5hbWU7MD09PXUu
aW5kZXhPZigiZGF0YS1tY2UtcC0iKSYmci5hdHRyKHUuc3Vic3RyKDExKSxhW29dLnZhbHVlKX0i
c2NyaXB0Ij09biYmci5hdHRyKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0IiksYz1pLmF0dHIoImRh
dGEtbWNlLWh0bWwiKSxjJiYocz1uZXcgdGlueW1jZS5odG1sLk5vZGUoIiN0ZXh0IiwzKSxzLnJh
dz0hMCxzLnZhbHVlPXVuZXNjYXBlKGMpLHIuYXBwZW5kKHMpKSxpLnJlcGxhY2Uocil9fSl9KSxl
Lm9uKCJPYmplY3RTZWxlY3RlZCIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQuZ2V0QXR0cmli
dXRlKCJkYXRhLW1jZS1vYmplY3QiKTsoImF1ZGlvIj09dHx8InNjcmlwdCI9PXQpJiZlLnByZXZl
bnREZWZhdWx0KCl9KSxlLm9uKCJvYmplY3RSZXNpemVkIixmdW5jdGlvbihlKXt2YXIgdCxpPWUu
dGFyZ2V0O2kuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1vYmplY3QiKSYmKHQ9aS5nZXRBdHRyaWJ1
dGUoImRhdGEtbWNlLWh0bWwiKSx0JiYodD11bmVzY2FwZSh0KSxpLnNldEF0dHJpYnV0ZSgiZGF0
YS1tY2UtaHRtbCIsZXNjYXBlKG0odCx7d2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9KSkp
KSl9KSxlLmFkZEJ1dHRvbigibWVkaWEiLHt0b29sdGlwOiJJbnNlcnQvZWRpdCB2aWRlbyIsb25j
bGljazpvLHN0YXRlU2VsZWN0b3I6WyJpbWdbZGF0YS1tY2Utb2JqZWN0PXZpZGVvXSIsImltZ1tk
YXRhLW1jZS1vYmplY3Q9aWZyYW1lXSJdfSksZS5hZGRNZW51SXRlbSgibWVkaWEiLHtpY29uOiJt
ZWRpYSIsdGV4dDoiSW5zZXJ0IHZpZGVvIixvbmNsaWNrOm8sY29udGV4dDoiaW5zZXJ0IixwcmVw
ZW5kVG9Db250ZXh0OiEwfSl9KTt0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJub25icmVha2lu
ZyIsZnVuY3Rpb24obil7dmFyIGU9bi5nZXRQYXJhbSgibm9uYnJlYWtpbmdfZm9yY2VfdGFiIik7
aWYobi5hZGRDb21tYW5kKCJtY2VOb25CcmVha2luZyIsZnVuY3Rpb24oKXtuLmluc2VydENvbnRl
bnQobi5wbHVnaW5zLnZpc3VhbGNoYXJzJiZuLnBsdWdpbnMudmlzdWFsY2hhcnMuc3RhdGU/Jzxz
cGFuIGNsYXNzPSJtY2UtbmJzcCI+Jm5ic3A7PC9zcGFuPic6IiZuYnNwOyIpLG4uZG9tLnNldEF0
dHJpYihuLmRvbS5zZWxlY3QoInNwYW4ubWNlLW5ic3AiKSwiZGF0YS1tY2UtYm9ndXMiLCIxIil9
KSxuLmFkZEJ1dHRvbigibm9uYnJlYWtpbmciLHt0aXRsZToiSW5zZXJ0IG5vbmJyZWFraW5nIHNw
YWNlIixjbWQ6Im1jZU5vbkJyZWFraW5nIn0pLG4uYWRkTWVudUl0ZW0oIm5vbmJyZWFraW5nIix7
dGV4dDoiTm9uYnJlYWtpbmcgc3BhY2UiLGNtZDoibWNlTm9uQnJlYWtpbmciLGNvbnRleHQ6Imlu
c2VydCJ9KSxlKXt2YXIgYT0rZT4xPytlOjM7bi5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7aWYo
OT09ZS5rZXlDb2RlKXtpZihlLnNoaWZ0S2V5KXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Zm9y
KHZhciB0PTA7YT50O3QrKyluLmV4ZWNDb21tYW5kKCJtY2VOb25CcmVha2luZyIpfX0pfX0pO3Rp
bnltY2UuUGx1Z2luTWFuYWdlci5hZGQoIm5vbmVkaXRhYmxlIixmdW5jdGlvbihlKXtmdW5jdGlv
biB0KGUpe3ZhciB0O2lmKDE9PT1lLm5vZGVUeXBlKXtpZih0PWUuZ2V0QXR0cmlidXRlKHUpLHQm
JiJpbmhlcml0IiE9PXQpcmV0dXJuIHQ7aWYodD1lLmNvbnRlbnRFZGl0YWJsZSwiaW5oZXJpdCIh
PT10KXJldHVybiB0fXJldHVybiBudWxsfWZ1bmN0aW9uIG4oZSl7Zm9yKHZhciBuO2U7KXtpZihu
PXQoZSkpcmV0dXJuImZhbHNlIj09PW4/ZTpudWxsO2U9ZS5wYXJlbnROb2RlfX1mdW5jdGlvbiBy
KCl7ZnVuY3Rpb24gcihlKXtmb3IoO2U7KXtpZihlLmlkPT09ZylyZXR1cm4gZTtlPWUucGFyZW50
Tm9kZX19ZnVuY3Rpb24gYShlKXt2YXIgdDtpZihlKWZvcih0PW5ldyBmKGUsZSksZT10LmN1cnJl
bnQoKTtlO2U9dC5uZXh0KCkpaWYoMz09PWUubm9kZVR5cGUpcmV0dXJuIGV9ZnVuY3Rpb24gaShu
LHIpe3ZhciBhLGk7cmV0dXJuImZhbHNlIj09PXQobikmJnUuaXNCbG9jayhuKT92b2lkIHMuc2Vs
ZWN0KG4pOihpPXUuY3JlYXRlUm5nKCksInRydWUiPT09dChuKSYmKG4uZmlyc3RDaGlsZHx8bi5h
cHBlbmRDaGlsZChlLmdldERvYygpLmNyZWF0ZVRleHROb2RlKCLCoCIpKSxuPW4uZmlyc3RDaGls
ZCxyPSEwKSxhPXUuY3JlYXRlKCJzcGFuIix7aWQ6ZywiZGF0YS1tY2UtYm9ndXMiOiEwfSxtKSxy
P24ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxuKTp1Lmluc2VydEFmdGVyKGEsbiksaS5zZXRT
dGFydChhLmZpcnN0Q2hpbGQsMSksaS5jb2xsYXBzZSghMCkscy5zZXRSbmcoaSksYSl9ZnVuY3Rp
b24gbyhlKXt2YXIgdCxuLGksbztpZihlKXQ9cy5nZXRSbmcoITApLHQuc2V0U3RhcnRCZWZvcmUo
ZSksdC5zZXRFbmRCZWZvcmUoZSksbj1hKGUpLG4mJm4ubm9kZVZhbHVlLmNoYXJBdCgwKT09bSYm
KG49bi5kZWxldGVEYXRhKDAsMSkpLHUucmVtb3ZlKGUsITApLHMuc2V0Um5nKHQpO2Vsc2UgZm9y
KGk9cihzLmdldFN0YXJ0KCkpOyhlPXUuZ2V0KGcpKSYmZSE9PW87KWkhPT1lJiYobj1hKGUpLG4m
Jm4ubm9kZVZhbHVlLmNoYXJBdCgwKT09bSYmKG49bi5kZWxldGVEYXRhKDAsMSkpLHUucmVtb3Zl
KGUsITApKSxvPWV9ZnVuY3Rpb24gbCgpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgcixhLGksbyxsO2lm
KHI9ZC5zdGFydENvbnRhaW5lcixhPWQuc3RhcnRPZmZzZXQsMz09ci5ub2RlVHlwZSl7aWYobD1y
Lm5vZGVWYWx1ZS5sZW5ndGgsYT4wJiZsPmF8fChuP2E9PWw6MD09PWEpKXJldHVybn1lbHNle2lm
KCEoYTxyLmNoaWxkTm9kZXMubGVuZ3RoKSlyZXR1cm4gbj9udWxsOmU7dmFyIHU9IW4mJmE+MD9h
LTE6YTtyPXIuY2hpbGROb2Rlc1t1XSxyLmhhc0NoaWxkTm9kZXMoKSYmKHI9ci5maXJzdENoaWxk
KX1mb3IoaT1uZXcgZihyLGUpO289aVtuPyJwcmV2IjoibmV4dCJdKCk7KXtpZigzPT09by5ub2Rl
VHlwZSYmby5ub2RlVmFsdWUubGVuZ3RoPjApcmV0dXJuO2lmKCJ0cnVlIj09PXQobykpcmV0dXJu
IG99cmV0dXJuIGV9dmFyIHIsYSxsLGQsdTtvKCksbD1zLmlzQ29sbGFwc2VkKCkscj1uKHMuZ2V0
U3RhcnQoKSksYT1uKHMuZ2V0RW5kKCkpLChyfHxhKSYmKGQ9cy5nZXRSbmcoITApLGw/KHI9cnx8
YSwodT1lKHIsITApKT9pKHUsITApOih1PWUociwhMSkpP2kodSwhMSk6cy5zZWxlY3QocikpOihk
PXMuZ2V0Um5nKCEwKSxyJiZkLnNldFN0YXJ0QmVmb3JlKHIpLGEmJmQuc2V0RW5kQWZ0ZXIoYSks
cy5zZXRSbmcoZCkpKX1mdW5jdGlvbiBkKGEpe2Z1bmN0aW9uIGkoZSx0KXtmb3IoO2U9ZVt0PyJw
cmV2aW91c1NpYmxpbmciOiJuZXh0U2libGluZyJdOylpZigzIT09ZS5ub2RlVHlwZXx8ZS5ub2Rl
VmFsdWUubGVuZ3RoPjApcmV0dXJuIGV9ZnVuY3Rpb24gZChlLHQpe3Muc2VsZWN0KGUpLHMuY29s
bGFwc2UodCl9ZnVuY3Rpb24gZyhhKXtmdW5jdGlvbiBpKGUpe2Zvcih2YXIgdD1kO3Q7KXtpZih0
PT09ZSlyZXR1cm47dD10LnBhcmVudE5vZGV9dS5yZW1vdmUoZSksbCgpfWZ1bmN0aW9uIG8oKXt2
YXIgcixvLGw9ZS5zY2hlbWEuZ2V0Tm9uRW1wdHlFbGVtZW50cygpO2ZvcihvPW5ldyB0aW55bWNl
LmRvbS5UcmVlV2Fsa2VyKGQsZS5nZXRCb2R5KCkpOyhyPWE/by5wcmV2KCk6by5uZXh0KCkpJiYh
bFtyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldJiYhKDM9PT1yLm5vZGVUeXBlJiZ0aW55bWNlLnRy
aW0oci5ub2RlVmFsdWUpLmxlbmd0aD4wKTspaWYoImZhbHNlIj09PXQocikpcmV0dXJuIGkociks
ITA7cmV0dXJuIG4ocik/ITA6ITF9dmFyIGYsZCxjLGc7aWYocy5pc0NvbGxhcHNlZCgpKXtpZihm
PXMuZ2V0Um5nKCEwKSxkPWYuc3RhcnRDb250YWluZXIsYz1mLnN0YXJ0T2Zmc2V0LGQ9cihkKXx8
ZCxnPW4oZCkpcmV0dXJuIGkoZyksITE7aWYoMz09ZC5ub2RlVHlwZSYmKGE/Yz4wOmM8ZC5ub2Rl
VmFsdWUubGVuZ3RoKSlyZXR1cm4hMDtpZigxPT1kLm5vZGVUeXBlJiYoZD1kLmNoaWxkTm9kZXNb
Y118fGQpLG8oKSlyZXR1cm4hMX1yZXR1cm4hMH12YXIgbSxwLHYsRSxoPWEua2V5Q29kZTtpZih2
PXMuZ2V0U3RhcnQoKSxFPXMuZ2V0RW5kKCksbT1uKHYpfHxuKEUpLG0mJigxMTI+aHx8aD4xMjQp
JiZoIT1jLkRFTEVURSYmaCE9Yy5CQUNLU1BBQ0Upe2lmKCh0aW55bWNlLmlzTWFjP2EubWV0YUtl
eTphLmN0cmxLZXkpJiYoNjc9PWh8fDg4PT1ofHw4Nj09aCkpcmV0dXJuO2lmKGEucHJldmVudERl
ZmF1bHQoKSxoPT1jLkxFRlR8fGg9PWMuUklHSFQpe3ZhciB5PWg9PWMuTEVGVDtpZihlLmRvbS5p
c0Jsb2NrKG0pKXt2YXIgVD15P20ucHJldmlvdXNTaWJsaW5nOm0ubmV4dFNpYmxpbmcsQz1uZXcg
ZihULFQpLGI9eT9DLnByZXYoKTpDLm5leHQoKTtkKGIsIXkpfWVsc2UgZChtLHkpfX1lbHNlIGlm
KGg9PWMuTEVGVHx8aD09Yy5SSUdIVHx8aD09Yy5CQUNLU1BBQ0V8fGg9PWMuREVMRVRFKXtpZihw
PXIodikpe2lmKGg9PWMuTEVGVHx8aD09Yy5CQUNLU1BBQ0UpaWYobT1pKHAsITApLG0mJiJmYWxz
ZSI9PT10KG0pKXtpZihhLnByZXZlbnREZWZhdWx0KCksaCE9Yy5MRUZUKXJldHVybiB2b2lkIHUu
cmVtb3ZlKG0pO2QobSwhMCl9ZWxzZSBvKHApO2lmKGg9PWMuUklHSFR8fGg9PWMuREVMRVRFKWlm
KG09aShwKSxtJiYiZmFsc2UiPT09dChtKSl7aWYoYS5wcmV2ZW50RGVmYXVsdCgpLGghPWMuUklH
SFQpcmV0dXJuIHZvaWQgdS5yZW1vdmUobSk7ZChtLCExKX1lbHNlIG8ocCl9aWYoKGg9PWMuQkFD
S1NQQUNFfHxoPT1jLkRFTEVURSkmJiFnKGg9PWMuQkFDS1NQQUNFKSlyZXR1cm4gYS5wcmV2ZW50
RGVmYXVsdCgpLCExfX12YXIgdT1lLmRvbSxzPWUuc2VsZWN0aW9uLGc9Im1jZV9ub25lZGl0YWJs
ZWNhcmV0IixtPSLvu78iO2Uub24oIm1vdXNlZG93biIsZnVuY3Rpb24obil7dmFyIHI9ZS5zZWxl
Y3Rpb24uZ2V0Tm9kZSgpOyJmYWxzZSI9PT10KHIpJiZyPT1uLnRhcmdldCYmbCgpfSksZS5vbigi
bW91c2V1cCBrZXl1cCIsbCksZS5vbigia2V5ZG93biIsZCl9ZnVuY3Rpb24gYSh0KXt2YXIgbj1s
Lmxlbmd0aCxyPXQuY29udGVudCxhPXRpbnltY2UudHJpbShvKTtpZigicmF3IiE9dC5mb3JtYXQp
e2Zvcig7bi0tOylyPXIucmVwbGFjZShsW25dLGZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cyxp
PW5bbi5sZW5ndGgtMl07cmV0dXJuIGk+MCYmJyInPT1yLmNoYXJBdChpLTEpP3Q6JzxzcGFuIGNs
YXNzPSInK2ErJyIgZGF0YS1tY2UtY29udGVudD0iJytlLmRvbS5lbmNvZGUoblswXSkrJyI+Jytl
LmRvbS5lbmNvZGUoInN0cmluZyI9PXR5cGVvZiBuWzFdP25bMV06blswXSkrIjwvc3Bhbj4ifSk7
dC5jb250ZW50PXJ9fXZhciBpLG8sbCxmPXRpbnltY2UuZG9tLlRyZWVXYWxrZXIsZD0iY29udGVu
dGVkaXRhYmxlIix1PSJkYXRhLW1jZS0iK2QsYz10aW55bWNlLnV0aWwuVks7aT0iICIrdGlueW1j
ZS50cmltKGUuZ2V0UGFyYW0oIm5vbmVkaXRhYmxlX2VkaXRhYmxlX2NsYXNzIiwibWNlRWRpdGFi
bGUiKSkrIiAiLG89IiAiK3RpbnltY2UudHJpbShlLmdldFBhcmFtKCJub25lZGl0YWJsZV9ub25l
ZGl0YWJsZV9jbGFzcyIsIm1jZU5vbkVkaXRhYmxlIikpKyIgIixsPWUuZ2V0UGFyYW0oIm5vbmVk
aXRhYmxlX3JlZ2V4cCIpLGwmJiFsLmxlbmd0aCYmKGw9W2xdKSxlLm9uKCJQcmVJbml0IixmdW5j
dGlvbigpe3IoKSxsJiZlLm9uKCJCZWZvcmVTZXRDb250ZW50IixhKSxlLnBhcnNlci5hZGRBdHRy
aWJ1dGVGaWx0ZXIoImNsYXNzIixmdW5jdGlvbihlKXtmb3IodmFyIHQsbixyPWUubGVuZ3RoO3It
LTspbj1lW3JdLHQ9IiAiK24uYXR0cigiY2xhc3MiKSsiICIsLTEhPT10LmluZGV4T2YoaSk/bi5h
dHRyKHUsInRydWUiKTotMSE9PXQuaW5kZXhPZihvKSYmbi5hdHRyKHUsImZhbHNlIil9KSxlLnNl
cmlhbGl6ZXIuYWRkQXR0cmlidXRlRmlsdGVyKHUsZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49ZS5s
ZW5ndGg7bi0tOyl0PWVbbl0sbCYmdC5hdHRyKCJkYXRhLW1jZS1jb250ZW50Iik/KHQubmFtZT0i
I3RleHQiLHQudHlwZT0zLHQucmF3PSEwLHQudmFsdWU9dC5hdHRyKCJkYXRhLW1jZS1jb250ZW50
IikpOih0LmF0dHIoZCxudWxsKSx0LmF0dHIodSxudWxsKSl9KSxlLnBhcnNlci5hZGRBdHRyaWJ1
dGVGaWx0ZXIoZCxmdW5jdGlvbihlKXtmb3IodmFyIHQsbj1lLmxlbmd0aDtuLS07KXQ9ZVtuXSx0
LmF0dHIodSx0LmF0dHIoZCkpLHQuYXR0cihkLG51bGwpfSl9KSxlLm9uKCJkcm9wIixmdW5jdGlv
bihlKXtuKGUudGFyZ2V0KSYmZS5wcmV2ZW50RGVmYXVsdCgpfSl9KTt0aW55bWNlLlBsdWdpbk1h
bmFnZXIuYWRkKCJwYWdlYnJlYWsiLGZ1bmN0aW9uKGUpe3ZhciBhPSJtY2UtcGFnZWJyZWFrIix0
PWUuZ2V0UGFyYW0oInBhZ2VicmVha19zZXBhcmF0b3IiLCI8IS0tIHBhZ2VicmVhayAtLT4iKSxu
PW5ldyBSZWdFeHAodC5yZXBsYWNlKC9bXD9cLlwqXFtcXVwoXClce1x9XCtcXlwkXDpdL2csZnVu
Y3Rpb24oZSl7cmV0dXJuIlxcIitlfSksImdpIikscj0nPGltZyBzcmM9IicrdGlueW1jZS5FbnYu
dHJhbnNwYXJlbnRTcmMrJyIgY2xhc3M9IicrYSsnIiBkYXRhLW1jZS1yZXNpemU9ImZhbHNlIiAv
Pic7ZS5hZGRDb21tYW5kKCJtY2VQYWdlQnJlYWsiLGZ1bmN0aW9uKCl7ZS5pbnNlcnRDb250ZW50
KGUuc2V0dGluZ3MucGFnZWJyZWFrX3NwbGl0X2Jsb2NrPyI8cD4iK3IrIjwvcD4iOnIpfSksZS5h
ZGRCdXR0b24oInBhZ2VicmVhayIse3RpdGxlOiJQYWdlIGJyZWFrIixjbWQ6Im1jZVBhZ2VCcmVh
ayJ9KSxlLmFkZE1lbnVJdGVtKCJwYWdlYnJlYWsiLHt0ZXh0OiJQYWdlIGJyZWFrIixpY29uOiJw
YWdlYnJlYWsiLGNtZDoibWNlUGFnZUJyZWFrIixjb250ZXh0OiJpbnNlcnQifSksZS5vbigiUmVz
b2x2ZU5hbWUiLGZ1bmN0aW9uKHQpeyJJTUciPT10LnRhcmdldC5ub2RlTmFtZSYmZS5kb20uaGFz
Q2xhc3ModC50YXJnZXQsYSkmJih0Lm5hbWU9InBhZ2VicmVhayIpfSksZS5vbigiY2xpY2siLGZ1
bmN0aW9uKHQpe3Q9dC50YXJnZXQsIklNRyI9PT10Lm5vZGVOYW1lJiZlLmRvbS5oYXNDbGFzcyh0
LGEpJiZlLnNlbGVjdGlvbi5zZWxlY3QodCl9KSxlLm9uKCJCZWZvcmVTZXRDb250ZW50IixmdW5j
dGlvbihlKXtlLmNvbnRlbnQ9ZS5jb250ZW50LnJlcGxhY2UobixyKX0pLGUub24oIlByZUluaXQi
LGZ1bmN0aW9uKCl7ZS5zZXJpYWxpemVyLmFkZE5vZGVGaWx0ZXIoImltZyIsZnVuY3Rpb24oYSl7
Zm9yKHZhciBuLHIsYz1hLmxlbmd0aDtjLS07KWlmKG49YVtjXSxyPW4uYXR0cigiY2xhc3MiKSxy
JiYtMSE9PXIuaW5kZXhPZigibWNlLXBhZ2VicmVhayIpKXt2YXIgbz1uLnBhcmVudDtpZihlLnNj
aGVtYS5nZXRCbG9ja0VsZW1lbnRzKClbby5uYW1lXSYmZS5zZXR0aW5ncy5wYWdlYnJlYWtfc3Bs
aXRfYmxvY2spe28udHlwZT0zLG8udmFsdWU9dCxvLnJhdz0hMCxuLnJlbW92ZSgpO2NvbnRpbnVl
fW4udHlwZT0zLG4udmFsdWU9dCxuLnJhdz0hMH19KX0pfSk7IWZ1bmN0aW9uKGUsdCl7InVzZSBz
dHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXtmb3IodmFyIG4saT1bXSxyPTA7cjxlLmxlbmd0aDsrK3Ip
e2lmKG49c1tlW3JdXXx8byhlW3JdKSwhbil0aHJvdyJtb2R1bGUgZGVmaW5pdGlvbiBkZXBlbmRl
Y3kgbm90IGZvdW5kOiAiK2Vbcl07aS5wdXNoKG4pfXQuYXBwbHkobnVsbCxpKX1mdW5jdGlvbiBp
KGUsaSxyKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5p
dGlvbiwgbW9kdWxlIGlkIG11c3QgYmUgZGVmaW5lZCBhbmQgYmUgYSBzdHJpbmciO2lmKGk9PT10
KXRocm93ImludmFsaWQgbW9kdWxlIGRlZmluaXRpb24sIGRlcGVuZGVuY2llcyBtdXN0IGJlIHNw
ZWNpZmllZCI7aWYocj09PXQpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlvbiwgZGVmaW5p
dGlvbiBmdW5jdGlvbiBtdXN0IGJlIHNwZWNpZmllZCI7bihpLGZ1bmN0aW9uKCl7c1tlXT1yLmFw
cGx5KG51bGwsYXJndW1lbnRzKX0pfWZ1bmN0aW9uIHIoZSl7cmV0dXJuISFzW2VdfWZ1bmN0aW9u
IG8odCl7Zm9yKHZhciBuPWUsaT10LnNwbGl0KC9bLlwvXS8pLHI9MDtyPGkubGVuZ3RoOysrcil7
aWYoIW5baVtyXV0pcmV0dXJuO249bltpW3JdXX1yZXR1cm4gbn1mdW5jdGlvbiBhKG4pe2Zvcih2
YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXtmb3IodmFyIHI9ZSxvPW5baV0sYT1vLnNwbGl0KC9bLlwv
XS8pLGw9MDtsPGEubGVuZ3RoLTE7KytsKXJbYVtsXV09PT10JiYoclthW2xdXT17fSkscj1yW2Fb
bF1dO3JbYVthLmxlbmd0aC0xXV09c1tvXX19dmFyIHM9e30sbD0idGlueW1jZS9wYXN0ZXBsdWdp
bi9VdGlscyIsYz0idGlueW1jZS91dGlsL1Rvb2xzIixkPSJ0aW55bWNlL2h0bWwvRG9tUGFyc2Vy
Iix1PSJ0aW55bWNlL2h0bWwvU2NoZW1hIixmPSJ0aW55bWNlL3Bhc3RlcGx1Z2luL0NsaXBib2Fy
ZCIsbT0idGlueW1jZS9FbnYiLHA9InRpbnltY2UvdXRpbC9WSyIsZz0idGlueW1jZS9wYXN0ZXBs
dWdpbi9Xb3JkRmlsdGVyIixoPSJ0aW55bWNlL2h0bWwvU2VyaWFsaXplciIsdj0idGlueW1jZS9o
dG1sL05vZGUiLGI9InRpbnltY2UvcGFzdGVwbHVnaW4vUXVpcmtzIix5PSJ0aW55bWNlL3Bhc3Rl
cGx1Z2luL1BsdWdpbiIseD0idGlueW1jZS9QbHVnaW5NYW5hZ2VyIjtpKGwsW2MsZCx1XSxmdW5j
dGlvbihlLHQsbil7ZnVuY3Rpb24gaSh0LG4pe3JldHVybiBlLmVhY2gobixmdW5jdGlvbihlKXt0
PWUuY29uc3RydWN0b3I9PVJlZ0V4cD90LnJlcGxhY2UoZSwiIik6dC5yZXBsYWNlKGVbMF0sZVsx
XSl9KSx0fWZ1bmN0aW9uIHIoaSl7ZnVuY3Rpb24gcihlKXt2YXIgdD1lLm5hbWUsbj1lO2lmKCJi
ciI9PT10KXJldHVybiB2b2lkKHMrPSJcbiIpO2lmKGxbdF0mJihzKz0iICIpLGNbdF0pcmV0dXJu
IHZvaWQocys9IiAiKTtpZigzPT1lLnR5cGUmJihzKz1lLnZhbHVlKSwhZS5zaG9ydEVuZGVkJiYo
ZT1lLmZpcnN0Q2hpbGQpKWRvIHIoZSk7d2hpbGUoZT1lLm5leHQpO2RbdF0mJm4ubmV4dCYmKHMr
PSJcbiIsInAiPT10JiYocys9IlxuIikpfXZhciBvPW5ldyBuLGE9bmV3IHQoe30sbykscz0iIixs
PW8uZ2V0U2hvcnRFbmRlZEVsZW1lbnRzKCksYz1lLm1ha2VNYXAoInNjcmlwdCBub3NjcmlwdCBz
dHlsZSB0ZXh0YXJlYSB2aWRlbyBhdWRpbyBpZnJhbWUgb2JqZWN0IiwiICIpLGQ9by5nZXRCbG9j
a0VsZW1lbnRzKCk7cmV0dXJuIHIoYS5wYXJzZShpKSksc31yZXR1cm57ZmlsdGVyOmksaW5uZXJU
ZXh0OnJ9fSksaShmLFttLHAsbF0sZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmdW5jdGlvbihpKXtm
dW5jdGlvbiByKGUpe3ZhciB0LG49aS5kb207aWYodD1pLmZpcmUoIkJlZm9yZVBhc3RlUHJlUHJv
Y2VzcyIse2NvbnRlbnQ6ZX0pLHQ9aS5maXJlKCJQYXN0ZVByZVByb2Nlc3MiLHQpLGU9dC5jb250
ZW50LCF0LmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZihpLmhhc0V2ZW50TGlzdGVuZXJzKCJQYXN0
ZVBvc3RQcm9jZXNzIikmJiF0LmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgcj1uLmFkZChpLmdl
dEJvZHkoKSwiZGl2Iix7c3R5bGU6ImRpc3BsYXk6bm9uZSJ9LGUpO3Q9aS5maXJlKCJQYXN0ZVBv
c3RQcm9jZXNzIix7bm9kZTpyfSksbi5yZW1vdmUociksZT10Lm5vZGUuaW5uZXJIVE1MfXQuaXNE
ZWZhdWx0UHJldmVudGVkKCl8fGkuaW5zZXJ0Q29udGVudChlKX19ZnVuY3Rpb24gbyhlKXtlPWku
ZG9tLmVuY29kZShlKS5yZXBsYWNlKC9cclxuL2csIlxuIik7dmFyIHQ9aS5kb20uZ2V0UGFyZW50
KGkuc2VsZWN0aW9uLmdldFN0YXJ0KCksaS5kb20uaXNCbG9jayksbz1pLnNldHRpbmdzLmZvcmNl
ZF9yb290X2Jsb2NrLGE7byYmKGE9aS5kb20uY3JlYXRlSFRNTChvLGkuc2V0dGluZ3MuZm9yY2Vk
X3Jvb3RfYmxvY2tfYXR0cnMpLGE9YS5zdWJzdHIoMCxhLmxlbmd0aC0zKSsiPiIpLHQmJi9eKFBS
RXxESVYpJC8udGVzdCh0Lm5vZGVOYW1lKXx8IW8/ZT1uLmZpbHRlcihlLFtbL1xuL2csIjxicj4i
XV0pOihlPW4uZmlsdGVyKGUsW1svXG5cbi9nLCI8L3A+IithXSxbL14oLio8XC9wPikoPHA+KSQv
LGErIiQxIl0sWy9cbi9nLCI8YnIgLz4iXV0pLC0xIT1lLmluZGV4T2YoIjxwPiIpJiYoZT1hK2Up
KSxyKGUpfWZ1bmN0aW9uIGEoKXt2YXIgdD1pLmRvbSxuPWkuZ2V0Qm9keSgpLHI9aS5kb20uZ2V0
Vmlld1BvcnQoaS5nZXRXaW4oKSksbz1yLnksYT0yMCxzO2lmKHY9aS5zZWxlY3Rpb24uZ2V0Um5n
KCksaS5pbmxpbmUmJihzPWkuc2VsZWN0aW9uLmdldFNjcm9sbENvbnRhaW5lcigpLHMmJnMuc2Ny
b2xsVG9wPjAmJihvPXMuc2Nyb2xsVG9wKSksdi5nZXRDbGllbnRSZWN0cyl7dmFyIGw9di5nZXRD
bGllbnRSZWN0cygpO2lmKGwubGVuZ3RoKWE9bysobFswXS50b3AtdC5nZXRQb3MobikueSk7ZWxz
ZXthPW87dmFyIGM9di5zdGFydENvbnRhaW5lcjtjJiYoMz09Yy5ub2RlVHlwZSYmYy5wYXJlbnRO
b2RlIT1uJiYoYz1jLnBhcmVudE5vZGUpLDE9PWMubm9kZVR5cGUmJihhPXQuZ2V0UG9zKGMsc3x8
bikueSkpfX1oPXQuYWRkKGkuZ2V0Qm9keSgpLCJkaXYiLHtpZDoibWNlcGFzdGViaW4iLGNvbnRl
bnRFZGl0YWJsZTohMCwiZGF0YS1tY2UtYm9ndXMiOiIxIixzdHlsZToicG9zaXRpb246IGFic29s
dXRlOyB0b3A6ICIrYSsicHg7d2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgb3ZlcmZsb3c6IGhp
ZGRlbjsgb3BhY2l0eTogMCJ9LHkpLChlLmllfHxlLmdlY2tvKSYmdC5zZXRTdHlsZShoLCJsZWZ0
IiwicnRsIj09dC5nZXRTdHlsZShuLCJkaXJlY3Rpb24iLCEwKT82NTUzNTotNjU1MzUpLHQuYmlu
ZChoLCJiZWZvcmVkZWFjdGl2YXRlIGZvY3VzaW4gZm9jdXNvdXQiLGZ1bmN0aW9uKGUpe2Uuc3Rv
cFByb3BhZ2F0aW9uKCl9KSxoLmZvY3VzKCksaS5zZWxlY3Rpb24uc2VsZWN0KGgsITApfWZ1bmN0
aW9uIHMoKXtpZihoKXtmb3IodmFyIGU7ZT1pLmRvbS5nZXQoIm1jZXBhc3RlYmluIik7KWkuZG9t
LnJlbW92ZShlKSxpLmRvbS51bmJpbmQoZSk7diYmaS5zZWxlY3Rpb24uc2V0Um5nKHYpfXg9ITEs
aD12PW51bGx9ZnVuY3Rpb24gbCgpe3ZhciBlPXksdCxuO2Zvcih0PWkuZG9tLnNlbGVjdCgiZGl2
W2lkPW1jZXBhc3RlYmluXSIpLG49dC5sZW5ndGg7bi0tOyl7dmFyIHI9dFtuXS5pbm5lckhUTUw7
ZT09eSYmKGU9IiIpLHIubGVuZ3RoPmUubGVuZ3RoJiYoZT1yKX1yZXR1cm4gZX1mdW5jdGlvbiBj
KGUpe3ZhciB0PXt9O2lmKGUmJmUudHlwZXMpe3ZhciBuPWUuZ2V0RGF0YSgiVGV4dCIpO24mJm4u
bGVuZ3RoPjAmJih0WyJ0ZXh0L3BsYWluIl09bik7Zm9yKHZhciBpPTA7aTxlLnR5cGVzLmxlbmd0
aDtpKyspe3ZhciByPWUudHlwZXNbaV07dFtyXT1lLmdldERhdGEocil9fXJldHVybiB0fWZ1bmN0
aW9uIGQoZSl7cmV0dXJuIGMoZS5jbGlwYm9hcmREYXRhfHxpLmdldERvYygpLmRhdGFUcmFuc2Zl
cil9ZnVuY3Rpb24gdShlLHQpe2Z1bmN0aW9uIG4oZSl7aWYoImltYWdlL3BuZyI9PW9bYV0udHlw
ZSl7dmFyIHQ9bmV3IEZpbGVSZWFkZXI7cmV0dXJuIHQub25sb2FkPWZ1bmN0aW9uKCl7cignPGlt
ZyBzcmM9IicrdC5yZXN1bHQrJyI+Jyl9LHQucmVhZEFzRGF0YVVSTChlLmdldEFzRmlsZSgpKSwh
MH19aWYoISghaS5zZXR0aW5ncy5wYXN0ZV9kYXRhX2ltYWdlc3x8InRleHQvaHRtbCJpbiB0fHwi
dGV4dC9wbGFpbiJpbiB0KSYmZS5jbGlwYm9hcmREYXRhKXt2YXIgbz1lLmNsaXBib2FyZERhdGEu
aXRlbXM7aWYobylmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKylpZihuKG9bYV0pKXJldHVybiEw
fX1mdW5jdGlvbiBmKGUpe3ZhciB0PWkuZ2V0RG9jKCksbjtpZih0LmNhcmV0UG9zaXRpb25Gcm9t
UG9pbnQpe3ZhciByPXQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZ
KTtuPXQuY3JlYXRlUmFuZ2UoKSxuLnNldFN0YXJ0KHIub2Zmc2V0Tm9kZSxyLm9mZnNldCksbi5j
b2xsYXBzZSghMCl9ZWxzZSB0LmNhcmV0UmFuZ2VGcm9tUG9pbnQmJihuPXQuY2FyZXRSYW5nZUZy
b21Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZKSk7cmV0dXJuIG59ZnVuY3Rpb24gbShlLHQpe3Jl
dHVybiB0IGluIGUmJmVbdF0ubGVuZ3RoPjB9ZnVuY3Rpb24gcCgpe2kub24oImtleWRvd24iLGZ1
bmN0aW9uKG4pe2lmKCFuLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYodC5tZXRhS2V5UHJlc3NlZChu
KSYmODY9PW4ua2V5Q29kZXx8bi5zaGlmdEtleSYmNDU9PW4ua2V5Q29kZSkpe2lmKHg9bi5zaGlm
dEtleSYmODY9PW4ua2V5Q29kZSxuLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGI9KG5ldyBE
YXRlKS5nZXRUaW1lKCksZS5pZSYmeClyZXR1cm4gbi5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgaS5m
aXJlKCJwYXN0ZSIse2llRmFrZTohMH0pO3MoKSxhKCl9fSksaS5vbigicGFzdGUiLGZ1bmN0aW9u
KHQpe3ZhciBjPWQodCksZj0obmV3IERhdGUpLmdldFRpbWUoKS1iPDFlMyxwPSJ0ZXh0Ij09Zy5w
YXN0ZUZvcm1hdHx8eDtyZXR1cm4gdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKT92b2lkIHMoKTp1KHQs
Yyk/dm9pZCBzKCk6KGZ8fHQucHJldmVudERlZmF1bHQoKSwhZS5pZXx8ZiYmIXQuaWVGYWtlfHwo
YSgpLGkuZG9tLmJpbmQoaCwicGFzdGUiLGZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCl9
KSxpLmdldERvYygpLmV4ZWNDb21tYW5kKCJQYXN0ZSIsITEsbnVsbCksY1sidGV4dC9odG1sIl09
bCgpKSx2b2lkIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1sKCk7cmV0dXJuIGgmJmguZmly
c3RDaGlsZCYmIm1jZXBhc3RlYmluIj09PWguZmlyc3RDaGlsZC5pZCYmKHA9ITApLHMoKSwhcCYm
ZiYmZSYmZSE9eSYmKGNbInRleHQvaHRtbCJdPWUpLGUhPXkmJmZ8fChlPWNbInRleHQvaHRtbCJd
fHxjWyJ0ZXh0L3BsYWluIl18fHksZSE9eSk/KCFtKGMsInRleHQvaHRtbCIpJiZtKGMsInRleHQv
cGxhaW4iKSYmKHA9ITApLHZvaWQocD9vKGNbInRleHQvcGxhaW4iXXx8bi5pbm5lclRleHQoZSkp
OnIoZSkpKTp2b2lkKGZ8fGkud2luZG93TWFuYWdlci5hbGVydCgiUGxlYXNlIHVzZSBDdHJsK1Yv
Q21kK1Yga2V5Ym9hcmQgc2hvcnRjdXRzIHRvIHBhc3RlIGNvbnRlbnRzLiIpKX0sMCkpfSksaS5v
bigiZHJhZ3N0YXJ0IixmdW5jdGlvbihlKXtpZihlLmRhdGFUcmFuc2Zlci50eXBlcyl0cnl7ZS5k
YXRhVHJhbnNmZXIuc2V0RGF0YSgibWNlLWludGVybmFsIixpLnNlbGVjdGlvbi5nZXRDb250ZW50
KCkpfWNhdGNoKHQpe319KSxpLm9uKCJkcm9wIixmdW5jdGlvbihlKXt2YXIgdD1mKGUpO2lmKHQm
JiFlLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgbj1jKGUuZGF0YVRyYW5zZmVyKSxhPW5bIm1j
ZS1pbnRlcm5hbCJdfHxuWyJ0ZXh0L2h0bWwiXXx8blsidGV4dC9wbGFpbiJdO2EmJihlLnByZXZl
bnREZWZhdWx0KCksaS51bmRvTWFuYWdlci50cmFuc2FjdChmdW5jdGlvbigpe25bIm1jZS1pbnRl
cm5hbCJdJiZpLmV4ZWNDb21tYW5kKCJEZWxldGUiKSxpLnNlbGVjdGlvbi5zZXRSbmcodCksblsi
dGV4dC9odG1sIl0/cihhKTpvKGEpfSkpfX0pfXZhciBnPXRoaXMsaCx2LGI9MCx5PSIlTUNFUEFT
VEVCSU4lIix4O2cucGFzdGVIdG1sPXIsZy5wYXN0ZVRleHQ9byxpLm9uKCJwcmVJbml0IixmdW5j
dGlvbigpe3AoKSxpLnBhcnNlci5hZGROb2RlRmlsdGVyKCJpbWciLGZ1bmN0aW9uKHQpe2lmKCFp
LnNldHRpbmdzLnBhc3RlX2RhdGFfaW1hZ2VzKWZvcih2YXIgbj10Lmxlbmd0aDtuLS07KXt2YXIg
cj10W25dLmF0dHJpYnV0ZXMubWFwLnNyYztyJiYwPT09ci5pbmRleE9mKCJkYXRhOmltYWdlIikm
Jih0W25dLmF0dHIoImRhdGEtbWNlLW9iamVjdCIpfHxyPT09ZS50cmFuc3BhcmVudFNyY3x8dFtu
XS5yZW1vdmUoKSl9fSl9KSxpLm9uKCJQcmVQcm9jZXNzIixmdW5jdGlvbigpe2kuZG9tLnJlbW92
ZShpLmRvbS5nZXQoIm1jZXBhc3RlYmluIikpfSl9fSksaShnLFtjLGQsdSxoLHYsbF0sZnVuY3Rp
b24oZSx0LG4saSxyLG8pe2Z1bmN0aW9uIGEoZSl7cmV0dXJuLzxmb250IGZhY2U9IlRpbWVzIE5l
dyBSb21hbiJ8Y2xhc3M9Ij9Nc298c3R5bGU9IlteIl0qXGJtc28tfHN0eWxlPSdbXicnXSpcYm1z
by18dzpXb3JkRG9jdW1lbnQvaS50ZXN0KGUpfHwvY2xhc3M9Ik91dGxpbmVFbGVtZW50Ly50ZXN0
KGUpfHwvaWQ9Ij9kb2NzXC1pbnRlcm5hbFwtZ3VpZFwtLy50ZXN0KGUpfWZ1bmN0aW9uIHMocyl7
dmFyIGw9cy5zZXR0aW5ncztzLm9uKCJCZWZvcmVQYXN0ZVByZVByb2Nlc3MiLGZ1bmN0aW9uKGMp
e2Z1bmN0aW9uIGQoZSl7ZnVuY3Rpb24gdChlLHQsYSxzKXt2YXIgbD1lLl9saXN0TGV2ZWx8fG87
bCE9byYmKG8+bD9uJiYobj1uLnBhcmVudC5wYXJlbnQpOihpPW4sbj1udWxsKSksbiYmbi5uYW1l
PT1hP24uYXBwZW5kKGUpOihpPWl8fG4sbj1uZXcgcihhLDEpLHM+MSYmbi5hdHRyKCJzdGFydCIs
IiIrcyksZS53cmFwKG4pKSxlLm5hbWU9ImxpIix0LnZhbHVlPSIiO3ZhciBjPXQubmV4dDtjJiYz
PT1jLnR5cGUmJihjLnZhbHVlPWMudmFsdWUucmVwbGFjZSgvXlx1MDBhMCsvLCIiKSksbD5vJiZp
JiZpLmxhc3RDaGlsZC5hcHBlbmQobiksbz1sfWZvcih2YXIgbixpLG89MSxhPWUuZ2V0QWxsKCJw
Iikscz0wO3M8YS5sZW5ndGg7cysrKWlmKGU9YVtzXSwicCI9PWUubmFtZSYmZS5maXJzdENoaWxk
KXtmb3IodmFyIGw9IiIsYz1lLmZpcnN0Q2hpbGQ7YyYmIShsPWMudmFsdWUpOyljPWMuZmlyc3RD
aGlsZDtpZigvXlxzKltcdTIwMjJcdTAwYjdcdTAwYTdcdTAwZDhcdTI1Q0ZdXHMqJC8udGVzdChs
KSl7dChlLGMsInVsIik7Y29udGludWV9aWYoL15ccypcdytcLiQvLnRlc3QobCkpe3ZhciBkPS8o
WzAtOV0pXC4vLmV4ZWMobCksdT0xO2QmJih1PXBhcnNlSW50KGRbMV0sMTApKSx0KGUsYywib2wi
LHUpO2NvbnRpbnVlfW49bnVsbH19ZnVuY3Rpb24gdSh0LG4pe3ZhciBpPXt9LG89cy5kb20ucGFy
c2VTdHlsZShuKTtpZigicCI9PT10Lm5hbWUpe3ZhciBhPS9tc28tbGlzdDpcdysgXHcrKFswLTld
KykvLmV4ZWMobik7YSYmKHQuX2xpc3RMZXZlbD1wYXJzZUludChhWzFdLDEwKSl9cmV0dXJuIGUu
ZWFjaChvLGZ1bmN0aW9uKGUsbil7c3dpdGNoKG4pe2Nhc2UiaG9yaXotYWxpZ24iOm49InRleHQt
YWxpZ24iO2JyZWFrO2Nhc2UidmVydC1hbGlnbiI6bj0idmVydGljYWwtYWxpZ24iO2JyZWFrO2Nh
c2UiZm9udC1jb2xvciI6Y2FzZSJtc28tZm9yZWdyb3VuZCI6bj0iY29sb3IiO2JyZWFrO2Nhc2Ui
bXNvLWJhY2tncm91bmQiOmNhc2UibXNvLWhpZ2hsaWdodCI6bj0iYmFja2dyb3VuZCI7YnJlYWs7
Y2FzZSJmb250LXdlaWdodCI6Y2FzZSJmb250LXN0eWxlIjpyZXR1cm4gdm9pZCgibm9ybWFsIiE9
ZSYmKGlbbl09ZSkpO2Nhc2UibXNvLWVsZW1lbnQiOmlmKC9eKGNvbW1lbnR8Y29tbWVudC1saXN0
KSQvaS50ZXN0KGUpKXJldHVybiB2b2lkIHQucmVtb3ZlKCl9cmV0dXJuIDA9PT1uLmluZGV4T2Yo
Im1zby1jb21tZW50Iik/dm9pZCB0LnJlbW92ZSgpOnZvaWQoMCE9PW4uaW5kZXhPZigibXNvLSIp
JiYoImFsbCI9PW18fHAmJnBbbl0pJiYoaVtuXT1lKSl9KSwvKGJvbGQpL2kudGVzdChpWyJmb250
LXdlaWdodCJdKSYmKGRlbGV0ZSBpWyJmb250LXdlaWdodCJdLHQud3JhcChuZXcgcigiYiIsMSkp
KSwvKGl0YWxpYykvaS50ZXN0KGlbImZvbnQtc3R5bGUiXSkmJihkZWxldGUgaVsiZm9udC1zdHls
ZSJdLHQud3JhcChuZXcgcigiaSIsMSkpKSxpPXMuZG9tLnNlcmlhbGl6ZVN0eWxlKGksdC5uYW1l
KSxpP2k6bnVsbH12YXIgZj1jLmNvbnRlbnQsbSxwO2lmKG09bC5wYXN0ZV9yZXRhaW5fc3R5bGVf
cHJvcGVydGllcyxtJiYocD1lLm1ha2VNYXAobS5zcGxpdCgvWywgXS8pKSksbC5wYXN0ZV9lbmFi
bGVfZGVmYXVsdF9maWx0ZXJzIT09ITEmJmEoYy5jb250ZW50KSl7Yy53b3JkQ29udGVudD0hMCxm
PW8uZmlsdGVyKGYsWy88IS0tW1xzXFNdKz8tLT4vZ2ksLzwoIXxzY3JpcHRbXj5dKj4uKj88XC9z
Y3JpcHQoPz1bPlxzXSl8XC8/KFw/eG1sKDpcdyspP3xpbWd8bWV0YXxsaW5rfHN0eWxlfFx3Olx3
KykoPz1bXHNcLz5dKSlbXj5dKj4vZ2ksWy88KFwvPylzPi9naSwiPCQxc3RyaWtlPiJdLFsvJm5i
c3A7L2dpLCJceGEwIl0sWy88c3BhblxzK3N0eWxlXHMqPVxzKiJccyptc28tc3BhY2VydW5ccyo6
XHMqeWVzXHMqOz9ccyoiXHMqPihbXHNcdTAwYTBdKik8XC9zcGFuPi9naSxmdW5jdGlvbihlLHQp
e3JldHVybiB0Lmxlbmd0aD4wP3QucmVwbGFjZSgvLi8sIiAiKS5zbGljZShNYXRoLmZsb29yKHQu
bGVuZ3RoLzIpKS5zcGxpdCgiIikuam9pbigiXHhhMCIpOiIifV1dKTt2YXIgZz1sLnBhc3RlX3dv
cmRfdmFsaWRfZWxlbWVudHM7Z3x8KGc9Ii1zdHJvbmcvYiwtZW0vaSwtc3BhbiwtcCwtb2wsLXVs
LC1saSwtaDEsLWgyLC1oMywtaDQsLWg1LC1oNiwtcC9kaXYsLXRhYmxlW3dpZHRoXSwtdHIsLXRk
W2NvbHNwYW58cm93c3Bhbnx3aWR0aF0sLXRoLC10aGVhZCwtdGZvb3QsLXRib2R5LC1hW2hyZWZ8
bmFtZV0sc3ViLHN1cCxzdHJpa2UsYnIsZGVsIik7dmFyIGg9bmV3IG4oe3ZhbGlkX2VsZW1lbnRz
OmcsdmFsaWRfY2hpbGRyZW46Ii1saVtwXSJ9KTtlLmVhY2goaC5lbGVtZW50cyxmdW5jdGlvbihl
KXtlLmF0dHJpYnV0ZXNbImNsYXNzIl18fChlLmF0dHJpYnV0ZXNbImNsYXNzIl09e30sZS5hdHRy
aWJ1dGVzT3JkZXIucHVzaCgiY2xhc3MiKSksZS5hdHRyaWJ1dGVzLnN0eWxlfHwoZS5hdHRyaWJ1
dGVzLnN0eWxlPXt9LGUuYXR0cmlidXRlc09yZGVyLnB1c2goInN0eWxlIikpfSk7dmFyIHY9bmV3
IHQoe30saCk7di5hZGRBdHRyaWJ1dGVGaWx0ZXIoInN0eWxlIixmdW5jdGlvbihlKXtmb3IodmFy
IHQ9ZS5sZW5ndGgsbjt0LS07KW49ZVt0XSxuLmF0dHIoInN0eWxlIix1KG4sbi5hdHRyKCJzdHls
ZSIpKSksInNwYW4iPT1uLm5hbWUmJm4ucGFyZW50JiYhbi5hdHRyaWJ1dGVzLmxlbmd0aCYmbi51
bndyYXAoKX0pLHYuYWRkQXR0cmlidXRlRmlsdGVyKCJjbGFzcyIsZnVuY3Rpb24oZSl7Zm9yKHZh
ciB0PWUubGVuZ3RoLG4saTt0LS07KW49ZVt0XSxpPW4uYXR0cigiY2xhc3MiKSwvXihNc29Db21t
ZW50UmVmZXJlbmNlfE1zb0NvbW1lbnRUZXh0fG1zb0RlbCkkL2kudGVzdChpKSYmbi5yZW1vdmUo
KSxuLmF0dHIoImNsYXNzIixudWxsKX0pLHYuYWRkTm9kZUZpbHRlcigiZGVsIixmdW5jdGlvbihl
KXtmb3IodmFyIHQ9ZS5sZW5ndGg7dC0tOyllW3RdLnJlbW92ZSgpfSksdi5hZGROb2RlRmlsdGVy
KCJhIixmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5sZW5ndGgsbixpLHI7dC0tOylpZihuPWVbdF0s
aT1uLmF0dHIoImhyZWYiKSxyPW4uYXR0cigibmFtZSIpLGkmJi0xIT1pLmluZGV4T2YoIiNfbXNv
Y29tXyIpKW4ucmVtb3ZlKCk7ZWxzZSBpZihpJiYwPT09aS5pbmRleE9mKCJmaWxlOi8vIikmJihp
PWkuc3BsaXQoIiMiKVsxXSxpJiYoaT0iIyIraSkpLGl8fHIpe2lmKHImJiEvXl8/KD86dG9jfGVk
bnxmdG4pL2kudGVzdChyKSl7bi51bndyYXAoKTtjb250aW51ZX1uLmF0dHIoe2hyZWY6aSxuYW1l
OnJ9KX1lbHNlIG4udW53cmFwKCl9KTt2YXIgYj12LnBhcnNlKGYpO2QoYiksYy5jb250ZW50PW5l
dyBpKHt9LGgpLnNlcmlhbGl6ZShiKX19KX1yZXR1cm4gcy5pc1dvcmRDb250ZW50PWEsc30pLGko
YixbbSxjLGcsbF0sZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2Z1bmN0aW9u
IG8oZSl7ci5vbigiQmVmb3JlUGFzdGVQcmVQcm9jZXNzIixmdW5jdGlvbih0KXt0LmNvbnRlbnQ9
ZSh0LmNvbnRlbnQpfSl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gZT1pLmZpbHRlcihlLFsvXltcc1xT
XSo8Ym9keVtePl0qPlxzKjwhLS1TdGFydEZyYWdtZW50LS0+fDwhLS1FbmRGcmFnbWVudC0tPlxz
KjxcL2JvZHlbXj5dKj5bXHNcU10qJC9nLC88IS0tU3RhcnRGcmFnbWVudC0tPnw8IS0tRW5kRnJh
Z21lbnQtLT4vZyxbLzxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPlx1MDBhMDxc
L3NwYW4+L2csIlx4YTAiXSwvPGJyPiQvaV0pfWZ1bmN0aW9uIHMoZSl7aWYoIW4uaXNXb3JkQ29u
dGVudChlKSlyZXR1cm4gZTt2YXIgbz1bXTt0LmVhY2goci5zY2hlbWEuZ2V0QmxvY2tFbGVtZW50
cygpLGZ1bmN0aW9uKGUsdCl7by5wdXNoKHQpfSk7dmFyIGE9bmV3IFJlZ0V4cCgiKD86PGJyPiZu
YnNwO1tcXHNcXHJcXG5dK3w8YnI+KSooPFxcLz8oIitvLmpvaW4oInwiKSsiKVtePl0qPikoPzo8
YnI+Jm5ic3A7W1xcc1xcclxcbl0rfDxicj4pKiIsImciKTtyZXR1cm4gZT1pLmZpbHRlcihlLFtb
YSwiJDEiXV0pLGU9aS5maWx0ZXIoZSxbWy88YnI+PGJyPi9nLCI8QlI+PEJSPiJdLFsvPGJyPi9n
LCIgIl0sWy88QlI+PEJSPi9nLCI8YnI+Il1dKX1mdW5jdGlvbiBsKGUpe2lmKG4uaXNXb3JkQ29u
dGVudChlKSlyZXR1cm4gZTt2YXIgdD1yLnNldHRpbmdzLnBhc3RlX3dlYmtpdF9zdHlsZXM7aWYo
ci5zZXR0aW5ncy5wYXN0ZV9yZW1vdmVfc3R5bGVzX2lmX3dlYmtpdD09PSExfHwiYWxsIj09dCly
ZXR1cm4gZTtpZih0JiYodD10LnNwbGl0KC9bLCBdLykpLHQpe3ZhciBpPXIuZG9tLG89ci5zZWxl
Y3Rpb24uZ2V0Tm9kZSgpO2U9ZS5yZXBsYWNlKC8oPFtePl0rKSBzdHlsZT0iKFteIl0qKSIoW14+
XSo+KS9naSxmdW5jdGlvbihlLG4scixhKXt2YXIgcz1pLnBhcnNlU3R5bGUociwic3BhbiIpLGw9
e307aWYoIm5vbmUiPT09dClyZXR1cm4gbithO2Zvcih2YXIgYz0wO2M8dC5sZW5ndGg7YysrKXt2
YXIgZD1zW3RbY11dLHU9aS5nZXRTdHlsZShvLHRbY10sITApOy9jb2xvci8udGVzdCh0W2NdKSYm
KGQ9aS50b0hleChkKSx1PWkudG9IZXgodSkpLHUhPWQmJihsW3RbY11dPWQpfXJldHVybiBsPWku
c2VyaWFsaXplU3R5bGUobCwic3BhbiIpLGw/bisnIHN0eWxlPSInK2wrJyInK2E6IiJ9KX1lbHNl
IGU9ZS5yZXBsYWNlKC8oPFtePl0rKSBzdHlsZT0iKFteIl0qKSIoW14+XSo+KS9naSwiJDEkMyIp
O3JldHVybiBlPWUucmVwbGFjZSgvKDxbXj5dKykgZGF0YS1tY2Utc3R5bGU9IihbXiJdKykiKFte
Pl0qPikvZ2ksZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuIHQrJyBzdHlsZT0iJytuKyciJytpfSl9
ZS53ZWJraXQmJihvKGwpLG8oYSkpLGUuaWUmJm8ocyl9fSksaSh5LFt4LGYsZyxiXSxmdW5jdGlv
bihlLHQsbixpKXt2YXIgcjtlLmFkZCgicGFzdGUiLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG8oKXsi
dGV4dCI9PXMucGFzdGVGb3JtYXQ/KHRoaXMuYWN0aXZlKCExKSxzLnBhc3RlRm9ybWF0PSJodG1s
Iik6KHMucGFzdGVGb3JtYXQ9InRleHQiLHRoaXMuYWN0aXZlKCEwKSxyfHwoZS53aW5kb3dNYW5h
Z2VyLmFsZXJ0KCJQYXN0ZSBpcyBub3cgaW4gcGxhaW4gdGV4dCBtb2RlLiBDb250ZW50cyB3aWxs
IG5vdyBiZSBwYXN0ZWQgYXMgcGxhaW4gdGV4dCB1bnRpbCB5b3UgdG9nZ2xlIHRoaXMgb3B0aW9u
IG9mZi4iKSxyPSEwKSl9dmFyIGE9dGhpcyxzLGw9ZS5zZXR0aW5nczthLmNsaXBib2FyZD1zPW5l
dyB0KGUpLGEucXVpcmtzPW5ldyBpKGUpLGEud29yZEZpbHRlcj1uZXcgbihlKSxlLnNldHRpbmdz
LnBhc3RlX2FzX3RleHQmJihhLmNsaXBib2FyZC5wYXN0ZUZvcm1hdD0idGV4dCIpLGwucGFzdGVf
cHJlcHJvY2VzcyYmZS5vbigiUGFzdGVQcmVQcm9jZXNzIixmdW5jdGlvbihlKXtsLnBhc3RlX3By
ZXByb2Nlc3MuY2FsbChhLGEsZSl9KSxsLnBhc3RlX3Bvc3Rwcm9jZXNzJiZlLm9uKCJQYXN0ZVBv
c3RQcm9jZXNzIixmdW5jdGlvbihlKXtsLnBhc3RlX3Bvc3Rwcm9jZXNzLmNhbGwoYSxhLGUpfSks
ZS5hZGRDb21tYW5kKCJtY2VJbnNlcnRDbGlwYm9hcmRDb250ZW50IixmdW5jdGlvbihlLHQpe3Qu
Y29udGVudCYmYS5jbGlwYm9hcmQucGFzdGVIdG1sKHQuY29udGVudCksdC50ZXh0JiZhLmNsaXBi
b2FyZC5wYXN0ZVRleHQodC50ZXh0KX0pLGUucGFzdGVfYmxvY2tfZHJvcCYmZS5vbigiZHJhZ2Vu
ZCBkcmFnb3ZlciBkcmFnZ2VzdHVyZSBkcmFnZHJvcCBkcm9wIGRyYWciLGZ1bmN0aW9uKGUpe2Uu
cHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpfSksZS5zZXR0aW5ncy5wYXN0ZV9k
YXRhX2ltYWdlc3x8ZS5vbigiZHJvcCIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhVHJhbnNmZXI7
dCYmdC5maWxlcyYmdC5maWxlcy5sZW5ndGg+MCYmZS5wcmV2ZW50RGVmYXVsdCgpfSksZS5hZGRC
dXR0b24oInBhc3RldGV4dCIse2ljb246InBhc3RldGV4dCIsdG9vbHRpcDoiUGFzdGUgYXMgdGV4
dCIsb25jbGljazpvLGFjdGl2ZToidGV4dCI9PWEuY2xpcGJvYXJkLnBhc3RlRm9ybWF0fSksZS5h
ZGRNZW51SXRlbSgicGFzdGV0ZXh0Iix7dGV4dDoiUGFzdGUgYXMgdGV4dCIsc2VsZWN0YWJsZToh
MCxhY3RpdmU6cy5wYXN0ZUZvcm1hdCxvbmNsaWNrOm99KX0pfSksYShbbCxmLGcsYix5XSl9KHRo
aXMpO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoInByZXZpZXciLGZ1bmN0aW9uKGUpe3ZhciB0
PWUuc2V0dGluZ3MsaT0hdGlueW1jZS5FbnYuaWU7ZS5hZGRDb21tYW5kKCJtY2VQcmV2aWV3Iixm
dW5jdGlvbigpe2Uud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiUHJldmlldyIsd2lkdGg6cGFy
c2VJbnQoZS5nZXRQYXJhbSgicGx1Z2luX3ByZXZpZXdfd2lkdGgiLCI2NTAiKSwxMCksaGVpZ2h0
OnBhcnNlSW50KGUuZ2V0UGFyYW0oInBsdWdpbl9wcmV2aWV3X2hlaWdodCIsIjUwMCIpLDEwKSxo
dG1sOic8aWZyYW1lIHNyYz0iamF2YXNjcmlwdDpcJ1wnIiBmcmFtZWJvcmRlcj0iMCInKyhpPycg
c2FuZGJveD0iYWxsb3ctc2NyaXB0cyInOiIiKSsiPjwvaWZyYW1lPiIsYnV0dG9uczp7dGV4dDoi
Q2xvc2UiLG9uY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudCgpLnBhcmVudCgpLmNsb3NlKCl9
fSxvblBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgbixhPSIiO2ErPSc8YmFzZSBocmVmPSInK2Uu
ZG9jdW1lbnRCYXNlVVJJLmdldFVSSSgpKyciPicsdGlueW1jZS5lYWNoKGUuY29udGVudENTUyxm
dW5jdGlvbih0KXthKz0nPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iJytlLmRvY3VtZW50QmFzZVVSSS50b0Fic29sdXRlKHQpKyciPid9KTt2YXIgcj10LmJvZHlf
aWR8fCJ0aW55bWNlIjstMSE9ci5pbmRleE9mKCI9IikmJihyPWUuZ2V0UGFyYW0oImJvZHlfaWQi
LCIiLCJoYXNoIikscj1yW2UuaWRdfHxyKTt2YXIgZD10LmJvZHlfY2xhc3N8fCIiOy0xIT1kLmlu
ZGV4T2YoIj0iKSYmKGQ9ZS5nZXRQYXJhbSgiYm9keV9jbGFzcyIsIiIsImhhc2giKSxkPWRbZS5p
ZF18fCIiKTt2YXIgbz1lLnNldHRpbmdzLmRpcmVjdGlvbmFsaXR5PycgZGlyPSInK2Uuc2V0dGlu
Z3MuZGlyZWN0aW9uYWxpdHkrJyInOiIiO2lmKG49IjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFk
PiIrYSsnPC9oZWFkPjxib2R5IGlkPSInK3IrJyIgY2xhc3M9Im1jZS1jb250ZW50LWJvZHkgJytk
KyciJytvKyI+IitlLmdldENvbnRlbnQoKSsiPC9ib2R5PjwvaHRtbD4iLGkpdGhpcy5nZXRFbCgi
Ym9keSIpLmZpcnN0Q2hpbGQuc3JjPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LCIrZW5j
b2RlVVJJQ29tcG9uZW50KG4pO2Vsc2V7dmFyIHM9dGhpcy5nZXRFbCgiYm9keSIpLmZpcnN0Q2hp
bGQuY29udGVudFdpbmRvdy5kb2N1bWVudDtzLm9wZW4oKSxzLndyaXRlKG4pLHMuY2xvc2UoKX19
fSl9KSxlLmFkZEJ1dHRvbigicHJldmlldyIse3RpdGxlOiJQcmV2aWV3IixjbWQ6Im1jZVByZXZp
ZXcifSksZS5hZGRNZW51SXRlbSgicHJldmlldyIse3RleHQ6IlByZXZpZXciLGNtZDoibWNlUHJl
dmlldyIsY29udGV4dDoidmlldyJ9KX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoInByaW50
IixmdW5jdGlvbih0KXt0LmFkZENvbW1hbmQoIm1jZVByaW50IixmdW5jdGlvbigpe3QuZ2V0V2lu
KCkucHJpbnQoKX0pLHQuYWRkQnV0dG9uKCJwcmludCIse3RpdGxlOiJQcmludCIsY21kOiJtY2VQ
cmludCJ9KSx0LmFkZFNob3J0Y3V0KCJDdHJsK1AiLCIiLCJtY2VQcmludCIpLHQuYWRkTWVudUl0
ZW0oInByaW50Iix7dGV4dDoiUHJpbnQiLGNtZDoibWNlUHJpbnQiLGljb246InByaW50IixzaG9y
dGN1dDoiQ3RybCtQIixjb250ZXh0OiJmaWxlIn0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFk
ZCgic2F2ZSIsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gYSgpe3ZhciBhO3JldHVybiBhPXRpbnltY2Uu
RE9NLmdldFBhcmVudChlLmlkLCJmb3JtIiksIWUuZ2V0UGFyYW0oInNhdmVfZW5hYmxld2hlbmRp
cnR5IiwhMCl8fGUuaXNEaXJ0eSgpPyh0aW55bWNlLnRyaWdnZXJTYXZlKCksZS5nZXRQYXJhbSgi
c2F2ZV9vbnNhdmVjYWxsYmFjayIpP3ZvaWQoZS5leGVjQ2FsbGJhY2soInNhdmVfb25zYXZlY2Fs
bGJhY2siLGUpJiYoZS5zdGFydENvbnRlbnQ9dGlueW1jZS50cmltKGUuZ2V0Q29udGVudCh7Zm9y
bWF0OiJyYXcifSkpLGUubm9kZUNoYW5nZWQoKSkpOnZvaWQoYT8oZS5pc05vdERpcnR5PSEwLCgh
YS5vbnN1Ym1pdHx8YS5vbnN1Ym1pdCgpKSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnN1Ym1pdD9h
LnN1Ym1pdCgpOmUud2luZG93TWFuYWdlci5hbGVydCgiRXJyb3I6IEZvcm0gc3VibWl0IGZpZWxk
IGNvbGxpc2lvbi4iKSksZS5ub2RlQ2hhbmdlZCgpKTplLndpbmRvd01hbmFnZXIuYWxlcnQoIkVy
cm9yOiBObyBmb3JtIGVsZW1lbnQgZm91bmQuIikpKTp2b2lkIDB9ZnVuY3Rpb24gbigpe3ZhciBh
PXRpbnltY2UudHJpbShlLnN0YXJ0Q29udGVudCk7cmV0dXJuIGUuZ2V0UGFyYW0oInNhdmVfb25j
YW5jZWxjYWxsYmFjayIpP3ZvaWQgZS5leGVjQ2FsbGJhY2soInNhdmVfb25jYW5jZWxjYWxsYmFj
ayIsZSk6KGUuc2V0Q29udGVudChhKSxlLnVuZG9NYW5hZ2VyLmNsZWFyKCksdm9pZCBlLm5vZGVD
aGFuZ2VkKCkpfWZ1bmN0aW9uIHQoKXt2YXIgYT10aGlzO2Uub24oIm5vZGVDaGFuZ2UiLGZ1bmN0
aW9uKCl7YS5kaXNhYmxlZChlLmdldFBhcmFtKCJzYXZlX2VuYWJsZXdoZW5kaXJ0eSIsITApJiYh
ZS5pc0RpcnR5KCkpfSl9ZS5hZGRDb21tYW5kKCJtY2VTYXZlIixhKSxlLmFkZENvbW1hbmQoIm1j
ZUNhbmNlbCIsbiksZS5hZGRCdXR0b24oInNhdmUiLHtpY29uOiJzYXZlIix0ZXh0OiJTYXZlIixj
bWQ6Im1jZVNhdmUiLGRpc2FibGVkOiEwLG9uUG9zdFJlbmRlcjp0fSksZS5hZGRCdXR0b24oImNh
bmNlbCIse3RleHQ6IkNhbmNlbCIsaWNvbjohMSxjbWQ6Im1jZUNhbmNlbCIsZGlzYWJsZWQ6ITAs
b25Qb3N0UmVuZGVyOnR9KSxlLmFkZFNob3J0Y3V0KCJjdHJsK3MiLCIiLCJtY2VTYXZlIil9KTsh
ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxuLGEscil7ZnVuY3Rpb24gaShlLHQpe2lmKHQ9dHx8
MCwhZVswXSl0aHJvdyJmaW5kQW5kUmVwbGFjZURPTVRleHQgY2Fubm90IGhhbmRsZSB6ZXJvLWxl
bmd0aCBtYXRjaGVzIjt2YXIgbj1lLmluZGV4O2lmKHQ+MCl7dmFyIGE9ZVt0XTtpZighYSl0aHJv
dyJJbnZhbGlkIGNhcHR1cmUgZ3JvdXAiO24rPWVbMF0uaW5kZXhPZihhKSxlWzBdPWF9cmV0dXJu
W24sbitlWzBdLmxlbmd0aCxbZVswXV1dfWZ1bmN0aW9uIGQoZSl7dmFyIHQ7aWYoMz09PWUubm9k
ZVR5cGUpcmV0dXJuIGUuZGF0YTtpZihoW2Uubm9kZU5hbWVdJiYhdVtlLm5vZGVOYW1lXSlyZXR1
cm4iIjtpZih0PSIiLCh1W2Uubm9kZU5hbWVdfHxtW2Uubm9kZU5hbWVdKSYmKHQrPSJcbiIpLGU9
ZS5maXJzdENoaWxkKWRvIHQrPWQoZSk7d2hpbGUoZT1lLm5leHRTaWJsaW5nKTtyZXR1cm4gdH1m
dW5jdGlvbiBvKGUsdCxuKXt2YXIgYSxyLGksZCxvPVtdLGw9MCxjPWUscz10LnNoaWZ0KCksZj0w
O2U6Zm9yKDs7KXtpZigodVtjLm5vZGVOYW1lXXx8bVtjLm5vZGVOYW1lXSkmJmwrKywzPT09Yy5u
b2RlVHlwZSYmKCFyJiZjLmxlbmd0aCtsPj1zWzFdPyhyPWMsZD1zWzFdLWwpOmEmJm8ucHVzaChj
KSwhYSYmYy5sZW5ndGgrbD5zWzBdJiYoYT1jLGk9c1swXS1sKSxsKz1jLmxlbmd0aCksYSYmcil7
aWYoYz1uKHtzdGFydE5vZGU6YSxzdGFydE5vZGVJbmRleDppLGVuZE5vZGU6cixlbmROb2RlSW5k
ZXg6ZCxpbm5lck5vZGVzOm8sbWF0Y2g6c1syXSxtYXRjaEluZGV4OmZ9KSxsLT1yLmxlbmd0aC1k
LGE9bnVsbCxyPW51bGwsbz1bXSxzPXQuc2hpZnQoKSxmKyssIXMpYnJlYWt9ZWxzZXtpZigoIWhb
Yy5ub2RlTmFtZV18fHVbYy5ub2RlTmFtZV0pJiZjLmZpcnN0Q2hpbGQpe2M9Yy5maXJzdENoaWxk
O2NvbnRpbnVlfWlmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGluZztjb250aW51ZX19Zm9y
KDs7KXtpZihjLm5leHRTaWJsaW5nKXtjPWMubmV4dFNpYmxpbmc7YnJlYWt9aWYoYy5wYXJlbnRO
b2RlPT09ZSlicmVhayBlO2M9Yy5wYXJlbnROb2RlfX19ZnVuY3Rpb24gbChlKXt2YXIgdDtpZigi
ZnVuY3Rpb24iIT10eXBlb2YgZSl7dmFyIG49ZS5ub2RlVHlwZT9lOmYuY3JlYXRlRWxlbWVudChl
KTt0PWZ1bmN0aW9uKGUsdCl7dmFyIGE9bi5jbG9uZU5vZGUoITEpO3JldHVybiBhLnNldEF0dHJp
YnV0ZSgiZGF0YS1tY2UtaW5kZXgiLHQpLGUmJmEuYXBwZW5kQ2hpbGQoZi5jcmVhdGVUZXh0Tm9k
ZShlKSksYX19ZWxzZSB0PWU7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuLGEscixpPWUuc3RhcnRO
b2RlLGQ9ZS5lbmROb2RlLG89ZS5tYXRjaEluZGV4O2lmKGk9PT1kKXt2YXIgbD1pO3I9bC5wYXJl
bnROb2RlLGUuc3RhcnROb2RlSW5kZXg+MCYmKG49Zi5jcmVhdGVUZXh0Tm9kZShsLmRhdGEuc3Vi
c3RyaW5nKDAsZS5zdGFydE5vZGVJbmRleCkpLHIuaW5zZXJ0QmVmb3JlKG4sbCkpO3ZhciBjPXQo
ZS5tYXRjaFswXSxvKTtyZXR1cm4gci5pbnNlcnRCZWZvcmUoYyxsKSxlLmVuZE5vZGVJbmRleDxs
Lmxlbmd0aCYmKGE9Zi5jcmVhdGVUZXh0Tm9kZShsLmRhdGEuc3Vic3RyaW5nKGUuZW5kTm9kZUlu
ZGV4KSksci5pbnNlcnRCZWZvcmUoYSxsKSksbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpLGN9
bj1mLmNyZWF0ZVRleHROb2RlKGkuZGF0YS5zdWJzdHJpbmcoMCxlLnN0YXJ0Tm9kZUluZGV4KSks
YT1mLmNyZWF0ZVRleHROb2RlKGQuZGF0YS5zdWJzdHJpbmcoZS5lbmROb2RlSW5kZXgpKTtmb3Io
dmFyIHM9dChpLmRhdGEuc3Vic3RyaW5nKGUuc3RhcnROb2RlSW5kZXgpLG8pLHU9W10saD0wLG09
ZS5pbm5lck5vZGVzLmxlbmd0aDttPmg7KytoKXt2YXIgZz1lLmlubmVyTm9kZXNbaF0scD10KGcu
ZGF0YSxvKTtnLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHAsZyksdS5wdXNoKHApfXZhciB4PXQo
ZC5kYXRhLnN1YnN0cmluZygwLGUuZW5kTm9kZUluZGV4KSxvKTtyZXR1cm4gcj1pLnBhcmVudE5v
ZGUsci5pbnNlcnRCZWZvcmUobixpKSxyLmluc2VydEJlZm9yZShzLGkpLHIucmVtb3ZlQ2hpbGQo
aSkscj1kLnBhcmVudE5vZGUsci5pbnNlcnRCZWZvcmUoeCxkKSxyLmluc2VydEJlZm9yZShhLGQp
LHIucmVtb3ZlQ2hpbGQoZCkseH19dmFyIGMscyxmLHUsaCxtLGc9W10scD0wO2lmKGY9dC5vd25l
ckRvY3VtZW50LHU9ci5nZXRCbG9ja0VsZW1lbnRzKCksaD1yLmdldFdoaXRlU3BhY2VFbGVtZW50
cygpLG09ci5nZXRTaG9ydEVuZGVkRWxlbWVudHMoKSxzPWQodCkpe2lmKGUuZ2xvYmFsKWZvcig7
Yz1lLmV4ZWMocyk7KWcucHVzaChpKGMsYSkpO2Vsc2UgYz1zLm1hdGNoKGUpLGcucHVzaChpKGMs
YSkpO3JldHVybiBnLmxlbmd0aCYmKHA9Zy5sZW5ndGgsbyh0LGcsbChuKSkpLHB9fWZ1bmN0aW9u
IHQodCl7ZnVuY3Rpb24gbigpe2Z1bmN0aW9uIGUoKXtyLnN0YXR1c2Jhci5maW5kKCIjbmV4dCIp
LmRpc2FibGVkKCFkKHMrMSkubGVuZ3RoKSxyLnN0YXR1c2Jhci5maW5kKCIjcHJldiIpLmRpc2Fi
bGVkKCFkKHMtMSkubGVuZ3RoKX1mdW5jdGlvbiBuKCl7dGlueW1jZS51aS5NZXNzYWdlQm94LmFs
ZXJ0KCJDb3VsZCBub3QgZmluZCB0aGUgc3BlY2lmaWVkIHN0cmluZy4iLGZ1bmN0aW9uKCl7ci5m
aW5kKCIjZmluZCIpWzBdLmZvY3VzKCl9KX12YXIgYT17fSxyPXRpbnltY2UudWkuRmFjdG9yeS5j
cmVhdGUoe3R5cGU6IndpbmRvdyIsbGF5b3V0OiJmbGV4IixwYWNrOiJjZW50ZXIiLGFsaWduOiJj
ZW50ZXIiLG9uQ2xvc2U6ZnVuY3Rpb24oKXt0LmZvY3VzKCksYy5kb25lKCl9LG9uU3VibWl0OmZ1
bmN0aW9uKHQpe3ZhciBpLG8sbCxmO3JldHVybiB0LnByZXZlbnREZWZhdWx0KCksbz1yLmZpbmQo
IiNjYXNlIikuY2hlY2tlZCgpLGY9ci5maW5kKCIjd29yZHMiKS5jaGVja2VkKCksbD1yLmZpbmQo
IiNmaW5kIikudmFsdWUoKSxsLmxlbmd0aD9hLnRleHQ9PWwmJmEuY2FzZVN0YXRlPT1vJiZhLndo
b2xlV29yZD09Zj8wPT09ZChzKzEpLmxlbmd0aD92b2lkIG4oKTooYy5uZXh0KCksdm9pZCBlKCkp
OihpPWMuZmluZChsLG8sZiksaXx8bigpLHIuc3RhdHVzYmFyLml0ZW1zKCkuc2xpY2UoMSkuZGlz
YWJsZWQoMD09PWkpLGUoKSx2b2lkKGE9e3RleHQ6bCxjYXNlU3RhdGU6byx3aG9sZVdvcmQ6Zn0p
KTooYy5kb25lKCExKSx2b2lkIHIuc3RhdHVzYmFyLml0ZW1zKCkuc2xpY2UoMSkuZGlzYWJsZWQo
ITApKX0sYnV0dG9uczpbe3RleHQ6IkZpbmQiLG9uY2xpY2s6ZnVuY3Rpb24oKXtyLnN1Ym1pdCgp
fX0se3RleHQ6IlJlcGxhY2UiLGRpc2FibGVkOiEwLG9uY2xpY2s6ZnVuY3Rpb24oKXtjLnJlcGxh
Y2Uoci5maW5kKCIjcmVwbGFjZSIpLnZhbHVlKCkpfHwoci5zdGF0dXNiYXIuaXRlbXMoKS5zbGlj
ZSgxKS5kaXNhYmxlZCghMCkscz0tMSxhPXt9KX19LHt0ZXh0OiJSZXBsYWNlIGFsbCIsZGlzYWJs
ZWQ6ITAsb25jbGljazpmdW5jdGlvbigpe2MucmVwbGFjZShyLmZpbmQoIiNyZXBsYWNlIikudmFs
dWUoKSwhMCwhMCksci5zdGF0dXNiYXIuaXRlbXMoKS5zbGljZSgxKS5kaXNhYmxlZCghMCksYT17
fX19LHt0eXBlOiJzcGFjZXIiLGZsZXg6MX0se3RleHQ6IlByZXYiLG5hbWU6InByZXYiLGRpc2Fi
bGVkOiEwLG9uY2xpY2s6ZnVuY3Rpb24oKXtjLnByZXYoKSxlKCl9fSx7dGV4dDoiTmV4dCIsbmFt
ZToibmV4dCIsZGlzYWJsZWQ6ITAsb25jbGljazpmdW5jdGlvbigpe2MubmV4dCgpLGUoKX19XSx0
aXRsZToiRmluZCBhbmQgcmVwbGFjZSIsaXRlbXM6e3R5cGU6ImZvcm0iLHBhZGRpbmc6MjAsbGFi
ZWxHYXA6MzAsc3BhY2luZzoxMCxpdGVtczpbe3R5cGU6InRleHRib3giLG5hbWU6ImZpbmQiLHNp
emU6NDAsbGFiZWw6IkZpbmQiLHZhbHVlOnQuc2VsZWN0aW9uLmdldE5vZGUoKS5zcmN9LHt0eXBl
OiJ0ZXh0Ym94IixuYW1lOiJyZXBsYWNlIixzaXplOjQwLGxhYmVsOiJSZXBsYWNlIHdpdGgifSx7
dHlwZToiY2hlY2tib3giLG5hbWU6ImNhc2UiLHRleHQ6Ik1hdGNoIGNhc2UiLGxhYmVsOiIgIn0s
e3R5cGU6ImNoZWNrYm94IixuYW1lOiJ3b3JkcyIsdGV4dDoiV2hvbGUgd29yZHMiLGxhYmVsOiIg
In1dfX0pLnJlbmRlclRvKCkucmVmbG93KCl9ZnVuY3Rpb24gYShlKXt2YXIgdD1lLmdldEF0dHJp
YnV0ZSgiZGF0YS1tY2UtaW5kZXgiKTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/IiIrdDp0fWZ1
bmN0aW9uIHIobil7dmFyIGEscjtyZXR1cm4gcj10LmRvbS5jcmVhdGUoInNwYW4iLHsiZGF0YS1t
Y2UtYm9ndXMiOjF9KSxyLmNsYXNzTmFtZT0ibWNlLW1hdGNoLW1hcmtlciIsYT10LmdldEJvZHko
KSxjLmRvbmUoITEpLGUobixhLHIsITEsdC5zY2hlbWEpfWZ1bmN0aW9uIGkoZSl7dmFyIHQ9ZS5w
YXJlbnROb2RlO2UuZmlyc3RDaGlsZCYmdC5pbnNlcnRCZWZvcmUoZS5maXJzdENoaWxkLGUpLGUu
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX1mdW5jdGlvbiBkKGUpe3ZhciBuLHI9W107aWYobj10
aW55bWNlLnRvQXJyYXkodC5nZXRCb2R5KCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKSks
bi5sZW5ndGgpZm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBkPWEobltpXSk7bnVsbCE9
PWQmJmQubGVuZ3RoJiZkPT09ZS50b1N0cmluZygpJiZyLnB1c2gobltpXSl9cmV0dXJuIHJ9ZnVu
Y3Rpb24gbyhlKXt2YXIgbj1zLGE9dC5kb207ZT1lIT09ITEsZT9uKys6bi0tLGEucmVtb3ZlQ2xh
c3MoZChzKSwibWNlLW1hdGNoLW1hcmtlci1zZWxlY3RlZCIpO3ZhciByPWQobik7cmV0dXJuIHIu
bGVuZ3RoPyhhLmFkZENsYXNzKGQobiksIm1jZS1tYXRjaC1tYXJrZXItc2VsZWN0ZWQiKSx0LnNl
bGVjdGlvbi5zY3JvbGxJbnRvVmlldyhyWzBdKSxuKTotMX1mdW5jdGlvbiBsKGUpe2UucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChlKX12YXIgYz10aGlzLHM9LTE7Yy5pbml0PWZ1bmN0aW9uKGUpe2Uu
YWRkTWVudUl0ZW0oInNlYXJjaHJlcGxhY2UiLHt0ZXh0OiJGaW5kIGFuZCByZXBsYWNlIixzaG9y
dGN1dDoiQ3RybCtGIixvbmNsaWNrOm4sc2VwYXJhdG9yOiJiZWZvcmUiLGNvbnRleHQ6ImVkaXQi
fSksZS5hZGRCdXR0b24oInNlYXJjaHJlcGxhY2UiLHt0b29sdGlwOiJGaW5kIGFuZCByZXBsYWNl
IixzaG9ydGN1dDoiQ3RybCtGIixvbmNsaWNrOm59KSxlLmFkZENvbW1hbmQoIlNlYXJjaFJlcGxh
Y2UiLG4pLGUuc2hvcnRjdXRzLmFkZCgiQ3RybCtGIiwiIixuKX0sYy5maW5kPWZ1bmN0aW9uKGUs
dCxuKXtlPWUucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCJc
XCQmIiksZT1uPyJcXGIiK2UrIlxcYiI6ZTt2YXIgYT1yKG5ldyBSZWdFeHAoZSx0PyJnIjoiZ2ki
KSk7cmV0dXJuIGEmJihzPS0xLHM9byghMCkpLGF9LGMubmV4dD1mdW5jdGlvbigpe3ZhciBlPW8o
ITApOy0xIT09ZSYmKHM9ZSl9LGMucHJldj1mdW5jdGlvbigpe3ZhciBlPW8oITEpOy0xIT09ZSYm
KHM9ZSl9LGMucmVwbGFjZT1mdW5jdGlvbihlLG4scil7dmFyIG8sZix1LGgsbSxnLHA9cztmb3Io
bj1uIT09ITEsdT10LmdldEJvZHkoKSxmPXRpbnltY2UudG9BcnJheSh1LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJzcGFuIikpLG89MDtvPGYubGVuZ3RoO28rKyl7dmFyIHg9YShmW29dKTtpZihudWxs
IT09eCYmeC5sZW5ndGgpaWYoaD1tPXBhcnNlSW50KHgsMTApLHJ8fGg9PT1zKXtmb3IoZS5sZW5n
dGg/KGZbb10uZmlyc3RDaGlsZC5ub2RlVmFsdWU9ZSxpKGZbb10pKTpsKGZbb10pO2ZbKytvXTsp
aWYoaD1hKGZbb10pLG51bGwhPT14JiZ4Lmxlbmd0aCl7aWYoaCE9PW0pe28tLTticmVha31sKGZb
b10pfW4mJnAtLX1lbHNlIG0+cyYmZltvXS5zZXRBdHRyaWJ1dGUoImRhdGEtbWNlLWluZGV4Iixt
LTEpfXJldHVybiB0LnVuZG9NYW5hZ2VyLmFkZCgpLHM9cCxuPyhnPWQocCsxKS5sZW5ndGg+MCxj
Lm5leHQoKSk6KGc9ZChwLTEpLmxlbmd0aD4wLGMucHJldigpKSwhciYmZ30sYy5kb25lPWZ1bmN0
aW9uKGUpe3ZhciBuLHIsZCxvO2ZvcihyPXRpbnltY2UudG9BcnJheSh0LmdldEJvZHkoKS5nZXRF
bGVtZW50c0J5VGFnTmFtZSgic3BhbiIpKSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBsPWEocltu
XSk7bnVsbCE9PWwmJmwubGVuZ3RoJiYobD09PXMudG9TdHJpbmcoKSYmKGR8fChkPXJbbl0uZmly
c3RDaGlsZCksbz1yW25dLmZpcnN0Q2hpbGQpLGkocltuXSkpfWlmKGQmJm8pe3ZhciBjPXQuZG9t
LmNyZWF0ZVJuZygpO3JldHVybiBjLnNldFN0YXJ0KGQsMCksYy5zZXRFbmQobyxvLmRhdGEubGVu
Z3RoKSxlIT09ITEmJnQuc2VsZWN0aW9uLnNldFJuZyhjKSxjfX19dGlueW1jZS5QbHVnaW5NYW5h
Z2VyLmFkZCgic2VhcmNocmVwbGFjZSIsdCl9KCk7IWZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3Qi
O2Z1bmN0aW9uIG4oZSx0KXtmb3IodmFyIG4sbz1bXSxyPTA7cjxlLmxlbmd0aDsrK3Ipe2lmKG49
bFtlW3JdXXx8aShlW3JdKSwhbil0aHJvdyJtb2R1bGUgZGVmaW5pdGlvbiBkZXBlbmRlY3kgbm90
IGZvdW5kOiAiK2Vbcl07by5wdXNoKG4pfXQuYXBwbHkobnVsbCxvKX1mdW5jdGlvbiBvKGUsbyxy
KXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlvbiwg
bW9kdWxlIGlkIG11c3QgYmUgZGVmaW5lZCBhbmQgYmUgYSBzdHJpbmciO2lmKG89PT10KXRocm93
ImludmFsaWQgbW9kdWxlIGRlZmluaXRpb24sIGRlcGVuZGVuY2llcyBtdXN0IGJlIHNwZWNpZmll
ZCI7aWYocj09PXQpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlvbiwgZGVmaW5pdGlvbiBm
dW5jdGlvbiBtdXN0IGJlIHNwZWNpZmllZCI7bihvLGZ1bmN0aW9uKCl7bFtlXT1yLmFwcGx5KG51
bGwsYXJndW1lbnRzKX0pfWZ1bmN0aW9uIHIoZSl7cmV0dXJuISFsW2VdfWZ1bmN0aW9uIGkodCl7
Zm9yKHZhciBuPWUsbz10LnNwbGl0KC9bLlwvXS8pLHI9MDtyPG8ubGVuZ3RoOysrcil7aWYoIW5b
b1tyXV0pcmV0dXJuO249bltvW3JdXX1yZXR1cm4gbn1mdW5jdGlvbiBhKG4pe2Zvcih2YXIgbz0w
O288bi5sZW5ndGg7bysrKXtmb3IodmFyIHI9ZSxpPW5bb10sYT1pLnNwbGl0KC9bLlwvXS8pLHM9
MDtzPGEubGVuZ3RoLTE7KytzKXJbYVtzXV09PT10JiYoclthW3NdXT17fSkscj1yW2Fbc11dO3Jb
YVthLmxlbmd0aC0xXV09bFtpXX19dmFyIGw9e30scz0idGlueW1jZS9zcGVsbGNoZWNrZXJwbHVn
aW4vRG9tVGV4dE1hdGNoZXIiLGM9InRpbnltY2Uvc3BlbGxjaGVja2VycGx1Z2luL1BsdWdpbiIs
ZD0idGlueW1jZS9QbHVnaW5NYW5hZ2VyIix1PSJ0aW55bWNlL3V0aWwvVG9vbHMiLGY9InRpbnlt
Y2UvdWkvTWVudSIsbT0idGlueW1jZS9kb20vRE9NVXRpbHMiLHA9InRpbnltY2UvdXRpbC9YSFIi
LGc9InRpbnltY2UvdXRpbC9VUkkiLGg9InRpbnltY2UvdXRpbC9KU09OIjtvKHMsW10sZnVuY3Rp
b24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUsdCl7aWYoIWVbMF0pdGhyb3ci
ZmluZEFuZFJlcGxhY2VET01UZXh0IGNhbm5vdCBoYW5kbGUgemVyby1sZW5ndGggbWF0Y2hlcyI7
cmV0dXJue3N0YXJ0OmUuaW5kZXgsZW5kOmUuaW5kZXgrZVswXS5sZW5ndGgsdGV4dDplWzBdLGRh
dGE6dH19ZnVuY3Rpb24gbyhlKXt2YXIgdDtpZigzPT09ZS5ub2RlVHlwZSlyZXR1cm4gZS5kYXRh
O2lmKFBbZS5ub2RlTmFtZV0mJiFTW2Uubm9kZU5hbWVdKXJldHVybiIiO2lmKHQ9IiIsKFNbZS5u
b2RlTmFtZV18fE5bZS5ub2RlTmFtZV0pJiYodCs9IlxuIiksZT1lLmZpcnN0Q2hpbGQpZG8gdCs9
byhlKTt3aGlsZShlPWUubmV4dFNpYmxpbmcpO3JldHVybiB0fWZ1bmN0aW9uIHIoZSx0LG4pe3Zh
ciBvLHIsaSxhLGw9W10scz0wLGM9ZSxkLHU9MDt0PXQuc2xpY2UoMCksdC5zb3J0KGZ1bmN0aW9u
KGUsdCl7cmV0dXJuIGUuc3RhcnQtdC5zdGFydH0pLGQ9dC5zaGlmdCgpO2U6Zm9yKDs7KXtpZigo
U1tjLm5vZGVOYW1lXXx8TltjLm5vZGVOYW1lXSkmJnMrKywzPT09Yy5ub2RlVHlwZSYmKCFyJiZj
Lmxlbmd0aCtzPj1kLmVuZD8ocj1jLGE9ZC5lbmQtcyk6byYmbC5wdXNoKGMpLCFvJiZjLmxlbmd0
aCtzPmQuc3RhcnQmJihvPWMsaT1kLnN0YXJ0LXMpLHMrPWMubGVuZ3RoKSxvJiZyKXtpZihjPW4o
e3N0YXJ0Tm9kZTpvLHN0YXJ0Tm9kZUluZGV4OmksZW5kTm9kZTpyLGVuZE5vZGVJbmRleDphLGlu
bmVyTm9kZXM6bCxtYXRjaDpkLnRleHQsbWF0Y2hJbmRleDp1fSkscy09ci5sZW5ndGgtYSxvPW51
bGwscj1udWxsLGw9W10sZD10LnNoaWZ0KCksdSsrLCFkKWJyZWFrfWVsc2V7aWYoKCFQW2Mubm9k
ZU5hbWVdfHxTW2Mubm9kZU5hbWVdKSYmYy5maXJzdENoaWxkKXtjPWMuZmlyc3RDaGlsZDtjb250
aW51ZX1pZihjLm5leHRTaWJsaW5nKXtjPWMubmV4dFNpYmxpbmc7Y29udGludWV9fWZvcig7Oyl7
aWYoYy5uZXh0U2libGluZyl7Yz1jLm5leHRTaWJsaW5nO2JyZWFrfWlmKGMucGFyZW50Tm9kZT09
PWUpYnJlYWsgZTtjPWMucGFyZW50Tm9kZX19fWZ1bmN0aW9uIGkoZSl7ZnVuY3Rpb24gdCh0LG4p
e3ZhciBvPXdbbl07by5zdGVuY2lsfHwoby5zdGVuY2lsPWUobykpO3ZhciByPW8uc3RlbmNpbC5j
bG9uZU5vZGUoITEpO3JldHVybiByLnNldEF0dHJpYnV0ZSgiZGF0YS1tY2UtaW5kZXgiLG4pLHQm
JnIuYXBwZW5kQ2hpbGQoay5kb2MuY3JlYXRlVGV4dE5vZGUodCkpLHJ9cmV0dXJuIGZ1bmN0aW9u
KGUpe3ZhciBuLG8scixpPWUuc3RhcnROb2RlLGE9ZS5lbmROb2RlLGw9ZS5tYXRjaEluZGV4LHM9
ay5kb2M7aWYoaT09PWEpe3ZhciBjPWk7cj1jLnBhcmVudE5vZGUsZS5zdGFydE5vZGVJbmRleD4w
JiYobj1zLmNyZWF0ZVRleHROb2RlKGMuZGF0YS5zdWJzdHJpbmcoMCxlLnN0YXJ0Tm9kZUluZGV4
KSksci5pbnNlcnRCZWZvcmUobixjKSk7dmFyIGQ9dChlLm1hdGNoLGwpO3JldHVybiByLmluc2Vy
dEJlZm9yZShkLGMpLGUuZW5kTm9kZUluZGV4PGMubGVuZ3RoJiYobz1zLmNyZWF0ZVRleHROb2Rl
KGMuZGF0YS5zdWJzdHJpbmcoZS5lbmROb2RlSW5kZXgpKSxyLmluc2VydEJlZm9yZShvLGMpKSxj
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyksZH1uPXMuY3JlYXRlVGV4dE5vZGUoaS5kYXRhLnN1
YnN0cmluZygwLGUuc3RhcnROb2RlSW5kZXgpKSxvPXMuY3JlYXRlVGV4dE5vZGUoYS5kYXRhLnN1
YnN0cmluZyhlLmVuZE5vZGVJbmRleCkpO2Zvcih2YXIgdT10KGkuZGF0YS5zdWJzdHJpbmcoZS5z
dGFydE5vZGVJbmRleCksbCksZj1bXSxtPTAscD1lLmlubmVyTm9kZXMubGVuZ3RoO3A+bTsrK20p
e3ZhciBnPWUuaW5uZXJOb2Rlc1ttXSxoPXQoZy5kYXRhLGwpO2cucGFyZW50Tm9kZS5yZXBsYWNl
Q2hpbGQoaCxnKSxmLnB1c2goaCl9dmFyIHY9dChhLmRhdGEuc3Vic3RyaW5nKDAsZS5lbmROb2Rl
SW5kZXgpLGwpO3JldHVybiByPWkucGFyZW50Tm9kZSxyLmluc2VydEJlZm9yZShuLGkpLHIuaW5z
ZXJ0QmVmb3JlKHUsaSksci5yZW1vdmVDaGlsZChpKSxyPWEucGFyZW50Tm9kZSxyLmluc2VydEJl
Zm9yZSh2LGEpLHIuaW5zZXJ0QmVmb3JlKG8sYSksci5yZW1vdmVDaGlsZChhKSx2fX1mdW5jdGlv
biBhKGUpe3ZhciB0PWUucGFyZW50Tm9kZTt0Lmluc2VydEJlZm9yZShlLmZpcnN0Q2hpbGQsZSks
ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfWZ1bmN0aW9uIGwodCl7dmFyIG49ZS5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiKiIpLG89W107dD0ibnVtYmVyIj09dHlwZW9mIHQ/IiIrdDpudWxsO2Zv
cih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgaT1uW3JdLGE9aS5nZXRBdHRyaWJ1dGUoImRh
dGEtbWNlLWluZGV4Iik7bnVsbCE9PWEmJmEubGVuZ3RoJiYoYT09PXR8fG51bGw9PT10KSYmby5w
dXNoKGkpfXJldHVybiBvfWZ1bmN0aW9uIHMoZSl7Zm9yKHZhciB0PXcubGVuZ3RoO3QtLTspaWYo
d1t0XT09PWUpcmV0dXJuIHQ7cmV0dXJuLTF9ZnVuY3Rpb24gYyhlKXt2YXIgdD1bXTtyZXR1cm4g
ZChmdW5jdGlvbihuLG8pe2UobixvKSYmdC5wdXNoKG4pfSksdz10LHRoaXN9ZnVuY3Rpb24gZChl
KXtmb3IodmFyIHQ9MCxuPXcubGVuZ3RoO24+dCYmZSh3W3RdLHQpIT09ITE7dCsrKTtyZXR1cm4g
dGhpc31mdW5jdGlvbiB1KHQpe3JldHVybiB3Lmxlbmd0aCYmcihlLHcsaSh0KSksdGhpc31mdW5j
dGlvbiBmKGUsdCl7aWYoQyYmZS5nbG9iYWwpZm9yKDt4PWUuZXhlYyhDKTspdy5wdXNoKG4oeCx0
KSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gbShlKXt2YXIgdCxuPWwoZT9zKGUpOm51bGwpO2Zvcih0
PW4ubGVuZ3RoO3QtLTspYShuW3RdKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBwKGUpe3JldHVybiB3
W2UuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1pbmRleCIpXX1mdW5jdGlvbiBnKGUpe3JldHVybiBs
KHMoZSkpWzBdfWZ1bmN0aW9uIGgoZSx0LG4pe3JldHVybiB3LnB1c2goe3N0YXJ0OmUsZW5kOmUr
dCx0ZXh0OkMuc3Vic3RyKGUsdCksZGF0YTpufSksdGhpc31mdW5jdGlvbiB2KGUpe3ZhciBuPWwo
cyhlKSksbz10LmRvbS5jcmVhdGVSbmcoKTtyZXR1cm4gby5zZXRTdGFydEJlZm9yZShuWzBdKSxv
LnNldEVuZEFmdGVyKG5bbi5sZW5ndGgtMV0pLG99ZnVuY3Rpb24gYihlLG4pe3ZhciBvPXYoZSk7
cmV0dXJuIG8uZGVsZXRlQ29udGVudHMoKSxuLmxlbmd0aD4wJiZvLmluc2VydE5vZGUodC5kb20u
ZG9jLmNyZWF0ZVRleHROb2RlKG4pKSxvfWZ1bmN0aW9uIHkoKXtyZXR1cm4gdy5zcGxpY2UoMCx3
Lmxlbmd0aCksbSgpLHRoaXN9dmFyIHgsdz1bXSxDLGs9dC5kb20sUyxQLE47cmV0dXJuIFM9dC5z
Y2hlbWEuZ2V0QmxvY2tFbGVtZW50cygpLFA9dC5zY2hlbWEuZ2V0V2hpdGVTcGFjZUVsZW1lbnRz
KCksTj10LnNjaGVtYS5nZXRTaG9ydEVuZGVkRWxlbWVudHMoKSxDPW8oZSkse3RleHQ6QyxtYXRj
aGVzOncsZWFjaDpkLGZpbHRlcjpjLHJlc2V0OnksbWF0Y2hGcm9tRWxlbWVudDpwLGVsZW1lbnRG
cm9tTWF0Y2g6ZyxmaW5kOmYsYWRkOmgsd3JhcDp1LHVud3JhcDptLHJlcGxhY2U6YixyYW5nZUZy
b21NYXRjaDp2LGluZGV4T2Y6c319fSksbyhjLFtzLGQsdSxmLG0scCxnLGhdLGZ1bmN0aW9uKGUs
dCxuLG8scixpLGEsbCl7dC5hZGQoInNwZWxsY2hlY2tlciIsZnVuY3Rpb24odCxzKXtmdW5jdGlv
biBjKCl7cmV0dXJuIEMudGV4dE1hdGNoZXJ8fChDLnRleHRNYXRjaGVyPW5ldyBlKHQuZ2V0Qm9k
eSgpLHQpKSxDLnRleHRNYXRjaGVyfWZ1bmN0aW9uIGQoZSx0KXt2YXIgbz1bXTtyZXR1cm4gbi5l
YWNoKHQsZnVuY3Rpb24oZSl7by5wdXNoKHtzZWxlY3RhYmxlOiEwLHRleHQ6ZS5uYW1lLGRhdGE6
ZS52YWx1ZX0pfSksb31mdW5jdGlvbiB1KGUpe2Zvcih2YXIgdCBpbiBlKXJldHVybiExO3JldHVy
biEwfWZ1bmN0aW9uIGYoZSxpKXt2YXIgYT1bXSxsPWtbZV07bi5lYWNoKGwsZnVuY3Rpb24oZSl7
YS5wdXNoKHt0ZXh0OmUsb25jbGljazpmdW5jdGlvbigpe3QuaW5zZXJ0Q29udGVudCh0LmRvbS5l
bmNvZGUoZSkpLHQuZG9tLnJlbW92ZShpKSxnKCl9fSl9KSxhLnB1c2guYXBwbHkoYSxbe3RleHQ6
Ii0ifSx7dGV4dDoiSWdub3JlIixvbmNsaWNrOmZ1bmN0aW9uKCl7aChlLGkpfX0se3RleHQ6Ikln
bm9yZSBhbGwiLG9uY2xpY2s6ZnVuY3Rpb24oKXtoKGUsaSwhMCl9fSx7dGV4dDoiRmluaXNoIixv
bmNsaWNrOnZ9XSksUD1uZXcgbyh7aXRlbXM6YSxjb250ZXh0OiJjb250ZXh0bWVudSIsb25hdXRv
aGlkZTpmdW5jdGlvbihlKXstMSE9ZS50YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoInNwZWxsY2hl
Y2tlciIpJiZlLnByZXZlbnREZWZhdWx0KCl9LG9uaGlkZTpmdW5jdGlvbigpe1AucmVtb3ZlKCks
UD1udWxsfX0pLFAucmVuZGVyVG8oZG9jdW1lbnQuYm9keSk7dmFyIHM9ci5ET00uZ2V0UG9zKHQu
Z2V0Q29udGVudEFyZWFDb250YWluZXIoKSksYz10LmRvbS5nZXRQb3MoaVswXSksZD10LmRvbS5n
ZXRSb290KCk7IkJPRFkiPT1kLm5vZGVOYW1lPyhjLngtPWQub3duZXJEb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZC5zY3JvbGxMZWZ0LGMueS09ZC5vd25lckRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGQuc2Nyb2xsVG9wKTooYy54LT1kLnNjcm9sbExlZnQs
Yy55LT1kLnNjcm9sbFRvcCkscy54Kz1jLngscy55Kz1jLnksUC5tb3ZlVG8ocy54LHMueStpWzBd
Lm9mZnNldEhlaWdodCl9ZnVuY3Rpb24gbSgpe3JldHVybiB0LmdldFBhcmFtKCJzcGVsbGNoZWNr
ZXJfd29yZGNoYXJfcGF0dGVybiIpfHxuZXcgUmVnRXhwKCdbXlxccyEiIyQlJigpKissLS4vOjs8
PT4/QFtcXF1eX3t8fWBceGE3XHhhOVx4YWJceGFlXHhiMVx4YjZceGI3XHhiOFx4YmJceGJjXHhi
ZFx4YmVceGJmXHhkN1x4ZjdceGE0XHUyMDFkXHUyMDFjXHUyMDFlXSsnLCJnIil9ZnVuY3Rpb24g
cCgpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHQuc2V0UHJvZ3Jlc3NTdGF0ZSghMSksdShlKT8odC53
aW5kb3dNYW5hZ2VyLmFsZXJ0KCJObyBtaXNzcGVsbGluZ3MgZm91bmQiKSx2b2lkKFM9ITEpKToo
az1lLGMoKS5maW5kKG0oKSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiEhZVt0LnRleHRdfSku
d3JhcChmdW5jdGlvbihlKXtyZXR1cm4gdC5kb20uY3JlYXRlKCJzcGFuIix7ImNsYXNzIjoibWNl
LXNwZWxsY2hlY2tlci13b3JkIiwiZGF0YS1tY2UtYm9ndXMiOjEsImRhdGEtbWNlLXdvcmQiOmUu
dGV4dH0pfSksdm9pZCB0LmZpcmUoIlNwZWxsY2hlY2tTdGFydCIpKX1mdW5jdGlvbiBuKGUpe3Qu
d2luZG93TWFuYWdlci5hbGVydChlKSx0LnNldFByb2dyZXNzU3RhdGUoITEpLHYoKX1mdW5jdGlv
biBvKGUsdCxvKXtpLnNlbmQoe3VybDpuZXcgYShzKS50b0Fic29sdXRlKE4uc3BlbGxjaGVja2Vy
X3JwY191cmwpLHR5cGU6InBvc3QiLGNvbnRlbnRfdHlwZToiYXBwbGljYXRpb24veC13d3ctZm9y
bS11cmxlbmNvZGVkIixkYXRhOiJ0ZXh0PSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyImbGFuZz0i
K04uc3BlbGxjaGVja2VyX2xhbmd1YWdlLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7ZT1sLnBhcnNlKGUp
LGU/ZS5lcnJvcj9uKGUuZXJyb3IpOm8oZS53b3Jkcyk6bigiU2V2ZXIgcmVzcG9uc2Ugd2Fzbid0
IHByb3BlciBKU09OLiIpfSxlcnJvcjpmdW5jdGlvbihlLHQpe24oIlNwZWxsY2hlY2tlciByZXF1
ZXN0IGVycm9yOiAiK3Quc3RhdHVzKX19KX1pZihTKXJldHVybiB2b2lkIHYoKTt2KCksUz0hMCx0
LnNldFByb2dyZXNzU3RhdGUoITApO3ZhciByPU4uc3BlbGxjaGVja2VyX2NhbGxiYWNrfHxvO3Iu
Y2FsbChDLCJzcGVsbGNoZWNrIixjKCkudGV4dCxlLG4pLHQuZm9jdXMoKX1mdW5jdGlvbiBnKCl7
dC5kb20uc2VsZWN0KCJzcGFuLm1jZS1zcGVsbGNoZWNrZXItd29yZCIpLmxlbmd0aHx8digpfWZ1
bmN0aW9uIGgoZSxvLHIpe3Quc2VsZWN0aW9uLmNvbGxhcHNlKCkscj9uLmVhY2godC5kb20uc2Vs
ZWN0KCJzcGFuLm1jZS1zcGVsbGNoZWNrZXItd29yZCIpLGZ1bmN0aW9uKG4pe24uZ2V0QXR0cmli
dXRlKCJkYXRhLW1jZS13b3JkIik9PWUmJnQuZG9tLnJlbW92ZShuLCEwKX0pOnQuZG9tLnJlbW92
ZShvLCEwKSxnKCl9ZnVuY3Rpb24gdigpe2MoKS5yZXNldCgpLEMudGV4dE1hdGNoZXI9bnVsbCxT
JiYoUz0hMSx0LmZpcmUoIlNwZWxsY2hlY2tFbmQiKSl9ZnVuY3Rpb24gYihlKXt2YXIgdD1lLmdl
dEF0dHJpYnV0ZSgiZGF0YS1tY2UtaW5kZXgiKTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/IiIr
dDp0fWZ1bmN0aW9uIHkoZSl7dmFyIG8scj1bXTtpZihvPW4udG9BcnJheSh0LmdldEJvZHkoKS5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgic3BhbiIpKSxvLmxlbmd0aClmb3IodmFyIGk9MDtpPG8ubGVu
Z3RoO2krKyl7dmFyIGE9YihvW2ldKTtudWxsIT09YSYmYS5sZW5ndGgmJmE9PT1lLnRvU3RyaW5n
KCkmJnIucHVzaChvW2ldKX1yZXR1cm4gcn1mdW5jdGlvbiB4KGUpe3ZhciB0PU4uc3BlbGxjaGVj
a2VyX2xhbmd1YWdlO2UuY29udHJvbC5pdGVtcygpLmVhY2goZnVuY3Rpb24oZSl7ZS5hY3RpdmUo
ZS5zZXR0aW5ncy5kYXRhPT09dCl9KX12YXIgdyxDPXRoaXMsayxTLFAsTj10LnNldHRpbmdzLFI9
Ti5zcGVsbGNoZWNrZXJfbGFuZ3VhZ2VzfHwiRW5nbGlzaD1lbixEYW5pc2g9ZGEsRHV0Y2g9bmws
RmlubmlzaD1maSxGcmVuY2g9ZnJfRlIsR2VybWFuPWRlLEl0YWxpYW49aXQsUG9saXNoPXBsLFBv
cnR1Z3Vlc2U9cHRfQlIsU3BhbmlzaD1lcyxTd2VkaXNoPXN2Ijt3PWQoIkxhbmd1YWdlIixuLm1h
cChSLnNwbGl0KCIsIiksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zcGxpdCgiPSIpO3JldHVybntuYW1l
OnRbMF0sdmFsdWU6dFsxXX19KSksdC5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciBuPWUudGFy
Z2V0O2lmKCJtY2Utc3BlbGxjaGVja2VyLXdvcmQiPT1uLmNsYXNzTmFtZSl7ZS5wcmV2ZW50RGVm
YXVsdCgpO3ZhciBvPXkoYihuKSk7aWYoby5sZW5ndGg+MCl7dmFyIHI9dC5kb20uY3JlYXRlUm5n
KCk7ci5zZXRTdGFydEJlZm9yZShvWzBdKSxyLnNldEVuZEFmdGVyKG9bby5sZW5ndGgtMV0pLHQu
c2VsZWN0aW9uLnNldFJuZyhyKSxmKG4uZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS13b3JkIiksbyl9
fX0pLHQuYWRkTWVudUl0ZW0oInNwZWxsY2hlY2tlciIse3RleHQ6IlNwZWxsY2hlY2siLGNvbnRl
eHQ6InRvb2xzIixvbmNsaWNrOnAsc2VsZWN0YWJsZTohMCxvblBvc3RSZW5kZXI6ZnVuY3Rpb24o
KXt2YXIgZT10aGlzO3Qub24oIlNwZWxsY2hlY2tTdGFydCBTcGVsbGNoZWNrRW5kIixmdW5jdGlv
bigpe2UuYWN0aXZlKFMpfSl9fSk7dmFyIFQ9e3Rvb2x0aXA6IlNwZWxsY2hlY2siLG9uY2xpY2s6
cCxvblBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3Qub24oIlNwZWxsY2hlY2tTdGFy
dCBTcGVsbGNoZWNrRW5kIixmdW5jdGlvbigpe2UuYWN0aXZlKFMpfSl9fTt3Lmxlbmd0aD4xJiYo
VC50eXBlPSJzcGxpdGJ1dHRvbiIsVC5tZW51PXcsVC5vbnNob3c9eCxULm9uc2VsZWN0PWZ1bmN0
aW9uKGUpe04uc3BlbGxjaGVja2VyX2xhbmd1YWdlPWUuY29udHJvbC5zZXR0aW5ncy5kYXRhfSks
dC5hZGRCdXR0b24oInNwZWxsY2hlY2tlciIsVCksdC5hZGRDb21tYW5kKCJtY2VTcGVsbENoZWNr
IixwKSx0Lm9uKCJyZW1vdmUiLGZ1bmN0aW9uKCl7UCYmKFAucmVtb3ZlKCksUD1udWxsKX0pLHQu
b24oImNoYW5nZSIsZyksdGhpcy5nZXRUZXh0TWF0Y2hlcj1jLHRoaXMuZ2V0V29yZENoYXJQYXR0
ZXJuPW0sdGhpcy5nZXRMYW5ndWFnZT1mdW5jdGlvbigpe3JldHVybiBOLnNwZWxsY2hlY2tlcl9s
YW5ndWFnZX0sTi5zcGVsbGNoZWNrZXJfbGFuZ3VhZ2U9Ti5zcGVsbGNoZWNrZXJfbGFuZ3VhZ2V8
fE4ubGFuZ3VhZ2V8fCJlbiJ9KX0pLGEoW3MsY10pfSh0aGlzKTt0aW55bWNlLlBsdWdpbk1hbmFn
ZXIuYWRkKCJ0YWJmb2N1cyIsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihlKXs5IT09ZS5rZXlDb2Rl
fHxlLmN0cmxLZXl8fGUuYWx0S2V5fHxlLm1ldGFLZXl8fGUucHJldmVudERlZmF1bHQoKX1mdW5j
dGlvbiB0KG4pe2Z1bmN0aW9uIHQobil7ZnVuY3Rpb24gdChlKXtyZXR1cm4iQk9EWSI9PT1lLm5v
ZGVOYW1lfHwiaGlkZGVuIiE9ZS50eXBlJiYibm9uZSIhPWUuc3R5bGUuZGlzcGxheSYmImhpZGRl
biIhPWUuc3R5bGUudmlzaWJpbGl0eSYmdChlLnBhcmVudE5vZGUpfWZ1bmN0aW9uIHIoZSl7cmV0
dXJuIGUudGFiSW5kZXh8fCJJTlBVVCI9PWUubm9kZU5hbWV8fCJURVhUQVJFQSI9PWUubm9kZU5h
bWV9ZnVuY3Rpb24gYyhlKXtyZXR1cm4hcihlKSYmIi0xIiE9ZS5nZXRBdHRyaWJ1dGUoInRhYmlu
ZGV4IikmJnQoZSl9aWYodT1pLnNlbGVjdCgiOmlucHV0OmVuYWJsZWQsKlt0YWJpbmRleF06bm90
KGlmcmFtZSkiKSxvKHUsZnVuY3Rpb24obix0KXtyZXR1cm4gbi5pZD09ZS5pZD8oYT10LCExKTp2
b2lkIDB9KSxuPjApe2ZvcihkPWErMTtkPHUubGVuZ3RoO2QrKylpZihjKHVbZF0pKXJldHVybiB1
W2RdfWVsc2UgZm9yKGQ9YS0xO2Q+PTA7ZC0tKWlmKGModVtkXSkpcmV0dXJuIHVbZF07cmV0dXJu
IG51bGx9dmFyIGEsdSxjLGQ7aWYoISg5IT09bi5rZXlDb2RlfHxuLmN0cmxLZXl8fG4uYWx0S2V5
fHxuLm1ldGFLZXkpJiYoYz1yKGUuZ2V0UGFyYW0oInRhYl9mb2N1cyIsZS5nZXRQYXJhbSgidGFi
Zm9jdXNfZWxlbWVudHMiLCI6cHJldiw6bmV4dCIpKSksMT09Yy5sZW5ndGgmJihjWzFdPWNbMF0s
Y1swXT0iOnByZXYiKSx1PW4uc2hpZnRLZXk/IjpwcmV2Ij09Y1swXT90KC0xKTppLmdldChjWzBd
KToiOm5leHQiPT1jWzFdP3QoMSk6aS5nZXQoY1sxXSkpKXt2YXIgeT10aW55bWNlLmdldCh1Lmlk
fHx1Lm5hbWUpO3UuaWQmJnk/eS5mb2N1cygpOndpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7
dGlueW1jZS5FbnYud2Via2l0fHx3aW5kb3cuZm9jdXMoKSx1LmZvY3VzKCl9LDEwKSxuLnByZXZl
bnREZWZhdWx0KCl9fXZhciBpPXRpbnltY2UuRE9NLG89dGlueW1jZS5lYWNoLHI9dGlueW1jZS5l
eHBsb2RlO2Uub24oImluaXQiLGZ1bmN0aW9uKCl7ZS5pbmxpbmUmJnRpbnltY2UuRE9NLnNldEF0
dHJpYihlLmdldEJvZHkoKSwidGFiSW5kZXgiLG51bGwpfSksZS5vbigia2V5dXAiLG4pLHRpbnlt
Y2UuRW52LmdlY2tvP2Uub24oImtleXByZXNzIGtleWRvd24iLHQpOmUub24oImtleWRvd24iLHQp
fSk7IWZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXtmb3IodmFyIG4s
bz1bXSxpPTA7aTxlLmxlbmd0aDsrK2kpe2lmKG49bFtlW2ldXXx8cihlW2ldKSwhbil0aHJvdyJt
b2R1bGUgZGVmaW5pdGlvbiBkZXBlbmRlY3kgbm90IGZvdW5kOiAiK2VbaV07by5wdXNoKG4pfXQu
YXBwbHkobnVsbCxvKX1mdW5jdGlvbiBvKGUsbyxpKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhy
b3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlvbiwgbW9kdWxlIGlkIG11c3QgYmUgZGVmaW5lZCBh
bmQgYmUgYSBzdHJpbmciO2lmKG89PT10KXRocm93ImludmFsaWQgbW9kdWxlIGRlZmluaXRpb24s
IGRlcGVuZGVuY2llcyBtdXN0IGJlIHNwZWNpZmllZCI7aWYoaT09PXQpdGhyb3ciaW52YWxpZCBt
b2R1bGUgZGVmaW5pdGlvbiwgZGVmaW5pdGlvbiBmdW5jdGlvbiBtdXN0IGJlIHNwZWNpZmllZCI7
bihvLGZ1bmN0aW9uKCl7bFtlXT1pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pfWZ1bmN0aW9uIGko
ZSl7cmV0dXJuISFsW2VdfWZ1bmN0aW9uIHIodCl7Zm9yKHZhciBuPWUsbz10LnNwbGl0KC9bLlwv
XS8pLGk9MDtpPG8ubGVuZ3RoOysraSl7aWYoIW5bb1tpXV0pcmV0dXJuO249bltvW2ldXX1yZXR1
cm4gbn1mdW5jdGlvbiBhKG4pe2Zvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKXtmb3IodmFyIGk9
ZSxyPW5bb10sYT1yLnNwbGl0KC9bLlwvXS8pLHM9MDtzPGEubGVuZ3RoLTE7KytzKWlbYVtzXV09
PT10JiYoaVthW3NdXT17fSksaT1pW2Fbc11dO2lbYVthLmxlbmd0aC0xXV09bFtyXX19dmFyIGw9
e30scz0idGlueW1jZS90YWJsZXBsdWdpbi9UYWJsZUdyaWQiLGM9InRpbnltY2UvdXRpbC9Ub29s
cyIsZD0idGlueW1jZS9FbnYiLHU9InRpbnltY2UvdGFibGVwbHVnaW4vUXVpcmtzIixmPSJ0aW55
bWNlL3V0aWwvVksiLG09InRpbnltY2UvdGFibGVwbHVnaW4vQ2VsbFNlbGVjdGlvbiIscD0idGlu
eW1jZS9kb20vVHJlZVdhbGtlciIsZz0idGlueW1jZS90YWJsZXBsdWdpbi9QbHVnaW4iLGg9InRp
bnltY2UvUGx1Z2luTWFuYWdlciI7byhzLFtjLGRdLGZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gbyhl
LHQpe3JldHVybiBwYXJzZUludChlLmdldEF0dHJpYnV0ZSh0KXx8MSwxMCl9dmFyIGk9ZS5lYWNo
O3JldHVybiBmdW5jdGlvbihyLGEpe2Z1bmN0aW9uIGwoKXt2YXIgZT0wO0E9W10saShbInRoZWFk
IiwidGJvZHkiLCJ0Zm9vdCJdLGZ1bmN0aW9uKHQpe3ZhciBuPUkuc2VsZWN0KCI+ICIrdCsiIHRy
IixhKTtpKG4sZnVuY3Rpb24obixyKXtyKz1lLGkoSS5zZWxlY3QoIj4gdGQsID4gdGgiLG4pLGZ1
bmN0aW9uKGUsbil7dmFyIGksYSxsLHM7aWYoQVtyXSlmb3IoO0Fbcl1bbl07KW4rKztmb3IobD1v
KGUsInJvd3NwYW4iKSxzPW8oZSwiY29sc3BhbiIpLGE9cjtyK2w+YTthKyspZm9yKEFbYV18fChB
W2FdPVtdKSxpPW47bitzPmk7aSsrKUFbYV1baV09e3BhcnQ6dCxyZWFsOmE9PXImJmk9PW4sZWxt
OmUscm93c3BhbjpsLGNvbHNwYW46c319KX0pLGUrPW4ubGVuZ3RofSl9ZnVuY3Rpb24gcyhlLHQp
e3JldHVybiBlPWUuY2xvbmVOb2RlKHQpLGUucmVtb3ZlQXR0cmlidXRlKCJpZCIpLGV9ZnVuY3Rp
b24gYyhlLHQpe3ZhciBuO3JldHVybiBuPUFbdF0sbj9uW2VdOnZvaWQgMH1mdW5jdGlvbiBkKGUs
dCxuKXtlJiYobj1wYXJzZUludChuLDEwKSwxPT09bj9lLnJlbW92ZUF0dHJpYnV0ZSh0LDEpOmUu
c2V0QXR0cmlidXRlKHQsbiwxKSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gZSYmKEkuaGFzQ2xhc3Mo
ZS5lbG0sIm1jZS1pdGVtLXNlbGVjdGVkIil8fGU9PU0pfWZ1bmN0aW9uIGYoKXt2YXIgZT1bXTty
ZXR1cm4gaShhLnJvd3MsZnVuY3Rpb24odCl7aSh0LmNlbGxzLGZ1bmN0aW9uKG4pe3JldHVybiBJ
Lmhhc0NsYXNzKG4sIm1jZS1pdGVtLXNlbGVjdGVkIil8fE0mJm49PU0uZWxtPyhlLnB1c2godCks
ITEpOnZvaWQgMH0pfSksZX1mdW5jdGlvbiBtKCl7dmFyIGU9SS5jcmVhdGVSbmcoKTtlLnNldFN0
YXJ0QWZ0ZXIoYSksZS5zZXRFbmRBZnRlcihhKSxFLnNldFJuZyhlKSxJLnJlbW92ZShhKX1mdW5j
dGlvbiBwKHQpe3ZhciBvLGE9e307cmV0dXJuIHIuc2V0dGluZ3MudGFibGVfY2xvbmVfZWxlbWVu
dHMhPT0hMSYmKGE9ZS5tYWtlTWFwKChyLnNldHRpbmdzLnRhYmxlX2Nsb25lX2VsZW1lbnRzfHwi
c3Ryb25nIGVtIGIgaSBzcGFuIGZvbnQgaDEgaDIgaDMgaDQgaDUgaDYgcCBkaXYiKS50b1VwcGVy
Q2FzZSgpLC9bICxdLykpLGUud2Fsayh0LGZ1bmN0aW9uKGUpe3ZhciByO3JldHVybiAzPT1lLm5v
ZGVUeXBlPyhpKEkuZ2V0UGFyZW50cyhlLnBhcmVudE5vZGUsbnVsbCx0KS5yZXZlcnNlKCksZnVu
Y3Rpb24oZSl7YVtlLm5vZGVOYW1lXSYmKGU9cyhlLCExKSxvP3ImJnIuYXBwZW5kQ2hpbGQoZSk6
bz1yPWUscj1lKX0pLHImJihyLmlubmVySFRNTD1uLmllPyImbmJzcDsiOic8YnIgZGF0YS1tY2Ut
Ym9ndXM9IjEiIC8+JyksITEpOnZvaWQgMH0sImNoaWxkTm9kZXMiKSx0PXModCwhMSksZCh0LCJy
b3dTcGFuIiwxKSxkKHQsImNvbFNwYW4iLDEpLG8/dC5hcHBlbmRDaGlsZChvKTpuLmllfHwodC5p
bm5lckhUTUw9JzxiciBkYXRhLW1jZS1ib2d1cz0iMSIgLz4nKSx0fWZ1bmN0aW9uIGcoKXt2YXIg
ZT1JLmNyZWF0ZVJuZygpLHQ7cmV0dXJuIGkoSS5zZWxlY3QoInRyIixhKSxmdW5jdGlvbihlKXsw
PT09ZS5jZWxscy5sZW5ndGgmJkkucmVtb3ZlKGUpfSksMD09PUkuc2VsZWN0KCJ0ciIsYSkubGVu
Z3RoPyhlLnNldFN0YXJ0QmVmb3JlKGEpLGUuc2V0RW5kQmVmb3JlKGEpLEUuc2V0Um5nKGUpLHZv
aWQgSS5yZW1vdmUoYSkpOihpKEkuc2VsZWN0KCJ0aGVhZCx0Ym9keSx0Zm9vdCIsYSksZnVuY3Rp
b24oZSl7MD09PWUucm93cy5sZW5ndGgmJkkucmVtb3ZlKGUpfSksbCgpLHZvaWQoQiYmKHQ9QVtN
YXRoLm1pbihBLmxlbmd0aC0xLEIueSldLHQmJihFLnNlbGVjdCh0W01hdGgubWluKHQubGVuZ3Ro
LTEsQi54KV0uZWxtLCEwKSxFLmNvbGxhcHNlKCEwKSkpKSl9ZnVuY3Rpb24gaChlLHQsbixvKXt2
YXIgaSxyLGEsbCxzO2ZvcihpPUFbdF1bZV0uZWxtLnBhcmVudE5vZGUsYT0xO24+PWE7YSsrKWlm
KGk9SS5nZXROZXh0KGksInRyIikpe2ZvcihyPWU7cj49MDtyLS0paWYocz1BW3QrYV1bcl0uZWxt
LHMucGFyZW50Tm9kZT09aSl7Zm9yKGw9MTtvPj1sO2wrKylJLmluc2VydEFmdGVyKHAocykscyk7
YnJlYWt9aWYoLTE9PXIpZm9yKGw9MTtvPj1sO2wrKylpLmluc2VydEJlZm9yZShwKGkuY2VsbHNb
MF0pLGkuY2VsbHNbMF0pfX1mdW5jdGlvbiB2KCl7aShBLGZ1bmN0aW9uKGUsdCl7aShlLGZ1bmN0
aW9uKGUsbil7dmFyIGkscixhO2lmKHUoZSkmJihlPWUuZWxtLGk9byhlLCJjb2xzcGFuIikscj1v
KGUsInJvd3NwYW4iKSxpPjF8fHI+MSkpe2ZvcihkKGUsInJvd1NwYW4iLDEpLGQoZSwiY29sU3Bh
biIsMSksYT0wO2ktMT5hO2ErKylJLmluc2VydEFmdGVyKHAoZSksZSk7aChuLHQsci0xLGkpfX0p
fSl9ZnVuY3Rpb24gYih0LG4sbyl7dmFyIHIsYSxzLGYsbSxwLGgsYix5LHcseDtpZih0PyhyPVQo
dCksYT1yLngscz1yLnksZj1hKyhuLTEpLG09cysoby0xKSk6KEI9RD1udWxsLGkoQSxmdW5jdGlv
bihlLHQpe2koZSxmdW5jdGlvbihlLG4pe3UoZSkmJihCfHwoQj17eDpuLHk6dH0pLEQ9e3g6bix5
OnR9KX0pfSksQiYmKGE9Qi54LHM9Qi55LGY9RC54LG09RC55KSksYj1jKGEscykseT1jKGYsbSks
YiYmeSYmYi5wYXJ0PT15LnBhcnQpe2Zvcih2KCksbCgpLGI9YyhhLHMpLmVsbSxkKGIsImNvbFNw
YW4iLGYtYSsxKSxkKGIsInJvd1NwYW4iLG0tcysxKSxoPXM7bT49aDtoKyspZm9yKHA9YTtmPj1w
O3ArKylBW2hdJiZBW2hdW3BdJiYodD1BW2hdW3BdLmVsbSx0IT1iJiYodz1lLmdyZXAodC5jaGls
ZE5vZGVzKSxpKHcsZnVuY3Rpb24oZSl7Yi5hcHBlbmRDaGlsZChlKX0pLHcubGVuZ3RoJiYodz1l
LmdyZXAoYi5jaGlsZE5vZGVzKSx4PTAsaSh3LGZ1bmN0aW9uKGUpeyJCUiI9PWUubm9kZU5hbWUm
JkkuZ2V0QXR0cmliKGUsImRhdGEtbWNlLWJvZ3VzIikmJngrKzx3Lmxlbmd0aC0xJiZiLnJlbW92
ZUNoaWxkKGUpfSkpLEkucmVtb3ZlKHQpKSk7ZygpfX1mdW5jdGlvbiB5KGUpe3ZhciBuLHIsYSxs
LGMsZixtLGcsaDtpZihpKEEsZnVuY3Rpb24odCxvKXtyZXR1cm4gaSh0LGZ1bmN0aW9uKHQpe3Jl
dHVybiB1KHQpJiYodD10LmVsbSxjPXQucGFyZW50Tm9kZSxmPXMoYywhMSksbj1vLGUpPyExOnZv
aWQgMH0pLGU/IW46dm9pZCAwfSksbiE9PXQpe2ZvcihsPTA7bDxBWzBdLmxlbmd0aDtsKyspaWYo
QVtuXVtsXSYmKHI9QVtuXVtsXS5lbG0sciE9YSkpe2lmKGUpe2lmKG4+MCYmQVtuLTFdW2xdJiYo
Zz1BW24tMV1bbF0uZWxtLGg9byhnLCJyb3dTcGFuIiksaD4xKSl7ZChnLCJyb3dTcGFuIixoKzEp
O2NvbnRpbnVlfX1lbHNlIGlmKGg9byhyLCJyb3dzcGFuIiksaD4xKXtkKHIsInJvd1NwYW4iLGgr
MSk7Y29udGludWV9bT1wKHIpLGQobSwiY29sU3BhbiIsci5jb2xTcGFuKSxmLmFwcGVuZENoaWxk
KG0pLGE9cn1mLmhhc0NoaWxkTm9kZXMoKSYmKGU/Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShm
LGMpOkkuaW5zZXJ0QWZ0ZXIoZixjKSl9fWZ1bmN0aW9uIHcoZSl7dmFyIHQsbjtpKEEsZnVuY3Rp
b24obil7cmV0dXJuIGkobixmdW5jdGlvbihuLG8pe3JldHVybiB1KG4pJiYodD1vLGUpPyExOnZv
aWQgMH0pLGU/IXQ6dm9pZCAwfSksaShBLGZ1bmN0aW9uKGkscil7dmFyIGEsbCxzO2lbdF0mJihh
PWlbdF0uZWxtLGEhPW4mJihzPW8oYSwiY29sc3BhbiIpLGw9byhhLCJyb3dzcGFuIiksMT09cz9l
PyhhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHAoYSksYSksaCh0LHIsbC0xLHMpKTooSS5pbnNl
cnRBZnRlcihwKGEpLGEpLGgodCxyLGwtMSxzKSk6ZChhLCJjb2xTcGFuIixhLmNvbFNwYW4rMSks
bj1hKSl9KX1mdW5jdGlvbiB4KCl7dmFyIHQ9W107aShBLGZ1bmN0aW9uKG4pe2kobixmdW5jdGlv
bihuLHIpe3UobikmJi0xPT09ZS5pbkFycmF5KHQscikmJihpKEEsZnVuY3Rpb24oZSl7dmFyIHQ9
ZVtyXS5lbG0sbjtuPW8odCwiY29sU3BhbiIpLG4+MT9kKHQsImNvbFNwYW4iLG4tMSk6SS5yZW1v
dmUodCl9KSx0LnB1c2gocikpfSl9KSxnKCl9ZnVuY3Rpb24gQygpe2Z1bmN0aW9uIGUoZSl7dmFy
IHQsbixyO3Q9SS5nZXROZXh0KGUsInRyIiksaShlLmNlbGxzLGZ1bmN0aW9uKGUpe3ZhciB0PW8o
ZSwicm93U3BhbiIpO3Q+MSYmKGQoZSwicm93U3BhbiIsdC0xKSxuPVQoZSksaChuLngsbi55LDEs
MSkpfSksbj1UKGUuY2VsbHNbMF0pLGkoQVtuLnldLGZ1bmN0aW9uKGUpe3ZhciB0O2U9ZS5lbG0s
ZSE9ciYmKHQ9byhlLCJyb3dTcGFuIiksMT49dD9JLnJlbW92ZShlKTpkKGUsInJvd1NwYW4iLHQt
MSkscj1lKX0pfXZhciB0O3Q9ZigpLGkodC5yZXZlcnNlKCksZnVuY3Rpb24odCl7ZSh0KX0pLGco
KX1mdW5jdGlvbiBQKCl7dmFyIGU9ZigpO3JldHVybiBJLnJlbW92ZShlKSxnKCksZX1mdW5jdGlv
biBTKCl7dmFyIGU9ZigpO3JldHVybiBpKGUsZnVuY3Rpb24odCxuKXtlW25dPXModCwhMCl9KSxl
fWZ1bmN0aW9uIFIoZSx0KXt2YXIgbj1mKCksbz1uW3Q/MDpuLmxlbmd0aC0xXSxyPW8uY2VsbHMu
bGVuZ3RoO2UmJihpKEEsZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHI9MCxpKGUsZnVuY3Rpb24o
ZSl7ZS5yZWFsJiYocis9ZS5jb2xzcGFuKSxlLmVsbS5wYXJlbnROb2RlPT1vJiYodD0xKX0pLHQ/
ITE6dm9pZCAwfSksdHx8ZS5yZXZlcnNlKCksaShlLGZ1bmN0aW9uKGUpe3ZhciBuLGk9ZS5jZWxs
cy5sZW5ndGgsYTtmb3Iobj0wO2k+bjtuKyspYT1lLmNlbGxzW25dLGQoYSwiY29sU3BhbiIsMSks
ZChhLCJyb3dTcGFuIiwxKTtmb3Iobj1pO3I+bjtuKyspZS5hcHBlbmRDaGlsZChwKGUuY2VsbHNb
aS0xXSkpO2ZvcihuPXI7aT5uO24rKylJLnJlbW92ZShlLmNlbGxzW25dKTt0P28ucGFyZW50Tm9k
ZS5pbnNlcnRCZWZvcmUoZSxvKTpJLmluc2VydEFmdGVyKGUsbyl9KSxJLnJlbW92ZUNsYXNzKEku
c2VsZWN0KCJ0ZC5tY2UtaXRlbS1zZWxlY3RlZCx0aC5tY2UtaXRlbS1zZWxlY3RlZCIpLCJtY2Ut
aXRlbS1zZWxlY3RlZCIpKX1mdW5jdGlvbiBUKGUpe3ZhciB0O3JldHVybiBpKEEsZnVuY3Rpb24o
bixvKXtyZXR1cm4gaShuLGZ1bmN0aW9uKG4saSl7cmV0dXJuIG4uZWxtPT1lPyh0PXt4OmkseTpv
fSwhMSk6dm9pZCAwfSksIXR9KSx0fWZ1bmN0aW9uIGsoZSl7Qj1UKGUpfWZ1bmN0aW9uIE4oKXt2
YXIgZSx0O3JldHVybiBlPXQ9MCxpKEEsZnVuY3Rpb24obixvKXtpKG4sZnVuY3Rpb24obixpKXt2
YXIgcixhO3UobikmJihuPUFbb11baV0saT5lJiYoZT1pKSxvPnQmJih0PW8pLG4ucmVhbCYmKHI9
bi5jb2xzcGFuLTEsYT1uLnJvd3NwYW4tMSxyJiZpK3I+ZSYmKGU9aStyKSxhJiZvK2E+dCYmKHQ9
bythKSkpfSl9KSx7eDplLHk6dH19ZnVuY3Rpb24gXyhlKXt2YXIgdCxuLG8saSxyLGEsbCxzLGMs
ZDtpZihEPVQoZSksQiYmRCl7Zm9yKHQ9TWF0aC5taW4oQi54LEQueCksbj1NYXRoLm1pbihCLnks
RC55KSxvPU1hdGgubWF4KEIueCxELngpLGk9TWF0aC5tYXgoQi55LEQueSkscj1vLGE9aSxkPW47
YT49ZDtkKyspZT1BW2RdW3RdLGUucmVhbHx8dC0oZS5jb2xzcGFuLTEpPHQmJih0LT1lLmNvbHNw
YW4tMSk7Zm9yKGM9dDtyPj1jO2MrKyllPUFbbl1bY10sZS5yZWFsfHxuLShlLnJvd3NwYW4tMSk8
biYmKG4tPWUucm93c3Bhbi0xKTtmb3IoZD1uO2k+PWQ7ZCsrKWZvcihjPXQ7bz49YztjKyspZT1B
W2RdW2NdLGUucmVhbCYmKGw9ZS5jb2xzcGFuLTEscz1lLnJvd3NwYW4tMSxsJiZjK2w+ciYmKHI9
YytsKSxzJiZkK3M+YSYmKGE9ZCtzKSk7Zm9yKEkucmVtb3ZlQ2xhc3MoSS5zZWxlY3QoInRkLm1j
ZS1pdGVtLXNlbGVjdGVkLHRoLm1jZS1pdGVtLXNlbGVjdGVkIiksIm1jZS1pdGVtLXNlbGVjdGVk
IiksZD1uO2E+PWQ7ZCsrKWZvcihjPXQ7cj49YztjKyspQVtkXVtjXSYmSS5hZGRDbGFzcyhBW2Rd
W2NdLmVsbSwibWNlLWl0ZW0tc2VsZWN0ZWQiKX19dmFyIEEsQixELE0sRT1yLnNlbGVjdGlvbixJ
PUUuZG9tO2E9YXx8SS5nZXRQYXJlbnQoRS5nZXRTdGFydCgpLCJ0YWJsZSIpLGwoKSxNPUkuZ2V0
UGFyZW50KEUuZ2V0U3RhcnQoKSwidGgsdGQiKSxNJiYoQj1UKE0pLEQ9TigpLE09YyhCLngsQi55
KSksZS5leHRlbmQodGhpcyx7ZGVsZXRlVGFibGU6bSxzcGxpdDp2LG1lcmdlOmIsaW5zZXJ0Um93
OnksaW5zZXJ0Q29sOncsZGVsZXRlQ29sczp4LGRlbGV0ZVJvd3M6QyxjdXRSb3dzOlAsY29weVJv
d3M6UyxwYXN0ZVJvd3M6UixnZXRQb3M6VCxzZXRTdGFydENlbGw6ayxzZXRFbmRDZWxsOl99KX19
KSxvKHUsW2YsZCxjXSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBwYXJz
ZUludChlLmdldEF0dHJpYnV0ZSh0KXx8MSwxMCl9dmFyIGk9bi5lYWNoO3JldHVybiBmdW5jdGlv
bihuKXtmdW5jdGlvbiByKCl7ZnVuY3Rpb24gdCh0KXtmdW5jdGlvbiByKGUsbyl7dmFyIGk9ZT8i
cHJldmlvdXNTaWJsaW5nIjoibmV4dFNpYmxpbmciLHI9bi5kb20uZ2V0UGFyZW50KG8sInRyIiks
bD1yW2ldO2lmKGwpcmV0dXJuIGgobixvLGwsZSksdC5wcmV2ZW50RGVmYXVsdCgpLCEwO3ZhciBk
PW4uZG9tLmdldFBhcmVudChyLCJ0YWJsZSIpLHU9ci5wYXJlbnROb2RlLGY9dS5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpO2lmKCJ0Ym9keSI9PT1mfHxmPT09KGU/InRmb290IjoidGhlYWQiKSl7dmFy
IG09YShlLGQsdSwidGJvZHkiKTtpZihudWxsIT09bSlyZXR1cm4gcyhlLG0sbyl9cmV0dXJuIGMo
ZSxyLGksZCl9ZnVuY3Rpb24gYShlLHQsbyxpKXt2YXIgcj1uLmRvbS5zZWxlY3QoIj4iK2ksdCks
YT1yLmluZGV4T2Yobyk7aWYoZSYmMD09PWF8fCFlJiZhPT09ci5sZW5ndGgtMSlyZXR1cm4gbChl
LHQpO2lmKC0xPT09YSl7dmFyIHM9InRoZWFkIj09PW8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPzA6
ci5sZW5ndGgtMTtyZXR1cm4gcltzXX1yZXR1cm4gclthKyhlPy0xOjEpXX1mdW5jdGlvbiBsKGUs
dCl7dmFyIG89ZT8idGhlYWQiOiJ0Zm9vdCIsaT1uLmRvbS5zZWxlY3QoIj4iK28sdCk7cmV0dXJu
IDAhPT1pLmxlbmd0aD9pWzBdOm51bGx9ZnVuY3Rpb24gcyhlLG8saSl7dmFyIHI9ZChvLGUpO3Jl
dHVybiByJiZoKG4saSxyLGUpLHQucHJldmVudERlZmF1bHQoKSwhMH1mdW5jdGlvbiBjKGUsbyxp
LGEpe3ZhciBsPWFbaV07aWYobClyZXR1cm4gdShsKSwhMDt2YXIgcz1uLmRvbS5nZXRQYXJlbnQo
YSwidGQsdGgiKTtpZihzKXJldHVybiByKGUscyx0KTt2YXIgYz1kKG8sIWUpO3JldHVybiB1KGMp
LHQucHJldmVudERlZmF1bHQoKSwhMX1mdW5jdGlvbiBkKGUsdCl7dmFyIG89ZSYmZVt0PyJsYXN0
Q2hpbGQiOiJmaXJzdENoaWxkIl07cmV0dXJuIG8mJiJCUiI9PT1vLm5vZGVOYW1lP24uZG9tLmdl
dFBhcmVudChvLCJ0ZCx0aCIpOm99ZnVuY3Rpb24gdShlKXtuLnNlbGVjdGlvbi5zZXRDdXJzb3JM
b2NhdGlvbihlLDApfWZ1bmN0aW9uIGYoKXtyZXR1cm4geT09ZS5VUHx8eT09ZS5ET1dOfWZ1bmN0
aW9uIG0oZSl7dmFyIHQ9ZS5zZWxlY3Rpb24uZ2V0Tm9kZSgpLG49ZS5kb20uZ2V0UGFyZW50KHQs
InRyIik7cmV0dXJuIG51bGwhPT1ufWZ1bmN0aW9uIHAoZSl7Zm9yKHZhciB0PTAsbj1lO24ucHJl
dmlvdXNTaWJsaW5nOyluPW4ucHJldmlvdXNTaWJsaW5nLHQrPW8obiwiY29sc3BhbiIpO3JldHVy
biB0fWZ1bmN0aW9uIGcoZSx0KXt2YXIgbj0wLHI9MDtyZXR1cm4gaShlLmNoaWxkcmVuLGZ1bmN0
aW9uKGUsaSl7cmV0dXJuIG4rPW8oZSwiY29sc3BhbiIpLHI9aSxuPnQ/ITE6dm9pZCAwfSkscn1m
dW5jdGlvbiBoKGUsdCxvLGkpe3ZhciByPXAobi5kb20uZ2V0UGFyZW50KHQsInRkLHRoIikpLGE9
ZyhvLHIpLGw9by5jaGlsZE5vZGVzW2FdLHM9ZChsLGkpO3Uoc3x8bCl9ZnVuY3Rpb24gdihlKXt2
YXIgdD1uLnNlbGVjdGlvbi5nZXROb2RlKCksbz1uLmRvbS5nZXRQYXJlbnQodCwidGQsdGgiKSxp
PW4uZG9tLmdldFBhcmVudChlLCJ0ZCx0aCIpO3JldHVybiBvJiZvIT09aSYmYihvLGkpfWZ1bmN0
aW9uIGIoZSx0KXtyZXR1cm4gbi5kb20uZ2V0UGFyZW50KGUsIlRBQkxFIik9PT1uLmRvbS5nZXRQ
YXJlbnQodCwiVEFCTEUiKX12YXIgeT10LmtleUNvZGU7aWYoZigpJiZtKG4pKXt2YXIgdz1uLnNl
bGVjdGlvbi5nZXROb2RlKCk7c2V0VGltZW91dChmdW5jdGlvbigpe3YodykmJnIoIXQuc2hpZnRL
ZXkmJnk9PT1lLlVQLHcsdCl9LDApfX1uLm9uKCJLZXlEb3duIixmdW5jdGlvbihlKXt0KGUpfSl9
ZnVuY3Rpb24gYSgpe2Z1bmN0aW9uIGUoZSx0KXt2YXIgbj10Lm93bmVyRG9jdW1lbnQsbz1uLmNy
ZWF0ZVJhbmdlKCksaTtyZXR1cm4gby5zZXRTdGFydEJlZm9yZSh0KSxvLnNldEVuZChlLmVuZENv
bnRhaW5lcixlLmVuZE9mZnNldCksaT1uLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSxpLmFwcGVuZENo
aWxkKG8uY2xvbmVDb250ZW50cygpKSwwPT09aS5pbm5lckhUTUwucmVwbGFjZSgvPChicnxpbWd8
b2JqZWN0fGVtYmVkfGlucHV0fHRleHRhcmVhKVtePl0qPi9naSwiLSIpLnJlcGxhY2UoLzxbXj5d
Kz4vZywiIikubGVuZ3RofW4ub24oIktleURvd24iLGZ1bmN0aW9uKHQpe3ZhciBvLGkscj1uLmRv
bTsoMzc9PXQua2V5Q29kZXx8Mzg9PXQua2V5Q29kZSkmJihvPW4uc2VsZWN0aW9uLmdldFJuZygp
LGk9ci5nZXRQYXJlbnQoby5zdGFydENvbnRhaW5lciwidGFibGUiKSxpJiZuLmdldEJvZHkoKS5m
aXJzdENoaWxkPT1pJiZlKG8saSkmJihvPXIuY3JlYXRlUm5nKCksby5zZXRTdGFydEJlZm9yZShp
KSxvLnNldEVuZEJlZm9yZShpKSxuLnNlbGVjdGlvbi5zZXRSbmcobyksdC5wcmV2ZW50RGVmYXVs
dCgpKSl9KX1mdW5jdGlvbiBsKCl7bi5vbigiS2V5RG93biBTZXRDb250ZW50IFZpc3VhbEFpZCIs
ZnVuY3Rpb24oKXt2YXIgZTtmb3IoZT1uLmdldEJvZHkoKS5sYXN0Q2hpbGQ7ZTtlPWUucHJldmlv
dXNTaWJsaW5nKWlmKDM9PWUubm9kZVR5cGUpe2lmKGUubm9kZVZhbHVlLmxlbmd0aD4wKWJyZWFr
fWVsc2UgaWYoMT09ZS5ub2RlVHlwZSYmIWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1ib2d1cyIp
KWJyZWFrO2UmJiJUQUJMRSI9PWUubm9kZU5hbWUmJihuLnNldHRpbmdzLmZvcmNlZF9yb290X2Js
b2NrP24uZG9tLmFkZChuLmdldEJvZHkoKSxuLnNldHRpbmdzLmZvcmNlZF9yb290X2Jsb2NrLG4u
c2V0dGluZ3MuZm9yY2VkX3Jvb3RfYmxvY2tfYXR0cnMsdC5pZSYmdC5pZTwxMT8iJm5ic3A7Ijon
PGJyIGRhdGEtbWNlLWJvZ3VzPSIxIiAvPicpOm4uZG9tLmFkZChuLmdldEJvZHkoKSwiYnIiLHsi
ZGF0YS1tY2UtYm9ndXMiOiIxIn0pKX0pLG4ub24oIlByZVByb2Nlc3MiLGZ1bmN0aW9uKGUpe3Zh
ciB0PWUubm9kZS5sYXN0Q2hpbGQ7dCYmKCJCUiI9PXQubm9kZU5hbWV8fDE9PXQuY2hpbGROb2Rl
cy5sZW5ndGgmJigiQlIiPT10LmZpcnN0Q2hpbGQubm9kZU5hbWV8fCJceGEwIj09dC5maXJzdENo
aWxkLm5vZGVWYWx1ZSkpJiZ0LnByZXZpb3VzU2libGluZyYmIlRBQkxFIj09dC5wcmV2aW91c1Np
Ymxpbmcubm9kZU5hbWUmJm4uZG9tLnJlbW92ZSh0KX0pfWZ1bmN0aW9uIHMoKXtmdW5jdGlvbiBl
KGUsdCxuLG8pe3ZhciBpPTMscj1lLmRvbS5nZXRQYXJlbnQodC5zdGFydENvbnRhaW5lciwiVEFC
TEUiKSxhLGwscztyZXR1cm4gciYmKGE9ci5wYXJlbnROb2RlKSxsPXQuc3RhcnRDb250YWluZXIu
bm9kZVR5cGU9PWkmJjA9PT10LnN0YXJ0T2Zmc2V0JiYwPT09dC5lbmRPZmZzZXQmJm8mJigiVFIi
PT1uLm5vZGVOYW1lfHxuPT1hKSxzPSgiVEQiPT1uLm5vZGVOYW1lfHwiVEgiPT1uLm5vZGVOYW1l
KSYmIW8sbHx8c31mdW5jdGlvbiB0KCl7dmFyIHQ9bi5zZWxlY3Rpb24uZ2V0Um5nKCksbz1uLnNl
bGVjdGlvbi5nZXROb2RlKCksaT1uLmRvbS5nZXRQYXJlbnQodC5zdGFydENvbnRhaW5lciwiVEQs
VEgiKTtpZihlKG4sdCxvLGkpKXtpfHwoaT1vKTtmb3IodmFyIHI9aS5sYXN0Q2hpbGQ7ci5sYXN0
Q2hpbGQ7KXI9ci5sYXN0Q2hpbGQ7dC5zZXRFbmQocixyLm5vZGVWYWx1ZS5sZW5ndGgpLG4uc2Vs
ZWN0aW9uLnNldFJuZyh0KX19bi5vbigiS2V5RG93biIsZnVuY3Rpb24oKXt0KCl9KSxuLm9uKCJN
b3VzZURvd24iLGZ1bmN0aW9uKGUpezIhPWUuYnV0dG9uJiZ0KCl9KX1mdW5jdGlvbiBjKCl7bi5v
bigia2V5ZG93biIsZnVuY3Rpb24odCl7aWYoKHQua2V5Q29kZT09ZS5ERUxFVEV8fHQua2V5Q29k
ZT09ZS5CQUNLU1BBQ0UpJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIG89bi5kb20uZ2V0
UGFyZW50KG4uc2VsZWN0aW9uLmdldFN0YXJ0KCksInRhYmxlIik7aWYobyl7Zm9yKHZhciBpPW4u
ZG9tLnNlbGVjdCgidGQsdGgiLG8pLHI9aS5sZW5ndGg7ci0tOylpZighbi5kb20uaGFzQ2xhc3Mo
aVtyXSwibWNlLWl0ZW0tc2VsZWN0ZWQiKSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpLG4uZXhl
Y0NvbW1hbmQoIm1jZVRhYmxlRGVsZXRlIil9fX0pfWMoKSx0LndlYmtpdCYmKHIoKSxzKCkpLHQu
Z2Vja28mJihhKCksbCgpKSx0LmllPjEwJiYoYSgpLGwoKSl9fSksbyhtLFtzLHAsY10sZnVuY3Rp
b24oZSx0LG4pe3JldHVybiBmdW5jdGlvbihvKXtmdW5jdGlvbiBpKCl7by5nZXRCb2R5KCkuc3R5
bGUud2Via2l0VXNlclNlbGVjdD0iIixkJiYoby5kb20ucmVtb3ZlQ2xhc3Moby5kb20uc2VsZWN0
KCJ0ZC5tY2UtaXRlbS1zZWxlY3RlZCx0aC5tY2UtaXRlbS1zZWxlY3RlZCIpLCJtY2UtaXRlbS1z
ZWxlY3RlZCIpLGQ9ITEpfWZ1bmN0aW9uIHIodCl7dmFyIG4saSxyPXQudGFyZ2V0O2lmKHMmJihs
fHxyIT1zKSYmKCJURCI9PXIubm9kZU5hbWV8fCJUSCI9PXIubm9kZU5hbWUpKXtpPWEuZ2V0UGFy
ZW50KHIsInRhYmxlIiksaT09YyYmKGx8fChsPW5ldyBlKG8saSksbC5zZXRTdGFydENlbGwocyks
by5nZXRCb2R5KCkuc3R5bGUud2Via2l0VXNlclNlbGVjdD0ibm9uZSIpLGwuc2V0RW5kQ2VsbChy
KSxkPSEwKSxuPW8uc2VsZWN0aW9uLmdldFNlbCgpO3RyeXtuLnJlbW92ZUFsbFJhbmdlcz9uLnJl
bW92ZUFsbFJhbmdlcygpOm4uZW1wdHkoKX1jYXRjaCh1KXt9dC5wcmV2ZW50RGVmYXVsdCgpfX12
YXIgYT1vLmRvbSxsLHMsYyxkPSEwO3JldHVybiBvLm9uKCJNb3VzZURvd24iLGZ1bmN0aW9uKGUp
ezIhPWUuYnV0dG9uJiYoaSgpLHM9YS5nZXRQYXJlbnQoZS50YXJnZXQsInRkLHRoIiksYz1hLmdl
dFBhcmVudChzLCJ0YWJsZSIpKX0pLG8ub24oIm1vdXNlb3ZlciIsciksby5vbigicmVtb3ZlIixm
dW5jdGlvbigpe2EudW5iaW5kKG8uZ2V0RG9jKCksIm1vdXNlb3ZlciIscil9KSxvLm9uKCJNb3Vz
ZVVwIixmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSxvKXt2YXIgcj1uZXcgdChlLGUpO2Rve2lmKDM9
PWUubm9kZVR5cGUmJjAhPT1uLnRyaW0oZS5ub2RlVmFsdWUpLmxlbmd0aClyZXR1cm4gdm9pZChv
P2kuc2V0U3RhcnQoZSwwKTppLnNldEVuZChlLGUubm9kZVZhbHVlLmxlbmd0aCkpO2lmKCJCUiI9
PWUubm9kZU5hbWUpcmV0dXJuIHZvaWQobz9pLnNldFN0YXJ0QmVmb3JlKGUpOmkuc2V0RW5kQmVm
b3JlKGUpKX13aGlsZShlPW8/ci5uZXh0KCk6ci5wcmV2KCkpfXZhciBpLHI9by5zZWxlY3Rpb24s
ZCx1LGYsbSxwO2lmKHMpe2lmKGwmJihvLmdldEJvZHkoKS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0
PSIiKSxkPWEuc2VsZWN0KCJ0ZC5tY2UtaXRlbS1zZWxlY3RlZCx0aC5tY2UtaXRlbS1zZWxlY3Rl
ZCIpLGQubGVuZ3RoPjApe2k9YS5jcmVhdGVSbmcoKSxmPWRbMF0scD1kW2QubGVuZ3RoLTFdLGku
c2V0U3RhcnRCZWZvcmUoZiksaS5zZXRFbmRBZnRlcihmKSxlKGYsMSksdT1uZXcgdChmLGEuZ2V0
UGFyZW50KGRbMF0sInRhYmxlIikpO2RvIGlmKCJURCI9PWYubm9kZU5hbWV8fCJUSCI9PWYubm9k
ZU5hbWUpe2lmKCFhLmhhc0NsYXNzKGYsIm1jZS1pdGVtLXNlbGVjdGVkIikpYnJlYWs7bT1mfXdo
aWxlKGY9dS5uZXh0KCkpO2UobSksci5zZXRSbmcoaSl9by5ub2RlQ2hhbmdlZCgpLHM9bD1jPW51
bGx9fSksby5vbigiS2V5VXAgRHJvcCIsZnVuY3Rpb24oKXtpKCkscz1sPWM9bnVsbH0pLHtjbGVh
cjppfX19KSxvKGcsW3MsdSxtLGMscCxkLGhdLGZ1bmN0aW9uKGUsdCxuLG8saSxyLGEpe2Z1bmN0
aW9uIGwobyl7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZT9lLnJlcGxhY2UoL3B4JC8sIiIpOiIifWZ1
bmN0aW9uIGEoZSl7cmV0dXJuL15bMC05XSskLy50ZXN0KGUpJiYoZSs9InB4IiksZX1mdW5jdGlv
biBsKGUpe3MoImxlZnQgY2VudGVyIHJpZ2h0Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKHQpe28uZm9y
bWF0dGVyLnJlbW92ZSgiYWxpZ24iK3Qse30sZSl9KX1mdW5jdGlvbiBjKGUpe3MoInRvcCBtaWRk
bGUgYm90dG9tIi5zcGxpdCgiICIpLGZ1bmN0aW9uKHQpe28uZm9ybWF0dGVyLnJlbW92ZSgidmFs
aWduIit0LHt9LGUpfSl9ZnVuY3Rpb24gZCgpe3ZhciBlPW8uZG9tLHQsbixjLGQ7dD1lLmdldFBh
cmVudChvLnNlbGVjdGlvbi5nZXRTdGFydCgpLCJ0YWJsZSIpLGQ9e3dpZHRoOmkoZS5nZXRTdHls
ZSh0LCJ3aWR0aCIpfHxlLmdldEF0dHJpYih0LCJ3aWR0aCIpKSxoZWlnaHQ6aShlLmdldFN0eWxl
KHQsImhlaWdodCIpfHxlLmdldEF0dHJpYih0LCJoZWlnaHQiKSksY2VsbHNwYWNpbmc6dD9lLmdl
dEF0dHJpYih0LCJjZWxsc3BhY2luZyIpOiIiLGNlbGxwYWRkaW5nOnQ/ZS5nZXRBdHRyaWIodCwi
Y2VsbHBhZGRpbmciKToiIixib3JkZXI6dD9lLmdldEF0dHJpYih0LCJib3JkZXIiKToiIixjYXB0
aW9uOiEhZS5zZWxlY3QoImNhcHRpb24iLHQpWzBdfSxzKCJsZWZ0IGNlbnRlciByaWdodCIuc3Bs
aXQoIiAiKSxmdW5jdGlvbihlKXtvLmZvcm1hdHRlci5tYXRjaE5vZGUodCwiYWxpZ24iK2UpJiYo
ZC5hbGlnbj1lKX0pLHR8fChuPXtsYWJlbDoiQ29scyIsbmFtZToiY29scyJ9LGM9e2xhYmVsOiJS
b3dzIixuYW1lOiJyb3dzIn0pLG8ud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiVGFibGUgcHJv
cGVydGllcyIsaXRlbXM6e3R5cGU6ImZvcm0iLGxheW91dDoiZ3JpZCIsY29sdW1uczoyLGRhdGE6
ZCxkZWZhdWx0czp7dHlwZToidGV4dGJveCIsbWF4V2lkdGg6NTB9LGl0ZW1zOltuLGMse2xhYmVs
OiJXaWR0aCIsbmFtZToid2lkdGgifSx7bGFiZWw6IkhlaWdodCIsbmFtZToiaGVpZ2h0In0se2xh
YmVsOiJDZWxsIHNwYWNpbmciLG5hbWU6ImNlbGxzcGFjaW5nIn0se2xhYmVsOiJDZWxsIHBhZGRp
bmciLG5hbWU6ImNlbGxwYWRkaW5nIn0se2xhYmVsOiJCb3JkZXIiLG5hbWU6ImJvcmRlciJ9LHts
YWJlbDoiQ2FwdGlvbiIsbmFtZToiY2FwdGlvbiIsdHlwZToiY2hlY2tib3gifSx7bGFiZWw6IkFs
aWdubWVudCIsbWluV2lkdGg6OTAsbmFtZToiYWxpZ24iLHR5cGU6Imxpc3Rib3giLHRleHQ6Ik5v
bmUiLG1heFdpZHRoOm51bGwsdmFsdWVzOlt7dGV4dDoiTm9uZSIsdmFsdWU6IiJ9LHt0ZXh0OiJM
ZWZ0Iix2YWx1ZToibGVmdCJ9LHt0ZXh0OiJDZW50ZXIiLHZhbHVlOiJjZW50ZXIifSx7dGV4dDoi
UmlnaHQiLHZhbHVlOiJyaWdodCJ9XX1dfSxvbnN1Ym1pdDpmdW5jdGlvbigpe3ZhciBuPXRoaXMu
dG9KU09OKCksaTtvLnVuZG9NYW5hZ2VyLnRyYW5zYWN0KGZ1bmN0aW9uKCl7dHx8KHQ9ZyhuLmNv
bHN8fDEsbi5yb3dzfHwxKSksby5kb20uc2V0QXR0cmlicyh0LHtjZWxsc3BhY2luZzpuLmNlbGxz
cGFjaW5nLGNlbGxwYWRkaW5nOm4uY2VsbHBhZGRpbmcsYm9yZGVyOm4uYm9yZGVyfSksby5kb20u
c2V0U3R5bGVzKHQse3dpZHRoOmEobi53aWR0aCksaGVpZ2h0OmEobi5oZWlnaHQpfSksaT1lLnNl
bGVjdCgiY2FwdGlvbiIsdClbMF0saSYmIW4uY2FwdGlvbiYmZS5yZW1vdmUoaSksIWkmJm4uY2Fw
dGlvbiYmKGk9ZS5jcmVhdGUoImNhcHRpb24iKSxpLmlubmVySFRNTD1yLmllPyJceGEwIjonPGJy
IGRhdGEtbWNlLWJvZ3VzPSIxIi8+Jyx0Lmluc2VydEJlZm9yZShpLHQuZmlyc3RDaGlsZCkpLGwo
dCksbi5hbGlnbiYmby5mb3JtYXR0ZXIuYXBwbHkoImFsaWduIituLmFsaWduLHt9LHQpLG8uZm9j
dXMoKSxvLmFkZFZpc3VhbCgpfSl9fSl9ZnVuY3Rpb24gdShlLHQpe28ud2luZG93TWFuYWdlci5v
cGVuKHt0aXRsZToiTWVyZ2UgY2VsbHMiLGJvZHk6W3tsYWJlbDoiQ29scyIsbmFtZToiY29scyIs
dHlwZToidGV4dGJveCIsc2l6ZToxMH0se2xhYmVsOiJSb3dzIixuYW1lOiJyb3dzIix0eXBlOiJ0
ZXh0Ym94IixzaXplOjEwfV0sb25zdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnRvSlNPTigp
O28udW5kb01hbmFnZXIudHJhbnNhY3QoZnVuY3Rpb24oKXtlLm1lcmdlKHQsbi5jb2xzLG4ucm93
cyl9KX19KX1mdW5jdGlvbiBmKCl7dmFyIGU9by5kb20sdCxuLHI9W107cj1vLmRvbS5zZWxlY3Qo
InRkLm1jZS1pdGVtLXNlbGVjdGVkLHRoLm1jZS1pdGVtLXNlbGVjdGVkIiksdD1vLmRvbS5nZXRQ
YXJlbnQoby5zZWxlY3Rpb24uZ2V0U3RhcnQoKSwidGQsdGgiKSwhci5sZW5ndGgmJnQmJnIucHVz
aCh0KSx0PXR8fHJbMF0sdCYmKG49e3dpZHRoOmkoZS5nZXRTdHlsZSh0LCJ3aWR0aCIpfHxlLmdl
dEF0dHJpYih0LCJ3aWR0aCIpKSxoZWlnaHQ6aShlLmdldFN0eWxlKHQsImhlaWdodCIpfHxlLmdl
dEF0dHJpYih0LCJoZWlnaHQiKSksc2NvcGU6ZS5nZXRBdHRyaWIodCwic2NvcGUiKX0sbi50eXBl
PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzKCJsZWZ0IGNlbnRlciByaWdodCIuc3BsaXQoIiAi
KSxmdW5jdGlvbihlKXtvLmZvcm1hdHRlci5tYXRjaE5vZGUodCwiYWxpZ24iK2UpJiYobi5hbGln
bj1lKX0pLHMoInRvcCBtaWRkbGUgYm90dG9tIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe28uZm9y
bWF0dGVyLm1hdGNoTm9kZSh0LCJ2YWxpZ24iK2UpJiYobi52YWxpZ249ZSl9KSxvLndpbmRvd01h
bmFnZXIub3Blbih7dGl0bGU6IkNlbGwgcHJvcGVydGllcyIsaXRlbXM6e3R5cGU6ImZvcm0iLGRh
dGE6bixsYXlvdXQ6ImdyaWQiLGNvbHVtbnM6MixkZWZhdWx0czp7dHlwZToidGV4dGJveCIsbWF4
V2lkdGg6NTB9LGl0ZW1zOlt7bGFiZWw6IldpZHRoIixuYW1lOiJ3aWR0aCJ9LHtsYWJlbDoiSGVp
Z2h0IixuYW1lOiJoZWlnaHQifSx7bGFiZWw6IkNlbGwgdHlwZSIsbmFtZToidHlwZSIsdHlwZToi
bGlzdGJveCIsdGV4dDoiTm9uZSIsbWluV2lkdGg6OTAsbWF4V2lkdGg6bnVsbCx2YWx1ZXM6W3t0
ZXh0OiJDZWxsIix2YWx1ZToidGQifSx7dGV4dDoiSGVhZGVyIGNlbGwiLHZhbHVlOiJ0aCJ9XX0s
e2xhYmVsOiJTY29wZSIsbmFtZToic2NvcGUiLHR5cGU6Imxpc3Rib3giLHRleHQ6Ik5vbmUiLG1p
bldpZHRoOjkwLG1heFdpZHRoOm51bGwsdmFsdWVzOlt7dGV4dDoiTm9uZSIsdmFsdWU6IiJ9LHt0
ZXh0OiJSb3ciLHZhbHVlOiJyb3cifSx7dGV4dDoiQ29sdW1uIix2YWx1ZToiY29sIn0se3RleHQ6
IlJvdyBncm91cCIsdmFsdWU6InJvd2dyb3VwIn0se3RleHQ6IkNvbHVtbiBncm91cCIsdmFsdWU6
ImNvbGdyb3VwIn1dfSx7bGFiZWw6IkggQWxpZ24iLG5hbWU6ImFsaWduIix0eXBlOiJsaXN0Ym94
Iix0ZXh0OiJOb25lIixtaW5XaWR0aDo5MCxtYXhXaWR0aDpudWxsLHZhbHVlczpbe3RleHQ6Ik5v
bmUiLHZhbHVlOiIifSx7dGV4dDoiTGVmdCIsdmFsdWU6ImxlZnQifSx7dGV4dDoiQ2VudGVyIix2
YWx1ZToiY2VudGVyIn0se3RleHQ6IlJpZ2h0Iix2YWx1ZToicmlnaHQifV19LHtsYWJlbDoiViBB
bGlnbiIsbmFtZToidmFsaWduIix0eXBlOiJsaXN0Ym94Iix0ZXh0OiJOb25lIixtaW5XaWR0aDo5
MCxtYXhXaWR0aDpudWxsLHZhbHVlczpbe3RleHQ6Ik5vbmUiLHZhbHVlOiIifSx7dGV4dDoiVG9w
Iix2YWx1ZToidG9wIn0se3RleHQ6Ik1pZGRsZSIsdmFsdWU6Im1pZGRsZSJ9LHt0ZXh0OiJCb3R0
b20iLHZhbHVlOiJib3R0b20ifV19XX0sb25zdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRv
SlNPTigpO28udW5kb01hbmFnZXIudHJhbnNhY3QoZnVuY3Rpb24oKXtzKHIsZnVuY3Rpb24obil7
by5kb20uc2V0QXR0cmliKG4sInNjb3BlIix0LnNjb3BlKSxvLmRvbS5zZXRTdHlsZXMobix7d2lk
dGg6YSh0LndpZHRoKSxoZWlnaHQ6YSh0LmhlaWdodCl9KSx0LnR5cGUmJm4ubm9kZU5hbWUudG9M
b3dlckNhc2UoKSE9dC50eXBlJiYobj1lLnJlbmFtZShuLHQudHlwZSkpLGwobiksdC5hbGlnbiYm
by5mb3JtYXR0ZXIuYXBwbHkoImFsaWduIit0LmFsaWduLHt9LG4pLGMobiksdC52YWxpZ24mJm8u
Zm9ybWF0dGVyLmFwcGx5KCJ2YWxpZ24iK3QudmFsaWduLHt9LG4pfSksby5mb2N1cygpfSl9fSkp
fWZ1bmN0aW9uIG0oKXt2YXIgZT1vLmRvbSx0LG4scixjLGQ9W107dD1vLmRvbS5nZXRQYXJlbnQo
by5zZWxlY3Rpb24uZ2V0U3RhcnQoKSwidGFibGUiKSxuPW8uZG9tLmdldFBhcmVudChvLnNlbGVj
dGlvbi5nZXRTdGFydCgpLCJ0ZCx0aCIpLHModC5yb3dzLGZ1bmN0aW9uKHQpe3ModC5jZWxscyxm
dW5jdGlvbihvKXtyZXR1cm4gZS5oYXNDbGFzcyhvLCJtY2UtaXRlbS1zZWxlY3RlZCIpfHxvPT1u
PyhkLnB1c2godCksITEpOnZvaWQgMH0pfSkscj1kWzBdLHImJihjPXtoZWlnaHQ6aShlLmdldFN0
eWxlKHIsImhlaWdodCIpfHxlLmdldEF0dHJpYihyLCJoZWlnaHQiKSksc2NvcGU6ZS5nZXRBdHRy
aWIociwic2NvcGUiKX0sYy50eXBlPXIucGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgp
LHMoImxlZnQgY2VudGVyIHJpZ2h0Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe28uZm9ybWF0dGVy
Lm1hdGNoTm9kZShyLCJhbGlnbiIrZSkmJihjLmFsaWduPWUpfSksby53aW5kb3dNYW5hZ2VyLm9w
ZW4oe3RpdGxlOiJSb3cgcHJvcGVydGllcyIsaXRlbXM6e3R5cGU6ImZvcm0iLGRhdGE6Yyxjb2x1
bW5zOjIsZGVmYXVsdHM6e3R5cGU6InRleHRib3gifSxpdGVtczpbe3R5cGU6Imxpc3Rib3giLG5h
bWU6InR5cGUiLGxhYmVsOiJSb3cgdHlwZSIsdGV4dDoiTm9uZSIsbWF4V2lkdGg6bnVsbCx2YWx1
ZXM6W3t0ZXh0OiJIZWFkZXIiLHZhbHVlOiJ0aGVhZCJ9LHt0ZXh0OiJCb2R5Iix2YWx1ZToidGJv
ZHkifSx7dGV4dDoiRm9vdGVyIix2YWx1ZToidGZvb3QifV19LHt0eXBlOiJsaXN0Ym94IixuYW1l
OiJhbGlnbiIsbGFiZWw6IkFsaWdubWVudCIsdGV4dDoiTm9uZSIsbWF4V2lkdGg6bnVsbCx2YWx1
ZXM6W3t0ZXh0OiJOb25lIix2YWx1ZToiIn0se3RleHQ6IkxlZnQiLHZhbHVlOiJsZWZ0In0se3Rl
eHQ6IkNlbnRlciIsdmFsdWU6ImNlbnRlciJ9LHt0ZXh0OiJSaWdodCIsdmFsdWU6InJpZ2h0In1d
fSx7bGFiZWw6IkhlaWdodCIsbmFtZToiaGVpZ2h0In1dfSxvbnN1Ym1pdDpmdW5jdGlvbigpe3Zh
ciB0PXRoaXMudG9KU09OKCksbixpLHI7by51bmRvTWFuYWdlci50cmFuc2FjdChmdW5jdGlvbigp
e3ZhciBjPXQudHlwZTtzKGQsZnVuY3Rpb24ocyl7by5kb20uc2V0QXR0cmliKHMsInNjb3BlIix0
LnNjb3BlKSxvLmRvbS5zZXRTdHlsZXMocyx7aGVpZ2h0OmEodC5oZWlnaHQpfSksYyE9cy5wYXJl
bnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJihuPWUuZ2V0UGFyZW50KHMsInRhYmxlIiks
aT1zLnBhcmVudE5vZGUscj1lLnNlbGVjdChjLG4pWzBdLHJ8fChyPWUuY3JlYXRlKGMpLG4uZmly
c3RDaGlsZD9uLmluc2VydEJlZm9yZShyLG4uZmlyc3RDaGlsZCk6bi5hcHBlbmRDaGlsZChyKSks
ci5hcHBlbmRDaGlsZChzKSxpLmhhc0NoaWxkTm9kZXMoKXx8ZS5yZW1vdmUoaSkpLGwocyksdC5h
bGlnbiYmby5mb3JtYXR0ZXIuYXBwbHkoImFsaWduIit0LmFsaWduLHt9LHMpfSksby5mb2N1cygp
fSl9fSkpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7by5leGVjQ29tbWFuZChlKX19
ZnVuY3Rpb24gZyhlLHQpe3ZhciBuLGksYTtmb3IoYT0nPHRhYmxlIGlkPSJfX21jZSI+PHRib2R5
Picsbj0wO3Q+bjtuKyspe2ZvcihhKz0iPHRyPiIsaT0wO2U+aTtpKyspYSs9Ijx0ZD4iKyhyLmll
PyIgIjoiPGJyPiIpKyI8L3RkPiI7YSs9IjwvdHI+In1hKz0iPC90Ym9keT48L3RhYmxlPiIsby5p
bnNlcnRDb250ZW50KGEpO3ZhciBsPW8uZG9tLmdldCgiX19tY2UiKTtyZXR1cm4gby5kb20uc2V0
QXR0cmliKGwsImlkIixudWxsKSxsfWZ1bmN0aW9uIGgoZSx0KXtmdW5jdGlvbiBuKCl7ZS5kaXNh
YmxlZCghby5kb20uZ2V0UGFyZW50KG8uc2VsZWN0aW9uLmdldFN0YXJ0KCksdCkpLG8uc2VsZWN0
aW9uLnNlbGVjdG9yQ2hhbmdlZCh0LGZ1bmN0aW9uKHQpe2UuZGlzYWJsZWQoIXQpfSl9by5pbml0
aWFsaXplZD9uKCk6by5vbigiaW5pdCIsbil9ZnVuY3Rpb24gdigpe2godGhpcywidGFibGUiKX1m
dW5jdGlvbiBiKCl7aCh0aGlzLCJ0ZCx0aCIpfWZ1bmN0aW9uIHkoKXt2YXIgZT0iIjtlPSc8dGFi
bGUgcm9sZT0iZ3JpZCIgY2xhc3M9Im1jZS1ncmlkIG1jZS1ncmlkLWJvcmRlciIgYXJpYS1yZWFk
b25seT0idHJ1ZSI+Jztmb3IodmFyIHQ9MDsxMD50O3QrKyl7ZSs9Ijx0cj4iO2Zvcih2YXIgbj0w
OzEwPm47bisrKWUrPSc8dGQgcm9sZT0iZ3JpZGNlbGwiIHRhYmluZGV4PSItMSI+PGEgaWQ9Im1j
ZWdyaWQnKygxMCp0K24pKyciIGhyZWY9IiMiIGRhdGEtbWNlLXg9IicrbisnIiBkYXRhLW1jZS15
PSInK3QrJyI+PC9hPjwvdGQ+JztlKz0iPC90cj4ifXJldHVybiBlKz0iPC90YWJsZT4iLGUrPSc8
ZGl2IGNsYXNzPSJtY2UtdGV4dC1jZW50ZXIiIHJvbGU9InByZXNlbnRhdGlvbiI+MSB4IDE8L2Rp
dj4nfWZ1bmN0aW9uIHcoZSx0LG4pe3ZhciBpPW4uZ2V0RWwoKS5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgidGFibGUiKVswXSxyLGEsbCxzLGMsZD1uLmlzUnRsKCl8fCJ0bC10ciI9PW4ucGFyZW50KCku
cmVsO2ZvcihpLm5leHRTaWJsaW5nLmlubmVySFRNTD1lKzErIiB4ICIrKHQrMSksZCYmKGU9OS1l
KSxhPTA7MTA+YTthKyspZm9yKHI9MDsxMD5yO3IrKylzPWkucm93c1thXS5jaGlsZE5vZGVzW3Jd
LmZpcnN0Q2hpbGQsYz0oZD9yPj1lOmU+PXIpJiZ0Pj1hLG8uZG9tLnRvZ2dsZUNsYXNzKHMsIm1j
ZS1hY3RpdmUiLGMpLGMmJihsPXMpO3JldHVybiBsLnBhcmVudE5vZGV9dmFyIHgsQyxQPXRoaXM7
by5zZXR0aW5ncy50YWJsZV9ncmlkPT09ITE/by5hZGRNZW51SXRlbSgiaW5zZXJ0dGFibGUiLHt0
ZXh0OiJJbnNlcnQgdGFibGUiLGljb246InRhYmxlIixjb250ZXh0OiJ0YWJsZSIsb25jbGljazpk
fSk6by5hZGRNZW51SXRlbSgiaW5zZXJ0dGFibGUiLHt0ZXh0OiJJbnNlcnQgdGFibGUiLGljb246
InRhYmxlIixjb250ZXh0OiJ0YWJsZSIsYXJpYUhpZGVNZW51OiEwLG9uY2xpY2s6ZnVuY3Rpb24o
ZSl7ZS5hcmlhJiYodGhpcy5wYXJlbnQoKS5oaWRlQWxsKCksZS5zdG9wSW1tZWRpYXRlUHJvcGFn
YXRpb24oKSxkKCkpfSxvbnNob3c6ZnVuY3Rpb24oKXt3KDAsMCx0aGlzLm1lbnUuaXRlbXMoKVsw
XSl9LG9uaGlkZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVudS5pdGVtcygpWzBdLmdldEVsKCku
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKTtvLmRvbS5yZW1vdmVDbGFzcyhlLCJtY2UtYWN0aXZl
Iiksby5kb20uYWRkQ2xhc3MoZVswXSwibWNlLWFjdGl2ZSIpfSxtZW51Olt7dHlwZToiY29udGFp
bmVyIixodG1sOnkoKSxvblBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLmxhc3RYPXRoaXMubGFz
dFk9MH0sb25tb3VzZW1vdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQsbixvOyJBIj09dC50
YWdOYW1lLnRvVXBwZXJDYXNlKCkmJihuPXBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJkYXRhLW1j
ZS14IiksMTApLG89cGFyc2VJbnQodC5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXkiKSwxMCksKHRo
aXMuaXNSdGwoKXx8InRsLXRyIj09dGhpcy5wYXJlbnQoKS5yZWwpJiYobj05LW4pLChuIT09dGhp
cy5sYXN0WHx8byE9PXRoaXMubGFzdFkpJiYodyhuLG8sZS5jb250cm9sKSx0aGlzLmxhc3RYPW4s
dGhpcy5sYXN0WT1vKSl9LG9ua2V5ZG93bjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxhc3RYLG49
dGhpcy5sYXN0WSxvO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgMzc6dD4wJiYodC0tLG89ITApO2Jy
ZWFrO2Nhc2UgMzk6bz0hMCw5PnQmJnQrKzticmVhaztjYXNlIDM4Om89ITAsbj4wJiZuLS07YnJl
YWs7Y2FzZSA0MDpvPSEwLDk+biYmbisrfW8mJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJv
cGFnYXRpb24oKSx3KHQsbixlLmNvbnRyb2wpLmZvY3VzKCksdGhpcy5sYXN0WD10LHRoaXMubGFz
dFk9bil9LG9uY2xpY2s6ZnVuY3Rpb24oZSl7IkEiPT1lLnRhcmdldC50YWdOYW1lLnRvVXBwZXJD
YXNlKCkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnBhcmVu
dCgpLmNhbmNlbCgpLGcodGhpcy5sYXN0WCsxLHRoaXMubGFzdFkrMSkpfX1dfSksby5hZGRNZW51
SXRlbSgidGFibGVwcm9wcyIse3RleHQ6IlRhYmxlIHByb3BlcnRpZXMiLGNvbnRleHQ6InRhYmxl
IixvblBvc3RSZW5kZXI6dixvbmNsaWNrOmR9KSxvLmFkZE1lbnVJdGVtKCJkZWxldGV0YWJsZSIs
e3RleHQ6IkRlbGV0ZSB0YWJsZSIsY29udGV4dDoidGFibGUiLG9uUG9zdFJlbmRlcjp2LGNtZDoi
bWNlVGFibGVEZWxldGUifSksby5hZGRNZW51SXRlbSgiY2VsbCIse3NlcGFyYXRvcjoiYmVmb3Jl
Iix0ZXh0OiJDZWxsIixjb250ZXh0OiJ0YWJsZSIsbWVudTpbe3RleHQ6IkNlbGwgcHJvcGVydGll
cyIsb25jbGljazpwKCJtY2VUYWJsZUNlbGxQcm9wcyIpLG9uUG9zdFJlbmRlcjpifSx7dGV4dDoi
TWVyZ2UgY2VsbHMiLG9uY2xpY2s6cCgibWNlVGFibGVNZXJnZUNlbGxzIiksb25Qb3N0UmVuZGVy
OmJ9LHt0ZXh0OiJTcGxpdCBjZWxsIixvbmNsaWNrOnAoIm1jZVRhYmxlU3BsaXRDZWxscyIpLG9u
UG9zdFJlbmRlcjpifV19KSxvLmFkZE1lbnVJdGVtKCJyb3ciLHt0ZXh0OiJSb3ciLGNvbnRleHQ6
InRhYmxlIixtZW51Olt7dGV4dDoiSW5zZXJ0IHJvdyBiZWZvcmUiLG9uY2xpY2s6cCgibWNlVGFi
bGVJbnNlcnRSb3dCZWZvcmUiKSxvblBvc3RSZW5kZXI6Yn0se3RleHQ6Ikluc2VydCByb3cgYWZ0
ZXIiLG9uY2xpY2s6cCgibWNlVGFibGVJbnNlcnRSb3dBZnRlciIpLG9uUG9zdFJlbmRlcjpifSx7
dGV4dDoiRGVsZXRlIHJvdyIsb25jbGljazpwKCJtY2VUYWJsZURlbGV0ZVJvdyIpLG9uUG9zdFJl
bmRlcjpifSx7dGV4dDoiUm93IHByb3BlcnRpZXMiLG9uY2xpY2s6cCgibWNlVGFibGVSb3dQcm9w
cyIpLG9uUG9zdFJlbmRlcjpifSx7dGV4dDoiLSJ9LHt0ZXh0OiJDdXQgcm93IixvbmNsaWNrOnAo
Im1jZVRhYmxlQ3V0Um93Iiksb25Qb3N0UmVuZGVyOmJ9LHt0ZXh0OiJDb3B5IHJvdyIsb25jbGlj
azpwKCJtY2VUYWJsZUNvcHlSb3ciKSxvblBvc3RSZW5kZXI6Yn0se3RleHQ6IlBhc3RlIHJvdyBi
ZWZvcmUiLG9uY2xpY2s6cCgibWNlVGFibGVQYXN0ZVJvd0JlZm9yZSIpLG9uUG9zdFJlbmRlcjpi
fSx7dGV4dDoiUGFzdGUgcm93IGFmdGVyIixvbmNsaWNrOnAoIm1jZVRhYmxlUGFzdGVSb3dBZnRl
ciIpLG9uUG9zdFJlbmRlcjpifV19KSxvLmFkZE1lbnVJdGVtKCJjb2x1bW4iLHt0ZXh0OiJDb2x1
bW4iLGNvbnRleHQ6InRhYmxlIixtZW51Olt7dGV4dDoiSW5zZXJ0IGNvbHVtbiBiZWZvcmUiLG9u
Y2xpY2s6cCgibWNlVGFibGVJbnNlcnRDb2xCZWZvcmUiKSxvblBvc3RSZW5kZXI6Yn0se3RleHQ6
Ikluc2VydCBjb2x1bW4gYWZ0ZXIiLG9uY2xpY2s6cCgibWNlVGFibGVJbnNlcnRDb2xBZnRlciIp
LG9uUG9zdFJlbmRlcjpifSx7dGV4dDoiRGVsZXRlIGNvbHVtbiIsb25jbGljazpwKCJtY2VUYWJs
ZURlbGV0ZUNvbCIpLG9uUG9zdFJlbmRlcjpifV19KTt2YXIgUz1bXTtzKCJpbnNlcnR0YWJsZSB0
YWJsZXByb3BzIGRlbGV0ZXRhYmxlIHwgY2VsbCByb3cgY29sdW1uIi5zcGxpdCgiICIpLGZ1bmN0
aW9uKGUpe1MucHVzaCgifCI9PWU/e3RleHQ6Ii0ifTpvLm1lbnVJdGVtc1tlXSl9KSxvLmFkZEJ1
dHRvbigidGFibGUiLHt0eXBlOiJtZW51YnV0dG9uIix0aXRsZToiVGFibGUiLG1lbnU6U30pLHIu
aXNJRXx8by5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe2U9ZS50YXJnZXQsIlRBQkxFIj09PWUubm9k
ZU5hbWUmJihvLnNlbGVjdGlvbi5zZWxlY3QoZSksby5ub2RlQ2hhbmdlZCgpKX0pLFAucXVpcmtz
PW5ldyB0KG8pLG8ub24oIkluaXQiLGZ1bmN0aW9uKCl7eD1vLndpbmRvd01hbmFnZXIsUC5jZWxs
U2VsZWN0aW9uPW5ldyBuKG8pfSkscyh7bWNlVGFibGVTcGxpdENlbGxzOmZ1bmN0aW9uKGUpe2Uu
c3BsaXQoKX0sbWNlVGFibGVNZXJnZUNlbGxzOmZ1bmN0aW9uKGUpe3ZhciB0LG4saTtpPW8uZG9t
LmdldFBhcmVudChvLnNlbGVjdGlvbi5nZXRTdGFydCgpLCJ0aCx0ZCIpLGkmJih0PWkucm93U3Bh
bixuPWkuY29sU3Bhbiksby5kb20uc2VsZWN0KCJ0ZC5tY2UtaXRlbS1zZWxlY3RlZCx0aC5tY2Ut
aXRlbS1zZWxlY3RlZCIpLmxlbmd0aD9lLm1lcmdlKCk6dShlLGkpfSxtY2VUYWJsZUluc2VydFJv
d0JlZm9yZTpmdW5jdGlvbihlKXtlLmluc2VydFJvdyghMCl9LG1jZVRhYmxlSW5zZXJ0Um93QWZ0
ZXI6ZnVuY3Rpb24oZSl7ZS5pbnNlcnRSb3coKX0sbWNlVGFibGVJbnNlcnRDb2xCZWZvcmU6ZnVu
Y3Rpb24oZSl7ZS5pbnNlcnRDb2woITApfSxtY2VUYWJsZUluc2VydENvbEFmdGVyOmZ1bmN0aW9u
KGUpe2UuaW5zZXJ0Q29sKCl9LG1jZVRhYmxlRGVsZXRlQ29sOmZ1bmN0aW9uKGUpe2UuZGVsZXRl
Q29scygpfSxtY2VUYWJsZURlbGV0ZVJvdzpmdW5jdGlvbihlKXtlLmRlbGV0ZVJvd3MoKX0sbWNl
VGFibGVDdXRSb3c6ZnVuY3Rpb24oZSl7Qz1lLmN1dFJvd3MoKX0sbWNlVGFibGVDb3B5Um93OmZ1
bmN0aW9uKGUpe0M9ZS5jb3B5Um93cygpfSxtY2VUYWJsZVBhc3RlUm93QmVmb3JlOmZ1bmN0aW9u
KGUpe2UucGFzdGVSb3dzKEMsITApfSxtY2VUYWJsZVBhc3RlUm93QWZ0ZXI6ZnVuY3Rpb24oZSl7
ZS5wYXN0ZVJvd3MoQyl9LG1jZVRhYmxlRGVsZXRlOmZ1bmN0aW9uKGUpe2UuZGVsZXRlVGFibGUo
KX19LGZ1bmN0aW9uKHQsbil7by5hZGRDb21tYW5kKG4sZnVuY3Rpb24oKXt2YXIgbj1uZXcgZShv
KTtuJiYodChuKSxvLmV4ZWNDb21tYW5kKCJtY2VSZXBhaW50IiksUC5jZWxsU2VsZWN0aW9uLmNs
ZWFyKCkpfSl9KSxzKHttY2VJbnNlcnRUYWJsZTpmdW5jdGlvbigpe2QoKX0sbWNlVGFibGVSb3dQ
cm9wczptLG1jZVRhYmxlQ2VsbFByb3BzOmZ9LGZ1bmN0aW9uKGUsdCl7by5hZGRDb21tYW5kKHQs
ZnVuY3Rpb24odCxuKXtlKG4pfSl9KX12YXIgcz1vLmVhY2g7YS5hZGQoInRhYmxlIixsKX0pLGEo
W3MsdSxtLGddKX0odGhpcyk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgidGVtcGxhdGUiLGZ1
bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9ZS5zZXR0aW5n
cy50ZW1wbGF0ZXM7InN0cmluZyI9PXR5cGVvZiBhP3RpbnltY2UudXRpbC5YSFIuc2VuZCh7dXJs
OmEsc3VjY2VzczpmdW5jdGlvbihlKXt0KHRpbnltY2UudXRpbC5KU09OLnBhcnNlKGUpKX19KTp0
KGEpfX1mdW5jdGlvbiBhKHQpe2Z1bmN0aW9uIGEodCl7ZnVuY3Rpb24gYSh0KXtpZigtMT09dC5p
bmRleE9mKCI8aHRtbD4iKSl7dmFyIGE9IiI7dGlueW1jZS5lYWNoKGUuY29udGVudENTUyxmdW5j
dGlvbih0KXthKz0nPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
JytlLmRvY3VtZW50QmFzZVVSSS50b0Fic29sdXRlKHQpKyciPid9KSx0PSI8IURPQ1RZUEUgaHRt
bD48aHRtbD48aGVhZD4iK2ErIjwvaGVhZD48Ym9keT4iK3QrIjwvYm9keT48L2h0bWw+In10PXIo
dCwidGVtcGxhdGVfcHJldmlld19yZXBsYWNlX3ZhbHVlcyIpO3ZhciBsPW4uZmluZCgiaWZyYW1l
IilbMF0uZ2V0RWwoKS5jb250ZW50V2luZG93LmRvY3VtZW50O2wub3BlbigpLGwud3JpdGUodCks
bC5jbG9zZSgpfXZhciBjPXQuY29udHJvbC52YWx1ZSgpO2MudXJsP3RpbnltY2UudXRpbC5YSFIu
c2VuZCh7dXJsOmMudXJsLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7bD1lLGEobCl9fSk6KGw9Yy5jb250
ZW50LGEobCkpLG4uZmluZCgiI2Rlc2NyaXB0aW9uIilbMF0udGV4dCh0LmNvbnRyb2wudmFsdWUo
KS5kZXNjcmlwdGlvbil9dmFyIG4sbCxpPVtdO3JldHVybiB0JiYwIT09dC5sZW5ndGg/KHRpbnlt
Y2UuZWFjaCh0LGZ1bmN0aW9uKGUpe2kucHVzaCh7c2VsZWN0ZWQ6IWkubGVuZ3RoLHRleHQ6ZS50
aXRsZSx2YWx1ZTp7dXJsOmUudXJsLGNvbnRlbnQ6ZS5jb250ZW50LGRlc2NyaXB0aW9uOmUuZGVz
Y3JpcHRpb259fSl9KSxuPWUud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiSW5zZXJ0IHRlbXBs
YXRlIixsYXlvdXQ6ImZsZXgiLGRpcmVjdGlvbjoiY29sdW1uIixhbGlnbjoic3RyZXRjaCIscGFk
ZGluZzoxNSxzcGFjaW5nOjEwLGl0ZW1zOlt7dHlwZToiZm9ybSIsZmxleDowLHBhZGRpbmc6MCxp
dGVtczpbe3R5cGU6ImNvbnRhaW5lciIsbGFiZWw6IlRlbXBsYXRlcyIsaXRlbXM6e3R5cGU6Imxp
c3Rib3giLGxhYmVsOiJUZW1wbGF0ZXMiLG5hbWU6InRlbXBsYXRlIix2YWx1ZXM6aSxvbnNlbGVj
dDphfX1dfSx7dHlwZToibGFiZWwiLG5hbWU6ImRlc2NyaXB0aW9uIixsYWJlbDoiRGVzY3JpcHRp
b24iLHRleHQ6IsKgIn0se3R5cGU6ImlmcmFtZSIsZmxleDoxLGJvcmRlcjoxfV0sb25zdWJtaXQ6
ZnVuY3Rpb24oKXtjKCExLGwpfSx3aWR0aDplLmdldFBhcmFtKCJ0ZW1wbGF0ZV9wb3B1cF93aWR0
aCIsNjAwKSxoZWlnaHQ6ZS5nZXRQYXJhbSgidGVtcGxhdGVfcG9wdXBfaGVpZ2h0Iiw1MDApfSks
dm9pZCBuLmZpbmQoImxpc3Rib3giKVswXS5maXJlKCJzZWxlY3QiKSk6dm9pZCBlLndpbmRvd01h
bmFnZXIuYWxlcnQoIk5vIHRlbXBsYXRlcyBkZWZpbmVkIil9ZnVuY3Rpb24gbih0LGEpe2Z1bmN0
aW9uIG4oZSx0KXtpZihlPSIiK2UsZS5sZW5ndGg8dClmb3IodmFyIGE9MDthPHQtZS5sZW5ndGg7
YSsrKWU9IjAiK2U7cmV0dXJuIGV9dmFyIGw9IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBT
dW4iLnNwbGl0KCIgIikscj0iU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2Rh
eSBGcmlkYXkgU2F0dXJkYXkgU3VuZGF5Ii5zcGxpdCgiICIpLGM9IkphbiBGZWIgTWFyIEFwciBN
YXkgSnVuIEp1bCBBdWcgU2VwIE9jdCBOb3YgRGVjIi5zcGxpdCgiICIpLGk9IkphbnVhcnkgRmVi
cnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIg
Tm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIik7cmV0dXJuIGE9YXx8bmV3IERhdGUsdD10LnJl
cGxhY2UoIiVEIiwiJW0vJWQvJVkiKSx0PXQucmVwbGFjZSgiJXIiLCIlSTolTTolUyAlcCIpLHQ9
dC5yZXBsYWNlKCIlWSIsIiIrYS5nZXRGdWxsWWVhcigpKSx0PXQucmVwbGFjZSgiJXkiLCIiK2Eu
Z2V0WWVhcigpKSx0PXQucmVwbGFjZSgiJW0iLG4oYS5nZXRNb250aCgpKzEsMikpLHQ9dC5yZXBs
YWNlKCIlZCIsbihhLmdldERhdGUoKSwyKSksdD10LnJlcGxhY2UoIiVIIiwiIituKGEuZ2V0SG91
cnMoKSwyKSksdD10LnJlcGxhY2UoIiVNIiwiIituKGEuZ2V0TWludXRlcygpLDIpKSx0PXQucmVw
bGFjZSgiJVMiLCIiK24oYS5nZXRTZWNvbmRzKCksMikpLHQ9dC5yZXBsYWNlKCIlSSIsIiIrKChh
LmdldEhvdXJzKCkrMTEpJTEyKzEpKSx0PXQucmVwbGFjZSgiJXAiLCIiKyhhLmdldEhvdXJzKCk8
MTI/IkFNIjoiUE0iKSksdD10LnJlcGxhY2UoIiVCIiwiIitlLnRyYW5zbGF0ZShpW2EuZ2V0TW9u
dGgoKV0pKSx0PXQucmVwbGFjZSgiJWIiLCIiK2UudHJhbnNsYXRlKGNbYS5nZXRNb250aCgpXSkp
LHQ9dC5yZXBsYWNlKCIlQSIsIiIrZS50cmFuc2xhdGUoclthLmdldERheSgpXSkpLHQ9dC5yZXBs
YWNlKCIlYSIsIiIrZS50cmFuc2xhdGUobFthLmdldERheSgpXSkpLHQ9dC5yZXBsYWNlKCIlJSIs
IiUiKX1mdW5jdGlvbiBsKHQpe3ZhciBhPWUuZG9tLG49ZS5nZXRQYXJhbSgidGVtcGxhdGVfcmVw
bGFjZV92YWx1ZXMiKTtpKGEuc2VsZWN0KCIqIix0KSxmdW5jdGlvbihlKXtpKG4sZnVuY3Rpb24o
dCxsKXthLmhhc0NsYXNzKGUsbCkmJiJmdW5jdGlvbiI9PXR5cGVvZiBuW2xdJiZuW2xdKGUpfSl9
KX1mdW5jdGlvbiByKHQsYSl7cmV0dXJuIGkoZS5nZXRQYXJhbShhKSxmdW5jdGlvbihlLGEpeyJm
dW5jdGlvbiIhPXR5cGVvZiBlJiYodD10LnJlcGxhY2UobmV3IFJlZ0V4cCgiXFx7XFwkIithKyJc
XH0iLCJnIiksZSkpfSksdH1mdW5jdGlvbiBjKHQsYSl7ZnVuY3Rpb24gYyhlLHQpe3JldHVybiBu
ZXcgUmVnRXhwKCJcXGIiK3QrIlxcYiIsImciKS50ZXN0KGUuY2xhc3NOYW1lKX12YXIgbyxzLHA9
ZS5kb20sbT1lLnNlbGVjdGlvbi5nZXRDb250ZW50KCk7YT1yKGEsInRlbXBsYXRlX3JlcGxhY2Vf
dmFsdWVzIiksbz1wLmNyZWF0ZSgiZGl2IixudWxsLGEpLHM9cC5zZWxlY3QoIi5tY2VUbXBsIixv
KSxzJiZzLmxlbmd0aD4wJiYobz1wLmNyZWF0ZSgiZGl2IixudWxsKSxvLmFwcGVuZENoaWxkKHNb
MF0uY2xvbmVOb2RlKCEwKSkpLGkocC5zZWxlY3QoIioiLG8pLGZ1bmN0aW9uKHQpe2ModCxlLmdl
dFBhcmFtKCJ0ZW1wbGF0ZV9jZGF0ZV9jbGFzc2VzIiwiY2RhdGUiKS5yZXBsYWNlKC9ccysvZywi
fCIpKSYmKHQuaW5uZXJIVE1MPW4oZS5nZXRQYXJhbSgidGVtcGxhdGVfY2RhdGVfZm9ybWF0Iixl
LmdldExhbmcoInRlbXBsYXRlLmNkYXRlX2Zvcm1hdCIpKSkpLGModCxlLmdldFBhcmFtKCJ0ZW1w
bGF0ZV9tZGF0ZV9jbGFzc2VzIiwibWRhdGUiKS5yZXBsYWNlKC9ccysvZywifCIpKSYmKHQuaW5u
ZXJIVE1MPW4oZS5nZXRQYXJhbSgidGVtcGxhdGVfbWRhdGVfZm9ybWF0IixlLmdldExhbmcoInRl
bXBsYXRlLm1kYXRlX2Zvcm1hdCIpKSkpLGModCxlLmdldFBhcmFtKCJ0ZW1wbGF0ZV9zZWxlY3Rl
ZF9jb250ZW50X2NsYXNzZXMiLCJzZWxjb250ZW50IikucmVwbGFjZSgvXHMrL2csInwiKSkmJih0
LmlubmVySFRNTD1tKX0pLGwobyksZS5leGVjQ29tbWFuZCgibWNlSW5zZXJ0Q29udGVudCIsITEs
by5pbm5lckhUTUwpLGUuYWRkVmlzdWFsKCl9dmFyIGk9dGlueW1jZS5lYWNoO2UuYWRkQ29tbWFu
ZCgibWNlSW5zZXJ0VGVtcGxhdGUiLGMpLGUuYWRkQnV0dG9uKCJ0ZW1wbGF0ZSIse3RpdGxlOiJJ
bnNlcnQgdGVtcGxhdGUiLG9uY2xpY2s6dChhKX0pLGUuYWRkTWVudUl0ZW0oInRlbXBsYXRlIix7
dGV4dDoiSW5zZXJ0IHRlbXBsYXRlIixvbmNsaWNrOnQoYSksY29udGV4dDoiaW5zZXJ0In0pLGUu
b24oIlByZVByb2Nlc3MiLGZ1bmN0aW9uKHQpe3ZhciBhPWUuZG9tO2koYS5zZWxlY3QoImRpdiIs
dC5ub2RlKSxmdW5jdGlvbih0KXthLmhhc0NsYXNzKHQsIm1jZVRtcGwiKSYmKGkoYS5zZWxlY3Qo
IioiLHQpLGZ1bmN0aW9uKHQpe2EuaGFzQ2xhc3ModCxlLmdldFBhcmFtKCJ0ZW1wbGF0ZV9tZGF0
ZV9jbGFzc2VzIiwibWRhdGUiKS5yZXBsYWNlKC9ccysvZywifCIpKSYmKHQuaW5uZXJIVE1MPW4o
ZS5nZXRQYXJhbSgidGVtcGxhdGVfbWRhdGVfZm9ybWF0IixlLmdldExhbmcoInRlbXBsYXRlLm1k
YXRlX2Zvcm1hdCIpKSkpfSksbCh0KSl9KX0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgi
dGV4dGNvbG9yIixmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIHQsbyxsPVtdO2ZvcihvPWUu
c2V0dGluZ3MudGV4dGNvbG9yX21hcHx8WyIwMDAwMDAiLCJCbGFjayIsIjk5MzMwMCIsIkJ1cm50
IG9yYW5nZSIsIjMzMzMwMCIsIkRhcmsgb2xpdmUiLCIwMDMzMDAiLCJEYXJrIGdyZWVuIiwiMDAz
MzY2IiwiRGFyayBhenVyZSIsIjAwMDA4MCIsIk5hdnkgQmx1ZSIsIjMzMzM5OSIsIkluZGlnbyIs
IjMzMzMzMyIsIlZlcnkgZGFyayBncmF5IiwiODAwMDAwIiwiTWFyb29uIiwiRkY2NjAwIiwiT3Jh
bmdlIiwiODA4MDAwIiwiT2xpdmUiLCIwMDgwMDAiLCJHcmVlbiIsIjAwODA4MCIsIlRlYWwiLCIw
MDAwRkYiLCJCbHVlIiwiNjY2Njk5IiwiR3JheWlzaCBibHVlIiwiODA4MDgwIiwiR3JheSIsIkZG
MDAwMCIsIlJlZCIsIkZGOTkwMCIsIkFtYmVyIiwiOTlDQzAwIiwiWWVsbG93IGdyZWVuIiwiMzM5
OTY2IiwiU2VhIGdyZWVuIiwiMzNDQ0NDIiwiVHVycXVvaXNlIiwiMzM2NkZGIiwiUm95YWwgYmx1
ZSIsIjgwMDA4MCIsIlB1cnBsZSIsIjk5OTk5OSIsIk1lZGl1bSBncmF5IiwiRkYwMEZGIiwiTWFn
ZW50YSIsIkZGQ0MwMCIsIkdvbGQiLCJGRkZGMDAiLCJZZWxsb3ciLCIwMEZGMDAiLCJMaW1lIiwi
MDBGRkZGIiwiQXF1YSIsIjAwQ0NGRiIsIlNreSBibHVlIiwiOTkzMzY2IiwiUmVkIHZpb2xldCIs
IkMwQzBDMCIsIlNpbHZlciIsIkZGOTlDQyIsIlBpbmsiLCJGRkNDOTkiLCJQZWFjaCIsIkZGRkY5
OSIsIkxpZ2h0IHllbGxvdyIsIkNDRkZDQyIsIlBhbGUgZ3JlZW4iLCJDQ0ZGRkYiLCJQYWxlIGN5
YW4iLCI5OUNDRkYiLCJMaWdodCBza3kgYmx1ZSIsIkNDOTlGRiIsIlBsdW0iLCJGRkZGRkYiLCJX
aGl0ZSJdLHQ9MDt0PG8ubGVuZ3RoO3QrPTIpbC5wdXNoKHt0ZXh0Om9bdCsxXSxjb2xvcjpvW3Rd
fSk7cmV0dXJuIGx9ZnVuY3Rpb24gbygpe3ZhciBvLGwscixhLGMsaSxuLEYsZCxzPXRoaXM7Zm9y
KG89dCgpLHI9Jzx0YWJsZSBjbGFzcz0ibWNlLWdyaWQgbWNlLWdyaWQtYm9yZGVyIG1jZS1jb2xv
cmJ1dHRvbi1ncmlkIiByb2xlPSJsaXN0IiBjZWxsc3BhY2luZz0iMCI+PHRib2R5PicsYT1vLmxl
bmd0aC0xLGM9ZS5zZXR0aW5ncy50ZXh0Y29sb3Jfcm93c3x8NSxpPWUuc2V0dGluZ3MudGV4dGNv
bG9yX2NvbHN8fDgsRj0wO2M+RjtGKyspe2ZvcihyKz0iPHRyPiIsbj0wO2k+bjtuKyspZD1GKmkr
bixkPmE/cis9Ijx0ZD48L3RkPiI6KGw9b1tkXSxyKz0nPHRkPjxkaXYgaWQ9Iicrcy5faWQrIi0i
K2QrJyIgZGF0YS1tY2UtY29sb3I9IicrbC5jb2xvcisnIiByb2xlPSJvcHRpb24iIHRhYkluZGV4
PSItMSIgc3R5bGU9IicrKGw/ImJhY2tncm91bmQtY29sb3I6ICMiK2wuY29sb3I6IiIpKyciIHRp
dGxlPSInK2wudGV4dCsnIj48L2Rpdj48L3RkPicpO3IrPSI8L3RyPiJ9cmV0dXJuIHIrPSI8L3Ri
b2R5PjwvdGFibGU+In1mdW5jdGlvbiBsKHQpe3ZhciBvLGw9dGhpcy5wYXJlbnQoKTsobz10LnRh
cmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLWNvbG9yIikpJiYodGhpcy5sYXN0SWQmJmRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKHRoaXMubGFzdElkKS5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0
ZWQiLCExKSx0LnRhcmdldC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCEwKSx0aGlzLmxh
c3RJZD10LnRhcmdldC5pZCxsLmhpZGVQYW5lbCgpLG89IiMiK28sbC5jb2xvcihvKSxlLmV4ZWND
b21tYW5kKGwuc2V0dGluZ3Muc2VsZWN0Y21kLCExLG8pKX1mdW5jdGlvbiByKCl7dmFyIHQ9dGhp
czt0Ll9jb2xvciYmZS5leGVjQ29tbWFuZCh0LnNldHRpbmdzLnNlbGVjdGNtZCwhMSx0Ll9jb2xv
cil9ZS5hZGRCdXR0b24oImZvcmVjb2xvciIse3R5cGU6ImNvbG9yYnV0dG9uIix0b29sdGlwOiJU
ZXh0IGNvbG9yIixzZWxlY3RjbWQ6IkZvcmVDb2xvciIscGFuZWw6e3JvbGU6ImFwcGxpY2F0aW9u
IixhcmlhUmVtZW1iZXI6ITAsaHRtbDpvLG9uY2xpY2s6bH0sb25jbGljazpyfSksZS5hZGRCdXR0
b24oImJhY2tjb2xvciIse3R5cGU6ImNvbG9yYnV0dG9uIix0b29sdGlwOiJCYWNrZ3JvdW5kIGNv
bG9yIixzZWxlY3RjbWQ6IkhpbGl0ZUNvbG9yIixwYW5lbDp7cm9sZToiYXBwbGljYXRpb24iLGFy
aWFSZW1lbWJlcjohMCxodG1sOm8sb25jbGljazpsfSxvbmNsaWNrOnJ9KX0pO3RpbnltY2UuUGx1
Z2luTWFuYWdlci5hZGQoInZpc3VhbGJsb2NrcyIsZnVuY3Rpb24oZSxzKXtmdW5jdGlvbiBvKCl7
dmFyIHM9dGhpcztzLmFjdGl2ZShhKSxlLm9uKCJWaXN1YWxCbG9ja3MiLGZ1bmN0aW9uKCl7cy5h
Y3RpdmUoZS5kb20uaGFzQ2xhc3MoZS5nZXRCb2R5KCksIm1jZS12aXN1YWxibG9ja3MiKSl9KX12
YXIgbCx0LGE7d2luZG93Lk5vZGVMaXN0JiYoZS5hZGRDb21tYW5kKCJtY2VWaXN1YWxCbG9ja3Mi
LGZ1bmN0aW9uKCl7dmFyIG8sYz1lLmRvbTtsfHwobD1jLnVuaXF1ZUlkKCksbz1jLmNyZWF0ZSgi
bGluayIse2lkOmwscmVsOiJzdHlsZXNoZWV0IixocmVmOnMrIi9jc3MvdmlzdWFsYmxvY2tzLmNz
cyJ9KSxlLmdldERvYygpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hp
bGQobykpLGUub24oIlByZXZpZXdGb3JtYXRzIEFmdGVyUHJldmlld0Zvcm1hdHMiLGZ1bmN0aW9u
KHMpe2EmJmMudG9nZ2xlQ2xhc3MoZS5nZXRCb2R5KCksIm1jZS12aXN1YWxibG9ja3MiLCJhZnRl
cnByZXZpZXdmb3JtYXRzIj09cy50eXBlKX0pLGMudG9nZ2xlQ2xhc3MoZS5nZXRCb2R5KCksIm1j
ZS12aXN1YWxibG9ja3MiKSxhPWUuZG9tLmhhc0NsYXNzKGUuZ2V0Qm9keSgpLCJtY2UtdmlzdWFs
YmxvY2tzIiksdCYmdC5hY3RpdmUoYy5oYXNDbGFzcyhlLmdldEJvZHkoKSwibWNlLXZpc3VhbGJs
b2NrcyIpKSxlLmZpcmUoIlZpc3VhbEJsb2NrcyIpfSksZS5hZGRCdXR0b24oInZpc3VhbGJsb2Nr
cyIse3RpdGxlOiJTaG93IGJsb2NrcyIsY21kOiJtY2VWaXN1YWxCbG9ja3MiLG9uUG9zdFJlbmRl
cjpvfSksZS5hZGRNZW51SXRlbSgidmlzdWFsYmxvY2tzIix7dGV4dDoiU2hvdyBibG9ja3MiLGNt
ZDoibWNlVmlzdWFsQmxvY2tzIixvblBvc3RSZW5kZXI6byxzZWxlY3RhYmxlOiEwLGNvbnRleHQ6
InZpZXciLHByZXBlbmRUb0NvbnRleHQ6ITB9KSxlLm9uKCJpbml0IixmdW5jdGlvbigpe2Uuc2V0
dGluZ3MudmlzdWFsYmxvY2tzX2RlZmF1bHRfc3RhdGUmJmUuZXhlY0NvbW1hbmQoIm1jZVZpc3Vh
bEJsb2NrcyIsITEsbnVsbCx7c2tpcF9mb2N1czohMH0pfSksZS5vbigicmVtb3ZlIixmdW5jdGlv
bigpe2UuZG9tLnJlbW92ZUNsYXNzKGUuZ2V0Qm9keSgpLCJtY2UtdmlzdWFsYmxvY2tzIil9KSl9
KTt0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJ2aXN1YWxjaGFycyIsZnVuY3Rpb24oZSl7ZnVu
Y3Rpb24gYShhKXt2YXIgdCxzLGkscixjLGQsbD1lLmdldEJvZHkoKSxtPWUuc2VsZWN0aW9uO2lm
KG49IW4sby5zdGF0ZT1uLGUuZmlyZSgiVmlzdWFsQ2hhcnMiLHtzdGF0ZTpufSksYSYmKGQ9bS5n
ZXRCb29rbWFyaygpKSxuKWZvcihzPVtdLHRpbnltY2Uud2FsayhsLGZ1bmN0aW9uKGUpezM9PWUu
bm9kZVR5cGUmJmUubm9kZVZhbHVlJiYtMSE9ZS5ub2RlVmFsdWUuaW5kZXhPZigiwqAiKSYmcy5w
dXNoKGUpfSwiY2hpbGROb2RlcyIpLGk9MDtpPHMubGVuZ3RoO2krKyl7Zm9yKHI9c1tpXS5ub2Rl
VmFsdWUscj1yLnJlcGxhY2UoLyhcdTAwYTApL2csJzxzcGFuIGRhdGEtbWNlLWJvZ3VzPSIxIiBj
bGFzcz0ibWNlLW5ic3AiPiQxPC9zcGFuPicpLGM9ZS5kb20uY3JlYXRlKCJkaXYiLG51bGwscik7
dD1jLmxhc3RDaGlsZDspZS5kb20uaW5zZXJ0QWZ0ZXIodCxzW2ldKTtlLmRvbS5yZW1vdmUoc1tp
XSl9ZWxzZSBmb3Iocz1lLmRvbS5zZWxlY3QoInNwYW4ubWNlLW5ic3AiLGwpLGk9cy5sZW5ndGgt
MTtpPj0wO2ktLSllLmRvbS5yZW1vdmUoc1tpXSwxKTttLm1vdmVUb0Jvb2ttYXJrKGQpfWZ1bmN0
aW9uIHQoKXt2YXIgYT10aGlzO2Uub24oIlZpc3VhbENoYXJzIixmdW5jdGlvbihlKXthLmFjdGl2
ZShlLnN0YXRlKX0pfXZhciBuLG89dGhpcztlLmFkZENvbW1hbmQoIm1jZVZpc3VhbENoYXJzIixh
KSxlLmFkZEJ1dHRvbigidmlzdWFsY2hhcnMiLHt0aXRsZToiU2hvdyBpbnZpc2libGUgY2hhcmFj
dGVycyIsY21kOiJtY2VWaXN1YWxDaGFycyIsb25Qb3N0UmVuZGVyOnR9KSxlLmFkZE1lbnVJdGVt
KCJ2aXN1YWxjaGFycyIse3RleHQ6IlNob3cgaW52aXNpYmxlIGNoYXJhY3RlcnMiLGNtZDoibWNl
VmlzdWFsQ2hhcnMiLG9uUG9zdFJlbmRlcjp0LHNlbGVjdGFibGU6ITAsY29udGV4dDoidmlldyIs
cHJlcGVuZFRvQ29udGV4dDohMH0pLGUub24oImJlZm9yZWdldGNvbnRlbnQiLGZ1bmN0aW9uKGUp
e24mJiJyYXciIT1lLmZvcm1hdCYmIWUuZHJhZnQmJihuPSEwLGEoITEpKX0pfSk7dGlueW1jZS5Q
bHVnaW5NYW5hZ2VyLmFkZCgid29yZGNvdW50IixmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7ZS50
aGVtZS5wYW5lbC5maW5kKCIjd29yZGNvdW50IikudGV4dChbIldvcmRzOiB7MH0iLGEuZ2V0Q291
bnQoKV0pfXZhciBuLG8sYT10aGlzO249ZS5nZXRQYXJhbSgid29yZGNvdW50X2NvdW50cmVnZXgi
LC9bXHdcdTIwMTlceDI3XC1cdTAwQzAtXHUxRkZGXSsvZyksbz1lLmdldFBhcmFtKCJ3b3JkY291
bnRfY2xlYW5yZWdleCIsL1swLTkuKCksOzohPyUjJD9ceDI3XHgyMl8rPVxcXC9cLV0qL2cpLGUu
b24oImluaXQiLGZ1bmN0aW9uKCl7dmFyIG49ZS50aGVtZS5wYW5lbCYmZS50aGVtZS5wYW5lbC5m
aW5kKCIjc3RhdHVzYmFyIilbMF07biYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLmlu
c2VydCh7dHlwZToibGFiZWwiLG5hbWU6IndvcmRjb3VudCIsdGV4dDpbIldvcmRzOiB7MH0iLGEu
Z2V0Q291bnQoKV0sY2xhc3Nlczoid29yZGNvdW50IixkaXNhYmxlZDplLnNldHRpbmdzLnJlYWRv
bmx5fSwwKSxlLm9uKCJzZXRjb250ZW50IGJlZm9yZWFkZHVuZG8iLHQpLGUub24oImtleXVwIixm
dW5jdGlvbihlKXszMj09ZS5rZXlDb2RlJiZ0KCl9KX0sMCl9KSxhLmdldENvdW50PWZ1bmN0aW9u
KCl7dmFyIHQ9ZS5nZXRDb250ZW50KHtmb3JtYXQ6InJhdyJ9KSxhPTA7aWYodCl7dD10LnJlcGxh
Y2UoL1wuXC5cLi9nLCIgIiksdD10LnJlcGxhY2UoLzwuW148Pl0qPz4vZywiICIpLnJlcGxhY2Uo
LyZuYnNwO3wmIzE2MDsvZ2ksIiAiKSx0PXQucmVwbGFjZSgvKFx3KykoJiM/W2EtejAtOV0rOykr
KFx3KykvaSwiJDEkMyIpLnJlcGxhY2UoLyYuKz87L2csIiAiKSx0PXQucmVwbGFjZShvLCIiKTt2
YXIgcj10Lm1hdGNoKG4pO3ImJihhPXIubGVuZ3RoKX1yZXR1cm4gYX19KTt0aW55bWNlLlRoZW1l
TWFuYWdlci5hZGQoIm1vZGVybiIsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe2Z1bmN0aW9uIHQo
dCl7dmFyIG4sbz1bXTtpZih0KXJldHVybiBkKHQuc3BsaXQoL1sgLF0vKSxmdW5jdGlvbih0KXtm
dW5jdGlvbiBpKCl7dmFyIGk9ZS5zZWxlY3Rpb247ImJ1bGxpc3QiPT1yJiZpLnNlbGVjdG9yQ2hh
bmdlZCgidWwgPiBsaSIsZnVuY3Rpb24oZSxpKXtmb3IodmFyIG4sbz1pLnBhcmVudHMubGVuZ3Ro
O28tLSYmKG49aS5wYXJlbnRzW29dLm5vZGVOYW1lLCJPTCIhPW4mJiJVTCIhPW4pOyk7dC5hY3Rp
dmUoZSYmIlVMIj09bil9KSwibnVtbGlzdCI9PXImJmkuc2VsZWN0b3JDaGFuZ2VkKCJvbCA+IGxp
IixmdW5jdGlvbihlLGkpe2Zvcih2YXIgbixvPWkucGFyZW50cy5sZW5ndGg7by0tJiYobj1pLnBh
cmVudHNbb10ubm9kZU5hbWUsIk9MIiE9biYmIlVMIiE9bik7KTt0LmFjdGl2ZShlJiYiT0wiPT1u
KX0pLHQuc2V0dGluZ3Muc3RhdGVTZWxlY3RvciYmaS5zZWxlY3RvckNoYW5nZWQodC5zZXR0aW5n
cy5zdGF0ZVNlbGVjdG9yLGZ1bmN0aW9uKGUpe3QuYWN0aXZlKGUpfSwhMCksdC5zZXR0aW5ncy5k
aXNhYmxlZFN0YXRlU2VsZWN0b3ImJmkuc2VsZWN0b3JDaGFuZ2VkKHQuc2V0dGluZ3MuZGlzYWJs
ZWRTdGF0ZVNlbGVjdG9yLGZ1bmN0aW9uKGUpe3QuZGlzYWJsZWQoZSl9KX12YXIgcjsifCI9PXQ/
bj1udWxsOmMuaGFzKHQpPyh0PXt0eXBlOnR9LHUudG9vbGJhcl9pdGVtc19zaXplJiYodC5zaXpl
PXUudG9vbGJhcl9pdGVtc19zaXplKSxvLnB1c2godCksbj1udWxsKToobnx8KG49e3R5cGU6ImJ1
dHRvbmdyb3VwIixpdGVtczpbXX0sby5wdXNoKG4pKSxlLmJ1dHRvbnNbdF0mJihyPXQsdD1lLmJ1
dHRvbnNbcl0sImZ1bmN0aW9uIj09dHlwZW9mIHQmJih0PXQoKSksdC50eXBlPXQudHlwZXx8ImJ1
dHRvbiIsdS50b29sYmFyX2l0ZW1zX3NpemUmJih0LnNpemU9dS50b29sYmFyX2l0ZW1zX3NpemUp
LHQ9Yy5jcmVhdGUodCksbi5pdGVtcy5wdXNoKHQpLGUuaW5pdGlhbGl6ZWQ/aSgpOmUub24oImlu
aXQiLGkpKSl9KSxpLnB1c2goe3R5cGU6InRvb2xiYXIiLGxheW91dDoiZmxvdyIsaXRlbXM6b30p
LCEwfXZhciBpPVtdO2lmKHRpbnltY2UuaXNBcnJheSh1LnRvb2xiYXIpKXtpZigwPT09dS50b29s
YmFyLmxlbmd0aClyZXR1cm47dGlueW1jZS5lYWNoKHUudG9vbGJhcixmdW5jdGlvbihlLHQpe3Vb
InRvb2xiYXIiKyh0KzEpXT1lfSksZGVsZXRlIHUudG9vbGJhcn1mb3IodmFyIG49MTsxMD5uJiZ0
KHVbInRvb2xiYXIiK25dKTtuKyspO3JldHVybiBpLmxlbmd0aHx8dS50b29sYmFyPT09ITF8fHQo
dS50b29sYmFyfHxmKSxpLmxlbmd0aD97dHlwZToicGFuZWwiLGxheW91dDoic3RhY2siLGNsYXNz
ZXM6InRvb2xiYXItZ3JwIixhcmlhUm9vdDohMCxhcmlhUmVtZW1iZXI6ITAsaXRlbXM6aX06dm9p
ZCAwfWZ1bmN0aW9uIGkoKXtmdW5jdGlvbiB0KHQpe3ZhciBpO3JldHVybiJ8Ij09dD97dGV4dDoi
fCJ9Omk9ZS5tZW51SXRlbXNbdF19ZnVuY3Rpb24gaShpKXt2YXIgbixvLHIsYSxzO2lmKHM9dGlu
eW1jZS5tYWtlTWFwKCh1LnJlbW92ZWRfbWVudWl0ZW1zfHwiIikuc3BsaXQoL1sgLF0vKSksdS5t
ZW51PyhvPXUubWVudVtpXSxhPSEwKTpvPWhbaV0sbyl7bj17dGV4dDpvLnRpdGxlfSxyPVtdLGQo
KG8uaXRlbXN8fCIiKS5zcGxpdCgvWyAsXS8pLGZ1bmN0aW9uKGUpe3ZhciBpPXQoZSk7aSYmIXNb
ZV0mJnIucHVzaCh0KGUpKX0pLGF8fGQoZS5tZW51SXRlbXMsZnVuY3Rpb24oZSl7ZS5jb250ZXh0
PT1pJiYoImJlZm9yZSI9PWUuc2VwYXJhdG9yJiZyLnB1c2goe3RleHQ6InwifSksZS5wcmVwZW5k
VG9Db250ZXh0P3IudW5zaGlmdChlKTpyLnB1c2goZSksImFmdGVyIj09ZS5zZXBhcmF0b3ImJnIu
cHVzaCh7dGV4dDoifCJ9KSl9KTtmb3IodmFyIGw9MDtsPHIubGVuZ3RoO2wrKykifCI9PXJbbF0u
dGV4dCYmKDA9PT1sfHxsPT1yLmxlbmd0aC0xKSYmci5zcGxpY2UobCwxKTtpZihuLm1lbnU9ciwh
bi5tZW51Lmxlbmd0aClyZXR1cm4gbnVsbH1yZXR1cm4gbn12YXIgbixvPVtdLHI9W107aWYodS5t
ZW51KWZvcihuIGluIHUubWVudSlyLnB1c2gobik7ZWxzZSBmb3IobiBpbiBoKXIucHVzaChuKTtm
b3IodmFyIGE9InN0cmluZyI9PXR5cGVvZiB1Lm1lbnViYXI/dS5tZW51YmFyLnNwbGl0KC9bICxd
Lyk6cixzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPWFbc107bD1pKGwpLGwmJm8ucHVzaChsKX1y
ZXR1cm4gb31mdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGkoZSl7dmFyIGk9dC5maW5kKGUpWzBdO2km
JmkuZm9jdXMoITApfWUuc2hvcnRjdXRzLmFkZCgiQWx0K0Y5IiwiIixmdW5jdGlvbigpe2koIm1l
bnViYXIiKX0pLGUuc2hvcnRjdXRzLmFkZCgiQWx0K0YxMCIsIiIsZnVuY3Rpb24oKXtpKCJ0b29s
YmFyIil9KSxlLnNob3J0Y3V0cy5hZGQoIkFsdCtGMTEiLCIiLGZ1bmN0aW9uKCl7aSgiZWxlbWVu
dHBhdGgiKX0pLHQub24oImNhbmNlbCIsZnVuY3Rpb24oKXtlLmZvY3VzKCl9KX1mdW5jdGlvbiBv
KHQsaSl7ZnVuY3Rpb24gbihlKXtyZXR1cm57d2lkdGg6ZS5jbGllbnRXaWR0aCxoZWlnaHQ6ZS5j
bGllbnRIZWlnaHR9fXZhciBvLHIsYSxzO289ZS5nZXRDb250YWluZXIoKSxyPWUuZ2V0Q29udGVu
dEFyZWFDb250YWluZXIoKS5maXJzdENoaWxkLGE9bihvKSxzPW4ociksbnVsbCE9PXQmJih0PU1h
dGgubWF4KHUubWluX3dpZHRofHwxMDAsdCksdD1NYXRoLm1pbih1Lm1heF93aWR0aHx8NjU1MzUs
dCksbS5jc3Mobywid2lkdGgiLHQrKGEud2lkdGgtcy53aWR0aCkpLG0uY3NzKHIsIndpZHRoIix0
KSksaT1NYXRoLm1heCh1Lm1pbl9oZWlnaHR8fDEwMCxpKSxpPU1hdGgubWluKHUubWF4X2hlaWdo
dHx8NjU1MzUsaSksbS5jc3MociwiaGVpZ2h0IixpKSxlLmZpcmUoIlJlc2l6ZUVkaXRvciIpfWZ1
bmN0aW9uIHIodCxpKXt2YXIgbj1lLmdldENvbnRlbnRBcmVhQ29udGFpbmVyKCk7bC5yZXNpemVU
byhuLmNsaWVudFdpZHRoK3Qsbi5jbGllbnRIZWlnaHQraSl9ZnVuY3Rpb24gYShvKXtmdW5jdGlv
biByKCl7aWYoaCYmaC5tb3ZlUmVsJiZoLnZpc2libGUoKSYmIWguX2ZpeGVkKXt2YXIgdD1lLnNl
bGVjdGlvbi5nZXRTY3JvbGxDb250YWluZXIoKSxpPWUuZ2V0Qm9keSgpLG49MCxvPTA7aWYodCl7
dmFyIHI9bS5nZXRQb3MoaSksYT1tLmdldFBvcyh0KTtuPU1hdGgubWF4KDAsYS54LXIueCksbz1N
YXRoLm1heCgwLGEueS1yLnkpfWguZml4ZWQoITEpLm1vdmVSZWwoaSxlLnJ0bD9bInRyLWJyIiwi
YnItdHIiXTpbInRsLWJsIiwiYmwtdGwiXSkubW92ZUJ5KG4sbyl9fWZ1bmN0aW9uIGEoKXtoJiYo
aC5zaG93KCkscigpLG0uYWRkQ2xhc3MoZS5nZXRCb2R5KCksIm1jZS1lZGl0LWZvY3VzIikpfWZ1
bmN0aW9uIHMoKXtoJiYoaC5oaWRlKCksbS5yZW1vdmVDbGFzcyhlLmdldEJvZHkoKSwibWNlLWVk
aXQtZm9jdXMiKSl9ZnVuY3Rpb24gZCgpe3JldHVybiBoP3ZvaWQoaC52aXNpYmxlKCl8fGEoKSk6
KGg9bC5wYW5lbD1jLmNyZWF0ZSh7dHlwZTpmPyJwYW5lbCI6ImZsb2F0cGFuZWwiLHJvbGU6ImFw
cGxpY2F0aW9uIixjbGFzc2VzOiJ0aW55bWNlIHRpbnltY2UtaW5saW5lIixsYXlvdXQ6ImZsZXgi
LGRpcmVjdGlvbjoiY29sdW1uIixhbGlnbjoic3RyZXRjaCIsYXV0b2hpZGU6ITEsYXV0b2ZpeDoh
MCxmaXhlZDohIWYsYm9yZGVyOjEsaXRlbXM6W3UubWVudWJhcj09PSExP251bGw6e3R5cGU6Im1l
bnViYXIiLGJvcmRlcjoiMCAwIDEgMCIsaXRlbXM6aSgpfSx0KCldfSksZS5maXJlKCJCZWZvcmVS
ZW5kZXJVSSIpLGgucmVuZGVyVG8oZnx8ZG9jdW1lbnQuYm9keSkucmVmbG93KCksbihoKSxhKCks
ZS5vbigibm9kZUNoYW5nZSIsciksZS5vbigiYWN0aXZhdGUiLGEpLGUub24oImRlYWN0aXZhdGUi
LHMpLHZvaWQgZS5ub2RlQ2hhbmdlZCgpKX12YXIgaCxmO3JldHVybiB1LmZpeGVkX3Rvb2xiYXJf
Y29udGFpbmVyJiYoZj1tLnNlbGVjdCh1LmZpeGVkX3Rvb2xiYXJfY29udGFpbmVyKVswXSksdS5j
b250ZW50X2VkaXRhYmxlPSEwLGUub24oImZvY3VzIixmdW5jdGlvbigpe28uc2tpblVpQ3NzP3Rp
bnltY2UuRE9NLnN0eWxlU2hlZXRMb2FkZXIubG9hZChvLnNraW5VaUNzcyxkLGQpOmQoKX0pLGUu
b24oImJsdXIgaGlkZSIscyksZS5vbigicmVtb3ZlIixmdW5jdGlvbigpe2gmJihoLnJlbW92ZSgp
LGg9bnVsbCl9KSxvLnNraW5VaUNzcyYmdGlueW1jZS5ET00uc3R5bGVTaGVldExvYWRlci5sb2Fk
KG8uc2tpblVpQ3NzKSx7fX1mdW5jdGlvbiBzKHIpe3ZhciBhLHMsZDtyZXR1cm4gci5za2luVWlD
c3MmJnRpbnltY2UuRE9NLmxvYWRDU1Moci5za2luVWlDc3MpLGE9bC5wYW5lbD1jLmNyZWF0ZSh7
dHlwZToicGFuZWwiLHJvbGU6ImFwcGxpY2F0aW9uIixjbGFzc2VzOiJ0aW55bWNlIixzdHlsZToi
dmlzaWJpbGl0eTogaGlkZGVuIixsYXlvdXQ6InN0YWNrIixib3JkZXI6MSxpdGVtczpbdS5tZW51
YmFyPT09ITE/bnVsbDp7dHlwZToibWVudWJhciIsYm9yZGVyOiIwIDAgMSAwIixpdGVtczppKCl9
LHQoKSx7dHlwZToicGFuZWwiLG5hbWU6ImlmcmFtZSIsbGF5b3V0OiJzdGFjayIsY2xhc3Nlczoi
ZWRpdC1hcmVhIixodG1sOiIiLGJvcmRlcjoiMSAwIDAgMCJ9XX0pLHUucmVzaXplIT09ITEmJihz
PXt0eXBlOiJyZXNpemVoYW5kbGUiLGRpcmVjdGlvbjp1LnJlc2l6ZSxvblJlc2l6ZVN0YXJ0OmZ1
bmN0aW9uKCl7dmFyIHQ9ZS5nZXRDb250ZW50QXJlYUNvbnRhaW5lcigpLmZpcnN0Q2hpbGQ7ZD17
d2lkdGg6dC5jbGllbnRXaWR0aCxoZWlnaHQ6dC5jbGllbnRIZWlnaHR9fSxvblJlc2l6ZTpmdW5j
dGlvbihlKXsiYm90aCI9PXUucmVzaXplP28oZC53aWR0aCtlLmRlbHRhWCxkLmhlaWdodCtlLmRl
bHRhWSk6byhudWxsLGQuaGVpZ2h0K2UuZGVsdGFZKX19KSx1LnN0YXR1c2JhciE9PSExJiZhLmFk
ZCh7dHlwZToicGFuZWwiLG5hbWU6InN0YXR1c2JhciIsY2xhc3Nlczoic3RhdHVzYmFyIixsYXlv
dXQ6ImZsb3ciLGJvcmRlcjoiMSAwIDAgMCIsYXJpYVJvb3Q6ITAsaXRlbXM6W3t0eXBlOiJlbGVt
ZW50cGF0aCJ9LHNdfSksdS5yZWFkb25seSYmYS5maW5kKCIqIikuZGlzYWJsZWQoITApLGUuZmly
ZSgiQmVmb3JlUmVuZGVyVUkiKSxhLnJlbmRlckJlZm9yZShyLnRhcmdldE5vZGUpLnJlZmxvdygp
LHUud2lkdGgmJnRpbnltY2UuRE9NLnNldFN0eWxlKGEuZ2V0RWwoKSwid2lkdGgiLHUud2lkdGgp
LGUub24oInJlbW92ZSIsZnVuY3Rpb24oKXthLnJlbW92ZSgpLGE9bnVsbH0pLG4oYSkse2lmcmFt
ZUNvbnRhaW5lcjphLmZpbmQoIiNpZnJhbWUiKVswXS5nZXRFbCgpLGVkaXRvckNvbnRhaW5lcjph
LmdldEVsKCl9fXZhciBsPXRoaXMsdT1lLnNldHRpbmdzLGM9dGlueW1jZS51aS5GYWN0b3J5LGQ9
dGlueW1jZS5lYWNoLG09dGlueW1jZS5ET00saD17ZmlsZTp7dGl0bGU6IkZpbGUiLGl0ZW1zOiJu
ZXdkb2N1bWVudCJ9LGVkaXQ6e3RpdGxlOiJFZGl0IixpdGVtczoidW5kbyByZWRvIHwgY3V0IGNv
cHkgcGFzdGUgcGFzdGV0ZXh0IHwgc2VsZWN0YWxsIn0saW5zZXJ0Ont0aXRsZToiSW5zZXJ0Iixp
dGVtczoifCJ9LHZpZXc6e3RpdGxlOiJWaWV3IixpdGVtczoidmlzdWFsYWlkIHwifSxmb3JtYXQ6
e3RpdGxlOiJGb3JtYXQiLGl0ZW1zOiJib2xkIGl0YWxpYyB1bmRlcmxpbmUgc3RyaWtldGhyb3Vn
aCBzdXBlcnNjcmlwdCBzdWJzY3JpcHQgfCBmb3JtYXRzIHwgcmVtb3ZlZm9ybWF0In0sdGFibGU6
e3RpdGxlOiJUYWJsZSJ9LHRvb2xzOnt0aXRsZToiVG9vbHMifX0sZj0idW5kbyByZWRvIHwgc3R5
bGVzZWxlY3QgfCBib2xkIGl0YWxpYyB8IGFsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0
IGFsaWduanVzdGlmeSB8IGJ1bGxpc3QgbnVtbGlzdCBvdXRkZW50IGluZGVudCB8IGxpbmsgaW1h
Z2UiO2wucmVuZGVyVUk9ZnVuY3Rpb24odCl7dmFyIGk9dS5za2luIT09ITE/dS5za2lufHwibGln
aHRncmF5IjohMTtpZihpKXt2YXIgbj11LnNraW5fdXJsO249bj9lLmRvY3VtZW50QmFzZVVSSS50
b0Fic29sdXRlKG4pOnRpbnltY2UuYmFzZVVSTCsiL3NraW5zLyIraSx0LnNraW5VaUNzcz10aW55
bWNlLkVudi5kb2N1bWVudE1vZGU8PTc/bisiL3NraW4uaWU3Lm1pbi5jc3MiOm4rIi9za2luLm1p
bi5jc3MiLGUuY29udGVudENTUy5wdXNoKG4rIi9jb250ZW50IisoZS5pbmxpbmU/Ii5pbmxpbmUi
OiIiKSsiLm1pbi5jc3MiKX1yZXR1cm4gZS5vbigiUHJvZ3Jlc3NTdGF0ZSIsZnVuY3Rpb24oZSl7
bC50aHJvYmJlcj1sLnRocm9iYmVyfHxuZXcgdGlueW1jZS51aS5UaHJvYmJlcihsLnBhbmVsLmdl
dEVsKCJib2R5IikpLGUuc3RhdGU/bC50aHJvYmJlci5zaG93KGUudGltZSk6bC50aHJvYmJlci5o
aWRlKCl9KSx1LmlubGluZT9hKHQpOnModCl9LGwucmVzaXplVG89byxsLnJlc2l6ZUJ5PXJ9KTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9rZXlfbG9nZ2VyLmh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9rZXlfbG9nZ2VyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYwMDg0OTZlYmJlCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIva2V5X2xvZ2dlci5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzw/eG1sIHZlcnNpb249IjEu
MCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiAi
aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxMS9EVEQveGh0bWwxMS5kdGQiPgorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3RpbmcgS2V5IEV2ZW50czwvdGl0bGU+CisgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBmdW5jdGlvbiBhcHBlbmRNZXNz
YWdlKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHRQYXJhZ3JhcGgnKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICIgIjsKKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJyZXN1bHRDb250YWluZXIiIGhl
aWdodD0iMzAiPiZuYnNwOworICA8ZGl2IGlkPSJyZXN1bHQiIHN0eWxlPSJ3aWR0aDozMDA7aGVp
Z2h0OjYwIj4KKyAgICA8cCBpZD0icmVzdWx0UGFyYWdyYXBoIj4mbmJzcDs8L3A+CisgIDwvZGl2
PgorPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorPGRpdj4KKyAgPGZv
cm0gYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIGlkPSJvbi1mb3JtIj4KKyAgICA8aW5wdXQgaWQ9
InRoZXdvcmtzIgorICAgICAgICAgICBvbmZvY3VzPSJhcHBlbmRNZXNzYWdlKCdmb2N1cycpIgor
ICAgICAgICAgICBvbmtleWRvd249ImFwcGVuZE1lc3NhZ2UoJ2tleWRvd24nKSIKKyAgICAgICAg
ICAgb25rZXlwcmVzcz0iYXBwZW5kTWVzc2FnZSgna2V5cHJlc3MnKSIKKyAgICAgICAgICAgb25r
ZXl1cD0iYXBwZW5kTWVzc2FnZSgna2V5dXAnKSIKKyAgICAgICAgICAgb25ibHVyPSJhcHBlbmRN
ZXNzYWdlKCdibHVyJykiCisgICAgICAgICAgIG9uY2hhbmdlPSJhcHBlbmRNZXNzYWdlKCdjaGFu
Z2UnKSIKKyAgICAgICAgICAgLz4KKyAgPC9mb3JtPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CisKKwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIva2V5X3Rlc3RzL3JlbW92ZV9vbl9rZXlwcmVzcy5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIva2V5X3Rlc3RzL3JlbW92ZV9vbl9r
ZXlwcmVzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMGYz
YWFiNGM3NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2tleV90ZXN0cy9yZW1vdmVfb25fa2V5cHJlc3MuaHRtbApAQCAt
MCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXY+PGlucHV0IGlkPSJ0YXJnZXQiIHR5
cGU9ImNoZWNrYm94Ij5QcmVzc2luZyAiYSIgd2hpbGUgdGhpcyBjaGVja2JveCBpcworICBmb2N1
c2VkIHdpbGwgcmVtb3ZlIGl0IGZyb20gdGhlIERPTS48L2Rpdj4KKzxkaXY+PHRleHRhcmVhIGlk
PSJsb2ciIHN0eWxlPSJ3aWR0aDoyNTBweDsgaGVpZ2h0OjI1MHB4OyI+PC90ZXh0YXJlYT48L2Rp
dj4KKzxkaXY+PGJ1dHRvbiBpZD0iY2xlYXIiPkNsZWFyIGxvZzwvYnV0dG9uPjwvZGl2PgorPHNj
cmlwdD4KKyAgZnVuY3Rpb24gcmVtb3ZlTm9kZShub2RlKSB7CisgICAgaWYgKG5vZGUgJiYgbm9k
ZS5wYXJlbnROb2RlKSB7CisgICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7
CisgICAgfQorICB9CisKKyAgZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsb2cnKS52YWx1ZSArPSBtc2cgKyAnXG4nOworICB9CisKKyAgZG9jdW1lbnQu
Ym9keS5vbmtleXVwID0gZnVuY3Rpb24oKSB7CisgICAgbG9nKCdrZXl1cCAoYm9keSknKTsKKyAg
fTsKKworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xlYXInKS5vbmNsaWNrID0gZnVuY3Rp
b24oKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLnZhbHVlID0gJyc7Cisg
IH07CisKKyAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsK
KyAgdGFyZ2V0Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKCkgeyBsb2coJ2tleWRvd24gKHRhcmdldCkn
KTsgfTsKKyAgdGFyZ2V0Lm9ua2V5cHJlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgZSA9IGUgfHwg
d2luZG93LmV2ZW50OworICAgIHZhciBrID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7CisgICAgaWYg
KGsgPT0gOTcpIHsKKyAgICAgIGxvZygnYSBwcmVzc2VkOyByZW1vdmluZycpOworICAgICAgcmVt
b3ZlTm9kZSh0YXJnZXQucGFyZW50Tm9kZSk7CisgICAgfQorICB9OworICB0YXJnZXQub25rZXl1
cCA9IGZ1bmN0aW9uKCkgeyBsb2coJ2tleXVwICh0YXJnZXQpJyk7IH07Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2tleWJvYXJkX3Nob3J0Y3V0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9rZXlib2FyZF9zaG9ydGN1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NDFkN2Y0YjhjZgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2tleWJvYXJkX3No
b3J0Y3V0Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keSBzdHls
ZT0iYmFja2dyb3VuZDogd2hpdGUiPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogcmVkIj5DVFJM
ICsgMTogcmVkPC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbiI+U0hJRlQgKyAx
OiBncmVlbjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogeWVsbG93Ij5DVFJMICsgU0hJ
RlQgKyAxOiB5ZWxsb3c8L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6IGxpZ2h0Ymx1ZSI+
QUxUICsgMTogbGlnaHRibHVlPC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBsaWdodGdy
ZWVuIj5DVFJMICsgQUxUICsgMTogbGlnaHRncmVlbjwvZGl2PgorPGRpdiBzdHlsZT0iYmFja2dy
b3VuZDogc2lsdmVyIj5TSElGVCArIEFMVCArIDE6IHNpbHZlcjwvZGl2PgorPGRpdiBzdHlsZT0i
YmFja2dyb3VuZDogbWFnZW50YSI+Q1RSTCArIFNISUZUICsgQUxUICsgMTogbWFnZW50YTwvZGl2
PgorPHNjcmlwdD4KKyAgdmFyIGNvbG9ycyA9IHt9OworICBjb2xvcnNbMHgwMDFdID0gJ3JlZCc7
CisgIGNvbG9yc1sweDAxMF0gPSAnZ3JlZW4nOworICBjb2xvcnNbMHgwMTFdID0gJ3llbGxvdyc7
CisgIGNvbG9yc1sweDEwMF0gPSAnbGlnaHRibHVlJzsKKyAgY29sb3JzWzB4MTAxXSA9ICdsaWdo
dGdyZWVuJzsKKyAgY29sb3JzWzB4MTEwXSA9ICdzaWx2ZXInOworICBjb2xvcnNbMHgxMTFdID0g
J21hZ2VudGEnOworCisgIGRvY3VtZW50Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKGUpIHsKKyAgICBp
ZiAoZS5rZXlDb2RlICE9IDQ5KSByZXR1cm47CisgICAgdmFyIG1hc2sgPSAwOworICAgIGlmIChl
LmN0cmxLZXkpIG1hc2sgfD0gMHgwMDE7CisgICAgaWYgKGUuc2hpZnRLZXkpIG1hc2sgfD0gMHgw
MTA7CisgICAgaWYgKGUuYWx0S2V5KSBtYXNrIHw9IDB4MTAwOworCisgICAgY29uc29sZS5sb2co
bWFzayk7CisgICAgaWYgKG1hc2spIHsKKyAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dy
b3VuZENvbG9yID0gY29sb3JzW21hc2tdOworICAgIH0KKworICAgIGUucHJldmVudERlZmF1bHQo
KTsKKyAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIHJldHVybiBmYWxzZTsKKyAgfTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvbGlua2VkX2ltYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9saW5rZWRfaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2M4ZGYwMDMxYTEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9saW5rZWRfaW1h
Z2UuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8TUVUQSBIVFRQLUVRVUlWPSJDb250ZW50LVR5cGUiIENPTlRFTlQ9InRleHQvaHRtbCI+Cis8
dGl0bGU+TGlua2luZyB3aXRoIGFuIGltYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlt
ZyBzdHlsZT0id2lkdGg6IDY0NHB4OyBoZWlnaHQ6IDQxcHg7IiBhbHQ9ImJhbm5lciIgc3JjPSJi
YW5uZXIuZ2lmIj48YnI+Cis8YSBpZD0ibGluayIgaHJlZj0iLi9yZXN1bHRQYWdlLmh0bWwiPkNs
aWNrIGhlcmUgZm9yIG5leHQgcGFnZTwvYT48YnI+Cis8YSBpZD0ibGlua1dpdGhFbmNsb3NlZElt
YWdlIiBocmVmPSIuL3Jlc3VsdFBhZ2UuaHRtbCI+PGltZyBpZD0iZW5jbG9zZWRJbWFnZSIgc3Jj
PSIuL2Jhbm5lci5naWYiPjwvYT48YnIvPgorPGEgaWQ9ImxpbmtUb0FuY2hvck9uVGhpc1BhZ2Ui
IGhyZWY9IiNsaW5rIj5saW5rIHRvIG90aGVyIGxpbms8L2E+PGJyLz4KKzxhIGlkPSJqdXN0YW5v
dGhlckxpbmsiIGhyZWY9Ii4vcmVzdWx0UGFnZS5odG1sIj5KdXN0IGFub3RoZXIgbGluay48L2E+
PGJyLz4KKzxhIGlkPSJsaW5rV2l0aEV4dHJhRW5jbG9zZWRJbWFnZSIgaHJlZj0iLi9yZXN1bHRQ
YWdlLmh0bWwiPjxkaXY+PGltZyBpZD0iZXh0cmFFbmNsb3NlZEltYWdlIiBzcmM9Ii4vYmFubmVy
LmdpZiI+PC9kaXY+PC9hPjxici8+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2xvY2F0b3JzX3Rl
c3RzL2Jvb2xlYW5fYXR0cmlidXRlX3NlbGVjdGVkLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9sb2NhdG9yc190ZXN0cy9ib29sZWFuX2F0dHJp
YnV0ZV9zZWxlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40MmIwNDQyYjA4YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2xvY2F0b3JzX3Rlc3RzL2Jvb2xlYW5fYXR0cmlidXRl
X3NlbGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0
bGU+Qm9vbGVhbiBBdHRyaWJ1dGUgU2VsZWN0ZWQ8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8
Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSIjIiBuYW1lPSJteUZvcm0iPgorICAgIDxzZWxlY3Qg
bmFtZT0ibXlEcm9wZG93biI+CisgICAgICAgIDxvcHRpb24gdmFsdWU9Im9uZSI+T25lPC9vcHRp
b24+CisgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIiB2YWx1ZT0idHdvIj5Ud288
L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZm91ciI+Rm91cjwvb3B0aW9uPgorICAg
IDwvc2VsZWN0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbG9jYXRvcnNfdGVzdHMvYm9vbGVhbl9h
dHRyaWJ1dGVfc2VsZWN0ZWRfaHRtbDQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2xvY2F0b3JzX3Rlc3RzL2Jvb2xlYW5fYXR0cmlidXRlX3Nl
bGVjdGVkX2h0bWw0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjYwY2QwMzM4MTczCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbG9jYXRvcnNfdGVzdHMvYm9vbGVhbl9hdHRyaWJ1dGVf
c2VsZWN0ZWRfaHRtbDQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgorICAg
IDx0aXRsZT5Cb29sZWFuIEF0dHJpYnV0ZSBTZWxlY3RlZDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249IiMiIG5hbWU9Im15Rm9ybSI+CisgICAgPHNl
bGVjdCBuYW1lPSJteURyb3Bkb3duIj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0ib25lIj5PbmU8
L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT0idHdvIj5Ud288L29wdGlv
bj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZm91ciI+Rm91cjwvb3B0aW9uPgorICAgIDwvc2Vs
ZWN0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbG9uZ0NvbnRlbnRQYWdlLmh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9sb25nQ29udGVudFBhZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTlhNDVlNzczODUK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9sb25nQ29udGVudFBhZ2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8aHRtbD4K
KzxoZWFkPgorICAgIDx0aXRsZT5Ub3VjaExvbmdDb250ZW50PC90aXRsZT4KKzwvaGVhZD4KKwor
PGJvZHk+CisgICAgPGgxPlRvdWNoIEFQSTwvaDE+CisgICAgPGgyPlBhZ2Ugd2l0aCBsb25nIGNv
bnRlbnQ8L2gyPgorICAgIDxwcmU+ICAgICAgICAgICAgICAgICAgIDxhIGlkPSJpbWFnZXN0YXJ0
Ij48aW1nIHNyYz0iaWNvbi5naWYiPjwvYT48L3ByZT48L2JyPjwvYnI+PC9icj4KKyAgICA8cD48
cHJlPkxvbmcgdGV4dDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSB2ZXJ5IGxvbmcgdGV4dCB0byBtYWtlIHRo
ZSBzY3JlZW4gaG9yaXpvbnRhbGx5IG1vdmFibGUsIHRvIHRlc3QgdGhlIGZsaWNrIGdlc3R1cmUg
YXQgYSBsb25nIGhvcml6b250YWwgZGlzdGFuY2UgPGEgaHJlZj0ieGh0bWxUZXN0Lmh0bWwiIGlk
PSJsaW5rMSI+Tm9ybWFsIGxpbms8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IG5vcm1h
bCBhbmQgZmFzdCBzcGVlZHMgdG8gc2VlIHJlc3VsdHMgb2YgaXQgPGEgaHJlZj0ieGh0bWxUZXN0
Lmh0bWwiIGlkPSJsaW5rMiI+Tm9ybWFsIGxpbmsgZW5kPC9hPjwvcHJlPjwvcD4KKyAgICA8L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAg
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgor
ICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9i
cj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+Cisg
ICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+CisgICAgTWlkZGxlIG9mIHRoZSBzY3JlZW4gPGEgaHJlZj0ieGh0bWxUZXN0Lmh0
bWwiIGlkPSJsaW5rMyI+Tm9ybWFsIGxpbms8L2E+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+Cisg
ICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwv
YnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAg
ICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPgorICAgIEJvdHRvbSBvZiB0aGUgc2NyZWVuIDxhIGhyZWY9InhodG1sVGVzdC5odG1sIiBp
ZD0ibGluazQiPk5vcm1hbCBsaW5rPC9hPjwvYnI+PC9icj48L2JyPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvbWFjYmV0aC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvbWFjYmV0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi45ZmEzOWQ1NjY2YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21hY2JldGguaHRtbApAQCAtMCwwICsxLDUy
NTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNp
dGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4K
KyA8aHRtbD4KKyA8aGVhZD4KKyA8dGl0bGU+TWFjYmV0aDogRW50aXJlIFBsYXkKKyA8L3RpdGxl
PgorIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PWlzby04ODU5LTEiPgorIDwvSEVBRD4KKyA8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIiB0
ZXh0PSIjMDAwMDAwIj4KKworIDwhLS0gT3JpZ2luYWxseSBmcm9tIGh0dHA6Ly9zaGFrZXNwZWFy
ZS5taXQuZWR1L21hY2JldGgvZnVsbC5odG1sIC0tPgorCis8YSBocmVmPSIjNS44Ljg2Ij5RdWlj
ayBsaW5rIHRvIGxhc3Qgc3BlZWNoPC9hPgorCis8SDM+QUNUIEk8L2gzPgorPGgzPlNDRU5FIEku
IEEgZGVzZXJ0IHBsYWNlLjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPlRodW5kZXIgYW5kIGxp
Z2h0bmluZy4gRW50ZXIgdGhyZWUgV2l0Y2hlczwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gxPjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0x
LjEuMT5XaGVuIHNoYWxsIHdlIHRocmVlIG1lZXQgYWdhaW48L0E+PGJyPgorPEEgTkFNRT0xLjEu
Mj5JbiB0aHVuZGVyLCBsaWdodG5pbmcsIG9yIGluIHJhaW4/PC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPlNlY29uZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9MS4xLjM+V2hlbiB0aGUgaHVybHlidXJseSdzIGRvbmUsPC9BPjxicj4KKzxB
IE5BTUU9MS4xLjQ+V2hlbiB0aGUgYmF0dGxlJ3MgbG9zdCBhbmQgd29uLjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5UaGlyZCBXaXRjaDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9MS4xLjU+VGhhdCB3aWxsIGJlIGVyZSB0aGUgc2V0IG9mIHN1bi48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+Rmlyc3QgV2l0Y2g8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMS42PldoZXJlIHRoZSBwbGFjZT88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+U2Vjb25kIFdpdGNoPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjEuNz4gICAgICAgICAgICAgICAgICBVcG9u
IHRoZSBoZWF0aC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+
VGhpcmQgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMS44PlRoZXJlIHRv
IG1lZXQgd2l0aCBNYWNiZXRoLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoNz48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4xLjk+
SSBjb21lLCBHcmF5bWFsa2luITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoOD48Yj5TZWNvbmQgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMS4x
MD5QYWRkb2NrIGNhbGxzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
OT48Yj5UaGlyZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4xLjExPkFu
b24uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5BTEw8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMS4xMj5GYWlyIGlzIGZvdWwsIGFuZCBmb3Vs
IGlzIGZhaXI6PC9BPjxicj4KKzxBIE5BTUU9MS4xLjEzPkhvdmVyIHRocm91Z2ggdGhlIGZvZyBh
bmQgZmlsdGh5IGFpci48L0E+PGJyPgorPHA+PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90
ZT4KKzxoMz5TQ0VORSBJSS4gQSBjYW1wIG5lYXIgRm9ycmVzLjwvaDM+Cis8cD48YmxvY2txdW90
ZT4KKzxpPkFsYXJ1bSB3aXRoaW4uIEVudGVyIERVTkNBTiwgTUFMQ09MTSwgRE9OQUxCQUlOLCBM
RU5OT1gsIHdpdGggQXR0ZW5kYW50cywgbWVldGluZyBhIGJsZWVkaW5nIFNlcmdlYW50PC9pPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjIuMT5XaGF0IGJsb29keSBtYW4gaXMgdGhhdD8gSGUgY2FuIHJl
cG9ydCw8L0E+PGJyPgorPEEgTkFNRT0xLjIuMj5BcyBzZWVtZXRoIGJ5IGhpcyBwbGlnaHQsIG9m
IHRoZSByZXZvbHQ8L0E+PGJyPgorPEEgTkFNRT0xLjIuMz5UaGUgbmV3ZXN0IHN0YXRlLjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5NQUxDT0xNPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIuND4gICAgICAgICAgICAgICAgICBUaGlzIGlzIHRo
ZSBzZXJnZWFudDwvQT48YnI+Cis8QSBOQU1FPTEuMi41PldobyBsaWtlIGEgZ29vZCBhbmQgaGFy
ZHkgc29sZGllciBmb3VnaHQ8L0E+PGJyPgorPEEgTkFNRT0xLjIuNj4nR2FpbnN0IG15IGNhcHRp
dml0eS4gSGFpbCwgYnJhdmUgZnJpZW5kITwvQT48YnI+Cis8QSBOQU1FPTEuMi43PlNheSB0byB0
aGUga2luZyB0aGUga25vd2xlZGdlIG9mIHRoZSBicm9pbDwvQT48YnI+Cis8QSBOQU1FPTEuMi44
PkFzIHRob3UgZGlkc3QgbGVhdmUgaXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gzPjxiPlNlcmdlYW50PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIu
OT5Eb3VidGZ1bCBpdCBzdG9vZDs8L0E+PGJyPgorPEEgTkFNRT0xLjIuMTA+QXMgdHdvIHNwZW50
IHN3aW1tZXJzLCB0aGF0IGRvIGNsaW5nIHRvZ2V0aGVyPC9BPjxicj4KKzxBIE5BTUU9MS4yLjEx
PkFuZCBjaG9rZSB0aGVpciBhcnQuIFRoZSBtZXJjaWxlc3MgTWFjZG9ud2FsZC0tPC9BPjxicj4K
KzxBIE5BTUU9MS4yLjEyPldvcnRoeSB0byBiZSBhIHJlYmVsLCBmb3IgdG8gdGhhdDwvQT48YnI+
Cis8QSBOQU1FPTEuMi4xMz5UaGUgbXVsdGlwbHlpbmcgdmlsbGFuaWVzIG9mIG5hdHVyZTwvQT48
YnI+Cis8QSBOQU1FPTEuMi4xND5EbyBzd2FybSB1cG9uIGhpbS0tZnJvbSB0aGUgd2VzdGVybiBp
c2xlczwvQT48YnI+Cis8QSBOQU1FPTEuMi4xNT5PZiBrZXJucyBhbmQgZ2FsbG93Z2xhc3NlcyBp
cyBzdXBwbGllZDs8L0E+PGJyPgorPEEgTkFNRT0xLjIuMTY+QW5kIGZvcnR1bmUsIG9uIGhpcyBk
YW1uZWQgcXVhcnJlbCBzbWlsaW5nLDwvQT48YnI+Cis8QSBOQU1FPTEuMi4xNz5TaG93J2QgbGlr
ZSBhIHJlYmVsJ3Mgd2hvcmU6IGJ1dCBhbGwncyB0b28gd2Vhazo8L0E+PGJyPgorPEEgTkFNRT0x
LjIuMTg+Rm9yIGJyYXZlIE1hY2JldGgtLXdlbGwgaGUgZGVzZXJ2ZXMgdGhhdCBuYW1lLS08L0E+
PGJyPgorPEEgTkFNRT0xLjIuMTk+RGlzZGFpbmluZyBmb3J0dW5lLCB3aXRoIGhpcyBicmFuZGlz
aCdkIHN0ZWVsLDwvQT48YnI+Cis8QSBOQU1FPTEuMi4yMD5XaGljaCBzbW9rZWQgd2l0aCBibG9v
ZHkgZXhlY3V0aW9uLDwvQT48YnI+Cis8QSBOQU1FPTEuMi4yMT5MaWtlIHZhbG91cidzIG1pbmlv
biBjYXJ2ZWQgb3V0IGhpcyBwYXNzYWdlPC9BPjxicj4KKzxBIE5BTUU9MS4yLjIyPlRpbGwgaGUg
ZmFjZWQgdGhlIHNsYXZlOzwvQT48YnI+Cis8QSBOQU1FPTEuMi4yMz5XaGljaCBuZSdlciBzaG9v
ayBoYW5kcywgbm9yIGJhZGUgZmFyZXdlbGwgdG8gaGltLDwvQT48YnI+Cis8QSBOQU1FPTEuMi4y
ND5UaWxsIGhlIHVuc2VhbSdkIGhpbSBmcm9tIHRoZSBuYXZlIHRvIHRoZSBjaGFwcyw8L0E+PGJy
PgorPEEgTkFNRT0xLjIuMjU+QW5kIGZpeCdkIGhpcyBoZWFkIHVwb24gb3VyIGJhdHRsZW1lbnRz
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5EVU5DQU48L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi4yNj5PIHZhbGlhbnQgY291c2luISB3b3J0
aHkgZ2VudGxlbWFuITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48
Yj5TZXJnZWFudDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjI3PkFzIHdoZW5j
ZSB0aGUgc3VuICdnaW5zIGhpcyByZWZsZWN0aW9uPC9BPjxicj4KKzxBIE5BTUU9MS4yLjI4PlNo
aXB3cmVja2luZyBzdG9ybXMgYW5kIGRpcmVmdWwgdGh1bmRlcnMgYnJlYWssPC9BPjxicj4KKzxB
IE5BTUU9MS4yLjI5PlNvIGZyb20gdGhhdCBzcHJpbmcgd2hlbmNlIGNvbWZvcnQgc2VlbSdkIHRv
IGNvbWU8L0E+PGJyPgorPEEgTkFNRT0xLjIuMzA+RGlzY29tZm9ydCBzd2VsbHMuIE1hcmssIGtp
bmcgb2YgU2NvdGxhbmQsIG1hcms6PC9BPjxicj4KKzxBIE5BTUU9MS4yLjMxPk5vIHNvb25lciBq
dXN0aWNlIGhhZCB3aXRoIHZhbG91ciBhcm0nZDwvQT48YnI+Cis8QSBOQU1FPTEuMi4zMj5Db21w
ZWxsJ2QgdGhlc2Ugc2tpcHBpbmcga2VybnMgdG8gdHJ1c3QgdGhlaXIgaGVlbHMsPC9BPjxicj4K
KzxBIE5BTUU9MS4yLjMzPkJ1dCB0aGUgTm9yd2V5YW4gbG9yZCBzdXJ2ZXlpbmcgdmFudGFnZSw8
L0E+PGJyPgorPEEgTkFNRT0xLjIuMzQ+V2l0aCBmdXJiaXNoJ2QgYXJtcyBhbmQgbmV3IHN1cHBs
aWVzIG9mIG1lbjwvQT48YnI+Cis8QSBOQU1FPTEuMi4zNT5CZWdhbiBhIGZyZXNoIGFzc2F1bHQu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2PjxiPkRVTkNBTjwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjM2PkRpc21heSdkIG5vdCB0aGlzPC9BPjxi
cj4KKzxBIE5BTUU9MS4yLjM3Pk91ciBjYXB0YWlucywgTWFjYmV0aCBhbmQgQmFucXVvPzwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNz48Yj5TZXJnZWFudDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjM4Plllczs8L0E+PGJyPgorPEEgTkFNRT0xLjIu
Mzk+QXMgc3BhcnJvd3MgZWFnbGVzLCBvciB0aGUgaGFyZSB0aGUgbGlvbi48L0E+PGJyPgorPEEg
TkFNRT0xLjIuNDA+SWYgSSBzYXkgc29vdGgsIEkgbXVzdCByZXBvcnQgdGhleSB3ZXJlPC9BPjxi
cj4KKzxBIE5BTUU9MS4yLjQxPkFzIGNhbm5vbnMgb3ZlcmNoYXJnZWQgd2l0aCBkb3VibGUgY3Jh
Y2tzLCBzbyB0aGV5PC9BPjxicj4KKzxBIE5BTUU9MS4yLjQyPkRvdWJseSByZWRvdWJsZWQgc3Ry
b2tlcyB1cG9uIHRoZSBmb2U6PC9BPjxicj4KKzxBIE5BTUU9MS4yLjQzPkV4Y2VwdCB0aGV5IG1l
YW50IHRvIGJhdGhlIGluIHJlZWtpbmcgd291bmRzLDwvQT48YnI+Cis8QSBOQU1FPTEuMi40ND5P
ciBtZW1vcmlzZSBhbm90aGVyIEdvbGdvdGhhLDwvQT48YnI+Cis8QSBOQU1FPTEuMi40NT5JIGNh
bm5vdCB0ZWxsLjwvQT48YnI+Cis8QSBOQU1FPTEuMi40Nj5CdXQgSSBhbSBmYWludCwgbXkgZ2Fz
aGVzIGNyeSBmb3IgaGVscC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDg+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIuNDc+U28gd2Vs
bCB0aHkgd29yZHMgYmVjb21lIHRoZWUgYXMgdGh5IHdvdW5kczs8L0E+PGJyPgorPEEgTkFNRT0x
LjIuNDg+VGhleSBzbWFjayBvZiBob25vdXIgYm90aC4gR28gZ2V0IGhpbSBzdXJnZW9ucy48L0E+
PGJyPgorPHA+PGk+RXhpdCBTZXJnZWFudCwgYXR0ZW5kZWQ8L2k+PC9wPgorPEEgTkFNRT0xLjIu
NDk+V2hvIGNvbWVzIGhlcmU/PC9BPjxicj4KKzxwPjxpPkVudGVyIFJPU1M8L2k+PC9wPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9MS4yLjUwPiAgICAgICAgICAgICAgICAgIFRoZSB3b3J0aHkgdGhhbmUg
b2YgUm9zcy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPkxF
Tk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjUxPldoYXQgYSBoYXN0ZSBs
b29rcyB0aHJvdWdoIGhpcyBleWVzISBTbyBzaG91bGQgaGUgbG9vazwvQT48YnI+Cis8QSBOQU1F
PTEuMi41Mj5UaGF0IHNlZW1zIHRvIHNwZWFrIHRoaW5ncyBzdHJhbmdlLjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9MS4yLjUzPkdvZCBzYXZlIHRoZSBraW5nITwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0xLjIuNTQ+V2hlbmNlIGNhbWVzdCB0aG91LCB3b3J0aHkgdGhhbmU/PC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5ST1NTPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjIuNTU+RnJvbSBGaWZlLCBncmVhdCBraW5nOzwvQT48YnI+Cis8
QSBOQU1FPTEuMi41Nj5XaGVyZSB0aGUgTm9yd2V5YW4gYmFubmVycyBmbG91dCB0aGUgc2t5PC9B
Pjxicj4KKzxBIE5BTUU9MS4yLjU3PkFuZCBmYW4gb3VyIHBlb3BsZSBjb2xkLiBOb3J3YXkgaGlt
c2VsZiw8L0E+PGJyPgorPEEgTkFNRT0xLjIuNTg+V2l0aCB0ZXJyaWJsZSBudW1iZXJzLDwvQT48
YnI+Cis8QSBOQU1FPTEuMi41OT5Bc3Npc3RlZCBieSB0aGF0IG1vc3QgZGlzbG95YWwgdHJhaXRv
cjwvQT48YnI+Cis8QSBOQU1FPTEuMi42MD5UaGUgdGhhbmUgb2YgQ2F3ZG9yLCBiZWdhbiBhIGRp
c21hbCBjb25mbGljdDs8L0E+PGJyPgorPEEgTkFNRT0xLjIuNjE+VGlsbCB0aGF0IEJlbGxvbmEn
cyBicmlkZWdyb29tLCBsYXBwJ2QgaW4gcHJvb2YsPC9BPjxicj4KKzxBIE5BTUU9MS4yLjYyPkNv
bmZyb250ZWQgaGltIHdpdGggc2VsZi1jb21wYXJpc29ucyw8L0E+PGJyPgorPEEgTkFNRT0xLjIu
NjM+UG9pbnQgYWdhaW5zdCBwb2ludCByZWJlbGxpb3VzLCBhcm0gJ2dhaW5zdCBhcm0uPC9BPjxi
cj4KKzxBIE5BTUU9MS4yLjY0PkN1cmJpbmcgaGlzIGxhdmlzaCBzcGlyaXQ6IGFuZCwgdG8gY29u
Y2x1ZGUsPC9BPjxicj4KKzxBIE5BTUU9MS4yLjY1PlRoZSB2aWN0b3J5IGZlbGwgb24gdXMuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxND48Yj5EVU5DQU48L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi42Nj5HcmVhdCBoYXBwaW5lc3MhPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNT48Yj5ST1NTPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjIuNjc+VGhhdCBub3c8L0E+PGJyPgorPEEgTkFNRT0xLjIuNjg+
U3dlbm8sIHRoZSBOb3J3YXlzJyBraW5nLCBjcmF2ZXMgY29tcG9zaXRpb246PC9BPjxicj4KKzxB
IE5BTUU9MS4yLjY5Pk5vciB3b3VsZCB3ZSBkZWlnbiBoaW0gYnVyaWFsIG9mIGhpcyBtZW48L0E+
PGJyPgorPEEgTkFNRT0xLjIuNzA+VGlsbCBoZSBkaXNidXJzZWQgYXQgU2FpbnQgQ29sbWUncyBp
bmNoPC9BPjxicj4KKzxBIE5BTUU9MS4yLjcxPlRlbiB0aG91c2FuZCBkb2xsYXJzIHRvIG91ciBn
ZW5lcmFsIHVzZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2Pjxi
PkRVTkNBTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjcyPk5vIG1vcmUgdGhh
dCB0aGFuZSBvZiBDYXdkb3Igc2hhbGwgZGVjZWl2ZTwvQT48YnI+Cis8QSBOQU1FPTEuMi43Mz5P
dXIgYm9zb20gaW50ZXJlc3Q6IGdvIHByb25vdW5jZSBoaXMgcHJlc2VudCBkZWF0aCw8L0E+PGJy
PgorPEEgTkFNRT0xLjIuNzQ+QW5kIHdpdGggaGlzIGZvcm1lciB0aXRsZSBncmVldCBNYWNiZXRo
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+Uk9TUzwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjc1PkknbGwgc2VlIGl0IGRvbmUuPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOD48Yj5EVU5DQU48L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi43Nj5XaGF0IGhlIGhhdGggbG9zdCBub2JsZSBNYWNi
ZXRoIGhhdGggd29uLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3Rl
PgorPGgzPlNDRU5FIElJSS4gQSBoZWF0aCBuZWFyIEZvcnJlcy48L2gzPgorPHA+PGJsb2NrcXVv
dGU+Cis8aT5UaHVuZGVyLiBFbnRlciB0aGUgdGhyZWUgV2l0Y2hlczwvaT4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gxPjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0xLjMuMT5XaGVyZSBoYXN0IHRob3UgYmVlbiwgc2lzdGVyPzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5TZWNvbmQgV2l0Y2g8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4yPktpbGxpbmcgc3dpbmUuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPlRoaXJkIFdpdGNoPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjMuMz5TaXN0ZXIsIHdoZXJlIHRob3U/PC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjMuND5BIHNhaWxvcidzIHdpZmUgaGFkIGNoZXN0bnV0cyBpbiBo
ZXIgbGFwLDwvQT48YnI+Cis8QSBOQU1FPTEuMy41PkFuZCBtdW5jaCdkLCBhbmQgbXVuY2gnZCwg
YW5kIG11bmNoJ2Q6LS08L0E+PGJyPgorPEEgTkFNRT0xLjMuNj4nR2l2ZSBtZSwnIHF1b3RoIEk6
PC9BPjxicj4KKzxBIE5BTUU9MS4zLjc+J0Fyb2ludCB0aGVlLCB3aXRjaCEnIHRoZSBydW1wLWZl
ZCByb255b24gY3JpZXMuPC9BPjxicj4KKzxBIE5BTUU9MS4zLjg+SGVyIGh1c2JhbmQncyB0byBB
bGVwcG8gZ29uZSwgbWFzdGVyIG8nIHRoZSBUaWdlcjo8L0E+PGJyPgorPEEgTkFNRT0xLjMuOT5C
dXQgaW4gYSBzaWV2ZSBJJ2xsIHRoaXRoZXIgc2FpbCw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTA+
QW5kLCBsaWtlIGEgcmF0IHdpdGhvdXQgYSB0YWlsLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMT5J
J2xsIGRvLCBJJ2xsIGRvLCBhbmQgSSdsbCBkby48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDU+PGI+U2Vjb25kIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0xLjMuMTI+SSdsbCBnaXZlIHRoZWUgYSB3aW5kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9MS4zLjEzPlRob3UncnQga2luZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDc+PGI+VGhpcmQgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTEuMy4xND5BbmQgSSBhbm90aGVyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoOD48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
MS4zLjE1PkkgbXlzZWxmIGhhdmUgYWxsIHRoZSBvdGhlciw8L0E+PGJyPgorPEEgTkFNRT0xLjMu
MTY+QW5kIHRoZSB2ZXJ5IHBvcnRzIHRoZXkgYmxvdyw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTc+
QWxsIHRoZSBxdWFydGVycyB0aGF0IHRoZXkga25vdzwvQT48YnI+Cis8QSBOQU1FPTEuMy4xOD5J
JyB0aGUgc2hpcG1hbidzIGNhcmQuPC9BPjxicj4KKzxBIE5BTUU9MS4zLjE5Pkkgd2lsbCBkcmFp
biBoaW0gZHJ5IGFzIGhheTo8L0E+PGJyPgorPEEgTkFNRT0xLjMuMjA+U2xlZXAgc2hhbGwgbmVp
dGhlciBuaWdodCBub3IgZGF5PC9BPjxicj4KKzxBIE5BTUU9MS4zLjIxPkhhbmcgdXBvbiBoaXMg
cGVudC1ob3VzZSBsaWQ7PC9BPjxicj4KKzxBIE5BTUU9MS4zLjIyPkhlIHNoYWxsIGxpdmUgYSBt
YW4gZm9yYmlkOjwvQT48YnI+Cis8QSBOQU1FPTEuMy4yMz5XZWFyeSBzZSdubmlnaHRzIG5pbmUg
dGltZXMgbmluZTwvQT48YnI+Cis8QSBOQU1FPTEuMy4yND5TaGFsbCBoZSBkd2luZGxlLCBwZWFr
IGFuZCBwaW5lOjwvQT48YnI+Cis8QSBOQU1FPTEuMy4yNT5UaG91Z2ggaGlzIGJhcmsgY2Fubm90
IGJlIGxvc3QsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjI2PllldCBpdCBzaGFsbCBiZSB0ZW1wZXN0
LXRvc3QuPC9BPjxicj4KKzxBIE5BTUU9MS4zLjI3Pkxvb2sgd2hhdCBJIGhhdmUuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPlNlY29uZCBXaXRjaDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjI4PlNob3cgbWUsIHNob3cgbWUuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5GaXJzdCBXaXRjaDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjI5PkhlcmUgSSBoYXZlIGEgcGlsb3QncyB0aHVt
Yiw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMzA+V3JlY2snZCBhcyBob21ld2FyZCBoZSBkaWQgY29t
ZS48L0E+PGJyPgorPHA+PGk+RHJ1bSB3aXRoaW48L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDExPjxiPlRoaXJkIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0xLjMuMzE+QSBkcnVtLCBhIGRydW0hPC9BPjxicj4KKzxBIE5BTUU9MS4zLjMyPk1hY2Jl
dGggZG90aCBjb21lLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+
PGI+QUxMPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMzM+VGhlIHdlaXJkIHNp
c3RlcnMsIGhhbmQgaW4gaGFuZCw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMzQ+UG9zdGVycyBvZiB0
aGUgc2VhIGFuZCBsYW5kLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4zNT5UaHVzIGRvIGdvIGFib3V0
LCBhYm91dDo8L0E+PGJyPgorPEEgTkFNRT0xLjMuMzY+VGhyaWNlIHRvIHRoaW5lIGFuZCB0aHJp
Y2UgdG8gbWluZTwvQT48YnI+Cis8QSBOQU1FPTEuMy4zNz5BbmQgdGhyaWNlIGFnYWluLCB0byBt
YWtlIHVwIG5pbmUuPC9BPjxicj4KKzxBIE5BTUU9MS4zLjM4PlBlYWNlISB0aGUgY2hhcm0ncyB3
b3VuZCB1cC48L0E+PGJyPgorPHA+PGk+RW50ZXIgTUFDQkVUSCBhbmQgQkFOUVVPPC9pPjwvcD4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMzk+U28gZm91bCBhbmQgZmFpciBhIGRheSBJIGhhdmUg
bm90IHNlZW4uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxND48Yj5C
QU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy40MD5Ib3cgZmFyIGlzJ3Qg
Y2FsbCdkIHRvIEZvcnJlcz8gV2hhdCBhcmUgdGhlc2U8L0E+PGJyPgorPEEgTkFNRT0xLjMuNDE+
U28gd2l0aGVyJ2QgYW5kIHNvIHdpbGQgaW4gdGhlaXIgYXR0aXJlLDwvQT48YnI+Cis8QSBOQU1F
PTEuMy40Mj5UaGF0IGxvb2sgbm90IGxpa2UgdGhlIGluaGFiaXRhbnRzIG8nIHRoZSBlYXJ0aCw8
L0E+PGJyPgorPEEgTkFNRT0xLjMuNDM+QW5kIHlldCBhcmUgb24ndD8gTGl2ZSB5b3U/IG9yIGFy
ZSB5b3UgYXVnaHQ8L0E+PGJyPgorPEEgTkFNRT0xLjMuNDQ+VGhhdCBtYW4gbWF5IHF1ZXN0aW9u
PyBZb3Ugc2VlbSB0byB1bmRlcnN0YW5kIG1lLDwvQT48YnI+Cis8QSBOQU1FPTEuMy40NT5CeSBl
YWNoIGF0IG9uY2UgaGVyIGNoYXBweSBmaW5nZXIgbGF5aW5nPC9BPjxicj4KKzxBIE5BTUU9MS4z
LjQ2PlVwb24gaGVyIHNraW5ueSBsaXBzOiB5b3Ugc2hvdWxkIGJlIHdvbWVuLDwvQT48YnI+Cis8
QSBOQU1FPTEuMy40Nz5BbmQgeWV0IHlvdXIgYmVhcmRzIGZvcmJpZCBtZSB0byBpbnRlcnByZXQ8
L0E+PGJyPgorPEEgTkFNRT0xLjMuNDg+VGhhdCB5b3UgYXJlIHNvLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTU+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9MS4zLjQ5PiAgICAgICAgICAgICAgICAgIFNwZWFrLCBpZiB5b3UgY2FuOiB3
aGF0IGFyZSB5b3U/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNj48
Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjUwPkFsbCBo
YWlsLCBNYWNiZXRoISBoYWlsIHRvIHRoZWUsIHRoYW5lIG9mIEdsYW1pcyE8L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE3PjxiPlNlY29uZCBXaXRjaDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjUxPkFsbCBoYWlsLCBNYWNiZXRoLCBoYWlsIHRvIHRo
ZWUsIHRoYW5lIG9mIENhd2RvciE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDE4PjxiPlRoaXJkIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMu
NTI+QWxsIGhhaWwsIE1hY2JldGgsIHRob3Ugc2hhbHQgYmUga2luZyBoZXJlYWZ0ZXIhPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOT48Yj5CQU5RVU88L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy41Mz5Hb29kIHNpciwgd2h5IGRvIHlvdSBzdGFydDsg
YW5kIHNlZW0gdG8gZmVhcjwvQT48YnI+Cis8QSBOQU1FPTEuMy41ND5UaGluZ3MgdGhhdCBkbyBz
b3VuZCBzbyBmYWlyPyBJJyB0aGUgbmFtZSBvZiB0cnV0aCw8L0E+PGJyPgorPEEgTkFNRT0xLjMu
NTU+QXJlIHllIGZhbnRhc3RpY2FsLCBvciB0aGF0IGluZGVlZDwvQT48YnI+Cis8QSBOQU1FPTEu
My41Nj5XaGljaCBvdXR3YXJkbHkgeWUgc2hvdz8gTXkgbm9ibGUgcGFydG5lcjwvQT48YnI+Cis8
QSBOQU1FPTEuMy41Nz5Zb3UgZ3JlZXQgd2l0aCBwcmVzZW50IGdyYWNlIGFuZCBncmVhdCBwcmVk
aWN0aW9uPC9BPjxicj4KKzxBIE5BTUU9MS4zLjU4Pk9mIG5vYmxlIGhhdmluZyBhbmQgb2Ygcm95
YWwgaG9wZSw8L0E+PGJyPgorPEEgTkFNRT0xLjMuNTk+VGhhdCBoZSBzZWVtcyByYXB0IHdpdGhh
bDogdG8gbWUgeW91IHNwZWFrIG5vdC48L0E+PGJyPgorPEEgTkFNRT0xLjMuNjA+SWYgeW91IGNh
biBsb29rIGludG8gdGhlIHNlZWRzIG9mIHRpbWUsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjYxPkFu
ZCBzYXkgd2hpY2ggZ3JhaW4gd2lsbCBncm93IGFuZCB3aGljaCB3aWxsIG5vdCw8L0E+PGJyPgor
PEEgTkFNRT0xLjMuNjI+U3BlYWsgdGhlbiB0byBtZSwgd2hvIG5laXRoZXIgYmVnIG5vciBmZWFy
PC9BPjxicj4KKzxBIE5BTUU9MS4zLjYzPllvdXIgZmF2b3VycyBub3IgeW91ciBoYXRlLjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+Rmlyc3QgV2l0Y2g8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy42ND5IYWlsITwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjE+PGI+U2Vjb25kIFdpdGNoPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjMuNjU+SGFpbCE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDIyPjxiPlRoaXJkIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0xLjMuNjY+SGFpbCE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDIzPjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuNjc+
TGVzc2VyIHRoYW4gTWFjYmV0aCwgYW5kIGdyZWF0ZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gyND48Yj5TZWNvbmQgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTEuMy42OD5Ob3Qgc28gaGFwcHksIHlldCBtdWNoIGhhcHBpZXIuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNT48Yj5UaGlyZCBXaXRjaDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjY5PlRob3Ugc2hhbHQgZ2V0IGtpbmdzLCB0aG91
Z2ggdGhvdSBiZSBub25lOjwvQT48YnI+Cis8QSBOQU1FPTEuMy43MD5TbyBhbGwgaGFpbCwgTWFj
YmV0aCBhbmQgQmFucXVvITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MjY+PGI+Rmlyc3QgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy43MT5C
YW5xdW8gYW5kIE1hY2JldGgsIGFsbCBoYWlsITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMjc+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
MS4zLjcyPlN0YXksIHlvdSBpbXBlcmZlY3Qgc3BlYWtlcnMsIHRlbGwgbWUgbW9yZTo8L0E+PGJy
PgorPEEgTkFNRT0xLjMuNzM+QnkgU2luZWwncyBkZWF0aCBJIGtub3cgSSBhbSB0aGFuZSBvZiBH
bGFtaXM7PC9BPjxicj4KKzxBIE5BTUU9MS4zLjc0PkJ1dCBob3cgb2YgQ2F3ZG9yPyB0aGUgdGhh
bmUgb2YgQ2F3ZG9yIGxpdmVzLDwvQT48YnI+Cis8QSBOQU1FPTEuMy43NT5BIHByb3NwZXJvdXMg
Z2VudGxlbWFuOyBhbmQgdG8gYmUga2luZzwvQT48YnI+Cis8QSBOQU1FPTEuMy43Nj5TdGFuZHMg
bm90IHdpdGhpbiB0aGUgcHJvc3BlY3Qgb2YgYmVsaWVmLDwvQT48YnI+Cis8QSBOQU1FPTEuMy43
Nz5ObyBtb3JlIHRoYW4gdG8gYmUgQ2F3ZG9yLiBTYXkgZnJvbSB3aGVuY2U8L0E+PGJyPgorPEEg
TkFNRT0xLjMuNzg+WW91IG93ZSB0aGlzIHN0cmFuZ2UgaW50ZWxsaWdlbmNlPyBvciB3aHk8L0E+
PGJyPgorPEEgTkFNRT0xLjMuNzk+VXBvbiB0aGlzIGJsYXN0ZWQgaGVhdGggeW91IHN0b3Agb3Vy
IHdheTwvQT48YnI+Cis8QSBOQU1FPTEuMy44MD5XaXRoIHN1Y2ggcHJvcGhldGljIGdyZWV0aW5n
PyBTcGVhaywgSSBjaGFyZ2UgeW91LjwvQT48YnI+Cis8cD48aT5XaXRjaGVzIHZhbmlzaDwvaT48
L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjg+PGI+QkFOUVVPPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuODE+VGhlIGVhcnRoIGhhdGggYnViYmxlcywgYXMg
dGhlIHdhdGVyIGhhcyw8L0E+PGJyPgorPEEgTkFNRT0xLjMuODI+QW5kIHRoZXNlIGFyZSBvZiB0
aGVtLiBXaGl0aGVyIGFyZSB0aGV5IHZhbmlzaCdkPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMjk+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9MS4zLjgzPkludG8gdGhlIGFpcjsgYW5kIHdoYXQgc2VlbSdkIGNvcnBvcmFsIG1lbHRlZDwv
QT48YnI+Cis8QSBOQU1FPTEuMy44ND5BcyBicmVhdGggaW50byB0aGUgd2luZC4gV291bGQgdGhl
eSBoYWQgc3RheSdkITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzA+
PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuODU+V2VyZSBzdWNo
IHRoaW5ncyBoZXJlIGFzIHdlIGRvIHNwZWFrIGFib3V0PzwvQT48YnI+Cis8QSBOQU1FPTEuMy44
Nj5PciBoYXZlIHdlIGVhdGVuIG9uIHRoZSBpbnNhbmUgcm9vdDwvQT48YnI+Cis8QSBOQU1FPTEu
My44Nz5UaGF0IHRha2VzIHRoZSByZWFzb24gcHJpc29uZXI/PC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gzMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0xLjMuODg+WW91ciBjaGlsZHJlbiBzaGFsbCBiZSBraW5ncy48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMyPjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9MS4zLjg5PllvdSBzaGFsbCBiZSBraW5nLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzM+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9MS4zLjkwPkFuZCB0aGFuZSBvZiBDYXdkb3IgdG9vOiB3ZW50IGl0IG5vdCBz
bz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM0PjxiPkJBTlFVTzwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjkxPlRvIHRoZSBzZWxmc2FtZSB0dW5l
IGFuZCB3b3Jkcy4gV2hvJ3MgaGVyZT88L0E+PGJyPgorPHA+PGk+RW50ZXIgUk9TUyBhbmQgQU5H
VVM8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM1PjxiPlJPU1M8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy45Mj5UaGUga2luZyBoYXRoIGhhcHBpbHkg
cmVjZWl2ZWQsIE1hY2JldGgsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjkzPlRoZSBuZXdzIG9mIHRo
eSBzdWNjZXNzOyBhbmQgd2hlbiBoZSByZWFkczwvQT48YnI+Cis8QSBOQU1FPTEuMy45ND5UaHkg
cGVyc29uYWwgdmVudHVyZSBpbiB0aGUgcmViZWxzJyBmaWdodCw8L0E+PGJyPgorPEEgTkFNRT0x
LjMuOTU+SGlzIHdvbmRlcnMgYW5kIGhpcyBwcmFpc2VzIGRvIGNvbnRlbmQ8L0E+PGJyPgorPEEg
TkFNRT0xLjMuOTY+V2hpY2ggc2hvdWxkIGJlIHRoaW5lIG9yIGhpczogc2lsZW5jZWQgd2l0aCB0
aGF0LDwvQT48YnI+Cis8QSBOQU1FPTEuMy45Nz5JbiB2aWV3aW5nIG8nZXIgdGhlIHJlc3Qgbycg
dGhlIHNlbGZzYW1lIGRheSw8L0E+PGJyPgorPEEgTkFNRT0xLjMuOTg+SGUgZmluZHMgdGhlZSBp
biB0aGUgc3RvdXQgTm9yd2V5YW4gcmFua3MsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjk5Pk5vdGhp
bmcgYWZlYXJkIG9mIHdoYXQgdGh5c2VsZiBkaWRzdCBtYWtlLDwvQT48YnI+Cis8QSBOQU1FPTEu
My4xMDA+U3RyYW5nZSBpbWFnZXMgb2YgZGVhdGguIEFzIHRoaWNrIGFzIGhhaWw8L0E+PGJyPgor
PEEgTkFNRT0xLjMuMTAxPkNhbWUgcG9zdCB3aXRoIHBvc3Q7IGFuZCBldmVyeSBvbmUgZGlkIGJl
YXI8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTAyPlRoeSBwcmFpc2VzIGluIGhpcyBraW5nZG9tJ3Mg
Z3JlYXQgZGVmZW5jZSw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTAzPkFuZCBwb3VyJ2QgdGhlbSBk
b3duIGJlZm9yZSBoaW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gz
Nj48Yj5BTkdVUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjEwND5XZSBhcmUg
c2VudDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMDU+VG8gZ2l2ZSB0aGVlIGZyb20gb3VyIHJveWFs
IG1hc3RlciB0aGFua3M7PC9BPjxicj4KKzxBIE5BTUU9MS4zLjEwNj5Pbmx5IHRvIGhlcmFsZCB0
aGVlIGludG8gaGlzIHNpZ2h0LDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMDc+Tm90IHBheSB0aGVl
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzc+PGI+Uk9TUzwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjEwOD5BbmQsIGZvciBhbiBlYXJuZXN0IG9m
IGEgZ3JlYXRlciBob25vdXIsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjEwOT5IZSBiYWRlIG1lLCBm
cm9tIGhpbSwgY2FsbCB0aGVlIHRoYW5lIG9mIENhd2Rvcjo8L0E+PGJyPgorPEEgTkFNRT0xLjMu
MTEwPkluIHdoaWNoIGFkZGl0aW9uLCBoYWlsLCBtb3N0IHdvcnRoeSB0aGFuZSE8L0E+PGJyPgor
PEEgTkFNRT0xLjMuMTExPkZvciBpdCBpcyB0aGluZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDM4PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9MS4zLjExMj4gICAgICAgICAgICAgICAgICBXaGF0LCBjYW4gdGhlIGRldmlsIHNwZWFrIHRy
dWU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzOT48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTEzPlRoZSB0aGFuZSBvZiBDYXdk
b3IgbGl2ZXM6IHdoeSBkbyB5b3UgZHJlc3MgbWU8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTE0Pklu
IGJvcnJvdydkIHJvYmVzPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
NDA+PGI+QU5HVVM8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xMTU+ICAgICAg
ICAgICAgICAgICAgV2hvIHdhcyB0aGUgdGhhbmUgbGl2ZXMgeWV0OzwvQT48YnI+Cis8QSBOQU1F
PTEuMy4xMTY+QnV0IHVuZGVyIGhlYXZ5IGp1ZGdtZW50IGJlYXJzIHRoYXQgbGlmZTwvQT48YnI+
Cis8QSBOQU1FPTEuMy4xMTc+V2hpY2ggaGUgZGVzZXJ2ZXMgdG8gbG9zZS4gV2hldGhlciBoZSB3
YXMgY29tYmluZWQ8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTE4PldpdGggdGhvc2Ugb2YgTm9yd2F5
LCBvciBkaWQgbGluZSB0aGUgcmViZWw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTE5PldpdGggaGlk
ZGVuIGhlbHAgYW5kIHZhbnRhZ2UsIG9yIHRoYXQgd2l0aCBib3RoPC9BPjxicj4KKzxBIE5BTUU9
MS4zLjEyMD5IZSBsYWJvdXInZCBpbiBoaXMgY291bnRyeSdzIHdyZWNrLCBJIGtub3cgbm90Ozwv
QT48YnI+Cis8QSBOQU1FPTEuMy4xMjE+QnV0IHRyZWFzb25zIGNhcGl0YWwsIGNvbmZlc3MnZCBh
bmQgcHJvdmVkLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMjI+SGF2ZSBvdmVydGhyb3duIGhpbS48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQxPjxiPk1BQ0JFVEg8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xMjM+W0FzaWRlXSAgR2xhbWlzLCBhbmQg
dGhhbmUgb2YgQ2F3ZG9yITwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMjQ+VGhlIGdyZWF0ZXN0IGlz
IGJlaGluZC48L0E+PGJyPgorPHA+PGk+VG8gUk9TUyBhbmQgQU5HVVM8L2k+PC9wPgorPEEgTkFN
RT0xLjMuMTI1PlRoYW5rcyBmb3IgeW91ciBwYWlucy48L0E+PGJyPgorPHA+PGk+VG8gQkFOUVVP
PC9pPjwvcD4KKzxBIE5BTUU9MS4zLjEyNj5EbyB5b3Ugbm90IGhvcGUgeW91ciBjaGlsZHJlbiBz
aGFsbCBiZSBraW5ncyw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTI3PldoZW4gdGhvc2UgdGhhdCBn
YXZlIHRoZSB0aGFuZSBvZiBDYXdkb3IgdG8gbWU8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTI4PlBy
b21pc2VkIG5vIGxlc3MgdG8gdGhlbT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDQyPjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjEy
OT5UaGF0IHRydXN0ZWQgaG9tZTwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMzA+TWlnaHQgeWV0IGVu
a2luZGxlIHlvdSB1bnRvIHRoZSBjcm93biw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTMxPkJlc2lk
ZXMgdGhlIHRoYW5lIG9mIENhd2Rvci4gQnV0ICd0aXMgc3RyYW5nZTo8L0E+PGJyPgorPEEgTkFN
RT0xLjMuMTMyPkFuZCBvZnRlbnRpbWVzLCB0byB3aW4gdXMgdG8gb3VyIGhhcm0sPC9BPjxicj4K
KzxBIE5BTUU9MS4zLjEzMz5UaGUgaW5zdHJ1bWVudHMgb2YgZGFya25lc3MgdGVsbCB1cyB0cnV0
aHMsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjEzND5XaW4gdXMgd2l0aCBob25lc3QgdHJpZmxlcywg
dG8gYmV0cmF5J3M8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTM1PkluIGRlZXBlc3QgY29uc2VxdWVu
Y2UuPC9BPjxicj4KKzxBIE5BTUU9MS4zLjEzNj5Db3VzaW5zLCBhIHdvcmQsIEkgcHJheSB5b3Uu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Mz48Yj5NQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTM3PltBc2lkZV0JVHdvIHRydXRocyBh
cmUgdG9sZCw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTM4PkFzIGhhcHB5IHByb2xvZ3VlcyB0byB0
aGUgc3dlbGxpbmcgYWN0PC9BPjxicj4KKzxBIE5BTUU9MS4zLjEzOT5PZiB0aGUgaW1wZXJpYWwg
dGhlbWUuLS1JIHRoYW5rIHlvdSwgZ2VudGxlbWVuLjwvQT48YnI+Cis8cD48aT5Bc2lkZTwvaT48
L3A+Cis8QSBOQU1FPTEuMy4xNDA+Q2Fubm90IGJlIGlsbCwgY2Fubm90IGJlIGdvb2Q6IGlmIGls
bCw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTQxPldoeSBoYXRoIGl0IGdpdmVuIG1lIGVhcm5lc3Qg
b2Ygc3VjY2Vzcyw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTQyPkNvbW1lbmNpbmcgaW4gYSB0cnV0
aD8gSSBhbSB0aGFuZSBvZiBDYXdkb3I6PC9BPjxicj4KKzxBIE5BTUU9MS4zLjE0Mz5JZiBnb29k
LCB3aHkgZG8gSSB5aWVsZCB0byB0aGF0IHN1Z2dlc3Rpb248L0E+PGJyPgorPEEgTkFNRT0xLjMu
MTQ0Pldob3NlIGhvcnJpZCBpbWFnZSBkb3RoIHVuZml4IG15IGhhaXI8L0E+PGJyPgorPEEgTkFN
RT0xLjMuMTQ1PkFuZCBtYWtlIG15IHNlYXRlZCBoZWFydCBrbm9jayBhdCBteSByaWJzLDwvQT48
YnI+Cis8QSBOQU1FPTEuMy4xNDY+QWdhaW5zdCB0aGUgdXNlIG9mIG5hdHVyZT8gUHJlc2VudCBm
ZWFyczwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNDc+QXJlIGxlc3MgdGhhbiBob3JyaWJsZSBpbWFn
aW5pbmdzOjwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNDg+TXkgdGhvdWdodCwgd2hvc2UgbXVyZGVy
IHlldCBpcyBidXQgZmFudGFzdGljYWwsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjE0OT5TaGFrZXMg
c28gbXkgc2luZ2xlIHN0YXRlIG9mIG1hbiB0aGF0IGZ1bmN0aW9uPC9BPjxicj4KKzxBIE5BTUU9
MS4zLjE1MD5JcyBzbW90aGVyJ2QgaW4gc3VybWlzZSwgYW5kIG5vdGhpbmcgaXM8L0E+PGJyPgor
PEEgTkFNRT0xLjMuMTUxPkJ1dCB3aGF0IGlzIG5vdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDQ0PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9MS4zLjE1Mj4gICAgICAgICAgICAgICAgICBMb29rLCBob3cgb3VyIHBhcnRuZXIncyByYXB0
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDU+PGI+TUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjE1Mz5bQXNpZGVdICBJZiBjaGFuY2Ug
d2lsbCBoYXZlIG1lIGtpbmcsIHdoeSwgY2hhbmNlIG1heSBjcm93biBtZSw8L0E+PGJyPgorPEEg
TkFNRT0xLjMuMTU0PldpdGhvdXQgbXkgc3Rpci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDQ2PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
MS4zLjE1NT4gICAgICAgICAgICAgICAgICBOZXcgaG9ycm9ycyBjb21lIHVwb24gaGltLDwvQT48
YnI+Cis8QSBOQU1FPTEuMy4xNTY+TGlrZSBvdXIgc3RyYW5nZSBnYXJtZW50cywgY2xlYXZlIG5v
dCB0byB0aGVpciBtb3VsZDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNTc+QnV0IHdpdGggdGhlIGFp
ZCBvZiB1c2UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Nz48Yj5N
QUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTU4PltBc2lkZV0gICAg
ICAgICAgICAgICAgQ29tZSB3aGF0IGNvbWUgbWF5LDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNTk+
VGltZSBhbmQgdGhlIGhvdXIgcnVucyB0aHJvdWdoIHRoZSByb3VnaGVzdCBkYXkuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0OD48Yj5CQU5RVU88L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xNjA+V29ydGh5IE1hY2JldGgsIHdlIHN0YXkgdXBvbiB5
b3VyIGxlaXN1cmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0OT48
Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTYxPkdpdmUgbWUg
eW91ciBmYXZvdXI6IG15IGR1bGwgYnJhaW4gd2FzIHdyb3VnaHQ8L0E+PGJyPgorPEEgTkFNRT0x
LjMuMTYyPldpdGggdGhpbmdzIGZvcmdvdHRlbi4gS2luZCBnZW50bGVtZW4sIHlvdXIgcGFpbnM8
L0E+PGJyPgorPEEgTkFNRT0xLjMuMTYzPkFyZSByZWdpc3RlcidkIHdoZXJlIGV2ZXJ5IGRheSBJ
IHR1cm48L0E+PGJyPgorPEEgTkFNRT0xLjMuMTY0PlRoZSBsZWFmIHRvIHJlYWQgdGhlbS4gTGV0
IHVzIHRvd2FyZCB0aGUga2luZy48L0E+PGJyPgorPEEgTkFNRT0xLjMuMTY1PlRoaW5rIHVwb24g
d2hhdCBoYXRoIGNoYW5jZWQsIGFuZCwgYXQgbW9yZSB0aW1lLDwvQT48YnI+Cis8QSBOQU1FPTEu
My4xNjY+VGhlIGludGVyaW0gaGF2aW5nIHdlaWdoJ2QgaXQsIGxldCB1cyBzcGVhazwvQT48YnI+
Cis8QSBOQU1FPTEuMy4xNjc+T3VyIGZyZWUgaGVhcnRzIGVhY2ggdG8gb3RoZXIuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1MD48Yj5CQU5RVU88L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xNjg+VmVyeSBnbGFkbHkuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g1MT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0xLjMuMTY5PlRpbGwgdGhlbiwgZW5vdWdoLiBDb21lLCBmcmllbmRzLjwvQT48
YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIElWLiBG
b3JyZXMuIFRoZSBwYWxhY2UuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RmxvdXJpc2guIEVu
dGVyIERVTkNBTiwgTUFMQ09MTSwgRE9OQUxCQUlOLCBMRU5OT1gsIGFuZCBBdHRlbmRhbnRzPC9p
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+RFVOQ0FOPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0xLjQuMT5JcyBleGVjdXRpb24gZG9uZSBvbiBDYXdkb3I/IEFy
ZSBub3Q8L0E+PGJyPgorPEEgTkFNRT0xLjQuMj5UaG9zZSBpbiBjb21taXNzaW9uIHlldCByZXR1
cm4nZD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+TUFMQ09M
TTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS40LjM+TXkgbGllZ2UsPC9BPjxicj4K
KzxBIE5BTUU9MS40LjQ+VGhleSBhcmUgbm90IHlldCBjb21lIGJhY2suIEJ1dCBJIGhhdmUgc3Bv
a2U8L0E+PGJyPgorPEEgTkFNRT0xLjQuNT5XaXRoIG9uZSB0aGF0IHNhdyBoaW0gZGllOiB3aG8g
ZGlkIHJlcG9ydDwvQT48YnI+Cis8QSBOQU1FPTEuNC42PlRoYXQgdmVyeSBmcmFua2x5IGhlIGNv
bmZlc3MnZCBoaXMgdHJlYXNvbnMsPC9BPjxicj4KKzxBIE5BTUU9MS40Ljc+SW1wbG9yZWQgeW91
ciBoaWdobmVzcycgcGFyZG9uIGFuZCBzZXQgZm9ydGg8L0E+PGJyPgorPEEgTkFNRT0xLjQuOD5B
IGRlZXAgcmVwZW50YW5jZTogbm90aGluZyBpbiBoaXMgbGlmZTwvQT48YnI+Cis8QSBOQU1FPTEu
NC45PkJlY2FtZSBoaW0gbGlrZSB0aGUgbGVhdmluZyBpdDsgaGUgZGllZDwvQT48YnI+Cis8QSBO
QU1FPTEuNC4xMD5BcyBvbmUgdGhhdCBoYWQgYmVlbiBzdHVkaWVkIGluIGhpcyBkZWF0aDwvQT48
YnI+Cis8QSBOQU1FPTEuNC4xMT5UbyB0aHJvdyBhd2F5IHRoZSBkZWFyZXN0IHRoaW5nIGhlIG93
ZWQsPC9BPjxicj4KKzxBIE5BTUU9MS40LjEyPkFzICd0d2VyZSBhIGNhcmVsZXNzIHRyaWZsZS48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+RFVOQ0FOPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjQuMTM+VGhlcmUncyBubyBhcnQ8L0E+PGJyPgor
PEEgTkFNRT0xLjQuMTQ+VG8gZmluZCB0aGUgbWluZCdzIGNvbnN0cnVjdGlvbiBpbiB0aGUgZmFj
ZTo8L0E+PGJyPgorPEEgTkFNRT0xLjQuMTU+SGUgd2FzIGEgZ2VudGxlbWFuIG9uIHdob20gSSBi
dWlsdDwvQT48YnI+Cis8QSBOQU1FPTEuNC4xNj5BbiBhYnNvbHV0ZSB0cnVzdC48L0E+PGJyPgor
PHA+PGk+RW50ZXIgTUFDQkVUSCwgQkFOUVVPLCBST1NTLCBhbmQgQU5HVVM8L2k+PC9wPgorPEEg
TkFNRT0xLjQuMTc+TyB3b3J0aGllc3QgY291c2luITwvQT48YnI+Cis8QSBOQU1FPTEuNC4xOD5U
aGUgc2luIG9mIG15IGluZ3JhdGl0dWRlIGV2ZW4gbm93PC9BPjxicj4KKzxBIE5BTUU9MS40LjE5
PldhcyBoZWF2eSBvbiBtZTogdGhvdSBhcnQgc28gZmFyIGJlZm9yZTwvQT48YnI+Cis8QSBOQU1F
PTEuNC4yMD5UaGF0IHN3aWZ0ZXN0IHdpbmcgb2YgcmVjb21wZW5zZSBpcyBzbG93PC9BPjxicj4K
KzxBIE5BTUU9MS40LjIxPlRvIG92ZXJ0YWtlIHRoZWUuIFdvdWxkIHRob3UgaGFkc3QgbGVzcyBk
ZXNlcnZlZCw8L0E+PGJyPgorPEEgTkFNRT0xLjQuMjI+VGhhdCB0aGUgcHJvcG9ydGlvbiBib3Ro
IG9mIHRoYW5rcyBhbmQgcGF5bWVudDwvQT48YnI+Cis8QSBOQU1FPTEuNC4yMz5NaWdodCBoYXZl
IGJlZW4gbWluZSEgb25seSBJIGhhdmUgbGVmdCB0byBzYXksPC9BPjxicj4KKzxBIE5BTUU9MS40
LjI0Pk1vcmUgaXMgdGh5IGR1ZSB0aGFuIG1vcmUgdGhhbiBhbGwgY2FuIHBheS48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+TUFDQkVUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9MS40LjI1PlRoZSBzZXJ2aWNlIGFuZCB0aGUgbG95YWx0eSBJIG93
ZSw8L0E+PGJyPgorPEEgTkFNRT0xLjQuMjY+SW4gZG9pbmcgaXQsIHBheXMgaXRzZWxmLiBZb3Vy
IGhpZ2huZXNzJyBwYXJ0PC9BPjxicj4KKzxBIE5BTUU9MS40LjI3PklzIHRvIHJlY2VpdmUgb3Vy
IGR1dGllczsgYW5kIG91ciBkdXRpZXM8L0E+PGJyPgorPEEgTkFNRT0xLjQuMjg+QXJlIHRvIHlv
dXIgdGhyb25lIGFuZCBzdGF0ZSBjaGlsZHJlbiBhbmQgc2VydmFudHMsPC9BPjxicj4KKzxBIE5B
TUU9MS40LjI5PldoaWNoIGRvIGJ1dCB3aGF0IHRoZXkgc2hvdWxkLCBieSBkb2luZyBldmVyeSB0
aGluZzwvQT48YnI+Cis8QSBOQU1FPTEuNC4zMD5TYWZlIHRvd2FyZCB5b3VyIGxvdmUgYW5kIGhv
bm91ci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+RFVOQ0FO
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjQuMzE+V2VsY29tZSBoaXRoZXI6PC9B
Pjxicj4KKzxBIE5BTUU9MS40LjMyPkkgaGF2ZSBiZWd1biB0byBwbGFudCB0aGVlLCBhbmQgd2ls
bCBsYWJvdXI8L0E+PGJyPgorPEEgTkFNRT0xLjQuMzM+VG8gbWFrZSB0aGVlIGZ1bGwgb2YgZ3Jv
d2luZy4gTm9ibGUgQmFucXVvLDwvQT48YnI+Cis8QSBOQU1FPTEuNC4zND5UaGF0IGhhc3Qgbm8g
bGVzcyBkZXNlcnZlZCwgbm9yIG11c3QgYmUga25vd248L0E+PGJyPgorPEEgTkFNRT0xLjQuMzU+
Tm8gbGVzcyB0byBoYXZlIGRvbmUgc28sIGxldCBtZSBlbmZvbGQgdGhlZTwvQT48YnI+Cis8QSBO
QU1FPTEuNC4zNj5BbmQgaG9sZCB0aGVlIHRvIG15IGhlYXJ0LjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTEuNC4zNz5UaGVyZSBpZiBJIGdyb3csPC9BPjxicj4KKzxBIE5BTUU9MS40LjM4PlRo
ZSBoYXJ2ZXN0IGlzIHlvdXIgb3duLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoNz48Yj5EVU5DQU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNC4zOT5N
eSBwbGVudGVvdXMgam95cyw8L0E+PGJyPgorPEEgTkFNRT0xLjQuNDA+V2FudG9uIGluIGZ1bG5l
c3MsIHNlZWsgdG8gaGlkZSB0aGVtc2VsdmVzPC9BPjxicj4KKzxBIE5BTUU9MS40LjQxPkluIGRy
b3BzIG9mIHNvcnJvdy4gU29ucywga2luc21lbiwgdGhhbmVzLDwvQT48YnI+Cis8QSBOQU1FPTEu
NC40Mj5BbmQgeW91IHdob3NlIHBsYWNlcyBhcmUgdGhlIG5lYXJlc3QsIGtub3c8L0E+PGJyPgor
PEEgTkFNRT0xLjQuNDM+V2Ugd2lsbCBlc3RhYmxpc2ggb3VyIGVzdGF0ZSB1cG9uPC9BPjxicj4K
KzxBIE5BTUU9MS40LjQ0Pk91ciBlbGRlc3QsIE1hbGNvbG0sIHdob20gd2UgbmFtZSBoZXJlYWZ0
ZXI8L0E+PGJyPgorPEEgTkFNRT0xLjQuNDU+VGhlIFByaW5jZSBvZiBDdW1iZXJsYW5kOyB3aGlj
aCBob25vdXIgbXVzdDwvQT48YnI+Cis8QSBOQU1FPTEuNC40Nj5Ob3QgdW5hY2NvbXBhbmllZCBp
bnZlc3QgaGltIG9ubHksPC9BPjxicj4KKzxBIE5BTUU9MS40LjQ3PkJ1dCBzaWducyBvZiBub2Js
ZW5lc3MsIGxpa2Ugc3RhcnMsIHNoYWxsIHNoaW5lPC9BPjxicj4KKzxBIE5BTUU9MS40LjQ4Pk9u
IGFsbCBkZXNlcnZlcnMuIEZyb20gaGVuY2UgdG8gSW52ZXJuZXNzLDwvQT48YnI+Cis8QSBOQU1F
PTEuNC40OT5BbmQgYmluZCB1cyBmdXJ0aGVyIHRvIHlvdS48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDg+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9MS40LjUwPlRoZSByZXN0IGlzIGxhYm91ciwgd2hpY2ggaXMgbm90IHVzZWQgZm9yIHlv
dTo8L0E+PGJyPgorPEEgTkFNRT0xLjQuNTE+SSdsbCBiZSBteXNlbGYgdGhlIGhhcmJpbmdlciBh
bmQgbWFrZSBqb3lmdWw8L0E+PGJyPgorPEEgTkFNRT0xLjQuNTI+VGhlIGhlYXJpbmcgb2YgbXkg
d2lmZSB3aXRoIHlvdXIgYXBwcm9hY2g7PC9BPjxicj4KKzxBIE5BTUU9MS40LjUzPlNvIGh1bWJs
eSB0YWtlIG15IGxlYXZlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
OT48Yj5EVU5DQU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNC41ND5NeSB3b3J0
aHkgQ2F3ZG9yITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS40LjU1PltBc2lkZV0gIFRo
ZSBQcmluY2Ugb2YgQ3VtYmVybGFuZCEgdGhhdCBpcyBhIHN0ZXA8L0E+PGJyPgorPEEgTkFNRT0x
LjQuNTY+T24gd2hpY2ggSSBtdXN0IGZhbGwgZG93biwgb3IgZWxzZSBvJ2VybGVhcCw8L0E+PGJy
PgorPEEgTkFNRT0xLjQuNTc+Rm9yIGluIG15IHdheSBpdCBsaWVzLiBTdGFycywgaGlkZSB5b3Vy
IGZpcmVzOzwvQT48YnI+Cis8QSBOQU1FPTEuNC41OD5MZXQgbm90IGxpZ2h0IHNlZSBteSBibGFj
ayBhbmQgZGVlcCBkZXNpcmVzOjwvQT48YnI+Cis8QSBOQU1FPTEuNC41OT5UaGUgZXllIHdpbmsg
YXQgdGhlIGhhbmQ7IHlldCBsZXQgdGhhdCBiZSw8L0E+PGJyPgorPEEgTkFNRT0xLjQuNjA+V2hp
Y2ggdGhlIGV5ZSBmZWFycywgd2hlbiBpdCBpcyBkb25lLCB0byBzZWUuPC9BPjxicj4KKzxwPjxp
PkV4aXQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDExPjxiPkRVTkNB
TjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS40LjYxPlRydWUsIHdvcnRoeSBCYW5x
dW87IGhlIGlzIGZ1bGwgc28gdmFsaWFudCw8L0E+PGJyPgorPEEgTkFNRT0xLjQuNjI+QW5kIGlu
IGhpcyBjb21tZW5kYXRpb25zIEkgYW0gZmVkOzwvQT48YnI+Cis8QSBOQU1FPTEuNC42Mz5JdCBp
cyBhIGJhbnF1ZXQgdG8gbWUuIExldCdzIGFmdGVyIGhpbSw8L0E+PGJyPgorPEEgTkFNRT0xLjQu
NjQ+V2hvc2UgY2FyZSBpcyBnb25lIGJlZm9yZSB0byBiaWQgdXMgd2VsY29tZTo8L0E+PGJyPgor
PEEgTkFNRT0xLjQuNjU+SXQgaXMgYSBwZWVybGVzcyBraW5zbWFuLjwvQT48YnI+Cis8cD48aT5G
bG91cmlzaC4gRXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBWLiBJbnZl
cm5lc3MuIE1hY2JldGgncyBjYXN0bGUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50ZXIg
TEFEWSBNQUNCRVRILCByZWFkaW5nIGEgbGV0dGVyPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDE+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0xLjUuMT4nVGhleSBtZXQgbWUgaW4gdGhlIGRheSBvZiBzdWNjZXNzOiBhbmQgSSBoYXZlPC9B
Pjxicj4KKzxBIE5BTUU9MS41LjI+bGVhcm5lZCBieSB0aGUgcGVyZmVjdGVzdCByZXBvcnQsIHRo
ZXkgaGF2ZSBtb3JlIGluPC9BPjxicj4KKzxBIE5BTUU9MS41LjM+dGhlbSB0aGFuIG1vcnRhbCBr
bm93bGVkZ2UuIFdoZW4gSSBidXJuZWQgaW4gZGVzaXJlPC9BPjxicj4KKzxBIE5BTUU9MS41LjQ+
dG8gcXVlc3Rpb24gdGhlbSBmdXJ0aGVyLCB0aGV5IG1hZGUgdGhlbXNlbHZlcyBhaXIsPC9BPjxi
cj4KKzxBIE5BTUU9MS41LjU+aW50byB3aGljaCB0aGV5IHZhbmlzaGVkLiBXaGlsZXMgSSBzdG9v
ZCByYXB0IGluPC9BPjxicj4KKzxBIE5BTUU9MS41LjY+dGhlIHdvbmRlciBvZiBpdCwgY2FtZSBt
aXNzaXZlcyBmcm9tIHRoZSBraW5nLCB3aG88L0E+PGJyPgorPEEgTkFNRT0xLjUuNz5hbGwtaGFp
bGVkIG1lICdUaGFuZSBvZiBDYXdkb3I7JyBieSB3aGljaCB0aXRsZSw8L0E+PGJyPgorPEEgTkFN
RT0xLjUuOD5iZWZvcmUsIHRoZXNlIHdlaXJkIHNpc3RlcnMgc2FsdXRlZCBtZSwgYW5kIHJlZmVy
cmVkPC9BPjxicj4KKzxBIE5BTUU9MS41Ljk+bWUgdG8gdGhlIGNvbWluZyBvbiBvZiB0aW1lLCB3
aXRoICdIYWlsLCBraW5nIHRoYXQ8L0E+PGJyPgorPEEgTkFNRT0xLjUuMTA+c2hhbHQgYmUhJyBU
aGlzIGhhdmUgSSB0aG91Z2h0IGdvb2QgdG8gZGVsaXZlcjwvQT48YnI+Cis8QSBOQU1FPTEuNS4x
MT50aGVlLCBteSBkZWFyZXN0IHBhcnRuZXIgb2YgZ3JlYXRuZXNzLCB0aGF0IHRob3U8L0E+PGJy
PgorPEEgTkFNRT0xLjUuMTI+bWlnaHRzdCBub3QgbG9zZSB0aGUgZHVlcyBvZiByZWpvaWNpbmcs
IGJ5IGJlaW5nPC9BPjxicj4KKzxBIE5BTUU9MS41LjEzPmlnbm9yYW50IG9mIHdoYXQgZ3JlYXRu
ZXNzIGlzIHByb21pc2VkIHRoZWUuIExheSBpdDwvQT48YnI+Cis8QSBOQU1FPTEuNS4xND50byB0
aHkgaGVhcnQsIGFuZCBmYXJld2VsbC4nPC9BPjxicj4KKzxBIE5BTUU9MS41LjE1PkdsYW1pcyB0
aG91IGFydCwgYW5kIENhd2RvcjsgYW5kIHNoYWx0IGJlPC9BPjxicj4KKzxBIE5BTUU9MS41LjE2
PldoYXQgdGhvdSBhcnQgcHJvbWlzZWQ6IHlldCBkbyBJIGZlYXIgdGh5IG5hdHVyZTs8L0E+PGJy
PgorPEEgTkFNRT0xLjUuMTc+SXQgaXMgdG9vIGZ1bGwgbycgdGhlIG1pbGsgb2YgaHVtYW4ga2lu
ZG5lc3M8L0E+PGJyPgorPEEgTkFNRT0xLjUuMTg+VG8gY2F0Y2ggdGhlIG5lYXJlc3Qgd2F5OiB0
aG91IHdvdWxkc3QgYmUgZ3JlYXQ7PC9BPjxicj4KKzxBIE5BTUU9MS41LjE5PkFydCBub3Qgd2l0
aG91dCBhbWJpdGlvbiwgYnV0IHdpdGhvdXQ8L0E+PGJyPgorPEEgTkFNRT0xLjUuMjA+VGhlIGls
bG5lc3Mgc2hvdWxkIGF0dGVuZCBpdDogd2hhdCB0aG91IHdvdWxkc3QgaGlnaGx5LDwvQT48YnI+
Cis8QSBOQU1FPTEuNS4yMT5UaGF0IHdvdWxkc3QgdGhvdSBob2xpbHk7IHdvdWxkc3Qgbm90IHBs
YXkgZmFsc2UsPC9BPjxicj4KKzxBIE5BTUU9MS41LjIyPkFuZCB5ZXQgd291bGRzdCB3cm9uZ2x5
IHdpbjogdGhvdSdsZHN0IGhhdmUsIGdyZWF0IEdsYW1pcyw8L0E+PGJyPgorPEEgTkFNRT0xLjUu
MjM+VGhhdCB3aGljaCBjcmllcyAnVGh1cyB0aG91IG11c3QgZG8sIGlmIHRob3UgaGF2ZSBpdDs8
L0E+PGJyPgorPEEgTkFNRT0xLjUuMjQ+QW5kIHRoYXQgd2hpY2ggcmF0aGVyIHRob3UgZG9zdCBm
ZWFyIHRvIGRvPC9BPjxicj4KKzxBIE5BTUU9MS41LjI1PlRoYW4gd2lzaGVzdCBzaG91bGQgYmUg
dW5kb25lLicgSGllIHRoZWUgaGl0aGVyLDwvQT48YnI+Cis8QSBOQU1FPTEuNS4yNj5UaGF0IEkg
bWF5IHBvdXIgbXkgc3Bpcml0cyBpbiB0aGluZSBlYXI7PC9BPjxicj4KKzxBIE5BTUU9MS41LjI3
PkFuZCBjaGFzdGlzZSB3aXRoIHRoZSB2YWxvdXIgb2YgbXkgdG9uZ3VlPC9BPjxicj4KKzxBIE5B
TUU9MS41LjI4PkFsbCB0aGF0IGltcGVkZXMgdGhlZSBmcm9tIHRoZSBnb2xkZW4gcm91bmQsPC9B
Pjxicj4KKzxBIE5BTUU9MS41LjI5PldoaWNoIGZhdGUgYW5kIG1ldGFwaHlzaWNhbCBhaWQgZG90
aCBzZWVtPC9BPjxicj4KKzxBIE5BTUU9MS41LjMwPlRvIGhhdmUgdGhlZSBjcm93bidkIHdpdGhh
bC48L0E+PGJyPgorPHA+PGk+RW50ZXIgYSBNZXNzZW5nZXI8L2k+PC9wPgorPEEgTkFNRT0xLjUu
MzE+V2hhdCBpcyB5b3VyIHRpZGluZ3M/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gyPjxiPk1lc3NlbmdlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS41
LjMyPlRoZSBraW5nIGNvbWVzIGhlcmUgdG8tbmlnaHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gzPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9MS41LjMzPlRob3UncnQgbWFkIHRvIHNheSBpdDo8L0E+PGJyPgorPEEgTkFNRT0x
LjUuMzQ+SXMgbm90IHRoeSBtYXN0ZXIgd2l0aCBoaW0/IHdobywgd2VyZSd0IHNvLDwvQT48YnI+
Cis8QSBOQU1FPTEuNS4zNT5Xb3VsZCBoYXZlIGluZm9ybSdkIGZvciBwcmVwYXJhdGlvbi48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+TWVzc2VuZ2VyPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjUuMzY+U28gcGxlYXNlIHlvdSwgaXQgaXMgdHJ1
ZTogb3VyIHRoYW5lIGlzIGNvbWluZzo8L0E+PGJyPgorPEEgTkFNRT0xLjUuMzc+T25lIG9mIG15
IGZlbGxvd3MgaGFkIHRoZSBzcGVlZCBvZiBoaW0sPC9BPjxicj4KKzxBIE5BTUU9MS41LjM4Pldo
bywgYWxtb3N0IGRlYWQgZm9yIGJyZWF0aCwgaGFkIHNjYXJjZWx5IG1vcmU8L0E+PGJyPgorPEEg
TkFNRT0xLjUuMzk+VGhhbiB3b3VsZCBtYWtlIHVwIGhpcyBtZXNzYWdlLjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTEuNS40MD5HaXZlIGhpbSB0ZW5kaW5nOzwvQT48YnI+Cis8QSBO
QU1FPTEuNS40MT5IZSBicmluZ3MgZ3JlYXQgbmV3cy48L0E+PGJyPgorPHA+PGk+RXhpdCBNZXNz
ZW5nZXI8L2k+PC9wPgorPEEgTkFNRT0xLjUuNDI+VGhlIHJhdmVuIGhpbXNlbGYgaXMgaG9hcnNl
PC9BPjxicj4KKzxBIE5BTUU9MS41LjQzPlRoYXQgY3JvYWtzIHRoZSBmYXRhbCBlbnRyYW5jZSBv
ZiBEdW5jYW48L0E+PGJyPgorPEEgTkFNRT0xLjUuNDQ+VW5kZXIgbXkgYmF0dGxlbWVudHMuIENv
bWUsIHlvdSBzcGlyaXRzPC9BPjxicj4KKzxBIE5BTUU9MS41LjQ1PlRoYXQgdGVuZCBvbiBtb3J0
YWwgdGhvdWdodHMsIHVuc2V4IG1lIGhlcmUsPC9BPjxicj4KKzxBIE5BTUU9MS41LjQ2PkFuZCBm
aWxsIG1lIGZyb20gdGhlIGNyb3duIHRvIHRoZSB0b2UgdG9wLWZ1bGw8L0E+PGJyPgorPEEgTkFN
RT0xLjUuNDc+T2YgZGlyZXN0IGNydWVsdHkhIG1ha2UgdGhpY2sgbXkgYmxvb2Q7PC9BPjxicj4K
KzxBIE5BTUU9MS41LjQ4PlN0b3AgdXAgdGhlIGFjY2VzcyBhbmQgcGFzc2FnZSB0byByZW1vcnNl
LDwvQT48YnI+Cis8QSBOQU1FPTEuNS40OT5UaGF0IG5vIGNvbXB1bmN0aW91cyB2aXNpdGluZ3Mg
b2YgbmF0dXJlPC9BPjxicj4KKzxBIE5BTUU9MS41LjUwPlNoYWtlIG15IGZlbGwgcHVycG9zZSwg
bm9yIGtlZXAgcGVhY2UgYmV0d2VlbjwvQT48YnI+Cis8QSBOQU1FPTEuNS41MT5UaGUgZWZmZWN0
IGFuZCBpdCEgQ29tZSB0byBteSB3b21hbidzIGJyZWFzdHMsPC9BPjxicj4KKzxBIE5BTUU9MS41
LjUyPkFuZCB0YWtlIG15IG1pbGsgZm9yIGdhbGwsIHlvdSBtdXJkZXJpbmcgbWluaXN0ZXJzLDwv
QT48YnI+Cis8QSBOQU1FPTEuNS41Mz5XaGVyZXZlciBpbiB5b3VyIHNpZ2h0bGVzcyBzdWJzdGFu
Y2VzPC9BPjxicj4KKzxBIE5BTUU9MS41LjU0PllvdSB3YWl0IG9uIG5hdHVyZSdzIG1pc2NoaWVm
ISBDb21lLCB0aGljayBuaWdodCw8L0E+PGJyPgorPEEgTkFNRT0xLjUuNTU+QW5kIHBhbGwgdGhl
ZSBpbiB0aGUgZHVubmVzdCBzbW9rZSBvZiBoZWxsLDwvQT48YnI+Cis8QSBOQU1FPTEuNS41Nj5U
aGF0IG15IGtlZW4ga25pZmUgc2VlIG5vdCB0aGUgd291bmQgaXQgbWFrZXMsPC9BPjxicj4KKzxB
IE5BTUU9MS41LjU3Pk5vciBoZWF2ZW4gcGVlcCB0aHJvdWdoIHRoZSBibGFua2V0IG9mIHRoZSBk
YXJrLDwvQT48YnI+Cis8QSBOQU1FPTEuNS41OD5UbyBjcnkgJ0hvbGQsIGhvbGQhJzwvQT48YnI+
Cis8cD48aT5FbnRlciBNQUNCRVRIPC9pPjwvcD4KKzxBIE5BTUU9MS41LjU5PkdyZWF0IEdsYW1p
cyEgd29ydGh5IENhd2RvciE8L0E+PGJyPgorPEEgTkFNRT0xLjUuNjA+R3JlYXRlciB0aGFuIGJv
dGgsIGJ5IHRoZSBhbGwtaGFpbCBoZXJlYWZ0ZXIhPC9BPjxicj4KKzxBIE5BTUU9MS41LjYxPlRo
eSBsZXR0ZXJzIGhhdmUgdHJhbnNwb3J0ZWQgbWUgYmV5b25kPC9BPjxicj4KKzxBIE5BTUU9MS41
LjYyPlRoaXMgaWdub3JhbnQgcHJlc2VudCwgYW5kIEkgZmVlbCBub3c8L0E+PGJyPgorPEEgTkFN
RT0xLjUuNjM+VGhlIGZ1dHVyZSBpbiB0aGUgaW5zdGFudC48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDY+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9MS41LjY0Pk15IGRlYXJlc3QgbG92ZSw8L0E+PGJyPgorPEEgTkFNRT0xLjUuNjU+RHVu
Y2FuIGNvbWVzIGhlcmUgdG8tbmlnaHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g3PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
MS41LjY2PkFuZCB3aGVuIGdvZXMgaGVuY2U/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g4PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEu
NS42Nz5Uby1tb3Jyb3csIGFzIGhlIHB1cnBvc2VzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoOT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTEuNS42OD5PLCBuZXZlcjwvQT48YnI+Cis8QSBOQU1FPTEuNS42OT5TaGFsbCBzdW4g
dGhhdCBtb3Jyb3cgc2VlITwvQT48YnI+Cis8QSBOQU1FPTEuNS43MD5Zb3VyIGZhY2UsIG15IHRo
YW5lLCBpcyBhcyBhIGJvb2sgd2hlcmUgbWVuPC9BPjxicj4KKzxBIE5BTUU9MS41LjcxPk1heSBy
ZWFkIHN0cmFuZ2UgbWF0dGVycy4gVG8gYmVndWlsZSB0aGUgdGltZSw8L0E+PGJyPgorPEEgTkFN
RT0xLjUuNzI+TG9vayBsaWtlIHRoZSB0aW1lOyBiZWFyIHdlbGNvbWUgaW4geW91ciBleWUsPC9B
Pjxicj4KKzxBIE5BTUU9MS41LjczPllvdXIgaGFuZCwgeW91ciB0b25ndWU6IGxvb2sgbGlrZSB0
aGUgaW5ub2NlbnQgZmxvd2VyLDwvQT48YnI+Cis8QSBOQU1FPTEuNS43ND5CdXQgYmUgdGhlIHNl
cnBlbnQgdW5kZXIndC4gSGUgdGhhdCdzIGNvbWluZzwvQT48YnI+Cis8QSBOQU1FPTEuNS43NT5N
dXN0IGJlIHByb3ZpZGVkIGZvcjogYW5kIHlvdSBzaGFsbCBwdXQ8L0E+PGJyPgorPEEgTkFNRT0x
LjUuNzY+VGhpcyBuaWdodCdzIGdyZWF0IGJ1c2luZXNzIGludG8gbXkgZGlzcGF0Y2g7PC9BPjxi
cj4KKzxBIE5BTUU9MS41Ljc3PldoaWNoIHNoYWxsIHRvIGFsbCBvdXIgbmlnaHRzIGFuZCBkYXlz
IHRvIGNvbWU8L0E+PGJyPgorPEEgTkFNRT0xLjUuNzg+R2l2ZSBzb2xlbHkgc292ZXJlaWduIHN3
YXkgYW5kIG1hc3RlcmRvbS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDEwPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNS43OT5XZSB3
aWxsIHNwZWFrIGZ1cnRoZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxMT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNS44
MD5Pbmx5IGxvb2sgdXAgY2xlYXI7PC9BPjxicj4KKzxBIE5BTUU9MS41LjgxPlRvIGFsdGVyIGZh
dm91ciBldmVyIGlzIHRvIGZlYXI6PC9BPjxicj4KKzxBIE5BTUU9MS41LjgyPkxlYXZlIGFsbCB0
aGUgcmVzdCB0byBtZS48L0E+PGJyPgorPHA+PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90
ZT4KKzxoMz5TQ0VORSBWSS4gQmVmb3JlIE1hY2JldGgncyBjYXN0bGUuPC9oMz4KKzxwPjxibG9j
a3F1b3RlPgorPGk+SGF1dGJveXMgYW5kIHRvcmNoZXMuIEVudGVyIERVTkNBTiwgTUFMQ09MTSwg
IERPTkFMQkFJTiwgQkFOUVVPLCBMRU5OT1gsIE1BQ0RVRkYsIFJPU1MsIEFOR1VTLCBhbmQgQXR0
ZW5kYW50czwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxPjxiPkRVTkNBTjwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS42LjE+VGhpcyBjYXN0bGUgaGF0aCBhIHBs
ZWFzYW50IHNlYXQ7IHRoZSBhaXI8L0E+PGJyPgorPEEgTkFNRT0xLjYuMj5OaW1ibHkgYW5kIHN3
ZWV0bHkgcmVjb21tZW5kcyBpdHNlbGY8L0E+PGJyPgorPEEgTkFNRT0xLjYuMz5VbnRvIG91ciBn
ZW50bGUgc2Vuc2VzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48
Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNi40PlRoaXMgZ3Vlc3Qg
b2Ygc3VtbWVyLDwvQT48YnI+Cis8QSBOQU1FPTEuNi41PlRoZSB0ZW1wbGUtaGF1bnRpbmcgbWFy
dGxldCwgZG9lcyBhcHByb3ZlLDwvQT48YnI+Cis8QSBOQU1FPTEuNi42PkJ5IGhpcyBsb3ZlZCBt
YW5zaW9ucnksIHRoYXQgdGhlIGhlYXZlbidzIGJyZWF0aDwvQT48YnI+Cis8QSBOQU1FPTEuNi43
PlNtZWxscyB3b29pbmdseSBoZXJlOiBubyBqdXR0eSwgZnJpZXplLDwvQT48YnI+Cis8QSBOQU1F
PTEuNi44PkJ1dHRyZXNzLCBub3IgY29pZ24gb2YgdmFudGFnZSwgYnV0IHRoaXMgYmlyZDwvQT48
YnI+Cis8QSBOQU1FPTEuNi45PkhhdGggbWFkZSBoaXMgcGVuZGVudCBiZWQgYW5kIHByb2NyZWFu
dCBjcmFkbGU6PC9BPjxicj4KKzxBIE5BTUU9MS42LjEwPldoZXJlIHRoZXkgbW9zdCBicmVlZCBh
bmQgaGF1bnQsIEkgaGF2ZSBvYnNlcnZlZCw8L0E+PGJyPgorPEEgTkFNRT0xLjYuMTE+VGhlIGFp
ciBpcyBkZWxpY2F0ZS48L0E+PGJyPgorPHA+PGk+RW50ZXIgTEFEWSBNQUNCRVRIPC9pPjwvcD4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPkRVTkNBTjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9MS42LjEyPlNlZSwgc2VlLCBvdXIgaG9ub3VyJ2QgaG9zdGVzcyE8
L0E+PGJyPgorPEEgTkFNRT0xLjYuMTM+VGhlIGxvdmUgdGhhdCBmb2xsb3dzIHVzIHNvbWV0aW1l
IGlzIG91ciB0cm91YmxlLDwvQT48YnI+Cis8QSBOQU1FPTEuNi4xND5XaGljaCBzdGlsbCB3ZSB0
aGFuayBhcyBsb3ZlLiBIZXJlaW4gSSB0ZWFjaCB5b3U8L0E+PGJyPgorPEEgTkFNRT0xLjYuMTU+
SG93IHlvdSBzaGFsbCBiaWQgR29kICdpbGQgdXMgZm9yIHlvdXIgcGFpbnMsPC9BPjxicj4KKzxB
IE5BTUU9MS42LjE2PkFuZCB0aGFuayB1cyBmb3IgeW91ciB0cm91YmxlLjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTEuNi4xNz5BbGwgb3VyIHNlcnZpY2U8L0E+PGJyPgorPEEgTkFN
RT0xLjYuMTg+SW4gZXZlcnkgcG9pbnQgdHdpY2UgZG9uZSBhbmQgdGhlbiBkb25lIGRvdWJsZTwv
QT48YnI+Cis8QSBOQU1FPTEuNi4xOT5XZXJlIHBvb3IgYW5kIHNpbmdsZSBidXNpbmVzcyB0byBj
b250ZW5kPC9BPjxicj4KKzxBIE5BTUU9MS42LjIwPkFnYWluc3QgdGhvc2UgaG9ub3VycyBkZWVw
IGFuZCBicm9hZCB3aGVyZXdpdGg8L0E+PGJyPgorPEEgTkFNRT0xLjYuMjE+WW91ciBtYWplc3R5
IGxvYWRzIG91ciBob3VzZTogZm9yIHRob3NlIG9mIG9sZCw8L0E+PGJyPgorPEEgTkFNRT0xLjYu
MjI+QW5kIHRoZSBsYXRlIGRpZ25pdGllcyBoZWFwJ2QgdXAgdG8gdGhlbSw8L0E+PGJyPgorPEEg
TkFNRT0xLjYuMjM+V2UgcmVzdCB5b3VyIGhlcm1pdHMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g1PjxiPkRVTkNBTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9MS42LjI0PldoZXJlJ3MgdGhlIHRoYW5lIG9mIENhd2Rvcj88L0E+PGJyPgorPEEgTkFNRT0x
LjYuMjU+V2UgY291cnNlZCBoaW0gYXQgdGhlIGhlZWxzLCBhbmQgaGFkIGEgcHVycG9zZTwvQT48
YnI+Cis8QSBOQU1FPTEuNi4yNj5UbyBiZSBoaXMgcHVydmV5b3I6IGJ1dCBoZSByaWRlcyB3ZWxs
OzwvQT48YnI+Cis8QSBOQU1FPTEuNi4yNz5BbmQgaGlzIGdyZWF0IGxvdmUsIHNoYXJwIGFzIGhp
cyBzcHVyLCBoYXRoIGhvbHAgaGltPC9BPjxicj4KKzxBIE5BTUU9MS42LjI4PlRvIGhpcyBob21l
IGJlZm9yZSB1cy4gRmFpciBhbmQgbm9ibGUgaG9zdGVzcyw8L0E+PGJyPgorPEEgTkFNRT0xLjYu
Mjk+V2UgYXJlIHlvdXIgZ3Vlc3QgdG8tbmlnaHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2g2PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9MS42LjMwPllvdXIgc2VydmFudHMgZXZlcjwvQT48YnI+Cis8QSBOQU1FPTEuNi4zMT5I
YXZlIHRoZWlycywgdGhlbXNlbHZlcyBhbmQgd2hhdCBpcyB0aGVpcnMsIGluIGNvbXB0LDwvQT48
YnI+Cis8QSBOQU1FPTEuNi4zMj5UbyBtYWtlIHRoZWlyIGF1ZGl0IGF0IHlvdXIgaGlnaG5lc3Mn
IHBsZWFzdXJlLDwvQT48YnI+Cis8QSBOQU1FPTEuNi4zMz5TdGlsbCB0byByZXR1cm4geW91ciBv
d24uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPkRVTkNBTjwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS42LjM0PkdpdmUgbWUgeW91ciBoYW5kOzwv
QT48YnI+Cis8QSBOQU1FPTEuNi4zNT5Db25kdWN0IG1lIHRvIG1pbmUgaG9zdDogd2UgbG92ZSBo
aW0gaGlnaGx5LDwvQT48YnI+Cis8QSBOQU1FPTEuNi4zNj5BbmQgc2hhbGwgY29udGludWUgb3Vy
IGdyYWNlcyB0b3dhcmRzIGhpbS48L0E+PGJyPgorPEEgTkFNRT0xLjYuMzc+QnkgeW91ciBsZWF2
ZSwgaG9zdGVzcy48L0E+PGJyPgorPHA+PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4K
KzxoMz5TQ0VORSBWSUkuIE1hY2JldGgncyBjYXN0bGUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgor
PGk+SGF1dGJveXMgYW5kIHRvcmNoZXMuIEVudGVyIGEgU2V3ZXIsIGFuZCBkaXZlcnMgIFNlcnZh
bnRzIHdpdGggZGlzaGVzIGFuZCBzZXJ2aWNlLCBhbmQgcGFzcyBvdmVyIHRoZSBzdGFnZS4gVGhl
biBlbnRlciBNQUNCRVRIPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS43LjE+SWYgaXQgd2VyZSBk
b25lIHdoZW4gJ3RpcyBkb25lLCB0aGVuICd0d2VyZSB3ZWxsPC9BPjxicj4KKzxBIE5BTUU9MS43
LjI+SXQgd2VyZSBkb25lIHF1aWNrbHk6IGlmIHRoZSBhc3Nhc3NpbmF0aW9uPC9BPjxicj4KKzxB
IE5BTUU9MS43LjM+Q291bGQgdHJhbW1lbCB1cCB0aGUgY29uc2VxdWVuY2UsIGFuZCBjYXRjaDwv
QT48YnI+Cis8QSBOQU1FPTEuNy40PldpdGggaGlzIHN1cmNlYXNlIHN1Y2Nlc3M7IHRoYXQgYnV0
IHRoaXMgYmxvdzwvQT48YnI+Cis8QSBOQU1FPTEuNy41Pk1pZ2h0IGJlIHRoZSBiZS1hbGwgYW5k
IHRoZSBlbmQtYWxsIGhlcmUsPC9BPjxicj4KKzxBIE5BTUU9MS43LjY+QnV0IGhlcmUsIHVwb24g
dGhpcyBiYW5rIGFuZCBzaG9hbCBvZiB0aW1lLDwvQT48YnI+Cis8QSBOQU1FPTEuNy43PldlJ2xk
IGp1bXAgdGhlIGxpZmUgdG8gY29tZS4gQnV0IGluIHRoZXNlIGNhc2VzPC9BPjxicj4KKzxBIE5B
TUU9MS43Ljg+V2Ugc3RpbGwgaGF2ZSBqdWRnbWVudCBoZXJlOyB0aGF0IHdlIGJ1dCB0ZWFjaDwv
QT48YnI+Cis8QSBOQU1FPTEuNy45PkJsb29keSBpbnN0cnVjdGlvbnMsIHdoaWNoLCBiZWluZyB0
YXVnaHQsIHJldHVybjwvQT48YnI+Cis8QSBOQU1FPTEuNy4xMD5UbyBwbGFndWUgdGhlIGludmVu
dG9yOiB0aGlzIGV2ZW4taGFuZGVkIGp1c3RpY2U8L0E+PGJyPgorPEEgTkFNRT0xLjcuMTE+Q29t
bWVuZHMgdGhlIGluZ3JlZGllbnRzIG9mIG91ciBwb2lzb24nZCBjaGFsaWNlPC9BPjxicj4KKzxB
IE5BTUU9MS43LjEyPlRvIG91ciBvd24gbGlwcy4gSGUncyBoZXJlIGluIGRvdWJsZSB0cnVzdDs8
L0E+PGJyPgorPEEgTkFNRT0xLjcuMTM+Rmlyc3QsIGFzIEkgYW0gaGlzIGtpbnNtYW4gYW5kIGhp
cyBzdWJqZWN0LDwvQT48YnI+Cis8QSBOQU1FPTEuNy4xND5TdHJvbmcgYm90aCBhZ2FpbnN0IHRo
ZSBkZWVkOyB0aGVuLCBhcyBoaXMgaG9zdCw8L0E+PGJyPgorPEEgTkFNRT0xLjcuMTU+V2hvIHNo
b3VsZCBhZ2FpbnN0IGhpcyBtdXJkZXJlciBzaHV0IHRoZSBkb29yLDwvQT48YnI+Cis8QSBOQU1F
PTEuNy4xNj5Ob3QgYmVhciB0aGUga25pZmUgbXlzZWxmLiBCZXNpZGVzLCB0aGlzIER1bmNhbjwv
QT48YnI+Cis8QSBOQU1FPTEuNy4xNz5IYXRoIGJvcm5lIGhpcyBmYWN1bHRpZXMgc28gbWVlaywg
aGF0aCBiZWVuPC9BPjxicj4KKzxBIE5BTUU9MS43LjE4PlNvIGNsZWFyIGluIGhpcyBncmVhdCBv
ZmZpY2UsIHRoYXQgaGlzIHZpcnR1ZXM8L0E+PGJyPgorPEEgTkFNRT0xLjcuMTk+V2lsbCBwbGVh
ZCBsaWtlIGFuZ2VscywgdHJ1bXBldC10b25ndWVkLCBhZ2FpbnN0PC9BPjxicj4KKzxBIE5BTUU9
MS43LjIwPlRoZSBkZWVwIGRhbW5hdGlvbiBvZiBoaXMgdGFraW5nLW9mZjs8L0E+PGJyPgorPEEg
TkFNRT0xLjcuMjE+QW5kIHBpdHksIGxpa2UgYSBuYWtlZCBuZXctYm9ybiBiYWJlLDwvQT48YnI+
Cis8QSBOQU1FPTEuNy4yMj5TdHJpZGluZyB0aGUgYmxhc3QsIG9yIGhlYXZlbidzIGNoZXJ1Ymlt
LCBob3JzZWQ8L0E+PGJyPgorPEEgTkFNRT0xLjcuMjM+VXBvbiB0aGUgc2lnaHRsZXNzIGNvdXJp
ZXJzIG9mIHRoZSBhaXIsPC9BPjxicj4KKzxBIE5BTUU9MS43LjI0PlNoYWxsIGJsb3cgdGhlIGhv
cnJpZCBkZWVkIGluIGV2ZXJ5IGV5ZSw8L0E+PGJyPgorPEEgTkFNRT0xLjcuMjU+VGhhdCB0ZWFy
cyBzaGFsbCBkcm93biB0aGUgd2luZC4gSSBoYXZlIG5vIHNwdXI8L0E+PGJyPgorPEEgTkFNRT0x
LjcuMjY+VG8gcHJpY2sgdGhlIHNpZGVzIG9mIG15IGludGVudCwgYnV0IG9ubHk8L0E+PGJyPgor
PEEgTkFNRT0xLjcuMjc+VmF1bHRpbmcgYW1iaXRpb24sIHdoaWNoIG8nZXJsZWFwcyBpdHNlbGY8
L0E+PGJyPgorPEEgTkFNRT0xLjcuMjg+QW5kIGZhbGxzIG9uIHRoZSBvdGhlci48L0E+PGJyPgor
PHA+PGk+RW50ZXIgTEFEWSBNQUNCRVRIPC9pPjwvcD4KKzxBIE5BTUU9MS43LjI5PkhvdyBub3ch
IHdoYXQgbmV3cz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+
TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjcuMzA+SGUgaGFz
IGFsbW9zdCBzdXBwJ2Q6IHdoeSBoYXZlIHlvdSBsZWZ0IHRoZSBjaGFtYmVyPzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjcuMzE+SGF0aCBoZSBhc2snZCBmb3IgbWU/PC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9MS43LjMyPktub3cgeW91IG5vdCBoZSBoYXM/PC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTEuNy4zMz5XZSB3aWxsIHByb2NlZWQgbm8gZnVydGhlciBpbiB0
aGlzIGJ1c2luZXNzOjwvQT48YnI+Cis8QSBOQU1FPTEuNy4zND5IZSBoYXRoIGhvbm91cidkIG1l
IG9mIGxhdGU7IGFuZCBJIGhhdmUgYm91Z2h0PC9BPjxicj4KKzxBIE5BTUU9MS43LjM1PkdvbGRl
biBvcGluaW9ucyBmcm9tIGFsbCBzb3J0cyBvZiBwZW9wbGUsPC9BPjxicj4KKzxBIE5BTUU9MS43
LjM2PldoaWNoIHdvdWxkIGJlIHdvcm4gbm93IGluIHRoZWlyIG5ld2VzdCBnbG9zcyw8L0E+PGJy
PgorPEEgTkFNRT0xLjcuMzc+Tm90IGNhc3QgYXNpZGUgc28gc29vbi48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjcuMzg+V2FzIHRoZSBob3BlIGRydW5rPC9BPjxicj4KKzxBIE5B
TUU9MS43LjM5PldoZXJlaW4geW91IGRyZXNzJ2QgeW91cnNlbGY/IGhhdGggaXQgc2xlcHQgc2lu
Y2U/PC9BPjxicj4KKzxBIE5BTUU9MS43LjQwPkFuZCB3YWtlcyBpdCBub3csIHRvIGxvb2sgc28g
Z3JlZW4gYW5kIHBhbGU8L0E+PGJyPgorPEEgTkFNRT0xLjcuNDE+QXQgd2hhdCBpdCBkaWQgc28g
ZnJlZWx5PyBGcm9tIHRoaXMgdGltZTwvQT48YnI+Cis8QSBOQU1FPTEuNy40Mj5TdWNoIEkgYWNj
b3VudCB0aHkgbG92ZS4gQXJ0IHRob3UgYWZlYXJkPC9BPjxicj4KKzxBIE5BTUU9MS43LjQzPlRv
IGJlIHRoZSBzYW1lIGluIHRoaW5lIG93biBhY3QgYW5kIHZhbG91cjwvQT48YnI+Cis8QSBOQU1F
PTEuNy40ND5BcyB0aG91IGFydCBpbiBkZXNpcmU/IFdvdWxkc3QgdGhvdSBoYXZlIHRoYXQ8L0E+
PGJyPgorPEEgTkFNRT0xLjcuNDU+V2hpY2ggdGhvdSBlc3RlZW0nc3QgdGhlIG9ybmFtZW50IG9m
IGxpZmUsPC9BPjxicj4KKzxBIE5BTUU9MS43LjQ2PkFuZCBsaXZlIGEgY293YXJkIGluIHRoaW5l
IG93biBlc3RlZW0sPC9BPjxicj4KKzxBIE5BTUU9MS43LjQ3PkxldHRpbmcgJ0kgZGFyZSBub3Qn
IHdhaXQgdXBvbiAnSSB3b3VsZCwnPC9BPjxicj4KKzxBIE5BTUU9MS43LjQ4Pkxpa2UgdGhlIHBv
b3IgY2F0IGknIHRoZSBhZGFnZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDc+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS43LjQ5PlBy
aXRoZWUsIHBlYWNlOjwvQT48YnI+Cis8QSBOQU1FPTEuNy41MD5JIGRhcmUgZG8gYWxsIHRoYXQg
bWF5IGJlY29tZSBhIG1hbjs8L0E+PGJyPgorPEEgTkFNRT0xLjcuNTE+V2hvIGRhcmVzIGRvIG1v
cmUgaXMgbm9uZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+
TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjcuNTI+V2hhdCBi
ZWFzdCB3YXMndCwgdGhlbiw8L0E+PGJyPgorPEEgTkFNRT0xLjcuNTM+VGhhdCBtYWRlIHlvdSBi
cmVhayB0aGlzIGVudGVycHJpc2UgdG8gbWU/PC9BPjxicj4KKzxBIE5BTUU9MS43LjU0PldoZW4g
eW91IGR1cnN0IGRvIGl0LCB0aGVuIHlvdSB3ZXJlIGEgbWFuOzwvQT48YnI+Cis8QSBOQU1FPTEu
Ny41NT5BbmQsIHRvIGJlIG1vcmUgdGhhbiB3aGF0IHlvdSB3ZXJlLCB5b3Ugd291bGQ8L0E+PGJy
PgorPEEgTkFNRT0xLjcuNTY+QmUgc28gbXVjaCBtb3JlIHRoZSBtYW4uIE5vciB0aW1lIG5vciBw
bGFjZTwvQT48YnI+Cis8QSBOQU1FPTEuNy41Nz5EaWQgdGhlbiBhZGhlcmUsIGFuZCB5ZXQgeW91
IHdvdWxkIG1ha2UgYm90aDo8L0E+PGJyPgorPEEgTkFNRT0xLjcuNTg+VGhleSBoYXZlIG1hZGUg
dGhlbXNlbHZlcywgYW5kIHRoYXQgdGhlaXIgZml0bmVzcyBub3c8L0E+PGJyPgorPEEgTkFNRT0x
LjcuNTk+RG9lcyB1bm1ha2UgeW91LiBJIGhhdmUgZ2l2ZW4gc3VjaywgYW5kIGtub3c8L0E+PGJy
PgorPEEgTkFNRT0xLjcuNjA+SG93IHRlbmRlciAndGlzIHRvIGxvdmUgdGhlIGJhYmUgdGhhdCBt
aWxrcyBtZTo8L0E+PGJyPgorPEEgTkFNRT0xLjcuNjE+SSB3b3VsZCwgd2hpbGUgaXQgd2FzIHNt
aWxpbmcgaW4gbXkgZmFjZSw8L0E+PGJyPgorPEEgTkFNRT0xLjcuNjI+SGF2ZSBwbHVjaydkIG15
IG5pcHBsZSBmcm9tIGhpcyBib25lbGVzcyBndW1zLDwvQT48YnI+Cis8QSBOQU1FPTEuNy42Mz5B
bmQgZGFzaCdkIHRoZSBicmFpbnMgb3V0LCBoYWQgSSBzbyBzd29ybiBhcyB5b3U8L0E+PGJyPgor
PEEgTkFNRT0xLjcuNjQ+SGF2ZSBkb25lIHRvIHRoaXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g5PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTEuNy42NT4gICAgICAgICAgICAgICAgICBJZiB3ZSBzaG91bGQgZmFpbD88L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS43LjY2PldlIGZhaWwhPC9BPjxicj4KKzxBIE5BTUU9
MS43LjY3PkJ1dCBzY3JldyB5b3VyIGNvdXJhZ2UgdG8gdGhlIHN0aWNraW5nLXBsYWNlLDwvQT48
YnI+Cis8QSBOQU1FPTEuNy42OD5BbmQgd2UnbGwgbm90IGZhaWwuIFdoZW4gRHVuY2FuIGlzIGFz
bGVlcC0tPC9BPjxicj4KKzxBIE5BTUU9MS43LjY5PldoZXJldG8gdGhlIHJhdGhlciBzaGFsbCBo
aXMgZGF5J3MgaGFyZCBqb3VybmV5PC9BPjxicj4KKzxBIE5BTUU9MS43LjcwPlNvdW5kbHkgaW52
aXRlIGhpbS0taGlzIHR3byBjaGFtYmVybGFpbnM8L0E+PGJyPgorPEEgTkFNRT0xLjcuNzE+V2ls
bCBJIHdpdGggd2luZSBhbmQgd2Fzc2FpbCBzbyBjb252aW5jZTwvQT48YnI+Cis8QSBOQU1FPTEu
Ny43Mj5UaGF0IG1lbW9yeSwgdGhlIHdhcmRlciBvZiB0aGUgYnJhaW4sPC9BPjxicj4KKzxBIE5B
TUU9MS43LjczPlNoYWxsIGJlIGEgZnVtZSwgYW5kIHRoZSByZWNlaXB0IG9mIHJlYXNvbjwvQT48
YnI+Cis8QSBOQU1FPTEuNy43ND5BIGxpbWJlY2sgb25seTogd2hlbiBpbiBzd2luaXNoIHNsZWVw
PC9BPjxicj4KKzxBIE5BTUU9MS43Ljc1PlRoZWlyIGRyZW5jaGVkIG5hdHVyZXMgbGllIGFzIGlu
IGEgZGVhdGgsPC9BPjxicj4KKzxBIE5BTUU9MS43Ljc2PldoYXQgY2Fubm90IHlvdSBhbmQgSSBw
ZXJmb3JtIHVwb248L0E+PGJyPgorPEEgTkFNRT0xLjcuNzc+VGhlIHVuZ3VhcmRlZCBEdW5jYW4/
IHdoYXQgbm90IHB1dCB1cG9uPC9BPjxicj4KKzxBIE5BTUU9MS43Ljc4PkhpcyBzcG9uZ3kgb2Zm
aWNlcnMsIHdobyBzaGFsbCBiZWFyIHRoZSBndWlsdDwvQT48YnI+Cis8QSBOQU1FPTEuNy43OT5P
ZiBvdXIgZ3JlYXQgcXVlbGw/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjcuODA+QnJp
bmcgZm9ydGggbWVuLWNoaWxkcmVuIG9ubHk7PC9BPjxicj4KKzxBIE5BTUU9MS43LjgxPkZvciB0
aHkgdW5kYXVudGVkIG1ldHRsZSBzaG91bGQgY29tcG9zZTwvQT48YnI+Cis8QSBOQU1FPTEuNy44
Mj5Ob3RoaW5nIGJ1dCBtYWxlcy4gV2lsbCBpdCBub3QgYmUgcmVjZWl2ZWQsPC9BPjxicj4KKzxB
IE5BTUU9MS43LjgzPldoZW4gd2UgaGF2ZSBtYXJrJ2Qgd2l0aCBibG9vZCB0aG9zZSBzbGVlcHkg
dHdvPC9BPjxicj4KKzxBIE5BTUU9MS43Ljg0Pk9mIGhpcyBvd24gY2hhbWJlciBhbmQgdXNlZCB0
aGVpciB2ZXJ5IGRhZ2dlcnMsPC9BPjxicj4KKzxBIE5BTUU9MS43Ljg1PlRoYXQgdGhleSBoYXZl
IGRvbmUndD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPkxB
RFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS43Ljg2PldobyBkYXJl
cyByZWNlaXZlIGl0IG90aGVyLDwvQT48YnI+Cis8QSBOQU1FPTEuNy44Nz5BcyB3ZSBzaGFsbCBt
YWtlIG91ciBncmllZnMgYW5kIGNsYW1vdXIgcm9hcjwvQT48YnI+Cis8QSBOQU1FPTEuNy44OD5V
cG9uIGhpcyBkZWF0aD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEz
PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNy44OT4gICAgICAg
ICAgICAgICAgICBJIGFtIHNldHRsZWQsIGFuZCBiZW5kIHVwPC9BPjxicj4KKzxBIE5BTUU9MS43
LjkwPkVhY2ggY29ycG9yYWwgYWdlbnQgdG8gdGhpcyB0ZXJyaWJsZSBmZWF0LjwvQT48YnI+Cis8
QSBOQU1FPTEuNy45MT5Bd2F5LCBhbmQgbW9jayB0aGUgdGltZSB3aXRoIGZhaXJlc3Qgc2hvdzo8
L0E+PGJyPgorPEEgTkFNRT0xLjcuOTI+RmFsc2UgZmFjZSBtdXN0IGhpZGUgd2hhdCB0aGUgZmFs
c2UgaGVhcnQgZG90aCBrbm93LjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9j
a3F1b3RlPjxwPgorPEgzPkFDVCBJSTwvaDM+Cis8aDM+U0NFTkUgSS4gQ291cnQgb2YgTWFjYmV0
aCdzIGNhc3RsZS48L2gzPgorPHA+PGJsb2NrcXVvdGU+Cis8aT5FbnRlciBCQU5RVU8sIGFuZCBG
TEVBTkNFIGJlYXJpbmcgYSB0b3JjaCBiZWZvcmUgaGltPC9pPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDE+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0y
LjEuMT5Ib3cgZ29lcyB0aGUgbmlnaHQsIGJveT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDI+PGI+RkxFQU5DRTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
Mi4xLjI+VGhlIG1vb24gaXMgZG93bjsgSSBoYXZlIG5vdCBoZWFyZCB0aGUgY2xvY2suPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPkJBTlFVTzwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4xLjM+QW5kIHNoZSBnb2VzIGRvd24gYXQgdHdlbHZlLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5GTEVBTkNFPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjEuND5JIHRha2UndCwgJ3RpcyBsYXRlciwgc2ly
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5CQU5RVU88L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS41PkhvbGQsIHRha2UgbXkgc3dvcmQuIFRo
ZXJlJ3MgaHVzYmFuZHJ5IGluIGhlYXZlbjs8L0E+PGJyPgorPEEgTkFNRT0yLjEuNj5UaGVpciBj
YW5kbGVzIGFyZSBhbGwgb3V0LiBUYWtlIHRoZWUgdGhhdCB0b28uPC9BPjxicj4KKzxBIE5BTUU9
Mi4xLjc+QSBoZWF2eSBzdW1tb25zIGxpZXMgbGlrZSBsZWFkIHVwb24gbWUsPC9BPjxicj4KKzxB
IE5BTUU9Mi4xLjg+QW5kIHlldCBJIHdvdWxkIG5vdCBzbGVlcDogbWVyY2lmdWwgcG93ZXJzLDwv
QT48YnI+Cis8QSBOQU1FPTIuMS45PlJlc3RyYWluIGluIG1lIHRoZSBjdXJzZWQgdGhvdWdodHMg
dGhhdCBuYXR1cmU8L0E+PGJyPgorPEEgTkFNRT0yLjEuMTA+R2l2ZXMgd2F5IHRvIGluIHJlcG9z
ZSE8L0E+PGJyPgorPHA+PGk+RW50ZXIgTUFDQkVUSCwgYW5kIGEgU2VydmFudCB3aXRoIGEgdG9y
Y2g8L2k+PC9wPgorPEEgTkFNRT0yLjEuMTE+R2l2ZSBtZSBteSBzd29yZC48L0E+PGJyPgorPEEg
TkFNRT0yLjEuMTI+V2hvJ3MgdGhlcmU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g2PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4x
Mz5BIGZyaWVuZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+
QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjEuMTQ+V2hhdCwgc2lyLCBu
b3QgeWV0IGF0IHJlc3Q/IFRoZSBraW5nJ3MgYS1iZWQ6PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjE1
PkhlIGhhdGggYmVlbiBpbiB1bnVzdWFsIHBsZWFzdXJlLCBhbmQ8L0E+PGJyPgorPEEgTkFNRT0y
LjEuMTY+U2VudCBmb3J0aCBncmVhdCBsYXJnZXNzIHRvIHlvdXIgb2ZmaWNlcy48L0E+PGJyPgor
PEEgTkFNRT0yLjEuMTc+VGhpcyBkaWFtb25kIGhlIGdyZWV0cyB5b3VyIHdpZmUgd2l0aGFsLDwv
QT48YnI+Cis8QSBOQU1FPTIuMS4xOD5CeSB0aGUgbmFtZSBvZiBtb3N0IGtpbmQgaG9zdGVzczsg
YW5kIHNodXQgdXA8L0E+PGJyPgorPEEgTkFNRT0yLjEuMTk+SW4gbWVhc3VyZWxlc3MgY29udGVu
dC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+TUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4xLjIwPkJlaW5nIHVucHJlcGFyZWQsPC9B
Pjxicj4KKzxBIE5BTUU9Mi4xLjIxPk91ciB3aWxsIGJlY2FtZSB0aGUgc2VydmFudCB0byBkZWZl
Y3Q7PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjIyPldoaWNoIGVsc2Ugc2hvdWxkIGZyZWUgaGF2ZSB3
cm91Z2h0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5CQU5R
VU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4yMz5BbGwncyB3ZWxsLjwvQT48
YnI+Cis8QSBOQU1FPTIuMS4yND5JIGRyZWFtdCBsYXN0IG5pZ2h0IG9mIHRoZSB0aHJlZSB3ZWly
ZCBzaXN0ZXJzOjwvQT48YnI+Cis8QSBOQU1FPTIuMS4yNT5UbyB5b3UgdGhleSBoYXZlIHNob3cn
ZCBzb21lIHRydXRoLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+
PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4xLjI2PkkgdGhpbmsg
bm90IG9mIHRoZW06PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjI3PllldCwgd2hlbiB3ZSBjYW4gZW50
cmVhdCBhbiBob3VyIHRvIHNlcnZlLDwvQT48YnI+Cis8QSBOQU1FPTIuMS4yOD5XZSB3b3VsZCBz
cGVuZCBpdCBpbiBzb21lIHdvcmRzIHVwb24gdGhhdCBidXNpbmVzcyw8L0E+PGJyPgorPEEgTkFN
RT0yLjEuMjk+SWYgeW91IHdvdWxkIGdyYW50IHRoZSB0aW1lLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0yLjEuMzA+QXQgeW91ciBraW5kJ3N0IGxlaXN1cmUuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMj48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0yLjEuMzE+SWYgeW91IHNoYWxsIGNsZWF2ZSB0byBteSBjb25zZW50LCB3aGVu
ICd0aXMsPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjMyPkl0IHNoYWxsIG1ha2UgaG9ub3VyIGZvciB5
b3UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5CQU5RVU88
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4zMz5TbyBJIGxvc2Ugbm9uZTwvQT48
YnI+Cis8QSBOQU1FPTIuMS4zND5JbiBzZWVraW5nIHRvIGF1Z21lbnQgaXQsIGJ1dCBzdGlsbCBr
ZWVwPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjM1Pk15IGJvc29tIGZyYW5jaGlzZWQgYW5kIGFsbGVn
aWFuY2UgY2xlYXIsPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjM2Pkkgc2hhbGwgYmUgY291bnNlbGwn
ZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPk1BQ0JFVEg8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4zNz5Hb29kIHJlcG9zZSB0aGUgd2hp
bGUhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNT48Yj5CQU5RVU88
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4zOD5UaGFua3MsIHNpcjogdGhlIGxp
a2UgdG8geW91ITwvQT48YnI+Cis8cD48aT5FeGV1bnQgQkFOUVVPIGFuZCBGTEVBTkNFPC9pPjwv
cD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNj48Yj5NQUNCRVRIPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjEuMzk+R28gYmlkIHRoeSBtaXN0cmVzcywgd2hlbiBt
eSBkcmluayBpcyByZWFkeSw8L0E+PGJyPgorPEEgTkFNRT0yLjEuNDA+U2hlIHN0cmlrZSB1cG9u
IHRoZSBiZWxsLiBHZXQgdGhlZSB0byBiZWQuPC9BPjxicj4KKzxwPjxpPkV4aXQgU2VydmFudDwv
aT48L3A+Cis8QSBOQU1FPTIuMS40MT5JcyB0aGlzIGEgZGFnZ2VyIHdoaWNoIEkgc2VlIGJlZm9y
ZSBtZSw8L0E+PGJyPgorPEEgTkFNRT0yLjEuNDI+VGhlIGhhbmRsZSB0b3dhcmQgbXkgaGFuZD8g
Q29tZSwgbGV0IG1lIGNsdXRjaCB0aGVlLjwvQT48YnI+Cis8QSBOQU1FPTIuMS40Mz5JIGhhdmUg
dGhlZSBub3QsIGFuZCB5ZXQgSSBzZWUgdGhlZSBzdGlsbC48L0E+PGJyPgorPEEgTkFNRT0yLjEu
NDQ+QXJ0IHRob3Ugbm90LCBmYXRhbCB2aXNpb24sIHNlbnNpYmxlPC9BPjxicj4KKzxBIE5BTUU9
Mi4xLjQ1PlRvIGZlZWxpbmcgYXMgdG8gc2lnaHQ/IG9yIGFydCB0aG91IGJ1dDwvQT48YnI+Cis8
QSBOQU1FPTIuMS40Nj5BIGRhZ2dlciBvZiB0aGUgbWluZCwgYSBmYWxzZSBjcmVhdGlvbiw8L0E+
PGJyPgorPEEgTkFNRT0yLjEuNDc+UHJvY2VlZGluZyBmcm9tIHRoZSBoZWF0LW9wcHJlc3NlZCBi
cmFpbj88L0E+PGJyPgorPEEgTkFNRT0yLjEuNDg+SSBzZWUgdGhlZSB5ZXQsIGluIGZvcm0gYXMg
cGFscGFibGU8L0E+PGJyPgorPEEgTkFNRT0yLjEuNDk+QXMgdGhpcyB3aGljaCBub3cgSSBkcmF3
LjwvQT48YnI+Cis8QSBOQU1FPTIuMS41MD5UaG91IG1hcnNoYWxsJ3N0IG1lIHRoZSB3YXkgdGhh
dCBJIHdhcyBnb2luZzs8L0E+PGJyPgorPEEgTkFNRT0yLjEuNTE+QW5kIHN1Y2ggYW4gaW5zdHJ1
bWVudCBJIHdhcyB0byB1c2UuPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjUyPk1pbmUgZXllcyBhcmUg
bWFkZSB0aGUgZm9vbHMgbycgdGhlIG90aGVyIHNlbnNlcyw8L0E+PGJyPgorPEEgTkFNRT0yLjEu
NTM+T3IgZWxzZSB3b3J0aCBhbGwgdGhlIHJlc3Q7IEkgc2VlIHRoZWUgc3RpbGwsPC9BPjxicj4K
KzxBIE5BTUU9Mi4xLjU0PkFuZCBvbiB0aHkgYmxhZGUgYW5kIGR1ZGdlb24gZ291dHMgb2YgYmxv
b2QsPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjU1PldoaWNoIHdhcyBub3Qgc28gYmVmb3JlLiBUaGVy
ZSdzIG5vIHN1Y2ggdGhpbmc6PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjU2Pkl0IGlzIHRoZSBibG9v
ZHkgYnVzaW5lc3Mgd2hpY2ggaW5mb3JtczwvQT48YnI+Cis8QSBOQU1FPTIuMS41Nz5UaHVzIHRv
IG1pbmUgZXllcy4gTm93IG8nZXIgdGhlIG9uZSBoYWxmd29ybGQ8L0E+PGJyPgorPEEgTkFNRT0y
LjEuNTg+TmF0dXJlIHNlZW1zIGRlYWQsIGFuZCB3aWNrZWQgZHJlYW1zIGFidXNlPC9BPjxicj4K
KzxBIE5BTUU9Mi4xLjU5PlRoZSBjdXJ0YWluJ2Qgc2xlZXA7IHdpdGNoY3JhZnQgY2VsZWJyYXRl
czwvQT48YnI+Cis8QSBOQU1FPTIuMS42MD5QYWxlIEhlY2F0ZSdzIG9mZmVyaW5ncywgYW5kIHdp
dGhlcidkIG11cmRlciw8L0E+PGJyPgorPEEgTkFNRT0yLjEuNjE+QWxhcnVtJ2QgYnkgaGlzIHNl
bnRpbmVsLCB0aGUgd29sZiw8L0E+PGJyPgorPEEgTkFNRT0yLjEuNjI+V2hvc2UgaG93bCdzIGhp
cyB3YXRjaCwgdGh1cyB3aXRoIGhpcyBzdGVhbHRoeSBwYWNlLjwvQT48YnI+Cis8QSBOQU1FPTIu
MS42Mz5XaXRoIFRhcnF1aW4ncyByYXZpc2hpbmcgc3RyaWRlcywgdG93YXJkcyBoaXMgZGVzaWdu
PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjY0Pk1vdmVzIGxpa2UgYSBnaG9zdC4gVGhvdSBzdXJlIGFu
ZCBmaXJtLXNldCBlYXJ0aCw8L0E+PGJyPgorPEEgTkFNRT0yLjEuNjU+SGVhciBub3QgbXkgc3Rl
cHMsIHdoaWNoIHdheSB0aGV5IHdhbGssIGZvciBmZWFyPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjY2
PlRoeSB2ZXJ5IHN0b25lcyBwcmF0ZSBvZiBteSB3aGVyZWFib3V0LDwvQT48YnI+Cis8QSBOQU1F
PTIuMS42Nz5BbmQgdGFrZSB0aGUgcHJlc2VudCBob3Jyb3IgZnJvbSB0aGUgdGltZSw8L0E+PGJy
PgorPEEgTkFNRT0yLjEuNjg+V2hpY2ggbm93IHN1aXRzIHdpdGggaXQuIFdoaWxlcyBJIHRocmVh
dCwgaGUgbGl2ZXM6PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjY5PldvcmRzIHRvIHRoZSBoZWF0IG9m
IGRlZWRzIHRvbyBjb2xkIGJyZWF0aCBnaXZlcy48L0E+PGJyPgorPHA+PGk+QSBiZWxsIHJpbmdz
PC9pPjwvcD4KKzxBIE5BTUU9Mi4xLjcwPkkgZ28sIGFuZCBpdCBpcyBkb25lOyB0aGUgYmVsbCBp
bnZpdGVzIG1lLjwvQT48YnI+Cis8QSBOQU1FPTIuMS43MT5IZWFyIGl0IG5vdCwgRHVuY2FuOyBm
b3IgaXQgaXMgYSBrbmVsbDwvQT48YnI+Cis8QSBOQU1FPTIuMS43Mj5UaGF0IHN1bW1vbnMgdGhl
ZSB0byBoZWF2ZW4gb3IgdG8gaGVsbC48L0E+PGJyPgorPHA+PGk+RXhpdDwvaT48L3A+Cis8L2Js
b2NrcXVvdGU+Cis8aDM+U0NFTkUgSUkuIFRoZSBzYW1lLjwvaDM+Cis8cD48YmxvY2txdW90ZT4K
KzxpPkVudGVyIExBRFkgTUFDQkVUSDwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjE+
VGhhdCB3aGljaCBoYXRoIG1hZGUgdGhlbSBkcnVuayBoYXRoIG1hZGUgbWUgYm9sZDs8L0E+PGJy
PgorPEEgTkFNRT0yLjIuMj5XaGF0IGhhdGggcXVlbmNoJ2QgdGhlbSBoYXRoIGdpdmVuIG1lIGZp
cmUuPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjM+SGFyayEgUGVhY2UhPC9BPjxicj4KKzxBIE5BTUU9
Mi4yLjQ+SXQgd2FzIHRoZSBvd2wgdGhhdCBzaHJpZWsnZCwgdGhlIGZhdGFsIGJlbGxtYW4sPC9B
Pjxicj4KKzxBIE5BTUU9Mi4yLjU+V2hpY2ggZ2l2ZXMgdGhlIHN0ZXJuJ3N0IGdvb2QtbmlnaHQu
IEhlIGlzIGFib3V0IGl0OjwvQT48YnI+Cis8QSBOQU1FPTIuMi42PlRoZSBkb29ycyBhcmUgb3Bl
bjsgYW5kIHRoZSBzdXJmZWl0ZWQgZ3Jvb21zPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjc+RG8gbW9j
ayB0aGVpciBjaGFyZ2Ugd2l0aCBzbm9yZXM6IEkgaGF2ZSBkcnVnZydkPC9BPjxicj4KKzxBIE5B
TUU9Mi4yLjg+dGhlaXIgcG9zc2V0cyw8L0E+PGJyPgorPEEgTkFNRT0yLjIuOT5UaGF0IGRlYXRo
IGFuZCBuYXR1cmUgZG8gY29udGVuZCBhYm91dCB0aGVtLDwvQT48YnI+Cis8QSBOQU1FPTIuMi4x
MD5XaGV0aGVyIHRoZXkgbGl2ZSBvciBkaWUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2gyPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIu
Mi4xMT5bV2l0aGluXSAgV2hvJ3MgdGhlcmU/IHdoYXQsIGhvITwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTIuMi4xMj5BbGFjaywgSSBhbSBhZnJhaWQgdGhleSBoYXZlIGF3YWtlZCw8
L0E+PGJyPgorPEEgTkFNRT0yLjIuMTM+QW5kICd0aXMgbm90IGRvbmUuIFRoZSBhdHRlbXB0IGFu
ZCBub3QgdGhlIGRlZWQ8L0E+PGJyPgorPEEgTkFNRT0yLjIuMTQ+Q29uZm91bmRzIHVzLiBIYXJr
ISBJIGxhaWQgdGhlaXIgZGFnZ2VycyByZWFkeTs8L0E+PGJyPgorPEEgTkFNRT0yLjIuMTU+SGUg
Y291bGQgbm90IG1pc3MgJ2VtLiBIYWQgaGUgbm90IHJlc2VtYmxlZDwvQT48YnI+Cis8QSBOQU1F
PTIuMi4xNj5NeSBmYXRoZXIgYXMgaGUgc2xlcHQsIEkgaGFkIGRvbmUndC48L0E+PGJyPgorPHA+
PGk+RW50ZXIgTUFDQkVUSDwvaT48L3A+Cis8QSBOQU1FPTIuMi4xNz5NeSBodXNiYW5kITwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5NQUNCRVRIPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuMTg+SSBoYXZlIGRvbmUgdGhlIGRlZWQuIERpZHN0
IHRob3Ugbm90IGhlYXIgYSBub2lzZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDU+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0y
LjIuMTk+SSBoZWFyZCB0aGUgb3dsIHNjcmVhbSBhbmQgdGhlIGNyaWNrZXRzIGNyeS48L0E+PGJy
PgorPEEgTkFNRT0yLjIuMjA+RGlkIG5vdCB5b3Ugc3BlYWs/PC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2g2PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTIuMi4yMT4gICAgICAgICAgICAgICAgICBXaGVuPzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoNz48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTIuMi4yMj5Ob3cuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g4PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi4y
Mz5BcyBJIGRlc2NlbmRlZD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDk+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuMjQ+
QXkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuMjU+SGFyayE8L0E+PGJyPgorPEEg
TkFNRT0yLjIuMjY+V2hvIGxpZXMgaScgdGhlIHNlY29uZCBjaGFtYmVyPzwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuMjc+RG9uYWxiYWluLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9Mi4yLjI4PlRoaXMgaXMgYSBzb3JyeSBzaWdodC48L0E+PGJyPgorPHA+PGk+TG9v
a2luZyBvbiBoaXMgaGFuZHM8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDEzPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjI5
PkEgZm9vbGlzaCB0aG91Z2h0LCB0byBzYXkgYSBzb3JyeSBzaWdodC48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTIuMi4zMD5UaGVyZSdzIG9uZSBkaWQgbGF1Z2ggaW4ncyBzbGVlcCwgYW5k
IG9uZSBjcmllZDwvQT48YnI+Cis8QSBOQU1FPTIuMi4zMT4nTXVyZGVyISc8L0E+PGJyPgorPEEg
TkFNRT0yLjIuMzI+VGhhdCB0aGV5IGRpZCB3YWtlIGVhY2ggb3RoZXI6IEkgc3Rvb2QgYW5kIGhl
YXJkIHRoZW06PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjMzPkJ1dCB0aGV5IGRpZCBzYXkgdGhlaXIg
cHJheWVycywgYW5kIGFkZHJlc3MnZCB0aGVtPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjM0PkFnYWlu
IHRvIHNsZWVwLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTU+PGI+
TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuMzU+ICAgICAg
ICAgICAgICAgICAgVGhlcmUgYXJlIHR3byBsb2RnZWQgdG9nZXRoZXIuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNj48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0yLjIuMzY+T25lIGNyaWVkICdHb2QgYmxlc3MgdXMhJyBhbmQgJ0FtZW4n
IHRoZSBvdGhlcjs8L0E+PGJyPgorPEEgTkFNRT0yLjIuMzc+QXMgdGhleSBoYWQgc2VlbiBtZSB3
aXRoIHRoZXNlIGhhbmdtYW4ncyBoYW5kcy48L0E+PGJyPgorPEEgTkFNRT0yLjIuMzg+TGlzdGVu
aW5nIHRoZWlyIGZlYXIsIEkgY291bGQgbm90IHNheSAnQW1lbiwnPC9BPjxicj4KKzxBIE5BTUU9
Mi4yLjM5PldoZW4gdGhleSBkaWQgc2F5ICdHb2QgYmxlc3MgdXMhJzwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0yLjIuNDA+Q29uc2lkZXIgaXQgbm90IHNvIGRlZXBseS48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE4PjxiPk1BQ0JFVEg8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi40MT5CdXQgd2hlcmVmb3JlIGNvdWxkIG5vdCBJIHBy
b25vdW5jZSAnQW1lbic/PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjQyPkkgaGFkIG1vc3QgbmVlZCBv
ZiBibGVzc2luZywgYW5kICdBbWVuJzwvQT48YnI+Cis8QSBOQU1FPTIuMi40Mz5TdHVjayBpbiBt
eSB0aHJvYXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOT48Yj5M
QURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi40ND5UaGVzZSBk
ZWVkcyBtdXN0IG5vdCBiZSB0aG91Z2h0PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjQ1PkFmdGVyIHRo
ZXNlIHdheXM7IHNvLCBpdCB3aWxsIG1ha2UgdXMgbWFkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9Mi4yLjQ2Pk1ldGhvdWdodCBJIGhlYXJkIGEgdm9pY2UgY3J5ICdTbGVlcCBubyBtb3Jl
ITwvQT48YnI+Cis8QSBOQU1FPTIuMi40Nz5NYWNiZXRoIGRvZXMgbXVyZGVyIHNsZWVwJywgdGhl
IGlubm9jZW50IHNsZWVwLDwvQT48YnI+Cis8QSBOQU1FPTIuMi40OD5TbGVlcCB0aGF0IGtuaXRz
IHVwIHRoZSByYXZlbGwnZCBzbGVldmUgb2YgY2FyZSw8L0E+PGJyPgorPEEgTkFNRT0yLjIuNDk+
VGhlIGRlYXRoIG9mIGVhY2ggZGF5J3MgbGlmZSwgc29yZSBsYWJvdXIncyBiYXRoLDwvQT48YnI+
Cis8QSBOQU1FPTIuMi41MD5CYWxtIG9mIGh1cnQgbWluZHMsIGdyZWF0IG5hdHVyZSdzIHNlY29u
ZCBjb3Vyc2UsPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjUxPkNoaWVmIG5vdXJpc2hlciBpbiBsaWZl
J3MgZmVhc3QsLS08L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIxPjxi
PkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjUyPldoYXQg
ZG8geW91IG1lYW4/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMj48
Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuNTM+U3RpbGwgaXQg
Y3JpZWQgJ1NsZWVwIG5vIG1vcmUhJyB0byBhbGwgdGhlIGhvdXNlOjwvQT48YnI+Cis8QSBOQU1F
PTIuMi41ND4nR2xhbWlzIGhhdGggbXVyZGVyJ2Qgc2xlZXAsIGFuZCB0aGVyZWZvcmUgQ2F3ZG9y
PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjU1PlNoYWxsIHNsZWVwIG5vIG1vcmU7IE1hY2JldGggc2hh
bGwgc2xlZXAgbm8gbW9yZS4nPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gyMz48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi41
Nj5XaG8gd2FzIGl0IHRoYXQgdGh1cyBjcmllZD8gV2h5LCB3b3J0aHkgdGhhbmUsPC9BPjxicj4K
KzxBIE5BTUU9Mi4yLjU3PllvdSBkbyB1bmJlbmQgeW91ciBub2JsZSBzdHJlbmd0aCwgdG8gdGhp
bms8L0E+PGJyPgorPEEgTkFNRT0yLjIuNTg+U28gYnJhaW5zaWNrbHkgb2YgdGhpbmdzLiBHbyBn
ZXQgc29tZSB3YXRlciw8L0E+PGJyPgorPEEgTkFNRT0yLjIuNTk+QW5kIHdhc2ggdGhpcyBmaWx0
aHkgd2l0bmVzcyBmcm9tIHlvdXIgaGFuZC48L0E+PGJyPgorPEEgTkFNRT0yLjIuNjA+V2h5IGRp
ZCB5b3UgYnJpbmcgdGhlc2UgZGFnZ2VycyBmcm9tIHRoZSBwbGFjZT88L0E+PGJyPgorPEEgTkFN
RT0yLjIuNjE+VGhleSBtdXN0IGxpZSB0aGVyZTogZ28gY2FycnkgdGhlbTsgYW5kIHNtZWFyPC9B
Pjxicj4KKzxBIE5BTUU9Mi4yLjYyPlRoZSBzbGVlcHkgZ3Jvb21zIHdpdGggYmxvb2QuPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyND48Yj5NQUNCRVRIPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuNjM+SSdsbCBnbyBubyBtb3JlOjwvQT48YnI+Cis8
QSBOQU1FPTIuMi42ND5JIGFtIGFmcmFpZCB0byB0aGluayB3aGF0IEkgaGF2ZSBkb25lOzwvQT48
YnI+Cis8QSBOQU1FPTIuMi42NT5Mb29rIG9uJ3QgYWdhaW4gSSBkYXJlIG5vdC48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI1PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjY2PkluZmlybSBvZiBwdXJwb3NlITwvQT48YnI+
Cis8QSBOQU1FPTIuMi42Nz5HaXZlIG1lIHRoZSBkYWdnZXJzOiB0aGUgc2xlZXBpbmcgYW5kIHRo
ZSBkZWFkPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjY4PkFyZSBidXQgYXMgcGljdHVyZXM6ICd0aXMg
dGhlIGV5ZSBvZiBjaGlsZGhvb2Q8L0E+PGJyPgorPEEgTkFNRT0yLjIuNjk+VGhhdCBmZWFycyBh
IHBhaW50ZWQgZGV2aWwuIElmIGhlIGRvIGJsZWVkLDwvQT48YnI+Cis8QSBOQU1FPTIuMi43MD5J
J2xsIGdpbGQgdGhlIGZhY2VzIG9mIHRoZSBncm9vbXMgd2l0aGFsOzwvQT48YnI+Cis8QSBOQU1F
PTIuMi43MT5Gb3IgaXQgbXVzdCBzZWVtIHRoZWlyIGd1aWx0LjwvQT48YnI+Cis8cD48aT5FeGl0
LiBLbm9ja2luZyB3aXRoaW48L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDI2PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi43Mj5XaGVu
Y2UgaXMgdGhhdCBrbm9ja2luZz88L0E+PGJyPgorPEEgTkFNRT0yLjIuNzM+SG93IGlzJ3Qgd2l0
aCBtZSwgd2hlbiBldmVyeSBub2lzZSBhcHBhbHMgbWU/PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjc0
PldoYXQgaGFuZHMgYXJlIGhlcmU/IGhhISB0aGV5IHBsdWNrIG91dCBtaW5lIGV5ZXMuPC9BPjxi
cj4KKzxBIE5BTUU9Mi4yLjc1PldpbGwgYWxsIGdyZWF0IE5lcHR1bmUncyBvY2VhbiB3YXNoIHRo
aXMgYmxvb2Q8L0E+PGJyPgorPEEgTkFNRT0yLjIuNzY+Q2xlYW4gZnJvbSBteSBoYW5kPyBObywg
dGhpcyBteSBoYW5kIHdpbGwgcmF0aGVyPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjc3PlRoZSBtdWx0
aXR1ZGlub3VzIHNlYXMgaW4gaW5jYXJuYWRpbmUsPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjc4Pk1h
a2luZyB0aGUgZ3JlZW4gb25lIHJlZC48L0E+PGJyPgorPHA+PGk+UmUtZW50ZXIgTEFEWSBNQUNC
RVRIPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNz48Yj5MQURZIE1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi43OT5NeSBoYW5kcyBhcmUg
b2YgeW91ciBjb2xvdXI7IGJ1dCBJIHNoYW1lPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjgwPlRvIHdl
YXIgYSBoZWFydCBzbyB3aGl0ZS48L0E+PGJyPgorPHA+PGk+S25vY2tpbmcgd2l0aGluPC9pPjwv
cD4KKzxBIE5BTUU9Mi4yLjgxPkkgaGVhciBhIGtub2NraW5nPC9BPjxicj4KKzxBIE5BTUU9Mi4y
LjgyPkF0IHRoZSBzb3V0aCBlbnRyeTogcmV0aXJlIHdlIHRvIG91ciBjaGFtYmVyOzwvQT48YnI+
Cis8QSBOQU1FPTIuMi44Mz5BIGxpdHRsZSB3YXRlciBjbGVhcnMgdXMgb2YgdGhpcyBkZWVkOjwv
QT48YnI+Cis8QSBOQU1FPTIuMi44ND5Ib3cgZWFzeSBpcyBpdCwgdGhlbiEgWW91ciBjb25zdGFu
Y3k8L0E+PGJyPgorPEEgTkFNRT0yLjIuODU+SGF0aCBsZWZ0IHlvdSB1bmF0dGVuZGVkLjwvQT48
YnI+Cis8cD48aT5Lbm9ja2luZyB3aXRoaW48L2k+PC9wPgorPEEgTkFNRT0yLjIuODY+SGFyayEg
bW9yZSBrbm9ja2luZy48L0E+PGJyPgorPEEgTkFNRT0yLjIuODc+R2V0IG9uIHlvdXIgbmlnaHRn
b3duLCBsZXN0IG9jY2FzaW9uIGNhbGwgdXMsPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjg4PkFuZCBz
aG93IHVzIHRvIGJlIHdhdGNoZXJzLiBCZSBub3QgbG9zdDwvQT48YnI+Cis8QSBOQU1FPTIuMi44
OT5TbyBwb29ybHkgaW4geW91ciB0aG91Z2h0cy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDI4PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTIuMi45MD5UbyBrbm93IG15IGRlZWQsICd0d2VyZSBiZXN0IG5vdCBrbm93IG15c2VsZi48L0E+
PGJyPgorPHA+PGk+S25vY2tpbmcgd2l0aGluPC9pPjwvcD4KKzxBIE5BTUU9Mi4yLjkxPldha2Ug
RHVuY2FuIHdpdGggdGh5IGtub2NraW5nISBJIHdvdWxkIHRob3UgY291bGRzdCE8L0E+PGJyPgor
PHA+PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBJSUkuIFRoZSBz
YW1lLjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPktub2NraW5nIHdpdGhpbi4gRW50ZXIgYSBQ
b3J0ZXI8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5Qb3J0ZXI8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xPkhlcmUncyBhIGtub2NraW5nIGluZGVl
ZCEgSWYgYTwvQT48YnI+Cis8QSBOQU1FPTIuMy4yPm1hbiB3ZXJlIHBvcnRlciBvZiBoZWxsLWdh
dGUsIGhlIHNob3VsZCBoYXZlPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjM+b2xkIHR1cm5pbmcgdGhl
IGtleS48L0E+PGJyPgorPHA+PGk+S25vY2tpbmcgd2l0aGluPC9pPjwvcD4KKzxBIE5BTUU9Mi4z
LjQ+S25vY2ssPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjU+a25vY2ssIGtub2NrISBXaG8ncyB0aGVy
ZSwgaScgdGhlIG5hbWUgb2Y8L0E+PGJyPgorPEEgTkFNRT0yLjMuNj5CZWVsemVidWI/IEhlcmUn
cyBhIGZhcm1lciwgdGhhdCBoYW5nZWQ8L0E+PGJyPgorPEEgTkFNRT0yLjMuNz5oaW1zZWxmIG9u
IHRoZSBleHBlY3RhdGlvbiBvZiBwbGVudHk6IGNvbWUgaW48L0E+PGJyPgorPEEgTkFNRT0yLjMu
OD50aW1lOyBoYXZlIG5hcGtpbnMgZW5vdyBhYm91dCB5b3U7IGhlcmU8L0E+PGJyPgorPEEgTkFN
RT0yLjMuOT55b3UnbGwgc3dlYXQgZm9yJ3QuPC9BPjxicj4KKzxwPjxpPktub2NraW5nIHdpdGhp
bjwvaT48L3A+Cis8QSBOQU1FPTIuMy4xMD5Lbm9jayw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTE+
a25vY2shIFdobydzIHRoZXJlLCBpbiB0aGUgb3RoZXIgZGV2aWwnczwvQT48YnI+Cis8QSBOQU1F
PTIuMy4xMj5uYW1lPyBGYWl0aCwgaGVyZSdzIGFuIGVxdWl2b2NhdG9yLCB0aGF0IGNvdWxkPC9B
Pjxicj4KKzxBIE5BTUU9Mi4zLjEzPnN3ZWFyIGluIGJvdGggdGhlIHNjYWxlcyBhZ2FpbnN0IGVp
dGhlciBzY2FsZTs8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTQ+d2hvIGNvbW1pdHRlZCB0cmVhc29u
IGVub3VnaCBmb3IgR29kJ3Mgc2FrZSw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTU+eWV0IGNvdWxk
IG5vdCBlcXVpdm9jYXRlIHRvIGhlYXZlbjogTywgY29tZTwvQT48YnI+Cis8QSBOQU1FPTIuMy4x
Nj5pbiwgZXF1aXZvY2F0b3IuPC9BPjxicj4KKzxwPjxpPktub2NraW5nIHdpdGhpbjwvaT48L3A+
Cis8QSBOQU1FPTIuMy4xNz5Lbm9jayw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTg+a25vY2ssIGtu
b2NrISBXaG8ncyB0aGVyZT8gRmFpdGgsIGhlcmUncyBhbjwvQT48YnI+Cis8QSBOQU1FPTIuMy4x
OT5FbmdsaXNoIHRhaWxvciBjb21lIGhpdGhlciwgZm9yIHN0ZWFsaW5nIG91dCBvZjwvQT48YnI+
Cis8QSBOQU1FPTIuMy4yMD5hIEZyZW5jaCBob3NlOiBjb21lIGluLCB0YWlsb3I7IGhlcmUgeW91
IG1heTwvQT48YnI+Cis8QSBOQU1FPTIuMy4yMT5yb2FzdCB5b3VyIGdvb3NlLjwvQT48YnI+Cis8
cD48aT5Lbm9ja2luZyB3aXRoaW48L2k+PC9wPgorPEEgTkFNRT0yLjMuMjI+S25vY2ssPC9BPjxi
cj4KKzxBIE5BTUU9Mi4zLjIzPmtub2NrOyBuZXZlciBhdCBxdWlldCEgV2hhdCBhcmUgeW91PyBC
dXQ8L0E+PGJyPgorPEEgTkFNRT0yLjMuMjQ+dGhpcyBwbGFjZSBpcyB0b28gY29sZCBmb3IgaGVs
bC4gSSdsbCBkZXZpbC1wb3J0ZXI8L0E+PGJyPgorPEEgTkFNRT0yLjMuMjU+aXQgbm8gZnVydGhl
cjogSSBoYWQgdGhvdWdodCB0byBoYXZlIGxldCBpbjwvQT48YnI+Cis8QSBOQU1FPTIuMy4yNj5z
b21lIG9mIGFsbCBwcm9mZXNzaW9ucyB0aGF0IGdvIHRoZSBwcmltcm9zZTwvQT48YnI+Cis8QSBO
QU1FPTIuMy4yNz53YXkgdG8gdGhlIGV2ZXJsYXN0aW5nIGJvbmZpcmUuPC9BPjxicj4KKzxwPjxp
Pktub2NraW5nIHdpdGhpbjwvaT48L3A+Cis8QSBOQU1FPTIuMy4yOD5Bbm9uLCBhbm9uISBJIHBy
YXkgeW91LCByZW1lbWJlciB0aGUgcG9ydGVyLjwvQT48YnI+Cis8cD48aT5PcGVucyB0aGUgZ2F0
ZTwvaT48L3A+Cis8cD48aT5FbnRlciBNQUNEVUZGIGFuZCBMRU5OT1g8L2k+PC9wPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9Mi4zLjI5PldhcyBpdCBzbyBsYXRlLCBmcmllbmQsIGVyZSB5b3Ugd2VudCB0
byBiZWQsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjMwPlRoYXQgeW91IGRvIGxpZSBzbyBsYXRlPzwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5Qb3J0ZXI8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4zMT4nRmFpdGggc2lyLCB3ZSB3ZXJlIGNhcm91
c2luZyB0aWxsIHRoZTwvQT48YnI+Cis8QSBOQU1FPTIuMy4zMj5zZWNvbmQgY29jazogYW5kIGRy
aW5rLCBzaXIsIGlzIGEgZ3JlYXQ8L0E+PGJyPgorPEEgTkFNRT0yLjMuMzM+cHJvdm9rZXIgb2Yg
dGhyZWUgdGhpbmdzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48
Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMzQ+V2hhdCB0aHJl
ZSB0aGluZ3MgZG9lcyBkcmluayBlc3BlY2lhbGx5IHByb3Zva2U/PC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPlBvcnRlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9Mi4zLjM1Pk1hcnJ5LCBzaXIsIG5vc2UtcGFpbnRpbmcsIHNsZWVwLCBhbmQ8L0E+
PGJyPgorPEEgTkFNRT0yLjMuMzY+dXJpbmUuIExlY2hlcnksIHNpciwgaXQgcHJvdm9rZXMsIGFu
ZCB1bnByb3Zva2VzOzwvQT48YnI+Cis8QSBOQU1FPTIuMy4zNz5pdCBwcm92b2tlcyB0aGUgZGVz
aXJlLCBidXQgaXQgdGFrZXM8L0E+PGJyPgorPEEgTkFNRT0yLjMuMzg+YXdheSB0aGUgcGVyZm9y
bWFuY2U6IHRoZXJlZm9yZSwgbXVjaCBkcmluazwvQT48YnI+Cis8QSBOQU1FPTIuMy4zOT5tYXkg
YmUgc2FpZCB0byBiZSBhbiBlcXVpdm9jYXRvciB3aXRoIGxlY2hlcnk6PC9BPjxicj4KKzxBIE5B
TUU9Mi4zLjQwPml0IG1ha2VzIGhpbSwgYW5kIGl0IG1hcnMgaGltOyBpdCBzZXRzPC9BPjxicj4K
KzxBIE5BTUU9Mi4zLjQxPmhpbSBvbiwgYW5kIGl0IHRha2VzIGhpbSBvZmY7IGl0IHBlcnN1YWRl
cyBoaW0sPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjQyPmFuZCBkaXNoZWFydGVucyBoaW07IG1ha2Vz
IGhpbSBzdGFuZCB0bywgYW5kPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjQzPm5vdCBzdGFuZCB0bzsg
aW4gY29uY2x1c2lvbiwgZXF1aXZvY2F0ZXMgaGltPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjQ0Pmlu
IGEgc2xlZXAsIGFuZCwgZ2l2aW5nIGhpbSB0aGUgbGllLCBsZWF2ZXMgaGltLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0yLjMuNDU+SSBiZWxpZXZlIGRyaW5rIGdhdmUgdGhlZSB0aGUgbGll
IGxhc3QgbmlnaHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3Pjxi
PlBvcnRlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjQ2PlRoYXQgaXQgZGlk
LCBzaXIsIGknIHRoZSB2ZXJ5IHRocm9hdCBvbjwvQT48YnI+Cis8QSBOQU1FPTIuMy40Nz5tZTog
YnV0IEkgcmVxdWl0ZWQgaGltIGZvciBoaXMgbGllOyBhbmQsIEk8L0E+PGJyPgorPEEgTkFNRT0y
LjMuNDg+dGhpbmssIGJlaW5nIHRvbyBzdHJvbmcgZm9yIGhpbSwgdGhvdWdoIGhlIHRvb2s8L0E+
PGJyPgorPEEgTkFNRT0yLjMuNDk+dXAgbXkgbGVncyBzb21ldGltZSwgeWV0IEkgbWFkZSBhIHNo
aWZ0IHRvIGNhc3Q8L0E+PGJyPgorPEEgTkFNRT0yLjMuNTA+aGltLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0yLjMuNTE+SXMgdGh5IG1hc3RlciBzdGlycmluZz88L0E+PGJyPgorPHA+PGk+
RW50ZXIgTUFDQkVUSDwvaT48L3A+Cis8QSBOQU1FPTIuMy41Mj5PdXIga25vY2tpbmcgaGFzIGF3
YWtlZCBoaW07IGhlcmUgaGUgY29tZXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g5PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjUz
Pkdvb2QgbW9ycm93LCBub2JsZSBzaXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gxMD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMu
NTQ+R29vZCBtb3Jyb3csIGJvdGguPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxMT48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuNTU+
SXMgdGhlIGtpbmcgc3RpcnJpbmcsIHdvcnRoeSB0aGFuZT88L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTIuMy41Nj5Ob3QgeWV0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMTM+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjU3
PkhlIGRpZCBjb21tYW5kIG1lIHRvIGNhbGwgdGltZWx5IG9uIGhpbTo8L0E+PGJyPgorPEEgTkFN
RT0yLjMuNTg+SSBoYXZlIGFsbW9zdCBzbGlwcCdkIHRoZSBob3VyLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTQ+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9Mi4zLjU5PkknbGwgYnJpbmcgeW91IHRvIGhpbS48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE1PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTIuMy42MD5JIGtub3cgdGhpcyBpcyBhIGpveWZ1bCB0cm91YmxlIHRvIHlv
dTs8L0E+PGJyPgorPEEgTkFNRT0yLjMuNjE+QnV0IHlldCAndGlzIG9uZS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTIuMy42Mj5UaGUgbGFib3VyIHdlIGRlbGlnaHQgaW4gcGh5c2ljcyBw
YWluLjwvQT48YnI+Cis8QSBOQU1FPTIuMy42Mz5UaGlzIGlzIHRoZSBkb29yLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+TUFDRFVGRjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9Mi4zLjY0PiAgICAgICAgICAgICAgICAgIEknbGwgbWFrZSBzbyBi
b2xkIHRvIGNhbGwsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjY1PkZvciAndGlzIG15IGxpbWl0ZWQg
c2VydmljZS48L0E+PGJyPgorPHA+PGk+RXhpdDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMTg+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0y
LjMuNjY+R29lcyB0aGUga2luZyBoZW5jZSB0by1kYXk/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxOT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0yLjMuNjc+SGUgZG9lczogaGUgZGlkIGFwcG9pbnQgc28uPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMD48Yj5MRU5OT1g8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTIuMy42OD5UaGUgbmlnaHQgaGFzIGJlZW4gdW5ydWx5OiB3aGVyZSB3ZSBsYXks
PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjY5Pk91ciBjaGltbmV5cyB3ZXJlIGJsb3duIGRvd247IGFu
ZCwgYXMgdGhleSBzYXksPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjcwPkxhbWVudGluZ3MgaGVhcmQg
aScgdGhlIGFpcjsgc3RyYW5nZSBzY3JlYW1zIG9mIGRlYXRoLDwvQT48YnI+Cis8QSBOQU1FPTIu
My43MT5BbmQgcHJvcGhlc3lpbmcgd2l0aCBhY2NlbnRzIHRlcnJpYmxlPC9BPjxicj4KKzxBIE5B
TUU9Mi4zLjcyPk9mIGRpcmUgY29tYnVzdGlvbiBhbmQgY29uZnVzZWQgZXZlbnRzPC9BPjxicj4K
KzxBIE5BTUU9Mi4zLjczPk5ldyBoYXRjaCdkIHRvIHRoZSB3b2VmdWwgdGltZTogdGhlIG9ic2N1
cmUgYmlyZDwvQT48YnI+Cis8QSBOQU1FPTIuMy43ND5DbGFtb3VyJ2QgdGhlIGxpdmVsb25nIG5p
Z2h0OiBzb21lIHNheSwgdGhlIGVhcnRoPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjc1PldhcyBmZXZl
cm91cyBhbmQgZGlkIHNoYWtlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMjE+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjc2PidU
d2FzIGEgcm91Z2ggbmlnaHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gyMj48Yj5MRU5OT1g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy43Nz5NeSB5
b3VuZyByZW1lbWJyYW5jZSBjYW5ub3QgcGFyYWxsZWw8L0E+PGJyPgorPEEgTkFNRT0yLjMuNzg+
QSBmZWxsb3cgdG8gaXQuPC9BPjxicj4KKzxwPjxpPlJlLWVudGVyIE1BQ0RVRkY8L2k+PC9wPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIzPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTIuMy43OT5PIGhvcnJvciwgaG9ycm9yLCBob3Jyb3IhIFRvbmd1
ZSBub3IgaGVhcnQ8L0E+PGJyPgorPEEgTkFNRT0yLjMuODA+Q2Fubm90IGNvbmNlaXZlIG5vciBu
YW1lIHRoZWUhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyND48Yj5N
QUNCRVRIPC9iPjwvYT4KKworPEEgTkFNRT1zcGVlY2gyNT48Yj5MRU5OT1g8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTIuMy44MT5XaGF0J3MgdGhlIG1hdHRlci48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI2PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTIuMy44Mj5Db25mdXNpb24gbm93IGhhdGggbWFkZSBoaXMgbWFzdGVy
cGllY2UhPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjgzPk1vc3Qgc2FjcmlsZWdpb3VzIG11cmRlciBo
YXRoIGJyb2tlIG9wZTwvQT48YnI+Cis8QSBOQU1FPTIuMy44ND5UaGUgTG9yZCdzIGFub2ludGVk
IHRlbXBsZSwgYW5kIHN0b2xlIHRoZW5jZTwvQT48YnI+Cis8QSBOQU1FPTIuMy44NT5UaGUgbGlm
ZSBvJyB0aGUgYnVpbGRpbmchPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gyNz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuODY+V2hh
dCBpcyAndCB5b3Ugc2F5PyB0aGUgbGlmZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDI4PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4z
Ljg3Pk1lYW4geW91IGhpcyBtYWplc3R5PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMjk+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4z
Ljg4PkFwcHJvYWNoIHRoZSBjaGFtYmVyLCBhbmQgZGVzdHJveSB5b3VyIHNpZ2h0PC9BPjxicj4K
KzxBIE5BTUU9Mi4zLjg5PldpdGggYSBuZXcgR29yZ29uOiBkbyBub3QgYmlkIG1lIHNwZWFrOzwv
QT48YnI+Cis8QSBOQU1FPTIuMy45MD5TZWUsIGFuZCB0aGVuIHNwZWFrIHlvdXJzZWx2ZXMuPC9B
Pjxicj4KKzxwPjxpPkV4ZXVudCBNQUNCRVRIIGFuZCBMRU5OT1g8L2k+PC9wPgorPEEgTkFNRT0y
LjMuOTE+QXdha2UsIGF3YWtlITwvQT48YnI+Cis8QSBOQU1FPTIuMy45Mj5SaW5nIHRoZSBhbGFy
dW0tYmVsbC4gTXVyZGVyIGFuZCB0cmVhc29uITwvQT48YnI+Cis8QSBOQU1FPTIuMy45Mz5CYW5x
dW8gYW5kIERvbmFsYmFpbiEgTWFsY29sbSEgYXdha2UhPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjk0
PlNoYWtlIG9mZiB0aGlzIGRvd255IHNsZWVwLCBkZWF0aCdzIGNvdW50ZXJmZWl0LDwvQT48YnI+
Cis8QSBOQU1FPTIuMy45NT5BbmQgbG9vayBvbiBkZWF0aCBpdHNlbGYhIHVwLCB1cCwgYW5kIHNl
ZTwvQT48YnI+Cis8QSBOQU1FPTIuMy45Nj5UaGUgZ3JlYXQgZG9vbSdzIGltYWdlISBNYWxjb2xt
ISBCYW5xdW8hPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjk3PkFzIGZyb20geW91ciBncmF2ZXMgcmlz
ZSB1cCwgYW5kIHdhbGsgbGlrZSBzcHJpdGVzLDwvQT48YnI+Cis8QSBOQU1FPTIuMy45OD5UbyBj
b3VudGVuYW5jZSB0aGlzIGhvcnJvciEgUmluZyB0aGUgYmVsbC48L0E+PGJyPgorPHA+PGk+QmVs
bCByaW5nczwvaT48L3A+Cis8cD48aT5FbnRlciBMQURZIE1BQ0JFVEg8L2k+PC9wPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMwPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9Mi4zLjk5PldoYXQncyB0aGUgYnVzaW5lc3MsPC9BPjxicj4KKzxB
IE5BTUU9Mi4zLjEwMD5UaGF0IHN1Y2ggYSBoaWRlb3VzIHRydW1wZXQgY2FsbHMgdG8gcGFybGV5
PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEwMT5UaGUgc2xlZXBlcnMgb2YgdGhlIGhvdXNlPyBzcGVh
aywgc3BlYWshPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMT48Yj5N
QUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTAyPk8gZ2VudGxlIGxh
ZHksPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEwMz4nVGlzIG5vdCBmb3IgeW91IHRvIGhlYXIgd2hh
dCBJIGNhbiBzcGVhazo8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTA0PlRoZSByZXBldGl0aW9uLCBp
biBhIHdvbWFuJ3MgZWFyLDwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMDU+V291bGQgbXVyZGVyIGFz
IGl0IGZlbGwuPC9BPjxicj4KKzxwPjxpPkVudGVyIEJBTlFVTzwvaT48L3A+Cis8QSBOQU1FPTIu
My4xMDY+TyBCYW5xdW8sIEJhbnF1byw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTA3Pk91ciByb3lh
bCBtYXN0ZXIgJ3MgbXVyZGVyJ2QhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gzMj48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIu
My4xMDg+V29lLCBhbGFzITwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMDk+V2hhdCwgaW4gb3VyIGhv
dXNlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzM+PGI+QkFOUVVP
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTEwPlRvbyBjcnVlbCBhbnkgd2hl
cmUuPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjExMT5EZWFyIER1ZmYsIEkgcHJpdGhlZSwgY29udHJh
ZGljdCB0aHlzZWxmLDwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMTI+QW5kIHNheSBpdCBpcyBub3Qg
c28uPC9BPjxicj4KKzxwPjxpPlJlLWVudGVyIE1BQ0JFVEggYW5kIExFTk5PWCwgd2l0aCBST1NT
PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzND48Yj5NQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTEzPkhhZCBJIGJ1dCBkaWVkIGFuIGhv
dXIgYmVmb3JlIHRoaXMgY2hhbmNlLDwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMTQ+SSBoYWQgbGl2
ZWQgYSBibGVzc2VkIHRpbWU7IGZvciwgZnJvbSB0aGlzIGluc3RhbnQsPC9BPjxicj4KKzxBIE5B
TUU9Mi4zLjExNT5UaGVyZSAncyBub3RoaW5nIHNlcmlvdXMgaW4gbW9ydGFsaXR5OjwvQT48YnI+
Cis8QSBOQU1FPTIuMy4xMTY+QWxsIGlzIGJ1dCB0b3lzOiByZW5vd24gYW5kIGdyYWNlIGlzIGRl
YWQ7PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjExNz5UaGUgd2luZSBvZiBsaWZlIGlzIGRyYXduLCBh
bmQgdGhlIG1lcmUgbGVlczwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMTg+SXMgbGVmdCB0aGlzIHZh
dWx0IHRvIGJyYWcgb2YuPC9BPjxicj4KKzxwPjxpPkVudGVyIE1BTENPTE0gYW5kIERPTkFMQkFJ
TjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzU+PGI+RE9OQUxCQUlO
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTE5PldoYXQgaXMgYW1pc3M/PC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNj48Yj5NQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTIwPiAgICAgICAgICAgICAgICAgIFlvdSBh
cmUsIGFuZCBkbyBub3Qga25vdyd0OjwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMjE+VGhlIHNwcmlu
ZywgdGhlIGhlYWQsIHRoZSBmb3VudGFpbiBvZiB5b3VyIGJsb29kPC9BPjxicj4KKzxBIE5BTUU9
Mi4zLjEyMj5JcyBzdG9wcCdkOyB0aGUgdmVyeSBzb3VyY2Ugb2YgaXQgaXMgc3RvcHAnZC48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM3PjxiPk1BQ0RVRkY8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xMjM+WW91ciByb3lhbCBmYXRoZXIgJ3MgbXVy
ZGVyJ2QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzOD48Yj5NQUxD
T0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTI0Pk8sIGJ5IHdob20/PC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzOT48Yj5MRU5OT1g8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xMjU+VGhvc2Ugb2YgaGlzIGNoYW1iZXIsIGFz
IGl0IHNlZW0nZCwgaGFkIGRvbmUgJ3Q6PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEyNj5UaGVpciBo
YW5kcyBhbmQgZmFjZXMgd2VyZSBhbiBiYWRnZWQgd2l0aCBibG9vZDs8L0E+PGJyPgorPEEgTkFN
RT0yLjMuMTI3PlNvIHdlcmUgdGhlaXIgZGFnZ2Vycywgd2hpY2ggdW53aXBlZCB3ZSBmb3VuZDwv
QT48YnI+Cis8QSBOQU1FPTIuMy4xMjg+VXBvbiB0aGVpciBwaWxsb3dzOjwvQT48YnI+Cis8QSBO
QU1FPTIuMy4xMjk+VGhleSBzdGFyZWQsIGFuZCB3ZXJlIGRpc3RyYWN0ZWQ7IG5vIG1hbidzIGxp
ZmU8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTMwPldhcyB0byBiZSB0cnVzdGVkIHdpdGggdGhlbS48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQwPjxiPk1BQ0JFVEg8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xMzE+TywgeWV0IEkgZG8gcmVwZW50IG1l
IG9mIG15IGZ1cnksPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEzMj5UaGF0IEkgZGlkIGtpbGwgdGhl
bS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQxPjxiPk1BQ0RVRkY8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xMzM+V2hlcmVmb3JlIGRpZCB5b3Ug
c28/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Mj48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTM0PldobyBjYW4gYmUgd2lzZSwg
YW1hemVkLCB0ZW1wZXJhdGUgYW5kIGZ1cmlvdXMsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEzNT5M
b3lhbCBhbmQgbmV1dHJhbCwgaW4gYSBtb21lbnQ/IE5vIG1hbjo8L0E+PGJyPgorPEEgTkFNRT0y
LjMuMTM2PlRoZSBleHBlZGl0aW9uIG15IHZpb2xlbnQgbG92ZTwvQT48YnI+Cis8QSBOQU1FPTIu
My4xMzc+T3V0cnVuIHRoZSBwYXVzZXIsIHJlYXNvbi4gSGVyZSBsYXkgRHVuY2FuLDwvQT48YnI+
Cis8QSBOQU1FPTIuMy4xMzg+SGlzIHNpbHZlciBza2luIGxhY2VkIHdpdGggaGlzIGdvbGRlbiBi
bG9vZDs8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTM5PkFuZCBoaXMgZ2FzaCdkIHN0YWJzIGxvb2sn
ZCBsaWtlIGEgYnJlYWNoIGluIG5hdHVyZTwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNDA+Rm9yIHJ1
aW4ncyB3YXN0ZWZ1bCBlbnRyYW5jZTogdGhlcmUsIHRoZSBtdXJkZXJlcnMsPC9BPjxicj4KKzxB
IE5BTUU9Mi4zLjE0MT5TdGVlcCdkIGluIHRoZSBjb2xvdXJzIG9mIHRoZWlyIHRyYWRlLCB0aGVp
ciBkYWdnZXJzPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE0Mj5Vbm1hbm5lcmx5IGJyZWVjaCdkIHdp
dGggZ29yZTogd2hvIGNvdWxkIHJlZnJhaW4sPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE0Mz5UaGF0
IGhhZCBhIGhlYXJ0IHRvIGxvdmUsIGFuZCBpbiB0aGF0IGhlYXJ0PC9BPjxicj4KKzxBIE5BTUU9
Mi4zLjE0ND5Db3VyYWdlIHRvIG1ha2UgJ3MgbG92ZSBrbm8gd24/PC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Mz48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTIuMy4xNDU+SGVscCBtZSBoZW5jZSwgaG8hPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0ND48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0yLjMuMTQ2Pkxvb2sgdG8gdGhlIGxhZHkuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g0NT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0yLjMuMTQ3PltBc2lkZSB0byBET05BTEJBSU5dICBXaHkgZG8gd2UgaG9sZCBv
dXIgdG9uZ3Vlcyw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTQ4PlRoYXQgbW9zdCBtYXkgY2xhaW0g
dGhpcyBhcmd1bWVudCBmb3Igb3Vycz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDQ2PjxiPkRPTkFMQkFJTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4z
LjE0OT5bQXNpZGUgdG8gTUFMQ09MTV0gIFdoYXQgc2hvdWxkIGJlIHNwb2tlbiBoZXJlLDwvQT48
YnI+Cis8QSBOQU1FPTIuMy4xNTA+d2hlcmUgb3VyIGZhdGUsPC9BPjxicj4KKzxBIE5BTUU9Mi4z
LjE1MT5IaWQgaW4gYW4gYXVnZXItaG9sZSwgbWF5IHJ1c2gsIGFuZCBzZWl6ZSB1cz88L0E+PGJy
PgorPEEgTkFNRT0yLjMuMTUyPkxldCAncyBhd2F5OzwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNTM+
T3VyIHRlYXJzIGFyZSBub3QgeWV0IGJyZXcnZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDQ3PjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTIuMy4xNTQ+W0FzaWRlIHRvIERPTkFMQkFJTl0gICAgICAgIE5vciBvdXIgc3Ryb25nIHNvcnJv
dzwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNTU+VXBvbiB0aGUgZm9vdCBvZiBtb3Rpb24uPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0OD48Yj5CQU5RVU88L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNTY+TG9vayB0byB0aGUgbGFkeTo8L0E+PGJyPgor
PHA+PGk+TEFEWSBNQUNCRVRIIGlzIGNhcnJpZWQgb3V0PC9pPjwvcD4KKzxBIE5BTUU9Mi4zLjE1
Nz5BbmQgd2hlbiB3ZSBoYXZlIG91ciBuYWtlZCBmcmFpbHRpZXMgaGlkLDwvQT48YnI+Cis8QSBO
QU1FPTIuMy4xNTg+VGhhdCBzdWZmZXIgaW4gZXhwb3N1cmUsIGxldCB1cyBtZWV0LDwvQT48YnI+
Cis8QSBOQU1FPTIuMy4xNTk+QW5kIHF1ZXN0aW9uIHRoaXMgbW9zdCBibG9vZHkgcGllY2Ugb2Yg
d29yayw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTYwPlRvIGtub3cgaXQgZnVydGhlci4gRmVhcnMg
YW5kIHNjcnVwbGVzIHNoYWtlIHVzOjwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNjE+SW4gdGhlIGdy
ZWF0IGhhbmQgb2YgR29kIEkgc3RhbmQ7IGFuZCB0aGVuY2U8L0E+PGJyPgorPEEgTkFNRT0yLjMu
MTYyPkFnYWluc3QgdGhlIHVuZGl2dWxnZWQgcHJldGVuY2UgSSBmaWdodDwvQT48YnI+Cis8QSBO
QU1FPTIuMy4xNjM+T2YgdHJlYXNvbm91cyBtYWxpY2UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g0OT48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0yLjMuMTY0PkFuZCBzbyBkbyBJLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoNTA+PGI+QUxMPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMTY1
PlNvIGFsbC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUxPjxiPk1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNjY+TGV0J3MgYnJpZWZs
eSBwdXQgb24gbWFubHkgcmVhZGluZXNzLDwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNjc+QW5kIG1l
ZXQgaScgdGhlIGhhbGwgdG9nZXRoZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g1Mj48Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNjg+
V2VsbCBjb250ZW50ZWQuPC9BPjxicj4KKzxwPjxpPkV4ZXVudCBhbGwgYnV0IE1hbGNvbG0gYW5k
IERvbmFsYmFpbi48L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUzPjxi
Pk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNjk+V2hhdCB3aWxs
IHlvdSBkbz8gTGV0J3Mgbm90IGNvbnNvcnQgd2l0aCB0aGVtOjwvQT48YnI+Cis8QSBOQU1FPTIu
My4xNzA+VG8gc2hvdyBhbiB1bmZlbHQgc29ycm93IGlzIGFuIG9mZmljZTwvQT48YnI+Cis8QSBO
QU1FPTIuMy4xNzE+V2hpY2ggdGhlIGZhbHNlIG1hbiBkb2VzIGVhc3kuIEknbGwgdG8gRW5nbGFu
ZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU0PjxiPkRPTkFMQkFJ
TjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjE3Mj5UbyBJcmVsYW5kLCBJOyBv
dXIgc2VwYXJhdGVkIGZvcnR1bmU8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTczPlNoYWxsIGtlZXAg
dXMgYm90aCB0aGUgc2FmZXI6IHdoZXJlIHdlIGFyZSw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTc0
PlRoZXJlJ3MgZGFnZ2VycyBpbiBtZW4ncyBzbWlsZXM6IHRoZSBuZWFyIGluIGJsb29kLDwvQT48
YnI+Cis8QSBOQU1FPTIuMy4xNzU+VGhlIG5lYXJlciBibG9vZHkuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g1NT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0yLjMuMTc2PiAgICAgICAgICAgICAgICAgIFRoaXMgbXVyZGVyb3VzIHNoYWZ0
IHRoYXQncyBzaG90PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE3Nz5IYXRoIG5vdCB5ZXQgbGlnaHRl
ZCwgYW5kIG91ciBzYWZlc3Qgd2F5PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE3OD5JcyB0byBhdm9p
ZCB0aGUgYWltLiBUaGVyZWZvcmUsIHRvIGhvcnNlOzwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNzk+
QW5kIGxldCB1cyBub3QgYmUgZGFpbnR5IG9mIGxlYXZlLXRha2luZyw8L0E+PGJyPgorPEEgTkFN
RT0yLjMuMTgwPkJ1dCBzaGlmdCBhd2F5OiB0aGVyZSdzIHdhcnJhbnQgaW4gdGhhdCB0aGVmdDwv
QT48YnI+Cis8QSBOQU1FPTIuMy4xODE+V2hpY2ggc3RlYWxzIGl0c2VsZiwgd2hlbiB0aGVyZSdz
IG5vIG1lcmN5IGxlZnQuPC9BPjxicj4KKzxwPjxpPkV4ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVv
dGU+Cis8aDM+U0NFTkUgSVYuIE91dHNpZGUgTWFjYmV0aCdzIGNhc3RsZS48L2gzPgorPHA+PGJs
b2NrcXVvdGU+Cis8aT5FbnRlciBST1NTIGFuZCBhbiBvbGQgTWFuPC9pPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDE+PGI+T2xkIE1hbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9Mi40LjE+VGhyZWVzY29yZSBhbmQgdGVuIEkgY2FuIHJlbWVtYmVyIHdlbGw6PC9BPjxi
cj4KKzxBIE5BTUU9Mi40LjI+V2l0aGluIHRoZSB2b2x1bWUgb2Ygd2hpY2ggdGltZSBJIGhhdmUg
c2VlbjwvQT48YnI+Cis8QSBOQU1FPTIuNC4zPkhvdXJzIGRyZWFkZnVsIGFuZCB0aGluZ3Mgc3Ry
YW5nZTsgYnV0IHRoaXMgc29yZSBuaWdodDwvQT48YnI+Cis8QSBOQU1FPTIuNC40PkhhdGggdHJp
ZmxlZCBmb3JtZXIga25vd2luZ3MuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gyPjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuNC41PkFoLCBn
b29kIGZhdGhlciw8L0E+PGJyPgorPEEgTkFNRT0yLjQuNj5UaG91IHNlZXN0LCB0aGUgaGVhdmVu
cywgYXMgdHJvdWJsZWQgd2l0aCBtYW4ncyBhY3QsPC9BPjxicj4KKzxBIE5BTUU9Mi40Ljc+VGhy
ZWF0ZW4gaGlzIGJsb29keSBzdGFnZTogYnkgdGhlIGNsb2NrLCAndGlzIGRheSw8L0E+PGJyPgor
PEEgTkFNRT0yLjQuOD5BbmQgeWV0IGRhcmsgbmlnaHQgc3RyYW5nbGVzIHRoZSB0cmF2ZWxsaW5n
IGxhbXA6PC9BPjxicj4KKzxBIE5BTUU9Mi40Ljk+SXMndCBuaWdodCdzIHByZWRvbWluYW5jZSwg
b3IgdGhlIGRheSdzIHNoYW1lLDwvQT48YnI+Cis8QSBOQU1FPTIuNC4xMD5UaGF0IGRhcmtuZXNz
IGRvZXMgdGhlIGZhY2Ugb2YgZWFydGggZW50b21iLDwvQT48YnI+Cis8QSBOQU1FPTIuNC4xMT5X
aGVuIGxpdmluZyBsaWdodCBzaG91bGQga2lzcyBpdD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDM+PGI+T2xkIE1hbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9Mi40LjEyPidUaXMgdW5uYXR1cmFsLDwvQT48YnI+Cis8QSBOQU1FPTIuNC4xMz5FdmVuIGxp
a2UgdGhlIGRlZWQgdGhhdCdzIGRvbmUuIE9uIFR1ZXNkYXkgbGFzdCw8L0E+PGJyPgorPEEgTkFN
RT0yLjQuMTQ+QSBmYWxjb24sIHRvd2VyaW5nIGluIGhlciBwcmlkZSBvZiBwbGFjZSw8L0E+PGJy
PgorPEEgTkFNRT0yLjQuMTU+V2FzIGJ5IGEgbW91c2luZyBvd2wgaGF3aydkIGF0IGFuZCBraWxs
J2QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPlJPU1M8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuNC4xNj5BbmQgRHVuY2FuJ3MgaG9yc2VzLS1h
IHRoaW5nIG1vc3Qgc3RyYW5nZSBhbmQgY2VydGFpbi0tPC9BPjxicj4KKzxBIE5BTUU9Mi40LjE3
PkJlYXV0ZW91cyBhbmQgc3dpZnQsIHRoZSBtaW5pb25zIG9mIHRoZWlyIHJhY2UsPC9BPjxicj4K
KzxBIE5BTUU9Mi40LjE4PlR1cm4nZCB3aWxkIGluIG5hdHVyZSwgYnJva2UgdGhlaXIgc3RhbGxz
LCBmbHVuZyBvdXQsPC9BPjxicj4KKzxBIE5BTUU9Mi40LjE5PkNvbnRlbmRpbmcgJ2dhaW5zdCBv
YmVkaWVuY2UsIGFzIHRoZXkgd291bGQgbWFrZTwvQT48YnI+Cis8QSBOQU1FPTIuNC4yMD5XYXIg
d2l0aCBtYW5raW5kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48
Yj5PbGQgTWFuPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjQuMjE+J1RpcyBzYWlk
IHRoZXkgZWF0IGVhY2ggb3RoZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2g2PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuNC4yMj5UaGV5
IGRpZCBzbywgdG8gdGhlIGFtYXplbWVudCBvZiBtaW5lIGV5ZXM8L0E+PGJyPgorPEEgTkFNRT0y
LjQuMjM+VGhhdCBsb29rJ2QgdXBvbid0LiBIZXJlIGNvbWVzIHRoZSBnb29kIE1hY2R1ZmYuPC9B
Pjxicj4KKzxwPjxpPkVudGVyIE1BQ0RVRkY8L2k+PC9wPgorPEEgTkFNRT0yLjQuMjQ+SG93IGdv
ZXMgdGhlIHdvcmxkLCBzaXIsIG5vdz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDc+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjI1
PldoeSwgc2VlIHlvdSBub3Q/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g4PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuNC4yNj5Jcyd0IGtu
b3duIHdobyBkaWQgdGhpcyBtb3JlIHRoYW4gYmxvb2R5IGRlZWQ/PC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTIuNC4yNz5UaG9zZSB0aGF0IE1hY2JldGggaGF0aCBzbGFpbi48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPlJPU1M8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTIuNC4yOD5BbGFzLCB0aGUgZGF5ITwvQT48YnI+Cis8QSBOQU1FPTIu
NC4yOT5XaGF0IGdvb2QgY291bGQgdGhleSBwcmV0ZW5kPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9Mi40LjMwPlRoZXkgd2VyZSBzdWJvcm4nZDo8L0E+PGJyPgorPEEgTkFNRT0yLjQuMzE+
TWFsY29sbSBhbmQgRG9uYWxiYWluLCB0aGUga2luZydzIHR3byBzb25zLDwvQT48YnI+Cis8QSBO
QU1FPTIuNC4zMj5BcmUgc3RvbCduIGF3YXkgYW5kIGZsZWQ7IHdoaWNoIHB1dHMgdXBvbiB0aGVt
PC9BPjxicj4KKzxBIE5BTUU9Mi40LjMzPlN1c3BpY2lvbiBvZiB0aGUgZGVlZC48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPlJPU1M8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTIuNC4zND4nR2FpbnN0IG5hdHVyZSBzdGlsbCE8L0E+PGJyPgorPEEg
TkFNRT0yLjQuMzU+VGhyaWZ0bGVzcyBhbWJpdGlvbiwgdGhhdCB3aWx0IHJhdmluIHVwPC9BPjxi
cj4KKzxBIE5BTUU9Mi40LjM2PlRoaW5lIG93biBsaWZlJ3MgbWVhbnMhIFRoZW4gJ3RpcyBtb3N0
IGxpa2U8L0E+PGJyPgorPEEgTkFNRT0yLjQuMzc+VGhlIHNvdmVyZWlnbnR5IHdpbGwgZmFsbCB1
cG9uIE1hY2JldGguPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48
Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjQuMzg+SGUgaXMgYWxy
ZWFkeSBuYW1lZCwgYW5kIGdvbmUgdG8gU2NvbmU8L0E+PGJyPgorPEEgTkFNRT0yLjQuMzk+VG8g
YmUgaW52ZXN0ZWQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxND48
Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjQuNDA+ICAgICAgICAgICAg
ICAgICAgV2hlcmUgaXMgRHVuY2FuJ3MgYm9keT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDE1PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTIuNC40MT5DYXJyaWVkIHRvIENvbG1la2lsbCw8L0E+PGJyPgorPEEgTkFNRT0yLjQuNDI+VGhl
IHNhY3JlZCBzdG9yZWhvdXNlIG9mIGhpcyBwcmVkZWNlc3NvcnMsPC9BPjxicj4KKzxBIE5BTUU9
Mi40LjQzPkFuZCBndWFyZGlhbiBvZiB0aGVpciBib25lcy48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDE2PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTIuNC40ND5XaWxsIHlvdSB0byBTY29uZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDE3PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTIuNC40NT5ObywgY291c2luLCBJJ2xsIHRvIEZpZmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxOD48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0yLjQuNDY+V2VsbCwgSSB3aWxsIHRoaXRoZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxOT48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0yLjQuNDc+V2VsbCwgbWF5IHlvdSBzZWUgdGhpbmdzIHdlbGwgZG9uZSB0aGVyZTogYWRpZXUh
PC9BPjxicj4KKzxBIE5BTUU9Mi40LjQ4Pkxlc3Qgb3VyIG9sZCByb2JlcyBzaXQgZWFzaWVyIHRo
YW4gb3VyIG5ldyE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIwPjxi
PlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuNC40OT5GYXJld2VsbCwgZmF0
aGVyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjE+PGI+T2xkIE1h
bjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjUwPkdvZCdzIGJlbmlzb24gZ28g
d2l0aCB5b3U7IGFuZCB3aXRoIHRob3NlPC9BPjxicj4KKzxBIE5BTUU9Mi40LjUxPlRoYXQgd291
bGQgbWFrZSBnb29kIG9mIGJhZCwgYW5kIGZyaWVuZHMgb2YgZm9lcyE8L0E+PGJyPgorPHA+PGk+
RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT48cD4KKzxIMz5BQ1QgSUlJPC9oMz4KKzxoMz5T
Q0VORSBJLiBGb3JyZXMuIFRoZSBwYWxhY2UuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50
ZXIgQkFOUVVPPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+QkFOUVVP
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMT5UaG91IGhhc3QgaXQgbm93OiBr
aW5nLCBDYXdkb3IsIEdsYW1pcywgYWxsLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4yPkFzIHRoZSB3
ZWlyZCB3b21lbiBwcm9taXNlZCwgYW5kLCBJIGZlYXIsPC9BPjxicj4KKzxBIE5BTUU9My4xLjM+
VGhvdSBwbGF5J2RzdCBtb3N0IGZvdWxseSBmb3IndDogeWV0IGl0IHdhcyBzYWlkPC9BPjxicj4K
KzxBIE5BTUU9My4xLjQ+SXQgc2hvdWxkIG5vdCBzdGFuZCBpbiB0aHkgcG9zdGVyaXR5LDwvQT48
YnI+Cis8QSBOQU1FPTMuMS41PkJ1dCB0aGF0IG15c2VsZiBzaG91bGQgYmUgdGhlIHJvb3QgYW5k
IGZhdGhlcjwvQT48YnI+Cis8QSBOQU1FPTMuMS42Pk9mIG1hbnkga2luZ3MuIElmIHRoZXJlIGNv
bWUgdHJ1dGggZnJvbSB0aGVtLS08L0E+PGJyPgorPEEgTkFNRT0zLjEuNz5BcyB1cG9uIHRoZWUs
IE1hY2JldGgsIHRoZWlyIHNwZWVjaGVzIHNoaW5lLS08L0E+PGJyPgorPEEgTkFNRT0zLjEuOD5X
aHksIGJ5IHRoZSB2ZXJpdGllcyBvbiB0aGVlIG1hZGUgZ29vZCw8L0E+PGJyPgorPEEgTkFNRT0z
LjEuOT5NYXkgdGhleSBub3QgYmUgbXkgb3JhY2xlcyBhcyB3ZWxsLDwvQT48YnI+Cis8QSBOQU1F
PTMuMS4xMD5BbmQgc2V0IG1lIHVwIGluIGhvcGU/IEJ1dCBodXNoISBubyBtb3JlLjwvQT48YnI+
Cis8cD48aT5TZW5uZXQgc291bmRlZC4gRW50ZXIgTUFDQkVUSCwgYXMga2luZywgTEFEWSAgTUFD
QkVUSCwgYXMgcXVlZW4sIExFTk5PWCwgUk9TUywgTG9yZHMsIExhZGllcywgYW5kIEF0dGVuZGFu
dHM8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+TUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjExPkhlcmUncyBvdXIgY2hpZWYgZ3Vl
c3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPkxBRFkgTUFD
QkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjEyPklmIGhlIGhhZCBiZWVu
IGZvcmdvdHRlbiw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTM+SXQgaGFkIGJlZW4gYXMgYSBnYXAg
aW4gb3VyIGdyZWF0IGZlYXN0LDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xND5BbmQgYWxsLXRoaW5n
IHVuYmVjb21pbmcuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Pjxi
Pk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4xNT5Uby1uaWdodCB3
ZSBob2xkIGEgc29sZW1uIHN1cHBlciBzaXIsPC9BPjxicj4KKzxBIE5BTUU9My4xLjE2PkFuZCBJ
J2xsIHJlcXVlc3QgeW91ciBwcmVzZW5jZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDU+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEu
MTc+TGV0IHlvdXIgaGlnaG5lc3M8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTg+Q29tbWFuZCB1cG9u
IG1lOyB0byB0aGUgd2hpY2ggbXkgZHV0aWVzPC9BPjxicj4KKzxBIE5BTUU9My4xLjE5PkFyZSB3
aXRoIGEgbW9zdCBpbmRpc3NvbHVibGUgdGllPC9BPjxicj4KKzxBIE5BTUU9My4xLjIwPkZvciBl
dmVyIGtuaXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2PjxiPk1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4yMT4gICAgICAgICAgICAg
ICAgICBSaWRlIHlvdSB0aGlzIGFmdGVybm9vbj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDc+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0z
LjEuMjI+QXksIG15IGdvb2QgbG9yZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDg+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjIz
PldlIHNob3VsZCBoYXZlIGVsc2UgZGVzaXJlZCB5b3VyIGdvb2QgYWR2aWNlLDwvQT48YnI+Cis8
QSBOQU1FPTMuMS4yND5XaGljaCBzdGlsbCBoYXRoIGJlZW4gYm90aCBncmF2ZSBhbmQgcHJvc3Bl
cm91cyw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMjU+SW4gdGhpcyBkYXkncyBjb3VuY2lsOyBidXQg
d2UnbGwgdGFrZSB0by1tb3Jyb3cuPC9BPjxicj4KKzxBIE5BTUU9My4xLjI2PklzJ3QgZmFyIHlv
dSByaWRlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5CQU5R
VU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4yNz5BcyBmYXIsIG15IGxvcmQs
IGFzIHdpbGwgZmlsbCB1cCB0aGUgdGltZTwvQT48YnI+Cis8QSBOQU1FPTMuMS4yOD4nVHdpeHQg
dGhpcyBhbmQgc3VwcGVyOiBnbyBub3QgbXkgaG9yc2UgdGhlIGJldHRlciw8L0E+PGJyPgorPEEg
TkFNRT0zLjEuMjk+SSBtdXN0IGJlY29tZSBhIGJvcnJvd2VyIG9mIHRoZSBuaWdodDwvQT48YnI+
Cis8QSBOQU1FPTMuMS4zMD5Gb3IgYSBkYXJrIGhvdXIgb3IgdHdhaW4uPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjEuMzE+RmFpbCBub3Qgb3VyIGZlYXN0LjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0zLjEuMzI+TXkgbG9yZCwgSSB3aWxsIG5vdC48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTMuMS4zMz5XZSBoZWFyLCBvdXIgYmxvb2R5IGNvdXNpbnMgYXJlIGJlc3Rvdydk
PC9BPjxicj4KKzxBIE5BTUU9My4xLjM0PkluIEVuZ2xhbmQgYW5kIGluIElyZWxhbmQsIG5vdCBj
b25mZXNzaW5nPC9BPjxicj4KKzxBIE5BTUU9My4xLjM1PlRoZWlyIGNydWVsIHBhcnJpY2lkZSwg
ZmlsbGluZyB0aGVpciBoZWFyZXJzPC9BPjxicj4KKzxBIE5BTUU9My4xLjM2PldpdGggc3RyYW5n
ZSBpbnZlbnRpb246IGJ1dCBvZiB0aGF0IHRvLW1vcnJvdyw8L0E+PGJyPgorPEEgTkFNRT0zLjEu
Mzc+V2hlbiB0aGVyZXdpdGhhbCB3ZSBzaGFsbCBoYXZlIGNhdXNlIG9mIHN0YXRlPC9BPjxicj4K
KzxBIE5BTUU9My4xLjM4PkNyYXZpbmcgdXMgam9pbnRseS4gSGllIHlvdSB0byBob3JzZTogYWRp
ZXUsPC9BPjxicj4KKzxBIE5BTUU9My4xLjM5PlRpbGwgeW91IHJldHVybiBhdCBuaWdodC4gR29l
cyBGbGVhbmNlIHdpdGggeW91PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMTM+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuNDA+QXks
IG15IGdvb2QgbG9yZDogb3VyIHRpbWUgZG9lcyBjYWxsIHVwb24gJ3MuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxND48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjEuNDE+SSB3aXNoIHlvdXIgaG9yc2VzIHN3aWZ0IGFuZCBzdXJlIG9m
IGZvb3Q7PC9BPjxicj4KKzxBIE5BTUU9My4xLjQyPkFuZCBzbyBJIGRvIGNvbW1lbmQgeW91IHRv
IHRoZWlyIGJhY2tzLiBGYXJld2VsbC48L0E+PGJyPgorPHA+PGk+RXhpdCBCQU5RVU88L2k+PC9w
PgorPEEgTkFNRT0zLjEuNDM+TGV0IGV2ZXJ5IG1hbiBiZSBtYXN0ZXIgb2YgaGlzIHRpbWU8L0E+
PGJyPgorPEEgTkFNRT0zLjEuNDQ+VGlsbCBzZXZlbiBhdCBuaWdodDogdG8gbWFrZSBzb2NpZXR5
PC9BPjxicj4KKzxBIE5BTUU9My4xLjQ1PlRoZSBzd2VldGVyIHdlbGNvbWUsIHdlIHdpbGwga2Vl
cCBvdXJzZWxmPC9BPjxicj4KKzxBIE5BTUU9My4xLjQ2PlRpbGwgc3VwcGVyLXRpbWUgYWxvbmU6
IHdoaWxlIHRoZW4sIEdvZCBiZSB3aXRoIHlvdSE8L0E+PGJyPgorPHA+PGk+RXhldW50IGFsbCBi
dXQgTUFDQkVUSCwgYW5kIGFuIGF0dGVuZGFudDwvaT48L3A+Cis8QSBOQU1FPTMuMS40Nz5TaXJy
YWgsIGEgd29yZCB3aXRoIHlvdTogYXR0ZW5kIHRob3NlIG1lbjwvQT48YnI+Cis8QSBOQU1FPTMu
MS40OD5PdXIgcGxlYXN1cmU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxNT48Yj5BVFRFTkRBTlQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS40OT5U
aGV5IGFyZSwgbXkgbG9yZCwgd2l0aG91dCB0aGUgcGFsYWNlIGdhdGUuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNj48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjEuNTA+QnJpbmcgdGhlbSBiZWZvcmUgdXMuPC9BPjxicj4KKzxwPjxp
PkV4aXQgQXR0ZW5kYW50PC9pPjwvcD4KKzxBIE5BTUU9My4xLjUxPlRvIGJlIHRodXMgaXMgbm90
aGluZzs8L0E+PGJyPgorPEEgTkFNRT0zLjEuNTI+QnV0IHRvIGJlIHNhZmVseSB0aHVzLi0tT3Vy
IGZlYXJzIGluIEJhbnF1bzwvQT48YnI+Cis8QSBOQU1FPTMuMS41Mz5TdGljayBkZWVwOyBhbmQg
aW4gaGlzIHJveWFsdHkgb2YgbmF0dXJlPC9BPjxicj4KKzxBIE5BTUU9My4xLjU0PlJlaWducyB0
aGF0IHdoaWNoIHdvdWxkIGJlIGZlYXInZDogJ3RpcyBtdWNoIGhlIGRhcmVzOzwvQT48YnI+Cis8
QSBOQU1FPTMuMS41NT5BbmQsIHRvIHRoYXQgZGF1bnRsZXNzIHRlbXBlciBvZiBoaXMgbWluZCw8
L0E+PGJyPgorPEEgTkFNRT0zLjEuNTY+SGUgaGF0aCBhIHdpc2RvbSB0aGF0IGRvdGggZ3VpZGUg
aGlzIHZhbG91cjwvQT48YnI+Cis8QSBOQU1FPTMuMS41Nz5UbyBhY3QgaW4gc2FmZXR5LiBUaGVy
ZSBpcyBub25lIGJ1dCBoZTwvQT48YnI+Cis8QSBOQU1FPTMuMS41OD5XaG9zZSBiZWluZyBJIGRv
IGZlYXI6IGFuZCwgdW5kZXIgaGltLDwvQT48YnI+Cis8QSBOQU1FPTMuMS41OT5NeSBHZW5pdXMg
aXMgcmVidWtlZDsgYXMsIGl0IGlzIHNhaWQsPC9BPjxicj4KKzxBIE5BTUU9My4xLjYwPk1hcmsg
QW50b255J3Mgd2FzIGJ5IENhZXNhci4gSGUgY2hpZCB0aGUgc2lzdGVyczwvQT48YnI+Cis8QSBO
QU1FPTMuMS42MT5XaGVuIGZpcnN0IHRoZXkgcHV0IHRoZSBuYW1lIG9mIGtpbmcgdXBvbiBtZSw8
L0E+PGJyPgorPEEgTkFNRT0zLjEuNjI+QW5kIGJhZGUgdGhlbSBzcGVhayB0byBoaW06IHRoZW4g
cHJvcGhldC1saWtlPC9BPjxicj4KKzxBIE5BTUU9My4xLjYzPlRoZXkgaGFpbCdkIGhpbSBmYXRo
ZXIgdG8gYSBsaW5lIG9mIGtpbmdzOjwvQT48YnI+Cis8QSBOQU1FPTMuMS42ND5VcG9uIG15IGhl
YWQgdGhleSBwbGFjZWQgYSBmcnVpdGxlc3MgY3Jvd24sPC9BPjxicj4KKzxBIE5BTUU9My4xLjY1
PkFuZCBwdXQgYSBiYXJyZW4gc2NlcHRyZSBpbiBteSBncmlwZSw8L0E+PGJyPgorPEEgTkFNRT0z
LjEuNjY+VGhlbmNlIHRvIGJlIHdyZW5jaCdkIHdpdGggYW4gdW5saW5lYWwgaGFuZCw8L0E+PGJy
PgorPEEgTkFNRT0zLjEuNjc+Tm8gc29uIG9mIG1pbmUgc3VjY2VlZGluZy4gSWYgJ3QgYmUgc28s
PC9BPjxicj4KKzxBIE5BTUU9My4xLjY4PkZvciBCYW5xdW8ncyBpc3N1ZSBoYXZlIEkgZmlsZWQg
bXkgbWluZDs8L0E+PGJyPgorPEEgTkFNRT0zLjEuNjk+Rm9yIHRoZW0gdGhlIGdyYWNpb3VzIER1
bmNhbiBoYXZlIEkgbXVyZGVyJ2Q7PC9BPjxicj4KKzxBIE5BTUU9My4xLjcwPlB1dCByYW5jb3Vy
cyBpbiB0aGUgdmVzc2VsIG9mIG15IHBlYWNlPC9BPjxicj4KKzxBIE5BTUU9My4xLjcxPk9ubHkg
Zm9yIHRoZW07IGFuZCBtaW5lIGV0ZXJuYWwgamV3ZWw8L0E+PGJyPgorPEEgTkFNRT0zLjEuNzI+
R2l2ZW4gdG8gdGhlIGNvbW1vbiBlbmVteSBvZiBtYW4sPC9BPjxicj4KKzxBIE5BTUU9My4xLjcz
PlRvIG1ha2UgdGhlbSBraW5ncywgdGhlIHNlZWQgb2YgQmFucXVvIGtpbmdzITwvQT48YnI+Cis8
QSBOQU1FPTMuMS43ND5SYXRoZXIgdGhhbiBzbywgY29tZSBmYXRlIGludG8gdGhlIGxpc3QuPC9B
Pjxicj4KKzxBIE5BTUU9My4xLjc1PkFuZCBjaGFtcGlvbiBtZSB0byB0aGUgdXR0ZXJhbmNlISBX
aG8ncyB0aGVyZSE8L0E+PGJyPgorPHA+PGk+UmUtZW50ZXIgQXR0ZW5kYW50LCB3aXRoIHR3byBN
dXJkZXJlcnM8L2k+PC9wPgorPEEgTkFNRT0zLjEuNzY+Tm93IGdvIHRvIHRoZSBkb29yLCBhbmQg
c3RheSB0aGVyZSB0aWxsIHdlIGNhbGwuPC9BPjxicj4KKzxwPjxpPkV4aXQgQXR0ZW5kYW50PC9p
PjwvcD4KKzxBIE5BTUU9My4xLjc3PldhcyBpdCBub3QgeWVzdGVyZGF5IHdlIHNwb2tlIHRvZ2V0
aGVyPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+Rmlyc3Qg
TXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS43OD5JdCB3YXMsIHNv
IHBsZWFzZSB5b3VyIGhpZ2huZXNzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMTg+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjc5
PldlbGwgdGhlbiwgbm93PC9BPjxicj4KKzxBIE5BTUU9My4xLjgwPkhhdmUgeW91IGNvbnNpZGVy
J2Qgb2YgbXkgc3BlZWNoZXM/IEtub3c8L0E+PGJyPgorPEEgTkFNRT0zLjEuODE+VGhhdCBpdCB3
YXMgaGUgaW4gdGhlIHRpbWVzIHBhc3Qgd2hpY2ggaGVsZCB5b3U8L0E+PGJyPgorPEEgTkFNRT0z
LjEuODI+U28gdW5kZXIgZm9ydHVuZSwgd2hpY2ggeW91IHRob3VnaHQgaGFkIGJlZW48L0E+PGJy
PgorPEEgTkFNRT0zLjEuODM+T3VyIGlubm9jZW50IHNlbGY6IHRoaXMgSSBtYWRlIGdvb2QgdG8g
eW91PC9BPjxicj4KKzxBIE5BTUU9My4xLjg0PkluIG91ciBsYXN0IGNvbmZlcmVuY2UsIHBhc3Mn
ZCBpbiBwcm9iYXRpb24gd2l0aCB5b3UsPC9BPjxicj4KKzxBIE5BTUU9My4xLjg1PkhvdyB5b3Ug
d2VyZSBib3JuZSBpbiBoYW5kLCBob3cgY3Jvc3MnZCw8L0E+PGJyPgorPEEgTkFNRT0zLjEuODY+
dGhlIGluc3RydW1lbnRzLDwvQT48YnI+Cis8QSBOQU1FPTMuMS44Nz5XaG8gd3JvdWdodCB3aXRo
IHRoZW0sIGFuZCBhbGwgdGhpbmdzIGVsc2UgdGhhdCBtaWdodDwvQT48YnI+Cis8QSBOQU1FPTMu
MS44OD5UbyBoYWxmIGEgc291bCBhbmQgdG8gYSBub3Rpb24gY3JhemVkPC9BPjxicj4KKzxBIE5B
TUU9My4xLjg5PlNheSAnVGh1cyBkaWQgQmFucXVvLic8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDE5PjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0zLjEuOTA+WW91IG1hZGUgaXQga25vd24gdG8gdXMuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjEuOTE+SSBkaWQgc28sIGFuZCB3ZW50IGZ1cnRoZXIsIHdoaWNoIGlz
IG5vdzwvQT48YnI+Cis8QSBOQU1FPTMuMS45Mj5PdXIgcG9pbnQgb2Ygc2Vjb25kIG1lZXRpbmcu
IERvIHlvdSBmaW5kPC9BPjxicj4KKzxBIE5BTUU9My4xLjkzPllvdXIgcGF0aWVuY2Ugc28gcHJl
ZG9taW5hbnQgaW4geW91ciBuYXR1cmU8L0E+PGJyPgorPEEgTkFNRT0zLjEuOTQ+VGhhdCB5b3Ug
Y2FuIGxldCB0aGlzIGdvPyBBcmUgeW91IHNvIGdvc3BlbGwnZDwvQT48YnI+Cis8QSBOQU1FPTMu
MS45NT5UbyBwcmF5IGZvciB0aGlzIGdvb2QgbWFuIGFuZCBmb3IgaGlzIGlzc3VlLDwvQT48YnI+
Cis8QSBOQU1FPTMuMS45Nj5XaG9zZSBoZWF2eSBoYW5kIGhhdGggYm93J2QgeW91IHRvIHRoZSBn
cmF2ZTwvQT48YnI+Cis8QSBOQU1FPTMuMS45Nz5BbmQgYmVnZ2FyJ2QgeW91cnMgZm9yIGV2ZXI/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMT48Yj5GaXJzdCBNdXJk
ZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjk4PldlIGFyZSBtZW4sIG15
IGxpZWdlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjI+PGI+TUFD
QkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjk5PkF5LCBpbiB0aGUgY2F0
YWxvZ3VlIHllIGdvIGZvciBtZW47PC9BPjxicj4KKzxBIE5BTUU9My4xLjEwMD5BcyBob3VuZHMg
YW5kIGdyZXlob3VuZHMsIG1vbmdyZWxzLCBzcGFuaWVscywgY3Vycyw8L0E+PGJyPgorPEEgTkFN
RT0zLjEuMTAxPlNob3VnaHMsIHdhdGVyLXJ1Z3MgYW5kIGRlbWktd29sdmVzLCBhcmUgY2xlcHQ8
L0E+PGJyPgorPEEgTkFNRT0zLjEuMTAyPkFsbCBieSB0aGUgbmFtZSBvZiBkb2dzOiB0aGUgdmFs
dWVkIGZpbGU8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTAzPkRpc3Rpbmd1aXNoZXMgdGhlIHN3aWZ0
LCB0aGUgc2xvdywgdGhlIHN1YnRsZSw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTA0PlRoZSBob3Vz
ZWtlZXBlciwgdGhlIGh1bnRlciwgZXZlcnkgb25lPC9BPjxicj4KKzxBIE5BTUU9My4xLjEwNT5B
Y2NvcmRpbmcgdG8gdGhlIGdpZnQgd2hpY2ggYm91bnRlb3VzIG5hdHVyZTwvQT48YnI+Cis8QSBO
QU1FPTMuMS4xMDY+SGF0aCBpbiBoaW0gY2xvc2VkOyB3aGVyZWJ5IGhlIGRvZXMgcmVjZWl2ZTwv
QT48YnI+Cis8QSBOQU1FPTMuMS4xMDc+UGFydGljdWxhciBhZGRpdGlvbi4gZnJvbSB0aGUgYmls
bDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMDg+VGhhdCB3cml0ZXMgdGhlbSBhbGwgYWxpa2U6IGFu
ZCBzbyBvZiBtZW4uPC9BPjxicj4KKzxBIE5BTUU9My4xLjEwOT5Ob3csIGlmIHlvdSBoYXZlIGEg
c3RhdGlvbiBpbiB0aGUgZmlsZSw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTEwPk5vdCBpJyB0aGUg
d29yc3QgcmFuayBvZiBtYW5ob29kLCBzYXkgJ3Q7PC9BPjxicj4KKzxBIE5BTUU9My4xLjExMT5B
bmQgSSB3aWxsIHB1dCB0aGF0IGJ1c2luZXNzIGluIHlvdXIgYm9zb21zLDwvQT48YnI+Cis8QSBO
QU1FPTMuMS4xMTI+V2hvc2UgZXhlY3V0aW9uIHRha2VzIHlvdXIgZW5lbXkgb2ZmLDwvQT48YnI+
Cis8QSBOQU1FPTMuMS4xMTM+R3JhcHBsZXMgeW91IHRvIHRoZSBoZWFydCBhbmQgbG92ZSBvZiB1
cyw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTE0PldobyB3ZWFyIG91ciBoZWFsdGggYnV0IHNpY2ts
eSBpbiBoaXMgbGlmZSw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTE1PldoaWNoIGluIGhpcyBkZWF0
aCB3ZXJlIHBlcmZlY3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gy
Mz48Yj5TZWNvbmQgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4x
MTY+SSBhbSBvbmUsIG15IGxpZWdlLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMTc+V2hvbSB0aGUg
dmlsZSBibG93cyBhbmQgYnVmZmV0cyBvZiB0aGUgd29ybGQ8L0E+PGJyPgorPEEgTkFNRT0zLjEu
MTE4PkhhdmUgc28gaW5jZW5zZWQgdGhhdCBJIGFtIHJlY2tsZXNzIHdoYXQ8L0E+PGJyPgorPEEg
TkFNRT0zLjEuMTE5PkkgZG8gdG8gc3BpdGUgdGhlIHdvcmxkLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMjQ+PGI+Rmlyc3QgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTMuMS4xMjA+QW5kIEkgYW5vdGhlcjwvQT48YnI+Cis8QSBOQU1FPTMu
MS4xMjE+U28gd2Vhcnkgd2l0aCBkaXNhc3RlcnMsIHR1Z2cnZCB3aXRoIGZvcnR1bmUsPC9BPjxi
cj4KKzxBIE5BTUU9My4xLjEyMj5UaGF0IEkgd291bGQgc2V0IG15IGxpZSBvbiBhbnkgY2hhbmNl
LDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMjM+VG8gbWVuZCBpdCwgb3IgYmUgcmlkIG9uJ3QuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNT48Yj5NQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMTI0PkJvdGggb2YgeW91PC9BPjxicj4KKzxB
IE5BTUU9My4xLjEyNT5Lbm93IEJhbnF1byB3YXMgeW91ciBlbmVteS48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI2PjxiPkJvdGggTXVyZGVyZXJzPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMTI2PlRydWUsIG15IGxvcmQuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjEuMTI3PlNvIGlzIGhlIG1pbmU7IGFuZCBpbiBzdWNoIGJsb29keSBk
aXN0YW5jZSw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTI4PlRoYXQgZXZlcnkgbWludXRlIG9mIGhp
cyBiZWluZyB0aHJ1c3RzPC9BPjxicj4KKzxBIE5BTUU9My4xLjEyOT5BZ2FpbnN0IG15IG5lYXIn
c3Qgb2YgbGlmZTogYW5kIHRob3VnaCBJIGNvdWxkPC9BPjxicj4KKzxBIE5BTUU9My4xLjEzMD5X
aXRoIGJhcmVmYWNlZCBwb3dlciBzd2VlcCBoaW0gZnJvbSBteSBzaWdodDwvQT48YnI+Cis8QSBO
QU1FPTMuMS4xMzE+QW5kIGJpZCBteSB3aWxsIGF2b3VjaCBpdCwgeWV0IEkgbXVzdCBub3QsPC9B
Pjxicj4KKzxBIE5BTUU9My4xLjEzMj5Gb3IgY2VydGFpbiBmcmllbmRzIHRoYXQgYXJlIGJvdGgg
aGlzIGFuZCBtaW5lLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMzM+V2hvc2UgbG92ZXMgSSBtYXkg
bm90IGRyb3AsIGJ1dCB3YWlsIGhpcyBmYWxsPC9BPjxicj4KKzxBIE5BTUU9My4xLjEzND5XaG8g
SSBteXNlbGYgc3RydWNrIGRvd247IGFuZCB0aGVuY2UgaXQgaXMsPC9BPjxicj4KKzxBIE5BTUU9
My4xLjEzNT5UaGF0IEkgdG8geW91ciBhc3Npc3RhbmNlIGRvIG1ha2UgbG92ZSw8L0E+PGJyPgor
PEEgTkFNRT0zLjEuMTM2Pk1hc2tpbmcgdGhlIGJ1c2luZXNzIGZyb20gdGhlIGNvbW1vbiBleWU8
L0E+PGJyPgorPEEgTkFNRT0zLjEuMTM3PkZvciBzdW5kcnkgd2VpZ2h0eSByZWFzb25zLjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjg+PGI+U2Vjb25kIE11cmRlcmVy
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMTM4PldlIHNoYWxsLCBteSBsb3Jk
LDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMzk+UGVyZm9ybSB3aGF0IHlvdSBjb21tYW5kIHVzLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjk+PGI+Rmlyc3QgTXVyZGVy
ZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4xNDA+VGhvdWdoIG91ciBsaXZl
cy0tPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMD48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMTQxPllvdXIgc3Bpcml0cyBzaGlu
ZSB0aHJvdWdoIHlvdS4gV2l0aGluIHRoaXMgaG91ciBhdCBtb3N0PC9BPjxicj4KKzxBIE5BTUU9
My4xLjE0Mj5JIHdpbGwgYWR2aXNlIHlvdSB3aGVyZSB0byBwbGFudCB5b3Vyc2VsdmVzOzwvQT48
YnI+Cis8QSBOQU1FPTMuMS4xNDM+QWNxdWFpbnQgeW91IHdpdGggdGhlIHBlcmZlY3Qgc3B5IG8n
IHRoZSB0aW1lLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xNDQ+VGhlIG1vbWVudCBvbid0OyBmb3In
dCBtdXN0IGJlIGRvbmUgdG8tbmlnaHQsPC9BPjxicj4KKzxBIE5BTUU9My4xLjE0NT5BbmQgc29t
ZXRoaW5nIGZyb20gdGhlIHBhbGFjZTsgYWx3YXlzIHRob3VnaHQ8L0E+PGJyPgorPEEgTkFNRT0z
LjEuMTQ2PlRoYXQgSSByZXF1aXJlIGEgY2xlYXJuZXNzOiBhbmQgd2l0aCBoaW0tLTwvQT48YnI+
Cis8QSBOQU1FPTMuMS4xNDc+VG8gbGVhdmUgbm8gcnVicyBub3IgYm90Y2hlcyBpbiB0aGUgd29y
ay0tPC9BPjxicj4KKzxBIE5BTUU9My4xLjE0OD5GbGVhbmNlIGhpcyBzb24sIHRoYXQga2VlcHMg
aGltIGNvbXBhbnksPC9BPjxicj4KKzxBIE5BTUU9My4xLjE0OT5XaG9zZSBhYnNlbmNlIGlzIG5v
IGxlc3MgbWF0ZXJpYWwgdG8gbWU8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTUwPlRoYW4gaXMgaGlz
IGZhdGhlcidzLCBtdXN0IGVtYnJhY2UgdGhlIGZhdGU8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTUx
Pk9mIHRoYXQgZGFyayBob3VyLiBSZXNvbHZlIHlvdXJzZWx2ZXMgYXBhcnQ6PC9BPjxicj4KKzxB
IE5BTUU9My4xLjE1Mj5JJ2xsIGNvbWUgdG8geW91IGFub24uPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gzMT48Yj5Cb3RoIE11cmRlcmVyczwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9My4xLjE1Mz5XZSBhcmUgcmVzb2x2ZWQsIG15IGxvcmQuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMj48Yj5NQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMTU0PkknbGwgY2FsbCB1cG9uIHlvdSBzdHJhaWdodDog
YWJpZGUgd2l0aGluLjwvQT48YnI+Cis8cD48aT5FeGV1bnQgTXVyZGVyZXJzPC9pPjwvcD4KKzxB
IE5BTUU9My4xLjE1NT5JdCBpcyBjb25jbHVkZWQuIEJhbnF1bywgdGh5IHNvdWwncyBmbGlnaHQs
PC9BPjxicj4KKzxBIE5BTUU9My4xLjE1Nj5JZiBpdCBmaW5kIGhlYXZlbiwgbXVzdCBmaW5kIGl0
IG91dCB0by1uaWdodC48L0E+PGJyPgorPHA+PGk+RXhpdDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+
Cis8aDM+U0NFTkUgSUkuIFRoZSBwYWxhY2UuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50
ZXIgTEFEWSBNQUNCRVRIIGFuZCBhIFNlcnZhbnQ8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTMuMi4xPklzIEJhbnF1byBnb25lIGZyb20gY291cnQ/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gyPjxiPlNlcnZhbnQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTMuMi4yPkF5LCBtYWRhbSwgYnV0IHJldHVybnMgYWdhaW4gdG8tbmlnaHQuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjM+U2F5IHRvIHRoZSBraW5nLCBJIHdvdWxkIGF0
dGVuZCBoaXMgbGVpc3VyZTwvQT48YnI+Cis8QSBOQU1FPTMuMi40PkZvciBhIGZldyB3b3Jkcy48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+U2VydmFudDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjU+ICAgICAgICAgICAgICAgICAgTWFkYW0s
IEkgd2lsbC48L0E+PGJyPgorPHA+PGk+RXhpdDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoNT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTMuMi42Pk5vdWdodCdzIGhhZCwgYWxsJ3Mgc3BlbnQsPC9BPjxicj4KKzxBIE5BTUU9My4y
Ljc+V2hlcmUgb3VyIGRlc2lyZSBpcyBnb3Qgd2l0aG91dCBjb250ZW50OjwvQT48YnI+Cis8QSBO
QU1FPTMuMi44PidUaXMgc2FmZXIgdG8gYmUgdGhhdCB3aGljaCB3ZSBkZXN0cm95PC9BPjxicj4K
KzxBIE5BTUU9My4yLjk+VGhhbiBieSBkZXN0cnVjdGlvbiBkd2VsbCBpbiBkb3VidGZ1bCBqb3ku
PC9BPjxicj4KKzxwPjxpPkVudGVyIE1BQ0JFVEg8L2k+PC9wPgorPEEgTkFNRT0zLjIuMTA+SG93
IG5vdywgbXkgbG9yZCEgd2h5IGRvIHlvdSBrZWVwIGFsb25lLDwvQT48YnI+Cis8QSBOQU1FPTMu
Mi4xMT5PZiBzb3JyaWVzdCBmYW5jaWVzIHlvdXIgY29tcGFuaW9ucyBtYWtpbmcsPC9BPjxicj4K
KzxBIE5BTUU9My4yLjEyPlVzaW5nIHRob3NlIHRob3VnaHRzIHdoaWNoIHNob3VsZCBpbmRlZWQg
aGF2ZSBkaWVkPC9BPjxicj4KKzxBIE5BTUU9My4yLjEzPldpdGggdGhlbSB0aGV5IHRoaW5rIG9u
PyBUaGluZ3Mgd2l0aG91dCBhbGwgcmVtZWR5PC9BPjxicj4KKzxBIE5BTUU9My4yLjE0PlNob3Vs
ZCBiZSB3aXRob3V0IHJlZ2FyZDogd2hhdCdzIGRvbmUgaXMgZG9uZS48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9My4yLjE1PldlIGhhdmUgc2NvdGNoJ2QgdGhlIHNuYWtlLCBub3Qga2lsbCdk
IGl0OjwvQT48YnI+Cis8QSBOQU1FPTMuMi4xNj5TaGUnbGwgY2xvc2UgYW5kIGJlIGhlcnNlbGYs
IHdoaWxzdCBvdXIgcG9vciBtYWxpY2U8L0E+PGJyPgorPEEgTkFNRT0zLjIuMTc+UmVtYWlucyBp
biBkYW5nZXIgb2YgaGVyIGZvcm1lciB0b290aC48L0E+PGJyPgorPEEgTkFNRT0zLjIuMTg+QnV0
IGxldCB0aGUgZnJhbWUgb2YgdGhpbmdzIGRpc2pvaW50LCBib3RoIHRoZTwvQT48YnI+Cis8QSBO
QU1FPTMuMi4xOT53b3JsZHMgc3VmZmVyLDwvQT48YnI+Cis8QSBOQU1FPTMuMi4yMD5FcmUgd2Ug
d2lsbCBlYXQgb3VyIG1lYWwgaW4gZmVhciBhbmQgc2xlZXA8L0E+PGJyPgorPEEgTkFNRT0zLjIu
MjE+SW4gdGhlIGFmZmxpY3Rpb24gb2YgdGhlc2UgdGVycmlibGUgZHJlYW1zPC9BPjxicj4KKzxB
IE5BTUU9My4yLjIyPlRoYXQgc2hha2UgdXMgbmlnaHRseTogYmV0dGVyIGJlIHdpdGggdGhlIGRl
YWQsPC9BPjxicj4KKzxBIE5BTUU9My4yLjIzPldob20gd2UsIHRvIGdhaW4gb3VyIHBlYWNlLCBo
YXZlIHNlbnQgdG8gcGVhY2UsPC9BPjxicj4KKzxBIE5BTUU9My4yLjI0PlRoYW4gb24gdGhlIHRv
cnR1cmUgb2YgdGhlIG1pbmQgdG8gbGllPC9BPjxicj4KKzxBIE5BTUU9My4yLjI1PkluIHJlc3Rs
ZXNzIGVjc3Rhc3kuIER1bmNhbiBpcyBpbiBoaXMgZ3JhdmU7PC9BPjxicj4KKzxBIE5BTUU9My4y
LjI2PkFmdGVyIGxpZmUncyBmaXRmdWwgZmV2ZXIgaGUgc2xlZXBzIHdlbGw7PC9BPjxicj4KKzxB
IE5BTUU9My4yLjI3PlRyZWFzb24gaGFzIGRvbmUgaGlzIHdvcnN0OiBub3Igc3RlZWwsIG5vciBw
b2lzb24sPC9BPjxicj4KKzxBIE5BTUU9My4yLjI4Pk1hbGljZSBkb21lc3RpYywgZm9yZWlnbiBs
ZXZ5LCBub3RoaW5nLDwvQT48YnI+Cis8QSBOQU1FPTMuMi4yOT5DYW4gdG91Y2ggaGltIGZ1cnRo
ZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPkxBRFkgTUFD
QkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjMwPkNvbWUgb247PC9BPjxi
cj4KKzxBIE5BTUU9My4yLjMxPkdlbnRsZSBteSBsb3JkLCBzbGVlayBvJ2VyIHlvdXIgcnVnZ2Vk
IGxvb2tzOzwvQT48YnI+Cis8QSBOQU1FPTMuMi4zMj5CZSBicmlnaHQgYW5kIGpvdmlhbCBhbW9u
ZyB5b3VyIGd1ZXN0cyB0by1uaWdodC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDg+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjMz
PlNvIHNoYWxsIEksIGxvdmU7IGFuZCBzbywgSSBwcmF5LCBiZSB5b3U6PC9BPjxicj4KKzxBIE5B
TUU9My4yLjM0PkxldCB5b3VyIHJlbWVtYnJhbmNlIGFwcGx5IHRvIEJhbnF1bzs8L0E+PGJyPgor
PEEgTkFNRT0zLjIuMzU+UHJlc2VudCBoaW0gZW1pbmVuY2UsIGJvdGggd2l0aCBleWUgYW5kIHRv
bmd1ZTo8L0E+PGJyPgorPEEgTkFNRT0zLjIuMzY+VW5zYWZlIHRoZSB3aGlsZSwgdGhhdCB3ZTwv
QT48YnI+Cis8QSBOQU1FPTMuMi4zNz5NdXN0IGxhdmUgb3VyIGhvbm91cnMgaW4gdGhlc2UgZmxh
dHRlcmluZyBzdHJlYW1zLDwvQT48YnI+Cis8QSBOQU1FPTMuMi4zOD5BbmQgbWFrZSBvdXIgZmFj
ZXMgdml6YXJkcyB0byBvdXIgaGVhcnRzLDwvQT48YnI+Cis8QSBOQU1FPTMuMi4zOT5EaXNndWlz
aW5nIHdoYXQgdGhleSBhcmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g5PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjQw
PllvdSBtdXN0IGxlYXZlIHRoaXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxMD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjIuNDE+
TywgZnVsbCBvZiBzY29ycGlvbnMgaXMgbXkgbWluZCwgZGVhciB3aWZlITwvQT48YnI+Cis8QSBO
QU1FPTMuMi40Mj5UaG91IGtub3cnc3QgdGhhdCBCYW5xdW8sIGFuZCBoaXMgRmxlYW5jZSwgbGl2
ZXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5MQURZIE1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMi40Mz5CdXQgaW4gdGhlbSBu
YXR1cmUncyBjb3B5J3Mgbm90IGV0ZXJuZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDEyPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMu
Mi40ND5UaGVyZSdzIGNvbWZvcnQgeWV0OyB0aGV5IGFyZSBhc3NhaWxhYmxlOzwvQT48YnI+Cis8
QSBOQU1FPTMuMi40NT5UaGVuIGJlIHRob3Ugam9jdW5kOiBlcmUgdGhlIGJhdCBoYXRoIGZsb3du
PC9BPjxicj4KKzxBIE5BTUU9My4yLjQ2PkhpcyBjbG9pc3RlcidkIGZsaWdodCwgZXJlIHRvIGJs
YWNrIEhlY2F0ZSdzIHN1bW1vbnM8L0E+PGJyPgorPEEgTkFNRT0zLjIuNDc+VGhlIHNoYXJkLWJv
cm5lIGJlZXRsZSB3aXRoIGhpcyBkcm93c3kgaHVtczwvQT48YnI+Cis8QSBOQU1FPTMuMi40OD5I
YXRoIHJ1bmcgbmlnaHQncyB5YXduaW5nIHBlYWwsIHRoZXJlIHNoYWxsIGJlIGRvbmU8L0E+PGJy
PgorPEEgTkFNRT0zLjIuNDk+QSBkZWVkIG9mIGRyZWFkZnVsIG5vdGUuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTMuMi41MD5XaGF0J3MgdG8gYmUgZG9uZT88L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTMuMi41MT5CZSBpbm5vY2VudCBvZiB0aGUga25vd2xlZGdlLCBkZWFy
ZXN0IGNodWNrLDwvQT48YnI+Cis8QSBOQU1FPTMuMi41Mj5UaWxsIHRob3UgYXBwbGF1ZCB0aGUg
ZGVlZC4gQ29tZSwgc2VlbGluZyBuaWdodCw8L0E+PGJyPgorPEEgTkFNRT0zLjIuNTM+U2NhcmYg
dXAgdGhlIHRlbmRlciBleWUgb2YgcGl0aWZ1bCBkYXk7PC9BPjxicj4KKzxBIE5BTUU9My4yLjU0
PkFuZCB3aXRoIHRoeSBibG9vZHkgYW5kIGludmlzaWJsZSBoYW5kPC9BPjxicj4KKzxBIE5BTUU9
My4yLjU1PkNhbmNlbCBhbmQgdGVhciB0byBwaWVjZXMgdGhhdCBncmVhdCBib25kPC9BPjxicj4K
KzxBIE5BTUU9My4yLjU2PldoaWNoIGtlZXBzIG1lIHBhbGUhIExpZ2h0IHRoaWNrZW5zOyBhbmQg
dGhlIGNyb3c8L0E+PGJyPgorPEEgTkFNRT0zLjIuNTc+TWFrZXMgd2luZyB0byB0aGUgcm9va3kg
d29vZDo8L0E+PGJyPgorPEEgTkFNRT0zLjIuNTg+R29vZCB0aGluZ3Mgb2YgZGF5IGJlZ2luIHRv
IGRyb29wIGFuZCBkcm93c2U7PC9BPjxicj4KKzxBIE5BTUU9My4yLjU5PldoaWxlIG5pZ2h0J3Mg
YmxhY2sgYWdlbnRzIHRvIHRoZWlyIHByZXlzIGRvIHJvdXNlLjwvQT48YnI+Cis8QSBOQU1FPTMu
Mi42MD5UaG91IG1hcnZlbGwnc3QgYXQgbXkgd29yZHM6IGJ1dCBob2xkIHRoZWUgc3RpbGw7PC9B
Pjxicj4KKzxBIE5BTUU9My4yLjYxPlRoaW5ncyBiYWQgYmVndW4gbWFrZSBzdHJvbmcgdGhlbXNl
bHZlcyBieSBpbGwuPC9BPjxicj4KKzxBIE5BTUU9My4yLjYyPlNvLCBwcml0aGVlLCBnbyB3aXRo
IG1lLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlND
RU5FIElJSS4gQSBwYXJrIG5lYXIgdGhlIHBhbGFjZS48L2gzPgorPHA+PGJsb2NrcXVvdGU+Cis8
aT5FbnRlciB0aHJlZSBNdXJkZXJlcnM8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMT48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4z
LjE+QnV0IHdobyBkaWQgYmlkIHRoZWUgam9pbiB3aXRoIHVzPzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5UaGlyZCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9My4zLjI+TWFjYmV0aC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDM+PGI+U2Vjb25kIE11cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0zLjMuMz5IZSBuZWVkcyBub3Qgb3VyIG1pc3RydXN0LCBzaW5jZSBoZSBkZWxpdmVy
czwvQT48YnI+Cis8QSBOQU1FPTMuMy40Pk91ciBvZmZpY2VzIGFuZCB3aGF0IHdlIGhhdmUgdG8g
ZG88L0E+PGJyPgorPEEgTkFNRT0zLjMuNT5UbyB0aGUgZGlyZWN0aW9uIGp1c3QuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPkZpcnN0IE11cmRlcmVyPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjMuNj5UaGVuIHN0YW5kIHdpdGggdXMuPC9BPjxi
cj4KKzxBIE5BTUU9My4zLjc+VGhlIHdlc3QgeWV0IGdsaW1tZXJzIHdpdGggc29tZSBzdHJlYWtz
IG9mIGRheTo8L0E+PGJyPgorPEEgTkFNRT0zLjMuOD5Ob3cgc3B1cnMgdGhlIGxhdGVkIHRyYXZl
bGxlciBhcGFjZTwvQT48YnI+Cis8QSBOQU1FPTMuMy45PlRvIGdhaW4gdGhlIHRpbWVseSBpbm47
IGFuZCBuZWFyIGFwcHJvYWNoZXM8L0E+PGJyPgorPEEgTkFNRT0zLjMuMTA+VGhlIHN1YmplY3Qg
b2Ygb3VyIHdhdGNoLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48
Yj5UaGlyZCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4zLjExPkhh
cmshIEkgaGVhciBob3JzZXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g2PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4zLjEyPltXaXRo
aW5dICBHaXZlIHVzIGEgbGlnaHQgdGhlcmUsIGhvITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoNz48Yj5TZWNvbmQgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTMuMy4xMz5UaGVuICd0aXMgaGU6IHRoZSByZXN0PC9BPjxicj4KKzxBIE5BTUU9
My4zLjE0PlRoYXQgYXJlIHdpdGhpbiB0aGUgbm90ZSBvZiBleHBlY3RhdGlvbjwvQT48YnI+Cis8
QSBOQU1FPTMuMy4xNT5BbHJlYWR5IGFyZSBpJyB0aGUgY291cnQuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0zLjMuMTY+SGlzIGhvcnNlcyBnbyBhYm91dC48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+VGhpcmQgTXVyZGVyZXI8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4xNz5BbG1vc3QgYSBtaWxlOiBidXQgaGUgZG9lcyB1
c3VhbGx5LDwvQT48YnI+Cis8QSBOQU1FPTMuMy4xOD5TbyBhbGwgbWVuIGRvLCBmcm9tIGhlbmNl
IHRvIHRoZSBwYWxhY2UgZ2F0ZTwvQT48YnI+Cis8QSBOQU1FPTMuMy4xOT5NYWtlIGl0IHRoZWly
IHdhbGsuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5TZWNv
bmQgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4yMD5BIGxpZ2h0
LCBhIGxpZ2h0ITwvQT48YnI+Cis8cD48aT5FbnRlciBCQU5RVU8sIGFuZCBGTEVBTkNFIHdpdGgg
YSB0b3JjaDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+VGhp
cmQgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4yMT4nVGlzIGhl
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+Rmlyc3QgTXVy
ZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4yMj5TdGFuZCB0byd0Ljwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+QkFOUVVPPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjMuMjM+SXQgd2lsbCBiZSByYWluIHRvLW5pZ2h0
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTQ+PGI+Rmlyc3QgTXVy
ZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4yND5MZXQgaXQgY29tZSBk
b3duLjwvQT48YnI+Cis8cD48aT5UaGV5IHNldCB1cG9uIEJBTlFVTzwvaT48L3A+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTU+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0zLjMuMjU+TywgdHJlYWNoZXJ5ISBGbHksIGdvb2QgRmxlYW5jZSwgZmx5LCBm
bHksIGZseSE8L0E+PGJyPgorPEEgTkFNRT0zLjMuMjY+VGhvdSBtYXlzdCByZXZlbmdlLiBPIHNs
YXZlITwvQT48YnI+Cis8cD48aT5EaWVzLiBGTEVBTkNFIGVzY2FwZXM8L2k+PC9wPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2PjxiPlRoaXJkIE11cmRlcmVyPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0zLjMuMjc+V2hvIGRpZCBzdHJpa2Ugb3V0IHRoZSBsaWdodD88
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE3PjxiPkZpcnN0IE11cmRl
cmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjMuMjg+V2FzdCBub3QgdGhlIHdh
eT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE4PjxiPlRoaXJkIE11
cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjMuMjk+VGhlcmUncyBidXQg
b25lIGRvd247IHRoZSBzb24gaXMgZmxlZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDE5PjxiPlNlY29uZCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My4zLjMwPldlIGhhdmUgbG9zdDwvQT48YnI+Cis8QSBOQU1FPTMuMy4zMT5CZXN0IGhh
bGYgb2Ygb3VyIGFmZmFpci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDIwPjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjMu
MzI+V2VsbCwgbGV0J3MgYXdheSwgYW5kIHNheSBob3cgbXVjaCBpcyBkb25lLjwvQT48YnI+Cis8
cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIElWLiBUaGUgc2Ft
ZS4gSGFsbCBpbiB0aGUgcGFsYWNlLjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPkEgYmFucXVl
dCBwcmVwYXJlZC4gRW50ZXIgTUFDQkVUSCwgTEFEWSBNQUNCRVRILCBST1NTLCBMRU5OT1gsIExv
cmRzLCBhbmQgQXR0ZW5kYW50czwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gx
PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xPllvdSBrbm93
IHlvdXIgb3duIGRlZ3JlZXM7IHNpdCBkb3duOiBhdCBmaXJzdDwvQT48YnI+Cis8QSBOQU1FPTMu
NC4yPkFuZCBsYXN0IHRoZSBoZWFydHkgd2VsY29tZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDI+PGI+TG9yZHM8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTMuNC4zPlRoYW5rcyB0byB5b3VyIG1hamVzdHkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gzPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTMuNC40Pk91cnNlbGYgd2lsbCBtaW5nbGUgd2l0aCBzb2NpZXR5LDwvQT48YnI+Cis8QSBOQU1F
PTMuNC41PkFuZCBwbGF5IHRoZSBodW1ibGUgaG9zdC48L0E+PGJyPgorPEEgTkFNRT0zLjQuNj5P
dXIgaG9zdGVzcyBrZWVwcyBoZXIgc3RhdGUsIGJ1dCBpbiBiZXN0IHRpbWU8L0E+PGJyPgorPEEg
TkFNRT0zLjQuNz5XZSB3aWxsIHJlcXVpcmUgaGVyIHdlbGNvbWUuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9My40Ljg+UHJvbm91bmNlIGl0IGZvciBtZSwgc2lyLCB0byBhbGwgb3Vy
IGZyaWVuZHM7PC9BPjxicj4KKzxBIE5BTUU9My40Ljk+Rm9yIG15IGhlYXJ0IHNwZWFrcyB0aGV5
IGFyZSB3ZWxjb21lLjwvQT48YnI+Cis8cD48aT5GaXJzdCBNdXJkZXJlciBhcHBlYXJzIGF0IHRo
ZSBkb29yPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xMD5TZWUsIHRoZXkgZW5jb3Vu
dGVyIHRoZWUgd2l0aCB0aGVpciBoZWFydHMnIHRoYW5rcy48L0E+PGJyPgorPEEgTkFNRT0zLjQu
MTE+Qm90aCBzaWRlcyBhcmUgZXZlbjogaGVyZSBJJ2xsIHNpdCBpJyB0aGUgbWlkc3Q6PC9BPjxi
cj4KKzxBIE5BTUU9My40LjEyPkJlIGxhcmdlIGluIG1pcnRoOyBhbm9uIHdlJ2xsIGRyaW5rIGEg
bWVhc3VyZTwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMz5UaGUgdGFibGUgcm91bmQuPC9BPjxicj4K
KzxwPjxpPkFwcHJvYWNoaW5nIHRoZSBkb29yPC9pPjwvcD4KKzxBIE5BTUU9My40LjE0PlRoZXJl
J3MgYmxvb2Qgb24gdGh5IGZhY2UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2g2PjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0z
LjQuMTU+J1RpcyBCYW5xdW8ncyB0aGVuLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoNz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQu
MTY+J1RpcyBiZXR0ZXIgdGhlZSB3aXRob3V0IHRoYW4gaGUgd2l0aGluLjwvQT48YnI+Cis8QSBO
QU1FPTMuNC4xNz5JcyBoZSBkaXNwYXRjaCdkPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoOD48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My40LjE4Pk15IGxvcmQsIGhpcyB0aHJvYXQgaXMgY3V0OyB0aGF0IEkgZGlkIGZvciBo
aW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPk1BQ0JFVEg8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xOT5UaG91IGFydCB0aGUgYmVzdCBv
JyB0aGUgY3V0LXRocm9hdHM6IHlldCBoZSdzIGdvb2Q8L0E+PGJyPgorPEEgTkFNRT0zLjQuMjA+
VGhhdCBkaWQgdGhlIGxpa2UgZm9yIEZsZWFuY2U6IGlmIHRob3UgZGlkc3QgaXQsPC9BPjxicj4K
KzxBIE5BTUU9My40LjIxPlRob3UgYXJ0IHRoZSBub25wYXJlaWwuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9My40LjIyPk1vc3Qgcm95YWwgc2lyLDwvQT48YnI+Cis8QSBOQU1F
PTMuNC4yMz5GbGVhbmNlIGlzICdzY2FwZWQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2gxMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0z
LjQuMjQ+VGhlbiBjb21lcyBteSBmaXQgYWdhaW46IEkgaGFkIGVsc2UgYmVlbiBwZXJmZWN0LDwv
QT48YnI+Cis8QSBOQU1FPTMuNC4yNT5XaG9sZSBhcyB0aGUgbWFyYmxlLCBmb3VuZGVkIGFzIHRo
ZSByb2NrLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4yNj5BcyBicm9hZCBhbmQgZ2VuZXJhbCBhcyB0
aGUgY2FzaW5nIGFpcjo8L0E+PGJyPgorPEEgTkFNRT0zLjQuMjc+QnV0IG5vdyBJIGFtIGNhYmlu
J2QsIGNyaWJiJ2QsIGNvbmZpbmVkLCBib3VuZCBpbjwvQT48YnI+Cis8QSBOQU1FPTMuNC4yOD5U
byBzYXVjeSBkb3VidHMgYW5kIGZlYXJzLiBCdXQgQmFucXVvJ3Mgc2FmZT88L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMjk+QXksIG15IGdvb2QgbG9yZDogc2FmZSBpbiBh
IGRpdGNoIGhlIGJpZGVzLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4zMD5XaXRoIHR3ZW50eSB0cmVu
Y2hlZCBnYXNoZXMgb24gaGlzIGhlYWQ7PC9BPjxicj4KKzxBIE5BTUU9My40LjMxPlRoZSBsZWFz
dCBhIGRlYXRoIHRvIG5hdHVyZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDEzPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4zMj5U
aGFua3MgZm9yIHRoYXQ6PC9BPjxicj4KKzxBIE5BTUU9My40LjMzPlRoZXJlIHRoZSBncm93biBz
ZXJwZW50IGxpZXM7IHRoZSB3b3JtIHRoYXQncyBmbGVkPC9BPjxicj4KKzxBIE5BTUU9My40LjM0
PkhhdGggbmF0dXJlIHRoYXQgaW4gdGltZSB3aWxsIHZlbm9tIGJyZWVkLDwvQT48YnI+Cis8QSBO
QU1FPTMuNC4zNT5ObyB0ZWV0aCBmb3IgdGhlIHByZXNlbnQuIEdldCB0aGVlIGdvbmU6IHRvLW1v
cnJvdzwvQT48YnI+Cis8QSBOQU1FPTMuNC4zNj5XZSdsbCBoZWFyLCBvdXJzZWx2ZXMsIGFnYWlu
LjwvQT48YnI+Cis8cD48aT5FeGl0IE11cmRlcmVyPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxND48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTMuNC4zNz5NeSByb3lhbCBsb3JkLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4zOD5Zb3Ug
ZG8gbm90IGdpdmUgdGhlIGNoZWVyOiB0aGUgZmVhc3QgaXMgc29sZDwvQT48YnI+Cis8QSBOQU1F
PTMuNC4zOT5UaGF0IGlzIG5vdCBvZnRlbiB2b3VjaCdkLCB3aGlsZSAndGlzIGEtbWFraW5nLDwv
QT48YnI+Cis8QSBOQU1FPTMuNC40MD4nVGlzIGdpdmVuIHdpdGggd2VsY29tZTogdG8gZmVlZCB3
ZXJlIGJlc3QgYXQgaG9tZTs8L0E+PGJyPgorPEEgTkFNRT0zLjQuNDE+RnJvbSB0aGVuY2UgdGhl
IHNhdWNlIHRvIG1lYXQgaXMgY2VyZW1vbnk7PC9BPjxicj4KKzxBIE5BTUU9My40LjQyPk1lZXRp
bmcgd2VyZSBiYXJlIHdpdGhvdXQgaXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gxNT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQu
NDM+U3dlZXQgcmVtZW1icmFuY2VyITwvQT48YnI+Cis8QSBOQU1FPTMuNC40ND5Ob3csIGdvb2Qg
ZGlnZXN0aW9uIHdhaXQgb24gYXBwZXRpdGUsPC9BPjxicj4KKzxBIE5BTUU9My40LjQ1PkFuZCBo
ZWFsdGggb24gYm90aCE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2
PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjQ2Pk1heSd0IHBs
ZWFzZSB5b3VyIGhpZ2huZXNzIHNpdC48L0E+PGJyPgorPHA+PGk+VGhlIEdIT1NUIE9GIEJBTlFV
TyBlbnRlcnMsIGFuZCBzaXRzIGluIE1BQ0JFVEgncyBwbGFjZTwvaT48L3A+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9My40LjQ3PkhlcmUgaGFkIHdlIG5vdyBvdXIgY291bnRyeSdzIGhvbm91ciByb29m
J2QsPC9BPjxicj4KKzxBIE5BTUU9My40LjQ4PldlcmUgdGhlIGdyYWNlZCBwZXJzb24gb2Ygb3Vy
IEJhbnF1byBwcmVzZW50OzwvQT48YnI+Cis8QSBOQU1FPTMuNC40OT5XaG8gbWF5IEkgcmF0aGVy
IGNoYWxsZW5nZSBmb3IgdW5raW5kbmVzczwvQT48YnI+Cis8QSBOQU1FPTMuNC41MD5UaGFuIHBp
dHkgZm9yIG1pc2NoYW5jZSE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDE4PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC41MT5IaXMgYWJz
ZW5jZSwgc2lyLDwvQT48YnI+Cis8QSBOQU1FPTMuNC41Mj5MYXlzIGJsYW1lIHVwb24gaGlzIHBy
b21pc2UuIFBsZWFzZSd0IHlvdXIgaGlnaG5lc3M8L0E+PGJyPgorPEEgTkFNRT0zLjQuNTM+VG8g
Z3JhY2UgdXMgd2l0aCB5b3VyIHJveWFsIGNvbXBhbnkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxOT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0zLjQuNTQ+VGhlIHRhYmxlJ3MgZnVsbC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDIwPjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My40LjU1PiAgICAgICAgICAgICAgICAgIEhlcmUgaXMgYSBwbGFjZSByZXNlcnZlZCwgc2lyLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjE+PGI+TUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjU2PldoZXJlPzwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjI+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0zLjQuNTc+SGVyZSwgbXkgZ29vZCBsb3JkLiBXaGF0IGlzJ3QgdGhhdCBtb3Zl
cyB5b3VyIGhpZ2huZXNzPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MjM+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjU4PldoaWNo
IG9mIHlvdSBoYXZlIGRvbmUgdGhpcz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDI0PjxiPkxvcmRzPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuNTk+
V2hhdCwgbXkgZ29vZCBsb3JkPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMjU+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjYwPlRo
b3UgY2Fuc3Qgbm90IHNheSBJIGRpZCBpdDogbmV2ZXIgc2hha2U8L0E+PGJyPgorPEEgTkFNRT0z
LjQuNjE+VGh5IGdvcnkgbG9ja3MgYXQgbWUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2gyNj48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQu
NjI+R2VudGxlbWVuLCByaXNlOiBoaXMgaGlnaG5lc3MgaXMgbm90IHdlbGwuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNz48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC42Mz5TaXQsIHdvcnRoeSBmcmllbmRzOiBteSBsb3Jk
IGlzIG9mdGVuIHRodXMsPC9BPjxicj4KKzxBIE5BTUU9My40LjY0PkFuZCBoYXRoIGJlZW4gZnJv
bSBoaXMgeW91dGg6IHByYXkgeW91LCBrZWVwIHNlYXQ7PC9BPjxicj4KKzxBIE5BTUU9My40LjY1
PlRoZSBmaXQgaXMgbW9tZW50YXJ5OyB1cG9uIGEgdGhvdWdodDwvQT48YnI+Cis8QSBOQU1FPTMu
NC42Nj5IZSB3aWxsIGFnYWluIGJlIHdlbGw6IGlmIG11Y2ggeW91IG5vdGUgaGltLDwvQT48YnI+
Cis8QSBOQU1FPTMuNC42Nz5Zb3Ugc2hhbGwgb2ZmZW5kIGhpbSBhbmQgZXh0ZW5kIGhpcyBwYXNz
aW9uOjwvQT48YnI+Cis8QSBOQU1FPTMuNC42OD5GZWVkLCBhbmQgcmVnYXJkIGhpbSBub3QuIEFy
ZSB5b3UgYSBtYW4/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyOD48
Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuNjk+QXksIGFuZCBh
IGJvbGQgb25lLCB0aGF0IGRhcmUgbG9vayBvbiB0aGF0PC9BPjxicj4KKzxBIE5BTUU9My40Ljcw
PldoaWNoIG1pZ2h0IGFwcGFsIHRoZSBkZXZpbC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDI5PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My40LjcxPk8gcHJvcGVyIHN0dWZmITwvQT48YnI+Cis8QSBOQU1FPTMuNC43Mj5UaGlz
IGlzIHRoZSB2ZXJ5IHBhaW50aW5nIG9mIHlvdXIgZmVhcjo8L0E+PGJyPgorPEEgTkFNRT0zLjQu
NzM+VGhpcyBpcyB0aGUgYWlyLWRyYXduIGRhZ2dlciB3aGljaCwgeW91IHNhaWQsPC9BPjxicj4K
KzxBIE5BTUU9My40Ljc0PkxlZCB5b3UgdG8gRHVuY2FuLiBPLCB0aGVzZSBmbGF3cyBhbmQgc3Rh
cnRzLDwvQT48YnI+Cis8QSBOQU1FPTMuNC43NT5JbXBvc3RvcnMgdG8gdHJ1ZSBmZWFyLCB3b3Vs
ZCB3ZWxsIGJlY29tZTwvQT48YnI+Cis8QSBOQU1FPTMuNC43Nj5BIHdvbWFuJ3Mgc3RvcnkgYXQg
YSB3aW50ZXIncyBmaXJlLDwvQT48YnI+Cis8QSBOQU1FPTMuNC43Nz5BdXRob3JpemVkIGJ5IGhl
ciBncmFuZGFtLiBTaGFtZSBpdHNlbGYhPC9BPjxicj4KKzxBIE5BTUU9My40Ljc4PldoeSBkbyB5
b3UgbWFrZSBzdWNoIGZhY2VzPyBXaGVuIGFsbCdzIGRvbmUsPC9BPjxicj4KKzxBIE5BTUU9My40
Ljc5PllvdSBsb29rIGJ1dCBvbiBhIHN0b29sLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMzA+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My40LjgwPlByaXRoZWUsIHNlZSB0aGVyZSEgYmVob2xkISBsb29rISBsbyE8L0E+PGJyPgorPEEg
TkFNRT0zLjQuODE+aG93IHNheSB5b3U/PC9BPjxicj4KKzxBIE5BTUU9My40LjgyPldoeSwgd2hh
dCBjYXJlIEk/IElmIHRob3UgY2Fuc3Qgbm9kLCBzcGVhayB0b28uPC9BPjxicj4KKzxBIE5BTUU9
My40LjgzPklmIGNoYXJuZWwtaG91c2VzIGFuZCBvdXIgZ3JhdmVzIG11c3Qgc2VuZDwvQT48YnI+
Cis8QSBOQU1FPTMuNC44ND5UaG9zZSB0aGF0IHdlIGJ1cnkgYmFjaywgb3VyIG1vbnVtZW50czwv
QT48YnI+Cis8QSBOQU1FPTMuNC44NT5TaGFsbCBiZSB0aGUgbWF3cyBvZiBraXRlcy48L0E+PGJy
PgorPHA+PGk+R0hPU1QgT0YgQkFOUVVPIHZhbmlzaGVzPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gzMT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTMuNC44Nj5XaGF0LCBxdWl0ZSB1bm1hbm4nZCBpbiBmb2xseT88L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMyPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTMuNC44Nz5JZiBJIHN0YW5kIGhlcmUsIEkgc2F3IGhpbS48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMzPjxiPkxBRFkgTUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40Ljg4PkZpZSwgZm9yIHNoYW1lITwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzQ+PGI+TUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40Ljg5PkJsb29kIGhhdGggYmVlbiBzaGVkIGVyZSBu
b3csIGknIHRoZSBvbGRlbiB0aW1lLDwvQT48YnI+Cis8QSBOQU1FPTMuNC45MD5FcmUgaHVtYW4g
c3RhdHV0ZSBwdXJnZWQgdGhlIGdlbnRsZSB3ZWFsOzwvQT48YnI+Cis8QSBOQU1FPTMuNC45MT5B
eSwgYW5kIHNpbmNlIHRvbywgbXVyZGVycyBoYXZlIGJlZW4gcGVyZm9ybSdkPC9BPjxicj4KKzxB
IE5BTUU9My40LjkyPlRvbyB0ZXJyaWJsZSBmb3IgdGhlIGVhcjogdGhlIHRpbWVzIGhhdmUgYmVl
biw8L0E+PGJyPgorPEEgTkFNRT0zLjQuOTM+VGhhdCwgd2hlbiB0aGUgYnJhaW5zIHdlcmUgb3V0
LCB0aGUgbWFuIHdvdWxkIGRpZSw8L0E+PGJyPgorPEEgTkFNRT0zLjQuOTQ+QW5kIHRoZXJlIGFu
IGVuZDsgYnV0IG5vdyB0aGV5IHJpc2UgYWdhaW4sPC9BPjxicj4KKzxBIE5BTUU9My40Ljk1Pldp
dGggdHdlbnR5IG1vcnRhbCBtdXJkZXJzIG9uIHRoZWlyIGNyb3ducyw8L0E+PGJyPgorPEEgTkFN
RT0zLjQuOTY+QW5kIHB1c2ggdXMgZnJvbSBvdXIgc3Rvb2xzOiB0aGlzIGlzIG1vcmUgc3RyYW5n
ZTwvQT48YnI+Cis8QSBOQU1FPTMuNC45Nz5UaGFuIHN1Y2ggYSBtdXJkZXIgaXMuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC45OD5NeSB3b3J0aHkgbG9yZCw8L0E+PGJyPgor
PEEgTkFNRT0zLjQuOTk+WW91ciBub2JsZSBmcmllbmRzIGRvIGxhY2sgeW91LjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzY+PGI+TUFDQkVUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9My40LjEwMD5JIGRvIGZvcmdldC48L0E+PGJyPgorPEEgTkFNRT0z
LjQuMTAxPkRvIG5vdCBtdXNlIGF0IG1lLCBteSBtb3N0IHdvcnRoeSBmcmllbmRzLDwvQT48YnI+
Cis8QSBOQU1FPTMuNC4xMDI+SSBoYXZlIGEgc3RyYW5nZSBpbmZpcm1pdHksIHdoaWNoIGlzIG5v
dGhpbmc8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTAzPlRvIHRob3NlIHRoYXQga25vdyBtZS4gQ29t
ZSwgbG92ZSBhbmQgaGVhbHRoIHRvIGFsbDs8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTA0PlRoZW4g
SSdsbCBzaXQgZG93bi4gR2l2ZSBtZSBzb21lIHdpbmU7IGZpbGwgZnVsbC48L0E+PGJyPgorPEEg
TkFNRT0zLjQuMTA1PkkgZHJpbmsgdG8gdGhlIGdlbmVyYWwgam95IG8nIHRoZSB3aG9sZSB0YWJs
ZSw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTA2PkFuZCB0byBvdXIgZGVhciBmcmllbmQgQmFucXVv
LCB3aG9tIHdlIG1pc3M7PC9BPjxicj4KKzxBIE5BTUU9My40LjEwNz5Xb3VsZCBoZSB3ZXJlIGhl
cmUhIHRvIGFsbCwgYW5kIGhpbSwgd2UgdGhpcnN0LDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMDg+
QW5kIGFsbCB0byBhbGwuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gz
Nz48Yj5Mb3JkczwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjEwOT4gICAgICAg
ICAgICAgICAgICBPdXIgZHV0aWVzLCBhbmQgdGhlIHBsZWRnZS48L0E+PGJyPgorPHA+PGk+UmUt
ZW50ZXIgR0hPU1QgT0YgQkFOUVVPPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gzOD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTEw
PkF2YXVudCEgYW5kIHF1aXQgbXkgc2lnaHQhIGxldCB0aGUgZWFydGggaGlkZSB0aGVlITwvQT48
YnI+Cis8QSBOQU1FPTMuNC4xMTE+VGh5IGJvbmVzIGFyZSBtYXJyb3dsZXNzLCB0aHkgYmxvb2Qg
aXMgY29sZDs8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTEyPlRob3UgaGFzdCBubyBzcGVjdWxhdGlv
biBpbiB0aG9zZSBleWVzPC9BPjxicj4KKzxBIE5BTUU9My40LjExMz5XaGljaCB0aG91IGRvc3Qg
Z2xhcmUgd2l0aCE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM5Pjxi
PkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjExND5UaGlu
ayBvZiB0aGlzLCBnb29kIHBlZXJzLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMTU+QnV0IGFzIGEg
dGhpbmcgb2YgY3VzdG9tOiAndGlzIG5vIG90aGVyOzwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMTY+
T25seSBpdCBzcG9pbHMgdGhlIHBsZWFzdXJlIG9mIHRoZSB0aW1lLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDA+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9My40LjExNz5XaGF0IG1hbiBkYXJlLCBJIGRhcmU6PC9BPjxicj4KKzxBIE5B
TUU9My40LjExOD5BcHByb2FjaCB0aG91IGxpa2UgdGhlIHJ1Z2dlZCBSdXNzaWFuIGJlYXIsPC9B
Pjxicj4KKzxBIE5BTUU9My40LjExOT5UaGUgYXJtJ2Qgcmhpbm9jZXJvcywgb3IgdGhlIEh5cmNh
biB0aWdlcjs8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTIwPlRha2UgYW55IHNoYXBlIGJ1dCB0aGF0
LCBhbmQgbXkgZmlybSBuZXJ2ZXM8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTIxPlNoYWxsIG5ldmVy
IHRyZW1ibGU6IG9yIGJlIGFsaXZlIGFnYWluLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMjI+QW5k
IGRhcmUgbWUgdG8gdGhlIGRlc2VydCB3aXRoIHRoeSBzd29yZDs8L0E+PGJyPgorPEEgTkFNRT0z
LjQuMTIzPklmIHRyZW1ibGluZyBJIGluaGFiaXQgdGhlbiwgcHJvdGVzdCBtZTwvQT48YnI+Cis8
QSBOQU1FPTMuNC4xMjQ+VGhlIGJhYnkgb2YgYSBnaXJsLiBIZW5jZSwgaG9ycmlibGUgc2hhZG93
ITwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMjU+VW5yZWFsIG1vY2tlcnksIGhlbmNlITwvQT48YnI+
Cis8cD48aT5HSE9TVCBPRiBCQU5RVU8gdmFuaXNoZXM8L2k+PC9wPgorPEEgTkFNRT0zLjQuMTI2
PldoeSwgc286IGJlaW5nIGdvbmUsPC9BPjxicj4KKzxBIE5BTUU9My40LjEyNz5JIGFtIGEgbWFu
IGFnYWluLiBQcmF5IHlvdSwgc2l0IHN0aWxsLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoNDE+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0zLjQuMTI4PllvdSBoYXZlIGRpc3BsYWNlZCB0aGUgbWlydGgsIGJyb2tlIHRoZSBnb29k
IG1lZXRpbmcsPC9BPjxicj4KKzxBIE5BTUU9My40LjEyOT5XaXRoIG1vc3QgYWRtaXJlZCBkaXNv
cmRlci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQyPjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xMzA+Q2FuIHN1Y2ggdGhpbmdz
IGJlLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMzE+QW5kIG92ZXJjb21lIHVzIGxpa2UgYSBzdW1t
ZXIncyBjbG91ZCw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTMyPldpdGhvdXQgb3VyIHNwZWNpYWwg
d29uZGVyPyBZb3UgbWFrZSBtZSBzdHJhbmdlPC9BPjxicj4KKzxBIE5BTUU9My40LjEzMz5FdmVu
IHRvIHRoZSBkaXNwb3NpdGlvbiB0aGF0IEkgb3dlLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMzQ+
V2hlbiBub3cgSSB0aGluayB5b3UgY2FuIGJlaG9sZCBzdWNoIHNpZ2h0cyw8L0E+PGJyPgorPEEg
TkFNRT0zLjQuMTM1PkFuZCBrZWVwIHRoZSBuYXR1cmFsIHJ1Ynkgb2YgeW91ciBjaGVla3MsPC9B
Pjxicj4KKzxBIE5BTUU9My40LjEzNj5XaGVuIG1pbmUgaXMgYmxhbmNoZWQgd2l0aCBmZWFyLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDM+PGI+Uk9TUzwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjEzNz5XaGF0IHNpZ2h0cywgbXkgbG9yZD88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ0PjxiPkxBRFkgTUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjEzOD5JIHByYXkgeW91LCBzcGVhayBu
b3Q7IGhlIGdyb3dzIHdvcnNlIGFuZCB3b3JzZTs8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTM5PlF1
ZXN0aW9uIGVucmFnZXMgaGltLiBBdCBvbmNlLCBnb29kIG5pZ2h0OjwvQT48YnI+Cis8QSBOQU1F
PTMuNC4xNDA+U3RhbmQgbm90IHVwb24gdGhlIG9yZGVyIG9mIHlvdXIgZ29pbmcsPC9BPjxicj4K
KzxBIE5BTUU9My40LjE0MT5CdXQgZ28gYXQgb25jZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDQ1PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9My40LjE0Mj4gICAgICAgICAgICAgICAgICBHb29kIG5pZ2h0OyBhbmQgYmV0dGVyIGhlYWx0
aDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNDM+QXR0ZW5kIGhpcyBtYWplc3R5ITwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDY+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTQ0PkEga2luZCBnb29kIG5pZ2h0IHRvIGFsbCE8
L0E+PGJyPgorPHA+PGk+RXhldW50IGFsbCBidXQgTUFDQkVUSCBhbmQgTEFEWSBNQUNCRVRIPC9p
PjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Nz48Yj5NQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTQ1Pkl0IHdpbGwgaGF2ZSBibG9vZDsgdGhl
eSBzYXksIGJsb29kIHdpbGwgaGF2ZSBibG9vZDo8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTQ2PlN0
b25lcyBoYXZlIGJlZW4ga25vd24gdG8gbW92ZSBhbmQgdHJlZXMgdG8gc3BlYWs7PC9BPjxicj4K
KzxBIE5BTUU9My40LjE0Nz5BdWd1cnMgYW5kIHVuZGVyc3Rvb2QgcmVsYXRpb25zIGhhdmU8L0E+
PGJyPgorPEEgTkFNRT0zLjQuMTQ4PkJ5IG1hZ290LXBpZXMgYW5kIGNob3VnaHMgYW5kIHJvb2tz
IGJyb3VnaHQgZm9ydGg8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTQ5PlRoZSBzZWNyZXQnc3QgbWFu
IG9mIGJsb29kLiBXaGF0IGlzIHRoZSBuaWdodD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDQ4PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My40LjE1MD5BbG1vc3QgYXQgb2RkcyB3aXRoIG1vcm5pbmcsIHdoaWNoIGlzIHdoaWNo
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDk+PGI+TUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjE1MT5Ib3cgc2F5J3N0IHRob3UsIHRo
YXQgTWFjZHVmZiBkZW5pZXMgaGlzIHBlcnNvbjwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNTI+QXQg
b3VyIGdyZWF0IGJpZGRpbmc/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g1MD48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4x
NTM+RGlkIHlvdSBzZW5kIHRvIGhpbSwgc2lyPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoNTE+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My40LjE1ND5JIGhlYXIgaXQgYnkgdGhlIHdheTsgYnV0IEkgd2lsbCBzZW5kOjwvQT48YnI+Cis8
QSBOQU1FPTMuNC4xNTU+VGhlcmUncyBub3QgYSBvbmUgb2YgdGhlbSBidXQgaW4gaGlzIGhvdXNl
PC9BPjxicj4KKzxBIE5BTUU9My40LjE1Nj5JIGtlZXAgYSBzZXJ2YW50IGZlZSdkLiBJIHdpbGwg
dG8tbW9ycm93LDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNTc+QW5kIGJldGltZXMgSSB3aWxsLCB0
byB0aGUgd2VpcmQgc2lzdGVyczo8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTU4Pk1vcmUgc2hhbGwg
dGhleSBzcGVhazsgZm9yIG5vdyBJIGFtIGJlbnQgdG8ga25vdyw8L0E+PGJyPgorPEEgTkFNRT0z
LjQuMTU5PkJ5IHRoZSB3b3JzdCBtZWFucywgdGhlIHdvcnN0LiBGb3IgbWluZSBvd24gZ29vZCw8
L0E+PGJyPgorPEEgTkFNRT0zLjQuMTYwPkFsbCBjYXVzZXMgc2hhbGwgZ2l2ZSB3YXk6IEkgYW0g
aW4gYmxvb2Q8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTYxPlN0ZXBwJ2QgaW4gc28gZmFyIHRoYXQs
IHNob3VsZCBJIHdhZGUgbm8gbW9yZSw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTYyPlJldHVybmlu
ZyB3ZXJlIGFzIHRlZGlvdXMgYXMgZ28gbydlcjo8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTYzPlN0
cmFuZ2UgdGhpbmdzIEkgaGF2ZSBpbiBoZWFkLCB0aGF0IHdpbGwgdG8gaGFuZDs8L0E+PGJyPgor
PEEgTkFNRT0zLjQuMTY0PldoaWNoIG11c3QgYmUgYWN0ZWQgZXJlIHRoZXkgbWF5IGJlIHNjYW5u
J2QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1Mj48Yj5MQURZIE1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xNjU+WW91IGxhY2sgdGhl
IHNlYXNvbiBvZiBhbGwgbmF0dXJlcywgc2xlZXAuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2g1Mz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0zLjQuMTY2PkNvbWUsIHdlJ2xsIHRvIHNsZWVwLiBNeSBzdHJhbmdlIGFuZCBzZWxmLWFidXNl
PC9BPjxicj4KKzxBIE5BTUU9My40LjE2Nz5JcyB0aGUgaW5pdGlhdGUgZmVhciB0aGF0IHdhbnRz
IGhhcmQgdXNlOjwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNjg+V2UgYXJlIHlldCBidXQgeW91bmcg
aW4gZGVlZC48L0E+PGJyPgorPHA+PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxo
Mz5TQ0VORSBWLiBBIEhlYXRoLjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPlRodW5kZXIuIEVu
dGVyIHRoZSB0aHJlZSBXaXRjaGVzIG1lZXRpbmcgSEVDQVRFPC9pPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDE+PGI+Rmlyc3QgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTMuNS4xPldoeSwgaG93IG5vdywgSGVjYXRlISB5b3UgbG9vayBhbmdlcmx5LjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5IRUNBVEU8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNS4yPkhhdmUgSSBub3QgcmVhc29uLCBiZWxkYW1zIGFz
IHlvdSBhcmUsPC9BPjxicj4KKzxBIE5BTUU9My41LjM+U2F1Y3kgYW5kIG92ZXJib2xkPyBIb3cg
ZGlkIHlvdSBkYXJlPC9BPjxicj4KKzxBIE5BTUU9My41LjQ+VG8gdHJhZGUgYW5kIHRyYWZmaWMg
d2l0aCBNYWNiZXRoPC9BPjxicj4KKzxBIE5BTUU9My41LjU+SW4gcmlkZGxlcyBhbmQgYWZmYWly
cyBvZiBkZWF0aDs8L0E+PGJyPgorPEEgTkFNRT0zLjUuNj5BbmQgSSwgdGhlIG1pc3RyZXNzIG9m
IHlvdXIgY2hhcm1zLDwvQT48YnI+Cis8QSBOQU1FPTMuNS43PlRoZSBjbG9zZSBjb250cml2ZXIg
b2YgYWxsIGhhcm1zLDwvQT48YnI+Cis8QSBOQU1FPTMuNS44PldhcyBuZXZlciBjYWxsJ2QgdG8g
YmVhciBteSBwYXJ0LDwvQT48YnI+Cis8QSBOQU1FPTMuNS45Pk9yIHNob3cgdGhlIGdsb3J5IG9m
IG91ciBhcnQ/PC9BPjxicj4KKzxBIE5BTUU9My41LjEwPkFuZCwgd2hpY2ggaXMgd29yc2UsIGFs
bCB5b3UgaGF2ZSBkb25lPC9BPjxicj4KKzxBIE5BTUU9My41LjExPkhhdGggYmVlbiBidXQgZm9y
IGEgd2F5d2FyZCBzb24sPC9BPjxicj4KKzxBIE5BTUU9My41LjEyPlNwaXRlZnVsIGFuZCB3cmF0
aGZ1bCwgd2hvLCBhcyBvdGhlcnMgZG8sPC9BPjxicj4KKzxBIE5BTUU9My41LjEzPkxvdmVzIGZv
ciBoaXMgb3duIGVuZHMsIG5vdCBmb3IgeW91LjwvQT48YnI+Cis8QSBOQU1FPTMuNS4xND5CdXQg
bWFrZSBhbWVuZHMgbm93OiBnZXQgeW91IGdvbmUsPC9BPjxicj4KKzxBIE5BTUU9My41LjE1PkFu
ZCBhdCB0aGUgcGl0IG9mIEFjaGVyb248L0E+PGJyPgorPEEgTkFNRT0zLjUuMTY+TWVldCBtZSBp
JyB0aGUgbW9ybmluZzogdGhpdGhlciBoZTwvQT48YnI+Cis8QSBOQU1FPTMuNS4xNz5XaWxsIGNv
bWUgdG8ga25vdyBoaXMgZGVzdGlueTo8L0E+PGJyPgorPEEgTkFNRT0zLjUuMTg+WW91ciB2ZXNz
ZWxzIGFuZCB5b3VyIHNwZWxscyBwcm92aWRlLDwvQT48YnI+Cis8QSBOQU1FPTMuNS4xOT5Zb3Vy
IGNoYXJtcyBhbmQgZXZlcnkgdGhpbmcgYmVzaWRlLjwvQT48YnI+Cis8QSBOQU1FPTMuNS4yMD5J
IGFtIGZvciB0aGUgYWlyOyB0aGlzIG5pZ2h0IEknbGwgc3BlbmQ8L0E+PGJyPgorPEEgTkFNRT0z
LjUuMjE+VW50byBhIGRpc21hbCBhbmQgYSBmYXRhbCBlbmQ6PC9BPjxicj4KKzxBIE5BTUU9My41
LjIyPkdyZWF0IGJ1c2luZXNzIG11c3QgYmUgd3JvdWdodCBlcmUgbm9vbjo8L0E+PGJyPgorPEEg
TkFNRT0zLjUuMjM+VXBvbiB0aGUgY29ybmVyIG9mIHRoZSBtb29uPC9BPjxicj4KKzxBIE5BTUU9
My41LjI0PlRoZXJlIGhhbmdzIGEgdmFwb3JvdXMgZHJvcCBwcm9mb3VuZDs8L0E+PGJyPgorPEEg
TkFNRT0zLjUuMjU+SSdsbCBjYXRjaCBpdCBlcmUgaXQgY29tZSB0byBncm91bmQ6PC9BPjxicj4K
KzxBIE5BTUU9My41LjI2PkFuZCB0aGF0IGRpc3RpbGwnZCBieSBtYWdpYyBzbGVpZ2h0czwvQT48
YnI+Cis8QSBOQU1FPTMuNS4yNz5TaGFsbCByYWlzZSBzdWNoIGFydGlmaWNpYWwgc3ByaXRlczwv
QT48YnI+Cis8QSBOQU1FPTMuNS4yOD5BcyBieSB0aGUgc3RyZW5ndGggb2YgdGhlaXIgaWxsdXNp
b248L0E+PGJyPgorPEEgTkFNRT0zLjUuMjk+U2hhbGwgZHJhdyBoaW0gb24gdG8gaGlzIGNvbmZ1
c2lvbjo8L0E+PGJyPgorPEEgTkFNRT0zLjUuMzA+SGUgc2hhbGwgc3B1cm4gZmF0ZSwgc2Nvcm4g
ZGVhdGgsIGFuZCBiZWFyPC9BPjxicj4KKzxBIE5BTUU9My41LjMxPkhlIGhvcGVzICdib3ZlIHdp
c2RvbSwgZ3JhY2UgYW5kIGZlYXI6PC9BPjxicj4KKzxBIE5BTUU9My41LjMyPkFuZCB5b3UgYWxs
IGtub3csIHNlY3VyaXR5PC9BPjxicj4KKzxBIE5BTUU9My41LjMzPklzIG1vcnRhbHMnIGNoaWVm
ZXN0IGVuZW15LjwvQT48YnI+Cis8cD48aT5NdXNpYyBhbmQgYSBzb25nIHdpdGhpbjogJ0NvbWUg
YXdheSwgY29tZSBhd2F5LCcgICYgYzwvaT48L3A+Cis8QSBOQU1FPTMuNS4zND5IYXJrISBJIGFt
IGNhbGwnZDsgbXkgbGl0dGxlIHNwaXJpdCwgc2VlLDwvQT48YnI+Cis8QSBOQU1FPTMuNS4zNT5T
aXRzIGluIGEgZm9nZ3kgY2xvdWQsIGFuZCBzdGF5cyBmb3IgbWUuPC9BPjxicj4KKzxwPjxpPkV4
aXQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+Rmlyc3QgV2l0
Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNS4zNj5Db21lLCBsZXQncyBtYWtl
IGhhc3RlOyBzaGUnbGwgc29vbiBiZSBiYWNrIGFnYWluLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8
L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIFZJLiBGb3JyZXMuIFRoZSBwYWxhY2Uu
PC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50ZXIgTEVOTk9YIGFuZCBhbm90aGVyIExvcmQ8
L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5MRU5OT1g8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNi4xPk15IGZvcm1lciBzcGVlY2hlcyBoYXZlIGJ1dCBo
aXQgeW91ciB0aG91Z2h0cyw8L0E+PGJyPgorPEEgTkFNRT0zLjYuMj5XaGljaCBjYW4gaW50ZXJw
cmV0IGZ1cnRoZXI6IG9ubHksIEkgc2F5LDwvQT48YnI+Cis8QSBOQU1FPTMuNi4zPlRoaW5ncyBo
YXZlIGJlZW4gc3RyYW5nZWx5IGJvcm5lLiBUaGU8L0E+PGJyPgorPEEgTkFNRT0zLjYuND5ncmFj
aW91cyBEdW5jYW48L0E+PGJyPgorPEEgTkFNRT0zLjYuNT5XYXMgcGl0aWVkIG9mIE1hY2JldGg6
IG1hcnJ5LCBoZSB3YXMgZGVhZDo8L0E+PGJyPgorPEEgTkFNRT0zLjYuNj5BbmQgdGhlIHJpZ2h0
LXZhbGlhbnQgQmFucXVvIHdhbGsnZCB0b28gbGF0ZTs8L0E+PGJyPgorPEEgTkFNRT0zLjYuNz5X
aG9tLCB5b3UgbWF5IHNheSwgaWYndCBwbGVhc2UgeW91LCBGbGVhbmNlIGtpbGwnZCw8L0E+PGJy
PgorPEEgTkFNRT0zLjYuOD5Gb3IgRmxlYW5jZSBmbGVkOiBtZW4gbXVzdCBub3Qgd2FsayB0b28g
bGF0ZS48L0E+PGJyPgorPEEgTkFNRT0zLjYuOT5XaG8gY2Fubm90IHdhbnQgdGhlIHRob3VnaHQg
aG93IG1vbnN0cm91czwvQT48YnI+Cis8QSBOQU1FPTMuNi4xMD5JdCB3YXMgZm9yIE1hbGNvbG0g
YW5kIGZvciBEb25hbGJhaW48L0E+PGJyPgorPEEgTkFNRT0zLjYuMTE+VG8ga2lsbCB0aGVpciBn
cmFjaW91cyBmYXRoZXI/IGRhbW5lZCBmYWN0ITwvQT48YnI+Cis8QSBOQU1FPTMuNi4xMj5Ib3cg
aXQgZGlkIGdyaWV2ZSBNYWNiZXRoISBkaWQgaGUgbm90IHN0cmFpZ2h0PC9BPjxicj4KKzxBIE5B
TUU9My42LjEzPkluIHBpb3VzIHJhZ2UgdGhlIHR3byBkZWxpbnF1ZW50cyB0ZWFyLDwvQT48YnI+
Cis8QSBOQU1FPTMuNi4xND5UaGF0IHdlcmUgdGhlIHNsYXZlcyBvZiBkcmluayBhbmQgdGhyYWxs
cyBvZiBzbGVlcD88L0E+PGJyPgorPEEgTkFNRT0zLjYuMTU+V2FzIG5vdCB0aGF0IG5vYmx5IGRv
bmU/IEF5LCBhbmQgd2lzZWx5IHRvbzs8L0E+PGJyPgorPEEgTkFNRT0zLjYuMTY+Rm9yICd0d291
bGQgaGF2ZSBhbmdlcidkIGFueSBoZWFydCBhbGl2ZTwvQT48YnI+Cis8QSBOQU1FPTMuNi4xNz5U
byBoZWFyIHRoZSBtZW4gZGVueSd0LiBTbyB0aGF0LCBJIHNheSw8L0E+PGJyPgorPEEgTkFNRT0z
LjYuMTg+SGUgaGFzIGJvcm5lIGFsbCB0aGluZ3Mgd2VsbDogYW5kIEkgZG8gdGhpbms8L0E+PGJy
PgorPEEgTkFNRT0zLjYuMTk+VGhhdCBoYWQgaGUgRHVuY2FuJ3Mgc29ucyB1bmRlciBoaXMga2V5
LS08L0E+PGJyPgorPEEgTkFNRT0zLjYuMjA+QXMsIGFuJ3QgcGxlYXNlIGhlYXZlbiwgaGUgc2hh
bGwgbm90LS10aGV5PC9BPjxicj4KKzxBIE5BTUU9My42LjIxPnNob3VsZCBmaW5kPC9BPjxicj4K
KzxBIE5BTUU9My42LjIyPldoYXQgJ3R3ZXJlIHRvIGtpbGwgYSBmYXRoZXI7IHNvIHNob3VsZCBG
bGVhbmNlLjwvQT48YnI+Cis8QSBOQU1FPTMuNi4yMz5CdXQsIHBlYWNlISBmb3IgZnJvbSBicm9h
ZCB3b3JkcyBhbmQgJ2NhdXNlIGhlIGZhaWwnZDwvQT48YnI+Cis8QSBOQU1FPTMuNi4yND5IaXMg
cHJlc2VuY2UgYXQgdGhlIHR5cmFudCdzIGZlYXN0LCBJIGhlYXI8L0E+PGJyPgorPEEgTkFNRT0z
LjYuMjU+TWFjZHVmZiBsaXZlcyBpbiBkaXNncmFjZTogc2lyLCBjYW4geW91IHRlbGw8L0E+PGJy
PgorPEEgTkFNRT0zLjYuMjY+V2hlcmUgaGUgYmVzdG93cyBoaW1zZWxmPzwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5Mb3JkPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0zLjYuMjc+VGhlIHNvbiBvZiBEdW5jYW4sPC9BPjxicj4KKzxBIE5BTUU9My42
LjI4PkZyb20gd2hvbSB0aGlzIHR5cmFudCBob2xkcyB0aGUgZHVlIG9mIGJpcnRoPC9BPjxicj4K
KzxBIE5BTUU9My42LjI5PkxpdmVzIGluIHRoZSBFbmdsaXNoIGNvdXJ0LCBhbmQgaXMgcmVjZWl2
ZWQ8L0E+PGJyPgorPEEgTkFNRT0zLjYuMzA+T2YgdGhlIG1vc3QgcGlvdXMgRWR3YXJkIHdpdGgg
c3VjaCBncmFjZTwvQT48YnI+Cis8QSBOQU1FPTMuNi4zMT5UaGF0IHRoZSBtYWxldm9sZW5jZSBv
ZiBmb3J0dW5lIG5vdGhpbmc8L0E+PGJyPgorPEEgTkFNRT0zLjYuMzI+VGFrZXMgZnJvbSBoaXMg
aGlnaCByZXNwZWN0OiB0aGl0aGVyIE1hY2R1ZmY8L0E+PGJyPgorPEEgTkFNRT0zLjYuMzM+SXMg
Z29uZSB0byBwcmF5IHRoZSBob2x5IGtpbmcsIHVwb24gaGlzIGFpZDwvQT48YnI+Cis8QSBOQU1F
PTMuNi4zND5UbyB3YWtlIE5vcnRodW1iZXJsYW5kIGFuZCB3YXJsaWtlIFNpd2FyZDo8L0E+PGJy
PgorPEEgTkFNRT0zLjYuMzU+VGhhdCwgYnkgdGhlIGhlbHAgb2YgdGhlc2UtLXdpdGggSGltIGFi
b3ZlPC9BPjxicj4KKzxBIE5BTUU9My42LjM2PlRvIHJhdGlmeSB0aGUgd29yay0td2UgbWF5IGFn
YWluPC9BPjxicj4KKzxBIE5BTUU9My42LjM3PkdpdmUgdG8gb3VyIHRhYmxlcyBtZWF0LCBzbGVl
cCB0byBvdXIgbmlnaHRzLDwvQT48YnI+Cis8QSBOQU1FPTMuNi4zOD5GcmVlIGZyb20gb3VyIGZl
YXN0cyBhbmQgYmFucXVldHMgYmxvb2R5IGtuaXZlcyw8L0E+PGJyPgorPEEgTkFNRT0zLjYuMzk+
RG8gZmFpdGhmdWwgaG9tYWdlIGFuZCByZWNlaXZlIGZyZWUgaG9ub3Vyczo8L0E+PGJyPgorPEEg
TkFNRT0zLjYuNDA+QWxsIHdoaWNoIHdlIHBpbmUgZm9yIG5vdzogYW5kIHRoaXMgcmVwb3J0PC9B
Pjxicj4KKzxBIE5BTUU9My42LjQxPkhhdGggc28gZXhhc3BlcmF0ZSB0aGUga2luZyB0aGF0IGhl
PC9BPjxicj4KKzxBIE5BTUU9My42LjQyPlByZXBhcmVzIGZvciBzb21lIGF0dGVtcHQgb2Ygd2Fy
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5MRU5OT1g8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNi40Mz5TZW50IGhlIHRvIE1hY2R1ZmY/PC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPkxvcmQ8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNi40ND5IZSBkaWQ6IGFuZCB3aXRoIGFuIGFic29sdXRl
ICdTaXIsIG5vdCBJLCc8L0E+PGJyPgorPEEgTkFNRT0zLjYuNDU+VGhlIGNsb3VkeSBtZXNzZW5n
ZXIgdHVybnMgbWUgaGlzIGJhY2ssPC9BPjxicj4KKzxBIE5BTUU9My42LjQ2PkFuZCBodW1zLCBh
cyB3aG8gc2hvdWxkIHNheSAnWW91J2xsIHJ1ZSB0aGUgdGltZTwvQT48YnI+Cis8QSBOQU1FPTMu
Ni40Nz5UaGF0IGNsb2dzIG1lIHdpdGggdGhpcyBhbnN3ZXIuJzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5MRU5OT1g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTMuNi40OD5BbmQgdGhhdCB3ZWxsIG1pZ2h0PC9BPjxicj4KKzxBIE5BTUU9My42LjQ5
PkFkdmlzZSBoaW0gdG8gYSBjYXV0aW9uLCB0byBob2xkIHdoYXQgZGlzdGFuY2U8L0E+PGJyPgor
PEEgTkFNRT0zLjYuNTA+SGlzIHdpc2RvbSBjYW4gcHJvdmlkZS4gU29tZSBob2x5IGFuZ2VsPC9B
Pjxicj4KKzxBIE5BTUU9My42LjUxPkZseSB0byB0aGUgY291cnQgb2YgRW5nbGFuZCBhbmQgdW5m
b2xkPC9BPjxicj4KKzxBIE5BTUU9My42LjUyPkhpcyBtZXNzYWdlIGVyZSBoZSBjb21lLCB0aGF0
IGEgc3dpZnQgYmxlc3Npbmc8L0E+PGJyPgorPEEgTkFNRT0zLjYuNTM+TWF5IHNvb24gcmV0dXJu
IHRvIHRoaXMgb3VyIHN1ZmZlcmluZyBjb3VudHJ5PC9BPjxicj4KKzxBIE5BTUU9My42LjU0PlVu
ZGVyIGEgaGFuZCBhY2N1cnNlZCE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDY+PGI+TG9yZDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My42LjU1PkknbGwg
c2VuZCBteSBwcmF5ZXJzIHdpdGggaGltLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgor
PC9ibG9ja3F1b3RlPjxwPgorPEgzPkFDVCBJVjwvaDM+Cis8aDM+U0NFTkUgSS4gQSBjYXZlcm4u
IEluIHRoZSBtaWRkbGUsIGEgYm9pbGluZyBjYXVsZHJvbi48L2gzPgorPHA+PGJsb2NrcXVvdGU+
Cis8aT5UaHVuZGVyLiBFbnRlciB0aGUgdGhyZWUgV2l0Y2hlczwvaT4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxPjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjEuMT5UaHJpY2UgdGhlIGJyaW5kZWQgY2F0IGhhdGggbWV3J2QuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPlNlY29uZCBXaXRjaDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjI+VGhyaWNlIGFuZCBvbmNlIHRoZSBoZWRnZS1w
aWcgd2hpbmVkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5U
aGlyZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjM+SGFycGllciBj
cmllcyAnVGlzIHRpbWUsICd0aXMgdGltZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDQ+PGI+Rmlyc3QgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTQuMS40PlJvdW5kIGFib3V0IHRoZSBjYXVsZHJvbiBnbzs8L0E+PGJyPgorPEEgTkFNRT00LjEu
NT5JbiB0aGUgcG9pc29uJ2QgZW50cmFpbHMgdGhyb3cuPC9BPjxicj4KKzxBIE5BTUU9NC4xLjY+
VG9hZCwgdGhhdCB1bmRlciBjb2xkIHN0b25lPC9BPjxicj4KKzxBIE5BTUU9NC4xLjc+RGF5cyBh
bmQgbmlnaHRzIGhhcyB0aGlydHktb25lPC9BPjxicj4KKzxBIE5BTUU9NC4xLjg+U3dlbHRlcidk
IHZlbm9tIHNsZWVwaW5nIGdvdCw8L0E+PGJyPgorPEEgTkFNRT00LjEuOT5Cb2lsIHRob3UgZmly
c3QgaScgdGhlIGNoYXJtZWQgcG90LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoNT48Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xMD5Eb3Vi
bGUsIGRvdWJsZSB0b2lsIGFuZCB0cm91YmxlOzwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMT5GaXJl
IGJ1cm4sIGFuZCBjYXVsZHJvbiBidWJibGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g2PjxiPlNlY29uZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NC4xLjEyPkZpbGxldCBvZiBhIGZlbm55IHNuYWtlLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4x
Mz5JbiB0aGUgY2F1bGRyb24gYm9pbCBhbmQgYmFrZTs8L0E+PGJyPgorPEEgTkFNRT00LjEuMTQ+
RXllIG9mIG5ld3QgYW5kIHRvZSBvZiBmcm9nLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xNT5Xb29s
IG9mIGJhdCBhbmQgdG9uZ3VlIG9mIGRvZyw8L0E+PGJyPgorPEEgTkFNRT00LjEuMTY+QWRkZXIn
cyBmb3JrIGFuZCBibGluZC13b3JtJ3Mgc3RpbmcsPC9BPjxicj4KKzxBIE5BTUU9NC4xLjE3Pkxp
emFyZCdzIGxlZyBhbmQgb3dsZXQncyB3aW5nLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xOD5Gb3Ig
YSBjaGFybSBvZiBwb3dlcmZ1bCB0cm91YmxlLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xOT5MaWtl
IGEgaGVsbC1icm90aCBib2lsIGFuZCBidWJibGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2g3PjxiPkFMTDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4x
LjIwPkRvdWJsZSwgZG91YmxlIHRvaWwgYW5kIHRyb3VibGU7PC9BPjxicj4KKzxBIE5BTUU9NC4x
LjIxPkZpcmUgYnVybiBhbmQgY2F1bGRyb24gYnViYmxlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5UaGlyZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NC4xLjIyPlNjYWxlIG9mIGRyYWdvbiwgdG9vdGggb2Ygd29sZiw8L0E+PGJyPgor
PEEgTkFNRT00LjEuMjM+V2l0Y2hlcycgbXVtbXksIG1hdyBhbmQgZ3VsZjwvQT48YnI+Cis8QSBO
QU1FPTQuMS4yND5PZiB0aGUgcmF2aW4nZCBzYWx0LXNlYSBzaGFyayw8L0E+PGJyPgorPEEgTkFN
RT00LjEuMjU+Um9vdCBvZiBoZW1sb2NrIGRpZ2cnZCBpJyB0aGUgZGFyayw8L0E+PGJyPgorPEEg
TkFNRT00LjEuMjY+TGl2ZXIgb2YgYmxhc3BoZW1pbmcgSmV3LDwvQT48YnI+Cis8QSBOQU1FPTQu
MS4yNz5HYWxsIG9mIGdvYXQsIGFuZCBzbGlwcyBvZiB5ZXc8L0E+PGJyPgorPEEgTkFNRT00LjEu
Mjg+U2lsdmVyJ2QgaW4gdGhlIG1vb24ncyBlY2xpcHNlLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4y
OT5Ob3NlIG9mIFR1cmsgYW5kIFRhcnRhcidzIGxpcHMsPC9BPjxicj4KKzxBIE5BTUU9NC4xLjMw
PkZpbmdlciBvZiBiaXJ0aC1zdHJhbmdsZWQgYmFiZTwvQT48YnI+Cis8QSBOQU1FPTQuMS4zMT5E
aXRjaC1kZWxpdmVyJ2QgYnkgYSBkcmFiLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4zMj5NYWtlIHRo
ZSBncnVlbCB0aGljayBhbmQgc2xhYjo8L0E+PGJyPgorPEEgTkFNRT00LjEuMzM+QWRkIHRoZXJl
dG8gYSB0aWdlcidzIGNoYXVkcm9uLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4zND5Gb3IgdGhlIGlu
Z3JlZGllbnRzIG9mIG91ciBjYXVsZHJvbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDk+PGI+QUxMPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMzU+
RG91YmxlLCBkb3VibGUgdG9pbCBhbmQgdHJvdWJsZTs8L0E+PGJyPgorPEEgTkFNRT00LjEuMzY+
RmlyZSBidXJuIGFuZCBjYXVsZHJvbiBidWJibGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxMD48Yj5TZWNvbmQgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTQuMS4zNz5Db29sIGl0IHdpdGggYSBiYWJvb24ncyBibG9vZCw8L0E+PGJyPgorPEEg
TkFNRT00LjEuMzg+VGhlbiB0aGUgY2hhcm0gaXMgZmlybSBhbmQgZ29vZC48L0E+PGJyPgorPHA+
PGk+RW50ZXIgSEVDQVRFIHRvIHRoZSBvdGhlciB0aHJlZSBXaXRjaGVzPC9pPjwvcD4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5IRUNBVEU8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTQuMS4zOT5PIHdlbGwgZG9uZSEgSSBjb21tZW5kIHlvdXIgcGFpbnM7PC9B
Pjxicj4KKzxBIE5BTUU9NC4xLjQwPkFuZCBldmVyeSBvbmUgc2hhbGwgc2hhcmUgaScgdGhlIGdh
aW5zOzwvQT48YnI+Cis8QSBOQU1FPTQuMS40MT5BbmQgbm93IGFib3V0IHRoZSBjYXVsZHJvbiBz
aW5nLDwvQT48YnI+Cis8QSBOQU1FPTQuMS40Mj5MaXZlIGVsdmVzIGFuZCBmYWlyaWVzIGluIGEg
cmluZyw8L0E+PGJyPgorPEEgTkFNRT00LjEuNDM+RW5jaGFudGluZyBhbGwgdGhhdCB5b3UgcHV0
IGluLjwvQT48YnI+Cis8cD48aT5NdXNpYyBhbmQgYSBzb25nOiAnQmxhY2sgc3Bpcml0cywnICAm
IGM8L2k+PC9wPgorPHA+PGk+SEVDQVRFIHJldGlyZXM8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDEyPjxiPlNlY29uZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NC4xLjQ0PkJ5IHRoZSBwcmlja2luZyBvZiBteSB0aHVtYnMsPC9BPjxicj4KKzxB
IE5BTUU9NC4xLjQ1PlNvbWV0aGluZyB3aWNrZWQgdGhpcyB3YXkgY29tZXMuPC9BPjxicj4KKzxB
IE5BTUU9NC4xLjQ2Pk9wZW4sIGxvY2tzLDwvQT48YnI+Cis8QSBOQU1FPTQuMS40Nz5XaG9ldmVy
IGtub2NrcyE8L0E+PGJyPgorPHA+PGk+RW50ZXIgTUFDQkVUSDwvaT48L3A+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NC4xLjQ4PkhvdyBub3csIHlvdSBzZWNyZXQsIGJsYWNrLCBhbmQgbWlkbmlnaHQg
aGFncyE8L0E+PGJyPgorPEEgTkFNRT00LjEuNDk+V2hhdCBpcyd0IHlvdSBkbz88L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPkFMTDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NC4xLjUwPiAgICAgICAgICAgICAgICAgIEEgZGVlZCB3aXRob3V0IGEg
bmFtZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE1PjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS41MT5JIGNvbmp1cmUgeW91LCBi
eSB0aGF0IHdoaWNoIHlvdSBwcm9mZXNzLDwvQT48YnI+Cis8QSBOQU1FPTQuMS41Mj5Ib3dlJ2Vy
IHlvdSBjb21lIHRvIGtub3cgaXQsIGFuc3dlciBtZTo8L0E+PGJyPgorPEEgTkFNRT00LjEuNTM+
VGhvdWdoIHlvdSB1bnRpZSB0aGUgd2luZHMgYW5kIGxldCB0aGVtIGZpZ2h0PC9BPjxicj4KKzxB
IE5BTUU9NC4xLjU0PkFnYWluc3QgdGhlIGNodXJjaGVzOyB0aG91Z2ggdGhlIHllc3R5IHdhdmVz
PC9BPjxicj4KKzxBIE5BTUU9NC4xLjU1PkNvbmZvdW5kIGFuZCBzd2FsbG93IG5hdmlnYXRpb24g
dXA7PC9BPjxicj4KKzxBIE5BTUU9NC4xLjU2PlRob3VnaCBibGFkZWQgY29ybiBiZSBsb2RnZWQg
YW5kIHRyZWVzIGJsb3duIGRvd247PC9BPjxicj4KKzxBIE5BTUU9NC4xLjU3PlRob3VnaCBjYXN0
bGVzIHRvcHBsZSBvbiB0aGVpciB3YXJkZXJzJyBoZWFkczs8L0E+PGJyPgorPEEgTkFNRT00LjEu
NTg+VGhvdWdoIHBhbGFjZXMgYW5kIHB5cmFtaWRzIGRvIHNsb3BlPC9BPjxicj4KKzxBIE5BTUU9
NC4xLjU5PlRoZWlyIGhlYWRzIHRvIHRoZWlyIGZvdW5kYXRpb25zOyB0aG91Z2ggdGhlIHRyZWFz
dXJlPC9BPjxicj4KKzxBIE5BTUU9NC4xLjYwPk9mIG5hdHVyZSdzIGdlcm1lbnMgdHVtYmxlIGFs
bCB0b2dldGhlciw8L0E+PGJyPgorPEEgTkFNRT00LjEuNjE+RXZlbiB0aWxsIGRlc3RydWN0aW9u
IHNpY2tlbjsgYW5zd2VyIG1lPC9BPjxicj4KKzxBIE5BTUU9NC4xLjYyPlRvIHdoYXQgSSBhc2sg
eW91LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTY+PGI+Rmlyc3Qg
V2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS42Mz4gICAgICAgICAgICAg
ICAgICBTcGVhay48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE3Pjxi
PlNlY29uZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjY0PkRlbWFu
ZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE4PjxiPlRoaXJkIFdp
dGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuNjU+V2UnbGwgYW5zd2VyLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTk+PGI+Rmlyc3QgV2l0Y2g8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS42Nj5TYXksIGlmIHRob3UnZHN0IHJh
dGhlciBoZWFyIGl0IGZyb20gb3VyIG1vdXRocyw8L0E+PGJyPgorPEEgTkFNRT00LjEuNjc+T3Ig
ZnJvbSBvdXIgbWFzdGVycz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDIwPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS42OD5DYWxs
ICdlbTsgbGV0IG1lIHNlZSAnZW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gyMT48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4x
LjY5PlBvdXIgaW4gc293J3MgYmxvb2QsIHRoYXQgaGF0aCBlYXRlbjwvQT48YnI+Cis8QSBOQU1F
PTQuMS43MD5IZXIgbmluZSBmYXJyb3c7IGdyZWFzZSB0aGF0J3Mgc3dlYXRlbjwvQT48YnI+Cis8
QSBOQU1FPTQuMS43MT5Gcm9tIHRoZSBtdXJkZXJlcidzIGdpYmJldCB0aHJvdzwvQT48YnI+Cis8
QSBOQU1FPTQuMS43Mj5JbnRvIHRoZSBmbGFtZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDIyPjxiPkFMTDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4x
LjczPiAgICAgICAgICAgICAgICAgIENvbWUsIGhpZ2ggb3IgbG93OzwvQT48YnI+Cis8QSBOQU1F
PTQuMS43ND5UaHlzZWxmIGFuZCBvZmZpY2UgZGVmdGx5IHNob3chPC9BPjxicj4KKzxwPjxpPlRo
dW5kZXIuIEZpcnN0IEFwcGFyaXRpb246IGFuIGFybWVkIEhlYWQ8L2k+PC9wPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDIzPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTQuMS43NT5UZWxsIG1lLCB0aG91IHVua25vd24gcG93ZXIsLS08L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI0PjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuNzY+SGUga25vd3MgdGh5IHRob3VnaHQ6PC9BPjxi
cj4KKzxBIE5BTUU9NC4xLjc3PkhlYXIgaGlzIHNwZWVjaCwgYnV0IHNheSB0aG91IG5vdWdodC48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI1PjxiPkZpcnN0IEFwcGFy
aXRpb248L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS43OD5NYWNiZXRoISBNYWNi
ZXRoISBNYWNiZXRoISBiZXdhcmUgTWFjZHVmZjs8L0E+PGJyPgorPEEgTkFNRT00LjEuNzk+QmV3
YXJlIHRoZSB0aGFuZSBvZiBGaWZlLiBEaXNtaXNzIG1lLiBFbm91Z2guPC9BPjxicj4KKzxwPjxp
PkRlc2NlbmRzPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNj48Yj5N
QUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuODA+V2hhdGUnZXIgdGhv
dSBhcnQsIGZvciB0aHkgZ29vZCBjYXV0aW9uLCB0aGFua3M7PC9BPjxicj4KKzxBIE5BTUU9NC4x
LjgxPlRob3UgaGFzdCBoYXJwJ2QgbXkgZmVhciBhcmlnaHQ6IGJ1dCBvbmU8L0E+PGJyPgorPEEg
TkFNRT00LjEuODI+d29yZCBtb3JlLC0tPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gyNz48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4xLjgzPkhlIHdpbGwgbm90IGJlIGNvbW1hbmRlZDogaGVyZSdzIGFub3RoZXIsPC9BPjxicj4K
KzxBIE5BTUU9NC4xLjg0Pk1vcmUgcG90ZW50IHRoYW4gdGhlIGZpcnN0LjwvQT48YnI+Cis8cD48
aT5UaHVuZGVyLiBTZWNvbmQgQXBwYXJpdGlvbjogQSBibG9vZHkgQ2hpbGQ8L2k+PC9wPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI4PjxiPlNlY29uZCBBcHBhcml0aW9uPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuODU+TWFjYmV0aCEgTWFjYmV0aCEgTWFjYmV0
aCE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI5PjxiPk1BQ0JFVEg8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS44Nj5IYWQgSSB0aHJlZSBlYXJzLCBJ
J2xkIGhlYXIgdGhlZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMw
PjxiPlNlY29uZCBBcHBhcml0aW9uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEu
ODc+QmUgYmxvb2R5LCBib2xkLCBhbmQgcmVzb2x1dGU7IGxhdWdoIHRvIHNjb3JuPC9BPjxicj4K
KzxBIE5BTUU9NC4xLjg4PlRoZSBwb3dlciBvZiBtYW4sIGZvciBub25lIG9mIHdvbWFuIGJvcm48
L0E+PGJyPgorPEEgTkFNRT00LjEuODk+U2hhbGwgaGFybSBNYWNiZXRoLjwvQT48YnI+Cis8cD48
aT5EZXNjZW5kczwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzE+PGI+
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjkwPlRoZW4gbGl2ZSwg
TWFjZHVmZjogd2hhdCBuZWVkIEkgZmVhciBvZiB0aGVlPzwvQT48YnI+Cis8QSBOQU1FPTQuMS45
MT5CdXQgeWV0IEknbGwgbWFrZSBhc3N1cmFuY2UgZG91YmxlIHN1cmUsPC9BPjxicj4KKzxBIE5B
TUU9NC4xLjkyPkFuZCB0YWtlIGEgYm9uZCBvZiBmYXRlOiB0aG91IHNoYWx0IG5vdCBsaXZlOzwv
QT48YnI+Cis8QSBOQU1FPTQuMS45Mz5UaGF0IEkgbWF5IHRlbGwgcGFsZS1oZWFydGVkIGZlYXIg
aXQgbGllcyw8L0E+PGJyPgorPEEgTkFNRT00LjEuOTQ+QW5kIHNsZWVwIGluIHNwaXRlIG9mIHRo
dW5kZXIuPC9BPjxicj4KKzxwPjxpPlRodW5kZXIuIFRoaXJkIEFwcGFyaXRpb246IGEgQ2hpbGQg
Y3Jvd25lZCwgd2l0aCBhIHRyZWUgaW4gaGlzIGhhbmQ8L2k+PC9wPgorPEEgTkFNRT00LjEuOTU+
V2hhdCBpcyB0aGlzPC9BPjxicj4KKzxBIE5BTUU9NC4xLjk2PlRoYXQgcmlzZXMgbGlrZSB0aGUg
aXNzdWUgb2YgYSBraW5nLDwvQT48YnI+Cis8QSBOQU1FPTQuMS45Nz5BbmQgd2VhcnMgdXBvbiBo
aXMgYmFieS1icm93IHRoZSByb3VuZDwvQT48YnI+Cis8QSBOQU1FPTQuMS45OD5BbmQgdG9wIG9m
IHNvdmVyZWlnbnR5PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzI+
PGI+QUxMPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuOTk+TGlzdGVuLCBidXQg
c3BlYWsgbm90IHRvJ3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gz
Mz48Yj5UaGlyZCBBcHBhcml0aW9uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEu
MTAwPkJlIGxpb24tbWV0dGxlZCwgcHJvdWQ7IGFuZCB0YWtlIG5vIGNhcmU8L0E+PGJyPgorPEEg
TkFNRT00LjEuMTAxPldobyBjaGFmZXMsIHdobyBmcmV0cywgb3Igd2hlcmUgY29uc3BpcmVycyBh
cmU6PC9BPjxicj4KKzxBIE5BTUU9NC4xLjEwMj5NYWNiZXRoIHNoYWxsIG5ldmVyIHZhbnF1aXNo
J2QgYmUgdW50aWw8L0E+PGJyPgorPEEgTkFNRT00LjEuMTAzPkdyZWF0IEJpcm5hbSB3b29kIHRv
IGhpZ2ggRHVuc2luYW5lIGhpbGw8L0E+PGJyPgorPEEgTkFNRT00LjEuMTA0PlNoYWxsIGNvbWUg
YWdhaW5zdCBoaW0uPC9BPjxicj4KKzxwPjxpPkRlc2NlbmRzPC9pPjwvcD4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gzND48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjEuMTA1PlRoYXQgd2lsbCBuZXZlciBiZTwvQT48YnI+Cis8QSBOQU1FPTQuMS4x
MDY+V2hvIGNhbiBpbXByZXNzIHRoZSBmb3Jlc3QsIGJpZCB0aGUgdHJlZTwvQT48YnI+Cis8QSBO
QU1FPTQuMS4xMDc+VW5maXggaGlzIGVhcnRoLWJvdW5kIHJvb3Q/IFN3ZWV0IGJvZGVtZW50cyEg
Z29vZCE8L0E+PGJyPgorPEEgTkFNRT00LjEuMTA4PlJlYmVsbGlvbidzIGhlYWQsIHJpc2UgbmV2
ZXIgdGlsbCB0aGUgd29vZDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMDk+T2YgQmlybmFtIHJpc2Us
IGFuZCBvdXIgaGlnaC1wbGFjZWQgTWFjYmV0aDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMTA+U2hh
bGwgbGl2ZSB0aGUgbGVhc2Ugb2YgbmF0dXJlLCBwYXkgaGlzIGJyZWF0aDwvQT48YnI+Cis8QSBO
QU1FPTQuMS4xMTE+VG8gdGltZSBhbmQgbW9ydGFsIGN1c3RvbS4gWWV0IG15IGhlYXJ0PC9BPjxi
cj4KKzxBIE5BTUU9NC4xLjExMj5UaHJvYnMgdG8ga25vdyBvbmUgdGhpbmc6IHRlbGwgbWUsIGlm
IHlvdXIgYXJ0PC9BPjxicj4KKzxBIE5BTUU9NC4xLjExMz5DYW4gdGVsbCBzbyBtdWNoOiBzaGFs
bCBCYW5xdW8ncyBpc3N1ZSBldmVyPC9BPjxicj4KKzxBIE5BTUU9NC4xLjExND5SZWlnbiBpbiB0
aGlzIGtpbmdkb20/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNT48
Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xMTU+U2VlayB0byBrbm93
IG5vIG1vcmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNj48Yj5N
QUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTE2Pkkgd2lsbCBiZSBz
YXRpc2ZpZWQ6IGRlbnkgbWUgdGhpcyw8L0E+PGJyPgorPEEgTkFNRT00LjEuMTE3PkFuZCBhbiBl
dGVybmFsIGN1cnNlIGZhbGwgb24geW91ISBMZXQgbWUga25vdy48L0E+PGJyPgorPEEgTkFNRT00
LjEuMTE4PldoeSBzaW5rcyB0aGF0IGNhdWxkcm9uPyBhbmQgd2hhdCBub2lzZSBpcyB0aGlzPzwv
QT48YnI+Cis8cD48aT5IYXV0Ym95czwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMzc+PGI+Rmlyc3QgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQu
MS4xMTk+U2hvdyE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM4Pjxi
PlNlY29uZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjEyMD5TaG93
ITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzk+PGI+VGhpcmQgV2l0
Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xMjE+U2hvdyE8L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQwPjxiPkFMTDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NC4xLjEyMj5TaG93IGhpcyBleWVzLCBhbmQgZ3JpZXZlIGhpcyBoZWFy
dDs8L0E+PGJyPgorPEEgTkFNRT00LjEuMTIzPkNvbWUgbGlrZSBzaGFkb3dzLCBzbyBkZXBhcnQh
PC9BPjxicj4KKzxwPjxpPkEgc2hvdyBvZiBFaWdodCBLaW5ncywgdGhlIGxhc3Qgd2l0aCBhIGds
YXNzIGluIGhpcyBoYW5kOyBHSE9TVCBPRiBCQU5RVU8gZm9sbG93aW5nPC9pPjwvcD4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0MT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT00LjEuMTI0PlRob3UgYXJ0IHRvbyBsaWtlIHRoZSBzcGlyaXQgb2YgQmFu
cXVvOiBkb3duITwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMjU+VGh5IGNyb3duIGRvZXMgc2VhciBt
aW5lIGV5ZS1iYWxscy4gQW5kIHRoeSBoYWlyLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMjY+VGhv
dSBvdGhlciBnb2xkLWJvdW5kIGJyb3csIGlzIGxpa2UgdGhlIGZpcnN0LjwvQT48YnI+Cis8QSBO
QU1FPTQuMS4xMjc+QSB0aGlyZCBpcyBsaWtlIHRoZSBmb3JtZXIuIEZpbHRoeSBoYWdzITwvQT48
YnI+Cis8QSBOQU1FPTQuMS4xMjg+V2h5IGRvIHlvdSBzaG93IG1lIHRoaXM/IEEgZm91cnRoISBT
dGFydCwgZXllcyE8L0E+PGJyPgorPEEgTkFNRT00LjEuMTI5PldoYXQsIHdpbGwgdGhlIGxpbmUg
c3RyZXRjaCBvdXQgdG8gdGhlIGNyYWNrIG9mIGRvb20/PC9BPjxicj4KKzxBIE5BTUU9NC4xLjEz
MD5Bbm90aGVyIHlldCEgQSBzZXZlbnRoISBJJ2xsIHNlZSBubyBtb3JlOjwvQT48YnI+Cis8QSBO
QU1FPTQuMS4xMzE+QW5kIHlldCB0aGUgZWlnaHRoIGFwcGVhcnMsIHdobyBiZWFycyBhIGdsYXNz
PC9BPjxicj4KKzxBIE5BTUU9NC4xLjEzMj5XaGljaCBzaG93cyBtZSBtYW55IG1vcmU7IGFuZCBz
b21lIEkgc2VlPC9BPjxicj4KKzxBIE5BTUU9NC4xLjEzMz5UaGF0IHR3by1mb2xkIGJhbGxzIGFu
ZCB0cmVibGUgc2NlcHRlcnMgY2Fycnk6PC9BPjxicj4KKzxBIE5BTUU9NC4xLjEzND5Ib3JyaWJs
ZSBzaWdodCEgTm93LCBJIHNlZSwgJ3RpcyB0cnVlOzwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMzU+
Rm9yIHRoZSBibG9vZC1ib2x0ZXInZCBCYW5xdW8gc21pbGVzIHVwb24gbWUsPC9BPjxicj4KKzxB
IE5BTUU9NC4xLjEzNj5BbmQgcG9pbnRzIGF0IHRoZW0gZm9yIGhpcy48L0E+PGJyPgorPHA+PGk+
QXBwYXJpdGlvbnMgdmFuaXNoPC9pPjwvcD4KKzxBIE5BTUU9NC4xLjEzNz5XaGF0LCBpcyB0aGlz
IHNvPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDI+PGI+Rmlyc3Qg
V2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xMzg+QXksIHNpciwgYWxs
IHRoaXMgaXMgc286IGJ1dCB3aHk8L0E+PGJyPgorPEEgTkFNRT00LjEuMTM5PlN0YW5kcyBNYWNi
ZXRoIHRodXMgYW1hemVkbHk/PC9BPjxicj4KKzxBIE5BTUU9NC4xLjE0MD5Db21lLCBzaXN0ZXJz
LCBjaGVlciB3ZSB1cCBoaXMgc3ByaXRlcyw8L0E+PGJyPgorPEEgTkFNRT00LjEuMTQxPkFuZCBz
aG93IHRoZSBiZXN0IG9mIG91ciBkZWxpZ2h0czo8L0E+PGJyPgorPEEgTkFNRT00LjEuMTQyPkkn
bGwgY2hhcm0gdGhlIGFpciB0byBnaXZlIGEgc291bmQsPC9BPjxicj4KKzxBIE5BTUU9NC4xLjE0
Mz5XaGlsZSB5b3UgcGVyZm9ybSB5b3VyIGFudGljIHJvdW5kOjwvQT48YnI+Cis8QSBOQU1FPTQu
MS4xNDQ+VGhhdCB0aGlzIGdyZWF0IGtpbmcgbWF5IGtpbmRseSBzYXksPC9BPjxicj4KKzxBIE5B
TUU9NC4xLjE0NT5PdXIgZHV0aWVzIGRpZCBoaXMgd2VsY29tZSBwYXkuPC9BPjxicj4KKzxwPjxp
Pk11c2ljLiBUaGUgd2l0Y2hlcyBkYW5jZSBhbmQgdGhlbiB2YW5pc2gsIHdpdGggSEVDQVRFPC9p
PjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Mz48Yj5NQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTQ2PldoZXJlIGFyZSB0aGV5PyBHb25lPyBM
ZXQgdGhpcyBwZXJuaWNpb3VzIGhvdXI8L0E+PGJyPgorPEEgTkFNRT00LjEuMTQ3PlN0YW5kIGF5
ZSBhY2N1cnNlZCBpbiB0aGUgY2FsZW5kYXIhPC9BPjxicj4KKzxBIE5BTUU9NC4xLjE0OD5Db21l
IGluLCB3aXRob3V0IHRoZXJlITwvQT48YnI+Cis8cD48aT5FbnRlciBMRU5OT1g8L2k+PC9wPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ0PjxiPkxFTk5PWDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NC4xLjE0OT5XaGF0J3MgeW91ciBncmFjZSdzIHdpbGw/PC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0NT48Yj5NQUNCRVRIPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTUwPlNhdyB5b3UgdGhlIHdlaXJkIHNpc3RlcnM/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Nj48Yj5MRU5OT1g8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNTE+Tm8sIG15IGxvcmQuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Nz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTUyPkNhbWUgdGhleSBub3QgYnkgeW91PzwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDg+PGI+TEVOTk9YPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTUzPk5vLCBpbmRlZWQsIG15IGxvcmQuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0OT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTU0PkluZmVjdGVkIGJlIHRoZSBhaXIgd2hlcmVvbiB0
aGV5IHJpZGU7PC9BPjxicj4KKzxBIE5BTUU9NC4xLjE1NT5BbmQgZGFtbidkIGFsbCB0aG9zZSB0
aGF0IHRydXN0IHRoZW0hIEkgZGlkIGhlYXI8L0E+PGJyPgorPEEgTkFNRT00LjEuMTU2PlRoZSBn
YWxsb3Bpbmcgb2YgaG9yc2U6IHdobyB3YXMndCBjYW1lIGJ5PzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoNTA+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjEuMTU3PidUaXMgdHdvIG9yIHRocmVlLCBteSBsb3JkLCB0aGF0IGJyaW5nIHlv
dSB3b3JkPC9BPjxicj4KKzxBIE5BTUU9NC4xLjE1OD5NYWNkdWZmIGlzIGZsZWQgdG8gRW5nbGFu
ZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUxPjxiPk1BQ0JFVEg8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNTk+RmxlZCB0byBFbmdsYW5kITwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNTI+PGI+TEVOTk9YPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTYwPkF5LCBteSBnb29kIGxvcmQuPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1Mz48Yj5NQUNCRVRIPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTYxPlRpbWUsIHRob3UgYW50aWNpcGF0ZXN0IG15
IGRyZWFkIGV4cGxvaXRzOjwvQT48YnI+Cis8QSBOQU1FPTQuMS4xNjI+VGhlIGZsaWdodHkgcHVy
cG9zZSBuZXZlciBpcyBvJ2VydG9vazwvQT48YnI+Cis8QSBOQU1FPTQuMS4xNjM+VW5sZXNzIHRo
ZSBkZWVkIGdvIHdpdGggaXQ7IGZyb20gdGhpcyBtb21lbnQ8L0E+PGJyPgorPEEgTkFNRT00LjEu
MTY0PlRoZSB2ZXJ5IGZpcnN0bGluZ3Mgb2YgbXkgaGVhcnQgc2hhbGwgYmU8L0E+PGJyPgorPEEg
TkFNRT00LjEuMTY1PlRoZSBmaXJzdGxpbmdzIG9mIG15IGhhbmQuIEFuZCBldmVuIG5vdyw8L0E+
PGJyPgorPEEgTkFNRT00LjEuMTY2PlRvIGNyb3duIG15IHRob3VnaHRzIHdpdGggYWN0cywgYmUg
aXQgdGhvdWdodCBhbmQgZG9uZTo8L0E+PGJyPgorPEEgTkFNRT00LjEuMTY3PlRoZSBjYXN0bGUg
b2YgTWFjZHVmZiBJIHdpbGwgc3VycHJpc2U7PC9BPjxicj4KKzxBIE5BTUU9NC4xLjE2OD5TZWl6
ZSB1cG9uIEZpZmU7IGdpdmUgdG8gdGhlIGVkZ2UgbycgdGhlIHN3b3JkPC9BPjxicj4KKzxBIE5B
TUU9NC4xLjE2OT5IaXMgd2lmZSwgaGlzIGJhYmVzLCBhbmQgYWxsIHVuZm9ydHVuYXRlIHNvdWxz
PC9BPjxicj4KKzxBIE5BTUU9NC4xLjE3MD5UaGF0IHRyYWNlIGhpbSBpbiBoaXMgbGluZS4gTm8g
Ym9hc3RpbmcgbGlrZSBhIGZvb2w7PC9BPjxicj4KKzxBIE5BTUU9NC4xLjE3MT5UaGlzIGRlZWQg
SSdsbCBkbyBiZWZvcmUgdGhpcyBwdXJwb3NlIGNvb2wuPC9BPjxicj4KKzxBIE5BTUU9NC4xLjE3
Mj5CdXQgbm8gbW9yZSBzaWdodHMhLS1XaGVyZSBhcmUgdGhlc2UgZ2VudGxlbWVuPzwvQT48YnI+
Cis8QSBOQU1FPTQuMS4xNzM+Q29tZSwgYnJpbmcgbWUgd2hlcmUgdGhleSBhcmUuPC9BPjxicj4K
KzxwPjxpPkV4ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgSUkuIEZpZmUu
IE1hY2R1ZmYncyBjYXN0bGUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50ZXIgTEFEWSBN
QUNEVUZGLCBoZXIgU29uLCBhbmQgUk9TUzwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxPjxiPkxBRFkgTUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4y
LjE+V2hhdCBoYWQgaGUgZG9uZSwgdG8gbWFrZSBoaW0gZmx5IHRoZSBsYW5kPzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT00LjIuMj5Zb3UgbXVzdCBoYXZlIHBhdGllbmNlLCBtYWRhbS48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+TEFEWSBNQUNEVUZGPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuMz5IZSBoYWQgbm9uZTo8L0E+PGJyPgorPEEg
TkFNRT00LjIuND5IaXMgZmxpZ2h0IHdhcyBtYWRuZXNzOiB3aGVuIG91ciBhY3Rpb25zIGRvIG5v
dCw8L0E+PGJyPgorPEEgTkFNRT00LjIuNT5PdXIgZmVhcnMgZG8gbWFrZSB1cyB0cmFpdG9ycy48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+Uk9TUzwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjY+WW91IGtub3cgbm90PC9BPjxicj4KKzxBIE5B
TUU9NC4yLjc+V2hldGhlciBpdCB3YXMgaGlzIHdpc2RvbSBvciBoaXMgZmVhci48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuOD5XaXNkb20hIHRvIGxlYXZlIGhpcyB3aWZlLCB0
byBsZWF2ZSBoaXMgYmFiZXMsPC9BPjxicj4KKzxBIE5BTUU9NC4yLjk+SGlzIG1hbnNpb24gYW5k
IGhpcyB0aXRsZXMgaW4gYSBwbGFjZTwvQT48YnI+Cis8QSBOQU1FPTQuMi4xMD5Gcm9tIHdoZW5j
ZSBoaW1zZWxmIGRvZXMgZmx5PyBIZSBsb3ZlcyB1cyBub3Q7PC9BPjxicj4KKzxBIE5BTUU9NC4y
LjExPkhlIHdhbnRzIHRoZSBuYXR1cmFsIHRvdWNoOiBmb3IgdGhlIHBvb3Igd3Jlbiw8L0E+PGJy
PgorPEEgTkFNRT00LjIuMTI+VGhlIG1vc3QgZGltaW51dGl2ZSBvZiBiaXJkcywgd2lsbCBmaWdo
dCw8L0E+PGJyPgorPEEgTkFNRT00LjIuMTM+SGVyIHlvdW5nIG9uZXMgaW4gaGVyIG5lc3QsIGFn
YWluc3QgdGhlIG93bC48L0E+PGJyPgorPEEgTkFNRT00LjIuMTQ+QWxsIGlzIHRoZSBmZWFyIGFu
ZCBub3RoaW5nIGlzIHRoZSBsb3ZlOzwvQT48YnI+Cis8QSBOQU1FPTQuMi4xNT5BcyBsaXR0bGUg
aXMgdGhlIHdpc2RvbSwgd2hlcmUgdGhlIGZsaWdodDwvQT48YnI+Cis8QSBOQU1FPTQuMi4xNj5T
byBydW5zIGFnYWluc3QgYWxsIHJlYXNvbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDY+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjE3
Pk15IGRlYXJlc3QgY296LDwvQT48YnI+Cis8QSBOQU1FPTQuMi4xOD5JIHByYXkgeW91LCBzY2hv
b2wgeW91cnNlbGY6IGJ1dCBmb3IgeW91ciBodXNiYW5kLDwvQT48YnI+Cis8QSBOQU1FPTQuMi4x
OT5IZSBpcyBub2JsZSwgd2lzZSwganVkaWNpb3VzLCBhbmQgYmVzdCBrbm93czwvQT48YnI+Cis8
QSBOQU1FPTQuMi4yMD5UaGUgZml0cyBvJyB0aGUgc2Vhc29uLiBJIGRhcmUgbm90IHNwZWFrPC9B
Pjxicj4KKzxBIE5BTUU9NC4yLjIxPm11Y2ggZnVydGhlcjs8L0E+PGJyPgorPEEgTkFNRT00LjIu
MjI+QnV0IGNydWVsIGFyZSB0aGUgdGltZXMsIHdoZW4gd2UgYXJlIHRyYWl0b3JzPC9BPjxicj4K
KzxBIE5BTUU9NC4yLjIzPkFuZCBkbyBub3Qga25vdyBvdXJzZWx2ZXMsIHdoZW4gd2UgaG9sZCBy
dW1vdXI8L0E+PGJyPgorPEEgTkFNRT00LjIuMjQ+RnJvbSB3aGF0IHdlIGZlYXIsIHlldCBrbm93
IG5vdCB3aGF0IHdlIGZlYXIsPC9BPjxicj4KKzxBIE5BTUU9NC4yLjI1PkJ1dCBmbG9hdCB1cG9u
IGEgd2lsZCBhbmQgdmlvbGVudCBzZWE8L0E+PGJyPgorPEEgTkFNRT00LjIuMjY+RWFjaCB3YXkg
YW5kIG1vdmUuIEkgdGFrZSBteSBsZWF2ZSBvZiB5b3U6PC9BPjxicj4KKzxBIE5BTUU9NC4yLjI3
PlNoYWxsIG5vdCBiZSBsb25nIGJ1dCBJJ2xsIGJlIGhlcmUgYWdhaW46PC9BPjxicj4KKzxBIE5B
TUU9NC4yLjI4PlRoaW5ncyBhdCB0aGUgd29yc3Qgd2lsbCBjZWFzZSwgb3IgZWxzZSBjbGltYiB1
cHdhcmQ8L0E+PGJyPgorPEEgTkFNRT00LjIuMjk+VG8gd2hhdCB0aGV5IHdlcmUgYmVmb3JlLiBN
eSBwcmV0dHkgY291c2luLDwvQT48YnI+Cis8QSBOQU1FPTQuMi4zMD5CbGVzc2luZyB1cG9uIHlv
dSE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+TEFEWSBNQUNE
VUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuMzE+RmF0aGVyJ2QgaGUgaXMs
IGFuZCB5ZXQgaGUncyBmYXRoZXJsZXNzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoOD48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuMzI+
SSBhbSBzbyBtdWNoIGEgZm9vbCwgc2hvdWxkIEkgc3RheSBsb25nZXIsPC9BPjxicj4KKzxBIE5B
TUU9NC4yLjMzPkl0IHdvdWxkIGJlIG15IGRpc2dyYWNlIGFuZCB5b3VyIGRpc2NvbWZvcnQ6PC9B
Pjxicj4KKzxBIE5BTUU9NC4yLjM0PkkgdGFrZSBteSBsZWF2ZSBhdCBvbmNlLjwvQT48YnI+Cis8
cD48aT5FeGl0PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPkxB
RFkgTUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjM1PlNpcnJhaCwg
eW91ciBmYXRoZXIncyBkZWFkOzwvQT48YnI+Cis8QSBOQU1FPTQuMi4zNj5BbmQgd2hhdCB3aWxs
IHlvdSBkbyBub3c/IEhvdyB3aWxsIHlvdSBsaXZlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMTA+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00
LjIuMzc+QXMgYmlyZHMgZG8sIG1vdGhlci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDExPjxiPkxBRFkgTUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NC4yLjM4PldoYXQsIHdpdGggd29ybXMgYW5kIGZsaWVzPzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjIuMzk+V2l0aCB3aGF0IEkgZ2V0LCBJIG1lYW47IGFuZCBzbyBkbyB0aGV5LjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+TEFEWSBNQUNEVUZGPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNDA+UG9vciBiaXJkISB0aG91J2xkc3Qg
bmV2ZXIgZmVhciB0aGUgbmV0IG5vciBsaW1lLDwvQT48YnI+Cis8QSBOQU1FPTQuMi40MT5UaGUg
cGl0ZmFsbCBub3IgdGhlIGdpbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDE0PjxiPlNvbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjQyPldoeSBz
aG91bGQgSSwgbW90aGVyPyBQb29yIGJpcmRzIHRoZXkgYXJlIG5vdCBzZXQgZm9yLjwvQT48YnI+
Cis8QSBOQU1FPTQuMi40Mz5NeSBmYXRoZXIgaXMgbm90IGRlYWQsIGZvciBhbGwgeW91ciBzYXlp
bmcuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNT48Yj5MQURZIE1B
Q0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi40ND5ZZXMsIGhlIGlzIGRl
YWQ7IGhvdyB3aWx0IHRob3UgZG8gZm9yIGEgZmF0aGVyPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMTY+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT00LjIuNDU+TmF5LCBob3cgd2lsbCB5b3UgZG8gZm9yIGEgaHVzYmFuZD88L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE3PjxiPkxBRFkgTUFDRFVGRjwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjQ2PldoeSwgSSBjYW4gYnV5IG1lIHR3ZW50eSBhdCBh
bnkgbWFya2V0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTg+PGI+
U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNDc+VGhlbiB5b3UnbGwgYnV5
ICdlbSB0byBzZWxsIGFnYWluLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMTk+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIu
NDg+VGhvdSBzcGVhaydzdCB3aXRoIGFsbCB0aHkgd2l0OiBhbmQgeWV0LCBpJyBmYWl0aCw8L0E+
PGJyPgorPEEgTkFNRT00LjIuNDk+V2l0aCB3aXQgZW5vdWdoIGZvciB0aGVlLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT00LjIuNTA+V2FzIG15IGZhdGhlciBhIHRyYWl0b3IsIG1vdGhlcj88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIxPjxiPkxBRFkgTUFDRFVGRjwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjUxPkF5LCB0aGF0IGhlIHdhcy48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIyPjxiPlNvbjwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjUyPldoYXQgaXMgYSB0cmFpdG9yPzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjM+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNTM+V2h5LCBvbmUgdGhhdCBzd2VhcnMgYW5kIGxp
ZXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyND48Yj5Tb248L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi41ND5BbmQgYmUgYWxsIHRyYWl0b3JzIHRo
YXQgZG8gc28/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNT48Yj5M
QURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi41NT5FdmVyeSBv
bmUgdGhhdCBkb2VzIHNvIGlzIGEgdHJhaXRvciwgYW5kIG11c3QgYmUgaGFuZ2VkLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjY+PGI+U29uPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjIuNTY+QW5kIG11c3QgdGhleSBhbGwgYmUgaGFuZ2VkIHRoYXQg
c3dlYXIgYW5kIGxpZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI3
PjxiPkxBRFkgTUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjU3PkV2
ZXJ5IG9uZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI4PjxiPlNv
bjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjU4PldobyBtdXN0IGhhbmcgdGhl
bT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI5PjxiPkxBRFkgTUFD
RFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjU5PldoeSwgIHRoZSBob25l
c3QgbWVuLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzA+PGI+U29u
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNjA+VGhlbiB0aGUgbGlhcnMgYW5k
IHN3ZWFyZXJzIGFyZSBmb29scyw8L0E+PGJyPgorPEEgTkFNRT00LjIuNjE+Zm9yIHRoZXJlIGFy
ZSBsaWFycyBhbmQgc3dlYXJlcnMgZW5vdyB0byBiZWF0PC9BPjxicj4KKzxBIE5BTUU9NC4yLjYy
PnRoZSBob25lc3QgbWVuIGFuZCBoYW5nIHVwIHRoZW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gzMT48Yj5MQURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTQuMi42Mz5Ob3csIEdvZCBoZWxwIHRoZWUsIHBvb3IgbW9ua2V5ITwvQT48YnI+
Cis8QSBOQU1FPTQuMi42ND5CdXQgaG93IHdpbHQgdGhvdSBkbyBmb3IgYSBmYXRoZXI/PC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMj48Yj5Tb248L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTQuMi42NT5JZiBoZSB3ZXJlIGRlYWQsIHlvdSdsZCB3ZWVwIGZv
cjwvQT48YnI+Cis8QSBOQU1FPTQuMi42Nj5oaW06IGlmIHlvdSB3b3VsZCBub3QsIGl0IHdlcmUg
YSBnb29kIHNpZ248L0E+PGJyPgorPEEgTkFNRT00LjIuNjc+dGhhdCBJIHNob3VsZCBxdWlja2x5
IGhhdmUgYSBuZXcgZmF0aGVyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMzM+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIu
Njg+UG9vciBwcmF0dGxlciwgaG93IHRob3UgdGFsaydzdCE8L0E+PGJyPgorPHA+PGk+RW50ZXIg
YSBNZXNzZW5nZXI8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM0Pjxi
Pk1lc3NlbmdlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjY5PkJsZXNzIHlv
dSwgZmFpciBkYW1lISBJIGFtIG5vdCB0byB5b3Uga25vd24sPC9BPjxicj4KKzxBIE5BTUU9NC4y
LjcwPlRob3VnaCBpbiB5b3VyIHN0YXRlIG9mIGhvbm91ciBJIGFtIHBlcmZlY3QuPC9BPjxicj4K
KzxBIE5BTUU9NC4yLjcxPkkgZG91YnQgc29tZSBkYW5nZXIgZG9lcyBhcHByb2FjaCB5b3UgbmVh
cmx5OjwvQT48YnI+Cis8QSBOQU1FPTQuMi43Mj5JZiB5b3Ugd2lsbCB0YWtlIGEgaG9tZWx5IG1h
bidzIGFkdmljZSw8L0E+PGJyPgorPEEgTkFNRT00LjIuNzM+QmUgbm90IGZvdW5kIGhlcmU7IGhl
bmNlLCB3aXRoIHlvdXIgbGl0dGxlIG9uZXMuPC9BPjxicj4KKzxBIE5BTUU9NC4yLjc0PlRvIGZy
aWdodCB5b3UgdGh1cywgbWV0aGlua3MsIEkgYW0gdG9vIHNhdmFnZTs8L0E+PGJyPgorPEEgTkFN
RT00LjIuNzU+VG8gZG8gd29yc2UgdG8geW91IHdlcmUgZmVsbCBjcnVlbHR5LDwvQT48YnI+Cis8
QSBOQU1FPTQuMi43Nj5XaGljaCBpcyB0b28gbmlnaCB5b3VyIHBlcnNvbi4gSGVhdmVuIHByZXNl
cnZlIHlvdSE8L0E+PGJyPgorPEEgTkFNRT00LjIuNzc+SSBkYXJlIGFiaWRlIG5vIGxvbmdlci48
L0E+PGJyPgorPHA+PGk+RXhpdDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMzU+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIu
Nzg+V2hpdGhlciBzaG91bGQgSSBmbHk/PC9BPjxicj4KKzxBIE5BTUU9NC4yLjc5PkkgaGF2ZSBk
b25lIG5vIGhhcm0uIEJ1dCBJIHJlbWVtYmVyIG5vdzwvQT48YnI+Cis8QSBOQU1FPTQuMi44MD5J
IGFtIGluIHRoaXMgZWFydGhseSB3b3JsZDsgd2hlcmUgdG8gZG8gaGFybTwvQT48YnI+Cis8QSBO
QU1FPTQuMi44MT5JcyBvZnRlbiBsYXVkYWJsZSwgdG8gZG8gZ29vZCBzb21ldGltZTwvQT48YnI+
Cis8QSBOQU1FPTQuMi44Mj5BY2NvdW50ZWQgZGFuZ2Vyb3VzIGZvbGx5OiB3aHkgdGhlbiwgYWxh
cyw8L0E+PGJyPgorPEEgTkFNRT00LjIuODM+RG8gSSBwdXQgdXAgdGhhdCB3b21hbmx5IGRlZmVu
Y2UsPC9BPjxicj4KKzxBIE5BTUU9NC4yLjg0PlRvIHNheSBJIGhhdmUgZG9uZSBubyBoYXJtPzwv
QT48YnI+Cis8cD48aT5FbnRlciBNdXJkZXJlcnM8L2k+PC9wPgorPEEgTkFNRT00LjIuODU+V2hh
dCBhcmUgdGhlc2UgZmFjZXM/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gzNj48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4y
Ljg2PldoZXJlIGlzIHlvdXIgaHVzYmFuZD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDM3PjxiPkxBRFkgTUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NC4yLjg3PkkgaG9wZSwgaW4gbm8gcGxhY2Ugc28gdW5zYW5jdGlmaWVkPC9BPjxicj4KKzxB
IE5BTUU9NC4yLjg4PldoZXJlIHN1Y2ggYXMgdGhvdSBtYXlzdCBmaW5kIGhpbS48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM4PjxiPkZpcnN0IE11cmRlcmVyPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuODk+SGUncyBhIHRyYWl0b3IuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzOT48Yj5Tb248L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMi45MD5UaG91IGxpZXN0LCB0aG91IHNoYWctaGFpcidkIHZpbGxh
aW4hPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0MD48Yj5GaXJzdCBN
dXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjkxPldoYXQsIHlvdSBl
Z2chPC9BPjxicj4KKzxwPjxpPlN0YWJiaW5nIGhpbTwvaT48L3A+Cis8QSBOQU1FPTQuMi45Mj5Z
b3VuZyBmcnkgb2YgdHJlYWNoZXJ5ITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoNDE+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuOTM+SGUg
aGFzIGtpbGwnZCBtZSwgbW90aGVyOjwvQT48YnI+Cis8QSBOQU1FPTQuMi45ND5SdW4gYXdheSwg
SSBwcmF5IHlvdSE8L0E+PGJyPgorPHA+PGk+RGllczwvaT48L3A+Cis8cD48aT5FeGl0IExBRFkg
TUFDRFVGRiwgY3J5aW5nICdNdXJkZXIhJyBFeGV1bnQgTXVyZGVyZXJzLCBmb2xsb3dpbmcgaGVy
PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBJSUkuIEVuZ2xhbmQuIEJlZm9yZSB0
aGUgS2luZydzIHBhbGFjZS48L2gzPgorPHA+PGJsb2NrcXVvdGU+Cis8aT5FbnRlciBNQUxDT0xN
IGFuZCBNQUNEVUZGPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TUFM
Q09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjE+TGV0IHVzIHNlZWsgb3V0
IHNvbWUgZGVzb2xhdGUgc2hhZGUsIGFuZCB0aGVyZTwvQT48YnI+Cis8QSBOQU1FPTQuMy4yPldl
ZXAgb3VyIHNhZCBib3NvbXMgZW1wdHkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gyPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4z
PkxldCB1cyByYXRoZXI8L0E+PGJyPgorPEEgTkFNRT00LjMuND5Ib2xkIGZhc3QgdGhlIG1vcnRh
bCBzd29yZCwgYW5kIGxpa2UgZ29vZCBtZW48L0E+PGJyPgorPEEgTkFNRT00LjMuNT5CZXN0cmlk
ZSBvdXIgZG93bi1mYWxsJ24gYmlydGhkb206IGVhY2ggbmV3IG1vcm48L0E+PGJyPgorPEEgTkFN
RT00LjMuNj5OZXcgd2lkb3dzIGhvd2wsIG5ldyBvcnBoYW5zIGNyeSwgbmV3IHNvcnJvd3M8L0E+
PGJyPgorPEEgTkFNRT00LjMuNz5TdHJpa2UgaGVhdmVuIG9uIHRoZSBmYWNlLCB0aGF0IGl0IHJl
c291bmRzPC9BPjxicj4KKzxBIE5BTUU9NC4zLjg+QXMgaWYgaXQgZmVsdCB3aXRoIFNjb3RsYW5k
IGFuZCB5ZWxsJ2Qgb3V0PC9BPjxicj4KKzxBIE5BTUU9NC4zLjk+TGlrZSBzeWxsYWJsZSBvZiBk
b2xvdXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPk1BTENP
TE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xMD5XaGF0IEkgYmVsaWV2ZSBJ
J2xsIHdhaWwsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjExPldoYXQga25vdyBiZWxpZXZlLCBhbmQg
d2hhdCBJIGNhbiByZWRyZXNzLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMj5BcyBJIHNoYWxsIGZp
bmQgdGhlIHRpbWUgdG8gZnJpZW5kLCBJIHdpbGwuPC9BPjxicj4KKzxBIE5BTUU9NC4zLjEzPldo
YXQgeW91IGhhdmUgc3Bva2UsIGl0IG1heSBiZSBzbyBwZXJjaGFuY2UuPC9BPjxicj4KKzxBIE5B
TUU9NC4zLjE0PlRoaXMgdHlyYW50LCB3aG9zZSBzb2xlIG5hbWUgYmxpc3RlcnMgb3VyIHRvbmd1
ZXMsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE1PldhcyBvbmNlIHRob3VnaHQgaG9uZXN0OiB5b3Ug
aGF2ZSBsb3ZlZCBoaW0gd2VsbC48L0E+PGJyPgorPEEgTkFNRT00LjMuMTY+SGUgaGF0aCBub3Qg
dG91Y2gnZCB5b3UgeWV0LiBJIGFtIHlvdW5nOzwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNz5idXQg
c29tZXRoaW5nPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE4PllvdSBtYXkgZGVzZXJ2ZSBvZiBoaW0g
dGhyb3VnaCBtZSwgYW5kIHdpc2RvbTwvQT48YnI+Cis8QSBOQU1FPTQuMy4xOT5UbyBvZmZlciB1
cCBhIHdlYWsgcG9vciBpbm5vY2VudCBsYW1iPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIwPlRvIGFw
cGVhc2UgYW4gYW5ncnkgZ29kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoND48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjE+SSBh
bSBub3QgdHJlYWNoZXJvdXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g1PjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yMj5CdXQg
TWFjYmV0aCBpcy48L0E+PGJyPgorPEEgTkFNRT00LjMuMjM+QSBnb29kIGFuZCB2aXJ0dW91cyBu
YXR1cmUgbWF5IHJlY29pbDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yND5JbiBhbiBpbXBlcmlhbCBj
aGFyZ2UuIEJ1dCBJIHNoYWxsIGNyYXZlPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI1PnlvdXIgcGFy
ZG9uOzwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNj5UaGF0IHdoaWNoIHlvdSBhcmUgbXkgdGhvdWdo
dHMgY2Fubm90IHRyYW5zcG9zZTo8L0E+PGJyPgorPEEgTkFNRT00LjMuMjc+QW5nZWxzIGFyZSBi
cmlnaHQgc3RpbGwsIHRob3VnaCB0aGUgYnJpZ2h0ZXN0IGZlbGw7PC9BPjxicj4KKzxBIE5BTUU9
NC4zLjI4PlRob3VnaCBhbGwgdGhpbmdzIGZvdWwgd291bGQgd2VhciB0aGUgYnJvd3Mgb2YgZ3Jh
Y2UsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI5PllldCBncmFjZSBtdXN0IHN0aWxsIGxvb2sgc28u
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2PjxiPk1BQ0RVRkY8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4zMD5JIGhhdmUgbG9zdCBteSBob3Blcy48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+TUFMQ09MTTwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjMxPlBlcmNoYW5jZSBldmVuIHRoZXJlIHdo
ZXJlIEkgZGlkIGZpbmQgbXkgZG91YnRzLjwvQT48YnI+Cis8QSBOQU1FPTQuMy4zMj5XaHkgaW4g
dGhhdCByYXduZXNzIGxlZnQgeW91IHdpZmUgYW5kIGNoaWxkLDwvQT48YnI+Cis8QSBOQU1FPTQu
My4zMz5UaG9zZSBwcmVjaW91cyBtb3RpdmVzLCB0aG9zZSBzdHJvbmcga25vdHMgb2YgbG92ZSw8
L0E+PGJyPgorPEEgTkFNRT00LjMuMzQ+V2l0aG91dCBsZWF2ZS10YWtpbmc/IEkgcHJheSB5b3Us
PC9BPjxicj4KKzxBIE5BTUU9NC4zLjM1PkxldCBub3QgbXkgamVhbG91c2llcyBiZSB5b3VyIGRp
c2hvbm91cnMsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjM2PkJ1dCBtaW5lIG93biBzYWZldGllcy4g
WW91IG1heSBiZSByaWdodGx5IGp1c3QsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjM3PldoYXRldmVy
IEkgc2hhbGwgdGhpbmsuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4
PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4zOD5CbGVlZCwg
YmxlZWQsIHBvb3IgY291bnRyeSE8L0E+PGJyPgorPEEgTkFNRT00LjMuMzk+R3JlYXQgdHlyYW5u
eSEgbGF5IHRob3UgdGh5IGJhc2lzIHN1cmUsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjQwPkZvciBn
b29kbmVzcyBkYXJlIG5vdCBjaGVxdWUgdGhlZTogd2VhciB0aG91PC9BPjxicj4KKzxBIE5BTUU9
NC4zLjQxPnRoeSB3cm9uZ3M7PC9BPjxicj4KKzxBIE5BTUU9NC4zLjQyPlRoZSB0aXRsZSBpcyBh
ZmZlZXInZCEgRmFyZSB0aGVlIHdlbGwsIGxvcmQ6PC9BPjxicj4KKzxBIE5BTUU9NC4zLjQzPkkg
d291bGQgbm90IGJlIHRoZSB2aWxsYWluIHRoYXQgdGhvdSB0aGluaydzdDwvQT48YnI+Cis8QSBO
QU1FPTQuMy40ND5Gb3IgdGhlIHdob2xlIHNwYWNlIHRoYXQncyBpbiB0aGUgdHlyYW50J3MgZ3Jh
c3AsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjQ1PkFuZCB0aGUgcmljaCBFYXN0IHRvIGJvb3QuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPk1BTENPTE08L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy40Nj5CZSBub3Qgb2ZmZW5kZWQ6PC9BPjxicj4K
KzxBIE5BTUU9NC4zLjQ3Pkkgc3BlYWsgbm90IGFzIGluIGFic29sdXRlIGZlYXIgb2YgeW91Ljwv
QT48YnI+Cis8QSBOQU1FPTQuMy40OD5JIHRoaW5rIG91ciBjb3VudHJ5IHNpbmtzIGJlbmVhdGgg
dGhlIHlva2U7PC9BPjxicj4KKzxBIE5BTUU9NC4zLjQ5Pkl0IHdlZXBzLCBpdCBibGVlZHM7IGFu
ZCBlYWNoIG5ldyBkYXkgYSBnYXNoPC9BPjxicj4KKzxBIE5BTUU9NC4zLjUwPklzIGFkZGVkIHRv
IGhlciB3b3VuZHM6IEkgdGhpbmsgd2l0aGFsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjUxPlRoZXJl
IHdvdWxkIGJlIGhhbmRzIHVwbGlmdGVkIGluIG15IHJpZ2h0OzwvQT48YnI+Cis8QSBOQU1FPTQu
My41Mj5BbmQgaGVyZSBmcm9tIGdyYWNpb3VzIEVuZ2xhbmQgaGF2ZSBJIG9mZmVyPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjUzPk9mIGdvb2RseSB0aG91c2FuZHM6IGJ1dCwgZm9yIGFsbCB0aGlzLDwv
QT48YnI+Cis8QSBOQU1FPTQuMy41ND5XaGVuIEkgc2hhbGwgdHJlYWQgdXBvbiB0aGUgdHlyYW50
J3MgaGVhZCw8L0E+PGJyPgorPEEgTkFNRT00LjMuNTU+T3Igd2VhciBpdCBvbiBteSBzd29yZCwg
eWV0IG15IHBvb3IgY291bnRyeTwvQT48YnI+Cis8QSBOQU1FPTQuMy41Nj5TaGFsbCBoYXZlIG1v
cmUgdmljZXMgdGhhbiBpdCBoYWQgYmVmb3JlLDwvQT48YnI+Cis8QSBOQU1FPTQuMy41Nz5Nb3Jl
IHN1ZmZlciBhbmQgbW9yZSBzdW5kcnkgd2F5cyB0aGFuIGV2ZXIsPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjU4PkJ5IGhpbSB0aGF0IHNoYWxsIHN1Y2NlZWQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxMD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjMuNTk+V2hhdCBzaG91bGQgaGUgYmU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxMT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT00LjMuNjA+SXQgaXMgbXlzZWxmIEkgbWVhbjogaW4gd2hvbSBJIGtub3c8L0E+PGJyPgorPEEg
TkFNRT00LjMuNjE+QWxsIHRoZSBwYXJ0aWN1bGFycyBvZiB2aWNlIHNvIGdyYWZ0ZWQ8L0E+PGJy
PgorPEEgTkFNRT00LjMuNjI+VGhhdCwgd2hlbiB0aGV5IHNoYWxsIGJlIG9wZW4nZCwgYmxhY2sg
TWFjYmV0aDwvQT48YnI+Cis8QSBOQU1FPTQuMy42Mz5XaWxsIHNlZW0gYXMgcHVyZSBhcyBzbm93
LCBhbmQgdGhlIHBvb3Igc3RhdGU8L0E+PGJyPgorPEEgTkFNRT00LjMuNjQ+RXN0ZWVtIGhpbSBh
cyBhIGxhbWIsIGJlaW5nIGNvbXBhcmVkPC9BPjxicj4KKzxBIE5BTUU9NC4zLjY1PldpdGggbXkg
Y29uZmluZWxlc3MgaGFybXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxMj48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuNjY+Tm90
IGluIHRoZSBsZWdpb25zPC9BPjxicj4KKzxBIE5BTUU9NC4zLjY3Pk9mIGhvcnJpZCBoZWxsIGNh
biBjb21lIGEgZGV2aWwgbW9yZSBkYW1uJ2Q8L0E+PGJyPgorPEEgTkFNRT00LjMuNjg+SW4gZXZp
bHMgdG8gdG9wIE1hY2JldGguPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxMz48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuNjk+SSBn
cmFudCBoaW0gYmxvb2R5LDwvQT48YnI+Cis8QSBOQU1FPTQuMy43MD5MdXh1cmlvdXMsIGF2YXJp
Y2lvdXMsIGZhbHNlLCBkZWNlaXRmdWwsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjcxPlN1ZGRlbiwg
bWFsaWNpb3VzLCBzbWFja2luZyBvZiBldmVyeSBzaW48L0E+PGJyPgorPEEgTkFNRT00LjMuNzI+
VGhhdCBoYXMgYSBuYW1lOiBidXQgdGhlcmUncyBubyBib3R0b20sIG5vbmUsPC9BPjxicj4KKzxB
IE5BTUU9NC4zLjczPkluIG15IHZvbHVwdHVvdXNuZXNzOiB5b3VyIHdpdmVzLCB5b3VyIGRhdWdo
dGVycyw8L0E+PGJyPgorPEEgTkFNRT00LjMuNzQ+WW91ciBtYXRyb25zIGFuZCB5b3VyIG1haWRz
LCBjb3VsZCBub3QgZmlsbCB1cDwvQT48YnI+Cis8QSBOQU1FPTQuMy43NT5UaGUgY2lzdGVybiBv
ZiBteSBsdXN0LCBhbmQgbXkgZGVzaXJlPC9BPjxicj4KKzxBIE5BTUU9NC4zLjc2PkFsbCBjb250
aW5lbnQgaW1wZWRpbWVudHMgd291bGQgbydlcmJlYXI8L0E+PGJyPgorPEEgTkFNRT00LjMuNzc+
VGhhdCBkaWQgb3Bwb3NlIG15IHdpbGw6IGJldHRlciBNYWNiZXRoPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjc4PlRoYW4gc3VjaCBhbiBvbmUgdG8gcmVpZ24uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxND48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjMuNzk+Qm91bmRsZXNzIGludGVtcGVyYW5jZTwvQT48YnI+Cis8QSBOQU1FPTQuMy44
MD5JbiBuYXR1cmUgaXMgYSB0eXJhbm55OyBpdCBoYXRoIGJlZW48L0E+PGJyPgorPEEgTkFNRT00
LjMuODE+VGhlIHVudGltZWx5IGVtcHR5aW5nIG9mIHRoZSBoYXBweSB0aHJvbmU8L0E+PGJyPgor
PEEgTkFNRT00LjMuODI+QW5kIGZhbGwgb2YgbWFueSBraW5ncy4gQnV0IGZlYXIgbm90IHlldDwv
QT48YnI+Cis8QSBOQU1FPTQuMy44Mz5UbyB0YWtlIHVwb24geW91IHdoYXQgaXMgeW91cnM6IHlv
dSBtYXk8L0E+PGJyPgorPEEgTkFNRT00LjMuODQ+Q29udmV5IHlvdXIgcGxlYXN1cmVzIGluIGEg
c3BhY2lvdXMgcGxlbnR5LDwvQT48YnI+Cis8QSBOQU1FPTQuMy44NT5BbmQgeWV0IHNlZW0gY29s
ZCwgdGhlIHRpbWUgeW91IG1heSBzbyBob29kd2luay48L0E+PGJyPgorPEEgTkFNRT00LjMuODY+
V2UgaGF2ZSB3aWxsaW5nIGRhbWVzIGVub3VnaDogdGhlcmUgY2Fubm90IGJlPC9BPjxicj4KKzxB
IE5BTUU9NC4zLjg3PlRoYXQgdnVsdHVyZSBpbiB5b3UsIHRvIGRldm91ciBzbyBtYW55PC9BPjxi
cj4KKzxBIE5BTUU9NC4zLjg4PkFzIHdpbGwgdG8gZ3JlYXRuZXNzIGRlZGljYXRlIHRoZW1zZWx2
ZXMsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjg5PkZpbmRpbmcgaXQgc28gaW5jbGluZWQuPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNT48Yj5NQUxDT0xNPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuOTA+V2l0aCB0aGlzIHRoZXJlIGdyb3dzPC9BPjxi
cj4KKzxBIE5BTUU9NC4zLjkxPkluIG15IG1vc3QgaWxsLWNvbXBvc2VkIGFmZmVjdGlvbiBzdWNo
PC9BPjxicj4KKzxBIE5BTUU9NC4zLjkyPkEgc3RhbmNobGVzcyBhdmFyaWNlIHRoYXQsIHdlcmUg
SSBraW5nLDwvQT48YnI+Cis8QSBOQU1FPTQuMy45Mz5JIHNob3VsZCBjdXQgb2ZmIHRoZSBub2Js
ZXMgZm9yIHRoZWlyIGxhbmRzLDwvQT48YnI+Cis8QSBOQU1FPTQuMy45ND5EZXNpcmUgaGlzIGpl
d2VscyBhbmQgdGhpcyBvdGhlcidzIGhvdXNlOjwvQT48YnI+Cis8QSBOQU1FPTQuMy45NT5BbmQg
bXkgbW9yZS1oYXZpbmcgd291bGQgYmUgYXMgYSBzYXVjZTwvQT48YnI+Cis8QSBOQU1FPTQuMy45
Nj5UbyBtYWtlIG1lIGh1bmdlciBtb3JlOyB0aGF0IEkgc2hvdWxkIGZvcmdlPC9BPjxicj4KKzxB
IE5BTUU9NC4zLjk3PlF1YXJyZWxzIHVuanVzdCBhZ2FpbnN0IHRoZSBnb29kIGFuZCBsb3lhbCw8
L0E+PGJyPgorPEEgTkFNRT00LjMuOTg+RGVzdHJveWluZyB0aGVtIGZvciB3ZWFsdGguPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNj48Yj5NQUNEVUZGPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuOTk+VGhpcyBhdmFyaWNlPC9BPjxicj4KKzxBIE5B
TUU9NC4zLjEwMD5TdGlja3MgZGVlcGVyLCBncm93cyB3aXRoIG1vcmUgcGVybmljaW91cyByb290
PC9BPjxicj4KKzxBIE5BTUU9NC4zLjEwMT5UaGFuIHN1bW1lci1zZWVtaW5nIGx1c3QsIGFuZCBp
dCBoYXRoIGJlZW48L0E+PGJyPgorPEEgTkFNRT00LjMuMTAyPlRoZSBzd29yZCBvZiBvdXIgc2xh
aW4ga2luZ3M6IHlldCBkbyBub3QgZmVhcjs8L0E+PGJyPgorPEEgTkFNRT00LjMuMTAzPlNjb3Rs
YW5kIGhhdGggZm9pc29ucyB0byBmaWxsIHVwIHlvdXIgd2lsbC48L0E+PGJyPgorPEEgTkFNRT00
LjMuMTA0Pk9mIHlvdXIgbWVyZSBvd246IGFsbCB0aGVzZSBhcmUgcG9ydGFibGUsPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjEwNT5XaXRoIG90aGVyIGdyYWNlcyB3ZWlnaCdkLjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NC4zLjEwNj5CdXQgSSBoYXZlIG5vbmU6IHRoZSBraW5nLWJlY29taW5n
IGdyYWNlcyw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTA3PkFzIGp1c3RpY2UsIHZlcml0eSwgdGVt
cGVyYW5jZSwgc3RhYmxlbmVzcyw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTA4PkJvdW50eSwgcGVy
c2V2ZXJhbmNlLCBtZXJjeSwgbG93bGluZXNzLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMDk+RGV2
b3Rpb24sIHBhdGllbmNlLCBjb3VyYWdlLCBmb3J0aXR1ZGUsPC9BPjxicj4KKzxBIE5BTUU9NC4z
LjExMD5JIGhhdmUgbm8gcmVsaXNoIG9mIHRoZW0sIGJ1dCBhYm91bmQ8L0E+PGJyPgorPEEgTkFN
RT00LjMuMTExPkluIHRoZSBkaXZpc2lvbiBvZiBlYWNoIHNldmVyYWwgY3JpbWUsPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjExMj5BY3RpbmcgaXQgbWFueSB3YXlzLiBOYXksIGhhZCBJIHBvd2VyLCBJ
IHNob3VsZDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMTM+UG91ciB0aGUgc3dlZXQgbWlsayBvZiBj
b25jb3JkIGludG8gaGVsbCw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTE0PlVwcm9hciB0aGUgdW5p
dmVyc2FsIHBlYWNlLCBjb25mb3VuZDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMTU+QWxsIHVuaXR5
IG9uIGVhcnRoLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTg+PGI+
TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjExNj5PIFNjb3RsYW5k
LCBTY290bGFuZCE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE5Pjxi
Pk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xMTc+SWYgc3VjaCBh
IG9uZSBiZSBmaXQgdG8gZ292ZXJuLCBzcGVhazo8L0E+PGJyPgorPEEgTkFNRT00LjMuMTE4Pkkg
YW0gYXMgSSBoYXZlIHNwb2tlbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDIwPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xMTk+
Rml0IHRvIGdvdmVybiE8L0E+PGJyPgorPEEgTkFNRT00LjMuMTIwPk5vLCBub3QgdG8gbGl2ZS4g
TyBuYXRpb24gbWlzZXJhYmxlLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMjE+V2l0aCBhbiB1bnRp
dGxlZCB0eXJhbnQgYmxvb2R5LXNjZXB0ZXInZCw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTIyPldo
ZW4gc2hhbHQgdGhvdSBzZWUgdGh5IHdob2xlc29tZSBkYXlzIGFnYWluLDwvQT48YnI+Cis8QSBO
QU1FPTQuMy4xMjM+U2luY2UgdGhhdCB0aGUgdHJ1ZXN0IGlzc3VlIG9mIHRoeSB0aHJvbmU8L0E+
PGJyPgorPEEgTkFNRT00LjMuMTI0PkJ5IGhpcyBvd24gaW50ZXJkaWN0aW9uIHN0YW5kcyBhY2N1
cnNlZCw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTI1PkFuZCBkb2VzIGJsYXNwaGVtZSBoaXMgYnJl
ZWQ/IFRoeSByb3lhbCBmYXRoZXI8L0E+PGJyPgorPEEgTkFNRT00LjMuMTI2PldhcyBhIG1vc3Qg
c2FpbnRlZCBraW5nOiB0aGUgcXVlZW4gdGhhdCBib3JlIHRoZWUsPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjEyNz5PZnRlbmVyIHVwb24gaGVyIGtuZWVzIHRoYW4gb24gaGVyIGZlZXQsPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjEyOD5EaWVkIGV2ZXJ5IGRheSBzaGUgbGl2ZWQuIEZhcmUgdGhlZSB3ZWxs
ITwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMjk+VGhlc2UgZXZpbHMgdGhvdSByZXBlYXQnc3QgdXBv
biB0aHlzZWxmPC9BPjxicj4KKzxBIE5BTUU9NC4zLjEzMD5IYXZlIGJhbmlzaCdkIG1lIGZyb20g
U2NvdGxhbmQuIE8gbXkgYnJlYXN0LDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMzE+VGh5IGhvcGUg
ZW5kcyBoZXJlITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjE+PGI+
TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjEzMj5NYWNkdWZmLCB0
aGlzIG5vYmxlIHBhc3Npb24sPC9BPjxicj4KKzxBIE5BTUU9NC4zLjEzMz5DaGlsZCBvZiBpbnRl
Z3JpdHksIGhhdGggZnJvbSBteSBzb3VsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjEzND5XaXBlZCB0
aGUgYmxhY2sgc2NydXBsZXMsIHJlY29uY2lsZWQgbXkgdGhvdWdodHM8L0E+PGJyPgorPEEgTkFN
RT00LjMuMTM1PlRvIHRoeSBnb29kIHRydXRoIGFuZCBob25vdXIuIERldmlsaXNoIE1hY2JldGg8
L0E+PGJyPgorPEEgTkFNRT00LjMuMTM2PkJ5IG1hbnkgb2YgdGhlc2UgdHJhaW5zIGhhdGggc291
Z2h0IHRvIHdpbiBtZTwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMzc+SW50byBoaXMgcG93ZXIsIGFu
ZCBtb2Rlc3Qgd2lzZG9tIHBsdWNrcyBtZTwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMzg+RnJvbSBv
dmVyLWNyZWR1bG91cyBoYXN0ZTogYnV0IEdvZCBhYm92ZTwvQT48YnI+Cis8QSBOQU1FPTQuMy4x
Mzk+RGVhbCBiZXR3ZWVuIHRoZWUgYW5kIG1lISBmb3IgZXZlbiBub3c8L0E+PGJyPgorPEEgTkFN
RT00LjMuMTQwPkkgcHV0IG15c2VsZiB0byB0aHkgZGlyZWN0aW9uLCBhbmQ8L0E+PGJyPgorPEEg
TkFNRT00LjMuMTQxPlVuc3BlYWsgbWluZSBvd24gZGV0cmFjdGlvbiwgaGVyZSBhYmp1cmU8L0E+
PGJyPgorPEEgTkFNRT00LjMuMTQyPlRoZSB0YWludHMgYW5kIGJsYW1lcyBJIGxhaWQgdXBvbiBt
eXNlbGYsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE0Mz5Gb3Igc3RyYW5nZXJzIHRvIG15IG5hdHVy
ZS4gSSBhbSB5ZXQ8L0E+PGJyPgorPEEgTkFNRT00LjMuMTQ0PlVua25vd24gdG8gd29tYW4sIG5l
dmVyIHdhcyBmb3Jzd29ybiw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTQ1PlNjYXJjZWx5IGhhdmUg
Y292ZXRlZCB3aGF0IHdhcyBtaW5lIG93biw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTQ2PkF0IG5v
IHRpbWUgYnJva2UgbXkgZmFpdGgsIHdvdWxkIG5vdCBiZXRyYXk8L0E+PGJyPgorPEEgTkFNRT00
LjMuMTQ3PlRoZSBkZXZpbCB0byBoaXMgZmVsbG93IGFuZCBkZWxpZ2h0PC9BPjxicj4KKzxBIE5B
TUU9NC4zLjE0OD5ObyBsZXNzIGluIHRydXRoIHRoYW4gbGlmZTogbXkgZmlyc3QgZmFsc2Ugc3Bl
YWtpbmc8L0E+PGJyPgorPEEgTkFNRT00LjMuMTQ5PldhcyB0aGlzIHVwb24gbXlzZWxmOiB3aGF0
IEkgYW0gdHJ1bHksPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE1MD5JcyB0aGluZSBhbmQgbXkgcG9v
ciBjb3VudHJ5J3MgdG8gY29tbWFuZDo8L0E+PGJyPgorPEEgTkFNRT00LjMuMTUxPldoaXRoZXIg
aW5kZWVkLCBiZWZvcmUgdGh5IGhlcmUtYXBwcm9hY2gsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE1
Mj5PbGQgU2l3YXJkLCB3aXRoIHRlbiB0aG91c2FuZCB3YXJsaWtlIG1lbiw8L0E+PGJyPgorPEEg
TkFNRT00LjMuMTUzPkFscmVhZHkgYXQgYSBwb2ludCwgd2FzIHNldHRpbmcgZm9ydGguPC9BPjxi
cj4KKzxBIE5BTUU9NC4zLjE1ND5Ob3cgd2UnbGwgdG9nZXRoZXI7IGFuZCB0aGUgY2hhbmNlIG9m
IGdvb2RuZXNzPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE1NT5CZSBsaWtlIG91ciB3YXJyYW50ZWQg
cXVhcnJlbCEgV2h5IGFyZSB5b3Ugc2lsZW50PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMjI+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4zLjE1Nj5TdWNoIHdlbGNvbWUgYW5kIHVud2VsY29tZSB0aGluZ3MgYXQgb25jZTwvQT48YnI+
Cis8QSBOQU1FPTQuMy4xNTc+J1RpcyBoYXJkIHRvIHJlY29uY2lsZS48L0E+PGJyPgorPHA+PGk+
RW50ZXIgYSBEb2N0b3I8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIz
PjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xNTg+V2VsbDsg
bW9yZSBhbm9uLi0tQ29tZXMgdGhlIGtpbmcgZm9ydGgsIEkgcHJheSB5b3U/PC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyND48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMy4xNTk+QXksIHNpcjsgdGhlcmUgYXJlIGEgY3JldyBvZiB3cmV0
Y2hlZCBzb3VsczwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNjA+VGhhdCBzdGF5IGhpcyBjdXJlOiB0
aGVpciBtYWxhZHkgY29udmluY2VzPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE2MT5UaGUgZ3JlYXQg
YXNzYXkgb2YgYXJ0OyBidXQgYXQgaGlzIHRvdWNoLS08L0E+PGJyPgorPEEgTkFNRT00LjMuMTYy
PlN1Y2ggc2FuY3RpdHkgaGF0aCBoZWF2ZW4gZ2l2ZW4gaGlzIGhhbmQtLTwvQT48YnI+Cis8QSBO
QU1FPTQuMy4xNjM+VGhleSBwcmVzZW50bHkgYW1lbmQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gyNT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjMuMTY0PkkgdGhhbmsgeW91LCBkb2N0b3IuPC9BPjxicj4KKzxwPjxpPkV4aXQgRG9j
dG9yPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNj48Yj5NQUNEVUZG
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMTY1PldoYXQncyB0aGUgZGlzZWFz
ZSBoZSBtZWFucz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI3Pjxi
Pk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xNjY+J1RpcyBjYWxs
J2QgdGhlIGV2aWw6PC9BPjxicj4KKzxBIE5BTUU9NC4zLjE2Nz5BIG1vc3QgbWlyYWN1bG91cyB3
b3JrIGluIHRoaXMgZ29vZCBraW5nOzwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNjg+V2hpY2ggb2Z0
ZW4sIHNpbmNlIG15IGhlcmUtcmVtYWluIGluIEVuZ2xhbmQsPC9BPjxicj4KKzxBIE5BTUU9NC4z
LjE2OT5JIGhhdmUgc2VlbiBoaW0gZG8uIEhvdyBoZSBzb2xpY2l0cyBoZWF2ZW4sPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjE3MD5IaW1zZWxmIGJlc3Qga25vd3M6IGJ1dCBzdHJhbmdlbHktdmlzaXRl
ZCBwZW9wbGUsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE3MT5BbGwgc3dvbG4gYW5kIHVsY2Vyb3Vz
LCBwaXRpZnVsIHRvIHRoZSBleWUsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE3Mj5UaGUgbWVyZSBk
ZXNwYWlyIG9mIHN1cmdlcnksIGhlIGN1cmVzLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNzM+SGFu
Z2luZyBhIGdvbGRlbiBzdGFtcCBhYm91dCB0aGVpciBuZWNrcyw8L0E+PGJyPgorPEEgTkFNRT00
LjMuMTc0PlB1dCBvbiB3aXRoIGhvbHkgcHJheWVyczogYW5kICd0aXMgc3Bva2VuLDwvQT48YnI+
Cis8QSBOQU1FPTQuMy4xNzU+VG8gdGhlIHN1Y2NlZWRpbmcgcm95YWx0eSBoZSBsZWF2ZXM8L0E+
PGJyPgorPEEgTkFNRT00LjMuMTc2PlRoZSBoZWFsaW5nIGJlbmVkaWN0aW9uLiBXaXRoIHRoaXMg
c3RyYW5nZSB2aXJ0dWUsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE3Nz5IZSBoYXRoIGEgaGVhdmVu
bHkgZ2lmdCBvZiBwcm9waGVjeSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTc4PkFuZCBzdW5kcnkg
Ymxlc3NpbmdzIGhhbmcgYWJvdXQgaGlzIHRocm9uZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTc5
PlRoYXQgc3BlYWsgaGltIGZ1bGwgb2YgZ3JhY2UuPC9BPjxicj4KKzxwPjxpPkVudGVyIFJPU1M8
L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI4PjxiPk1BQ0RVRkY8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xODA+U2VlLCB3aG8gY29tZXMgaGVyZT88
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI5PjxiPk1BTENPTE08L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xODE+TXkgY291bnRyeW1hbjsgYnV0IHll
dCBJIGtub3cgaGltIG5vdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDMwPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xODI+TXkg
ZXZlci1nZW50bGUgY291c2luLCB3ZWxjb21lIGhpdGhlci48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDMxPjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTQuMy4xODM+SSBrbm93IGhpbSBub3cuIEdvb2QgR29kLCBiZXRpbWVzIHJlbW92ZTwv
QT48YnI+Cis8QSBOQU1FPTQuMy4xODQ+VGhlIG1lYW5zIHRoYXQgbWFrZXMgdXMgc3RyYW5nZXJz
ITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzI+PGI+Uk9TUzwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjE4NT5TaXIsIGFtZW4uPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMz48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjMuMTg2PlN0YW5kcyBTY290bGFuZCB3aGVyZSBpdCBkaWQ/PC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzND48Yj5ST1NTPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMTg3PkFsYXMsIHBvb3IgY291bnRyeSE8L0E+PGJy
PgorPEEgTkFNRT00LjMuMTg4PkFsbW9zdCBhZnJhaWQgdG8ga25vdyBpdHNlbGYuIEl0IGNhbm5v
dDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xODk+QmUgY2FsbCdkIG91ciBtb3RoZXIsIGJ1dCBvdXIg
Z3JhdmU7IHdoZXJlIG5vdGhpbmcsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE5MD5CdXQgd2hvIGtu
b3dzIG5vdGhpbmcsIGlzIG9uY2Ugc2VlbiB0byBzbWlsZTs8L0E+PGJyPgorPEEgTkFNRT00LjMu
MTkxPldoZXJlIHNpZ2hzIGFuZCBncm9hbnMgYW5kIHNocmlla3MgdGhhdCByZW5kIHRoZSBhaXI8
L0E+PGJyPgorPEEgTkFNRT00LjMuMTkyPkFyZSBtYWRlLCBub3QgbWFyaydkOyB3aGVyZSB2aW9s
ZW50IHNvcnJvdyBzZWVtczwvQT48YnI+Cis8QSBOQU1FPTQuMy4xOTM+QSBtb2Rlcm4gZWNzdGFz
eTsgdGhlIGRlYWQgbWFuJ3Mga25lbGw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTk0PklzIHRoZXJl
IHNjYXJjZSBhc2snZCBmb3Igd2hvOyBhbmQgZ29vZCBtZW4ncyBsaXZlczwvQT48YnI+Cis8QSBO
QU1FPTQuMy4xOTU+RXhwaXJlIGJlZm9yZSB0aGUgZmxvd2VycyBpbiB0aGVpciBjYXBzLDwvQT48
YnI+Cis8QSBOQU1FPTQuMy4xOTY+RHlpbmcgb3IgZXJlIHRoZXkgc2lja2VuLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzU+PGI+TUFDRFVGRjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NC4zLjE5Nz5PLCByZWxhdGlvbjwvQT48YnI+Cis8QSBOQU1FPTQu
My4xOTg+VG9vIG5pY2UsIGFuZCB5ZXQgdG9vIHRydWUhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gzNj48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjMuMTk5PldoYXQncyB0aGUgbmV3ZXN0IGdyaWVmPzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMzc+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NC4zLjIwMD5UaGF0IG9mIGFuIGhvdXIncyBhZ2UgZG90aCBoaXNzIHRoZSBzcGVha2Vy
OjwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMDE+RWFjaCBtaW51dGUgdGVlbXMgYSBuZXcgb25lLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzg+PGI+TUFDRFVGRjwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjIwMj5Ib3cgZG9lcyBteSB3aWZlPzwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzk+PGI+Uk9TUzwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjIwMz5XaHksIHdlbGwuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g0MD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT00LjMuMjA0PiAgICAgICAgIEFuZCBhbGwgbXkgY2hpbGRyZW4/PC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0MT48Yj5ST1NTPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjMuMjA1PldlbGwgdG9vLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoNDI+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NC4zLjIwNj5UaGUgdHlyYW50IGhhcyBub3QgYmF0dGVyJ2QgYXQgdGhlaXIgcGVhY2U/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Mz48Yj5ST1NTPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjA3Pk5vOyB0aGV5IHdlcmUgd2VsbCBhdCBw
ZWFjZSB3aGVuIEkgZGlkIGxlYXZlICdlbS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDQ0PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQu
My4yMDg+QnV0IG5vdCBhIG5pZ2dhcmQgb2YgeW91ciBzcGVlY2g6IGhvdyBnb2VzJ3Q/PC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0NT48Yj5ST1NTPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjA5PldoZW4gSSBjYW1lIGhpdGhlciB0byB0cmFuc3Bv
cnQgdGhlIHRpZGluZ3MsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIxMD5XaGljaCBJIGhhdmUgaGVh
dmlseSBib3JuZSwgdGhlcmUgcmFuIGEgcnVtb3VyPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIxMT5P
ZiBtYW55IHdvcnRoeSBmZWxsb3dzIHRoYXQgd2VyZSBvdXQ7PC9BPjxicj4KKzxBIE5BTUU9NC4z
LjIxMj5XaGljaCB3YXMgdG8gbXkgYmVsaWVmIHdpdG5lc3MnZCB0aGUgcmF0aGVyLDwvQT48YnI+
Cis8QSBOQU1FPTQuMy4yMTM+Rm9yIHRoYXQgSSBzYXcgdGhlIHR5cmFudCdzIHBvd2VyIGEtZm9v
dDo8L0E+PGJyPgorPEEgTkFNRT00LjMuMjE0Pk5vdyBpcyB0aGUgdGltZSBvZiBoZWxwOyB5b3Vy
IGV5ZSBpbiBTY290bGFuZDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMTU+V291bGQgY3JlYXRlIHNv
bGRpZXJzLCBtYWtlIG91ciB3b21lbiBmaWdodCw8L0E+PGJyPgorPEEgTkFNRT00LjMuMjE2PlRv
IGRvZmYgdGhlaXIgZGlyZSBkaXN0cmVzc2VzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoNDY+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4zLjIxNz5CZSd0IHRoZWlyIGNvbWZvcnQ8L0E+PGJyPgorPEEgTkFNRT00LjMuMjE4PldlIGFy
ZSBjb21pbmcgdGhpdGhlcjogZ3JhY2lvdXMgRW5nbGFuZCBoYXRoPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjIxOT5MZW50IHVzIGdvb2QgU2l3YXJkIGFuZCB0ZW4gdGhvdXNhbmQgbWVuOzwvQT48YnI+
Cis8QSBOQU1FPTQuMy4yMjA+QW4gb2xkZXIgYW5kIGEgYmV0dGVyIHNvbGRpZXIgbm9uZTwvQT48
YnI+Cis8QSBOQU1FPTQuMy4yMjE+VGhhdCBDaHJpc3RlbmRvbSBnaXZlcyBvdXQuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Nz48Yj5ST1NTPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjMuMjIyPldvdWxkIEkgY291bGQgYW5zd2VyPC9BPjxicj4KKzxB
IE5BTUU9NC4zLjIyMz5UaGlzIGNvbWZvcnQgd2l0aCB0aGUgbGlrZSEgQnV0IEkgaGF2ZSB3b3Jk
czwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMjQ+VGhhdCB3b3VsZCBiZSBob3dsJ2Qgb3V0IGluIHRo
ZSBkZXNlcnQgYWlyLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMjU+V2hlcmUgaGVhcmluZyBzaG91
bGQgbm90IGxhdGNoIHRoZW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g0OD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjI2Pldo
YXQgY29uY2VybiB0aGV5PzwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMjc+VGhlIGdlbmVyYWwgY2F1
c2U/IG9yIGlzIGl0IGEgZmVlLWdyaWVmPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIyOD5EdWUgdG8g
c29tZSBzaW5nbGUgYnJlYXN0PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoNDk+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjIyOT5ObyBt
aW5kIHRoYXQncyBob25lc3Q8L0E+PGJyPgorPEEgTkFNRT00LjMuMjMwPkJ1dCBpbiBpdCBzaGFy
ZXMgc29tZSB3b2U7IHRob3VnaCB0aGUgbWFpbiBwYXJ0PC9BPjxicj4KKzxBIE5BTUU9NC4zLjIz
MT5QZXJ0YWlucyB0byB5b3UgYWxvbmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g1MD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMu
MjMyPklmIGl0IGJlIG1pbmUsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIzMz5LZWVwIGl0IG5vdCBm
cm9tIG1lLCBxdWlja2x5IGxldCBtZSBoYXZlIGl0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoNTE+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4zLjIzND5MZXQgbm90IHlvdXIgZWFycyBkZXNwaXNlIG15IHRvbmd1ZSBmb3IgZXZlciw8L0E+
PGJyPgorPEEgTkFNRT00LjMuMjM1PldoaWNoIHNoYWxsIHBvc3Nlc3MgdGhlbSB3aXRoIHRoZSBo
ZWF2aWVzdCBzb3VuZDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMzY+VGhhdCBldmVyIHlldCB0aGV5
IGhlYXJkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNTI+PGI+TUFD
RFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjIzNz5IdW0hIEkgZ3Vlc3Mg
YXQgaXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1Mz48Yj5ST1NT
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjM4PllvdXIgY2FzdGxlIGlzIHN1
cnByaXNlZDsgeW91ciB3aWZlIGFuZCBiYWJlczwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMzk+U2F2
YWdlbHkgc2xhdWdodGVyJ2Q6IHRvIHJlbGF0ZSB0aGUgbWFubmVyLDwvQT48YnI+Cis8QSBOQU1F
PTQuMy4yNDA+V2VyZSwgb24gdGhlIHF1YXJyeSBvZiB0aGVzZSBtdXJkZXInZCBkZWVyLDwvQT48
YnI+Cis8QSBOQU1FPTQuMy4yNDE+VG8gYWRkIHRoZSBkZWF0aCBvZiB5b3UuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1ND48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjMuMjQyPk1lcmNpZnVsIGhlYXZlbiE8L0E+PGJyPgorPEEgTkFN
RT00LjMuMjQzPldoYXQsIG1hbiEgbmUnZXIgcHVsbCB5b3VyIGhhdCB1cG9uIHlvdXIgYnJvd3M7
PC9BPjxicj4KKzxBIE5BTUU9NC4zLjI0ND5HaXZlIHNvcnJvdyB3b3JkczogdGhlIGdyaWVmIHRo
YXQgZG9lcyBub3Qgc3BlYWs8L0E+PGJyPgorPEEgTkFNRT00LjMuMjQ1PldoaXNwZXJzIHRoZSBv
J2VyLWZyYXVnaHQgaGVhcnQgYW5kIGJpZHMgaXQgYnJlYWsuPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2g1NT48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjMuMjQ2Pk15IGNoaWxkcmVuIHRvbz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDU2PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTQuMy4yNDc+ICAgICAgICAgICAgICAgICAgV2lmZSwgY2hpbGRyZW4sIHNlcnZhbnRzLCBhbGw8
L0E+PGJyPgorPEEgTkFNRT00LjMuMjQ4PlRoYXQgY291bGQgYmUgZm91bmQuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1Nz48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjMuMjQ5PkFuZCBJIG11c3QgYmUgZnJvbSB0aGVuY2UhPC9BPjxi
cj4KKzxBIE5BTUU9NC4zLjI1MD5NeSB3aWZlIGtpbGwnZCB0b28/PC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g1OD48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjMuMjUxPkkgaGF2ZSBzYWlkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoNTk+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4zLjI1Mj5CZSBjb21mb3J0ZWQ6PC9BPjxicj4KKzxBIE5BTUU9NC4zLjI1Mz5MZXQncyBtYWtl
IHVzIG1lZGljaW5lcyBvZiBvdXIgZ3JlYXQgcmV2ZW5nZSw8L0E+PGJyPgorPEEgTkFNRT00LjMu
MjU0PlRvIGN1cmUgdGhpcyBkZWFkbHkgZ3JpZWYuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2g2MD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT00LjMuMjU1PkhlIGhhcyBubyBjaGlsZHJlbi4gQWxsIG15IHByZXR0eSBvbmVzPzwvQT48YnI+
Cis8QSBOQU1FPTQuMy4yNTY+RGlkIHlvdSBzYXkgYWxsPyBPIGhlbGwta2l0ZSEgQWxsPzwvQT48
YnI+Cis8QSBOQU1FPTQuMy4yNTc+V2hhdCwgYWxsIG15IHByZXR0eSBjaGlja2VucyBhbmQgdGhl
aXIgZGFtPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI1OD5BdCBvbmUgZmVsbCBzd29vcD88L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDYxPjxiPk1BTENPTE08L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yNTk+RGlzcHV0ZSBpdCBsaWtlIGEgbWFuLjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNjI+PGI+TUFDRFVGRjwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjI2MD5JIHNoYWxsIGRvIHNvOzwvQT48YnI+Cis8
QSBOQU1FPTQuMy4yNjE+QnV0IEkgbXVzdCBhbHNvIGZlZWwgaXQgYXMgYSBtYW46PC9BPjxicj4K
KzxBIE5BTUU9NC4zLjI2Mj5JIGNhbm5vdCBidXQgcmVtZW1iZXIgc3VjaCB0aGluZ3Mgd2VyZSw8
L0E+PGJyPgorPEEgTkFNRT00LjMuMjYzPlRoYXQgd2VyZSBtb3N0IHByZWNpb3VzIHRvIG1lLiBE
aWQgaGVhdmVuIGxvb2sgb24sPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI2ND5BbmQgd291bGQgbm90
IHRha2UgdGhlaXIgcGFydD8gU2luZnVsIE1hY2R1ZmYsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI2
NT5UaGV5IHdlcmUgYWxsIHN0cnVjayBmb3IgdGhlZSEgbmF1Z2h0IHRoYXQgSSBhbSw8L0E+PGJy
PgorPEEgTkFNRT00LjMuMjY2Pk5vdCBmb3IgdGhlaXIgb3duIGRlbWVyaXRzLCBidXQgZm9yIG1p
bmUsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI2Nz5GZWxsIHNsYXVnaHRlciBvbiB0aGVpciBzb3Vs
cy4gSGVhdmVuIHJlc3QgdGhlbSBub3chPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g2Mz48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMu
MjY4PkJlIHRoaXMgdGhlIHdoZXRzdG9uZSBvZiB5b3VyIHN3b3JkOiBsZXQgZ3JpZWY8L0E+PGJy
PgorPEEgTkFNRT00LjMuMjY5PkNvbnZlcnQgdG8gYW5nZXI7IGJsdW50IG5vdCB0aGUgaGVhcnQs
IGVucmFnZSBpdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY0Pjxi
Pk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yNzA+TywgSSBjb3Vs
ZCBwbGF5IHRoZSB3b21hbiB3aXRoIG1pbmUgZXllczwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNzE+
QW5kIGJyYWdnYXJ0IHdpdGggbXkgdG9uZ3VlISBCdXQsIGdlbnRsZSBoZWF2ZW5zLDwvQT48YnI+
Cis8QSBOQU1FPTQuMy4yNzI+Q3V0IHNob3J0IGFsbCBpbnRlcm1pc3Npb247IGZyb250IHRvIGZy
b250PC9BPjxicj4KKzxBIE5BTUU9NC4zLjI3Mz5CcmluZyB0aG91IHRoaXMgZmllbmQgb2YgU2Nv
dGxhbmQgYW5kIG15c2VsZjs8L0E+PGJyPgorPEEgTkFNRT00LjMuMjc0PldpdGhpbiBteSBzd29y
ZCdzIGxlbmd0aCBzZXQgaGltOyBpZiBoZSAnc2NhcGUsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI3
NT5IZWF2ZW4gZm9yZ2l2ZSBoaW0gdG9vITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoNjU+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4z
LjI3Nj5UaGlzIHR1bmUgZ29lcyBtYW5seS48L0E+PGJyPgorPEEgTkFNRT00LjMuMjc3PkNvbWUs
IGdvIHdlIHRvIHRoZSBraW5nOyBvdXIgcG93ZXIgaXMgcmVhZHk7PC9BPjxicj4KKzxBIE5BTUU9
NC4zLjI3OD5PdXIgbGFjayBpcyBub3RoaW5nIGJ1dCBvdXIgbGVhdmU7IE1hY2JldGg8L0E+PGJy
PgorPEEgTkFNRT00LjMuMjc5PklzIHJpcGUgZm9yIHNoYWtpbmcsIGFuZCB0aGUgcG93ZXJzIGFi
b3ZlPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI4MD5QdXQgb24gdGhlaXIgaW5zdHJ1bWVudHMuIFJl
Y2VpdmUgd2hhdCBjaGVlciB5b3UgbWF5OjwvQT48YnI+Cis8QSBOQU1FPTQuMy4yODE+VGhlIG5p
Z2h0IGlzIGxvbmcgdGhhdCBuZXZlciBmaW5kcyB0aGUgZGF5LjwvQT48YnI+Cis8cD48aT5FeGV1
bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPjxwPgorPEgzPkFDVCBWPC9oMz4KKzxoMz5TQ0VORSBJ
LiBEdW5zaW5hbmUuIEFudGUtcm9vbSBpbiB0aGUgY2FzdGxlLjwvaDM+Cis8cD48YmxvY2txdW90
ZT4KKzxpPkVudGVyIGEgRG9jdG9yIG9mIFBoeXNpYyBhbmQgYSBXYWl0aW5nLUdlbnRsZXdvbWFu
PC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+RG9jdG9yPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuMT5JIGhhdmUgdHdvIG5pZ2h0cyB3YXRjaGVkIHdp
dGggeW91LCBidXQgY2FuIHBlcmNlaXZlPC9BPjxicj4KKzxBIE5BTUU9NS4xLjI+bm8gdHJ1dGgg
aW4geW91ciByZXBvcnQuIFdoZW4gd2FzIGl0IHNoZSBsYXN0IHdhbGtlZD88L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+R2VudGxld29tYW48L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4zPlNpbmNlIGhpcyBtYWplc3R5IHdlbnQgaW50byB0aGUg
ZmllbGQsIEkgaGF2ZSBzZWVuPC9BPjxicj4KKzxBIE5BTUU9NS4xLjQ+aGVyIHJpc2UgZnJvbSBo
ZXIgYmVkLCB0aHJvdyBoZXIgbmlnaHQtZ293biB1cG9uPC9BPjxicj4KKzxBIE5BTUU9NS4xLjU+
aGVyLCB1bmxvY2sgaGVyIGNsb3NldCwgdGFrZSBmb3J0aCBwYXBlciwgZm9sZCBpdCw8L0E+PGJy
PgorPEEgTkFNRT01LjEuNj53cml0ZSB1cG9uJ3QsIHJlYWQgaXQsIGFmdGVyd2FyZHMgc2VhbCBp
dCwgYW5kIGFnYWluPC9BPjxicj4KKzxBIE5BTUU9NS4xLjc+cmV0dXJuIHRvIGJlZDsgeWV0IGFs
bCB0aGlzIHdoaWxlIGluIGEgbW9zdCBmYXN0IHNsZWVwLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTUuMS44PkEgZ3JlYXQgcGVydHVyYmF0aW9uIGluIG5hdHVyZSwgdG8gcmVjZWl2ZSBhdCBv
bmNlPC9BPjxicj4KKzxBIE5BTUU9NS4xLjk+dGhlIGJlbmVmaXQgb2Ygc2xlZXAsIGFuZCBkbyB0
aGUgZWZmZWN0cyBvZjwvQT48YnI+Cis8QSBOQU1FPTUuMS4xMD53YXRjaGluZyEgSW4gdGhpcyBz
bHVtYmVyeSBhZ2l0YXRpb24sIGJlc2lkZXMgaGVyPC9BPjxicj4KKzxBIE5BTUU9NS4xLjExPndh
bGtpbmcgYW5kIG90aGVyIGFjdHVhbCBwZXJmb3JtYW5jZXMsIHdoYXQsIGF0IGFueTwvQT48YnI+
Cis8QSBOQU1FPTUuMS4xMj50aW1lLCBoYXZlIHlvdSBoZWFyZCBoZXIgc2F5PzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5HZW50bGV3b21hbjwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjEzPlRoYXQsIHNpciwgd2hpY2ggSSB3aWxsIG5vdCBy
ZXBvcnQgYWZ0ZXIgaGVyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
NT48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4xND5Zb3UgbWF5
IHRvIG1lOiBhbmQgJ3RpcyBtb3N0IG1lZXQgeW91IHNob3VsZC48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+R2VudGxld29tYW48L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuMS4xNT5OZWl0aGVyIHRvIHlvdSBub3IgYW55IG9uZTsgaGF2aW5nIG5v
IHdpdG5lc3MgdG88L0E+PGJyPgorPEEgTkFNRT01LjEuMTY+Y29uZmlybSBteSBzcGVlY2guPC9B
Pjxicj4KKzxwPjxpPkVudGVyIExBRFkgTUFDQkVUSCwgd2l0aCBhIHRhcGVyPC9pPjwvcD4KKzxB
IE5BTUU9NS4xLjE3PkxvIHlvdSwgaGVyZSBzaGUgY29tZXMhIFRoaXMgaXMgaGVyIHZlcnkgZ3Vp
c2U7PC9BPjxicj4KKzxBIE5BTUU9NS4xLjE4PmFuZCwgdXBvbiBteSBsaWZlLCBmYXN0IGFzbGVl
cC4gT2JzZXJ2ZSBoZXI7IHN0YW5kIGNsb3NlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoNz48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUu
MS4xOT5Ib3cgY2FtZSBzaGUgYnkgdGhhdCBsaWdodD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDg+PGI+R2VudGxld29tYW48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTUuMS4yMD5XaHksIGl0IHN0b29kIGJ5IGhlcjogc2hlIGhhcyBsaWdodCBieSBoZXI8
L0E+PGJyPgorPEEgTkFNRT01LjEuMjE+Y29udGludWFsbHk7ICd0aXMgaGVyIGNvbW1hbmQuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPkRvY3RvcjwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjIyPllvdSBzZWUsIGhlciBleWVzIGFyZSBvcGVu
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+R2VudGxld29t
YW48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4yMz5BeSwgYnV0IHRoZWlyIHNl
bnNlIGlzIHNodXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48
Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4yND5XaGF0IGlzIGl0
IHNoZSBkb2VzIG5vdz8gTG9vaywgaG93IHNoZSBydWJzIGhlciBoYW5kcy48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPkdlbnRsZXdvbWFuPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT01LjEuMjU+SXQgaXMgYW4gYWNjdXN0b21lZCBhY3Rpb24gd2l0
aCBoZXIsIHRvIHNlZW0gdGh1czwvQT48YnI+Cis8QSBOQU1FPTUuMS4yNj53YXNoaW5nIGhlciBo
YW5kczogSSBoYXZlIGtub3duIGhlciBjb250aW51ZSBpbjwvQT48YnI+Cis8QSBOQU1FPTUuMS4y
Nz50aGlzIGEgcXVhcnRlciBvZiBhbiBob3VyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMTM+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT01LjEuMjg+WWV0IGhlcmUncyBhIHNwb3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxND48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTUuMS4yOT5IYXJrISBzaGUgc3BlYWtzOiBJIHdpbGwgc2V0IGRvd24gd2hhdCBjb21lcyBmcm9t
PC9BPjxicj4KKzxBIE5BTUU9NS4xLjMwPmhlciwgdG8gc2F0aXNmeSBteSByZW1lbWJyYW5jZSB0
aGUgbW9yZSBzdHJvbmdseS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDE1PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjMx
Pk91dCwgZGFtbmVkIHNwb3QhIG91dCwgSSBzYXkhLS1PbmU6IHR3bzogd2h5LDwvQT48YnI+Cis8
QSBOQU1FPTUuMS4zMj50aGVuLCAndGlzIHRpbWUgdG8gZG8ndC4tLUhlbGwgaXMgbXVya3khLS1G
aWUsIG15PC9BPjxicj4KKzxBIE5BTUU9NS4xLjMzPmxvcmQsIGZpZSEgYSBzb2xkaWVyLCBhbmQg
YWZlYXJkPyBXaGF0IG5lZWQgd2U8L0E+PGJyPgorPEEgTkFNRT01LjEuMzQ+ZmVhciB3aG8ga25v
d3MgaXQsIHdoZW4gbm9uZSBjYW4gY2FsbCBvdXIgcG93ZXIgdG88L0E+PGJyPgorPEEgTkFNRT01
LjEuMzU+YWNjb3VudD8tLVlldCB3aG8gd291bGQgaGF2ZSB0aG91Z2h0IHRoZSBvbGQgbWFuPC9B
Pjxicj4KKzxBIE5BTUU9NS4xLjM2PnRvIGhhdmUgaGFkIHNvIG11Y2ggYmxvb2QgaW4gaGltLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTY+PGI+RG9jdG9yPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuMzc+RG8geW91IG1hcmsgdGhhdD88L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE3PjxiPkxBRFkgTUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjM4PlRoZSB0aGFuZSBvZiBGaWZlIGhhZCBh
IHdpZmU6IHdoZXJlIGlzIHNoZSBub3c/LS08L0E+PGJyPgorPEEgTkFNRT01LjEuMzk+V2hhdCwg
d2lsbCB0aGVzZSBoYW5kcyBuZSdlciBiZSBjbGVhbj8tLU5vIG1vcmUgbyc8L0E+PGJyPgorPEEg
TkFNRT01LjEuNDA+dGhhdCwgbXkgbG9yZCwgbm8gbW9yZSBvJyB0aGF0OiB5b3UgbWFyIGFsbCB3
aXRoPC9BPjxicj4KKzxBIE5BTUU9NS4xLjQxPnRoaXMgc3RhcnRpbmcuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOD48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuMS40Mj5HbyB0bywgZ28gdG87IHlvdSBoYXZlIGtub3duIHdoYXQgeW91
IHNob3VsZCBub3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOT48
Yj5HZW50bGV3b21hbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjQzPlNoZSBo
YXMgc3Bva2Ugd2hhdCBzaGUgc2hvdWxkIG5vdCwgSSBhbSBzdXJlIG9mPC9BPjxicj4KKzxBIE5B
TUU9NS4xLjQ0PnRoYXQ6IGhlYXZlbiBrbm93cyB3aGF0IHNoZSBoYXMga25vd24uPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMD48Yj5MQURZIE1BQ0JFVEg8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS40NT5IZXJlJ3MgdGhlIHNtZWxsIG9mIHRoZSBi
bG9vZCBzdGlsbDogYWxsIHRoZTwvQT48YnI+Cis8QSBOQU1FPTUuMS40Nj5wZXJmdW1lcyBvZiBB
cmFiaWEgd2lsbCBub3Qgc3dlZXRlbiB0aGlzIGxpdHRsZTwvQT48YnI+Cis8QSBOQU1FPTUuMS40
Nz5oYW5kLiBPaCwgb2gsIG9oITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMjE+PGI+RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuNDg+V2hh
dCBhIHNpZ2ggaXMgdGhlcmUhIFRoZSBoZWFydCBpcyBzb3JlbHkgY2hhcmdlZC48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIyPjxiPkdlbnRsZXdvbWFuPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuNDk+SSB3b3VsZCBub3QgaGF2ZSBzdWNoIGEgaGVh
cnQgaW4gbXkgYm9zb20gZm9yIHRoZTwvQT48YnI+Cis8QSBOQU1FPTUuMS41MD5kaWduaXR5IG9m
IHRoZSB3aG9sZSBib2R5LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MjM+PGI+RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuNTE+V2VsbCwg
d2VsbCwgd2VsbCwtLTwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjQ+
PGI+R2VudGxld29tYW48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS41Mj5QcmF5
IEdvZCBpdCBiZSwgc2lyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MjU+PGI+RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuNTM+VGhpcyBk
aXNlYXNlIGlzIGJleW9uZCBteSBwcmFjdGlzZTogeWV0IEkgaGF2ZSBrbm93bjwvQT48YnI+Cis8
QSBOQU1FPTUuMS41ND50aG9zZSB3aGljaCBoYXZlIHdhbGtlZCBpbiB0aGVpciBzbGVlcCB3aG8g
aGF2ZSBkaWVkPC9BPjxicj4KKzxBIE5BTUU9NS4xLjU1PmhvbGlseSBpbiB0aGVpciBiZWRzLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjY+PGI+TEFEWSBNQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuNTY+V2FzaCB5b3VyIGhhbmRzLCBw
dXQgb24geW91ciBuaWdodGdvd247IGxvb2sgbm90IHNvPC9BPjxicj4KKzxBIE5BTUU9NS4xLjU3
PnBhbGUuLS1JIHRlbGwgeW91IHlldCBhZ2FpbiwgQmFucXVvJ3MgYnVyaWVkOyBoZTwvQT48YnI+
Cis8QSBOQU1FPTUuMS41OD5jYW5ub3QgY29tZSBvdXQgb24ncyBncmF2ZS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI3PjxiPkRvY3RvcjwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NS4xLjU5PkV2ZW4gc28/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gyOD48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTUuMS42MD5UbyBiZWQsIHRvIGJlZCEgdGhlcmUncyBrbm9ja2luZyBhdCB0aGUgZ2F0
ZTo8L0E+PGJyPgorPEEgTkFNRT01LjEuNjE+Y29tZSwgY29tZSwgY29tZSwgY29tZSwgZ2l2ZSBt
ZSB5b3VyIGhhbmQuIFdoYXQnczwvQT48YnI+Cis8QSBOQU1FPTUuMS42Mj5kb25lIGNhbm5vdCBi
ZSB1bmRvbmUuLS1UbyBiZWQsIHRvIGJlZCwgdG8gYmVkITwvQT48YnI+Cis8cD48aT5FeGl0PC9p
PjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyOT48Yj5Eb2N0b3I8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS42Mz5XaWxsIHNoZSBnbyBub3cgdG8gYmVkPzwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzA+PGI+R2VudGxld29tYW48
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS42ND5EaXJlY3RseS48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMxPjxiPkRvY3RvcjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NS4xLjY1PkZvdWwgd2hpc3BlcmluZ3MgYXJlIGFicm9hZDogdW5u
YXR1cmFsIGRlZWRzPC9BPjxicj4KKzxBIE5BTUU9NS4xLjY2PkRvIGJyZWVkIHVubmF0dXJhbCB0
cm91YmxlczogaW5mZWN0ZWQgbWluZHM8L0E+PGJyPgorPEEgTkFNRT01LjEuNjc+VG8gdGhlaXIg
ZGVhZiBwaWxsb3dzIHdpbGwgZGlzY2hhcmdlIHRoZWlyIHNlY3JldHM6PC9BPjxicj4KKzxBIE5B
TUU9NS4xLjY4Pk1vcmUgbmVlZHMgc2hlIHRoZSBkaXZpbmUgdGhhbiB0aGUgcGh5c2ljaWFuLjwv
QT48YnI+Cis8QSBOQU1FPTUuMS42OT5Hb2QsIEdvZCBmb3JnaXZlIHVzIGFsbCEgTG9vayBhZnRl
ciBoZXI7PC9BPjxicj4KKzxBIE5BTUU9NS4xLjcwPlJlbW92ZSBmcm9tIGhlciB0aGUgbWVhbnMg
b2YgYWxsIGFubm95YW5jZSw8L0E+PGJyPgorPEEgTkFNRT01LjEuNzE+QW5kIHN0aWxsIGtlZXAg
ZXllcyB1cG9uIGhlci4gU28sIGdvb2QgbmlnaHQ6PC9BPjxicj4KKzxBIE5BTUU9NS4xLjcyPk15
IG1pbmQgc2hlIGhhcyBtYXRlZCwgYW5kIGFtYXplZCBteSBzaWdodC48L0E+PGJyPgorPEEgTkFN
RT01LjEuNzM+SSB0aGluaywgYnV0IGRhcmUgbm90IHNwZWFrLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMzI+PGI+R2VudGxld29tYW48L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuMS43ND5Hb29kIG5pZ2h0LCBnb29kIGRvY3Rvci48L0E+PGJyPgorPHA+
PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBJSS4gVGhlIGNvdW50
cnkgbmVhciBEdW5zaW5hbmUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RHJ1bSBhbmQgY29s
b3Vycy4gRW50ZXIgTUVOVEVJVEgsIENBSVRITkVTUywgQU5HVVMsIExFTk5PWCwgYW5kIFNvbGRp
ZXJzPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TUVOVEVJVEg8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMi4xPlRoZSBFbmdsaXNoIHBvd2VyIGlzIG5l
YXIsIGxlZCBvbiBieSBNYWxjb2xtLDwvQT48YnI+Cis8QSBOQU1FPTUuMi4yPkhpcyB1bmNsZSBT
aXdhcmQgYW5kIHRoZSBnb29kIE1hY2R1ZmY6PC9BPjxicj4KKzxBIE5BTUU9NS4yLjM+UmV2ZW5n
ZXMgYnVybiBpbiB0aGVtOyBmb3IgdGhlaXIgZGVhciBjYXVzZXM8L0E+PGJyPgorPEEgTkFNRT01
LjIuND5Xb3VsZCB0byB0aGUgYmxlZWRpbmcgYW5kIHRoZSBncmltIGFsYXJtPC9BPjxicj4KKzxB
IE5BTUU9NS4yLjU+RXhjaXRlIHRoZSBtb3J0aWZpZWQgbWFuLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5BTkdVUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NS4yLjY+TmVhciBCaXJuYW0gd29vZDwvQT48YnI+Cis8QSBOQU1FPTUuMi43PlNoYWxs
IHdlIHdlbGwgbWVldCB0aGVtOyB0aGF0IHdheSBhcmUgdGhleSBjb21pbmcuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPkNBSVRITkVTUzwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NS4yLjg+V2hvIGtub3dzIGlmIERvbmFsYmFpbiBiZSB3aXRoIGhp
cyBicm90aGVyPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5M
RU5OT1g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMi45PkZvciBjZXJ0YWluLCBz
aXIsIGhlIGlzIG5vdDogSSBoYXZlIGEgZmlsZTwvQT48YnI+Cis8QSBOQU1FPTUuMi4xMD5PZiBh
bGwgdGhlIGdlbnRyeTogdGhlcmUgaXMgU2l3YXJkJ3Mgc29uLDwvQT48YnI+Cis8QSBOQU1FPTUu
Mi4xMT5BbmQgbWFueSB1bnJvdWdoIHlvdXRocyB0aGF0IGV2ZW4gbm93PC9BPjxicj4KKzxBIE5B
TUU9NS4yLjEyPlByb3Rlc3QgdGhlaXIgZmlyc3Qgb2YgbWFuaG9vZC48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+TUVOVEVJVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuMi4xMz5XaGF0IGRvZXMgdGhlIHR5cmFudD88L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+Q0FJVEhORVNTPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT01LjIuMTQ+R3JlYXQgRHVuc2luYW5lIGhlIHN0cm9uZ2x5IGZvcnRpZmll
czo8L0E+PGJyPgorPEEgTkFNRT01LjIuMTU+U29tZSBzYXkgaGUncyBtYWQ7IG90aGVycyB0aGF0
IGxlc3NlciBoYXRlIGhpbTwvQT48YnI+Cis8QSBOQU1FPTUuMi4xNj5EbyBjYWxsIGl0IHZhbGlh
bnQgZnVyeTogYnV0LCBmb3IgY2VydGFpbiw8L0E+PGJyPgorPEEgTkFNRT01LjIuMTc+SGUgY2Fu
bm90IGJ1Y2tsZSBoaXMgZGlzdGVtcGVyJ2QgY2F1c2U8L0E+PGJyPgorPEEgTkFNRT01LjIuMTg+
V2l0aGluIHRoZSBiZWx0IG9mIHJ1bGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g3PjxiPkFOR1VTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjIuMTk+
Tm93IGRvZXMgaGUgZmVlbDwvQT48YnI+Cis8QSBOQU1FPTUuMi4yMD5IaXMgc2VjcmV0IG11cmRl
cnMgc3RpY2tpbmcgb24gaGlzIGhhbmRzOzwvQT48YnI+Cis8QSBOQU1FPTUuMi4yMT5Ob3cgbWlu
dXRlbHkgcmV2b2x0cyB1cGJyYWlkIGhpcyBmYWl0aC1icmVhY2g7PC9BPjxicj4KKzxBIE5BTUU9
NS4yLjIyPlRob3NlIGhlIGNvbW1hbmRzIG1vdmUgb25seSBpbiBjb21tYW5kLDwvQT48YnI+Cis8
QSBOQU1FPTUuMi4yMz5Ob3RoaW5nIGluIGxvdmU6IG5vdyBkb2VzIGhlIGZlZWwgaGlzIHRpdGxl
PC9BPjxicj4KKzxBIE5BTUU9NS4yLjI0PkhhbmcgbG9vc2UgYWJvdXQgaGltLCBsaWtlIGEgZ2lh
bnQncyByb2JlPC9BPjxicj4KKzxBIE5BTUU9NS4yLjI1PlVwb24gYSBkd2FyZmlzaCB0aGllZi48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+TUVOVEVJVEg8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMi4yNj5XaG8gdGhlbiBzaGFsbCBibGFtZTwv
QT48YnI+Cis8QSBOQU1FPTUuMi4yNz5IaXMgcGVzdGVyJ2Qgc2Vuc2VzIHRvIHJlY29pbCBhbmQg
c3RhcnQsPC9BPjxicj4KKzxBIE5BTUU9NS4yLjI4PldoZW4gYWxsIHRoYXQgaXMgd2l0aGluIGhp
bSBkb2VzIGNvbmRlbW48L0E+PGJyPgorPEEgTkFNRT01LjIuMjk+SXRzZWxmIGZvciBiZWluZyB0
aGVyZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+Q0FJVEhO
RVNTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjIuMzA+V2VsbCwgbWFyY2ggd2Ug
b24sPC9BPjxicj4KKzxBIE5BTUU9NS4yLjMxPlRvIGdpdmUgb2JlZGllbmNlIHdoZXJlICd0aXMg
dHJ1bHkgb3dlZDo8L0E+PGJyPgorPEEgTkFNRT01LjIuMzI+TWVldCB3ZSB0aGUgbWVkaWNpbmUg
b2YgdGhlIHNpY2tseSB3ZWFsLDwvQT48YnI+Cis8QSBOQU1FPTUuMi4zMz5BbmQgd2l0aCBoaW0g
cG91ciB3ZSBpbiBvdXIgY291bnRyeSdzIHB1cmdlPC9BPjxicj4KKzxBIE5BTUU9NS4yLjM0PkVh
Y2ggZHJvcCBvZiB1cy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEw
PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4yLjM1PiAgICAgICAg
ICAgICAgICAgIE9yIHNvIG11Y2ggYXMgaXQgbmVlZHMsPC9BPjxicj4KKzxBIE5BTUU9NS4yLjM2
PlRvIGRldyB0aGUgc292ZXJlaWduIGZsb3dlciBhbmQgZHJvd24gdGhlIHdlZWRzLjwvQT48YnI+
Cis8QSBOQU1FPTUuMi4zNz5NYWtlIHdlIG91ciBtYXJjaCB0b3dhcmRzIEJpcm5hbS48L0E+PGJy
PgorPHA+PGk+RXhldW50LCBtYXJjaGluZzwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NF
TkUgSUlJLiBEdW5zaW5hbmUuIEEgcm9vbSBpbiB0aGUgY2FzdGxlLjwvaDM+Cis8cD48YmxvY2tx
dW90ZT4KKzxpPkVudGVyIE1BQ0JFVEgsIERvY3RvciwgYW5kIEF0dGVuZGFudHM8L2k+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT01LjMuMT5CcmluZyBtZSBubyBtb3JlIHJlcG9ydHM7IGxldCB0aGVtIGZs
eSBhbGw6PC9BPjxicj4KKzxBIE5BTUU9NS4zLjI+VGlsbCBCaXJuYW0gd29vZCByZW1vdmUgdG8g
RHVuc2luYW5lLDwvQT48YnI+Cis8QSBOQU1FPTUuMy4zPkkgY2Fubm90IHRhaW50IHdpdGggZmVh
ci4gV2hhdCdzIHRoZSBib3kgTWFsY29sbT88L0E+PGJyPgorPEEgTkFNRT01LjMuND5XYXMgaGUg
bm90IGJvcm4gb2Ygd29tYW4/IFRoZSBzcGlyaXRzIHRoYXQga25vdzwvQT48YnI+Cis8QSBOQU1F
PTUuMy41PkFsbCBtb3J0YWwgY29uc2VxdWVuY2VzIGhhdmUgcHJvbm91bmNlZCBtZSB0aHVzOjwv
QT48YnI+Cis8QSBOQU1FPTUuMy42PidGZWFyIG5vdCwgTWFjYmV0aDsgbm8gbWFuIHRoYXQncyBi
b3JuIG9mIHdvbWFuPC9BPjxicj4KKzxBIE5BTUU9NS4zLjc+U2hhbGwgZSdlciBoYXZlIHBvd2Vy
IHVwb24gdGhlZS4nIFRoZW4gZmx5LDwvQT48YnI+Cis8QSBOQU1FPTUuMy44PmZhbHNlIHRoYW5l
cyw8L0E+PGJyPgorPEEgTkFNRT01LjMuOT5BbmQgbWluZ2xlIHdpdGggdGhlIEVuZ2xpc2ggZXBp
Y3VyZXM6PC9BPjxicj4KKzxBIE5BTUU9NS4zLjEwPlRoZSBtaW5kIEkgc3dheSBieSBhbmQgdGhl
IGhlYXJ0IEkgYmVhcjwvQT48YnI+Cis8QSBOQU1FPTUuMy4xMT5TaGFsbCBuZXZlciBzYWcgd2l0
aCBkb3VidCBub3Igc2hha2Ugd2l0aCBmZWFyLjwvQT48YnI+Cis8cD48aT5FbnRlciBhIFNlcnZh
bnQ8L2k+PC9wPgorPEEgTkFNRT01LjMuMTI+VGhlIGRldmlsIGRhbW4gdGhlZSBibGFjaywgdGhv
dSBjcmVhbS1mYWNlZCBsb29uITwvQT48YnI+Cis8QSBOQU1FPTUuMy4xMz5XaGVyZSBnb3Qnc3Qg
dGhvdSB0aGF0IGdvb3NlIGxvb2s/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gyPjxiPlNlcnZhbnQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMy4xND5U
aGVyZSBpcyB0ZW4gdGhvdXNhbmQtLTwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuMTU+
R2Vlc2UsIHZpbGxhaW4hPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0
PjxiPlNlcnZhbnQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMy4xNj5Tb2xkaWVy
cywgc2lyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5NQUNC
RVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuMTc+R28gcHJpY2sgdGh5IGZh
Y2UsIGFuZCBvdmVyLXJlZCB0aHkgZmVhciw8L0E+PGJyPgorPEEgTkFNRT01LjMuMTg+VGhvdSBs
aWx5LWxpdmVyJ2QgYm95LiBXaGF0IHNvbGRpZXJzLCBwYXRjaD88L0E+PGJyPgorPEEgTkFNRT01
LjMuMTk+RGVhdGggb2YgdGh5IHNvdWwhIHRob3NlIGxpbmVuIGNoZWVrcyBvZiB0aGluZTwvQT48
YnI+Cis8QSBOQU1FPTUuMy4yMD5BcmUgY291bnNlbGxvcnMgdG8gZmVhci4gV2hhdCBzb2xkaWVy
cywgd2hleS1mYWNlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48
Yj5TZXJ2YW50PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuMjE+VGhlIEVuZ2xp
c2ggZm9yY2UsIHNvIHBsZWFzZSB5b3UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g3PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMy4y
Mj5UYWtlIHRoeSBmYWNlIGhlbmNlLjwvQT48YnI+Cis8cD48aT5FeGl0IFNlcnZhbnQ8L2k+PC9w
PgorPEEgTkFNRT01LjMuMjM+U2V5dG9uIS0tSSBhbSBzaWNrIGF0IGhlYXJ0LDwvQT48YnI+Cis8
QSBOQU1FPTUuMy4yND5XaGVuIEkgYmVob2xkLS1TZXl0b24sIEkgc2F5IS0tVGhpcyBwdXNoPC9B
Pjxicj4KKzxBIE5BTUU9NS4zLjI1PldpbGwgY2hlZXIgbWUgZXZlciwgb3IgZGlzc2VhdCBtZSBu
b3cuPC9BPjxicj4KKzxBIE5BTUU9NS4zLjI2PkkgaGF2ZSBsaXZlZCBsb25nIGVub3VnaDogbXkg
d2F5IG9mIGxpZmU8L0E+PGJyPgorPEEgTkFNRT01LjMuMjc+SXMgZmFsbCduIGludG8gdGhlIHNl
YXIsIHRoZSB5ZWxsb3cgbGVhZjs8L0E+PGJyPgorPEEgTkFNRT01LjMuMjg+QW5kIHRoYXQgd2hp
Y2ggc2hvdWxkIGFjY29tcGFueSBvbGQgYWdlLDwvQT48YnI+Cis8QSBOQU1FPTUuMy4yOT5BcyBo
b25vdXIsIGxvdmUsIG9iZWRpZW5jZSwgdHJvb3BzIG9mIGZyaWVuZHMsPC9BPjxicj4KKzxBIE5B
TUU9NS4zLjMwPkkgbXVzdCBub3QgbG9vayB0byBoYXZlOyBidXQsIGluIHRoZWlyIHN0ZWFkLDwv
QT48YnI+Cis8QSBOQU1FPTUuMy4zMT5DdXJzZXMsIG5vdCBsb3VkIGJ1dCBkZWVwLCBtb3V0aC1o
b25vdXIsIGJyZWF0aCw8L0E+PGJyPgorPEEgTkFNRT01LjMuMzI+V2hpY2ggdGhlIHBvb3IgaGVh
cnQgd291bGQgZmFpbiBkZW55LCBhbmQgZGFyZSBub3QuIFNleXRvbiE8L0E+PGJyPgorPHA+PGk+
RW50ZXIgU0VZVE9OPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4Pjxi
PlNFWVRPTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4zLjMzPldoYXQgaXMgeW91
ciBncmFjaW91cyBwbGVhc3VyZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDk+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4zLjM0Pldo
YXQgbmV3cyBtb3JlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+
PGI+U0VZVE9OPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuMzU+QWxsIGlzIGNv
bmZpcm0nZCwgbXkgbG9yZCwgd2hpY2ggd2FzIHJlcG9ydGVkLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NS4zLjM2PkknbGwgZmlnaHQgdGlsbCBmcm9tIG15IGJvbmVzIG15IGZsZXNoIGJl
IGhhY2snZC48L0E+PGJyPgorPEEgTkFNRT01LjMuMzc+R2l2ZSBtZSBteSBhcm1vdXIuPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMj48Yj5TRVlUT048L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMy4zOD4nVGlzIG5vdCBuZWVkZWQgeWV0LjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+TUFDQkVUSDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4zLjM5PkknbGwgcHV0IGl0IG9uLjwvQT48YnI+Cis8QSBO
QU1FPTUuMy40MD5TZW5kIG91dCBtb3JlIGhvcnNlczsgc2tpcnIgdGhlIGNvdW50cnkgcm91bmQ7
PC9BPjxicj4KKzxBIE5BTUU9NS4zLjQxPkhhbmcgdGhvc2UgdGhhdCB0YWxrIG9mIGZlYXIuIEdp
dmUgbWUgbWluZSBhcm1vdXIuPC9BPjxicj4KKzxBIE5BTUU9NS4zLjQyPkhvdyBkb2VzIHlvdXIg
cGF0aWVudCwgZG9jdG9yPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MTQ+PGI+RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuNDM+Tm90IHNv
IHNpY2ssIG15IGxvcmQsPC9BPjxicj4KKzxBIE5BTUU9NS4zLjQ0PkFzIHNoZSBpcyB0cm91Ymxl
ZCB3aXRoIHRoaWNrIGNvbWluZyBmYW5jaWVzLDwvQT48YnI+Cis8QSBOQU1FPTUuMy40NT5UaGF0
IGtlZXAgaGVyIGZyb20gaGVyIHJlc3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gxNT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMu
NDY+Q3VyZSBoZXIgb2YgdGhhdC48L0E+PGJyPgorPEEgTkFNRT01LjMuNDc+Q2Fuc3QgdGhvdSBu
b3QgbWluaXN0ZXIgdG8gYSBtaW5kIGRpc2Vhc2VkLDwvQT48YnI+Cis8QSBOQU1FPTUuMy40OD5Q
bHVjayBmcm9tIHRoZSBtZW1vcnkgYSByb290ZWQgc29ycm93LDwvQT48YnI+Cis8QSBOQU1FPTUu
My40OT5SYXplIG91dCB0aGUgd3JpdHRlbiB0cm91YmxlcyBvZiB0aGUgYnJhaW48L0E+PGJyPgor
PEEgTkFNRT01LjMuNTA+QW5kIHdpdGggc29tZSBzd2VldCBvYmxpdmlvdXMgYW50aWRvdGU8L0E+
PGJyPgorPEEgTkFNRT01LjMuNTE+Q2xlYW5zZSB0aGUgc3R1ZmYnZCBib3NvbSBvZiB0aGF0IHBl
cmlsb3VzIHN0dWZmPC9BPjxicj4KKzxBIE5BTUU9NS4zLjUyPldoaWNoIHdlaWdocyB1cG9uIHRo
ZSBoZWFydD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2PjxiPkRv
Y3RvcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4zLjUzPlRoZXJlaW4gdGhlIHBh
dGllbnQ8L0E+PGJyPgorPEEgTkFNRT01LjMuNTQ+TXVzdCBtaW5pc3RlciB0byBoaW1zZWxmLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+TUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4zLjU1PlRocm93IHBoeXNpYyB0byB0aGUgZG9n
czsgSSdsbCBub25lIG9mIGl0LjwvQT48YnI+Cis8QSBOQU1FPTUuMy41Nj5Db21lLCBwdXQgbWlu
ZSBhcm1vdXIgb247IGdpdmUgbWUgbXkgc3RhZmYuPC9BPjxicj4KKzxBIE5BTUU9NS4zLjU3PlNl
eXRvbiwgc2VuZCBvdXQuIERvY3RvciwgdGhlIHRoYW5lcyBmbHkgZnJvbSBtZS48L0E+PGJyPgor
PEEgTkFNRT01LjMuNTg+Q29tZSwgc2lyLCBkaXNwYXRjaC4gSWYgdGhvdSBjb3VsZHN0LCBkb2N0
b3IsIGNhc3Q8L0E+PGJyPgorPEEgTkFNRT01LjMuNTk+VGhlIHdhdGVyIG9mIG15IGxhbmQsIGZp
bmQgaGVyIGRpc2Vhc2UsPC9BPjxicj4KKzxBIE5BTUU9NS4zLjYwPkFuZCBwdXJnZSBpdCB0byBh
IHNvdW5kIGFuZCBwcmlzdGluZSBoZWFsdGgsPC9BPjxicj4KKzxBIE5BTUU9NS4zLjYxPkkgd291
bGQgYXBwbGF1ZCB0aGVlIHRvIHRoZSB2ZXJ5IGVjaG8sPC9BPjxicj4KKzxBIE5BTUU9NS4zLjYy
PlRoYXQgc2hvdWxkIGFwcGxhdWQgYWdhaW4uLS1QdWxsJ3Qgb2ZmLCBJIHNheS4tLTwvQT48YnI+
Cis8QSBOQU1FPTUuMy42Mz5XaGF0IHJodWJhcmIsIGN5bWUsIG9yIHdoYXQgcHVyZ2F0aXZlIGRy
dWcsPC9BPjxicj4KKzxBIE5BTUU9NS4zLjY0PldvdWxkIHNjb3VyIHRoZXNlIEVuZ2xpc2ggaGVu
Y2U/IEhlYXInc3QgdGhvdSBvZiB0aGVtPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMTg+PGI+RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMu
NjU+QXksIG15IGdvb2QgbG9yZDsgeW91ciByb3lhbCBwcmVwYXJhdGlvbjwvQT48YnI+Cis8QSBO
QU1FPTUuMy42Nj5NYWtlcyB1cyBoZWFyIHNvbWV0aGluZy48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDE5PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTUuMy42Nz5CcmluZyBpdCBhZnRlciBtZS48L0E+PGJyPgorPEEgTkFNRT01LjMuNjg+
SSB3aWxsIG5vdCBiZSBhZnJhaWQgb2YgZGVhdGggYW5kIGJhbmUsPC9BPjxicj4KKzxBIE5BTUU9
NS4zLjY5PlRpbGwgQmlybmFtIGZvcmVzdCBjb21lIHRvIER1bnNpbmFuZS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIwPjxiPkRvY3RvcjwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NS4zLjcwPltBc2lkZV0gIFdlcmUgSSBmcm9tIER1bnNpbmFuZSBhd2F5
IGFuZCBjbGVhciw8L0E+PGJyPgorPEEgTkFNRT01LjMuNzE+UHJvZml0IGFnYWluIHNob3VsZCBo
YXJkbHkgZHJhdyBtZSBoZXJlLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9j
a3F1b3RlPgorPGgzPlNDRU5FIElWLiBDb3VudHJ5IG5lYXIgQmlybmFtIHdvb2QuPC9oMz4KKzxw
PjxibG9ja3F1b3RlPgorPGk+RHJ1bSBhbmQgY29sb3Vycy4gRW50ZXIgTUFMQ09MTSwgU0lXQVJE
IGFuZCBZT1VORyAgU0lXQVJELCBNQUNEVUZGLCBNRU5URUlUSCwgQ0FJVEhORVNTLCBBTkdVUywg
TEVOTk9YLCBST1NTLCBhbmQgU29sZGllcnMsIG1hcmNoaW5nPC9pPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDE+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NS40LjE+Q291c2lucywgSSBob3BlIHRoZSBkYXlzIGFyZSBuZWFyIGF0IGhhbmQ8L0E+PGJy
PgorPEEgTkFNRT01LjQuMj5UaGF0IGNoYW1iZXJzIHdpbGwgYmUgc2FmZS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+TUVOVEVJVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTUuNC4zPldlIGRvdWJ0IGl0IG5vdGhpbmcuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPlNJV0FSRDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9NS40LjQ+V2hhdCB3b29kIGlzIHRoaXMgYmVmb3JlIHVzPzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5NRU5URUlUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NS40LjU+VGhlIHdvb2Qgb2YgQmlybmFtLjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT01LjQuNj5MZXQgZXZlcnkgc29sZGllciBoZXcgaGltIGRvd24gYSBib3Vn
aDwvQT48YnI+Cis8QSBOQU1FPTUuNC43PkFuZCBiZWFyJ3QgYmVmb3JlIGhpbTogdGhlcmVieSBz
aGFsbCB3ZSBzaGFkb3c8L0E+PGJyPgorPEEgTkFNRT01LjQuOD5UaGUgbnVtYmVycyBvZiBvdXIg
aG9zdCBhbmQgbWFrZSBkaXNjb3Zlcnk8L0E+PGJyPgorPEEgTkFNRT01LjQuOT5FcnIgaW4gcmVw
b3J0IG9mIHVzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5T
b2xkaWVyczwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS40LjEwPkl0IHNoYWxsIGJl
IGRvbmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPlNJV0FS
RDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS40LjExPldlIGxlYXJuIG5vIG90aGVy
IGJ1dCB0aGUgY29uZmlkZW50IHR5cmFudDwvQT48YnI+Cis8QSBOQU1FPTUuNC4xMj5LZWVwcyBz
dGlsbCBpbiBEdW5zaW5hbmUsIGFuZCB3aWxsIGVuZHVyZTwvQT48YnI+Cis8QSBOQU1FPTUuNC4x
Mz5PdXIgc2V0dGluZyBkb3duIGJlZm9yZSAndC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDg+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NS40LjE0PidUaXMgaGlzIG1haW4gaG9wZTo8L0E+PGJyPgorPEEgTkFNRT01LjQuMTU+Rm9yIHdo
ZXJlIHRoZXJlIGlzIGFkdmFudGFnZSB0byBiZSBnaXZlbiw8L0E+PGJyPgorPEEgTkFNRT01LjQu
MTY+Qm90aCBtb3JlIGFuZCBsZXNzIGhhdmUgZ2l2ZW4gaGltIHRoZSByZXZvbHQsPC9BPjxicj4K
KzxBIE5BTUU9NS40LjE3PkFuZCBub25lIHNlcnZlIHdpdGggaGltIGJ1dCBjb25zdHJhaW5lZCB0
aGluZ3M8L0E+PGJyPgorPEEgTkFNRT01LjQuMTg+V2hvc2UgaGVhcnRzIGFyZSBhYnNlbnQgdG9v
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5NQUNEVUZGPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjQuMTk+TGV0IG91ciBqdXN0IGNlbnN1cmVz
PC9BPjxicj4KKzxBIE5BTUU9NS40LjIwPkF0dGVuZCB0aGUgdHJ1ZSBldmVudCwgYW5kIHB1dCB3
ZSBvbjwvQT48YnI+Cis8QSBOQU1FPTUuNC4yMT5JbmR1c3RyaW91cyBzb2xkaWVyc2hpcC48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPlNJV0FSRDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS40LjIyPlRoZSB0aW1lIGFwcHJvYWNoZXM8L0E+PGJy
PgorPEEgTkFNRT01LjQuMjM+VGhhdCB3aWxsIHdpdGggZHVlIGRlY2lzaW9uIG1ha2UgdXMga25v
dzwvQT48YnI+Cis8QSBOQU1FPTUuNC4yND5XaGF0IHdlIHNoYWxsIHNheSB3ZSBoYXZlIGFuZCB3
aGF0IHdlIG93ZS48L0E+PGJyPgorPEEgTkFNRT01LjQuMjU+VGhvdWdodHMgc3BlY3VsYXRpdmUg
dGhlaXIgdW5zdXJlIGhvcGVzIHJlbGF0ZSw8L0E+PGJyPgorPEEgTkFNRT01LjQuMjY+QnV0IGNl
cnRhaW4gaXNzdWUgc3Ryb2tlcyBtdXN0IGFyYml0cmF0ZTo8L0E+PGJyPgorPEEgTkFNRT01LjQu
Mjc+VG93YXJkcyB3aGljaCBhZHZhbmNlIHRoZSB3YXIuPC9BPjxicj4KKzxwPjxpPkV4ZXVudCwg
bWFyY2hpbmc8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIFYuIER1bnNpbmFuZS4g
V2l0aGluIHRoZSBjYXN0bGUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50ZXIgTUFDQkVU
SCwgU0VZVE9OLCBhbmQgU29sZGllcnMsIHdpdGggZHJ1bSBhbmQgY29sb3VyczwvaT4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuNS4xPkhhbmcgb3V0IG91ciBiYW5uZXJzIG9uIHRoZSBvdXR3YXJkIHdh
bGxzOzwvQT48YnI+Cis8QSBOQU1FPTUuNS4yPlRoZSBjcnkgaXMgc3RpbGwgJ1RoZXkgY29tZTon
IG91ciBjYXN0bGUncyBzdHJlbmd0aDwvQT48YnI+Cis8QSBOQU1FPTUuNS4zPldpbGwgbGF1Z2gg
YSBzaWVnZSB0byBzY29ybjogaGVyZSBsZXQgdGhlbSBsaWU8L0E+PGJyPgorPEEgTkFNRT01LjUu
ND5UaWxsIGZhbWluZSBhbmQgdGhlIGFndWUgZWF0IHRoZW0gdXA6PC9BPjxicj4KKzxBIE5BTUU9
NS41LjU+V2VyZSB0aGV5IG5vdCBmb3JjZWQgd2l0aCB0aG9zZSB0aGF0IHNob3VsZCBiZSBvdXJz
LDwvQT48YnI+Cis8QSBOQU1FPTUuNS42PldlIG1pZ2h0IGhhdmUgbWV0IHRoZW0gZGFyZWZ1bCwg
YmVhcmQgdG8gYmVhcmQsPC9BPjxicj4KKzxBIE5BTUU9NS41Ljc+QW5kIGJlYXQgdGhlbSBiYWNr
d2FyZCBob21lLjwvQT48YnI+Cis8cD48aT5BIGNyeSBvZiB3b21lbiB3aXRoaW48L2k+PC9wPgor
PEEgTkFNRT01LjUuOD5XaGF0IGlzIHRoYXQgbm9pc2U/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gyPjxiPlNFWVRPTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NS41Ljk+SXQgaXMgdGhlIGNyeSBvZiB3b21lbiwgbXkgZ29vZCBsb3JkLjwvQT48YnI+Cis8
cD48aT5FeGl0PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPk1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNS4xMD5JIGhhdmUgYWxtb3N0
IGZvcmdvdCB0aGUgdGFzdGUgb2YgZmVhcnM7PC9BPjxicj4KKzxBIE5BTUU9NS41LjExPlRoZSB0
aW1lIGhhcyBiZWVuLCBteSBzZW5zZXMgd291bGQgaGF2ZSBjb29sJ2Q8L0E+PGJyPgorPEEgTkFN
RT01LjUuMTI+VG8gaGVhciBhIG5pZ2h0LXNocmllazsgYW5kIG15IGZlbGwgb2YgaGFpcjwvQT48
YnI+Cis8QSBOQU1FPTUuNS4xMz5Xb3VsZCBhdCBhIGRpc21hbCB0cmVhdGlzZSByb3VzZSBhbmQg
c3RpcjwvQT48YnI+Cis8QSBOQU1FPTUuNS4xND5BcyBsaWZlIHdlcmUgaW4ndDogSSBoYXZlIHN1
cHAnZCBmdWxsIHdpdGggaG9ycm9yczs8L0E+PGJyPgorPEEgTkFNRT01LjUuMTU+RGlyZW5lc3Ms
IGZhbWlsaWFyIHRvIG15IHNsYXVnaHRlcm91cyB0aG91Z2h0czwvQT48YnI+Cis8QSBOQU1FPTUu
NS4xNj5DYW5ub3Qgb25jZSBzdGFydCBtZS48L0E+PGJyPgorPHA+PGk+UmUtZW50ZXIgU0VZVE9O
PC9pPjwvcD4KKzxBIE5BTUU9NS41LjE3PldoZXJlZm9yZSB3YXMgdGhhdCBjcnk/PC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPlNFWVRPTjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NS41LjE4PlRoZSBxdWVlbiwgbXkgbG9yZCwgaXMgZGVhZC48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+TUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS41LjE5PlNoZSBzaG91bGQgaGF2ZSBkaWVkIGhlcmVh
ZnRlcjs8L0E+PGJyPgorPEEgTkFNRT01LjUuMjA+VGhlcmUgd291bGQgaGF2ZSBiZWVuIGEgdGlt
ZSBmb3Igc3VjaCBhIHdvcmQuPC9BPjxicj4KKzxBIE5BTUU9NS41LjIxPlRvLW1vcnJvdywgYW5k
IHRvLW1vcnJvdywgYW5kIHRvLW1vcnJvdyw8L0E+PGJyPgorPEEgTkFNRT01LjUuMjI+Q3JlZXBz
IGluIHRoaXMgcGV0dHkgcGFjZSBmcm9tIGRheSB0byBkYXk8L0E+PGJyPgorPEEgTkFNRT01LjUu
MjM+VG8gdGhlIGxhc3Qgc3lsbGFibGUgb2YgcmVjb3JkZWQgdGltZSw8L0E+PGJyPgorPEEgTkFN
RT01LjUuMjQ+QW5kIGFsbCBvdXIgeWVzdGVyZGF5cyBoYXZlIGxpZ2h0ZWQgZm9vbHM8L0E+PGJy
PgorPEEgTkFNRT01LjUuMjU+VGhlIHdheSB0byBkdXN0eSBkZWF0aC4gT3V0LCBvdXQsIGJyaWVm
IGNhbmRsZSE8L0E+PGJyPgorPEEgTkFNRT01LjUuMjY+TGlmZSdzIGJ1dCBhIHdhbGtpbmcgc2hh
ZG93LCBhIHBvb3IgcGxheWVyPC9BPjxicj4KKzxBIE5BTUU9NS41LjI3PlRoYXQgc3RydXRzIGFu
ZCBmcmV0cyBoaXMgaG91ciB1cG9uIHRoZSBzdGFnZTwvQT48YnI+Cis8QSBOQU1FPTUuNS4yOD5B
bmQgdGhlbiBpcyBoZWFyZCBubyBtb3JlOiBpdCBpcyBhIHRhbGU8L0E+PGJyPgorPEEgTkFNRT01
LjUuMjk+VG9sZCBieSBhbiBpZGlvdCwgZnVsbCBvZiBzb3VuZCBhbmQgZnVyeSw8L0E+PGJyPgor
PEEgTkFNRT01LjUuMzA+U2lnbmlmeWluZyBub3RoaW5nLjwvQT48YnI+Cis8cD48aT5FbnRlciBh
IE1lc3NlbmdlcjwvaT48L3A+Cis8QSBOQU1FPTUuNS4zMT5UaG91IGNvbWVzdCB0byB1c2UgdGh5
IHRvbmd1ZTsgdGh5IHN0b3J5IHF1aWNrbHkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g2PjxiPk1lc3NlbmdlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NS41LjMyPkdyYWNpb3VzIG15IGxvcmQsPC9BPjxicj4KKzxBIE5BTUU9NS41LjMzPkkgc2hvdWxk
IHJlcG9ydCB0aGF0IHdoaWNoIEkgc2F5IEkgc2F3LDwvQT48YnI+Cis8QSBOQU1FPTUuNS4zND5C
dXQga25vdyBub3QgaG93IHRvIGRvIGl0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoNz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjUu
MzU+V2VsbCwgc2F5LCBzaXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g4PjxiPk1lc3NlbmdlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS41LjM2PkFz
IEkgZGlkIHN0YW5kIG15IHdhdGNoIHVwb24gdGhlIGhpbGwsPC9BPjxicj4KKzxBIE5BTUU9NS41
LjM3PkkgbG9vaydkIHRvd2FyZCBCaXJuYW0sIGFuZCBhbm9uLCBtZXRob3VnaHQsPC9BPjxicj4K
KzxBIE5BTUU9NS41LjM4PlRoZSB3b29kIGJlZ2FuIHRvIG1vdmUuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTUuNS4zOT5MaWFyIGFuZCBzbGF2ZSE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDEwPjxiPk1lc3NlbmdlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NS41LjQwPkxldCBtZSBlbmR1cmUgeW91ciB3cmF0aCwgaWYndCBiZSBub3Qgc286PC9B
Pjxicj4KKzxBIE5BTUU9NS41LjQxPldpdGhpbiB0aGlzIHRocmVlIG1pbGUgbWF5IHlvdSBzZWUg
aXQgY29taW5nOzwvQT48YnI+Cis8QSBOQU1FPTUuNS40Mj5JIHNheSwgYSBtb3ZpbmcgZ3JvdmUu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5NQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjUuNDM+SWYgdGhvdSBzcGVhaydzdCBmYWxz
ZSw8L0E+PGJyPgorPEEgTkFNRT01LjUuNDQ+VXBvbiB0aGUgbmV4dCB0cmVlIHNoYWx0IHRob3Ug
aGFuZyBhbGl2ZSw8L0E+PGJyPgorPEEgTkFNRT01LjUuNDU+VGlsbCBmYW1pbmUgY2xpbmcgdGhl
ZTogaWYgdGh5IHNwZWVjaCBiZSBzb290aCw8L0E+PGJyPgorPEEgTkFNRT01LjUuNDY+SSBjYXJl
IG5vdCBpZiB0aG91IGRvc3QgZm9yIG1lIGFzIG11Y2guPC9BPjxicj4KKzxBIE5BTUU9NS41LjQ3
PkkgcHVsbCBpbiByZXNvbHV0aW9uLCBhbmQgYmVnaW48L0E+PGJyPgorPEEgTkFNRT01LjUuNDg+
VG8gZG91YnQgdGhlIGVxdWl2b2NhdGlvbiBvZiB0aGUgZmllbmQ8L0E+PGJyPgorPEEgTkFNRT01
LjUuNDk+VGhhdCBsaWVzIGxpa2UgdHJ1dGg6ICdGZWFyIG5vdCwgdGlsbCBCaXJuYW0gd29vZDwv
QT48YnI+Cis8QSBOQU1FPTUuNS41MD5EbyBjb21lIHRvIER1bnNpbmFuZTonICBhbmQgbm93IGEg
d29vZDwvQT48YnI+Cis8QSBOQU1FPTUuNS41MT5Db21lcyB0b3dhcmQgRHVuc2luYW5lLiBBcm0s
IGFybSwgYW5kIG91dCE8L0E+PGJyPgorPEEgTkFNRT01LjUuNTI+SWYgdGhpcyB3aGljaCBoZSBh
dm91Y2hlcyBkb2VzIGFwcGVhciw8L0E+PGJyPgorPEEgTkFNRT01LjUuNTM+VGhlcmUgaXMgbm9y
IGZseWluZyBoZW5jZSBub3IgdGFycnlpbmcgaGVyZS48L0E+PGJyPgorPEEgTkFNRT01LjUuNTQ+
SSBnaW4gdG8gYmUgYXdlYXJ5IG9mIHRoZSBzdW4sPC9BPjxicj4KKzxBIE5BTUU9NS41LjU1PkFu
ZCB3aXNoIHRoZSBlc3RhdGUgbycgdGhlIHdvcmxkIHdlcmUgbm93IHVuZG9uZS48L0E+PGJyPgor
PEEgTkFNRT01LjUuNTY+UmluZyB0aGUgYWxhcnVtLWJlbGwhIEJsb3csIHdpbmQhIGNvbWUsIHdy
YWNrITwvQT48YnI+Cis8QSBOQU1FPTUuNS41Nz5BdCBsZWFzdCB3ZSdsbCBkaWUgd2l0aCBoYXJu
ZXNzIG9uIG91ciBiYWNrLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1
b3RlPgorPGgzPlNDRU5FIFZJLiBEdW5zaW5hbmUuIEJlZm9yZSB0aGUgY2FzdGxlLjwvaDM+Cis8
cD48YmxvY2txdW90ZT4KKzxpPkRydW0gYW5kIGNvbG91cnMuIEVudGVyIE1BTENPTE0sIFNJV0FS
RCwgTUFDRFVGRiwgYW5kIHRoZWlyIEFybXksIHdpdGggYm91Z2hzPC9pPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NS42LjE+Tm93IG5lYXIgZW5vdWdoOiB5b3VyIGxlYWZ5IHNjcmVlbnMgdGhyb3cgZG93
bi48L0E+PGJyPgorPEEgTkFNRT01LjYuMj5BbmQgc2hvdyBsaWtlIHRob3NlIHlvdSBhcmUuIFlv
dSwgd29ydGh5IHVuY2xlLDwvQT48YnI+Cis8QSBOQU1FPTUuNi4zPlNoYWxsLCB3aXRoIG15IGNv
dXNpbiwgeW91ciByaWdodC1ub2JsZSBzb24sPC9BPjxicj4KKzxBIE5BTUU9NS42LjQ+TGVhZCBv
dXIgZmlyc3QgYmF0dGxlOiB3b3J0aHkgTWFjZHVmZiBhbmQgd2U8L0E+PGJyPgorPEEgTkFNRT01
LjYuNT5TaGFsbCB0YWtlIHVwb24gJ3Mgd2hhdCBlbHNlIHJlbWFpbnMgdG8gZG8sPC9BPjxicj4K
KzxBIE5BTUU9NS42LjY+QWNjb3JkaW5nIHRvIG91ciBvcmRlci48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+U0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT01LjYuNz5GYXJlIHlvdSB3ZWxsLjwvQT48YnI+Cis8QSBOQU1FPTUuNi44PkRvIHdl
IGJ1dCBmaW5kIHRoZSB0eXJhbnQncyBwb3dlciB0by1uaWdodCw8L0E+PGJyPgorPEEgTkFNRT01
LjYuOT5MZXQgdXMgYmUgYmVhdGVuLCBpZiB3ZSBjYW5ub3QgZmlnaHQuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuNi4xMD5NYWtlIGFsbCBvdXIgdHJ1bXBldHMgc3BlYWs7IGdpdmUgdGhl
bSBhbGwgYnJlYXRoLDwvQT48YnI+Cis8QSBOQU1FPTUuNi4xMT5UaG9zZSBjbGFtb3JvdXMgaGFy
YmluZ2VycyBvZiBibG9vZCBhbmQgZGVhdGguPC9BPjxicj4KKzxwPjxpPkV4ZXVudDwvaT48L3A+
Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgVklJLiBBbm90aGVyIHBhcnQgb2YgdGhlIGZpZWxk
LjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPkFsYXJ1bXMuIEVudGVyIE1BQ0JFVEg8L2k+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT01LjcuMT5UaGV5IGhhdmUgdGllZCBtZSB0byBhIHN0YWtlOyBJIGNh
bm5vdCBmbHksPC9BPjxicj4KKzxBIE5BTUU9NS43LjI+QnV0LCBiZWFyLWxpa2UsIEkgbXVzdCBm
aWdodCB0aGUgY291cnNlLiBXaGF0J3MgaGU8L0E+PGJyPgorPEEgTkFNRT01LjcuMz5UaGF0IHdh
cyBub3QgYm9ybiBvZiB3b21hbj8gU3VjaCBhIG9uZTwvQT48YnI+Cis8QSBOQU1FPTUuNy40PkFt
IEkgdG8gZmVhciwgb3Igbm9uZS48L0E+PGJyPgorPHA+PGk+RW50ZXIgWU9VTkcgU0lXQVJEPC9p
PjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPllPVU5HIFNJV0FSRDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS43LjU+V2hhdCBpcyB0aHkgbmFtZT88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+TUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS43LjY+ICAgICAgICAgICAgICAgICAgVGhvdSdsdCBi
ZSBhZnJhaWQgdG8gaGVhciBpdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDQ+PGI+WU9VTkcgU0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01Ljcu
Nz5ObzsgdGhvdWdoIHRob3UgY2FsbCdzdCB0aHlzZWxmIGEgaG90dGVyIG5hbWU8L0E+PGJyPgor
PEEgTkFNRT01LjcuOD5UaGFuIGFueSBpcyBpbiBoZWxsLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT01LjcuOT5NeSBuYW1lJ3MgTWFjYmV0aC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDY+PGI+WU9VTkcgU0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT01LjcuMTA+VGhlIGRldmlsIGhpbXNlbGYgY291bGQgbm90IHByb25vdW5jZSBhIHRpdGxl
PC9BPjxicj4KKzxBIE5BTUU9NS43LjExPk1vcmUgaGF0ZWZ1bCB0byBtaW5lIGVhci48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+TUFDQkVUSDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NS43LjEyPk5vLCBub3IgbW9yZSBmZWFyZnVsLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5ZT1VORyBTSVdBUkQ8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNy4xMz5UaG91IGxpZXN0LCBhYmhvcnJlZCB0eXJh
bnQ7IHdpdGggbXkgc3dvcmQ8L0E+PGJyPgorPEEgTkFNRT01LjcuMTQ+SSdsbCBwcm92ZSB0aGUg
bGllIHRob3Ugc3BlYWsnc3QuPC9BPjxicj4KKzxwPjxpPlRoZXkgZmlnaHQgYW5kIFlPVU5HIFNJ
V0FSRCBpcyBzbGFpbjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48
Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjcuMTU+VGhvdSB3YXN0
IGJvcm4gb2Ygd29tYW48L0E+PGJyPgorPEEgTkFNRT01LjcuMTY+QnV0IHN3b3JkcyBJIHNtaWxl
IGF0LCB3ZWFwb25zIGxhdWdoIHRvIHNjb3JuLDwvQT48YnI+Cis8QSBOQU1FPTUuNy4xNz5CcmFu
ZGlzaCdkIGJ5IG1hbiB0aGF0J3Mgb2YgYSB3b21hbiBib3JuLjwvQT48YnI+Cis8cD48aT5FeGl0
PC9pPjwvcD4KKzxwPjxpPkFsYXJ1bXMuIEVudGVyIE1BQ0RVRkY8L2k+PC9wPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTUuNy4xOD5UaGF0IHdheSB0aGUgbm9pc2UgaXMuIFR5cmFudCwgc2hvdyB0aHkg
ZmFjZSE8L0E+PGJyPgorPEEgTkFNRT01LjcuMTk+SWYgdGhvdSBiZSdzdCBzbGFpbiBhbmQgd2l0
aCBubyBzdHJva2Ugb2YgbWluZSw8L0E+PGJyPgorPEEgTkFNRT01LjcuMjA+TXkgd2lmZSBhbmQg
Y2hpbGRyZW4ncyBnaG9zdHMgd2lsbCBoYXVudCBtZSBzdGlsbC48L0E+PGJyPgorPEEgTkFNRT01
LjcuMjE+SSBjYW5ub3Qgc3RyaWtlIGF0IHdyZXRjaGVkIGtlcm5zLCB3aG9zZSBhcm1zPC9BPjxi
cj4KKzxBIE5BTUU9NS43LjIyPkFyZSBoaXJlZCB0byBiZWFyIHRoZWlyIHN0YXZlczogZWl0aGVy
IHRob3UsIE1hY2JldGgsPC9BPjxicj4KKzxBIE5BTUU9NS43LjIzPk9yIGVsc2UgbXkgc3dvcmQg
d2l0aCBhbiB1bmJhdHRlcidkIGVkZ2U8L0E+PGJyPgorPEEgTkFNRT01LjcuMjQ+SSBzaGVhdGhl
IGFnYWluIHVuZGVlZGVkLiBUaGVyZSB0aG91IHNob3VsZHN0IGJlOzwvQT48YnI+Cis8QSBOQU1F
PTUuNy4yNT5CeSB0aGlzIGdyZWF0IGNsYXR0ZXIsIG9uZSBvZiBncmVhdGVzdCBub3RlPC9BPjxi
cj4KKzxBIE5BTUU9NS43LjI2PlNlZW1zIGJydWl0ZWQuIExldCBtZSBmaW5kIGhpbSwgZm9ydHVu
ZSE8L0E+PGJyPgorPEEgTkFNRT01LjcuMjc+QW5kIG1vcmUgSSBiZWcgbm90LjwvQT48YnI+Cis8
cD48aT5FeGl0LiBBbGFydW1zPC9pPjwvcD4KKzxwPjxpPkVudGVyIE1BTENPTE0gYW5kIFNJV0FS
RDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+U0lXQVJEPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjcuMjg+VGhpcyB3YXksIG15IGxvcmQ7IHRo
ZSBjYXN0bGUncyBnZW50bHkgcmVuZGVyJ2Q6PC9BPjxicj4KKzxBIE5BTUU9NS43LjI5PlRoZSB0
eXJhbnQncyBwZW9wbGUgb24gYm90aCBzaWRlcyBkbyBmaWdodDs8L0E+PGJyPgorPEEgTkFNRT01
LjcuMzA+VGhlIG5vYmxlIHRoYW5lcyBkbyBicmF2ZWx5IGluIHRoZSB3YXI7PC9BPjxicj4KKzxB
IE5BTUU9NS43LjMxPlRoZSBkYXkgYWxtb3N0IGl0c2VsZiBwcm9mZXNzZXMgeW91cnMsPC9BPjxi
cj4KKzxBIE5BTUU9NS43LjMyPkFuZCBsaXR0bGUgaXMgdG8gZG8uPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMj48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT01LjcuMzM+V2UgaGF2ZSBtZXQgd2l0aCBmb2VzPC9BPjxicj4KKzxBIE5BTUU9
NS43LjM0PlRoYXQgc3RyaWtlIGJlc2lkZSB1cy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDEzPjxiPlNJV0FSRDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NS43LjM1PkVudGVyLCBzaXIsIHRoZSBjYXN0bGUuPC9BPjxicj4KKzxwPjxpPkV4ZXVudC4gQWxh
cnVtczwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgVklJSS4gQW5vdGhlciBwYXJ0
IG9mIHRoZSBmaWVsZC48L2gzPgorPHA+PGJsb2NrcXVvdGU+Cis8aT5FbnRlciBNQUNCRVRIPC9p
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TUFDQkVUSDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NS44LjE+V2h5IHNob3VsZCBJIHBsYXkgdGhlIFJvbWFuIGZv
b2wsIGFuZCBkaWU8L0E+PGJyPgorPEEgTkFNRT01LjguMj5PbiBtaW5lIG93biBzd29yZD8gd2hp
bGVzIEkgc2VlIGxpdmVzLCB0aGUgZ2FzaGVzPC9BPjxicj4KKzxBIE5BTUU9NS44LjM+RG8gYmV0
dGVyIHVwb24gdGhlbS48L0E+PGJyPgorPHA+PGk+RW50ZXIgTUFDRFVGRjwvaT48L3A+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT01LjguND5UdXJuLCBoZWxsLWhvdW5kLCB0dXJuITwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT01LjguNT5PZiBhbGwgbWVuIGVsc2UgSSBoYXZlIGF2b2lkZWQgdGhlZTo8
L0E+PGJyPgorPEEgTkFNRT01LjguNj5CdXQgZ2V0IHRoZWUgYmFjazsgbXkgc291bCBpcyB0b28g
bXVjaCBjaGFyZ2VkPC9BPjxicj4KKzxBIE5BTUU9NS44Ljc+V2l0aCBibG9vZCBvZiB0aGluZSBh
bHJlYWR5LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5NQUNE
VUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguOD5JIGhhdmUgbm8gd29yZHM6
PC9BPjxicj4KKzxBIE5BTUU9NS44Ljk+TXkgdm9pY2UgaXMgaW4gbXkgc3dvcmQ6IHRob3UgYmxv
b2RpZXIgdmlsbGFpbjwvQT48YnI+Cis8QSBOQU1FPTUuOC4xMD5UaGFuIHRlcm1zIGNhbiBnaXZl
IHRoZWUgb3V0ITwvQT48YnI+Cis8cD48aT5UaGV5IGZpZ2h0PC9pPjwvcD4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTUuOC4xMT5UaG91IGxvc2VzdCBsYWJvdXI6PC9BPjxicj4KKzxBIE5BTUU9NS44LjEy
PkFzIGVhc3kgbWF5c3QgdGhvdSB0aGUgaW50cmVuY2hhbnQgYWlyPC9BPjxicj4KKzxBIE5BTUU9
NS44LjEzPldpdGggdGh5IGtlZW4gc3dvcmQgaW1wcmVzcyBhcyBtYWtlIG1lIGJsZWVkOjwvQT48
YnI+Cis8QSBOQU1FPTUuOC4xND5MZXQgZmFsbCB0aHkgYmxhZGUgb24gdnVsbmVyYWJsZSBjcmVz
dHM7PC9BPjxicj4KKzxBIE5BTUU9NS44LjE1PkkgYmVhciBhIGNoYXJtZWQgbGlmZSwgd2hpY2gg
bXVzdCBub3QgeWllbGQsPC9BPjxicj4KKzxBIE5BTUU9NS44LjE2PlRvIG9uZSBvZiB3b21hbiBi
b3JuLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5NQUNEVUZG
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguMTc+RGVzcGFpciB0aHkgY2hhcm07
PC9BPjxicj4KKzxBIE5BTUU9NS44LjE4PkFuZCBsZXQgdGhlIGFuZ2VsIHdob20gdGhvdSBzdGls
bCBoYXN0IHNlcnZlZDwvQT48YnI+Cis8QSBOQU1FPTUuOC4xOT5UZWxsIHRoZWUsIE1hY2R1ZmYg
d2FzIGZyb20gaGlzIG1vdGhlcidzIHdvbWI8L0E+PGJyPgorPEEgTkFNRT01LjguMjA+VW50aW1l
bHkgcmlwcCdkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNz48Yj5N
QUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguMjE+QWNjdXJzZWQgYmUg
dGhhdCB0b25ndWUgdGhhdCB0ZWxscyBtZSBzbyw8L0E+PGJyPgorPEEgTkFNRT01LjguMjI+Rm9y
IGl0IGhhdGggY293J2QgbXkgYmV0dGVyIHBhcnQgb2YgbWFuITwvQT48YnI+Cis8QSBOQU1FPTUu
OC4yMz5BbmQgYmUgdGhlc2UganVnZ2xpbmcgZmllbmRzIG5vIG1vcmUgYmVsaWV2ZWQsPC9BPjxi
cj4KKzxBIE5BTUU9NS44LjI0PlRoYXQgcGFsdGVyIHdpdGggdXMgaW4gYSBkb3VibGUgc2Vuc2U7
PC9BPjxicj4KKzxBIE5BTUU9NS44LjI1PlRoYXQga2VlcCB0aGUgd29yZCBvZiBwcm9taXNlIHRv
IG91ciBlYXIsPC9BPjxicj4KKzxBIE5BTUU9NS44LjI2PkFuZCBicmVhayBpdCB0byBvdXIgaG9w
ZS4gSSdsbCBub3QgZmlnaHQgd2l0aCB0aGVlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoOD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01
LjguMjc+VGhlbiB5aWVsZCB0aGVlLCBjb3dhcmQsPC9BPjxicj4KKzxBIE5BTUU9NS44LjI4PkFu
ZCBsaXZlIHRvIGJlIHRoZSBzaG93IGFuZCBnYXplIG8nIHRoZSB0aW1lOjwvQT48YnI+Cis8QSBO
QU1FPTUuOC4yOT5XZSdsbCBoYXZlIHRoZWUsIGFzIG91ciByYXJlciBtb25zdGVycyBhcmUsPC9B
Pjxicj4KKzxBIE5BTUU9NS44LjMwPlBhaW50ZWQgb24gYSBwb2xlLCBhbmQgdW5kZXJ3cml0LDwv
QT48YnI+Cis8QSBOQU1FPTUuOC4zMT4nSGVyZSBtYXkgeW91IHNlZSB0aGUgdHlyYW50Lic8L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+TUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS44LjMyPkkgd2lsbCBub3QgeWllbGQsPC9BPjxicj4K
KzxBIE5BTUU9NS44LjMzPlRvIGtpc3MgdGhlIGdyb3VuZCBiZWZvcmUgeW91bmcgTWFsY29sbSdz
IGZlZXQsPC9BPjxicj4KKzxBIE5BTUU9NS44LjM0PkFuZCB0byBiZSBiYWl0ZWQgd2l0aCB0aGUg
cmFiYmxlJ3MgY3Vyc2UuPC9BPjxicj4KKzxBIE5BTUU9NS44LjM1PlRob3VnaCBCaXJuYW0gd29v
ZCBiZSBjb21lIHRvIER1bnNpbmFuZSw8L0E+PGJyPgorPEEgTkFNRT01LjguMzY+QW5kIHRob3Ug
b3Bwb3NlZCwgYmVpbmcgb2Ygbm8gd29tYW4gYm9ybiw8L0E+PGJyPgorPEEgTkFNRT01LjguMzc+
WWV0IEkgd2lsbCB0cnkgdGhlIGxhc3QuIEJlZm9yZSBteSBib2R5PC9BPjxicj4KKzxBIE5BTUU9
NS44LjM4PkkgdGhyb3cgbXkgd2FybGlrZSBzaGllbGQuIExheSBvbiwgTWFjZHVmZiw8L0E+PGJy
PgorPEEgTkFNRT01LjguMzk+QW5kIGRhbW4nZCBiZSBoaW0gdGhhdCBmaXJzdCBjcmllcywgJ0hv
bGQsIGVub3VnaCEnPC9BPjxicj4KKzxwPjxpPkV4ZXVudCwgZmlnaHRpbmcuIEFsYXJ1bXM8L2k+
PC9wPgorPHA+PGk+UmV0cmVhdC4gRmxvdXJpc2guIEVudGVyLCB3aXRoIGRydW0gYW5kIGNvbG91
cnMsIE1BTENPTE0sIFNJV0FSRCwgUk9TUywgdGhlIG90aGVyIFRoYW5lcywgYW5kIFNvbGRpZXJz
PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5NQUxDT0xNPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNDA+SSB3b3VsZCB0aGUgZnJpZW5kcyB3
ZSBtaXNzIHdlcmUgc2FmZSBhcnJpdmVkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMTE+PGI+U0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01Ljgu
NDE+U29tZSBtdXN0IGdvIG9mZjogYW5kIHlldCwgYnkgdGhlc2UgSSBzZWUsPC9BPjxicj4KKzxB
IE5BTUU9NS44LjQyPlNvIGdyZWF0IGEgZGF5IGFzIHRoaXMgaXMgY2hlYXBseSBib3VnaHQuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMj48Yj5NQUxDT0xNPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNDM+TWFjZHVmZiBpcyBtaXNzaW5nLCBhbmQg
eW91ciBub2JsZSBzb24uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gx
Mz48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNDQ+WW91ciBzb24s
IG15IGxvcmQsIGhhcyBwYWlkIGEgc29sZGllcidzIGRlYnQ6PC9BPjxicj4KKzxBIE5BTUU9NS44
LjQ1PkhlIG9ubHkgbGl2ZWQgYnV0IHRpbGwgaGUgd2FzIGEgbWFuOzwvQT48YnI+Cis8QSBOQU1F
PTUuOC40Nj5UaGUgd2hpY2ggbm8gc29vbmVyIGhhZCBoaXMgcHJvd2VzcyBjb25maXJtJ2Q8L0E+
PGJyPgorPEEgTkFNRT01LjguNDc+SW4gdGhlIHVuc2hyaW5raW5nIHN0YXRpb24gd2hlcmUgaGUg
Zm91Z2h0LDwvQT48YnI+Cis8QSBOQU1FPTUuOC40OD5CdXQgbGlrZSBhIG1hbiBoZSBkaWVkLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTQ+PGI+U0lXQVJEPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNDk+VGhlbiBoZSBpcyBkZWFkPzwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTU+PGI+Uk9TUzwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NS44LjUwPkF5LCBhbmQgYnJvdWdodCBvZmYgdGhlIGZpZWxkOiB5
b3VyIGNhdXNlIG9mIHNvcnJvdzwvQT48YnI+Cis8QSBOQU1FPTUuOC41MT5NdXN0IG5vdCBiZSBt
ZWFzdXJlZCBieSBoaXMgd29ydGgsIGZvciB0aGVuPC9BPjxicj4KKzxBIE5BTUU9NS44LjUyPkl0
IGhhdGggbm8gZW5kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTY+
PGI+U0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNTM+ICAgICAgICAg
ICAgICAgICAgSGFkIGhlIGhpcyBodXJ0cyBiZWZvcmU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxNz48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT01LjguNTQ+QXksIG9uIHRoZSBmcm9udC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDE4PjxiPlNJV0FSRDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS44
LjU1PiAgICAgICAgICAgICAgICAgIFdoeSB0aGVuLCBHb2QncyBzb2xkaWVyIGJlIGhlITwvQT48
YnI+Cis8QSBOQU1FPTUuOC41Nj5IYWQgSSBhcyBtYW55IHNvbnMgYXMgSSBoYXZlIGhhaXJzLDwv
QT48YnI+Cis8QSBOQU1FPTUuOC41Nz5JIHdvdWxkIG5vdCB3aXNoIHRoZW0gdG8gYSBmYWlyZXIg
ZGVhdGg6PC9BPjxicj4KKzxBIE5BTUU9NS44LjU4PkFuZCBzbywgaGlzIGtuZWxsIGlzIGtub2xs
J2QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOT48Yj5NQUxDT0xN
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNTk+SGUncyB3b3J0aCBtb3JlIHNv
cnJvdyw8L0E+PGJyPgorPEEgTkFNRT01LjguNjA+QW5kIHRoYXQgSSdsbCBzcGVuZCBmb3IgaGlt
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+U0lXQVJEPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNjE+SGUncyB3b3J0aCBubyBtb3JlPC9B
Pjxicj4KKzxBIE5BTUU9NS44LjYyPlRoZXkgc2F5IGhlIHBhcnRlZCB3ZWxsLCBhbmQgcGFpZCBo
aXMgc2NvcmU6PC9BPjxicj4KKzxBIE5BTUU9NS44LjYzPkFuZCBzbywgR29kIGJlIHdpdGggaGlt
ISBIZXJlIGNvbWVzIG5ld2VyIGNvbWZvcnQuPC9BPjxicj4KKzxwPjxpPlJlLWVudGVyIE1BQ0RV
RkYsIHdpdGggTUFDQkVUSCdzIGhlYWQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDIxPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC42
ND5IYWlsLCBraW5nISBmb3Igc28gdGhvdSBhcnQ6IGJlaG9sZCwgd2hlcmUgc3RhbmRzPC9BPjxi
cj4KKzxBIE5BTUU9NS44LjY1PlRoZSB1c3VycGVyJ3MgY3Vyc2VkIGhlYWQ6IHRoZSB0aW1lIGlz
IGZyZWU6PC9BPjxicj4KKzxBIE5BTUU9NS44LjY2Pkkgc2VlIHRoZWUgY29tcGFzcydkIHdpdGgg
dGh5IGtpbmdkb20ncyBwZWFybCw8L0E+PGJyPgorPEEgTkFNRT01LjguNjc+VGhhdCBzcGVhayBt
eSBzYWx1dGF0aW9uIGluIHRoZWlyIG1pbmRzOzwvQT48YnI+Cis8QSBOQU1FPTUuOC42OD5XaG9z
ZSB2b2ljZXMgSSBkZXNpcmUgYWxvdWQgd2l0aCBtaW5lOjwvQT48YnI+Cis8QSBOQU1FPTUuOC42
OT5IYWlsLCBLaW5nIG9mIFNjb3RsYW5kITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMjI+PGI+QUxMPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNzA+
SGFpbCwgS2luZyBvZiBTY290bGFuZCE8L0E+PGJyPgorPHA+PGk+RmxvdXJpc2g8L2k+PC9wPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIzPjxiPk1BTENPTE08L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTUuOC43MT5XZSBzaGFsbCBub3Qgc3BlbmQgYSBsYXJnZSBleHBl
bnNlIG9mIHRpbWU8L0E+PGJyPgorPEEgTkFNRT01LjguNzI+QmVmb3JlIHdlIHJlY2tvbiB3aXRo
IHlvdXIgc2V2ZXJhbCBsb3Zlcyw8L0E+PGJyPgorPEEgTkFNRT01LjguNzM+QW5kIG1ha2UgdXMg
ZXZlbiB3aXRoIHlvdS4gTXkgdGhhbmVzIGFuZCBraW5zbWVuLDwvQT48YnI+Cis8QSBOQU1FPTUu
OC43ND5IZW5jZWZvcnRoIGJlIGVhcmxzLCB0aGUgZmlyc3QgdGhhdCBldmVyIFNjb3RsYW5kPC9B
Pjxicj4KKzxBIE5BTUU9NS44Ljc1PkluIHN1Y2ggYW4gaG9ub3VyIG5hbWVkLiBXaGF0J3MgbW9y
ZSB0byBkbyw8L0E+PGJyPgorPEEgTkFNRT01LjguNzY+V2hpY2ggd291bGQgYmUgcGxhbnRlZCBu
ZXdseSB3aXRoIHRoZSB0aW1lLDwvQT48YnI+Cis8QSBOQU1FPTUuOC43Nz5BcyBjYWxsaW5nIGhv
bWUgb3VyIGV4aWxlZCBmcmllbmRzIGFicm9hZDwvQT48YnI+Cis8QSBOQU1FPTUuOC43OD5UaGF0
IGZsZWQgdGhlIHNuYXJlcyBvZiB3YXRjaGZ1bCB0eXJhbm55OzwvQT48YnI+Cis8QSBOQU1FPTUu
OC43OT5Qcm9kdWNpbmcgZm9ydGggdGhlIGNydWVsIG1pbmlzdGVyczwvQT48YnI+Cis8QSBOQU1F
PTUuOC44MD5PZiB0aGlzIGRlYWQgYnV0Y2hlciBhbmQgaGlzIGZpZW5kLWxpa2UgcXVlZW4sPC9B
Pjxicj4KKzxBIE5BTUU9NS44LjgxPldobywgYXMgJ3RpcyB0aG91Z2h0LCBieSBzZWxmIGFuZCB2
aW9sZW50IGhhbmRzPC9BPjxicj4KKzxBIE5BTUU9NS44LjgyPlRvb2sgb2ZmIGhlciBsaWZlOyB0
aGlzLCBhbmQgd2hhdCBuZWVkZnVsIGVsc2U8L0E+PGJyPgorPEEgTkFNRT01LjguODM+VGhhdCBj
YWxscyB1cG9uIHVzLCBieSB0aGUgZ3JhY2Ugb2YgR3JhY2UsPC9BPjxicj4KKzxBIE5BTUU9NS44
Ljg0PldlIHdpbGwgcGVyZm9ybSBpbiBtZWFzdXJlLCB0aW1lIGFuZCBwbGFjZTo8L0E+PGJyPgor
PEEgTkFNRT01LjguODU+U28sIHRoYW5rcyB0byBhbGwgYXQgb25jZSBhbmQgdG8gZWFjaCBvbmUs
PC9BPjxicj4KKzxBIE5BTUU9NS44Ljg2Pldob20gd2UgaW52aXRlIHRvIHNlZSB1cyBjcm93bidk
IGF0IFNjb25lLjwvQT48YnI+Cis8cD48aT5GbG91cmlzaC4gRXhldW50PC9pPjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvbWFwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL21hcC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYzZjU2Mjc5OTVmNmYxNzhl
OGVhNzhlMzdmMzJjODBiMzVmNWUyYgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjYyMDkKemNt
VygrV21IPzs1KUh2cEctJU5oVCNDQ0MyJGJSdSNvYiFtck1NRik/KFNPTGlhVyl2eEk+WHIrfSZR
akghSm9oCnpjaW5UJlR7QzwzLVY/NUBEMjBoZWYoOEhwRmxENEFRfj59NDh+QVR1NURAK3VsaHs1
Mnw5YXlmdD9kaXx1dX1pYAp6TShgKlNicHJxX0BNSSohKUlGQXVKS1FzQUhDXmRfQ3B0Yn5VbVB3
N2d6ZHxXNVgoVG9NJV9xPUhASzBHNkV9aFoKendudlMoTytVfThXfGp9VHQ3Plo8MGcpVlopS0xI
NlU+YXFwZlNmY31mc0Y3PmkoJUNkdVR6MSYrZC1jLUV8TVl7CnpWT2J4TWZARSY0PVReSjklMlZP
PCQ0QHVgbUA3NHlMUTVMJVFQcz1fSmwxPE1zbGkmb0E7ZUlDbVBEfWpWcUtKZwp6ak9+XnhTM1Ak
XiFNYFQ5cipTentIZ0RmYj9uUkc5KHgxbGszcCVxZTFKaXQ2P044VUErSW9BLV8oJGpLczRafm0K
eno9WDkmQ01tT2VqWjBONk5mTHlaRzxQZDA/ZStrIzhFKHV6V3lWR1hEaypEVkgjMWVZbDAhSD9r
Y3VJc3h0ND9QCno9LXg9cVYhd1A7KTZhTitsO185JEh7dXxpTSMqMTl2QTc2RUtuY1IpO0NPPHoj
WnR8MHRWdXE5bFI4cGYqVWV2OQp6cmQ4VWZ0UFUoUkg1WDd8QUJ0R2BKVHxDVTx9SGhRJnxNOEcp
SC1PI1FgSlVjQVY0bj1nZUNAc0xoeV8henlEJnMKek5wPit6c2x1O21EQEE0VUVhViNzQ1M5eUVv
K01+MWFOR094Ul4pYld3X0lufE9AZ1hhY2B3a0xrd0o+N000MWJuCnoxRTxFK08ydW9Lblk7WFI4
Yj0tZCtCPl9+dj5wb0diaSpJJk9pOGt6dGUtIUskRXFQdyl4VVJuSEU2UClLUT9xfAp6K3NtWGkw
I1g0ODJkTSZrMTBnXkZzMmQxXjBUfEg0dGRZUCklNlpxRGZpU2U5TTlsKFd0M3RsaWNVVm1ecEZS
cWMKekl4ZDlAMyhYaGI/MHBlXkVlcCEme0lkSEpRR1MmayE3JmtzU1J+SzhybmFtZiszTGc7UXlN
PH1ycFUoMXZhd00kCno8KypIM3Q3MWUrfEVkN1MmKDYqK0JDPFgrbFE2bExWK2FYNk93bjMlb0xY
eUlTPz9VM1YyPFo3Vlg0NzA0UzU2OAp6bEoteTIpPFRqMTEyb3U+NWRhN3tWdEx9fkJ1T1poUH1F
WXlEWU9RWj92SSpQKDEtVUFTTGJKZWx9b20hRHc8O1UKek1ATmBLPGAjPSV6bm5rbT5LVyl7WEpx
SlZZZzt6eiRpI3pqMFBSaE8/bTtHV3EmdG1oWC1qbnEzX09qZypoRmN5Cno/SXRCNzhMeWo5OHtg
eGU4JFdHentydm9oTE1QalY5NEBmV2lVYz0pX05gdlApYFg/ekJWP0FlQWJzO19jPWZiJgp6Risp
Z1d7IzBXT1IxZzMja1F7YDdyMClNdFQtbWErS141KERYfk9ffUZocnRLJT0tMSMqZSZnYlpUaG8m
TGppem8Kem9pTUE1KUB6dmZVUWcyMjx7VlNrOS1aVDg7ZCEpaVNGKnIzR0NaRmxWWXVTQyVzfDcy
QHN+T21vey0jcDUhTTA1Cno9ajVORChjKT5kR0liSmleNWVycEZBPUlDOEktc1ZiZUQwVHtxYz4p
YUdXblIzY3FNZilTVHZQVUNsRTItPCRCWAp6SXUpPCFUV1ZmN2lmfGhMcXh1RU4kN2U/ajs/JlNh
QmF0YXk5O3NAJDdebTVUUWxpTE9We2tLNzB0dGN6RipyYiEKems7PHFyS21icyhMRDg8NnQ+dEND
KEEpZil3IzI7YW1iVH5eRkQpdm4pQS1PendvRSphb3MqTjNuPilDQ3s9UG1WCno1dkBWODY3VThm
NWVvcU1CUn5POzc1cUFeRFEmSC0qKEQmU1h7ZyFsMllwdjEmcHAtKnFTfl9sK0NxK3U7Nil1LQp6
KWpHKz1EfTIoQUtHKElgcDBwYmlwOSZrWGBxKTloTiopdTNKRDt+V0kzeyt1YkQ3Ul8kPzRANUgq
ODU/RylKTnwKejJ0VmljY0pGdXBnUTdDUSliWWlMNz5tUiMpal8hYzxPQUU2Mml3WU9wQXkmazs8
SENYMUsqe2tVcmA8S2R5VTZ8CnpVSjE0NnYyTnBgZylAfm1VP0NFS0FheV99Nz1SOyZmTHZNPXpk
eTJmbkk/fnQpQVZUdzQ+QGlaI3FhcyNOX1Y1Tgp6NDlCYH5aTzJWbHs7MHAwUmZhKTxJP0lNTUo/
RSR6R2ZgSXpFVE5KKG9YQ3xYJnpkczI+JEdIWiFfS2gzRHElcksKendXcFV9RUU3KjchJH5+MlNL
TFVXenNRclpfTn1KPChnLV5VRD9jYDxKQUVveDVKV3AtZ3I3SjZrQmU0XmBhOEghCnpJSHU3MzFI
YSQkJklvbyMpeTBMZzlCR0RjLSNuc0pIWDZfY1k9d2RVKXNYS0QwTDxFPDBPcTQ0amF2azVlJHls
Nwp6Jnkod1ZMQWJuTWlSVllRPTJ5JkolNUNfU1NlKTJUWFNkZ1Q2UVhPdWNnXnpGRFJ0UUY7PVdW
ME9yMTRGdTFHYWMKem5WKER+UUJ9JT1ZT0VjRmJ8OTVUQ1Zrd1ohKz9WOVlpNDdhTkx6IWAjPnJN
aythdSRnQWpZb3tHeDBBI1FzY3hQCnoyJXQhJUlsJSR9IU1KKHYmKCNTa1J7UFZfU2FyTCNnQUlG
QT9KM184SmB0QlMyMG53dGhoVEVAdz96cFBBNDRYcQp6PWojJHNzSl4/dFQjY1cxSmk7O3klZVlD
V3Q+VkE0KDZXI1k5PnJoc2xKbEZvYU9Deyo/d3AjTm5fRjkzbzAoQiMKek99VmBII3tjd0VNUEJx
dU08cm52JHVaRWRhJXxObyp3RnJncXV1K2FTZVE+I2VWdD5iYWAqPVhGY0ZLSGlKbVd3CnpvQ2lW
VTtzPHtETUohSGY/RWRUP1pAPHhiRj8jeSRFe2B2QVF4Ymg4dzk+RHRVbFRwc00pIzMoaGxgKCtP
JColTwp6b2JyNnZ3NnpHLXdycHh5azhLdmlaeFJsfiZgZjMlSzg3bSYtbzNtKElYTVhrMjxZdFdi
WldeUS1IcGF9I05oeDEKekxPPlZ5LVl0NDNgfUBSWFdFQzNhaD19TlRBMWBsQFM4dkRMOSFYPnJ4
eW0zZVdOfmktQlE/O1Z7OyotTig1UDhSCnpXLU0zZT5xVmNKaHxnfE0qT1BzVEV5Oz4+cVJuQyV5
WX1PP2M7O3N6M3ZrUVUmREZ1OXM8OUQkUlBuNUpDTkRYPwp6IWktZmpQMFE2KVQwTmFjS0V1SnVK
MGNQaTU7QyUqbGFxO0VDO0luMFlPPzBfT1koR1RPaTctZW8oflRYb31MeT4Kemt1MldWXlElRSN0
JSFzbUI3cGBuWHZ1Myp6WWc2O3Z0SSZrU3BMSlo5VHE/NGJfPn0mNENvdHBrTTAyIVA5VyowCnpK
Y2UkN0tqMn51NWw4QlJaR3JDZyNHVDQwYUBKYX1JP2szamc0RDlTdG9nYik8JXMtUEw5WGF4WUhE
Z3xOWlFjUQp6dXZTWWlDSzhBMEErPVBRMGJXNGg4PGptMGFDbm1XSXpXeSVSKUh1ITRGb31ZcXE5
c2lJMFkhX2s2Pm49dithLTkKenlqNDwtST5wdTFOezNOQDghJmExPW5GNG4kUGdIU1kreTJoV3hm
eEp5UWlKJnpCYmAxNVFRUio/RlkwYWpqaVNECnpoOXhGKjVfYH02WSpgJW1EaENEIXJLRl9aQyZ9
Vn1JYGthIVZtUDwkLUYwZndTezBvVnpEK3hQajNPdV4xOSlzMgp6ZU16bGdNXkM3Q1MrPStne1oy
WnVvQSU4IyV6bHh2Sk5CYlU3JUh5emNsKnJ7MVpwV3tzd2wwT3p3ZUoqUHpzPiYKelBMJV9WMWE7
JTclWDVYbHRNRXplSjYhQ2B6Km8xb057V2luayYlaEFNUVUjQz9+QTxhPGAqS3s8aFVyRmJ6MFZF
CnpMREF1aCNLIU5CZzQxTHNSXnZOUVhwYz41YEZWTUhkM2RnJCh2d3plX1V3NilwIzg2eDt0MHtF
aDtqV3hoQ1ZHRgp6aSlRJUpuMHpGdmhMa0hgKSU0XkBEIW1zVVVRJGpOM0cpQl5gSjw0Kmk7ME58
VXk8NlkxJll8eis4VE1ORzUpOWYKenFpbnh0U3FuRVRnaCZ7SG9CV3N9RTVBXzNRPkdnez9OZDxY
V01gaW9BTiMhQWZiMTQ4KFBobFdGU1NVcTZXKEdhCnptd3hJMC1QT3NOWk87a1I4alY2KCg4I288
I2IyMVZLPEJASU5qWkhfa1JLTnBTRTxfKzlVVSQ1OVRCRTtzOU1HPwp6QW48S3tOcTZJdGI7S2Uo
SlhuVEU7JXYoflVOZjUlcDN7Ymhoc1FKY01FJjtnO209Sk5NUnx+TSoyY2RZeT48dF4Kel8lOXhS
VWpPe0skKSt2JlJGUit8Y2ZqK3JhPDxYQmMjU0hkXldPWmk/Sz9qPWNmK15Lemo9OWlIb1Q4Vjhp
TCttCnp4cDtZaCN6JktFPENTK344VGNBTSk7WSZsUmFLUmhGYGZvfXMzdHslMTFXO1pudTxgYXV6
fj99aFFlPkg/KSZlWAp6PS1wM1VhZXkyUkR8K1FCJU1EZCk0bDwrdGA/T3pKcXB6MT1VY0BNVmsl
X2UyRl9UY35wdUhTV2syWEJ+Vzk9JCsKej9CUGBfUT5VWjxGV1RETF9gcWc7aWgxLXZTV0hsQ1Vq
ajg3MktUcC1oNWFfSjZGSylaRDhpZTx2V0Uwez96QW1CCnpUOXo1YiRGPkNZQ2lTKjl1YWVeOCg2
RiFeWVM3bTR0IVElfTVmczZ+PE44O1diQlMleV5mNkFNWU1CaldDeyZwQQp6V0pwS2xAQT18Nmtv
QkJTUXNsMFk3d0dUckpaJlhjRWB+cHQqa0Y/bW56M2R9V3grPT9IOHJLQ3JpTGV2bVlNNDcKekNG
e1RUP1VrTTFJR0g3bmVgaGNNSEhQMTlhZEVMWGkkd3ZnU3pvc0JVMkozVisqPldePHFxVGAmVkM+
fkxBcm9lCno4clBDJWglUzBNblg2Vnx0ITJnUG5TaDlsakV0T3xCfXNOTmktezU0aDJZQlliKXUl
PD4qbXpaRXFaamZHeU1PNwp6aUxfTW5nKXRMSDQ2MlEzeXUqJHlWYkdqQzxrTk9jOTwhdjM1WFZu
bGBMb2RXWntlPUlgflhUaT4tdFp2dmE2YCoKelhnN0N2KFVOdWZraDY8UkclbHtXR3tXMktZWFVU
NihYWS0tan5jdS1lYkhBRVNjbVZvS1pvdHFtPnJeSE5vWnt2CnpiYGR7dkBeYTlXXzR+R3ArU1Yl
IU9AQXQ+UERFUlJwRktRfT94ezFHamlaSjE/KENTK0JAQTJDRldLLSQ8VlF1PAp6VlM0Y3pPOSUk
JTBGfU9hXz0kTl5YfDg5X24hZSElMlhJVkJ8RHV6eWw7P0ZGdXBIbDBUekg9cDBLYncrP0h3N0oK
enskPHBlQDBxKTRvbjJveGROdjNJaWZIUH5Qa2xTflope3RQaFFzTlhaUHtjQVhBbj5QS3Jmd25N
b3M8RVVGNSFgCnpDTDxSK2AmbE1TQjIhVTUhfTRNcT5DTEpiaiR7d2Q3PVFjcUd4QWNjPWs5VTF1
YCk9MHRBWnc2Uz1MNj9EVmR5ZAp6V0ZQT15zYnpJekJXSDR0QDhAOHM/SU0+Yz47byY7MTsxemkr
WCY+YUhjRz5gNiRUcyY3bVJAKlNmZCVIa2QoeDMKekp+MmdpYzZLKVdrJmQkYTRzVDhoIXJ+TWU+
ZGAyeTxIcE53cjMmWVFuXl96JjBJOCM1dFQ3PjVHS2d7WnFPbyl1CnpSOGpwQGl0LX45Pj4yN3FY
aE1gfT89MGM8WE1LR2dsVypyTSNwMmU3TiVGKUZ1ZShoSVpKbEpBMFJEamZIXjgweAp6KmtOZD1L
VnAhVGlNKjEwUylURWpNTll5Zkw+Z1FDaUt0JSl2WDFTQiErPkp0Zn5CMWwwS3dKQFVNMVJUZipR
WCEKejh4KnN4UyR2bV9yfk56PGhEITtPeH5pPCZLeFE3bEpqdUhGKkhgQmtzO09hQ2dpXk5PdVpl
KnhzbHthTSZaaWk4CnpTVSlrSChQV356ZG5kTUllTTx4fCFtKzRQaktyeF45TzR1KE0lZnZzYn1a
dlFZYlBBeUMkUFhnXi1WbCYmTl4qUgp6eFRXeSNfcGpZKmM3QjB+Z0YjR1NmTz45e007YT4qMUw1
cV9tdFp6OFpJQVZEVEFvLW4oYHV5WXc+PWxHJHtvbkAKeiM4QXtEWGZ4aVRIRDtqeWZ5fnhjRV58
QEo8fGIrR3B+PSlRT3p7M2MrM0tJXlM/UjVqdiZzQUdMaWEwdExsYXFGCnpuRnxUWTVWLShvMDAh
RHBDfVZmOUhSZDgwYjw+OGFzQjtLSTVvOyZBPUx+N3o8JUZtT18/eWxBSUV5cGIheTkrNgp6VWtC
aGVya0VOKzgofig2LTNySH4/JjVoUlY7JmFSOEBebkFrMF5feHNOPWthQ3tnQWdIKF47SSZraWJ5
TkBlUmUKekpWKmYmbCk7bj9uNUJpd3h6X2VoOF9sJkA7a15xVG9SPFRxbV9LZCgrJSU+PWlJU15C
VGREJnhQISp3TUhIZFQkCnpOWnM4KU5HPHwyS20hMkJ6KG9GTjBETVNiKzE2SDRqUlB7JEN0P3Ak
dFMpbDJtN0pzfF9kU0YqenduIWhuSlImJQp6WHxxRUtPTmx3Z3BHLSpGdzhtYyQlcDk0PUAmVHpt
YVVldT1fVjhGT2BndUBYNEspT1ooa1pjbDV3djRsZWR6bVcKej9lK05uan5YJnAtTitvWEhDe1hP
VkhrRDBBRGBjJlBVfXNeO0A2TXFPeEJiPG5PWitGI3ZsTH5fJHZ0Yj0zfUB4CnpORWAkTkRISFZ3
Y0sjaT52dEFoZFZtSkVLa050KCFYUD83PTI9bGdOajUhenhNVmJpVSQya21eNG8+d2I8WVU+WAp6
KlZvc2Q5QUEoOUxNLUJUPmFkX3N5VX5lNVlIUU99TTQtbWlYdUhSKDNsTnU8TGtePXZpVnNnSENB
Sk8jQnUzKn4KemQ+b2RENFRxcUtxMmUrYWB9NWM0SlVLbEt2ejQ4R3Z3V2ZWcWdpZX1vfjxsJiMy
KWlPTnd4PHBBVn4rUE5+QClpCnpxfkt+KFlBX308bjxzOEReVllRJUhUKG0oJjs+SWZwJj9MRFFU
bjZJYFU4cHM5emAqe01FZW8jYH1TeypkfXFxRQp6YD03bXp2Vl9McXVPbSl2d3QyS2JmR2glNERG
QmYrSyhnOGB2XjxMeElGJU8tRi1GPHo3alFfPEpPclZESWZRV1EKeiMzaG0maVljRGZ3e0UrQkIj
eEZ3TXBUQi1wRTh7PjFqWmJLPEYzUWEmQSM+YzlIVnVmMiRuWGZsWU1MKGtMcXV6CnpwbVlRc1NK
ZzNeSE0paikzZF5ncGZQPkw0aUg5WlFod3NRaXUtTTskS3o5LVJqZjsmZkswU2tud1Q9MVIzemRL
Jgp6MSNEdTlkSVdTRnFRMEY+WV9uaXVCKn0qQEp5dU8tTE96cVVMRSliVkBvZzlBLXBgbSpVeVdB
PkJ4Z1F2N3V1UDIKenw1N2tAKS02ZDZMcm9DPlpOVWkrZ19UeEByJnEzQ1R4PUdeVjJXTzg4UH0z
YW1ONW0jaiFWLThzVVliRGh6fXpoCnohOCpOdHA1LTwkZTc5YCV5S1k5QypQRGRidXUoLSY8UUR2
YGYlTShBe2ZeVnBAXlhLVEEwdmZLPDBNeTlkNmtqVwp6V2Y/SW8zOVphQyQrNiQxZj0pKXc0fiR1
WipANTl1YjB7KGRPJkxNTFV5fVN1aVR7a0VWYypBVV5sYHJXK2FRMC0KektCZT1WeyZeSypWeGhR
WDE7TkVTRzlvWStjVUJnYTIjRSpAX3RTYDZLUHA8SEItb2djKGgqNipCcX13eSgpPiNyCnpkNDBY
TyMheWAybjBMPzNQU1cwaGFNM1R9Nzt8YDZfQFNsJDU3MCljN2dQfXNgJXZ8SCRMeFgxclNKMn1P
aXJLPAp6O3RCYHZMQnB5ZE53TEF1cUBLJF9QdVp9ZlcocCZJaG9XMzt8NUIzRz5xIVM1X0o/VTxV
Q2VxJCFZSCUpKmx+QygKejJnJT42QWVfMWd1YGNJWlBrWV9XYDh5JFVPQU90cSluMVRDIXRvRDVD
VlBYJjl0U2d9VzRtQTIqb0VWSC1pJFN2CnpJaE9FRy1LdnQ7Q3V+ZFp5Zzd8SWw3O2wrLTNGUUYk
MVVmWk9mUVNvOEIhIU14JiVoYXhSaWFnSyZWOGZeWmZHagp6VVJHMWQrKT4tfSNQfipnTXt7QkBh
Jktsck1VWHNGMDE5KnA/RTxITjtOYGpHWkt2blFlS3RRKV9tZ2pqanF4R3gKempiMjZsWkdwNF4x
ISowYk83ZXchNzArSy10JVhyTyN6WW9RWChzc0pGaDVveyFuQ1pfeXExSWhucSNMUG0+c3JxCnpD
NnIkKkM5YFROcXFxPmRmSigmeDUmO3FaUU5CQSRVdGJPI1BRcUxxTWBhOXFxT2dsfEklcXxqcjUl
fithUFdqPQp6V2Rld2clVG5yT1U7fjFkTVpjWiZlbCRndEhlaigye2JUUUUyZU1fQl4wMGdIPjE3
Z0ZtKHVJfUFVKmIxKGJoPXIKejtjIyUqXm5TVjhmQCtSZiZoSWskSHN0SEVoOGZAT2ZWTXNvcWt4
VjArYTtXKklqTDAqOWRuKlE4e2dSYVpFZClYCnpUR0UqdDQjNkw7KG8+RUZGNkdEbTx9KXl2KXZ1
fUdlXkxQPmpvQ3pNaXlTdXVScn5JQ0FHPkd6VVBwIWVgcEphSAp6QUY3OEUydnZxc0c5VXxKcU5l
RURLTkNPM3l0ZHQ/WWxfYWJRMkBGdEh4eXRKKUBBQD4yKEEtUVVpXyQhemJJRXYKentnO1ZqS31A
LSslI3B+b3o0d1ozSmwmJHIpXnZvdjY+cXVTc2lvUzYmeiMoTGNCYypSaVlCdzA+d2lKO3tnKnIp
CnpVVDl2PE0odztPTDZ2OFIwWGJSZ0NHRmQycEZoXnlPfT4xbCh4bVR+bjBHamRmJm1+SG18QDZ6
aUFUK0FiaDU8bgp6ZnBwalhieUVoI1E4VVBnIWFzPyRoZDd0MFExUk5ybnElRXxxQkNiNVQ+Zkdz
dmVNTkd1R2FsRzI+TCkkWWBKWEwKeldaayV8PlV4enZAUDZXfWsyaDZea2VXLVhCYXwzSzRYJDFi
MEg2Z2JTRmZVTmMhemd2N1c1NDFEa2pUdSo2K01yCnp0Xy1pVyQ7VjZNJUJ8OUBAVUdvSVh6Tjtw
TXFDblNSZ15KJW4qVnghfDRWOFEjZUQpPjVOfSFmNUVfQ0xpaTFTUwp6Z2FuNHI1N2Z2TXdwQmtJ
Pn1RZG13fD40SFgpOTdhP2U2YTArJSZTY3g2ZjFkTlJMSn0yR2VkS2Y3eXY7K1d6eDAKel5kQEI1
JWVAdSp4bC1MYWNBIX1gPGQ+Qi08eDw8WHJ9YyVkV2pFS2k3dkk+KEhDYT44TCZXSjQmVG81JkBD
Rj9fCnozPUJeVyttMThxZT9BVEZObH5ucWR0V280PWxYMXgwRjxmbHNnRWZoUyNGb0cpZVN0QzY3
MEdGZk9sRHJrVSRfJQp6bnQ4MDc4UFl6MFFISE19ZHE2V1hfQFYxIz5oOEImWWBeIVlkO1A9fWJC
QE4wK0YkMkx5PGJUVVQySiU4PVFFSSQKenN5e3NiN1lxMldeTSZGRi1TMn5TdFBeTX54azxpJXxM
N2RfdX5JP1BfV3N0b1VKKiNZRGVhXlVMV0tWTkZkQilICnpmNEFgM2QkaExreFlGZjI5cnxXX3Q+
ekhCZGtoZ3I4TkohNmVFaC0ySkk0RSEpI0Rwb2hQSk0+cmU7YzVPb0AmKAp6ZF9gSkItWSQwZTJH
NGlJPz17VUxEeDVLKHt5MU9QdzJgVGlDPGBxOzR6WXtCSmk5akV6Zn5qeStqfW0wQTNlQ20Kek08
XjduQnt1S3R0IyYjJT9kPUQ3QXl6dUk9O2c4aHRGPDVaQXxiUH1yXnMwMlghQ2VSUkV5R305Nn5a
e1JRTD1vCnpnOClMaG5Sb25VUExfblFtXj8yKE1mSUllKWJDeTIrPDFPVUVPQ05ISk1kYHkwYiY7
KiNOd1RMP1MtODx6RnJ2MQp6O0lmekw9PT0jdTh0e0c/TGpMbU0/cVJgPEdjRGw2UElPeT9IS29K
cV98TjJven19cVk5eEJRVzdSR2VmKEBLOU8KemM3ZUQ9dT45PEI5Q2FZPER9PVZ1e1V5RWktZyk8
WW18bW9Abn02eHNsJmk5OHUqey1OJEBGXz5XfiRUfXkldjk4Cno/MmJqfVFxLUgpdTE3JF9OLXRy
I1lvPWt1VGI9aGp0JmVMUFpPellEUEcjS3V7UVI3cCg8PntGPk8lNjJNVHV5RQp6a2QpQ1JTejAh
Qkt7ZUxYKG5MTz12K3ZxJmwoa2dKSGlXPm45dmxlfTBfZlAjK25aR1o8ej9fUjZOJWU/OWt1UHsK
enRwak9sMDc+YGZgcWZmJGBPWTl3az9QNH5ybGU0S2dvUW1tSlkzdkFhV0k/eE8qdldGYTIqKHRz
JUpKMWZaeys9CnpyV1MmNWtmNGxVZzd4ZTV7YDlkTUx4REsqPiFwbkNAKUlyekJVTVhvOGF0dkhv
MzVLTnVLfWh4QHgwQkFPRX5ReQp6bz4kfWNFUms0alMqYnh2cT9KbklhbTIta051a0d4cz95QzFE
WEcrdXJPZDQhVmg2NmhDPT0oTjM1aE4+eCVHOT4Keko3RzlRMURXJHgrVWMkK2VkcUFwS0hrTVc/
JnBZTG5EdUJrPkxuRmZuZXJ8PHAzSXtmek5XKClkVHdyUjVze09PCnooVlMtOENsX2hfUGEpenhA
NkFwaD1NMCZqbVJ8UzB6SnxLYGAtNmt3VnR7bG40S0g5fUdtWVlZX3Z8b2RWKChKUQp6Q1VvPF5p
VVVBXmVGQTl0NjkrRjFhKkQ3ZVBPOVJna1YxTTxaKEZkUmlqPWxZRUEjJVFFWCE1eTYxMUxAU0wr
QksKek4xbik8bzB5b2AqaV5LJkp1PmpQMlNPTjxXUzRBeURsOzY3PyVvdS1KJCpFc2ZTNTZTcmlt
WDdvWC1VKHFDaXgtCnppRmRsNSMoS1ElPyljVzcjcmRiYjBkN3hsViNVRyViMkRBclFzY0ppV0xB
X0RlZ155ZD1qZGhYT3Bfa2RCMV9gRgp6WmhPJWxwNyl8NWtQLVM9PDhCWlhrcVkhTSFVUEN5ZGJR
QVgtKSh3WUpoJVB2ZFoqJDJ7ODNVYG8rKE9qUHtDVEsKekA+SmtDYH4xWEhOJEdUUGFxO1l8I3l2
TkIkZXEqSy1RNjhkMykhRH55RHorOGAtTkJ9a0VsJTRBX2VPKE12ZCZUCnpOVClYYilqaSRDX0FQ
ITA+dU5aQHZ1cE9DRm5wSUlveihYUDdVPUE9aUZySHwxPVBnJFM/TVFocUB4ZXBDQG5uTwp6YHhZ
IzRFakN5dEVPMj18NDM7JEJ7QmRKVlMkV255dCRmLSN7ZztkYmIpZG9jTit3VzhIN31FbjtDMCkl
PUp5KC0Kej53QkZOJkc3cSZ1eWI8JWhNb30kNG1MQ2xvN3t4WHE8WX1ZV2E1WGM+K3RoTipUbzhZ
SSFqfTdXKS0oKUBfbnRgCnpQcXNgaTE5JGhedE4rNXEmK29OWCk7Wkw4YWJ+OThhOzctanl+Rnky
PHQ7citNN1h8OUYyUSVsWmpuK2tDPSR8eQp6PjRnK1UjYEVlUD80SmpvO0dAeXJxdEhgYTZ8JGFs
bCFkTEliJX54RSM2dzAmRGFLSVItdXskaElPWkVtRXUySCMKei0/dj05JCE9TEtsOUB8T2hOY0l+
MT15QitMPWFTXyhuMDJYKTtzSzA3fGYlQmJHMktDPz5OelZ2QExsQlkhZlVTCnpubE8qRGp3PDFl
eDl4aVM1PzdjUCFUQCNoV3xFZWRyemV+I18tVmlLQX00QWp4M293WG9yek4/dTh9RytQYTs0QQp6
K1dsZVFEMCZmK0hQTiFZIzlPWDdjclokMXtrbTRSTjtkZHFmYVNLeTR7PmEoWD1fQHhFPyN9YlZN
QXk9YzUpOSsKenN5Jk4qNyNaQjcoMVVObWolQ1RAXk53IU9GLWA1WFZqaDlCTz1NOXA0UGBqX3Vr
QDdIb3QpJTdpPG1fKHRHb202Cnp3PGRjczdnbUM8MWU3WUt4amhTUzRjaHl6c2N0XkxWckw/biQq
NEF9SSoocktMfV9zTFJQblY+eWpTdFNURyRyUwp6WUBDTzg1T3tjYUV3P1hEKjZsMChAd2pSeGxy
c0d+Ozg0WWVoKEhKZXVrVEJZcnJZc3tjUX5TbyMpR0ZvRWRXQT4KektSMW8jOVFNentzOHooQEU1
ZWo3e3J3VXhkTG5UbEAoSyFiTns8XlQ3bmF9VWItUmc7NVhGNWJmcF94ZEskTkd5CnpFOXBAVzlB
JGJOd1NDXnRCNnc3PmMkNG0/RGBpYE08Iz48SilsKEFeNSs8ZTFfUzh1R2B1YkxXK1RKZlU2P2VK
Owp6ZCZeRz1BWEgzSUl0OGw2ZylqUnYqSXttQjZtSzE+TT5LfTw7dnN8WWQ7WXh+X3IoJF4xMEQw
TlRzNXVkdGh0XjQKek4oZz1zZ2xrcWpKYVk+Uj9pSWRqVT9kK09wTyZWTTFvVkxaUCtVX3lRZThV
JU9DZFg8aDtZK0huJmlRa216LV5XCnotXz4hd0EyPDtKYlJZeUItNSg/KFYpN0FMNEJWYyYyN1Zt
JjM7MEN+UWRacUF8NX0rYCZUR0RxVlVXJihGRFdTcgp6WEZmLUZGVHopO2lxdT41LWNlQlNiLWxp
aT9oJDBDJD5kazhqNkhTTXgoLUcoOSFTZ2F1eTAhdnY1MzIwXkYjVEcKem1FVDxpUURCZHtGPEk0
TiRLTGJuclpBIUoxamtUc0N1Q3NSXz0qYnI8WT9DTns8cj9rOSF2bkpnSzEwfERCOWlhCnopNXRf
JF5jfnYxP0FnPFNIbnEwWWJ5I1hePnlQSilVelN1VXhqdWFPQVNrSEFPYy08VlB7MlMhTUFVcnNH
QE96ewp6aWRWVTJhdDAyUmVOUyF6eyN1RTJQNFQ9UHBpJUJSIy1+QEttVGBfeDNNNk9TXlN9dXtZ
MU13YGpSZUZ1dHo4T0QKemt9VGdwemBFKFVoPDlwJVUoPDZuZjxYb1VJd3R6M2ZtOz1pTz1kJERI
I3J8VTl9Nz5vJktRU3RXY3ZrJHB9d31aCnp6JCUtWF5aVjV2RE1HXnB1YGIyXlJyIzF2PnUrbXNe
TH0/VTRjb2VsbXYjJW5ASUZfVEcmYXZDPk0qSmFwRlUtMAp6enNvQHRJMWk0U1omZlhlPl5RMk0m
b0p6THFsRntJSlA9P0MjI2VfO0VrKXE7dHYlbFErfnJnQDR4Uys8Y1ZhY0oKejAxJn41V1FhVXYj
QyZnT2wzQip+KiFHVykkO3J1dThLPzdnNCZnOy08UmBffkx7X3V5M0lzKnVBJXgxR2BzSlNxCnpf
PX52T0k8OzJyOHcpVDlNWjc8KyF+cDtUKHM8RzxAfElNcj56b2ElYjkxfHdrVV5KY1cxXmVlK3Q+
YkUqSW11SQp6RyNuZ2ctYU9NKFhgP0Q3MUclS3RxP3BnTzBAcHo1X1c0SCNoMk9mLUxKPGY2OE43
IWJkVDA8PkVkR2FRQU1kdD4KenRfSTRlb2xTbXFeYHo5eTtQV09OanlVYCFNb1EoaykzKHhDYUh0
WlNoMWxVViFBdUgwSXkrQ3hIT1pxTmU9TThiCnpERUsmT3NjMiMkJWZEMjJjcCM+NjdzdlF2R3l2
JjFQJT5EbWN5JjRXUkB4b2JsZkNvVXh3JlUmV31ORkhIcElhMgp6YmNuejREMz5XbD1LeiRhTmlN
QUtBKml4Ynp7PFRBZVlMI2I+P3lkZSl5S1NmQ2VLQkk3JEh1aCV2Zm5Fd0EqfikKek9kKFhmNSR8
T2BJeXwoX3k3NSZXaXE2OHAwcD85UzJFbCVDYjx6aE8zPmNPIzk4TUJ0M0Qrekx5WkNkMTFVTXcp
CnpnUj5sTWFFKmwpU3EycVU8QSUqN0wmTWdjKCh1SGYpJVpjQjs3MEt4QXd3TDUmNWY/KmlhRCE2
IWNQKElNLSlvZAp6WnRicWJ0cSpjamlVPGY1SiNKJUI4ZjBvaE5sN3omYUw1bTU4VmhjRnYjbE9P
bU1XK2ZXdFJJRHElZnJ2d3NAVTsKekdiME1BIXNHNmhlOUx9K3R5bnt5aXhmKEd3e1B9MnooPEBJ
OHpGckF0dnpKQl5VNn0xZyNtb3s7VStfNG5pQ2gxCnpaKnFBYUU9JDRyenRPQyo7YWhuK0VfUi16
X0doT1dENC11UTVpYVR7d0RjSk96elc3Jnl4cFZWci1KJih0fnxQVAp6R2Nve3ZMSyZOWFQ5K0tS
SG9qcWQlbDdaITtOYjkzczBBSFBkLX53TG8lTGpXT0dSZ2QtdEZTQ2pzVyUtPDMzbXAKelNuaGFA
RlcjVD0rdzN5akttcEBBQVB2QXxLMl58S2tHMiVIayRxLUwrSFVpZVU/JStqeThGNH5LOWUxeFNM
ZEBCCnpTZzRUKEZzcCsjdWBQQH1GMStwZkU9XjBuNEApRjNqV35TOGR6PVQlS3A4a3woeHktPSEl
WHlOZXRzWFd7RlNMSQp6SGp0flFjRGdpRGhLSHwyWFlgOWlJOHlhQEJOYXx7Wm5AbTElbCgpO05M
TVN5clM4cygqODg/KTFnNEBJQz9rd30Kek9CcHljTGduYDsyP0UycTEjS0V6KUA0bmkpbnF0emNv
cERmfEx5bCozQSo9XntpPGNOKldYMjFhM2IoZmo2P35DCnpGK15JPiVETTZhN1g4fCtFR188fm5G
ZzMpdDU+NjlfPjt2Vmh4Wkp+XnJmUSt5bHY/PGdWJGFlJkRTJlNjVExCOQp6STU9OXROUDJxO3oh
MkZXb2t+Wn1rQUZ8UHlkT1RrXm1OI3tnKll+ckVmWjBHSmNfSiZ8OTZAcExlWj5kNnVzQVAKejVf
em5CZEFPJXN3e3g1STRTQFplcilmVFl7QkxiTFJeNCo3WE1VIUklY3lJLTRnejRXbzlIWTMxaXVe
PFZkVSZBCnpUeG9Ibz9XQ2dmSSY2R1IkZHVOMGtSX2tEcDMrRiVJUUhEJkJ+UD5FX0xiYE9wUlYh
YUpoI0d2VFVIJkdiZys9Mwp6R2AoWkE/KyhJcV9PSGRAdmJebXc8UFJIYnZETG1mJW4xNFhmIXJh
SXFtQS1NNUxldlcmdm4xSDlDTGdwaU97ZCkKejZfLVhRI2wmeFBWfShMYD1DV0Q5MnBVa3JGRTZ7
PiQ4THxyQkluJncwMVFZRiphM35xSVgjYFFnX295cEpJJVhBCnp3YWpjRzBHQVA/P194K1V7ekFL
VnJ8cXFuOEJaSHBuN08xZi09Nml4Yk1LNnFSJnxSfEV6TTU8e1hSZG5uRzgmVgp6MjJZa1pXODkz
QktKWUpHVDZpPXRuRDMhZnkmMDRgcXZ7MWJvdGYmRCZxYSQ2eGMpTnxgRDI8fClqfFMmXjF2P0UK
emg7K3IkPmZXdDRFPmRNbWlrYCVicW1rKXl7SmRTXytqKVBKVzUwSXBmTF5wO0RsX1kzIVlwMDc2
S3tKWEVjKF4mCnpAeWxHZnAjY2RnSWIzb2VCXkNOYGZ0bVVWTmVrLTBhISp+WlpHfE1KUERHamBf
e31pQCMobjVMcVg3UXVmSFdeSQp6NnJmPilRR2BXU2R0N2MtempSRyU0YWRiVDZuXnhFVVRrUld7
dzZxYyNENHxibUhSK3soSEF1UT8pUzFBSUJIRVQKei1mNDZxZzheSk0kY2gxfjhUPVd6I0M4Tnkt
VSpBSVc4NHN2SllfQUMkM0lWZlU1OChPJEY/fE1pPlJNOXFOQzYkCnpXQmF2dEtCSCM0M35fTmRP
X355Rk5sPGNXcTMkM0IxUF5+WGRpdUtiaEF4TytZOXZGXyFrcnVoLTBlV3xDTDttYAp6byVNM0VH
Rk0/PlYyflk/OSk/LW1OcEorO29gJjk9IT9AVzRvUSoyOXE/amMoblUpfEsqOXJ9VEgpLXsjVj59
RCMKenVUTkEqPjNKSDxSQ2ZOZVlGMCNjOTN8VHdDJXdsZnowTmh8blpzc2lBJVF1WEh3cFlMZFVu
VEhhN05ENjl9KTs/CnpQNm1sN2BAX28zbjZ6d1RvZlJidkpgaWlQVUpBd1Aze2tPdncxT3p8Xjl9
QDxJfDhkelM8TnxwXkRUdmFKJjhoLQp6UWFXc0VNWEwkJUsqN2tkTFl0MDUjMFglUEkoemV6enEr
MkNyd1lIZSlUVXI4MkFHK0Y2TV81P2JmYSRWNiF4TkMKek1UVWMkITg8X35udXZVZGhxYnkoWSV4
X0ZCKzAzKXohM1ZvZjktam9tWV5uJEokS1BFckt8M0RELXFoM0c8IWtMCno9VU13JV51Rz91MkZf
eVVoK0Q0NEhmd196JGBlMGp5fk9jd2dMeFRHbWxxYVdjZVNqej44U356Tz4wUT1WITJRdgp6PF5V
ZD5HQHtnQnlMRSVoPW0rbVN5QUFHbjkoVCswbWdEPFZYTWQ2fXM5NkB6RG1PVSZQUUQ1R0dKUHt7
T3E1KT0KeldLejRod3Mhby0pRTJ5ZCk8enkyVkpmTEs/KyF+T0wyeldyUX57e2shWjw/SDNfb09A
eH53JkJEaFUoSHU+NGZKCnpwPTk4eWhaWl5XRXR+PWA/bXg2JiYpeGxiUFljK2B1JjNQQVgtYmE0
MnF4Qy17QVBPaXh0Ylh0Ty1VcTUjMUE8aAp6cGdmMyZMcD85aENsM1ZWSjBBK19ndV9CaVgha29D
OFpII1RZdipwfiRgYlclNHZzNmRaQjxxPXdxOGBRcWNyenEKek83VURwPnVWaXZkTyluSXppKU1S
RHpjY3ZMfjx7RWJAKzIzd3VuZjs/PSg2KjExKDw1Yms1Nyk/RzMkdzJnLTtlCno9VSFBbz9+c2oq
NHZ2T3JZcEU+fjBhSWxLTjV9LSR0TH1DakliREpGWkJwc3NoNGFLSWd8bzZQIT5aJnpuRHZgMAp6
ZWNAU25mNWVQNE5qJEgteXU3NGp1PGYwMTs/OzE4Mk54d2ZJdSNKe0wxdWshKGFVdnwzY3gmeypx
OTc2cG4qX2IKejZMe0cwMFYxNUN6X08mLVNVZyteaWtMcXsoRENnOUAjTlhsZGpxVDJgdz1YYWw4
V1BCaXNSajtCOGJnRz88eTchCnplSiVGaEZ3UE9uLXkkK1ZQLXA8P0pCenFOZ2k2Yj45dWtFZkwy
YkdPJWF8dkNNenhUNy1JLSZXTlRSekQmXlMyQQp6b2pZVGt7d0N1anQkdTcxcztzUClzPH4mM2dI
eVlYbUEycFN7MGo1PD55b0R6TnFSaHxiR2w0YU1acyg7eG9JJnwKeldHTzJsPCNtek1kfV95WDxj
Ul84I15ERFpfUGRnZF9lN3ZBRFFTd1hgQnFnZStVd2lEVC1NaChPS3Y0KklTJitaCnpHXnlEIVlK
Vl93ZGRjVT9TbTZ5Yio1VigjRT4mbXhXcFctfkg1ZG1gVyRvX3lCITxrOGl5IUZYPjVHZypmYWRP
MAp6e2Bna2hibkpaNmBvcm1KWSMyckMmajFEX0xRMF9OWis8R3Vqcmd8IW95SytqY0c8RW1JYVZG
a1BkfTBaYnQ7RisKek0jM1RmSEd1YlZWWWk+TC07dDQhY3Y4V25wV1N4dylscm44cGhiaT50WiE4
eSZSanUoK1V9VlcoeU9XUktnSj08Cnp4cEBpSlQ4fkBTS1FKS2lYPkh8OEhhZ1paZlZpfHpzUW9t
aC1WcCY8XzlYKnV4Ynh8TTN3TXN7bWNEdS1vaC1HVwp6JjI1JXJGaSlwaGYxI3RnRnR9JTJpR25M
SHZuMDdaVV9jIUk5X3I0TXs/dmYqXzshSlElKDhXTFc2bT0hPmx8Z3sKeiZRTEx7TGkySXF7MDVL
dmB1d2xAcERYTHgzPXk2aGBxKWJLU0tSO1khbjleQG1fKTE/QlpUbE9ya1UlIXNKclF2CnppS2lf
eWVFYVVzQX5yaCg7eHhHeSVZVistdnNYKW9nWk00cTxiNyZAOGFyeGl4JSRwRCpQbGFvYVQpK2FJ
aU4wcgp6b0AjeHRRUHQxb2l7fTd3NSZjeForJT0mWVlBRkkzPUtyUTIpbDZocjNNX3pwSmR9MShJ
SUx2OG9mVVQzVExBYz4Kemh8UzZsZik8T15IKylFbGooJiZwZHAxM2IqZn5Ia049cT13UENgUGdR
UWV1fCshO2xUZVVXcmF2NGtLM2FSMlFzCno0d3cpWmhwP0V6Qnd0T1pxSHFaak9nYmN5c3xELWZq
SjxQWEVuQCNsZV97NF4rcGd1ZUA0YW02QTNfXkM9IUFBMQp6MlImbng3fnc9X3k2fG5vIU93OSk0
N2g+bl9RJkNHSTBTYG4wVW9wdko+KE16MzVveXtKa2t8VDJ0b0QySX0jdkwKelFkKVdZMjZrclox
cUQ/QSVeYX5SQEp5MEZLRHFzfkRlMH1yQ0paJXBfeztuQmtPaEZPX2xmQUtSKEAyYXE/dWFoCnpP
UTBEfUtzdS0jMU9TNWxhZUBLRUd5UTtYZDZzV3glZyRIfTdfNj40SWgqfFVlIU9vS1R6QGt5bWh7
PWArR1czJQp6VFI4c3JqRFJzdmBKZThiVTtzSzU2T3gyK3FxfjlFPV9YUX5KfG9YOyFSTzdHbmFe
Vjs3RjAyaVVjSXJiMTVSMnQKeileTzlRRChCZ20/Rml2eiFTSFAhPD9TUV91al9eVmdxJkAxdVY1
ezM3QiM4IVFRXjhfdyh5dEhxcUxIPXxJVkUwCnpLUXF4eVJvSXMqcC0hM1MrPiMxMEc5V3ZgU0xs
aUtBJXZrUTVmRE1+JmI7MDRaTzJqbSloRV41S1B8e0VhMTlKaAp6N0dQPkBTYjhiV1FGP0gwUm9X
aDFvSCZ5MEVjcnUmdDFKZSkyMDBkKSRSQTxhcihQeldqSk9vdCplUTE9ZUQjfiEKejhgdiszZUZs
Ym44ZSF4dElMbGcqOEhNYENRRkNMejxDeSZ4NnJmZGUtOXEwaFJAJFJBQmBYbzJ2fmxsRW9gMEg/
CnpsNy00QzZWSmI9bkF6aThEMm1pRDU7TnBWaEohK0JKU1kpUnluWm8hd2lkbkhSPDxOekR1KGRq
NXh2K3xsQkY9TQp6czg3Vnt7MWAyeWxYRCs8S2I5bSZEKj4qUTIra303VHoqbFEleFc8PVVMaG4k
ZzdhQ2IlbzxEdGg3Uld2P0RVKWsKejZwYDNwNWh3e09yPHg9bFQyUGM+NzBRZV9RTF5BVT5jP0k7
STFUTzlnViFsbjViQklSd2ErYUR4a3hhcl5LPTZTCnorM19rVmdmZSkmZTZ5NGNAUVBwQ1RmLSVF
cCElVjZETntadU9rVkhiO0pzTSg+QlQ2aUYmOU1YNWNQNEQ8SW48RAp6ST1YQFllITdiQjZQdlNB
eVIraSYhJm8lJUcrQ313XiVxNygjYGhPaj9qRmxobWI5R0p1fXNxKlg8RHs1OVNhWVYKeld+QGV4
MHpxbDBkTGB1aHFsM2Y0TkF5YCE9SUFMMmUzKS1fYiE7S1Bhd3JFM2d1QE9oQFV2cmBOO35aQXhD
b3pRCnopcCEwKipZOTBnRVVETEdSSllfdFhPbiNLSjtBaXtySVI2fF80M31TPCVsfF5QZ18lbzh8
OHghPWcyPmMxRihjTAp6Q0J1R1VreHYzbCt6ZWwkJG9OJDZAMjBucDFHfj9rQW44VVgkNXo/ejtv
PXo5XzJKVjkkd3A7dlI9e219S2hZUz4KekFBXjUpJmM+VFk/bmJHUTxvJX4zdX0+dlZwN2lUc00q
eTVmMWMxP0MyMmtrKjsqVW1NS1F2YS1Pe304N0MhSCRCCno4T0hFd0MkX3VMe2J+YG9TbG9DNkJO
ZHVRYmRVM2cpUDY8dz99b3ImdlhvMiZyVGlnNkAybklSUX1NYmMqcCs0Nwp6aG0/WHBFIU5pOHJH
SX0lVVNzVWhKTkltdyl4JCtkN1FPJWcxOGA2QT5wPztPbCZLa20zIVFiMzMlKz4pJjloZE8KenZ4
bW9TRD8lPFhCQlVPdU5ZYEpfeU5XPi1yK0lQJDgyO3MtSkFpUGo1KDFOUEt4NGpMaUZkSjJlVzl1
ZT1JUjV+Cnpkd0c2YEYoY2k4eTtpPH1DSGwjT2h+Y1FjcUZxTkZOZzMyU2Y1bWZwLUk+YWNGe2V5
JWx6dk5YVF88WnRVQ3lPTQp6dH1RNjE8YkIpRSt3UyMtQT1+OWB1K1VpXjB1S1lTdyRPQHFGSkcw
TU04ZEojQThGfH0xYUNMak82LXJgYX5nfCQKemJeTHApSTE1fU57enNOYmlCdnN2KTk+OSVnWno3
alpMdn05K2RxaCRILU1PfmwoSj1sSjlMdUY+bVpTNjZSVCEqCnpPWTMraF9YKHowVW5HeiFadXhs
dHp7ZWdWM1MyNj4jTl9ZUyRHUXFjeWQrVT5AZUQ9bnRGfll5eFNVdE48a2FHZwp6c348eHhNdVg4
O1dfJiRsYUJfOEB6eDVnRVQkM1JldXQ7QlA9T3h8bz57PTtYYk85e3pwXnh0aSh4YnpAWHRZRFEK
eiQhYWczdGYrVjkoNlVVSSt7WDhaJkZlJkEjQyFmYlojeiY8MERYXnpWSWBGcWBqTEB2bU1jIV54
ZUNmQFhee0Z1Cno1bG1wKFQkKWp1aWFwfGk1Qzt7dXt4OzNRU1dVYGNBJmRjPTBDTGJqYGN7dVVg
N3FFTTVVPl4hc0piWWxYaiFCIQp6UTNpZ3V0ZWN1dmQyQDQ8eSRNenAhaHhQVzVzNjF2bm1iV1JE
MDtUOFlJUi1nPjxefFAzOSFCYzNgLWIrQEJAe2wKemhWSD4zZTdTKjdTPWowQnNqfmt5NURvSk5K
NDBOU2tGU2AwWEVkJHZxKHJvZldAKjJlUmthcGpHVypMKUQ/YkxJCnpQY14rKmcjP1AxQkNaT2hF
WSpKNTxzVnY1WStidzZhKFdpN2JRPnZtRkdASzFIQnNYb00keUMteU57bUVZP2h7Iwp6TndCdmw7
RnVpIylzNTA7eWh2YTRfVTYyaWwtVT4lP1FNZFdjcDxmR1dySUVQPlVKPFRoTFBwPiFsK2UyTGgt
a2UKel57NyFEPFg8Zm80P3lAS2VpS2ReWlVrNjhBSnEoa2l+U059JGZhVklVXj1eciUpcVM8Um9T
fGElN2Nufm5JRyhgCnpgcGNncVV+fDlkUzxSWisobih4fHo5P0k3JG8/Pm9CMUJOeDJYdCN3OEAz
M24qT21ETUxPOSFjdiZ5TVZ6Nj0hfAp6TVNmWlJjSz5aJHVTJTstSnYhfFVSUzcwMyFLcUR5VExR
SUsyOSMkU3FhaCQ5Xl5Sbz0mPmlnVyF6cCk+ZUpgZVIKejNJc3JBNlUqQ3dLZER2SDUmVUliQCN6
STgtPjZzYGl2ZyUhbVJiSTAmYTVhRU12MG89NDgyXlReWU5afCg3NCRwCnpqcn5yTVF3QmdsaUte
eFBLd3V6cUZZYG4jJms/aDNBOCEjMlBLcUdxcTNYaU1fbXIlKTYpV0VQKX4/I31vckUmbgp6dWdX
Q2dJM0h+YiV2VGtocCNtV3ZxfXB7JT5LXjRUVTYhd1JtUks4MVZwS0haNURaWSNNU0BMTUUpZVJn
TkdNcHkKektEfCRgNGtKO2ZGME0lVFFrMzwlVmxXOChKKXd8QFduNkYxYl9WS0k0REs8MXVUPGU5
cD5ubTFlKWhZZyFoMWs1CnpvU3B8NEteWUFwKXxGQCZeTEEoQnhub1lYJSFTSWI0ZXxRfmpASVpB
YjZhQWl4IWM2bHpuVEAha3RFcSkzN2dnUwp6eEh9KmE2VHZVc3VTaHRgdHV0bSpjfTlwdVZ2VShD
KlMhM2ZWXyRZJUd5JSMoPGBlMDNIJH4jLT4kVThvZEhwY2UKelFoVyRnUk1RN0EzK3Z+WXNIOVZ4
cjVAVkh5IVhremp+fF5rVEk9VTMpWUBjQFRkZiFMJU4zNzl6dzdRYDIrN0Y8CnpuTXQlNkMxXz5F
YXdZRGA8PlpyUlFpcTloZ1g4WlMlNjdWNUp5eH5XSX5wMlhVPSg+SkRZQm0mMGdCeE13YjhgJAp6
cCRvIylEWnJrck1AMHExPjt0Q25mc0trPklmVW83bl4rJFZpTUZBcWM7em0qbjRzWFMwUTZrTk1T
cFMlMn1ALSgKeld3OSNYRTtkLWpCUS1gRjF6KyR7KzhacnoqYHpsfXsjOzQpWmkxR1RoUiFPS0lt
V1ZZdzFPOCFNP1hzLTYqYTI8CnoxQnA3QmRwOXNFQz5oX0wpSmdQNDQ7N29LKHYzIXxecExXYWs8
KXQtPCord2pWRlBtY0gqUVhYSikjYyEyYTlFYwp6eVBQJTIxfTl+ZVN9eGRNTT1xKDJae3s4cEE4
YXdqNkhqJUl7YkJWNyZLbmgzbzZkcTd4fFlwO0ZWb1hYJip2e24KemB1Z1M3aXh6WFVES2lnRihe
fURfP2AyRXtzQFB+N0tkSV5SSFdJOEBIUDZQbmNLNyFOUWJxVVl1K2FUIXt4cVJlCnpUTmJzd3w5
aEV+Wk1DaFkjO0VlejxhXmQ8UkxhanhDUUI0bz50MHZjdXdLUDE5RD9Bc0ZVIVhfak5OS2tAMWVQ
bAp6anI8MSVMPHtFPC01ZytQez45dD0pJmV2KyNjT3xPREFyPFN2UFRoSysmOGl9SEI7VmFfPkko
SSRveG13bS1fWmMKens+PFB2TFBpOXRjNHkofT1aVX5tPzteK09HJX0mWDNJZUxMRjdFLXxHUlEz
N1QyOU16ITB4cyRnUyMtdkJueWA9CnomWCt9K0JNZ0R9JT1WcV9eSi1XcXxCcS1FejQoTzk/OXd0
ekc1Pzlzc35AYWNrVFBtb1QlKCgwUkk1d3BMMEpUXgp6PjBhV1oqYGhCNV59b2ZmbElCUEZXYEdW
UWlyYSU8NT5AbEhwX1pLd15KbDFDT3w2TztfJVI8SDA7RiF9YT1KUioKenRgI3MzZ1ZXO0RoNX0r
eTNWSk1uKTlENHVpTXtlanZnTFlgRX5TNkJqR2JecE9MPjRXKkRiUTgjQ1RwV0IrNylICnpgZzJt
Jk93N0pzeEprTkxBcD1ZNGlsTkE/I18oazY0ezhMfC05bzgkaDkoP00jZDdRZUA0fFoxcUByVGc/
Wjtrawp6cXt6PGwtblRjUFpVbFpEKUdZd2IrdDl2YE82cVViV1M3MVkjcF49PTYmbH4/dnN4b0hw
bEJUYWRhWnQpb2tuQUsKem8/dkVTSjQkMExFZStqSWYmbSFYTWt8aGAlTj0rYHlFKkU1dFFxNS1l
fk9hST9lJGxNTlJhfFN7eCN6MnZYI0I+Cnp7WilyQlVpVTstaThCcm5lYnhxWHZZdUQ/TlhpZzZx
dmhwIURYa2FKLXkyUlphJkNFZ3AkLWxWRDVBeD00aGpuIwp6ME88YzYjP1ZYbE81Rmd6ZkApP0Ut
fXIrX1JIJkl+I2xEa2g4c2djZjg9UXZTP1pEQFBsQUs9Wm9iTHtGbF5JZFEKejVHMGpyY3pjZ3t6
JCRzVCRubktAd2JqaDheR2FAVDJlRTRofERuZiVKVEJHaUJCP1ZtZnpacz9gUSlzIXhiSGxSCno/
RWRVdlpfZFlsXjUrUmxAVUxZfS1Geys0KTdwNmlaTVUqfDN6TGV0KE90T3MhRHFqfDNSaFM+NjJI
VG9QUERKKQp6RzZKK30wcmh1SWZMITJqNUo/PXE2V1REamQpanc0Z0h1KzYyOGB3SlNSblFVZjR0
ZjshdjFoRClMfmdZY0hEdzkKempvTF9gYVd+Pl51cEZQaTxYb0tSc3EhRUxDUTxIbUpgakp+O1U+
ZjRRMlZmUlpCYVp8UTF+YkY3KnR+anBiYkdrCnolM1g0QU8+eV8kYGhHQiktMVlTSCpUeXxXZkxi
UkFAUDxqVUJvVT1abkd0Q1VFdUgxKlJZZCpTP3twTXkrQjl1Iwp6Um5wKE1JfXM3eCU4VTttQ1VR
RWR5Q203T213e19gYTQmTDkhMXNVcUpfKTgzQzglUFgjcUBKUVVkbWglaH54bUUKemJPfTgtNm9R
PH5AcFFHSUJZTSN7Uz12KDFgWEA1eD4kPG5MM1RraEVtU25ReFM0OHEjYSh0YFoxWnB3Wk0hV0Uw
CnppfkZ8QEA9Zl90MTIyYEEhQT8jNlc9cVMkaEF1dUt6U1Q5N1ZAPFYhcVQlei0rVFJGbGNicHM/
OTBDRllKVW9xWAp6UmRhdVR8MFJ5YWElN0BMV3wpWFdxcnkxQkFzc2k/SUQ/KG9EQjxAa29USXN4
JX1KJTdkRHw3dHRyfSpwfDE/RVkKelZMfGhtVUkySXl7aXNfeC0tPz1GaE0tKHR6JEglUWNBYkp+
dG4kej5FS2hlP219eFpZQlk7OyZPT15BMTUtZj5kCnpxIU59KEhIRSt3eVNnPUEwP0MoRClMMj9h
TXB9R0JZWS08SGo2bCVmcjh2MkZzV2RrbEpHJVNSbWdKJE9YKk1tagp6IWsoc2FpJj92R3pRJWI2
NzgyeXxlJDtwU3ltND53TkpOeFctQzYhek15a1Ywa2ZGdENPSWwoIWNCYGs/X09BaE0KeiFJcDx4
XnJORChsIVh6bnp1UUhoYjB3O0p0UEF4MkJUQ2Ilej88QzJRLUBvN0ZwfCl5JEJxbmlJJHNfTi1r
dTgjCnpYVCM8XzU2dT5TbytwTDVnXjJCeHwzPF5GWHdDTFYzKVZFRzhhTFpTJSZCLUNlQHVyZm00
fXw3JDkyQG5mPHRPNwp6IXZ+U29jYEtkdTxPMnllZ0god2BFRl5IaEJRQlRqQz4/RElDJFNxWkN8
OGQpTVlmMEBiMG9pVld4RmErI3xwd0EKeklvc0pLcWxOR2xESm1FSThNMVd4VktGc19GRFU0Y1dK
I3F5RyNfYXhYSS0mN2cyOyMoNCVQKntVYkgoZyYlO21PCnp4bilVI0RRU21EVWBkbDVSSnAoK1d6
LT5eTTIrMUNeNlBfcWZ1KnIpRFRCIUpEbDBsek8qNEtiTEpDMDAyd2poJQp6Kmt7a2ZhPFJsU2co
KyN8SnU2dyZ5dTA1OHNYNjZvMz9OcnJidHQkTEc4R3Z4ZjNhekkteSlqem4zZU5TKmo/Xz0KemUp
VyV9dnkjcmFyeyFiRVJqTF5gbzh7dVVgUDl6K3IwKkdfcks8WmtLUm9HVyY3TEp0a3p4b0ghNXJS
bTx6cVFkCno8b3F+TUIlY0l1aXZZXmhwYH1GSGlNaXNKSnV5NTZrSVE8aj9vMzYwMU4pMyQpflpM
SlUmMVEqbUcrbTtSU1RWWQp6SSNEfi13ejAqMSY2LX1lVCVBdlMpbX5gJEooTG97KExZV2AyRXMl
dlBicyRASHU8LTdCTVhsI2hWd3ZpaCFRVDYKejZePmdOM0M0OT5XQ2BFSko8e0w2NyFuKy17WCQ7
O0NGUDFDY3Vgc3pFLUN3cTxRcXJEJVUtc1UjI2lkYiVzR3FqCnooZy0mKl8jUCN0cmVhRG5XcGU1
UU9mWl9URVRscj12U351Nm0mKHRAaXVPKjJ2JiQ/SjB2SC1yayo5UEptVTExKQp6YXB0JjdrYShr
XjZCMTdiZkdQdWY7bG9gPFk3VVolMHBOO0FnVl5DK19gaGU0TzQlX2BRQmUoVnI7Kkd6Tn4lfiQK
emdMRHU5Mm9UKS1gM1JtK0R1XkorQklVfmQkQGFLMWgxVU10SCVyZXU4ND4zcW5UPkJXJiYkV2hB
eHRIPHZOe3FuCnpIWT8tVkNlTDFNPjR6KylhUCEzTT9Dam0kVUhBWTxEZ0MyeGF4Uj9eX3YkSnE7
Yzhie3l7c31hUnJBUDhISkY8VAp6Qnx3XlVCVE0oO0JCai1MTUBxQHVmYDxSO0prd3EwXnJveD5g
eHE/e3RvJFp7IUFFTyRXYEFCQ2p0IWFvdkhqTmQKekp0cj5hJUwxOzBnZSRMVypRMkFZS3ZlYSlr
UlgyQ29NKiRWempQNzxDQStedGVlQismcS0jPnVfXyNOfHNEVEhPCnoqJTlLaUFTNGp2O1FQa2Mm
UFYtMjU/RV5vU0VzI1ZZOEkzITk8N0s5M2tqKUx2eF9FV1JHMHUzWSVKWSh5N1FjYQp6WCFJS3Iz
R0l3aFBEQ0xHU1dsNkJgc24hak1Zb2JkeiVzbkExU3hKfUN8OW5WJmRBaCgoVzV1dipaSU9Wb1N+
aWMKemlHc24yYVR9Vz5GVkB9Yz4xPylEQFVja2okQ3lhaWRab0FwMFR9ZDg4S0p5LSE9bFIxO3I+
WUImd1E7ekE9fXVlCnpBJmc2Jld2PGhBKiZKb2EpLS1sNDdGamt6d1Q9YVJoUio/YFNRaG12aEsz
dW52eHk3NEE1QFM4RjVKTzhpLUdBMwp6NWomMz8oQXlfIVBSfXtyTkBZZSZmMyMyM0hSNDhwMEdt
cCRFakkmdj1BbUlxWDxZZU9lam5oaFc2NjV2cl5JTjYKemNRe0B4Y3pKejYwITBuKD1uYGtvdVFl
X29mSktNOzZVd0VERTxYJXE5VihnczJ4O0xVY2kpUEw1V3BaTmY1eiQpCnp4Q1IqTDJEZjEwe198
KVowMV95KjJgbnVQeUsyPk1nWDBZZUlUITNHMTZqZ2hFTHRAI1NiJmZoKHFBZzRAOzRxRwp6Wmc9
KFd4PWFXS3tHUXNpPG5BZG1yKFAjOEgzNXFxWk5qRT14cWkmSG12RyFwd1gjYWtkV2ooYmY9bSt2
RWQhIXsKelhAMSR0dnBpWGJEfHFrO2lrVmEyQksyQ1clKyVFOCVfOVpUT04tbDNJbEAtQ0heZzx9
dTVfLXZsejdoUmJxZTEzCnp7ZXM1eUY9TmY7QyRjWmt0JChHZUVXTks8fDd6T1ZaIWBAT3AtKUoh
PTFXRyYzLU1ISHhPWURNKUV2VntZcEpjUgp6SnppOzJsOSZINTdiVUVTQncmRjJxMDtwdiUwM3JF
dXJJb1lMbEVlc25DZXB9M1l7JWdOQWVVZnhiRn1aT2l+fl4KejA1dTV0SUtQZmdAPVctJSpBQylI
VyRpT2AtT1UtOExXQDRHSXM7eXhPaXtDdzR6QVFGRzskRilZUyNaJGgpUzVTCnptMHlQQjJQJXNT
em41VDU+QzFWXm4tRGd0OWc5dn5vYyElaE1OKl9KQW9JRV84bSUoKlBtOSskZUxDNikydU5tQAp6
ODYhaWRXeVQ2Nz94WFBkQiQ5SXFBQTRkLXcmO3JlK2RvLSpuSjZlZXU/X1BPZmVgcChpR19mTWVu
KD9oWk8yVnsKemdPMX5LWUA4K0soUVMwfkZ2ajJ3YF9Jay1Xcm5NcG58RS1XPnVCY1dia1EpUT09
RSZ3Qmw8ZU9kfjQ5byZhO1lKCnptcT9PUEk4VmM+cGlmZFNxa2t8aFFFYDJOK1lMMTZlMX12SyQ2
YWdAQiE5JTlmWnhDMnsjKFNiOSZSNjVmamduTgp6c0ZySXtjfDUkJE5oRnhCdXhZQ09oPlBUenF4
KTw1Q0g9QDs7LTd0JHt6NHZsJDFnUiMmbEF0VktkNHo3KVMyS0cKem5ecV83Sj8wPkFmfmt8WjBl
VWgqKFp9RypfVjNrIWsqJEEpRjRGQUR5Y0lkPDl8WXIxU0BhYiErK1NHMkImQmkhCnpRa1hJTnN1
bnN+dnlLWG9xYFBxKj0/QlhWcVMkXyRCQmp9eypWajFAM1F9NW5BMEFJaGhsRlJ6ZUtOXlE2K21f
agp6eygpPDVAR1ZVZkBtc29PRyZAR1lLMUhvREhtJF5mPUk0K3w4MGVxa0xZZjlSX3lfMGYrezUm
YHQ1cl9JISYtSkcKejRwfFhMcCNyPEQxNXpmR2xoZjk3OztNaWBZRHVMazVrNEdTUCpBWWExUnQ7
VGQ5LUZkeyZzczlQdk4peVJMLVhMCnohRl9iWiFNeXtfIV8ja3FTNXZtQS1sbD0wMnskSGYzMys0
QG5EV350JGlRcjZFaWRBMj52djdxO1pfbzFWUFNyTAp6XypBTiomVG5YVHUqIWtmYkRUVX4hZWJo
UklpfWVYaHFqNS1rKVlhQUYxWFJZTDwyQFM8bmBpeHt8OGtHR3RCZz8KemY2Q2dkXnRFSzg/eE58
bnRQdSNzQXcqR3UwMSVqVihQd0x6bCgwZDlpQ3ZFX3REMCRrJDM7UHQkZ0NibiY/cVJwCnp2NEc/
T2RKb0ZHTSowR3J4RUJxWGxLI0d+dXIoWHI7Vy0zP2ZeJENzdVNfWHExSE1aOVd+bHZOTz1sU3ZO
N0hyZAp6ITZtcWJWOExDMnlBdUtnM2xKPWo7T18xJjB8YkoqeVN1eCl5U3A+RUx4OFhJeXl3KSMt
fDFfbnh+alZPK0gyal4KenpEe2heM0h8bFhxMilXT0U1NzYwZmQ4c2pZUCpWTSNhaWJKZ3FyY1p3
eDBuREJqQzFlKCgrMSVRS2tkaF5Kb15ZCno9WXF+fSlOSXg4ZDd0MDtmeUAqVXZxaS1+RHlod3o/
UWNzWWUrUWM+TX5zREZ4PUFEU3E+QkB8ZGl5KStLJU0lPQp6RlFifVk5O1lAJEJ6fFdYUiNhNHxH
WG14aTdHYEVONmg/KGApZm1kRWRiM2s4ZXlGZEFxPyohUHhsMENyJi1UaS0KekBMKjZHSCZZWDFW
PFpONz5meihvZ3FBT29XJnpoampDOFUrdFk0ezIybmhqKlhWe3EmdkFJNjJ7QCMlI3F9X3ZJCno3
bC1fbDZlKHE0RWlgTiVBNE1gUG5GeDhBXk5ZK0tWRm57QVlRPXFHaXJjbjc5YlE7UHlVVzhpeU03
RTdKSlBlSAp6ez1qJU9nfVNtQiZXIzJfVWZsRlUkN3w3TFN4YkM2MS0peH1YP3g2WEVtVD48SUtT
PH4zQHolSXFuNXZNTHdnMHYKekRRVDVkVClqYm91b3wkVTk2Q09RWjF+I3Q9aTV4Jjg4X0AmKDtW
JkZkfUpkPG1oOVl0biV6Wn1SS0o7MWhnMDMxCnowRiZHbGhue2lHUWc/ZzxjZ3doSzJvKGkwWmJH
R1N5ZUQ/YmQ/dzZQKV5UITZ3ZTk5eiU9enlgKlZHb2dmS0o4TAp6JlBIWmEhY0AzVy1LfHdfVGll
byhqKmcwb2JEcXdUN0ReWnhuMzxVdzw1YilKQ0YyYXdyPXRTdnJEe1ZuR3FhSksKeiFUNiRmeGdB
MDVvSG9HcV5AcXtnUVN+Pmp7dF8+MTVEPmU8M1djJEs5Q1M+YDBSbTxfRXgheEEwdjtNUSVMUGI7
CnpCQm5rSjliNy0memw2VClCQi1LX0A1OHt5YF9ldHlaZDM3TXBAdWk3ck43NHtPdzdXWks1Yikh
ZGcxMm97JnZGTwp6ak5sJjV7K0VZe1koUFNZN2N6dEQpdjA5fmkwcE5LOV5jYDNVPVE8VTdlbGVJ
QyVVKiY9RSZicFdqKiZpZGkxVCEKeng9QytTc2dnOUYzWWZpIUI+d0Y5Pnt3ZFJeJCtpTDZBdDth
RUF4eThqdFRDKiNhPihTIVhhaW5jX2h9NDJIc0M7Cnpkdj5sYUUpT1FpOyRDRTlfT0dGRWJrdUFY
JUp1RUxhPlB+PUR3en4yelBvM3ljYCtIPU9QM3dLYFpue214IShoOAp6cH0zJEhweEZpWiplfms9
Qk5MRTAjV3dBfFB6M3pHezZIdVpoLXVFcV5QZlUkQ1dQKSs/SShXSk1IU2hqR1hgP3kKemFjcHRL
YVR2eF8qUTY3VmhKWm0mM09xfTVaVVJfclhvazMjayhGYXA4dSZxTipmRXpDP0o+JHVqNnVCXjFy
Zl43CnpCTztKJXRyRUl1bCleUnB1aHZnaGNsc156b1p0dDRiS3BDLW96SUpROGZZeENWI2k8YEZN
aEJeWXdZMDtfZGBVNgp6amd1Nik2QEs7RjhANlQ8WHlLYHJCd1pkI2NYYlUhZ0EqVE07ZUEzIzcm
M3NURFZQPzFHQ2IoanNEaDVDR0d0fHAKejRAcn4mIUY+PHRUMGoyI3tJKk19JUg2bkR7TDxHRURs
TWwrKm9+U01aITs8ZGRjMSR0RGMyJGE2NFYzKWU4YUFsCnpLdVNRXlo1ZVhwRWZxbkIlZUpYa1dv
Y2B2OHklc1QwKiZJM1VwMkcoOyFhWnw4dl9afXtzPlBVKG9gMjl7ZTJwKgp6a3k8Ml5yMEhUSXRa
eTMjSz82Uj9rYz5BbGV2cXpFIz1VRUhTNjNHPm5aTkBTNzwqMWpBSmA8UDZKcnZtN2U3IXkKeiUt
X2dDaX1MSnIjKTV7SSh2RzIrUGAtMEpjU0tLREJ0Rm9IN2x9ZTt6QH5wJntMXj0hKDVUSmApfEYw
RCZXO183CnojOzhIZTBUO2sxWHtmbUd0TnkmdHhqaVpXKFNjUiRNejYoXkZrKTx4QHtyZTFLc3Ap
XkIrSVgxVnN7eiZTOUQ0Rwp6PTlYTH1hN2pzRG0lZzA1KzRWdGMhWUIkY2FaTVp4e1pAezZaZldm
cTd4dTBENCRYZnB5Z3FVKExDNSFnRChGUUQKekEqKTFUOTJEd3toUHNfSC14czxxaWl5KXRlO2Qw
VzVnVy1mamNIPEBIODVreDU5KiQxNjxWJiY+KigrWFVmcXNyCnokUF5xVFdlVkVOWlUxVj1WJnJX
cnVfNygxVFFDe35oSlRkQUx+Km9UMi1hKjdhLVdYZ2I4YVFIQVhHQkBVWm92Vgp6aTxGTjkqXzt+
alJeRUZDVVpwKSpgclFKfiU7cSMlcTFaSz87d157Z3A8Qj40O0lmcjghdyMqNTZANm1ISHZlUXwK
ekBSZGJATzdgJT5GLVJwNEY/bD5LZ3FjeCNmSmhgemhENDBlZylXOFNgdnApc3JEN0NOZE1TXzsh
eTRrJiVJKllqCnpHKDI+P0JfSEt9N2dse2VSWCluJFBlK3JPX2UmbU9QSk5pLXUxfT9eP31aSFZ6
N1ktUEAxcFBgbG5gfmFYS15BYgp6bm0tO1VCenNAe2Q1KnFXRHEwfSpuSnlIUiF9SjR4XjNDd1h3
SWU1bmlwb2pRSzxsWGxlKmNCQmNreWp+TFpidjkKelBqQFBZWWVHT1QhO34rcSZpZUpqeU0+P2Ir
eFZJPGkheypfWWZAYU15djBiSWdQYTt6e2VOM24me142Vjh5Y0t9Cnpta3NGeHVrP04oX0pFSkNj
PF4+TUpYeFlHODtoKkw4akBKUVNse1NTTX0+JGZ2ZSQ4flRuNGtqaFpOa14oKmc2WQp6MGM1S2JI
KHlRM0RPS0RfQypidFIoemlEUTxSeVNpR2F4OTteSFhJXkskYHtydntjWis2JXMpQSU9OUIyZ2wh
UGsKemRZYWUxalkmYkQ9OT9BR2JsZkRxaSRLUkJHcitWJXR9WWZHKUJwS1pOVndVdTx0Nk53R3M/
VVZXKFElTyskeXleCnpjK0JqPkgrJnpFNyo2MDMhbUl3QjxHR29+T0VMQ1ooJVdraXYyaDFvVDF3
b2prYS0jU0BWP3tpTVdNfHJaT3JKbwp6ZyVsYUAlJCk7LUN4Tit6cmNmfFFGRT9MfGkwREFnN1Rk
cHVhRm8xcUpkPzkhXkpeYytVeTh3MiZCSHdLMUhOeGEKejhrOU0+NmY+b2c5YTBMMCombUI+U154
MFQqNEZsQT1kKmNQNHl9eUJoTnx7cjcmQGBlb2JKUVgxJFZ7WEkmUC1WCnpHbGN0TFJqejRsWDI3
I3tVaWM7TyohbVQ8Jm87JjZiN096fkBVK3FCLSR7bi0xdVh5QF5VdCs/ZDNteyRoO1okWQp6NjR2
eD8/MX5+T1ptb01VT1hHZ0YxTng5dDg7NHglVlIxbjJaS1Y0dWY5RD80PjZLVURWUEpEYEtEUD1+
V0B5NlYKekU0TmlPOyNJWTd7fChzUmAocjZ6R0JUWVRndWFCZVQ9NXF2YDU/YzEqeEBjS088JEN1
NVZJTTEoVn1hYTtaRWFkCnpJR2t2SXpETVErVmV1YSprKURCX0QmTHk0MkchY0Z1ZyF0amBKWXot
TVZVYXxMTzFzVng3eX57YlRvfHlucWRQbgp6RDctQ3MrSyVIXytETVJZUj1VP3deWlhkTUp7QDYx
Xzt5dlFofGBBYj40dmM5Q1hKVyM8Mz41LSVpU00xO2l2SU0Kek8+WmclMWFkRGVzKzYlaVhLNWo9
TSg7MCF5PGw/bFcoYVpJanl6JUVMezBIYDxUS1RHP1hQSkA3NyZlQHJCOHxsCnpTUTcwbjsmSk1P
UUYyfG16NE1oSkwkeDhsRCt9SFojJHR7U01TQnJlbDRQamBKPFUwUGBubGg7ZmhaekxLVn1DLQp6
cUQ2ZDRvY0psO21ofGBXZk1ucE8pPz4kO2BwY1Y7UkdISWdgTExGdThrTVE5Z3okNnpBI1E+eWVI
XzNua2R1YHEKekArN19QNFYzcyt0SnFrJW1PUkVKdXN6X21SRHl2NCZReCU0RSFKJGkkRkJkQi19
MStwPnwqbklHZk5uMSRBYjdjCnpZKk4kalBKbEFme1UtWEpxaDtkYzxZY0FRXzQtbkQlVH1FXnky
UlNMa0lycXJfUFpWJk5KTGl3dyloKHZzbUZvUAp6M1YwQExMViVhJnMpT1ZLI0gjVlcjcHk+Zi1a
RHkrMilUfWNJbzBeb0hYLSMtP2tRbT5Tdm9UQjs7ejk5Rn1UYTEKelhDeG4rQExaV2ZhWWFOZ2wz
eDskYTQkU1coQzBzN0pNMjduKm5kXm1BYXYkcG19bm9sTz1wT0c5VF5oNXVXej4tCnpvQnNJTEB3
bzk2d3liN2wmY1pkRUBpJHtFWUAkTjdxPCEhRmdOVDlVMWMyVVhONHwtfUpLSEVLKTd9JWhodDRC
QAp6ZmokR3pKRGFSYkhtRmNeIT9jWG5JZGpPa0UoKmwrODxKaTxvJmFZWUFZSExGI20qJGtyZkFh
fTFmK0g+bW5sQzEKel9uXmxjPVd+KjV6aHpvXkppZTdAQjJncSgjbWJ+fm1gbEcwOUh+eDRHdD5I
fDskNjFBVXloTnNHPk1ETioxfXVtCnpPVHtsSStmfTF0V1ZOTzVYfSNpbW59WC1hNjlRdztxPTJ1
VWhPSWEhN0h9OVAkckAzNC0mT2w+dVdJWGtDVVZteAp6Nj9VIzIjdGl+djVrMFVxSUIkMHtlQndF
LT9pLWV+ODk/dHpwQWVEQmhZRmBNVkc/bk5EJjhBSSZ2K3YmSCpjPH0KenVtO0U/ZFYxVDVNZXF1
cCRLZysmZjlORGdePmomKHIzZ1kxIUc3UCpte2c5dCgkNE0+UDc+MTdDWDV3bWhufWhpCnpneDsz
Y0dWRChTKWJ0Vj9EbiU7QTZlJnpUXmBjME07UHwlYlVEQ2hUPDRSJEhaUEpQcWJSIXh2VkVlPlom
NzsoNwp6ejBzcUo3fSFfaWhVX1RTJTNvRHFJKmdPYGhYJDAzKn1faX1RUEpBfGMlRVVjZU9kUHFe
a1h+NEk7XjZGPmIxWE4Keld1dmtER0RCX2xeXlN0IT9abSYlYCRjY1pvVig1bUBgdCMjQ1JeeEFj
O0MlXm59PDEwPUg9eEROYkYyPjItdXRYCnpCb1QpOTE2OWpleVoxZCFkcFlfemczTDErYkQmSSk1
PGFYPGFBRG12KnxDVWdHYVZlKkZNU04qcVY7ciZ6b1h6Rgp6bnRlZ0wjd2dGcT4jIyQzK009P0Nh
eSR+KUxgJjRXU1FSQVgtQ2BJMFlRfHBNWH50Ry0mOXtqTDRnajNVJXlBLUoKeig3blNtPWtIRnot
MXVqZT82YD9vVTBEM0FQPVApZW9rSXUzMiR7RUFaRWZMOHxFPE52blhVbShiUG5PJHo0PFRZCnpv
MDU3JV5ALS0panN1KndMa3RzcyZhR3NfZG1iYlA5diopczNWMm9EU0dUc2R5NUZEMGVKTG1RSXl8
cWdgIUppeQp6VlRRXkZCWn1xK19+MjAzR1F8O041MHlUVHlabCtkdjUpLVZ3JXA9UDBlUWcoe3VX
aVJxPm1UMTtfc2spSVR5SnYKenA5SjtLMk15U09pQlZRbzI1PU13U2ZVY1VvbjF9ODkhX2ZLQE5S
SXI/RndDLTdZKT5uSjN8cWh6ZHBTRkkmOWdqCnotNyMyeWcwej5jK24lOyQ0SmpJYDh4PjtiTGNe
TThvQWBqcCNOQEAxdmEmT1lAVUhUKngtVSRlRHA/TmNxe15vWAp6d1JzJVlwUDhUY0VGeFcjLWBr
KEJ4M3lSfENrYjchdUdZYjdWdGpfODQqLTE8TEJTTzdSMjIyV2hsVTVndTQoSEYKem9nI3VBdlBt
JUVTIUhEPHdrMSVpYWl4JjdnKUg4dENpLUFyQHt+K0hKVWsyeDNAa3J4Zjd7UGFZTUxffTh5JHRM
Cnp3PmA2T2ZVVWkwZ01IRkloJDtHTG51aFohaVh6ZjBAK3MwUWBZSThgO2NlS1J3UDtOd04zNlRL
P2ltYHRYV3chPQp6T192O0x6aW1Uck5KYmxea1EheUMxfFNpWWN1ZHU7bSoxQ21LJHQqJlNoSzkm
YHxZKk97aG13c24jIXs7ZTZiJCsKenZwRVZCMSFQa1NqR3I5fUQ9dFk0XngpbmJ7JkpQeHxJNjw5
T1cyNT13QSZWUDJUP2UwV3FCREZKUjt0Umk/PW52CnomV3spQXZHdiFzS2hiJWJTS0V2fjB4KCY/
MFE3aGM0aE82UC1jPFdLUDBOMyFeeFl8ZyZ7YjV7SylZWG1BPDhrTAp6Z0FYNSFGMSNQM2dhJT9Z
ZWdHRHstJT1fezgqPFJrRnpvfHpCYWpON1Bad3VhOCtOPzRaeTtmJjgjKWg2eWR+aV8KekwyVyF+
UTRiS2ApdXdwTShAdGNAM2orJEJvdCsoXkJxflV9aDZWd349IUVpPm13UG9GI1h7YDM9Y1ZCQlR4
I2VDCnpoVH5UM1RAZVlkVFcjUWxFJnA3ZCNabHA4YkN6YkB1aGBjeDBOMFAmZXtWb3h4TzVtfjdR
aVNiRG8jUU00VDNfTAp6Rz9IP3VefWgwTS1ARClOK0UwMWNeajhALUoqakVROyV1WUNgfkdaZyU9
PE48e2ZZfHt2fVM2MUpyKVYyMmZgcVMKejR9UGdRa0dofTlIUXg/Pnl8ck9QPi01OGlgbD1IKzZW
fH03ZXlNcU9jRV9CMVY2NTNmPDhsTVhXRiNNTFV9YT9tCno/NCpYKG53IzRjd2hfKWUyTzM8ekxq
SlpBSns0V0NPYiF+fiZrKFdHeSFSQD5ffCpraXReMypDZEIqWU0kd0VvMgp6PDljSzNQYS0/LTdN
UnpyNn5wQXt4dCNMbG4wMncpSEtOMzg8SGZGJDZPNnNpZit6VVVGZmBvbD9DdEhAKzFhb0UKem9P
MW5ZKjdRRjRgQ1dsaUZPeU9jLSMyczsxfn58dnI4QWZyKkRhREljXzktaWwobX5rJSZYZiZec1pL
RmN7OTEtCnpQeUhgajxfdmN1b1g8Y1YxfXNWa2hndE4mKVlUZyglKlF+O01ue0wrTU8xcCp1ZnI4
KnxMVHpXJXI/U2stJXRMIQp6XlplOHA1P0JHKiY7Y1MpXnBocDBPMSsoRVFqMzBIJHQqPiowJjd3
Mm0pUCViVDg7OHRvTnp3SiRydTd4MXlYPG8KejE7I0d7dkZUbl9IOG5NRmNYM0chOW07bi1VP0p7
cEl7V1lWNClDKlRUVmhoRipxQU9TZHIyRClRQmdWZnVYbEF1CnoxO1RkYURIVDF7TENPOVNLNHtM
YTdtPz5NQzd5RTRJcGk9UDV3Pn4zJWo8LTxRUypHM2QoUmhPY19fPzQ0fig4Vgp6eGpRKkkwYy1K
a3FiWGQtOWUxXjV6fjBxdTg1I0JoTz1ffFdiRnp9cFdUI0c3SDRnVmZGQUBlPXpZMGFaKk1oe1AK
ejwwJFghIyZYSFJOa155Q29gTlc8emd4ZEpHemBwWTxtJjRCLUAyYUFkTGgwfmQlbyV9WF91dEFD
I0Q0aUl1IzZCCno7IUwweTNhQVJ7JGs/JUc0aUhsfloxRkFFbGBDVmI7V1hCYCgrWi00K1YwaXJI
c2RjUjw2a3M0bnNaYnU/M2JPawp6dkE4VSZFc2Uya2t6ITdBZWNLWTVwfiplb1BPNjEoVVdgZFRm
KipjRjwodC1OcmxxOWB4P0pjdVQ4KiF9NVV4TUAKemNvfXIpcChxOS1XXzM/fjtyMWNSaERZUlVE
d0Y+el5lITVWJWg4UF9HbzVEc3Z5d3s0bXszN01AfHl9SHAxWnF5CnphOE1BP1QyMnIzSj8jeG8z
VElfdFVfZH04TmxpPCRXSUFJU19iaFFmPExfSCRoUllOfkIlajJEPVMzdChXVyRnRQp6UEc0dmla
PnF6QjdVRD00SFhaIz5iWC07RUI0XiRIa0pwNHROM0B9VU8kTn1aQ25wc0ZmTUF1bks7SlNnYFEt
MVcKejw9aTs8Rl95YWZpQlpwK2sjVCZAa3dZbFp1P1BaR0YrZldaUzBNPDVsVHJfbThYV3BNZiVG
RFo4fkFmST5eeWdgCnplWXZVVHBpUjhtKG93SkZaWnxGTVRWU1MhcyR3JkI7a3FQUzU3ZCUzSEBf
bnkoOXFDP0pmWH1fYCZLKT0tQDV6fQp6JSgqeEU3ZEdnZjE/WjxRb2lUY1FhXzs7RDV1NSE8T0Um
aT4pUz5oTVB+a1FeSERxTW1AeFdRVzhxa3Vhcm9OcXYKems9VE1aWkVOUnc0dnVmMUFQfFR6NDF5
RW49aE9VfSVVaDB5dF9XJSYtd3NEMU09X31HamV3VGUyTn1sPEMwMSt9CnppdVV2IUA2UlhMST1g
d2U4eFBXQ3FFTn1fb1VIWkFOYVpHfUsmVCttZmh7e3FpRC1OKW5wVWxYSHY2T1dDNUgpJQp6PTRU
eE9uciRvQFlgZ3dZeHk1Pklubj4xZVNXK0xRUUJqNEBrX2ZzNkI1b3NXWSUxJShBIStNQnhWJHhR
KXU1KVQKenhfQHgre3s4IXRUZW9XS0FkPERia0U/bGlFWFEkQGsmN1N8UWhaVn5Ean5UNUtPeXVI
V0RBOFFHJCpQYmt9RVUlCnpQSUBaQXgmWGxlMk59VDNkOFBLVWR6TGpFQ2BncDRuIUNDI3ZFKXZm
aCZVUSYtUHgkIWNJbWxPQUg7TDs8JXRBbQp6UVlleitYR2FMK3NNRWt+JXpIOGtIWVRwTVZefGJQ
cnFyVFVGT35pcD9Da1ZPJG9sbU1zKmwyK08tezNYWDVGPkgKenhvZURaSVMjJkoqMz5wQm5hUGVX
aXElM25hdlVeWmNBbFVseHx3RHxFU2MkdVE3OWtwNjleWFYmOWkkbHk3az5pCnpYNTd1cj5EbUpa
Rn44STNfJkNZMDEhKVhlcGFUaSlQQT9iJXkzNChvX1FXd0dkb00zOVYzVjRmN0ZDJXl2Pmt7eAp6
QTdKdVVCSHE/cDMte0N3Qk9vSmdaPmF9Q0AxXzJ9PkhkKGlIX0clJDBSTUI7Zmlie3tmfUVjTiFo
eW9FKiFKYl4KeiFRKjdVVypHXk9qU2dfQmg0IWFZXnJCIVZOej40RGk8fTxvJS1VJXZvbE1tISp0
JERrXmxZKVcmK2JUdS0rclJQCnpiKTUqOT4/dSM7IXltSDU7eG1TdlRWZDt3UXlMdjRyYlV0Jm1w
S0BUPjlIWHgoXzZTUnV1VHJVdGcmJkNkZzRaTwp6Y1hHPX1lNEN3e2BgMntfYlA7VDhDN2JjT2x+
Y0YyY0htdjZ3TjxOUEElPkUqZjYrflJ8R2pOZGFrQVc7Pj85KHoKejRzaGRiJFEwdChaWEltWm1m
byo7OytGbkQjKztQYGF1ZG5iaD1QNmNXOGtiPVUwaHJvRmtPOzRtOytVO0BYPnA7CnpObl49KmdM
QzJ3dnJ0KmtQUm9ZS2tfbExBR2lYbXJZbn41Y3A/JXcxPz07a2lOKmYtZEtEMW8+dl5sRj9FczdA
Swp6bGhLU0xWZTw0cTF+djIhZTEyUXc9LUc5U058Yn55ZE5CbT97ci1kKWhaY3VjaSFQQTIpOHwp
TiRId1hSXzhePWUKejhWRiU7QyUkI193NiRmR283c1VHYC1KaX1aK2ZhezBNcEFiWEcmZERRJlVT
ej5wIWsyYjtSbFYza04mUCpPNikyCnpQVyh6ciUxalVpPmJIUENmamozTzlidUgpNkl2aSRBMllP
antWMDwrejNefFMoWns3NUY+SHIkSm58aUFtZCNJMwp6UHBfYDdjNldFTGl0VzU9VXJtPFZJREtQ
eE9oK0BAcWY1WW1uVDBBdzEzIzIyUnFUVUgjMWhrQkE7cmwxeD97KVAKekN9M2k4SChnOSFZUGBF
JlglMWo9QzdxUnh3QkkqKnAxMV51QCQxWiFuJEt4ekxrMilfa1U0PD8yZjB0TE84cC0lCnpCZHUz
fTNOIUI/JFJjSVRDfSt4cWdXJU1PVXJ0I2MxPUJVXlNsKmM+YEBISz9aKUN9MHpRWnczc1lzbT40
PExiYwp6KkBqKzYxUGlObkxgdnB0RSFnI25AZmw5ZDBvYktoS0xAVXErbEJAJFcqezhxQShTeUB3
N35LYnJQPWZ7YnUqckoKenF8SENBbmkzT0dtVF9XNyU8Tks0REZHbkAkSH1qVUN+QVFNNGtaSGMl
YWxvRjB5VD47ezF4R1JyP1pnQmFiWE1OCnpsdDN1RUErUEdDVFY+Yn02WHpST0g8blEzVmlHe1dj
Xj5QcztpaSQ+Q3BjUVE8YUA8fWQ3V240UHdSJTJTRGhhIwp6IU5Gb3BKdFd6fUFie151cXlpLUg9
bzNaKSNrTXt1dW5CWllMdHozOzVDcz1vVFUlZitPX0BNNHpKNlNTYDlxQWoKenBUTWFSRUJgSzg2
VilFJG8zakFNV0cwVEA3WHQrWSVWazUkUFRNLXtLSU1SemlQeT9jdUI8I3xUQ0IhMHl6SHdmCnpY
dCY4eyokaktPYWAwO35XYEcqbHh3Vkl3Tz8mMTJiVGV1KzszKkNzQnItQmgmTm4/eXdJNj9FelR6
eCUrSGs9bAp6SGt1JUo1LThId0UwZGQ8Xn1hUEslTnc4NkVGaVdXZCooNUdyJV5ncGNpK3p+b1hS
eztFOFV3UFRmZGFNJU5YU2QKelZYUEYtKVo9MEBqRkJOYjg+Wj0jalloSi1RTikrWlRvaVcydDVa
aVc/PGxGKG5tODg4blVAS3E0fisjTHZ3OWZoCnpXKHJ7Z3FoZ0daUk5vUDEjTWhlenRfbFg+TWA7
Zn5GOWQzN3Rid1h+aEJTTH5ueXpLbntXZiVPbCFxQHpoUUF+Qgp6O2tzaGp0YWhfe1RXOzJ8Pz1+
Qmh6VFNeKmBNUFFxN3hmaWVeJkBXUVJINWFBM2d5RjIlO0xYKjYhYCtwSE9oOUsKemNMe0tDPzgt
fF8hZyVRbzhudFEjS21RblNAeGM0NXQtZG4kPSY+I3kpV0VzUGI2WXtuVWVRRGJGaHxYby09RnZ6
CnpvPlhDVUpWdk80S1UodH16QkJGcmQmfEZ+d3VWYjFTc0srU1hCI0ZiIyNMdjVsRWleQkQmZyV8
UztESmpzKX1yYwp6VEczV0NrYUdXVmh3fHwlZTlROT5VYVMmNTstP0V2VXF1QVdXMDByVFNob2F1
Wn0wZHAlZDVgVHooKF90Izx2TmYKekN7TEZNPzM7PSpAMU4lQVEoOzNTQztXYWkmUEclMi1EUnBK
UXprQ0wjWSt9JCFvJkQybUU4PUVyWmtLNFJrJFRpCnp6bCVQOTluS0JyYHteZ3JqZ2NjI3tiOShN
RGpgYT93K1pFZFUyRjZrRF4yanBfKFImKEFFNjlJU3smcEA1MjF0Kwp6TCQoaXA9b0QwZipERFct
KjhiWERDOFo/Szx3d1RrJTdzKFlGdEpyLVFSPTJSPj03RXZHUm1YUXpXWj5BUCRhQ20KekZscnJB
SEA0IyhYa1J7TTAtWEJtSGVYJndIdDY0Rk1zTzYxei03JXQ5Znx+Rlc8elZoVjNMMFlVMG4pKU5K
fVNqCnpWT0QkO0pQQTdLViV2UDdKKHFZUzUtcGojVDMzbXRvWSh2bF9GNGlpT3x1OV9GZn1oJkM2
SWxwOUo1QTRDbypwXwp6VT1xYD8mKms+bjJ7ZWU8JX57fkVUR0xKSmAoUmJxXyVwOUBrMC09KDc0
N0BVXmJERjZWTnUxTmdRb3p7OHZ9QF4KejgoNlF1d1BUcENSeEZyMkgoVCh8SlAkVnUlRXdzTGEh
NitqSWkwUjMkY2kmLSRec1g4YiptK3JkRFVKYVozUHdCCnp7JDFCMl5MLXokdkFLMmVAeG5mblNJ
PDk1anJOMnBPZyp9K0FTe3c3cVBeWDU0KVV5ZU1EKjxSVlJ+PXpNdEBuWAp6eXNndj5kd3UkUD5w
dWNwZj4+UUdYNDwyO1RuIX03eVpUMXRHbm4/alMxcnh+OVViNnd7QVchOTMzPj47ZF80O2MKel9u
P3B6JUpfSl5fTUVYe2dNUTlUMyhDV1JmeXpWJURaMDxLJi1LITVJSDN6WkV2ey01N15YaURNSUJJ
cWk3cTRtCnoocTMkN24xNzVUQ2VmK0xRJl8wZ25UPVZ4cnQrYFVyNVFQOWRmSEo/RTN5MVdLNXRo
dEhpcylpU1FLYFdLaTh9Pwp6dmY4KHpSPXMyYUdecXYkIVJOeXhNbH1OakojSzA5dzRuZU9hMDJK
dl5ZVz5gO2hZKCE1PXxOLTVhVHdCT1MkNnIKemV5TnUyREoxYEwtOGs/MHRgQ208aXdvXyM/Vjx9
ZTdzTzxnP3tQPEFBKWIoaykmXn1rZ3VeVkExRXNJN2NCKWxwCno8dTZzaW9KP056ZEh5KyY2IXlz
NlE2RUZFY1FeQk1Ib1NNaFAzWDhmTVckQmApaiZqd3YhPU5KTFZeVFp5Ukl4IQp6RW0yQHVZSmVn
S05haHB5RkU0U29PJDNIOHEoUVRhSWlqe2JqayFAPW4pKXd1VWxtRks3ODBQKjBre085UTM7VTUK
ejBNSVg+ITI9ITteSUM0fkcwKWNeNSg1I08kP1lLKSllbWxQUVRIVWhaUn1xTWhGU2kxO2V0VWNr
NCg9MmN8eTJOCnpzblZeK0Y9PkNUPSpDN1dYMEtEWXUlRUtfWmYtIVpLMl9wPTlAYCZZXnVraiN2
aGxIRVo4bmRpSDJTJWVFK1khVwp6ZShDSnxlUFdSJFZ7b19rVF9ATDc2eWNvfiRJa0FyYXd+Yz05
b3pXdUM/byV3I1kpb180cWl7P0c5fjJUOzl3ZVIKellJJFpxbWw7aUc7OUpZZHdlOGdUOChZY143
TDUtWTNeY00yKE9LRUAwd0ppT0ZBeSNmZ0J+dTNNczB9fEFRayVpCnpJNntiZVN5TDg2PGM2cmw/
bjtsRzBIKnJrcF4xWFIxWWgxXz9MMUpVMFpQe1U0Yns+OGZUYW9qKCR9aGpUbTRZJQp6NnZgb1p1
Kkc3Sy1+cHRocTBUMno5bykrJmpxVEtybG4ycW14cz1Le0oyfDstcjk2NENxVyNYQ1B7MXdNYGF9
LVIKelRlYFhmTHJBVHdZcVhKSGBNPTMwYjJxVyhZWS0jZENMJn4qa0t8PEJPO25kflcyamRqYlMt
TVdFaVdAR1Z+ODZACnpaIUghXjZsNHUleGYhTk16Jjk3RHslIXsmMGJuJUtKPjZ9OXhLQE5PO0A8
IStlKXprWjFqU0tYPF4rRGp6YDBLLQp6K3pOTWhqeXVKQSMxMnhrTmxDTmBkKktIRmU0Zyt3d1Q3
NlRQSl9BITV8RkIxa0B6bHZ2fmFRfUgzSz8zcEErQ3UKel9yUT8oOUxva2VWVWVTQndyTisrbFJS
ZUVnPTN1cUtob2t7XmxPQUQyQ2Y0fjFSc0dadlo0bV4tX0BRWGNXSi1PCnoxfXE9OGNDbmVNMkFi
bXxKSGZzMXFBKm05ck9KYyF4cy1CPnFmRERSVWgoPEgpT2RtPFdzZlc4ZHtORzc/TEFsPgp6dG5F
dU8hcTJXN2g4X1EjZyo8JTFEVUVOI0hCLT1iRys3fnFwSnB2JWVpV3hEbSpRe3k9QzlFbk1lOVlY
MWd7QjYKenIjbytkTWs2UVdqWTQlRipIQWwpdzVxTlg2SDEqVGhASSFkUDs/Z1RQV1FObyl0Pkck
IzUodXE4R3RNPHJYd3ItCnoyfS14entHNSl4MXA0PShyM1ZtSlJnREVJfEc9KjUoUHBmMSo5PjQ0
MXxJdDNQMElGeT9nIUkteE9scHtCTmx4Ywp6KXF3UjxqeVZCOUhqRXB2djBWTkNzVm0jQHtieFI9
a3I7KkRaWmhSOEJuM088O0NqQTNuTUczOz83T3dRKj5sUFQKejU+PkhwRDtabi1zXkdXODBzIzVJ
Vmhaemt2STFAeHF7JD45SDNffVdATUtaYlItVlhsKE1PVDRPdkR0b2N0USk/CnohfSklZyZJQzdI
YEV8UENXTEk1bDgmaEppP2VRdkNvemQrbjhkYT9IemJRQHFFfFpqeSN4ITFJIVotNXp7KmUtXwp6
QnkmUDRxU0E0SEFNWER5e0M1MkotI3JAUjV7QSkjVnR1WmA9dzFTKXpvNCZMZ01qVCtfUEBgZ0A7
fkJ6b0ApOF4Kek9WWXVodGEyeWZGIW93QlQjWFcwWXxmPFUqVVItMSV5cnBxT0VrLXhPNTEpc3tE
JT4wQlYqWlVzfXk7YjwrSjlOCno3SiV+dDd9fG1ldE4qUGJFc25DPTJiO1pUbVdLSUgqc1BjXyp3
cWt9bkNzO1A9dDhtN2l0VU5OUShjNS1Te21yeQp6eUNkQSstO1FeI087QFQrVzI3eXh7LTlCQisq
ZGJoRzUtazxNQDIhZyRXPnxFM2lFST49fUF2OURvYWFCZE9VeCMKei1mKHQ0QkUxT2gwQmgzV2Bi
XjgxaTxISFI8KkFGOWQrZHh7Mnx2Y2FjQlJNa0ImRnY1b2xzLTtJIWlYd1lHNGxNCnp3TT1nMFUw
ISUjc2ohSGI9PnZlbjBHJHtwVy1TZ3NUbGZIc1UxdkU3ZzdFJGJWKlpWe3RtOVY9O3M8RShgKXsp
Vgp6VXgtZ3AjJER2eyQje3ZWXilqIW9wKmBFKD9CUmhwVkRfcmNuZF4xdUlJaXReeTRHXjNtKVVa
dShRIVdoPXt8Sj4KenUmQEJDKnBHVVBxeDE4UE95dT17aT5qT3VsWmxCKkBhQlRUYCNSK0E/OFNI
ZkBDN3B1PU5STktWcD8lVmxzVjAoCnpTU1Z0U0NAJGNzeW5sNXFRPW5qMjVSQGI5cTV8YX1lS3Fi
Nmg8JXBZX0NNXzNOflFKZkxKU0Y4b1doRDtoT2dEZQp6KTgmQ35GPD1oQFhkM1dFJE4hRitZcjRY
dTQxaD9kS2hXWFg8YUhwZjBUTn41JipMeClyJmtkenRkKyNnTXBudEoKelJpeV82MDFrTTltSnpw
UzJfcHk2VzRhPGNHVE9jR1QtX29KTXBjeUlpM0NoUE9QaThodVJIYUo/ODBTLXNtWTlxCnpeWFQk
ZVM2c3tyRlE7cFlKKzstRDY5eHRieyZmbDYtMnc5UHpsSGx+KDRRQz43XnZPaTxhdSV6U1lqUW5Z
RE5IeAp6NiUpeWVtQmheaTNZfH1yZylxSUtJeUc3YFZwNGlncHAzN1dOTUwpVUExeDNGXlpHM2hO
S0FITzVyZGorS3FySXcKenc0fDFLUmR0T2A1OWwpaDAwLWEpMD5rYTFzVTJqbzZKZkR2engtY3xe
TVopSEt5RjtpYF4oQU1tK0hBQFhlY0JjCnpgYXFuQFglbyZ1NWpaSU5hS0woPHNwej04SjlWOENp
ZFpiNHElSS1RTUNPaHhTIzZOVUwkVGVEQFN7THN3JjZEPQp6a1JCZnExa2BGa3N7VCpSKlFKUFEt
VTxPYDY4S2pES3BFIWJiaHB7JXwxUnZTdiFMdzhUOHtJQyMzK2IoJHwjJnEKekJvQztPNURWamBl
RiFpLWV9JWplOVlJeytHNEU4VWJfMCtDbnA+dWl3JnJKYiskJlNNS0xQMSt6PkRQWD8rK0IpCnpk
dj81YCp7RXYoWnglVEk4ZCZZNERGSDx2c0plQV52czZvbil1cng7VzdpT0ZTQyFQUT43bjMhcGsr
KTAzdHhJawp6JGNPMiM2VCF+bnVzJT17ekJxUkU5ZVI/X0doSnM2bmNKO2VLbWx8UGNyQWViN1Z0
MzFQOS1FWkJxWGlZV2coKS0Kej03fjdEZVkqTkw/ODtRYmM2ajd3OytsVUhaYGx6T1RDUm8wUmhj
bGNXJT5YZnFEO2tYakJKckI0ZChZbk47WXY9Cnp4WWF9XiNJVHxgcE1lYWVgbzlkTnVxcj9pV2x0
Sn5feFFJeytIfHJnPHp9MigpLTFSUCF6Rj1BdTE/ZEk9IWJjbAp6eUBaNUJ3T1IwO1RYMHJzNCQ0
UFpRVCFsKXo/P0F3bHhUV1loZU0qKE9PUFBSYCtyTGB0WG09ZzNeNFotSXBrdSMKenYtaTYmO2pg
Pi1JekpIam5Vd1c+eCsod2lBOGFFMWp1KWl8NnwocW1eTCZGclg2SFg+clJnM0dyVGA7Z3MoPFkr
CmpjT3leTmNaSzFScE0zUnBtX0R9PXdCdSQ2MFltejt5aE9RfWpeRjxROXAzTDMKCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL21hcF92aXNpYmlsaXR5Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tYXBfdmlzaWJpbGl0eS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42Y2Y1Zjc2M2VhOAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L21hcF92aXNpYmlsaXR5Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPgorICA8
dGl0bGU+TWFwIHRlc3QgcGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDBweDsgei1pbmRleDogMTA2OyI+
PGltZyBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyNzFweDsgdG9wOiAzMjBweDsg
d2lkdGg6IDIwcHg7IGhlaWdodDogMzRweDsgLW1vei11c2VyLXNlbGVjdDogbm9uZTsgYm9yZGVy
OiAwcHggbm9uZTsgcGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsgei1pbmRleDogLTE0MDI3MDQ5
NjsiIHNyYz0ibWFya2VyVHJhbnNwYXJlbnQucG5nIiBjbGFzcz0iZ21ub3ByaW50IiB1c2VtYXA9
IiNnbWltYXAwIj48bWFwIG5hbWU9ImdtaW1hcDAiIGlkPSJnbWltYXAwIj48YXJlYSBsb2c9Im1p
dyIgY29vcmRzPSI5LDAsNiwxLDQsMiwyLDQsMCw4LDAsMTIsMSwxNCwyLDE2LDUsMTksNywyMyw4
LDI2LDksMzAsOSwzNCwxMSwzNCwxMSwzMCwxMiwyNiwxMywyNCwxNCwyMSwxNiwxOCwxOCwxNiwy
MCwxMiwyMCw4LDE4LDQsMTYsMiwxNSwxLDEzLDAiIHNoYXBlPSJwb2x5IiBhbHQ9IiIgaHJlZj0i
amF2YXNjcmlwdDp2b2lkKDApIiBpZD0ibXRndF91bm5hbWVkXzAiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDE1OXB4OyB0b3A6IDM0MnB4OyI+PC9tYXA+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9tYXJrZXJUcmFuc3BhcmVudC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tYXJrZXJUcmFuc3BhcmVudC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWQ0ZTVlN2Y0ZDYzZmUxMDM5ODNjZjNiZmE1MzczM2EwMDg5YmE1MQpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMjYwCnpjbVYrZjBzSD1tUCk8aDszS3xMazAwMGUxTkpMVHEwMDB5SzAw
MUhnMV5AczZVI2pgTjAwMDA0WEYqTHQwMDZKWgp6SHdCOTYwMDAySE5rbDxaTlhQQSEhNDd+aDJ0
IU4xZTRwO2NnV2BiVkcrc09xNlNGLUY2dlArPE1WTzI5ZDxOa2oKemM2Z1RYT2M1UDQwO2ZPfFJR
WF44ajFIUl42M196R1E1aTV4d05nZH0kbUJ4eTUmc1R+SShGJntSfkklTCF4P2E7Cnp2ektnPz95
fT42WHcrMnVxXyhNYDZkSEUyNFIxX35TQTJXKXNFaSgobyN0JWdDPH1GIy1teWdUZn57MXN5Umo4
Mwp6JHZ+KzQ/XjdWVXVyNHN7WXpLKFNjUHFmOUFOe01xJUt9JmhMYWtwMUQ4WVc8R3IkZFRSc0d9
RStwNWswMDAwMDwKS01OVU1uTFNUWDsrLVlQMAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
bWVzc2FnZXMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL21lc3NhZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjc0ZjFhMzdmNzQyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWVzc2FnZXMuaHRtbApAQCAtMCwwICsxLDE1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQ+CisgIHZhciBtZXNzYWdlcyA9IFtdOworICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgbWVz
c2FnZSA9IEpTT04uc3RyaW5naWZ5KGUuZGF0YSk7CisgICAgbWVzc2FnZXMucHVzaChtZXNzYWdl
KTsKKworICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsKKyAgICBw
cmUuc3R5bGUubWFyZ2luID0gMDsKKyAgICBwcmUuc3R5bGUucGFkZGluZyA9IDA7CisgICAgcHJl
LnRleHRDb250ZW50ID0gbWVzc2FnZTsKKworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
cHJlKTsKKyAgfSwgdHJ1ZSk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9tZXRhLXJlZGlyZWN0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9tZXRhLXJlZGlyZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjlkOWMyZjBjYzk5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWV0YS1yZWRpcmVjdC5o
dG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlNvbWUgdGVz
dCBwYWdlPC90aXRsZT4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIw
O1VSTD1yZXN1bHRQYWdlLmh0bWwiLz4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij48IS0tCitsb2NhdGlvbi5yZXBs
YWNlKCJyZXN1bHRQYWdlLmh0bWwiKTsKKy8vLS0+IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21pc3NlZEpzUmVmZXJlbmNlLmh0bWwg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9taXNzZWRK
c1JlZmVyZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42
MTY3NzUyNzY1NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL21pc3NlZEpzUmVmZXJlbmNlLmh0bWwKQEAgLTAsMCArMSwx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+RXhhbXBsZSBw
YWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyBwYWdlIGNvbnRhaW5zIGEgbmVz
dGVkIGlmcmFtZS4gRXhlY3V0ZSBzb21lIEpTIHRvIGxvY2F0ZSBhIHJlZmVyZW5jZSB0byBhbiBl
bGVtZW50IGluIHRoaXMKKyAgZnJhbWUgYW5kIHJldHVybiBpdC4gWW91IHNob3VsZCBuZWVkIHRv
IHN3aXRjaCB0byB0aGF0IGZyYW1lIGluIG9yZGVyIHRvIHVzZSB0aGF0IGVsZW1lbnQuPC9wPgor
PGlmcmFtZSBzcmM9InNpbXBsZVRlc3QuaHRtbCIgbmFtZT0iaW5uZXIiPjwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvbW9kYWxfZGlhbG9ncy9tb2RhbF8xLmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFs
XzEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGVmZjAxYWNk
NmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFsXzEuaHRtbApAQCAtMCwwICsxLDIxIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkZpcnN0IE1vZGFsPC90aXRsZT4KKzxzY3JpcHQ+Cisg
IGZ1bmN0aW9uIG9wZW5Nb2RhbCgpIHsKKyAgICB3aW5kb3cuc2hvd01vZGFsRGlhbG9nKCJtb2Rh
bF8yLmh0bWwiLCdkaWFsb2dXaWR0aDoyNTBweDtkaWFsb2dIZWlnaHQ6MjAwcHg7cmVzaXphYmxl
OnllcycpCisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorIAorPGJvZHk+Cis8cD5Nb2RhbCBkaWFs
b2cgc2FtcGxlPC9wPgorCis8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYnRuMiIgb25jbGlj
az0ib3Blbk1vZGFsKCk7Ij4KKworPGEgaWQ9ImxuazIiIGhyZWY9ImphdmFzY3JpcHQ6b3Blbk1v
ZGFsKCkiPmxuazI8L2E+Cis8ZGl2PgorCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFsXzIuaHRtbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vZGFsX2RpYWxv
Z3MvbW9kYWxfMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j
ZWMzZjNmMTRmYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vZGFsX2RpYWxvZ3MvbW9kYWxfMi5odG1sCkBAIC0wLDAg
KzEsMjEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2Vjb25kIE1vZGFsPC90aXRsZT4KKzxz
Y3JpcHQ+CisgIGZ1bmN0aW9uIG9wZW5Nb2RhbCgpIHsKKyAgICB3aW5kb3cuc2hvd01vZGFsRGlh
bG9nKCJtb2RhbF8zLmh0bWwiLCdkaWFsb2dXaWR0aDoyNTBweDtkaWFsb2dIZWlnaHQ6MjAwcHg7
cmVzaXphYmxlOnllcycpCisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorIAorPGJvZHk+Cis8cD5N
b2RhbCBkaWFsb2cgc2FtcGxlPC9wPgorCis8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYnRu
MyIgb25jbGljaz0ib3Blbk1vZGFsKCk7Ij4KKworPGEgaWQ9ImxuazMiIGhyZWY9ImphdmFzY3Jp
cHQ6b3Blbk1vZGFsKCkiPmxuazM8L2E+Cis8ZGl2PgorCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFsXzMu
aHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21v
ZGFsX2RpYWxvZ3MvbW9kYWxfMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi42YzVlYjcyMzFlZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vZGFsX2RpYWxvZ3MvbW9kYWxfMy5odG1s
CkBAIC0wLDAgKzEsMTUgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcmQgTW9kYWw8L3Rp
dGxlPgorCis8L2hlYWQ+CisgCis8Ym9keT4KKzxwPk1vZGFsIGRpYWxvZyBzYW1wbGU8L3A+CisK
KworPGRpdj4KKworPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvbW9kYWxfZGlhbG9ncy9tb2RhbGluZGV4Lmh0bWwgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFsaW5k
ZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGExYzRjOTQx
ODEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFsaW5kZXguaHRtbApAQCAtMCwwICsxLDIx
IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk1haW4gd2luZG93PC90aXRsZT4KKzxzY3JpcHQ+
CisgIGZ1bmN0aW9uIG9wZW5Nb2RhbCgpIHsKKyAgICB3aW5kb3cuc2hvd01vZGFsRGlhbG9nKCJt
b2RhbF8xLmh0bWwiLCdkaWFsb2dXaWR0aDoyNTBweDtkaWFsb2dIZWlnaHQ6MjAwcHg7cmVzaXph
YmxlOnllcycpCisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorIAorPGJvZHk+Cis8cD5Nb2RhbCBk
aWFsb2cgc2FtcGxlPC9wPgorCis8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYnRuMSIgb25j
bGljaz0ib3Blbk1vZGFsKCk7Ij4KKworPGEgaWQ9ImxuazEiIGhyZWY9ImphdmFzY3JpcHQ6b3Bl
bk1vZGFsKCkiPmxuazE8L2E+Cis8ZGl2PgorCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb3VzZU92ZXIuaHRtbCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vdXNlT3Zlci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNDc1MWJmZGY3MQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L21vdXNlT3Zlci5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHkg
c3R5bGU9Im1hcmdpbjogMDsgcGFkZGluZzogMDsiPgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICAgICAgbGVmdDogMDsgdG9wOiAwOyB3
aWR0aDogMjUwcHg7IGhlaWdodDogMjUwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kOiBncmVl
biIKKyAgICAgaWQ9ImdyZWVuYm94Ij4KKyAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZl
OyBsZWZ0OiA3NXB4OyB0b3A6IDc1cHg7CisgICAgICAgICAgICAgIHdpZHRoOiA3NXB4OyBoZWln
aHQ6IDc1cHg7CisgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGdyZWVuIgorICAgICAgIGlkPSJy
ZWRib3giPgorICA8L2Rpdj4KKyAgPHNjcmlwdD4KKyAgICB2YXIgcmVkYm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3JlZGJveCcpOworICAgIHJlZGJveC5vbm1vdXNlb3ZlciA9IGZ1bmN0
aW9uKCkgeyByZWRib3guc3R5bGUuYmFja2dyb3VuZCA9ICdyZWQnOyB9OworICAgIHJlZGJveC5v
bm1vdXNlb3V0ID0gZnVuY3Rpb24oKSB7IHJlZGJveC5zdHlsZS5iYWNrZ3JvdW5kID0gJ2dyZWVu
JzsgfTsKKyAgPC9zY3JpcHQ+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vdXNlUG9zaXRpb25UcmFja2VyLmh0bWwg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb3VzZVBv
c2l0aW9uVHJhY2tlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4zOWEzMWNkYTRmNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vdXNlUG9zaXRpb25UcmFja2VyLmh0bWwKQEAgLTAs
MCArMSwzMyBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisgICAgICBkaXYuc29saWRib3JkZXIKKyAgICAgIHsKKyAgICAgICAgYm9yZGVyLXN0eWxlOnNv
bGlkOworICAgICAgICBib3JkZXItd2lkdGg6MXB4OworICAgICAgfQorICAgIDwvc3R5bGU+CisK
KyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvanF1ZXJ5LTEuNC40Lm1p
bi5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Impz
L2pxdWVyeS11aS0xLjguMTAuY3VzdG9tLm1pbi5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9u
KCl7CisgICAgICAgICQoJyNtb3VzZXRyYWNrZXInKS5tb3VzZW1vdmUoZnVuY3Rpb24oZSl7Cisg
ICAgICAgICAgeFBvcyA9IGUucGFnZVggLSB0aGlzLm9mZnNldExlZnQ7CisgICAgICAgICAgeVBv
cyA9IGUucGFnZVkgLSB0aGlzLm9mZnNldFRvcDsKKyAgICAgICAgICAkKCcjc3RhdHVzJykuaHRt
bCh4UG9zICsgJywgJyArIHlQb3MpOworICAgICAgICAgIH0pOworICAgICAgICB9KQorCis8L3Nj
cmlwdD4KKzxib2R5PgorICA8Yj5EaXYgdHJhY2tpbmcgbW91c2UgcG9zaXRpb24uPC9iPgorICA8
YnI+Cis8ZGl2IGlkPSJtb3VzZXRyYWNrZXIiIGNsYXNzPSJzb2xpZGJvcmRlciIgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiA4MHB4OyBoZWlnaHQ6IDQwMHB4OyB3
aWR0aDogMTAwcHg7IHBhZGRpbmc6IDBweDsiPgorICBNb3ZlIG1vdXNlIGhlcmUuCis8L2Rpdj4K
KzxoMiBpZD0ic3RhdHVzIj4KKzAsIDAKKzwvaDI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9uZXN0
ZWRFbGVtZW50cy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvbmVzdGVkRWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uODhlZGE1MWZlNmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9uZXN0ZWRFbGVtZW50cy5odG1sCkBA
IC0wLDAgKzEsMTY0IEBACis8aHRtbD4KKyAgPGJvZHk+CisgIDxwIGlkPSJ0ZXN0X2lkIj5vdXRz
aWRlPC9wPgorICA8cCBpZD0idGVzdF9pZF9vdXQiPm91dHNpZGU8L3A+CisgIDxkaXYgaWQ9InRl
c3RfaWRfZGl2Ij4KKyAgCTxwIGlkPSJ0ZXN0X2lkIj5pbnNpZGU8L3A+CisgIDwvZGl2PgorICA8
ZGl2IGlkPSJ0ZXN0X3NwZWNpYWxfY2hhcnMiPgorICAgIDxwIGlkPSJ3aGl0ZSBzcGFjZSI+c3Bh
Y2U8L3A+CisgICAgPHAgaWQ9ImNzcyMuY2hhcnMiPmNzcyBlc2NhcGVzPC9wPgorICA8L2Rpdj4K
KyAgPGRpdiBpZD0idGVzdF9zcGVjaWFsX2NoYXJzXzIiPgorICAgIDxwIGlkPSJ3aGl0ZSBzcGFj
ZSI+c2Vjb25kIGNvcHkgZm9yIHRlc3RpbmcgcGx1cmFsIGZpbmRFbGVtZW50czwvcD4KKyAgICA8
cCBpZD0iY3NzIy5jaGFycyI+c2Vjb25kIGNvcHk8L3A+CisgIDwvZGl2PgorCis8Zm9ybSBtZXRo
b2Q9ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImZvcm0xIiBzdHlsZT0iZGlz
cGxheTogYmxvY2siPgorICAgIEhlcmUncyBhIGNoZWNrYm94OiA8aW5wdXQgdHlwZT0iY2hlY2ti
b3giIGlkPSJjaGVja3kiIG5hbWU9ImNoZWNreSIgdmFsdWU9ImZ1cnJmdSIvPjxici8+CisgICAg
PHNlbGVjdCBuYW1lPSJzZWxlY3RvbWF0aWMiIGlkPSIxIj4KKyAgICAgICAgPG9wdGlvbiBzZWxl
Y3RlZD0ic2VsZWN0ZWQiPk9uZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlR3bzwvb3B0aW9u
PgorICAgICAgICA8b3B0aW9uPkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TdGlsbCBs
ZWFybmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4K
KzwvZm9ybT4KKworPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIiBu
YW1lPSJmb3JtMiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4KKyAgICBIZXJlJ3MgYSBjaGVja2Jv
eDogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2t5IiBuYW1lPSJjaGVja3kiIHZhbHVl
PSJmdXJyZnUiLz48YnIvPgorICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21hdGljIiBpZD0iMiI+
CisgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIj5PbmU8L29wdGlvbj4KKyAgICAg
ICAgPG9wdGlvbj5Ud288L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3VyPC9vcHRpb24+Cisg
ICAgICAgIDxvcHRpb24+U3RpbGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVudGx5PC9v
cHRpb24+CisgICAgPC9zZWxlY3Q+CisgICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21hdGljIiBp
ZD0iMiI+CisgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIj5PbmU8L29wdGlvbj4K
KyAgICAgICAgPG9wdGlvbj5Ud288L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3VyPC9vcHRp
b24+CisgICAgICAgIDxvcHRpb24+U3RpbGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVu
dGx5PC9vcHRpb24+CisgICAgPC9zZWxlY3Q+Cis8L2Zvcm0+CisKKzxhIGhyZWY9IjEuaHRtbCI+
aGVsbG8gd29ybGQ8L2E+Cis8ZGl2IG5hbWU9ImRpdjEiPgorICA8YSBocmVmPSIyLmh0bWwiIG5h
bWU9ImxpbmsxIj5oZWxsbyB3b3JsZDwvYT4KKyAgPGEgaHJlZj0iMi5odG1sIiBuYW1lPSJsaW5r
MiI+aGVsbG8gd29ybGQ8L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKzxodG1sPgorICA8
Ym9keT4KKworPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIiBuYW1l
PSJmb3JtMSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4KKyAgICBIZXJlJ3MgYSBjaGVja2JveDog
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2t5IiBuYW1lPSJjaGVja3kiIHZhbHVlPSJm
dXJyZnUiLz48YnIvPgorICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21hdGljIiBpZD0iMSI+Cisg
ICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIj5PbmU8L29wdGlvbj4KKyAgICAgICAg
PG9wdGlvbj5Ud288L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3VyPC9vcHRpb24+CisgICAg
ICAgIDxvcHRpb24+U3RpbGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVudGx5PC9vcHRp
b24+CisgICAgPC9zZWxlY3Q+Cis8L2Zvcm0+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249
InJlc3VsdFBhZ2UuaHRtbCIgbmFtZT0iZm9ybTIiIHN0eWxlPSJkaXNwbGF5OiBibG9jayI+Cisg
ICAgSGVyZSdzIGEgY2hlY2tib3g6IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNreSIg
bmFtZT0iY2hlY2t5IiB2YWx1ZT0iZnVycmZ1Ii8+PGJyLz4KKyAgICA8c2VsZWN0IG5hbWU9InNl
bGVjdG9tYXRpYyIgaWQ9IjIiPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCI+
T25lPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+VHdvPC9vcHRpb24+CisgICAgICAgIDxvcHRp
b24+Rm91cjwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlN0aWxsIGxlYXJuaW5nIGhvdyB0byBj
b3VudCwgYXBwYXJlbnRseTwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorICAgICA8c2VsZWN0IG5h
bWU9InNlbGVjdG9tYXRpYyIgaWQ9IjIiPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxl
Y3RlZCI+T25lPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+VHdvPC9vcHRpb24+CisgICAgICAg
IDxvcHRpb24+Rm91cjwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlN0aWxsIGxlYXJuaW5nIGhv
dyB0byBjb3VudCwgYXBwYXJlbnRseTwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorPC9mb3JtPgor
Cis8YSBocmVmPSIxLmh0bWwiPmhlbGxvIHdvcmxkPC9hPgorPGRpdiBuYW1lPSJkaXYxIj4KKyAg
PGEgaHJlZj0iMi5odG1sIj5oZWxsbyB3b3JsZDwvYT4KKyAgPGEgaHJlZj0iMi5odG1sIj5oZWxs
byB3b3JsZDwvYT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorPGh0bWw+CisgIDxib2R5Pgor
Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImZvcm0x
IiBzdHlsZT0iZGlzcGxheTogYmxvY2siPgorICAgIEhlcmUncyBhIGNoZWNrYm94OiA8aW5wdXQg
dHlwZT0iY2hlY2tib3giIGlkPSJjaGVja3kiIG5hbWU9ImNoZWNreSIgdmFsdWU9ImZ1cnJmdSIv
Pjxici8+CisgICAgPHNlbGVjdCBuYW1lPSJzZWxlY3RvbWF0aWMiIGlkPSIxIj4KKyAgICAgICAg
PG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiPk9uZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9u
PlR3bzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9w
dGlvbj5TdGlsbCBsZWFybmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAg
ICA8L3NlbGVjdD4KKzwvZm9ybT4KKworPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0
UGFnZS5odG1sIiBuYW1lPSJmb3JtMiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4KKyAgICBIZXJl
J3MgYSBjaGVja2JveDogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2t5IiBuYW1lPSJj
aGVja3kiIHZhbHVlPSJmdXJyZnUiLz48YnIvPgorICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21h
dGljIiBpZD0iMiI+CisgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIj5PbmU8L29w
dGlvbj4KKyAgICAgICAgPG9wdGlvbj5Ud288L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3Vy
PC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+U3RpbGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBh
cHBhcmVudGx5PC9vcHRpb24+CisgICAgPC9zZWxlY3Q+CisgICAgIDxzZWxlY3QgbmFtZT0ic2Vs
ZWN0b21hdGljIiBpZD0iMiI+CisgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIj5P
bmU8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Ud288L29wdGlvbj4KKyAgICAgICAgPG9wdGlv
bj5Gb3VyPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+U3RpbGwgbGVhcm5pbmcgaG93IHRvIGNv
dW50LCBhcHBhcmVudGx5PC9vcHRpb24+CisgICAgPC9zZWxlY3Q+Cis8L2Zvcm0+CisKKzxhIGhy
ZWY9IjEuaHRtbCI+aGVsbG8gd29ybGQ8L2E+Cis8ZGl2IG5hbWU9ImRpdjEiPgorICA8YSBocmVm
PSIyLmh0bWwiPmhlbGxvIHdvcmxkPC9hPgorICA8YSBocmVmPSIyLmh0bWwiPmhlbGxvIHdvcmxk
PC9hPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cis8aHRtbD4KKyAgPGJvZHk+CisKKzxmb3Jt
IG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgbmFtZT0iZm9ybTEiIHN0eWxl
PSJkaXNwbGF5OiBibG9jayI+CisgICAgSGVyZSdzIGEgY2hlY2tib3g6IDxpbnB1dCB0eXBlPSJj
aGVja2JveCIgaWQ9ImNoZWNreSIgbmFtZT0iY2hlY2t5IiB2YWx1ZT0iZnVycmZ1Ii8+PGJyLz4K
KyAgICA8c2VsZWN0IG5hbWU9InNlbGVjdG9tYXRpYyIgaWQ9IjEiPgorICAgICAgICA8b3B0aW9u
IHNlbGVjdGVkPSJzZWxlY3RlZCI+T25lPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+VHdvPC9v
cHRpb24+CisgICAgICAgIDxvcHRpb24+Rm91cjwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlN0
aWxsIGxlYXJuaW5nIGhvdyB0byBjb3VudCwgYXBwYXJlbnRseTwvb3B0aW9uPgorICAgIDwvc2Vs
ZWN0PgorPC9mb3JtPgorCis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0
bWwiIG5hbWU9ImZvcm0yIiBzdHlsZT0iZGlzcGxheTogYmxvY2siPgorICAgIEhlcmUncyBhIGNo
ZWNrYm94OiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVja3kiIG5hbWU9ImNoZWNreSIg
dmFsdWU9ImZ1cnJmdSIvPjxici8+CisgICAgPHNlbGVjdCBuYW1lPSJzZWxlY3RvbWF0aWMiIGlk
PSIyIj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiPk9uZTwvb3B0aW9uPgor
ICAgICAgICA8b3B0aW9uPlR3bzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPkZvdXI8L29wdGlv
bj4KKyAgICAgICAgPG9wdGlvbj5TdGlsbCBsZWFybmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50
bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKyAgICAgPHNlbGVjdCBuYW1lPSJzZWxlY3RvbWF0
aWMiIGlkPSIyIj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiPk9uZTwvb3B0
aW9uPgorICAgICAgICA8b3B0aW9uPlR3bzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPkZvdXI8
L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TdGlsbCBsZWFybmluZyBob3cgdG8gY291bnQsIGFw
cGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKzwvZm9ybT4KKworPGEgaHJlZj0iMS5o
dG1sIj5oZWxsbyB3b3JsZDwvYT4KKzxkaXYgbmFtZT0iZGl2MSI+CisgIDxhIGhyZWY9IjIuaHRt
bCI+aGVsbG8gd29ybGQ8L2E+CisgIDxhIGhyZWY9IjIuaHRtbCI+aGVsbG8gd29ybGQ8L2E+Cis8
L2Rpdj4KKworPHNwYW4gY2xhc3M9Im9uZSI+U3BhbiB3aXRoIGNsYXNzIG9mIG9uZTwvc3Bhbj4K
KzxkaXYgbmFtZT0iY2xhc3NlcyI+CisgIDxzcGFuIGNsYXNzPSJvbmUiPkZpbmQgbWU8L3NwYW4+
CisgIDxzcGFuIGNsYXNzPSJvbmUiPkFsc28gbWU8L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJvbmVv
dGhlciI+QnV0IG5vdCBtZTwvc3Bhbj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3Zl
cmZsb3ctYm9keS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvb3ZlcmZsb3ctYm9keS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yZDIyNjRjZTY0YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93LWJvZHkuaHRtbApAQCAt
MCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJvdmVyZmxvdzogYXV0
bzsiPgorPGhlYWQ+CisgICAgPHRpdGxlPlRoZSBWaXNpYmlsaXR5IG9mIEV2ZXJ5ZGF5IFRoaW5n
czwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0ib3ZlcmZsb3c6IGhpZGRlbjsiPgorPCEt
LSBXaGVuIHRoZSB0ZXN0IGlzIHJ1biwgdGhlIHdpbmRvdyBpcyByZXNpemVkIHRvIGxlc3MgdGhh
biA3MDAgcGl4ZWxzIGhpZ2ggLS0+Cis8cD5UaGlzIGltYWdlIGlzIGNvcHlyaWdodCBTaW1vbiBT
dGV3YXJ0IGFuZCBkb25hdGVkIHRvIHRoZSBTZWxlbml1bSBwcm9qZWN0IGZvciB1c2UgaW4gaXRz
IHRlc3Qgc3VpdGVzLgorPC9wPgorPGltZyBzcmM9ImJlYWNoLmpwZyIgaGVpZ2h0PSI0ODAiIHdp
ZHRoPSI2NDAiIGFsdD0iYSBuaWNlIGJlYWNoIj4KKworPCEtLSBTbyB0aGlzIGlzIG9mZiBzY3Jl
ZW4gLS0+Cis8aWZyYW1lIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMDAiIG5hbWU9InJlc3VsdHNG
cmFtZSIgc3JjPSJ4aHRtbFRlc3QuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9vdmVyZmxvdy94X2F1dG9feV9hdXRvLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X2F1dG9feV9hdXRvLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmOGE2NDcxOTQzCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
b3ZlcmZsb3cveF9hdXRvX3lfYXV0by5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVyZmxvdzwvdGl0bGU+
CisgIDxzdHlsZT4KKyAgICAjb3ZlciB7CisgICAgICB3aWR0aDo0MDBweDsKKyAgICAgIGhlaWdo
dDogMzAwcHg7CisgICAgICBvdmVyZmxvdy14OiBhdXRvOworICAgICAgb3ZlcmZsb3cteTogYXV0
bzsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0ib3ZlciI+
CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlkPSJyaWdodCIgb25j
bGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JpZ2h0LWNsaWNrZWQnKS5pbm5lclRleHQ9
J29rJyI+Q2xpY2sgcmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0i
aGVpZ2h0OiA1MDAwcHg7IHdpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIFJpZ2h0IGNsaWNrZWQ6IDxz
cGFuIGlkPSJyaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJvdHRvbSBjbGlja2Vk
OiA8c3BhbiBpZD0iYm90dG9tLWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgICAgQm90dG9tLXJp
Z2h0IGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tcmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+
CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRp
diBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlk
PSJib3R0b20tcmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3R0b20t
cmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0b20tcmlnaHQ8L2E+PC9k
aXY+CisgICAgPC9kaXY+CisgICAgPGEgaHJlZj0iIyIgaWQ9ImJvdHRvbSIgb25jbGljaz0iZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNs
aWNrIGJvdHRvbTwvYT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94
X2F1dG9feV9oaWRkZW4uaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL292ZXJmbG93L3hfYXV0b195X2hpZGRlbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NmZkNzUwYTZiNAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93
L3hfYXV0b195X2hpZGRlbi5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVyZmxvdzwvdGl0bGU+CisgIDxz
dHlsZT4KKyAgICAjb3ZlciB7CisgICAgICB3aWR0aDo0MDBweDsKKyAgICAgIGhlaWdodDogMzAw
cHg7CisgICAgICBvdmVyZmxvdy14OiBhdXRvOworICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwor
ICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJvdmVyIj4KKyAg
ICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+CisgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDog
MTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJlZj0iIyIgaWQ9InJpZ2h0IiBvbmNsaWNr
PSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2sn
Ij5DbGljayByaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJoZWln
aHQ6IDUwMDBweDsgd2lkdGg6IDUwMDBweDsiPgorICAgICAgUmlnaHQgY2xpY2tlZDogPHNwYW4g
aWQ9InJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgICAgQm90dG9tIGNsaWNrZWQ6IDxz
cGFuIGlkPSJib3R0b20tY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgICBCb3R0b20tcmlnaHQg
Y2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1yaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+CisgICAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJlZj0iIyIgaWQ9ImJv
dHRvbS1yaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1yaWdo
dC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIGJvdHRvbS1yaWdodDwvYT48L2Rpdj4K
KyAgICA8L2Rpdj4KKyAgICA8YSBocmVmPSIjIiBpZD0iYm90dG9tIiBvbmNsaWNrPSJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLWNsaWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sg
Ym90dG9tPC9hPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93L3hfYXV0
b195X3Njcm9sbC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvb3ZlcmZsb3cveF9hdXRvX3lfc2Nyb2xsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZmMWQ5MGI2ZGYwCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9h
dXRvX3lfc2Nyb2xsLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3aXRoIG92ZXJmbG93PC90aXRsZT4KKyAgPHN0eWxl
PgorICAgICNvdmVyIHsKKyAgICAgIHdpZHRoOjQwMHB4OworICAgICAgaGVpZ2h0OiAzMDBweDsK
KyAgICAgIG92ZXJmbG93LXg6IGF1dG87CisgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAg
fQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9Im92ZXIiPgorICAgIDxk
aXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAl
OyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIjIiBpZD0icmlnaHQiIG9uY2xpY2s9ImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaWdodC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNs
aWNrIHJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImhlaWdodDog
NTAwMHB4OyB3aWR0aDogNTAwMHB4OyI+CisgICAgICBSaWdodCBjbGlja2VkOiA8c3BhbiBpZD0i
cmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgICBCb3R0b20gY2xpY2tlZDogPHNwYW4g
aWQ9ImJvdHRvbS1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJvdHRvbS1yaWdodCBjbGlj
a2VkOiA8c3BhbiBpZD0iYm90dG9tLXJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgIDwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIjIiBpZD0iYm90dG9t
LXJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLXJpZ2h0LWNs
aWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90dG9tLXJpZ2h0PC9hPjwvZGl2PgorICAg
IDwvZGl2PgorICAgIDxhIGhyZWY9IiMiIGlkPSJib3R0b20iIG9uY2xpY2s9ImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdib3R0b20tY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0
b208L2E+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9oaWRkZW5f
eV9hdXRvLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9vdmVyZmxvdy94X2hpZGRlbl95X2F1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMjRkZDE5MjgzMDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X2hpZGRl
bl95X2F1dG8uaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgIDx0aXRsZT5QYWdlIHdpdGggb3ZlcmZsb3c8L3RpdGxlPgorICA8c3R5bGU+Cisg
ICAgI292ZXIgeworICAgICAgd2lkdGg6NDAwcHg7CisgICAgICBoZWlnaHQ6IDMwMHB4OworICAg
ICAgb3ZlcmZsb3cteDogaGlkZGVuOworICAgICAgb3ZlcmZsb3cteTogYXV0bzsKKyAgICB9Cisg
IDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0ib3ZlciI+CisgICAgPGRpdiBz
dHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IHRl
eHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlkPSJyaWdodCIgb25jbGljaz0iZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3JpZ2h0LWNsaWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sg
cmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAw
cHg7IHdpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIFJpZ2h0IGNsaWNrZWQ6IDxzcGFuIGlkPSJyaWdo
dC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJvdHRvbSBjbGlja2VkOiA8c3BhbiBpZD0i
Ym90dG9tLWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgICAgQm90dG9tLXJpZ2h0IGNsaWNrZWQ6
IDxzcGFuIGlkPSJib3R0b20tcmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgPC9kaXY+
CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlkPSJib3R0b20tcmln
aHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3R0b20tcmlnaHQtY2xpY2tl
ZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0b20tcmlnaHQ8L2E+PC9kaXY+CisgICAgPC9k
aXY+CisgICAgPGEgaHJlZj0iIyIgaWQ9ImJvdHRvbSIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JvdHRvbS1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIGJvdHRvbTwv
YT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X2hpZGRlbl95X2hp
ZGRlbi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvb3ZlcmZsb3cveF9oaWRkZW5feV9oaWRkZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uY2FlNTY2NTc4ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X2hpZGRl
bl95X2hpZGRlbi5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVyZmxvdzwvdGl0bGU+CisgIDxzdHlsZT4K
KyAgICAjb3ZlciB7CisgICAgICB3aWR0aDo0MDBweDsKKyAgICAgIGhlaWdodDogMzAwcHg7Cisg
ICAgICBvdmVyZmxvdy14OiBoaWRkZW47CisgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgICAg
fQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9Im92ZXIiPgorICAgIDxk
aXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAl
OyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIjIiBpZD0icmlnaHQiIG9uY2xpY2s9ImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaWdodC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNs
aWNrIHJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImhlaWdodDog
NTAwMHB4OyB3aWR0aDogNTAwMHB4OyI+CisgICAgICBSaWdodCBjbGlja2VkOiA8c3BhbiBpZD0i
cmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgICBCb3R0b20gY2xpY2tlZDogPHNwYW4g
aWQ9ImJvdHRvbS1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJvdHRvbS1yaWdodCBjbGlj
a2VkOiA8c3BhbiBpZD0iYm90dG9tLXJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgIDwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIjIiBpZD0iYm90dG9t
LXJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLXJpZ2h0LWNs
aWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90dG9tLXJpZ2h0PC9hPjwvZGl2PgorICAg
IDwvZGl2PgorICAgIDxhIGhyZWY9IiMiIGlkPSJib3R0b20iIG9uY2xpY2s9ImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdib3R0b20tY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0
b208L2E+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9oaWRkZW5f
eV9zY3JvbGwuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL292ZXJmbG93L3hfaGlkZGVuX3lfc2Nyb2xsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0ZmZhMzk3MGZiCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9o
aWRkZW5feV9zY3JvbGwuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgIDx0aXRsZT5QYWdlIHdpdGggb3ZlcmZsb3c8L3RpdGxlPgorICA8c3R5
bGU+CisgICAgI292ZXIgeworICAgICAgd2lkdGg6NDAwcHg7CisgICAgICBoZWlnaHQ6IDMwMHB4
OworICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOworICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwor
ICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJvdmVyIj4KKyAg
ICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+CisgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDog
MTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJlZj0iIyIgaWQ9InJpZ2h0IiBvbmNsaWNr
PSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2sn
Ij5DbGljayByaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJoZWln
aHQ6IDUwMDBweDsgd2lkdGg6IDUwMDBweDsiPgorICAgICAgUmlnaHQgY2xpY2tlZDogPHNwYW4g
aWQ9InJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgICAgQm90dG9tIGNsaWNrZWQ6IDxz
cGFuIGlkPSJib3R0b20tY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgICBCb3R0b20tcmlnaHQg
Y2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1yaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+CisgICAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJlZj0iIyIgaWQ9ImJv
dHRvbS1yaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1yaWdo
dC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIGJvdHRvbS1yaWdodDwvYT48L2Rpdj4K
KyAgICA8L2Rpdj4KKyAgICA8YSBocmVmPSIjIiBpZD0iYm90dG9tIiBvbmNsaWNrPSJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLWNsaWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sg
Ym90dG9tPC9hPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93L3hfc2Ny
b2xsX3lfYXV0by5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvb3ZlcmZsb3cveF9zY3JvbGxfeV9hdXRvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0MjVhMmE4YTVlCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9z
Y3JvbGxfeV9hdXRvLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3aXRoIG92ZXJmbG93PC90aXRsZT4KKyAgPHN0eWxl
PgorICAgICNvdmVyIHsKKyAgICAgIHdpZHRoOjQwMHB4OworICAgICAgaGVpZ2h0OiAzMDBweDsK
KyAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDsKKyAgICAgIG92ZXJmbG93LXk6IGF1dG87CisgICAg
fQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9Im92ZXIiPgorICAgIDxk
aXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAl
OyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIjIiBpZD0icmlnaHQiIG9uY2xpY2s9ImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaWdodC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNs
aWNrIHJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImhlaWdodDog
NTAwMHB4OyB3aWR0aDogNTAwMHB4OyI+CisgICAgICBSaWdodCBjbGlja2VkOiA8c3BhbiBpZD0i
cmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgICBCb3R0b20gY2xpY2tlZDogPHNwYW4g
aWQ9ImJvdHRvbS1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJvdHRvbS1yaWdodCBjbGlj
a2VkOiA8c3BhbiBpZD0iYm90dG9tLXJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgIDwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIjIiBpZD0iYm90dG9t
LXJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLXJpZ2h0LWNs
aWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90dG9tLXJpZ2h0PC9hPjwvZGl2PgorICAg
IDwvZGl2PgorICAgIDxhIGhyZWY9IiMiIGlkPSJib3R0b20iIG9uY2xpY2s9ImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdib3R0b20tY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0
b208L2E+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9zY3JvbGxf
eV9oaWRkZW4uaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL292ZXJmbG93L3hfc2Nyb2xsX3lfaGlkZGVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhNmZmNTk1ZDNiCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9z
Y3JvbGxfeV9oaWRkZW4uaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgIDx0aXRsZT5QYWdlIHdpdGggb3ZlcmZsb3c8L3RpdGxlPgorICA8c3R5
bGU+CisgICAgI292ZXIgeworICAgICAgd2lkdGg6NDAwcHg7CisgICAgICBoZWlnaHQ6IDMwMHB4
OworICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsOworICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwor
ICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJvdmVyIj4KKyAg
ICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+CisgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDog
MTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJlZj0iIyIgaWQ9InJpZ2h0IiBvbmNsaWNr
PSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2sn
Ij5DbGljayByaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJoZWln
aHQ6IDUwMDBweDsgd2lkdGg6IDUwMDBweDsiPgorICAgICAgUmlnaHQgY2xpY2tlZDogPHNwYW4g
aWQ9InJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgICAgQm90dG9tIGNsaWNrZWQ6IDxz
cGFuIGlkPSJib3R0b20tY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgICBCb3R0b20tcmlnaHQg
Y2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1yaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+CisgICAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJlZj0iIyIgaWQ9ImJv
dHRvbS1yaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1yaWdo
dC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIGJvdHRvbS1yaWdodDwvYT48L2Rpdj4K
KyAgICA8L2Rpdj4KKyAgICA8YSBocmVmPSIjIiBpZD0iYm90dG9tIiBvbmNsaWNrPSJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLWNsaWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sg
Ym90dG9tPC9hPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93L3hfc2Ny
b2xsX3lfc2Nyb2xsLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9vdmVyZmxvdy94X3Njcm9sbF95X3Njcm9sbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmE4MDc0MmFkNwotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93
L3hfc2Nyb2xsX3lfc2Nyb2xsLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3aXRoIG92ZXJmbG93PC90aXRsZT4KKyAg
PHN0eWxlPgorICAgICNvdmVyIHsKKyAgICAgIHdpZHRoOjQwMHB4OworICAgICAgaGVpZ2h0OiAz
MDBweDsKKyAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDsKKyAgICAgIG92ZXJmbG93LXk6IHNjcm9s
bDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0ib3ZlciI+
CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlkPSJyaWdodCIgb25j
bGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JpZ2h0LWNsaWNrZWQnKS5pbm5lclRleHQ9
J29rJyI+Q2xpY2sgcmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0i
aGVpZ2h0OiA1MDAwcHg7IHdpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIFJpZ2h0IGNsaWNrZWQ6IDxz
cGFuIGlkPSJyaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJvdHRvbSBjbGlja2Vk
OiA8c3BhbiBpZD0iYm90dG9tLWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgICAgQm90dG9tLXJp
Z2h0IGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tcmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+
CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRp
diBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlk
PSJib3R0b20tcmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3R0b20t
cmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0b20tcmlnaHQ8L2E+PC9k
aXY+CisgICAgPC9kaXY+CisgICAgPGEgaHJlZj0iIyIgaWQ9ImJvdHRvbSIgb25jbGljaz0iZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNs
aWNrIGJvdHRvbTwvYT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9wYWdlV2l0aE9u
QmVmb3JlVW5sb2FkTWVzc2FnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvcGFnZVdpdGhPbkJlZm9yZVVubG9hZE1lc3NhZ2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2I1OTcwN2VkM2MKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9wYWdlV2l0aE9uQmVmb3JlVW5sb2FkTWVzc2FnZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDwhLS0gCisgICAgVGhpcyBwYWdl
IGRpZmZlcnMgZnJvbSBwYWdlV2l0aE9uVW5sb2FkLmh0bWwgaW4gdGhhdCBpdCByZXR1cm5zIGEg
c3RyaW5nIGluIHRoZQorICAgIGV2ZW50IGhhbmRsZXIsIHdoaWNoIGNhdXNlcyBhIGRpZmZlcmVu
dCB0eXBlIG9mIGFsZXJ0IHRvIGFwcGVhciAodGhlICJTdGF5IG9uCisgICAgcGFnZS9MZWF2ZSBj
dXJyZW50IHBhZ2UiIGFsZXJ0KS4KKyAgICAtLT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisgICAgICBmdW5jdGlvbiBvbkJlZm9yZVVubG9hZEhhbmRsZXIoKSB7CisgICAg
ICAgIHJldHVybiAiVGhpcyBpcyBmb3IgV2ViRHJpdmVyIHdpdGggb25iZWZvcmV1bmxvYWQgZXZl
bnQgaGFuZGxlci4iOworICAgICAgfQorICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gb25C
ZWZvcmVVbmxvYWRIYW5kbGVyOworICAgIDwvc2NyaXB0PgorICAgIDx0aXRsZT5QYWdlIHdpdGgg
T25CZWZvcmVVbmxvYWQgaGFuZGxlcjwvdGl0bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
PHA+UGFnZSB3aXRoIG9uYmVmb3JldW5sb2FkIGV2ZW50IGhhbmRsZXIuIDxhIGlkPSJuYXZpZ2F0
ZSIgaHJlZj0iYWxlcnRzLmh0bWwiPkNsaWNrIGhlcmUgdG8gbmF2aWdhdGUgdG8gYW5vdGhlciBw
YWdlLjwvYT48L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3BhZ2VXaXRoT25Mb2FkLmh0bWwg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9wYWdlV2l0
aE9uTG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzY0
NGZmOTU5MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3BhZ2VXaXRoT25Mb2FkLmh0bWwKQEAgLTAsMCArMSw2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJqYXZhc2NyaXB0OmFsZXJ0KCdv
bmxvYWQnKSI+Cis8cD5QYWdlIHdpdGggb25sb2FkIGV2ZW50IGhhbmRsZXI8L3A+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9wYWdlV2l0aE9uVW5sb2FkLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9wYWdlV2l0aE9uVW5sb2FkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYwNzAzNDFlMmYyCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
cGFnZVdpdGhPblVubG9hZC5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5IG9uYmVmb3JldW5sb2FkPSJhbGVydCgnb251bmxvYWQnKSI+Cis8cD5QYWdl
IHdpdGggb251bmxvYWQgZXZlbnQgaGFuZGxlcjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Bh
Z2Vfd2l0aF9saW5rX3RvX3Nsb3dfbG9hZGluZ19wYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9wYWdlX3dpdGhfbGlua190b19zbG93X2xv
YWRpbmdfcGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5l
YTk0ZjhlYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3BhZ2Vfd2l0aF9saW5rX3RvX3Nsb3dfbG9hZGluZ19wYWdl
Lmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
YSBpZD0ibGluay10by1zbG93LWxvYWRpbmctcGFnZSIgaHJlZj0ic2xlZXA/dGltZT01Ij5sb2Fk
IGEgc2xvdyBwYWdlPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcGxhaW4udHh0IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcGxhaW4udHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzE4Yzg2YjM1NwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L3BsYWluLnR4dApAQCAtMCwwICsxIEBACitUZXN0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvcHJveHkvcGFnZTEuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3Byb3h5L3BhZ2UxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjE4MTBmMWNkZmRiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcHJveHkvcGFnZTEuaHRtbApA
QCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiPgorPG1ldGEgaHR0cC1l
cXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KKzx0aXRsZT5QYWdlIDE8
L3RpdGxlPgorPHA+VGhlIDxjb2RlPm5leHQ8L2NvZGU+IHF1ZXJ5IHBhcmFtIG11c3QgYmUgdGhl
IFVSTCBmb3IgdGhlIG5leHQgcGFnZSB0bworbGluayB0by4KKzxzY3JpcHQ+CisgIHZhciBtYXRj
aCA9IGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaC5tYXRjaCgvbmV4dD0oLiopLyk7CisgIGlmICht
YXRjaCAmJiBtYXRjaC5sZW5ndGggPT0gMikgeworICAgIHZhciBuZXh0ID0gZGVjb2RlVVJJQ29t
cG9uZW50KG1hdGNoWzFdKTsKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2EnKTsKKyAgICBsaW5rLmlubmVyVGV4dCA9ICdOZXh0ISc7CisgICAgbGluay50ZXh0Q29udGVu
dCA9ICdOZXh0ISc7CisgICAgbGluay5pZCA9ICduZXh0JzsKKyAgICBsaW5rLmhyZWYgPSBuZXh0
ICsgJz9uZXh0PScgKyBlbmNvZGVVUklDb21wb25lbnQoCisgICAgICAgICdodHRwOi8vJyArIGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgKworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFt
ZS5yZXBsYWNlKCdwYWdlMS5odG1sJywgJ3BhZ2UzLmh0bWwnKSk7CisgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChsaW5rKTsKKyAgfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9wcm94eS9wYWdlMi5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcHJveHkv
cGFnZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDgyNmYx
NzQyYjUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9wcm94eS9wYWdlMi5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7Y2hhcnNldD1VVEYtOCI+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUi
IGNvbnRlbnQ9IklFPWVkZ2UiPgorPHRpdGxlPlBhZ2UgMjwvdGl0bGU+CitUaGlzIHBhZ2UgaXMg
YSBtaWRkbGUgbWFuIGZvciByZWZlcnJlciB0ZXN0cy4KK1RoaXMgcGFnZSB3aWxsIGluY2x1ZGUg
YSBsaW5rIHRvIGEgIm5leHQiIHBhZ2UgaWYgdGhlIDxjb2RlPm5leHQ8L2NvZGU+IHF1ZXJ5Citw
YXJhbWV0ZXIsIG9yIHRoZSA8Y29kZT5kb2N1bWVudC5yZWZlcnJlcjwvY29kZT4gaXMgc2V0Lgor
PHA+PGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImZvcndhcmQiIHZhbHVlPSJGb3J3YXJkIiBvbmNs
aWNrPSJoaXN0b3J5LmdvKDEpIi8+Cis8c2NyaXB0PgorICB2YXIgbWF0Y2ggPSBkb2N1bWVudC5s
b2NhdGlvbi5zZWFyY2gubWF0Y2goL25leHQ9KC4qKS8pOworICB2YXIgbmV4dCA9IGRvY3VtZW50
LnJlZmVycmVyIHx8ICcnOworICBpZiAobWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID09IDIpIHsKKyAg
ICBuZXh0ID0gZGVjb2RlVVJJQ29tcG9uZW50KG1hdGNoWzFdKTsKKyAgfQorCisgIGlmIChuZXh0
KSB7CisgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CisgICAgbGlu
ay5pbm5lclRleHQgPSAnTmV4dCEnOworICAgIGxpbmsudGV4dENvbnRlbnQgPSAnTmV4dCEnOwor
ICAgIGxpbmsuaWQgPSAnbmV4dCc7CisgICAgbGluay5ocmVmID0gbmV4dDsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGxpbmspOworICB9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Byb3h5L3BhZ2Uz
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9w
cm94eS9wYWdlMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y
NzA0OGY3Mjk0ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Byb3h5L3BhZ2UzLmh0bWwKQEAgLTAsMCArMSw1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRp
YmxlIiBjb250ZW50PSJJRT1lZGdlIj4KKzx0aXRsZT5QYWdlIDM8L3RpdGxlPgorPHA+PGlucHV0
IHR5cGU9ImJ1dHRvbiIgaWQ9ImJhY2siIHZhbHVlPSJCYWNrIiBvbmNsaWNrPSJoaXN0b3J5Lmdv
KC0xKSIvPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvcmVhZE9ubHlQYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9yZWFkT25seVBhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGYyNTdmZGM3MDYKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9yZWFkT25seVBh
Z2UuaHRtbApAQCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxib2R5PgorPGlucHV0IGlkPSJ3cml0
YWJsZVRleHRJbnB1dCIgdHlwZT0idGV4dCIgIHZhbHVlPSJUZXN0Ii8+CisKKzxpbnB1dCBpZD0i
cmVhZE9ubHlUZXh0SW5wdXQiIHR5cGU9InRleHQiIHJlYWRvbmx5IHZhbHVlPSJUZXN0Ii8+CisK
KzxpbnB1dCBpZD0idGV4dElucHV0bm90ZW5hYmxlZCIgdHlwZT0idGV4dCIgZGlzYWJsZWQ9InRy
dWUiIHZhbHVlPSJUZXN0Ii8+CisKKzx0ZXh0YXJlYSBpZD0id3JpdGFibGVUZXh0QXJlYSIgcm93
cz0iMiIgY29scz0iMjAiPgorVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IGFyZWEgd2hpY2ggaXMgc3Vw
cG9zZWQgdG8gYmUgY2xlYXJlZAorPC90ZXh0YXJlYT4KKworPHRleHRhcmVhIGlkPSJ0ZXh0QXJl
YVJlYWRPbmx5IiByZWFkb25seSByb3dzPSI1IiBjb2xzPSIyMCI+Cit0ZXh0IGFyZWEgd2hpY2gg
aXMgbm90IHN1cHBvc2VkIHRvIGJlIGNsZWFyZWQ8L3RleHRhcmVhPgorCis8dGV4dGFyZWEgcm93
cz0iNSIgaWQ9InRleHRBcmVhTm90ZW5hYmxlZCIgZGlzYWJsZWQ9InRydWUiIGNvbHM9IjIwIj4K
K3RleHQgYXJlYSB3aGljaCBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgY2xlYXJlZDwvdGV4dGFyZWE+
CisKKzxkaXYgaWQ9ImNvbnRlbnQtZWRpdGFibGUiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+PGgx
PlRoaXM8L2gxPjxoMj5pcyBhPC9oMj48cD5jb250ZW50RWRpdGFibGUgYXJlYTwvcD48L2Rpdj4K
KworPGRpdiBpZD0iY29udGVudC1lZGl0YWJsZS1ibGFuayIgY29udGVudEVkaXRhYmxlPSJ0cnVl
IiBzdHlsZT0iaGVpZ2h0OjUwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcmVj
dGFuZ2xlcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvcmVjdGFuZ2xlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi44YmEyMzM5ODQ5OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3JlY3RhbmdsZXMuaHRtbApAQCAtMCwwICsxLDQw
IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRs
ZT5SZWN0YW5nbGVzPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAg
ICBkaXYgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbWFy
Z2luOiAwOworICAgICAgICAgICAgYm9yZGVyOiAwOworICAgICAgICAgICAgcGFkZGluZzogMDsK
KyAgICAgICAgfQorICAgICAgICAjcjEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwcHg7CisgICAgICAgICAgICB0b3A6IDEwcHg7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAg
ICAgIH0KKyAgICAgICAgI3IyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
KyAgICAgICAgICAgIGxlZnQ6IDEwLjlweDsKKyAgICAgICAgICAgIHRvcDogMTAuMXB4OworICAg
ICAgICAgICAgd2lkdGg6IDQ4LjY2NjY2NjY2N3B4OworICAgICAgICAgICAgaGVpZ2h0OiA0OS4z
MzMzMzMzMzNweDsKKyAgICAgICAgfQorICAgICAgICAjcjMgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogeWVsbG93OworICAgICAgICAgICAgbGVmdDogNjBweDsKKyAgICAgICAgICAg
IHRvcDogMTBweDsKKyAgICAgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0
OiAyNXB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKyAgICA8Ym9keT4KKyAg
ICAgICAgPGRpdiBpZD0icjEiPnIxPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InIyIj5yMjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJyMyI+cjM8L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9yZXN1bHRQYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9yZXN1bHRQYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjk0ZjNlMjQ2ZTA1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcmVzdWx0UGFnZS5odG1sCkBAIC0wLDAg
KzEsMjUgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPldlIEFycml2ZSBIZXJlPC90aXRs
ZT4KKzwvaGVhZD4KKzxib2R5PgorCis8cCBpZD0iZ3JlZXRpbmciPlN1Y2Nlc3MhPC9wPgorCis8
ZGl2PgorICAgIDxoMT5MaXN0IG9mIHN0dWZmPC9oMT4KKyAgICA8b2w+CisgICAgICAgIDxsaSBj
bGFzcz0iaXRlbXMiPkl0ZW0gMTwvbGk+CisgICAgICAgIDxsaT5JdGVtIDI8L2xpPgorICAgIDwv
b2w+Cis8L2Rpdj4KKzxkaXY+CisgICAgPGgxPkFsbW9zdCBlbXB0eTwvaDE+Cis8L2Rpdj4KKwor
PHNjcmlwdCBsYW5ndWFnZT0iSmF2YXNjcmlwdCI+CisgICAgZG9jdW1lbnQud3JpdGUoIjxwPldp
bmRvdyBuYW1lIGlzOiAiICsgd2luZG93Lm5hbWUgKyAiPC9wPiIpOworPC9zY3JpcHQ+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3JpY2hfdGV4dC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcmljaF90ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE0MmU0M2FhYjk5Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcmljaF90ZXh0
Lmh0bWwKQEAgLTAsMCArMSwxNjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9E
VEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICAgICJodHRwOi8vd3d3LnczLm9y
Zy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KK2Z1bmN0aW9uIHNldEtleXByZXNzSGFuZGxlciAoZWwsIGtleUhhbmRs
ZXIpIHsKKyAgaWYgKGVsLmFkZEV2ZW50TGlzdGVuZXIpIHsKKyAgICBlbC5hZGRFdmVudExpc3Rl
bmVyKCdrZXlwcmVzcycsIGtleUhhbmRsZXIsIGZhbHNlKTsKKyAgICBlbC5hZGRFdmVudExpc3Rl
bmVyKCdrZXlkb3duJywga2V5SGFuZGxlciwgZmFsc2UpOworICAgIGVsLmFkZEV2ZW50TGlzdGVu
ZXIoJ2tleXVwJywga2V5SGFuZGxlciwgZmFsc2UpOworICB9IGVsc2UgeworICAgIGVsLmF0dGFj
aEV2ZW50KCdvbmtleXByZXNzJywga2V5SGFuZGxlcik7CisgICAgZWwuYXR0YWNoRXZlbnQoJ29u
a2V5ZG93bicsIGtleUhhbmRsZXIpOworICAgIGVsLmF0dGFjaEV2ZW50KCdvbmtleXVwJywga2V5
SGFuZGxlcik7CisgIH0KK30KKworZnVuY3Rpb24gb3V0cHV0ICh0ZXh0KSB7CisgIHZhciBkaXYg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVidWdPdXRwdXQnKTsKKyAgZGl2LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKKyAgZGl2LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOworfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24gKCkgeworICAvLyBTdXBlciBkdW1iIGJyb3dzZXIgZGV0ZWN0aW9uCisgIHZhciBpc0lFID0g
d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuc2VhcmNoKCdNU0lFJykgIT0gLTEKKyAgICB8fCB3
aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goJ1RyaWRlbnQnKSAhPSAtMTsKKworICB2
YXIgZWRpdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRGcmFtZScpLmNvbnRl
bnRXaW5kb3c7CisgIHNldEtleXByZXNzSGFuZGxlcihlZGl0RnJhbWUuZG9jdW1lbnQsIHByaW50
RXZlbnREYXRhKTsKKyAgaWYgKGlzSUUpIHsKKyAgICBlZGl0RnJhbWUuZG9jdW1lbnQuYm9keS5j
b250ZW50RWRpdGFibGUgPSB0cnVlOworICB9IGVsc2UgeworICAgIGVkaXRGcmFtZS5kb2N1bWVu
dC5kZXNpZ25Nb2RlID0gJ09uJzsKKyAgICAvLyBBdHRhY2ggYSBuYW1lIHRvIHRoZSBjb250YWlu
aW5nIEhUTUwgZWxlbWVudAorICAgIGVkaXRGcmFtZS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaHRtbCIpWzBdLmlkID0gImZyYW1lSHRtbCI7CisgIH0KKworICB2YXIgZWRpdERpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0RGl2Jyk7CisgIHNldEtleXByZXNzSGFuZGxl
cihlZGl0RGl2LCBwcmludEV2ZW50RGF0YSk7CisgIGVkaXREaXYuY29udGVudEVkaXRhYmxlID0g
dHJ1ZTsKKworICBlZGl0RnJhbWUuZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW4gPSAxOworICBl
ZGl0RnJhbWUuZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nID0gMDsKKyAgZWRpdEZyYW1lLmRv
Y3VtZW50LmJvZHkuaWQgPSAndGhlQm9keSc7CisKKyAgZWRpdERpdi5zdHlsZS5tYXJnaW4gPSAx
OworICBlZGl0RGl2LnN0eWxlLnBhZGRpbmcgPSAwOworCisgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsK
KyAgICBmdW5jdGlvbiB3cml0ZSh0ZXh0KSB7CisgICAgICBwcmUuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOworICAgICAgcHJlLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOworICAgIH0KKworICAgIHdyaXRlKCdmcmFtZS5jb250ZW50
V2luZG93LmRvY3VtZW50LmRlc2lnbk1vZGU6ICcgKworICAgICAgZWRpdEZyYW1lLmRvY3VtZW50
LmRlc2lnbk1vZGUpOworICAgIHdyaXRlKCdmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJv
ZHkuY29udGVudEVkaXRhYmxlOiAnICsKKyAgICAgIGVkaXRGcmFtZS5kb2N1bWVudC5ib2R5LmNv
bnRlbnRFZGl0YWJsZSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRGcmFtZUlu
Zm8nKS5hcHBlbmRDaGlsZChwcmUpOworCisgICAgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgncHJlJyk7CisgICAgd3JpdGUoJ2Rpdi5vd25lckRvY3VtZW50LmRlc2lnbk1vZGU6ICcgKwor
ICAgICAgZWRpdERpdi5vd25lckRvY3VtZW50LmRlc2lnbk1vZGUpOworICAgIHdyaXRlKCdkaXYu
b3duZXJEb2N1bWVudC5ib2R5LmNvbnRlbnRFZGl0YWJsZTogJyArCisgICAgICBlZGl0RGl2Lm93
bmVyRG9jdW1lbnQuYm9keS5jb250ZW50RWRpdGFibGUpOworICAgIHdyaXRlKCdkaXYuY29udGVu
dEVkaXRhYmxlOiAnICsKKyAgICAgIGVkaXREaXYuY29udGVudEVkaXRhYmxlKTsKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdERpdkluZm8nKS5hcHBlbmRDaGlsZChwcmUpOworICB9
LCAwKTsKK307CisKK2Z1bmN0aW9uIGlzRGVmKG9iaiwgcHJvcCkgeworICByZXR1cm4gdHlwZW9m
IG9ialtwcm9wXSAhPSAndW5kZWZpbmVkJzsKK30KKworZnVuY3Rpb24gcHJpbnRFdmVudERhdGEo
ZSkgeworICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7CisKKyAgZnVuY3Rpb24gd3JpdGUoaWQsIHRl
eHQsIG9wdF9jb2xvcikgeworICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk
KTsKKyAgICBlbC5pbm5lckhUTUwgPSAnWycgKyB0ZXh0ICsgJ10nOworICAgIGVsLnN0eWxlLmJh
Y2tncm91bmRDb2xvciA9IG9wdF9jb2xvciB8fCAnd2hpdGUnOworICB9CisgIHdyaXRlKCd0eXBl
JywgZS50eXBlKTsKKyAgd3JpdGUoJ3RhZ05hbWUnLCBpc0RlZihlLCAndGFyZ2V0JykgPyBlLnRh
cmdldC50YWdOYW1lIDogZS5zcmNFbGVtZW50LnRhZ05hbWUpOworICB3cml0ZSgndGFnSWQnLCBp
c0RlZihlLCAndGFyZ2V0JykgPyBlLnRhcmdldC5pZCA6IGUuc3JjRWxlbWVudC5pZCk7CisgIHdy
aXRlKCdrZXlpZGVudGlmaWVyJywgaXNEZWYoZSwgJ2tleUlkZW50aWZpZXInKSA/IGUua2V5SWRl
bnRpZmllciA6ICduL2EnKTsKKyAgd3JpdGUoJ2tleWxvY2F0aW9uJywgaXNEZWYoZSwgJ2tleUxv
Y2F0aW9uJykgPyBlLmtleUxvY2F0aW9uIDogJ24vYScpOworICB3cml0ZSgna2V5Y29kZScsIGUu
a2V5Q29kZSk7CisgIHdyaXRlKCdjaGFyY29kZScsIGUuY2hhckNvZGUpOworICB3cml0ZSgnd2hp
Y2gnLCBlLndoaWNoKTsKKyAgaWYgKGlzRGVmKGUsICdpc1RydXN0ZWQnKSkgeworICAgIHdyaXRl
KCdpc3RydXN0ZWQnLCBlLmlzVHJ1c3RlZCwgZS5pc1RydXN0ZWQgPyAnI2FmYScgOiAnI2ZhYScp
OworICB9IGVsc2UgeworICAgIHdyaXRlKCdpc3RydXN0ZWQnLCAnbi9hJyk7CisgIH0KKyAgd3Jp
dGUoJ2FsdCcsIGUuYWx0S2V5KTsKKyAgd3JpdGUoJ2N0cmwnLCBlLmN0cmxLZXkpOworICB3cml0
ZSgnc2hpZnQnLCBlLnNoaWZ0S2V5KTsKKyAgd3JpdGUoJ21ldGEnLCBlLm1ldGFLZXkpOworCisg
IHZhciBzID0gIiI7CisgIGZvciAodmFyIGkgaW4gZSkgeworICAgIHMgKz0gaSArICI6ICIgKyBl
W2ldICsgIiAgICI7CisgIH0KKyAgLy9hbGVydChzKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2PgorICA8ZGl2IGlkPSJidXR0ZXIiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OiAjZmZhOyI+CisgIDwvZGl2PgorICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgPHRyIHZh
bGlnbj0idG9wIj4KKyAgICAgICAgPHRkIHdpZHRoPSI1MCUiPgorICAgICAgICAgIDxkaXY+SUZS
QU1FPC9kaXY+CisgICAgICAgICAgPGlmcmFtZSBpZD0iZWRpdEZyYW1lIiBuYW1lPSJlZGl0RnJh
bWUiIHNyYz0iIiBoZWlnaHQ9IjIwMHB4IiB3aWR0aD0iMzAwcHgiIGZyYW1lYm9yZGVyPSIwIiBz
dHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij4KKyAgICAgICAgICA8L2lmcmFtZT4KKyAg
ICAgICAgICA8ZGl2IGlkPSJlZGl0RnJhbWVJbmZvIj4KKyAgICAgICAgICA8cHJlPmZyYW1lLmNv
bnRlbnRXaW5kb3cuZG9jdW1lbnQuZGVzaWduTW9kZTogb248YnI+ZnJhbWUuY29udGVudFdpbmRv
dy5kb2N1bWVudC5ib2R5LmNvbnRlbnRFZGl0YWJsZTogZmFsc2U8YnI+PC9wcmU+PC9kaXY+Cisg
ICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8ZGl2PkRJVjwvZGl2PgorICAg
ICAgICAgIDxkaXYgaWQ9ImVkaXREaXYiIHN0eWxlPSJib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJv
cmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1s
ZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItcmlnaHQtc3R5
bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtc3R5bGU6
IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiBibGFjazsgYm9yZGVyLXJpZ2h0LWNvbG9yOiBibGFj
azsgYm9yZGVyLWJvdHRvbS1jb2xvcjogYmxhY2s7IGJvcmRlci1sZWZ0LWNvbG9yOiBibGFjazsg
aGVpZ2h0OiAyMDBweDsgd2lkdGg6IDMwMHB4OyBvdmVyZmxvdy14OiBhdXRvOyBvdmVyZmxvdy15
OiBhdXRvOyBtYXJnaW4tdG9wOiAxcHg7IG1hcmdpbi1yaWdodDogMXB4OyBtYXJnaW4tYm90dG9t
OiAxcHg7IG1hcmdpbi1sZWZ0OiAxcHg7IHBhZGRpbmctdG9wOiAwcHg7IHBhZGRpbmctcmlnaHQ6
IDBweDsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7ICIgY29udGVudGVk
aXRhYmxlPSJ0cnVlIj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8ZGl2IGlkPSJlZGl0
RGl2SW5mbyI+CisgICAgICAgICAgPHByZT5kaXYub3duZXJEb2N1bWVudC5kZXNpZ25Nb2RlOiBv
ZmY8YnI+ZGl2Lm93bmVyRG9jdW1lbnQuYm9keS5jb250ZW50RWRpdGFibGU6IGZhbHNlPGJyPmRp
di5jb250ZW50RWRpdGFibGU6IHRydWU8YnI+PC9wcmU+PC9kaXY+CisgICAgICAgIDwvdGQ+Cisg
ICAgICA8L3RyPgorICA8L3RhYmxlPgorPC9kaXY+CisKKzxIUj4KKzxESVYgc3R5bGU9Im1hcmdp
bjogMHB4O3BhZGRpbmc6MHB4O3BhZGRpbmctbGVmdDoxMHB4O2ZvbnQtZmFtaWx5OkNvdXJpZXI7
Ij4KKyAgPFRBQkxFIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjIwMHB4
IiBzdHlsZT0iZm9udC1zaXplOjlwdDsiPgorICAgIDxUQk9EWT4KKyAgICAgIDxUUj48VEQgd2lk
dGg9IjExMHB4Ij50eXBlOjwvVEQ+PFREIGlkPSJ0eXBlIiB3aWR0aD0iOTBweCI+W108L1REPjwv
VFI+CisgICAgICA8VFI+PFREPnRhZ05hbWU6PC9URD48VEQgaWQ9InRhZ05hbWUiPltdPC9URD48
L1RSPgorICAgICAgPFRSPjxURD5pZDo8L1REPjxURCBpZD0idGFnSWQiPltdPC9URD48L1RSPgor
ICAgICAgPFRSPjxURD5rZXlJZGVudGlmaWVyOjwvVEQ+PFREIGlkPSJrZXlpZGVudGlmaWVyIj5b
XTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+a2V5TG9jYXRpb246PC9URD48VEQgaWQ9ImtleWxv
Y2F0aW9uIj5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+a2V5Q29kZTo8L1REPjxURCBpZD0i
a2V5Y29kZSI+W108L1REPjwvVFI+CisgICAgICA8VFI+PFREPmNoYXJDb2RlOjwvVEQ+PFREIGlk
PSJjaGFyY29kZSI+W108L1REPjwvVFI+CisgICAgICA8VFI+PFREPndoaWNoOjwvVEQ+PFREIGlk
PSJ3aGljaCI+W108L1REPjwvVFI+CisgICAgICA8VFI+PFREPmlzVHJ1c3RlZDo8L1REPjxURCBp
ZD0iaXN0cnVzdGVkIj5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQgY29sc3Bhbj0iMiI+LS0t
LS0tLS0tLS0tLS0tLS0tLS0tPC9URD48L1RSPgorICAgICAgPFRSPjxURCBjb2xzcGFuPSIyIj5N
b2RpZmllcnM8L1REPjwvVFI+CisgICAgICA8VFI+PFREPmFsdDo8L1REPjxURCBpZD0iYWx0Ij5b
XTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+Y3RybDo8L1REPjxURCBpZD0iY3RybCI+W108L1RE
PjwvVFI+CisgICAgICA8VFI+PFREPnNoaWZ0OjwvVEQ+PFREIGlkPSJzaGlmdCI+W108L1REPjwv
VFI+CisgICAgICA8VFI+PFREPm1ldGE6PC9URD48VEQgaWQ9Im1ldGEiPltdPC9URD48L1RSPgor
ICAgIDwvVEJPRFk+CisgIDwvVEFCTEU+Cis8L0RJVj4KKworCisKKzwvQk9EWT48L0hUTUw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2FmYXJpL2ZyYW1lc19iZW5jaG1hcmsuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NhZmFy
aS9mcmFtZXNfYmVuY2htYXJrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjhhMDU5MjU1NjFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2FmYXJpL2ZyYW1lc19iZW5jaG1hcmsuaHRt
bApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQ+CisgIHZhciBzdGFy
dDsKKyAgdmFyIGRvbTsKKworICBmdW5jdGlvbiBydW4oKSB7CisgICAgaWYgKGRvbSkgeworICAg
ICAgZG9tLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZG9tKTsKKyAgICB9CisKKyAgICBkb20gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZG9tLmFwcGVuZENoaWxkKHJlc3VsdCk7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb20pOworCisgICAgc3RhcnQgPSBEYXRlLm5vdygp
OworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykgeworICAgICAgdmFyIGlmcmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgaWZyYW1lLnN0eWxl
LndpZHRoID0gJzIwMHB4JzsKKyAgICAgIGlmcmFtZS5zdHlsZS5oZWlnaHQgPSAnMzBweCc7Cisg
ICAgICBkb20uYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAgIHZhciBjb250ZW50ID0gaWZyYW1l
LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2hlbGxvLCB3b3JsZCcpOwor
ICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250
ZW50KTsKKyAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuc3R5bGUub3Zl
cmZsb3cgPSAnaGlkZGVuJzsKKyAgICB9CisKKyAgICByZXN1bHQuaW5uZXJIVE1MID0gJ0RvbmUh
ICcgKyAoRGF0ZS5ub3coKSAtIHN0YXJ0KSArICcgbXMnOworICB9Cis8L3NjcmlwdD4KKzxpbnB1
dCB0eXBlPSJidXR0b24iIHZhbHVlPSJHbyEiIG9uY2xpY2s9InJ1bigpIj4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuLmNzcyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW4uY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MTUyNjE4NTBjNQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nj
cmVlbi9zY3JlZW4uY3NzCkBAIC0wLDAgKzEsMTkgQEAKKyogeyAKKyAgbWFyZ2luOiAwOyAKK30K
K2h0bWwsIGJvZHksICNvdXRwdXQgeworICB3aWR0aDogMTAwJTsKKyAgaGVpZ2h0OiAxMDAlOwor
fQordGFibGUgeworICBib3JkZXI6IDBweDsKKyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsK
KyAgYm9yZGVyLXNwYWNpbmc6IDBweDsKKyAgZGlzcGxheTogdGFibGU7Cit9Cit0YWJsZSB0ZCB7
CisgIHBhZGRpbmc6IDBweDsKK30KKy5jZWxsIHsKKyAgY29sb3I6IGJsYWNrOworfQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Ny
ZWVuL3NjcmVlbi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvc2NyZWVuL3NjcmVlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xNjY2NjVkYTNkOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW4uaHRtbApAQCAt
MCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPjxoZWFkPgorPHRpdGxlPnNjcmVl
biB0ZXN0PC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNjcmVl
bi5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSJzY3JlZW4uY3NzIiAvPgorPC9oZWFkPgorPGJvZHk+Cis8c3R5bGU+CisjY29udGVudCB7
CisgIHdpZHRoOiAxMDAlOworICBoZWlnaHQ6IDEwMCU7Cit9Cisucm93IHsKKyAgaGVpZ2h0OiAy
MHB4OworICB3aWR0aDogMTAwJTsKK30KKy5jb2x1bW4geworICBoZWlnaHQ6IDIwJTsKKyAgd2lk
dGg6IDIwcHg7Cit9Cis8L3N0eWxlPgorPHRhYmxlIGlkPSJjb250ZW50Ij4KKzx0ciBjbGFzcz0i
cm93IHJvdzEiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDExIj4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDEyIj4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDEzIj4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDE0Ij4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDE1Ij4m
bmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzIiPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDIxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDIyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDIzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDI0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDI1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFz
cz0icm93IHJvdzMiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDMx
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDMy
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDMz
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDM0
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDM1
Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzQiPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDQxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDQyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDQzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDQ0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDQ1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBj
bGFzcz0icm93IHJvdzUiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2Vs
bDUxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2Vs
bDUyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2Vs
bDUzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2Vs
bDU0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2Vs
bDU1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8c2NyaXB0PgordmFyIGluaXRpYWxD
b2xvciA9IDB4MEYwRjBGOwordmFyIHN0ZXBDb2xvciA9IDEwMDA7Cit2YXIgY250ID0gMTsKK2Zv
ciAodmFyIGkgPSAxOyBpIDwgNjsgaSsrKSB7CisgIGZvciAodmFyIGogPSAxOyBqIDwgNjsgaisr
KSB7CisgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2VsbCcgKyBpICsgJycgKyBq
KTsKKyAgICBlbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0b0NvbG9yKGluaXRpYWxDb2xvciAr
IChjbnQgKiBzdGVwQ29sb3IpKTsKKyAgICBjbnQrKzsKKyAgfQorfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVl
bi5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nj
cmVlbi9zY3JlZW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFk
MTY4NTk4MGY2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbi5qcwpAQCAtMCwwICsxLDcgQEAKK2Z1
bmN0aW9uIHRvQ29sb3IobnVtKSB7CisgIG51bSA+Pj49IDA7CisgIHZhciBiID0gbnVtICYgMHhG
RiwKKyAgICBnID0gKG51bSAmIDB4RkYwMCkgPj4+IDgsCisgICAgciA9IChudW0gJiAweEZGMDAw
MCkgPj4+IDE2OworICByZXR1cm4gInJnYigiICsgW3IsIGcsIGJdLmpvaW4oIiwiKSArICIpIjsK
K30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX2ZyYW1lMS5o
dG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Ny
ZWVuL3NjcmVlbl9mcmFtZTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMzViMDNhZTEzMWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX2ZyYW1lMS5odG1sCkBA
IC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+PGhlYWQ+Cis8dGl0bGU+c2Ny
ZWVuIGZyYW1lMTwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJz
Y3JlZW4uanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0ic2NyZWVuLmNzcyIgLz4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogMTAwcHg7Ij4KKzxzdHlsZT4KKyNjb250ZW50IHsKKyAgd2lkdGg6IDEwMCU7
CisgIGhlaWdodDogMTAwJTsKK30KKy5yb3cgeworICBoZWlnaHQ6IDIwcHg7CisgIHdpZHRoOiAx
MDAlOworfQorLmNvbHVtbiB7CisgIGhlaWdodDogMjBweDsKKyAgd2lkdGg6IDIwcHg7Cit9Cis8
L3N0eWxlPgorPHRhYmxlIGlkPSJjb250ZW50Ij4KKzx0ciBjbGFzcz0icm93IHJvdzEiPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDExIj4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDEyIj4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDEzIj4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDE0Ij4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDE1Ij4mbmJzcDs8L3RkPgorPC90
cj4KKzx0ciBjbGFzcz0icm93IHJvdzIiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxs
IiBpZD0iY2VsbDIxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxs
IiBpZD0iY2VsbDIyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxs
IiBpZD0iY2VsbDIzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxs
IiBpZD0iY2VsbDI0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxs
IiBpZD0iY2VsbDI1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzMiPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDMxIj4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDMyIj4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDMzIj4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDM0Ij4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDM1Ij4mbmJzcDs8L3RkPgor
PC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzQiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBj
ZWxsIiBpZD0iY2VsbDQxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBj
ZWxsIiBpZD0iY2VsbDQyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBj
ZWxsIiBpZD0iY2VsbDQzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBj
ZWxsIiBpZD0iY2VsbDQ0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBj
ZWxsIiBpZD0iY2VsbDQ1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzUi
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDUxIj4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDUyIj4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDUzIj4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDU0Ij4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDU1Ij4mbmJzcDs8L3Rk
PgorPC90cj4KKzwvdGFibGU+Cis8c2NyaXB0PgordmFyIGluaXRpYWxDb2xvciA9IDB4REZERkRG
OwordmFyIHN0ZXBDb2xvciA9IDEwMDA7Cit2YXIgY250ID0gMTsKK2ZvciAodmFyIGkgPSAxOyBp
IDwgNjsgaSsrKSB7CisgIGZvciAodmFyIGogPSAxOyBqIDwgNjsgaisrKSB7CisgICAgZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2VsbCcgKyBpICsgJycgKyBqKTsKKyAgICBlbC5zdHls
ZS5iYWNrZ3JvdW5kQ29sb3IgPSB0b0NvbG9yKGluaXRpYWxDb2xvciArIChjbnQgKiBzdGVwQ29s
b3IpKTsKKyAgICBjbnQrKzsKKyAgfQorfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl9mcmFtZTIuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9z
Y3JlZW5fZnJhbWUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmU2ZTE3ZTYzMGYxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl9mcmFtZTIuaHRtbApAQCAtMCww
ICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPjxoZWFkPgorPHRpdGxlPnNjcmVlbiBm
cmFtZTI8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2NyZWVu
LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9InNjcmVlbi5jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0id2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4OyI+Cis8c3R5bGU+CisjY29udGVudCB7CisgIHdpZHRoOiAxMDAlOworICBo
ZWlnaHQ6IDEwMCU7Cit9Cisucm93IHsKKyAgaGVpZ2h0OiAyMHB4OworICB3aWR0aDogMTAwJTsK
K30KKy5jb2x1bW4geworICBoZWlnaHQ6IDIwcHg7CisgIHdpZHRoOiAyMHB4OworfQorPC9zdHls
ZT4KKzx0YWJsZSBpZD0iY29udGVudCI+Cis8dHIgY2xhc3M9InJvdyByb3cxIj4KKzx0ZCBjbGFz
cz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwxMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFz
cz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwxMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFz
cz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwxMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFz
cz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwxNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFz
cz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwxNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8
dHIgY2xhc3M9InJvdyByb3cyIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9
ImNlbGwyMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9
ImNlbGwyMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9
ImNlbGwyMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9
ImNlbGwyNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9
ImNlbGwyNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3czIj4KKzx0ZCBj
bGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwzMSI+Jm5ic3A7PC90ZD4KKzx0ZCBj
bGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwzMiI+Jm5ic3A7PC90ZD4KKzx0ZCBj
bGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwzMyI+Jm5ic3A7PC90ZD4KKzx0ZCBj
bGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwzNCI+Jm5ic3A7PC90ZD4KKzx0ZCBj
bGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwzNSI+Jm5ic3A7PC90ZD4KKzwvdHI+
Cis8dHIgY2xhc3M9InJvdyByb3c0Ij4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIg
aWQ9ImNlbGw0MSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIg
aWQ9ImNlbGw0MiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIg
aWQ9ImNlbGw0MyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIg
aWQ9ImNlbGw0NCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIg
aWQ9ImNlbGw0NSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3c1Ij4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGw1MSI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGw1MiI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGw1MyI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGw1NCI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGw1NSI+Jm5ic3A7PC90ZD4KKzwv
dHI+Cis8L3RhYmxlPgorPHNjcmlwdD4KK3ZhciBpbml0aWFsQ29sb3IgPSAweDBGMEYwRjsKK3Zh
ciBzdGVwQ29sb3IgPSAxMDAwOwordmFyIGNudCA9IDE7Citmb3IgKHZhciBpID0gMTsgaSA8IDY7
IGkrKykgeworICBmb3IgKHZhciBqID0gMTsgaiA8IDY7IGorKykgeworICAgIGVsID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NlbGwnICsgaSArICcnICsgaik7CisgICAgZWwuc3R5bGUuYmFj
a2dyb3VuZENvbG9yID0gdG9Db2xvcihpbml0aWFsQ29sb3IgKyAoY250ICogc3RlcENvbG9yKSk7
CisgICAgY250Kys7CisgIH0KK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5fZnJhbWVzLmh0bWwgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVu
X2ZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40Njg1
MmRjZjU3YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5fZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwx
MSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+c2NyZWVuIHRlc3Q8L3RpdGxlPgorPC9o
ZWFkPgorCis8ZnJhbWVzZXQgYm9yZGVyPSIwIiBmcmFtZWJvcmRlcj0iMCIgZnJhbWVzcGFjaW5n
PSIwIiBjb2xzPSI1MCUsICoiIHJvd3M9IioiPgorICAgIDxmcmFtZSBpZD0iZnJhbWUxIiBzcmM9
InNjcmVlbl9mcmFtZTEuaHRtbCIvPgorICAgIDxmcmFtZSBpZD0iZnJhbWUyIiBzcmM9InNjcmVl
bl9mcmFtZTIuaHRtbCIvPgorPC9mcmFtZXNldD4KKworPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5faWZyYW1lcy5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl9pZnJhbWVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFlM2VhMWUyNGIz
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl9pZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwxMiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD48aGVhZD4KKzx0aXRsZT5TY3JlZW4gdGVzdDwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzx0YWJsZT48dHI+PHRkPgorPGlmcmFtZSBzcmM9InNjcmVlbl9m
cmFtZTEuaHRtbCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgdG9wbWFyZ2luPSIw
IiBsZWZ0bWFyZ2luPSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgZnJhbWVib3JkZXI9IjAi
IGhlaWdodD0iNTAwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iNTAwIiBpZD0iaWZyYW1lMSIgbmFt
ZT0iaWZyYW1lMS1uYW1lIj48L2lmcmFtZT4KKzwvdGQ+PHRkPgorPGlmcmFtZSBzcmM9InNjcmVl
bl9mcmFtZTIuaHRtbCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgdG9wbWFyZ2lu
PSIwIiBsZWZ0bWFyZ2luPSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgZnJhbWVib3JkZXI9
IjAiIGhlaWdodD0iNTAwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iNTAwIiBpZD0iaWZyYW1lMiIg
bmFtZT0iaWZyYW1lMi1uYW1lIj48L2lmcmFtZT4KKzwvdGQ+PC90cj48L3RhYmxlPgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5f
dG9vX2xvbmcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL3NjcmVlbi9zY3JlZW5fdG9vX2xvbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNGQwMGYwMjcwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX3Rv
b19sb25nLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD48aGVh
ZD4KKzx0aXRsZT5zY3JlZW4gdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzY3JlZW4uanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic2NyZWVuLmNzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPHN0
eWxlPgorI2NvbnRlbnQgeworICB3aWR0aDogNzAwMDBweDsKKyAgaGVpZ2h0OiA3MDAwMHB4Owor
fQorLmNvbHVtbiB7CisgIGhlaWdodDogMTQwMDBweDsKKyAgd2lkdGg6IDE0MDAwcHg7Cit9Cis8
L3N0eWxlPgorPHRhYmxlIGlkPSJjb250ZW50Ij4KKzx0ciBjbGFzcz0icm93IHJvdzEiPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDExIj4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDEyIj4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDEzIj4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDE0Ij4mbmJzcDs8L3RkPgorPHRk
IGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDE1Ij4mbmJzcDs8L3RkPgorPC90
cj4KKzx0ciBjbGFzcz0icm93IHJvdzIiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxs
IiBpZD0iY2VsbDIxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxs
IiBpZD0iY2VsbDIyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxs
IiBpZD0iY2VsbDIzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxs
IiBpZD0iY2VsbDI0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxs
IiBpZD0iY2VsbDI1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzMiPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDMxIj4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDMyIj4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDMzIj4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDM0Ij4mbmJzcDs8L3RkPgor
PHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDM1Ij4mbmJzcDs8L3RkPgor
PC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzQiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBj
ZWxsIiBpZD0iY2VsbDQxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBj
ZWxsIiBpZD0iY2VsbDQyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBj
ZWxsIiBpZD0iY2VsbDQzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBj
ZWxsIiBpZD0iY2VsbDQ0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBj
ZWxsIiBpZD0iY2VsbDQ1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzUi
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDUxIj4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDUyIj4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDUzIj4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDU0Ij4mbmJzcDs8L3Rk
PgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDU1Ij4mbmJzcDs8L3Rk
PgorPC90cj4KKzwvdGFibGU+Cis8c2NyaXB0PgordmFyIGluaXRpYWxDb2xvciA9IDB4MEYwRjBG
OwordmFyIHN0ZXBDb2xvciA9IDEwMDA7Cit2YXIgY250ID0gMTsKK2ZvciAodmFyIGkgPSAxOyBp
IDwgNjsgaSsrKSB7CisgIGZvciAodmFyIGogPSAxOyBqIDwgNjsgaisrKSB7CisgICAgZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2VsbCcgKyBpICsgJycgKyBqKTsKKyAgICBlbC5zdHls
ZS5iYWNrZ3JvdW5kQ29sb3IgPSB0b0NvbG9yKGluaXRpYWxDb2xvciArIChjbnQgKiBzdGVwQ29s
b3IpKTsKKyAgICBjbnQrKzsKKyAgfQorfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl94X2xvbmcuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9z
Y3JlZW5feF9sb25nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjFhNmExMDAyZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl94X2xvbmcuaHRtbApAQCAtMCww
ICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPjxoZWFkPgorPHRpdGxlPnNjcmVlbiB0
ZXN0PC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNjcmVlbi5q
cyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSJzY3JlZW4uY3NzIiAvPgorPC9oZWFkPgorPGJvZHk+Cis8c3R5bGU+CisjY29udGVudCB7Cisg
IHdpZHRoOiAzMDAwcHg7CisgIGhlaWdodDogMTAwJTsKK30KKy5yb3cgeworICBoZWlnaHQ6IDIw
cHg7CisgIHdpZHRoOiAzMDAwcHg7Cit9CisuY29sdW1uIHsKKyAgaGVpZ2h0OiAyMCU7CisgIHdp
ZHRoOiA2MDBweDsKK30KKzwvc3R5bGU+Cis8dGFibGUgaWQ9ImNvbnRlbnQiPgorPHRyIGNsYXNz
PSJyb3cgcm93MSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMTEi
PiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMTIi
PiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMTMi
PiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMTQi
PiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMTUi
PiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93MiI+Cis8dGQgY2xhc3M9ImNv
bHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMjEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNv
bHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMjIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNv
bHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMjMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNv
bHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMjQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNv
bHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMjUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNs
YXNzPSJyb3cgcm93MyI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxs
MzEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxs
MzIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxs
MzMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxs
MzQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxs
MzUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93NCI+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNDEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNDIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNDMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNDQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNDUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRy
IGNsYXNzPSJyb3cgcm93NSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJj
ZWxsNTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJj
ZWxsNTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJj
ZWxsNTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJj
ZWxsNTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJj
ZWxsNTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxzY3JpcHQ+Cit2YXIgaW5pdGlh
bENvbG9yID0gMHgwRjBGMEY7Cit2YXIgc3RlcENvbG9yID0gMTAwMDsKK3ZhciBjbnQgPSAxOwor
Zm9yICh2YXIgaSA9IDE7IGkgPCA2OyBpKyspIHsKKyAgZm9yICh2YXIgaiA9IDE7IGogPCA2OyBq
KyspIHsKKyAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjZWxsJyArIGkgKyAnJyAr
IGopOworICAgIGVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRvQ29sb3IoaW5pdGlhbENvbG9y
ICsgKGNudCAqIHN0ZXBDb2xvcikpOworICAgIGNudCsrOworICB9Cit9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2Ny
ZWVuX3hfdG9vX2xvbmcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5feF90b29fbG9uZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZmVlMDA1ZDU5NAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9z
Y3JlZW5feF90b29fbG9uZy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+PGhlYWQ+Cis8dGl0bGU+c2NyZWVuIHRlc3Q8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2NyZWVuLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InNjcmVlbi5jc3MiIC8+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzdHlsZT4KKyNjb250ZW50IHsKKyAgd2lkdGg6IDcwMDAwcHg7CisgIGhlaWdodDog
MTAwJTsKK30KKy5yb3cgeworICBoZWlnaHQ6IDIwcHg7CisgIHdpZHRoOiA3MDAwMHB4OworfQor
LmNvbHVtbiB7CisgIGhlaWdodDogMjAlOworICB3aWR0aDogMTQwMDBweDsKK30KKzwvc3R5bGU+
Cis8dGFibGUgaWQ9ImNvbnRlbnQiPgorPHRyIGNsYXNzPSJyb3cgcm93MSI+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRy
IGNsYXNzPSJyb3cgcm93MiI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJj
ZWxsMjEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJj
ZWxsMjIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJj
ZWxsMjMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJj
ZWxsMjQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJj
ZWxsMjUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93MyI+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMzEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMzIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMzMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMzQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMzUiPiZuYnNwOzwvdGQ+Cis8L3RyPgor
PHRyIGNsYXNzPSJyb3cgcm93NCI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlk
PSJjZWxsNDEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlk
PSJjZWxsNDIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlk
PSJjZWxsNDMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlk
PSJjZWxsNDQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlk
PSJjZWxsNDUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93NSI+Cis8dGQg
Y2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNTEiPiZuYnNwOzwvdGQ+Cis8dGQg
Y2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNTIiPiZuYnNwOzwvdGQ+Cis8dGQg
Y2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNTMiPiZuYnNwOzwvdGQ+Cis8dGQg
Y2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNTQiPiZuYnNwOzwvdGQ+Cis8dGQg
Y2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNTUiPiZuYnNwOzwvdGQ+Cis8L3Ry
PgorPC90YWJsZT4KKzxzY3JpcHQ+Cit2YXIgaW5pdGlhbENvbG9yID0gMHgwRjBGMEY7Cit2YXIg
c3RlcENvbG9yID0gMTAwMDsKK3ZhciBjbnQgPSAxOworZm9yICh2YXIgaSA9IDE7IGkgPCA2OyBp
KyspIHsKKyAgZm9yICh2YXIgaiA9IDE7IGogPCA2OyBqKyspIHsKKyAgICBlbCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjZWxsJyArIGkgKyAnJyArIGopOworICAgIGVsLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9IHRvQ29sb3IoaW5pdGlhbENvbG9yICsgKGNudCAqIHN0ZXBDb2xvcikpOwor
ICAgIGNudCsrOworICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX3lfbG9uZy5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl95
X2xvbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzE3MzNl
MDczZjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX3lfbG9uZy5odG1sCkBAIC0wLDAgKzEsNzIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+PGhlYWQ+Cis8dGl0bGU+c2NyZWVuIHRlc3Q8L3Rp
dGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2NyZWVuLmpzIj48L3Nj
cmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InNjcmVl
bi5jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzdHlsZT4KKyNjb250ZW50IHsKKyAgd2lkdGg6
IDEwMCU7CisgIGhlaWdodDogMzAwMHB4OworfQorLnJvdyB7CisgIGhlaWdodDogNjAwcHg7Cisg
IHdpZHRoOiAxMDAlOworfQorLmNvbHVtbiB7CisgIGhlaWdodDogMjAlOworICB3aWR0aDogMjBw
eDsKK30KKzwvc3R5bGU+Cis8dGFibGUgaWQ9ImNvbnRlbnQiPgorPHRyIGNsYXNzPSJyb3cgcm93
MSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMTEiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMTIiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMTMiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMTQiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMTUiPiZuYnNwOzwv
dGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93MiI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4xIGNlbGwiIGlkPSJjZWxsMjEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4yIGNlbGwiIGlkPSJjZWxsMjIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4zIGNlbGwiIGlkPSJjZWxsMjMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW40IGNlbGwiIGlkPSJjZWxsMjQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW41IGNlbGwiIGlkPSJjZWxsMjUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cg
cm93MyI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMzEiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMzIiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMzMiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMzQiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMzUiPiZuYnNw
OzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93NCI+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4xIGNlbGwiIGlkPSJjZWxsNDEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4yIGNlbGwiIGlkPSJjZWxsNDIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4zIGNlbGwiIGlkPSJjZWxsNDMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW40IGNlbGwiIGlkPSJjZWxsNDQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW41IGNlbGwiIGlkPSJjZWxsNDUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJy
b3cgcm93NSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNTEiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNTIiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNTMiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNTQiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNTUiPiZu
YnNwOzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxzY3JpcHQ+Cit2YXIgaW5pdGlhbENvbG9yID0g
MHgwRjBGMEY7Cit2YXIgc3RlcENvbG9yID0gMTAwMDsKK3ZhciBjbnQgPSAxOworZm9yICh2YXIg
aSA9IDE7IGkgPCA2OyBpKyspIHsKKyAgZm9yICh2YXIgaiA9IDE7IGogPCA2OyBqKyspIHsKKyAg
ICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjZWxsJyArIGkgKyAnJyArIGopOworICAg
IGVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRvQ29sb3IoaW5pdGlhbENvbG9yICsgKGNudCAq
IHN0ZXBDb2xvcikpOworICAgIGNudCsrOworICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX3lfdG9v
X2xvbmcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3NjcmVlbi9zY3JlZW5feV90b29fbG9uZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5kYmVmOTM2MWE0OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5feV90
b29fbG9uZy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+PGhl
YWQ+Cis8dGl0bGU+c2NyZWVuIHRlc3Q8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2NyZWVuLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9InNjcmVlbi5jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
dHlsZT4KKyNjb250ZW50IHsKKyAgd2lkdGg6IDEwMCU7CisgIGhlaWdodDogNzAwMDBweDsKK30K
Ky5yb3cgeworICBoZWlnaHQ6IDE0MDAwcHg7CisgIHdpZHRoOiAxMDAlOworfQorLmNvbHVtbiB7
CisgIGhlaWdodDogMjAlOworICB3aWR0aDogMjBweDsKK30KKzwvc3R5bGU+Cis8dGFibGUgaWQ9
ImNvbnRlbnQiPgorPHRyIGNsYXNzPSJyb3cgcm93MSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4xIGNlbGwiIGlkPSJjZWxsMTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4yIGNlbGwiIGlkPSJjZWxsMTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4zIGNlbGwiIGlkPSJjZWxsMTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW40IGNlbGwiIGlkPSJjZWxsMTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW41IGNlbGwiIGlkPSJjZWxsMTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cg
cm93MiI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMjEiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMjIiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMjMiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMjQiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMjUiPiZuYnNw
OzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93MyI+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4xIGNlbGwiIGlkPSJjZWxsMzEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4yIGNlbGwiIGlkPSJjZWxsMzIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4zIGNlbGwiIGlkPSJjZWxsMzMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW40IGNlbGwiIGlkPSJjZWxsMzQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW41IGNlbGwiIGlkPSJjZWxsMzUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJy
b3cgcm93NCI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNDEiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNDIiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNDMiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNDQiPiZu
YnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNDUiPiZu
YnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93NSI+Cis8dGQgY2xhc3M9ImNvbHVt
biBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVt
biBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVt
biBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVt
biBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVt
biBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPC90YWJsZT4K
KzxzY3JpcHQ+Cit2YXIgaW5pdGlhbENvbG9yID0gMHgwRjBGMEY7Cit2YXIgc3RlcENvbG9yID0g
MTAwMDsKK3ZhciBjbnQgPSAxOworZm9yICh2YXIgaSA9IDE7IGkgPCA2OyBpKyspIHsKKyAgZm9y
ICh2YXIgaiA9IDE7IGogPCA2OyBqKyspIHsKKyAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjZWxsJyArIGkgKyAnJyArIGopOworICAgIGVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
IHRvQ29sb3IoaW5pdGlhbENvbG9yICsgKGNudCAqIHN0ZXBDb2xvcikpOworICAgIGNudCsrOwor
ICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9zY3JvbGwuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3Njcm9sbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5jZDUyMTRmMTVlZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbC5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlv
biBkdW1wKGV2ZW50KSB7CisJdmFyIGVsdCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVt
ZW50OworCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGlja2VkJykuaW5uZXJIVE1MID0gZWx0
LmlubmVySFRNTDsKK30KKzwvc2NyaXB0PgorPGRpdiBzdHlsZT0naGVpZ2h0OiAxNTBweCc+PC9k
aXY+Cis8dWwgc3R5bGU9J292ZXJmbG93OiBzY3JvbGw7IHdpZHRoOiAxNTBweDsgaGVpZ2h0OiA4
MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3cnIG9uY2xpY2s9ImR1bXAoZXZlbnQpIj4KKzxs
aSBpZD0nbGluZTEnPmxpbmUxPC9saT4KKzxsaSBpZD0nbGluZTInPmxpbmUyPC9saT4KKzxsaSBp
ZD0nbGluZTMnPmxpbmUzPC9saT4KKzxsaSBpZD0nbGluZTQnPmxpbmU0PC9saT4KKzxsaSBpZD0n
bGluZTUnPmxpbmU1PC9saT4KKzxsaSBpZD0nbGluZTYnPmxpbmU2PC9saT4KKzxsaSBpZD0nbGlu
ZTcnPmxpbmU3PC9saT4KKzxsaSBpZD0nbGluZTgnPmxpbmU4PC9saT4KKzxsaSBpZD0nbGluZTkn
PmxpbmU5PC9saT4KKzwvdWw+Cis8ZGl2PgorQ2xpY2tlZDogPHNwYW4gaWQ9J2NsaWNrZWQnPjwv
c3Bhbj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsMi5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZWE2NmQzNzhjMgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3Njcm9sbDIuaHRtbApAQCAtMCwwICsxLDIxIEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFk
PgorPGJvZHk+Cis8dWwgc3R5bGU9J292ZXJmbG93OiBzY3JvbGw7IGhlaWdodDogMTAwcHg7Jz4K
KzxsaT48L2xpPgorPGxpPjwvbGk+Cis8bGkgaWQ9ImRlc2lyZWQiPlRleHQ8L2xpPgorPGxpPjwv
bGk+Cis8bGk+PC9saT4KKzxsaT48L2xpPgorPGxpPjwvbGk+Cis8bGk+PC9saT4KKzxsaT48L2xp
PgorPGxpPjwvbGk+Cis8bGk+PC9saT4KKzxsaT48L2xpPgorPGxpPjwvbGk+Cis8L3VsPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsMy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4xYWExNzA5MjkyMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbDMuaHRtbApA
QCAtMCwwICsxLDggQEAKKzxodG1sPgorPGJvZHk+Cis8YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+
PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+Cis8YnV0
dG9uIGlkPSJidXR0b24xIj5CdXR0b24xPC9idXR0b24+Cis8YnIgLz48YnIgLz48YnIgLz48YnIg
Lz4KKworJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGJ1dHRvbiBpZD0iYnV0dG9uMiI+QnV0
dG9uMjwvYnV0dG9uPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOworPGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxi
ciAvPjxiciAvPjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsNC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi42NTJhNzc4ZWI3YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbDQuaHRtbApA
QCAtMCwwICsxLDcgQEAKKzxodG1sPgorPGJvZHk+CisgIDxiciAvPjxiciAvPjxiciAvPjxiciAv
PjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxi
ciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAv
PjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxi
ciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAv
PjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxi
ciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAv
PjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxi
ciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAv
PjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxi
ciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAvPjxiciAv
PgorICA8aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJyYWRpbyIgLz4KKyAgPGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGw1Lmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGw1Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIzNDVhOGMzZjc2Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
c2Nyb2xsNS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBkdW1wKHRleHQpIHsKKyAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NsaWNrZWQnKS5pbm5lckhUTUwgPSB0ZXh0OworfQorPC9zY3JpcHQ+Cis8ZGl2
IHN0eWxlPSdvdmVyZmxvdzogc2Nyb2xsOyB3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7IGJh
Y2tncm91bmQtY29sb3I6IHllbGxvdycgaWQ9Im91dGVyIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDE1MHB4OyBoZWlnaHQ6IDUwMDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyIgb25jbGljaz0i
ZHVtcCgnY2xpY2tlZCcpIiBpZD0iaW5uZXIiPgorICA8L2Rpdj4KKzwvZGl2PgorPGRpdj4KK0Ns
aWNrZWQ6IDxzcGFuIGlkPSdjbGlja2VkJz48L3NwYW4+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL3Njcm9sbGluZ190ZXN0cy9mcmFtZV93aXRoX2hlaWdodF9hYm92ZV8yMDAuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGlu
Z190ZXN0cy9mcmFtZV93aXRoX2hlaWdodF9hYm92ZV8yMDAuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2ViM2JmNDdkNTUKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdf
dGVzdHMvZnJhbWVfd2l0aF9oZWlnaHRfYWJvdmVfMjAwLmh0bWwKQEAgLTAsMCArMSwyNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+Q2hpbGQgZnJhbWU8L3Rp
dGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxoMT5UaGlzIGlzIGEgc2Nyb2xsaW5nIGZyYW1lIHRl
c3Q8L2gxPgorICA8ZGl2PgorICAgIDx0YWJsZT4KKyAgICAgIDx0ciBoZWlnaHQ9IjUwcHgiPgor
ICAgICAgICA8dGQ+Rmlyc3Qgcm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHIgaGVpZ2h0
PSI1MHB4Ij4KKyAgICAgICAgPHRkPlNlY29uZCByb3c8L3RkPgorICAgICAgPC90cj4KKyAgICAg
IDx0ciBoZWlnaHQ9IjUwcHgiPgorICAgICAgICA8dGQ+VGhpcmQgcm93PC90ZD4KKyAgICAgIDwv
dHI+CisgICAgICA8dHIgaGVpZ2h0PSI1MHB4Ij4KKyAgICAgICAgPHRkPkZvdXJ0aCByb3c8L3Rk
PgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICA8L2Rpdj4KKyAgPGlucHV0IHR5cGU9J2No
ZWNrYm94JyBuYW1lPSdzY3JvbGxfY2hlY2tib3gnIC8+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhfaGVp
Z2h0X2Fib3ZlXzIwMDAuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9mcmFtZV93aXRoX2hlaWdodF9hYm92ZV8yMDAw
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxZmZlODVkYTU1
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhfaGVpZ2h0X2Fib3ZlXzIwMDAu
aHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
IDx0aXRsZT5DaGlsZCBmcmFtZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGgxPlRoaXMg
aXMgYSB0YWxsIGZyYW1lIHRlc3Q8L2gxPgorICA8ZGl2PgorICAgIDx0YWJsZT4KKyAgICAgIDx0
ciBoZWlnaHQ9IjUwMHB4Ij4KKyAgICAgICAgPHRkPkZpcnN0IHJvdzwvdGQ+CisgICAgICA8L3Ry
PgorICAgICAgPHRyIGhlaWdodD0iNTAwcHgiPgorICAgICAgICA8dGQ+U2Vjb25kIHJvdzwvdGQ+
CisgICAgICA8L3RyPgorICAgICAgPHRyIGhlaWdodD0iNTAwcHgiPgorICAgICAgICA8dGQ+VGhp
cmQgcm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHIgaGVpZ2h0PSI1MDBweCI+CisgICAg
ICAgIDx0ZD5Gb3VydGggcm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgPC9k
aXY+CisgIDxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFtZT0nY2hlY2tib3gnIC8+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3Rz
L2ZyYW1lX3dpdGhfbmVzdGVkX3Njcm9sbGluZ19mcmFtZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dp
dGhfbmVzdGVkX3Njcm9sbGluZ19mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNTMwMTM4Njk5NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9mcmFt
ZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5XZWxjb21lIFBhZ2U8L3RpdGxl
PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+CisgICAgPGlmcmFtZSBuYW1lPSJuZXN0ZWRfc2Ny
b2xsaW5nX2ZyYW1lIiBzcmM9ImZyYW1lX3dpdGhfaGVpZ2h0X2Fib3ZlXzIwMC5odG1sIiB3aWR0
aD0iODAwIiBoZWlnaHQ9IjIwMCIgPjwvaWZyYW1lPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL3Njcm9sbGluZ190ZXN0cy9mcmFtZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVf
b3V0X29mX3ZpZXcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9mcmFtZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJh
bWVfb3V0X29mX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNTc4MWFlYjlmYTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvZnJhbWVfd2l0aF9uZXN0
ZWRfc2Nyb2xsaW5nX2ZyYW1lX291dF9vZl92aWV3Lmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+V2VsY29tZSBQYWdlPC90aXRs
ZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDUwMDBweDsiPlBsYWNl
aG9sZGVyPC9kaXY+CisgIDxkaXY+CisgICAgPGlmcmFtZSBuYW1lPSJuZXN0ZWRfc2Nyb2xsaW5n
X2ZyYW1lIiBzcmM9ImZyYW1lX3dpdGhfaGVpZ2h0X2Fib3ZlXzIwMC5odG1sIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjIwMCIgPjwvaWZyYW1lPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L3Njcm9sbGluZ190ZXN0cy9mcmFtZV93aXRoX3NtYWxsX2hlaWdodC5odG1sIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2Zy
YW1lX3dpdGhfc21hbGxfaGVpZ2h0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjA0N2RlMGYxODMxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dp
dGhfc21hbGxfaGVpZ2h0Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+Q2hpbGQgZnJhbWU8L3RpdGxlPgorPC9oZWFkPgorPGJv
ZHk+CisgIDxoMT5UaGlzIGlzIGEgbm9uLXNjcm9sbGluZyBmcmFtZSB0ZXN0PC9oMT4KKyAgPGlu
cHV0IHR5cGU9J2NoZWNrYm94JyBuYW1lPSdjaGVja2JveCcgLz4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRo
X2RvdWJsZV9vdmVyZmxvd19hdXRvLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX2RvdWJsZV9vdmVy
Zmxvd19hdXRvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAx
YjdjMzA1OGZhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9kb3VibGVfb3Zl
cmZsb3dfYXV0by5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVyZmxvdzogYXV0bzwvdGl0bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgaHRtbCwgYm9keSB7CisgICAgICAgIHdpZHRoOiAx
MDAlOworICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAg
IH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDUw
MDBweDsiPlBsYWNlaG9sZGVyPC9kaXY+CisgIDxkaXY+CisgICAgPGEgaWQ9ImxpbmsiIGhyZWY9
InRhcmdldF9wYWdlLmh0bWwiPkNsaWNrIG1lITwvYT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX2ZyYW1lX291dF9vZl92aWV3Lmh0bWwg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxp
bmdfdGVzdHMvcGFnZV93aXRoX2ZyYW1lX291dF9vZl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM1MzZlNDFkNzM3Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5n
X3Rlc3RzL3BhZ2Vfd2l0aF9mcmFtZV9vdXRfb2Zfdmlldy5odG1sCkBAIC0wLDAgKzEsMTIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPldlbGNvbWUgUGFnZTwv
dGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAwcHg7Ij5Q
bGFjZWhvbGRlcjwvZGl2PgorICA8ZGl2PgorICAgIDxpZnJhbWUgbmFtZT0iZnJhbWUiIHNyYz0i
ZnJhbWVfd2l0aF9zbWFsbF9oZWlnaHQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSIyMDAiID48
L2lmcmFtZT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMv
cGFnZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRo
X25lc3RlZF9zY3JvbGxpbmdfZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmU1Yjc2MDIyYmI0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vf
d2l0aF9uZXN0ZWRfc2Nyb2xsaW5nX2ZyYW1lcy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPldlbGNvbWUgUGFnZTwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj4KKyAgICA8aWZyYW1lIG5hbWU9InNjcm9sbGluZ19m
cmFtZSIgc3JjPSJmcmFtZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWUuaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSIxNTAiID48L2lmcmFtZT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVzX291
dF9vZl92aWV3Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVz
X291dF9vZl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmY3OWY3Yzg0ODZlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9uZXN0ZWRf
c2Nyb2xsaW5nX2ZyYW1lc19vdXRfb2Zfdmlldy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPldlbGNvbWUgUGFnZTwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAwcHg7Ij5QbGFjZWhv
bGRlcjwvZGl2PgorICA8ZGl2PgorICAgIDxpZnJhbWUgbmFtZT0ic2Nyb2xsaW5nX2ZyYW1lIiBz
cmM9ImZyYW1lX3dpdGhfbmVzdGVkX3Njcm9sbGluZ19mcmFtZV9vdXRfb2Zfdmlldy5odG1sIiB3
aWR0aD0iODAwIiBoZWlnaHQ9IjE1MCIgPjwvaWZyYW1lPgorICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfbm9uX3Njcm9sbGluZ19mcmFtZS5o
dG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Ny
b2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9ub25fc2Nyb2xsaW5nX2ZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBhNDkzZmE1ZDBiCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Ny
b2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9ub25fc2Nyb2xsaW5nX2ZyYW1lLmh0bWwKQEAgLTAsMCAr
MSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+V2VsY29t
ZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PgorICAgIDxpZnJhbWUgbmFt
ZT0ic2Nyb2xsaW5nX2ZyYW1lIiBzcmM9ImZyYW1lX3dpdGhfaGVpZ2h0X2Fib3ZlXzIwMC5odG1s
IiB3aWR0aD0iODAwIiBoZWlnaHQ9IjIwMCIgc2Nyb2xsaW5nPSJubyI+PC9pZnJhbWU+CisgIDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9wYXJ0
aWFsbHlfaGlkZGVuX2VsZW1lbnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfcGFydGlhbGx5X2hp
ZGRlbl9lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmNhNWY3MTUxMzk2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9wYXJ0aWFs
bHlfaGlkZGVuX2VsZW1lbnQuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5QYWdlIHdpdGggcGFydGlhbGx5IGhpZGRlbiBlbGVt
ZW50PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDoyMDBweDsg
aGVpZ2h0OiAyMDBweDsgb3ZlcmZsb3c6IGF1dG87Ij4KKyAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6
IDE3NXB4OyB3aWR0aDogMjQwcHg7Ij5QbGFjZWhvbGRlcjwvZGl2PgorICAgIDxkaXY+CisgICAg
ICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgc3R5bGU9ImhlaWdodDogNDBweDsgYm94LXNpemluZzog
Ym9yZGVyLWJveCIgaWQ9ImJ0biIgb25jbGljaz0id2luZG93LmxvY2F0aW9uPSd0YXJnZXRfcGFn
ZS5odG1sJyI+Q2xpY2sgbWUhPC9idXR0b24+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9zY3JvbGxpbmdfZnJhbWUu
aHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nj
cm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfc2Nyb2xsaW5nX2ZyYW1lLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNiNWQ1M2E0NGJhCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xs
aW5nX3Rlc3RzL3BhZ2Vfd2l0aF9zY3JvbGxpbmdfZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5XZWxjb21lIFBhZ2U8
L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+CisgICAgPGlmcmFtZSBuYW1lPSJzY3Jv
bGxpbmdfZnJhbWUiIHNyYz0iZnJhbWVfd2l0aF9oZWlnaHRfYWJvdmVfMjAwLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iMjAwIiA+PC9pZnJhbWU+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9zY3JvbGxpbmdfZnJhbWVfb3V0X29mX3Zp
ZXcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfc2Nyb2xsaW5nX2ZyYW1lX291dF9vZl92aWV3Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkZjExMTVjMjRmCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9zY3JvbGxpbmdfZnJhbWVfb3V0X29m
X3ZpZXcuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgIDx0aXRsZT5XZWxjb21lIFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxk
aXYgc3R5bGU9ImhlaWdodDogNTAwMHB4OyI+UGxhY2Vob2xkZXI8L2Rpdj4KKyAgPGRpdj4KKyAg
ICA8aWZyYW1lIG5hbWU9InNjcm9sbGluZ19mcmFtZSIgc3JjPSJmcmFtZV93aXRoX2hlaWdodF9h
Ym92ZV8yMDAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSIyMDAiID48L2lmcmFtZT4KKyAgPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3RhbGxf
ZnJhbWUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfdGFsbF9mcmFtZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iN2NmYWY1YTNhOQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9s
bGluZ190ZXN0cy9wYWdlX3dpdGhfdGFsbF9mcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPldlbGNvbWUgUGFnZTwvdGl0
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj4KKyAgICA8aWZyYW1lIG5hbWU9InRhbGxfZnJh
bWUiIHNyYz0iZnJhbWVfd2l0aF9oZWlnaHRfYWJvdmVfMjAwMC5odG1sIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjI1MDAiID48L2lmcmFtZT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9z
Y3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3lfb3ZlcmZsb3dfYXV0by5odG1sIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3Bh
Z2Vfd2l0aF95X292ZXJmbG93X2F1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uYjU3MTZlNzMxMmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93
aXRoX3lfb3ZlcmZsb3dfYXV0by5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVyZmxvdzogYXV0bzwvdGl0
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0id2lkdGg6MTAwJTsgaGVpZ2h0OiA1
MDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgb3ZlcmZsb3cteTogYXV0bzsiPgorICAgIDxkaXYgc3R5
bGU9ImhlaWdodDogNTAwMHB4OyB3aWR0aDogNTAwMHB4OyI+UGxhY2Vob2xkZXI8L2Rpdj4KKyAg
ICA8ZGl2PgorICAgICAgPGEgaWQ9ImxpbmsiIGhyZWY9InRhcmdldF9wYWdlLmh0bWwiPkNsaWNr
IG1lITwvYT4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3Jv
bGxpbmdfdGVzdHMvdGFyZ2V0X3BhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy90YXJnZXRfcGFnZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNDU3YTgyMmY2YwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3Njcm9sbGluZ190ZXN0cy90YXJnZXRfcGFnZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNsaWNrZWQgU3VjY2Vzc2Z1bGx5
ITwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5DbGlja2VkIFN1Y2Nlc3NmdWxseSE8L2gx
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NlbGVj
dFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3NlbGVjdFBhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uYjdiMjViNGIyMzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zZWxlY3RQYWdlLmh0bWwKQEAgLTAsMCArMSw3MCBA
QAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlv
bmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+TXVsdGlwbGUgU2VsZWN0aW9uIHRlc3Qg
cGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNlbGVjdCBpZD0ic2VsZWN0V2l0aG91
dE11bHRpcGxlIj4KKyAgICA8b3B0aW9uIHZhbHVlPSJvbmUiPm9uZTwvb3B0aW9uPgorICAgIDxv
cHRpb24gdmFsdWU9InR3byIgLz50d288L29wdGlvbj4KKyAgPC9zZWxlY3Q+CisKKyAgPHNlbGVj
dCBpZD0ic2VsZWN0V2l0aE11bHRpcGxlRXF1YWxzTXVsdGlwbGUiIG11bHRpcGxlPSJtdWx0aXBs
ZSI+CisgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiIGxhYmVsPSJlbW1lbnRhbCI+RW1t
ZW50YWw8L29wdGlvbj4KKyAgICA8b3B0aW9uIGxhYmVsPSJyb3F1ZWZvcnQiPlJvcXVlZm9ydDwv
b3B0aW9uPgorICAgIDxvcHRpb24gbGFiZWw9InBhcm1pZ2lhbm8iPlBhcm1pZ2lhbm88L29wdGlv
bj4KKyAgICA8b3B0aW9uIGxhYmVsPSJjaGVkZGFyIj5DaGVkZGFyPC9vcHRpb24+CisgIDwvc2Vs
ZWN0PgorCisgIDxzZWxlY3QgaWQ9InNlbGVjdFdpdGhFbXB0eVN0cmluZ011bHRpcGxlIiBtdWx0
aXBsZT0iIj4KKyAgICA8b3B0aW9uIHZhbHVlPSJvbmUiPm9uZTwvb3B0aW9uPgorICAgIDxvcHRp
b24gdmFsdWU9InR3byI+dHdvPC9vcHRpb24+CisgIDwvc2VsZWN0PgorCisgIDxzZWxlY3QgaWQ9
InNlbGVjdFdpdGhNdWx0aXBsZVdpdGhvdXRWYWx1ZSIgbXVsdGlwbGU+CisgICAgPG9wdGlvbiB2
YWx1ZT0ib25lIj5vbmU8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJ0d28iPnR3bzwvb3B0
aW9uPgorICA8L3NlbGVjdD4KKworICA8c2VsZWN0IGlkPSJzZWxlY3RXaXRoUmFuZG9tTXVsdGlw
bGVWYWx1ZSIgbXVsdGlwbGU9InNvbWV0aGluZ0Vsc2UiPgorICAgIDxvcHRpb24gdmFsdWU9Im9u
ZSI+b25lPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0idHdvIj50d288L29wdGlvbj4KKyAg
PC9zZWxlY3Q+CisKKyAgPHNlbGVjdD4KKyAgICA8b3B0Z3JvdXAgbGFiZWw9Ikdyb3VwIj4KKyAg
ICAgIDxvcHRpb24gdmFsdWU9Im9uZSI+b25lPC9vcHRpb24+CisgICAgICA8b3B0aW9uIGlkPSJ0
d28taW4tZ3JvdXAiIHZhbHVlPSJ0d28iPnR3bzwvb3B0aW9uPgorICAgIDwvb3B0Z3JvdXA+Cisg
IDwvc2VsZWN0PgorCisgIDxzZWxlY3QgaWQ9InNlbGVjdFdpdGhNdWx0aXBsZUxvbmdMaXN0IiBt
dWx0aXBsZT4KKyAgICA8b3B0aW9uPm9uZTwvb3B0aW9uPgorICAgIDxvcHRpb24+dHdvPC9vcHRp
b24+CisgICAgPG9wdGlvbj50aHJlZTwvb3B0aW9uPgorICAgIDxvcHRpb24+Zm91cjwvb3B0aW9u
PgorICAgIDxvcHRpb24+Zml2ZTwvb3B0aW9uPgorICAgIDxvcHRpb24+c2l4PC9vcHRpb24+Cisg
IDwvc2VsZWN0PgorCisgIDxzZWxlY3QgaWQ9Im5hcnJvdyIgc3R5bGU9IndpZHRoOiA1MHB4OyI+
CisgICAgPG9wdGlvbiB2YWx1ZT0iZXZhbG9uIj5MYUNsYXJlIEZhcm1zIEV2YWxvbiB3aXRoIEN1
bW1pbjwvb3B0aW9uPgorICAgIDxvcHRpb24gdmFsdWU9InNhdm91cmluZSI+WWFycmEgVmFsbGV5
IFZpbnRhZ2UgU2F2b3VyaW5lPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0iY2hlZGRhciI+
QXZvbmxlYSBDbG90aGJvdW5kIENoZWRkYXI8L29wdGlvbj4KKyAgPC9zZWxlY3Q+CisKKyAgPHNl
bGVjdCBpZD0idmlzaWJpbGl0eSI+CisgICAgPG9wdGlvbiB2YWx1ZT0icmVndWxhciIgY2xhc3M9
InJlZ3VsYXIiPlJlZ3VsYXI8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJkaXNhYmxlZCIg
ZGlzYWJsZWQ9ImRpc2FibGVkIiBjbGFzcz0iZGlzYWJsZWQiPkRpc2FibGVkPC9vcHRpb24+Cisg
ICAgPG9wdGlvbiB2YWx1ZT0iaGlkZGVuIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyIgY2xh
c3M9ImhpZGRlbiI+SGlkZGVuPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0iaW52aXNpYmxl
IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIGNsYXNzPSJpbnZpc2libGUiPkludmlzaWJsZTwvb3B0
aW9uPgorICA8L3NlbGVjdD4KKworICA8c2VsZWN0IGlkPSJ0cmFuc3BhcmVudCIgc3R5bGU9Im9w
YWNpdHk6IDA7Ij4KKyAgICA8b3B0aW9uIHZhbHVlPSJvbmUiPm9uZTwvb3B0aW9uPgorICAgIDxv
cHRpb24gdmFsdWU9InR3byI+dHdvPC9vcHRpb24+CisgIDwvc2VsZWN0PgorCis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9zZWxlY3RhYmxlSXRlbXMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NlbGVjdGFibGVJdGVtcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xOTBiMmFkYTdjMgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NlbGVj
dGFibGVJdGVtcy5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwg
bGFuZz0iZW4iPgorPGhlYWQ+CisJPG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+CisJPHRpdGxlPmpR
dWVyeSBVSSBTZWxlY3RhYmxlIC0gRGVmYXVsdCBmdW5jdGlvbmFsaXR5PC90aXRsZT4KKyAgICAg
ICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNzcy91aS1saWdodG5lc3MvanF1ZXJ5LXVp
LTEuOC4xLmN1c3RvbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4KKyAgICAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvanF1ZXJ5LTEuNC40Lm1pbi5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2pxdWVy
eS11aS0xLjguMTAuY3VzdG9tLm1pbi5qcyI+PC9zY3JpcHQ+CisJCisJPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKwkjZmVlZGJhY2sgeyBmb250LXNpemU6IDEuNGVtOyB9CisJI3NlbGVjdGFibGUg
LnVpLXNlbGVjdGluZyB7IGJhY2tncm91bmQ6ICNGRUNBNDA7IH0KKwkjc2VsZWN0YWJsZSAudWkt
c2VsZWN0ZWQgeyBiYWNrZ3JvdW5kOiAjRjM5ODE0OyBjb2xvcjogd2hpdGU7IH0KKwkjc2VsZWN0
YWJsZSB7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB3aWR0
aDogNjAlOyB9CisJI3NlbGVjdGFibGUgbGkgeyBtYXJnaW46IDNweDsgcGFkZGluZzogMC40ZW07
IGZvbnQtc2l6ZTogMS40ZW07IGhlaWdodDogMThweDsgfQorCTwvc3R5bGU+CisJPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCSQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAkKCIj
c2VsZWN0YWJsZSIpLnNlbGVjdGFibGUoeworICAgICAgICAgICAgICBzdG9wOiBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICB2YXIgaW5mb2RpdiA9ICQoIiNpbmZvZGl2IikuZW1wdHkoKTsK
KyAgICAgICAgICAgICAgICAkKCIudWktc2VsZWN0ZWQiLCB0aGlzKS5lYWNoKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgdmFyIHRoYXRfaWQgPSB0aGlzLmlkOworICAgICAgICAgICAg
ICAgICAgaW5mb2Rpdi5hcHBlbmQoJyAjJyArIHRoYXRfaWQpOworICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAkKCJi
dXR0b24iKS5idXR0b24oKTsKKyAgICAgICAgICAgICQoImJ1dHRvbiIpLmNsaWNrKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICB2YXIgbGlzdF9kaXNhYmxlZCA9ICQoIiNzZWxlY3RhYmxlIiku
c2VsZWN0YWJsZSgib3B0aW9uIiwgImRpc2FibGVkIik7CisgICAgICAgICAgICAgICQoIiNpbmZv
ZGl2IikuZmluZCgncCcpLmh0bWwoJ0Rpc2FibGVkOiAnICsgIWxpc3RfZGlzYWJsZWQpOworICAg
ICAgICAgICAgICAkKCIjc2VsZWN0YWJsZSIpLnNlbGVjdGFibGUoIm9wdGlvbiIsICJkaXNhYmxl
ZCIsICFsaXN0X2Rpc2FibGVkKTsKKyAgICAgICAgICAgICAgfSk7CisJfSk7CisJPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImRlbW8iPgorCis8b2wgaWQ9InNlbGVjdGFi
bGUiPgorCTxsaSBpZD0iaXRlbTEiIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+SXRlbSAxPC9s
aT4KKwk8bGkgaWQ9Iml0ZW0yIiBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQiPkl0ZW0gMjwvbGk+
CisJPGxpIGlkPSJpdGVtMyIgY2xhc3M9InVpLXdpZGdldC1jb250ZW50Ij5JdGVtIDM8L2xpPgor
CTxsaSBpZD0iaXRlbTQiIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+SXRlbSA0PC9saT4KKwk8
bGkgaWQ9Iml0ZW01IiBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQiPkl0ZW0gNTwvbGk+CisJPGxp
IGlkPSJpdGVtNiIgY2xhc3M9InVpLXdpZGdldC1jb250ZW50Ij5JdGVtIDY8L2xpPgorCTxsaSBp
ZD0iaXRlbTciIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+SXRlbSA3PC9saT4KKzwvb2w+CisK
KzwvZGl2PjwhLS0gRW5kIGRlbW8gLS0+CisKKzxkaXYgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24i
PgorCisgIDxwPkVuYWJsZSBhIERPTSBlbGVtZW50IChvciBncm91cCBvZiBlbGVtZW50cykgdG8g
YmUgc2VsZWN0YWJsZS4gRHJhdyBhIGJveCB3aXRoIHlvdXIgY3Vyc29yIHRvIHNlbGVjdCBpdGVt
cy4gSG9sZCBkb3duIHRoZSBDdHJsIGtleSB0byBtYWtlIG11bHRpcGxlIG5vbi1hZGphY2VudCBz
ZWxlY3Rpb25zLiA8L3A+CisKKyAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJzb21lYnV0dG9u
Ij5DbGljayB0byBsb2NrPC9idXR0b24+CisKKyAgPGRpdiBpZD0iaW5mb2RpdiI+CisgICAgPHA+
bm8gaW5mbzwvcD4KKyAgPC9kaXY+CisKKworPC9kaXY+PCEtLSBFbmQgZGVtby1kZXNjcmlwdGlv
biAtLT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nlc3Npb25Db29raWUuaHRtbCBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nlc3Npb25Db29raWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGFkYTI0ZWQzY2EKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9zZXNzaW9uQ29va2llLmh0bWwKQEAgLTAsMCArMSwyMSBAQAor77u/PCFET0NUWVBF
IGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0
dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgor
Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKyAg
ICA8dGl0bGU+PC90aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
ICAgZnVuY3Rpb24gc2V0Y29sb3Iod2hhdCl7CisgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUu
YmFja2dyb3VuZENvbG9yPXdoYXQKKyAgICAgICAgZG9jdW1lbnQuY29va2llPSJiZ2NvbG9yPSIr
d2hhdAorICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBwb3B1cG9uY2xpY2soKSB7CisgICAgICAg
IG15X3dpbmRvdyA9IHdpbmRvdy5vcGVuKCJzZXNzaW9uQ29va2llRGVzdC5odG1sIiwgImNvb2tp
ZWRlc3R3aW5kb3ciLCAic3RhdHVzPTEsd2lkdGg9MzUwLGhlaWdodD0xNTAiKTsKKyAgICB9ICAK
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpbnB1dCBpZD0ic2V0Y29sb3Ji
dXR0b24iIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlNldCBCYWNrZ3JvdW5kIENvbG9yIiBvbmNsaWNr
PSJzZXRjb2xvcignIzgwRkZGRicpIi8+CisgICAgPGlucHV0IGlkPSJvcGVud2luZG93YnV0dG9u
IiB0eXBlPSJidXR0b24iIHZhbHVlPSJPcGVuIE5ldyBXaW5kb3ciIG9uY2xpY2s9InBvcHVwb25j
bGljaygpIi8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zZXNzaW9uQ29va2llRGVzdC5odG1sIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Vzc2lvbkNv
b2tpZURlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjVl
MmVmMmU0Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9zZXNzaW9uQ29va2llRGVzdC5odG1sCkBAIC0wLDAgKzEsMzQg
QEAKK++7vzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5z
aXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFu
c2l0aW9uYWwuZHRkIj4KKworPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiPgorPGhlYWQ+CisgICAgPHRpdGxlPlNlc3Npb24gY29va2llIGRlc3RpbmF0aW9uPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgLy9HZXQgY29va2ll
IHJvdXRpbmUgYnkgU2hlbGxleSBQb3dlcnMgCisgICAgZnVuY3Rpb24gZ2V0X2Nvb2tpZShOYW1l
KSB7CisgICAgICAgIHZhciBzZWFyY2ggPSBOYW1lICsgIj0iOworICAgICAgICB2YXIgcmV0dXJu
dmFsdWUgPSAiIjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZS5sZW5ndGggPiAwKSB7Cisg
ICAgICAgICAgICBvZmZzZXQgPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZihzZWFyY2gpOworICAg
ICAgICAgICAgLy8gaWYgY29va2llIGV4aXN0cworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSAt
MSkgeworICAgICAgICAgICAgICAgIG9mZnNldCArPSBzZWFyY2gubGVuZ3RoOworICAgICAgICAg
ICAgICAgIC8vIHNldCBpbmRleCBvZiBiZWdpbm5pbmcgb2YgdmFsdWUKKyAgICAgICAgICAgICAg
ICBlbmQgPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZigiOyIsIG9mZnNldCk7CisgICAgICAgICAg
ICAgICAgLy8gc2V0IGluZGV4IG9mIGVuZCBvZiBjb29raWUgdmFsdWUKKyAgICAgICAgICAgICAg
ICBpZiAoZW5kID09IC0xKSBlbmQgPSBkb2N1bWVudC5jb29raWUubGVuZ3RoOworICAgICAgICAg
ICAgICAgIHJldHVybnZhbHVlPXVuZXNjYXBlKGRvY3VtZW50LmNvb2tpZS5zdWJzdHJpbmcob2Zm
c2V0LCBlbmQpKQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXR1
cm52YWx1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRjb2xvcigpeworICAgICAgICBkb2N1
bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvcj1nZXRfY29va2llKCJiZ2NvbG9yIikKKyAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldGNvbG9yKCkiPgor
VGhpcyBpcyB0aGUgY29va2llIGRlc3RpbmF0aW9uIHBhZ2UuCis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9zaW1wbGUueG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvc2ltcGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MDFmNGM4N2NjZDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9zaW1wbGUueG1sCkBAIC0wLDAgKzEsNSBAQAorPHhtbD4K
KyAgPGZvbz4KKyAgICA8YmFyPmJhejwvYmFyPgorICA8L2Zvbz4KKzwveG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NpbXBsZVRlc3QuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NpbXBsZVRlc3QuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdmNmQ4YmQ0ZDQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zaW1w
bGVUZXN0Lmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PkhlbGxvIFdlYkRyaXZlcjwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iIiBuYW1lPSJi
b2R5Ij4KKzxoMT5IZWFkaW5nPC9oMT4KKworPHAgaWQ9Im9uZWxpbmUiPkEgc2luZ2xlIGxpbmUg
b2YgdGV4dDwvcD4KKzxwIGlkPSJoaWRkZW5saW5lIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVu
Ij5BIGhpZGRlbiBsaW5lIG9mIHRleHQ8L3A+CisKKzxkaXYgaWQ9Im11bHRpbGluZSI+CisgICAg
PHA+QSBkaXYgY29udGFpbmluZzwvcD4KKyAgICBNb3JlIHRoYW4gb25lIGxpbmUgb2YgdGV4dDxi
ci8+CisKKyAgICA8ZGl2PmFuZCBibG9jayBsZXZlbCBlbGVtZW50czwvZGl2PgorPC9kaXY+CisK
KzxzcGFuIGlkPSJzcGFuIj5BbiBpbmxpbmUgZWxlbWVudDwvc3Bhbj4KKworPHAgaWQ9ImxvdHNv
ZnNwYWNlcyI+VGhpcyBsaW5lIGhhcyBsb3RzCisKKyAgICBvZiBzcGFjZXMuCis8L3A+CisKKzxw
IGlkPSJuYnNwIj5UaGlzIGxpbmUgaGFzIGEmbmJzcDtub24tYnJlYWtpbmcgc3BhY2U8L3A+CisK
KzxwIGlkPSJuYnNwYW5kc3BhY2VzIj5UaGlzIGxpbmUgaGFzIGEgJm5ic3A7IG5vbi1icmVha2lu
ZyBzcGFjZSBhbmQgc3BhY2VzPC9wPgorCis8cCBpZD0ibXVsdGlsaW5lbmJzcCI+VGhlc2UgbGlu
ZXMgJm5ic3A8YnIgLz4mbmJzcCBoYXZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIE5CU1BzJm5ic3A7
Jm5ic3A7PC9wPgorCis8cCBpZD0iaW5saW5lIj5UaGlzIDxzcGFuIGlkPSJpbmxpbmVzcGFuIj4g
ICAgbGluZSBoYXMgPGVtPnRleHQ8L2VtPgk8L3NwYW4+IHdpdGhpbiBlbGVtZW50cyB0aGF0IGFy
ZSBtZWFudCB0byBiZSBkaXNwbGF5ZWQKKyAgICA8IS0tIG5vdCBhcyBhIGJsb2NrIGJ1dCAtLT4g
aW5saW5lPC9wPgorCis8ZGl2IGlkPSJkaXYtd2l0aC1wcmUiPgorPHA+YmVmb3JlIHByZTwvcD4K
KzxwcmUgaWQ9InByZWZvcm1hdHRlZCI+ICAgVGhpcyBzZWN0aW9uIGhhcyBhIHByZWZvcm1hdHRl
ZAorICAgIHRleHQgYmxvY2sgICAgCisgIHNwbGl0IGluIGZvdXIgbGluZXMKKyAgICAgICAgIDwv
cHJlPgorPHA+YWZ0ZXIgcHJlPC9wPgorPC9kaXY+CisKKzxkaXYgaWQ9InR3b2Jsb2NrcyI+PHA+
U29tZSB0ZXh0PC9wPjxwPlNvbWUgbW9yZSB0ZXh0PC9wPjwvZGl2PgorCis8ZGl2IGlkPSJuZXN0
ZWRibG9ja3MiPkNoZWVzZSA8ZGl2PjxwPlNvbWUgdGV4dDwvcD48ZGl2PjxwPlNvbWUgbW9yZSB0
ZXh0PC9wPjxwPmFuZCBhbHNvPC9wPjwvZGl2PjwvZGl2PkJyaWU8L2Rpdj4KKworPGRpdiBpZD0i
Y29sbGFwc2luZ3RleHQiPjxzcGFuPjwvc3Bhbj48ZGl2PkhlbGxvLCB3b3JsZDwvZGl2PjxzcGFu
Pjwvc3Bhbj48L2Rpdj4KKworPGRpdiBpZD0id2l0aERvY3VtZW50V3JpdGUiPgorPHNjcmlwdD4K
K2RvY3VtZW50LndyaXRlKCJ3aXRoIGRvY3VtZW50LndyaXRlIik7Citkb2N1bWVudC53cml0ZSgi
IGFuZCB3aXRoIGRvY3VtZW50LndyaXRlIGFnYWluIik7Cis8L3NjcmlwdD4KKzwvZGl2PgorCis8
Zm9ybSBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCI+CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNrYm94MSI+CisgICAgICAgIDxsYWJlbCBpZD0ibGFiZWwx
IiBmb3I9ImNoZWNrYm94MSI+Zm9vPGJyIC8+YmFyPC9sYWJlbD4KKyAgICA8L3A+Cis8L2Zvcm0+
CisKKzxkaXYgaWQ9ImxpbmtzIj4KKzxhIGhyZWY9IiI+ICAgbGluayB3aXRoIGxlYWRpbmcgc3Bh
Y2U8L2E+Cis8YSBocmVmPSIiIGlkPSJsaW5rV2l0aFRyYWlsaW5nU3BhY2UiPmxpbmsgd2l0aCB0
cmFpbGluZyBzcGFjZSAgIAkJCis8L2E+Cis8YSBocmVmPSIiPjxiPmxpbmsgd2l0aCBmb3JtYXR0
aW5nIHRhZ3M8L2I+PC9hPgorPGEgaHJlZj0iIiBpZD0icXVvdGUiPmxpbmsgd2l0aCAiIChkb3Vi
bGUgcXVvdGUpPC9hPgorPGEgaHJlZj0iIiBpZD0ic3F1b3RlIj5saW5rIHdpdGggJyAoc2luZ2xl
IHF1b3RlKTwvYT4KKzxhIGhyZWY9IiIgaWQ9ImJhY2tzbGFzaCI+bGluayB3aXRoIFwgKGJhY2tz
bGFzaCk8L2E+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6ODAlIj48YSBocmVm
PSJyZXN1bHRQYWdlLmh0bWwiIGlkPSJtdWx0aWxpbmVsaW5rIj50aGlzIGxpbmsgc2hvdWxkIGJy
ZWFrPGJyIC8+b24gbXVsdGlwbGUgbGluZXM8L2E+PC9kaXY+CisKKzxkaXYgbmFtZT0ic29tZURp
diI+VG9wIGxldmVsPC9kaXY+Cis8ZGl2IGlkPSJjb250YWluc1NvbWVEaXYiPgorICA8ZGl2IG5h
bWU9InNvbWVEaXYiPk5lc3RlZDwvZGl2PgorPC9kaXY+CisKKzx0YWJsZSBpZD0id3JhcHBpbmd0
ZXh0Ij4KKyAgICA8dGJvZHk+CisgICAgICAgIDx0cj48dGQgc3R5bGU9IndpZHRoOiAxMHB4OyI+
PHNwYW4+YmVmb3JlU3BhY2U8L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3Bhbj5hZnRlclNwYWNlPC9z
cGFuPjwvdGQ+PC90cj4KKyAgICA8L3Rib2R5PgorPC90YWJsZT4KKworPCEtLSBIZXJlIGNvbWVz
IGFuIGludmFsaWQgPGltZz4gdGFnIHdoaWNoIGhhcyBubyBzcmMgYXR0cmlidXRlIC4uLiAtLT4K
KzxpbWcgaWQ9ImludmFsaWRJbWdUYWciIC8+CisKKzxpbWcgaWQ9InZhbGlkSW1nVGFnIiBzcmM9
Imljb24uZ2lmIiAvPgorPGEgaWQ9InZhbGlkQW5jaG9yVGFnIiBocmVmPSJpY29uLmdpZiI+YSBs
aW5rIHRvIGFuIGljb248L2E+CisKKzxzcGFuIGlkPSJzaW1wbGVKc29uVGV4dCI+e2E9ImIiLCBj
PTEsIGQ9dHJ1ZX08L3NwYW4+Cis8c3BhbiBpZD0iY29tcGxleEpzb25UZXh0Ij57YT0iXFxiXFxc
IidcJyJ9PC9zcGFuPgorCis8c3BhbiBpZD0idHJpbW1lZFNwYWNlIj4gIOKAgOKAgeKAguKAg+KA
hOKAheKAhuKAh+KAiOKAieKAiuKAi+KAjOKAjeKAr+KBn+KBoOOAgHRlc3QgIOKAgOKAgeKAguKA
g+KAhOKAheKAhuKAh+KAiOKAieKAiuKAi+KAjOKAjeKAr+KBn+KBoOOAgDwvc3Bhbj4KKworPGJy
Lz4KKzxhIGlkPSJjYXBpdGFsaXplZCIgc3R5bGU9InRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXpl
Ij5IZWxsbywgd29ybGQhIGJsYS1ibGEtQkxBPC9hPjxici8+Cis8YSBpZD0ibG93ZXJjYXNlZCIg
c3R5bGU9InRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UiPkhlbGxvLCB3b3JsZCEgYmxhLWJsYS1C
TEE8L2E+PGJyLz4KKzxhIGlkPSJ1cHBlcmNhc2VkIiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZSI+SGVsbG8sIHdvcmxkISBibGEtYmxhLUJMQTwvYT48YnIvPgorCis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9zaW5nbGVfdGV4dF9pbnB1dC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2luZ2xlX3RleHRfaW5wdXQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWY1ODMwMDU5M2YKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9z
aW5nbGVfdGV4dF9pbnB1dC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHRpdGxlPkJhc2ljS2V5Ym9hcmRJbnRlcmZhY2VUZXN0PC90aXRsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGZvcm0gYWN0aW9uPSIjIj4KKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRleHRJ
bnB1dCIgLz4KKzwvZm9ybT4KKzwvYm9keT4KKzwvaHRtbD4KKworCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zbG93TG9hZGluZ0Fs
ZXJ0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9zbG93TG9hZGluZ0FsZXJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmE2MjE2ZTM3NTI1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2xvd0xvYWRpbmdBbGVydC5odG1sCkBAIC0w
LDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5zbG93
TG9hZGluZ0FsZXJ0PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJ3aW5kb3cuc2V0
VGltZW91dChmdW5jdGlvbigpIHsgd2luZG93LmFsZXJ0KCdMb29rLCBhbiBhbGVydCEnKTsgfSwg
MjAwKTsiPgorPC9ib2R5PgorCis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvc2xvd0xvYWRpbmdSZXNvdXJjZVBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nsb3dMb2FkaW5nUmVzb3VyY2VQYWdlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAyNzk2YzM0YWUxCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvc2xvd0xvYWRpbmdSZXNvdXJjZVBhZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8aHRtbD4K
KzxoZWFkPgorICAgIDx0aXRsZT5UaGlzIHBhZ2UgbG9hZHMgc29tZXRoaW5nIHNsb3dseTwvdGl0
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHAgaWQ9InBlYXMiPlNpbXVsYXRlIHRoZSBzaXR1YXRp
b24gd2hlcmUgYSB3ZWItYnVnIG9yIGFuYWx5dGljcyBzY3JpcHQgdGFrZXMgd2FhYXkKKyAgdG9v
IGxvbmcgdG8gcmVzcG9uZC4gTm9ybWFsbHkgdGhlc2UgdGhpbmdzIGFyZSBsb2FkZWQgaW4gYW4g
aWZyYW1lLCB3aGljaCBpcworICAgICAgd2hhdCB3ZSdyZSBkb2luZyBoZXJlLjwvcD4KKworICA8
aW1nIHNyYz0ic2xlZXA/dGltZT03Ij48L2ltZz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nsb3df
bG9hZGluZ19pZnJhbWVzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9zbG93X2xvYWRpbmdfaWZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMDA3MjQ4ZTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nsb3dfbG9hZGlu
Z19pZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+
UGFnZSB3aXRoIHNsb3cgbG9hZGluZyBpRnJhbWVzPC90aXRsZT4KKyAgPC9oZWFkPgorICA8Ym9k
eT4KKyAgICA8IS0tIFRha2VzIDMgc2Vjb25kcyB0byBsb2FkIC0tPgorICAgIDxpZnJhbWUgc3Jj
PSIvY29tbW9uL3NsZWVwP3RpbWU9MyI+PC9pZnJhbWU+CisKKyAgICA8IS0tIEltcG9ydGFudDog
ZG8gbm90IGFkZCBhIHNyYyBhdHRyaWJ1dGUhIC0tPgorICAgIDxpZnJhbWUgaWQ9Im5vU3JjIj48
L2lmcmFtZT4KKyAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3N0eWxlZFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3N0eWxlZFBhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMzA4MTBmMDkxMzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zdHlsZWRQYWdlLmh0bWwKQEAgLTAs
MCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+U3R5
bGVkIFBhZ2U8L3RpdGxlPgorICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7
CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykuaW5uZXJIVE1MID0gIjxwPiIg
KyBtZXNzYWdlICsgIjwvcD4iCisgICAgfQorICA8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4Ij48L2Rpdj4KKworPGZvcm0gYWN0aW9uPSIjIiBt
ZXRob2Q9ImdldCIgb25zdWJtaXQ9InJldHVybiBmYWxzZTsiPgorICA8aW5wdXQgbmFtZT0ic2Vh
cmNoQm94Ij4KKyAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYnRuIiBzdHlsZT0icGFkZGlu
Zy10b3A6IDRweDsgcGFkZGluZy1ib3R0b206IDRweCIgdmFsdWU9IlNlYXJjaCIgb25jbGljaz0i
bG9nKCdjbGljaycpOyI+Cis8L2Zvcm0+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKzxkaXYg
c3R5bGU9ImhlaWdodDogNDAwMHB4Ij5Db250ZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisK
KworCisKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3N2Z1BpZWNoYXJ0LnhodG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvc3ZnUGllY2hhcnQueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJmMDYwZmRlZGEzCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc3ZnUGllY2hhcnQu
eGh0bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG
LTgiPz4KKzwhRE9DVFlQRSBodG1sIAorICAgICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAx
LjAgU3RyaWN0Ly9FTiIKKyAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3ho
dG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIgorICAgICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKKyAgICAg
IHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKzxoZWFkPgorICA8
dGl0bGU+UGllIENoYXJ0IFRlc3Q8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgIGZ1bmN0aW9uIG1hcmtDbGljayhpbnB1dCkgeworICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOworICAgIGVs
ZW1lbnQuaW5uZXJIVE1MID0gaW5wdXQ7CisgIH0KKzwvc2NyaXB0PgorICA8ZGl2IGlkPSJzb21l
VGV4dCI+CisgICAgU29tZSB0ZXh0IGZvciB0aGUgY2hhcnQuCisgIDwvZGl2PgorICA8ZGl2IGlk
PSJyZXN1bHQiPk5vdGhpbmcuPC9kaXY+CisgIDxkaXYgaWQ9ImNoYXJ0X2NvbnRhaW5lciIgc3R5
bGU9IndpZHRoOiA0MDBweDsgaGVpZ2h0OiAyMjBweDsgYm9yZGVyOiAxcHggc29saWQgIzgwODA4
MDsiPgorPHN2ZzpzdmcgaWQ9ImNoYXJ0X2NvbnRhaW5lciIgaGVpZ2h0PSIyMjAiIHdpZHRoPSI0
MDAiPgorICAgIDxzdmc6ZGVmcyBpZD0iZGVmcyI+PC9zdmc6ZGVmcz4KKyAgICA8c3ZnOmc+Cisg
ICAgPHN2ZzpyZWN0IGZpbGw9IndoaXRlIiBoZWlnaHQ9IjIyMCIgd2lkdGg9IjQwMCIgeT0iMCIg
eD0iMCI+PC9zdmc6cmVjdD4KKyAgICA8c3ZnOnRleHQgZmlsbD0iYmxhY2siIGZvbnQtd2VpZ2h0
PSJib2xkIiBmb250LXNpemU9IjEwIiBmb250LWZhbWlseT0iQXJpYWwiIHk9IjE2IiB4PSIyMDAi
IHRleHQtYW5jaG9yPSJtaWRkbGUiPlRlc3QgQ2hhcnQ8L3N2Zzp0ZXh0PgorICAgIDxzdmc6cmVj
dCBmaWxsPSJ3aGl0ZSIgaGVpZ2h0PSI4MyIgd2lkdGg9Ijk3IiB5PSI3NyIgeD0iMjk2Ij48L3N2
ZzpyZWN0PgorICAgIDxzdmc6cmVjdCBmaWxsPSJyZWQiIHN0cm9rZT0ibm9uZSIgaGVpZ2h0PSIx
MiIgd2lkdGg9IjEyIiB5PSI4NCIgeD0iMzAzIj48L3N2ZzpyZWN0PgorICAgIDxzdmc6dGV4dCBm
aWxsPSJibGFjayIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IkFyaWFsIiB5PSI5NCIgeD0i
MzE4IiBvbmNsaWNrPSJtYXJrQ2xpY2soJ3RleHRfYXBwbGUnKSI+QXBwbGU8L3N2Zzp0ZXh0Pgor
ICAgIDxzdmc6cmVjdCBmaWxsPSJncmVlbiIgc3Ryb2tlPSJub25lIiBoZWlnaHQ9IjEyIiB3aWR0
aD0iMTIiIHk9IjEwMyIgeD0iMzAzIj48L3N2ZzpyZWN0PgorICAgIDxzdmc6dGV4dCBmaWxsPSJi
bGFjayIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IkFyaWFsIiB5PSIxMTMiIHg9IjMxOCI+
T3JhbmdlPC9zdmc6dGV4dD4KKyAgICA8c3ZnOnJlY3QgZmlsbD0iIzgwODA4MCIgc3Ryb2tlPSJu
b25lIiBoZWlnaHQ9IjEyIiB3aWR0aD0iMTIiIHk9IjEyMiIgeD0iMzAzIj48L3N2ZzpyZWN0Pgor
ICAgIDxzdmc6dGV4dCBmaWxsPSJibGFjayIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IkFy
aWFsIiB5PSIxMzIiIHg9IjMxOCI+QmFuYW5hPC9zdmc6dGV4dD4KKyAgICA8c3ZnOnJlY3QgZmls
bD0iZ3JlZW4iIHN0cm9rZT0ibm9uZSIgaGVpZ2h0PSIxMiIgd2lkdGg9IjEyIiB5PSIxNDEiIHg9
IjMwMyI+PC9zdmc6cmVjdD4KKyAgICA8c3ZnOnRleHQgZmlsbD0iYmxhY2siIGZvbnQtc2l6ZT0i
MTIiIGZvbnQtZmFtaWx5PSJBcmlhbCIgeT0iMTUxIiB4PSIzMTgiPk9yYW5nZTwvc3ZnOnRleHQ+
CisgICAgPHN2ZzpnIG9uY2xpY2s9Im1hcmtDbGljaygnc2xpY2VfcmVkJykiPjxzdmc6cGF0aCBm
aWxsPSJyZWQiIHN0cm9rZT0ibm9uZSIgZD0iTTE0OCwxMTlMMTQ4LDQzQTc2LDc2LDAsMCwxLDE5
OCw2MS43N1oiPjwvc3ZnOnBhdGg+PC9zdmc6Zz4KKyAgICA8c3ZnOmcgb25jbGljaz0ibWFya0Ns
aWNrKCdzbGljZV9ncmVlbicpIj48c3ZnOnBhdGggZmlsbD0iZ3JlZW4iIHN0cm9rZT0ibm9uZSIg
ZD0iTTE0OCwxMTlMMTk4LDYxLjc3QTc2LDc2LDAsMCwxLDIwMi45MywxNzEuNTJaIj48L3N2Zzpw
YXRoPjwvc3ZnOmc+CisgICAgPHN2ZzpnPjxzdmc6cGF0aCBmaWxsPSIjODA4MDgwIiBzdHJva2U9
Im5vbmUiIGQ9Ik0xNDgsMTE5TDIwMi45MywxNzEuNTJBNzYsNzYsMCwwLDEsNzIuMDgsMTIyLjQx
WiI+PC9zdmc6cGF0aD48L3N2ZzpnPgorICAgIDxzdmc6Zz48c3ZnOnBhdGggZmlsbD0iZ3JlZW4i
IHN0cm9rZT0ibm9uZSIgZD0iTTE0OCwxMTlMNzIuMDgsMTIyLjQxQTc2LDc2LDAsMCwxLDE0OCw0
M1oiPjwvc3ZnOnBhdGg+PC9zdmc6Zz4KKyAgICA8L3N2ZzpnPgorPC9zdmc6c3ZnPgorPHN2Zzpz
dmcgd2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjEyMHB4Ij4KKyAgPHN2ZzpkZXNjPkV4YW1wbGUgUm90
YXRlU2NhbGUgLSBSb3RhdGUgYW5kIHNjYWxlIHRyYW5zZm9ybXM8L3N2ZzpkZXNjPgorICA8c3Zn
OmcgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIzIiA+CisgICAgPCEt
LSBEcmF3IHRoZSBheGVzIG9mIHRoZSBvcmlnaW5hbCBjb29yZGluYXRlIHN5c3RlbSAtLT4KKyAg
ICA8c3ZnOmxpbmUgeDE9IjAiIHkxPSIxLjUiIHgyPSI0MDAiIHkyPSIxLjUiIC8+CisgICAgPHN2
ZzpsaW5lIHgxPSIxLjUiIHkxPSIwIiB4Mj0iMS41IiB5Mj0iMTIwIiAvPgorICA8L3N2ZzpnPgor
ICA8IS0tIEVzdGFibGlzaCBhIG5ldyBjb29yZGluYXRlIHN5c3RlbSB3aG9zZSBvcmlnaW4gaXMg
YXQgKDUwLDMwKQorICAgICAgIGluIHRoZSBpbml0aWFsIGNvb3JkLiBzeXN0ZW0gYW5kIHdoaWNo
IGlzIHJvdGF0ZWQgYnkgMzAgZGVncmVlcy4gLS0+CisgIDxzdmc6ZyB0cmFuc2Zvcm09InRyYW5z
bGF0ZSg1MCwzMCkiPgorICAgIDxzdmc6ZyB0cmFuc2Zvcm09InJvdGF0ZSgzMCkiIGlkPSJyb3Rh
dGUiPgorICAgICAgPHN2ZzpnIGZpbGw9Im5vbmUiIHN0cm9rZT0icmVkIiBzdHJva2Utd2lkdGg9
IjMiID4KKyAgICAgICAgPHN2ZzpsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjUwIiB5Mj0iMCIgLz4K
KyAgICAgICAgPHN2ZzpsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSI1MCIgLz4KKyAgICAg
IDwvc3ZnOmc+CisgICAgICA8c3ZnOnRleHQgeD0iMCIgeT0iMCIgZm9udC1zaXplPSIyMCIgZm9u
dC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9ImJsdWUiID4KKyAgICAgICAgQUJDIChyb3RhdGUpCisg
ICAgICA8L3N2Zzp0ZXh0PgorICAgIDwvc3ZnOmc+CisgIDwvc3ZnOmc+CisgIDwhLS0gRXN0YWJs
aXNoIGEgbmV3IGNvb3JkaW5hdGUgc3lzdGVtIHdob3NlIG9yaWdpbiBpcyBhdCAoMjAwLDQwKQor
ICAgICAgIGluIHRoZSBpbml0aWFsIGNvb3JkLiBzeXN0ZW0gYW5kIHdoaWNoIGlzIHNjYWxlZCBi
eSAxLjUuIC0tPgorICA8c3ZnOmcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjAwLDQwKSI+CisgICAg
PHN2ZzpnIHRyYW5zZm9ybT0ic2NhbGUoMS41KSI+CisgICAgICA8c3ZnOmcgZmlsbD0ibm9uZSIg
c3Ryb2tlPSJyZWQiIHN0cm9rZS13aWR0aD0iMyIgPgorICAgICAgICA8c3ZnOmxpbmUgeDE9IjAi
IHkxPSIwIiB4Mj0iNTAiIHkyPSIwIiAvPgorICAgICAgICA8c3ZnOmxpbmUgeDE9IjAiIHkxPSIw
IiB4Mj0iMCIgeTI9IjUwIiAvPgorICAgICAgPC9zdmc6Zz4KKyAgICAgIDxzdmc6dGV4dCB4PSIw
IiB5PSIwIiBmb250LXNpemU9IjIwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0iYmx1ZSIg
PgorICAgICAgICBBQkMgKHNjYWxlKQorICAgICAgPC9zdmc6dGV4dD4KKyAgICA8L3N2ZzpnPgor
ICA8L3N2ZzpnPgorPC9zdmc6c3ZnPgorICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHRvcDogMjMwcHg7IGxlZnQ6IDQxMHB4OyBmb250
LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJweDsgZGlzcGxheTogbm9uZTsgIj5XT3Jhbmdl
PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lOyBwb3NpdGlvbjog
YWJzb2x1dGU7IHRvcDogMjMwcHg7IGxlZnQ6IDQxMHB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyBm
b250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJweDsiPldPcmFuZ2U8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3N2Z1Rlc3Quc3ZnIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvc3ZnVGVzdC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmM2Y2MyODM5MGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc3ZnVGVzdC5zdmcKQEAgLTAs
MCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgYmFzZVByb2Zp
bGU9ImZ1bGwiIHdpZHRoPSIxMDBweCIgaGVpZ2h0PSIxMDBweCIgdmlld0JveD0iMCAwIDEwMCAx
MDAiPgorICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJibHVl
IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjdCcpLnNldEF0dHJpYnV0ZSgn
ZmlsbCcsICdncmVlbicpIiAvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90YWJsZXMuaHRtbCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3RhYmxlcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMmJjOTU3Yjg4OAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Rh
Ymxlcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzND
Ly9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3Jn
L1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+SGVyZSBiZSB0
YWJsZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisKKzx0YWJsZSBpZD0iYmFzZSI+CisgIDx0
cj4KKyAgICA8dGQ+SGVsbG88L3RkPgorICAgIDx0ZD5Xb3JsZDwvdGQ+CisgICAgPHRkPihDaGVl
c2UhKTwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCis8dGFibGU+CisgIDx0ciBpZD0iaGlkZGVu
X3RleHQiPgorICAgIDx0ZD5zb21lIHRleHQKKyAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5v
bmU7Ij5zb21lIG1vcmUgdGV4dDwvZGl2PgorICAgIDwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgor
Cis8dGFibGU+CisgIDx0cj4KKyAgICA8dGggY29sc3Bhbj0iMyIgaWQ9InRoMSI+SGVhZGluZzwv
dGg+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQgaWQ9InRkMSI+RGF0YSAxPC90ZD4KKyAgICA8
dGQgY29sc3Bhbj0iMiIgaWQ9InRkMiI+RGF0YSAyPC90ZD4KKyAgPC90cj4KKzwvdGFibGU+CisK
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90aW55bWNl
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90
aW55bWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA2N2I2
NmNkOGU4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvdGlueW1jZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRpbnlNQ0U8L3RpdGxlPgorICA8c2Ny
aXB0IHNyYz0ianMvdGlueW1jZS5taW4uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0aW55bWNlLmluaXQoe3NlbGVjdG9yOid0ZXh0YXJlYSd9KSI+Cis8dGV4dGFyZWE+SW5p
dGlhbCBjb250ZW50PC90ZXh0YXJlYT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi90cmFuc2Zvcm1hYmxlLnhtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3RyYW5zZm9ybWFibGUueG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYjdlN2ZkNTg0YQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3RyYW5z
Zm9ybWFibGUueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+Cis8P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJ0cmFu
c2Zvcm1hYmxlLnhzbCI/PgorPCFET0NUWVBFIGh0bWwgWyA8IUVOVElUWSBuYnNwICImIzE2MDsi
PiBdPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOmh0
bWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOnVpPSJodHRwOi8vZHVtbXku
Y29tL215bmFtZXNwYWNlIj4KKyAgPGJvZHkgaWQ9J2JvZHknPgorICAgIDxwPkNsaWNrIHRoZSBi
dXR0b24uPC9wPgorICAgIDx1aTphcHAgdXJsPSJ4aHRtbFRlc3QuaHRtbCI+CisgICAgICA8dWk6
c29tZUJ1dHRvbiBpZD0ieCIgbmFtZT0ieSI+R28gdG8gYW5vdGhlciBwYWdlPC91aTpzb21lQnV0
dG9uPgorICAgIDwvdWk6YXBwPgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvdHJhbnNmb3JtYWJsZS54c2wgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90cmFuc2Zvcm1hYmxlLnhzbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTNkYjlmZGVkOTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90cmFuc2Zv
cm1hYmxlLnhzbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKworPHhz
bDpzdHlsZXNoZWV0IAorICAgIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wv
VHJhbnNmb3JtIiAKKyAgICB4bWxuczp1aT0iaHR0cDovL2R1bW15LmNvbS9teW5hbWVzcGFjZSIK
KwkgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiAKKwkgIHhtbG5zOmh0bWw9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCisgICAgdmVyc2lvbj0iMS4wIj4KKworICA8
eHNsOm91dHB1dCBtZXRob2Q9Imh0bWwiIAorICAgICAgZG9jdHlwZS1zeXN0ZW09Imh0dHA6Ly93
d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiCisgICAgICBkb2N0eXBl
LXB1YmxpYz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iIGluZGVudD0ieWVzIi8+
CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idWk6YXBwIj4KKyAgICA8Zm9ybT4KKyAgICAgIDx4
c2w6YXR0cmlidXRlIG5hbWU9ImFjdGlvbiI+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0
PSJAdXJsIiAvPgorICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgPHhzbDphcHBseS10ZW1w
bGF0ZXMgc2VsZWN0PSIuLyoiIC8+CisgICAgPC9mb3JtPgorICA8L3hzbDp0ZW1wbGF0ZT4KKwor
ICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ1aTpzb21lQnV0dG9uIj4KKyAgICA8aW5wdXQgdHlwZT0i
c3VibWl0Ij4KKyAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImlkIj4KKyAgICAgICAgPHhzbDp2
YWx1ZS1vZiBzZWxlY3Q9IkBpZCIgLz4KKyAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgIDx4
c2w6YXR0cmlidXRlIG5hbWU9Im5hbWUiPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0i
QG5hbWUiIC8+CisgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICA8eHNsOmF0dHJpYnV0ZSBu
YW1lPSJ2YWx1ZSI+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJub3JtYWxpemUtc3Bh
Y2UoLikiLz4KKyAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICA8L2lucHV0PgorICA8L3hzbDp0
ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi90cmFuc3BhcmVudFVwbG9hZC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvdHJhbnNwYXJlbnRVcGxvYWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODdiMDJiZmJjNTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90cmFuc3Bh
cmVudFVwbG9hZC5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgPHRpdGxlPlVwbG9hZCBGb3JtPC90aXRsZT4KKyAgPHN0eWxlPgorICAgIC5m
aWxlVXBsb2FkIHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIG92ZXJmbG93OiBo
aWRkZW47CisgICAgICBtYXJnaW46IDEwcHg7CisJICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZG
OworICAgICAgd2lkdGg6IDUwcHg7CisgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgfQor
ICAgIC5maWxlVXBsb2FkIGlucHV0LnVwbG9hZCB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICB0b3A6IDA7CisgICAgICByaWdodDogMDsKKyAgICAgIG1hcmdpbjogMDsKKyAgICAg
IHBhZGRpbmc6IDA7CisgICAgICBmb250LXNpemU6IDIwcHg7CisgICAgICBjdXJzb3I6IHBvaW50
ZXI7CisgICAgICBvcGFjaXR5OiAwOworICAgICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApOwor
ICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIH0KKyAg
PC9zdHlsZT4KKyAgPHNjcmlwdD4KKyAgICAgIHZhciBpbnRlcnZhbElkOworICAgICAgZnVuY3Rp
b24gb25UaWNrKCkgeworICAgICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd1cGxvYWRfbGFiZWwnKTsKKyAgICAgICAgICBsYWJlbC5pbm5lckhUTUwgKz0gJy4nOwor
ICAgICAgfQorCisgICAgICBmdW5jdGlvbiBvblVwbG9hZFN1Ym1pdCgpIHsKKyAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkX3RhcmdldCcpLmNvbnRlbnRXaW5kb3cuZG9j
dW1lbnQuYm9keS4KKyAgICAgICAgICBpbm5lckhUTUwgPSAnJzsKKyAgICAgICAgICB2YXIgbGFi
ZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkX2xhYmVsJyk7CisgICAgICAgICAg
bGFiZWwuaW5uZXJIVE1MID0gJ1VwbG9hZGluZyAiJyArIGRvY3VtZW50LmZvcm1zWzBdLnVwbG9h
ZC52YWx1ZSArICciJzsKKyAgICAgICAgICBsYWJlbC5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAg
ICAgICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbChvblRpY2ssIDUwMCk7CisgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIG9uVXBsb2FkRG9u
ZSgpIHsKKyAgICAgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBs
b2FkX2xhYmVsJyk7CisgICAgICAgICAgbGFiZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAg
ICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTsKKyAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxmb3JtIGFj
dGlvbj0iL2NvbW1vbi91cGxvYWQiIG1ldGhvZD0icG9zdCIgbmFtZT0idXBsb2FkX2Zvcm0iCisg
ICAgICB0YXJnZXQ9InVwbG9hZF90YXJnZXQiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEi
CisgICAgICBvbnN1Ym1pdD0ib25VcGxvYWRTdWJtaXQoKTsiPgorICA8ZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImZpbGVVcGxvYWQiPgorICAgICAgPHNwYW4+VXBsb2FkPC9zcGFuPgorICAgICAgPGlu
cHV0IGlkPSJ1cGxvYWQiIG5hbWU9InVwbG9hZCIgdHlwZT0iZmlsZSIgY2xhc3M9InVwbG9hZCIg
Lz4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PjxpbnB1dCBpZD0iZ28iIHR5cGU9InN1Ym1pdCIgdmFs
dWU9IkdvISIvPjwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBpZD0idXBsb2FkX2xhYmVsIiBzdHls
ZT0iZGlzcGxheTpub25lIj48L2Rpdj4KKyAgPGlmcmFtZSBzcmM9IiIgaWQ9InVwbG9hZF90YXJn
ZXQiIG5hbWU9InVwbG9hZF90YXJnZXQiCisgICAgICAgICAgc3R5bGU9IndpZHRoOjMwMHB4O2hl
aWdodDoyMDBweCI+CisgIDwvaWZyYW1lPgorPC9mb3JtPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
dW5kZXJzY29yZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvdW5kZXJzY29yZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi45MDRhNDQ0MWZiMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3VuZGVyc2NvcmUuaHRtbApAQCAtMCwwICsx
LDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Citf
ID0gWzEsIDIsIDNdOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91bmljb2RlX2x0ci5odG1sIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdW5pY29kZV9sdHIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjQ1YWNjNzRlY2UK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi91bmljb2RlX2x0ci5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgZGlyPSJsdHIiIGNsYXNz
PSJEdyI+CisgICAgPGRpdiBpZD0iRUgiPjxub2JyIGNsYXNzPSIiPuKAjlNvbWUgbm90ZXPigI48
L25vYnI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWQuaHRtbCBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3VwbG9hZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hY2EzOThhYjc0MwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L3VwbG9hZC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgPHRpdGxlPlVwbG9hZCBGb3JtPC90aXRsZT4KKyAgPHNjcmlwdD4KKyAgICB2YXIg
aW50ZXJ2YWxJZDsKKyAgICBmdW5jdGlvbiBvblRpY2soKSB7CisgICAgICB2YXIgbGFiZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkX2xhYmVsJyk7CisgICAgICBsYWJlbC5pbm5l
ckhUTUwgKz0gJy4nOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uVXBsb2FkU3VibWl0KCkgewor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZF90YXJnZXQnKS5jb250ZW50V2lu
ZG93LmRvY3VtZW50LmJvZHkuCisgICAgICAgICAgaW5uZXJIVE1MID0gJyc7CisgICAgICB2YXIg
bGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkX2xhYmVsJyk7CisgICAgICBs
YWJlbC5pbm5lckhUTUwgPSAnVXBsb2FkaW5nICInICsgZG9jdW1lbnQuZm9ybXNbMF0udXBsb2Fk
LnZhbHVlICsgJyInOworICAgICAgbGFiZWwuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgaW50
ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbChvblRpY2ssIDUwMCk7CisgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblVwbG9hZERvbmUoKSB7CisgICAgICB2YXIg
bGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkX2xhYmVsJyk7CisgICAgICBs
YWJlbC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwo
aW50ZXJ2YWxJZCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8Zm9ybSBhY3Rpb249Ii9jb21tb24vdXBsb2FkIiBtZXRob2Q9InBvc3Qi
IG5hbWU9InVwbG9hZF9mb3JtIgorICAgICAgdGFyZ2V0PSJ1cGxvYWRfdGFyZ2V0IiBlbmN0eXBl
PSJtdWx0aXBhcnQvZm9ybS1kYXRhIgorICAgICAgb25zdWJtaXQ9Im9uVXBsb2FkU3VibWl0KCk7
Ij4KKyAgPGRpdj4KKyAgICBFbnRlciBhIGZpbGUgdG8gdXBsb2FkOgorICAgIDxkaXY+PGlucHV0
IGlkPSJ1cGxvYWQiIG5hbWU9InVwbG9hZCIgdHlwZT0iZmlsZSIvPjwvZGl2PgorICAgIDxkaXY+
PGlucHV0IGlkPSJnbyIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28hIi8+PC9kaXY+CisgIDwvZGl2
PgorICA8ZGl2IGlkPSJ1cGxvYWRfbGFiZWwiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2Pgor
ICA8aWZyYW1lIHNyYz0iIiBpZD0idXBsb2FkX3RhcmdldCIgbmFtZT0idXBsb2FkX3RhcmdldCIK
KyAgICAgICAgICBzdHlsZT0id2lkdGg6MzAwcHg7aGVpZ2h0OjIwMHB4Ij4KKyAgPC9pZnJhbWU+
Cis8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWRfaW52aXNpYmxlLmh0bWwgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWRfaW52
aXNpYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmMTA5
MzExMTg4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvdXBsb2FkX2ludmlzaWJsZS5odG1sCkBAIC0wLDAgKzEsNDUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlVwbG9hZCBGb3JtPC90
aXRsZT4KKyAgPHNjcmlwdD4KKyAgICB2YXIgaW50ZXJ2YWxJZDsKKyAgICBmdW5jdGlvbiBvblRp
Y2soKSB7CisgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2Fk
X2xhYmVsJyk7CisgICAgICBsYWJlbC5pbm5lckhUTUwgKz0gJy4nOworICAgIH0KKworICAgIGZ1
bmN0aW9uIG9uVXBsb2FkU3VibWl0KCkgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3VwbG9hZF90YXJnZXQnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuCisgICAgICAgICAg
aW5uZXJIVE1MID0gJyc7CisgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndXBsb2FkX2xhYmVsJyk7CisgICAgICBsYWJlbC5pbm5lckhUTUwgPSAnVXBsb2FkaW5nICIn
ICsgZG9jdW1lbnQuZm9ybXNbMF0udXBsb2FkLnZhbHVlICsgJyInOworICAgICAgbGFiZWwuc3R5
bGUuZGlzcGxheSA9ICcnOworICAgICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbChv
blRpY2ssIDUwMCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBv
blVwbG9hZERvbmUoKSB7CisgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndXBsb2FkX2xhYmVsJyk7CisgICAgICBsYWJlbC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwor
ICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7CisgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Zm9ybSBhY3Rpb249Ii9j
b21tb24vdXBsb2FkIiBtZXRob2Q9InBvc3QiIG5hbWU9InVwbG9hZF9mb3JtIgorICAgICAgdGFy
Z2V0PSJ1cGxvYWRfdGFyZ2V0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIgorICAgICAg
b25zdWJtaXQ9Im9uVXBsb2FkU3VibWl0KCk7Ij4KKyAgPGRpdiBzdHlsZT0naGVpZ2h0OiAwOyB3
aWR0aDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsnPgorICAgIDxkaXY+PGlucHV0IGlkPSJ1cGxvYWQi
IG5hbWU9InVwbG9hZCIgdHlwZT0iZmlsZSIvPjwvZGl2PgorICA8L2Rpdj4KKyAgPGxhYmVsIGlk
PSJ2aXNpYmxlX2xhYmVsIiBmb3I9InVwbG9hZCI+VXBsb2FkPC9sYWJlbD4KKyAgPGRpdj48aW5w
dXQgaWQ9ImdvIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyEiLz48L2Rpdj4KKyAgPGRpdiBpZD0i
dXBsb2FkX2xhYmVsIiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj4KKyAgPGlmcmFtZSBzcmM9
IiIgaWQ9InVwbG9hZF90YXJnZXQiIG5hbWU9InVwbG9hZF90YXJnZXQiCisgICAgICAgICAgc3R5
bGU9IndpZHRoOjMwMHB4O2hlaWdodDoyMDBweCI+CisgIDwvaWZyYW1lPgorPC9mb3JtPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvdXNlckRlZmluZWRQcm9wZXJ0eS5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdXNlckRlZmluZWRQcm9wZXJ0eS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNDUzZTY5MjFiMQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3VzZXJEZWZpbmVkUHJvcGVydHkuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1s
PgorPGJvZHk+Cis8ZGl2IGlkPSJkIj48L2Rpdj4KKzxzY3JpcHQ+Citkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZCIpLmR5bmFtaWNQcm9wZXJ0eSA9ICdzYW1wbGVWYWx1ZSc7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3ZlcnlMYXJnZUNhbnZhcy5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdmVyeUxhcmdlQ2FudmFzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU0YTJhYmE0NmU0Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvdmVyeUxhcmdlQ2FudmFzLmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIj8+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1s
Omxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPlJlY3RhbmdsZXM8L3RpdGxl
PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gYXBwZW5k
TWVzc2FnZShtZXNzYWdlKSB7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0
JykuaW5uZXJIVE1MICs9IG1lc3NhZ2UKKyAgICAgICAgKyAiICI7CisgICAgfQorICA8L3Njcmlw
dD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjcjEgeworICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlOworICAgICAgbGVm
dDogMTAwcHg7CisgICAgICB0b3A6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
aGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICAjcjIgeworICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgbGVmdDogMjUwMHB4OworICAg
ICAgdG9wOiA1MHB4OworICAgICAgd2lkdGg6IDgwcHg7CisgICAgICBoZWlnaHQ6IDUwcHg7Cisg
ICAgfQorICAgICNyMyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgICBsZWZ0OiA2MHB4OworICAgICAgdG9wOiAxNTAwcHg7
CisgICAgICB3aWR0aDogODBweDsKKyAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgI3I0
IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGN5
YW47CisgICAgICBsZWZ0OiAyMjBweDsKKyAgICAgIHRvcDogMTgwcHg7CisgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgICNyNSB7CisgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgbGVm
dDogNjBweDsKKyAgICAgIHRvcDogMTYwMHB4OworICAgICAgd2lkdGg6IDgwcHg7CisgICAgICBo
ZWlnaHQ6IDUwcHg7CisgICAgfQorICAgICNyNiB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIGxlZnQ6IDI1ODFweDsKKyAg
ICAgIHRvcDogNTBweDsKKyAgICAgIHdpZHRoOiA4MHB4OworICAgICAgaGVpZ2h0OiA1MHB4Owor
ICAgIH0KKyAgICAjcmVzdWx0IHsKKyAgICAgIGJvcmRlcjogMTA7CisgICAgICBwYWRkaW5nOiA1
OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB0b3A6IDMwcHg7CisgICAgICB3aWR0aDogNDAw
cHg7CisgICAgICBoZWlnaHQ6IDIwcHg7CisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKyAgPGRpdiBpZD0icjEiIG9uY2xpY2s9
ImFwcGVuZE1lc3NhZ2UoJ0ZpcnN0JykiPkZpcnN0IFRhcmdldDwvZGl2PgorICA8ZGl2IGlkPSJy
MiIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgnU2Vjb25kJykiPlNlY29uZCBUYXJnZXQ8L2Rpdj4K
KyAgPGRpdiBpZD0icjMiIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ1RoaXJkJykiPlRoaXJkIFRh
cmdldDwvZGl2PgorICA8ZGl2IGlkPSJyNCIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgnRm91cnRo
JykiPkZvdXJ0aCBUYXJnZXQ8L2Rpdj4KKyAgPGRpdiBpZD0icjUiIG9uY2xpY2s9ImFwcGVuZE1l
c3NhZ2UoJ09PUFMyJykiPk5vdCBhIFRhcmdldDwvZGl2PgorICA8ZGl2IGlkPSJyNiIgb25jbGlj
az0iYXBwZW5kTWVzc2FnZSgnT09QUycpIj5Ob3QgYSBUYXJnZXQ8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3Zpc2liaWxpdHktY3NzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi92aXNpYmlsaXR5LWNzcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MGNjNjQ5Y2U4ZAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Zpc2liaWxp
dHktY3NzLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiBodHRwLWVxdWl2
PSJjb250ZW50LXR5cGUiIC8+Cis8dGl0bGU+VmlzaWJpbGl0eSB0ZXN0IHZpYSBDU1M8L3RpdGxl
PgorPHN0eWxlPgorCisuYm94LXBvcHVwIHsKKyAgYm9yZGVyIDogMXB4OworICBtaW4td2lkdGgg
OiAxNTBweDsKK30KK2JvZHkgeworICBvdmVyZmxvdyA6IGhpZGRlbjsKK30KKzwvc3R5bGU+PC9o
ZWFkPjxib2R5PgorPGRpdiBzdHlsZT0ibGVmdDogMzBweDsgdG9wOiAxMHB4OyB2aXNpYmlsaXR5
OiB2aXNpYmxlOyBwb3NpdGlvbjogYWJzb2x1dGU7IG92ZXJmbG93OiB2aXNpYmxlOyIKKyAgICAg
Y2xhc3M9ImJveC1wb3B1cCIgaWQ9InN1Z2dlc3QiPgorICAgIDxwPkhlbGxvIHdvcmxkLiBJIGxp
a2UgY2hlZXNlLjwvcD4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3dpbjMyZnJhbWVzZXQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3dpbjMyZnJhbWVzZXQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTA4YjgwZjhjMjEKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi93aW4z
MmZyYW1lc2V0Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxm
cmFtZXNldCBjb2xzPSIqLCAqLCAqIj4KKyAgICA8ZnJhbWUgbmFtZT0iZmlyc3QiIHNyYz0icGFn
ZS8xIi8+CisgICAgPGZyYW1lIG5hbWU9InNlY29uZCIgc3JjPSJwYWdlLzI/dGl0bGU9RmlzaCIv
PgorICAgIDxmcmFtZSBuYW1lPSJ0aGlyZCIgc3JjPSJmb3JtUGFnZS5odG1sIi8+Cis8L2ZyYW1l
c2V0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3dpbmRvd19zd2l0
Y2hpbmdfdGVzdHMvcGFnZV93aXRoX2ZyYW1lLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi93aW5kb3dfc3dpdGNoaW5nX3Rlc3RzL3BhZ2Vfd2l0
aF9mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTQ3
MzNiNWNmMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3dpbmRvd19zd2l0Y2hpbmdfdGVzdHMvcGFnZV93aXRoX2ZyYW1l
Lmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICA8dGl0bGU+VGVzdCBwYWdlIGZvciBXaW5kb3dTd2l0Y2hpbmdUZXN0LnRlc3RTaG91bGRGb2N1
c09uVGhlVG9wTW9zdEZyYW1lQWZ0ZXJTd2l0Y2hpbmdUb0FXaW5kb3c8L3RpdGxlPgorPC9oZWFk
PgorPGJvZHk+CisgIDxwPjxhIGlkPSJhLWxpbmstdGhhdC1vcGVucy1hLW5ldy13aW5kb3ciIHRh
cmdldD0ibmV3V2luZG93IiBocmVmPSJzaW1wbGVfcGFnZS5odG1sIj5PcGVuIG5ldyB3aW5kb3c8
L2E+PC9wPgorICA8ZGl2PgorICAgIDxpZnJhbWUgbmFtZT0ibXlmcmFtZSIgc3JjPSJzaW1wbGVf
cGFnZS5odG1sIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIwMCI+PC9pZnJhbWU+CisgIDwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvd2luZG93X3N3aXRjaGluZ190ZXN0cy9zaW1wbGVfcGFnZS5o
dG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvd2lu
ZG93X3N3aXRjaGluZ190ZXN0cy9zaW1wbGVfcGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41MmMxNjNjYmY4YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3dpbmRvd19zd2l0Y2hp
bmdfdGVzdHMvc2ltcGxlX3BhZ2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlNpbXBsZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICA8ZGl2PlNpbXBsZSBwYWdlIHdpdGggc2ltcGxlIHRlc3QuPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi94aHRtbEZvcm1QYWdlLnhodG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIveGh0bWxGb3JtUGFnZS54aHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWNhNTNkMzQzOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94
aHRtbEZvcm1QYWdlLnhodG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICAgICAgImh0dHA6Ly93d3cu
dzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+CisgIDx0aXRsZT5YSFRNTDwvdGl0
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworICA8Zm9ybSBtZXRob2Q9IlBPU1QiIGVuY3R5cGU9Im11
bHRpcGFydC9mb3JtLWRhdGEiPgorICAgIDxpbnB1dCBuYW1lPSJmaWxlIiBpZD0iZmlsZSIgdHlw
ZT0iZmlsZSIgLz4KKyAgICA8aW5wdXQgbmFtZT0ic3VibWl0IiBpZD0ic3VibWl0IiB0eXBlPSJz
dWJtaXQiIC8+CisgIDwvZm9ybT4KKworPHAgaWQ9InNlbGYtY2xvc2VkIiAvPkhlcmUgaXMgc29t
ZSBjb250ZW50IHRoYXQgc2hvdWxkIG5vdCBiZSBpbiB0aGUgcHJldmlvdXMgcCB0YWcKKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIveGh0bWxUZXN0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94aHRtbFRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDJmM2E1ZGE4NGIKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94aHRtbFRlc3Qu
aHRtbApAQCAtMCwwICsxLDc2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDx0aXRsZT5YSFRNTCBUZXN0IFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGNsYXNzPSJuYXZpZ2F0aW9uIj4KKyAgICA8cD48YSBocmVmPSJyZXN1bHRQYWdl
Lmh0bWwiIHRhcmdldD0icmVzdWx0IiBuYW1lPSJ3aW5kb3dPbmUiPk9wZW4gbmV3IHdpbmRvdzwv
YT48L3A+CisgICAgPHA+PGEgaHJlZj0iaWZyYW1lcy5odG1sIiB0YXJnZXQ9Il9ibGFuayIgbmFt
ZT0id2luZG93VHdvIj5DcmVhdGUgYSBuZXcgYW5vbnltb3VzIHdpbmRvdzwvYT48L3A+CisgICAg
PHA+PGEgaHJlZj0iaWZyYW1lcy5odG1sIiBuYW1lPSJzYW1lV2luZG93Ij5PcGVuIHBhZ2Ugd2l0
aCBpZnJhbWVzIGluIHNhbWUgd2luZG93PC9hPjwvcD4KKyAgICA8cD48YSBocmVmPSJqYXZhc2Ny
aXB0UGFnZS5odG1sIiB0YXJnZXQ9InJlc3VsdCIgbmFtZT0id2luZG93VGhyZWUiPk9wZW4gYSB3
aW5kb3cgd2l0aCBhIGNsb3NlIGJ1dHRvbjwvYT48L3A+Cis8L2Rpdj4KKworPGEgbmFtZT0ibm90
ZXh0Ij48Yj48L2I+PC9hPgorCis8ZGl2IGNsYXNzPSJjb250ZW50Ij4KKyAgICA8aDEgY2xhc3M9
ImhlYWRlciI+WEhUTUwgTWlnaHQgQmUgVGhlIEZ1dHVyZTwvaDE+CisKKyAgICA8cD5JZiB5b3Un
ZCBsaWtlIHRvIGdvIGVsc2V3aGVyZSB0aGVuIDxhIGhyZWY9InJlc3VsdFBhZ2UuaHRtbCI+Y2xp
Y2sgbWU8L2E+LjwvcD4KKworICAgIDxwPkFsdGVybmF0aXZlbHksIDxhIGhyZWY9InJlc3VsdFBh
Z2UuaHRtbCIgaWQ9ImxpbmtJZCI+dGhpcyBnb2VzIHRvIHRoZSBzYW1lIHBsYWNlPC9hPi48L3A+
CisKKyAgICA8Zm9ybSBuYW1lPSJzb21lRm9ybSI+CisgICAgICAgIDxpbnB1dCBpZD0idXNlcm5h
bWUiIHR5cGU9InRleHQiIHZhbHVlPSJjaGFuZ2UiLz4KKyAgICA8L2Zvcm0+CisKKyAgICBUaGlz
IGxpbmsgaGFzIHRoZSBzYW1lIHRleHQgYXMgYW5vdGhlciBsaW5rOiA8YSBocmVmPSJyZXN1bHRQ
YWdlLmh0bWwiPmNsaWNrIG1lPC9hPi4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJleHRyYURpdiI+
QW5vdGhlciBkaXYgc3RhcnRzIGhlcmUuPHAvPgorICAgIDxoMiBjbGFzcz0ibmFtZUEgbmFtZUJu
b2lzZSAgIG5hbWVDIj5BbiBIMiB0aXRsZTwvaDI+CisgICAgPHAgY2xhc3M9Im5hbWVDIj5Tb21l
IG1vcmUgdGV4dDwvcD4KKzwvZGl2PgorCis8ZGl2PgorICA8YSBpZD0iaWQxIiBocmVmPSIjIj5G
b288L2E+CisgIDx1bCBpZD0iaWQyIiAvPgorICA8c3BhbiBpZD0iaWQzIi8+Cis8L2Rpdj4KKwor
PGRpdj4KKyAgPHRhYmxlIGlkPSJ0YWJsZSIgPjwvdGFibGU+Cis8L2Rpdj4KKworPHNwYW4gaWQ9
ImFtYXppbmciPgorPGRpdj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAg
PHNwYW4vPgorICAgICAgICAgICAgPGE+SSBoYXZlIHdpZHRoPC9hPgorICAgICAgICA8L2Rpdj4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorPC9zcGFuPgorCis8YSBuYW1lPSJ0ZXh0IiAvPgorPHAgaWQ9
InNwYWNlcyI+ICAgICA8L3A+Cis8cCBpZD0iZW1wdHkiPjwvcD4KKzxhIGhyZWY9ImZvbyIgaWQ9
ImxpbmtXaXRoRXF1YWxzU2lnbiI+TGluaz1lcXVhbHNzaWduPC9hPgorCis8cCBjbGFzcz0iIHNw
YWNlQXJvdW5kICI+U3BhY2VkIG91dDwvcD4KKworPHNwYW4gaWQ9Im15X3NwYW4iPgorICA8ZGl2
PmZpcnN0X2RpdjwvZGl2PgorICA8ZGl2PnNlY29uZF9kaXY8L2Rpdj4KKyAgPHNwYW4+Zmlyc3Rf
c3Bhbjwvc3Bhbj4KKyAgPHNwYW4+c2Vjb25kX3NwYW48L3NwYW4+Cis8L3NwYW4+CisKKzxkaXYg
aWQ9InBhcmVudCI+SSdtIGEgcGFyZW50CisgIDxkaXYgaWQ9ImNoaWxkIj5JJ20gYSBjaGlsZDwv
ZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9Im9ubHktZXhpc3RzLW9uLXhodG1sdGVzdCI+V29vIHdv
bzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbiBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2ltcG9ydGVyLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmY4YWZlNGQ0ZjZiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAicmVwb3Np
dG9yeSI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW1IUS9zZWxlbml1bS5naXQiLAorICAg
ICJyZXZpc2lvbiI6ICI1N2ZlMDAzNDZkMWM0ZDZkM2Y4ZTMzYWU0ZDc0MjY5NDBlNzk1YTMwIgor
fQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvQ0hBTkdF
UyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L0NIQU5HRVMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdlOGY4NTMwMDc4Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvQ0hBTkdFUwpAQCAtMCww
ICsxLDU5NCBAQAorU2VsZW5pdW0gMy44LjAKKworKiBGaXJlZm94IG9wdGlvbnMgY2FuIG5vdyBi
ZSBpbXBvcnRlZCBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBhcyBGaXJlZm94T3B0aW9ucyAoIzUx
MjApCisqIEhlYWRsZXNzIG1vZGUgY2FuIG5vdyBiZSBzZXQgaW4gQ2hyb21lIE9wdGlvbnMgdXNp
bmcgYHNldF9oZWFkbGVzc2AKKyogSGVhZGxlc3MgbW9kZSBjYW4gbm93IGJlIHNldCBpbiBGaXJl
Zm94IE9wdGlvbnMgdXNpbmcgYHNldF9oZWFkbGVzc2AKKyogQWRkIHRoZSBXZWJLaXRHVEsgV2Vi
RHJpdmVyIGFuZCBvcHRpb25zIGNsYXNzICgjNDYzNSkKKyogQnJvd3NlciBvcHRpb25zIGNhbiBu
b3cgYmUgcGFzc2VkIHRvIHJlbW90ZSBXZWJEcml2ZXIgdmlhIHRoZSBgb3B0aW9uc2AgcGFyYW1l
dGVyCisqIEJyb3dzZXIgb3B0aW9uIHBhcmFtZXRlcnMgYXJlIG5vdyBzdGFuZGFyZGl6ZWQgYWNy
b3NzIGRyaXZlcnMgYXMgYG9wdGlvbnNgLiBgZmlyZWZveF9vcHRpb25zYCwKKyAgYGNocm9tZV9v
cHRpb25zYCwgYW5kIGBpZV9vcHRpb25zYCBhcmUgbm93IGRlcHJlY2F0ZWQKKyogQWRkZWQgbWlz
c2luZyBXM0MgRXJyb3IgQ29kZXMgKCM0NTU2KQorKiBTdXBwb3J0IGhhcyBiZWVuIHJlbW92ZWQg
Zm9yIFB5dGhvbiB2ZXJzaW9ucyAyLjYgYW5kIDMuMworCitTZWxlbml1bSAzLjcuMAorCisqIG5l
ZWQgdG8gcGFzcyBhcHBsaWNhYmxlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byB0b3gKKyogRml4
IGFjdGl2ZV9lbGVtZW50IGZvciB3M2MgZHJpdmVycyAoIzM5NzkpCisqIGFkZCBzdXBwb3J0IGZv
ciBtaW5pbWl6ZSBjb21tYW5kCisqIGFkZCBzdXBwb3J0IGZvciBmdWxsc2NyZWVuIGNvbW1hbmQK
Kyogd2luZG93IHJlY3QgY29tbWFuZHMgc2hvdWxkIGZhaWwgb24gZmlyZWZveCBhbmQgcmVtb3Rl
IChsZWdhY3kpCisqIEZpeCBweXRob24gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3Igd2luZG93
IGNvbW1hbmRzICgjNDkzNykKKyogVXBkYXRlIGRvY3N0cmluZ3MgdG8gc3BlY2lmeSB0aGUgdHlw
ZSBvZiBwYXRoIG5lZWRlZCB0byBpbnN0YWxsIGZpcmVmb3ggYWRkb25zLiAoIzQ4ODEpCisqIFVw
ZGF0ZSBweXRob24gY2hyb21lT3B0aW9ucyBrZXkgZm9yIGNhcGFiaWxpdGllcyAoIzQ2MjIpCisq
IEZpeCBweXRob24gcGF1c2UgYWN0aW9uIGltcGxlbWVudGF0aW9uICgjNDc5NSkKKworU2VsZW5p
dW0gMy42LjAKKworKiBGaXggcGFja2FnZSBuYW1lIGluIHB5dGhvbiB3ZWJlbGVtZW50IG1vZHVs
ZSAoIzQ2NzApCisqIEZpeCBweXRob24gZHJpdmVyIGV4YW1wbGVzICgjMzg3MikKKyogTm8gbmVl
ZCB0byBtdWx0aXBseSBwYXVzZSBieSAxMDAwCisqIEFkZCBwYXVzZSB0byBhY3Rpb24gY2hhaW5z
CisqIG9ubHkgY2hlY2sgZm9yIHByb3h5VHlwZSBvbmNlCisqIGxvd2VyY2FzZSBwcm94eSB0eXBl
IGZvciB3M2MgcGF5bG9hZCBpbiBweXRob24gIzQ1NzQKKyogZ3VhcmRpbmcgYWdhaW5zdCBudWxs
IHJldHVybiB2YWx1ZSBmcm9tIGZpbmRfZWxlbWVudHMgaW4gcHl0aG9uICM0NTU1CisqIHJlbW92
ZSB1bm5lY2Vzc2FyeSBweXRlc3QgbWFya2luZywgYWRkcmVzcyBmbGFrZTggaXNzdWVzCisqIGFs
bG93IElFIFdlYkRyaXZlciB0byBhY2NlcHQgSUUgT3B0aW9ucworKiBhZGQgSUUgT3B0aW9ucyBj
bGFzcworKiBjb252ZXJ0IE9TUyBjYXBhYmlsaXRpZXMgdG8gVzNDIGVxdWl2YWxlbnQgZm9yIFcz
QyBwYXlsb2FkCisqIEFkZCBTYWZhcmkgdG8gQVBJIGRvY3MKKworU2VsZW5pdW0gMy41LjAKKwor
KiBOdW1lcm91cyB0ZXN0IGZpeGVzCisqSXRlcmF0ZSBvdmVyIGNhcGFiaWxpdGllcyBpbiBhIHdh
eSB0byBzdXBwb3J0IHB5Mi43IGFuZCBweTMKKyogRml4IFczQyBzd2l0Y2hpbmcgdG8gd2luZG93
IGJ5IG5hbWUuCisqIFN1cHBvcnQgR2Vja29Ecml2ZXIgYWRkb24gaW5zdGFsbC91bmluc3RhbGwg
Y29tbWFuZHMgICM0MjE1LgorKiBNb3ZlIGZpcmVmb3hfcHJvZmlsZSBpbnRvIG1vejpmaXJlZm94
T3B0aW9ucy4KKyogRmlsdGVyIG5vbi1XM0MgY2FwYWJpbGl0eSBuYW1lcyBvdXQgb2YgYWx3YXlz
TWF0Y2guCisqIEhvbm9yIGNtZCBsaW5lIGFyZ3MgcGFzc2VkIHRvIFNlcnZpY2UgY3RvciAoIzQx
NjcpCisqIEFkZCBleHBlY3RlZCBjb25kaXRpb25zIGJhc2VkIG9uIFVSTCB0byBQeXRob24gRXhw
ZWN0ZWQgQ29uZGl0aW9ucyAjNDE2MAorKiBBZGQgbmV0d29yayBlbXVsYXRpb24gdG8gQ2hyb21l
IFB5dGhvbiBiaW5kaW5ncyAoIzQwMTEpCisqIGFkZCB3YXJuaW5nIHdoZW4gc2F2aW5nIGluY29y
cmVjdGx5IG5hbWVkIHNjcmVlbnNob3QgKCM0MTQxKQorCitTZWxlbml1bSAzLjQuMworKiBGaXgg
RXZlbnRGaXJpbmdXZWJkcml2ZXIgYW5kIFdlYkVsZW1lbnQgdG8gcmFpc2UgQXR0cmlidXRlRXJy
b3Igb24gbWlzc2luZyBhdHRyaWJ1dGVzLiAoIzQxMDcpCisqIHVud3JhcCBXZWJFbGVtZW50cyBp
bnNpZGUgZGljdHMKKworU2VsZW5pdW0gMy40LjIKKworKiB0cmFuc2xhdGUgbW92ZV9ieV9vZmZz
ZXQgY29tbWFuZCB0byB3M2MKKyogVXBkYXRlIGNhcGFiaWxpdGllcyBwcm9wZXJseSBpbnN0ZWFk
IG9mIGFzc3VtaW5nIGRpY3Qgc3RydWN0dXJlLiBGaXhlcyAjMzkyNworKiBBZGQgbWlzc2luZyBm
aWxlIGZvciBDaHJvbWUgb3B0aW9ucyB0byBBUEkgZG9jcy4KKyogQWRkIENocm9tZSBvcHRpb25z
IG1vZHVsZSB0byBBUEkgZG9jcy4KKworU2VsZW5pdW0gMy40LjEKKyogQWRkIGJhY2sgdGhlIGFi
aWxpdHkgdG8gc2V0IHByb2ZpbGUgd2hlbiB1c2luZyBGaXJlZm94IDQ1RVNSLiBGaXhlcyAjMzg5
NworCitTZWxlbml1bSAzLjQuMAorKiBDb3JyZWN0IHVzYWdlIG9mIG5ld1Nlc3Npb24gYXJvdW5k
IGBmaXJzdE1hdGNoYCBhbmQgYGFsd2F5c01hdGNoYAorKiBSZW1vdmUgc3VwZXJmbHVvdXMgY2Fw
YWJpbGl0aWVzIHRoYXQgYXJlIG5vdCBuZWVkZWQKKyogQWRkIGV4cGVjdGVkIGNvbmRpdGlvbiB0
aGF0IHdhaXRzIGZvciBhbGwgZm91bmQgZWxlbWVudHMgdG8gYmUgdmlzaWJsZSAoIzM1MzIpCisq
IEFsbG93IG1ldGhvZHMgd3JhcHBlZCBieSBFdmVudEZpcmluZ1dlYkRyaXZlciBhbmQgRXZlbnRG
aXJpbmdXZWJFbGVtZW50ICgjODA2KQorKiBEcm9wcGluZyBgamF2YXNjcmlwdEVuYWJsZWRgIGNh
cGFiaWxpdHkgZm9yIHJlYWwgYnJvd3NlcnMKKyogVXNlIFczQyBjaGVjayBmcm9tIHBhcmVudCBv
YmplY3QgaW5zdGVhZCBvZiBhc3N1bWluZyBmcm9tIGNhcGFiaWxpdGllcworKiBCdW1wIGV4YW1w
bGUgc291cmNlIGRpc3RyaWJ1dGlvbiB0byBtYXRjaCBsYXRlc3QgcmVsZWFzZS4KKyogUmVwbGFj
ZSBUeXBlRXJyb3Igd2l0aCBLZXlFcnJvciBpbiByZW1vdGUgd2ViZHJpdmVyIGVycm9yIGhhbmRs
ZXIgY29kZSAoIzM4MjYpCisqIFdoZW4gdGVzdGluZyBNYXJpb25ldHRlIHVzZSBkZWZhdWx0IGNh
cGFiaWxpdGllcyBpbiB0ZXN0aW5nCisqIENvbmZvcm0gdG8gdGhlIGFwaSBvZiB1cmxsaWIyIGZv
ciBhZGRpbmcgaGVhZGVyIGZvciBhIHJlcXVlc3QgKCMzODAzKQorKiBBZGQgYHRleHRgIGtleSB0
byBhbGVydCNzZW5kS2V5cyBwYXJhbWV0ZXJzIGZvciBXM0MgRW5kcG9pbnQKKyogTG9jYXRpb24g
b25jZSBzY3JvbGxlZCBpbnRvIHZpZXcgc2hvdWxkIHVzZSBXM0MgZXhlY3V0ZVNjcmlwdCBlbmRw
b2ludCBub3QgSlNPTldQCisqIEZpeGVkIHRoZSB1c2FnZSBpbmZvcm1hdGlvbiBpbiBkb2N1bWVu
dGF0aW9uIG9mICJzYXZlX3NjcmVlbnNob3QiLiAoIzM4MDQpCisqIEFkZCBFbGVtZW50IE5vdCBJ
bnRlcmFjdGFibGUgZXhjZXB0aW9uCisqIENsZWFuIHVwIGltcG9ydHMgaW4gZXJyb3IgaGFuZGxl
cgorKiBmbGFrZTggY2xlYW51cAorCitTZWxlbml1bSAzLjMuMworCisqIG1ha2UgdzNjIGV4ZWN1
dGVfc2NyaXB0IGNvbW1hbmRzIHVuaXF1ZQorCitTZWxlbml1bSAzLjMuMgorCisqIFVwZGF0ZSB3
aW5kb3cgY29tbWFuZHMgdG8gdXNlIFczQyBFbmQgcG9pbnRzCisqIFVwZGF0ZSBBbGVydCB3aGVu
IGluIFczQyBtb2RlIHRvIHVzZSBXM0MgRW5kcG9pbnRzCisqIFVwZGF0ZSB0byBuZXcgVzNDIEV4
ZWN1dGUgU2NyaXB0IGVuZCBwb2ludHMKKyogQWRkIHNldHRpbmcvZ2V0dGluZyBwcm94eSBkZXRh
aWxzIHRvIEZpcmVmb3ggT3B0aW9ucworKiBEZXByZWNhdGUgdGhlIHVzZSBvZiBicm93c2VyIHBy
b2ZpbGUgd2hlbiBpbnN0YW50aWF0aW5nIGEgc2Vzc2lvbgorKiBVcGRhdGUgc3RhcnQgc2Vzc2lv
biB0byBoYW5kbGUgdGhlIFczQyBOZXcgU2Vzc2lvbgorKiBBZGQgZ2V0L3NldCB3aW5kb3cgcmVj
dCBjb21tYW5kcworKiBBZGQgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisqIFdoZW4gcGFzc2lu
ZyBpbiBgdGV4dGAgdG8gc2VuZF9rZXlzLCBtYWtlIHN1cmUgd2Ugc2VuZCBhIHN0cmluZyBub3Qg
YXJyYXkKKyogRml4IHN0cmluZyBkZWNvZGluZyBpbiByZW1vdGUgY29ubmVjdGlvbiAoIzM2NjMp
CisqIEZpeCBpbmRlbnRhdGlvbiB0byBzYXRpc2Z5IFBFUDgKKyogVHJ5IHVzZSBvbGQgd2F5IG9m
IHNldHRpbmcgcGFnZSBsb2FkIHRpbWVvdXQgaWYgbmV3IHdheSBmYWlscy4gRml4ZXMgIzM2NTQK
KyogZml4IGZpbGUgdXBsb2FkcyBmb3IgRmlyZWZveAorKiBSdW4gdW5pdCB0ZXN0cyBvbiBQeXRo
b24gMy4zLCAzLjQsIGFuZCAzLjUgKCMzNjM4KQorKiBGaXggaW5kZW50YXRpb24gaW4gZG91Ymxl
X2NsaWNrLgorKiBGaXggbm9uLVczQyBwYWdlIGxvYWQgdGltZW91dCBzZXR0aW5nLgorCitTZWxl
bml1bSAzLjMuMQorKiBGaXggZW5jb2Rpbmcgb2YgYmFzaWMgYXV0aCBoZWFkZXIgd2hlbiB1c2lu
ZyBQeXRob24gMyBGaXhlcyAjMzYyMgorKiBBZGQgaW5pdGlhbCB1bml0IHRlc3Qgc3VpdGUKKyog
VXBkYXRlIFczQyBUaW1lb3V0IHNldHRpbmcgdG8gYmUgaW4gbGluZSB3aXRoIHRoZSBzcGVjaWZp
Y2F0aW9uCisqIHN1cHBvcnQudWkuU2VsZWN0IGNsYXNzIGluaGVyaXRzIGZyb20gb2JqZWN0ICgj
MzA2NykKKyogZml4IGJ1ZyBpbiBwcm94eSBjb25zdHJ1Y3RvciB0aGF0IHNvbWUgcHJvcGVydGll
cyBhcmUgbm90IHByb3BlciBzZXQgKCMzNDU5KQorKiBGaXggZmxha2U4IGlzc3VlcyAoIzM2Mjgp
CisKK1NlbGVuaXVtIDMuMy4wCisqKiBOb3RlICoqIElmIHlvdSBhcmUgdXBkYXRpbmcgdG8gdGhp
cyB2ZXJzaW9uLCBwbGVhc2UgYWxzbyB1cGRhdGUgR2Vja29Ecml2ZXIgdG8gdjAuMTUuMAorKiBG
aXggcHl0aG9uIEhUVFBTIGVuY29kaW5nIGZvciBweXRob24gZHJpdmVyICgjMzM3OSkKKyogQWxs
b3cgRmlyZWZveCBwcmVmZXJlbmNlcyB0byBiZSBzZXQgZGlyZWN0bHkgaW4gT3B0aW9ucworKiBG
aXggc2h1dGRvd24gYW5kIHByb2Nlc3MgdGVybWluYXRpb24gKCMzMjYzKQorKiBQcmV2ZW50aW5n
IGV4Y2VwdGlvbiBpZiBsb2dfcGF0aCBpcyBub25lIG9yIGVtcHR5LiBGaXhlcyAjMzEyOAorKiBB
ZGQgdGhlIFczQyBjYXBhYmlsaXR5IHRvIEZpcmVmb3ggZm9yIGFjY2VwdGluZyBpbnNlY3VyZSBj
ZXJ0aWZpY2F0ZXMKKyogSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBQb2ludGVyIEFjdGlvbnMK
KyogT25seSBza2lwIHRlc3RzIGlmIGRyaXZlciBuYW1lIG1hdGNoZXMgYSBkaXJlY3RvcnkgbmFt
ZS4KKyogVXBkYXRlIGNhbGxzIHRoYXQgcmV0dXJuIGEgcHVyZSBvYmplY3Qgd2l0aCBrZXlzIHRv
IGxvb2sgZm9yICd2YWx1ZScga2V5CisqIEluaXRpYWwgVzNDIEFjdGlvbnMgc3VwcG9ydAorKiBm
aXggZG9jcyBvdXRwdXQgZGlyZWN0b3J5CisKK1NlbGVuaXVtIDMuMC4yCisqIEFkZCBzdXBwb3J0
IGZvciBXM0MgR2V0IEFjdGl2ZSBFbGVtZW50CisqIFJldHVybiB3aGVuIHdlIHVzZSBleGVjdXRl
U2NyaXB0IGZvciBmYWtpbmcgV2ViRWxlbWVudC5nZXRfcHJvcGVydHkKKyogRXhwYW5kIHVzZXIg
cGF0aHMgYW5kIHJlc29sdmUgYWJzb2x1dGUgcGF0aCBmb3IgQ2hyb21lIGV4dGVuc2lvbnMKKyog
QWRkIHN1cHBvcnQgZm9yIHZlcmJvc2UgbG9nZ2luZyBhbmQgY3VzdG9tIHBhdGggdG8gRWRnZURy
aXZlcgorKiBVcGRhdGUgVGFrZUVsZW1lbnRTY3JlZW5zaG90IHRvIG1hdGNoIFdlYkRyaXZlciBz
cGVjaWZpY2F0aW9uCisqIFJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbiB3aGVuIEZpcmVmb3hCaW5h
cnkgZmFpbHMgdG8gbG9jYXRlIGJpbmFyeQorKiBGaXggZ2V0dGluZyBJUCBmb3IgcHl0aG9uIDMK
KyogV3JpdGUgU2VydmljZSBsb2cgdG8gREVWTlVMTCBieSBkZWZhdWx0CisqIE9ubHkgYXR0ZW1w
dCB0byByZW1vdmUgdGhlIEZpcmVmb3ggcHJvZmlsZSBwYXRoIGlmIG9uZSB3YXMgc3BlY2lmaWVk
CisqIEFkZGVkIGNvbnRleHQgbWFuYWdlciBmb3IgY2hyb21lL2NvbnRlbnQgaW4gRmlyZWZveAor
CitTZWxlbml1bSAzLjAuMQorKiBGaXggcmVncmVzc2lvbnMgd2l0aCBweXRob24gMworKiBBZGQg
c3VwcG9ydCBmb3IgU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldworCitTZWxlbml1bSAzLjAuMAor
KiBuZXcgRmlyZWZveERyaXZlciBjdG9yIHByZWNlZGVuY2UgbG9naWMgYW5kIG1vejpmaXJlZm94
T3B0aW9ucyBzdXBwb3J0ICgjMjg4MikKKyogQWRkIFczQyBTZXQgV2luZG93IFBvc2l0aW9uIGFu
ZCBXM0MgR2V0IFdpbmRvdyBQb3NpdGlvbgorKiBlbmFibGUgbG9nIHBhdGggc2V0dGluZyBmcm9t
IGZpcmVmb3ggd2ViZHJpdmVyICgjMjcwMCkKKyogQ29ycmVjdCBlbmNvZGluZyBvZiBnZXRBdHRy
aWJ1dGUuanMgYW5kIG9ubHkgbG9hZCBpdCBvbmNlLiBGaXhlcyAjMjc4NQorKiBFbmNvZGUgdGhl
IGlzRGlzcGxheWVkIGF0b20gYW5kIG9ubHkgbG9hZCBpdCBvbmNlCisKK1NlbGVuaXVtIDMuMC4w
LmIzCisqIFVzZSBhdG9tcyBmb3IgZ2V0X2F0dHJpYnV0ZSBhbmQgaXNfZGlzcGxheWVkIHdoZW4g
Y29tbXVuaWNhdGluZyB3aXRoCisgIGEgdzNjIGNvbXBsaWFudCByZW1vdGUgZW5kLgorKiBNYWtl
IGl0IHBvc3NpYmxlIHRvIHNwZWNpYWxpc2Ugd2ViIGVsZW1lbnQKKworU2VsZW5pdW0gMy4wLjAu
YjIKKyogVXBkYXRlZCBNYXJpb25ldHRlIHBvcnQgYXJndW1lbnQgdG8gbWF0Y2ggb3RoZXIgZHJp
dmVycy4KKworU2VsZW5pdW0gMy4wLjAuYjEKKyogRml4IGJhc2VzdHJpbmcgcmVmZXJlbmNlIHRv
IHdvcmsgd2l0aCBweXRob24gMy4gRml4ZXMgIzE4MjAKKyogQ29ycmVjdCBMZW5ndGggY29uZGl0
aW9uYWwgd2hlbiBmaWx0ZXJpbmcgaW4gUGhhbnRvbUpTLiBGaXhlcyAjMTgxNworKiBGaXggc2Vu
ZCBrZXlzIHdoZW4gdXNpbmcgUFVBIGtleXMgZS5nLiBLZXlzLlJJR0hUICMxODM5CisqIEZpeCBj
b29raWUgZmlsZSBsZWFrIGluIFBoYW50b21KUyAjMTg1NAorKiBVc2UgdGhlIGNvcnJlY3QgYmlu
YXJ5IHBhdGggd2hlbiB1c2luZyBNYXJpb25ldHRlCisqIEZpeGVkOiBVbmhlbHBmdWwgZXJyb3Ig
bWVzc2FnZSB3aGVuIFBoYW50b21KUyBleGl0cy4gKCMyMTczICMyMTY4KQorKiBGaXggYnJva2Vu
IGxpbmsgdG8gcHl0aG9uIGRvY3VtZW50YXRpb24gKCMyMTU5KQorKiBBdHRlbXB0IHRvIHJlbW92
ZSBGaXJlZm94IHByb2ZpbGUgd2hlbiB1c2luZyBNYXJpb25ldHRlCisqIEVuc3VyZSBhbGwgY2Fw
YWJpbGl0aWVzIGFyZSBlaXRoZXIgd2l0aGluIGRlc2lyZWRDYXBhYmlsaXRpZXMgb3IgcmVxdWly
ZWRDYXBhYmlsaXRpZXMKKyogQ29ycmVjdCB0aGUgZXhwZWN0ZWQgY2FwYWJpbGl0eSBuYW1lIGZv
ciB0aGUgRmlyZWZveCBwcm9maWxlCisqIEFkZCBGaXJlZm94IG9wdGlvbnMgdG8gY2FwYWJpbGl0
aWVzCisqIFZpc2liaWxpdHlfb2ZfYWxsIGltcGxpZXMgaXQgb25seSByZXR1cm5zIGVsZW1lbnRz
IGlmIGFsbCB2aXNpYmxlICgjMjA1MikKKyogRmluZCB2aXNpYmxlIGVsZW1lbnRzICgjMjA0MSkK
KyogIFBhc3MgdGhlIGZpcmVmb3hfcHJvZmlsZSBhcyBhIGRlc2lyZWQgY2FwYWJpbGl0eSBpbiB0
aGUgUHl0aG9uIGNsaWVudCB3aGVuIHVzaW5nIGEgcmVtb3RlIHNlcnZlcgorKiBBdm9pZCBjaGVj
a2luZyBleGNlcHRpb24gZGV0YWlscyBmb3IgaW52YWxpZCBsb2NhdG9ycyBkdWUgdG8gZGlmZmVy
ZW5jZXMgaW4gc2VydmVyIGltcGxlbWVudGF0aW9ucworKiBIYW5kbGUgY2FwYWJpbGl0aWVzIGJl
dHRlciB3aXRoIE1hcmlvbmV0dGUgYW5kIEdlY2tvRHJpdmVyCisqIFVwZGF0ZWQgdGhlIG1heFZl
cnNpb24gb2YgRmlyZWZveERyaXZlciB4cGkgbWF4VmVyc2lvbiB0byB3b3JrIHdpdGggRmlyZWZv
eCA0Ny4wLjEKKyogUmVtb3ZlIFNlbGVuaXVtIFJDIHN1cHBvcnQKKworU2VsZW5pdW0gMi41My4w
CisqIEFkZGluZyBPcHRpb25zIG9iamVjdCBmb3IgdXNlIHdpdGggUHl0aG9uIEZpcmVmb3hEcml2
ZXIKKyogRml4ZWQgaW1wcm9wZXIgdXNhZ2Ugb2Ygc3VwZXIgaW4gZXhjZXB0aW9ucyBtb2R1bGUK
KyogY3JlYXRlIGEgdGVtcCBmaWxlIGZvciBjb29raWVzIGluIHBoYW50b21qcyBpZiBub3Qgc3Bl
Y2lmaWVkCisqIFBhc3MgaW4gdGhlIGV4ZWN1dGFibGUgdGhhdCBGaXJlZm94QmluYXJ5IGZpbmRz
IHRvIHRoZSBzZXJ2aWNlIGlmIHRoZXJlIGlzbnQgb25lIHBhc3NlZCBpbiBhcyBhIGt3YXJnIG9y
IGNhcGFiaWxpdHkKKyogQXBwbGllZCBzb21lIERSWSBhbmQgZXh0cmFjdGVkIG91dCB0aGUga2V5
c190b190eXBpbmcoKQorKiBGaXggZGVzZWxlY3Rpbmcgb3B0aW9ucyBpbiA8c2VsZWN0PgorCisK
K1NlbGVuaXVtIDIuNTIuMAorKiBGaXhpbmcgY2FzZSB3aGVyZSBVbmV4cGVjdGVkQWxlcnRFeGNl
cHRpb24gZG9lc24ndCBnZXQgdGhlIGFsZXJ0X3RleHQgaW4gdGhlIGVycm9yIG9iamVjdAorKiBG
aXJlZm94OiBBY3R1YWxseSB1c2UgbGF1bmNoX2Jyb3dzZXIgdGltZW91dCBGaXhlcyAjMTMwMAor
CitTZWxlbml1bSAyLjUxLjEKKyogY29ycmVjdGluZyBidW5kbGluZyBpc3N1ZSBtaXNzaW5nIFJF
QURNRS5yc3QgZmlsZQorCitTZWxlbml1bSAyLjUxLjAKKyogRmlyZWZveCB1cGRhdGVzIChzZWUg
amF2YSBjaGFuZ2Vsb2cpCisKK1NlbGVuaXVtIDIuNTAuMQorKiBGaXhpbmcgZXJyb3IgbWVzc2Fn
ZSBoYW5kbGluZy4gRml4ZXMgaXNzdWUgIzE0OTcKKyogRml4aW5nIGVycm9yIG1lc3NhZ2UgaGFu
ZGxpbmcuIEZpeGVzIGlzc3VlICMxNTA3CisqIFVwZGF0ZSB3ZWJlbGVtZW50IHRvIGhhbmRsZSBX
M0MgY29tbWFuZHMgZm9yIHNpemUvbG9jYXRpb24gYW5kIHJlY3QKKyogcmV3cml0ZSBjbGljayBz
Y3JvbGxpbmcgdGVzdHMgdG8gbWF0Y2ggdGhlIEphdmEgb25lcworCitTZWxlbml1bSAyLjUwLjAK
KyogaGFuZGxlIHBvdGVudGlhbCBVUkxFcnJvciBmcm9tIHNlbmRpbmcgc2h1dGRvd24sIHNldCBz
ZWxmLnByb2Nlc3MgdG8gTm9uZSBhZnRlciBpdCdzIGFscmVhZHkgYmVlbiBxdWl0CisqIEFkZCBz
dXBwb3J0IGZvciBzdWJtaXQoKSB3aXRoIFczQyBjb21wbGlhbnQgZW5kcG9pbnQKKworU2VsZW5p
dW0gMi40OS4xCisqIEVuc3VyZSB5b3UgY2FuIGNsb3NlIHN0cmVhbSBiZWZvcmUgYXR0ZW1wdGlu
ZyB0byBjbG9zZSBpdC4KKyogbWVzc2FnZSByZXNwb25zZSBtYXkgY2F1c2UganNvbiBsb2FkcyBW
YWx1ZUVycm9yIHdoZW4gaXQncyBub3QgYWN0dWFsbHkganNvbgorICBhbmQganVzdCBhIHN0cmlu
ZyAobGlrZSB0aGUgbWVzc2FnZSB0aGF0IG9jY3VycyB3aGVuIGZpcmVmb3ggZHJpdmVyIHRoaW5r
cworICBhbm90aGVyIGVsZW1lbnQgd2lsbCByZWNlaXZlIHRoZSBjbGljaykKKyogQ2xlYW51cCBz
b21lIGVycm9yIGhhbmRsaW5nIHdoZW4gc25pZmZpbmcgd2hhdCBwcm90b2NvbCB5b3UgYXJlIHNw
ZWFraW5nCisKK1NlbGVuaXVtIDIuNDkuMAorKiBIYXZlIEZpcmVmb3ggc2VydmljZSB3cml0ZSB0
byBhIGZpbGUgaW5zdGVhZCBvZiBQSVBFCisqIG9uIG9zeCBmb3IgZmlyZWZveCwgZmFsbGJhY2sg
dG8gY2hlY2tpbmcgaG9tZWJyZXcgaW5zdGFsbCwgaWYgdGhlIGRlZmF1bHQgaXNuJ3QgdGhlcmUK
KyogQWRkZWQgRmlyZWZveCBwYXRoIHZhcmlhYmxlIGZvciBzdHJpbmcgcGxhY2Vob2xkZXIKKyog
VXBkYXRlIFJFQURNRSB0byBzaG93IFB5dGhvbiAzLjIrCisqIHJlZmFjdG9yaW5nIGFsbCB0aGUg
c2VydmljZSBjbGFzc2VzIHRvIHVzZSBhIGNvbW1vbiBvbmUuCisqIEFkZCBGaXJlZm94IHNwZWNp
ZmljIGNvbW1hbmQgdG8gc3dpdGNoIGNvbnRleHQgYmV0d2VlbiBCcm93c2VyIGNvbnRlbnQgYW5k
IEJyb3dzZXIgY2hyb21lCisqIHVwZGF0aW5nIGZpbGVzIGFmdGVyIGdvIGNvcHlyaWdodDp1cGRh
dGUKKyogVXNlIHNwZWNpZmljYXRpb25MZXZlbCB0byBrbm93IHRoYXQgd2UgYXJlIHNwZWFraW5n
IEdlY2tvRHJpdmVyCisqIEJ1ZyBmaXhlczogIzEyOTQsICMxMTg2CisKK1NlbGVuaXVtIDIuNDgu
MAorKiBVcGRhdGUgZXJyb3IgcHVsbGluZyB0byBtYXRjaCBzcGVjIHdoZW4gd2UgZW5jb3VudGVy
IGEgc3BlYyBjb21wbGlhbnQgYnJvd3Nlci4KKyogRGlzYWJsZSB0ZXN0cyB0aGF0IGFyZSBub3Qg
d29ya2luZyB3aXRoIE1hcmlvbmV0dGUgd2hlbiBydW5uaW5nIE1hcmlvbmV0dGUgdGVzdHMKKyog
QWRkIHRoZSBhYmlsaXR5IHRvIHJ1biBweXRob24gbWFyaW9uZXR0ZSB0ZXN0cworKiBQeXRob24g
MyBjb21wYXRpYmlsaXR5IGZvciByZW1vdGUgQXV0aG9yaXphdGlvbgorKiBjaGFuZ2luZyBjYXNp
bmcgb2YgY2hpbGRyZW4gZmluZGluZyB0ZXN0cworCitTZWxlbml1bSAyLjQ3LjMKKyogQnJpbmcg
YmFjayBweSAzIHN1cHBvcnQKKworU2VsZW5pdW0gMi40Ny4yCisqIEZpeCBydW5uaW5nIEVkZ2Ug
ZHJpdmVyIGxvY2FsbHkgb24gd2luMTAKKyogYWRkaW5nIHJlcHIgdG8gV2ViRHJpdmVyIGFuZCBX
ZWJFbGVtZW50CisKK1NlbGVuaXVtIDIuNDcuMQorKiBGaXggdGhlIGlzc3VlIG9mIGRlbGV0aW5n
IHRoZSBwcm9maWxlIHdoZW4gc2h1dHRpbmcgZG93biBGaXJlZm94CisqIFdlYkVsZW1lbnQgX19l
cV9fIGNvbXBhcmVzIGFnYWluc3QgbW9yZSB0eXBlcworKiBJc3N1ZXMgZml4ZWQ6IDg1MAorCitT
ZWxlbml1bSAyLjQ3LjAKKyogQWRkIGluIHN1cHBvcnQgZm9yIHdoZW4gY29tbXVuaWNhdGluZyB3
aXRoIGEgU3BlYyBjb21wbGlhbnQgYnJvd3NlcnMKKyogSW5pdGlhbCBzdXBwb3J0IGZvciBFZGdl
IHVzaW5nIEVkZ2VEcml2ZXIKKyogSXNzdWVzIGZpeGVkOiA4MTgKKworU2VsZW5pdW0gMi40Ni4x
CisqIEFkZGluZyBhYmlsaXR5IHRvIG1ha2UgcmVtb3RlIGNhbGwgZm9yIHdlYmVsZW1lbnQgc2Ny
ZWVuc2hvdHMgaW4gYWNjb3JkYW5jZSB0byB0aGUgVzNDIHNwZWMKKyogQWRkaW5nIGFwaSB0byBh
dXRoZW50aWNhdGUgSFRUUCBBdXRoIG1vZGFsIGRpYWxvZ3MgdmlhIGRyaXZlci5zd2l0Y2hfdG8u
YWxlcnQgKGJldGEpCisqIEFkZCByZWJlY2NhcHVycGxlIHRvIENvbG9yIE9iamVjdAorKiBBZGQg
ZWxlbWVudCBzY3JlZW5zaG90CisqIEFkZCBzZXJ2aWNlIGhhbmRsZXIgYW5kIG1pbmltYWwgdXBk
YXRlIHRvIGRyaXZlciB0byB1c2Ugc2VydmljZSBmb3IgTWFyaW9uZXR0ZQorKiBBZGQgdGhlIGFi
aWxpdHkgdG8gc3RhcnQgRmlyZWZveERyaXZlciBiYWNrZWQgd2l0aCBNYXJpb25ldHRlIHZpYSBh
IGNhcGFiaWxpdHkKKyogc3VwcG9ydCBzb2NrZXQgdGltZW91dCBmb3IgY29ubmVjdGlvbnMKKyog
ZnJlZV9wb3J0IGNoZWNrcyBpZiBwb3J0IGlzIGF2YWlsYWJsZSBvbiBhbGwgaW50ZXJmYWNlcwor
KiBBbGxvdyBlcnJvciBoYW5kbGluZyB0byBoYW5kbGUgYm90aCBjdXJyZW50IGVycm9ycyBhbmQg
dzNjIGVycm9ycworKiBVcGRhdGUgZmluZF9lbGVtZW50cyB0byBtYXRjaCBzcGVjCisqIHBoYW50
b21qczogc2VydmljZTogcmVtb3ZlIHVudXNlZCBpbXBvcnQgb2Ygc2lnbmFsCisqIHBoYW50b21q
czogYWRkIHBvcnQgaW5mb3JtYXRpb24gdG8gV2ViRHJpdmVyRXhjZXB0aW9uCisqIElzc3VlcyBm
aXhlZCAoR2l0aHViKTogNDc4LCA2MTIsIDczNCwgNzgwCisKK1NlbGVuaXVtIDIuNDYuMAorKiBG
aXJlZm94IHN1cHBvcnQgdXAgdG8gMzgKKyogQmxhY2tCZXJyeSBicm93c2VyIHN1cHBvcnQKKyog
cmVtb3ZlIFByZXN0by1PcGVyYSBzdXBwb3J0CisqIGZpcmVmb3ggZXh0ZW5zaW9uIGV4dHJhY3Rp
b24gZml4ZXMKKyogcHJvY2VzcyBtYW5hZ2VtZW50IGZpeGVzIHdpdGggcGhhbnRvbWpzCisqIENv
bXBhcmluZyByZW1vdGUgd2ViIGVsZW1lbnQgZm9yIGVxdWFsaXR5IGRvZXMgbm90IHJlcXVpcmUg
YSByZW1vdGUgY29tbWFuZAorKiBJc3N1ZXMgRml4ZWQ6IChnY29kZSkgODQ5MywgODUyMSwgODQ5
OCwgODI3NCwgODQ5NywgNTkyMworKiBJc3N1ZXMgRml4ZWQ6IChnaXRodWIpIDQwMQorCitTZWxl
bml1bSAyLjQ1LjAKKyogRmlyZWZveCBzdXBwb3J0IHVwIHRvIDM1LCBzdXBwb3J0IGZvciBuYXRp
dmUgZXZlbnRzIHVwIHRvIDM0LgorKiBNYWtlIE9wZXJhIGRyaXZlciBzdXBwb3J0IGFsc28gdGhl
IG5ldyBCbGluayBiYXNlZCBPcGVyYQorKiBSRUFETUU6IEZpeCB0aGUgWWFob28gZXhhbXBsZQor
KiBXZWJFbGVtZW50IGRvY3N0cmluZyBmaXhlcworKiBBZGQgZGVidWdnZXJfYWRkcmVzcyBvcHRp
b24gdG8gdGhlIENocm9tZURyaXZlciBvcHRpb25zIGxpc3QgdG8gb3B0aW9uYWxseSBpbnN0cnVj
dCBDaHJvbWVEcml2ZXIgdG8gd2FpdCBmb3IgdGhlIHRhcmdldCBkZXZ0b29scyBpbnN0YW5jZSB0
byBiZSBzdGFydGVkIGF0IGEgZ2l2ZW4gaG9zdDppcAorKiBTZXQgZGVmYXVsdCB2YWx1ZSBmb3Ig
UGhhbnRvbUpTIHByb2Nlc3MgcmVmZXJlbmNlCisqIEFsbG93IHNldHRpbmcgb2YgRmlsZURldGVj
dG9yIGZvciBzZW5kX2tleXMKKyogUGFzcyBpbmZvIHRvIFRpbWVvdXRFeGNlcHRpb24gaW4gV2Vi
RHJpdmVyV2FpdAorKiBJc3N1ZXMgRml4ZWQ6IDgwNjUsIDgzMTAsIDg1MzkKKworU2VsZW5pdW0g
Mi40NC4wCisqIChwcmV2aW91cyByZWxlYXNlIHBlcnNvbiBmb3Jnb3QgdG8gYWRkIHJlbGVhc2Ug
bm90ZXMhIERBVklEISkKKworU2VsZW5pdW0gMi40My4wCisqIEV4cGFuZCBXZWJFbGVtZW50Lmdl
dF9hdHRyaWJ1dGUgQVBJIGRvY3MKKyogZmlyZWZveCBtYXkgYmUgaW5zdGFsbGVkIHdpdGhvdXQg
YWRtaW5pbnN0cmF0b3IgcHJpdmlsZWdlcworICAgIGFuZCB0aGVyZWZvcmUgdGhlcmUgbWF5IGJl
IG5vIEhLRVlfTE9DQUxfTUFDSElORSBlbnRyeS4gSXNzdWUgIzc3ODQKKyogVW5leHBlY3RlZEFs
ZXJ0UHJlc2VudEV4Y2VwdGlvbiBzaG91bGQgY29udGFpbiB0aGUgYWxlcnQgdGV4dCBpbiBweXRo
b24gdG9vLiBJc3N1ZSAjNzc0NQorKiBkb24ndCBtdXRhdGUgdGhlIGdsb2JhbCAnaWdub3JlZCBl
eGNlcHRpb25zJywgdGFrZSBhIGNvcHkgb2YgdGhlIGdsb2JhbGx5IHNwZWNpZmllZCBvbmVzLCBj
aGFuZ2UgdGhlCisgIGdsb2JhbCB0byBiZSBhIHR1cGxlIGluc3RlYWQuIElzc3VlICM3NzI1Cisq
IHJhaXNlIGV4Y2VwdGlvbiB3aGVuIHRoZSBmaXJlZm94IGJpbmFyeSBpc24ndCBhY3R1YWxseSBm
b3VuZCwgd2hpY2ggdXN1YWxseSBpbXBsaWVzIHRoZSB1cGdyYWRlIGZhaWxlZCAob24gd2luZG93
cykgSXNzdWUgIzYwOTIgLCM2ODQ3CisqIEZpeGluZyBOYW1lRXJyb3I6IGdsb2JhbCBuYW1lICdv
cHRpb25zJyBpcyBub3QgZGVmaW5lZC4KKyogUmVtb3ZlIHVudXNlZCBpbXBvcnQgc3VicHJvY2Vz
cy5QSVBFCisqIFJlZGlyZWN0IEZpcmVmb3ggb3V0cHV0IHRvIC9kZXYvbnVsbCBieSBkZWZhdWx0
IEZpeGVzIElzc3VlICM3Njc3CisqIE1vcmUgZmxleGlibGUgbWFuYWdlbWVudCBvZiBodHRwIHRp
bWVvdXRzIGluIFNlbGVuaXVtIFJDIHB5dGhvbiBjbGllbnQKKyogR2VuZXJhdGUgUHl0aG9uIEFQ
SSBkb2NzIGZvciBzZWxlbml1bS53ZWJkcml2ZXIuY2hyb21lLm9wdGlvbnMuIEZpeGVzIGlzc3Vl
ICM3NDcxCisqIFVzZSAxMjcuMC4wLjEgYXMgbG9jYWxob3N0IG5hbWUgcmVzb2x2aW5nIG1pZ2h0
IGZhaWwgb24gc29tZSBzeXN0ZW1zCisKK1NlbGVuaXVtIDIuNDIuMQorKiBGaXhlZCBQeTMgaXNz
dWVzCisqIE1ha2UgZmlyZWZveF9iaW5hcnkucHkgYW5kIGZpcmVmb3hfcHJvZmlsZS5weSBub3Qg
ZXhlY3V0YWJsZQorKiBNYWtlIGV4Y2VwdGlvbnMgUHl0aG9uIDMgY29tcGF0aWJsZQorCitTZWxl
bml1bSAyLjQyCisqIFN1cHBvcnQgZm9yIEZpcmVmb3ggMjkgTmF0aXZlIEV2ZW50cworKiAicmVt
b3RlX3VybCIgYW5kICJyZW1vdGVfYnJvd3NlciIgcGFyYW1ldGVycyBmb3IgIi4vZ28gdGVzdF9y
ZW1vdGUiLgorKiBtaXNzaW5nIF9faW5pdF9fIGluIG5ldyBhbmRyb2lkIG1vZHVsZQorKiBpc3N1
ZSAjNzMwNCBGaXggbWVtb3J5IGxlYWsgY2F1c2VkIGJ5IF9fZGVsX18gaW4gUGhhbnRvbUpTCisq
IEZpbGUgdXBsb2FkIHVzaW5nIHJlbW90ZWRyaXZlciBvbiBweXRob24zCisqIFVwZGF0aW5nIHhw
aSBpbnN0YWxsIHRvIGFsaWduIHdpdGggbW96cHJvZmlsZQorKiBjb21tYW5kX2V4ZWN1dG9yIHNo
b3VsZCBhbHNvIHN1cHBvcnQgdW5pY29kZSBzdHJpbmdzIGFzIHdlbGwuCisKK1NlbGVuaXVtIDIu
NDEKKyogU3VwcG9ydCBmb3IgRmlyZWZveCAyOAorKiBkZXByZWNhdGluZyBzd2l0Y2hfdG9fKiBp
biBmYXZvdXIgb2YgZHJpdmVyLnN3aXRjaF90by4qCisKK1NlbGVuaXVtIDIuNDAKKyogU3VwcG9y
dCBmb3IgRmlyZWZveCAyNworKiBGaXhlcyByZWxhdGVkIHRvIGh0dHAgY29ubmVjdGlvbgorKiBG
aXggZm9yIHBoYW50b21qcyBydW5uaW5nIG9uIHdpbmRvd3MgIzY3MzYKKworU2VsZW5pdW0gMi4z
OQorKiBTdXBwb3J0IGZvciBGaXJlZm94IDI2CisKK1NlbGVuaXVtIDIuMzguNAorKiBrZWVwLWFs
aXZlIGNhbid0IGJlIHVzZWQgZm9yIHBoYW50b21qcyAvIElFLCBmaXggZm9yIHRoYXQgYW5kIHRl
c3RlZCBmb3IgcHkzIDopCisKK1NlbGVuaXVtIDIuMzguMworKiByZWFsbHkgc3VwcG9ydGluZyBw
eTMgOikKKworU2VsZW5pdW0gMi4zOC4yCisqIHB5MyBzdXBwb3J0IChvbmNlIGFnYWluKQorCitT
ZWxlbml1bSAyLjM4LjEKKyogZml4IHBhY2thZ2luZyBwcm9ibGVtIHdoZXJlIGZpcmVmb3gvd2Vi
ZHJpdmVyX3ByZWZzLmpzb24gd2FzIG1pc3NpbmcKKworU2VsZW5pdW0gMi4zOAorKiBTdXBwb3J0
IGZvciBGaXJlZm94IDI1CisqIEZpcmVmb3hQcm9maWxlIG5vdyB1c2luZyBjb21tb24gd2ViZHJp
dmVyLmpzb24gaW5zdGVhZCBvZiBoYXZpbmcgb3VyIG93biBjb3B5IGluIHB5CisgIC0gYmVoYXZp
b3IgY2hhbmdlIHRvIHRoZSBwcmVmZXJlbmNlcyBpcyB0aGF0IHRoZXkgbm93IHNob3VsZCBiZSB0
cmVhdGVkCisgICAgbGlrZSByYXcgdHlwZXMgcmF0aGVyIHRoYW4gc3RyaW5ncyBhbmQgYWxsb3cg
dGhlIGpzb24gbGlicmFyeSB0byB0cmFuc2xhdGUKKyAgICB0aGUgdHlwZXMgYXBwcm9wcmlhdGVk
IChlLmcuIFRydWUgPT4gdHJ1ZSkKKworKiBTZXQgcHJvcGVyICdBY2NlcHQnIHJlcXVlc3QgaGVh
ZGVyIHNvIHRoYXQgUHl0aG9uIGJpbmRpbmdzIHdvcmsgd2l0aCBzb21lIG9sZCBXZWJEcml2ZXIg
aW1wbGVtZW50YXRpb25zIHRoYXQgcmVwbHkgNDA0IHRvIHJlcXVlc3RzIHdpdGggbm8gJ0FjY2Vw
dCcgc2V0LgorKiBoYW5kbGUgcmVkaXJlY3QgcmVzcG9uc2UgZXhwbGljaXRseSAoc2luY2Ugc3dp
dGNoaW5nIHRvIHVzaW5nIGtlZXAtYWxpdmUpCisqIHBoYW50b21qcyBzZXJ2aWNlIG5lZWRzIHRv
IHJlYWxseSBraWxsIHRoZSBzcGF3bmVkIHByb2Nlc3MgSXNzdWUgIzU5MjEKKyogcmVtb3Zpbmcg
b2xkIGFwaSBlbmRwb2ludHMgZnJvbSBjb21tYW5kIGxpc3RpbmcKKyogdXNpbmcga2VlcC1hbGl2
ZSBmb3IgcmVtb3RlIGNvbm5lY3Rpb24KKyogYWRqdXN0aW5nIHBoYW50b21qcyBzdWJwcm9jZXNz
LlBvcGVuCisqIEFjdGlvbnNDaGFpbnMuc2VuZF9rZXlzIHNob3VsZCB1c2UgPHNlc3Npb24+L2tl
eXMgZW5kcG9pbnQgSXNzdWUgIzYzNDgKKyogZml4IFR5cGVFcnJvciBpbiBjaHJvbWVfb3B0aW9u
cy5leHRlbnNpb25zIGZvciBQeXRob24zLngKKworKiBPdGhlciBCdWdzIEZpeGVkOiAjNjUzMSwg
IzY1MTMsICM0NTY5LCAjNjQ1NAorCisKK1NlbGVuaXVtIDIuMzcuMgorKiBmaXggcmVncmVzc2lv
biBhZGRlZCB3aXRoIHVuaWNvZGUgZml4CisqIEJ1ZyBmaXggIzYzNjAKKworU2VsZW5pdW0gMi4z
Ny4xCisqIGZpeCBmaW5kX2VsZW1lbnRzIG9uIHdlYmVsZW1lbnQgdXNpbmcgdW5pY29kZSBsb2Nh
dG9ycyBhbmQgcHkgMi43CisKK1NlbGVuaXVtIDIuMzcKKyogcmVwYWNrYWdlIHdpdGggZml4IGZv
ciBGaXJlZm94IG5hdGl2ZSBldmVudHMgb24gTGludXgKKyogZml4IGlzc3VlIHdpdGggdW5pY29k
ZSBCeSBsb2NhdG9ycyB3LyBweXRob24gMi43ICM2NDMwCisKK1NlbGVuaXVtIDIuMzYKKyogQWRk
ZWQgU2FmYXJpIFdlYkRyaXZlci4gRml4ZXMgaXNzdWUgNTM1Mi4KKyogZml4IHBsYXRmb3JtIGZv
ciBzYWZhcmkgY2FwcworKiBDb252ZXJ0IGFsbCBvZmZzZXRzL2Nvb3JkaW5hdGVzL3NwZWVkcyBp
bnRvIGludGVnZXJzCisqIEZpeCBkcmFnIGFuZCBkcm9wIGJ5IG9mZnNldCBiZWhhdmlvdXIKKyog
Rml4IGluaXRpYWxpemF0aW9uIG9mIFByb3h5IGJ5IGNhcGFiaWxpdGllcyB3aGVuIHByb3h5VHlw
ZSBpcyBzZXQKKyogRW5hYmxlIFNPQ0tTIHByb3h5IHN1cHBvcnQKKyogVmFsaWRhdGlvbiBvZiBw
YXNzZWQgbG9jYXRvciBmb3IgZmluZF9lbGVtZW50KHMpIG1ldGhvZHMgIzU2OTAKKyogQWRkaW5n
IHN1cHBvcnQgZm9yIC9zdGF0dXMsIC9zZXNzaW9ucyBjb21tYW5kcworKiBEb2MgZml4ZXMKKyog
YWJpbGl0eSB0byBzZXQgQ2hyb21lIGV4dGVuc2lvbnMgYnkgdXNpbmcgYmFzZTY0IGVuY29kZWQg
c3RyaW5ncyAjNDAxMworKiBmaXggbG9naWMgcmVnYXJkaW5nIFNlbGVjdC5zZWxlY3RfYnlfdmlz
aWJsZV90ZXh0ICMzOTEwCisqIEJ1Z3MgZml4ZWQ6ICM2MTY1LCAjNjIzMQorCitTZWxlbml1bSAy
LjM1CisqIFJlbW92ZSBkdXBsaWNhdGUgJ2dldCBzY3JlZW5zaG90IGFzIGZpbGUnIG1ldGhvZHMu
ICBBZGQgbWV0aG9kICdnZXRfc2NyZWVuc2hvdF9hc19wbmcnCisqIGZpeGluZyBVbmljb2RlRW5j
b2RlRXJyb3Igb24gZ2V0IGF0dHJpYnV0ZSBvZiB3ZWJlbGVtZW50CisKK1NlbGVuaXVtIDIuMzQK
KyogQ29ycmVjdGVkIHdlYmRyaXZlcmJhY2tlZHNlbGVuaXVtIHNlc3Npb24gaGFuZGxpbmcuIEZp
eGVzIGlzc3VlIDQyODMKKyogQ29ycmVjdGVkIHVzZSBvZiBiYXNlc3RyaW5nIGZvciBweXRob24g
My4gRml4ZXMgaXNzdWUgNTkyNAorKiBTdXBwb3J0IGZvciBGaXJlZm94IDIyCisqIEFkZGVkIHN1
cHBvcnQgZm9yIGxvZ2dpbmcgZnJvbSB0aGUgYnJvd3NlcgorKiBjb3JyZWN0ZWQgcHJveHkgaGFu
ZGxpbmcgb24gRmlyZWZveFByb2ZpbGUKKyogQ29ycmVjdGVkIGhhbmRsaW5nIG9mIGNocm9tZSBl
eHRlbnNpb25zLiBGaXhlcyBpc3N1ZSA1NzYyCisKK1NlbGVuaXVtIDIuMzMKKyogZ2V0VGV4dCgp
IGlnbm9yZXMgZWxlbWVudHMgaW4gdGhlIDxoZWFkPgorKiBBZGRpbmcgYm90aCBvZmZpY2lhbCBh
bmQgaW5mb3JtYWwgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyB0byBDb2xvciBvYmplY3QuCisqIFJl
cGxhY2UgZGlzdHV0aWxzLmRpcl91dGlsIGJ5IHNodXRpbAorKiBBbGxvdyBmaW5kaW5nIGZpcmVm
b3ggYmluYXJ5IGF0IFByb2dyYW1GaWxlcyh4ODYpIG9uIHdpbmRvd3MoNjQgYml0KQorKiBQeTMg
Y29tcGF0aWJsZSB3aW5yZWcgaW1wb3J0IGFuZCBjb250ZW50LXR5cGUgYWNjZXNzCisKK1NlbGVu
aXVtIDIuMzIKKyogU3VwcG9ydCBmb3IgRkYyMCBOYXRpdmUgRXZlbnRzCisqIFB5dGhvbiAzIHN1
cHBvcnQKKyogTWlzYyBQeXRob24gMyBwYXRjaGVzCisqIEFsbG93IGVhc3kgRmlyZWZveEJpbmFy
eSBzdWJjbGFzc2luZworCitTZWxlbml1bSAyLjMxCisqIFN1cHBvcnQgZm9yIEZGMTkgbmF0aXZl
IGV2ZW50cworKiB3ZWIgZWxlbWVudCBlcXVhbGl0eSBpcyBub3cgaW4gY29uZm9ybWFuY2Ugd2l0
aCBvdGhlciBsYW5ndWFnZSBiaW5kaW5ncworCitTZWxlbml1bSAyLjMwCisqIEFsbG93IGVudiB0
byBiZSBzcGVjaWZpZWQgZm9yIHRoZSBjaHJvbWVkcml2ZXIgc2VydmljZQorKiBBbGxvdyBsb2cg
cGF0aCB0byBiZSBzcGVjaWZpZWQgZm9yIHBoYW50b21qcyBkcml2ZXIgc2VydmljZS4KKyogQnVn
IEZpeGVzOiA0NjA4IDQ5NDAgNDk3NCA1MDM0IDUwNzUKKworU2VsZW5pdW0gMi4yOQorKiBBbGxv
dyBzdWJjbGFzc2luZyBvZiBkcml2ZXIgYW5kIGhhdmUgdGhlIGFiaWxpdHkgdG8gc2VuZF9rZXlz
IElzc3VlIDQ4NzcsIDUwMTcKKyogU2ltcGxpZnlpbmcgc2F2ZV9zY3JlZW5zaG90IGFuZCBhbGxv
dyBwaGFudG9tanMgdG8gdGFrZSBzY3JlZW5zaG90cworCitTZWxlbml1bSAyLjI4CisqICJudWxs
IiBjYW4gbm93IGJlIHBhc3NlZCB0byBleGVjdXRlU2NyaXB0CisqIEFkZCB0cmFuc3BhcmVudCBh
bmQgZXh0ZW5kZWQgY29sb3VyIGtleXdvcmRzIHRvIGNvbG9yIHN1cHBvcnQgbW9kdWxlLiBGaXhl
cyBpc3N1ZSA0ODY2CisKK1NlbGVuaXVtIDIuMjcKKyogQWRkZWQgc3VwcG9ydCBmb3IgcGhhbnRv
bWpzIC8gZ2hvc3Rkcml2ZXIKKyogRml4IHB5dGhvbiBjbGllbnQsIGF2b2lkIGR1cGxpY2F0ZSBj
aHJvbWUgb3B0aW9uIGl0ZW1zIGFmdGVyIHJldXNpbmcgb3B0aW9ucyBjbGFzcy4gRml4ZXMgSXNz
dWUgNDc0NC4KKyogYWRkaW5nIGNvbG91ciBzdXBwb3J0IHRvIFB5dGhvbi4gZml4ZXMgaXNzdWUg
NDYyMworKiBBZGRpbmcgbG9nX3BhdGgvc2VydmljZV9sb2dfcGF0aCBhcyBuYW1lZCBrd2FyZ3Mg
Zm9yIGNocm9tZQorCitTZWxlbml1bSAyLjI2CisqIEFkZGVkIGxvY2F0aW9uX3doZW5fc2Nyb2xs
ZWRfaW50b192aWV3IC0gQnVnIDQzNTcKKyogQWRkZWQgbmV3IGV4cGVjdGVkX2NvbmRpdGlvbnMg
c3VwcG9ydCBtb2R1bGUgdG8gYmUgdXNlZCB3aXRoIFdlYkRyaXZlcldhaXQKKworU2VsZW5pdW0g
Mi4yNQorKiBKeXRob24gMi43IFN1cHBvcnQgLSBCdWcgMzk4OAorKiBFdmVudEZpcmluZ1dlYkRy
aXZlciBhZGRlZCB0byBTdXBwb3J0IG1vZHVsZSAtIEJ1ZyAyMjY3CisqIEFkZGVkIElFRHJpdmVy
U2VydmVyIGxvZ2dpbmcgdGhhdCBjYW4gYmUgYWNjZXNzZWQgdmlhIGRlc2lyZWQgY2FwYWJpbGl0
aWVzCisqIEZpeGVkIGJ5IGRhdGEgYmVpbmcgcGFzc2VkIGludG8gZmluZF9lbGVtZW50cyAtIGJ1
ZyAzNzM1CisqIFJlbW92ZWQgZGVwcmVjYXRlZCBDaHJvbWVEcml2ZXIgaXRlbXMgYXJvdW5kIGRl
c2lyZWRjYXBhYmlsaXRlcyBpbiBmYXZvdXIgb2YgY2hyb21lIG9wdGlvbnMKKyogQWRkZWQgZGVm
YXVsdCB2YWx1ZXMgZm9yIGEgbnVtYmVyIG9mIGFjdGlvbl9jaGFpbnMgY2FsbHMKKworU2VsZW5p
dW0gMi4yNAorKiBSZW1vdmluZyB0aGUgY3R5cGVzIGFwcHJvYWNoIG9mIGludm9raW5nIElFRHJp
dmVyLCB5b3Ugd2lsbCBuZWVkIHRvIGRvd25sb2FkIHRoZSBJRURyaXZlclNlcnZlciBmcm9tCisg
IGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3Avc2VsZW5pdW0vZG93bmxvYWRzL2xpc3QKKworU2Vs
ZW5pdW0gMi4yMworKiBTdXBwb3J0IGZvciBGRjEzIG5hdGl2ZSBldmVudHMKKworU2VsZW5pdW0g
Mi4yMgorKiBNb3ZpbmcgSUVEcml2ZXIgdG8gYmUgYWJsZSB0byB1c2UgSUVEcml2ZXJTZXJ2ZXIK
KworU2VsZW5pdW0gMi4yMS4zCisqIEZpeCBmb3IgRmlsZSBVcGxvYWQgdG8gcmVtb3RlIHNlcnZl
cnMKKyogQmV0dGVyIGhhbmRsaW5nIG9mIHR5cGluZyBpbiBpbnB1dD1maWxlLiBCdWcgMzgzMSwg
MzczNgorKiBCZXR0ZXIgaGFuZGxpbmcgb2YgdW5pY29kZSBVUkxTIEJ1ZyAzNzQwCisKK1NlbGVu
aXVtIDIuMjEuMgorKiBGaXggdHlwaW5nIHRvIGZpbGUgaW5wdXQgd2hlbiBub3QgdXNpbmcgU2Vs
ZW5pdW0gU2VydmVyLiBCdWcgMzczNgorCitTZWxlbml1bSAyLjIxLjEKKyogZm9jdXNtYW5hZ2Vy
LnRlc3Rtb2RlIG1lc3NlcyB3aXRoIG5hdGl2ZSBldmVudHMsIHJlbW92aW5nIGl0LgorCitTZWxl
bml1bSAyLjIxCisqIExvY2FsIEZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyBmb3Igbm9uLXJlbW90
ZSBicm93c2VyCisqIEFkZGluZyBtYXhpbWl6ZV93aW5kb3cgYXBpIGNhbGwKKyogVXBkYXRpbmcg
ZGVmYXVsdCBmaXJlZm94IHByb2ZpbGUgdG8gc2V0IGZvY3VzbWFuYWdlci50ZXN0bW9kZSB0byB0
cnVlCisgICAgc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNDU4MworKiBidWdzIGZpeGVkOiAzNTA2LCAzNTI4LCAzNjA3CisKK1NlbGVuaXVtIDIuMjAK
KyogZGlzYWJsZSBuYXRpdmUgZXZlbnRzIGZvciBGRiBvbiBNYWMgYnkgZGVmYXVsdAorKiBmaXgg
d2ViZHJpdmVyd2FpdCB0byBleGVjdXRlIGF0IGxlYXN0IG9uY2Ugd2hlbiB1c2luZyAwIHRpbWVv
dXQKKyogRml4ZWQgSXNzdWUgMzQzOAorCitTZWxlbml1bSAyLjE5CisqIFdlYkRyaXZlckJhY2tl
ZFNlbGVuaXVtIGlzIG5vdyBhdmFsYWlibGUgdG8gYWxsIGxhbmd1YWdlcworKiBBZGRvbiBpbnN0
YWxsYXRpb24gZml4ZXMKKworU2VsZW5pdW0gMi4xOAorKiBQcm94eSBjYXBhYmlsaXRpZXMgcGFz
c2luZworCitTZWxlbml1bSAyLjE3CisqIE9wZXJhRHJpdmVyIGNhbiBub3cgYmUgaW52b2tlZCBi
eSB3ZWJkcml2ZXIuT3BlcmEoKQorKiBTdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGZvciBDaG9tZU9w
dGlvbnMuIFRoaXMgZGVwcmVjYXRlcyBzdXBwb3J0IHBhc3NpbmcgaW4gRGVzaXJlZENhcGFiaWxp
dGllcworKiBQcm94eSBjbGFzcyB0byB0ZWxsIHRoZSBicm93c2VyIGEgcHJveHkgaXMgaW4gdXNl
LiBDdXJyZW50bHkgb25seSBmb3IgRmlyZWZveAorCitTZWxlbml1bSAyLjE2CisqIGJ1ZyBmaXhl
cworCitTZWxlbml1bSAyLjE1CisqIGJ1ZyBmaXhlcworCitTZWxlbml1bSAyLjE0CisqIEZpeCBm
b3IgTERfUFJFTE9BRCBiZWluZyBwb2xsdXRlZCBieSBXZWJEcml2ZXIKKyogQWRkZWQgT3JpZW50
YXRpb24gQVBJCisqIEEgZml4IGZvciBFcnJvciBIYW5kbGluZworCitTZWxlbml1bSAyLjEzCisq
IEZpeGVkIHN3aXRjaF90b193aW5kb3cgc28gdGhhdCBpdCBkaWRudCBjcmFzaCBGaXJlZm94IEJ1
ZyAyNjMzCisqIEZpeGVkIFNjcmVlbnNob3QgaGFuZGxpbmcgdG8gd29yayBpbiBhbGwgYnJvd3Nl
cnMuIEJ1ZyAyODI5CisqIEZvcmNlIEZpcmVmb3ggdG8gdGhlIEZvcmVncm91bmQKKworU2VsZW5p
dW0gMi4xMgorKiBBZGRlZCBTZWxlY3QgYXMgYSBzdXBwb3J0IHBhY2FrZ2UKKyogQWRkZWQgQmV0
YSB3aW5kb3cgc2l6ZSAvIHBvc2l0aW9uIGFwaSdzCisqIEJ1ZyBGaXhlcworCitTZWxlbml1bSAy
LjExLjAgMi4xMS4xCisqIG5vIGNoYW5nZXMganVzdCBwYWNrYWdpbmcKKworU2VsZW51bSAyLjEw
CisqICJDaG9vc2Ugd2hpY2ggYXBwcyIgZGlhbG9nIGhhcyBiZWVuIGRpc2FibGVkCisqIEJ1ZyBG
aXhlcworCitTZWxlbml1bSAyLjkKKyogQnVnIEZpeGVzCisqIERvY3VtZW50YXRpb24KKworU2Vs
ZW5pdW0gMi44CisqIEFjdGlvbnMgdXBkYXRlcworKiBCdWcgRml4ZXMKKworU2VsZW5pdW0gMi42
CisqIERvY3VtZW50YXRpb24gZml4ZXMKKworU2VsZW5pdW0gMi41CisqIEZpeGVkIHg2NCBJRSBT
dXBwb3J0CisqIEJ1ZyBGaXhlcworCitTZWxlbml1bSAyLjQKKyogQnVnIEZpeGVzCisqIHg2NCBJ
RSBTdXBwb3J0CisqIEFkZGVkIFdlYkRyaXZlcldhaXQgYXMgYSBzdXBwb3J0IHBhY2thZ2UKKwor
U2VsZW5pdW0gMi4zCisqIEJ1ZyBGaXhlcworCitTZWxlbml1bSAyLjIKKyogQWJpbGl0eSB0byBn
ZXQgc2NyZWVuc2hvdHMgZnJvbSBFeGNlcHRpb25zIGlmIHRoZXkgYXJlIGdpdmVuCisqIEFjY2Vz
cyB0byBSZW1vdGUgU3RhY2tUcmFjZSBvbiBlcnJvcgorCitTZWxlbml1bSAyLjEKKyogQnVnIEZp
eGVzCisKK1NlbGVuaXVtIDIKKyogUmVtb3ZlZCB0b2dnbGUoKSBhbmQgc2VsZWN0KCkKKworU2Vs
ZW5pdW0gMiBSQyAzCisqIEFkZGVkIE9wZXJhIHRvIERlc2lyZWQgQ2FwYWJpbGl0aWVzCisqIFJl
bW92ZWQgZGVwcmVjcmF0ZWQgbWV0aG9kcworKiBEZXByZWNhdGVkIHRvZ2dsZSgpIGFuZCBzZWxl
Y3QoKSBtZXRob2RzLiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCByZWxlYXNlCisK
K1NlbGVuaXVtIDIgQmV0YSA0CisqIEZpeCBmb3IgdXNpbmcgZXhpc3RpbmcgRmlyZWZveCBQcm9m
aWxlcworKiBBbGVydHMgU3VwcG9ydCBpbiBJRQorKiBGaXggdG8gZGljdGlvbmFyeSByZXR1cm5l
ZCBmcm9tIHNpemUKKyogRGVwcmVjYXRlZCB2YWx1ZSBwcm9wZXJ0eS4gVXNlIHRoZSBnZXRfYXR0
cmlidXRlKCJ2YWx1ZSIpIG1ldGhvZAorKiBEZXByZWNhdGVkIGdldF9wYWdlX3NvdXJjZSBtZXRo
b2QuIFVzZSBwYWdlX3NvdXJjZSBwcm9wZXJ0eQorKiBEZXByZWNhdGVkIGdldF9jdXJyZW50X3dp
bmRvd19oYW5kbGUuIFVzZSBjdXJyZW50X3dpbmRvd19oYW5kbGUgcHJvcGVydHkKKyogRGVwcmVj
YXRlZCBnZXRfd2luZG93X2hhbmRsZXMuIFVzZSB3aW5kb3dfaGFuZGxlcyBwcm9wZXJ0eQorKiBB
YmlsaXR5IHRvIGluc3RhbGwgZXh0ZW5zaW9ucyBpbnRvIHByb2ZpbGVzCisqIEFkZGVkIExvY2F0
aW9uIHRvIHRoZSBXZWJFbGVtZW50CisqIENocm9tZURyaXZlciByZXdyaXR0ZW4gdG8gdXNlIG5l
dyBidWlsdCBpbiBtZWNoYW5pc20KKyogQWRkZWQgQWR2YW5jZWQgVXNlciBJbnRlcmFjdGlvbiBB
UEkuIE9ubHkgQXZhaWxhYmxlIGZvciBIVE1MVW5pdCBhdCB0aGUgbW9tZW50CisqIFByb2ZpbGVz
IG5vdyBkZWxldGUgdGhlaXIgdGVtcCBmb2xkZXJzIHdoZW4gZHJpdmVyLnF1aXQoKSBpcyBjYWxs
ZWQKKworU2VsZW5pdW0gMiBCZXRhIDMKKyogQWNjZXB0IFVudHJ1c3RlZCBDZXJ0aWZpY2F0ZXMg
aW4gRmlyZWZveAorKiBGaXhlZCBTY3JlZW5zaG90cworKiBBZGRlZCBEZXNpcmVkQ2FwYWJpbGl0
aWVzIHRvIHNpbXBsaWZ5IGNob29zaW5nIERyaXZlcnMKKyogRml4ZWQgRmlyZWZveCBQcm9maWxl
IGNyZWF0aW9uCisqIEFkZGVkIEZpcmVmb3ggNCBzdXBwb3J0CisqIERvY1N0cmluZ3MgSW1wcm92
ZW1lbnRzCisKK1NlbGVuaXVtIDIgQmV0YSAyCisKKyogTmV3IGJpbmRpbmdzIGxhbmRlZC4gQ2hh
bmdlIHdlYmRyaXZlciBuYW1lc3BhY2UgdG8gInNlbGVuaXVtLndlYmRyaXZlciIKKyogQWJpbGl0
eSB0byBtb3ZlIHRvIGRlZmF1bHQgY29udGVudAorKiBJbXBsaWNpdCBXYWl0cworKiBDaGFuZ2Ug
dGhlIEFQSSB0byB1c2UgcHJvcGVydGllcyBpbnN0ZWFkIG9mIGdldF94CisqIENoYW5nZWQgdGhl
IEVsZW1lbnQgRmluZGluZyB0byBtYXRjaCBvdGhlciBsYW5ndWFnZXMKKyogQWRkZWQgYWJpbGl0
eSB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBzY3JpcHRzIGZyb20gdGhlIGRyaXZlcgorKiBBYmls
aXR5IHRvIGdldCByZW5kZXJlZCBlbGVtZW50IHNpemUKKyogQWJpbGl0eSB0byBnZXQgQ1NTIFZh
bHVlIG9uIGEgd2ViZWxlbWVudAorKiBDb3JyZWN0ZWQgRWxlbWVudCBmaW5kaW5nIGZyb20gdGhl
IGVsZW1lbnQKKyogQWxlcnQgYW5kIFByb21wdCBoYW5kbGluZworKiBJbXByb3ZlZCBJRURyaXZl
cgorKiBCYXNpYyBBdXRoZW50aWNhdGlvbiBzdXBwb3J0IGZvciBTZWxlbml1bSAyCisqIEFiaWxp
dHkgdG8gaGF2ZSBtdWx0aXBsZSBGaXJlZm94IGluc3RhbmNlcwpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvTUFOSUZFU1QuaW4gYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9NQU5JRkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uODcxZTZlZmIxNjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9NQU5JRkVTVC5pbgpAQCAtMCwwICsxLDIyIEBA
CitwcnVuZSAqCityZWN1cnNpdmUtaW5jbHVkZSBzZWxlbml1bS93ZWJkcml2ZXIgKi5weQorcmVj
dXJzaXZlLWluY2x1ZGUgc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbiAqLnB5CityZWN1cnNpdmUt
aW5jbHVkZSBzZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMgKi5weQorcmVjdXJzaXZl
LWluY2x1ZGUgc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9odG1sNSAqLnB5CityZWN1cnNpdmUt
aW5jbHVkZSBzZWxlbml1bS9jb21tb24gKi5weQorcmVjdXJzaXZlLWluY2x1ZGUgc2VsZW5pdW0v
d2ViZHJpdmVyL2Nocm9tZSAqLnB5CityZWN1cnNpdmUtaW5jbHVkZSBzZWxlbml1bS93ZWJkcml2
ZXIvb3BlcmEgKi5weQorcmVjdXJzaXZlLWluY2x1ZGUgc2VsZW5pdW0vd2ViZHJpdmVyL3BoYW50
b21qcyAqLnB5CityZWN1cnNpdmUtaW5jbHVkZSBzZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveCAq
LnB5ICoueHBpICouanNvbgorcmVjdXJzaXZlLWluY2x1ZGUgc2VsZW5pdW0vd2ViZHJpdmVyL2Zp
cmVmb3gveDg2ICouc28KK3JlY3Vyc2l2ZS1pbmNsdWRlIHNlbGVuaXVtL3dlYmRyaXZlci9maXJl
Zm94L2FtZDY0ICouc28KK3JlY3Vyc2l2ZS1pbmNsdWRlIHNlbGVuaXVtL3dlYmRyaXZlci9pZSAq
LnB5CityZWN1cnNpdmUtaW5jbHVkZSBzZWxlbml1bS93ZWJkcml2ZXIvZWRnZSAqLnB5CityZWN1
cnNpdmUtaW5jbHVkZSBzZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlICoucHkgKi5qcworcmVjdXJz
aXZlLWluY2x1ZGUgc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQgKi5weQoraW5jbHVkZSBzZWxl
bml1bS9zZWxlbml1bS5weQoraW5jbHVkZSBzZWxlbml1bS9fX2luaXRfXy5weQoraW5jbHVkZSBD
SEFOR0VTCitpbmNsdWRlIFJFQURNRS5yc3QKK2luY2x1ZGUgTElDRU5TRQorcmVjdXJzaXZlLWlu
Y2x1ZGUgc2VsZW5pdW0uZWdnLWluZm8gKgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvUkVBRE1FLnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L1JFQURNRS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjY3N2ZlMjA2ZTFiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvUkVBRE1FLnJzdApAQCAtMCwwICsxLDE0NSBAQAorPT09PT09PT09PT09
PT09PT09PT09PQorU2VsZW5pdW0gQ2xpZW50IERyaXZlcgorPT09PT09PT09PT09PT09PT09PT09
PQorCitJbnRyb2R1Y3Rpb24KKz09PT09PT09PT09PQorCitQeXRob24gbGFuZ3VhZ2UgYmluZGlu
Z3MgZm9yIFNlbGVuaXVtIFdlYkRyaXZlci4KKworVGhlIGBzZWxlbml1bWAgcGFja2FnZSBpcyB1
c2VkIHRvIGF1dG9tYXRlIHdlYiBicm93c2VyIGludGVyYWN0aW9uIGZyb20gUHl0aG9uLgorCisr
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8ICoqSG9tZSoqOiB8
IGh0dHA6Ly93d3cuc2VsZW5pdW1ocS5vcmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rCit8ICoqRG9jcyoqOiB8IGBzZWxlbml1bSBwYWNrYWdlIEFQSSA8
aHR0cHM6Ly9zZWxlbml1bWhxLmdpdGh1Yi5pby9zZWxlbml1bS9kb2NzL2FwaS9weS9hcGkuaHRt
bD5gXyB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8ICoq
RGV2Kio6ICB8IGh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bUhRL1NlbGVuaXVtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8ICoqUHlQSSoqOiB8IGh0dHBzOi8vcHlwaS5w
eXRob24ub3JnL3B5cGkvc2VsZW5pdW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCit8ICoqSVJDKio6ICB8ICoqI3NlbGVuaXVtKiogY2hhbm5lbCBvbiBmcmVlbm9kZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKK1NldmVyYWwgYnJvd3NlcnMv
ZHJpdmVycyBhcmUgc3VwcG9ydGVkIChGaXJlZm94LCBDaHJvbWUsIEludGVybmV0IEV4cGxvcmVy
LCBQaGFudG9tSlMpLCBhcyB3ZWxsIGFzIHRoZSBSZW1vdGUgcHJvdG9jb2wuCisKK1N1cHBvcnRl
ZCBQeXRob24gVmVyc2lvbnMKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBQeXRob24g
Mi43LCAzLjQrCisKK0luc3RhbGxpbmcKKz09PT09PT09PT0KKworSWYgeW91IGhhdmUgYHBpcCA8
aHR0cHM6Ly9waXAucHlwYS5pby8+YF8gb24geW91ciBzeXN0ZW0sIHlvdSBjYW4gc2ltcGx5IGlu
c3RhbGwgb3IgdXBncmFkZSB0aGUgUHl0aG9uIGJpbmRpbmdzOjoKKworICAgIHBpcCBpbnN0YWxs
IC1VIHNlbGVuaXVtCisKK0FsdGVybmF0ZWx5LCB5b3UgY2FuIGRvd25sb2FkIHRoZSBzb3VyY2Ug
ZGlzdHJpYnV0aW9uIGZyb20gYFB5UEkgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zZWxl
bml1bT5gXyAoZS5nLiBzZWxlbml1bS0zLjguMC50YXIuZ3opLCB1bmFyY2hpdmUgaXQsIGFuZCBy
dW46OgorCisgICAgcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKKworTm90ZTogWW91IG1heSB3YW50
IHRvIGNvbnNpZGVyIHVzaW5nIGB2aXJ0dWFsZW52IDxodHRwOi8vd3d3LnZpcnR1YWxlbnYub3Jn
Lz5gXyB0byBjcmVhdGUgaXNvbGF0ZWQgUHl0aG9uIGVudmlyb25tZW50cy4KKworRHJpdmVycwor
PT09PT09PQorCitTZWxlbml1bSByZXF1aXJlcyBhIGRyaXZlciB0byBpbnRlcmZhY2Ugd2l0aCB0
aGUgY2hvc2VuIGJyb3dzZXIuIEZpcmVmb3gsCitmb3IgZXhhbXBsZSwgcmVxdWlyZXMgYGdlY2tv
ZHJpdmVyIDxodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9yZWxlYXNlcz5g
Xywgd2hpY2ggbmVlZHMgdG8gYmUgaW5zdGFsbGVkIGJlZm9yZSB0aGUgYmVsb3cgZXhhbXBsZXMg
Y2FuIGJlIHJ1bi4gTWFrZSBzdXJlIGl0J3MgaW4geW91ciBgUEFUSGAsIGUuIGcuLCBwbGFjZSBp
dCBpbiBgL3Vzci9iaW5gIG9yIGAvdXNyL2xvY2FsL2JpbmAuCisKK0ZhaWx1cmUgdG8gb2JzZXJ2
ZSB0aGlzIHN0ZXAgd2lsbCBnaXZlIHlvdSBhbiBlcnJvciBgc2VsZW5pdW0uY29tbW9uLmV4Y2Vw
dGlvbnMuV2ViRHJpdmVyRXhjZXB0aW9uOiBNZXNzYWdlOiAnZ2Vja29kcml2ZXInIGV4ZWN1dGFi
bGUgbmVlZHMgdG8gYmUgaW4gUEFUSC5gCisKK090aGVyIHN1cHBvcnRlZCBicm93c2VycyB3aWxs
IGhhdmUgdGhlaXIgb3duIGRyaXZlcnMgYXZhaWxhYmxlLiBMaW5rcyB0byBzb21lIG9mIHRoZSBt
b3JlIHBvcHVsYXIgYnJvd3NlciBkcml2ZXJzIGZvbGxvdy4KKworKy0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKworfCAqKkNocm9tZSoqOiAgfCBodHRwczovL3NpdGVzLmdvb2dsZS5jb20v
YS9jaHJvbWl1bS5vcmcvY2hyb21lZHJpdmVyL2Rvd25sb2FkcyAgICAgICAgfAorKy0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAqKkVkZ2UqKjogICAgfCBodHRwczovL2RldmVsb3Bl
ci5taWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3Rvb2xzL3dlYmRyaXZlci8gfAor
Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAqKkZpcmVmb3gqKjogfCBodHRwczov
L2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9yZWxlYXNlcyAgICAgICAgICAgICAgICAg
ICAgICAgfAorKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAqKlNhZmFyaSoqOiAg
fCBodHRwczovL3dlYmtpdC5vcmcvYmxvZy82OTAwL3dlYmRyaXZlci1zdXBwb3J0LWluLXNhZmFy
aS0xMC8gICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCitFeGFt
cGxlIDA6Cis9PT09PT09PT09CisKKyogb3BlbiBhIG5ldyBGaXJlZm94IGJyb3dzZXIKKyogbG9h
ZCB0aGUgcGFnZSBhdCB0aGUgZ2l2ZW4gVVJMCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKwor
ICAgIGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgorCisgICAgYnJvd3NlciA9IHdlYmRy
aXZlci5GaXJlZm94KCkKKyAgICBicm93c2VyLmdldCgnaHR0cDovL3NlbGVuaXVtaHEub3JnLycp
CisKK0V4YW1wbGUgMToKKz09PT09PT09PT0KKworKiBvcGVuIGEgbmV3IEZpcmVmb3ggYnJvd3Nl
cgorKiBsb2FkIHRoZSBZYWhvbyBob21lcGFnZQorKiBzZWFyY2ggZm9yICJzZWxlbml1bWhxIgor
KiBjbG9zZSB0aGUgYnJvd3NlcgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBmcm9t
IHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKKyAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5j
b21tb24ua2V5cyBpbXBvcnQgS2V5cworCisgICAgYnJvd3NlciA9IHdlYmRyaXZlci5GaXJlZm94
KCkKKworICAgIGJyb3dzZXIuZ2V0KCdodHRwOi8vd3d3LnlhaG9vLmNvbScpCisgICAgYXNzZXJ0
ICdZYWhvbycgaW4gYnJvd3Nlci50aXRsZQorCisgICAgZWxlbSA9IGJyb3dzZXIuZmluZF9lbGVt
ZW50X2J5X25hbWUoJ3AnKSAgIyBGaW5kIHRoZSBzZWFyY2ggYm94CisgICAgZWxlbS5zZW5kX2tl
eXMoJ3NlbGVuaXVtaHEnICsgS2V5cy5SRVRVUk4pCisKKyAgICBicm93c2VyLnF1aXQoKQorCitF
eGFtcGxlIDI6Cis9PT09PT09PT09CisKK1NlbGVuaXVtIFdlYkRyaXZlciBpcyBvZnRlbiB1c2Vk
IGFzIGEgYmFzaXMgZm9yIHRlc3Rpbmcgd2ViIGFwcGxpY2F0aW9ucy4gIEhlcmUgaXMgYSBzaW1w
bGUgZXhhbXBsZSB1aXNuZyBQeXRob24ncyBzdGFuZGFyZCBgdW5pdHRlc3QgPGh0dHA6Ly9kb2Nz
LnB5dGhvbi5vcmcvMy9saWJyYXJ5L3VuaXR0ZXN0Lmh0bWw+YF8gbGlicmFyeToKKworLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgorCisgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgZnJvbSBzZWxlbml1
bSBpbXBvcnQgd2ViZHJpdmVyCisKKyAgICBjbGFzcyBHb29nbGVUZXN0Q2FzZSh1bml0dGVzdC5U
ZXN0Q2FzZSk6CisKKyAgICAgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5i
cm93c2VyID0gd2ViZHJpdmVyLkZpcmVmb3goKQorICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVw
KHNlbGYuYnJvd3Nlci5xdWl0KQorCisgICAgICAgIGRlZiB0ZXN0UGFnZVRpdGxlKHNlbGYpOgor
ICAgICAgICAgICAgc2VsZi5icm93c2VyLmdldCgnaHR0cDovL3d3dy5nb29nbGUuY29tJykKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0dvb2dsZScsIHNlbGYuYnJvd3Nlci50aXRsZSkKKwor
ICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIHVuaXR0ZXN0Lm1haW4odmVy
Ym9zaXR5PTIpCisKK1NlbGVuaXVtIFNlcnZlciAob3B0aW9uYWwpCis9PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitGb3Igbm9ybWFsIFdlYkRyaXZlciBzY3JpcHRzIChub24tUmVtb3RlKSwg
dGhlIEphdmEgc2VydmVyIGlzIG5vdCBuZWVkZWQuCisKK0hvd2V2ZXIsIHRvIHVzZSBTZWxlbml1
bSBXZWJkcml2ZXIgUmVtb3RlIG9yIHRoZSBsZWdhY3kgU2VsZW5pdW0gQVBJIChTZWxlbml1bS1S
QyksIHlvdSBuZWVkIHRvIGFsc28gcnVuIHRoZSBTZWxlbml1bSBzZXJ2ZXIuICBUaGUgc2VydmVy
IHJlcXVpcmVzIGEgSmF2YSBSdW50aW1lIEVudmlyb25tZW50IChKUkUpLgorCitEb3dubG9hZCB0
aGUgc2VydmVyIHNlcGFyYXRlbHksIGZyb206IGh0dHA6Ly9zZWxlbml1bS1yZWxlYXNlLnN0b3Jh
Z2UuZ29vZ2xlYXBpcy5jb20vMy44L3NlbGVuaXVtLXNlcnZlci1zdGFuZGFsb25lLTMuOC4wLmph
cgorCitSdW4gdGhlIHNlcnZlciBmcm9tIHRoZSBjb21tYW5kIGxpbmU6OgorCisgICAgamF2YSAt
amFyIHNlbGVuaXVtLXNlcnZlci1zdGFuZGFsb25lLTMuOC4wLmphcgorCitUaGVuIHJ1biB5b3Vy
IFB5dGhvbiBjbGllbnQgc2NyaXB0cy4KKworVXNlIFRoZSBTb3VyY2UgTHVrZSEKKz09PT09PT09
PT09PT09PT09PT09CisKK1ZpZXcgc291cmNlIGNvZGUgb25saW5lOgorCisrLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
K3wgb2ZmaWNpYWw6IHwgaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2VsZW5pdW0vdHJl
ZS9tYXN0ZXIvcHkgfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9idWlsZC5kZXNjIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvYnVpbGQuZGVzYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZGFhYmY0YWJhMjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9idWlsZC5kZXNjCkBAIC0wLDAgKzEsODUgQEAKKyMgcHlfdGVzdCB0
YXJnZXRzIGltcGxpY2l0bHkgZ2V0IHRoZSBmb2xsb3dpbmcgZXh0cmEgdGFyZ2V0cyBhZGRlZDoK
KyMgZm9yIGVhY2ggYnJvd3NlciBpbiBicm93c2VyczoKKyMgICA6bmFtZV9CIHRvIGdhdGhlciB0
aGUgc291cmNlcyBvZiB0aGUgdGVzdHMgZm9yIGJyb3dzZXIgQgorIyAgIDpuYW1lX0I6cnVuIHRv
IHJ1biB0aGUgdGVzdHMgZm9yIGJyb3dzZXIgQgorIyBBbHNvLCBpZiBvbmx5IG9uZSBicm93c2Vy
LCBCLCBpcyBsaXN0ZWQgaW4gYnJvd3NlcnM6CisjICAgOm5hbWU6cnVuIGlzIGNyZWF0ZWQgYXMg
YSBzeW5vbnltIGZvciA6bmFtZV9COnJ1bgorIworIyBDdXJyZW50bHksIHB1bGxpbmcgaW4gb3Ro
ZXIgdGVzdHMgdGhyb3VnaCBkZXBzCisjIGlzIGxpbWl0ZWQgdG8gZGVwcyBkZWNsYXJlZCBpbiB0
aGUgc2FtZSBidWlsZC5kZXNjIGZpbGUKKworcHlfdGVzdCgKKyAgbmFtZSA9ICJmaXJlZm94X3Rl
c3QiLAorICBkZXBzID0gWyAiOnRlc3RfZmYiIF0sCisgIHJlc291cmNlcyA9IFsKKyAgICB7ICIv
L2phdmFzY3JpcHQvZmlyZWZveC1kcml2ZXI6d2ViZHJpdmVyX3ByZWZzIiA6ICJzZWxlbml1bS93
ZWJkcml2ZXIvZmlyZWZveC93ZWJkcml2ZXJfcHJlZnMuanNvbiIgfSwKKyAgICB7ICIvL2phdmFz
Y3JpcHQvZmlyZWZveC1kcml2ZXI6d2ViZHJpdmVyIiA6ICJzZWxlbml1bS93ZWJkcml2ZXIvZmly
ZWZveC8iIH0KKyAgXSwKKyAgYnJvd3NlcnMgPSBbICJmZiIgXSkKKworcHlfdGVzdCgKKyAgbmFt
ZSA9ICJtYXJpb25ldHRlX3Rlc3QiLAorICBkZXBzID0gWyAiOnRlc3RfbWFyaW9uZXR0ZSIgXSwK
KyAgYnJvd3NlcnMgPSBbICJtYXJpb25ldHRlIiBdKQorCitweV90ZXN0KAorICBuYW1lID0gImJs
YWNrYmVycnlfdGVzdCIsCisgIGRlcHMgPSBbICI6dGVzdF9ibGFja2JlcnJ5IiBdLAorICBicm93
c2VycyA9IFsgImJsYWNrYmVycnkiIF0pCisKK3B5X3Rlc3QoCisgIG5hbWUgPSAiY2hyb21lX3Rl
c3QiLAorICBkZXBzID0gWyAiOnRlc3RfY2hyb21lIiBdLAorICBicm93c2VycyA9IFsgImNocm9t
ZSIgXSkKKworcHlfdGVzdCgKKyAgbmFtZSA9ICJpZV90ZXN0IiwKKyAgZGVwcyA9IFsgIjp0ZXN0
X2llIiBdLAorICBicm93c2VycyA9IFsgImllIiBdKQorCitweV90ZXN0KAorICBuYW1lID0gImVk
Z2VfdGVzdCIsCisgIGRlcHMgPSBbIjp0ZXN0X2VkZ2UiXSwKKyAgYnJvd3NlcnMgPSBbICJlZGdl
Il0pCisKK3B5X3Rlc3QoCisgIG5hbWUgPSAicmVtb3RlX2ZpcmVmb3hfdGVzdCIsCisgIGRlcHMg
PSBbICI6dGVzdF9yZW1vdGVfZmlyZWZveCIgXSwKKyAgYnJvd3NlcnMgPSBbICJyZW1vdGVfZmly
ZWZveCIgXSkKKworcHlfdGVzdCgKKyAgbmFtZSA9ICJzYWZhcmlfdGVzdCIsCisgIGRlcHMgPSBb
ICI6dGVzdF9zYWZhcmkiIF0sCisgIGJyb3dzZXJzID0gWyAic2FmYXJpIiBdKQorCitweV90ZXN0
KAorICBuYW1lID0gInRlc3QiLAorICBicm93c2VycyA9IFsKKyAgICAiY2hyb21lIiwKKyAgICAi
ZmYiLAorICAgICJtYXJpb25ldHRlIiwKKyAgICAiaWUiLAorICAgICJlZGdlIiwKKyAgICAiYmxh
Y2tiZXJyeSIsCisgICAgInJlbW90ZV9maXJlZm94IiwKKyAgICAic2FmYXJpIiwKKyAgXSkKKwor
cHlfZG9jcygKKyAgbmFtZSA9ICJkb2NzIgorKQorCitweV9pbnN0YWxsKAorICBuYW1lID0gImlu
c3RhbGwiCispCisKK3B5X3ByZXAoCisgIG5hbWUgPSAicHJlcCIsCisgIGRlcHMgPSBbCisgICAg
Ii8vY3BwOm5vYmx1ciIsCisgICAgIi8vY3BwOm5vYmx1cjY0IiwKKyAgICAiLy9qYXZhc2NyaXB0
L2F0b21zL2ZyYWdtZW50czppcy1kaXNwbGF5ZWQiLAorICAgICIvL2phdmFzY3JpcHQvZmlyZWZv
eC1kcml2ZXI6d2ViZHJpdmVyIiwKKyAgICAiLy9qYXZhc2NyaXB0L2ZpcmVmb3gtZHJpdmVyOndl
YmRyaXZlcl9wcmVmcyIsCisgICAgIi8vamF2YXNjcmlwdC93ZWJkcml2ZXIvYXRvbXM6Z2V0LWF0
dHJpYnV0ZSIKKyAgXSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L2NvbmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
Y29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlYjk3
NzVlYWQxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvY29uZnRlc3QucHkKQEAgLTAsMCArMSwyMDQgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNv
ZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29u
dHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0
cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdh
cmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisj
IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxp
Y2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQor
IyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl
IGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisj
CisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp
dGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp
YnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJ
VElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhl
IExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgb3MKK2lt
cG9ydCBzb2NrZXQKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQor
CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3Quc2tpcHBpbmcgaW1wb3J0IE1hcmtFdmFsdWF0
b3IKKworZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlciBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcworZnJvbSB0ZXN0LnNlbGVuaXVtLndlYmRy
aXZlci5jb21tb24ud2Vic2VydmVyIGltcG9ydCBTaW1wbGVXZWJTZXJ2ZXIKK2Zyb20gdGVzdC5z
ZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLm5ldHdvcmsgaW1wb3J0IGdldF9sYW5faXAKKworaWYg
c3lzLnZlcnNpb25faW5mb1swXSA9PSAzOgorICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0
IHVybG9wZW4KK2Vsc2U6CisgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVybG9wZW4KKworZHJpdmVy
cyA9ICgKKyAgICAnQmxhY2tCZXJyeScsCisgICAgJ0Nocm9tZScsCisgICAgJ0VkZ2UnLAorICAg
ICdGaXJlZm94JywKKyAgICAnSWUnLAorICAgICdNYXJpb25ldHRlJywKKyAgICAnUGhhbnRvbUpT
JywKKyAgICAnUmVtb3RlJywKKyAgICAnU2FmYXJpJywKKyAgICAnV2ViS2l0R1RLJywKKykKKwor
CitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIHBhcnNlci5hZGRvcHRpb24oCisg
ICAgICAgICctLWRyaXZlcicsCisgICAgICAgIGFjdGlvbj0nYXBwZW5kJywKKyAgICAgICAgY2hv
aWNlcz1kcml2ZXJzLAorICAgICAgICBkZXN0PSdkcml2ZXJzJywKKyAgICAgICAgbWV0YXZhcj0n
RFJJVkVSJywKKyAgICAgICAgaGVscD0nZHJpdmVyIHRvIHJ1biB0ZXN0cyBhZ2FpbnN0ICh7MH0p
Jy5mb3JtYXQoJywgJy5qb2luKGRyaXZlcnMpKSkKKworCitkZWYgcHl0ZXN0X2lnbm9yZV9jb2xs
ZWN0KHBhdGgsIGNvbmZpZyk6CisgICAgX2RyaXZlcnMgPSBzZXQoZHJpdmVycykuZGlmZmVyZW5j
ZShjb25maWcuZ2V0b3B0aW9uKCdkcml2ZXJzJykgb3IgZHJpdmVycykKKyAgICBwYXJ0cyA9IHBh
dGguZGlybmFtZS5zcGxpdChvcy5wYXRoLnNlcCkKKyAgICByZXR1cm4gbGVuKFtkIGZvciBkIGlu
IF9kcml2ZXJzIGlmIGQubG93ZXIoKSBpbiBwYXJ0c10pID4gMAorCisKK2RyaXZlcl9pbnN0YW5j
ZSA9IE5vbmUKKworCitAcHl0ZXN0LnlpZWxkX2ZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKK2Rl
ZiBkcml2ZXIocmVxdWVzdCk6CisgICAga3dhcmdzID0ge30KKworICAgIHRyeToKKyAgICAgICAg
ZHJpdmVyX2NsYXNzID0gcmVxdWVzdC5wYXJhbQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoK
KyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGlzIHRlc3QgcmVxdWlyZXMgYSAtLWRyaXZlciB0
byBiZSBzcGVjaWZpZWQuJykKKworICAgICMgY29uZGl0aW9uYWxseSBtYXJrIHRlc3RzIGFzIGV4
cGVjdGVkIHRvIGZhaWwgYmFzZWQgb24gZHJpdmVyCisgICAgcmVxdWVzdC5ub2RlLl9ldmFseGZh
aWwgPSByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbCBvciBNYXJrRXZhbHVhdG9yKAorICAgICAgICBy
ZXF1ZXN0Lm5vZGUsICd4ZmFpbF97MH0nLmZvcm1hdChkcml2ZXJfY2xhc3MubG93ZXIoKSkpCisg
ICAgaWYgcmVxdWVzdC5ub2RlLl9ldmFseGZhaWwuaXN0cnVlKCk6CisgICAgICAgIGRlZiBmaW4o
KToKKyAgICAgICAgICAgIGdsb2JhbCBkcml2ZXJfaW5zdGFuY2UKKyAgICAgICAgICAgIGlmIGRy
aXZlcl9pbnN0YW5jZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBkcml2ZXJfaW5zdGFu
Y2UucXVpdCgpCisgICAgICAgICAgICBkcml2ZXJfaW5zdGFuY2UgPSBOb25lCisgICAgICAgIHJl
cXVlc3QuYWRkZmluYWxpemVyKGZpbikKKworICAgICMgc2tpcCBkcml2ZXIgaW5zdGFudGlhdGlv
biBpZiB4ZmFpbChydW49RmFsc2UpCisgICAgaWYgbm90IHJlcXVlc3QuY29uZmlnLmdldG9wdGlv
bigncnVueGZhaWwnKToKKyAgICAgICAgaWYgcmVxdWVzdC5ub2RlLl9ldmFseGZhaWwuaXN0cnVl
KCk6CisgICAgICAgICAgICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5nZXQoJ3J1bicpIGlz
IEZhbHNlOgorICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICAgICAgcmV0dXJuCisK
KyAgICBnbG9iYWwgZHJpdmVyX2luc3RhbmNlCisgICAgaWYgZHJpdmVyX2luc3RhbmNlIGlzIE5v
bmU6CisgICAgICAgIGlmIGRyaXZlcl9jbGFzcyA9PSAnQmxhY2tCZXJyeSc6CisgICAgICAgICAg
ICBrd2FyZ3MudXBkYXRlKHsnZGV2aWNlX3Bhc3N3b3JkJzogJ3Bhc3N3b3JkJ30pCisgICAgICAg
IGlmIGRyaXZlcl9jbGFzcyA9PSAnRmlyZWZveCc6CisgICAgICAgICAgICBrd2FyZ3MudXBkYXRl
KHsnY2FwYWJpbGl0aWVzJzogeydtYXJpb25ldHRlJzogRmFsc2V9fSkKKyAgICAgICAgaWYgZHJp
dmVyX2NsYXNzID09ICdNYXJpb25ldHRlJzoKKyAgICAgICAgICAgIGRyaXZlcl9jbGFzcyA9ICdG
aXJlZm94JworICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ1JlbW90ZSc6CisgICAgICAgICAg
ICBjYXBhYmlsaXRpZXMgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLkZJUkVGT1guY29weSgpCisgICAg
ICAgICAgICBjYXBhYmlsaXRpZXNbJ21hcmlvbmV0dGUnXSA9IEZhbHNlCisgICAgICAgICAgICBr
d2FyZ3MudXBkYXRlKHsnZGVzaXJlZF9jYXBhYmlsaXRpZXMnOiBjYXBhYmlsaXRpZXN9KQorICAg
ICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ1dlYktpdEdUSyc6CisgICAgICAgICAgICBhZGRpdGlv
bmFsX2FyZ3MgPSB7fQorICAgICAgICAgICAgb3B0aW9ucyA9IHdlYmRyaXZlci5XZWJLaXRHVEtP
cHRpb25zKCkKKyAgICAgICAgICAgIG9wdGlvbnMub3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQg
PSBGYWxzZQorICAgICAgICAgICAgYnJvd3Nlcl9wYXRoID0gb3MuZW52aXJvbi5nZXQoJ1dEX0JS
T1dTRVJfUEFUSCcpCisgICAgICAgICAgICBpZiBicm93c2VyX3BhdGggaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAgICAgb3B0aW9ucy5icm93c2VyX2V4ZWN1dGFibGVfcGF0aCA9IGJyb3dzZXJf
cGF0aAorICAgICAgICAgICAgYnJvd3Nlcl9hcmdzID0gb3MuZW52aXJvbi5nZXQoJ1dEX0JST1dT
RVJfQVJHUycpCisgICAgICAgICAgICBpZiBicm93c2VyX2FyZ3MgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICAgICAgZm9yIGFyZyBpbiBicm93c2VyX2FyZ3Muc3BsaXQoKToKKyAgICAgICAgICAg
ICAgICAgICAgb3B0aW9ucy5hZGRfYnJvd3Nlcl9hcmd1bWVudChhcmcpCisgICAgICAgICAgICBh
ZGRpdGlvbmFsX2FyZ3NbJ29wdGlvbnMnXSA9IG9wdGlvbnMKKyAgICAgICAgICAgIGRyaXZlcl9w
YXRoID0gb3MuZW52aXJvbi5nZXQoJ1dEX0RSSVZFUl9QQVRIJykKKyAgICAgICAgICAgIGlmIGRy
aXZlcl9wYXRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfYXJnc1sn
ZXhlY3V0YWJsZV9wYXRoJ10gPSBkcml2ZXJfcGF0aAorICAgICAgICAgICAga3dhcmdzLnVwZGF0
ZShhZGRpdGlvbmFsX2FyZ3MpCisgICAgICAgIGRyaXZlcl9pbnN0YW5jZSA9IGdldGF0dHIod2Vi
ZHJpdmVyLCBkcml2ZXJfY2xhc3MpKCoqa3dhcmdzKQorICAgIHlpZWxkIGRyaXZlcl9pbnN0YW5j
ZQorICAgIGlmIE1hcmtFdmFsdWF0b3IocmVxdWVzdC5ub2RlLCAnbm9fZHJpdmVyX2FmdGVyX3Rl
c3QnKS5pc3RydWUoKToKKyAgICAgICAgZHJpdmVyX2luc3RhbmNlID0gTm9uZQorCisKK0BweXRl
c3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicsIGF1dG91c2U9VHJ1ZSkKK2RlZiBzdG9wX2RyaXZl
cihyZXF1ZXN0KToKKyAgICBkZWYgZmluKCk6CisgICAgICAgIGdsb2JhbCBkcml2ZXJfaW5zdGFu
Y2UKKyAgICAgICAgaWYgZHJpdmVyX2luc3RhbmNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ZHJpdmVyX2luc3RhbmNlLnF1aXQoKQorICAgICAgICBkcml2ZXJfaW5zdGFuY2UgPSBOb25lCisg
ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQorCisKK2RlZiBweXRlc3RfZXhjZXB0aW9uX2lu
dGVyYWN0KG5vZGUsIGNhbGwsIHJlcG9ydCk6CisgICAgaWYgcmVwb3J0LmZhaWxlZDoKKyAgICAg
ICAgZ2xvYmFsIGRyaXZlcl9pbnN0YW5jZQorICAgICAgICBpZiBkcml2ZXJfaW5zdGFuY2UgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBkcml2ZXJfaW5zdGFuY2UucXVpdCgpCisgICAgICAgIGRy
aXZlcl9pbnN0YW5jZSA9IE5vbmUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBwYWdlcyhkcml2
ZXIsIHdlYnNlcnZlcik6CisgICAgY2xhc3MgUGFnZXMob2JqZWN0KToKKyAgICAgICAgZGVmIHVy
bChzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIHJldHVybiB3ZWJzZXJ2ZXIud2hlcmVfaXMobmFt
ZSkKKworICAgICAgICBkZWYgbG9hZChzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIGRyaXZlci5n
ZXQoc2VsZi51cmwobmFtZSkpCisgICAgcmV0dXJuIFBhZ2VzKCkKKworCitAcHl0ZXN0LnlpZWxk
X2ZpeHR1cmUoYXV0b3VzZT1UcnVlLCBzY29wZT0nc2Vzc2lvbicpCitkZWYgc2VydmVyKHJlcXVl
c3QpOgorICAgIGRyaXZlcnMgPSByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oJ2RyaXZlcnMnKQor
ICAgIGlmIGRyaXZlcnMgaXMgTm9uZSBvciAnUmVtb3RlJyBub3QgaW4gZHJpdmVyczoKKyAgICAg
ICAgeWllbGQgTm9uZQorICAgICAgICByZXR1cm4KKworICAgIF9ob3N0ID0gJ2xvY2FsaG9zdCcK
KyAgICBfcG9ydCA9IDQ0NDQKKyAgICBfcGF0aCA9ICcuLi9idWNrLW91dC9nZW4vamF2YS9zZXJ2
ZXIvc3JjL29yZy9vcGVucWEvZ3JpZC9zZWxlbml1bS9zZWxlbml1bS5qYXInCisKKyAgICBkZWYg
d2FpdF9mb3Jfc2VydmVyKHVybCwgdGltZW91dCk6CisgICAgICAgIHN0YXJ0ID0gdGltZS50aW1l
KCkKKyAgICAgICAgd2hpbGUgdGltZS50aW1lKCkgLSBzdGFydCA8IHRpbWVvdXQ6CisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgdXJsb3Blbih1cmwpCisgICAgICAgICAgICAgICAg
cmV0dXJuIDEKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIHRp
bWUuc2xlZXAoMC4yKQorICAgICAgICByZXR1cm4gMAorCisgICAgX3NvY2tldCA9IHNvY2tldC5z
b2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKKyAgICB1cmwgPSAnaHR0
cDovL3t9Ont9L3dkL2h1YicuZm9ybWF0KF9ob3N0LCBfcG9ydCkKKyAgICB0cnk6CisgICAgICAg
IF9zb2NrZXQuY29ubmVjdCgoX2hvc3QsIF9wb3J0KSkKKyAgICAgICAgcHJpbnQoJ1RoZSByZW1v
dGUgZHJpdmVyIHNlcnZlciBpcyBhbHJlYWR5IHJ1bm5pbmcgb3Igc29tZXRoaW5nIGVsc2UnCisg
ICAgICAgICAgICAgICdpcyB1c2luZyBwb3J0IHt9LCBjb250aW51aW5nLi4uJy5mb3JtYXQoX3Bv
cnQpKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHByaW50KCdTdGFydGluZyB0aGUg
U2VsZW5pdW0gc2VydmVyJykKKyAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWydq
YXZhJywgJy1qYXInLCBfcGF0aF0pCisgICAgICAgIHByaW50KCdTZWxlbml1bSBzZXJ2ZXIgcnVu
bmluZyBhcyBwcm9jZXNzOiB7fScuZm9ybWF0KHByb2Nlc3MucGlkKSkKKyAgICAgICAgYXNzZXJ0
IHdhaXRfZm9yX3NlcnZlcih1cmwsIDEwKSwgJ1RpbWVkIG91dCB3YWl0aW5nIGZvciBTZWxlbml1
bSBzZXJ2ZXIgYXQge30nLmZvcm1hdCh1cmwpCisgICAgICAgIHByaW50KCdTZWxlbml1bSBzZXJ2
ZXIgaXMgcmVhZHknKQorICAgICAgICB5aWVsZCBwcm9jZXNzCisgICAgICAgIHByb2Nlc3MudGVy
bWluYXRlKCkKKyAgICAgICAgcHJvY2Vzcy53YWl0KCkKKyAgICAgICAgcHJpbnQoJ1NlbGVuaXVt
IHNlcnZlciBoYXMgYmVlbiB0ZXJtaW5hdGVkJykKKworCitAcHl0ZXN0LnlpZWxkX2ZpeHR1cmUo
YXV0b3VzZT1UcnVlLCBzY29wZT0nc2Vzc2lvbicpCitkZWYgd2Vic2VydmVyKCk6CisgICAgd2Vi
c2VydmVyID0gU2ltcGxlV2ViU2VydmVyKGhvc3Q9Z2V0X2xhbl9pcCgpKQorICAgIHdlYnNlcnZl
ci5zdGFydCgpCisgICAgeWllbGQgd2Vic2VydmVyCisgICAgd2Vic2VydmVyLnN0b3AoKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9NYWtlZmls
ZSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3MvTWFrZWZpbGUKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJkNDgzNzA2YzIxCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9NYWtl
ZmlsZQpAQCAtMCwwICsxLDEzMSBAQAorIyBNYWtlZmlsZSBmb3IgU3BoaW54IGRvY3VtZW50YXRp
b24KKyMKKworIyBZb3UgY2FuIHNldCB0aGVzZSB2YXJpYWJsZXMgZnJvbSB0aGUgY29tbWFuZCBs
aW5lLgorU1BISU5YT1BUUyAgICA9CitTUEhJTlhCVUlMRCAgID0gc3BoaW54LWJ1aWxkCitQQVBF
UiAgICAgICAgID0KK0JVSUxERElSICAgICAgPSBidWlsZAorCisjIEludGVybmFsIHZhcmlhYmxl
cy4KK1BBUEVST1BUX2E0ICAgICA9IC1EIGxhdGV4X3BhcGVyX3NpemU9YTQKK1BBUEVST1BUX2xl
dHRlciA9IC1EIGxhdGV4X3BhcGVyX3NpemU9bGV0dGVyCitBTExTUEhJTlhPUFRTICAgPSAtZCAk
KEJVSUxERElSKS9kb2N0cmVlcyAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQSElOWE9QVFMpIHNv
dXJjZQorSFRNTF9ERVNUSU5BVElPTiAgICAgPSAuLi8uLi9kb2NzL2FwaS9weQorCisuUEhPTlk6
IGhlbHAgY2xlYW4gaHRtbCBkaXJodG1sIHNpbmdsZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAg
cXRoZWxwIGRldmhlbHAgZXB1YiBsYXRleCBsYXRleHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtj
aGVjayBkb2N0ZXN0CisKK2hlbHA6CisJQGVjaG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+
JyB3aGVyZSA8dGFyZ2V0PiBpcyBvbmUgb2YiCisJQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtl
IHN0YW5kYWxvbmUgSFRNTCBmaWxlcyIKKwlAZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRN
TCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGluIGRpcmVjdG9yaWVzIgorCUBlY2hvICIgIHNpbmds
ZWh0bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUiCisJQGVjaG8gIiAgcGlja2xl
ICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcyIKKwlAZWNobyAiICBqc29uICAgICAgIHRvIG1ha2Ug
SlNPTiBmaWxlcyIKKwlAZWNobyAiICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQg
YSBIVE1MIGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBm
aWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2Ug
SFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZXB1YiAgICAgICB0
byBtYWtlIGFuIGVwdWIiCisJQGVjaG8gIiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVz
LCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQQVBFUj1sZXR0ZXIiCisJQGVjaG8gIiAgbGF0ZXhw
ZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4Igor
CUBlY2hvICIgIHRleHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzIgorCUBlY2hvICIgIG1hbiAg
ICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMiCisJQGVjaG8gIiAgY2hhbmdlcyAgICB0byBtYWtl
IGFuIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VkL2FkZGVkL2RlcHJlY2F0ZWQgaXRlbXMiCisJQGVj
aG8gIiAgbGlua2NoZWNrICB0byBjaGVjayBhbGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0
eSIKKwlAZWNobyAiICBkb2N0ZXN0ICAgIHRvIHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQgaW4g
dGhlIGRvY3VtZW50YXRpb24gKGlmIGVuYWJsZWQpIgorCitjbGVhbjoKKwktcm0gLXJmICQoQlVJ
TERESVIpLyoKKworaHRtbDogY2xlYW4KKwkkKFNQSElOWEJVSUxEKSAtYiBodG1sICQoQUxMU1BI
SU5YT1BUUykgJChIVE1MX0RFU1RJTkFUSU9OKQorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlz
aGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChIVE1MX0RFU1RJTkFUSU9OKS4iCisKK2Rpcmh0
bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgZGlyaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERE
SVIpL2Rpcmh0bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFn
ZXMgYXJlIGluICQoQlVJTERESVIpL2Rpcmh0bWwuIgorCitzaW5nbGVodG1sOgorCSQoU1BISU5Y
QlVJTEQpIC1iIHNpbmdsZWh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9zaW5nbGVo
dG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2UgaXMgaW4g
JChCVUlMRERJUikvc2luZ2xlaHRtbC4iCisKK3BpY2tsZToKKwkkKFNQSElOWEJVSUxEKSAtYiBw
aWNrbGUgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9waWNrbGUKKwlAZWNobworCUBlY2hv
ICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgcGlja2xlIGZpbGVzLiIK
KworanNvbjoKKwkkKFNQSElOWEJVSUxEKSAtYiBqc29uICQoQUxMU1BISU5YT1BUUykgJChCVUlM
RERJUikvanNvbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBw
cm9jZXNzIHRoZSBKU09OIGZpbGVzLiIKKworaHRtbGhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIg
aHRtbGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1saGVscAorCUBlY2hvCisJ
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdvcmtzaG9w
IHdpdGggdGhlIiBcCisJICAgICAgIi5oaHAgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL2h0
bWxoZWxwLiIKKworcXRoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIHF0aGVscCAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL3F0aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVk
OyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSIgXAorCSAg
ICAgICIucWhjcCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvcXRoZWxwLCBsaWtlIHRoaXM6
IgorCUBlY2hvICIjIHFjb2xsZWN0aW9uZ2VuZXJhdG9yICQoQlVJTERESVIpL3F0aGVscC9TZWxl
bml1bS5xaGNwIgorCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgorCUBlY2hvICIjIGFz
c2lzdGFudCAtY29sbGVjdGlvbkZpbGUgJChCVUlMRERJUikvcXRoZWxwL1NlbGVuaXVtLnFoYyIK
KworZGV2aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkZXZoZWxwICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvZGV2aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlA
ZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlAZWNobyAiIyBta2RpciAtcCAkJEhPTUUv
LmxvY2FsL3NoYXJlL2RldmhlbHAvU2VsZW5pdW0iCisJQGVjaG8gIiMgbG4gLXMgJChCVUlMRERJ
UikvZGV2aGVscCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvU2VsZW5pdW0iCisJQGVjaG8g
IiMgZGV2aGVscCIKKworZXB1YjoKKwkkKFNQSElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvZXB1YgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBU
aGUgZXB1YiBmaWxlIGlzIGluICQoQlVJTERESVIpL2VwdWIuIgorCitsYXRleDoKKwkkKFNQSElO
WEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJQGVj
aG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlM
RERJUikvbGF0ZXguIgorCUBlY2hvICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBy
dW4gdGhlc2UgdGhyb3VnaCAocGRmKWxhdGV4IiBcCisJICAgICAgIih1c2UgXGBtYWtlIGxhdGV4
cGRmJyBoZXJlIHRvIGRvIHRoYXQgYXV0b21hdGljYWxseSkuIgorCitsYXRleHBkZjoKKwkkKFNQ
SElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJ
QGVjaG8gIlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhyb3VnaCBwZGZsYXRleC4uLiIKKwltYWtlIC1D
ICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYKKwlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRo
ZSBQREYgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL2xhdGV4LiIKKwordGV4dDoKKwkkKFNQSElO
WEJVSUxEKSAtYiB0ZXh0ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4dAorCUBlY2hv
CisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgdGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJ
UikvdGV4dC4iCisKK21hbjoKKwkkKFNQSElOWEJVSUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9tYW4KKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1h
bnVhbCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvbWFuLiIKKworY2hhbmdlczoKKwkkKFNQSElO
WEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvY2hhbmdlcwor
CUBlY2hvCisJQGVjaG8gIlRoZSBvdmVydmlldyBmaWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5n
ZXMuIgorCitsaW5rY2hlY2s6CisJJChTUEhJTlhCVUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvbGlua2NoZWNrCisJQGVjaG8KKwlAZWNobyAiTGluayBjaGVj
ayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVycm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAor
CSAgICAgICJvciBpbiAkKEJVSUxERElSKS9saW5rY2hlY2svb3V0cHV0LnR4dC4iCisKK2RvY3Rl
c3Q6CisJJChTUEhJTlhCVUlMRCkgLWIgZG9jdGVzdCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERE
SVIpL2RvY3Rlc3QKKwlAZWNobyAiVGVzdGluZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBm
aW5pc2hlZCwgbG9vayBhdCB0aGUgIiBcCisJICAgICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikv
ZG9jdGVzdC9vdXRwdXQudHh0LiIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL2FwaS5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS9hcGkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5mOTY0MmE4MzM3MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL2FwaS5yc3QKQEAgLTAsMCAr
MSwxMzggQEAKKzpvcnBoYW46CisKKz09PT09PT09PT09PT09PT09PT09PT0KK1NlbGVuaXVtIERv
Y3VtZW50YXRpb24KKz09PT09PT09PT09PT09PT09PT09PT0KKworQ29tbW9uCistLS0tLS0KKwor
Li4gY3VycmVudG1vZHVsZTo6IHNlbGVuaXVtLmNvbW1vbgorLi4gYXV0b3N1bW1hcnk6OgorICAg
OnRvY3RyZWU6IGNvbW1vbgorCisgICBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucworCitXZWJk
cml2ZXIuY29tbW9uCistLS0tLS0tLS0tLS0tLS0tCisKKy4uIGN1cnJlbnRtb2R1bGU6OiBzZWxl
bml1bS53ZWJkcml2ZXIuY29tbW9uCisuLiBhdXRvc3VtbWFyeTo6CisgICA6dG9jdHJlZTogd2Vi
ZHJpdmVyCisKKyAgIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYWN0aW9uX2NoYWlucworICAg
c2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5hbGVydAorICAgc2VsZW5pdW0ud2ViZHJpdmVyLmNv
bW1vbi5ieQorICAgc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGll
cworICAgc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzCisgICBzZWxlbml1bS53ZWJkcml2
ZXIuY29tbW9uLnRvdWNoX2FjdGlvbnMKKyAgIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24udXRp
bHMKKyAgIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJveHkKKyAgIHNlbGVuaXVtLndlYmRy
aXZlci5jb21tb24uc2VydmljZQorICAgc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5odG1sNS5h
cHBsaWNhdGlvbl9jYWNoZQorCitXZWJkcml2ZXIuc3VwcG9ydAorLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gY3VycmVudG1vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0CisuLiBhdXRv
c3VtbWFyeTo6CisgICA6dG9jdHJlZTogd2ViZHJpdmVyX3N1cHBvcnQKKworICAgc2VsZW5pdW0u
d2ViZHJpdmVyLnN1cHBvcnQuYWJzdHJhY3RfZXZlbnRfbGlzdGVuZXIKKyAgIHNlbGVuaXVtLndl
YmRyaXZlci5zdXBwb3J0LmNvbG9yCisgICBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5ldmVu
dF9maXJpbmdfd2ViZHJpdmVyCisgICBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5leHBlY3Rl
ZF9jb25kaXRpb25zCisgICBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5zZWxlY3QKKyAgIHNl
bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQKKworV2ViZHJpdmVyLmFuZHJvaWQKKy0tLS0t
LS0tLS0tLS0tLS0tCisKKy4uIGN1cnJlbnRtb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuYW5k
cm9pZAorLi4gYXV0b3N1bW1hcnk6OgorICAgOnRvY3RyZWU6IHdlYmRyaXZlcl9hbmRyb2lkCisK
KyAgIHNlbGVuaXVtLndlYmRyaXZlci5hbmRyb2lkLndlYmRyaXZlcgorCitXZWJkcml2ZXIuY2hy
b21lCistLS0tLS0tLS0tLS0tLS0tCisKKy4uIGN1cnJlbnRtb2R1bGU6OiBzZWxlbml1bS53ZWJk
cml2ZXIuY2hyb21lCisuLiBhdXRvc3VtbWFyeTo6CisgICA6dG9jdHJlZTogd2ViZHJpdmVyX2No
cm9tZQorCisgICBzZWxlbml1bS53ZWJkcml2ZXIuY2hyb21lLm9wdGlvbnMKKyAgIHNlbGVuaXVt
LndlYmRyaXZlci5jaHJvbWUuc2VydmljZQorICAgc2VsZW5pdW0ud2ViZHJpdmVyLmNocm9tZS53
ZWJkcml2ZXIKKworV2ViZHJpdmVyLmZpcmVmb3gKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGN1
cnJlbnRtb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveAorLi4gYXV0b3N1bW1hcnk6
OgorICAgOnRvY3RyZWU6IHdlYmRyaXZlcl9maXJlZm94CisKKyAgIHNlbGVuaXVtLndlYmRyaXZl
ci5maXJlZm94LmV4dGVuc2lvbl9jb25uZWN0aW9uCisgICBzZWxlbml1bS53ZWJkcml2ZXIuZmly
ZWZveC5maXJlZm94X2JpbmFyeQorICAgc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3gub3B0aW9u
cworICAgc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZmlyZWZveF9wcm9maWxlCisgICBzZWxl
bml1bS53ZWJkcml2ZXIuZmlyZWZveC53ZWJkcml2ZXIKKworV2ViZHJpdmVyLmllCistLS0tLS0t
LS0tLS0KKworLi4gY3VycmVudG1vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5pZQorLi4gYXV0
b3N1bW1hcnk6OgorICAgOnRvY3RyZWU6IHdlYmRyaXZlcl9pZQorCisgICBzZWxlbml1bS53ZWJk
cml2ZXIuaWUud2ViZHJpdmVyCisKK1dlYmRyaXZlci5vcGVyYQorLS0tLS0tLS0tLS0tLS0tCisK
Ky4uIGN1cnJlbnRtb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIub3BlcmEKKy4uIGF1dG9zdW1t
YXJ5OjoKKyAgIDp0b2N0cmVlOiB3ZWJkcml2ZXJfb3BlcmEKKworICAgc2VsZW5pdW0ud2ViZHJp
dmVyLm9wZXJhLndlYmRyaXZlcgorCitXZWJkcml2ZXIucGhhbnRvbWpzCistLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy4uIGN1cnJlbnRtb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIucGhhbnRvbWpz
CisuLiBhdXRvc3VtbWFyeTo6CisgICA6dG9jdHJlZTogd2ViZHJpdmVyX3BoYW50b21qcworCisg
ICBzZWxlbml1bS53ZWJkcml2ZXIucGhhbnRvbWpzLnNlcnZpY2UKKyAgIHNlbGVuaXVtLndlYmRy
aXZlci5waGFudG9tanMud2ViZHJpdmVyCisKK1dlYmRyaXZlci5yZW1vdGUKKy0tLS0tLS0tLS0t
LS0tLS0KKworLi4gY3VycmVudG1vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUKKy4u
IGF1dG9zdW1tYXJ5OjoKKyAgIDp0b2N0cmVlOiB3ZWJkcml2ZXJfcmVtb3RlCisKKyAgIHNlbGVu
aXVtLndlYmRyaXZlci5yZW1vdGUuY29tbWFuZAorICAgc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90
ZS5lcnJvcmhhbmRsZXIKKyAgIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUubW9iaWxlCisgICBz
ZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLnJlbW90ZV9jb25uZWN0aW9uCisgICBzZWxlbml1bS53
ZWJkcml2ZXIucmVtb3RlLnV0aWxzCisgICBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmRy
aXZlcgorICAgc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJlbGVtZW50CisKK1dlYmRyaXZl
ci5zYWZhcmkKKy0tLS0tLS0tLS0tLS0tLS0KKworLi4gY3VycmVudG1vZHVsZTo6IHNlbGVuaXVt
LndlYmRyaXZlci5zYWZhcmkKKy4uIGF1dG9zdW1tYXJ5OjoKKyAgOnRvY3RyZWU6IHdlYmRyaXZl
cl9zYWZhcmkKKworICBzZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLnNlcnZpY2UKKyAgc2VsZW5p
dW0ud2ViZHJpdmVyLnNhZmFyaS53ZWJkcml2ZXIKKworSW5kaWNlcyBhbmQgdGFibGVzCisKKyog
OnJlZjpgZ2VuaW5kZXhgCisqIDpyZWY6YG1vZGluZGV4YAorKiA6cmVmOmBzZWFyY2hgCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS9j
b21tb24vc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2UvY29tbW9uL3NlbGVuaXVtLmNvbW1vbi5leGNl
cHRpb25zLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzU2ZDI1
NmMyMGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9kb2NzL3NvdXJjZS9jb21tb24vc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMucnN0CkBA
IC0wLDAgKzEsNCBAQAorc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMKKz09PT09PT09PT09PT09
PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9u
cwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9z
b3VyY2UvY29uZi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mv
c291cmNlL2NvbmYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk5
MjM5M2NlZGJhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvZG9jcy9zb3VyY2UvY29uZi5weQpAQCAtMCwwICsxLDI3NCBAQAorIyBMaWNlbnNl
ZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMg
b3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBm
aWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0
aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0
aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAg
KHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBj
b21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2Yg
dGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElD
RU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVl
ZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z
ZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJ
RVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGll
ZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmlu
ZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitpbXBvcnQgc3lzLCBvcywg
b3MucGF0aAorCisjIElmIGV4dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBh
dXRvZG9jKSBhcmUgaW4gYW5vdGhlciBkaXJlY3RvcnksCisjIGFkZCB0aGVzZSBkaXJlY3Rvcmll
cyB0byBzeXMucGF0aCBoZXJlLiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQor
IyBkb2N1bWVudGF0aW9uIHJvb3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNv
bHV0ZSwgbGlrZSBzaG93biBoZXJlLgorIyBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNw
YXRoKCcuJykpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCAi
Li4iLCAiLi4iKSkKKworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB5b3VyIGRvY3Vt
ZW50YXRpb24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBzdGF0ZSBpdCBoZXJlLgor
I25lZWRzX3NwaGlueCA9ICcxLjAnCisKKyMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVs
ZSBuYW1lcyBoZXJlLCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZSBleHRlbnNpb25zCisjIGNvbWlu
ZyB3aXRoIFNwaGlueCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tIG9uZXMu
CitleHRlbnNpb25zID0gWydzcGhpbnguZXh0LmF1dG9kb2MnLCAnc3BoaW54LmV4dC5hdXRvc3Vt
bWFyeScsICdzcGhpbnguZXh0LmRvY3Rlc3QnLCAnc3BoaW54LmV4dC50b2RvJywgJ3NwaGlueC5l
eHQuY292ZXJhZ2UnLCAnc3BoaW54LmV4dC5wbmdtYXRoJywgJ3NwaGlueC5leHQudmlld2NvZGUn
XQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2
ZSB0byB0aGlzIGRpcmVjdG9yeS4KK3RlbXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KKwor
IyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCitzb3VyY2Vfc3VmZml4ID0gJy5yc3Qn
CisKKyMgVGhlIGVuY29kaW5nIG9mIHNvdXJjZSBmaWxlcy4KKyNzb3VyY2VfZW5jb2RpbmcgPSAn
dXRmLTgtc2lnJworCisjIFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KK21hc3Rlcl9kb2Mg
PSAnaW5kZXgnCisKKyMgR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KK3By
b2plY3QgPSAnU2VsZW5pdW0nCitjb3B5cmlnaHQgPSAnMjAxMSwgcGxpZ2h0Ym8sIHNpbW9uLm0u
c3Rld2FydCwgaGJjaGFpLCBqcmh1Z2dpbnMsIGV0IGFsLicKKworIyBUaGUgdmVyc2lvbiBpbmZv
IGZvciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1lbnRpbmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQg
Zm9yCisjIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8LCBhbHNvIHVzZWQgaW4gdmFyaW91cyBvdGhl
ciBwbGFjZXMgdGhyb3VnaG91dCB0aGUKKyMgYnVpbHQgZG9jdW1lbnRzLgorIworIyBUaGUgc2hv
cnQgWC5ZIHZlcnNpb24uCit2ZXJzaW9uID0gJzMuOCcKKyMgVGhlIGZ1bGwgdmVyc2lvbiwgaW5j
bHVkaW5nIGFscGhhL2JldGEvcmMgdGFncy4KK3JlbGVhc2UgPSB2ZXJzaW9uCisKKyMgVGhlIGxh
bmd1YWdlIGZvciBjb250ZW50IGF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1
bWVudGF0aW9uCisjIGZvciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlcy4KKyNsYW5ndWFn
ZSA9IE5vbmUKKworIyBUaGVyZSBhcmUgdHdvIG9wdGlvbnMgZm9yIHJlcGxhY2luZyB8dG9kYXl8
OiBlaXRoZXIsIHlvdSBzZXQgdG9kYXkgdG8gc29tZQorIyBub24tZmFsc2UgdmFsdWUsIHRoZW4g
aXQgaXMgdXNlZDoKKyN0b2RheSA9ICcnCisjIEVsc2UsIHRvZGF5X2ZtdCBpcyB1c2VkIGFzIHRo
ZSBmb3JtYXQgZm9yIGEgc3RyZnRpbWUgY2FsbC4KKyN0b2RheV9mbXQgPSAnJUIgJWQsICVZJwor
CisjIExpc3Qgb2YgcGF0dGVybnMsIHJlbGF0aXZlIHRvIHNvdXJjZSBkaXJlY3RvcnksIHRoYXQg
bWF0Y2ggZmlsZXMgYW5kCisjIGRpcmVjdG9yaWVzIHRvIGlnbm9yZSB3aGVuIGxvb2tpbmcgZm9y
IHNvdXJjZSBmaWxlcy4KK2V4Y2x1ZGVfcGF0dGVybnMgPSBbXQorCisjIFRoZSByZVNUIGRlZmF1
bHQgcm9sZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0ZXh0YCkgdG8gdXNlIGZvciBhbGwgZG9j
dW1lbnRzLgorI2RlZmF1bHRfcm9sZSA9IE5vbmUKKworIyBJZiB0cnVlLCAnKCknIHdpbGwgYmUg
YXBwZW5kZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVmZXJlbmNlIHRleHQuCisjYWRkX2Z1bmN0
aW9uX3BhcmVudGhlc2VzID0gVHJ1ZQorCisjIElmIHRydWUsIHRoZSBjdXJyZW50IG1vZHVsZSBu
YW1lIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNjcmlwdGlvbgorIyB1bml0IHRpdGxlcyAo
c3VjaCBhcyAuLiBmdW5jdGlvbjo6KS4KKyNhZGRfbW9kdWxlX25hbWVzID0gVHJ1ZQorCisjIElm
IHRydWUsIHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1dGhvciBkaXJlY3RpdmVzIHdpbGwgYmUg
c2hvd24gaW4gdGhlCisjIG91dHB1dC4gVGhleSBhcmUgaWdub3JlZCBieSBkZWZhdWx0LgorI3No
b3dfYXV0aG9ycyA9IEZhbHNlCisKKyMgVGhlIG5hbWUgb2YgdGhlIFB5Z21lbnRzIChzeW50YXgg
aGlnaGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCitweWdtZW50c19zdHlsZSA9ICdzcGhpbngnCisK
KyMgQSBsaXN0IG9mIGlnbm9yZWQgcHJlZml4ZXMgZm9yIG1vZHVsZSBpbmRleCBzb3J0aW5nLgor
I21vZGluZGV4X2NvbW1vbl9wcmVmaXggPSBbXQorCisKKyMgLS0gT3B0aW9ucyBmb3IgSFRNTCBv
dXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKyMgVGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2Vl
IHRoZSBkb2N1bWVudGF0aW9uIGZvcgorIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCitodG1s
X3RoZW1lID0gJ2RlZmF1bHQnCisKKyMgVGhlbWUgb3B0aW9ucyBhcmUgdGhlbWUtc3BlY2lmaWMg
YW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCisjIGZ1cnRoZXIuICBG
b3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1lLCBzZWUgdGhlCisj
IGRvY3VtZW50YXRpb24uCisjaHRtbF90aGVtZV9vcHRpb25zID0ge30KKworIyBBZGQgYW55IHBh
dGhzIHRoYXQgY29udGFpbiBjdXN0b20gdGhlbWVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGly
ZWN0b3J5LgorI2h0bWxfdGhlbWVfcGF0aCA9IFtdCisKKyMgVGhlIG5hbWUgZm9yIHRoaXMgc2V0
IG9mIFNwaGlueCBkb2N1bWVudHMuICBJZiBOb25lLCBpdCBkZWZhdWx0cyB0bworIyAiPHByb2pl
Y3Q+IHY8cmVsZWFzZT4gZG9jdW1lbnRhdGlvbiIuCisjaHRtbF90aXRsZSA9IE5vbmUKKworIyBB
IHNob3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0aW9uIGJhci4gIERlZmF1bHQgaXMgdGhlIHNh
bWUgYXMgaHRtbF90aXRsZS4KKyNodG1sX3Nob3J0X3RpdGxlID0gTm9uZQorCisjIFRoZSBuYW1l
IG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBh
dCB0aGUgdG9wCisjIG9mIHRoZSBzaWRlYmFyLgorI2h0bWxfbG9nbyA9IE5vbmUKKworIyBUaGUg
bmFtZSBvZiBhbiBpbWFnZSBmaWxlICh3aXRoaW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1c2UgYXMg
ZmF2aWNvbiBvZiB0aGUKKyMgZG9jcy4gIFRoaXMgZmlsZSBzaG91bGQgYmUgYSBXaW5kb3dzIGlj
b24gZmlsZSAoLmljbykgYmVpbmcgMTZ4MTYgb3IgMzJ4MzIKKyMgcGl4ZWxzIGxhcmdlLgorI2h0
bWxfZmF2aWNvbiA9IE5vbmUKKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20g
c3RhdGljIGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0cykgaGVyZSwKKyMgcmVsYXRpdmUgdG8g
dGhpcyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMg
ZmlsZXMsCisjIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRo
ZSBidWlsdGluICJkZWZhdWx0LmNzcyIuCitodG1sX3N0YXRpY19wYXRoID0gW10KKworIyBJZiBu
b3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBvbjonIHRpbWVzdGFtcCBpcyBpbnNlcnRlZCBhdCBldmVy
eSBwYWdlIGJvdHRvbSwKKyMgdXNpbmcgdGhlIGdpdmVuIHN0cmZ0aW1lIGZvcm1hdC4KKyNodG1s
X2xhc3RfdXBkYXRlZF9mbXQgPSAnJWIgJWQsICVZJworCisjIElmIHRydWUsIFNtYXJ0eVBhbnRz
IHdpbGwgYmUgdXNlZCB0byBjb252ZXJ0IHF1b3RlcyBhbmQgZGFzaGVzIHRvCisjIHR5cG9ncmFw
aGljYWxseSBjb3JyZWN0IGVudGl0aWVzLgorI2h0bWxfdXNlX3NtYXJ0eXBhbnRzID0gVHJ1ZQor
CisjIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywgbWFwcyBkb2N1bWVudCBuYW1lcyB0byB0ZW1w
bGF0ZSBuYW1lcy4KKyNodG1sX3NpZGViYXJzID0ge30KKworIyBBZGRpdGlvbmFsIHRlbXBsYXRl
cyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB0byBwYWdlcywgbWFwcyBwYWdlIG5hbWVzIHRvCisj
IHRlbXBsYXRlIG5hbWVzLgorI2h0bWxfYWRkaXRpb25hbF9wYWdlcyA9IHt9CisKKyMgSWYgZmFs
c2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCisjaHRtbF9kb21haW5faW5kaWNlcyA9
IFRydWUKKworIyBJZiBmYWxzZSwgbm8gaW5kZXggaXMgZ2VuZXJhdGVkLgorI2h0bWxfdXNlX2lu
ZGV4ID0gVHJ1ZQorCisjIElmIHRydWUsIHRoZSBpbmRleCBpcyBzcGxpdCBpbnRvIGluZGl2aWR1
YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVyLgorI2h0bWxfc3BsaXRfaW5kZXggPSBGYWxzZQorCisj
IElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBwYWdl
cy4KK2h0bWxfc2hvd19zb3VyY2VsaW5rID0gVHJ1ZQorCisjIElmIHRydWUsICJDcmVhdGVkIHVz
aW5nIFNwaGlueCIgaXMgc2hvd24gaW4gdGhlIEhUTUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRydWUu
CitodG1sX3Nob3dfc3BoaW54ID0gRmFsc2UKKworIyBJZiB0cnVlLCAiKEMpIENvcHlyaWdodCAu
Li4iIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgorI2h0bWxf
c2hvd19jb3B5cmlnaHQgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgYW4gT3BlblNlYXJjaCBkZXNjcmlw
dGlvbiBmaWxlIHdpbGwgYmUgb3V0cHV0LCBhbmQgYWxsIHBhZ2VzIHdpbGwKKyMgY29udGFpbiBh
IDxsaW5rPiB0YWcgcmVmZXJyaW5nIHRvIGl0LiAgVGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uIG11
c3QgYmUgdGhlCisjIGJhc2UgVVJMIGZyb20gd2hpY2ggdGhlIGZpbmlzaGVkIEhUTUwgaXMgc2Vy
dmVkLgorI2h0bWxfdXNlX29wZW5zZWFyY2ggPSAnJworCisjIFRoaXMgaXMgdGhlIGZpbGUgbmFt
ZSBzdWZmaXggZm9yIEhUTUwgZmlsZXMgKGUuZy4gIi54aHRtbCIpLgorI2h0bWxfZmlsZV9zdWZm
aXggPSBOb25lCisKKyMgT3V0cHV0IGZpbGUgYmFzZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVpbGRl
ci4KK2h0bWxoZWxwX2Jhc2VuYW1lID0gJ1NlbGVuaXVtZG9jJworCisKKyMgLS0gT3B0aW9ucyBm
b3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyMgVGhlIHBhcGVyIHNpemUgKCdsZXR0ZXInIG9yICdhNCcpLgorI2xhdGV4
X3BhcGVyX3NpemUgPSAnbGV0dGVyJworCisjIFRoZSBmb250IHNpemUgKCcxMHB0JywgJzExcHQn
IG9yICcxMnB0JykuCisjbGF0ZXhfZm9udF9zaXplID0gJzEwcHQnCisKKyMgR3JvdXBpbmcgdGhl
IGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJj
ZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwgZG9jdW1lbnRjbGFzcyBb
aG93dG8vbWFudWFsXSkuCitsYXRleF9kb2N1bWVudHMgPSBbCisgICgnaW5kZXgnLCAnU2VsZW5p
dW0udGV4JywgJ1NlbGVuaXVtIERvY3VtZW50YXRpb24nLAorICAgJ3BsaWdodGJvLCBzaW1vbi5t
LnN0ZXdhcnQsIGhiY2hhaSwganJodWdnaW5zLCBldCBhbC4nLCAnbWFudWFsJyksCitdCisKKyMg
VGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRv
IHBsYWNlIGF0IHRoZSB0b3Agb2YKKyMgdGhlIHRpdGxlIHBhZ2UuCisjbGF0ZXhfbG9nbyA9IE5v
bmUKKworIyBGb3IgIm1hbnVhbCIgZG9jdW1lbnRzLCBpZiB0aGlzIGlzIHRydWUsIHRoZW4gdG9w
bGV2ZWwgaGVhZGluZ3MgYXJlIHBhcnRzLAorIyBub3QgY2hhcHRlcnMuCisjbGF0ZXhfdXNlX3Bh
cnRzID0gRmFsc2UKKworIyBJZiB0cnVlLCBzaG93IHBhZ2UgcmVmZXJlbmNlcyBhZnRlciBpbnRl
cm5hbCBsaW5rcy4KKyNsYXRleF9zaG93X3BhZ2VyZWZzID0gRmFsc2UKKworIyBJZiB0cnVlLCBz
aG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwgbGlua3MuCisjbGF0ZXhfc2hvd191cmxz
ID0gRmFsc2UKKworIyBBZGRpdGlvbmFsIHN0dWZmIGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCisj
bGF0ZXhfcHJlYW1ibGUgPSAnJworCisjIERvY3VtZW50cyB0byBhcHBlbmQgYXMgYW4gYXBwZW5k
aXggdG8gYWxsIG1hbnVhbHMuCisjbGF0ZXhfYXBwZW5kaWNlcyA9IFtdCisKKyMgSWYgZmFsc2Us
IG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCisjbGF0ZXhfZG9tYWluX2luZGljZXMgPSBU
cnVlCisKKworIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBPbmUgZW50cnkgcGVyIG1hbnVh
bCBwYWdlLiBMaXN0IG9mIHR1cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIG5hbWUsIGRlc2Ny
aXB0aW9uLCBhdXRob3JzLCBtYW51YWwgc2VjdGlvbikuCittYW5fcGFnZXMgPSBbCisgICAgKCdp
bmRleCcsICdzZWxlbml1bScsICdTZWxlbml1bSBEb2N1bWVudGF0aW9uJywKKyAgICAgWydwbGln
aHRibywgc2ltb24ubS5zdGV3YXJ0LCBoYmNoYWksIGpyaHVnZ2lucywgZXQgYWwuJ10sIDEpCitd
CisKKworIyAtLSBPcHRpb25zIGZvciBFcHViIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBCaWJsaW9ncmFwaGljIER1YmxpbiBD
b3JlIGluZm8uCitlcHViX3RpdGxlID0gJ1NlbGVuaXVtJworZXB1Yl9hdXRob3IgPSAncGxpZ2h0
Ym8sIHNpbW9uLm0uc3Rld2FydCwgaGJjaGFpLCBqcmh1Z2dpbnMsIGV0IGFsLicKK2VwdWJfcHVi
bGlzaGVyID0gJ3BsaWdodGJvLCBzaW1vbi5tLnN0ZXdhcnQsIGhiY2hhaSwganJodWdnaW5zLCBl
dCBhbC4nCitlcHViX2NvcHlyaWdodCA9ICcyMDExLCBwbGlnaHRibywgc2ltb24ubS5zdGV3YXJ0
LCBoYmNoYWksIGpyaHVnZ2lucywgZXQgYWwuJworCisjIFRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4
dC4gSXQgZGVmYXVsdHMgdG8gdGhlIGxhbmd1YWdlIG9wdGlvbgorIyBvciBlbiBpZiB0aGUgbGFu
Z3VhZ2UgaXMgbm90IHNldC4KKyNlcHViX2xhbmd1YWdlID0gJycKKworIyBUaGUgc2NoZW1lIG9m
IHRoZSBpZGVudGlmaWVyLiBUeXBpY2FsIHNjaGVtZXMgYXJlIElTQk4gb3IgVVJMLgorI2VwdWJf
c2NoZW1lID0gJycKKworIyBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRleHQuIFRoaXMg
Y2FuIGJlIGEgSVNCTiBudW1iZXIKKyMgb3IgdGhlIHByb2plY3QgaG9tZXBhZ2UuCisjZXB1Yl9p
ZGVudGlmaWVyID0gJycKKworIyBBIHVuaXF1ZSBpZGVudGlmaWNhdGlvbiBmb3IgdGhlIHRleHQu
CisjZXB1Yl91aWQgPSAnJworCisjIEhUTUwgZmlsZXMgdGhhdCBzaG91bGQgYmUgaW5zZXJ0ZWQg
YmVmb3JlIHRoZSBwYWdlcyBjcmVhdGVkIGJ5IHNwaGlueC4KKyMgVGhlIGZvcm1hdCBpcyBhIGxp
c3Qgb2YgdHVwbGVzIGNvbnRhaW5pbmcgdGhlIHBhdGggYW5kIHRpdGxlLgorI2VwdWJfcHJlX2Zp
bGVzID0gW10KKworIyBIVE1MIGZpbGVzIHNoYXQgc2hvdWxkIGJlIGluc2VydGVkIGFmdGVyIHRo
ZSBwYWdlcyBjcmVhdGVkIGJ5IHNwaGlueC4KKyMgVGhlIGZvcm1hdCBpcyBhIGxpc3Qgb2YgdHVw
bGVzIGNvbnRhaW5pbmcgdGhlIHBhdGggYW5kIHRpdGxlLgorI2VwdWJfcG9zdF9maWxlcyA9IFtd
CisKKyMgQSBsaXN0IG9mIGZpbGVzIHRoYXQgc2hvdWxkIG5vdCBiZSBwYWNrZWQgaW50byB0aGUg
ZXB1YiBmaWxlLgorI2VwdWJfZXhjbHVkZV9maWxlcyA9IFtdCisKKyMgVGhlIGRlcHRoIG9mIHRo
ZSB0YWJsZSBvZiBjb250ZW50cyBpbiB0b2MubmN4LgorI2VwdWJfdG9jZGVwdGggPSAzCisKKyMg
QWxsb3cgZHVwbGljYXRlIHRvYyBlbnRyaWVzLgorI2VwdWJfdG9jZHVwID0gVHJ1ZQorCisKKyMg
RXhhbXBsZSBjb25maWd1cmF0aW9uIGZvciBpbnRlcnNwaGlueDogcmVmZXIgdG8gdGhlIFB5dGhv
biBzdGFuZGFyZCBsaWJyYXJ5LgoraW50ZXJzcGhpbnhfbWFwcGluZyA9IHsnaHR0cDovL2RvY3Mu
cHl0aG9uLm9yZy8nOiBOb25lfQorCisjICdtZW1iZXJzJyBpbmNsdWRlcyBhbnl0aGluZyB0aGF0
IGhhcyBhIGRvY3N0cmluZywgJ3VuZG9jLW1lbWJlcnMnIGluY2x1ZGVzCisjIGZ1bmN0aW9ucyB3
aXRob3V0IGRvY3N0cmluZ3MuCithdXRvZG9jX2RlZmF1bHRfZmxhZ3MgPSBbJ21lbWJlcnMnLCAn
dW5kb2MtbWVtYmVycyddCisKKyMgSW5jbHVkZSBfX2luaXRfXyBjb21tZW50cworYXV0b2NsYXNz
X2NvbnRlbnQgPSAiYm90aCIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L2RvY3Mvc291cmNlL2luZGV4LnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNjc3ZmUyMDZlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS9pbmRleC5yc3QKQEAgLTAs
MCArMSwxNDUgQEAKKz09PT09PT09PT09PT09PT09PT09PT0KK1NlbGVuaXVtIENsaWVudCBEcml2
ZXIKKz09PT09PT09PT09PT09PT09PT09PT0KKworSW50cm9kdWN0aW9uCis9PT09PT09PT09PT0K
KworUHl0aG9uIGxhbmd1YWdlIGJpbmRpbmdzIGZvciBTZWxlbml1bSBXZWJEcml2ZXIuCisKK1Ro
ZSBgc2VsZW5pdW1gIHBhY2thZ2UgaXMgdXNlZCB0byBhdXRvbWF0ZSB3ZWIgYnJvd3NlciBpbnRl
cmFjdGlvbiBmcm9tIFB5dGhvbi4KKworKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKworfCAqKkhvbWUqKjogfCBodHRwOi8vd3d3LnNlbGVuaXVtaHEub3JnICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor
Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAqKkRvY3MqKjog
fCBgc2VsZW5pdW0gcGFja2FnZSBBUEkgPGh0dHBzOi8vc2VsZW5pdW1ocS5naXRodWIuaW8vc2Vs
ZW5pdW0vZG9jcy9hcGkvcHkvYXBpLmh0bWw+YF8gfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKworfCAqKkRldioqOiAgfCBodHRwczovL2dpdGh1Yi5jb20vU2Vs
ZW5pdW1IUS9TZWxlbml1bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAq
KlB5UEkqKjogfCBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NlbGVuaXVtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAqKklSQyoqOiAgfCAqKiNzZWxlbml1bSoq
IGNoYW5uZWwgb24gZnJlZW5vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKworCitTZXZlcmFsIGJyb3dzZXJzL2RyaXZlcnMgYXJlIHN1cHBvcnRlZCAoRmlyZWZveCwg
Q2hyb21lLCBJbnRlcm5ldCBFeHBsb3JlciwgUGhhbnRvbUpTKSwgYXMgd2VsbCBhcyB0aGUgUmVt
b3RlIHByb3RvY29sLgorCitTdXBwb3J0ZWQgUHl0aG9uIFZlcnNpb25zCis9PT09PT09PT09PT09
PT09PT09PT09PT09CisKKyogUHl0aG9uIDIuNywgMy40KworCitJbnN0YWxsaW5nCis9PT09PT09
PT09CisKK0lmIHlvdSBoYXZlIGBwaXAgPGh0dHBzOi8vcGlwLnB5cGEuaW8vPmBfIG9uIHlvdXIg
c3lzdGVtLCB5b3UgY2FuIHNpbXBseSBpbnN0YWxsIG9yIHVwZ3JhZGUgdGhlIFB5dGhvbiBiaW5k
aW5nczo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBzZWxlbml1bQorCitBbHRlcm5hdGVseSwgeW91
IGNhbiBkb3dubG9hZCB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbiBmcm9tIGBQeVBJIDxodHRwOi8v
cHlwaS5weXRob24ub3JnL3B5cGkvc2VsZW5pdW0+YF8gKGUuZy4gc2VsZW5pdW0tMy44LjAudGFy
Lmd6KSwgdW5hcmNoaXZlIGl0LCBhbmQgcnVuOjoKKworICAgIHB5dGhvbiBzZXR1cC5weSBpbnN0
YWxsCisKK05vdGU6IFlvdSBtYXkgd2FudCB0byBjb25zaWRlciB1c2luZyBgdmlydHVhbGVudiA8
aHR0cDovL3d3dy52aXJ0dWFsZW52Lm9yZy8+YF8gdG8gY3JlYXRlIGlzb2xhdGVkIFB5dGhvbiBl
bnZpcm9ubWVudHMuCisKK0RyaXZlcnMKKz09PT09PT0KKworU2VsZW5pdW0gcmVxdWlyZXMgYSBk
cml2ZXIgdG8gaW50ZXJmYWNlIHdpdGggdGhlIGNob3NlbiBicm93c2VyLiBGaXJlZm94LAorZm9y
IGV4YW1wbGUsIHJlcXVpcmVzIGBnZWNrb2RyaXZlciA8aHR0cHM6Ly9naXRodWIuY29tL21vemls
bGEvZ2Vja29kcml2ZXIvcmVsZWFzZXM+YF8sIHdoaWNoIG5lZWRzIHRvIGJlIGluc3RhbGxlZCBi
ZWZvcmUgdGhlIGJlbG93IGV4YW1wbGVzIGNhbiBiZSBydW4uIE1ha2Ugc3VyZSBpdCdzIGluIHlv
dXIgYFBBVEhgLCBlLiBnLiwgcGxhY2UgaXQgaW4gYC91c3IvYmluYCBvciBgL3Vzci9sb2NhbC9i
aW5gLgorCitGYWlsdXJlIHRvIG9ic2VydmUgdGhpcyBzdGVwIHdpbGwgZ2l2ZSB5b3UgYW4gZXJy
b3IgYHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zLldlYkRyaXZlckV4Y2VwdGlvbjogTWVzc2Fn
ZTogJ2dlY2tvZHJpdmVyJyBleGVjdXRhYmxlIG5lZWRzIHRvIGJlIGluIFBBVEguYAorCitPdGhl
ciBzdXBwb3J0ZWQgYnJvd3NlcnMgd2lsbCBoYXZlIHRoZWlyIG93biBkcml2ZXJzIGF2YWlsYWJs
ZS4gTGlua3MgdG8gc29tZSBvZiB0aGUgbW9yZSBwb3B1bGFyIGJyb3dzZXIgZHJpdmVycyBmb2xs
b3cuCisKKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgKipDaHJvbWUqKjogIHwg
aHR0cHM6Ly9zaXRlcy5nb29nbGUuY29tL2EvY2hyb21pdW0ub3JnL2Nocm9tZWRyaXZlci9kb3du
bG9hZHMgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgKipFZGdl
Kio6ICAgIHwgaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQt
ZWRnZS90b29scy93ZWJkcml2ZXIvIHwKKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
K3wgKipGaXJlZm94Kio6IHwgaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIv
cmVsZWFzZXMgICAgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKK3wgKipTYWZhcmkqKjogIHwgaHR0cHM6Ly93ZWJraXQub3JnL2Jsb2cvNjkwMC93
ZWJkcml2ZXItc3VwcG9ydC1pbi1zYWZhcmktMTAvICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKKworRXhhbXBsZSAwOgorPT09PT09PT09PQorCisqIG9wZW4gYSBu
ZXcgRmlyZWZveCBicm93c2VyCisqIGxvYWQgdGhlIHBhZ2UgYXQgdGhlIGdpdmVuIFVSTAorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2
ZXIKKworICAgIGJyb3dzZXIgPSB3ZWJkcml2ZXIuRmlyZWZveCgpCisgICAgYnJvd3Nlci5nZXQo
J2h0dHA6Ly9zZWxlbml1bWhxLm9yZy8nKQorCitFeGFtcGxlIDE6Cis9PT09PT09PT09CisKKyog
b3BlbiBhIG5ldyBGaXJlZm94IGJyb3dzZXIKKyogbG9hZCB0aGUgWWFob28gaG9tZXBhZ2UKKyog
c2VhcmNoIGZvciAic2VsZW5pdW1ocSIKKyogY2xvc2UgdGhlIGJyb3dzZXIKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgorCisgICAgZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCisgICAg
ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmtleXMgaW1wb3J0IEtleXMKKworICAgIGJy
b3dzZXIgPSB3ZWJkcml2ZXIuRmlyZWZveCgpCisKKyAgICBicm93c2VyLmdldCgnaHR0cDovL3d3
dy55YWhvby5jb20nKQorICAgIGFzc2VydCAnWWFob28nIGluIGJyb3dzZXIudGl0bGUKKworICAg
IGVsZW0gPSBicm93c2VyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCdwJykgICMgRmluZCB0aGUgc2Vh
cmNoIGJveAorICAgIGVsZW0uc2VuZF9rZXlzKCdzZWxlbml1bWhxJyArIEtleXMuUkVUVVJOKQor
CisgICAgYnJvd3Nlci5xdWl0KCkKKworRXhhbXBsZSAyOgorPT09PT09PT09PQorCitTZWxlbml1
bSBXZWJEcml2ZXIgaXMgb2Z0ZW4gdXNlZCBhcyBhIGJhc2lzIGZvciB0ZXN0aW5nIHdlYiBhcHBs
aWNhdGlvbnMuICBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGUgdWlzbmcgUHl0aG9uJ3Mgc3RhbmRh
cmQgYHVuaXR0ZXN0IDxodHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5o
dG1sPmBfIGxpYnJhcnk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCB1
bml0dGVzdAorICAgIGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgorCisgICAgY2xhc3Mg
R29vZ2xlVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgICAgIGRlZiBzZXRVcChz
ZWxmKToKKyAgICAgICAgICAgIHNlbGYuYnJvd3NlciA9IHdlYmRyaXZlci5GaXJlZm94KCkKKyAg
ICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLmJyb3dzZXIucXVpdCkKKworICAgICAgICBk
ZWYgdGVzdFBhZ2VUaXRsZShzZWxmKToKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5nZXQoJ2h0
dHA6Ly93d3cuZ29vZ2xlLmNvbScpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdHb29nbGUn
LCBzZWxmLmJyb3dzZXIudGl0bGUpCisKKyAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgor
ICAgICAgICB1bml0dGVzdC5tYWluKHZlcmJvc2l0eT0yKQorCitTZWxlbml1bSBTZXJ2ZXIgKG9w
dGlvbmFsKQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRm9yIG5vcm1hbCBXZWJEcml2
ZXIgc2NyaXB0cyAobm9uLVJlbW90ZSksIHRoZSBKYXZhIHNlcnZlciBpcyBub3QgbmVlZGVkLgor
CitIb3dldmVyLCB0byB1c2UgU2VsZW5pdW0gV2ViZHJpdmVyIFJlbW90ZSBvciB0aGUgbGVnYWN5
IFNlbGVuaXVtIEFQSSAoU2VsZW5pdW0tUkMpLCB5b3UgbmVlZCB0byBhbHNvIHJ1biB0aGUgU2Vs
ZW5pdW0gc2VydmVyLiAgVGhlIHNlcnZlciByZXF1aXJlcyBhIEphdmEgUnVudGltZSBFbnZpcm9u
bWVudCAoSlJFKS4KKworRG93bmxvYWQgdGhlIHNlcnZlciBzZXBhcmF0ZWx5LCBmcm9tOiBodHRw
Oi8vc2VsZW5pdW0tcmVsZWFzZS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tLzMuOC9zZWxlbml1bS1z
ZXJ2ZXItc3RhbmRhbG9uZS0zLjguMC5qYXIKKworUnVuIHRoZSBzZXJ2ZXIgZnJvbSB0aGUgY29t
bWFuZCBsaW5lOjoKKworICAgIGphdmEgLWphciBzZWxlbml1bS1zZXJ2ZXItc3RhbmRhbG9uZS0z
LjguMC5qYXIKKworVGhlbiBydW4geW91ciBQeXRob24gY2xpZW50IHNjcmlwdHMuCisKK1VzZSBU
aGUgU291cmNlIEx1a2UhCis9PT09PT09PT09PT09PT09PT09PQorCitWaWV3IHNvdXJjZSBjb2Rl
IG9ubGluZToKKworKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IG9mZmljaWFsOiB8IGh0dHBzOi8vZ2l0aHViLmNv
bS9TZWxlbml1bUhRL3NlbGVuaXVtL3RyZWUvbWFzdGVyL3B5IHwKKystLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uv
d2ViZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYWN0aW9uX2NoYWlucy5yc3QgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXIv
c2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5hY3Rpb25fY2hhaW5zLnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdmZmY3YjA1NTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2
ZXIvc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5hY3Rpb25fY2hhaW5zLnJzdApAQCAtMCwwICsx
LDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYWN0aW9uX2NoYWlucworPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1
bS53ZWJkcml2ZXIuY29tbW9uLmFjdGlvbl9jaGFpbnMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmFsZXJ0LnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmFs
ZXJ0LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWM4ODQzODEw
OTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9kb2NzL3NvdXJjZS93ZWJkcml2ZXIvc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5hbGVydC5y
c3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmFsZXJ0Cis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmFsZXJ0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXIvc2VsZW5pdW0ud2ViZHJpdmVyLmNv
bW1vbi5ieS5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3Nv
dXJjZS93ZWJkcml2ZXIvc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieS5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNkZjY5NDE3ZTgzCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2Vi
ZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkucnN0CkBAIC0wLDAgKzEsNCBAQAor
c2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieQorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCisuLiBhdXRvbW9kdWxlOjogc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2Vi
ZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMucnN0
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJp
dmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMucnN0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMGZkZjE3Y2ViYQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291
cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmRlc2lyZWRfY2FwYWJpbGl0
aWVzLnJzdApAQCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJl
ZF9jYXBhYmlsaXRpZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJl
ZF9jYXBhYmlsaXRpZXMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmh0
bWw1LmFwcGxpY2F0aW9uX2NhY2hlLnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmh0
bWw1LmFwcGxpY2F0aW9uX2NhY2hlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZTJlMDYzOTQ1NDQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXIvc2VsZW5pdW0ud2ViZHJp
dmVyLmNvbW1vbi5odG1sNS5hcHBsaWNhdGlvbl9jYWNoZS5yc3QKQEAgLTAsMCArMSw0IEBACitz
ZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmh0bWw1LmFwcGxpY2F0aW9uX2NhY2hlCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9t
b2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmh0bWw1LmFwcGxpY2F0aW9uX2NhY2hl
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3Nv
dXJjZS93ZWJkcml2ZXIvc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzLnJzdCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxl
bml1bS53ZWJkcml2ZXIuY29tbW9uLmtleXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNzA0YTE3YzVkZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmtleXMucnN0CkBAIC0wLDAgKzEsNCBAQAorc2VsZW5pdW0ud2ViZHJp
dmVyLmNvbW1vbi5rZXlzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0
b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ua2V5cwpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyL3Nl
bGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJveHkucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5j
b21tb24ucHJveHkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4w
NmE3N2YxYmMwMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJkcml2ZXIuY29tbW9u
LnByb3h5LnJzdApAQCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJv
eHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNl
bGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJveHkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJk
cml2ZXIuY29tbW9uLnNlcnZpY2UucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uc2Vy
dmljZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUzMTNjZWQz
ZTZkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uc2Vydmlj
ZS5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLnNlcnZpY2UK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2Vs
ZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5zZXJ2aWNlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXIvc2VsZW5pdW0ud2Vi
ZHJpdmVyLmNvbW1vbi50b3VjaF9hY3Rpb25zLnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJkcml2ZXIuY29t
bW9uLnRvdWNoX2FjdGlvbnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi43YmM5YWE2NDcwNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlci9zZWxlbml1bS53ZWJkcml2ZXIu
Y29tbW9uLnRvdWNoX2FjdGlvbnMucnN0CkBAIC0wLDAgKzEsNCBAQAorc2VsZW5pdW0ud2ViZHJp
dmVyLmNvbW1vbi50b3VjaF9hY3Rpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24udG91
Y2hfYWN0aW9ucwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMu
cnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2Vi
ZHJpdmVyL3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMzAyNTBhNjQ1NQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZl
ci9zZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLnV0aWxzLnJzdApAQCAtMCwwICsxLDQgQEAKK3Nl
bGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291
cmNlL3dlYmRyaXZlcl9hbmRyb2lkL3NlbGVuaXVtLndlYmRyaXZlci5hbmRyb2lkLndlYmRyaXZl
ci5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93
ZWJkcml2ZXJfYW5kcm9pZC9zZWxlbml1bS53ZWJkcml2ZXIuYW5kcm9pZC53ZWJkcml2ZXIucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNzY5M2Q5ZGNmNgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mv
c291cmNlL3dlYmRyaXZlcl9hbmRyb2lkL3NlbGVuaXVtLndlYmRyaXZlci5hbmRyb2lkLndlYmRy
aXZlci5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1bS53ZWJkcml2ZXIuYW5kcm9pZC53ZWJk
cml2ZXIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9k
dWxlOjogc2VsZW5pdW0ud2ViZHJpdmVyLmFuZHJvaWQud2ViZHJpdmVyCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJf
Y2hyb21lL3NlbGVuaXVtLndlYmRyaXZlci5jaHJvbWUub3B0aW9ucy5yc3QgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfY2hyb21lL3Nl
bGVuaXVtLndlYmRyaXZlci5jaHJvbWUub3B0aW9ucy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjlhNmU0MmE5YzE3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX2Nocm9t
ZS9zZWxlbml1bS53ZWJkcml2ZXIuY2hyb21lLm9wdGlvbnMucnN0CkBAIC0wLDAgKzEsNCBAQAor
c2VsZW5pdW0ud2ViZHJpdmVyLmNocm9tZS5vcHRpb25zCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5jaHJvbWUu
b3B0aW9ucwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
ZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX2Nocm9tZS9zZWxlbml1bS53ZWJkcml2ZXIuY2hyb21lLnNl
cnZpY2UucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3Vy
Y2Uvd2ViZHJpdmVyX2Nocm9tZS9zZWxlbml1bS53ZWJkcml2ZXIuY2hyb21lLnNlcnZpY2UucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZmU4YjIwZjEwZQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mv
c291cmNlL3dlYmRyaXZlcl9jaHJvbWUvc2VsZW5pdW0ud2ViZHJpdmVyLmNocm9tZS5zZXJ2aWNl
LnJzdApAQCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5jaHJvbWUuc2VydmljZQor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxl
bml1bS53ZWJkcml2ZXIuY2hyb21lLnNlcnZpY2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9jaHJvbWUvc2VsZW5p
dW0ud2ViZHJpdmVyLmNocm9tZS53ZWJkcml2ZXIucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX2Nocm9tZS9zZWxlbml1bS53ZWJk
cml2ZXIuY2hyb21lLndlYmRyaXZlci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjdmNTQyNTM2YWY1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX2Nocm9tZS9zZWxlbml1
bS53ZWJkcml2ZXIuY2hyb21lLndlYmRyaXZlci5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1
bS53ZWJkcml2ZXIuY2hyb21lLndlYmRyaXZlcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5jaHJvbWUud2Vi
ZHJpdmVyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9k
b2NzL3NvdXJjZS93ZWJkcml2ZXJfZmlyZWZveC9zZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveC5l
eHRlbnNpb25fY29ubmVjdGlvbi5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfZmlyZWZveC9zZWxlbml1bS53ZWJkcml2ZXIuZmly
ZWZveC5leHRlbnNpb25fY29ubmVjdGlvbi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjQxM2JhZGFjYjUyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX2ZpcmVmb3gvc2Vs
ZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZXh0ZW5zaW9uX2Nvbm5lY3Rpb24ucnN0CkBAIC0wLDAg
KzEsNCBAQAorc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZXh0ZW5zaW9uX2Nvbm5lY3Rpb24K
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1
dG9tb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveC5leHRlbnNpb25fY29ubmVjdGlv
bgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9z
b3VyY2Uvd2ViZHJpdmVyX2ZpcmVmb3gvc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZmlyZWZv
eF9iaW5hcnkucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9z
b3VyY2Uvd2ViZHJpdmVyX2ZpcmVmb3gvc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZmlyZWZv
eF9iaW5hcnkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMGIw
NGIxODVlOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9maXJlZm94L3NlbGVuaXVtLndlYmRyaXZlci5m
aXJlZm94LmZpcmVmb3hfYmluYXJ5LnJzdApAQCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRy
aXZlci5maXJlZm94LmZpcmVmb3hfYmluYXJ5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVm
b3guZmlyZWZveF9iaW5hcnkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9maXJlZm94L3NlbGVuaXVtLndlYmRyaXZl
ci5maXJlZm94LmZpcmVmb3hfcHJvZmlsZS5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfZmlyZWZveC9zZWxlbml1bS53ZWJkcml2
ZXIuZmlyZWZveC5maXJlZm94X3Byb2ZpbGUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi43OGJhOTQ5OWQzYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9maXJlZm94L3Nl
bGVuaXVtLndlYmRyaXZlci5maXJlZm94LmZpcmVmb3hfcHJvZmlsZS5yc3QKQEAgLTAsMCArMSw0
IEBACitzZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveC5maXJlZm94X3Byb2ZpbGUKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2Vs
ZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZmlyZWZveF9wcm9maWxlCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfZmly
ZWZveC9zZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveC5vcHRpb25zLnJzdCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9maXJlZm94L3Nl
bGVuaXVtLndlYmRyaXZlci5maXJlZm94Lm9wdGlvbnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5hNjRiOTkwYTNkOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9maXJl
Zm94L3NlbGVuaXVtLndlYmRyaXZlci5maXJlZm94Lm9wdGlvbnMucnN0CkBAIC0wLDAgKzEsNCBA
QAorc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3gub3B0aW9ucworPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2VsZW5pdW0ud2ViZHJpdmVyLmZp
cmVmb3gub3B0aW9ucwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX2ZpcmVmb3gvc2VsZW5pdW0ud2ViZHJpdmVyLmZp
cmVmb3gud2ViZHJpdmVyLnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9maXJlZm94L3NlbGVuaXVtLndlYmRyaXZlci5maXJlZm94
LndlYmRyaXZlci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5
YmZlNTNlOWRkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX2ZpcmVmb3gvc2VsZW5pdW0ud2ViZHJpdmVy
LmZpcmVmb3gud2ViZHJpdmVyLnJzdApAQCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZl
ci5maXJlZm94LndlYmRyaXZlcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveC53ZWJkcml2ZXIK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291
cmNlL3dlYmRyaXZlcl9pZS9zZWxlbml1bS53ZWJkcml2ZXIuaWUud2ViZHJpdmVyLnJzdCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9p
ZS9zZWxlbml1bS53ZWJkcml2ZXIuaWUud2ViZHJpdmVyLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMzYyMzgxM2MzNTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfaWUv
c2VsZW5pdW0ud2ViZHJpdmVyLmllLndlYmRyaXZlci5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxl
bml1bS53ZWJkcml2ZXIuaWUud2ViZHJpdmVyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuaWUud2ViZHJpdmVyCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJj
ZS93ZWJkcml2ZXJfb3BlcmEvc2VsZW5pdW0ud2ViZHJpdmVyLm9wZXJhLndlYmRyaXZlci5yc3Qg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2
ZXJfb3BlcmEvc2VsZW5pdW0ud2ViZHJpdmVyLm9wZXJhLndlYmRyaXZlci5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRkYWJiYzM2M2UyCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2Vi
ZHJpdmVyX29wZXJhL3NlbGVuaXVtLndlYmRyaXZlci5vcGVyYS53ZWJkcml2ZXIucnN0CkBAIC0w
LDAgKzEsNCBAQAorc2VsZW5pdW0ud2ViZHJpdmVyLm9wZXJhLndlYmRyaXZlcgorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2VsZW5pdW0ud2Vi
ZHJpdmVyLm9wZXJhLndlYmRyaXZlcgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3BoYW50b21qcy9zZWxlbml1bS53
ZWJkcml2ZXIucGhhbnRvbWpzLnNlcnZpY2UucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3BoYW50b21qcy9zZWxlbml1bS53ZWJk
cml2ZXIucGhhbnRvbWpzLnNlcnZpY2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi44ZDZlNWZmNzMyOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9waGFudG9tanMvc2Vs
ZW5pdW0ud2ViZHJpdmVyLnBoYW50b21qcy5zZXJ2aWNlLnJzdApAQCAtMCwwICsxLDQgQEAKK3Nl
bGVuaXVtLndlYmRyaXZlci5waGFudG9tanMuc2VydmljZQorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIucGhh
bnRvbWpzLnNlcnZpY2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9waGFudG9tanMvc2VsZW5pdW0ud2ViZHJpdmVy
LnBoYW50b21qcy53ZWJkcml2ZXIucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3BoYW50b21qcy9zZWxlbml1bS53ZWJkcml2ZXIu
cGhhbnRvbWpzLndlYmRyaXZlci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjViM2FiNDgyZjZmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3BoYW50b21qcy9zZWxlbml1
bS53ZWJkcml2ZXIucGhhbnRvbWpzLndlYmRyaXZlci5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxl
bml1bS53ZWJkcml2ZXIucGhhbnRvbWpzLndlYmRyaXZlcgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5w
aGFudG9tanMud2ViZHJpdmVyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfcmVtb3RlL3NlbGVuaXVtLndlYmRyaXZl
ci5yZW1vdGUuY29tbWFuZC5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfcmVtb3RlL3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUu
Y29tbWFuZC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmOTc3
Yjc0NTc2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1bS53ZWJkcml2ZXIucmVt
b3RlLmNvbW1hbmQucnN0CkBAIC0wLDAgKzEsNCBAQAorc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90
ZS5jb21tYW5kCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21v
ZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUuY29tbWFuZApkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3Jl
bW90ZS9zZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLmVycm9yaGFuZGxlci5yc3QgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfcmVtb3Rl
L3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUuZXJyb3JoYW5kbGVyLnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTAwMjg4NzRhNDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2
ZXJfcmVtb3RlL3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUuZXJyb3JoYW5kbGVyLnJzdApAQCAt
MCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUuZXJyb3JoYW5kbGVyCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2Vs
ZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS5lcnJvcmhhbmRsZXIKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9yZW1vdGUv
c2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS5tb2JpbGUucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1bS53
ZWJkcml2ZXIucmVtb3RlLm1vYmlsZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmRjNmFiNGFiNzUxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1
bS53ZWJkcml2ZXIucmVtb3RlLm1vYmlsZS5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1bS53
ZWJkcml2ZXIucmVtb3RlLm1vYmlsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUubW9iaWxlCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93
ZWJkcml2ZXJfcmVtb3RlL3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUucmVtb3RlX2Nvbm5lY3Rp
b24ucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uv
d2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLnJlbW90ZV9jb25uZWN0
aW9uLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODhkMTM4OTQ3
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfcmVtb3RlL3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUu
cmVtb3RlX2Nvbm5lY3Rpb24ucnN0CkBAIC0wLDAgKzEsNCBAQAorc2VsZW5pdW0ud2ViZHJpdmVy
LnJlbW90ZS5yZW1vdGVfY29ubmVjdGlvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90
ZS5yZW1vdGVfY29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1bS53ZWJkcml2
ZXIucmVtb3RlLnV0aWxzLnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9yZW1vdGUvc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS51
dGlscy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUwMzVmNDNh
NWI2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1bS53ZWJkcml2ZXIucmVtb3Rl
LnV0aWxzLnJzdApAQCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUudXRp
bHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNl
bGVuaXVtLndlYmRyaXZlci5yZW1vdGUudXRpbHMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9yZW1vdGUvc2VsZW5p
dW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJkcml2ZXIucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1bS53ZWJk
cml2ZXIucmVtb3RlLndlYmRyaXZlci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmIzOTBjMTk2Y2NhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1
bS53ZWJkcml2ZXIucmVtb3RlLndlYmRyaXZlci5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1
bS53ZWJkcml2ZXIucmVtb3RlLndlYmRyaXZlcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2Vi
ZHJpdmVyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9k
b2NzL3NvdXJjZS93ZWJkcml2ZXJfcmVtb3RlL3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2Vi
ZWxlbWVudC5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3Nv
dXJjZS93ZWJkcml2ZXJfcmVtb3RlL3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZWxlbWVu
dC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdiNmFiNGRlOGYx
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
ZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3JlbW90ZS9zZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndl
YmVsZW1lbnQucnN0CkBAIC0wLDAgKzEsNCBAQAorc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53
ZWJlbGVtZW50Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0
b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZWxlbWVudApkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJp
dmVyX3NhZmFyaS9zZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLnNlcnZpY2UucnN0IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3NhZmFy
aS9zZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLnNlcnZpY2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kZTQ0OTA5YmJlNwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9z
YWZhcmkvc2VsZW5pdW0ud2ViZHJpdmVyLnNhZmFyaS5zZXJ2aWNlLnJzdApAQCAtMCwwICsxLDQg
QEAKK3NlbGVuaXVtLndlYmRyaXZlci5zYWZhcmkuc2VydmljZQorPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuc2Fm
YXJpLnNlcnZpY2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9zYWZhcmkvc2VsZW5pdW0ud2ViZHJpdmVyLnNhZmFy
aS53ZWJkcml2ZXIucnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9j
cy9zb3VyY2Uvd2ViZHJpdmVyX3NhZmFyaS9zZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJpLndlYmRy
aXZlci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYzYjY0OWVk
MTMwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3NhZmFyaS9zZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJp
LndlYmRyaXZlci5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1bS53ZWJkcml2ZXIuc2FmYXJp
LndlYmRyaXZlcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0
b21vZHVsZTo6IHNlbGVuaXVtLndlYmRyaXZlci5zYWZhcmkud2ViZHJpdmVyCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2
ZXJfc3VwcG9ydC9zZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5hYnN0cmFjdF9ldmVudF9saXN0
ZW5lci5yc3QgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJj
ZS93ZWJkcml2ZXJfc3VwcG9ydC9zZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5hYnN0cmFjdF9l
dmVudF9saXN0ZW5lci5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjUzODI4YWQ1MmNkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3N1cHBvcnQvc2VsZW5pdW0ud2ViZHJp
dmVyLnN1cHBvcnQuYWJzdHJhY3RfZXZlbnRfbGlzdGVuZXIucnN0CkBAIC0wLDAgKzEsNCBAQAor
c2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuYWJzdHJhY3RfZXZlbnRfbGlzdGVuZXIKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9t
b2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5hYnN0cmFjdF9ldmVudF9saXN0ZW5l
cgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9z
b3VyY2Uvd2ViZHJpdmVyX3N1cHBvcnQvc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuY29sb3Iu
cnN0IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2Vi
ZHJpdmVyX3N1cHBvcnQvc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuY29sb3IucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NGFhNjFjZmE2NwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNl
L3dlYmRyaXZlcl9zdXBwb3J0L3NlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LmNvbG9yLnJzdApA
QCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LmNvbG9yCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2VsZW5pdW0ud2Vi
ZHJpdmVyLnN1cHBvcnQuY29sb3IKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9zdXBwb3J0L3NlbGVuaXVtLndlYmRy
aXZlci5zdXBwb3J0LmV2ZW50X2ZpcmluZ193ZWJkcml2ZXIucnN0IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3N1cHBvcnQvc2VsZW5p
dW0ud2ViZHJpdmVyLnN1cHBvcnQuZXZlbnRfZmlyaW5nX3dlYmRyaXZlci5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFiYmVhY2QwNzFhCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2Vi
ZHJpdmVyX3N1cHBvcnQvc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuZXZlbnRfZmlyaW5nX3dl
YmRyaXZlci5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5l
dmVudF9maXJpbmdfd2ViZHJpdmVyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuc3Vw
cG9ydC5ldmVudF9maXJpbmdfd2ViZHJpdmVyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9kb2NzL3NvdXJjZS93ZWJkcml2ZXJfc3VwcG9ydC9zZWxlbml1
bS53ZWJkcml2ZXIuc3VwcG9ydC5leHBlY3RlZF9jb25kaXRpb25zLnJzdCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9zdXBwb3J0L3Nl
bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LmV4cGVjdGVkX2NvbmRpdGlvbnMucnN0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NjQxN2E5YjFhZgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dl
YmRyaXZlcl9zdXBwb3J0L3NlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LmV4cGVjdGVkX2NvbmRp
dGlvbnMucnN0CkBAIC0wLDAgKzEsNCBAQAorc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuZXhw
ZWN0ZWRfY29uZGl0aW9ucworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuZXhw
ZWN0ZWRfY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3N1cHBvcnQvc2VsZW5pdW0ud2ViZHJpdmVy
LnN1cHBvcnQuc2VsZWN0LnJzdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9zdXBwb3J0L3NlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0
LnNlbGVjdC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAyYjBl
YjBiMzdiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3N1cHBvcnQvc2VsZW5pdW0ud2ViZHJpdmVyLnN1
cHBvcnQuc2VsZWN0LnJzdApAQCAtMCwwICsxLDQgQEAKK3NlbGVuaXVtLndlYmRyaXZlci5zdXBw
b3J0LnNlbGVjdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9t
b2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC5zZWxlY3QKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L2RvY3Mvc291cmNlL3dlYmRyaXZlcl9z
dXBwb3J0L3NlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQucnN0IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3N1cHBvcnQvc2Vs
ZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmY0MjA4OWJlODBjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvZG9jcy9zb3VyY2Uvd2ViZHJpdmVyX3N1cHBvcnQv
c2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdC5yc3QKQEAgLTAsMCArMSw0IEBACitzZWxl
bml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKKy4uIGF1dG9tb2R1bGU6OiBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9weXRob24uaW1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvcHl0aG9uLmltbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTllZGRjMGE0MjkKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9weXRob24uaW1sCkBA
IC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
bW9kdWxlIHR5cGU9IkpBVkFfTU9EVUxFIiB2ZXJzaW9uPSI0Ij4KKyAgPGNvbXBvbmVudCBuYW1l
PSJGYWNldE1hbmFnZXIiPgorICAgIDxmYWNldCB0eXBlPSJQeXRob24iIG5hbWU9IlB5dGhvbiI+
CisgICAgICA8Y29uZmlndXJhdGlvbiBzZGtOYW1lPSIiIC8+CisgICAgPC9mYWNldD4KKyAgPC9j
b21wb25lbnQ+CisgIDxjb21wb25lbnQgbmFtZT0iTmV3TW9kdWxlUm9vdE1hbmFnZXIiIGluaGVy
aXQtY29tcGlsZXItb3V0cHV0PSJ0cnVlIj4KKyAgICA8ZXhjbHVkZS1vdXRwdXQgLz4KKyAgICA8
Y29udGVudCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQiPgorICAgICAgPHNvdXJjZUZvbGRlciB1
cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc2VsZW5pdW0iIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+
CisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC90ZXN0IiBpc1Rl
c3RTb3VyY2U9InRydWUiIC8+CisgICAgPC9jb250ZW50PgorICAgIDxvcmRlckVudHJ5IHR5cGU9
ImpkayIgamRrTmFtZT0iUHl0aG9uIDIuNy42ICgvdXNyL2Jpbi9weXRob24pIiBqZGtUeXBlPSJQ
eXRob24gU0RLIiAvPgorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVz
dHM9ImZhbHNlIiAvPgorICA8L2NvbXBvbmVudD4KKyAgPGNvbXBvbmVudCBuYW1lPSJzb25hck1v
ZHVsZVNldHRpbmdzIj4KKyAgICA8b3B0aW9uIG5hbWU9ImFsdGVybmF0aXZlV29ya2luZ0RpclBh
dGgiIHZhbHVlPSIiIC8+CisgICAgPG9wdGlvbiBuYW1lPSJsb2NhbEFuYWx5c2lzU2NyaXBOYW1l
IiB2YWx1ZT0iJmx0O1BST0pFQ1QmZ3Q7IiAvPgorICAgIDxvcHRpb24gbmFtZT0ic2VydmVyTmFt
ZSIgdmFsdWU9IiZsdDtQUk9KRUNUJmd0OyIgLz4KKyAgICA8b3B0aW9uIG5hbWU9InVzZUFsdGVy
bmF0aXZlV29ya2luZ0RpciIgdmFsdWU9ImZhbHNlIiAvPgorICAgIDxvcHRpb24gbmFtZT0id29y
a2luZ0RpclNlbGVjdGlvbiIgdmFsdWU9IiZsdDtNT0RVTEUmZ3Q7IiAvPgorICA8L2NvbXBvbmVu
dD4KKzwvbW9kdWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9fLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vX19pbml0X18ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUzZTczODYzNTEyCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vX19pbml0X18ucHkKQEAgLTAsMCArMSwxOSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdh
cmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmli
dXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1
dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGlu
ZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8g
eW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5z
ZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdp
dGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
KyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMg
VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n
LAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworX192ZXJzaW9uX18gPSAi
My44LjAiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS9jb21tb24vX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS9jb21tb24vX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmVhNzEzMTlhNmU3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL19faW5pdF9fLnB5
CkBAIC0wLDAgKzEsMTggQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29u
c2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBh
Z3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMg
d29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93
bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIC4gaW1wb3J0IGV4Y2VwdGlvbnMgICMgbm9x
YQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vY29tbW9uL2V4Y2VwdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS9jb21tb24vZXhjZXB0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMWEwNmQ3MWMzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9jb21tb24vZXhjZXB0aW9ucy5w
eQpAQCAtMCwwICsxLDMyNCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIgorRXhjZXB0aW9ucyB0aGF0IG1heSBoYXBw
ZW4gaW4gYWxsIHRoZSB3ZWJkcml2ZXIgY29kZS4KKyIiIgorCisKK2NsYXNzIFdlYkRyaXZlckV4
Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICIiIgorICAgIEJhc2Ugd2ViZHJpdmVyIGV4Y2VwdGlv
bi4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2c9Tm9uZSwgc2NyZWVuPU5v
bmUsIHN0YWNrdHJhY2U9Tm9uZSk6CisgICAgICAgIHNlbGYubXNnID0gbXNnCisgICAgICAgIHNl
bGYuc2NyZWVuID0gc2NyZWVuCisgICAgICAgIHNlbGYuc3RhY2t0cmFjZSA9IHN0YWNrdHJhY2UK
KworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBleGNlcHRpb25fbXNnID0gIk1lc3Nh
Z2U6ICVzXG4iICUgc2VsZi5tc2cKKyAgICAgICAgaWYgc2VsZi5zY3JlZW4gaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBleGNlcHRpb25fbXNnICs9ICJTY3JlZW5zaG90OiBhdmFpbGFibGUgdmlh
IHNjcmVlblxuIgorICAgICAgICBpZiBzZWxmLnN0YWNrdHJhY2UgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBzdGFja3RyYWNlID0gIlxuIi5qb2luKHNlbGYuc3RhY2t0cmFjZSkKKyAgICAgICAg
ICAgIGV4Y2VwdGlvbl9tc2cgKz0gIlN0YWNrdHJhY2U6XG4lcyIgJSBzdGFja3RyYWNlCisgICAg
ICAgIHJldHVybiBleGNlcHRpb25fbXNnCisKKworY2xhc3MgRXJyb3JJblJlc3BvbnNlRXhjZXB0
aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhyb3duIHdoZW4gYW4gZXJy
b3IgaGFzIG9jY3VycmVkIG9uIHRoZSBzZXJ2ZXIgc2lkZS4KKworICAgIFRoaXMgbWF5IGhhcHBl
biB3aGVuIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgZmlyZWZveCBleHRlbnNpb24KKyAgICBvciB0
aGUgcmVtb3RlIGRyaXZlciBzZXJ2ZXIuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJlc3BvbnNlLCBtc2cpOgorICAgICAgICBXZWJEcml2ZXJFeGNlcHRpb24uX19pbml0X18oc2Vs
ZiwgbXNnKQorICAgICAgICBzZWxmLnJlc3BvbnNlID0gcmVzcG9uc2UKKworCitjbGFzcyBJbnZh
bGlkU3dpdGNoVG9UYXJnZXRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIK
KyAgICBUaHJvd24gd2hlbiBmcmFtZSBvciB3aW5kb3cgdGFyZ2V0IHRvIGJlIHN3aXRjaGVkIGRv
ZXNuJ3QgZXhpc3QuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIE5vU3VjaEZyYW1lRXhj
ZXB0aW9uKEludmFsaWRTd2l0Y2hUb1RhcmdldEV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhy
b3duIHdoZW4gZnJhbWUgdGFyZ2V0IHRvIGJlIHN3aXRjaGVkIGRvZXNuJ3QgZXhpc3QuCisgICAg
IiIiCisgICAgcGFzcworCisKK2NsYXNzIE5vU3VjaFdpbmRvd0V4Y2VwdGlvbihJbnZhbGlkU3dp
dGNoVG9UYXJnZXRFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIHdpbmRvdyB0
YXJnZXQgdG8gYmUgc3dpdGNoZWQgZG9lc24ndCBleGlzdC4KKworICAgIFRvIGZpbmQgdGhlIGN1
cnJlbnQgc2V0IG9mIGFjdGl2ZSB3aW5kb3cgaGFuZGxlcywgeW91IGNhbiBnZXQgYSBsaXN0Cisg
ICAgb2YgdGhlIGFjdGl2ZSB3aW5kb3cgaGFuZGxlcyBpbiB0aGUgZm9sbG93aW5nIHdheTo6CisK
KyAgICAgICAgcHJpbnQgZHJpdmVyLndpbmRvd19oYW5kbGVzCisKKyAgICAiIiIKKyAgICBwYXNz
CisKKworY2xhc3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgor
ICAgICIiIgorICAgIFRocm93biB3aGVuIGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLgorCisg
ICAgSWYgeW91IGVuY291bnRlciB0aGlzIGV4Y2VwdGlvbiwgeW91IG1heSB3YW50IHRvIGNoZWNr
IHRoZSBmb2xsb3dpbmc6CisgICAgICAgICogQ2hlY2sgeW91ciBzZWxlY3RvciB1c2VkIGluIHlv
dXIgZmluZF9ieS4uLgorICAgICAgICAqIEVsZW1lbnQgbWF5IG5vdCB5ZXQgYmUgb24gdGhlIHNj
cmVlbiBhdCB0aGUgdGltZSBvZiB0aGUgZmluZCBvcGVyYXRpb24sCisgICAgICAgICAgKHdlYnBh
Z2UgaXMgc3RpbGwgbG9hZGluZykgc2VlIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQu
V2ViRHJpdmVyV2FpdCgpCisgICAgICAgICAgZm9yIGhvdyB0byB3cml0ZSBhIHdhaXQgd3JhcHBl
ciB0byB3YWl0IGZvciBhbiBlbGVtZW50IHRvIGFwcGVhci4KKyAgICAiIiIKKyAgICBwYXNzCisK
KworY2xhc3MgTm9TdWNoQXR0cmlidXRlRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6Cisg
ICAgIiIiCisgICAgVGhyb3duIHdoZW4gdGhlIGF0dHJpYnV0ZSBvZiBlbGVtZW50IGNvdWxkIG5v
dCBiZSBmb3VuZC4KKworICAgIFlvdSBtYXkgd2FudCB0byBjaGVjayBpZiB0aGUgYXR0cmlidXRl
IGV4aXN0cyBpbiB0aGUgcGFydGljdWxhciBicm93c2VyIHlvdSBhcmUKKyAgICB0ZXN0aW5nIGFn
YWluc3QuICBTb21lIGJyb3dzZXJzIG1heSBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0eSBuYW1lcyBm
b3IgdGhlIHNhbWUKKyAgICBwcm9wZXJ0eS4gIChJRTgncyAuaW5uZXJUZXh0IHZzLiBGaXJlZm94
IC50ZXh0Q29udGVudCkKKyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgU3RhbGVFbGVtZW50
UmVmZXJlbmNlRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhy
b3duIHdoZW4gYSByZWZlcmVuY2UgdG8gYW4gZWxlbWVudCBpcyBub3cgInN0YWxlIi4KKworICAg
IFN0YWxlIG1lYW5zIHRoZSBlbGVtZW50IG5vIGxvbmdlciBhcHBlYXJzIG9uIHRoZSBET00gb2Yg
dGhlIHBhZ2UuCisKKworICAgIFBvc3NpYmxlIGNhdXNlcyBvZiBTdGFsZUVsZW1lbnRSZWZlcmVu
Y2VFeGNlcHRpb24gaW5jbHVkZSwgYnV0IG5vdCBsaW1pdGVkIHRvOgorICAgICAgICAqIFlvdSBh
cmUgbm8gbG9uZ2VyIG9uIHRoZSBzYW1lIHBhZ2UsIG9yIHRoZSBwYWdlIG1heSBoYXZlIHJlZnJl
c2hlZCBzaW5jZSB0aGUgZWxlbWVudAorICAgICAgICAgIHdhcyBsb2NhdGVkLgorICAgICAgICAq
IFRoZSBlbGVtZW50IG1heSBoYXZlIGJlZW4gcmVtb3ZlZCBhbmQgcmUtYWRkZWQgdG8gdGhlIHNj
cmVlbiwgc2luY2UgaXQgd2FzIGxvY2F0ZWQuCisgICAgICAgICAgU3VjaCBhcyBhbiBlbGVtZW50
IGJlaW5nIHJlbG9jYXRlZC4KKyAgICAgICAgICBUaGlzIGNhbiBoYXBwZW4gdHlwaWNhbGx5IHdp
dGggYSBqYXZhc2NyaXB0IGZyYW1ld29yayB3aGVuIHZhbHVlcyBhcmUgdXBkYXRlZCBhbmQgdGhl
CisgICAgICAgICAgbm9kZSBpcyByZWJ1aWx0LgorICAgICAgICAqIEVsZW1lbnQgbWF5IGhhdmUg
YmVlbiBpbnNpZGUgYW4gaWZyYW1lIG9yIGFub3RoZXIgY29udGV4dCB3aGljaCB3YXMgcmVmcmVz
aGVkLgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkRWxlbWVudFN0YXRlRXhj
ZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgIiIiCisgICAgcGFzcwor
CisKK2NsYXNzIFVuZXhwZWN0ZWRBbGVydFByZXNlbnRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0
aW9uKToKKyAgICAiIiIKKyAgICBUaHJvd24gd2hlbiBhbiB1bmV4cGVjdGVkIGFsZXJ0IGlzIGFw
cGVhcmVkLgorCisgICAgVXN1YWxseSByYWlzZWQgd2hlbiB3aGVuIGFuIGV4cGVjdGVkIG1vZGFs
IGlzIGJsb2NraW5nIHdlYmRyaXZlciBmb3JtIGV4ZWN1dGluZyBhbnkKKyAgICBtb3JlIGNvbW1h
bmRzLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2c9Tm9uZSwgc2NyZWVuPU5v
bmUsIHN0YWNrdHJhY2U9Tm9uZSwgYWxlcnRfdGV4dD1Ob25lKToKKyAgICAgICAgc3VwZXIoVW5l
eHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obXNnLCBzY3JlZW4s
IHN0YWNrdHJhY2UpCisgICAgICAgIHNlbGYuYWxlcnRfdGV4dCA9IGFsZXJ0X3RleHQKKworICAg
IGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIkFsZXJ0IFRleHQ6ICVzXG4lcyIg
JSAoc2VsZi5hbGVydF90ZXh0LCBzdXBlcihVbmV4cGVjdGVkQWxlcnRQcmVzZW50RXhjZXB0aW9u
LCBzZWxmKS5fX3N0cl9fKCkpCisKKworY2xhc3MgTm9BbGVydFByZXNlbnRFeGNlcHRpb24oV2Vi
RHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBUaHJvd24gd2hlbiBzd2l0Y2hpbmcgdG8g
bm8gcHJlc2VudGVkIGFsZXJ0LgorCisgICAgVGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGNhbGxpbmcg
YW4gb3BlcmF0aW9uIG9uIHRoZSBBbGVydCgpIGNsYXNzIHdoZW4gYW4gYWxlcnQgaXMKKyAgICBu
b3QgeWV0IG9uIHRoZSBzY3JlZW4uCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIEVsZW1l
bnROb3RWaXNpYmxlRXhjZXB0aW9uKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgorICAg
ICIiIgorICAgIFRocm93biB3aGVuIGFuIGVsZW1lbnQgaXMgcHJlc2VudCBvbiB0aGUgRE9NLCBi
dXQKKyAgICBpdCBpcyBub3QgdmlzaWJsZSwgYW5kIHNvIGlzIG5vdCBhYmxlIHRvIGJlIGludGVy
YWN0ZWQgd2l0aC4KKworICAgIE1vc3QgY29tbW9ubHkgZW5jb3VudGVyZWQgd2hlbiB0cnlpbmcg
dG8gY2xpY2sgb3IgcmVhZCB0ZXh0CisgICAgb2YgYW4gZWxlbWVudCB0aGF0IGlzIGhpZGRlbiBm
cm9tIHZpZXcuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIEVsZW1lbnROb3RJbnRlcmFj
dGFibGVFeGNlcHRpb24oSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CisgICAgIiIiCisg
ICAgVGhyb3duIHdoZW4gYW4gZWxlbWVudCBpcyBwcmVzZW50IGluIHRoZSBET00gYnV0IGludGVy
YWN0aW9ucworICAgIHdpdGggdGhhdCBlbGVtZW50IHdpbGwgaGl0IGFub3RoZXIgZWxlbWVudCBk
byB0byBwYWludCBvcmRlcgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBFbGVtZW50Tm90
U2VsZWN0YWJsZUV4Y2VwdGlvbihJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKToKKyAgICAi
IiIKKyAgICBUaHJvd24gd2hlbiB0cnlpbmcgdG8gc2VsZWN0IGFuIHVuc2VsZWN0YWJsZSBlbGVt
ZW50LgorCisgICAgRm9yIGV4YW1wbGUsIHNlbGVjdGluZyBhICdzY3JpcHQnIGVsZW1lbnQuCisg
ICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRDb29raWVEb21haW5FeGNlcHRpb24o
V2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBUaHJvd24gd2hlbiBhdHRlbXB0aW5n
IHRvIGFkZCBhIGNvb2tpZSB1bmRlciBhIGRpZmZlcmVudCBkb21haW4KKyAgICB0aGFuIHRoZSBj
dXJyZW50IFVSTC4KKyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgVW5hYmxlVG9TZXRDb29r
aWVFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBUaHJvd24gd2hl
biBhIGRyaXZlciBmYWlscyB0byBzZXQgYSBjb29raWUuCisgICAgIiIiCisgICAgcGFzcworCisK
K2NsYXNzIFJlbW90ZURyaXZlclNlcnZlckV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgor
ICAgICIiIgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBUaW1lb3V0RXhjZXB0aW9uKFdl
YkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhyb3duIHdoZW4gYSBjb21tYW5kIGRv
ZXMgbm90IGNvbXBsZXRlIGluIGVub3VnaCB0aW1lLgorICAgICIiIgorICAgIHBhc3MKKworCitj
bGFzcyBNb3ZlVGFyZ2V0T3V0T2ZCb3VuZHNFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToK
KyAgICAiIiIKKyAgICBUaHJvd24gd2hlbiB0aGUgdGFyZ2V0IHByb3ZpZGVkIHRvIHRoZSBgQWN0
aW9uc0NoYWluc2AgbW92ZSgpCisgICAgbWV0aG9kIGlzIGludmFsaWQsIGkuZS4gb3V0IG9mIGRv
Y3VtZW50LgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBVbmV4cGVjdGVkVGFnTmFtZUV4
Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIGEg
c3VwcG9ydCBjbGFzcyBkaWQgbm90IGdldCBhbiBleHBlY3RlZCB3ZWIgZWxlbWVudC4KKyAgICAi
IiIKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIHRoZSBzZWxlY3RvciB3
aGljaCBpcyB1c2VkIHRvIGZpbmQgYW4gZWxlbWVudCBkb2VzIG5vdCByZXR1cm4KKyAgICBhIFdl
YkVsZW1lbnQuIEN1cnJlbnRseSB0aGlzIG9ubHkgaGFwcGVucyB3aGVuIHRoZSBzZWxlY3RvciBp
cyBhbiB4cGF0aAorICAgIGV4cHJlc3Npb24gYW5kIGl0IGlzIGVpdGhlciBzeW50YWN0aWNhbGx5
IGludmFsaWQgKGkuZS4gaXQgaXMgbm90IGEKKyAgICB4cGF0aCBleHByZXNzaW9uKSBvciB0aGUg
ZXhwcmVzc2lvbiBkb2VzIG5vdCBzZWxlY3QgV2ViRWxlbWVudHMKKyAgICAoZS5nLiAiY291bnQo
Ly9pbnB1dCkiKS4KKyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgSW1lTm90QXZhaWxhYmxl
RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhyb3duIHdoZW4g
SU1FIHN1cHBvcnQgaXMgbm90IGF2YWlsYWJsZS4gVGhpcyBleGNlcHRpb24gaXMgdGhyb3duIGZv
ciBldmVyeSBJTUUtcmVsYXRlZAorICAgIG1ldGhvZCBjYWxsIGlmIElNRSBzdXBwb3J0IGlzIG5v
dCBhdmFpbGFibGUgb24gdGhlIG1hY2hpbmUuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNz
IEltZUFjdGl2YXRpb25GYWlsZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAi
IiIKKyAgICBUaHJvd24gd2hlbiBhY3RpdmF0aW5nIGFuIElNRSBlbmdpbmUgaGFzIGZhaWxlZC4K
KyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFdl
YkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8g
YSBjb21tYW5kIGFyZSBlaXRoZXIgaW52YWxpZCBvciBtYWxmb3JtZWQuCisgICAgIiIiCisgICAg
cGFzcworCisKK2NsYXNzIEphdmFzY3JpcHRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToK
KyAgICAiIiIKKyAgICBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBleGVjdXRpbmcgSmF2YVNjcmlw
dCBzdXBwbGllZCBieSB0aGUgdXNlci4KKyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgTm9T
dWNoQ29va2llRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgTm8g
Y29va2llIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIG5hbWUgd2FzIGZvdW5kIGFtb25nc3QgdGhl
IGFzc29jaWF0ZWQgY29va2llcyBvZiB0aGUKKyAgICBjdXJyZW50IGJyb3dzaW5nIGNvbnRleHQn
cyBhY3RpdmUgZG9jdW1lbnQuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIFNjcmVlbnNo
b3RFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBBIHNjcmVlbiBj
YXB0dXJlIHdhcyBtYWRlIGltcG9zc2libGUuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNz
IEVsZW1lbnRDbGlja0ludGVyY2VwdGVkRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6Cisg
ICAgIiIiCisgICAgVGhlIEVsZW1lbnQgQ2xpY2sgY29tbWFuZCBjb3VsZCBub3QgYmUgY29tcGxl
dGVkIGJlY2F1c2UgdGhlIGVsZW1lbnQgcmVjZWl2aW5nIHRoZSBldmVudHMKKyAgICBpcyBvYnNj
dXJpbmcgdGhlIGVsZW1lbnQgdGhhdCB3YXMgcmVxdWVzdGVkIGNsaWNrZWQuCisgICAgIiIiCisg
ICAgcGFzcworCisKK2NsYXNzIEluc2VjdXJlQ2VydGlmaWNhdGVFeGNlcHRpb24oV2ViRHJpdmVy
RXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBOYXZpZ2F0aW9uIGNhdXNlZCB0aGUgdXNlciBhZ2Vu
dCB0byBoaXQgYSBjZXJ0aWZpY2F0ZSB3YXJuaW5nLCB3aGljaCBpcyB1c3VhbGx5IHRoZSByZXN1
bHQKKyAgICBvZiBhbiBleHBpcmVkIG9yIGludmFsaWQgVExTIGNlcnRpZmljYXRlLgorICAgICIi
IgorICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQ29vcmRpbmF0ZXNFeGNlcHRpb24oV2ViRHJp
dmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBUaGUgY29vcmRpbmF0ZXMgcHJvdmlkZWQgdG8g
YW4gaW50ZXJhY3Rpb25zIG9wZXJhdGlvbiBhcmUgaW52YWxpZC4KKyAgICAiIiIKKyAgICBwYXNz
CisKKworY2xhc3MgSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24p
OgorICAgICIiIgorICAgIE9jY3VycyBpZiB0aGUgZ2l2ZW4gc2Vzc2lvbiBpZCBpcyBub3QgaW4g
dGhlIGxpc3Qgb2YgYWN0aXZlIHNlc3Npb25zLCBtZWFuaW5nIHRoZSBzZXNzaW9uCisgICAgZWl0
aGVyIGRvZXMgbm90IGV4aXN0IG9yIHRoYXQgaXQncyBub3QgYWN0aXZlLgorICAgICIiIgorICAg
IHBhc3MKKworCitjbGFzcyBTZXNzaW9uTm90Q3JlYXRlZEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNl
cHRpb24pOgorICAgICIiIgorICAgIEEgbmV3IHNlc3Npb24gY291bGQgbm90IGJlIGNyZWF0ZWQu
CisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIFVua25vd25NZXRob2RFeGNlcHRpb24oV2Vi
RHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBUaGUgcmVxdWVzdGVkIGNvbW1hbmQgbWF0
Y2hlZCBhIGtub3duIFVSTCBidXQgZGlkIG5vdCBtYXRjaCBhbiBtZXRob2QgZm9yIHRoYXQgVVJM
LgorICAgICIiIgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9fX2luaXRfXy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjIwM2U2NDRkZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTAsMCArMSwzOCBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gLmZp
cmVmb3gud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgRmlyZWZveCAgIyBub3FhCitmcm9t
IC5maXJlZm94LmZpcmVmb3hfcHJvZmlsZSBpbXBvcnQgRmlyZWZveFByb2ZpbGUgICMgbm9xYQor
ZnJvbSAuZmlyZWZveC5vcHRpb25zIGltcG9ydCBPcHRpb25zIGFzIEZpcmVmb3hPcHRpb25zICAj
IG5vcWEKK2Zyb20gLmNocm9tZS53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBDaHJvbWUg
ICMgbm9xYQorZnJvbSAuY2hyb21lLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMgYXMgQ2hyb21lT3B0
aW9ucyAgIyBub3FhCitmcm9tIC5pZS53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBJZSAg
IyBub3FhCitmcm9tIC5lZGdlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIEVkZ2UgICMg
bm9xYQorZnJvbSAub3BlcmEud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgT3BlcmEgICMg
bm9xYQorZnJvbSAuc2FmYXJpLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFNhZmFyaSAg
IyBub3FhCitmcm9tIC5ibGFja2JlcnJ5LndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIEJs
YWNrQmVycnkgICMgbm9xYQorZnJvbSAucGhhbnRvbWpzLndlYmRyaXZlciBpbXBvcnQgV2ViRHJp
dmVyIGFzIFBoYW50b21KUyAgIyBub3FhCitmcm9tIC5hbmRyb2lkLndlYmRyaXZlciBpbXBvcnQg
V2ViRHJpdmVyIGFzIEFuZHJvaWQgICMgbm9xYQorZnJvbSAud2Via2l0Z3RrLndlYmRyaXZlciBp
bXBvcnQgV2ViRHJpdmVyIGFzIFdlYktpdEdUSyAjIG5vcWEKK2Zyb20gLndlYmtpdGd0ay5vcHRp
b25zIGltcG9ydCBPcHRpb25zIGFzIFdlYktpdEdUS09wdGlvbnMgIyBub3FhCitmcm9tIC5yZW1v
dGUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgUmVtb3RlICAjIG5vcWEKK2Zyb20gLmNv
bW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcyAgIyBu
b3FhCitmcm9tIC5jb21tb24uYWN0aW9uX2NoYWlucyBpbXBvcnQgQWN0aW9uQ2hhaW5zICAjIG5v
cWEKK2Zyb20gLmNvbW1vbi50b3VjaF9hY3Rpb25zIGltcG9ydCBUb3VjaEFjdGlvbnMgICMgbm9x
YQorZnJvbSAuY29tbW9uLnByb3h5IGltcG9ydCBQcm94eSAgIyBub3FhCisKK19fdmVyc2lvbl9f
ID0gJzMuOC4wJwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2FuZHJvaWQvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvYW5kcm9pZC9fX2luaXRf
Xy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvYW5kcm9pZC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisj
IExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVy
IG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUg
Tk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwg
aW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxp
Y2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz
aW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhj
ZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEg
Y29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNl
bnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcg
b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQg
V0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBv
ciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2Ug
Z292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5z
ZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9hbmRyb2lkL3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9hbmRyb2lkL3dlYmRyaXZlci5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjhhNTVjMjdlNDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvYW5kcm9pZC93ZWJkcml2ZXIucHkKQEAgLTAsMCArMSw0MiBAQAorIyBMaWNl
bnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUK
KyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElD
RSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9y
bWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNl
cyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAy
LjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBp
biBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkg
b2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv
TElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFn
cmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGlj
ZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJB
TlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1w
bGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVy
bmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisK
K2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZl
ciBhcyBSZW1vdGVXZWJEcml2ZXIKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNp
cmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcworCisKK2NsYXNzIFdl
YkRyaXZlcihSZW1vdGVXZWJEcml2ZXIpOgorICAgICIiIgorICAgIFNpbXBsZSBSZW1vdGVXZWJE
cml2ZXIgd3JhcHBlciB0byBzdGFydCBjb25uZWN0IHRvIFNlbGVuZHJvaWQncyBXZWJWaWV3IGFw
cAorCisgICAgRm9yIG1vcmUgaW5mbyBvbiBnZXR0aW5nIHN0YXJ0ZWQgd2l0aCBTZWxlbmRyb2lk
CisgICAgaHR0cDovL3NlbGVuZHJvaWQuaW8vbW9iaWxlV2ViLmh0bWwKKyAgICAiIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PSJsb2NhbGhvc3QiLCBwb3J0PTQ0NDQsIGRlc2lyZWRf
Y2FwYWJpbGl0aWVzPURlc2lyZWRDYXBhYmlsaXRpZXMuQU5EUk9JRCk6CisgICAgICAgICIiIgor
ICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIFNlbGVuZHJvaWQgdXNpbmcgdGhlIFdl
YlZpZXcgYXBwCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGhvc3QgLSBsb2NhdGlvbiBv
ZiB3aGVyZSBzZWxlbmRyb2lkIGlzIHJ1bm5pbmcKKyAgICAgICAgIC0gcG9ydCAtIHBvcnQgdGhh
dCBzZWxlbmRyb2lkIGlzIHJ1bm5pbmcgb24KKyAgICAgICAgIC0gZGVzaXJlZF9jYXBhYmlsaXRp
ZXM6IERpY3Rpb25hcnkgb2JqZWN0IHdpdGggY2FwYWJpbGl0aWVzCisgICAgICAgICIiIgorICAg
ICAgICBSZW1vdGVXZWJEcml2ZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLAorICAgICAg
ICAgICAgY29tbWFuZF9leGVjdXRvcj0iaHR0cDovLyVzOiVkL3dkL2h1YiIgJSAoaG9zdCwgcG9y
dCksCisgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1kZXNpcmVkX2NhcGFiaWxpdGll
cykKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9ibGFja2JlcnJ5L19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2JsYWNrYmVycnkvX19pbml0X18u
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2JsYWNrYmVycnkvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvYmxhY2tiZXJyeS93ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvYmxhY2tiZXJyeS93ZWJkcml2
ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJkMGQ2ZjgxNzM1
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL2JsYWNrYmVycnkvd2ViZHJpdmVyLnB5CkBAIC0wLDAgKzEsMTE2
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKworaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBzdWJwcm9jZXNz
CisKK3RyeToKKyAgICBpbXBvcnQgaHR0cC5jbGllbnQgYXMgaHR0cF9jbGllbnQKK2V4Y2VwdCBJ
bXBvcnRFcnJvcjoKKyAgICBpbXBvcnQgaHR0cGxpYiBhcyBodHRwX2NsaWVudAorCitmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgUmVt
b3RlV2ViRHJpdmVyCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBXZWJE
cml2ZXJFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0
IFdlYkRyaXZlcldhaXQKKworTE9BRF9USU1FT1VUID0gNQorCisKK2NsYXNzIFdlYkRyaXZlcihS
ZW1vdGVXZWJEcml2ZXIpOgorICAgICIiIgorICAgIENvbnRyb2xzIHRoZSBCbGFja0JlcnJ5IEJy
b3dzZXIgYW5kIGFsbG93cyB5b3UgdG8gZHJpdmUgaXQuCisKKyAgICA6QXJnczoKKyAgICAgLSBk
ZXZpY2VfcGFzc3dvcmQgLSBwYXNzd29yZCBmb3IgdGhlIEJsYWNrQmVycnkgZGV2aWNlIG9yIGVt
dWxhdG9yIHlvdSBhcmUKKyAgICAgICB0cnlpbmcgdG8gZHJpdmUKKyAgICAgLSBiYl90b29sc19k
aXIgcGF0aCB0byB0aGUgYmxhY2tiZXJyeS1kZXBsb3kgZXhlY3V0YWJsZS4gSWYgdGhlIGRlZmF1
bHQKKyAgICAgICBpcyB1c2VkIGl0IGFzc3VtZXMgaXQgaXMgaW4gdGhlICRQQVRICisgICAgIC0g
aG9zdGlwIC0gdGhlIGlwIGZvciB0aGUgZGV2aWNlIHlvdSBhcmUgdHJ5aW5nIHRvIGRyaXZlLiBG
YWxscyBiYWNrIHRvCisgICAgICAgMTY5LjI1NC4wLjEgd2hpY2ggaXMgdGhlIGRlZmF1bHQgaXAg
dXNlZAorICAgICAtIHBvcnQgLSB0aGUgcG9ydCBiZWluZyB1c2VkIGZvciBXZWJEcml2ZXIgb24g
ZGV2aWNlLiBkZWZhdWx0cyB0byAxMzM4CisgICAgIC0gZGVzaXJlZF9jYXBhYmlsaXRpZXM6IERp
Y3Rpb25hcnkgb2JqZWN0IHdpdGggbm9uLWJyb3dzZXIgc3BlY2lmaWMKKyAgICAgICBjYXBhYmls
aXRpZXMgb25seSwgc3VjaCBhcyAicHJveHkiIG9yICJsb2dnaW5nUHJlZiIuCisKKyAgICBOb3Rl
OiBUbyBnZXQgYmxhY2tiZXJyeS1kZXBsb3kgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIHRoZSBC
bGFja0JlcnJ5CisgICAgICAgICAgV2ViV29ya3MgU0RLIC0gdGhlIGRlZmF1bHQgaW5zdGFsbCB3
aWxsIHB1dCBpdCBpbiB0aGUgJFBBVEggZm9yIHlvdS4KKyAgICAgICAgICBEb3dubG9hZCBhdCBo
dHRwczovL2RldmVsb3Blci5ibGFja2JlcnJ5LmNvbS9odG1sNS9kb3dubG9hZHMvCisgICAgIiIi
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRldmljZV9wYXNzd29yZCwgYmJfdG9vbHNfZGlyPU5v
bmUsCisgICAgICAgICAgICAgICAgIGhvc3RpcD0nMTY5LjI1NC4wLjEnLCBwb3J0PTEzMzgsIGRl
c2lyZWRfY2FwYWJpbGl0aWVzPXt9KToKKyAgICAgICAgcmVtb3RlX2FkZHIgPSAnaHR0cDovL3t9
Ont9Jy5mb3JtYXQoaG9zdGlwLCBwb3J0KQorCisgICAgICAgIGZpbGVuYW1lID0gJ2JsYWNrYmVy
cnktZGVwbG95JworICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6Cisg
ICAgICAgICAgICBmaWxlbmFtZSArPSAnLmJhdCcKKworICAgICAgICBpZiBiYl90b29sc19kaXIg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKGJiX3Rvb2xzX2Rpcik6
CisgICAgICAgICAgICAgICAgYmJfZGVwbG95X2xvY2F0aW9uID0gb3MucGF0aC5qb2luKGJiX3Rv
b2xzX2RpciwgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxl
KGJiX2RlcGxveV9sb2NhdGlvbik6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZl
ckV4Y2VwdGlvbignSW52YWxpZCBibGFja2JlcnJ5LWRlcGxveSBsb2NhdGlvbjoge30nLmZvcm1h
dChiYl9kZXBsb3lfbG9jYXRpb24pKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oJ0ludmFsaWQgYmxhY2tiZXJyeSB0b29scyBsb2Nh
dGlvbiwgbXVzdCBiZSBhIGRpcmVjdG9yeToge30nLmZvcm1hdChiYl90b29sc19kaXIpKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgYmJfZGVwbG95X2xvY2F0aW9uID0gZmlsZW5hbWUKKwor
ICAgICAgICAiIiIKKyAgICAgICAgTm93IGxhdW5jaCB0aGUgQmxhY2tCZXJyeSBicm93c2VyIGJl
Zm9yZSBhbGxvd2luZyBhbnl0aGluZyBlbHNlIHRvIHJ1bi4KKyAgICAgICAgIiIiCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGxhdW5jaF9hcmdzID0gW2JiX2RlcGxveV9sb2NhdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICctbGF1bmNoQXBwJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cihob3N0aXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1wYWNr
YWdlLW5hbWUnLCAnc3lzLmJyb3dzZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1w
YWNrYWdlLWlkJywgJ2dZQUJnSllGSEF6YmVGTVBDQ3BZV0J0SEFtMCcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnLXBhc3N3b3JkJywgc3RyKGRldmljZV9wYXNzd29yZCldCisKKyAgICAg
ICAgICAgIHdpdGggb3Blbihvcy5kZXZudWxsLCAndycpIGFzIGZwOgorICAgICAgICAgICAgICAg
IHAgPSBzdWJwcm9jZXNzLlBvcGVuKGxhdW5jaF9hcmdzLCBzdGRvdXQ9ZnApCisKKyAgICAgICAg
ICAgIHJldHVybmNvZGUgPSBwLndhaXQoKQorCisgICAgICAgICAgICBpZiByZXR1cm5jb2RlID09
IDA6CisgICAgICAgICAgICAgICAgIyB3YWl0IGZvciB0aGUgQmxhY2tCZXJyeTEwIGJyb3dzZXIg
dG8gbG9hZC4KKyAgICAgICAgICAgICAgICBpc19ydW5uaW5nX2FyZ3MgPSBbYmJfZGVwbG95X2xv
Y2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLWlzQXBwUnVubmlu
ZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihob3N0aXApLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLXBhY2thZ2UtbmFtZScsICdzeXMuYnJv
d3NlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctcGFja2FnZS1pZCcs
ICdnWUFCZ0pZRkhBemJlRk1QQ0NwWVdCdEhBbTAnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnLXBhc3N3b3JkJywgc3RyKGRldmljZV9wYXNzd29yZCldCisKKyAgICAgICAg
ICAgICAgICBXZWJEcml2ZXJXYWl0KE5vbmUsIExPQURfVElNRU9VVClcCisgICAgICAgICAgICAg
ICAgICAgIC51bnRpbChsYW1iZGEgeDogc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoaXNfcnVubmlu
Z19hcmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJ3Jlc3VsdDo6dHJ1ZScp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nd2FpdGluZyBmb3IgQmxhY2tC
ZXJyeTEwIGJyb3dzZXIgdG8gbG9hZCcpCisKKyAgICAgICAgICAgICAgICBSZW1vdGVXZWJEcml2
ZXIuX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZF9leGVjdXRvcj1yZW1vdGVfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9ZGVzaXJlZF9jYXBhYmlsaXRp
ZXMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4
Y2VwdGlvbignYmxhY2tiZXJyeS1kZXBsb3kgZmFpbGVkIHRvIGxhdW5jaCBicm93c2VyJykKKyAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVy
RXhjZXB0aW9uKCdTb21ldGhpbmcgd2VudCB3cm9uZyBsYXVuY2hpbmcgYmxhY2tiZXJyeS1kZXBs
b3knLCBzdGFja3RyYWNlPWdldGF0dHIoZSwgJ3N0YWNrdHJhY2UnLCBOb25lKSkKKworICAgIGRl
ZiBxdWl0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2xvc2VzIHRoZSBicm93c2VyIGFu
ZCBzaHV0cyBkb3duIHRoZQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
UmVtb3RlV2ViRHJpdmVyLnF1aXQoc2VsZikKKyAgICAgICAgZXhjZXB0IGh0dHBfY2xpZW50LkJh
ZFN0YXR1c0xpbmU6CisgICAgICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY2hyb21lL19faW5pdF9f
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2Nocm9tZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY2hyb21lL19faW5pdF9fLnB5CkBA
IC0wLDAgKzEsMTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2Vy
dmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3Jl
ZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29y
ayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVy
c2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3Qg
dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAg
WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3
dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElT
IiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQs
IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisj
IHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9vcHRpb25zLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9v
cHRpb25zLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zM2JkMzg4
NjQzZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jaHJvbWUvb3B0aW9ucy5weQpAQCAtMCwwICsxLDE5MiBA
QAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1
bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUg
dGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlv
bmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNG
QyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg
VmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxl
IGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFp
biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcv
bGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg
bGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRI
T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJl
c3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1
YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExp
Y2Vuc2UuCisKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCBvcworCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRp
ZXMKKworCitjbGFzcyBPcHRpb25zKG9iamVjdCk6CisgICAgS0VZID0gImdvb2c6Y2hyb21lT3B0
aW9ucyIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fYmluYXJ5X2xv
Y2F0aW9uID0gJycKKyAgICAgICAgc2VsZi5fYXJndW1lbnRzID0gW10KKyAgICAgICAgc2VsZi5f
ZXh0ZW5zaW9uX2ZpbGVzID0gW10KKyAgICAgICAgc2VsZi5fZXh0ZW5zaW9ucyA9IFtdCisgICAg
ICAgIHNlbGYuX2V4cGVyaW1lbnRhbF9vcHRpb25zID0ge30KKyAgICAgICAgc2VsZi5fZGVidWdn
ZXJfYWRkcmVzcyA9IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBiaW5hcnlfbG9jYXRp
b24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBsb2NhdGlvbiBvZiB0
aGUgYmluYXJ5IG90aGVyd2lzZSBhbiBlbXB0eSBzdHJpbmcKKyAgICAgICAgIiIiCisgICAgICAg
IHJldHVybiBzZWxmLl9iaW5hcnlfbG9jYXRpb24KKworICAgIEBiaW5hcnlfbG9jYXRpb24uc2V0
dGVyCisgICAgZGVmIGJpbmFyeV9sb2NhdGlvbihzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgor
ICAgICAgICBBbGxvd3MgeW91IHRvIHNldCB3aGVyZSB0aGUgY2hyb21pdW0gYmluYXJ5IGxpdmVz
CisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBwYXRoIHRvIHRoZSBDaHJvbWl1
bSBiaW5hcnkKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2JpbmFyeV9sb2NhdGlvbiA9IHZh
bHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZGVidWdnZXJfYWRkcmVzcyhzZWxmKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIHJlbW90ZSBkZXZ0
b29scyBpbnN0YW5jZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RlYnVnZ2Vy
X2FkZHJlc3MKKworICAgIEBkZWJ1Z2dlcl9hZGRyZXNzLnNldHRlcgorICAgIGRlZiBkZWJ1Z2dl
cl9hZGRyZXNzKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIEFsbG93cyB5b3Ug
dG8gc2V0IHRoZSBhZGRyZXNzIG9mIHRoZSByZW1vdGUgZGV2dG9vbHMgaW5zdGFuY2UKKyAgICAg
ICAgdGhhdCB0aGUgQ2hyb21lRHJpdmVyIGluc3RhbmNlIHdpbGwgdHJ5IHRvIGNvbm5lY3QgdG8g
ZHVyaW5nIGFuCisgICAgICAgIGFjdGl2ZSB3YWl0LgorCisgICAgICAgIDpBcmdzOgorICAgICAg
ICAgLSB2YWx1ZTogYWRkcmVzcyBvZiByZW1vdGUgZGV2dG9vbHMgaW5zdGFuY2UgaWYgYW55ICho
b3N0bmFtZVs6cG9ydF0pCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9kZWJ1Z2dlcl9hZGRy
ZXNzID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhcmd1bWVudHMoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBhcmd1bWVudHMgbmVlZGVkIGZv
ciB0aGUgYnJvd3NlcgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FyZ3VtZW50
cworCisgICAgZGVmIGFkZF9hcmd1bWVudChzZWxmLCBhcmd1bWVudCk6CisgICAgICAgICIiIgor
ICAgICAgICBBZGRzIGFuIGFyZ3VtZW50IHRvIHRoZSBsaXN0CisKKyAgICAgICAgOkFyZ3M6Cisg
ICAgICAgICAtIFNldHMgdGhlIGFyZ3VtZW50cworICAgICAgICAiIiIKKyAgICAgICAgaWYgYXJn
dW1lbnQ6CisgICAgICAgICAgICBzZWxmLl9hcmd1bWVudHMuYXBwZW5kKGFyZ3VtZW50KQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYXJndW1lbnQgY2FuIG5v
dCBiZSBudWxsIikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleHRlbnNpb25zKHNlbGYpOgor
ICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgZW5jb2RlZCBleHRlbnNpb25z
IHRoYXQgd2lsbCBiZSBsb2FkZWQgaW50byBjaHJvbWUKKworICAgICAgICAiIiIKKyAgICAgICAg
ZW5jb2RlZF9leHRlbnNpb25zID0gW10KKyAgICAgICAgZm9yIGV4dCBpbiBzZWxmLl9leHRlbnNp
b25fZmlsZXM6CisgICAgICAgICAgICBmaWxlXyA9IG9wZW4oZXh0LCAncmInKQorICAgICAgICAg
ICAgIyBTaG91bGQgbm90IHVzZSBiYXNlNjQuZW5jb2Rlc3RyaW5nKCkgd2hpY2ggaW5zZXJ0cyBu
ZXdsaW5lcyBldmVyeQorICAgICAgICAgICAgIyA3NiBjaGFyYWN0ZXJzIChwZXIgUkZDIDE1MjEp
LiAgQ2hyb21lZHJpdmVyIGhhcyB0byByZW1vdmUgdGhvc2UKKyAgICAgICAgICAgICMgdW5uZWNl
c3NhcnkgbmV3bGluZXMgYmVmb3JlIGRlY29kaW5nLCBjYXVzaW5nIHBlcmZvcm1hbmNlIGhpdC4K
KyAgICAgICAgICAgIGVuY29kZWRfZXh0ZW5zaW9ucy5hcHBlbmQoYmFzZTY0LmI2NGVuY29kZShm
aWxlXy5yZWFkKCkpLmRlY29kZSgnVVRGLTgnKSkKKworICAgICAgICAgICAgZmlsZV8uY2xvc2Uo
KQorICAgICAgICByZXR1cm4gZW5jb2RlZF9leHRlbnNpb25zICsgc2VsZi5fZXh0ZW5zaW9ucwor
CisgICAgZGVmIGFkZF9leHRlbnNpb24oc2VsZiwgZXh0ZW5zaW9uKToKKyAgICAgICAgIiIiCisg
ICAgICAgIEFkZHMgdGhlIHBhdGggdG8gdGhlIGV4dGVuc2lvbiB0byBhIGxpc3QgdGhhdCB3aWxs
IGJlIHVzZWQgdG8gZXh0cmFjdCBpdAorICAgICAgICB0byB0aGUgQ2hyb21lRHJpdmVyCisKKyAg
ICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV4dGVuc2lvbjogcGF0aCB0byB0aGUgXCouY3J4IGZp
bGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGV4dGVuc2lvbjoKKyAgICAgICAgICAgIGV4dGVu
c2lvbl90b19hZGQgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5leHBhbmR1c2VyKGV4dGVuc2lv
bikpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhleHRlbnNpb25fdG9fYWRkKToKKyAg
ICAgICAgICAgICAgICBzZWxmLl9leHRlbnNpb25fZmlsZXMuYXBwZW5kKGV4dGVuc2lvbl90b19h
ZGQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoIlBh
dGggdG8gdGhlIGV4dGVuc2lvbiBkb2Vzbid0IGV4aXN0IikKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImFyZ3VtZW50IGNhbiBub3QgYmUgbnVsbCIpCisKKyAg
ICBkZWYgYWRkX2VuY29kZWRfZXh0ZW5zaW9uKHNlbGYsIGV4dGVuc2lvbik6CisgICAgICAgICIi
IgorICAgICAgICBBZGRzIEJhc2U2NCBlbmNvZGVkIHN0cmluZyB3aXRoIGV4dGVuc2lvbiBkYXRh
IHRvIGEgbGlzdCB0aGF0IHdpbGwgYmUgdXNlZCB0byBleHRyYWN0IGl0CisgICAgICAgIHRvIHRo
ZSBDaHJvbWVEcml2ZXIKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZXh0ZW5zaW9uOiBC
YXNlNjQgZW5jb2RlZCBzdHJpbmcgd2l0aCBleHRlbnNpb24gZGF0YQorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgZXh0ZW5zaW9uOgorICAgICAgICAgICAgc2VsZi5fZXh0ZW5zaW9ucy5hcHBlbmQo
ZXh0ZW5zaW9uKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
YXJndW1lbnQgY2FuIG5vdCBiZSBudWxsIikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleHBl
cmltZW50YWxfb3B0aW9ucyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBk
aWN0aW9uYXJ5IG9mIGV4cGVyaW1lbnRhbCBvcHRpb25zIGZvciBjaHJvbWUuCisgICAgICAgICIi
IgorICAgICAgICByZXR1cm4gc2VsZi5fZXhwZXJpbWVudGFsX29wdGlvbnMKKworICAgIGRlZiBh
ZGRfZXhwZXJpbWVudGFsX29wdGlvbihzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIgor
ICAgICAgICBBZGRzIGFuIGV4cGVyaW1lbnRhbCBvcHRpb24gd2hpY2ggaXMgcGFzc2VkIHRvIGNo
cm9tZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIG5hbWU6IFRoZSBleHBlcmltZW50YWwg
b3B0aW9uIG5hbWUuCisgICAgICAgICAgdmFsdWU6IFRoZSBvcHRpb24gdmFsdWUuCisgICAgICAg
ICIiIgorICAgICAgICBzZWxmLl9leHBlcmltZW50YWxfb3B0aW9uc1tuYW1lXSA9IHZhbHVlCisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgaGVhZGxlc3Moc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBoZWFkbGVzcyBhcmd1bWVudCBpcyBzZXQK
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiAnLS1oZWFkbGVzcycgaW4gc2VsZi5fYXJndW1l
bnRzCisKKyAgICBkZWYgc2V0X2hlYWRsZXNzKHNlbGYsIGhlYWRsZXNzPVRydWUpOgorICAgICAg
ICAiIiIKKyAgICAgICAgU2V0cyB0aGUgaGVhZGxlc3MgYXJndW1lbnQKKworICAgICAgICBBcmdz
OgorICAgICAgICAgIGhlYWRsZXNzOiBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgdG8gc2V0IHRo
ZSBoZWFkbGVzcyBvcHRpb24KKyAgICAgICAgIiIiCisgICAgICAgIGFyZ3MgPSB7Jy0taGVhZGxl
c3MnLCAnLS1kaXNhYmxlLWdwdSd9CisgICAgICAgIGlmIGhlYWRsZXNzOgorICAgICAgICAgICAg
c2VsZi5fYXJndW1lbnRzLmV4dGVuZChhcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
c2VsZi5fYXJndW1lbnRzID0gbGlzdChzZXQoc2VsZi5fYXJndW1lbnRzKSAtIGFyZ3MpCisKKyAg
ICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIENy
ZWF0ZXMgYSBjYXBhYmlsaXRpZXMgd2l0aCBhbGwgdGhlIG9wdGlvbnMgdGhhdCBoYXZlIGJlZW4g
c2V0IGFuZAorCisgICAgICAgICAgICByZXR1cm5zIGEgZGljdGlvbmFyeSB3aXRoIGV2ZXJ5dGhp
bmcKKyAgICAgICAgIiIiCisgICAgICAgIGNocm9tZSA9IERlc2lyZWRDYXBhYmlsaXRpZXMuQ0hS
T01FLmNvcHkoKQorCisgICAgICAgIGNocm9tZV9vcHRpb25zID0gc2VsZi5leHBlcmltZW50YWxf
b3B0aW9ucy5jb3B5KCkKKyAgICAgICAgY2hyb21lX29wdGlvbnNbImV4dGVuc2lvbnMiXSA9IHNl
bGYuZXh0ZW5zaW9ucworICAgICAgICBpZiBzZWxmLmJpbmFyeV9sb2NhdGlvbjoKKyAgICAgICAg
ICAgIGNocm9tZV9vcHRpb25zWyJiaW5hcnkiXSA9IHNlbGYuYmluYXJ5X2xvY2F0aW9uCisgICAg
ICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0gPSBzZWxmLmFyZ3VtZW50cworICAgICAgICBpZiBz
ZWxmLmRlYnVnZ2VyX2FkZHJlc3M6CisgICAgICAgICAgICBjaHJvbWVfb3B0aW9uc1siZGVidWdn
ZXJBZGRyZXNzIl0gPSBzZWxmLmRlYnVnZ2VyX2FkZHJlc3MKKworICAgICAgICBjaHJvbWVbc2Vs
Zi5LRVldID0gY2hyb21lX29wdGlvbnMKKworICAgICAgICByZXR1cm4gY2hyb21lCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY2hyb21lL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9yZW1vdGVfY29ubmVjdGlvbi5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDJhZGFjM2NiNTgKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvY2hyb21lL3JlbW90ZV9jb25uZWN0aW9uLnB5CkBAIC0wLDAgKzEsMjcg
QEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykg
dW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl
IHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBT
RkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lU
SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBM
aWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUucmVtb3RlX2Nvbm5lY3Rp
b24gaW1wb3J0IFJlbW90ZUNvbm5lY3Rpb24KKworCitjbGFzcyBDaHJvbWVSZW1vdGVDb25uZWN0
aW9uKFJlbW90ZUNvbm5lY3Rpb24pOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9z
ZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVlKToKKyAgICAgICAgUmVtb3RlQ29ubmVjdGlvbi5f
X2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmUpCisgICAgICAgIHNl
bGYuX2NvbW1hbmRzWyJsYXVuY2hBcHAiXSA9ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklk
L2Nocm9taXVtL2xhdW5jaF9hcHAnKQorICAgICAgICBzZWxmLl9jb21tYW5kc1sic2V0TmV0d29y
a0NvbmRpdGlvbnMiXSA9ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Nocm9taXVtL25l
dHdvcmtfY29uZGl0aW9ucycpCisgICAgICAgIHNlbGYuX2NvbW1hbmRzWyJnZXROZXR3b3JrQ29u
ZGl0aW9ucyJdID0gKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9jaHJvbWl1bS9uZXR3b3Jr
X2NvbmRpdGlvbnMnKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9zZXJ2aWNlLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9zZXJ2aWNl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YTY3YjJjYjU3Nwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9jaHJvbWUvc2VydmljZS5weQpAQCAtMCwwICsxLDQ1IEBACisjIExp
Y2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9u
ZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9U
SUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5m
b3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vu
c2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0
IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29w
eSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl
cy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3Ig
YWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM
aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FS
UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp
bXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4K
KworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uIGltcG9ydCBzZXJ2aWNlCisKKworY2xh
c3MgU2VydmljZShzZXJ2aWNlLlNlcnZpY2UpOgorICAgICIiIgorICAgIE9iamVjdCB0aGF0IG1h
bmFnZXMgdGhlIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyBvZiB0aGUgQ2hyb21lRHJpdmVyCisgICAg
IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9wYXRoLCBwb3J0PTAsIHNl
cnZpY2VfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICBsb2dfcGF0aD1Ob25lLCBlbnY9Tm9u
ZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBT
ZXJ2aWNlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV4ZWN1dGFibGVfcGF0aCA6IFBh
dGggdG8gdGhlIENocm9tZURyaXZlcgorICAgICAgICAgLSBwb3J0IDogUG9ydCB0aGUgc2Vydmlj
ZSBpcyBydW5uaW5nIG9uCisgICAgICAgICAtIHNlcnZpY2VfYXJncyA6IExpc3Qgb2YgYXJncyB0
byBwYXNzIHRvIHRoZSBjaHJvbWVkcml2ZXIgc2VydmljZQorICAgICAgICAgLSBsb2dfcGF0aCA6
IFBhdGggZm9yIHRoZSBjaHJvbWVkcml2ZXIgc2VydmljZSB0byBsb2cgdG8iIiIKKworICAgICAg
ICBzZWxmLnNlcnZpY2VfYXJncyA9IHNlcnZpY2VfYXJncyBvciBbXQorICAgICAgICBpZiBsb2df
cGF0aDoKKyAgICAgICAgICAgIHNlbGYuc2VydmljZV9hcmdzLmFwcGVuZCgnLS1sb2ctcGF0aD0l
cycgJSBsb2dfcGF0aCkKKworICAgICAgICBzZXJ2aWNlLlNlcnZpY2UuX19pbml0X18oc2VsZiwg
ZXhlY3V0YWJsZV9wYXRoLCBwb3J0PXBvcnQsIGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGFydF9lcnJvcl9tZXNzYWdlPSJQbGVhc2Ugc2VlIGh0dHBzOi8vc2l0
ZXMuZ29vZ2xlLmNvbS9hL2Nocm9taXVtLm9yZy9jaHJvbWVkcml2ZXIvaG9tZSIpCisKKyAgICBk
ZWYgY29tbWFuZF9saW5lX2FyZ3Moc2VsZik6CisgICAgICAgIHJldHVybiBbIi0tcG9ydD0lZCIg
JSBzZWxmLnBvcnRdICsgc2VsZi5zZXJ2aWNlX2FyZ3MKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jaHJvbWUvd2ViZHJp
dmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2Nocm9tZS93ZWJkcml2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjAyNTMzNDAwYmE1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS93ZWJkcml2ZXIu
cHkKQEAgLTAsMCArMSwxMzIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgoraW1wb3J0IHdhcm5pbmdzCisKK2Zyb20gc2VsZW5p
dW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBSZW1vdGVX
ZWJEcml2ZXIKK2Zyb20gLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBDaHJvbWVSZW1vdGVDb25u
ZWN0aW9uCitmcm9tIC5zZXJ2aWNlIGltcG9ydCBTZXJ2aWNlCitmcm9tIC5vcHRpb25zIGltcG9y
dCBPcHRpb25zCisKKworY2xhc3MgV2ViRHJpdmVyKFJlbW90ZVdlYkRyaXZlcik6CisgICAgIiIi
CisgICAgQ29udHJvbHMgdGhlIENocm9tZURyaXZlciBhbmQgYWxsb3dzIHlvdSB0byBkcml2ZSB0
aGUgYnJvd3Nlci4KKworICAgIFlvdSB3aWxsIG5lZWQgdG8gZG93bmxvYWQgdGhlIENocm9tZURy
aXZlciBleGVjdXRhYmxlIGZyb20KKyAgICBodHRwOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29v
Z2xlYXBpcy5jb20vaW5kZXguaHRtbAorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGV4ZWN1dGFibGVfcGF0aD0iY2hyb21lZHJpdmVyIiwgcG9ydD0wLAorICAgICAgICAgICAgICAg
ICBvcHRpb25zPU5vbmUsIHNlcnZpY2VfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICBkZXNp
cmVkX2NhcGFiaWxpdGllcz1Ob25lLCBzZXJ2aWNlX2xvZ19wYXRoPU5vbmUsCisgICAgICAgICAg
ICAgICAgIGNocm9tZV9vcHRpb25zPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRl
cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgY2hyb21lIGRyaXZlci4KKworICAgICAgICBTdGFydHMg
dGhlIHNlcnZpY2UgYW5kIHRoZW4gY3JlYXRlcyBuZXcgaW5zdGFuY2Ugb2YgY2hyb21lIGRyaXZl
ci4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZXhlY3V0YWJsZV9wYXRoIC0gcGF0aCB0
byB0aGUgZXhlY3V0YWJsZS4gSWYgdGhlIGRlZmF1bHQgaXMgdXNlZCBpdCBhc3N1bWVzIHRoZSBl
eGVjdXRhYmxlIGlzIGluIHRoZSAkUEFUSAorICAgICAgICAgLSBwb3J0IC0gcG9ydCB5b3Ugd291
bGQgbGlrZSB0aGUgc2VydmljZSB0byBydW4sIGlmIGxlZnQgYXMgMCwgYSBmcmVlIHBvcnQgd2ls
bCBiZSBmb3VuZC4KKyAgICAgICAgIC0gZGVzaXJlZF9jYXBhYmlsaXRpZXM6IERpY3Rpb25hcnkg
b2JqZWN0IHdpdGggbm9uLWJyb3dzZXIgc3BlY2lmaWMKKyAgICAgICAgICAgY2FwYWJpbGl0aWVz
IG9ubHksIHN1Y2ggYXMgInByb3h5IiBvciAibG9nZ2luZ1ByZWYiLgorICAgICAgICAgLSBvcHRp
b25zOiB0aGlzIHRha2VzIGFuIGluc3RhbmNlIG9mIENocm9tZU9wdGlvbnMKKyAgICAgICAgIiIi
CisgICAgICAgIGlmIGNocm9tZV9vcHRpb25zOgorICAgICAgICAgICAgd2FybmluZ3Mud2Fybign
dXNlIG9wdGlvbnMgaW5zdGVhZCBvZiBjaHJvbWVfb3B0aW9ucycsIERlcHJlY2F0aW9uV2Fybmlu
ZykKKyAgICAgICAgICAgIG9wdGlvbnMgPSBjaHJvbWVfb3B0aW9ucworCisgICAgICAgIGlmIG9w
dGlvbnMgaXMgTm9uZToKKyAgICAgICAgICAgICMgZGVzaXJlZF9jYXBhYmlsaXRpZXMgc3RheXMg
YXMgcGFzc2VkIGluCisgICAgICAgICAgICBpZiBkZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBOb25l
OgorICAgICAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzID0gc2VsZi5jcmVhdGVfb3B0
aW9ucygpLnRvX2NhcGFiaWxpdGllcygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBk
ZXNpcmVkX2NhcGFiaWxpdGllcyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGRlc2lyZWRfY2Fw
YWJpbGl0aWVzID0gb3B0aW9ucy50b19jYXBhYmlsaXRpZXMoKQorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcy51cGRhdGUob3B0aW9ucy50b19j
YXBhYmlsaXRpZXMoKSkKKworICAgICAgICBzZWxmLnNlcnZpY2UgPSBTZXJ2aWNlKAorICAgICAg
ICAgICAgZXhlY3V0YWJsZV9wYXRoLAorICAgICAgICAgICAgcG9ydD1wb3J0LAorICAgICAgICAg
ICAgc2VydmljZV9hcmdzPXNlcnZpY2VfYXJncywKKyAgICAgICAgICAgIGxvZ19wYXRoPXNlcnZp
Y2VfbG9nX3BhdGgpCisgICAgICAgIHNlbGYuc2VydmljZS5zdGFydCgpCisKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgUmVtb3RlV2ViRHJpdmVyLl9faW5pdF9fKAorICAgICAgICAgICAgICAg
IHNlbGYsCisgICAgICAgICAgICAgICAgY29tbWFuZF9leGVjdXRvcj1DaHJvbWVSZW1vdGVDb25u
ZWN0aW9uKAorICAgICAgICAgICAgICAgICAgICByZW1vdGVfc2VydmVyX2FkZHI9c2VsZi5zZXJ2
aWNlLnNlcnZpY2VfdXJsKSwKKyAgICAgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1k
ZXNpcmVkX2NhcGFiaWxpdGllcykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg
ICAgIHNlbGYucXVpdCgpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBzZWxmLl9pc19yZW1v
dGUgPSBGYWxzZQorCisgICAgZGVmIGxhdW5jaF9hcHAoc2VsZiwgaWQpOgorICAgICAgICAiIiJM
YXVuY2hlcyBDaHJvbWUgYXBwIHNwZWNpZmllZCBieSBpZC4iIiIKKyAgICAgICAgcmV0dXJuIHNl
bGYuZXhlY3V0ZSgibGF1bmNoQXBwIiwgeydpZCc6IGlkfSkKKworICAgIGRlZiBnZXRfbmV0d29y
a19jb25kaXRpb25zKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyBDaHJvbWUgbmV0
d29yayBlbXVsYXRpb24gc2V0dGluZ3MuCisKKyAgICAgICAgOlJldHVybnM6CisgICAgICAgICAg
ICBBIGRpY3QuIEZvciBleGFtcGxlOgorCisgICAgICAgICAgICB7J2xhdGVuY3knOiA0LCAnZG93
bmxvYWRfdGhyb3VnaHB1dCc6IDIsICd1cGxvYWRfdGhyb3VnaHB1dCc6IDIsCisgICAgICAgICAg
ICAnb2ZmbGluZSc6IEZhbHNlfQorCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5l
eGVjdXRlKCJnZXROZXR3b3JrQ29uZGl0aW9ucyIpWyd2YWx1ZSddCisKKyAgICBkZWYgc2V0X25l
dHdvcmtfY29uZGl0aW9ucyhzZWxmLCAqKm5ldHdvcmtfY29uZGl0aW9ucyk6CisgICAgICAgICIi
IgorICAgICAgICBTZXRzIENocm9tZSBuZXR3b3JrIGVtdWxhdGlvbiBzZXR0aW5ncy4KKworICAg
ICAgICA6QXJnczoKKyAgICAgICAgIC0gbmV0d29ya19jb25kaXRpb25zOiBBIGRpY3Qgd2l0aCBj
b25kaXRpb25zIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAg
ZHJpdmVyLnNldF9uZXR3b3JrX2NvbmRpdGlvbnMoCisgICAgICAgICAgICAgICAgb2ZmbGluZT1G
YWxzZSwKKyAgICAgICAgICAgICAgICBsYXRlbmN5PTUsICAjIGFkZGl0aW9uYWwgbGF0ZW5jeSAo
bXMpCisgICAgICAgICAgICAgICAgZG93bmxvYWRfdGhyb3VnaHB1dD01MDAgKiAxMDI0LCAgIyBt
YXhpbWFsIHRocm91Z2hwdXQKKyAgICAgICAgICAgICAgICB1cGxvYWRfdGhyb3VnaHB1dD01MDAg
KiAxMDI0KSAgIyBtYXhpbWFsIHRocm91Z2hwdXQKKworICAgICAgICAgICAgTm90ZTogJ3Rocm91
Z2hwdXQnIGNhbiBiZSB1c2VkIHRvIHNldCBib3RoIChmb3IgZG93bmxvYWQgYW5kIHVwbG9hZCku
CisgICAgICAgICIiIgorICAgICAgICBzZWxmLmV4ZWN1dGUoInNldE5ldHdvcmtDb25kaXRpb25z
IiwgeworICAgICAgICAgICAgJ25ldHdvcmtfY29uZGl0aW9ucyc6IG5ldHdvcmtfY29uZGl0aW9u
cworICAgICAgICB9KQorCisgICAgZGVmIHF1aXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBDbG9zZXMgdGhlIGJyb3dzZXIgYW5kIHNodXRzIGRvd24gdGhlIENocm9tZURyaXZlciBleGVj
dXRhYmxlCisgICAgICAgIHRoYXQgaXMgc3RhcnRlZCB3aGVuIHN0YXJ0aW5nIHRoZSBDaHJvbWVE
cml2ZXIKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFJlbW90ZVdlYkRy
aXZlci5xdWl0KHNlbGYpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAj
IFdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIG1lc3NhZ2UgYmVjYXVzZSBzb21ldGhpbmcgcHJvYmFi
bHkgaGFzIGdvbmUgd3JvbmcKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIHNlbGYuc2VydmljZS5zdG9wKCkKKworICAgIGRlZiBjcmVhdGVfb3B0aW9ucyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIE9wdGlvbnMoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9fX2luaXRf
Xy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9fX2luaXRfXy5weQpA
QCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNl
cnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdy
ZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdv
cmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25l
cnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4g
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJ
UyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwor
IyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9uX2NoYWlucy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vYWN0aW9uX2NoYWlucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMTlkNGFjMWVmNGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbl9jaGFpbnMu
cHkKQEAgLTAsMCArMSwzNzggQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiIKK1RoZSBBY3Rpb25DaGFpbnMgaW1wbGVt
ZW50YXRpb24sCisiIiIKKworaW1wb3J0IHRpbWUKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
cmVtb3RlLmNvbW1hbmQgaW1wb3J0IENvbW1hbmQKKworZnJvbSAudXRpbHMgaW1wb3J0IGtleXNf
dG9fdHlwaW5nCitmcm9tIC5hY3Rpb25zLmFjdGlvbl9idWlsZGVyIGltcG9ydCBBY3Rpb25CdWls
ZGVyCisKKworY2xhc3MgQWN0aW9uQ2hhaW5zKG9iamVjdCk6CisgICAgIiIiCisgICAgQWN0aW9u
Q2hhaW5zIGFyZSBhIHdheSB0byBhdXRvbWF0ZSBsb3cgbGV2ZWwgaW50ZXJhY3Rpb25zIHN1Y2gg
YXMKKyAgICBtb3VzZSBtb3ZlbWVudHMsIG1vdXNlIGJ1dHRvbiBhY3Rpb25zLCBrZXkgcHJlc3Ms
IGFuZCBjb250ZXh0IG1lbnUgaW50ZXJhY3Rpb25zLgorICAgIFRoaXMgaXMgdXNlZnVsIGZvciBk
b2luZyBtb3JlIGNvbXBsZXggYWN0aW9ucyBsaWtlIGhvdmVyIG92ZXIgYW5kIGRyYWcgYW5kIGRy
b3AuCisKKyAgICBHZW5lcmF0ZSB1c2VyIGFjdGlvbnMuCisgICAgICAgV2hlbiB5b3UgY2FsbCBt
ZXRob2RzIGZvciBhY3Rpb25zIG9uIHRoZSBBY3Rpb25DaGFpbnMgb2JqZWN0LAorICAgICAgIHRo
ZSBhY3Rpb25zIGFyZSBzdG9yZWQgaW4gYSBxdWV1ZSBpbiB0aGUgQWN0aW9uQ2hhaW5zIG9iamVj
dC4KKyAgICAgICBXaGVuIHlvdSBjYWxsIHBlcmZvcm0oKSwgdGhlIGV2ZW50cyBhcmUgZmlyZWQg
aW4gdGhlIG9yZGVyIHRoZXkKKyAgICAgICBhcmUgcXVldWVkIHVwLgorCisgICAgQWN0aW9uQ2hh
aW5zIGNhbiBiZSB1c2VkIGluIGEgY2hhaW4gcGF0dGVybjo6CisKKyAgICAgICAgbWVudSA9IGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCIubmF2IikKKyAgICAgICAgaGlkZGVu
X3N1Ym1lbnUgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcigiLm5hdiAjc3Vi
bWVudTEiKQorCisgICAgICAgIEFjdGlvbkNoYWlucyhkcml2ZXIpLm1vdmVfdG9fZWxlbWVudCht
ZW51KS5jbGljayhoaWRkZW5fc3VibWVudSkucGVyZm9ybSgpCisKKyAgICBPciBhY3Rpb25zIGNh
biBiZSBxdWV1ZWQgdXAgb25lIGJ5IG9uZSwgdGhlbiBwZXJmb3JtZWQuOjoKKworICAgICAgICBt
ZW51ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3IoIi5uYXYiKQorICAgICAg
ICBoaWRkZW5fc3VibWVudSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCIu
bmF2ICNzdWJtZW51MSIpCisKKyAgICAgICAgYWN0aW9ucyA9IEFjdGlvbkNoYWlucyhkcml2ZXIp
CisgICAgICAgIGFjdGlvbnMubW92ZV90b19lbGVtZW50KG1lbnUpCisgICAgICAgIGFjdGlvbnMu
Y2xpY2soaGlkZGVuX3N1Ym1lbnUpCisgICAgICAgIGFjdGlvbnMucGVyZm9ybSgpCisKKyAgICBF
aXRoZXIgd2F5LCB0aGUgYWN0aW9ucyBhcmUgcGVyZm9ybWVkIGluIHRoZSBvcmRlciB0aGV5IGFy
ZSBjYWxsZWQsIG9uZSBhZnRlcgorICAgIGFub3RoZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSBuZXcg
QWN0aW9uQ2hhaW5zLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBkcml2ZXI6IFRoZSBX
ZWJEcml2ZXIgaW5zdGFuY2Ugd2hpY2ggcGVyZm9ybXMgdXNlciBhY3Rpb25zLgorICAgICAgICAi
IiIKKyAgICAgICAgc2VsZi5fZHJpdmVyID0gZHJpdmVyCisgICAgICAgIHNlbGYuX2FjdGlvbnMg
PSBbXQorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2VsZi53M2Nf
YWN0aW9ucyA9IEFjdGlvbkJ1aWxkZXIoZHJpdmVyKQorCisgICAgZGVmIHBlcmZvcm0oc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBQZXJmb3JtcyBhbGwgc3RvcmVkIGFjdGlvbnMuCisgICAg
ICAgICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2VsZi53
M2NfYWN0aW9ucy5wZXJmb3JtKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZvciBhY3Rp
b24gaW4gc2VsZi5fYWN0aW9uczoKKyAgICAgICAgICAgICAgICBhY3Rpb24oKQorCisgICAgZGVm
IHJlc2V0X2FjdGlvbnMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICAgICAgQ2xlYXJzIGFj
dGlvbnMgdGhhdCBhcmUgYWxyZWFkeSBzdG9yZWQgb24gdGhlIHJlbW90ZSBlbmQuCisgICAgICAg
ICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2VsZi5fZHJp
dmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfQ0xFQVJfQUNUSU9OUykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHNlbGYuX2FjdGlvbnMgPSBbXQorCisgICAgZGVmIGNsaWNrKHNlbGYsIG9uX2Vs
ZW1lbnQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBDbGlja3MgYW4gZWxlbWVudC4KKwor
ICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gb25fZWxlbWVudDogVGhlIGVsZW1lbnQgdG8gY2xp
Y2suCisgICAgICAgICAgIElmIE5vbmUsIGNsaWNrcyBvbiBjdXJyZW50IG1vdXNlIHBvc2l0aW9u
LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAg
IHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24uY2xpY2sob25fZWxlbWVudCkKKyAgICAg
ICAgICAgIHNlbGYudzNjX2FjdGlvbnMua2V5X2FjdGlvbi5wYXVzZSgpCisgICAgICAgICAgICBz
ZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgaWYgb25fZWxlbWVudDoKKyAgICAgICAgICAgICAgICBzZWxmLm1vdmVfdG9fZWxlbWVu
dChvbl9lbGVtZW50KQorICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBz
ZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv
bW1hbmQuQ0xJQ0ssIHsnYnV0dG9uJzogMH0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAg
ZGVmIGNsaWNrX2FuZF9ob2xkKHNlbGYsIG9uX2VsZW1lbnQ9Tm9uZSk6CisgICAgICAgICIiIgor
ICAgICAgICBIb2xkcyBkb3duIHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbiBvbiBhbiBlbGVtZW50Lgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBvbl9lbGVtZW50OiBUaGUgZWxlbWVudCB0byBt
b3VzZSBkb3duLgorICAgICAgICAgICBJZiBOb25lLCBjbGlja3Mgb24gY3VycmVudCBtb3VzZSBw
b3NpdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAg
ICAgICAgICBzZWxmLnczY19hY3Rpb25zLnBvaW50ZXJfYWN0aW9uLmNsaWNrX2FuZF9ob2xkKG9u
X2VsZW1lbnQpCisgICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2Uo
KQorICAgICAgICAgICAgaWYgb25fZWxlbWVudDoKKyAgICAgICAgICAgICAgICBzZWxmLnczY19h
Y3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg
b25fZWxlbWVudDoKKyAgICAgICAgICAgICAgICBzZWxmLm1vdmVfdG9fZWxlbWVudChvbl9lbGVt
ZW50KQorICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2
ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmQuTU9V
U0VfRE9XTiwge30pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGNvbnRleHRfY2xp
Y2soc2VsZiwgb25fZWxlbWVudD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFBlcmZvcm1z
IGEgY29udGV4dC1jbGljayAocmlnaHQgY2xpY2spIG9uIGFuIGVsZW1lbnQuCisKKyAgICAgICAg
OkFyZ3M6CisgICAgICAgICAtIG9uX2VsZW1lbnQ6IFRoZSBlbGVtZW50IHRvIGNvbnRleHQtY2xp
Y2suCisgICAgICAgICAgIElmIE5vbmUsIGNsaWNrcyBvbiBjdXJyZW50IG1vdXNlIHBvc2l0aW9u
LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAg
IHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24uY29udGV4dF9jbGljayhvbl9lbGVtZW50
KQorICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGlmIG9uX2VsZW1lbnQ6CisgICAgICAgICAgICAgICAgc2Vs
Zi5tb3ZlX3RvX2VsZW1lbnQob25fZWxlbWVudCkKKyAgICAgICAgICAgIHNlbGYuX2FjdGlvbnMu
YXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUoCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb21tYW5kLkNMSUNLLCB7J2J1dHRvbic6IDJ9KSkKKyAgICAgICAgcmV0
dXJuIHNlbGYKKworICAgIGRlZiBkb3VibGVfY2xpY2soc2VsZiwgb25fZWxlbWVudD1Ob25lKToK
KyAgICAgICAgIiIiCisgICAgICAgIERvdWJsZS1jbGlja3MgYW4gZWxlbWVudC4KKworICAgICAg
ICA6QXJnczoKKyAgICAgICAgIC0gb25fZWxlbWVudDogVGhlIGVsZW1lbnQgdG8gZG91YmxlLWNs
aWNrLgorICAgICAgICAgICBJZiBOb25lLCBjbGlja3Mgb24gY3VycmVudCBtb3VzZSBwb3NpdGlv
bi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAgICAgICAg
ICBzZWxmLnczY19hY3Rpb25zLnBvaW50ZXJfYWN0aW9uLmRvdWJsZV9jbGljayhvbl9lbGVtZW50
KQorICAgICAgICAgICAgZm9yIF8gaW4gcmFuZ2UoNCk6CisgICAgICAgICAgICAgICAgc2VsZi53
M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGlmIG9uX2VsZW1lbnQ6CisgICAgICAgICAgICAgICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQob25f
ZWxlbWVudCkKKyAgICAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5f
ZHJpdmVyLmV4ZWN1dGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5k
LkRPVUJMRV9DTElDSywge30pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGRyYWdf
YW5kX2Ryb3Aoc2VsZiwgc291cmNlLCB0YXJnZXQpOgorICAgICAgICAiIiIKKyAgICAgICAgSG9s
ZHMgZG93biB0aGUgbGVmdCBtb3VzZSBidXR0b24gb24gdGhlIHNvdXJjZSBlbGVtZW50LAorICAg
ICAgICAgICB0aGVuIG1vdmVzIHRvIHRoZSB0YXJnZXQgZWxlbWVudCBhbmQgcmVsZWFzZXMgdGhl
IG1vdXNlIGJ1dHRvbi4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gc291cmNlOiBUaGUg
ZWxlbWVudCB0byBtb3VzZSBkb3duLgorICAgICAgICAgLSB0YXJnZXQ6IFRoZSBlbGVtZW50IHRv
IG1vdXNlIHVwLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAg
ICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24uY2xpY2tfYW5kX2hvbGQo
c291cmNlKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1v
dmVfdG8odGFyZ2V0KSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLnJlbGVhc2UoKQorICAgICAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMyk6CisgICAgICAgICAg
ICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuY2xpY2tfYW5kX2hvbGQoc291cmNlKQorICAgICAgICAgICAgc2Vs
Zi5yZWxlYXNlKHRhcmdldCkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBkcmFnX2Fu
ZF9kcm9wX2J5X29mZnNldChzZWxmLCBzb3VyY2UsIHhvZmZzZXQsIHlvZmZzZXQpOgorICAgICAg
ICAiIiIKKyAgICAgICAgSG9sZHMgZG93biB0aGUgbGVmdCBtb3VzZSBidXR0b24gb24gdGhlIHNv
dXJjZSBlbGVtZW50LAorICAgICAgICAgICB0aGVuIG1vdmVzIHRvIHRoZSB0YXJnZXQgb2Zmc2V0
IGFuZCByZWxlYXNlcyB0aGUgbW91c2UgYnV0dG9uLgorCisgICAgICAgIDpBcmdzOgorICAgICAg
ICAgLSBzb3VyY2U6IFRoZSBlbGVtZW50IHRvIG1vdXNlIGRvd24uCisgICAgICAgICAtIHhvZmZz
ZXQ6IFggb2Zmc2V0IHRvIG1vdmUgdG8uCisgICAgICAgICAtIHlvZmZzZXQ6IFkgb2Zmc2V0IHRv
IG1vdmUgdG8uCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAg
ICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5jbGlja19hbmRfaG9sZChz
b3VyY2UpIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubW92
ZV90b19sb2NhdGlvbih4b2Zmc2V0LCB5b2Zmc2V0KSBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKQorICAgICAgICAgICAgZm9yIF8gaW4gcmFu
Z2UoMyk6CisgICAgICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNl
KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY2xpY2tfYW5kX2hvbGQoc291cmNl
KQorICAgICAgICAgICAgc2VsZi5tb3ZlX2J5X29mZnNldCh4b2Zmc2V0LCB5b2Zmc2V0KQorICAg
ICAgICAgICAgc2VsZi5yZWxlYXNlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBr
ZXlfZG93bihzZWxmLCB2YWx1ZSwgZWxlbWVudD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAg
IFNlbmRzIGEga2V5IHByZXNzIG9ubHksIHdpdGhvdXQgcmVsZWFzaW5nIGl0LgorICAgICAgICAg
ICBTaG91bGQgb25seSBiZSB1c2VkIHdpdGggbW9kaWZpZXIga2V5cyAoQ29udHJvbCwgQWx0IGFu
ZCBTaGlmdCkuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBUaGUgbW9kaWZp
ZXIga2V5IHRvIHNlbmQuIFZhbHVlcyBhcmUgZGVmaW5lZCBpbiBgS2V5c2AgY2xhc3MuCisgICAg
ICAgICAtIGVsZW1lbnQ6IFRoZSBlbGVtZW50IHRvIHNlbmQga2V5cy4KKyAgICAgICAgICAgSWYg
Tm9uZSwgc2VuZHMgYSBrZXkgdG8gY3VycmVudCBmb2N1c2VkIGVsZW1lbnQuCisKKyAgICAgICAg
RXhhbXBsZSwgcHJlc3NpbmcgY3RybCtjOjoKKworICAgICAgICAgICAgQWN0aW9uQ2hhaW5zKGRy
aXZlcikua2V5X2Rvd24oS2V5cy5DT05UUk9MKS5zZW5kX2tleXMoJ2MnKS5rZXlfdXAoS2V5cy5D
T05UUk9MKS5wZXJmb3JtKCkKKworICAgICAgICAiIiIKKyAgICAgICAgaWYgZWxlbWVudDoKKyAg
ICAgICAgICAgIHNlbGYuY2xpY2soZWxlbWVudCkKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLncz
YzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMua2V5X2FjdGlvbi5rZXlfZG93bih2YWx1
ZSkKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24ucGF1c2UoKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBz
ZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZU19U
T19BQ1RJVkVfRUxFTUVOVCwKKyAgICAgICAgICAgICAgICB7InZhbHVlIjoga2V5c190b190eXBp
bmcodmFsdWUpfSkpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYga2V5X3VwKHNlbGYs
IHZhbHVlLCBlbGVtZW50PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVsZWFzZXMgYSBt
b2RpZmllciBrZXkuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBUaGUgbW9k
aWZpZXIga2V5IHRvIHNlbmQuIFZhbHVlcyBhcmUgZGVmaW5lZCBpbiBLZXlzIGNsYXNzLgorICAg
ICAgICAgLSBlbGVtZW50OiBUaGUgZWxlbWVudCB0byBzZW5kIGtleXMuCisgICAgICAgICAgIElm
IE5vbmUsIHNlbmRzIGEga2V5IHRvIGN1cnJlbnQgZm9jdXNlZCBlbGVtZW50LgorCisgICAgICAg
IEV4YW1wbGUsIHByZXNzaW5nIGN0cmwrYzo6CisKKyAgICAgICAgICAgIEFjdGlvbkNoYWlucyhk
cml2ZXIpLmtleV9kb3duKEtleXMuQ09OVFJPTCkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMu
Q09OVFJPTCkucGVyZm9ybSgpCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGVsZW1lbnQ6Cisg
ICAgICAgICAgICBzZWxmLmNsaWNrKGVsZW1lbnQpCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53
M2M6CisgICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ua2V5X3VwKHZhbHVl
KQorICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5wYXVzZSgpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1iZGE6IHNl
bGYuX2RyaXZlci5leGVjdXRlKAorICAgICAgICAgICAgICAgIENvbW1hbmQuU0VORF9LRVlTX1RP
X0FDVElWRV9FTEVNRU5ULAorICAgICAgICAgICAgICAgIHsidmFsdWUiOiBrZXlzX3RvX3R5cGlu
Zyh2YWx1ZSl9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBtb3ZlX2J5X29mZnNl
dChzZWxmLCB4b2Zmc2V0LCB5b2Zmc2V0KToKKyAgICAgICAgIiIiCisgICAgICAgIE1vdmluZyB0
aGUgbW91c2UgdG8gYW4gb2Zmc2V0IGZyb20gY3VycmVudCBtb3VzZSBwb3NpdGlvbi4KKworICAg
ICAgICA6QXJnczoKKyAgICAgICAgIC0geG9mZnNldDogWCBvZmZzZXQgdG8gbW92ZSB0bywgYXMg
YSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBpbnRlZ2VyLgorICAgICAgICAgLSB5b2Zmc2V0OiBZIG9m
ZnNldCB0byBtb3ZlIHRvLCBhcyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXIuCisgICAg
ICAgICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2VsZi53
M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5tb3ZlX2J5KHhvZmZzZXQsIHlvZmZzZXQpCisgICAg
ICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIu
ZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICBDb21tYW5kLk1PVkVfVE8sIHsKKyAgICAgICAgICAg
ICAgICAgICAgJ3hvZmZzZXQnOiBpbnQoeG9mZnNldCksCisgICAgICAgICAgICAgICAgICAgICd5
b2Zmc2V0JzogaW50KHlvZmZzZXQpfSkpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYg
bW92ZV90b19lbGVtZW50KHNlbGYsIHRvX2VsZW1lbnQpOgorICAgICAgICAiIiIKKyAgICAgICAg
TW92aW5nIHRoZSBtb3VzZSB0byB0aGUgbWlkZGxlIG9mIGFuIGVsZW1lbnQuCisKKyAgICAgICAg
OkFyZ3M6CisgICAgICAgICAtIHRvX2VsZW1lbnQ6IFRoZSBXZWJFbGVtZW50IHRvIG1vdmUgdG8u
CisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAg
c2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5tb3ZlX3RvKHRvX2VsZW1lbnQpCisgICAg
ICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIu
ZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmQuTU9WRV9U
TywgeydlbGVtZW50JzogdG9fZWxlbWVudC5pZH0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisg
ICAgZGVmIG1vdmVfdG9fZWxlbWVudF93aXRoX29mZnNldChzZWxmLCB0b19lbGVtZW50LCB4b2Zm
c2V0LCB5b2Zmc2V0KToKKyAgICAgICAgIiIiCisgICAgICAgIE1vdmUgdGhlIG1vdXNlIGJ5IGFu
IG9mZnNldCBvZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuCisgICAgICAgICAgIE9mZnNldHMgYXJl
IHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGVsZW1lbnQuCisKKyAgICAg
ICAgOkFyZ3M6CisgICAgICAgICAtIHRvX2VsZW1lbnQ6IFRoZSBXZWJFbGVtZW50IHRvIG1vdmUg
dG8uCisgICAgICAgICAtIHhvZmZzZXQ6IFggb2Zmc2V0IHRvIG1vdmUgdG8uCisgICAgICAgICAt
IHlvZmZzZXQ6IFkgb2Zmc2V0IHRvIG1vdmUgdG8uCisgICAgICAgICIiIgorICAgICAgICBpZiBz
ZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5wb2ludGVyX2Fj
dGlvbi5tb3ZlX3RvKHRvX2VsZW1lbnQsIHhvZmZzZXQsIHlvZmZzZXQpCisgICAgICAgICAgICBz
ZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoCisgICAgICAgICAgICAgICAgbGFtYmRhOiBzZWxm
Ll9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLk1PVkVfVE8sIHsKKyAgICAgICAgICAgICAgICAgICAg
J2VsZW1lbnQnOiB0b19lbGVtZW50LmlkLAorICAgICAgICAgICAgICAgICAgICAneG9mZnNldCc6
IGludCh4b2Zmc2V0KSwKKyAgICAgICAgICAgICAgICAgICAgJ3lvZmZzZXQnOiBpbnQoeW9mZnNl
dCl9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBwYXVzZShzZWxmLCBzZWNvbmRz
KToKKyAgICAgICAgIiIiIFBhdXNlIGFsbCBpbnB1dHMgZm9yIHRoZSBzcGVjaWZpZWQgZHVyYXRp
b24gaW4gc2Vjb25kcyAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAg
ICAgIHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24ucGF1c2Uoc2Vjb25kcykKKyAgICAg
ICAgICAgIHNlbGYudzNjX2FjdGlvbnMua2V5X2FjdGlvbi5wYXVzZShzZWNvbmRzKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiB0aW1lLnNs
ZWVwKHNlY29uZHMpKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHJlbGVhc2Uoc2Vs
Ziwgb25fZWxlbWVudD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlbGVhc2luZyBhIGhl
bGQgbW91c2UgYnV0dG9uIG9uIGFuIGVsZW1lbnQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAg
ICAtIG9uX2VsZW1lbnQ6IFRoZSBlbGVtZW50IHRvIG1vdXNlIHVwLgorICAgICAgICAgICBJZiBO
b25lLCByZWxlYXNlcyBvbiBjdXJyZW50IG1vdXNlIHBvc2l0aW9uLgorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMu
cG9pbnRlcl9hY3Rpb24ucmVsZWFzZSgpCisgICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtl
eV9hY3Rpb24ucGF1c2UoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgb25fZWxlbWVu
dDoKKyAgICAgICAgICAgICAgICBzZWxmLm1vdmVfdG9fZWxlbWVudChvbl9lbGVtZW50KQorICAg
ICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0
ZShDb21tYW5kLk1PVVNFX1VQLCB7fSkpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYg
c2VuZF9rZXlzKHNlbGYsICprZXlzX3RvX3NlbmQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2Vu
ZHMga2V5cyB0byBjdXJyZW50IGZvY3VzZWQgZWxlbWVudC4KKworICAgICAgICA6QXJnczoKKyAg
ICAgICAgIC0ga2V5c190b19zZW5kOiBUaGUga2V5cyB0byBzZW5kLiAgTW9kaWZpZXIga2V5cyBj
b25zdGFudHMgY2FuIGJlIGZvdW5kIGluIHRoZQorICAgICAgICAgICAnS2V5cycgY2xhc3MuCisg
ICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2Vs
Zi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnNlbmRfa2V5cyhrZXlzX3RvX3NlbmQpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1iZGE6IHNlbGYuX2Ry
aXZlci5leGVjdXRlKAorICAgICAgICAgICAgICAgIENvbW1hbmQuU0VORF9LRVlTX1RPX0FDVElW
RV9FTEVNRU5ULCB7J3ZhbHVlJzoga2V5c190b190eXBpbmcoa2V5c190b19zZW5kKX0pKQorICAg
ICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHNlbmRfa2V5c190b19lbGVtZW50KHNlbGYsIGVs
ZW1lbnQsICprZXlzX3RvX3NlbmQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2VuZHMga2V5cyB0
byBhbiBlbGVtZW50LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBlbGVtZW50OiBUaGUg
ZWxlbWVudCB0byBzZW5kIGtleXMuCisgICAgICAgICAtIGtleXNfdG9fc2VuZDogVGhlIGtleXMg
dG8gc2VuZC4gIE1vZGlmaWVyIGtleXMgY29uc3RhbnRzIGNhbiBiZSBmb3VuZCBpbiB0aGUKKyAg
ICAgICAgICAgJ0tleXMnIGNsYXNzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJp
dmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMua2V5X2FjdGlvbi5zZW5kX2tl
eXMoa2V5c190b19zZW5kLCBlbGVtZW50PWVsZW1lbnQpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1iZGE6IGVsZW1lbnQuc2VuZF9rZXlzKCprZXlz
X3RvX3NlbmQpKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgIyBDb250ZXh0IG1hbmFnZXIg
c28gQWN0aW9uQ2hhaW5zIGNhbiBiZSB1c2VkIGluIGEgJ3dpdGggLi4gYXMnIHN0YXRlbWVudHMu
CisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYgICMgUmV0dXJu
IGNyZWF0ZWQgaW5zdGFuY2Ugb2Ygc2VsZi4KKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBfdHlw
ZSwgX3ZhbHVlLCBfdHJhY2ViYWNrKToKKyAgICAgICAgcGFzcyAgIyBEbyBub3RoaW5nLCBkb2Vz
IG5vdCByZXF1aXJlIGFkZGl0aW9uYWwgY2xlYW51cC4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9u
cy9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2FjdGlvbnMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL2FjdGlvbnMvYWN0aW9uX2J1aWxkZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvYWN0aW9uX2J1
aWxkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE4YjJkZWU0
Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2FjdGlvbl9idWlsZGVyLnB5CkBA
IC0wLDAgKzEsODIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2Vy
dmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3Jl
ZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29y
ayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVy
c2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3Qg
dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAg
WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3
dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElT
IiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQs
IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisj
IHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUuY29t
bWFuZCBpbXBvcnQgQ29tbWFuZAorZnJvbSAuIGltcG9ydCBpbnRlcmFjdGlvbgorZnJvbSAua2V5
X2FjdGlvbnMgaW1wb3J0IEtleUFjdGlvbnMKK2Zyb20gLmtleV9pbnB1dCBpbXBvcnQgS2V5SW5w
dXQKK2Zyb20gLnBvaW50ZXJfYWN0aW9ucyBpbXBvcnQgUG9pbnRlckFjdGlvbnMKK2Zyb20gLnBv
aW50ZXJfaW5wdXQgaW1wb3J0IFBvaW50ZXJJbnB1dAorCisKK2NsYXNzIEFjdGlvbkJ1aWxkZXIo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZHJpdmVyLCBtb3VzZT1Ob25lLCBrZXli
b2FyZD1Ob25lKToKKyAgICAgICAgaWYgbW91c2UgaXMgTm9uZToKKyAgICAgICAgICAgIG1vdXNl
ID0gUG9pbnRlcklucHV0KGludGVyYWN0aW9uLlBPSU5URVIsICJtb3VzZSIpCisgICAgICAgIGlm
IGtleWJvYXJkIGlzIE5vbmU6CisgICAgICAgICAgICBrZXlib2FyZCA9IEtleUlucHV0KGludGVy
YWN0aW9uLktFWSkKKyAgICAgICAgc2VsZi5kZXZpY2VzID0gW21vdXNlLCBrZXlib2FyZF0KKyAg
ICAgICAgc2VsZi5fa2V5X2FjdGlvbiA9IEtleUFjdGlvbnMoa2V5Ym9hcmQpCisgICAgICAgIHNl
bGYuX3BvaW50ZXJfYWN0aW9uID0gUG9pbnRlckFjdGlvbnMobW91c2UpCisgICAgICAgIHNlbGYu
ZHJpdmVyID0gZHJpdmVyCisKKyAgICBkZWYgZ2V0X2RldmljZV93aXRoKHNlbGYsIG5hbWUpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBpZHggPSBzZWxmLmRldmljZXMuaW5kZXgobmFtZSkK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLmRldmljZXNbaWR4XQorICAgICAgICBleGNlcHQ6Cisg
ICAgICAgICAgICBwYXNzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcG9pbnRlcl9pbnB1dHMo
c2VsZik6CisgICAgICAgIHJldHVybiBbZGV2aWNlIGZvciBkZXZpY2UgaW4gc2VsZi5kZXZpY2Vz
IGlmIGRldmljZS50eXBlID09IGludGVyYWN0aW9uLlBPSU5URVJdCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYga2V5X2lucHV0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFtkZXZpY2UgZm9yIGRl
dmljZSBpbiBzZWxmLmRldmljZXMgaWYgZGV2aWNlLnR5cGUgPT0gaW50ZXJhY3Rpb24uS0VZXQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGtleV9hY3Rpb24oc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl9rZXlfYWN0aW9uCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcG9pbnRlcl9hY3Rp
b24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9wb2ludGVyX2FjdGlvbgorCisgICAgZGVm
IGFkZF9rZXlfaW5wdXQoc2VsZiwgbmFtZSk6CisgICAgICAgIG5ld19pbnB1dCA9IEtleUlucHV0
KG5hbWUpCisgICAgICAgIHNlbGYuX2FkZF9pbnB1dChuZXdfaW5wdXQpCisgICAgICAgIHJldHVy
biBuZXdfaW5wdXQKKworICAgIGRlZiBhZGRfcG9pbnRlcl9pbnB1dChzZWxmLCB0eXBlXywgbmFt
ZSk6CisgICAgICAgIG5ld19pbnB1dCA9IFBvaW50ZXJJbnB1dCh0eXBlXywgbmFtZSkKKyAgICAg
ICAgc2VsZi5fYWRkX2lucHV0KG5ld19pbnB1dCkKKyAgICAgICAgcmV0dXJuIG5ld19pbnB1dAor
CisgICAgZGVmIHBlcmZvcm0oc2VsZik6CisgICAgICAgIGVuYyA9IHsiYWN0aW9ucyI6IFtdfQor
ICAgICAgICBmb3IgZGV2aWNlIGluIHNlbGYuZGV2aWNlczoKKyAgICAgICAgICAgIGVuY29kZWQg
PSBkZXZpY2UuZW5jb2RlKCkKKyAgICAgICAgICAgIGlmIGVuY29kZWRbJ2FjdGlvbnMnXToKKyAg
ICAgICAgICAgICAgICBlbmNbImFjdGlvbnMiXS5hcHBlbmQoZW5jb2RlZCkKKyAgICAgICAgc2Vs
Zi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlczQ19BQ1RJT05TLCBlbmMpCisKKyAgICBkZWYgY2xl
YXJfYWN0aW9ucyhzZWxmKToKKyAgICAgICAgc2VsZi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlcz
Q19DTEVBUl9BQ1RJT05TKQorCisgICAgZGVmIF9hZGRfaW5wdXQoc2VsZiwgaW5wdXQpOgorICAg
ICAgICBzZWxmLmRldmljZXMuYXBwZW5kKGlucHV0KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25z
L2lucHV0X2RldmljZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9pbnB1dF9kZXZpY2UucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk4NGVmMzEwMDlmCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9hY3Rpb25zL2lucHV0X2RldmljZS5weQpAQCAtMCwwICsxLDQzIEBACisjIExp
Y2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9u
ZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9U
SUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5m
b3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vu
c2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0
IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29w
eSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl
cy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3Ig
YWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM
aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FS
UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp
bXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4K
KworaW1wb3J0IHV1aWQKKworCitjbGFzcyBJbnB1dERldmljZShvYmplY3QpOgorICAgICIiIgor
ICAgICAgICBEZXNjcmliZXMgdGhlIGlucHV0IGRldmljZSBiZWluZyB1c2VkIGZvciB0aGUgYWN0
aW9uLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lPU5vbmUpOgorICAgICAg
ICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLm5hbWUgPSB1dWlkLnV1aWQ0KCkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgICAgICBz
ZWxmLmFjdGlvbnMgPSBbXQorCisgICAgZGVmIGFkZF9hY3Rpb24oc2VsZiwgYWN0aW9uKToKKyAg
ICAgICAgIiIiCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuYWN0aW9ucy5hcHBlbmQoYWN0
aW9uKQorCisgICAgZGVmIGNsZWFyX2FjdGlvbnMoc2VsZik6CisgICAgICAgIHNlbGYuYWN0aW9u
cyA9IFtdCisKKyAgICBkZWYgY3JlYXRlX3BhdXNlKHNlbGYsIGR1cmF0b249MCk6CisgICAgICAg
IHBhc3MKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9pbnRlcmFjdGlvbi5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0
aW9ucy9pbnRlcmFjdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uM2M4MDg5NDFjMmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvaW50ZXJhY3Rp
b24ucHkKQEAgLTAsMCArMSw0MyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworS0VZID0gImtleSIKK1BPSU5URVIgPSAi
cG9pbnRlciIKK05PTkUgPSAibm9uZSIKK1NPVVJDRV9UWVBFUyA9IHNldChbS0VZLCBQT0lOVEVS
LCBOT05FXSkKKworCitjbGFzcyBJbnRlcmFjdGlvbihvYmplY3QpOgorCisgICAgUEFVU0UgPSAi
cGF1c2UiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlKToKKyAgICAgICAgc2VsZi5z
b3VyY2UgPSBzb3VyY2UKKworCitjbGFzcyBQYXVzZShJbnRlcmFjdGlvbik6CisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgc291cmNlLCBkdXJhdGlvbj0wKToKKyAgICAgICAgc3VwZXIoSW50ZXJh
Y3Rpb24sIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5zb3VyY2UgPSBzb3VyY2UKKyAg
ICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9uCisKKyAgICBkZWYgZW5jb2RlKHNlbGYpOgor
ICAgICAgICBvdXRwdXQgPSB7InR5cGUiOiBzZWxmLlBBVVNFfQorICAgICAgICBvdXRwdXRbImR1
cmF0aW9uIl0gPSBzZWxmLmR1cmF0aW9uICogMTAwMAorICAgICAgICByZXR1cm4gb3V0cHV0CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMva2V5X2FjdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMva2V5
X2FjdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYwYzc0
OTI4MzgzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2tleV9hY3Rpb25zLnB5CkBA
IC0wLDAgKzEsNTIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2Vy
dmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3Jl
ZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29y
ayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVy
c2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3Qg
dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAg
WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3
dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElT
IiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQs
IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisj
IHVuZGVyIHRoZSBMaWNlbnNlLgorZnJvbSAuaW50ZXJhY3Rpb24gaW1wb3J0IEludGVyYWN0aW9u
Citmcm9tIC5rZXlfaW5wdXQgaW1wb3J0IEtleUlucHV0Citmcm9tIC4udXRpbHMgaW1wb3J0IGtl
eXNfdG9fdHlwaW5nCisKKworY2xhc3MgS2V5QWN0aW9ucyhJbnRlcmFjdGlvbik6CisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgc291cmNlPU5vbmUpOgorICAgICAgICBpZiBzb3VyY2UgaXMgTm9u
ZToKKyAgICAgICAgICAgIHNvdXJjZSA9IEtleUlucHV0KCkKKyAgICAgICAgc2VsZi5zb3VyY2Ug
PSBzb3VyY2UKKyAgICAgICAgc3VwZXIoS2V5QWN0aW9ucywgc2VsZikuX19pbml0X18oc291cmNl
KQorCisgICAgZGVmIGtleV9kb3duKHNlbGYsIGxldHRlciwgZWxlbWVudD1Ob25lKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2tleV9hY3Rpb24oImNyZWF0ZV9rZXlfZG93biIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldHRlciwgZWxlbWVudCkKKworICAgIGRlZiBrZXlfdXAo
c2VsZiwgbGV0dGVyLCBlbGVtZW50PU5vbmUpOgorICAgICAgICByZXR1cm4gc2VsZi5fa2V5X2Fj
dGlvbigiY3JlYXRlX2tleV91cCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dHRlciwgZWxlbWVudCkKKworICAgIGRlZiBwYXVzZShzZWxmLCBkdXJhdGlvbj0wKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2tleV9hY3Rpb24oImNyZWF0ZV9wYXVzZSIsIGR1cmF0aW9uKQorCisg
ICAgZGVmIHNlbmRfa2V5cyhzZWxmLCB0ZXh0LCBlbGVtZW50PU5vbmUpOgorICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZSh0ZXh0LCBsaXN0KToKKyAgICAgICAgICAgIHRleHQgPSBrZXlzX3RvX3R5
cGluZyh0ZXh0KQorICAgICAgICBmb3IgbGV0dGVyIGluIHRleHQ6CisgICAgICAgICAgICBzZWxm
LmtleV9kb3duKGxldHRlciwgZWxlbWVudCkKKyAgICAgICAgICAgIHNlbGYua2V5X3VwKGxldHRl
ciwgZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfa2V5X2FjdGlvbihz
ZWxmLCBhY3Rpb24sIGxldHRlciwgZWxlbWVudD1Ob25lKToKKyAgICAgICAgbWV0aCA9IGdldGF0
dHIoc2VsZi5zb3VyY2UsIGFjdGlvbikKKyAgICAgICAgbWV0aChsZXR0ZXIpCisgICAgICAgIHJl
dHVybiBzZWxmCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMva2V5X2lucHV0LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9h
Y3Rpb25zL2tleV9pbnB1dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uZjM5MmM2YmM2ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMva2V5X2lucHV0
LnB5CkBAIC0wLDAgKzEsNTEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorZnJvbSAuIGltcG9ydCBpbnRlcmFjdGlvbgorCitm
cm9tIC5pbnB1dF9kZXZpY2UgaW1wb3J0IElucHV0RGV2aWNlCitmcm9tIC5pbnRlcmFjdGlvbiBp
bXBvcnQgKEludGVyYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQYXVzZSkKKwor
CitjbGFzcyBLZXlJbnB1dChJbnB1dERldmljZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUpOgorICAgICAgICBzdXBlcihLZXlJbnB1dCwgc2VsZikuX19pbml0X18oKQorICAgICAgICBz
ZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYudHlwZSA9IGludGVyYWN0aW9uLktFWQorCisg
ICAgZGVmIGVuY29kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHsidHlwZSI6IHNlbGYudHlwZSwg
ImlkIjogc2VsZi5uYW1lLCAiYWN0aW9ucyI6IFthY3RzLmVuY29kZSgpIGZvciBhY3RzIGluIHNl
bGYuYWN0aW9uc119CisKKyAgICBkZWYgY3JlYXRlX2tleV9kb3duKHNlbGYsIGtleSk6CisgICAg
ICAgIHNlbGYuYWRkX2FjdGlvbihUeXBpbmdJbnRlcmFjdGlvbihzZWxmLCAia2V5RG93biIsIGtl
eSkpCisKKyAgICBkZWYgY3JlYXRlX2tleV91cChzZWxmLCBrZXkpOgorICAgICAgICBzZWxmLmFk
ZF9hY3Rpb24oVHlwaW5nSW50ZXJhY3Rpb24oc2VsZiwgImtleVVwIiwga2V5KSkKKworICAgIGRl
ZiBjcmVhdGVfcGF1c2Uoc2VsZiwgcGF1c2VfZHVyYXRpb249MCk6CisgICAgICAgIHNlbGYuYWRk
X2FjdGlvbihQYXVzZShzZWxmLCBwYXVzZV9kdXJhdGlvbikpCisKKworY2xhc3MgVHlwaW5nSW50
ZXJhY3Rpb24oSW50ZXJhY3Rpb24pOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZSwg
dHlwZV8sIGtleSk6CisgICAgICAgIHN1cGVyKFR5cGluZ0ludGVyYWN0aW9uLCBzZWxmKS5fX2lu
aXRfXyhzb3VyY2UpCisgICAgICAgIHNlbGYudHlwZSA9IHR5cGVfCisgICAgICAgIHNlbGYua2V5
ID0ga2V5CisKKyAgICBkZWYgZW5jb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4geyJ0eXBlIjog
c2VsZi50eXBlLCAidmFsdWUiOiBzZWxmLmtleX0KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9t
b3VzZV9idXR0b24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvbW91c2VfYnV0dG9uLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MjYxZmQ4MjE4NgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vYWN0aW9ucy9tb3VzZV9idXR0b24ucHkKQEAgLTAsMCArMSw1IEBACitjbGFzcyBN
b3VzZUJ1dHRvbihvYmplY3QpOgorCisgICAgTEVGVCA9IDAKKyAgICBNSURETEUgPSAxCisgICAg
UklHSFQgPSAyCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvcG9pbnRlcl9hY3Rpb25zLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9hY3Rpb25zL3BvaW50ZXJfYWN0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZDNjYTE5YmU2OWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlv
bnMvcG9pbnRlcl9hY3Rpb25zLnB5CkBAIC0wLDAgKzEsMTAwIEBACisjIExpY2Vuc2VkIHRvIHRo
ZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3Jl
IGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMg
ZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMg
cmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmls
ZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisj
ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KK2Zyb20gLiBpbXBv
cnQgaW50ZXJhY3Rpb24KKworZnJvbSAuaW50ZXJhY3Rpb24gaW1wb3J0IEludGVyYWN0aW9uCitm
cm9tIC5tb3VzZV9idXR0b24gaW1wb3J0IE1vdXNlQnV0dG9uCitmcm9tIC5wb2ludGVyX2lucHV0
IGltcG9ydCBQb2ludGVySW5wdXQKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndl
YmVsZW1lbnQgaW1wb3J0IFdlYkVsZW1lbnQKKworCitjbGFzcyBQb2ludGVyQWN0aW9ucyhJbnRl
cmFjdGlvbik6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlPU5vbmUpOgorICAgICAg
ICBpZiBzb3VyY2UgaXMgTm9uZToKKyAgICAgICAgICAgIHNvdXJjZSA9IFBvaW50ZXJJbnB1dChp
bnRlcmFjdGlvbi5QT0lOVEVSLCAibW91c2UiKQorICAgICAgICBzZWxmLnNvdXJjZSA9IHNvdXJj
ZQorICAgICAgICBzdXBlcihQb2ludGVyQWN0aW9ucywgc2VsZikuX19pbml0X18oc291cmNlKQor
CisgICAgZGVmIHBvaW50ZXJfZG93bihzZWxmLCBidXR0b249TW91c2VCdXR0b24uTEVGVCk6Cisg
ICAgICAgIHNlbGYuX2J1dHRvbl9hY3Rpb24oImNyZWF0ZV9wb2ludGVyX2Rvd24iLCBidXR0b249
YnV0dG9uKQorCisgICAgZGVmIHBvaW50ZXJfdXAoc2VsZiwgYnV0dG9uPU1vdXNlQnV0dG9uLkxF
RlQpOgorICAgICAgICBzZWxmLl9idXR0b25fYWN0aW9uKCJjcmVhdGVfcG9pbnRlcl91cCIsIGJ1
dHRvbj1idXR0b24pCisKKyAgICBkZWYgbW92ZV90byhzZWxmLCBlbGVtZW50LCB4PU5vbmUsIHk9
Tm9uZSk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGVsZW1lbnQsIFdlYkVsZW1lbnQpOgor
ICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIm1vdmVfdG8gcmVxdWlyZXMgYSBXZWJF
bGVtZW50IikKKyAgICAgICAgaWYgeCBpcyBub3QgTm9uZSBvciB5IGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgZWxfcmVjdCA9IGVsZW1lbnQucmVjdAorICAgICAgICAgICAgbGVmdF9vZmZzZXQg
PSBlbF9yZWN0Wyd3aWR0aCddIC8gMgorICAgICAgICAgICAgdG9wX29mZnNldCA9IGVsX3JlY3Rb
J2hlaWdodCddIC8gMgorICAgICAgICAgICAgbGVmdCA9IC1sZWZ0X29mZnNldCArICh4IG9yIDAp
CisgICAgICAgICAgICB0b3AgPSAtdG9wX29mZnNldCArICh5IG9yIDApCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBsZWZ0ID0gMAorICAgICAgICAgICAgdG9wID0gMAorICAgICAgICBzZWxm
LnNvdXJjZS5jcmVhdGVfcG9pbnRlcl9tb3ZlKG9yaWdpbj1lbGVtZW50LCB4PWludChsZWZ0KSwg
eT1pbnQodG9wKSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBtb3ZlX2J5KHNlbGYs
IHgsIHkpOgorICAgICAgICBzZWxmLnNvdXJjZS5jcmVhdGVfcG9pbnRlcl9tb3ZlKG9yaWdpbj1p
bnRlcmFjdGlvbi5QT0lOVEVSLCB4PWludCh4KSwgeT1pbnQoeSkpCisgICAgICAgIHJldHVybiBz
ZWxmCisKKyAgICBkZWYgbW92ZV90b19sb2NhdGlvbihzZWxmLCB4LCB5KToKKyAgICAgICAgc2Vs
Zi5zb3VyY2UuY3JlYXRlX3BvaW50ZXJfbW92ZShvcmlnaW49J3ZpZXdwb3J0JywgeD1pbnQoeCks
IHk9aW50KHkpKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGNsaWNrKHNlbGYsIGVs
ZW1lbnQ9Tm9uZSk6CisgICAgICAgIGlmIGVsZW1lbnQ6CisgICAgICAgICAgICBzZWxmLm1vdmVf
dG8oZWxlbWVudCkKKyAgICAgICAgc2VsZi5wb2ludGVyX2Rvd24oTW91c2VCdXR0b24uTEVGVCkK
KyAgICAgICAgc2VsZi5wb2ludGVyX3VwKE1vdXNlQnV0dG9uLkxFRlQpCisgICAgICAgIHJldHVy
biBzZWxmCisKKyAgICBkZWYgY29udGV4dF9jbGljayhzZWxmLCBlbGVtZW50PU5vbmUpOgorICAg
ICAgICBpZiBlbGVtZW50OgorICAgICAgICAgICAgc2VsZi5tb3ZlX3RvKGVsZW1lbnQpCisgICAg
ICAgIHNlbGYucG9pbnRlcl9kb3duKE1vdXNlQnV0dG9uLlJJR0hUKQorICAgICAgICBzZWxmLnBv
aW50ZXJfdXAoTW91c2VCdXR0b24uUklHSFQpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBk
ZWYgY2xpY2tfYW5kX2hvbGQoc2VsZiwgZWxlbWVudD1Ob25lKToKKyAgICAgICAgaWYgZWxlbWVu
dDoKKyAgICAgICAgICAgIHNlbGYubW92ZV90byhlbGVtZW50KQorICAgICAgICBzZWxmLnBvaW50
ZXJfZG93bigpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgcmVsZWFzZShzZWxmKToK
KyAgICAgICAgc2VsZi5wb2ludGVyX3VwKCkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRl
ZiBkb3VibGVfY2xpY2soc2VsZiwgZWxlbWVudD1Ob25lKToKKyAgICAgICAgaWYgZWxlbWVudDoK
KyAgICAgICAgICAgIHNlbGYubW92ZV90byhlbGVtZW50KQorICAgICAgICBzZWxmLmNsaWNrKCkK
KyAgICAgICAgc2VsZi5jbGljaygpCisKKyAgICBkZWYgcGF1c2Uoc2VsZiwgZHVyYXRpb249MCk6
CisgICAgICAgIHNlbGYuc291cmNlLmNyZWF0ZV9wYXVzZShkdXJhdGlvbikKKyAgICAgICAgcmV0
dXJuIHNlbGYKKworICAgIGRlZiBfYnV0dG9uX2FjdGlvbihzZWxmLCBhY3Rpb24sIGJ1dHRvbj1N
b3VzZUJ1dHRvbi5MRUZUKToKKyAgICAgICAgbWV0aCA9IGdldGF0dHIoc2VsZi5zb3VyY2UsIGFj
dGlvbikKKyAgICAgICAgbWV0aChidXR0b24pCisgICAgICAgIHJldHVybiBzZWxmCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2FjdGlvbnMvcG9pbnRlcl9pbnB1dC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9wb2ludGVy
X2lucHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MjRlZTVh
NGVkNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9wb2ludGVyX2lucHV0LnB5CkBA
IC0wLDAgKzEsNTggQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2Vy
dmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3Jl
ZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29y
ayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVy
c2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3Qg
dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAg
WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3
dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElT
IiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQs
IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisj
IHVuZGVyIHRoZSBMaWNlbnNlLgorZnJvbSAuaW5wdXRfZGV2aWNlIGltcG9ydCBJbnB1dERldmlj
ZQorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZWxlbWVudCBpbXBvcnQgV2Vi
RWxlbWVudAorCisKK2NsYXNzIFBvaW50ZXJJbnB1dChJbnB1dERldmljZSk6CisKKyAgICBERUZB
VUxUX01PVkVfRFVSQVRJT04gPSAyNTAKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0eXBlXywg
bmFtZSk6CisgICAgICAgIHN1cGVyKFBvaW50ZXJJbnB1dCwgc2VsZikuX19pbml0X18oKQorICAg
ICAgICBzZWxmLnR5cGUgPSB0eXBlXworICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisKKyAgICBk
ZWYgY3JlYXRlX3BvaW50ZXJfbW92ZShzZWxmLCBkdXJhdGlvbj1ERUZBVUxUX01PVkVfRFVSQVRJ
T04sIHg9Tm9uZSwgeT1Ob25lLCBvcmlnaW49Tm9uZSk6CisgICAgICAgIGFjdGlvbiA9IGRpY3Qo
dHlwZT0icG9pbnRlck1vdmUiLCBkdXJhdGlvbj1kdXJhdGlvbikKKyAgICAgICAgYWN0aW9uWyJ4
Il0gPSB4CisgICAgICAgIGFjdGlvblsieSJdID0geQorICAgICAgICBpZiBpc2luc3RhbmNlKG9y
aWdpbiwgV2ViRWxlbWVudCk6CisgICAgICAgICAgICBhY3Rpb25bIm9yaWdpbiJdID0geyJlbGVt
ZW50LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiI6IG9yaWdpbi5pZH0KKyAgICAgICAgZWxp
ZiBvcmlnaW4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIm9yaWdpbiJdID0gb3Jp
Z2luCisKKyAgICAgICAgc2VsZi5hZGRfYWN0aW9uKGFjdGlvbikKKworICAgIGRlZiBjcmVhdGVf
cG9pbnRlcl9kb3duKHNlbGYsIGJ1dHRvbik6CisgICAgICAgIHNlbGYuYWRkX2FjdGlvbih7InR5
cGUiOiAicG9pbnRlckRvd24iLCAiZHVyYXRpb24iOiAwLCAiYnV0dG9uIjogYnV0dG9ufSkKKwor
ICAgIGRlZiBjcmVhdGVfcG9pbnRlcl91cChzZWxmLCBidXR0b24pOgorICAgICAgICBzZWxmLmFk
ZF9hY3Rpb24oeyJ0eXBlIjogInBvaW50ZXJVcCIsICJkdXJhdGlvbiI6IDAsICJidXR0b24iOiBi
dXR0b259KQorCisgICAgZGVmIGNyZWF0ZV9wb2ludGVyX2NhbmNlbChzZWxmKToKKyAgICAgICAg
c2VsZi5hZGRfYWN0aW9uKHsidHlwZSI6ICJwb2ludGVyQ2FuY2VsIn0pCisKKyAgICBkZWYgY3Jl
YXRlX3BhdXNlKHNlbGYsIHBhdXNlX2R1cmF0aW9uKToKKyAgICAgICAgc2VsZi5hZGRfYWN0aW9u
KHsidHlwZSI6ICJwYXVzZSIsICJkdXJhdGlvbiI6IHBhdXNlX2R1cmF0aW9uICogMTAwMH0pCisK
KyAgICBkZWYgZW5jb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4geyJ0eXBlIjogc2VsZi50eXBl
LAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogeyJwb2ludGVyVHlwZSI6IHNlbGYubmFt
ZX0sCisgICAgICAgICAgICAgICAgImlkIjogc2VsZi5uYW1lLAorICAgICAgICAgICAgICAgICJh
Y3Rpb25zIjogW2FjdHMgZm9yIGFjdHMgaW4gc2VsZi5hY3Rpb25zXX0KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vYWxlcnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL2FsZXJ0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5jMzdmZGVlN2Q5OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWxlcnQucHkK
QEAgLTAsMCArMSwxMjIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29u
c2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBh
Z3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMg
d29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93
bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiIKK1RoZSBBbGVydCBpbXBsZW1lbnRhdGlvbi4K
KyIiIgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMgaW1wb3J0IGtleXNf
dG9fdHlwaW5nCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUuY29tbWFuZCBpbXBvcnQg
Q29tbWFuZAorCisKK2NsYXNzIEFsZXJ0KG9iamVjdCk6CisgICAgIiIiCisgICAgQWxsb3dzIHRv
IHdvcmsgd2l0aCBhbGVydHMuCisKKyAgICBVc2UgdGhpcyBjbGFzcyB0byBpbnRlcmFjdCB3aXRo
IGFsZXJ0IHByb21wdHMuICBJdCBjb250YWlucyBtZXRob2RzIGZvciBkaXNtaXNzaW5nLAorICAg
IGFjY2VwdGluZywgaW5wdXR0aW5nLCBhbmQgZ2V0dGluZyB0ZXh0IGZyb20gYWxlcnQgcHJvbXB0
cy4KKworICAgIEFjY2VwdGluZyAvIERpc21pc3NpbmcgYWxlcnQgcHJvbXB0czo6CisKKyAgICAg
ICAgQWxlcnQoZHJpdmVyKS5hY2NlcHQoKQorICAgICAgICBBbGVydChkcml2ZXIpLmRpc21pc3Mo
KQorCisgICAgSW5wdXR0aW5nIGEgdmFsdWUgaW50byBhbiBhbGVydCBwcm9tcHQ6CisKKyAgICAg
ICAgbmFtZV9wcm9tcHQgPSBBbGVydChkcml2ZXIpCisgICAgICAgIG5hbWVfcHJvbXB0LnNlbmRf
a2V5cygiV2lsbGlhbiBTaGFrZXNwaGVyZSIpCisgICAgICAgIG5hbWVfcHJvbXB0LmFjY2VwdCgp
CisKKworICAgIFJlYWRpbmcgYSB0aGUgdGV4dCBvZiBhIHByb21wdCBmb3IgdmVyaWZpY2F0aW9u
OgorCisgICAgICAgIGFsZXJ0X3RleHQgPSBBbGVydChkcml2ZXIpLnRleHQKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgiRG8geW91IHdpc2ggdG8gcXVpdD8iLCBhbGVydF90ZXh0KQorCisgICAg
IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgIiIiCisgICAg
ICAgIENyZWF0ZXMgYSBuZXcgQWxlcnQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGRy
aXZlcjogVGhlIFdlYkRyaXZlciBpbnN0YW5jZSB3aGljaCBwZXJmb3JtcyB1c2VyIGFjdGlvbnMu
CisgICAgICAgICIiIgorICAgICAgICBzZWxmLmRyaXZlciA9IGRyaXZlcgorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHRleHQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSB0
ZXh0IG9mIHRoZSBBbGVydC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuZHJpdmVyLncz
YzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmRyaXZlci5leGVjdXRlKENvbW1hbmQuVzNDX0dF
VF9BTEVSVF9URVhUKVsidmFsdWUiXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5HRVRfQUxFUlRfVEVYVClbInZhbHVlIl0KKwor
ICAgIGRlZiBkaXNtaXNzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRGlzbWlzc2VzIHRo
ZSBhbGVydCBhdmFpbGFibGUuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLmRyaXZlci53
M2M6CisgICAgICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRlKENvbW1hbmQuVzNDX0RJU01JU1Nf
QUxFUlQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRlKENv
bW1hbmQuRElTTUlTU19BTEVSVCkKKworICAgIGRlZiBhY2NlcHQoc2VsZik6CisgICAgICAgICIi
IgorICAgICAgICBBY2NlcHRzIHRoZSBhbGVydCBhdmFpbGFibGUuCisKKyAgICAgICAgVXNhZ2U6
OgorICAgICAgICBBbGVydChkcml2ZXIpLmFjY2VwdCgpICMgQ29uZmlybSBhIGFsZXJ0IGRpYWxv
Zy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuZHJpdmVyLnczYzoKKyAgICAgICAgICAg
IHNlbGYuZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfQUNDRVBUX0FMRVJUKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc2VsZi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLkFDQ0VQVF9BTEVS
VCkKKworICAgIGRlZiBzZW5kX2tleXMoc2VsZiwga2V5c1RvU2VuZCk6CisgICAgICAgICIiIgor
ICAgICAgICBTZW5kIEtleXMgdG8gdGhlIEFsZXJ0LgorCisgICAgICAgIDpBcmdzOgorICAgICAg
ICAgLSBrZXlzVG9TZW5kOiBUaGUgdGV4dCB0byBiZSBzZW50IHRvIEFsZXJ0LgorCisKKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIHNlbGYuZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYuZHJp
dmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfU0VUX0FMRVJUX1ZBTFVFLCB7J3ZhbHVlJzoga2V5c190
b190eXBpbmcoa2V5c1RvU2VuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0Jzoga2V5c1RvU2VuZH0pCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRlKENvbW1hbmQuU0VUX0FMRVJU
X1ZBTFVFLCB7J3RleHQnOiBrZXlzVG9TZW5kfSkKKworICAgIGRlZiBhdXRoZW50aWNhdGUoc2Vs
ZiwgdXNlcm5hbWUsIHBhc3N3b3JkKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgdGhlIHVz
ZXJuYW1lIC8gcGFzc3dvcmQgdG8gYW4gQXV0aGVudGljYXRlZCBkaWFsb2cgKGxpa2Ugd2l0aCBC
YXNpYyBIVFRQIEF1dGgpLgorICAgICAgICBJbXBsaWNpdGx5ICdjbGlja3Mgb2snCisKKyAgICAg
ICAgVXNhZ2U6OgorICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmFsZXJ0LmF1dGhlbnRpY2F0ZSgn
Y2hlZXNlJywgJ3NlY3JldEdvdWRhJykKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC11c2Vy
bmFtZTogc3RyaW5nIHRvIGJlIHNldCBpbiB0aGUgdXNlcm5hbWUgc2VjdGlvbiBvZiB0aGUgZGlh
bG9nCisgICAgICAgICAtcGFzc3dvcmQ6IHN0cmluZyB0byBiZSBzZXQgaW4gdGhlIHBhc3N3b3Jk
IHNlY3Rpb24gb2YgdGhlIGRpYWxvZworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5kcml2ZXIu
ZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1hbmQuU0VUX0FMRVJUX0NSRURFTlRJQUxTLAorICAg
ICAgICAgICAgeyd1c2VybmFtZSc6IHVzZXJuYW1lLCAncGFzc3dvcmQnOiBwYXNzd29yZH0pCisg
ICAgICAgIHNlbGYuYWNjZXB0KCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYnkucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2J5LnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43YjEyMjhkMmE4ZgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vYnkucHkKQEAgLTAsMCArMSwzNSBAQAorIyBMaWNlbnNlZCB0
byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3Ig
bW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxl
CisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9u
CisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlz
IGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRo
ZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T
RS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0
byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBp
cyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMg
T1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4g
IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBw
ZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIgor
VGhlIEJ5IGltcGxlbWVudGF0aW9uLgorIiIiCisKKworY2xhc3MgQnkob2JqZWN0KToKKyAgICAi
IiIKKyAgICBTZXQgb2Ygc3VwcG9ydGVkIGxvY2F0b3Igc3RyYXRlZ2llcy4KKyAgICAiIiIKKwor
ICAgIElEID0gImlkIgorICAgIFhQQVRIID0gInhwYXRoIgorICAgIExJTktfVEVYVCA9ICJsaW5r
IHRleHQiCisgICAgUEFSVElBTF9MSU5LX1RFWFQgPSAicGFydGlhbCBsaW5rIHRleHQiCisgICAg
TkFNRSA9ICJuYW1lIgorICAgIFRBR19OQU1FID0gInRhZyBuYW1lIgorICAgIENMQVNTX05BTUUg
PSAiY2xhc3MgbmFtZSIKKyAgICBDU1NfU0VMRUNUT1IgPSAiY3NzIHNlbGVjdG9yIgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9kZXNpcmVkX2NhcGFiaWxpdGllcy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZGVzaXJlZF9jYXBhYmls
aXRpZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmExZDA5YTU1
N2U3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kZXNpcmVkX2NhcGFiaWxpdGllcy5weQpAQCAt
MCwwICsxLDEyOCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2
YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVl
bWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3Jr
IGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJz
aGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFj
aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3
LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5
IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0
cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMi
IEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwg
ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNw
ZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMg
dW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIgorVGhlIERlc2lyZWQgQ2FwYWJpbGl0aWVzIGltcGxl
bWVudGF0aW9uLgorIiIiCisKKworY2xhc3MgRGVzaXJlZENhcGFiaWxpdGllcyhvYmplY3QpOgor
ICAgICIiIgorICAgIFNldCBvZiBkZWZhdWx0IHN1cHBvcnRlZCBkZXNpcmVkIGNhcGFiaWxpdGll
cy4KKworICAgIFVzZSB0aGlzIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIGNyZWF0aW5nIGEgZGVz
aXJlZCBjYXBhYmlsaXRpZXMgb2JqZWN0IGZvcgorICAgIHJlcXVlc3RpbmcgcmVtb3RlIHdlYmRy
aXZlcnMgZm9yIGNvbm5lY3RpbmcgdG8gc2VsZW5pdW0gc2VydmVyIG9yIHNlbGVuaXVtIGdyaWQu
CisKKyAgICBVc2FnZSBFeGFtcGxlOjoKKworICAgICAgICBmcm9tIHNlbGVuaXVtIGltcG9ydCB3
ZWJkcml2ZXIKKworICAgICAgICBzZWxlbml1bV9ncmlkX3VybCA9ICJodHRwOi8vMTk4LjAuMC4x
OjQ0NDQvd2QvaHViIgorCisgICAgICAgICMgQ3JlYXRlIGEgZGVzaXJlZCBjYXBhYmlsaXRpZXMg
b2JqZWN0IGFzIGEgc3RhcnRpbmcgcG9pbnQuCisgICAgICAgIGNhcGFiaWxpdGllcyA9IERlc2ly
ZWRDYXBhYmlsaXRpZXMuRklSRUZPWC5jb3B5KCkKKyAgICAgICAgY2FwYWJpbGl0aWVzWydwbGF0
Zm9ybSddID0gIldJTkRPV1MiCisgICAgICAgIGNhcGFiaWxpdGllc1sndmVyc2lvbiddID0gIjEw
IgorCisgICAgICAgICMgSW5zdGFudGlhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3RlIFdlYkRyaXZl
ciB3aXRoIHRoZSBkZXNpcmVkIGNhcGFiaWxpdGllcy4KKyAgICAgICAgZHJpdmVyID0gd2ViZHJp
dmVyLlJlbW90ZShkZXNpcmVkX2NhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZF9leGVjdXRvcj1zZWxlbml1bV9ncmlkX3Vy
bCkKKworICAgIE5vdGU6IEFsd2F5cyB1c2UgJy5jb3B5KCknIG9uIHRoZSBEZXNpcmVkQ2FwYWJp
bGl0aWVzIG9iamVjdCB0byBhdm9pZCB0aGUgc2lkZQorICAgIGVmZmVjdHMgb2YgYWx0ZXJpbmcg
dGhlIEdsb2JhbCBjbGFzcyBpbnN0YW5jZS4KKworICAgICIiIgorCisgICAgRklSRUZPWCA9IHsK
KyAgICAgICAgImJyb3dzZXJOYW1lIjogImZpcmVmb3giLAorICAgICAgICAibWFyaW9uZXR0ZSI6
IFRydWUsCisgICAgICAgICJhY2NlcHRJbnNlY3VyZUNlcnRzIjogVHJ1ZSwKKyAgICB9CisKKyAg
ICBJTlRFUk5FVEVYUExPUkVSID0geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiaW50ZXJuZXQg
ZXhwbG9yZXIiLAorICAgICAgICAidmVyc2lvbiI6ICIiLAorICAgICAgICAicGxhdGZvcm0iOiAi
V0lORE9XUyIsCisgICAgfQorCisgICAgRURHRSA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjog
Ik1pY3Jvc29mdEVkZ2UiLAorICAgICAgICAidmVyc2lvbiI6ICIiLAorICAgICAgICAicGxhdGZv
cm0iOiAiV0lORE9XUyIKKyAgICB9CisKKyAgICBDSFJPTUUgPSB7CisgICAgICAgICJicm93c2Vy
TmFtZSI6ICJjaHJvbWUiLAorICAgICAgICAidmVyc2lvbiI6ICIiLAorICAgICAgICAicGxhdGZv
cm0iOiAiQU5ZIiwKKyAgICB9CisKKyAgICBPUEVSQSA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1l
IjogIm9wZXJhIiwKKyAgICAgICAgInZlcnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjog
IkFOWSIsCisgICAgfQorCisgICAgU0FGQVJJID0geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAi
c2FmYXJpIiwKKyAgICAgICAgInZlcnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIk1B
QyIsCisgICAgfQorCisgICAgSFRNTFVOSVQgPSB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJo
dG1sdW5pdCIsCisgICAgICAgICJ2ZXJzaW9uIjogIiIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJB
TlkiLAorICAgIH0KKworICAgIEhUTUxVTklUV0lUSEpTID0geworICAgICAgICAiYnJvd3Nlck5h
bWUiOiAiaHRtbHVuaXQiLAorICAgICAgICAidmVyc2lvbiI6ICJmaXJlZm94IiwKKyAgICAgICAg
InBsYXRmb3JtIjogIkFOWSIsCisgICAgICAgICJqYXZhc2NyaXB0RW5hYmxlZCI6IFRydWUsCisg
ICAgfQorCisgICAgSVBIT05FID0geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiaVBob25lIiwK
KyAgICAgICAgInZlcnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIk1BQyIsCisgICAg
fQorCisgICAgSVBBRCA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogImlQYWQiLAorICAgICAg
ICAidmVyc2lvbiI6ICIiLAorICAgICAgICAicGxhdGZvcm0iOiAiTUFDIiwKKyAgICB9CisKKyAg
ICBBTkRST0lEID0geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiYW5kcm9pZCIsCisgICAgICAg
ICJ2ZXJzaW9uIjogIiIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJBTkRST0lEIiwKKyAgICB9CisK
KyAgICBQSEFOVE9NSlMgPSB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJwaGFudG9tanMiLAor
ICAgICAgICAidmVyc2lvbiI6ICIiLAorICAgICAgICAicGxhdGZvcm0iOiAiQU5ZIiwKKyAgICAg
ICAgImphdmFzY3JpcHRFbmFibGVkIjogVHJ1ZSwKKyAgICB9CisKKyAgICBXRUJLSVRHVEsgPSB7
CisgICAgICAgICJicm93c2VyTmFtZSI6ICJNaW5pQnJvd3NlciIsCisgICAgICAgICJ2ZXJzaW9u
IjogIiIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJBTlkiLAorICAgIH0KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vaHRtbDUvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2h0bWw1L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIxZTZmODVhMAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vaHRtbDUvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyBMaWNlbnNlZCB0
byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3Ig
bW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxl
CisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9u
CisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlz
IGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRo
ZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T
RS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0
byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBp
cyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMg
T1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4g
IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBw
ZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2h0bWw1L2FwcGxpY2F0aW9uX2NhY2hlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9odG1sNS9hcHBsaWNh
dGlvbl9jYWNoZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWNm
ZTVlMTBkNTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2h0bWw1L2FwcGxpY2F0aW9uX2NhY2hl
LnB5CkBAIC0wLDAgKzEsNDggQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiIKK1RoZSBBcHBsaWNhdGlvbkNhY2hlIGlt
cGxlbWVudGFpb24uCisiIiIKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLmNvbW1h
bmQgaW1wb3J0IENvbW1hbmQKKworCitjbGFzcyBBcHBsaWNhdGlvbkNhY2hlKG9iamVjdCk6CisK
KyAgICBVTkNBQ0hFRCA9IDAKKyAgICBJRExFID0gMQorICAgIENIRUNLSU5HID0gMgorICAgIERP
V05MT0FESU5HID0gMworICAgIFVQREFURV9SRUFEWSA9IDQKKyAgICBPQlNPTEVURSA9IDUKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3Jl
YXRlcyBhIG5ldyBBcGxpY2F0aW9uIENhY2hlLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBkcml2ZXI6IFRoZSBXZWJEcml2ZXIgaW5zdGFuY2Ugd2hpY2ggcGVyZm9ybXMgdXNlciBhY3Rp
b25zLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBzdGF0dXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1
cm5zIGEgY3VycmVudCBzdGF0dXMgb2YgYXBwbGljYXRpb24gY2FjaGUuCisgICAgICAgICIiIgor
ICAgICAgICByZXR1cm4gc2VsZi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLkdFVF9BUFBfQ0FDSEVf
U1RBVFVTKVsndmFsdWUnXQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9rZXlzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9rZXlzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZDNiYjc2YzdhMQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24va2V5cy5weQpAQCAtMCwwICsxLDk2IEBACisjIExpY2Vuc2Vk
IHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBv
ciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZp
bGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRo
aXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElF
UyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworIiIi
CitUaGUgS2V5cyBpbXBsZW1lbnRhdGlvbi4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHVuaWNvZGVfbGl0ZXJhbHMKKworCitjbGFzcyBLZXlzKG9iamVjdCk6CisgICAgIiIiCisgICAg
U2V0IG9mIHNwZWNpYWwga2V5cyBjb2Rlcy4KKyAgICAiIiIKKworICAgIE5VTEwgPSAnXHVlMDAw
JworICAgIENBTkNFTCA9ICdcdWUwMDEnICAjIF5icmVhaworICAgIEhFTFAgPSAnXHVlMDAyJwor
ICAgIEJBQ0tTUEFDRSA9ICdcdWUwMDMnCisgICAgQkFDS19TUEFDRSA9IEJBQ0tTUEFDRQorICAg
IFRBQiA9ICdcdWUwMDQnCisgICAgQ0xFQVIgPSAnXHVlMDA1JworICAgIFJFVFVSTiA9ICdcdWUw
MDYnCisgICAgRU5URVIgPSAnXHVlMDA3JworICAgIFNISUZUID0gJ1x1ZTAwOCcKKyAgICBMRUZU
X1NISUZUID0gU0hJRlQKKyAgICBDT05UUk9MID0gJ1x1ZTAwOScKKyAgICBMRUZUX0NPTlRST0wg
PSBDT05UUk9MCisgICAgQUxUID0gJ1x1ZTAwYScKKyAgICBMRUZUX0FMVCA9IEFMVAorICAgIFBB
VVNFID0gJ1x1ZTAwYicKKyAgICBFU0NBUEUgPSAnXHVlMDBjJworICAgIFNQQUNFID0gJ1x1ZTAw
ZCcKKyAgICBQQUdFX1VQID0gJ1x1ZTAwZScKKyAgICBQQUdFX0RPV04gPSAnXHVlMDBmJworICAg
IEVORCA9ICdcdWUwMTAnCisgICAgSE9NRSA9ICdcdWUwMTEnCisgICAgTEVGVCA9ICdcdWUwMTIn
CisgICAgQVJST1dfTEVGVCA9IExFRlQKKyAgICBVUCA9ICdcdWUwMTMnCisgICAgQVJST1dfVVAg
PSBVUAorICAgIFJJR0hUID0gJ1x1ZTAxNCcKKyAgICBBUlJPV19SSUdIVCA9IFJJR0hUCisgICAg
RE9XTiA9ICdcdWUwMTUnCisgICAgQVJST1dfRE9XTiA9IERPV04KKyAgICBJTlNFUlQgPSAnXHVl
MDE2JworICAgIERFTEVURSA9ICdcdWUwMTcnCisgICAgU0VNSUNPTE9OID0gJ1x1ZTAxOCcKKyAg
ICBFUVVBTFMgPSAnXHVlMDE5JworCisgICAgTlVNUEFEMCA9ICdcdWUwMWEnICAjIG51bWJlciBw
YWQga2V5cworICAgIE5VTVBBRDEgPSAnXHVlMDFiJworICAgIE5VTVBBRDIgPSAnXHVlMDFjJwor
ICAgIE5VTVBBRDMgPSAnXHVlMDFkJworICAgIE5VTVBBRDQgPSAnXHVlMDFlJworICAgIE5VTVBB
RDUgPSAnXHVlMDFmJworICAgIE5VTVBBRDYgPSAnXHVlMDIwJworICAgIE5VTVBBRDcgPSAnXHVl
MDIxJworICAgIE5VTVBBRDggPSAnXHVlMDIyJworICAgIE5VTVBBRDkgPSAnXHVlMDIzJworICAg
IE1VTFRJUExZID0gJ1x1ZTAyNCcKKyAgICBBREQgPSAnXHVlMDI1JworICAgIFNFUEFSQVRPUiA9
ICdcdWUwMjYnCisgICAgU1VCVFJBQ1QgPSAnXHVlMDI3JworICAgIERFQ0lNQUwgPSAnXHVlMDI4
JworICAgIERJVklERSA9ICdcdWUwMjknCisKKyAgICBGMSA9ICdcdWUwMzEnICAjIGZ1bmN0aW9u
ICBrZXlzCisgICAgRjIgPSAnXHVlMDMyJworICAgIEYzID0gJ1x1ZTAzMycKKyAgICBGNCA9ICdc
dWUwMzQnCisgICAgRjUgPSAnXHVlMDM1JworICAgIEY2ID0gJ1x1ZTAzNicKKyAgICBGNyA9ICdc
dWUwMzcnCisgICAgRjggPSAnXHVlMDM4JworICAgIEY5ID0gJ1x1ZTAzOScKKyAgICBGMTAgPSAn
XHVlMDNhJworICAgIEYxMSA9ICdcdWUwM2InCisgICAgRjEyID0gJ1x1ZTAzYycKKworICAgIE1F
VEEgPSAnXHVlMDNkJworICAgIENPTU1BTkQgPSAnXHVlMDNkJwpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9w
cm94eS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vcHJveHkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmNjZDM2MmFmNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wcm94eS5weQpAQCAt
MCwwICsxLDMzNCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2
YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVl
bWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3Jr
IGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJz
aGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFj
aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3
LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5
IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0
cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMi
IEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwg
ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNw
ZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMg
dW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIgorVGhlIFByb3h5IGltcGxlbWVudGF0aW9uLgorIiIi
CisKKworY2xhc3MgUHJveHlUeXBlRmFjdG9yeToKKyAgICAiIiIKKyAgICBGYWN0b3J5IGZvciBw
cm94eSB0eXBlcy4KKyAgICAiIiIKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgbWFrZShm
Zl92YWx1ZSwgc3RyaW5nKToKKyAgICAgICAgcmV0dXJuIHsnZmZfdmFsdWUnOiBmZl92YWx1ZSwg
J3N0cmluZyc6IHN0cmluZ30KKworCitjbGFzcyBQcm94eVR5cGU6CisgICAgIiIiCisgICAgU2V0
IG9mIHBvc3NpYmxlIHR5cGVzIG9mIHByb3h5LgorCisgICAgRWFjaCBwcm94eSB0eXBlIGhhcyAy
IHByb3BlcnRpZXM6CisgICAgICAgJ2ZmX3ZhbHVlJyBpcyB2YWx1ZSBvZiBGaXJlZm94IHByb2Zp
bGUgcHJlZmVyZW5jZSwKKyAgICAgICAnc3RyaW5nJyBpcyBpZCBvZiBwcm94eSB0eXBlLgorICAg
ICIiIgorCisgICAgRElSRUNUID0gUHJveHlUeXBlRmFjdG9yeS5tYWtlKDAsICdESVJFQ1QnKSAg
IyBEaXJlY3QgY29ubmVjdGlvbiwgbm8gcHJveHkgKGRlZmF1bHQgb24gV2luZG93cykuCisgICAg
TUFOVUFMID0gUHJveHlUeXBlRmFjdG9yeS5tYWtlKDEsICdNQU5VQUwnKSAgIyBNYW51YWwgcHJv
eHkgc2V0dGluZ3MgKGUuZy4sIGZvciBodHRwUHJveHkpLgorICAgIFBBQyA9IFByb3h5VHlwZUZh
Y3RvcnkubWFrZSgyLCAnUEFDJykgICMgUHJveHkgYXV0b2NvbmZpZ3VyYXRpb24gZnJvbSBVUkwu
CisgICAgUkVTRVJWRURfMSA9IFByb3h5VHlwZUZhY3RvcnkubWFrZSgzLCAnUkVTRVJWRUQxJykg
ICMgTmV2ZXIgdXNlZC4KKyAgICBBVVRPREVURUNUID0gUHJveHlUeXBlRmFjdG9yeS5tYWtlKDQs
ICdBVVRPREVURUNUJykgICMgUHJveHkgYXV0b2RldGVjdGlvbiAocHJlc3VtYWJseSB3aXRoIFdQ
QUQpLgorICAgIFNZU1RFTSA9IFByb3h5VHlwZUZhY3RvcnkubWFrZSg1LCAnU1lTVEVNJykgICMg
VXNlIHN5c3RlbSBzZXR0aW5ncyAoZGVmYXVsdCBvbiBMaW51eCkuCisgICAgVU5TUEVDSUZJRUQg
PSBQcm94eVR5cGVGYWN0b3J5Lm1ha2UoNiwgJ1VOU1BFQ0lGSUVEJykgICMgTm90IGluaXRpYWxp
emVkIChmb3IgaW50ZXJuYWwgdXNlKS4KKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2Fk
KGNscywgdmFsdWUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KSBhbmQgJ3N0
cmluZycgaW4gdmFsdWU6CisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWydzdHJpbmcnXQorICAg
ICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkudXBwZXIoKQorICAgICAgICBmb3IgYXR0ciBpbiBkaXIo
Y2xzKToKKyAgICAgICAgICAgIGF0dHJfdmFsdWUgPSBnZXRhdHRyKGNscywgYXR0cikKKyAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2UoYXR0cl92YWx1ZSwgZGljdCkgYW5kIFwKKyAgICAgICAgICAg
ICAgICAgICAgJ3N0cmluZycgaW4gYXR0cl92YWx1ZSBhbmQgXAorICAgICAgICAgICAgICAgICAg
ICBhdHRyX3ZhbHVlWydzdHJpbmcnXSBpcyBub3QgTm9uZSBhbmQgXAorICAgICAgICAgICAgICAg
ICAgICBhdHRyX3ZhbHVlWydzdHJpbmcnXSA9PSB2YWx1ZToKKyAgICAgICAgICAgICAgICByZXR1
cm4gYXR0cl92YWx1ZQorICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHByb3h5IHR5cGUgaXMg
Zm91bmQgZm9yICVzIiAlICh2YWx1ZSkpCisKKworY2xhc3MgUHJveHkob2JqZWN0KToKKyAgICAi
IiIKKyAgICBQcm94eSBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBwcm94eSB0eXBlIGFuZCBu
ZWNlc3NhcnkgcHJveHkgc2V0dGluZ3MuCisgICAgIiIiCisKKyAgICBwcm94eVR5cGUgPSBQcm94
eVR5cGUuVU5TUEVDSUZJRUQKKyAgICBhdXRvZGV0ZWN0ID0gRmFsc2UKKyAgICBmdHBQcm94eSA9
ICcnCisgICAgaHR0cFByb3h5ID0gJycKKyAgICBub1Byb3h5ID0gJycKKyAgICBwcm94eUF1dG9j
b25maWdVcmwgPSAnJworICAgIHNzbFByb3h5ID0gJycKKyAgICBzb2Nrc1Byb3h5ID0gJycKKyAg
ICBzb2Nrc1VzZXJuYW1lID0gJycKKyAgICBzb2Nrc1Bhc3N3b3JkID0gJycKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByYXc9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEg
bmV3IFByb3h5LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSByYXc6IHJhdyBwcm94eSBk
YXRhLiBJZiBOb25lLCBkZWZhdWx0IGNsYXNzIHZhbHVlcyBhcmUgdXNlZC4KKyAgICAgICAgIiIi
CisgICAgICAgIGlmIHJhdyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmICdwcm94eVR5cGUn
IGluIHJhdyBhbmQgcmF3Wydwcm94eVR5cGUnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAg
ICBzZWxmLnByb3h5X3R5cGUgPSBQcm94eVR5cGUubG9hZChyYXdbJ3Byb3h5VHlwZSddKQorICAg
ICAgICAgICAgaWYgJ2Z0cFByb3h5JyBpbiByYXcgYW5kIHJhd1snZnRwUHJveHknXSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLmZ0cF9wcm94eSA9IHJhd1snZnRwUHJveHknXQor
ICAgICAgICAgICAgaWYgJ2h0dHBQcm94eScgaW4gcmF3IGFuZCByYXdbJ2h0dHBQcm94eSddIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuaHR0cF9wcm94eSA9IHJhd1snaHR0cFBy
b3h5J10KKyAgICAgICAgICAgIGlmICdub1Byb3h5JyBpbiByYXcgYW5kIHJhd1snbm9Qcm94eSdd
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYubm9fcHJveHkgPSByYXdbJ25vUHJv
eHknXQorICAgICAgICAgICAgaWYgJ3Byb3h5QXV0b2NvbmZpZ1VybCcgaW4gcmF3IGFuZCByYXdb
J3Byb3h5QXV0b2NvbmZpZ1VybCddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYu
cHJveHlfYXV0b2NvbmZpZ191cmwgPSByYXdbJ3Byb3h5QXV0b2NvbmZpZ1VybCddCisgICAgICAg
ICAgICBpZiAnc3NsUHJveHknIGluIHJhdyBhbmQgcmF3Wydzc2xQcm94eSddIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIHNlbGYuc3NsUHJveHkgPSByYXdbJ3NzbFByb3h5J10KKyAgICAg
ICAgICAgIGlmICdhdXRvZGV0ZWN0JyBpbiByYXcgYW5kIHJhd1snYXV0b2RldGVjdCddIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuYXV0b19kZXRlY3QgPSByYXdbJ2F1dG9kZXRl
Y3QnXQorICAgICAgICAgICAgaWYgJ3NvY2tzUHJveHknIGluIHJhdyBhbmQgcmF3Wydzb2Nrc1By
b3h5J10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5zb2Nrc19wcm94eSA9IHJh
d1snc29ja3NQcm94eSddCisgICAgICAgICAgICBpZiAnc29ja3NVc2VybmFtZScgaW4gcmF3IGFu
ZCByYXdbJ3NvY2tzVXNlcm5hbWUnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxm
LnNvY2tzX3VzZXJuYW1lID0gcmF3Wydzb2Nrc1VzZXJuYW1lJ10KKyAgICAgICAgICAgIGlmICdz
b2Nrc1Bhc3N3b3JkJyBpbiByYXcgYW5kIHJhd1snc29ja3NQYXNzd29yZCddIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIHNlbGYuc29ja3NfcGFzc3dvcmQgPSByYXdbJ3NvY2tzUGFzc3dv
cmQnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHByb3h5X3R5cGUoc2VsZik6CisgICAgICAg
ICIiIgorICAgICAgICBSZXR1cm5zIHByb3h5IHR5cGUgYXMgYFByb3h5VHlwZWAuCisgICAgICAg
ICIiIgorICAgICAgICByZXR1cm4gc2VsZi5wcm94eVR5cGUKKworICAgIEBwcm94eV90eXBlLnNl
dHRlcgorICAgIGRlZiBwcm94eV90eXBlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFNldHMgcHJveHkgdHlwZS4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWU6
IFRoZSBwcm94eSB0eXBlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5
X3R5cGVfY29tcGF0aWJpbGl0eSh2YWx1ZSkKKyAgICAgICAgc2VsZi5wcm94eVR5cGUgPSB2YWx1
ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGF1dG9fZGV0ZWN0KHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgUmV0dXJucyBhdXRvZGV0ZWN0IHNldHRpbmcuCisgICAgICAgICIiIgorICAg
ICAgICByZXR1cm4gc2VsZi5hdXRvZGV0ZWN0CisKKyAgICBAYXV0b19kZXRlY3Quc2V0dGVyCisg
ICAgZGVmIGF1dG9fZGV0ZWN0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNl
dHMgYXV0b2RldGVjdCBzZXR0aW5nLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1
ZTogVGhlIGF1dG9kZXRlY3QgdmFsdWUuCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3Rh
bmNlKHZhbHVlLCBib29sKToKKyAgICAgICAgICAgIGlmIHNlbGYuYXV0b2RldGVjdCBpcyBub3Qg
dmFsdWU6CisgICAgICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0aWJp
bGl0eShQcm94eVR5cGUuQVVUT0RFVEVDVCkKKyAgICAgICAgICAgICAgICBzZWxmLnByb3h5VHlw
ZSA9IFByb3h5VHlwZS5BVVRPREVURUNUCisgICAgICAgICAgICAgICAgc2VsZi5hdXRvZGV0ZWN0
ID0gdmFsdWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkF1
dG9kZXRlY3QgcHJveHkgdmFsdWUgbmVlZHMgdG8gYmUgYSBib29sZWFuIikKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBmdHBfcHJveHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1
cm5zIGZ0cCBwcm94eSBzZXR0aW5nLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
ZnRwUHJveHkKKworICAgIEBmdHBfcHJveHkuc2V0dGVyCisgICAgZGVmIGZ0cF9wcm94eShzZWxm
LCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIGZ0cCBwcm94eSBzZXR0aW5nLgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTogVGhlIGZ0cCBwcm94eSB2YWx1ZS4K
KyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBhdGliaWxp
dHkoUHJveHlUeXBlLk1BTlVBTCkKKyAgICAgICAgc2VsZi5wcm94eVR5cGUgPSBQcm94eVR5cGUu
TUFOVUFMCisgICAgICAgIHNlbGYuZnRwUHJveHkgPSB2YWx1ZQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGh0dHBfcHJveHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGh0
dHAgcHJveHkgc2V0dGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmh0dHBQ
cm94eQorCisgICAgQGh0dHBfcHJveHkuc2V0dGVyCisgICAgZGVmIGh0dHBfcHJveHkoc2VsZiwg
dmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyBodHRwIHByb3h5IHNldHRpbmcuCisK
KyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBUaGUgaHR0cCBwcm94eSB2YWx1ZS4K
KyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBhdGliaWxp
dHkoUHJveHlUeXBlLk1BTlVBTCkKKyAgICAgICAgc2VsZi5wcm94eVR5cGUgPSBQcm94eVR5cGUu
TUFOVUFMCisgICAgICAgIHNlbGYuaHR0cFByb3h5ID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBub19wcm94eShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgbm9w
cm94eSBzZXR0aW5nLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYubm9Qcm94eQor
CisgICAgQG5vX3Byb3h5LnNldHRlcgorICAgIGRlZiBub19wcm94eShzZWxmLCB2YWx1ZSk6Cisg
ICAgICAgICIiIgorICAgICAgICBTZXRzIG5vcHJveHkgc2V0dGluZy4KKworICAgICAgICA6QXJn
czoKKyAgICAgICAgIC0gdmFsdWU6IFRoZSBub3Byb3h5IHZhbHVlLgorICAgICAgICAiIiIKKyAg
ICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0aWJpbGl0eShQcm94eVR5cGUuTUFO
VUFMKQorICAgICAgICBzZWxmLnByb3h5VHlwZSA9IFByb3h5VHlwZS5NQU5VQUwKKyAgICAgICAg
c2VsZi5ub1Byb3h5ID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwcm94eV9hdXRv
Y29uZmlnX3VybChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgcHJveHkgYXV0
b2NvbmZpZyB1cmwgc2V0dGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLnBy
b3h5QXV0b2NvbmZpZ1VybAorCisgICAgQHByb3h5X2F1dG9jb25maWdfdXJsLnNldHRlcgorICAg
IGRlZiBwcm94eV9hdXRvY29uZmlnX3VybChzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAg
ICAgICBTZXRzIHByb3h5IGF1dG9jb25maWcgdXJsIHNldHRpbmcuCisKKyAgICAgICAgOkFyZ3M6
CisgICAgICAgICAtIHZhbHVlOiBUaGUgcHJveHkgYXV0b2NvbmZpZyB1cmwgdmFsdWUuCisgICAg
ICAgICIiIgorICAgICAgICBzZWxmLl92ZXJpZnlfcHJveHlfdHlwZV9jb21wYXRpYmlsaXR5KFBy
b3h5VHlwZS5QQUMpCisgICAgICAgIHNlbGYucHJveHlUeXBlID0gUHJveHlUeXBlLlBBQworICAg
ICAgICBzZWxmLnByb3h5QXV0b2NvbmZpZ1VybCA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgc3NsX3Byb3h5KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBodHRw
cyBwcm94eSBzZXR0aW5nLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuc3NsUHJv
eHkKKworICAgIEBzc2xfcHJveHkuc2V0dGVyCisgICAgZGVmIHNzbF9wcm94eShzZWxmLCB2YWx1
ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIGh0dHBzIHByb3h5IHNldHRpbmcuCisKKyAg
ICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBUaGUgaHR0cHMgcHJveHkgdmFsdWUuCisg
ICAgICAgICIiIgorICAgICAgICBzZWxmLl92ZXJpZnlfcHJveHlfdHlwZV9jb21wYXRpYmlsaXR5
KFByb3h5VHlwZS5NQU5VQUwpCisgICAgICAgIHNlbGYucHJveHlUeXBlID0gUHJveHlUeXBlLk1B
TlVBTAorICAgICAgICBzZWxmLnNzbFByb3h5ID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBzb2Nrc19wcm94eShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgc29j
a3MgcHJveHkgc2V0dGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLnNvY2tz
UHJveHkKKworICAgIEBzb2Nrc19wcm94eS5zZXR0ZXIKKyAgICBkZWYgc29ja3NfcHJveHkoc2Vs
ZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyBzb2NrcyBwcm94eSBzZXR0aW5n
LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTogVGhlIHNvY2tzIHByb3h5IHZh
bHVlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0
aWJpbGl0eShQcm94eVR5cGUuTUFOVUFMKQorICAgICAgICBzZWxmLnByb3h5VHlwZSA9IFByb3h5
VHlwZS5NQU5VQUwKKyAgICAgICAgc2VsZi5zb2Nrc1Byb3h5ID0gdmFsdWUKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBzb2Nrc191c2VybmFtZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IFJldHVybnMgc29ja3MgcHJveHkgdXNlcm5hbWUgc2V0dGluZy4KKyAgICAgICAgIiIiCisgICAg
ICAgIHJldHVybiBzZWxmLnNvY2tzVXNlcm5hbWUKKworICAgIEBzb2Nrc191c2VybmFtZS5zZXR0
ZXIKKyAgICBkZWYgc29ja3NfdXNlcm5hbWUoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAg
ICAgICAgU2V0cyBzb2NrcyBwcm94eSB1c2VybmFtZSBzZXR0aW5nLgorCisgICAgICAgIDpBcmdz
OgorICAgICAgICAgLSB2YWx1ZTogVGhlIHNvY2tzIHByb3h5IHVzZXJuYW1lIHZhbHVlLgorICAg
ICAgICAiIiIKKyAgICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0aWJpbGl0eShQ
cm94eVR5cGUuTUFOVUFMKQorICAgICAgICBzZWxmLnByb3h5VHlwZSA9IFByb3h5VHlwZS5NQU5V
QUwKKyAgICAgICAgc2VsZi5zb2Nrc1VzZXJuYW1lID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBzb2Nrc19wYXNzd29yZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVy
bnMgc29ja3MgcHJveHkgcGFzc3dvcmQgc2V0dGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIHJl
dHVybiBzZWxmLnNvY2tzUGFzc3dvcmQKKworICAgIEBzb2Nrc19wYXNzd29yZC5zZXR0ZXIKKyAg
ICBkZWYgc29ja3NfcGFzc3dvcmQoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAg
U2V0cyBzb2NrcyBwcm94eSBwYXNzd29yZCBzZXR0aW5nLgorCisgICAgICAgIDpBcmdzOgorICAg
ICAgICAgLSB2YWx1ZTogVGhlIHNvY2tzIHByb3h5IHBhc3N3b3JkIHZhbHVlLgorICAgICAgICAi
IiIKKyAgICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0aWJpbGl0eShQcm94eVR5
cGUuTUFOVUFMKQorICAgICAgICBzZWxmLnByb3h5VHlwZSA9IFByb3h5VHlwZS5NQU5VQUwKKyAg
ICAgICAgc2VsZi5zb2Nrc1Bhc3N3b3JkID0gdmFsdWUKKworICAgIGRlZiBfdmVyaWZ5X3Byb3h5
X3R5cGVfY29tcGF0aWJpbGl0eShzZWxmLCBjb21wYXRpYmxlUHJveHkpOgorICAgICAgICBpZiBz
ZWxmLnByb3h5VHlwZSAhPSBQcm94eVR5cGUuVU5TUEVDSUZJRUQgYW5kIHNlbGYucHJveHlUeXBl
ICE9IGNvbXBhdGlibGVQcm94eToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiIFNwZWNp
ZmllZCBwcm94eSB0eXBlICglcykgbm90IGNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNldHRpbmcg
KCVzKSIgJSAoY29tcGF0aWJsZVByb3h5LCBzZWxmLnByb3h5VHlwZSkpCisKKyAgICBkZWYgYWRk
X3RvX2NhcGFiaWxpdGllcyhzZWxmLCBjYXBhYmlsaXRpZXMpOgorICAgICAgICAiIiIKKyAgICAg
ICAgQWRkcyBwcm94eSBpbmZvcm1hdGlvbiBhcyBjYXBhYmlsaXR5IGluIHNwZWNpZmllZCBjYXBh
YmlsaXRpZXMuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGNhcGFiaWxpdGllczogVGhl
IGNhcGFiaWxpdGllcyB0byB3aGljaCBwcm94eSB3aWxsIGJlIGFkZGVkLgorICAgICAgICAiIiIK
KyAgICAgICAgcHJveHlfY2FwcyA9IHt9CisgICAgICAgIHByb3h5X2NhcHNbJ3Byb3h5VHlwZSdd
ID0gc2VsZi5wcm94eVR5cGVbJ3N0cmluZyddCisgICAgICAgIGlmIHNlbGYuYXV0b2RldGVjdDoK
KyAgICAgICAgICAgIHByb3h5X2NhcHNbJ2F1dG9kZXRlY3QnXSA9IHNlbGYuYXV0b2RldGVjdAor
ICAgICAgICBpZiBzZWxmLmZ0cFByb3h5OgorICAgICAgICAgICAgcHJveHlfY2Fwc1snZnRwUHJv
eHknXSA9IHNlbGYuZnRwUHJveHkKKyAgICAgICAgaWYgc2VsZi5odHRwUHJveHk6CisgICAgICAg
ICAgICBwcm94eV9jYXBzWydodHRwUHJveHknXSA9IHNlbGYuaHR0cFByb3h5CisgICAgICAgIGlm
IHNlbGYucHJveHlBdXRvY29uZmlnVXJsOgorICAgICAgICAgICAgcHJveHlfY2Fwc1sncHJveHlB
dXRvY29uZmlnVXJsJ10gPSBzZWxmLnByb3h5QXV0b2NvbmZpZ1VybAorICAgICAgICBpZiBzZWxm
LnNzbFByb3h5OgorICAgICAgICAgICAgcHJveHlfY2Fwc1snc3NsUHJveHknXSA9IHNlbGYuc3Ns
UHJveHkKKyAgICAgICAgaWYgc2VsZi5ub1Byb3h5OgorICAgICAgICAgICAgcHJveHlfY2Fwc1sn
bm9Qcm94eSddID0gc2VsZi5ub1Byb3h5CisgICAgICAgIGlmIHNlbGYuc29ja3NQcm94eToKKyAg
ICAgICAgICAgIHByb3h5X2NhcHNbJ3NvY2tzUHJveHknXSA9IHNlbGYuc29ja3NQcm94eQorICAg
ICAgICBpZiBzZWxmLnNvY2tzVXNlcm5hbWU6CisgICAgICAgICAgICBwcm94eV9jYXBzWydzb2Nr
c1VzZXJuYW1lJ10gPSBzZWxmLnNvY2tzVXNlcm5hbWUKKyAgICAgICAgaWYgc2VsZi5zb2Nrc1Bh
c3N3b3JkOgorICAgICAgICAgICAgcHJveHlfY2Fwc1snc29ja3NQYXNzd29yZCddID0gc2VsZi5z
b2Nrc1Bhc3N3b3JkCisgICAgICAgIGNhcGFiaWxpdGllc1sncHJveHknXSA9IHByb3h5X2NhcHMK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vc2VydmljZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VydmljZS5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODk4NGY1ZjBhMmIKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL3NlcnZpY2UucHkKQEAgLTAsMCArMSwxNzYgQEAKKyMgTGljZW5zZWQgdG8gdGhl
IFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUg
Y29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBk
aXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyBy
ZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxl
CisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMg
IkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5j
ZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNl
bnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w
CisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4g
d3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlz
dHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP
TkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUg
dGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlz
c2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgZXJy
bm8KK2ltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc3VicHJvY2VzcworZnJvbSBz
dWJwcm9jZXNzIGltcG9ydCBQSVBFCitpbXBvcnQgdGltZQorZnJvbSBzZWxlbml1bS5jb21tb24u
ZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5jb21tb24gaW1wb3J0IHV0aWxzCisKK3RyeToKKyAgICBmcm9tIHN1YnByb2Nlc3MgaW1w
b3J0IERFVk5VTEwKKyAgICBfSEFTX05BVElWRV9ERVZOVUxMID0gVHJ1ZQorZXhjZXB0IEltcG9y
dEVycm9yOgorICAgIERFVk5VTEwgPSAtMworICAgIF9IQVNfTkFUSVZFX0RFVk5VTEwgPSBGYWxz
ZQorCisKK2NsYXNzIFNlcnZpY2Uob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBl
eGVjdXRhYmxlLCBwb3J0PTAsIGxvZ19maWxlPURFVk5VTEwsIGVudj1Ob25lLCBzdGFydF9lcnJv
cl9tZXNzYWdlPSIiKToKKyAgICAgICAgc2VsZi5wYXRoID0gZXhlY3V0YWJsZQorCisgICAgICAg
IHNlbGYucG9ydCA9IHBvcnQKKyAgICAgICAgaWYgc2VsZi5wb3J0ID09IDA6CisgICAgICAgICAg
ICBzZWxmLnBvcnQgPSB1dGlscy5mcmVlX3BvcnQoKQorCisgICAgICAgIGlmIG5vdCBfSEFTX05B
VElWRV9ERVZOVUxMIGFuZCBsb2dfZmlsZSA9PSBERVZOVUxMOgorICAgICAgICAgICAgbG9nX2Zp
bGUgPSBvcGVuKG9zLmRldm51bGwsICd3YicpCisKKyAgICAgICAgc2VsZi5zdGFydF9lcnJvcl9t
ZXNzYWdlID0gc3RhcnRfZXJyb3JfbWVzc2FnZQorICAgICAgICBzZWxmLmxvZ19maWxlID0gbG9n
X2ZpbGUKKyAgICAgICAgc2VsZi5lbnYgPSBlbnYgb3Igb3MuZW52aXJvbgorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHNlcnZpY2VfdXJsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0
cyB0aGUgdXJsIG9mIHRoZSBTZXJ2aWNlCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gImh0
dHA6Ly8lcyIgJSB1dGlscy5qb2luX2hvc3RfcG9ydCgnbG9jYWxob3N0Jywgc2VsZi5wb3J0KQor
CisgICAgZGVmIGNvbW1hbmRfbGluZV9hcmdzKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZCgiVGhpcyBtZXRob2QgbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWIgY2xh
c3MiKQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3RhcnRz
IHRoZSBTZXJ2aWNlLgorCisgICAgICAgIDpFeGNlcHRpb25zOgorICAgICAgICAgLSBXZWJEcml2
ZXJFeGNlcHRpb24gOiBSYWlzZWQgZWl0aGVyIHdoZW4gaXQgY2FuJ3Qgc3RhcnQgdGhlIHNlcnZp
Y2UKKyAgICAgICAgICAgb3Igd2hlbiBpdCBjYW4ndCBjb25uZWN0IHRvIHRoZSBzZXJ2aWNlCisg
ICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBjbWQgPSBbc2VsZi5wYXRoXQor
ICAgICAgICAgICAgY21kLmV4dGVuZChzZWxmLmNvbW1hbmRfbGluZV9hcmdzKCkpCisgICAgICAg
ICAgICBzZWxmLnByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgZW52PXNlbGYuZW52LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9cGxh
dGZvcm0uc3lzdGVtKCkgIT0gJ1dpbmRvd3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGRvdXQ9c2VsZi5sb2dfZmlsZSwgc3RkZXJyPXNlbGYubG9nX2Zp
bGUpCisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICByYWlzZQorICAgICAg
ICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CisgICAgICAgICAgICBpZiBlcnIuZXJybm8gPT0gZXJy
bm8uRU5PRU5UOgorICAgICAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigKKyAg
ICAgICAgICAgICAgICAgICAgIiclcycgZXhlY3V0YWJsZSBuZWVkcyB0byBiZSBpbiBQQVRILiAl
cyIgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmJhc2VuYW1lKHNlbGYucGF0
aCksIHNlbGYuc3RhcnRfZXJyb3JfbWVzc2FnZSkKKyAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICBlbGlmIGVyci5lcnJubyA9PSBlcnJuby5FQUNDRVM6CisgICAgICAgICAgICAgICAgcmFp
c2UgV2ViRHJpdmVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAiJyVzJyBleGVjdXRh
YmxlIG1heSBoYXZlIHdyb25nIHBlcm1pc3Npb25zLiAlcyIgJSAoCisgICAgICAgICAgICAgICAg
ICAgICAgICBvcy5wYXRoLmJhc2VuYW1lKHNlbGYucGF0aCksIHNlbGYuc3RhcnRfZXJyb3JfbWVz
c2FnZSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJh
aXNlIFdlYkRyaXZlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiVGhlIGV4ZWN1dGFibGUg
JXMgbmVlZHMgdG8gYmUgYXZhaWxhYmxlIGluIHRoZSBwYXRoLiAlc1xuJXMiICUKKyAgICAgICAg
ICAgICAgICAob3MucGF0aC5iYXNlbmFtZShzZWxmLnBhdGgpLCBzZWxmLnN0YXJ0X2Vycm9yX21l
c3NhZ2UsIHN0cihlKSkpCisgICAgICAgIGNvdW50ID0gMAorICAgICAgICB3aGlsZSBUcnVlOgor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRfcHJvY2Vzc19zdGlsbF9ydW5uaW5nKCkKKyAgICAgICAg
ICAgIGlmIHNlbGYuaXNfY29ubmVjdGFibGUoKToKKyAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICAgICAgY291bnQgKz0gMQorICAgICAgICAgICAgdGltZS5zbGVlcCgxKQorICAgICAgICAg
ICAgaWYgY291bnQgPT0gMzA6CisgICAgICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVyRXhjZXB0
aW9uKCJDYW4gbm90IGNvbm5lY3QgdG8gdGhlIFNlcnZpY2UgJXMiICUgc2VsZi5wYXRoKQorCisg
ICAgZGVmIGFzc2VydF9wcm9jZXNzX3N0aWxsX3J1bm5pbmcoc2VsZik6CisgICAgICAgIHJldHVy
bl9jb2RlID0gc2VsZi5wcm9jZXNzLnBvbGwoKQorICAgICAgICBpZiByZXR1cm5fY29kZSBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigKKyAgICAgICAg
ICAgICAgICAnU2VydmljZSAlcyB1bmV4cGVjdGVkbHkgZXhpdGVkLiBTdGF0dXMgY29kZSB3YXM6
ICVzJworICAgICAgICAgICAgICAgICUgKHNlbGYucGF0aCwgcmV0dXJuX2NvZGUpCisgICAgICAg
ICAgICApCisKKyAgICBkZWYgaXNfY29ubmVjdGFibGUoc2VsZik6CisgICAgICAgIHJldHVybiB1
dGlscy5pc19jb25uZWN0YWJsZShzZWxmLnBvcnQpCisKKyAgICBkZWYgc2VuZF9yZW1vdGVfc2h1
dGRvd25fY29tbWFuZChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZnJvbSB1cmxs
aWIgaW1wb3J0IHJlcXVlc3QgYXMgdXJsX3JlcXVlc3QKKyAgICAgICAgICAgIFVSTEVycm9yID0g
dXJsX3JlcXVlc3QuVVJMRXJyb3IKKyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAg
ICAgICAgaW1wb3J0IHVybGxpYjIgYXMgdXJsX3JlcXVlc3QKKyAgICAgICAgICAgIGltcG9ydCB1
cmxsaWIyCisgICAgICAgICAgICBVUkxFcnJvciA9IHVybGxpYjIuVVJMRXJyb3IKKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICB1cmxfcmVxdWVzdC51cmxvcGVuKCIlcy9zaHV0ZG93biIgJSBz
ZWxmLnNlcnZpY2VfdXJsKQorICAgICAgICBleGNlcHQgVVJMRXJyb3I6CisgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICBmb3IgeCBpbiByYW5nZSgzMCk6CisgICAgICAgICAgICBpZiBub3Qg
c2VsZi5pc19jb25uZWN0YWJsZSgpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKKworICAgIGRlZiBzdG9wKHNl
bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3RvcHMgdGhlIHNlcnZpY2UuCisgICAgICAgICIi
IgorICAgICAgICBpZiBzZWxmLmxvZ19maWxlICE9IFBJUEUgYW5kIG5vdCAoc2VsZi5sb2dfZmls
ZSA9PSBERVZOVUxMIGFuZCBfSEFTX05BVElWRV9ERVZOVUxMKToKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBzZWxmLmxvZ19maWxlLmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmIHNlbGYucHJv
Y2VzcyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgc2VsZi5zZW5kX3JlbW90ZV9zaHV0ZG93bl9jb21tYW5kKCkKKyAgICAgICAgZXhjZXB0
IFR5cGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICB0cnk6CisgICAgICAgICAg
ICBpZiBzZWxmLnByb2Nlc3M6CisgICAgICAgICAgICAgICAgZm9yIHN0cmVhbSBpbiBbc2VsZi5w
cm9jZXNzLnN0ZGluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvY2Vz
cy5zdGRvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm9jZXNzLnN0
ZGVycl06CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAg
IHN0cmVhbS5jbG9zZSgpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJv
cjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBzZWxmLnBy
b2Nlc3MudGVybWluYXRlKCkKKyAgICAgICAgICAgICAgICBzZWxmLnByb2Nlc3Mud2FpdCgpCisg
ICAgICAgICAgICAgICAgc2VsZi5wcm9jZXNzLmtpbGwoKQorICAgICAgICAgICAgICAgIHNlbGYu
cHJvY2VzcyA9IE5vbmUKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICBwYXNz
CisKKyAgICBkZWYgX19kZWxfXyhzZWxmKToKKyAgICAgICAgIyBgc3VicHJvY2Vzcy5Qb3BlbmAg
ZG9lc24ndCBzZW5kIHNpZ25hbCBvbiBgX19kZWxfX2A7CisgICAgICAgICMgc28gd2UgYXR0ZW1w
dCB0byBjbG9zZSB0aGUgbGF1bmNoZWQgcHJvY2VzcyB3aGVuIGBfX2RlbF9fYAorICAgICAgICAj
IGlzIHRyaWdnZXJlZC4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5zdG9wKCkKKyAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vdG91Y2hfYWN0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdG91Y2hfYWN0aW9ucy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODliMjUyOTBlZjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3RvdWNoX2FjdGlvbnMucHkKQEAgLTAsMCArMSwxOTIgQEAKKyMgTGljZW5zZWQgdG8g
dGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1v
cmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQor
IyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgor
IyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBm
aWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUK
KyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp
YW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut
Mi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9S
IENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBT
ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy
bWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiIKK1Ro
ZSBUb3VjaCBBY3Rpb25zIGltcGxlbWVudGF0aW9uCisiIiIKKworZnJvbSBzZWxlbml1bS53ZWJk
cml2ZXIucmVtb3RlLmNvbW1hbmQgaW1wb3J0IENvbW1hbmQKKworCitjbGFzcyBUb3VjaEFjdGlv
bnMob2JqZWN0KToKKyAgICAiIiIKKyAgICBHZW5lcmF0ZSB0b3VjaCBhY3Rpb25zLiBXb3JrcyBs
aWtlIEFjdGlvbkNoYWluczsgYWN0aW9ucyBhcmUgc3RvcmVkIGluIHRoZQorICAgIFRvdWNoQWN0
aW9ucyBvYmplY3QgYW5kIGFyZSBmaXJlZCB3aXRoIHBlcmZvcm0oKS4KKyAgICAiIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRl
cyBhIG5ldyBUb3VjaEFjdGlvbnMgb2JqZWN0LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBkcml2ZXI6IFRoZSBXZWJEcml2ZXIgaW5zdGFuY2Ugd2hpY2ggcGVyZm9ybXMgdXNlciBhY3Rp
b25zLgorICAgICAgICAgICBJdCBzaG91bGQgYmUgd2l0aCB0b3VjaHNjcmVlbiBlbmFibGVkLgor
ICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fZHJpdmVyID0gZHJpdmVyCisgICAgICAgIHNlbGYu
X2FjdGlvbnMgPSBbXQorCisgICAgZGVmIHBlcmZvcm0oc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBQZXJmb3JtcyBhbGwgc3RvcmVkIGFjdGlvbnMuCisgICAgICAgICIiIgorICAgICAgICBm
b3IgYWN0aW9uIGluIHNlbGYuX2FjdGlvbnM6CisgICAgICAgICAgICBhY3Rpb24oKQorCisgICAg
ZGVmIHRhcChzZWxmLCBvbl9lbGVtZW50KToKKyAgICAgICAgIiIiCisgICAgICAgIFRhcHMgb24g
YSBnaXZlbiBlbGVtZW50LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBvbl9lbGVtZW50
OiBUaGUgZWxlbWVudCB0byB0YXAuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9hY3Rpb25z
LmFwcGVuZChsYW1iZGE6IHNlbGYuX2RyaXZlci5leGVjdXRlKAorICAgICAgICAgICAgQ29tbWFu
ZC5TSU5HTEVfVEFQLCB7J2VsZW1lbnQnOiBvbl9lbGVtZW50LmlkfSkpCisgICAgICAgIHJldHVy
biBzZWxmCisKKyAgICBkZWYgZG91YmxlX3RhcChzZWxmLCBvbl9lbGVtZW50KToKKyAgICAgICAg
IiIiCisgICAgICAgIERvdWJsZSB0YXBzIG9uIGEgZ2l2ZW4gZWxlbWVudC4KKworICAgICAgICA6
QXJnczoKKyAgICAgICAgIC0gb25fZWxlbWVudDogVGhlIGVsZW1lbnQgdG8gdGFwLgorICAgICAg
ICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIu
ZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1hbmQuRE9VQkxFX1RBUCwgeydlbGVtZW50Jzogb25f
ZWxlbWVudC5pZH0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHRhcF9hbmRfaG9s
ZChzZWxmLCB4Y29vcmQsIHljb29yZCk6CisgICAgICAgICIiIgorICAgICAgICBUb3VjaCBkb3du
IGF0IGdpdmVuIGNvb3JkaW5hdGVzLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB4Y29v
cmQ6IFggQ29vcmRpbmF0ZSB0byB0b3VjaCBkb3duLgorICAgICAgICAgLSB5Y29vcmQ6IFkgQ29v
cmRpbmF0ZSB0byB0b3VjaCBkb3duLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9u
cy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1h
bmQuVE9VQ0hfRE9XTiwgeworICAgICAgICAgICAgICAgICd4JzogaW50KHhjb29yZCksCisgICAg
ICAgICAgICAgICAgJ3knOiBpbnQoeWNvb3JkKX0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisg
ICAgZGVmIG1vdmUoc2VsZiwgeGNvb3JkLCB5Y29vcmQpOgorICAgICAgICAiIiIKKyAgICAgICAg
TW92ZSBoZWxkIHRhcCB0byBzcGVjaWZpZWQgbG9jYXRpb24uCisKKyAgICAgICAgOkFyZ3M6Cisg
ICAgICAgICAtIHhjb29yZDogWCBDb29yZGluYXRlIHRvIG1vdmUuCisgICAgICAgICAtIHljb29y
ZDogWSBDb29yZGluYXRlIHRvIG1vdmUuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9hY3Rp
b25zLmFwcGVuZChsYW1iZGE6IHNlbGYuX2RyaXZlci5leGVjdXRlKAorICAgICAgICAgICAgQ29t
bWFuZC5UT1VDSF9NT1ZFLCB7CisgICAgICAgICAgICAgICAgJ3gnOiBpbnQoeGNvb3JkKSwKKyAg
ICAgICAgICAgICAgICAneSc6IGludCh5Y29vcmQpfSkpCisgICAgICAgIHJldHVybiBzZWxmCisK
KyAgICBkZWYgcmVsZWFzZShzZWxmLCB4Y29vcmQsIHljb29yZCk6CisgICAgICAgICIiIgorICAg
ICAgICBSZWxlYXNlIHByZXZpb3VzbHkgaXNzdWVkIHRhcCAnYW5kIGhvbGQnIGNvbW1hbmQgYXQg
c3BlY2lmaWVkIGxvY2F0aW9uLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB4Y29vcmQ6
IFggQ29vcmRpbmF0ZSB0byByZWxlYXNlLgorICAgICAgICAgLSB5Y29vcmQ6IFkgQ29vcmRpbmF0
ZSB0byByZWxlYXNlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQo
bGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1hbmQuVE9VQ0hf
VVAsIHsKKyAgICAgICAgICAgICAgICAneCc6IGludCh4Y29vcmQpLAorICAgICAgICAgICAgICAg
ICd5JzogaW50KHljb29yZCl9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBzY3Jv
bGwoc2VsZiwgeG9mZnNldCwgeW9mZnNldCk6CisgICAgICAgICIiIgorICAgICAgICBUb3VjaCBh
bmQgc2Nyb2xsLCBtb3ZpbmcgYnkgeG9mZnNldCBhbmQgeW9mZnNldC4KKworICAgICAgICA6QXJn
czoKKyAgICAgICAgIC0geG9mZnNldDogWCBvZmZzZXQgdG8gc2Nyb2xsIHRvLgorICAgICAgICAg
LSB5b2Zmc2V0OiBZIG9mZnNldCB0byBzY3JvbGwgdG8uCisgICAgICAgICIiIgorICAgICAgICBz
ZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1iZGE6IHNlbGYuX2RyaXZlci5leGVjdXRlKAorICAgICAg
ICAgICAgQ29tbWFuZC5UT1VDSF9TQ1JPTEwsIHsKKyAgICAgICAgICAgICAgICAneG9mZnNldCc6
IGludCh4b2Zmc2V0KSwKKyAgICAgICAgICAgICAgICAneW9mZnNldCc6IGludCh5b2Zmc2V0KX0p
KQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHNjcm9sbF9mcm9tX2VsZW1lbnQoc2Vs
Ziwgb25fZWxlbWVudCwgeG9mZnNldCwgeW9mZnNldCk6CisgICAgICAgICIiIgorICAgICAgICBU
b3VjaCBhbmQgc2Nyb2xsIHN0YXJ0aW5nIGF0IG9uX2VsZW1lbnQsIG1vdmluZyBieSB4b2Zmc2V0
IGFuZCB5b2Zmc2V0LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBvbl9lbGVtZW50OiBU
aGUgZWxlbWVudCB3aGVyZSBzY3JvbGwgc3RhcnRzLgorICAgICAgICAgLSB4b2Zmc2V0OiBYIG9m
ZnNldCB0byBzY3JvbGwgdG8uCisgICAgICAgICAtIHlvZmZzZXQ6IFkgb2Zmc2V0IHRvIHNjcm9s
bCB0by4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTog
c2VsZi5fZHJpdmVyLmV4ZWN1dGUoCisgICAgICAgICAgICBDb21tYW5kLlRPVUNIX1NDUk9MTCwg
eworICAgICAgICAgICAgICAgICdlbGVtZW50Jzogb25fZWxlbWVudC5pZCwKKyAgICAgICAgICAg
ICAgICAneG9mZnNldCc6IGludCh4b2Zmc2V0KSwKKyAgICAgICAgICAgICAgICAneW9mZnNldCc6
IGludCh5b2Zmc2V0KX0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGxvbmdfcHJl
c3Moc2VsZiwgb25fZWxlbWVudCk6CisgICAgICAgICIiIgorICAgICAgICBMb25nIHByZXNzIG9u
IGFuIGVsZW1lbnQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIG9uX2VsZW1lbnQ6IFRo
ZSBlbGVtZW50IHRvIGxvbmcgcHJlc3MuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9hY3Rp
b25zLmFwcGVuZChsYW1iZGE6IHNlbGYuX2RyaXZlci5leGVjdXRlKAorICAgICAgICAgICAgQ29t
bWFuZC5MT05HX1BSRVNTLCB7J2VsZW1lbnQnOiBvbl9lbGVtZW50LmlkfSkpCisgICAgICAgIHJl
dHVybiBzZWxmCisKKyAgICBkZWYgZmxpY2soc2VsZiwgeHNwZWVkLCB5c3BlZWQpOgorICAgICAg
ICAiIiIKKyAgICAgICAgRmxpY2tzLCBzdGFydGluZyBhbnl3aGVyZSBvbiB0aGUgc2NyZWVuLgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB4c3BlZWQ6IFRoZSBYIHNwZWVkIGluIHBpeGVs
cyBwZXIgc2Vjb25kLgorICAgICAgICAgLSB5c3BlZWQ6IFRoZSBZIHNwZWVkIGluIHBpeGVscyBw
ZXIgc2Vjb25kLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFt
YmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1hbmQuRkxJQ0ssIHsK
KyAgICAgICAgICAgICAgICAneHNwZWVkJzogaW50KHhzcGVlZCksCisgICAgICAgICAgICAgICAg
J3lzcGVlZCc6IGludCh5c3BlZWQpfSkpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYg
ZmxpY2tfZWxlbWVudChzZWxmLCBvbl9lbGVtZW50LCB4b2Zmc2V0LCB5b2Zmc2V0LCBzcGVlZCk6
CisgICAgICAgICIiIgorICAgICAgICBGbGljayBzdGFydGluZyBhdCBvbl9lbGVtZW50LCBhbmQg
bW92aW5nIGJ5IHRoZSB4b2Zmc2V0IGFuZCB5b2Zmc2V0CisgICAgICAgIHdpdGggc3BlY2lmaWVk
IHNwZWVkLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBvbl9lbGVtZW50OiBGbGljayB3
aWxsIHN0YXJ0IGF0IGNlbnRlciBvZiBlbGVtZW50LgorICAgICAgICAgLSB4b2Zmc2V0OiBYIG9m
ZnNldCB0byBmbGljayB0by4KKyAgICAgICAgIC0geW9mZnNldDogWSBvZmZzZXQgdG8gZmxpY2sg
dG8uCisgICAgICAgICAtIHNwZWVkOiBQaXhlbHMgcGVyIHNlY29uZCB0byBmbGljay4KKyAgICAg
ICAgIiIiCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVy
LmV4ZWN1dGUoCisgICAgICAgICAgICBDb21tYW5kLkZMSUNLLCB7CisgICAgICAgICAgICAgICAg
J2VsZW1lbnQnOiBvbl9lbGVtZW50LmlkLAorICAgICAgICAgICAgICAgICd4b2Zmc2V0JzogaW50
KHhvZmZzZXQpLAorICAgICAgICAgICAgICAgICd5b2Zmc2V0JzogaW50KHlvZmZzZXQpLAorICAg
ICAgICAgICAgICAgICdzcGVlZCc6IGludChzcGVlZCl9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYK
KworICAgICMgQ29udGV4dCBtYW5hZ2VyIHNvIFRvdWNoQWN0aW9ucyBjYW4gYmUgdXNlZCBpbiBh
ICd3aXRoIC4uIGFzJyBzdGF0ZW1lbnRzLgorICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmICAjIFJldHVybiBjcmVhdGVkIGluc3RhbmNlIG9mIHNlbGYuCisKKyAg
ICBkZWYgX19leGl0X18oc2VsZiwgX3R5cGUsIF92YWx1ZSwgX3RyYWNlYmFjayk6CisgICAgICAg
IHBhc3MgICMgRG8gbm90aGluZywgZG9lcyBub3QgcmVxdWlyZSBhZGRpdGlvbmFsIGNsZWFudXAu
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91dGlscy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2I0NDNkYTJhNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3V0aWxzLnB5CkBAIC0wLDAgKzEsMTUyIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworIiIiCitUaGUgVXRpbHMg
bWV0aG9kcy4KKyIiIgoraW1wb3J0IHNvY2tldAorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29t
bW9uLmtleXMgaW1wb3J0IEtleXMKKwordHJ5OgorICAgIGJhc2VzdHJpbmcKK2V4Y2VwdCBOYW1l
RXJyb3I6CisgICAgIyBQeXRob24gMworICAgIGJhc2VzdHJpbmcgPSBzdHIKKworCitkZWYgZnJl
ZV9wb3J0KCk6CisgICAgIiIiCisgICAgRGV0ZXJtaW5lcyBhIGZyZWUgcG9ydCB1c2luZyBzb2Nr
ZXRzLgorICAgICIiIgorICAgIGZyZWVfc29ja2V0ID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZf
SU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgIGZyZWVfc29ja2V0LmJpbmQoKCcwLjAuMC4w
JywgMCkpCisgICAgZnJlZV9zb2NrZXQubGlzdGVuKDUpCisgICAgcG9ydCA9IGZyZWVfc29ja2V0
LmdldHNvY2tuYW1lKClbMV0KKyAgICBmcmVlX3NvY2tldC5jbG9zZSgpCisgICAgcmV0dXJuIHBv
cnQKKworCitkZWYgZmluZF9jb25uZWN0YWJsZV9pcChob3N0LCBwb3J0PU5vbmUpOgorICAgICIi
IlJlc29sdmUgYSBob3N0bmFtZSB0byBhbiBJUCwgcHJlZmVycmluZyBJUHY0IGFkZHJlc3Nlcy4K
KworICAgIFdlIHByZWZlciBJUHY0IHNvIHRoYXQgd2UgZG9uJ3QgY2hhbmdlIGJlaGF2aW9yIGZy
b20gcHJldmlvdXMgSVB2NC1vbmx5CisgICAgaW1wbGVtZW50YXRpb25zLCBhbmQgYmVjYXVzZSBz
b21lIGRyaXZlcnMgKGUuZy4sIEZpcmVmb3hEcml2ZXIpIGRvIG5vdAorICAgIHN1cHBvcnQgSVB2
NiBjb25uZWN0aW9ucy4KKworICAgIElmIHRoZSBvcHRpb25hbCBwb3J0IG51bWJlciBpcyBwcm92
aWRlZCwgb25seSBJUHMgdGhhdCBsaXN0ZW4gb24gdGhlIGdpdmVuCisgICAgcG9ydCBhcmUgY29u
c2lkZXJlZC4KKworICAgIDpBcmdzOgorICAgICAgICAtIGhvc3QgLSBBIGhvc3RuYW1lLgorICAg
ICAgICAtIHBvcnQgLSBPcHRpb25hbCBwb3J0IG51bWJlci4KKworICAgIDpSZXR1cm5zOgorICAg
ICAgICBBIHNpbmdsZSBJUCBhZGRyZXNzLCBhcyBhIHN0cmluZy4gSWYgYW55IElQdjQgYWRkcmVz
cyBpcyBmb3VuZCwgb25lIGlzCisgICAgICAgIHJldHVybmVkLiBPdGhlcndpc2UsIGlmIGFueSBJ
UHY2IGFkZHJlc3MgaXMgZm91bmQsIG9uZSBpcyByZXR1cm5lZC4gSWYKKyAgICAgICAgbmVpdGhl
ciwgdGhlbiBOb25lIGlzIHJldHVybmVkLgorCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBh
ZGRyaW5mb3MgPSBzb2NrZXQuZ2V0YWRkcmluZm8oaG9zdCwgTm9uZSkKKyAgICBleGNlcHQgc29j
a2V0LmdhaWVycm9yOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgaXAgPSBOb25lCisgICAg
Zm9yIGZhbWlseSwgXywgXywgXywgc29ja2FkZHIgaW4gYWRkcmluZm9zOgorICAgICAgICBjb25u
ZWN0YWJsZSA9IFRydWUKKyAgICAgICAgaWYgcG9ydDoKKyAgICAgICAgICAgIGNvbm5lY3RhYmxl
ID0gaXNfY29ubmVjdGFibGUocG9ydCwgc29ja2FkZHJbMF0pCisKKyAgICAgICAgaWYgY29ubmVj
dGFibGUgYW5kIGZhbWlseSA9PSBzb2NrZXQuQUZfSU5FVDoKKyAgICAgICAgICAgIHJldHVybiBz
b2NrYWRkclswXQorICAgICAgICBpZiBjb25uZWN0YWJsZSBhbmQgbm90IGlwIGFuZCBmYW1pbHkg
PT0gc29ja2V0LkFGX0lORVQ2OgorICAgICAgICAgICAgaXAgPSBzb2NrYWRkclswXQorICAgIHJl
dHVybiBpcAorCisKK2RlZiBqb2luX2hvc3RfcG9ydChob3N0LCBwb3J0KToKKyAgICAiIiJKb2lu
cyBhIGhvc3RuYW1lIGFuZCBwb3J0IHRvZ2V0aGVyLgorCisgICAgVGhpcyBpcyBhIG1pbmltYWwg
aW1wbGVtZW50YXRpb24gaW50ZW5kZWQgdG8gY29wZSB3aXRoIElQdjYgbGl0ZXJhbHMuIEZvcgor
ICAgIGV4YW1wbGUsIF9qb2luX2hvc3RfcG9ydCgnOjoxJywgODApID09ICdbOjoxXTo4MCcuCisK
KyAgICA6QXJnczoKKyAgICAgICAgLSBob3N0IC0gQSBob3N0bmFtZS4KKyAgICAgICAgLSBwb3J0
IC0gQW4gaW50ZWdlciBwb3J0LgorCisgICAgIiIiCisgICAgaWYgJzonIGluIGhvc3QgYW5kIG5v
dCBob3N0LnN0YXJ0c3dpdGgoJ1snKToKKyAgICAgICAgcmV0dXJuICdbJXNdOiVkJyAlIChob3N0
LCBwb3J0KQorICAgIHJldHVybiAnJXM6JWQnICUgKGhvc3QsIHBvcnQpCisKKworZGVmIGlzX2Nv
bm5lY3RhYmxlKHBvcnQsIGhvc3Q9ImxvY2FsaG9zdCIpOgorICAgICIiIgorICAgIFRyaWVzIHRv
IGNvbm5lY3QgdG8gdGhlIHNlcnZlciBhdCBwb3J0IHRvIHNlZSBpZiBpdCBpcyBydW5uaW5nLgor
CisgICAgOkFyZ3M6CisgICAgIC0gcG9ydCAtIFRoZSBwb3J0IHRvIGNvbm5lY3QuCisgICAgIiIi
CisgICAgc29ja2V0XyA9IE5vbmUKKyAgICB0cnk6CisgICAgICAgIHNvY2tldF8gPSBzb2NrZXQu
Y3JlYXRlX2Nvbm5lY3Rpb24oKGhvc3QsIHBvcnQpLCAxKQorICAgICAgICByZXN1bHQgPSBUcnVl
CisgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgcmVzdWx0ID0gRmFsc2UKKyAgICBm
aW5hbGx5OgorICAgICAgICBpZiBzb2NrZXRfOgorICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgp
CisgICAgcmV0dXJuIHJlc3VsdAorCisKK2RlZiBpc191cmxfY29ubmVjdGFibGUocG9ydCk6Cisg
ICAgIiIiCisgICAgVHJpZXMgdG8gY29ubmVjdCB0byB0aGUgSFRUUCBzZXJ2ZXIgYXQgL3N0YXR1
cyBwYXRoCisgICAgYW5kIHNwZWNpZmllZCBwb3J0IHRvIHNlZSBpZiBpdCByZXNwb25kcyBzdWNj
ZXNzZnVsbHkuCisKKyAgICA6QXJnczoKKyAgICAgLSBwb3J0IC0gVGhlIHBvcnQgdG8gY29ubmVj
dC4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGZyb20gdXJsbGliIGltcG9ydCByZXF1ZXN0
IGFzIHVybF9yZXF1ZXN0CisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBpbXBvcnQg
dXJsbGliMiBhcyB1cmxfcmVxdWVzdAorCisgICAgdHJ5OgorICAgICAgICByZXMgPSB1cmxfcmVx
dWVzdC51cmxvcGVuKCJodHRwOi8vMTI3LjAuMC4xOiVzL3N0YXR1cyIgJSBwb3J0KQorICAgICAg
ICBpZiByZXMuZ2V0Y29kZSgpID09IDIwMDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBleGNlcHQgRXhjZXB0aW9u
OgorICAgICAgICByZXR1cm4gRmFsc2UKKworCitkZWYga2V5c190b190eXBpbmcodmFsdWUpOgor
ICAgICIiIlByb2Nlc3NlcyB0aGUgdmFsdWVzIHRoYXQgd2lsbCBiZSB0eXBlZCBpbiB0aGUgZWxl
bWVudC4iIiIKKyAgICB0eXBpbmcgPSBbXQorICAgIGZvciB2YWwgaW4gdmFsdWU6CisgICAgICAg
IGlmIGlzaW5zdGFuY2UodmFsLCBLZXlzKToKKyAgICAgICAgICAgIHR5cGluZy5hcHBlbmQodmFs
KQorICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsLCBpbnQpOgorICAgICAgICAgICAgdmFsID0g
c3RyKHZhbCkKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbih2YWwpKToKKyAgICAgICAg
ICAgICAgICB0eXBpbmcuYXBwZW5kKHZhbFtpXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGZvciBpIGluIHJhbmdlKGxlbih2YWwpKToKKyAgICAgICAgICAgICAgICB0eXBpbmcuYXBwZW5k
KHZhbFtpXSkKKyAgICByZXR1cm4gdHlwaW5nCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZWRnZS9fX2luaXRfXy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9l
ZGdlL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h
NWIxZTZmODVhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9lZGdlL19faW5pdF9fLnB5CkBAIC0wLDAgKzEs
MTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNG
QykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAg
U2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRk
aXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRo
ZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBv
YnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUu
b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh
YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywg
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRo
ZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2VkZ2Uvb3B0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9lZGdlL29wdGlvbnMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI0MDUyYThjNTRiCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL2VkZ2Uvb3B0aW9ucy5weQpAQCAtMCwwICsxLDQ1IEBACisjIExpY2Vuc2VkIHRv
IHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBt
b3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUK
KyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24K
KyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMg
ZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
CisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUg
TGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNF
LTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRv
IGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBP
UiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAg
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBl
cm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmRlc2lyZWRfY2FwYWJpbGl0aWVzIGltcG9ydCBEZXNp
cmVkQ2FwYWJpbGl0aWVzCisKKworY2xhc3MgT3B0aW9ucyhvYmplY3QpOgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl9wYWdlX2xvYWRfc3RyYXRlZ3kgPSAibm9ybWFs
IgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBhZ2VfbG9hZF9zdHJhdGVneShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3BhZ2VfbG9hZF9zdHJhdGVneQorCisgICAgQHBhZ2VfbG9hZF9z
dHJhdGVneS5zZXR0ZXIKKyAgICBkZWYgcGFnZV9sb2FkX3N0cmF0ZWd5KHNlbGYsIHZhbHVlKToK
KyAgICAgICAgaWYgdmFsdWUgbm90IGluIFsnbm9ybWFsJywgJ2VhZ2VyJywgJ25vbmUnXToKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlBhZ2UgTG9hZCBTdHJhdGVneSBzaG91bGQgYmUg
J25vcm1hbCcsICdlYWdlcicgb3IgJ25vbmUnLiIpCisgICAgICAgIHNlbGYuX3BhZ2VfbG9hZF9z
dHJhdGVneSA9IHZhbHVlCisKKyAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgICAgIENyZWF0ZXMgYSBjYXBhYmlsaXRpZXMgd2l0aCBhbGwgdGhlIG9w
dGlvbnMgdGhhdCBoYXZlIGJlZW4gc2V0IGFuZAorCisgICAgICAgICAgICByZXR1cm5zIGEgZGlj
dGlvbmFyeSB3aXRoIGV2ZXJ5dGhpbmcKKyAgICAgICAgIiIiCisgICAgICAgIGVkZ2UgPSBEZXNp
cmVkQ2FwYWJpbGl0aWVzLkVER0UuY29weSgpCisgICAgICAgIGVkZ2VbJ3BhZ2VMb2FkU3RyYXRl
Z3knXSA9IHNlbGYuX3BhZ2VfbG9hZF9zdHJhdGVneQorCisgICAgICAgIHJldHVybiBlZGdlCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvZWRnZS9zZXJ2aWNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2VkZ2Uvc2VydmljZS5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWVhYzUxMTcxMDMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZWRn
ZS9zZXJ2aWNlLnB5CkBAIC0wLDAgKzEsNTcgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5jb21tb24gaW1wb3J0IHNlcnZpY2UKKworCitjbGFzcyBTZXJ2aWNlKHNlcnZpY2UuU2Vy
dmljZSk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9wYXRoLCBwb3J0PTAs
IHZlcmJvc2U9RmFsc2UsIGxvZ19wYXRoPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3Jl
YXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRWRnZURyaXZlciBzZXJ2aWNlLgorCisgICAgICAg
IEVkZ2VEcml2ZXIgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBNaWNyb3NvZnQgV2ViRHJpdmVy
IHRvIHVzZQorICAgICAgICB3aXRoIE1pY3Jvc29mdCBFZGdlLgorCisgICAgICAgIDpwYXJhbSBl
eGVjdXRhYmxlX3BhdGg6IFBhdGggdG8gdGhlIE1pY3Jvc29mdCBXZWJEcml2ZXIgYmluYXJ5Lgor
ICAgICAgICA6cGFyYW0gcG9ydDogUnVuIHRoZSByZW1vdGUgc2VydmljZSBvbiBhIHNwZWNpZmll
ZCBwb3J0LgorICAgICAgICAgICAgRGVmYXVsdHMgdG8gMCwgd2hpY2ggYmluZHMgdG8gYSByYW5k
b20gb3BlbiBwb3J0IG9mIHRoZQorICAgICAgICAgICAgc3lzdGVtJ3MgY2hvb3NpbmcuCisgICAg
ICAgIDp2ZXJib3NlOiBXaGV0aGVyIHRvIG1ha2UgdGhlIHdlYmRyaXZlciBtb3JlIHZlcmJvc2Ug
KHBhc3NlcyB0aGUKKyAgICAgICAgICAgIC0tdmVyYm9zZSBvcHRpb24gdG8gdGhlIGJpbmFyeSku
IERlZmF1bHRzIHRvIEZhbHNlLgorICAgICAgICA6cGFyYW0gbG9nX3BhdGg6IE9wdGlvbmFsIHBh
dGggZm9yIHRoZSB3ZWJkcml2ZXIgYmluYXJ5IHRvIGxvZyB0by4KKyAgICAgICAgICAgIERlZmF1
bHRzIHRvIE5vbmUgd2hpY2ggZGlzYWJsZXMgbG9nZ2luZy4KKworICAgICAgICAiIiIKKworICAg
ICAgICBzZWxmLnNlcnZpY2VfYXJncyA9IFtdCisgICAgICAgIGlmIHZlcmJvc2U6CisgICAgICAg
ICAgICBzZWxmLnNlcnZpY2VfYXJncy5hcHBlbmQoIi0tdmVyYm9zZSIpCisKKyAgICAgICAgcGFy
YW1zID0geworICAgICAgICAgICAgImV4ZWN1dGFibGUiOiBleGVjdXRhYmxlX3BhdGgsCisgICAg
ICAgICAgICAicG9ydCI6IHBvcnQsCisgICAgICAgICAgICAic3RhcnRfZXJyb3JfbWVzc2FnZSI6
ICJQbGVhc2UgZG93bmxvYWQgZnJvbSBodHRwOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsvP0xp
bmtJZD02MTk2ODciCisgICAgICAgIH0KKworICAgICAgICBpZiBsb2dfcGF0aDoKKyAgICAgICAg
ICAgIHBhcmFtc1sibG9nX2ZpbGUiXSA9IG9wZW4obG9nX3BhdGgsICJhKyIpCisKKyAgICAgICAg
c2VydmljZS5TZXJ2aWNlLl9faW5pdF9fKHNlbGYsICoqcGFyYW1zKQorCisgICAgZGVmIGNvbW1h
bmRfbGluZV9hcmdzKHNlbGYpOgorICAgICAgICByZXR1cm4gWyItLXBvcnQ9JWQiICUgc2VsZi5w
b3J0XSArIHNlbGYuc2VydmljZV9hcmdzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZWRnZS93ZWJkcml2ZXIucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZWRn
ZS93ZWJkcml2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU3
OGIxNGUwMjEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2VkZ2Uvd2ViZHJpdmVyLnB5CkBAIC0wLDAgKzEs
NDggQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNG
QykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAg
U2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRk
aXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRo
ZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBv
YnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUu
b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh
YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywg
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRo
ZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24gaW1wb3J0IHV0aWxz
Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2
ZXIgYXMgUmVtb3RlV2ViRHJpdmVyCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUucmVt
b3RlX2Nvbm5lY3Rpb24gaW1wb3J0IFJlbW90ZUNvbm5lY3Rpb24KK2Zyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxp
dGllcworZnJvbSAuc2VydmljZSBpbXBvcnQgU2VydmljZQorCisKK2NsYXNzIFdlYkRyaXZlcihS
ZW1vdGVXZWJEcml2ZXIpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVfcGF0
aD0nTWljcm9zb2Z0V2ViRHJpdmVyLmV4ZScsCisgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGll
cz1Ob25lLCBwb3J0PTAsIHZlcmJvc2U9RmFsc2UsIGxvZ19wYXRoPU5vbmUpOgorICAgICAgICBz
ZWxmLnBvcnQgPSBwb3J0CisgICAgICAgIGlmIHNlbGYucG9ydCA9PSAwOgorICAgICAgICAgICAg
c2VsZi5wb3J0ID0gdXRpbHMuZnJlZV9wb3J0KCkKKworICAgICAgICBzZWxmLmVkZ2Vfc2Vydmlj
ZSA9IFNlcnZpY2UoZXhlY3V0YWJsZV9wYXRoLCBwb3J0PXNlbGYucG9ydCwgdmVyYm9zZT12ZXJi
b3NlLCBsb2dfcGF0aD1sb2dfcGF0aCkKKyAgICAgICAgc2VsZi5lZGdlX3NlcnZpY2Uuc3RhcnQo
KQorCisgICAgICAgIGlmIGNhcGFiaWxpdGllcyBpcyBOb25lOgorICAgICAgICAgICAgY2FwYWJp
bGl0aWVzID0gRGVzaXJlZENhcGFiaWxpdGllcy5FREdFCisKKyAgICAgICAgUmVtb3RlV2ViRHJp
dmVyLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwKKyAgICAgICAgICAgIGNvbW1hbmRfZXhl
Y3V0b3I9UmVtb3RlQ29ubmVjdGlvbignaHR0cDovL2xvY2FsaG9zdDolZCcgJSBzZWxmLnBvcnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZV9p
cD1GYWxzZSksCisgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMp
CisgICAgICAgIHNlbGYuX2lzX3JlbW90ZSA9IEZhbHNlCisKKyAgICBkZWYgcXVpdChzZWxmKToK
KyAgICAgICAgUmVtb3RlV2ViRHJpdmVyLnF1aXQoc2VsZikKKyAgICAgICAgc2VsZi5lZGdlX3Nl
cnZpY2Uuc3RvcCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94L19faW5p
dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIxZTZmODVh
MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAK
KyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5k
ZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRo
ZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMg
bGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl
cnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBl
eGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4g
YSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp
Y2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh
dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNz
IG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNl
bnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvZXh0ZW5zaW9uX2Nvbm5lY3Rpb24ucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9l
eHRlbnNpb25fY29ubmVjdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uY2E3MTUxMDhkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9leHRlbnNpb25fY29u
bmVjdGlvbi5weQpAQCAtMCwwICsxLDg0IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9y
dCB0aW1lCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxp
dGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
Y29tbW9uIGltcG9ydCB1dGlscworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLmNvbW1h
bmQgaW1wb3J0IENvbW1hbmQKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS5yZW1vdGVf
Y29ubmVjdGlvbiBpbXBvcnQgUmVtb3RlQ29ubmVjdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2
ZXIuZmlyZWZveC5maXJlZm94X2JpbmFyeSBpbXBvcnQgRmlyZWZveEJpbmFyeQorCitMT0dHRVIg
PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKK1BPUlQgPSAwCitIT1NUID0gTm9uZQorX1VS
TCA9ICIiCisKKworY2xhc3MgRXh0ZW5zaW9uQ29ubmVjdGlvbihSZW1vdGVDb25uZWN0aW9uKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgZmlyZWZveF9wcm9maWxlLCBmaXJlZm94X2Jp
bmFyeT1Ob25lLCB0aW1lb3V0PTMwKToKKyAgICAgICAgc2VsZi5wcm9maWxlID0gZmlyZWZveF9w
cm9maWxlCisgICAgICAgIHNlbGYuYmluYXJ5ID0gZmlyZWZveF9iaW5hcnkKKyAgICAgICAgSE9T
VCA9IGhvc3QKKyAgICAgICAgdGltZW91dCA9IGludCh0aW1lb3V0KQorCisgICAgICAgIGlmIHNl
bGYuYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmJpbmFyeSA9IEZpcmVmb3hCaW5h
cnkoKQorCisgICAgICAgIGlmIEhPU1QgaXMgTm9uZToKKyAgICAgICAgICAgIEhPU1QgPSAiMTI3
LjAuMC4xIgorCisgICAgICAgIFBPUlQgPSB1dGlscy5mcmVlX3BvcnQoKQorICAgICAgICBzZWxm
LnByb2ZpbGUucG9ydCA9IFBPUlQKKyAgICAgICAgc2VsZi5wcm9maWxlLnVwZGF0ZV9wcmVmZXJl
bmNlcygpCisKKyAgICAgICAgc2VsZi5wcm9maWxlLmFkZF9leHRlbnNpb24oKQorCisgICAgICAg
IHNlbGYuYmluYXJ5LmxhdW5jaF9icm93c2VyKHNlbGYucHJvZmlsZSwgdGltZW91dD10aW1lb3V0
KQorICAgICAgICBfVVJMID0gImh0dHA6Ly8lczolZC9odWIiICUgKEhPU1QsIFBPUlQpCisgICAg
ICAgIFJlbW90ZUNvbm5lY3Rpb24uX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBfVVJMLCBr
ZWVwX2FsaXZlPVRydWUpCisKKyAgICBkZWYgcXVpdChzZWxmLCBzZXNzaW9uSWQ9Tm9uZSk6Cisg
ICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlFVSVQsIHsnc2Vzc2lvbklkJzogc2Vzc2lvbklk
fSkKKyAgICAgICAgd2hpbGUgc2VsZi5pc19jb25uZWN0YWJsZSgpOgorICAgICAgICAgICAgTE9H
R0VSLmluZm8oIndhaXRpbmcgdG8gcXVpdCIpCisgICAgICAgICAgICB0aW1lLnNsZWVwKDEpCisK
KyAgICBkZWYgY29ubmVjdChzZWxmKToKKyAgICAgICAgIiIiQ29ubmVjdHMgdG8gdGhlIGV4dGVu
c2lvbiBhbmQgcmV0cmlldmVzIHRoZSBzZXNzaW9uIGlkLiIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5leGVjdXRlKENvbW1hbmQuTkVXX1NFU1NJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeydkZXNpcmVkQ2FwYWJpbGl0aWVzJzogRGVzaXJlZENhcGFiaWxpdGllcy5GSVJFRk9YfSkK
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjb25uZWN0X2FuZF9xdWl0KHNlbGYpOgorICAg
ICAgICAiIiJDb25uZWN0cyB0byBhbiBydW5uaW5nIGJyb3dzZXIgYW5kIHF1aXQgaW1tZWRpYXRl
bHkuIiIiCisgICAgICAgIHNlbGYuX3JlcXVlc3QoJyVzL2V4dGVuc2lvbnMvZmlyZWZveC9xdWl0
JyAlIF9VUkwpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaXNfY29ubmVjdGFibGUoc2Vs
Zik6CisgICAgICAgICIiIlRyeXMgdG8gY29ubmVjdCB0byB0aGUgZXh0ZW5zaW9uIGJ1dCBkbyBu
b3QgcmV0cmlldmUgY29udGV4dC4iIiIKKyAgICAgICAgdXRpbHMuaXNfY29ubmVjdGFibGUoc2Vs
Zi5wcm9maWxlLnBvcnQpCisKKworY2xhc3MgRXh0ZW5zaW9uQ29ubmVjdGlvbkVycm9yKEV4Y2Vw
dGlvbik6CisgICAgIiIiQW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQgaW50IHRoZSBleHRlbnNp
b24uCisKKyAgICBNaWdodCBiZSBjYXVzZWQgYnkgYmFkIGlucHV0IG9yIGJ1Z3MgaW4gd2ViZHJp
dmVyCisgICAgIiIiCisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvZmlyZWZveF9iaW5hcnku
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvZmlyZWZveC9maXJlZm94X2JpbmFyeS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZjYxOWYxZTFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9maXJlZm94
X2JpbmFyeS5weQpAQCAtMCwwICsxLDIxNyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUg
RnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRv
ciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVk
IHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBj
b3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIp
OyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGgg
dGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMK
KyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5s
ZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAor
IyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv
biBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBP
RiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5z
ZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQg
bGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworaW1wb3J0IG9zCitpbXBvcnQg
cGxhdGZvcm0KK2Zyb20gc3VicHJvY2VzcyBpbXBvcnQgUG9wZW4sIFNURE9VVAorZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCitmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5jb21tb24gaW1wb3J0IHV0aWxzCitpbXBvcnQgdGltZQorCisKK2Ns
YXNzIEZpcmVmb3hCaW5hcnkob2JqZWN0KToKKworICAgIE5PX0ZPQ1VTX0xJQlJBUllfTkFNRSA9
ICJ4X2lnbm9yZV9ub2ZvY3VzLnNvIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcmVmb3hf
cGF0aD1Ob25lLCBsb2dfZmlsZT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMg
YSBuZXcgaW5zdGFuY2Ugb2YgRmlyZWZveCBiaW5hcnkuCisKKyAgICAgICAgOkFyZ3M6CisgICAg
ICAgICAtIGZpcmVmb3hfcGF0aCAtIFBhdGggdG8gdGhlIEZpcmVmb3ggZXhlY3V0YWJsZS4gQnkg
ZGVmYXVsdCwgaXQgd2lsbCBiZSBkZXRlY3RlZCBmcm9tIHRoZSBzdGFuZGFyZCBsb2NhdGlvbnMu
CisgICAgICAgICAtIGxvZ19maWxlIC0gQSBmaWxlIG9iamVjdCB0byByZWRpcmVjdCB0aGUgZmly
ZWZveCBwcm9jZXNzIG91dHB1dCB0by4gSXQgY2FuIGJlIHN5cy5zdGRvdXQuCisgICAgICAgICAg
ICAgICAgICAgICAgUGxlYXNlIG5vdGUgdGhhdCB3aXRoIHBhcmFsbGVsIHJ1biB0aGUgb3V0cHV0
IHdvbid0IGJlIHN5bmNocm9ub3VzLgorICAgICAgICAgICAgICAgICAgICAgIEJ5IGRlZmF1bHQs
IGl0IHdpbGwgYmUgcmVkaXJlY3RlZCB0byAvZGV2L251bGwuCisgICAgICAgICIiIgorICAgICAg
ICBzZWxmLl9zdGFydF9jbWQgPSBmaXJlZm94X3BhdGgKKyAgICAgICAgIyBXZSB1c2VkIHRvIGRl
ZmF1bHQgdG8gc3VicHJvY2Vzcy5QSVBFIGluc3RlYWQgb2YgL2Rldi9udWxsLCBidXQgYWZ0ZXIK
KyAgICAgICAgIyBhIHdoaWxlIHRoZSBwaXBlIHdvdWxkIGZpbGwgdXAgYW5kIEZpcmVmb3ggd291
bGQgZnJlZXplLgorICAgICAgICBzZWxmLl9sb2dfZmlsZSA9IGxvZ19maWxlIG9yIG9wZW4ob3Mu
ZGV2bnVsbCwgIndiIikKKyAgICAgICAgc2VsZi5jb21tYW5kX2xpbmUgPSBOb25lCisgICAgICAg
IGlmIHNlbGYuX3N0YXJ0X2NtZCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fc3RhcnRfY21k
ID0gc2VsZi5fZ2V0X2ZpcmVmb3hfc3RhcnRfY21kKCkKKyAgICAgICAgaWYgbm90IHNlbGYuX3N0
YXJ0X2NtZC5zdHJpcCgpOgorICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVyRXhjZXB0aW9uKAor
ICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZmluZCBmaXJlZm94IGJpbmFyeS4gWW91IGNhbiBz
ZXQgaXQgYnkgc3BlY2lmeWluZyAiCisgICAgICAgICAgICAgICAgInRoZSBwYXRoIHRvICdmaXJl
Zm94X2JpbmFyeSc6XG5cbmZyb20gIgorICAgICAgICAgICAgICAgICJzZWxlbml1bS53ZWJkcml2
ZXIuZmlyZWZveC5maXJlZm94X2JpbmFyeSBpbXBvcnQgIgorICAgICAgICAgICAgICAgICJGaXJl
Zm94QmluYXJ5XG5cbmJpbmFyeSA9ICIKKyAgICAgICAgICAgICAgICAiRmlyZWZveEJpbmFyeSgn
L3BhdGgvdG8vYmluYXJ5JylcbmRyaXZlciA9ICIKKyAgICAgICAgICAgICAgICAid2ViZHJpdmVy
LkZpcmVmb3goZmlyZWZveF9iaW5hcnk9YmluYXJ5KSIpCisgICAgICAgICMgUmF0aGVyIHRoYW4g
bW9kaWZ5aW5nIHRoZSBlbnZpcm9ubWVudCBvZiB0aGUgY2FsbGluZyBQeXRob24gcHJvY2Vzcwor
ICAgICAgICAjIGNvcHkgaXQgYW5kIG1vZGlmeSBhcyBuZWVkZWQuCisgICAgICAgIHNlbGYuX2Zp
cmVmb3hfZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgc2VsZi5fZmlyZWZveF9lbnZb
Ik1PWl9DUkFTSFJFUE9SVEVSX0RJU0FCTEUiXSA9ICIxIgorICAgICAgICBzZWxmLl9maXJlZm94
X2VudlsiTU9aX05PX1JFTU9URSJdID0gIjEiCisgICAgICAgIHNlbGYuX2ZpcmVmb3hfZW52WyJO
T19FTV9SRVNUQVJUIl0gPSAiMSIKKworICAgIGRlZiBhZGRfY29tbWFuZF9saW5lX29wdGlvbnMo
c2VsZiwgKmFyZ3MpOgorICAgICAgICBzZWxmLmNvbW1hbmRfbGluZSA9IGFyZ3MKKworICAgIGRl
ZiBsYXVuY2hfYnJvd3NlcihzZWxmLCBwcm9maWxlLCB0aW1lb3V0PTMwKToKKyAgICAgICAgIiIi
TGF1bmNoZXMgdGhlIGJyb3dzZXIgZm9yIHRoZSBnaXZlbiBwcm9maWxlIG5hbWUuCisgICAgICAg
IEl0IGlzIGFzc3VtZWQgdGhlIHByb2ZpbGUgYWxyZWFkeSBleGlzdHMuCisgICAgICAgICIiIgor
ICAgICAgICBzZWxmLnByb2ZpbGUgPSBwcm9maWxlCisKKyAgICAgICAgc2VsZi5fc3RhcnRfZnJv
bV9wcm9maWxlX3BhdGgoc2VsZi5wcm9maWxlLnBhdGgpCisgICAgICAgIHNlbGYuX3dhaXRfdW50
aWxfY29ubmVjdGFibGUodGltZW91dD10aW1lb3V0KQorCisgICAgZGVmIGtpbGwoc2VsZik6Cisg
ICAgICAgICIiIktpbGwgdGhlIGJyb3dzZXIuCisKKyAgICAgICAgVGhpcyBpcyB1c2VmdWwgd2hl
biB0aGUgYnJvd3NlciBpcyBzdHVjay4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYucHJv
Y2VzczoKKyAgICAgICAgICAgIHNlbGYucHJvY2Vzcy5raWxsKCkKKyAgICAgICAgICAgIHNlbGYu
cHJvY2Vzcy53YWl0KCkKKworICAgIGRlZiBfc3RhcnRfZnJvbV9wcm9maWxlX3BhdGgoc2VsZiwg
cGF0aCk6CisgICAgICAgIHNlbGYuX2ZpcmVmb3hfZW52WyJYUkVfUFJPRklMRV9QQVRIIl0gPSBw
YXRoCisKKyAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkubG93ZXIoKSA9PSAnbGludXgnOgor
ICAgICAgICAgICAgc2VsZi5fbW9kaWZ5X2xpbmtfbGlicmFyeV9wYXRoKCkKKyAgICAgICAgY29t
bWFuZCA9IFtzZWxmLl9zdGFydF9jbWQsICItZm9yZWdyb3VuZCJdCisgICAgICAgIGlmIHNlbGYu
Y29tbWFuZF9saW5lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZm9yIGNsaSBpbiBzZWxmLmNv
bW1hbmRfbGluZToKKyAgICAgICAgICAgICAgICBjb21tYW5kLmFwcGVuZChjbGkpCisgICAgICAg
IHNlbGYucHJvY2VzcyA9IFBvcGVuKAorICAgICAgICAgICAgY29tbWFuZCwgc3Rkb3V0PXNlbGYu
X2xvZ19maWxlLCBzdGRlcnI9U1RET1VULAorICAgICAgICAgICAgZW52PXNlbGYuX2ZpcmVmb3hf
ZW52KQorCisgICAgZGVmIF93YWl0X3VudGlsX2Nvbm5lY3RhYmxlKHNlbGYsIHRpbWVvdXQ9MzAp
OgorICAgICAgICAiIiJCbG9ja3MgdW50aWwgdGhlIGV4dGVuc2lvbiBpcyBjb25uZWN0YWJsZSBp
biB0aGUgZmlyZWZveC4iIiIKKyAgICAgICAgY291bnQgPSAwCisgICAgICAgIHdoaWxlIG5vdCB1
dGlscy5pc19jb25uZWN0YWJsZShzZWxmLnByb2ZpbGUucG9ydCk6CisgICAgICAgICAgICBpZiBz
ZWxmLnByb2Nlc3MucG9sbCgpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICMgQnJvd3Nl
ciBoYXMgZXhpdGVkCisgICAgICAgICAgICAgICAgcmFpc2UgV2ViRHJpdmVyRXhjZXB0aW9uKAor
ICAgICAgICAgICAgICAgICAgICAiVGhlIGJyb3dzZXIgYXBwZWFycyB0byBoYXZlIGV4aXRlZCAi
CisgICAgICAgICAgICAgICAgICAgICJiZWZvcmUgd2UgY291bGQgY29ubmVjdC4gSWYgeW91IHNw
ZWNpZmllZCBhIGxvZ19maWxlIGluICIKKyAgICAgICAgICAgICAgICAgICAgInRoZSBGaXJlZm94
QmluYXJ5IGNvbnN0cnVjdG9yLCBjaGVjayBpdCBmb3IgZGV0YWlscy4iKQorICAgICAgICAgICAg
aWYgY291bnQgPj0gdGltZW91dDoKKyAgICAgICAgICAgICAgICBzZWxmLmtpbGwoKQorICAgICAg
ICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAg
IkNhbid0IGxvYWQgdGhlIHByb2ZpbGUuIFBvc3NpYmxlIGZpcmVmb3ggdmVyc2lvbiBtaXNtYXRj
aC4gIgorICAgICAgICAgICAgICAgICAgICAiWW91IG11c3QgdXNlIEdlY2tvRHJpdmVyIGluc3Rl
YWQgZm9yIEZpcmVmb3ggNDgrLiBQcm9maWxlICIKKyAgICAgICAgICAgICAgICAgICAgIkRpcjog
JXMgSWYgeW91IHNwZWNpZmllZCBhIGxvZ19maWxlIGluIHRoZSAiCisgICAgICAgICAgICAgICAg
ICAgICJGaXJlZm94QmluYXJ5IGNvbnN0cnVjdG9yLCBjaGVjayBpdCBmb3IgZGV0YWlscy4iCisg
ICAgICAgICAgICAgICAgICAgICUgKHNlbGYucHJvZmlsZS5wYXRoKSkKKyAgICAgICAgICAgIGNv
dW50ICs9IDEKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgcmV0dXJuIFRydWUK
KworICAgIGRlZiBfZmluZF9leGVfaW5fcmVnaXN0cnkoc2VsZik6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGZyb20gX3dpbnJlZyBpbXBvcnQgT3BlbktleSwgUXVlcnlWYWx1ZSwgSEtFWV9M
T0NBTF9NQUNISU5FLCBIS0VZX0NVUlJFTlRfVVNFUgorICAgICAgICBleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgICAgICAgICBmcm9tIHdpbnJlZyBpbXBvcnQgT3BlbktleSwgUXVlcnlWYWx1ZSwg
SEtFWV9MT0NBTF9NQUNISU5FLCBIS0VZX0NVUlJFTlRfVVNFUgorICAgICAgICBpbXBvcnQgc2hs
ZXgKKyAgICAgICAga2V5cyA9IChyIlNPRlRXQVJFXENsYXNzZXNcRmlyZWZveEhUTUxcc2hlbGxc
b3Blblxjb21tYW5kIiwKKyAgICAgICAgICAgICAgICByIlNPRlRXQVJFXENsYXNzZXNcQXBwbGlj
YXRpb25zXGZpcmVmb3guZXhlXHNoZWxsXG9wZW5cY29tbWFuZCIpCisgICAgICAgIGNvbW1hbmQg
PSAiIgorICAgICAgICBmb3IgcGF0aCBpbiBrZXlzOgorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIGtleSA9IE9wZW5LZXkoSEtFWV9MT0NBTF9NQUNISU5FLCBwYXRoKQorICAgICAg
ICAgICAgICAgIGNvbW1hbmQgPSBRdWVyeVZhbHVlKGtleSwgIiIpCisgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAga2V5ID0gT3BlbktleShIS0VZX0NVUlJFTlRfVVNFUiwgcGF0
aCkKKyAgICAgICAgICAgICAgICAgICAgY29tbWFuZCA9IFF1ZXJ5VmFsdWUoa2V5LCAiIikKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoK
KyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0
dXJuICIiCisKKyAgICAgICAgaWYgbm90IGNvbW1hbmQ6CisgICAgICAgICAgICByZXR1cm4gIiIK
KworICAgICAgICByZXR1cm4gc2hsZXguc3BsaXQoY29tbWFuZClbMF0KKworICAgIGRlZiBfZ2V0
X2ZpcmVmb3hfc3RhcnRfY21kKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIGNvbW1hbmQg
dG8gc3RhcnQgZmlyZWZveC4iIiIKKyAgICAgICAgc3RhcnRfY21kID0gIiIKKyAgICAgICAgaWYg
cGxhdGZvcm0uc3lzdGVtKCkgPT0gIkRhcndpbiI6CisgICAgICAgICAgICBzdGFydF9jbWQgPSAi
L0FwcGxpY2F0aW9ucy9GaXJlZm94LmFwcC9Db250ZW50cy9NYWNPUy9maXJlZm94LWJpbiIKKyAg
ICAgICAgICAgICMgZmFsbGJhY2sgdG8gaG9tZWJyZXcgaW5zdGFsbGF0aW9uIGZvciBtYWMgdXNl
cnMKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzdGFydF9jbWQpOgorICAgICAg
ICAgICAgICAgIHN0YXJ0X2NtZCA9IG9zLnBhdGguZXhwYW5kdXNlcigifiIpICsgc3RhcnRfY21k
CisgICAgICAgIGVsaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldpbmRvd3MiOgorICAgICAgICAg
ICAgc3RhcnRfY21kID0gKHNlbGYuX2ZpbmRfZXhlX2luX3JlZ2lzdHJ5KCkgb3Igc2VsZi5fZGVm
YXVsdF93aW5kb3dzX2xvY2F0aW9uKCkpCisgICAgICAgIGVsaWYgcGxhdGZvcm0uc3lzdGVtKCkg
PT0gJ0phdmEnIGFuZCBvcy5fbmFtZSA9PSAnbnQnOgorICAgICAgICAgICAgc3RhcnRfY21kID0g
c2VsZi5fZGVmYXVsdF93aW5kb3dzX2xvY2F0aW9uKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGZvciBmZm5hbWUgaW4gWyJmaXJlZm94IiwgImljZXdlYXNlbCJdOgorICAgICAgICAgICAg
ICAgIHN0YXJ0X2NtZCA9IHNlbGYud2hpY2goZmZuYW1lKQorICAgICAgICAgICAgICAgIGlmIHN0
YXJ0X2NtZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBjb3VsZG4ndCBmaW5kIGZpcmVmb3ggb24gdGhl
IHN5c3RlbSBwYXRoCisgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAorICAgICAg
ICAgICAgICAgICAgICAiQ291bGQgbm90IGZpbmQgZmlyZWZveCBpbiB5b3VyIHN5c3RlbSBQQVRI
LiIgKworICAgICAgICAgICAgICAgICAgICAiIFBsZWFzZSBzcGVjaWZ5IHRoZSBmaXJlZm94IGJp
bmFyeSBsb2NhdGlvbiBvciBpbnN0YWxsIGZpcmVmb3giKQorICAgICAgICByZXR1cm4gc3RhcnRf
Y21kCisKKyAgICBkZWYgX2RlZmF1bHRfd2luZG93c19sb2NhdGlvbihzZWxmKToKKyAgICAgICAg
cHJvZ3JhbV9maWxlcyA9IFtvcy5nZXRlbnYoIlBST0dSQU1GSUxFUyIsIHIiQzpcUHJvZ3JhbSBG
aWxlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmdldGVudigiUFJPR1JBTUZJTEVT
KFg4NikiLCByIkM6XFByb2dyYW0gRmlsZXMgKHg4NikiKV0KKyAgICAgICAgZm9yIHBhdGggaW4g
cHJvZ3JhbV9maWxlczoKKyAgICAgICAgICAgIGJpbmFyeV9wYXRoID0gb3MucGF0aC5qb2luKHBh
dGgsIHIiTW96aWxsYSBGaXJlZm94XGZpcmVmb3guZXhlIikKKyAgICAgICAgICAgIGlmIG9zLmFj
Y2VzcyhiaW5hcnlfcGF0aCwgb3MuWF9PSyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpbmFy
eV9wYXRoCisgICAgICAgIHJldHVybiAiIgorCisgICAgZGVmIF9tb2RpZnlfbGlua19saWJyYXJ5
X3BhdGgoc2VsZik6CisgICAgICAgIGV4aXN0aW5nX2xkX2xpYl9wYXRoID0gb3MuZW52aXJvbi5n
ZXQoJ0xEX0xJQlJBUllfUEFUSCcsICcnKQorCisgICAgICAgIG5ld19sZF9saWJfcGF0aCA9IHNl
bGYuX2V4dHJhY3RfYW5kX2NoZWNrKAorICAgICAgICAgICAgc2VsZi5wcm9maWxlLCBzZWxmLk5P
X0ZPQ1VTX0xJQlJBUllfTkFNRSwgIng4NiIsICJhbWQ2NCIpCisKKyAgICAgICAgbmV3X2xkX2xp
Yl9wYXRoICs9IGV4aXN0aW5nX2xkX2xpYl9wYXRoCisKKyAgICAgICAgc2VsZi5fZmlyZWZveF9l
bnZbIkxEX0xJQlJBUllfUEFUSCJdID0gbmV3X2xkX2xpYl9wYXRoCisgICAgICAgIHNlbGYuX2Zp
cmVmb3hfZW52WydMRF9QUkVMT0FEJ10gPSBzZWxmLk5PX0ZPQ1VTX0xJQlJBUllfTkFNRQorCisg
ICAgZGVmIF9leHRyYWN0X2FuZF9jaGVjayhzZWxmLCBwcm9maWxlLCBub19mb2N1c19zb19uYW1l
LCB4ODYsIGFtZDY0KToKKworICAgICAgICBwYXRocyA9IFt4ODYsIGFtZDY0XQorICAgICAgICBi
dWlsdF9wYXRoID0gIiIKKyAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CisgICAgICAgICAgICBs
aWJyYXJ5X3BhdGggPSBvcy5wYXRoLmpvaW4ocHJvZmlsZS5wYXRoLCBwYXRoKQorICAgICAgICAg
ICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGxpYnJhcnlfcGF0aCk6CisgICAgICAgICAgICAgICAg
b3MubWFrZWRpcnMobGlicmFyeV9wYXRoKQorICAgICAgICAgICAgaW1wb3J0IHNodXRpbAorICAg
ICAgICAgICAgc2h1dGlsLmNvcHkob3MucGF0aC5qb2luKAorICAgICAgICAgICAgICAgIG9zLnBh
dGguZGlybmFtZShfX2ZpbGVfXyksCisgICAgICAgICAgICAgICAgcGF0aCwKKyAgICAgICAgICAg
ICAgICBzZWxmLk5PX0ZPQ1VTX0xJQlJBUllfTkFNRSksCisgICAgICAgICAgICAgICAgbGlicmFy
eV9wYXRoKQorICAgICAgICAgICAgYnVpbHRfcGF0aCArPSBsaWJyYXJ5X3BhdGggKyAiOiIKKwor
ICAgICAgICByZXR1cm4gYnVpbHRfcGF0aAorCisgICAgZGVmIHdoaWNoKHNlbGYsIGZuYW1lKToK
KyAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVsbHkgcXVhbGlmaWVkIHBhdGggYnkgc2VhcmNoaW5n
IFBhdGggb2YgdGhlIGdpdmVuCisgICAgICAgIG5hbWUiIiIKKyAgICAgICAgZm9yIHBlIGluIG9z
LmVudmlyb25bJ1BBVEgnXS5zcGxpdChvcy5wYXRoc2VwKToKKyAgICAgICAgICAgIGNoZWNrbmFt
ZSA9IG9zLnBhdGguam9pbihwZSwgZm5hbWUpCisgICAgICAgICAgICBpZiBvcy5hY2Nlc3MoY2hl
Y2tuYW1lLCBvcy5YX09LKSBhbmQgbm90IG9zLnBhdGguaXNkaXIoY2hlY2tuYW1lKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY2hlY2tuYW1lCisgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvZmlyZWZveC9maXJlZm94X3Byb2ZpbGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9maXJlZm94X3Byb2ZpbGUucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZmODI5M2Q0ZDJlCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL2ZpcmVmb3gvZmlyZWZveF9wcm9maWxlLnB5CkBAIC0wLDAgKzEsMzgxIEBA
CisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVu
ZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0
aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZD
IGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu
IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhP
VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3Vh
Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGlj
ZW5zZS4KKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAorCitpbXBvcnQg
YmFzZTY0CitpbXBvcnQgY29weQoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHJlCitp
bXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB6aXBmaWxl
CisKK3RyeToKKyAgICBmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8gYXMgQnl0ZXNJTwor
ZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KKworZnJvbSB4
bWwuZG9tIGltcG9ydCBtaW5pZG9tCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJv
eHkgaW1wb3J0IFByb3h5VHlwZQorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBv
cnQgV2ViRHJpdmVyRXhjZXB0aW9uCisKKworV0VCRFJJVkVSX0VYVCA9ICJ3ZWJkcml2ZXIueHBp
IgorV0VCRFJJVkVSX1BSRUZFUkVOQ0VTID0gIndlYmRyaXZlcl9wcmVmcy5qc29uIgorRVhURU5T
SU9OX05BTUUgPSAiZnhkcml2ZXJAZ29vZ2xlY29kZS5jb20iCisKKworY2xhc3MgQWRkb25Gb3Jt
YXRFcnJvcihFeGNlcHRpb24pOgorICAgICIiIkV4Y2VwdGlvbiBmb3Igbm90IHdlbGwtZm9ybWVk
IGFkZC1vbiBtYW5pZmVzdCBmaWxlcyIiIgorCisKK2NsYXNzIEZpcmVmb3hQcm9maWxlKG9iamVj
dCk6CisgICAgQU5PTllNT1VTX1BST0ZJTEVfTkFNRSA9ICJXRUJEUklWRVJfQU5PTllNT1VTX1BS
T0ZJTEUiCisgICAgREVGQVVMVF9QUkVGRVJFTkNFUyA9IE5vbmUKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwcm9maWxlX2RpcmVjdG9yeT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIElu
aXRpYWxpc2VzIGEgbmV3IGluc3RhbmNlIG9mIGEgRmlyZWZveCBQcm9maWxlCisKKyAgICAgICAg
OmFyZ3M6CisgICAgICAgICAtIHByb2ZpbGVfZGlyZWN0b3J5OiBEaXJlY3Rvcnkgb2YgcHJvZmls
ZSB0aGF0IHlvdSB3YW50IHRvIHVzZS4KKyAgICAgICAgICAgVGhpcyBkZWZhdWx0cyB0byBOb25l
IGFuZCB3aWxsIGNyZWF0ZSBhIG5ldworICAgICAgICAgICBkaXJlY3Rvcnkgd2hlbiBvYmplY3Qg
aXMgY3JlYXRlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBGaXJlZm94UHJvZmlsZS5E
RUZBVUxUX1BSRUZFUkVOQ0VTOgorICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXRUJEUklWRVJfUFJFRkVSRU5DRVMpKSBhcyBkZWZhdWx0X3ByZWZzOgorICAgICAgICAg
ICAgICAgIEZpcmVmb3hQcm9maWxlLkRFRkFVTFRfUFJFRkVSRU5DRVMgPSBqc29uLmxvYWQoZGVm
YXVsdF9wcmVmcykKKworICAgICAgICBzZWxmLmRlZmF1bHRfcHJlZmVyZW5jZXMgPSBjb3B5LmRl
ZXBjb3B5KAorICAgICAgICAgICAgRmlyZWZveFByb2ZpbGUuREVGQVVMVF9QUkVGRVJFTkNFU1sn
bXV0YWJsZSddKQorICAgICAgICBzZWxmLm5hdGl2ZV9ldmVudHNfZW5hYmxlZCA9IFRydWUKKyAg
ICAgICAgc2VsZi5wcm9maWxlX2RpciA9IHByb2ZpbGVfZGlyZWN0b3J5CisgICAgICAgIHNlbGYu
dGVtcGZvbGRlciA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5wcm9maWxlX2RpciBpcyBOb25lOgor
ICAgICAgICAgICAgc2VsZi5wcm9maWxlX2RpciA9IHNlbGYuX2NyZWF0ZV90ZW1wZm9sZGVyKCkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYudGVtcGZvbGRlciA9IHRlbXBmaWxlLm1r
ZHRlbXAoKQorICAgICAgICAgICAgbmV3cHJvZiA9IG9zLnBhdGguam9pbihzZWxmLnRlbXBmb2xk
ZXIsICJ3ZWJkcml2ZXItcHktcHJvZmlsZWNvcHkiKQorICAgICAgICAgICAgc2h1dGlsLmNvcHl0
cmVlKHNlbGYucHJvZmlsZV9kaXIsIG5ld3Byb2YsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWdub3JlPXNodXRpbC5pZ25vcmVfcGF0dGVybnMoInBhcmVudC5sb2NrIiwgImxvY2siLCAi
LnBhcmVudGxvY2siKSkKKyAgICAgICAgICAgIHNlbGYucHJvZmlsZV9kaXIgPSBuZXdwcm9mCisg
ICAgICAgICAgICBzZWxmLl9yZWFkX2V4aXN0aW5nX3VzZXJqcyhvcy5wYXRoLmpvaW4oc2VsZi5w
cm9maWxlX2RpciwgInVzZXIuanMiKSkKKyAgICAgICAgc2VsZi5leHRlbnNpb25zRGlyID0gb3Mu
cGF0aC5qb2luKHNlbGYucHJvZmlsZV9kaXIsICJleHRlbnNpb25zIikKKyAgICAgICAgc2VsZi51
c2VyUHJlZnMgPSBvcy5wYXRoLmpvaW4oc2VsZi5wcm9maWxlX2RpciwgInVzZXIuanMiKQorCisg
ICAgIyBQdWJsaWMgTWV0aG9kcworICAgIGRlZiBzZXRfcHJlZmVyZW5jZShzZWxmLCBrZXksIHZh
bHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIHNldHMgdGhlIHByZWZlcmVuY2UgdGhhdCB3ZSB3
YW50IGluIHRoZSBwcm9maWxlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5kZWZhdWx0X3By
ZWZlcmVuY2VzW2tleV0gPSB2YWx1ZQorCisgICAgZGVmIGFkZF9leHRlbnNpb24oc2VsZiwgZXh0
ZW5zaW9uPVdFQkRSSVZFUl9FWFQpOgorICAgICAgICBzZWxmLl9pbnN0YWxsX2V4dGVuc2lvbihl
eHRlbnNpb24pCisKKyAgICBkZWYgdXBkYXRlX3ByZWZlcmVuY2VzKHNlbGYpOgorICAgICAgICBm
b3Iga2V5LCB2YWx1ZSBpbiBGaXJlZm94UHJvZmlsZS5ERUZBVUxUX1BSRUZFUkVOQ0VTWydmcm96
ZW4nXS5pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5kZWZhdWx0X3ByZWZlcmVuY2VzW2tleV0g
PSB2YWx1ZQorICAgICAgICBzZWxmLl93cml0ZV91c2VyX3ByZWZzKHNlbGYuZGVmYXVsdF9wcmVm
ZXJlbmNlcykKKworICAgICMgUHJvcGVydGllcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBh
dGgoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBwcm9maWxlIGRpcmVjdG9y
eSB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyB1c2VkCisgICAgICAgICIiIgorICAgICAgICByZXR1
cm4gc2VsZi5wcm9maWxlX2RpcgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBvcnQoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBwb3J0IHRoYXQgV2ViRHJpdmVyIGlzIHdv
cmtpbmcgb24KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9wb3J0CisKKyAgICBA
cG9ydC5zZXR0ZXIKKyAgICBkZWYgcG9ydChzZWxmLCBwb3J0KToKKyAgICAgICAgIiIiCisgICAg
ICAgIFNldHMgdGhlIHBvcnQgdGhhdCBXZWJEcml2ZXIgd2lsbCBiZSBydW5uaW5nIG9uCisgICAg
ICAgICIiIgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwb3J0LCBpbnQpOgorICAgICAgICAg
ICAgcmFpc2UgV2ViRHJpdmVyRXhjZXB0aW9uKCJQb3J0IG5lZWRzIHRvIGJlIGFuIGludGVnZXIi
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwb3J0ID0gaW50KHBvcnQpCisgICAgICAgICAg
ICBpZiBwb3J0IDwgMSBvciBwb3J0ID4gNjU1MzU6CisgICAgICAgICAgICAgICAgcmFpc2UgV2Vi
RHJpdmVyRXhjZXB0aW9uKCJQb3J0IG51bWJlciBtdXN0IGJlIGluIHRoZSByYW5nZSAxLi42NTUz
NSIpCisgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKToKKyAgICAgICAgICAg
IHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiUG9ydCBuZWVkcyB0byBiZSBhbiBpbnRlZ2VyIikK
KyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5zZXRfcHJlZmVyZW5jZSgi
d2ViZHJpdmVyX2ZpcmVmb3hfcG9ydCIsIHNlbGYuX3BvcnQpCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgYWNjZXB0X3VudHJ1c3RlZF9jZXJ0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
ZGVmYXVsdF9wcmVmZXJlbmNlc1sid2ViZHJpdmVyX2FjY2VwdF91bnRydXN0ZWRfY2VydHMiXQor
CisgICAgQGFjY2VwdF91bnRydXN0ZWRfY2VydHMuc2V0dGVyCisgICAgZGVmIGFjY2VwdF91bnRy
dXN0ZWRfY2VydHMoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiB2YWx1ZSBub3QgaW4gW1RydWUs
IEZhbHNlXToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiUGxlYXNlIHBh
c3MgaW4gYSBCb29sZWFuIHRvIHRoaXMgY2FsbCIpCisgICAgICAgIHNlbGYuc2V0X3ByZWZlcmVu
Y2UoIndlYmRyaXZlcl9hY2NlcHRfdW50cnVzdGVkX2NlcnRzIiwgdmFsdWUpCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgYXNzdW1lX3VudHJ1c3RlZF9jZXJ0X2lzc3VlcihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZGVmYXVsdF9wcmVmZXJlbmNlc1sid2ViZHJpdmVyX2Fzc3VtZV91bnRy
dXN0ZWRfaXNzdWVyIl0KKworICAgIEBhc3N1bWVfdW50cnVzdGVkX2NlcnRfaXNzdWVyLnNldHRl
cgorICAgIGRlZiBhc3N1bWVfdW50cnVzdGVkX2NlcnRfaXNzdWVyKHNlbGYsIHZhbHVlKToKKyAg
ICAgICAgaWYgdmFsdWUgbm90IGluIFtUcnVlLCBGYWxzZV06CisgICAgICAgICAgICByYWlzZSBX
ZWJEcml2ZXJFeGNlcHRpb24oIlBsZWFzZSBwYXNzIGluIGEgQm9vbGVhbiB0byB0aGlzIGNhbGwi
KQorCisgICAgICAgIHNlbGYuc2V0X3ByZWZlcmVuY2UoIndlYmRyaXZlcl9hc3N1bWVfdW50cnVz
dGVkX2lzc3VlciIsIHZhbHVlKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5hdGl2ZV9ldmVu
dHNfZW5hYmxlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZGVmYXVsdF9wcmVmZXJlbmNl
c1snd2ViZHJpdmVyX2VuYWJsZV9uYXRpdmVfZXZlbnRzJ10KKworICAgIEBuYXRpdmVfZXZlbnRz
X2VuYWJsZWQuc2V0dGVyCisgICAgZGVmIG5hdGl2ZV9ldmVudHNfZW5hYmxlZChzZWxmLCB2YWx1
ZSk6CisgICAgICAgIGlmIHZhbHVlIG5vdCBpbiBbVHJ1ZSwgRmFsc2VdOgorICAgICAgICAgICAg
cmFpc2UgV2ViRHJpdmVyRXhjZXB0aW9uKCJQbGVhc2UgcGFzcyBpbiBhIEJvb2xlYW4gdG8gdGhp
cyBjYWxsIikKKyAgICAgICAgc2VsZi5zZXRfcHJlZmVyZW5jZSgid2ViZHJpdmVyX2VuYWJsZV9u
YXRpdmVfZXZlbnRzIiwgdmFsdWUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZW5jb2RlZChz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEEgemlwcGVkLCBiYXNlNjQgZW5jb2RlZCBzdHJp
bmcgb2YgcHJvZmlsZSBkaXJlY3RvcnkKKyAgICAgICAgZm9yIHVzZSB3aXRoIHJlbW90ZSBXZWJE
cml2ZXIgSlNPTiB3aXJlIHByb3RvY29sCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnVwZGF0
ZV9wcmVmZXJlbmNlcygpCisgICAgICAgIGZwID0gQnl0ZXNJTygpCisgICAgICAgIHppcHBlZCA9
IHppcGZpbGUuWmlwRmlsZShmcCwgJ3cnLCB6aXBmaWxlLlpJUF9ERUZMQVRFRCkKKyAgICAgICAg
cGF0aF9yb290ID0gbGVuKHNlbGYucGF0aCkgKyAxICAjIGFjY291bnQgZm9yIHRyYWlsaW5nIHNs
YXNoCisgICAgICAgIGZvciBiYXNlLCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKHNlbGYucGF0aCk6
CisgICAgICAgICAgICBmb3IgZnlsZSBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICBmaWxlbmFt
ZSA9IG9zLnBhdGguam9pbihiYXNlLCBmeWxlKQorICAgICAgICAgICAgICAgIHppcHBlZC53cml0
ZShmaWxlbmFtZSwgZmlsZW5hbWVbcGF0aF9yb290Ol0pCisgICAgICAgIHppcHBlZC5jbG9zZSgp
CisgICAgICAgIHJldHVybiBiYXNlNjQuYjY0ZW5jb2RlKGZwLmdldHZhbHVlKCkpLmRlY29kZSgn
VVRGLTgnKQorCisgICAgZGVmIHNldF9wcm94eShzZWxmLCBwcm94eSk6CisgICAgICAgIGltcG9y
dCB3YXJuaW5ncworCisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAiVGhpcyBt
ZXRob2QgaGFzIGJlZW4gZGVwcmVjYXRlZC4gUGxlYXNlIHBhc3MgaW4gdGhlIHByb3h5IG9iamVj
dCB0byB0aGUgRHJpdmVyIE9iamVjdCIsCisgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcp
CisgICAgICAgIGlmIHByb3h5IGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJwcm94eSBjYW4gbm90IGJlIE5vbmUiKQorCisgICAgICAgIGlmIHByb3h5LnByb3h5X3R5cGUg
aXMgUHJveHlUeXBlLlVOU1BFQ0lGSUVEOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAg
c2VsZi5zZXRfcHJlZmVyZW5jZSgibmV0d29yay5wcm94eS50eXBlIiwgcHJveHkucHJveHlfdHlw
ZVsnZmZfdmFsdWUnXSkKKworICAgICAgICBpZiBwcm94eS5wcm94eV90eXBlIGlzIFByb3h5VHlw
ZS5NQU5VQUw6CisgICAgICAgICAgICBzZWxmLnNldF9wcmVmZXJlbmNlKCJuZXR3b3JrLnByb3h5
Lm5vX3Byb3hpZXNfb24iLCBwcm94eS5ub19wcm94eSkKKyAgICAgICAgICAgIHNlbGYuX3NldF9t
YW51YWxfcHJveHlfcHJlZmVyZW5jZSgiZnRwIiwgcHJveHkuZnRwX3Byb3h5KQorICAgICAgICAg
ICAgc2VsZi5fc2V0X21hbnVhbF9wcm94eV9wcmVmZXJlbmNlKCJodHRwIiwgcHJveHkuaHR0cF9w
cm94eSkKKyAgICAgICAgICAgIHNlbGYuX3NldF9tYW51YWxfcHJveHlfcHJlZmVyZW5jZSgic3Ns
IiwgcHJveHkuc3NsX3Byb3h5KQorICAgICAgICAgICAgc2VsZi5fc2V0X21hbnVhbF9wcm94eV9w
cmVmZXJlbmNlKCJzb2NrcyIsIHByb3h5LnNvY2tzX3Byb3h5KQorICAgICAgICBlbGlmIHByb3h5
LnByb3h5X3R5cGUgaXMgUHJveHlUeXBlLlBBQzoKKyAgICAgICAgICAgIHNlbGYuc2V0X3ByZWZl
cmVuY2UoIm5ldHdvcmsucHJveHkuYXV0b2NvbmZpZ191cmwiLCBwcm94eS5wcm94eV9hdXRvY29u
ZmlnX3VybCkKKworICAgIGRlZiBfc2V0X21hbnVhbF9wcm94eV9wcmVmZXJlbmNlKHNlbGYsIGtl
eSwgc2V0dGluZyk6CisgICAgICAgIGlmIHNldHRpbmcgaXMgTm9uZSBvciBzZXR0aW5nIGlzICcn
OgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaG9zdF9kZXRhaWxzID0gc2V0dGluZy5z
cGxpdCgiOiIpCisgICAgICAgIHNlbGYuc2V0X3ByZWZlcmVuY2UoIm5ldHdvcmsucHJveHkuJXMi
ICUga2V5LCBob3N0X2RldGFpbHNbMF0pCisgICAgICAgIGlmIGxlbihob3N0X2RldGFpbHMpID4g
MToKKyAgICAgICAgICAgIHNlbGYuc2V0X3ByZWZlcmVuY2UoIm5ldHdvcmsucHJveHkuJXNfcG9y
dCIgJSBrZXksIGludChob3N0X2RldGFpbHNbMV0pKQorCisgICAgZGVmIF9jcmVhdGVfdGVtcGZv
bGRlcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSB0ZW1wIGZvbGRlciB0
byBzdG9yZSBVc2VyLmpzIGFuZCB0aGUgZXh0ZW5zaW9uCisgICAgICAgICIiIgorICAgICAgICBy
ZXR1cm4gdGVtcGZpbGUubWtkdGVtcCgpCisKKyAgICBkZWYgX3dyaXRlX3VzZXJfcHJlZnMoc2Vs
ZiwgdXNlcl9wcmVmcyk6CisgICAgICAgICIiIgorICAgICAgICB3cml0ZXMgdGhlIGN1cnJlbnQg
dXNlciBwcmVmcyBkaWN0aW9uYXJ5IHRvIGRpc2sKKyAgICAgICAgIiIiCisgICAgICAgIHdpdGgg
b3BlbihzZWxmLnVzZXJQcmVmcywgInciKSBhcyBmOgorICAgICAgICAgICAgZm9yIGtleSwgdmFs
dWUgaW4gdXNlcl9wcmVmcy5pdGVtcygpOgorICAgICAgICAgICAgICAgIGYud3JpdGUoJ3VzZXJf
cHJlZigiJXMiLCAlcyk7XG4nICUgKGtleSwganNvbi5kdW1wcyh2YWx1ZSkpKQorCisgICAgZGVm
IF9yZWFkX2V4aXN0aW5nX3VzZXJqcyhzZWxmLCB1c2VyanMpOgorICAgICAgICBpbXBvcnQgd2Fy
bmluZ3MKKworICAgICAgICBQUkVGX1JFID0gcmUuY29tcGlsZShyJ3VzZXJfcHJlZlwoIiguKiki
LFxzKC4qKVwpJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBvcGVuKHVzZXJqcykg
YXMgZjoKKyAgICAgICAgICAgICAgICBmb3IgdXNyIGluIGY6CisgICAgICAgICAgICAgICAgICAg
IG1hdGNoZXMgPSByZS5zZWFyY2goUFJFRl9SRSwgdXNyKQorICAgICAgICAgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlZmF1bHRfcHJlZmVyZW5jZXNbbWF0
Y2hlcy5ncm91cCgxKV0gPSBqc29uLmxvYWRzKG1hdGNoZXMuZ3JvdXAoMikpCisgICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICB3YXJu
aW5ncy53YXJuKCIoc2tpcHBpbmcpIGZhaWxlZCB0byBqc29uLmxvYWRzIGV4aXN0aW5nIHByZWZl
cmVuY2U6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVz
Lmdyb3VwKDEpICsgbWF0Y2hlcy5ncm91cCgyKSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
KyAgICAgICAgICAgICMgVGhlIHByb2ZpbGUgZ2l2ZW4gaGFzbid0IGhhZCBhbnkgY2hhbmdlcyBt
YWRlLCBpLmUgbm8gdXNlcnMuanMKKyAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiBfaW5zdGFs
bF9leHRlbnNpb24oc2VsZiwgYWRkb24sIHVucGFjaz1UcnVlKToKKyAgICAgICAgIiIiCisgICAg
ICAgICAgICBJbnN0YWxscyBhZGRvbiBmcm9tIGEgZmlsZXBhdGgsIHVybAorICAgICAgICAgICAg
b3IgZGlyZWN0b3J5IG9mIGFkZG9ucyBpbiB0aGUgcHJvZmlsZS4KKyAgICAgICAgICAgIC0gcGF0
aDogdXJsLCBhYnNvbHV0ZSBwYXRoIHRvIC54cGksIG9yIGRpcmVjdG9yeSBvZiBhZGRvbnMKKyAg
ICAgICAgICAgIC0gdW5wYWNrOiB3aGV0aGVyIHRvIHVucGFjayB1bmxlc3Mgc3BlY2lmaWVkIG90
aGVyd2lzZSBpbiB0aGUgaW5zdGFsbC5yZGYKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGFkZG9u
ID09IFdFQkRSSVZFUl9FWFQ6CisgICAgICAgICAgICBhZGRvbiA9IG9zLnBhdGguam9pbihvcy5w
YXRoLmRpcm5hbWUoX19maWxlX18pLCBXRUJEUklWRVJfRVhUKQorCisgICAgICAgIHRtcGRpciA9
IE5vbmUKKyAgICAgICAgeHBpZmlsZSA9IE5vbmUKKyAgICAgICAgaWYgYWRkb24uZW5kc3dpdGgo
Jy54cGknKToKKyAgICAgICAgICAgIHRtcGRpciA9IHRlbXBmaWxlLm1rZHRlbXAoc3VmZml4PScu
JyArIG9zLnBhdGguc3BsaXQoYWRkb24pWy0xXSkKKyAgICAgICAgICAgIGNvbXByZXNzZWRfZmls
ZSA9IHppcGZpbGUuWmlwRmlsZShhZGRvbiwgJ3InKQorICAgICAgICAgICAgZm9yIG5hbWUgaW4g
Y29tcHJlc3NlZF9maWxlLm5hbWVsaXN0KCk6CisgICAgICAgICAgICAgICAgaWYgbmFtZS5lbmRz
d2l0aCgnLycpOgorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2Rpcihvcy5w
YXRoLmpvaW4odG1wZGlyLCBuYW1lKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBvcy5tYWtl
ZGlycyhvcy5wYXRoLmpvaW4odG1wZGlyLCBuYW1lKSkKKyAgICAgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2Rpcihvcy5wYXRoLmRpcm5hbWUo
b3MucGF0aC5qb2luKHRtcGRpciwgbmFtZSkpKToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9z
Lm1ha2VkaXJzKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmpvaW4odG1wZGlyLCBuYW1lKSkpCisg
ICAgICAgICAgICAgICAgICAgIGRhdGEgPSBjb21wcmVzc2VkX2ZpbGUucmVhZChuYW1lKQorICAg
ICAgICAgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHRtcGRpciwgbmFtZSksICd3
YicpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGRhdGEpCisgICAgICAg
ICAgICB4cGlmaWxlID0gYWRkb24KKyAgICAgICAgICAgIGFkZG9uID0gdG1wZGlyCisKKyAgICAg
ICAgIyBkZXRlcm1pbmUgdGhlIGFkZG9uIGlkCisgICAgICAgIGFkZG9uX2RldGFpbHMgPSBzZWxm
Ll9hZGRvbl9kZXRhaWxzKGFkZG9uKQorICAgICAgICBhZGRvbl9pZCA9IGFkZG9uX2RldGFpbHMu
Z2V0KCdpZCcpCisgICAgICAgIGFzc2VydCBhZGRvbl9pZCwgJ1RoZSBhZGRvbiBpZCBjb3VsZCBu
b3QgYmUgZm91bmQ6ICVzJyAlIGFkZG9uCisKKyAgICAgICAgIyBjb3B5IHRoZSBhZGRvbiB0byB0
aGUgcHJvZmlsZQorICAgICAgICBleHRlbnNpb25zX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5w
cm9maWxlX2RpciwgJ2V4dGVuc2lvbnMnKQorICAgICAgICBhZGRvbl9wYXRoID0gb3MucGF0aC5q
b2luKGV4dGVuc2lvbnNfcGF0aCwgYWRkb25faWQpCisgICAgICAgIGlmIG5vdCB1bnBhY2sgYW5k
IG5vdCBhZGRvbl9kZXRhaWxzWyd1bnBhY2snXSBhbmQgeHBpZmlsZToKKyAgICAgICAgICAgIGlm
IG5vdCBvcy5wYXRoLmV4aXN0cyhleHRlbnNpb25zX3BhdGgpOgorICAgICAgICAgICAgICAgIG9z
Lm1ha2VkaXJzKGV4dGVuc2lvbnNfcGF0aCkKKyAgICAgICAgICAgIHNodXRpbC5jb3B5KHhwaWZp
bGUsIGFkZG9uX3BhdGggKyAnLnhwaScpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBu
b3Qgb3MucGF0aC5leGlzdHMoYWRkb25fcGF0aCk6CisgICAgICAgICAgICAgICAgc2h1dGlsLmNv
cHl0cmVlKGFkZG9uLCBhZGRvbl9wYXRoLCBzeW1saW5rcz1UcnVlKQorCisgICAgICAgICMgcmVt
b3ZlIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LCBpZiBhbnkKKyAgICAgICAgaWYgdG1wZGlyOgor
ICAgICAgICAgICAgc2h1dGlsLnJtdHJlZSh0bXBkaXIpCisKKyAgICBkZWYgX2FkZG9uX2RldGFp
bHMoc2VsZiwgYWRkb25fcGF0aCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgZGlj
dGlvbmFyeSBvZiBkZXRhaWxzIGFib3V0IHRoZSBhZGRvbi4KKworICAgICAgICA6cGFyYW0gYWRk
b25fcGF0aDogcGF0aCB0byB0aGUgYWRkLW9uIGRpcmVjdG9yeSBvciBYUEkKKworICAgICAgICBS
ZXR1cm5zOjoKKworICAgICAgICAgICAgeydpZCc6ICAgICAgdSdyYWluYm93QGNvbG9ycy5vcmcn
LCAjIGlkIG9mIHRoZSBhZGRvbgorICAgICAgICAgICAgICd2ZXJzaW9uJzogdScxLjQnLCAgICAg
ICAgICAgICAgICAjIHZlcnNpb24gb2YgdGhlIGFkZG9uCisgICAgICAgICAgICAgJ25hbWUnOiAg
ICB1J1JhaW5ib3cnLCAgICAgICAgICAgICMgbmFtZSBvZiB0aGUgYWRkb24KKyAgICAgICAgICAg
ICAndW5wYWNrJzogIEZhbHNlIH0gICAgICAgICAgICAgICAgIyB3aGV0aGVyIHRvIHVucGFjayB0
aGUgYWRkb24KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGV0YWlscyA9IHsKKyAgICAgICAgICAg
ICdpZCc6IE5vbmUsCisgICAgICAgICAgICAndW5wYWNrJzogRmFsc2UsCisgICAgICAgICAgICAn
bmFtZSc6IE5vbmUsCisgICAgICAgICAgICAndmVyc2lvbic6IE5vbmUKKyAgICAgICAgfQorCisg
ICAgICAgIGRlZiBnZXRfbmFtZXNwYWNlX2lkKGRvYywgdXJsKToKKyAgICAgICAgICAgIGF0dHJp
YnV0ZXMgPSBkb2MuZG9jdW1lbnRFbGVtZW50LmF0dHJpYnV0ZXMKKyAgICAgICAgICAgIG5hbWVz
cGFjZSA9ICIiCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShhdHRyaWJ1dGVzLmxlbmd0aCk6
CisgICAgICAgICAgICAgICAgaWYgYXR0cmlidXRlcy5pdGVtKGkpLnZhbHVlID09IHVybDoKKyAg
ICAgICAgICAgICAgICAgICAgaWYgIjoiIGluIGF0dHJpYnV0ZXMuaXRlbShpKS5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgIyBJZiB0aGUgbmFtZXNwYWNlIGlzIG5vdCB0aGUgZGVmYXVs
dCBvbmUgcmVtb3ZlICd4bG1uczonCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2Ug
PSBhdHRyaWJ1dGVzLml0ZW0oaSkubmFtZS5zcGxpdCgnOicpWzFdICsgIjoiCisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgcmV0dXJuIG5hbWVzcGFjZQorCisgICAg
ICAgIGRlZiBnZXRfdGV4dChlbGVtZW50KToKKyAgICAgICAgICAgICIiIlJldHJpZXZlIHRoZSB0
ZXh0IHZhbHVlIG9mIGEgZ2l2ZW4gbm9kZSIiIgorICAgICAgICAgICAgcmMgPSBbXQorICAgICAg
ICAgICAgZm9yIG5vZGUgaW4gZWxlbWVudC5jaGlsZE5vZGVzOgorICAgICAgICAgICAgICAgIGlm
IG5vZGUubm9kZVR5cGUgPT0gbm9kZS5URVhUX05PREU6CisgICAgICAgICAgICAgICAgICAgIHJj
LmFwcGVuZChub2RlLmRhdGEpCisgICAgICAgICAgICByZXR1cm4gJycuam9pbihyYykuc3RyaXAo
KQorCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhhZGRvbl9wYXRoKToKKyAgICAgICAg
ICAgIHJhaXNlIElPRXJyb3IoJ0FkZC1vbiBwYXRoIGRvZXMgbm90IGV4aXN0OiAlcycgJSBhZGRv
bl9wYXRoKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHppcGZpbGUuaXNfemlwZmls
ZShhZGRvbl9wYXRoKToKKyAgICAgICAgICAgICAgICAjIEJ1ZyA5NDQzNjEgLSBXZSBjYW5ub3Qg
dXNlICd3aXRoJyB0b2dldGhlciB3aXRoIHppcEZpbGUgYmVjYXVzZQorICAgICAgICAgICAgICAg
ICMgaXQgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24gdGhyb3duIGluIFB5dGhvbiAyLjYuCisgICAg
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2ZpbGUgPSB6
aXBmaWxlLlppcEZpbGUoYWRkb25fcGF0aCwgJ3InKQorICAgICAgICAgICAgICAgICAgICBtYW5p
ZmVzdCA9IGNvbXByZXNzZWRfZmlsZS5yZWFkKCdpbnN0YWxsLnJkZicpCisgICAgICAgICAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9maWxlLmNsb3NlKCkK
KyAgICAgICAgICAgIGVsaWYgb3MucGF0aC5pc2RpcihhZGRvbl9wYXRoKToKKyAgICAgICAgICAg
ICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGFkZG9uX3BhdGgsICdpbnN0YWxsLnJkZicpLCAn
cicpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0gZi5yZWFkKCkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignQWRkLW9uIHBhdGgg
aXMgbmVpdGhlciBhbiBYUEkgbm9yIGEgZGlyZWN0b3J5OiAlcycgJSBhZGRvbl9wYXRoKQorICAg
ICAgICBleGNlcHQgKElPRXJyb3IsIEtleUVycm9yKSBhcyBlOgorICAgICAgICAgICAgcmFpc2Ug
QWRkb25Gb3JtYXRFcnJvcihzdHIoZSksIHN5cy5leGNfaW5mbygpWzJdKQorCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGRvYyA9IG1pbmlkb20ucGFyc2VTdHJpbmcobWFuaWZlc3QpCisKKyAg
ICAgICAgICAgICMgR2V0IHRoZSBuYW1lc3BhY2VzIGFiYnJldmlhdGlvbnMKKyAgICAgICAgICAg
IGVtID0gZ2V0X25hbWVzcGFjZV9pZChkb2MsICdodHRwOi8vd3d3Lm1vemlsbGEub3JnLzIwMDQv
ZW0tcmRmIycpCisgICAgICAgICAgICByZGYgPSBnZXRfbmFtZXNwYWNlX2lkKGRvYywgJ2h0dHA6
Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnKQorCisgICAgICAgICAgICBk
ZXNjcmlwdGlvbiA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShyZGYgKyAnRGVzY3JpcHRpb24n
KS5pdGVtKDApCisgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbiBpcyBOb25lOgorICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdEZXNjcmlwdGlv
bicpLml0ZW0oMCkKKyAgICAgICAgICAgIGZvciBub2RlIGluIGRlc2NyaXB0aW9uLmNoaWxkTm9k
ZXM6CisgICAgICAgICAgICAgICAgIyBSZW1vdmUgdGhlIG5hbWVzcGFjZSBwcmVmaXggZnJvbSB0
aGUgdGFnIGZvciBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgZW50cnkgPSBub2RlLm5vZGVO
YW1lLnJlcGxhY2UoZW0sICIiKQorICAgICAgICAgICAgICAgIGlmIGVudHJ5IGluIGRldGFpbHMu
a2V5cygpOgorICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLnVwZGF0ZSh7ZW50cnk6IGdldF90
ZXh0KG5vZGUpfSkKKyAgICAgICAgICAgIGlmIGRldGFpbHMuZ2V0KCdpZCcpIGlzIE5vbmU6Cisg
ICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoZGVzY3JpcHRpb24uYXR0cmlidXRlcy5sZW5n
dGgpOgorICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPSBkZXNjcmlwdGlvbi5hdHRyaWJ1
dGVzLml0ZW0oaSkKKyAgICAgICAgICAgICAgICAgICAgaWYgYXR0cmlidXRlLm5hbWUgPT0gZW0g
KyAnaWQnOgorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy51cGRhdGUoeydpZCc6IGF0
dHJpYnV0ZS52YWx1ZX0pCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg
ICAgIHJhaXNlIEFkZG9uRm9ybWF0RXJyb3Ioc3RyKGUpLCBzeXMuZXhjX2luZm8oKVsyXSkKKwor
ICAgICAgICAjIHR1cm4gdW5wYWNrIGludG8gYSB0cnVlL2ZhbHNlIHZhbHVlCisgICAgICAgIGlm
IGlzaW5zdGFuY2UoZGV0YWlsc1sndW5wYWNrJ10sIHN0cik6CisgICAgICAgICAgICBkZXRhaWxz
Wyd1bnBhY2snXSA9IGRldGFpbHNbJ3VucGFjayddLmxvd2VyKCkgPT0gJ3RydWUnCisKKyAgICAg
ICAgIyBJZiBubyBJRCBpcyBzZXQsIHRoZSBhZGQtb24gaXMgaW52YWxpZAorICAgICAgICBpZiBk
ZXRhaWxzLmdldCgnaWQnKSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgQWRkb25Gb3JtYXRF
cnJvcignQWRkLW9uIGlkIGNvdWxkIG5vdCBiZSBmb3VuZC4nKQorCisgICAgICAgIHJldHVybiBk
ZXRhaWxzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9vcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvb3B0aW9ucy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTY4ZDAyN2MzMTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvZmlyZWZveC9vcHRpb25zLnB5CkBAIC0wLDAgKzEsMTYwIEBACisjIExpY2Vu
c2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQor
IyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNF
IGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2Vz
IHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIu
MCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGlu
IGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBv
ZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9M
SUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdy
ZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNl
bnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFO
VElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBs
aWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJu
aW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KK2Zy
b20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IEludmFsaWRBcmd1bWVudEV4Y2Vw
dGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLnByb3h5IGltcG9ydCBQcm94eQor
ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveC5maXJlZm94X2JpbmFyeSBpbXBvcnQgRmly
ZWZveEJpbmFyeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZveC5maXJlZm94X3Byb2Zp
bGUgaW1wb3J0IEZpcmVmb3hQcm9maWxlCisKKworY2xhc3MgTG9nKG9iamVjdCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmxldmVsID0gTm9uZQorCisgICAgZGVmIHRv
X2NhcGFiaWxpdGllcyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5sZXZlbCBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIHJldHVybiB7ImxvZyI6IHsibGV2ZWwiOiBzZWxmLmxldmVsfX0KKyAgICAg
ICAgcmV0dXJuIHt9CisKKworY2xhc3MgT3B0aW9ucyhvYmplY3QpOgorICAgIEtFWSA9ICJtb3o6
ZmlyZWZveE9wdGlvbnMiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYu
X2JpbmFyeSA9IE5vbmUKKyAgICAgICAgc2VsZi5fcHJlZmVyZW5jZXMgPSB7fQorICAgICAgICBz
ZWxmLl9wcm9maWxlID0gTm9uZQorICAgICAgICBzZWxmLl9wcm94eSA9IE5vbmUKKyAgICAgICAg
c2VsZi5fYXJndW1lbnRzID0gW10KKyAgICAgICAgc2VsZi5sb2cgPSBMb2coKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGJpbmFyeShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgRmly
ZWZveEJpbmFyeSBpbnN0YW5jZSIiIgorICAgICAgICByZXR1cm4gc2VsZi5fYmluYXJ5CisKKyAg
ICBAYmluYXJ5LnNldHRlcgorICAgIGRlZiBiaW5hcnkoc2VsZiwgbmV3X2JpbmFyeSk6CisgICAg
ICAgICIiIlNldHMgbG9jYXRpb24gb2YgdGhlIGJyb3dzZXIgYmluYXJ5LCBlaXRoZXIgYnkgc3Ry
aW5nIG9yCisgICAgICAgIGBgRmlyZWZveEJpbmFyeWBgIGluc3RhbmNlLgorCisgICAgICAgICIi
IgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShuZXdfYmluYXJ5LCBGaXJlZm94QmluYXJ5KToK
KyAgICAgICAgICAgIG5ld19iaW5hcnkgPSBGaXJlZm94QmluYXJ5KG5ld19iaW5hcnkpCisgICAg
ICAgIHNlbGYuX2JpbmFyeSA9IG5ld19iaW5hcnkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBi
aW5hcnlfbG9jYXRpb24oc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGxvY2F0aW9uIG9m
IHRoZSBiaW5hcnkuIiIiCisgICAgICAgIHJldHVybiBzZWxmLmJpbmFyeS5fc3RhcnRfY21kCisK
KyAgICBAYmluYXJ5X2xvY2F0aW9uLnNldHRlciAgIyBub3FhCisgICAgZGVmIGJpbmFyeV9sb2Nh
dGlvbihzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIiBTZXRzIHRoZSBsb2NhdGlvbiBvZiB0aGUg
YnJvd3NlciBiaW5hcnkgYnkgc3RyaW5nICIiIgorICAgICAgICBzZWxmLmJpbmFyeSA9IHZhbHVl
CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlZmVyZW5jZXMoc2VsZik6CisgICAgICAgICIi
IlJldHVybnMgYSBkaWN0IG9mIHByZWZlcmVuY2VzLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5f
cHJlZmVyZW5jZXMKKworICAgIGRlZiBzZXRfcHJlZmVyZW5jZShzZWxmLCBuYW1lLCB2YWx1ZSk6
CisgICAgICAgICIiIlNldHMgYSBwcmVmZXJlbmNlLiIiIgorICAgICAgICBzZWxmLl9wcmVmZXJl
bmNlc1tuYW1lXSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJveHkoc2VsZik6
CisgICAgICAgICIiIiByZXR1cm5zIFByb3h5IGlmIHNldCBvdGhlcndpc2UgTm9uZS4iIiIKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Byb3h5CisKKyAgICBAcHJveHkuc2V0dGVyCisgICAgZGVmIHBy
b3h5KHNlbGYsIHZhbHVlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIFByb3h5
KToKKyAgICAgICAgICAgIHJhaXNlIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiT25seSBQcm94
eSBvYmplY3RzIGNhbiBiZSBwYXNzZWQgaW4uIikKKyAgICAgICAgc2VsZi5fcHJveHkgPSB2YWx1
ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHByb2ZpbGUoc2VsZik6CisgICAgICAgICIiIlJl
dHVybnMgdGhlIEZpcmVmb3ggcHJvZmlsZSB0byB1c2UuIiIiCisgICAgICAgIHJldHVybiBzZWxm
Ll9wcm9maWxlCisKKyAgICBAcHJvZmlsZS5zZXR0ZXIKKyAgICBkZWYgcHJvZmlsZShzZWxmLCBu
ZXdfcHJvZmlsZSk6CisgICAgICAgICIiIlNldHMgbG9jYXRpb24gb2YgdGhlIGJyb3dzZXIgcHJv
ZmlsZSB0byB1c2UsIGVpdGhlciBieSBzdHJpbmcKKyAgICAgICAgb3IgYGBGaXJlZm94UHJvZmls
ZWBgLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShuZXdfcHJvZmls
ZSwgRmlyZWZveFByb2ZpbGUpOgorICAgICAgICAgICAgbmV3X3Byb2ZpbGUgPSBGaXJlZm94UHJv
ZmlsZShuZXdfcHJvZmlsZSkKKyAgICAgICAgc2VsZi5fcHJvZmlsZSA9IG5ld19wcm9maWxlCisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgYXJndW1lbnRzKHNlbGYpOgorICAgICAgICAiIiJSZXR1
cm5zIGEgbGlzdCBvZiBicm93c2VyIHByb2Nlc3MgYXJndW1lbnRzLiIiIgorICAgICAgICByZXR1
cm4gc2VsZi5fYXJndW1lbnRzCisKKyAgICBkZWYgYWRkX2FyZ3VtZW50KHNlbGYsIGFyZ3VtZW50
KToKKyAgICAgICAgIiIiQWRkIGFyZ3VtZW50IHRvIGJlIHVzZWQgZm9yIHRoZSBicm93c2VyIHBy
b2Nlc3MuIiIiCisgICAgICAgIGlmIGFyZ3VtZW50IGlzIE5vbmU6CisgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgc2VsZi5fYXJndW1lbnRzLmFwcGVuZChhcmd1bWVudCkK
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBoZWFkbGVzcyhzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGhlYWRsZXNzIGFyZ3VtZW50IGlzIHNl
dAorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuICctaGVhZGxlc3MnIGluIHNlbGYuX2FyZ3Vt
ZW50cworCisgICAgZGVmIHNldF9oZWFkbGVzcyhzZWxmLCBoZWFkbGVzcz1UcnVlKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFNldHMgdGhlIGhlYWRsZXNzIGFyZ3VtZW50CisKKyAgICAgICAgQXJn
czoKKyAgICAgICAgICBoZWFkbGVzczogYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHRvIHNldCB0
aGUgaGVhZGxlc3Mgb3B0aW9uCisgICAgICAgICIiIgorICAgICAgICBpZiBoZWFkbGVzczoKKyAg
ICAgICAgICAgIHNlbGYuX2FyZ3VtZW50cy5hcHBlbmQoJy1oZWFkbGVzcycpCisgICAgICAgIGVs
aWYgJy1oZWFkbGVzcycgaW4gc2VsZi5fYXJndW1lbnRzOgorICAgICAgICAgICAgc2VsZi5fYXJn
dW1lbnRzLnJlbW92ZSgnLWhlYWRsZXNzJykKKworICAgIGRlZiB0b19jYXBhYmlsaXRpZXMoc2Vs
Zik6CisgICAgICAgICIiIk1hcnNoYWxzIHRoZSBGaXJlZm94IG9wdGlvbnMgdG8gYSBgbW96OmZp
cmVmb3hPcHRpb25zYAorICAgICAgICBvYmplY3QuCisKKyAgICAgICAgIiIiCisgICAgICAgICMg
VGhpcyBpbnRlbnRpb25hbGx5IGxvb2tzIGF0IHRoZSBpbnRlcm5hbCBwcm9wZXJ0aWVzCisgICAg
ICAgICMgc28gaWYgYSBiaW5hcnkgb3IgcHJvZmlsZSBoYXMgX25vdF8gYmVlbiBzZXQsCisgICAg
ICAgICMgaXQgd2lsbCBkZWZlciB0byBnZWNrb2RyaXZlciB0byBmaW5kIHRoZSBzeXN0ZW0gRmly
ZWZveAorICAgICAgICAjIGFuZCBnZW5lcmF0ZSBhIGZyZXNoIHByb2ZpbGUuCisgICAgICAgIG9w
dHMgPSB7fQorCisgICAgICAgIGlmIHNlbGYuX2JpbmFyeSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIG9wdHNbImJpbmFyeSJdID0gc2VsZi5fYmluYXJ5Ll9zdGFydF9jbWQKKyAgICAgICAgaWYg
bGVuKHNlbGYuX3ByZWZlcmVuY2VzKSA+IDA6CisgICAgICAgICAgICBvcHRzWyJwcmVmcyJdID0g
c2VsZi5fcHJlZmVyZW5jZXMKKyAgICAgICAgaWYgc2VsZi5fcHJveHkgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICBzZWxmLl9wcm94eS5hZGRfdG9fY2FwYWJpbGl0aWVzKG9wdHMpCisgICAgICAg
IGlmIHNlbGYuX3Byb2ZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBvcHRzWyJwcm9maWxl
Il0gPSBzZWxmLl9wcm9maWxlLmVuY29kZWQKKyAgICAgICAgaWYgbGVuKHNlbGYuX2FyZ3VtZW50
cykgPiAwOgorICAgICAgICAgICAgb3B0c1siYXJncyJdID0gc2VsZi5fYXJndW1lbnRzCisKKyAg
ICAgICAgb3B0cy51cGRhdGUoc2VsZi5sb2cudG9fY2FwYWJpbGl0aWVzKCkpCisKKyAgICAgICAg
aWYgbGVuKG9wdHMpID4gMDoKKyAgICAgICAgICAgIHJldHVybiB7T3B0aW9ucy5LRVk6IG9wdHN9
CisgICAgICAgIHJldHVybiB7fQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvcmVtb3RlX2Nvbm5lY3Rpb24u
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvZmlyZWZveC9yZW1vdGVfY29ubmVjdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNGU4OTRmMTU4NzcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9yZW1v
dGVfY29ubmVjdGlvbi5weQpAQCAtMCwwICsxLDM0IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIucmVtb3RlLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBSZW1vdGVDb25uZWN0aW9u
CisKKworY2xhc3MgRmlyZWZveFJlbW90ZUNvbm5lY3Rpb24oUmVtb3RlQ29ubmVjdGlvbik6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbW90ZV9zZXJ2ZXJfYWRkciwga2VlcF9hbGl2ZT1UcnVl
KToKKyAgICAgICAgUmVtb3RlQ29ubmVjdGlvbi5fX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVy
X2FkZHIsIGtlZXBfYWxpdmUpCisKKyAgICAgICAgc2VsZi5fY29tbWFuZHNbIkdFVF9DT05URVhU
Il0gPSAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL21vei9jb250ZXh0JykKKyAgICAgICAg
c2VsZi5fY29tbWFuZHNbIlNFVF9DT05URVhUIl0gPSAoIlBPU1QiLCAiL3Nlc3Npb24vJHNlc3Np
b25JZC9tb3ovY29udGV4dCIpCisgICAgICAgIHNlbGYuX2NvbW1hbmRzWyJFTEVNRU5UX0dFVF9B
Tk9OWU1PVVNfQ0hJTERSRU4iXSA9IFwKKyAgICAgICAgICAgICgiUE9TVCIsICIvc2Vzc2lvbi8k
c2Vzc2lvbklkL21vei94YmwvJGlkL2Fub255bW91c19jaGlsZHJlbiIpCisgICAgICAgIHNlbGYu
X2NvbW1hbmRzWyJFTEVNRU5UX0ZJTkRfQU5PTllNT1VTX0VMRU1FTlRTX0JZX0FUVFJJQlVURSJd
ID0gXAorICAgICAgICAgICAgKCJQT1NUIiwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvbW96L3hibC8k
aWQvYW5vbnltb3VzX2J5X2F0dHJpYnV0ZSIpCisgICAgICAgIHNlbGYuX2NvbW1hbmRzWyJJTlNU
QUxMX0FERE9OIl0gPSBcCisgICAgICAgICAgICAoIlBPU1QiLCAiL3Nlc3Npb24vJHNlc3Npb25J
ZC9tb3ovYWRkb24vaW5zdGFsbCIpCisgICAgICAgIHNlbGYuX2NvbW1hbmRzWyJVTklOU1RBTExf
QURET04iXSA9IFwKKyAgICAgICAgICAgICgiUE9TVCIsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL21v
ei9hZGRvbi91bmluc3RhbGwiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvc2VydmljZS5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94
L3NlcnZpY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY3NjJl
YjdjYmU5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvc2VydmljZS5weQpAQCAtMCwwICsxLDU0
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uIGltcG9ydCBzZXJ2aWNl
CisKKworY2xhc3MgU2VydmljZShzZXJ2aWNlLlNlcnZpY2UpOgorICAgICIiIk9iamVjdCB0aGF0
IG1hbmFnZXMgdGhlIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyBvZiB0aGUKKyAgICBHZWNrb0RyaXZl
ci4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQ9MCwg
c2VydmljZV9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIGxvZ19wYXRoPSJnZWNrb2RyaXZl
ci5sb2ciLCBlbnY9Tm9uZSk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2Yg
dGhlIEdlY2tvRHJpdmVyIHJlbW90ZSBzZXJ2aWNlIHByb3h5LgorCisgICAgICAgIEdlY2tvRHJp
dmVyIHByb3ZpZGVzIGEgSFRUUCBpbnRlcmZhY2Ugc3BlYWtpbmcgdGhlIFczQyBXZWJEcml2ZXIK
KyAgICAgICAgcHJvdG9jb2wgdG8gTWFyaW9uZXR0ZS4KKworICAgICAgICA6cGFyYW0gZXhlY3V0
YWJsZV9wYXRoOiBQYXRoIHRvIHRoZSBHZWNrb0RyaXZlciBiaW5hcnkuCisgICAgICAgIDpwYXJh
bSBwb3J0OiBSdW4gdGhlIHJlbW90ZSBzZXJ2aWNlIG9uIGEgc3BlY2lmaWVkIHBvcnQuCisgICAg
ICAgICAgICBEZWZhdWx0cyB0byAwLCB3aGljaCBiaW5kcyB0byBhIHJhbmRvbSBvcGVuIHBvcnQg
b2YgdGhlCisgICAgICAgICAgICBzeXN0ZW0ncyBjaG9vc2luZy4KKyAgICAgICAgOnBhcmFtIHNl
cnZpY2VfYXJnczogT3B0aW9uYWwgbGlzdCBvZiBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUKKyAg
ICAgICAgICAgIEdlY2tvRHJpdmVyIGJpbmFyeS4KKyAgICAgICAgOnBhcmFtIGxvZ19wYXRoOiBP
cHRpb25hbCBwYXRoIGZvciB0aGUgR2Vja29Ecml2ZXIgdG8gbG9nIHRvLgorICAgICAgICAgICAg
RGVmYXVsdHMgdG8gX2dlY2tvZHJpdmVyLmxvZ18gaW4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJl
Y3RvcnkuCisgICAgICAgIDpwYXJhbSBlbnY6IE9wdGlvbmFsIGRpY3Rpb25hcnkgb2Ygb3V0cHV0
IHZhcmlhYmxlcyB0byBleHBvc2UKKyAgICAgICAgICAgIGluIHRoZSBzZXJ2aWNlcycgZW52aXJv
bm1lbnQuCisKKyAgICAgICAgIiIiCisgICAgICAgIGxvZ19maWxlID0gb3Blbihsb2dfcGF0aCwg
ImErIikgaWYgbG9nX3BhdGggaXMgbm90IE5vbmUgYW5kIGxvZ19wYXRoICE9ICIiIGVsc2UgTm9u
ZQorCisgICAgICAgIHNlcnZpY2UuU2VydmljZS5fX2luaXRfXygKKyAgICAgICAgICAgIHNlbGYs
IGV4ZWN1dGFibGVfcGF0aCwgcG9ydD1wb3J0LCBsb2dfZmlsZT1sb2dfZmlsZSwgZW52PWVudikK
KyAgICAgICAgc2VsZi5zZXJ2aWNlX2FyZ3MgPSBzZXJ2aWNlX2FyZ3Mgb3IgW10KKworICAgIGRl
ZiBjb21tYW5kX2xpbmVfYXJncyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFsiLS1wb3J0IiwgIiVk
IiAlIHNlbGYucG9ydF0gKyBzZWxmLnNlcnZpY2VfYXJncworCisgICAgZGVmIHNlbmRfcmVtb3Rl
X3NodXRkb3duX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94
L3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9maXJlZm94L3dlYmRyaXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uODQ2OTdhMzMwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC93
ZWJkcml2ZXIucHkKQEAgLTAsMCArMSwyNjEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgoraW1wb3J0IHdhcm5pbmdzCisKK3Ry
eToKKyAgICBpbXBvcnQgaHR0cC5jbGllbnQgYXMgaHR0cF9jbGllbnQKK2V4Y2VwdCBJbXBvcnRF
cnJvcjoKKyAgICBpbXBvcnQgaHR0cGxpYiBhcyBodHRwX2NsaWVudAorCit0cnk6CisgICAgYmFz
ZXN0cmluZworZXhjZXB0IE5hbWVFcnJvcjogICMgUHl0aG9uIDMueAorICAgIGJhc2VzdHJpbmcg
PSBzdHIKKworaW1wb3J0IHNodXRpbAoraW1wb3J0IHNvY2tldAoraW1wb3J0IHN5cworZnJvbSBj
b250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZl
ci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMK
K2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZl
ciBhcyBSZW1vdGVXZWJEcml2ZXIKKworZnJvbSAuZXh0ZW5zaW9uX2Nvbm5lY3Rpb24gaW1wb3J0
IEV4dGVuc2lvbkNvbm5lY3Rpb24KK2Zyb20gLmZpcmVmb3hfYmluYXJ5IGltcG9ydCBGaXJlZm94
QmluYXJ5Citmcm9tIC5maXJlZm94X3Byb2ZpbGUgaW1wb3J0IEZpcmVmb3hQcm9maWxlCitmcm9t
IC5vcHRpb25zIGltcG9ydCBPcHRpb25zCitmcm9tIC5yZW1vdGVfY29ubmVjdGlvbiBpbXBvcnQg
RmlyZWZveFJlbW90ZUNvbm5lY3Rpb24KK2Zyb20gLnNlcnZpY2UgaW1wb3J0IFNlcnZpY2UKK2Zy
b20gLndlYmVsZW1lbnQgaW1wb3J0IEZpcmVmb3hXZWJFbGVtZW50CisKKworY2xhc3MgV2ViRHJp
dmVyKFJlbW90ZVdlYkRyaXZlcik6CisKKyAgICAjIFRoZXJlIGlzIG5vIG5hdGl2ZSBldmVudCBz
dXBwb3J0IG9uIE1hYworICAgIE5BVElWRV9FVkVOVFNfQUxMT1dFRCA9IHN5cy5wbGF0Zm9ybSAh
PSAiZGFyd2luIgorCisgICAgQ09OVEVYVF9DSFJPTUUgPSAiY2hyb21lIgorICAgIENPTlRFWFRf
Q09OVEVOVCA9ICJjb250ZW50IgorCisgICAgX3dlYl9lbGVtZW50X2NscyA9IEZpcmVmb3hXZWJF
bGVtZW50CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlyZWZveF9wcm9maWxlPU5vbmUsIGZp
cmVmb3hfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHRpbWVvdXQ9MzAsIGNhcGFiaWxp
dGllcz1Ob25lLCBwcm94eT1Ob25lLAorICAgICAgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGg9
ImdlY2tvZHJpdmVyIiwgb3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgICAgICBsb2dfcGF0aD0i
Z2Vja29kcml2ZXIubG9nIiwgZmlyZWZveF9vcHRpb25zPU5vbmUpOgorICAgICAgICAiIiJTdGFy
dHMgYSBuZXcgbG9jYWwgc2Vzc2lvbiBvZiBGaXJlZm94LgorCisgICAgICAgIEJhc2VkIG9uIHRo
ZSBjb21iaW5hdGlvbiBhbmQgc3BlY2lmaWNpdHkgb2YgdGhlIHZhcmlvdXMga2V5d29yZAorICAg
ICAgICBhcmd1bWVudHMsIGEgY2FwYWJpbGl0aWVzIGRpY3Rpb25hcnkgd2lsbCBiZSBjb25zdHJ1
Y3RlZCB0aGF0CisgICAgICAgIGlzIHBhc3NlZCB0byB0aGUgcmVtb3RlIGVuZC4KKworICAgICAg
ICBUaGUga2V5d29yZCBhcmd1bWVudHMgZ2l2ZW4gdG8gdGhpcyBjb25zdHJ1Y3RvciBhcmUgaGVs
cGVycyB0bworICAgICAgICBtb3JlIGVhc2lseSBhbGxvdyBGaXJlZm94IFdlYkRyaXZlciBzZXNz
aW9ucyB0byBiZSBjdXN0b21pc2VkCisgICAgICAgIHdpdGggZGlmZmVyZW50IG9wdGlvbnMuICBU
aGV5IGFyZSBtYXBwZWQgb24gdG8gYSBjYXBhYmlsaXRpZXMKKyAgICAgICAgZGljdGlvbmFyeSB0
aGF0IGlzIHBhc3NlZCBvbiB0byB0aGUgcmVtb3RlIGVuZC4KKworICAgICAgICBBcyBzb21lIG9m
IHRoZSBvcHRpb25zLCBzdWNoIGFzIGBmaXJlZm94X3Byb2ZpbGVgIGFuZAorICAgICAgICBgb3B0
aW9ucy5wcm9maWxlYCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCBwcmVjZWRlbmNlIGlzCisgICAg
ICAgIGdpdmVuIGZyb20gaG93IHNwZWNpZmljIHRoZSBzZXR0aW5nIGlzLiAgYGNhcGFiaWxpdGll
c2AgaXMgdGhlCisgICAgICAgIGxlYXN0IHNwZWNpZmljIGtleXdvcmQgYXJndW1lbnQsIGZvbGxv
d2VkIGJ5IGBvcHRpb25zYCwKKyAgICAgICAgZm9sbG93ZWQgYnkgYGZpcmVmb3hfYmluYXJ5YCBh
bmQgYGZpcmVmb3hfcHJvZmlsZWAuCisKKyAgICAgICAgSW4gcHJhY3RpY2UgdGhpcyBtZWFucyB0
aGF0IGlmIGBmaXJlZm94X3Byb2ZpbGVgIGFuZAorICAgICAgICBgb3B0aW9ucy5wcm9maWxlYCBh
cmUgYm90aCBzZXQsIHRoZSBzZWxlY3RlZCBwcm9maWxlCisgICAgICAgIGluc3RhbmNlIHdpbGwg
YWx3YXlzIGNvbWUgZnJvbSB0aGUgbW9zdCBzcGVjaWZpYyB2YXJpYWJsZS4KKyAgICAgICAgSW4g
dGhpcyBjYXNlIHRoYXQgd291bGQgYmUgYGZpcmVmb3hfcHJvZmlsZWAuICBUaGlzIHdpbGwgcmVz
dWx0IGluCisgICAgICAgIGBvcHRpb25zLnByb2ZpbGVgIHRvIGJlIGlnbm9yZWQgYmVjYXVzZSBp
dCBpcyBjb25zaWRlcmVkCisgICAgICAgIGEgbGVzcyBzcGVjaWZpYyBzZXR0aW5nIHRoYW4gdGhl
IHRvcC1sZXZlbCBgZmlyZWZveF9wcm9maWxlYAorICAgICAgICBrZXl3b3JkIGFyZ3VtZW50LiAg
U2ltaWxhcmlseSwgaWYgeW91IGhhZCBzcGVjaWZpZWQgYQorICAgICAgICBgY2FwYWJpbGl0aWVz
WyJtb3o6ZmlyZWZveE9wdGlvbnMiXVsicHJvZmlsZSJdYCBCYXNlNjQgc3RyaW5nLAorICAgICAg
ICB0aGlzIHdvdWxkIHJhbmsgYmVsb3cgYG9wdGlvbnMucHJvZmlsZWAuCisKKyAgICAgICAgOnBh
cmFtIGZpcmVmb3hfcHJvZmlsZTogSW5zdGFuY2Ugb2YgYGBGaXJlZm94UHJvZmlsZWBgIG9iamVj
dAorICAgICAgICAgICAgb3IgYSBzdHJpbmcuICBJZiB1bmRlZmluZWQsIGEgZnJlc2ggcHJvZmls
ZSB3aWxsIGJlIGNyZWF0ZWQKKyAgICAgICAgICAgIGluIGEgdGVtcG9yYXJ5IGxvY2F0aW9uIG9u
IHRoZSBzeXN0ZW0uCisgICAgICAgIDpwYXJhbSBmaXJlZm94X2JpbmFyeTogSW5zdGFuY2Ugb2Yg
YGBGaXJlZm94QmluYXJ5YGAgb3IgZnVsbAorICAgICAgICAgICAgcGF0aCB0byB0aGUgRmlyZWZv
eCBiaW5hcnkuICBJZiB1bmRlZmluZWQsIHRoZSBzeXN0ZW0gZGVmYXVsdAorICAgICAgICAgICAg
RmlyZWZveCBpbnN0YWxsYXRpb24gd2lsbCAgYmUgdXNlZC4KKyAgICAgICAgOnBhcmFtIHRpbWVv
dXQ6IFRpbWUgdG8gd2FpdCBmb3IgRmlyZWZveCB0byBsYXVuY2ggd2hlbiB1c2luZworICAgICAg
ICAgICAgdGhlIGV4dGVuc2lvbiBjb25uZWN0aW9uLgorICAgICAgICA6cGFyYW0gY2FwYWJpbGl0
aWVzOiBEaWN0aW9uYXJ5IG9mIGRlc2lyZWQgY2FwYWJpbGl0aWVzLgorICAgICAgICA6cGFyYW0g
cHJveHk6IFRoZSBwcm94eSBzZXR0aW5ncyB0byB1cyB3aGVuIGNvbW11bmljYXRpbmcgd2l0aAor
ICAgICAgICAgICAgRmlyZWZveCB2aWEgdGhlIGV4dGVuc2lvbiBjb25uZWN0aW9uLgorICAgICAg
ICA6cGFyYW0gZXhlY3V0YWJsZV9wYXRoOiBGdWxsIHBhdGggdG8gb3ZlcnJpZGUgd2hpY2ggZ2Vj
a29kcml2ZXIKKyAgICAgICAgICAgIGJpbmFyeSB0byB1c2UgZm9yIEZpcmVmb3ggNDcuMC4xIGFu
ZCBncmVhdGVyLCB3aGljaAorICAgICAgICAgICAgZGVmYXVsdHMgdG8gcGlja2luZyB1cCB0aGUg
YmluYXJ5IGZyb20gdGhlIHN5c3RlbSBwYXRoLgorICAgICAgICA6cGFyYW0gb3B0aW9uczogSW5z
dGFuY2Ugb2YgYGBvcHRpb25zLk9wdGlvbnNgYC4KKyAgICAgICAgOnBhcmFtIGxvZ19wYXRoOiBX
aGVyZSB0byBsb2cgaW5mb3JtYXRpb24gZnJvbSB0aGUgZHJpdmVyLgorCisgICAgICAgICIiIgor
ICAgICAgICBpZiBmaXJlZm94X29wdGlvbnM6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCd1
c2Ugb3B0aW9ucyBpbnN0ZWFkIG9mIGZpcmVmb3hfb3B0aW9ucycsIERlcHJlY2F0aW9uV2Fybmlu
ZykKKyAgICAgICAgICAgIG9wdGlvbnMgPSBmaXJlZm94X29wdGlvbnMKKyAgICAgICAgc2VsZi5i
aW5hcnkgPSBOb25lCisgICAgICAgIHNlbGYucHJvZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5z
ZXJ2aWNlID0gTm9uZQorCisgICAgICAgIGlmIGNhcGFiaWxpdGllcyBpcyBOb25lOgorICAgICAg
ICAgICAgY2FwYWJpbGl0aWVzID0gRGVzaXJlZENhcGFiaWxpdGllcy5GSVJFRk9YLmNvcHkoKQor
ICAgICAgICBpZiBvcHRpb25zIGlzIE5vbmU6CisgICAgICAgICAgICBvcHRpb25zID0gT3B0aW9u
cygpCisKKyAgICAgICAgY2FwYWJpbGl0aWVzID0gZGljdChjYXBhYmlsaXRpZXMpCisKKyAgICAg
ICAgaWYgY2FwYWJpbGl0aWVzLmdldCgiYmluYXJ5Iik6CisgICAgICAgICAgICBzZWxmLmJpbmFy
eSA9IGNhcGFiaWxpdGllc1siYmluYXJ5Il0KKworICAgICAgICAjIG9wdGlvbnMgb3ZlcnJpZGVz
IGNhcGFiaWxpdGllcworICAgICAgICBpZiBvcHRpb25zIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgaWYgb3B0aW9ucy5iaW5hcnkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5i
aW5hcnkgPSBvcHRpb25zLmJpbmFyeQorICAgICAgICAgICAgaWYgb3B0aW9ucy5wcm9maWxlIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYucHJvZmlsZSA9IG9wdGlvbnMucHJvZmls
ZQorCisgICAgICAgICMgZmlyZWZveF9iaW5hcnkgYW5kIGZpcmVmb3hfcHJvZmlsZQorICAgICAg
ICAjIG92ZXJyaWRlIG9wdGlvbnMKKyAgICAgICAgaWYgZmlyZWZveF9iaW5hcnkgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZpcmVmb3hfYmluYXJ5LCBiYXNlc3RyaW5n
KToKKyAgICAgICAgICAgICAgICBmaXJlZm94X2JpbmFyeSA9IEZpcmVmb3hCaW5hcnkoZmlyZWZv
eF9iaW5hcnkpCisgICAgICAgICAgICBzZWxmLmJpbmFyeSA9IGZpcmVmb3hfYmluYXJ5CisgICAg
ICAgICAgICBvcHRpb25zLmJpbmFyeSA9IGZpcmVmb3hfYmluYXJ5CisgICAgICAgIGlmIGZpcmVm
b3hfcHJvZmlsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZmlyZWZv
eF9wcm9maWxlLCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgICAgICBmaXJlZm94X3Byb2ZpbGUg
PSBGaXJlZm94UHJvZmlsZShmaXJlZm94X3Byb2ZpbGUpCisgICAgICAgICAgICBzZWxmLnByb2Zp
bGUgPSBmaXJlZm94X3Byb2ZpbGUKKyAgICAgICAgICAgIG9wdGlvbnMucHJvZmlsZSA9IGZpcmVm
b3hfcHJvZmlsZQorCisgICAgICAgICMgVzNDIHJlbW90ZQorICAgICAgICAjIFRPRE8oYXRvKTog
UGVyZm9ybSBjb25mb3JtYW5jZSBuZWdvdGlhdGlvbgorCisgICAgICAgIGlmIGNhcGFiaWxpdGll
cy5nZXQoIm1hcmlvbmV0dGUiKToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcy5wb3AoIm1hcmlv
bmV0dGUiKQorICAgICAgICAgICAgc2VsZi5zZXJ2aWNlID0gU2VydmljZShleGVjdXRhYmxlX3Bh
dGgsIGxvZ19wYXRoPWxvZ19wYXRoKQorICAgICAgICAgICAgc2VsZi5zZXJ2aWNlLnN0YXJ0KCkK
KworICAgICAgICAgICAgY2FwYWJpbGl0aWVzLnVwZGF0ZShvcHRpb25zLnRvX2NhcGFiaWxpdGll
cygpKQorCisgICAgICAgICAgICBleGVjdXRvciA9IEZpcmVmb3hSZW1vdGVDb25uZWN0aW9uKAor
ICAgICAgICAgICAgICAgIHJlbW90ZV9zZXJ2ZXJfYWRkcj1zZWxmLnNlcnZpY2Uuc2VydmljZV91
cmwpCisgICAgICAgICAgICBSZW1vdGVXZWJEcml2ZXIuX19pbml0X18oCisgICAgICAgICAgICAg
ICAgc2VsZiwKKyAgICAgICAgICAgICAgICBjb21tYW5kX2V4ZWN1dG9yPWV4ZWN1dG9yLAorICAg
ICAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcywKKyAgICAgICAg
ICAgICAgICBrZWVwX2FsaXZlPVRydWUpCisKKyAgICAgICAgIyBTZWxlbml1bSByZW1vdGUKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNlbGYuYmluYXJ5IGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgc2VsZi5iaW5hcnkgPSBGaXJlZm94QmluYXJ5KCkKKyAgICAgICAgICAgIGlmIHNl
bGYucHJvZmlsZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYucHJvZmlsZSA9IEZpcmVm
b3hQcm9maWxlKCkKKworICAgICAgICAgICAgIyBkaXNhYmxlIG5hdGl2ZSBldmVudHMgaWYgZ2xv
YmFsbHkgZGlzYWJsZWQKKyAgICAgICAgICAgIHNlbGYucHJvZmlsZS5uYXRpdmVfZXZlbnRzX2Vu
YWJsZWQgPSAoCisgICAgICAgICAgICAgICAgc2VsZi5OQVRJVkVfRVZFTlRTX0FMTE9XRUQgYW5k
IHNlbGYucHJvZmlsZS5uYXRpdmVfZXZlbnRzX2VuYWJsZWQpCisKKyAgICAgICAgICAgIGlmIHBy
b3h5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHByb3h5LmFkZF90b19jYXBhYmlsaXRp
ZXMoY2FwYWJpbGl0aWVzKQorCisgICAgICAgICAgICBleGVjdXRvciA9IEV4dGVuc2lvbkNvbm5l
Y3Rpb24oIjEyNy4wLjAuMSIsIHNlbGYucHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLmJpbmFyeSwgdGltZW91dCkKKyAgICAgICAgICAgIFJl
bW90ZVdlYkRyaXZlci5fX2luaXRfXygKKyAgICAgICAgICAgICAgICBzZWxmLAorICAgICAgICAg
ICAgICAgIGNvbW1hbmRfZXhlY3V0b3I9ZXhlY3V0b3IsCisgICAgICAgICAgICAgICAgZGVzaXJl
ZF9jYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzLAorICAgICAgICAgICAgICAgIGtlZXBfYWxpdmU9
VHJ1ZSkKKworICAgICAgICBzZWxmLl9pc19yZW1vdGUgPSBGYWxzZQorCisgICAgZGVmIHF1aXQo
c2VsZik6CisgICAgICAgICIiIlF1aXRzIHRoZSBkcml2ZXIgYW5kIGNsb3NlIGV2ZXJ5IGFzc29j
aWF0ZWQgd2luZG93LiIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBSZW1vdGVXZWJEcml2
ZXIucXVpdChzZWxmKQorICAgICAgICBleGNlcHQgKGh0dHBfY2xpZW50LkJhZFN0YXR1c0xpbmUs
IHNvY2tldC5lcnJvcik6CisgICAgICAgICAgICAjIEhhcHBlbnMgaWYgRmlyZWZveCBzaHV0c2Rv
d24gYmVmb3JlIHdlJ3ZlIHJlYWQgdGhlIHJlc3BvbnNlIGZyb20KKyAgICAgICAgICAgICMgdGhl
IHNvY2tldC4KKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiBzZWxmLnczYzoKKyAgICAg
ICAgICAgIHNlbGYuc2VydmljZS5zdG9wKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNl
bGYuYmluYXJ5LmtpbGwoKQorCisgICAgICAgIGlmIHNlbGYucHJvZmlsZSBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYucHJv
ZmlsZS5wYXRoKQorICAgICAgICAgICAgICAgIGlmIHNlbGYucHJvZmlsZS50ZW1wZm9sZGVyIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYucHJvZmls
ZS50ZW1wZm9sZGVyKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg
ICAgICAgICAgIHByaW50KHN0cihlKSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmaXJlZm94
X3Byb2ZpbGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnByb2ZpbGUKKworICAgICMgRXh0
ZW5zaW9uIGNvbW1hbmRzOgorCisgICAgZGVmIHNldF9jb250ZXh0KHNlbGYsIGNvbnRleHQpOgor
ICAgICAgICBzZWxmLmV4ZWN1dGUoIlNFVF9DT05URVhUIiwgeyJjb250ZXh0IjogY29udGV4dH0p
CisKKyAgICBAY29udGV4dG1hbmFnZXIKKyAgICBkZWYgY29udGV4dChzZWxmLCBjb250ZXh0KToK
KyAgICAgICAgIiIiU2V0cyB0aGUgY29udGV4dCB0aGF0IFNlbGVuaXVtIGNvbW1hbmRzIGFyZSBy
dW5uaW5nIGluIHVzaW5nCisgICAgICAgIGEgYHdpdGhgIHN0YXRlbWVudC4gVGhlIHN0YXRlIG9m
IHRoZSBjb250ZXh0IG9uIHRoZSBzZXJ2ZXIgaXMKKyAgICAgICAgc2F2ZWQgYmVmb3JlIGVudGVy
aW5nIHRoZSBibG9jaywgYW5kIHJlc3RvcmVkIHVwb24gZXhpdGluZyBpdC4KKworICAgICAgICA6
cGFyYW0gY29udGV4dDogQ29udGV4dCwgbWF5IGJlIG9uZSBvZiB0aGUgY2xhc3MgcHJvcGVydGll
cworICAgICAgICAgICAgYENPTlRFWFRfQ0hST01FYCBvciBgQ09OVEVYVF9DT05URU5UYC4KKwor
ICAgICAgICBVc2FnZSBleGFtcGxlOjoKKworICAgICAgICAgICAgd2l0aCBzZWxlbml1bS5jb250
ZXh0KHNlbGVuaXVtLkNPTlRFWFRfQ0hST01FKToKKyAgICAgICAgICAgICAgICAjIGNocm9tZSBz
Y29wZQorICAgICAgICAgICAgICAgIC4uLiBkbyBzdHVmZiAuLi4KKyAgICAgICAgIiIiCisgICAg
ICAgIGluaXRpYWxfY29udGV4dCA9IHNlbGYuZXhlY3V0ZSgnR0VUX0NPTlRFWFQnKS5wb3AoJ3Zh
bHVlJykKKyAgICAgICAgc2VsZi5zZXRfY29udGV4dChjb250ZXh0KQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB5aWVsZAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5zZXRf
Y29udGV4dChpbml0aWFsX2NvbnRleHQpCisKKyAgICBkZWYgaW5zdGFsbF9hZGRvbihzZWxmLCBw
YXRoLCB0ZW1wb3Jhcnk9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBJbnN0YWxscyBGaXJl
Zm94IGFkZG9uLgorCisgICAgICAgIFJldHVybnMgaWRlbnRpZmllciBvZiBpbnN0YWxsZWQgYWRk
b24uIFRoaXMgaWRlbnRpZmllciBjYW4gbGF0ZXIKKyAgICAgICAgYmUgdXNlZCB0byB1bmluc3Rh
bGwgYWRkb24uCisKKyAgICAgICAgOnBhcmFtIHBhdGg6IEFic29sdXRlIHBhdGggdG8gdGhlIGFk
ZG9uIHRoYXQgd2lsbCBiZSBpbnN0YWxsZWQuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAg
ICAgZHJpdmVyLmluc3RhbGxfYWRkb24oJy9wYXRoL3RvL2ZpcmVidWcueHBpJykKKyAgICAgICAg
IiIiCisgICAgICAgIHBheWxvYWQgPSB7InBhdGgiOiBwYXRofQorICAgICAgICBpZiB0ZW1wb3Jh
cnkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBwYXlsb2FkWyJ0ZW1wb3JhcnkiXSA9IHRlbXBv
cmFyeQorICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKCJJTlNUQUxMX0FERE9OIiwgcGF5bG9h
ZClbInZhbHVlIl0KKworICAgIGRlZiB1bmluc3RhbGxfYWRkb24oc2VsZiwgaWRlbnRpZmllcik6
CisgICAgICAgICIiIgorICAgICAgICBVbmluc3RhbGxzIEZpcmVmb3ggYWRkb24gdXNpbmcgaXRz
IGlkZW50aWZpZXIuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLnVuaW5z
dGFsbF9hZGRvbignYWRkb25AZm9vLmNvbScpCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmV4
ZWN1dGUoIlVOSU5TVEFMTF9BRERPTiIsIHsiaWQiOiBpZGVudGlmaWVyfSkKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9m
aXJlZm94L3dlYmVsZW1lbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC93ZWJlbGVtZW50LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MTE3ZWMwNjc5NgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9m
aXJlZm94L3dlYmVsZW1lbnQucHkKQEAgLTAsMCArMSw0OSBAQAorIyBMaWNlbnNlZCB0byB0aGUg
U29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBj
b250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRp
c3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJl
Z2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUK
KyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAi
TGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
CisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vu
c2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK
KyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0
cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09O
RElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz
aW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5p
dW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJlbGVtZW50IGltcG9ydCBXZWJFbGVtZW50IGFzIFJlbW90
ZVdlYkVsZW1lbnQKKworCitjbGFzcyBGaXJlZm94V2ViRWxlbWVudChSZW1vdGVXZWJFbGVtZW50
KToKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhbm9ueW1vdXNfY2hpbGRyZW4oc2VsZik6Cisg
ICAgICAgICIiIlJldHJpZXZlIHRoZSBhbm9ueW1vdXMgY2hpbGRyZW4gb2YgdGhpcyBlbGVtZW50
IGluIGFuIFhCTAorICAgICAgICBjb250ZXh0LiAgVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBj
aHJvbWUgY29udGV4dC4KKworICAgICAgICBTZWUgdGhlICBgYW5vbnltb3VzIGNvbnRlbnQgZG9j
dW1lbnRhdGlvbgorICAgICAgICA8aHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMv
ZG9jcy9Nb3ppbGxhL1RlY2gvWEJML1hCTF8xLjBfUmVmZXJlbmNlL0Fub255bW91c19Db250ZW50
PmBfCisgICAgICAgIG9uIE1ETiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKworICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGUoCisgICAgICAgICAgICAiRUxFTUVOVF9HRVRf
QU5PTllNT1VTX0NISUxEUkVOIiwKKyAgICAgICAgICAgIHsidmFsdWUiOiBOb25lfSkKKworICAg
IGRlZiBmaW5kX2Fub255bW91c19lbGVtZW50X2J5X2F0dHJpYnV0ZShzZWxmLCBuYW1lLCB2YWx1
ZSk6CisgICAgICAgICIiIlJldHJpZXZlIGFuIGFub255bW91cyBkZXNjZW5kYW50IHdpdGggYSBz
cGVjaWZpZWQgYXR0cmlidXRlCisgICAgICAgIHZhbHVlLiAgVHlwaWNhbGx5IHVzZWQgd2l0aCBh
biAoYXJiaXRyYXJ5KSBhbm9uaWQgYXR0cmlidXRlIHRvCisgICAgICAgIHJldHJpZXZlIGEgc3Bl
Y2lmaWMgYW5vbnltb3VzIGNoaWxkIGluIGFuIFhCTCBiaW5kaW5nLgorCisgICAgICAgIFNlZSB0
aGUgIGBhbm9ueW1vdXMgY29udGVudCBkb2N1bWVudGF0aW9uCisgICAgICAgIDxodHRwczovL2Rl
dmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvVGVjaC9YQkwvWEJMXzEuMF9S
ZWZlcmVuY2UvQW5vbnltb3VzX0NvbnRlbnQ+YF8KKyAgICAgICAgb24gTUROIGZvciBtb3JlIGlu
Zm9ybWF0aW9uLgorCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0ZSgK
KyAgICAgICAgICAgICJFTEVNRU5UX0ZJTkRfQU5PTllNT1VTX0VMRU1FTlRTX0JZX0FUVFJJQlVU
RSIsCisgICAgICAgICAgICB7Im5hbWUiOiBuYW1lLCAidmFsdWUiOiB2YWx1ZX0pWyJ2YWx1ZSJd
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvaWUvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvaWUvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2ll
L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2llL29wdGlvbnMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvaWUvb3B0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZTEyNmIxMWNlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvaWUvb3B0aW9ucy5weQpAQCAtMCwwICsxLDMz
OSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZD
KSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBT
ZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRp
dGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhl
IFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z
ZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBm
aWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9i
dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5v
cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2Fi
bGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1
bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBX
SVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4
cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxh
bmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhl
IExpY2Vuc2UuCisKKworY2xhc3MgRWxlbWVudFNjcm9sbEJlaGF2aW9yKG9iamVjdCk6CisgICAg
VE9QID0gMAorICAgIEJPVFRPTSA9IDEKKworCitjbGFzcyBPcHRpb25zKG9iamVjdCk6CisKKyAg
ICBLRVkgPSAnc2U6aWVPcHRpb25zJworICAgIFNXSVRDSEVTID0gJ2llLmJyb3dzZXJDb21tYW5k
TGluZVN3aXRjaGVzJworCisgICAgQlJPV1NFUl9BVFRBQ0hfVElNRU9VVCA9ICdicm93c2VyQXR0
YWNoVGltZW91dCcKKyAgICBFTEVNRU5UX1NDUk9MTF9CRUhBVklPUiA9ICdlbGVtZW50U2Nyb2xs
QmVoYXZpb3InCisgICAgRU5TVVJFX0NMRUFOX1NFU1NJT04gPSAnaWUuZW5zdXJlQ2xlYW5TZXNz
aW9uJworICAgIEZJTEVfVVBMT0FEX0RJQUxPR19USU1FT1VUID0gJ2llLmZpbGVVcGxvYWREaWFs
b2dUaW1lb3V0JworICAgIEZPUkNFX0NSRUFURV9QUk9DRVNTX0FQSSA9ICdpZS5mb3JjZUNyZWF0
ZVByb2Nlc3NBcGknCisgICAgRk9SQ0VfU0hFTExfV0lORE9XU19BUEkgPSAnaWUuZm9yY2VTaGVs
bFdpbmRvd3NBcGknCisgICAgRlVMTF9QQUdFX1NDUkVFTlNIT1QgPSAnaWUuZW5hYmxlRnVsbFBh
Z2VTY3JlZW5zaG90JworICAgIElHTk9SRV9QUk9URUNURURfTU9ERV9TRVRUSU5HUyA9ICdpZ25v
cmVQcm90ZWN0ZWRNb2RlU2V0dGluZ3MnCisgICAgSUdOT1JFX1pPT01fTEVWRUwgPSAnaWdub3Jl
Wm9vbVNldHRpbmcnCisgICAgSU5JVElBTF9CUk9XU0VSX1VSTCA9ICdpbml0aWFsQnJvd3NlclVy
bCcKKyAgICBOQVRJVkVfRVZFTlRTID0gJ25hdGl2ZUV2ZW50cycKKyAgICBQRVJTSVNURU5UX0hP
VkVSID0gJ2VuYWJsZVBlcnNpc3RlbnRIb3ZlcicKKyAgICBSRVFVSVJFX1dJTkRPV19GT0NVUyA9
ICdyZXF1aXJlV2luZG93Rm9jdXMnCisgICAgVVNFX1BFUl9QUk9DRVNTX1BST1hZID0gJ2llLnVz
ZVBlclByb2Nlc3NQcm94eScKKyAgICBWQUxJREFURV9DT09LSUVfRE9DVU1FTlRfVFlQRSA9ICdp
ZS52YWxpZGF0ZUNvb2tpZURvY3VtZW50VHlwZScKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
KyAgICAgICAgc2VsZi5fYXJndW1lbnRzID0gW10KKyAgICAgICAgc2VsZi5fb3B0aW9ucyA9IHt9
CisgICAgICAgIHNlbGYuX2FkZGl0aW9uYWwgPSB7fQorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IGFyZ3VtZW50cyhzZWxmKToKKyAgICAgICAgIiIiIFJldHVybnMgYSBsaXN0IG9mIGJyb3dzZXIg
cHJvY2VzcyBhcmd1bWVudHMgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9hcmd1bWVudHMKKwor
ICAgIGRlZiBhZGRfYXJndW1lbnQoc2VsZiwgYXJndW1lbnQpOgorICAgICAgICAiIiIgQWRkIGFy
Z3VtZW50IHRvIGJlIHVzZWQgZm9yIHRoZSBicm93c2VyIHByb2Nlc3MgIiIiCisgICAgICAgIGlm
IGFyZ3VtZW50IGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAg
ICAgc2VsZi5fYXJndW1lbnRzLmFwcGVuZChhcmd1bWVudCkKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBvcHRpb25zKHNlbGYpOgorICAgICAgICAiIiIgUmV0dXJucyBhIGRpY3Rpb25hcnkgb2Yg
YnJvd3NlciBvcHRpb25zICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fb3B0aW9ucworCisgICAg
QHByb3BlcnR5CisgICAgZGVmIGJyb3dzZXJfYXR0YWNoX3RpbWVvdXQoc2VsZik6CisgICAgICAg
ICIiIiBSZXR1cm5zIHRoZSBvcHRpb25zIEJyb3dzZXIgQXR0YWNoIFRpbWVvdXQgaW4gbWlsbGlz
ZWNvbmRzICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fb3B0aW9ucy5nZXQoc2VsZi5CUk9XU0VS
X0FUVEFDSF9USU1FT1VUKQorCisgICAgQGJyb3dzZXJfYXR0YWNoX3RpbWVvdXQuc2V0dGVyCisg
ICAgZGVmIGJyb3dzZXJfYXR0YWNoX3RpbWVvdXQoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIK
KyAgICAgICAgU2V0cyB0aGUgb3B0aW9ucyBCcm93c2VyIEF0dGFjaCBUaW1lb3V0CisKKyAgICAg
ICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcworCisg
ICAgICAgICIiIgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgaW50KToKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Jyb3dzZXIgQXR0YWNoIFRpbWVvdXQgbXVzdCBiZSBh
biBpbnRlZ2VyLicpCisgICAgICAgIHNlbGYuX29wdGlvbnNbc2VsZi5CUk9XU0VSX0FUVEFDSF9U
SU1FT1VUXSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZWxlbWVudF9zY3JvbGxf
YmVoYXZpb3Ioc2VsZik6CisgICAgICAgICIiIiBSZXR1cm5zIHRoZSBvcHRpb25zIEVsZW1lbnQg
U2Nyb2xsIEJlaGF2aW9yIGluIG1pbGxpc2Vjb25kcyAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
X29wdGlvbnMuZ2V0KHNlbGYuRUxFTUVOVF9TQ1JPTExfQkVIQVZJT1IpCisKKyAgICBAZWxlbWVu
dF9zY3JvbGxfYmVoYXZpb3Iuc2V0dGVyCisgICAgZGVmIGVsZW1lbnRfc2Nyb2xsX2JlaGF2aW9y
KHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgdGhlIG9wdGlvbnMgRWxl
bWVudCBTY3JvbGwgQmVoYXZpb3IKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWU6
IDAgLSBUb3AsIDEgLSBCb3R0b20KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgdmFsdWUgbm90
IGluIFtFbGVtZW50U2Nyb2xsQmVoYXZpb3IuVE9QLCBFbGVtZW50U2Nyb2xsQmVoYXZpb3IuQk9U
VE9NXToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VsZW1lbnQgU2Nyb2xsIEJlaGF2
aW9yIG91dCBvZiByYW5nZS4nKQorICAgICAgICBzZWxmLl9vcHRpb25zW3NlbGYuRUxFTUVOVF9T
Q1JPTExfQkVIQVZJT1JdID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBlbnN1cmVf
Y2xlYW5fc2Vzc2lvbihzZWxmKToKKyAgICAgICAgIiIiIFJldHVybnMgdGhlIG9wdGlvbnMgRW5z
dXJlIENsZWFuIFNlc3Npb24gdmFsdWUgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9vcHRpb25z
LmdldChzZWxmLkVOU1VSRV9DTEVBTl9TRVNTSU9OKQorCisgICAgQGVuc3VyZV9jbGVhbl9zZXNz
aW9uLnNldHRlcgorICAgIGRlZiBlbnN1cmVfY2xlYW5fc2Vzc2lvbihzZWxmLCB2YWx1ZSk6Cisg
ICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBvcHRpb25zIEVuc3VyZSBDbGVhbiBTZXNzaW9u
IHZhbHVlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBib29sZWFuIHZhbHVl
CisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX29wdGlvbnNbc2VsZi5FTlNVUkVfQ0xFQU5f
U0VTU0lPTl0gPSB2YWx1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZpbGVfdXBsb2FkX2Rp
YWxvZ190aW1lb3V0KHNlbGYpOgorICAgICAgICAiIiIgUmV0dXJucyB0aGUgb3B0aW9ucyBGaWxl
IFVwbG9hZCBEaWFsb2cgVGltZW91dCBpbiBtaWxsaXNlY29uZHMgIiIiCisgICAgICAgIHJldHVy
biBzZWxmLl9vcHRpb25zLmdldChzZWxmLkZJTEVfVVBMT0FEX0RJQUxPR19USU1FT1VUKQorCisg
ICAgQGZpbGVfdXBsb2FkX2RpYWxvZ190aW1lb3V0LnNldHRlcgorICAgIGRlZiBmaWxlX3VwbG9h
ZF9kaWFsb2dfdGltZW91dChzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRz
IHRoZSBvcHRpb25zIEZpbGUgVXBsb2FkIERpYWxvZyBUaW1lb3V0IHZhbHVlCisKKyAgICAgICAg
OkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcworCisgICAg
ICAgICIiIgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgaW50KToKKyAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ZpbGUgVXBsb2FkIERpYWxvZyBUaW1lb3V0IG11c3QgYmUg
YW4gaW50ZWdlci4nKQorICAgICAgICBzZWxmLl9vcHRpb25zW3NlbGYuRklMRV9VUExPQURfRElB
TE9HX1RJTUVPVVRdID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmb3JjZV9jcmVh
dGVfcHJvY2Vzc19hcGkoc2VsZik6CisgICAgICAgICIiIiBSZXR1cm5zIHRoZSBvcHRpb25zIEZv
cmNlIENyZWF0ZSBQcm9jZXNzIEFwaSB2YWx1ZSAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX29w
dGlvbnMuZ2V0KHNlbGYuRk9SQ0VfQ1JFQVRFX1BST0NFU1NfQVBJKQorCisgICAgQGZvcmNlX2Ny
ZWF0ZV9wcm9jZXNzX2FwaS5zZXR0ZXIKKyAgICBkZWYgZm9yY2VfY3JlYXRlX3Byb2Nlc3NfYXBp
KHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgdGhlIG9wdGlvbnMgRm9y
Y2UgQ3JlYXRlIFByb2Nlc3MgQXBpIHZhbHVlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAt
IHZhbHVlOiBib29sZWFuIHZhbHVlCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX29wdGlv
bnNbc2VsZi5GT1JDRV9DUkVBVEVfUFJPQ0VTU19BUEldID0gdmFsdWUKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBmb3JjZV9zaGVsbF93aW5kb3dzX2FwaShzZWxmKToKKyAgICAgICAgIiIiIFJl
dHVybnMgdGhlIG9wdGlvbnMgRm9yY2UgU2hlbGwgV2luZG93cyBBcGkgdmFsdWUgIiIiCisgICAg
ICAgIHJldHVybiBzZWxmLl9vcHRpb25zLmdldChzZWxmLkZPUkNFX1NIRUxMX1dJTkRPV1NfQVBJ
KQorCisgICAgQGZvcmNlX3NoZWxsX3dpbmRvd3NfYXBpLnNldHRlcgorICAgIGRlZiBmb3JjZV9z
aGVsbF93aW5kb3dzX2FwaShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRz
IHRoZSBvcHRpb25zIEZvcmNlIFNoZWxsIFdpbmRvd3MgQXBpIHZhbHVlCisKKyAgICAgICAgOkFy
Z3M6CisgICAgICAgICAtIHZhbHVlOiBib29sZWFuIHZhbHVlCisKKyAgICAgICAgIiIiCisgICAg
ICAgIHNlbGYuX29wdGlvbnNbc2VsZi5GT1JDRV9TSEVMTF9XSU5ET1dTX0FQSV0gPSB2YWx1ZQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1bGxfcGFnZV9zY3JlZW5zaG90KHNlbGYpOgorICAg
ICAgICAiIiIgUmV0dXJucyB0aGUgb3B0aW9ucyBGdWxsIFBhZ2UgU2NyZWVuc2hvdCB2YWx1ZSAi
IiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX29wdGlvbnMuZ2V0KHNlbGYuRlVMTF9QQUdFX1NDUkVF
TlNIT1QpCisKKyAgICBAZnVsbF9wYWdlX3NjcmVlbnNob3Quc2V0dGVyCisgICAgZGVmIGZ1bGxf
cGFnZV9zY3JlZW5zaG90KHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMg
dGhlIG9wdGlvbnMgRnVsbCBQYWdlIFNjcmVlbnNob3QgdmFsdWUKKworICAgICAgICA6QXJnczoK
KyAgICAgICAgIC0gdmFsdWU6IGJvb2xlYW4gdmFsdWUKKworICAgICAgICAiIiIKKyAgICAgICAg
c2VsZi5fb3B0aW9uc1tzZWxmLkZVTExfUEFHRV9TQ1JFRU5TSE9UXSA9IHZhbHVlCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgaWdub3JlX3Byb3RlY3RlZF9tb2RlX3NldHRpbmdzKHNlbGYpOgor
ICAgICAgICAiIiIgUmV0dXJucyB0aGUgb3B0aW9ucyBJZ25vcmUgUHJvdGVjdGVkIE1vZGUgU2V0
dGluZ3MgdmFsdWUgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9vcHRpb25zLmdldChzZWxmLklH
Tk9SRV9QUk9URUNURURfTU9ERV9TRVRUSU5HUykKKworICAgIEBpZ25vcmVfcHJvdGVjdGVkX21v
ZGVfc2V0dGluZ3Muc2V0dGVyCisgICAgZGVmIGlnbm9yZV9wcm90ZWN0ZWRfbW9kZV9zZXR0aW5n
cyhzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBvcHRpb25zIEln
bm9yZSBQcm90ZWN0ZWQgTW9kZSBTZXR0aW5ncyB2YWx1ZQorCisgICAgICAgIDpBcmdzOgorICAg
ICAgICAgLSB2YWx1ZTogYm9vbGVhbiB2YWx1ZQorCisgICAgICAgICIiIgorICAgICAgICBzZWxm
Ll9vcHRpb25zW3NlbGYuSUdOT1JFX1BST1RFQ1RFRF9NT0RFX1NFVFRJTkdTXSA9IHZhbHVlCisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgaWdub3JlX3pvb21fbGV2ZWwoc2VsZik6CisgICAgICAg
ICIiIiBSZXR1cm5zIHRoZSBvcHRpb25zIElnbm9yZSBab29tIExldmVsIHZhbHVlICIiIgorICAg
ICAgICByZXR1cm4gc2VsZi5fb3B0aW9ucy5nZXQoc2VsZi5JR05PUkVfWk9PTV9MRVZFTCkKKwor
ICAgIEBpZ25vcmVfem9vbV9sZXZlbC5zZXR0ZXIKKyAgICBkZWYgaWdub3JlX3pvb21fbGV2ZWwo
c2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgb3B0aW9ucyBJZ25v
cmUgWm9vbSBMZXZlbCB2YWx1ZQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTog
Ym9vbGVhbiB2YWx1ZQorCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9vcHRpb25zW3NlbGYu
SUdOT1JFX1pPT01fTEVWRUxdID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpbml0
aWFsX2Jyb3dzZXJfdXJsKHNlbGYpOgorICAgICAgICAiIiIgUmV0dXJucyB0aGUgb3B0aW9ucyBJ
bml0aWFsIEJyb3dzZXIgVXJsIHZhbHVlICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fb3B0aW9u
cy5nZXQoc2VsZi5JTklUSUFMX0JST1dTRVJfVVJMKQorCisgICAgQGluaXRpYWxfYnJvd3Nlcl91
cmwuc2V0dGVyCisgICAgZGVmIGluaXRpYWxfYnJvd3Nlcl91cmwoc2VsZiwgdmFsdWUpOgorICAg
ICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgb3B0aW9ucyBJbml0aWFsIEJyb3dzZXIgVXJsIHZh
bHVlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBVUkwgc3RyaW5nCisKKyAg
ICAgICAgIiIiCisgICAgICAgIHNlbGYuX29wdGlvbnNbc2VsZi5JTklUSUFMX0JST1dTRVJfVVJM
XSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbmF0aXZlX2V2ZW50cyhzZWxmKToK
KyAgICAgICAgIiIiIFJldHVybnMgdGhlIG9wdGlvbnMgTmF0aXZlIEV2ZW50cyB2YWx1ZSAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuX29wdGlvbnMuZ2V0KHNlbGYuTkFUSVZFX0VWRU5UUykKKwor
ICAgIEBuYXRpdmVfZXZlbnRzLnNldHRlcgorICAgIGRlZiBuYXRpdmVfZXZlbnRzKHNlbGYsIHZh
bHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgdGhlIG9wdGlvbnMgTmF0aXZlIEV2ZW50
cyB2YWx1ZQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTogYm9vbGVhbiB2YWx1
ZQorCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9vcHRpb25zW3NlbGYuTkFUSVZFX0VWRU5U
U10gPSB2YWx1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBlcnNpc3RlbnRfaG92ZXIoc2Vs
Zik6CisgICAgICAgICIiIiBSZXR1cm5zIHRoZSBvcHRpb25zIFBlcnNpc3RlbnQgSG92ZXIgdmFs
dWUgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9vcHRpb25zLmdldChzZWxmLlBFUlNJU1RFTlRf
SE9WRVIpCisKKyAgICBAcGVyc2lzdGVudF9ob3Zlci5zZXR0ZXIKKyAgICBkZWYgcGVyc2lzdGVu
dF9ob3ZlcihzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBvcHRp
b25zIFBlcnNpc3RlbnQgSG92ZXIgdmFsdWUKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0g
dmFsdWU6IGJvb2xlYW4gdmFsdWUKKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fb3B0aW9u
c1tzZWxmLlBFUlNJU1RFTlRfSE9WRVJdID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiByZXF1aXJlX3dpbmRvd19mb2N1cyhzZWxmKToKKyAgICAgICAgIiIiIFJldHVybnMgdGhlIG9w
dGlvbnMgUmVxdWlyZSBXaW5kb3cgRm9jdXMgdmFsdWUgIiIiCisgICAgICAgIHJldHVybiBzZWxm
Ll9vcHRpb25zLmdldChzZWxmLlJFUVVJUkVfV0lORE9XX0ZPQ1VTKQorCisgICAgQHJlcXVpcmVf
d2luZG93X2ZvY3VzLnNldHRlcgorICAgIGRlZiByZXF1aXJlX3dpbmRvd19mb2N1cyhzZWxmLCB2
YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBvcHRpb25zIFJlcXVpcmUgV2lu
ZG93IEZvY3VzIHZhbHVlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBib29s
ZWFuIHZhbHVlCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX29wdGlvbnNbc2VsZi5SRVFV
SVJFX1dJTkRPV19GT0NVU10gPSB2YWx1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHVzZV9w
ZXJfcHJvY2Vzc19wcm94eShzZWxmKToKKyAgICAgICAgIiIiIFJldHVybnMgdGhlIG9wdGlvbnMg
VXNlciBQZXIgUHJvY2VzcyBQcm94eSB2YWx1ZSAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX29w
dGlvbnMuZ2V0KHNlbGYuVVNFX1BFUl9QUk9DRVNTX1BST1hZKQorCisgICAgQHVzZV9wZXJfcHJv
Y2Vzc19wcm94eS5zZXR0ZXIKKyAgICBkZWYgdXNlX3Blcl9wcm9jZXNzX3Byb3h5KHNlbGYsIHZh
bHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgdGhlIG9wdGlvbnMgVXNlciBQZXIgUHJv
Y2VzcyBQcm94eSB2YWx1ZQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTogYm9v
bGVhbiB2YWx1ZQorCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9vcHRpb25zW3NlbGYuVVNF
X1BFUl9QUk9DRVNTX1BST1hZXSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFs
aWRhdGVfY29va2llX2RvY3VtZW50X3R5cGUoc2VsZik6CisgICAgICAgICIiIiBSZXR1cm5zIHRo
ZSBvcHRpb25zIFZhbGlkYXRlIENvb2tpZSBEb2N1bWVudCBUeXBlIHZhbHVlICIiIgorICAgICAg
ICByZXR1cm4gc2VsZi5fb3B0aW9ucy5nZXQoc2VsZi5WQUxJREFURV9DT09LSUVfRE9DVU1FTlRf
VFlQRSkKKworICAgIEB2YWxpZGF0ZV9jb29raWVfZG9jdW1lbnRfdHlwZS5zZXR0ZXIKKyAgICBk
ZWYgdmFsaWRhdGVfY29va2llX2RvY3VtZW50X3R5cGUoc2VsZiwgdmFsdWUpOgorICAgICAgICAi
IiIKKyAgICAgICAgU2V0cyB0aGUgb3B0aW9ucyBWYWxpZGF0ZSBDb29raWUgRG9jdW1lbnQgVHlw
ZSB2YWx1ZQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTogYm9vbGVhbiB2YWx1
ZQorCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9vcHRpb25zW3NlbGYuVkFMSURBVEVfQ09P
S0lFX0RPQ1VNRU5UX1RZUEVdID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhZGRp
dGlvbmFsX29wdGlvbnMoc2VsZik6CisgICAgICAgICIiIiBSZXR1cm5zIHRoZSBhZGRpdGlvbmFs
IG9wdGlvbnMgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9hZGRpdGlvbmFsCisKKyAgICBkZWYg
YWRkX2FkZGl0aW9uYWxfb3B0aW9uKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiCisg
ICAgICAgIEFkZHMgYW4gYWRkaXRpb25hbCBvcHRpb24gbm90IHlldCBhZGRlZCBhcyBhIHNhZmUg
b3B0aW9uIGZvciBJRQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBuYW1lOiBuYW1lIG9m
IHRoZSBvcHRpb24gdG8gYWRkCisgICAgICAgICAtIHZhbHVlOiB2YWx1ZSBvZiB0aGUgb3B0aW9u
IHRvIGFkZAorCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9hZGRpdGlvbmFsW25hbWVdID0g
dmFsdWUKKworICAgIGRlZiB0b19jYXBhYmlsaXRpZXMoc2VsZik6CisgICAgICAgICIiIiBNYXJz
aGFscyB0aGUgSUUgb3B0aW9ucyB0byBhIHRoZSBjb3JyZWN0IG9iamVjdCAiIiIKKyAgICAgICAg
b3B0cyA9IHNlbGYuX29wdGlvbnMuY29weSgpCisgICAgICAgIGlmIGxlbihzZWxmLl9hcmd1bWVu
dHMpID4gMDoKKyAgICAgICAgICAgIG9wdHNbc2VsZi5TV0lUQ0hFU10gPSAnICcuam9pbihzZWxm
Ll9hcmd1bWVudHMpCisKKyAgICAgICAgaWYgbGVuKHNlbGYuX2FkZGl0aW9uYWwpID4gMDoKKyAg
ICAgICAgICAgIG9wdHMudXBkYXRlKHNlbGYuX2FkZGl0aW9uYWwpCisKKyAgICAgICAgaWYgbGVu
KG9wdHMpID4gMDoKKyAgICAgICAgICAgIHJldHVybiB7c2VsZi5LRVk6IG9wdHN9CisgICAgICAg
IHJldHVybiB7fQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2llL3NlcnZpY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvaWUvc2VydmljZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzkwODNlMTY5YjgKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvaWUvc2VydmljZS5weQpAQCAtMCwwICsxLDUwIEBACisjIExpY2Vuc2VkIHRvIHRoZSBT
b2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNv
bnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlz
dHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVn
YXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQor
IyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJM
aWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UK
KyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5z
ZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAor
IworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdy
aXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3Ry
aWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05E
SVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRo
ZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSBzZWxlbml1
bS53ZWJkcml2ZXIuY29tbW9uIGltcG9ydCBzZXJ2aWNlCisKKworY2xhc3MgU2VydmljZShzZXJ2
aWNlLlNlcnZpY2UpOgorICAgICIiIgorICAgIE9iamVjdCB0aGF0IG1hbmFnZXMgdGhlIHN0YXJ0
aW5nIGFuZCBzdG9wcGluZyBvZiB0aGUgSUVEcml2ZXIKKyAgICAiIiIKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQ9MCwgaG9zdD1Ob25lLCBsb2dfbGV2ZWw9
Tm9uZSwgbG9nX2ZpbGU9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3
IGluc3RhbmNlIG9mIHRoZSBTZXJ2aWNlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV4
ZWN1dGFibGVfcGF0aCA6IFBhdGggdG8gdGhlIElFRHJpdmVyCisgICAgICAgICAtIHBvcnQgOiBQ
b3J0IHRoZSBzZXJ2aWNlIGlzIHJ1bm5pbmcgb24KKyAgICAgICAgIC0gaG9zdCA6IElQIGFkZHJl
c3MgdGhlIHNlcnZpY2UgcG9ydCBpcyBib3VuZAorICAgICAgICAgLSBsb2dfbGV2ZWwgOiBMZXZl
bCBvZiBsb2dnaW5nIG9mIHNlcnZpY2UsIG1heSBiZSAiRkFUQUwiLCAiRVJST1IiLCAiV0FSTiIs
ICJJTkZPIiwgIkRFQlVHIiwgIlRSQUNFIi4KKyAgICAgICAgICAgRGVmYXVsdCBpcyAiRkFUQUwi
LgorICAgICAgICAgLSBsb2dfZmlsZSA6IFRhcmdldCBvZiBsb2dnaW5nIG9mIHNlcnZpY2UsIG1h
eSBiZSAic3Rkb3V0IiwgInN0ZGVyciIgb3IgZmlsZSBwYXRoLgorICAgICAgICAgICBEZWZhdWx0
IGlzICJzdGRvdXQiLiIiIgorICAgICAgICBzZWxmLnNlcnZpY2VfYXJncyA9IFtdCisgICAgICAg
IGlmIGhvc3QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNlcnZpY2VfYXJncy5hcHBl
bmQoIi0taG9zdD0lcyIgJSBob3N0KQorICAgICAgICBpZiBsb2dfbGV2ZWwgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBzZWxmLnNlcnZpY2VfYXJncy5hcHBlbmQoIi0tbG9nLWxldmVsPSVzIiAl
IGxvZ19sZXZlbCkKKyAgICAgICAgaWYgbG9nX2ZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBzZWxmLnNlcnZpY2VfYXJncy5hcHBlbmQoIi0tbG9nLWZpbGU9JXMiICUgbG9nX2ZpbGUpCisK
KyAgICAgICAgc2VydmljZS5TZXJ2aWNlLl9faW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVfcGF0aCwg
cG9ydD1wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfZXJyb3Jf
bWVzc2FnZT0iUGxlYXNlIGRvd25sb2FkIGZyb20gaHR0cDovL3NlbGVuaXVtLXJlbGVhc2Uuc3Rv
cmFnZS5nb29nbGVhcGlzLmNvbS9pbmRleC5odG1sIGFuZCByZWFkIHVwIGF0IGh0dHBzOi8vZ2l0
aHViLmNvbS9TZWxlbml1bUhRL3NlbGVuaXVtL3dpa2kvSW50ZXJuZXRFeHBsb3JlckRyaXZlciIp
CisKKyAgICBkZWYgY29tbWFuZF9saW5lX2FyZ3Moc2VsZik6CisgICAgICAgIHJldHVybiBbIi0t
cG9ydD0lZCIgJSBzZWxmLnBvcnRdICsgc2VsZi5zZXJ2aWNlX2FyZ3MKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9pZS93
ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvaWUvd2ViZHJpdmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xYjlmMzkxNWJmYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9pZS93ZWJkcml2ZXIucHkK
QEAgLTAsMCArMSw5NSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25z
ZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFn
cmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3
b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3du
ZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBB
cGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5v
dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2Uu
ICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8v
d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVk
IGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBk
aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMg
SVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lO
RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisj
IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMK
KyMgdW5kZXIgdGhlIExpY2Vuc2UuCitpbXBvcnQgd2FybmluZ3MKKworZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uIGltcG9ydCB1dGlscworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVt
b3RlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFJlbW90ZVdlYkRyaXZlcgorZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmRlc2lyZWRfY2FwYWJpbGl0aWVzIGltcG9ydCBEZXNp
cmVkQ2FwYWJpbGl0aWVzCitmcm9tIC5zZXJ2aWNlIGltcG9ydCBTZXJ2aWNlCitmcm9tIC5vcHRp
b25zIGltcG9ydCBPcHRpb25zCisKK0RFRkFVTFRfVElNRU9VVCA9IDMwCitERUZBVUxUX1BPUlQg
PSAwCitERUZBVUxUX0hPU1QgPSBOb25lCitERUZBVUxUX0xPR19MRVZFTCA9IE5vbmUKK0RFRkFV
TFRfTE9HX0ZJTEUgPSBOb25lCisKKworY2xhc3MgV2ViRHJpdmVyKFJlbW90ZVdlYkRyaXZlcik6
CisgICAgIiIiIENvbnRyb2xzIHRoZSBJRVNlcnZlckRyaXZlciBhbmQgYWxsb3dzIHlvdSB0byBk
cml2ZSBJbnRlcm5ldCBFeHBsb3JlciAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVj
dXRhYmxlX3BhdGg9J0lFRHJpdmVyU2VydmVyLmV4ZScsIGNhcGFiaWxpdGllcz1Ob25lLAorICAg
ICAgICAgICAgICAgICBwb3J0PURFRkFVTFRfUE9SVCwgdGltZW91dD1ERUZBVUxUX1RJTUVPVVQs
IGhvc3Q9REVGQVVMVF9IT1NULAorICAgICAgICAgICAgICAgICBsb2dfbGV2ZWw9REVGQVVMVF9M
T0dfTEVWRUwsIGxvZ19maWxlPURFRkFVTFRfTE9HX0ZJTEUsIG9wdGlvbnM9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgaWVfb3B0aW9ucz1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0
ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGNocm9tZSBkcml2ZXIuCisKKyAgICAgICAgU3RhcnRz
IHRoZSBzZXJ2aWNlIGFuZCB0aGVuIGNyZWF0ZXMgbmV3IGluc3RhbmNlIG9mIGNocm9tZSBkcml2
ZXIuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV4ZWN1dGFibGVfcGF0aCAtIHBhdGgg
dG8gdGhlIGV4ZWN1dGFibGUuIElmIHRoZSBkZWZhdWx0IGlzIHVzZWQgaXQgYXNzdW1lcyB0aGUg
ZXhlY3V0YWJsZSBpcyBpbiB0aGUgJFBBVEgKKyAgICAgICAgIC0gY2FwYWJpbGl0aWVzOiBjYXBh
YmlsaXRpZXMgRGljdGlvbmFyeSBvYmplY3QKKyAgICAgICAgIC0gcG9ydCAtIHBvcnQgeW91IHdv
dWxkIGxpa2UgdGhlIHNlcnZpY2UgdG8gcnVuLCBpZiBsZWZ0IGFzIDAsIGEgZnJlZSBwb3J0IHdp
bGwgYmUgZm91bmQuCisgICAgICAgICAtIGxvZ19sZXZlbCAtIGxvZyBsZXZlbCB5b3Ugd291bGQg
bGlrZSB0aGUgc2VydmljZSB0byBydW4uCisgICAgICAgICAtIGxvZ19maWxlIC0gbG9nIGZpbGUg
eW91IHdvdWxkIGxpa2UgdGhlIHNlcnZpY2UgdG8gbG9nIHRvLgorICAgICAgICAgLSBvcHRpb25z
OiBJRSBPcHRpb25zIGluc3RhbmNlLCBwcm92aWRpbmcgYWRkaXRpb25hbCBJRSBvcHRpb25zCisg
ICAgICAgICIiIgorICAgICAgICBpZiBpZV9vcHRpb25zOgorICAgICAgICAgICAgd2FybmluZ3Mu
d2FybigndXNlIG9wdGlvbnMgaW5zdGVhZCBvZiBpZV9vcHRpb25zJywgRGVwcmVjYXRpb25XYXJu
aW5nKQorICAgICAgICAgICAgb3B0aW9ucyA9IGllX29wdGlvbnMKKyAgICAgICAgc2VsZi5wb3J0
ID0gcG9ydAorICAgICAgICBpZiBzZWxmLnBvcnQgPT0gMDoKKyAgICAgICAgICAgIHNlbGYucG9y
dCA9IHV0aWxzLmZyZWVfcG9ydCgpCisgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKyAgICAgICAg
c2VsZi5sb2dfbGV2ZWwgPSBsb2dfbGV2ZWwKKyAgICAgICAgc2VsZi5sb2dfZmlsZSA9IGxvZ19m
aWxlCisKKyAgICAgICAgaWYgb3B0aW9ucyBpcyBOb25lOgorICAgICAgICAgICAgIyBkZXNpcmVk
X2NhcGFiaWxpdGllcyBzdGF5cyBhcyBwYXNzZWQgaW4KKyAgICAgICAgICAgIGlmIGNhcGFiaWxp
dGllcyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IHNlbGYuY3JlYXRl
X29wdGlvbnMoKS50b19jYXBhYmlsaXRpZXMoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
aWYgY2FwYWJpbGl0aWVzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0g
b3B0aW9ucy50b19jYXBhYmlsaXRpZXMoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICBjYXBhYmlsaXRpZXMudXBkYXRlKG9wdGlvbnMudG9fY2FwYWJpbGl0aWVzKCkpCisKKyAg
ICAgICAgc2VsZi5pZWRyaXZlciA9IFNlcnZpY2UoCisgICAgICAgICAgICBleGVjdXRhYmxlX3Bh
dGgsCisgICAgICAgICAgICBwb3J0PXNlbGYucG9ydCwKKyAgICAgICAgICAgIGhvc3Q9c2VsZi5o
b3N0LAorICAgICAgICAgICAgbG9nX2xldmVsPXNlbGYubG9nX2xldmVsLAorICAgICAgICAgICAg
bG9nX2ZpbGU9c2VsZi5sb2dfZmlsZSkKKworICAgICAgICBzZWxmLmllZHJpdmVyLnN0YXJ0KCkK
KworICAgICAgICBpZiBjYXBhYmlsaXRpZXMgaXMgTm9uZToKKyAgICAgICAgICAgIGNhcGFiaWxp
dGllcyA9IERlc2lyZWRDYXBhYmlsaXRpZXMuSU5URVJORVRFWFBMT1JFUgorCisgICAgICAgIFJl
bW90ZVdlYkRyaXZlci5fX2luaXRfXygKKyAgICAgICAgICAgIHNlbGYsCisgICAgICAgICAgICBj
b21tYW5kX2V4ZWN1dG9yPSdodHRwOi8vbG9jYWxob3N0OiVkJyAlIHNlbGYucG9ydCwKKyAgICAg
ICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcykKKyAgICAgICAgc2VsZi5f
aXNfcmVtb3RlID0gRmFsc2UKKworICAgIGRlZiBxdWl0KHNlbGYpOgorICAgICAgICBSZW1vdGVX
ZWJEcml2ZXIucXVpdChzZWxmKQorICAgICAgICBzZWxmLmllZHJpdmVyLnN0b3AoKQorCisgICAg
ZGVmIGNyZWF0ZV9vcHRpb25zKHNlbGYpOgorICAgICAgICByZXR1cm4gT3B0aW9ucygpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvb3BlcmEvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvb3BlcmEvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL29w
ZXJhL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3
YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJp
YnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmli
dXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRp
bmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRv
IHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vu
c2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3
aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisj
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
ZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg
YW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL29wZXJhL29w
dGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvb3BlcmEvb3B0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMTlhM2JlYTg4ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvb3BlcmEvb3B0aW9ucy5weQpA
QCAtMCwwICsxLDEwNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25z
ZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFn
cmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3
b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3du
ZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBB
cGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5v
dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2Uu
ICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8v
d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVk
IGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBk
aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMg
SVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lO
RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisj
IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMK
KyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNocm9tZS5v
cHRpb25zIGltcG9ydCBPcHRpb25zIGFzIENocm9tZU9wdGlvbnMKK2Zyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxp
dGllcworCisKK2NsYXNzIE9wdGlvbnMoQ2hyb21lT3B0aW9ucyk6CisgICAgS0VZID0gIm9wZXJh
T3B0aW9ucyIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgQ2hyb21lT3B0aW9u
cy5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9hbmRyb2lkX3BhY2thZ2VfbmFtZSA9ICcn
CisgICAgICAgIHNlbGYuX2FuZHJvaWRfZGV2aWNlX3NvY2tldCA9ICcnCisgICAgICAgIHNlbGYu
X2FuZHJvaWRfY29tbWFuZF9saW5lX2ZpbGUgPSAnJworCisgICAgQHByb3BlcnR5CisgICAgZGVm
IGFuZHJvaWRfcGFja2FnZV9uYW1lKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu
cyB0aGUgbmFtZSBvZiB0aGUgT3BlcmEgcGFja2FnZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2FuZHJvaWRfcGFja2FnZV9uYW1lCisKKyAgICBAYW5kcm9pZF9wYWNrYWdlX25h
bWUuc2V0dGVyCisgICAgZGVmIGFuZHJvaWRfcGFja2FnZV9uYW1lKHNlbGYsIHZhbHVlKToKKyAg
ICAgICAgIiIiCisgICAgICAgIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBwYWNrYWdlIG5hbWUKKwor
ICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWU6IGRldnRvb2xzIHNvY2tldCBuYW1lCisg
ICAgICAgICIiIgorICAgICAgICBzZWxmLl9hbmRyb2lkX3BhY2thZ2VfbmFtZSA9IHZhbHVlCisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgYW5kcm9pZF9kZXZpY2Vfc29ja2V0KHNlbGYpOgorICAg
ICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgZGV2dG9vbHMgc29ja2V0
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fYW5kcm9pZF9kZXZpY2Vfc29ja2V0
CisKKyAgICBAYW5kcm9pZF9kZXZpY2Vfc29ja2V0LnNldHRlcgorICAgIGRlZiBhbmRyb2lkX2Rl
dmljZV9zb2NrZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQWxsb3dzIHlv
dSB0byBzZXQgdGhlIGRldnRvb2xzIHNvY2tldCBuYW1lCisKKyAgICAgICAgOkFyZ3M6CisgICAg
ICAgICAtIHZhbHVlOiBkZXZ0b29scyBzb2NrZXQgbmFtZQorICAgICAgICAiIiIKKyAgICAgICAg
c2VsZi5fYW5kcm9pZF9kZXZpY2Vfc29ja2V0ID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBhbmRyb2lkX2NvbW1hbmRfbGluZV9maWxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg
ICAgUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY29tbWFuZCBsaW5lIGZpbGUKKyAgICAgICAgIiIi
CisgICAgICAgIHJldHVybiBzZWxmLl9hbmRyb2lkX2NvbW1hbmRfbGluZV9maWxlCisKKyAgICBA
YW5kcm9pZF9jb21tYW5kX2xpbmVfZmlsZS5zZXR0ZXIKKyAgICBkZWYgYW5kcm9pZF9jb21tYW5k
X2xpbmVfZmlsZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBBbGxvd3MgeW91
IHRvIHNldCB3aGVyZSB0aGUgY29tbWFuZCBsaW5lIGZpbGUgbGl2ZXMKKworICAgICAgICA6QXJn
czoKKyAgICAgICAgIC0gdmFsdWU6IGNvbW1hbmQgbGluZSBmaWxlIHBhdGgKKyAgICAgICAgIiIi
CisgICAgICAgIHNlbGYuX2FuZHJvaWRfY29tbWFuZF9saW5lX2ZpbGUgPSB2YWx1ZQorCisgICAg
ZGVmIHRvX2NhcGFiaWxpdGllcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBDcmVh
dGVzIGEgY2FwYWJpbGl0aWVzIHdpdGggYWxsIHRoZSBvcHRpb25zIHRoYXQgaGF2ZSBiZWVuIHNl
dCBhbmQKKworICAgICAgICAgICAgcmV0dXJucyBhIGRpY3Rpb25hcnkgd2l0aCBldmVyeXRoaW5n
CisgICAgICAgICIiIgorICAgICAgICBjYXBhYmlsaXRpZXMgPSBDaHJvbWVPcHRpb25zLnRvX2Nh
cGFiaWxpdGllcyhzZWxmKQorICAgICAgICBjYXBhYmlsaXRpZXMudXBkYXRlKERlc2lyZWRDYXBh
YmlsaXRpZXMuT1BFUkEpCisgICAgICAgIG9wZXJhX29wdGlvbnMgPSBjYXBhYmlsaXRpZXNbc2Vs
Zi5LRVldID0gY2FwYWJpbGl0aWVzLnBvcChDaHJvbWVPcHRpb25zLktFWSwgTm9uZSkKKworICAg
ICAgICBpZiBzZWxmLmFuZHJvaWRfcGFja2FnZV9uYW1lOgorICAgICAgICAgICAgb3BlcmFfb3B0
aW9uc1siYW5kcm9pZFBhY2thZ2UiXSA9IHNlbGYuYW5kcm9pZF9wYWNrYWdlX25hbWUKKyAgICAg
ICAgaWYgc2VsZi5hbmRyb2lkX2RldmljZV9zb2NrZXQ6CisgICAgICAgICAgICBvcGVyYV9vcHRp
b25zWyJhbmRyb2lkRGV2aWNlU29ja2V0Il0gPSBzZWxmLmFuZHJvaWRfZGV2aWNlX3NvY2tldAor
ICAgICAgICBpZiBzZWxmLmFuZHJvaWRfY29tbWFuZF9saW5lX2ZpbGU6CisgICAgICAgICAgICBv
cGVyYV9vcHRpb25zWyJhbmRyb2lkQ29tbWFuZExpbmVGaWxlIl0gPSBcCisgICAgICAgICAgICAg
ICAgc2VsZi5hbmRyb2lkX2NvbW1hbmRfbGluZV9maWxlCisgICAgICAgIHJldHVybiBjYXBhYmls
aXRpZXMKKworCitjbGFzcyBBbmRyb2lkT3B0aW9ucyhPcHRpb25zKToKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKKyAgICAgICAgT3B0aW9ucy5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxm
LmFuZHJvaWRfcGFja2FnZV9uYW1lID0gJ2NvbS5vcGVyYS5icm93c2VyJwpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL29w
ZXJhL3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9vcGVyYS93ZWJkcml2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmVjMmE3ZGQ4N2ZhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL29wZXJhL3dl
YmRyaXZlci5weQpAQCAtMCwwICsxLDc4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KK2ltcG9ydCB3YXJuaW5ncworCitmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5jaHJvbWUud2ViZHJpdmVyIGltcG9ydCBXZWJEcml2ZXIgYXMg
Q2hyb21pdW1Ecml2ZXIKK2Zyb20gLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKKworCitjbGFzcyBP
cGVyYURyaXZlcihDaHJvbWl1bURyaXZlcik6CisgICAgIiIiQ29udHJvbHMgdGhlIG5ldyBPcGVy
YURyaXZlciBhbmQgYWxsb3dzIHlvdQorICAgIHRvIGRyaXZlIHRoZSBPcGVyYSBicm93c2VyIGJh
c2VkIG9uIENocm9taXVtLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVf
cGF0aD1Ob25lLCBwb3J0PTAsCisgICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwgc2Vydmlj
ZV9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPU5vbmUs
IHNlcnZpY2VfbG9nX3BhdGg9Tm9uZSwKKyAgICAgICAgICAgICAgICAgb3BlcmFfb3B0aW9ucz1O
b25lKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhl
IG9wZXJhZHJpdmVyLgorCisgICAgICAgIFN0YXJ0cyB0aGUgc2VydmljZSBhbmQgdGhlbiBjcmVh
dGVzIG5ldyBpbnN0YW5jZSBvZiBvcGVyYWRyaXZlci4KKworICAgICAgICA6QXJnczoKKyAgICAg
ICAgIC0gZXhlY3V0YWJsZV9wYXRoIC0gcGF0aCB0byB0aGUgZXhlY3V0YWJsZS4gSWYgdGhlIGRl
ZmF1bHQgaXMgdXNlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdCBhc3N1bWVzIHRo
ZSBleGVjdXRhYmxlIGlzIGluIHRoZSAkUEFUSAorICAgICAgICAgLSBwb3J0IC0gcG9ydCB5b3Ug
d291bGQgbGlrZSB0aGUgc2VydmljZSB0byBydW4sIGlmIGxlZnQgYXMgMCwKKyAgICAgICAgICAg
ICAgICAgIGEgZnJlZSBwb3J0IHdpbGwgYmUgZm91bmQuCisgICAgICAgICAtIGRlc2lyZWRfY2Fw
YWJpbGl0aWVzOiBEaWN0aW9uYXJ5IG9iamVjdCB3aXRoIG5vbi1icm93c2VyIHNwZWNpZmljCisg
ICAgICAgICAgIGNhcGFiaWxpdGllcyBvbmx5LCBzdWNoIGFzICJwcm94eSIgb3IgImxvZ2dpbmdQ
cmVmIi4KKyAgICAgICAgIC0gb3B0aW9uczogdGhpcyB0YWtlcyBhbiBpbnN0YW5jZSBvZiBDaHJv
bWVPcHRpb25zCisgICAgICAgICIiIgorICAgICAgICBpZiBvcGVyYV9vcHRpb25zOgorICAgICAg
ICAgICAgd2FybmluZ3Mud2FybigndXNlIG9wdGlvbnMgaW5zdGVhZCBvZiBvcGVyYV9vcHRpb25z
JywgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgb3B0aW9ucyA9IG9wZXJhX29wdGlv
bnMKKworICAgICAgICBleGVjdXRhYmxlX3BhdGggPSAoZXhlY3V0YWJsZV9wYXRoIGlmIGV4ZWN1
dGFibGVfcGF0aCBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAi
b3BlcmFkcml2ZXIiKQorICAgICAgICBDaHJvbWl1bURyaXZlci5fX2luaXRfXyhzZWxmLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGg9ZXhlY3V0YWJsZV9w
YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PXBvcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9b3B0aW9ucywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VydmljZV9hcmdzPXNlcnZpY2VfYXJncywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9ZGVzaXJlZF9jYXBhYmls
aXRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VfbG9nX3BhdGg9
c2VydmljZV9sb2dfcGF0aCkKKworICAgIGRlZiBjcmVhdGVfb3B0aW9ucyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuIE9wdGlvbnMoKQorCisKK2NsYXNzIFdlYkRyaXZlcihPcGVyYURyaXZlcik6Cisg
ICAgY2xhc3MgU2VydmljZVR5cGU6CisgICAgICAgIENIUk9NSVVNID0gMgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPU5vbmUs
CisgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGVfcGF0aD1Ob25lLAorICAgICAgICAgICAgICAg
ICBwb3J0PTAsCisgICAgICAgICAgICAgICAgIHNlcnZpY2VfbG9nX3BhdGg9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgc2VydmljZV9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIG9wdGlvbnM9
Tm9uZSk6CisgICAgICAgIE9wZXJhRHJpdmVyLl9faW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVfcGF0
aD1leGVjdXRhYmxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9y
dCwgb3B0aW9ucz1vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNl
X2FyZ3M9c2VydmljZV9hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpcmVk
X2NhcGFiaWxpdGllcz1kZXNpcmVkX2NhcGFiaWxpdGllcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VydmljZV9sb2dfcGF0aD1zZXJ2aWNlX2xvZ19wYXRoKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Bo
YW50b21qcy9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9waGFudG9tanMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Bo
YW50b21qcy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBT
b2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNv
bnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlz
dHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVn
YXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQor
IyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJM
aWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UK
KyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5z
ZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAor
IworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdy
aXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3Ry
aWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05E
SVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRo
ZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9waGFu
dG9tanMvc2VydmljZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9waGFudG9tanMvc2VydmljZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMzdiNGU5ZjhjZjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcGhhbnRv
bWpzL3NlcnZpY2UucHkKQEAgLTAsMCArMSw2OCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdh
cmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmli
dXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1
dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGlu
ZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8g
eW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5z
ZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdp
dGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
KyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMg
VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n
LAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCitpbXBvcnQgb3MKK2ltcG9ydCB0
ZW1wZmlsZQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uIGltcG9ydCBzZXJ2aWNlCisK
KworY2xhc3MgU2VydmljZShzZXJ2aWNlLlNlcnZpY2UpOgorICAgICIiIgorICAgIE9iamVjdCB0
aGF0IG1hbmFnZXMgdGhlIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyBvZiBQaGFudG9tSlMgLyBHaG9z
dGRyaXZlcgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dGFibGVfcGF0
aCwgcG9ydD0wLCBzZXJ2aWNlX2FyZ3M9Tm9uZSwgbG9nX3BhdGg9Tm9uZSk6CisgICAgICAgICIi
IgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBTZXJ2aWNlCisKKyAgICAg
ICAgOkFyZ3M6CisgICAgICAgICAtIGV4ZWN1dGFibGVfcGF0aCA6IFBhdGggdG8gUGhhbnRvbUpT
IGJpbmFyeQorICAgICAgICAgLSBwb3J0IDogUG9ydCB0aGUgc2VydmljZSBpcyBydW5uaW5nIG9u
CisgICAgICAgICAtIHNlcnZpY2VfYXJncyA6IEEgTGlzdCBvZiBvdGhlciBjb21tYW5kIGxpbmUg
b3B0aW9ucyB0byBwYXNzIHRvIFBoYW50b21KUworICAgICAgICAgLSBsb2dfcGF0aDogUGF0aCBm
b3IgUGhhbnRvbUpTIHNlcnZpY2UgdG8gbG9nIHRvCisgICAgICAgICIiIgorICAgICAgICBzZWxm
LnNlcnZpY2VfYXJncyA9IHNlcnZpY2VfYXJncworICAgICAgICBpZiBzZWxmLnNlcnZpY2VfYXJn
cyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5zZXJ2aWNlX2FyZ3MgPSBbXQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc2VsZi5zZXJ2aWNlX2FyZ3MgPSBzZXJ2aWNlX2FyZ3NbOl0KKyAg
ICAgICAgaWYgbm90IGxvZ19wYXRoOgorICAgICAgICAgICAgbG9nX3BhdGggPSAiZ2hvc3Rkcml2
ZXIubG9nIgorICAgICAgICBpZiBub3Qgc2VsZi5fYXJnc19jb250YWluKCItLWNvb2tpZXMtZmls
ZT0iKToKKyAgICAgICAgICAgIHNlbGYuX2Nvb2tpZV90ZW1wX2ZpbGVfaGFuZGxlLCBzZWxmLl9j
b29raWVfdGVtcF9maWxlID0gdGVtcGZpbGUubWtzdGVtcCgpCisgICAgICAgICAgICBzZWxmLnNl
cnZpY2VfYXJncy5hcHBlbmQoIi0tY29va2llcy1maWxlPSIgKyBzZWxmLl9jb29raWVfdGVtcF9m
aWxlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fY29va2llX3RlbXBfZmlsZSA9
IE5vbmUKKworICAgICAgICBzZXJ2aWNlLlNlcnZpY2UuX19pbml0X18oc2VsZiwgZXhlY3V0YWJs
ZV9wYXRoLCBwb3J0PXBvcnQsIGxvZ19maWxlPW9wZW4obG9nX3BhdGgsICd3JykpCisKKyAgICBk
ZWYgX2FyZ3NfY29udGFpbihzZWxmLCBhcmcpOgorICAgICAgICByZXR1cm4gbGVuKGxpc3QoZmls
dGVyKGxhbWJkYSB4OiB4LnN0YXJ0c3dpdGgoYXJnKSwgc2VsZi5zZXJ2aWNlX2FyZ3MpKSkgPiAw
CisKKyAgICBkZWYgY29tbWFuZF9saW5lX2FyZ3Moc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
LnNlcnZpY2VfYXJncyArIFsiLS13ZWJkcml2ZXI9JWQiICUgc2VsZi5wb3J0XQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIHNlcnZpY2VfdXJsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg
R2V0cyB0aGUgdXJsIG9mIHRoZSBHaG9zdERyaXZlciBTZXJ2aWNlCisgICAgICAgICIiIgorICAg
ICAgICByZXR1cm4gImh0dHA6Ly9sb2NhbGhvc3Q6JWQvd2QvaHViIiAlIHNlbGYucG9ydAorCisg
ICAgZGVmIHNlbmRfcmVtb3RlX3NodXRkb3duX2NvbW1hbmQoc2VsZik6CisgICAgICAgIGlmIHNl
bGYuX2Nvb2tpZV90ZW1wX2ZpbGU6CisgICAgICAgICAgICBvcy5jbG9zZShzZWxmLl9jb29raWVf
dGVtcF9maWxlX2hhbmRsZSkKKyAgICAgICAgICAgIG9zLnJlbW92ZShzZWxmLl9jb29raWVfdGVt
cF9maWxlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3BoYW50b21qcy93ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcGhhbnRvbWpzL3dlYmRy
aXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2RjYWRiY2Jl
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvcGhhbnRvbWpzL3dlYmRyaXZlci5weQpAQCAtMCwwICsxLDc2
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmRyaXZlciBpbXBv
cnQgV2ViRHJpdmVyIGFzIFJlbW90ZVdlYkRyaXZlcgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
Y29tbW9uLmRlc2lyZWRfY2FwYWJpbGl0aWVzIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCitm
cm9tIC5zZXJ2aWNlIGltcG9ydCBTZXJ2aWNlCisKKworY2xhc3MgV2ViRHJpdmVyKFJlbW90ZVdl
YkRyaXZlcik6CisgICAgIiIiCisgICAgV3JhcHBlciB0byBjb21tdW5pY2F0ZSB3aXRoIFBoYW50
b21KUyB0aHJvdWdoIEdob3N0ZHJpdmVyLgorCisgICAgWW91IHdpbGwgbmVlZCB0byBmb2xsb3cg
YWxsIHRoZSBkaXJlY3Rpb25zIGhlcmU6CisgICAgaHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2do
b3N0ZHJpdmVyCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9w
YXRoPSJwaGFudG9tanMiLAorICAgICAgICAgICAgICAgICBwb3J0PTAsIGRlc2lyZWRfY2FwYWJp
bGl0aWVzPURlc2lyZWRDYXBhYmlsaXRpZXMuUEhBTlRPTUpTLAorICAgICAgICAgICAgICAgICBz
ZXJ2aWNlX2FyZ3M9Tm9uZSwgc2VydmljZV9sb2dfcGF0aD1Ob25lKToKKyAgICAgICAgIiIiCisg
ICAgICAgIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFBoYW50b21KUyAvIEdob3N0ZHJp
dmVyLgorCisgICAgICAgIFN0YXJ0cyB0aGUgc2VydmljZSBhbmQgdGhlbiBjcmVhdGVzIG5ldyBp
bnN0YW5jZSBvZiB0aGUgZHJpdmVyLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBleGVj
dXRhYmxlX3BhdGggLSBwYXRoIHRvIHRoZSBleGVjdXRhYmxlLiBJZiB0aGUgZGVmYXVsdCBpcyB1
c2VkIGl0IGFzc3VtZXMgdGhlIGV4ZWN1dGFibGUgaXMgaW4gdGhlICRQQVRICisgICAgICAgICAt
IHBvcnQgLSBwb3J0IHlvdSB3b3VsZCBsaWtlIHRoZSBzZXJ2aWNlIHRvIHJ1biwgaWYgbGVmdCBh
cyAwLCBhIGZyZWUgcG9ydCB3aWxsIGJlIGZvdW5kLgorICAgICAgICAgLSBkZXNpcmVkX2NhcGFi
aWxpdGllczogRGljdGlvbmFyeSBvYmplY3Qgd2l0aCBub24tYnJvd3NlciBzcGVjaWZpYworICAg
ICAgICAgICBjYXBhYmlsaXRpZXMgb25seSwgc3VjaCBhcyAicHJveHkiIG9yICJsb2dnaW5nUHJl
ZiIuCisgICAgICAgICAtIHNlcnZpY2VfYXJncyA6IEEgTGlzdCBvZiBjb21tYW5kIGxpbmUgYXJn
dW1lbnRzIHRvIHBhc3MgdG8gUGhhbnRvbUpTCisgICAgICAgICAtIHNlcnZpY2VfbG9nX3BhdGg6
IFBhdGggZm9yIHBoYW50b21qcyBzZXJ2aWNlIHRvIGxvZyB0by4KKyAgICAgICAgIiIiCisgICAg
ICAgIHNlbGYuc2VydmljZSA9IFNlcnZpY2UoCisgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGgs
CisgICAgICAgICAgICBwb3J0PXBvcnQsCisgICAgICAgICAgICBzZXJ2aWNlX2FyZ3M9c2Vydmlj
ZV9hcmdzLAorICAgICAgICAgICAgbG9nX3BhdGg9c2VydmljZV9sb2dfcGF0aCkKKyAgICAgICAg
c2VsZi5zZXJ2aWNlLnN0YXJ0KCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBSZW1vdGVX
ZWJEcml2ZXIuX19pbml0X18oCisgICAgICAgICAgICAgICAgc2VsZiwKKyAgICAgICAgICAgICAg
ICBjb21tYW5kX2V4ZWN1dG9yPXNlbGYuc2VydmljZS5zZXJ2aWNlX3VybCwKKyAgICAgICAgICAg
ICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1kZXNpcmVkX2NhcGFiaWxpdGllcykKKyAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYucXVpdCgpCisgICAgICAgICAgICBy
YWlzZQorCisgICAgICAgIHNlbGYuX2lzX3JlbW90ZSA9IEZhbHNlCisKKyAgICBkZWYgcXVpdChz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIENsb3NlcyB0aGUgYnJvd3NlciBhbmQgc2h1dHMg
ZG93biB0aGUgUGhhbnRvbUpTIGV4ZWN1dGFibGUKKyAgICAgICAgdGhhdCBpcyBzdGFydGVkIHdo
ZW4gc3RhcnRpbmcgdGhlIFBoYW50b21KUworICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgUmVtb3RlV2ViRHJpdmVyLnF1aXQoc2VsZikKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgICMgV2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgbWVzc2FnZSBiZWNh
dXNlIHNvbWV0aGluZyBwcm9iYWJseSBoYXMgZ29uZSB3cm9uZworICAgICAgICAgICAgcGFzcwor
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5zZXJ2aWNlLnN0b3AoKQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3JlbW90ZS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Jl
bW90ZS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUv
Y29tbWFuZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9yZW1vdGUvY29tbWFuZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZTJmN2VkYmRiYzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2NvbW1hbmQu
cHkKQEAgLTAsMCArMSwxNzQgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2NsYXNzIENvbW1hbmQob2JqZWN0KToKKyAg
ICAiIiIKKyAgICBEZWZpbmVzIGNvbnN0YW50cyBmb3IgdGhlIHN0YW5kYXJkIFdlYkRyaXZlciBj
b21tYW5kcy4KKworICAgIFdoaWxlIHRoZXNlIGNvbnN0YW50cyBoYXZlIG5vIG1lYW5pbmcgaW4g
YW5kIG9mIHRoZW1zZWx2ZXMsIHRoZXkgYXJlCisgICAgdXNlZCB0byBtYXJzaGFsIGNvbW1hbmRz
IHRocm91Z2ggYSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBXZWJEcml2ZXIncworICAgIHJlbW90
ZSB3aXJlIHByb3RvY29sOgorCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bUhR
L3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbAorCisgICAgIiIiCisKKyAgICAjIEtlZXAg
aW4gc3luYyB3aXRoIG9yZy5vcGVucWEuc2VsZW5pdW0ucmVtb3RlLkRyaXZlckNvbW1hbmQKKwor
ICAgIFNUQVRVUyA9ICJzdGF0dXMiCisgICAgTkVXX1NFU1NJT04gPSAibmV3U2Vzc2lvbiIKKyAg
ICBHRVRfQUxMX1NFU1NJT05TID0gImdldEFsbFNlc3Npb25zIgorICAgIERFTEVURV9TRVNTSU9O
ID0gImRlbGV0ZVNlc3Npb24iCisgICAgQ0xPU0UgPSAiY2xvc2UiCisgICAgUVVJVCA9ICJxdWl0
IgorICAgIEdFVCA9ICJnZXQiCisgICAgR09fQkFDSyA9ICJnb0JhY2siCisgICAgR09fRk9SV0FS
RCA9ICJnb0ZvcndhcmQiCisgICAgUkVGUkVTSCA9ICJyZWZyZXNoIgorICAgIEFERF9DT09LSUUg
PSAiYWRkQ29va2llIgorICAgIEdFVF9DT09LSUUgPSAiZ2V0Q29va2llIgorICAgIEdFVF9BTExf
Q09PS0lFUyA9ICJnZXRDb29raWVzIgorICAgIERFTEVURV9DT09LSUUgPSAiZGVsZXRlQ29va2ll
IgorICAgIERFTEVURV9BTExfQ09PS0lFUyA9ICJkZWxldGVBbGxDb29raWVzIgorICAgIEZJTkRf
RUxFTUVOVCA9ICJmaW5kRWxlbWVudCIKKyAgICBGSU5EX0VMRU1FTlRTID0gImZpbmRFbGVtZW50
cyIKKyAgICBGSU5EX0NISUxEX0VMRU1FTlQgPSAiZmluZENoaWxkRWxlbWVudCIKKyAgICBGSU5E
X0NISUxEX0VMRU1FTlRTID0gImZpbmRDaGlsZEVsZW1lbnRzIgorICAgIENMRUFSX0VMRU1FTlQg
PSAiY2xlYXJFbGVtZW50IgorICAgIENMSUNLX0VMRU1FTlQgPSAiY2xpY2tFbGVtZW50IgorICAg
IFNFTkRfS0VZU19UT19FTEVNRU5UID0gInNlbmRLZXlzVG9FbGVtZW50IgorICAgIFNFTkRfS0VZ
U19UT19BQ1RJVkVfRUxFTUVOVCA9ICJzZW5kS2V5c1RvQWN0aXZlRWxlbWVudCIKKyAgICBTVUJN
SVRfRUxFTUVOVCA9ICJzdWJtaXRFbGVtZW50IgorICAgIFVQTE9BRF9GSUxFID0gInVwbG9hZEZp
bGUiCisgICAgR0VUX0NVUlJFTlRfV0lORE9XX0hBTkRMRSA9ICJnZXRDdXJyZW50V2luZG93SGFu
ZGxlIgorICAgIFczQ19HRVRfQ1VSUkVOVF9XSU5ET1dfSEFORExFID0gInczY0dldEN1cnJlbnRX
aW5kb3dIYW5kbGUiCisgICAgR0VUX1dJTkRPV19IQU5ETEVTID0gImdldFdpbmRvd0hhbmRsZXMi
CisgICAgVzNDX0dFVF9XSU5ET1dfSEFORExFUyA9ICJ3M2NHZXRXaW5kb3dIYW5kbGVzIgorICAg
IEdFVF9XSU5ET1dfU0laRSA9ICJnZXRXaW5kb3dTaXplIgorICAgIFczQ19HRVRfV0lORE9XX1NJ
WkUgPSAidzNjR2V0V2luZG93U2l6ZSIKKyAgICBXM0NfR0VUX1dJTkRPV19QT1NJVElPTiA9ICJ3
M2NHZXRXaW5kb3dQb3NpdGlvbiIKKyAgICBHRVRfV0lORE9XX1BPU0lUSU9OID0gImdldFdpbmRv
d1Bvc2l0aW9uIgorICAgIFNFVF9XSU5ET1dfU0laRSA9ICJzZXRXaW5kb3dTaXplIgorICAgIFcz
Q19TRVRfV0lORE9XX1NJWkUgPSAidzNjU2V0V2luZG93U2l6ZSIKKyAgICBTRVRfV0lORE9XX1JF
Q1QgPSAic2V0V2luZG93UmVjdCIKKyAgICBHRVRfV0lORE9XX1JFQ1QgPSAiZ2V0V2luZG93UmVj
dCIKKyAgICBTRVRfV0lORE9XX1BPU0lUSU9OID0gInNldFdpbmRvd1Bvc2l0aW9uIgorICAgIFcz
Q19TRVRfV0lORE9XX1BPU0lUSU9OID0gInczY1NldFdpbmRvd1Bvc2l0aW9uIgorICAgIFNXSVRD
SF9UT19XSU5ET1cgPSAic3dpdGNoVG9XaW5kb3ciCisgICAgU1dJVENIX1RPX0ZSQU1FID0gInN3
aXRjaFRvRnJhbWUiCisgICAgU1dJVENIX1RPX1BBUkVOVF9GUkFNRSA9ICJzd2l0Y2hUb1BhcmVu
dEZyYW1lIgorICAgIEdFVF9BQ1RJVkVfRUxFTUVOVCA9ICJnZXRBY3RpdmVFbGVtZW50IgorICAg
IFczQ19HRVRfQUNUSVZFX0VMRU1FTlQgPSAidzNjR2V0QWN0aXZlRWxlbWVudCIKKyAgICBHRVRf
Q1VSUkVOVF9VUkwgPSAiZ2V0Q3VycmVudFVybCIKKyAgICBHRVRfUEFHRV9TT1VSQ0UgPSAiZ2V0
UGFnZVNvdXJjZSIKKyAgICBHRVRfVElUTEUgPSAiZ2V0VGl0bGUiCisgICAgRVhFQ1VURV9TQ1JJ
UFQgPSAiZXhlY3V0ZVNjcmlwdCIKKyAgICBXM0NfRVhFQ1VURV9TQ1JJUFQgPSAidzNjRXhlY3V0
ZVNjcmlwdCIKKyAgICBXM0NfRVhFQ1VURV9TQ1JJUFRfQVNZTkMgPSAidzNjRXhlY3V0ZVNjcmlw
dEFzeW5jIgorICAgIEdFVF9FTEVNRU5UX1RFWFQgPSAiZ2V0RWxlbWVudFRleHQiCisgICAgR0VU
X0VMRU1FTlRfVkFMVUUgPSAiZ2V0RWxlbWVudFZhbHVlIgorICAgIEdFVF9FTEVNRU5UX1RBR19O
QU1FID0gImdldEVsZW1lbnRUYWdOYW1lIgorICAgIFNFVF9FTEVNRU5UX1NFTEVDVEVEID0gInNl
dEVsZW1lbnRTZWxlY3RlZCIKKyAgICBJU19FTEVNRU5UX1NFTEVDVEVEID0gImlzRWxlbWVudFNl
bGVjdGVkIgorICAgIElTX0VMRU1FTlRfRU5BQkxFRCA9ICJpc0VsZW1lbnRFbmFibGVkIgorICAg
IElTX0VMRU1FTlRfRElTUExBWUVEID0gImlzRWxlbWVudERpc3BsYXllZCIKKyAgICBHRVRfRUxF
TUVOVF9MT0NBVElPTiA9ICJnZXRFbGVtZW50TG9jYXRpb24iCisgICAgR0VUX0VMRU1FTlRfTE9D
QVRJT05fT05DRV9TQ1JPTExFRF9JTlRPX1ZJRVcgPSAiZ2V0RWxlbWVudExvY2F0aW9uT25jZVNj
cm9sbGVkSW50b1ZpZXciCisgICAgR0VUX0VMRU1FTlRfU0laRSA9ICJnZXRFbGVtZW50U2l6ZSIK
KyAgICBHRVRfRUxFTUVOVF9SRUNUID0gImdldEVsZW1lbnRSZWN0IgorICAgIEdFVF9FTEVNRU5U
X0FUVFJJQlVURSA9ICJnZXRFbGVtZW50QXR0cmlidXRlIgorICAgIEdFVF9FTEVNRU5UX1BST1BF
UlRZID0gImdldEVsZW1lbnRQcm9wZXJ0eSIKKyAgICBHRVRfRUxFTUVOVF9WQUxVRV9PRl9DU1Nf
UFJPUEVSVFkgPSAiZ2V0RWxlbWVudFZhbHVlT2ZDc3NQcm9wZXJ0eSIKKyAgICBFTEVNRU5UX0VR
VUFMUyA9ICJlbGVtZW50RXF1YWxzIgorICAgIFNDUkVFTlNIT1QgPSAic2NyZWVuc2hvdCIKKyAg
ICBFTEVNRU5UX1NDUkVFTlNIT1QgPSAiZWxlbWVudFNjcmVlbnNob3QiCisgICAgSU1QTElDSVRf
V0FJVCA9ICJpbXBsaWNpdGx5V2FpdCIKKyAgICBFWEVDVVRFX0FTWU5DX1NDUklQVCA9ICJleGVj
dXRlQXN5bmNTY3JpcHQiCisgICAgU0VUX1NDUklQVF9USU1FT1VUID0gInNldFNjcmlwdFRpbWVv
dXQiCisgICAgU0VUX1RJTUVPVVRTID0gInNldFRpbWVvdXRzIgorICAgIE1BWElNSVpFX1dJTkRP
VyA9ICJ3aW5kb3dNYXhpbWl6ZSIKKyAgICBXM0NfTUFYSU1JWkVfV0lORE9XID0gInczY01heGlt
aXplV2luZG93IgorICAgIEdFVF9MT0cgPSAiZ2V0TG9nIgorICAgIEdFVF9BVkFJTEFCTEVfTE9H
X1RZUEVTID0gImdldEF2YWlsYWJsZUxvZ1R5cGVzIgorICAgIEZVTExTQ1JFRU5fV0lORE9XID0g
ImZ1bGxzY3JlZW5XaW5kb3ciCisgICAgTUlOSU1JWkVfV0lORE9XID0gIm1pbmltaXplV2luZG93
IgorCisgICAgIyBBbGVydHMKKyAgICBESVNNSVNTX0FMRVJUID0gImRpc21pc3NBbGVydCIKKyAg
ICBXM0NfRElTTUlTU19BTEVSVCA9ICJ3M2NEaXNtaXNzQWxlcnQiCisgICAgQUNDRVBUX0FMRVJU
ID0gImFjY2VwdEFsZXJ0IgorICAgIFczQ19BQ0NFUFRfQUxFUlQgPSAidzNjQWNjZXB0QWxlcnQi
CisgICAgU0VUX0FMRVJUX1ZBTFVFID0gInNldEFsZXJ0VmFsdWUiCisgICAgVzNDX1NFVF9BTEVS
VF9WQUxVRSA9ICJ3M2NTZXRBbGVydFZhbHVlIgorICAgIEdFVF9BTEVSVF9URVhUID0gImdldEFs
ZXJ0VGV4dCIKKyAgICBXM0NfR0VUX0FMRVJUX1RFWFQgPSAidzNjR2V0QWxlcnRUZXh0IgorICAg
IFNFVF9BTEVSVF9DUkVERU5USUFMUyA9ICJzZXRBbGVydENyZWRlbnRpYWxzIgorCisgICAgIyBB
ZHZhbmNlZCB1c2VyIGludGVyYWN0aW9ucworICAgIFczQ19BQ1RJT05TID0gImFjdGlvbnMiCisg
ICAgVzNDX0NMRUFSX0FDVElPTlMgPSAiY2xlYXJBY3Rpb25TdGF0ZSIKKyAgICBDTElDSyA9ICJt
b3VzZUNsaWNrIgorICAgIERPVUJMRV9DTElDSyA9ICJtb3VzZURvdWJsZUNsaWNrIgorICAgIE1P
VVNFX0RPV04gPSAibW91c2VCdXR0b25Eb3duIgorICAgIE1PVVNFX1VQID0gIm1vdXNlQnV0dG9u
VXAiCisgICAgTU9WRV9UTyA9ICJtb3VzZU1vdmVUbyIKKworICAgICMgU2NyZWVuIE9yaWVudGF0
aW9uCisgICAgU0VUX1NDUkVFTl9PUklFTlRBVElPTiA9ICJzZXRTY3JlZW5PcmllbnRhdGlvbiIK
KyAgICBHRVRfU0NSRUVOX09SSUVOVEFUSU9OID0gImdldFNjcmVlbk9yaWVudGF0aW9uIgorCisg
ICAgIyBUb3VjaCBBY3Rpb25zCisgICAgU0lOR0xFX1RBUCA9ICJ0b3VjaFNpbmdsZVRhcCIKKyAg
ICBUT1VDSF9ET1dOID0gInRvdWNoRG93biIKKyAgICBUT1VDSF9VUCA9ICJ0b3VjaFVwIgorICAg
IFRPVUNIX01PVkUgPSAidG91Y2hNb3ZlIgorICAgIFRPVUNIX1NDUk9MTCA9ICJ0b3VjaFNjcm9s
bCIKKyAgICBET1VCTEVfVEFQID0gInRvdWNoRG91YmxlVGFwIgorICAgIExPTkdfUFJFU1MgPSAi
dG91Y2hMb25nUHJlc3MiCisgICAgRkxJQ0sgPSAidG91Y2hGbGljayIKKworICAgICMgSFRNTCA1
CisgICAgRVhFQ1VURV9TUUwgPSAiZXhlY3V0ZVNxbCIKKworICAgIEdFVF9MT0NBVElPTiA9ICJn
ZXRMb2NhdGlvbiIKKyAgICBTRVRfTE9DQVRJT04gPSAic2V0TG9jYXRpb24iCisKKyAgICBHRVRf
QVBQX0NBQ0hFID0gImdldEFwcENhY2hlIgorICAgIEdFVF9BUFBfQ0FDSEVfU1RBVFVTID0gImdl
dEFwcENhY2hlU3RhdHVzIgorICAgIENMRUFSX0FQUF9DQUNIRSA9ICJjbGVhckFwcENhY2hlIgor
CisgICAgR0VUX0xPQ0FMX1NUT1JBR0VfSVRFTSA9ICJnZXRMb2NhbFN0b3JhZ2VJdGVtIgorICAg
IFJFTU9WRV9MT0NBTF9TVE9SQUdFX0lURU0gPSAicmVtb3ZlTG9jYWxTdG9yYWdlSXRlbSIKKyAg
ICBHRVRfTE9DQUxfU1RPUkFHRV9LRVlTID0gImdldExvY2FsU3RvcmFnZUtleXMiCisgICAgU0VU
X0xPQ0FMX1NUT1JBR0VfSVRFTSA9ICJzZXRMb2NhbFN0b3JhZ2VJdGVtIgorICAgIENMRUFSX0xP
Q0FMX1NUT1JBR0UgPSAiY2xlYXJMb2NhbFN0b3JhZ2UiCisgICAgR0VUX0xPQ0FMX1NUT1JBR0Vf
U0laRSA9ICJnZXRMb2NhbFN0b3JhZ2VTaXplIgorCisgICAgR0VUX1NFU1NJT05fU1RPUkFHRV9J
VEVNID0gImdldFNlc3Npb25TdG9yYWdlSXRlbSIKKyAgICBSRU1PVkVfU0VTU0lPTl9TVE9SQUdF
X0lURU0gPSAicmVtb3ZlU2Vzc2lvblN0b3JhZ2VJdGVtIgorICAgIEdFVF9TRVNTSU9OX1NUT1JB
R0VfS0VZUyA9ICJnZXRTZXNzaW9uU3RvcmFnZUtleXMiCisgICAgU0VUX1NFU1NJT05fU1RPUkFH
RV9JVEVNID0gInNldFNlc3Npb25TdG9yYWdlSXRlbSIKKyAgICBDTEVBUl9TRVNTSU9OX1NUT1JB
R0UgPSAiY2xlYXJTZXNzaW9uU3RvcmFnZSIKKyAgICBHRVRfU0VTU0lPTl9TVE9SQUdFX1NJWkUg
PSAiZ2V0U2Vzc2lvblN0b3JhZ2VTaXplIgorCisgICAgIyBNb2JpbGUKKyAgICBHRVRfTkVUV09S
S19DT05ORUNUSU9OID0gImdldE5ldHdvcmtDb25uZWN0aW9uIgorICAgIFNFVF9ORVRXT1JLX0NP
Tk5FQ1RJT04gPSAic2V0TmV0d29ya0Nvbm5lY3Rpb24iCisgICAgQ1VSUkVOVF9DT05URVhUX0hB
TkRMRSA9ICJnZXRDdXJyZW50Q29udGV4dEhhbmRsZSIKKyAgICBDT05URVhUX0hBTkRMRVMgPSAi
Z2V0Q29udGV4dEhhbmRsZXMiCisgICAgU1dJVENIX1RPX0NPTlRFWFQgPSAic3dpdGNoVG9Db250
ZXh0IgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9lcnJvcmhhbmRsZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2Vycm9yaGFuZGxl
ci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjAwOGU3YWUzZTYK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2Vycm9yaGFuZGxlci5weQpAQCAtMCwwICsxLDI0MCBA
QAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1
bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUg
dGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlv
bmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNG
QyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg
VmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxl
IGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFp
biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcv
bGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg
bGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRI
T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJl
c3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1
YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExp
Y2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IChFbGVtZW50
Q2xpY2tJbnRlcmNlcHRlZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFbGVtZW50Tm90SW50ZXJhY3RhYmxlRXhjZXB0aW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnROb3RTZWxlY3RhYmxlRXhjZXB0aW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnROb3RWaXNp
YmxlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVy
cm9ySW5SZXNwb25zZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJbnNlY3VyZUNlcnRpZmljYXRlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEludmFsaWRDb29yZGluYXRlc0V4Y2VwdGlvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkRWxlbWVudFN0YXRlRXhj
ZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludmFsaWRT
ZXNzaW9uSWRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEltZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJbWVBY3RpdmF0aW9uRmFpbGVkRXhjZXB0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludmFsaWRBcmd1bWVudEV4Y2Vw
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkQ29v
a2llRG9tYWluRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEphdmFzY3JpcHRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTW92ZVRhcmdldE91dE9mQm91bmRzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5vU3VjaENvb2tpZUV4Y2VwdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vU3VjaEZyYW1lRXhjZXB0
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vU3VjaFdpbmRv
d0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb0Fs
ZXJ0UHJlc2VudEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTY3JlZW5zaG90RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lb3V0RXhjZXB0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuYWJsZVRvU2V0Q29va2ll
RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuZXhw
ZWN0ZWRBbGVydFByZXNlbnRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVW5rbm93bk1ldGhvZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJFeGNlcHRpb24pCisKK3RyeToKKyAgICBiYXNl
c3RyaW5nCitleGNlcHQgTmFtZUVycm9yOiAgIyBQeXRob24gMy54CisgICAgYmFzZXN0cmluZyA9
IHN0cgorCisKK2NsYXNzIEVycm9yQ29kZShvYmplY3QpOgorICAgICIiIgorICAgIEVycm9yIGNv
ZGVzIGRlZmluZWQgaW4gdGhlIFdlYkRyaXZlciB3aXJlIHByb3RvY29sLgorICAgICIiIgorICAg
ICMgS2VlcCBpbiBzeW5jIHdpdGggb3JnLm9wZW5xYS5zZWxlbml1bS5yZW1vdGUuRXJyb3JDb2Rl
cyBhbmQgZXJyb3Jjb2Rlcy5oCisgICAgU1VDQ0VTUyA9IDAKKyAgICBOT19TVUNIX0VMRU1FTlQg
PSBbNywgJ25vIHN1Y2ggZWxlbWVudCddCisgICAgTk9fU1VDSF9GUkFNRSA9IFs4LCAnbm8gc3Vj
aCBmcmFtZSddCisgICAgVU5LTk9XTl9DT01NQU5EID0gWzksICd1bmtub3duIGNvbW1hbmQnXQor
ICAgIFNUQUxFX0VMRU1FTlRfUkVGRVJFTkNFID0gWzEwLCAnc3RhbGUgZWxlbWVudCByZWZlcmVu
Y2UnXQorICAgIEVMRU1FTlRfTk9UX1ZJU0lCTEUgPSBbMTEsICdlbGVtZW50IG5vdCB2aXNpYmxl
J10KKyAgICBJTlZBTElEX0VMRU1FTlRfU1RBVEUgPSBbMTIsICdpbnZhbGlkIGVsZW1lbnQgc3Rh
dGUnXQorICAgIFVOS05PV05fRVJST1IgPSBbMTMsICd1bmtub3duIGVycm9yJ10KKyAgICBFTEVN
RU5UX0lTX05PVF9TRUxFQ1RBQkxFID0gWzE1LCAnZWxlbWVudCBub3Qgc2VsZWN0YWJsZSddCisg
ICAgSkFWQVNDUklQVF9FUlJPUiA9IFsxNywgJ2phdmFzY3JpcHQgZXJyb3InXQorICAgIFhQQVRI
X0xPT0tVUF9FUlJPUiA9IFsxOSwgJ2ludmFsaWQgc2VsZWN0b3InXQorICAgIFRJTUVPVVQgPSBb
MjEsICd0aW1lb3V0J10KKyAgICBOT19TVUNIX1dJTkRPVyA9IFsyMywgJ25vIHN1Y2ggd2luZG93
J10KKyAgICBJTlZBTElEX0NPT0tJRV9ET01BSU4gPSBbMjQsICdpbnZhbGlkIGNvb2tpZSBkb21h
aW4nXQorICAgIFVOQUJMRV9UT19TRVRfQ09PS0lFID0gWzI1LCAndW5hYmxlIHRvIHNldCBjb29r
aWUnXQorICAgIFVORVhQRUNURURfQUxFUlRfT1BFTiA9IFsyNiwgJ3VuZXhwZWN0ZWQgYWxlcnQg
b3BlbiddCisgICAgTk9fQUxFUlRfT1BFTiA9IFsyNywgJ25vIHN1Y2ggYWxlcnQnXQorICAgIFND
UklQVF9USU1FT1VUID0gWzI4LCAnc2NyaXB0IHRpbWVvdXQnXQorICAgIElOVkFMSURfRUxFTUVO
VF9DT09SRElOQVRFUyA9IFsyOSwgJ2ludmFsaWQgZWxlbWVudCBjb29yZGluYXRlcyddCisgICAg
SU1FX05PVF9BVkFJTEFCTEUgPSBbMzAsICdpbWUgbm90IGF2YWlsYWJsZSddCisgICAgSU1FX0VO
R0lORV9BQ1RJVkFUSU9OX0ZBSUxFRCA9IFszMSwgJ2ltZSBlbmdpbmUgYWN0aXZhdGlvbiBmYWls
ZWQnXQorICAgIElOVkFMSURfU0VMRUNUT1IgPSBbMzIsICdpbnZhbGlkIHNlbGVjdG9yJ10KKyAg
ICBTRVNTSU9OX05PVF9DUkVBVEVEID0gWzMzLCAnc2Vzc2lvbiBub3QgY3JlYXRlZCddCisgICAg
TU9WRV9UQVJHRVRfT1VUX09GX0JPVU5EUyA9IFszNCwgJ21vdmUgdGFyZ2V0IG91dCBvZiBib3Vu
ZHMnXQorICAgIElOVkFMSURfWFBBVEhfU0VMRUNUT1IgPSBbNTEsICdpbnZhbGlkIHNlbGVjdG9y
J10KKyAgICBJTlZBTElEX1hQQVRIX1NFTEVDVE9SX1JFVFVSTl9UWVBFUiA9IFs1MiwgJ2ludmFs
aWQgc2VsZWN0b3InXQorCisgICAgRUxFTUVOVF9OT1RfSU5URVJBQ1RBQkxFID0gWzYwLCAnZWxl
bWVudCBub3QgaW50ZXJhY3RhYmxlJ10KKyAgICBJTlNFQ1VSRV9DRVJUSUZJQ0FURSA9IFsnaW5z
ZWN1cmUgY2VydGlmaWNhdGUnXQorICAgIElOVkFMSURfQVJHVU1FTlQgPSBbNjEsICdpbnZhbGlk
IGFyZ3VtZW50J10KKyAgICBJTlZBTElEX0NPT1JESU5BVEVTID0gWydpbnZhbGlkIGNvb3JkaW5h
dGVzJ10KKyAgICBJTlZBTElEX1NFU1NJT05fSUQgPSBbJ2ludmFsaWQgc2Vzc2lvbiBpZCddCisg
ICAgTk9fU1VDSF9DT09LSUUgPSBbNjIsICdubyBzdWNoIGNvb2tpZSddCisgICAgVU5BQkxFX1RP
X0NBUFRVUkVfU0NSRUVOID0gWzYzLCAndW5hYmxlIHRvIGNhcHR1cmUgc2NyZWVuJ10KKyAgICBF
TEVNRU5UX0NMSUNLX0lOVEVSQ0VQVEVEID0gWzY0LCAnZWxlbWVudCBjbGljayBpbnRlcmNlcHRl
ZCddCisgICAgVU5LTk9XTl9NRVRIT0QgPSBbJ3Vua25vd24gbWV0aG9kIGV4Y2VwdGlvbiddCisK
KyAgICBNRVRIT0RfTk9UX0FMTE9XRUQgPSBbNDA1LCAndW5zdXBwb3J0ZWQgb3BlcmF0aW9uJ10K
KworCitjbGFzcyBFcnJvckhhbmRsZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBIYW5kbGVzIGVy
cm9ycyByZXR1cm5lZCBieSB0aGUgV2ViRHJpdmVyIHNlcnZlci4KKyAgICAiIiIKKyAgICBkZWYg
Y2hlY2tfcmVzcG9uc2Uoc2VsZiwgcmVzcG9uc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2hl
Y2tzIHRoYXQgYSBKU09OIHJlc3BvbnNlIGZyb20gdGhlIFdlYkRyaXZlciBkb2VzIG5vdCBoYXZl
IGFuIGVycm9yLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSByZXNwb25zZSAtIFRoZSBK
U09OIHJlc3BvbnNlIGZyb20gdGhlIFdlYkRyaXZlciBzZXJ2ZXIgYXMgYSBkaWN0aW9uYXJ5Cisg
ICAgICAgICAgIG9iamVjdC4KKworICAgICAgICA6UmFpc2VzOiBJZiB0aGUgcmVzcG9uc2UgY29u
dGFpbnMgYW4gZXJyb3IgbWVzc2FnZS4KKyAgICAgICAgIiIiCisgICAgICAgIHN0YXR1cyA9IHJl
c3BvbnNlLmdldCgnc3RhdHVzJywgTm9uZSkKKyAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmUgb3Ig
c3RhdHVzID09IEVycm9yQ29kZS5TVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IHZhbHVlID0gTm9uZQorICAgICAgICBtZXNzYWdlID0gcmVzcG9uc2UuZ2V0KCJtZXNzYWdlIiwg
IiIpCisgICAgICAgIHNjcmVlbiA9IHJlc3BvbnNlLmdldCgic2NyZWVuIiwgIiIpCisgICAgICAg
IHN0YWNrdHJhY2UgPSBOb25lCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RhdHVzLCBpbnQpOgor
ICAgICAgICAgICAgdmFsdWVfanNvbiA9IHJlc3BvbnNlLmdldCgndmFsdWUnLCBOb25lKQorICAg
ICAgICAgICAgaWYgdmFsdWVfanNvbiBhbmQgaXNpbnN0YW5jZSh2YWx1ZV9qc29uLCBiYXNlc3Ry
aW5nKToKKyAgICAgICAgICAgICAgICBpbXBvcnQganNvbgorICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBqc29uLmxvYWRzKHZhbHVlX2pzb24pCisgICAg
ICAgICAgICAgICAgICAgIGlmIGxlbih2YWx1ZS5rZXlzKCkpID09IDE6CisgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWyd2YWx1ZSddCisgICAgICAgICAgICAgICAgICAgIHN0
YXR1cyA9IHZhbHVlLmdldCgnZXJyb3InLCBOb25lKQorICAgICAgICAgICAgICAgICAgICBpZiBz
dGF0dXMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHZhbHVlWyJz
dGF0dXMiXQorICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHZhbHVlWyJ2YWx1ZSJd
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShtZXNzYWdlLCBiYXNl
c3RyaW5nKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG1lc3NhZ2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5nZXQoJ21lc3NhZ2Un
KQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZSA9IHZhbHVlLmdldCgnbWVzc2FnZScsIE5vbmUpCisgICAgICAgICAgICAgICAgZXhjZXB0
IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBleGNlcHRp
b25fY2xhc3MgPSBFcnJvckluUmVzcG9uc2VFeGNlcHRpb24KKyAgICAgICAgaWYgc3RhdHVzIGlu
IEVycm9yQ29kZS5OT19TVUNIX0VMRU1FTlQ6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3Mg
PSBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29k
ZS5OT19TVUNIX0ZSQU1FOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gTm9TdWNoRnJh
bWVFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLk5PX1NVQ0hfV0lO
RE9XOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gTm9TdWNoV2luZG93RXhjZXB0aW9u
CisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5TVEFMRV9FTEVNRU5UX1JFRkVSRU5D
RToKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4
Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuRUxFTUVOVF9OT1RfVklT
SUJMRToKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IEVsZW1lbnROb3RWaXNpYmxlRXhj
ZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5JTlZBTElEX0VMRU1FTlRf
U1RBVEU6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBJbnZhbGlkRWxlbWVudFN0YXRl
RXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5JTlZBTElEX1NFTEVD
VE9SIFwKKyAgICAgICAgICAgICAgICBvciBzdGF0dXMgaW4gRXJyb3JDb2RlLklOVkFMSURfWFBB
VEhfU0VMRUNUT1IgXAorICAgICAgICAgICAgICAgIG9yIHN0YXR1cyBpbiBFcnJvckNvZGUuSU5W
QUxJRF9YUEFUSF9TRUxFQ1RPUl9SRVRVUk5fVFlQRVI6CisgICAgICAgICAgICBleGNlcHRpb25f
Y2xhc3MgPSBJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4g
RXJyb3JDb2RlLkVMRU1FTlRfSVNfTk9UX1NFTEVDVEFCTEU6CisgICAgICAgICAgICBleGNlcHRp
b25fY2xhc3MgPSBFbGVtZW50Tm90U2VsZWN0YWJsZUV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0
YXR1cyBpbiBFcnJvckNvZGUuRUxFTUVOVF9OT1RfSU5URVJBQ1RBQkxFOgorICAgICAgICAgICAg
ZXhjZXB0aW9uX2NsYXNzID0gRWxlbWVudE5vdEludGVyYWN0YWJsZUV4Y2VwdGlvbgorICAgICAg
ICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU5WQUxJRF9DT09LSUVfRE9NQUlOOgorICAgICAg
ICAgICAgZXhjZXB0aW9uX2NsYXNzID0gSW52YWxpZENvb2tpZURvbWFpbkV4Y2VwdGlvbgorICAg
ICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuVU5BQkxFX1RPX1NFVF9DT09LSUU6CisgICAg
ICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBVbmFibGVUb1NldENvb2tpZUV4Y2VwdGlvbgorICAg
ICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuVElNRU9VVDoKKyAgICAgICAgICAgIGV4Y2Vw
dGlvbl9jbGFzcyA9IFRpbWVvdXRFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJy
b3JDb2RlLlNDUklQVF9USU1FT1VUOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gVGlt
ZW91dEV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuVU5LTk9XTl9F
UlJPUjoKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IFdlYkRyaXZlckV4Y2VwdGlvbgor
ICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuVU5FWFBFQ1RFRF9BTEVSVF9PUEVOOgor
ICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gVW5leHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2Vw
dGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuTk9fQUxFUlRfT1BFTjoKKyAg
ICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IE5vQWxlcnRQcmVzZW50RXhjZXB0aW9uCisgICAg
ICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5JTUVfTk9UX0FWQUlMQUJMRToKKyAgICAgICAg
ICAgIGV4Y2VwdGlvbl9jbGFzcyA9IEltZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbgorICAgICAgICBl
bGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU1FX0VOR0lORV9BQ1RJVkFUSU9OX0ZBSUxFRDoKKyAg
ICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IEltZUFjdGl2YXRpb25GYWlsZWRFeGNlcHRpb24K
KyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLk1PVkVfVEFSR0VUX09VVF9PRl9CT1VO
RFM6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBNb3ZlVGFyZ2V0T3V0T2ZCb3VuZHNF
eGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLkpBVkFTQ1JJUFRfRVJS
T1I6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBKYXZhc2NyaXB0RXhjZXB0aW9uCisg
ICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5TRVNTSU9OX05PVF9DUkVBVEVEOgorICAg
ICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gU2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb24KKyAg
ICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLklOVkFMSURfQVJHVU1FTlQ6CisgICAgICAg
ICAgICBleGNlcHRpb25fY2xhc3MgPSBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgICAg
ZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLk5PX1NVQ0hfQ09PS0lFOgorICAgICAgICAgICAgZXhj
ZXB0aW9uX2NsYXNzID0gTm9TdWNoQ29va2llRXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVz
IGluIEVycm9yQ29kZS5VTkFCTEVfVE9fQ0FQVFVSRV9TQ1JFRU46CisgICAgICAgICAgICBleGNl
cHRpb25fY2xhc3MgPSBTY3JlZW5zaG90RXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGlu
IEVycm9yQ29kZS5FTEVNRU5UX0NMSUNLX0lOVEVSQ0VQVEVEOgorICAgICAgICAgICAgZXhjZXB0
aW9uX2NsYXNzID0gRWxlbWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24KKyAgICAgICAgZWxp
ZiBzdGF0dXMgaW4gRXJyb3JDb2RlLklOU0VDVVJFX0NFUlRJRklDQVRFOgorICAgICAgICAgICAg
ZXhjZXB0aW9uX2NsYXNzID0gSW5zZWN1cmVDZXJ0aWZpY2F0ZUV4Y2VwdGlvbgorICAgICAgICBl
bGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU5WQUxJRF9DT09SRElOQVRFUzoKKyAgICAgICAgICAg
IGV4Y2VwdGlvbl9jbGFzcyA9IEludmFsaWRDb29yZGluYXRlc0V4Y2VwdGlvbgorICAgICAgICBl
bGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU5WQUxJRF9TRVNTSU9OX0lEOgorICAgICAgICAgICAg
ZXhjZXB0aW9uX2NsYXNzID0gSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbgorICAgICAgICBlbGlm
IHN0YXR1cyBpbiBFcnJvckNvZGUuVU5LTk9XTl9NRVRIT0Q6CisgICAgICAgICAgICBleGNlcHRp
b25fY2xhc3MgPSBVbmtub3duTWV0aG9kRXhjZXB0aW9uCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBleGNlcHRpb25fY2xhc3MgPSBXZWJEcml2ZXJFeGNlcHRpb24KKyAgICAgICAgaWYgdmFs
dWUgPT0gJycgb3IgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgIHZhbHVlID0gcmVzcG9uc2Vb
J3ZhbHVlJ10KKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgYmFzZXN0cmluZyk6CisgICAg
ICAgICAgICBpZiBleGNlcHRpb25fY2xhc3MgPT0gRXJyb3JJblJlc3BvbnNlRXhjZXB0aW9uOgor
ICAgICAgICAgICAgICAgIHJhaXNlIGV4Y2VwdGlvbl9jbGFzcyhyZXNwb25zZSwgdmFsdWUpCisg
ICAgICAgICAgICByYWlzZSBleGNlcHRpb25fY2xhc3ModmFsdWUpCisgICAgICAgIGlmIG1lc3Nh
Z2UgPT0gIiIgYW5kICdtZXNzYWdlJyBpbiB2YWx1ZToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSB2
YWx1ZVsnbWVzc2FnZSddCisKKyAgICAgICAgc2NyZWVuID0gTm9uZQorICAgICAgICBpZiAnc2Ny
ZWVuJyBpbiB2YWx1ZToKKyAgICAgICAgICAgIHNjcmVlbiA9IHZhbHVlWydzY3JlZW4nXQorCisg
ICAgICAgIHN0YWNrdHJhY2UgPSBOb25lCisgICAgICAgIGlmICdzdGFja1RyYWNlJyBpbiB2YWx1
ZSBhbmQgdmFsdWVbJ3N0YWNrVHJhY2UnXToKKyAgICAgICAgICAgIHN0YWNrdHJhY2UgPSBbXQor
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZvciBmcmFtZSBpbiB2YWx1ZVsnc3Rh
Y2tUcmFjZSddOgorICAgICAgICAgICAgICAgICAgICBsaW5lID0gc2VsZi5fdmFsdWVfb3JfZGVm
YXVsdChmcmFtZSwgJ2xpbmVOdW1iZXInLCAnJykKKyAgICAgICAgICAgICAgICAgICAgZmlsZSA9
IHNlbGYuX3ZhbHVlX29yX2RlZmF1bHQoZnJhbWUsICdmaWxlTmFtZScsICc8YW5vbnltb3VzPicp
CisgICAgICAgICAgICAgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBm
aWxlID0gIiVzOiVzIiAlIChmaWxlLCBsaW5lKQorICAgICAgICAgICAgICAgICAgICBtZXRoID0g
c2VsZi5fdmFsdWVfb3JfZGVmYXVsdChmcmFtZSwgJ21ldGhvZE5hbWUnLCAnPGFub255bW91cz4n
KQorICAgICAgICAgICAgICAgICAgICBpZiAnY2xhc3NOYW1lJyBpbiBmcmFtZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1ldGggPSAiJXMuJXMiICUgKGZyYW1lWydjbGFzc05hbWUnXSwgbWV0
aCkKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gIiAgICBhdCAlcyAoJXMpIgorICAgICAgICAg
ICAgICAgICAgICBtc2cgPSBtc2cgJSAobWV0aCwgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAg
c3RhY2t0cmFjZS5hcHBlbmQobXNnKQorICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIGV4Y2VwdGlvbl9jbGFzcyA9PSBFcnJvcklu
UmVzcG9uc2VFeGNlcHRpb246CisgICAgICAgICAgICByYWlzZSBleGNlcHRpb25fY2xhc3MocmVz
cG9uc2UsIG1lc3NhZ2UpCisgICAgICAgIGVsaWYgZXhjZXB0aW9uX2NsYXNzID09IFVuZXhwZWN0
ZWRBbGVydFByZXNlbnRFeGNlcHRpb24gYW5kICdhbGVydCcgaW4gdmFsdWU6CisgICAgICAgICAg
ICByYWlzZSBleGNlcHRpb25fY2xhc3MobWVzc2FnZSwgc2NyZWVuLCBzdGFja3RyYWNlLCB2YWx1
ZVsnYWxlcnQnXS5nZXQoJ3RleHQnKSkKKyAgICAgICAgcmFpc2UgZXhjZXB0aW9uX2NsYXNzKG1l
c3NhZ2UsIHNjcmVlbiwgc3RhY2t0cmFjZSkKKworICAgIGRlZiBfdmFsdWVfb3JfZGVmYXVsdChz
ZWxmLCBvYmosIGtleSwgZGVmYXVsdCk6CisgICAgICAgIHJldHVybiBvYmpba2V5XSBpZiBrZXkg
aW4gb2JqIGVsc2UgZGVmYXVsdApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9maWxlX2RldGVjdG9yLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Jl
bW90ZS9maWxlX2RldGVjdG9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5jYWVjOWMzMGZiYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvZmlsZV9kZXRlY3Rvci5w
eQpAQCAtMCwwICsxLDU4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENv
bnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2Ug
YWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlz
IHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBv
d25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5z
ZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWly
ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJl
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJB
UyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBL
SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUK
KyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9u
cworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGFiYworaW1wb3J0IG9zCitmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMgaW1wb3J0IGtleXNfdG9fdHlwaW5nCisKKwor
Y2xhc3MgRmlsZURldGVjdG9yKG9iamVjdCk6CisgICAgIiIiCisgICAgVXNlZCBmb3IgaWRlbnRp
Znlpbmcgd2hldGhlciBhIHNlcXVlbmNlIG9mIGNoYXJzIHJlcHJlc2VudHMgdGhlIHBhdGggdG8g
YQorICAgIGZpbGUuCisgICAgIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IGFiYy5BQkNNZXRhCisK
KyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIGlzX2xvY2FsX2ZpbGUoc2VsZiwgKmtl
eXMpOgorICAgICAgICByZXR1cm4KKworCitjbGFzcyBVc2VsZXNzRmlsZURldGVjdG9yKEZpbGVE
ZXRlY3Rvcik6CisgICAgIiIiCisgICAgQSBmaWxlIGRldGVjdG9yIHRoYXQgbmV2ZXIgZmluZHMg
YW55dGhpbmcuCisgICAgIiIiCisgICAgZGVmIGlzX2xvY2FsX2ZpbGUoc2VsZiwgKmtleXMpOgor
ICAgICAgICByZXR1cm4gTm9uZQorCisKK2NsYXNzIExvY2FsRmlsZURldGVjdG9yKEZpbGVEZXRl
Y3Rvcik6CisgICAgIiIiCisgICAgRGV0ZWN0cyBmaWxlcyBvbiB0aGUgbG9jYWwgZGlzay4KKyAg
ICAiIiIKKyAgICBkZWYgaXNfbG9jYWxfZmlsZShzZWxmLCAqa2V5cyk6CisgICAgICAgIGZpbGVf
cGF0aCA9ICcnLmpvaW4oa2V5c190b190eXBpbmcoa2V5cykpCisKKyAgICAgICAgaWYgbm90IGZp
bGVfcGF0aDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZmlsZV9wYXRoKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmlsZV9wYXRoCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBwYXNz
CisgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2dldEF0dHJpYnV0ZS5qcyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9y
ZW1vdGUvZ2V0QXR0cmlidXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4yYTM2MWIxODE0MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvZ2V0QXR0cmlidXRlLmpz
CkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD10aGlz
O2Z1bmN0aW9uIGYoYSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhfTtmdW5jdGlvbiBoKGEsYil7
dGhpcy5jb2RlPWE7dGhpcy5hPWxbYV18fG07dGhpcy5tZXNzYWdlPWJ8fCIiO2E9dGhpcy5hLnJl
cGxhY2UoLygoPzpefFxzKylbYS16XSkvZyxmdW5jdGlvbihhKXtyZXR1cm4gYS50b1VwcGVyQ2Fz
ZSgpLnJlcGxhY2UoL15bXHNceGEwXSsvZywiIil9KTtiPWEubGVuZ3RoLTU7aWYoMD5ifHxhLmlu
ZGV4T2YoIkVycm9yIixiKSE9YilhKz0iRXJyb3IiO3RoaXMubmFtZT1hO2E9RXJyb3IodGhpcy5t
ZXNzYWdlKTthLm5hbWU9dGhpcy5uYW1lO3RoaXMuc3RhY2s9YS5zdGFja3x8IiJ9CisoZnVuY3Rp
b24oKXt2YXIgYT1FcnJvcjtmdW5jdGlvbiBiKCl7fWIucHJvdG90eXBlPWEucHJvdG90eXBlO2gu
Yj1hLnByb3RvdHlwZTtoLnByb3RvdHlwZT1uZXcgYjtoLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1o
O2guYT1mdW5jdGlvbihiLGMsZyl7Zm9yKHZhciBlPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiks
az0yO2s8YXJndW1lbnRzLmxlbmd0aDtrKyspZVtrLTJdPWFyZ3VtZW50c1trXTtyZXR1cm4gYS5w
cm90b3R5cGVbY10uYXBwbHkoYixlKX19KSgpO3ZhciBtPSJ1bmtub3duIGVycm9yIixsPXsxNToi
ZWxlbWVudCBub3Qgc2VsZWN0YWJsZSIsMTE6ImVsZW1lbnQgbm90IHZpc2libGUifTtsWzMxXT1t
O2xbMzBdPW07bFsyNF09ImludmFsaWQgY29va2llIGRvbWFpbiI7bFsyOV09ImludmFsaWQgZWxl
bWVudCBjb29yZGluYXRlcyI7bFsxMl09ImludmFsaWQgZWxlbWVudCBzdGF0ZSI7bFszMl09Imlu
dmFsaWQgc2VsZWN0b3IiO2xbNTFdPSJpbnZhbGlkIHNlbGVjdG9yIjsKK2xbNTJdPSJpbnZhbGlk
IHNlbGVjdG9yIjtsWzE3XT0iamF2YXNjcmlwdCBlcnJvciI7bFs0MDVdPSJ1bnN1cHBvcnRlZCBv
cGVyYXRpb24iO2xbMzRdPSJtb3ZlIHRhcmdldCBvdXQgb2YgYm91bmRzIjtsWzI3XT0ibm8gc3Vj
aCBhbGVydCI7bFs3XT0ibm8gc3VjaCBlbGVtZW50IjtsWzhdPSJubyBzdWNoIGZyYW1lIjtsWzIz
XT0ibm8gc3VjaCB3aW5kb3ciO2xbMjhdPSJzY3JpcHQgdGltZW91dCI7bFszM109InNlc3Npb24g
bm90IGNyZWF0ZWQiO2xbMTBdPSJzdGFsZSBlbGVtZW50IHJlZmVyZW5jZSI7bFsyMV09InRpbWVv
dXQiO2xbMjVdPSJ1bmFibGUgdG8gc2V0IGNvb2tpZSI7bFsyNl09InVuZXhwZWN0ZWQgYWxlcnQg
b3BlbiI7bFsxM109bTtsWzldPSJ1bmtub3duIGNvbW1hbmQiO2gucHJvdG90eXBlLnRvU3RyaW5n
PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSsiOiAiK3RoaXMubWVzc2FnZX07dmFyIG47YTp7
dmFyIHA9ZC5uYXZpZ2F0b3I7aWYocCl7dmFyIHE9cC51c2VyQWdlbnQ7aWYocSl7bj1xO2JyZWFr
IGF9fW49IiJ9ZnVuY3Rpb24gcihhKXtyZXR1cm4tMSE9bi5pbmRleE9mKGEpfTtmdW5jdGlvbiB0
KGEsYil7Zm9yKHZhciBlPWEubGVuZ3RoLGM9ZihhKT9hLnNwbGl0KCIiKTphLGc9MDtnPGU7Zysr
KWcgaW4gYyYmYi5jYWxsKHZvaWQgMCxjW2ddLGcsYSl9O2Z1bmN0aW9uIHYoKXtyZXR1cm4gcigi
aVBob25lIikmJiFyKCJpUG9kIikmJiFyKCJpUGFkIil9O2Z1bmN0aW9uIHcoKXtyZXR1cm4ocigi
Q2hyb21lIil8fHIoIkNyaU9TIikpJiYhcigiRWRnZSIpfTt2YXIgeD1yKCJPcGVyYSIpLHk9cigi
VHJpZGVudCIpfHxyKCJNU0lFIiksej1yKCJFZGdlIiksQT1yKCJHZWNrbyIpJiYhKC0xIT1uLnRv
TG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikmJiFyKCJFZGdlIikpJiYhKHIoIlRyaWRlbnQi
KXx8cigiTVNJRSIpKSYmIXIoIkVkZ2UiKSxhYT0tMSE9bi50b0xvd2VyQ2FzZSgpLmluZGV4T2Yo
IndlYmtpdCIpJiYhcigiRWRnZSIpO2Z1bmN0aW9uIEIoKXt2YXIgYT1kLmRvY3VtZW50O3JldHVy
biBhP2EuZG9jdW1lbnRNb2RlOnZvaWQgMH12YXIgQzsKK2E6e3ZhciBEPSIiLEU9ZnVuY3Rpb24o
KXt2YXIgYT1uO2lmKEEpcmV0dXJuL3J2XDooW15cKTtdKykoXCl8OykvLmV4ZWMoYSk7aWYoeily
ZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKHkpcmV0dXJuL1xiKD86TVNJRXxydilb
OiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKGFhKXJldHVybi9XZWJLaXRcLyhcUyspLy5l
eGVjKGEpO2lmKHgpcmV0dXJuLyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoYSl9KCk7RSYm
KEQ9RT9FWzFdOiIiKTtpZih5KXt2YXIgRj1CKCk7aWYobnVsbCE9RiYmRj5wYXJzZUZsb2F0KEQp
KXtDPVN0cmluZyhGKTticmVhayBhfX1DPUR9dmFyIEc7dmFyIEg9ZC5kb2N1bWVudDtHPUgmJnk/
QigpfHwoIkNTUzFDb21wYXQiPT1ILmNvbXBhdE1vZGU/cGFyc2VJbnQoQywxMCk6NSk6dm9pZCAw
O3ZhciBiYT1yKCJGaXJlZm94IiksY2E9digpfHxyKCJpUG9kIiksZGE9cigiaVBhZCIpLEk9cigi
QW5kcm9pZCIpJiYhKHcoKXx8cigiRmlyZWZveCIpfHxyKCJPcGVyYSIpfHxyKCJTaWxrIikpLGVh
PXcoKSxKPXIoIlNhZmFyaSIpJiYhKHcoKXx8cigiQ29hc3QiKXx8cigiT3BlcmEiKXx8cigiRWRn
ZSIpfHxyKCJTaWxrIil8fHIoIkFuZHJvaWQiKSkmJiEodigpfHxyKCJpUGFkIil8fHIoImlQb2Qi
KSk7ZnVuY3Rpb24gSyhhKXtyZXR1cm4oYT1hLmV4ZWMobikpP2FbMV06IiJ9KGZ1bmN0aW9uKCl7
aWYoYmEpcmV0dXJuIEsoL0ZpcmVmb3hcLyhbMC05Ll0rKS8pO2lmKHl8fHp8fHgpcmV0dXJuIEM7
aWYoZWEpcmV0dXJuIHYoKXx8cigiaVBhZCIpfHxyKCJpUG9kIik/SygvQ3JpT1NcLyhbMC05Ll0r
KS8pOksoL0Nocm9tZVwvKFswLTkuXSspLyk7aWYoSiYmISh2KCl8fHIoImlQYWQiKXx8cigiaVBv
ZCIpKSlyZXR1cm4gSygvVmVyc2lvblwvKFswLTkuXSspLyk7aWYoY2F8fGRhKXt2YXIgYT0vVmVy
c2lvblwvKFxTKykuKk1vYmlsZVwvKFxTKykvLmV4ZWMobik7aWYoYSlyZXR1cm4gYVsxXSsiLiIr
YVsyXX1lbHNlIGlmKEkpcmV0dXJuKGE9SygvQW5kcm9pZFxzKyhbMC05Ll0rKS8pKT9hOksoL1Zl
cnNpb25cLyhbMC05Ll0rKS8pO3JldHVybiIifSkoKTt2YXIgTCxNPWZ1bmN0aW9uKCl7aWYoIUEp
cmV0dXJuITE7dmFyIGE9ZC5Db21wb25lbnRzO2lmKCFhKXJldHVybiExO3RyeXtpZighYS5jbGFz
c2VzKXJldHVybiExfWNhdGNoKGcpe3JldHVybiExfXZhciBiPWEuY2xhc3NlcyxhPWEuaW50ZXJm
YWNlcyxlPWJbIkBtb3ppbGxhLm9yZy94cGNvbS92ZXJzaW9uLWNvbXBhcmF0b3I7MSJdLmdldFNl
cnZpY2UoYS5uc0lWZXJzaW9uQ29tcGFyYXRvciksYz1iWyJAbW96aWxsYS5vcmcveHJlL2FwcC1p
bmZvOzEiXS5nZXRTZXJ2aWNlKGEubnNJWFVMQXBwSW5mbykudmVyc2lvbjtMPWZ1bmN0aW9uKGEp
e2UuY29tcGFyZShjLCIiK2EpfTtyZXR1cm4hMH0oKSxOPXkmJiEoODw9TnVtYmVyKEcpKSxmYT15
JiYhKDk8PU51bWJlcihHKSk7SSYmTSYmTCgyLjMpO0kmJk0mJkwoNCk7SiYmTSYmTCg2KTt2YXIg
Z2E9e1NDUklQVDoxLFNUWUxFOjEsSEVBRDoxLElGUkFNRToxLE9CSkVDVDoxfSxPPXtJTUc6IiAi
LEJSOiJcbiJ9O2Z1bmN0aW9uIFAoYSxiLGUpe2lmKCEoYS5ub2RlTmFtZSBpbiBnYSkpaWYoMz09
YS5ub2RlVHlwZSllP2IucHVzaChTdHJpbmcoYS5ub2RlVmFsdWUpLnJlcGxhY2UoLyhcclxufFxy
fFxuKS9nLCIiKSk6Yi5wdXNoKGEubm9kZVZhbHVlKTtlbHNlIGlmKGEubm9kZU5hbWUgaW4gTyli
LnB1c2goT1thLm5vZGVOYW1lXSk7ZWxzZSBmb3IoYT1hLmZpcnN0Q2hpbGQ7YTspUChhLGIsZSks
YT1hLm5leHRTaWJsaW5nfTtmdW5jdGlvbiBRKGEsYil7Yj1iLnRvTG93ZXJDYXNlKCk7cmV0dXJu
InN0eWxlIj09Yj9oYShhLnN0eWxlLmNzc1RleHQpOk4mJiJ2YWx1ZSI9PWImJlIoYSwiSU5QVVQi
KT9hLnZhbHVlOmZhJiYhMD09PWFbYl0/U3RyaW5nKGEuZ2V0QXR0cmlidXRlKGIpKTooYT1hLmdl
dEF0dHJpYnV0ZU5vZGUoYikpJiZhLnNwZWNpZmllZD9hLnZhbHVlOm51bGx9dmFyIGlhPS9bO10r
KD89KD86KD86W14iXSoiKXsyfSkqW14iXSokKSg/PSg/Oig/OlteJ10qJyl7Mn0pKlteJ10qJCko
Pz0oPzpbXigpXSpcKFteKCldKlwpKSpbXigpXSokKS87CitmdW5jdGlvbiBoYShhKXt2YXIgYj1b
XTt0KGEuc3BsaXQoaWEpLGZ1bmN0aW9uKGEpe3ZhciBjPWEuaW5kZXhPZigiOiIpOzA8YyYmKGE9
W2Euc2xpY2UoMCxjKSxhLnNsaWNlKGMrMSldLDI9PWEubGVuZ3RoJiZiLnB1c2goYVswXS50b0xv
d2VyQ2FzZSgpLCI6IixhWzFdLCI7IikpfSk7Yj1iLmpvaW4oIiIpO3JldHVybiBiPSI7Ij09Yi5j
aGFyQXQoYi5sZW5ndGgtMSk/YjpiKyI7In1mdW5jdGlvbiBTKGEsYil7TiYmInZhbHVlIj09YiYm
UihhLCJPUFRJT04iKSYmbnVsbD09PVEoYSwidmFsdWUiKT8oYj1bXSxQKGEsYiwhMSksYT1iLmpv
aW4oIiIpKTphPWFbYl07cmV0dXJuIGF9ZnVuY3Rpb24gUihhLGIpe2ImJiJzdHJpbmciIT09dHlw
ZW9mIGImJihiPWIudG9TdHJpbmcoKSk7cmV0dXJuISFhJiYxPT1hLm5vZGVUeXBlJiYoIWJ8fGEu
dGFnTmFtZS50b1VwcGVyQ2FzZSgpPT1iKX0KK2Z1bmN0aW9uIFQoYSl7cmV0dXJuIFIoYSwiT1BU
SU9OIik/ITA6UihhLCJJTlBVVCIpPyhhPWEudHlwZS50b0xvd2VyQ2FzZSgpLCJjaGVja2JveCI9
PWF8fCJyYWRpbyI9PWEpOiExfTt2YXIgamE9eyJjbGFzcyI6ImNsYXNzTmFtZSIscmVhZG9ubHk6
InJlYWRPbmx5In0sVT0iYXN5bmMgYXV0b2ZvY3VzIGF1dG9wbGF5IGNoZWNrZWQgY29tcGFjdCBj
b21wbGV0ZSBjb250cm9scyBkZWNsYXJlIGRlZmF1bHRjaGVja2VkIGRlZmF1bHRzZWxlY3RlZCBk
ZWZlciBkaXNhYmxlZCBkcmFnZ2FibGUgZW5kZWQgZm9ybW5vdmFsaWRhdGUgaGlkZGVuIGluZGV0
ZXJtaW5hdGUgaXNjb250ZW50ZWRpdGFibGUgaXNtYXAgaXRlbXNjb3BlIGxvb3AgbXVsdGlwbGUg
bXV0ZWQgbm9ocmVmIG5vcmVzaXplIG5vc2hhZGUgbm92YWxpZGF0ZSBub3dyYXAgb3BlbiBwYXVz
ZWQgcHViZGF0ZSByZWFkb25seSByZXF1aXJlZCByZXZlcnNlZCBzY29wZWQgc2VhbWxlc3Mgc2Vl
a2luZyBzZWxlY3RlZCBzcGVsbGNoZWNrIHRydWVzcGVlZCB3aWxsdmFsaWRhdGUiLnNwbGl0KCIg
Iik7ZnVuY3Rpb24gVihhLGIpe3ZhciBlPW51bGwsYz1iLnRvTG93ZXJDYXNlKCk7aWYoInN0eWxl
Ij09YylyZXR1cm4oZT1hLnN0eWxlKSYmIWYoZSkmJihlPWUuY3NzVGV4dCksZTtpZigoInNlbGVj
dGVkIj09Y3x8ImNoZWNrZWQiPT1jKSYmVChhKSl7aWYoIVQoYSkpdGhyb3cgbmV3IGgoMTUsIkVs
ZW1lbnQgaXMgbm90IHNlbGVjdGFibGUiKTtiPSJzZWxlY3RlZCI7ZT1hLnR5cGUmJmEudHlwZS50
b0xvd2VyQ2FzZSgpO2lmKCJjaGVja2JveCI9PWV8fCJyYWRpbyI9PWUpYj0iY2hlY2tlZCI7cmV0
dXJuIFMoYSxiKT8idHJ1ZSI6bnVsbH12YXIgZz1SKGEsIkEiKTtpZihSKGEsIklNRyIpJiYic3Jj
Ij09Y3x8ZyYmImhyZWYiPT1jKXJldHVybihlPVEoYSxjKSkmJihlPVMoYSxjKSksZTtpZigic3Bl
bGxjaGVjayI9PWMpe2U9UShhLGMpO2lmKG51bGwhPT1lKXtpZigiZmFsc2UiPT1lLnRvTG93ZXJD
YXNlKCkpcmV0dXJuImZhbHNlIjtpZigidHJ1ZSI9PWUudG9Mb3dlckNhc2UoKSlyZXR1cm4idHJ1
ZSJ9cmV0dXJuIFMoYSwKK2MpKyIifWc9amFbYl18fGI7YTppZihmKFUpKWM9ZihjKSYmMT09Yy5s
ZW5ndGg/VS5pbmRleE9mKGMsMCk6LTE7ZWxzZXtmb3IodmFyIHU9MDt1PFUubGVuZ3RoO3UrKylp
Zih1IGluIFUmJlVbdV09PT1jKXtjPXU7YnJlYWsgYX1jPS0xfWlmKDA8PWMpcmV0dXJuKGU9bnVs
bCE9PVEoYSxiKXx8UyhhLGcpKT8idHJ1ZSI6bnVsbDt0cnl7dmFyIGs9UyhhLGcpfWNhdGNoKGth
KXt9KGM9bnVsbD09ayl8fChjPXR5cGVvZiBrLGM9Im9iamVjdCI9PWMmJm51bGwhPWt8fCJmdW5j
dGlvbiI9PWMpO2M/ZT1RKGEsYik6ZT1rO3JldHVybiBudWxsIT1lP2UudG9TdHJpbmcoKTpudWxs
fXZhciBXPVsiXyJdLFg9ZDtXWzBdaW4gWHx8IVguZXhlY1NjcmlwdHx8WC5leGVjU2NyaXB0KCJ2
YXIgIitXWzBdKTsKK2Zvcih2YXIgWTtXLmxlbmd0aCYmKFk9Vy5zaGlmdCgpKTspe3ZhciBaO2lm
KFo9IVcubGVuZ3RoKVo9dm9pZCAwIT09VjtaP1hbWV09VjpYW1ldJiZYW1ldIT09T2JqZWN0LnBy
b3RvdHlwZVtZXT9YPVhbWV06WD1YW1ldPXt9fTs7IHJldHVybiB0aGlzLl8uYXBwbHkobnVsbCxh
cmd1bWVudHMpO30uYXBwbHkoe25hdmlnYXRvcjp0eXBlb2Ygd2luZG93IT0ndW5kZWZpbmVkJz93
aW5kb3cubmF2aWdhdG9yOm51bGwsZG9jdW1lbnQ6dHlwZW9mIHdpbmRvdyE9J3VuZGVmaW5lZCc/
d2luZG93LmRvY3VtZW50Om51bGx9LCBhcmd1bWVudHMpO30KZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvaXNE
aXNwbGF5ZWQuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvcmVtb3RlL2lzRGlzcGxheWVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi45YjZmMWMxMGEwZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvaXNE
aXNwbGF5ZWQuanMKQEAgLTAsMCArMSwxMDEgQEAKK2Z1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9u
KCl7dmFyIGs9dGhpcztmdW5jdGlvbiBsKGEpe3JldHVybiB2b2lkIDAhPT1hfWZ1bmN0aW9uIG0o
YSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhfWZ1bmN0aW9uIGFhKGEsYil7YT1hLnNwbGl0KCIu
Iik7dmFyIGM9azthWzBdaW4gY3x8IWMuZXhlY1NjcmlwdHx8Yy5leGVjU2NyaXB0KCJ2YXIgIith
WzBdKTtmb3IodmFyIGQ7YS5sZW5ndGgmJihkPWEuc2hpZnQoKSk7KSFhLmxlbmd0aCYmbChiKT9j
W2RdPWI6Y1tkXSYmY1tkXSE9PU9iamVjdC5wcm90b3R5cGVbZF0/Yz1jW2RdOmM9Y1tkXT17fX0K
K2Z1bmN0aW9uIGJhKGEpe3ZhciBiPXR5cGVvZiBhO2lmKCJvYmplY3QiPT1iKWlmKGEpe2lmKGEg
aW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYXJyYXkiO2lmKGEgaW5zdGFuY2VvZiBPYmplY3QpcmV0
dXJuIGI7dmFyIGM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpO2lmKCJbb2JqZWN0
IFdpbmRvd10iPT1jKXJldHVybiJvYmplY3QiO2lmKCJbb2JqZWN0IEFycmF5XSI9PWN8fCJudW1i
ZXIiPT10eXBlb2YgYS5sZW5ndGgmJiJ1bmRlZmluZWQiIT10eXBlb2YgYS5zcGxpY2UmJiJ1bmRl
ZmluZWQiIT10eXBlb2YgYS5wcm9wZXJ0eUlzRW51bWVyYWJsZSYmIWEucHJvcGVydHlJc0VudW1l
cmFibGUoInNwbGljZSIpKXJldHVybiJhcnJheSI7aWYoIltvYmplY3QgRnVuY3Rpb25dIj09Y3x8
InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNhbGwmJiJ1bmRlZmluZWQiIT10eXBlb2YgYS5wcm9wZXJ0
eUlzRW51bWVyYWJsZSYmIWEucHJvcGVydHlJc0VudW1lcmFibGUoImNhbGwiKSlyZXR1cm4iZnVu
Y3Rpb24ifWVsc2UgcmV0dXJuIm51bGwiOworZWxzZSBpZigiZnVuY3Rpb24iPT1iJiYidW5kZWZp
bmVkIj09dHlwZW9mIGEuY2FsbClyZXR1cm4ib2JqZWN0IjtyZXR1cm4gYn1mdW5jdGlvbiBjYShh
LGIsYyl7cmV0dXJuIGEuY2FsbC5hcHBseShhLmJpbmQsYXJndW1lbnRzKX1mdW5jdGlvbiBkYShh
LGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZigyPGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBkPUFy
cmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2
YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlw
ZS51bnNoaWZ0LmFwcGx5KGMsZCk7cmV0dXJuIGEuYXBwbHkoYixjKX19cmV0dXJuIGZ1bmN0aW9u
KCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0KK2Z1bmN0aW9uIGVhKGEsYixjKXtGdW5j
dGlvbi5wcm90b3R5cGUuYmluZCYmLTEhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLnRvU3RyaW5n
KCkuaW5kZXhPZigibmF0aXZlIGNvZGUiKT9lYT1jYTplYT1kYTtyZXR1cm4gZWEuYXBwbHkobnVs
bCxhcmd1bWVudHMpfWZ1bmN0aW9uIGZhKGEsYil7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciBiPWMuc2xpY2UoKTtiLnB1
c2guYXBwbHkoYixhcmd1bWVudHMpO3JldHVybiBhLmFwcGx5KHRoaXMsYil9fQorZnVuY3Rpb24g
cChhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5MPWIucHJvdG90
eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5LPWZ1bmN0
aW9uKGEsYyxmKXtmb3IodmFyIGQ9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxlPTI7ZTxhcmd1
bWVudHMubGVuZ3RoO2UrKylkW2UtMl09YXJndW1lbnRzW2VdO3JldHVybiBiLnByb3RvdHlwZVtj
XS5hcHBseShhLGQpfX07ZnVuY3Rpb24gZ2EoYSxiKXt0aGlzLmNvZGU9YTt0aGlzLmE9cVthXXx8
aGE7dGhpcy5tZXNzYWdlPWJ8fCIiO2E9dGhpcy5hLnJlcGxhY2UoLygoPzpefFxzKylbYS16XSkv
ZyxmdW5jdGlvbihhKXtyZXR1cm4gYS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoL15bXHNceGEwXSsv
ZywiIil9KTtiPWEubGVuZ3RoLTU7aWYoMD5ifHxhLmluZGV4T2YoIkVycm9yIixiKSE9YilhKz0i
RXJyb3IiO3RoaXMubmFtZT1hO2E9RXJyb3IodGhpcy5tZXNzYWdlKTthLm5hbWU9dGhpcy5uYW1l
O3RoaXMuc3RhY2s9YS5zdGFja3x8IiJ9cChnYSxFcnJvcik7dmFyIGhhPSJ1bmtub3duIGVycm9y
IixxPXsxNToiZWxlbWVudCBub3Qgc2VsZWN0YWJsZSIsMTE6ImVsZW1lbnQgbm90IHZpc2libGUi
fTtxWzMxXT1oYTtxWzMwXT1oYTtxWzI0XT0iaW52YWxpZCBjb29raWUgZG9tYWluIjtxWzI5XT0i
aW52YWxpZCBlbGVtZW50IGNvb3JkaW5hdGVzIjtxWzEyXT0iaW52YWxpZCBlbGVtZW50IHN0YXRl
IjsKK3FbMzJdPSJpbnZhbGlkIHNlbGVjdG9yIjtxWzUxXT0iaW52YWxpZCBzZWxlY3RvciI7cVs1
Ml09ImludmFsaWQgc2VsZWN0b3IiO3FbMTddPSJqYXZhc2NyaXB0IGVycm9yIjtxWzQwNV09InVu
c3VwcG9ydGVkIG9wZXJhdGlvbiI7cVszNF09Im1vdmUgdGFyZ2V0IG91dCBvZiBib3VuZHMiO3Fb
MjddPSJubyBzdWNoIGFsZXJ0IjtxWzddPSJubyBzdWNoIGVsZW1lbnQiO3FbOF09Im5vIHN1Y2gg
ZnJhbWUiO3FbMjNdPSJubyBzdWNoIHdpbmRvdyI7cVsyOF09InNjcmlwdCB0aW1lb3V0IjtxWzMz
XT0ic2Vzc2lvbiBub3QgY3JlYXRlZCI7cVsxMF09InN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIjtx
WzIxXT0idGltZW91dCI7cVsyNV09InVuYWJsZSB0byBzZXQgY29va2llIjtxWzI2XT0idW5leHBl
Y3RlZCBhbGVydCBvcGVuIjtxWzEzXT1oYTtxWzldPSJ1bmtub3duIGNvbW1hbmQiO2dhLnByb3Rv
dHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWUrIjogIit0aGlzLm1lc3Nh
Z2V9O3ZhciBpYT17YWxpY2VibHVlOiIjZjBmOGZmIixhbnRpcXVld2hpdGU6IiNmYWViZDciLGFx
dWE6IiMwMGZmZmYiLGFxdWFtYXJpbmU6IiM3ZmZmZDQiLGF6dXJlOiIjZjBmZmZmIixiZWlnZToi
I2Y1ZjVkYyIsYmlzcXVlOiIjZmZlNGM0IixibGFjazoiIzAwMDAwMCIsYmxhbmNoZWRhbG1vbmQ6
IiNmZmViY2QiLGJsdWU6IiMwMDAwZmYiLGJsdWV2aW9sZXQ6IiM4YTJiZTIiLGJyb3duOiIjYTUy
YTJhIixidXJseXdvb2Q6IiNkZWI4ODciLGNhZGV0Ymx1ZToiIzVmOWVhMCIsY2hhcnRyZXVzZToi
IzdmZmYwMCIsY2hvY29sYXRlOiIjZDI2OTFlIixjb3JhbDoiI2ZmN2Y1MCIsY29ybmZsb3dlcmJs
dWU6IiM2NDk1ZWQiLGNvcm5zaWxrOiIjZmZmOGRjIixjcmltc29uOiIjZGMxNDNjIixjeWFuOiIj
MDBmZmZmIixkYXJrYmx1ZToiIzAwMDA4YiIsZGFya2N5YW46IiMwMDhiOGIiLGRhcmtnb2xkZW5y
b2Q6IiNiODg2MGIiLGRhcmtncmF5OiIjYTlhOWE5IixkYXJrZ3JlZW46IiMwMDY0MDAiLAorZGFy
a2dyZXk6IiNhOWE5YTkiLGRhcmtraGFraToiI2JkYjc2YiIsZGFya21hZ2VudGE6IiM4YjAwOGIi
LGRhcmtvbGl2ZWdyZWVuOiIjNTU2YjJmIixkYXJrb3JhbmdlOiIjZmY4YzAwIixkYXJrb3JjaGlk
OiIjOTkzMmNjIixkYXJrcmVkOiIjOGIwMDAwIixkYXJrc2FsbW9uOiIjZTk5NjdhIixkYXJrc2Vh
Z3JlZW46IiM4ZmJjOGYiLGRhcmtzbGF0ZWJsdWU6IiM0ODNkOGIiLGRhcmtzbGF0ZWdyYXk6IiMy
ZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IiMyZjRmNGYiLGRhcmt0dXJxdW9pc2U6IiMwMGNlZDEiLGRh
cmt2aW9sZXQ6IiM5NDAwZDMiLGRlZXBwaW5rOiIjZmYxNDkzIixkZWVwc2t5Ymx1ZToiIzAwYmZm
ZiIsZGltZ3JheToiIzY5Njk2OSIsZGltZ3JleToiIzY5Njk2OSIsZG9kZ2VyYmx1ZToiIzFlOTBm
ZiIsZmlyZWJyaWNrOiIjYjIyMjIyIixmbG9yYWx3aGl0ZToiI2ZmZmFmMCIsZm9yZXN0Z3JlZW46
IiMyMjhiMjIiLGZ1Y2hzaWE6IiNmZjAwZmYiLGdhaW5zYm9ybzoiI2RjZGNkYyIsCitnaG9zdHdo
aXRlOiIjZjhmOGZmIixnb2xkOiIjZmZkNzAwIixnb2xkZW5yb2Q6IiNkYWE1MjAiLGdyYXk6IiM4
MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI2FkZmYyZiIsZ3JleToiIzgwODA4
MCIsaG9uZXlkZXc6IiNmMGZmZjAiLGhvdHBpbms6IiNmZjY5YjQiLGluZGlhbnJlZDoiI2NkNWM1
YyIsaW5kaWdvOiIjNGIwMDgyIixpdm9yeToiI2ZmZmZmMCIsa2hha2k6IiNmMGU2OGMiLGxhdmVu
ZGVyOiIjZTZlNmZhIixsYXZlbmRlcmJsdXNoOiIjZmZmMGY1IixsYXduZ3JlZW46IiM3Y2ZjMDAi
LGxlbW9uY2hpZmZvbjoiI2ZmZmFjZCIsbGlnaHRibHVlOiIjYWRkOGU2IixsaWdodGNvcmFsOiIj
ZjA4MDgwIixsaWdodGN5YW46IiNlMGZmZmYiLGxpZ2h0Z29sZGVucm9keWVsbG93OiIjZmFmYWQy
IixsaWdodGdyYXk6IiNkM2QzZDMiLGxpZ2h0Z3JlZW46IiM5MGVlOTAiLGxpZ2h0Z3JleToiI2Qz
ZDNkMyIsbGlnaHRwaW5rOiIjZmZiNmMxIixsaWdodHNhbG1vbjoiI2ZmYTA3YSIsCitsaWdodHNl
YWdyZWVuOiIjMjBiMmFhIixsaWdodHNreWJsdWU6IiM4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiIj
Nzc4ODk5IixsaWdodHNsYXRlZ3JleToiIzc3ODg5OSIsbGlnaHRzdGVlbGJsdWU6IiNiMGM0ZGUi
LGxpZ2h0eWVsbG93OiIjZmZmZmUwIixsaW1lOiIjMDBmZjAwIixsaW1lZ3JlZW46IiMzMmNkMzIi
LGxpbmVuOiIjZmFmMGU2IixtYWdlbnRhOiIjZmYwMGZmIixtYXJvb246IiM4MDAwMDAiLG1lZGl1
bWFxdWFtYXJpbmU6IiM2NmNkYWEiLG1lZGl1bWJsdWU6IiMwMDAwY2QiLG1lZGl1bW9yY2hpZDoi
I2JhNTVkMyIsbWVkaXVtcHVycGxlOiIjOTM3MGRiIixtZWRpdW1zZWFncmVlbjoiIzNjYjM3MSIs
bWVkaXVtc2xhdGVibHVlOiIjN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwZmE5YSIsbWVk
aXVtdHVycXVvaXNlOiIjNDhkMWNjIixtZWRpdW12aW9sZXRyZWQ6IiNjNzE1ODUiLG1pZG5pZ2h0
Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjZjVmZmZhIixtaXN0eXJvc2U6IiNmZmU0ZTEiLAor
bW9jY2FzaW46IiNmZmU0YjUiLG5hdmFqb3doaXRlOiIjZmZkZWFkIixuYXZ5OiIjMDAwMDgwIixv
bGRsYWNlOiIjZmRmNWU2IixvbGl2ZToiIzgwODAwMCIsb2xpdmVkcmFiOiIjNmI4ZTIzIixvcmFu
Z2U6IiNmZmE1MDAiLG9yYW5nZXJlZDoiI2ZmNDUwMCIsb3JjaGlkOiIjZGE3MGQ2IixwYWxlZ29s
ZGVucm9kOiIjZWVlOGFhIixwYWxlZ3JlZW46IiM5OGZiOTgiLHBhbGV0dXJxdW9pc2U6IiNhZmVl
ZWUiLHBhbGV2aW9sZXRyZWQ6IiNkYjcwOTMiLHBhcGF5YXdoaXA6IiNmZmVmZDUiLHBlYWNocHVm
ZjoiI2ZmZGFiOSIscGVydToiI2NkODUzZiIscGluazoiI2ZmYzBjYiIscGx1bToiI2RkYTBkZCIs
cG93ZGVyYmx1ZToiI2IwZTBlNiIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHJvc3li
cm93bjoiI2JjOGY4ZiIscm95YWxibHVlOiIjNDE2OWUxIixzYWRkbGVicm93bjoiIzhiNDUxMyIs
c2FsbW9uOiIjZmE4MDcyIixzYW5keWJyb3duOiIjZjRhNDYwIixzZWFncmVlbjoiIzJlOGI1NyIs
CitzZWFzaGVsbDoiI2ZmZjVlZSIsc2llbm5hOiIjYTA1MjJkIixzaWx2ZXI6IiNjMGMwYzAiLHNr
eWJsdWU6IiM4N2NlZWIiLHNsYXRlYmx1ZToiIzZhNWFjZCIsc2xhdGVncmF5OiIjNzA4MDkwIixz
bGF0ZWdyZXk6IiM3MDgwOTAiLHNub3c6IiNmZmZhZmEiLHNwcmluZ2dyZWVuOiIjMDBmZjdmIixz
dGVlbGJsdWU6IiM0NjgyYjQiLHRhbjoiI2QyYjQ4YyIsdGVhbDoiIzAwODA4MCIsdGhpc3RsZToi
I2Q4YmZkOCIsdG9tYXRvOiIjZmY2MzQ3Iix0dXJxdW9pc2U6IiM0MGUwZDAiLHZpb2xldDoiI2Vl
ODJlZSIsd2hlYXQ6IiNmNWRlYjMiLHdoaXRlOiIjZmZmZmZmIix3aGl0ZXNtb2tlOiIjZjVmNWY1
Iix5ZWxsb3c6IiNmZmZmMDAiLHllbGxvd2dyZWVuOiIjOWFjZDMyIn07ZnVuY3Rpb24gamEoYSxi
KXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yn1qYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rp
b24oKXtyZXR1cm4iKCIrdGhpcy53aWR0aCsiIHggIit0aGlzLmhlaWdodCsiKSJ9O2phLnByb3Rv
dHlwZS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmNlaWwodGhpcy53aWR0aCk7dGhp
cy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307amEucHJvdG90eXBl
LmZsb29yPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmZsb29yKHRoaXMud2lkdGgpO3RoaXMu
aGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtqYS5wcm90b3R5cGUu
cm91bmQ9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5o
ZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIGthKGEs
Yil7dmFyIGM9bGE7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChj
LGEpP2NbYV06Y1thXT1iKGEpfTt2YXIgbWE9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9u
KGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXltcc1x4
YTBdK3xbXHNceGEwXSskL2csIiIpfTtmdW5jdGlvbiBuYShhLGIpe3JldHVybiBhPGI/LTE6YT5i
PzE6MH1mdW5jdGlvbiBvYShhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoL1wtKFthLXpdKS9n
LGZ1bmN0aW9uKGEsYyl7cmV0dXJuIGMudG9VcHBlckNhc2UoKX0pfTsvKgorCisgVGhlIE1JVCBM
aWNlbnNlCisKKyBDb3B5cmlnaHQgKGMpIDIwMDcgQ3lib3p1IExhYnMsIEluYy4KKyBDb3B5cmln
aHQgKGMpIDIwMTIgR29vZ2xlIEluYy4KKworIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyBvZiB0aGlz
IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh
cmUiKSwgdG8KKyBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorIHNlbGwg
Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IFNvZnR3YXJlIGlzCisgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKKworIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKKyBUSEUgU09GVFdBUkUgSVMgUFJP
VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZLAorIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORworIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP
RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyBJTiBUSEUgU09GVFdBUkUuCisq
LworZnVuY3Rpb24gcGEoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1ifHwxO3RoaXMuZj1jfHwxfTtm
dW5jdGlvbiBxYShhKXt0aGlzLmI9YTt0aGlzLmE9MH1mdW5jdGlvbiByYShhKXthPWEubWF0Y2go
c2EpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXRhLnRlc3QoYVtiXSkmJmEuc3BsaWNlKGIs
MSk7cmV0dXJuIG5ldyBxYShhKX12YXIgc2E9L1wkPyg/Oig/IVswLTktXC5dKSg/OlwqfFtcdy1c
Ll0rKTopPyg/IVswLTktXC5dKSg/OlwqfFtcdy1cLl0rKXxcL1wvfFwuXC58Ojp8XGQrKD86XC5c
ZCopP3xcLlxkK3wiW14iXSoifCdbXiddKid8WyE8Pl09fFxzK3wuL2csdGE9L15ccy87ZnVuY3Rp
b24gdChhLGIpe3JldHVybiBhLmJbYS5hKyhifHwwKV19ZnVuY3Rpb24gdShhKXtyZXR1cm4gYS5i
W2EuYSsrXX1mdW5jdGlvbiB1YShhKXtyZXR1cm4gYS5iLmxlbmd0aDw9YS5hfTt2YXIgdjthOnt2
YXIgdmE9ay5uYXZpZ2F0b3I7aWYodmEpe3ZhciB3YT12YS51c2VyQWdlbnQ7aWYod2Epe3Y9d2E7
YnJlYWsgYX19dj0iIn1mdW5jdGlvbiB4KGEpe3JldHVybi0xIT12LmluZGV4T2YoYSl9O2Z1bmN0
aW9uIHkoYSxiKXt0aGlzLmg9YTt0aGlzLmM9bChiKT9iOm51bGw7dGhpcy5iPW51bGw7c3dpdGNo
KGEpe2Nhc2UgImNvbW1lbnQiOnRoaXMuYj04O2JyZWFrO2Nhc2UgInRleHQiOnRoaXMuYj0zO2Jy
ZWFrO2Nhc2UgInByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24iOnRoaXMuYj03O2JyZWFrO2Nhc2UgIm5v
ZGUiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuZXhwZWN0ZWQgYXJndW1lbnQiKTt9fWZ1
bmN0aW9uIHhhKGEpe3JldHVybiJjb21tZW50Ij09YXx8InRleHQiPT1hfHwicHJvY2Vzc2luZy1p
bnN0cnVjdGlvbiI9PWF8fCJub2RlIj09YX15LnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3JldHVy
biBudWxsPT09dGhpcy5ifHx0aGlzLmI9PWEubm9kZVR5cGV9O3kucHJvdG90eXBlLmY9ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy5ofTsKK3kucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFy
IGE9IktpbmQgVGVzdDogIit0aGlzLmg7bnVsbD09PXRoaXMuY3x8KGErPXoodGhpcy5jKSk7cmV0
dXJuIGF9O2Z1bmN0aW9uIHlhKGEsYil7dGhpcy5qPWEudG9Mb3dlckNhc2UoKTthPSIqIj09dGhp
cy5qPyIqIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7dGhpcy5jPWI/Yi50b0xvd2Vy
Q2FzZSgpOmF9eWEucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlVHlwZTtpZigx
IT1iJiYyIT1iKXJldHVybiExO2I9bChhLmxvY2FsTmFtZSk/YS5sb2NhbE5hbWU6YS5ub2RlTmFt
ZTtyZXR1cm4iKiIhPXRoaXMuaiYmdGhpcy5qIT1iLnRvTG93ZXJDYXNlKCk/ITE6IioiPT10aGlz
LmM/ITA6dGhpcy5jPT0oYS5uYW1lc3BhY2VVUkk/YS5uYW1lc3BhY2VVUkkudG9Mb3dlckNhc2Uo
KToiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIpfTt5YS5wcm90b3R5cGUuZj1mdW5jdGlv
bigpe3JldHVybiB0aGlzLmp9OworeWEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0
dXJuIk5hbWUgVGVzdDogIisoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT10aGlzLmM/
IiI6dGhpcy5jKyI6IikrdGhpcy5qfTtmdW5jdGlvbiB6YShhKXtzd2l0Y2goYS5ub2RlVHlwZSl7
Y2FzZSAxOnJldHVybiBmYShBYSxhKTtjYXNlIDk6cmV0dXJuIHphKGEuZG9jdW1lbnRFbGVtZW50
KTtjYXNlIDExOmNhc2UgMTA6Y2FzZSA2OmNhc2UgMTI6cmV0dXJuIEJhO2RlZmF1bHQ6cmV0dXJu
IGEucGFyZW50Tm9kZT96YShhLnBhcmVudE5vZGUpOkJhfX1mdW5jdGlvbiBCYSgpe3JldHVybiBu
dWxsfWZ1bmN0aW9uIEFhKGEsYil7aWYoYS5wcmVmaXg9PWIpcmV0dXJuIGEubmFtZXNwYWNlVVJJ
fHwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2Rl
KCJ4bWxuczoiK2IpO3JldHVybiBjJiZjLnNwZWNpZmllZD9jLnZhbHVlfHxudWxsOmEucGFyZW50
Tm9kZSYmOSE9YS5wYXJlbnROb2RlLm5vZGVUeXBlP0FhKGEucGFyZW50Tm9kZSxiKTpudWxsfTtm
dW5jdGlvbiBDYShhLGIpe2lmKG0oYSkpcmV0dXJuIG0oYikmJjE9PWIubGVuZ3RoP2EuaW5kZXhP
ZihiLDApOi0xO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGMgaW4gYSYmYVtjXT09PWIp
cmV0dXJuIGM7cmV0dXJuLTF9ZnVuY3Rpb24gQShhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPW0o
YSk/YS5zcGxpdCgiIik6YSxlPTA7ZTxjO2UrKyllIGluIGQmJmIuY2FsbCh2b2lkIDAsZFtlXSxl
LGEpfWZ1bmN0aW9uIERhKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9W10sZT0wLGY9bShhKT9h
LnNwbGl0KCIiKTphLGc9MDtnPGM7ZysrKWlmKGcgaW4gZil7dmFyIGg9ZltnXTtiLmNhbGwodm9p
ZCAwLGgsZyxhKSYmKGRbZSsrXT1oKX1yZXR1cm4gZH1mdW5jdGlvbiBFYShhLGIsYyl7dmFyIGQ9
YztBKGEsZnVuY3Rpb24oYyxmKXtkPWIuY2FsbCh2b2lkIDAsZCxjLGYsYSl9KTtyZXR1cm4gZH0K
K2Z1bmN0aW9uIEZhKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9bShhKT9hLnNwbGl0KCIiKTph
LGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmYi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkpcmV0dXJuITA7
cmV0dXJuITF9ZnVuY3Rpb24gR2EoYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD1tKGEpP2Euc3Bs
aXQoIiIpOmEsZT0wO2U8YztlKyspaWYoZSBpbiBkJiYhYi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkp
cmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gSGEoYSxiKXthOntmb3IodmFyIGM9YS5sZW5ndGgs
ZD1tKGEpP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspaWYoZSBpbiBkJiZiLmNhbGwodm9pZCAw
LGRbZV0sZSxhKSl7Yj1lO2JyZWFrIGF9Yj0tMX1yZXR1cm4gMD5iP251bGw6bShhKT9hLmNoYXJB
dChiKTphW2JdfWZ1bmN0aW9uIElhKGEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFw
cGx5KFtdLGFyZ3VtZW50cyl9CitmdW5jdGlvbiBKYShhLGIsYyl7cmV0dXJuIDI+PWFyZ3VtZW50
cy5sZW5ndGg/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSxiKTpBcnJheS5wcm90b3R5cGUu
c2xpY2UuY2FsbChhLGIsYyl9O2Z1bmN0aW9uIEthKCl7cmV0dXJuIHgoImlQaG9uZSIpJiYheCgi
aVBvZCIpJiYheCgiaVBhZCIpfTt2YXIgTGE9ImJhY2tncm91bmRDb2xvciBib3JkZXJUb3BDb2xv
ciBib3JkZXJSaWdodENvbG9yIGJvcmRlckJvdHRvbUNvbG9yIGJvcmRlckxlZnRDb2xvciBjb2xv
ciBvdXRsaW5lQ29sb3IiLnNwbGl0KCIgIiksTWE9LyMoWzAtOWEtZkEtRl0pKFswLTlhLWZBLUZd
KShbMC05YS1mQS1GXSkvLE5hPS9eIyg/OlswLTlhLWZdezN9KXsxLDJ9JC9pLE9hPS9eKD86cmdi
YSk/XCgoXGR7MSwzfSksXHM/KFxkezEsM30pLFxzPyhcZHsxLDN9KSxccz8oMHwxfDBcLlxkKilc
KSQvaSxQYT0vXig/OnJnYik/XCgoMHxbMS05XVxkezAsMn0pLFxzPygwfFsxLTldXGR7MCwyfSks
XHM/KDB8WzEtOV1cZHswLDJ9KVwpJC9pO2Z1bmN0aW9uIFFhKCl7cmV0dXJuKHgoIkNocm9tZSIp
fHx4KCJDcmlPUyIpKSYmIXgoIkVkZ2UiKX07ZnVuY3Rpb24gUmEoYSxiKXt0aGlzLng9bChhKT9h
OjA7dGhpcy55PWwoYik/YjowfVJhLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVy
biIoIit0aGlzLngrIiwgIit0aGlzLnkrIikifTtSYS5wcm90b3R5cGUuY2VpbD1mdW5jdGlvbigp
e3RoaXMueD1NYXRoLmNlaWwodGhpcy54KTt0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSk7cmV0dXJu
IHRoaXN9O1JhLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3RoaXMueD1NYXRoLmZsb29yKHRo
aXMueCk7dGhpcy55PU1hdGguZmxvb3IodGhpcy55KTtyZXR1cm4gdGhpc307UmEucHJvdG90eXBl
LnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGgucm91bmQodGhpcy54KTt0aGlzLnk9TWF0aC5y
b3VuZCh0aGlzLnkpO3JldHVybiB0aGlzfTt2YXIgU2E9eCgiT3BlcmEiKSxDPXgoIlRyaWRlbnQi
KXx8eCgiTVNJRSIpLFRhPXgoIkVkZ2UiKSxVYT14KCJHZWNrbyIpJiYhKC0xIT12LnRvTG93ZXJD
YXNlKCkuaW5kZXhPZigid2Via2l0IikmJiF4KCJFZGdlIikpJiYhKHgoIlRyaWRlbnQiKXx8eCgi
TVNJRSIpKSYmIXgoIkVkZ2UiKSxWYT0tMSE9di50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtp
dCIpJiYheCgiRWRnZSIpO2Z1bmN0aW9uIFdhKCl7dmFyIGE9ay5kb2N1bWVudDtyZXR1cm4gYT9h
LmRvY3VtZW50TW9kZTp2b2lkIDB9dmFyIFhhOworYTp7dmFyIFlhPSIiLFphPWZ1bmN0aW9uKCl7
dmFyIGE9djtpZihVYSlyZXR1cm4vcnZcOihbXlwpO10rKShcKXw7KS8uZXhlYyhhKTtpZihUYSly
ZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKEMpcmV0dXJuL1xiKD86TVNJRXxydilb
OiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKFZhKXJldHVybi9XZWJLaXRcLyhcUyspLy5l
eGVjKGEpO2lmKFNhKXJldHVybi8oPzpWZXJzaW9uKVsgXC9dPyhcUyspLy5leGVjKGEpfSgpO1ph
JiYoWWE9WmE/WmFbMV06IiIpO2lmKEMpe3ZhciAkYT1XYSgpO2lmKG51bGwhPSRhJiYkYT5wYXJz
ZUZsb2F0KFlhKSl7WGE9U3RyaW5nKCRhKTticmVhayBhfX1YYT1ZYX12YXIgbGE9e307CitmdW5j
dGlvbiBhYihhKXtyZXR1cm4ga2EoYSxmdW5jdGlvbigpe2Zvcih2YXIgYj0wLGM9bWEoU3RyaW5n
KFhhKSkuc3BsaXQoIi4iKSxkPW1hKFN0cmluZyhhKSkuc3BsaXQoIi4iKSxlPU1hdGgubWF4KGMu
bGVuZ3RoLGQubGVuZ3RoKSxmPTA7IWImJmY8ZTtmKyspe3ZhciBnPWNbZl18fCIiLGg9ZFtmXXx8
IiI7ZG97Zz0vKFxkKikoXEQqKSguKikvLmV4ZWMoZyl8fFsiIiwiIiwiIiwiIl07aD0vKFxkKiko
XEQqKSguKikvLmV4ZWMoaCl8fFsiIiwiIiwiIiwiIl07aWYoMD09Z1swXS5sZW5ndGgmJjA9PWhb
MF0ubGVuZ3RoKWJyZWFrO2I9bmEoMD09Z1sxXS5sZW5ndGg/MDpwYXJzZUludChnWzFdLDEwKSww
PT1oWzFdLmxlbmd0aD8wOnBhcnNlSW50KGhbMV0sMTApKXx8bmEoMD09Z1syXS5sZW5ndGgsMD09
aFsyXS5sZW5ndGgpfHxuYShnWzJdLGhbMl0pO2c9Z1szXTtoPWhbM119d2hpbGUoIWIpfXJldHVy
biAwPD1ifSl9dmFyIGJiO3ZhciBjYj1rLmRvY3VtZW50OworYmI9Y2ImJkM/V2EoKXx8KCJDU1Mx
Q29tcGF0Ij09Y2IuY29tcGF0TW9kZT9wYXJzZUludChYYSwxMCk6NSk6dm9pZCAwO2Z1bmN0aW9u
IGRiKGEsYixjLGQpe3RoaXMuYz1hO3RoaXMuYT1iO3RoaXMuYj1jO3RoaXMuZj1kfWRiLnByb3Rv
dHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIoIit0aGlzLmMrInQsICIrdGhpcy5hKyJy
LCAiK3RoaXMuYisiYiwgIit0aGlzLmYrImwpIn07ZGIucHJvdG90eXBlLmNlaWw9ZnVuY3Rpb24o
KXt0aGlzLmM9TWF0aC5jZWlsKHRoaXMuYyk7dGhpcy5hPU1hdGguY2VpbCh0aGlzLmEpO3RoaXMu
Yj1NYXRoLmNlaWwodGhpcy5iKTt0aGlzLmY9TWF0aC5jZWlsKHRoaXMuZik7cmV0dXJuIHRoaXN9
O2RiLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3RoaXMuYz1NYXRoLmZsb29yKHRoaXMuYyk7
dGhpcy5hPU1hdGguZmxvb3IodGhpcy5hKTt0aGlzLmI9TWF0aC5mbG9vcih0aGlzLmIpO3RoaXMu
Zj1NYXRoLmZsb29yKHRoaXMuZik7cmV0dXJuIHRoaXN9OworZGIucHJvdG90eXBlLnJvdW5kPWZ1
bmN0aW9uKCl7dGhpcy5jPU1hdGgucm91bmQodGhpcy5jKTt0aGlzLmE9TWF0aC5yb3VuZCh0aGlz
LmEpO3RoaXMuYj1NYXRoLnJvdW5kKHRoaXMuYik7dGhpcy5mPU1hdGgucm91bmQodGhpcy5mKTty
ZXR1cm4gdGhpc307dmFyIGViPXgoIkZpcmVmb3giKSxmYj1LYSgpfHx4KCJpUG9kIiksZ2I9eCgi
aVBhZCIpLGhiPXgoIkFuZHJvaWQiKSYmIShRYSgpfHx4KCJGaXJlZm94Iil8fHgoIk9wZXJhIil8
fHgoIlNpbGsiKSksaWI9UWEoKSxqYj14KCJTYWZhcmkiKSYmIShRYSgpfHx4KCJDb2FzdCIpfHx4
KCJPcGVyYSIpfHx4KCJFZGdlIil8fHgoIlNpbGsiKXx8eCgiQW5kcm9pZCIpKSYmIShLYSgpfHx4
KCJpUGFkIil8fHgoImlQb2QiKSk7dmFyIEQ9QyYmISg5PD1OdW1iZXIoYmIpKSxrYj1DJiYhKDg8
PU51bWJlcihiYikpO2Z1bmN0aW9uIEUoYSxiLGMsZCl7dGhpcy5hPWE7dGhpcy5iPWI7dGhpcy53
aWR0aD1jO3RoaXMuaGVpZ2h0PWR9RS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1
cm4iKCIrdGhpcy5hKyIsICIrdGhpcy5iKyIgLSAiK3RoaXMud2lkdGgrIncgeCAiK3RoaXMuaGVp
Z2h0KyJoKSJ9O0UucHJvdG90eXBlLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLmE9TWF0aC5jZWlsKHRo
aXMuYSk7dGhpcy5iPU1hdGguY2VpbCh0aGlzLmIpO3RoaXMud2lkdGg9TWF0aC5jZWlsKHRoaXMu
d2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguY2VpbCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O0Uu
cHJvdG90eXBlLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy5hPU1hdGguZmxvb3IodGhpcy5hKTt0aGlz
LmI9TWF0aC5mbG9vcih0aGlzLmIpO3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0
aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307CitFLnByb3Rv
dHlwZS5yb3VuZD1mdW5jdGlvbigpe3RoaXMuYT1NYXRoLnJvdW5kKHRoaXMuYSk7dGhpcy5iPU1h
dGgucm91bmQodGhpcy5iKTt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5o
ZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIGxiKGEp
e3JldHVybihhPWEuZXhlYyh2KSk/YVsxXToiIn0oZnVuY3Rpb24oKXtpZihlYilyZXR1cm4gbGIo
L0ZpcmVmb3hcLyhbMC05Ll0rKS8pO2lmKEN8fFRhfHxTYSlyZXR1cm4gWGE7aWYoaWIpcmV0dXJu
IEthKCl8fHgoImlQYWQiKXx8eCgiaVBvZCIpP2xiKC9DcmlPU1wvKFswLTkuXSspLyk6bGIoL0No
cm9tZVwvKFswLTkuXSspLyk7aWYoamImJiEoS2EoKXx8eCgiaVBhZCIpfHx4KCJpUG9kIikpKXJl
dHVybiBsYigvVmVyc2lvblwvKFswLTkuXSspLyk7aWYoZmJ8fGdiKXt2YXIgYT0vVmVyc2lvblwv
KFxTKykuKk1vYmlsZVwvKFxTKykvLmV4ZWModik7aWYoYSlyZXR1cm4gYVsxXSsiLiIrYVsyXX1l
bHNlIGlmKGhiKXJldHVybihhPWxiKC9BbmRyb2lkXHMrKFswLTkuXSspLykpP2E6bGIoL1ZlcnNp
b25cLyhbMC05Ll0rKS8pO3JldHVybiIifSkoKTtmdW5jdGlvbiBtYihhLGIsYyxkKXt0aGlzLmE9
YTt0aGlzLm5vZGVOYW1lPWM7dGhpcy5ub2RlVmFsdWU9ZDt0aGlzLm5vZGVUeXBlPTI7dGhpcy5w
YXJlbnROb2RlPXRoaXMub3duZXJFbGVtZW50PWJ9ZnVuY3Rpb24gbmIoYSxiKXt2YXIgYz1rYiYm
ImhyZWYiPT1iLm5vZGVOYW1lP2EuZ2V0QXR0cmlidXRlKGIubm9kZU5hbWUsMik6Yi5ub2RlVmFs
dWU7cmV0dXJuIG5ldyBtYihiLGEsYi5ub2RlTmFtZSxjKX07dmFyIG9iLHBiPWZ1bmN0aW9uKCl7
aWYoIVVhKXJldHVybiExO3ZhciBhPWsuQ29tcG9uZW50cztpZighYSlyZXR1cm4hMTt0cnl7aWYo
IWEuY2xhc3NlcylyZXR1cm4hMX1jYXRjaChlKXtyZXR1cm4hMX12YXIgYj1hLmNsYXNzZXMsYT1h
LmludGVyZmFjZXMsYz1iWyJAbW96aWxsYS5vcmcveHBjb20vdmVyc2lvbi1jb21wYXJhdG9yOzEi
XS5nZXRTZXJ2aWNlKGEubnNJVmVyc2lvbkNvbXBhcmF0b3IpLGQ9YlsiQG1vemlsbGEub3JnL3hy
ZS9hcHAtaW5mbzsxIl0uZ2V0U2VydmljZShhLm5zSVhVTEFwcEluZm8pLnZlcnNpb247b2I9ZnVu
Y3Rpb24oYSl7Yy5jb21wYXJlKGQsIiIrYSl9O3JldHVybiEwfSgpLHFiPUMmJiEoOTw9TnVtYmVy
KGJiKSk7aGImJnBiJiZvYigyLjMpO2hiJiZwYiYmb2IoNCk7amImJnBiJiZvYig2KTtmdW5jdGlv
biByYihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRhaW5zJiYxPT1iLm5vZGVUeXBl
KXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3Np
dGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX0KK2Z1
bmN0aW9uIHNiKGEsYil7aWYoYT09YilyZXR1cm4gMDtpZihhLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKXJldHVybiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjI/MTotMTtpZihDJiYhKDk8
PU51bWJlcihiYikpKXtpZig5PT1hLm5vZGVUeXBlKXJldHVybi0xO2lmKDk9PWIubm9kZVR5cGUp
cmV0dXJuIDF9aWYoInNvdXJjZUluZGV4ImluIGF8fGEucGFyZW50Tm9kZSYmInNvdXJjZUluZGV4
ImluIGEucGFyZW50Tm9kZSl7dmFyIGM9MT09YS5ub2RlVHlwZSxkPTE9PWIubm9kZVR5cGU7aWYo
YyYmZClyZXR1cm4gYS5zb3VyY2VJbmRleC1iLnNvdXJjZUluZGV4O3ZhciBlPWEucGFyZW50Tm9k
ZSxmPWIucGFyZW50Tm9kZTtyZXR1cm4gZT09Zj90YihhLGIpOiFjJiZyYihlLGIpPy0xKnViKGEs
Yik6IWQmJnJiKGYsYSk/dWIoYixhKTooYz9hLnNvdXJjZUluZGV4OmUuc291cmNlSW5kZXgpLShk
P2Iuc291cmNlSW5kZXg6Zi5zb3VyY2VJbmRleCl9ZD1GKGEpO2M9ZC5jcmVhdGVSYW5nZSgpOwor
Yy5zZWxlY3ROb2RlKGEpO2MuY29sbGFwc2UoITApO2E9ZC5jcmVhdGVSYW5nZSgpO2Euc2VsZWN0
Tm9kZShiKTthLmNvbGxhcHNlKCEwKTtyZXR1cm4gYy5jb21wYXJlQm91bmRhcnlQb2ludHMoay5S
YW5nZS5TVEFSVF9UT19FTkQsYSl9ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYz1hLnBhcmVudE5vZGU7
aWYoYz09YilyZXR1cm4tMTtmb3IoO2IucGFyZW50Tm9kZSE9YzspYj1iLnBhcmVudE5vZGU7cmV0
dXJuIHRiKGIsYSl9ZnVuY3Rpb24gdGIoYSxiKXtmb3IoO2I9Yi5wcmV2aW91c1NpYmxpbmc7KWlm
KGI9PWEpcmV0dXJuLTE7cmV0dXJuIDF9ZnVuY3Rpb24gRihhKXtyZXR1cm4gOT09YS5ub2RlVHlw
ZT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH1mdW5jdGlvbiB2YihhLGIpe2EmJihhPWEu
cGFyZW50Tm9kZSk7Zm9yKHZhciBjPTA7YTspe2lmKGIoYSkpcmV0dXJuIGE7YT1hLnBhcmVudE5v
ZGU7YysrfXJldHVybiBudWxsfQorZnVuY3Rpb24gd2IoYSl7dGhpcy5hPWF8fGsuZG9jdW1lbnR8
fGRvY3VtZW50fXdiLnByb3RvdHlwZS5nZXRFbGVtZW50c0J5VGFnTmFtZT1mdW5jdGlvbihhLGIp
e3JldHVybihifHx0aGlzLmEpLmdldEVsZW1lbnRzQnlUYWdOYW1lKFN0cmluZyhhKSl9O2Z1bmN0
aW9uIEcoYSl7dmFyIGI9bnVsbCxjPWEubm9kZVR5cGU7MT09YyYmKGI9YS50ZXh0Q29udGVudCxi
PXZvaWQgMD09Ynx8bnVsbD09Yj9hLmlubmVyVGV4dDpiLGI9dm9pZCAwPT1ifHxudWxsPT1iPyIi
OmIpO2lmKCJzdHJpbmciIT10eXBlb2YgYilpZihEJiYidGl0bGUiPT1hLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCkmJjE9PWMpYj1hLnRleHQ7ZWxzZSBpZig5PT1jfHwxPT1jKXthPTk9PWM/YS5kb2N1
bWVudEVsZW1lbnQ6YS5maXJzdENoaWxkO2Zvcih2YXIgYz0wLGQ9W10sYj0iIjthOyl7ZG8gMSE9
YS5ub2RlVHlwZSYmKGIrPWEubm9kZVZhbHVlKSxEJiYidGl0bGUiPT1hLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCkmJihiKz1hLnRleHQpLGRbYysrXT1hO3doaWxlKGE9YS5maXJzdENoaWxkKTtmb3Io
O2MmJiEoYT1kWy0tY10ubmV4dFNpYmxpbmcpOyk7fX1lbHNlIGI9YS5ub2RlVmFsdWU7cmV0dXJu
IiIrYn0KK2Z1bmN0aW9uIEgoYSxiLGMpe2lmKG51bGw9PT1iKXJldHVybiEwO3RyeXtpZighYS5n
ZXRBdHRyaWJ1dGUpcmV0dXJuITF9Y2F0Y2goZCl7cmV0dXJuITF9a2ImJiJjbGFzcyI9PWImJihi
PSJjbGFzc05hbWUiKTtyZXR1cm4gbnVsbD09Yz8hIWEuZ2V0QXR0cmlidXRlKGIpOmEuZ2V0QXR0
cmlidXRlKGIsMik9PWN9ZnVuY3Rpb24geGIoYSxiLGMsZCxlKXtyZXR1cm4oRD95Yjp6YikuY2Fs
bChudWxsLGEsYixtKGMpP2M6bnVsbCxtKGQpP2Q6bnVsbCxlfHxuZXcgSSl9CitmdW5jdGlvbiB5
YihhLGIsYyxkLGUpe2lmKGEgaW5zdGFuY2VvZiB5YXx8OD09YS5ifHxjJiZudWxsPT09YS5iKXt2
YXIgZj1iLmFsbDtpZighZilyZXR1cm4gZTt2YXIgZz1BYihhKTtpZigiKiIhPWcmJihmPWIuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoZyksIWYpKXJldHVybiBlO2lmKGMpe3ZhciBoPVtdO2ZvcihhPTA7
Yj1mW2ErK107KUgoYixjLGQpJiZoLnB1c2goYik7Zj1ofWZvcihhPTA7Yj1mW2ErK107KSIqIj09
ZyYmIiEiPT1iLnRhZ05hbWV8fEooZSxiKTtyZXR1cm4gZX1CYihhLGIsYyxkLGUpO3JldHVybiBl
fQorZnVuY3Rpb24gemIoYSxiLGMsZCxlKXtiLmdldEVsZW1lbnRzQnlOYW1lJiZkJiYibmFtZSI9
PWMmJiFDPyhiPWIuZ2V0RWxlbWVudHNCeU5hbWUoZCksQShiLGZ1bmN0aW9uKGIpe2EuYShiKSYm
SihlLGIpfSkpOmIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZCYmImNsYXNzIj09Yz8oYj1iLmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoZCksQShiLGZ1bmN0aW9uKGIpe2IuY2xhc3NOYW1lPT1kJiZh
LmEoYikmJkooZSxiKX0pKTphIGluc3RhbmNlb2YgeT9CYihhLGIsYyxkLGUpOmIuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUmJihiPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYS5mKCkpLEEoYixmdW5jdGlv
bihhKXtIKGEsYyxkKSYmSihlLGEpfSkpO3JldHVybiBlfQorZnVuY3Rpb24gQ2IoYSxiLGMsZCxl
KXt2YXIgZjtpZigoYSBpbnN0YW5jZW9mIHlhfHw4PT1hLmJ8fGMmJm51bGw9PT1hLmIpJiYoZj1i
LmNoaWxkTm9kZXMpKXt2YXIgZz1BYihhKTtpZigiKiIhPWcmJihmPURhKGYsZnVuY3Rpb24oYSl7
cmV0dXJuIGEudGFnTmFtZSYmYS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PWd9KSwhZikpcmV0dXJu
IGU7YyYmKGY9RGEoZixmdW5jdGlvbihhKXtyZXR1cm4gSChhLGMsZCl9KSk7QShmLGZ1bmN0aW9u
KGEpeyIqIj09ZyYmKCIhIj09YS50YWdOYW1lfHwiKiI9PWcmJjEhPWEubm9kZVR5cGUpfHxKKGUs
YSl9KTtyZXR1cm4gZX1yZXR1cm4gRGIoYSxiLGMsZCxlKX1mdW5jdGlvbiBEYihhLGIsYyxkLGUp
e2ZvcihiPWIuZmlyc3RDaGlsZDtiO2I9Yi5uZXh0U2libGluZylIKGIsYyxkKSYmYS5hKGIpJiZK
KGUsYik7cmV0dXJuIGV9CitmdW5jdGlvbiBCYihhLGIsYyxkLGUpe2ZvcihiPWIuZmlyc3RDaGls
ZDtiO2I9Yi5uZXh0U2libGluZylIKGIsYyxkKSYmYS5hKGIpJiZKKGUsYiksQmIoYSxiLGMsZCxl
KX1mdW5jdGlvbiBBYihhKXtpZihhIGluc3RhbmNlb2YgeSl7aWYoOD09YS5iKXJldHVybiIhIjtp
ZihudWxsPT09YS5iKXJldHVybiIqIn1yZXR1cm4gYS5mKCl9O2Z1bmN0aW9uIEsoYSxiKXtiJiYi
c3RyaW5nIiE9PXR5cGVvZiBiJiYoYj1iLnRvU3RyaW5nKCkpO3JldHVybiEhYSYmMT09YS5ub2Rl
VHlwZSYmKCFifHxhLnRhZ05hbWUudG9VcHBlckNhc2UoKT09Yil9O2Z1bmN0aW9uIEkoKXt0aGlz
LmI9dGhpcy5hPW51bGw7dGhpcy5sPTB9ZnVuY3Rpb24gRWIoYSl7dGhpcy5ub2RlPWE7dGhpcy5h
PXRoaXMuYj1udWxsfWZ1bmN0aW9uIEZiKGEsYil7aWYoIWEuYSlyZXR1cm4gYjtpZighYi5hKXJl
dHVybiBhO3ZhciBjPWEuYTtiPWIuYTtmb3IodmFyIGQ9bnVsbCxlLGY9MDtjJiZiOyl7ZT1jLm5v
ZGU7dmFyIGc9Yi5ub2RlO2U9PWd8fGUgaW5zdGFuY2VvZiBtYiYmZyBpbnN0YW5jZW9mIG1iJiZl
LmE9PWcuYT8oZT1jLGM9Yy5hLGI9Yi5hKTowPHNiKGMubm9kZSxiLm5vZGUpPyhlPWIsYj1iLmEp
OihlPWMsYz1jLmEpOyhlLmI9ZCk/ZC5hPWU6YS5hPWU7ZD1lO2YrK31mb3IoZT1jfHxiO2U7KWUu
Yj1kLGQ9ZC5hPWUsZisrLGU9ZS5hO2EuYj1kO2EubD1mO3JldHVybiBhfWZ1bmN0aW9uIEdiKGEs
Yil7Yj1uZXcgRWIoYik7Yi5hPWEuYTthLmI/YS5hLmI9YjphLmE9YS5iPWI7YS5hPWI7YS5sKyt9
CitmdW5jdGlvbiBKKGEsYil7Yj1uZXcgRWIoYik7Yi5iPWEuYjthLmE/YS5iLmE9YjphLmE9YS5i
PWI7YS5iPWI7YS5sKyt9ZnVuY3Rpb24gSGIoYSl7cmV0dXJuKGE9YS5hKT9hLm5vZGU6bnVsbH1m
dW5jdGlvbiBJYihhKXtyZXR1cm4oYT1IYihhKSk/RyhhKToiIn1mdW5jdGlvbiBMKGEsYil7cmV0
dXJuIG5ldyBKYihhLCEhYil9ZnVuY3Rpb24gSmIoYSxiKXt0aGlzLmY9YTt0aGlzLmI9KHRoaXMu
cz1iKT9hLmI6YS5hO3RoaXMuYT1udWxsfWZ1bmN0aW9uIE4oYSl7dmFyIGI9YS5iO2lmKGIpe3Zh
ciBjPWEuYT1iO2EuYj1hLnM/Yi5iOmIuYTtyZXR1cm4gYy5ub2RlfXJldHVybiBudWxsfTtmdW5j
dGlvbiBPKGEpe3RoaXMuaT1hO3RoaXMuYj10aGlzLmc9ITE7dGhpcy5mPW51bGx9ZnVuY3Rpb24g
eihhKXtyZXR1cm4iXG4gICIrYS50b1N0cmluZygpLnNwbGl0KCJcbiIpLmpvaW4oIlxuICAiKX1m
dW5jdGlvbiBLYihhLGIpe2EuZz1ifWZ1bmN0aW9uIExiKGEsYil7YS5iPWJ9ZnVuY3Rpb24gUShh
LGIpe2E9YS5hKGIpO3JldHVybiBhIGluc3RhbmNlb2YgST8rSWIoYSk6K2F9ZnVuY3Rpb24gUihh
LGIpe2E9YS5hKGIpO3JldHVybiBhIGluc3RhbmNlb2YgST9JYihhKToiIithfWZ1bmN0aW9uIE1i
KGEsYil7YT1hLmEoYik7cmV0dXJuIGEgaW5zdGFuY2VvZiBJPyEhYS5sOiEhYX07ZnVuY3Rpb24g
TmIoYSxiLGMpe08uY2FsbCh0aGlzLGEuaSk7dGhpcy5jPWE7dGhpcy5oPWI7dGhpcy5vPWM7dGhp
cy5nPWIuZ3x8Yy5nO3RoaXMuYj1iLmJ8fGMuYjt0aGlzLmM9PU9iJiYoYy5ifHxjLmd8fDQ9PWMu
aXx8MD09Yy5pfHwhYi5mP2IuYnx8Yi5nfHw0PT1iLml8fDA9PWIuaXx8IWMuZnx8KHRoaXMuZj17
bmFtZTpjLmYubmFtZSx1OmJ9KTp0aGlzLmY9e25hbWU6Yi5mLm5hbWUsdTpjfSl9cChOYixPKTsK
K2Z1bmN0aW9uIFBiKGEsYixjLGQsZSl7Yj1iLmEoZCk7Yz1jLmEoZCk7dmFyIGY7aWYoYiBpbnN0
YW5jZW9mIEkmJmMgaW5zdGFuY2VvZiBJKXtiPUwoYik7Zm9yKGQ9TihiKTtkO2Q9TihiKSlmb3Io
ZT1MKGMpLGY9TihlKTtmO2Y9TihlKSlpZihhKEcoZCksRyhmKSkpcmV0dXJuITA7cmV0dXJuITF9
aWYoYiBpbnN0YW5jZW9mIEl8fGMgaW5zdGFuY2VvZiBJKXtiIGluc3RhbmNlb2YgST8oZT1iLGQ9
Yyk6KGU9YyxkPWIpO2Y9TChlKTtmb3IodmFyIGc9dHlwZW9mIGQsaD1OKGYpO2g7aD1OKGYpKXtz
d2l0Y2goZyl7Y2FzZSAibnVtYmVyIjpoPStHKGgpO2JyZWFrO2Nhc2UgImJvb2xlYW4iOmg9ISFH
KGgpO2JyZWFrO2Nhc2UgInN0cmluZyI6aD1HKGgpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3Io
IklsbGVnYWwgcHJpbWl0aXZlIHR5cGUgZm9yIGNvbXBhcmlzb24uIik7fWlmKGU9PWImJmEoaCxk
KXx8ZT09YyYmYShkLGgpKXJldHVybiEwfXJldHVybiExfXJldHVybiBlPyJib29sZWFuIj09Cit0
eXBlb2YgYnx8ImJvb2xlYW4iPT10eXBlb2YgYz9hKCEhYiwhIWMpOiJudW1iZXIiPT10eXBlb2Yg
Ynx8Im51bWJlciI9PXR5cGVvZiBjP2EoK2IsK2MpOmEoYixjKTphKCtiLCtjKX1OYi5wcm90b3R5
cGUuYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5jLm0odGhpcy5oLHRoaXMubyxhKX07TmIucHJv
dG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9IkJpbmFyeSBFeHByZXNzaW9uOiAiK3Ro
aXMuYyxhPWEreih0aGlzLmgpO3JldHVybiBhKz16KHRoaXMubyl9O2Z1bmN0aW9uIFFiKGEsYixj
LGQpe3RoaXMuST1hO3RoaXMuRD1iO3RoaXMuaT1jO3RoaXMubT1kfVFiLnByb3RvdHlwZS50b1N0
cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkl9O3ZhciBSYj17fTsKK2Z1bmN0aW9uIFMoYSxi
LGMsZCl7aWYoUmIuaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoIkJpbmFyeSBvcGVyYXRv
ciBhbHJlYWR5IGNyZWF0ZWQ6ICIrYSk7YT1uZXcgUWIoYSxiLGMsZCk7cmV0dXJuIFJiW2EudG9T
dHJpbmcoKV09YX1TKCJkaXYiLDYsMSxmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxjKS9RKGIs
Yyl9KTtTKCJtb2QiLDYsMSxmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxjKSVRKGIsYyl9KTtT
KCIqIiw2LDEsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBRKGEsYykqUShiLGMpfSk7UygiKyIsNSwx
LGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUShhLGMpK1EoYixjKX0pO1MoIi0iLDUsMSxmdW5jdGlv
bihhLGIsYyl7cmV0dXJuIFEoYSxjKS1RKGIsYyl9KTtTKCI8Iiw0LDIsZnVuY3Rpb24oYSxiLGMp
e3JldHVybiBQYihmdW5jdGlvbihhLGIpe3JldHVybiBhPGJ9LGEsYixjKX0pOworUygiPiIsNCwy
LGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUGIoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT5ifSxhLGIs
Yyl9KTtTKCI8PSIsNCwyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUGIoZnVuY3Rpb24oYSxiKXty
ZXR1cm4gYTw9Yn0sYSxiLGMpfSk7UygiPj0iLDQsMixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFBi
KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGE+PWJ9LGEsYixjKX0pO3ZhciBPYj1TKCI9IiwzLDIsZnVu
Y3Rpb24oYSxiLGMpe3JldHVybiBQYihmdW5jdGlvbihhLGIpe3JldHVybiBhPT1ifSxhLGIsYywh
MCl9KTtTKCIhPSIsMywyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUGIoZnVuY3Rpb24oYSxiKXty
ZXR1cm4gYSE9Yn0sYSxiLGMsITApfSk7UygiYW5kIiwyLDIsZnVuY3Rpb24oYSxiLGMpe3JldHVy
biBNYihhLGMpJiZNYihiLGMpfSk7Uygib3IiLDEsMixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIE1i
KGEsYyl8fE1iKGIsYyl9KTtmdW5jdGlvbiBTYihhLGIpe2lmKGIuYS5sZW5ndGgmJjQhPWEuaSl0
aHJvdyBFcnJvcigiUHJpbWFyeSBleHByZXNzaW9uIG11c3QgZXZhbHVhdGUgdG8gbm9kZXNldCBp
ZiBmaWx0ZXIgaGFzIHByZWRpY2F0ZShzKS4iKTtPLmNhbGwodGhpcyxhLmkpO3RoaXMuYz1hO3Ro
aXMuaD1iO3RoaXMuZz1hLmc7dGhpcy5iPWEuYn1wKFNiLE8pO1NiLnByb3RvdHlwZS5hPWZ1bmN0
aW9uKGEpe2E9dGhpcy5jLmEoYSk7cmV0dXJuIFRiKHRoaXMuaCxhKX07U2IucHJvdG90eXBlLnRv
U3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9IkZpbHRlcjoiK3oodGhpcy5jKTtyZXR1cm4gYSs9eih0
aGlzLmgpfTtmdW5jdGlvbiBVYihhLGIpe2lmKGIubGVuZ3RoPGEuQyl0aHJvdyBFcnJvcigiRnVu
Y3Rpb24gIithLmorIiBleHBlY3RzIGF0IGxlYXN0IithLkMrIiBhcmd1bWVudHMsICIrYi5sZW5n
dGgrIiBnaXZlbiIpO2lmKG51bGwhPT1hLkEmJmIubGVuZ3RoPmEuQSl0aHJvdyBFcnJvcigiRnVu
Y3Rpb24gIithLmorIiBleHBlY3RzIGF0IG1vc3QgIithLkErIiBhcmd1bWVudHMsICIrYi5sZW5n
dGgrIiBnaXZlbiIpO2EuSCYmQShiLGZ1bmN0aW9uKGIsZCl7aWYoNCE9Yi5pKXRocm93IEVycm9y
KCJBcmd1bWVudCAiK2QrIiB0byBmdW5jdGlvbiAiK2EuaisiIGlzIG5vdCBvZiB0eXBlIE5vZGVz
ZXQ6ICIrYik7fSk7Ty5jYWxsKHRoaXMsYS5pKTt0aGlzLnY9YTt0aGlzLmM9YjtLYih0aGlzLGEu
Z3x8RmEoYixmdW5jdGlvbihhKXtyZXR1cm4gYS5nfSkpO0xiKHRoaXMsYS5HJiYhYi5sZW5ndGh8
fGEuRiYmISFiLmxlbmd0aHx8RmEoYixmdW5jdGlvbihhKXtyZXR1cm4gYS5ifSkpfQorcChVYixP
KTtVYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52Lm0uYXBwbHkobnVsbCxJ
YShhLHRoaXMuYykpfTtVYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT0iRnVu
Y3Rpb246ICIrdGhpcy52O2lmKHRoaXMuYy5sZW5ndGgpdmFyIGI9RWEodGhpcy5jLGZ1bmN0aW9u
KGEsYil7cmV0dXJuIGEreihiKX0sIkFyZ3VtZW50czoiKSxhPWEreihiKTtyZXR1cm4gYX07ZnVu
Y3Rpb24gVmIoYSxiLGMsZCxlLGYsZyxoLHIpe3RoaXMuaj1hO3RoaXMuaT1iO3RoaXMuZz1jO3Ro
aXMuRz1kO3RoaXMuRj1lO3RoaXMubT1mO3RoaXMuQz1nO3RoaXMuQT1sKGgpP2g6Zzt0aGlzLkg9
ISFyfVZiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9O3ZhciBX
Yj17fTsKK2Z1bmN0aW9uIFQoYSxiLGMsZCxlLGYsZyxoKXtpZihXYi5oYXNPd25Qcm9wZXJ0eShh
KSl0aHJvdyBFcnJvcigiRnVuY3Rpb24gYWxyZWFkeSBjcmVhdGVkOiAiK2ErIi4iKTtXYlthXT1u
ZXcgVmIoYSxiLGMsZCwhMSxlLGYsZyxoKX1UKCJib29sZWFuIiwyLCExLCExLGZ1bmN0aW9uKGEs
Yil7cmV0dXJuIE1iKGIsYSl9LDEpO1QoImNlaWxpbmciLDEsITEsITEsZnVuY3Rpb24oYSxiKXty
ZXR1cm4gTWF0aC5jZWlsKFEoYixhKSl9LDEpO1QoImNvbmNhdCIsMywhMSwhMSxmdW5jdGlvbihh
LGIpe3JldHVybiBFYShKYShhcmd1bWVudHMsMSksZnVuY3Rpb24oYixkKXtyZXR1cm4gYitSKGQs
YSl9LCIiKX0sMixudWxsKTtUKCJjb250YWlucyIsMiwhMSwhMSxmdW5jdGlvbihhLGIsYyl7Yj1S
KGIsYSk7YT1SKGMsYSk7cmV0dXJuLTEhPWIuaW5kZXhPZihhKX0sMik7VCgiY291bnQiLDEsITEs
ITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5hKGEpLmx9LDEsMSwhMCk7CitUKCJmYWxzZSIsMiwh
MSwhMSxmdW5jdGlvbigpe3JldHVybiExfSwwKTtUKCJmbG9vciIsMSwhMSwhMSxmdW5jdGlvbihh
LGIpe3JldHVybiBNYXRoLmZsb29yKFEoYixhKSl9LDEpO1QoImlkIiw0LCExLCExLGZ1bmN0aW9u
KGEsYil7ZnVuY3Rpb24gYyhhKXtpZihEKXt2YXIgYj1lLmFsbFthXTtpZihiKXtpZihiLm5vZGVU
eXBlJiZhPT1iLmlkKXJldHVybiBiO2lmKGIubGVuZ3RoKXJldHVybiBIYShiLGZ1bmN0aW9uKGIp
e3JldHVybiBhPT1iLmlkfSl9cmV0dXJuIG51bGx9cmV0dXJuIGUuZ2V0RWxlbWVudEJ5SWQoYSl9
dmFyIGQ9YS5hLGU9OT09ZC5ub2RlVHlwZT9kOmQub3duZXJEb2N1bWVudDthPVIoYixhKS5zcGxp
dCgvXHMrLyk7dmFyIGY9W107QShhLGZ1bmN0aW9uKGEpe2E9YyhhKTshYXx8MDw9Q2EoZixhKXx8
Zi5wdXNoKGEpfSk7Zi5zb3J0KHNiKTt2YXIgZz1uZXcgSTtBKGYsZnVuY3Rpb24oYSl7SihnLGEp
fSk7cmV0dXJuIGd9LDEpOworVCgibGFuZyIsMiwhMSwhMSxmdW5jdGlvbigpe3JldHVybiExfSwx
KTtUKCJsYXN0IiwxLCEwLCExLGZ1bmN0aW9uKGEpe2lmKDEhPWFyZ3VtZW50cy5sZW5ndGgpdGhy
b3cgRXJyb3IoIkZ1bmN0aW9uIGxhc3QgZXhwZWN0cyAoKSIpO3JldHVybiBhLmZ9LDApO1QoImxv
Y2FsLW5hbWUiLDMsITEsITAsZnVuY3Rpb24oYSxiKXtyZXR1cm4oYT1iP0hiKGIuYShhKSk6YS5h
KT9hLmxvY2FsTmFtZXx8YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOiIifSwwLDEsITApO1QoIm5h
bWUiLDMsITEsITAsZnVuY3Rpb24oYSxiKXtyZXR1cm4oYT1iP0hiKGIuYShhKSk6YS5hKT9hLm5v
ZGVOYW1lLnRvTG93ZXJDYXNlKCk6IiJ9LDAsMSwhMCk7VCgibmFtZXNwYWNlLXVyaSIsMywhMCwh
MSxmdW5jdGlvbigpe3JldHVybiIifSwwLDEsITApOworVCgibm9ybWFsaXplLXNwYWNlIiwzLCEx
LCEwLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGI/UihiLGEpOkcoYS5hKSkucmVwbGFjZSgvW1xzXHhh
MF0rL2csIiAiKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9LDAsMSk7VCgibm90IiwyLCExLCEx
LGZ1bmN0aW9uKGEsYil7cmV0dXJuIU1iKGIsYSl9LDEpO1QoIm51bWJlciIsMSwhMSwhMCxmdW5j
dGlvbihhLGIpe3JldHVybiBiP1EoYixhKTorRyhhLmEpfSwwLDEpO1QoInBvc2l0aW9uIiwxLCEw
LCExLGZ1bmN0aW9uKGEpe3JldHVybiBhLmJ9LDApO1QoInJvdW5kIiwxLCExLCExLGZ1bmN0aW9u
KGEsYil7cmV0dXJuIE1hdGgucm91bmQoUShiLGEpKX0sMSk7VCgic3RhcnRzLXdpdGgiLDIsITEs
ITEsZnVuY3Rpb24oYSxiLGMpe2I9UihiLGEpO2E9UihjLGEpO3JldHVybiFiLmxhc3RJbmRleE9m
KGEsMCl9LDIpO1QoInN0cmluZyIsMywhMSwhMCxmdW5jdGlvbihhLGIpe3JldHVybiBiP1IoYixh
KTpHKGEuYSl9LDAsMSk7CitUKCJzdHJpbmctbGVuZ3RoIiwxLCExLCEwLGZ1bmN0aW9uKGEsYil7
cmV0dXJuKGI/UihiLGEpOkcoYS5hKSkubGVuZ3RofSwwLDEpO1QoInN1YnN0cmluZyIsMywhMSwh
MSxmdW5jdGlvbihhLGIsYyxkKXtjPVEoYyxhKTtpZihpc05hTihjKXx8SW5maW5pdHk9PWN8fC1J
bmZpbml0eT09YylyZXR1cm4iIjtkPWQ/UShkLGEpOkluZmluaXR5O2lmKGlzTmFOKGQpfHwtSW5m
aW5pdHk9PT1kKXJldHVybiIiO2M9TWF0aC5yb3VuZChjKS0xO3ZhciBlPU1hdGgubWF4KGMsMCk7
YT1SKGIsYSk7cmV0dXJuIEluZmluaXR5PT1kP2Euc3Vic3RyaW5nKGUpOmEuc3Vic3RyaW5nKGUs
YytNYXRoLnJvdW5kKGQpKX0sMiwzKTtUKCJzdWJzdHJpbmctYWZ0ZXIiLDMsITEsITEsZnVuY3Rp
b24oYSxiLGMpe2I9UihiLGEpO2E9UihjLGEpO2M9Yi5pbmRleE9mKGEpO3JldHVybi0xPT1jPyIi
OmIuc3Vic3RyaW5nKGMrYS5sZW5ndGgpfSwyKTsKK1QoInN1YnN0cmluZy1iZWZvcmUiLDMsITEs
ITEsZnVuY3Rpb24oYSxiLGMpe2I9UihiLGEpO2E9UihjLGEpO2E9Yi5pbmRleE9mKGEpO3JldHVy
bi0xPT1hPyIiOmIuc3Vic3RyaW5nKDAsYSl9LDIpO1QoInN1bSIsMSwhMSwhMSxmdW5jdGlvbihh
LGIpe2E9TChiLmEoYSkpO2I9MDtmb3IodmFyIGM9TihhKTtjO2M9TihhKSliKz0rRyhjKTtyZXR1
cm4gYn0sMSwxLCEwKTtUKCJ0cmFuc2xhdGUiLDMsITEsITEsZnVuY3Rpb24oYSxiLGMsZCl7Yj1S
KGIsYSk7Yz1SKGMsYSk7dmFyIGU9UihkLGEpO2Q9e307Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtm
KyspYT1jLmNoYXJBdChmKSxhIGluIGR8fChkW2FdPWUuY2hhckF0KGYpKTtjPSIiO2ZvcihmPTA7
ZjxiLmxlbmd0aDtmKyspYT1iLmNoYXJBdChmKSxjKz1hIGluIGQ/ZFthXTphO3JldHVybiBjfSwz
KTtUKCJ0cnVlIiwyLCExLCExLGZ1bmN0aW9uKCl7cmV0dXJuITB9LDApO2Z1bmN0aW9uIFhiKGEp
e08uY2FsbCh0aGlzLDMpO3RoaXMuYz1hLnN1YnN0cmluZygxLGEubGVuZ3RoLTEpfXAoWGIsTyk7
WGIucHJvdG90eXBlLmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfTtYYi5wcm90b3R5cGUudG9T
dHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iTGl0ZXJhbDogIit0aGlzLmN9O2Z1bmN0aW9uIFliKGEp
e08uY2FsbCh0aGlzLDEpO3RoaXMuYz1hfXAoWWIsTyk7WWIucHJvdG90eXBlLmE9ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5jfTtZYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4i
TnVtYmVyOiAiK3RoaXMuY307ZnVuY3Rpb24gWmIoYSxiKXtPLmNhbGwodGhpcyxhLmkpO3RoaXMu
aD1hO3RoaXMuYz1iO3RoaXMuZz1hLmc7dGhpcy5iPWEuYjsxPT10aGlzLmMubGVuZ3RoJiYoYT10
aGlzLmNbMF0sYS53fHxhLmMhPSRifHwoYT1hLm8sIioiIT1hLmYoKSYmKHRoaXMuZj17bmFtZTph
LmYoKSx1Om51bGx9KSkpfXAoWmIsTyk7ZnVuY3Rpb24gYWMoKXtPLmNhbGwodGhpcyw0KX1wKGFj
LE8pO2FjLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBJO2E9YS5hOzk9PWEubm9k
ZVR5cGU/SihiLGEpOkooYixhLm93bmVyRG9jdW1lbnQpO3JldHVybiBifTthYy5wcm90b3R5cGUu
dG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iUm9vdCBIZWxwZXIgRXhwcmVzc2lvbiJ9O2Z1bmN0
aW9uIGJjKCl7Ty5jYWxsKHRoaXMsNCl9cChiYyxPKTtiYy5wcm90b3R5cGUuYT1mdW5jdGlvbihh
KXt2YXIgYj1uZXcgSTtKKGIsYS5hKTtyZXR1cm4gYn07YmMucHJvdG90eXBlLnRvU3RyaW5nPWZ1
bmN0aW9uKCl7cmV0dXJuIkNvbnRleHQgSGVscGVyIEV4cHJlc3Npb24ifTsKK2Z1bmN0aW9uIGNj
KGEpe3JldHVybiIvIj09YXx8Ii8vIj09YX1aYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXt2YXIg
Yj10aGlzLmguYShhKTtpZighKGIgaW5zdGFuY2VvZiBJKSl0aHJvdyBFcnJvcigiRmlsdGVyIGV4
cHJlc3Npb24gbXVzdCBldmFsdWF0ZSB0byBub2Rlc2V0LiIpO2E9dGhpcy5jO2Zvcih2YXIgYz0w
LGQ9YS5sZW5ndGg7YzxkJiZiLmw7YysrKXt2YXIgZT1hW2NdLGY9TChiLGUuYy5zKTtpZihlLmd8
fGUuYyE9ZGMpaWYoZS5nfHxlLmMhPWVjKXt2YXIgZz1OKGYpO2ZvcihiPWUuYShuZXcgcGEoZykp
O2c9TihmKTspZz1lLmEobmV3IHBhKGcpKSxiPUZiKGIsZyl9ZWxzZSBnPU4oZiksYj1lLmEobmV3
IHBhKGcpKTtlbHNle2ZvcihnPU4oZik7KGI9TihmKSkmJighZy5jb250YWluc3x8Zy5jb250YWlu
cyhiKSkmJmIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZykmODtnPWIpO2I9ZS5hKG5ldyBwYShn
KSl9fXJldHVybiBifTsKK1piLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBhPSJQ
YXRoIEV4cHJlc3Npb246Iit6KHRoaXMuaCk7aWYodGhpcy5jLmxlbmd0aCl7dmFyIGI9RWEodGhp
cy5jLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEreihiKX0sIlN0ZXBzOiIpO2ErPXooYil9cmV0dXJu
IGF9O2Z1bmN0aW9uIGZjKGEsYil7dGhpcy5hPWE7dGhpcy5zPSEhYn0KK2Z1bmN0aW9uIFRiKGEs
YixjKXtmb3IoYz1jfHwwO2M8YS5hLmxlbmd0aDtjKyspZm9yKHZhciBkPWEuYVtjXSxlPUwoYiks
Zj1iLmwsZyxoPTA7Zz1OKGUpO2grKyl7dmFyIHI9YS5zP2YtaDpoKzE7Zz1kLmEobmV3IHBhKGcs
cixmKSk7aWYoIm51bWJlciI9PXR5cGVvZiBnKXI9cj09ZztlbHNlIGlmKCJzdHJpbmciPT10eXBl
b2YgZ3x8ImJvb2xlYW4iPT10eXBlb2YgZylyPSEhZztlbHNlIGlmKGcgaW5zdGFuY2VvZiBJKXI9
MDxnLmw7ZWxzZSB0aHJvdyBFcnJvcigiUHJlZGljYXRlLmV2YWx1YXRlIHJldHVybmVkIGFuIHVu
ZXhwZWN0ZWQgdHlwZS4iKTtpZighcil7cj1lO2c9ci5mO3ZhciB3PXIuYTtpZighdyl0aHJvdyBF
cnJvcigiTmV4dCBtdXN0IGJlIGNhbGxlZCBhdCBsZWFzdCBvbmNlIGJlZm9yZSByZW1vdmUuIik7
dmFyIG49dy5iLHc9dy5hO24/bi5hPXc6Zy5hPXc7dz93LmI9bjpnLmI9bjtnLmwtLTtyLmE9bnVs
bH19cmV0dXJuIGJ9CitmYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gRWEo
dGhpcy5hLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEreihiKX0sIlByZWRpY2F0ZXM6Iil9O2Z1bmN0
aW9uIGdjKGEpe08uY2FsbCh0aGlzLDEpO3RoaXMuYz1hO3RoaXMuZz1hLmc7dGhpcy5iPWEuYn1w
KGdjLE8pO2djLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3JldHVybi1RKHRoaXMuYyxhKX07Z2Mu
cHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIlVuYXJ5IEV4cHJlc3Npb246IC0i
K3oodGhpcy5jKX07ZnVuY3Rpb24gaGMoYSl7Ty5jYWxsKHRoaXMsNCk7dGhpcy5jPWE7S2IodGhp
cyxGYSh0aGlzLmMsZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ30pKTtMYih0aGlzLEZhKHRoaXMuYyxm
dW5jdGlvbihhKXtyZXR1cm4gYS5ifSkpfXAoaGMsTyk7aGMucHJvdG90eXBlLmE9ZnVuY3Rpb24o
YSl7dmFyIGI9bmV3IEk7QSh0aGlzLmMsZnVuY3Rpb24oYyl7Yz1jLmEoYSk7aWYoIShjIGluc3Rh
bmNlb2YgSSkpdGhyb3cgRXJyb3IoIlBhdGggZXhwcmVzc2lvbiBtdXN0IGV2YWx1YXRlIHRvIE5v
ZGVTZXQuIik7Yj1GYihiLGMpfSk7cmV0dXJuIGJ9O2hjLnByb3RvdHlwZS50b1N0cmluZz1mdW5j
dGlvbigpe3JldHVybiBFYSh0aGlzLmMsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSt6KGIpfSwiVW5p
b24gRXhwcmVzc2lvbjoiKX07ZnVuY3Rpb24gVShhLGIsYyxkKXtPLmNhbGwodGhpcyw0KTt0aGlz
LmM9YTt0aGlzLm89Yjt0aGlzLmg9Y3x8bmV3IGZjKFtdKTt0aGlzLnc9ISFkO2I9dGhpcy5oO2I9
MDxiLmEubGVuZ3RoP2IuYVswXS5mOm51bGw7YS5KJiZiJiYoYT1iLm5hbWUsYT1EP2EudG9Mb3dl
ckNhc2UoKTphLHRoaXMuZj17bmFtZTphLHU6Yi51fSk7YTp7YT10aGlzLmg7Zm9yKGI9MDtiPGEu
YS5sZW5ndGg7YisrKWlmKGM9YS5hW2JdLGMuZ3x8MT09Yy5pfHwwPT1jLmkpe2E9ITA7YnJlYWsg
YX1hPSExfXRoaXMuZz1hfXAoVSxPKTsKK1UucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9
YS5hLGM9dGhpcy5mLGQ9bnVsbCxlPW51bGwsZj0wO2MmJihkPWMubmFtZSxlPWMudT9SKGMudSxh
KTpudWxsLGY9MSk7aWYodGhpcy53KWlmKHRoaXMuZ3x8dGhpcy5jIT1pYylpZihiPUwoKG5ldyBV
KGpjLG5ldyB5KCJub2RlIikpKS5hKGEpKSxjPU4oYikpZm9yKGE9dGhpcy5tKGMsZCxlLGYpO2M9
TihiKTspYT1GYihhLHRoaXMubShjLGQsZSxmKSk7ZWxzZSBhPW5ldyBJO2Vsc2UgYT14Yih0aGlz
Lm8sYixkLGUpLGE9VGIodGhpcy5oLGEsZik7ZWxzZSBhPXRoaXMubShhLmEsZCxlLGYpO3JldHVy
biBhfTtVLnByb3RvdHlwZS5tPWZ1bmN0aW9uKGEsYixjLGQpe2E9dGhpcy5jLnYodGhpcy5vLGEs
YixjKTtyZXR1cm4gYT1UYih0aGlzLmgsYSxkKX07CitVLnByb3RvdHlwZS50b1N0cmluZz1mdW5j
dGlvbigpe3ZhciBhPSJTdGVwOiIreigiT3BlcmF0b3I6ICIrKHRoaXMudz8iLy8iOiIvIikpO3Ro
aXMuYy5qJiYoYSs9eigiQXhpczogIit0aGlzLmMpKTthKz16KHRoaXMubyk7aWYodGhpcy5oLmEu
bGVuZ3RoKXt2YXIgYj1FYSh0aGlzLmguYSxmdW5jdGlvbihhLGIpe3JldHVybiBhK3ooYil9LCJQ
cmVkaWNhdGVzOiIpO2ErPXooYil9cmV0dXJuIGF9O2Z1bmN0aW9uIGtjKGEsYixjLGQpe3RoaXMu
aj1hO3RoaXMudj1iO3RoaXMucz1jO3RoaXMuSj1kfWtjLnByb3RvdHlwZS50b1N0cmluZz1mdW5j
dGlvbigpe3JldHVybiB0aGlzLmp9O3ZhciBsYz17fTtmdW5jdGlvbiBWKGEsYixjLGQpe2lmKGxj
Lmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBeGlzIGFscmVhZHkgY3JlYXRlZDogIith
KTtiPW5ldyBrYyhhLGIsYywhIWQpO3JldHVybiBsY1thXT1ifQorVigiYW5jZXN0b3IiLGZ1bmN0
aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBJO2I9Yi5wYXJlbnROb2RlOylhLmEoYikmJkdiKGMsYik7
cmV0dXJuIGN9LCEwKTtWKCJhbmNlc3Rvci1vci1zZWxmIixmdW5jdGlvbihhLGIpe3ZhciBjPW5l
dyBJO2RvIGEuYShiKSYmR2IoYyxiKTt3aGlsZShiPWIucGFyZW50Tm9kZSk7cmV0dXJuIGN9LCEw
KTsKK3ZhciAkYj1WKCJhdHRyaWJ1dGUiLGZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IEksZD1hLmYo
KTtpZigic3R5bGUiPT1kJiZEJiZiLnN0eWxlKXJldHVybiBKKGMsbmV3IG1iKGIuc3R5bGUsYiwi
c3R5bGUiLGIuc3R5bGUuY3NzVGV4dCkpLGM7dmFyIGU9Yi5hdHRyaWJ1dGVzO2lmKGUpaWYoYSBp
bnN0YW5jZW9mIHkmJm51bGw9PT1hLmJ8fCIqIj09ZClmb3IoZD0wO2E9ZVtkXTtkKyspRD9hLm5v
ZGVWYWx1ZSYmSihjLG5iKGIsYSkpOkooYyxhKTtlbHNlKGE9ZS5nZXROYW1lZEl0ZW0oZCkpJiYo
RD9hLm5vZGVWYWx1ZSYmSihjLG5iKGIsYSkpOkooYyxhKSk7cmV0dXJuIGN9LCExKSxpYz1WKCJj
aGlsZCIsZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4oRD9DYjpEYikuY2FsbChudWxsLGEsYixt
KGMpP2M6bnVsbCxtKGQpP2Q6bnVsbCxlfHxuZXcgSSl9LCExLCEwKTtWKCJkZXNjZW5kYW50Iix4
YiwhMSwhMCk7Cit2YXIgamM9VigiZGVzY2VuZGFudC1vci1zZWxmIixmdW5jdGlvbihhLGIsYyxk
KXt2YXIgZT1uZXcgSTtIKGIsYyxkKSYmYS5hKGIpJiZKKGUsYik7cmV0dXJuIHhiKGEsYixjLGQs
ZSl9LCExLCEwKSxkYz1WKCJmb2xsb3dpbmciLGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJ
O2RvIGZvcih2YXIgZj1iO2Y9Zi5uZXh0U2libGluZzspSChmLGMsZCkmJmEuYShmKSYmSihlLGYp
LGU9eGIoYSxmLGMsZCxlKTt3aGlsZShiPWIucGFyZW50Tm9kZSk7cmV0dXJuIGV9LCExLCEwKTtW
KCJmb2xsb3dpbmctc2libGluZyIsZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IEk7Yj1iLm5l
eHRTaWJsaW5nOylhLmEoYikmJkooYyxiKTtyZXR1cm4gY30sITEpO1YoIm5hbWVzcGFjZSIsZnVu
Y3Rpb24oKXtyZXR1cm4gbmV3IEl9LCExKTsKK3ZhciBtYz1WKCJwYXJlbnQiLGZ1bmN0aW9uKGEs
Yil7dmFyIGM9bmV3IEk7aWYoOT09Yi5ub2RlVHlwZSlyZXR1cm4gYztpZigyPT1iLm5vZGVUeXBl
KXJldHVybiBKKGMsYi5vd25lckVsZW1lbnQpLGM7Yj1iLnBhcmVudE5vZGU7YS5hKGIpJiZKKGMs
Yik7cmV0dXJuIGN9LCExKSxlYz1WKCJwcmVjZWRpbmciLGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBl
PW5ldyBJLGY9W107ZG8gZi51bnNoaWZ0KGIpO3doaWxlKGI9Yi5wYXJlbnROb2RlKTtmb3IodmFy
IGc9MSxoPWYubGVuZ3RoO2c8aDtnKyspe3ZhciByPVtdO2ZvcihiPWZbZ107Yj1iLnByZXZpb3Vz
U2libGluZzspci51bnNoaWZ0KGIpO2Zvcih2YXIgdz0wLG49ci5sZW5ndGg7dzxuO3crKyliPXJb
d10sSChiLGMsZCkmJmEuYShiKSYmSihlLGIpLGU9eGIoYSxiLGMsZCxlKX1yZXR1cm4gZX0sITAs
ITApOworVigicHJlY2VkaW5nLXNpYmxpbmciLGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBJ
O2I9Yi5wcmV2aW91c1NpYmxpbmc7KWEuYShiKSYmR2IoYyxiKTtyZXR1cm4gY30sITApO3ZhciBu
Yz1WKCJzZWxmIixmdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBJO2EuYShiKSYmSihjLGIpO3JldHVy
biBjfSwhMSk7ZnVuY3Rpb24gb2MoYSxiKXt0aGlzLmE9YTt0aGlzLmI9Yn1mdW5jdGlvbiBwYyhh
KXtmb3IodmFyIGIsYz1bXTs7KXtXKGEsIk1pc3NpbmcgcmlnaHQgaGFuZCBzaWRlIG9mIGJpbmFy
eSBleHByZXNzaW9uLiIpO2I9cWMoYSk7dmFyIGQ9dShhLmEpO2lmKCFkKWJyZWFrO3ZhciBlPShk
PVJiW2RdfHxudWxsKSYmZC5EO2lmKCFlKXthLmEuYS0tO2JyZWFrfWZvcig7Yy5sZW5ndGgmJmU8
PWNbYy5sZW5ndGgtMV0uRDspYj1uZXcgTmIoYy5wb3AoKSxjLnBvcCgpLGIpO2MucHVzaChiLGQp
fWZvcig7Yy5sZW5ndGg7KWI9bmV3IE5iKGMucG9wKCksYy5wb3AoKSxiKTtyZXR1cm4gYn1mdW5j
dGlvbiBXKGEsYil7aWYodWEoYS5hKSl0aHJvdyBFcnJvcihiKTt9ZnVuY3Rpb24gcmMoYSxiKXth
PXUoYS5hKTtpZihhIT1iKXRocm93IEVycm9yKCJCYWQgdG9rZW4sIGV4cGVjdGVkOiAiK2IrIiBn
b3Q6ICIrYSk7fQorZnVuY3Rpb24gc2MoYSl7YT11KGEuYSk7aWYoIikiIT1hKXRocm93IEVycm9y
KCJCYWQgdG9rZW46ICIrYSk7fWZ1bmN0aW9uIHRjKGEpe2E9dShhLmEpO2lmKDI+YS5sZW5ndGgp
dGhyb3cgRXJyb3IoIlVuY2xvc2VkIGxpdGVyYWwgc3RyaW5nIik7cmV0dXJuIG5ldyBYYihhKX0K
K2Z1bmN0aW9uIHVjKGEpe3ZhciBiPVtdO2lmKGNjKHQoYS5hKSkpe3ZhciBjPXUoYS5hKTt2YXIg
ZD10KGEuYSk7aWYoIi8iPT1jJiYodWEoYS5hKXx8Ii4iIT1kJiYiLi4iIT1kJiYiQCIhPWQmJiIq
IiE9ZCYmIS8oPyFbMC05XSlbXHddLy50ZXN0KGQpKSlyZXR1cm4gbmV3IGFjO2Q9bmV3IGFjO1co
YSwiTWlzc2luZyBuZXh0IGxvY2F0aW9uIHN0ZXAuIik7Yz12YyhhLGMpO2IucHVzaChjKX1lbHNl
e2E6e2M9dChhLmEpO2Q9Yy5jaGFyQXQoMCk7c3dpdGNoKGQpe2Nhc2UgIiQiOnRocm93IEVycm9y
KCJWYXJpYWJsZSByZWZlcmVuY2Ugbm90IGFsbG93ZWQgaW4gSFRNTCBYUGF0aCIpO2Nhc2UgIigi
OnUoYS5hKTtjPXBjKGEpO1coYSwndW5jbG9zZWQgIigiJyk7cmMoYSwiKSIpO2JyZWFrO2Nhc2Ug
JyInOmNhc2UgIiciOmM9dGMoYSk7YnJlYWs7ZGVmYXVsdDppZihpc05hTigrYykpaWYoIXhhKGMp
JiYvKD8hWzAtOV0pW1x3XS8udGVzdChkKSYmIigiPT10KGEuYSwxKSl7Yz11KGEuYSk7CitjPVdi
W2NdfHxudWxsO3UoYS5hKTtmb3IoZD1bXTsiKSIhPXQoYS5hKTspe1coYSwiTWlzc2luZyBmdW5j
dGlvbiBhcmd1bWVudCBsaXN0LiIpO2QucHVzaChwYyhhKSk7aWYoIiwiIT10KGEuYSkpYnJlYWs7
dShhLmEpfVcoYSwiVW5jbG9zZWQgZnVuY3Rpb24gYXJndW1lbnQgbGlzdC4iKTtzYyhhKTtjPW5l
dyBVYihjLGQpfWVsc2V7Yz1udWxsO2JyZWFrIGF9ZWxzZSBjPW5ldyBZYigrdShhLmEpKX0iWyI9
PXQoYS5hKSYmKGQ9bmV3IGZjKHdjKGEpKSxjPW5ldyBTYihjLGQpKX1pZihjKWlmKGNjKHQoYS5h
KSkpZD1jO2Vsc2UgcmV0dXJuIGM7ZWxzZSBjPXZjKGEsIi8iKSxkPW5ldyBiYyxiLnB1c2goYyl9
Zm9yKDtjYyh0KGEuYSkpOyljPXUoYS5hKSxXKGEsIk1pc3NpbmcgbmV4dCBsb2NhdGlvbiBzdGVw
LiIpLGM9dmMoYSxjKSxiLnB1c2goYyk7cmV0dXJuIG5ldyBaYihkLGIpfQorZnVuY3Rpb24gdmMo
YSxiKXtpZigiLyIhPWImJiIvLyIhPWIpdGhyb3cgRXJyb3IoJ1N0ZXAgb3Agc2hvdWxkIGJlICIv
IiBvciAiLy8iJyk7aWYoIi4iPT10KGEuYSkpe3ZhciBjPW5ldyBVKG5jLG5ldyB5KCJub2RlIikp
O3UoYS5hKTtyZXR1cm4gY31pZigiLi4iPT10KGEuYSkpcmV0dXJuIGM9bmV3IFUobWMsbmV3IHko
Im5vZGUiKSksdShhLmEpLGM7aWYoIkAiPT10KGEuYSkpe3ZhciBkPSRiO3UoYS5hKTtXKGEsIk1p
c3NpbmcgYXR0cmlidXRlIG5hbWUiKX1lbHNlIGlmKCI6OiI9PXQoYS5hLDEpKXtpZighLyg/IVsw
LTldKVtcd10vLnRlc3QodChhLmEpLmNoYXJBdCgwKSkpdGhyb3cgRXJyb3IoIkJhZCB0b2tlbjog
Iit1KGEuYSkpO3ZhciBlPXUoYS5hKTtkPWxjW2VdfHxudWxsO2lmKCFkKXRocm93IEVycm9yKCJO
byBheGlzIHdpdGggbmFtZTogIitlKTt1KGEuYSk7VyhhLCJNaXNzaW5nIG5vZGUgbmFtZSIpfWVs
c2UgZD1pYztlPXQoYS5hKTtpZigvKD8hWzAtOV0pW1x3XCpdLy50ZXN0KGUuY2hhckF0KDApKSlp
ZigiKCI9PQordChhLmEsMSkpe2lmKCF4YShlKSl0aHJvdyBFcnJvcigiSW52YWxpZCBub2RlIHR5
cGU6ICIrZSk7ZT11KGEuYSk7aWYoIXhhKGUpKXRocm93IEVycm9yKCJJbnZhbGlkIHR5cGUgbmFt
ZTogIitlKTtyYyhhLCIoIik7VyhhLCJCYWQgbm9kZXR5cGUiKTt2YXIgZj10KGEuYSkuY2hhckF0
KDApLGc9bnVsbDtpZignIic9PWZ8fCInIj09ZilnPXRjKGEpO1coYSwiQmFkIG5vZGV0eXBlIik7
c2MoYSk7ZT1uZXcgeShlLGcpfWVsc2UgaWYoZT11KGEuYSksZj1lLmluZGV4T2YoIjoiKSwtMT09
ZillPW5ldyB5YShlKTtlbHNle3ZhciBnPWUuc3Vic3RyaW5nKDAsZik7aWYoIioiPT1nKXZhciBo
PSIqIjtlbHNlIGlmKGg9YS5iKGcpLCFoKXRocm93IEVycm9yKCJOYW1lc3BhY2UgcHJlZml4IG5v
dCBkZWNsYXJlZDogIitnKTtlPWUuc3Vic3RyKGYrMSk7ZT1uZXcgeWEoZSxoKX1lbHNlIHRocm93
IEVycm9yKCJCYWQgdG9rZW46ICIrdShhLmEpKTthPW5ldyBmYyh3YyhhKSxkLnMpO3JldHVybiBj
fHwKK25ldyBVKGQsZSxhLCIvLyI9PWIpfWZ1bmN0aW9uIHdjKGEpe2Zvcih2YXIgYj1bXTsiWyI9
PXQoYS5hKTspe3UoYS5hKTtXKGEsIk1pc3NpbmcgcHJlZGljYXRlIGV4cHJlc3Npb24uIik7dmFy
IGM9cGMoYSk7Yi5wdXNoKGMpO1coYSwiVW5jbG9zZWQgcHJlZGljYXRlIGV4cHJlc3Npb24uIik7
cmMoYSwiXSIpfXJldHVybiBifWZ1bmN0aW9uIHFjKGEpe2lmKCItIj09dChhLmEpKXJldHVybiB1
KGEuYSksbmV3IGdjKHFjKGEpKTt2YXIgYj11YyhhKTtpZigifCIhPXQoYS5hKSlhPWI7ZWxzZXtm
b3IoYj1bYl07InwiPT11KGEuYSk7KVcoYSwiTWlzc2luZyBuZXh0IHVuaW9uIGxvY2F0aW9uIHBh
dGguIiksYi5wdXNoKHVjKGEpKTthLmEuYS0tO2E9bmV3IGhjKGIpfXJldHVybiBhfTtmdW5jdGlv
biB4YyhhLGIpe2lmKCFhLmxlbmd0aCl0aHJvdyBFcnJvcigiRW1wdHkgWFBhdGggZXhwcmVzc2lv
bi4iKTthPXJhKGEpO2lmKHVhKGEpKXRocm93IEVycm9yKCJJbnZhbGlkIFhQYXRoIGV4cHJlc3Np
b24uIik7Yj8iZnVuY3Rpb24iPT1iYShiKXx8KGI9ZWEoYi5sb29rdXBOYW1lc3BhY2VVUkksYikp
OmI9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dmFyIGM9cGMobmV3IG9jKGEsYikpO2lmKCF1YShh
KSl0aHJvdyBFcnJvcigiQmFkIHRva2VuOiAiK3UoYSkpO3RoaXMuZXZhbHVhdGU9ZnVuY3Rpb24o
YSxiKXthPWMuYShuZXcgcGEoYSkpO3JldHVybiBuZXcgWChhLGIpfX0KK2Z1bmN0aW9uIFgoYSxi
KXtpZighYilpZihhIGluc3RhbmNlb2YgSSliPTQ7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGEp
Yj0yO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBhKWI9MTtlbHNlIGlmKCJib29sZWFuIj09dHlw
ZW9mIGEpYj0zO2Vsc2UgdGhyb3cgRXJyb3IoIlVuZXhwZWN0ZWQgZXZhbHVhdGlvbiByZXN1bHQu
Iik7aWYoMiE9YiYmMSE9YiYmMyE9YiYmIShhIGluc3RhbmNlb2YgSSkpdGhyb3cgRXJyb3IoInZh
bHVlIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gdGhlIHNwZWNpZmllZCB0eXBlIik7dGhpcy5y
ZXN1bHRUeXBlPWI7c3dpdGNoKGIpe2Nhc2UgMjp0aGlzLnN0cmluZ1ZhbHVlPWEgaW5zdGFuY2Vv
ZiBJP0liKGEpOiIiK2E7YnJlYWs7Y2FzZSAxOnRoaXMubnVtYmVyVmFsdWU9YSBpbnN0YW5jZW9m
IEk/K0liKGEpOithO2JyZWFrO2Nhc2UgMzp0aGlzLmJvb2xlYW5WYWx1ZT1hIGluc3RhbmNlb2Yg
ST8wPGEubDohIWE7YnJlYWs7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OnZhciBjPQorTChh
KTt2YXIgZD1bXTtmb3IodmFyIGU9TihjKTtlO2U9TihjKSlkLnB1c2goZSBpbnN0YW5jZW9mIG1i
P2UuYTplKTt0aGlzLnNuYXBzaG90TGVuZ3RoPWEubDt0aGlzLmludmFsaWRJdGVyYXRvclN0YXRl
PSExO2JyZWFrO2Nhc2UgODpjYXNlIDk6YT1IYihhKTt0aGlzLnNpbmdsZU5vZGVWYWx1ZT1hIGlu
c3RhbmNlb2YgbWI/YS5hOmE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBYUGF0
aFJlc3VsdCB0eXBlLiIpO312YXIgZj0wO3RoaXMuaXRlcmF0ZU5leHQ9ZnVuY3Rpb24oKXtpZig0
IT1iJiY1IT1iKXRocm93IEVycm9yKCJpdGVyYXRlTmV4dCBjYWxsZWQgd2l0aCB3cm9uZyByZXN1
bHQgdHlwZSIpO3JldHVybiBmPj1kLmxlbmd0aD9udWxsOmRbZisrXX07dGhpcy5zbmFwc2hvdEl0
ZW09ZnVuY3Rpb24oYSl7aWYoNiE9YiYmNyE9Yil0aHJvdyBFcnJvcigic25hcHNob3RJdGVtIGNh
bGxlZCB3aXRoIHdyb25nIHJlc3VsdCB0eXBlIik7cmV0dXJuIGE+PWQubGVuZ3RofHwKKzA+YT9u
dWxsOmRbYV19fVguQU5ZX1RZUEU9MDtYLk5VTUJFUl9UWVBFPTE7WC5TVFJJTkdfVFlQRT0yO1gu
Qk9PTEVBTl9UWVBFPTM7WC5VTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFPTQ7WC5PUkRFUkVE
X05PREVfSVRFUkFUT1JfVFlQRT01O1guVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRT02O1gu
T1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU9NztYLkFOWV9VTk9SREVSRURfTk9ERV9UWVBFPTg7
WC5GSVJTVF9PUkRFUkVEX05PREVfVFlQRT05O2Z1bmN0aW9uIHljKGEpe3RoaXMubG9va3VwTmFt
ZXNwYWNlVVJJPXphKGEpfQorZnVuY3Rpb24gemMoYSxiKXthPWF8fGs7dmFyIGM9YS5Eb2N1bWVu
dCYmYS5Eb2N1bWVudC5wcm90b3R5cGV8fGEuZG9jdW1lbnQ7aWYoIWMuZXZhbHVhdGV8fGIpYS5Y
UGF0aFJlc3VsdD1YLGMuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiLGMsZyl7cmV0dXJuKG5ldyB4Yyhh
LGMpKS5ldmFsdWF0ZShiLGcpfSxjLmNyZWF0ZUV4cHJlc3Npb249ZnVuY3Rpb24oYSxiKXtyZXR1
cm4gbmV3IHhjKGEsYil9LGMuY3JlYXRlTlNSZXNvbHZlcj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3
IHljKGEpfX1hYSgid2d4cGF0aC5pbnN0YWxsIix6Yyk7dmFyIEFjPWZ1bmN0aW9uKCl7dmFyIGE9
e006Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn07cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVy
biBhW2JdfHxudWxsfX0oKTsKK2Z1bmN0aW9uIEJjKGEsYil7dmFyIGM9RihhKTtpZighYy5kb2N1
bWVudEVsZW1lbnQpcmV0dXJuIG51bGw7KEN8fGhiKSYmemMoYz9jLnBhcmVudFdpbmRvd3x8Yy5k
ZWZhdWx0Vmlldzp3aW5kb3cpO3RyeXt2YXIgZD1jLmNyZWF0ZU5TUmVzb2x2ZXI/Yy5jcmVhdGVO
U1Jlc29sdmVyKGMuZG9jdW1lbnRFbGVtZW50KTpBYztpZihDJiYhYWIoNykpcmV0dXJuIGMuZXZh
bHVhdGUuY2FsbChjLGIsYSxkLDksbnVsbCk7aWYoIUN8fDk8PU51bWJlcihiYikpe2Zvcih2YXIg
ZT17fSxmPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxnPTA7ZzxmLmxlbmd0aDsrK2cpe3Zh
ciBoPWZbZ10scj1oLm5hbWVzcGFjZVVSSTtpZihyJiYhZVtyXSl7dmFyIHc9aC5sb29rdXBQcmVm
aXgocik7aWYoIXcpdmFyIG49ci5tYXRjaCgiLiovKFxcdyspLz8kIiksdz1uP25bMV06InhodG1s
IjtlW3JdPXd9fXZhciBCPXt9LE07Zm9yKE0gaW4gZSlCW2VbTV1dPU07ZD1mdW5jdGlvbihhKXty
ZXR1cm4gQlthXXx8CitudWxsfX10cnl7cmV0dXJuIGMuZXZhbHVhdGUoYixhLGQsOSxudWxsKX1j
YXRjaChQKXtpZigiVHlwZUVycm9yIj09PVAubmFtZSlyZXR1cm4gZD1jLmNyZWF0ZU5TUmVzb2x2
ZXI/Yy5jcmVhdGVOU1Jlc29sdmVyKGMuZG9jdW1lbnRFbGVtZW50KTpBYyxjLmV2YWx1YXRlKGIs
YSxkLDksbnVsbCk7dGhyb3cgUDt9fWNhdGNoKFApe2lmKCFVYXx8Ik5TX0VSUk9SX0lMTEVHQUxf
VkFMVUUiIT1QLm5hbWUpdGhyb3cgbmV3IGdhKDMyLCJVbmFibGUgdG8gbG9jYXRlIGFuIGVsZW1l
bnQgd2l0aCB0aGUgeHBhdGggZXhwcmVzc2lvbiAiK2IrIiBiZWNhdXNlIG9mIHRoZSBmb2xsb3dp
bmcgZXJyb3I6XG4iK1ApO319CitmdW5jdGlvbiBDYyhhLGIpe3ZhciBjPWZ1bmN0aW9uKCl7dmFy
IGM9QmMoYixhKTtyZXR1cm4gYz9jLnNpbmdsZU5vZGVWYWx1ZXx8bnVsbDpiLnNlbGVjdFNpbmds
ZU5vZGU/KGM9RihiKSxjLnNldFByb3BlcnR5JiZjLnNldFByb3BlcnR5KCJTZWxlY3Rpb25MYW5n
dWFnZSIsIlhQYXRoIiksYi5zZWxlY3RTaW5nbGVOb2RlKGEpKTpudWxsfSgpO2lmKG51bGwhPT1j
JiYoIWN8fDEhPWMubm9kZVR5cGUpKXRocm93IG5ldyBnYSgzMiwnVGhlIHJlc3VsdCBvZiB0aGUg
eHBhdGggZXhwcmVzc2lvbiAiJythKyciIGlzOiAnK2MrIi4gSXQgc2hvdWxkIGJlIGFuIGVsZW1l
bnQuIik7cmV0dXJuIGN9O3ZhciBEYz0iZnVuY3Rpb24iPT09dHlwZW9mIFNoYWRvd1Jvb3Q7ZnVu
Y3Rpb24gRWMoYSl7Zm9yKGE9YS5wYXJlbnROb2RlO2EmJjEhPWEubm9kZVR5cGUmJjkhPWEubm9k
ZVR5cGUmJjExIT1hLm5vZGVUeXBlOylhPWEucGFyZW50Tm9kZTtyZXR1cm4gSyhhKT9hOm51bGx9
CitmdW5jdGlvbiBZKGEsYil7Yj1vYShiKTtpZigiZmxvYXQiPT1ifHwiY3NzRmxvYXQiPT1ifHwi
c3R5bGVGbG9hdCI9PWIpYj1xYj8ic3R5bGVGbG9hdCI6ImNzc0Zsb2F0IjthOnt2YXIgYz1iO3Zh
ciBkPUYoYSk7aWYoZC5kZWZhdWx0VmlldyYmZC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxl
JiYoZD1kLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSkpe2M9ZFtjXXx8ZC5n
ZXRQcm9wZXJ0eVZhbHVlKGMpfHwiIjticmVhayBhfWM9IiJ9YT1jfHxGYyhhLGIpO2lmKG51bGw9
PT1hKWE9bnVsbDtlbHNlIGlmKDA8PUNhKExhLGIpKXtiOnt2YXIgZT1hLm1hdGNoKE9hKTtpZihl
JiYoYj1OdW1iZXIoZVsxXSksYz1OdW1iZXIoZVsyXSksZD1OdW1iZXIoZVszXSksZT1OdW1iZXIo
ZVs0XSksMDw9YiYmMjU1Pj1iJiYwPD1jJiYyNTU+PWMmJjA8PWQmJjI1NT49ZCYmMDw9ZSYmMT49
ZSkpe2I9W2IsYyxkLGVdO2JyZWFrIGJ9Yj1udWxsfWlmKCFiKWI6e2lmKGQ9YS5tYXRjaChQYSkp
aWYoYj0KK051bWJlcihkWzFdKSxjPU51bWJlcihkWzJdKSxkPU51bWJlcihkWzNdKSwwPD1iJiYy
NTU+PWImJjA8PWMmJjI1NT49YyYmMDw9ZCYmMjU1Pj1kKXtiPVtiLGMsZCwxXTticmVhayBifWI9
bnVsbH1pZighYiliOntiPWEudG9Mb3dlckNhc2UoKTtjPWlhW2IudG9Mb3dlckNhc2UoKV07aWYo
IWMmJihjPSIjIj09Yi5jaGFyQXQoMCk/YjoiIyIrYiw0PT1jLmxlbmd0aCYmKGM9Yy5yZXBsYWNl
KE1hLCIjJDEkMSQyJDIkMyQzIikpLCFOYS50ZXN0KGMpKSl7Yj1udWxsO2JyZWFrIGJ9Yj1bcGFy
c2VJbnQoYy5zdWJzdHIoMSwyKSwxNikscGFyc2VJbnQoYy5zdWJzdHIoMywyKSwxNikscGFyc2VJ
bnQoYy5zdWJzdHIoNSwyKSwxNiksMV19YT1iPyJyZ2JhKCIrYi5qb2luKCIsICIpKyIpIjphfXJl
dHVybiBhfQorZnVuY3Rpb24gRmMoYSxiKXt2YXIgYz1hLmN1cnJlbnRTdHlsZXx8YS5zdHlsZSxk
PWNbYl07IWwoZCkmJiJmdW5jdGlvbiI9PWJhKGMuZ2V0UHJvcGVydHlWYWx1ZSkmJihkPWMuZ2V0
UHJvcGVydHlWYWx1ZShiKSk7cmV0dXJuImluaGVyaXQiIT1kP2woZCk/ZDpudWxsOihhPUVjKGEp
KT9GYyhhLGIpOm51bGx9CitmdW5jdGlvbiBHYyhhLGIsYyl7ZnVuY3Rpb24gZChhKXt2YXIgYj1I
YyhhKTtyZXR1cm4gMDxiLmhlaWdodCYmMDxiLndpZHRoPyEwOksoYSwiUEFUSCIpJiYoMDxiLmhl
aWdodHx8MDxiLndpZHRoKT8oYT1ZKGEsInN0cm9rZS13aWR0aCIpLCEhYSYmMDxwYXJzZUludChh
LDEwKSk6ImhpZGRlbiIhPVkoYSwib3ZlcmZsb3ciKSYmRmEoYS5jaGlsZE5vZGVzLGZ1bmN0aW9u
KGEpe3JldHVybiAzPT1hLm5vZGVUeXBlfHxLKGEpJiZkKGEpfSl9ZnVuY3Rpb24gZShhKXtyZXR1
cm4gSWMoYSk9PVomJkdhKGEuY2hpbGROb2RlcyxmdW5jdGlvbihhKXtyZXR1cm4hSyhhKXx8ZShh
KXx8IWQoYSl9KX1pZighSyhhKSl0aHJvdyBFcnJvcigiQXJndW1lbnQgdG8gaXNTaG93biBtdXN0
IGJlIG9mIHR5cGUgRWxlbWVudCIpO2lmKEsoYSwiQk9EWSIpKXJldHVybiEwO2lmKEsoYSwiT1BU
SU9OIil8fEsoYSwiT1BUR1JPVVAiKSlyZXR1cm4gYT12YihhLGZ1bmN0aW9uKGEpe3JldHVybiBL
KGEsIlNFTEVDVCIpfSksCishIWEmJkdjKGEsITAsYyk7dmFyIGY9SmMoYSk7aWYoZilyZXR1cm4h
IWYuQiYmMDxmLnJlY3Qud2lkdGgmJjA8Zi5yZWN0LmhlaWdodCYmR2MoZi5CLGIsYyk7aWYoSyhh
LCJJTlBVVCIpJiYiaGlkZGVuIj09YS50eXBlLnRvTG93ZXJDYXNlKCl8fEsoYSwiTk9TQ1JJUFQi
KSlyZXR1cm4hMTtmPVkoYSwidmlzaWJpbGl0eSIpO3JldHVybiJjb2xsYXBzZSIhPWYmJiJoaWRk
ZW4iIT1mJiZjKGEpJiYoYnx8S2MoYSkpJiZkKGEpPyFlKGEpOiExfXZhciBaPSJoaWRkZW4iOwor
ZnVuY3Rpb24gSWMoYSl7ZnVuY3Rpb24gYihhKXtmdW5jdGlvbiBiKGEpe3JldHVybiBhPT1nPyEw
OiFZKGEsImRpc3BsYXkiKS5sYXN0SW5kZXhPZigiaW5saW5lIiwwKXx8ImFic29sdXRlIj09YyYm
InN0YXRpYyI9PVkoYSwicG9zaXRpb24iKT8hMTohMH12YXIgYz1ZKGEsInBvc2l0aW9uIik7aWYo
ImZpeGVkIj09YylyZXR1cm4gdz0hMCxhPT1nP251bGw6Zztmb3IoYT1FYyhhKTthJiYhYihhKTsp
YT1FYyhhKTtyZXR1cm4gYX1mdW5jdGlvbiBjKGEpe3ZhciBiPWE7aWYoInZpc2libGUiPT1yKWlm
KGE9PWcmJmgpYj1oO2Vsc2UgaWYoYT09aClyZXR1cm57eDoidmlzaWJsZSIseToidmlzaWJsZSJ9
O2I9e3g6WShiLCJvdmVyZmxvdy14IikseTpZKGIsIm92ZXJmbG93LXkiKX07YT09ZyYmKGIueD0i
dmlzaWJsZSI9PWIueD8iYXV0byI6Yi54LGIueT0idmlzaWJsZSI9PWIueT8iYXV0byI6Yi55KTty
ZXR1cm4gYn1mdW5jdGlvbiBkKGEpe2lmKGE9PWcpe3ZhciBiPShuZXcgd2IoZikpLmE7CithPWIu
c2Nyb2xsaW5nRWxlbWVudD9iLnNjcm9sbGluZ0VsZW1lbnQ6VmF8fCJDU1MxQ29tcGF0IiE9Yi5j
b21wYXRNb2RlP2IuYm9keXx8Yi5kb2N1bWVudEVsZW1lbnQ6Yi5kb2N1bWVudEVsZW1lbnQ7Yj1i
LnBhcmVudFdpbmRvd3x8Yi5kZWZhdWx0VmlldzthPUMmJmFiKCIxMCIpJiZiLnBhZ2VZT2Zmc2V0
IT1hLnNjcm9sbFRvcD9uZXcgUmEoYS5zY3JvbGxMZWZ0LGEuc2Nyb2xsVG9wKTpuZXcgUmEoYi5w
YWdlWE9mZnNldHx8YS5zY3JvbGxMZWZ0LGIucGFnZVlPZmZzZXR8fGEuc2Nyb2xsVG9wKX1lbHNl
IGE9bmV3IFJhKGEuc2Nyb2xsTGVmdCxhLnNjcm9sbFRvcCk7cmV0dXJuIGF9dmFyIGU9TGMoYSk7
dmFyIGY9RihhKSxnPWYuZG9jdW1lbnRFbGVtZW50LGg9Zi5ib2R5LHI9WShnLCJvdmVyZmxvdyIp
LHc7Zm9yKGE9YihhKTthO2E9YihhKSl7dmFyIG49YyhhKTtpZigidmlzaWJsZSIhPW4ueHx8InZp
c2libGUiIT1uLnkpe3ZhciBCPUhjKGEpO2lmKCFCLndpZHRofHwhQi5oZWlnaHQpcmV0dXJuIFo7
Cit2YXIgTT1lLmE8Qi5hLFA9ZS5iPEIuYjtpZihNJiYiaGlkZGVuIj09bi54fHxQJiYiaGlkZGVu
Ij09bi55KXJldHVybiBaO2lmKE0mJiJ2aXNpYmxlIiE9bi54fHxQJiYidmlzaWJsZSIhPW4ueSl7
TT1kKGEpO1A9ZS5iPEIuYi1NLnk7aWYoZS5hPEIuYS1NLngmJiJ2aXNpYmxlIiE9bi54fHxQJiYi
dmlzaWJsZSIhPW4ueClyZXR1cm4gWjtlPUljKGEpO3JldHVybiBlPT1aP1o6InNjcm9sbCJ9TT1l
LmY+PUIuYStCLndpZHRoO0I9ZS5jPj1CLmIrQi5oZWlnaHQ7aWYoTSYmImhpZGRlbiI9PW4ueHx8
QiYmImhpZGRlbiI9PW4ueSlyZXR1cm4gWjtpZihNJiYidmlzaWJsZSIhPW4ueHx8QiYmInZpc2li
bGUiIT1uLnkpe2lmKHcmJihuPWQoYSksZS5mPj1nLnNjcm9sbFdpZHRoLW4ueHx8ZS5hPj1nLnNj
cm9sbEhlaWdodC1uLnkpKXJldHVybiBaO2U9SWMoYSk7cmV0dXJuIGU9PVo/Wjoic2Nyb2xsIn19
fXJldHVybiJub25lIn0KK2Z1bmN0aW9uIEhjKGEpe3ZhciBiPUpjKGEpO2lmKGIpcmV0dXJuIGIu
cmVjdDtpZihLKGEsIkhUTUwiKSlyZXR1cm4gYT1GKGEpLGE9KChhP2EucGFyZW50V2luZG93fHxh
LmRlZmF1bHRWaWV3OndpbmRvdyl8fHdpbmRvdykuZG9jdW1lbnQsYT0iQ1NTMUNvbXBhdCI9PWEu
Y29tcGF0TW9kZT9hLmRvY3VtZW50RWxlbWVudDphLmJvZHksYT1uZXcgamEoYS5jbGllbnRXaWR0
aCxhLmNsaWVudEhlaWdodCksbmV3IEUoMCwwLGEud2lkdGgsYS5oZWlnaHQpO3RyeXt2YXIgYz1h
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKGQpe3JldHVybiBuZXcgRSgwLDAsMCwwKX1i
PW5ldyBFKGMubGVmdCxjLnRvcCxjLnJpZ2h0LWMubGVmdCxjLmJvdHRvbS1jLnRvcCk7QyYmYS5v
d25lckRvY3VtZW50LmJvZHkmJihhPUYoYSksYi5hLT1hLmRvY3VtZW50RWxlbWVudC5jbGllbnRM
ZWZ0K2EuYm9keS5jbGllbnRMZWZ0LGIuYi09YS5kb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wK2Eu
Ym9keS5jbGllbnRUb3ApOworcmV0dXJuIGJ9ZnVuY3Rpb24gSmMoYSl7dmFyIGI9SyhhLCJNQVAi
KTtpZighYiYmIUsoYSwiQVJFQSIpKXJldHVybiBudWxsO3ZhciBjPWI/YTpLKGEucGFyZW50Tm9k
ZSwiTUFQIik/YS5wYXJlbnROb2RlOm51bGwsZD1udWxsLGU9bnVsbDtjJiZjLm5hbWUmJihkPUNj
KCcvZGVzY2VuZGFudDo6KltAdXNlbWFwID0gIiMnK2MubmFtZSsnIl0nLEYoYykpKSYmKGU9SGMo
ZCksYnx8ImRlZmF1bHQiPT1hLnNoYXBlLnRvTG93ZXJDYXNlKCl8fChhPU1jKGEpLGI9TWF0aC5t
aW4oTWF0aC5tYXgoYS5hLDApLGUud2lkdGgpLGM9TWF0aC5taW4oTWF0aC5tYXgoYS5iLDApLGUu
aGVpZ2h0KSxlPW5ldyBFKGIrZS5hLGMrZS5iLE1hdGgubWluKGEud2lkdGgsZS53aWR0aC1iKSxN
YXRoLm1pbihhLmhlaWdodCxlLmhlaWdodC1jKSkpKTtyZXR1cm57QjpkLHJlY3Q6ZXx8bmV3IEUo
MCwwLDAsMCl9fQorZnVuY3Rpb24gTWMoYSl7dmFyIGI9YS5zaGFwZS50b0xvd2VyQ2FzZSgpO2E9
YS5jb29yZHMuc3BsaXQoIiwiKTtpZigicmVjdCI9PWImJjQ9PWEubGVuZ3RoKXt2YXIgYj1hWzBd
LGM9YVsxXTtyZXR1cm4gbmV3IEUoYixjLGFbMl0tYixhWzNdLWMpfWlmKCJjaXJjbGUiPT1iJiYz
PT1hLmxlbmd0aClyZXR1cm4gYj1hWzJdLG5ldyBFKGFbMF0tYixhWzFdLWIsMipiLDIqYik7aWYo
InBvbHkiPT1iJiYyPGEubGVuZ3RoKXtmb3IodmFyIGI9YVswXSxjPWFbMV0sZD1iLGU9YyxmPTI7
ZisxPGEubGVuZ3RoO2YrPTIpYj1NYXRoLm1pbihiLGFbZl0pLGQ9TWF0aC5tYXgoZCxhW2ZdKSxj
PU1hdGgubWluKGMsYVtmKzFdKSxlPU1hdGgubWF4KGUsYVtmKzFdKTtyZXR1cm4gbmV3IEUoYixj
LGQtYixlLWMpfXJldHVybiBuZXcgRSgwLDAsMCwwKX1mdW5jdGlvbiBMYyhhKXthPUhjKGEpO3Jl
dHVybiBuZXcgZGIoYS5iLGEuYSthLndpZHRoLGEuYithLmhlaWdodCxhLmEpfQorZnVuY3Rpb24g
S2MoYSl7aWYocWIpe2lmKCJyZWxhdGl2ZSI9PVkoYSwicG9zaXRpb24iKSlyZXR1cm4gMTthPVko
YSwiZmlsdGVyIik7cmV0dXJuKGE9YS5tYXRjaCgvXmFscGhhXChvcGFjaXR5PShcZCopXCkvKXx8
YS5tYXRjaCgvXnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYVwoT3BhY2l0
eT0oXGQqKVwpLykpP051bWJlcihhWzFdKS8xMDA6MX1yZXR1cm4gTmMoYSl9ZnVuY3Rpb24gTmMo
YSl7dmFyIGI9MSxjPVkoYSwib3BhY2l0eSIpO2MmJihiPU51bWJlcihjKSk7KGE9RWMoYSkpJiYo
Yio9TmMoYSkpO3JldHVybiBifTthYSgiXyIsZnVuY3Rpb24oYSxiKXt2YXIgYz1EYz9mdW5jdGlv
bihiKXtpZigibm9uZSI9PVkoYiwiZGlzcGxheSIpKXJldHVybiExO2Rve3ZhciBkPWIucGFyZW50
Tm9kZTtpZihiLmdldERlc3RpbmF0aW9uSW5zZXJ0aW9uUG9pbnRzKXt2YXIgZj1iLmdldERlc3Rp
bmF0aW9uSW5zZXJ0aW9uUG9pbnRzKCk7MDxmLmxlbmd0aCYmKGQ9ZltmLmxlbmd0aC0xXSl9aWYo
ZCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Qpe2lmKGQuaG9zdC5zaGFkb3dSb290IT1kKXJldHVybiEx
O2Q9ZC5ob3N0fWVsc2UhZHx8OSE9ZC5ub2RlVHlwZSYmMTEhPWQubm9kZVR5cGV8fChkPW51bGwp
fXdoaWxlKGEmJjEhPWEubm9kZVR5cGUpO3JldHVybiFkfHxjKGQpfTpmdW5jdGlvbihhKXtpZigi
bm9uZSI9PVkoYSwiZGlzcGxheSIpKXJldHVybiExO2E9RWMoYSk7cmV0dXJuIWF8fGMoYSl9O3Jl
dHVybiBHYyhhLCEhYixjKX0pOzsgcmV0dXJuIHRoaXMuXy5hcHBseShudWxsLGFyZ3VtZW50cyk7
fS5hcHBseSh7bmF2aWdhdG9yOnR5cGVvZiB3aW5kb3chPSd1bmRlZmluZWQnP3dpbmRvdy5uYXZp
Z2F0b3I6bnVsbCxkb2N1bWVudDp0eXBlb2Ygd2luZG93IT0ndW5kZWZpbmVkJz93aW5kb3cuZG9j
dW1lbnQ6bnVsbH0sIGFyZ3VtZW50cyk7fQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9tb2JpbGUucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVt
b3RlL21vYmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTBk
YTI0OTgxYjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL21vYmlsZS5weQpAQCAtMCwwICsxLDg1
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKworZnJvbSAuY29tbWFuZCBpbXBvcnQgQ29tbWFuZAorCisKK2NsYXNzIE1vYmls
ZShvYmplY3QpOgorCisgICAgY2xhc3MgQ29ubmVjdGlvblR5cGUob2JqZWN0KToKKworICAgICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbWFzayk6CisgICAgICAgICAgICBzZWxmLm1hc2sgPSBtYXNr
CisKKyAgICAgICAgQHByb3BlcnR5CisgICAgICAgIGRlZiBhaXJwbGFuZV9tb2RlKHNlbGYpOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYubWFzayAlIDIgPT0gMQorCisgICAgICAgIEBwcm9wZXJ0
eQorICAgICAgICBkZWYgd2lmaShzZWxmKToKKyAgICAgICAgICAgIHJldHVybiAoc2VsZi5tYXNr
IC8gMikgJSAyID09IDEKKworICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgZGVmIGRhdGEoc2Vs
Zik6CisgICAgICAgICAgICByZXR1cm4gKHNlbGYubWFzayAvIDQpID4gMAorCisgICAgQUxMX05F
VFdPUksgPSBDb25uZWN0aW9uVHlwZSg2KQorICAgIFdJRklfTkVUV09SSyA9IENvbm5lY3Rpb25U
eXBlKDIpCisgICAgREFUQV9ORVRXT1JLID0gQ29ubmVjdGlvblR5cGUoNCkKKyAgICBBSVJQTEFO
RV9NT0RFID0gQ29ubmVjdGlvblR5cGUoMSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkcml2
ZXIpOgorICAgICAgICBzZWxmLl9kcml2ZXIgPSBkcml2ZXIKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBuZXR3b3JrX2Nvbm5lY3Rpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLkNvbm5l
Y3Rpb25UeXBlKHNlbGYuX2RyaXZlci5leGVjdXRlKENvbW1hbmQuR0VUX05FVFdPUktfQ09OTkVD
VElPTilbJ3ZhbHVlJ10pCisKKyAgICBkZWYgc2V0X25ldHdvcmtfY29ubmVjdGlvbihzZWxmLCBu
ZXR3b3JrKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldCB0aGUgbmV0d29yayBjb25uZWN0aW9u
IGZvciB0aGUgcmVtb3RlIGRldmljZS4KKworICAgICAgICBFeGFtcGxlIG9mIHNldHRpbmcgYWly
cGxhbmUgbW9kZTo6CisKKyAgICAgICAgICAgIGRyaXZlci5tb2JpbGUuc2V0X25ldHdvcmtfY29u
bmVjdGlvbihkcml2ZXIubW9iaWxlLkFJUlBMQU5FX01PREUpCisgICAgICAgICIiIgorICAgICAg
ICBtb2RlID0gbmV0d29yay5tYXNrIGlmIGlzaW5zdGFuY2UobmV0d29yaywgc2VsZi5Db25uZWN0
aW9uVHlwZSkgZWxzZSBuZXR3b3JrCisgICAgICAgIHJldHVybiBzZWxmLkNvbm5lY3Rpb25UeXBl
KHNlbGYuX2RyaXZlci5leGVjdXRlKAorICAgICAgICAgICAgQ29tbWFuZC5TRVRfTkVUV09SS19D
T05ORUNUSU9OLCB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnbmV0d29ya19jb25uZWN0aW9u
JywKKyAgICAgICAgICAgICAgICAncGFyYW1ldGVycyc6IHsndHlwZSc6IG1vZGV9fSlbJ3ZhbHVl
J10pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY29udGV4dChzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIHJldHVybnMgdGhlIGN1cnJlbnQgY29udGV4dCAoTmF0aXZlIG9yIFdlYlZpZXcp
LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5leGVjdXRlKENvbW1h
bmQuQ1VSUkVOVF9DT05URVhUX0hBTkRMRSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjb250
ZXh0cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybnMgYSBsaXN0IG9mIGF2YWls
YWJsZSBjb250ZXh0cworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5l
eGVjdXRlKENvbW1hbmQuQ09OVEVYVF9IQU5ETEVTKQorCisgICAgQGNvbnRleHQuc2V0dGVyCisg
ICAgZGVmIGNvbnRleHQoc2VsZiwgbmV3X2NvbnRleHQpOgorICAgICAgICAiIiIKKyAgICAgICAg
c2V0cyB0aGUgY3VycmVudCBjb250ZXh0CisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9kcml2
ZXIuZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9UT19DT05URVhULCB7Im5hbWUiOiBuZXdfY29udGV4
dH0pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVf
Y29ubmVjdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWYx
OTQyM2Y4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25uZWN0aW9uLnB5CkBA
IC0wLDAgKzEsNTYyIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNl
cnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdy
ZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdv
cmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25l
cnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4g
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJ
UyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwor
IyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzb2NrZXQKK2lt
cG9ydCBzdHJpbmcKK2ltcG9ydCBiYXNlNjQKKwordHJ5OgorICAgIGltcG9ydCBodHRwLmNsaWVu
dCBhcyBodHRwbGliCisgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHJlcXVlc3QgYXMgdXJsX3JlcXVl
c3QKKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgcGFyc2UKK2V4Y2VwdCBJbXBvcnRFcnJvcjogICMg
YWJvdmUgaXMgYXZhaWxhYmxlIGluIHB5MyssIGJlbG93IGlzIHB5Mi43CisgICAgaW1wb3J0IGh0
dHBsaWIgYXMgaHR0cGxpYgorICAgIGltcG9ydCB1cmxsaWIyIGFzIHVybF9yZXF1ZXN0CisgICAg
aW1wb3J0IHVybHBhcnNlIGFzIHBhcnNlCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1v
biBpbXBvcnQgdXRpbHMgYXMgY29tbW9uX3V0aWxzCitmcm9tIC5jb21tYW5kIGltcG9ydCBDb21t
YW5kCitmcm9tIC5lcnJvcmhhbmRsZXIgaW1wb3J0IEVycm9yQ29kZQorZnJvbSAuIGltcG9ydCB1
dGlscworCitMT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBS
ZXF1ZXN0KHVybF9yZXF1ZXN0LlJlcXVlc3QpOgorICAgICIiIgorICAgIEV4dGVuZHMgdGhlIHVy
bF9yZXF1ZXN0LlJlcXVlc3QgdG8gc3VwcG9ydCBhbGwgSFRUUCByZXF1ZXN0IHR5cGVzLgorICAg
ICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybCwgZGF0YT1Ob25lLCBtZXRob2Q9Tm9u
ZSk6CisgICAgICAgICIiIgorICAgICAgICBJbml0aWFsaXNlIGEgbmV3IEhUVFAgcmVxdWVzdC4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0gdXJsIC0gU3RyaW5nIGZvciB0aGUgVVJM
IHRvIHNlbmQgdGhlIHJlcXVlc3QgdG8uCisgICAgICAgICAgICAtIGRhdGEgLSBEYXRhIHRvIHNl
bmQgd2l0aCB0aGUgcmVxdWVzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG1ldGhvZCBpcyBO
b25lOgorICAgICAgICAgICAgbWV0aG9kID0gZGF0YSBpcyBub3QgTm9uZSBhbmQgJ1BPU1QnIG9y
ICdHRVQnCisgICAgICAgIGVsaWYgbWV0aG9kICE9ICdQT1NUJyBhbmQgbWV0aG9kICE9ICdQVVQn
OgorICAgICAgICAgICAgZGF0YSA9IE5vbmUKKyAgICAgICAgc2VsZi5fbWV0aG9kID0gbWV0aG9k
CisgICAgICAgIHVybF9yZXF1ZXN0LlJlcXVlc3QuX19pbml0X18oc2VsZiwgdXJsLCBkYXRhPWRh
dGEpCisKKyAgICBkZWYgZ2V0X21ldGhvZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJl
dHVybnMgdGhlIEhUVFAgbWV0aG9kIHVzZWQgYnkgdGhpcyByZXF1ZXN0LgorICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuX21ldGhvZAorCisKK2NsYXNzIFJlc3BvbnNlKG9iamVjdCk6
CisgICAgIiIiCisgICAgUmVwcmVzZW50cyBhbiBIVFRQIHJlc3BvbnNlLgorICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGZwLCBjb2RlLCBoZWFkZXJzLCB1cmwpOgorICAgICAgICAi
IiIKKyAgICAgICAgSW5pdGlhbGlzZSBhIG5ldyBSZXNwb25zZS4KKworICAgICAgICA6QXJnczoK
KyAgICAgICAgICAgIC0gZnAgLSBUaGUgcmVzcG9uc2UgYm9keSBmaWxlIG9iamVjdC4KKyAgICAg
ICAgICAgIC0gY29kZSAtIFRoZSBIVFRQIHN0YXR1cyBjb2RlIHJldHVybmVkIGJ5IHRoZSBzZXJ2
ZXIuCisgICAgICAgICAgICAtIGhlYWRlcnMgLSBBIGRpY3Rpb25hcnkgb2YgaGVhZGVycyByZXR1
cm5lZCBieSB0aGUgc2VydmVyLgorICAgICAgICAgICAgLSB1cmwgLSBVUkwgb2YgdGhlIHJldHJp
ZXZlZCByZXNvdXJjZSByZXByZXNlbnRlZCBieSB0aGlzIFJlc3BvbnNlLgorICAgICAgICAiIiIK
KyAgICAgICAgc2VsZi5mcCA9IGZwCisgICAgICAgIHNlbGYucmVhZCA9IGZwLnJlYWQKKyAgICAg
ICAgc2VsZi5jb2RlID0gY29kZQorICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCisgICAg
ICAgIHNlbGYudXJsID0gdXJsCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBDbG9zZSB0aGUgcmVzcG9uc2UgYm9keSBmaWxlIG9iamVjdC4KKyAgICAgICAgIiIi
CisgICAgICAgIHNlbGYucmVhZCA9IE5vbmUKKyAgICAgICAgc2VsZi5mcCA9IE5vbmUKKworICAg
IGRlZiBpbmZvKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgcmVzcG9u
c2UgaGVhZGVycy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmhlYWRlcnMKKwor
ICAgIGRlZiBnZXR1cmwoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBV
UkwgZm9yIHRoZSByZXNvdXJjZSByZXR1cm5lZCBpbiB0aGlzIHJlc3BvbnNlLgorICAgICAgICAi
IiIKKyAgICAgICAgcmV0dXJuIHNlbGYudXJsCisKKworY2xhc3MgSHR0cEVycm9ySGFuZGxlcih1
cmxfcmVxdWVzdC5IVFRQRGVmYXVsdEVycm9ySGFuZGxlcik6CisgICAgIiIiCisgICAgQSBjdXN0
b20gSFRUUCBlcnJvciBoYW5kbGVyLgorCisgICAgVXNlZCB0byByZXR1cm4gUmVzcG9uc2Ugb2Jq
ZWN0cyBpbnN0ZWFkIG9mIHJhaXNpbmcgYW4gSFRUUEVycm9yIGV4Y2VwdGlvbi4KKyAgICAiIiIK
KworICAgIGRlZiBodHRwX2Vycm9yX2RlZmF1bHQoc2VsZiwgcmVxLCBmcCwgY29kZSwgbXNnLCBo
ZWFkZXJzKToKKyAgICAgICAgIiIiCisgICAgICAgIERlZmF1bHQgSFRUUCBlcnJvciBoYW5kbGVy
LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSByZXEgLSBUaGUgb3JpZ2luYWwgUmVx
dWVzdCBvYmplY3QuCisgICAgICAgICAgICAtIGZwIC0gVGhlIHJlc3BvbnNlIGJvZHkgZmlsZSBv
YmplY3QuCisgICAgICAgICAgICAtIGNvZGUgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSByZXR1cm5l
ZCBieSB0aGUgc2VydmVyLgorICAgICAgICAgICAgLSBtc2cgLSBUaGUgSFRUUCBzdGF0dXMgbWVz
c2FnZSByZXR1cm5lZCBieSB0aGUgc2VydmVyLgorICAgICAgICAgICAgLSBoZWFkZXJzIC0gVGhl
IHJlc3BvbnNlIGhlYWRlcnMuCisKKyAgICAgICAgOlJldHVybnM6CisgICAgICAgICAgICBBIG5l
dyBSZXNwb25zZSBvYmplY3QuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gUmVzcG9uc2Uo
ZnAsIGNvZGUsIGhlYWRlcnMsIHJlcS5nZXRfZnVsbF91cmwoKSkKKworCitjbGFzcyBSZW1vdGVD
b25uZWN0aW9uKG9iamVjdCk6CisgICAgIiIiQSBjb25uZWN0aW9uIHdpdGggdGhlIFJlbW90ZSBX
ZWJEcml2ZXIgc2VydmVyLgorCisgICAgQ29tbXVuaWNhdGVzIHdpdGggdGhlIHNlcnZlciB1c2lu
ZyB0aGUgV2ViRHJpdmVyIHdpcmUgcHJvdG9jb2w6CisgICAgaHR0cHM6Ly9naXRodWIuY29tL1Nl
bGVuaXVtSFEvc2VsZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29sIiIiCisKKyAgICBfdGltZW91
dCA9IHNvY2tldC5fR0xPQkFMX0RFRkFVTFRfVElNRU9VVAorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIGdldF90aW1lb3V0KGNscyk6CisgICAgICAgICIiIgorICAgICAgICA6UmV0dXJuczoK
KyAgICAgICAgICAgIFRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcyBmb3IgYWxsIGh0dHAgcmVxdWVz
dHMgbWFkZSB0byB0aGUgUmVtb3RlIENvbm5lY3Rpb24KKyAgICAgICAgIiIiCisgICAgICAgIHJl
dHVybiBOb25lIGlmIGNscy5fdGltZW91dCA9PSBzb2NrZXQuX0dMT0JBTF9ERUZBVUxUX1RJTUVP
VVQgZWxzZSBjbHMuX3RpbWVvdXQKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXRfdGlt
ZW91dChjbHMsIHRpbWVvdXQpOgorICAgICAgICAiIiIKKyAgICAgICAgT3ZlcnJpZGUgdGhlIGRl
ZmF1bHQgdGltZW91dAorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSB0aW1lb3V0IC0g
dGltZW91dCB2YWx1ZSBmb3IgaHR0cCByZXF1ZXN0cyBpbiBzZWNvbmRzCisgICAgICAgICIiIgor
ICAgICAgICBjbHMuX3RpbWVvdXQgPSB0aW1lb3V0CisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgcmVzZXRfdGltZW91dChjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVzZXQgdGhlIGh0
dHAgcmVxdWVzdCB0aW1lb3V0IHRvIHNvY2tldC5fR0xPQkFMX0RFRkFVTFRfVElNRU9VVAorICAg
ICAgICAiIiIKKyAgICAgICAgY2xzLl90aW1lb3V0ID0gc29ja2V0Ll9HTE9CQUxfREVGQVVMVF9U
SU1FT1VUCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZ2V0X3JlbW90ZV9jb25uZWN0aW9u
X2hlYWRlcnMoY2xzLCBwYXJzZWRfdXJsLCBrZWVwX2FsaXZlPUZhbHNlKToKKyAgICAgICAgIiIi
CisgICAgICAgIEdldCBoZWFkZXJzIGZvciByZW1vdGUgcmVxdWVzdC4KKworICAgICAgICA6QXJn
czoKKyAgICAgICAgIC0gcGFyc2VkX3VybCAtIFRoZSBwYXJzZWQgdXJsCisgICAgICAgICAtIGtl
ZXBfYWxpdmUgKEJvb2xlYW4pIC0gSXMgdGhpcyBhIGtlZXAtYWxpdmUgY29ubmVjdGlvbiAoZGVm
YXVsdDogRmFsc2UpCisgICAgICAgICIiIgorCisgICAgICAgIGhlYWRlcnMgPSB7CisgICAgICAg
ICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLAorICAgICAgICAgICAgJ0NvbnRlbnQt
VHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnLAorICAgICAgICAgICAgJ1Vz
ZXItQWdlbnQnOiAnUHl0aG9uIGh0dHAgYXV0aCcKKyAgICAgICAgfQorCisgICAgICAgIGlmIHBh
cnNlZF91cmwudXNlcm5hbWU6CisgICAgICAgICAgICBiYXNlNjRzdHJpbmcgPSBiYXNlNjQuYjY0
ZW5jb2RlKCd7MC51c2VybmFtZX06ezAucGFzc3dvcmR9Jy5mb3JtYXQocGFyc2VkX3VybCkuZW5j
b2RlKCkpCisgICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZSh7CisgICAgICAgICAgICAgICAgJ0F1
dGhvcml6YXRpb24nOiAnQmFzaWMge30nLmZvcm1hdChiYXNlNjRzdHJpbmcuZGVjb2RlKCkpCisg
ICAgICAgICAgICB9KQorCisgICAgICAgIGlmIGtlZXBfYWxpdmU6CisgICAgICAgICAgICBoZWFk
ZXJzLnVwZGF0ZSh7CisgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAna2VlcC1hbGl2ZScK
KyAgICAgICAgICAgIH0pCisKKyAgICAgICAgcmV0dXJuIGhlYWRlcnMKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtlZXBfYWxpdmU9RmFsc2UsIHJlc29sdmVf
aXA9VHJ1ZSk6CisgICAgICAgICMgQXR0ZW1wdCB0byByZXNvbHZlIHRoZSBob3N0bmFtZSBhbmQg
Z2V0IGFuIElQIGFkZHJlc3MuCisgICAgICAgIHNlbGYua2VlcF9hbGl2ZSA9IGtlZXBfYWxpdmUK
KyAgICAgICAgcGFyc2VkX3VybCA9IHBhcnNlLnVybHBhcnNlKHJlbW90ZV9zZXJ2ZXJfYWRkcikK
KyAgICAgICAgYWRkciA9IHBhcnNlZF91cmwuaG9zdG5hbWUKKyAgICAgICAgaWYgcGFyc2VkX3Vy
bC5ob3N0bmFtZSBhbmQgcmVzb2x2ZV9pcDoKKyAgICAgICAgICAgIHBvcnQgPSBwYXJzZWRfdXJs
LnBvcnQgb3IgTm9uZQorICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5zY2hlbWUgPT0gImh0dHBz
IjoKKyAgICAgICAgICAgICAgICBpcCA9IHBhcnNlZF91cmwuaG9zdG5hbWUKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgaXAgPSBjb21tb25fdXRpbHMuZmluZF9jb25uZWN0YWJs
ZV9pcChwYXJzZWRfdXJsLmhvc3RuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0KQorICAgICAgICAgICAgaWYgaXA6Cisg
ICAgICAgICAgICAgICAgbmV0bG9jID0gaXAKKyAgICAgICAgICAgICAgICBhZGRyID0gbmV0bG9j
CisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5wb3J0OgorICAgICAgICAgICAgICAgICAg
ICBuZXRsb2MgPSBjb21tb25fdXRpbHMuam9pbl9ob3N0X3BvcnQobmV0bG9jLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkX3Vy
bC5wb3J0KQorICAgICAgICAgICAgICAgIGlmIHBhcnNlZF91cmwudXNlcm5hbWU6CisgICAgICAg
ICAgICAgICAgICAgIGF1dGggPSBwYXJzZWRfdXJsLnVzZXJuYW1lCisgICAgICAgICAgICAgICAg
ICAgIGlmIHBhcnNlZF91cmwucGFzc3dvcmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRo
ICs9ICc6JXMnICUgcGFyc2VkX3VybC5wYXNzd29yZAorICAgICAgICAgICAgICAgICAgICBuZXRs
b2MgPSAnJXNAJXMnICUgKGF1dGgsIG5ldGxvYykKKyAgICAgICAgICAgICAgICByZW1vdGVfc2Vy
dmVyX2FkZHIgPSBwYXJzZS51cmx1bnBhcnNlKAorICAgICAgICAgICAgICAgICAgICAocGFyc2Vk
X3VybC5zY2hlbWUsIG5ldGxvYywgcGFyc2VkX3VybC5wYXRoLAorICAgICAgICAgICAgICAgICAg
ICAgcGFyc2VkX3VybC5wYXJhbXMsIHBhcnNlZF91cmwucXVlcnksIHBhcnNlZF91cmwuZnJhZ21l
bnQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBMT0dHRVIuaW5mbygnQ291
bGQgbm90IGdldCBJUCBhZGRyZXNzIGZvciBob3N0OiAlcycgJQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhcnNlZF91cmwuaG9zdG5hbWUpCisKKyAgICAgICAgc2VsZi5fdXJsID0gcmVt
b3RlX3NlcnZlcl9hZGRyCisgICAgICAgIGlmIGtlZXBfYWxpdmU6CisgICAgICAgICAgICBzZWxm
Ll9jb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbigKKyAgICAgICAgICAgICAgICBzdHIoYWRk
ciksIHN0cihwYXJzZWRfdXJsLnBvcnQpLCB0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCisKKyAgICAg
ICAgc2VsZi5fY29tbWFuZHMgPSB7CisgICAgICAgICAgICBDb21tYW5kLlNUQVRVUzogKCdHRVQn
LCAnL3N0YXR1cycpLAorICAgICAgICAgICAgQ29tbWFuZC5ORVdfU0VTU0lPTjogKCdQT1NUJywg
Jy9zZXNzaW9uJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9BTExfU0VTU0lPTlM6ICgnR0VU
JywgJy9zZXNzaW9ucycpLAorICAgICAgICAgICAgQ29tbWFuZC5RVUlUOiAoJ0RFTEVURScsICcv
c2Vzc2lvbi8kc2Vzc2lvbklkJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9DVVJSRU5UX1dJ
TkRPV19IQU5ETEU6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC93aW5kb3dfaGFuZGxlJyksCisgICAgICAgICAgICBDb21tYW5kLlczQ19HRVRfQ1VSUkVOVF9X
SU5ET1dfSEFORExFOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9u
SWQvd2luZG93JyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9XSU5ET1dfSEFORExFUzoKKyAg
ICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3dpbmRvd19oYW5kbGVz
JyksCisgICAgICAgICAgICBDb21tYW5kLlczQ19HRVRfV0lORE9XX0hBTkRMRVM6CisgICAgICAg
ICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvaGFuZGxlcycpLAor
ICAgICAgICAgICAgQ29tbWFuZC5HRVQ6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3Vy
bCcpLAorICAgICAgICAgICAgQ29tbWFuZC5HT19GT1JXQVJEOiAoJ1BPU1QnLCAnL3Nlc3Npb24v
JHNlc3Npb25JZC9mb3J3YXJkJyksCisgICAgICAgICAgICBDb21tYW5kLkdPX0JBQ0s6ICgnUE9T
VCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2JhY2snKSwKKyAgICAgICAgICAgIENvbW1hbmQuUkVG
UkVTSDogKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvcmVmcmVzaCcpLAorICAgICAgICAg
ICAgQ29tbWFuZC5FWEVDVVRFX1NDUklQVDogKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQv
ZXhlY3V0ZScpLAorICAgICAgICAgICAgQ29tbWFuZC5XM0NfRVhFQ1VURV9TQ1JJUFQ6CisgICAg
ICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZXhlY3V0ZS9zeW5jJyks
CisgICAgICAgICAgICBDb21tYW5kLlczQ19FWEVDVVRFX1NDUklQVF9BU1lOQzoKKyAgICAgICAg
ICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9leGVjdXRlL2FzeW5jJyksCisg
ICAgICAgICAgICBDb21tYW5kLkdFVF9DVVJSRU5UX1VSTDogKCdHRVQnLCAnL3Nlc3Npb24vJHNl
c3Npb25JZC91cmwnKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX1RJVExFOiAoJ0dFVCcsICcv
c2Vzc2lvbi8kc2Vzc2lvbklkL3RpdGxlJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9QQUdF
X1NPVVJDRTogKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9zb3VyY2UnKSwKKyAgICAgICAg
ICAgIENvbW1hbmQuU0NSRUVOU0hPVDogKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9zY3Jl
ZW5zaG90JyksCisgICAgICAgICAgICBDb21tYW5kLkVMRU1FTlRfU0NSRUVOU0hPVDogKCdHRVQn
LCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9zY3JlZW5zaG90JyksCisgICAgICAg
ICAgICBDb21tYW5kLkZJTkRfRUxFTUVOVDogKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQv
ZWxlbWVudCcpLAorICAgICAgICAgICAgQ29tbWFuZC5GSU5EX0VMRU1FTlRTOiAoJ1BPU1QnLCAn
L3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50cycpLAorICAgICAgICAgICAgQ29tbWFuZC5XM0Nf
R0VUX0FDVElWRV9FTEVNRU5UOiAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQv
YWN0aXZlJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9BQ1RJVkVfRUxFTUVOVDoKKyAgICAg
ICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50L2FjdGl2ZScp
LAorICAgICAgICAgICAgQ29tbWFuZC5GSU5EX0NISUxEX0VMRU1FTlQ6CisgICAgICAgICAgICAg
ICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kaWQvZWxlbWVudCcpLAor
ICAgICAgICAgICAgQ29tbWFuZC5GSU5EX0NISUxEX0VMRU1FTlRTOgorICAgICAgICAgICAgICAg
ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL2VsZW1lbnRzJyksCisg
ICAgICAgICAgICBDb21tYW5kLkNMSUNLX0VMRU1FTlQ6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vz
c2lvbklkL2VsZW1lbnQvJGlkL2NsaWNrJyksCisgICAgICAgICAgICBDb21tYW5kLkNMRUFSX0VM
RU1FTlQ6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL2NsZWFyJyks
CisgICAgICAgICAgICBDb21tYW5kLlNVQk1JVF9FTEVNRU5UOiAoJ1BPU1QnLCAnL3Nlc3Npb24v
JHNlc3Npb25JZC9lbGVtZW50LyRpZC9zdWJtaXQnKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VU
X0VMRU1FTlRfVEVYVDogKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC90
ZXh0JyksCisgICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZU19UT19FTEVNRU5UOgorICAgICAg
ICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL3ZhbHVl
JyksCisgICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZU19UT19BQ1RJVkVfRUxFTUVOVDoKKyAg
ICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9rZXlzJyksCisgICAg
ICAgICAgICBDb21tYW5kLlVQTE9BRF9GSUxFOiAoJ1BPU1QnLCAiL3Nlc3Npb24vJHNlc3Npb25J
ZC9maWxlIiksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX1ZBTFVFOgorICAgICAg
ICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kaWQvdmFsdWUn
KSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0VMRU1FTlRfVEFHX05BTUU6CisgICAgICAgICAg
ICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9uYW1lJyksCisg
ICAgICAgICAgICBDb21tYW5kLklTX0VMRU1FTlRfU0VMRUNURUQ6CisgICAgICAgICAgICAgICAg
KCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9zZWxlY3RlZCcpLAorICAg
ICAgICAgICAgQ29tbWFuZC5TRVRfRUxFTUVOVF9TRUxFQ1RFRDoKKyAgICAgICAgICAgICAgICAo
J1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9zZWxlY3RlZCcpLAorICAg
ICAgICAgICAgQ29tbWFuZC5JU19FTEVNRU5UX0VOQUJMRUQ6CisgICAgICAgICAgICAgICAgKCdH
RVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9lbmFibGVkJyksCisgICAgICAg
ICAgICBDb21tYW5kLklTX0VMRU1FTlRfRElTUExBWUVEOgorICAgICAgICAgICAgICAgICgnR0VU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kaWQvZGlzcGxheWVkJyksCisgICAgICAg
ICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX0xPQ0FUSU9OOgorICAgICAgICAgICAgICAgICgnR0VU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kaWQvbG9jYXRpb24nKSwKKyAgICAgICAg
ICAgIENvbW1hbmQuR0VUX0VMRU1FTlRfTE9DQVRJT05fT05DRV9TQ1JPTExFRF9JTlRPX1ZJRVc6
CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRp
ZC9sb2NhdGlvbl9pbl92aWV3JyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX1NJ
WkU6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50
LyRpZC9zaXplJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX1JFQ1Q6CisgICAg
ICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9yZWN0
JyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX0FUVFJJQlVURToKKyAgICAgICAg
ICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL2F0dHJpYnV0
ZS8kbmFtZScpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfRUxFTUVOVF9QUk9QRVJUWToKKyAg
ICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL3By
b3BlcnR5LyRuYW1lJyksCisgICAgICAgICAgICBDb21tYW5kLkVMRU1FTlRfRVFVQUxTOgorICAg
ICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kaWQvZXF1
YWxzLyRvdGhlcicpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfQUxMX0NPT0tJRVM6ICgnR0VU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvY29va2llJyksCisgICAgICAgICAgICBDb21tYW5kLkFE
RF9DT09LSUU6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Nvb2tpZScpLAorICAgICAg
ICAgICAgQ29tbWFuZC5ERUxFVEVfQUxMX0NPT0tJRVM6CisgICAgICAgICAgICAgICAgKCdERUxF
VEUnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9jb29raWUnKSwKKyAgICAgICAgICAgIENvbW1hbmQu
REVMRVRFX0NPT0tJRToKKyAgICAgICAgICAgICAgICAoJ0RFTEVURScsICcvc2Vzc2lvbi8kc2Vz
c2lvbklkL2Nvb2tpZS8kbmFtZScpLAorICAgICAgICAgICAgQ29tbWFuZC5TV0lUQ0hfVE9fRlJB
TUU6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2ZyYW1lJyksCisgICAgICAgICAgICBD
b21tYW5kLlNXSVRDSF9UT19QQVJFTlRfRlJBTUU6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL2ZyYW1lL3BhcmVudCcpLAorICAgICAgICAgICAgQ29tbWFuZC5TV0lUQ0hfVE9fV0lORE9X
OiAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cnKSwKKyAgICAgICAgICAgIENv
bW1hbmQuQ0xPU0U6ICgnREVMRVRFJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvd2luZG93JyksCisg
ICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX1ZBTFVFX09GX0NTU19QUk9QRVJUWToKKyAg
ICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL2Nz
cy8kcHJvcGVydHlOYW1lJyksCisgICAgICAgICAgICBDb21tYW5kLklNUExJQ0lUX1dBSVQ6Cisg
ICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvdGltZW91dHMvaW1w
bGljaXRfd2FpdCcpLAorICAgICAgICAgICAgQ29tbWFuZC5FWEVDVVRFX0FTWU5DX1NDUklQVDog
KCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZXhlY3V0ZV9hc3luYycpLAorICAgICAgICAg
ICAgQ29tbWFuZC5TRVRfU0NSSVBUX1RJTUVPVVQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywg
Jy9zZXNzaW9uLyRzZXNzaW9uSWQvdGltZW91dHMvYXN5bmNfc2NyaXB0JyksCisgICAgICAgICAg
ICBDb21tYW5kLlNFVF9USU1FT1VUUzoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Np
b24vJHNlc3Npb25JZC90aW1lb3V0cycpLAorICAgICAgICAgICAgQ29tbWFuZC5ESVNNSVNTX0FM
RVJUOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Rpc21p
c3NfYWxlcnQnKSwKKyAgICAgICAgICAgIENvbW1hbmQuVzNDX0RJU01JU1NfQUxFUlQ6CisgICAg
ICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWxlcnQvZGlzbWlzcycp
LAorICAgICAgICAgICAgQ29tbWFuZC5BQ0NFUFRfQUxFUlQ6CisgICAgICAgICAgICAgICAgKCdQ
T1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWNjZXB0X2FsZXJ0JyksCisgICAgICAgICAgICBD
b21tYW5kLlczQ19BQ0NFUFRfQUxFUlQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNz
aW9uLyRzZXNzaW9uSWQvYWxlcnQvYWNjZXB0JyksCisgICAgICAgICAgICBDb21tYW5kLlNFVF9B
TEVSVF9WQUxVRToKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC9hbGVydF90ZXh0JyksCisgICAgICAgICAgICBDb21tYW5kLlczQ19TRVRfQUxFUlRfVkFMVUU6
CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWxlcnQvdGV4
dCcpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfQUxFUlRfVEVYVDoKKyAgICAgICAgICAgICAg
ICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2FsZXJ0X3RleHQnKSwKKyAgICAgICAgICAg
IENvbW1hbmQuVzNDX0dFVF9BTEVSVF9URVhUOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9z
ZXNzaW9uLyRzZXNzaW9uSWQvYWxlcnQvdGV4dCcpLAorICAgICAgICAgICAgQ29tbWFuZC5TRVRf
QUxFUlRfQ1JFREVOVElBTFM6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRz
ZXNzaW9uSWQvYWxlcnQvY3JlZGVudGlhbHMnKSwKKyAgICAgICAgICAgIENvbW1hbmQuQ0xJQ0s6
CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvY2xpY2snKSwK
KyAgICAgICAgICAgIENvbW1hbmQuVzNDX0FDVElPTlM6CisgICAgICAgICAgICAgICAgKCdQT1NU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWN0aW9ucycpLAorICAgICAgICAgICAgQ29tbWFuZC5X
M0NfQ0xFQVJfQUNUSU9OUzoKKyAgICAgICAgICAgICAgICAoJ0RFTEVURScsICcvc2Vzc2lvbi8k
c2Vzc2lvbklkL2FjdGlvbnMnKSwKKyAgICAgICAgICAgIENvbW1hbmQuRE9VQkxFX0NMSUNLOgor
ICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2RvdWJsZWNsaWNr
JyksCisgICAgICAgICAgICBDb21tYW5kLk1PVVNFX0RPV046CisgICAgICAgICAgICAgICAgKCdQ
T1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYnV0dG9uZG93bicpLAorICAgICAgICAgICAgQ29t
bWFuZC5NT1VTRV9VUDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC9idXR0b251cCcpLAorICAgICAgICAgICAgQ29tbWFuZC5NT1ZFX1RPOgorICAgICAgICAg
ICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL21vdmV0bycpLAorICAgICAgICAg
ICAgQ29tbWFuZC5HRVRfV0lORE9XX1NJWkU6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nl
c3Npb24vJHNlc3Npb25JZC93aW5kb3cvJHdpbmRvd0hhbmRsZS9zaXplJyksCisgICAgICAgICAg
ICBDb21tYW5kLlNFVF9XSU5ET1dfU0laRToKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nl
c3Npb24vJHNlc3Npb25JZC93aW5kb3cvJHdpbmRvd0hhbmRsZS9zaXplJyksCisgICAgICAgICAg
ICBDb21tYW5kLkdFVF9XSU5ET1dfUE9TSVRJT046CisgICAgICAgICAgICAgICAgKCdHRVQnLCAn
L3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvJHdpbmRvd0hhbmRsZS9wb3NpdGlvbicpLAorICAg
ICAgICAgICAgQ29tbWFuZC5TRVRfV0lORE9XX1BPU0lUSU9OOgorICAgICAgICAgICAgICAgICgn
UE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3dpbmRvdy8kd2luZG93SGFuZGxlL3Bvc2l0aW9u
JyksCisgICAgICAgICAgICBDb21tYW5kLlNFVF9XSU5ET1dfUkVDVDoKKyAgICAgICAgICAgICAg
ICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvcmVjdCcpLAorICAgICAgICAg
ICAgQ29tbWFuZC5HRVRfV0lORE9XX1JFQ1Q6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nl
c3Npb24vJHNlc3Npb25JZC93aW5kb3cvcmVjdCcpLAorICAgICAgICAgICAgQ29tbWFuZC5NQVhJ
TUlaRV9XSU5ET1c6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9u
SWQvd2luZG93LyR3aW5kb3dIYW5kbGUvbWF4aW1pemUnKSwKKyAgICAgICAgICAgIENvbW1hbmQu
VzNDX01BWElNSVpFX1dJTkRPVzoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24v
JHNlc3Npb25JZC93aW5kb3cvbWF4aW1pemUnKSwKKyAgICAgICAgICAgIENvbW1hbmQuU0VUX1ND
UkVFTl9PUklFTlRBVElPTjoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNl
c3Npb25JZC9vcmllbnRhdGlvbicpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfU0NSRUVOX09S
SUVOVEFUSU9OOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQv
b3JpZW50YXRpb24nKSwKKyAgICAgICAgICAgIENvbW1hbmQuU0lOR0xFX1RBUDoKKyAgICAgICAg
ICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90b3VjaC9jbGljaycpLAorICAg
ICAgICAgICAgQ29tbWFuZC5UT1VDSF9ET1dOOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcv
c2Vzc2lvbi8kc2Vzc2lvbklkL3RvdWNoL2Rvd24nKSwKKyAgICAgICAgICAgIENvbW1hbmQuVE9V
Q0hfVVA6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvdG91
Y2gvdXAnKSwKKyAgICAgICAgICAgIENvbW1hbmQuVE9VQ0hfTU9WRToKKyAgICAgICAgICAgICAg
ICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90b3VjaC9tb3ZlJyksCisgICAgICAgICAg
ICBDb21tYW5kLlRPVUNIX1NDUk9MTDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Np
b24vJHNlc3Npb25JZC90b3VjaC9zY3JvbGwnKSwKKyAgICAgICAgICAgIENvbW1hbmQuRE9VQkxF
X1RBUDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90b3Vj
aC9kb3VibGVjbGljaycpLAorICAgICAgICAgICAgQ29tbWFuZC5MT05HX1BSRVNTOgorICAgICAg
ICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3RvdWNoL2xvbmdjbGljaycp
LAorICAgICAgICAgICAgQ29tbWFuZC5GTElDSzoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAn
L3Nlc3Npb24vJHNlc3Npb25JZC90b3VjaC9mbGljaycpLAorICAgICAgICAgICAgQ29tbWFuZC5F
WEVDVVRFX1NRTDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC9leGVjdXRlX3NxbCcpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfTE9DQVRJT046CisgICAg
ICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9sb2NhdGlvbicpLAorICAg
ICAgICAgICAgQ29tbWFuZC5TRVRfTE9DQVRJT046CisgICAgICAgICAgICAgICAgKCdQT1NUJywg
Jy9zZXNzaW9uLyRzZXNzaW9uSWQvbG9jYXRpb24nKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VU
X0FQUF9DQUNIRToKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklk
L2FwcGxpY2F0aW9uX2NhY2hlJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9BUFBfQ0FDSEVf
U1RBVFVTOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBw
bGljYXRpb25fY2FjaGUvc3RhdHVzJyksCisgICAgICAgICAgICBDb21tYW5kLkNMRUFSX0FQUF9D
QUNIRToKKyAgICAgICAgICAgICAgICAoJ0RFTEVURScsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Fw
cGxpY2F0aW9uX2NhY2hlL2NsZWFyJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9ORVRXT1JL
X0NPTk5FQ1RJT046CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC9uZXR3b3JrX2Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICAgIENvbW1hbmQuU0VUX05FVFdPUktf
Q09OTkVDVElPTjoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC9uZXR3b3JrX2Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0xPQ0FMX1NU
T1JBR0VfSVRFTToKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklk
L2xvY2FsX3N0b3JhZ2Uva2V5LyRrZXknKSwKKyAgICAgICAgICAgIENvbW1hbmQuUkVNT1ZFX0xP
Q0FMX1NUT1JBR0VfSVRFTToKKyAgICAgICAgICAgICAgICAoJ0RFTEVURScsICcvc2Vzc2lvbi8k
c2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2Uva2V5LyRrZXknKSwKKyAgICAgICAgICAgIENvbW1hbmQu
R0VUX0xPQ0FMX1NUT1JBR0VfS0VZUzoKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lv
bi8kc2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2UnKSwKKyAgICAgICAgICAgIENvbW1hbmQuU0VUX0xP
Q0FMX1NUT1JBR0VfSVRFTToKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNl
c3Npb25JZC9sb2NhbF9zdG9yYWdlJyksCisgICAgICAgICAgICBDb21tYW5kLkNMRUFSX0xPQ0FM
X1NUT1JBR0U6CisgICAgICAgICAgICAgICAgKCdERUxFVEUnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC9sb2NhbF9zdG9yYWdlJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9MT0NBTF9TVE9SQUdF
X1NJWkU6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9sb2Nh
bF9zdG9yYWdlL3NpemUnKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX1NFU1NJT05fU1RPUkFH
RV9JVEVNOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvc2Vz
c2lvbl9zdG9yYWdlL2tleS8ka2V5JyksCisgICAgICAgICAgICBDb21tYW5kLlJFTU9WRV9TRVNT
SU9OX1NUT1JBR0VfSVRFTToKKyAgICAgICAgICAgICAgICAoJ0RFTEVURScsICcvc2Vzc2lvbi8k
c2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZS9rZXkvJGtleScpLAorICAgICAgICAgICAgQ29tbWFu
ZC5HRVRfU0VTU0lPTl9TVE9SQUdFX0tFWVM6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nl
c3Npb24vJHNlc3Npb25JZC9zZXNzaW9uX3N0b3JhZ2UnKSwKKyAgICAgICAgICAgIENvbW1hbmQu
U0VUX1NFU1NJT05fU1RPUkFHRV9JVEVNOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vz
c2lvbi8kc2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZScpLAorICAgICAgICAgICAgQ29tbWFuZC5D
TEVBUl9TRVNTSU9OX1NUT1JBR0U6CisgICAgICAgICAgICAgICAgKCdERUxFVEUnLCAnL3Nlc3Np
b24vJHNlc3Npb25JZC9zZXNzaW9uX3N0b3JhZ2UnKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VU
X1NFU1NJT05fU1RPUkFHRV9TSVpFOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9u
LyRzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL3NpemUnKSwKKyAgICAgICAgICAgIENvbW1hbmQu
R0VUX0xPRzoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9s
b2cnKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0FWQUlMQUJMRV9MT0dfVFlQRVM6CisgICAg
ICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9sb2cvdHlwZXMnKSwKKyAg
ICAgICAgICAgIENvbW1hbmQuQ1VSUkVOVF9DT05URVhUX0hBTkRMRToKKyAgICAgICAgICAgICAg
ICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2NvbnRleHQnKSwKKyAgICAgICAgICAgIENv
bW1hbmQuQ09OVEVYVF9IQU5ETEVTOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9u
LyRzZXNzaW9uSWQvY29udGV4dHMnKSwKKyAgICAgICAgICAgIENvbW1hbmQuU1dJVENIX1RPX0NP
TlRFWFQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvY29u
dGV4dCcpLAorICAgICAgICAgICAgQ29tbWFuZC5GVUxMU0NSRUVOX1dJTkRPVzoKKyAgICAgICAg
ICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvZnVsbHNjcmVlbicp
LAorICAgICAgICAgICAgQ29tbWFuZC5NSU5JTUlaRV9XSU5ET1c6CisgICAgICAgICAgICAgICAg
KCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvd2luZG93L21pbmltaXplJykKKyAgICAgICAg
fQorCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29tbWFuZCwgcGFyYW1zKToKKyAgICAgICAgIiIi
CisgICAgICAgIFNlbmQgYSBjb21tYW5kIHRvIHRoZSByZW1vdGUgc2VydmVyLgorCisgICAgICAg
IEFueSBwYXRoIHN1YnRpdHV0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVSTCBtYXBwZWQgdG8gdGhl
IGNvbW1hbmQgc2hvdWxkIGJlCisgICAgICAgIGluY2x1ZGVkIGluIHRoZSBjb21tYW5kIHBhcmFt
ZXRlcnMuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGNvbW1hbmQgLSBBIHN0cmluZyBz
cGVjaWZ5aW5nIHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuCisgICAgICAgICAtIHBhcmFtcyAtIEEg
ZGljdGlvbmFyeSBvZiBuYW1lZCBwYXJhbWV0ZXJzIHRvIHNlbmQgd2l0aCB0aGUgY29tbWFuZCBh
cworICAgICAgICAgICBpdHMgSlNPTiBwYXlsb2FkLgorICAgICAgICAiIiIKKyAgICAgICAgY29t
bWFuZF9pbmZvID0gc2VsZi5fY29tbWFuZHNbY29tbWFuZF0KKyAgICAgICAgYXNzZXJ0IGNvbW1h
bmRfaW5mbyBpcyBub3QgTm9uZSwgJ1VucmVjb2duaXNlZCBjb21tYW5kICVzJyAlIGNvbW1hbmQK
KyAgICAgICAgZGF0YSA9IHV0aWxzLmR1bXBfanNvbihwYXJhbXMpCisgICAgICAgIHBhdGggPSBz
dHJpbmcuVGVtcGxhdGUoY29tbWFuZF9pbmZvWzFdKS5zdWJzdGl0dXRlKHBhcmFtcykKKyAgICAg
ICAgdXJsID0gJyVzJXMnICUgKHNlbGYuX3VybCwgcGF0aCkKKyAgICAgICAgcmV0dXJuIHNlbGYu
X3JlcXVlc3QoY29tbWFuZF9pbmZvWzBdLCB1cmwsIGJvZHk9ZGF0YSkKKworICAgIGRlZiBfcmVx
dWVzdChzZWxmLCBtZXRob2QsIHVybCwgYm9keT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAg
IFNlbmQgYW4gSFRUUCByZXF1ZXN0IHRvIHRoZSByZW1vdGUgc2VydmVyLgorCisgICAgICAgIDpB
cmdzOgorICAgICAgICAgLSBtZXRob2QgLSBBIHN0cmluZyBmb3IgdGhlIEhUVFAgbWV0aG9kIHRv
IHNlbmQgdGhlIHJlcXVlc3Qgd2l0aC4KKyAgICAgICAgIC0gdXJsIC0gQSBzdHJpbmcgZm9yIHRo
ZSBVUkwgdG8gc2VuZCB0aGUgcmVxdWVzdCB0by4KKyAgICAgICAgIC0gYm9keSAtIEEgc3RyaW5n
IGZvciByZXF1ZXN0IGJvZHkuIElnbm9yZWQgdW5sZXNzIG1ldGhvZCBpcyBQT1NUIG9yIFBVVC4K
KworICAgICAgICA6UmV0dXJuczoKKyAgICAgICAgICBBIGRpY3Rpb25hcnkgd2l0aCB0aGUgc2Vy
dmVyJ3MgcGFyc2VkIEpTT04gcmVzcG9uc2UuCisgICAgICAgICIiIgorICAgICAgICBMT0dHRVIu
ZGVidWcoJyVzICVzICVzJyAlIChtZXRob2QsIHVybCwgYm9keSkpCisKKyAgICAgICAgcGFyc2Vk
X3VybCA9IHBhcnNlLnVybHBhcnNlKHVybCkKKyAgICAgICAgaGVhZGVycyA9IHNlbGYuZ2V0X3Jl
bW90ZV9jb25uZWN0aW9uX2hlYWRlcnMocGFyc2VkX3VybCwgc2VsZi5rZWVwX2FsaXZlKQorCisg
ICAgICAgIGlmIHNlbGYua2VlcF9hbGl2ZToKKyAgICAgICAgICAgIGlmIGJvZHkgYW5kIG1ldGhv
ZCAhPSAnUE9TVCcgYW5kIG1ldGhvZCAhPSAnUFVUJzoKKyAgICAgICAgICAgICAgICBib2R5ID0g
Tm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm4ucmVxdWVz
dChtZXRob2QsIHBhcnNlZF91cmwucGF0aCwgYm9keSwgaGVhZGVycykKKyAgICAgICAgICAgICAg
ICByZXNwID0gc2VsZi5fY29ubi5nZXRyZXNwb25zZSgpCisgICAgICAgICAgICBleGNlcHQgKGh0
dHBsaWIuSFRUUEV4Y2VwdGlvbiwgc29ja2V0LmVycm9yKToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgICAgICByYWlzZQorCisgICAgICAgICAgICBzdGF0
dXNjb2RlID0gcmVzcC5zdGF0dXMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhc3N3b3Jk
X21hbmFnZXIgPSBOb25lCisgICAgICAgICAgICBpZiBwYXJzZWRfdXJsLnVzZXJuYW1lOgorICAg
ICAgICAgICAgICAgIG5ldGxvYyA9IHBhcnNlZF91cmwuaG9zdG5hbWUKKyAgICAgICAgICAgICAg
ICBpZiBwYXJzZWRfdXJsLnBvcnQ6CisgICAgICAgICAgICAgICAgICAgIG5ldGxvYyArPSAiOiVz
IiAlIHBhcnNlZF91cmwucG9ydAorICAgICAgICAgICAgICAgIGNsZWFuZWRfdXJsID0gcGFyc2Uu
dXJsdW5wYXJzZSgoCisgICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmwuc2NoZW1lLAorICAg
ICAgICAgICAgICAgICAgICBuZXRsb2MsCisgICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmwu
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VkX3VybC5wYXJhbXMsCisgICAgICAgICAg
ICAgICAgICAgIHBhcnNlZF91cmwucXVlcnksCisgICAgICAgICAgICAgICAgICAgIHBhcnNlZF91
cmwuZnJhZ21lbnQpKQorICAgICAgICAgICAgICAgIHBhc3N3b3JkX21hbmFnZXIgPSB1cmxfcmVx
dWVzdC5IVFRQUGFzc3dvcmRNZ3JXaXRoRGVmYXVsdFJlYWxtKCkKKyAgICAgICAgICAgICAgICBw
YXNzd29yZF9tYW5hZ2VyLmFkZF9wYXNzd29yZChOb25lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIlczovLyVzIiAlIChwYXJzZWRfdXJsLnNjaGVtZSwg
bmV0bG9jKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJzZWRfdXJsLnVzZXJuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhcnNlZF91cmwucGFzc3dvcmQpCisgICAgICAgICAgICAgICAgcmVxdWVzdCA9
IFJlcXVlc3QoY2xlYW5lZF91cmwsIGRhdGE9Ym9keS5lbmNvZGUoJ3V0Zi04JyksIG1ldGhvZD1t
ZXRob2QpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBSZXF1
ZXN0KHVybCwgZGF0YT1ib2R5LmVuY29kZSgndXRmLTgnKSwgbWV0aG9kPW1ldGhvZCkKKworICAg
ICAgICAgICAgZm9yIGtleSwgdmFsIGluIGhlYWRlcnMuaXRlbXMoKToKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LmFkZF9oZWFkZXIoa2V5LCB2YWwpCisKKyAgICAgICAgICAgIGlmIHBhc3N3b3Jk
X21hbmFnZXI6CisgICAgICAgICAgICAgICAgb3BlbmVyID0gdXJsX3JlcXVlc3QuYnVpbGRfb3Bl
bmVyKHVybF9yZXF1ZXN0LkhUVFBSZWRpcmVjdEhhbmRsZXIoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cEVycm9ySGFuZGxlcigpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxfcmVxdWVz
dC5IVFRQQmFzaWNBdXRoSGFuZGxlcihwYXNzd29yZF9tYW5hZ2VyKSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgb3BlbmVyID0gdXJsX3JlcXVlc3QuYnVpbGRfb3BlbmVyKHVy
bF9yZXF1ZXN0LkhUVFBSZWRpcmVjdEhhbmRsZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cEVycm9ySGFuZGxlcigpKQorICAgICAgICAg
ICAgcmVzcCA9IG9wZW5lci5vcGVuKHJlcXVlc3QsIHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKKyAg
ICAgICAgICAgIHN0YXR1c2NvZGUgPSByZXNwLmNvZGUKKyAgICAgICAgICAgIGlmIG5vdCBoYXNh
dHRyKHJlc3AsICdnZXRoZWFkZXInKToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHJlc3Au
aGVhZGVycywgJ2dldGhlYWRlcicpOgorICAgICAgICAgICAgICAgICAgICByZXNwLmdldGhlYWRl
ciA9IGxhbWJkYSB4OiByZXNwLmhlYWRlcnMuZ2V0aGVhZGVyKHgpCisgICAgICAgICAgICAgICAg
ZWxpZiBoYXNhdHRyKHJlc3AuaGVhZGVycywgJ2dldCcpOgorICAgICAgICAgICAgICAgICAgICBy
ZXNwLmdldGhlYWRlciA9IGxhbWJkYSB4OiByZXNwLmhlYWRlcnMuZ2V0KHgpCisKKyAgICAgICAg
ZGF0YSA9IHJlc3AucmVhZCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIDMwMCA8PSBz
dGF0dXNjb2RlIDwgMzA0OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0KCdH
RVQnLCByZXNwLmdldGhlYWRlcignbG9jYXRpb24nKSkKKyAgICAgICAgICAgIGJvZHkgPSBkYXRh
LmRlY29kZSgndXRmLTgnKS5yZXBsYWNlKCdceDAwJywgJycpLnN0cmlwKCkKKyAgICAgICAgICAg
IGlmIDM5OSA8IHN0YXR1c2NvZGUgPD0gNTAwOgorICAgICAgICAgICAgICAgIHJldHVybiB7J3N0
YXR1cyc6IHN0YXR1c2NvZGUsICd2YWx1ZSc6IGJvZHl9CisgICAgICAgICAgICBjb250ZW50X3R5
cGUgPSBbXQorICAgICAgICAgICAgaWYgcmVzcC5nZXRoZWFkZXIoJ0NvbnRlbnQtVHlwZScpIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9IHJlc3AuZ2V0aGVhZGVy
KCdDb250ZW50LVR5cGUnKS5zcGxpdCgnOycpCisgICAgICAgICAgICBpZiBub3QgYW55KFt4LnN0
YXJ0c3dpdGgoJ2ltYWdlL3BuZycpIGZvciB4IGluIGNvbnRlbnRfdHlwZV0pOgorICAgICAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHV0aWxzLmxvYWRfanNvbihi
b2R5LnN0cmlwKCkpCisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAg
ICAgICAgICAgICAgIGlmIDE5OSA8IHN0YXR1c2NvZGUgPCAzMDA6CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0dXMgPSBFcnJvckNvZGUuU1VDQ0VTUworICAgICAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gRXJyb3JDb2RlLlVOS05PV05f
RVJST1IKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsnc3RhdHVzJzogc3RhdHVzLCAndmFs
dWUnOiBib2R5LnN0cmlwKCl9CisKKyAgICAgICAgICAgICAgICBhc3NlcnQgdHlwZShkYXRhKSBp
cyBkaWN0LCAoCisgICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIHNlcnZlciByZXNwb25zZSBi
b2R5OiAlcycgJSBib2R5KQorICAgICAgICAgICAgICAgICMgU29tZSBvZiB0aGUgZHJpdmVycyBp
bmNvcnJlY3RseSByZXR1cm4gYSByZXNwb25zZQorICAgICAgICAgICAgICAgICMgd2l0aCBubyAn
dmFsdWUnIGZpZWxkIHdoZW4gdGhleSBzaG91bGQgcmV0dXJuIG51bGwuCisgICAgICAgICAgICAg
ICAgaWYgJ3ZhbHVlJyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsndmFs
dWUnXSA9IE5vbmUKKyAgICAgICAgICAgICAgICByZXR1cm4gZGF0YQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBkYXRhID0geydzdGF0dXMnOiAwLCAndmFsdWUnOiBib2R5LnN0
cmlwKCl9CisgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIExPR0dFUi5kZWJ1ZygiRmluaXNoZWQgUmVxdWVzdCIpCisgICAgICAgICAgICBy
ZXNwLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvc3dpdGNoX3RvLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9zd2l0Y2hf
dG8ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQzZjU3MDg0NmYz
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9zd2l0Y2hfdG8ucHkKQEAgLTAsMCArMSwxMzIgQEAK
KyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5k
ZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRo
ZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMg
bGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl
cnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBl
eGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4g
YSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp
Y2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh
dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNz
IG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNl
bnNlLgorCitmcm9tIC5jb21tYW5kIGltcG9ydCBDb21tYW5kCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5jb21tb24uYWxlcnQgaW1wb3J0IEFsZXJ0Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5j
b21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9y
dCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLCBOb1N1Y2hGcmFtZUV4Y2VwdGlvbiwgTm9TdWNoV2lu
ZG93RXhjZXB0aW9uCisKK3RyeToKKyAgICBiYXNlc3RyaW5nCitleGNlcHQgTmFtZUVycm9yOgor
ICAgIGJhc2VzdHJpbmcgPSBzdHIKKworCitjbGFzcyBTd2l0Y2hUbzoKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgc2VsZi5fZHJpdmVyID0gZHJpdmVyCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgYWN0aXZlX2VsZW1lbnQoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBSZXR1cm5zIHRoZSBlbGVtZW50IHdpdGggZm9jdXMsIG9yIEJPRFkgaWYgbm90aGluZyBo
YXMgZm9jdXMuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZWxlbWVudCA9IGRyaXZl
ci5zd2l0Y2hfdG8uYWN0aXZlX2VsZW1lbnQKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYu
X2RyaXZlci53M2M6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmV4ZWN1dGUoQ29t
bWFuZC5XM0NfR0VUX0FDVElWRV9FTEVNRU5UKVsndmFsdWUnXQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5leGVjdXRlKENvbW1hbmQuR0VUX0FDVElWRV9F
TEVNRU5UKVsndmFsdWUnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsZXJ0KHNlbGYpOgor
ICAgICAgICAiIiIKKyAgICAgICAgU3dpdGNoZXMgZm9jdXMgdG8gYW4gYWxlcnQgb24gdGhlIHBh
Z2UuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgYWxlcnQgPSBkcml2ZXIuc3dpdGNo
X3RvLmFsZXJ0CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gQWxlcnQoc2VsZi5fZHJpdmVy
KQorCisgICAgZGVmIGRlZmF1bHRfY29udGVudChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IFN3aXRjaCBmb2N1cyB0byB0aGUgZGVmYXVsdCBmcmFtZS4KKworICAgICAgICA6VXNhZ2U6Cisg
ICAgICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisgICAgICAgICIi
IgorICAgICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9UT19GUkFNRSwg
eydpZCc6IE5vbmV9KQorCisgICAgZGVmIGZyYW1lKHNlbGYsIGZyYW1lX3JlZmVyZW5jZSk6Cisg
ICAgICAgICIiIgorICAgICAgICBTd2l0Y2hlcyBmb2N1cyB0byB0aGUgc3BlY2lmaWVkIGZyYW1l
LCBieSBpbmRleCwgbmFtZSwgb3Igd2ViZWxlbWVudC4KKworICAgICAgICA6QXJnczoKKyAgICAg
ICAgIC0gZnJhbWVfcmVmZXJlbmNlOiBUaGUgbmFtZSBvZiB0aGUgd2luZG93IHRvIHN3aXRjaCB0
bywgYW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIGluZGV4LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9yIGEgd2ViZWxlbWVudCB0aGF0IGlzIGFuIChpKWZyYW1lIHRvIHN3aXRjaCB0
by4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1l
KCdmcmFtZV9uYW1lJykKKyAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoMSkKKyAg
ICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlf
dGFnX25hbWUoImlmcmFtZSIpWzBdKQorICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5j
ZShmcmFtZV9yZWZlcmVuY2UsIGJhc2VzdHJpbmcpIGFuZCBzZWxmLl9kcml2ZXIudzNjOgorICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZyYW1lX3JlZmVyZW5jZSA9IHNlbGYuX2Ry
aXZlci5maW5kX2VsZW1lbnQoQnkuSUQsIGZyYW1lX3JlZmVyZW5jZSkKKyAgICAgICAgICAgIGV4
Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICAgICAgZnJhbWVfcmVmZXJlbmNlID0gc2VsZi5fZHJpdmVyLmZpbmRfZWxlbWVu
dChCeS5OQU1FLCBmcmFtZV9yZWZlcmVuY2UpCisgICAgICAgICAgICAgICAgZXhjZXB0IE5vU3Vj
aEVsZW1lbnRFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE5vU3VjaEZyYW1l
RXhjZXB0aW9uKGZyYW1lX3JlZmVyZW5jZSkKKworICAgICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0
ZShDb21tYW5kLlNXSVRDSF9UT19GUkFNRSwgeydpZCc6IGZyYW1lX3JlZmVyZW5jZX0pCisKKyAg
ICBkZWYgcGFyZW50X2ZyYW1lKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3dpdGNoZXMg
Zm9jdXMgdG8gdGhlIHBhcmVudCBjb250ZXh0LiBJZiB0aGUgY3VycmVudCBjb250ZXh0IGlzIHRo
ZSB0b3AKKyAgICAgICAgbGV2ZWwgYnJvd3NpbmcgY29udGV4dCwgdGhlIGNvbnRleHQgcmVtYWlu
cyB1bmNoYW5nZWQuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLnN3aXRj
aF90by5wYXJlbnRfZnJhbWUoKQorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fZHJpdmVyLmV4
ZWN1dGUoQ29tbWFuZC5TV0lUQ0hfVE9fUEFSRU5UX0ZSQU1FKQorCisgICAgZGVmIHdpbmRvdyhz
ZWxmLCB3aW5kb3dfbmFtZSk6CisgICAgICAgICIiIgorICAgICAgICBTd2l0Y2hlcyBmb2N1cyB0
byB0aGUgc3BlY2lmaWVkIHdpbmRvdy4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gd2lu
ZG93X25hbWU6IFRoZSBuYW1lIG9yIHdpbmRvdyBoYW5kbGUgb2YgdGhlIHdpbmRvdyB0byBzd2l0
Y2ggdG8uCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by53
aW5kb3coJ21haW4nKQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoK
KyAgICAgICAgICAgIHNlbGYuX3czY193aW5kb3cod2luZG93X25hbWUpCisgICAgICAgICAgICBy
ZXR1cm4KKyAgICAgICAgZGF0YSA9IHsnbmFtZSc6IHdpbmRvd19uYW1lfQorICAgICAgICBzZWxm
Ll9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9UT19XSU5ET1csIGRhdGEpCisKKyAgICBk
ZWYgX3czY193aW5kb3coc2VsZiwgd2luZG93X25hbWUpOgorICAgICAgICBkZWYgc2VuZF9oYW5k
bGUoaCk6CisgICAgICAgICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9U
T19XSU5ET1csIHsnaGFuZGxlJzogaH0pCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBU
cnkgdXNpbmcgaXQgYXMgYSBoYW5kbGUgZmlyc3QuCisgICAgICAgICAgICBzZW5kX2hhbmRsZSh3
aW5kb3dfbmFtZSkKKyAgICAgICAgZXhjZXB0IE5vU3VjaFdpbmRvd0V4Y2VwdGlvbiBhcyBlOgor
ICAgICAgICAgICAgIyBDaGVjayBldmVyeSB3aW5kb3cgdG8gdHJ5IHRvIGZpbmQgdGhlIGdpdmVu
IHdpbmRvdyBuYW1lLgorICAgICAgICAgICAgb3JpZ2luYWxfaGFuZGxlID0gc2VsZi5fZHJpdmVy
LmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgICAgICAgICAgaGFuZGxlcyA9IHNlbGYuX2RyaXZl
ci53aW5kb3dfaGFuZGxlcworICAgICAgICAgICAgZm9yIGhhbmRsZSBpbiBoYW5kbGVzOgorICAg
ICAgICAgICAgICAgIHNlbmRfaGFuZGxlKGhhbmRsZSkKKyAgICAgICAgICAgICAgICBjdXJyZW50
X25hbWUgPSBzZWxmLl9kcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cubmFtZScp
CisgICAgICAgICAgICAgICAgaWYgd2luZG93X25hbWUgPT0gY3VycmVudF9uYW1lOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHNlbmRfaGFuZGxlKG9yaWdpbmFsX2hh
bmRsZSkKKyAgICAgICAgICAgIHJhaXNlIGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvdXRpbHMucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVt
b3RlL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NTA3
ZWE1YTRjNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvdXRpbHMucHkKQEAgLTAsMCArMSwxMTMg
QEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykg
dW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl
IHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBT
RkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lU
SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBM
aWNlbnNlLgorCitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0
IHRlbXBmaWxlCitpbXBvcnQgemlwZmlsZQorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRp
b25zIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCisKK0xPR0dFUiA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQorCisKK2RlZiBmb3JtYXRfanNvbihqc29uX3N0cnVjdCk6CisgICAg
cmV0dXJuIGpzb24uZHVtcHMoanNvbl9zdHJ1Y3QsIGluZGVudD00KQorCisKK2RlZiBkdW1wX2pz
b24oanNvbl9zdHJ1Y3QpOgorICAgIHJldHVybiBqc29uLmR1bXBzKGpzb25fc3RydWN0KQorCisK
K2RlZiBsb2FkX2pzb24ocyk6CisgICAgcmV0dXJuIGpzb24ubG9hZHMocykKKworCitkZWYgaGFu
ZGxlX2ZpbmRfZWxlbWVudF9leGNlcHRpb24oZSk6CisgICAgaWYgKCJVbmFibGUgdG8gZmluZCIg
aW4gZS5yZXNwb25zZVsidmFsdWUiXVsibWVzc2FnZSJdIG9yICJVbmFibGUgdG8gbG9jYXRlIiBp
biBlLnJlc3BvbnNlWyJ2YWx1ZSJdWyJtZXNzYWdlIl0pOgorICAgICAgICByYWlzZSBOb1N1Y2hF
bGVtZW50RXhjZXB0aW9uKCJVbmFibGUgdG8gbG9jYXRlIGVsZW1lbnQ6IikKKyAgICBlbHNlOgor
ICAgICAgICByYWlzZSBlCisKKworZGVmIHJldHVybl92YWx1ZV9pZl9leGlzdHMocmVzcCk6Cisg
ICAgaWYgcmVzcCBhbmQgInZhbHVlIiBpbiByZXNwOgorICAgICAgICByZXR1cm4gcmVzcFsidmFs
dWUiXQorCisKK2RlZiBnZXRfcm9vdF9wYXJlbnQoZWxlbSk6CisgICAgcGFyZW50ID0gZWxlbS5w
YXJlbnQKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXJlbnQu
cGFyZW50CisgICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50CisgICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBwYXJlbnQKKworCitkZWYgdW56
aXBfdG9fdGVtcF9kaXIoemlwX2ZpbGVfbmFtZSk6CisgICAgIiIiVW56aXAgemlwZmlsZSB0byBh
IHRlbXBvcmFyeSBkaXJlY3RvcnkuCisKKyAgICBUaGUgZGlyZWN0b3J5IG9mIHRoZSB1bnppcHBl
ZCBmaWxlcyBpcyByZXR1cm5lZCBpZiBzdWNjZXNzLAorICAgIG90aGVyd2lzZSBOb25lIGlzIHJl
dHVybmVkLiAiIiIKKyAgICBpZiBub3QgemlwX2ZpbGVfbmFtZSBvciBub3Qgb3MucGF0aC5leGlz
dHMoemlwX2ZpbGVfbmFtZSk6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICB6ZiA9IHppcGZp
bGUuWmlwRmlsZSh6aXBfZmlsZV9uYW1lKQorCisgICAgaWYgemYudGVzdHppcCgpIGlzIG5vdCBO
b25lOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIyBVbnppcCB0aGUgZmlsZXMgaW50byBh
IHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICBMT0dHRVIuaW5mbygiRXh0cmFjdGluZyB6aXBwZWQg
ZmlsZTogJXMiICUgemlwX2ZpbGVfbmFtZSkKKyAgICB0ZW1wZGlyID0gdGVtcGZpbGUubWtkdGVt
cCgpCisKKyAgICB0cnk6CisgICAgICAgICMgQ3JlYXRlIGRpcmVjdG9yaWVzIHRoYXQgZG9uJ3Qg
ZXhpc3QKKyAgICAgICAgZm9yIHppcF9uYW1lIGluIHpmLm5hbWVsaXN0KCk6CisgICAgICAgICAg
ICAjIFdlIGhhdmUgbm8ga25vd2xlZGdlIG9uIHRoZSBvcyB3aGVyZSB0aGUgemlwcGVkIGZpbGUg
d2FzCisgICAgICAgICAgICAjIGNyZWF0ZWQsIHNvIHdlIHJlc3RyaWN0IHRvIHppcCBmaWxlcyB3
aXRoIHBhdGhzIHdpdGhvdXQKKyAgICAgICAgICAgICMgY2hhcmFjdG9yICJcIiBhbmQgIi8iLgor
ICAgICAgICAgICAgbmFtZSA9ICh6aXBfbmFtZS5yZXBsYWNlKCJcXCIsIG9zLnBhdGguc2VwKS4K
KyAgICAgICAgICAgICAgICAgICAgcmVwbGFjZSgiLyIsIG9zLnBhdGguc2VwKSkKKyAgICAgICAg
ICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4odGVtcGRpciwgbmFtZSkKKyAgICAgICAgICAgIGlmIChu
YW1lLmVuZHN3aXRoKG9zLnBhdGguc2VwKSBhbmQgbm90IG9zLnBhdGguZXhpc3RzKGRlc3QpKToK
KyAgICAgICAgICAgICAgICBvcy5ta2RpcihkZXN0KQorICAgICAgICAgICAgICAgIExPR0dFUi5k
ZWJ1ZygiRGlyZWN0b3J5ICVzIGNyZWF0ZWQuIiAlIGRlc3QpCisKKyAgICAgICAgIyBDb3B5IGZp
bGVzCisgICAgICAgIGZvciB6aXBfbmFtZSBpbiB6Zi5uYW1lbGlzdCgpOgorICAgICAgICAgICAg
IyBXZSBoYXZlIG5vIGtub3dsZWRnZSBvbiB0aGUgb3Mgd2hlcmUgdGhlIHppcHBlZCBmaWxlIHdh
cworICAgICAgICAgICAgIyBjcmVhdGVkLCBzbyB3ZSByZXN0cmljdCB0byB6aXAgZmlsZXMgd2l0
aCBwYXRocyB3aXRob3V0CisgICAgICAgICAgICAjIGNoYXJhY3RvciAiXCIgYW5kICIvIi4KKyAg
ICAgICAgICAgIG5hbWUgPSAoemlwX25hbWUucmVwbGFjZSgiXFwiLCBvcy5wYXRoLnNlcCkuCisg
ICAgICAgICAgICAgICAgICAgIHJlcGxhY2UoIi8iLCBvcy5wYXRoLnNlcCkpCisgICAgICAgICAg
ICBkZXN0ID0gb3MucGF0aC5qb2luKHRlbXBkaXIsIG5hbWUpCisgICAgICAgICAgICBpZiBub3Qg
KG5hbWUuZW5kc3dpdGgob3MucGF0aC5zZXApKToKKyAgICAgICAgICAgICAgICBMT0dHRVIuZGVi
dWcoIkNvcHlpbmcgZmlsZSAlcy4uLi4uLiIgJSBkZXN0KQorICAgICAgICAgICAgICAgIG91dGZp
bGUgPSBvcGVuKGRlc3QsICd3YicpCisgICAgICAgICAgICAgICAgb3V0ZmlsZS53cml0ZSh6Zi5y
ZWFkKHppcF9uYW1lKSkKKyAgICAgICAgICAgICAgICBvdXRmaWxlLmNsb3NlKCkKKyAgICAgICAg
ICAgICAgICBMT0dHRVIuZGVidWcoIkZpbGUgJXMgY29waWVkLiIgJSBkZXN0KQorCisgICAgICAg
IExPR0dFUi5pbmZvKCJVbnppcHBlZCBmaWxlIGNhbiBiZSBmb3VuZCBhdCAlcyIgJSB0ZW1wZGly
KQorICAgICAgICByZXR1cm4gdGVtcGRpcgorCisgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgor
ICAgICAgICBMT0dHRVIuZXJyb3IoIkVycm9yIGluIGV4dHJhY3Rpbmcgd2ViZHJpdmVyLnhwaTog
JXMiICUgZXJyKQorICAgICAgICByZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2
ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvcmVtb3RlL3dlYmRyaXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNTFlYTVhMzE1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmRyaXZlci5w
eQpAQCAtMCwwICsxLDExNDEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiJUaGUgV2ViRHJpdmVyIGltcGxlbWVudGF0
aW9uLiIiIgorCitpbXBvcnQgYmFzZTY0CitpbXBvcnQgY29weQoraW1wb3J0IHdhcm5pbmdzCitm
cm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCisKK2Zyb20gLmNvbW1hbmQgaW1w
b3J0IENvbW1hbmQKK2Zyb20gLndlYmVsZW1lbnQgaW1wb3J0IFdlYkVsZW1lbnQKK2Zyb20gLnJl
bW90ZV9jb25uZWN0aW9uIGltcG9ydCBSZW1vdGVDb25uZWN0aW9uCitmcm9tIC5lcnJvcmhhbmRs
ZXIgaW1wb3J0IEVycm9ySGFuZGxlcgorZnJvbSAuc3dpdGNoX3RvIGltcG9ydCBTd2l0Y2hUbwor
ZnJvbSAubW9iaWxlIGltcG9ydCBNb2JpbGUKK2Zyb20gLmZpbGVfZGV0ZWN0b3IgaW1wb3J0IEZp
bGVEZXRlY3RvciwgTG9jYWxGaWxlRGV0ZWN0b3IKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2Vw
dGlvbnMgaW1wb3J0IChJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyRXhjZXB0aW9uKQorZnJvbSBzZWxlbml1
bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
Y29tbW9uLmh0bWw1LmFwcGxpY2F0aW9uX2NhY2hlIGltcG9ydCBBcHBsaWNhdGlvbkNhY2hlCisK
K3RyeToKKyAgICBzdHIgPSBiYXNlc3RyaW5nCitleGNlcHQgTmFtZUVycm9yOgorICAgIHBhc3MK
KworCitfVzNDX0NBUEFCSUxJVFlfTkFNRVMgPSBmcm96ZW5zZXQoWworICAgICdhY2NlcHRJbnNl
Y3VyZUNlcnRzJywKKyAgICAnYnJvd3Nlck5hbWUnLAorICAgICdicm93c2VyVmVyc2lvbicsCisg
ICAgJ3BsYXRmb3JtTmFtZScsCisgICAgJ3BhZ2VMb2FkU3RyYXRlZ3knLAorICAgICdwcm94eScs
CisgICAgJ3NldFdpbmRvd1JlY3QnLAorICAgICd0aW1lb3V0cycsCisgICAgJ3VuaGFuZGxlZFBy
b21wdEJlaGF2aW9yJywKK10pCisKK19PU1NfVzNDX0NPTlZFUlNJT04gPSB7CisgICAgJ2FjY2Vw
dFNzbENlcnRzJzogJ2FjY2VwdEluc2VjdXJlQ2VydHMnLAorICAgICd2ZXJzaW9uJzogJ2Jyb3dz
ZXJWZXJzaW9uJywKKyAgICAncGxhdGZvcm0nOiAncGxhdGZvcm1OYW1lJworfQorCisKK2RlZiBf
bWFrZV93M2NfY2FwcyhjYXBzKToKKyAgICAiIiJNYWtlcyBhIFczQyBhbHdheXNNYXRjaCBjYXBh
YmlsaXRpZXMgb2JqZWN0LgorCisgICAgRmlsdGVycyBvdXQgY2FwYWJpbGl0eSBuYW1lcyB0aGF0
IGFyZSBub3QgaW4gdGhlIFczQyBzcGVjLiBTcGVjLWNvbXBsaWFudAorICAgIGRyaXZlcnMgd2ls
bCByZWplY3QgcmVxdWVzdHMgY29udGFpbmluZyB1bmtub3duIGNhcGFiaWxpdHkgbmFtZXMuCisK
KyAgICBNb3ZlcyB0aGUgRmlyZWZveCBwcm9maWxlLCBpZiBwcmVzZW50LCBmcm9tIHRoZSBvbGQg
bG9jYXRpb24gdG8gdGhlIG5ldyBGaXJlZm94CisgICAgb3B0aW9ucyBvYmplY3QuCisKKyAgICA6
QXJnczoKKyAgICAgLSBjYXBzIC0gQSBkaWN0aW9uYXJ5IG9mIGNhcGFiaWxpdGllcyByZXF1ZXN0
ZWQgYnkgdGhlIGNhbGxlci4KKyAgICAiIiIKKyAgICBjYXBzID0gY29weS5kZWVwY29weShjYXBz
KQorICAgIHByb2ZpbGUgPSBjYXBzLmdldCgnZmlyZWZveF9wcm9maWxlJykKKyAgICBhbHdheXNf
bWF0Y2ggPSB7fQorICAgIGlmIGNhcHMuZ2V0KCdwcm94eScpIGFuZCBjYXBzWydwcm94eSddLmdl
dCgncHJveHlUeXBlJyk6CisgICAgICAgIGNhcHNbJ3Byb3h5J11bJ3Byb3h5VHlwZSddID0gY2Fw
c1sncHJveHknXVsncHJveHlUeXBlJ10ubG93ZXIoKQorICAgIGZvciBrLCB2IGluIGNhcHMuaXRl
bXMoKToKKyAgICAgICAgaWYgdiBhbmQgayBpbiBfT1NTX1czQ19DT05WRVJTSU9OOgorICAgICAg
ICAgICAgYWx3YXlzX21hdGNoW19PU1NfVzNDX0NPTlZFUlNJT05ba11dID0gdi5sb3dlcigpIGlm
IGsgPT0gJ3BsYXRmb3JtJyBlbHNlIHYKKyAgICAgICAgaWYgayBpbiBfVzNDX0NBUEFCSUxJVFlf
TkFNRVMgb3IgJzonIGluIGs6CisgICAgICAgICAgICBhbHdheXNfbWF0Y2hba10gPSB2CisgICAg
aWYgcHJvZmlsZToKKyAgICAgICAgbW96X29wdHMgPSBhbHdheXNfbWF0Y2guZ2V0KCdtb3o6Zmly
ZWZveE9wdGlvbnMnLCB7fSkKKyAgICAgICAgIyBJZiBpdCdzIGFscmVhZHkgcHJlc2VudCwgYXNz
dW1lIHRoZSBjYWxsZXIgZGlkIHRoYXQgaW50ZW50aW9uYWxseS4KKyAgICAgICAgaWYgJ3Byb2Zp
bGUnIG5vdCBpbiBtb3pfb3B0czoKKyAgICAgICAgICAgICMgRG9uJ3QgbXV0YXRlIHRoZSBvcmln
aW5hbCBjYXBhYmlsaXRpZXMuCisgICAgICAgICAgICBuZXdfb3B0cyA9IGNvcHkuZGVlcGNvcHko
bW96X29wdHMpCisgICAgICAgICAgICBuZXdfb3B0c1sncHJvZmlsZSddID0gcHJvZmlsZQorICAg
ICAgICAgICAgYWx3YXlzX21hdGNoWydtb3o6ZmlyZWZveE9wdGlvbnMnXSA9IG5ld19vcHRzCisg
ICAgcmV0dXJuIHsiZmlyc3RNYXRjaCI6IFt7fV0sICJhbHdheXNNYXRjaCI6IGFsd2F5c19tYXRj
aH0KKworCitjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBDb250cm9scyBh
IGJyb3dzZXIgYnkgc2VuZGluZyBjb21tYW5kcyB0byBhIHJlbW90ZSBzZXJ2ZXIuCisgICAgVGhp
cyBzZXJ2ZXIgaXMgZXhwZWN0ZWQgdG8gYmUgcnVubmluZyB0aGUgV2ViRHJpdmVyIHdpcmUgcHJv
dG9jb2wKKyAgICBhcyBkZWZpbmVkIGF0CisgICAgaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVt
SFEvc2VsZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29sCisKKyAgICA6QXR0cmlidXRlczoKKyAg
ICAgLSBzZXNzaW9uX2lkIC0gU3RyaW5nIElEIG9mIHRoZSBicm93c2VyIHNlc3Npb24gc3RhcnRl
ZCBhbmQgY29udHJvbGxlZCBieSB0aGlzIFdlYkRyaXZlci4KKyAgICAgLSBjYXBhYmlsaXRpZXMg
LSBEaWN0aW9uYXR5IG9mIGVmZmVjdGl2ZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBicm93c2VyIHNl
c3Npb24gYXMgcmV0dXJuZWQKKyAgICAgICAgIGJ5IHRoZSByZW1vdGUgc2VydmVyLiBTZWUgaHR0
cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2VsZW5pdW0vd2lraS9EZXNpcmVkQ2FwYWJpbGl0
aWVzCisgICAgIC0gY29tbWFuZF9leGVjdXRvciAtIHJlbW90ZV9jb25uZWN0aW9uLlJlbW90ZUNv
bm5lY3Rpb24gb2JqZWN0IHVzZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4KKyAgICAgLSBlcnJvcl9o
YW5kbGVyIC0gZXJyb3JoYW5kbGVyLkVycm9ySGFuZGxlciBvYmplY3QgdXNlZCB0byBoYW5kbGUg
ZXJyb3JzLgorICAgICIiIgorCisgICAgX3dlYl9lbGVtZW50X2NscyA9IFdlYkVsZW1lbnQKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21tYW5kX2V4ZWN1dG9yPSdodHRwOi8vMTI3LjAuMC4x
OjQ0NDQvd2QvaHViJywKKyAgICAgICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9Tm9u
ZSwgYnJvd3Nlcl9wcm9maWxlPU5vbmUsIHByb3h5PU5vbmUsCisgICAgICAgICAgICAgICAgIGtl
ZXBfYWxpdmU9RmFsc2UsIGZpbGVfZGV0ZWN0b3I9Tm9uZSwgb3B0aW9ucz1Ob25lKToKKyAgICAg
ICAgIiIiCisgICAgICAgIENyZWF0ZSBhIG5ldyBkcml2ZXIgdGhhdCB3aWxsIGlzc3VlIGNvbW1h
bmRzIHVzaW5nIHRoZSB3aXJlIHByb3RvY29sLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBjb21tYW5kX2V4ZWN1dG9yIC0gRWl0aGVyIGEgc3RyaW5nIHJlcHJlc2VudGluZyBVUkwgb2Yg
dGhlIHJlbW90ZSBzZXJ2ZXIgb3IgYSBjdXN0b20KKyAgICAgICAgICAgICByZW1vdGVfY29ubmVj
dGlvbi5SZW1vdGVDb25uZWN0aW9uIG9iamVjdC4gRGVmYXVsdHMgdG8gJ2h0dHA6Ly8xMjcuMC4w
LjE6NDQ0NC93ZC9odWInLgorICAgICAgICAgLSBkZXNpcmVkX2NhcGFiaWxpdGllcyAtIEEgZGlj
dGlvbmFyeSBvZiBjYXBhYmlsaXRpZXMgdG8gcmVxdWVzdCB3aGVuCisgICAgICAgICAgICAgc3Rh
cnRpbmcgdGhlIGJyb3dzZXIgc2Vzc2lvbi4gUmVxdWlyZWQgcGFyYW1ldGVyLgorICAgICAgICAg
LSBicm93c2VyX3Byb2ZpbGUgLSBBIHNlbGVuaXVtLndlYmRyaXZlci5maXJlZm94LmZpcmVmb3hf
cHJvZmlsZS5GaXJlZm94UHJvZmlsZSBvYmplY3QuCisgICAgICAgICAgICAgT25seSB1c2VkIGlm
IEZpcmVmb3ggaXMgcmVxdWVzdGVkLiBPcHRpb25hbC4KKyAgICAgICAgIC0gcHJveHkgLSBBIHNl
bGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJveHkuUHJveHkgb2JqZWN0LiBUaGUgYnJvd3NlciBz
ZXNzaW9uIHdpbGwKKyAgICAgICAgICAgICBiZSBzdGFydGVkIHdpdGggZ2l2ZW4gcHJveHkgc2V0
dGluZ3MsIGlmIHBvc3NpYmxlLiBPcHRpb25hbC4KKyAgICAgICAgIC0ga2VlcF9hbGl2ZSAtIFdo
ZXRoZXIgdG8gY29uZmlndXJlIHJlbW90ZV9jb25uZWN0aW9uLlJlbW90ZUNvbm5lY3Rpb24gdG8g
dXNlCisgICAgICAgICAgICAgSFRUUCBrZWVwLWFsaXZlLiBEZWZhdWx0cyB0byBGYWxzZS4KKyAg
ICAgICAgIC0gZmlsZV9kZXRlY3RvciAtIFBhc3MgY3VzdG9tIGZpbGUgZGV0ZWN0b3Igb2JqZWN0
IGR1cmluZyBpbnN0YW50aWF0aW9uLiBJZiBOb25lLAorICAgICAgICAgICAgIHRoZW4gZGVmYXVs
dCBMb2NhbEZpbGVEZXRlY3RvcigpIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgIC0gb3B0aW9ucyAt
IGluc3RhbmNlIG9mIGEgZHJpdmVyIG9wdGlvbnMuT3B0aW9ucyBjbGFzcworICAgICAgICAiIiIK
KyAgICAgICAgaWYgZGVzaXJlZF9jYXBhYmlsaXRpZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHJh
aXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRGVzaXJlZCBDYXBhYmlsaXRpZXMgY2FuJ3QgYmUgTm9u
ZSIpCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRlc2lyZWRfY2FwYWJpbGl0aWVzLCBkaWN0
KToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRGVzaXJlZCBDYXBhYmls
aXRpZXMgbXVzdCBiZSBhIGRpY3Rpb25hcnkiKQorICAgICAgICBpZiBwcm94eSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIlBsZWFzZSB1c2UgRmlyZWZveE9wdGlvbnMg
dG8gc2V0IHByb3h5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJu
aW5nKQorICAgICAgICAgICAgcHJveHkuYWRkX3RvX2NhcGFiaWxpdGllcyhkZXNpcmVkX2NhcGFi
aWxpdGllcykKKyAgICAgICAgaWYgb3B0aW9ucyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRl
c2lyZWRfY2FwYWJpbGl0aWVzLnVwZGF0ZShvcHRpb25zLnRvX2NhcGFiaWxpdGllcygpKQorICAg
ICAgICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IgPSBjb21tYW5kX2V4ZWN1dG9yCisgICAgICAgIGlm
IHR5cGUoc2VsZi5jb21tYW5kX2V4ZWN1dG9yKSBpcyBieXRlcyBvciBpc2luc3RhbmNlKHNlbGYu
Y29tbWFuZF9leGVjdXRvciwgc3RyKToKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZF9leGVjdXRv
ciA9IFJlbW90ZUNvbm5lY3Rpb24oY29tbWFuZF9leGVjdXRvciwga2VlcF9hbGl2ZT1rZWVwX2Fs
aXZlKQorICAgICAgICBzZWxmLl9pc19yZW1vdGUgPSBUcnVlCisgICAgICAgIHNlbGYuc2Vzc2lv
bl9pZCA9IE5vbmUKKyAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSB7fQorICAgICAgICBzZWxm
LmVycm9yX2hhbmRsZXIgPSBFcnJvckhhbmRsZXIoKQorICAgICAgICBzZWxmLnN0YXJ0X2NsaWVu
dCgpCisgICAgICAgIGlmIGJyb3dzZXJfcHJvZmlsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHdhcm5pbmdzLndhcm4oIlBsZWFzZSB1c2UgRmlyZWZveE9wdGlvbnMgdG8gc2V0IGJyb3dzZXIg
cHJvZmlsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykK
KyAgICAgICAgc2VsZi5zdGFydF9zZXNzaW9uKGRlc2lyZWRfY2FwYWJpbGl0aWVzLCBicm93c2Vy
X3Byb2ZpbGUpCisgICAgICAgIHNlbGYuX3N3aXRjaF90byA9IFN3aXRjaFRvKHNlbGYpCisgICAg
ICAgIHNlbGYuX21vYmlsZSA9IE1vYmlsZShzZWxmKQorICAgICAgICBzZWxmLmZpbGVfZGV0ZWN0
b3IgPSBmaWxlX2RldGVjdG9yIG9yIExvY2FsRmlsZURldGVjdG9yKCkKKworICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8ezAuX19tb2R1bGVfX30uezAuX19uYW1lX199
IChzZXNzaW9uPSJ7MX0iKT4nLmZvcm1hdCgKKyAgICAgICAgICAgIHR5cGUoc2VsZiksIHNlbGYu
c2Vzc2lvbl9pZCkKKworICAgIEBjb250ZXh0bWFuYWdlcgorICAgIGRlZiBmaWxlX2RldGVjdG9y
X2NvbnRleHQoc2VsZiwgZmlsZV9kZXRlY3Rvcl9jbGFzcywgKmFyZ3MsICoqa3dhcmdzKToKKyAg
ICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRlcyB0aGUgY3VycmVudCBmaWxlIGRldGVjdG9yIChp
ZiBuZWNlc3NhcnkpIGluIGxpbWl0ZWQgY29udGV4dC4KKyAgICAgICAgRW5zdXJlcyB0aGUgb3Jp
Z2luYWwgZmlsZSBkZXRlY3RvciBpcyBzZXQgYWZ0ZXJ3YXJkcy4KKworICAgICAgICBFeGFtcGxl
OgorCisgICAgICAgIHdpdGggd2ViZHJpdmVyLmZpbGVfZGV0ZWN0b3JfY29udGV4dChVc2VsZXNz
RmlsZURldGVjdG9yKToKKyAgICAgICAgICAgIHNvbWVpbnB1dC5zZW5kX2tleXMoJy9ldGMvaG9z
dHMnKQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBmaWxlX2RldGVjdG9yX2NsYXNzIC0g
Q2xhc3Mgb2YgdGhlIGRlc2lyZWQgZmlsZSBkZXRlY3Rvci4gSWYgdGhlIGNsYXNzIGlzIGRpZmZl
cmVudAorICAgICAgICAgICAgIGZyb20gdGhlIGN1cnJlbnQgZmlsZV9kZXRlY3RvciwgdGhlbiB0
aGUgY2xhc3MgaXMgaW5zdGFudGlhdGVkIHdpdGggYXJncyBhbmQga3dhcmdzCisgICAgICAgICAg
ICAgYW5kIHVzZWQgYXMgYSBmaWxlIGRldGVjdG9yIGR1cmluZyB0aGUgZHVyYXRpb24gb2YgdGhl
IGNvbnRleHQgbWFuYWdlci4KKyAgICAgICAgIC0gYXJncyAtIE9wdGlvbmFsIGFyZ3VtZW50cyB0
aGF0IGdldCBwYXNzZWQgdG8gdGhlIGZpbGUgZGV0ZWN0b3IgY2xhc3MgZHVyaW5nCisgICAgICAg
ICAgICAgaW5zdGFudGlhdGlvbi4KKyAgICAgICAgIC0ga3dhcmdzIC0gS2V5d29yZCBhcmd1bWVu
dHMsIHBhc3NlZCB0aGUgc2FtZSB3YXkgYXMgYXJncy4KKyAgICAgICAgIiIiCisgICAgICAgIGxh
c3RfZGV0ZWN0b3IgPSBOb25lCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYuZmlsZV9k
ZXRlY3RvciwgZmlsZV9kZXRlY3Rvcl9jbGFzcyk6CisgICAgICAgICAgICBsYXN0X2RldGVjdG9y
ID0gc2VsZi5maWxlX2RldGVjdG9yCisgICAgICAgICAgICBzZWxmLmZpbGVfZGV0ZWN0b3IgPSBm
aWxlX2RldGVjdG9yX2NsYXNzKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgeWllbGQKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGlmIGxhc3RfZGV0ZWN0
b3IgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5maWxlX2RldGVjdG9yID0gbGFz
dF9kZXRlY3RvcgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1vYmlsZShzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX21vYmlsZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5hbWUoc2Vs
Zik6CisgICAgICAgICIiIlJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHVuZGVybHlpbmcgYnJvd3Nl
ciBmb3IgdGhpcyBpbnN0YW5jZS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAtIGRyaXZl
ci5uYW1lCisgICAgICAgICIiIgorICAgICAgICBpZiAnYnJvd3Nlck5hbWUnIGluIHNlbGYuY2Fw
YWJpbGl0aWVzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2FwYWJpbGl0aWVzWydicm93c2Vy
TmFtZSddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcignYnJvd3Nl
ck5hbWUgbm90IHNwZWNpZmllZCBpbiBzZXNzaW9uIGNhcGFiaWxpdGllcycpCisKKyAgICBkZWYg
c3RhcnRfY2xpZW50KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2FsbGVkIGJlZm9yZSBz
dGFydGluZyBhIG5ldyBzZXNzaW9uLiBUaGlzIG1ldGhvZCBtYXkgYmUgb3ZlcnJpZGRlbgorICAg
ICAgICB0byBkZWZpbmUgY3VzdG9tIHN0YXJ0dXAgYmVoYXZpb3IuCisgICAgICAgICIiIgorICAg
ICAgICBwYXNzCisKKyAgICBkZWYgc3RvcF9jbGllbnQoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBDYWxsZWQgYWZ0ZXIgZXhlY3V0aW5nIGEgcXVpdCBjb21tYW5kLiBUaGlzIG1ldGhvZCBt
YXkgYmUgb3ZlcnJpZGRlbgorICAgICAgICB0byBkZWZpbmUgY3VzdG9tIHNodXRkb3duIGJlaGF2
aW9yLgorICAgICAgICAiIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIHN0YXJ0X3Nlc3Npb24o
c2VsZiwgY2FwYWJpbGl0aWVzLCBicm93c2VyX3Byb2ZpbGU9Tm9uZSk6CisgICAgICAgICIiIgor
ICAgICAgICBDcmVhdGVzIGEgbmV3IHNlc3Npb24gd2l0aCB0aGUgZGVzaXJlZCBjYXBhYmlsaXRp
ZXMuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGJyb3dzZXJfbmFtZSAtIFRoZSBuYW1l
IG9mIHRoZSBicm93c2VyIHRvIHJlcXVlc3QuCisgICAgICAgICAtIHZlcnNpb24gLSBXaGljaCBi
cm93c2VyIHZlcnNpb24gdG8gcmVxdWVzdC4KKyAgICAgICAgIC0gcGxhdGZvcm0gLSBXaGljaCBw
bGF0Zm9ybSB0byByZXF1ZXN0IHRoZSBicm93c2VyIG9uLgorICAgICAgICAgLSBqYXZhc2NyaXB0
X2VuYWJsZWQgLSBXaGV0aGVyIHRoZSBuZXcgc2Vzc2lvbiBzaG91bGQgc3VwcG9ydCBKYXZhU2Ny
aXB0LgorICAgICAgICAgLSBicm93c2VyX3Byb2ZpbGUgLSBBIHNlbGVuaXVtLndlYmRyaXZlci5m
aXJlZm94LmZpcmVmb3hfcHJvZmlsZS5GaXJlZm94UHJvZmlsZSBvYmplY3QuIE9ubHkgdXNlZCBp
ZiBGaXJlZm94IGlzIHJlcXVlc3RlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKGNhcGFiaWxpdGllcywgZGljdCk6CisgICAgICAgICAgICByYWlzZSBJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24oIkNhcGFiaWxpdGllcyBtdXN0IGJlIGEgZGljdGlvbmFyeSIpCisgICAg
ICAgIGlmIGJyb3dzZXJfcHJvZmlsZToKKyAgICAgICAgICAgIGlmICJtb3o6ZmlyZWZveE9wdGlv
bnMiIGluIGNhcGFiaWxpdGllczoKKyAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXNbIm1vejpm
aXJlZm94T3B0aW9ucyJdWyJwcm9maWxlIl0gPSBicm93c2VyX3Byb2ZpbGUuZW5jb2RlZAorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMudXBkYXRlKHsnZmly
ZWZveF9wcm9maWxlJzogYnJvd3Nlcl9wcm9maWxlLmVuY29kZWR9KQorICAgICAgICB3M2NfY2Fw
cyA9IF9tYWtlX3czY19jYXBzKGNhcGFiaWxpdGllcykKKyAgICAgICAgcGFyYW1ldGVycyA9IHsi
Y2FwYWJpbGl0aWVzIjogdzNjX2NhcHMsCisgICAgICAgICAgICAgICAgICAgICAgImRlc2lyZWRD
YXBhYmlsaXRpZXMiOiBjYXBhYmlsaXRpZXN9CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi5leGVj
dXRlKENvbW1hbmQuTkVXX1NFU1NJT04sIHBhcmFtZXRlcnMpCisgICAgICAgIGlmICdzZXNzaW9u
SWQnIG5vdCBpbiByZXNwb25zZToKKyAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2VbJ3Zh
bHVlJ10KKyAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gcmVzcG9uc2VbJ3Nlc3Npb25JZCddCisg
ICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZ2V0KCd2YWx1ZScpCisKKyAgICAg
ICAgIyBpZiBjYXBhYmlsaXRpZXMgaXMgbm9uZSB3ZSBhcmUgcHJvYmFibHkgc3BlYWtpbmcgdG8K
KyAgICAgICAgIyBhIFczQyBlbmRwb2ludAorICAgICAgICBpZiBzZWxmLmNhcGFiaWxpdGllcyBp
cyBOb25lOgorICAgICAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSByZXNwb25zZS5nZXQoJ2Nh
cGFiaWxpdGllcycpCisKKyAgICAgICAgIyBEb3VibGUgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
YSBXM0MgQ29tcGxpYW50IGJyb3dzZXIKKyAgICAgICAgc2VsZi53M2MgPSByZXNwb25zZS5nZXQo
J3N0YXR1cycpIGlzIE5vbmUKKworICAgIGRlZiBfd3JhcF92YWx1ZShzZWxmLCB2YWx1ZSk6Cisg
ICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpOgorICAgICAgICAgICAgY29udmVydGVk
ID0ge30KKyAgICAgICAgICAgIGZvciBrZXksIHZhbCBpbiB2YWx1ZS5pdGVtcygpOgorICAgICAg
ICAgICAgICAgIGNvbnZlcnRlZFtrZXldID0gc2VsZi5fd3JhcF92YWx1ZSh2YWwpCisgICAgICAg
ICAgICByZXR1cm4gY29udmVydGVkCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc2Vs
Zi5fd2ViX2VsZW1lbnRfY2xzKToKKyAgICAgICAgICAgIHJldHVybiB7J0VMRU1FTlQnOiB2YWx1
ZS5pZCwgJ2VsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmJzogdmFsdWUuaWR9Cisg
ICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCk6CisgICAgICAgICAgICByZXR1cm4g
bGlzdChzZWxmLl93cmFwX3ZhbHVlKGl0ZW0pIGZvciBpdGVtIGluIHZhbHVlKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgY3JlYXRlX3dlYl9lbGVt
ZW50KHNlbGYsIGVsZW1lbnRfaWQpOgorICAgICAgICAiIiJDcmVhdGVzIGEgd2ViIGVsZW1lbnQg
d2l0aCB0aGUgc3BlY2lmaWVkIGBlbGVtZW50X2lkYC4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
X3dlYl9lbGVtZW50X2NscyhzZWxmLCBlbGVtZW50X2lkLCB3M2M9c2VsZi53M2MpCisKKyAgICBk
ZWYgX3Vud3JhcF92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFs
dWUsIGRpY3QpOgorICAgICAgICAgICAgaWYgJ0VMRU1FTlQnIGluIHZhbHVlIG9yICdlbGVtZW50
LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZicgaW4gdmFsdWU6CisgICAgICAgICAgICAgICAg
d3JhcHBlZF9pZCA9IHZhbHVlLmdldCgnRUxFTUVOVCcsIE5vbmUpCisgICAgICAgICAgICAgICAg
aWYgd3JhcHBlZF9pZDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY3JlYXRlX3dl
Yl9lbGVtZW50KHZhbHVlWydFTEVNRU5UJ10pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY3JlYXRlX3dlYl9lbGVtZW50KHZhbHVlWydlbGVt
ZW50LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiddKQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICBmb3Iga2V5LCB2YWwgaW4gdmFsdWUuaXRlbXMoKToKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWVba2V5XSA9IHNlbGYuX3Vud3JhcF92YWx1ZSh2YWwpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCk6
CisgICAgICAgICAgICByZXR1cm4gbGlzdChzZWxmLl91bndyYXBfdmFsdWUoaXRlbSkgZm9yIGl0
ZW0gaW4gdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUKKwor
ICAgIGRlZiBleGVjdXRlKHNlbGYsIGRyaXZlcl9jb21tYW5kLCBwYXJhbXM9Tm9uZSk6CisgICAg
ICAgICIiIgorICAgICAgICBTZW5kcyBhIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgYnkgYSBjb21t
YW5kLkNvbW1hbmRFeGVjdXRvci4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZHJpdmVy
X2NvbW1hbmQ6IFRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUgYXMgYSBzdHJpbmcu
CisgICAgICAgICAtIHBhcmFtczogQSBkaWN0aW9uYXJ5IG9mIG5hbWVkIHBhcmFtZXRlcnMgdG8g
c2VuZCB3aXRoIHRoZSBjb21tYW5kLgorCisgICAgICAgIDpSZXR1cm5zOgorICAgICAgICAgIFRo
ZSBjb21tYW5kJ3MgSlNPTiByZXNwb25zZSBsb2FkZWQgaW50byBhIGRpY3Rpb25hcnkgb2JqZWN0
LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5zZXNzaW9uX2lkIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgaWYgbm90IHBhcmFtczoKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSB7J3Nl
c3Npb25JZCc6IHNlbGYuc2Vzc2lvbl9pZH0KKyAgICAgICAgICAgIGVsaWYgJ3Nlc3Npb25JZCcg
bm90IGluIHBhcmFtczoKKyAgICAgICAgICAgICAgICBwYXJhbXNbJ3Nlc3Npb25JZCddID0gc2Vs
Zi5zZXNzaW9uX2lkCisKKyAgICAgICAgcGFyYW1zID0gc2VsZi5fd3JhcF92YWx1ZShwYXJhbXMp
CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jb21tYW5kX2V4ZWN1dG9yLmV4ZWN1dGUoZHJpdmVy
X2NvbW1hbmQsIHBhcmFtcykKKyAgICAgICAgaWYgcmVzcG9uc2U6CisgICAgICAgICAgICBzZWxm
LmVycm9yX2hhbmRsZXIuY2hlY2tfcmVzcG9uc2UocmVzcG9uc2UpCisgICAgICAgICAgICByZXNw
b25zZVsndmFsdWUnXSA9IHNlbGYuX3Vud3JhcF92YWx1ZSgKKyAgICAgICAgICAgICAgICByZXNw
b25zZS5nZXQoJ3ZhbHVlJywgTm9uZSkpCisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UKKyAg
ICAgICAgIyBJZiB0aGUgc2VydmVyIGRvZXNuJ3Qgc2VuZCBhIHJlc3BvbnNlLCBhc3N1bWUgdGhl
IGNvbW1hbmQgd2FzCisgICAgICAgICMgYSBzdWNjZXNzCisgICAgICAgIHJldHVybiB7J3N1Y2Nl
c3MnOiAwLCAndmFsdWUnOiBOb25lLCAnc2Vzc2lvbklkJzogc2VsZi5zZXNzaW9uX2lkfQorCisg
ICAgZGVmIGdldChzZWxmLCB1cmwpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZHMgYSB3ZWIg
cGFnZSBpbiB0aGUgY3VycmVudCBicm93c2VyIHNlc3Npb24uCisgICAgICAgICIiIgorICAgICAg
ICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVQsIHsndXJsJzogdXJsfSkKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiB0aXRsZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgdGl0bGUgb2Yg
dGhlIGN1cnJlbnQgcGFnZS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIu
dGl0bGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3AgPSBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5H
RVRfVElUTEUpCisgICAgICAgIHJldHVybiByZXNwWyd2YWx1ZSddIGlmIHJlc3BbJ3ZhbHVlJ10g
aXMgbm90IE5vbmUgZWxzZSAiIgorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9pZChzZWxmLCBp
ZF8pOgorICAgICAgICAiIiJGaW5kcyBhbiBlbGVtZW50IGJ5IGlkLgorCisgICAgICAgIDpBcmdz
OgorICAgICAgICAgLSBpZFxfIC0gVGhlIGlkIG9mIHRoZSBlbGVtZW50IHRvIGJlIGZvdW5kLgor
CisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
J2ZvbycpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9
QnkuSUQsIHZhbHVlPWlkXykKKworICAgIGRlZiBmaW5kX2VsZW1lbnRzX2J5X2lkKHNlbGYsIGlk
Xyk6CisgICAgICAgICIiIgorICAgICAgICBGaW5kcyBtdWx0aXBsZSBlbGVtZW50cyBieSBpZC4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gaWRcXyAtIFRoZSBpZCBvZiB0aGUgZWxlbWVu
dHMgdG8gYmUgZm91bmQuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmZp
bmRfZWxlbWVudHNfYnlfaWQoJ2ZvbycpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5maW5kX2VsZW1lbnRzKGJ5PUJ5LklELCB2YWx1ZT1pZF8pCisKKyAgICBkZWYgZmluZF9lbGVt
ZW50X2J5X3hwYXRoKHNlbGYsIHhwYXRoKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmRzIGFu
IGVsZW1lbnQgYnkgeHBhdGguCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHhwYXRoIC0g
VGhlIHhwYXRoIGxvY2F0b3Igb2YgdGhlIGVsZW1lbnQgdG8gZmluZC4KKworICAgICAgICA6VXNh
Z2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCcvL2Rpdi90ZFsx
XScpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9Qnku
WFBBVEgsIHZhbHVlPXhwYXRoKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfeHBhdGgoc2Vs
ZiwgeHBhdGgpOgorICAgICAgICAiIiIKKyAgICAgICAgRmluZHMgbXVsdGlwbGUgZWxlbWVudHMg
YnkgeHBhdGguCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHhwYXRoIC0gVGhlIHhwYXRo
IGxvY2F0b3Igb2YgdGhlIGVsZW1lbnRzIHRvIGJlIGZvdW5kLgorCisgICAgICAgIDpVc2FnZToK
KyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X3hwYXRoKCIvL2Rpdltjb250YWlu
cyhAY2xhc3MsICdmb28nKV0iKQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmlu
ZF9lbGVtZW50cyhieT1CeS5YUEFUSCwgdmFsdWU9eHBhdGgpCisKKyAgICBkZWYgZmluZF9lbGVt
ZW50X2J5X2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgorICAgICAgICAiIiIKKyAgICAgICAg
RmluZHMgYW4gZWxlbWVudCBieSBsaW5rIHRleHQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAg
ICAtIGxpbmtfdGV4dDogVGhlIHRleHQgb2YgdGhlIGVsZW1lbnQgdG8gYmUgZm91bmQuCisKKyAg
ICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9saW5rX3Rl
eHQoJ1NpZ24gSW4nKQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVt
ZW50KGJ5PUJ5LkxJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0KQorCisgICAgZGVmIGZpbmRfZWxl
bWVudHNfYnlfbGlua190ZXh0KHNlbGYsIHRleHQpOgorICAgICAgICAiIiIKKyAgICAgICAgRmlu
ZHMgZWxlbWVudHMgYnkgbGluayB0ZXh0LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBs
aW5rX3RleHQ6IFRoZSB0ZXh0IG9mIHRoZSBlbGVtZW50cyB0byBiZSBmb3VuZC4KKworICAgICAg
ICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50c19ieV9saW5rX3RleHQo
J1NpZ24gSW4nKQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50
cyhieT1CeS5MSU5LX1RFWFQsIHZhbHVlPXRleHQpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5
X3BhcnRpYWxfbGlua190ZXh0KHNlbGYsIGxpbmtfdGV4dCk6CisgICAgICAgICIiIgorICAgICAg
ICBGaW5kcyBhbiBlbGVtZW50IGJ5IGEgcGFydGlhbCBtYXRjaCBvZiBpdHMgbGluayB0ZXh0Lgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBsaW5rX3RleHQ6IFRoZSB0ZXh0IG9mIHRoZSBl
bGVtZW50IHRvIHBhcnRpYWxseSBtYXRjaCBvbi4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAg
ICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3BhcnRpYWxfbGlua190ZXh0KCdTaWduJykKKyAg
ICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5QQVJUSUFM
X0xJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0KQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlf
cGFydGlhbF9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgIiIiCisgICAgICAg
IEZpbmRzIGVsZW1lbnRzIGJ5IGEgcGFydGlhbCBtYXRjaCBvZiB0aGVpciBsaW5rIHRleHQuCisK
KyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGxpbmtfdGV4dDogVGhlIHRleHQgb2YgdGhlIGVs
ZW1lbnQgdG8gcGFydGlhbCBtYXRjaCBvbi4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAg
ICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3BhcnRpYWxfbGlua190ZXh0KCdTaWduJykKKyAgICAg
ICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuUEFSVElBTF9M
SU5LX1RFWFQsIHZhbHVlPWxpbmtfdGV4dCkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfbmFt
ZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmRzIGFuIGVsZW1lbnQgYnkg
bmFtZS4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gbmFtZTogVGhlIG5hbWUgb2YgdGhl
IGVsZW1lbnQgdG8gZmluZC4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X25hbWUoJ2ZvbycpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuTkFNRSwgdmFsdWU9bmFtZSkKKworICAgIGRlZiBmaW5k
X2VsZW1lbnRzX2J5X25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIgorICAgICAgICBGaW5k
cyBlbGVtZW50cyBieSBuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBuYW1lOiBU
aGUgbmFtZSBvZiB0aGUgZWxlbWVudHMgdG8gZmluZC4KKworICAgICAgICA6VXNhZ2U6CisgICAg
ICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50c19ieV9uYW1lKCdmb28nKQorICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5OQU1FLCB2YWx1ZT1uYW1l
KQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV90YWdfbmFtZShzZWxmLCBuYW1lKToKKyAgICAg
ICAgIiIiCisgICAgICAgIEZpbmRzIGFuIGVsZW1lbnQgYnkgdGFnIG5hbWUuCisKKyAgICAgICAg
OkFyZ3M6CisgICAgICAgICAtIG5hbWU6IFRoZSB0YWcgbmFtZSBvZiB0aGUgZWxlbWVudCB0byBm
aW5kLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfdGFnX25hbWUoJ2ZvbycpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5k
X2VsZW1lbnQoYnk9QnkuVEFHX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVt
ZW50c19ieV90YWdfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmRz
IGVsZW1lbnRzIGJ5IHRhZyBuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBuYW1l
OiBUaGUgdGFnIG5hbWUgdGhlIHVzZSB3aGVuIGZpbmRpbmcgZWxlbWVudHMuCisKKyAgICAgICAg
OlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoJ2Zv
bycpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5
LlRBR19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9jbGFzc19u
YW1lKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgRmluZHMgYW4gZWxlbWVudCBi
eSBjbGFzcyBuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBuYW1lOiBUaGUgY2xh
c3MgbmFtZSBvZiB0aGUgZWxlbWVudCB0byBmaW5kLgorCisgICAgICAgIDpVc2FnZToKKyAgICAg
ICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfY2xhc3NfbmFtZSgnZm9vJykKKyAgICAgICAg
IiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5DTEFTU19OQU1FLCB2
YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZShzZWxmLCBu
YW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmRzIGVsZW1lbnRzIGJ5IGNsYXNzIG5hbWUu
CisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIG5hbWU6IFRoZSBjbGFzcyBuYW1lIG9mIHRo
ZSBlbGVtZW50cyB0byBmaW5kLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZl
ci5maW5kX2VsZW1lbnRzX2J5X2NsYXNzX25hbWUoJ2ZvbycpCisgICAgICAgICIiIgorICAgICAg
ICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUp
CisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nfc2VsZWN0
b3IpOgorICAgICAgICAiIiIKKyAgICAgICAgRmluZHMgYW4gZWxlbWVudCBieSBjc3Mgc2VsZWN0
b3IuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGNzc19zZWxlY3RvcjogVGhlIGNzcyBz
ZWxlY3RvciB0byB1c2Ugd2hlbiBmaW5kaW5nIGVsZW1lbnRzLgorCisgICAgICAgIDpVc2FnZToK
KyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCcjZm9vJykK
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5DU1Nf
U0VMRUNUT1IsIHZhbHVlPWNzc19zZWxlY3RvcikKKworICAgIGRlZiBmaW5kX2VsZW1lbnRzX2J5
X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nfc2VsZWN0b3IpOgorICAgICAgICAiIiIKKyAgICAgICAg
RmluZHMgZWxlbWVudHMgYnkgY3NzIHNlbGVjdG9yLgorCisgICAgICAgIDpBcmdzOgorICAgICAg
ICAgLSBjc3Nfc2VsZWN0b3I6IFRoZSBjc3Mgc2VsZWN0b3IgdG8gdXNlIHdoZW4gZmluZGluZyBl
bGVtZW50cy4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVt
ZW50c19ieV9jc3Nfc2VsZWN0b3IoJy5mb28nKQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu
IHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5DU1NfU0VMRUNUT1IsIHZhbHVlPWNzc19zZWxlY3Rv
cikKKworICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsICphcmdzKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFN5bmNocm9ub3VzbHkgRXhlY3V0ZXMgSmF2YVNjcmlwdCBpbiB0aGUg
Y3VycmVudCB3aW5kb3cvZnJhbWUuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHNjcmlw
dDogVGhlIEphdmFTY3JpcHQgdG8gZXhlY3V0ZS4KKyAgICAgICAgIC0gXCphcmdzOiBBbnkgYXBw
bGljYWJsZSBhcmd1bWVudHMgZm9yIHlvdXIgSmF2YVNjcmlwdC4KKworICAgICAgICA6VXNhZ2U6
CisgICAgICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ2RvY3VtZW50LnRpdGxlJykKKyAg
ICAgICAgIiIiCisgICAgICAgIGNvbnZlcnRlZF9hcmdzID0gbGlzdChhcmdzKQorICAgICAgICBj
b21tYW5kID0gTm9uZQorICAgICAgICBpZiBzZWxmLnczYzoKKyAgICAgICAgICAgIGNvbW1hbmQg
PSBDb21tYW5kLlczQ19FWEVDVVRFX1NDUklQVAorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
Y29tbWFuZCA9IENvbW1hbmQuRVhFQ1VURV9TQ1JJUFQKKworICAgICAgICByZXR1cm4gc2VsZi5l
eGVjdXRlKGNvbW1hbmQsIHsKKyAgICAgICAgICAgICdzY3JpcHQnOiBzY3JpcHQsCisgICAgICAg
ICAgICAnYXJncyc6IGNvbnZlcnRlZF9hcmdzfSlbJ3ZhbHVlJ10KKworICAgIGRlZiBleGVjdXRl
X2FzeW5jX3NjcmlwdChzZWxmLCBzY3JpcHQsICphcmdzKToKKyAgICAgICAgIiIiCisgICAgICAg
IEFzeW5jaHJvbm91c2x5IEV4ZWN1dGVzIEphdmFTY3JpcHQgaW4gdGhlIGN1cnJlbnQgd2luZG93
L2ZyYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBzY3JpcHQ6IFRoZSBKYXZhU2Ny
aXB0IHRvIGV4ZWN1dGUuCisgICAgICAgICAtIFwqYXJnczogQW55IGFwcGxpY2FibGUgYXJndW1l
bnRzIGZvciB5b3VyIEphdmFTY3JpcHQuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAg
ZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCdkb2N1bWVudC50aXRsZScpCisgICAgICAgICIi
IgorICAgICAgICBjb252ZXJ0ZWRfYXJncyA9IGxpc3QoYXJncykKKyAgICAgICAgaWYgc2VsZi53
M2M6CisgICAgICAgICAgICBjb21tYW5kID0gQ29tbWFuZC5XM0NfRVhFQ1VURV9TQ1JJUFRfQVNZ
TkMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbW1hbmQgPSBDb21tYW5kLkVYRUNVVEVf
QVNZTkNfU0NSSVBUCisKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShjb21tYW5kLCB7Cisg
ICAgICAgICAgICAnc2NyaXB0Jzogc2NyaXB0LAorICAgICAgICAgICAgJ2FyZ3MnOiBjb252ZXJ0
ZWRfYXJnc30pWyd2YWx1ZSddCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3VycmVudF91cmwo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBVUkwgb2YgdGhlIGN1cnJlbnQg
cGFnZS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuY3VycmVudF91cmwK
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfQ1VS
UkVOVF9VUkwpWyd2YWx1ZSddCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFnZV9zb3VyY2Uo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBzb3VyY2Ugb2YgdGhlIGN1cnJl
bnQgcGFnZS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIucGFnZV9zb3Vy
Y2UKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRf
UEFHRV9TT1VSQ0UpWyd2YWx1ZSddCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgICIi
IgorICAgICAgICBDbG9zZXMgdGhlIGN1cnJlbnQgd2luZG93LgorCisgICAgICAgIDpVc2FnZToK
KyAgICAgICAgICAgIGRyaXZlci5jbG9zZSgpCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmV4
ZWN1dGUoQ29tbWFuZC5DTE9TRSkKKworICAgIGRlZiBxdWl0KHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgUXVpdHMgdGhlIGRyaXZlciBhbmQgY2xvc2VzIGV2ZXJ5IGFzc29jaWF0ZWQgd2lu
ZG93LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5xdWl0KCkKKyAgICAg
ICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlFV
SVQpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLnN0b3BfY2xpZW50KCkKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjdXJyZW50X3dpbmRvd19oYW5kbGUoc2VsZik6CisgICAg
ICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBoYW5kbGUgb2YgdGhlIGN1cnJlbnQgd2luZG93
LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5jdXJyZW50X3dpbmRvd19o
YW5kbGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYudzNjOgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLlczQ19HRVRfQ1VSUkVOVF9XSU5ET1dfSEFORExFKVsn
dmFsdWUnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShD
b21tYW5kLkdFVF9DVVJSRU5UX1dJTkRPV19IQU5ETEUpWyd2YWx1ZSddCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgd2luZG93X2hhbmRsZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBS
ZXR1cm5zIHRoZSBoYW5kbGVzIG9mIGFsbCB3aW5kb3dzIHdpdGhpbiB0aGUgY3VycmVudCBzZXNz
aW9uLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci53aW5kb3dfaGFuZGxl
cworICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi53M2M6CisgICAgICAgICAgICByZXR1cm4g
c2VsZi5leGVjdXRlKENvbW1hbmQuVzNDX0dFVF9XSU5ET1dfSEFORExFUylbJ3ZhbHVlJ10KKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRf
V0lORE9XX0hBTkRMRVMpWyd2YWx1ZSddCisKKyAgICBkZWYgbWF4aW1pemVfd2luZG93KHNlbGYp
OgorICAgICAgICAiIiIKKyAgICAgICAgTWF4aW1pemVzIHRoZSBjdXJyZW50IHdpbmRvdyB0aGF0
IHdlYmRyaXZlciBpcyB1c2luZworICAgICAgICAiIiIKKyAgICAgICAgY29tbWFuZCA9IENvbW1h
bmQuTUFYSU1JWkVfV0lORE9XCisgICAgICAgIGlmIHNlbGYudzNjOgorICAgICAgICAgICAgY29t
bWFuZCA9IENvbW1hbmQuVzNDX01BWElNSVpFX1dJTkRPVworICAgICAgICBzZWxmLmV4ZWN1dGUo
Y29tbWFuZCwgeyJ3aW5kb3dIYW5kbGUiOiAiY3VycmVudCJ9KQorCisgICAgZGVmIGZ1bGxzY3Jl
ZW5fd2luZG93KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgSW52b2tlcyB0aGUgd2luZG93
IG1hbmFnZXItc3BlY2lmaWMgJ2Z1bGwgc2NyZWVuJyBvcGVyYXRpb24KKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLkZVTExTQ1JFRU5fV0lORE9XKQorCisgICAgZGVm
IG1pbmltaXplX3dpbmRvdyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEludm9rZXMgdGhl
IHdpbmRvdyBtYW5hZ2VyLXNwZWNpZmljICdtaW5pbWl6ZScgb3BlcmF0aW9uCisgICAgICAgICIi
IgorICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5NSU5JTUlaRV9XSU5ET1cpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgc3dpdGNoX3RvKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
c3dpdGNoX3RvCisKKyAgICAjIFRhcmdldCBMb2NhdG9ycworICAgIGRlZiBzd2l0Y2hfdG9fYWN0
aXZlX2VsZW1lbnQoc2VsZik6CisgICAgICAgICIiIiBEZXByZWNhdGVkIHVzZSBkcml2ZXIuc3dp
dGNoX3RvLmFjdGl2ZV9lbGVtZW50CisgICAgICAgICIiIgorICAgICAgICB3YXJuaW5ncy53YXJu
KCJ1c2UgZHJpdmVyLnN3aXRjaF90by5hY3RpdmVfZWxlbWVudCBpbnN0ZWFkIiwgRGVwcmVjYXRp
b25XYXJuaW5nKQorICAgICAgICByZXR1cm4gc2VsZi5fc3dpdGNoX3RvLmFjdGl2ZV9lbGVtZW50
CisKKyAgICBkZWYgc3dpdGNoX3RvX3dpbmRvdyhzZWxmLCB3aW5kb3dfbmFtZSk6CisgICAgICAg
ICIiIiBEZXByZWNhdGVkIHVzZSBkcml2ZXIuc3dpdGNoX3RvLndpbmRvdworICAgICAgICAiIiIK
KyAgICAgICAgd2FybmluZ3Mud2FybigidXNlIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93IGluc3Rl
YWQiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgIHNlbGYuX3N3aXRjaF90by53aW5kb3co
d2luZG93X25hbWUpCisKKyAgICBkZWYgc3dpdGNoX3RvX2ZyYW1lKHNlbGYsIGZyYW1lX3JlZmVy
ZW5jZSk6CisgICAgICAgICIiIiBEZXByZWNhdGVkIHVzZSBkcml2ZXIuc3dpdGNoX3RvLmZyYW1l
CisgICAgICAgICIiIgorICAgICAgICB3YXJuaW5ncy53YXJuKCJ1c2UgZHJpdmVyLnN3aXRjaF90
by5mcmFtZSBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICBzZWxmLl9zd2l0
Y2hfdG8uZnJhbWUoZnJhbWVfcmVmZXJlbmNlKQorCisgICAgZGVmIHN3aXRjaF90b19kZWZhdWx0
X2NvbnRlbnQoc2VsZik6CisgICAgICAgICIiIiBEZXByZWNhdGVkIHVzZSBkcml2ZXIuc3dpdGNo
X3RvLmRlZmF1bHRfY29udGVudAorICAgICAgICAiIiIKKyAgICAgICAgd2FybmluZ3Mud2Fybigi
dXNlIGRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50IGluc3RlYWQiLCBEZXByZWNhdGlv
bldhcm5pbmcpCisgICAgICAgIHNlbGYuX3N3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorCisg
ICAgZGVmIHN3aXRjaF90b19hbGVydChzZWxmKToKKyAgICAgICAgIiIiIERlcHJlY2F0ZWQgdXNl
IGRyaXZlci5zd2l0Y2hfdG8uYWxlcnQKKyAgICAgICAgIiIiCisgICAgICAgIHdhcm5pbmdzLndh
cm4oInVzZSBkcml2ZXIuc3dpdGNoX3RvLmFsZXJ0IGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5p
bmcpCisgICAgICAgIHJldHVybiBzZWxmLl9zd2l0Y2hfdG8uYWxlcnQKKworICAgICMgTmF2aWdh
dGlvbgorICAgIGRlZiBiYWNrKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR29lcyBvbmUg
c3RlcCBiYWNrd2FyZCBpbiB0aGUgYnJvd3NlciBoaXN0b3J5LgorCisgICAgICAgIDpVc2FnZToK
KyAgICAgICAgICAgIGRyaXZlci5iYWNrKCkKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXhl
Y3V0ZShDb21tYW5kLkdPX0JBQ0spCisKKyAgICBkZWYgZm9yd2FyZChzZWxmKToKKyAgICAgICAg
IiIiCisgICAgICAgIEdvZXMgb25lIHN0ZXAgZm9yd2FyZCBpbiB0aGUgYnJvd3NlciBoaXN0b3J5
LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5mb3J3YXJkKCkKKyAgICAg
ICAgIiIiCisgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLkdPX0ZPUldBUkQpCisKKyAgICBk
ZWYgcmVmcmVzaChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlZnJlc2hlcyB0aGUgY3Vy
cmVudCBwYWdlLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5yZWZyZXNo
KCkKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlJFRlJFU0gpCisK
KyAgICAjIE9wdGlvbnMKKyAgICBkZWYgZ2V0X2Nvb2tpZXMoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBSZXR1cm5zIGEgc2V0IG9mIGRpY3Rpb25hcmllcywgY29ycmVzcG9uZGluZyB0byBj
b29raWVzIHZpc2libGUgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbi4KKworICAgICAgICA6VXNhZ2U6
CisgICAgICAgICAgICBkcml2ZXIuZ2V0X2Nvb2tpZXMoKQorICAgICAgICAiIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLkdFVF9BTExfQ09PS0lFUylbJ3ZhbHVlJ10KKwor
ICAgIGRlZiBnZXRfY29va2llKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0
IGEgc2luZ2xlIGNvb2tpZSBieSBuYW1lLiBSZXR1cm5zIHRoZSBjb29raWUgaWYgZm91bmQsIE5v
bmUgaWYgbm90LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5nZXRfY29v
a2llKCdteV9jb29raWUnKQorICAgICAgICAiIiIKKyAgICAgICAgY29va2llcyA9IHNlbGYuZ2V0
X2Nvb2tpZXMoKQorICAgICAgICBmb3IgY29va2llIGluIGNvb2tpZXM6CisgICAgICAgICAgICBp
ZiBjb29raWVbJ25hbWUnXSA9PSBuYW1lOgorICAgICAgICAgICAgICAgIHJldHVybiBjb29raWUK
KyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBkZWxldGVfY29va2llKHNlbGYsIG5hbWUp
OgorICAgICAgICAiIiIKKyAgICAgICAgRGVsZXRlcyBhIHNpbmdsZSBjb29raWUgd2l0aCB0aGUg
Z2l2ZW4gbmFtZS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZGVsZXRl
X2Nvb2tpZSgnbXlfY29va2llJykKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXhlY3V0ZShD
b21tYW5kLkRFTEVURV9DT09LSUUsIHsnbmFtZSc6IG5hbWV9KQorCisgICAgZGVmIGRlbGV0ZV9h
bGxfY29va2llcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIERlbGV0ZSBhbGwgY29va2ll
cyBpbiB0aGUgc2NvcGUgb2YgdGhlIHNlc3Npb24uCisKKyAgICAgICAgOlVzYWdlOgorICAgICAg
ICAgICAgZHJpdmVyLmRlbGV0ZV9hbGxfY29va2llcygpCisgICAgICAgICIiIgorICAgICAgICBz
ZWxmLmV4ZWN1dGUoQ29tbWFuZC5ERUxFVEVfQUxMX0NPT0tJRVMpCisKKyAgICBkZWYgYWRkX2Nv
b2tpZShzZWxmLCBjb29raWVfZGljdCk6CisgICAgICAgICIiIgorICAgICAgICBBZGRzIGEgY29v
a2llIHRvIHlvdXIgY3VycmVudCBzZXNzaW9uLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBjb29raWVfZGljdDogQSBkaWN0aW9uYXJ5IG9iamVjdCwgd2l0aCByZXF1aXJlZCBrZXlzIC0g
Im5hbWUiIGFuZCAidmFsdWUiOworICAgICAgICAgICAgb3B0aW9uYWwga2V5cyAtICJwYXRoIiwg
ImRvbWFpbiIsICJzZWN1cmUiLCAiZXhwaXJ5IgorCisgICAgICAgIFVzYWdlOgorICAgICAgICAg
ICAgZHJpdmVyLmFkZF9jb29raWUoeyduYW1lJyA6ICdmb28nLCAndmFsdWUnIDogJ2Jhcid9KQor
ICAgICAgICAgICAgZHJpdmVyLmFkZF9jb29raWUoeyduYW1lJyA6ICdmb28nLCAndmFsdWUnIDog
J2JhcicsICdwYXRoJyA6ICcvJ30pCisgICAgICAgICAgICBkcml2ZXIuYWRkX2Nvb2tpZSh7J25h
bWUnIDogJ2ZvbycsICd2YWx1ZScgOiAnYmFyJywgJ3BhdGgnIDogJy8nLCAnc2VjdXJlJzpUcnVl
fSkKKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQuQUREX0NPT0tJ
RSwgeydjb29raWUnOiBjb29raWVfZGljdH0pCisKKyAgICAjIFRpbWVvdXRzCisgICAgZGVmIGlt
cGxpY2l0bHlfd2FpdChzZWxmLCB0aW1lX3RvX3dhaXQpOgorICAgICAgICAiIiIKKyAgICAgICAg
U2V0cyBhIHN0aWNreSB0aW1lb3V0IHRvIGltcGxpY2l0bHkgd2FpdCBmb3IgYW4gZWxlbWVudCB0
byBiZSBmb3VuZCwKKyAgICAgICAgICAgb3IgYSBjb21tYW5kIHRvIGNvbXBsZXRlLiBUaGlzIG1l
dGhvZCBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmUKKyAgICAgICAgICAgdGltZSBwZXIgc2Vz
c2lvbi4gVG8gc2V0IHRoZSB0aW1lb3V0IGZvciBjYWxscyB0bworICAgICAgICAgICBleGVjdXRl
X2FzeW5jX3NjcmlwdCwgc2VlIHNldF9zY3JpcHRfdGltZW91dC4KKworICAgICAgICA6QXJnczoK
KyAgICAgICAgIC0gdGltZV90b193YWl0OiBBbW91bnQgb2YgdGltZSB0byB3YWl0IChpbiBzZWNv
bmRzKQorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5pbXBsaWNpdGx5X3dh
aXQoMzApCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLnczYzoKKyAgICAgICAgICAgIHNl
bGYuZXhlY3V0ZShDb21tYW5kLlNFVF9USU1FT1VUUywgeworICAgICAgICAgICAgICAgICdpbXBs
aWNpdCc6IGludChmbG9hdCh0aW1lX3RvX3dhaXQpICogMTAwMCl9KQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQuSU1QTElDSVRfV0FJVCwgeworICAgICAg
ICAgICAgICAgICdtcyc6IGZsb2F0KHRpbWVfdG9fd2FpdCkgKiAxMDAwfSkKKworICAgIGRlZiBz
ZXRfc2NyaXB0X3RpbWVvdXQoc2VsZiwgdGltZV90b193YWl0KToKKyAgICAgICAgIiIiCisgICAg
ICAgIFNldCB0aGUgYW1vdW50IG9mIHRpbWUgdGhhdCB0aGUgc2NyaXB0IHNob3VsZCB3YWl0IGR1
cmluZyBhbgorICAgICAgICAgICBleGVjdXRlX2FzeW5jX3NjcmlwdCBjYWxsIGJlZm9yZSB0aHJv
d2luZyBhbiBlcnJvci4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdGltZV90b193YWl0
OiBUaGUgYW1vdW50IG9mIHRpbWUgdG8gd2FpdCAoaW4gc2Vjb25kcykKKworICAgICAgICA6VXNh
Z2U6CisgICAgICAgICAgICBkcml2ZXIuc2V0X3NjcmlwdF90aW1lb3V0KDMwKQorICAgICAgICAi
IiIKKyAgICAgICAgaWYgc2VsZi53M2M6CisgICAgICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFu
ZC5TRVRfVElNRU9VVFMsIHsKKyAgICAgICAgICAgICAgICAnc2NyaXB0JzogaW50KGZsb2F0KHRp
bWVfdG9fd2FpdCkgKiAxMDAwKX0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmV4
ZWN1dGUoQ29tbWFuZC5TRVRfU0NSSVBUX1RJTUVPVVQsIHsKKyAgICAgICAgICAgICAgICAnbXMn
OiBmbG9hdCh0aW1lX3RvX3dhaXQpICogMTAwMH0pCisKKyAgICBkZWYgc2V0X3BhZ2VfbG9hZF90
aW1lb3V0KHNlbGYsIHRpbWVfdG9fd2FpdCk6CisgICAgICAgICIiIgorICAgICAgICBTZXQgdGhl
IGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgZm9yIGEgcGFnZSBsb2FkIHRvIGNvbXBsZXRlCisgICAg
ICAgICAgIGJlZm9yZSB0aHJvd2luZyBhbiBlcnJvci4KKworICAgICAgICA6QXJnczoKKyAgICAg
ICAgIC0gdGltZV90b193YWl0OiBUaGUgYW1vdW50IG9mIHRpbWUgdG8gd2FpdAorCisgICAgICAg
IDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5zZXRfcGFnZV9sb2FkX3RpbWVvdXQoMzApCisg
ICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFu
ZC5TRVRfVElNRU9VVFMsIHsKKyAgICAgICAgICAgICAgICAncGFnZUxvYWQnOiBpbnQoZmxvYXQo
dGltZV90b193YWl0KSAqIDEwMDApfSkKKyAgICAgICAgZXhjZXB0IFdlYkRyaXZlckV4Y2VwdGlv
bjoKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlNFVF9USU1FT1VUUywgeworICAg
ICAgICAgICAgICAgICdtcyc6IGZsb2F0KHRpbWVfdG9fd2FpdCkgKiAxMDAwLAorICAgICAgICAg
ICAgICAgICd0eXBlJzogJ3BhZ2UgbG9hZCd9KQorCisgICAgZGVmIGZpbmRfZWxlbWVudChzZWxm
LCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICAnUHJpdmF0ZScg
bWV0aG9kIHVzZWQgYnkgdGhlIGZpbmRfZWxlbWVudF9ieV8qIG1ldGhvZHMuCisKKyAgICAgICAg
OlVzYWdlOgorICAgICAgICAgICAgVXNlIHRoZSBjb3JyZXNwb25kaW5nIGZpbmRfZWxlbWVudF9i
eV8qIGluc3RlYWQgb2YgdGhpcy4KKworICAgICAgICA6cnR5cGU6IFdlYkVsZW1lbnQKKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIHNlbGYudzNjOgorICAgICAgICAgICAgaWYgYnkgPT0gQnkuSUQ6
CisgICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VMRUNUT1IKKyAgICAgICAgICAgICAgICB2
YWx1ZSA9ICdbaWQ9IiVzIl0nICUgdmFsdWUKKyAgICAgICAgICAgIGVsaWYgYnkgPT0gQnkuVEFH
X05BTUU6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VMRUNUT1IKKyAgICAgICAgICAg
IGVsaWYgYnkgPT0gQnkuQ0xBU1NfTkFNRToKKyAgICAgICAgICAgICAgICBieSA9IEJ5LkNTU19T
RUxFQ1RPUgorICAgICAgICAgICAgICAgIHZhbHVlID0gIi4lcyIgJSB2YWx1ZQorICAgICAgICAg
ICAgZWxpZiBieSA9PSBCeS5OQU1FOgorICAgICAgICAgICAgICAgIGJ5ID0gQnkuQ1NTX1NFTEVD
VE9SCisgICAgICAgICAgICAgICAgdmFsdWUgPSAnW25hbWU9IiVzIl0nICUgdmFsdWUKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLkZJTkRfRUxFTUVOVCwgeworICAgICAgICAg
ICAgJ3VzaW5nJzogYnksCisgICAgICAgICAgICAndmFsdWUnOiB2YWx1ZX0pWyd2YWx1ZSddCisK
KyAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6CisgICAg
ICAgICIiIgorICAgICAgICAnUHJpdmF0ZScgbWV0aG9kIHVzZWQgYnkgdGhlIGZpbmRfZWxlbWVu
dHNfYnlfKiBtZXRob2RzLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIFVzZSB0aGUg
Y29ycmVzcG9uZGluZyBmaW5kX2VsZW1lbnRzX2J5XyogaW5zdGVhZCBvZiB0aGlzLgorCisgICAg
ICAgIDpydHlwZTogbGlzdCBvZiBXZWJFbGVtZW50CisgICAgICAgICIiIgorICAgICAgICBpZiBz
ZWxmLnczYzoKKyAgICAgICAgICAgIGlmIGJ5ID09IEJ5LklEOgorICAgICAgICAgICAgICAgIGJ5
ID0gQnkuQ1NTX1NFTEVDVE9SCisgICAgICAgICAgICAgICAgdmFsdWUgPSAnW2lkPSIlcyJdJyAl
IHZhbHVlCisgICAgICAgICAgICBlbGlmIGJ5ID09IEJ5LlRBR19OQU1FOgorICAgICAgICAgICAg
ICAgIGJ5ID0gQnkuQ1NTX1NFTEVDVE9SCisgICAgICAgICAgICBlbGlmIGJ5ID09IEJ5LkNMQVNT
X05BTUU6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VMRUNUT1IKKyAgICAgICAgICAg
ICAgICB2YWx1ZSA9ICIuJXMiICUgdmFsdWUKKyAgICAgICAgICAgIGVsaWYgYnkgPT0gQnkuTkFN
RToKKyAgICAgICAgICAgICAgICBieSA9IEJ5LkNTU19TRUxFQ1RPUgorICAgICAgICAgICAgICAg
IHZhbHVlID0gJ1tuYW1lPSIlcyJdJyAlIHZhbHVlCisKKyAgICAgICAgIyBSZXR1cm4gZW1wdHkg
bGlzdCBpZiBkcml2ZXIgcmV0dXJucyBudWxsCisgICAgICAgICMgU2VlIGh0dHBzOi8vZ2l0aHVi
LmNvbS9TZWxlbml1bUhRL3NlbGVuaXVtL2lzc3Vlcy80NTU1CisgICAgICAgIHJldHVybiBzZWxm
LmV4ZWN1dGUoQ29tbWFuZC5GSU5EX0VMRU1FTlRTLCB7CisgICAgICAgICAgICAndXNpbmcnOiBi
eSwKKyAgICAgICAgICAgICd2YWx1ZSc6IHZhbHVlfSlbJ3ZhbHVlJ10gb3IgW10KKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBkZXNpcmVkX2NhcGFiaWxpdGllcyhzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIHJldHVybnMgdGhlIGRyaXZlcnMgY3VycmVudCBkZXNpcmVkIGNhcGFiaWxpdGll
cyBiZWluZyB1c2VkCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5jYXBhYmlsaXRp
ZXMKKworICAgIGRlZiBnZXRfc2NyZWVuc2hvdF9hc19maWxlKHNlbGYsIGZpbGVuYW1lKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFNhdmVzIGEgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCB3aW5k
b3cgdG8gYSBQTkcgaW1hZ2UgZmlsZS4gUmV0dXJucworICAgICAgICAgICBGYWxzZSBpZiB0aGVy
ZSBpcyBhbnkgSU9FcnJvciwgZWxzZSByZXR1cm5zIFRydWUuIFVzZSBmdWxsIHBhdGhzIGluCisg
ICAgICAgICAgIHlvdXIgZmlsZW5hbWUuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGZp
bGVuYW1lOiBUaGUgZnVsbCBwYXRoIHlvdSB3aXNoIHRvIHNhdmUgeW91ciBzY3JlZW5zaG90IHRv
LiBUaGlzCisgICAgICAgICAgIHNob3VsZCBlbmQgd2l0aCBhIGAucG5nYCBleHRlbnNpb24uCisK
KyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmdldF9zY3JlZW5zaG90X2FzX2Zp
bGUoJy9TY3JlZW5zaG90cy9mb28ucG5nJykKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBm
aWxlbmFtZS5sb3dlcigpLmVuZHN3aXRoKCcucG5nJyk6CisgICAgICAgICAgICB3YXJuaW5ncy53
YXJuKCJuYW1lIHVzZWQgZm9yIHNhdmVkIHNjcmVlbnNob3QgZG9lcyBub3QgbWF0Y2ggZmlsZSAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlLiBJdCBzaG91bGQgZW5kIHdpdGggYSBg
LnBuZ2AgZXh0ZW5zaW9uIiwgVXNlcldhcm5pbmcpCisgICAgICAgIHBuZyA9IHNlbGYuZ2V0X3Nj
cmVlbnNob3RfYXNfcG5nKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBvcGVuKGZp
bGVuYW1lLCAnd2InKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUocG5nKQorICAgICAg
ICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgZGVsIHBuZworICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVm
IHNhdmVfc2NyZWVuc2hvdChzZWxmLCBmaWxlbmFtZSk6CisgICAgICAgICIiIgorICAgICAgICBT
YXZlcyBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgd2luZG93IHRvIGEgUE5HIGltYWdlIGZp
bGUuIFJldHVybnMKKyAgICAgICAgICAgRmFsc2UgaWYgdGhlcmUgaXMgYW55IElPRXJyb3IsIGVs
c2UgcmV0dXJucyBUcnVlLiBVc2UgZnVsbCBwYXRocyBpbgorICAgICAgICAgICB5b3VyIGZpbGVu
YW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBmaWxlbmFtZTogVGhlIGZ1bGwgcGF0
aCB5b3Ugd2lzaCB0byBzYXZlIHlvdXIgc2NyZWVuc2hvdCB0by4gVGhpcworICAgICAgICAgICBz
aG91bGQgZW5kIHdpdGggYSBgLnBuZ2AgZXh0ZW5zaW9uLgorCisgICAgICAgIDpVc2FnZToKKyAg
ICAgICAgICAgIGRyaXZlci5zYXZlX3NjcmVlbnNob3QoJy9TY3JlZW5zaG90cy9mb28ucG5nJykK
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmdldF9zY3JlZW5zaG90X2FzX2ZpbGUo
ZmlsZW5hbWUpCisKKyAgICBkZWYgZ2V0X3NjcmVlbnNob3RfYXNfcG5nKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgR2V0cyB0aGUgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCB3aW5kb3cg
YXMgYSBiaW5hcnkgZGF0YS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIu
Z2V0X3NjcmVlbnNob3RfYXNfcG5nKCkKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBiYXNl
NjQuYjY0ZGVjb2RlKHNlbGYuZ2V0X3NjcmVlbnNob3RfYXNfYmFzZTY0KCkuZW5jb2RlKCdhc2Np
aScpKQorCisgICAgZGVmIGdldF9zY3JlZW5zaG90X2FzX2Jhc2U2NChzZWxmKToKKyAgICAgICAg
IiIiCisgICAgICAgIEdldHMgdGhlIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgd2luZG93IGFz
IGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nCisgICAgICAgICAgIHdoaWNoIGlzIHVzZWZ1bCBpbiBl
bWJlZGRlZCBpbWFnZXMgaW4gSFRNTC4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBk
cml2ZXIuZ2V0X3NjcmVlbnNob3RfYXNfYmFzZTY0KCkKKyAgICAgICAgIiIiCisgICAgICAgIHJl
dHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5TQ1JFRU5TSE9UKVsndmFsdWUnXQorCisgICAgZGVm
IHNldF93aW5kb3dfc2l6ZShzZWxmLCB3aWR0aCwgaGVpZ2h0LCB3aW5kb3dIYW5kbGU9J2N1cnJl
bnQnKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2Yg
dGhlIGN1cnJlbnQgd2luZG93LiAod2luZG93LnJlc2l6ZVRvKQorCisgICAgICAgIDpBcmdzOgor
ICAgICAgICAgLSB3aWR0aDogdGhlIHdpZHRoIGluIHBpeGVscyB0byBzZXQgdGhlIHdpbmRvdyB0
bworICAgICAgICAgLSBoZWlnaHQ6IHRoZSBoZWlnaHQgaW4gcGl4ZWxzIHRvIHNldCB0aGUgd2lu
ZG93IHRvCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLnNldF93aW5kb3df
c2l6ZSg4MDAsNjAwKQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi53M2M6CisgICAgICAg
ICAgICBpZiB3aW5kb3dIYW5kbGUgIT0gJ2N1cnJlbnQnOgorICAgICAgICAgICAgICAgIHdhcm5p
bmdzLndhcm4oIk9ubHkgJ2N1cnJlbnQnIHdpbmRvdyBpcyBzdXBwb3J0ZWQgZm9yIFczQyBjb21w
YXRpYmlsZSBicm93c2Vycy4iKQorICAgICAgICAgICAgc2VsZi5zZXRfd2luZG93X3JlY3Qod2lk
dGg9aW50KHdpZHRoKSwgaGVpZ2h0PWludChoZWlnaHQpKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQuU0VUX1dJTkRPV19TSVpFLCB7CisgICAgICAgICAg
ICAgICAgJ3dpZHRoJzogaW50KHdpZHRoKSwKKyAgICAgICAgICAgICAgICAnaGVpZ2h0JzogaW50
KGhlaWdodCksCisgICAgICAgICAgICAgICAgJ3dpbmRvd0hhbmRsZSc6IHdpbmRvd0hhbmRsZX0p
CisKKyAgICBkZWYgZ2V0X3dpbmRvd19zaXplKHNlbGYsIHdpbmRvd0hhbmRsZT0nY3VycmVudCcp
OgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUg
Y3VycmVudCB3aW5kb3cuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmdl
dF93aW5kb3dfc2l6ZSgpCisgICAgICAgICIiIgorICAgICAgICBjb21tYW5kID0gQ29tbWFuZC5H
RVRfV0lORE9XX1NJWkUKKyAgICAgICAgaWYgc2VsZi53M2M6CisgICAgICAgICAgICBpZiB3aW5k
b3dIYW5kbGUgIT0gJ2N1cnJlbnQnOgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIk9u
bHkgJ2N1cnJlbnQnIHdpbmRvdyBpcyBzdXBwb3J0ZWQgZm9yIFczQyBjb21wYXRpYmlsZSBicm93
c2Vycy4iKQorICAgICAgICAgICAgc2l6ZSA9IHNlbGYuZ2V0X3dpbmRvd19yZWN0KCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNpemUgPSBzZWxmLmV4ZWN1dGUoY29tbWFuZCwgeyd3aW5k
b3dIYW5kbGUnOiB3aW5kb3dIYW5kbGV9KQorCisgICAgICAgIGlmIHNpemUuZ2V0KCd2YWx1ZScs
IE5vbmUpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2l6ZSA9IHNpemVbJ3ZhbHVlJ10KKwor
ICAgICAgICByZXR1cm4ge2s6IHNpemVba10gZm9yIGsgaW4gKCd3aWR0aCcsICdoZWlnaHQnKX0K
KworICAgIGRlZiBzZXRfd2luZG93X3Bvc2l0aW9uKHNlbGYsIHgsIHksIHdpbmRvd0hhbmRsZT0n
Y3VycmVudCcpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgeCx5IHBvc2l0aW9uIG9m
IHRoZSBjdXJyZW50IHdpbmRvdy4gKHdpbmRvdy5tb3ZlVG8pCisKKyAgICAgICAgOkFyZ3M6Cisg
ICAgICAgICAtIHg6IHRoZSB4LWNvb3JkaW5hdGUgaW4gcGl4ZWxzIHRvIHNldCB0aGUgd2luZG93
IHBvc2l0aW9uCisgICAgICAgICAtIHk6IHRoZSB5LWNvb3JkaW5hdGUgaW4gcGl4ZWxzIHRvIHNl
dCB0aGUgd2luZG93IHBvc2l0aW9uCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJp
dmVyLnNldF93aW5kb3dfcG9zaXRpb24oMCwwKQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2Vs
Zi53M2M6CisgICAgICAgICAgICBpZiB3aW5kb3dIYW5kbGUgIT0gJ2N1cnJlbnQnOgorICAgICAg
ICAgICAgICAgIHdhcm5pbmdzLndhcm4oIk9ubHkgJ2N1cnJlbnQnIHdpbmRvdyBpcyBzdXBwb3J0
ZWQgZm9yIFczQyBjb21wYXRpYmlsZSBicm93c2Vycy4iKQorICAgICAgICAgICAgcmV0dXJuIHNl
bGYuc2V0X3dpbmRvd19yZWN0KHg9aW50KHgpLCB5PWludCh5KSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlNFVF9XSU5ET1dfUE9TSVRJT04sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneCc6
IGludCh4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3knOiBpbnQoeSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd3aW5kb3dIYW5kbGUnOiB3aW5kb3dIYW5kbGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICB9KQorCisgICAgZGVmIGdldF93aW5kb3dfcG9zaXRpb24o
c2VsZiwgd2luZG93SGFuZGxlPSdjdXJyZW50Jyk6CisgICAgICAgICIiIgorICAgICAgICBHZXRz
IHRoZSB4LHkgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgd2luZG93LgorCisgICAgICAgIDpVc2Fn
ZToKKyAgICAgICAgICAgIGRyaXZlci5nZXRfd2luZG93X3Bvc2l0aW9uKCkKKyAgICAgICAgIiIi
CisgICAgICAgIGlmIHNlbGYudzNjOgorICAgICAgICAgICAgaWYgd2luZG93SGFuZGxlICE9ICdj
dXJyZW50JzoKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJPbmx5ICdjdXJyZW50JyB3
aW5kb3cgaXMgc3VwcG9ydGVkIGZvciBXM0MgY29tcGF0aWJpbGUgYnJvd3NlcnMuIikKKyAgICAg
ICAgICAgIHBvc2l0aW9uID0gc2VsZi5nZXRfd2luZG93X3JlY3QoKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcG9zaXRpb24gPSBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfV0lORE9XX1BP
U0lUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyd3aW5kb3dIYW5k
bGUnOiB3aW5kb3dIYW5kbGV9KVsndmFsdWUnXQorCisgICAgICAgIHJldHVybiB7azogcG9zaXRp
b25ba10gZm9yIGsgaW4gKCd4JywgJ3knKX0KKworICAgIGRlZiBnZXRfd2luZG93X3JlY3Qoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSB4LCB5IGNvb3JkaW5hdGVzIG9mIHRo
ZSB3aW5kb3cgYXMgd2VsbCBhcyBoZWlnaHQgYW5kIHdpZHRoIG9mCisgICAgICAgIHRoZSBjdXJy
ZW50IHdpbmRvdy4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZ2V0X3dp
bmRvd19yZWN0KCkKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29t
bWFuZC5HRVRfV0lORE9XX1JFQ1QpWyd2YWx1ZSddCisKKyAgICBkZWYgc2V0X3dpbmRvd19yZWN0
KHNlbGYsIHg9Tm9uZSwgeT1Ob25lLCB3aWR0aD1Ob25lLCBoZWlnaHQ9Tm9uZSk6CisgICAgICAg
ICIiIgorICAgICAgICBTZXRzIHRoZSB4LCB5IGNvb3JkaW5hdGVzIG9mIHRoZSB3aW5kb3cgYXMg
d2VsbCBhcyBoZWlnaHQgYW5kIHdpZHRoIG9mCisgICAgICAgIHRoZSBjdXJyZW50IHdpbmRvdy4K
KworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuc2V0X3dpbmRvd19yZWN0KHg9
MTAsIHk9MTApCisgICAgICAgICAgICBkcml2ZXIuc2V0X3dpbmRvd19yZWN0KHdpZHRoPTEwMCwg
aGVpZ2h0PTIwMCkKKyAgICAgICAgICAgIGRyaXZlci5zZXRfd2luZG93X3JlY3QoeD0xMCwgeT0x
MCwgd2lkdGg9MTAwLCBoZWlnaHQ9MjAwKQorICAgICAgICAiIiIKKyAgICAgICAgaWYgKHggaXMg
Tm9uZSBhbmQgeSBpcyBOb25lKSBhbmQgKGhlaWdodCBpcyBOb25lIGFuZCB3aWR0aCBpcyBOb25l
KToKKyAgICAgICAgICAgIHJhaXNlIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigieCBhbmQgeSBv
ciBoZWlnaHQgYW5kIHdpZHRoIG5lZWQgdmFsdWVzIikKKworICAgICAgICByZXR1cm4gc2VsZi5l
eGVjdXRlKENvbW1hbmQuU0VUX1dJTkRPV19SRUNULCB7IngiOiB4LCAieSI6IHksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGgiOiB3
aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJoZWlnaHQiOiBoZWlnaHR9KVsndmFsdWUnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IGZpbGVfZGV0ZWN0b3Ioc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9maWxlX2RldGVjdG9y
CisKKyAgICBAZmlsZV9kZXRlY3Rvci5zZXR0ZXIKKyAgICBkZWYgZmlsZV9kZXRlY3RvcihzZWxm
LCBkZXRlY3Rvcik6CisgICAgICAgICIiIgorICAgICAgICBTZXQgdGhlIGZpbGUgZGV0ZWN0b3Ig
dG8gYmUgdXNlZCB3aGVuIHNlbmRpbmcga2V5Ym9hcmQgaW5wdXQuCisgICAgICAgIEJ5IGRlZmF1
bHQsIHRoaXMgaXMgc2V0IHRvIGEgZmlsZSBkZXRlY3RvciB0aGF0IGRvZXMgbm90aGluZy4KKwor
ICAgICAgICBzZWUgRmlsZURldGVjdG9yCisgICAgICAgIHNlZSBMb2NhbEZpbGVEZXRlY3Rvcgor
ICAgICAgICBzZWUgVXNlbGVzc0ZpbGVEZXRlY3RvcgorCisgICAgICAgIDpBcmdzOgorICAgICAg
ICAgLSBkZXRlY3RvcjogVGhlIGRldGVjdG9yIHRvIHVzZS4gTXVzdCBub3QgYmUgTm9uZS4KKyAg
ICAgICAgIiIiCisgICAgICAgIGlmIGRldGVjdG9yIGlzIE5vbmU6CisgICAgICAgICAgICByYWlz
ZSBXZWJEcml2ZXJFeGNlcHRpb24oIllvdSBtYXkgbm90IHNldCBhIGZpbGUgZGV0ZWN0b3IgdGhh
dCBpcyBudWxsIikKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZGV0ZWN0b3IsIEZpbGVEZXRl
Y3Rvcik6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkRldGVjdG9yIGhh
cyB0byBiZSBpbnN0YW5jZSBvZiBGaWxlRGV0ZWN0b3IiKQorICAgICAgICBzZWxmLl9maWxlX2Rl
dGVjdG9yID0gZGV0ZWN0b3IKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBvcmllbnRhdGlvbihz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldHMgdGhlIGN1cnJlbnQgb3JpZW50YXRpb24g
b2YgdGhlIGRldmljZQorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIG9yaWVudGF0aW9u
ID0gZHJpdmVyLm9yaWVudGF0aW9uCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5l
eGVjdXRlKENvbW1hbmQuR0VUX1NDUkVFTl9PUklFTlRBVElPTilbJ3ZhbHVlJ10KKworICAgIEBv
cmllbnRhdGlvbi5zZXR0ZXIKKyAgICBkZWYgb3JpZW50YXRpb24oc2VsZiwgdmFsdWUpOgorICAg
ICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgY3VycmVudCBvcmllbnRhdGlvbiBvZiB0aGUgZGV2
aWNlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBvcmllbnRhdGlvbiB0byBz
ZXQgaXQgdG8uCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLm9yaWVudGF0
aW9uID0gJ2xhbmRzY2FwZScKKyAgICAgICAgIiIiCisgICAgICAgIGFsbG93ZWRfdmFsdWVzID0g
WydMQU5EU0NBUEUnLCAnUE9SVFJBSVQnXQorICAgICAgICBpZiB2YWx1ZS51cHBlcigpIGluIGFs
bG93ZWRfdmFsdWVzOgorICAgICAgICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQuU0VUX1NDUkVF
Tl9PUklFTlRBVElPTiwgeydvcmllbnRhdGlvbic6IHZhbHVlfSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiWW91IGNhbiBvbmx5IHNldCB0aGUg
b3JpZW50YXRpb24gdG8gJ0xBTkRTQ0FQRScgYW5kICdQT1JUUkFJVCciKQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIGFwcGxpY2F0aW9uX2NhY2hlKHNlbGYpOgorICAgICAgICAiIiIgUmV0dXJu
cyBhIEFwcGxpY2F0aW9uQ2FjaGUgT2JqZWN0IHRvIGludGVyYWN0IHdpdGggdGhlIGJyb3dzZXIg
YXBwIGNhY2hlIiIiCisgICAgICAgIHJldHVybiBBcHBsaWNhdGlvbkNhY2hlKHNlbGYpCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgbG9nX3R5cGVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg
ICAgR2V0cyBhIGxpc3Qgb2YgdGhlIGF2YWlsYWJsZSBsb2cgdHlwZXMKKworICAgICAgICA6VXNh
Z2U6CisgICAgICAgICAgICBkcml2ZXIubG9nX3R5cGVzCisgICAgICAgICIiIgorICAgICAgICBy
ZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuR0VUX0FWQUlMQUJMRV9MT0dfVFlQRVMpWyd2YWx1
ZSddCisKKyAgICBkZWYgZ2V0X2xvZyhzZWxmLCBsb2dfdHlwZSk6CisgICAgICAgICIiIgorICAg
ICAgICBHZXRzIHRoZSBsb2cgZm9yIGEgZ2l2ZW4gbG9nIHR5cGUKKworICAgICAgICA6QXJnczoK
KyAgICAgICAgIC0gbG9nX3R5cGU6IHR5cGUgb2YgbG9nIHRoYXQgd2hpY2ggd2lsbCBiZSByZXR1
cm5lZAorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5nZXRfbG9nKCdicm93
c2VyJykKKyAgICAgICAgICAgIGRyaXZlci5nZXRfbG9nKCdkcml2ZXInKQorICAgICAgICAgICAg
ZHJpdmVyLmdldF9sb2coJ2NsaWVudCcpCisgICAgICAgICAgICBkcml2ZXIuZ2V0X2xvZygnc2Vy
dmVyJykKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5H
RVRfTE9HLCB7J3R5cGUnOiBsb2dfdHlwZX0pWyd2YWx1ZSddCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dl
YmVsZW1lbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVsZW1lbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmI4N2NjNTAwMTY4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJl
bGVtZW50LnB5CkBAIC0wLDAgKzEsNTU4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGJhc2U2NAoraW1wb3J0
IGhhc2hsaWIKK2ltcG9ydCBvcworaW1wb3J0IHBrZ3V0aWwKK2ltcG9ydCB3YXJuaW5ncworaW1w
b3J0IHppcGZpbGUKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2Vi
RHJpdmVyRXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0
IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMgaW1wb3J0IGtleXNfdG9f
dHlwaW5nCitmcm9tIC5jb21tYW5kIGltcG9ydCBDb21tYW5kCisKKyMgUHl0aG9uIDMgaW1wb3J0
cwordHJ5OgorICAgIHN0ciA9IGJhc2VzdHJpbmcKK2V4Y2VwdCBOYW1lRXJyb3I6CisgICAgcGFz
cworCit0cnk6CisgICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8gYXMgSU9TdHJlYW0K
K2V4Y2VwdCBJbXBvcnRFcnJvcjogICMgMysKKyAgICBmcm9tIGlvIGltcG9ydCBCeXRlc0lPIGFz
IElPU3RyZWFtCisKKyMgbm90IHJlbHlpbmcgb24gX19wYWNrYWdlX18gaGVyZSBhcyBpdCBjYW4g
YmUgYE5vbmVgIGluIHNvbWUgc2l0dWF0aW9ucyAoc2VlICM0NTU4KQorX3BrZyA9ICcuJy5qb2lu
KF9fbmFtZV9fLnNwbGl0KCcuJylbOi0xXSkKK2dldEF0dHJpYnV0ZV9qcyA9IHBrZ3V0aWwuZ2V0
X2RhdGEoX3BrZywgJ2dldEF0dHJpYnV0ZS5qcycpLmRlY29kZSgndXRmOCcpCitpc0Rpc3BsYXll
ZF9qcyA9IHBrZ3V0aWwuZ2V0X2RhdGEoX3BrZywgJ2lzRGlzcGxheWVkLmpzJykuZGVjb2RlKCd1
dGY4JykKKworCitjbGFzcyBXZWJFbGVtZW50KG9iamVjdCk6CisgICAgIiIiUmVwcmVzZW50cyBh
IERPTSBlbGVtZW50LgorCisgICAgR2VuZXJhbGx5LCBhbGwgaW50ZXJlc3Rpbmcgb3BlcmF0aW9u
cyB0aGF0IGludGVyYWN0IHdpdGggYSBkb2N1bWVudCB3aWxsIGJlCisgICAgcGVyZm9ybWVkIHRo
cm91Z2ggdGhpcyBpbnRlcmZhY2UuCisKKyAgICBBbGwgbWV0aG9kIGNhbGxzIHdpbGwgZG8gYSBm
cmVzaG5lc3MgY2hlY2sgdG8gZW5zdXJlIHRoYXQgdGhlIGVsZW1lbnQKKyAgICByZWZlcmVuY2Ug
aXMgc3RpbGwgdmFsaWQuICBUaGlzIGVzc2VudGlhbGx5IGRldGVybWluZXMgd2hldGhlciBvciBu
b3QgdGhlCisgICAgZWxlbWVudCBpcyBzdGlsbCBhdHRhY2hlZCB0byB0aGUgRE9NLiAgSWYgdGhp
cyB0ZXN0IGZhaWxzLCB0aGVuIGFuCisgICAgYGBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRp
b25gYCBpcyB0aHJvd24sIGFuZCBhbGwgZnV0dXJlIGNhbGxzIHRvIHRoaXMKKyAgICBpbnN0YW5j
ZSB3aWxsIGZhaWwuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBpZF8sIHcz
Yz1GYWxzZSk6CisgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAorICAgICAgICBzZWxmLl9p
ZCA9IGlkXworICAgICAgICBzZWxmLl93M2MgPSB3M2MKKworICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKKyAgICAgICAgcmV0dXJuICc8ezAuX19tb2R1bGVfX30uezAuX19uYW1lX199IChzZXNzaW9u
PSJ7MX0iLCBlbGVtZW50PSJ7Mn0iKT4nLmZvcm1hdCgKKyAgICAgICAgICAgIHR5cGUoc2VsZiks
IHNlbGYuX3BhcmVudC5zZXNzaW9uX2lkLCBzZWxmLl9pZCkKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiB0YWdfbmFtZShzZWxmKToKKyAgICAgICAgIiIiVGhpcyBlbGVtZW50J3MgYGB0YWdOYW1l
YGAgcHJvcGVydHkuIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1hbmQuR0VU
X0VMRU1FTlRfVEFHX05BTUUpWyd2YWx1ZSddCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGV4
dChzZWxmKToKKyAgICAgICAgIiIiVGhlIHRleHQgb2YgdGhlIGVsZW1lbnQuIiIiCisgICAgICAg
IHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1hbmQuR0VUX0VMRU1FTlRfVEVYVClbJ3ZhbHVlJ10K
KworICAgIGRlZiBjbGljayhzZWxmKToKKyAgICAgICAgIiIiQ2xpY2tzIHRoZSBlbGVtZW50LiIi
IgorICAgICAgICBzZWxmLl9leGVjdXRlKENvbW1hbmQuQ0xJQ0tfRUxFTUVOVCkKKworICAgIGRl
ZiBzdWJtaXQoc2VsZik6CisgICAgICAgICIiIlN1Ym1pdHMgYSBmb3JtLiIiIgorICAgICAgICBp
ZiBzZWxmLl93M2M6CisgICAgICAgICAgICBmb3JtID0gc2VsZi5maW5kX2VsZW1lbnQoQnkuWFBB
VEgsICIuL2FuY2VzdG9yLW9yLXNlbGY6OmZvcm0iKQorICAgICAgICAgICAgc2VsZi5fcGFyZW50
LmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAgICJ2YXIgZSA9IGFyZ3VtZW50c1swXS5v
d25lckRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpOyIKKyAgICAgICAgICAgICAgICAiZS5p
bml0RXZlbnQoJ3N1Ym1pdCcsIHRydWUsIHRydWUpOyIKKyAgICAgICAgICAgICAgICAiaWYgKGFy
Z3VtZW50c1swXS5kaXNwYXRjaEV2ZW50KGUpKSB7IGFyZ3VtZW50c1swXS5zdWJtaXQoKSB9Iiwg
Zm9ybSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5T
VUJNSVRfRUxFTUVOVCkKKworICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgIiIiQ2xlYXJz
IHRoZSB0ZXh0IGlmIGl0J3MgYSB0ZXh0IGVudHJ5IGVsZW1lbnQuIiIiCisgICAgICAgIHNlbGYu
X2V4ZWN1dGUoQ29tbWFuZC5DTEVBUl9FTEVNRU5UKQorCisgICAgZGVmIGdldF9wcm9wZXJ0eShz
ZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldHMgdGhlIGdpdmVuIHByb3BlcnR5
IG9mIHRoZSBlbGVtZW50LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSBuYW1lIC0g
TmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmUuCisKKyAgICAgICAgRXhhbXBsZTo6CisK
KyAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlICJhY3RpdmUiIENTUyBjbGFzcyBpcyBhcHBsaWVk
IHRvIGFuIGVsZW1lbnQuCisgICAgICAgICAgICB0ZXh0X2xlbmd0aCA9IHRhcmdldF9lbGVtZW50
LmdldF9wcm9wZXJ0eSgidGV4dF9sZW5ndGgiKQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5HRVRfRUxFTUVOVF9QUk9Q
RVJUWSwgeyJuYW1lIjogbmFtZX0pWyJ2YWx1ZSJdCisgICAgICAgIGV4Y2VwdCBXZWJEcml2ZXJF
eGNlcHRpb246CisgICAgICAgICAgICAjIGlmIHdlIGhpdCBhbiBlbmQgcG9pbnQgdGhhdCBkb2Vz
bnQgdW5kZXJzdGFuZCBnZXRFbGVtZW50UHJvcGVydHkgbGV0cyBmYWtlIGl0CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5wYXJlbnQuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBhcmd1bWVudHNbMF1b
YXJndW1lbnRzWzFdXScsIHNlbGYsIG5hbWUpCisKKyAgICBkZWYgZ2V0X2F0dHJpYnV0ZShzZWxm
LCBuYW1lKToKKyAgICAgICAgIiIiR2V0cyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9yIHByb3BlcnR5
IG9mIHRoZSBlbGVtZW50LgorCisgICAgICAgIFRoaXMgbWV0aG9kIHdpbGwgZmlyc3QgdHJ5IHRv
IHJldHVybiB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSB3aXRoIHRoZQorICAgICAgICBnaXZlbiBu
YW1lLiBJZiBhIHByb3BlcnR5IHdpdGggdGhhdCBuYW1lIGRvZXNuJ3QgZXhpc3QsIGl0IHJldHVy
bnMgdGhlCisgICAgICAgIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgd2l0aCB0aGUgc2FtZSBuYW1l
LiBJZiB0aGVyZSdzIG5vIGF0dHJpYnV0ZSB3aXRoCisgICAgICAgIHRoYXQgbmFtZSwgYGBOb25l
YGAgaXMgcmV0dXJuZWQuCisKKyAgICAgICAgVmFsdWVzIHdoaWNoIGFyZSBjb25zaWRlcmVkIHRy
dXRoeSwgdGhhdCBpcyBlcXVhbHMgInRydWUiIG9yICJmYWxzZSIsCisgICAgICAgIGFyZSByZXR1
cm5lZCBhcyBib29sZWFucy4gIEFsbCBvdGhlciBub24tYGBOb25lYGAgdmFsdWVzIGFyZSByZXR1
cm5lZAorICAgICAgICBhcyBzdHJpbmdzLiAgRm9yIGF0dHJpYnV0ZXMgb3IgcHJvcGVydGllcyB3
aGljaCBkbyBub3QgZXhpc3QsIGBgTm9uZWBgCisgICAgICAgIGlzIHJldHVybmVkLgorCisgICAg
ICAgIDpBcmdzOgorICAgICAgICAgICAgLSBuYW1lIC0gTmFtZSBvZiB0aGUgYXR0cmlidXRlL3By
b3BlcnR5IHRvIHJldHJpZXZlLgorCisgICAgICAgIEV4YW1wbGU6OgorCisgICAgICAgICAgICAj
IENoZWNrIGlmIHRoZSAiYWN0aXZlIiBDU1MgY2xhc3MgaXMgYXBwbGllZCB0byBhbiBlbGVtZW50
LgorICAgICAgICAgICAgaXNfYWN0aXZlID0gImFjdGl2ZSIgaW4gdGFyZ2V0X2VsZW1lbnQuZ2V0
X2F0dHJpYnV0ZSgiY2xhc3MiKQorCisgICAgICAgICIiIgorCisgICAgICAgIGF0dHJpYnV0ZVZh
bHVlID0gJycKKyAgICAgICAgaWYgc2VsZi5fdzNjOgorICAgICAgICAgICAgYXR0cmlidXRlVmFs
dWUgPSBzZWxmLnBhcmVudC5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgICAgICAgICAicmV0dXJu
ICglcykuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsiICUgZ2V0QXR0cmlidXRlX2pzLAorICAgICAg
ICAgICAgICAgIHNlbGYsIG5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXNwID0g
c2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX0FUVFJJQlVURSwgeyduYW1lJzogbmFt
ZX0pCisgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IHJlc3AuZ2V0KCd2YWx1ZScpCisgICAg
ICAgICAgICBpZiBhdHRyaWJ1dGVWYWx1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBp
ZiBuYW1lICE9ICd2YWx1ZScgYW5kIGF0dHJpYnV0ZVZhbHVlLmxvd2VyKCkgaW4gKCd0cnVlJywg
J2ZhbHNlJyk6CisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRl
VmFsdWUubG93ZXIoKQorICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWUKKworICAgIGRlZiBp
c19zZWxlY3RlZChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyB3aGV0aGVyIHRoZSBlbGVtZW50
IGlzIHNlbGVjdGVkLgorCisgICAgICAgIENhbiBiZSB1c2VkIHRvIGNoZWNrIGlmIGEgY2hlY2ti
b3ggb3IgcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5JU19FTEVNRU5UX1NFTEVDVEVEKVsndmFsdWUnXQor
CisgICAgZGVmIGlzX2VuYWJsZWQoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgd2hldGhlciB0
aGUgZWxlbWVudCBpcyBlbmFibGVkLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0ZShD
b21tYW5kLklTX0VMRU1FTlRfRU5BQkxFRClbJ3ZhbHVlJ10KKworICAgIGRlZiBmaW5kX2VsZW1l
bnRfYnlfaWQoc2VsZiwgaWRfKToKKyAgICAgICAgIiIiRmluZHMgZWxlbWVudCB3aXRoaW4gdGhp
cyBlbGVtZW50J3MgY2hpbGRyZW4gYnkgSUQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAg
ICAtIGlkXF8gLSBJRCBvZiBjaGlsZCBlbGVtZW50IHRvIGxvY2F0ZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9aWRfKQorCisg
ICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfaWQoc2VsZiwgaWRfKToKKyAgICAgICAgIiIiRmluZHMg
YSBsaXN0IG9mIGVsZW1lbnRzIHdpdGhpbiB0aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBieSBJRC4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0gaWRcXyAtIElkIG9mIGNoaWxkIGVsZW1l
bnQgdG8gZmluZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVu
dHMoYnk9QnkuSUQsIHZhbHVlPWlkXykKKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfbmFtZShz
ZWxmLCBuYW1lKToKKyAgICAgICAgIiIiRmluZHMgZWxlbWVudCB3aXRoaW4gdGhpcyBlbGVtZW50
J3MgY2hpbGRyZW4gYnkgbmFtZS4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0gbmFt
ZSAtIG5hbWUgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdG8gZmluZC4KKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT1uYW1lKQor
CisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIi
RmluZHMgYSBsaXN0IG9mIGVsZW1lbnRzIHdpdGhpbiB0aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBi
eSBuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSBuYW1lIC0gbmFtZSBwcm9w
ZXJ0eSB0byBzZWFyY2ggZm9yLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmlu
ZF9lbGVtZW50cyhieT1CeS5OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVu
dF9ieV9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgIiIiRmluZHMgZWxlbWVu
dCB3aXRoaW4gdGhpcyBlbGVtZW50J3MgY2hpbGRyZW4gYnkgdmlzaWJsZSBsaW5rIHRleHQuCisK
KyAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGxpbmtfdGV4dCAtIExpbmsgdGV4dCBzdHJp
bmcgdG8gc2VhcmNoIGZvci4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRf
ZWxlbWVudChieT1CeS5MSU5LX1RFWFQsIHZhbHVlPWxpbmtfdGV4dCkKKworICAgIGRlZiBmaW5k
X2VsZW1lbnRzX2J5X2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgorICAgICAgICAiIiJGaW5k
cyBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0aGluIHRoaXMgZWxlbWVudCdzIGNoaWxkcmVuIGJ5IHZp
c2libGUgbGluayB0ZXh0LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSBsaW5rX3Rl
eHQgLSBMaW5rIHRleHQgc3RyaW5nIHRvIHNlYXJjaCBmb3IuCisgICAgICAgICIiIgorICAgICAg
ICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkxJTktfVEVYVCwgdmFsdWU9bGlua190
ZXh0KQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9wYXJ0aWFsX2xpbmtfdGV4dChzZWxmLCBs
aW5rX3RleHQpOgorICAgICAgICAiIiJGaW5kcyBlbGVtZW50IHdpdGhpbiB0aGlzIGVsZW1lbnQn
cyBjaGlsZHJlbiBieSBwYXJ0aWFsbHkgdmlzaWJsZSBsaW5rIHRleHQuCisKKyAgICAgICAgOkFy
Z3M6CisgICAgICAgICAgICAtIGxpbmtfdGV4dCAtIExpbmsgdGV4dCBzdHJpbmcgdG8gc2VhcmNo
IGZvci4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1C
eS5QQVJUSUFMX0xJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0KQorCisgICAgZGVmIGZpbmRfZWxl
bWVudHNfYnlfcGFydGlhbF9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgIiIi
RmluZHMgYSBsaXN0IG9mIGVsZW1lbnRzIHdpdGhpbiB0aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBi
eSBsaW5rIHRleHQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGxpbmtfdGV4dCAt
IExpbmsgdGV4dCBzdHJpbmcgdG8gc2VhcmNoIGZvci4KKyAgICAgICAgIiIiCisgICAgICAgIHJl
dHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuUEFSVElBTF9MSU5LX1RFWFQsIHZhbHVlPWxp
bmtfdGV4dCkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoc2VsZiwgbmFtZSk6
CisgICAgICAgICIiIkZpbmRzIGVsZW1lbnQgd2l0aGluIHRoaXMgZWxlbWVudCdzIGNoaWxkcmVu
IGJ5IHRhZyBuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSBuYW1lIC0gbmFt
ZSBvZiBodG1sIHRhZyAoZWc6IGgxLCBhLCBzcGFuKQorICAgICAgICAiIiIKKyAgICAgICAgcmV0
dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LlRBR19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAg
ZGVmIGZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIkZp
bmRzIGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoaW4gdGhpcyBlbGVtZW50J3MgY2hpbGRyZW4gYnkg
dGFnIG5hbWUuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIG5hbWUgLSBuYW1lIG9m
IGh0bWwgdGFnIChlZzogaDEsIGEsIHNwYW4pCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LlRBR19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVm
IGZpbmRfZWxlbWVudF9ieV94cGF0aChzZWxmLCB4cGF0aCk6CisgICAgICAgICIiIkZpbmRzIGVs
ZW1lbnQgYnkgeHBhdGguCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICB4cGF0aCAtIHhw
YXRoIG9mIGVsZW1lbnQgdG8gbG9jYXRlLiAgIi8vaW5wdXRbQGNsYXNzPSdteWVsZW1lbnQnXSIK
KworICAgICAgICBOb3RlOiBUaGUgYmFzZSBwYXRoIHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhpcyBl
bGVtZW50J3MgbG9jYXRpb24uCisKKyAgICAgICAgVGhpcyB3aWxsIHNlbGVjdCB0aGUgZmlyc3Qg
bGluayB1bmRlciB0aGlzIGVsZW1lbnQuCisKKyAgICAgICAgOjoKKworICAgICAgICAgICAgbXll
bGVtZW50LmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoIi4vL2EiKQorCisgICAgICAgIEhvd2V2ZXIs
IHRoaXMgd2lsbCBzZWxlY3QgdGhlIGZpcnN0IGxpbmsgb24gdGhlIHBhZ2UuCisKKyAgICAgICAg
OjoKKworICAgICAgICAgICAgbXllbGVtZW50LmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoIi8vYSIp
CisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5Y
UEFUSCwgdmFsdWU9eHBhdGgpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV94cGF0aChzZWxm
LCB4cGF0aCk6CisgICAgICAgICIiIkZpbmRzIGVsZW1lbnRzIHdpdGhpbiB0aGUgZWxlbWVudCBi
eSB4cGF0aC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0geHBhdGggLSB4cGF0aCBs
b2NhdG9yIHN0cmluZy4KKworICAgICAgICBOb3RlOiBUaGUgYmFzZSBwYXRoIHdpbGwgYmUgcmVs
YXRpdmUgdG8gdGhpcyBlbGVtZW50J3MgbG9jYXRpb24uCisKKyAgICAgICAgVGhpcyB3aWxsIHNl
bGVjdCBhbGwgbGlua3MgdW5kZXIgdGhpcyBlbGVtZW50LgorCisgICAgICAgIDo6CisKKyAgICAg
ICAgICAgIG15ZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X3hwYXRoKCIuLy9hIikKKworICAgICAg
ICBIb3dldmVyLCB0aGlzIHdpbGwgc2VsZWN0IGFsbCBsaW5rcyBpbiB0aGUgcGFnZSBpdHNlbGYu
CisKKyAgICAgICAgOjoKKworICAgICAgICAgICAgbXllbGVtZW50LmZpbmRfZWxlbWVudHNfYnlf
eHBhdGgoIi8vYSIpCisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxl
bWVudHMoYnk9QnkuWFBBVEgsIHZhbHVlPXhwYXRoKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9i
eV9jbGFzc19uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiJGaW5kcyBlbGVtZW50IHdpdGhp
biB0aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBieSBjbGFzcyBuYW1lLgorCisgICAgICAgIDpBcmdz
OgorICAgICAgICAgICAgLSBuYW1lIC0gY2xhc3MgbmFtZSB0byBzZWFyY2ggZm9yLgorICAgICAg
ICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LkNMQVNTX05BTUUs
IHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9jbGFzc19uYW1lKHNlbGYs
IG5hbWUpOgorICAgICAgICAiIiJGaW5kcyBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0aGluIHRoaXMg
ZWxlbWVudCdzIGNoaWxkcmVuIGJ5IGNsYXNzIG5hbWUuCisKKyAgICAgICAgOkFyZ3M6CisgICAg
ICAgICAgICAtIG5hbWUgLSBjbGFzcyBuYW1lIHRvIHNlYXJjaCBmb3IuCisgICAgICAgICIiIgor
ICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVl
PW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nf
c2VsZWN0b3IpOgorICAgICAgICAiIiJGaW5kcyBlbGVtZW50IHdpdGhpbiB0aGlzIGVsZW1lbnQn
cyBjaGlsZHJlbiBieSBDU1Mgc2VsZWN0b3IuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAg
ICAtIGNzc19zZWxlY3RvciAtIENTUyBzZWxjdG9yIHN0cmluZywgZXg6ICdhLm5hdiNob21lJwor
ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LkNTU19T
RUxFQ1RPUiwgdmFsdWU9Y3NzX3NlbGVjdG9yKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlf
Y3NzX3NlbGVjdG9yKHNlbGYsIGNzc19zZWxlY3Rvcik6CisgICAgICAgICIiIkZpbmRzIGEgbGlz
dCBvZiBlbGVtZW50cyB3aXRoaW4gdGhpcyBlbGVtZW50J3MgY2hpbGRyZW4gYnkgQ1NTIHNlbGVj
dG9yLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSBjc3Nfc2VsZWN0b3IgLSBDU1Mg
c2VsY3RvciBzdHJpbmcsIGV4OiAnYS5uYXYjaG9tZScKKyAgICAgICAgIiIiCisgICAgICAgIHJl
dHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuQ1NTX1NFTEVDVE9SLCB2YWx1ZT1jc3Nfc2Vs
ZWN0b3IpCisKKyAgICBkZWYgc2VuZF9rZXlzKHNlbGYsICp2YWx1ZSk6CisgICAgICAgICIiIlNp
bXVsYXRlcyB0eXBpbmcgaW50byB0aGUgZWxlbWVudC4KKworICAgICAgICA6QXJnczoKKyAgICAg
ICAgICAgIC0gdmFsdWUgLSBBIHN0cmluZyBmb3IgdHlwaW5nLCBvciBzZXR0aW5nIGZvcm0gZmll
bGRzLiAgRm9yIHNldHRpbmcKKyAgICAgICAgICAgICAgZmlsZSBpbnB1dHMsIHRoaXMgY291bGQg
YmUgYSBsb2NhbCBmaWxlIHBhdGguCisKKyAgICAgICAgVXNlIHRoaXMgdG8gc2VuZCBzaW1wbGUg
a2V5IGV2ZW50cyBvciB0byBmaWxsIG91dCBmb3JtIGZpZWxkczo6CisKKyAgICAgICAgICAgIGZv
cm1fdGV4dGZpZWxkID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCd1c2VybmFtZScpCisg
ICAgICAgICAgICBmb3JtX3RleHRmaWVsZC5zZW5kX2tleXMoImFkbWluIikKKworICAgICAgICBU
aGlzIGNhbiBhbHNvIGJlIHVzZWQgdG8gc2V0IGZpbGUgaW5wdXRzLgorCisgICAgICAgIDo6CisK
KyAgICAgICAgICAgIGZpbGVfaW5wdXQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoJ3By
b2ZpbGVQaWMnKQorICAgICAgICAgICAgZmlsZV9pbnB1dC5zZW5kX2tleXMoInBhdGgvdG8vcHJv
ZmlsZXBpYy5naWYiKQorICAgICAgICAgICAgIyBHZW5lcmFsbHkgaXQncyBiZXR0ZXIgdG8gd3Jh
cCB0aGUgZmlsZSBwYXRoIGluIG9uZSBvZiB0aGUgbWV0aG9kcworICAgICAgICAgICAgIyBpbiBv
cy5wYXRoIHRvIHJldHVybiB0aGUgYWN0dWFsIHBhdGggdG8gc3VwcG9ydCBjcm9zcyBPUyB0ZXN0
aW5nLgorICAgICAgICAgICAgIyBmaWxlX2lucHV0LnNlbmRfa2V5cyhvcy5wYXRoLmFic3BhdGgo
InBhdGgvdG8vcHJvZmlsZXBpYy5naWYiKSkKKworICAgICAgICAiIiIKKyAgICAgICAgIyB0cmFu
c2ZlciBmaWxlIHRvIGFub3RoZXIgbWFjaGluZSBvbmx5IGlmIHJlbW90ZSBkcml2ZXIgaXMgdXNl
ZAorICAgICAgICAjIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBmb3IgamF2YSBiaW5kaW5nCisgICAg
ICAgIGlmIHNlbGYucGFyZW50Ll9pc19yZW1vdGU6CisgICAgICAgICAgICBsb2NhbF9maWxlID0g
c2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2NhbF9maWxlKCp2YWx1ZSkKKyAgICAgICAg
ICAgIGlmIGxvY2FsX2ZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBz
ZWxmLl91cGxvYWQobG9jYWxfZmlsZSkKKworICAgICAgICBzZWxmLl9leGVjdXRlKENvbW1hbmQu
U0VORF9LRVlTX1RPX0VMRU1FTlQsCisgICAgICAgICAgICAgICAgICAgICAgeyd0ZXh0JzogIiIu
am9pbihrZXlzX3RvX3R5cGluZyh2YWx1ZSkpLAorICAgICAgICAgICAgICAgICAgICAgICAndmFs
dWUnOiBrZXlzX3RvX3R5cGluZyh2YWx1ZSl9KQorCisgICAgIyBSZW5kZXJlZFdlYkVsZW1lbnQg
SXRlbXMKKyAgICBkZWYgaXNfZGlzcGxheWVkKHNlbGYpOgorICAgICAgICAiIiJXaGV0aGVyIHRo
ZSBlbGVtZW50IGlzIHZpc2libGUgdG8gYSB1c2VyLiIiIgorICAgICAgICAjIE9ubHkgZ28gaW50
byB0aGlzIGNvbmRpdGlvbmFsIGZvciBicm93c2VycyB0aGF0IGRvbid0IHVzZSB0aGUgYXRvbSB0
aGVtc2VsdmVzCisgICAgICAgIGlmIHNlbGYuX3czYyBhbmQgc2VsZi5wYXJlbnQuY2FwYWJpbGl0
aWVzWydicm93c2VyTmFtZSddID09ICdzYWZhcmknOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cGFyZW50LmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAgICJyZXR1cm4gKCVzKS5hcHBs
eShudWxsLCBhcmd1bWVudHMpOyIgJSBpc0Rpc3BsYXllZF9qcywKKyAgICAgICAgICAgICAgICBz
ZWxmKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGUoQ29t
bWFuZC5JU19FTEVNRU5UX0RJU1BMQVlFRClbJ3ZhbHVlJ10KKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBsb2NhdGlvbl9vbmNlX3Njcm9sbGVkX2ludG9fdmlldyhzZWxmKToKKyAgICAgICAgIiIi
VEhJUyBQUk9QRVJUWSBNQVkgQ0hBTkdFIFdJVEhPVVQgV0FSTklORy4gVXNlIHRoaXMgdG8gZGlz
Y292ZXIKKyAgICAgICAgd2hlcmUgb24gdGhlIHNjcmVlbiBhbiBlbGVtZW50IGlzIHNvIHRoYXQg
d2UgY2FuIGNsaWNrIGl0LiBUaGlzIG1ldGhvZAorICAgICAgICBzaG91bGQgY2F1c2UgdGhlIGVs
ZW1lbnQgdG8gYmUgc2Nyb2xsZWQgaW50byB2aWV3LgorCisgICAgICAgIFJldHVybnMgdGhlIHRv
cCBsZWZ0aGFuZCBjb3JuZXIgbG9jYXRpb24gb24gdGhlIHNjcmVlbiwgb3IgYGBOb25lYGAgaWYK
KyAgICAgICAgdGhlIGVsZW1lbnQgaXMgbm90IHZpc2libGUuCisKKyAgICAgICAgIiIiCisgICAg
ICAgIGlmIHNlbGYuX3czYzoKKyAgICAgICAgICAgIG9sZF9sb2MgPSBzZWxmLl9leGVjdXRlKENv
bW1hbmQuVzNDX0VYRUNVVEVfU0NSSVBULCB7CisgICAgICAgICAgICAgICAgJ3NjcmlwdCc6ICJh
cmd1bWVudHNbMF0uc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7IHJldHVybiBhcmd1bWVudHNbMF0uZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkiLAorICAgICAgICAgICAgICAgICdhcmdzJzogW3NlbGZdfSlb
J3ZhbHVlJ10KKyAgICAgICAgICAgIHJldHVybiB7IngiOiByb3VuZChvbGRfbG9jWyd4J10pLAor
ICAgICAgICAgICAgICAgICAgICAieSI6IHJvdW5kKG9sZF9sb2NbJ3knXSl9CisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5U
X0xPQ0FUSU9OX09OQ0VfU0NST0xMRURfSU5UT19WSUVXKVsndmFsdWUnXQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHNpemUoc2VsZik6CisgICAgICAgICIiIlRoZSBzaXplIG9mIHRoZSBlbGVt
ZW50LiIiIgorICAgICAgICBzaXplID0ge30KKyAgICAgICAgaWYgc2VsZi5fdzNjOgorICAgICAg
ICAgICAgc2l6ZSA9IHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5HRVRfRUxFTUVOVF9SRUNUKVsndmFs
dWUnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2l6ZSA9IHNlbGYuX2V4ZWN1dGUoQ29t
bWFuZC5HRVRfRUxFTUVOVF9TSVpFKVsndmFsdWUnXQorICAgICAgICBuZXdfc2l6ZSA9IHsiaGVp
Z2h0Ijogc2l6ZVsiaGVpZ2h0Il0sCisgICAgICAgICAgICAgICAgICAgICJ3aWR0aCI6IHNpemVb
IndpZHRoIl19CisgICAgICAgIHJldHVybiBuZXdfc2l6ZQorCisgICAgZGVmIHZhbHVlX29mX2Nz
c19wcm9wZXJ0eShzZWxmLCBwcm9wZXJ0eV9uYW1lKToKKyAgICAgICAgIiIiVGhlIHZhbHVlIG9m
IGEgQ1NTIHByb3BlcnR5LiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0ZShDb21tYW5k
LkdFVF9FTEVNRU5UX1ZBTFVFX09GX0NTU19QUk9QRVJUWSwgeworICAgICAgICAgICAgJ3Byb3Bl
cnR5TmFtZSc6IHByb3BlcnR5X25hbWV9KVsndmFsdWUnXQorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIGxvY2F0aW9uKHNlbGYpOgorICAgICAgICAiIiJUaGUgbG9jYXRpb24gb2YgdGhlIGVsZW1l
bnQgaW4gdGhlIHJlbmRlcmFibGUgY2FudmFzLiIiIgorICAgICAgICBpZiBzZWxmLl93M2M6Cisg
ICAgICAgICAgICBvbGRfbG9jID0gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX1JF
Q1QpWyd2YWx1ZSddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvbGRfbG9jID0gc2VsZi5f
ZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX0xPQ0FUSU9OKVsndmFsdWUnXQorICAgICAgICBu
ZXdfbG9jID0geyJ4Ijogcm91bmQob2xkX2xvY1sneCddKSwKKyAgICAgICAgICAgICAgICAgICAi
eSI6IHJvdW5kKG9sZF9sb2NbJ3knXSl9CisgICAgICAgIHJldHVybiBuZXdfbG9jCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgcmVjdChzZWxmKToKKyAgICAgICAgIiIiQSBkaWN0aW9uYXJ5IHdp
dGggdGhlIHNpemUgYW5kIGxvY2F0aW9uIG9mIHRoZSBlbGVtZW50LiIiIgorICAgICAgICByZXR1
cm4gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX1JFQ1QpWyd2YWx1ZSddCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgc2NyZWVuc2hvdF9hc19iYXNlNjQoc2VsZik6CisgICAgICAg
ICIiIgorICAgICAgICBHZXRzIHRoZSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQg
YXMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAg
ICAgaW1nX2I2NCA9IGVsZW1lbnQuc2NyZWVuc2hvdF9hc19iYXNlNjQKKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1hbmQuRUxFTUVOVF9TQ1JFRU5TSE9UKVsn
dmFsdWUnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmVlbnNob3RfYXNfcG5nKHNlbGYp
OgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyB0aGUgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVu
dCBlbGVtZW50IGFzIGEgYmluYXJ5IGRhdGEuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAg
ICAgZWxlbWVudF9wbmcgPSBlbGVtZW50LnNjcmVlbnNob3RfYXNfcG5nCisgICAgICAgICIiIgor
ICAgICAgICByZXR1cm4gYmFzZTY0LmI2NGRlY29kZShzZWxmLnNjcmVlbnNob3RfYXNfYmFzZTY0
LmVuY29kZSgnYXNjaWknKSkKKworICAgIGRlZiBzY3JlZW5zaG90KHNlbGYsIGZpbGVuYW1lKToK
KyAgICAgICAgIiIiCisgICAgICAgIFNhdmVzIGEgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCBl
bGVtZW50IHRvIGEgUE5HIGltYWdlIGZpbGUuIFJldHVybnMKKyAgICAgICAgICAgRmFsc2UgaWYg
dGhlcmUgaXMgYW55IElPRXJyb3IsIGVsc2UgcmV0dXJucyBUcnVlLiBVc2UgZnVsbCBwYXRocyBp
bgorICAgICAgICAgICB5b3VyIGZpbGVuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBmaWxlbmFtZTogVGhlIGZ1bGwgcGF0aCB5b3Ugd2lzaCB0byBzYXZlIHlvdXIgc2NyZWVuc2hv
dCB0by4gVGhpcworICAgICAgICAgICBzaG91bGQgZW5kIHdpdGggYSBgLnBuZ2AgZXh0ZW5zaW9u
LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGVsZW1lbnQuc2NyZWVuc2hvdCgnL1Nj
cmVlbnNob3RzL2Zvby5wbmcnKQorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGZpbGVuYW1l
Lmxvd2VyKCkuZW5kc3dpdGgoJy5wbmcnKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIm5h
bWUgdXNlZCBmb3Igc2F2ZWQgc2NyZWVuc2hvdCBkb2VzIG5vdCBtYXRjaCBmaWxlICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgInR5cGUuIEl0IHNob3VsZCBlbmQgd2l0aCBhIGAucG5nYCBl
eHRlbnNpb24iLCBVc2VyV2FybmluZykKKyAgICAgICAgcG5nID0gc2VsZi5zY3JlZW5zaG90X2Fz
X3BuZworICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICd3Yicp
IGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZShwbmcpCisgICAgICAgIGV4Y2VwdCBJT0Vy
cm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICBkZWwgcG5nCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgcGFyZW50KHNlbGYpOgorICAgICAgICAiIiJJbnRlcm5hbCByZWZlcmVuY2UgdG8gdGhlIFdl
YkRyaXZlciBpbnN0YW5jZSB0aGlzIGVsZW1lbnQgd2FzIGZvdW5kIGZyb20uIiIiCisgICAgICAg
IHJldHVybiBzZWxmLl9wYXJlbnQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpZChzZWxmKToK
KyAgICAgICAgIiIiSW50ZXJuYWwgSUQgdXNlZCBieSBzZWxlbml1bS4KKworICAgICAgICBUaGlz
IGlzIG1haW5seSBmb3IgaW50ZXJuYWwgdXNlLiBTaW1wbGUgdXNlIGNhc2VzIHN1Y2ggYXMgY2hl
Y2tpbmcgaWYgMgorICAgICAgICB3ZWJlbGVtZW50cyByZWZlciB0byB0aGUgc2FtZSBlbGVtZW50
LCBjYW4gYmUgZG9uZSB1c2luZyBgYD09YGA6OgorCisgICAgICAgICAgICBpZiBlbGVtZW50MSA9
PSBlbGVtZW50MjoKKyAgICAgICAgICAgICAgICBwcmludCgiVGhlc2UgMiBhcmUgZXF1YWwiKQor
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5faWQKKworICAgIGRlZiBfX2VxX18o
c2VsZiwgZWxlbWVudCk6CisgICAgICAgIHJldHVybiBoYXNhdHRyKGVsZW1lbnQsICdpZCcpIGFu
ZCBzZWxmLl9pZCA9PSBlbGVtZW50LmlkCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIGVsZW1lbnQp
OgorICAgICAgICByZXR1cm4gbm90IHNlbGYuX19lcV9fKGVsZW1lbnQpCisKKyAgICAjIFByaXZh
dGUgTWV0aG9kcworICAgIGRlZiBfZXhlY3V0ZShzZWxmLCBjb21tYW5kLCBwYXJhbXM9Tm9uZSk6
CisgICAgICAgICIiIkV4ZWN1dGVzIGEgY29tbWFuZCBhZ2FpbnN0IHRoZSB1bmRlcmx5aW5nIEhU
TUwgZWxlbWVudC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIGNvbW1hbmQ6IFRoZSBuYW1l
IG9mIHRoZSBjb21tYW5kIHRvIF9leGVjdXRlIGFzIGEgc3RyaW5nLgorICAgICAgICAgIHBhcmFt
czogQSBkaWN0aW9uYXJ5IG9mIG5hbWVkIHBhcmFtZXRlcnMgdG8gc2VuZCB3aXRoIHRoZSBjb21t
YW5kLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgVGhlIGNvbW1hbmQncyBKU09OIHJl
c3BvbnNlIGxvYWRlZCBpbnRvIGEgZGljdGlvbmFyeSBvYmplY3QuCisgICAgICAgICIiIgorICAg
ICAgICBpZiBub3QgcGFyYW1zOgorICAgICAgICAgICAgcGFyYW1zID0ge30KKyAgICAgICAgcGFy
YW1zWydpZCddID0gc2VsZi5faWQKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5leGVjdXRl
KGNvbW1hbmQsIHBhcmFtcykKKworICAgIGRlZiBmaW5kX2VsZW1lbnQoc2VsZiwgYnk9QnkuSUQs
IHZhbHVlPU5vbmUpOgorICAgICAgICBpZiBzZWxmLl93M2M6CisgICAgICAgICAgICBpZiBieSA9
PSBCeS5JRDoKKyAgICAgICAgICAgICAgICBieSA9IEJ5LkNTU19TRUxFQ1RPUgorICAgICAgICAg
ICAgICAgIHZhbHVlID0gJ1tpZD0iJXMiXScgJSB2YWx1ZQorICAgICAgICAgICAgZWxpZiBieSA9
PSBCeS5UQUdfTkFNRToKKyAgICAgICAgICAgICAgICBieSA9IEJ5LkNTU19TRUxFQ1RPUgorICAg
ICAgICAgICAgZWxpZiBieSA9PSBCeS5DTEFTU19OQU1FOgorICAgICAgICAgICAgICAgIGJ5ID0g
QnkuQ1NTX1NFTEVDVE9SCisgICAgICAgICAgICAgICAgdmFsdWUgPSAiLiVzIiAlIHZhbHVlCisg
ICAgICAgICAgICBlbGlmIGJ5ID09IEJ5Lk5BTUU6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5D
U1NfU0VMRUNUT1IKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICdbbmFtZT0iJXMiXScgJSB2YWx1
ZQorCisgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1hbmQuRklORF9DSElMRF9FTEVN
RU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InVzaW5nIjogYnksICJ2YWx1ZSI6
IHZhbHVlfSlbJ3ZhbHVlJ10KKworICAgIGRlZiBmaW5kX2VsZW1lbnRzKHNlbGYsIGJ5PUJ5LklE
LCB2YWx1ZT1Ob25lKToKKyAgICAgICAgaWYgc2VsZi5fdzNjOgorICAgICAgICAgICAgaWYgYnkg
PT0gQnkuSUQ6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VMRUNUT1IKKyAgICAgICAg
ICAgICAgICB2YWx1ZSA9ICdbaWQ9IiVzIl0nICUgdmFsdWUKKyAgICAgICAgICAgIGVsaWYgYnkg
PT0gQnkuVEFHX05BTUU6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VMRUNUT1IKKyAg
ICAgICAgICAgIGVsaWYgYnkgPT0gQnkuQ0xBU1NfTkFNRToKKyAgICAgICAgICAgICAgICBieSA9
IEJ5LkNTU19TRUxFQ1RPUgorICAgICAgICAgICAgICAgIHZhbHVlID0gIi4lcyIgJSB2YWx1ZQor
ICAgICAgICAgICAgZWxpZiBieSA9PSBCeS5OQU1FOgorICAgICAgICAgICAgICAgIGJ5ID0gQnku
Q1NTX1NFTEVDVE9SCisgICAgICAgICAgICAgICAgdmFsdWUgPSAnW25hbWU9IiVzIl0nICUgdmFs
dWUKKworICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkZJTkRfQ0hJTERfRUxF
TUVOVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsidXNpbmciOiBieSwgInZhbHVl
IjogdmFsdWV9KVsndmFsdWUnXQorCisgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gaW50KGhhc2hsaWIubWQ1KHNlbGYuX2lkLmVuY29kZSgndXRmLTgnKSkuaGV4ZGlnZXN0
KCksIDE2KQorCisgICAgZGVmIF91cGxvYWQoc2VsZiwgZmlsZW5hbWUpOgorICAgICAgICBmcCA9
IElPU3RyZWFtKCkKKyAgICAgICAgemlwcGVkID0gemlwZmlsZS5aaXBGaWxlKGZwLCAndycsIHpp
cGZpbGUuWklQX0RFRkxBVEVEKQorICAgICAgICB6aXBwZWQud3JpdGUoZmlsZW5hbWUsIG9zLnBh
dGguc3BsaXQoZmlsZW5hbWUpWzFdKQorICAgICAgICB6aXBwZWQuY2xvc2UoKQorICAgICAgICBj
b250ZW50ID0gYmFzZTY0LmVuY29kZXN0cmluZyhmcC5nZXR2YWx1ZSgpKQorICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShjb250ZW50LCBzdHIpOgorICAgICAgICAgICAgY29udGVudCA9IGNvbnRl
bnQuZGVjb2RlKCd1dGYtOCcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxm
Ll9leGVjdXRlKENvbW1hbmQuVVBMT0FEX0ZJTEUsIHsnZmlsZSc6IGNvbnRlbnR9KVsndmFsdWUn
XQorICAgICAgICBleGNlcHQgV2ViRHJpdmVyRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBp
ZiAiVW5yZWNvZ25pemVkIGNvbW1hbmQ6IFBPU1QiIGluIGUuX19zdHJfXygpOgorICAgICAgICAg
ICAgICAgIHJldHVybiBmaWxlbmFtZQorICAgICAgICAgICAgZWxpZiAiQ29tbWFuZCBub3QgZm91
bmQ6IFBPU1QgIiBpbiBlLl9fc3RyX18oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlsZW5h
bWUKKyAgICAgICAgICAgIGVsaWYgJ3sic3RhdHVzIjo0MDUsInZhbHVlIjpbIkdFVCIsIkhFQUQi
LCJERUxFVEUiXX0nIGluIGUuX19zdHJfXygpOgorICAgICAgICAgICAgICAgIHJldHVybiBmaWxl
bmFtZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBlCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvc2FmYXJpL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2Fm
YXJpL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3
YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJp
YnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmli
dXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRp
bmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRv
IHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vu
c2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3
aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisj
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
ZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg
YW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9z
ZXJ2aWNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3NhZmFyaS9zZXJ2aWNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5hOGZkMDg0ZTUzYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvc2VydmljZS5w
eQpAQCAtMCwwICsxLDU2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENv
bnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2Ug
YWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlz
IHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBv
d25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5z
ZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWly
ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJl
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJB
UyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBL
SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUK
KyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9u
cworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IG9zCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5jb21tb24gaW1wb3J0IHNlcnZpY2UsIHV0aWxzCitmcm9tIHN1YnByb2Nlc3MgaW1wb3J0
IFBJUEUKKworCitjbGFzcyBTZXJ2aWNlKHNlcnZpY2UuU2VydmljZSk6CisgICAgIiIiCisgICAg
T2JqZWN0IHRoYXQgbWFuYWdlcyB0aGUgc3RhcnRpbmcgYW5kIHN0b3BwaW5nIG9mIHRoZSBTYWZh
cmlEcml2ZXIKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3Bh
dGgsIHBvcnQ9MCwgcXVpZXQ9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBh
IG5ldyBpbnN0YW5jZSBvZiB0aGUgU2VydmljZQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBleGVjdXRhYmxlX3BhdGggOiBQYXRoIHRvIHRoZSBTYWZhcmlEcml2ZXIKKyAgICAgICAgIC0g
cG9ydCA6IFBvcnQgdGhlIHNlcnZpY2UgaXMgcnVubmluZyBvbiAiIiIKKworICAgICAgICBpZiBu
b3Qgb3MucGF0aC5leGlzdHMoZXhlY3V0YWJsZV9wYXRoKToKKyAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbigiU2FmYXJpRHJpdmVyIHJlcXVpcmVzIFNhZmFyaSAxMCBvbiBPU1ggRWwgQ2FwaXRh
biBvciBncmVhdGVyIikKKworICAgICAgICBpZiBwb3J0ID09IDA6CisgICAgICAgICAgICBwb3J0
ID0gdXRpbHMuZnJlZV9wb3J0KCkKKworICAgICAgICBzZWxmLnF1aWV0ID0gcXVpZXQKKyAgICAg
ICAgbG9nID0gUElQRQorICAgICAgICBpZiBxdWlldDoKKyAgICAgICAgICAgIGxvZyA9IG9wZW4o
b3MuZGV2bnVsbCwgJ3cnKQorICAgICAgICBzZXJ2aWNlLlNlcnZpY2UuX19pbml0X18oc2VsZiwg
ZXhlY3V0YWJsZV9wYXRoLCBwb3J0LCBsb2cpCisKKyAgICBkZWYgY29tbWFuZF9saW5lX2FyZ3Mo
c2VsZik6CisgICAgICAgIHJldHVybiBbIi1wIiwgIiVzIiAlIHNlbGYucG9ydF0KKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBzZXJ2aWNlX3VybChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IEdldHMgdGhlIHVybCBvZiB0aGUgU2FmYXJpRHJpdmVyIFNlcnZpY2UKKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiAiaHR0cDovL2xvY2FsaG9zdDolZCIgJSBzZWxmLnBvcnQKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9zYWZhcmkvd2ViZHJpdmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS93ZWJkcml2ZXIucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjNTU5ZTZiM2NlCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Nh
ZmFyaS93ZWJkcml2ZXIucHkKQEAgLTAsMCArMSw2NSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29m
dHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250
cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3Ry
aWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2Fy
ZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMg
dG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGlj
ZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisj
IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2Ug
YXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMK
KyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmli
dXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU
SU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUg
TGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK3RyeToKKyAgICBpbXBv
cnQgaHR0cC5jbGllbnQgYXMgaHR0cF9jbGllbnQKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBp
bXBvcnQgaHR0cGxpYiBhcyBodHRwX2NsaWVudAorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5j
b21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKK2Zy
b20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBh
cyBSZW1vdGVXZWJEcml2ZXIKK2Zyb20gLnNlcnZpY2UgaW1wb3J0IFNlcnZpY2UKKworCitjbGFz
cyBXZWJEcml2ZXIoUmVtb3RlV2ViRHJpdmVyKToKKyAgICAiIiIKKyAgICBDb250cm9scyB0aGUg
U2FmYXJpRHJpdmVyIGFuZCBhbGxvd3MgeW91IHRvIGRyaXZlIHRoZSBicm93c2VyLgorCisgICAg
IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydD0wLCBleGVjdXRhYmxlX3BhdGg9Ii91
c3IvYmluL3NhZmFyaWRyaXZlciIsCisgICAgICAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0
aWVzPURlc2lyZWRDYXBhYmlsaXRpZXMuU0FGQVJJLCBxdWlldD1GYWxzZSk6CisgICAgICAgICIi
IgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBTYWZhcmkgZHJpdmVyLgor
CisgICAgICAgIFN0YXJ0cyB0aGUgc2VydmljZSBhbmQgdGhlbiBjcmVhdGVzIG5ldyBpbnN0YW5j
ZSBvZiBTYWZhcmkgRHJpdmVyLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBwb3J0IC0g
cG9ydCB5b3Ugd291bGQgbGlrZSB0aGUgc2VydmljZSB0byBydW4sIGlmIGxlZnQgYXMgMCwgYSBm
cmVlIHBvcnQgd2lsbCBiZSBmb3VuZC4KKyAgICAgICAgIC0gZGVzaXJlZF9jYXBhYmlsaXRpZXM6
IERpY3Rpb25hcnkgb2JqZWN0IHdpdGggZGVzaXJlZCBjYXBhYmlsaXRpZXMgKENhbiBiZSB1c2Vk
IHRvIHByb3ZpZGUgdmFyaW91cyBTYWZhcmkgc3dpdGNoZXMpLgorICAgICAgICAgLSBxdWlldCAt
IHNldCB0byBUcnVlIHRvIHN1cHByZXNzIHN0ZG91dCBhbmQgc3RkZXJyIG9mIHRoZSBkcml2ZXIK
KyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuc2VydmljZSA9IFNlcnZpY2UoZXhlY3V0YWJsZV9w
YXRoLCBwb3J0PXBvcnQsIHF1aWV0PXF1aWV0KQorICAgICAgICBzZWxmLnNlcnZpY2Uuc3RhcnQo
KQorCisgICAgICAgIFJlbW90ZVdlYkRyaXZlci5fX2luaXRfXygKKyAgICAgICAgICAgIHNlbGYs
CisgICAgICAgICAgICBjb21tYW5kX2V4ZWN1dG9yPXNlbGYuc2VydmljZS5zZXJ2aWNlX3VybCwK
KyAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPWRlc2lyZWRfY2FwYWJpbGl0aWVzKQor
ICAgICAgICBzZWxmLl9pc19yZW1vdGUgPSBGYWxzZQorCisgICAgZGVmIHF1aXQoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBDbG9zZXMgdGhlIGJyb3dzZXIgYW5kIHNodXRzIGRvd24gdGhl
IFNhZmFyaURyaXZlciBleGVjdXRhYmxlCisgICAgICAgIHRoYXQgaXMgc3RhcnRlZCB3aGVuIHN0
YXJ0aW5nIHRoZSBTYWZhcmlEcml2ZXIKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIFJlbW90ZVdlYkRyaXZlci5xdWl0KHNlbGYpCisgICAgICAgIGV4Y2VwdCBodHRwX2Ns
aWVudC5CYWRTdGF0dXNMaW5lOgorICAgICAgICAgICAgcGFzcworICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgc2VsZi5zZXJ2aWNlLnN0b3AoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvX19pbml0
X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvc3VwcG9ydC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9fX2luaXRfXy5w
eQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENv
bnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2Ug
YWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlz
IHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBv
d25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5z
ZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWly
ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJl
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJB
UyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBL
SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUK
KyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9u
cworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2Fic3RyYWN0X2V2ZW50
X2xpc3RlbmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL3N1cHBvcnQvYWJzdHJhY3RfZXZlbnRfbGlzdGVuZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdkZDE2NmI3N2FjCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3N1cHBvcnQvYWJzdHJhY3RfZXZlbnRfbGlzdGVuZXIucHkKQEAgLTAsMCArMSw3OSBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCisKKworY2xhc3MgQWJzdHJhY3RFdmVudExpc3RlbmVyKG9iamVjdCk6CisgICAgIiIiCisg
ICAgRXZlbnQgbGlzdGVuZXIgbXVzdCBzdWJjbGFzcyBhbmQgaW1wbGVtZW50IHRoaXMgZnVsbHkg
b3IgcGFydGlhbGx5CisgICAgIiIiCisKKyAgICBkZWYgYmVmb3JlX25hdmlnYXRlX3RvKHNlbGYs
IHVybCwgZHJpdmVyKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGFmdGVyX25hdmlnYXRlX3Rv
KHNlbGYsIHVybCwgZHJpdmVyKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGJlZm9yZV9uYXZp
Z2F0ZV9iYWNrKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBhZnRlcl9u
YXZpZ2F0ZV9iYWNrKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBiZWZv
cmVfbmF2aWdhdGVfZm9yd2FyZChzZWxmLCBkcml2ZXIpOgorICAgICAgICBwYXNzCisKKyAgICBk
ZWYgYWZ0ZXJfbmF2aWdhdGVfZm9yd2FyZChzZWxmLCBkcml2ZXIpOgorICAgICAgICBwYXNzCisK
KyAgICBkZWYgYmVmb3JlX2ZpbmQoc2VsZiwgYnksIHZhbHVlLCBkcml2ZXIpOgorICAgICAgICBw
YXNzCisKKyAgICBkZWYgYWZ0ZXJfZmluZChzZWxmLCBieSwgdmFsdWUsIGRyaXZlcik6CisgICAg
ICAgIHBhc3MKKworICAgIGRlZiBiZWZvcmVfY2xpY2soc2VsZiwgZWxlbWVudCwgZHJpdmVyKToK
KyAgICAgICAgcGFzcworCisgICAgZGVmIGFmdGVyX2NsaWNrKHNlbGYsIGVsZW1lbnQsIGRyaXZl
cik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBiZWZvcmVfY2hhbmdlX3ZhbHVlX29mKHNlbGYs
IGVsZW1lbnQsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBhZnRlcl9jaGFuZ2Vf
dmFsdWVfb2Yoc2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgcGFzcworCisgICAgZGVm
IGJlZm9yZV9leGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGRyaXZlcik6CisgICAgICAgIHBh
c3MKKworICAgIGRlZiBhZnRlcl9leGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGRyaXZlcik6
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBiZWZvcmVfY2xvc2Uoc2VsZiwgZHJpdmVyKToKKyAg
ICAgICAgcGFzcworCisgICAgZGVmIGFmdGVyX2Nsb3NlKHNlbGYsIGRyaXZlcik6CisgICAgICAg
IHBhc3MKKworICAgIGRlZiBiZWZvcmVfcXVpdChzZWxmLCBkcml2ZXIpOgorICAgICAgICBwYXNz
CisKKyAgICBkZWYgYWZ0ZXJfcXVpdChzZWxmLCBkcml2ZXIpOgorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgb25fZXhjZXB0aW9uKHNlbGYsIGV4Y2VwdGlvbiwgZHJpdmVyKToKKyAgICAgICAgcGFz
cwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL3N1cHBvcnQvY29sb3IucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9jb2xvci5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzlmZDMyNDExYzQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvc3VwcG9ydC9jb2xvci5weQpAQCAtMCwwICsxLDMxMCBAQAorIyBMaWNlbnNlZCB0byB0aGUg
U29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBj
b250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRp
c3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJl
Z2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUK
KyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAi
TGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
CisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vu
c2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK
KyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0
cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09O
RElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz
aW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK1JHQl9QQVRURVJO
ID0gciJeXHMqcmdiXChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9
KVxzKlwpXHMqJCIKK1JHQl9QQ1RfUEFUVEVSTiA9IHIiXlxzKnJnYlwoXHMqKFxkezEsM318XGR7
MSwyfVwuXGQrKSVccyosXHMqKFxkezEsM318XGR7MSwyfVwuXGQrKSVccyosXHMqKFxkezEsM318
XGR7MSwyfVwuXGQrKSVccypcKVxzKiQiCitSR0JBX1BBVFRFUk4gPSByIl5ccypyZ2JhXChccyoo
XGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooMHwxfDBcLlxk
KylccypcKVxzKiQiCitSR0JBX1BDVF9QQVRURVJOID0gciJeXHMqcmdiYVwoXHMqKFxkezEsM318
XGR7MSwyfVwuXGQrKSVccyosXHMqKFxkezEsM318XGR7MSwyfVwuXGQrKSVccyosXHMqKFxkezEs
M318XGR7MSwyfVwuXGQrKSVccyosXHMqKDB8MXwwXC5cZCspXHMqXClccyokIgorSEVYX1BBVFRF
Uk4gPSByIiMoW0EtRmEtZjAtOV17Mn0pKFtBLUZhLWYwLTldezJ9KShbQS1GYS1mMC05XXsyfSki
CitIRVgzX1BBVFRFUk4gPSByIiMoW0EtRmEtZjAtOV0pKFtBLUZhLWYwLTldKShbQS1GYS1mMC05
XSkiCitIU0xfUEFUVEVSTiA9IHIiXlxzKmhzbFwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9
KSVccyosXHMqKFxkezEsM30pJVxzKlwpXHMqJCIKK0hTTEFfUEFUVEVSTiA9IHIiXlxzKmhzbGFc
KFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSklXHMqLFxzKihcZHsxLDN9KSVccyosXHMqKDB8
MXwwXC5cZCspXHMqXClccyokIgorCisKK2NsYXNzIENvbG9yKG9iamVjdCk6CisgICAgIiIiCisg
ICAgQ29sb3IgY29udmVyc2lvbiBzdXBwb3J0IGNsYXNzCisKKyAgICBFeGFtcGxlOgorCisgICAg
Li4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVy
LnN1cHBvcnQuY29sb3IgaW1wb3J0IENvbG9yCisKKyAgICAgICAgcHJpbnQoQ29sb3IuZnJvbV9z
dHJpbmcoJyMwMGZmMzMnKS5yZ2JhKQorICAgICAgICBwcmludChDb2xvci5mcm9tX3N0cmluZygn
cmdiKDEsIDI1NSwgMyknKS5oZXgpCisgICAgICAgIHByaW50KENvbG9yLmZyb21fc3RyaW5nKCdi
bHVlJykucmdiYSkKKyAgICAiIiIKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZnJvbV9z
dHJpbmcoc3RyXyk6CisgICAgICAgIGltcG9ydCByZQorCisgICAgICAgIGNsYXNzIE1hdGNoZXIo
b2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAg
ICBzZWxmLm1hdGNoX29iaiA9IE5vbmUKKworICAgICAgICAgICAgZGVmIG1hdGNoKHNlbGYsIHBh
dHRlcm4sIHN0cl8pOgorICAgICAgICAgICAgICAgIHNlbGYubWF0Y2hfb2JqID0gcmUubWF0Y2go
cGF0dGVybiwgc3RyXykKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5tYXRjaF9vYmoKKwor
ICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYgZ3JvdXBzKHNlbGYpOgorICAg
ICAgICAgICAgICAgIHJldHVybiAoKSBpZiBzZWxmLm1hdGNoX29iaiBpcyBOb25lIGVsc2Ugc2Vs
Zi5tYXRjaF9vYmouZ3JvdXBzKCkKKworICAgICAgICBtID0gTWF0Y2hlcigpCisKKyAgICAgICAg
aWYgbS5tYXRjaChSR0JfUEFUVEVSTiwgc3RyXyk6CisgICAgICAgICAgICByZXR1cm4gQ29sb3Io
Km0uZ3JvdXBzKQorICAgICAgICBlbGlmIG0ubWF0Y2goUkdCX1BDVF9QQVRURVJOLCBzdHJfKToK
KyAgICAgICAgICAgIHJnYiA9IHR1cGxlKFtmbG9hdChlYWNoKSAvIDEwMCAqIDI1NSBmb3IgZWFj
aCBpbiBtLmdyb3Vwc10pCisgICAgICAgICAgICByZXR1cm4gQ29sb3IoKnJnYikKKyAgICAgICAg
ZWxpZiBtLm1hdGNoKFJHQkFfUEFUVEVSTiwgc3RyXyk6CisgICAgICAgICAgICByZXR1cm4gQ29s
b3IoKm0uZ3JvdXBzKQorICAgICAgICBlbGlmIG0ubWF0Y2goUkdCQV9QQ1RfUEFUVEVSTiwgc3Ry
Xyk6CisgICAgICAgICAgICByZ2JhID0gdHVwbGUoW2Zsb2F0KGVhY2gpIC8gMTAwICogMjU1IGZv
ciBlYWNoIGluIG0uZ3JvdXBzWzozXV0gKyBbbS5ncm91cHNbM11dKQorICAgICAgICAgICAgcmV0
dXJuIENvbG9yKCpyZ2JhKQorICAgICAgICBlbGlmIG0ubWF0Y2goSEVYX1BBVFRFUk4sIHN0cl8p
OgorICAgICAgICAgICAgcmdiID0gdHVwbGUoW2ludChlYWNoLCAxNikgZm9yIGVhY2ggaW4gbS5n
cm91cHNdKQorICAgICAgICAgICAgcmV0dXJuIENvbG9yKCpyZ2IpCisgICAgICAgIGVsaWYgbS5t
YXRjaChIRVgzX1BBVFRFUk4sIHN0cl8pOgorICAgICAgICAgICAgcmdiID0gdHVwbGUoW2ludChl
YWNoICogMiwgMTYpIGZvciBlYWNoIGluIG0uZ3JvdXBzXSkKKyAgICAgICAgICAgIHJldHVybiBD
b2xvcigqcmdiKQorICAgICAgICBlbGlmIG0ubWF0Y2goSFNMX1BBVFRFUk4sIHN0cl8pIG9yIG0u
bWF0Y2goSFNMQV9QQVRURVJOLCBzdHJfKToKKyAgICAgICAgICAgIHJldHVybiBDb2xvci5fZnJv
bV9oc2woKm0uZ3JvdXBzKQorICAgICAgICBlbGlmIHN0cl8udXBwZXIoKSBpbiBDb2xvcnMua2V5
cygpOgorICAgICAgICAgICAgcmV0dXJuIENvbG9yc1tzdHJfLnVwcGVyKCldCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDb3VsZCBub3QgY29udmVydCAlcyBp
bnRvIGNvbG9yIiAlIHN0cl8pCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9mcm9tX2hz
bChoLCBzLCBsLCBhPTEpOgorICAgICAgICBoID0gZmxvYXQoaCkgLyAzNjAKKyAgICAgICAgcyA9
IGZsb2F0KHMpIC8gMTAwCisgICAgICAgIGwgPSBmbG9hdChsKSAvIDEwMAorCisgICAgICAgIGlm
IHMgPT0gMDoKKyAgICAgICAgICAgIHIgPSBsCisgICAgICAgICAgICBnID0gcgorICAgICAgICAg
ICAgYiA9IHIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGx1bWlub2NpdHkyID0gbCAqICgx
ICsgcykgaWYgbCA8IDAuNSBlbHNlIGwgKyBzIC0gbCAqIHMKKyAgICAgICAgICAgIGx1bWlub2Np
dHkxID0gMiAqIGwgLSBsdW1pbm9jaXR5MgorCisgICAgICAgICAgICBkZWYgaHVlX3RvX3JnYihs
dW0xLCBsdW0yLCBodWUpOgorICAgICAgICAgICAgICAgIGlmIGh1ZSA8IDAuMDoKKyAgICAgICAg
ICAgICAgICAgICAgaHVlICs9IDEKKyAgICAgICAgICAgICAgICBpZiBodWUgPiAxLjA6CisgICAg
ICAgICAgICAgICAgICAgIGh1ZSAtPSAxCisKKyAgICAgICAgICAgICAgICBpZiBodWUgPCAxLjAg
LyA2LjA6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAobHVtMSArIChsdW0yIC0gbHVtMSkg
KiA2LjAgKiBodWUpCisgICAgICAgICAgICAgICAgZWxpZiBodWUgPCAxLjAgLyAyLjA6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBsdW0yCisgICAgICAgICAgICAgICAgZWxpZiBodWUgPCAy
LjAgLyAzLjA6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsdW0xICsgKGx1bTIgLSBsdW0x
KSAqICgoMi4wIC8gMy4wKSAtIGh1ZSkgKiA2LjAKKyAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbHVtMQorCisgICAgICAgICAgICByID0gaHVlX3RvX3Jn
YihsdW1pbm9jaXR5MSwgbHVtaW5vY2l0eTIsIGggKyAxLjAgLyAzLjApCisgICAgICAgICAgICBn
ID0gaHVlX3RvX3JnYihsdW1pbm9jaXR5MSwgbHVtaW5vY2l0eTIsIGgpCisgICAgICAgICAgICBi
ID0gaHVlX3RvX3JnYihsdW1pbm9jaXR5MSwgbHVtaW5vY2l0eTIsIGggLSAxLjAgLyAzLjApCisK
KyAgICAgICAgcmV0dXJuIENvbG9yKHJvdW5kKHIgKiAyNTUpLCByb3VuZChnICogMjU1KSwgcm91
bmQoYiAqIDI1NSksIGEpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVkLCBncmVlbiwgYmx1
ZSwgYWxwaGE9MSk6CisgICAgICAgIHNlbGYucmVkID0gaW50KHJlZCkKKyAgICAgICAgc2VsZi5n
cmVlbiA9IGludChncmVlbikKKyAgICAgICAgc2VsZi5ibHVlID0gaW50KGJsdWUpCisgICAgICAg
IHNlbGYuYWxwaGEgPSAiMSIgaWYgZmxvYXQoYWxwaGEpID09IDEgZWxzZSBzdHIoZmxvYXQoYWxw
aGEpIG9yIDApCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmdiKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gInJnYiglZCwgJWQsICVkKSIgJSAoc2VsZi5yZWQsIHNlbGYuZ3JlZW4sIHNlbGYuYmx1
ZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZ2JhKHNlbGYpOgorICAgICAgICByZXR1cm4g
InJnYmEoJWQsICVkLCAlZCwgJXMpIiAlIChzZWxmLnJlZCwgc2VsZi5ncmVlbiwgc2VsZi5ibHVl
LCBzZWxmLmFscGhhKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGhleChzZWxmKToKKyAgICAg
ICAgcmV0dXJuICIjJTAyeCUwMnglMDJ4IiAlIChzZWxmLnJlZCwgc2VsZi5ncmVlbiwgc2VsZi5i
bHVlKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIGlzaW5zdGFu
Y2Uob3RoZXIsIENvbG9yKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJnYmEgPT0gb3RoZXIu
cmdiYQorICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgIGRlZiBfX25lX18oc2Vs
Ziwgb3RoZXIpOgorICAgICAgICByZXN1bHQgPSBzZWxmLl9fZXFfXyhvdGhlcikKKyAgICAgICAg
aWYgcmVzdWx0IGlzIE5vdEltcGxlbWVudGVkOgorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAor
ICAgICAgICByZXR1cm4gbm90IHJlc3VsdAorCisgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAg
ICAgICByZXR1cm4gaGFzaCgoc2VsZi5yZWQsIHNlbGYuZ3JlZW4sIHNlbGYuYmx1ZSwgc2VsZi5h
bHBoYSkpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiQ29sb3Io
cmVkPSVkLCBncmVlbj0lZCwgYmx1ZT0lZCwgYWxwaGE9JXMpIiAlIChzZWxmLnJlZCwgc2VsZi5n
cmVlbiwgc2VsZi5ibHVlLCBzZWxmLmFscGhhKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6Cisg
ICAgICAgIHJldHVybiAiQ29sb3I6ICVzIiAlIHNlbGYucmdiYQorCisKKyMgQmFzaWMsIGV4dGVu
ZGVkIGFuZCB0cmFuc3BhcmVudCBjb2xvdXIga2V5d29yZHMgYXMgZGVmaW5lZCBieSB0aGUgVzND
IEhUTUw0IHNwZWMKKyMgU2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtY29sb3IvI2h0bWw0
CitDb2xvcnMgPSB7CisgICAgIlRSQU5TUEFSRU5UIjogQ29sb3IoMCwgMCwgMCwgMCksCisgICAg
IkFMSUNFQkxVRSI6IENvbG9yKDI0MCwgMjQ4LCAyNTUpLAorICAgICJBTlRJUVVFV0hJVEUiOiBD
b2xvcigyNTAsIDIzNSwgMjE1KSwKKyAgICAiQVFVQSI6IENvbG9yKDAsIDI1NSwgMjU1KSwKKyAg
ICAiQVFVQU1BUklORSI6IENvbG9yKDEyNywgMjU1LCAyMTIpLAorICAgICJBWlVSRSI6IENvbG9y
KDI0MCwgMjU1LCAyNTUpLAorICAgICJCRUlHRSI6IENvbG9yKDI0NSwgMjQ1LCAyMjApLAorICAg
ICJCSVNRVUUiOiBDb2xvcigyNTUsIDIyOCwgMTk2KSwKKyAgICAiQkxBQ0siOiBDb2xvcigwLCAw
LCAwKSwKKyAgICAiQkxBTkNIRURBTE1PTkQiOiBDb2xvcigyNTUsIDIzNSwgMjA1KSwKKyAgICAi
QkxVRSI6IENvbG9yKDAsIDAsIDI1NSksCisgICAgIkJMVUVWSU9MRVQiOiBDb2xvcigxMzgsIDQz
LCAyMjYpLAorICAgICJCUk9XTiI6IENvbG9yKDE2NSwgNDIsIDQyKSwKKyAgICAiQlVSTFlXT09E
IjogQ29sb3IoMjIyLCAxODQsIDEzNSksCisgICAgIkNBREVUQkxVRSI6IENvbG9yKDk1LCAxNTgs
IDE2MCksCisgICAgIkNIQVJUUkVVU0UiOiBDb2xvcigxMjcsIDI1NSwgMCksCisgICAgIkNIT0NP
TEFURSI6IENvbG9yKDIxMCwgMTA1LCAzMCksCisgICAgIkNPUkFMIjogQ29sb3IoMjU1LCAxMjcs
IDgwKSwKKyAgICAiQ09STkZMT1dFUkJMVUUiOiBDb2xvcigxMDAsIDE0OSwgMjM3KSwKKyAgICAi
Q09STlNJTEsiOiBDb2xvcigyNTUsIDI0OCwgMjIwKSwKKyAgICAiQ1JJTVNPTiI6IENvbG9yKDIy
MCwgMjAsIDYwKSwKKyAgICAiQ1lBTiI6IENvbG9yKDAsIDI1NSwgMjU1KSwKKyAgICAiREFSS0JM
VUUiOiBDb2xvcigwLCAwLCAxMzkpLAorICAgICJEQVJLQ1lBTiI6IENvbG9yKDAsIDEzOSwgMTM5
KSwKKyAgICAiREFSS0dPTERFTlJPRCI6IENvbG9yKDE4NCwgMTM0LCAxMSksCisgICAgIkRBUktH
UkFZIjogQ29sb3IoMTY5LCAxNjksIDE2OSksCisgICAgIkRBUktHUkVFTiI6IENvbG9yKDAsIDEw
MCwgMCksCisgICAgIkRBUktHUkVZIjogQ29sb3IoMTY5LCAxNjksIDE2OSksCisgICAgIkRBUktL
SEFLSSI6IENvbG9yKDE4OSwgMTgzLCAxMDcpLAorICAgICJEQVJLTUFHRU5UQSI6IENvbG9yKDEz
OSwgMCwgMTM5KSwKKyAgICAiREFSS09MSVZFR1JFRU4iOiBDb2xvcig4NSwgMTA3LCA0NyksCisg
ICAgIkRBUktPUkFOR0UiOiBDb2xvcigyNTUsIDE0MCwgMCksCisgICAgIkRBUktPUkNISUQiOiBD
b2xvcigxNTMsIDUwLCAyMDQpLAorICAgICJEQVJLUkVEIjogQ29sb3IoMTM5LCAwLCAwKSwKKyAg
ICAiREFSS1NBTE1PTiI6IENvbG9yKDIzMywgMTUwLCAxMjIpLAorICAgICJEQVJLU0VBR1JFRU4i
OiBDb2xvcigxNDMsIDE4OCwgMTQzKSwKKyAgICAiREFSS1NMQVRFQkxVRSI6IENvbG9yKDcyLCA2
MSwgMTM5KSwKKyAgICAiREFSS1NMQVRFR1JBWSI6IENvbG9yKDQ3LCA3OSwgNzkpLAorICAgICJE
QVJLU0xBVEVHUkVZIjogQ29sb3IoNDcsIDc5LCA3OSksCisgICAgIkRBUktUVVJRVU9JU0UiOiBD
b2xvcigwLCAyMDYsIDIwOSksCisgICAgIkRBUktWSU9MRVQiOiBDb2xvcigxNDgsIDAsIDIxMSks
CisgICAgIkRFRVBQSU5LIjogQ29sb3IoMjU1LCAyMCwgMTQ3KSwKKyAgICAiREVFUFNLWUJMVUUi
OiBDb2xvcigwLCAxOTEsIDI1NSksCisgICAgIkRJTUdSQVkiOiBDb2xvcigxMDUsIDEwNSwgMTA1
KSwKKyAgICAiRElNR1JFWSI6IENvbG9yKDEwNSwgMTA1LCAxMDUpLAorICAgICJET0RHRVJCTFVF
IjogQ29sb3IoMzAsIDE0NCwgMjU1KSwKKyAgICAiRklSRUJSSUNLIjogQ29sb3IoMTc4LCAzNCwg
MzQpLAorICAgICJGTE9SQUxXSElURSI6IENvbG9yKDI1NSwgMjUwLCAyNDApLAorICAgICJGT1JF
U1RHUkVFTiI6IENvbG9yKDM0LCAxMzksIDM0KSwKKyAgICAiRlVDSFNJQSI6IENvbG9yKDI1NSwg
MCwgMjU1KSwKKyAgICAiR0FJTlNCT1JPIjogQ29sb3IoMjIwLCAyMjAsIDIyMCksCisgICAgIkdI
T1NUV0hJVEUiOiBDb2xvcigyNDgsIDI0OCwgMjU1KSwKKyAgICAiR09MRCI6IENvbG9yKDI1NSwg
MjE1LCAwKSwKKyAgICAiR09MREVOUk9EIjogQ29sb3IoMjE4LCAxNjUsIDMyKSwKKyAgICAiR1JB
WSI6IENvbG9yKDEyOCwgMTI4LCAxMjgpLAorICAgICJHUkVZIjogQ29sb3IoMTI4LCAxMjgsIDEy
OCksCisgICAgIkdSRUVOIjogQ29sb3IoMCwgMTI4LCAwKSwKKyAgICAiR1JFRU5ZRUxMT1ciOiBD
b2xvcigxNzMsIDI1NSwgNDcpLAorICAgICJIT05FWURFVyI6IENvbG9yKDI0MCwgMjU1LCAyNDAp
LAorICAgICJIT1RQSU5LIjogQ29sb3IoMjU1LCAxMDUsIDE4MCksCisgICAgIklORElBTlJFRCI6
IENvbG9yKDIwNSwgOTIsIDkyKSwKKyAgICAiSU5ESUdPIjogQ29sb3IoNzUsIDAsIDEzMCksCisg
ICAgIklWT1JZIjogQ29sb3IoMjU1LCAyNTUsIDI0MCksCisgICAgIktIQUtJIjogQ29sb3IoMjQw
LCAyMzAsIDE0MCksCisgICAgIkxBVkVOREVSIjogQ29sb3IoMjMwLCAyMzAsIDI1MCksCisgICAg
IkxBVkVOREVSQkxVU0giOiBDb2xvcigyNTUsIDI0MCwgMjQ1KSwKKyAgICAiTEFXTkdSRUVOIjog
Q29sb3IoMTI0LCAyNTIsIDApLAorICAgICJMRU1PTkNISUZGT04iOiBDb2xvcigyNTUsIDI1MCwg
MjA1KSwKKyAgICAiTElHSFRCTFVFIjogQ29sb3IoMTczLCAyMTYsIDIzMCksCisgICAgIkxJR0hU
Q09SQUwiOiBDb2xvcigyNDAsIDEyOCwgMTI4KSwKKyAgICAiTElHSFRDWUFOIjogQ29sb3IoMjI0
LCAyNTUsIDI1NSksCisgICAgIkxJR0hUR09MREVOUk9EWUVMTE9XIjogQ29sb3IoMjUwLCAyNTAs
IDIxMCksCisgICAgIkxJR0hUR1JBWSI6IENvbG9yKDIxMSwgMjExLCAyMTEpLAorICAgICJMSUdI
VEdSRUVOIjogQ29sb3IoMTQ0LCAyMzgsIDE0NCksCisgICAgIkxJR0hUR1JFWSI6IENvbG9yKDIx
MSwgMjExLCAyMTEpLAorICAgICJMSUdIVFBJTksiOiBDb2xvcigyNTUsIDE4MiwgMTkzKSwKKyAg
ICAiTElHSFRTQUxNT04iOiBDb2xvcigyNTUsIDE2MCwgMTIyKSwKKyAgICAiTElHSFRTRUFHUkVF
TiI6IENvbG9yKDMyLCAxNzgsIDE3MCksCisgICAgIkxJR0hUU0tZQkxVRSI6IENvbG9yKDEzNSwg
MjA2LCAyNTApLAorICAgICJMSUdIVFNMQVRFR1JBWSI6IENvbG9yKDExOSwgMTM2LCAxNTMpLAor
ICAgICJMSUdIVFNMQVRFR1JFWSI6IENvbG9yKDExOSwgMTM2LCAxNTMpLAorICAgICJMSUdIVFNU
RUVMQkxVRSI6IENvbG9yKDE3NiwgMTk2LCAyMjIpLAorICAgICJMSUdIVFlFTExPVyI6IENvbG9y
KDI1NSwgMjU1LCAyMjQpLAorICAgICJMSU1FIjogQ29sb3IoMCwgMjU1LCAwKSwKKyAgICAiTElN
RUdSRUVOIjogQ29sb3IoNTAsIDIwNSwgNTApLAorICAgICJMSU5FTiI6IENvbG9yKDI1MCwgMjQw
LCAyMzApLAorICAgICJNQUdFTlRBIjogQ29sb3IoMjU1LCAwLCAyNTUpLAorICAgICJNQVJPT04i
OiBDb2xvcigxMjgsIDAsIDApLAorICAgICJNRURJVU1BUVVBTUFSSU5FIjogQ29sb3IoMTAyLCAy
MDUsIDE3MCksCisgICAgIk1FRElVTUJMVUUiOiBDb2xvcigwLCAwLCAyMDUpLAorICAgICJNRURJ
VU1PUkNISUQiOiBDb2xvcigxODYsIDg1LCAyMTEpLAorICAgICJNRURJVU1QVVJQTEUiOiBDb2xv
cigxNDcsIDExMiwgMjE5KSwKKyAgICAiTUVESVVNU0VBR1JFRU4iOiBDb2xvcig2MCwgMTc5LCAx
MTMpLAorICAgICJNRURJVU1TTEFURUJMVUUiOiBDb2xvcigxMjMsIDEwNCwgMjM4KSwKKyAgICAi
TUVESVVNU1BSSU5HR1JFRU4iOiBDb2xvcigwLCAyNTAsIDE1NCksCisgICAgIk1FRElVTVRVUlFV
T0lTRSI6IENvbG9yKDcyLCAyMDksIDIwNCksCisgICAgIk1FRElVTVZJT0xFVFJFRCI6IENvbG9y
KDE5OSwgMjEsIDEzMyksCisgICAgIk1JRE5JR0hUQkxVRSI6IENvbG9yKDI1LCAyNSwgMTEyKSwK
KyAgICAiTUlOVENSRUFNIjogQ29sb3IoMjQ1LCAyNTUsIDI1MCksCisgICAgIk1JU1RZUk9TRSI6
IENvbG9yKDI1NSwgMjI4LCAyMjUpLAorICAgICJNT0NDQVNJTiI6IENvbG9yKDI1NSwgMjI4LCAx
ODEpLAorICAgICJOQVZBSk9XSElURSI6IENvbG9yKDI1NSwgMjIyLCAxNzMpLAorICAgICJOQVZZ
IjogQ29sb3IoMCwgMCwgMTI4KSwKKyAgICAiT0xETEFDRSI6IENvbG9yKDI1MywgMjQ1LCAyMzAp
LAorICAgICJPTElWRSI6IENvbG9yKDEyOCwgMTI4LCAwKSwKKyAgICAiT0xJVkVEUkFCIjogQ29s
b3IoMTA3LCAxNDIsIDM1KSwKKyAgICAiT1JBTkdFIjogQ29sb3IoMjU1LCAxNjUsIDApLAorICAg
ICJPUkFOR0VSRUQiOiBDb2xvcigyNTUsIDY5LCAwKSwKKyAgICAiT1JDSElEIjogQ29sb3IoMjE4
LCAxMTIsIDIxNCksCisgICAgIlBBTEVHT0xERU5ST0QiOiBDb2xvcigyMzgsIDIzMiwgMTcwKSwK
KyAgICAiUEFMRUdSRUVOIjogQ29sb3IoMTUyLCAyNTEsIDE1MiksCisgICAgIlBBTEVUVVJRVU9J
U0UiOiBDb2xvcigxNzUsIDIzOCwgMjM4KSwKKyAgICAiUEFMRVZJT0xFVFJFRCI6IENvbG9yKDIx
OSwgMTEyLCAxNDcpLAorICAgICJQQVBBWUFXSElQIjogQ29sb3IoMjU1LCAyMzksIDIxMyksCisg
ICAgIlBFQUNIUFVGRiI6IENvbG9yKDI1NSwgMjE4LCAxODUpLAorICAgICJQRVJVIjogQ29sb3Io
MjA1LCAxMzMsIDYzKSwKKyAgICAiUElOSyI6IENvbG9yKDI1NSwgMTkyLCAyMDMpLAorICAgICJQ
TFVNIjogQ29sb3IoMjIxLCAxNjAsIDIyMSksCisgICAgIlBPV0RFUkJMVUUiOiBDb2xvcigxNzYs
IDIyNCwgMjMwKSwKKyAgICAiUFVSUExFIjogQ29sb3IoMTI4LCAwLCAxMjgpLAorICAgICJSRUJF
Q0NBUFVSUExFIjogQ29sb3IoMTI4LCA1MSwgMTUzKSwKKyAgICAiUkVEIjogQ29sb3IoMjU1LCAw
LCAwKSwKKyAgICAiUk9TWUJST1dOIjogQ29sb3IoMTg4LCAxNDMsIDE0MyksCisgICAgIlJPWUFM
QkxVRSI6IENvbG9yKDY1LCAxMDUsIDIyNSksCisgICAgIlNBRERMRUJST1dOIjogQ29sb3IoMTM5
LCA2OSwgMTkpLAorICAgICJTQUxNT04iOiBDb2xvcigyNTAsIDEyOCwgMTE0KSwKKyAgICAiU0FO
RFlCUk9XTiI6IENvbG9yKDI0NCwgMTY0LCA5NiksCisgICAgIlNFQUdSRUVOIjogQ29sb3IoNDYs
IDEzOSwgODcpLAorICAgICJTRUFTSEVMTCI6IENvbG9yKDI1NSwgMjQ1LCAyMzgpLAorICAgICJT
SUVOTkEiOiBDb2xvcigxNjAsIDgyLCA0NSksCisgICAgIlNJTFZFUiI6IENvbG9yKDE5MiwgMTky
LCAxOTIpLAorICAgICJTS1lCTFVFIjogQ29sb3IoMTM1LCAyMDYsIDIzNSksCisgICAgIlNMQVRF
QkxVRSI6IENvbG9yKDEwNiwgOTAsIDIwNSksCisgICAgIlNMQVRFR1JBWSI6IENvbG9yKDExMiwg
MTI4LCAxNDQpLAorICAgICJTTEFURUdSRVkiOiBDb2xvcigxMTIsIDEyOCwgMTQ0KSwKKyAgICAi
U05PVyI6IENvbG9yKDI1NSwgMjUwLCAyNTApLAorICAgICJTUFJJTkdHUkVFTiI6IENvbG9yKDAs
IDI1NSwgMTI3KSwKKyAgICAiU1RFRUxCTFVFIjogQ29sb3IoNzAsIDEzMCwgMTgwKSwKKyAgICAi
VEFOIjogQ29sb3IoMjEwLCAxODAsIDE0MCksCisgICAgIlRFQUwiOiBDb2xvcigwLCAxMjgsIDEy
OCksCisgICAgIlRISVNUTEUiOiBDb2xvcigyMTYsIDE5MSwgMjE2KSwKKyAgICAiVE9NQVRPIjog
Q29sb3IoMjU1LCA5OSwgNzEpLAorICAgICJUVVJRVU9JU0UiOiBDb2xvcig2NCwgMjI0LCAyMDgp
LAorICAgICJWSU9MRVQiOiBDb2xvcigyMzgsIDEzMCwgMjM4KSwKKyAgICAiV0hFQVQiOiBDb2xv
cigyNDUsIDIyMiwgMTc5KSwKKyAgICAiV0hJVEUiOiBDb2xvcigyNTUsIDI1NSwgMjU1KSwKKyAg
ICAiV0hJVEVTTU9LRSI6IENvbG9yKDI0NSwgMjQ1LCAyNDUpLAorICAgICJZRUxMT1ciOiBDb2xv
cigyNTUsIDI1NSwgMCksCisgICAgIllFTExPV0dSRUVOIjogQ29sb3IoMTU0LCAyMDUsIDUwKQor
fQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dlYmRyaXZlci5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2V2
ZW50X2ZpcmluZ193ZWJkcml2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjczYzQ0OGE3ZDg1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5n
X3dlYmRyaXZlci5weQpAQCAtMCwwICsxLDMyMiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdh
cmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmli
dXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1
dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGlu
ZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8g
eW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5z
ZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdp
dGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
KyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMg
VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n
LAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0uY29t
bW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVt
b3RlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5y
ZW1vdGUud2ViZWxlbWVudCBpbXBvcnQgV2ViRWxlbWVudAorZnJvbSAuYWJzdHJhY3RfZXZlbnRf
bGlzdGVuZXIgaW1wb3J0IEFic3RyYWN0RXZlbnRMaXN0ZW5lcgorCisKK2RlZiBfd3JhcF9lbGVt
ZW50cyhyZXN1bHQsIGVmX2RyaXZlcik6CisgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIFdlYkVs
ZW1lbnQpOgorICAgICAgICByZXR1cm4gRXZlbnRGaXJpbmdXZWJFbGVtZW50KHJlc3VsdCwgZWZf
ZHJpdmVyKQorICAgIGVsaWYgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpOgorICAgICAgICByZXR1
cm4gW193cmFwX2VsZW1lbnRzKGl0ZW0sIGVmX2RyaXZlcikgZm9yIGl0ZW0gaW4gcmVzdWx0XQor
ICAgIGVsc2U6CisgICAgICAgIHJldHVybiByZXN1bHQKKworCitjbGFzcyBFdmVudEZpcmluZ1dl
YkRyaXZlcihvYmplY3QpOgorICAgICIiIgorICAgIEEgd3JhcHBlciBhcm91bmQgYW4gYXJiaXRy
YXJ5IFdlYkRyaXZlciBpbnN0YW5jZSB3aGljaCBzdXBwb3J0cyBmaXJpbmcgZXZlbnRzCisgICAg
IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZHJpdmVyLCBldmVudF9saXN0ZW5lcik6Cisg
ICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBFdmVudEZp
cmluZ1dlYkRyaXZlcgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBkcml2ZXIgOiBBIFdl
YkRyaXZlciBpbnN0YW5jZQorICAgICAgICAgLSBldmVudF9saXN0ZW5lciA6IEluc3RhbmNlIG9m
IGEgY2xhc3MgdGhhdCBzdWJjbGFzc2VzIEFic3RyYWN0RXZlbnRMaXN0ZW5lciBhbmQgaW1wbGVt
ZW50cyBpdCBmdWxseSBvciBwYXJ0aWFsbHkKKworICAgICAgICBFeGFtcGxlOgorCisgICAgICAg
IC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICAgICAgZnJvbSBzZWxlbml1bS53ZWJk
cml2ZXIgaW1wb3J0IEZpcmVmb3gKKyAgICAgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVy
LnN1cHBvcnQuZXZlbnRzIGltcG9ydCBFdmVudEZpcmluZ1dlYkRyaXZlciwgQWJzdHJhY3RFdmVu
dExpc3RlbmVyCisKKyAgICAgICAgICAgIGNsYXNzIE15TGlzdGVuZXIoQWJzdHJhY3RFdmVudExp
c3RlbmVyKToKKyAgICAgICAgICAgICAgICBkZWYgYmVmb3JlX25hdmlnYXRlX3RvKHNlbGYsIHVy
bCwgZHJpdmVyKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkJlZm9yZSBuYXZpZ2F0ZSB0
byAlcyIgJSB1cmwpCisgICAgICAgICAgICAgICAgZGVmIGFmdGVyX25hdmlnYXRlX3RvKHNlbGYs
IHVybCwgZHJpdmVyKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkFmdGVyIG5hdmlnYXRl
IHRvICVzIiAlIHVybCkKKworICAgICAgICAgICAgZHJpdmVyID0gRmlyZWZveCgpCisgICAgICAg
ICAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmluZ1dlYkRyaXZlcihkcml2ZXIsIE15TGlzdGVuZXIo
KSkKKyAgICAgICAgICAgIGVmX2RyaXZlci5nZXQoImh0dHA6Ly93d3cuZ29vZ2xlLmNvLmluLyIp
CisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkcml2ZXIsIFdlYkRyaXZl
cik6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIkEgV2ViRHJpdmVyIGlu
c3RhbmNlIG11c3QgYmUgc3VwcGxpZWQiKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShldmVu
dF9saXN0ZW5lciwgQWJzdHJhY3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgICAgIHJhaXNlIFdl
YkRyaXZlckV4Y2VwdGlvbigiRXZlbnQgbGlzdGVuZXIgbXVzdCBiZSBhIHN1YmNsYXNzIG9mIEFi
c3RyYWN0RXZlbnRMaXN0ZW5lciIpCisgICAgICAgIHNlbGYuX2RyaXZlciA9IGRyaXZlcgorICAg
ICAgICBzZWxmLl9kcml2ZXIuX3dyYXBfdmFsdWUgPSBzZWxmLl93cmFwX3ZhbHVlCisgICAgICAg
IHNlbGYuX2xpc3RlbmVyID0gZXZlbnRfbGlzdGVuZXIKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiB3cmFwcGVkX2RyaXZlcihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgV2ViRHJpdmVy
IGluc3RhbmNlIHdyYXBwZWQgYnkgdGhpcyBFdmVudHNGaXJpbmdXZWJEcml2ZXIiIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2RyaXZlcgorCisgICAgZGVmIGdldChzZWxmLCB1cmwpOgorICAgICAg
ICBzZWxmLl9kaXNwYXRjaCgibmF2aWdhdGVfdG8iLCAodXJsLCBzZWxmLl9kcml2ZXIpLCAiZ2V0
IiwgKHVybCwgKSkKKworICAgIGRlZiBiYWNrKHNlbGYpOgorICAgICAgICBzZWxmLl9kaXNwYXRj
aCgibmF2aWdhdGVfYmFjayIsIChzZWxmLl9kcml2ZXIsKSwgImJhY2siLCAoKSkKKworICAgIGRl
ZiBmb3J3YXJkKHNlbGYpOgorICAgICAgICBzZWxmLl9kaXNwYXRjaCgibmF2aWdhdGVfZm9yd2Fy
ZCIsIChzZWxmLl9kcml2ZXIsKSwgImZvcndhcmQiLCAoKSkKKworICAgIGRlZiBleGVjdXRlX3Nj
cmlwdChzZWxmLCBzY3JpcHQsICphcmdzKToKKyAgICAgICAgdW53cmFwcGVkX2FyZ3MgPSAoc2Ny
aXB0LCkgKyBzZWxmLl91bndyYXBfZWxlbWVudF9hcmdzKGFyZ3MpCisgICAgICAgIHJldHVybiBz
ZWxmLl9kaXNwYXRjaCgiZXhlY3V0ZV9zY3JpcHQiLCAoc2NyaXB0LCBzZWxmLl9kcml2ZXIpLCAi
ZXhlY3V0ZV9zY3JpcHQiLCB1bndyYXBwZWRfYXJncykKKworICAgIGRlZiBleGVjdXRlX2FzeW5j
X3NjcmlwdChzZWxmLCBzY3JpcHQsICphcmdzKToKKyAgICAgICAgdW53cmFwcGVkX2FyZ3MgPSAo
c2NyaXB0LCkgKyBzZWxmLl91bndyYXBfZWxlbWVudF9hcmdzKGFyZ3MpCisgICAgICAgIHJldHVy
biBzZWxmLl9kaXNwYXRjaCgiZXhlY3V0ZV9zY3JpcHQiLCAoc2NyaXB0LCBzZWxmLl9kcml2ZXIp
LCAiZXhlY3V0ZV9hc3luY19zY3JpcHQiLCB1bndyYXBwZWRfYXJncykKKworICAgIGRlZiBjbG9z
ZShzZWxmKToKKyAgICAgICAgc2VsZi5fZGlzcGF0Y2goImNsb3NlIiwgKHNlbGYuX2RyaXZlciwp
LCAiY2xvc2UiLCAoKSkKKworICAgIGRlZiBxdWl0KHNlbGYpOgorICAgICAgICBzZWxmLl9kaXNw
YXRjaCgicXVpdCIsIChzZWxmLl9kcml2ZXIsKSwgInF1aXQiLCAoKSkKKworICAgIGRlZiBmaW5k
X2VsZW1lbnQoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fZGlzcGF0Y2goImZpbmQiLCAoYnksIHZhbHVlLCBzZWxmLl9kcml2ZXIpLCAiZmluZF9lbGVt
ZW50IiwgKGJ5LCB2YWx1ZSkpCisKKyAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1CeS5J
RCwgdmFsdWU9Tm9uZSk6CisgICAgICAgIHJldHVybiBzZWxmLl9kaXNwYXRjaCgiZmluZCIsIChi
eSwgdmFsdWUsIHNlbGYuX2RyaXZlciksICJmaW5kX2VsZW1lbnRzIiwgKGJ5LCB2YWx1ZSkpCisK
KyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2lkKHNlbGYsIGlkXyk6CisgICAgICAgIHJldHVybiBz
ZWxmLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9aWRfKQorCisgICAgZGVmIGZpbmRfZWxl
bWVudHNfYnlfaWQoc2VsZiwgaWRfKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50
cyhieT1CeS5JRCwgdmFsdWU9aWRfKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV94cGF0aChz
ZWxmLCB4cGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5YUEFU
SCwgdmFsdWU9eHBhdGgpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV94cGF0aChzZWxmLCB4
cGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuWFBBVEgsIHZh
bHVlPXhwYXRoKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoc2VsZiwgbGlu
a190ZXh0KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LkxJTktfVEVY
VCwgdmFsdWU9bGlua190ZXh0KQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfbGlua190ZXh0
KHNlbGYsIHRleHQpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkxJ
TktfVEVYVCwgdmFsdWU9dGV4dCkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfcGFydGlhbF9s
aW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVt
ZW50KGJ5PUJ5LlBBUlRJQUxfTElOS19URVhULCB2YWx1ZT1saW5rX3RleHQpCisKKyAgICBkZWYg
ZmluZF9lbGVtZW50c19ieV9wYXJ0aWFsX2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgorICAg
ICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LlBBUlRJQUxfTElOS19URVhULCB2
YWx1ZT1saW5rX3RleHQpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X25hbWUoc2VsZiwgbmFt
ZSk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT1u
YW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfbmFtZShzZWxmLCBuYW1lKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5OQU1FLCB2YWx1ZT1uYW1lKQorCisg
ICAgZGVmIGZpbmRfZWxlbWVudF9ieV90YWdfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LlRBR19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAg
ZGVmIGZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVy
biBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuVEFHX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBk
ZWYgZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVy
biBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5DTEFTU19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAg
ZGVmIGZpbmRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5DTEFTU19OQU1FLCB2YWx1ZT1uYW1lKQorCisg
ICAgZGVmIGZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3Ioc2VsZiwgY3NzX3NlbGVjdG9yKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LkNTU19TRUxFQ1RPUiwgdmFs
dWU9Y3NzX3NlbGVjdG9yKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9y
KHNlbGYsIGNzc19zZWxlY3Rvcik6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMo
Ynk9QnkuQ1NTX1NFTEVDVE9SLCB2YWx1ZT1jc3Nfc2VsZWN0b3IpCisKKyAgICBkZWYgX2Rpc3Bh
dGNoKHNlbGYsIGxfY2FsbCwgbF9hcmdzLCBkX2NhbGwsIGRfYXJncyk6CisgICAgICAgIGdldGF0
dHIoc2VsZi5fbGlzdGVuZXIsICJiZWZvcmVfJXMiICUgbF9jYWxsKSgqbF9hcmdzKQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBnZXRhdHRyKHNlbGYuX2RyaXZlciwgZF9jYWxs
KSgqZF9hcmdzKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBz
ZWxmLl9saXN0ZW5lci5vbl9leGNlcHRpb24oZSwgc2VsZi5fZHJpdmVyKQorICAgICAgICAgICAg
cmFpc2UgZQorICAgICAgICBnZXRhdHRyKHNlbGYuX2xpc3RlbmVyLCAiYWZ0ZXJfJXMiICUgbF9j
YWxsKSgqbF9hcmdzKQorICAgICAgICByZXR1cm4gX3dyYXBfZWxlbWVudHMocmVzdWx0LCBzZWxm
KQorCisgICAgZGVmIF91bndyYXBfZWxlbWVudF9hcmdzKHNlbGYsIGFyZ3MpOgorICAgICAgICBp
ZiBpc2luc3RhbmNlKGFyZ3MsIEV2ZW50RmlyaW5nV2ViRWxlbWVudCk6CisgICAgICAgICAgICBy
ZXR1cm4gYXJncy53cmFwcGVkX2VsZW1lbnQKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKGFyZ3Ms
IHR1cGxlKToKKyAgICAgICAgICAgIHJldHVybiB0dXBsZShbc2VsZi5fdW53cmFwX2VsZW1lbnRf
YXJncyhpdGVtKSBmb3IgaXRlbSBpbiBhcmdzXSkKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKGFy
Z3MsIGxpc3QpOgorICAgICAgICAgICAgcmV0dXJuIFtzZWxmLl91bndyYXBfZWxlbWVudF9hcmdz
KGl0ZW0pIGZvciBpdGVtIGluIGFyZ3NdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1
cm4gYXJncworCisgICAgZGVmIF93cmFwX3ZhbHVlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgaWYg
aXNpbnN0YW5jZSh2YWx1ZSwgRXZlbnRGaXJpbmdXZWJFbGVtZW50KToKKyAgICAgICAgICAgIHJl
dHVybiBXZWJEcml2ZXIuX3dyYXBfdmFsdWUoc2VsZi5fZHJpdmVyLCB2YWx1ZS53cmFwcGVkX2Vs
ZW1lbnQpCisgICAgICAgIHJldHVybiBXZWJEcml2ZXIuX3dyYXBfdmFsdWUoc2VsZi5fZHJpdmVy
LCB2YWx1ZSkKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBpdGVtLCB2YWx1ZSk6CisgICAg
ICAgIGlmIGl0ZW0uc3RhcnRzd2l0aCgiXyIpIG9yIG5vdCBoYXNhdHRyKHNlbGYuX2RyaXZlciwg
aXRlbSk6CisgICAgICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgaXRlbSwgdmFsdWUp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgb2JqZWN0
Ll9fc2V0YXR0cl9fKHNlbGYuX2RyaXZlciwgaXRlbSwgdmFsdWUpCisgICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIub25fZXhj
ZXB0aW9uKGUsIHNlbGYuX2RyaXZlcikKKyAgICAgICAgICAgICAgICByYWlzZSBlCisKKyAgICBk
ZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGRlZiBfd3JhcCgqYXJncywgKipr
d2FyZ3MpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF0dHJp
YigqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIF93cmFwX2VsZW1lbnRz
KHJlc3VsdCwgc2VsZikKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg
ICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5vbl9leGNlcHRpb24oZSwgc2VsZi5fZHJpdmVyKQor
ICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXR0cmli
ID0gZ2V0YXR0cihzZWxmLl9kcml2ZXIsIG5hbWUpCisgICAgICAgICAgICByZXR1cm4gX3dyYXAg
aWYgY2FsbGFibGUoYXR0cmliKSBlbHNlIGF0dHJpYgorICAgICAgICBleGNlcHQgRXhjZXB0aW9u
IGFzIGU6CisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5vbl9leGNlcHRpb24oZSwgc2VsZi5f
ZHJpdmVyKQorICAgICAgICAgICAgcmFpc2UKKworCitjbGFzcyBFdmVudEZpcmluZ1dlYkVsZW1l
bnQob2JqZWN0KToKKyAgICAiIiIiCisgICAgQSB3cmFwcGVyIGFyb3VuZCBXZWJFbGVtZW50IGlu
c3RhbmNlIHdoaWNoIHN1cHBvcnRzIGZpcmluZyBldmVudHMKKyAgICAiIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB3ZWJlbGVtZW50LCBlZl9kcml2ZXIpOgorICAgICAgICAiIiIKKyAgICAg
ICAgQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRXZlbnRGaXJpbmdXZWJFbGVtZW50Cisg
ICAgICAgICIiIgorICAgICAgICBzZWxmLl93ZWJlbGVtZW50ID0gd2ViZWxlbWVudAorICAgICAg
ICBzZWxmLl9lZl9kcml2ZXIgPSBlZl9kcml2ZXIKKyAgICAgICAgc2VsZi5fZHJpdmVyID0gZWZf
ZHJpdmVyLndyYXBwZWRfZHJpdmVyCisgICAgICAgIHNlbGYuX2xpc3RlbmVyID0gZWZfZHJpdmVy
Ll9saXN0ZW5lcgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHdyYXBwZWRfZWxlbWVudChzZWxm
KToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgV2ViRWxlbWVudCB3cmFwcGVkIGJ5IHRoaXMgRXZl
bnRGaXJpbmdXZWJFbGVtZW50IGluc3RhbmNlIiIiCisgICAgICAgIHJldHVybiBzZWxmLl93ZWJl
bGVtZW50CisKKyAgICBkZWYgY2xpY2soc2VsZik6CisgICAgICAgIHNlbGYuX2Rpc3BhdGNoKCJj
bGljayIsIChzZWxmLl93ZWJlbGVtZW50LCBzZWxmLl9kcml2ZXIpLCAiY2xpY2siLCAoKSkKKwor
ICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgc2VsZi5fZGlzcGF0Y2goImNoYW5nZV92YWx1
ZV9vZiIsIChzZWxmLl93ZWJlbGVtZW50LCBzZWxmLl9kcml2ZXIpLCAiY2xlYXIiLCAoKSkKKwor
ICAgIGRlZiBzZW5kX2tleXMoc2VsZiwgKnZhbHVlKToKKyAgICAgICAgc2VsZi5fZGlzcGF0Y2go
ImNoYW5nZV92YWx1ZV9vZiIsIChzZWxmLl93ZWJlbGVtZW50LCBzZWxmLl9kcml2ZXIpLCAic2Vu
ZF9rZXlzIiwgdmFsdWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50KHNlbGYsIGJ5PUJ5LklELCB2
YWx1ZT1Ob25lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Rpc3BhdGNoKCJmaW5kIiwgKGJ5LCB2
YWx1ZSwgc2VsZi5fZHJpdmVyKSwgImZpbmRfZWxlbWVudCIsIChieSwgdmFsdWUpKQorCisgICAg
ZGVmIGZpbmRfZWxlbWVudHMoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fZGlzcGF0Y2goImZpbmQiLCAoYnksIHZhbHVlLCBzZWxmLl9kcml2ZXIpLCAi
ZmluZF9lbGVtZW50cyIsIChieSwgdmFsdWUpKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9p
ZChzZWxmLCBpZF8pOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuSUQs
IHZhbHVlPWlkXykKKworICAgIGRlZiBmaW5kX2VsZW1lbnRzX2J5X2lkKHNlbGYsIGlkXyk6Cisg
ICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuSUQsIHZhbHVlPWlkXykKKwor
ICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5Lk5BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmlu
ZF9lbGVtZW50c19ieV9uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5k
X2VsZW1lbnRzKGJ5PUJ5Lk5BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50
X2J5X2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5k
X2VsZW1lbnQoYnk9QnkuTElOS19URVhULCB2YWx1ZT1saW5rX3RleHQpCisKKyAgICBkZWYgZmlu
ZF9lbGVtZW50c19ieV9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgcmV0dXJu
IHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5MSU5LX1RFWFQsIHZhbHVlPWxpbmtfdGV4dCkKKwor
ICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfcGFydGlhbF9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LlBBUlRJQUxfTElOS19U
RVhULCB2YWx1ZT1saW5rX3RleHQpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9wYXJ0aWFs
X2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2Vs
ZW1lbnRzKGJ5PUJ5LlBBUlRJQUxfTElOS19URVhULCB2YWx1ZT1saW5rX3RleHQpCisKKyAgICBk
ZWYgZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4g
c2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuVEFHX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYg
ZmluZF9lbGVtZW50c19ieV90YWdfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuZmluZF9lbGVtZW50cyhieT1CeS5UQUdfTkFNRSwgdmFsdWU9bmFtZSkKKworICAgIGRlZiBm
aW5kX2VsZW1lbnRfYnlfeHBhdGgoc2VsZiwgeHBhdGgpOgorICAgICAgICByZXR1cm4gc2VsZi5m
aW5kX2VsZW1lbnQoYnk9QnkuWFBBVEgsIHZhbHVlPXhwYXRoKQorCisgICAgZGVmIGZpbmRfZWxl
bWVudHNfYnlfeHBhdGgoc2VsZiwgeHBhdGgpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2Vs
ZW1lbnRzKGJ5PUJ5LlhQQVRILCB2YWx1ZT14cGF0aCkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRf
YnlfY2xhc3NfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVt
ZW50KGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50
c19ieV9jbGFzc19uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2Vs
ZW1lbnRzKGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVt
ZW50X2J5X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nfc2VsZWN0b3IpOgorICAgICAgICByZXR1cm4g
c2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuQ1NTX1NFTEVDVE9SLCB2YWx1ZT1jc3Nfc2VsZWN0b3Ip
CisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9jc3Nfc2VsZWN0b3Ioc2VsZiwgY3NzX3NlbGVj
dG9yKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5DU1NfU0VMRUNU
T1IsIHZhbHVlPWNzc19zZWxlY3RvcikKKworICAgIGRlZiBfZGlzcGF0Y2goc2VsZiwgbF9jYWxs
LCBsX2FyZ3MsIGRfY2FsbCwgZF9hcmdzKToKKyAgICAgICAgZ2V0YXR0cihzZWxmLl9saXN0ZW5l
ciwgImJlZm9yZV8lcyIgJSBsX2NhbGwpKCpsX2FyZ3MpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHJlc3VsdCA9IGdldGF0dHIoc2VsZi5fd2ViZWxlbWVudCwgZF9jYWxsKSgqZF9hcmdzKQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBzZWxmLl9saXN0ZW5l
ci5vbl9leGNlcHRpb24oZSwgc2VsZi5fZHJpdmVyKQorICAgICAgICAgICAgcmFpc2UgZQorICAg
ICAgICBnZXRhdHRyKHNlbGYuX2xpc3RlbmVyLCAiYWZ0ZXJfJXMiICUgbF9jYWxsKSgqbF9hcmdz
KQorICAgICAgICByZXR1cm4gX3dyYXBfZWxlbWVudHMocmVzdWx0LCBzZWxmLl9lZl9kcml2ZXIp
CisKKyAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgaXRlbSwgdmFsdWUpOgorICAgICAgICBpZiBp
dGVtLnN0YXJ0c3dpdGgoIl8iKSBvciBub3QgaGFzYXR0cihzZWxmLl93ZWJlbGVtZW50LCBpdGVt
KToKKyAgICAgICAgICAgIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBpdGVtLCB2YWx1ZSkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvYmplY3QuX19z
ZXRhdHRyX18oc2VsZi5fd2ViZWxlbWVudCwgaXRlbSwgdmFsdWUpCisgICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIub25fZXhj
ZXB0aW9uKGUsIHNlbGYuX2RyaXZlcikKKyAgICAgICAgICAgICAgICByYWlzZSBlCisKKyAgICBk
ZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGRlZiBfd3JhcCgqYXJncywgKipr
d2FyZ3MpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF0dHJp
YigqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIF93cmFwX2VsZW1lbnRz
KHJlc3VsdCwgc2VsZi5fZWZfZHJpdmVyKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgorICAgICAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyLm9uX2V4Y2VwdGlvbihlLCBzZWxm
Ll9kcml2ZXIpCisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICB0cnk6CisgICAgICAg
ICAgICBhdHRyaWIgPSBnZXRhdHRyKHNlbGYuX3dlYmVsZW1lbnQsIG5hbWUpCisgICAgICAgICAg
ICByZXR1cm4gX3dyYXAgaWYgY2FsbGFibGUoYXR0cmliKSBlbHNlIGF0dHJpYgorICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5vbl9leGNl
cHRpb24oZSwgc2VsZi5fZHJpdmVyKQorICAgICAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBw
b3J0L2V2ZW50cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9zdXBwb3J0L2V2ZW50cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNzc1ZDAwYTY2NWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVu
dHMucHkKQEAgLTAsMCArMSwxOSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gLmFic3RyYWN0X2V2ZW50X2xpc3Rl
bmVyIGltcG9ydCBBYnN0cmFjdEV2ZW50TGlzdGVuZXIgICMgbm9xYQorZnJvbSAuZXZlbnRfZmly
aW5nX3dlYmRyaXZlciBpbXBvcnQgRXZlbnRGaXJpbmdXZWJEcml2ZXIgICMgbm9xYQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3N1cHBvcnQvZXhwZWN0ZWRfY29uZGl0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2V4cGVjdGVkX2NvbmRp
dGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc5MjE1NTI3
YjFkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXhwZWN0ZWRfY29uZGl0aW9ucy5weQpAQCAt
MCwwICsxLDQwOSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2
YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVl
bWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3Jr
IGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJz
aGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFj
aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3
LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5
IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0
cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMi
IEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwg
ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNw
ZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMg
dW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1w
b3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlv
bnMgaW1wb3J0IE5vU3VjaEZyYW1lRXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNl
cHRpb25zIGltcG9ydCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24KK2Zyb20gc2VsZW5p
dW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgTm9BbGVydFByZXNlbnRFeGNlcHRpb24KKwor
IiIiCisgKiBDYW5uZWQgIkV4cGVjdGVkIENvbmRpdGlvbnMiIHdoaWNoIGFyZSBnZW5lcmFsbHkg
dXNlZnVsIHdpdGhpbiB3ZWJkcml2ZXIKKyAqIHRlc3RzLgorIiIiCisKKworY2xhc3MgdGl0bGVf
aXMob2JqZWN0KToKKyAgICAiIiJBbiBleHBlY3RhdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHRpdGxl
IG9mIGEgcGFnZS4KKyAgICB0aXRsZSBpcyB0aGUgZXhwZWN0ZWQgdGl0bGUsIHdoaWNoIG11c3Qg
YmUgYW4gZXhhY3QgbWF0Y2gKKyAgICByZXR1cm5zIFRydWUgaWYgdGhlIHRpdGxlIG1hdGNoZXMs
IGZhbHNlIG90aGVyd2lzZS4iIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGl0bGUpOgorICAg
ICAgICBzZWxmLnRpdGxlID0gdGl0bGUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIp
OgorICAgICAgICByZXR1cm4gc2VsZi50aXRsZSA9PSBkcml2ZXIudGl0bGUKKworCitjbGFzcyB0
aXRsZV9jb250YWlucyhvYmplY3QpOgorICAgICIiIiBBbiBleHBlY3RhdGlvbiBmb3IgY2hlY2tp
bmcgdGhhdCB0aGUgdGl0bGUgY29udGFpbnMgYSBjYXNlLXNlbnNpdGl2ZQorICAgIHN1YnN0cmlu
Zy4gdGl0bGUgaXMgdGhlIGZyYWdtZW50IG9mIHRpdGxlIGV4cGVjdGVkCisgICAgcmV0dXJucyBU
cnVlIHdoZW4gdGhlIHRpdGxlIG1hdGNoZXMsIEZhbHNlIG90aGVyd2lzZQorICAgICIiIgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB0aXRsZSk6CisgICAgICAgIHNlbGYudGl0bGUgPSB0aXRsZQor
CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHJldHVybiBzZWxmLnRp
dGxlIGluIGRyaXZlci50aXRsZQorCisKK2NsYXNzIHByZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRl
ZChvYmplY3QpOgorICAgICIiIiBBbiBleHBlY3RhdGlvbiBmb3IgY2hlY2tpbmcgdGhhdCBhbiBl
bGVtZW50IGlzIHByZXNlbnQgb24gdGhlIERPTQorICAgIG9mIGEgcGFnZS4gVGhpcyBkb2VzIG5v
dCBuZWNlc3NhcmlseSBtZWFuIHRoYXQgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZS4KKyAgICBsb2Nh
dG9yIC0gdXNlZCB0byBmaW5kIHRoZSBlbGVtZW50CisgICAgcmV0dXJucyB0aGUgV2ViRWxlbWVu
dCBvbmNlIGl0IGlzIGxvY2F0ZWQKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9j
YXRvcik6CisgICAgICAgIHNlbGYubG9jYXRvciA9IGxvY2F0b3IKKworICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCBkcml2ZXIpOgorICAgICAgICByZXR1cm4gX2ZpbmRfZWxlbWVudChkcml2ZXIsIHNl
bGYubG9jYXRvcikKKworCitjbGFzcyB1cmxfY29udGFpbnMob2JqZWN0KToKKyAgICAiIiIgQW4g
ZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoYXQgdGhlIGN1cnJlbnQgdXJsIGNvbnRhaW5zIGEK
KyAgICBjYXNlLXNlbnNpdGl2ZSBzdWJzdHJpbmcuCisgICAgdXJsIGlzIHRoZSBmcmFnbWVudCBv
ZiB1cmwgZXhwZWN0ZWQsCisgICAgcmV0dXJucyBUcnVlIHdoZW4gdGhlIHRpdGxlIG1hdGNoZXMs
IEZhbHNlIG90aGVyd2lzZQorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwpOgor
ICAgICAgICBzZWxmLnVybCA9IHVybAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6
CisgICAgICAgIHJldHVybiBzZWxmLnVybCBpbiBkcml2ZXIuY3VycmVudF91cmwKKworCitjbGFz
cyB1cmxfbWF0Y2hlcyhvYmplY3QpOgorICAgICIiIkFuIGV4cGVjdGF0aW9uIGZvciBjaGVja2lu
ZyB0aGUgY3VycmVudCB1cmwuCisgICAgcGF0dGVybiBpcyB0aGUgZXhwZWN0ZWQgcGF0dGVybiwg
d2hpY2ggbXVzdCBiZSBhbiBleGFjdCBtYXRjaAorICAgIHJldHVybnMgVHJ1ZSBpZiB0aGUgdGl0
bGUgbWF0Y2hlcywgZmFsc2Ugb3RoZXJ3aXNlLiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
YXR0ZXJuKToKKyAgICAgICAgc2VsZi5wYXR0ZXJuID0gcGF0dGVybgorCisgICAgZGVmIF9fY2Fs
bF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIGltcG9ydCByZQorICAgICAgICBtYXRjaCA9IHJl
LnNlYXJjaChzZWxmLnBhdHRlcm4sIGRyaXZlci5jdXJyZW50X3VybCkKKworICAgICAgICByZXR1
cm4gbWF0Y2ggaXMgbm90IE5vbmUKKworCitjbGFzcyB1cmxfdG9fYmUob2JqZWN0KToKKyAgICAi
IiJBbiBleHBlY3RhdGlvbiBmb3IgY2hlY2tpbmcgdGhlIGN1cnJlbnQgdXJsLgorICAgIHVybCBp
cyB0aGUgZXhwZWN0ZWQgdXJsLCB3aGljaCBtdXN0IGJlIGFuIGV4YWN0IG1hdGNoCisgICAgcmV0
dXJucyBUcnVlIGlmIHRoZSB0aXRsZSBtYXRjaGVzLCBmYWxzZSBvdGhlcndpc2UuIiIiCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHVybCk6CisgICAgICAgIHNlbGYudXJsID0gdXJsCisKKyAgICBk
ZWYgX19jYWxsX18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYudXJsID09IGRy
aXZlci5jdXJyZW50X3VybAorCisKK2NsYXNzIHVybF9jaGFuZ2VzKG9iamVjdCk6CisgICAgIiIi
QW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoZSBjdXJyZW50IHVybC4KKyAgICB1cmwgaXMg
dGhlIGV4cGVjdGVkIHVybCwgd2hpY2ggbXVzdCBub3QgYmUgYW4gZXhhY3QgbWF0Y2gKKyAgICBy
ZXR1cm5zIFRydWUgaWYgdGhlIHVybCBpcyBkaWZmZXJlbnQsIGZhbHNlIG90aGVyd2lzZS4iIiIK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsKToKKyAgICAgICAgc2VsZi51cmwgPSB1cmwKKwor
ICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICByZXR1cm4gc2VsZi51cmwg
IT0gZHJpdmVyLmN1cnJlbnRfdXJsCisKKworY2xhc3MgdmlzaWJpbGl0eV9vZl9lbGVtZW50X2xv
Y2F0ZWQob2JqZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoYXQg
YW4gZWxlbWVudCBpcyBwcmVzZW50IG9uIHRoZSBET00gb2YgYQorICAgIHBhZ2UgYW5kIHZpc2li
bGUuIFZpc2liaWxpdHkgbWVhbnMgdGhhdCB0aGUgZWxlbWVudCBpcyBub3Qgb25seSBkaXNwbGF5
ZWQKKyAgICBidXQgYWxzbyBoYXMgYSBoZWlnaHQgYW5kIHdpZHRoIHRoYXQgaXMgZ3JlYXRlciB0
aGFuIDAuCisgICAgbG9jYXRvciAtIHVzZWQgdG8gZmluZCB0aGUgZWxlbWVudAorICAgIHJldHVy
bnMgdGhlIFdlYkVsZW1lbnQgb25jZSBpdCBpcyBsb2NhdGVkIGFuZCB2aXNpYmxlCisgICAgIiIi
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvY2F0b3IpOgorICAgICAgICBzZWxmLmxvY2F0b3Ig
PSBsb2NhdG9yCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmV0dXJuIF9lbGVtZW50X2lmX3Zpc2libGUoX2ZpbmRfZWxlbWVudChk
cml2ZXIsIHNlbGYubG9jYXRvcikpCisgICAgICAgIGV4Y2VwdCBTdGFsZUVsZW1lbnRSZWZlcmVu
Y2VFeGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworCitjbGFzcyB2aXNpYmls
aXR5X29mKG9iamVjdCk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIGZvciBjaGVja2luZyB0aGF0
IGFuIGVsZW1lbnQsIGtub3duIHRvIGJlIHByZXNlbnQgb24gdGhlCisgICAgRE9NIG9mIGEgcGFn
ZSwgaXMgdmlzaWJsZS4gVmlzaWJpbGl0eSBtZWFucyB0aGF0IHRoZSBlbGVtZW50IGlzIG5vdCBv
bmx5CisgICAgZGlzcGxheWVkIGJ1dCBhbHNvIGhhcyBhIGhlaWdodCBhbmQgd2lkdGggdGhhdCBp
cyBncmVhdGVyIHRoYW4gMC4KKyAgICBlbGVtZW50IGlzIHRoZSBXZWJFbGVtZW50CisgICAgcmV0
dXJucyB0aGUgKHNhbWUpIFdlYkVsZW1lbnQgb25jZSBpdCBpcyB2aXNpYmxlCisgICAgIiIiCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGVsZW1lbnQpOgorICAgICAgICBzZWxmLmVsZW1lbnQgPSBl
bGVtZW50CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgaWdub3JlZCk6CisgICAgICAgIHJldHVy
biBfZWxlbWVudF9pZl92aXNpYmxlKHNlbGYuZWxlbWVudCkKKworCitkZWYgX2VsZW1lbnRfaWZf
dmlzaWJsZShlbGVtZW50LCB2aXNpYmlsaXR5PVRydWUpOgorICAgIHJldHVybiBlbGVtZW50IGlm
IGVsZW1lbnQuaXNfZGlzcGxheWVkKCkgPT0gdmlzaWJpbGl0eSBlbHNlIEZhbHNlCisKKworY2xh
c3MgcHJlc2VuY2Vfb2ZfYWxsX2VsZW1lbnRzX2xvY2F0ZWQob2JqZWN0KToKKyAgICAiIiIgQW4g
ZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoYXQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGVsZW1l
bnQgcHJlc2VudAorICAgIG9uIGEgd2ViIHBhZ2UuCisgICAgbG9jYXRvciBpcyB1c2VkIHRvIGZp
bmQgdGhlIGVsZW1lbnQKKyAgICByZXR1cm5zIHRoZSBsaXN0IG9mIFdlYkVsZW1lbnRzIG9uY2Ug
dGhleSBhcmUgbG9jYXRlZAorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2NhdG9y
KToKKyAgICAgICAgc2VsZi5sb2NhdG9yID0gbG9jYXRvcgorCisgICAgZGVmIF9fY2FsbF9fKHNl
bGYsIGRyaXZlcik6CisgICAgICAgIHJldHVybiBfZmluZF9lbGVtZW50cyhkcml2ZXIsIHNlbGYu
bG9jYXRvcikKKworCitjbGFzcyB2aXNpYmlsaXR5X29mX2FueV9lbGVtZW50c19sb2NhdGVkKG9i
amVjdCk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIGZvciBjaGVja2luZyB0aGF0IHRoZXJlIGlz
IGF0IGxlYXN0IG9uZSBlbGVtZW50IHZpc2libGUKKyAgICBvbiBhIHdlYiBwYWdlLgorICAgIGxv
Y2F0b3IgaXMgdXNlZCB0byBmaW5kIHRoZSBlbGVtZW50CisgICAgcmV0dXJucyB0aGUgbGlzdCBv
ZiBXZWJFbGVtZW50cyBvbmNlIHRoZXkgYXJlIGxvY2F0ZWQKKyAgICAiIiIKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9jYXRvcik6CisgICAgICAgIHNlbGYubG9jYXRvciA9IGxvY2F0b3IKKwor
ICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICByZXR1cm4gW2VsZW1lbnQg
Zm9yIGVsZW1lbnQgaW4gX2ZpbmRfZWxlbWVudHMoZHJpdmVyLCBzZWxmLmxvY2F0b3IpIGlmIF9l
bGVtZW50X2lmX3Zpc2libGUoZWxlbWVudCldCisKKworY2xhc3MgdmlzaWJpbGl0eV9vZl9hbGxf
ZWxlbWVudHNfbG9jYXRlZChvYmplY3QpOgorICAgICIiIiBBbiBleHBlY3RhdGlvbiBmb3IgY2hl
Y2tpbmcgdGhhdCBhbGwgZWxlbWVudHMgYXJlIHByZXNlbnQgb24gdGhlIERPTSBvZiBhCisgICAg
cGFnZSBhbmQgdmlzaWJsZS4gVmlzaWJpbGl0eSBtZWFucyB0aGF0IHRoZSBlbGVtZW50cyBhcmUg
bm90IG9ubHkgZGlzcGxheWVkCisgICAgYnV0IGFsc28gaGFzIGEgaGVpZ2h0IGFuZCB3aWR0aCB0
aGF0IGlzIGdyZWF0ZXIgdGhhbiAwLgorICAgIGxvY2F0b3IgLSB1c2VkIHRvIGZpbmQgdGhlIGVs
ZW1lbnRzCisgICAgcmV0dXJucyB0aGUgbGlzdCBvZiBXZWJFbGVtZW50cyBvbmNlIHRoZXkgYXJl
IGxvY2F0ZWQgYW5kIHZpc2libGUKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9j
YXRvcik6CisgICAgICAgIHNlbGYubG9jYXRvciA9IGxvY2F0b3IKKworICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCBkcml2ZXIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBlbGVtZW50cyA9IF9m
aW5kX2VsZW1lbnRzKGRyaXZlciwgc2VsZi5sb2NhdG9yKQorICAgICAgICAgICAgZm9yIGVsZW1l
bnQgaW4gZWxlbWVudHM6CisgICAgICAgICAgICAgICAgaWYgX2VsZW1lbnRfaWZfdmlzaWJsZShl
bGVtZW50LCB2aXNpYmlsaXR5PUZhbHNlKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMKKyAgICAgICAgZXhjZXB0IFN0YWxlRWxl
bWVudFJlZmVyZW5jZUV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2Ns
YXNzIHRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVtZW50KG9iamVjdCk6CisgICAgIiIiIEFuIGV4
cGVjdGF0aW9uIGZvciBjaGVja2luZyBpZiB0aGUgZ2l2ZW4gdGV4dCBpcyBwcmVzZW50IGluIHRo
ZQorICAgIHNwZWNpZmllZCBlbGVtZW50LgorICAgIGxvY2F0b3IsIHRleHQKKyAgICAiIiIKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvciwgdGV4dF8pOgorICAgICAgICBzZWxmLmxvY2F0
b3IgPSBsb2NhdG9yCisgICAgICAgIHNlbGYudGV4dCA9IHRleHRfCisKKyAgICBkZWYgX19jYWxs
X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZWxlbWVudF90ZXh0
ID0gX2ZpbmRfZWxlbWVudChkcml2ZXIsIHNlbGYubG9jYXRvcikudGV4dAorICAgICAgICAgICAg
cmV0dXJuIHNlbGYudGV4dCBpbiBlbGVtZW50X3RleHQKKyAgICAgICAgZXhjZXB0IFN0YWxlRWxl
bWVudFJlZmVyZW5jZUV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2Ns
YXNzIHRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVtZW50X3ZhbHVlKG9iamVjdCk6CisgICAgIiIi
CisgICAgQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIGlmIHRoZSBnaXZlbiB0ZXh0IGlzIHBy
ZXNlbnQgaW4gdGhlIGVsZW1lbnQncworICAgIGxvY2F0b3IsIHRleHQKKyAgICAiIiIKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9jYXRvciwgdGV4dF8pOgorICAgICAgICBzZWxmLmxvY2F0b3Ig
PSBsb2NhdG9yCisgICAgICAgIHNlbGYudGV4dCA9IHRleHRfCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgZHJpdmVyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZWxlbWVudF90ZXh0ID0g
X2ZpbmRfZWxlbWVudChkcml2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYubG9jYXRvcikuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgICAgICAgICAg
aWYgZWxlbWVudF90ZXh0OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnRleHQgaW4gZWxl
bWVudF90ZXh0CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICBleGNlcHQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uOgorICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIGZyYW1lX3RvX2JlX2F2YWlsYWJsZV9h
bmRfc3dpdGNoX3RvX2l0KG9iamVjdCk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIGZvciBjaGVj
a2luZyB3aGV0aGVyIHRoZSBnaXZlbiBmcmFtZSBpcyBhdmFpbGFibGUgdG8KKyAgICBzd2l0Y2gg
dG8uICBJZiB0aGUgZnJhbWUgaXMgYXZhaWxhYmxlIGl0IHN3aXRjaGVzIHRoZSBnaXZlbiBkcml2
ZXIgdG8gdGhlCisgICAgc3BlY2lmaWVkIGZyYW1lLgorICAgICIiIgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAgc2VsZi5mcmFtZV9sb2NhdG9yID0gbG9jYXRvcgor
CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5mcmFtZV9sb2NhdG9yLCB0dXBsZSk6CisgICAgICAgICAg
ICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShfZmluZF9lbGVtZW50KGRyaXZlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mcmFt
ZV9sb2NhdG9yKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZHJpdmVyLnN3
aXRjaF90by5mcmFtZShzZWxmLmZyYW1lX2xvY2F0b3IpCisgICAgICAgICAgICByZXR1cm4gVHJ1
ZQorICAgICAgICBleGNlcHQgTm9TdWNoRnJhbWVFeGNlcHRpb246CisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworCitjbGFzcyBpbnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKG9iamVj
dCk6CisgICAgIiIiIEFuIEV4cGVjdGF0aW9uIGZvciBjaGVja2luZyB0aGF0IGFuIGVsZW1lbnQg
aXMgZWl0aGVyIGludmlzaWJsZSBvciBub3QKKyAgICBwcmVzZW50IG9uIHRoZSBET00uCisKKyAg
ICBsb2NhdG9yIHVzZWQgdG8gZmluZCB0aGUgZWxlbWVudAorICAgICIiIgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAgc2VsZi5sb2NhdG9yID0gbG9jYXRvcgorCisg
ICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHJldHVybiBfZWxlbWVudF9pZl92aXNpYmxlKF9maW5kX2VsZW1lbnQoZHJpdmVyLCBzZWxmLmxv
Y2F0b3IpLCBGYWxzZSkKKyAgICAgICAgZXhjZXB0IChOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLCBT
dGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgorICAgICAgICAgICAgIyBJbiB0aGUgY2Fz
ZSBvZiBOb1N1Y2hFbGVtZW50LCByZXR1cm5zIHRydWUgYmVjYXVzZSB0aGUgZWxlbWVudCBpcwor
ICAgICAgICAgICAgIyBub3QgcHJlc2VudCBpbiBET00uIFRoZSB0cnkgYmxvY2sgY2hlY2tzIGlm
IHRoZSBlbGVtZW50IGlzIHByZXNlbnQKKyAgICAgICAgICAgICMgYnV0IGlzIGludmlzaWJsZS4K
KyAgICAgICAgICAgICMgSW4gdGhlIGNhc2Ugb2YgU3RhbGVFbGVtZW50UmVmZXJlbmNlLCByZXR1
cm5zIHRydWUgYmVjYXVzZSBzdGFsZQorICAgICAgICAgICAgIyBlbGVtZW50IHJlZmVyZW5jZSBp
bXBsaWVzIHRoYXQgZWxlbWVudCBpcyBubyBsb25nZXIgdmlzaWJsZS4KKyAgICAgICAgICAgIHJl
dHVybiBUcnVlCisKKworY2xhc3MgZWxlbWVudF90b19iZV9jbGlja2FibGUob2JqZWN0KToKKyAg
ICAiIiIgQW4gRXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIGFuIGVsZW1lbnQgaXMgdmlzaWJsZSBh
bmQgZW5hYmxlZCBzdWNoIHRoYXQKKyAgICB5b3UgY2FuIGNsaWNrIGl0LiIiIgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAgc2VsZi5sb2NhdG9yID0gbG9jYXRvcgor
CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIGVsZW1lbnQgPSB2aXNp
YmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZChzZWxmLmxvY2F0b3IpKGRyaXZlcikKKyAgICAgICAg
aWYgZWxlbWVudCBhbmQgZWxlbWVudC5pc19lbmFibGVkKCk6CisgICAgICAgICAgICByZXR1cm4g
ZWxlbWVudAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKworY2xh
c3Mgc3RhbGVuZXNzX29mKG9iamVjdCk6CisgICAgIiIiIFdhaXQgdW50aWwgYW4gZWxlbWVudCBp
cyBubyBsb25nZXIgYXR0YWNoZWQgdG8gdGhlIERPTS4KKyAgICBlbGVtZW50IGlzIHRoZSBlbGVt
ZW50IHRvIHdhaXQgZm9yLgorICAgIHJldHVybnMgRmFsc2UgaWYgdGhlIGVsZW1lbnQgaXMgc3Rp
bGwgYXR0YWNoZWQgdG8gdGhlIERPTSwgdHJ1ZSBvdGhlcndpc2UuCisgICAgIiIiCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGVsZW1lbnQpOgorICAgICAgICBzZWxmLmVsZW1lbnQgPSBlbGVtZW50
CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgaWdub3JlZCk6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICMgQ2FsbGluZyBhbnkgbWV0aG9kIGZvcmNlcyBhIHN0YWxlbmVzcyBjaGVjaworICAg
ICAgICAgICAgc2VsZi5lbGVtZW50LmlzX2VuYWJsZWQoKQorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisgICAgICAgIGV4Y2VwdCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb246CisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorCisKK2NsYXNzIGVsZW1lbnRfdG9fYmVfc2VsZWN0ZWQob2Jq
ZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoZSBzZWxlY3Rpb24g
aXMgc2VsZWN0ZWQuCisgICAgZWxlbWVudCBpcyBXZWJFbGVtZW50IG9iamVjdAorICAgICIiIgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbGVtZW50KToKKyAgICAgICAgc2VsZi5lbGVtZW50ID0g
ZWxlbWVudAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGlnbm9yZWQpOgorICAgICAgICByZXR1
cm4gc2VsZi5lbGVtZW50LmlzX3NlbGVjdGVkKCkKKworCitjbGFzcyBlbGVtZW50X2xvY2F0ZWRf
dG9fYmVfc2VsZWN0ZWQob2JqZWN0KToKKyAgICAiIiJBbiBleHBlY3RhdGlvbiBmb3IgdGhlIGVs
ZW1lbnQgdG8gYmUgbG9jYXRlZCBpcyBzZWxlY3RlZC4KKyAgICBsb2NhdG9yIGlzIGEgdHVwbGUg
b2YgKGJ5LCBwYXRoKSIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2NhdG9yKToKKyAgICAg
ICAgc2VsZi5sb2NhdG9yID0gbG9jYXRvcgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZl
cik6CisgICAgICAgIHJldHVybiBfZmluZF9lbGVtZW50KGRyaXZlciwgc2VsZi5sb2NhdG9yKS5p
c19zZWxlY3RlZCgpCisKKworY2xhc3MgZWxlbWVudF9zZWxlY3Rpb25fc3RhdGVfdG9fYmUob2Jq
ZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIGlmIHRoZSBnaXZlbiBl
bGVtZW50IGlzIHNlbGVjdGVkLgorICAgIGVsZW1lbnQgaXMgV2ViRWxlbWVudCBvYmplY3QKKyAg
ICBpc19zZWxlY3RlZCBpcyBhIEJvb2xlYW4uIgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBlbGVtZW50LCBpc19zZWxlY3RlZCk6CisgICAgICAgIHNlbGYuZWxlbWVudCA9IGVsZW1l
bnQKKyAgICAgICAgc2VsZi5pc19zZWxlY3RlZCA9IGlzX3NlbGVjdGVkCisKKyAgICBkZWYgX19j
YWxsX18oc2VsZiwgaWdub3JlZCk6CisgICAgICAgIHJldHVybiBzZWxmLmVsZW1lbnQuaXNfc2Vs
ZWN0ZWQoKSA9PSBzZWxmLmlzX3NlbGVjdGVkCisKKworY2xhc3MgZWxlbWVudF9sb2NhdGVkX3Nl
bGVjdGlvbl9zdGF0ZV90b19iZShvYmplY3QpOgorICAgICIiIiBBbiBleHBlY3RhdGlvbiB0byBs
b2NhdGUgYW4gZWxlbWVudCBhbmQgY2hlY2sgaWYgdGhlIHNlbGVjdGlvbiBzdGF0ZQorICAgIHNw
ZWNpZmllZCBpcyBpbiB0aGF0IHN0YXRlLgorICAgIGxvY2F0b3IgaXMgYSB0dXBsZSBvZiAoYnks
IHBhdGgpCisgICAgaXNfc2VsZWN0ZWQgaXMgYSBib29sZWFuCisgICAgIiIiCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvY2F0b3IsIGlzX3NlbGVjdGVkKToKKyAgICAgICAgc2VsZi5sb2NhdG9y
ID0gbG9jYXRvcgorICAgICAgICBzZWxmLmlzX3NlbGVjdGVkID0gaXNfc2VsZWN0ZWQKKworICAg
IGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBl
bGVtZW50ID0gX2ZpbmRfZWxlbWVudChkcml2ZXIsIHNlbGYubG9jYXRvcikKKyAgICAgICAgICAg
IHJldHVybiBlbGVtZW50LmlzX3NlbGVjdGVkKCkgPT0gc2VsZi5pc19zZWxlY3RlZAorICAgICAg
ICBleGNlcHQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisKKworY2xhc3MgbnVtYmVyX29mX3dpbmRvd3NfdG9fYmUob2JqZWN0KToKKyAg
ICAiIiIgQW4gZXhwZWN0YXRpb24gZm9yIHRoZSBudW1iZXIgb2Ygd2luZG93cyB0byBiZSBhIGNl
cnRhaW4gdmFsdWUuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbnVtX3dpbmRvd3MpOgor
ICAgICAgICBzZWxmLm51bV93aW5kb3dzID0gbnVtX3dpbmRvd3MKKworICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCBkcml2ZXIpOgorICAgICAgICByZXR1cm4gbGVuKGRyaXZlci53aW5kb3dfaGFuZGxl
cykgPT0gc2VsZi5udW1fd2luZG93cworCisKK2NsYXNzIG5ld193aW5kb3dfaXNfb3BlbmVkKG9i
amVjdCk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIHRoYXQgYSBuZXcgd2luZG93IHdpbGwgYmUg
b3BlbmVkIGFuZCBoYXZlIHRoZSBudW1iZXIgb2YKKyAgICB3aW5kb3dzIGhhbmRsZXMgaW5jcmVh
c2UiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjdXJyZW50X2hhbmRsZXMpOgorICAgICAg
ICBzZWxmLmN1cnJlbnRfaGFuZGxlcyA9IGN1cnJlbnRfaGFuZGxlcworCisgICAgZGVmIF9fY2Fs
bF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHJldHVybiBsZW4oZHJpdmVyLndpbmRvd19oYW5k
bGVzKSA+IGxlbihzZWxmLmN1cnJlbnRfaGFuZGxlcykKKworCitjbGFzcyBhbGVydF9pc19wcmVz
ZW50KG9iamVjdCk6CisgICAgIiIiIEV4cGVjdCBhbiBhbGVydCB0byBiZSBwcmVzZW50LiIiIgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIF9fY2FsbF9f
KHNlbGYsIGRyaXZlcik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFsZXJ0ID0gZHJpdmVy
LnN3aXRjaF90by5hbGVydAorICAgICAgICAgICAgYWxlcnQudGV4dAorICAgICAgICAgICAgcmV0
dXJuIGFsZXJ0CisgICAgICAgIGV4Y2VwdCBOb0FsZXJ0UHJlc2VudEV4Y2VwdGlvbjoKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorCisKK2RlZiBfZmluZF9lbGVtZW50KGRyaXZlciwgYnkpOgor
ICAgICIiIkxvb2tzIHVwIGFuIGVsZW1lbnQuIExvZ3MgYW5kIHJlLXJhaXNlcyBgYFdlYkRyaXZl
ckV4Y2VwdGlvbmBgCisgICAgaWYgdGhyb3duLiIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJu
IGRyaXZlci5maW5kX2VsZW1lbnQoKmJ5KQorICAgIGV4Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0
aW9uIGFzIGU6CisgICAgICAgIHJhaXNlIGUKKyAgICBleGNlcHQgV2ViRHJpdmVyRXhjZXB0aW9u
IGFzIGU6CisgICAgICAgIHJhaXNlIGUKKworCitkZWYgX2ZpbmRfZWxlbWVudHMoZHJpdmVyLCBi
eSk6CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gZHJpdmVyLmZpbmRfZWxlbWVudHMoKmJ5KQor
ICAgIGV4Y2VwdCBXZWJEcml2ZXJFeGNlcHRpb24gYXMgZToKKyAgICAgICAgcmFpc2UgZQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3N1cHBvcnQvc2VsZWN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvc2VsZWN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMzQzODM0Y2Y3OAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9z
dXBwb3J0L3NlbGVjdC5weQpAQCAtMCwwICsxLDI0MSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29m
dHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250
cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3Ry
aWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2Fy
ZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMg
dG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGlj
ZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisj
IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2Ug
YXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMK
KyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmli
dXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU
SU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUg
TGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0u
d2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2Vw
dGlvbnMgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sIFVuZXhwZWN0ZWRUYWdOYW1lRXhj
ZXB0aW9uCisKKworY2xhc3MgU2VsZWN0KG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgd2ViZWxlbWVudCk6CisgICAgICAgICIiIgorICAgICAgICBDb25zdHJ1Y3Rvci4gQSBjaGVj
ayBpcyBtYWRlIHRoYXQgdGhlIGdpdmVuIGVsZW1lbnQgaXMsIGluZGVlZCwgYSBTRUxFQ1QgdGFn
LiBJZiBpdCBpcyBub3QsCisgICAgICAgIHRoZW4gYW4gVW5leHBlY3RlZFRhZ05hbWVFeGNlcHRp
b24gaXMgdGhyb3duLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB3ZWJlbGVtZW50IC0g
ZWxlbWVudCBTRUxFQ1QgZWxlbWVudCB0byB3cmFwCisKKyAgICAgICAgRXhhbXBsZToKKyAgICAg
ICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFNlbGVjdCBc
bgorICAgICAgICAgICAgU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoInNl
bGVjdCIpKS5zZWxlY3RfYnlfaW5kZXgoMikKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHdlYmVs
ZW1lbnQudGFnX25hbWUubG93ZXIoKSAhPSAic2VsZWN0IjoKKyAgICAgICAgICAgIHJhaXNlIFVu
ZXhwZWN0ZWRUYWdOYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJTZWxlY3Qgb25seSB3
b3JrcyBvbiA8c2VsZWN0PiBlbGVtZW50cywgbm90IG9uIDwlcz4iICUKKyAgICAgICAgICAgICAg
ICB3ZWJlbGVtZW50LnRhZ19uYW1lKQorICAgICAgICBzZWxmLl9lbCA9IHdlYmVsZW1lbnQKKyAg
ICAgICAgbXVsdGkgPSBzZWxmLl9lbC5nZXRfYXR0cmlidXRlKCJtdWx0aXBsZSIpCisgICAgICAg
IHNlbGYuaXNfbXVsdGlwbGUgPSBtdWx0aSBhbmQgbXVsdGkgIT0gImZhbHNlIgorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIG9wdGlvbnMoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYSBsaXN0
IG9mIGFsbCBvcHRpb25zIGJlbG9uZ2luZyB0byB0aGlzIHNlbGVjdCB0YWciIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2VsLmZpbmRfZWxlbWVudHMoQnkuVEFHX05BTUUsICdvcHRpb24nKQorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9zZWxlY3RlZF9vcHRpb25zKHNlbGYpOgorICAgICAg
ICAiIiJSZXR1cm5zIGEgbGlzdCBvZiBhbGwgc2VsZWN0ZWQgb3B0aW9ucyBiZWxvbmdpbmcgdG8g
dGhpcyBzZWxlY3QgdGFnIiIiCisgICAgICAgIHJldCA9IFtdCisgICAgICAgIGZvciBvcHQgaW4g
c2VsZi5vcHRpb25zOgorICAgICAgICAgICAgaWYgb3B0LmlzX3NlbGVjdGVkKCk6CisgICAgICAg
ICAgICAgICAgcmV0LmFwcGVuZChvcHQpCisgICAgICAgIHJldHVybiByZXQKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBmaXJzdF9zZWxlY3RlZF9vcHRpb24oc2VsZik6CisgICAgICAgICIiIlRo
ZSBmaXJzdCBzZWxlY3RlZCBvcHRpb24gaW4gdGhpcyBzZWxlY3QgdGFnIChvciB0aGUgY3VycmVu
dGx5IHNlbGVjdGVkIG9wdGlvbiBpbiBhCisgICAgICAgIG5vcm1hbCBzZWxlY3QpIiIiCisgICAg
ICAgIGZvciBvcHQgaW4gc2VsZi5vcHRpb25zOgorICAgICAgICAgICAgaWYgb3B0LmlzX3NlbGVj
dGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9wdAorICAgICAgICByYWlzZSBOb1N1Y2hF
bGVtZW50RXhjZXB0aW9uKCJObyBvcHRpb25zIGFyZSBzZWxlY3RlZCIpCisKKyAgICBkZWYgc2Vs
ZWN0X2J5X3ZhbHVlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiU2VsZWN0IGFsbCBvcHRpb25z
IHRoYXQgaGF2ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBhcmd1bWVudC4gVGhhdCBpcywgd2hlbiBn
aXZlbiAiZm9vIiB0aGlzCisgICAgICAgICAgIHdvdWxkIHNlbGVjdCBhbiBvcHRpb24gbGlrZToK
KworICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb28iPkJhcjwvb3B0aW9uPgorCisgICAgICAg
ICAgIDpBcmdzOgorICAgICAgICAgICAgLSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBtYXRjaCBhZ2Fp
bnN0CisKKyAgICAgICAgICAgdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gSWYgdGhlcmUg
aXMgbm8gb3B0aW9uIHdpdGggc3BlY2lzaWVkIHZhbHVlIGluIFNFTEVDVAorICAgICAgICAgICAi
IiIKKyAgICAgICAgY3NzID0gIm9wdGlvblt2YWx1ZSA9JXNdIiAlIHNlbGYuX2VzY2FwZVN0cmlu
Zyh2YWx1ZSkKKyAgICAgICAgb3B0cyA9IHNlbGYuX2VsLmZpbmRfZWxlbWVudHMoQnkuQ1NTX1NF
TEVDVE9SLCBjc3MpCisgICAgICAgIG1hdGNoZWQgPSBGYWxzZQorICAgICAgICBmb3Igb3B0IGlu
IG9wdHM6CisgICAgICAgICAgICBzZWxmLl9zZXRTZWxlY3RlZChvcHQpCisgICAgICAgICAgICBp
ZiBub3Qgc2VsZi5pc19tdWx0aXBsZToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg
ICAgIG1hdGNoZWQgPSBUcnVlCisgICAgICAgIGlmIG5vdCBtYXRjaGVkOgorICAgICAgICAgICAg
cmFpc2UgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigiQ2Fubm90IGxvY2F0ZSBvcHRpb24gd2l0aCB2
YWx1ZTogJXMiICUgdmFsdWUpCisKKyAgICBkZWYgc2VsZWN0X2J5X2luZGV4KHNlbGYsIGluZGV4
KToKKyAgICAgICAgIiIiU2VsZWN0IHRoZSBvcHRpb24gYXQgdGhlIGdpdmVuIGluZGV4LiBUaGlz
IGlzIGRvbmUgYnkgZXhhbWluZyB0aGUgImluZGV4IiBhdHRyaWJ1dGUgb2YgYW4KKyAgICAgICAg
ICAgZWxlbWVudCwgYW5kIG5vdCBtZXJlbHkgYnkgY291bnRpbmcuCisKKyAgICAgICAgICAgOkFy
Z3M6CisgICAgICAgICAgICAtIGluZGV4IC0gVGhlIG9wdGlvbiBhdCB0aGlzIGluZGV4IHdpbGwg
YmUgc2VsZWN0ZWQKKworICAgICAgICAgICB0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBJ
ZiB0aGVyZSBpcyBubyBvcHRpb24gd2l0aCBzcGVjaXNpZWQgaW5kZXggaW4gU0VMRUNUCisgICAg
ICAgICAgICIiIgorICAgICAgICBtYXRjaCA9IHN0cihpbmRleCkKKyAgICAgICAgZm9yIG9wdCBp
biBzZWxmLm9wdGlvbnM6CisgICAgICAgICAgICBpZiBvcHQuZ2V0X2F0dHJpYnV0ZSgiaW5kZXgi
KSA9PSBtYXRjaDoKKyAgICAgICAgICAgICAgICBzZWxmLl9zZXRTZWxlY3RlZChvcHQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJhaXNlIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24o
IkNvdWxkIG5vdCBsb2NhdGUgZWxlbWVudCB3aXRoIGluZGV4ICVkIiAlIGluZGV4KQorCisgICAg
ZGVmIHNlbGVjdF9ieV92aXNpYmxlX3RleHQoc2VsZiwgdGV4dCk6CisgICAgICAgICIiIlNlbGVj
dCBhbGwgb3B0aW9ucyB0aGF0IGRpc3BsYXkgdGV4dCBtYXRjaGluZyB0aGUgYXJndW1lbnQuIFRo
YXQgaXMsIHdoZW4gZ2l2ZW4gIkJhciIgdGhpcworICAgICAgICAgICB3b3VsZCBzZWxlY3QgYW4g
b3B0aW9uIGxpa2U6CisKKyAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImZvbyI+QmFyPC9vcHRp
b24+CisKKyAgICAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIHRleHQgLSBUaGUgdmlzaWJs
ZSB0ZXh0IHRvIG1hdGNoIGFnYWluc3QKKworICAgICAgICAgICAgdGhyb3dzIE5vU3VjaEVsZW1l
bnRFeGNlcHRpb24gSWYgdGhlcmUgaXMgbm8gb3B0aW9uIHdpdGggc3BlY2lzaWVkIHRleHQgaW4g
U0VMRUNUCisgICAgICAgICAgICIiIgorICAgICAgICB4cGF0aCA9ICIuLy9vcHRpb25bbm9ybWFs
aXplLXNwYWNlKC4pID0gJXNdIiAlIHNlbGYuX2VzY2FwZVN0cmluZyh0ZXh0KQorICAgICAgICBv
cHRzID0gc2VsZi5fZWwuZmluZF9lbGVtZW50cyhCeS5YUEFUSCwgeHBhdGgpCisgICAgICAgIG1h
dGNoZWQgPSBGYWxzZQorICAgICAgICBmb3Igb3B0IGluIG9wdHM6CisgICAgICAgICAgICBzZWxm
Ll9zZXRTZWxlY3RlZChvcHQpCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19tdWx0aXBsZToK
KyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIG1hdGNoZWQgPSBUcnVlCisKKyAg
ICAgICAgaWYgbGVuKG9wdHMpID09IDAgYW5kICIgIiBpbiB0ZXh0OgorICAgICAgICAgICAgc3Vi
U3RyaW5nV2l0aG91dFNwYWNlID0gc2VsZi5fZ2V0X2xvbmdlc3RfdG9rZW4odGV4dCkKKyAgICAg
ICAgICAgIGlmIHN1YlN0cmluZ1dpdGhvdXRTcGFjZSA9PSAiIjoKKyAgICAgICAgICAgICAgICBj
YW5kaWRhdGVzID0gc2VsZi5vcHRpb25zCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIHhwYXRoID0gIi4vL29wdGlvbltjb250YWlucyguLCVzKV0iICUgc2VsZi5fZXNjYXBlU3Ry
aW5nKHN1YlN0cmluZ1dpdGhvdXRTcGFjZSkKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVzID0g
c2VsZi5fZWwuZmluZF9lbGVtZW50cyhCeS5YUEFUSCwgeHBhdGgpCisgICAgICAgICAgICBmb3Ig
Y2FuZGlkYXRlIGluIGNhbmRpZGF0ZXM6CisgICAgICAgICAgICAgICAgaWYgdGV4dCA9PSBjYW5k
aWRhdGUudGV4dDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2V0U2VsZWN0ZWQoY2FuZGlk
YXRlKQorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19tdWx0aXBsZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgICAgICBtYXRjaGVkID0g
VHJ1ZQorCisgICAgICAgIGlmIG5vdCBtYXRjaGVkOgorICAgICAgICAgICAgcmFpc2UgTm9TdWNo
RWxlbWVudEV4Y2VwdGlvbigiQ291bGQgbm90IGxvY2F0ZSBlbGVtZW50IHdpdGggdmlzaWJsZSB0
ZXh0OiAlcyIgJSB0ZXh0KQorCisgICAgZGVmIGRlc2VsZWN0X2FsbChzZWxmKToKKyAgICAgICAg
IiIiQ2xlYXIgYWxsIHNlbGVjdGVkIGVudHJpZXMuIFRoaXMgaXMgb25seSB2YWxpZCB3aGVuIHRo
ZSBTRUxFQ1Qgc3VwcG9ydHMgbXVsdGlwbGUgc2VsZWN0aW9ucy4KKyAgICAgICAgICAgdGhyb3dz
IE5vdEltcGxlbWVudGVkRXJyb3IgSWYgdGhlIFNFTEVDVCBkb2VzIG5vdCBzdXBwb3J0IG11bHRp
cGxlIHNlbGVjdGlvbnMKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmlzX211bHRp
cGxlOgorICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiWW91IG1heSBvbmx5
IGRlc2VsZWN0IGFsbCBvcHRpb25zIG9mIGEgbXVsdGktc2VsZWN0IikKKyAgICAgICAgZm9yIG9w
dCBpbiBzZWxmLm9wdGlvbnM6CisgICAgICAgICAgICBzZWxmLl91bnNldFNlbGVjdGVkKG9wdCkK
KworICAgIGRlZiBkZXNlbGVjdF9ieV92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIkRl
c2VsZWN0IGFsbCBvcHRpb25zIHRoYXQgaGF2ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBhcmd1bWVu
dC4gVGhhdCBpcywgd2hlbiBnaXZlbiAiZm9vIiB0aGlzCisgICAgICAgICAgIHdvdWxkIGRlc2Vs
ZWN0IGFuIG9wdGlvbiBsaWtlOgorCisgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb28iPkJh
cjwvb3B0aW9uPgorCisgICAgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSB2YWx1ZSAtIFRo
ZSB2YWx1ZSB0byBtYXRjaCBhZ2FpbnN0CisKKyAgICAgICAgICAgIHRocm93cyBOb1N1Y2hFbGVt
ZW50RXhjZXB0aW9uIElmIHRoZXJlIGlzIG5vIG9wdGlvbiB3aXRoIHNwZWNpc2llZCB2YWx1ZSBp
biBTRUxFQ1QKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmlzX211bHRpcGxlOgor
ICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiWW91IG1heSBvbmx5IGRlc2Vs
ZWN0IG9wdGlvbnMgb2YgYSBtdWx0aS1zZWxlY3QiKQorICAgICAgICBtYXRjaGVkID0gRmFsc2UK
KyAgICAgICAgY3NzID0gIm9wdGlvblt2YWx1ZSA9ICVzXSIgJSBzZWxmLl9lc2NhcGVTdHJpbmco
dmFsdWUpCisgICAgICAgIG9wdHMgPSBzZWxmLl9lbC5maW5kX2VsZW1lbnRzKEJ5LkNTU19TRUxF
Q1RPUiwgY3NzKQorICAgICAgICBmb3Igb3B0IGluIG9wdHM6CisgICAgICAgICAgICBzZWxmLl91
bnNldFNlbGVjdGVkKG9wdCkKKyAgICAgICAgICAgIG1hdGNoZWQgPSBUcnVlCisgICAgICAgIGlm
IG5vdCBtYXRjaGVkOgorICAgICAgICAgICAgcmFpc2UgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigi
Q291bGQgbm90IGxvY2F0ZSBlbGVtZW50IHdpdGggdmFsdWU6ICVzIiAlIHZhbHVlKQorCisgICAg
ZGVmIGRlc2VsZWN0X2J5X2luZGV4KHNlbGYsIGluZGV4KToKKyAgICAgICAgIiIiRGVzZWxlY3Qg
dGhlIG9wdGlvbiBhdCB0aGUgZ2l2ZW4gaW5kZXguIFRoaXMgaXMgZG9uZSBieSBleGFtaW5nIHRo
ZSAiaW5kZXgiIGF0dHJpYnV0ZSBvZiBhbgorICAgICAgICAgICBlbGVtZW50LCBhbmQgbm90IG1l
cmVseSBieSBjb3VudGluZy4KKworICAgICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0gaW5k
ZXggLSBUaGUgb3B0aW9uIGF0IHRoaXMgaW5kZXggd2lsbCBiZSBkZXNlbGVjdGVkCisKKyAgICAg
ICAgICAgIHRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIElmIHRoZXJlIGlzIG5vIG9wdGlv
biB3aXRoIHNwZWNpc2llZCBpbmRleCBpbiBTRUxFQ1QKKyAgICAgICAgIiIiCisgICAgICAgIGlm
IG5vdCBzZWxmLmlzX211bHRpcGxlOgorICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcigiWW91IG1heSBvbmx5IGRlc2VsZWN0IG9wdGlvbnMgb2YgYSBtdWx0aS1zZWxlY3QiKQor
ICAgICAgICBmb3Igb3B0IGluIHNlbGYub3B0aW9uczoKKyAgICAgICAgICAgIGlmIG9wdC5nZXRf
YXR0cmlidXRlKCJpbmRleCIpID09IHN0cihpbmRleCk6CisgICAgICAgICAgICAgICAgc2VsZi5f
dW5zZXRTZWxlY3RlZChvcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJhaXNl
IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2NhdGUgZWxlbWVudCB3aXRoIGlu
ZGV4ICVkIiAlIGluZGV4KQorCisgICAgZGVmIGRlc2VsZWN0X2J5X3Zpc2libGVfdGV4dChzZWxm
LCB0ZXh0KToKKyAgICAgICAgIiIiRGVzZWxlY3QgYWxsIG9wdGlvbnMgdGhhdCBkaXNwbGF5IHRl
eHQgbWF0Y2hpbmcgdGhlIGFyZ3VtZW50LiBUaGF0IGlzLCB3aGVuIGdpdmVuICJCYXIiIHRoaXMK
KyAgICAgICAgICAgd291bGQgZGVzZWxlY3QgYW4gb3B0aW9uIGxpa2U6CisKKyAgICAgICAgICAg
PG9wdGlvbiB2YWx1ZT0iZm9vIj5CYXI8L29wdGlvbj4KKworICAgICAgICAgICA6QXJnczoKKyAg
ICAgICAgICAgIC0gdGV4dCAtIFRoZSB2aXNpYmxlIHRleHQgdG8gbWF0Y2ggYWdhaW5zdAorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuaXNfbXVsdGlwbGU6CisgICAgICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJZb3UgbWF5IG9ubHkgZGVzZWxlY3Qgb3B0aW9ucyBv
ZiBhIG11bHRpLXNlbGVjdCIpCisgICAgICAgIG1hdGNoZWQgPSBGYWxzZQorICAgICAgICB4cGF0
aCA9ICIuLy9vcHRpb25bbm9ybWFsaXplLXNwYWNlKC4pID0gJXNdIiAlIHNlbGYuX2VzY2FwZVN0
cmluZyh0ZXh0KQorICAgICAgICBvcHRzID0gc2VsZi5fZWwuZmluZF9lbGVtZW50cyhCeS5YUEFU
SCwgeHBhdGgpCisgICAgICAgIGZvciBvcHQgaW4gb3B0czoKKyAgICAgICAgICAgIHNlbGYuX3Vu
c2V0U2VsZWN0ZWQob3B0KQorICAgICAgICAgICAgbWF0Y2hlZCA9IFRydWUKKyAgICAgICAgaWYg
bm90IG1hdGNoZWQ6CisgICAgICAgICAgICByYWlzZSBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCJD
b3VsZCBub3QgbG9jYXRlIGVsZW1lbnQgd2l0aCB2aXNpYmxlIHRleHQ6ICVzIiAlIHRleHQpCisK
KyAgICBkZWYgX3NldFNlbGVjdGVkKHNlbGYsIG9wdGlvbik6CisgICAgICAgIGlmIG5vdCBvcHRp
b24uaXNfc2VsZWN0ZWQoKToKKyAgICAgICAgICAgIG9wdGlvbi5jbGljaygpCisKKyAgICBkZWYg
X3Vuc2V0U2VsZWN0ZWQoc2VsZiwgb3B0aW9uKToKKyAgICAgICAgaWYgb3B0aW9uLmlzX3NlbGVj
dGVkKCk6CisgICAgICAgICAgICBvcHRpb24uY2xpY2soKQorCisgICAgZGVmIF9lc2NhcGVTdHJp
bmcoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiAnIicgaW4gdmFsdWUgYW5kICInIiBpbiB2YWx1
ZToKKyAgICAgICAgICAgIHN1YnN0cmluZ3MgPSB2YWx1ZS5zcGxpdCgiXCIiKQorICAgICAgICAg
ICAgcmVzdWx0ID0gWyJjb25jYXQoIl0KKyAgICAgICAgICAgIGZvciBzdWJzdHJpbmcgaW4gc3Vi
c3RyaW5nczoKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJcIiVzXCIiICUgc3Vic3Ry
aW5nKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiwgJ1wiJywgIikKKyAgICAgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdFswOi0xXQorICAgICAgICAgICAgaWYgdmFsdWUuZW5kc3dpdGgo
JyInKToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsICdcIiciKQorICAgICAgICAg
ICAgcmV0dXJuICIiLmpvaW4ocmVzdWx0KSArICIpIgorCisgICAgICAgIGlmICciJyBpbiB2YWx1
ZToKKyAgICAgICAgICAgIHJldHVybiAiJyVzJyIgJSB2YWx1ZQorCisgICAgICAgIHJldHVybiAi
XCIlc1wiIiAlIHZhbHVlCisKKyAgICBkZWYgX2dldF9sb25nZXN0X3Rva2VuKHNlbGYsIHZhbHVl
KToKKyAgICAgICAgaXRlbXMgPSB2YWx1ZS5zcGxpdCgiICIpCisgICAgICAgIGxvbmdlc3QgPSAi
IgorICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAgIGlmIGxlbihpdGVtKSA+
IGxlbihsb25nZXN0KToKKyAgICAgICAgICAgICAgICBsb25nZXN0ID0gaXRlbQorICAgICAgICBy
ZXR1cm4gbG9uZ2VzdApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvdWkucHkgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC91aS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWUzYjJiNjViYTkKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvc3VwcG9ydC91aS5weQpAQCAtMCwwICsxLDE5IEBACisjIExpY2Vuc2VkIHRvIHRo
ZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3Jl
IGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMg
ZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMg
cmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmls
ZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisj
ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSAuc2Vs
ZWN0IGltcG9ydCBTZWxlY3QgICMgbm9xYQorZnJvbSAud2FpdCBpbXBvcnQgV2ViRHJpdmVyV2Fp
dCAgIyBub3FhCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC93YWl0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvd2FpdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDNmMjhhMTFmMTEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvc3VwcG9ydC93YWl0LnB5CkBAIC0wLDAgKzEsOTYgQEAKKyMgTGljZW5zZWQgdG8g
dGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1v
cmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQor
IyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgor
IyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBm
aWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUK
KyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp
YW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut
Mi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9S
IENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBT
ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy
bWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQg
dGltZQorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgTm9TdWNoRWxlbWVu
dEV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgVGltZW91
dEV4Y2VwdGlvbgorCitQT0xMX0ZSRVFVRU5DWSA9IDAuNSAgIyBIb3cgbG9uZyB0byBzbGVlcCBp
bmJldHdlZW4gY2FsbHMgdG8gdGhlIG1ldGhvZAorSUdOT1JFRF9FWENFUFRJT05TID0gKE5vU3Vj
aEVsZW1lbnRFeGNlcHRpb24sKSAgIyBleGNlcHRpb25zIGlnbm9yZWQgZHVyaW5nIGNhbGxzIHRv
IHRoZSBtZXRob2QKKworCitjbGFzcyBXZWJEcml2ZXJXYWl0KG9iamVjdCk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGRyaXZlciwgdGltZW91dCwgcG9sbF9mcmVxdWVuY3k9UE9MTF9GUkVRVUVO
Q1ksIGlnbm9yZWRfZXhjZXB0aW9ucz1Ob25lKToKKyAgICAgICAgIiIiQ29uc3RydWN0b3IsIHRh
a2VzIGEgV2ViRHJpdmVyIGluc3RhbmNlIGFuZCB0aW1lb3V0IGluIHNlY29uZHMuCisKKyAgICAg
ICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGRyaXZlciAtIEluc3RhbmNlIG9mIFdlYkRyaXZl
ciAoSWUsIEZpcmVmb3gsIENocm9tZSBvciBSZW1vdGUpCisgICAgICAgICAgICAtIHRpbWVvdXQg
LSBOdW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGltaW5nIG91dAorICAgICAgICAgICAgLSBwb2xs
X2ZyZXF1ZW5jeSAtIHNsZWVwIGludGVydmFsIGJldHdlZW4gY2FsbHMKKyAgICAgICAgICAgICAg
QnkgZGVmYXVsdCwgaXQgaXMgMC41IHNlY29uZC4KKyAgICAgICAgICAgIC0gaWdub3JlZF9leGNl
cHRpb25zIC0gaXRlcmFibGUgc3RydWN0dXJlIG9mIGV4Y2VwdGlvbiBjbGFzc2VzIGlnbm9yZWQg
ZHVyaW5nIGNhbGxzLgorICAgICAgICAgICAgICBCeSBkZWZhdWx0LCBpdCBjb250YWlucyBOb1N1
Y2hFbGVtZW50RXhjZXB0aW9uIG9ubHkuCisKKyAgICAgICAgICAgRXhhbXBsZToKKyAgICAgICAg
ICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZlcldh
aXQgXG4KKyAgICAgICAgICAgIGVsZW1lbnQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMTApLnVu
dGlsKGxhbWJkYSB4OiB4LmZpbmRfZWxlbWVudF9ieV9pZCgic29tZUlkIikpIFxuCisgICAgICAg
ICAgICBpc19kaXNhcHBlYXJlZCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzMCwgMSwgKEVsZW1l
bnROb3RWaXNpYmxlRXhjZXB0aW9uKSkuXCBcbgorICAgICAgICAgICAgICAgICAgICAgICAgdW50
aWxfbm90KGxhbWJkYSB4OiB4LmZpbmRfZWxlbWVudF9ieV9pZCgic29tZUlkIikuaXNfZGlzcGxh
eWVkKCkpCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9kcml2ZXIgPSBkcml2ZXIKKyAgICAg
ICAgc2VsZi5fdGltZW91dCA9IHRpbWVvdXQKKyAgICAgICAgc2VsZi5fcG9sbCA9IHBvbGxfZnJl
cXVlbmN5CisgICAgICAgICMgYXZvaWQgdGhlIGRpdmlkZSBieSB6ZXJvCisgICAgICAgIGlmIHNl
bGYuX3BvbGwgPT0gMDoKKyAgICAgICAgICAgIHNlbGYuX3BvbGwgPSBQT0xMX0ZSRVFVRU5DWQor
ICAgICAgICBleGNlcHRpb25zID0gbGlzdChJR05PUkVEX0VYQ0VQVElPTlMpCisgICAgICAgIGlm
IGlnbm9yZWRfZXhjZXB0aW9ucyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBleGNlcHRpb25zLmV4dGVuZChpdGVyKGlnbm9yZWRfZXhjZXB0aW9ucykpCisg
ICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOiAgIyBpZ25vcmVkX2V4Y2VwdGlvbnMgaXMgbm90
IGl0ZXJhYmxlCisgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5hcHBlbmQoaWdub3JlZF9leGNl
cHRpb25zKQorICAgICAgICBzZWxmLl9pZ25vcmVkX2V4Y2VwdGlvbnMgPSB0dXBsZShleGNlcHRp
b25zKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzx7MC5fX21v
ZHVsZV9ffS57MC5fX25hbWVfX30gKHNlc3Npb249InsxfSIpPicuZm9ybWF0KAorICAgICAgICAg
ICAgdHlwZShzZWxmKSwgc2VsZi5fZHJpdmVyLnNlc3Npb25faWQpCisKKyAgICBkZWYgdW50aWwo
c2VsZiwgbWV0aG9kLCBtZXNzYWdlPScnKToKKyAgICAgICAgIiIiQ2FsbHMgdGhlIG1ldGhvZCBw
cm92aWRlZCB3aXRoIHRoZSBkcml2ZXIgYXMgYW4gYXJndW1lbnQgdW50aWwgdGhlIFwKKyAgICAg
ICAgcmV0dXJuIHZhbHVlIGlzIG5vdCBGYWxzZS4iIiIKKyAgICAgICAgc2NyZWVuID0gTm9uZQor
ICAgICAgICBzdGFja3RyYWNlID0gTm9uZQorCisgICAgICAgIGVuZF90aW1lID0gdGltZS50aW1l
KCkgKyBzZWxmLl90aW1lb3V0CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgdmFsdWUgPSBtZXRob2Qoc2VsZi5fZHJpdmVyKQorICAgICAgICAg
ICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAg
ICAgICAgIGV4Y2VwdCBzZWxmLl9pZ25vcmVkX2V4Y2VwdGlvbnMgYXMgZXhjOgorICAgICAgICAg
ICAgICAgIHNjcmVlbiA9IGdldGF0dHIoZXhjLCAnc2NyZWVuJywgTm9uZSkKKyAgICAgICAgICAg
ICAgICBzdGFja3RyYWNlID0gZ2V0YXR0cihleGMsICdzdGFja3RyYWNlJywgTm9uZSkKKyAgICAg
ICAgICAgIHRpbWUuc2xlZXAoc2VsZi5fcG9sbCkKKyAgICAgICAgICAgIGlmIHRpbWUudGltZSgp
ID4gZW5kX3RpbWU6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcmFpc2UgVGltZW91
dEV4Y2VwdGlvbihtZXNzYWdlLCBzY3JlZW4sIHN0YWNrdHJhY2UpCisKKyAgICBkZWYgdW50aWxf
bm90KHNlbGYsIG1ldGhvZCwgbWVzc2FnZT0nJyk6CisgICAgICAgICIiIkNhbGxzIHRoZSBtZXRo
b2QgcHJvdmlkZWQgd2l0aCB0aGUgZHJpdmVyIGFzIGFuIGFyZ3VtZW50IHVudGlsIHRoZSBcCisg
ICAgICAgIHJldHVybiB2YWx1ZSBpcyBGYWxzZS4iIiIKKyAgICAgICAgZW5kX3RpbWUgPSB0aW1l
LnRpbWUoKSArIHNlbGYuX3RpbWVvdXQKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG1ldGhvZChzZWxmLl9kcml2ZXIpCisgICAg
ICAgICAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFs
dWUKKyAgICAgICAgICAgIGV4Y2VwdCBzZWxmLl9pZ25vcmVkX2V4Y2VwdGlvbnM6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoc2VsZi5fcG9sbCkK
KyAgICAgICAgICAgIGlmIHRpbWUudGltZSgpID4gZW5kX3RpbWU6CisgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgcmFpc2UgVGltZW91dEV4Y2VwdGlvbihtZXNzYWdlKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L3dlYmtpdGd0ay9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvX19pbml0X18ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L3dlYmtpdGd0ay9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRo
ZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3Jl
IGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMg
ZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMg
cmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmls
ZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisj
ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93
ZWJraXRndGsvb3B0aW9ucy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvb3B0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGI3OWZjM2Q1ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Vi
a2l0Z3RrL29wdGlvbnMucHkKQEAgLTAsMCArMSw5OCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29m
dHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250
cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3Ry
aWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2Fy
ZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMg
dG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGlj
ZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisj
IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2Ug
YXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMK
KyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmli
dXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU
SU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUg
TGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0u
d2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFi
aWxpdGllcworCisKK2NsYXNzIE9wdGlvbnMob2JqZWN0KToKKyAgICBLRVkgPSAnd2Via2l0Z3Rr
OmJyb3dzZXJPcHRpb25zJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxm
Ll9icm93c2VyX2V4ZWN1dGFibGVfcGF0aCA9ICcnCisgICAgICAgIHNlbGYuX2Jyb3dzZXJfYXJn
dW1lbnRzID0gW10KKyAgICAgICAgc2VsZi5fb3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQgPSBU
cnVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYnJvd3Nlcl9leGVjdXRhYmxlX3BhdGgoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBsb2NhdGlvbiBvZiB0aGUgYnJv
d3NlciBiaW5hcnkgb3RoZXJ3aXNlIGFuIGVtcHR5IHN0cmluZworICAgICAgICAiIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2Jyb3dzZXJfZXhlY3V0YWJsZV9wYXRoCisKKyAgICBAYnJvd3Nlcl9l
eGVjdXRhYmxlX3BhdGguc2V0dGVyCisgICAgZGVmIGJyb3dzZXJfZXhlY3V0YWJsZV9wYXRoKHNl
bGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBi
cm93c2VyIGJpbmFyeSB0byBsYXVuY2gKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFs
dWUgOiBwYXRoIHRvIHRoZSBicm93c2VyIGJpbmFyeQorICAgICAgICAiIiIKKyAgICAgICAgc2Vs
Zi5fYnJvd3Nlcl9leGVjdXRhYmxlX3BhdGggPSB2YWx1ZQorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIGJyb3dzZXJfYXJndW1lbnRzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu
cyBhIGxpc3Qgb2YgYXJndW1lbnRzIG5lZWRlZCBmb3IgdGhlIGJyb3dzZXIKKyAgICAgICAgIiIi
CisgICAgICAgIHJldHVybiBzZWxmLl9icm93c2VyX2FyZ3VtZW50cworCisgICAgZGVmIGFkZF9i
cm93c2VyX2FyZ3VtZW50KHNlbGYsIGFyZ3VtZW50KToKKyAgICAgICAgIiIiCisgICAgICAgIEFk
ZHMgYW4gYXJndW1lbnQgdG8gdGhlIGxpc3QKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0g
U2V0cyB0aGUgYXJndW1lbnRzCisgICAgICAgICIiIgorICAgICAgICBpZiBhcmd1bWVudDoKKyAg
ICAgICAgICAgIHNlbGYuX2Jyb3dzZXJfYXJndW1lbnRzLmFwcGVuZChhcmd1bWVudCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImFyZ3VtZW50IGNhbiBub3Qg
YmUgbnVsbCIpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgb3ZlcmxheV9zY3JvbGxiYXJzX2Vu
YWJsZWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHdoZXRoZXIgb3Zlcmxh
eSBzY3JvbGxiYXJzIHNob3VsZCBiZSBlbmFibGVkCisgICAgICAgICIiIgorICAgICAgICByZXR1
cm4gc2VsZi5fb3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQKKworICAgIEBvdmVybGF5X3Njcm9s
bGJhcnNfZW5hYmxlZC5zZXR0ZXIKKyAgICBkZWYgb3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQo
c2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQWxsb3dzIHlvdSB0byBlbmFibGUg
b3IgZGlzYWJsZSBvdmVybGF5IHNjcm9sbGJhcnMKKworICAgICAgICA6QXJnczoKKyAgICAgICAg
IC0gdmFsdWUgOiBUcnVlIG9yIEZhbHNlCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9vdmVy
bGF5X3Njcm9sbGJhcnNfZW5hYmxlZCA9IHZhbHVlCisKKyAgICBkZWYgdG9fY2FwYWJpbGl0aWVz
KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIGNhcGFiaWxpdGllcyB3aXRo
IGFsbCB0aGUgb3B0aW9ucyB0aGF0IGhhdmUgYmVlbiBzZXQgYW5kCisgICAgICAgIHJldHVybnMg
YSBkaWN0aW9uYXJ5IHdpdGggZXZlcnl0aGluZworICAgICAgICAiIiIKKyAgICAgICAgd2Via2l0
Z3RrID0gRGVzaXJlZENhcGFiaWxpdGllcy5XRUJLSVRHVEsuY29weSgpCisKKyAgICAgICAgYnJv
d3Nlcl9vcHRpb25zID0ge30KKyAgICAgICAgaWYgc2VsZi5icm93c2VyX2V4ZWN1dGFibGVfcGF0
aDoKKyAgICAgICAgICAgIGJyb3dzZXJfb3B0aW9uc1siYmluYXJ5Il0gPSBzZWxmLmJyb3dzZXJf
ZXhlY3V0YWJsZV9wYXRoCisgICAgICAgIGlmIHNlbGYuYnJvd3Nlcl9hcmd1bWVudHM6CisgICAg
ICAgICAgICBicm93c2VyX29wdGlvbnNbImFyZ3MiXSA9IHNlbGYuYnJvd3Nlcl9hcmd1bWVudHMK
KyAgICAgICAgYnJvd3Nlcl9vcHRpb25zWyJ1c2VPdmVybGF5U2Nyb2xsYmFycyJdID0gc2VsZi5v
dmVybGF5X3Njcm9sbGJhcnNfZW5hYmxlZAorCisgICAgICAgIHdlYmtpdGd0a1tPcHRpb25zLktF
WV0gPSBicm93c2VyX29wdGlvbnMKKworICAgICAgICByZXR1cm4gd2Via2l0Z3RrCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvd2Via2l0Z3RrL3NlcnZpY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL3NlcnZpY2UucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI2ZGFkNzQxMjkzCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L3dlYmtpdGd0ay9zZXJ2aWNlLnB5CkBAIC0wLDAgKzEsNDIgQEAKKyMgTGljZW5zZWQgdG8gdGhl
IFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUg
Y29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBk
aXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyBy
ZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxl
CisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMg
IkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5j
ZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNl
bnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w
CisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4g
d3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlz
dHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP
TkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUg
dGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlz
c2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVu
aXVtLndlYmRyaXZlci5jb21tb24gaW1wb3J0IHNlcnZpY2UKKworCitjbGFzcyBTZXJ2aWNlKHNl
cnZpY2UuU2VydmljZSk6CisgICAgIiIiCisgICAgT2JqZWN0IHRoYXQgbWFuYWdlcyB0aGUgc3Rh
cnRpbmcgYW5kIHN0b3BwaW5nIG9mIHRoZSBXZWJLaXRHVEtEcml2ZXIKKyAgICAiIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQ9MCwgbG9nX3BhdGg9Tm9u
ZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBT
ZXJ2aWNlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGV4ZWN1dGFibGVfcGF0aCA6IFBh
dGggdG8gdGhlIFdlYktpdEdUS0RyaXZlcgorICAgICAgICAgLSBwb3J0IDogUG9ydCB0aGUgc2Vy
dmljZSBpcyBydW5uaW5nIG9uCisgICAgICAgICAtIGxvZ19wYXRoIDogUGF0aCBmb3IgdGhlIFdl
YktpdEdUS0RyaXZlciBzZXJ2aWNlIHRvIGxvZyB0bworICAgICAgICAiIiIKKyAgICAgICAgbG9n
X2ZpbGUgPSBvcGVuKGxvZ19wYXRoLCAid2IiKSBpZiBsb2dfcGF0aCBpcyBub3QgTm9uZSBhbmQg
bG9nX3BhdGggIT0gIiIgZWxzZSBOb25lCisgICAgICAgIHNlcnZpY2UuU2VydmljZS5fX2luaXRf
XyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQsIGxvZ19maWxlKQorCisgICAgZGVmIGNvbW1h
bmRfbGluZV9hcmdzKHNlbGYpOgorICAgICAgICByZXR1cm4gWyItcCIsICIlZCIgJSBzZWxmLnBv
cnRdCisKKyAgICBkZWYgc2VuZF9yZW1vdGVfc2h1dGRvd25fY29tbWFuZChzZWxmKToKKyAgICAg
ICAgcGFzcwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay93ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL3dlYmRy
aXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzAwOWNlMmFk
ODIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL3dlYmRyaXZlci5weQpAQCAtMCwwICsxLDcy
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKwordHJ5OgorICAgIGltcG9ydCBodHRwLmNsaWVudCBhcyBodHRwX2NsaWVudAor
ZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBodHRwbGliIGFzIGh0dHBfY2xpZW50CisK
K2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBv
cnQgRGVzaXJlZENhcGFiaWxpdGllcworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndl
YmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFJlbW90ZVdlYkRyaXZlcgorZnJvbSAuc2Vydmlj
ZSBpbXBvcnQgU2VydmljZQorCisKK2NsYXNzIFdlYkRyaXZlcihSZW1vdGVXZWJEcml2ZXIpOgor
ICAgICIiIgorICAgIENvbnRyb2xzIHRoZSBXZWJLaXRHVEtEcml2ZXIgYW5kIGFsbG93cyB5b3Ug
dG8gZHJpdmUgdGhlIGJyb3dzZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
ZXhlY3V0YWJsZV9wYXRoPSJXZWJLaXRXZWJEcml2ZXIiLCBwb3J0PTAsIG9wdGlvbnM9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9RGVzaXJlZENhcGFiaWxpdGll
cy5XRUJLSVRHVEssCisgICAgICAgICAgICAgICAgIHNlcnZpY2VfbG9nX3BhdGg9Tm9uZSk6Cisg
ICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBXZWJLaXRH
VEsgZHJpdmVyLgorCisgICAgICAgIFN0YXJ0cyB0aGUgc2VydmljZSBhbmQgdGhlbiBjcmVhdGVz
IG5ldyBpbnN0YW5jZSBvZiBXZWJLaXRHVEsgRHJpdmVyLgorCisgICAgICAgIDpBcmdzOgorICAg
ICAgICAgLSBleGVjdXRhYmxlX3BhdGggOiBwYXRoIHRvIHRoZSBleGVjdXRhYmxlLiBJZiB0aGUg
ZGVmYXVsdCBpcyB1c2VkIGl0IGFzc3VtZXMgdGhlIGV4ZWN1dGFibGUgaXMgaW4gdGhlICRQQVRI
LgorICAgICAgICAgLSBwb3J0IDogcG9ydCB5b3Ugd291bGQgbGlrZSB0aGUgc2VydmljZSB0byBy
dW4sIGlmIGxlZnQgYXMgMCwgYSBmcmVlIHBvcnQgd2lsbCBiZSBmb3VuZC4KKyAgICAgICAgIC0g
b3B0aW9ucyA6IGFuIGluc3RhbmNlIG9mIFdlYktpdEdUS09wdGlvbnMKKyAgICAgICAgIC0gZGVz
aXJlZF9jYXBhYmlsaXRpZXMgOiBEaWN0aW9uYXJ5IG9iamVjdCB3aXRoIGRlc2lyZWQgY2FwYWJp
bGl0aWVzCisgICAgICAgICAtIHNlcnZpY2VfbG9nX3BhdGggOiBQYXRoIHRvIHdyaXRlIHNlcnZp
Y2Ugc3Rkb3V0IGFuZCBzdGRlcnIgb3V0cHV0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgb3B0
aW9ucyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IG9wdGlvbnMudG9f
Y2FwYWJpbGl0aWVzKCkKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcy51cGRhdGUoZGVzaXJlZF9j
YXBhYmlsaXRpZXMpCisgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcyA9IGNhcGFiaWxp
dGllcworCisgICAgICAgIHNlbGYuc2VydmljZSA9IFNlcnZpY2UoZXhlY3V0YWJsZV9wYXRoLCBw
b3J0PXBvcnQsIGxvZ19wYXRoPXNlcnZpY2VfbG9nX3BhdGgpCisgICAgICAgIHNlbGYuc2Vydmlj
ZS5zdGFydCgpCisKKyAgICAgICAgUmVtb3RlV2ViRHJpdmVyLl9faW5pdF9fKAorICAgICAgICAg
ICAgc2VsZiwKKyAgICAgICAgICAgIGNvbW1hbmRfZXhlY3V0b3I9c2VsZi5zZXJ2aWNlLnNlcnZp
Y2VfdXJsLAorICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9ZGVzaXJlZF9jYXBhYmls
aXRpZXMpCisgICAgICAgIHNlbGYuX2lzX3JlbW90ZSA9IEZhbHNlCisKKyAgICBkZWYgcXVpdChz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIENsb3NlcyB0aGUgYnJvd3NlciBhbmQgc2h1dHMg
ZG93biB0aGUgV2ViS2l0R1RLRHJpdmVyIGV4ZWN1dGFibGUKKyAgICAgICAgdGhhdCBpcyBzdGFy
dGVkIHdoZW4gc3RhcnRpbmcgdGhlIFdlYktpdEdUS0RyaXZlcgorICAgICAgICAiIiIKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgUmVtb3RlV2ViRHJpdmVyLnF1aXQoc2VsZikKKyAgICAgICAg
ZXhjZXB0IGh0dHBfY2xpZW50LkJhZFN0YXR1c0xpbmU6CisgICAgICAgICAgICBwYXNzCisgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLnNlcnZpY2Uuc3RvcCgpCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZXR1cC5jZmcgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZXR1cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhjOTg2YmIwNzg0Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2V0dXAuY2ZnCkBAIC0wLDAgKzEsMTEg
QEAKK1tiZGlzdF93aGVlbF0KK3VuaXZlcnNhbCA9IDEKKworW2ZsYWtlOF0KK2V4Y2x1ZGUgPSAu
dG94LGRvY3Mvc291cmNlL2NvbmYucHkKK2lnbm9yZSA9IEU1MDEKKworW3B5dGVzdF0KK2FkZG9w
dHMgPSAtcj1hCitweXRob25fZmlsZXMgPSB0ZXN0XyoucHkgKl90ZXN0cy5weQordGVzdHBhdGhz
ID0gdGVzdApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2V0dXAucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZXR1cC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzc5YWU1ZWJhMTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZXR1cC5w
eQpAQCAtMCwwICsxLDgyIEBACisjIS91c3IvYmluL2VudiBweXRob24KKworIyBMaWNlbnNlZCB0
byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3Ig
bW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxl
CisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9u
CisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlz
IGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRo
ZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T
RS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0
byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBp
cyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMg
T1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4g
IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBw
ZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20g
ZGlzdHV0aWxzLmNvbW1hbmQuaW5zdGFsbCBpbXBvcnQgSU5TVEFMTF9TQ0hFTUVTCitmcm9tIG9z
LnBhdGggaW1wb3J0IGRpcm5hbWUsIGpvaW4sIGFic3BhdGgKK2Zyb20gc2V0dXB0b29scyBpbXBv
cnQgc2V0dXAKK2Zyb20gc2V0dXB0b29scy5jb21tYW5kLmluc3RhbGwgaW1wb3J0IGluc3RhbGwK
KworCitmb3Igc2NoZW1lIGluIElOU1RBTExfU0NIRU1FUy52YWx1ZXMoKToKKyAgICBzY2hlbWVb
J2RhdGEnXSA9IHNjaGVtZVsncHVyZWxpYiddCisKK3NldHVwX2FyZ3MgPSB7CisgICAgJ2NtZGNs
YXNzJzogeydpbnN0YWxsJzogaW5zdGFsbH0sCisgICAgJ25hbWUnOiAnc2VsZW5pdW0nLAorICAg
ICd2ZXJzaW9uJzogIjMuOC4wIiwKKyAgICAnbGljZW5zZSc6ICdBcGFjaGUgMi4wJywKKyAgICAn
ZGVzY3JpcHRpb24nOiAnUHl0aG9uIGJpbmRpbmdzIGZvciBTZWxlbml1bScsCisgICAgJ2xvbmdf
ZGVzY3JpcHRpb24nOiBvcGVuKGpvaW4oYWJzcGF0aChkaXJuYW1lKF9fZmlsZV9fKSksICJSRUFE
TUUucnN0IikpLnJlYWQoKSwKKyAgICAndXJsJzogJ2h0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1
bUhRL3NlbGVuaXVtLycsCisgICAgJ2NsYXNzaWZpZXJzJzogWydEZXZlbG9wbWVudCBTdGF0dXMg
OjogNSAtIFByb2R1Y3Rpb24vU3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgJ0ludGVuZGVk
IEF1ZGllbmNlIDo6IERldmVsb3BlcnMnLAorICAgICAgICAgICAgICAgICAgICAnTGljZW5zZSA6
OiBPU0kgQXBwcm92ZWQgOjogQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UnLAorICAgICAgICAgICAg
ICAgICAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBQT1NJWCcsCisgICAgICAgICAgICAgICAgICAg
ICdPcGVyYXRpbmcgU3lzdGVtIDo6IE1pY3Jvc29mdCA6OiBXaW5kb3dzJywKKyAgICAgICAgICAg
ICAgICAgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWCcsCisgICAgICAg
ICAgICAgICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBUZXN0aW5nJywK
KyAgICAgICAgICAgICAgICAgICAgJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExp
YnJhcmllcycsCisgICAgICAgICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24nLAorICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0
aG9uIDo6IDIuNycsCisgICAgICAgICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6
OiBQeXRob24gOjogMy40JywKKyAgICAgICAgICAgICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1
YWdlIDo6IFB5dGhvbiA6OiAzLjUnLAorICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcg
TGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNiddLAorICAgICdwYWNrYWdlX2Rpcic6IHsKKyAgICAg
ICAgJ3NlbGVuaXVtJzogJ3NlbGVuaXVtJywKKyAgICAgICAgJ3NlbGVuaXVtLmNvbW1vbic6ICdz
ZWxlbml1bS9jb21tb24nLAorICAgICAgICAnc2VsZW5pdW0ud2ViZHJpdmVyJzogJ3NlbGVuaXVt
L3dlYmRyaXZlcicsCisgICAgfSwKKyAgICAncGFja2FnZXMnOiBbJ3NlbGVuaXVtJywKKyAgICAg
ICAgICAgICAgICAgJ3NlbGVuaXVtLmNvbW1vbicsCisgICAgICAgICAgICAgICAgICdzZWxlbml1
bS53ZWJkcml2ZXInLAorICAgICAgICAgICAgICAgICAnc2VsZW5pdW0ud2ViZHJpdmVyLmFuZHJv
aWQnLAorICAgICAgICAgICAgICAgICAnc2VsZW5pdW0ud2ViZHJpdmVyLmNocm9tZScsCisgICAg
ICAgICAgICAgICAgICdzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uJywKKyAgICAgICAgICAgICAg
ICAgJ3NlbGVuaXVtLndlYmRyaXZlci5jb21tb24uaHRtbDUnLAorICAgICAgICAgICAgICAgICAn
c2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQnLAorICAgICAgICAgICAgICAgICAnc2VsZW5pdW0u
d2ViZHJpdmVyLmZpcmVmb3gnLAorICAgICAgICAgICAgICAgICAnc2VsZW5pdW0ud2ViZHJpdmVy
LmllJywKKyAgICAgICAgICAgICAgICAgJ3NlbGVuaXVtLndlYmRyaXZlci5lZGdlJywKKyAgICAg
ICAgICAgICAgICAgJ3NlbGVuaXVtLndlYmRyaXZlci5vcGVyYScsCisgICAgICAgICAgICAgICAg
ICdzZWxlbml1bS53ZWJkcml2ZXIucGhhbnRvbWpzJywKKyAgICAgICAgICAgICAgICAgJ3NlbGVu
aXVtLndlYmRyaXZlci5yZW1vdGUnLAorICAgICAgICAgICAgICAgICAnc2VsZW5pdW0ud2ViZHJp
dmVyLnN1cHBvcnQnLCBdLAorICAgICdwYWNrYWdlX2RhdGEnOiB7CisgICAgICAgICdzZWxlbml1
bS53ZWJkcml2ZXIuZmlyZWZveCc6IFsnKi54cGknLCAnd2ViZHJpdmVyX3ByZWZzLmpzb24nXSwK
KyAgICAgICAgJ3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUnOiBbJ2dldEF0dHJpYnV0ZS5qcycs
ICdpc0Rpc3BsYXllZC5qcyddLAorICAgIH0sCisgICAgJ2RhdGFfZmlsZXMnOiBbKCdzZWxlbml1
bS93ZWJkcml2ZXIvZmlyZWZveC94ODYnLCBbJ3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94L3g4
Ni94X2lnbm9yZV9ub2ZvY3VzLnNvJ10pLAorICAgICAgICAgICAgICAgICAgICgnc2VsZW5pdW0v
d2ViZHJpdmVyL2ZpcmVmb3gvYW1kNjQnLCBbJ3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94L2Ft
ZDY0L3hfaWdub3JlX25vZm9jdXMuc28nXSksCisgICAgICAgICAgICAgICAgICAgKCdzZWxlbml1
bS93ZWJkcml2ZXIvcmVtb3RlJywgWydzZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2dldEF0dHJp
YnV0ZS5qcyddKSwKKyAgICAgICAgICAgICAgICAgICAoJ3NlbGVuaXVtL3dlYmRyaXZlci9yZW1v
dGUnLCBbJ3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvaXNEaXNwbGF5ZWQuanMnXSldLAorICAg
ICdpbmNsdWRlX3BhY2thZ2VfZGF0YSc6IFRydWUsCisgICAgJ3ppcF9zYWZlJzogRmFsc2UKK30K
Kworc2V0dXAoKipzZXR1cF9hcmdzKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3QvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBA
CisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVu
ZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0
aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZD
IGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu
IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhP
VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3Vh
Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGlj
ZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5hNWIxZTZmODVhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vX19pbml0X18ucHkKQEAgLTAs
MCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5j
eSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVu
dHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZv
ciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlw
LiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUg
TGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmli
dXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0
aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNp
ZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5k
ZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9f
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIxZTZmODVhMAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
CisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY2hyb21lL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY2hyb21lL19faW5pdF9fLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIxZTZmODVhMAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisj
IExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVy
IG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUg
Tk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwg
aW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxp
Y2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz
aW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhj
ZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEg
Y29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNl
bnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcg
b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQg
V0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBv
ciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2Ug
Z292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5z
ZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9jaHJvbWVfbGF1bmNoZXJfdGVzdHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
aHJvbWUvY2hyb21lX2xhdW5jaGVyX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5iOTQ3MGQxZjM1MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9j
aHJvbWVfbGF1bmNoZXJfdGVzdHMucHkKQEAgLTAsMCArMSw0MSBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2Vs
ZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBDaHJvbWUKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNv
bW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcworCisK
K2RlZiB0ZXN0X2xhdW5jaF9hbmRfY2xvc2VfYnJvd3NlcigpOgorICAgIGRyaXZlciA9IENocm9t
ZSgpCisgICAgZHJpdmVyLnF1aXQoKQorCisKK2RlZiB0ZXN0X3dlX2Nhbl9sYXVuY2hfbXVsdGlw
bGVfY2hyb21lX2luc3RhbmNlcygpOgorICAgIGRyaXZlcjEgPSBDaHJvbWUoKQorICAgIGRyaXZl
cjIgPSBDaHJvbWUoKQorICAgIGRyaXZlcjMgPSBDaHJvbWUoKQorICAgIGRyaXZlcjEucXVpdCgp
CisgICAgZHJpdmVyMi5xdWl0KCkKKyAgICBkcml2ZXIzLnF1aXQoKQorCisKK2RlZiB0ZXN0X2xh
dW5jaF9jaHJvbWVfZG9fbm90X2FmZmVjdF9kZWZhdWx0X2NhcGFiaWxpdGllcygpOgorICAgIGV4
cGVjdGVkID0gRGVzaXJlZENhcGFiaWxpdGllcy5DSFJPTUUuY29weSgpCisgICAgZHJpdmVyID0g
Q2hyb21lKCkKKyAgICBhY3R1YWwgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLkNIUk9NRS5jb3B5KCkK
KyAgICBkcml2ZXIucXVpdCgpCisgICAgYXNzZXJ0IGFjdHVhbCA9PSBleHBlY3RlZApkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY2hyb21lL2Nocm9tZV9uZXR3b3JrX2VtdWxhdGlvbl90ZXN0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2No
cm9tZS9jaHJvbWVfbmV0d29ya19lbXVsYXRpb25fdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM0MmJjNzZiMzJkCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y2hyb21lL2Nocm9tZV9uZXR3b3JrX2VtdWxhdGlvbl90ZXN0cy5weQpAQCAtMCwwICsxLDMxIEBA
CisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVu
ZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0
aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZD
IGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu
IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhP
VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3Vh
Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGlj
ZW5zZS4KKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IENocm9tZQorCisKK2RlZiB0
ZXN0X25ldHdvcmtfY29uZGl0aW9uc19lbXVsYXRpb24oKToKKyAgICBkcml2ZXIgPSBDaHJvbWUo
KQorICAgIGRyaXZlci5zZXRfbmV0d29ya19jb25kaXRpb25zKAorICAgICAgICBvZmZsaW5lPUZh
bHNlLAorICAgICAgICBsYXRlbmN5PTU2LCAgIyBhZGRpdGlvbmFsIGxhdGVuY3kgKG1zKQorICAg
ICAgICB0aHJvdWdocHV0PTc4OSkKKyAgICBjb25kaXRpb25zID0gZHJpdmVyLmdldF9uZXR3b3Jr
X2NvbmRpdGlvbnMoKQorICAgIGFzc2VydCBjb25kaXRpb25zWydvZmZsaW5lJ10gaXMgRmFsc2UK
KyAgICBhc3NlcnQgY29uZGl0aW9uc1snbGF0ZW5jeSddID09IDU2CisgICAgYXNzZXJ0IGNvbmRp
dGlvbnNbJ2Rvd25sb2FkX3Rocm91Z2hwdXQnXSA9PSA3ODkKKyAgICBhc3NlcnQgY29uZGl0aW9u
c1sndXBsb2FkX3Rocm91Z2hwdXQnXSA9PSA3ODkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9fX2lu
aXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
X19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUg
RnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRv
ciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVk
IHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBj
b3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIp
OyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGgg
dGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMK
KyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5s
ZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAor
IyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv
biBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBP
RiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5z
ZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQg
bGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
YWxlcnRzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FsZXJ0c190ZXN0cy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2M0OTZjMzYzZDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vYWxlcnRzX3Rlc3RzLnB5CkBAIC0wLDAgKzEsNDI2IEBACisjIExpY2Vuc2Vk
IHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBv
ciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZp
bGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRo
aXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElF
UyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1w
b3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1v
bi5ieSBpbXBvcnQgQnkKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4
cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQu
d2FpdCBpbXBvcnQgV2ViRHJpdmVyV2FpdAorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9u
cyBpbXBvcnQgKAorICAgIEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24sCisgICAgTm9BbGVy
dFByZXNlbnRFeGNlcHRpb24sCisgICAgVW5leHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2VwdGlvbiwK
KyAgICBXZWJEcml2ZXJFeGNlcHRpb24pCisKKworQHB5dGVzdC55aWVsZF9maXh0dXJlKGF1dG91
c2U9VHJ1ZSkKK2RlZiBjbG9zZV9hbGVydChkcml2ZXIpOgorICAgIHlpZWxkCisgICAgdHJ5Ogor
ICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmFsZXJ0LmRpc21pc3MoKQorICAgIGV4Y2VwdCBFeGNl
cHRpb246CisgICAgICAgIHBhc3MKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAg
IHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMv
ZGV0YWlsP2lkPTE1MDAnKQorZGVmIHRlc3RTaG91bGRCZUFibGVUb092ZXJyaWRlVGhlV2luZG93
QWxlcnRNZXRob2QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWxlcnRzLmh0bWwi
KQorICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgIndpbmRvdy5hbGVydCA9IGZ1
bmN0aW9uKG1zZykgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dCcpLmlubmVySFRNTCA9
IG1zZzsgfSIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImFsZXJ0
IikuY2xpY2soKQorICAgIHRyeToKKyAgICAgICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoJ3RleHQnKS50ZXh0ID09ICJjaGVlc2UiCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgorICAgICAgICAjIGlmIHdlJ3JlIGhlcmUsIGxpa2VseSB0aGUgYWxlcnQgaXMgZGlzcGxheWVk
CisgICAgICAgICMgbm90IGRpc21pc3NpbmcgaXQgd2lsbCBhZmZlY3Qgb3RoZXIgdGVzdHMKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgX3dhaXRGb3JBbGVydChkcml2ZXIpLmRpc21pc3MoKQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcGFzcworICAgICAgICByYWlz
ZSBlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBz
Oi8vZ2l0aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1X
ZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNv
bj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWls
P2lkPTE1MDAnKQorZGVmIHRlc3RTaG91bGRBbGxvd1VzZXJzVG9BY2NlcHRBbkFsZXJ0TWFudWFs
bHkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJhbGVydCIpLmNsaWNrKCkKKyAgICBh
bGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIGFsZXJ0LmFjY2VwdCgpCisgICAgIyAg
SWYgd2UgY2FuIHBlcmZvcm0gYW55IGFjdGlvbiwgd2UncmUgZ29vZCB0byBnbworICAgIGFzc2Vy
dCAiVGVzdGluZyBBbGVydHMiID09IGRyaXZlci50aXRsZQorCisKK0BweXRlc3QubWFyay54ZmFp
bF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rk
cml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5v
cmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xNTAwJykKK2RlZiB0ZXN0U2hvdWxk
QWxsb3dVc2Vyc1RvQWNjZXB0QW5BbGVydFdpdGhOb1RleHRNYW51YWxseShkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVu
dChCeS5JRCwgImVtcHR5LWFsZXJ0IikuY2xpY2soKQorICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVy
dChkcml2ZXIpCisgICAgYWxlcnQuYWNjZXB0KCkKKworICAgICMgIElmIHdlIGNhbiBwZXJmb3Jt
IGFueSBhY3Rpb24sIHdlJ3JlIGdvb2QgdG8gZ28KKyAgICBhc3NlcnQgIlRlc3RpbmcgQWxlcnRz
IiA9PSBkcml2ZXIudGl0bGUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAg
IHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcs
CisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJv
bWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVy
L2lzc3Vlcy9kZXRhaWw/aWQ9MTUwMCcpCitkZWYgdGVzdFNob3VsZEdldFRleHRPZkFsZXJ0T3Bl
bmVkSW5TZXRUaW1lb3V0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5o
dG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJzbG93LWFsZXJ0IikuY2xpY2so
KQorCisgICAgIyBETyBOT1QgV0FJVCBPUiBTTEVFUCBIRVJFCisgICAgIyBUaGlzIGlzIGEgcmVn
cmVzc2lvbiB0ZXN0IGZvciBhIGJ1ZyB3aGVyZSBvbmx5IHRoZSBmaXJzdCBzd2l0Y2hUbyBjYWxs
IHdvdWxkIHRocm93LAorICAgICMgYW5kIG9ubHkgaWYgaXQgaGFwcGVucyBiZWZvcmUgdGhlIGFs
ZXJ0IGFjdHVhbGx5IGxvYWRzLgorCisgICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikK
KyAgICB0cnk6CisgICAgICAgIGFzc2VydCAiU2xvdyIgPT0gYWxlcnQudGV4dAorICAgIGZpbmFs
bHk6CisgICAgICAgIGFsZXJ0LmFjY2VwdCgpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9t
ZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIv
aXNzdWVzL2RldGFpbD9pZD0yNiBhbmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9t
ZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnLAorICAgIHJ1bj1GYWxzZSkKK0BweXRlc3Qu
bWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vZGV0
cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9u
KQorZGVmIHRlc3RTaG91bGRBbGxvd1VzZXJzVG9EaXNtaXNzQW5BbGVydE1hbnVhbGx5KGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iYWxlcnQiKS5jbGljaygpCisgICAgYWxlcnQgPSBf
d2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5kaXNtaXNzKCkKKyAgICAjICBJZiB3ZSBj
YW4gcGVyZm9ybSBhbnkgYWN0aW9uLCB3ZSdyZSBnb29kIHRvIGdvCisgICAgYXNzZXJ0ICJUZXN0
aW5nIEFsZXJ0cyIgPT0gZHJpdmVyLnRpdGxlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50
b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9p
c3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2No
cm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQorZGVmIHRlc3RTaG91bGRBbGxvd0FV
c2VyVG9BY2NlcHRBUHJvbXB0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0
cy5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icHJvbXB0
IikuY2xpY2soKQorICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgYWxlcnQu
YWNjZXB0KCkKKworICAgICMgIElmIHdlIGNhbiBwZXJmb3JtIGFueSBhY3Rpb24sIHdlJ3JlIGdv
b2QgdG8gZ28KKyAgICBhc3NlcnQgIlRlc3RpbmcgQWxlcnRzIiA9PSBkcml2ZXIudGl0bGUKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRo
dWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2VzPVdlYkRyaXZl
ckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisgICAgcmVhc29uPSdodHRw
czovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTUw
MCcpCitkZWYgdGVzdFNob3VsZEFsbG93QVVzZXJUb0Rpc21pc3NBUHJvbXB0KGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVt
ZW50KGJ5PUJ5LklELCB2YWx1ZT0icHJvbXB0IikuY2xpY2soKQorICAgIGFsZXJ0ID0gX3dhaXRG
b3JBbGVydChkcml2ZXIpCisgICAgYWxlcnQuZGlzbWlzcygpCisKKyAgICAjICBJZiB3ZSBjYW4g
cGVyZm9ybSBhbnkgYWN0aW9uLCB3ZSdyZSBnb29kIHRvIGdvCisgICAgYXNzZXJ0ICJUZXN0aW5n
IEFsZXJ0cyIgPT0gZHJpdmVyLnRpdGxlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgK
KyAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNz
dWVzL2RldGFpbD9pZD0xNTAwJykKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAg
cmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywK
KyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RTaG91bGRBbGxvd0FVc2Vy
VG9TZXRUaGVWYWx1ZU9mQVByb21wdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJh
bGVydHMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InBy
b21wdCIpLmNsaWNrKCkKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIGFs
ZXJ0LnNlbmRfa2V5cygiY2hlZXNlIikKKyAgICBhbGVydC5hY2NlcHQoKQorCisgICAgcmVzdWx0
ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InRleHQiKS50ZXh0CisgICAg
YXNzZXJ0ICJjaGVlc2UiID09IHJlc3VsdAorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUo
CisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lz
c3Vlcy9kZXRhaWw/aWQ9MTM1MycpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAg
IHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcs
CisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0ZXN0U2V0dGluZ1RoZVZhbHVl
T2ZBbkFsZXJ0VGhyb3dzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5o
dG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYWxlcnQiKS5jbGljaygpCisK
KyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKToKKyAgICAgICAgYWxlcnQuc2VuZF9rZXlz
KCJjaGVlc2UiKQorICAgIGFsZXJ0LmFjY2VwdCgpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2No
cm9tZSgKKyAgICBjb25kaXRpb249c3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nLAorICAgIHJlYXNv
bj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWls
P2lkPTI2JywKKyAgICBydW49RmFsc2UpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAor
ICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8y
MCcsCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0ZXN0QWxlcnRTaG91bGRO
b3RBbGxvd0FkZGl0aW9uYWxDb21tYW5kc0lmRGltaXNzZWQoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICJhbGVydCIpLmNsaWNrKCkKKworICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisg
ICAgYWxlcnQuZGlzbWlzcygpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9BbGVydFByZXNl
bnRFeGNlcHRpb24pOgorICAgICAgICBhbGVydC50ZXh0CisKKworQHB5dGVzdC5tYXJrLnhmYWls
X3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRyby9naG9zdGRy
aXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0
Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9y
Zy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQorQHB5dGVzdC5tYXJrLnhm
YWlsX21hcmlvbmV0dGUocmVhc29uPSdGYWlscyBvbiB0cmF2aXMnKQorZGVmIHRlc3RTaG91bGRB
bGxvd1VzZXJzVG9BY2NlcHRBbkFsZXJ0SW5BRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWZyYW1lV2l0aEFsZXJ0IikpCisgICAgZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgiYWxlcnRJbkZyYW1lIikuY2xpY2soKQorCisgICAgYWxlcnQgPSBf
d2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5hY2NlcHQoKQorCisgICAgYXNzZXJ0ICJU
ZXN0aW5nIEFsZXJ0cyIgPT0gZHJpdmVyLnRpdGxlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3Bo
YW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRyby9naG9zdGRyaXZl
ci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1h
cmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9w
L2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQorQHB5dGVzdC5tYXJrLnhmYWls
X21hcmlvbmV0dGUocmVhc29uPSdGYWlscyBvbiB0cmF2aXMnKQorZGVmIHRlc3RTaG91bGRBbGxv
d1VzZXJzVG9BY2NlcHRBbkFsZXJ0SW5BTmVzdGVkRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWZyYW1lV2l0aElmcmFtZSIpKQorICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWZyYW1lV2l0
aEFsZXJ0IikpCisKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJhbGVydEluRnJhbWUi
KS5jbGljaygpCisKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIGFsZXJ0
LmFjY2VwdCgpCisKKyAgICBhc3NlcnQgIlRlc3RpbmcgQWxlcnRzIiA9PSBkcml2ZXIudGl0bGUK
KworCitkZWYgdGVzdFNob3VsZFRocm93QW5FeGNlcHRpb25JZkFuQWxlcnRIYXNOb3RCZWVuRGVh
bHRXaXRoQW5kRGlzbWlzc1RoZUFsZXJ0KCk6CisgICAgcGFzcworICAgICMgLy9UT0RPKERhdmlk
KSBDb21wbGV0ZSB0aGlzIHRlc3QKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAor
ICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8y
MCcsCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9j
aHJvbWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJp
dmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTUwMCcpCitkZWYgdGVzdFByb21wdFNob3VsZFVzZURlZmF1
bHRWYWx1ZUlmTm9LZXlzU2VudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVy
dHMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInByb21wdC13aXRoLWRl
ZmF1bHQiKS5jbGljaygpCisKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAg
IGFsZXJ0LmFjY2VwdCgpCisKKyAgICB0eHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAi
dGV4dCIpLnRleHQKKyAgICBhc3NlcnQgIlRoaXMgaXMgYSBkZWZhdWx0IHZhbHVlIiA9PSB0eHQK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9n
aXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2VzPVdlYkRy
aXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisgICAgcmVhc29uPSdo
dHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9
MTUwMCcpCitkZWYgdGVzdFByb21wdFNob3VsZEhhdmVOdWxsVmFsdWVJZkRpc21pc3NlZChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRtbCIpCisgICAgZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5JRCwgInByb21wdC13aXRoLWRlZmF1bHQiKS5jbGljaygpCisgICAgYWxl
cnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5kaXNtaXNzKCkKKworICAgIGFz
c2VydCAibnVsbCIgPT0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInRleHQiKS50ZXh0CisK
KworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0
aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2
ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0
cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1
MDAnKQorZGVmIHRlc3RIYW5kbGVzVHdvQWxlcnRzRnJvbU9uZUludGVyYWN0aW9uKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKworICAgIGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuSUQsICJkb3VibGUtcHJvbXB0IikuY2xpY2soKQorCisgICAgYWxlcnQxID0g
X3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgYWxlcnQxLnNlbmRfa2V5cygiYnJpZSIpCisgICAg
YWxlcnQxLmFjY2VwdCgpCisKKyAgICBhbGVydDIgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAg
ICBhbGVydDIuc2VuZF9rZXlzKCJjaGVkZGFyIikKKyAgICBhbGVydDIuYWNjZXB0KCkKKworICAg
IGFzc2VydCBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAidGV4dDEiKS50ZXh0ID09ICJicmll
IgorICAgIGFzc2VydCBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAidGV4dDIiKS50ZXh0ID09
ICJjaGVkZGFyIgorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29u
PSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICBy
YWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAg
ICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVz
L2RldGFpbD9pZD0xNTAwJykKK2RlZiB0ZXN0U2hvdWxkSGFuZGxlQWxlcnRPblBhZ2VMb2FkKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5LklELCAib3Blbi1wYWdlLXdpdGgtb25sb2FkLWFsZXJ0IikuY2xpY2so
KQorICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgdmFsdWUgPSBhbGVydC50
ZXh0CisgICAgYWxlcnQuYWNjZXB0KCkKKyAgICBhc3NlcnQgIm9ubG9hZCIgPT0gdmFsdWUKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRo
dWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2VzPVdlYkRyaXZl
ckV4Y2VwdGlvbikKK2RlZiB0ZXN0U2hvdWxkSGFuZGxlQWxlcnRPblBhZ2VMb2FkVXNpbmdHZXQo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgicGFnZVdpdGhPbkxvYWQuaHRtbCIpCisg
ICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICB2YWx1ZSA9IGFsZXJ0LnRleHQK
KyAgICBhbGVydC5hY2NlcHQoKQorCisgICAgYXNzZXJ0ICJvbmxvYWQiID09IHZhbHVlCisgICAg
V2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRleHRfdG9fYmVfcHJlc2VudF9pbl9l
bGVtZW50KChCeS5UQUdfTkFNRSwgInAiKSwgIlBhZ2Ugd2l0aCBvbmxvYWQgZXZlbnQgaGFuZGxl
ciIpKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRw
czovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9
V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFz
b249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFp
bD9pZD0xNTAwJykKK2RlZiB0ZXN0U2hvdWxkSGFuZGxlQWxlcnRPblBhZ2VCZWZvcmVVbmxvYWQo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgicGFnZVdpdGhPbkJlZm9yZVVubG9hZE1l
c3NhZ2UuaHRtbCIpCisKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwg
Im5hdmlnYXRlIikKKyAgICBlbGVtZW50LmNsaWNrKCkKKworICAgIGFsZXJ0ID0gX3dhaXRGb3JB
bGVydChkcml2ZXIpCisgICAgYWxlcnQuZGlzbWlzcygpCisgICAgYXNzZXJ0ICJwYWdlV2l0aE9u
QmVmb3JlVW5sb2FkTWVzc2FnZS5odG1sIiBpbiBkcml2ZXIuY3VycmVudF91cmwKKworICAgIGVs
ZW1lbnQuY2xpY2soKQorICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgYWxl
cnQuYWNjZXB0KCkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMudGl0bGVf
aXMoIlRlc3RpbmcgQWxlcnRzIikpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygK
KyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMv
MjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxf
Y2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRy
aXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQorZGVmIF90ZXN0U2hvdWxkSGFuZGxlQWxlcnRP
blBhZ2VCZWZvcmVVbmxvYWRBdFF1aXQoZHJpdmVyLCBwYWdlcyk6CisgICAgIyBUT0RPOiBBZGQg
dGhlIGFiaWxpdHkgdG8gZ2V0IGEgbmV3IHNlc3Npb24KKyAgICBwYWdlcy5sb2FkKCJwYWdlV2l0
aE9uQmVmb3JlVW5sb2FkTWVzc2FnZS5odG1sIikKKworICAgIGVsZW1lbnQgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5LklELCAibmF2aWdhdGUiKQorICAgIGVsZW1lbnQuY2xpY2soKQorCisgICAg
X3dhaXRGb3JBbGVydChkcml2ZXIpCisKKyAgICBkcml2ZXIucXVpdCgpCisKKworQHB5dGVzdC5t
YXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRy
by9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24p
CitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNo
cm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQorZGVmIHRl
c3RTaG91bGRBbGxvd1RoZVVzZXJUb0dldFRoZVRleHRPZkFuQWxlcnQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQo
Ynk9QnkuSUQsIHZhbHVlPSJhbGVydCIpLmNsaWNrKCkKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxl
cnQoZHJpdmVyKQorICAgIHZhbHVlID0gYWxlcnQudGV4dAorICAgIGFsZXJ0LmFjY2VwdCgpCisg
ICAgYXNzZXJ0ICJjaGVlc2UiID09IHZhbHVlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9t
ZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIv
aXNzdWVzL2RldGFpbD9pZD0xNTAwJykKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisg
ICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIw
JywKKyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RTaG91bGRBbGxvd1Ro
ZVVzZXJUb0dldFRoZVRleHRPZkFQcm9tcHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJwcm9tcHQi
KS5jbGljaygpCisKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIHZhbHVl
ID0gYWxlcnQudGV4dAorICAgIGFsZXJ0LmFjY2VwdCgpCisKKyAgICBhc3NlcnQgIkVudGVyIHNv
bWV0aGluZyIgPT0gdmFsdWUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAg
IHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcs
CisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJv
bWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVy
L2lzc3Vlcy9kZXRhaWw/aWQ9MTUwMCcpCitkZWYgdGVzdEFsZXJ0U2hvdWxkTm90QWxsb3dBZGRp
dGlvbmFsQ29tbWFuZHNJZkRpc21pc3NlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJhbGVydHMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImFsZXJ0Iiku
Y2xpY2soKQorCisgICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5h
Y2NlcHQoKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vQWxlcnRQcmVzZW50RXhjZXB0aW9u
KToKKyAgICAgICAgYWxlcnQudGV4dAorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisg
ICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vl
cy9kZXRhaWw/aWQ9MTUzNycpCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAgICBy
ZWFzb249J2h0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzky
MTEnKQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8v
Z2l0aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJE
cml2ZXJFeGNlcHRpb24pCitkZWYgdGVzdFVuZXhwZWN0ZWRBbGVydFByZXNlbnRFeGNlcHRpb25D
b250YWluc0FsZXJ0VGV4dChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMu
aHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImFsZXJ0Iiku
Y2xpY2soKQorICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgdmFsdWUgPSBh
bGVydC50ZXh0CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFVuZXhwZWN0ZWRBbGVydFByZXNlbnRF
eGNlcHRpb24pIGFzIGU6CisgICAgICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisg
ICAgYXNzZXJ0IHZhbHVlID09IGUudmFsdWUuYWxlcnRfdGV4dAorICAgIGFzc2VydCAiQWxlcnQg
VGV4dDoge30iLmZvcm1hdCh2YWx1ZSkgaW4gc3RyKGUpCisKKworZGVmIF93YWl0Rm9yQWxlcnQo
ZHJpdmVyKToKKyAgICByZXR1cm4gV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLmFs
ZXJ0X2lzX3ByZXNlbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hcGlfZXhhbXBsZV90ZXN0
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9hcGlfZXhhbXBsZV90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNjVlZDEyMGQzN2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vYXBpX2V4YW1wbGVfdGVzdHMucHkKQEAgLTAsMCArMSwzMDMgQEAKKyMgTGljZW5zZWQg
dG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9y
IG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmls
ZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlv
bgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhp
cyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0
aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQg
dG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug
aXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVT
IE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisjIENv
cHlyaWdodCAyMDA4LTIwMDkgV2ViRHJpdmVyIGNvbW1pdHRlcnMKKyMgQ29weXJpZ2h0IDIwMDgt
MjAwOSBHb29nbGUgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFp
biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNl
bnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMg
aW1wb3J0ICgKKyAgICBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLAorICAgIE5vU3VjaFdpbmRvd0V4
Y2VwdGlvbiwKKyAgICBUaW1lb3V0RXhjZXB0aW9uLAorICAgIFdlYkRyaXZlckV4Y2VwdGlvbikK
K2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdCBpbXBvcnQgV2ViRHJpdmVyV2Fp
dAorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0
aW9ucyBhcyBFQworCisKK2RlZiB0ZXN0R2V0VGl0bGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICB0aXRsZSA9IGRyaXZlci50aXRsZQorICAg
IGFzc2VydCAiSGVsbG8gV2ViRHJpdmVyIiA9PSB0aXRsZQorCisKK2RlZiB0ZXN0R2V0Q3VycmVu
dFVybChkcml2ZXIsIHBhZ2VzLCB3ZWJzZXJ2ZXIpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRl
c3QuaHRtbCIpCisgICAgdXJsID0gZHJpdmVyLmN1cnJlbnRfdXJsCisgICAgYXNzZXJ0IHdlYnNl
cnZlci53aGVyZV9pcygnc2ltcGxlVGVzdC5odG1sJykgPT0gdXJsCisKKworZGVmIHRlc3RGaW5k
RWxlbWVudHNCeVhQYXRoKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRl
c3QuaHRtbCIpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vaDEi
KQorICAgIGFzc2VydCAiSGVhZGluZyIgPT0gZWxlbS50ZXh0CisKKworZGVmIHRlc3RGaW5kRWxl
bWVudEJ5WHBhdGhUaHJvd05vU3VjaEVsZW1lbnRFeGNlcHRpb24oZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
eHBhdGgoIi8vaDQiKQorCisKK2RlZiB0ZXN0RmluZEVsZW1lbnRzQnlYcGF0aChkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtcyA9
IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X3hwYXRoKCIvL29wdGlvbiIpCisgICAgYXNzZXJ0IDQ4
ID09IGxlbihlbGVtcykKKyAgICBhc3NlcnQgIk9uZSIgPT0gZWxlbXNbMF0uZ2V0X2F0dHJpYnV0
ZSgidmFsdWUiKQorCisKK2RlZiB0ZXN0RmluZEVsZW1lbnRzQnlOYW1lKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9uYW1lKCJ3aW5kb3dPbmUiKQorICAgIGFzc2VydCAiT3BlbiBuZXcgd2lu
ZG93IiA9PSBlbGVtLnRleHQKKworCitkZWYgdGVzdEZpbmRFbGVtZW50c0J5TmFtZUluRWxlbWVu
dENvbnRleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMu
aHRtbCIpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9ybTIiKQor
ICAgIHN1Yl9lbGVtID0gZWxlbS5maW5kX2VsZW1lbnRfYnlfbmFtZSgic2VsZWN0b21hdGljIikK
KyAgICBhc3NlcnQgIjIiID09IHN1Yl9lbGVtLmdldF9hdHRyaWJ1dGUoImlkIikKKworCitkZWYg
dGVzdEZpbmRFbGVtZW50c0J5TGlua1RleHRJbkVsZW1lbnRDb250ZXh0KGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW0gPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImRpdjEiKQorICAgIHN1Yl9lbGVtID0gZWxlbS5maW5k
X2VsZW1lbnRfYnlfbGlua190ZXh0KCJoZWxsbyB3b3JsZCIpCisgICAgYXNzZXJ0ICJsaW5rMSIg
PT0gc3ViX2VsZW0uZ2V0X2F0dHJpYnV0ZSgibmFtZSIpCisKKworZGVmIHRlc3RGaW5kRWxlbWVu
dEJ5SWRJbkVsZW1lbnRDb250ZXh0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5l
c3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25h
bWUoImZvcm0yIikKKyAgICBzdWJfZWxlbSA9IGVsZW0uZmluZF9lbGVtZW50X2J5X2lkKCIyIikK
KyAgICBhc3NlcnQgInNlbGVjdG9tYXRpYyIgPT0gc3ViX2VsZW0uZ2V0X2F0dHJpYnV0ZSgibmFt
ZSIpCisKKworZGVmIHRlc3RGaW5kRWxlbWVudEJ5WHBhdGhJbkVsZW1lbnRDb250ZXh0KGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVs
ZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZvcm0yIikKKyAgICBzdWJfZWxlbSA9
IGVsZW0uZmluZF9lbGVtZW50X2J5X3hwYXRoKCJzZWxlY3QiKQorICAgIGFzc2VydCAiMiIgPT0g
c3ViX2VsZW0uZ2V0X2F0dHJpYnV0ZSgiaWQiKQorCisKK2RlZiB0ZXN0RmluZEVsZW1lbnRCeVhw
YXRoSW5FbGVtZW50Q29udGV4dE5vdEZvdW5kKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X25hbWUoImZvcm0yIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbik6CisgICAgICAgIGVsZW0uZmluZF9lbGVtZW50X2J5X3hwYXRoKCJkaXYiKQorCisK
K2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9FbnRlckRhdGFJbnRvRm9ybUZpZWxkcyhkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbSA9IGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vZm9ybVtAbmFtZT0nc29tZUZvcm0nXS9pbnB1dFtA
aWQ9J3VzZXJuYW1lJ10iKQorICAgIGVsZW0uY2xlYXIoKQorICAgIGVsZW0uc2VuZF9rZXlzKCJz
b21lIHRleHQiKQorICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2Zv
cm1bQG5hbWU9J3NvbWVGb3JtJ10vaW5wdXRbQGlkPSd1c2VybmFtZSddIikKKyAgICBhc3NlcnQg
InNvbWUgdGV4dCIgPT0gZWxlbS5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisKKworZGVmIHRlc3RG
aW5kRWxlbWVudEJ5VGFnTmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1w
bGVUZXN0Lmh0bWwiKQorICAgIGVsZW1zID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfdGFnX25h
bWUoImRpdiIpCisgICAgbnVtX2J5X3hwYXRoID0gbGVuKGRyaXZlci5maW5kX2VsZW1lbnRzX2J5
X3hwYXRoKCIvL2RpdiIpKQorICAgIGFzc2VydCBudW1fYnlfeHBhdGggPT0gbGVuKGVsZW1zKQor
ICAgIGVsZW1zID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoImlmcmFtZSIpCisg
ICAgYXNzZXJ0IDAgPT0gbGVuKGVsZW1zKQorCisKK2RlZiB0ZXN0RmluZEVsZW1lbnRCeVRhZ05h
bWVXaXRoaW5FbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRl
c3QuaHRtbCIpCisgICAgZGl2ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibXVsdGlsaW5l
IikKKyAgICBlbGVtcyA9IGRpdi5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJwIikKKyAgICBh
c3NlcnQgbGVuKGVsZW1zKSA9PSAxCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUo
CisgICAgcmVhc29uPSJXM0MgaW1wbGVtZW50YXRpb25zIGNhbid0IHN3aXRjaCB0byBhIHdpbmRv
dyBieSBuYW1lIiwKKyAgICByYWlzZXM9VGltZW91dEV4Y2VwdGlvbiwKKyAgICBydW49RmFsc2Up
CitkZWYgdGVzdFN3aXRjaFRvV2luZG93KGRyaXZlciwgcGFnZXMpOgorICAgIHRpdGxlXzEgPSAi
WEhUTUwgVGVzdCBQYWdlIgorICAgIHRpdGxlXzIgPSAiV2UgQXJyaXZlIEhlcmUiCisgICAgc3dp
dGNoX3RvX3dpbmRvd190aW1lb3V0ID0gNQorICAgIHdhaXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZl
ciwgc3dpdGNoX3RvX3dpbmRvd190aW1lb3V0LCBpZ25vcmVkX2V4Y2VwdGlvbnM9W05vU3VjaFdp
bmRvd0V4Y2VwdGlvbl0pCisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfbGlua190ZXh0KCJPcGVuIG5ldyB3aW5kb3ciKS5jbGljaygp
CisgICAgYXNzZXJ0IHRpdGxlXzEgPT0gZHJpdmVyLnRpdGxlCisgICAgd2FpdC51bnRpbChsYW1i
ZGEgZHI6IGRyLnN3aXRjaF90by53aW5kb3coInJlc3VsdCIpIGlzIE5vbmUpCisgICAgYXNzZXJ0
IHRpdGxlXzIgPT0gZHJpdmVyLnRpdGxlCisKKworZGVmIHRlc3RTd2l0Y2hGcmFtZUJ5TmFtZShk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5odG1sIikKKyAgICBkcml2
ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgidGhpcmQiKSkK
KyAgICBjaGVja2JveCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNoZWNreSIpCisgICAg
Y2hlY2tib3guY2xpY2soKQorICAgIGNoZWNrYm94LnN1Ym1pdCgpCisKKworZGVmIHRlc3RJc0Vu
YWJsZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisg
ICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vaW5wdXRbQGlkPSd3b3Jr
aW5nJ10iKQorICAgIGFzc2VydCBlbGVtLmlzX2VuYWJsZWQoKQorICAgIGVsZW0gPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2lucHV0W0BpZD0nbm90V29ya2luZyddIikKKyAgICBh
c3NlcnQgbm90IGVsZW0uaXNfZW5hYmxlZCgpCisKKworZGVmIHRlc3RJc1NlbGVjdGVkQW5kVG9n
Z2xlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAg
IGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJtdWx0aSIpCisgICAgb3B0aW9uX2Vs
ZW1zID0gZWxlbS5maW5kX2VsZW1lbnRzX2J5X3hwYXRoKCJvcHRpb24iKQorICAgIGFzc2VydCBv
cHRpb25fZWxlbXNbMF0uaXNfc2VsZWN0ZWQoKQorICAgIG9wdGlvbl9lbGVtc1swXS5jbGljaygp
CisgICAgYXNzZXJ0IG5vdCBvcHRpb25fZWxlbXNbMF0uaXNfc2VsZWN0ZWQoKQorICAgIG9wdGlv
bl9lbGVtc1swXS5jbGljaygpCisgICAgYXNzZXJ0IG9wdGlvbl9lbGVtc1swXS5pc19zZWxlY3Rl
ZCgpCisgICAgYXNzZXJ0IG9wdGlvbl9lbGVtc1syXS5pc19zZWxlY3RlZCgpCisKKworZGVmIHRl
c3ROYXZpZ2F0ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1s
IikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgp
CisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJp
dmUgSGVyZSIpKQorICAgIGRyaXZlci5iYWNrKCkKKyAgICBhc3NlcnQgIldlIExlYXZlIEZyb20g
SGVyZSIgPT0gZHJpdmVyLnRpdGxlCisgICAgZHJpdmVyLmZvcndhcmQoKQorICAgIGFzc2VydCAi
V2UgQXJyaXZlIEhlcmUiID09IGRyaXZlci50aXRsZQorCisKK2RlZiB0ZXN0R2V0QXR0cmlidXRl
KGRyaXZlciwgcGFnZXMpOgorICAgIHVybCA9IHBhZ2VzLnVybCgneGh0bWxUZXN0Lmh0bWwnKQor
ICAgIGRyaXZlci5nZXQodXJsKQorICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lk
KCJpZDEiKQorICAgIGF0dHIgPSBlbGVtLmdldF9hdHRyaWJ1dGUoImhyZWYiKQorICAgIGFzc2Vy
dCAnezB9IycuZm9ybWF0KHVybCkgPT0gYXR0cgorCisKK2RlZiB0ZXN0R2V0SW1wbGljaXRBdHRy
aWJ1dGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRt
bCIpCisgICAgZWxlbXMgPSBkcml2ZXIuZmluZF9lbGVtZW50c19ieV94cGF0aCgiLy9vcHRpb24i
KQorICAgIGFzc2VydCBsZW4oZWxlbXMpID49IDMKKyAgICBmb3IgaSwgZWxlbSBpbiBlbnVtZXJh
dGUoZWxlbXNbOjNdKToKKyAgICAgICAgYXNzZXJ0IGkgPT0gaW50KGVsZW0uZ2V0X2F0dHJpYnV0
ZSgiaW5kZXgiKSkKKworCitkZWYgdGVzdEV4ZWN1dGVTaW1wbGVTY3JpcHQoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHRpdGxlID0gZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQudGl0bGU7IikKKyAgICBhc3NlcnQgIlhI
VE1MIFRlc3QgUGFnZSIgPT0gdGl0bGUKKworCitkZWYgdGVzdEV4ZWN1dGVTY3JpcHRBbmRSZXR1
cm5FbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1s
IikKKyAgICBlbGVtID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2lkMScpOyIpCisgICAgYXNzZXJ0ICJXZWJFbGVtZW50IiBpbiBzdHIodHlw
ZShlbGVtKSkKKworCitkZWYgdGVzdEV4ZWN1dGVTY3JpcHRXaXRoQXJncyhkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgcmVzdWx0ID0gZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdID09ICdmaXNoJyA/ICdmaXNoJyA6
ICdub3QgZmlzaCc7IiwgImZpc2giKQorICAgIGFzc2VydCAiZmlzaCIgPT0gcmVzdWx0CisKKwor
ZGVmIHRlc3RFeGVjdXRlU2NyaXB0V2l0aE11bHRpcGxlQXJncyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1
dGVfc2NyaXB0KAorICAgICAgICAicmV0dXJuIGFyZ3VtZW50c1swXSArIGFyZ3VtZW50c1sxXSIs
IDEsIDIpCisgICAgYXNzZXJ0IDMgPT0gcmVzdWx0CisKKworZGVmIHRlc3RFeGVjdXRlU2NyaXB0
V2l0aEVsZW1lbnRBcmdzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3Jp
cHRQYWdlLmh0bWwiKQorICAgIGJ1dHRvbiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInBs
YWluQnV0dG9uIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoImFyZ3VtZW50
c1swXVsnZmxpYmJsZSddID0gYXJndW1lbnRzWzBdLmdldEF0dHJpYnV0ZSgnaWQnKTsgcmV0dXJu
IGFyZ3VtZW50c1swXVsnZmxpYmJsZSddOyIsIGJ1dHRvbikKKyAgICBhc3NlcnQgInBsYWluQnV0
dG9uIiA9PSByZXN1bHQKKworCitkZWYgdGVzdEZpbmRFbGVtZW50c0J5UGFydGlhbExpbmtUZXh0
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBl
bGVtID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgibmV3IHdpbmRv
dyIpCisgICAgZWxlbS5jbGljaygpCisKKworZGVmIHRlc3RJc0VsZW1lbnREaXNwbGF5ZWQoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAg
dmlzaWJsZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRpc3BsYXllZCIpLmlzX2Rpc3Bs
YXllZCgpCisgICAgbm90X3Zpc2libGUgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJoaWRk
ZW4iKS5pc19kaXNwbGF5ZWQoKQorICAgIGFzc2VydCB2aXNpYmxlCisgICAgYXNzZXJ0IG5vdCBu
b3RfdmlzaWJsZQorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29u
PSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzQ2NicpCitkZWYg
dGVzdE1vdmVXaW5kb3dQb3NpdGlvbihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJi
bGFuay5odG1sIikKKyAgICBsb2MgPSBkcml2ZXIuZ2V0X3dpbmRvd19wb3NpdGlvbigpCisgICAg
IyBub3RlIGNhbid0IHRlc3QgMCwwIHNpbmNlIHNvbWUgT1MncyBkb250IGFsbG93IHRoYXQgbG9j
YXRpb24KKyAgICAjIGJlY2F1c2Ugb2Ygc3lzdGVtIHRvb2xiYXJzCisgICAgbmV3X3ggPSA1MAor
ICAgIG5ld195ID0gNTAKKyAgICBpZiBsb2NbJ3gnXSA9PSBuZXdfeDoKKyAgICAgICAgbmV3X3gg
Kz0gMTAKKyAgICBpZiBsb2NbJ3knXSA9PSBuZXdfeToKKyAgICAgICAgbmV3X3kgKz0gMTAKKyAg
ICBkcml2ZXIuc2V0X3dpbmRvd19wb3NpdGlvbihuZXdfeCwgbmV3X3kpCisgICAgbG9jID0gZHJp
dmVyLmdldF93aW5kb3dfcG9zaXRpb24oKQorICAgIGFzc2VydCBsb2NbJ3gnXSA9PSBuZXdfeAor
ICAgIGFzc2VydCBsb2NbJ3knXSA9PSBuZXdfeQorCisKK2RlZiB0ZXN0Q2hhbmdlV2luZG93U2l6
ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJibGFuay5odG1sIikKKyAgICBzaXpl
ID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisgICAgbmV3U2l6ZSA9IFs2MDAsIDYwMF0KKyAg
ICBpZiBzaXplWyd3aWR0aCddID09IDYwMDoKKyAgICAgICAgbmV3U2l6ZVswXSA9IDUwMAorICAg
IGlmIHNpemVbJ2hlaWdodCddID09IDYwMDoKKyAgICAgICAgbmV3U2l6ZVsxXSA9IDUwMAorICAg
IGRyaXZlci5zZXRfd2luZG93X3NpemUobmV3U2l6ZVswXSwgbmV3U2l6ZVsxXSkKKyAgICBzaXpl
ID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisgICAgYXNzZXJ0IHNpemVbJ3dpZHRoJ10gPT0g
bmV3U2l6ZVswXQorICAgIGFzc2VydCBzaXplWydoZWlnaHQnXSA9PSBuZXdTaXplWzFdCisKKwor
QHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUoCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2Vw
dGlvbikKK2RlZiB0ZXN0R2V0TG9nVHlwZXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiYmxhbmsuaHRtbCIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZHJpdmVyLmxvZ190eXBlcywg
bGlzdCkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAgICByYWlzZXM9V2Vi
RHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RHZXRMb2coZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiYmxhbmsuaHRtbCIpCisgICAgZm9yIGxvZ190eXBlIGluIGRyaXZlci5sb2dfdHlw
ZXM6CisgICAgICAgIGxvZyA9IGRyaXZlci5nZXRfbG9nKGxvZ190eXBlKQorICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShsb2csIGxpc3QpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBwY2FjaGVf
dGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vYXBwY2FjaGVfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmNDE4NWNhNDQzCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL2FwcGNhY2hlX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMzcgQEAKKyMgTGljZW5zZWQgdG8g
dGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1v
cmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQor
IyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgor
IyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBm
aWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUK
KyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp
YW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut
Mi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9S
IENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBT
ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy
bWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQg
cHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZl
ckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmh0bWw1LmFwcGxpY2F0
aW9uX2NhY2hlIGltcG9ydCBBcHBsaWNhdGlvbkNhY2hlCisKKworQHB5dGVzdC5tYXJrLnhmYWls
X2Nocm9tZQorQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUocmFpc2VzPVdlYkRyaXZlckV4
Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2VzPVdlYkRyaXZlckV4
Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKK2RlZiB0ZXN0V2VDYW5HZXRUaGVT
dGF0dXNPZlRoZUFwcENhY2hlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ2h0bWw1
UGFnZScpCisgICAgZHJpdmVyLmltcGxpY2l0bHlfd2FpdCgyKQorICAgIGFwcF9jYWNoZSA9IGRy
aXZlci5hcHBsaWNhdGlvbl9jYWNoZQorCisgICAgc3RhdHVzID0gYXBwX2NhY2hlLnN0YXR1cwor
ICAgIHdoaWxlIHN0YXR1cyA9PSBBcHBsaWNhdGlvbkNhY2hlLkRPV05MT0FESU5HOgorICAgICAg
ICBzdGF0dXMgPSBhcHBfY2FjaGUuc3RhdHVzCisKKyAgICBhc3NlcnQgQXBwbGljYXRpb25DYWNo
ZS5VTkNBQ0hFRCA9PSBhcHBfY2FjaGUuc3RhdHVzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2hp
bGRyZW5fZmluZGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jaGlsZHJlbl9maW5kaW5nX3Rlc3Rz
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40N2EyNDRiZmQ4Ygot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jaGlsZHJlbl9maW5kaW5nX3Rlc3RzLnB5CkBA
IC0wLDAgKzEsMTgzIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNl
cnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdy
ZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdv
cmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25l
cnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4g
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJ
UyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwor
IyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNv
bW1vbi5leGNlcHRpb25zIGltcG9ydCAoCisgICAgV2ViRHJpdmVyRXhjZXB0aW9uLAorICAgIE5v
U3VjaEVsZW1lbnRFeGNlcHRpb24pCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVudF9i
eV94cGF0aChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5o
dG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJmb3JtMiIp
CisgICAgY2hpbGQgPSBlbGVtZW50LmZpbmRfZWxlbWVudF9ieV94cGF0aCgic2VsZWN0IikKKyAg
ICBhc3NlcnQgY2hpbGQuZ2V0X2F0dHJpYnV0ZSgiaWQiKSA9PSAiMiIKKworCitkZWYgdGVzdF9z
aG91bGRfbm90X2ZpbmRfZWxlbWVudF9ieV94cGF0aChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9uYW1lKCJmb3JtMiIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBlbGVtZW50LmZpbmRfZWxlbWVudF9ieV94cGF0aCgi
c2VsZWN0L3giKQorCisKK2RlZiB0ZXN0X2ZpbmRpbmdfZG90X3NsYXNoX2VsZW1lbnRzX29uX2Vs
ZW1lbnRfYnlfeHBhdGhfc2hvdWxkX2ZpbmRfbm90X3RvcF9sZXZlbF9lbGVtZW50cyhkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIHBhcmVudCA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIm11bHRpbGluZSIpCisgICAgY2hpbGRyZW4gPSBw
YXJlbnQuZmluZF9lbGVtZW50c19ieV94cGF0aCgiLi9wIikKKyAgICBhc3NlcnQgMSA9PSBsZW4o
Y2hpbGRyZW4pCisgICAgYXNzZXJ0ICJBIGRpdiBjb250YWluaW5nIiA9PSBjaGlsZHJlblswXS50
ZXh0CisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVudHNfYnlfeHBhdGgoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbWVu
dCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9ybTIiKQorICAgIGNoaWxkcmVuID0g
ZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X3hwYXRoKCJzZWxlY3Qvb3B0aW9uIikKKyAgICBhc3Nl
cnQgbGVuKGNoaWxkcmVuKSA9PSA4CisgICAgYXNzZXJ0IGNoaWxkcmVuWzBdLnRleHQgPT0gIk9u
ZSIKKyAgICBhc3NlcnQgY2hpbGRyZW5bMV0udGV4dCA9PSAiVHdvIgorCisKK2RlZiB0ZXN0X3No
b3VsZF9ub3RfZmluZF9lbGVtZW50c19ieV94cGF0aChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9uYW1lKCJmb3JtMiIpCisgICAgY2hpbGRyZW4gPSBlbGVtZW50LmZpbmRfZWxl
bWVudHNfYnlfeHBhdGgoInNlbGVjdC94IikKKyAgICBhc3NlcnQgbGVuKGNoaWxkcmVuKSA9PSAw
CisKKworZGVmIHRlc3RfZmluZGluZ19lbGVtZW50c19vbl9lbGVtZW50X2J5X3hwYXRoX3Nob3Vs
ZF9maW5kX3RvcF9sZXZlbF9lbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIHBhcmVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
aWQoIm11bHRpbGluZSIpCisgICAgYWxsX3BhcmFfZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVt
ZW50c19ieV94cGF0aCgiLy9wIikKKyAgICBjaGlsZHJlbiA9IHBhcmVudC5maW5kX2VsZW1lbnRz
X2J5X3hwYXRoKCIvL3AiKQorICAgIGFzc2VydCBsZW4oYWxsX3BhcmFfZWxlbWVudHMpID09IGxl
bihjaGlsZHJlbikKKworCitkZWYgdGVzdF9zaG91bGRfZmluZF9lbGVtZW50X2J5X25hbWUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAg
ZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9ybTIiKQorICAgIGNoaWxk
ID0gZWxlbWVudC5maW5kX2VsZW1lbnRfYnlfbmFtZSgic2VsZWN0b21hdGljIikKKyAgICBhc3Nl
cnQgY2hpbGQuZ2V0X2F0dHJpYnV0ZSgiaWQiKSA9PSAiMiIKKworCitkZWYgdGVzdF9zaG91bGRf
ZmluZF9lbGVtZW50c19ieV9uYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5l
c3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X25hbWUoImZvcm0yIikKKyAgICBjaGlsZHJlbiA9IGVsZW1lbnQuZmluZF9lbGVtZW50c19ieV9u
YW1lKCJzZWxlY3RvbWF0aWMiKQorICAgIGFzc2VydCBsZW4oY2hpbGRyZW4pID09IDIKKworCitk
ZWYgdGVzdF9zaG91bGRfZmluZF9lbGVtZW50X2J5X2lkKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X25hbWUoImZvcm0yIikKKyAgICBjaGlsZCA9IGVsZW1lbnQuZmluZF9lbGVt
ZW50X2J5X2lkKCIyIikKKyAgICBhc3NlcnQgY2hpbGQuZ2V0X2F0dHJpYnV0ZSgibmFtZSIpID09
ICJzZWxlY3RvbWF0aWMiCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVudHNfYnlfaWQo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisg
ICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9ybTIiKQorICAgIGNo
aWxkID0gZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X2lkKCIyIikKKyAgICBhc3NlcnQgbGVuKGNo
aWxkKSA9PSAyCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVudF9ieV9pZF93aGVuX211
bHRpcGxlX21hdGNoZXNfZXhpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVz
dGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
aWQoInRlc3RfaWRfZGl2IikKKyAgICBjaGlsZCA9IGVsZW1lbnQuZmluZF9lbGVtZW50X2J5X2lk
KCJ0ZXN0X2lkIikKKyAgICBhc3NlcnQgY2hpbGQudGV4dCA9PSAiaW5zaWRlIgorCisKK2RlZiB0
ZXN0X3Nob3VsZF9maW5kX2VsZW1lbnRfYnlfaWRfd2hlbl9ub19tYXRjaF9pbl9jb250ZXh0KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAg
IGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJ0ZXN0X2lkX2RpdiIpCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBlbGVt
ZW50LmZpbmRfZWxlbWVudF9ieV9pZCgidGVzdF9pZF9vdXQiKQorCisKK2RlZiB0ZXN0X3Nob3Vs
ZF9maW5kX2VsZW1lbnRfYnlfbGlua190ZXh0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X25hbWUoImRpdjEiKQorICAgIGNoaWxkID0gZWxlbWVudC5maW5kX2VsZW1lbnRfYnlf
bGlua190ZXh0KCJoZWxsbyB3b3JsZCIpCisgICAgYXNzZXJ0IGNoaWxkLmdldF9hdHRyaWJ1dGUo
Im5hbWUiKSA9PSAibGluazEiCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVudHNfYnlf
bGlua190ZXh0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRz
Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImRpdjEi
KQorICAgIGNoaWxkcmVuID0gZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X2xpbmtfdGV4dCgiaGVs
bG8gd29ybGQiKQorICAgIGFzc2VydCBsZW4oY2hpbGRyZW4pID09IDIKKyAgICBhc3NlcnQgImxp
bmsxIiA9PSBjaGlsZHJlblswXS5nZXRfYXR0cmlidXRlKCJuYW1lIikKKyAgICBhc3NlcnQgImxp
bmsyIiA9PSBjaGlsZHJlblsxXS5nZXRfYXR0cmlidXRlKCJuYW1lIikKKworCitkZWYgdGVzdF9z
aG91bGRfZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgcGFyZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9uYW1lKCJjbGFzc2VzIikKKyAgICBlbGVtZW50ID0gcGFyZW50LmZpbmRfZWxl
bWVudF9ieV9jbGFzc19uYW1lKCJvbmUiKQorICAgIGFzc2VydCAiRmluZCBtZSIgPT0gZWxlbWVu
dC50ZXh0CisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZShk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAg
ICBwYXJlbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImNsYXNzZXMiKQorICAgIGVs
ZW1lbnRzID0gcGFyZW50LmZpbmRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZSgib25lIikKKyAgICBh
c3NlcnQgMiA9PSBsZW4oZWxlbWVudHMpCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVu
dF9ieV90YWdfbmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVt
ZW50cy5odG1sIikKKyAgICBwYXJlbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImRp
djEiKQorICAgIGVsZW1lbnQgPSBwYXJlbnQuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJhIikK
KyAgICBhc3NlcnQgImxpbmsxIiA9PSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoIm5hbWUiKQorCisK
K2RlZiB0ZXN0X3Nob3VsZF9maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIHBhcmVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZGl2MSIpCisgICAgZWxlbWVudHMgPSBwYXJlbnQu
ZmluZF9lbGVtZW50c19ieV90YWdfbmFtZSgiYSIpCisgICAgYXNzZXJ0IDIgPT0gbGVuKGVsZW1l
bnRzKQorCisKK2RlZiB0ZXN0X3Nob3VsZF9iZV9hYmxlX3RvX2ZpbmRfYW5fZWxlbWVudF9ieV9j
c3Nfc2VsZWN0b3IoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVu
dHMuaHRtbCIpCisgICAgcGFyZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJmb3Jt
MiIpCisgICAgZWxlbWVudCA9IHBhcmVudC5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCcq
W25hbWU9InNlbGVjdG9tYXRpYyJdJykKKyAgICBhc3NlcnQgIjIiID09IGVsZW1lbnQuZ2V0X2F0
dHJpYnV0ZSgiaWQiKQorCisKK2RlZiB0ZXN0X3Nob3VsZF9iZV9hYmxlX3RvX2ZpbmRfbXVsdGlw
bGVfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIHBhcmVudCA9IGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfbmFtZSgiZm9ybTIiKQorICAgIGVsZW1lbnRzID0gcGFyZW50LmZpbmRfZWxlbWVudHNf
YnlfY3NzX3NlbGVjdG9yKAorICAgICAgICAnKltuYW1lPSJzZWxlY3RvbWF0aWMiXScpCisgICAg
YXNzZXJ0IDIgPT0gbGVuKGVsZW1lbnRzKQorCisKK2RlZiB0ZXN0X3Nob3VsZF90aHJvd19hbl9l
cnJvcl9pZl91c2VyX3Bhc3Nlc19pbl9pbnZhbGlkX2J5KGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X25hbWUoImZvcm0yIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoV2ViRHJp
dmVyRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC5maW5kX2VsZW1lbnQoImZvbyIsICJiYXIi
KQorCisKK2RlZiB0ZXN0X3Nob3VsZF90aHJvd19hbl9lcnJvcl9pZl91c2VyX3Bhc3Nlc19pbl9p
bnZhbGlkX2J5X3doZW5fZmluZF9lbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9uYW1lKCJmb3JtMiIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFdlYkRyaXZlckV4
Y2VwdGlvbik6CisgICAgICAgIGVsZW1lbnQuZmluZF9lbGVtZW50cygiZm9vIiwgImJhciIpCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vY2xlYXJfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2xlYXJfdGVz
dHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI2NTBmMTdiNzVj
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsZWFyX3Rlc3RzLnB5CkBAIC0wLDAgKzEs
NzAgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNG
QykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAg
U2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRk
aXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRo
ZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBv
YnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUu
b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh
YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywg
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRo
ZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2Vw
dGlvbnMgaW1wb3J0IEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24KKworCitkZWYgdGVzdFdy
aXRhYmxlVGV4dElucHV0U2hvdWxkQ2xlYXIoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgicmVhZE9ubHlQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJ3cml0YWJsZVRleHRJbnB1dCIpCisgICAgZWxlbWVudC5jbGVhcigpCisgICAgYXNz
ZXJ0ICIiID09IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorCisKK2RlZiB0ZXN0VGV4
dElucHV0U2hvdWxkTm90Q2xlYXJXaGVuRGlzYWJsZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgicmVhZE9ubHlQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9l
bGVtZW50X2J5X2lkKCJ0ZXh0SW5wdXRub3RlbmFibGVkIikKKyAgICBhc3NlcnQgbm90IGVsZW1l
bnQuaXNfZW5hYmxlZCgpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRFbGVtZW50U3Rh
dGVFeGNlcHRpb24pOgorICAgICAgICBlbGVtZW50LmNsZWFyKCkKKworCitkZWYgdGVzdFRleHRJ
bnB1dFNob3VsZE5vdENsZWFyV2hlblJlYWRPbmx5KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInJlYWRPbmx5UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9pZCgicmVhZE9ubHlUZXh0SW5wdXQiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJ
bnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC5jbGVhcigpCisK
KworZGVmIHRlc3RXcml0YWJsZVRleHRBcmVhU2hvdWxkQ2xlYXIoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgicmVhZE9ubHlQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X2lkKCJ3cml0YWJsZVRleHRBcmVhIikKKyAgICBlbGVtZW50LmNsZWFy
KCkKKyAgICBhc3NlcnQgIiIgPT0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisKKwor
ZGVmIHRlc3RUZXh0QXJlYVNob3VsZE5vdENsZWFyV2hlbkRpc2FibGVkKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInJlYWRPbmx5UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9pZCgidGV4dEFyZWFOb3RlbmFibGVkIikKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CisgICAgICAgIGVsZW1l
bnQuY2xlYXIoKQorCisKK2RlZiB0ZXN0VGV4dEFyZWFTaG91bGROb3RDbGVhcldoZW5SZWFkT25s
eShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJyZWFkT25seVBhZ2UuaHRtbCIpCisg
ICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInRleHRBcmVhUmVhZE9ubHki
KQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKToK
KyAgICAgICAgZWxlbWVudC5jbGVhcigpCisKKworZGVmIHRlc3RDb250ZW50RWRpdGFibGVBcmVh
U2hvdWxkQ2xlYXIoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgicmVhZE9ubHlQYWdl
Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjb250ZW50
LWVkaXRhYmxlIikKKyAgICBlbGVtZW50LmNsZWFyKCkKKyAgICBhc3NlcnQgIiIgPT0gZWxlbWVu
dC50ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xsaW5nX3Rlc3RzLnB5IGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2NsaWNrX3Njcm9sbGluZ190ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYTZkOGY4ODE2MWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vY2xpY2tfc2Nyb2xsaW5nX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMTkyIEBACisjIExpY2Vuc2Vk
IHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBv
ciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZp
bGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRo
aXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElF
UyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1w
b3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCAoCisg
ICAgRWxlbWVudE5vdEludGVyYWN0YWJsZUV4Y2VwdGlvbiwKKyAgICBNb3ZlVGFyZ2V0T3V0T2ZC
b3VuZHNFeGNlcHRpb24sCisgICAgV2ViRHJpdmVyRXhjZXB0aW9uKQorZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3Vw
cG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBhcyBFQworZnJvbSBzZWxlbml1bS53ZWJk
cml2ZXIuc3VwcG9ydC51aSBpbXBvcnQgV2ViRHJpdmVyV2FpdAorCisKK2RlZiB0ZXN0Q2xpY2tp
bmdPbkFuY2hvclNjcm9sbHNQYWdlKGRyaXZlciwgcGFnZXMpOgorICAgIHNjcm9sbFNjcmlwdCA9
ICIiInZhciBwYWdlWTsKKyAgICBpZiAodHlwZW9mKHdpbmRvdy5wYWdlWU9mZnNldCkgPT0gJ251
bWJlcicpIHsKKyAgICAgIHBhZ2VZID0gd2luZG93LnBhZ2VZT2Zmc2V0OworICAgIH0gZWxzZSB7
CisgICAgICBwYWdlWSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7CisgICAg
fQorICAgIHJldHVybiBwYWdlWTsiIiIKKworICAgIHBhZ2VzLmxvYWQoIm1hY2JldGguaHRtbCIp
CisKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlBBUlRJQUxfTElOS19URVhULCAibGFzdCBz
cGVlY2giKS5jbGljaygpCisKKyAgICB5T2Zmc2V0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KHNj
cm9sbFNjcmlwdCkKKworICAgICMgRm9jdXNpbmcgb24gdG8gY2xpY2ssIGJ1dCBub3QgYWN0dWFs
bHkgZm9sbG93aW5nLAorICAgICMgdGhlIGxpbmsgd2lsbCBzY3JvbGwgaXQgaW4gdG8gdmlldywg
d2hpY2ggaXMgYSBmZXcgcGl4ZWxzIGZ1cnRoZXIgdGhhbiAwCisgICAgYXNzZXJ0IHlPZmZzZXQg
PiAzMDAKKworCitkZWYgdGVzdFNob3VsZFNjcm9sbFRvQ2xpY2tPbkFuRWxlbWVudEhpZGRlbkJ5
T3ZlcmZsb3coZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiY2xpY2tfb3V0X29mX2Jv
dW5kc19vdmVyZmxvdy5odG1sIikKKworICAgIGxpbmsgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LklELCAibGluayIpCisgICAgdHJ5OgorICAgICAgICBsaW5rLmNsaWNrKCkKKyAgICBleGNlcHQg
TW92ZVRhcmdldE91dE9mQm91bmRzRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIEFzc2VydGlvbkVy
cm9yKCJTaG91bGQgbm90IGJlIG91dCBvZiBib3VuZHM6ICVzIiAlIGUubXNnKQorCisKK0BweXRl
c3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tP
bkFuRWxlbWVudEhpZGRlbkJ5T3ZlcmZsb3coZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgic2Nyb2xsLmh0bWwiKQorCisgICAgbGluayA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICJsaW5lOCIpCisgICAgIyBUaGlzIHVzZWQgdG8gdGhyb3cgYSBNb3ZlVGFyZ2V0T3V0T2ZCb3Vu
ZHNFeGNlcHRpb24gLSB3ZSBkb24ndCBleHBlY3QgaXQgdG8KKyAgICBsaW5rLmNsaWNrKCkKKyAg
ICBhc3NlcnQgImxpbmU4IiA9PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiY2xpY2tlZCIp
LnRleHQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6
Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MzYn
LAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitkZWYgdGVzdFNob3VsZEJlQWJsZVRv
Q2xpY2tPbkFuRWxlbWVudEhpZGRlbkJ5RG91YmxlT3ZlcmZsb3coZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9kb3VibGVfb3ZlcmZsb3df
YXV0by5odG1sIikKKworICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJsaW5rIikuY2xp
Y2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiQ2xp
Y2tlZCBTdWNjZXNzZnVsbHkhIikpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrT25B
bkVsZW1lbnRIaWRkZW5CeVlPdmVyZmxvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJzY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3lfb3ZlcmZsb3dfYXV0by5odG1sIikKKworICAg
IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJsaW5rIikuY2xpY2soKQorICAgIFdlYkRyaXZl
cldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiQ2xpY2tlZCBTdWNjZXNzZnVsbHkh
IikpCisKKworZGVmIHRlc3RTaG91bGROb3RTY3JvbGxPdmVyZmxvd0VsZW1lbnRzV2hpY2hBcmVW
aXNpYmxlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbDIuaHRtbCIpCisg
ICAgbGlzdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICJ1bCIpCisgICAgaXRl
bSA9IGxpc3QuZmluZF9lbGVtZW50KEJ5LklELCAiZGVzaXJlZCIpCisgICAgaXRlbS5jbGljaygp
CisgICAgeU9mZnNldCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1sw
XS5zY3JvbGxUb3AiLCBsaXN0KQorICAgIGFzc2VydCAwID09IHlPZmZzZXQsICJTaG91bGQgbm90
IGhhdmUgc2Nyb2xsZWQiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFz
b249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFp
bD9pZD0xNTQyJykKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlCitkZWYgdGVzdFNob3Vs
ZE5vdFNjcm9sbElmQWxyZWFkeVNjcm9sbGVkQW5kRWxlbWVudElzSW5WaWV3KGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbDMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5JRCwgImJ1dHRvbjEiKS5jbGljaygpCisgICAgc2Nyb2xsVG9wID0gZ2V0U2Nyb2xs
VG9wKGRyaXZlcikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYnV0dG9uMiIpLmNs
aWNrKCkKKyAgICBhc3NlcnQgc2Nyb2xsVG9wID09IGdldFNjcm9sbFRvcChkcml2ZXIpCisKKwor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrUmFkaW9CdXR0b25TY3JvbGxlZEludG9WaWV3KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbDQuaHRtbCIpCisgICAgZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5JRCwgInJhZGlvIikuY2xpY2soKQorICAgICMgSWYgd2UgZG9uJ3Qg
dGhyb3csIHdlJ3JlIGdvb2QKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAg
ICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lzc3Vlcy80MDgnLAor
ICAgIHJhaXNlcz1FbGVtZW50Tm90SW50ZXJhY3RhYmxlRXhjZXB0aW9uKQorZGVmIHRlc3RTaG91
bGRTY3JvbGxPdmVyZmxvd0VsZW1lbnRzSWZDbGlja1BvaW50SXNPdXRPZlZpZXdCdXRFbGVtZW50
SXNJblZpZXcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2Nyb2xsNS5odG1sIikK
KyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaW5uZXIiKS5jbGljaygpCisgICAgYXNz
ZXJ0ICJjbGlja2VkIiA9PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiY2xpY2tlZCIpLnRl
eHQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAgICByZWFzb249J2h0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lzc3Vlcy80MDgnKQorZGVmIHRlc3RTaG91bGRC
ZUFibGVUb0NsaWNrRWxlbWVudEluQUZyYW1lVGhhdElzT3V0T2ZWaWV3KGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfZnJhbWVfb3V0X29m
X3ZpZXcuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X25hbWUoImZyYW1lIikpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuTkFNRSwgImNoZWNrYm94IikKKyAgICBlbGVtZW50LmNsaWNrKCkKKyAgICBhc3NlcnQgZWxl
bWVudC5pc19zZWxlY3RlZCgpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrRWxlbWVu
dFRoYXRJc091dE9mVmlld0luQUZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
InNjcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfc2Nyb2xsaW5nX2ZyYW1lLmh0bWwiKQorICAgIGRy
aXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJzY3JvbGxp
bmdfZnJhbWUiKSkKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAi
c2Nyb2xsX2NoZWNrYm94IikKKyAgICBlbGVtZW50LmNsaWNrKCkKKyAgICBhc3NlcnQgZWxlbWVu
dC5pc19zZWxlY3RlZCgpCisKKworZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb0NsaWNrRWxlbWVu
dFRoYXRJc091dE9mVmlld0luQU5vblNjcm9sbGFibGVGcmFtZShkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJzY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX25vbl9zY3JvbGxpbmdfZnJh
bWUuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgic2Nyb2xsaW5nX2ZyYW1lIikK
KyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAic2Nyb2xsX2NoZWNr
Ym94IikKKyAgICBlbGVtZW50LmNsaWNrKCkKKyAgICAjIFRPRE8gd2Ugc2hvdWxkIGFzc2VydCB0
aGF0IHRoZSBjbGljayB3YXMgdW5zdWNjZXNzZnVsCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVU
b0NsaWNrRWxlbWVudFRoYXRJc091dE9mVmlld0luQUZyYW1lVGhhdElzT3V0T2ZWaWV3KGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfc2Ny
b2xsaW5nX2ZyYW1lX291dF9vZl92aWV3Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJh
bWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJzY3JvbGxpbmdfZnJhbWUiKSkKKyAgICBl
bGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAic2Nyb2xsX2NoZWNrYm94IikK
KyAgICBlbGVtZW50LmNsaWNrKCkKKyAgICBhc3NlcnQgZWxlbWVudC5pc19zZWxlY3RlZCgpCisK
KworZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrRWxlbWVudFRoYXRJc091dE9mVmlld0luQU5l
c3RlZEZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbGluZ190ZXN0
cy9wYWdlX3dpdGhfbmVzdGVkX3Njcm9sbGluZ19mcmFtZXMuaHRtbCIpCisgICAgZHJpdmVyLnN3
aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInNjcm9sbGluZ19mcmFt
ZSIpKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9u
YW1lKCJuZXN0ZWRfc2Nyb2xsaW5nX2ZyYW1lIikpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuTkFNRSwgInNjcm9sbF9jaGVja2JveCIpCisgICAgZWxlbWVudC5jbGljaygp
CisgICAgYXNzZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKQorCisKK2RlZiB0ZXN0U2hvdWxkQmVB
YmxlVG9DbGlja0VsZW1lbnRUaGF0SXNPdXRPZlZpZXdJbkFOZXN0ZWRGcmFtZVRoYXRJc091dE9m
Vmlldyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzY3JvbGxpbmdfdGVzdHMvcGFn
ZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVzX291dF9vZl92aWV3Lmh0bWwiKQorICAgIGRy
aXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJzY3JvbGxp
bmdfZnJhbWUiKSkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfbmFtZSgibmVzdGVkX3Njcm9sbGluZ19mcmFtZSIpKQorICAgIGVsZW1lbnQgPSBkcml2
ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJzY3JvbGxfY2hlY2tib3giKQorICAgIGVsZW1lbnQu
Y2xpY2soKQorICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkKKworCitkZWYgdGVzdFNo
b3VsZE5vdFNjcm9sbFdoZW5HZXR0aW5nRWxlbWVudFNpemUoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgic2Nyb2xsMy5odG1sIikKKyAgICBzY3JvbGxUb3AgPSBnZXRTY3JvbGxUb3Ao
ZHJpdmVyKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJidXR0b24xIikuc2l6ZQor
ICAgIGFzc2VydCBzY3JvbGxUb3AgPT0gZ2V0U2Nyb2xsVG9wKGRyaXZlcikKKworCitkZWYgZ2V0
U2Nyb2xsVG9wKGRyaXZlcik6CisgICAgcmV0dXJuIGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0
dXJuIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFy
aW9uZXR0ZSgKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lz
c3Vlcy80MDgnKQorZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrRWxlbWVudEluQVRhbGxGcmFt
ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzY3JvbGxpbmdfdGVzdHMvcGFnZV93
aXRoX3RhbGxfZnJhbWUuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X25hbWUoInRhbGxfZnJhbWUiKSkKKyAgICBlbGVtZW50ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5OQU1FLCAiY2hlY2tib3giKQorICAgIGVsZW1lbnQuY2xpY2soKQor
ICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9j
bGlja190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja190ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWY0NDU4ZmQ0NjYKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vY2xpY2tfdGVzdHMucHkKQEAgLTAsMCArMSwzNyBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBw
eXRlc3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJv
bSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBh
cyBFQworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2
ZXJXYWl0CisKKworQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKK2RlZiBsb2FkUGFnZShw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgiY2xpY2tzLmh0bWwiKQorCisKK2RlZiB0ZXN0Q2FuQ2xp
Y2tPbkFMaW5rVGhhdE92ZXJmbG93c0FuZEZvbGxvd0l0KGRyaXZlcik6CisgICAgZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5JRCwgIm92ZXJmbG93TGluayIpLmNsaWNrKCkKKyAgICBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMykudW50aWwoRUMudGl0bGVfaXMoIlhIVE1MIFRlc3QgUGFnZSIpKQorCisK
K2RlZiB0ZXN0Q2xpY2tpbmdBTGlua01hZGVVcE9mTnVtYmVyc0lzSGFuZGxlZENvcnJlY3RseShk
cml2ZXIpOgorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTElOS19URVhULCAiMzMzMzMzIiku
Y2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygi
WEhUTUwgVGVzdCBQYWdlIikpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY29uZnRlc3QucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjc1NjcwOTI3ZTMxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NvbmZ0ZXN0LnB5
CkBAIC0wLDAgKzEsMjEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29u
c2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBh
Z3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMg
d29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93
bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2RlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0
YWZ1bmMpOgorICAgIGlmICdkcml2ZXInIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lcyBhbmQgbWV0
YWZ1bmMuY29uZmlnLm9wdGlvbi5kcml2ZXJzOgorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6
ZSgnZHJpdmVyJywgbWV0YWZ1bmMuY29uZmlnLm9wdGlvbi5kcml2ZXJzLCBpbmRpcmVjdD1UcnVl
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Nvb2tpZV90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jb29r
aWVfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwOGRj
YjMzMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Nvb2tpZV90ZXN0cy5weQpAQCAt
MCwwICsxLDk2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZh
bmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVt
ZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsg
Zm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNo
aXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVz
ZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlv
dSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cu
YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkg
YXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIg
QkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBl
aXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3Bl
Y2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1
bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGNhbGVuZGFyCitpbXBvcnQgdGltZQoraW1wb3J0
IHJhbmRvbQorCitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY29va2ll
KHdlYnNlcnZlcik6CisgICAgY29va2llID0geworICAgICAgICAnbmFtZSc6ICdmb28nLAorICAg
ICAgICAndmFsdWUnOiAnYmFyJywKKyAgICAgICAgJ2RvbWFpbic6IHdlYnNlcnZlci5ob3N0LAor
ICAgICAgICAncGF0aCc6ICcvJywKKyAgICAgICAgJ3NlY3VyZSc6IEZhbHNlfQorICAgIHJldHVy
biBjb29raWUKKworCitAcHl0ZXN0LnlpZWxkX2ZpeHR1cmUoYXV0b3VzZT1UcnVlKQorZGVmIHBh
Z2VzKHJlcXVlc3QsIGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ3NpbXBsZVRlc3Qu
aHRtbCcpCisgICAgeWllbGQgcGFnZXMKKyAgICBkcml2ZXIuZGVsZXRlX2FsbF9jb29raWVzKCkK
KworCitkZWYgdGVzdEFkZENvb2tpZShjb29raWUsIGRyaXZlcik6CisgICAgZHJpdmVyLmFkZF9j
b29raWUoY29va2llKQorICAgIHJldHVybmVkID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1
cm4gZG9jdW1lbnQuY29va2llJykKKyAgICBhc3NlcnQgY29va2llWyduYW1lJ10gaW4gcmV0dXJu
ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKK2RlZiB0ZXN0QWRkaW5nQUNvb2tpZVRoYXRF
eHBpcmVkSW5UaGVQYXN0KGNvb2tpZSwgZHJpdmVyKToKKyAgICBleHBpcmVkID0gY29va2llLmNv
cHkoKQorICAgIGV4cGlyZWRbJ2V4cGlyeSddID0gY2FsZW5kYXIudGltZWdtKHRpbWUuZ210aW1l
KCkpIC0gMQorICAgIGRyaXZlci5hZGRfY29va2llKGV4cGlyZWQpCisgICAgYXNzZXJ0IDAgPT0g
bGVuKGRyaXZlci5nZXRfY29va2llcygpKQorCisKK2RlZiB0ZXN0RGVsZXRlQWxsQ29va2llKGNv
b2tpZSwgZHJpdmVyKToKKyAgICBkcml2ZXIuYWRkX2Nvb2tpZShjb29raWUpCisgICAgZHJpdmVy
LmRlbGV0ZV9hbGxfY29va2llcygpCisgICAgYXNzZXJ0IG5vdCBkcml2ZXIuZ2V0X2Nvb2tpZXMo
KQorCisKK2RlZiB0ZXN0RGVsZXRlQ29va2llKGNvb2tpZSwgZHJpdmVyKToKKyAgICBkcml2ZXIu
YWRkX2Nvb2tpZShjb29raWUpCisgICAgZHJpdmVyLmRlbGV0ZV9jb29raWUoJ2ZvbycpCisgICAg
YXNzZXJ0IG5vdCBkcml2ZXIuZ2V0X2Nvb2tpZXMoKQorCisKK2RlZiB0ZXN0U2hvdWxkR2V0Q29v
a2llQnlOYW1lKGRyaXZlcik6CisgICAga2V5ID0gJ2tleV97fScuZm9ybWF0KGludChyYW5kb20u
cmFuZG9tKCkgKiAxMDAwMDAwMCkpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJkb2N1bWVu
dC5jb29raWUgPSBhcmd1bWVudHNbMF0gKyAnPXNldCc7Iiwga2V5KQorICAgIGNvb2tpZSA9IGRy
aXZlci5nZXRfY29va2llKGtleSkKKyAgICBhc3NlcnQgJ3NldCcgPT0gY29va2llWyd2YWx1ZSdd
CisKKworZGVmIHRlc3RHZXRBbGxDb29raWVzKGNvb2tpZSwgZHJpdmVyLCBwYWdlcywgd2Vic2Vy
dmVyKToKKyAgICBjb29raWVzID0gZHJpdmVyLmdldF9jb29raWVzKCkKKyAgICBjb3VudCA9IGxl
bihjb29raWVzKQorCisgICAgZm9yIGkgaW4gcmFuZ2UoMik6CisgICAgICAgIGNvb2tpZVsnbmFt
ZSddID0gJ2tleV97fScuZm9ybWF0KGludChyYW5kb20ucmFuZG9tKCkgKiAxMDAwMDAwMCkpCisg
ICAgICAgIGRyaXZlci5hZGRfY29va2llKGNvb2tpZSkKKworICAgIHBhZ2VzLmxvYWQoJ3NpbXBs
ZVRlc3QuaHRtbCcpCisgICAgYXNzZXJ0IGNvdW50ICsgMiA9PSBsZW4oZHJpdmVyLmdldF9jb29r
aWVzKCkpCisKKworZGVmIHRlc3RTaG91bGROb3REZWxldGVDb29raWVzV2l0aEFTaW1pbGFyTmFt
ZShjb29raWUsIGRyaXZlciwgd2Vic2VydmVyKToKKyAgICBjb29raWUyID0gY29va2llLmNvcHko
KQorICAgIGNvb2tpZTJbJ25hbWUnXSA9ICd7fXgnLmZvcm1hdChjb29raWVbJ25hbWUnXSkKKyAg
ICBkcml2ZXIuYWRkX2Nvb2tpZShjb29raWUpCisgICAgZHJpdmVyLmFkZF9jb29raWUoY29va2ll
MikKKyAgICBkcml2ZXIuZGVsZXRlX2Nvb2tpZShjb29raWVbJ25hbWUnXSkKKyAgICBjb29raWVz
ID0gZHJpdmVyLmdldF9jb29raWVzKCkKKyAgICBhc3NlcnQgY29va2llWyduYW1lJ10gIT0gY29v
a2llc1swXVsnbmFtZSddCisgICAgYXNzZXJ0IGNvb2tpZTJbJ25hbWUnXSA9PSBjb29raWVzWzBd
WyduYW1lJ10KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jb3JyZWN0X2V2ZW50X2ZpcmluZ190ZXN0
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9jb3JyZWN0X2V2ZW50X2ZpcmluZ190ZXN0cy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWE2YWYzNzhhMzMKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vY29ycmVjdF9ldmVudF9maXJpbmdfdGVzdHMucHkKQEAgLTAsMCArMSwx
MjMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNG
QykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAg
U2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRk
aXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRo
ZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBv
YnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUu
b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh
YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywg
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRo
ZSBMaWNlbnNlLgorCisKK2RlZiB0ZXN0U2hvdWxkRmlyZUNsaWNrRXZlbnRXaGVuQ2xpY2tpbmco
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisg
ICAgX2NsaWNrT25FbGVtZW50V2hpY2hSZWNvcmRzRXZlbnRzKGRyaXZlcikKKyAgICBfYXNzZXJ0
RXZlbnRGaXJlZChkcml2ZXIsICJjbGljayIpCisKKworZGVmIHRlc3RTaG91bGRGaXJlTW91c2VE
b3duRXZlbnRXaGVuQ2xpY2tpbmcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2
YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgX2NsaWNrT25FbGVtZW50V2hpY2hSZWNvcmRzRXZlbnRz
KGRyaXZlcikKKyAgICBfYXNzZXJ0RXZlbnRGaXJlZChkcml2ZXIsICJtb3VzZWRvd24iKQorCisK
K2RlZiB0ZXN0U2hvdWxkRmlyZU1vdXNlVXBFdmVudFdoZW5DbGlja2luZyhkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBfY2xpY2tPbkVs
ZW1lbnRXaGljaFJlY29yZHNFdmVudHMoZHJpdmVyKQorICAgIF9hc3NlcnRFdmVudEZpcmVkKGRy
aXZlciwgIm1vdXNldXAiKQorCisKK2RlZiB0ZXN0U2hvdWxkSXNzdWVNb3VzZURvd25FdmVudHMo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisg
ICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibW91c2Vkb3duIikuY2xpY2soKQorICAgIHJl
c3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpLnRleHQKKyAgICBhc3Nl
cnQgcmVzdWx0ID09ICJtb3VzZSBkb3duIgorCisKK2RlZiB0ZXN0U2hvdWxkSXNzdWVDbGlja0V2
ZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1s
IikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJtb3VzZWNsaWNrIikuY2xpY2soKQor
ICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpLnRleHQKKyAg
ICBhc3NlcnQgcmVzdWx0ID09ICJtb3VzZSBjbGljayIKKworCitkZWYgdGVzdFNob3VsZElzc3Vl
TW91c2VVcEV2ZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0
UGFnZS5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJtb3VzZXVwIikuY2xp
Y2soKQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpLnRl
eHQKKyAgICBhc3NlcnQgcmVzdWx0ID09ICJtb3VzZSB1cCIKKworCitkZWYgdGVzdE1vdXNlRXZl
bnRzU2hvdWxkQnViYmxlVXBUb0NvbnRhaW5pbmdFbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJjaGlsZCIpLmNsaWNrKCkKKyAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJyZXN1bHQiKS50ZXh0CisgICAgYXNzZXJ0IHJlc3VsdCA9PSAibW91c2UgZG93
biIKKworCitkZWYgdGVzdFNob3VsZEVtaXRPbkNoYW5nZUV2ZW50c1doZW5TZWxlY3RpbmdFbGVt
ZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1s
IikKKyAgICBzZWxlY3QgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCdzZWxlY3RvcicpCisg
ICAgb3B0aW9ucyA9IHNlbGVjdC5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCdvcHRpb24nKQor
ICAgIGluaXRpYWxUZXh0VmFsdWUgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJyZXN1bHQi
KS50ZXh0CisKKyAgICBzZWxlY3QuY2xpY2soKQorICAgIGFzc2VydCBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJyZXN1bHQiKS50ZXh0ID09IGluaXRpYWxUZXh0VmFsdWUKKyAgICBvcHRpb25z
WzFdLmNsaWNrKCkKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicmVzdWx0
IikudGV4dCA9PSAiYmFyIgorCisKK2RlZiB0ZXN0U2hvdWxkRW1pdE9uQ2hhbmdlRXZlbnRzV2hl
bkNoYW5naW5nVGhlU3RhdGVPZkFDaGVja2JveChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBjaGVja2JveCA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoImNoZWNrYm94IikKKyAgICBjaGVja2JveC5jbGljaygpCisgICAgYXNzZXJ0
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpLnRleHQgPT0gImNoZWNrYm94IHRo
aW5nIgorCisKK2RlZiB0ZXN0U2hvdWxkRW1pdENsaWNrRXZlbnRXaGVuQ2xpY2tpbmdPbkFUZXh0
SW5wdXRFbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQ
YWdlLmh0bWwiKQorICAgIGNsaWNrZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjbGlj
a0ZpZWxkIikKKyAgICBjbGlja2VyLmNsaWNrKCkKKworICAgIGFzc2VydCBjbGlja2VyLmdldF9h
dHRyaWJ1dGUoInZhbHVlIikgPT0gIkNsaWNrZWQiCisKKworZGVmIHRlc3RDbGVhcmluZ0FuRWxl
bWVudFNob3VsZENhdXNlVGhlT25DaGFuZ2VIYW5kbGVyVG9GaXJlKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjbGVhck1lIikKKyAgICBlbGVtZW50LmNsZWFyKCkKKyAg
ICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJyZXN1bHQiKQorICAgIGFzc2Vy
dCByZXN1bHQudGV4dCA9PSAiQ2xlYXJlZCIKKworIyBUT0RPIEN1cnJlbnRseSBGYWlsaW5nIGFu
ZCBuZWVkcyBmaXhpbmcKKyMgZGVmIHRlc3RTZW5kaW5nS2V5c1RvQW5vdGhlckVsZW1lbnRTaG91
bGRDYXVzZVRoZUJsdXJFdmVudFRvRmlyZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgcGFnZXMubG9h
ZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisjICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJ0aGV3b3JrcyIpCisjICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJmb28iKQorIyAg
ICBlbGVtZW50MiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNoYW5nZWFibGUiKQorIyAg
ICBlbGVtZW50Mi5zZW5kX2tleXMoImJhciIpCisjICAgIF9hc3NlcnRFdmVudEZpcmVkKGRyaXZl
ciwgImJsdXIiKQorCisjIFRPRE8gQ3VycmVudGx5IEZhaWxpbmcgYW5kIG5lZWRzIGZpeGluZwor
IyBkZWYgdGVzdFNlbmRpbmdLZXlzVG9BbkVsZW1lbnRTaG91bGRDYXVzZVRoZUZvY3VzRXZlbnRU
b0ZpcmUoZHJpdmVyLCBwYWdlcyk6CisjICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorIyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgidGhld29ya3Mi
KQorIyAgICBlbGVtZW50LnNlbmRfa2V5cygiZm9vIikKKyMgICAgX2Fzc2VydEV2ZW50RmlyZWQo
ZHJpdmVyLCAiZm9jdXMiKQorCisKK2RlZiBfY2xpY2tPbkVsZW1lbnRXaGljaFJlY29yZHNFdmVu
dHMoZHJpdmVyKToKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJwbGFpbkJ1dHRvbiIp
LmNsaWNrKCkKKworCitkZWYgX2Fzc2VydEV2ZW50RmlyZWQoZHJpdmVyLCBldmVudE5hbWUpOgor
ICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpCisgICAgdGV4
dCA9IHJlc3VsdC50ZXh0CisgICAgYXNzZXJ0IGV2ZW50TmFtZSBpbiB0ZXh0LCAiTm8gIiArIGV2
ZW50TmFtZSArICIgZmlyZWQ6ICIgKyB0ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZHJpdmVy
X2VsZW1lbnRfZmluZGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9maW5k
aW5nX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNGRj
MmJkMzg1NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9maW5k
aW5nX3Rlc3RzLnB5CkBAIC0wLDAgKzEsNjQ5IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2Fy
ZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1
dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0
ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5n
IGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5
b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNl
Iik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0
aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor
IworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBV
bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs
CisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk
IG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T
IE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNl
bnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFu
ZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVt
LmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCAoCisgICAgSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2Vw
dGlvbiwKKyAgICBJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24sCisgICAgTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbiwKKyAgICBOb1N1Y2hXaW5kb3dFeGNlcHRpb24sCisgICAgV2ViRHJpdmVyRXhjZXB0
aW9uKQorCisjIEJ5LmlkIHBvc2l0aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9f
RmluZF9BU2luZ2xlX0VsZW1lbnRfQnlfSWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LklELCAibGlua0lkIikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJpZCIpID09
ICJsaW5rSWQiCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9BU2luZ2xlX0Vs
ZW1lbnRfQnlfTnVtZXJpY19JZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0
ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5J
RCwgIjIiKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoImlkIikgPT0gIjIiCisK
KworZGVmIHRlc3Rfc2hvdWxkX2JlX2FibGVfdG9fZmluZF9hbl9lbGVtZW50X3dpdGhfY3NzX2Vz
Y2FwZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJpZEVsZW1lbnRzLmh0bWwiKQor
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAid2l0aC5kb3RzIikKKyAg
ICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJpZCIpID09ICJ3aXRoLmRvdHMiCisKKwor
ZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9NdWx0aXBsZV9FbGVtZW50c19CeV9JZChk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAg
ICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LklELCAidGVzdF9pZCIpCisgICAg
YXNzZXJ0IGxlbihlbGVtZW50cykgPT0gMgorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1Rv
X0ZpbmRfTXVsdGlwbGVfRWxlbWVudHNfQnlfTnVtZXJpY19JZChkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZl
ci5maW5kX2VsZW1lbnRzKEJ5LklELCAiMiIpCisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykgPT0g
OAorCisjIEJ5LmlkIG5lZ2F0aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX05vdF9CZV9BYmxlX1Rv
X0xvY2F0ZV9CeV9JZF9BU2luZ2xlX0VsZW1lbnRfVGhhdF9Eb2VzX05vdF9FeGlzdChkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuSUQsICJub25fRXhpc3RlbnRfQnV0dG9uIikKKworCitkZWYgdGVzdF9TaG91bGRf
Tm90X0JlX0FibGVfVG9fTG9jYXRlX0J5X0lkX011bHRpcGxlX0VsZW1lbnRzX1RoYXRfRG9fTm90
X0V4aXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQor
ICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuSUQsICJub25fRXhpc3RlbnRf
QnV0dG9uIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAwCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsX3BoYW50b21qcyhyYWlzZXM9Tm9TdWNoV2luZG93RXhjZXB0aW9uKQorZGVmIHRlc3Rf
RmluZGluZ19BU2luZ2xlX0VsZW1lbnRfQnlfRW1wdHlfSWRfU2hvdWxkX1Rocm93KGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5JRCwgIiIpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKK2RlZiB0ZXN0X0ZpbmRpbmdfTXVsdGlwbGVfRWxlbWVu
dHNfQnlfRW1wdHlfSWRfU2hvdWxkX1JldHVybl9FbXB0eV9MaXN0KGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZp
bmRfZWxlbWVudHMoQnkuSUQsICIiKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID09IDAKKwor
CitkZWYgdGVzdF9GaW5kaW5nX0FTaW5nbGVfRWxlbWVudF9CeV9JZF9XaXRoX1NwYWNlX1Nob3Vs
ZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAg
IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJub25leGlzdGVudCBidXR0b24iKQorCisKK2Rl
ZiB0ZXN0X0ZpbmRpbmdfTXVsdGlwbGVfRWxlbWVudHNfQnlfSWRfV2l0aF9TcGFjZV9TaG91bGRf
UmV0dXJuX0VtcHR5X0xpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBh
Z2UuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5JRCwgIm5v
bmV4aXN0ZW50IGJ1dHRvbiIpCisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykgPT0gMAorCisjIEJ5
Lm5hbWUgcG9zaXRpdmUKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0FTaW5n
bGVfRWxlbWVudF9CeV9OYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1Q
YWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJj
aGVja3kiKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImZ1
cnJmdSIKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX011bHRpcGxlX0VsZW1l
bnRzX0J5X05hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVu
dHMuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5OQU1FLCAi
Y2hlY2t5IikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA+IDEKKworCitkZWYgdGVzdF9TaG91
bGRfQmVfQWJsZV9Ub19GaW5kX0FuX0VsZW1lbnRfVGhhdF9Eb2VzX05vdF9TdXBwb3J0X1RoZV9O
YW1lX1Byb3BlcnR5KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1l
bnRzLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJk
aXYxIikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJuYW1lIikgPT0gImRpdjEi
CisKKyMgQnkubmFtZSBuZWdhdGl2ZQorCisKK2RlZiB0ZXN0X1Nob3VsZF9Ob3RfQmVfQWJsZV9U
b19Mb2NhdGVfQnlfTmFtZV9BU2luZ2xlX0VsZW1lbnRfVGhhdF9Eb2VzX05vdF9FeGlzdChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuTkFNRSwgIm5vbl9FeGlzdGVudF9CdXR0b24iKQorCisKK2RlZiB0ZXN0X1No
b3VsZF9Ob3RfQmVfQWJsZV9Ub19Mb2NhdGVfQnlfTmFtZV9NdWx0aXBsZV9FbGVtZW50c19UaGF0
X0RvX05vdF9FeGlzdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5o
dG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5Lk5BTUUsICJub25f
RXhpc3RlbnRfQnV0dG9uIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAwCisKKworQHB5
dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9Tm9TdWNoV2luZG93RXhjZXB0aW9uKQor
ZGVmIHRlc3RfRmluZGluZ19BU2luZ2xlX0VsZW1lbnRfQnlfRW1wdHlfTmFtZV9TaG91bGRfVGhy
b3coZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2
ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICIiKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFu
dG9tanMocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCitkZWYgdGVzdF9GaW5kaW5nX011
bHRpcGxlX0VsZW1lbnRzX0J5X0VtcHR5X05hbWVfU2hvdWxkX1JldHVybl9FbXB0eV9MaXN0KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1l
bnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuTkFNRSwgIiIpCisgICAgYXNzZXJ0IGxlbihl
bGVtZW50cykgPT0gMAorCisKK2RlZiB0ZXN0X0ZpbmRpbmdfQVNpbmdsZV9FbGVtZW50X0J5X05h
bWVfV2l0aF9TcGFjZV9TaG91bGRfVGhyb3coZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRF
eGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJub25leGlz
dGVudCBidXR0b24iKQorCisKK2RlZiB0ZXN0X0ZpbmRpbmdfTXVsdGlwbGVfRWxlbWVudHNfQnlf
TmFtZV9XaXRoX1NwYWNlX1Nob3VsZF9SZXR1cm5fRW1wdHlfTGlzdChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZlci5m
aW5kX2VsZW1lbnRzKEJ5Lk5BTUUsICJub25leGlzdGVudCBidXR0b24iKQorICAgIGFzc2VydCBs
ZW4oZWxlbWVudHMpID09IDAKKworIyBCeS50YWdfTmFtZSBwb3NpdGl2ZQorCisKK2RlZiB0ZXN0
X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfQVNpbmdsZV9FbGVtZW50X0J5X1RhZ19OYW1lKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRBR19OQU1FLCAiaW5wdXQiKQorICAgIGFzc2VydCBl
bGVtZW50LnRhZ19uYW1lLmxvd2VyKCkgPT0gImlucHV0IgorCisKK2RlZiB0ZXN0X1Nob3VsZF9C
ZV9BYmxlX1RvX0ZpbmRfTXVsdGlwbGVfRWxlbWVudHNfQnlfVGFnX05hbWUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2
ZXIuZmluZF9lbGVtZW50cyhCeS5UQUdfTkFNRSwgImlucHV0IikKKyAgICBhc3NlcnQgbGVuKGVs
ZW1lbnRzKSA+IDEKKworIyBCeS50YWdfTmFtZSBuZWdhdGl2ZQorCisKK2RlZiB0ZXN0X1Nob3Vs
ZF9Ob3RfQmVfQWJsZV9Ub19Mb2NhdGVfQnlfVGFnX05hbWVfQVNpbmdsZV9FbGVtZW50X1RoYXRf
RG9lc19Ob3RfRXhpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2Uu
aHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgor
ICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRBR19OQU1FLCAibm9uX0V4aXN0ZW50X0J1
dHRvbiIpCisKKworZGVmIHRlc3RfU2hvdWxkX05vdF9CZV9BYmxlX1RvX0xvY2F0ZV9CeV9UYWdf
TmFtZV9NdWx0aXBsZV9FbGVtZW50c19UaGF0X0RvX05vdF9FeGlzdChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZlci5m
aW5kX2VsZW1lbnRzKEJ5LlRBR19OQU1FLCAibm9uX0V4aXN0ZW50X0J1dHRvbiIpCisgICAgYXNz
ZXJ0IGxlbihlbGVtZW50cykgPT0gMAorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisg
ICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vl
cy9kZXRhaWw/aWQ9MTU0MScpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVz
dF9GaW5kaW5nX0FTaW5nbGVfRWxlbWVudF9CeV9FbXB0eV9UYWdfTmFtZV9TaG91bGRfVGhyb3co
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgd2l0
aCBweXRlc3QucmFpc2VzKEludmFsaWRTZWxlY3RvckV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICIiKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9j
aHJvbWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJp
dmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTU0MScpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpz
CitkZWYgdGVzdF9GaW5kaW5nX011bHRpcGxlX0VsZW1lbnRzX0J5X0VtcHR5X1RhZ19OYW1lX1No
b3VsZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1s
IikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKToKKyAg
ICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuVEFHX05BTUUsICIiKQorCisKK2RlZiB0ZXN0
X0ZpbmRpbmdfQVNpbmdsZV9FbGVtZW50X0J5X1RhZ19OYW1lX1dpdGhfU3BhY2VfU2hvdWxkX1Ro
cm93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgIm5vbmV4aXN0ZW50IGJ1dHRvbiIpCisKKwor
ZGVmIHRlc3RfRmluZGluZ19NdWx0aXBsZV9FbGVtZW50c19CeV9UYWdfTmFtZV9XaXRoX1NwYWNl
X1Nob3VsZF9SZXR1cm5fRW1wdHlfTGlzdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5
LlRBR19OQU1FLCAibm9uZXhpc3RlbnQgYnV0dG9uIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRz
KSA9PSAwCisKKyMgQnkuY2xhc3NfTmFtZSBwb3NpdGl2ZQorCisKK2RlZiB0ZXN0X1Nob3VsZF9C
ZV9BYmxlX1RvX0ZpbmRfQVNpbmdsZV9FbGVtZW50X0J5X0NsYXNzKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5DTEFTU19OQU1FLCAiZXh0cmFEaXYiKQorICAgIGFzc2VydCAiQW5vdGhl
ciBkaXYgc3RhcnRzIGhlcmUuIiBpbiBlbGVtZW50LnRleHQKKworCitkZWYgdGVzdF9TaG91bGRf
QmVfQWJsZV9Ub19GaW5kX011bHRpcGxlX0VsZW1lbnRzX0J5X0NsYXNzX05hbWUoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnRzID0g
ZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuQ0xBU1NfTkFNRSwgIm5hbWVDIikKKyAgICBhc3NlcnQg
bGVuKGVsZW1lbnRzKSA+IDEKKworCitkZWYgdGVzdF9TaG91bGRfRmluZF9FbGVtZW50X0J5X0Ns
YXNzX1doZW5fSXRfSXNfVGhlX0ZpcnN0X05hbWVfQW1vbmdfTWFueShkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuQ0xBU1NfTkFNRSwgIm5hbWVBIikKKyAgICBhc3NlcnQgZWxlbWVudC50
ZXh0ID09ICJBbiBIMiB0aXRsZSIKKworCitkZWYgdGVzdF9TaG91bGRfRmluZF9FbGVtZW50X0J5
X0NsYXNzX1doZW5fSXRfSXNfVGhlX0xhc3RfTmFtZV9BbW9uZ19NYW55KGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5DTEFTU19OQU1FLCAibmFtZUMiKQorICAgIGFzc2VydCBlbGVtZW50
LnRleHQgPT0gIkFuIEgyIHRpdGxlIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9GaW5kX0VsZW1lbnRf
QnlfQ2xhc3NfV2hlbl9JdF9Jc19Jbl9UaGVfTWlkZGxlX0Ftb25nX01hbnkoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2
ZXIuZmluZF9lbGVtZW50KEJ5LkNMQVNTX05BTUUsICJuYW1lQm5vaXNlIikKKyAgICBhc3NlcnQg
ZWxlbWVudC50ZXh0ID09ICJBbiBIMiB0aXRsZSIKKworCitkZWYgdGVzdF9TaG91bGRfRmluZF9F
bGVtZW50X0J5X0NsYXNzX1doZW5fSXRzX05hbWVfSXNfU3Vycm91bmRlZF9CeV9XaGl0ZXNwYWNl
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBl
bGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5DTEFTU19OQU1FLCAic3BhY2VBcm91bmQi
KQorICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gIlNwYWNlZCBvdXQiCisKKworZGVmIHRlc3Rf
U2hvdWxkX0ZpbmRfRWxlbWVudHNfQnlfQ2xhc3NfV2hlbl9JdHNfTmFtZV9Jc19TdXJyb3VuZGVk
X0J5X1doaXRlc3BhY2UoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0
Lmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuQ0xBU1NfTkFN
RSwgInNwYWNlQXJvdW5kIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAxCisgICAgYXNz
ZXJ0IGVsZW1lbnRzWzBdLnRleHQgPT0gIlNwYWNlZCBvdXQiCisKKyMgQnkuY2xhc3NfTmFtZSBu
ZWdhdGl2ZQorCisKK2RlZiB0ZXN0X1Nob3VsZF9Ob3RfRmluZF9FbGVtZW50X0J5X0NsYXNzX1do
ZW5fVGhlX05hbWVfUXVlcmllZF9Jc19TaG9ydGVyX1RoYW5fQ2FuZGlkYXRlX05hbWUoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5DTEFTU19OQU1FLCAibmFtZV9CIikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxf
cGhhbnRvbWpzKHJhaXNlcz1Ob1N1Y2hXaW5kb3dFeGNlcHRpb24pCitkZWYgdGVzdF9GaW5kaW5n
X0FTaW5nbGVfRWxlbWVudF9CeV9FbXB0eV9DbGFzc19OYW1lX1Nob3VsZF9UaHJvdyhkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRl
c3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LkNMQVNTX05BTUUsICIiKQorCisKK2RlZiB0ZXN0X0ZpbmRpbmdfTXVsdGlwbGVf
RWxlbWVudHNfQnlfRW1wdHlfQ2xhc3NfTmFtZV9TaG91bGRfVGhyb3coZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudHMo
QnkuQ0xBU1NfTkFNRSwgIiIpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlz
ZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RfRmluZGluZ19BU2luZ2xlX0VsZW1lbnRf
QnlfQ29tcG91bmRfQ2xhc3NfTmFtZV9TaG91bGRfVGhyb3coZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5DTEFT
U19OQU1FLCAiYSBiIikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1J
bnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKQorZGVmIHRlc3RfRmluZGluZ19BU2luZ2xlX0Vs
ZW1lbnRfQnlfSW52YWxpZF9DbGFzc19OYW1lX1Nob3VsZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LkNMQVNTX05BTUUsICIhQCMkJV4mKiIpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21q
cyhyYWlzZXM9SW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbikKK2RlZiB0ZXN0X0ZpbmRpbmdf
TXVsdGlwbGVfRWxlbWVudHNfQnlfSW52YWxpZF9DbGFzc19OYW1lX1Nob3VsZF9UaHJvdyhkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50cyhCeS5DTEFTU19OQU1FLCAiIUAjJCVeJioiKQorCisjIEJ5LnhwYXRoIHBvc2l0
aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9BU2luZ2xlX0VsZW1lbnRf
QnlfWFBhdGgoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwi
KQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAiLy9oMSIpCisg
ICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiWEhUTUwgTWlnaHQgQmUgVGhlIEZ1dHVyZSIKKwor
CitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX011bHRpcGxlX0VsZW1lbnRzX0J5X1hQ
YXRoKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAg
ICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LlhQQVRILCAiLy9kaXYiKQorICAg
IGFzc2VydCBsZW4oZWxlbWVudHMpID09IDEzCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVf
VG9fRmluZF9NYW55X0VsZW1lbnRzX1JlcGVhdGVkbHlfQnlfWFBhdGgoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHhwYXRoID0gIi8vbm9kZSgp
W2NvbnRhaW5zKEBpZCwnaWQnKV0iCisgICAgYXNzZXJ0IGxlbihkcml2ZXIuZmluZF9lbGVtZW50
cyhCeS5YUEFUSCwgeHBhdGgpKSA9PSAzCisKKyAgICB4cGF0aCA9ICIvL25vZGUoKVtjb250YWlu
cyhAaWQsJ25vcGUnKV0iCisgICAgYXNzZXJ0IGxlbihkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5Y
UEFUSCwgeHBhdGgpKSA9PSAwCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fSWRlbnRp
ZnlfRWxlbWVudHNfQnlfQ2xhc3MoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0
bWxUZXN0Lmh0bWwiKQorICAgIGhlYWRlciA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgs
ICIvL2gxW0BjbGFzcz0naGVhZGVyJ10iKQorICAgIGFzc2VydCBoZWFkZXIudGV4dCA9PSAiWEhU
TUwgTWlnaHQgQmUgVGhlIEZ1dHVyZSIKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19G
aW5kX0FuX0VsZW1lbnRfQnlfWFBhdGhfV2l0aF9NdWx0aXBsZV9BdHRyaWJ1dGVzKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50KAorICAgICAgICBCeS5YUEFUSCwgIi8vZm9ybVtAbmFtZT0nb3B0
aW9uYWwnXS9pbnB1dFtAdHlwZT0nc3VibWl0JyBhbmQgQHZhbHVlPSdDbGljayEnXSIpCisgICAg
YXNzZXJ0IGVsZW1lbnQudGFnX25hbWUubG93ZXIoKSA9PSAiaW5wdXQiCisgICAgYXNzZXJ0IGVs
ZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiQ2xpY2shIgorCisKK2RlZiB0ZXN0X0Zp
bmRpbmdfQUxpbmtfQnlfWHBhdGhfU2hvdWxkX0xvY2F0ZV9Bbl9FbGVtZW50X1dpdGhfVGhlX0dp
dmVuX1RleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwi
KQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAiLy9hW3RleHQo
KT0nY2xpY2sgbWUnXSIpCisgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiY2xpY2sgbWUiCisK
KworZGVmIHRlc3RfRmluZGluZ19BTGlua19CeV9YcGF0aF9Vc2luZ19Db250YWluc19LZXl3b3Jk
X1Nob3VsZF9Xb3JrKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1l
bnRzLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAi
Ly9hW2NvbnRhaW5zKC4sJ2hlbGxvIHdvcmxkJyldIikKKyAgICBhc3NlcnQgImhlbGxvIHdvcmxk
IiBpbiBlbGVtZW50LnRleHQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1J
bnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveChyYWlz
ZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShy
YWlzZXM9SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlv
bmV0dGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9waGFu
dG9tanMocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFp
bF9zYWZhcmkocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZh
aWxfd2Via2l0Z3RrKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pCitkZWYgdGVzdF9T
aG91bGRfQmVfQWJsZV9Ub19GaW5kX0VsZW1lbnRfQnlfWFBhdGhfV2l0aF9OYW1lc3BhY2UoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic3ZnUGFnZS5odG1sIikKKyAgICBlbGVtZW50
ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8vc3ZnOnN2Zy8vc3ZnOnRleHQiKQor
ICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gIlRlc3QgQ2hhcnQiCisKKworZGVmIHRlc3RfU2hv
dWxkX0JlX0FibGVfVG9fRmluZF9FbGVtZW50X0J5X1hQYXRoX0luX1htbF9Eb2N1bWVudChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGUueG1sIikKKyAgICBlbGVtZW50ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8vZm9vIikKKyAgICBhc3NlcnQgImJheiIg
aW4gZWxlbWVudC50ZXh0CisKKyMgQnkueHBhdGggbmVnYXRpdmUKKworCitkZWYgdGVzdF9TaG91
bGRfVGhyb3dfQW5fRXhjZXB0aW9uX1doZW5fVGhlcmVfSXNfTm9fTGlua19Ub19DbGljayhkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5LlhQQVRILCAiLy9hW0BpZD0nTm90IGhlcmUnXSIpCisKKworZGVmIHRlc3Rf
U2hvdWxkX1Rocm93X0ludmFsaWRTZWxlY3RvckV4Y2VwdGlvbl9XaGVuX1hQYXRoX0lzX1N5bnRh
Y3RpY2FsbHlfSW52YWxpZF9Jbl9Ecml2ZXJfRmluZF9FbGVtZW50KGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJ
bnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LlhQQVRILCAidGhpc11baXNub3RdW3ZhbGlkIikKKworCitkZWYgdGVzdF9TaG91bGRfVGhyb3df
SW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uX1doZW5fWFBhdGhfSXNfU3ludGFjdGljYWxseV9JbnZh
bGlkX0luX0RyaXZlcl9GaW5kX0VsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkU2VsZWN0
b3JFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5YUEFUSCwgInRo
aXNdW2lzbm90XVt2YWxpZCIpCisKKworZGVmIHRlc3RfU2hvdWxkX1Rocm93X0ludmFsaWRTZWxl
Y3RvckV4Y2VwdGlvbl9XaGVuX1hQYXRoX0lzX1N5bnRhY3RpY2FsbHlfSW52YWxpZF9Jbl9FbGVt
ZW50X0ZpbmRfRWxlbWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKyAgICBib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImJv
ZHkiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pOgor
ICAgICAgICBib2R5LmZpbmRfZWxlbWVudChCeS5YUEFUSCwgInRoaXNdW2lzbm90XVt2YWxpZCIp
CisKKworZGVmIHRlc3RfU2hvdWxkX1Rocm93X0ludmFsaWRTZWxlY3RvckV4Y2VwdGlvbl9XaGVu
X1hQYXRoX0lzX1N5bnRhY3RpY2FsbHlfSW52YWxpZF9Jbl9FbGVtZW50X0ZpbmRfRWxlbWVudHMo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgYm9k
eSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICJib2R5IikKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKToKKyAgICAgICAgYm9keS5maW5k
X2VsZW1lbnRzKEJ5LlhQQVRILCAidGhpc11baXNub3RdW3ZhbGlkIikKKworCitkZWYgdGVzdF9T
aG91bGRfVGhyb3dfSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uX1doZW5fWFBhdGhfUmV0dXJuc19X
cm9uZ19UeXBlX0luX0RyaXZlcl9GaW5kX0VsZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRT
ZWxlY3RvckV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgs
ICJjb3VudCgvL2lucHV0KSIpCisKKworZGVmIHRlc3RfU2hvdWxkX1Rocm93X0ludmFsaWRTZWxl
Y3RvckV4Y2VwdGlvbl9XaGVuX1hQYXRoX1JldHVybnNfV3JvbmdfVHlwZV9Jbl9Ecml2ZXJfRmlu
ZF9FbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1s
IikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKToKKyAg
ICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuWFBBVEgsICJjb3VudCgvL2lucHV0KSIpCisK
KworZGVmIHRlc3RfU2hvdWxkX1Rocm93X0ludmFsaWRTZWxlY3RvckV4Y2VwdGlvbl9XaGVuX1hQ
YXRoX1JldHVybnNfV3JvbmdfVHlwZV9Jbl9FbGVtZW50X0ZpbmRfRWxlbWVudChkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBib2R5ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImJvZHkiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pOgorICAgICAgICBib2R5LmZpbmRfZWxlbWVudChC
eS5YUEFUSCwgImNvdW50KC8vaW5wdXQpIikKKworCitkZWYgdGVzdF9TaG91bGRfVGhyb3dfSW52
YWxpZFNlbGVjdG9yRXhjZXB0aW9uX1doZW5fWFBhdGhfUmV0dXJuc19Xcm9uZ19UeXBlX0luX0Vs
ZW1lbnRfRmluZF9FbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKyAgICBib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwg
ImJvZHkiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24p
OgorICAgICAgICBib2R5LmZpbmRfZWxlbWVudHMoQnkuWFBBVEgsICJjb3VudCgvL2lucHV0KSIp
CisKKyMgQnkuY3NzX1NlbGVjdG9yIHBvc2l0aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0Fi
bGVfVG9fRmluZF9BU2luZ2xlX0VsZW1lbnRfQnlfQ3NzX1NlbGVjdG9yKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5DU1NfU0VMRUNUT1IsICJkaXYuY29udGVudCIpCisgICAgYXNzZXJ0
IGVsZW1lbnQudGFnX25hbWUubG93ZXIoKSA9PSAiZGl2IgorICAgIGFzc2VydCBlbGVtZW50Lmdl
dF9hdHRyaWJ1dGUoImNsYXNzIikgPT0gImNvbnRlbnQiCisKKworZGVmIHRlc3RfU2hvdWxkX0Jl
X0FibGVfVG9fRmluZF9NdWx0aXBsZV9FbGVtZW50c19CeV9Dc3NfU2VsZWN0b3IoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnRzID0g
ZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuQ1NTX1NFTEVDVE9SLCAicCIpCisgICAgYXNzZXJ0IGxl
bihlbGVtZW50cykgPiAxCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9BU2lu
Z2xlX0VsZW1lbnRfQnlfQ29tcG91bmRfQ3NzX1NlbGVjdG9yKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5DU1NfU0VMRUNUT1IsICJkaXYuZXh0cmFEaXYsIGRpdi5jb250ZW50IikKKyAg
ICBhc3NlcnQgZWxlbWVudC50YWdfbmFtZS5sb3dlcigpID09ICJkaXYiCisgICAgYXNzZXJ0IGVs
ZW1lbnQuZ2V0X2F0dHJpYnV0ZSgiY2xhc3MiKSA9PSAiY29udGVudCIKKworCitkZWYgdGVzdF9T
aG91bGRfQmVfQWJsZV9Ub19GaW5kX011bHRpcGxlX0VsZW1lbnRzX0J5X0NvbXBvdW5kX0Nzc19T
ZWxlY3Rvcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIp
CisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5DU1NfU0VMRUNUT1IsICJk
aXYuZXh0cmFEaXYsIGRpdi5jb250ZW50IikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA+IDEK
KyAgICBhc3NlcnQgZWxlbWVudHNbMF0uZ2V0X2F0dHJpYnV0ZSgiY2xhc3MiKSA9PSAiY29udGVu
dCIKKyAgICBhc3NlcnQgZWxlbWVudHNbMV0uZ2V0X2F0dHJpYnV0ZSgiY2xhc3MiKSA9PSAiZXh0
cmFEaXYiCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9Bbl9FbGVtZW50X0J5
X0Jvb2xlYW5fQXR0cmlidXRlX1VzaW5nX0Nzc19TZWxlY3Rvcihkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJsb2NhdG9yc190ZXN0cy9ib29sZWFuX2F0dHJpYnV0ZV9zZWxlY3RlZC5o
dG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5DU1NfU0VMRUNUT1Is
ICJvcHRpb25bc2VsZWN0ZWQ9J3NlbGVjdGVkJ10iKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9h
dHRyaWJ1dGUoInZhbHVlIikgPT0gInR3byIKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9U
b19GaW5kX0FuX0VsZW1lbnRfQnlfQm9vbGVhbl9BdHRyaWJ1dGVfVXNpbmdfU2hvcnRfQ3NzX1Nl
bGVjdG9yKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImxvY2F0b3JzX3Rlc3RzL2Jv
b2xlYW5fYXR0cmlidXRlX3NlbGVjdGVkLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5LkNTU19TRUxFQ1RPUiwgIm9wdGlvbltzZWxlY3RlZF0iKQorICAgIGFzc2Vy
dCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gInR3byIKKworCitkZWYgdGVzdF9T
aG91bGRfQmVfQWJsZV9Ub19GaW5kX0FuX0VsZW1lbnRfQnlfQm9vbGVhbl9BdHRyaWJ1dGVfVXNp
bmdfU2hvcnRfQ3NzX1NlbGVjdG9yX09uX0h0bWw0UGFnZShkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJsb2NhdG9yc190ZXN0cy9ib29sZWFuX2F0dHJpYnV0ZV9zZWxlY3RlZF9odG1s
NC5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5DU1NfU0VMRUNU
T1IsICJvcHRpb25bc2VsZWN0ZWRdIikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRl
KCJ2YWx1ZSIpID09ICJ0d28iCisKKyMgQnkuY3NzX1NlbGVjdG9yIG5lZ2F0aXZlCisKKworZGVm
IHRlc3RfU2hvdWxkX05vdF9GaW5kX0VsZW1lbnRfQnlfQ3NzX1NlbGVjdG9yX1doZW5fVGhlcmVf
SXNfTm9fU3VjaF9FbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1s
VGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlv
bik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuQ1NTX1NFTEVDVE9SLCAiLnRoZXJl
LWlzLW5vLXN1Y2gtY2xhc3MiKQorCisKK2RlZiB0ZXN0X1Nob3VsZF9Ob3RfRmluZF9FbGVtZW50
c19CeV9Dc3NfU2VsZWN0b3JfV2hlbl9UaGVyZV9Jc19Ob19TdWNoX0VsZW1lbnQoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnRzID0g
ZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuQ1NTX1NFTEVDVE9SLCAiLnRoZXJlLWlzLW5vLXN1Y2gt
Y2xhc3MiKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID09IDAKKworCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1Ob1N1Y2hXaW5kb3dFeGNlcHRpb24pCitkZWYgdGVzdF9G
aW5kaW5nX0FTaW5nbGVfRWxlbWVudF9CeV9FbXB0eV9Dc3NfU2VsZWN0b3JfU2hvdWxkX1Rocm93
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuQ1NTX1NFTEVDVE9SLCAiIikKKworCitkZWYgdGVzdF9GaW5kaW5n
X011bHRpcGxlX0VsZW1lbnRzX0J5X0VtcHR5X0Nzc19TZWxlY3Rvcl9TaG91bGRfVGhyb3coZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZp
bmRfZWxlbWVudHMoQnkuQ1NTX1NFTEVDVE9SLCAiIikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxf
cGhhbnRvbWpzKHJhaXNlcz1JbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKQorZGVmIHRlc3Rf
RmluZGluZ19BU2luZ2xlX0VsZW1lbnRfQnlfSW52YWxpZF9Dc3NfU2VsZWN0b3JfU2hvdWxkX1Ro
cm93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRy
aXZlci5maW5kX2VsZW1lbnQoQnkuQ1NTX1NFTEVDVE9SLCAiLy9hL2IvY1tAaWQ9JzEnXSIpCisK
KworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9SW52YWxpZEVsZW1lbnRTdGF0
ZUV4Y2VwdGlvbikKK2RlZiB0ZXN0X0ZpbmRpbmdfTXVsdGlwbGVfRWxlbWVudHNfQnlfSW52YWxp
ZF9Dc3NfU2VsZWN0b3JfU2hvdWxkX1Rocm93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVu
dEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LkNTU19TRUxFQ1RP
UiwgIi8vYS9iL2NbQGlkPScxJ10iKQorCisjIEJ5LmxpbmtfVGV4dCBwb3NpdGl2ZQorCisKK2Rl
ZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfQUxpbmtfQnlfVGV4dChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgbGluayA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuTElOS19URVhULCAiY2xpY2sgbWUiKQorICAgIGFzc2VydCBsaW5rLnRl
eHQgPT0gImNsaWNrIG1lIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfTXVs
dGlwbGVfTGlua3NfQnlfVGV4dChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRt
bFRlc3QuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5MSU5L
X1RFWFQsICJjbGljayBtZSIpCisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykgPT0gMgorCisKK2Rl
ZiB0ZXN0X1Nob3VsZF9GaW5kX0VsZW1lbnRfQnlfTGlua19UZXh0X0NvbnRhaW5pbmdfRXF1YWxz
X1NpZ24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQor
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkxJTktfVEVYVCwgIkxpbms9ZXF1
YWxzc2lnbiIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgiaWQiKSA9PSAibGlu
a1dpdGhFcXVhbHNTaWduIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9GaW5kX011bHRpcGxlX0VsZW1l
bnRzX0J5X0xpbmtfVGV4dF9Db250YWluaW5nX0VxdWFsc19TaWduKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZlci5m
aW5kX2VsZW1lbnRzKEJ5LkxJTktfVEVYVCwgIkxpbms9ZXF1YWxzc2lnbiIpCisgICAgYXNzZXJ0
IDEgPT0gbGVuKGVsZW1lbnRzKQorICAgIGFzc2VydCBlbGVtZW50c1swXS5nZXRfYXR0cmlidXRl
KCJpZCIpID09ICJsaW5rV2l0aEVxdWFsc1NpZ24iCisKKworZGVmIHRlc3RfZmluZHNfQnlfTGlu
a19UZXh0X09uX1hodG1sX1BhZ2UoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWN0
dWFsWGh0bWxQYWdlLnhodG1sIikKKyAgICBsaW5rX1RleHQgPSAiRm9vIgorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkxJTktfVEVYVCwgbGlua19UZXh0KQorICAgIGFzc2Vy
dCBlbGVtZW50LnRleHQgPT0gbGlua19UZXh0CisKKworZGVmIHRlc3RfTGlua19XaXRoX0Zvcm1h
dHRpbmdfVGFncyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0
bWwiKQorICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAibGlua3MiKQorCisg
ICAgcmVzID0gZWxlbS5maW5kX2VsZW1lbnQoQnkuUEFSVElBTF9MSU5LX1RFWFQsICJsaW5rIHdp
dGggZm9ybWF0dGluZyB0YWdzIikKKyAgICBhc3NlcnQgcmVzLnRleHQgPT0gImxpbmsgd2l0aCBm
b3JtYXR0aW5nIHRhZ3MiCisKKworZGVmIHRlc3RfRHJpdmVyX0Nhbl9HZXRfTGlua19CeV9MaW5r
X1Rlc3RfSWdub3JpbmdfVHJhaWxpbmdfV2hpdGVzcGFjZShkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGxpbmsgPSBkcml2ZXIuZmluZF9lbGVt
ZW50KEJ5LkxJTktfVEVYVCwgImxpbmsgd2l0aCB0cmFpbGluZyBzcGFjZSIpCisgICAgYXNzZXJ0
IGxpbmsuZ2V0X2F0dHJpYnV0ZSgiaWQiKSA9PSAibGlua1dpdGhUcmFpbGluZ1NwYWNlIgorICAg
IGFzc2VydCBsaW5rLnRleHQgPT0gImxpbmsgd2l0aCB0cmFpbGluZyBzcGFjZSIKKworIyBCeS5s
aW5rX1RleHQgbmVnYXRpdmUKKworCitkZWYgdGVzdF9TaG91bGRfTm90X0JlX0FibGVfVG9fTG9j
YXRlX0J5X0xpbmtfVGV4dF9BU2luZ2xlX0VsZW1lbnRfVGhhdF9Eb2VzX05vdF9FeGlzdChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5LkxJTktfVEVYVCwgIk5vdCBoZXJlIGVpdGhlciIpCisKKworZGVmIHRlc3Rf
U2hvdWxkX05vdF9CZV9BYmxlX1RvX0xvY2F0ZV9CeV9MaW5rX1RleHRfTXVsdGlwbGVfRWxlbWVu
dHNfVGhhdF9Eb19Ob3RfRXhpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0
bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuTElO
S19URVhULCAiTm90IGhlcmUgZWl0aGVyIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAw
CisKKyMgQnkucGFydGlhbF9MaW5rX1RleHQgcG9zaXRpdmUKKworCitkZWYgdGVzdF9TaG91bGRf
QmVfQWJsZV9Ub19GaW5kX011bHRpcGxlX0VsZW1lbnRzX0J5X1BhcnRpYWxfTGlua19UZXh0KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVt
ZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LlBBUlRJQUxfTElOS19URVhULCAiaWNrIG1l
IikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAyCisKKworZGVmIHRlc3RfU2hvdWxkX0Jl
X0FibGVfVG9fRmluZF9BU2luZ2xlX0VsZW1lbnRfQnlfUGFydGlhbF9MaW5rX1RleHQoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlBBUlRJQUxfTElOS19URVhULCAiYW5vbiIpCisgICAg
YXNzZXJ0ICJhbm9uIiBpbiBlbGVtZW50LnRleHQKKworCitkZWYgdGVzdF9TaG91bGRfRmluZF9F
bGVtZW50X0J5X1BhcnRpYWxfTGlua19UZXh0X0NvbnRhaW5pbmdfRXF1YWxzX1NpZ24oZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlBBUlRJQUxfTElOS19URVhULCAiTGluaz0iKQorICAg
IGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoImlkIikgPT0gImxpbmtXaXRoRXF1YWxzU2ln
biIKKworCitkZWYgdGVzdF9TaG91bGRfRmluZF9NdWx0aXBsZV9FbGVtZW50c19CeV9QYXJ0aWFs
X0xpbmtfVGV4dF9Db250YWluaW5nX0VxdWFsc19TaWduKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRzKEJ5LlBBUlRJQUxfTElOS19URVhULCAiTGluaz0iKQorICAgIGFzc2VydCBsZW4oZWxl
bWVudHMpID09IDEKKyAgICBhc3NlcnQgZWxlbWVudHNbMF0uZ2V0X2F0dHJpYnV0ZSgiaWQiKSA9
PSAibGlua1dpdGhFcXVhbHNTaWduIgorCisjIE1pc2MgdGVzdHMKKworCitkZWYgdGVzdF9Ecml2
ZXJfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9FbGVtZW50c19BZnRlcl9Mb2FkaW5nX01vcmVfVGhh
bl9PbmVfUGFnZV9BdF9BVGltZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgbGluayA9
IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTElOS19URVhULCAiY2xpY2sgbWUiKQorICAgIGFzc2Vy
dCBsaW5rLnRleHQgPT0gImNsaWNrIG1lIgorCisjIFlvdSBkb24ndCB3YW50IHRvIGFzayB3aHkg
dGhpcyBpcyBoZXJlCisKKworZGVmIHRlc3RfV2hlbl9GaW5kaW5nX0J5X05hbWVfU2hvdWxkX05v
dF9SZXR1cm5fQnlfSWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2Uu
aHRtbCIpCisKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWQt
bmFtZTEiKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIm5h
bWUiCisKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlkLW5hbWUx
IikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJpZCIKKwor
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZC1uYW1lMiIpCisg
ICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAibmFtZSIKKworICAg
IGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWQtbmFtZTIiKQorICAgIGFz
c2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImlkIgorCisKK2RlZiB0ZXN0
X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfQUhpZGRlbl9FbGVtZW50c19CeV9OYW1lKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJoaWRkZW4iKQorICAgIGFzc2VydCBlbGVtZW50
LmdldF9hdHRyaWJ1dGUoIm5hbWUiKSA9PSAiaGlkZGVuIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9O
b3RfQmVfQWJsZV9Ub19GaW5kX0FuX0VsZW1lbnRfT25fQUJsYW5rX1BhZ2UoZHJpdmVyLCBwYWdl
cyk6CisgICAgZHJpdmVyLmdldCgiYWJvdXQ6YmxhbmsiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5UQUdfTkFNRSwgImEiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2VsZW1lbnRfYXR0cmlidXRl
X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL2VsZW1lbnRfYXR0cmlidXRlX3Rlc3RzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NjNlMDJhN2M5NAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9lbGVtZW50X2F0dHJpYnV0ZV90ZXN0cy5weQpAQCAtMCwwICsxLDI3
NCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZD
KSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBT
ZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRp
dGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhl
IFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z
ZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBm
aWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9i
dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5v
cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2Fi
bGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1
bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBX
SVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4
cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxh
bmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhl
IExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0
aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCisKKworZGVmIHRlc3RTaG91bGRSZXR1cm5O
dWxsV2hlbkdldHRpbmdUaGVWYWx1ZU9mQW5BdHRyaWJ1dGVUaGF0SXNOb3RMaXN0ZWQoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBoZWFkID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiL2h0bWwiKQorICAgIGF0dHJpYnV0ZSA9IGhl
YWQuZ2V0X2F0dHJpYnV0ZSgiY2hlZXNlIikKKyAgICBhc3NlcnQgYXR0cmlidXRlIGlzIE5vbmUK
KworCitkZWYgdGVzdFNob3VsZFJldHVybk51bGxXaGVuR2V0dGluZ1NyY0F0dHJpYnV0ZU9mSW52
YWxpZEltZ1RhZyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0
bWwiKQorICAgIGltZyA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImludmFsaWRJbWdUYWci
KQorICAgIGltZ19hdHRyID0gaW1nLmdldF9hdHRyaWJ1dGUoInNyYyIpCisgICAgYXNzZXJ0IGlt
Z19hdHRyIGlzIE5vbmUKKworCitkZWYgdGVzdFNob3VsZFJldHVybkFuQWJzb2x1dGVVcmxXaGVu
R2V0dGluZ1NyY0F0dHJpYnV0ZU9mQVZhbGlkSW1nVGFnKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgaW1nID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9pZCgidmFsaWRJbWdUYWciKQorICAgIGltZ19hdHRyID0gaW1nLmdldF9hdHRyaWJ1dGUo
InNyYyIpCisgICAgYXNzZXJ0ICJpY29uLmdpZiIgaW4gaW1nX2F0dHIKKworCitkZWYgdGVzdFNo
b3VsZFJldHVybkFuQWJzb2x1dGVVcmxXaGVuR2V0dGluZ0hyZWZBdHRyaWJ1dGVPZkFWYWxpZEFu
Y2hvclRhZyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwi
KQorICAgIGltZyA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInZhbGlkQW5jaG9yVGFnIikK
KyAgICBpbWdfYXR0ciA9IGltZy5nZXRfYXR0cmlidXRlKCJocmVmIikKKyAgICBhc3NlcnQgImlj
b24uZ2lmIiBpbiBpbWdfYXR0cgorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuRW1wdHlBdHRyaWJ1
dGVWYWx1ZXNXaGVuUHJlc2VudEFuZFRoZVZhbHVlSXNBY3R1YWxseUVtcHR5KGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgYm9keSA9IGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vYm9keSIpCisgICAgYXNzZXJ0ICIiID09IGJvZHku
Z2V0X2F0dHJpYnV0ZSgic3R5bGUiKQorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuVGhlVmFsdWVP
ZlRoZURpc2FibGVkQXR0cmlidXRlQXNGYWxzZUlmTm90U2V0KGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGlucHV0RWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vaW5wdXRbQGlkPSd3b3JraW5nJ10iKQorICAgIGFzc2Vy
dCBpbnB1dEVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgiZGlzYWJsZWQiKSBpcyBOb25lCisgICAgYXNz
ZXJ0IGlucHV0RWxlbWVudC5pc19lbmFibGVkKCkKKworICAgIHBFbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgicGVhcyIpCisgICAgYXNzZXJ0IHBFbGVtZW50LmdldF9hdHRyaWJ1
dGUoImRpc2FibGVkIikgaXMgTm9uZQorICAgIGFzc2VydCBwRWxlbWVudC5pc19lbmFibGVkKCkK
KworCitkZWYgdGVzdFNob3VsZFJldHVyblRoZVZhbHVlT2ZUaGVJbmRleEF0dHJidXRlRXZlbklm
SXRJc01pc3NpbmcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRt
bCIpCisgICAgbXVsdGlTZWxlY3QgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJtdWx0aSIp
CisgICAgb3B0aW9ucyA9IG11bHRpU2VsZWN0LmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoIm9w
dGlvbiIpCisgICAgYXNzZXJ0ICIxIiA9PSBvcHRpb25zWzFdLmdldF9hdHRyaWJ1dGUoImluZGV4
IikKKworCitkZWYgdGVzdFNob3VsZEluZGljYXRlVGhlRWxlbWVudHNUaGF0QXJlRGlzYWJsZWRB
cmVOb3Rpc19lbmFibGVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdl
Lmh0bWwiKQorICAgIGlucHV0RWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgo
Ii8vaW5wdXRbQGlkPSdub3RXb3JraW5nJ10iKQorICAgIGFzc2VydCBub3QgaW5wdXRFbGVtZW50
LmlzX2VuYWJsZWQoKQorCisgICAgaW5wdXRFbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV94cGF0aCgiLy9pbnB1dFtAaWQ9J3dvcmtpbmcnXSIpCisgICAgYXNzZXJ0IGlucHV0RWxlbWVu
dC5pc19lbmFibGVkKCkKKworCitkZWYgdGVzdEVsZW1lbnRzU2hvdWxkQmVEaXNhYmxlZElmVGhl
eUFyZURpc2FibGVkVXNpbmdSYW5kb21EaXNhYmxlZFN0cmluZ3MoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZGlzYWJsZWRUZXh0RWxlbWVudDEg
PSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkaXNhYmxlZFRleHRFbGVtZW50MSIpCisgICAg
YXNzZXJ0IG5vdCBkaXNhYmxlZFRleHRFbGVtZW50MS5pc19lbmFibGVkKCkKKworICAgIGRpc2Fi
bGVkVGV4dEVsZW1lbnQyID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZGlzYWJsZWRUZXh0
RWxlbWVudDIiKQorICAgIGFzc2VydCBub3QgZGlzYWJsZWRUZXh0RWxlbWVudDIuaXNfZW5hYmxl
ZCgpCisKKyAgICBkaXNhYmxlZFN1Ym1pdEVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X2lkKCJkaXNhYmxlZFN1Ym1pdEVsZW1lbnQiKQorICAgIGFzc2VydCBub3QgZGlzYWJsZWRTdWJt
aXRFbGVtZW50LmlzX2VuYWJsZWQoKQorCisKK2RlZiB0ZXN0U2hvdWxkSW5kaWNhdGVXaGVuQVRl
eHRBcmVhSXNEaXNhYmxlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKyAgICB0ZXh0QXJlYSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8v
dGV4dGFyZWFbQGlkPSdub3RXb3JraW5nQXJlYSddIikKKyAgICBhc3NlcnQgbm90IHRleHRBcmVh
LmlzX2VuYWJsZWQoKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJl
YXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwOTIz
NCcpCitkZWYgdGVzdFNob3VsZFRocm93RXhjZXB0aW9uSWZTZW5kaW5nS2V5c1RvRWxlbWVudERp
c2FibGVkVXNpbmdSYW5kb21EaXNhYmxlZFN0cmluZ3MoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZGlzYWJsZWRUZXh0RWxlbWVudDEgPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkaXNhYmxlZFRleHRFbGVtZW50MSIpCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgICAgIGRpc2FibGVkVGV4dEVs
ZW1lbnQxLnNlbmRfa2V5cygiZm9vIikKKyAgICBhc3NlcnQgIiIgPT0gZGlzYWJsZWRUZXh0RWxl
bWVudDEudGV4dAorCisgICAgZGlzYWJsZWRUZXh0RWxlbWVudDIgPSBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJkaXNhYmxlZFRleHRFbGVtZW50MiIpCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgICAgIGRpc2FibGVkVGV4dEVsZW1lbnQyLnNlbmRf
a2V5cygiYmFyIikKKyAgICBhc3NlcnQgIiIgPT0gZGlzYWJsZWRUZXh0RWxlbWVudDIudGV4dAor
CisKK2RlZiB0ZXN0U2hvdWxkSW5kaWNhdGVXaGVuQVNlbGVjdElzRGlzYWJsZWQoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZW5hYmxlZCA9IGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgic2VsZWN0b21hdGljIikKKyAgICBkaXNhYmxlZCA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgibm8tc2VsZWN0IikKKworICAgIGFzc2VydCBl
bmFibGVkLmlzX2VuYWJsZWQoKQorICAgIGFzc2VydCBub3QgZGlzYWJsZWQuaXNfZW5hYmxlZCgp
CisKKworZGVmIHRlc3RTaG91bGRSZXR1cm5UaGVWYWx1ZU9mQ2hlY2tlZEZvckFDaGVja2JveEV2
ZW5JZkl0TGFja3NUaGF0QXR0cmlidXRlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
ImZvcm1QYWdlLmh0bWwiKQorICAgIGNoZWNrYm94ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94
cGF0aCgiLy9pbnB1dFtAaWQ9J2NoZWNreSddIikKKyAgICBhc3NlcnQgY2hlY2tib3guZ2V0X2F0
dHJpYnV0ZSgiY2hlY2tlZCIpIGlzIE5vbmUKKyAgICBjaGVja2JveC5jbGljaygpCisgICAgYXNz
ZXJ0ICJ0cnVlIiA9PSBjaGVja2JveC5nZXRfYXR0cmlidXRlKCJjaGVja2VkIikKKworCitkZWYg
dGVzdFNob3VsZFJldHVyblRoZVZhbHVlT2ZTZWxlY3RlZEZvclJhZGlvQnV0dG9uc0V2ZW5JZlRo
ZXlMYWNrVGhhdEF0dHJpYnV0ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKyAgICBuZXZlclNlbGVjdGVkID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9p
ZCgiY2hlZXNlIikKKyAgICBpbml0aWFsbHlOb3RTZWxlY3RlZCA9IGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoInBlYXMiKQorICAgIGluaXRpYWxseVNlbGVjdGVkID0gZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9pZCgiY2hlZXNlX2FuZF9wZWFzIikKKworICAgIGFzc2VydCBuZXZlclNlbGVjdGVk
LmdldF9hdHRyaWJ1dGUoImNoZWNrZWQiKSBpcyBOb25lCisgICAgYXNzZXJ0IGluaXRpYWxseU5v
dFNlbGVjdGVkLmdldF9hdHRyaWJ1dGUoImNoZWNrZWQiKSBpcyBOb25lCisgICAgYXNzZXJ0ICJ0
cnVlIiA9PSBpbml0aWFsbHlTZWxlY3RlZC5nZXRfYXR0cmlidXRlKCJjaGVja2VkIikKKworICAg
IGluaXRpYWxseU5vdFNlbGVjdGVkLmNsaWNrKCkKKyAgICBhc3NlcnQgbmV2ZXJTZWxlY3RlZC5n
ZXRfYXR0cmlidXRlKCJzZWxlY3RlZCIpIGlzIE5vbmUKKyAgICBhc3NlcnQgInRydWUiID09IGlu
aXRpYWxseU5vdFNlbGVjdGVkLmdldF9hdHRyaWJ1dGUoImNoZWNrZWQiKQorICAgIGFzc2VydCBp
bml0aWFsbHlTZWxlY3RlZC5nZXRfYXR0cmlidXRlKCJjaGVja2VkIikgaXMgTm9uZQorCisKK2Rl
ZiB0ZXN0U2hvdWxkUmV0dXJuVGhlVmFsdWVPZlNlbGVjdGVkRm9yT3B0aW9uc0luU2VsZWN0c0V2
ZW5JZlRoZXlMYWNrVGhhdEF0dHJpYnV0ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJmb3JtUGFnZS5odG1sIikKKyAgICBzZWxlY3RCb3ggPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X3hwYXRoKCIvL3NlbGVjdFtAbmFtZT0nc2VsZWN0b21hdGljJ10iKQorICAgIG9wdGlvbnMgPSBz
ZWxlY3RCb3guZmluZF9lbGVtZW50c19ieV90YWdfbmFtZSgib3B0aW9uIikKKyAgICBvbmUgPSBv
cHRpb25zWzBdCisgICAgdHdvID0gb3B0aW9uc1sxXQorICAgIGFzc2VydCBvbmUuaXNfc2VsZWN0
ZWQoKQorICAgIGFzc2VydCBub3QgdHdvLmlzX3NlbGVjdGVkKCkKKyAgICBhc3NlcnQgInRydWUi
ID09IG9uZS5nZXRfYXR0cmlidXRlKCJzZWxlY3RlZCIpCisgICAgYXNzZXJ0IHR3by5nZXRfYXR0
cmlidXRlKCJzZWxlY3RlZCIpIGlzIE5vbmUKKworCitkZWYgdGVzdFNob3VsZFJldHVyblZhbHVl
T2ZDbGFzc0F0dHJpYnV0ZU9mQW5FbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoInhodG1sVGVzdC5odG1sIikKKyAgICBoZWFkaW5nID0gZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV94cGF0aCgiLy9oMSIpCisgICAgY2xhc3NuYW1lID0gaGVhZGluZy5nZXRfYXR0cmlidXRlKCJj
bGFzcyIpCisgICAgYXNzZXJ0ICJoZWFkZXIiID09IGNsYXNzbmFtZQorCisjIERpc2FibGVkIGR1
ZSB0byBpc3N1ZXMgd2l0aCBGcmFtZXMKKyMgZGVmIHRlc3RTaG91bGRSZXR1cm5WYWx1ZU9mQ2xh
c3NBdHRyaWJ1dGVPZkFuRWxlbWVudEFmdGVyU3dpdGNoaW5nSUZyYW1lKGRyaXZlciwgcGFnZXMp
OgorIyAgICBwYWdlcy5sb2FkKCJpZnJhbWVzLmh0bWwiKQorIyAgICBkcml2ZXIuc3dpdGNoX3Rv
LmZyYW1lKCJpZnJhbWUxIikKKyMKKyMgICAgd2FsbGFjZSA9IGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfeHBhdGgoIi8vZGl2W0BpZD0nd2FsbGFjZSddIikKKyMgICAgY2xhc3NuYW1lID0gd2FsbGFj
ZS5nZXRfYXR0cmlidXRlKCJjbGFzcyIpCisjICAgIGFzc2VydCAiZ3JvbWl0IiA9PSBjbGFzc25h
bWUKKworCitkZWYgdGVzdFNob3VsZFJldHVyblRoZUNvbnRlbnRzT2ZBVGV4dEFyZWFBc0l0c1Zh
bHVlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAg
IHZhbHVlID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgid2l0aFRleHQiKS5nZXRfYXR0cmli
dXRlKCJ2YWx1ZSIpCisgICAgYXNzZXJ0ICJFeGFtcGxlIHRleHQiID09IHZhbHVlCisKKworZGVm
IHRlc3RTaG91bGRSZXR1cm5UaGVDb250ZW50c09mQVRleHRBcmVhQXNJdHNWYWx1ZVdoZW5TZXRU
b05vbk5vcm1pbmFsVHJ1ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKyAgICBlID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgid2l0aFRleHQiKQor
ICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgiYXJndW1lbnRzWzBdLnZhbHVlID0gJ3RSdUUnIiwg
ZSkKKyAgICB2YWx1ZSA9IGUuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGFzc2VydCAidFJ1
RSIgPT0gdmFsdWUKKworCitkZWYgdGVzdFNob3VsZFRyZWF0UmVhZG9ubHlBc0FWYWx1ZShkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJyZWFkb25seSIpCisgICAgcmVhZE9ubHlB
dHRyaWJ1dGUgPSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInJlYWRvbmx5IikKKworICAgIHRleHRJ
bnB1dCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgieCIpCisgICAgbm90UmVhZE9ubHkg
PSB0ZXh0SW5wdXQuZ2V0X2F0dHJpYnV0ZSgicmVhZG9ubHkiKQorCisgICAgYXNzZXJ0IHJlYWRP
bmx5QXR0cmlidXRlICE9IG5vdFJlYWRPbmx5CisKKworZGVmIHRlc3RTaG91bGRHZXROdW1lcmlj
QXRyaWJ1dGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIndpdGhUZXh0IikKKyAg
ICBhc3NlcnQgIjUiID09IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgicm93cyIpCisKKworZGVmIHRl
c3RDYW5SZXR1cm5BVGV4dEFwcHJveGltYXRpb25PZlRoZVN0eWxlQXR0cmlidXRlKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHN0eWxl
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicmVkLWl0ZW0iKS5nZXRfYXR0cmlidXRlKCJz
dHlsZSIpCisgICAgYXNzZXJ0ICJiYWNrZ3JvdW5kLWNvbG9yIiBpbiBzdHlsZS5sb3dlcigpCisK
KworZGVmIHRlc3RTaG91bGRDb3JyZWN0bHlSZXBvcnRWYWx1ZU9mQ29sc3Bhbihkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJ0YWJsZXMuaHRtbCIpCisKKyAgICB0aDEgPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X2lkKCJ0aDEiKQorICAgIHRkMiA9IGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoInRkMiIpCisKKyAgICBhc3NlcnQgInRoMSIgPT0gdGgxLmdldF9hdHRyaWJ1dGUoImlk
IikKKyAgICBhc3NlcnQgIjMiID09IHRoMS5nZXRfYXR0cmlidXRlKCJjb2xzcGFuIikKKworICAg
IGFzc2VydCAidGQyIiA9PSB0ZDIuZ2V0X2F0dHJpYnV0ZSgiaWQiKQorICAgIGFzc2VydCAiMiIg
PT0gdGQyLmdldF9hdHRyaWJ1dGUoImNvbHNwYW4iKQorCisKK2RlZiB0ZXN0Q2FuUmV0cmlldmVU
aGVDdXJyZW50VmFsdWVPZkFUZXh0Rm9ybUZpZWxkX3RleHRJbnB1dChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgid29ya2luZyIpCisgICAgYXNzZXJ0ICIiID09IGVsZW1lbnQuZ2V0
X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJoZWxsbyB3b3JsZCIp
CisgICAgYXNzZXJ0ICJoZWxsbyB3b3JsZCIgPT0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1
ZSIpCisKKworZGVmIHRlc3RDYW5SZXRyaWV2ZVRoZUN1cnJlbnRWYWx1ZU9mQVRleHRGb3JtRmll
bGRfZW1haWxJbnB1dChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5o
dG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZW1haWwiKQor
ICAgIGFzc2VydCAiIiA9PSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKyAgICBlbGVt
ZW50LnNlbmRfa2V5cygiaGVsbG9AZXhhbXBsZS5jb20iKQorICAgIGFzc2VydCAiaGVsbG9AZXhh
bXBsZS5jb20iID09IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorCisKK2RlZiB0ZXN0
Q2FuUmV0cmlldmVUaGVDdXJyZW50VmFsdWVPZkFUZXh0Rm9ybUZpZWxkX3RleHRBcmVhKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJlbXB0eVRleHRBcmVhIikKKyAgICBhc3NlcnQg
IiIgPT0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisgICAgZWxlbWVudC5zZW5kX2tl
eXMoImhlbGxvIHdvcmxkIikKKyAgICBhc3NlcnQgImhlbGxvIHdvcmxkIiA9PSBlbGVtZW50Lmdl
dF9hdHRyaWJ1dGUoInZhbHVlIikKKworCitkZWYgdGVzdFNob3VsZFJldHVybk51bGxGb3JOb25Q
cmVzZW50Qm9vbGVhbkF0dHJpYnV0ZXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
Ym9vbGVhbkF0dHJpYnV0ZXMuaHRtbCIpCisgICAgZWxlbWVudDEgPSBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJ3b3JraW5nIikKKyAgICBhc3NlcnQgZWxlbWVudDEuZ2V0X2F0dHJpYnV0ZSgi
cmVxdWlyZWQiKSBpcyBOb25lCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2llCitkZWYgdGVzdFNo
b3VsZFJldHVyblRydWVGb3JQcmVzZW50Qm9vbGVhbkF0dHJpYnV0ZXMoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiYm9vbGVhbkF0dHJpYnV0ZXMuaHRtbCIpCisgICAgZWxlbWVudDEg
PSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJlbWFpbFJlcXVpcmVkIikKKyAgICBhc3NlcnQg
InRydWUiID09IGVsZW1lbnQxLmdldF9hdHRyaWJ1dGUoInJlcXVpcmVkIikKKyAgICBlbGVtZW50
MiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImVtcHR5VGV4dEFyZWFSZXF1aXJlZCIpCisg
ICAgYXNzZXJ0ICJ0cnVlIiA9PSBlbGVtZW50Mi5nZXRfYXR0cmlidXRlKCJyZXF1aXJlZCIpCisg
ICAgZWxlbWVudDMgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJpbnB1dFJlcXVpcmVkIikK
KyAgICBhc3NlcnQgInRydWUiID09IGVsZW1lbnQzLmdldF9hdHRyaWJ1dGUoInJlcXVpcmVkIikK
KyAgICBlbGVtZW50NCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInRleHRBcmVhUmVxdWly
ZWQiKQorICAgIGFzc2VydCAidHJ1ZSIgPT0gZWxlbWVudDQuZ2V0X2F0dHJpYnV0ZSgicmVxdWly
ZWQiKQorCisKK2RlZiB0ZXNTaG91bGRHZXRVbmljb2RlQ2hhcnNGcm9tQXR0cmlidXRlKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHRpdGxlID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgidnNlYXJjaEdhZGdldCIpLmdldF9hdHRyaWJ1dGUo
InRpdGxlIikKKyAgICBhc3NlcnQgJ0h2YWQgc1x4ZjhnZXIgZHU/JyA9PSB0aXRsZQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL2VsZW1lbnRfZXF1YWxpdHlfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZWxl
bWVudF9lcXVhbGl0eV90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZGE4YjMzNDM3NTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZWxlbWVudF9l
cXVhbGl0eV90ZXN0cy5weQpAQCAtMCwwICsxLDQzIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorCisKK2RlZiB0ZXN0U2FtZUVsZW1lbnRMb29r
ZWRVcERpZmZlcmVudFdheXNTaG91bGRCZUVxdWFsKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgYm9keSA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuVEFHX05BTUUsICJib2R5IikKKyAgICB4Ym9keSA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5
LlhQQVRILCAiLy9ib2R5IilbMF0KKworICAgIGFzc2VydCBib2R5ID09IHhib2R5CisKKworZGVm
IHRlc3REaWZmZXJlbnRFbGVtZW50c0FyZU5vdEVxdWFsKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgYm9keSA9IGRyaXZlci5maW5kX2VsZW1l
bnQoQnkuVEFHX05BTUUsICJib2R5IikKKyAgICBkaXYgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LlRBR19OQU1FLCAiZGl2IikKKworICAgIGFzc2VydCBib2R5ICE9IGRpdgorCisKK2RlZiB0ZXN0
U2FtZUVsZW1lbnRzRm91bmREaWZmZXJlbnRXYXlzU2hvdWxkTm90QmVEdXBsaWNhdGVkSW5BU2V0
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAg
Ym9keSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICJib2R5IikKKyAgICB4Ym9k
eSA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LlhQQVRILCAiLy9ib2R5IikKKyAgICBzID0gc2V0
KHhib2R5KQorICAgIHMuYWRkKGJvZHkpCisgICAgYXNzZXJ0IDEgPT0gbGVuKHMpCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vZXhhbXBsZTIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZXhhbXBsZTIucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMzYjUzZGQzMzhkCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL2V4YW1wbGUyLnB5CkBAIC0wLDAgKzEsMjggQEAKKyMgTGljZW5z
ZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisj
IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0Ug
ZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1h
dGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMg
dGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w
ICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4g
Y29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9m
IHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ
Q0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3Jl
ZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vu
c2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5U
SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxp
ZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5p
bmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitm
cm9tIGdvb2dsZV9vbmVfYm94IGltcG9ydCBHb29nbGVPbmVCb3gKKworCitkZWYgdGVzdFNlYXJj
aChkcml2ZXIpOgorICAgICIiIlRoaXMgZXhhbXBsZSBzaG93cyBob3cgdG8gdXNlIHRoZSBwYWdl
IG9iamVjdCBwYXR0ZXJuLgorCisgICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBw
YXR0ZXJuLCBzZWU6CisgICAgaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2VsZW5pdW0v
d2lraS9QYWdlT2JqZWN0cyIiIgorICAgIGdvb2dsZSA9IEdvb2dsZU9uZUJveChkcml2ZXIsICJo
dHRwOi8vd3d3Lmdvb2dsZS5jb20iKQorICAgIHJlcyA9IGdvb2dsZS5zZWFyY2hfZm9yKCJjaGVl
c2UiKQorICAgIGFzc2VydCByZXMubGlua19jb250YWluc19tYXRjaF9mb3IoIldpa2lwZWRpYSIp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vZXhlY3V0aW5nX2FzeW5jX2phdmFzY3JpcHRfdGVzdHMu
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vZXhlY3V0aW5nX2FzeW5jX2phdmFzY3JpcHRfdGVzdHMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZTZhNjYzMmMzCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL2V4ZWN1dGluZ19hc3luY19qYXZhc2NyaXB0X3Rlc3RzLnB5CkBA
IC0wLDAgKzEsMjA2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNl
cnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdy
ZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdv
cmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25l
cnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4g
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJ
UyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwor
IyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRp
b25zIGltcG9ydCBXZWJEcml2ZXJFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2Vw
dGlvbnMgaW1wb3J0IFRpbWVvdXRFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJl
bW90ZS53ZWJlbGVtZW50IGltcG9ydCBXZWJFbGVtZW50CisKKworZGVmIHRlc3RTaG91bGROb3RU
aW1lb3V0SWZDYWxsYmFja0ludm9rZWRJbW1lZGlhdGVseShkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJhamF4eV9wYWdlLmh0bWwiKQorICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRl
X2FzeW5jX3NjcmlwdCgiYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSgxMjMpOyIpCisg
ICAgYXNzZXJ0IHR5cGUocmVzdWx0KSA9PSBpbnQKKyAgICBhc3NlcnQgMTIzID09IHJlc3VsdAor
CisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9SZXR1cm5KYXZhc2NyaXB0UHJpbWl0aXZlc0Zyb21B
c3luY1NjcmlwdHNfTmVpdGhlck5vbmVOb3JVbmRlZmluZWQoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1sIikKKyAgICBhc3NlcnQgMTIzID09IGRyaXZlci5l
eGVjdXRlX2FzeW5jX3NjcmlwdCgiYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSgxMjMp
OyIpCisgICAgYXNzZXJ0ICJhYmMiID09IGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgiYXJn
dW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSgnYWJjJyk7IikKKyAgICBhc3NlcnQgbm90IGJv
b2woZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0
aCAtIDFdKGZhbHNlKTsiKSkKKyAgICBhc3NlcnQgYm9vbChkcml2ZXIuZXhlY3V0ZV9hc3luY19z
Y3JpcHQoImFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0odHJ1ZSk7IikpCisKKworZGVm
IHRlc3RTaG91bGRCZUFibGVUb1JldHVybkphdmFzY3JpcHRQcmltaXRpdmVzRnJvbUFzeW5jU2Ny
aXB0c19OdWxsQW5kVW5kZWZpbmVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFq
YXh5X3BhZ2UuaHRtbCIpCisgICAgYXNzZXJ0IGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgi
YXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXShudWxsKSIpIGlzIE5vbmUKKyAgICBhc3Nl
cnQgZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0
aCAtIDFdKCkiKSBpcyBOb25lCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1JldHVybkFuQXJy
YXlMaXRlcmFsRnJvbUFuQXN5bmNTY3JpcHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiYWpheHlfcGFnZS5odG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9hc3luY19z
Y3JpcHQoImFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0oW10pOyIpCisgICAgYXNzZXJ0
ICJFeHBlY3RlZCBub3QgdG8gYmUgbnVsbCEiLCByZXN1bHQgaXMgbm90IE5vbmUKKyAgICBhc3Nl
cnQgdHlwZShyZXN1bHQpID09IGxpc3QKKyAgICBhc3NlcnQgbGVuKHJlc3VsdCkgPT0gMAorCisK
K2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9SZXR1cm5BbkFycmF5T2JqZWN0RnJvbUFuQXN5bmNTY3Jp
cHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1sIikKKyAg
ICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoImFyZ3VtZW50c1thcmd1bWVu
dHMubGVuZ3RoIC0gMV0obmV3IEFycmF5KCkpOyIpCisgICAgYXNzZXJ0ICJFeHBlY3RlZCBub3Qg
dG8gYmUgbnVsbCEiLCByZXN1bHQgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQgdHlwZShyZXN1bHQp
ID09IGxpc3QKKyAgICBhc3NlcnQgbGVuKHJlc3VsdCkgPT0gMAorCisKK2RlZiB0ZXN0U2hvdWxk
QmVBYmxlVG9SZXR1cm5BcnJheXNPZlByaW1pdGl2ZXNGcm9tQXN5bmNTY3JpcHRzKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFqYXh5X3BhZ2UuaHRtbCIpCisKKyAgICByZXN1bHQg
PSBkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoCisgICAgICAgICJhcmd1bWVudHNbYXJndW1l
bnRzLmxlbmd0aCAtIDFdKFtudWxsLCAxMjMsICdhYmMnLCB0cnVlLCBmYWxzZV0pOyIpCisKKyAg
ICBhc3NlcnQgcmVzdWx0IGlzIG5vdCBOb25lCisgICAgYXNzZXJ0IHR5cGUocmVzdWx0KSA9PSBs
aXN0CisgICAgYXNzZXJ0IG5vdCBib29sKHJlc3VsdC5wb3AoKSkKKyAgICBhc3NlcnQgYm9vbChy
ZXN1bHQucG9wKCkpCisgICAgYXNzZXJ0ICJhYmMiID09IHJlc3VsdC5wb3AoKQorICAgIGFzc2Vy
dCAxMjMgPT0gcmVzdWx0LnBvcCgpCisgICAgYXNzZXJ0IHJlc3VsdC5wb3AoKSBpcyBOb25lCisg
ICAgYXNzZXJ0IGxlbihyZXN1bHQpID09IDAKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvUmV0
dXJuV2ViRWxlbWVudHNGcm9tQXN5bmNTY3JpcHRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImFqYXh5X3BhZ2UuaHRtbCIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9h
c3luY19zY3JpcHQoImFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0oZG9jdW1lbnQuYm9k
eSk7IikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIFdlYkVsZW1lbnQpCisgICAgYXNz
ZXJ0ICJib2R5IiA9PSByZXN1bHQudGFnX25hbWUubG93ZXIoKQorCisKK2RlZiB0ZXN0U2hvdWxk
QmVBYmxlVG9SZXR1cm5BcnJheXNPZldlYkVsZW1lbnRzRnJvbUFzeW5jU2NyaXB0cyhkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhamF4eV9wYWdlLmh0bWwiKQorCisgICAgcmVzdWx0
ID0gZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KAorICAgICAgICAiYXJndW1lbnRzW2FyZ3Vt
ZW50cy5sZW5ndGggLSAxXShbZG9jdW1lbnQuYm9keSwgZG9jdW1lbnQuYm9keV0pOyIpCisgICAg
YXNzZXJ0IHJlc3VsdCBpcyBub3QgTm9uZQorICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gbGlz
dAorCisgICAgbGlzdF8gPSByZXN1bHQKKyAgICBhc3NlcnQgMiA9PSBsZW4obGlzdF8pCisgICAg
YXNzZXJ0IGlzaW5zdGFuY2UobGlzdF9bMF0sIFdlYkVsZW1lbnQpCisgICAgYXNzZXJ0IGlzaW5z
dGFuY2UobGlzdF9bMV0sIFdlYkVsZW1lbnQpCisgICAgYXNzZXJ0ICJib2R5IiA9PSBsaXN0X1sw
XS50YWdfbmFtZQorICAgICMgYXNzZXJ0IGxpc3RfWzBdID09IGxpc3RfWzFdCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsX3BoYW50b21qcyhydW49RmFsc2UpCitkZWYgdGVzdFNob3VsZFRpbWVvdXRJ
ZlNjcmlwdERvZXNOb3RJbnZva2VDYWxsYmFjayhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJhamF4eV9wYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhj
ZXB0aW9uKToKKyAgICAgICAgIyBTY3JpcHQgaXMgZXhwZWN0ZWQgdG8gYmUgYXN5bmMgYW5kIGV4
cGxpY2l0bHkgY2FsbGJhY2ssIHNvIHRoaXMgc2hvdWxkIHRpbWVvdXQuCisgICAgICAgIGRyaXZl
ci5leGVjdXRlX2FzeW5jX3NjcmlwdCgicmV0dXJuIDEgKyAyOyIpCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsX3BoYW50b21qcyhydW49RmFsc2UpCitkZWYgdGVzdFNob3VsZFRpbWVvdXRJZlNjcmlw
dERvZXNOb3RJbnZva2VDYWxsYmFja1dpdGhBWmVyb1RpbWVvdXQoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
VGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgi
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7fSwgMCk7IikKKworCitkZWYgdGVzdFNob3Vs
ZE5vdFRpbWVvdXRJZlNjcmlwdENhbGxzYmFja0luc2lkZUFaZXJvVGltZW91dChkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJhamF4eV9wYWdlLmh0bWwiKQorICAgIGRyaXZlci5leGVj
dXRlX2FzeW5jX3NjcmlwdCgKKyAgICAgICAgIiIidmFyIGNhbGxiYWNrID0gYXJndW1lbnRzW2Fy
Z3VtZW50cy5sZW5ndGggLSAxXTsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7IGNhbGxiYWNrKDEyMyk7IH0sIDApIiIiKQorCisKK2RlZiB0ZXN0U2hvdWxkVGltZW91dElm
U2NyaXB0RG9lc05vdEludm9rZUNhbGxiYWNrV2l0aExvbmdUaW1lb3V0KGRyaXZlciwgcGFnZXMp
OgorICAgIGRyaXZlci5zZXRfc2NyaXB0X3RpbWVvdXQoMC41KQorICAgIHBhZ2VzLmxvYWQoImFq
YXh5X3BhZ2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24p
OgorICAgICAgICBkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoCisgICAgICAgICAgICAiIiJ2
YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOworICAgICAgICAg
ICAgd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2ssIDE1MDApOyIiIikKKworCitkZWYgdGVzdFNo
b3VsZERldGVjdFBhZ2VMb2Fkc1doaWxlV2FpdGluZ09uQW5Bc3luY1NjcmlwdEFuZFJldHVybkFu
RXJyb3IoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1sIikK
KyAgICBkcml2ZXIuc2V0X3NjcmlwdF90aW1lb3V0KDAuMSkKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAgICAgdXJsID0gcGFnZXMudXJsKCJkeW5hbWlj
Lmh0bWwiKQorICAgICAgICBkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoIndpbmRvdy5sb2Nh
dGlvbiA9ICd7MH0nOyIuZm9ybWF0KHVybCkpCisKKworZGVmIHRlc3RTaG91bGRDYXRjaEVycm9y
c1doZW5FeGVjdXRpbmdJbml0aWFsU2NyaXB0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImFqYXh5X3BhZ2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFdlYkRyaXZlckV4
Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgidGhyb3cgRXJy
b3IoJ3lvdSBzaG91bGQgY2F0Y2ggdGhpcyEnKTsiKQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxl
VG9FeGVjdXRlQXN5bmNocm9ub3VzU2NyaXB0cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJhamF4eV9wYWdlLmh0bWwiKQorCisgICAgdHlwZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50
KGJ5PUJ5Lk5BTUUsIHZhbHVlPSJ0eXBlciIpCisgICAgdHlwZXIuc2VuZF9rZXlzKCJib2IiKQor
ICAgIGFzc2VydCAiYm9iIiA9PSB0eXBlci5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisKKyAgICBk
cml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icmVkIikuY2xpY2soKQorICAgIGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuTkFNRSwgdmFsdWU9InN1Ym1pdCIpLmNsaWNrKCkKKwor
ICAgIGFzc2VydCAxID09IGxlbihkcml2ZXIuZmluZF9lbGVtZW50cyhieT1CeS5UQUdfTkFNRSwg
dmFsdWU9J2RpdicpKSwgXAorICAgICAgICAiVGhlcmUgc2hvdWxkIG9ubHkgYmUgMSBESVYgYXQg
dGhpcyBwb2ludCwgd2hpY2ggaXMgdXNlZCBmb3IgdGhlIGJ1dHRlciBtZXNzYWdlIgorICAgIGRy
aXZlci5zZXRfc2NyaXB0X3RpbWVvdXQoMTApCisgICAgdGV4dCA9IGRyaXZlci5leGVjdXRlX2Fz
eW5jX3NjcmlwdCgKKyAgICAgICAgIiIidmFyIGNhbGxiYWNrID0gYXJndW1lbnRzW2FyZ3VtZW50
cy5sZW5ndGggLSAxXTsKKyAgICAgICAgd2luZG93LnJlZ2lzdGVyTGlzdGVuZXIoYXJndW1lbnRz
W2FyZ3VtZW50cy5sZW5ndGggLSAxXSk7IiIiKQorICAgIGFzc2VydCAiYm9iIiA9PSB0ZXh0Cisg
ICAgYXNzZXJ0ICIiID09IHR5cGVyLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKworICAgIGFzc2Vy
dCAyID09IGxlbihkcml2ZXIuZmluZF9lbGVtZW50cyhieT1CeS5UQUdfTkFNRSwgdmFsdWU9J2Rp
dicpKSwgXAorICAgICAgICAiVGhlcmUgc2hvdWxkIGJlIDEgRElWIChmb3IgdGhlIGJ1dHRlciBt
ZXNzYWdlKSArIDEgRElWIChmb3IgdGhlIG5ldyBsYWJlbCkiCisKKworZGVmIHRlc3RTaG91bGRC
ZUFibGVUb1Bhc3NNdWx0aXBsZUFyZ3VtZW50c1RvQXN5bmNTY3JpcHRzKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImFqYXh5X3BhZ2UuaHRtbCIpCisgICAgcmVzdWx0ID0gZHJpdmVy
LmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCIiIgorICAgICAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxl
bmd0aCAtIDFdKGFyZ3VtZW50c1swXSArIGFyZ3VtZW50c1sxXSk7IiIiLCAxLCAyKQorICAgIGFz
c2VydCAzID09IHJlc3VsdAorCisjIFRPRE8gRGF2aWRCdXJucyBEaXNhYmxlZCB0aWxsIEphdmEg
V2ViU2VydmVyIGlzIHVzZWQKKyMgZGVmIHRlc3RTaG91bGRCZUFibGVUb01ha2VYTUxIdHRwUmVx
dWVzdHNBbmRXYWl0Rm9yVGhlUmVzcG9uc2UoZHJpdmVyLCBwYWdlcyk6CisjICAgIHNjcmlwdCA9
ICIiIgorIyAgICAgICAgdmFyIHVybCA9IGFyZ3VtZW50c1swXTsKKyMgICAgICAgIHZhciBjYWxs
YmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CisjICAgICAgICAvLyBBZGFw
dGVkIGZyb20gaHR0cDovL3d3dy5xdWlya3Ntb2RlLm9yZy9qcy94bWxodHRwLmh0bWwKKyMgICAg
ICAgIHZhciBYTUxIdHRwRmFjdG9yaWVzID0gWworIyAgICAgICAgICBmdW5jdGlvbiAoKSByZXR1
cm4gbmV3IFhNTEh0dHBSZXF1ZXN0KCksCisjICAgICAgICAgIGZ1bmN0aW9uICgpIHJldHVybiBu
ZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKSwKKyMgICAgICAgICAgZnVuY3Rpb24g
KCkgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDMuWE1MSFRUUCcpLAorIyAgICAgICAg
ICBmdW5jdGlvbiAoKSByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQ
JykKKyMgICAgICAgIF07CisjICAgICAgICB2YXIgeGhyID0gZmFsc2U7CisjICAgICAgICB3aGls
ZSAoIXhociAmJiBYTUxIdHRwRmFjdG9yaWVzLmxlbmd0aCkKKyMgICAgICAgICAgdHJ5eworIyAg
ICAgICAgICAgIHhociA9IFhNTEh0dHBGYWN0b3JpZXMuc2hpZnQoKS5jYWxsKCk7CisjICAgICAg
ICAgICB9Y2F0Y2ggKGUpCisjCisjICAgICAgICBpZiAoIXhocikgdGhyb3cgRXJyb3IoJ3VuYWJs
ZSB0byBjcmVhdGUgWEhSIG9iamVjdCcpOworIyAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwg
dHJ1ZSk7CisjICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKQorIyAg
ICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT0gNCkgY2FsbGJhY2soeGhyLnJlc3BvbnNlVGV4
dCk7CisjCisjICAgICAgICB4aHIuc2VuZCgnJyk7IiIiICMgZW1wdHkgc3RyaW5nIHRvIHN0b3Ag
ZmlyZWZveCAzIGZyb20gY2hva2luZworIworIyAgICBwYWdlcy5sb2FkKCJhamF4eV9wYWdlLmh0
bWwiKQorIyAgICBkcml2ZXIuc2V0X3NjcmlwdF90aW1lb3V0KDMpCisjICAgIHJlc3BvbnNlID0g
ZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNjcmlwdCwgcGFnZXMuc2xlZXBpbmdQYWdlICsg
Ij90aW1lPTIiKQorIyAgICBodG0gPSAiPGh0bWw+PGhlYWQ+PHRpdGxlPkRvbmU8L3RpdGxlPjwv
aGVhZD48Ym9keT5TbGVwdCBmb3IgMnM8L2JvZHk+PC9odG1sPiIKKyMgICAgYXNzZXJ0IHJlc3Bv
bnNlLnN0cmlwKCkgPT0gaHRtCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZXhlY3V0aW5nX2phdmFz
Y3JpcHRfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZXhlY3V0aW5nX2phdmFzY3JpcHRfdGVzdHMucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFhMTkxODNkNjRhCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2V4ZWN1dGluZ19qYXZhc2NyaXB0X3Rlc3RzLnB5CkBA
IC0wLDAgKzEsMjgyIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNl
cnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdy
ZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdv
cmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25l
cnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4g
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJ
UyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwor
IyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNv
bW1vbi5leGNlcHRpb25zIGltcG9ydCBXZWJEcml2ZXJFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0u
d2ViZHJpdmVyLnJlbW90ZS53ZWJlbGVtZW50IGltcG9ydCBXZWJFbGVtZW50CisKK3RyeToKKyAg
ICBzdHIgPSB1bmljb2RlCitleGNlcHQgTmFtZUVycm9yOgorICAgIHBhc3MKKworCitkZWYgdGVz
dFNob3VsZEJlQWJsZVRvRXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1cm5BU3RyaW5nKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHJl
c3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGRvY3VtZW50LnRpdGxlIikKKwor
ICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gc3RyLCAiVGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBp
cyAlcyIgJSB0eXBlKHJlc3VsdCkKKyAgICBhc3NlcnQgIlhIVE1MIFRlc3QgUGFnZSIgPT0gcmVz
dWx0CisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVTaW1wbGVKYXZhc2NyaXB0QW5k
UmV0dXJuQW5JbnRlZ2VyKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVs
ZW1lbnRzLmh0bWwiKQorICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJu
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCdjaGVja3knKS5sZW5ndGgiKQorCisgICAgYXNz
ZXJ0IHR5cGUocmVzdWx0KSA9PSBpbnQKKyAgICBhc3NlcnQgaW50KHJlc3VsdCkgPiAxCisKKwor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVTaW1wbGVKYXZhc2NyaXB0QW5kUmV0dXJuQVdl
YkVsZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwi
KQorCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2lkMScpIikKKworICAgIGFzc2VydCByZXN1bHQgaXMgbm90IE5vbmUK
KyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIFdlYkVsZW1lbnQpCisgICAgYXNzZXJ0ICJh
IiA9PSByZXN1bHQudGFnX25hbWUubG93ZXIoKQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9F
eGVjdXRlU2ltcGxlSmF2YXNjcmlwdEFuZFJldHVybkFMaXN0T2ZXZWJFbGVtZW50cyhkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisKKyAgICByZXN1bHQg
PSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCdkaXYubmF2aWdhdGlvbiBhJykiKQorCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBub3QgTm9uZQor
ICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgYWxsKGlzaW5z
dGFuY2UoaXRlbSwgV2ViRWxlbWVudCkgZm9yIGl0ZW0gaW4gcmVzdWx0KQorICAgIGFzc2VydCBh
bGwoJ2EnID09IGl0ZW0udGFnX25hbWUubG93ZXIoKSBmb3IgaXRlbSBpbiByZXN1bHQpCisKKwor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVTaW1wbGVKYXZhc2NyaXB0QW5kUmV0dXJuV2Vi
RWxlbWVudHNJbnNpZGVBTGlzdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRt
bFRlc3QuaHRtbCIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBbZG9jdW1lbnQuYm9keV0iKQorCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBub3QgTm9uZQorICAg
IGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShy
ZXN1bHRbMF0sIFdlYkVsZW1lbnQpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVT
aW1wbGVKYXZhc2NyaXB0QW5kUmV0dXJuV2ViRWxlbWVudHNJbnNpZGVBTmVzdGVkTGlzdChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisKKyAgICByZXN1
bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBbZG9jdW1lbnQuYm9keSwgW2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpZDEnKV1dIikKKworICAgIGFzc2VydCByZXN1bHQgaXMgbm90
IE5vbmUKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpCisgICAgYXNzZXJ0IGlz
aW5zdGFuY2UocmVzdWx0WzBdLCBXZWJFbGVtZW50KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJl
c3VsdFsxXVswXSwgV2ViRWxlbWVudCkKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvRXhlY3V0
ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1cm5XZWJFbGVtZW50c0luc2lkZUFEaWN0KGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHJlc3VsdCA9
IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHtlbDE6IGRvY3VtZW50LmJvZHl9IikKKwor
ICAgIGFzc2VydCByZXN1bHQgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1
bHQsIGRpY3QpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LmdldCgnZWwxJyksIFdlYkVs
ZW1lbnQpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVTaW1wbGVKYXZhc2NyaXB0
QW5kUmV0dXJuV2ViRWxlbWVudHNJbnNpZGVBTmVzdGVkRGljdChkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhl
Y3V0ZV9zY3JpcHQoInJldHVybiB7ZWwxOiBkb2N1bWVudC5ib2R5LCAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJuZXN0ZWQ6IHtlbDI6IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpZDEnKX19IikKKworICAgIGFzc2VydCByZXN1bHQgaXMgbm90IE5vbmUKKyAgICBhc3Nl
cnQgaXNpbnN0YW5jZShyZXN1bHQsIGRpY3QpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0
LmdldCgnZWwxJyksIFdlYkVsZW1lbnQpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0Lmdl
dCgnbmVzdGVkJykuZ2V0KCdlbDInKSwgV2ViRWxlbWVudCkKKworCitkZWYgdGVzdFNob3VsZEJl
QWJsZVRvRXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1cm5XZWJFbGVtZW50c0luc2lkZUFM
aXN0SW5zaWRlQURpY3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0
Lmh0bWwiKQorCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4ge2Vs
MTogW2RvY3VtZW50LmJvZHldfSIpCisKKyAgICBhc3NlcnQgcmVzdWx0IGlzIG5vdCBOb25lCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBkaWN0KQorICAgIGFzc2VydCBpc2luc3RhbmNl
KHJlc3VsdC5nZXQoJ2VsMScpLCBsaXN0KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdC5n
ZXQoJ2VsMScpWzBdLCBXZWJFbGVtZW50KQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9FeGVj
dXRlU2ltcGxlSmF2YXNjcmlwdEFuZFJldHVybkFCb29sZWFuKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIHRydWUiKQorCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBub3QgTm9u
ZQorICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gYm9vbAorICAgIGFzc2VydCBib29sKHJlc3Vs
dCkKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvRXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRB
U3RyaW5nc0FycmF5KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQ
YWdlLmh0bWwiKQorICAgIGV4cGVjdGVkUmVzdWx0ID0gW10KKyAgICBleHBlY3RlZFJlc3VsdC5h
cHBlbmQoInplcm8iKQorICAgIGV4cGVjdGVkUmVzdWx0LmFwcGVuZCgib25lIikKKyAgICBleHBl
Y3RlZFJlc3VsdC5hcHBlbmQoInR3byIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2Ny
aXB0KAorICAgICAgICAicmV0dXJuIFsnemVybycsICdvbmUnLCAndHdvJ10iKQorCisgICAgYXNz
ZXJ0IGV4cGVjdGVkUmVzdWx0ID09IHJlc3VsdAorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9F
eGVjdXRlU2ltcGxlSmF2YXNjcmlwdEFuZFJldHVybkFuQXJyYXkoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZXhwZWN0ZWRSZXN1bHQg
PSBbXQorICAgIGV4cGVjdGVkUmVzdWx0LmFwcGVuZCgiemVybyIpCisgICAgc3ViTGlzdCA9IFtd
CisgICAgc3ViTGlzdC5hcHBlbmQoVHJ1ZSkKKyAgICBzdWJMaXN0LmFwcGVuZChGYWxzZSkKKyAg
ICBleHBlY3RlZFJlc3VsdC5hcHBlbmQoc3ViTGlzdCkKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhl
Y3V0ZV9zY3JpcHQoInJldHVybiBbJ3plcm8nLCBbdHJ1ZSwgZmFsc2VdXSIpCisgICAgYXNzZXJ0
IHJlc3VsdCBpcyBub3QgTm9uZQorICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gbGlzdAorICAg
IGFzc2VydCBleHBlY3RlZFJlc3VsdCA9PSByZXN1bHQKKworCitkZWYgdGVzdFBhc3NpbmdBbmRS
ZXR1cm5pbmdBbkludFNob3VsZFJldHVybkFXaG9sZU51bWJlcihkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBleHBlY3RlZFJlc3VsdCA9
IDEKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNb
MF0iLCBleHBlY3RlZFJlc3VsdCkKKyAgICBhc3NlcnQgdHlwZShyZXN1bHQpID09IGludAorICAg
IGFzc2VydCBleHBlY3RlZFJlc3VsdCA9PSByZXN1bHQKKworCitkZWYgdGVzdFBhc3NpbmdBbmRS
ZXR1cm5pbmdBRG91YmxlU2hvdWxkUmV0dXJuQURlY2ltYWwoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZXhwZWN0ZWRSZXN1bHQgPSAx
LjIKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNb
MF0iLCBleHBlY3RlZFJlc3VsdCkKKyAgICBhc3NlcnQgdHlwZShyZXN1bHQpID09IGZsb2F0Cisg
ICAgYXNzZXJ0IGV4cGVjdGVkUmVzdWx0ID09IHJlc3VsdAorCisKK2RlZiB0ZXN0U2hvdWxkVGhy
b3dBbkV4Y2VwdGlvbldoZW5UaGVKYXZhc2NyaXB0SXNCYWQoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhXZWJE
cml2ZXJFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBz
cXVpZ2dsZSgpIikKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2FsbEZ1bmN0aW9uc0RlZmlu
ZWRPblRoZVBhZ2UoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBh
Z2UuaHRtbCIpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJkaXNwbGF5TWVzc2FnZSgnSSBs
aWtlIGNoZWVzZScpIikKKyAgICB0ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicmVz
dWx0IikudGV4dAorICAgIGFzc2VydCAiSSBsaWtlIGNoZWVzZSIgPT0gdGV4dC5zdHJpcCgpCisK
KworZGVmIHRlc3RTaG91bGRCZUFibGVUb1Bhc3NBU3RyaW5nQW5Bc0FyZ3VtZW50KGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHZhbHVl
ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAicmV0dXJuIGFyZ3VtZW50c1swXSA9
PSAnZmlzaCcgPyAnZmlzaCcgOiAnbm90IGZpc2gnIiwgImZpc2giKQorICAgIGFzc2VydCAiZmlz
aCIgPT0gdmFsdWUKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvUGFzc0FCb29sZWFuQW5Bc0Fy
Z3VtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIHZhbHVlID0gYm9vbChkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1
bWVudHNbMF0gPT0gdHJ1ZSIsIFRydWUpKQorICAgIGFzc2VydCB2YWx1ZQorCisKK2RlZiB0ZXN0
U2hvdWxkQmVBYmxlVG9QYXNzQU51bWJlckFuQXNBcmd1bWVudChkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICB2YWx1ZSA9IGJvb2woZHJp
dmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdID09IDEgPyB0cnVlIDogZmFs
c2UiLCAxKSkKKyAgICBhc3NlcnQgdmFsdWUKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvUGFz
c0FXZWJFbGVtZW50QXNBcmd1bWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJq
YXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBidXR0b24gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X2lkKCJwbGFpbkJ1dHRvbiIpCisgICAgdmFsdWUgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCisg
ICAgICAgICJhcmd1bWVudHNbMF1bJ2ZsaWJibGUnXSA9IGFyZ3VtZW50c1swXS5nZXRBdHRyaWJ1
dGUoJ2lkJyk7IHJldHVybiBhcmd1bWVudHNbMF1bJ2ZsaWJibGUnXSIsCisgICAgICAgIGJ1dHRv
bikKKyAgICBhc3NlcnQgInBsYWluQnV0dG9uIiA9PSB2YWx1ZQorCisKK2RlZiB0ZXN0U2hvdWxk
QmVBYmxlVG9QYXNzQW5BcnJheUFzQXJndW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgYXJyYXkgPSBbInplcm8iLCAxLCBUcnVl
LCAzLjE0MTU5XQorICAgIGxlbmd0aCA9IGludChkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBhcmd1bWVudHNbMF0ubGVuZ3RoIiwgYXJyYXkpKQorICAgIGFzc2VydCBsZW4oYXJyYXkpID09
IGxlbmd0aAorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9QYXNzQUNvbGxlY3Rpb25Bc0FyZ3Vt
ZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwi
KQorICAgIGNvbGxlY3Rpb24gPSBbXQorICAgIGNvbGxlY3Rpb24uYXBwZW5kKCJDaGVkZGFyIikK
KyAgICBjb2xsZWN0aW9uLmFwcGVuZCgiQnJpZSIpCisgICAgY29sbGVjdGlvbi5hcHBlbmQoNykK
KyAgICBsZW5ndGggPSBpbnQoZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRz
WzBdLmxlbmd0aCIsIGNvbGxlY3Rpb24pKQorICAgIGFzc2VydCBsZW4oY29sbGVjdGlvbikgPT0g
bGVuZ3RoCisKKyAgICBjb2xsZWN0aW9uID0gW10KKyAgICBjb2xsZWN0aW9uLmFwcGVuZCgiR291
ZGEiKQorICAgIGNvbGxlY3Rpb24uYXBwZW5kKCJTdGlsdG9uIikKKyAgICBjb2xsZWN0aW9uLmFw
cGVuZCgiU3RpbHRvbiIpCisgICAgY29sbGVjdGlvbi5hcHBlbmQoVHJ1ZSkKKyAgICBsZW5ndGgg
PSBpbnQoZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLmxlbmd0aCIs
IGNvbGxlY3Rpb24pKQorICAgIGFzc2VydCBsZW4oY29sbGVjdGlvbikgPT0gbGVuZ3RoCisKKwor
ZGVmIHRlc3RTaG91bGRUaHJvd0FuRXhjZXB0aW9uSWZBbkFyZ3VtZW50SXNOb3RWYWxpZChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmV4ZWN1dGVfc2Ny
aXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdIiwgZHJpdmVyKQorCisKK2RlZiB0ZXN0U2hvdWxkQmVB
YmxlVG9QYXNzSW5Nb3JlVGhhbk9uZUFyZ3VtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRl
X3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXSArIGFyZ3VtZW50c1sxXSIsICJvbmUiLCAidHdv
IikKKyAgICBhc3NlcnQgIm9uZXR3byIgPT0gcmVzdWx0CisKKworZGVmIHRlc3RKYXZhc2NyaXB0
U3RyaW5nSGFuZGxpbmdTaG91bGRXb3JrQXNFeHBlY3RlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICB2YWx1ZSA9IGRyaXZlci5leGVj
dXRlX3NjcmlwdCgicmV0dXJuICcnIikKKyAgICBhc3NlcnQgIiIgPT0gdmFsdWUKKworICAgIHZh
bHVlID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gdW5kZWZpbmVkIikKKyAgICBhc3Nl
cnQgdmFsdWUgaXMgTm9uZQorCisgICAgdmFsdWUgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiAnICciKQorICAgIGFzc2VydCAiICIgPT0gdmFsdWUKKworCitkZWYgdGVzdFNob3VsZEJl
QWJsZVRvQ3JlYXRlQVBlcnNpc3RlbnRWYWx1ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoImRvY3VtZW50
LmFsZXJ0cyA9IFtdIikKKyAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoImRvY3VtZW50LmFsZXJ0
cy5wdXNoKCdoZWxsbyB3b3JsZCcpIikKKyAgICB0ZXh0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4gZG9jdW1lbnQuYWxlcnRzLnNoaWZ0KCkiKQorICAgIGFzc2VydCAiaGVsbG8gd29y
bGQiID09IHRleHQKKworCitkZWYgdGVzdENhblBhc3NBRGljdGlvbmFyeUFzQVBhcmFtZXRlcihk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIG51
bXMgPSBbMSwgMl0KKyAgICBhcmdzID0geyJiYXIiOiAidGVzdCIsICJmb28iOiBudW1zfQorICAg
IHJlcyA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXVsnZm9vJ11b
MV0iLCBhcmdzKQorICAgIGFzc2VydCAyID09IHJlcworCisKK2RlZiB0ZXN0Q2FuUGFzc0FOb25l
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAg
cmVzID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdID09PSBudWxs
IiwgTm9uZSkKKyAgICBhc3NlcnQgcmVzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZm9ybV9oYW5k
bGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mb3JtX2hhbmRsaW5nX3Rlc3RzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kZWVhY2I5YzM5NwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9mb3JtX2hhbmRsaW5nX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMjM1IEBA
CisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVu
ZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0
aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZD
IGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu
IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhP
VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3Vh
Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGlj
ZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25z
IGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNl
cHRpb25zIGltcG9ydCBXZWJEcml2ZXJFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVy
LnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKK2Zyb20gc2VsZW5pdW0u
d2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZlcldhaXQKKworCitkZWYgdGVzdFNo
b3VsZENsaWNrT25TdWJtaXRJbnB1dEVsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInN1
Ym1pdEJ1dHRvbiIpLmNsaWNrKCkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwo
RUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisKKworZGVmIHRlc3RDbGlja2luZ09uVW5j
bGlja2FibGVFbGVtZW50c0RvZXNOb3RoaW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8v
Ym9keSIpLmNsaWNrKCkKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tJbWFnZUJ1dHRv
bnMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAg
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiaW1hZ2VCdXR0b24iKS5jbGljaygpCisgICAgV2Vi
RHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIp
KQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9TdWJtaXRGb3Jtcyhkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X25hbWUoImxvZ2luIikuc3VibWl0KCkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMyku
dW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisKKworZGVmIHRlc3RTaG91bGRT
dWJtaXRBRm9ybVdoZW5BbnlJbnB1dEVsZW1lbnRXaXRoaW5UaGF0Rm9ybUlzU3VibWl0dGVkKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfaWQoImNoZWNreSIpLnN1Ym1pdCgpCisgICAgV2ViRHJpdmVyV2Fp
dChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorCisKK2Rl
ZiB0ZXN0U2hvdWxkU3VibWl0QUZvcm1XaGVuQW55RWxlbWVudFdpaGluVGhhdEZvcm1Jc1N1Ym1p
dHRlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAg
ICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2Zvcm0vcCIpLnN1Ym1pdCgpCisgICAg
V2ViRHJpdmVyV2FpdChkcml2ZXIsIDUpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVy
ZSIpKQorCisKK2RlZiB0ZXN0U2hvdWxkTm90QmVBYmxlVG9TdWJtaXRBRm9ybVRoYXREb2VzTm90
RXhpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInRoZXJlIGlzIG5vIHNwb29uIikuc3VibWl0KCkK
KworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvRW50ZXJUZXh0SW50b0FUZXh0QXJlYUJ5U2V0dGlu
Z0l0c1ZhbHVlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdl
Lmh0bWwiKQorICAgIHRleHRhcmVhID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgia2V5VXBB
cmVhIikKKyAgICBjaGVlc2V5ID0gIkJyaWUgYW5kIGNoZWRkYXIiCisgICAgdGV4dGFyZWEuc2Vu
ZF9rZXlzKGNoZWVzZXkpCisgICAgYXNzZXJ0IHRleHRhcmVhLmdldF9hdHRyaWJ1dGUoInZhbHVl
IikgPT0gY2hlZXNleQorCisKK2RlZiB0ZXN0U2hvdWxkRW50ZXJEYXRhSW50b0Zvcm1GaWVsZHMo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVs
ZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2Zvcm1bQG5hbWU9J3NvbWVG
b3JtJ10vaW5wdXRbQGlkPSd1c2VybmFtZSddIikKKyAgICBvcmlnaW5hbFZhbHVlID0gZWxlbWVu
dC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisgICAgYXNzZXJ0IG9yaWdpbmFsVmFsdWUgPT0gImNo
YW5nZSIKKworICAgIGVsZW1lbnQuY2xlYXIoKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJzb21l
IHRleHQiKQorCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8v
Zm9ybVtAbmFtZT0nc29tZUZvcm0nXS9pbnB1dFtAaWQ9J3VzZXJuYW1lJ10iKQorICAgIG5ld0Zv
cm1WYWx1ZSA9IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGFzc2VydCBuZXdG
b3JtVmFsdWUgPT0gInNvbWUgdGV4dCIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvU2VsZWN0
QUNoZWNrQm94KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwi
KQorICAgIGNoZWNrYm94ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2hlY2t5IikKKyAg
ICBhc3NlcnQgY2hlY2tib3guaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorICAgIGNoZWNrYm94LmNs
aWNrKCkKKyAgICBhc3NlcnQgY2hlY2tib3guaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisgICAgY2hl
Y2tib3guY2xpY2soKQorICAgIGFzc2VydCBjaGVja2JveC5pc19zZWxlY3RlZCgpIGlzIEZhbHNl
CisKKworZGVmIHRlc3RTaG91bGRUb2dnbGVUaGVDaGVja2VkU3RhdGVPZkFDaGVja2JveChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBjaGVja2Jv
eCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNoZWNreSIpCisgICAgYXNzZXJ0IGNoZWNr
Ym94LmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKyAgICBjaGVja2JveC5jbGljaygpCisgICAgYXNz
ZXJ0IGNoZWNrYm94LmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQorICAgIGNoZWNrYm94LmNsaWNrKCkK
KyAgICBhc3NlcnQgY2hlY2tib3guaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorCisKK2RlZiB0ZXN0
VG9nZ2xpbmdBQ2hlY2tib3hTaG91bGRSZXR1cm5JdHNDdXJyZW50U3RhdGUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgY2hlY2tib3ggPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjaGVja3kiKQorICAgIGFzc2VydCBjaGVja2JveC5pc19z
ZWxlY3RlZCgpIGlzIEZhbHNlCisgICAgY2hlY2tib3guY2xpY2soKQorICAgIGFzc2VydCBjaGVj
a2JveC5pc19zZWxlY3RlZCgpIGlzIFRydWUKKyAgICBjaGVja2JveC5jbGljaygpCisgICAgYXNz
ZXJ0IGNoZWNrYm94LmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKworCitkZWYgdGVzdFNob3VsZEJl
QWJsZVRvU2VsZWN0QVJhZGlvQnV0dG9uKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
ImZvcm1QYWdlLmh0bWwiKQorICAgIHJhZGlvQnV0dG9uID0gZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9pZCgicGVhcyIpCisgICAgYXNzZXJ0IHJhZGlvQnV0dG9uLmlzX3NlbGVjdGVkKCkgaXMgRmFs
c2UKKyAgICByYWRpb0J1dHRvbi5jbGljaygpCisgICAgYXNzZXJ0IHJhZGlvQnV0dG9uLmlzX3Nl
bGVjdGVkKCkgaXMgVHJ1ZQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9TZWxlY3RBUmFkaW9C
dXR0b25CeUNsaWNraW5nT25JdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKyAgICByYWRpb0J1dHRvbiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
InBlYXMiKQorICAgIGFzc2VydCByYWRpb0J1dHRvbi5pc19zZWxlY3RlZCgpIGlzIEZhbHNlCisg
ICAgcmFkaW9CdXR0b24uY2xpY2soKQorICAgIGFzc2VydCByYWRpb0J1dHRvbi5pc19zZWxlY3Rl
ZCgpIGlzIFRydWUKKworCitkZWYgdGVzdFNob3VsZFJldHVyblN0YXRlT2ZSYWRpb0J1dHRvbnNC
ZWZvcmVJbnRlcmF0aW9uKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdl
Lmh0bWwiKQorICAgIHJhZGlvQnV0dG9uID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2hl
ZXNlX2FuZF9wZWFzIikKKyAgICBhc3NlcnQgcmFkaW9CdXR0b24uaXNfc2VsZWN0ZWQoKSBpcyBU
cnVlCisKKyAgICByYWRpb0J1dHRvbiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNoZWVz
ZSIpCisgICAgYXNzZXJ0IHJhZGlvQnV0dG9uLmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKworIyBb
RXhwZWN0ZWRFeGNlcHRpb24odHlwZW9mKE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKSldCisjIGRl
ZiB0ZXN0U2hvdWxkVGhyb3dBbkV4Y2VwdGlvbldoZW5Ub2dnbGluZ1RoZVN0YXRlT2ZBUmFkaW9C
dXR0b24oZHJpdmVyLCBwYWdlcyk6CisjICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQor
IyAgICByYWRpb0J1dHRvbiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNoZWVzZSIpKQor
IyAgICByYWRpb0J1dHRvbi5jbGljaygpCisKKyMgW0lnbm9yZUJyb3dzZXIoQnJvd3Nlci5JRSwg
IklFIGFsbG93cyB0b2dnbGluZyBvZiBhbiBvcHRpb24gbm90IGluIGEgbXVsdGlzZWxlY3QiKV0K
KyMgW0V4cGVjdGVkRXhjZXB0aW9uKHR5cGVvZihOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbikpXQor
IyBkZWYgdGVzdFRvZ2dsaW5nQW5PcHRpb25TaG91bGRUaHJvd0FuRXhjZXB0aW9uSWZUaGVPcHRp
b25Jc05vdEluQU11bHRpU2VsZWN0KGRyaXZlciwgcGFnZXMpOgorIyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKyMgICAgc2VsZWN0ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1l
KCJzZWxlY3RvbWF0aWMiKSkKKyMgICAgb3B0aW9uID0gc2VsZWN0LmZpbmRfZWxlbWVudHNfYnlf
dGFnX25hbWUoIm9wdGlvbiIpKVswXQorIyAgICBvcHRpb24uY2xpY2soKQorCisKK2RlZiB0ZXN0
VG9nZ2xpbmdBbk9wdGlvblNob3VsZFRvZ2dsZU9wdGlvbnNJbkFNdWx0aVNlbGVjdChkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworICAgIHNlbGVjdCA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgibXVsdGkiKQorICAgIG9wdGlvbiA9IHNlbGVj
dC5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJvcHRpb24iKVswXQorCisgICAgc2VsZWN0ZWQg
PSBvcHRpb24uaXNfc2VsZWN0ZWQoKQorICAgIG9wdGlvbi5jbGljaygpCisgICAgYXNzZXJ0IG5v
dCBzZWxlY3RlZCA9PSBvcHRpb24uaXNfc2VsZWN0ZWQoKQorCisgICAgb3B0aW9uLmNsaWNrKCkK
KyAgICBhc3NlcnQgc2VsZWN0ZWQgPT0gb3B0aW9uLmlzX3NlbGVjdGVkKCkKKworCitkZWYgdGVz
dFNob3VsZFRocm93QW5FeGNlcHRpb25XaGVuU2VsZWN0aW5nQW5VbnNlbGVjdGFibGVFbGVtZW50
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVs
ZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL3RpdGxlIikKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC5jbGlj
aygpCisKKworZGVmIHRlc3RTZW5kaW5nS2V5Ym9hcmRFdmVudHNTaG91bGRBcHBlbmRUZXh0SW5J
bnB1dHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisg
ICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIndvcmtpbmciKQorICAgIGVs
ZW1lbnQuc2VuZF9rZXlzKCJTb21lIikKKyAgICB2YWx1ZSA9IGVsZW1lbnQuZ2V0X2F0dHJpYnV0
ZSgidmFsdWUiKQorICAgIGFzc2VydCB2YWx1ZSA9PSAiU29tZSIKKworICAgIGVsZW1lbnQuc2Vu
ZF9rZXlzKCIgdGV4dCIpCisgICAgdmFsdWUgPSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVl
IikKKyAgICBhc3NlcnQgdmFsdWUgPT0gIlNvbWUgdGV4dCIKKworCitkZWYgdGVzdFNob3VsZEJl
QWJsZVRvQ2xlYXJUZXh0RnJvbUlucHV0RWxlbWVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoIndvcmtpbmciKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJTb21lIHRleHQiKQor
ICAgIHZhbHVlID0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisgICAgYXNzZXJ0IGxl
bih2YWx1ZSkgPiAwCisKKyAgICBlbGVtZW50LmNsZWFyKCkKKyAgICB2YWx1ZSA9IGVsZW1lbnQu
Z2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGFzc2VydCBsZW4odmFsdWUpID09IDAKKworCitk
ZWYgdGVzdEVtcHR5VGV4dEJveGVzU2hvdWxkUmV0dXJuQW5FbXB0eVN0cmluZ05vdE51bGwoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZW1wdHlU
ZXh0Qm94ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgid29ya2luZyIpCisgICAgYXNzZXJ0
IGVtcHR5VGV4dEJveC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICIiCisKKyAgICBlbXB0eVRl
eHRBcmVhID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZW1wdHlUZXh0QXJlYSIpCisgICAg
YXNzZXJ0IGVtcHR5VGV4dEFyZWEuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiIgorCisKK2Rl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGVhclRleHRGcm9tVGV4dEFyZWFzKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X2lkKCJ3aXRoVGV4dCIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoIlNv
bWUgdGV4dCIpCisgICAgdmFsdWUgPSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKyAg
ICBhc3NlcnQgbGVuKHZhbHVlKSA+IDAKKworICAgIGVsZW1lbnQuY2xlYXIoKQorICAgIHZhbHVl
ID0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisgICAgYXNzZXJ0IGxlbih2YWx1ZSkg
PT0gMAorCisKK2RlZiB0ZXN0UmFkaW9TaG91bGROb3RCZVNlbGVjdGVkQWZ0ZXJTZWxlY3RpbmdT
aWJsaW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQor
ICAgIGNoZWVzZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNoZWVzZSIpCisgICAgcGVh
cyA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInBlYXMiKQorCisgICAgY2hlZXNlLmNsaWNr
KCkKKyAgICBhc3NlcnQgY2hlZXNlLmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQorICAgIGFzc2VydCBw
ZWFzLmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKworICAgIHBlYXMuY2xpY2soKQorICAgIGFzc2Vy
dCBjaGVlc2UuaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorICAgIGFzc2VydCBwZWFzLmlzX3NlbGVj
dGVkKCkgaXMgVHJ1ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1lX3N3aXRjaGluZ190ZXN0
cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9mcmFtZV9zd2l0Y2hpbmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc4ZTI0YmQxYWQzCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy5weQpAQCAtMCwwICsxLDQ0MCBAQAorIyBM
aWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBv
bmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5P
VElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGlu
Zm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNl
bnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv
biAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNv
cHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z
ZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y
IGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUg
TGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3Ig
aW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdv
dmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2Uu
CisKK3RyeToKKyAgICBmcm9tIGh0dHAuY2xpZW50IGltcG9ydCBCYWRTdGF0dXNMaW5lCitleGNl
cHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBodHRwbGliIGltcG9ydCBCYWRTdGF0dXNMaW5lCisK
K2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQg
KAorICAgIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sCisgICAgTm9TdWNoRnJhbWVFeGNlcHRpb24s
CisgICAgV2ViRHJpdmVyRXhjZXB0aW9uKQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9u
LmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBvcnQg
V2ViRHJpdmVyV2FpdAorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhw
ZWN0ZWRfY29uZGl0aW9ucyBhcyBFQworCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorIworIyBUZXN0cyB0aGF0IFdlYkRyaXZlciBkb2Vzbid0IGRvIGFueXRoaW5n
IGZpc2h5IHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgcGFnZSB3aXRoIGZyYW1lcy4KKyMKKyMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK0BweXRlc3QueWllbGRfZml4
dHVyZShhdXRvdXNlPVRydWUpCitkZWYgcmVzdG9yZV9kZWZhdWx0X2NvbnRleHQoZHJpdmVyKToK
KyAgICB5aWVsZAorICAgIGRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKworCitk
ZWYgdGVzdFNob3VsZEFsd2F5c0ZvY3VzT25UaGVUb3BNb3N0RnJhbWVBZnRlckFOYXZpZ2F0aW9u
RXZlbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisg
ICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImZyYW1lc2V0IikgICMgVGVzdCBw
YXNzZXMgaWYgdGhpcyBkb2VzIG5vdCB0aHJvdy4KKworCitkZWYgdGVzdFNob3VsZE5vdEF1dG9t
YXRpY2FsbHlTd2l0Y2hGb2N1c1RvQW5JRnJhbWVXaGVuQVBhZ2VDb250YWluaW5nVGhlbUlzTG9h
ZGVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImlmcmFtZXMuaHRtbCIpCisgICAg
ZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZV9wYWdlX2hlYWRpbmciKQorCisKK2Rl
ZiB0ZXN0U2hvdWxkT3BlblBhZ2VXaXRoQnJva2VuRnJhbWVzZXQoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiZnJhbWVzZXRQYWdlMy5odG1sIikKKworICAgIGZyYW1lMSA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuSUQsICJmaXJzdCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFt
ZShmcmFtZTEpCisgICAgZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorCisgICAg
ZnJhbWUyID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInNlY29uZCIpCisgICAgZHJpdmVy
LnN3aXRjaF90by5mcmFtZShmcmFtZTIpICAjIElFOSBjYW4gbm90IHN3aXRjaCB0byB0aGlzIGJy
b2tlbiBmcmFtZSAtIGl0IGhhcyBubyB3aW5kb3cuCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorIworIyBUZXN0cyB0aGF0IFdlYkRyaXZlciBjYW4gc3dpdGNoIHRv
IGZyYW1lcyBhcyBleHBlY3RlZC4KKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb0FGcmFtZUJ5SXRzSW5k
ZXgoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAg
ZHJpdmVyLnN3aXRjaF90by5mcmFtZSgxKQorICAgIGFzc2VydCBkcml2ZXIuZmluZF9lbGVtZW50
KEJ5LklELCAicGFnZU51bWJlciIpLnRleHQgPT0gIjIiCisKKworZGVmIHRlc3RTaG91bGRCZUFi
bGVUb1N3aXRjaFRvQW5JZnJhbWVCeUl0c0luZGV4KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImlmcmFtZXMuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgwKQorICAg
IGFzc2VydCBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZC1uYW1lMSIpLmdldF9hdHRy
aWJ1dGUoInZhbHVlIikgPT0gIm5hbWUiCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRj
aFRvQUZyYW1lQnlJdHNOYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1l
c2V0Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoImZvdXJ0aCIpCisgICAgYXNz
ZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICJmcmFtZSIpLmdldF9hdHRyaWJ1
dGUoIm5hbWUiKSA9PSAiY2hpbGQxIgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hU
b0FuSWZyYW1lQnlJdHNOYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImlmcmFt
ZXMuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgiaWZyYW1lMS1uYW1lIikKKyAg
ICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWQtbmFtZTEiKS5nZXRfYXR0
cmlidXRlKCJ2YWx1ZSIpID09ICJuYW1lIgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0
Y2hUb0FGcmFtZUJ5SXRzSUQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZnJhbWVz
ZXQuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgiZmlmdGgiKQorICAgIGFzc2Vy
dCBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJ3aW5kb3dPbmUiKS50ZXh0ID09ICJPcGVu
IG5ldyB3aW5kb3ciCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRjaFRvQW5JZnJhbWVC
eUl0c0lEKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImlmcmFtZXMuaHRtbCIpCisg
ICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgiaWZyYW1lMSIpCisgICAgYXNzZXJ0IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuTkFNRSwgImlkLW5hbWUxIikuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9
PSAibmFtZSIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvU3dpdGNoVG9GcmFtZVdpdGhOYW1l
Q29udGFpbmluZ0RvdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5o
dG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKCJzaXh0aC5pZnJhbWUxIikKKyAgICBh
c3NlcnQgIlBhZ2UgbnVtYmVyIDMiIGluIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUs
ICJib2R5IikudGV4dAorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb0FGcmFtZVVz
aW5nQVByZXZpb3VzbHlMb2NhdGVkV2ViRWxlbWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJmcmFtZXNldC5odG1sIikKKyAgICBmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuVEFHX05BTUUsICJmcmFtZSIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShmcmFtZSkK
KyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInBhZ2VOdW1iZXIiKS50ZXh0
ID09ICIxIgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb0FuSUZyYW1lVXNpbmdB
UHJldmlvdXNseUxvY2F0ZWRXZWJFbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImlmcmFtZXMuaHRtbCIpCisgICAgZnJhbWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRB
R19OQU1FLCAiaWZyYW1lIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGZyYW1lKQorCisg
ICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgImlkLW5hbWUxIikKKyAg
ICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJuYW1lIgorCisKK2Rl
ZiB0ZXN0U2hvdWxkRW5zdXJlRWxlbWVudElzQUZyYW1lQmVmb3JlU3dpdGNoaW5nKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGZyYW1lID0gZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImZyYW1lc2V0IikKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoTm9TdWNoRnJhbWVFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuc3dpdGNoX3Rv
LmZyYW1lKGZyYW1lKQorCisKK2RlZiB0ZXN0RnJhbWVTZWFyY2hlc1Nob3VsZEJlUmVsYXRpdmVU
b1RoZUN1cnJlbnRseVNlbGVjdGVkRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgic2Vjb25kIikK
KyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInBhZ2VOdW1iZXIiKS50ZXh0
ID09ICIyIgorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24p
OgorICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
bmFtZSgidGhpcmQiKSkKKworICAgIGRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgi
dGhpcmQiKSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hGcmFtZUV4Y2VwdGlvbik6
CisgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoInNlY29uZCIpCisKKyAgICBkcml2ZXIu
c3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShk
cml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInNlY29uZCIpKQorICAgIGFzc2VydCBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5LklELCAicGFnZU51bWJlciIpLnRleHQgPT0gIjIiCisKKworZGVmIHRl
c3RTaG91bGRTZWxlY3RDaGlsZEZyYW1lc0J5Q2hhaW5lZENhbGxzKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJh
bWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJmb3VydGgiKSkKKyAgICBkcml2ZXIuc3dp
dGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiY2hpbGQyIikpCisgICAg
YXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJwYWdlTnVtYmVyIikudGV4dCA9PSAi
MTEiCisKKworZGVmIHRlc3RTaG91bGRUaHJvd0ZyYW1lTm90Rm91bmRFeGNlcHRpb25Mb29raW5n
VXBTdWJGcmFtZXNXaXRoU3VwZXJGcmFtZU5hbWVzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV9uYW1lKCJmb3VydGgiKSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUo
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJzZWNvbmQiKSkKKworCitkZWYgdGVzdFNob3Vs
ZFRocm93QW5FeGNlcHRpb25XaGVuQUZyYW1lQ2Fubm90QmVGb3VuZChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1l
KGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiTm90aGluZyBoZXJlIikpCisKKworZGVmIHRl
c3RTaG91bGRUaHJvd0FuRXhjZXB0aW9uV2hlbkFGcmFtZUNhbm5vdEJlRm91bmRCeUluZGV4KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoTm9TdWNoRnJhbWVFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuc3dp
dGNoX3RvLmZyYW1lKDI3KQorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2Vz
PVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb1BhcmVu
dEZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQor
ICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJm
b3VydGgiKSkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLnBhcmVudF9mcmFtZSgpCisgICAgZHJpdmVy
LnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZpcnN0IikpCisg
ICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJwYWdlTnVtYmVyIikudGV4dCA9
PSAiMSIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24pCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvU3dpdGNoVG9QYXJlbnRGcmFtZUZyb21B
U2Vjb25kTGV2ZWxGcmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNl
dC5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfbmFtZSgiZm91cnRoIikpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X25hbWUoImNoaWxkMSIpKQorICAgIGRyaXZlci5zd2l0Y2hfdG8ucGFyZW50
X2ZyYW1lKCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfbmFtZSgiY2hpbGQyIikpCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICJwYWdlTnVtYmVyIikudGV4dCA9PSAiMTEiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50
b21qcyhyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RTd2l0Y2hpbmdUb1BhcmVu
dEZyYW1lRnJvbURlZmF1bHRDb250ZXh0SXNOb09wKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLnBhcmVudF9mcmFt
ZSgpCisgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiWEhUTUwgVGVzdCBQYWdlIgorCisKK0Bw
eXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2Rl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb1BhcmVudEZyb21BbklmcmFtZShkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJpZnJhbWVzLmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hf
dG8uZnJhbWUoMCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLnBhcmVudF9mcmFtZSgpCisgICAgZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZV9wYWdlX2hlYWRpbmciKQorCisjIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKKyMgR2VuZXJhbCBmcmFtZSBoYW5k
bGluZyBiZWhhdmlvciB0ZXN0cworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKworZGVmIHRlc3RTaG91bGRDb250aW51ZVRvUmVmZXJUb1RoZVNhbWVGcmFtZU9u
Y2VJdEhhc0JlZW5TZWxlY3RlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFt
ZXNldC5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKDIpCisgICAgY2hlY2tib3gg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAiLy9pbnB1dFtAbmFtZT0nY2hlY2t5J10i
KQorICAgIGNoZWNrYm94LmNsaWNrKCkKKyAgICBjaGVja2JveC5zdWJtaXQoKQorCisgICAgIyBU
T0RPKHNpbW9uKTogdGhpcyBzaG91bGQgbm90IGJlIG5lZWRlZCwgYW5kIGlzIG9ubHkgaGVyZSBi
ZWNhdXNlIElFJ3Mgc3VibWl0IHJldHVybnMgdG9vCisgICAgIyBzb29uLgorCisgICAgV2ViRHJp
dmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVtZW50
KChCeS5YUEFUSCwgJy8vcCcpLCAnU3VjY2VzcyEnKSkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxf
bWFyaW9uZXR0ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZl
ci9pc3N1ZXMvNjEwJykKK2RlZiB0ZXN0U2hvdWxkRm9jdXNPblRoZVJlcGxhY2VtZW50V2hlbkFG
cmFtZUZvbGxvd3NBTGlua1RvQV9Ub3BUYXJnZXRlZFBhZ2UoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgw
KQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTElOS19URVhULCAidG9wIikuY2xpY2soKQor
CisgICAgZXhwZWN0ZWRUaXRsZSA9ICJYSFRNTCBUZXN0IFBhZ2UiCisKKyAgICBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMykudW50aWwoRUMudGl0bGVfaXMoZXhwZWN0ZWRUaXRsZSkpCisgICAgV2Vi
RHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnByZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRl
ZCgoQnkuSUQsICJvbmx5LWV4aXN0cy1vbi14aHRtbHRlc3QiKSkpCisKKworZGVmIHRlc3RTaG91
bGRBbGxvd0FVc2VyVG9Td2l0Y2hGcm9tQW5JZnJhbWVCYWNrVG9UaGVNYWluQ29udGVudE9mVGhl
UGFnZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJpZnJhbWVzLmh0bWwiKQorICAg
IGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoMCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRf
Y29udGVudCgpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZV9wYWdlX2hl
YWRpbmciKQorCisKK2RlZiB0ZXN0U2hvdWxkQWxsb3dUaGVVc2VyVG9Td2l0Y2hUb0FuSUZyYW1l
QW5kUmVtYWluRm9jdXNlZE9uSXQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaWZy
YW1lcy5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKDApCisgICAgZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5JRCwgInN1Ym1pdEJ1dHRvbiIpLmNsaWNrKCkKKyAgICBhc3NlcnQgZ2V0
VGV4dE9mR3JlZXRpbmdFbGVtZW50KGRyaXZlcikgPT0gIlN1Y2Nlc3MhIgorCisKK2RlZiBnZXRU
ZXh0T2ZHcmVldGluZ0VsZW1lbnQoZHJpdmVyKToKKyAgICByZXR1cm4gV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDMpLnVudGlsKEVDLnByZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICJn
cmVldGluZyIpKSkudGV4dAorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja0luQUZyYW1l
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRy
aXZlci5zd2l0Y2hfdG8uZnJhbWUoInRoaXJkIikKKworICAgICMgVGhpcyBzaG91bGQgcmVwbGFj
ZSBmcmFtZSAidGhpcmQiIC4uLgorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJzdWJt
aXRCdXR0b24iKS5jbGljaygpCisgICAgIyBkcml2ZXIgc2hvdWxkIHN0aWxsIGJlIGZvY3VzZWQg
b24gZnJhbWUgInRoaXJkIiAuLi4KKyAgICBhc3NlcnQgZ2V0VGV4dE9mR3JlZXRpbmdFbGVtZW50
KGRyaXZlcikgPT0gIlN1Y2Nlc3MhIgorICAgICMgTWFrZSBzdXJlIGl0IHdhcyByZWFsbHkgZnJh
bWUgInRoaXJkIiB3aGljaCB3YXMgcmVwbGFjZWQgLi4uCisgICAgZHJpdmVyLnN3aXRjaF90by5k
ZWZhdWx0X2NvbnRlbnQoKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoInRoaXJkIikKKyAg
ICBhc3NlcnQgZ2V0VGV4dE9mR3JlZXRpbmdFbGVtZW50KGRyaXZlcikgPT0gIlN1Y2Nlc3MhIgor
CisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja0luQUZyYW1lVGhhdFJld3JpdGVzVG9wV2lu
ZG93TG9jYXRpb24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiY2xpY2tfdGVzdHMv
aXNzdWU1MjM3Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9pZCgic2VhcmNoIikpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwg
InN1Ym1pdCIpLmNsaWNrKCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgp
CisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJUYXJnZXQg
cGFnZSBmb3IgaXNzdWUgNTIzNyIpKQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja0lu
QVN1YkZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwi
KQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgi
c2l4dGgiKSkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoImlmcmFtZTEiKSkKKworICAgICMgVGhpcyBzaG91bGQgcmVwbGFjZSBmcmFtZSAiaWZy
YW1lMSIgaW5zaWRlIGZyYW1lICJzaXh0aCIgLi4uCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5JRCwgInN1Ym1pdEJ1dHRvbiIpLmNsaWNrKCkKKyAgICAjIGRyaXZlciBzaG91bGQgc3RpbGwg
YmUgZm9jdXNlZCBvbiBmcmFtZSAiaWZyYW1lMSIgaW5zaWRlIGZyYW1lICJzaXh0aCIgLi4uCisg
ICAgYXNzZXJ0IGdldFRleHRPZkdyZWV0aW5nRWxlbWVudChkcml2ZXIpLCAiU3VjY2VzcyEiCisg
ICAgIyBNYWtlIHN1cmUgaXQgd2FzIHJlYWxseSBmcmFtZSAiaWZyYW1lMSIgaW5zaWRlIGZyYW1l
ICJzaXh0aCIgd2hpY2ggd2FzIHJlcGxhY2VkIC4uLgorICAgIGRyaXZlci5zd2l0Y2hfdG8uZGVm
YXVsdF9jb250ZW50KCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoInNpeHRoIikpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X2lkKCJpZnJhbWUxIikpCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuSUQsICJncmVldGluZyIpLnRleHQgPT0gIlN1Y2Nlc3MhIgorCisKK2RlZiB0ZXN0
U2hvdWxkQmVBYmxlVG9GaW5kRWxlbWVudHNJbklmcmFtZXNCeVhQYXRoKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImlmcmFtZXMuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5m
cmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJpZnJhbWUxIikpCisgICAgZWxlbWVudCA9
IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvLypbQGlkID0gJ2NoYW5nZW1lJ10iKQor
ICAgIGFzc2VydCBlbGVtZW50IGlzIG5vdCBOb25lCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3Bo
YW50b21qcworZGVmIHRlc3RHZXRDdXJyZW50VXJsUmV0dXJuc1RvcExldmVsQnJvd3NpbmdDb250
ZXh0VXJsKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQor
ICAgIGFzc2VydCAiZnJhbWVzZXQuaHRtbCIgaW4gZHJpdmVyLmN1cnJlbnRfdXJsCisgICAgZHJp
dmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInNlY29uZCIp
KQorICAgIGFzc2VydCAiZnJhbWVzZXQuaHRtbCIgaW4gZHJpdmVyLmN1cnJlbnRfdXJsCisKKwor
QHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcworZGVmIHRlc3RHZXRDdXJyZW50VXJsUmV0dXJu
c1RvcExldmVsQnJvd3NpbmdDb250ZXh0VXJsRm9ySWZyYW1lcyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJpZnJhbWVzLmh0bWwiKQorICAgIGFzc2VydCAiaWZyYW1lcy5odG1sIiBp
biBkcml2ZXIuY3VycmVudF91cmwKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoImlmcmFtZTEiKSkKKyAgICBhc3NlcnQgImlmcmFtZXMuaHRtbCIg
aW4gZHJpdmVyLmN1cnJlbnRfdXJsCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhy
YWlzZXM9QmFkU3RhdHVzTGluZSkKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb1RoZVRv
cElmVGhlRnJhbWVJc0RlbGV0ZWRGcm9tVW5kZXJVcyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJmcmFtZV9zd2l0Y2hpbmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1sIikKKyAgICBk
cml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImlmcmFtZTEi
KSkKKworICAgIGtpbGxJZnJhbWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAia2lsbElm
cmFtZSIpCisgICAga2lsbElmcmFtZS5jbGljaygpCisgICAgZHJpdmVyLnN3aXRjaF90by5kZWZh
dWx0X2NvbnRlbnQoKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbF9ub3QoCisg
ICAgICAgIEVDLnByZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICJpZnJhbWUxIikp
KQorCisgICAgYWRkSUZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImFkZEJhY2tG
cmFtZSIpCisgICAgYWRkSUZyYW1lLmNsaWNrKCkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwg
MykudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgImlmcmFtZTEi
KSkpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lk
KCJpZnJhbWUxIikpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnByZXNl
bmNlX29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICJzdWNjZXNzIikpKQorCisKK0BweXRlc3Qu
bWFyay54ZmFpbF9waGFudG9tanMocmFpc2VzPUJhZFN0YXR1c0xpbmUpCitkZWYgdGVzdFNob3Vs
ZEJlQWJsZVRvU3dpdGNoVG9UaGVUb3BJZlRoZUZyYW1lSXNEZWxldGVkRnJvbVVuZGVyVXNXaXRo
RnJhbWVJbmRleChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZV9zd2l0Y2hp
bmdfdGVzdHMvZGVsZXRpbmdGcmFtZS5odG1sIikKKyAgICBpZnJhbWUgPSAwCisgICAgV2ViRHJp
dmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLmZyYW1lX3RvX2JlX2F2YWlsYWJsZV9hbmRfc3dp
dGNoX3RvX2l0KGlmcmFtZSkpCisgICAgIyB3ZSBzaG91bGQgYmUgaW4gdGhlIGZyYW1lIG5vdwor
ICAgIGtpbGxJZnJhbWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAia2lsbElmcmFtZSIp
CisgICAga2lsbElmcmFtZS5jbGljaygpCisgICAgZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2Nv
bnRlbnQoKQorCisgICAgYWRkSUZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImFk
ZEJhY2tGcmFtZSIpCisgICAgYWRkSUZyYW1lLmNsaWNrKCkKKyAgICBXZWJEcml2ZXJXYWl0KGRy
aXZlciwgMykudW50aWwoRUMuZnJhbWVfdG9fYmVfYXZhaWxhYmxlX2FuZF9zd2l0Y2hfdG9faXQo
aWZyYW1lKSkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMucHJlc2VuY2Vf
b2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgInN1Y2Nlc3MiKSkpCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsX3BoYW50b21qcyhyYWlzZXM9QmFkU3RhdHVzTGluZSkKK2RlZiB0ZXN0U2hvdWxkQmVB
YmxlVG9Td2l0Y2hUb1RoZVRvcElmVGhlRnJhbWVJc0RlbGV0ZWRGcm9tVW5kZXJVc1dpdGhXZWJl
bGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lX3N3aXRjaGluZ190
ZXN0cy9kZWxldGluZ0ZyYW1lLmh0bWwiKQorICAgIGlmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1l
bnQoQnkuSUQsICJpZnJhbWUxIikKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwo
RUMuZnJhbWVfdG9fYmVfYXZhaWxhYmxlX2FuZF9zd2l0Y2hfdG9faXQoaWZyYW1lKSkKKyAgICAj
IHdlIHNob3VsZCBiZSBpbiB0aGUgZnJhbWUgbm93CisgICAga2lsbElmcmFtZSA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1lIikKKyAgICBraWxsSWZyYW1lLmNsaWNrKCkK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisKKyAgICBhZGRJRnJhbWUg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYWRkQmFja0ZyYW1lIikKKyAgICBhZGRJRnJh
bWUuY2xpY2soKQorCisgICAgaWZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlm
cmFtZTEiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5mcmFtZV90b19i
ZV9hdmFpbGFibGVfYW5kX3N3aXRjaF90b19pdChpZnJhbWUpKQorICAgIFdlYkRyaXZlcldhaXQo
ZHJpdmVyLCAzKS51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAi
c3VjY2VzcyIpKSkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJhaXNlcz1Ob1N1Y2hF
bGVtZW50RXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9QmFk
U3RhdHVzTGluZSkKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNlcz1XZWJEcml2
ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J2h0dHBz
Oi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82MTQnKQorQHB5dGVzdC5t
YXJrLnhmYWlsX3dlYmtpdGd0ayhyYWlzZXM9Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbikKK2RlZiB0
ZXN0U2hvdWxkTm90QmVBYmxlVG9Eb0FueXRoaW5nVGhlRnJhbWVJc0RlbGV0ZWRGcm9tVW5kZXJV
cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBpZiBkcml2ZXIubmFtZSA9PSAnZmlyZWZveCcgYW5kIGRy
aXZlci53M2M6CisgICAgICAgIHB5dGVzdC5za2lwKCdTdGFsbHMgdGVzdHMsIGh0dHBzOi8vYnVn
emlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTA3OTknKQorICAgIHBhZ2VzLmxv
YWQoImZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lLmh0bWwiKQorICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiaWZyYW1lMSIpKQor
CisgICAga2lsbElmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1l
IikKKyAgICBraWxsSWZyYW1lLmNsaWNrKCkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hGcmFtZUV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJr
aWxsSWZyYW1lIikuY2xpY2soKQorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuV2luZG93VGl0bGVJ
bkFGcmFtZXNldChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5odG1s
IikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFt
ZSgidGhpcmQiKSkKKyAgICBhc3NlcnQgIlVuaXF1ZSB0aXRsZSIgPT0gZHJpdmVyLnRpdGxlCisK
KworZGVmIHRlc3RKYXZhU2NyaXB0U2hvdWxkRXhlY3V0ZUluVGhlQ29udGV4dE9mVGhlQ3VycmVu
dEZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQor
ICAgIGFzc2VydCBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3cgPT0gd2luZG93
LnRvcCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5
Lk5BTUUsICJ0aGlyZCIpKQorICAgIGFzc2VydCBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVy
biB3aW5kb3cgIT0gd2luZG93LnRvcCIpCisKKworZGVmIHRlc3RTaG91bGROb3RTd2l0Y2hNYWdp
Y2FsbHlUb1RoZVRvcFdpbmRvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFt
ZV9zd2l0Y2hpbmdfdGVzdHMvYnVnNDg3Ni5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZy
YW1lKDApCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnByZXNlbmNlX29m
X2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICJpbnB1dFRleHQiKSkpCisKKyAgICBmb3IgaSBpbiBy
YW5nZSgyMCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlucHV0ID0gV2ViRHJpdmVyV2Fp
dChkcml2ZXIsIDMpLnVudGlsKEVDLnByZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQs
ICJpbnB1dFRleHQiKSkpCisgICAgICAgICAgICBzdWJtaXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZl
ciwgMykudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgInN1Ym1p
dEJ1dHRvbiIpKSkKKyAgICAgICAgICAgIGlucHV0LmNsZWFyKCkKKyAgICAgICAgICAgIGltcG9y
dCByYW5kb20KKyAgICAgICAgICAgIGlucHV0LnNlbmRfa2V5cygicmFuZCVzIiAlIGludChyYW5k
b20ucmFuZG9tKCkpKQorICAgICAgICAgICAgc3VibWl0LmNsaWNrKCkKKyAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgIHVybCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRv
dy5sb2NhdGlvbi5ocmVmIikKKyAgICAgICAgIyBJRTYgYW5kIENocm9tZSBhZGQgIj8iLXN5bWJv
bCB0byB0aGUgZW5kIG9mIHRoZSBVUkwKKyAgICBpZiAodXJsLmVuZHN3aXRoKCI/IikpOgorICAg
ICAgICB1cmwgPSB1cmxbOmxlbih1cmwpIC0gMV0KKworICAgIGFzc2VydCBwYWdlcy51cmwoImZy
YW1lX3N3aXRjaGluZ190ZXN0cy9idWc0ODc2X2lmcmFtZS5odG1sIikgPT0gdXJsCisKKworZGVm
IHRlc3RHZXRTaG91bGRTd2l0Y2hUb0RlZmF1bHRDb250ZXh0KGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoImlmcmFtZXMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5J
RCwgImlmcmFtZTEiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5JRCwgImlmcmFtZTEiKSkKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAi
Y2hlZXNlIikgICMgRm91bmQgb24gZm9ybVBhZ2UuaHRtbCBidXQgbm90IG9uIGlmcmFtZXMuaHRt
bC4KKyAgICBwYWdlcy5sb2FkKCJpZnJhbWVzLmh0bWwiKSAgIyBUaGlzIG11c3QgZWZmZWN0aXZl
bHkgc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpLCB0b28uCisgICAgZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5JRCwgImlmcmFtZTEiKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2dvb2dsZV9vbmVf
Ym94LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL2dvb2dsZV9vbmVfYm94LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5mZTU3YTE4NGMwNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9nb29nbGVfb25lX2JveC5weQpAQCAtMCwwICsxLDQ1IEBACisjIExpY2Vuc2VkIHRvIHRo
ZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3Jl
IGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMg
ZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMg
cmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmls
ZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisj
ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgorZnJv
bSByZXN1bHRzX3BhZ2UgaW1wb3J0IFJlc3VsdHNQYWdlCitmcm9tIHBhZ2VfbG9hZGVyIGltcG9y
dCByZXF1aXJlX2xvYWRlZAorCisKK2NsYXNzIEdvb2dsZU9uZUJveChvYmplY3QpOgorICAgICIi
IlRoaXMgY2xhc3MgbW9kZWxzIGEgcGFnZSB0aGF0IGhhcyBhIGdvb2dsZSBzZWFyY2ggYmFyLiIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlciwgdXJsKToKKyAgICAgICAgc2VsZi5f
ZHJpdmVyID0gZHJpdmVyCisgICAgICAgIHNlbGYuX3VybCA9IHVybAorCisgICAgZGVmIGlzX2xv
YWRlZChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9uYW1lKCJxIikKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGV4
Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgc2VsZi5fZHJpdmVyLmdldChzZWxmLl91cmwp
CisKKyAgICBAcmVxdWlyZV9sb2FkZWQKKyAgICBkZWYgc2VhcmNoX2ZvcihzZWxmLCBzZWFyY2hf
dGVybSk6CisgICAgICAgIGVsZW1lbnQgPSBzZWxmLl9kcml2ZXIuZmluZF9lbGVtZW50X2J5X25h
bWUoInEiKQorICAgICAgICBlbGVtZW50LnNlbmRfa2V5cyhzZWFyY2hfdGVybSkKKyAgICAgICAg
ZWxlbWVudC5zdWJtaXQoKQorICAgICAgICByZXR1cm4gUmVzdWx0c1BhZ2Uoc2VsZi5fZHJpdmVy
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ltcGxpY2l0X3dhaXRzX3Rlc3RzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2ltcGxpY2l0X3dhaXRzX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yZTMwNTI1MjUxNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9pbXBs
aWNpdF93YWl0c190ZXN0cy5weQpAQCAtMCwwICsxLDczIEBACisjIExpY2Vuc2VkIHRvIHRoZSBT
b2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNv
bnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlz
dHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVn
YXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQor
IyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJM
aWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UK
KyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5z
ZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAor
IworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdy
aXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3Ry
aWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05E
SVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRo
ZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVz
dAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBOb1N1Y2hFbGVtZW50
RXhjZXB0aW9uCisKKworZGVmIHRlc3RTaG91bGRJbXBsaWNpdGx5V2FpdEZvckFTaW5nbGVFbGVt
ZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImR5bmFtaWMuaHRtbCIpCisgICAg
YWRkID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiYWRkZXIiKQorICAgIGRyaXZlci5pbXBs
aWNpdGx5X3dhaXQoMykKKyAgICBhZGQuY2xpY2soKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoImJveDAiKSAgIyBBbGwgaXMgd2VsbCBpZiB0aGlzIGRvZXNuJ3QgdGhyb3cuCisKKwor
ZGVmIHRlc3RTaG91bGRTdGlsbEZhaWxUb0ZpbmRBbkVsZW1lbnRXaGVuSW1wbGljaXRXYWl0c0Fy
ZUVuYWJsZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZHluYW1pYy5odG1sIikK
KyAgICBkcml2ZXIuaW1wbGljaXRseV93YWl0KDAuNSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
aWQoImJveDAiKQorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuQWZ0ZXJGaXJzdEF0dGVtcHRUb0Zp
bmRPbmVBZnRlckRpc2FibGluZ0ltcGxpY2l0V2FpdHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZHluYW1pYy5odG1sIikKKyAgICBkcml2ZXIuaW1wbGljaXRseV93YWl0KDMpCisg
ICAgZHJpdmVyLmltcGxpY2l0bHlfd2FpdCgwKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgi
Ym94MCIpCisKKworZGVmIHRlc3RTaG91bGRJbXBsaWNpdGx5V2FpdFVudGlsQXRMZWFzdE9uZUVs
ZW1lbnRJc0ZvdW5kV2hlblNlYXJjaGluZ0Zvck1hbnkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZHluYW1pYy5odG1sIikKKyAgICBhZGQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X2lkKCJhZGRlciIpCisKKyAgICBkcml2ZXIuaW1wbGljaXRseV93YWl0KDIpCisgICAgYWRkLmNs
aWNrKCkKKyAgICBhZGQuY2xpY2soKQorCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVt
ZW50c19ieV9jbGFzc19uYW1lKCJyZWRib3giKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID49
IDEKKworCitkZWYgdGVzdFNob3VsZFN0aWxsRmFpbFRvRmluZEFuRWxlbWVuc3RXaGVuSW1wbGlj
aXRXYWl0c0FyZUVuYWJsZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZHluYW1p
Yy5odG1sIikKKworICAgIGRyaXZlci5pbXBsaWNpdGx5X3dhaXQoMC41KQorICAgIGVsZW1lbnRz
ID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZSgicmVkYm94IikKKyAgICBhc3Nl
cnQgMCA9PSBsZW4oZWxlbWVudHMpCisKKworZGVmIHRlc3RTaG91bGRSZXR1cm5BZnRlckZpcnN0
QXR0ZW1wdFRvRmluZE1hbnlBZnRlckRpc2FibGluZ0ltcGxpY2l0V2FpdHMoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZHluYW1pYy5odG1sIikKKyAgICBhZGQgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X2lkKCJhZGRlciIpCisgICAgZHJpdmVyLmltcGxpY2l0bHlfd2FpdCgxLjEp
CisgICAgZHJpdmVyLmltcGxpY2l0bHlfd2FpdCgwKQorICAgIGFkZC5jbGljaygpCisgICAgZWxl
bWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50c19ieV9jbGFzc19uYW1lKCJyZWRib3giKQorICAg
IGFzc2VydCAwID09IGxlbihlbGVtZW50cykKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9pbnRlcmFj
dGlvbnNfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vaW50ZXJhY3Rpb25zX3Rlc3RzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMDJkMzE2MTcxOQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9pbnRlcmFjdGlvbnNfdGVzdHMucHkKQEAgLTAsMCArMSwyMzUgQEAK
KyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5k
ZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRo
ZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMg
bGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl
cnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBl
eGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4g
YSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp
Y2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh
dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNz
IG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNl
bnNlLgorCisiIiJUZXN0cyBmb3IgYWR2YW5jZWQgdXNlciBpbnRlcmFjdGlvbnMuIiIiCitpbXBv
cnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzIGltcG9ydCBL
ZXlzCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYWN0aW9uX2NoYWlucyBpbXBvcnQg
QWN0aW9uQ2hhaW5zCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBX
ZWJEcml2ZXJXYWl0CisKKworZGVmIHBlcmZvcm1EcmFnQW5kRHJvcFdpdGhNb3VzZShkcml2ZXIs
IHBhZ2VzKToKKyAgICAiIiJDb3BpZWQgZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0
aW9ucy5UZXN0QmFzaWNNb3VzZUludGVyZmFjZS4iIiIKKyAgICBwYWdlcy5sb2FkKCJkcmFnZ2Fi
bGVMaXN0cy5odG1sIikKKyAgICBkcmFnUmVwb3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X2lkKCJkcmFnZ2luZ19yZXBvcnRzIikKKyAgICB0b0RyYWcgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJyaWdodGl0ZW0tMyIpCisgICAgZHJhZ0ludG8gPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJzb3J0YWJsZTEiKQorCisgICAgaG9sZEl0ZW0gPSBBY3Rpb25DaGFpbnMoZHJpdmVy
KS5jbGlja19hbmRfaG9sZCh0b0RyYWcpCisgICAgbW92ZVRvU3BlY2lmaWNJdGVtID0gQWN0aW9u
Q2hhaW5zKGRyaXZlcikgXAorICAgICAgICAubW92ZV90b19lbGVtZW50KGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoImxlZnRpdGVtLTQiKSkKKyAgICBtb3ZlVG9PdGhlckxpc3QgPSBBY3Rpb25D
aGFpbnMoZHJpdmVyKS5tb3ZlX3RvX2VsZW1lbnQoZHJhZ0ludG8pCisgICAgZHJvcCA9IEFjdGlv
bkNoYWlucyhkcml2ZXIpLnJlbGVhc2UoZHJhZ0ludG8pCisgICAgYXNzZXJ0ICJOb3RoaW5nIGhh
cHBlbmVkLiIgPT0gZHJhZ1JlcG9ydGVyLnRleHQKKworICAgIGhvbGRJdGVtLnBlcmZvcm0oKQor
ICAgIG1vdmVUb1NwZWNpZmljSXRlbS5wZXJmb3JtKCkKKyAgICBtb3ZlVG9PdGhlckxpc3QucGVy
Zm9ybSgpCisgICAgYXNzZXJ0ICJOb3RoaW5nIGhhcHBlbmVkLiBEcmFnT3V0IiA9PSBkcmFnUmVw
b3J0ZXIudGV4dAorCisgICAgZHJvcC5wZXJmb3JtKCkKKworCitkZWYgdGVzdERyYWdnaW5nRWxl
bWVudFdpdGhNb3VzZU1vdmVzSXRUb0Fub3RoZXJMaXN0KGRyaXZlciwgcGFnZXMpOgorICAgICIi
IkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5pdW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01v
dXNlSW50ZXJmYWNlLiIiIgorICAgIHBlcmZvcm1EcmFnQW5kRHJvcFdpdGhNb3VzZShkcml2ZXIs
IHBhZ2VzKQorICAgIGRyYWdJbnRvID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgic29ydGFi
bGUxIikKKyAgICBhc3NlcnQgNiA9PSBsZW4oZHJhZ0ludG8uZmluZF9lbGVtZW50c19ieV90YWdf
bmFtZSgibGkiKSkKKworCitkZWYgdGVzdERyYWdnaW5nRWxlbWVudFdpdGhNb3VzZUZpcmVzRXZl
bnRzKGRyaXZlciwgcGFnZXMpOgorICAgICIiIkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5p
dW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01vdXNlSW50ZXJmYWNlLiIiIgorICAgIHBlcmZvcm1E
cmFnQW5kRHJvcFdpdGhNb3VzZShkcml2ZXIsIHBhZ2VzKQorICAgIGRyYWdSZXBvcnRlciA9IGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRyYWdnaW5nX3JlcG9ydHMiKQorICAgIGFzc2VydCAi
Tm90aGluZyBoYXBwZW5lZC4gRHJhZ091dCBEcm9wSW4gUmlnaHRJdGVtIDMiID09IGRyYWdSZXBv
cnRlci50ZXh0CisKKworZGVmIF9pc0VsZW1lbnRBdmFpbGFibGUoZHJpdmVyLCBpZCk6CisgICAg
IiIiQ29waWVkIGZyb20gb3JnLm9wZW5xYS5zZWxlbml1bS5pbnRlcmFjdGlvbnMuVGVzdEJhc2lj
TW91c2VJbnRlcmZhY2UuIiIiCisgICAgdHJ5OgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKGlkKQorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIGV4Y2VwdCBFeGNlcHRpb246Cisg
ICAgICAgIHJldHVybiBGYWxzZQorCisKK2RlZiB0ZXN0RHJhZ0FuZERyb3AoZHJpdmVyLCBwYWdl
cyk6CisgICAgIiIiQ29waWVkIGZyb20gb3JnLm9wZW5xYS5zZWxlbml1bS5pbnRlcmFjdGlvbnMu
VGVzdEJhc2ljTW91c2VJbnRlcmZhY2UuIiIiCisgICAgZWxlbWVudF9hdmFpbGFibGVfdGltZW91
dCA9IDE1CisgICAgd2FpdCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCBlbGVtZW50X2F2YWlsYWJs
ZV90aW1lb3V0KQorICAgIHBhZ2VzLmxvYWQoImRyb3BwYWJsZUl0ZW1zLmh0bWwiKQorICAgIHdh
aXQudW50aWwobGFtYmRhIGRyOiBfaXNFbGVtZW50QXZhaWxhYmxlKGRyaXZlciwgImRyYWdnYWJs
ZSIpKQorCisgICAgaWYgbm90IF9pc0VsZW1lbnRBdmFpbGFibGUoZHJpdmVyLCAiZHJhZ2dhYmxl
Iik6CisgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCJDb3VsZCBub3QgZmluZCBkcmFnZ2Fi
bGUgZWxlbWVudCBhZnRlciAxNSBzZWNvbmRzLiIpCisKKyAgICB0b0RyYWcgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X2lkKCJkcmFnZ2FibGUiKQorICAgIGRyb3BJbnRvID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9pZCgiZHJvcHBhYmxlIikKKworICAgIGhvbGREcmFnID0gQWN0aW9uQ2hhaW5z
KGRyaXZlcikgXAorICAgICAgICAuY2xpY2tfYW5kX2hvbGQodG9EcmFnKQorICAgIG1vdmUgPSBB
Y3Rpb25DaGFpbnMoZHJpdmVyKSBcCisgICAgICAgIC5tb3ZlX3RvX2VsZW1lbnQoZHJvcEludG8p
CisgICAgZHJvcCA9IEFjdGlvbkNoYWlucyhkcml2ZXIpLnJlbGVhc2UoZHJvcEludG8pCisKKyAg
ICBob2xkRHJhZy5wZXJmb3JtKCkKKyAgICBtb3ZlLnBlcmZvcm0oKQorICAgIGRyb3AucGVyZm9y
bSgpCisKKyAgICBkcm9wSW50byA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRyb3BwYWJs
ZSIpCisgICAgdGV4dCA9IGRyb3BJbnRvLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgicCIpLnRl
eHQKKyAgICBhc3NlcnQgIkRyb3BwZWQhIiA9PSB0ZXh0CisKKworQHB5dGVzdC5tYXJrLnhmYWls
X21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNr
b2RyaXZlci9pc3N1ZXMvNjYxJykKK2RlZiB0ZXN0RG91YmxlQ2xpY2soZHJpdmVyLCBwYWdlcyk6
CisgICAgIiIiQ29waWVkIGZyb20gb3JnLm9wZW5xYS5zZWxlbml1bS5pbnRlcmFjdGlvbnMuVGVz
dEJhc2ljTW91c2VJbnRlcmZhY2UuIiIiCisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2Uu
aHRtbCIpCisgICAgdG9Eb3VibGVDbGljayA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRv
dWJsZUNsaWNrRmllbGQiKQorCisgICAgZGJsQ2xpY2sgPSBBY3Rpb25DaGFpbnMoZHJpdmVyKSBc
CisgICAgICAgIC5kb3VibGVfY2xpY2sodG9Eb3VibGVDbGljaykKKworICAgIGRibENsaWNrLnBl
cmZvcm0oKQorICAgIGFzc2VydCAiRG91YmxlQ2xpY2tlZCIgPT0gdG9Eb3VibGVDbGljay5nZXRf
YXR0cmlidXRlKCd2YWx1ZScpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAg
ICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9hcml5YS9waGFudG9tanMvaXNzdWVzLzE0MDA1
JykKK2RlZiB0ZXN0Q29udGV4dENsaWNrKGRyaXZlciwgcGFnZXMpOgorICAgICIiIkNvcGllZCBm
cm9tIG9yZy5vcGVucWEuc2VsZW5pdW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01vdXNlSW50ZXJm
YWNlLiIiIgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHRvQ29u
dGV4dENsaWNrID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZG91YmxlQ2xpY2tGaWVsZCIp
CisKKyAgICBjb250ZXh0Q2xpY2sgPSBBY3Rpb25DaGFpbnMoZHJpdmVyKSBcCisgICAgICAgIC5j
b250ZXh0X2NsaWNrKHRvQ29udGV4dENsaWNrKQorCisgICAgY29udGV4dENsaWNrLnBlcmZvcm0o
KQorICAgIGFzc2VydCAiQ29udGV4dENsaWNrZWQiID09IHRvQ29udGV4dENsaWNrLmdldF9hdHRy
aWJ1dGUoJ3ZhbHVlJykKKworCitkZWYgdGVzdE1vdmVBbmRDbGljayhkcml2ZXIsIHBhZ2VzKToK
KyAgICAiIiJDb3BpZWQgZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0
QmFzaWNNb3VzZUludGVyZmFjZS4iIiIKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5o
dG1sIikKKyAgICB0b0NsaWNrID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2xpY2tGaWVs
ZCIpCisKKyAgICBjbGljayA9IEFjdGlvbkNoYWlucyhkcml2ZXIpIFwKKyAgICAgICAgLm1vdmVf
dG9fZWxlbWVudCh0b0NsaWNrKSBcCisgICAgICAgIC5jbGljaygpCisKKyAgICBjbGljay5wZXJm
b3JtKCkKKyAgICBhc3NlcnQgIkNsaWNrZWQiID09IHRvQ2xpY2suZ2V0X2F0dHJpYnV0ZSgndmFs
dWUnKQorCisKK2RlZiB0ZXN0Q2Fubm90TW92ZVRvQU51bGxMb2NhdG9yKGRyaXZlciwgcGFnZXMp
OgorICAgICIiIkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5pdW0uaW50ZXJhY3Rpb25zLlRl
c3RCYXNpY01vdXNlSW50ZXJmYWNlLiIiIgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdl
Lmh0bWwiKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAg
ICAgbW92ZSA9IEFjdGlvbkNoYWlucyhkcml2ZXIpIFwKKyAgICAgICAgICAgIC5tb3ZlX3RvX2Vs
ZW1lbnQoTm9uZSkKKyAgICAgICAgbW92ZS5wZXJmb3JtKCkKKworCitAcHl0ZXN0Lm1hcmsueGZh
aWxfbWFyaW9uZXR0ZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTIxNzgnKQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcwor
QHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKK2Rl
ZiB0ZXN0Q2xpY2tpbmdPbkZvcm1FbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICAiIiJDb3Bp
ZWQgZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5Db21iaW5lZElucHV0QWN0
aW9uc1Rlc3QuIiIiCisgICAgcGFnZXMubG9hZCgiZm9ybVNlbGVjdGlvblBhZ2UuaHRtbCIpCisg
ICAgb3B0aW9ucyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJvcHRpb24iKQor
ICAgIHNlbGVjdFRocmVlT3B0aW9ucyA9IEFjdGlvbkNoYWlucyhkcml2ZXIpIFwKKyAgICAgICAg
LmNsaWNrKG9wdGlvbnNbMV0pIFwKKyAgICAgICAgLmtleV9kb3duKEtleXMuU0hJRlQpIFwKKyAg
ICAgICAgLmNsaWNrKG9wdGlvbnNbMl0pIFwKKyAgICAgICAgLmNsaWNrKG9wdGlvbnNbM10pIFwK
KyAgICAgICAgLmtleV91cChLZXlzLlNISUZUKQorICAgIHNlbGVjdFRocmVlT3B0aW9ucy5wZXJm
b3JtKCkKKworICAgIHNob3dCdXR0b24gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInNo
b3dzZWxlY3RlZCIpCisgICAgc2hvd0J1dHRvbi5jbGljaygpCisKKyAgICByZXN1bHRFbGVtZW50
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicmVzdWx0IikKKyAgICBhc3NlcnQgInJvcXVl
Zm9ydCBwYXJtaWdpYW5vIGNoZWRkYXIiID09IHJlc3VsdEVsZW1lbnQudGV4dAorCisKK0BweXRl
c3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5t
b3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MjE3OCcpCitkZWYgdGVzdFNlbGVjdGluZ011
bHRpcGxlSXRlbXMoZHJpdmVyLCBwYWdlcyk6CisgICAgIiIiQ29waWVkIGZyb20gb3JnLm9wZW5x
YS5zZWxlbml1bS5pbnRlcmFjdGlvbnMuQ29tYmluZWRJbnB1dEFjdGlvbnNUZXN0LiIiIgorICAg
IHBhZ2VzLmxvYWQoInNlbGVjdGFibGVJdGVtcy5odG1sIikKKyAgICByZXBvcnRpbmdFbGVtZW50
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiaW5mb2RpdiIpCisgICAgYXNzZXJ0ICJubyBp
bmZvIiA9PSByZXBvcnRpbmdFbGVtZW50LnRleHQKKworICAgIGxpc3RJdGVtcyA9IGRyaXZlci5m
aW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJsaSIpCisgICAgc2VsZWN0VGhyZWVJdGVtcyA9IEFj
dGlvbkNoYWlucyhkcml2ZXIpIFwKKyAgICAgICAgLmtleV9kb3duKEtleXMuQ09OVFJPTCkgXAor
ICAgICAgICAuY2xpY2sobGlzdEl0ZW1zWzFdKSBcCisgICAgICAgIC5jbGljayhsaXN0SXRlbXNb
M10pIFwKKyAgICAgICAgLmNsaWNrKGxpc3RJdGVtc1s1XSkgXAorICAgICAgICAua2V5X3VwKEtl
eXMuQ09OVFJPTCkKKyAgICBzZWxlY3RUaHJlZUl0ZW1zLnBlcmZvcm0oKQorCisgICAgYXNzZXJ0
ICIjaXRlbTIgI2l0ZW00ICNpdGVtNiIgPT0gcmVwb3J0aW5nRWxlbWVudC50ZXh0CisKKyAgICAj
IE5vdyBjbGljayBvbiBhbm90aGVyIGVsZW1lbnQsIG1ha2Ugc3VyZSB0aGF0J3MgdGhlIG9ubHkg
b25lIHNlbGVjdGVkLgorICAgIGFjdGlvbnNCdWlsZGVyID0gQWN0aW9uQ2hhaW5zKGRyaXZlcikK
KyAgICBhY3Rpb25zQnVpbGRlci5jbGljayhsaXN0SXRlbXNbNl0pLnBlcmZvcm0oKQorICAgIGFz
c2VydCAiI2l0ZW03IiA9PSByZXBvcnRpbmdFbGVtZW50LnRleHQKKworCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfbWFyaW9uZXR0ZSgKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxh
L2dlY2tvZHJpdmVyL2lzc3Vlcy82NDYnKQorZGVmIHRlc3RTZW5kaW5nS2V5c1RvQWN0aXZlRWxl
bWVudFdpdGhNb2RpZmllcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKyAgICBlID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgid29ya2luZyIpCisg
ICAgZS5jbGljaygpCisKKyAgICBBY3Rpb25DaGFpbnMoZHJpdmVyKSBcCisgICAgICAgIC5rZXlf
ZG93bihLZXlzLlNISUZUKSBcCisgICAgICAgIC5zZW5kX2tleXMoImFiYyIpIFwKKyAgICAgICAg
LmtleV91cChLZXlzLlNISUZUKSBcCisgICAgICAgIC5wZXJmb3JtKCkKKworICAgIGFzc2VydCAi
QUJDIiA9PSBlLmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykKKworCitkZWYgdGVzdF9jYW5fcmVzZXRf
aW50ZXJhY3Rpb25zKGRyaXZlciwgcGFnZXMpOgorICAgIEFjdGlvbkNoYWlucyhkcml2ZXIpLnJl
c2V0X2FjdGlvbnMoKQorCisKK2RlZiB0ZXN0X2Nhbl9wYXVzZShkcml2ZXIsIHBhZ2VzKToKKyAg
ICBmcm9tIHRpbWUgaW1wb3J0IHRpbWUKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5o
dG1sIikKKworICAgIHBhdXNlX3RpbWUgPSAyCisgICAgdG9DbGljayA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoImNsaWNrRmllbGQiKQorICAgIHRvRG91YmxlQ2xpY2sgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X2lkKCJkb3VibGVDbGlja0ZpZWxkIikKKworICAgIHBhdXNlID0gQWN0aW9u
Q2hhaW5zKGRyaXZlcikuY2xpY2sodG9DbGljaykucGF1c2UocGF1c2VfdGltZSkuY2xpY2sodG9E
b3VibGVDbGljaykKKworICAgIHN0YXJ0ID0gdGltZSgpCisgICAgcGF1c2UucGVyZm9ybSgpCisg
ICAgZW5kID0gdGltZSgpCisKKyAgICBhc3NlcnQgcGF1c2VfdGltZSA8IGVuZCAtIHN0YXJ0Cisg
ICAgYXNzZXJ0ICJDbGlja2VkIiA9PSB0b0NsaWNrLmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykKKyAg
ICBhc3NlcnQgIkNsaWNrZWQiID09IHRvRG91YmxlQ2xpY2suZ2V0X2F0dHJpYnV0ZSgndmFsdWUn
KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL25ldHdvcmsucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vbmV0d29yay5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjM2ZGViNTcwMGQKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vbmV0d29yay5weQpAQCAtMCwwICsxLDU1IEBACisj
IExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVy
IG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUg
Tk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwg
aW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxp
Y2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz
aW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhj
ZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEg
Y29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNl
bnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcg
b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQg
V0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBv
ciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2Ug
Z292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5z
ZS4KKworIyBtb2R1bGUgZm9yIGdldHRpbmcgdGhlIGxhbiBpcCBhZGRyZXNzIG9mIHRoZSBjb21w
dXRlcgoraW1wb3J0IG9zCitpbXBvcnQgc29ja2V0CisKK2lmIG9zLm5hbWUgIT0gIm50IjoKKyAg
ICBpbXBvcnQgZmNudGwKKyAgICBpbXBvcnQgc3RydWN0CisKKyAgICBkZWYgZ2V0X2ludGVyZmFj
ZV9pcChpZm5hbWUpOgorICAgICAgICBkZWYgX2J5dGVzKHZhbHVlLCBlbmNvZGluZyk6CisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGJ5dGVzKHZhbHVlLCBlbmNvZGlu
ZykgICMgUHl0aG9uIDMKKyAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlICAjIFB5dGhvbiAyCisKKyAgICAgICAgc2NrdCA9IHNvY2tldC5z
b2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX0RHUkFNKQorICAgICAgICByZXR1cm4g
c29ja2V0LmluZXRfbnRvYShmY250bC5pb2N0bCgKKyAgICAgICAgICAgIHNja3QuZmlsZW5vKCks
CisgICAgICAgICAgICAweDg5MTUsICAjIFNJT0NHSUZBRERSCisgICAgICAgICAgICBzdHJ1Y3Qu
cGFjaygnMjU2cycsIF9ieXRlcyhpZm5hbWVbOjE1XSwgJ3V0Zi04JykpCisgICAgICAgIClbMjA6
MjRdKQorCisKK2RlZiBnZXRfbGFuX2lwKCk6CisgICAgdHJ5OgorICAgICAgICBpcCA9IHNvY2tl
dC5nZXRob3N0YnluYW1lKHNvY2tldC5nZXRob3N0bmFtZSgpKQorICAgIGV4Y2VwdCBFeGNlcHRp
b246CisgICAgICAgIHJldHVybiAnMC4wLjAuMCcKKyAgICBpZiBpcC5zdGFydHN3aXRoKCIxMjcu
IikgYW5kIG9zLm5hbWUgIT0gIm50IjoKKyAgICAgICAgaW50ZXJmYWNlcyA9IFsiZXRoMCIsICJl
dGgxIiwgImV0aDIiLCAiZW4wIiwgImVuMSIsICJlbjIiLCAiZW4zIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAiZW40IiwgIndsYW4wIiwgIndsYW4xIiwgIndpZmkwIiwgImF0aDAiLCAiYXRoMSIs
ICJwcHAwIl0KKyAgICAgICAgZm9yIGlmbmFtZSBpbiBpbnRlcmZhY2VzOgorICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgIGlwID0gZ2V0X2ludGVyZmFjZV9pcChpZm5hbWUpCisgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICByZXR1cm4gaXAKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9vcGFjaXR5
X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL29wYWNpdHlfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1OTNlOGQ2N2UwCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL29wYWNpdHlfdGVzdHMucHkKQEAgLTAsMCArMSw0NyBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBw
eXRlc3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorCisK
K0BweXRlc3QubWFyay54ZmFpbF9pZQorZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrT25FbGVt
ZW50c1dpdGhPcGFjaXR5WmVybyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJjbGlj
a19qYWNrZXIuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICJjbGlja0phY2tlciIpCisgICAgYXNzZXJ0ICcwJyA9PSBlbGVtZW50LnZhbHVlX29mX2Nzc19w
cm9wZXJ0eSgib3BhY2l0eSIpLCBcCisgICAgICAgICJQcmVjb25kaXRpb24gZmFpbGVkOiBjbGlj
a0phY2tlciBzaG91bGQgYmUgdHJhbnNwYXJlbnQuXAorICAgICAgICBWYWx1ZSB3YXMgJXMiICUg
ZWxlbWVudC52YWx1ZV9vZl9jc3NfcHJvcGVydHkoIm9wYWNpdHkiKQorICAgIGVsZW1lbnQuY2xp
Y2soKQorICAgIGFzc2VydCAnMScgPT0gZWxlbWVudC52YWx1ZV9vZl9jc3NfcHJvcGVydHkoIm9w
YWNpdHkiKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9pZQorZGVmIHRlc3RTaG91bGRCZUFibGVU
b1NlbGVjdE9wdGlvbnNGcm9tQW5JbnZpc2libGVTZWxlY3QoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgc2VsZWN0ID0gZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5JRCwgImludmlzaV9zZWxlY3QiKQorICAgIG9wdGlvbnMgPSBzZWxlY3QuZmluZF9l
bGVtZW50cyhCeS5UQUdfTkFNRSwgIm9wdGlvbiIpCisgICAgYXBwbGVzID0gb3B0aW9uc1swXQor
ICAgIG9yYW5nZXMgPSBvcHRpb25zWzFdCisKKyAgICBhc3NlcnQgYXBwbGVzLmlzX3NlbGVjdGVk
KCkKKyAgICBhc3NlcnQgbm90IG9yYW5nZXMuaXNfc2VsZWN0ZWQoKQorCisgICAgb3Jhbmdlcy5j
bGljaygpCisgICAgYXNzZXJ0IG5vdCBhcHBsZXMuaXNfc2VsZWN0ZWQoKQorICAgIGFzc2VydCBv
cmFuZ2VzLmlzX3NlbGVjdGVkKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRfdGlt
ZW91dF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRfdGltZW91dF90ZXN0cy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjFlMzc1MDI2NTIKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkX3RpbWVvdXRfdGVzdHMucHkKQEAgLTAsMCAr
MSw0MyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAo
U0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMu
ICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBh
ZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAg
VGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGlj
ZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhp
cyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5
IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNo
ZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxp
Y2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lT
LCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVy
IGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmlj
IGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIg
dGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhj
ZXB0aW9ucyBpbXBvcnQgVGltZW91dEV4Y2VwdGlvbgorCisKK0BweXRlc3QueWllbGRfZml4dHVy
ZShhdXRvdXNlPVRydWUpCitkZWYgcmVzZXRfdGltZW91dHMoZHJpdmVyKToKKyAgICB5aWVsZAor
ICAgIGRyaXZlci5zZXRfcGFnZV9sb2FkX3RpbWVvdXQoMzAwKQorCisKK0BweXRlc3QubWFyay54
ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdQaGFudG9tSlMgZG9lcyBub3QgaW1wbGVtZW50
IHBhZ2UgbG9hZCB0aW1lb3V0cycpCitkZWYgdGVzdFNob3VsZFRpbWVvdXRPblBhZ2VMb2FkVGFr
aW5nVG9vTG9uZyhkcml2ZXIsIHBhZ2VzKToKKyAgICBkcml2ZXIuc2V0X3BhZ2VfbG9hZF90aW1l
b3V0KDAuMDEpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAg
ICAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorCisKK0BweXRlc3QubWFyay54ZmFp
bF9waGFudG9tanMoCisgICAgcmVhc29uPSdQaGFudG9tSlMgZG9lcyBub3QgaW1wbGVtZW50IHBh
Z2UgbG9hZCB0aW1lb3V0cycpCitkZWYgdGVzdENsaWNrU2hvdWxkVGltZW91dChkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGRyaXZlci5zZXRf
cGFnZV9sb2FkX3RpbWVvdXQoMC4wMSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4
Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIm11bHRpbGluZWxp
bmsiKS5jbGljaygpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkZXIucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vcGFnZV9sb2FkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjhhZjhmY2FjNGM4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZGVy
LnB5CkBAIC0wLDAgKzEsMzIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiJUaGlzIG1vZHVsZSBjb250YWlucyBzb21l
IGRlY29yYXRvcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBzdXBwb3J0Cit0aGUgcGFnZSBtb2RlbHMu
IEZvciBleGFtcGxlIGZvciBhbiBhY3Rpb24gdGhhdCBuZWVkcyBhIHBhZ2UgdG8gYmUgZnVsbHkK
K2xvYWRlZCwgdGhlIEByZXF1aXJlX2xvYWRlZCBkZWNvcmF0b3Igd2lsbCBtYWtlIHN1cmUgdGhl
IHBhZ2UgaXMgbG9hZGVkCitiZWZvcmUgdGhlIGNhbGwgaXMgaW52b2tlZC4KK1RoaXMgcGF0dGVy
biBpcyBhbHNvIHVzZWZ1bCBmb3Igd2FpdGluZyBmb3IgY2VydGFpbiBhc3luY2hyb25vdXMgZXZl
bnRzCit0byBoYXBwZW4gYmVmb3JlIGV4Y3V0aW5nIGNlcnRhaW4gYWN0aW9ucy4iIiIKKworCitk
ZWYgcmVxdWlyZV9sb2FkZWQoZnVuYyk6CisgICAgZGVmIGxvYWRfcGFnZShwYWdlLCAqcGFyYW1z
LCAqKmt3ZHMpOgorICAgICAgICBpZiBub3QgcGFnZS5pc19sb2FkZWQoKToKKyAgICAgICAgICAg
IHBhZ2UubG9hZCgpCisgICAgICAgIGFzc2VydCBwYWdlLmlzX2xvYWRlZCgpLCAicGFnZSBzaG91
bGQgYmUgbG9hZGVkIGJ5IG5vdyIKKyAgICAgICAgcmV0dXJuIGZ1bmMocGFnZSwgKnBhcmFtcywg
Kiprd2RzKQorICAgIHJldHVybiBsb2FkX3BhZ2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdl
X2xvYWRpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkaW5nX3Rlc3RzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ODUzMzBiM2Q4YwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVzdHMucHkKQEAgLTAsMCArMSwxMjgg
QEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykg
dW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl
IHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBT
RkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lU
SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBM
aWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlv
bnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29t
bW9uLmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGlt
cG9ydCBXZWJEcml2ZXJXYWl0Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9y
dCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCisKKworZGVmIHRlc3RTaG91bGRXYWl0Rm9yRG9j
dW1lbnRUb0JlTG9hZGVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRl
c3QuaHRtbCIpCisgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiSGVsbG8gV2ViRHJpdmVyIgor
CisKKyMgRGlzYWJsZWQgdGlsbCBKYXZhIFdlYlNlcnZlciBpcyB1c2VkCisjIGRlZiB0ZXN0U2hv
dWxkRm9sbG93UmVkaXJlY3RzU2VudEluVGhlSHR0cFJlc3BvbnNlSGVhZGVycyhkcml2ZXIsIHBh
Z2VzKToKKyMgICAgcGFnZXMubG9hZCgicmVkaXJlY3QuaHRtbCIpCisjICAgIGFzc2VydCBkcml2
ZXIudGl0bGUgPT0gIldlIEFycml2ZSBIZXJlIgorCisKKyMgRGlzYWJsZWQgdGlsbCB0aGUgSmF2
YSBXZWJTZXJ2ZXIgaXMgdXNlZAorIyBkZWYgdGVzdFNob3VsZEZvbGxvd01ldGFSZWRpcmVjdHMo
ZHJpdmVyLCBwYWdlcyk6CisjICAgIHBhZ2VzLmxvYWQoIm1ldGFSZWRpcmVjdC5odG1sIikKKyMg
ICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisKKworZGVmIHRlc3RT
aG91bGRCZUFibGVUb0dldEFGcmFnbWVudE9uVGhlQ3VycmVudFBhZ2UoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGxvY2F0aW9uID0gZHJpdmVy
LmN1cnJlbnRfdXJsCisgICAgZHJpdmVyLmdldChsb2NhdGlvbiArICIjdGV4dCIpCisgICAgZHJp
dmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImlkMSIpCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsX21hcmlvbmV0dGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0ZXN0U2hv
dWxkUmV0dXJuV2hlbkdldHRpbmdBVXJsVGhhdERvZXNOb3RSZXNvbHZlKGRyaXZlcik6CisgICAg
IyAgT2YgY291cnNlLCB3ZSdyZSB1cCB0aGUgY3JlZWsgaWYgdGhpcyBldmVyIGRvZXMgZ2V0IHJl
Z2lzdGVyZWQKKyAgICBkcml2ZXIuZ2V0KCJodHRwOi8vd3d3LnRoaXN1cmxkb2Vzbm90ZXhpc3Qu
Y29teC8iKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNlcz1XZWJEcml2
ZXJFeGNlcHRpb24pCitkZWYgdGVzdFNob3VsZFJldHVybldoZW5HZXR0aW5nQVVybFRoYXREb2Vz
Tm90Q29ubmVjdChkcml2ZXIpOgorICAgICMgIEhlcmUncyBob3BpbmcgdGhhdCB0aGVyZSdzIG5v
dGhpbmcgaGVyZS4gVGhlcmUgc2hvdWxkbid0IGJlCisgICAgZHJpdmVyLmdldCgiaHR0cDovL2xv
Y2FsaG9zdDozMDAxIikKKworIyBkZWYgdGVzdFNob3VsZEJlQWJsZVRvTG9hZEFQYWdlV2l0aEZy
YW1lc2V0c0FuZFdhaXRVbnRpbEFsbEZyYW1lc0FyZUxvYWRlZCgpIHsKKyMgICAgIGRyaXZlci5n
ZXQocGFnZXMuZnJhbWVzZXRQYWdlKQorIworIyAgICAgZHJpdmVyLnN3aXRjaFRvKCkuZnJhbWUo
MCkKKyMgICAgIFdlYkVsZW1lbnQgcGFnZU51bWJlciA9IGRyaXZlci5maW5kRWxlbWVudChCeS54
cGF0aCgiI3NwYW5bQGlkPSdwYWdlTnVtYmVyJ10iKSkKKyMgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
KHBhZ2VOdW1iZXIuZ2V0VGV4dCgpLnRyaW0oKSwgZXF1YWxUbygiMSIpKQorIworIyAgICAgZHJp
dmVyLnN3aXRjaFRvKCkuZGVmYXVsdENvbnRlbnQoKS5zd2l0Y2hUbygpLmZyYW1lKDEpCisjICAg
ICBwYWdlTnVtYmVyID0gZHJpdmVyLmZpbmRFbGVtZW50KEJ5LnhwYXRoKCIjc3BhbltAaWQ9J3Bh
Z2VOdW1iZXInXSIpKQorIyAgICAgc2VsZi5hc3NlcnRFcXVhbCgocGFnZU51bWJlci5nZXRUZXh0
KCkudHJpbSgpLCBlcXVhbFRvKCIyIikpCisKKyMgTmVlZCB0byBpbXBsZW1lbnQgdGhpcyBkZWNv
cmF0b3IKKyMgQE5lZWRzRnJlc2hEcml2ZXIKKyMgZGVmIHRlc3RTb3VsZERvTm90aGluZ0lmVGhl
cmVJc05vdGhpbmdUb0dvQmFja1RvKCkgeworIyAgICAgb3JpZ2luYWxUaXRsZSA9IGRyaXZlci5n
ZXRUaXRsZSgpOworIyAgICAgZHJpdmVyLmdldChwYWdlcy5mb3JtUGFnZSk7CisjICAgICBkcml2
ZXIuYmFjaygpOworIyAgICAgIyBXZSBtYXkgaGF2ZSByZXR1cm5lZCB0byB0aGUgYnJvd3Nlcidz
IGhvbWUgcGFnZQorIyAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIudGl0bGUsIGFueU9mKGVx
dWFsVG8ob3JpZ2luYWxUaXRsZSksIGVxdWFsVG8oIldlIExlYXZlIEZyb20gSGVyZSIpKSk7CisK
KworZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmlnYXRlQmFja0luVGhlQnJvd3Nlckhpc3Rvcnko
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisKKyAgICBk
cml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaW1hZ2VCdXR0b24iKS5zdWJtaXQo
KQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJy
aXZlIEhlcmUiKSkKKworICAgIGRyaXZlci5iYWNrKCkKKyAgICBhc3NlcnQgZHJpdmVyLnRpdGxl
ID09ICJXZSBMZWF2ZSBGcm9tIEhlcmUiCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb05hdmln
YXRlQmFja0luVGhlQnJvd3Nlckhpc3RvcnlJblByZXNlbmNlT2ZJZnJhbWVzKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIGRyaXZlci5maW5k
X2VsZW1lbnQoYnk9QnkuTkFNRSwgdmFsdWU9InNhbWVXaW5kb3ciKS5jbGljaygpCisKKyAgICBh
c3NlcnQgZHJpdmVyLnRpdGxlID09ICJUaGlzIHBhZ2UgaGFzIGlmcmFtZXMiCisKKyAgICBkcml2
ZXIuYmFjaygpCisgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiWEhUTUwgVGVzdCBQYWdlIgor
CisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9OYXZpZ2F0ZUZvcndhcmRzSW5UaGVCcm93c2VySGlz
dG9yeShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKwor
ICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1
Ym1pdCgpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJX
ZSBBcnJpdmUgSGVyZSIpKQorCisgICAgZHJpdmVyLmJhY2soKQorICAgIGFzc2VydCBkcml2ZXIu
dGl0bGUgPT0gIldlIExlYXZlIEZyb20gSGVyZSIKKworICAgIGRyaXZlci5mb3J3YXJkKCkKKyAg
ICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIKKworCitAcHl0ZXN0Lm1h
cmsueGZhaWxfaWUKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJ1bj1GYWxzZSkKK2Rl
ZiB0ZXN0U2hvdWxkTm90SGFuZ2lmRG9jdW1lbnRPcGVuQ2FsbElzTmV2ZXJGb2xsb3dlZEJ5RG9j
dW1lbnRDbG9zZUNhbGwoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZG9jdW1lbnRf
d3JpdGVfaW5fb25sb2FkLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgs
ICIvL2JvZHkiKQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9SZWZyZXNoQVBhZ2UoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorCisgICAgZHJpdmVy
LnJlZnJlc2goKQorCisgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiWEhUTUwgVGVzdCBQYWdl
IgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Bvc2l0aW9uX2FuZF9zaXplX3Rlc3RzLnB5IGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3Bvc2l0aW9uX2FuZF9zaXplX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5lZDhiYTQ2MmY4NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9wb3NpdGlvbl9hbmRfc2l6ZV90ZXN0cy5weQpAQCAtMCwwICsxLDEwOCBAQAorIyBMaWNlbnNl
ZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMg
b3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBm
aWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0
aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0
aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAg
KHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBj
b21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2Yg
dGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElD
RU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVl
ZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z
ZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJ
RVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGll
ZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmlu
ZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2lt
cG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBC
eQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9EZXRlcm1pbmVUaGVMb2NhdGlvbk9mQW5FbGVt
ZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAg
ICBsb2NhdGlvbiA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJ1c2VybmFtZSIpLmxvY2F0
aW9uX29uY2Vfc2Nyb2xsZWRfaW50b192aWV3CisgICAgYXNzZXJ0IGxvY2F0aW9uWyJ4Il0gPiAw
CisgICAgYXNzZXJ0IGxvY2F0aW9uWyJ5Il0gPiAwCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdwYWdlJywgKAorICAgICdjb29yZGluYXRlc190ZXN0cy9zaW1wbGVfcGFnZS5odG1sJywK
KyAgICAnY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2VtcHR5X2VsZW1lbnQuaHRtbCcsCisg
ICAgJ2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF90cmFuc3BhcmVudF9lbGVtZW50Lmh0bWwn
LAorICAgICdjb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfaGlkZGVuX2VsZW1lbnQuaHRtbCcp
LAorICAgIGlkcz0oJ2Jhc2ljJywgJ2VtcHR5JywgJ3RyYW5zcGFyZW50JywgJ2hpZGRlbicpKQor
ZGVmIHRlc3RTaG91bGRHZXRDb29yZGluYXRlc09mQW5FbGVtZW50KHBhZ2UsIGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQocGFnZSkKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5JRCwgImJveCIpCisgICAgX2NoZWNrX2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb25f
b25jZV9zY3JvbGxlZF9pbnRvX3ZpZXcsIHg9MTAsIHk9MTApCisgICAgX2NoZWNrX2xvY2F0aW9u
KGVsZW1lbnQubG9jYXRpb24sIHg9MTAsIHk9MTApCisKKworZGVmIHRlc3RTaG91bGRHZXRDb29y
ZGluYXRlc09mQW5JbnZpc2libGVFbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImNvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9pbnZpc2libGVfZWxlbWVudC5odG1sIikK
KyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImJveCIpCisgICAgX2No
ZWNrX2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb25fb25jZV9zY3JvbGxlZF9pbnRvX3ZpZXcsIHg9
MCwgeT0wKQorICAgIF9jaGVja19sb2NhdGlvbihlbGVtZW50LmxvY2F0aW9uLCB4PTAsIHk9MCkK
KworCitkZWYgdGVzdFNob3VsZFNjcm9sbFBhZ2VBbmRHZXRDb29yZGluYXRlc09mQW5FbGVtZW50
VGhhdElzT3V0T2ZWaWV3UG9ydChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJjb29y
ZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfZWxlbWVudF9vdXRfb2Zfdmlldy5odG1sIikKKyAgICBl
bGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImJveCIpCisgICAgd2luZG93SGVp
Z2h0ID0gZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpWyJoZWlnaHQiXQorICAgIF9jaGVja19sb2Nh
dGlvbihlbGVtZW50LmxvY2F0aW9uX29uY2Vfc2Nyb2xsZWRfaW50b192aWV3LCB4PTEwKQorICAg
IGFzc2VydCAwIDw9IGVsZW1lbnQubG9jYXRpb25fb25jZV9zY3JvbGxlZF9pbnRvX3ZpZXdbInki
XSA8PSAod2luZG93SGVpZ2h0IC0gMTAwKQorICAgIF9jaGVja19sb2NhdGlvbihlbGVtZW50Lmxv
Y2F0aW9uLCB4PTEwLCB5PTUwMTApCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUK
K0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK2RlZiB0ZXN0U2hvdWxkR2V0Q29vcmRpbmF0
ZXNPZkFuRWxlbWVudEluQUZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImNv
b3JkaW5hdGVzX3Rlc3RzL2VsZW1lbnRfaW5fZnJhbWUuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRj
aF90b19mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZnIiKSkKKyAgICBlbGVt
ZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImJveCIpCisgICAgX2NoZWNrX2xvY2F0
aW9uKGVsZW1lbnQubG9jYXRpb25fb25jZV9zY3JvbGxlZF9pbnRvX3ZpZXcsIHg9MjUsIHk9MjUp
CisgICAgX2NoZWNrX2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb24sIHg9MTAsIHk9MTApCisKKwor
QHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9t
anMKK2RlZiB0ZXN0U2hvdWxkR2V0Q29vcmRpbmF0ZXNPZkFuRWxlbWVudEluQU5lc3RlZEZyYW1l
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImNvb3JkaW5hdGVzX3Rlc3RzL2VsZW1l
bnRfaW5fbmVzdGVkX2ZyYW1lLmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiaWZyIikpCisgICAgZHJpdmVyLnN3aXRjaF90b19m
cmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZnIiKSkKKyAgICBlbGVtZW50ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImJveCIpCisgICAgX2NoZWNrX2xvY2F0aW9uKGVs
ZW1lbnQubG9jYXRpb25fb25jZV9zY3JvbGxlZF9pbnRvX3ZpZXcsIHg9NDAsIHk9NDApCisgICAg
X2NoZWNrX2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb24sIHg9MTAsIHk9MTApCisKKworZGVmIHRl
c3RTaG91bGRHZXRDb29yZGluYXRlc09mQW5FbGVtZW50V2l0aEZpeGVkUG9zaXRpb24oZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2Zp
eGVkX2VsZW1lbnQuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnku
SUQsICJmaXhlZCIpCisgICAgX2NoZWNrX2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb25fb25jZV9z
Y3JvbGxlZF9pbnRvX3ZpZXcsIHk9MCkKKyAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5sb2Nh
dGlvbiwgeT0wKQorCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImJvdHRvbSIpLmNs
aWNrKCkKKyAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5sb2NhdGlvbl9vbmNlX3Njcm9sbGVk
X2ludG9fdmlldywgeT0wKQorICAgIGFzc2VydCBlbGVtZW50LmxvY2F0aW9uWyJ5Il0gPiAwCisK
KworZGVmIHRlc3RTaG91bGRDb3JyZWN0bHlJZGVudGlmeVRoYXRBbkVsZW1lbnRIYXNXaWR0aEFu
ZEhlaWdodChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIp
CisgICAgc2hyaW5rbyA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJsaW5rSWQiKQorICAg
IHNpemUgPSBzaHJpbmtvLnNpemUKKyAgICBhc3NlcnQgc2l6ZVsid2lkdGgiXSA+IDAKKyAgICBh
c3NlcnQgc2l6ZVsiaGVpZ2h0Il0gPiAwCisKKworZGVmIF9jaGVja19sb2NhdGlvbihsb2NhdGlv
biwgKiprd2FyZ3MpOgorICAgIHRyeToKKyAgICAgICAgIyBweXRob24gMi54CisgICAgICAgIGV4
cGVjdGVkID0ga3dhcmdzLnZpZXdpdGVtcygpCisgICAgICAgIGFjdHVhbCA9IGxvY2F0aW9uLnZp
ZXdpdGVtcygpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAjIHB5dGhvbiAz
LngKKyAgICAgICAgZXhwZWN0ZWQgPSBrd2FyZ3MuaXRlbXMoKQorICAgICAgICBhY3R1YWwgPSBs
b2NhdGlvbi5pdGVtcygpCisgICAgYXNzZXJ0IGV4cGVjdGVkIDw9IGFjdHVhbApkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL3Byb3h5X3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Byb3h5X3Rlc3RzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NTczNmM5ZWMzOQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wcm94eV90ZXN0cy5weQpAQCAtMCwwICsxLDE0MSBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLnBy
b3h5IGltcG9ydCBQcm94eSwgUHJveHlUeXBlCisKKworTUFOVUFMX1BST1hZID0geworICAgICdo
dHRwUHJveHknOiAnc29tZS51cmw6MTIzNCcsCisgICAgJ2Z0cFByb3h5JzogJ2Z0cC5wcm94eScs
CisgICAgJ25vUHJveHknOiAnbG9jYWxob3N0LCBmb28ubG9jYWxob3N0JywKKyAgICAnc3NsUHJv
eHknOiAnc3NsLnByb3h5OjEyMzQnLAorICAgICdzb2Nrc1Byb3h5JzogJ3NvY2tzLnByb3h5OjY1
NTU1JywKKyAgICAnc29ja3NVc2VybmFtZSc6ICd0ZXN0JywKKyAgICAnc29ja3NQYXNzd29yZCc6
ICd0ZXN0JywKK30KKworUEFDX1BST1hZID0geworICAgICdwcm94eUF1dG9jb25maWdVcmwnOiAn
aHR0cDovL3BhYy51cmw6MTIzNCcsCit9CisKK0FVVE9ERVRFQ1RfUFJPWFkgPSB7CisgICAgJ2F1
dG9kZXRlY3QnOiBUcnVlLAorfQorCisKK2RlZiB0ZXN0Q2FuQWRkTWFudWFsUHJveHlUb0Rlc2ly
ZWRDYXBhYmlsaXRpZXMoKToKKyAgICBwcm94eSA9IFByb3h5KCkKKyAgICBwcm94eS5odHRwX3By
b3h5ID0gTUFOVUFMX1BST1hZWydodHRwUHJveHknXQorICAgIHByb3h5LmZ0cF9wcm94eSA9IE1B
TlVBTF9QUk9YWVsnZnRwUHJveHknXQorICAgIHByb3h5Lm5vX3Byb3h5ID0gTUFOVUFMX1BST1hZ
Wydub1Byb3h5J10KKyAgICBwcm94eS5zc2xQcm94eSA9IE1BTlVBTF9QUk9YWVsnc3NsUHJveHkn
XQorICAgIHByb3h5LnNvY2tzUHJveHkgPSBNQU5VQUxfUFJPWFlbJ3NvY2tzUHJveHknXQorICAg
IHByb3h5LnNvY2tzVXNlcm5hbWUgPSBNQU5VQUxfUFJPWFlbJ3NvY2tzVXNlcm5hbWUnXQorICAg
IHByb3h5LnNvY2tzUGFzc3dvcmQgPSBNQU5VQUxfUFJPWFlbJ3NvY2tzUGFzc3dvcmQnXQorCisg
ICAgZGVzaXJlZF9jYXBhYmlsaXRpZXMgPSB7fQorICAgIHByb3h5LmFkZF90b19jYXBhYmlsaXRp
ZXMoZGVzaXJlZF9jYXBhYmlsaXRpZXMpCisKKyAgICBwcm94eV9jYXBhYmlsaXRpZXMgPSBNQU5V
QUxfUFJPWFkuY29weSgpCisgICAgcHJveHlfY2FwYWJpbGl0aWVzWydwcm94eVR5cGUnXSA9ICdN
QU5VQUwnCisgICAgZXhwZWN0ZWRfY2FwYWJpbGl0aWVzID0geydwcm94eSc6IHByb3h5X2NhcGFi
aWxpdGllc30KKyAgICBhc3NlcnQgZXhwZWN0ZWRfY2FwYWJpbGl0aWVzID09IGRlc2lyZWRfY2Fw
YWJpbGl0aWVzCisKKworZGVmIHRlc3RDYW5BZGRBdXRvZGV0ZWN0UHJveHlUb0Rlc2lyZWRDYXBh
YmlsaXRpZXMoKToKKyAgICBwcm94eSA9IFByb3h5KCkKKyAgICBwcm94eS5hdXRvX2RldGVjdCA9
IEFVVE9ERVRFQ1RfUFJPWFlbJ2F1dG9kZXRlY3QnXQorCisgICAgZGVzaXJlZF9jYXBhYmlsaXRp
ZXMgPSB7fQorICAgIHByb3h5LmFkZF90b19jYXBhYmlsaXRpZXMoZGVzaXJlZF9jYXBhYmlsaXRp
ZXMpCisKKyAgICBwcm94eV9jYXBhYmlsaXRpZXMgPSBBVVRPREVURUNUX1BST1hZLmNvcHkoKQor
ICAgIHByb3h5X2NhcGFiaWxpdGllc1sncHJveHlUeXBlJ10gPSAnQVVUT0RFVEVDVCcKKyAgICBl
eHBlY3RlZF9jYXBhYmlsaXRpZXMgPSB7J3Byb3h5JzogcHJveHlfY2FwYWJpbGl0aWVzfQorICAg
IGFzc2VydCBleHBlY3RlZF9jYXBhYmlsaXRpZXMgPT0gZGVzaXJlZF9jYXBhYmlsaXRpZXMKKwor
CitkZWYgdGVzdENhbkFkZFBBQ1Byb3h5VG9EZXNpcmVkQ2FwYWJpbGl0aWVzKCk6CisgICAgcHJv
eHkgPSBQcm94eSgpCisgICAgcHJveHkucHJveHlfYXV0b2NvbmZpZ191cmwgPSBQQUNfUFJPWFlb
J3Byb3h5QXV0b2NvbmZpZ1VybCddCisKKyAgICBkZXNpcmVkX2NhcGFiaWxpdGllcyA9IHt9Cisg
ICAgcHJveHkuYWRkX3RvX2NhcGFiaWxpdGllcyhkZXNpcmVkX2NhcGFiaWxpdGllcykKKworICAg
IHByb3h5X2NhcGFiaWxpdGllcyA9IFBBQ19QUk9YWS5jb3B5KCkKKyAgICBwcm94eV9jYXBhYmls
aXRpZXNbJ3Byb3h5VHlwZSddID0gJ1BBQycKKyAgICBleHBlY3RlZF9jYXBhYmlsaXRpZXMgPSB7
J3Byb3h5JzogcHJveHlfY2FwYWJpbGl0aWVzfQorICAgIGFzc2VydCBleHBlY3RlZF9jYXBhYmls
aXRpZXMgPT0gZGVzaXJlZF9jYXBhYmlsaXRpZXMKKworCitkZWYgdGVzdENhbk5vdENoYW5nZUlu
aXRpYWxpemVkUHJveHlUeXBlKCk6CisgICAgcHJveHkgPSBQcm94eShyYXc9eydwcm94eVR5cGUn
OiAnZGlyZWN0J30pCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbik6CisgICAgICAg
IHByb3h5LnByb3h5X3R5cGUgPSBQcm94eVR5cGUuU1lTVEVNCisKKyAgICBwcm94eSA9IFByb3h5
KHJhdz17J3Byb3h5VHlwZSc6IFByb3h5VHlwZS5ESVJFQ1R9KQorICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhFeGNlcHRpb24pOgorICAgICAgICBwcm94eS5wcm94eV90eXBlID0gUHJveHlUeXBlLlNZ
U1RFTQorCisKK2RlZiB0ZXN0Q2FuSW5pdE1hbnVhbFByb3h5KCk6CisgICAgcHJveHkgPSBQcm94
eShyYXc9TUFOVUFMX1BST1hZKQorCisgICAgYXNzZXJ0IFByb3h5VHlwZS5NQU5VQUwgPT0gcHJv
eHkucHJveHlfdHlwZQorICAgIGFzc2VydCBNQU5VQUxfUFJPWFlbJ2h0dHBQcm94eSddID09IHBy
b3h5Lmh0dHBfcHJveHkKKyAgICBhc3NlcnQgTUFOVUFMX1BST1hZWydmdHBQcm94eSddID09IHBy
b3h5LmZ0cF9wcm94eQorICAgIGFzc2VydCBNQU5VQUxfUFJPWFlbJ25vUHJveHknXSA9PSBwcm94
eS5ub19wcm94eQorICAgIGFzc2VydCBNQU5VQUxfUFJPWFlbJ3NzbFByb3h5J10gPT0gcHJveHku
c3NsUHJveHkKKyAgICBhc3NlcnQgTUFOVUFMX1BST1hZWydzb2Nrc1Byb3h5J10gPT0gcHJveHku
c29ja3NQcm94eQorICAgIGFzc2VydCBNQU5VQUxfUFJPWFlbJ3NvY2tzVXNlcm5hbWUnXSA9PSBw
cm94eS5zb2Nrc1VzZXJuYW1lCisgICAgYXNzZXJ0IE1BTlVBTF9QUk9YWVsnc29ja3NQYXNzd29y
ZCddID09IHByb3h5LnNvY2tzUGFzc3dvcmQKKworCitkZWYgdGVzdENhbkluaXRBdXRvZGV0ZWN0
UHJveHkoKToKKyAgICBwcm94eSA9IFByb3h5KHJhdz1BVVRPREVURUNUX1BST1hZKQorICAgIGFz
c2VydCBQcm94eVR5cGUuQVVUT0RFVEVDVCA9PSBwcm94eS5wcm94eV90eXBlCisgICAgYXNzZXJ0
IEFVVE9ERVRFQ1RfUFJPWFlbJ2F1dG9kZXRlY3QnXSA9PSBwcm94eS5hdXRvX2RldGVjdAorCisK
K2RlZiB0ZXN0Q2FuSW5pdFBBQ1Byb3h5KCk6CisgICAgcHJveHkgPSBQcm94eShyYXc9UEFDX1BS
T1hZKQorICAgIGFzc2VydCBQcm94eVR5cGUuUEFDID09IHByb3h5LnByb3h5X3R5cGUKKyAgICBh
c3NlcnQgUEFDX1BST1hZWydwcm94eUF1dG9jb25maWdVcmwnXSA9PSBwcm94eS5wcm94eV9hdXRv
Y29uZmlnX3VybAorCisKK2RlZiB0ZXN0Q2FuSW5pdEVtcHR5UHJveHkoKToKKyAgICBwcm94eSA9
IFByb3h5KCkKKyAgICBhc3NlcnQgUHJveHlUeXBlLlVOU1BFQ0lGSUVEID09IHByb3h5LnByb3h5
X3R5cGUKKyAgICBhc3NlcnQgJycgPT0gcHJveHkuaHR0cF9wcm94eQorICAgIGFzc2VydCAnJyA9
PSBwcm94eS5mdHBfcHJveHkKKyAgICBhc3NlcnQgJycgPT0gcHJveHkubm9fcHJveHkKKyAgICBh
c3NlcnQgJycgPT0gcHJveHkuc3NsUHJveHkKKyAgICBhc3NlcnQgJycgPT0gcHJveHkuc29ja3NQ
cm94eQorICAgIGFzc2VydCAnJyA9PSBwcm94eS5zb2Nrc1VzZXJuYW1lCisgICAgYXNzZXJ0ICcn
ID09IHByb3h5LnNvY2tzUGFzc3dvcmQKKyAgICBhc3NlcnQgcHJveHkuYXV0b19kZXRlY3QgaXMg
RmFsc2UKKyAgICBhc3NlcnQgJycgPT0gcHJveHkucHJveHlfYXV0b2NvbmZpZ191cmwKKworICAg
IGRlc2lyZWRfY2FwYWJpbGl0aWVzID0ge30KKyAgICBwcm94eS5hZGRfdG9fY2FwYWJpbGl0aWVz
KGRlc2lyZWRfY2FwYWJpbGl0aWVzKQorCisgICAgcHJveHlfY2FwYWJpbGl0aWVzID0ge30KKyAg
ICBwcm94eV9jYXBhYmlsaXRpZXNbJ3Byb3h5VHlwZSddID0gJ1VOU1BFQ0lGSUVEJworICAgIGV4
cGVjdGVkX2NhcGFiaWxpdGllcyA9IHsncHJveHknOiBwcm94eV9jYXBhYmlsaXRpZXN9CisgICAg
YXNzZXJ0IGV4cGVjdGVkX2NhcGFiaWxpdGllcyA9PSBkZXNpcmVkX2NhcGFiaWxpdGllcwpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3F1aXRfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcXVpdF90ZXN0cy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmZhYWM0MjU5ODIKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcXVpdF90ZXN0cy5weQpAQCAtMCwwICsxLDI1IEBA
CisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVu
ZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0
aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZD
IGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu
IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhP
VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3Vh
Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGlj
ZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QubWFyay5ub19kcml2ZXJfYWZ0ZXJf
dGVzdAorZGVmIHRlc3RfcXVpdChkcml2ZXIsIHBhZ2VzKToKKyAgICBkcml2ZXIucXVpdCgpCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbik6CisgICAgICAgIHBhZ2VzLmxvYWQoJ3Np
bXBsZVRlc3QuaHRtbCcpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcmVuZGVyZWRfd2ViZWxlbWVu
dF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9yZW5kZXJlZF93ZWJlbGVtZW50X3Rlc3RzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZWNiNWRlNjA3MgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9yZW5kZXJlZF93ZWJlbGVtZW50X3Rlc3RzLnB5CkBAIC0wLDAg
KzEsNzIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kg
KFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRz
LiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3Ig
YWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4g
IFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJ
UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVy
IHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4
Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2
ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRl
KAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQx
NycpCitkZWYgdGVzdFNob3VsZFBpY2tVcFN0eWxlT2ZBbkVsZW1lbnQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisKKyAgICBlbGVtZW50ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImdyZWVuLXBhcmVudCIpCisgICAg
YmFja2dyb3VuZENvbG91ciA9IGVsZW1lbnQudmFsdWVfb2ZfY3NzX3Byb3BlcnR5KCJiYWNrZ3Jv
dW5kLWNvbG9yIikKKyAgICBhc3NlcnQgInJnYmEoMCwgMTI4LCAwLCAxKSIgPT0gYmFja2dyb3Vu
ZENvbG91cgorCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZh
bHVlPSJyZWQtaXRlbSIpCisgICAgYmFja2dyb3VuZENvbG91ciA9IGVsZW1lbnQudmFsdWVfb2Zf
Y3NzX3Byb3BlcnR5KCJiYWNrZ3JvdW5kLWNvbG9yIikKKyAgICBhc3NlcnQgInJnYmEoMjU1LCAw
LCAwLCAxKSIgPT0gYmFja2dyb3VuZENvbG91cgorCisKK2RlZiB0ZXN0U2hvdWxkQWxsb3dJbmhl
cml0ZWRTdHlsZXNUb0JlVXNlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZh
c2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5JRCwgdmFsdWU9ImdyZWVuLWl0ZW0iKQorICAgIGJhY2tncm91bmRDb2xvdXIgPSBlbGVtZW50
LnZhbHVlX29mX2Nzc19wcm9wZXJ0eSgiYmFja2dyb3VuZC1jb2xvciIpCisgICAgYXNzZXJ0IGJh
Y2tncm91bmRDb2xvdXIgaW4gKCJyZ2JhKDAsIDAsIDAsIDApIiwgInRyYW5zcGFyZW50IikKKwor
CitkZWYgdGVzdFNob3VsZENvcnJlY3RseUlkZW50aWZ5VGhhdEFuRWxlbWVudEhhc1dpZHRoKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHNo
cmlua28gPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ibGlua0lkIikKKyAg
ICBzaXplID0gc2hyaW5rby5zaXplCisgICAgYXNzZXJ0IHNpemVbIndpZHRoIl0gPiAwCisgICAg
YXNzZXJ0IHNpemVbImhlaWdodCJdID4gMAorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUo
CisgICAgcmVhc29uPSdHZXQgRWxlbWVudCBSZWN0IGNvbW1hbmQgbm90IGltcGxlbWVudGVkJywK
KyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50
b21qcygKKyAgICByZWFzb249J0dldCBFbGVtZW50IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50
ZWQnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxf
c2FmYXJpKAorICAgIHJlYXNvbj0nR2V0IEVsZW1lbnQgUmVjdCBjb21tYW5kIG5vdCBpbXBsZW1l
bnRlZCcsCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0ZXN0U2hvdWxkQmVB
YmxlVG9EZXRlcm1pbmVUaGVSZWN0T2ZBbkVsZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuSUQsICJ1c2VybmFtZSIpCisgICAgcmVjdCA9IGVsZW1lbnQucmVjdAorCisgICAg
YXNzZXJ0IHJlY3RbIngiXSA+IDAKKyAgICBhc3NlcnQgcmVjdFsieSJdID4gMAorICAgIGFzc2Vy
dCByZWN0WyJ3aWR0aCJdID4gMAorICAgIGFzc2VydCByZWN0WyJoZWlnaHQiXSA+IDAKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9yZXByX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3JlcHJfdGVzdHMucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdjODMwYTg2OTIxCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3JlcHJfdGVzdHMucHkKQEAgLTAsMCArMSw0MCBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQud2FpdCBpbXBvcnQgV2ViRHJp
dmVyV2FpdAorCisKK2RlZiB0ZXN0U2hvdWxkSW1wbGVtZW50UmVwckZvcldlYkRyaXZlcihkcml2
ZXIpOgorICAgIGRyaXZlcl9yZXByID0gcmVwcihkcml2ZXIpCisgICAgYXNzZXJ0IHR5cGUoZHJp
dmVyKS5fX25hbWVfXyBpbiBkcml2ZXJfcmVwcgorICAgIGFzc2VydCBkcml2ZXIuc2Vzc2lvbl9p
ZCBpbiBkcml2ZXJfcmVwcgorCisKK2RlZiB0ZXN0U2hvdWxkSW1wbGVtZW50UmVwckZvcldlYkVs
ZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgnc2ltcGxlVGVzdC5odG1sJykK
KyAgICBlbGVtID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgidmFsaWRJbWdUYWciKQorICAg
IGVsZW1fcmVwciA9IHJlcHIoZWxlbSkKKyAgICBhc3NlcnQgdHlwZShlbGVtKS5fX25hbWVfXyBp
biBlbGVtX3JlcHIKKyAgICBhc3NlcnQgZHJpdmVyLnNlc3Npb25faWQgaW4gZWxlbV9yZXByCisg
ICAgYXNzZXJ0IGVsZW0uX2lkIGluIGVsZW1fcmVwcgorCisKK2RlZiB0ZXN0U2hvdWxkSW1wbGVt
ZW50UmVwckZvcldhaXQoZHJpdmVyKToKKyAgICB3YWl0ID0gV2ViRHJpdmVyV2FpdChkcml2ZXIs
IDMwKQorICAgIHdhaXRfcmVwciA9IHJlcHIod2FpdCkKKyAgICBhc3NlcnQgdHlwZSh3YWl0KS5f
X25hbWVfXyBpbiB3YWl0X3JlcHIKKyAgICBhc3NlcnQgZHJpdmVyLnNlc3Npb25faWQgaW4gd2Fp
dF9yZXByCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcmVzdWx0c19wYWdlLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L3Jlc3VsdHNfcGFnZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NGM0ZGQwYzg2NzAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcmVzdWx0c19wYWdlLnB5
CkBAIC0wLDAgKzEsMzcgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29u
c2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBh
Z3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMg
d29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93
bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2NsYXNzIFJlc3VsdHNQYWdlKG9iamVjdCk6Cisg
ICAgIiIiVGhpcyBjbGFzcyBtb2RlbHMgYSBnb29nbGUgc2VhcmNoIHJlc3VsdCBwYWdlLiIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHNlbGYuX2RyaXZlciA9
IGRyaXZlcgorCisgICAgZGVmIGlzX2xvYWRlZChzZWxmKToKKyAgICAgICAgcmV0dXJuICIvc2Vh
cmNoIiBpbiBzZWxmLl9kcml2ZXIuZ2V0X2N1cnJlbnRfdXJsKCkKKworICAgIGRlZiBsb2FkKHNl
bGYpOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oIlRoaXMgcGFnZSBzaG91bGRuJ3QgYmUgbG9h
ZGVkIGRpcmVjdGx5IikKKworICAgIGRlZiBsaW5rX2NvbnRhaW5zX21hdGNoX2ZvcihzZWxmLCB0
ZXJtKToKKyAgICAgICAgcmVzdWx0X3NlY3Rpb24gPSBzZWxmLl9kcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJyZXMiKQorICAgICAgICBlbGVtZW50cyA9IHJlc3VsdF9zZWN0aW9uLmZpbmRfZWxl
bWVudHNfYnlfeHBhdGgoIi4vLypbQGNsYXNzPSdsJ10iKQorICAgICAgICBmb3IgZSBpbiBlbGVt
ZW50czoKKyAgICAgICAgICAgIGlmIHRlcm0gaW4gZS5nZXRfdGV4dCgpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZWxlY3RfY2xhc3NfdGVzdHMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJhOWExZTdlNDdjCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weQpAQCAtMCww
ICsxLDMxNCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5j
eSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVu
dHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZv
ciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlw
LiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUg
TGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmli
dXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0
aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNp
ZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5k
ZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24u
ZXhjZXB0aW9ucyBpbXBvcnQgKAorICAgIEVsZW1lbnROb3RTZWxlY3RhYmxlRXhjZXB0aW9uLAor
ICAgIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sCisgICAgVW5leHBlY3RlZFRhZ05hbWVFeGNlcHRp
b24pCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBTZWxlY3QKK2Zy
b20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKKworZGlzYWJsZWRTZWxl
Y3QgPSB7J25hbWUnOiAnbm8tc2VsZWN0JywgJ3ZhbHVlcyc6IFsnRm9vJ119CitzaW5nbGVTZWxl
Y3RWYWx1ZXMxID0geyduYW1lJzogJ3NlbGVjdG9tYXRpYycsICd2YWx1ZXMnOiBbJ09uZScsICdU
d28nLCAnRm91cicsICdTdGlsbCBsZWFybmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50bHknXX0K
K3NpbmdsZVNlbGVjdFZhbHVlczIgPSB7J25hbWUnOiAncmVkaXJlY3QnLCAndmFsdWVzJzogWydP
bmUnLCAnVHdvJ119CitzaW5nbGVTZWxlY3RWYWx1ZXNXaXRoU3BhY2VzID0geyduYW1lJzogJ3Nl
bGVjdF93aXRoX3NwYWNlcycsICd2YWx1ZXMnOiBbJ09uZScsICdUd28nLCAnRm91cicsICdTdGls
bCBsZWFybmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50bHknXX0KK211bHRpU2VsZWN0VmFsdWVz
MSA9IHsnbmFtZSc6ICdtdWx0aScsICd2YWx1ZXMnOiBbJ0VnZ3MnLCAnSGFtJywgJ1NhdXNhZ2Vz
JywgJ09uaW9uIGdyYXZ5J119CittdWx0aVNlbGVjdFZhbHVlczIgPSB7J25hbWUnOiAnc2VsZWN0
X2VtcHR5X211bHRpcGxlJywgJ3ZhbHVlcyc6IFsnc2VsZWN0XzEnLCAnc2VsZWN0XzInLCAnc2Vs
ZWN0XzMnLCAnc2VsZWN0XzQnXX0KKworCitkZWYgdGVzdFNlbGVjdEJ5SW5kZXhTaW5nbGUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisKKyAgICBmb3Ig
c2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxXToKKyAgICAgICAgc2VsID0gU2VsZWN0KGRy
aXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKQorICAgICAgICBmb3Ig
eCBpbiByYW5nZShsZW4oc2VsZWN0Wyd2YWx1ZXMnXSkpOgorICAgICAgICAgICAgc2VsLnNlbGVj
dF9ieV9pbmRleCh4KQorICAgICAgICAgICAgYXNzZXJ0IHNlbC5maXJzdF9zZWxlY3RlZF9vcHRp
b24udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW3hdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2No
cm9tZQorQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKK0BweXRlc3QubWFyay54ZmFpbF9yZW1v
dGUKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhh
bnRvbWpzCitAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpCitkZWYgdGVzdFNlbGVjdERpc2FibGVk
QnlJbmRleFNob3VsZFRocm93RXhjZXB0aW9uKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHNlbCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50
KEJ5Lk5BTUUsIGRpc2FibGVkU2VsZWN0WyduYW1lJ10pKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhFbGVtZW50Tm90U2VsZWN0YWJsZUV4Y2VwdGlvbik6CisgICAgICAgIHNlbC5zZWxlY3RfYnlf
aW5kZXgoMSkKKworCitkZWYgdGVzdFNlbGVjdEJ5VmFsdWVTaW5nbGUoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisKKyAgICBmb3Igc2VsZWN0IGluIFtz
aW5nbGVTZWxlY3RWYWx1ZXMxXToKKyAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKQorICAgICAgICBmb3IgeCBpbiByYW5nZShs
ZW4oc2VsZWN0Wyd2YWx1ZXMnXSkpOgorICAgICAgICAgICAgc2VsLnNlbGVjdF9ieV92YWx1ZShz
ZWxlY3RbJ3ZhbHVlcyddW3hdLmxvd2VyKCkpCisgICAgICAgICAgICBhc3NlcnQgc2VsLmZpcnN0
X3NlbGVjdGVkX29wdGlvbi50ZXh0ID09IHNlbGVjdFsndmFsdWVzJ11beF0KKworCitAcHl0ZXN0
Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVzdC5t
YXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUKK0BweXRlc3Qu
bWFyay54ZmFpbF9waGFudG9tanMKK0BweXRlc3QubWFyay54ZmFpbF9zYWZhcmkKK2RlZiB0ZXN0
U2VsZWN0RGlzYWJsZWRCeVZhbHVlU2hvdWxkVGhyb3dFeGNlcHRpb24oZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgc2VsID0gU2VsZWN0KGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgZGlzYWJsZWRTZWxlY3RbJ25hbWUnXSkpCisgICAgd2l0
aCBweXRlc3QucmFpc2VzKEVsZW1lbnROb3RTZWxlY3RhYmxlRXhjZXB0aW9uKToKKyAgICAgICAg
c2VsLnNlbGVjdF9ieV92YWx1ZSgnYmFyJykKKworCitkZWYgdGVzdFNlbGVjdEJ5VmlzaWJsZVRl
eHRTaW5nbGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CisKKyAgICBmb3Igc2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxXToKKyAgICAgICAgc2Vs
ID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKQor
ICAgICAgICBmb3IgeCBpbiByYW5nZShsZW4oc2VsZWN0Wyd2YWx1ZXMnXSkpOgorICAgICAgICAg
ICAgcHJpbnQoc2VsZWN0Wyd2YWx1ZXMnXVt4XSkKKyAgICAgICAgICAgIHNlbC5zZWxlY3RfYnlf
dmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11beF0pCisgICAgICAgICAgICBhc3NlcnQgc2Vs
LmZpcnN0X3NlbGVjdGVkX29wdGlvbi50ZXh0ID09IHNlbGVjdFsndmFsdWVzJ11beF0KKworCitA
cHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9t
aXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTgyMicpCitAcHl0ZXN0Lm1h
cmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVzdFNlbGVjdEJ5VmlzaWJsZVRleHRTaG91bGROb3Jt
YWxpemVTcGFjZXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRt
bCIpCisKKyAgICBmb3Igc2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXNXaXRoU3BhY2VzXToK
KyAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0
WyduYW1lJ10pKQorICAgICAgICBmb3IgeCBpbiByYW5nZShsZW4oc2VsZWN0Wyd2YWx1ZXMnXSkp
OgorICAgICAgICAgICAgcHJpbnQoc2VsZWN0Wyd2YWx1ZXMnXVt4XSkKKyAgICAgICAgICAgIHNl
bC5zZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11beF0pCisgICAgICAgICAg
ICBhc3NlcnQgc2VsLmZpcnN0X3NlbGVjdGVkX29wdGlvbi50ZXh0ID09IHNlbGVjdFsndmFsdWVz
J11beF0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxf
ZmlyZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWlsX21h
cmlvbmV0dGUKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK0BweXRlc3QubWFyay54ZmFp
bF9zYWZhcmkKK2RlZiB0ZXN0U2VsZWN0RGlzYWJsZWRCeVZpc2libGVUZXh0U2hvdWxkVGhyb3dF
eGNlcHRpb24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CisgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgZGlzYWJsZWRT
ZWxlY3RbJ25hbWUnXSkpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEVsZW1lbnROb3RTZWxlY3Rh
YmxlRXhjZXB0aW9uKToKKyAgICAgICAgc2VsLnNlbGVjdF9ieV92aXNpYmxlX3RleHQoJ0Jhcicp
CisKKworZGVmIHRlc3RTZWxlY3RCeUluZGV4TXVsdGlwbGUoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisKKyAgICBmb3Igc2VsZWN0IGluIFttdWx0aVNl
bGVjdFZhbHVlczEsIG11bHRpU2VsZWN0VmFsdWVzMl06CisgICAgICAgIHNlbCA9IFNlbGVjdChk
cml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkKKyAgICAgICAgc2Vs
LmRlc2VsZWN0X2FsbCgpCisgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3RbJ3ZhbHVl
cyddKSk6CisgICAgICAgICAgICBzZWwuc2VsZWN0X2J5X2luZGV4KHgpCisgICAgICAgICAgICBz
ZWxlY3RlZCA9IHNlbC5hbGxfc2VsZWN0ZWRfb3B0aW9ucworICAgICAgICAgICAgYXNzZXJ0IGxl
bihzZWxlY3RlZCkgPT0geCArIDEKKyAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKGxlbihzZWxl
Y3RlZCkpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxlY3RlZFtqXS50ZXh0ID09IHNlbGVj
dFsndmFsdWVzJ11bal0KKworCitkZWYgdGVzdFNlbGVjdEJ5VmFsdWVNdWx0aXBsZShkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworICAgIGZvciBzZWxl
Y3QgaW4gW211bHRpU2VsZWN0VmFsdWVzMSwgbXVsdGlTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAg
c2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10p
KQorICAgICAgICBzZWwuZGVzZWxlY3RfYWxsKCkKKyAgICAgICAgZm9yIHggaW4gcmFuZ2UobGVu
KHNlbGVjdFsndmFsdWVzJ10pKToKKyAgICAgICAgICAgIHNlbC5zZWxlY3RfYnlfdmFsdWUoc2Vs
ZWN0Wyd2YWx1ZXMnXVt4XS5sb3dlcigpKQorICAgICAgICAgICAgc2VsZWN0ZWQgPSBzZWwuYWxs
X3NlbGVjdGVkX29wdGlvbnMKKyAgICAgICAgICAgIGFzc2VydCBsZW4oc2VsZWN0ZWQpID09IHgg
KyAxCisgICAgICAgICAgICBmb3IgaiBpbiByYW5nZShsZW4oc2VsZWN0ZWQpKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgc2VsZWN0ZWRbal0udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW2pdCisK
KworZGVmIHRlc3RTZWxlY3RCeVZpc2libGVUZXh0TXVsdGlwbGUoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisKKyAgICBmb3Igc2VsZWN0IGluIFttdWx0
aVNlbGVjdFZhbHVlczEsIG11bHRpU2VsZWN0VmFsdWVzMl06CisgICAgICAgIHNlbCA9IFNlbGVj
dChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkKKyAgICAgICAg
c2VsLmRlc2VsZWN0X2FsbCgpCisgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3RbJ3Zh
bHVlcyddKSk6CisgICAgICAgICAgICBzZWwuc2VsZWN0X2J5X3Zpc2libGVfdGV4dChzZWxlY3Rb
J3ZhbHVlcyddW3hdKQorICAgICAgICAgICAgc2VsZWN0ZWQgPSBzZWwuYWxsX3NlbGVjdGVkX29w
dGlvbnMKKyAgICAgICAgICAgIGFzc2VydCBsZW4oc2VsZWN0ZWQpID09IHggKyAxCisgICAgICAg
ICAgICBmb3IgaiBpbiByYW5nZShsZW4oc2VsZWN0ZWQpKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgc2VsZWN0ZWRbal0udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW2pdCisKKworZGVmIHRlc3RE
ZXNlbGVjdEFsbFNpbmdsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKyAgICBmb3Igc2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxLCBzaW5nbGVT
ZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vdEltcGxlbWVudGVk
RXJyb3IpOgorICAgICAgICAgICAgU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwg
c2VsZWN0WyduYW1lJ10pKS5kZXNlbGVjdF9hbGwoKQorCisKK2RlZiB0ZXN0RGVzZWxlY3RBbGxN
dWx0aXBsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikK
KyAgICBmb3Igc2VsZWN0IGluIFttdWx0aVNlbGVjdFZhbHVlczEsIG11bHRpU2VsZWN0VmFsdWVz
Ml06CisgICAgICAgIHNlbCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNl
bGVjdFsnbmFtZSddKSkKKyAgICAgICAgc2VsLmRlc2VsZWN0X2FsbCgpCisgICAgICAgIGFzc2Vy
dCBsZW4oc2VsLmFsbF9zZWxlY3RlZF9vcHRpb25zKSA9PSAwCisKKworZGVmIHRlc3REZXNlbGVj
dEJ5SW5kZXhTaW5nbGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2Uu
aHRtbCIpCisgICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzMSwgc2luZ2xlU2Vs
ZWN0VmFsdWVzMl06CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb3RJbXBsZW1lbnRlZEVy
cm9yKToKKyAgICAgICAgICAgIFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNl
bGVjdFsnbmFtZSddKSkuZGVzZWxlY3RfYnlfaW5kZXgoMCkKKworCitkZWYgdGVzdERlc2VsZWN0
QnlWYWx1ZVNpbmdsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5o
dG1sIikKKyAgICBmb3Igc2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxLCBzaW5nbGVTZWxl
Y3RWYWx1ZXMyXToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vdEltcGxlbWVudGVkRXJy
b3IpOgorICAgICAgICAgICAgU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2Vs
ZWN0WyduYW1lJ10pKS5kZXNlbGVjdF9ieV92YWx1ZShzZWxlY3RbJ3ZhbHVlcyddWzBdLmxvd2Vy
KCkpCisKKworZGVmIHRlc3REZXNlbGVjdEJ5VmlzaWJsZVRleHRTaW5nbGUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZm9yIHNlbGVjdCBpbiBb
c2luZ2xlU2VsZWN0VmFsdWVzMSwgc2luZ2xlU2VsZWN0VmFsdWVzMl06CisgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yKToKKyAgICAgICAgICAgIFNlbGVjdChk
cml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkuZGVzZWxlY3RfYnlf
dmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11bMF0pCisKKworZGVmIHRlc3REZXNlbGVjdEJ5
SW5kZXhNdWx0aXBsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5o
dG1sIikKKyAgICBmb3Igc2VsZWN0IGluIFttdWx0aVNlbGVjdFZhbHVlczEsIG11bHRpU2VsZWN0
VmFsdWVzMl06CisgICAgICAgIHNlbCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5B
TUUsIHNlbGVjdFsnbmFtZSddKSkKKyAgICAgICAgc2VsLmRlc2VsZWN0X2FsbCgpCisgICAgICAg
IHNlbC5zZWxlY3RfYnlfaW5kZXgoMCkKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9pbmRleCgxKQor
ICAgICAgICBzZWwuc2VsZWN0X2J5X2luZGV4KDIpCisgICAgICAgIHNlbC5zZWxlY3RfYnlfaW5k
ZXgoMykKKyAgICAgICAgc2VsLmRlc2VsZWN0X2J5X2luZGV4KDEpCisgICAgICAgIHNlbC5kZXNl
bGVjdF9ieV9pbmRleCgzKQorICAgICAgICBzZWxlY3RlZCA9IHNlbC5hbGxfc2VsZWN0ZWRfb3B0
aW9ucworICAgICAgICBhc3NlcnQgbGVuKHNlbGVjdGVkKSA9PSAyCisgICAgICAgIGFzc2VydCBz
ZWxlY3RlZFswXS50ZXh0ID09IHNlbGVjdFsndmFsdWVzJ11bMF0KKyAgICAgICAgYXNzZXJ0IHNl
bGVjdGVkWzFdLnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVsyXQorCisKK2RlZiB0ZXN0RGVzZWxl
Y3RCeVZhbHVlTXVsdGlwbGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBh
Z2UuaHRtbCIpCisgICAgZm9yIHNlbGVjdCBpbiBbbXVsdGlTZWxlY3RWYWx1ZXMxLCBtdWx0aVNl
bGVjdFZhbHVlczJdOgorICAgICAgICBzZWwgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpCisgICAgICAgIHNlbC5kZXNlbGVjdF9hbGwoKQorICAg
ICAgICBzZWwuc2VsZWN0X2J5X2luZGV4KDApCisgICAgICAgIHNlbC5zZWxlY3RfYnlfaW5kZXgo
MSkKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9pbmRleCgyKQorICAgICAgICBzZWwuc2VsZWN0X2J5
X2luZGV4KDMpCisgICAgICAgIHNlbC5kZXNlbGVjdF9ieV92YWx1ZShzZWxlY3RbJ3ZhbHVlcydd
WzFdLmxvd2VyKCkpCisgICAgICAgIHNlbC5kZXNlbGVjdF9ieV92YWx1ZShzZWxlY3RbJ3ZhbHVl
cyddWzNdLmxvd2VyKCkpCisgICAgICAgIHNlbGVjdGVkID0gc2VsLmFsbF9zZWxlY3RlZF9vcHRp
b25zCisgICAgICAgIGFzc2VydCBsZW4oc2VsZWN0ZWQpID09IDIKKyAgICAgICAgYXNzZXJ0IHNl
bGVjdGVkWzBdLnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVswXQorICAgICAgICBhc3NlcnQgc2Vs
ZWN0ZWRbMV0udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddWzJdCisKKworZGVmIHRlc3REZXNlbGVj
dEJ5VmlzaWJsZVRleHRNdWx0aXBsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKyAgICBmb3Igc2VsZWN0IGluIFttdWx0aVNlbGVjdFZhbHVlczEsIG11
bHRpU2VsZWN0VmFsdWVzMl06CisgICAgICAgIHNlbCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVt
ZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkKKyAgICAgICAgc2VsLmRlc2VsZWN0X2FsbCgp
CisgICAgICAgIHNlbC5zZWxlY3RfYnlfaW5kZXgoMCkKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9p
bmRleCgxKQorICAgICAgICBzZWwuc2VsZWN0X2J5X2luZGV4KDIpCisgICAgICAgIHNlbC5zZWxl
Y3RfYnlfaW5kZXgoMykKKyAgICAgICAgc2VsLmRlc2VsZWN0X2J5X3Zpc2libGVfdGV4dChzZWxl
Y3RbJ3ZhbHVlcyddWzFdKQorICAgICAgICBzZWwuZGVzZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNl
bGVjdFsndmFsdWVzJ11bM10pCisgICAgICAgIHNlbGVjdGVkID0gc2VsLmFsbF9zZWxlY3RlZF9v
cHRpb25zCisgICAgICAgIGFzc2VydCBsZW4oc2VsZWN0ZWQpID09IDIKKyAgICAgICAgYXNzZXJ0
IHNlbGVjdGVkWzBdLnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVswXQorICAgICAgICBhc3NlcnQg
c2VsZWN0ZWRbMV0udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddWzJdCisKKworZGVmIHRlc3RHZXRP
cHRpb25zKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQor
ICAgIGZvciBzZWxlY3QgaW4gW3NpbmdsZVNlbGVjdFZhbHVlczEsIHNpbmdsZVNlbGVjdFZhbHVl
czIsIG11bHRpU2VsZWN0VmFsdWVzMSwgbXVsdGlTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgb3B0
cyA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSku
b3B0aW9ucworICAgICAgICBhc3NlcnQgbGVuKG9wdHMpID09IGxlbihzZWxlY3RbJ3ZhbHVlcydd
KQorICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4ob3B0cykpOgorICAgICAgICAgICAgYXNzZXJ0
IG9wdHNbaV0udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddW2ldCisKKworZGVmIHRlc3RHZXRBbGxT
ZWxlY3RlZE9wdGlvbnNTaW5nbGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9y
bVBhZ2UuaHRtbCIpCisgICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzMSwgc2lu
Z2xlU2VsZWN0VmFsdWVzMiwgZGlzYWJsZWRTZWxlY3RdOgorICAgICAgICBvcHRzID0gU2VsZWN0
KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKS5hbGxfc2VsZWN0
ZWRfb3B0aW9ucworICAgICAgICBhc3NlcnQgbGVuKG9wdHMpID09IDEKKyAgICAgICAgYXNzZXJ0
IG9wdHNbMF0udGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddWzBdCisKKworZGVmIHRlc3RHZXRBbGxT
ZWxlY3RlZE9wdGlvbnNNdWx0aXBsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKyAgICBvcHRzID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnku
TkFNRSwgbXVsdGlTZWxlY3RWYWx1ZXMxWyduYW1lJ10pKS5hbGxfc2VsZWN0ZWRfb3B0aW9ucwor
ICAgIGFzc2VydCBsZW4ob3B0cykgPT0gMgorICAgIGFzc2VydCBvcHRzWzBdLnRleHQsIG11bHRp
U2VsZWN0VmFsdWVzMVsndmFsdWVzJ11bMF0KKyAgICBhc3NlcnQgb3B0c1sxXS50ZXh0LCBtdWx0
aVNlbGVjdFZhbHVlczFbJ3ZhbHVlcyddWzJdCisgICAgb3B0cyA9IFNlbGVjdChkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5Lk5BTUUsIG11bHRpU2VsZWN0VmFsdWVzMlsnbmFtZSddKSkuYWxsX3NlbGVj
dGVkX29wdGlvbnMKKyAgICBhc3NlcnQgbGVuKG9wdHMpID09IDAKKworCitkZWYgdGVzdEdldEZp
cnN0U2VsZWN0ZWRPcHRpb25TaW5nbGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
Zm9ybVBhZ2UuaHRtbCIpCisgICAgZm9yIHNlbGVjdCBpbiBbc2luZ2xlU2VsZWN0VmFsdWVzMSwg
c2luZ2xlU2VsZWN0VmFsdWVzMl06CisgICAgICAgIG9wdCA9IFNlbGVjdChkcml2ZXIuZmluZF9l
bGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkuZmlyc3Rfc2VsZWN0ZWRfb3B0aW9uCisg
ICAgICAgIGFzc2VydCBvcHQudGV4dCA9PSBzZWxlY3RbJ3ZhbHVlcyddWzBdCisKKworZGVmIHRl
c3RHZXRGaXJzdFNlbGVjdGVkT3B0aW9uTXVsdGlwbGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgb3B0ID0gU2VsZWN0KGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuTkFNRSwgbXVsdGlTZWxlY3RWYWx1ZXMxWyduYW1lJ10pKS5maXJzdF9zZWxlY3Rl
ZF9vcHRpb24KKyAgICBhc3NlcnQgb3B0LnRleHQgPT0gbXVsdGlTZWxlY3RWYWx1ZXMxWyd2YWx1
ZXMnXVswXQorICAgIG9wdCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIG11
bHRpU2VsZWN0VmFsdWVzMlsnbmFtZSddKSkuYWxsX3NlbGVjdGVkX29wdGlvbnMKKyAgICBhc3Nl
cnQgbGVuKG9wdCkgPT0gMAorCisKK2RlZiB0ZXN0UmFpc2VzRXhjZXB0aW9uRm9ySW52YWxpZFRh
Z05hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFVuZXhwZWN0ZWRUYWdOYW1lRXhjZXB0aW9uKToKKyAgICAg
ICAgU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICJkaXYiKSkKKworCitk
ZWYgdGVzdERlc2VsZWN0QnlJbmRleE5vbkV4aXN0ZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGZvciBzZWxlY3QgaW4gW211bHRpU2VsZWN0
VmFsdWVzMSwgbXVsdGlTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2Vz
KE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICAgICAgU2VsZWN0KGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKS5kZXNlbGVjdF9ieV9pbmRleCgxMCkK
KworCitkZWYgdGVzdERlc2VsZWN0QnlWYWx1ZU5vbkV4aXN0ZW50KGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGZvciBzZWxlY3QgaW4gW211bHRp
U2VsZWN0VmFsdWVzMSwgbXVsdGlTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICAgICAgU2VsZWN0KGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKS5kZXNlbGVjdF9ieV92YWx1
ZSgnbm90IHRoZXJlJykKKworCitkZWYgdGVzdERlc2VsZWN0QnlUZXh0Tm9uRXhpc3RlbnQoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZm9yIHNl
bGVjdCBpbiBbbXVsdGlTZWxlY3RWYWx1ZXMxLCBtdWx0aVNlbGVjdFZhbHVlczJdOgorICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgICAg
ICBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpLmRl
c2VsZWN0X2J5X3Zpc2libGVfdGV4dCgnbm90IHRoZXJlJykKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9zZWxlY3RfZWxlbWVudF9oYW5kbGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZWxlY3RfZWxl
bWVudF9oYW5kbGluZ190ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uNjQ4NDU2OWE2YmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2Vs
ZW1lbnRfaGFuZGxpbmdfdGVzdHMucHkKQEAgLTAsMCArMSw5NyBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSBzZWxl
bml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorCisKK2RlZiB0ZXN0U2hvdWxkQmVQ
b3NzaWJsZVRvRGVzZWxlY3RBU2luZ2xlT3B0aW9uRnJvbUFTZWxlY3RXaGljaEFsbG93c011bHRp
cGxlQ2hvaWNlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwi
KQorICAgIG11bHRpU2VsZWN0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgIm11bHRpIikK
KyAgICBvcHRpb25zID0gbXVsdGlTZWxlY3QuZmluZF9lbGVtZW50cyhCeS5UQUdfTkFNRSwgIm9w
dGlvbiIpCisKKyAgICBvcHRpb24gPSBvcHRpb25zWzBdCisgICAgYXNzZXJ0IG9wdGlvbi5pc19z
ZWxlY3RlZCgpIGlzIFRydWUKKyAgICBvcHRpb24uY2xpY2soKQorICAgIGFzc2VydCBvcHRpb24u
aXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorICAgIG9wdGlvbi5jbGljaygpCisgICAgYXNzZXJ0IG9w
dGlvbi5pc19zZWxlY3RlZCgpIGlzIFRydWUKKworICAgIG9wdGlvbiA9IG9wdGlvbnNbMl0KKyAg
ICBhc3NlcnQgb3B0aW9uLmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQorCisKK2RlZiB0ZXN0U2hvdWxk
QmVBYmxlVG9DaGFuZ2VUaGVTZWxlY3RlZE9wdGlvbkluQVNlbGVjKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHNlbGVjdEJveCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL3NlbGVjdFtAbmFtZT0nc2VsZWN0b21hdGljJ10iKQor
ICAgIG9wdGlvbnMgPSBzZWxlY3RCb3guZmluZF9lbGVtZW50cyhCeS5UQUdfTkFNRSwgIm9wdGlv
biIpCisgICAgb25lID0gb3B0aW9uc1swXQorICAgIHR3byA9IG9wdGlvbnNbMV0KKyAgICBhc3Nl
cnQgb25lLmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQorICAgIGFzc2VydCB0d28uaXNfc2VsZWN0ZWQo
KSBpcyBGYWxzZQorCisgICAgdHdvLmNsaWNrKCkKKyAgICBhc3NlcnQgb25lLmlzX3NlbGVjdGVk
KCkgaXMgRmFsc2UKKyAgICBhc3NlcnQgdHdvLmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQorCisKK2Rl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9TZWxlY3RNb3JlVGhhbk9uZU9wdGlvbkZyb21BU2VsZWN0V2hp
Y2hBbGxvd3NNdWx0aXBsZUNob2ljZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKworICAgIG11bHRpU2VsZWN0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5JRCwgIm11bHRpIikKKyAgICBvcHRpb25zID0gbXVsdGlTZWxlY3QuZmluZF9lbGVtZW50cyhC
eS5UQUdfTkFNRSwgIm9wdGlvbiIpCisgICAgZm9yIG9wdGlvbiBpbiBvcHRpb25zOgorICAgICAg
ICBpZiBub3Qgb3B0aW9uLmlzX3NlbGVjdGVkKCk6CisgICAgICAgICAgICBvcHRpb24uY2xpY2so
KQorCisgICAgZm9yIGkgaW4gcmFuZ2UobGVuKG9wdGlvbnMpKToKKyAgICAgICAgb3B0aW9uID0g
b3B0aW9uc1tpXQorICAgICAgICBhc3NlcnQgb3B0aW9uLmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQor
CisKK2RlZiB0ZXN0U2hvdWxkU2VsZWN0Rmlyc3RPcHRpb25hdWx0SWZOb25lSXNTZWxlY3RlKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHNlbGVj
dEJveCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL3NlbGVjdFtAbmFtZT0nc2Vs
ZWN0LWRlZmF1bHQnXSIpCisgICAgb3B0aW9ucyA9IHNlbGVjdEJveC5maW5kX2VsZW1lbnRzKEJ5
LlRBR19OQU1FLCAib3B0aW9uIikKKyAgICBvbmUgPSBvcHRpb25zWzBdCisgICAgdHdvID0gb3B0
aW9uc1sxXQorICAgIGFzc2VydCBvbmUuaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisgICAgYXNzZXJ0
IHR3by5pc19zZWxlY3RlZCgpIGlzIEZhbHNlCisKKyAgICB0d28uY2xpY2soKQorICAgIGFzc2Vy
dCBvbmUuaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorICAgIGFzc2VydCB0d28uaXNfc2VsZWN0ZWQo
KSBpcyBUcnVlCisKKworZGVmIHRlc3RDYW5TZWxlY3RFbGVtZW50c0luT3B0R3JvdXAoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2VsZWN0UGFnZS5odG1sIikKKyAgICBlbGVtZW50
ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInR3by1pbi1ncm91cCIpCisgICAgZWxlbWVu
dC5jbGljaygpCisgICAgYXNzZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisKKwor
ZGVmIHRlc3RDYW5HZXRWYWx1ZUZyb21PcHRpb25WaWFBdHRyaWJ1dGVXaGVuQXR0cmlidXRlRG9l
c250RXhpcyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikK
KyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5DU1NfU0VMRUNUT1IsICJzZWxl
Y3RbbmFtZT0nc2VsZWN0LWRlZmF1bHQnXSBvcHRpb24iKQorICAgIGFzc2VydCBlbGVtZW50Lmdl
dF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIk9uZSIKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5JRCwgImJsYW5rT3B0aW9uIikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0
cmlidXRlKCJ2YWx1ZSIpID09ICIiCisKKworZGVmIHRlc3RDYW5HZXRWYWx1ZUZyb21PcHRpb25W
aWFBdHRyaWJ1dGVXaGVuQXR0cmlidXRlSXNFbXB0eVN0cmluZyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5JRCwgIm9wdGlvbkVtcHR5VmFsdWVTZXQiKQorICAgIGFzc2VydCBlbGVtZW50
LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIiIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zdGFs
ZV9yZWZlcmVuY2VfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc3RhbGVfcmVmZXJlbmNlX3Rlc3RzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MzMxMDA3ZTNhNAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zdGFsZV9yZWZlcmVuY2VfdGVzdHMucHkKQEAgLTAs
MCArMSw0NyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5j
eSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVu
dHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZv
ciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlw
LiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUg
TGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmli
dXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0
aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNp
ZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5k
ZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2
ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBp
bXBvcnQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uCisKKworZGVmIHRlc3RPbGRQYWdl
KGRyaXZlciwgcGFnZXMpOgorICAgIGlmIGRyaXZlci5uYW1lID09ICdmaXJlZm94JyBhbmQgZHJp
dmVyLnczYzoKKyAgICAgICAgcHl0ZXN0LnNraXAoJ1N0YWxscyB0ZXN0cywgaHR0cHM6Ly9idWd6
aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMDc5OScpCisgICAgcGFnZXMubG9h
ZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBlbGVtID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5JRCwgdmFsdWU9ImxpbmtzIikKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6Cisg
ICAgICAgIGVsZW0uY2xpY2soKQorCisKK2RlZiB0ZXN0U2hvdWxkTm90Q3Jhc2hXaGVuQ2FsbGlu
Z0dldFNpemVPbkFuT2Jzb2xldGVFbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9
QnkuSUQsIHZhbHVlPSJsaW5rcyIpCisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgor
ICAgICAgICBlbGVtLnNpemUKKworCitkZWYgdGVzdFNob3VsZE5vdENyYXNoV2hlblF1ZXJ5aW5n
VGhlQXR0cmlidXRlT2ZBU3RhbGVFbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoInhodG1sVGVzdC5odG1sIikKKyAgICBoZWFkaW5nID0gZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5YUEFUSCwgdmFsdWU9Ii8vaDEiKQorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRt
bCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlv
bik6CisgICAgICAgIGhlYWRpbmcuZ2V0X2F0dHJpYnV0ZSgiY2xhc3MiKQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL3Rha2VzX3NjcmVlbnNob3RzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Rha2VzX3Nj
cmVlbnNob3RzX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li42NGMwMzAwZjA3OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90YWtlc19zY3JlZW5z
aG90c190ZXN0cy5weQpAQCAtMCwwICsxLDQzIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2Fy
ZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1
dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0
ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5n
IGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5
b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNl
Iik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0
aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor
IworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBV
bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs
CisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk
IG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T
IE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNl
bnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFu
ZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGJhc2U2NAoraW1w
b3J0IGltZ2hkcgorCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHRlc3RfZ2V0X3NjcmVlbnNob3Rf
YXNfYmFzZTY0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRt
bCIpCisgICAgcmVzdWx0ID0gYmFzZTY0LmI2NGRlY29kZShkcml2ZXIuZ2V0X3NjcmVlbnNob3Rf
YXNfYmFzZTY0KCkpCisgICAgYXNzZXJ0IGltZ2hkci53aGF0KCcnLCByZXN1bHQpID09ICdwbmcn
CisKKworZGVmIHRlc3RfZ2V0X3NjcmVlbnNob3RfYXNfcG5nKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmdldF9z
Y3JlZW5zaG90X2FzX3BuZygpCisgICAgYXNzZXJ0IGltZ2hkci53aGF0KCcnLCByZXN1bHQpID09
ICdwbmcnCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZQorQHB5dGVzdC5tYXJrLnhmYWls
X2ZpcmVmb3gKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKK2RlZiB0ZXN0X2dldF9lbGVtZW50
X3NjcmVlbnNob3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5o
dG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibXVsdGlsaW5l
IikKKyAgICByZXN1bHQgPSBiYXNlNjQuYjY0ZGVjb2RlKGVsZW1lbnQuc2NyZWVuc2hvdF9hc19i
YXNlNjQpCisgICAgYXNzZXJ0IGltZ2hkci53aGF0KCcnLCByZXN1bHQpID09ICdwbmcnCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vdGV4dF9oYW5kbGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90ZXh0
X2hhbmRsaW5nX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li45Yzk3MGNlZjYyNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90ZXh0X2hhbmRsaW5n
X3Rlc3RzLnB5CkBAIC0wLDAgKzEsMjAzIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5CisKKworbmV3TGluZSA9ICJc
biIKKworCitkZWYgdGVzdFNob3VsZFJldHVyblRoZVRleHRDb250ZW50T2ZBU2luZ2xlRWxlbWVu
dFdpdGhOb0NoaWxkcmVuKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRl
c3QuaHRtbCIpCisgICAgc2VsZWN0VGV4dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQs
IHZhbHVlPSJvbmVsaW5lIikudGV4dAorICAgIGFzc2VydCBzZWxlY3RUZXh0ID09ICJBIHNpbmds
ZSBsaW5lIG9mIHRleHQiCisKKyAgICBnZXRUZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5JRCwgdmFsdWU9Im9uZWxpbmUiKS50ZXh0CisgICAgYXNzZXJ0IGdldFRleHQgPT0gIkEgc2lu
Z2xlIGxpbmUgb2YgdGV4dCIKKworCitkZWYgdGVzdFNob3VsZFJldHVyblRoZUVudGlyZVRleHRD
b250ZW50T2ZDaGlsZEVsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNp
bXBsZVRlc3QuaHRtbCIpCisgICAgdGV4dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQs
IHZhbHVlPSJtdWx0aWxpbmUiKS50ZXh0CisKKyAgICBhc3NlcnQgIkEgZGl2IGNvbnRhaW5pbmci
IGluIHRleHQKKyAgICBhc3NlcnQgIk1vcmUgdGhhbiBvbmUgbGluZSBvZiB0ZXh0IiBpbiB0ZXh0
CisgICAgYXNzZXJ0ICJhbmQgYmxvY2sgbGV2ZWwgZWxlbWVudHMiIGluIHRleHQKKworCitkZWYg
dGVzdFNob3VsZElnbm9yZVNjcmlwdEVsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImphdmFzY3JpcHRFbmhhbmNlZEZvcm0uaHRtbCIpCisgICAgbGFiZWxGb3JVc2VybmFt
ZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJsYWJlbGZvcnVzZXJuYW1l
IikKKyAgICB0ZXh0ID0gbGFiZWxGb3JVc2VybmFtZS50ZXh0CisKKyAgICBhc3NlcnQgbGVuKGxh
YmVsRm9yVXNlcm5hbWUuZmluZF9lbGVtZW50cyhieT1CeS5UQUdfTkFNRSwgdmFsdWU9InNjcmlw
dCIpKSA9PSAxCisgICAgYXNzZXJ0ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCIgbm90IGluIHRl
eHQKKyAgICBhc3NlcnQgdGV4dCA9PSAiVXNlcm5hbWU6IgorCisKK2RlZiB0ZXN0U2hvdWxkUmVw
cmVzZW50QUJsb2NrTGV2ZWxFbGVtZW50QXNBTmV3bGluZShkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIHRleHQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50KGJ5PUJ5LklELCB2YWx1ZT0ibXVsdGlsaW5lIikudGV4dAorCisgICAgYXNzZXJ0IHRleHQu
c3RhcnRzd2l0aCgiQSBkaXYgY29udGFpbmluZyIgKyBuZXdMaW5lKQorICAgIGFzc2VydCAiTW9y
ZSB0aGFuIG9uZSBsaW5lIG9mIHRleHQiICsgbmV3TGluZSBpbiB0ZXh0CisgICAgYXNzZXJ0IHRl
eHQuZW5kc3dpdGgoImFuZCBibG9jayBsZXZlbCBlbGVtZW50cyIpCisKKworZGVmIHRlc3RTaG91
bGRDb2xsYXBzZU11bHRpcGxlV2hpdGVzcGFjZUNoYXJhY3RlcnNJbnRvQVNpbmdsZVNwYWNlKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgdGV4
dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJsb3Rzb2ZzcGFjZXMiKS50
ZXh0CisKKyAgICBhc3NlcnQgdGV4dCA9PSAiVGhpcyBsaW5lIGhhcyBsb3RzIG9mIHNwYWNlcy4i
CisKKworZGVmIHRlc3RTaG91bGRUcmltVGV4dChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIHRleHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5
PUJ5LklELCB2YWx1ZT0ibXVsdGlsaW5lIikudGV4dAorCisgICAgYXNzZXJ0IHRleHQuc3RhcnRz
d2l0aCgiQSBkaXYgY29udGFpbmluZyIpCisgICAgYXNzZXJ0IHRleHQuZW5kc3dpdGgoImJsb2Nr
IGxldmVsIGVsZW1lbnRzIikKKworCitkZWYgdGVzdFNob3VsZENvbnZlcnRBTm9uQnJlYWtpbmdT
cGFjZUludG9BTm9ybWFsU3BhY2VDaGFyYWN0ZXIoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICB0ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9Im5ic3AiKS50ZXh0CisKKyAgICBhc3NlcnQgdGV4dCA9PSAiVGhpcyBs
aW5lIGhhcyBhIG5vbi1icmVha2luZyBzcGFjZSIKKworCitkZWYgdGVzdFNob3VsZFRyZWF0QU5v
bkJyZWFraW5nU3BhY2VBc0FueU90aGVyV2hpdGVzcGFjZUNoYXJhY3RlcldoZW5Db2xsYXBzaW5n
V2hpdGVzcGFjZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0
bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
bmJzcGFuZHNwYWNlcyIpCisgICAgdGV4dCA9IGVsZW1lbnQudGV4dAorCisgICAgYXNzZXJ0IHRl
eHQgPT0gIlRoaXMgbGluZSBoYXMgYSAgIG5vbi1icmVha2luZyBzcGFjZSBhbmQgc3BhY2VzIgor
CisKK2RlZiB0ZXN0SGF2aW5nSW5saW5lRWxlbWVudHNTaG91bGROb3RBZmZlY3RIb3dUZXh0SXNS
ZXR1cm5lZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwi
KQorICAgIHRleHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaW5saW5l
IikudGV4dAorCisgICAgYXNzZXJ0IHRleHQgPT0gIlRoaXMgbGluZSBoYXMgdGV4dCB3aXRoaW4g
ZWxlbWVudHMgdGhhdCBhcmUgbWVhbnQgdG8gYmUgZGlzcGxheWVkIGlubGluZSIKKworCitkZWYg
dGVzdFNob3VsZFJldHVyblRoZUVudGlyZVRleHRPZklubGluZUVsZW1lbnRzKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgdGV4dCA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJzcGFuIikudGV4dAorCisgICAgYXNzZXJ0
IHRleHQgPT0gIkFuIGlubGluZSBlbGVtZW50IgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9T
ZXRNb3JlVGhhbk9uZUxpbmVPZlRleHRJbkFUZXh0QXJlYShkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB0ZXh0YXJlYSA9IGRyaXZlci5maW5kX2Vs
ZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJ3aXRoVGV4dCIpCisgICAgdGV4dGFyZWEuY2xlYXIoKQor
CisgICAgZXhwZWN0ZWRUZXh0ID0gIkkgbGlrZSBjaGVlc2UiICsgbmV3TGluZSArIG5ld0xpbmUg
KyAiSXQncyByZWFsbHkgbmljZSIKKworICAgIHRleHRhcmVhLnNlbmRfa2V5cyhleHBlY3RlZFRl
eHQpCisKKyAgICBzZWVuVGV4dCA9IHRleHRhcmVhLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKyAg
ICBhc3NlcnQgc2VlblRleHQgPT0gZXhwZWN0ZWRUZXh0CisKKworZGVmIHRlc3RTaG91bGRCZUFi
bGVUb0VudGVyRGF0ZXNBZnRlckZpbGxpbmdJbk90aGVyVmFsdWVzRmlyc3QoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgaW5wdXRfID0gZHJpdmVy
LmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9IndvcmtpbmciKQorICAgIGV4cGVjdGVkVmFs
dWUgPSAiMTAvMDMvMjAwNyB0byAzMC8wNy8xOTkzIgorICAgIGlucHV0Xy5zZW5kX2tleXMoZXhw
ZWN0ZWRWYWx1ZSkKKyAgICBzZWVuVmFsdWUgPSBpbnB1dF8uZ2V0X2F0dHJpYnV0ZSgidmFsdWUi
KQorCisgICAgYXNzZXJ0IHNlZW5WYWx1ZSA9PSBleHBlY3RlZFZhbHVlCisKKworZGVmIHRlc3RT
aG91bGRSZXR1cm5FbXB0eVN0cmluZ1doZW5UZXh0SXNPbmx5U3BhY2VzKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHRleHQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ic3BhY2VzIikudGV4dAorICAgIGFzc2VydCB0
ZXh0ID09ICIiCisKKworZGVmIHRlc3RTaG91bGRSZXR1cm5FbXB0eVN0cmluZ1doZW5UZXh0SXNF
bXB0eShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisK
KyAgICB0ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImVtcHR5Iiku
dGV4dAorICAgIGFzc2VydCB0ZXh0ID09ICIiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsCitkZWYg
dGVzdFNob3VsZFJldHVybkVtcHR5U3RyaW5nV2hlblRhZ0lzU2VsZkNsb3NpbmcoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxGb3JtUGFnZS54aHRtbCIpCisKKyAgICB0ZXh0
ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InNlbGYtY2xvc2VkIikudGV4
dAorICAgIGFzc2VydCB0ZXh0ID09ICIiCisKKworZGVmIHRlc3RTaG91bGRIYW5kbGVTaWJsaW5n
QmxvY2tMZXZlbEVsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBs
ZVRlc3QuaHRtbCIpCisKKyAgICB0ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwg
dmFsdWU9InR3b2Jsb2NrcyIpLnRleHQKKyAgICBhc3NlcnQgdGV4dCA9PSAiU29tZSB0ZXh0IiAr
IG5ld0xpbmUgKyAiU29tZSBtb3JlIHRleHQiCisKKworZGVmIHRlc3RTaG91bGRIYW5kbGVXaGl0
ZXNwYWNlSW5JbmxpbmVFbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJz
aW1wbGVUZXN0Lmh0bWwiKQorCisgICAgdGV4dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9Qnku
SUQsIHZhbHVlPSJpbmxpbmVzcGFuIikudGV4dAorICAgIGFzc2VydCB0ZXh0ID09ICJsaW5lIGhh
cyB0ZXh0IgorCisKK2RlZiB0ZXN0UmVhZEFMYXJnZUFtb3VudE9mRGF0YShkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJtYWNiZXRoLmh0bWwiKQorICAgIHNvdXJjZSA9IGRyaXZlci5w
YWdlX3NvdXJjZS5zdHJpcCgpLmxvd2VyKCkKKworICAgIGFzc2VydCBzb3VyY2UuZW5kc3dpdGgo
IjwvaHRtbD4iKQorCisKK2RlZiB0ZXN0U2hvdWxkT25seUluY2x1ZGVWaXNpYmxlVGV4dChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKworICAg
IGVtcHR5ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InN1cHByZXNzZWRQ
YXJhZ3JhcGgiKS50ZXh0CisgICAgZXhwbGljaXQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5
LklELCB2YWx1ZT0ib3V0ZXIiKS50ZXh0CisKKyAgICBhc3NlcnQgIiIgPT0gZW1wdHkKKyAgICBh
c3NlcnQgInN1Yi1lbGVtZW50IHRoYXQgaXMgZXhwbGljaXRseSB2aXNpYmxlIiA9PSBleHBsaWNp
dAorCisKK2RlZiB0ZXN0U2hvdWxkR2V0VGV4dEZyb21UYWJsZUNlbGxzKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInRhYmxlcy5odG1sIikKKworICAgIHRyID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImhpZGRlbl90ZXh0IikKKyAgICB0ZXh0ID0gdHIudGV4
dAorCisgICAgYXNzZXJ0ICJzb21lIHRleHQiIGluIHRleHQKKyAgICBhc3NlcnQgInNvbWUgbW9y
ZSB0ZXh0IiBub3QgaW4gdGV4dAorCisKK2RlZiB0ZXN0U2hvdWxkR2V0VGV4dFdoaWNoSXNBVmFs
aWRKU09OT2JqZWN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3Qu
aHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVl
PSJzaW1wbGVKc29uVGV4dCIpCisgICAgYXNzZXJ0ICJ7YT1cImJcIiwgYz0xLCBkPXRydWV9IiA9
PSBlbGVtZW50LnRleHQKKyAgICAjIGFzc2VydCAie2E9XCJiXCIsIFwiY1wiPWQsIGU9dHJ1ZSwg
Zj1cXDEyM1xcXFxnXFxcXFwiXCJcIlxcXCd9IiwgZWxlbWVudC50ZXh0KQorCisKK2RlZiB0ZXN0
U2hvdWxkR2V0VGV4dFdoaWNoSXNBVmFsaWRDb21wbGV4SlNPTk9iamVjdChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2
ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iY29tcGxleEpzb25UZXh0IikKKyAgICBh
c3NlcnQgIiIie2E9XCJcXFxcYlxcXFxcXFwiXCdcXFwnXCJ9IiIiID09IGVsZW1lbnQudGV4dApk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL3R5cGluZ190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90eXBpbmdf
dGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcyMDlkNTUw
ZjljCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3R5cGluZ190ZXN0cy5weQpAQCAtMCww
ICsxLDMyNSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5j
eSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVu
dHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZv
ciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlw
LiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUg
TGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmli
dXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0
aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNp
ZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5k
ZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBv
cnQgQnkKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzIGltcG9ydCBLZXlzCisK
K2ltcG9ydCBweXRlc3QKKworCitkZWYgdGVzdFNob3VsZEZpcmVLZXlQcmVzc0V2ZW50cyhkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBr
ZXlSZXBvcnRlciA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBv
cnRlciIpCisgICAga2V5UmVwb3J0ZXIuc2VuZF9rZXlzKCJhIikKKyAgICByZXN1bHQgPSBkcml2
ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icmVzdWx0IikKKyAgICBhc3NlcnQgInBy
ZXNzOiIgaW4gcmVzdWx0LnRleHQKKworCitkZWYgdGVzdFNob3VsZEZpcmVLZXlEb3duRXZlbnRz
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQor
ICAgIGtleVJlcG9ydGVyID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9Imtl
eVJlcG9ydGVyIikKKyAgICBrZXlSZXBvcnRlci5zZW5kX2tleXMoIkkiKQorICAgIHJlc3VsdCA9
IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQorICAgIGFzc2Vy
dCAiZG93biIgaW4gcmVzdWx0LnRleHQKKworCitkZWYgdGVzdFNob3VsZEZpcmVLZXlVcEV2ZW50
cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikK
KyAgICBrZXlSZXBvcnRlciA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJr
ZXlSZXBvcnRlciIpCisgICAga2V5UmVwb3J0ZXIuc2VuZF9rZXlzKCJhIikKKyAgICByZXN1bHQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icmVzdWx0IikKKyAgICBhc3Nl
cnQgInVwOiIgaW4gcmVzdWx0LnRleHQKKworCitkZWYgdGVzdFNob3VsZFR5cGVMb3dlckNhc2VM
ZXR0ZXJzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIGtleVJlcG9ydGVyID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFs
dWU9ImtleVJlcG9ydGVyIikKKyAgICBrZXlSZXBvcnRlci5zZW5kX2tleXMoImFiYyBkZWYiKQor
ICAgIGFzc2VydCBrZXlSZXBvcnRlci5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJhYmMgZGVm
IgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9UeXBlQ2FwaXRhbExldHRlcnMoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAga2V5UmVw
b3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIi
KQorICAgIGtleVJlcG9ydGVyLnNlbmRfa2V5cygiQUJDIERFRiIpCisgICAgYXNzZXJ0IGtleVJl
cG9ydGVyLmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIkFCQyBERUYiCisKKworZGVmIHRlc3RT
aG91bGRCZUFibGVUb1R5cGVRdW90ZU1hcmtzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGtleVJlcG9ydGVyID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBrZXlSZXBvcnRlci5z
ZW5kX2tleXMoIlwiIikKKyAgICBhc3NlcnQga2V5UmVwb3J0ZXIuZ2V0X2F0dHJpYnV0ZSgidmFs
dWUiKSA9PSAiXCIiCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1R5cGVUaGVBdENoYXJhY3Rl
cihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikK
KyAgICBrZXlSZXBvcnRlciA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJr
ZXlSZXBvcnRlciIpCisgICAga2V5UmVwb3J0ZXIuc2VuZF9rZXlzKCJAIikKKyAgICBhc3NlcnQg
a2V5UmVwb3J0ZXIuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiQCIKKworCitkZWYgdGVzdFNo
b3VsZEJlQWJsZVRvTWl4VXBwZXJBbmRMb3dlckNhc2VMZXR0ZXJzKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGtleVJlcG9ydGVyID0g
ZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBr
ZXlSZXBvcnRlci5zZW5kX2tleXMoIm1lQGVYYW1wbGUuY29tIikKKyAgICBhc3NlcnQga2V5UmVw
b3J0ZXIuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAibWVAZVhhbXBsZS5jb20iCisKKworZGVm
IHRlc3RBcnJvd0tleXNTaG91bGROb3RCZVByaW50YWJsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBrZXlSZXBvcnRlciA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAga2V5UmVw
b3J0ZXIuc2VuZF9rZXlzKEtleXMuQVJST1dfTEVGVCkKKyAgICBhc3NlcnQga2V5UmVwb3J0ZXIu
Z2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiIgorCisKK2RlZiB0ZXN0TGlzdE9mQXJyb3dLZXlz
U2hvdWxkTm90QmVQcmludGFibGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2
YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAga2V5UmVwb3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50
KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIiKQorICAgIGtleVJlcG9ydGVyLnNlbmRfa2V5
cyhbS2V5cy5BUlJPV19MRUZUXSkKKyAgICBhc3NlcnQga2V5UmVwb3J0ZXIuZ2V0X2F0dHJpYnV0
ZSgidmFsdWUiKSA9PSAiIgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Vc2VBcnJvd0tleXMo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisg
ICAga2V5UmVwb3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5
UmVwb3J0ZXIiKQorICAgIGtleVJlcG9ydGVyLnNlbmRfa2V5cygiVGV0IiwgS2V5cy5BUlJPV19M
RUZULCAicyIpCisgICAgYXNzZXJ0IGtleVJlcG9ydGVyLmdldF9hdHRyaWJ1dGUoInZhbHVlIikg
PT0gIlRlc3QiCisKKworZGVmIHRlc3RXaWxsU2ltdWxhdGVBS2V5VXBXaGVuRW50ZXJpbmdUZXh0
SW50b0lucHV0RWxlbWVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNj
cmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9Qnku
SUQsIHZhbHVlPSJrZXlVcCIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoIkkgbGlrZSBjaGVlc2Ui
KQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1
bHQiKQorICAgIGFzc2VydCByZXN1bHQudGV4dCA9PSAiSSBsaWtlIGNoZWVzZSIKKworCitkZWYg
dGVzdFdpbGxTaW11bGF0ZUFLZXlEb3duV2hlbkVudGVyaW5nVGV4dEludG9JbnB1dEVsZW1lbnRz
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQor
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5RG93
biIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoIkkgbGlrZSBjaGVlc2UiKQorICAgIHJlc3VsdCA9
IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQorICAgICMgIEJl
Y2F1c2UgdGhlIGtleSBkb3duIGdldHMgdGhlIHJlc3VsdCBiZWZvcmUgdGhlIGlucHV0IGVsZW1l
bnQgaXMKKyAgICAjICBmaWxsZWQsIHdlJ3JlIGEgbGV0dGVyIHNob3J0IGhlcmUKKyAgICBhc3Nl
cnQgcmVzdWx0LnRleHQgPT0gIkkgbGlrZSBjaGVlcyIKKworCitkZWYgdGVzdFdpbGxTaW11bGF0
ZUFLZXlQcmVzc1doZW5FbnRlcmluZ1RleHRJbnRvSW5wdXRFbGVtZW50cyhkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVByZXNzIikKKyAgICBlbGVt
ZW50LnNlbmRfa2V5cygiSSBsaWtlIGNoZWVzZSIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InJlc3VsdCIpCisgICAgIyAgQmVjYXVzZSB0aGUga2V5
IGRvd24gZ2V0cyB0aGUgcmVzdWx0IGJlZm9yZSB0aGUgaW5wdXQgZWxlbWVudCBpcworICAgICMg
IGZpbGxlZCwgd2UncmUgYSBsZXR0ZXIgc2hvcnQgaGVyZQorICAgIGFzc2VydCByZXN1bHQudGV4
dCA9PSAiSSBsaWtlIGNoZWVzIgorCisKK2RlZiB0ZXN0V2lsbFNpbXVsYXRlQUtleVVwV2hlbkVu
dGVyaW5nVGV4dEludG9UZXh0QXJlYXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
amF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
Ynk9QnkuSUQsIHZhbHVlPSJrZXlVcEFyZWEiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJJIGxp
a2UgY2hlZXNlIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2
YWx1ZT0icmVzdWx0IikKKyAgICBhc3NlcnQgcmVzdWx0LnRleHQgPT0gIkkgbGlrZSBjaGVlc2Ui
CisKKworZGVmIHRlc3RXaWxsU2ltdWxhdGVBS2V5RG93bldoZW5FbnRlcmluZ1RleHRJbnRvVGV4
dEFyZWFzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
a2V5RG93bkFyZWEiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJJIGxpa2UgY2hlZXNlIikKKyAg
ICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icmVzdWx0IikK
KyAgICAjICBCZWNhdXNlIHRoZSBrZXkgZG93biBnZXRzIHRoZSByZXN1bHQgYmVmb3JlIHRoZSBp
bnB1dCBlbGVtZW50IGlzCisgICAgIyAgZmlsbGVkLCB3ZSdyZSBhIGxldHRlciBzaG9ydCBoZXJl
CisgICAgYXNzZXJ0IHJlc3VsdC50ZXh0ID09ICJJIGxpa2UgY2hlZXMiCisKKworZGVmIHRlc3RX
aWxsU2ltdWxhdGVBS2V5UHJlc3NXaGVuRW50ZXJpbmdUZXh0SW50b1RleHRBcmVhcyhkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVt
ZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVByZXNzQXJlYSIp
CisgICAgZWxlbWVudC5zZW5kX2tleXMoIkkgbGlrZSBjaGVlc2UiKQorICAgIHJlc3VsdCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQorICAgICMgIEJlY2F1
c2UgdGhlIGtleSBkb3duIGdldHMgdGhlIHJlc3VsdCBiZWZvcmUgdGhlIGlucHV0IGVsZW1lbnQg
aXMKKyAgICAjICBmaWxsZWQsIHdlJ3JlIGEgbGV0dGVyIHNob3J0IGhlcmUKKyAgICBhc3NlcnQg
cmVzdWx0LnRleHQgPT0gIkkgbGlrZSBjaGVlcyIKKworCitkZWYgdGVzdFNob3VsZFJlcG9ydEtl
eUNvZGVPZkFycm93S2V5c1VwRG93bkV2ZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50KGJ5PUJ5LklELCB2YWx1ZT0icmVzdWx0IikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBlbGVtZW50LnNlbmRf
a2V5cyhLZXlzLkFSUk9XX0RPV04pCisgICAgYXNzZXJ0ICJkb3duOiA0MCIgaW4gcmVzdWx0LnRl
eHQuc3RyaXAoKQorICAgIGFzc2VydCAidXA6IDQwIiBpbiByZXN1bHQudGV4dC5zdHJpcCgpCisK
KyAgICBlbGVtZW50LnNlbmRfa2V5cyhLZXlzLkFSUk9XX1VQKQorICAgIGFzc2VydCAiZG93bjog
MzgiIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKyAgICBhc3NlcnQgInVwOiAzOCIgaW4gcmVzdWx0
LnRleHQuc3RyaXAoKQorCisgICAgZWxlbWVudC5zZW5kX2tleXMoS2V5cy5BUlJPV19MRUZUKQor
ICAgIGFzc2VydCAiZG93bjogMzciIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKyAgICBhc3NlcnQg
InVwOiAzNyIgaW4gcmVzdWx0LnRleHQuc3RyaXAoKQorCisgICAgZWxlbWVudC5zZW5kX2tleXMo
S2V5cy5BUlJPV19SSUdIVCkKKyAgICBhc3NlcnQgImRvd246IDM5IiBpbiByZXN1bHQudGV4dC5z
dHJpcCgpCisgICAgYXNzZXJ0ICJ1cDogMzkiIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKworICAg
ICMgIEFuZCBsZWF2ZSBubyBydWJiaXNoL3ByaW50YWJsZSBrZXlzIGluIHRoZSAia2V5UmVwb3J0
ZXIiCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiIgorCisK
K2RlZiB0ZXN0TnVtZXJpY05vblNoaWZ0S2V5cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxl
bWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBudW1lcmljTGluZUNoYXJz
Tm9uU2hpZnRlZCA9ICJgMTIzNDU2Nzg5MC09W11cXCwuJy80MiIKKyAgICBlbGVtZW50LnNlbmRf
a2V5cyhudW1lcmljTGluZUNoYXJzTm9uU2hpZnRlZCkKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRf
YXR0cmlidXRlKCJ2YWx1ZSIpID09IG51bWVyaWNMaW5lQ2hhcnNOb25TaGlmdGVkCisKKworQHB5
dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxh
Lm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU1MjU4JykKK2RlZiB0ZXN0TnVtZXJpY1No
aWZ0S2V5cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5o
dG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
cmVzdWx0IikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFs
dWU9ImtleVJlcG9ydGVyIikKKyAgICBudW1lcmljU2hpZnRzRXRjID0gIn4hQCMkJV4mKigpXyt7
fTppXCI8Pj98RU5EfiIKKyAgICBlbGVtZW50LnNlbmRfa2V5cyhudW1lcmljU2hpZnRzRXRjKQor
ICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gbnVtZXJpY1NoaWZ0
c0V0YworICAgIGFzc2VydCAidXA6IDE2IiBpbiByZXN1bHQudGV4dC5zdHJpcCgpCisKKworZGVm
IHRlc3RMb3dlckNhc2VBbHBoYUtleXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
amF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
Ynk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAgbG93ZXJBbHBoYXMgPSAiYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiCisgICAgZWxlbWVudC5zZW5kX2tleXMobG93ZXJBbHBoYXMp
CisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSBsb3dlckFscGhh
cworCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0naHR0cHM6
Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTI1OCcpCitkZWYgdGVz
dFVwcGVyY2FzZUFscGhhS2V5cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZh
c2NyaXB0UGFnZS5odG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5
LklELCB2YWx1ZT0icmVzdWx0IikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICB1cHBlckFscGhhcyA9ICJBQkNERUZH
SElKS0xNTk9QUVJTVFVWV1hZWiIKKyAgICBlbGVtZW50LnNlbmRfa2V5cyh1cHBlckFscGhhcykK
KyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09IHVwcGVyQWxwaGFz
CisgICAgYXNzZXJ0ICJ1cDogMTYiIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKworCitAcHl0ZXN0
Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVnemlsbGEubW96
aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTUyNTgnKQorZGVmIHRlc3RBbGxQcmludGFibGVL
ZXlzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwi
KQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1
bHQiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
a2V5UmVwb3J0ZXIiKQorICAgIGFsbFByaW50YWJsZSA9ICIhXCIjJCUmJygpKissLS4vMDEyMzQ1
Njc4OTo8PT4/QCBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiBbXFxdXl9gYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXp7fH1+IgorICAgIGVsZW1lbnQuc2VuZF9rZXlzKGFsbFByaW50YWJsZSkK
KworICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gYWxsUHJpbnRh
YmxlCisgICAgYXNzZXJ0ICJ1cDogMTYiIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKworCitkZWYg
dGVzdEFycm93S2V5c0FuZFBhZ2VVcEFuZERvd24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2Vs
ZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAgZWxlbWVudC5zZW5kX2tl
eXMoCisgICAgICAgICJhIiArIEtleXMuTEVGVCArICJiIiArIEtleXMuUklHSFQgKworICAgICAg
ICBLZXlzLlVQICsgS2V5cy5ET1dOICsgS2V5cy5QQUdFX1VQICsgS2V5cy5QQUdFX0RPV04gKyAi
MSIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiYmExIgor
CisKKyMgZGVmIHRlc3RIb21lQW5kRW5kQW5kUGFnZVVwQW5kUGFnZURvd25LZXlzKGRyaXZlciwg
cGFnZXMpOgorIyAgLy8gRklYTUU6IG1hY3MgZG9uJ3QgaGF2ZSBIT01FIGtleXMsIHdvdWxkIFBH
VVAgd29yaz8KKyMgIGlmIChQbGF0Zm9ybS5nZXRDdXJyZW50KCkuaXMoUGxhdGZvcm0uTUFDKSkg
eworIyAgICByZXR1cm4KKyMgIH0KKworIyAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRt
bCIpCisKKyMgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
a2V5UmVwb3J0ZXIiKQorCisjICBlbGVtZW50LnNlbmRfa2V5cygiYWJjIiArIEtleXMuSE9NRSAr
ICIwIiArIEtleXMuTEVGVCArIEtleXMuUklHSFQgKworIyAgICAgICAgICAgICAgICAgICBLZXlz
LlBBR0VfVVAgKyBLZXlzLlBBR0VfRE9XTiArIEtleXMuRU5EICsgIjEiICsgS2V5cy5IT01FICsK
KyMgICAgICAgICAgICAgICAgICAgIjAiICsgS2V5cy5QQUdFX1VQICsgS2V5cy5FTkQgKyAiMTEx
IiArIEtleXMuSE9NRSArICIwMCIpCisjICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2
YWx1ZSIpID09ICIwMDAwYWJjMTExMSIKKworCitkZWYgdGVzdERlbGV0ZUFuZEJhY2tzcGFjZUtl
eXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIp
CisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlS
ZXBvcnRlciIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoImFiY2RlZmdoaSIpCisgICAgYXNzZXJ0
IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiYWJjZGVmZ2hpIgorCisgICAgZWxl
bWVudC5zZW5kX2tleXMoS2V5cy5MRUZULCBLZXlzLkxFRlQsIEtleXMuREVMRVRFKQorICAgIGFz
c2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImFiY2RlZmdpIgorCisgICAg
ZWxlbWVudC5zZW5kX2tleXMoS2V5cy5MRUZULCBLZXlzLkxFRlQsIEtleXMuQkFDS19TUEFDRSkK
KyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJhYmNkZmdpIgor
CisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9i
dWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTI1OCcpCitkZWYgdGVzdFNw
ZWNpYWxTcGFjZUtleXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlw
dFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQs
IHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoImFiY2QiICsgS2V5
cy5TUEFDRSArICJmZ2giICsgS2V5cy5TUEFDRSArICJpaiIpCisgICAgYXNzZXJ0IGVsZW1lbnQu
Z2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiYWJjZCBmZ2ggaWoiCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsX21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxhLm1vemlsbGEu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU1MjU4JykKK2RlZiB0ZXN0TnVtYmVycGFkQW5kRnVuY3Rp
b25LZXlzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
a2V5UmVwb3J0ZXIiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKAorICAgICAgICAiYWJjZCIgKyBL
ZXlzLk1VTFRJUExZICsgS2V5cy5TVUJUUkFDVCArIEtleXMuQUREICsKKyAgICAgICAgS2V5cy5E
RUNJTUFMICsgS2V5cy5TRVBBUkFUT1IgKyBLZXlzLk5VTVBBRDAgKyBLZXlzLk5VTVBBRDkgKwor
ICAgICAgICBLZXlzLkFERCArIEtleXMuU0VNSUNPTE9OICsgS2V5cy5FUVVBTFMgKyBLZXlzLkRJ
VklERSArCisgICAgICAgIEtleXMuTlVNUEFEMyArICJhYmNkIikKKyAgICBhc3NlcnQgZWxlbWVu
dC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJhYmNkKi0rLiwwOSs7PS8zYWJjZCIKKworICAg
IGVsZW1lbnQuY2xlYXIoKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJGVU5DVElPTiIgKyBLZXlz
LkYyICsgIi1LRVlTIiArIEtleXMuRjIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoIiIgKyBLZXlz
LkYyICsgIi1UT08iICsgS2V5cy5GMikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRl
KCJ2YWx1ZSIpID09ICJGVU5DVElPTi1LRVlTLVRPTyIKKworCitkZWYgdGVzdFNoaWZ0U2VsZWN0
aW9uRGVsZXRlcyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFn
ZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFs
dWU9ImtleVJlcG9ydGVyIikKKworICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJhYmNkIGVmZ2giKQor
ICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImFiY2QgZWZnaCIK
KworICAgIGVsZW1lbnQuc2VuZF9rZXlzKEtleXMuU0hJRlQsIEtleXMuTEVGVCwgS2V5cy5MRUZU
LCBLZXlzLkxFRlQpCisgICAgZWxlbWVudC5zZW5kX2tleXMoS2V5cy5ERUxFVEUpCisgICAgYXNz
ZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiYWJjZCBlIgorCisKK2RlZiB0
ZXN0U2hvdWxkVHlwZUludG9JbnB1dEVsZW1lbnRzVGhhdEhhdmVOb1R5cGVBdHRyaWJ1dGUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVu
dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJuby10eXBlIikKKyAgICBl
bGVtZW50LnNlbmRfa2V5cygiU2hvdWxkIFNheSBDaGVlc2UiKQorICAgIGFzc2VydCBlbGVtZW50
LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIlNob3VsZCBTYXkgQ2hlZXNlIgorCisKK2RlZiB0
ZXN0U2hvdWxkVHlwZUFuSW50ZWdlcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJq
YXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBlbGVtZW50LnNlbmRfa2V5cygxMjM0
KQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIjEyMzQiCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2M2I0MjU2NTVmCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3V0aWxzLnB5CkBAIC0wLDAgKzEsMjYgQEAKKyMgTGljZW5zZWQg
dG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9y
IG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmls
ZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlv
bgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhp
cyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0
aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQg
dG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug
aXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVT
IE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2Rl
ZiBjb252ZXJ0X2Nvb2tpZV90b19qc29uKGNvb2tpZSk6CisgICAgY29va2llX2RpY3QgPSB7fQor
ICAgIGZvciBrZXksIHZhbHVlIGluIGNvb2tpZS5pdGVtcygpOgorICAgICAgICBpZiBrZXkgPT0g
ImV4cGlyZXMiOgorICAgICAgICAgICAgY29va2llX2RpY3RbImV4cGlyeSJdID0gaW50KHZhbHVl
KSAqIDEwMDAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvb2tpZV9kaWN0W2tleV0gPSB2
YWx1ZQorICAgIHJldHVybiBjb29raWVfZGljdApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Zpc2li
aWxpdHlfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdmlzaWJpbGl0eV90ZXN0cy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTg3NjNhN2RjNmEKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vdmlzaWJpbGl0eV90ZXN0cy5weQpAQCAtMCwwICsxLDE0NyBAQAorIyBM
aWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBv
bmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5P
VElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGlu
Zm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNl
bnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv
biAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNv
cHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z
ZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y
IGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUg
TGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3Ig
aW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdv
dmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2Uu
CisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBv
cnQgKAorICAgIEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uLAorICAgIEVsZW1lbnROb3RJbnRl
cmFjdGFibGVFeGNlcHRpb24sCisgICAgSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbikKK2Zy
b20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKKworCitkZWYgdGVzdFNo
b3VsZEFsbG93VGhlVXNlclRvVGVsbElmQW5FbGVtZW50SXNEaXNwbGF5ZWRPck5vdChkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKworICAgIGFz
c2VydCBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iZGlzcGxheWVkIikuaXNf
ZGlzcGxheWVkKCkgaXMgVHJ1ZQorICAgIGFzc2VydCBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5
LklELCB2YWx1ZT0ibm9uZSIpLmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCisgICAgYXNzZXJ0IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJzdXBwcmVzc2VkUGFyYWdyYXBoIiku
aXNfZGlzcGxheWVkKCkgaXMgRmFsc2UKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9ImhpZGRlbiIpLmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCisKKworZGVm
IHRlc3RWaXNpYmlsaXR5U2hvdWxkVGFrZUludG9BY2NvdW50UGFyZW50VmlzaWJpbGl0eShkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKworICAg
IGNoaWxkRGl2ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImhpZGRlbmNo
aWxkIikKKyAgICBoaWRkZW5MaW5rID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFs
dWU9ImhpZGRlbmxpbmsiKQorCisgICAgYXNzZXJ0IGNoaWxkRGl2LmlzX2Rpc3BsYXllZCgpIGlz
IEZhbHNlCisgICAgYXNzZXJ0IGhpZGRlbkxpbmsuaXNfZGlzcGxheWVkKCkgaXMgRmFsc2UKKwor
CitkZWYgdGVzdFNob3VsZENvdW50RWxlbWVudHNBc1Zpc2libGVJZlN0eWxlUHJvcGVydHlIYXNC
ZWVuU2V0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIHNob3duID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InZp
c2libGVTdWJFbGVtZW50IikKKyAgICBhc3NlcnQgc2hvd24uaXNfZGlzcGxheWVkKCkgaXMgVHJ1
ZQorCisKK2RlZiB0ZXN0U2hvdWxkTW9kaWZ5VGhlVmlzaWJpbGl0eU9mQW5FbGVtZW50RHluYW1p
Y2FsbHkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRt
bCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJo
aWRlTWUiKQorICAgIGFzc2VydCBlbGVtZW50LmlzX2Rpc3BsYXllZCgpIGlzIFRydWUKKyAgICBl
bGVtZW50LmNsaWNrKCkKKyAgICBhc3NlcnQgZWxlbWVudC5pc19kaXNwbGF5ZWQoKSBpcyBGYWxz
ZQorCisKK2RlZiB0ZXN0SGlkZGVuSW5wdXRFbGVtZW50c0FyZU5ldmVyVmlzaWJsZShkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKworICAgIHNo
b3duID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2YWx1ZT0iaGlkZGVuIikKKwor
ICAgIGFzc2VydCBzaG93bi5pc19kaXNwbGF5ZWQoKSBpcyBGYWxzZQorCisKK2RlZiB0ZXN0U2hv
dWxkTm90QmVBYmxlVG9DbGlja09uQW5FbGVtZW50VGhhdElzTm90RGlzcGxheWVkKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGVsZW1l
bnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0idW5jbGlja2FibGUiKQor
ICAgIHRyeToKKyAgICAgICAgZWxlbWVudC5jbGljaygpCisgICAgICAgIGFzc2VydCAxID09IDAs
ICJzaG91bGQgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uIgorICAgIGV4Y2VwdCAoRWxlbWVudE5v
dFZpc2libGVFeGNlcHRpb24sIEVsZW1lbnROb3RJbnRlcmFjdGFibGVFeGNlcHRpb24pOgorICAg
ICAgICBwYXNzCisKKworZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb1RvZ2dsZUFuRWxlbWVudFRo
YXRJc05vdERpc3BsYXllZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2Ny
aXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5J
RCwgdmFsdWU9InVudG9nZ2xhYmxlIikKKyAgICB0cnk6CisgICAgICAgIGVsZW1lbnQuY2xpY2so
KQorICAgICAgICBhc3NlcnQgMSA9PSAwLCAic2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlv
biIKKyAgICBleGNlcHQgKEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uLCBFbGVtZW50Tm90SW50
ZXJhY3RhYmxlRXhjZXB0aW9uKToKKyAgICAgICAgcGFzcworCisKK2RlZiB0ZXN0U2hvdWxkTm90
QmVBYmxlVG9TZWxlY3RBbkVsZW1lbnRUaGF0SXNOb3REaXNwbGF5ZWQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJ1bnRvZ2dsYWJsZSIpCisgICAgdHJ5
OgorICAgICAgICBlbGVtZW50LmNsaWNrKCkKKyAgICAgICAgYXNzZXJ0IDEgPT0gMCwgInNob3Vs
ZCBoYXZlIHRocm93biBhbiBleGNlcHRpb24iCisgICAgZXhjZXB0IChFbGVtZW50Tm90VmlzaWJs
ZUV4Y2VwdGlvbiwgRWxlbWVudE5vdEludGVyYWN0YWJsZUV4Y2VwdGlvbik6CisgICAgICAgIHBh
c3MKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1JbnZhbGlkRWxlbWVu
dFN0YXRlRXhjZXB0aW9uKQorZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb1R5cGVBbkVsZW1lbnRU
aGF0SXNOb3REaXNwbGF5ZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNj
cmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9Qnku
SUQsIHZhbHVlPSJ1bmNsaWNrYWJsZSIpCisgICAgdHJ5OgorICAgICAgICBlbGVtZW50LnNlbmRf
a2V5cygiWW91IGRvbid0IHNlZSBtZSIpCisgICAgICAgIGFzc2VydCAxID09IDAsICJzaG91bGQg
aGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uIgorICAgIGV4Y2VwdCAoRWxlbWVudE5vdFZpc2libGVF
eGNlcHRpb24sIEVsZW1lbnROb3RJbnRlcmFjdGFibGVFeGNlcHRpb24pOgorICAgICAgICBwYXNz
CisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSAhPSAiWW91IGRvbid0
IHNlZSBtZSIKKworCitkZWYgdGVzdFNob3VsZFNheUVsZW1lbnRzV2l0aE5lZ2F0aXZlVHJhbnNm
b3JtQXJlTm90RGlzcGxheWVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ2Nzc1Ry
YW5zZm9ybS5odG1sJykKKyAgICBlbGVtZW50WCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
IHZhbHVlPSdwYXJlbnRYJykKKyAgICBhc3NlcnQgZWxlbWVudFguaXNfZGlzcGxheWVkKCkgaXMg
RmFsc2UKKyAgICBlbGVtZW50WSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsIHZhbHVlPSdw
YXJlbnRZJykKKyAgICBhc3NlcnQgZWxlbWVudFkuaXNfZGlzcGxheWVkKCkgaXMgRmFsc2UKKwor
CitkZWYgdGVzdFNob3VsZFNheUVsZW1lbnRzV2l0aFBhcmVudFdpdGhOZWdhdGl2ZVRyYW5zZm9y
bUFyZU5vdERpc3BsYXllZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCdjc3NUcmFu
c2Zvcm0uaHRtbCcpCisgICAgZWxlbWVudFggPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCB2
YWx1ZT0nY2hpbGRYJykKKyAgICBhc3NlcnQgZWxlbWVudFguaXNfZGlzcGxheWVkKCkgaXMgRmFs
c2UKKyAgICBlbGVtZW50WSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsIHZhbHVlPSdjaGls
ZFknKQorICAgIGFzc2VydCBlbGVtZW50WS5pc19kaXNwbGF5ZWQoKSBpcyBGYWxzZQorCisKK2Rl
ZiB0ZXN0U2hvdWxkU2F5RWxlbWVudFdpdGhaZXJvVHJhbnNmb3JtSXNWaXNpYmxlKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ2Nzc1RyYW5zZm9ybS5odG1sJykKKyAgICB6ZXJvX3Ry
YW5mb3JtID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgJ3plcm8tdHJhbmZvcm0nKQorICAg
IGFzc2VydCB6ZXJvX3RyYW5mb3JtLmlzX2Rpc3BsYXllZCgpIGlzIFRydWUKKworCitkZWYgdGVz
dFNob3VsZFNheUVsZW1lbnRJc1Zpc2libGVXaGVuSXRIYXNOZWdhdGl2ZVRyYW5zZm9ybUJ1dEVs
ZW1lbnRpc250SW5BTmVnYXRpdmVTcGFjZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCdjc3NUcmFuc2Zvcm0yLmh0bWwnKQorICAgIHplcm9fdHJhbmZvcm0gPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LklELCAnbmVnYXRpdmUtcGVyY2VudGFnZS10cmFuc2Zvcm1ZJykKKyAgICBhc3Nl
cnQgemVyb190cmFuZm9ybS5pc19kaXNwbGF5ZWQoKSBpcyBUcnVlCisKKworZGVmIHRlc3RTaG91
bGRTaG93RWxlbWVudE5vdFZpc2libGVXaXRoSGlkZGVuQXR0cmlidXRlKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoJ2hpZGRlbi5odG1sJykKKyAgICBzaW5nbGVIaWRkZW4gPSBkcml2
ZXIuZmluZF9lbGVtZW50KEJ5LklELCAnc2luZ2xlSGlkZGVuJykKKyAgICBhc3NlcnQgc2luZ2xl
SGlkZGVuLmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCisKKworZGVmIHRlc3RTaG91bGRTaG93RWxl
bWVudE5vdFZpc2libGVXaGVuUGFyZW50RWxlbWVudEhhc0hpZGRlbkF0dHJpYnV0ZShkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCdoaWRkZW4uaHRtbCcpCisgICAgY2hpbGQgPSBkcml2
ZXIuZmluZF9lbGVtZW50KEJ5LklELCAnY2hpbGQnKQorICAgIGFzc2VydCBjaGlsZC5pc19kaXNw
bGF5ZWQoKSBpcyBGYWxzZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3czY19pbnRlcmFjdGlvbl90
ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi93M2NfaW50ZXJhY3Rpb25fdGVzdHMucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk0NDQwYWQ2NWIyCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL3czY19pbnRlcmFjdGlvbl90ZXN0cy5weQpAQCAtMCwwICsxLDIzOSBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmtl
eXMgaW1wb3J0IEtleXMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5hY3Rpb25zLmFj
dGlvbl9idWlsZGVyIGltcG9ydCBBY3Rpb25CdWlsZGVyCitmcm9tIHNlbGVuaXVtLndlYmRyaXZl
ci5zdXBwb3J0LnVpIGltcG9ydCBXZWJEcml2ZXJXYWl0CisKKworZGVmIHRlc3Rfc2hvdWxkX2Jl
X2FibGVfdG9fZ2V0X3BvaW50ZXJfYW5kX2tleWJvYXJkX2lucHV0cyhkcml2ZXIsIHBhZ2VzKToK
KyAgICBhY3Rpb25zID0gQWN0aW9uQnVpbGRlcihkcml2ZXIpCisgICAgcG9pbnRlcnMgPSBhY3Rp
b25zLnBvaW50ZXJfaW5wdXRzCisgICAga2V5Ym9hcmRzID0gYWN0aW9ucy5rZXlfaW5wdXRzCisK
KyAgICBhc3NlcnQgcG9pbnRlcnMgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQga2V5Ym9hcmRzIGlz
IG5vdCBOb25lCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZQorQHB5dGVzdC5tYXJrLnhm
YWlsX2ZpcmVmb3gKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUKK0BweXRlc3QubWFyay54ZmFp
bF9waGFudG9tanMKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0n
aHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIvaXNzdWVzLzY0NicpCitkZWYg
dGVzdFNlbmRpbmdLZXlzVG9BY3RpdmVFbGVtZW50V2l0aE1vZGlmaWVyKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGUgPSBkcml2ZXIuZmluZF9l
bGVtZW50X2J5X2lkKCJ3b3JraW5nIikKKyAgICBlLmNsaWNrKCkKKworICAgIGFjdGlvbnMgPSBB
Y3Rpb25CdWlsZGVyKGRyaXZlcikKKyAgICBrZXlfYWN0aW9uID0gYWN0aW9ucy5rZXlfYWN0aW9u
CisgICAga2V5X2FjdGlvbi5rZXlfZG93bihLZXlzLlNISUZUKSBcCisgICAgICAgIC5zZW5kX2tl
eXMoImFiYyIpIFwKKyAgICAgICAgLmtleV91cChLZXlzLlNISUZUKQorCisgICAgYWN0aW9ucy5w
ZXJmb3JtKCkKKworICAgIGFzc2VydCAiQUJDIiA9PSBlLmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZv
eAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21q
cworZGVmIHRlc3RfY2FuX2NyZWF0ZV9wYXVzZV9hY3Rpb25fb25fa2V5Ym9hcmQoZHJpdmVyLCBw
YWdlcyk6CisgICAgIyBJZiB3ZSBkb24ndCBnZXQgYW4gZXJyb3IgYW5kIHRha2VzIGxlc3MgdGhh
biAzIHNlY29uZHMgdG8gcnVuLCB3ZSBhcmUgZ29vZAorICAgIGltcG9ydCBkYXRldGltZQorICAg
IHN0YXJ0ID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkKKyAgICBhY3Rpb25zMSA9IEFjdGlvbkJ1
aWxkZXIoZHJpdmVyKQorICAgIGtleV9hY3Rpb25zID0gYWN0aW9uczEua2V5X2FjdGlvbgorICAg
IGtleV9hY3Rpb25zLnBhdXNlKDEpCisgICAgYWN0aW9uczEucGVyZm9ybSgpCisgICAgZmluaXNo
ID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkKKyAgICBhc3NlcnQgKGZpbmlzaCAtIHN0YXJ0KS5z
ZWNvbmRzIDw9IDMKKworICAgICMgQWRkIGEgZmlsbGVyIHN0ZXAKKyAgICBhY3Rpb25zMiA9IEFj
dGlvbkJ1aWxkZXIoZHJpdmVyKQorICAgIGtleV9hY3Rpb24gPSBhY3Rpb25zMi5rZXlfYWN0aW9u
CisgICAga2V5X2FjdGlvbi5wYXVzZSgpCisgICAgYWN0aW9uczIucGVyZm9ybSgpCisKKworQHB5
dGVzdC5tYXJrLnhmYWlsX2Nocm9tZQorQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKK0BweXRl
c3QubWFyay54ZmFpbF9yZW1vdGUKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK2RlZiB0
ZXN0X2Nhbl9jcmVhdGVfcGF1c2VfYWN0aW9uX29uX3BvaW50ZXIoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgIyBJZiB3ZSBkb24ndCBnZXQgYW4gZXJyb3IgYW5kIHRha2VzIGxlc3MgdGhhbiAzIHNlY29u
ZHMgdG8gcnVuLCB3ZSBhcmUgZ29vZAorICAgIGltcG9ydCBkYXRldGltZQorICAgIHN0YXJ0ID0g
ZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkKKyAgICBhY3Rpb25zMSA9IEFjdGlvbkJ1aWxkZXIoZHJp
dmVyKQorICAgIGtleV9hY3Rpb25zID0gYWN0aW9uczEucG9pbnRlcl9hY3Rpb24KKyAgICBrZXlf
YWN0aW9ucy5wYXVzZSgxKQorICAgIGFjdGlvbnMxLnBlcmZvcm0oKQorICAgIGZpbmlzaCA9IGRh
dGV0aW1lLmRhdGV0aW1lLm5vdygpCisgICAgYXNzZXJ0IChmaW5pc2ggLSBzdGFydCkuc2Vjb25k
cyA8PSAzCisKKyAgICAjIEFkZCBhIGZpbGxlciBzdGVwCisgICAgYWN0aW9uczIgPSBBY3Rpb25C
dWlsZGVyKGRyaXZlcikKKyAgICBrZXlfYWN0aW9uID0gYWN0aW9uczIucG9pbnRlcl9hY3Rpb24K
KyAgICBrZXlfYWN0aW9uLnBhdXNlKCkKKyAgICBhY3Rpb25zMi5wZXJmb3JtKCkKKworCitAcHl0
ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVz
dC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcworZGVmIHRl
c3RfY2FuX2NsZWFyX2FjdGlvbnMoZHJpdmVyLCBwYWdlcyk6CisgICAgYWN0aW9ucyA9IEFjdGlv
bkJ1aWxkZXIoZHJpdmVyKQorICAgIGFjdGlvbnMuY2xlYXJfYWN0aW9ucygpCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9tZQorQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKK0BweXRlc3Qu
bWFyay54ZmFpbF9yZW1vdGUKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK2RlZiB0ZXN0
X21vdmVfYW5kX2NsaWNrKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3Jp
cHRQYWdlLmh0bWwiKQorICAgIHRvQ2xpY2sgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJj
bGlja0ZpZWxkIikKKworICAgIGFjdGlvbnMgPSBBY3Rpb25CdWlsZGVyKGRyaXZlcikKKyAgICBw
b2ludGVyID0gYWN0aW9ucy5wb2ludGVyX2FjdGlvbgorCisgICAgcG9pbnRlci5tb3ZlX3RvKHRv
Q2xpY2spIFwKKyAgICAgICAgICAgLmNsaWNrKCkKKworICAgIGFjdGlvbnMucGVyZm9ybSgpCisg
ICAgYXNzZXJ0ICJDbGlja2VkIiA9PSB0b0NsaWNrLmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAor
QHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcwor
ZGVmIHRlc3REcmFnQW5kRHJvcChkcml2ZXIsIHBhZ2VzKToKKyAgICAiIiJDb3BpZWQgZnJvbSBv
cmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUludGVyZmFjZS4i
IiIKKyAgICBlbGVtZW50X2F2YWlsYWJsZV90aW1lb3V0ID0gMTUKKyAgICB3YWl0ID0gV2ViRHJp
dmVyV2FpdChkcml2ZXIsIGVsZW1lbnRfYXZhaWxhYmxlX3RpbWVvdXQpCisgICAgcGFnZXMubG9h
ZCgiZHJvcHBhYmxlSXRlbXMuaHRtbCIpCisgICAgd2FpdC51bnRpbChsYW1iZGEgZHI6IF9pc0Vs
ZW1lbnRBdmFpbGFibGUoZHJpdmVyLCAiZHJhZ2dhYmxlIikpCisKKyAgICBpZiBub3QgX2lzRWxl
bWVudEF2YWlsYWJsZShkcml2ZXIsICJkcmFnZ2FibGUiKToKKyAgICAgICAgcmFpc2UgQXNzZXJ0
aW9uRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGRyYWdnYWJsZSBlbGVtZW50IGFmdGVyIDE1IHNlY29u
ZHMuIikKKworICAgIHRvRHJhZyA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRyYWdnYWJs
ZSIpCisgICAgZHJvcEludG8gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkcm9wcGFibGUi
KQorICAgIGFjdGlvbnMgPSBBY3Rpb25CdWlsZGVyKGRyaXZlcikKKyAgICBwb2ludGVyID0gYWN0
aW9ucy5wb2ludGVyX2FjdGlvbgorICAgIHBvaW50ZXIuY2xpY2tfYW5kX2hvbGQodG9EcmFnKSBc
CisgICAgICAgICAgIC5tb3ZlX3RvKGRyb3BJbnRvKVwKKyAgICAgICAgICAgLnJlbGVhc2UoKQor
CisgICAgYWN0aW9ucy5wZXJmb3JtKCkKKworICAgIGRyb3BJbnRvID0gZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9pZCgiZHJvcHBhYmxlIikKKyAgICB0ZXh0ID0gZHJvcEludG8uZmluZF9lbGVtZW50
X2J5X3RhZ19uYW1lKCJwIikudGV4dAorICAgIGFzc2VydCAiRHJvcHBlZCEiID09IHRleHQKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAor
QHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcwor
ZGVmIHRlc3RfY29udGV4dF9jbGljayhkcml2ZXIsIHBhZ2VzKToKKworICAgIHBhZ2VzLmxvYWQo
ImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHRvQ29udGV4dENsaWNrID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9pZCgiZG91YmxlQ2xpY2tGaWVsZCIpCisKKyAgICBhY3Rpb25zID0gQWN0aW9u
QnVpbGRlcihkcml2ZXIpCisgICAgcG9pbnRlciA9IGFjdGlvbnMucG9pbnRlcl9hY3Rpb24KKyAg
ICBwb2ludGVyLmNvbnRleHRfY2xpY2sodG9Db250ZXh0Q2xpY2spCisKKyAgICBhY3Rpb25zLnBl
cmZvcm0oKQorICAgIGFzc2VydCAiQ29udGV4dENsaWNrZWQiID09IHRvQ29udGV4dENsaWNrLmdl
dF9hdHRyaWJ1dGUoJ3ZhbHVlJykKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0
ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVz
dC5tYXJrLnhmYWlsX3BoYW50b21qcworQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUoCisg
ICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMv
NjYxJykKK2RlZiB0ZXN0X2RvdWJsZV9jbGljayhkcml2ZXIsIHBhZ2VzKToKKyAgICAiIiJDb3Bp
ZWQgZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUlu
dGVyZmFjZS4iIiIKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICB0
b0RvdWJsZUNsaWNrID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZG91YmxlQ2xpY2tGaWVs
ZCIpCisKKyAgICBhY3Rpb25zID0gQWN0aW9uQnVpbGRlcihkcml2ZXIpCisgICAgcG9pbnRlciA9
IGFjdGlvbnMucG9pbnRlcl9hY3Rpb24KKworICAgIHBvaW50ZXIuZG91YmxlX2NsaWNrKHRvRG91
YmxlQ2xpY2spCisKKyAgICBhY3Rpb25zLnBlcmZvcm0oKQorICAgIGFzc2VydCAiRG91YmxlQ2xp
Y2tlZCIgPT0gdG9Eb3VibGVDbGljay5nZXRfYXR0cmlidXRlKCd2YWx1ZScpCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9tZQorQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gKK0BweXRlc3Qu
bWFyay54ZmFpbF9yZW1vdGUKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK2RlZiB0ZXN0
X2RyYWdnaW5nX2VsZW1lbnRfd2l0aF9tb3VzZV9tb3Zlc19pdF90b19hbm90aGVyX2xpc3QoZHJp
dmVyLCBwYWdlcyk6CisgICAgX3BlcmZvcm1EcmFnQW5kRHJvcFdpdGhNb3VzZShkcml2ZXIsIHBh
Z2VzKQorICAgIGRyYWdJbnRvID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgic29ydGFibGUx
IikKKyAgICBhc3NlcnQgNiA9PSBsZW4oZHJhZ0ludG8uZmluZF9lbGVtZW50c19ieV90YWdfbmFt
ZSgibGkiKSkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZh
aWxfZmlyZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWls
X3BoYW50b21qcworZGVmIHRlc3RfZHJhZ2dpbmdfZWxlbWVudF93aXRoX21vdXNlX2ZpcmVzX2V2
ZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBfcGVyZm9ybURyYWdBbmREcm9wV2l0aE1vdXNlKGRy
aXZlciwgcGFnZXMpCisgICAgZHJhZ1JlcG9ydGVyID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9p
ZCgiZHJhZ2dpbmdfcmVwb3J0cyIpCisgICAgYXNzZXJ0ICJOb3RoaW5nIGhhcHBlbmVkLiBEcmFn
T3V0IERyb3BJbiBSaWdodEl0ZW0gMyIgPT0gZHJhZ1JlcG9ydGVyLnRleHQKKworCitkZWYgX3Bl
cmZvcm1EcmFnQW5kRHJvcFdpdGhNb3VzZShkcml2ZXIsIHBhZ2VzKToKKyAgICAiIiJDb3BpZWQg
ZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUludGVy
ZmFjZS4iIiIKKyAgICBwYWdlcy5sb2FkKCJkcmFnZ2FibGVMaXN0cy5odG1sIikKKyAgICBkcmFn
UmVwb3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkcmFnZ2luZ19yZXBvcnRzIikK
KyAgICB0b0RyYWcgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJyaWdodGl0ZW0tMyIpCisg
ICAgZHJhZ0ludG8gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJzb3J0YWJsZTEiKQorCisg
ICAgYWN0aW9ucyA9IEFjdGlvbkJ1aWxkZXIoZHJpdmVyKQorICAgIHBvaW50ZXIgPSBhY3Rpb25z
LnBvaW50ZXJfYWN0aW9uCisgICAgcG9pbnRlci5jbGlja19hbmRfaG9sZCh0b0RyYWcpIFwKKyAg
ICAgICAgICAgLm1vdmVfdG8oZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibGVmdGl0ZW0tNCIp
KSBcCisgICAgICAgICAgIC5tb3ZlX3RvKGRyYWdJbnRvKSBcCisgICAgICAgICAgIC5yZWxlYXNl
KCkKKworICAgIGFzc2VydCAiTm90aGluZyBoYXBwZW5lZC4iID09IGRyYWdSZXBvcnRlci50ZXh0
CisKKyAgICBhY3Rpb25zLnBlcmZvcm0oKQorICAgIGFzc2VydCAiTm90aGluZyBoYXBwZW5lZC4g
RHJhZ091dCIgaW4gZHJhZ1JlcG9ydGVyLnRleHQKKworCitkZWYgX2lzRWxlbWVudEF2YWlsYWJs
ZShkcml2ZXIsIGlkKToKKyAgICAiIiJDb3BpZWQgZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmlu
dGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUludGVyZmFjZS4iIiIKKyAgICB0cnk6CisgICAgICAg
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoaWQpCisgICAgICAgIHJldHVybiBUcnVlCisgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vd2ViZHJpdmVyd2FpdF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93ZWJkcml2ZXJ3YWl0X3Rl
c3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZTI2MjJiM2Qx
NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93ZWJkcml2ZXJ3YWl0X3Rlc3RzLnB5CkBA
IC0wLDAgKzEsMzE1IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNl
cnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdy
ZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdv
cmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25l
cnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4g
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJ
UyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwor
IyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHRpbWUKKworaW1wb3J0IHB5dGVzdAorCitm
cm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBUaW1lb3V0RXhjZXB0aW9uCitm
cm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBTdGFsZUVsZW1lbnRSZWZlcmVu
Y2VFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRy
aXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgSW52
YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9u
LmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhw
ZWN0ZWRfY29uZGl0aW9ucyBhcyBFQworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51
aSBpbXBvcnQgV2ViRHJpdmVyV2FpdAorCisKK2RlZiB0aHJvd1NFUkUoZHJpdmVyKToKKyAgICBy
YWlzZSBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24oInRlc3QiKQorCisKK2RlZiB0ZXN0
U2hvdWxkRXhwbGljaXRseVdhaXRGb3JBU2luZ2xlRWxlbWVudChkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJkeW5hbWljLmh0bWwiKQorICAgIGFkZCA9IGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoImFkZGVyIikKKyAgICBhZGQuY2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJp
dmVyLCAzKS51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAiYm94
MCIpKSkgICMgQWxsIGlzIHdlbGwgaWYgdGhpcyBkb2Vzbid0IHRocm93LgorCisKK2RlZiB0ZXN0
U2hvdWxkU3RpbGxGYWlsVG9GaW5kQW5FbGVtZW50V2l0aEV4cGxpY2l0V2FpdChkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJkeW5hbWljLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAu
NykudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgImJveDAiKSkp
CisKKworZGVmIHRlc3RTaG91bGRFeHBsaWNpdGx5V2FpdHVudGlsQXRMZWFzdE9uZUVsZW1lbnRJ
c0ZvdW5kV2hlblNlYXJjaGluZ0Zvck1hbnkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiZHluYW1pYy5odG1sIikKKyAgICBhZGQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJh
ZGRlciIpCisKKyAgICBhZGQuY2xpY2soKQorICAgIGFkZC5jbGljaygpCisKKyAgICBlbGVtZW50
cyA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCAyKS51bnRpbChFQy5wcmVzZW5jZV9vZl9hbGxfZWxl
bWVudHNfbG9jYXRlZCgoQnkuQ0xBU1NfTkFNRSwgInJlZGJveCIpKSkKKyAgICBhc3NlcnQgbGVu
KGVsZW1lbnRzKSA+PSAxCisKKworZGVmIHRlc3RTaG91bGRGYWlsVG9GaW5kRWxlbWVudHNXaGVu
RXhwbGljaXRXYWl0aW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImR5bmFtaWMu
aHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAg
ICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5wcmVzZW5jZV9vZl9hbGxfZWxl
bWVudHNfbG9jYXRlZCgoQnkuQ0xBU1NfTkFNRSwgInJlZGJveCIpKSkKKworCitkZWYgdGVzdFNo
b3VsZFdhaXRVbnRpbEF0TGVhc3RPbmVWaXNpYmxlRWxlbWVudHNJc0ZvdW5kV2hlblNlYXJjaGlu
Z0Zvck1hbnkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaGlkZGVuX3BhcnRpYWxs
eS5odG1sIikKKyAgICBhZGRfdmlzaWJsZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImFk
ZFZpc2libGUiKQorICAgIGFkZF9oaWRkZW4gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJh
ZGRIaWRkZW4iKQorCisgICAgYWRkX3Zpc2libGUuY2xpY2soKQorICAgIGFkZF92aXNpYmxlLmNs
aWNrKCkKKyAgICBhZGRfaGlkZGVuLmNsaWNrKCkKKworICAgIGNsYXNzIHdhaXRfZm9yX3R3b19l
bGVtZW50cyhvYmplY3QpOgorCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2NhdG9yKToK
KyAgICAgICAgICAgIHNlbGYubG9jYXRvciA9IGxvY2F0b3IKKworICAgICAgICBkZWYgX19jYWxs
X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgICAgIGVsZW1lbnRzID0gW2VsZW1lbnQgZm9yIGVs
ZW1lbnQgaW4gRUMuX2ZpbmRfZWxlbWVudHMoZHJpdmVyLCBzZWxmLmxvY2F0b3IpIGlmIEVDLl9l
bGVtZW50X2lmX3Zpc2libGUoZWxlbWVudCldCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMg
aWYgbGVuKGVsZW1lbnRzKSA9PSAyIGVsc2UgRmFsc2UKKworICAgIGVsZW1lbnRzID0gV2ViRHJp
dmVyV2FpdChkcml2ZXIsIDIpLnVudGlsKHdhaXRfZm9yX3R3b19lbGVtZW50cygoQnkuQ0xBU1Nf
TkFNRSwgInJlZGJveCIpKSkKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAyCisKKworZGVm
IHRlc3RTaG91bGRGYWlsVG9GaW5kVmlzaWJsZUVsZW1lbnRzV2hlbkV4cGxpY2l0V2FpdGluZyhk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJoaWRkZW5fcGFydGlhbGx5Lmh0bWwiKQor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJp
dmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMudmlzaWJpbGl0eV9vZl9hbnlfZWxlbWVudHNf
bG9jYXRlZCgoQnkuQ0xBU1NfTkFNRSwgInJlZGJveCIpKSkKKworCitAcHl0ZXN0Lm1hcmsueGZh
aWxfbWFyaW9uZXR0ZShyZWFzb249J0ZhaWxzIG9uIHRyYXZpcycpCitkZWYgdGVzdFNob3VsZFdh
aXRVbnRpbEFsbFZpc2libGVFbGVtZW50c0FyZUZvdW5kV2hlblNlYXJjaGluZ0Zvck1hbnkoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaGlkZGVuX3BhcnRpYWxseS5odG1sIikKKyAg
ICBhZGRfdmlzaWJsZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImFkZFZpc2libGUiKQor
CisgICAgYWRkX3Zpc2libGUuY2xpY2soKQorICAgIGFkZF92aXNpYmxlLmNsaWNrKCkKKworICAg
IGVsZW1lbnRzID0gV2ViRHJpdmVyV2FpdChkcml2ZXIsIDIpLnVudGlsKEVDLnZpc2liaWxpdHlf
b2ZfYWxsX2VsZW1lbnRzX2xvY2F0ZWQoKEJ5LkNMQVNTX05BTUUsICJyZWRib3giKSkpCisgICAg
YXNzZXJ0IGxlbihlbGVtZW50cykgPT0gMgorCisKK2RlZiB0ZXN0U2hvdWxkRmFpbElmTm90QWxs
RWxlbWVudHNBcmVWaXNpYmxlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImhpZGRl
bl9wYXJ0aWFsbHkuaHRtbCIpCisgICAgYWRkX3Zpc2libGUgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJhZGRWaXNpYmxlIikKKyAgICBhZGRfaGlkZGVuID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9pZCgiYWRkSGlkZGVuIikKKworICAgIGFkZF92aXNpYmxlLmNsaWNrKCkKKyAgICBhZGRf
aGlkZGVuLmNsaWNrKCkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6
CisgICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLnZpc2liaWxpdHlf
b2ZfYWxsX2VsZW1lbnRzX2xvY2F0ZWQoKEJ5LkNMQVNTX05BTUUsICJyZWRib3giKSkpCisKKwor
ZGVmIHRlc3RTaG91bGRXYWl0T25seUFzTG9uZ0FzVGltZW91dFNwZWNpZmllZFdoZW5JbXBsaWNp
dFdhaXRzQXJlU2V0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImR5bmFtaWMuaHRt
bCIpCisgICAgZHJpdmVyLmltcGxpY2l0bHlfd2FpdCgwLjUpCisgICAgc3RhcnQgPSB0aW1lLnRp
bWUoKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAg
V2ViRHJpdmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVDLnByZXNlbmNlX29mX2VsZW1lbnRfbG9j
YXRlZCgoQnkuSUQsICJib3gwIikpKQorICAgICAgICBhc3NlcnQgdGltZS50aW1lKCkgLSBzdGFy
dCA8IDEuNQorCisKK2RlZiB0ZXN0U2hvdWxkV2FpdEF0TGVhc3RPbmNlKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZWxlbWVudHMgPSBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMCkudW50aWwobGFtYmRhIGQ6IGQuZmluZF9lbGVtZW50c19ieV90
YWdfbmFtZSgnaDEnKSkKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA+PSAxCisKKworZGVmIHRl
c3RXYWl0VW50aWxOb3RSZXR1cm5zSWZFdmFsdWF0ZXNUb0ZhbHNlKGRyaXZlciwgcGFnZXMpOgor
ICAgIGFzc2VydCBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMSkudW50aWxfbm90KGxhbWJkYSBkOiBG
YWxzZSkgaXMgRmFsc2UKKworCitkZWYgdGVzdFdhaXRTaG91bGRTdGlsbEZhaWxJZlByb2R1Y2VJ
Z25vcmVkRXhjZXB0aW9uKGRyaXZlciwgcGFnZXMpOgorICAgIGlnbm9yZWQgPSAoSW52YWxpZEVs
ZW1lbnRTdGF0ZUV4Y2VwdGlvbiwgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKQorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVy
V2FpdChkcml2ZXIsIDEsIDAuNywgaWdub3JlZF9leGNlcHRpb25zPWlnbm9yZWQpLnVudGlsKHRo
cm93U0VSRSkKKworCitkZWYgdGVzdFdhaXRTaG91bGRTdGlsbEZhaWxJZlByb2R1Y2VDaGlsZE9m
SWdub3JlZEV4Y2VwdGlvbihkcml2ZXIsIHBhZ2VzKToKKyAgICBpZ25vcmVkID0gKFdlYkRyaXZl
ckV4Y2VwdGlvbikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6Cisg
ICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAxLCAwLjcsIGlnbm9yZWRfZXhjZXB0aW9ucz1p
Z25vcmVkKS51bnRpbCh0aHJvd1NFUkUpCisKKworZGVmIHRlc3RXYWl0VW50aWxOb3RTaG91bGRO
b3RGYWlsSWZQcm9kdWNlSWdub3JlZEV4Y2VwdGlvbihkcml2ZXIsIHBhZ2VzKToKKyAgICBpZ25v
cmVkID0gKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24sIFN0YWxlRWxlbWVudFJlZmVyZW5j
ZUV4Y2VwdGlvbikKKyAgICBhc3NlcnQgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDEsIDAuNywgaWdu
b3JlZF9leGNlcHRpb25zPWlnbm9yZWQpLnVudGlsX25vdCh0aHJvd1NFUkUpCisKKworZGVmIHRl
c3RFeHBlY3RlZENvbmRpdGlvblRpdGxlSXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiYmxhbmsuaHRtbCIpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVDLnRp
dGxlX2lzKCJibGFuayIpKQorICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgic2V0VGltZW91dChm
dW5jdGlvbigpe2RvY3VtZW50LnRpdGxlPSdub3QgYmxhbmsnfSwgMjAwKSIpCisgICAgV2ViRHJp
dmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVDLnRpdGxlX2lzKCJub3QgYmxhbmsiKSkKKyAgICBh
c3NlcnQgZHJpdmVyLnRpdGxlID09ICdub3QgYmxhbmsnCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51
bnRpbChFQy50aXRsZV9pcygiYmxhbmsiKSkKKworCitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9u
VGl0bGVDb250YWlucyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJibGFuay5odG1s
IikKKyAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInNldFRpbWVvdXQoZnVuY3Rpb24oKXtkb2N1
bWVudC50aXRsZT0nbm90IGJsYW5rJ30sIDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVy
LCAxKS51bnRpbChFQy50aXRsZV9jb250YWlucygibm90IikpCisgICAgYXNzZXJ0IGRyaXZlci50
aXRsZSA9PSAnbm90IGJsYW5rJworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0
aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMudGl0bGVf
Y29udGFpbnMoImJsYW5rZXQiKSkKKworCitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9uVmlzaWJp
bGl0eU9mRWxlbWVudExvY2F0ZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2
YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRp
b24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy52aXNpYmls
aXR5X29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICdjbGlja1RvSGlkZScpKSkKKyAgICBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCdjbGlja1RvU2hvdycpLmNsaWNrKCkKKyAgICBlbGVtZW50
ID0gV2ViRHJpdmVyV2FpdChkcml2ZXIsIDUpLnVudGlsKEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVu
dF9sb2NhdGVkKChCeS5JRCwgJ2NsaWNrVG9IaWRlJykpKQorICAgIGFzc2VydCBlbGVtZW50Lmlz
X2Rpc3BsYXllZCgpIGlzIFRydWUKKworCitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9uVmlzaWJp
bGl0eU9mKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIGhpZGRlbiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoJ2NsaWNrVG9IaWRl
JykKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdl
YkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLnZpc2liaWxpdHlfb2YoaGlkZGVuKSkK
KyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCdjbGlja1RvU2hvdycpLmNsaWNrKCkKKyAg
ICBlbGVtZW50ID0gV2ViRHJpdmVyV2FpdChkcml2ZXIsIDUpLnVudGlsKEVDLnZpc2liaWxpdHlf
b2YoaGlkZGVuKSkKKyAgICBhc3NlcnQgZWxlbWVudC5pc19kaXNwbGF5ZWQoKSBpcyBUcnVlCisK
KworZGVmIHRlc3RFeHBlY3RlZENvbmRpdGlvblRleHRUb0JlUHJlc2VudEluRWxlbWVudChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCdib29sZWFuQXR0cmlidXRlcy5odG1sJykKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRyaXZl
cldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLnRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVtZW50
KChCeS5JRCwgJ3Vud3JhcHBhYmxlJyksICdFeHBlY3RlZCcpKQorICAgIGRyaXZlci5leGVjdXRl
X3NjcmlwdCgic2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd1bndyYXBwYWJsZScpOyBlbC50ZXh0Q29udGVudCA9IGVsLmlubmVyVGV4dCA9ICdV
bndyYXBwYWJsZSBFeHBlY3RlZCB0ZXh0J30sIDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJp
dmVyLCAxKS51bnRpbChFQy50ZXh0X3RvX2JlX3ByZXNlbnRfaW5fZWxlbWVudCgoQnkuSUQsICd1
bndyYXBwYWJsZScpLCAnRXhwZWN0ZWQnKSkKKyAgICBhc3NlcnQgJ1Vud3JhcHBhYmxlIEV4cGVj
dGVkIHRleHQnID09IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoJ3Vud3JhcHBhYmxlJykudGV4
dAorCisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25UZXh0VG9CZVByZXNlbnRJbkVsZW1lbnRW
YWx1ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCdib29sZWFuQXR0cmlidXRlcy5o
dG1sJykKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAg
IFdlYkRyaXZlcldhaXQoZHJpdmVyLCAxKS51bnRpbChFQy50ZXh0X3RvX2JlX3ByZXNlbnRfaW5f
ZWxlbWVudF92YWx1ZSgoQnkuSUQsICdpbnB1dFJlcXVpcmVkJyksICdFeHBlY3RlZCcpKQorICAg
IGRyaXZlci5leGVjdXRlX3NjcmlwdCgic2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbnB1dFJlcXVpcmVkJykudmFsdWUgPSAnRXhhbXBsZSBFeHBlY3RlZCB0
ZXh0J30sIDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAxKS51bnRpbChFQy50ZXh0
X3RvX2JlX3ByZXNlbnRfaW5fZWxlbWVudF92YWx1ZSgoQnkuSUQsICdpbnB1dFJlcXVpcmVkJyks
ICdFeHBlY3RlZCcpKQorICAgIGFzc2VydCAnRXhhbXBsZSBFeHBlY3RlZCB0ZXh0JyA9PSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCdpbnB1dFJlcXVpcmVkJykuZ2V0X2F0dHJpYnV0ZSgndmFs
dWUnKQorCisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25GcmFtZVRvQmVBdmFpbGFibGVBbmRT
d2l0Y2hUb0l0QnlOYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImJsYW5rLmh0
bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAg
V2ViRHJpdmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVDLmZyYW1lX3RvX2JlX2F2YWlsYWJsZV9h
bmRfc3dpdGNoX3RvX2l0KCdteUZyYW1lJykpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJh
bWUnKTsgZi5pZD0nbXlGcmFtZSc7IGYuc3JjID0gJyIgKyBwYWdlcy51cmwoJ2lmcmFtZVdpdGhB
bGVydC5odG1sJykgKyAiJzsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKX0sIDIwMCkiKQor
ICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAxKS51bnRpbChFQy5mcmFtZV90b19iZV9hdmFpbGFi
bGVfYW5kX3N3aXRjaF90b19pdCgnbXlGcmFtZScpKQorICAgIGFzc2VydCAnY2xpY2sgbWUnID09
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoJ2FsZXJ0SW5GcmFtZScpLnRleHQKKworCitkZWYg
dGVzdEV4cGVjdGVkQ29uZGl0aW9uRnJhbWVUb0JlQXZhaWxhYmxlQW5kU3dpdGNoVG9JdEJ5TG9j
YXRvcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJibGFuay5odG1sIikKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRyaXZlcldh
aXQoZHJpdmVyLCAxKS51bnRpbChFQy5mcmFtZV90b19iZV9hdmFpbGFibGVfYW5kX3N3aXRjaF90
b19pdCgoQnkuSUQsICdteUZyYW1lJykpKQorICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgic2V0
VGltZW91dChmdW5jdGlvbigpe3ZhciBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1l
Jyk7IGYuaWQ9J215RnJhbWUnOyBmLnNyYyA9ICciICsgcGFnZXMudXJsKCdpZnJhbWVXaXRoQWxl
cnQuaHRtbCcpICsgIic7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZil9LCAyMDApIikKKyAg
ICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMSkudW50aWwoRUMuZnJhbWVfdG9fYmVfYXZhaWxhYmxl
X2FuZF9zd2l0Y2hfdG9faXQoKEJ5LklELCAnbXlGcmFtZScpKSkKKyAgICBhc3NlcnQgJ2NsaWNr
IG1lJyA9PSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCdhbGVydEluRnJhbWUnKS50ZXh0CisK
KworZGVmIHRlc3RFeHBlY3RlZENvbmRpdGlvbkludmlzaWJsaXR5T2ZFbGVtZW50TG9jYXRlZChk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAg
ICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoImRlbGF5ZWRTaG93SGlkZSgwLCB0cnVlKSIpCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5pbnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVk
KChCeS5JRCwgJ2NsaWNrVG9IaWRlJykpKQorICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgiZGVs
YXllZFNob3dIaWRlKDIwMCwgZmFsc2UpIikKKyAgICBlbGVtZW50ID0gV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDAuNykudW50aWwoRUMuaW52aXNpYmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZCgoQnku
SUQsICdjbGlja1RvSGlkZScpKSkKKyAgICBhc3NlcnQgZWxlbWVudC5pc19kaXNwbGF5ZWQoKSBp
cyBGYWxzZQorCisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25FbGVtZW50VG9CZUNsaWNrYWJs
ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRy
aXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLmVsZW1lbnRfdG9fYmVfY2xpY2thYmxlKChC
eS5JRCwgJ2NsaWNrVG9IaWRlJykpKQorICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgiZGVsYXll
ZFNob3dIaWRlKDIwMCwgdHJ1ZSkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVu
dGlsKEVDLmVsZW1lbnRfdG9fYmVfY2xpY2thYmxlKChCeS5JRCwgJ2NsaWNrVG9IaWRlJykpKQor
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCdjbGlja1RvSGlkZScpCisg
ICAgZWxlbWVudC5jbGljaygpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMuNSkudW50aWwo
RUMuaW52aXNpYmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICdjbGlja1RvSGlkZScp
KSkKKyAgICBhc3NlcnQgZWxlbWVudC5pc19kaXNwbGF5ZWQoKSBpcyBGYWxzZQorCisKK2RlZiB0
ZXN0RXhwZWN0ZWRDb25kaXRpb25TdGFsZW5lc3NPZihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCdkeW5hbWljYWxseU1vZGlmaWVkUGFnZS5odG1sJykKKyAgICBlbGVtZW50ID0gZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9pZCgnZWxlbWVudC10by1yZW1vdmUnKQorICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2
ZXIsIDAuNykudW50aWwoRUMuc3RhbGVuZXNzX29mKGVsZW1lbnQpKQorICAgIGRyaXZlci5maW5k
X2VsZW1lbnRfYnlfaWQoJ2J1dHRvbkRlbGV0ZScpLmNsaWNrKCkKKyAgICBhc3NlcnQgJ2VsZW1l
bnQnID09IGVsZW1lbnQudGV4dAorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGls
KEVDLnN0YWxlbmVzc19vZihlbGVtZW50KSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3RhbGVF
bGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC50ZXh0CisKKworZGVm
IHRlc3RFeHBlY3RlZENvbmRpdGlvbkVsZW1lbnRUb0JlU2VsZWN0ZWQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoJ2NoZWNreScpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVv
dXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChF
Qy5lbGVtZW50X3RvX2JlX3NlbGVjdGVkKGVsZW1lbnQpKQorICAgIGRyaXZlci5leGVjdXRlX3Nj
cmlwdCgic2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGVj
a3knKS5jaGVja2VkID0gdHJ1ZX0sIDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAw
LjcpLnVudGlsKEVDLmVsZW1lbnRfdG9fYmVfc2VsZWN0ZWQoZWxlbWVudCkpCisgICAgYXNzZXJ0
IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisKKworZGVmIHRlc3RFeHBlY3RlZENvbmRp
dGlvbkVsZW1lbnRMb2NhdGVkVG9CZVNlbGVjdGVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCdjaGVja3knKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9u
KToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMuZWxlbWVudF9s
b2NhdGVkX3RvX2JlX3NlbGVjdGVkKChCeS5JRCwgJ2NoZWNreScpKSkKKyAgICBkcml2ZXIuZXhl
Y3V0ZV9zY3JpcHQoInNldFRpbWVvdXQoZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY2hlY2t5JykuY2hlY2tlZCA9IHRydWV9LCAyMDApIikKKyAgICBXZWJEcml2ZXJXYWl0KGRy
aXZlciwgMC43KS51bnRpbChFQy5lbGVtZW50X2xvY2F0ZWRfdG9fYmVfc2VsZWN0ZWQoKEJ5LklE
LCAnY2hlY2t5JykpKQorICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQor
CisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25FbGVtZW50U2VsZWN0aW9uU3RhdGVUb0JlKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1l
bnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCdjaGVja3knKQorICAgIFdlYkRyaXZlcldh
aXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLmVsZW1lbnRfc2VsZWN0aW9uX3N0YXRlX3RvX2JlKGVs
ZW1lbnQsIEZhbHNlKSkKKyAgICBhc3NlcnQgZWxlbWVudC5pc19zZWxlY3RlZCgpIGlzIEZhbHNl
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5lbGVtZW50X3NlbGVjdGlvbl9zdGF0ZV90
b19iZShlbGVtZW50LCBUcnVlKSkKKyAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInNldFRpbWVv
dXQoZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hlY2t5JykuY2hlY2tlZCA9
IHRydWV9LCAyMDApIikKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5l
bGVtZW50X3NlbGVjdGlvbl9zdGF0ZV90b19iZShlbGVtZW50LCBUcnVlKSkKKyAgICBhc3NlcnQg
ZWxlbWVudC5pc19zZWxlY3RlZCgpIGlzIFRydWUKKworCitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0
aW9uRWxlbWVudExvY2F0ZWRTZWxlY3Rpb25TdGF0ZVRvQmUoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoJ2NoZWNreScpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50
aWwoRUMuZWxlbWVudF9sb2NhdGVkX3NlbGVjdGlvbl9zdGF0ZV90b19iZSgoQnkuSUQsICdjaGVj
a3knKSwgRmFsc2UpKQorICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRy
aXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLmVsZW1lbnRfbG9jYXRlZF9zZWxlY3Rpb25f
c3RhdGVfdG9fYmUoKEJ5LklELCAnY2hlY2t5JyksIFRydWUpKQorICAgIGRyaXZlci5leGVjdXRl
X3NjcmlwdCgic2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
aGVja3knKS5jaGVja2VkID0gdHJ1ZX0sIDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVy
LCAwLjcpLnVudGlsKEVDLmVsZW1lbnRfbG9jYXRlZF9zZWxlY3Rpb25fc3RhdGVfdG9fYmUoKEJ5
LklELCAnY2hlY2t5JyksIFRydWUpKQorICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkg
aXMgVHJ1ZQorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdo
dHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlz
ZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RFeHBlY3RlZENvbmRpdGlvbkFsZXJ0SXNQ
cmVzZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ2JsYW5rLmh0bWwnKQorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVy
V2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMuYWxlcnRfaXNfcHJlc2VudCgpKQorICAgIGRyaXZl
ci5leGVjdXRlX3NjcmlwdCgic2V0VGltZW91dChmdW5jdGlvbigpe2FsZXJ0KCdhbGVydHknKX0s
IDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLmFsZXJ0X2lz
X3ByZXNlbnQoKSkKKyAgICBhbGVydCA9IGRyaXZlci5zd2l0Y2hfdG8uYWxlcnQKKyAgICBhc3Nl
cnQgJ2FsZXJ0eScgPT0gYWxlcnQudGV4dAorICAgIGFsZXJ0LmRpc21pc3MoKQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL3dlYnNlcnZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93ZWJzZXJ2ZXIucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRmOTE2Mzk5ZWY4Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3dlYnNlcnZlci5weQpAQCAtMCwwICsxLDE1OSBAQAorIyBMaWNl
bnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUK
KyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElD
RSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9y
bWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNl
cyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAy
LjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBp
biBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkg
b2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv
TElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFn
cmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGlj
ZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJB
TlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1w
bGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVy
bmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisK
KyIiIkEgc2ltcGxlIHdlYiBzZXJ2ZXIgZm9yIHRlc3RpbmcgcHVycG9zZS4KK0l0IHNlcnZlcyB0
aGUgdGVzdGluZyBodG1sIHBhZ2VzIHRoYXQgYXJlIG5lZWRlZCBieSB0aGUgd2ViZHJpdmVyIHVu
aXQgdGVzdHMuIiIiCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBzb2NrZXQK
K2ltcG9ydCB0aHJlYWRpbmcKK2Zyb20gaW8gaW1wb3J0IG9wZW4KK3RyeToKKyAgICBmcm9tIHVy
bGxpYiBpbXBvcnQgcmVxdWVzdCBhcyB1cmxsaWJfcmVxdWVzdAorZXhjZXB0IEltcG9ydEVycm9y
OgorICAgIGltcG9ydCB1cmxsaWIgYXMgdXJsbGliX3JlcXVlc3QKK3RyeToKKyAgICBmcm9tIGh0
dHAuc2VydmVyIGltcG9ydCBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLCBIVFRQU2VydmVyCisgICAg
ZnJvbSBzb2NrZXRzZXJ2ZXIgaW1wb3J0IFRocmVhZGluZ01peEluCitleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgZnJvbSBCYXNlSFRUUFNlcnZlciBpbXBvcnQgQmFzZUhUVFBSZXF1ZXN0SGFuZGxl
ciwgSFRUUFNlcnZlcgorICAgIGZyb20gU29ja2V0U2VydmVyIGltcG9ydCBUaHJlYWRpbmdNaXhJ
bgorCisKK2RlZiB1cGRpcigpOgorICAgIGRpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUKKyAgICBy
ZXR1cm4gZGlybmFtZShkaXJuYW1lKF9fZmlsZV9fKSkKKworCitMT0dHRVIgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKK1dFQkRSSVZFUiA9IG9zLmVudmlyb24uZ2V0KCJXRUJEUklWRVIi
LCB1cGRpcigpKQorSFRNTF9ST09UID0gb3MucGF0aC5qb2luKFdFQkRSSVZFUiwgIi4uLy4uLy4u
Ly4uL2NvbW1vbi9zcmMvd2ViIikKK2lmIG5vdCBvcy5wYXRoLmlzZGlyKEhUTUxfUk9PVCk6Cisg
ICAgbWVzc2FnZSA9ICgiQ2FuJ3QgZmluZCAnY29tbW9uX3dlYicgZGlyZWN0b3J5LCB0cnkgc2V0
dGluZyBXRUJEUklWRVIiCisgICAgICAgICAgICAgICAiIGVudmlyb25tZW50IHZhcmlhYmxlIFdF
QkRSSVZFUjoiICsgV0VCRFJJVkVSICsgIiAgSFRNTF9ST09UOiIgKyBIVE1MX1JPT1QpCisgICAg
TE9HR0VSLmVycm9yKG1lc3NhZ2UpCisgICAgYXNzZXJ0IDAsIG1lc3NhZ2UKKworREVGQVVMVF9I
T1NUID0gIjEyNy4wLjAuMSIKK0RFRkFVTFRfUE9SVCA9IDgwMDAKKworCitjbGFzcyBIdG1sT25s
eUhhbmRsZXIoQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CisgICAgIiIiSHR0cCBoYW5kbGVyLiIi
IgorICAgIGRlZiBkb19HRVQoc2VsZik6CisgICAgICAgICIiIkdFVCBtZXRob2QgaGFuZGxlci4i
IiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGF0aCA9IHNlbGYucGF0aFsxOl0uc3BsaXQo
Jz8nKVswXQorICAgICAgICAgICAgaWYgcGF0aFs6NV0gPT0gInBhZ2UvIjoKKyAgICAgICAgICAg
ICAgICBodG1sID0gIiIiPGh0bWw+PGhlYWQ+PHRpdGxlPlBhZ2V7cGFnZV9udW1iZXJ9PC90aXRs
ZT48L2hlYWQ+CisgICAgICAgICAgICAgICAgPGJvZHk+UGFnZSBudW1iZXIgPHNwYW4gaWQ9XCJw
YWdlTnVtYmVyXCI+e3BhZ2VfbnVtYmVyfTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8cD48YSBo
cmVmPVwiLi4veGh0bWxUZXN0Lmh0bWxcIiB0YXJnZXQ9XCJfdG9wXCI+dG9wPC9hPgorICAgICAg
ICAgICAgICAgIDwvYm9keT48L2h0bWw+IiIiLmZvcm1hdChwYWdlX251bWJlcj1wYXRoWzU6XSkK
KyAgICAgICAgICAgICAgICBodG1sID0gaHRtbC5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihIVE1MX1JPT1Qs
IHBhdGgpLCAncicsIGVuY29kaW5nPSdsYXRpbi0xJykgYXMgZjoKKyAgICAgICAgICAgICAgICAg
ICAgaHRtbCA9IGYucmVhZCgpLmVuY29kZSgndXRmLTgnKQorICAgICAgICAgICAgc2VsZi5zZW5k
X3Jlc3BvbnNlKDIwMCkKKyAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoJ0NvbnRlbnQtdHlw
ZScsICd0ZXh0L2h0bWwnKQorICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCisgICAgICAg
ICAgICBzZWxmLndmaWxlLndyaXRlKGh0bWwpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAg
ICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKDQwNCwgJ0ZpbGUgTm90IEZvdW5kOiAlcycgJSBwYXRo
KQorCisgICAgZGVmIGxvZ19tZXNzYWdlKHNlbGYsIGZvcm1hdCwgKmFyZ3MpOgorICAgICAgICAi
IiJPdmVycmlkZSBkZWZhdWx0IHRvIGF2b2lkIHRyYXNoaW5nIHN0ZGVyciIiIgorICAgICAgICBw
YXNzCisKKworY2xhc3MgVGhyZWFkZWRIVFRQU2VydmVyKFRocmVhZGluZ01peEluLCBIVFRQU2Vy
dmVyKToKKyAgICBwYXNzCisKKworY2xhc3MgU2ltcGxlV2ViU2VydmVyKG9iamVjdCk6CisgICAg
IiIiQSB2ZXJ5IGJhc2ljIHdlYiBzZXJ2ZXIuIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhv
c3Q9REVGQVVMVF9IT1NULCBwb3J0PURFRkFVTFRfUE9SVCk6CisgICAgICAgIHNlbGYuc3RvcF9z
ZXJ2aW5nID0gRmFsc2UKKyAgICAgICAgaG9zdCA9IGhvc3QKKyAgICAgICAgcG9ydCA9IHBvcnQK
KyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBz
ZWxmLnNlcnZlciA9IFRocmVhZGVkSFRUUFNlcnZlcigoaG9zdCwgcG9ydCksIEh0bWxPbmx5SGFu
ZGxlcikKKyAgICAgICAgICAgICAgICBzZWxmLmhvc3QgPSBob3N0CisgICAgICAgICAgICAgICAg
c2VsZi5wb3J0ID0gcG9ydAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBleGNl
cHQgc29ja2V0LmVycm9yOgorICAgICAgICAgICAgICAgIExPR0dFUi5kZWJ1ZygicG9ydCAlZCBp
cyBpbiB1c2UsIHRyeWluZyB0byBuZXh0IG9uZSIgJSBwb3J0KQorICAgICAgICAgICAgICAgIHBv
cnQgKz0gMQorCisgICAgICAgIHNlbGYudGhyZWFkID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9
c2VsZi5fcnVuX3dlYl9zZXJ2ZXIpCisKKyAgICBkZWYgX3J1bl93ZWJfc2VydmVyKHNlbGYpOgor
ICAgICAgICAiIiJSdW5zIHRoZSBzZXJ2ZXIgbG9vcC4iIiIKKyAgICAgICAgTE9HR0VSLmRlYnVn
KCJ3ZWIgc2VydmVyIHN0YXJ0ZWQiKQorICAgICAgICB3aGlsZSBub3Qgc2VsZi5zdG9wX3NlcnZp
bmc6CisgICAgICAgICAgICBzZWxmLnNlcnZlci5oYW5kbGVfcmVxdWVzdCgpCisgICAgICAgIHNl
bGYuc2VydmVyLnNlcnZlcl9jbG9zZSgpCisKKyAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAg
ICIiIlN0YXJ0cyB0aGUgc2VydmVyLiIiIgorICAgICAgICBzZWxmLnRocmVhZC5zdGFydCgpCisK
KyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAgICAgIiIiU3RvcHMgdGhlIHNlcnZlci4iIiIKKyAg
ICAgICAgc2VsZi5zdG9wX3NlcnZpbmcgPSBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICMgVGhpcyBpcyB0byBmb3JjZSBzdG9wIHRoZSBzZXJ2ZXIgbG9vcAorICAgICAgICAgICAgdXJs
bGliX3JlcXVlc3QuVVJMb3BlbmVyKCkub3BlbigiaHR0cDovLyVzOiVkIiAlIChzZWxmLmhvc3Qs
IHNlbGYucG9ydCkpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBMT0dHRVIuaW5mbygiU2h1dHRpbmcgZG93biB0aGUgd2Vic2VydmVyIikKKyAgICAg
ICAgc2VsZi50aHJlYWQuam9pbigpCisKKyAgICBkZWYgd2hlcmVfaXMoc2VsZiwgcGF0aCk6Cisg
ICAgICAgIHJldHVybiAiaHR0cDovLyVzOiVkLyVzIiAlIChzZWxmLmhvc3QsIHNlbGYucG9ydCwg
cGF0aCkKKworCitkZWYgbWFpbihhcmd2PU5vbmUpOgorICAgIGZyb20gb3B0cGFyc2UgaW1wb3J0
IE9wdGlvblBhcnNlcgorICAgIGZyb20gdGltZSBpbXBvcnQgc2xlZXAKKworICAgIGlmIGFyZ3Yg
aXMgTm9uZToKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAgICBhcmd2ID0gc3lzLmFyZ3YKKwor
ICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcigiJXByb2cgW29wdGlvbnNdIikKKyAgICBwYXJzZXIu
YWRkX29wdGlvbigiLXAiLCAiLS1wb3J0IiwgZGVzdD0icG9ydCIsIHR5cGU9ImludCIsCisgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0icG9ydCB0byBsaXN0ZW4gKGRlZmF1bHQ6ICVzKSIgJSBE
RUZBVUxUX1BPUlQsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1ERUZBVUxUX1BPUlQp
CisKKyAgICBvcHRzLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJndlsxOl0pCisgICAgaWYg
YXJnczoKKyAgICAgICAgcGFyc2VyLmVycm9yKCJ3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIikg
ICMgV2lsbCBleGl0CisKKyAgICBzZXJ2ZXIgPSBTaW1wbGVXZWJTZXJ2ZXIob3B0cy5wb3J0KQor
ICAgIHNlcnZlci5zdGFydCgpCisgICAgcHJpbnQoIlNlcnZlciBzdGFydGVkIG9uIHBvcnQgJXMs
IGhpdCBDVFJMLUMgdG8gcXVpdCIgJSBvcHRzLnBvcnQpCisgICAgdHJ5OgorICAgICAgICB3aGls
ZSAxOgorICAgICAgICAgICAgc2xlZXAoMC4xKQorICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVw
dDoKKyAgICAgICAgcGFzcworCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFp
bigpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3N3aXRjaGluZ190ZXN0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi93aW5kb3dfc3dpdGNoaW5nX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xY2JlMzg1NWRjYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi93aW5kb3dfc3dpdGNoaW5nX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMTkxIEBACisjIExpY2Vuc2Vk
IHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBv
ciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZp
bGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRo
aXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElF
UyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1w
b3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBOb1N1
Y2hXaW5kb3dFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0
IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGlt
cG9ydCBCeQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRf
Y29uZGl0aW9ucyBhcyBFQworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBv
cnQgV2ViRHJpdmVyV2FpdAorCisKK0BweXRlc3QueWllbGRfZml4dHVyZShhdXRvdXNlPVRydWUp
CitkZWYgY2xvc2Vfd2luZG93cyhkcml2ZXIpOgorICAgIG1haW5fd2luZG93c19oYW5kbGUgPSBk
cml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgeWllbGQKKyAgICB0cnk6CisgICAgICAg
IGZyb20gdXJsbGliIGltcG9ydCByZXF1ZXN0IGFzIHVybF9yZXF1ZXN0CisgICAgZXhjZXB0IElt
cG9ydEVycm9yOgorICAgICAgICBpbXBvcnQgdXJsbGliMiBhcyB1cmxfcmVxdWVzdAorICAgIFVS
TEVycm9yID0gdXJsX3JlcXVlc3QuVVJMRXJyb3IKKworICAgIHRyeToKKyAgICAgICAgd2luZG93
X2hhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBleGNlcHQgVVJMRXJyb3I6Cisg
ICAgICAgIHJldHVybgorICAgIGZvciBoYW5kbGUgaW4gd2luZG93X2hhbmRsZXM6CisgICAgICAg
IGlmIGhhbmRsZSAhPSBtYWluX3dpbmRvd3NfaGFuZGxlOgorICAgICAgICAgICAgZHJpdmVyLnN3
aXRjaF90by53aW5kb3coaGFuZGxlKQorICAgICAgICAgICAgZHJpdmVyLmNsb3NlKCkKKyAgICBk
cml2ZXIuc3dpdGNoX3RvLndpbmRvdyhtYWluX3dpbmRvd3NfaGFuZGxlKQorCisKK2RlZiB0ZXN0
U2hvdWxkU3dpdGNoRm9jdXNUb0FOZXdXaW5kb3dXaGVuSXRJc09wZW5lZEFuZE5vdFN0b3BGdXR1
cmVPcGVyYXRpb25zKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5o
dG1sIikKKyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorCisgICAg
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoIk9wZW4gbmV3IHdpbmRvdyIpLmNsaWNr
KCkKKyAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCisgICAgaGFu
ZGxlcyA9IGRyaXZlci53aW5kb3dfaGFuZGxlcworICAgIGhhbmRsZXMucmVtb3ZlKGN1cnJlbnQp
CisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coaGFuZGxlc1swXSkKKyAgICBhc3NlcnQgZHJp
dmVyLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIKKworICAgIHBhZ2VzLmxvYWQoImlmcmFtZXMu
aHRtbCIpCisgICAgaGFuZGxlID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgIGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImlmcmFtZV9wYWdlX2hlYWRpbmciKQorICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZTEiKSkK
KyAgICBhc3NlcnQgZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZSA9PSBoYW5kbGUKKworCitk
ZWYgdGVzdENhblN3aXRjaFRvV2luZG93QnlOYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBoYW5kbGVzID0gZHJpdmVyLndpbmRvd19oYW5k
bGVzCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5MSU5LX1RFWFQsICJPcGVuIG5ldyB3aW5k
b3ciKS5jbGljaygpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLm5ld193
aW5kb3dfaXNfb3BlbmVkKGhhbmRsZXMpKQorICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KCJy
ZXN1bHQiKQorICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIEFycml2ZSBIZXJlIgorCisK
K2RlZiB0ZXN0U2hvdWxkVGhyb3dOb1N1Y2hXaW5kb3dFeGNlcHRpb24oZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhOb1N1Y2hXaW5kb3dFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLndpbmRv
dygiaW52YWxpZCBuYW1lIikKKworCitkZWYgdGVzdFNob3VsZFRocm93Tm9TdWNoV2luZG93RXhj
ZXB0aW9uT25BbkF0dGVtcHRUb0dldEl0c0hhbmRsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgY3VycmVudCA9IGRyaXZlci5jdXJyZW50X3dp
bmRvd19oYW5kbGUKKyAgICBoYW5kbGVzID0gZHJpdmVyLndpbmRvd19oYW5kbGVzCisgICAgZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5MSU5LX1RFWFQsICJPcGVuIG5ldyB3aW5kb3ciKS5jbGljaygp
CisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLm5ld193aW5kb3dfaXNfb3Bl
bmVkKGhhbmRsZXMpKQorICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBo
YW5kbGVzLnJlbW92ZShjdXJyZW50KQorICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KGhhbmRs
ZXNbMF0pCisgICAgZHJpdmVyLmNsb3NlKCkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hXaW5kb3dFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxl
CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2llCitkZWYgdGVzdFNob3VsZFRocm93Tm9TdWNoV2lu
ZG93RXhjZXB0aW9uT25BbnlPcGVyYXRpb25JZkFXaW5kb3dJc0Nsb3NlZChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgY3VycmVudCA9IGRyaXZl
ci5jdXJyZW50X3dpbmRvd19oYW5kbGUKKyAgICBoYW5kbGVzID0gZHJpdmVyLndpbmRvd19oYW5k
bGVzCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5MSU5LX1RFWFQsICJPcGVuIG5ldyB3aW5k
b3ciKS5jbGljaygpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLm5ld193
aW5kb3dfaXNfb3BlbmVkKGhhbmRsZXMpKQorICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hh
bmRsZXMKKyAgICBoYW5kbGVzLnJlbW92ZShjdXJyZW50KQorICAgIGRyaXZlci5zd2l0Y2hfdG8u
d2luZG93KGhhbmRsZXNbMF0pCisgICAgZHJpdmVyLmNsb3NlKCkKKworICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhOb1N1Y2hXaW5kb3dFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIudGl0bGUKKwor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hXaW5kb3dFeGNlcHRpb24pOgorICAgICAgICBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJib2R5IikKKworCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfaWUKK2RlZiB0ZXN0U2hvdWxkVGhyb3dOb1N1Y2hXaW5kb3dFeGNlcHRpb25PbkFueUVs
ZW1lbnRPcGVyYXRpb25JZkFXaW5kb3dJc0Nsb3NlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgY3VycmVudCA9IGRyaXZlci5jdXJyZW50X3dp
bmRvd19oYW5kbGUKKyAgICBoYW5kbGVzID0gZHJpdmVyLndpbmRvd19oYW5kbGVzCisgICAgZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5MSU5LX1RFWFQsICJPcGVuIG5ldyB3aW5kb3ciKS5jbGljaygp
CisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLm5ld193aW5kb3dfaXNfb3Bl
bmVkKGhhbmRsZXMpKQorICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBo
YW5kbGVzLnJlbW92ZShjdXJyZW50KQorICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KGhhbmRs
ZXNbMF0pCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImJv
ZHkiKQorICAgIGRyaXZlci5jbG9zZSgpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNo
V2luZG93RXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC50ZXh0CisKKworZGVmIHRlc3RDbGlj
a2luZ09uQUJ1dHRvblRoYXRDbG9zZXNBbk9wZW5XaW5kb3dEb2VzTm90Q2F1c2VUaGVCcm93c2Vy
VG9IYW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikK
KyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgIGhhbmRsZXMg
PSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUo
IndpbmRvd1RocmVlIikuY2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRp
bChFQy5uZXdfd2luZG93X2lzX29wZW5lZChoYW5kbGVzKSkKKyAgICBoYW5kbGVzID0gZHJpdmVy
LndpbmRvd19oYW5kbGVzCisgICAgaGFuZGxlcy5yZW1vdmUoY3VycmVudCkKKyAgICBkcml2ZXIu
c3dpdGNoX3RvLndpbmRvdyhoYW5kbGVzWzBdKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
aWQoImNsb3NlIikuY2xpY2soKQorICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KGN1cnJlbnQp
CisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibGlua0lkIikKKworCitkZWYgdGVzdENh
bkNhbGxHZXRXaW5kb3dIYW5kbGVzQWZ0ZXJDbG9zaW5nQVdpbmRvdyhkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgY3VycmVudCA9IGRyaXZlci5j
dXJyZW50X3dpbmRvd19oYW5kbGUKKyAgICBoYW5kbGVzID0gZHJpdmVyLndpbmRvd19oYW5kbGVz
CisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJ3aW5kb3dUaHJlZSIpLmNsaWNrKCkK
KyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMubmV3X3dpbmRvd19pc19vcGVu
ZWQoaGFuZGxlcykpCisgICAgaGFuZGxlcyA9IGRyaXZlci53aW5kb3dfaGFuZGxlcworICAgIGhh
bmRsZXMucmVtb3ZlKGN1cnJlbnQpCisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coaGFuZGxl
c1swXSkKKworICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNsb3NlIikuY2xpY2soKQor
ICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5udW1iZXJfb2Zfd2luZG93c190
b19iZSgxKSkKKworCitkZWYgdGVzdENhbk9idGFpbkFXaW5kb3dIYW5kbGUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGN1cnJlbnRIYW5kbGUg
PSBkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgYXNzZXJ0IGN1cnJlbnRIYW5kbGUg
aXMgbm90IE5vbmUKKworCitkZWYgdGVzdEZhaWxpbmdUb1N3aXRjaFRvQVdpbmRvd0xlYXZlc1Ro
ZUN1cnJlbnRXaW5kb3dBc0lzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1s
VGVzdC5odG1sIikKKyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hXaW5kb3dFeGNlcHRpb24pOgorICAgICAgICBk
cml2ZXIuc3dpdGNoX3RvLndpbmRvdygiSSB3aWxsIG5ldmVyIGV4aXN0IikKKyAgICBuZXdfaGFu
ZGxlID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgIGFzc2VydCBjdXJyZW50ID09
IG5ld19oYW5kbGUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJlYXNvbj0iRmFpbHMg
b24gVHJhdmlzIikKK2RlZiB0ZXN0VGhhdEFjY2Vzc2luZ0ZpbmRpbmdBbkVsZW1lbnRBZnRlcldp
bmRvd0lzQ2xvc2VkQW5kSGF2ZW50c3dpdGNoZWREb2VzbnRDcmFzaChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgY3VycmVudCA9IGRyaXZlci5j
dXJyZW50X3dpbmRvd19oYW5kbGUKKyAgICBoYW5kbGVzID0gZHJpdmVyLndpbmRvd19oYW5kbGVz
CisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJ3aW5kb3dUaHJlZSIpLmNsaWNrKCkK
KyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMubmV3X3dpbmRvd19pc19vcGVu
ZWQoaGFuZGxlcykpCisgICAgaGFuZGxlcyA9IGRyaXZlci53aW5kb3dfaGFuZGxlcworICAgIGhh
bmRsZXMucmVtb3ZlKGN1cnJlbnQpCisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coaGFuZGxl
c1swXSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhXZWJEcml2ZXJFeGNlcHRpb24pOgorICAg
ICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjbG9zZSIpLmNsaWNrKCkKKyAgICAgICAg
YWxsX2hhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICAgICAgYXNzZXJ0IDEgPT0g
bGVuKGFsbF9oYW5kbGVzKQorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjbG9z
ZSIpCisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coY3VycmVudCkKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi93aW5kb3dfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2luZG93X3Rlc3RzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iMjlhOGVlMjYwNgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi93aW5kb3dfdGVzdHMucHkKQEAgLTAsMCArMSwxODAgQEAKKyMg
TGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIg
b25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBO
T1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBp
bmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGlj
ZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNp
b24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNl
cHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBj
b3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vu
c2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBv
ciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBX
QVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9y
IGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBn
b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNl
LgoraW1wb3J0IG9zCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2Vw
dGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
c3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0CisKKworQHB5dGVzdC5tYXJrLnhmYWls
X2llCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikK
K0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikK
K0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJlYXNvbj0iRmFpbHMgb24gVHJhdmlzIikKK0Bw
eXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorZGVmIHRl
c3RTaG91bGRNYXhpbWl6ZVRoZVdpbmRvdyhkcml2ZXIpOgorICAgIHJlc2l6ZV90aW1lb3V0ID0g
NQorICAgIHdhaXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgcmVzaXplX3RpbWVvdXQpCisgICAg
b2xkX3NpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyAgICBkcml2ZXIuc2V0X3dpbmRv
d19zaXplKDIwMCwgMjAwKQorICAgIHdhaXQudW50aWwoCisgICAgICAgIGxhbWJkYSBkcjogZHIu
Z2V0X3dpbmRvd19zaXplKCkgIT0gb2xkX3NpemUgaWYgb2xkX3NpemVbIndpZHRoIl0gIT0gMjAw
IGFuZCBvbGRfc2l6ZVsiaGVpZ2h0Il0gIT0gMjAwIGVsc2UgVHJ1ZSkKKyAgICBzaXplID0gZHJp
dmVyLmdldF93aW5kb3dfc2l6ZSgpCisgICAgZHJpdmVyLm1heGltaXplX3dpbmRvdygpCisgICAg
d2FpdC51bnRpbChsYW1iZGEgZHI6IGRyLmdldF93aW5kb3dfc2l6ZSgpICE9IHNpemUpCisgICAg
bmV3X3NpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyAgICBhc3NlcnQgbmV3X3NpemVb
IndpZHRoIl0gPiBzaXplWyJ3aWR0aCJdCisgICAgYXNzZXJ0IG5ld19zaXplWyJoZWlnaHQiXSA+
IHNpemVbImhlaWdodCJdCisKKworZGVmIHRlc3Rfc2hvdWxkX2dldF90aGVfc2l6ZV9vZl90aGVf
Y3VycmVudF93aW5kb3coZHJpdmVyKToKKyAgICBzaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6
ZSgpCisgICAgYXNzZXJ0IHNpemUuZ2V0KCd3aWR0aCcpID4gMAorICAgIGFzc2VydCBzaXplLmdl
dCgnaGVpZ2h0JykgPiAwCisKKworZGVmIHRlc3Rfc2hvdWxkX3NldF90aGVfc2l6ZV9vZl90aGVf
Y3VycmVudF93aW5kb3coZHJpdmVyKToKKyAgICBzaXplID0gZHJpdmVyLmdldF93aW5kb3dfc2l6
ZSgpCisKKyAgICB0YXJnZXRfd2lkdGggPSBzaXplLmdldCgnd2lkdGgnKSAtIDIwCisgICAgdGFy
Z2V0X2hlaWdodCA9IHNpemUuZ2V0KCdoZWlnaHQnKSAtIDIwCisgICAgZHJpdmVyLnNldF93aW5k
b3dfc2l6ZSh3aWR0aD10YXJnZXRfd2lkdGgsIGhlaWdodD10YXJnZXRfaGVpZ2h0KQorCisgICAg
bmV3X3NpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyAgICBhc3NlcnQgbmV3X3NpemUu
Z2V0KCd3aWR0aCcpID09IHRhcmdldF93aWR0aAorICAgIGFzc2VydCBuZXdfc2l6ZS5nZXQoJ2hl
aWdodCcpID09IHRhcmdldF9oZWlnaHQKKworCitkZWYgdGVzdF9zaG91bGRfZ2V0X3RoZV9wb3Np
dGlvbl9vZl90aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToKKyAgICBwb3NpdGlvbiA9IGRyaXZl
ci5nZXRfd2luZG93X3Bvc2l0aW9uKCkKKyAgICBhc3NlcnQgcG9zaXRpb24uZ2V0KCd4JykgPj0g
MAorICAgIGFzc2VydCBwb3NpdGlvbi5nZXQoJ3knKSA+PSAwCisKKworZGVmIHRlc3Rfc2hvdWxk
X3NldF90aGVfcG9zaXRpb25fb2ZfdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CisgICAgcG9z
aXRpb24gPSBkcml2ZXIuZ2V0X3dpbmRvd19wb3NpdGlvbigpCisKKyAgICB0YXJnZXRfeCA9IHBv
c2l0aW9uLmdldCgneCcpICsgMTAKKyAgICB0YXJnZXRfeSA9IHBvc2l0aW9uLmdldCgneScpICsg
MTAKKyAgICBkcml2ZXIuc2V0X3dpbmRvd19wb3NpdGlvbih4PXRhcmdldF94LCB5PXRhcmdldF95
KQorCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDIpLnVudGlsKGxhbWJkYSBkOiBkLmdldF93
aW5kb3dfcG9zaXRpb24oKVsneCddICE9IHBvc2l0aW9uWyd4J10gYW5kCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGQuZ2V0X3dpbmRvd19wb3NpdGlvbigpWyd5J10gIT0gcG9z
aXRpb25bJ3knXSkKKworICAgIG5ld19wb3NpdGlvbiA9IGRyaXZlci5nZXRfd2luZG93X3Bvc2l0
aW9uKCkKKyAgICBhc3NlcnQgbmV3X3Bvc2l0aW9uLmdldCgneCcpID09IHRhcmdldF94CisgICAg
YXNzZXJ0IG5ld19wb3NpdGlvbi5nZXQoJ3knKSA9PSB0YXJnZXRfeQorCisKK0BweXRlc3QubWFy
ay54ZmFpbF9jaHJvbWUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSdHZXQgV2luZG93IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50
ZWQnKQorQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nR2V0IFdpbmRvdyBSZWN0IGNv
bW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFp
c2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVh
c29uPSdHZXQgV2luZG93IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQorQHB5dGVzdC5t
YXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWFzb249J0dldCBXaW5kb3cgUmVjdCBjb21tYW5kIG5vdCBpbXBsZW1l
bnRlZCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nR2V0IFdpbmRvdyBSZWN0IGNv
bW1hbmQgbm90IGltcGxlbWVudGVkJykKK2RlZiB0ZXN0X3Nob3VsZF9nZXRfdGhlX3JlY3Rfb2Zf
dGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CisgICAgcmVjdCA9IGRyaXZlci5nZXRfd2luZG93
X3JlY3QoKQorICAgIGFzc2VydCByZWN0LmdldCgneCcpID49IDAKKyAgICBhc3NlcnQgcmVjdC5n
ZXQoJ3knKSA+PSAwCisgICAgYXNzZXJ0IHJlY3QuZ2V0KCd3aWR0aCcpID49IDAKKyAgICBhc3Nl
cnQgcmVjdC5nZXQoJ2hlaWdodCcpID49IDAKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21l
KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0nR2V0IFdpbmRvdyBSZWN0IGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3Qu
bWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWFzb249J0dldCBXaW5kb3cgUmVjdCBjb21tYW5kIG5vdCBpbXBs
ZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nR2V0IFdpbmRv
dyBSZWN0IGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9yZW1v
dGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVhc29uPSdHZXQgV2luZG93IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQorQHB5dGVz
dC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWFzb249J0dldCBXaW5kb3cgUmVjdCBjb21tYW5kIG5vdCBpbXBs
ZW1lbnRlZCcpCitkZWYgdGVzdF9zaG91bGRfc2V0X3RoZV9yZWN0X29mX3RoZV9jdXJyZW50X3dp
bmRvdyhkcml2ZXIpOgorICAgIHJlY3QgPSBkcml2ZXIuZ2V0X3dpbmRvd19yZWN0KCkKKworICAg
IHRhcmdldF94ID0gcmVjdC5nZXQoJ3gnKSArIDEwCisgICAgdGFyZ2V0X3kgPSByZWN0LmdldCgn
eScpICsgMTAKKyAgICB0YXJnZXRfd2lkdGggPSByZWN0LmdldCgnd2lkdGgnKSArIDEwCisgICAg
dGFyZ2V0X2hlaWdodCA9IHJlY3QuZ2V0KCdoZWlnaHQnKSArIDEwCisKKyAgICBkcml2ZXIuc2V0
X3dpbmRvd19yZWN0KHg9dGFyZ2V0X3gsIHk9dGFyZ2V0X3ksIHdpZHRoPXRhcmdldF93aWR0aCwg
aGVpZ2h0PXRhcmdldF9oZWlnaHQpCisKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMikudW50
aWwobGFtYmRhIGQ6IGQuZ2V0X3dpbmRvd19wb3NpdGlvbigpWyd4J10gIT0gcmVjdFsneCddIGFu
ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLmdldF93aW5kb3dfcG9zaXRp
b24oKVsneSddICE9IHJlY3RbJ3knXSkKKworICAgIG5ld19yZWN0ID0gZHJpdmVyLmdldF93aW5k
b3dfcmVjdCgpCisKKyAgICBhc3NlcnQgbmV3X3JlY3QuZ2V0KCd4JykgPT0gdGFyZ2V0X3gKKyAg
ICBhc3NlcnQgbmV3X3JlY3QuZ2V0KCd5JykgPT0gdGFyZ2V0X3kKKyAgICBhc3NlcnQgbmV3X3Jl
Y3QuZ2V0KCd3aWR0aCcpID09IHRhcmdldF93aWR0aAorICAgIGFzc2VydCBuZXdfcmVjdC5nZXQo
J2hlaWdodCcpID09IHRhcmdldF9oZWlnaHQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21l
KHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0nRnVsbHNjcmVlbiBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykK
K0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1hbmQg
bm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9yZW1vdGUocmFpc2VzPVdlYkRy
aXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdGdWxsc2Ny
ZWVuIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9zYWZhcmko
cmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVh
c29uPSdGdWxsc2NyZWVuIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay5z
a2lwaWYob3MuZW52aXJvbi5nZXQoJ0NJJykgPT0gJ3RydWUnLAorICAgICAgICAgICAgICAgICAg
ICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBjYXVzZXMgVHJhdmlzIHRvIGhhbmcnKQorZGVm
IHRlc3Rfc2hvdWxkX2Z1bGxzY3JlZW5fdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CisgICAg
c3RhcnRfd2lkdGggPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3aW5kb3cuaW5uZXJX
aWR0aDsnKQorICAgIHN0YXJ0X2hlaWdodCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJu
IHdpbmRvdy5pbm5lckhlaWdodDsnKQorCisgICAgZHJpdmVyLmZ1bGxzY3JlZW5fd2luZG93KCkK
KworICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAyKS51bnRpbChsYW1iZGEgZDogZHJpdmVyLmV4
ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykgPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGFydF93aWR0aCkKKworICAgIGVuZF93aWR0aCA9IGRy
aXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpCisgICAgZW5k
X2hlaWdodCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lckhlaWdo
dDsnKQorCisgICAgZHJpdmVyLmZ1bGxzY3JlZW5fd2luZG93KCkgICMgUmVzdG9yZSB0byBvcmln
aW5hbCBzaXplCisKKyAgICBhc3NlcnQgZW5kX3dpZHRoID4gc3RhcnRfd2lkdGgKKyAgICBhc3Nl
cnQgZW5kX2hlaWdodCA+IHN0YXJ0X2hlaWdodAorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJv
bWUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVhc29uPSdNaW5pbWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSdNaW5pbWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitA
cHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFuZCBub3Qg
aW1wbGVtZW50ZWQnKQorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNv
bW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9zYWZhcmkocmFpc2Vz
PVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdN
aW5pbWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKG9z
LmVudmlyb24uZ2V0KCdDSScpID09ICd0cnVlJywKKyAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSdNaW5pbWl6ZSBjb21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCitAcHl0ZXN0Lm1hcmsu
bm9fZHJpdmVyX2FmdGVyX3Rlc3QKK2RlZiB0ZXN0X3Nob3VsZF9taW5pbWl6ZV90aGVfY3VycmVu
dF93aW5kb3coZHJpdmVyKToKKyAgICBkcml2ZXIubWluaW1pemVfd2luZG93KCkKKyAgICBtaW5p
bWl6ZWQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5oaWRkZW47JykK
KyAgICBkcml2ZXIucXVpdCgpICAjIEtpbGwgZHJpdmVyIHNvIHdlIGFyZW4ndCBydW5uaW5nIG1p
bmltaXplZCBhZnRlcgorCisgICAgYXNzZXJ0IG1pbmltaXplZCBpcyBUcnVlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9maXJlZm94L19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9fX2luaXRfXy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9maXJlZm94L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGljZW5z
ZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisj
IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0Ug
ZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1h
dGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMg
dGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w
ICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4g
Y29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9m
IHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ
Q0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3Jl
ZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vu
c2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5U
SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxp
ZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5p
bmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvZmlyZWZveC9jb25mdGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvY29uZnRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJhODQyMTQ3ZWQ2Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDMzIEBACisj
IExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVy
IG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUg
Tk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwg
aW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxp
Y2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz
aW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhj
ZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEg
Y29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNl
bnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcg
b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQg
V0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBv
ciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2Ug
Z292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5z
ZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRmly
ZWZveAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNhcGFiaWxpdGllcygpOgorICAgIGNhcGFi
aWxpdGllcyA9IHsnbWFyaW9uZXR0ZSc6IEZhbHNlfQorICAgIHJldHVybiBjYXBhYmlsaXRpZXMK
KworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBkcml2ZXIoY2FwYWJpbGl0aWVzKToKKyAgICBkcml2
ZXIgPSBGaXJlZm94KGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgeWllbGQgZHJpdmVy
CisgICAgZHJpdmVyLnF1aXQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9mZl9sYXVuY2hlcl90
ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2ZpcmVmb3gvZmZfbGF1bmNoZXJfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhZjY0NzRmNjJkCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvZmlyZWZveC9mZl9sYXVuY2hlcl90ZXN0cy5weQpAQCAtMCwwICsxLDQyIEBACisjIExpY2Vu
c2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQor
IyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNF
IGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2Vz
IHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIu
MCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGlu
IGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBv
ZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9M
SUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdy
ZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNl
bnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFO
VElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBs
aWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJu
aW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKwor
ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IEZpcmVmb3gKKworCitkZWYgdGVzdF9kb3Vi
bGVfY2xvc2UoZHJpdmVyKToKKyAgICBkcml2ZXIuY2xvc2UoKQorICAgIGRyaXZlci5jbG9zZSgp
CisKKworZGVmIHRlc3Rfd2VfY2FuX2xhdW5jaF9tdWx0aXBsZV9maXJlZm94X2luc3RhbmNlcyhj
YXBhYmlsaXRpZXMpOgorICAgIGRyaXZlcjEgPSBGaXJlZm94KGNhcGFiaWxpdGllcz1jYXBhYmls
aXRpZXMpCisgICAgZHJpdmVyMiA9IEZpcmVmb3goY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcykK
KyAgICBkcml2ZXIzID0gRmlyZWZveChjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgIGRy
aXZlcjEucXVpdCgpCisgICAgZHJpdmVyMi5xdWl0KCkKKyAgICBkcml2ZXIzLnF1aXQoKQorCisK
K2RlZiB0ZXN0X2xhdW5jaF9maXJlZm94X3dpdGhfbm9uZV9sb2dfcGF0aChjYXBhYmlsaXRpZXMp
OgorICAgIGRyaXZlciA9IEZpcmVmb3goY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcywgbG9nX3Bh
dGg9Tm9uZSkKKyAgICBkcml2ZXIucXVpdCgpCisKKworZGVmIHRlc3RfbGF1bmNoX2ZpcmVmb3hf
d2l0aF9lbXB0eV9zdHJpbmdfbG9nX3BhdGgoY2FwYWJpbGl0aWVzKToKKyAgICBkcml2ZXIgPSBG
aXJlZm94KGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsIGxvZ19wYXRoPSIiKQorICAgIGRyaXZl
ci5xdWl0KCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2ZpcmVmb3gvZmZfcHJvZmlsZV90ZXN0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2ZpcmVmb3gvZmZfcHJvZmlsZV90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZGVhMWNkMzA0OTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94L2Zm
X3Byb2ZpbGVfdGVzdHMucHkKQEAgLTAsMCArMSwxNzMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNv
ZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29u
dHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0
cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdh
cmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisj
IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxp
Y2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQor
IyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl
IGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisj
CisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp
dGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp
YnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJ
VElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhl
IExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgYmFzZTY0
CitpbXBvcnQgb3MKK2ltcG9ydCB6aXBmaWxlCisKK3RyeToKKyAgICBmcm9tIGlvIGltcG9ydCBC
eXRlc0lPCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0
cmluZ0lPIGFzIEJ5dGVzSU8KKwordHJ5OgorICAgIHVuaWNvZGUKK2V4Y2VwdCBOYW1lRXJyb3I6
CisgICAgdW5pY29kZSA9IHN0cgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyIGltcG9ydCBGaXJlZm94LCBGaXJlZm94UHJvZmlsZQorZnJvbSBzZWxlbml1bS53ZWJk
cml2ZXIuY29tbW9uLnByb3h5IGltcG9ydCBQcm94eSwgUHJveHlUeXBlCisKKworZGVmIHRlc3Rf
dGhhdF93ZV9jYW5fYWNjZXB0X2FfcHJvZmlsZShjYXBhYmlsaXRpZXMsIHdlYnNlcnZlcik6Cisg
ICAgcHJvZmlsZTEgPSBGaXJlZm94UHJvZmlsZSgpCisgICAgcHJvZmlsZTEuc2V0X3ByZWZlcmVu
Y2UoImJyb3dzZXIuc3RhcnR1cC5ob21lcGFnZV9vdmVycmlkZS5tc3RvbmUiLCAiIikKKyAgICBw
cm9maWxlMS5zZXRfcHJlZmVyZW5jZSgic3RhcnR1cC5ob21lcGFnZV93ZWxjb21lX3VybCIsIHdl
YnNlcnZlci53aGVyZV9pcygnc2ltcGxlVGVzdC5odG1sJykpCisgICAgcHJvZmlsZTEudXBkYXRl
X3ByZWZlcmVuY2VzKCkKKworICAgIHByb2ZpbGUyID0gRmlyZWZveFByb2ZpbGUocHJvZmlsZTEu
cGF0aCkKKyAgICBkcml2ZXIgPSBGaXJlZm94KAorICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwYWJp
bGl0aWVzLAorICAgICAgICBmaXJlZm94X3Byb2ZpbGU9cHJvZmlsZTIpCisgICAgdGl0bGUgPSBk
cml2ZXIudGl0bGUKKyAgICBkcml2ZXIucXVpdCgpCisgICAgYXNzZXJ0ICJIZWxsbyBXZWJEcml2
ZXIiID09IHRpdGxlCisKKworZGVmIHRlc3RfdGhhdF9wcmVmc19hcmVfd3JpdHRlbl9pbl90aGVf
Y29ycmVjdF9mb3JtYXQoKToKKyAgICBwcm9maWxlID0gRmlyZWZveFByb2ZpbGUoKQorICAgIHBy
b2ZpbGUuc2V0X3ByZWZlcmVuY2UoInNhbXBsZS5wcmVmZXJlbmNlIiwgImhpIHRoZXJlIikKKyAg
ICBwcm9maWxlLnVwZGF0ZV9wcmVmZXJlbmNlcygpCisKKyAgICBhc3NlcnQgJ2hpIHRoZXJlJyA9
PSBwcm9maWxlLmRlZmF1bHRfcHJlZmVyZW5jZXNbInNhbXBsZS5wcmVmZXJlbmNlIl0KKworICAg
IGVuY29kZWQgPSBwcm9maWxlLmVuY29kZWQKKyAgICBkZWNvZGVkID0gYmFzZTY0LmI2NGRlY29k
ZShlbmNvZGVkKQorICAgIHdpdGggQnl0ZXNJTyhkZWNvZGVkKSBhcyBmcDoKKyAgICAgICAgemlw
ID0gemlwZmlsZS5aaXBGaWxlKGZwLCAiciIpCisgICAgICAgIGZvciBlbnRyeSBpbiB6aXAubmFt
ZWxpc3QoKToKKyAgICAgICAgICAgIGlmIGVudHJ5LmVuZHN3aXRoKCJ1c2VyLmpzIik6CisgICAg
ICAgICAgICAgICAgdXNlcl9qcyA9IHppcC5yZWFkKGVudHJ5KQorICAgICAgICAgICAgICAgIGZv
ciBsaW5lIGluIHVzZXJfanMuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgICAgICAgICBpZiBs
aW5lLnN0YXJ0c3dpdGgoYid1c2VyX3ByZWYoInNhbXBsZS5wcmVmZXJlbmNlIiwnKToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBsaW5lLmVuZHN3aXRoKGInaGkgdGhlcmUiKTsnKQor
ICAgICAgICAgICAgIyB0aGVyZSBzaG91bGQgYmUgb25seSBvbmUgdXNlci5qcworICAgICAgICAg
ICAgYnJlYWsKKworCitkZWYgdGVzdF90aGF0X3VuaWNvZGVfcHJlZnNfYXJlX3dyaXR0ZW5faW5f
dGhlX2NvcnJlY3RfZm9ybWF0KCk6CisgICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKCkKKyAg
ICBwcm9maWxlLnNldF9wcmVmZXJlbmNlKCdzYW1wbGUucHJlZmVyZW5jZS4yJywgdW5pY29kZSgn
aGkgdGhlcmUnKSkKKyAgICBwcm9maWxlLnVwZGF0ZV9wcmVmZXJlbmNlcygpCisKKyAgICBhc3Nl
cnQgJ2hpIHRoZXJlJyA9PSBwcm9maWxlLmRlZmF1bHRfcHJlZmVyZW5jZXNbInNhbXBsZS5wcmVm
ZXJlbmNlLjIiXQorCisgICAgZW5jb2RlZCA9IHByb2ZpbGUuZW5jb2RlZAorICAgIGRlY29kZWQg
PSBiYXNlNjQuYjY0ZGVjb2RlKGVuY29kZWQpCisgICAgd2l0aCBCeXRlc0lPKGRlY29kZWQpIGFz
IGZwOgorICAgICAgICB6aXAgPSB6aXBmaWxlLlppcEZpbGUoZnAsICJyIikKKyAgICAgICAgZm9y
IGVudHJ5IGluIHppcC5uYW1lbGlzdCgpOgorICAgICAgICAgICAgaWYgZW50cnkuZW5kc3dpdGgo
J3VzZXIuanMnKToKKyAgICAgICAgICAgICAgICB1c2VyX2pzID0gemlwLnJlYWQoZW50cnkpCisg
ICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gdXNlcl9qcy5zcGxpdGxpbmVzKCk6CisgICAgICAg
ICAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aChiJ3VzZXJfcHJlZigic2FtcGxlLnByZWZl
cmVuY2UuMiIsJyk6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGluZS5lbmRzd2l0
aChiJ2hpIHRoZXJlIik7JykKKyAgICAgICAgICAgICMgdGhlcmUgc2hvdWxkIGJlIG9ubHkgb25l
IHVzZXIuanMKKyAgICAgICAgICAgIGJyZWFrCisKKworZGVmIHRlc3RfdGhhdF9pbnRlZ2VyX3By
ZWZzX2FyZV93cml0dGVuX2luX3RoZV9jb3JyZWN0X2Zvcm1hdCgpOgorICAgIHByb2ZpbGUgPSBG
aXJlZm94UHJvZmlsZSgpCisgICAgcHJvZmlsZS5zZXRfcHJlZmVyZW5jZSgic2FtcGxlLmludC5w
cmVmZXJlbmNlIiwgMTIzNDUpCisgICAgcHJvZmlsZS51cGRhdGVfcHJlZmVyZW5jZXMoKQorICAg
IGFzc2VydCAxMjM0NSA9PSBwcm9maWxlLmRlZmF1bHRfcHJlZmVyZW5jZXNbInNhbXBsZS5pbnQu
cHJlZmVyZW5jZSJdCisKKworZGVmIHRlc3RfdGhhdF9ib29sZWFuX3ByZWZzX2FyZV93cml0dGVu
X2luX3RoZV9jb3JyZWN0X2Zvcm1hdCgpOgorICAgIHByb2ZpbGUgPSBGaXJlZm94UHJvZmlsZSgp
CisgICAgcHJvZmlsZS5zZXRfcHJlZmVyZW5jZSgic2FtcGxlLmJvb2wucHJlZmVyZW5jZSIsIFRy
dWUpCisgICAgcHJvZmlsZS51cGRhdGVfcHJlZmVyZW5jZXMoKQorICAgIGFzc2VydCBwcm9maWxl
LmRlZmF1bHRfcHJlZmVyZW5jZXNbInNhbXBsZS5ib29sLnByZWZlcmVuY2UiXSBpcyBUcnVlCisK
KworZGVmIHRlc3RfdGhhdF93ZV9kZWxldGVfdGhlX3Byb2ZpbGUoY2FwYWJpbGl0aWVzKToKKyAg
ICBkcml2ZXIgPSBGaXJlZm94KGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgcGF0aCA9
IGRyaXZlci5maXJlZm94X3Byb2ZpbGUucGF0aAorICAgIGRyaXZlci5xdWl0KCkKKyAgICBhc3Nl
cnQgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgpCisKKworZGVmIHRlc3RfcHJvZmlsZXNfZG9fbm90
X3NoYXJlX3ByZWZlcmVuY2VzKCk6CisgICAgcHJvZmlsZTEgPSBGaXJlZm94UHJvZmlsZSgpCisg
ICAgcHJvZmlsZTEuYWNjZXB0X3VudHJ1c3RlZF9jZXJ0cyA9IEZhbHNlCisgICAgcHJvZmlsZTIg
PSBGaXJlZm94UHJvZmlsZSgpCisgICAgIyBEZWZhdWx0IGlzIHRydWUuIFNob3VsZCByZW1haW4g
c28uCisgICAgYXNzZXJ0IHByb2ZpbGUyLmRlZmF1bHRfcHJlZmVyZW5jZXNbIndlYmRyaXZlcl9h
Y2NlcHRfdW50cnVzdGVkX2NlcnRzIl0gaXMgVHJ1ZQorCisKK2RlZiB0ZXN0X25vbmVfcHJveHlf
aXNfc2V0KCk6CisgICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKCkKKyAgICBwcm94eSA9IE5v
bmUKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgIHByb2ZpbGUu
c2V0X3Byb3h5KHByb3h5KQorICAgIGFzc2VydCAibmV0d29yay5wcm94eS50eXBlIiBub3QgaW4g
cHJvZmlsZS5kZWZhdWx0X3ByZWZlcmVuY2VzCisKKworZGVmIHRlc3RfdW5zcGVjaWZpZWRfcHJv
eHlfaXNfc2V0KCk6CisgICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKCkKKyAgICBwcm94eSA9
IFByb3h5KCkKKyAgICBwcm9maWxlLnNldF9wcm94eShwcm94eSkKKyAgICBhc3NlcnQgIm5ldHdv
cmsucHJveHkudHlwZSIgbm90IGluIHByb2ZpbGUuZGVmYXVsdF9wcmVmZXJlbmNlcworCisKK2Rl
ZiB0ZXN0X21hbnVhbF9wcm94eV9pc19zZXRfaW5fcHJvZmlsZSgpOgorICAgIHByb2ZpbGUgPSBG
aXJlZm94UHJvZmlsZSgpCisgICAgcHJveHkgPSBQcm94eSgpCisgICAgcHJveHkubm9fcHJveHkg
PSAnbG9jYWxob3N0LCBmb28ubG9jYWxob3N0JworICAgIHByb3h5Lmh0dHBfcHJveHkgPSAnc29t
ZS51cmw6MTIzNCcKKyAgICBwcm94eS5mdHBfcHJveHkgPSBOb25lCisgICAgcHJveHkuc3NsUHJv
eHkgPSAnc29tZTIudXJsJworCisgICAgcHJvZmlsZS5zZXRfcHJveHkocHJveHkpCisgICAgYXNz
ZXJ0IHByb2ZpbGUuZGVmYXVsdF9wcmVmZXJlbmNlc1sibmV0d29yay5wcm94eS50eXBlIl0gPT0g
UHJveHlUeXBlLk1BTlVBTFsnZmZfdmFsdWUnXQorICAgIGFzc2VydCBwcm9maWxlLmRlZmF1bHRf
cHJlZmVyZW5jZXNbIm5ldHdvcmsucHJveHkubm9fcHJveGllc19vbiJdID09ICdsb2NhbGhvc3Qs
IGZvby5sb2NhbGhvc3QnCisgICAgYXNzZXJ0IHByb2ZpbGUuZGVmYXVsdF9wcmVmZXJlbmNlc1si
bmV0d29yay5wcm94eS5odHRwIl0gPT0gJ3NvbWUudXJsJworICAgIGFzc2VydCBwcm9maWxlLmRl
ZmF1bHRfcHJlZmVyZW5jZXNbIm5ldHdvcmsucHJveHkuaHR0cF9wb3J0Il0gPT0gMTIzNAorICAg
IGFzc2VydCBwcm9maWxlLmRlZmF1bHRfcHJlZmVyZW5jZXNbIm5ldHdvcmsucHJveHkuc3NsIl0g
PT0gJ3NvbWUyLnVybCcKKyAgICBhc3NlcnQgIm5ldHdvcmsucHJveHkuc3NsX3BvcnQiIG5vdCBp
biBwcm9maWxlLmRlZmF1bHRfcHJlZmVyZW5jZXMKKyAgICBhc3NlcnQgIm5ldHdvcmsucHJveHku
ZnRwIiBub3QgaW4gcHJvZmlsZS5kZWZhdWx0X3ByZWZlcmVuY2VzCisKKworZGVmIHRlc3RfcGFj
X3Byb3h5X2lzX3NldF9pbl9wcm9maWxlKCk6CisgICAgcHJvZmlsZSA9IEZpcmVmb3hQcm9maWxl
KCkKKyAgICBwcm94eSA9IFByb3h5KCkKKyAgICBwcm94eS5wcm94eV9hdXRvY29uZmlnX3VybCA9
ICdodHRwOi8vc29tZS51cmw6MTIzNDUvcGF0aCcKKworICAgIHByb2ZpbGUuc2V0X3Byb3h5KHBy
b3h5KQorICAgIGFzc2VydCBwcm9maWxlLmRlZmF1bHRfcHJlZmVyZW5jZXNbIm5ldHdvcmsucHJv
eHkudHlwZSJdID09IFByb3h5VHlwZS5QQUNbJ2ZmX3ZhbHVlJ10KKyAgICBhc3NlcnQgcHJvZmls
ZS5kZWZhdWx0X3ByZWZlcmVuY2VzWyJuZXR3b3JrLnByb3h5LmF1dG9jb25maWdfdXJsIl0gPT0g
J2h0dHA6Ly9zb21lLnVybDoxMjM0NS9wYXRoJworCisKK2RlZiB0ZXN0X2F1dG9kZXRlY3RfcHJv
eHlfaXNfc2V0X2luX3Byb2ZpbGUoKToKKyAgICBwcm9maWxlID0gRmlyZWZveFByb2ZpbGUoKQor
ICAgIHByb3h5ID0gUHJveHkoKQorICAgIHByb3h5LmF1dG9fZGV0ZWN0ID0gVHJ1ZQorCisgICAg
cHJvZmlsZS5zZXRfcHJveHkocHJveHkpCisgICAgYXNzZXJ0IHByb2ZpbGUuZGVmYXVsdF9wcmVm
ZXJlbmNlc1sibmV0d29yay5wcm94eS50eXBlIl0gPT0gUHJveHlUeXBlLkFVVE9ERVRFQ1RbJ2Zm
X3ZhbHVlJ10KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2llL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvaWUvX19pbml0X18u
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9pZS9pZV9sYXVuY2hlcl90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2llL2llX2xhdW5jaGVy
X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44OGQ2Mjdm
MDgzZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2llL2llX2xhdW5jaGVyX3Rlc3RzLnB5CkBAIC0w
LDAgKzEsNTIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFu
Y3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1l
bnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBm
b3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hp
cC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hl
IExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNl
IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91
IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5h
cGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBh
cHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBC
QVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVu
ZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgSWUKK2Zy
b20gc2VsZW5pdW0ud2ViZHJpdmVyLmllLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKK2Zyb20gc2Vs
ZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJl
ZENhcGFiaWxpdGllcworCisKK2RlZiB0ZXN0X2xhdW5jaF9hbmRfY2xvc2VfYnJvd3NlcigpOgor
ICAgIGRyaXZlciA9IEllKCkKKyAgICBkcml2ZXIucXVpdCgpCisKKworZGVmIHRlc3Rfd2VfY2Fu
X2xhdW5jaF9tdWx0aXBsZV9pZV9pbnN0YW5jZXMoKToKKyAgICBkcml2ZXIxID0gSWUoKQorICAg
IGRyaXZlcjIgPSBJZSgpCisgICAgZHJpdmVyMyA9IEllKCkKKyAgICBkcml2ZXIxLnF1aXQoKQor
ICAgIGRyaXZlcjIucXVpdCgpCisgICAgZHJpdmVyMy5xdWl0KCkKKworCitkZWYgdGVzdF9sYXVu
Y2hfaWVfZG9fbm90X2FmZmVjdF9kZWZhdWx0X2NhcGFiaWxpdGllcygpOgorICAgIGV4cGVjdGVk
ID0gRGVzaXJlZENhcGFiaWxpdGllcy5JTlRFUk5FVEVYUExPUkVSLmNvcHkoKQorICAgIGRyaXZl
ciA9IEllKCkKKyAgICBhY3R1YWwgPSBEZXNpcmVkQ2FwYWJpbGl0aWVzLklOVEVSTkVURVhQTE9S
RVIuY29weSgpCisgICAgZHJpdmVyLnF1aXQoKQorICAgIGFzc2VydCBhY3R1YWwgPT0gZXhwZWN0
ZWQKKworCitkZWYgdGVzdF9sYXVuY2hfaWVfd2l0aF9vcHRpb25zKHBhZ2VzKToKKyAgICBvcHRz
ID0gT3B0aW9ucygpCisgICAgZXhwZWN0ZWQgPSAiY2xpY2tzLmh0bWwiCisgICAgb3B0cy5pbml0
aWFsX2Jyb3dzZXJfdXJsID0gcGFnZXMudXJsKGV4cGVjdGVkKQorICAgIGRyaXZlciA9IEllKG9w
dGlvbnM9b3B0cykKKyAgICBhY3R1YWwgPSBkcml2ZXIuY3VycmVudF91cmwKKyAgICBkcml2ZXIu
cXVpdCgpCisgICAgYXNzZXJ0IGV4cGVjdGVkIGluIGFjdHVhbApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvbWFy
aW9uZXR0ZS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21hcmlvbmV0dGUvX19pbml0X18ucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvbWFyaW9uZXR0ZS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vu
c2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQor
IyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNF
IGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2Vz
IHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIu
MCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGlu
IGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBv
ZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9M
SUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdy
ZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNl
bnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFO
VElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBs
aWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJu
aW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL21hcmlvbmV0dGUvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRlL2NvbmZ0
ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43Nzg3MWE3ZTI0
MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21hcmlvbmV0dGUvY29uZnRlc3QucHkKQEAgLTAsMCAr
MSw0MyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAo
U0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMu
ICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBh
ZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAg
VGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGlj
ZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhp
cyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5
IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNo
ZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxp
Y2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lT
LCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVy
IGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmlj
IGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIg
dGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIg
aW1wb3J0IEZpcmVmb3gKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjYXBhYmlsaXRpZXMoKToK
KyAgICBjYXBhYmlsaXRpZXMgPSB7J21hcmlvbmV0dGUnOiBUcnVlfQorICAgIHJldHVybiBjYXBh
YmlsaXRpZXMKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBkcml2ZXJfY2xhc3MoKToKKyAgICBy
ZXR1cm4gRmlyZWZveAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGRyaXZlcl9rd2FyZ3MoY2Fw
YWJpbGl0aWVzKToKKyAgICByZXR1cm4geydjYXBhYmlsaXRpZXMnOiBjYXBhYmlsaXRpZXN9CisK
KworQHB5dGVzdC5maXh0dXJlCitkZWYgZHJpdmVyKGRyaXZlcl9jbGFzcywgZHJpdmVyX2t3YXJn
cyk6CisgICAgZHJpdmVyID0gZHJpdmVyX2NsYXNzKCoqZHJpdmVyX2t3YXJncykKKyAgICB5aWVs
ZCBkcml2ZXIKKyAgICBkcml2ZXIucXVpdCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRlL21u
X2JpbmFyeV90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21hcmlvbmV0dGUvbW5fYmluYXJ5X3Rlc3RzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43YzdlYzQ0YmFiYgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL21hcmlvbmV0dGUvbW5fYmluYXJ5X3Rlc3RzLnB5CkBAIC0wLDAgKzEsMzQg
QEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykg
dW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl
IHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBT
RkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lU
SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBM
aWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlv
bnMgaW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuZmly
ZWZveC5maXJlZm94X2JpbmFyeSBpbXBvcnQgRmlyZWZveEJpbmFyeQorCisKK0BweXRlc3QuZml4
dHVyZShwYXJhbXM9Wydmb28nLCBGaXJlZm94QmluYXJ5KGZpcmVmb3hfcGF0aD0nZm9vJyldLAor
ICAgICAgICAgICAgICAgIGlkcz1bJ3N0cmluZycsICdiaW5hcnknXSkKK2RlZiBkcml2ZXJfa3dh
cmdzKHJlcXVlc3QsIGRyaXZlcl9rd2FyZ3MpOgorICAgIGRyaXZlcl9rd2FyZ3NbJ2ZpcmVmb3hf
YmluYXJ5J10gPSByZXF1ZXN0LnBhcmFtCisgICAgcmV0dXJuIGRyaXZlcl9rd2FyZ3MKKworCitk
ZWYgdGVzdF9pbnZhbGlkX2JpbmFyeShkcml2ZXJfY2xhc3MsIGRyaXZlcl9rd2FyZ3MpOgorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhXZWJEcml2ZXJFeGNlcHRpb24pIGFzIGV4Y2luZm86CisgICAg
ICAgIGRyaXZlcl9jbGFzcygqKmRyaXZlcl9rd2FyZ3MpCisgICAgYXNzZXJ0ICdubyBzdWNoIGZp
bGUgb3IgZGlyZWN0b3J5JyBpbiBzdHIoZXhjaW5mby52YWx1ZSkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21h
cmlvbmV0dGUvbW5fY29udGV4dF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21hcmlvbmV0dGUvbW5fY29udGV4dF90
ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODcyMmU5OGMx
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRlL21uX2NvbnRleHRfdGVzdHMucHkK
QEAgLTAsMCArMSwyNyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25z
ZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFn
cmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3
b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3du
ZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBB
cGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5v
dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2Uu
ICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8v
d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVk
IGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBk
aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMg
SVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lO
RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisj
IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMK
KyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworZGVmIHRlc3RfY29udGV4dF9zZXRzX2NvcnJlY3Rf
Y29udGV4dF9hbmRfcmV0dXJucyhkcml2ZXIpOgorCisgICAgZGVmIGdldF9jb250ZXh0KCk6Cisg
ICAgICAgIHJldHVybiBkcml2ZXIuZXhlY3V0ZSgnR0VUX0NPTlRFWFQnKS5wb3AoJ3ZhbHVlJykK
KworICAgIGFzc2VydCBnZXRfY29udGV4dCgpID09IGRyaXZlci5DT05URVhUX0NPTlRFTlQKKyAg
ICB3aXRoIGRyaXZlci5jb250ZXh0KGRyaXZlci5DT05URVhUX0NIUk9NRSk6CisgICAgICAgIGFz
c2VydCBnZXRfY29udGV4dCgpID09IGRyaXZlci5DT05URVhUX0NIUk9NRQorICAgIGFzc2VydCBn
ZXRfY29udGV4dCgpID09IGRyaXZlci5DT05URVhUX0NPTlRFTlQKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21h
cmlvbmV0dGUvbW5fbGF1bmNoZXJfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRlL21uX2xhdW5jaGVy
X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMjFmNGZh
MDI1ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL21hcmlvbmV0dGUvbW5fbGF1bmNoZXJfdGVzdHMu
cHkKQEAgLTAsMCArMSw0MSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9y
dCBGaXJlZm94CisKKworZGVmIHRlc3RfbGF1bmNoX2FuZF9jbG9zZV9icm93c2VyKGRyaXZlcik6
CisgICAgYXNzZXJ0ICdicm93c2VyTmFtZScgaW4gZHJpdmVyLmNhcGFiaWxpdGllcworCisKK2Rl
ZiB0ZXN0X3dlX2Nhbl9sYXVuY2hfbXVsdGlwbGVfZmlyZWZveF9pbnN0YW5jZXMoY2FwYWJpbGl0
aWVzKToKKyAgICBkcml2ZXIxID0gRmlyZWZveChjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQor
ICAgIGRyaXZlcjIgPSBGaXJlZm94KGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgZHJp
dmVyMyA9IEZpcmVmb3goY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcykKKyAgICBkcml2ZXIxLnF1
aXQoKQorICAgIGRyaXZlcjIucXVpdCgpCisgICAgZHJpdmVyMy5xdWl0KCkKKworCitkZWYgdGVz
dF9sYXVuY2hfZmlyZWZveF93aXRoX25vbmVfbG9nX3BhdGgoY2FwYWJpbGl0aWVzKToKKyAgICBk
cml2ZXIgPSBGaXJlZm94KGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsIGxvZ19wYXRoPU5vbmUp
CisgICAgZHJpdmVyLnF1aXQoKQorCisKK2RlZiB0ZXN0X2xhdW5jaF9maXJlZm94X3dpdGhfZW1w
dHlfc3RyaW5nX2xvZ19wYXRoKGNhcGFiaWxpdGllcyk6CisgICAgZHJpdmVyID0gRmlyZWZveChj
YXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzLCBsb2dfcGF0aD0iIikKKyAgICBkcml2ZXIucXVpdCgp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRlL21uX29wdGlvbnNfdGVzdHMucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJp
b25ldHRlL21uX29wdGlvbnNfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjExYjUwYTlkZDZkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvbWFyaW9uZXR0ZS9t
bl9vcHRpb25zX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMTMxIEBACisjIExpY2Vuc2VkIHRvIHRoZSBT
b2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNv
bnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlz
dHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVn
YXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQor
IyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJM
aWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UK
KyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5z
ZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAor
IworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdy
aXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3Ry
aWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05E
SVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRo
ZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVz
dAorCit0cnk6CisgICAgYmFzZXN0cmluZworZXhjZXB0IE5hbWVFcnJvcjogICMgUHl0aG9uIDMu
eAorICAgIGJhc2VzdHJpbmcgPSBzdHIKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuZmlyZWZv
eC5maXJlZm94X2JpbmFyeSBpbXBvcnQgRmlyZWZveEJpbmFyeQorZnJvbSBzZWxlbml1bS53ZWJk
cml2ZXIuZmlyZWZveC5maXJlZm94X3Byb2ZpbGUgaW1wb3J0IEZpcmVmb3hQcm9maWxlCitmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5maXJlZm94Lm9wdGlvbnMgaW1wb3J0IExvZywgT3B0aW9ucwor
CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGRyaXZlcl9rd2FyZ3MoZHJpdmVyX2t3YXJncyk6Cisg
ICAgZHJpdmVyX2t3YXJnc1snb3B0aW9ucyddID0gT3B0aW9ucygpCisgICAgcmV0dXJuIGRyaXZl
cl9rd2FyZ3MKKworCitjbGFzcyBUZXN0SW50ZWdyYXRpb24ob2JqZWN0KToKKyAgICBkZWYgdGVz
dF93ZV9jYW5fcGFzc19vcHRpb25zKHNlbGYsIGRyaXZlciwgcGFnZXMpOgorICAgICAgICBwYWdl
cy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9p
ZCgiY2hlZXNlIikKKworCitjbGFzcyBUZXN0VW5pdChvYmplY3QpOgorICAgIGRlZiB0ZXN0X2N0
b3Ioc2VsZik6CisgICAgICAgIG9wdHMgPSBPcHRpb25zKCkKKyAgICAgICAgYXNzZXJ0IG9wdHMu
X2JpbmFyeSBpcyBOb25lCisgICAgICAgIGFzc2VydCBvcHRzLl9wcmVmZXJlbmNlcyA9PSB7fQor
ICAgICAgICBhc3NlcnQgb3B0cy5fcHJvZmlsZSBpcyBOb25lCisgICAgICAgIGFzc2VydCBvcHRz
Ll9hcmd1bWVudHMgPT0gW10KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3B0cy5sb2csIExv
ZykKKworICAgIGRlZiB0ZXN0X2JpbmFyeShzZWxmKToKKyAgICAgICAgb3B0cyA9IE9wdGlvbnMo
KQorICAgICAgICBhc3NlcnQgb3B0cy5iaW5hcnkgaXMgTm9uZQorCisgICAgICAgIG90aGVyX2Jp
bmFyeSA9IEZpcmVmb3hCaW5hcnkoKQorICAgICAgICBhc3NlcnQgb3RoZXJfYmluYXJ5ICE9IG9w
dHMuYmluYXJ5CisgICAgICAgIG9wdHMuYmluYXJ5ID0gb3RoZXJfYmluYXJ5CisgICAgICAgIGFz
c2VydCBvdGhlcl9iaW5hcnkgPT0gb3B0cy5iaW5hcnkKKworICAgICAgICBwYXRoID0gIi9wYXRo
L3RvL2JpbmFyeSIKKyAgICAgICAgb3B0cy5iaW5hcnkgPSBwYXRoCisgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKG9wdHMuYmluYXJ5LCBGaXJlZm94QmluYXJ5KQorICAgICAgICBhc3NlcnQgb3B0
cy5iaW5hcnkuX3N0YXJ0X2NtZCA9PSBwYXRoCisKKyAgICBkZWYgdGVzdF9wcmVmcyhzZWxmKToK
KyAgICAgICAgb3B0cyA9IE9wdGlvbnMoKQorICAgICAgICBhc3NlcnQgbGVuKG9wdHMucHJlZmVy
ZW5jZXMpID09IDAKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3B0cy5wcmVmZXJlbmNlcywg
ZGljdCkKKworICAgICAgICBvcHRzLnNldF9wcmVmZXJlbmNlKCJzcGFtIiwgImhhbSIpCisgICAg
ICAgIGFzc2VydCBsZW4ob3B0cy5wcmVmZXJlbmNlcykgPT0gMQorICAgICAgICBvcHRzLnNldF9w
cmVmZXJlbmNlKCJlZ2dzIiwgVHJ1ZSkKKyAgICAgICAgYXNzZXJ0IGxlbihvcHRzLnByZWZlcmVu
Y2VzKSA9PSAyCisgICAgICAgIG9wdHMuc2V0X3ByZWZlcmVuY2UoInNwYW0iLCAic3BhbSIpCisg
ICAgICAgIGFzc2VydCBsZW4ob3B0cy5wcmVmZXJlbmNlcykgPT0gMgorICAgICAgICBhc3NlcnQg
b3B0cy5wcmVmZXJlbmNlcyA9PSB7InNwYW0iOiAic3BhbSIsICJlZ2dzIjogVHJ1ZX0KKworICAg
IGRlZiB0ZXN0X3Byb2ZpbGUoc2VsZiwgdG1wZGlyX2ZhY3RvcnkpOgorICAgICAgICBvcHRzID0g
T3B0aW9ucygpCisgICAgICAgIGFzc2VydCBvcHRzLnByb2ZpbGUgaXMgTm9uZQorCisgICAgICAg
IG90aGVyX3Byb2ZpbGUgPSBGaXJlZm94UHJvZmlsZSgpCisgICAgICAgIGFzc2VydCBvdGhlcl9w
cm9maWxlICE9IG9wdHMucHJvZmlsZQorICAgICAgICBvcHRzLnByb2ZpbGUgPSBvdGhlcl9wcm9m
aWxlCisgICAgICAgIGFzc2VydCBvdGhlcl9wcm9maWxlID09IG9wdHMucHJvZmlsZQorCisgICAg
ICAgIG9wdHMucHJvZmlsZSA9IHN0cih0bXBkaXJfZmFjdG9yeS5ta3RlbXAoInByb2ZpbGUiKSkK
KyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3B0cy5wcm9maWxlLCBGaXJlZm94UHJvZmlsZSkK
KworICAgIGRlZiB0ZXN0X2FyZ3VtZW50cyhzZWxmKToKKyAgICAgICAgb3B0cyA9IE9wdGlvbnMo
KQorICAgICAgICBhc3NlcnQgbGVuKG9wdHMuYXJndW1lbnRzKSA9PSAwCisKKyAgICAgICAgb3B0
cy5hZGRfYXJndW1lbnQoIi0tZm9vIikKKyAgICAgICAgYXNzZXJ0IGxlbihvcHRzLmFyZ3VtZW50
cykgPT0gMQorICAgICAgICBvcHRzLmFyZ3VtZW50cy5hcHBlbmQoIi0tYmFyIikKKyAgICAgICAg
YXNzZXJ0IGxlbihvcHRzLmFyZ3VtZW50cykgPT0gMgorICAgICAgICBhc3NlcnQgb3B0cy5hcmd1
bWVudHMgPT0gWyItLWZvbyIsICItLWJhciJdCisKKyAgICBkZWYgdGVzdF90b19jYXBhYmlsaXRp
ZXMoc2VsZik6CisgICAgICAgIG9wdHMgPSBPcHRpb25zKCkKKyAgICAgICAgYXNzZXJ0IG9wdHMu
dG9fY2FwYWJpbGl0aWVzKCkgPT0ge30KKworICAgICAgICBwcm9maWxlID0gRmlyZWZveFByb2Zp
bGUoKQorICAgICAgICBvcHRzLnByb2ZpbGUgPSBwcm9maWxlCisgICAgICAgIGNhcHMgPSBvcHRz
LnRvX2NhcGFiaWxpdGllcygpCisgICAgICAgIGFzc2VydCAibW96OmZpcmVmb3hPcHRpb25zIiBp
biBjYXBzCisgICAgICAgIGFzc2VydCAicHJvZmlsZSIgaW4gY2Fwc1sibW96OmZpcmVmb3hPcHRp
b25zIl0KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY2Fwc1sibW96OmZpcmVmb3hPcHRpb25z
Il1bInByb2ZpbGUiXSwgYmFzZXN0cmluZykKKyAgICAgICAgYXNzZXJ0IGNhcHNbIm1vejpmaXJl
Zm94T3B0aW9ucyJdWyJwcm9maWxlIl0gPT0gcHJvZmlsZS5lbmNvZGVkCisKKyAgICAgICAgb3B0
cy5hZGRfYXJndW1lbnQoIi0tZm9vIikKKyAgICAgICAgY2FwcyA9IG9wdHMudG9fY2FwYWJpbGl0
aWVzKCkKKyAgICAgICAgYXNzZXJ0ICJtb3o6ZmlyZWZveE9wdGlvbnMiIGluIGNhcHMKKyAgICAg
ICAgYXNzZXJ0ICJhcmdzIiBpbiBjYXBzWyJtb3o6ZmlyZWZveE9wdGlvbnMiXQorICAgICAgICBh
c3NlcnQgY2Fwc1sibW96OmZpcmVmb3hPcHRpb25zIl1bImFyZ3MiXSA9PSBbIi0tZm9vIl0KKwor
ICAgICAgICBiaW5hcnkgPSBGaXJlZm94QmluYXJ5KCkKKyAgICAgICAgb3B0cy5iaW5hcnkgPSBi
aW5hcnkKKyAgICAgICAgY2FwcyA9IG9wdHMudG9fY2FwYWJpbGl0aWVzKCkKKyAgICAgICAgYXNz
ZXJ0ICJtb3o6ZmlyZWZveE9wdGlvbnMiIGluIGNhcHMKKyAgICAgICAgYXNzZXJ0ICJiaW5hcnki
IGluIGNhcHNbIm1vejpmaXJlZm94T3B0aW9ucyJdCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGNhcHNbIm1vejpmaXJlZm94T3B0aW9ucyJdWyJiaW5hcnkiXSwgYmFzZXN0cmluZykKKyAgICAg
ICAgYXNzZXJ0IGNhcHNbIm1vejpmaXJlZm94T3B0aW9ucyJdWyJiaW5hcnkiXSA9PSBiaW5hcnku
X3N0YXJ0X2NtZAorCisgICAgICAgIG9wdHMuc2V0X3ByZWZlcmVuY2UoInNwYW0iLCAiaGFtIikK
KyAgICAgICAgY2FwcyA9IG9wdHMudG9fY2FwYWJpbGl0aWVzKCkKKyAgICAgICAgYXNzZXJ0ICJt
b3o6ZmlyZWZveE9wdGlvbnMiIGluIGNhcHMKKyAgICAgICAgYXNzZXJ0ICJwcmVmcyIgaW4gY2Fw
c1sibW96OmZpcmVmb3hPcHRpb25zIl0KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY2Fwc1si
bW96OmZpcmVmb3hPcHRpb25zIl1bInByZWZzIl0sIGRpY3QpCisgICAgICAgIGFzc2VydCBjYXBz
WyJtb3o6ZmlyZWZveE9wdGlvbnMiXVsicHJlZnMiXVsic3BhbSJdID09ICJoYW0iCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9tYXJpb25ldHRlL21uX3ByZWZlcmVuY2VzX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvbWFyaW9uZXR0
ZS9tbl9wcmVmZXJlbmNlc190ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMjE1MDIyNjM1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRlL21u
X3ByZWZlcmVuY2VzX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMzMgQEAKKyMgTGljZW5zZWQgdG8gdGhl
IFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUg
Y29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBk
aXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyBy
ZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxl
CisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMg
IkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5j
ZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNl
bnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w
CisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4g
d3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlz
dHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP
TkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUg
dGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlz
c2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0
ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3gub3B0aW9ucyBpbXBvcnQgT3B0
aW9ucworCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGRyaXZlcl9rd2FyZ3MocmVxdWVzdCwgZHJp
dmVyX2t3YXJncyk6CisgICAgb3B0aW9ucyA9IE9wdGlvbnMoKQorICAgIG9wdGlvbnMuc2V0X3By
ZWZlcmVuY2UoJ2Jyb3dzZXIuc3RhcnR1cC5ob21lcGFnZV9vdmVycmlkZS5tc3RvbmUnLCAnJykK
KyAgICBvcHRpb25zLnNldF9wcmVmZXJlbmNlKCdzdGFydHVwLmhvbWVwYWdlX3dlbGNvbWVfdXJs
JywgJ2Fib3V0OicpCisgICAgZHJpdmVyX2t3YXJnc1snb3B0aW9ucyddID0gb3B0aW9ucworICAg
IHJldHVybiBkcml2ZXJfa3dhcmdzCisKKworZGVmIHRlc3RfcHJlZmVyZW5jZXNfYXJlX3VzZWQo
ZHJpdmVyKToKKyAgICBhc3NlcnQgJ2Fib3V0OicgPT0gZHJpdmVyLmN1cnJlbnRfdXJsCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9tYXJpb25ldHRlL21uX3Byb2ZpbGVfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRl
L21uX3Byb2ZpbGVfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjRiMDg5NWJiZDBlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvbWFyaW9uZXR0ZS9tbl9wcm9m
aWxlX3Rlc3RzLnB5CkBAIC0wLDAgKzEsNTcgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgb3MKKworaW1wb3J0
IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRmlyZWZveFByb2ZpbGUK
K2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3gub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwor
CisKK0BweXRlc3QuZml4dHVyZShwYXJhbXM9WydjYXBhYmlsaXRpZXMnLCAnZmlyZWZveF9wcm9m
aWxlJywgJ29wdGlvbnMnXSkKK2RlZiBkcml2ZXJfa3dhcmdzKHJlcXVlc3QsIGRyaXZlcl9rd2Fy
Z3MsIHByb2ZpbGUpOgorICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gJ2NhcGFiaWxpdGllcyc6Cisg
ICAgICAgIG9wdGlvbnMgPSB7J3Byb2ZpbGUnOiBwcm9maWxlfQorICAgICAgICBkcml2ZXJfa3dh
cmdzW3JlcXVlc3QucGFyYW1dLnNldGRlZmF1bHQoJ21vejpmaXJlZm94T3B0aW9ucycsIG9wdGlv
bnMpCisgICAgZWxpZiByZXF1ZXN0LnBhcmFtID09ICdmaXJlZm94X3Byb2ZpbGUnOgorICAgICAg
ICBkcml2ZXJfa3dhcmdzW3JlcXVlc3QucGFyYW1dID0gcHJvZmlsZQorICAgIGVsaWYgcmVxdWVz
dC5wYXJhbSA9PSAnb3B0aW9ucyc6CisgICAgICAgIG9wdGlvbnMgPSBPcHRpb25zKCkKKyAgICAg
ICAgb3B0aW9ucy5wcm9maWxlID0gcHJvZmlsZQorICAgICAgICBkcml2ZXJfa3dhcmdzW3JlcXVl
c3QucGFyYW1dID0gb3B0aW9ucworICAgIGRyaXZlcl9rd2FyZ3NbJ2ZpcmVmb3hfcHJvZmlsZSdd
ID0gcHJvZmlsZQorICAgIHJldHVybiBkcml2ZXJfa3dhcmdzCisKKworQHB5dGVzdC5maXh0dXJl
CitkZWYgcHJvZmlsZSgpOgorICAgIHByb2ZpbGUgPSBGaXJlZm94UHJvZmlsZSgpCisgICAgcHJv
ZmlsZS5zZXRfcHJlZmVyZW5jZSgnYnJvd3Nlci5zdGFydHVwLmhvbWVwYWdlX292ZXJyaWRlLm1z
dG9uZScsICcnKQorICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVuY2UoJ3N0YXJ0dXAuaG9tZXBhZ2Vf
d2VsY29tZV91cmwnLCAnYWJvdXQ6JykKKyAgICBwcm9maWxlLnVwZGF0ZV9wcmVmZXJlbmNlcygp
CisgICAgcmV0dXJuIHByb2ZpbGUKKworCitkZWYgdGVzdF9wcm9maWxlX2lzX3VzZWQoZHJpdmVy
KToKKyAgICBhc3NlcnQgJ2Fib3V0OicgPT0gZHJpdmVyLmN1cnJlbnRfdXJsCisKKworZGVmIHRl
c3RfcHJvZmlsZV9pc19kZWxldGVkKGRyaXZlciwgcHJvZmlsZSk6CisgICAgYXNzZXJ0IG9zLnBh
dGguZXhpc3RzKHByb2ZpbGUucGF0aCkKKyAgICBkcml2ZXIucXVpdCgpCisgICAgYXNzZXJ0IG5v
dCBvcy5wYXRoLmV4aXN0cyhwcm9maWxlLnBhdGgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRl
L21uX3NlcnZpY2VfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRlL21uX3NlcnZpY2VfdGVzdHMucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIzZjc4M2I3YzRiCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvbWFyaW9uZXR0ZS9tbl9zZXJ2aWNlX3Rlc3RzLnB5CkBAIC0wLDAg
KzEsMzIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kg
KFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRz
LiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3Ig
YWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4g
IFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJ
UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVy
IHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5maXJlZm94LnNlcnZpY2Ug
aW1wb3J0IFNlcnZpY2UKKworCitkZWYgdGVzdF9jb21tYW5kX2xpbmVfYXJncygpOgorICAgIHNl
cnZpY2UgPSBTZXJ2aWNlKCJnZWNrb2RyaXZlciIsIHNlcnZpY2VfYXJncz1bIi0tbG9nIiwgInRy
YWNlIl0pCisgICAgZm91bmQgPSBGYWxzZQorCisgICAgYXJncyA9IHNlcnZpY2UuY29tbWFuZF9s
aW5lX2FyZ3MoKQorCisgICAgZm9yIGlkeCBpbiByYW5nZShsZW4oYXJncykgLSAxKToKKyAgICAg
ICAgaWYgYXJnc1tpZHhdID09ICItLWxvZyIgYW5kIGFyZ3NbaWR4ICsgMV0gPT0gInRyYWNlIjoK
KyAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQorICAgICAgICAgICAgYnJlYWsKKworICAgIGFzc2Vy
dCBmb3VuZCwgIlByb3ZpZGVkIGFyZ3VtZW50cyBkbyBub3QgZXhpc3QgaW4gYXJyYXkiCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9tYXJpb25ldHRlL21uX3NldF9jb250ZXh0X3Rlc3RzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvbWFyaW9u
ZXR0ZS9tbl9zZXRfY29udGV4dF90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNmE2NGE3MTNlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9tYXJpb25ldHRl
L21uX3NldF9jb250ZXh0X3Rlc3RzLnB5CkBAIC0wLDAgKzEsMjEgQEAKKyMgTGljZW5zZWQgdG8g
dGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1v
cmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQor
IyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgor
IyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBm
aWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUK
KyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp
YW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut
Mi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9S
IENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBT
ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy
bWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2RlZiB0
ZXN0X3dlX2Nhbl9zd2l0Y2hfY29udGV4dF90b19jaHJvbWUoZHJpdmVyKToKKyAgICBkcml2ZXIu
c2V0X2NvbnRleHQoJ2Nocm9tZScpCisgICAgYXNzZXJ0IDEgPT0gZHJpdmVyLmV4ZWN1dGVfc2Ny
aXB0KCJ2YXIgYyA9IENvbXBvbmVudHMuY2xhc3NlczsgcmV0dXJuIDE7IikKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJp
dmVyL3BoYW50b21qcy9waGFudG9tanNfbGF1bmNoZXJfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9waGFudG9tanMv
cGhhbnRvbWpzX2xhdW5jaGVyX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi40OWJhODI3YTNmZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3BoYW50b21qcy9w
aGFudG9tanNfbGF1bmNoZXJfdGVzdHMucHkKQEAgLTAsMCArMSw0NSBAQAorIyBMaWNlbnNlZCB0
byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3Ig
bW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxl
CisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9u
CisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlz
IGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRo
ZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T
RS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0
byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBp
cyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMg
T1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4g
IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBw
ZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9y
dCBwc3V0aWwKKworZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCisKKworZGVmIHRlc3RM
YXVuY2hBbmRDbG9zZUJyb3dzZXJXaXRob3V0TGVha2luZ0Nvb2tpZVRlbXBGaWxlRGVzY3JpcHRv
cigpOgorCisgICAgIyBwc3V0aWwgbW9kdWxlIGlzIHVzZWQgdG8gZ2V0IG51bSBvcGVuIGZpbGUg
ZGVzY3JpdG9ycyBhY3Jvc3MgcGxhdGZvcm1zCisgICAgcCA9IHBzdXRpbC5Qcm9jZXNzKCkKKwor
ICAgIG51bV9mZHNfc2FtcGxlcyA9IFtdCisKKyAgICBkcml2ZXIgPSB3ZWJkcml2ZXIuUGhhbnRv
bUpTKCkKKyAgICBkcml2ZXIucXVpdCgpCisKKyAgICBudW1fZmRzX3NhbXBsZXMuYXBwZW5kKHAu
bnVtX2ZkcygpKQorCisgICAgZHJpdmVyID0gd2ViZHJpdmVyLlBoYW50b21KUygpCisgICAgZHJp
dmVyLnF1aXQoKQorCisgICAgbnVtX2Zkc19zYW1wbGVzLmFwcGVuZChwLm51bV9mZHMoKSkKKwor
ICAgIGRyaXZlciA9IHdlYmRyaXZlci5QaGFudG9tSlMoKQorICAgIGRyaXZlci5xdWl0KCkKKwor
ICAgIG51bV9mZHNfc2FtcGxlcy5hcHBlbmQocC5udW1fZmRzKCkpCisKKyAgICBhc3NlcnQgbWF4
KG51bV9mZHNfc2FtcGxlcykgPT0gbWluKG51bV9mZHNfc2FtcGxlcykKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L3JlbW90ZS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9yZW1vdGUvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9yZW1vdGUvcmVtb3RlX2ZpcmVmb3hfcHJvZmlsZV90ZXN0cy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9y
ZW1vdGVfZmlyZWZveF9wcm9maWxlX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mN2Q2ODI5MTliMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9y
ZW1vdGVfZmlyZWZveF9wcm9maWxlX3Rlc3RzLnB5CkBAIC0wLDAgKzEsNDggQEAKKyMgTGljZW5z
ZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisj
IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0Ug
ZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1h
dGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMg
dGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w
ICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4g
Y29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9m
IHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ
Q0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3Jl
ZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vu
c2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5U
SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxp
ZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5p
bmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitp
bXBvcnQgcHl0ZXN0Citmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKK2Zyb20gc2VsZW5p
dW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENh
cGFiaWxpdGllcworCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNhcGFiaWxpdGllcygpOgorICAg
IGNhcGFiaWxpdGllcyA9IERlc2lyZWRDYXBhYmlsaXRpZXMuRklSRUZPWC5jb3B5KCkKKyAgICBj
YXBhYmlsaXRpZXNbJ21hcmlvbmV0dGUnXSA9IEZhbHNlCisgICAgcmV0dXJuIGNhcGFiaWxpdGll
cworCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGRyaXZlcihjYXBhYmlsaXRpZXMsIHByb2ZpbGUp
OgorICAgIGRyaXZlciA9IHdlYmRyaXZlci5SZW1vdGUoCisgICAgICAgIGRlc2lyZWRfY2FwYWJp
bGl0aWVzPWNhcGFiaWxpdGllcywKKyAgICAgICAgYnJvd3Nlcl9wcm9maWxlPXByb2ZpbGUpCisg
ICAgeWllbGQgZHJpdmVyCisgICAgZHJpdmVyLnF1aXQoKQorCisKK0BweXRlc3QuZml4dHVyZQor
ZGVmIHByb2ZpbGUoKToKKyAgICBwcm9maWxlID0gd2ViZHJpdmVyLkZpcmVmb3hQcm9maWxlKCkK
KyAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlKCdicm93c2VyLnN0YXJ0dXAuaG9tZXBhZ2UnLCAn
YWJvdXQ6JykKKyAgICBwcm9maWxlLnVwZGF0ZV9wcmVmZXJlbmNlcygpCisgICAgcmV0dXJuIHBy
b2ZpbGUKKworCitkZWYgdGVzdF9wcm9maWxlX2lzX3VzZWQoZHJpdmVyKToKKyAgICBhc3NlcnQg
J2Fib3V0OmJsYW5rJyA9PSBkcml2ZXIuY3VycmVudF91cmwgb3IgJ2Fib3V0OicgPT0gZHJpdmVy
LmN1cnJlbnRfdXJsCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvY29uZnRlc3QucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZh
cmkvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZh
YTg5NjhiYjY2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL2NvbmZ0ZXN0LnB5CkBAIC0w
LDAgKzEsMzcgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFu
Y3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1l
bnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBm
b3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hp
cC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hl
IExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNl
IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91
IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5h
cGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBh
cHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBC
QVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVu
ZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJp
dmVyIGltcG9ydCBTYWZhcmkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBkcml2ZXJfY2xhc3Mo
KToKKyAgICByZXR1cm4gU2FmYXJpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgZHJpdmVyX2t3
YXJncygpOgorICAgIHJldHVybiB7fQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGRyaXZlcihk
cml2ZXJfY2xhc3MsIGRyaXZlcl9rd2FyZ3MpOgorICAgIGRyaXZlciA9IGRyaXZlcl9jbGFzcygq
KmRyaXZlcl9rd2FyZ3MpCisgICAgeWllbGQgZHJpdmVyCisgICAgZHJpdmVyLnF1aXQoKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvc2FmYXJpL2xhdW5jaGVyX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL2xhdW5jaGVy
X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NDI3MjVm
M2E0ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9sYXVuY2hlcl90ZXN0cy5weQpAQCAt
MCwwICsxLDQ0IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZh
bmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVt
ZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsg
Zm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNo
aXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVz
ZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlv
dSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cu
YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkg
YXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIg
QkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBl
aXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3Bl
Y2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1
bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IG9zCisKK2ltcG9ydCBweXRlc3QKKworCitkZWYg
dGVzdF9sYXVuY2goZHJpdmVyKToKKyAgICBhc3NlcnQgZHJpdmVyLmNhcGFiaWxpdGllc1snYnJv
d3Nlck5hbWUnXSA9PSAnc2FmYXJpJworCisKK2RlZiB0ZXN0X2xhdW5jaF93aXRoX2ludmFsaWRf
ZXhlY3V0YWJsZV9wYXRoX3JhaXNlc19leGNlcHRpb24oZHJpdmVyX2NsYXNzKToKKyAgICBwYXRo
ID0gJy90aGlzL3BhdGgvc2hvdWxkL25ldmVyL2V4aXN0JworICAgIGFzc2VydCBub3Qgb3MucGF0
aC5leGlzdHMocGF0aCkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uKSBhcyBlOgor
ICAgICAgICBkcml2ZXJfY2xhc3MoZXhlY3V0YWJsZV9wYXRoPXBhdGgpCisgICAgYXNzZXJ0ICdT
YWZhcmlEcml2ZXIgcmVxdWlyZXMgU2FmYXJpIDEwIG9uIE9TWCBFbCBDYXBpdGFuJyBpbiBzdHIo
ZSkKKworCitjbGFzcyBUZXN0VGVjaG5vbG9neVByZXZpZXcob2JqZWN0KToKKworICAgIEBweXRl
c3QuZml4dHVyZQorICAgIGRlZiBkcml2ZXJfa3dhcmdzKHNlbGYpOgorICAgICAgICBwYXRoID0g
Jy9BcHBsaWNhdGlvbnMvU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldy5hcHAvQ29udGVudHMvTWFj
T1Mvc2FmYXJpZHJpdmVyJworICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMocGF0aCksICdT
YWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IHJlcXVpcmVkISBEb3dubG9hZCBpdCBmcm9tIGh0dHBz
Oi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9zYWZhcmkvdGVjaG5vbG9neS1wcmV2aWV3LycKKyAgICAg
ICAgcmV0dXJuIHsnZXhlY3V0YWJsZV9wYXRoJzogcGF0aH0KKworICAgIGRlZiB0ZXN0X2xhdW5j
aChzZWxmLCBkcml2ZXIpOgorICAgICAgICBhc3NlcnQgZHJpdmVyLmNhcGFiaWxpdGllc1snYnJv
d3Nlck5hbWUnXSA9PSAnc2FmYXJpJwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9fX2luaXRfXy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3N1cHBvcnQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9fX2lu
aXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVl
ZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxp
Y2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0
aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHly
aWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5k
ZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlv
dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUg
TGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAg
IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3Mg
cmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNv
ZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFu
CisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFO
WQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZv
ciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1p
dGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvY29s
b3JfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2NvbG9yX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZjM2YWVjNTkyMQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L3N1cHBvcnQvY29sb3JfdGVzdHMucHkKQEAgLTAsMCArMSwxMjEgQEAKKyMgTGljZW5zZWQgdG8g
dGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1v
cmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQor
IyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgor
IyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBm
aWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUK
KyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp
YW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut
Mi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9S
IENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBT
ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy
bWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LmNvbG9yIGltcG9ydCBDb2xvcgorCisKK2RlZiB0ZXN0
X3JnYl90b19yZ2IoKToKKyAgICByZ2IgPSAicmdiKDEsIDIsIDMpIgorICAgIGFzc2VydCBDb2xv
ci5mcm9tX3N0cmluZyhyZ2IpLnJnYiA9PSByZ2IKKworCitkZWYgdGVzdF9yZ2JfdG9fcmdiYSgp
OgorICAgIHJnYiA9ICJyZ2IoMSwgMiwgMykiCisgICAgYXNzZXJ0IENvbG9yLmZyb21fc3RyaW5n
KHJnYikucmdiYSA9PSAicmdiYSgxLCAyLCAzLCAxKSIKKworCitkZWYgdGVzdF9yZ2JfcGN0X3Rv
X3JnYmEoKToKKyAgICByZ2IgPSAicmdiKDEwJSwgMjAlLCAzMCUpIgorICAgIGFzc2VydCBDb2xv
ci5mcm9tX3N0cmluZyhyZ2IpLnJnYmEgPT0gInJnYmEoMjUsIDUxLCA3NiwgMSkiCisKKworZGVm
IHRlc3RfcmdiX2FsbG93c193aGl0ZXNwYWNlKCk6CisgICAgcmdiID0gInJnYihcdDEsICAgMiAg
ICAsIDMpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyhyZ2IpLnJnYiA9PSAicmdiKDEs
IDIsIDMpIgorCisKK2RlZiB0ZXN0X3JnYmFfdG9fcmdiYSgpOgorICAgIHJnYmEgPSAicmdiYSgx
LCAyLCAzLCAwLjUpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyhyZ2JhKS5yZ2JhID09
IHJnYmEKKworCitkZWYgdGVzdF9yZ2JhX3BjdF90b19yZ2JhKCk6CisgICAgcmdiYSA9ICJyZ2Jh
KDEwJSwgMjAlLCAzMCUsIDAuNSkiCisgICAgYXNzZXJ0IENvbG9yLmZyb21fc3RyaW5nKHJnYmEp
LnJnYmEgPT0gInJnYmEoMjUsIDUxLCA3NiwgMC41KSIKKworCitkZWYgdGVzdF9oZXhfdG9faGV4
KCk6CisgICAgaGV4XyA9ICIjZmYwMGEwIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyho
ZXhfKS5oZXggPT0gaGV4XworCisKK2RlZiB0ZXN0X2hleF90b19yZ2IoKToKKyAgICBoZXhfID0g
IiMwMUZmMDMiCisgICAgcmdiID0gInJnYigxLCAyNTUsIDMpIgorICAgIGFzc2VydCBDb2xvci5m
cm9tX3N0cmluZyhoZXhfKS5yZ2IgPT0gcmdiCisKKworZGVmIHRlc3RfaGV4X3RvX3JnYmEoKToK
KyAgICBoZXhfID0gIiMwMUZmMDMiCisgICAgcmdiYSA9ICJyZ2JhKDEsIDI1NSwgMywgMSkiCisg
ICAgYXNzZXJ0IENvbG9yLmZyb21fc3RyaW5nKGhleF8pLnJnYmEgPT0gcmdiYQorCisgICAgaGV4
XyA9ICIjMDBmZjMzIgorICAgIHJnYmEgPSAicmdiYSgwLCAyNTUsIDUxLCAxKSIKKyAgICBhc3Nl
cnQgQ29sb3IuZnJvbV9zdHJpbmcoaGV4XykucmdiYSA9PSByZ2JhCisKKworZGVmIHRlc3Rfcmdi
X3RvX2hleCgpOgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZygicmdiKDEsIDI1NSwgMyki
KS5oZXggPT0gIiMwMWZmMDMiCisKKworZGVmIHRlc3RfaGV4M190b19yZ2JhKCk6CisgICAgYXNz
ZXJ0IENvbG9yLmZyb21fc3RyaW5nKCIjMGYzIikucmdiYSA9PSAicmdiYSgwLCAyNTUsIDUxLCAx
KSIKKworCitkZWYgdGVzdF9oc2xfdG9fcmdiYSgpOgorICAgIGhzbCA9ICJoc2woMTIwLCAxMDAl
LCAyNSUpIgorICAgIHJnYmEgPSAicmdiYSgwLCAxMjgsIDAsIDEpIgorICAgIGFzc2VydCBDb2xv
ci5mcm9tX3N0cmluZyhoc2wpLnJnYmEgPT0gcmdiYQorCisgICAgaHNsID0gImhzbCgxMDAsIDAl
LCA1MCUpIgorICAgIHJnYmEgPSAicmdiYSgxMjgsIDEyOCwgMTI4LCAxKSIKKyAgICBhc3NlcnQg
Q29sb3IuZnJvbV9zdHJpbmcoaHNsKS5yZ2JhID09IHJnYmEKKworCitkZWYgdGVzdF9oc2xhX3Rv
X3JnYmEoKToKKyAgICBoc2xhID0gImhzbGEoMTIwLCAxMDAlLCAyNSUsIDEpIgorICAgIHJnYmEg
PSAicmdiYSgwLCAxMjgsIDAsIDEpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyhoc2xh
KS5yZ2JhID09IHJnYmEKKworICAgIGhzbGEgPSAiaHNsYSgxMDAsIDAlLCA1MCUsIDAuNSkiCisg
ICAgcmdiYSA9ICJyZ2JhKDEyOCwgMTI4LCAxMjgsIDAuNSkiCisgICAgYXNzZXJ0IENvbG9yLmZy
b21fc3RyaW5nKGhzbGEpLnJnYmEgPT0gcmdiYQorCisKK2RlZiB0ZXN0X25hbWVkX2NvbG9yKCk6
CisgICAgYXNzZXJ0IENvbG9yLmZyb21fc3RyaW5nKCJncmVlbiIpLnJnYmEgPT0gInJnYmEoMCwg
MTI4LCAwLCAxKSIKKyAgICBhc3NlcnQgQ29sb3IuZnJvbV9zdHJpbmcoImdyYXkiKS5yZ2JhID09
ICJyZ2JhKDEyOCwgMTI4LCAxMjgsIDEpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZygi
YXF1YSIpLmhleCA9PSAiIzAwZmZmZiIKKyAgICBhc3NlcnQgQ29sb3IuZnJvbV9zdHJpbmcoInRy
YW5zcGFyZW50IikucmdiYSA9PSAicmdiYSgwLCAwLCAwLCAwKSIKKworCitkZWYgdGVzdF9lcXVh
bHMoKToKKyAgICBhc3NlcnQgQ29sb3IuZnJvbV9zdHJpbmcoIiNmMDAiKSA9PSBDb2xvci5mcm9t
X3N0cmluZygicmdiKDI1NSwgMCwgMCkiKQorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZygi
cmdiYSgzMCwgMzAsIDMwLCAwLjIpIikgIT0gQ29sb3IuZnJvbV9zdHJpbmcoInJnYmEoMzAsIDMw
LCAzMCwgMSkiKQorCisKK2RlZiB0ZXN0X2hhc2goKToKKyAgICBoYXNoMSA9IGhhc2goQ29sb3Iu
ZnJvbV9zdHJpbmcoIiNmMDAiKSkKKyAgICBoYXNoMiA9IGhhc2goQ29sb3IuZnJvbV9zdHJpbmco
InJnYigyNTUsIDAsIDApIikpCisgICAgYXNzZXJ0IGhhc2gxID09IGhhc2gyCisKKworZGVmIHRl
c3Rfc3RyaW5nX3JlcHJlc2VudGF0aW9ucygpOgorICAgIGhleF8gPSAiIzAxRmYwMyIKKyAgICBh
c3NlcnQgc3RyKENvbG9yLmZyb21fc3RyaW5nKGhleF8pKSA9PSAiQ29sb3I6IHJnYmEoMSwgMjU1
LCAzLCAxKSIKKyAgICBhc3NlcnQgcmVwcihDb2xvci5mcm9tX3N0cmluZyhoZXhfKSkgPT0gIkNv
bG9yKHJlZD0xLCBncmVlbj0yNTUsIGJsdWU9MywgYWxwaGE9MSkiCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9z
dXBwb3J0L2NvbmZ0ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzU2NzA5MjdlMzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9zdXBwb3J0L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMjEgQEAKKyMgTGljZW5zZWQgdG8g
dGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1v
cmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQor
IyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgor
IyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBm
aWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUK
KyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp
YW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut
Mi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMg
ZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9S
IENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBT
ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVy
bWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2RlZiBw
eXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgIGlmICdkcml2ZXInIGluIG1ldGFm
dW5jLmZpeHR1cmVuYW1lcyBhbmQgbWV0YWZ1bmMuY29uZmlnLm9wdGlvbi5kcml2ZXJzOgorICAg
ICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgnZHJpdmVyJywgbWV0YWZ1bmMuY29uZmlnLm9wdGlv
bi5kcml2ZXJzLCBpbmRpcmVjdD1UcnVlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVudF9m
aXJpbmdfd2ViZHJpdmVyX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVudF9maXJpbmdfd2ViZHJp
dmVyX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xMjQ2
ZDk2NGIxYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dlYmRy
aXZlcl90ZXN0cy5weQpAQCAtMCwwICsxLDIxOCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdh
cmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmli
dXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1
dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGlu
ZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8g
eW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5z
ZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdp
dGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
KyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMg
VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n
LAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK3RyeToKKyAgICBmcm9tIGlv
IGltcG9ydCBCeXRlc0lPCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBjU3RyaW5nSU8g
aW1wb3J0IFN0cmluZ0lPIGFzIEJ5dGVzSU8KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVu
aXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCitmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5zdXBwb3J0LmV2ZW50cyBpbXBvcnQgRXZlbnRGaXJpbmdXZWJEcml2ZXIsIEFic3Ry
YWN0RXZlbnRMaXN0ZW5lcgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBv
cnQgV2ViRHJpdmVyV2FpdAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGxvZygpOgorICAgIGxv
ZyA9IEJ5dGVzSU8oKQorICAgIHlpZWxkIGxvZworICAgIGxvZy5jbG9zZSgpCisKKworZGVmIHRl
c3Rfc2hvdWxkX2ZpcmVfbmF2aWdhdGlvbl9ldmVudHMoZHJpdmVyLCBsb2csIHBhZ2VzKToKKwor
ICAgIGNsYXNzIEV2ZW50TGlzdGVuZXIoQWJzdHJhY3RFdmVudExpc3RlbmVyKToKKworICAgICAg
ICBkZWYgYmVmb3JlX25hdmlnYXRlX3RvKHNlbGYsIHVybCwgZHJpdmVyKToKKyAgICAgICAgICAg
IGxvZy53cml0ZSgoImJlZm9yZV9uYXZpZ2F0ZV90byAlcyIgJSB1cmwuc3BsaXQoIi8iKVstMV0p
LmVuY29kZSgpKQorCisgICAgICAgIGRlZiBhZnRlcl9uYXZpZ2F0ZV90byhzZWxmLCB1cmwsIGRy
aXZlcik6CisgICAgICAgICAgICBsb2cud3JpdGUoKCJhZnRlcl9uYXZpZ2F0ZV90byAlcyIgJSB1
cmwuc3BsaXQoIi8iKVstMV0pLmVuY29kZSgpKQorCisgICAgICAgIGRlZiBiZWZvcmVfbmF2aWdh
dGVfYmFjayhzZWxmLCBkcml2ZXIpOgorICAgICAgICAgICAgbG9nLndyaXRlKGIiYmVmb3JlX25h
dmlnYXRlX2JhY2siKQorCisgICAgICAgIGRlZiBhZnRlcl9uYXZpZ2F0ZV9iYWNrKHNlbGYsIGRy
aXZlcik6CisgICAgICAgICAgICBsb2cud3JpdGUoYiJhZnRlcl9uYXZpZ2F0ZV9iYWNrIikKKwor
ICAgICAgICBkZWYgYmVmb3JlX25hdmlnYXRlX2ZvcndhcmQoc2VsZiwgZHJpdmVyKToKKyAgICAg
ICAgICAgIGxvZy53cml0ZShiImJlZm9yZV9uYXZpZ2F0ZV9mb3J3YXJkIikKKworICAgICAgICBk
ZWYgYWZ0ZXJfbmF2aWdhdGVfZm9yd2FyZChzZWxmLCBkcml2ZXIpOgorICAgICAgICAgICAgbG9n
LndyaXRlKGIiYWZ0ZXJfbmF2aWdhdGVfZm9yd2FyZCIpCisKKyAgICBlZl9kcml2ZXIgPSBFdmVu
dEZpcmluZ1dlYkRyaXZlcihkcml2ZXIsIEV2ZW50TGlzdGVuZXIoKSkKKyAgICBlZl9kcml2ZXIu
Z2V0KHBhZ2VzLnVybCgiZm9ybVBhZ2UuaHRtbCIpKQorICAgIGVmX2RyaXZlci5maW5kX2VsZW1l
bnQoYnk9QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCisgICAgV2ViRHJpdmVy
V2FpdChlZl9kcml2ZXIsIDUpLnVudGlsKGxhbWJkYSBkOiBkLnRpdGxlID09ICJXZSBBcnJpdmUg
SGVyZSIpCisgICAgYXNzZXJ0IGVmX2RyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisK
KyAgICBlZl9kcml2ZXIuYmFjaygpCisgICAgYXNzZXJ0IGVmX2RyaXZlci50aXRsZSA9PSAiV2Ug
TGVhdmUgRnJvbSBIZXJlIgorCisgICAgZWZfZHJpdmVyLmZvcndhcmQoKQorICAgIGFzc2VydCBl
Zl9kcml2ZXIudGl0bGUgPT0gIldlIEFycml2ZSBIZXJlIgorCisgICAgYXNzZXJ0IChiImJlZm9y
ZV9uYXZpZ2F0ZV90byBmb3JtUGFnZS5odG1sIgorICAgICAgICAgICAgYiJhZnRlcl9uYXZpZ2F0
ZV90byBmb3JtUGFnZS5odG1sIgorICAgICAgICAgICAgYiJiZWZvcmVfbmF2aWdhdGVfYmFjayIK
KyAgICAgICAgICAgIGIiYWZ0ZXJfbmF2aWdhdGVfYmFjayIKKyAgICAgICAgICAgIGIiYmVmb3Jl
X25hdmlnYXRlX2ZvcndhcmQiCisgICAgICAgICAgICBiImFmdGVyX25hdmlnYXRlX2ZvcndhcmQi
KSA9PSBsb2cuZ2V0dmFsdWUoKQorCisKK2RlZiB0ZXN0X3Nob3VsZF9maXJlX2NsaWNrX2V2ZW50
KGRyaXZlciwgbG9nLCBwYWdlcyk6CisKKyAgICBjbGFzcyBFdmVudExpc3RlbmVyKEFic3RyYWN0
RXZlbnRMaXN0ZW5lcik6CisKKyAgICAgICAgZGVmIGJlZm9yZV9jbGljayhzZWxmLCBlbGVtZW50
LCBkcml2ZXIpOgorICAgICAgICAgICAgbG9nLndyaXRlKGIiYmVmb3JlX2NsaWNrIikKKworICAg
ICAgICBkZWYgYWZ0ZXJfY2xpY2soc2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgICAg
IGxvZy53cml0ZShiImFmdGVyX2NsaWNrIikKKworICAgIGVmX2RyaXZlciA9IEV2ZW50RmlyaW5n
V2ViRHJpdmVyKGRyaXZlciwgRXZlbnRMaXN0ZW5lcigpKQorICAgIGVmX2RyaXZlci5nZXQocGFn
ZXMudXJsKCJjbGlja3MuaHRtbCIpKQorICAgIGVmX2RyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICJvdmVyZmxvd0xpbmsiKS5jbGljaygpCisgICAgYXNzZXJ0IGVmX2RyaXZlci50aXRsZSA9PSAi
WEhUTUwgVGVzdCBQYWdlIgorCisgICAgYXNzZXJ0IGIiYmVmb3JlX2NsaWNrIiArIGIiYWZ0ZXJf
Y2xpY2siID09IGxvZy5nZXR2YWx1ZSgpCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpcmVfY2hhbmdl
X3ZhbHVlX2V2ZW50KGRyaXZlciwgbG9nLCBwYWdlcyk6CisKKyAgICBjbGFzcyBFdmVudExpc3Rl
bmVyKEFic3RyYWN0RXZlbnRMaXN0ZW5lcik6CisKKyAgICAgICAgZGVmIGJlZm9yZV9jaGFuZ2Vf
dmFsdWVfb2Yoc2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgICAgIGxvZy53cml0ZShi
ImJlZm9yZV9jaGFuZ2VfdmFsdWVfb2YiKQorCisgICAgICAgIGRlZiBhZnRlcl9jaGFuZ2VfdmFs
dWVfb2Yoc2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgICAgIGxvZy53cml0ZShiImFm
dGVyX2NoYW5nZV92YWx1ZV9vZiIpCisKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmluZ1dlYkRy
aXZlcihkcml2ZXIsIEV2ZW50TGlzdGVuZXIoKSkKKyAgICBlZl9kcml2ZXIuZ2V0KHBhZ2VzLnVy
bCgicmVhZE9ubHlQYWdlLmh0bWwiKSkKKyAgICBlbGVtZW50ID0gZWZfZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9pZCgid3JpdGFibGVUZXh0SW5wdXQiKQorICAgIGVsZW1lbnQuY2xlYXIoKQorICAg
IGFzc2VydCAiIiA9PSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKworICAgIGVmX2Ry
aXZlci5nZXQocGFnZXMudXJsKCJqYXZhc2NyaXB0UGFnZS5odG1sIikpCisgICAga2V5UmVwb3J0
ZXIgPSBlZl9kcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIi
KQorICAgIGtleVJlcG9ydGVyLnNlbmRfa2V5cygiYWJjIGRlZiIpCisgICAgYXNzZXJ0IGtleVJl
cG9ydGVyLmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImFiYyBkZWYiCisKKyAgICBhc3NlcnQg
KGIiYmVmb3JlX2NoYW5nZV92YWx1ZV9vZiIKKyAgICAgICAgICAgIGIiYWZ0ZXJfY2hhbmdlX3Zh
bHVlX29mIgorICAgICAgICAgICAgYiJiZWZvcmVfY2hhbmdlX3ZhbHVlX29mIgorICAgICAgICAg
ICAgYiJhZnRlcl9jaGFuZ2VfdmFsdWVfb2YiKSA9PSBsb2cuZ2V0dmFsdWUoKQorCisKK2RlZiB0
ZXN0X3Nob3VsZF9maXJlX2ZpbmRfZXZlbnQoZHJpdmVyLCBsb2csIHBhZ2VzKToKKworICAgIGNs
YXNzIEV2ZW50TGlzdGVuZXIoQWJzdHJhY3RFdmVudExpc3RlbmVyKToKKworICAgICAgICBkZWYg
YmVmb3JlX2ZpbmQoc2VsZiwgYnksIHZhbHVlLCBkcml2ZXIpOgorICAgICAgICAgICAgbG9nLndy
aXRlKCgiYmVmb3JlX2ZpbmQgYnkgJXMgJXMiICUgKGJ5LCB2YWx1ZSkpLmVuY29kZSgpKQorCisg
ICAgICAgIGRlZiBhZnRlcl9maW5kKHNlbGYsIGJ5LCB2YWx1ZSwgZHJpdmVyKToKKyAgICAgICAg
ICAgIGxvZy53cml0ZSgoImFmdGVyX2ZpbmQgYnkgJXMgJXMiICUgKGJ5LCB2YWx1ZSkpLmVuY29k
ZSgpKQorCisgICAgZWZfZHJpdmVyID0gRXZlbnRGaXJpbmdXZWJEcml2ZXIoZHJpdmVyLCBFdmVu
dExpc3RlbmVyKCkpCisgICAgZWZfZHJpdmVyLmdldChwYWdlcy51cmwoInNpbXBsZVRlc3QuaHRt
bCIpKQorICAgIGUgPSBlZl9kcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJvbmVsaW5lIikKKyAg
ICBhc3NlcnQgIkEgc2luZ2xlIGxpbmUgb2YgdGV4dCIgPT0gZS50ZXh0CisKKyAgICBlID0gZWZf
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiL2h0bWwvYm9keS9wWzFdIikKKyAgICBhc3Nl
cnQgIkEgc2luZ2xlIGxpbmUgb2YgdGV4dCIgPT0gZS50ZXh0CisKKyAgICBlZl9kcml2ZXIuZ2V0
KHBhZ2VzLnVybCgiZnJhbWVzZXQuaHRtbCIpKQorICAgIGVsZW1lbnRzID0gZWZfZHJpdmVyLmZp
bmRfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKCJmcmFtZSNzaXh0aCIpCisgICAgYXNzZXJ0IDEg
PT0gbGVuKGVsZW1lbnRzKQorICAgIGFzc2VydCAiZnJhbWUiID09IGVsZW1lbnRzWzBdLnRhZ19u
YW1lLmxvd2VyKCkKKyAgICBhc3NlcnQgInNpeHRoIiA9PSBlbGVtZW50c1swXS5nZXRfYXR0cmli
dXRlKCJpZCIpCisKKyAgICBhc3NlcnQgKGIiYmVmb3JlX2ZpbmQgYnkgaWQgb25lbGluZSIKKyAg
ICAgICAgICAgIGIiYWZ0ZXJfZmluZCBieSBpZCBvbmVsaW5lIgorICAgICAgICAgICAgYiJiZWZv
cmVfZmluZCBieSB4cGF0aCAvaHRtbC9ib2R5L3BbMV0iCisgICAgICAgICAgICBiImFmdGVyX2Zp
bmQgYnkgeHBhdGggL2h0bWwvYm9keS9wWzFdIgorICAgICAgICAgICAgYiJiZWZvcmVfZmluZCBi
eSBjc3Mgc2VsZWN0b3IgZnJhbWUjc2l4dGgiCisgICAgICAgICAgICBiImFmdGVyX2ZpbmQgYnkg
Y3NzIHNlbGVjdG9yIGZyYW1lI3NpeHRoIikgPT0gbG9nLmdldHZhbHVlKCkKKworCitkZWYgdGVz
dF9zaG91bGRfY2FsbF9saXN0ZW5lcl93aGVuX2FuX2V4Y2VwdGlvbl9pc190aHJvd24oZHJpdmVy
LCBsb2csIHBhZ2VzKToKKworICAgIGNsYXNzIEV2ZW50TGlzdGVuZXIoQWJzdHJhY3RFdmVudExp
c3RlbmVyKToKKyAgICAgICAgZGVmIG9uX2V4Y2VwdGlvbihzZWxmLCBleGNlcHRpb24sIGRyaXZl
cik6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4Y2VwdGlvbiwgTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgbG9nLndyaXRlKGIiTm9TdWNoRWxlbWVudEV4Y2Vw
dGlvbiBpcyB0aHJvd24iKQorCisgICAgZWZfZHJpdmVyID0gRXZlbnRGaXJpbmdXZWJEcml2ZXIo
ZHJpdmVyLCBFdmVudExpc3RlbmVyKCkpCisgICAgZWZfZHJpdmVyLmdldChwYWdlcy51cmwoInNp
bXBsZVRlc3QuaHRtbCIpKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhj
ZXB0aW9uKToKKyAgICAgICAgZWZfZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImZvbyIpCisg
ICAgYXNzZXJ0IGIiTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpcyB0aHJvd24iID09IGxvZy5nZXR2
YWx1ZSgpCisKKworZGVmIHRlc3Rfc2hvdWxkX3Vud3JhcF9lbGVtZW50X2FyZ3Nfd2hlbl9jYWxs
aW5nX3NjcmlwdHMoZHJpdmVyLCBsb2csIHBhZ2VzKToKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZp
cmluZ1dlYkRyaXZlcihkcml2ZXIsIEFic3RyYWN0RXZlbnRMaXN0ZW5lcigpKQorICAgIGVmX2Ry
aXZlci5nZXQocGFnZXMudXJsKCJqYXZhc2NyaXB0UGFnZS5odG1sIikpCisgICAgYnV0dG9uID0g
ZWZfZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicGxhaW5CdXR0b24iKQorICAgIHZhbHVlID0g
ZWZfZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAiYXJndW1lbnRzWzBdWydmbGliYmxl
J10gPSBhcmd1bWVudHNbMF0uZ2V0QXR0cmlidXRlKCdpZCcpOyByZXR1cm4gYXJndW1lbnRzWzBd
WydmbGliYmxlJ10iLAorICAgICAgICBidXR0b24pCisgICAgYXNzZXJ0ICJwbGFpbkJ1dHRvbiIg
PT0gdmFsdWUKKworCitkZWYgdGVzdF9zaG91bGRfdW53cmFwX2VsZW1lbnRfYXJnc193aGVuX3N3
aXRjaGluZ19mcmFtZXMoZHJpdmVyLCBsb2csIHBhZ2VzKToKKyAgICBlZl9kcml2ZXIgPSBFdmVu
dEZpcmluZ1dlYkRyaXZlcihkcml2ZXIsIEFic3RyYWN0RXZlbnRMaXN0ZW5lcigpKQorICAgIGVm
X2RyaXZlci5nZXQocGFnZXMudXJsKCJpZnJhbWVzLmh0bWwiKSkKKyAgICBmcmFtZSA9IGVmX2Ry
aXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImlmcmFtZTEiKQorICAgIGVmX2RyaXZlci5zd2l0Y2hf
dG8uZnJhbWUoZnJhbWUpCisgICAgYXNzZXJ0ICJjbGljayBtZSEiID09IGVmX2RyaXZlci5maW5k
X2VsZW1lbnRfYnlfaWQoImltYWdlQnV0dG9uIikuZ2V0X2F0dHJpYnV0ZSgiYWx0IikKKworCitk
ZWYgdGVzdF9zaG91bGRfYmVfYWJsZV90b19hY2Nlc3Nfd3JhcHBlZF9pbnN0YW5jZV9mcm9tX2V2
ZW50X2NhbGxzKGRyaXZlcik6CisKKyAgICBjbGFzcyBFdmVudExpc3RlbmVyKEFic3RyYWN0RXZl
bnRMaXN0ZW5lcik6CisgICAgICAgIGRlZiBiZWZvcmVfbmF2aWdhdGVfdG8odXJsLCBkKToKKyAg
ICAgICAgICAgIGFzc2VydCBkcml2ZXIgaXMgZAorCisgICAgZWZfZHJpdmVyID0gRXZlbnRGaXJp
bmdXZWJEcml2ZXIoZHJpdmVyLCBFdmVudExpc3RlbmVyKCkpCisgICAgd3JhcHBlZF9kcml2ZXIg
PSBlZl9kcml2ZXIud3JhcHBlZF9kcml2ZXIKKyAgICBhc3NlcnQgZHJpdmVyIGlzIHdyYXBwZWRf
ZHJpdmVyCisKKworZGVmIHRlc3RfdXNpbmdfa3dhcmdzKGRyaXZlciwgcGFnZXMpOgorICAgIGVm
X2RyaXZlciA9IEV2ZW50RmlyaW5nV2ViRHJpdmVyKGRyaXZlciwgQWJzdHJhY3RFdmVudExpc3Rl
bmVyKCkpCisgICAgZWZfZHJpdmVyLmdldChwYWdlcy51cmwoImphdmFzY3JpcHRQYWdlLmh0bWwi
KSkKKyAgICBlZl9kcml2ZXIuZ2V0X2Nvb2tpZShuYW1lPSJjb29raWVfbmFtZSIpCisgICAgZWxl
bWVudCA9IGVmX2RyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInBsYWluQnV0dG9uIikKKyAgICBl
bGVtZW50LmdldF9hdHRyaWJ1dGUobmFtZT0iaWQiKQorCisKK2RlZiB0ZXN0X21pc3NpbmdfYXR0
cmlidXRlc19yYWlzZV9lcnJvcihkcml2ZXIsIHBhZ2VzKToKKyAgICBlZl9kcml2ZXIgPSBFdmVu
dEZpcmluZ1dlYkRyaXZlcihkcml2ZXIsIEFic3RyYWN0RXZlbnRMaXN0ZW5lcigpKQorCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgZWZfZHJpdmVyLmF0
dHJpYnV0ZV9zaG91bGRfbm90X2V4aXN0CisKKyAgICBlZl9kcml2ZXIuZ2V0KHBhZ2VzLnVybCgi
cmVhZE9ubHlQYWdlLmh0bWwiKSkKKyAgICBlbGVtZW50ID0gZWZfZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9pZCgid3JpdGFibGVUZXh0SW5wdXQiKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0
dHJpYnV0ZUVycm9yKToKKyAgICAgICAgZWxlbWVudC5hdHRyaWJ1dGVfc2hvdWxkX25vdF9leGlz
dApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC91
bml0L19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC91bml0L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5hNWIxZTZmODVhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3QvdW5pdC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExp
Y2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9u
ZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9U
SUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5m
b3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vu
c2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0
IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29w
eSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl
cy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3Ig
YWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM
aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FS
UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp
bXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3QvdW5p
dC9zZWxlbml1bS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3QvdW5pdC9zZWxlbml1bS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3VuaXQvc2VsZW5pdW0vX19pbml0X18u
cHkKQEAgLTAsMCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3VuaXQvc2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9fLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3NlbGVuaXVt
L3dlYmRyaXZlci9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3VuaXQvc2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9fLnB5
CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29u
c2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBh
Z3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMg
d29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93
bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9jaHJvbWUvY2hyb21l
X29wdGlvbnNfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3VuaXQvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9jaHJvbWVfb3B0aW9uc190ZXN0cy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDgxNTZlZWY0ODUKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3VuaXQvc2VsZW5pdW0vd2ViZHJpdmVyL2Nocm9tZS9jaHJvbWVfb3B0aW9uc190ZXN0cy5weQpA
QCAtMCwwICsxLDE0NSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25z
ZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFn
cmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3
b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3du
ZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBB
cGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5v
dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2Uu
ICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8v
d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVk
IGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBk
aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMg
SVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lO
RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisj
IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMK
KyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gb3MgaW1wb3J0IHBhdGgKKworaW1wb3J0IHB5
dGVzdAorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jaHJvbWUub3B0aW9ucyBpbXBvcnQgT3B0
aW9ucworCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG9wdGlvbnMoKToKKyAgICByZXR1cm4gT3B0
aW9ucygpCisKKworZGVmIHRlc3Rfc2V0X2JpbmFyeV9sb2NhdGlvbihvcHRpb25zKToKKyAgICBv
cHRpb25zLmJpbmFyeV9sb2NhdGlvbiA9ICcvZm9vL2JhcicKKyAgICBhc3NlcnQgb3B0aW9ucy5f
YmluYXJ5X2xvY2F0aW9uID09ICcvZm9vL2JhcicKKworCitkZWYgdGVzdF9nZXRfYmluYXJ5X2xv
Y2F0aW9uKG9wdGlvbnMpOgorICAgIG9wdGlvbnMuX2JpbmFyeV9sb2NhdGlvbiA9ICcvZm9vL2Jh
cicKKyAgICBhc3NlcnQgb3B0aW9ucy5iaW5hcnlfbG9jYXRpb24gPT0gJy9mb28vYmFyJworCisK
K2RlZiB0ZXN0X3NldF9kZWJ1Z2dlcl9hZGRyZXNzKG9wdGlvbnMpOgorICAgIG9wdGlvbnMuZGVi
dWdnZXJfYWRkcmVzcyA9ICcvZm9vL2JhcicKKyAgICBhc3NlcnQgb3B0aW9ucy5fZGVidWdnZXJf
YWRkcmVzcyA9PSAnL2Zvby9iYXInCisKKworZGVmIHRlc3RfZ2V0X2RlYnVnZ2VyX2FkZHJlc3Mo
b3B0aW9ucyk6CisgICAgb3B0aW9ucy5fZGVidWdnZXJfYWRkcmVzcyA9ICcvZm9vL2JhcicKKyAg
ICBhc3NlcnQgb3B0aW9ucy5kZWJ1Z2dlcl9hZGRyZXNzID09ICcvZm9vL2JhcicKKworCitkZWYg
dGVzdF9hZGRfYXJndW1lbnRzKG9wdGlvbnMpOgorICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCdm
b28nKQorICAgIGFzc2VydCAnZm9vJyBpbiBvcHRpb25zLl9hcmd1bWVudHMKKworCitkZWYgdGVz
dF9nZXRfYXJndW1lbnRzKG9wdGlvbnMpOgorICAgIG9wdGlvbnMuX2FyZ3VtZW50cyA9IFsnZm9v
J10KKyAgICBhc3NlcnQgJ2ZvbycgaW4gb3B0aW9ucy5hcmd1bWVudHMKKworCitkZWYgdGVzdF9y
YWlzZXNfZXhjZXB0aW9uX2lmX2FyZ3VtZW50X2lzX2ZhbHN5KG9wdGlvbnMpOgorICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQo
Tm9uZSkKKworCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2lmX2V4dGVuc2lvbl9pc19mYWxz
eShvcHRpb25zKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAg
IG9wdGlvbnMuYWRkX2V4dGVuc2lvbihOb25lKQorCisKK2RlZiB0ZXN0X3JhaXNlc19leGNlcHRp
b25faWZfZXh0ZW5zaW9uX2RvZXNfbm90X2V4aXN0KG9wdGlvbnMpOgorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhJT0Vycm9yKToKKyAgICAgICAgb3B0aW9ucy5hZGRfZXh0ZW5zaW9uKHBhdGguam9p
bihwYXRoLmFic3BhdGgocGF0aC5jdXJkaXIpLCAnZmFrZXBhdGgnKSkKKworCitkZWYgdGVzdF9h
ZGRfZXh0ZW5zaW9uKG9wdGlvbnMsIG1vY2tlcik6CisgICAgbW9ja2VyLnBhdGNoKCdvcy5wYXRo
LmV4aXN0cycpLnJldHVybl92YWx1ZSA9IFRydWUKKyAgICBvcHRpb25zLmFkZF9leHRlbnNpb24o
Jy9mb28vYmFyJykKKyAgICBhc3NlcnQgJy9mb28vYmFyJyBpbiBvcHRpb25zLl9leHRlbnNpb25f
ZmlsZXMKKworCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2lmX2VuY29kZWRfZXh0ZW5zaW9u
X2lzX2ZhbHN5KG9wdGlvbnMpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToK
KyAgICAgICAgb3B0aW9ucy5hZGRfZW5jb2RlZF9leHRlbnNpb24oTm9uZSkKKworCitkZWYgdGVz
dF9hZGRfZW5jb2RlZF9leHRlbnNpb24ob3B0aW9ucyk6CisgICAgb3B0aW9ucy5hZGRfZW5jb2Rl
ZF9leHRlbnNpb24oJy9mb28vYmFyJykKKyAgICBhc3NlcnQgJy9mb28vYmFyJyBpbiBvcHRpb25z
Ll9leHRlbnNpb25zCisKKworZGVmIHRlc3RfZ2V0X2V4dGVuc2lvbnNfZnJvbV9leHRlbnNpb25f
ZmlsZXMob3B0aW9ucywgbW9ja2VyKToKKyAgICBtb2NrZXIucGF0Y2goCisgICAgICAgICdzZWxl
bml1bS53ZWJkcml2ZXIuY2hyb21lLm9wdGlvbnMub3BlbicuZm9ybWF0KF9fbmFtZV9fKSkucmV0
dXJuX3ZhbHVlID0gb3BlbignL2Rldi9udWxsJykKKyAgICBtb2NrZXIucGF0Y2goJ2Jhc2U2NC5i
NjRlbmNvZGUnKS5yZXR1cm5fdmFsdWUgPSAnZm9vJy5lbmNvZGUoKQorICAgIG9wdGlvbnMuX2V4
dGVuc2lvbl9maWxlcyA9IFsnZm9vJ10KKyAgICBhc3NlcnQgJ2ZvbycgaW4gb3B0aW9ucy5leHRl
bnNpb25zCisKKworZGVmIHRlc3RfZ2V0X2V4dGVuc2lvbnNfZnJvbV9lbmNvZGVkX2V4dGVuc2lv
bnMob3B0aW9ucywgbW9ja2VyKToKKyAgICBvcHRpb25zLl9leHRlbnNpb25zID0gWydmb28nXQor
ICAgIGFzc2VydCAnZm9vJyBpbiBvcHRpb25zLmV4dGVuc2lvbnMKKworCitkZWYgdGVzdF9hZGRf
ZXhwZXJpbWVudGFsX29wdGlvbnMob3B0aW9ucyk6CisgICAgb3B0aW9ucy5hZGRfZXhwZXJpbWVu
dGFsX29wdGlvbignZm9vJywgJ2JhcicpCisgICAgYXNzZXJ0IG9wdGlvbnMuX2V4cGVyaW1lbnRh
bF9vcHRpb25zWydmb28nXSA9PSAnYmFyJworCisKK2RlZiB0ZXN0X2dldF9leHBlcmltZW50YWxf
b3B0aW9ucyhvcHRpb25zKToKKyAgICBvcHRpb25zLl9leHBlcmltZW50YWxfb3B0aW9ucyA9IHsn
Zm9vJzogJ2Jhcid9CisgICAgYXNzZXJ0IG9wdGlvbnMuZXhwZXJpbWVudGFsX29wdGlvbnNbJ2Zv
byddID09ICdiYXInCisKKworZGVmIHRlc3Rfc2V0X2hlYWRsZXNzKG9wdGlvbnMpOgorICAgIG9w
dGlvbnMuc2V0X2hlYWRsZXNzKCkKKyAgICBhc3NlcnQgJy0taGVhZGxlc3MnIGluIG9wdGlvbnMu
X2FyZ3VtZW50cworICAgIGFzc2VydCAnLS1kaXNhYmxlLWdwdScgaW4gb3B0aW9ucy5fYXJndW1l
bnRzCisKKworZGVmIHRlc3RfdW5zZXRfaGVhZGxlc3Mob3B0aW9ucyk6CisgICAgb3B0aW9ucy5f
YXJndW1lbnRzID0gWyctLWhlYWRsZXNzJywgJy0tZGlzYWJsZS1ncHUnXQorICAgIG9wdGlvbnMu
c2V0X2hlYWRsZXNzKEZhbHNlKQorICAgIGFzc2VydCAnLS1oZWFkbGVzcycgbm90IGluIG9wdGlv
bnMuX2FyZ3VtZW50cworICAgIGFzc2VydCAnLS1kaXNhYmxlLWdwdScgbm90IGluIG9wdGlvbnMu
X2FyZ3VtZW50cworCisKK2RlZiB0ZXN0X2dldF9oZWFkbGVzcyhvcHRpb25zKToKKyAgICBvcHRp
b25zLl9hcmd1bWVudHMgPSBbJy0taGVhZGxlc3MnXQorICAgIGFzc2VydCBvcHRpb25zLmhlYWRs
ZXNzCisKKworZGVmIHRlc3RfY3JlYXRlc19jYXBhYmlsaXRpZXMob3B0aW9ucyk6CisgICAgb3B0
aW9ucy5fYXJndW1lbnRzID0gWydmb28nXQorICAgIG9wdGlvbnMuX2JpbmFyeV9sb2NhdGlvbiA9
ICcvYmFyJworICAgIG9wdGlvbnMuX2V4dGVuc2lvbnMgPSBbJ2JheiddCisgICAgb3B0aW9ucy5f
ZGVidWdnZXJfYWRkcmVzcyA9ICcvZm9vL2JhcicKKyAgICBvcHRpb25zLl9leHBlcmltZW50YWxf
b3B0aW9ucyA9IHsnZm9vJzogJ2Jhcid9CisgICAgY2FwcyA9IG9wdGlvbnMudG9fY2FwYWJpbGl0
aWVzKCkKKyAgICBvcHRzID0gY2Fwcy5nZXQoT3B0aW9ucy5LRVkpCisgICAgYXNzZXJ0IG9wdHMK
KyAgICBhc3NlcnQgJ2ZvbycgaW4gb3B0c1snYXJncyddCisgICAgYXNzZXJ0IG9wdHNbJ2JpbmFy
eSddID09ICcvYmFyJworICAgIGFzc2VydCAnYmF6JyBpbiBvcHRzWydleHRlbnNpb25zJ10KKyAg
ICBhc3NlcnQgb3B0c1snZGVidWdnZXJBZGRyZXNzJ10gPT0gJy9mb28vYmFyJworICAgIGFzc2Vy
dCBvcHRzWydmb28nXSA9PSAnYmFyJwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94L2ZpcmVm
b3hfb3B0aW9uc190ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3QvdW5pdC9zZWxlbml1bS93ZWJkcml2ZXIvZmlyZWZveC9maXJlZm94X29wdGlvbnNfdGVz
dHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA1MzgyNTdhMTM4
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94L2ZpcmVmb3hfb3B0aW9uc190ZXN0
cy5weQpAQCAtMCwwICsxLDE1MiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCitm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJveHkgaW1wb3J0IFByb3h5LCBQcm94eVR5
cGUKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZmlyZWZveF9iaW5hcnkgaW1wb3J0
IEZpcmVmb3hCaW5hcnkKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmZpcmVmb3guZmlyZWZveF9w
cm9maWxlIGltcG9ydCBGaXJlZm94UHJvZmlsZQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuZmly
ZWZveC5vcHRpb25zIGltcG9ydCBPcHRpb25zCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgb3B0
aW9ucygpOgorICAgIHJldHVybiBPcHRpb25zKCkKKworCitkZWYgdGVzdF9zZXRfYmluYXJ5X3dp
dGhfZmlyZWZveF9iaW5hcnkob3B0aW9ucyk6CisgICAgYmluYXJ5ID0gRmlyZWZveEJpbmFyeSgn
Zm9vJykKKyAgICBvcHRpb25zLmJpbmFyeSA9IGJpbmFyeQorICAgIGFzc2VydCBvcHRpb25zLl9i
aW5hcnkgPT0gYmluYXJ5CisKKworZGVmIHRlc3Rfc2V0X2JpbmFyeV93aXRoX3BhdGgob3B0aW9u
cyk6CisgICAgb3B0aW9ucy5iaW5hcnkgPSAnL2ZvbycKKyAgICBhc3NlcnQgb3B0aW9ucy5fYmlu
YXJ5Ll9zdGFydF9jbWQgPT0gJy9mb28nCisKKworZGVmIHRlc3RfZ2V0X2JpbmFyeShvcHRpb25z
KToKKyAgICBvcHRpb25zLmJpbmFyeSA9ICcvZm9vJworICAgIGFzc2VydCBvcHRpb25zLmJpbmFy
eS5fc3RhcnRfY21kID09ICcvZm9vJworCisKK2RlZiB0ZXN0X3NldF9iaW5hcnlfbG9jYXRpb24o
b3B0aW9ucyk6CisgICAgb3B0aW9ucy5iaW5hcnlfbG9jYXRpb24gPSAnL2ZvbycKKyAgICBhc3Nl
cnQgb3B0aW9ucy5fYmluYXJ5Ll9zdGFydF9jbWQgPT0gJy9mb28nCisKKworZGVmIHRlc3RfZ2V0
X2JpbmFyeV9sb2NhdGlvbihvcHRpb25zKToKKyAgICBvcHRpb25zLl9iaW5hcnkgPSBGaXJlZm94
QmluYXJ5KCcvZm9vJykKKyAgICBhc3NlcnQgb3B0aW9ucy5iaW5hcnlfbG9jYXRpb24gPT0gJy9m
b28nCisKKworZGVmIHRlc3Rfc2V0X3ByZWZlcmVuY2Uob3B0aW9ucyk6CisgICAgb3B0aW9ucy5z
ZXRfcHJlZmVyZW5jZSgnZm9vJywgJ2JhcicpCisgICAgYXNzZXJ0IG9wdGlvbnMuX3ByZWZlcmVu
Y2VzWydmb28nXSA9PSAnYmFyJworCisKK2RlZiB0ZXN0X2dldF9wcmVmZXJlbmNlcyhvcHRpb25z
KToKKyAgICBvcHRpb25zLl9wcmVmZXJlbmNlcyA9IHsnZm9vJzogJ2Jhcid9CisgICAgYXNzZXJ0
IG9wdGlvbnMucHJlZmVyZW5jZXNbJ2ZvbyddID09ICdiYXInCisKKworZGVmIHRlc3Rfc2V0X3By
b3h5KG9wdGlvbnMpOgorICAgIHByb3h5ID0gUHJveHkoeydwcm94eVR5cGUnOiBQcm94eVR5cGUu
TUFOVUFMfSkKKyAgICBvcHRpb25zLnByb3h5ID0gcHJveHkKKyAgICBhc3NlcnQgb3B0aW9ucy5f
cHJveHkgPT0gcHJveHkKKworCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2lmX3Byb3h5X2lz
X25vdF9wcm94eV9vYmplY3Qob3B0aW9ucyk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFs
aWRBcmd1bWVudEV4Y2VwdGlvbik6CisgICAgICAgIG9wdGlvbnMucHJveHkgPSAnZm9vJworCisK
K2RlZiB0ZXN0X2dldF9wcm94eShvcHRpb25zKToKKyAgICBvcHRpb25zLl9wcm94eSA9ICdmb28n
CisgICAgYXNzZXJ0IG9wdGlvbnMucHJveHkgPT0gJ2ZvbycKKworCitkZWYgdGVzdF9zZXRfcHJv
ZmlsZV93aXRoX2ZpcmVmb3hfcHJvZmlsZShvcHRpb25zKToKKyAgICBwcm9maWxlID0gRmlyZWZv
eFByb2ZpbGUoKQorICAgIG9wdGlvbnMucHJvZmlsZSA9IHByb2ZpbGUKKyAgICBhc3NlcnQgb3B0
aW9ucy5fcHJvZmlsZSA9PSBwcm9maWxlCisKKworZGVmIHRlc3Rfc2V0X3Byb2ZpbGVfd2l0aF9w
YXRoKG9wdGlvbnMpOgorICAgIG9wdGlvbnMucHJvZmlsZSA9IE5vbmUKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShvcHRpb25zLl9wcm9maWxlLCBGaXJlZm94UHJvZmlsZSkKKworCitkZWYgdGVzdF9n
ZXRfcHJvZmlsZShvcHRpb25zKToKKyAgICBvcHRpb25zLl9wcm9maWxlID0gJ2ZvbycKKyAgICBh
c3NlcnQgb3B0aW9ucy5wcm9maWxlID09ICdmb28nCisKKworZGVmIHRlc3RfYWRkX2FyZ3VtZW50
cyhvcHRpb25zKToKKyAgICBvcHRpb25zLmFkZF9hcmd1bWVudCgnZm9vJykKKyAgICBhc3NlcnQg
J2ZvbycgaW4gb3B0aW9ucy5fYXJndW1lbnRzCisKKworZGVmIHRlc3RfZ2V0X2FyZ3VtZW50cyhv
cHRpb25zKToKKyAgICBvcHRpb25zLl9hcmd1bWVudHMgPSBbJ2ZvbyddCisgICAgYXNzZXJ0ICdm
b28nIGluIG9wdGlvbnMuYXJndW1lbnRzCisKKworZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9p
Zl9hcmd1bWVudF9pc19mYWxzeShvcHRpb25zKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFs
dWVFcnJvcik6CisgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KE5vbmUpCisKKworZGVmIHRl
c3Rfc2V0X2xvZ19sZXZlbChvcHRpb25zKToKKyAgICBvcHRpb25zLmxvZy5sZXZlbCA9ICdkZWJ1
ZycKKyAgICBhc3NlcnQgb3B0aW9ucy5sb2cubGV2ZWwgPT0gJ2RlYnVnJworCisKK2RlZiB0ZXN0
X3NldF9oZWFkbGVzcyhvcHRpb25zKToKKyAgICBvcHRpb25zLnNldF9oZWFkbGVzcygpCisgICAg
YXNzZXJ0ICctaGVhZGxlc3MnIGluIG9wdGlvbnMuX2FyZ3VtZW50cworCisKK2RlZiB0ZXN0X3Vu
c2V0X2hlYWRsZXNzKG9wdGlvbnMpOgorICAgIG9wdGlvbnMuX2FyZ3VtZW50cyA9IFsnLWhlYWRs
ZXNzJ10KKyAgICBvcHRpb25zLnNldF9oZWFkbGVzcyhGYWxzZSkKKyAgICBhc3NlcnQgJy1oZWFk
bGVzcycgbm90IGluIG9wdGlvbnMuX2FyZ3VtZW50cworCisKK2RlZiB0ZXN0X2dldF9oZWFkbGVz
cyhvcHRpb25zKToKKyAgICBvcHRpb25zLl9hcmd1bWVudHMgPSBbJy1oZWFkbGVzcyddCisgICAg
YXNzZXJ0IG9wdGlvbnMuaGVhZGxlc3MKKworCitkZWYgdGVzdF9jcmVhdGVzX2NhcGFiaWxpdGll
cyhvcHRpb25zKToKKyAgICBwcm9maWxlID0gRmlyZWZveFByb2ZpbGUoKQorICAgIG9wdGlvbnMu
X2FyZ3VtZW50cyA9IFsnZm9vJ10KKyAgICBvcHRpb25zLl9iaW5hcnkgPSBGaXJlZm94QmluYXJ5
KCcvYmFyJykKKyAgICBvcHRpb25zLl9wcmVmZXJlbmNlcyA9IHsnZm9vJzogJ2Jhcid9CisgICAg
b3B0aW9ucy5fcHJveHkgPSBQcm94eSh7J3Byb3h5VHlwZSc6IFByb3h5VHlwZS5NQU5VQUx9KQor
ICAgIG9wdGlvbnMuX3Byb2ZpbGUgPSBwcm9maWxlCisgICAgb3B0aW9ucy5sb2cubGV2ZWwgPSAn
ZGVidWcnCisgICAgY2FwcyA9IG9wdGlvbnMudG9fY2FwYWJpbGl0aWVzKCkKKyAgICBvcHRzID0g
Y2Fwcy5nZXQoT3B0aW9ucy5LRVkpCisgICAgYXNzZXJ0IG9wdHMKKyAgICBhc3NlcnQgJ2Zvbycg
aW4gb3B0c1snYXJncyddCisgICAgYXNzZXJ0IG9wdHNbJ2JpbmFyeSddID09ICcvYmFyJworICAg
IGFzc2VydCBvcHRzWydwcmVmcyddWydmb28nXSA9PSAnYmFyJworICAgIGFzc2VydCBvcHRzWydw
cm9maWxlJ10gPT0gcHJvZmlsZS5lbmNvZGVkCisgICAgYXNzZXJ0IG9wdHNbJ3Byb3h5J11bJ3By
b3h5VHlwZSddID09IFByb3h5VHlwZS5NQU5VQUxbJ3N0cmluZyddCisgICAgYXNzZXJ0IG9wdHNb
J2xvZyddWydsZXZlbCddID09ICdkZWJ1ZycKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3QvdW5pdC9zZWxlbml1bS93ZWJkcml2ZXIvaWUvX19pbml0
X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3VuaXQvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2llL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9pZS90ZXN0X2ll
X29wdGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Vu
aXQvc2VsZW5pdW0vd2ViZHJpdmVyL2llL3Rlc3RfaWVfb3B0aW9ucy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWY2ZGQxYWM0NjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3VuaXQvc2VsZW5pdW0v
d2ViZHJpdmVyL2llL3Rlc3RfaWVfb3B0aW9ucy5weQpAQCAtMCwwICsxLDE3NCBAQAorIyBMaWNl
bnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUK
KyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElD
RSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9y
bWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNl
cyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAy
LjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBp
biBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkg
b2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv
TElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFn
cmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGlj
ZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJB
TlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1w
bGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVy
bmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisK
KworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuaWUub3B0aW9ucyBpbXBvcnQgT3B0aW9ucywgRWxl
bWVudFNjcm9sbEJlaGF2aW9yCitpbXBvcnQgcHl0ZXN0CisKK1RJTUVPVVQgPSAzMAorCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIG9wdHMoKToKKyAgICB5aWVsZCBPcHRpb25zKCkKKworCitkZWYg
dGVzdF9hcmd1bWVudHMob3B0cyk6CisgICAgYXJnMSA9ICctaycKKyAgICBhcmcyID0gJy1wcml2
YXRlJworICAgIG9wdHMuYWRkX2FyZ3VtZW50KGFyZzEpCisgICAgb3B0cy5hZGRfYXJndW1lbnQo
YXJnMikKKyAgICBhc3NlcnQgYXJnMSBpbiBvcHRzLmFyZ3VtZW50cworICAgIGFzc2VydCBhcmcy
IGluIG9wdHMuYXJndW1lbnRzCisKKworZGVmIHRlc3RfYnJvd3Nlcl9hdHRhY2hfdGltZW91dChv
cHRzKToKKyAgICBvcHRzLmJyb3dzZXJfYXR0YWNoX3RpbWVvdXQgPSBUSU1FT1VUCisgICAgYXNz
ZXJ0IG9wdHMuYnJvd3Nlcl9hdHRhY2hfdGltZW91dCA9PSBUSU1FT1VUCisgICAgYXNzZXJ0IG9w
dHMub3B0aW9ucy5nZXQoT3B0aW9ucy5CUk9XU0VSX0FUVEFDSF9USU1FT1VUKSA9PSBUSU1FT1VU
CisKKworZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3JfaW52YWxpZF9icm93c2VyX2F0dGFj
aF90aW1lb3V0KG9wdHMpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAg
ICAgICAgb3B0cy5icm93c2VyX2F0dGFjaF90aW1lb3V0ID0gJ2ZvbycKKworCitkZWYgdGVzdF9l
bGVtZW50X3Njcm9sbF9iZWhhdmlvcihvcHRzKToKKyAgICBvcHRzLmVsZW1lbnRfc2Nyb2xsX2Jl
aGF2aW9yID0gRWxlbWVudFNjcm9sbEJlaGF2aW9yLkJPVFRPTQorICAgIGFzc2VydCBvcHRzLmVs
ZW1lbnRfc2Nyb2xsX2JlaGF2aW9yID09IEVsZW1lbnRTY3JvbGxCZWhhdmlvci5CT1RUT00KKyAg
ICBhc3NlcnQgb3B0cy5vcHRpb25zLmdldChPcHRpb25zLkVMRU1FTlRfU0NST0xMX0JFSEFWSU9S
KSA9PSBFbGVtZW50U2Nyb2xsQmVoYXZpb3IuQk9UVE9NCisKKworZGVmIHRlc3RfZW5zdXJlX2Ns
ZWFuX3Nlc3Npb24ob3B0cyk6CisgICAgb3B0cy5lbnN1cmVfY2xlYW5fc2Vzc2lvbiA9IFRydWUK
KyAgICBhc3NlcnQgb3B0cy5lbnN1cmVfY2xlYW5fc2Vzc2lvbiBpcyBUcnVlCisgICAgYXNzZXJ0
IG9wdHMub3B0aW9ucy5nZXQoT3B0aW9ucy5FTlNVUkVfQ0xFQU5fU0VTU0lPTikgaXMgVHJ1ZQor
CisKK2RlZiB0ZXN0X2ZpbGVfdXBsb2FkX2RpYWxvZ190aW1lb3V0KG9wdHMpOgorICAgIG9wdHMu
ZmlsZV91cGxvYWRfZGlhbG9nX3RpbWVvdXQgPSBUSU1FT1VUCisgICAgYXNzZXJ0IG9wdHMuZmls
ZV91cGxvYWRfZGlhbG9nX3RpbWVvdXQgaXMgVElNRU9VVAorICAgIGFzc2VydCBvcHRzLm9wdGlv
bnMuZ2V0KE9wdGlvbnMuRklMRV9VUExPQURfRElBTE9HX1RJTUVPVVQpIGlzIFRJTUVPVVQKKwor
CitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9maWxlX3VwbG9hZF9kaWFsb2dfdGltZW91
dChvcHRzKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgIG9w
dHMuZmlsZV91cGxvYWRfZGlhbG9nX3RpbWVvdXQgPSAnZm9vJworCisKK2RlZiB0ZXN0X2ZvcmNl
X2NyZWF0ZV9wcm9jZXNzX2FwaShvcHRzKToKKyAgICBvcHRzLmZvcmNlX2NyZWF0ZV9wcm9jZXNz
X2FwaSA9IFRydWUKKyAgICBhc3NlcnQgb3B0cy5mb3JjZV9jcmVhdGVfcHJvY2Vzc19hcGkgaXMg
VHJ1ZQorICAgIGFzc2VydCBvcHRzLm9wdGlvbnMuZ2V0KE9wdGlvbnMuRk9SQ0VfQ1JFQVRFX1BS
T0NFU1NfQVBJKSBpcyBUcnVlCisKKworZGVmIHRlc3RfZm9yY2Vfc2hlbGxfd2luZG93c19hcGko
b3B0cyk6CisgICAgb3B0cy5mb3JjZV9zaGVsbF93aW5kb3dzX2FwaSA9IFRydWUKKyAgICBhc3Nl
cnQgb3B0cy5mb3JjZV9zaGVsbF93aW5kb3dzX2FwaSBpcyBUcnVlCisgICAgYXNzZXJ0IG9wdHMu
b3B0aW9ucy5nZXQoT3B0aW9ucy5GT1JDRV9TSEVMTF9XSU5ET1dTX0FQSSkgaXMgVHJ1ZQorCisK
K2RlZiB0ZXN0X2Z1bGxfcGFnZV9zY3JlZW5zaG90KG9wdHMpOgorICAgIG9wdHMuZnVsbF9wYWdl
X3NjcmVlbnNob3QgPSBUcnVlCisgICAgYXNzZXJ0IG9wdHMuZnVsbF9wYWdlX3NjcmVlbnNob3Qg
aXMgVHJ1ZQorICAgIGFzc2VydCBvcHRzLm9wdGlvbnMuZ2V0KE9wdGlvbnMuRlVMTF9QQUdFX1ND
UkVFTlNIT1QpIGlzIFRydWUKKworCitkZWYgdGVzdF9pZ25vcmVfcHJvdGVjdGVkX21vZGVfc2V0
dGluZ3Mob3B0cyk6CisgICAgb3B0cy5pZ25vcmVfcHJvdGVjdGVkX21vZGVfc2V0dGluZ3MgPSBU
cnVlCisgICAgYXNzZXJ0IG9wdHMuaWdub3JlX3Byb3RlY3RlZF9tb2RlX3NldHRpbmdzIGlzIFRy
dWUKKyAgICBhc3NlcnQgb3B0cy5vcHRpb25zLmdldChPcHRpb25zLklHTk9SRV9QUk9URUNURURf
TU9ERV9TRVRUSU5HUykgaXMgVHJ1ZQorCisKK2RlZiB0ZXN0X2lnbm9yZV96b29tX2xldmVsKG9w
dHMpOgorICAgIG9wdHMuaWdub3JlX3pvb21fbGV2ZWwgPSBUcnVlCisgICAgYXNzZXJ0IG9wdHMu
aWdub3JlX3pvb21fbGV2ZWwgaXMgVHJ1ZQorICAgIGFzc2VydCBvcHRzLm9wdGlvbnMuZ2V0KE9w
dGlvbnMuSUdOT1JFX1pPT01fTEVWRUwpIGlzIFRydWUKKworCitkZWYgdGVzdF9pbml0aWFsX2Jy
b3dzZXJfdXJsKG9wdHMpOgorICAgIHVybCA9ICdodHRwOi8vd3d3LnNlbGVuaXVtaHEub3JnJwor
ICAgIG9wdHMuaW5pdGlhbF9icm93c2VyX3VybCA9IHVybAorICAgIGFzc2VydCBvcHRzLmluaXRp
YWxfYnJvd3Nlcl91cmwgPT0gdXJsCisgICAgYXNzZXJ0IG9wdHMub3B0aW9ucy5nZXQoT3B0aW9u
cy5JTklUSUFMX0JST1dTRVJfVVJMKSA9PSB1cmwKKworCitkZWYgdGVzdF9uYXRpdmVfZXZlbnRz
KG9wdHMpOgorICAgIG9wdHMubmF0aXZlX2V2ZW50cyA9IFRydWUKKyAgICBhc3NlcnQgb3B0cy5u
YXRpdmVfZXZlbnRzIGlzIFRydWUKKyAgICBhc3NlcnQgb3B0cy5vcHRpb25zLmdldChPcHRpb25z
Lk5BVElWRV9FVkVOVFMpIGlzIFRydWUKKworCitkZWYgdGVzdF9wZXJzaXN0ZW50X2hvdmVyKG9w
dHMpOgorICAgIG9wdHMucGVyc2lzdGVudF9ob3ZlciA9IFRydWUKKyAgICBhc3NlcnQgb3B0cy5w
ZXJzaXN0ZW50X2hvdmVyIGlzIFRydWUKKyAgICBhc3NlcnQgb3B0cy5vcHRpb25zLmdldChPcHRp
b25zLlBFUlNJU1RFTlRfSE9WRVIpIGlzIFRydWUKKworCitkZWYgdGVzdF9yZXF1aXJlX3dpbmRv
d19mb2N1cyhvcHRzKToKKyAgICBvcHRzLnJlcXVpcmVfd2luZG93X2ZvY3VzID0gVHJ1ZQorICAg
IGFzc2VydCBvcHRzLnJlcXVpcmVfd2luZG93X2ZvY3VzIGlzIFRydWUKKyAgICBhc3NlcnQgb3B0
cy5vcHRpb25zLmdldChPcHRpb25zLlJFUVVJUkVfV0lORE9XX0ZPQ1VTKSBpcyBUcnVlCisKKwor
ZGVmIHRlc3RfdXNlX3Blcl9wcm9jZXNzX3Byb3h5KG9wdHMpOgorICAgIG9wdHMudXNlX3Blcl9w
cm9jZXNzX3Byb3h5ID0gVHJ1ZQorICAgIGFzc2VydCBvcHRzLnVzZV9wZXJfcHJvY2Vzc19wcm94
eSBpcyBUcnVlCisgICAgYXNzZXJ0IG9wdHMub3B0aW9ucy5nZXQoT3B0aW9ucy5VU0VfUEVSX1BS
T0NFU1NfUFJPWFkpIGlzIFRydWUKKworCitkZWYgdGVzdF92YWxpZGF0ZV9jb29raWVfZG9jdW1l
bnRfdHlwZShvcHRzKToKKyAgICBvcHRzLnZhbGlkYXRlX2Nvb2tpZV9kb2N1bWVudF90eXBlID0g
VHJ1ZQorICAgIGFzc2VydCBvcHRzLnZhbGlkYXRlX2Nvb2tpZV9kb2N1bWVudF90eXBlIGlzIFRy
dWUKKyAgICBhc3NlcnQgb3B0cy5vcHRpb25zLmdldChPcHRpb25zLlZBTElEQVRFX0NPT0tJRV9E
T0NVTUVOVF9UWVBFKSBpcyBUcnVlCisKKworZGVmIHRlc3RfYWRkaXRpb25hbF9vcHRpb25zKG9w
dHMpOgorICAgIG9wdHMuYWRkX2FkZGl0aW9uYWxfb3B0aW9uKCdmb28nLCAnYmFyJykKKyAgICBh
c3NlcnQgb3B0cy5hZGRpdGlvbmFsX29wdGlvbnMuZ2V0KCdmb28nKSA9PSAnYmFyJworCisKK2Rl
ZiB0ZXN0X3RvX2NhcGFiaWxpdGllcyhvcHRzKToKKyAgICBvcHRzLl9vcHRpb25zWydmb28nXSA9
ICdiYXInCisgICAgYXNzZXJ0IE9wdGlvbnMuS0VZIGluIG9wdHMudG9fY2FwYWJpbGl0aWVzKCkK
KyAgICBhc3NlcnQgb3B0cy50b19jYXBhYmlsaXRpZXMoKS5nZXQoT3B0aW9ucy5LRVkpID09IG9w
dHMuX29wdGlvbnMKKworCitkZWYgdGVzdF90b19jYXBhYmlsaXRpZXNfYXJndW1lbnRzKG9wdHMp
OgorICAgIGFyZyA9ICctaycKKyAgICBvcHRzLmFkZF9hcmd1bWVudChhcmcpCisgICAgY2Fwc19v
cHRzID0gb3B0cy50b19jYXBhYmlsaXRpZXMoKS5nZXQoT3B0aW9ucy5LRVkpCisgICAgYXNzZXJ0
IGNhcHNfb3B0cy5nZXQoT3B0aW9ucy5TV0lUQ0hFUykgPT0gYXJnCisKKworZGVmIHRlc3RfdG9f
Y2FwYWJpbGl0aWVzX2FkZGl0aW9uYWxfb3B0aW9ucyhvcHRzKToKKyAgICBuYW1lID0gJ2ZvbycK
KyAgICB2YWx1ZSA9ICdiYXInCisgICAgb3B0cy5hZGRfYWRkaXRpb25hbF9vcHRpb24obmFtZSwg
dmFsdWUpCisgICAgY2Fwc19vcHRzID0gb3B0cy50b19jYXBhYmlsaXRpZXMoKS5nZXQoT3B0aW9u
cy5LRVkpCisgICAgYXNzZXJ0IGNhcHNfb3B0cy5nZXQobmFtZSkgPT0gdmFsdWUKKworCitkZWYg
dGVzdF90b19jYXBhYmlsaXRpZXNfc2hvdWxkX25vdF9tb2RpZnlfc2V0X29wdGlvbnMob3B0cyk6
CisgICAgb3B0cy5fb3B0aW9uc1snZm9vJ10gPSAnYmFyJworICAgIGFyZyA9ICctaycKKyAgICBv
cHRzLmFkZF9hcmd1bWVudChhcmcpCisgICAgb3B0cy5hZGRfYWRkaXRpb25hbF9vcHRpb24oJ2Jh
eicsICdxdXgnKQorICAgIG9wdHMudG9fY2FwYWJpbGl0aWVzKCkuZ2V0KE9wdGlvbnMuS0VZKQor
ICAgIGFzc2VydCBvcHRzLm9wdGlvbnMuZ2V0KCdmb28nKSA9PSAnYmFyJworICAgIGFzc2VydCBv
cHRzLmFyZ3VtZW50c1swXSA9PSBhcmcKKyAgICBhc3NlcnQgb3B0cy5hZGRpdGlvbmFsX29wdGlv
bnMuZ2V0KCdiYXonKSA9PSAncXV4JwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvX19pbml0
X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3VuaXQvc2Vs
ZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3VuaXQvc2VsZW5pdW0vd2ViZHJpdmVy
L3JlbW90ZS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBT
b2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNv
bnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlz
dHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVn
YXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQor
IyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJM
aWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UK
KyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5z
ZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAor
IworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdy
aXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3Ry
aWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05E
SVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRo
ZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3QvdW5pdC9zZWxlbml1bS93ZWJk
cml2ZXIvcmVtb3RlL3Rlc3RfZXJyb3JfaGFuZGxlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3QvdW5pdC9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3Rlc3Rf
ZXJyb3JfaGFuZGxlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NWJjOGVhMGRlNTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3VuaXQvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS90ZXN0X2Vycm9y
X2hhbmRsZXIucHkKQEAgLTAsMCArMSwyNDEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zy
b20gc2VsZW5pdW0uY29tbW9uIGltcG9ydCBleGNlcHRpb25zCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5yZW1vdGUuZXJyb3JoYW5kbGVyIGltcG9ydCBFcnJvckNvZGUsIEVycm9ySGFuZGxlcgor
CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGhhbmRsZXIoKToKKyAgICB5aWVsZCBFcnJvckhhbmRs
ZXIoKQorCisKK2RlZiB0ZXN0X2RvZXNfbm90X3JhaXNlX2V4Y2VwdGlvbl9vbl9zdWNjZXNzKGhh
bmRsZXIpOgorICAgIGFzc2VydCBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3RhdHVzJzogRXJy
b3JDb2RlLlNVQ0NFU1N9KSBpcyBOb25lCisgICAgYXNzZXJ0IGhhbmRsZXIuY2hlY2tfcmVzcG9u
c2Uoe30pIGlzIE5vbmUKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUnLCBFcnJv
ckNvZGUuTk9fU1VDSF9FTEVNRU5UKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3Jfbm9f
c3VjaF9lbGVtZW50KGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNl
cHRpb25zLk5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jl
c3BvbnNlKHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgnY29kZScsIEVycm9yQ29kZS5OT19TVUNIX0ZSQU1FKQorZGVmIHRlc3Rf
cmFpc2VzX2V4Y2VwdGlvbl9mb3Jfbm9fc3VjaF9mcmFtZShoYW5kbGVyLCBjb2RlKToKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5Ob1N1Y2hGcmFtZUV4Y2VwdGlvbik6CisgICAg
ICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9v
J30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLlVOS05P
V05fQ09NTUFORCkKK2RlZiB0ZXN0X3JhaXNlc19leGNlcHRpb25fZm9yX3Vua25vd25fY29tbWFu
ZChoYW5kbGVyLCBjb2RlKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5XZWJE
cml2ZXJFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3RhdHVz
JzogY29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgn
Y29kZScsIEVycm9yQ29kZS5TVEFMRV9FTEVNRU5UX1JFRkVSRU5DRSkKK2RlZiB0ZXN0X3JhaXNl
c19leGNlcHRpb25fZm9yX3N0YWxlX2VsZW1lbnRfcmVmZXJlbmNlKGhhbmRsZXIsIGNvZGUpOgor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNlcHRpb25zLlN0YWxlRWxlbWVudFJlZmVyZW5jZUV4
Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2Rl
LCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywg
RXJyb3JDb2RlLkVMRU1FTlRfTk9UX1ZJU0lCTEUpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9u
X2Zvcl9lbGVtZW50X25vdF92aXNpYmxlKGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhleGNlcHRpb25zLkVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uKToKKyAgICAgICAg
aGFuZGxlci5jaGVja19yZXNwb25zZSh7J3N0YXR1cyc6IGNvZGUsICd2YWx1ZSc6ICdmb28nfSkK
KworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUnLCBFcnJvckNvZGUuSU5WQUxJRF9F
TEVNRU5UX1NUQVRFKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3JfaW52YWxpZF9lbGVt
ZW50X3N0YXRlKGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNlcHRp
b25zLkludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNr
X3Jlc3BvbnNlKHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgnY29kZScsIEVycm9yQ29kZS5VTktOT1dOX0VSUk9SKQorZGVmIHRl
c3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3JfdW5rbm93bl9lcnJvcihoYW5kbGVyLCBjb2RlKToKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5XZWJEcml2ZXJFeGNlcHRpb24pOgorICAg
ICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVlJzogJ2Zv
byd9KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY29kZScsIEVycm9yQ29kZS5FTEVN
RU5UX0lTX05PVF9TRUxFQ1RBQkxFKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3JfZWxl
bWVudF9ub3Rfc2VsZWN0YWJsZShoYW5kbGVyLCBjb2RlKToKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoZXhjZXB0aW9ucy5FbGVtZW50Tm90U2VsZWN0YWJsZUV4Y2VwdGlvbik6CisgICAgICAgIGhh
bmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLkpBVkFTQ1JJUFRf
RVJST1IpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9qYXZhc2NyaXB0X2Vycm9yKGhh
bmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNlcHRpb25zLkphdmFzY3Jp
cHRFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3RhdHVzJzog
Y29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY29k
ZScsIEVycm9yQ29kZS5YUEFUSF9MT09LVVBfRVJST1IpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0
aW9uX2Zvcl94cGF0aF9sb29rdXBfZXJyb3IoaGFuZGxlciwgY29kZSk6CisgICAgd2l0aCBweXRl
c3QucmFpc2VzKGV4Y2VwdGlvbnMuV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAgICAgaGFuZGxl
ci5jaGVja19yZXNwb25zZSh7J3N0YXR1cyc6IGNvZGUsICd2YWx1ZSc6ICdmb28nfSkKKworCitA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUnLCBFcnJvckNvZGUuVElNRU9VVCkKK2RlZiB0
ZXN0X3JhaXNlc19leGNlcHRpb25fZm9yX3RpbWVvdXQoaGFuZGxlciwgY29kZSk6CisgICAgd2l0
aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlvbnMuVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIGhh
bmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLk5PX1NVQ0hfV0lO
RE9XKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3Jfbm9fc3VjaF93aW5kb3coaGFuZGxl
ciwgY29kZSk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlvbnMuTm9TdWNoV2luZG93
RXhjZXB0aW9uKToKKyAgICAgICAgaGFuZGxlci5jaGVja19yZXNwb25zZSh7J3N0YXR1cyc6IGNv
ZGUsICd2YWx1ZSc6ICdmb28nfSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUn
LCBFcnJvckNvZGUuSU5WQUxJRF9DT09LSUVfRE9NQUlOKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2Vw
dGlvbl9mb3JfaW52YWxpZF9jb29raWVfZG9tYWluKGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhleGNlcHRpb25zLkludmFsaWRDb29raWVEb21haW5FeGNlcHRpb24pOgor
ICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVlJzog
J2Zvbyd9KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY29kZScsIEVycm9yQ29kZS5V
TkFCTEVfVE9fU0VUX0NPT0tJRSkKK2RlZiB0ZXN0X3JhaXNlc19leGNlcHRpb25fZm9yX3VuYWJs
ZV90b19zZXRfY29va2llKGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhl
eGNlcHRpb25zLlVuYWJsZVRvU2V0Q29va2llRXhjZXB0aW9uKToKKyAgICAgICAgaGFuZGxlci5j
aGVja19yZXNwb25zZSh7J3N0YXR1cyc6IGNvZGUsICd2YWx1ZSc6ICdmb28nfSkKKworCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUnLCBFcnJvckNvZGUuVU5FWFBFQ1RFRF9BTEVSVF9P
UEVOKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3JfdW5leHBlY3RlZF9hbGVydF9vcGVu
KGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNlcHRpb25zLlVuZXhw
ZWN0ZWRBbGVydFByZXNlbnRFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3Bv
bnNlKHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgnY29kZScsIEVycm9yQ29kZS5OT19BTEVSVF9PUEVOKQorZGVmIHRlc3RfcmFp
c2VzX2V4Y2VwdGlvbl9mb3Jfbm9fYWxlcnRfb3BlbihoYW5kbGVyLCBjb2RlKToKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5Ob0FsZXJ0UHJlc2VudEV4Y2VwdGlvbik6CisgICAg
ICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9v
J30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLlNDUklQ
VF9USU1FT1VUKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3Jfc2NyaXB0X3RpbWVvdXQo
aGFuZGxlciwgY29kZSk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlvbnMuVGltZW91
dEV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBj
b2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2Rl
JywgRXJyb3JDb2RlLklOVkFMSURfRUxFTUVOVF9DT09SRElOQVRFUykKK2RlZiB0ZXN0X3JhaXNl
c19leGNlcHRpb25fZm9yX2ludmFsaWRfZWxlbWVudF9jb29yZGluYXRlcyhoYW5kbGVyLCBjb2Rl
KToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5XZWJEcml2ZXJFeGNlcHRpb24p
OgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVl
JzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY29kZScsIEVycm9yQ29k
ZS5JTUVfTk9UX0FWQUlMQUJMRSkKK2RlZiB0ZXN0X3JhaXNlc19leGNlcHRpb25fZm9yX2ltZV9u
b3RfYXZhaWxhYmxlKGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNl
cHRpb25zLkltZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tf
cmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLklNRV9FTkdJTkVfQUNUSVZBVElPTl9G
QUlMRUQpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9pbWVfYWN0aXZhdGlvbl9mYWls
ZWQoaGFuZGxlciwgY29kZSk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlvbnMuSW1l
QWN0aXZhdGlvbkZhaWxlZEV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9u
c2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLklOVkFMSURfU0VMRUNUT1IpCitkZWYgdGVzdF9y
YWlzZXNfZXhjZXB0aW9uX2Zvcl9pbnZhbGlkX3NlbGVjdG9yKGhhbmRsZXIsIGNvZGUpOgorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhleGNlcHRpb25zLkludmFsaWRTZWxlY3RvckV4Y2VwdGlvbik6
CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUn
OiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2Rl
LlNFU1NJT05fTk9UX0NSRUFURUQpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9zZXNz
aW9uX25vdF9jcmVhdGVkKGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhl
eGNlcHRpb25zLlNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0aW9uKToKKyAgICAgICAgaGFuZGxlci5j
aGVja19yZXNwb25zZSh7J3N0YXR1cyc6IGNvZGUsICd2YWx1ZSc6ICdmb28nfSkKKworCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUnLCBFcnJvckNvZGUuTU9WRV9UQVJHRVRfT1VUX09G
X0JPVU5EUykKK2RlZiB0ZXN0X3JhaXNlc19leGNlcHRpb25fZm9yX21vdmVfdGFyZ2V0X291dF9v
Zl9ib3VuZHMoaGFuZGxlciwgY29kZSk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlv
bnMuTW92ZVRhcmdldE91dE9mQm91bmRzRXhjZXB0aW9uKToKKyAgICAgICAgaGFuZGxlci5jaGVj
a19yZXNwb25zZSh7J3N0YXR1cyc6IGNvZGUsICd2YWx1ZSc6ICdmb28nfSkKKworCitAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUnLCBFcnJvckNvZGUuSU5WQUxJRF9YUEFUSF9TRUxFQ1RP
UikKK2RlZiB0ZXN0X3JhaXNlc19leGNlcHRpb25fZm9yX2ludmFsaWRfeHBhdGhfc2VsZWN0b3Io
aGFuZGxlciwgY29kZSk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlvbnMuSW52YWxp
ZFNlbGVjdG9yRXhjZXB0aW9uKToKKyAgICAgICAgaGFuZGxlci5jaGVja19yZXNwb25zZSh7J3N0
YXR1cyc6IGNvZGUsICd2YWx1ZSc6ICdmb28nfSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoJ2NvZGUnLCBFcnJvckNvZGUuSU5WQUxJRF9YUEFUSF9TRUxFQ1RPUl9SRVRVUk5fVFlQRVIp
CitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9pbnZhbGlkX3hwYXRoX3NlbGVjdG9yX3Jl
dHVybl90eXBlcihoYW5kbGVyLCBjb2RlKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0
aW9ucy5JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jl
c3BvbnNlKHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgnY29kZScsIEVycm9yQ29kZS5FTEVNRU5UX05PVF9JTlRFUkFDVEFCTEUp
CitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9lbGVtZW50X25vdF9pbnRlcmFjdGFibGUo
aGFuZGxlciwgY29kZSk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlvbnMuRWxlbWVu
dE5vdEludGVyYWN0YWJsZUV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9u
c2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLklOU0VDVVJFX0NFUlRJRklDQVRFKQorZGVmIHRl
c3RfcmFpc2VzX2V4Y2VwdGlvbl9mb3JfaW5zZWN1cmVfY2VydGlmaWNhdGUoaGFuZGxlciwgY29k
ZSk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKGV4Y2VwdGlvbnMuSW5zZWN1cmVDZXJ0aWZpY2F0
ZUV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBj
b2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2Rl
JywgRXJyb3JDb2RlLklOVkFMSURfQVJHVU1FTlQpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9u
X2Zvcl9pbnZhbGlkX2FyZ3VtZW50KGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhleGNlcHRpb25zLkludmFsaWRBcmd1bWVudEV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRs
ZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLklOVkFMSURfQ09PUkRJ
TkFURVMpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9pbnZhbGlkX2Nvb3JkaW5hdGVz
KGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNlcHRpb25zLkludmFs
aWRDb29yZGluYXRlc0V4Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2Uo
eydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLklOVkFMSURfU0VTU0lPTl9JRCkKK2RlZiB0ZXN0X3Jh
aXNlc19leGNlcHRpb25fZm9yX2ludmFsaWRfc2Vzc2lvbl9pZChoYW5kbGVyLCBjb2RlKToKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5JbnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9u
KToKKyAgICAgICAgaGFuZGxlci5jaGVja19yZXNwb25zZSh7J3N0YXR1cyc6IGNvZGUsICd2YWx1
ZSc6ICdmb28nfSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvZGUnLCBFcnJvckNv
ZGUuTk9fU1VDSF9DT09LSUUpCitkZWYgdGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl9ub19zdWNo
X2Nvb2tpZShoYW5kbGVyLCBjb2RlKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9u
cy5Ob1N1Y2hDb29raWVFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNl
KHsnc3RhdHVzJzogY29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgnY29kZScsIEVycm9yQ29kZS5VTkFCTEVfVE9fQ0FQVFVSRV9TQ1JFRU4pCitkZWYg
dGVzdF9yYWlzZXNfZXhjZXB0aW9uX2Zvcl91bmFibGVfdG9fY2FwdHVyZV9zY3JlZW5fZXhjZXB0
aW9uKGhhbmRsZXIsIGNvZGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGNlcHRpb25zLlNj
cmVlbnNob3RFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3Rh
dHVzJzogY29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgnY29kZScsIEVycm9yQ29kZS5FTEVNRU5UX0NMSUNLX0lOVEVSQ0VQVEVEKQorZGVmIHRlc3Rf
cmFpc2VzX2V4Y2VwdGlvbl9mb3JfZWxlbWVudF9jbGlja19pbnRlcmNlcHRlZChoYW5kbGVyLCBj
b2RlKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5FbGVtZW50Q2xpY2tJbnRl
cmNlcHRlZEV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRsZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0
dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCdjb2RlJywgRXJyb3JDb2RlLlVOS05PV05fTUVUSE9EKQorZGVmIHRlc3RfcmFpc2VzX2V4Y2Vw
dGlvbl9mb3JfdW5rbm93bl9tZXRob2QoaGFuZGxlciwgY29kZSk6CisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKGV4Y2VwdGlvbnMuVW5rbm93bk1ldGhvZEV4Y2VwdGlvbik6CisgICAgICAgIGhhbmRs
ZXIuY2hlY2tfcmVzcG9uc2UoeydzdGF0dXMnOiBjb2RlLCAndmFsdWUnOiAnZm9vJ30pCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb2RlJywgRXJyb3JDb2RlLk1FVEhPRF9OT1RfQUxM
T1dFRCkKK2RlZiB0ZXN0X3JhaXNlc19leGNlcHRpb25fZm9yX21ldGhvZF9ub3RfYWxsb3dlZCho
YW5kbGVyLCBjb2RlKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoZXhjZXB0aW9ucy5XZWJEcml2
ZXJFeGNlcHRpb24pOgorICAgICAgICBoYW5kbGVyLmNoZWNrX3Jlc3BvbnNlKHsnc3RhdHVzJzog
Y29kZSwgJ3ZhbHVlJzogJ2Zvbyd9KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvdGVzdF9u
ZXdfc2Vzc2lvbi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
dW5pdC9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3Rlc3RfbmV3X3Nlc3Npb24ucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc1NDY3NTQwYWM4Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3Nl
bGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvdGVzdF9uZXdfc2Vzc2lvbi5weQpAQCAtMCwwICsxLDYy
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKworCitmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5Citmcm9tIGltcG9ydGxpYiBp
bXBvcnQgaW1wb3J0X21vZHVsZQorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCitmcm9tIHNlbGVuaXVtLndlYmRyaXZl
ci5yZW1vdGUuY29tbWFuZCBpbXBvcnQgQ29tbWFuZAorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
cmVtb3RlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyCisKKworZGVmIHRlc3RfY29udmVydHNf
b3NzX2NhcGFiaWxpdGllc190b193M2MobW9ja2VyKToKKyAgICBtb2NrID0gbW9ja2VyLnBhdGNo
KCdzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmRyaXZlci5XZWJEcml2ZXIuZXhlY3V0ZScp
CisgICAgb3NzX2NhcHMgPSB7J3BsYXRmb3JtJzogJ1dJTkRPV1MnLCAndmVyc2lvbic6ICcxMScs
ICdhY2NlcHRTc2xDZXJ0cyc6IFRydWV9CisgICAgdzNjX2NhcHMgPSB7J3BsYXRmb3JtTmFtZSc6
ICd3aW5kb3dzJywgJ2Jyb3dzZXJWZXJzaW9uJzogJzExJywgJ2FjY2VwdEluc2VjdXJlQ2VydHMn
OiBUcnVlfQorICAgIFdlYkRyaXZlcihkZXNpcmVkX2NhcGFiaWxpdGllcz1kZWVwY29weShvc3Nf
Y2FwcykpCisgICAgZXhwZWN0ZWRfcGFyYW1zID0geydjYXBhYmlsaXRpZXMnOiB7J2ZpcnN0TWF0
Y2gnOiBbe31dLCAnYWx3YXlzTWF0Y2gnOiB3M2NfY2Fwc30sCisgICAgICAgICAgICAgICAgICAg
ICAgICdkZXNpcmVkQ2FwYWJpbGl0aWVzJzogb3NzX2NhcHN9CisgICAgbW9jay5hc3NlcnRfY2Fs
bGVkX3dpdGgoQ29tbWFuZC5ORVdfU0VTU0lPTiwgZXhwZWN0ZWRfcGFyYW1zKQorCisKK2RlZiB0
ZXN0X2NvbnZlcnRzX3Byb3h5X3R5cGVfdmFsdWVfdG9fbG93ZXJjYXNlX2Zvcl93M2MobW9ja2Vy
KToKKyAgICBtb2NrID0gbW9ja2VyLnBhdGNoKCdzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndl
YmRyaXZlci5XZWJEcml2ZXIuZXhlY3V0ZScpCisgICAgb3NzX2NhcHMgPSB7J3Byb3h5Jzogeydw
cm94eVR5cGUnOiAnTUFOVUFMJywgJ2h0dHBQcm94eSc6ICdmb28nfX0KKyAgICB3M2NfY2FwcyA9
IHsncHJveHknOiB7J3Byb3h5VHlwZSc6ICdtYW51YWwnLCAnaHR0cFByb3h5JzogJ2Zvbyd9fQor
ICAgIFdlYkRyaXZlcihkZXNpcmVkX2NhcGFiaWxpdGllcz1kZWVwY29weShvc3NfY2FwcykpCisg
ICAgZXhwZWN0ZWRfcGFyYW1zID0geydjYXBhYmlsaXRpZXMnOiB7J2ZpcnN0TWF0Y2gnOiBbe31d
LCAnYWx3YXlzTWF0Y2gnOiB3M2NfY2Fwc30sCisgICAgICAgICAgICAgICAgICAgICAgICdkZXNp
cmVkQ2FwYWJpbGl0aWVzJzogb3NzX2NhcHN9CisgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgo
Q29tbWFuZC5ORVdfU0VTU0lPTiwgZXhwZWN0ZWRfcGFyYW1zKQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgnYnJvd3Nlcl9uYW1lJywgWydmaXJlZm94JywgJ2Nocm9tZScsICdpZScsICdv
cGVyYSddKQorZGVmIHRlc3RfYWNjZXB0c19maXJlZm94X29wdGlvbnNfdG9fcmVtb3RlX2RyaXZl
cihtb2NrZXIsIGJyb3dzZXJfbmFtZSk6CisgICAgb3B0aW9ucyA9IGltcG9ydF9tb2R1bGUoJ3Nl
bGVuaXVtLndlYmRyaXZlci57fS5vcHRpb25zJy5mb3JtYXQoYnJvd3Nlcl9uYW1lKSkKKyAgICBj
YXBzX25hbWUgPSBicm93c2VyX25hbWUudXBwZXIoKSBpZiBicm93c2VyX25hbWUgIT0gJ2llJyBl
bHNlICdJTlRFUk5FVEVYUExPUkVSJworICAgIG1vY2sgPSBtb2NrZXIucGF0Y2goJ3NlbGVuaXVt
LndlYmRyaXZlci5yZW1vdGUud2ViZHJpdmVyLldlYkRyaXZlci5zdGFydF9zZXNzaW9uJykKKwor
ICAgIG9wdHMgPSBvcHRpb25zLk9wdGlvbnMoKQorICAgIG9wdHMuYWRkX2FyZ3VtZW50KCdmb28n
KQorICAgIGV4cGVjdGVkX2NhcHMgPSBnZXRhdHRyKERlc2lyZWRDYXBhYmlsaXRpZXMsIGNhcHNf
bmFtZSkKKyAgICBjYXBzID0gZXhwZWN0ZWRfY2Fwcy5jb3B5KCkKKyAgICBleHBlY3RlZF9jYXBz
LnVwZGF0ZShvcHRzLnRvX2NhcGFiaWxpdGllcygpKQorCisgICAgV2ViRHJpdmVyKGRlc2lyZWRf
Y2FwYWJpbGl0aWVzPWNhcHMsIG9wdGlvbnM9b3B0cykKKyAgICBtb2NrLmFzc2VydF9jYWxsZWRf
d2l0aChleHBlY3RlZF9jYXBzLCBOb25lKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvdGVz
dF9yZW1vdGVfY29ubmVjdGlvbi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3QvdW5pdC9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3Rlc3RfcmVtb3RlX2Nvbm5l
Y3Rpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE0YWIxZDQx
ZDkzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC91bml0L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvdGVzdF9yZW1vdGVfY29ubmVj
dGlvbi5weQpAQCAtMCwwICsxLDg2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVl
ZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxp
Y2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0
aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHly
aWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5k
ZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlv
dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUg
TGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAg
IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3Mg
cmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNv
ZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFu
CisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFO
WQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZv
ciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1p
dGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworCit0cnk6CisgICAgZnJvbSB1cmxsaWIg
aW1wb3J0IHBhcnNlCitleGNlcHQgSW1wb3J0RXJyb3I6ICAjIGFib3ZlIGlzIGF2YWlsYWJsZSBp
biBweTMrLCBiZWxvdyBpcyBweTIuNworICAgIGltcG9ydCB1cmxwYXJzZSBhcyBwYXJzZQorCitm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUucmVtb3RlX2Nvbm5lY3Rpb24gaW1wb3J0ICgK
KyAgICBSZW1vdGVDb25uZWN0aW9uLAorKQorCisKK2RlZiB0ZXN0X2dldF9yZW1vdGVfY29ubmVj
dGlvbl9oZWFkZXJzX2RlZmF1bHRzKCk6CisgICAgdXJsID0gJ2h0dHA6Ly9yZW1vdGUnCisgICAg
aGVhZGVycyA9IFJlbW90ZUNvbm5lY3Rpb24uZ2V0X3JlbW90ZV9jb25uZWN0aW9uX2hlYWRlcnMo
cGFyc2UudXJscGFyc2UodXJsKSkKKyAgICBhc3NlcnQgJ0F1dGhvcml6YXRpb24nIG5vdCBpbiBo
ZWFkZXJzLmtleXMoKQorICAgIGFzc2VydCAnQ29ubmVjdGlvbicgbm90IGluIGhlYWRlcnMua2V5
cygpCisgICAgYXNzZXJ0IGhlYWRlcnMuZ2V0KCdBY2NlcHQnKSA9PSAnYXBwbGljYXRpb24vanNv
bicKKyAgICBhc3NlcnQgaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpID09ICdhcHBsaWNhdGlv
bi9qc29uO2NoYXJzZXQ9VVRGLTgnCisgICAgYXNzZXJ0IGhlYWRlcnMuZ2V0KCdVc2VyLUFnZW50
JykgPT0gJ1B5dGhvbiBodHRwIGF1dGgnCisKKworZGVmIHRlc3RfZ2V0X3JlbW90ZV9jb25uZWN0
aW9uX2hlYWRlcnNfYWRkc19hdXRoX2hlYWRlcl9pZl9wYXNzKCk6CisgICAgdXJsID0gJ2h0dHA6
Ly91c2VyOnBhc3NAcmVtb3RlJworICAgIGhlYWRlcnMgPSBSZW1vdGVDb25uZWN0aW9uLmdldF9y
ZW1vdGVfY29ubmVjdGlvbl9oZWFkZXJzKHBhcnNlLnVybHBhcnNlKHVybCkpCisgICAgYXNzZXJ0
IGhlYWRlcnMuZ2V0KCdBdXRob3JpemF0aW9uJykgPT0gJ0Jhc2ljIGRYTmxjanB3WVhOeicKKwor
CitkZWYgdGVzdF9nZXRfcmVtb3RlX2Nvbm5lY3Rpb25faGVhZGVyc19hZGRzX2tlZXBfYWxpdmVf
aWZfcmVxdWVzdGVkKCk6CisgICAgdXJsID0gJ2h0dHA6Ly9yZW1vdGUnCisgICAgaGVhZGVycyA9
IFJlbW90ZUNvbm5lY3Rpb24uZ2V0X3JlbW90ZV9jb25uZWN0aW9uX2hlYWRlcnMocGFyc2UudXJs
cGFyc2UodXJsKSwga2VlcF9hbGl2ZT1UcnVlKQorICAgIGFzc2VydCBoZWFkZXJzLmdldCgnQ29u
bmVjdGlvbicpID09ICdrZWVwLWFsaXZlJworCisKK2NsYXNzIE1vY2tSZXNwb25zZToKKyAgICBj
b2RlID0gMjAwCisgICAgaGVhZGVycyA9IFtdCisKKyAgICBkZWYgcmVhZChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIGIie30iCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIHBhc3MKKwor
ICAgIGRlZiBnZXRoZWFkZXIoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcGFzcwor
CisKK2RlZiB0ZXN0X3JlbW90ZV9jb25uZWN0aW9uX2FkZHNfY29ubmVjdGlvbl9oZWFkZXJzX2Zy
b21fZ2V0X3JlbW90ZV9jb25uZWN0aW9uX2hlYWRlcnMobW9ja2VyKToKKyAgICB0ZXN0X2hlYWRl
cnMgPSB7J0ZPTyc6ICdiYXInLCAnQ29udGVudC1UeXBlJzogJ2pzb24nfQorICAgIGV4cGVjdGVk
X3JlcXVlc3RfaGVhZGVycyA9IHsnRm9vJzogJ2JhcicsICdDb250ZW50LXR5cGUnOiAnanNvbid9
CisKKyAgICAjIFN0dWIgb3V0IHRoZSBnZXRfcmVtb3RlX2Nvbm5lY3Rpb25faGVhZGVycyBtZXRo
b2QgdG8gcmV0dXJuIHNvbWV0aGluZyB0ZXN0YWJsZQorICAgIG1vY2tlci5wYXRjaCgKKyAgICAg
ICAgJ3NlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUucmVtb3RlX2Nvbm5lY3Rpb24uUmVtb3RlQ29u
bmVjdGlvbi5nZXRfcmVtb3RlX2Nvbm5lY3Rpb25faGVhZGVycycKKyAgICApLnJldHVybl92YWx1
ZSA9IHRlc3RfaGVhZGVycworCisgICAgIyBTdHViIG91dCByZXNwb25zZQorICAgIHRyeToKKyAg
ICAgICAgbW9ja19vcGVuID0gbW9ja2VyLnBhdGNoKCd1cmxsaWIucmVxdWVzdC5PcGVuZXJEaXJl
Y3Rvci5vcGVuJykKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIG1vY2tfb3BlbiA9
IG1vY2tlci5wYXRjaCgndXJsbGliMi5PcGVuZXJEaXJlY3Rvci5vcGVuJykKKworICAgIGRlZiBh
c3NlcnRfaGVhZGVyX2FkZGVkKHJlcXVlc3QsIHRpbWVvdXQpOgorICAgICAgICBhc3NlcnQgcmVx
dWVzdC5oZWFkZXJzID09IGV4cGVjdGVkX3JlcXVlc3RfaGVhZGVycworICAgICAgICByZXR1cm4g
TW9ja1Jlc3BvbnNlKCkKKworICAgIG1vY2tfb3Blbi5zaWRlX2VmZmVjdCA9IGFzc2VydF9oZWFk
ZXJfYWRkZWQKKworICAgIFJlbW90ZUNvbm5lY3Rpb24oJ2h0dHA6Ly9yZW1vdGUnLCByZXNvbHZl
X2lwPUZhbHNlKS5leGVjdXRlKCdzdGF0dXMnLCB7fSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3RveC5pbmkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90b3guaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4yYTgwNDBjYTFkZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3RveC5pbmkKQEAgLTAsMCArMSwzNyBAQAorW3RveF0KK2Vudmxpc3Qg
PSBweXsyNywzNCwzNSwzNn0te3VuaXQsY2hyb21lLGVkZ2UsZmlyZWZveCxpZSxwaGFudG9tanMs
cmVtb3RlLHNhZmFyaX0sIGRvY3MsIGZsYWtlOAorCitbdGVzdGVudl0KK3Bhc3NlbnYgPSBESVNQ
TEFZIFBZVEVTVF9BRERPUFRTIENJIFRSQVZJUworY29tbWFuZHMgPQorICBweXsyNywzNCwzNSwz
Nn0tdW5pdDogcHkudGVzdCAtbj1hdXRvIHtwb3NhcmdzOnRlc3QvdW5pdH0KKyAgcHl7MjcsMzZ9
LWNocm9tZTogcHkudGVzdCAtLWRyaXZlcj1DaHJvbWUge3Bvc2FyZ3N9CisgIHB5ezI3LDM2fS1l
ZGdlOiBweS50ZXN0IC0tZHJpdmVyPUVkZ2Uge3Bvc2FyZ3N9CisgIHB5ezI3LDM2fS1maXJlZm94
OiBweS50ZXN0IC0tZHJpdmVyPUZpcmVmb3gge3Bvc2FyZ3N9CisgIHB5ezI3LDM2fS1pZTogcHku
dGVzdCAtLWRyaXZlcj1JZSB7cG9zYXJnc30KKyAgcHl7MjcsMzZ9LW1hcmlvbmV0dGU6IHB5LnRl
c3QgLS1kcml2ZXI9TWFyaW9uZXR0ZSB7cG9zYXJnc30KKyAgcHl7MjcsMzZ9LXBoYW50b21qczog
cHkudGVzdCAtbj1hdXRvIC0tZHJpdmVyPVBoYW50b21KUyB7cG9zYXJnc30KKyAgcHl7MjcsMzZ9
LXJlbW90ZTogcHkudGVzdCAtLWRyaXZlcj1SZW1vdGUge3Bvc2FyZ3N9CisgIHB5ezI3LDM2fS1z
YWZhcmk6IHB5LnRlc3QgLS1kcml2ZXI9U2FmYXJpIHtwb3NhcmdzfQoraW5zdGFsbF9jb21tYW5k
ID0gcGlwIGluc3RhbGwgLXYgLS1uby1pbmRleCAtLWZpbmQtbGlua3M9Li4vdGhpcmRfcGFydHkv
cHkge29wdHN9IHtwYWNrYWdlc30KK2RlcHMgPQorICBweXRlc3Q9PTMuMC4zCisgIHB5dGVzdC1p
bnN0YWZhaWw9PTAuMy4wCisgIHB5dGVzdC1tb2NrPT0xLjUuMAorICBweXsyNywzNn0tcGhhbnRv
bWpzOiBwc3V0aWw9PTQuMy4xCisgIHB5ezI3LDMzLDM0LDM1LDM2fS17dW5pdCxjaHJvbWUsZmly
ZWZveCxtYXJpb25ldHRlLHBoYW50b21qc306IHB5dGVzdC14ZGlzdD09MS4xNQorCitbdGVzdGVu
djpkb2NzXQorc2tpcF9pbnN0YWxsID0gdHJ1ZQorZGVwcyA9CisgIGRvY3V0aWxzPT0wLjExCisg
IEppbmphMj09Mi43CisgIE1hcmt1cFNhZmU9PTAuMTgKKyAgUHlnbWVudHM9PTEuNgorICBTcGhp
bng9PTEuMmIxCitjb21tYW5kcyA9IHNwaGlueC1idWlsZCAtVyAtYiBodG1sIC1kIC4uL2J1aWxk
L2RvY3RyZWVzIGRvY3Mvc291cmNlIC4uL2J1aWxkL2RvY3MvYXBpL3B5IHtwb3NhcmdzfQorCitb
dGVzdGVudjpmbGFrZThdCitza2lwX2luc3RhbGwgPSB0cnVlCitkZXBzID0gZmxha2U4Citjb21t
YW5kcyA9IGZsYWtlOCB7cG9zYXJnc30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327960</attachid>
            <date>2017-11-30 01:41:35 -0800</date>
            <delta_ts>2017-11-30 16:13:34 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wd-selenium-tests.diff</filename>
            <type>text/plain</type>
            <size>2431160</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNThj
MWJiNjg4MS4uYTU5NWIyM2QzMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAxNy0xMS0zMCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBhZGQg
c3VwcG9ydCBmb3IgaW1wb3J0aW5nIGFuZCBydW5uaW5nIHNlbGVuaXVtIHRlc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBjdXJyZW50bHkgaW1w
b3J0IGFuZCBydW4gVzNDIHRlc3RzLCB3aGljaCBhcmUgdGhlIGJlc3Qgb25lcyB0byBlbnN1cmUg
b3VyIGltcGxlbWVudGF0aW9uIGlzIHNwZWMKKyAgICAgICAgY29tcGxpYW50LiBIb3dldmVyLCB0
aGUgc2VsZW5pdW0gQVBJIGlzIHdoYXQgdXNlciB3aWxsIGFjdHVhbGx5IHVzZSBpbiB0aGUgZW5k
LCBzbyBpdCdzIGltcG9ydGFudCB0byBlbnN1cmUgdGhhdAorICAgICAgICB3ZSBkb24ndCBicmVh
ayB0aGUgc2VsZW5pdW0gc3VwcG9ydC4gVGhpcyBwYXRjaCBhZGRzIHdlYmRyaXZlcl90ZXN0X3J1
bm5lcl9zZWxlbml1bS5weSBhbmQKKyAgICAgICAgd2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1dG9y
LnB5IHRvIHJ1biBzZWxlbnVpbSB0ZXN0cy4gVGhlIHNjcmlwdCBpbXBvcnQtdzNjLXdlYmRyaXZl
ci10ZXN0cyBoYXMgYmVlbiByZW5hbWVkIGFzCisgICAgICAgIGltcG9ydC13ZWJkcml2ZXItdGVz
dHMgYW5kIGl0IGNhbiBub3cgaW1wb3J0IHNlbGVuaXVtIHRlc3RzIHRvby4KKworICAgICAgICAq
IFNjcmlwdHMvaW1wb3J0LXczYy13ZWJkcml2ZXItdGVzdHM6IFJlbW92ZWQuCisgICAgICAgICog
U2NyaXB0cy9pbXBvcnQtd2ViZHJpdmVyLXRlc3RzOiBBZGRlZC4KKyAgICAgICAgKEltcG9ydGVy
KToKKyAgICAgICAgKEltcG9ydGVyLl9faW5pdF9fKToKKyAgICAgICAgKEltcG9ydGVyLmRvd25s
b2FkX3Rlc3RzKToKKyAgICAgICAgKEltcG9ydGVyLmltcG9ydF90ZXN0cyk6CisgICAgICAgIChJ
bXBvcnRlci5pbXBvcnRfdGVzdHMuc2hvdWxkX3NraXBfZmlsZSk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX2RyaXZlci5weToKKyAgICAgICAg
KFdlYkRyaXZlci5icm93c2VyX3BhdGgpOgorICAgICAgICAoV2ViRHJpdmVyKToKKyAgICAgICAg
KFdlYkRyaXZlci5icm93c2VyX2FyZ3MpOgorICAgICAgICAoV2ViRHJpdmVyLnNlbGVuaXVtX25h
bWUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZl
cl9kcml2ZXJfZ3RrLnB5OgorICAgICAgICAoV2ViRHJpdmVyR3RrLmJyb3dzZXJfcGF0aCk6Cisg
ICAgICAgIChXZWJEcml2ZXJHdGspOgorICAgICAgICAoV2ViRHJpdmVyR3RrLmJyb3dzZXJfYXJn
cyk6CisgICAgICAgIChXZWJEcml2ZXJHdGsuY2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRy
aXZlckd0ay5zZWxlbml1bV9uYW1lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRy
aXZlcl90ZXN0cy93ZWJkcml2ZXJfZHJpdmVyX3dwZS5weToKKyAgICAgICAgKFdlYkRyaXZlcldQ
RS5icm93c2VyX2FyZ3MpOgorICAgICAgICAoV2ViRHJpdmVyV1BFLmNhcGFiaWxpdGllcyk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVu
aXVtX2V4ZWN1dG9yLnB5OiBBZGRlZC4KKyAgICAgICAgKF9lbnN1cmVfZGlyZWN0b3J5X2luX3Bh
dGgpOgorICAgICAgICAoQ29sbGVjdFJlY29yZGVyKToKKyAgICAgICAgKENvbGxlY3RSZWNvcmRl
ci5fX2luaXRfXyk6CisgICAgICAgIChDb2xsZWN0UmVjb3JkZXIucHl0ZXN0X2NvbGxlY3RyZXBv
cnQpOgorICAgICAgICAoV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvcik6CisgICAgICAgIChXZWJE
cml2ZXJTZWxlbml1bUV4ZWN1dG9yLl9faW5pdF9fKToKKyAgICAgICAgKFdlYkRyaXZlclNlbGVu
aXVtRXhlY3V0b3IuY29sbGVjdCk6CisgICAgICAgIChXZWJEcml2ZXJTZWxlbml1bUV4ZWN1dG9y
LnJ1bik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJp
dmVyX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoV2ViRHJpdmVyVGVzdFJ1bm5lcik6CisgICAg
ICAgIChXZWJEcml2ZXJUZXN0UnVubmVyLl9faW5pdF9fKToKKyAgICAgICAgKFdlYkRyaXZlclRl
c3RSdW5uZXIucnVuKToKKyAgICAgICAgKFdlYkRyaXZlclRlc3RSdW5uZXIucHJpbnRfcmVzdWx0
cyk6CisgICAgICAgIChXZWJEcml2ZXJUZXN0UnVubmVyLmR1bXBfcmVzdWx0c190b19qc29uX2Zp
bGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZl
cl90ZXN0X3J1bm5lcl9zZWxlbml1bS5weTogQWRkZWQuCisgICAgICAgIChXZWJEcml2ZXJUZXN0
UnVubmVyU2VsZW5pdW0pOgorICAgICAgICAoV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLl9f
aW5pdF9fKToKKyAgICAgICAgKFdlYkRyaXZlclRlc3RSdW5uZXJTZWxlbml1bS5fdGVzdHNfZGly
KToKKyAgICAgICAgKFdlYkRyaXZlclRlc3RSdW5uZXJTZWxlbml1bS5jb2xsZWN0X3Rlc3RzKToK
KyAgICAgICAgKFdlYkRyaXZlclRlc3RSdW5uZXJTZWxlbml1bS5ydW4pOgorICAgICAgICAoV2Vi
RHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtLnJlc3VsdHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0X3J1bm5lcl93M2MucHk6CisgICAg
ICAgIChXZWJEcml2ZXJUZXN0UnVubmVyVzNDLl9faW5pdF9fKToKKyAgICAgICAgKFdlYkRyaXZl
clRlc3RSdW5uZXJXM0MucnVuKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZl
cl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5OgorCiAyMDE3LTExLTI4ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2ZXI6
IGFkZCBhbiBvcHRpb24gdG8gZHVtcCB0ZXN0IHJlc3VsdHMgdG8gYSBqc29uIGZpbGUKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy13ZWJkcml2ZXItdGVzdHMgYi9Ub29scy9T
Y3JpcHRzL2ltcG9ydC13M2Mtd2ViZHJpdmVyLXRlc3RzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAxZmQ3Nzk0NjAyMi4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXdlYmRyaXZlci10ZXN0cworKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotCi0jIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0jIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSMgICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSMg
ICAgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotIyAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSMgICAgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgQkUKLSMgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLAotIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSMgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCi0jIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRgotIyBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YKLSMgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBv
cnQganNvbgotaW1wb3J0IG9zCi0KLWZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhv
c3QKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lz
dGVtCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndXRpbHMgaW1wb3J0IGNvbmZpZ3Vy
ZV9sb2dnaW5nCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi53ZWJraXRfZmluZGVyIGltcG9ydCBXZWJL
aXRGaW5kZXIKLWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5naXQgaW1wb3J0IEdp
dAotZnJvbSB3ZWJraXRweS53M2MudGVzdF9kb3dubG9hZGVyIGltcG9ydCBUZXN0RG93bmxvYWRl
cgotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KLWRlZiBkb3dubG9hZF90
ZXN0cyhob3N0LCB1cmwsIHJldmlzaW9uLCBkZXN0X2RpcmVjdG9yeSk6Ci0gICAgZG93bmxvYWRl
ciA9IFRlc3REb3dubG9hZGVyKE5vbmUsIGhvc3QsIFRlc3REb3dubG9hZGVyLmRlZmF1bHRfb3B0
aW9ucygpKQotICAgIGRvd25sb2FkZXIuY2hlY2tvdXRfdGVzdF9yZXBvc2l0b3J5KHJldmlzaW9u
LCB1cmwsIGRlc3RfZGlyZWN0b3J5KQotICAgIGRvd25sb2FkZXIuZ2l0KGRlc3RfZGlyZWN0b3J5
KS5jaGVja291dChyZXZpc2lvbiwgRmFsc2UpCi0KLWRlZiBzaG91bGRfc2tpcF9maWxlKHNvdXJj
ZV9wYXRoLCBmdWxsX3BhdGhzX3RvX3NraXApOgotICAgIGZvciBwYXRoIGluIGZ1bGxfcGF0aHNf
dG9fc2tpcDoKLSAgICAgICAgaWYgc291cmNlX3BhdGguc3RhcnRzd2l0aChwYXRoKToKLSAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0gICAgcmV0dXJuIEZhbHNlCi0KLWRlZiBpbXBvcnRfdGVzdHMo
aG9zdCwgcGF0aHNfdG9faW1wb3J0LCBwYXRoc190b19za2lwLCBzcmNfZGlyZWN0b3J5LCBkZXN0
X2RpcmVjdG9yeSk6Ci0gICAgX2xvZy5pbmZvKCdJbXBvcnRpbmcgdGVzdHMnKQotICAgIGZ1bGxf
cGF0aHNfdG9fc2tpcCA9IFtob3N0LmZpbGVzeXN0ZW0uam9pbihzcmNfZGlyZWN0b3J5LCBwYXRo
KSBmb3IgcGF0aCBpbiBwYXRoc190b19za2lwXQotICAgIGZvciBwYXRoIGluIHBhdGhzX3RvX2lt
cG9ydDoKLSAgICAgICAgc291cmNlX2RpcmVjdG9yeSA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKHNy
Y19kaXJlY3RvcnksIHBhdGgpCi0gICAgICAgIGZvciBzb3VyY2VfcGF0aCBpbiBob3N0LmZpbGVz
eXN0ZW0uZmlsZXNfdW5kZXIoc291cmNlX2RpcmVjdG9yeSk6Ci0gICAgICAgICAgICBpZiBzaG91
bGRfc2tpcF9maWxlKHNvdXJjZV9wYXRoLCBmdWxsX3BhdGhzX3RvX3NraXApOgotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBkZXN0aW5hdGlvbl9wYXRoID0gaG9zdC5maWxl
c3lzdGVtLmpvaW4oZGVzdF9kaXJlY3RvcnksIGhvc3QuZmlsZXN5c3RlbS5yZWxwYXRoKHNvdXJj
ZV9wYXRoLCBzcmNfZGlyZWN0b3J5KSkKLSAgICAgICAgICAgIGhvc3QuZmlsZXN5c3RlbS5tYXli
ZV9tYWtlX2RpcmVjdG9yeShob3N0LmZpbGVzeXN0ZW0uZGlybmFtZShkZXN0aW5hdGlvbl9wYXRo
KSkKLSAgICAgICAgICAgIGhvc3QuZmlsZXN5c3RlbS5jb3B5ZmlsZShzb3VyY2VfcGF0aCwgZGVz
dGluYXRpb25fcGF0aCkKLQotCi1jb25maWd1cmVfbG9nZ2luZygpCi0KLWhvc3QgPSBIb3N0KCkK
LWhvc3QuaW5pdGlhbGl6ZV9zY20oKQotd2Via2l0X2ZpbmRlciA9IFdlYktpdEZpbmRlcihob3N0
LmZpbGVzeXN0ZW0pCi1pbXBvcnRlcl9jb25maWdfcGF0aCA9IHdlYmtpdF9maW5kZXIucGF0aF9m
cm9tX3dlYmtpdF9iYXNlKCdXZWJEcml2ZXJUZXN0cycsICdpbXBvcnRlZCcsICd3M2MnLCAnaW1w
b3J0ZXIuanNvbicpCi1jb25maWcgPSBqc29uLmxvYWRzKGhvc3QuZmlsZXN5c3RlbS5yZWFkX3Rl
eHRfZmlsZShpbXBvcnRlcl9jb25maWdfcGF0aCkpCi0KLWRvd25sb2FkX3BhdGggPSB3ZWJraXRf
ZmluZGVyLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViS2l0QnVpbGQnLCAndzNjLXRlc3RzJywg
J3dlYi1wbGF0Zm9ybS10ZXN0cycpCi1ob3N0LmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rv
cnkoaG9zdC5maWxlc3lzdGVtLmRpcm5hbWUoZG93bmxvYWRfcGF0aCkpCi1kb3dubG9hZF90ZXN0
cyhob3N0LCBjb25maWdbJ3JlcG9zaXRvcnknXSwgY29uZmlnWydyZXZpc2lvbiddLCBkb3dubG9h
ZF9wYXRoKQotCi1pbXBvcnRfcGF0aCA9IHdlYmtpdF9maW5kZXIucGF0aF9mcm9tX3dlYmtpdF9i
YXNlKCdXZWJEcml2ZXJUZXN0cycsICdpbXBvcnRlZCcsICd3M2MnKQotaW1wb3J0X3Rlc3RzKGhv
c3QsIGNvbmZpZ1sncGF0aHNfdG9faW1wb3J0J10sIGNvbmZpZ1sncGF0aHNfdG9fc2tpcCddLCBk
b3dubG9hZF9wYXRoLCBpbXBvcnRfcGF0aCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvaW1w
b3J0LXdlYmRyaXZlci10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvaW1wb3J0LXdlYmRyaXZlci10ZXN0
cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uNTVkZGU0OTRiMjIKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL2ltcG9ydC13ZWJkcml2ZXItdGVzdHMKQEAg
LTAsMCArMSwxMDUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorCisjIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjCisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUKKyMgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKyMgICAgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworIyAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyMgICAg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyMgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorIyBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMg
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SCisjIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorIyBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyMgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCBsb2dnaW5nCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2Zyb20g
d2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ubG9ndXRpbHMgaW1wb3J0IGNvbmZpZ3VyZV9sb2dnaW5nCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi53ZWJraXRfZmluZGVyIGltcG9ydCBXZWJLaXRGaW5kZXIKK2Zyb20gd2Via2l0cHkuY29t
bW9uLmNoZWNrb3V0LnNjbS5naXQgaW1wb3J0IEdpdAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCisKK2hvc3QgPSBIb3N0KCkKK2hvc3QuaW5pdGlhbGl6ZV9zY20oKQord2Vi
a2l0X2ZpbmRlciA9IFdlYktpdEZpbmRlcihob3N0LmZpbGVzeXN0ZW0pCisKK2NsYXNzIEltcG9y
dGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnX3BhdGgsIGRvd25s
b2FkX3BhdGgsIGRlc3RpbmF0aW9uX3BhdGgpOgorICAgICAgICBzZWxmLmNvbmZpZyA9IGpzb24u
bG9hZHMoaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKGNvbmZpZ19wYXRoKSkKKyAgICAg
ICAgc2VsZi5kb3dubG9hZF9wYXRoID0gZG93bmxvYWRfcGF0aAorICAgICAgICBzZWxmLmRlc3Rp
bmF0aW9uX3BhdGggPSBkZXN0aW5hdGlvbl9wYXRoCisKKyAgICBkZWYgZG93bmxvYWRfdGVzdHMo
c2VsZik6CisgICAgICAgIGhvc3QuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShob3N0
LmZpbGVzeXN0ZW0uZGlybmFtZShzZWxmLmRvd25sb2FkX3BhdGgpKQorICAgICAgICBuZWVkc19j
bG9uZSA9IG5vdCBob3N0LmZpbGVzeXN0ZW0uZXhpc3RzKHNlbGYuZG93bmxvYWRfcGF0aCkKKyAg
ICAgICAgaWYgbmVlZHNfY2xvbmU6CisgICAgICAgICAgICBfbG9nLmluZm8oJ0Nsb25pbmcgJXMg
aW50byAlcy4uLicgJSAoc2VsZi5jb25maWdbJ3JlcG9zaXRvcnknXSwgc2VsZi5kb3dubG9hZF9w
YXRoKSkKKyAgICAgICAgICAgIEdpdC5jbG9uZShzZWxmLmNvbmZpZ1sncmVwb3NpdG9yeSddLCBz
ZWxmLmRvd25sb2FkX3BhdGgsIGhvc3QuZXhlY3V0aXZlKQorICAgICAgICBnaXQgPSBHaXQoc2Vs
Zi5kb3dubG9hZF9wYXRoLCBOb25lLCBleGVjdXRpdmU9aG9zdC5leGVjdXRpdmUsIGZpbGVzeXN0
ZW09aG9zdC5maWxlc3lzdGVtKQorICAgICAgICBpZiBub3QgbmVlZHNfY2xvbmU6CisgICAgICAg
ICAgICBfbG9nLmluZm8oJ0ZldGNoaW5nICVzLi4uJyAlIHNlbGYuY29uZmlnWydyZXBvc2l0b3J5
J10pCisgICAgICAgICAgICBnaXQuZmV0Y2goKQorCisgICAgICAgIF9sb2cuaW5mbygnQ2hlY2tp
bmcgb3V0IHJldmlzaW9uICVzJyAlIHNlbGYuY29uZmlnWydyZXZpc2lvbiddKQorICAgICAgICBn
aXQuY2hlY2tvdXQoc2VsZi5jb25maWdbJ3JldmlzaW9uJ10sIEZhbHNlKQorCisgICAgZGVmIGlt
cG9ydF90ZXN0cyhzZWxmKToKKyAgICAgICAgZGVmIHNob3VsZF9za2lwX2ZpbGUoc291cmNlX3Bh
dGgsIGZ1bGxfcGF0aHNfdG9fc2tpcCk6CisgICAgICAgICAgICBmb3IgcGF0aCBpbiBmdWxsX3Bh
dGhzX3RvX3NraXA6CisgICAgICAgICAgICAgICAgaWYgc291cmNlX3BhdGguc3RhcnRzd2l0aChw
YXRoKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgICAgIF9sb2cuaW5mbygnSW1wb3J0aW5nIHRlc3RzJykKKyAgICAgICAg
ZnVsbF9wYXRoc190b19za2lwID0gW2hvc3QuZmlsZXN5c3RlbS5qb2luKHNlbGYuZG93bmxvYWRf
cGF0aCwgcGF0aCkgZm9yIHBhdGggaW4gc2VsZi5jb25maWdbJ3BhdGhzX3RvX3NraXAnXV0KKyAg
ICAgICAgZm9yIHBhdGggaW4gc2VsZi5jb25maWdbJ3BhdGhzX3RvX2ltcG9ydCddOgorICAgICAg
ICAgICAgc291cmNlX2RpcmVjdG9yeSA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKHNlbGYuZG93bmxv
YWRfcGF0aCwgcGF0aCkKKyAgICAgICAgICAgIGZvciBzb3VyY2VfcGF0aCBpbiBob3N0LmZpbGVz
eXN0ZW0uZmlsZXNfdW5kZXIoc291cmNlX2RpcmVjdG9yeSk6CisgICAgICAgICAgICAgICAgaWYg
c2hvdWxkX3NraXBfZmlsZShzb3VyY2VfcGF0aCwgZnVsbF9wYXRoc190b19za2lwKToKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9wYXRo
ID0gaG9zdC5maWxlc3lzdGVtLmpvaW4oc2VsZi5kZXN0aW5hdGlvbl9wYXRoLCBob3N0LmZpbGVz
eXN0ZW0ucmVscGF0aChzb3VyY2VfcGF0aCwgc2VsZi5kb3dubG9hZF9wYXRoKSkKKyAgICAgICAg
ICAgICAgICBob3N0LmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3RvcnkoaG9zdC5maWxlc3lz
dGVtLmRpcm5hbWUoZGVzdGluYXRpb25fcGF0aCkpCisgICAgICAgICAgICAgICAgaG9zdC5maWxl
c3lzdGVtLmNvcHlmaWxlKHNvdXJjZV9wYXRoLCBkZXN0aW5hdGlvbl9wYXRoKQorCisKK2NvbmZp
Z3VyZV9sb2dnaW5nKCkKKworaW1wb3J0ZXJzID0gW10KKworaWYgJy0tdzNjJyBpbiBzeXMuYXJn
diBvciBsZW4oc3lzLmFyZ3YpID09IDE6CisgICAgaW1wb3J0ZXJfY29uZmlnX3BhdGggPSB3ZWJr
aXRfZmluZGVyLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViRHJpdmVyVGVzdHMnLCAnaW1wb3J0
ZWQnLCAndzNjJywgJ2ltcG9ydGVyLmpzb24nKQorICAgIGRvd25sb2FkX3BhdGggPSB3ZWJraXRf
ZmluZGVyLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViS2l0QnVpbGQnLCAndzNjLXRlc3RzJywg
J3dlYi1wbGF0Zm9ybS10ZXN0cycpCisgICAgaW1wb3J0X3BhdGggPSB3ZWJraXRfZmluZGVyLnBh
dGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViRHJpdmVyVGVzdHMnLCAnaW1wb3J0ZWQnLCAndzNjJykK
KyAgICBpbXBvcnRlcnMuYXBwZW5kKEltcG9ydGVyKGltcG9ydGVyX2NvbmZpZ19wYXRoLCBkb3du
bG9hZF9wYXRoLCBpbXBvcnRfcGF0aCkpCisKK2lmICctLXNlbGVuaXVtJyBpbiBzeXMuYXJndiBv
ciBsZW4oc3lzLmFyZ3YpID09IDE6CisgICAgaW1wb3J0ZXJfY29uZmlnX3BhdGggPSB3ZWJraXRf
ZmluZGVyLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViRHJpdmVyVGVzdHMnLCAnaW1wb3J0ZWQn
LCAnc2VsZW5pdW0nLCAnaW1wb3J0ZXIuanNvbicpCisgICAgZG93bmxvYWRfcGF0aCA9IHdlYmtp
dF9maW5kZXIucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdXZWJLaXRCdWlsZCcsICdzZWxlbml1bS10
ZXN0cycsICdzZWxlbml1bScpCisgICAgaW1wb3J0X3BhdGggPSB3ZWJraXRfZmluZGVyLnBhdGhf
ZnJvbV93ZWJraXRfYmFzZSgnV2ViRHJpdmVyVGVzdHMnLCAnaW1wb3J0ZWQnLCAnc2VsZW5pdW0n
KQorICAgIGltcG9ydGVycy5hcHBlbmQoSW1wb3J0ZXIoaW1wb3J0ZXJfY29uZmlnX3BhdGgsIGRv
d25sb2FkX3BhdGgsIGltcG9ydF9wYXRoKSkKKworZm9yIGltcG9ydGVyIGluIGltcG9ydGVyczoK
KyAgICBpbXBvcnRlci5kb3dubG9hZF90ZXN0cygpCisgICAgaW1wb3J0ZXIuaW1wb3J0X3Rlc3Rz
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dl
YmRyaXZlcl9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0
cy93ZWJkcml2ZXJfZHJpdmVyLnB5CmluZGV4IDYzNDczZjU3ZjdiLi5hODI3NDVmOWY1OCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVy
X2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93
ZWJkcml2ZXJfZHJpdmVyLnB5CkBAIC0zNCw5ICszNCwxNyBAQCBjbGFzcyBXZWJEcml2ZXIob2Jq
ZWN0KToKICAgICBkZWYgY2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yCiAKKyAgICBkZWYgYnJvd3Nlcl9wYXRoKHNlbGYpOgorICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgZGVmIGJyb3dzZXJfYXJncyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFtd
CisKICAgICBkZWYgYnJvd3Nlcl9lbnYoc2VsZik6CiAgICAgICAgIHJldHVybiB7fQogCisgICAg
ZGVmIHNlbGVuaXVtX25hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBOb25lCiAKIF9kcml2ZXJz
ID0ge30KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVz
dHMvd2ViZHJpdmVyX2RyaXZlcl9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRy
aXZlcl90ZXN0cy93ZWJkcml2ZXJfZHJpdmVyX2d0ay5weQppbmRleCBhYjAxMGI1YmFiNS4uZWY0
ZjM4NTc5ZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rl
c3RzL3dlYmRyaXZlcl9kcml2ZXJfZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
d2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9kcml2ZXJfZ3RrLnB5CkBAIC0zNCwxMCArMzQsMTkg
QEAgY2xhc3MgV2ViRHJpdmVyR3RrKFdlYkRyaXZlcik6CiAgICAgZGVmIGJyb3dzZXJfbmFtZShz
ZWxmKToKICAgICAgICAgcmV0dXJuICdNaW5pQnJvd3NlcicKIAorICAgIGRlZiBicm93c2VyX3Bh
dGgoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCdiaW4nLCAn
TWluaUJyb3dzZXInKQorCisgICAgZGVmIGJyb3dzZXJfYXJncyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIFsnLS1hdXRvbWF0aW9uJywgJy0tamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzLWF1dG9t
YXRpY2FsbHk9dHJ1ZScsICctLWVuYWJsZS14c3MtYXVkaXRvcj1mYWxzZSddCisKICAgICBkZWYg
Y2FwYWJpbGl0aWVzKHNlbGYpOgogICAgICAgICByZXR1cm4geyd3ZWJraXRndGs6YnJvd3Nlck9w
dGlvbnMnOiB7Ci0gICAgICAgICAgICAnYmluYXJ5Jzogc2VsZi5fcG9ydC5fYnVpbGRfcGF0aCgn
YmluJywgJ01pbmlCcm93c2VyJyksCi0gICAgICAgICAgICAnYXJncyc6IFsnLS1hdXRvbWF0aW9u
JywgJy0tamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzLWF1dG9tYXRpY2FsbHk9dHJ1ZScsICct
LWVuYWJsZS14c3MtYXVkaXRvcj1mYWxzZSddfX0KKyAgICAgICAgICAgICdiaW5hcnknOiBzZWxm
LmJyb3dzZXJfcGF0aCgpLAorICAgICAgICAgICAgJ2FyZ3MnOiBzZWxmLmJyb3dzZXJfYXJncygp
fX0KKworICAgIGRlZiBzZWxlbml1bV9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gJ1dlYktp
dEdUSycKIAogCiByZWdpc3Rlcl9kcml2ZXIoJ2d0aycsIFdlYkRyaXZlckd0aykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl9kcml2
ZXJfd3BlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJp
dmVyX2RyaXZlcl93cGUucHkKaW5kZXggOTcwYzk0MTcwZGMuLmYwMjU3MzFiOWFiIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfZHJp
dmVyX3dwZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93
ZWJkcml2ZXJfZHJpdmVyX3dwZS5weQpAQCAtMzUsMTAgKzM1LDEzIEBAIGNsYXNzIFdlYkRyaXZl
cldQRShXZWJEcml2ZXIpOgogICAgIGRlZiBicm93c2VyX25hbWUoc2VsZik6CiAgICAgICAgIHJl
dHVybiAnZHl6JwogCisgICAgZGVmIGJyb3dzZXJfYXJncyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IFsnLS1hdXRvbWF0aW9uJ10KKwogICAgIGRlZiBjYXBhYmlsaXRpZXMoc2VsZik6CiAgICAgICAg
IHJldHVybiB7J3dwZTpicm93c2VyT3B0aW9ucyc6IHsKICAgICAgICAgICAgICdiaW5hcnknOiBz
ZWxmLmJyb3dzZXJfbmFtZSgpLAotICAgICAgICAgICAgJ2FyZ3MnOiBbJy0tYXV0b21hdGlvbidd
fX0KKyAgICAgICAgICAgICdhcmdzJzogc2VsZi5icm93c2VyX2FyZ3MoKX19CiAKICAgICBkZWYg
YnJvd3Nlcl9lbnYoc2VsZik6CiAgICAgICAgIGVudiA9IHt9CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfc2VsZW5pdW1fZXhlY3V0
b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJf
c2VsZW5pdW1fZXhlY3V0b3IucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmU5ZTM3ZDM0NjE2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1dG9yLnB5CkBAIC0wLDAg
KzEsMTExIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9z
CitpbXBvcnQgc3lzCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGlt
cG9ydCBGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi53ZWJraXRfZmluZGVyIGltcG9y
dCBXZWJLaXRGaW5kZXIKK2ltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQu
bW96bG9nCisKKyMgU2luY2UgVzNDIHRlc3RzIGFsc28gdXNlIHB5dGVzdCwgd2UgdXNlIHB5dGVz
dCBhbmQgc29tZSBvdGhlciB0b29scyBmb3Igc2VsZW5pdW0gdG9vLgordzNjX3Rvb2xzX2RpciA9
IFdlYktpdEZpbmRlcihGaWxlU3lzdGVtKCkpLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViRHJp
dmVyVGVzdHMnLCAnaW1wb3J0ZWQnLCAndzNjJywgJ3Rvb2xzJykKKworCitkZWYgX2Vuc3VyZV9k
aXJlY3RvcnlfaW5fcGF0aChkaXJlY3RvcnkpOgorICAgIGlmIG5vdCBkaXJlY3RvcnkgaW4gc3lz
LnBhdGg6CisgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBkaXJlY3RvcnkpCitfZW5zdXJlX2Rp
cmVjdG9yeV9pbl9wYXRoKG9zLnBhdGguam9pbih3M2NfdG9vbHNfZGlyLCAncHl0ZXN0JykpCitf
ZW5zdXJlX2RpcmVjdG9yeV9pbl9wYXRoKG9zLnBhdGguam9pbih3M2NfdG9vbHNfZGlyLCAnd3B0
cnVubmVyJykpCisKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1
dG9pbnN0YWxsZWQucHl0ZXN0X3RpbWVvdXQKK2Zyb20gd3B0cnVubmVyLmV4ZWN1dG9ycy5weXRl
c3RydW5uZXIucnVubmVyIGltcG9ydCBIYXJuZXNzUmVzdWx0UmVjb3JkZXIsIFN1YnRlc3RSZXN1
bHRSZWNvcmRlciwgVGVtcG9yYXJ5RGlyZWN0b3J5CisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cihfX25hbWVfXykKKworCitjbGFzcyBDb2xsZWN0UmVjb3JkZXIob2JqZWN0KToKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi50ZXN0cyA9IFtdCisKKyAgICBkZWYgcHl0
ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgaWYgcmVwb3J0Lm5vZGVp
ZDoKKyAgICAgICAgICAgIHNlbGYudGVzdHMuYXBwZW5kKHJlcG9ydC5ub2RlaWQpCisKKworY2xh
c3MgV2ViRHJpdmVyU2VsZW5pdW1FeGVjdXRvcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGRyaXZlciwgZGlzcGxheV9kcml2ZXIpOgorICAgICAgICBzZWxmLl9lbnYgPSB7fQor
ICAgICAgICBzZWxmLl9lbnZbJ1dEX0RSSVZFUl9QQVRIJ10gPSBkcml2ZXIuYmluYXJ5X3BhdGgo
KQorICAgICAgICBicm93c2VyX3BhdGggPSBkcml2ZXIuYnJvd3Nlcl9wYXRoKCkKKyAgICAgICAg
aWYgYnJvd3Nlcl9wYXRoOgorICAgICAgICAgICAgc2VsZi5fZW52WydXRF9CUk9XU0VSX1BBVEgn
XSA9IGJyb3dzZXJfcGF0aAorICAgICAgICBicm93c2VyX2FyZ3MgPSBkcml2ZXIuYnJvd3Nlcl9h
cmdzKCkKKyAgICAgICAgaWYgYnJvd3Nlcl9hcmdzOgorICAgICAgICAgICAgc2VsZi5fZW52WydX
RF9CUk9XU0VSX0FSR1MnXSA9ICcgJy5qb2luKGJyb3dzZXJfYXJncykKKyAgICAgICAgc2VsZi5f
ZW52LnVwZGF0ZShkaXNwbGF5X2RyaXZlci5fc2V0dXBfZW52aXJvbl9mb3JfdGVzdCgpKQorICAg
ICAgICBzZWxmLl9lbnYudXBkYXRlKGRyaXZlci5icm93c2VyX2VudigpKQorCisgICAgICAgIHNl
bGYuX25hbWUgPSBkcml2ZXIuc2VsZW5pdW1fbmFtZSgpCisKKyAgICBkZWYgY29sbGVjdChzZWxm
LCBkaXJlY3RvcnkpOgorICAgICAgICBjb2xsZWN0X3JlY29yZGVyID0gQ29sbGVjdFJlY29yZGVy
KCkKKyAgICAgICAgc3Rkb3V0ID0gc3lzLnN0ZG91dAorICAgICAgICB3aXRoIG9wZW4ob3MuZGV2
bnVsbCwgJ3diJykgYXMgZGV2bnVsbDoKKyAgICAgICAgICAgIHN5cy5zdGRvdXQgPSBkZXZudWxs
CisgICAgICAgICAgICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9y
eToKKyAgICAgICAgICAgICAgICBweXRlc3QubWFpbihbJy0tZHJpdmVyPSVzJyAlIHNlbGYuX25h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWNvbGxlY3Qtb25seScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICctLWJhc2V0ZW1wJywgY2FjaGVfZGlyZWN0b3J5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnldLCBwbHVnaW5zPVtjb2xsZWN0
X3JlY29yZGVyXSkKKyAgICAgICAgc3lzLnN0ZG91dCA9IHN0ZG91dAorICAgICAgICByZXR1cm4g
Y29sbGVjdF9yZWNvcmRlci50ZXN0cworCisgICAgZGVmIHJ1bihzZWxmLCB0ZXN0LCB0aW1lb3V0
PTApOgorICAgICAgICBoYXJuZXNzX3JlY29yZGVyID0gSGFybmVzc1Jlc3VsdFJlY29yZGVyKCkK
KyAgICAgICAgc3VidGVzdHNfcmVjb3JkZXIgPSBTdWJ0ZXN0UmVzdWx0UmVjb3JkZXIoKQorICAg
ICAgICBfZW52aXJvbiA9IGRpY3Qob3MuZW52aXJvbikKKyAgICAgICAgb3MuZW52aXJvbi5jbGVh
cigpCisgICAgICAgIG9zLmVudmlyb24udXBkYXRlKHNlbGYuX2VudikKKworICAgICAgICB3aXRo
IFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlX2RpcmVjdG9yeToKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICBweXRlc3QubWFpbihbJy0tZHJpdmVyPSVzJyAlIHNlbGYuX25h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXZlcmJvc2UnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJlPW5vJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJy0tYmFzZXRlbXAnLCBjYWNoZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICctLXNob3dsb2NhbHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnLS10aW1lb3V0PSVzJyAlIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICctcCcsICdubzpjYWNoZXByb3ZpZGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Jy1wJywgJ3B5dGVzdF90aW1lb3V0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dF0sIHBsdWdpbnM9W2hhcm5lc3NfcmVjb3JkZXIsIHN1YnRlc3RzX3JlY29yZGVyXSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBoYXJuZXNzX3Jl
Y29yZGVyLm91dGNvbWUgPSAoIkVSUk9SIiwgc3RyKGUpKQorCisgICAgICAgIG9zLmVudmlyb24u
Y2xlYXIoKQorICAgICAgICBvcy5lbnZpcm9uLnVwZGF0ZShfZW52aXJvbikKKworICAgICAgICBy
ZXR1cm4gaGFybmVzc19yZWNvcmRlci5vdXRjb21lLCBzdWJ0ZXN0c19yZWNvcmRlci5yZXN1bHRz
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJk
cml2ZXJfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90
ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXIucHkKaW5kZXggNWFhM2EyMTk0OTUuLjNhMzgwMzJl
MTk4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93
ZWJkcml2ZXJfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJk
cml2ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyLnB5CkBAIC0yNCw2ICsyNCw4IEBAIGlt
cG9ydCBqc29uCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiAKK2Zyb20gd2Via2l0cHkud2Vi
ZHJpdmVyX3Rlc3RzLndlYmRyaXZlcl9kcml2ZXIgaW1wb3J0IGNyZWF0ZV9kcml2ZXIKK2Zyb20g
d2Via2l0cHkud2ViZHJpdmVyX3Rlc3RzLndlYmRyaXZlcl90ZXN0X3J1bm5lcl9zZWxlbml1bSBp
bXBvcnQgV2ViRHJpdmVyVGVzdFJ1bm5lclNlbGVuaXVtCiBmcm9tIHdlYmtpdHB5LndlYmRyaXZl
cl90ZXN0cy53ZWJkcml2ZXJfdGVzdF9ydW5uZXJfdzNjIGltcG9ydCBXZWJEcml2ZXJUZXN0UnVu
bmVyVzNDCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKQEAgLTMxLDYgKzMz
LDggQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBjbGFzcyBXZWJEcml2
ZXJUZXN0UnVubmVyKG9iamVjdCk6CiAKKyAgICBSVU5ORVJfQ0xBU1NFUyA9IChXZWJEcml2ZXJU
ZXN0UnVubmVyU2VsZW5pdW0sIFdlYkRyaXZlclRlc3RSdW5uZXJXM0MpCisKICAgICBkZWYgX19p
bml0X18oc2VsZiwgcG9ydCk6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIF9s
b2cuaW5mbygnVXNpbmcgcG9ydCAlcycgJSBzZWxmLl9wb3J0Lm5hbWUoKSkKQEAgLTQwLDI4ICs0
NCw0MSBAQCBjbGFzcyBXZWJEcml2ZXJUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
X2Rpc3BsYXlfZHJpdmVyID0gc2VsZi5fcG9ydC5jcmVhdGVfZHJpdmVyKHdvcmtlcl9udW1iZXI9
MCwgbm9fdGltZW91dD1UcnVlKS5fbWFrZV9kcml2ZXIocGl4ZWxfdGVzdHM9RmFsc2UpCiAgICAg
ICAgIGlmIG5vdCBzZWxmLl9kaXNwbGF5X2RyaXZlci5jaGVja19kcml2ZXIoc2VsZi5fcG9ydCk6
CiAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkZhaWxlZCB0byBjaGVjayBkcml2ZXIg
JXMiICUgc2VsZi5fZGlzcGxheV9kcml2ZXIuX19jbGFzc19fLl9fbmFtZV9fKQotICAgICAgICBz
ZWxmLl9ydW5uZXIgPSBXZWJEcml2ZXJUZXN0UnVubmVyVzNDKHNlbGYuX3BvcnQsIHNlbGYuX2Rp
c3BsYXlfZHJpdmVyKQogCi0gICAgZGVmIHJ1bihzZWxmLCB0ZXN0cz1bXSk6Ci0gICAgICAgIHJ1
bm5lcl90ZXN0cyA9IHNlbGYuX3J1bm5lci5jb2xsZWN0X3Rlc3RzKHRlc3RzKQotICAgICAgICBp
ZiBydW5uZXJfdGVzdHM6Ci0gICAgICAgICAgICBfbG9nLmluZm8oJ0NvbGxlY3RlZCAlZCB0ZXN0
cycgJSBsZW4ocnVubmVyX3Rlc3RzKSkKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9ydW5uZXIu
cnVuKHJ1bm5lcl90ZXN0cykKKyAgICAgICAgZHJpdmVyID0gY3JlYXRlX2RyaXZlcihzZWxmLl9w
b3J0KQorICAgICAgICBfbG9nLmluZm8oJ1VzaW5nIGRyaXZlciBhdCAlcycgJSAoZHJpdmVyLmJp
bmFyeV9wYXRoKCkpKQorICAgICAgICBfbG9nLmluZm8oJ0Jyb3dzZXI6ICVzJyAlIChkcml2ZXIu
YnJvd3Nlcl9uYW1lKCkpKQogCi0gICAgICAgIF9sb2cuaW5mbygnTm8gdGVzdHMgZm91bmQnKQot
ICAgICAgICByZXR1cm4gMAorICAgICAgICBzZWxmLl9ydW5uZXJzID0gW3J1bm5lcl9jbHMoc2Vs
Zi5fcG9ydCwgZHJpdmVyLCBzZWxmLl9kaXNwbGF5X2RyaXZlcikgZm9yIHJ1bm5lcl9jbHMgaW4g
c2VsZi5SVU5ORVJfQ0xBU1NFU10KKworICAgIGRlZiBydW4oc2VsZiwgdGVzdHM9W10pOgorICAg
ICAgICBydW5uZXJfdGVzdHMgPSBbcnVubmVyLmNvbGxlY3RfdGVzdHModGVzdHMpIGZvciBydW5u
ZXIgaW4gc2VsZi5fcnVubmVyc10KKyAgICAgICAgY29sbGVjdGVkX2NvdW50ID0gc3VtKFtsZW4o
dGVzdHMpIGZvciB0ZXN0cyBpbiBydW5uZXJfdGVzdHNdKQorICAgICAgICBpZiBub3QgY29sbGVj
dGVkX2NvdW50OgorICAgICAgICAgICAgX2xvZy5pbmZvKCdObyB0ZXN0cyBmb3VuZCcpCisgICAg
ICAgICAgICByZXR1cm4gMAorCisgICAgICAgIF9sb2cuaW5mbygnQ29sbGVjdGVkICVkIHRlc3Qg
ZmlsZXMnICUgY29sbGVjdGVkX2NvdW50KQorICAgICAgICByZXN1bHRzX2NvdW50ID0gMAorICAg
ICAgICBmb3IgaSBpbiByYW5nZShsZW4oc2VsZi5fcnVubmVycykpOgorICAgICAgICAgICAgaWYg
cnVubmVyX3Rlc3RzW2ldOgorICAgICAgICAgICAgICAgIHJlc3VsdHNfY291bnQgKz0gc2VsZi5f
cnVubmVyc1tpXS5ydW4ocnVubmVyX3Rlc3RzW2ldKQorICAgICAgICByZXR1cm4gcmVzdWx0c19j
b3VudAogCiAgICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHJlc3VsdHMgPSB7
fQogICAgICAgICBwYXNzZWRfY291bnQgPSAwCiAgICAgICAgIGZhaWx1cmVzX2NvdW50ID0gMAot
ICAgICAgICBmb3IgcmVzdWx0IGluIHNlbGYuX3J1bm5lci5yZXN1bHRzKCk6CisgICAgICAgIHRl
c3RfcmVzdWx0cyA9IFtdCisgICAgICAgIGZvciBydW5uZXIgaW4gc2VsZi5fcnVubmVyczoKKyAg
ICAgICAgICAgIHRlc3RfcmVzdWx0cy5leHRlbmQocnVubmVyLnJlc3VsdHMoKSkKKyAgICAgICAg
Zm9yIHJlc3VsdCBpbiB0ZXN0X3Jlc3VsdHM6CiAgICAgICAgICAgICBpZiByZXN1bHQuc3RhdHVz
ID09ICdPSyc6CiAgICAgICAgICAgICAgICAgZm9yIHN1YnRlc3QsIHN0YXR1cywgXywgXyBpbiBy
ZXN1bHQuc3VidGVzdF9yZXN1bHRzOgogICAgICAgICAgICAgICAgICAgICBpZiBzdGF0dXMgPT0g
J1BBU1MnOgogICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkX2NvdW50ICs9IDEKLSAgICAg
ICAgICAgICAgICAgICAgZWxpZiBzdGF0dXMgPT0gJ0ZBSUwnOgotICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0cy5zZXRkZWZhdWx0KHN0YXR1cywgW10pLmFwcGVuZChvcy5wYXRoLmpvaW4o
b3MucGF0aC5kaXJuYW1lKHJlc3VsdC50ZXN0KSwgc3VidGVzdCkpCisgICAgICAgICAgICAgICAg
ICAgIGVsaWYgc3RhdHVzIGluIFsnRkFJTCcsICdFUlJPUiddOgorICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0cy5zZXRkZWZhdWx0KCdGQUlMJywgW10pLmFwcGVuZChvcy5wYXRoLmpvaW4o
b3MucGF0aC5kaXJuYW1lKHJlc3VsdC50ZXN0KSwgc3VidGVzdCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBmYWlsdXJlc19jb3VudCArPSAxCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgICAgICMgRklYTUU6IGhhbmRsZSBvdGhlciByZXN1bHRzLgpAQCAtODQsNyArMTAxLDEwIEBA
IGNsYXNzIFdlYkRyaXZlclRlc3RSdW5uZXIob2JqZWN0KToKICAgICBkZWYgZHVtcF9yZXN1bHRz
X3RvX2pzb25fZmlsZShzZWxmLCBvdXRwdXRfcGF0aCk6CiAgICAgICAgIGpzb25fcmVzdWx0cyA9
IHt9CiAgICAgICAgIGpzb25fcmVzdWx0c1sncmVzdWx0cyddID0gW10KLSAgICAgICAgZm9yIHJl
c3VsdCBpbiBzZWxmLl9ydW5uZXIucmVzdWx0cygpOgorICAgICAgICB0ZXN0X3Jlc3VsdHMgPSBb
XQorICAgICAgICBmb3IgcnVubmVyIGluIHNlbGYuX3J1bm5lcnM6CisgICAgICAgICAgICB0ZXN0
X3Jlc3VsdHMuZXh0ZW5kKHJ1bm5lci5yZXN1bHRzKCkpCisgICAgICAgIGZvciByZXN1bHQgaW4g
dGVzdF9yZXN1bHRzOgogICAgICAgICAgICAgcmVzdWx0cyA9IHt9CiAgICAgICAgICAgICByZXN1
bHRzWyd0ZXN0J10gPSByZXN1bHQudGVzdAogICAgICAgICAgICAgcmVzdWx0c1snc3RhdHVzJ10g
PSByZXN1bHQuc3RhdHVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRy
aXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5pdW0ucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfc2VsZW5p
dW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA0NWMxZTdjYzFj
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfdGVz
dHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3NlbGVuaXVtLnB5CkBAIC0wLDAgKzEsOTAgQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
IyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMK
KworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0
ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLndlYmtpdF9maW5kZXIgaW1wb3J0IFdlYktpdEZpbmRl
cgorZnJvbSB3ZWJraXRweS53ZWJkcml2ZXJfdGVzdHMud2ViZHJpdmVyX3NlbGVuaXVtX2V4ZWN1
dG9yIGltcG9ydCBXZWJEcml2ZXJTZWxlbml1bUV4ZWN1dG9yCitmcm9tIHdlYmtpdHB5LndlYmRy
aXZlcl90ZXN0cy53ZWJkcml2ZXJfdGVzdF9yZXN1bHQgaW1wb3J0IFdlYkRyaXZlclRlc3RSZXN1
bHQKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIFdlYkRy
aXZlclRlc3RSdW5uZXJTZWxlbml1bShvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIGRyaXZlciwgZGlzcGxheV9kcml2ZXIpOgorICAgICAgICBzZWxmLl9wb3J0ID0gcG9y
dAorICAgICAgICBzZWxmLl9kcml2ZXIgPSBkcml2ZXIKKyAgICAgICAgc2VsZi5fZGlzcGxheV9k
cml2ZXIgPSBkaXNwbGF5X2RyaXZlcgorICAgICAgICBzZWxmLl9yZXN1bHRzID0gW10KKworICAg
IGRlZiBfdGVzdHNfZGlyKHNlbGYpOgorICAgICAgICByZXR1cm4gV2ViS2l0RmluZGVyKHNlbGYu
X3BvcnQuaG9zdC5maWxlc3lzdGVtKS5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1dlYkRyaXZlclRl
c3RzJykKKworICAgIGRlZiBjb2xsZWN0X3Rlc3RzKHNlbGYsIHRlc3RzPVtdKToKKyAgICAgICAg
aWYgc2VsZi5fZHJpdmVyLnNlbGVuaXVtX25hbWUoKSBpcyBOb25lOgorICAgICAgICAgICAgcmV0
dXJuIDAKKworICAgICAgICByZWxhdGl2ZV90ZXN0c19kaXIgPSBvcy5wYXRoLmpvaW4oJ2ltcG9y
dGVkJywgJ3NlbGVuaXVtJywgJ3B5JywgJ3Rlc3QnKQorICAgICAgICBleGVjdXRvciA9IFdlYkRy
aXZlclNlbGVuaXVtRXhlY3V0b3Ioc2VsZi5fZHJpdmVyLCBzZWxmLl9kaXNwbGF5X2RyaXZlcikK
KyAgICAgICAgIyBDb2xsZWN0ZWQgdGVzdHMgYXJlIHJlbGF0aXZlIHRvIHRlc3QgZGlyZWN0b3J5
LgorICAgICAgICBiYXNlX2RpciA9IG9zLnBhdGguam9pbihzZWxmLl90ZXN0c19kaXIoKSwgb3Mu
cGF0aC5kaXJuYW1lKHJlbGF0aXZlX3Rlc3RzX2RpcikpCisgICAgICAgIGNvbGxlY3RlZF90ZXN0
cyA9IFtvcy5wYXRoLmpvaW4oYmFzZV9kaXIsIHRlc3QpIGZvciB0ZXN0IGluIGV4ZWN1dG9yLmNv
bGxlY3Qob3MucGF0aC5qb2luKHNlbGYuX3Rlc3RzX2RpcigpLCByZWxhdGl2ZV90ZXN0c19kaXIp
KV0KKyAgICAgICAgc2VsZW5pdW1fdGVzdHMgPSBbXQorICAgICAgICBpZiBub3QgdGVzdHM6Cisg
ICAgICAgICAgICB0ZXN0cyA9IFtyZWxhdGl2ZV90ZXN0c19kaXJdCisgICAgICAgIGZvciB0ZXN0
IGluIHRlc3RzOgorICAgICAgICAgICAgaWYgbm90IHRlc3Quc3RhcnRzd2l0aChyZWxhdGl2ZV90
ZXN0c19kaXIpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB0ZXN0X3Bh
dGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fdGVzdHNfZGlyKCksIHRlc3QpCisgICAgICAgICAgICBp
ZiBvcy5wYXRoLmlzZGlyKHRlc3RfcGF0aCk6CisgICAgICAgICAgICAgICAgc2VsZW5pdW1fdGVz
dHMuZXh0ZW5kKFt0ZXN0IGZvciB0ZXN0IGluIGNvbGxlY3RlZF90ZXN0cyBpZiB0ZXN0LnN0YXJ0
c3dpdGgodGVzdF9wYXRoKV0pCisgICAgICAgICAgICBlbGlmIHRlc3RfcGF0aCBpbiBjb2xsZWN0
ZWRfdGVzdHM6CisgICAgICAgICAgICAgICAgc2VsZW5pdW1fdGVzdHMuYXBwZW5kKHRlc3RfcGF0
aCkKKyAgICAgICAgcmV0dXJuIHNlbGVuaXVtX3Rlc3RzCisKKyAgICBkZWYgcnVuKHNlbGYsIHRl
c3RzPVtdKToKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnNlbGVuaXVtX25hbWUoKSBpcyBOb25l
OgorICAgICAgICAgICAgcmV0dXJuIDAKKworICAgICAgICBleGVjdXRvciA9IFdlYkRyaXZlclNl
bGVuaXVtRXhlY3V0b3Ioc2VsZi5fZHJpdmVyLCBzZWxmLl9kaXNwbGF5X2RyaXZlcikKKyAgICAg
ICAgdGltZW91dCA9IHNlbGYuX3BvcnQuZ2V0X29wdGlvbigndGltZW91dCcpCisgICAgICAgIGZv
ciB0ZXN0IGluIHRlc3RzOgorICAgICAgICAgICAgdGVzdF9uYW1lID0gb3MucGF0aC5yZWxwYXRo
KHRlc3QsIHNlbGYuX3Rlc3RzX2RpcigpKQorICAgICAgICAgICAgcHJpbnQgdGVzdF9uYW1lCisg
ICAgICAgICAgICBoYXJuZXNzX3Jlc3VsdCwgdGVzdF9yZXN1bHRzID0gZXhlY3V0b3IucnVuKHRl
c3QsIHRpbWVvdXQpCisgICAgICAgICAgICByZXN1bHQgPSBXZWJEcml2ZXJUZXN0UmVzdWx0KHRl
c3RfbmFtZSwgKmhhcm5lc3NfcmVzdWx0KQorICAgICAgICAgICAgaWYgaGFybmVzc19yZXN1bHRb
MF0gPT0gJ09LJzoKKyAgICAgICAgICAgICAgICBmb3Igc3VidGVzdCwgc3RhdHVzLCBtZXNzYWdl
LCBiYWNrdHJhY2UgaW4gdGVzdF9yZXN1bHRzOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQu
YWRkX3N1YnRlc3RfcmVzdWx0cyhvcy5wYXRoLmJhc2VuYW1lKHN1YnRlc3QpLCBzdGF0dXMsIG1l
c3NhZ2UsIGJhY2t0cmFjZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBG
SVhNRTogaGFuZGxlIG90aGVyIHJlc3VsdHMuCisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAgICAgc2VsZi5fcmVzdWx0cy5hcHBlbmQocmVzdWx0KQorCisgICAgICAgIHJldHVybiBsZW4o
c2VsZi5fcmVzdWx0cykKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5fcmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfdGVzdHMvd2ViZHJpdmVyX3Rlc3RfcnVubmVyX3czYy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0X3J1bm5lcl93M2MucHkKaW5kZXgg
ZWM1ZDJlNDg5MzEuLjczNGEyZDA1NDdmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdGVzdF9ydW5uZXJfdzNjLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl90ZXN0X3J1bm5l
cl93M2MucHkKQEAgLTIzLDEyICsyMywxMCBAQAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwog
aW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZp
bGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLndlYmtpdF9m
aW5kZXIgaW1wb3J0IFdlYktpdEZpbmRlcgogZnJvbSB3ZWJraXRweS53ZWJkcml2ZXJfdGVzdHMu
d2ViZHJpdmVyX3czY19leGVjdXRvciBpbXBvcnQgV2ViRHJpdmVyVzNDRXhlY3V0b3IKLWZyb20g
d2Via2l0cHkud2ViZHJpdmVyX3Rlc3RzLndlYmRyaXZlcl9kcml2ZXIgaW1wb3J0IGNyZWF0ZV9k
cml2ZXIKIGZyb20gd2Via2l0cHkud2ViZHJpdmVyX3Rlc3RzLndlYmRyaXZlcl90ZXN0X3Jlc3Vs
dCBpbXBvcnQgV2ViRHJpdmVyVGVzdFJlc3VsdAogZnJvbSB3ZWJraXRweS53ZWJkcml2ZXJfdGVz
dHMud2ViZHJpdmVyX3czY193ZWJfc2VydmVyIGltcG9ydCBXZWJEcml2ZXJXM0NXZWJTZXJ2ZXIK
IApAQCAtMzcsMTIgKzM1LDEwIEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykK
IAogY2xhc3MgV2ViRHJpdmVyVGVzdFJ1bm5lclczQyhvYmplY3QpOgogCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBvcnQsIGRpc3BsYXlfZHJpdmVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydCwgZHJpdmVyLCBkaXNwbGF5X2RyaXZlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0
CisgICAgICAgIHNlbGYuX2RyaXZlciA9IGRyaXZlcgogICAgICAgICBzZWxmLl9kaXNwbGF5X2Ry
aXZlciA9IGRpc3BsYXlfZHJpdmVyCi0gICAgICAgIHNlbGYuX2RyaXZlciA9IGNyZWF0ZV9kcml2
ZXIoc2VsZi5fcG9ydCkKLSAgICAgICAgX2xvZy5pbmZvKCdVc2luZyBkcml2ZXIgYXQgJXMnICUg
KHNlbGYuX2RyaXZlci5iaW5hcnlfcGF0aCgpKSkKLSAgICAgICAgX2xvZy5pbmZvKCdCcm93c2Vy
OiAlcycgJSAoc2VsZi5fZHJpdmVyLmJyb3dzZXJfbmFtZSgpKSkKIAogICAgICAgICB0aW1lb3V0
ID0gc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd0aW1lb3V0JykKICAgICAgICAgaWYgdGltZW91dCA+
IDA6CkBAIC0xMTAsOCArMTA2LDUgQEAgY2xhc3MgV2ViRHJpdmVyVGVzdFJ1bm5lclczQyhvYmpl
Y3QpOgogCiAgICAgICAgIHJldHVybiBsZW4oc2VsZi5fcmVzdWx0cykKIAotICAgIGRlZiBfYWRk
X3Jlc3VsdHMoc2VsZiwgdGVzdF9wcmVmaXgsIHJlc3VsdHMpOgotICAgICAgICBzZWxmLl9yZXN1
bHRzLmV4dGVuZChbV2ViRHJpdmVyVGVzdFJlc3VsdCh0ZXN0X3ByZWZpeCwgKnJlc3VsdCkgZm9y
IHJlc3VsdCBpbiByZXN1bHRzXSkKLQogICAgIGRlZiByZXN1bHRzKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5fcmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfdGVzdHMvd2ViZHJpdmVyX3czY19leGVjdXRvci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2NfZXhlY3V0b3IucHkKaW5kZXgg
OTUzYTAwNTBmZTMuLjQ4MDRiMmU2NzU3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3dlYmRyaXZlcl90ZXN0cy93ZWJkcml2ZXJfdzNjX2V4ZWN1dG9yLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Rlc3RzL3dlYmRyaXZlcl93M2NfZXhlY3V0b3Iu
cHkKQEAgLTM5LDcgKzM5LDYgQEAgZGVmIF9lbnN1cmVfZGlyZWN0b3J5X2luX3BhdGgoZGlyZWN0
b3J5KToKIF9lbnN1cmVfZGlyZWN0b3J5X2luX3BhdGgob3MucGF0aC5qb2luKHczY190b29sc19k
aXIsICdweXRlc3QnKSkKIF9lbnN1cmVfZGlyZWN0b3J5X2luX3BhdGgob3MucGF0aC5qb2luKHcz
Y190b29sc19kaXIsICd3ZWJkcml2ZXInKSkKIF9lbnN1cmVfZGlyZWN0b3J5X2luX3BhdGgob3Mu
cGF0aC5qb2luKHczY190b29sc19kaXIsICd3cHRydW5uZXInKSkKLV9lbnN1cmVfZGlyZWN0b3J5
X2luX3BhdGgob3MucGF0aC5qb2luKHczY190b29sc19kaXIsICJ3ZWJkcml2ZXIiKSkKIAogaW1w
b3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5weXRlc3RfdGltZW91dAogZnJv
bSB3cHRydW5uZXIuZXhlY3V0b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZWJEcml2
ZXJQcm90b2NvbApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nIGIvV2ViRHJp
dmVyVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUwODUxNGI1MmI2Li40OWI2OTdlMDZjYSAxMDA2NDQK
LS0tIGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1dlYkRyaXZlclRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTExLTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGFkZCBzdXBwb3J0IGZv
ciBpbXBvcnRpbmcgYW5kIHJ1bm5pbmcgc2VsZW5pdW0gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDE0NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0
ZXIuanNvbjogQWRkZWQuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uLzogQWRk
ZWQuCisgICAgICAgICogaW1wb3J0ZWQvc2VsZW5pdW0vcHkvOiBBZGRlZC4KKwogMjAxNy0xMS0y
OCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4gVXBkYXRlIFczQyBXZWJEcml2ZXIgaW1wb3J0ZWQgdGVzdHMuCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vLmNsYXNzcGF0aCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi8uY2xhc3NwYXRoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZDM0MDA5MmMyZAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi8uY2xhc3Nw
YXRoCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgi
Pz4KKzxjbGFzc3BhdGg+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVj
bGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtp
bmQ9Im91dHB1dCIgcGF0aD0iYnVpbGQiLz4KKzwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL2NvbW1vbi13ZWIuaW1sIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL2NvbW1vbi13ZWIuaW1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNmJkM2IzZjc0NQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9jb21tb24t
d2ViLmltbApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPG1vZHVsZSB0eXBlPSJXRUJfTU9EVUxFIiB2ZXJzaW9uPSI0Ij4KKyAgPGNvbXBv
bmVudCBuYW1lPSJOZXdNb2R1bGVSb290TWFuYWdlciIgaW5oZXJpdC1jb21waWxlci1vdXRwdXQ9
InRydWUiPgorICAgIDxleGNsdWRlLW91dHB1dCAvPgorICAgIDxjb250ZW50IHVybD0iZmlsZTov
LyRNT0RVTEVfRElSJC9zcmMvd2ViIj4KKyAgICAgIDxzb3VyY2VGb2xkZXIgdXJsPSJmaWxlOi8v
JE1PRFVMRV9ESVIkL3NyYy93ZWIiIHR5cGU9ImphdmEtdGVzdC1yZXNvdXJjZSIgLz4KKyAgICA8
L2NvbnRlbnQ+CisgICAgPG9yZGVyRW50cnkgdHlwZT0ic291cmNlRm9sZGVyIiBmb3JUZXN0cz0i
ZmFsc2UiIC8+CisgIDwvY29tcG9uZW50PgorICA8Y29tcG9uZW50IG5hbWU9InNvbmFyTW9kdWxl
U2V0dGluZ3MiPgorICAgIDxvcHRpb24gbmFtZT0ibG9jYWxBbmFseXNpc1NjcmlwTmFtZSIgdmFs
dWU9IiZsdDtQUk9KRUNUJmd0OyIgLz4KKyAgICA8b3B0aW9uIG5hbWU9InNlcnZlck5hbWUiIHZh
bHVlPSImbHQ7UFJPSkVDVCZndDsiIC8+CisgIDwvY29tcG9uZW50PgorPC9tb2R1bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvQmluL0ludGVsbGlnZW5jaWEuVXJsUmV3cml0ZXIu
ZGxsIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvQmlu
L0ludGVsbGlnZW5jaWEuVXJsUmV3cml0ZXIuZGxsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1YzMwZTM1YTBjMWI2
ZjhmOGRmNGY4NDAyOGE0NjVlNTYxNGE0MDIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDU3MzQ0
CnpjbWVJYmR3aTZ8Xio/QHxYWVpTMiR0RUVva2RSRzRTUmVeT1B5cz0/MVNGT0ZPfjRCKiR3SCNa
SzRFdSoxTyZzIQp6cyEoc3hUQzNKNy1kZTQ7bH4hQT0rRz1ZbCk9UlomWWdARm9VYUdDRnd6YzJ0
dy0+K2ZiN3IzMVhFI0NsXzAhTXEKemBeUHQlKlBmai1iTFB5TUdpUFNiJXJubnEoWWslKUF8Zn13
QUFVJTVLWXNaJE9XO1I/Snx1QH56OCNgXzE1ZWY3CnpaIUNQT2M0ZDE8RCQ8Pl9IWWEwVWs9OXJ1
VldsRyo8Qj89ZkJHUXFGRyVyflo+OVg0NWpZVVBsKFZGJHJjfDsyaAp6N3liUm1QdExiWGR4Yile
MSV7WEM5PmhkYz8wMjVoO2EzQz9PTUoxQ25gMm1oYDl1c04jUGJMQkxOcE07P2NZcVkKeig2b2Ne
M0okJE8pU1kxPk5nNWJiPXRQZS05M2s+TVgjS3ohSVBrYEZkfE1qJFZfeU00biQlVXg0Tk5gfXE3
OUE3CnpSSShNQSRvMntYTyFFbDdqP1hNS1M3UzJYWEBPQTVzJigqO2c5dCY7JkI9YCEjMEU3bXNE
VktaM35GRmQxQWBoRQp6KVdEenkxfm85S2ZrNiFuWVQqQUI0SUpRZ0g5b3ZISFN0fXUyfXtoKUx8
OCR9WFRqTS1NRkVXKiEldTBHTnN+MDQKejg3KDBTeCo3X1M7TVNjZzErdmBAWSlBJChUfDFIRkhy
K2M+d3RHRENse09qVnYtOXVaI1BOQT9pbjZySE89QzQzCnptb09zMyhgQWh8JFpKTmlgVWt8NC1m
TllpPFp8WD9RbmslSEg1OEZNZDVnZVFLflREdCNRbypxdzB0PUA+diRSZwp6cDFnNFpOeUJDb0R9
Snc0NCN0SE9EKmFYazAlPkc1Z0k8P34/Rj9eJnlTKDcjWVFIck0yQFN0YElxZEkmcypJdlEKenkq
RlQwQkpOMVZjO0VPcThDY18rU2ppdFppTlkrZEwzN0VYRjZ5UWo+Zm9ZUGg9VWZ3PC1yTkYlX3Ro
aj4kUWQ+Cnpkaz5kWTtId1kjUkJgbitJalA4RTdXIVFsTUQ/T2ZHY2V2O3VfZyF8RiRXNkAzPzY/
RlRILWJeRFp+WmlxY25uYwp6QDw/Xl8rQ29MTE9jTkEyPCtYKHdFbj88bHEod0x3c1ltaDBuLSR9
QWQpUnZgWDU9JFNoeXdNRj1rbH1oKkI+U1IKenZxeT0pYFk3PiMmNTV0bEBAOCFtSFBBTVMrTT4x
R2tpJSg8NXszR0VDXn5SbVRgbl5VcXctcWdRQ24qUWdJYSljCnpzZ0lwVTh5aWdBWk12Y2BPZlBI
OVFNUCswakVLdU5ZM2hMR0FSOD5xSkkzNj5nIU0oUE5DUnBuRHhPZl9pWnQzdAp6I3JSeT9nb1hV
S1o4TyUtSHNmP1lDOD5rYjZ3azhfdUE9STVDfE4kYj9sM3BJPyYkYklBcnFVIXhTOzRWSEJeYlkK
el4lKGdkc0U0T3RKKkpfVDY7c0xfWDluYD4hUSFmVl5kSHd8V145SlhIUzhtMUV2U0hOPkR+IURN
KCtHXmpUN183Cno2R2gyPXNTKSVUVUJiRDIkJjV4JmIyQ35DbjFjQlJnRHpfPD84fEZtT3lsOEFi
bDZ8VV5EPEtQOCsqfHFTd3s1cgp6MGM3T0ZkPkl1Yl9ramohRGFlXk9fS3QhP1deXj1VTH5sNWJu
QFZ+RThjanFMOEJxaUlXY3l4RU1uK2g3QXoxOCQKekVvaGxzYlJ3dVJ3Ql9sO1dwUD1faTs+bDtW
UmQteE9VeGFkJiYhJCRUMTgwYVZNZmFRbkVzOXRtOzBRSGp2dSV6CnptJGAjVVJBcCt3SU95ZXUy
c1plPChLYEgmdWFJKXcxVmxhcSpSM0tvM2RCMXhzJm5PWCN9XmdKe1RgWkVKWTNOeAp6WGZUUz0h
MyVRR3lDfFpQXjdMKi0+c2pNZzlWRH0kezI9UCRyZkhmc2AzMzA2T3hfOFlgfmQqQk9FQ0ZFTXhP
dyUKeiN4Vk0wTXhWM01EQ1g5bkQkfUk/eThBaWspTz9QeTV8Z3xkdWg3V3kkK1piezJOUzNuc3Ir
QXQpWjNJY1dueXl8CnpNI2tWeV95KHs8c1ZWM0ZkeGsmVHRrWEojdlkrbGFKS0wmQD03RmNARDdJ
b29yPzVlNFZ+SHJHZDk4NX1wdWxIPQp6WHxPKXZAPiUxY000cTJBYjdCQWI9U1lNeC07SkA+T2BS
d2t2cVlZcW5tYUpjeUJqOCUjfSNuPmYqSyFZcUp2PEIKelMyS2srNDVvYjk9aX1CNDkjTW9ZRTVl
UCtMSSU7OWwjc3gra2poc1dOcC1XNytxQWxgZWFJTUUtRkg0PHU2PkReCnpxOWJUYUtCbFdJSXV2
fTtGaUpCejlrTTdMb3szYjktY2s+dytiejhWKCs9QTRlM2x2QUtVaU9CSS1AWFoxPTlnfAp6RTVR
bEYjR150QHZwS3hoTTVNeitWYlFAY3MrPiQ7KFI5S1RlT1RxbkBFYyNJWjNjRnY8VzZDZjMrYGt4
KXkqV2AKek1nOGdwISMxTyo9ejJNUTh1VzZFbz80ViNKdyshWWpwZyZncF82QWdWS2FzSF9VP3Em
MjQ3SyVoTz1oN2poTmlECno2bFA3Ujt0R1FtOzROb00zdEFeSUkxIS1JSXRsTz1aP3B2Si1VJE9s
P2l0SnpVWUZiNCE3JWxDKSs7eEgjdmprYQp6YHx8SnleNj5CRTtySGdAVSgzVjRwTkRAYzU1Rm84
emNDTkxING5jZGdRcmVLYTNee1ZzPlUjTkRKTzl8WCNCSHoKeklMND0oXnNuYU9kLUhJTlRBRHN9
NHVVJXwwaXF+fHNoQEp2U3BYV3hOUkAqaCQte3E+aGQrfnRLYk9IJT0mWnE9CnpCVCkjPEUhU3B0
dW8xQSRJUT5PIyljaU9XRitZd3FscG58VGxeQDZFJDhsIW54Z3k0MWlPZWxtTnRoZVE3Tl9gTwp6
ZTNET1U3QWw1e3V5M15wRzNkREE9cnEpRFJ8Sz9kaHJ1NHkzUUwhVSQtQShTYXFIM1JDXlgqYUxo
dVZfI3g5dyEKeilZdnFkQkYkPVMrN2hedD5TK29GTERydzI5Pml9RDx0OHphY1NsZD1COFBESURK
JD89R2tfJmVLKWZ7KnArYk5DCnpUSkZkfTMjSndIVGVDUGc4PXhvPGg0Zng1ZFpxPFphfVpKTCZQ
d1BEeVE2YkMmUXMjUzVYWVopUG1NTXNXKjRUMwp6VX1jIyNBM3RNITRKVWJ7aTx5ZmZZdVBkN1JQ
RGpNM3M0WDclYGh5Y1A2SnlrdGdIcTJeOyNgfSFrLTUrWmtJdzQKemd+ejY0Q15nTSQ3Sm5iREIl
YyVweD9tcUd7VFdWK2VnZGQ8ST4kdmE/VEdQTktLMX1PMCgwTDszX2pvO0haZjxPCnpuaTtuX3lF
a1pCWHJRMTRXZCNlVHFFbkR3cDBkSSpgSnd2M2lkbH4kLWUpYUFJSnR6SVdHTz1SZz5aM0pnVCsq
SQp6Y3N1cEhvWVltRWRUfT1PcyFaeEtwSzNeK01KIVluNkQrdWAxcFMwSElfYyh8cX4pQTZRenpZ
Kk50JUZNRD4kaTYKeml9KEZaNXpPIW1QVnluSjFfOENhbz9pOWdoYVYyRyF1RjB8Vys9T2koQy1W
M0ZyPW08PS1FVlg3KmBjOEd1VXQxCnoxKzBrbXNEI2YqaGB2eD1ySDElSWV8ZUpRWn1IMkpabCls
M2FKeURBQm5fNU5zOzxuRXZQTj1BeTwpPl57X1IxKAp6PDheelglWXdPamVLTE5iWj9ZYENrUl9D
ckM4THImU3ZXcW9mUFl0KGg/Mnp6TStqeXR7Z355cjBkbH1yWUBLOHAKejZtbXFnUEQ8VGpjWF5V
aVpiOFQ2blFrRHBNNl9CSXdKMFcrK05xZldVa15HTGJ9ZCpwPS15fnRqNyhsJTU2fHFfCnohJDIm
JEdqPmxmSGhBSEt4dV9MIzdLQHgyZG9QJFUmOFBOYVdPVlQ9VzFsP1F0MVNJRjImXm88I0trPXAz
bzAwQgp6KDFLTkNZKjJlTy0rZWprbGY0PjkwdlJmaWJZeSZINExOVV8rTlV8K05ZVDkqdTgxeGYj
eWF+NkxORzh9WFJvNm0Kej0+K3xCI3dxPURDTGBjR2NBZiVsajMzdyRnfSNQU3t5ZzF0VmppRWVC
NDImZj1RSzlWNF5VbDBPLShfJGNxYElVCnpEZklCKmJ+VWkzSGI0blFFKD5FTWJUSkRGK2ApcEVW
PkI9VjdQPVRPM2BTckxJMSVGd2hBTyokPWtlbCFKOSNqKgp6NzchOT1ueE5EKF4kQXZuQykqQiVl
bSZAWDlTTUhiNm96UngjZjUmPV9YM0Mhb3slX1dYV3A+NEpqcDR5Z3EyNjcKej9NJnc+d2V6cnY8
PmxoRXlqO0czKUdfUnFBOFE+JXBITiQmYGZlIX5yRyg0Tmd7b2xnNE5mMSYhXzNnSU4zNWdOCno3
eHZaVHN8LVotV35EKTI+THFBWGI/anopVVZQYSFoTkFOTDlIUUZgJm8oWm0kQ19FTUtJcFgrK0E0
PlMlMF9SQgp6Yn1VU2duQ1BZKjJFOSk8OEI1KCR1TFQwaEY7QGh8aS0lVVhmdmpPLVBXUHwxYDx5
NTJMM1BkdCNWdWl2dnkxdkkKejNeYkNCJkNXVSNwbk92OEZzKzU3WEVSO2FSJUFxMTQ3KyRqTXBy
eHdkQjs9KUNsbz8xUVBFalNNUSlgY1hjUXspCnpEaXdKZkdNZVR4UjdMWWQ4P1ZSZkk9YnNBNWBD
UzhmcjxPclVBYCRZcFBHIX48Qj43YjtlKk5rR3RhcEx0UFE1Mgp6OCQ9OzFNbVNFZFJWLXYoJT4l
biQtUj9qPCk7diN2Jkx0fXQ2ZTBBbWQtPDR9cTdrKjBhYT8zRHhuSFBzd1AwWDIKel9FZTRoMUZm
bUteSmRvNmJ2KTVDVH0xUUFUfm9XbjQ+RVQhblJQYWIxfSVFMHJkMlpqcn0yVUdga3lXJXBJYHFu
Cnp4cW0jMWRYflpOTCslRCtKUyhPV3kqbTROVk4/YlN4d1FgfnZ4SWRINmprYihGeTA9OWNvSGVW
VU84TUJGOSFBIQp6UHJjOTImRStrMGA7ezUlVWYlRmp3dXxUM3VnaDh3bzwkU3Axb1doR2RfYXc0
KDskUElSM2NgOz9GcVN+YTRPSV8KekhuMGU4U0hPeFBGZWRDU250PFZsQlFkQGAkbkI9YWg3Oytl
RUBrVjdqSUg2WnAwNlQ+P1hKSCphXm8mVUE8RDxKCnp7cnUhP05GcHxBJG56Y01xeFF0SXhWPzle
NHs3TE52aEw0U1gtaF8+RTtUTzApUmJxUT1aQTItX0NzOUNDKDs9KAp6XntOYTd6OG9pdDw4dzNV
MGFIZmY2dVAjMDlzdSpFQF93PnU9NFVgV1N0bm8qdXUkYnNqcGR3Vz1vYlUmJSVxUngKend8TX01
PDM1VT92eTFgU3B5JVY7ei18K30tQk01dEo3MmwtNTVSbHh6cm5sTT1JekdMSnJRUCl5ZipMTyVK
dVY8CnpVSkc+NlhLV1JyO31yUns8MW1AfFlIelM4UEBaST5UTExvQVhsdmxEb1YrPz1xP0cqQF89
YHk2UHg3WXpieTdCKAp6Wj9oZysxQTVGZGRHaG5GVmIqNSNEM0hSTSRxVl9IcHVwdHFDXyp9RHAk
U2pkan0qVl5xcms4aF9JamgmMU56YG8KemRnei1kMTE9eEA5UGFId1NxTnpfYXUpWCl4NklQWW96
JH4qe2ZfY05KeE9+ZWpJanFDX0dPQyNVYm9EZD80OHNYCnpSMX5AfVBzKkhXND5yI3BXdzd4I2pJ
ckdrXyF5V2hTc0g2MnolNX4pYjI5aEpoIVhUcEtMYXhfdyVeczVhdVE4Rwp6U0IpdEtPfmtzPXB0
RGhfZiRpJktgb31seSMmYDVMT25edTRaeShiPzlfYD1XYzdNUENBUmltSVo2cFE5YGs0QzEKeiY7
SmVIRnYoLSR7ZkI+cEh5a15+YCh5ZkVrdDtpPHtyfU1TJl5QMmBNaDYmVVk5UHhvJV5ARThGS35m
ejxASEJCCnpYcTBCe0NoTTJXcyp6TGRtNVV4S0QoczxWbEMyM3wyQzkpSmllKzk5eUZ8MF88NGEt
dUApbnR4UjhnP0VUdS0mZgp6R0lxezhfSWtONnZ5SkZpdWlTQ1FTeFo/NURGSHZlc3lnRTt0fChf
THp+RTg4VTlILVo9T0k/UDY3Rkd6NldWbV8KemolO2oyO2VeRkhfRnw1MDFCZHo8QlprWkJQTHxt
ITc1YzQ2RzZlI3xnZT9NPE4jPk5OZExfMyVnJGdVaFYkSkFLCno/NyhBJldCbVJjU1JSd1R4VHkj
QmEqUkk1UDJqMyRgM0FGV3lqSSUzPX4mZERNKlppYTBjYCgmclk/QCZ7b2soKAp6cmpgRzJUfSsl
ZjhPWXhuKEI4azIrYitzQFdYbThgRDNZPGcqeUZaTHkjNHktPVFaOE8lc2FDQSFUWjZFZEZNcFYK
emRVUVZ6KH1hQVlhYiRCQG4qZ0ptMHFuTlYkbnt7PlgwdjBWP1ZGZnRnOW5AeHBKK1ErU24hP3Re
TGdRO18rO2xuCnpTTSolVG91aXZxazJOcDBUSm45U0tZZGhRN3MxfTshXkA9KUw4X0tadTRwRyRx
PkRrS0toRllwclhMVGE2SXFPZAp6dDZKRk5YI0A8QiZsQkpRR0BkckZae2Y7NSVpaDdVRjNYWnFe
OEFoK29LZGFBS1ZIdTZ7Jkg0KWwkPT9lK1k0fnMKem59aDJrQTElQjJGWWdDMXE/OHd5eCliWH1F
eCNsMDRpKEY1YT02ZChRQk5lY3U9MHtEKUtTdD5BQ1o9fSg9djg/CnozYlEqRUs9eEMjZUwzdDso
bEtmeDlYbF9YYm84e1dPIUFPYyQmPEBoPC0tbjwmZ2FWUFE+ZU5+eHx7Y2NuMUpndQp6UTJ5PGl7
TW1DX0YyIUl5X2VPNGFecWowYikoKyV3eHZkTHF6T0ZwSmw1WHZFQEV0KE15RXlxTUk9PThEKCl2
Q2sKelpNVTcpJno0YVdvS283a0EhN0Bzb1hnPSNEVnVTKnFzNmU2cF83TXpPc0woODhhKkk0R3Vz
O3E7JlQqWEdkVCp6CnpuIzU1KGJxdTRKJTtYZ3VeRndGTT8+Vk4obGNsTSs7dFk3fjEtfGx7aEE7
Um1JOVY3MXVrNUlwNiFEZntaKFJnNQp6OFVnVERJRk04VXEjSkskUSZUflhmRT9VRD0jQkMqcWFu
bilxJD1mMnI4dHU/MWhfKX5XJTc5cUtFTE1kMlY2SWAKeiRCLUVsYzVLamJFP0d9amIzSE42JXRR
dEJJME5qbzN9I3hOPE87YXRydlVadlVEP3JDVDJ0aVFrSCglJWFDPj4tCnpna2ZJKWV4SEI7TTA0
blA2YEYqemdaXyMmZz97OGF7eGBmViRYbW14RmBKKFNweVNhPCRnJkZ0QDN0LWxOQnN+fQp6QkZ4
TEBxYmIhJWhHRVZhLXBXZzNURVJodnZBZlV9Kz0/PX4ybDNXa2ZTYGp+b29tUUdfakUtKzEmWit6
d2RNLWIKemlaPUReNlpANl5nVDZZUFc0YV40YG1ZaH42VXB7cTl9QWRWIVI8Vy14bEArYF5sYH5+
ZGR9PTt5Nkg2SjJNXmZPCno0fCEraGFeeDZoVD47MjtGfDJWfEA7WSFjdERQI241fjxzNTZTM19F
TkExS2FOfUdhbXU5VT94dCpiIVZGZjkyRQp6PH10RCM1MF5APk8jVDRydTlgcVVmKyR3U0xETi1V
VWdqPDxFM0Bfa1F8KUIoOSolcm1IST4kOWdlclA5ZXE3ZFAKejYlcUZwWGkoODRgSF9NZDlTI1l0
WW5WOXRJWTVjRXVIe0B3VVd1Qn41cVNpJUsyLSFpPDA/ZH1LdX0+X211MTF4CnohYX1paFM9ViEj
MXdTTitvJFRjNmxCPzJZMyptWCgkPUpKZjFMKE1Jb04tXzE5flpxKiRBT1dxUSo9SlUhcTNzQwp6
cUJqWDA/PT8pdEl3UWpFcz9KNFdWMDQ9aS10eW14ITRzIU80dUVwIXU1OW9eM0VzQEhlSDtgTSFH
TUdAbnh8cTYKenNjekc9UWBtJnVKMjd5JExtdWxFa1FZc2Uxa2BmX0Y/RGtYR3hkZiU+VUArT25H
VUZqVW9YQn43RXBXbHlrbWlmCno+VDImazxROyVkZiNUeH07VkNBfUdrN2R+ZTQ1WDM0dFdYe0FB
Ym0yT1Nkd2crd3p6X0g/VUNTalZTRHdIZDZoUwp6eWhZNjZGSGArYj9lTCN6KGtNZ1hGWXpBPUpV
fG1eRzxyTXQlfDhhZDE4aiFJREVOSX4rYGRKZWpFfWo0Yj8zNzEKelleSn1qeUBTPVA/N14/ZDJ+
OGw4eG5uMXtMdGRYMnozMGJxdExEZFhgfVpxREI2R3s9OHozKWNwWjw5emxFPFF1CnpFJU9lczhh
KEsqWlBaelJQSUZsZW5mZWNPJmowdTVIYCRHTnBWIThxNFVCMVFrbSVjeE05bzFuQGF1LUh2cmpx
IQp6SnplRUFjUUMyLThheFJjcDVUJEZWcDU/dUlTUzA4dyp5MTNBQiEqIWw+QD10PGZsc3c7XiNN
RW8lNDAlT2c0WmQKeklTRHw+Zn5HZiRwNS0taEVKKFAmM21QNSNaOHJGKVoxQig3OzluMy07Y1NK
cyExUDZWRFRBTFc+Z05SaDVzcDZWCnpJRTFZP0xGPHpmZCl7YXA8ZVQ7XylLUjVIX0NkQFVVJmBX
cTVgTitgYXxmJTBQb2o4aE57N2pzOWZ1MVhSa183cQp6cCpaU29hKD5JN01WTiYwI0BMMCs4TnMp
WkZybkFVdTxZMHc+UkplKy0hWT5taHVGc2xQfmM8fklBT1JoeG42NXEKemlEcSVwTkk0TkN7NyFf
TTtGSXVLU1pVaTRuWVFLaVZ8TWw3UEpOTnZHWDxVU1gzaWI+ZEE0eEVYbilQPCQ7Q2Q/Cno8JkRs
e21FTVZIOVBhUjJVcS07REA8O2Z4aXBrSVd0aCozdi0zP0ltYSskOWwlQ0FLRGhfQGIodHxiJjBL
Znxjdgp6YWJPJVpja3l1fTR2KFVoPWNfUXw+Z2xVUmh1SSlBJmxPJHRaRDZDc3VCM0AocW1JRkg/
OUlxaVJ+IVF2aip7ZV4KejNxMVl8MW9TJT5KTTA3IzFAWjJTZGZ9b0ombz9WM2s5MFE5NVhaZDkr
cWhtbG0+TT91V0c2eytKXyRDNEQlS29WCnpQIXBVflN+SnY8bkVERTIqez1LfGQ2blotZShFfSZw
VlBiUFJuJWoyd3R1e1ZxRmlGNXNqbmhlKDN8PWllaFBmWQp6U0ArO0srdEk5cEt6LUtOZ35ze0Bl
emE5RzFIb2xtWThwNFNQVHtgZndlQUl9NDN2ZmJDflAyRC14Zldjdm4qaDYKekEwa1M8NkRIdmlA
SFlgR0AmfV5tQlh9cj1ReX1RWCFUSmk5SHoweVZnLTxQUHByWHxDYXZkXzxrTXhFXipkRiV8CnpA
VkxEaz5hKSplVHQ9cm51QWlVekBBY1FnYCtmd2kkTEgyakNMUENpREdHM092Ki1oMEtKOXVXeVFD
fTJpeitrRgp6QE9JdCRzcU5AMHNiNCo/Sl8+eTUoRCsxVzg7M0s7Z25WYG5YSmM/aF8oY3xadHok
ZTYjWT1DT19IKz9pZ3ZNbXIKelE7OTFoazdoZk12cjhyOSUhYUoxZGYqNy1Ga2slIVhWRTFOM2xh
LWRWdGNKV2ZXeW5uI3s2cUk9NXcrQWBIMWpZCno9bnljNyU/TC17Z0t6PmE1NWlMeC0jR09rbERE
Z1piQDYjPTwxWilmaSRve1RnYm4xdi1VR05HKylCcXxvb1QjPgp6UWc5OXt6JTZ6cTZgc1p6S2pt
az9YZmVXTHJRUGBMRjdYJSZDWENrU2RiOV9fQlJlWTIxbG8pRnlAKS1HJkYxKzUKemtNTHk5QEhF
WChPSHgoKGV0SGUxXlc0fmthLSUzMD9eOyNjP15gP3Nlb3piLT1kPDJNNSVNMERPMF56RjtfKXhZ
CnpiRUVIUm5ONGpDWShZQjZiQ2Zkaj98P3BlMD8kQElVYEhQOThqTWF5NFY7LUF5KWAtentTNDVu
KkNETCRCRVIocgp6Syo1QkB7QE9gUzxDIytxX2JZbT5yJDEpKF5yTWZgKF5pXihrSjN9M0BiQiYk
UChTeyNwSCF9YnkwYXUjQFhZJVQKenhYTUJiY0ZWZk4lMWt+PTJTVmVyeE0pZjUkN0E7fkBMLXlj
O18+KH5ATC13QDQ8MFcrWnhVdDtLMzV9QzVfO3tVCnpQLXVPM2k0akdVMWBGTlJfd248cmlZPlJQ
ezVufmo2ZFgqOHFFWUg2c2JBfGNXYm4oTHNEKTw2KUJnSXhmT1FDPQp6O005cElPYFFHVSlYfmA+
cDErZj9YMnpecnApcnt0T0ZlYyQ2VU8qM0x4I2cxNkkmNDNEYmdTSV8rKlo+PjNsVigKekgyUXNO
cUk/UHU3dzx4R0dFPGhpVW9IJmV1bWo+YGlxeF87SWI9b01lK1k2dXw1UlV1a3luWk9OcHgyJllI
djF9CnpLK3NwU1c3YXdORWlkKCNtajt4O0wwZ2FzUTxjRDI1O19HUT95SCRUKjs3JktwV3llXkw/
Xm97TiZ7Z0dGSkRIdgp6YzF+Wi0mUCl7XjM8biltQFN6R3BSM1dJVTVjYnp3VlBEZWwhQVUmS2Yp
fDdmTUNsY3haO2AqV1B7JDIoIzEta2QKejtmfWJGOWB4cUlHe2MyX3pRITlhdll4fmJvfmlic0xC
Z1RuZ2RPMlB7ZHlFUkdnSVZ7QFF7OCo3VjlgP2s/QD44CnojVigoKUZCYk50Q0U9MyMhZjs3QXRj
c2FYOXJvY2gzZWB0KG97WDFMITNubTcxPF8lWVBqZU01SS0tc2ZuPjVRPAp6ZjBJJGo5cWcmSGNm
Q0tNN2d1cTNIJDZKXmVlZCZoVV5Wd2FjamdAbDdqYEBzeihQfXhnU0dWfDBBNT9qZlh2d2wKelRA
cEE1MWo4NzNkYlhjUkEmQjJ+SWpWc2o2aX5eJlQhRSZRY3h4SSpnR1k5Y1B9QjQxSFVSeX1OMkJN
X1oyPGF7Cnpqei1VcEtJcS10aHZrI3ErZjI0e1lzfkB5cFVVPUhQb1VtUCtENzR+I3dtTCpGIWRn
MnF+YTt+PmZTIUN1QntpSgp6PTU2bU8yTGVQLXxMQzNYcGJ5WkVfPk5vQW5AWSNLOGtmZ1lSIV8x
dXAyfiFsJDc1fnJXUFBNNylvTFg+SjJzfkoKelF9IWclOWJJdWQ+eHlfZk9JO3NYOVoja0B0aTtT
b2paS1h3RyZNQ2ZIcX1Td19IP0Z1bEpTe3xjdXpWUj4jVUN+Cno/YitEYihSekJrY2NwYitKVFlf
UU5oaWZsWGclUz9Oeioxemk4b0N9KTV5fnVvX15fVVVIKiE2dkxtdGlLVjh6Jgp6KzA5RzRodV4k
Kz13bzAxKHlERjB7OEdxPkpeWXVwNSNSbDRyfDswfUFBSUBIaiNxeTFiV153SXJ5WDxOZDtSNGIK
ejQqbCsqaG9rVFE/YTltRS1QPn43LUBBWUt7TkVSRG9eUGZYWSQhVHo9ajJJP1pAZ2pKKmV7JVZe
MjlsZCYtdSQ9CnpgP2BMTkY+KEBXQEpvREdxQUlnb01BaTdoQW15X2NASCZLWHlwez88aV9Md1Np
UWhQQXspcGRta2lHYExfYWgjegp6Rk1Tb145ciZLPkEqIUVFWlRMJiN3Ym01PTclcyszKmxBaXFu
e1opVjQ2a0Z5WChmKGxjaksybyhiPH0/MyVkYFUKek5MWnxpbVY7bW1vXnk1eHZvYGlWWTBQWUpP
M1JEMDg8RTU+Jm5vVi1rK2w9JG9SNjNgbmhueXJ7LXBVRkghO1YjCnpEMzBAWFA9WXEmSE1rYEhF
UE5MckpeQH54O0Z6UjZPZ2N7eHUwUjRzYkhWK35OWU1jPHlnekFmT3AyWiFtQEV5Ugp6JlotI0RA
dlFsJURAV1JUOCgyanRXS314UFMweXw8OHJ9a195RzNhJm5NUFRGeEBARFJOUkQjeVI/JFRWWUhn
UmEKekxmV1luK1MhQ0o+dmw3VT5sVDVxVE97UiVqdj4wMm5ofDI2Z3BsMHx2VSl8dkUhez98Zz9B
NmF3bmdNdF5lezQlCnpGQlJwdExDUkxxdXJlMWZZLT1QcFVLYGtSZnQ7dz9ZWWpwY3QpJnFsWD1J
V1ZCNFF4MjNGWmlTMz4/YFEqJDlgNQp6R1VHSEFTKmxiUCl+OyZNRyVoOHVLKUB9KDNJeE5Nejx5
SVp4NXh5TiRGR3BgeVAqdH5jPVkxLWZfJnNrRnRfbUQKejVTdnluQnlxfXtxVDRfY3V7QSQlOEBK
SkRiaXlmRldwYSZfKT4/JklOKDw4OEdHYHpvamhmeG9tVy0hVEBsKygxCnpqN1J2TU5vIUxpLTUh
c21WcU5oX3kwPCZ0TlcqNz9wbGY0aVp6UkV5eFNCRTwtX3B+T2pKR3c/c0ZrM05yN2BBaAp6PmBC
S1hWfE8mfDlMcDVVRGMwRihvekZ5KHFZITE7bCtPaCpoUnNNa25ZNUNUX0VANT1Hb0VhdWRke2hz
I3lqSSgKekBrQmIoVzxsNXRgKXR7JU13O31vKVFMRHxsZVVRRmcpRiNnR2o1fHRrJChMQXAzWThE
Z3twczdQYiFVVEk5b2U9CnorRThfO1k4cSlNditHRTdfa2NvNComZzU0TllodEJrc09vaWo8PEdm
PlZPRURZTlVGKXlSQnFlbHhgfm9FWWs3aAp6cmRUVnFLV2I1fFRUOWorTG87PElHNGJge0k/Izlg
KGlZIztremZ0YTA4dXglWmpFKkpJTkRPVEslYD8rQm9ec24KemxCQkFMUTxPJDNVNnQleTl6UT9Y
ZmtHUD4mcyFObUU3Rk1OQGl3JF5ZbnEheUg5XmAhVkE5VTlqaHZXRCRDOHFeCnpHMlI7TU55WFc0
bDBCVn14QmBpb05PZE18cyFkaTswI2E3MExJekAzeGd1P0tjWExXVmNEclYkQkNTP3BRXiNnWgp6
JjI5QmNRNzh6cFR5OSQ9WkNSKlhxOERaPExadW9iaylAc1M3LVVNdXd8MnpPa016UUtLJHZVRE1Y
O0ZBV0NEaGUKek5QI0p7MVhNaSR4YCRHc2liJHRyYjtDcjtyU2Jaa2V2STIlNnN+S2tkaypleGdg
YmsqZzBkWTAzaHpqT3hUNmlpCnp3V0szck03WXY1LW9hJW53YnRZM2N5dTNoZlUhRiF2emw/eT0h
I0Z3IU8yNX0pU2FZVENwQXVMb0hGX048MFp5fQp6ZmVMZihNMERnYDdgQDxrP2krPSRhelhnOTlv
QFp4czFIdW9zOHVWZHshRGY0PjhSNkl3S09BYjJKcStNWT50fUsKeiQtNVR2S31wNkxITWg2fFQ7
JV5ZQ1MjTE5PNzh9YDJ3KFZhXmEtVEJmIXtpTztyWXEpdHw5bmtLYXN6MV5mN2hICnotM3lZfWpq
KmFnUTIlLXs7O247RSstNUVfZ1kqO2dWYmU9TF4+V1BuZkZZWGlvOFN4NEN3Jm9ZZWdEcTQ0NTxa
dgp6cmQ7NWs9P35IJHtYaDE1PjRFXnF7e31FZkNqYHJiQzNKaTZgZTJBUTdJTG83N091bV9XVkVP
fTdeSFFAJTx+KD8KejVucXRyRGxQfWpoJW5RZjhSaW4oMGZUZ1RjcVZ4TXFWKTA3NUVZakZ0MjlW
PW0yb01iRGNAVGpxVGlQQHtpK0o0Cnp8RD9iTkR6Mn5hKG59UmowUytESjhzPz0mZmhfX3ozZnYq
XjhpNUF8e3olfWYwP2tVIVJVYDI5TzZEQXw8UWk9ZQp6Yyh1Z2JEZEZQYmQmfDk0MXNKMzshJiQw
MSEmJkNFZ2ctYUBsSHAkWjwjNldxZms1dkZ1SjVRMzUkSkh2aD4wVkQKencwZ3dEVyhqUV9hWHF3
ajE3TF9Ba2twP2Qpa3wtSDlfeTFUJkswVmZJM2gkNXohSThNI3FeNS15XzdfJW0oQispCnpwQCR7
QE1TJXM/KkYoZU90R05aMlI1UShiZnQ0ZVJNdXpCfGsqdjJ9QlUhP2BNfTdgNT87fEVlXikoIy1i
UGR5Zwp6QWFIbnUhI3g3YE40UEZHM1ZiTVhkbjgwSk1nRTAkYDlSPV93UUwpNllCe0QyRmk0TnFt
UDVqUyowUHBAYnF0M0oKejk4Kl5gKG82SHxTWGIpPi1kTSshVXFmbiQ0JWJDfFJ+ZklzaD1XdSg+
Y19DRnY0Q0VoSUJGZzIpd1dwZmRwODQlCnoobiU3PmNybXJaT1R5aEo9cDNBT3lgO0d5S2QwUi1Y
KVprRldiOFlGZDliK1QqS2VLJUhWa3dfMWJiT3kjZSUpMQp6djlNcmREOVJHU2hHP3U1PihGOHY0
YUBeQldzLUl4dXFLcE5BPW9eQDB5dHlJckxQZG0wekJibnRXfmZnPzhVUHoKeko7byk1MmE9NEh3
N1VjPU0qcm0hOXV6RSQrbFpMKk41QkBNLTVVa19nYHx+VyNsVUhBT0lqJlM3UitUYiZvYk9mCnoh
UX5DYkVpZk1KWGdUa01zaTJ2WGNBMkRBJkA5UCF2dFlJR1QkdHhPOGUxIXJyN3FARE9KfEMlTjR2
Tms+Uyg+Qgp6Tz4tQEJkNE8kQHcxaklYZTQwXk1IKm8xVTByTFFCN3dqJkxTd2lfdTtXNyNpRjR5
KTYqUS1MZ1R9dD0zVXY9JDYKenpDTktHO3BYeTIoWiFOQjhFTVMoNjJVJjl1fDB4cShEXjxrKmo5
flFDRF41IUBAa1JnN00qc0RxPHZlYi01fVVBCnpJXypabWV5ZyF0MV5iN18/aHZmUHFoJEd0VXtp
cHgpTCM+PE1QdjYwY0RCWUk1Rzx2IT8rQTk4Iz1iOS0tMztzPQp6YTUqZSM0K0c9Y3t6eD9PZj02
bE1ObEUqeT1XaVpQZHM/dDZ1Zm09Yz8wQWhtRlc0Tjd7WTxkczh2Qkp7Rl4jPD4Keipmem5BcWdU
LVJpc0A0Q2V5PDBzeWpQfDRgKylJRV5FST9hRitDPH09Z0BufE5BeERKRmY3N3J1PVR0dlkzbTg2
CnpiZGRIPlVfJnc2Z248PjQkSHpSa1g+NiFxK289cHBpZk1gT0IlRWczUDhHc3NCYF49TGstJiZy
ZmVwcDh4TyQ9Tgp6aytlJTAxSjhZZVR+NFBVP1R+S18zVm1BT1AoTkd4TlAoT0QlTWt2UXBIbyVM
N3lQKU5PbyM5QWNPKDM7cV5pOG0KekBMXypYQ05CanBNN1M+UzhOaGh+PUMobSVOV3p4e1pve1ZY
JkxESjQtd3lyYEBPIzFBMEd8IUFCcmdXdjBzS1NvCnpGTSFeSHpYMSpfXyZlYkVmLSVULUJBYEw1
M3o+ZDxBJX5SPSh+N1AoUmA7RCEjQ01eYkNVQip8YzdmWGo/aUlMQwp6O083Tj9RUSs0RUp9Ql56
ei1JO2lRc0M8WHwxOXZJMHt0Tl9yQSVQMHokU3NHMndXO0tDZVJZTlAyZ15VZGojJG0KemMpaD98
MWIjKX1nOH5sO2RgOTVRMF5idCZwMT08VW1KVlNWTWhsIVNhR302ODA8KDkqdG5SeTFWbT5ZS1dg
UEY8CnpKfSZVKjBeYnQmZnh0ajliRkxCQzJ4IXBoO1ZPP29QbG5Ge0pPYiRUMjFfPTNSYC0+Wm9D
YFI4MipXV2RFTzRRfgp6UilNPCY/aHwtVzszMHVPNlpuP0VlK2V1c1dqPjw+UDgydiM7TW9FQDFA
O05OUXM5ayVWUzJFWFpSdk5WWiRQJSEKeiVCcnlDXkw4MV8/Nmw8ZiU0JkhsWGVoKEwoQmxBMGhL
Pld8ZGY5YnA4UVA2bnBDI30tei00X3FobUhaPEMtNSNuCnpnVDdTbSQ4bkh2OyticmlJeERLcyYt
cnU2YkV+ZnVzWUBlX0AkOylIJSh3ZCNycTYpZ3JtPV9RTUEtZDt5PHU9Wgp6X0JyYDskbnpVdDFB
Nms/NXlzVEp1M2oyZUUxM1VYLSZEK19eJjB6N3V2dmx+R0J9QD8/JEg/WV5pZGhSeXV4S1oKelpW
emN2bkV3cF9MZnJlJkVaODlfSndPKl5ENXQ9YHhIPD5CSXxxOSMyUm85M3koaWN3UUZyIVhzXkh0
QmJwSzh+CnoqREloViFCbHcjKVRZdXZ4Z05nOHdKTUVSPkpTfGY+PHl7VzVMITR8YXBBZmIoKn1o
aFVwdWZwZipxMjRDM0tyJAp6RHFrcztAckR+cD1YXy1wUmhZQyY4TVcmKWUmU2U4N2lmJUlySlZL
JnJkcCsob148NF5BUGg5WmxrLShsTH1RJDwKemxCTml6QD5Ob3xOKXReQ3J2b35UK2hfIzY9MThs
ZSFtLVIjTm5LM34xeWRSdk5mIXVxaVReJFNfUlBzYVdnI2BSCnpQbytyLTV4UUhqTCZQUTIodTsh
YXIqTDJveXAwR1JXR1hBVDB5RSRPIUJseXBEVjw1SCFyWFBnIXUoU0xiP34jRQp6NmlvM1BPQSVm
d2k3bDt6Y2V5fD8jYnEyRlFFOEJ+NG8/dT9SVHltIXRPSGllVGolZ1ZIVX5aanw3QEdhKVNXUFEK
ekM9N0wmZn03PElYREhWSmRvelJHMFotMDchN2hDWVBHfTdpPj58bEdrKX0zQ24qWFo2UkhRQWAq
bVolZzBvJE9sCnpnTW9YMnI4VENgZmJHJGtJczxsdCM/JT9HZG8pJU1kPnJ7Nik3YnByR3RAKmMz
VS1uSSV3UWRgdyp8WH4mSkRmKgp6T2RTQCEjPWtge1leQzZINGViJFo3U19GdFRAaWM8bC0oTnBP
N0s8cXJoNWUyS1d1aXZocSNPR1VjcSl0e2Y/KUAKem4pMT91dkJ2Uksldjt+SXBEcihHejtnRW5q
b2t3NTFSNT5OP0VRMmZ1I0BPWGpVNUl5am4rKDdgQ2JCY0dFSlNMCnp1cztIdU4mOE12KiM4RTBE
bXtZZD5Pe1hiVCFra1h2KntWWilKVzchdVBLYVhWNz1OKjsldVVBWEI1c2Y9RnQ+KAp6eFBZfTNI
WEhNNHJOWDJScipRJjRoZGhiRyh+Wis4b2s/NFZqcGBjJmQmQShnN0RXaWszdm55VUNvPFRAeilz
SSMKenA4fmNwZ1lvPz5peVlXJFZ7cnolc2NeTmlsbigwPm5DRWhPUURlKz0xLSs+Oz1EQ3ZJKkJK
OSRNZ0ZQRz1uZFF1Cnp2KVdpcSEhKlZgKkFRUmdydXhHYT48IUcmWDxXaU9UQnRFRDtZPlA5Vl9k
Pm4pVHVFcDtjVTdmZ1JNNXNxMDJTSwp6QzJYSkAxWEcmZCRjNW9eJGlwe0FXVXdNMGlQfV5XOVYp
dTNGbTdiQT8+ak5jbXJkaCpue3g3SEcwd00lP3ZjX3oKek4maFZEMChTUV9DZ3lRejNZfC1qMiZO
PUVtITIyd2tlcytWbSlfSkUlV15LZ3VRQkYlRjhRWjM3al5GSFRuXiZICnpIOUZ0dXF9d0Z6NFRH
XlJkUE9pKkxXMTZOcSRRfjdXWGBBM0VOYWZkKShFQyN2OFlwSEVRPmBLWHBDakM9eUhZMAp6NElD
Qzc1S1FzaExpY0opKjN1Ul90VEU9WWc8ak1jYko7Pn5Eb25VK3A/P1ViPlZUYm0kR05nSj9HYTIj
bVpscHQKeiN5cno+eDVrKWZualRWXkBKdiU9Q2Y5YTk2JjM5PXdpMkNedCRReigzOHU+SHJLT0l2
P2JNY29aNCpxRHpNVUBECno3Py19Q1pxT0spek1idz9uM1RTcTl1WjlHPHBPJE1RP2d6enBmQCRm
VHJReVpITzU+bkFwZlo+cil1ZDdzN2YlIQp6V2Z3SzZHX2pYbSlUfVkpdldyJH5qSmZRaEhpZH5T
eUood1dzPHdUJihrcldwLVE9Ri0jRClvYFlQKn4ySE8zfEUKenJXcVJKNV9aITxnLUhwIT40OyFU
JldxPz5QMDYqcmh9XlJZcEZANzthdUpuampKYUd5cVpLQXhFfXwpT217TWBNCnptPSp9OFdWeDht
KGluNU9tXndBYVRyUT55NmVlNlFDVjNUNGJHZWt0PUJtPEptUD81KkRZSXB7bCV7SG94bS0jTQp6
NmVlNlFyNiZiYnZoMVotRyRuSntPWWRvblchWCNhWDJwfWE/ND5lPTM3NVVwcnFlanpXd2NFJiNx
JTx7VHJreHQKem0oZ0tJOHQ9VWRQZnVtaDl3VVJ2bX57bW0oZksmLTNpXmtfXmNrPz9kN012YGEz
emZ2Pjx4bnt1Y1QmJDNGVEZeCnojekE9JWJ2aGBvcUNOLVpLRHlkTHhzVUV9UTB9OUw5RitVJTgz
IWQhZ2dHZXBRfUtNM09xfnx7Rz5zTmEkQHl1VAp6biEmQ3hLMjJ2U058RXwlK1VDZ2pTLVJZal9G
MX4kayMtRnxEVlhBVTRaUnxtQCZ2Qm9xVllOOG5PUiYxS1NGJkQKemQ2d3AyPU09eTAmWkhHfTdY
TDFiZEExZTU+JWNDLUtKKGA/VHN7ciMrNj94Xjt3cmk+Z01Gdj91a08haEZ5fFN0CnpMIUt2ITRi
Sy1jWTBuaz1KVTM7cVVxWjQyOFNKME1nYE8tezlDbCgmSU07TjUpSlpeOV9YQVdWWm8/WV51RVBP
cAp6UWtjUFlLUl5wTCMmdGhIP0hjMntBRH5ZUHd3cTI0Pz1jUzBaOTB3WGVsdEMkRnxQWTliVk9y
Wl9nbT43OHNvYSgKek1wWCt+QEhZJnVgeGp9MyM8PWNacUxtdXN5NUIpKmpkOSgtT2ptMSs+d1h2
QXFjTmBnVUcke0p4YkFuK247UFN+CnotXkdSRF9HaGtwWjNhNjtEXlo4OT0oSXpRSjdIWE8kb1F7
dGxqazcwI2J4NHJDd2ppbCYleUN3WT0tOT4pRiMrOQp6PSo3KlJgeytIRE0lUlEtX2s1RV5pKnQy
fXxIa2sjJiRubyojdHNVJFBfUyQwdkc4aTdKdG1tNCEzWEY/byVZcXoKem1wbChwVEFWV0Z3PzBT
KjFYR2pgKCFHTFJMd195KG8jI1FxcTd4cyt7XldVPkl0Nj0tTXdFVHZkNCU/OVkmQF8+CnppTFo5
IzZIRiYjYFQ5TFBEcGM1UCFJbztRTVgpeEZ0cV5SUlY5SSpGTjAkcjZZbElJeS09bkd9JTtnZzd6
M25qYAp6cj5QMiltRmJVWXB+bFdHVFpnXkY0SGBRYUpmRVBuIyhLJk1KeHxhY2plU3pFOCNLbzI9
X2x3T2pxTkwmNTl+M0cKei1CY0YjSlZgSFY+fGp+Z2B5ez1zdkcxMFoxSCZlPU5jTDNPOV4peWgo
JUFGQm9+RWVeTG1odFd7VntFR3EmLVdJCnpYellRWlF8S3FPYT1GY2cmd3ZmWFE/JT9FdXZhd3Be
dzApK2YhPCFKKHE2Oyl1JUZVQmBtfFcwQE98Jms9KGcxPQp6P1Fja1hrKmR5Nm41WD1HQDZUekMj
ITcreGZ8fVFHKzltIWA8I2psUikyXnxgQF4hJVdYbHhxTmo/bXAyVFpYaEYKel5yWGYqa29GUzJ0
RmQwQnkrcC1wUmUxLT5LbEh2I1o9Y0U3dVpfUSNoa2RWNTthTGkrcytkQipyWWdhJUB6MVN6Cnow
YSVtNTJzIzZ7SyZNU0J1a2loYkhmVV5GYDNQWCFHfWVLJVM4MVFkZFhlQGotSiE4ak5QQ1NRKE80
dFdVWldRVQp6K2ZDfiRCRUh3RG0+KEZEdmlhWkE2djMzJHtUQV5Db21rMjY2aE0+YU5tI303aHU/
TGl7d09iTyhzUGEmbTZ2SHUKemRafU9obi1jI1FOQm9CcDwxRjFqSlMmXkNFTjhxa0pYej9NSSYj
R2ojeDFtdDctI3MpNWBVay0hdmRXI058ST8rCnpFSksmVGAhWnA/bXItclV8MGx3NmE1SmVCJl8k
fTA/WlNWTEstUEBpTXhUfSNyUTImSEpUTnJyIyFSWCtZfCNINAp6SiF8UmMrUERNcXhhYj56P3hT
ZVcqMGEqfk17IWU+eG49IVVfLUVUP0Fld0JkR3ctb2VJJihTMGN0ZGd8eDZ3eUsKelcjUH5EcXhf
WWBzRnFkRyold311KVpZdkkzIXZSWUljJClrfEw8X3ZVJkIwQS1edDJnKHpTP3A1dlN0JHRpVUAy
CnotVURkVGNPfFRQbFp0Oz87JE18YHdsUn4yTW1YPXVmT2RHTGdreWolbyUmfmw0TnxiTG1NSmQ8
YmtVVzdabl9UOAp6THBLOUA9XiZ0dzlzc20hdCRMXnZEKmRhbTt1b01hPX1uPX1qdmphcVJga3w/
V0lJfW5sZk1jeHJBaERDdV9QKiYKejtAX1dnKEl9PXxJbSg1LVk+I300UTQ+RyprTnRSR3ZsdShh
I2R0cEsybFY0dktyeDtHN3Z0UEJwNmxYVWZvflA0CnpZVmI2em1pbitPK0p8P2VGMl5xQ3diOyRQ
N0NWI0lWJGJuZj84SUcqfEcjb0FPfjtlRmxrdUhfP0BXQTghU19ecgp6WFc9YFN7TWNgKiMtOHVG
ITR0NXZSIzZmNU97MEBCR2ExSFJJMCtJRTd6VWd8bTROSDBSJHw2VWMjXjxyMCVyP3MKejV4N2o/
VDdmWnY5UmRUeWU2fnBWUEtzNGxRSCNYJThhcGVTZTdsVjshNG07NXRIaTMhVT5SbzlmeSgqNXts
PE5qCnpyfjdVT1dmZEpudURgblBCPV8odHgpWjdGMG9gNz4tZ2xpYmJhO3BGV2BTISNuZWVUfXtf
JDQ4PkJEI1U0alIqawp6e30qNyhASThRdTtiVS0yQHZnRWZlR2VHaGhzVFhhamhsdkY/fGFtXjlX
WGBANGdWdEdmbDhremhPIUojMypjUmQKelZhZGJ2KWJSVzhxPWR0ZDg/TyFqdyhvSWNjRylBb1hO
fU5eTCV5RkkhJCY7bithanNJSFdyTmRzcVphZ2BHX09GCnpLTisxUGUoVVJ7REBNSFNHdDllM3tN
b21nd2dsZT9kfTcydTV6bCs+MGg3SkN1Km4qKEd+WEhGQD5pT0Y4eGlvPQp6bnRgZmZ8NjR8XmE7
U2VBUW00PX5iNUMjYDtNJUlge3VYbUApcUtGdVNKbU1SPEt0Q0p7QSozdFdHfXJ8d2FWWDEKemU/
dDYwPEhNPm17VH4+XnMkPjJ3O0xybWEpQEx1eHVJMyR+U21saXB6bTlzJUdwZkpwP35xI1dtczsj
Y3hRWXkrCnpwRGxVX243MllnSm41OEQ5OyR2NXI5Ml88bShfbmptey0tazx+ITlMKERNaD9YWnJW
PWJ0QklSPkBfRWhKVWheOQp6UDhyej5JQ28/UlZwZml7MHtoSyNOQTk4aFcqWUUxXld1PmBmJFBs
c05BM3Q1R0BjbF9KRnM4Y19uYDRKZ3QwNDkKenZuT3o7U3pKPmBjYmU+fS1EIUBsZEVMRjZycXhe
LUlCNCFHZGx6OXwyXn09Jjw1YkgqbFVGX21PPHdXcnJaYTI0CnpnUl98TjhwRzJlRXFrWSM1SSNG
PTNPI3E0PjtkMHR2VWh2WGMmX0dabD5UJDFLMkM0ZCshQTxIVEk2eGplMmZ8Kwp6QztHPEdARFgq
bXpqTml0SnFCQ1UqODxOJVJ9VWlCZzI/dilwUXx9Nnh0PkF6K3tvI15YVXoqRU0qYDI5S1p5SiQK
ekBGKEgrYjFKQjkzUW0mcyFwfmBWP0cqWXNqamVeQVR+fn1hREh3M0F1M2FaRkdaOCshXzUpQVkp
bWRBSSpab3B9CnpsU0lSbGgmfXBBKG5mYSpKU2VjeiNxRHdzYiEtbWFFT3ZGIV8rUGNGZ0tyQGZK
PWV3ZEd0UEJzIVJmdzl0X1YpJAp6RnBMTGxUfnE0TDROaH0keT1IQEU5YkVfZEo7NEApdUwzLWB1
OHZ3PERiVG1MRX50Q21lSTAhZ0cxdCkqZkxtWSoKenBBOVpeWk5jK3t3WFM+WFJ3SzspX25gNHVf
JCRHXl5ibHhiO1BZVVJyVFImKigjNXVTOXNMeVhtOUJUe1VKaURNCnolbno2ISoxWjtkeitAVDV4
cVBFZV9yV3RCXjtVMzs+cDxsQCFDbntsNWYxO2FBb3R2VjI2dXlKdD47ZlBXN0w+fQp6Z1haY3tS
VHdkXnJmWkU1Iz1EbVFaPWdRezl3M2h5IXVxIWlARDZHS3ljXz94RH08QnNydmx6ZjNqeSFQO289
WkkKemchNkRBZFc1ekJLMVJDJDU3Uz0yQytUWHlYWHRqbz1qclEhRlZjNGJrST5WQXVoNmRtVSEo
VGAtejErYUx+cWtECnp6O3xnWjtDc3tyXyYhWW97MEdlZUI7enpkeDNMdF5aPiQ5QEcmVFNoOChu
fjlNanpsWDt8am5rPEl7aTw8MGluLQp6I3VvdmojI2FGQWplN3hgajJ7Q3xGQDZJJClpQiY0bnFk
cUJvTXFHa0hYQUpBMClyKTdYaVAhT1FzWlI2bUJ1RmsKeipCRUM0b0BNTDsrK2JWPCprO0BTKmx5
ZWoqbEJ6ZHUtb2BDVkF9WUYrZlJFOCVqMmlaaldwbXNxWmphTVY7QTdICnojemxaUDc8JktANypf
el5XXyVqKDQmIXJ4Y047ZVYtZWNTaGMoM3RBITI2QjYwM1J+JDBlci1gNUFaU0wra2w2Uwp6Pypj
dylKTz1vVEBpXmV+Iz95Yz04cVdiOUY8dH5MSGQlJTtsVnVvWV9JalduYkF9aUNGO2pxfSYyTWBm
Rl9WMXwKelh2RSY7byZ1Y1ByM1N6VzU7S3w3bzxfYG5vTyY1T2pRQkdwKyk5JVhLOUFZfVFgN152
MU0jQipvTkg5ekd3dSVxCnolQHZjflkwcUB1NjVsI3MrO19GX0NmX34yWE1NbCtqclkmO3hCRDtm
VSpnfkF6dCNUQHwwRGh2QFUrayQybldnbwp6a3c3I3NHdGQoRmVCZXVnWnc3dUFfKGJybVYwVW5Q
QGJrZk0xUm82XjQhIyg0N3I0bTRvWD08MF8tdlhOR3IxNGUKej4mSldfenwzQk5kQV45czVtU01m
O2ZOVzkqP0JaKHtOcGc9a0hjJn45LSheN15qeVA8ZkszPClqO0FSJjJYKyRSCnpiaTlvXjZRe3N0
MGheMlNVKEpZX2h4KlVRe0NeciE3R1ZCdyFUa1JUUEBHUDRYZCRRO2ZucVVZbUk2QmkqZzdKNQp6
MFY1cyR1WWtidXtARG5oQVRhNllXJWt2NlBGMyo9ZXFVa355KXpzTFRtO0ckMGozV0tUdXtLPWhN
Rnp8PzwlP2MKemZHTSpHYUIlQEgrXjRlJkRnYXZ4c3NZbWxvYUA0Wkkpb0xeN1lqUU9lcH0lR1lj
Wjw2I300MjBtVjVZdzdRP3MwCno4dip8PVBfPHE0UH1jM31wJCVTSztVR304PmA2bjlONmV7MVBY
Y19ib04xbUFfJHpeMUU0Vkc1Qz9EJTFgang9UAp6MDhMbzQzO3dKZDdSfj9MI1JuTGBBSyQlRTA1
fXhDQ1R3e0s7N0U4NkNQaVQ3Q2NNfDdmVExtUUNUek1BdXBWYSQKek9qdk8+OzhmVlZOd1l5XiFj
SXA0JklPZVRpeWpMJjR9SE9hTU5kRkB6UTZfV2RRSTUmTThNUDBDcnJGOCFpVDgwCnpwK31oVGs0
XiZJZmdXTXZkQyRwIUpKQjBWPzlIN0RfK0tjOyNPTl4+QEd8Zj07Wkw2aWNtPz8zPE99JGpjeTZA
Xwp6QFk4czYjbCtzPEdRaUtfSDdjeCFhMD1VYG82dkppJXM2V1NaXmpzN1YlfDkkQE9HU3pHd0Yq
STFIMlFqJWtYVjMKemFscEg5UFRSeXgpQiQpOTxCKkFXOz0ySXYhJkBtUC10cGY4XyRgYn5DVmQr
KCFJPTBAR3ZAPDdnbkQzJmc/Z0JuCnp0IyQlRk4qNGs/aEkqTHYxSnVDOGxkNmpXNTk4VTJObClS
fmgpRisyb2xOWWtUPjx6NFQ/UDBlWUdZITU+b2I3QQp6cVIjXlU4bnJSJHgwdSZXYFlVfU5GbDJs
SWFFTmdlVjhwbD8rTzdwT3NtezArYUZsVTc7QXJEWmgjekN6aVNUZygKeiN+T0Riak0pbkQ7e1op
TSQtdjEtJXVAYGY4d1V8SFAya0RLSHhNJWVrbCp+ZzR7KG4wRXlUPFBMQE9JT0dmREZSCnooWjBy
bTIlaVI2MXVlUEk0aX1nbnorSSt+KzxtOy1eMjFKSHU9MyVALVlgPHlRPnQoU1pOO0Q1STNEQTI8
QU19ewp6UnAtVlRiYlhOSF9gfkAoVkJJRjQ4SD1ub3l2bCZGNnQ5Y217aDdgMkx+QlFeKGZLdzxU
VzJTPT15eUEyPDZSRDEKelBrMjtmdlJ8Ym5eKHJHUio/MkRBe34pfDB2X018QXs1U0BVaVhmRkth
anVuVSF6JmprRyF1JC1ZQSQja2I0NUNxCno/biFCVXpMbmhBKGJnN0VYIzZ4UTUhYjsqQHBRWUB3
JUFJflImTnlQWGhoOEM3Zlo1ZU9JTnBnT0RKd2ZxTGhWSgp6WW04O2tXY0YoPDhDMmVUKEhPfCpU
R258VGNGRGsoQ01+PStsa1V8TmBofUBYZVU3ZnEjdGNvMD01NmFwckJqJioKelNgPHNTd21WUiVV
PjA4LS13Y3RyIzxNWkQ2blBvWilPaiZWJSUhbnBEeFJEbFlmVzNwLWo1YmgtbTRKPj4xSyFBCnpv
dF55TmtDak5GLVIkcmp5aWIjRE1wZU1sal94PksrbHJJQF83RFZpQEViNXp5fDxlISViQjRpQzt0
ajEhfipwKQp6KnVaN3YoWDMzeTV+KXBBdk1XPHtFeUZ5MXVndkR1OU4hZWYzcmFiME45YDRqTFlC
NFpoMVRaSEAjSUo3bG5MPGkKejQ+aVgoX0g1U0ZpfTREWG9pVjMzRG1+aERiMmdzbmB7K2BzakNq
WDB3e3ZRS2M5K2k+a2REdXtVTEJvaG87byhLCnpOOXgjWXp0ajxHWXspZjNveiRgXkJZP0FOcSZq
cGFPO2hLMEBOQmZCbmBhflliI3xSSmE5N2NaeHhHSVY9QDxpYQp6VDs1Mktqa1ZlNVIwITEwIUF3
KUhPNWk9U1lfSEdCKFhaI35KYSlAdkVTY0M0UE1uZyhrOFRxZ252fkFlOUI7TVMKejsrYmZlV0cr
NTBrJjc/SGA8bHJ0SWFqSHBtMHZBe0ohaGo9QHEyXz42d1FkJj9oPEtxayl1dlN0SXsydm08Wnlh
CnowZUwjVUVzWUx9X3hFVypJXkNUY3ZqeyEycWN4VUZIeyZmJDQxO2tEbWZjSFo+Ml8qYXg7JlFI
OUgpN1NvLVVZQgp6RGlzNXdmNiojaUo4Jk5XQHltSig7Kz5HdDklOWFqWiomQTNTRzY9UU5PeUh8
cC1IUFYxcXIlM1ZkLTVZS3pCfHAKemxIRClDVUJBKzIkMFgrXig4PVN9IVdCQHthMzt3U0hFJnpJ
NzRPQVRCTS0jMUlpNm14ZFchXkNeVUlwRnpGcD40CnpTfSg1PmwxXjc/RWgqXyUpVXB1TWh2YjFe
WURQXjdzIVIlX0tyJEtZNns3VnFKI3cjYSY1fUJEKipXeFcxJmlacAp6WCMtYHdiNzN2USpNWTdf
PDZAU1VCdTZ5WSNoekpkZVcjdmRESTB8cnopUDkmTTRIeGpYVnU1cTdVTH5xVEYpPDMKemtfdXdi
TW9WZ21SPkMtTiQ7ME5KJlJCQlp3citrcVMhTjxjI2tZeFlGYjJHK25nQ3hOdXA+XjNyYDU8fU4z
M3NjCnprTVJxI25man56ZFBZfTtMcFloPTF3JXQ7a0BaT181QFYrQm84WWZQdSRvd15Kc3NRRmlI
ZFp+VCZ2bitJbG8hegp6WGM8THJQZXhxJU91dW5QWDU+QCFuUTY3OXhrRmtyaERuPz1KNys5YWpH
azBkKGkkPWBYKkZnaT9ve0luZShNPFQKem9eRnF+ayROe1luPHsrdWd4R0FnX1Y3RV9pdUliTUpR
fkU/PUplOEJ5bUpnSVcpYkgwQiRNMnpEfCE+SCtDTi1xCnojb0V5RHY5fGUxdDgwRC1iZlJUZyk3
NDQlRUByRTsoKj1ST2heKmA1aiVoaFg+KmQ4PChrN2cleVIxM3E+MWNnQQp6ZjZpWnoqUD9sVCZz
Snlzd3JwTTJ4NWlyQTxJPnVWdDxvKTNxdmgmVz4kUlVeb0ohR31WMjF7TUtoXzJkTUteVTAKempt
fXVqKEhXJmBCNjw1MiNCQCVQZ2h+Jl5zeCs5SXQhVVUhKjZuS2lDQC1vfUh6a1paVn5HVTImTFVa
VF40T1JlCnpvbmk2KFBRSGpsPndBKSYlRD0md3pzYUlBVig1LTRZMkxRaGMoPUl4XkpEMilDcktT
dWs2YENMd0smZGk7TT0xUgp6VGEtQlVzb0N9JjB2T0ImQW5acFpkXjd6ZkJgVUdHJmhHQis/OUo5
bG5ZXlBidD8hQzsrWTwtcFJCeWhFV2lGMyoKelM/UmNUbGtgfWU1bCEqZUwkdCNabTtpNTdeTiVM
c3BtTTR0Unl1X3d0THFqZCghcEpnU2B3PVVlNU9AWDBFZ15SCnpOZUkqIUVKM3dZaylXPUc0eXph
VTF3bWVXPkpuQyZROGBsdGwhJitERiV4QkNedm5JKDIhMShWRnooP0prcDlDTgp6Ul5yd1p7PXV7
PjBodVFfMWBkdXlOSkF3Ums9O2BUKDtaQC1UQ3Vma0F7fG0qbGEwK3p2fUo7QW5JUVp2SjJ0MTIK
elhjaWdJKWgyPiM+Mk1idnYzZjttJEZPczJod2JJMWpvVHtMVyFScGlvczdRZTIocmd5cXhRSTk8
TmYtJj00ZypzCnpscmRmOXVWciFOdVZyIU44c184cXh4fWw+NXtkaTllVik0c0pUMzA1bUB3TnBZ
SSpFQFpuc3MqNCM5QkUyZjhjQQp6YTdWVE11I0JAU1pMUVRKOUZTdEdDRjJPN2x6MmpLQW17O3c3
dWNsWXdGeDYqMyRBKE1MaFdEaXFHVmt4VVZgKW4KeiRGdjI/NzRoV09JSiF4KWdEMnQ/WEk2ZDY5
PU4haSskXmQlPCo2blVGKVdeeVlzbiptKVN4QT82Km9PbSVqXns5CnpIKzdFJU50aUR2KiUpZypr
TEY7TVBpVjR2aThlZEtRYXhzMUt2WjY7WGJjeGdib0YlRU5mSCY/PThUJGFiIz0jKgp6QEZLYyRO
ZytAVS1KO3kmTVkqWnNJPDgrWS1BWFFFJHU2YUFxZyFsb3I8Nm8mTjJvcngqd1RSJWBgRVpZTTNr
SXoKeldSezJ9bzNldlFoRG8tcDxAeiFoOyhKbmY5TkA3Kk4yY3RuVzdLJHxGSDNPeztBKX1WOUJu
TWhZPDA7QUl0cUpsCnpQJD8/ZChaLWJHJUoybSRoe1A9YEVpQ0s7Xz1RQDxhbUpUeVNeKWBVTTF0
VUxKKnthZS1NKFJEUEYoSHtTK2FAZQp6ZVRARl9aeztHQmUoYFcyeilqWWtyMD1LNjhFbG0wcW9j
MSRUV2k1NmI2dHd5RD1samdFK3hfWVE/azU+VlVAX1kKemdRMjxBQD98ZGpCSzlsfVFnejF9M25k
e2lpMUI2dkpXKUd8Q3ohNDVqQTxWV3N+YXE3V0VJMW5eQkhvOTNtN0RACno3QEZKTyhUVkdRNSpw
MzRvcGNwVVNtLWRLOFR7JVEycThVI3JOcENEcWw0PUdzeFB0KT4tbVY2YkJ4LVpqPGUqZwp6NWJY
WUBXO0deV2g/U2tmcT1YQ3hTMDRfQilWeTxSSlRyUSVrRT9ZUzZ2bGdpdlgpPkVveSpvTUNqP3Ek
JmtsamsKejNfbzJWaHA0dWd3b0YrYD49YGc/PTVVaihaVT9HYyhHa09XcHptY3BAbm8tVlIye1Y+
Kj98IXYpO1UwdTkkeEw0CnpNNiotPXJ9RDR6PF81d29ic2R9N2g8THdCSFdCcn1ZMWhVJWpIVT9W
c0ZzMzxRUG4pVVAqJTROYXl0d3BDNmYjawp6Ji1CalBGcjU/RXJyNUZzWUdkPGUteFhHaTk/e2Ne
cHs+PkZvJD9sPFdCc29zOG1McmYyfE84fnJ1S0JARz05ZWwKenlzLXVNX0YhTkRhUCRyKkwzMmx7
K3JtRGt7bVY2akt3ME9SPTU1OTVXX0VIandvckpXPVd6QHAxb3VHWUM5P2J1CnpeMF5DRkBEU2VG
ZmVueU18RlRQOHR9WTtpU1hkUVUtOF40KXohP0xKdUdKbD40b3E3OHZTMl42MlZFRWtXN3I5WAp6
QDA3O0VqaCRJc0kpIXlDIW5uNHVVI3tpeE8/dC1gbGE7IXczd0lXQi1fRFpTM0R7UE5eeyhqSG9h
bXBWdVNEI2gKenB6bFRPcDghdiNFIzRKTnA0VUhWdUdRVShwM3ZANGkhQjF8bz00P0BAP2JWaF5i
VkJaUDxzRjU9Nkk/IyomKWwwCnp7KXNDKShvUkxnOHJsQStUXlhyTm8hQ0Z3RUd1OCRyX0hXbEZz
Vj1yPz41RGd2ZWRXM3lxOXhZSmdyazBUViFwRwp6RkpgVi12OXBCPElVQVJGR2d5JD55WFoxdCZj
IyFVRy0yTWNfZjwwNkMpckp0P3lUUmdNbUhJJFJad1BTTn16ZVUKeiEmNyVtP1Q1JUpMa3wrb2Em
O0dQez4jM302NDZiSF5lRFBLLXJiNEkjZExTb1F4bzt1RVApSyEtSD5AKi03dzQzCnpsMiVXKlJB
Tk8+RD0jYztUVkw2cGdoRnw0VFYkYUZMTVFYcz5pTmtCT1VSRVNXSlhwJjgza2U7aTRARn47S1hl
ZAp6bU13YHlKU24/YXd4eClnV2UqTFVHbSY7Y1JIQlZtN30oKkptTDhJTSt8YSR5N0wrR1VvXzFN
T0hUfXZVQVFMZWYKekhNZjY1eT9rU3NPcWk8VV5NKiNvI2A0LVY2UTdjODUzfjsrVEQ4VUQoQVpP
TG83ZStPckpQcl9GUkNfb1JFKDBUCnpJbkdXcTlfUWc2TU5JWjlhZ0NgfGE1NFZySUlNQzN5bl9e
Uj48YVczVDhHZ148engwc2xPMmB9QXlQWXo7WUlDTQp6SEZ9NSh5OXMrVlZtK3UhWDM+R0xfNkRV
U0pLbH48QEZ0RzVwdz1nYyl0dHFaVn5pSnZJKSt0aHg2LW02SUIpRS0Kek5wcSN0TG1oaXhENyYl
QXo2eHRnPT8oIVlqMlVyazI0VDtqUSNlYE8+KnNBQC1ZYHBOcWJPNUN3VT14bmJhbzhaCnp4b3cq
NS1eXlRXankpJFBmK2VQRHJHQGMmXjZ7OFE3X3hWYyZaLSFKTTg9TV55XnN+TEc4cGw7aTF6RiNw
NGtYTgp6VVZHMHJwJiNzdGpQcEJec2tIY0xzJTtefTNRUClZbjV4QjhUMTs9fnVDKFNAN091NVI1
Tmg2JXp7STVMRjRxbSgKeiktNSVXV2dAZlQzYShsP2U9NGBvb1pkOGEzbnViN0xIN0BDdllaR0lJ
PVlUK28+JjN1TUl9UF5CMityTzZydU03CnopZXZBeWF2Q21gZ01pIUJxZVZTfiRaaW8hckwqWDBo
QH0+KFNjVzAyUjthQ1BhY2FQJGNLcjtuMUk7Um5OUEF2cAp6VWUyKD9OcyNwJXJ9TyQlMjcpKy08
XipQY2x9UkopJS1GdHIjX2VQWj9tNChXUmZpLUtiSjMwXlE+WSVCVTRVQloKemN7dlBKRWZ3TGwh
KT5GTy10QF5eO15uUkk9QztUMSRPNGBPRUhLJjhNVjt8WXhZP0VgUDtOY0Z6RU8+NiZzSXglCnp1
LTF7KVg0YS0tPzdGfmpoO18qYGZ5fEkzXjdFJGNhPzQ4N0NkWDBAM2dAemdvTU1oODhtMEJwTyE2
Ki1DeXFANQp6RDdlfGAhcTY+fHgqMnVNb0RMWHpWKU9qWTdgc25FdkpZV3d6b3YxaTF0K2MtWldm
LV9CcnBaM3ttMiUxZ3d6X3gKelpxS1UzYEFNKz90OD01WjRXbk55VEw8bGVAZ29+SGJoWCU3OFJQ
IUtnXjk8T01YQD8oTTV3WW45MW5sOFlnb3JYCnp1RFlKKUREeEJeNkc+JlVWJllieCt1NEI7MGY9
NmpCLU5mdGQpNzghI2JTSnpeRHZAaD9MKWE3RFEob2FfWkJtUgp6K0MkSGwmJUtkSDh5O3UkR2Nx
O3leZHhtcHZKek84PjhWPzNmTEl5WT5DV20hUmFfSSE+QX49ZD03MUB3eyV1Ri0KendlPUVBXnVq
LUROIVNGa2lNWk9qTW1vU1R5aTNIdDNvUUxgWVdCdkkpcnJTbExhS14hXygmMjkqTE5kN0h7KlF2
CnpCUnVYXio8dnxHVHpgVVpmWDdaYm8pYnFBSX51NDtPUjU8UXR1IXItJElueEtOZ2xFSUQpNj5y
LUYmSUheNmJfOAp6bDtsM1NLRjdnTmkzUTxRNmk9X1owNXJuRHIpc3Exc21BUU9vRGJ2X3dJZV5A
ZSN9PXlRLVFpWm5YZnBlQSswITMKeiNrV05Ce21OPEZlOXhDdHd9T2BNQ0ZUP3ckYGxzUFZEWXVl
X0dRMFI7ZiY0UkA9SmpQXjc3NW9HXkFVJkZ5fCFtCnpzYVRHYVZ+Y1A7WSRibE5CWlFNYCY0aWEz
Myhtb0x0dE9uLThqWEt1YjAlKDVpe1lmJmNCRDdwcS04eXdnJWgxOwp6O3s9O3drZ0ZjQXhMa25t
YylaQGk9UjJ2azZ9UlpjQWVwKyRkOUZ5em1vSTBldWsxJFltUnRfYWNQKGRjP1dRN0AKekZEYlZ6
TG5xLVI8aDFXazdBKnolaiVkREFufSthPiU8M3Y8KFp+bytTQz8tJE5jcXw4d35iTSg8NHhlS3U0
LTw4CnomUkwmNXE3JkEwaVZQYGhHcX5nQzJ2RFErUW9ic2o/XjtlRkZKSjIyZypNfXN6KVl6cWhJ
QW80ZHdueTdeWjhQTQp6VFpCdWUwTX1FbEUlKV8rUzBgUW9Rbj85clYhNlRIIWBEJUJZdzB9RiUz
UDFFP28hQzd0YF9IQ3pBVC1KeFFxbTMKek1FYDxiUjRpK2J1aylyTndqb3QzVjVPPWk4eGd+S2A3
VXdfWT9sMHh2NEFDbF9YN1FxaGNFND5CRUhPO157c2ZaCno0UGgtTEA9Km9MblRBRUVFNzB4aCh+
VkwpcDM3Mn5WSC03ZVRuRm1lRWdiRWUoRGBDK0JiO3Ykc19uVnZUb1owKgp6RHJOMClEeyVlUUUk
VEVSKkZwJCloT3NWTms8SnBVWXFiPj54Mnc5X24qdG5XYD1oWVpveDFOXmBrcyZOM1o7b3cKej9I
KSEmRHQ4KzdmZmckX2YpbXI3aDt5SDsjWWAmfklhOD04SDtyWV5QIV9Paz5QQkBjdXJIdElhaTlt
V3M7MENvCnppY15fUShDez8kd2pEU2hUOTREQUpKSXwyTUVKNENrQ1BuU1hOYCl7O0tKdng4Xz1e
a2JVYVIpbzxQUjV8OEZIWgp6SUY3UDhfVURANlVPTzslMmJZT1hFPVQ4LTtUVHw+K3tFb3ZrVkdx
UWhEezxvdUxVfmctbTkrVT1VJlBoJE5ORjMKej1fKik4QyZzcWk1djM4TXBSJCNoXmxFUDFPKV5n
T3pjOFB8LTBJeCFfNyhYUXd0SURFM0AoYkgjTFAmQ1VXNlZ4CnohblFJc3AzakZvSmV0ZTZwd20/
RTwmbldMJURYMF9BTVYyR1V+Knd4YnclKCE3NHI0M2dCcSk7O2I/VlNqTTA1MQp6YmcmJVUmKTFy
dSg+eylSMzhaMSZ2WlpuI1VrMUghNUE0TW1WKWJ0bl9ANXJvTmd2MU9ERVVyNDJYNiVNKztTR3EK
emB9MXRWX0Fvc1ljWSUoSkJLODlQPyFZK0VvWFRfM2FvTjFsT3h8ZFE+TVlRS3MmV25OZD98VzV8
Nj5PcERjWFJ+CnpmJjY/Zl9XUmR0d042PCF3UG53RFBpO0Vra0gwQSt8Rl5jRXdZcVozRHxgTC1v
Vnh6UEBDKDd8eylpRllVMDw/MAp6PldQPn1EMS0oR25jazJxTitFQj1GY0ZVISF5VGNMVDk+IXZJ
Q201UVBzQXw3O305MWY9a2cqRE1aa0A/a2d6Y0UKenVNbUNBM3ZBdDkwVlRXM21fcXxORyUkdy1I
PSF0SVEmTm4kVnc3WipeaihnS2xHK2Q9Q2FIKlBJbnhGUFgkRVohCnpQVmZOcV4obGZyait5MnJE
cnE7cFJVUkAqK0N5SDNCe1NWI1A9VkQzZUIxQyU8MiVpVCk1MlctMV9vJmNaNDZIRQp6MFFCezdh
Mmo1JURRTzMlc3VLTUI5biZiOFM8PiF7eFQ+bXZ0MUA1MVBmNmN2TzhWSmM/SjYmN1RVOWEtbGBp
cEAKeiUmZGFLQE5kPH4zYEU/Vnp0I2krRHExbyNLclY/V1gtQnBZXmF+fUd2X1A8eT1LbjtlRjN6
MU5sMmtzaDt9Y1JuCnpzWDwyRG9peXhkMklTXmBVRmh1VWgwYn1fWkBWZD4rfVhJJD5HQm1pWFZZ
TUk+SjRUKyFRJVhCdkN1Z1c3NG9vUgp6UGY/LVY4Y0t6byhgVlUwR2g8MnJEWWUpaHRHTCY1ZTsz
QjhTYSNPQDlPU3RaYnlSTVAtfVd4dW9aej1kTTg3QE4KemQzalhwcShZfV9TSkwwTkRzO001KEM7
UUhiVUdoaTxATWwpOVQlXmZySDZDMzlAeXpDPkY/PWB7QWVlbispbUUqCnpYWipIJVJBUSVSe1Rl
VH5TfnJFJWtOc352TUU2Y3R2V2Bka2tNPSl7XklnWTZyfCRzYyVETjdQUDlJfks2TERxPAp6V19e
bGEpfWBQPFZHJDEjeU5rSmRgZW1HMUNVNl4lUCpxaWtXPFZ2WTdfODspNF9Zc1BxITA1KVRxUzNS
TkA3KlcKejZlPkFldmNgRSNEflhySGQ0U25uI3tKKGNpRjV1cTFgMG8/cGVNKDk1USY+IUthWUlG
RmYhcS1jcGl3fENJZ0g9Cno8bU8xWGhYS0RDO3BUVDZGejVnVDgxUVFpP2c5cGQ0MmxAdzRNbFBm
Vk5sRTwlJUZycERUNld3TGpuOWBWJDI7QAp6VD9JS2h5a3U1fHM7aGtEc3RWeShzP2RjeXt2bXIp
RDFANHB0aXM8fm1WYipSWnNHYmpBP3FyOSpXJFp7dEZuczAKelNfV0hBe1AoODdgNSV8PCprPDdS
azdNSlVfV2omY3ladDxMbzJZQSlyIXF1RDV6bEJ6NTMxTUJeO05kZmkqXmFRCnoyQHt3YSQjPVRe
ej4mcGRFOSFkYDFBMHx+JnN8YiUweDlZSDBoXkI+a15aMzE/Wj8zRz1TZEVsVUZMeWwjNnZFaAp6
IVE5TGNUVENlMl9YNmxtJXVCOGlKfUB3YlhzUXI1TzM5WHgjfE5SZGFQZGBNcElOZXs8U2VGVjh9
KE4pKlc8WDIKemopVEZKXnR+P2Z5ZTA0dEFQRChFZlgzeXR6WEdwZlcrbS1hVjFeKmV7IWNEckNk
OHFWKiZNT2sxTEUtUkF9OW9+CnpoXjtoUzdWJVl1cyFEYlQ1Q2ImNGR1WWstJHt7ezQmd2E/TjUr
cmwyaHdaMUAmcHFJe0BhfU9FKiNIPmNKcWNBcAp6b3BgMyhlTHw9WitDcEJYRTtZfjE0RVM2ZV5J
Q1A0NClzLTY3NU99dkZmc0wpXmoldm1SU3BGZW5kcTRlS1VqZjgKens8YytEbUg5QmltYkI9SXpE
S0soX1hqMERSSnhYI18pKHhsdkM0UzlYMk1kUjUzPS1LJVFHPGtxeV95XyRWP1E4CnozUENiQSpB
dTdAQCREc0xyWWZmdj9YOCVpbHhtbSZCcihCYWlXYTxOQ1ZOZyhSUmlwdjJVUztsKDZtT1Y4ZHti
eAp6bnV4PkR5QmQmfEtfKH5eZ0F0LXUzMCNZKT5RSj17Wk89Y0R5eElkWHN5KT5uS1JQallVTjxi
SE57azY2enl2TkoKek96aWhZVHQ9dVcjOCFaVSFMeUAwNTxySkghQElqbWM1aV8kYn13Vmw8S2FP
RkZEVFE1OFRkfiYpQT9YR3tedl5+CnptWSU3MDxXODl9az5rfjRfO2Z0TTFnR0hMRXAmcUw/d3Vt
JiNacClaZUZCeXFmLSsjb059RlFNQT9URGxtbyVmewp6a31PfGYmR3dZKy10UCgoIUpjYVVjNWgq
bUN8THYoTVltTCV4aWdIV1R+eENCYzVzRSljXyVhdXcqRjl2bmBEdVUKelU/IX1BZCZzdHVkOVdi
Nlk/ajZrdi1oTD51fnpTTXF3QV5TQTdCZ1Vka0k/TkFNYC08dTI4N2ZSfnE4bkZHMVM8Cnp7OX5m
THtoV2VzJFc+d3c0XzVwcmJPeD1sJloyWTJNVUhRM0l3X0tLb1dETWppTmB+K19RK2ExbWNyN2kq
cXtSSgp6dWo+O0hTbmNCVipgbDBgYDFlIT5PYE0mR1YyPWBlWjJaKV9Vajc0NSEkeGQld25iSmdV
bF81bzt+eGJqQm01dFQKejJycmAzNUNgTVBxe2dZLXNRYUVgczZKb2lhNn1fe0tMO0ZpRGhiY3xs
Zyp0dEByQTh4ZENASCVaeylZKkBXM1lWCno7Yz8pQEd0Sjs8UHlfen40ZTxZeUFwRUJuPmRSIyZl
R0dkd3tvfFJBdVA8RWwzUVhWNG5FSTV0cnkjSHo+K3wpMQp6XlJWN3Vmd3pIfFYyNX07ZWkhNGQ8
MFY0KXU9fH5WQCFPJTh0PmhoNGB4bTxsQD9uPGpse3I3bks9M353O1A1OEYKek5BMUckKHV9PWZ7
KjE9RSlQITlJZChYNUpsJG1gSHB9NURMPTJkM1M/bT5TfU9ORktoXjtVbVZYZH4rWXlPPlNMCnpJ
flMjTztaTj1WVk14S0FiT1BOYD9XfU10Rk05WllMQl9GTDdKKVJwPU5yZW0tKiVNUzVXNVBSUyV9
fktvc0B7dwp6Q1cofHJYcDhxdTJ6TDtLR1VmNlRoWDQwb1gxNTNGTV8tPEQ4eDxxM1VCX21+ZnlY
KEpzUk40IXIpfnl6OzNCZF4KeiN7KmZEdzNOK2ZIVGR1enhxY1JhYmwlQ0VpZjxGWENqdmhVQDJu
ZGMkI3whcSpFQ3RGazFxNGtfc1JJNVN6YFJkCnpVUTlpQkZONiU2Zyk2czZIKzE2SWhyPlMxVDxw
TF51KUR9QGNvSVRLRk9nZlJLbTd7dT1iaCNWLWNEeWJWJEk9eQp6TGMlSllXaC1tcldlPX53bDZX
NCVSREBndko3Njg7ZChnSEg/S1NJMXdjcDM8VmsmT0shMmdeOyQtSEJxYCtwfXsKemopQmAxYkRY
cWlab2QzaCYyUTdHa3wrUDRiVmtyNGJGQ3BpQUltWkw4UHZkXzFfbWBTc0RWS1ozfkZGZDFBYGhF
CnopV0R6eXt4NTNhNSV2Rj5BRFFgb1FISF55MlFASUxmazYhbllHNjxVZ0JscHJ6QFA+T0g4N313
S0BBTFFVe0N7dApLOHUlYTghMmJjfWY/JHBTCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9D
bGlja1Rlc3RfdGVzdENsaWNrc0FTdXJyb3VuZGluZ1N0cm9uZ1RhZy5odG1sIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvQ2xpY2tUZXN0X3Rlc3RDbGlj
a3NBU3Vycm91bmRpbmdTdHJvbmdUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2QxMTdkZjNiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9DbGlja1Rlc3RfdGVzdENsaWNrc0FT
dXJyb3VuZGluZ1N0cm9uZ1RhZy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorICA8dGl0bGU+
Q2xpY2tUZXN0X3Rlc3RDbGlja3NBU3Vycm91bmRpbmdTdHJvbmdUYWc8L3RpdGxlPgorPC9oZWFk
PgorPGJvZHk+CisgIDxkaXY+CisgICAgPGEgaHJlZj0ieGh0bWxUZXN0Lmh0bWwiPjxzdHJvbmc+
Q2xpY2s8L3N0cm9uZz48L2E+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL1BhZ2UuYXNweCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1BhZ2UuYXNweApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uOGUzYTBkNGRjMDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9QYWdlLmFzcHgKQEAgLTAs
MCArMSwxNyBAQAorPCVAIFBhZ2UgTGFuZ3VhZ2U9IkMjIiBBdXRvRXZlbnRXaXJldXA9InRydWUi
IENvZGVGaWxlPSJQYWdlLmFzcHguY3MiIEluaGVyaXRzPSJQYWdlIiAlPgorCis8IURPQ1RZUEUg
aHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0
cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisK
KzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiA+Cis8aGVhZCBydW5h
dD0ic2VydmVyIj4KKyAgICA8dGl0bGU+VW50aXRsZWQgUGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8YSBocmVmPSIuLi94aHRtbFRlc3QuaHRtbCIgdGFyZ2V0PSJfdG9wIj50b3A8
L2E+CisgICAgPGZvcm0gaWQ9ImZvcm0xIiBydW5hdD0ic2VydmVyIj4KKyAgICA8ZGl2PgorICAg
IAorICAgIDwvZGl2PgorICAgIDwvZm9ybT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1BhZ2UuYXNw
eC5jcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1Bh
Z2UuYXNweC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWE4Zjdm
ZTNlMjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9QYWdlLmFzcHguY3MKQEAgLTAsMCArMSwyMiBAQAordXNpbmcgU3lz
dGVtOwordXNpbmcgU3lzdGVtLlRocmVhZGluZzsKKworcHVibGljIHBhcnRpYWwgY2xhc3MgUGFn
ZSA6IFN5c3RlbS5XZWIuVUkuUGFnZQoreworICAgIHByb3RlY3RlZCB2b2lkIFBhZ2VfTG9hZChv
YmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkKKyAgICB7CisgICAgICAgIFJlc3BvbnNlLkNvbnRl
bnRUeXBlID0gInRleHQvaHRtbCI7CisKKyAgICAgICAgaW50IGxhc3RJbmRleCA9IFJlcXVlc3Qu
UGF0aEluZm8uTGFzdEluZGV4T2YoIi8iKTsKKyAgICAgICAgc3RyaW5nIHBhZ2VOdW1iZXIgPSAo
bGFzdEluZGV4ID09IC0xID8gIlVua25vd24iIDogUmVxdWVzdC5QYXRoSW5mby5TdWJzdHJpbmco
bGFzdEluZGV4ICsgMSkpOworICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KFJlcXVl
c3QuUXVlcnlTdHJpbmdbInBhZ2VOdW1iZXIiXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHBh
Z2VOdW1iZXIgPSBSZXF1ZXN0LlF1ZXJ5U3RyaW5nWyJwYWdlTnVtYmVyIl07CisgICAgICAgIH0K
KyAgICAgICAgUmVzcG9uc2UuT3V0cHV0LldyaXRlKCI8aHRtbD48aGVhZD48dGl0bGU+UGFnZSIg
KyBwYWdlTnVtYmVyICsgIjwvdGl0bGU+PC9oZWFkPiIpOworICAgICAgICBSZXNwb25zZS5PdXRw
dXQuV3JpdGUoIjxib2R5PlBhZ2UgbnVtYmVyIDxzcGFuIGlkPVwicGFnZU51bWJlclwiPiIpOwor
ICAgICAgICBSZXNwb25zZS5PdXRwdXQuV3JpdGUocGFnZU51bWJlcik7CisgICAgICAgIC8vUmVz
cG9uc2UuT3V0cHV0LldyaXRlKCI8c2NyaXB0PnZhciBzPScnOyBmb3IgKHZhciBpIGluIHdpbmRv
dykge3MgKz0gaSArICcgLT4gJyArIHdpbmRvd1tpXSArICc8cD4nO30gZG9jdW1lbnQud3JpdGUo
cyk7PC9zY3JpcHQ+IiknCisgICAgICAgIFJlc3BvbnNlLk91dHB1dC5Xcml0ZSgiPC9zcGFuPjwv
Ym9keT48L2h0bWw+Iik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvUmVkaXJlY3QuYXNweCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1JlZGlyZWN0LmFzcHgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUyZDJlNjc4NmU4Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
UmVkaXJlY3QuYXNweApAQCAtMCwwICsxLDExIEBACis8JUAgUGFnZSBMYW5ndWFnZT0iQyMiIEF1
dG9FdmVudFdpcmV1cD0idHJ1ZSIgQ29kZUZpbGU9IlJlZGlyZWN0LmFzcHguY3MiIEluaGVyaXRz
PSJSZWRpcmVjdCIgJT4KKworPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
eGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIgPgorPGhlYWQgcnVuYXQ9InNlcnZlciI+CisgICAgPHRpdGxlPlVudGl0
bGVkIFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9S
ZWRpcmVjdC5hc3B4LmNzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvUmVkaXJlY3QuYXNweC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uOWUwNjUwYmZiM2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9SZWRpcmVjdC5hc3B4LmNzCkBAIC0wLDAg
KzEsOSBAQAordXNpbmcgU3lzdGVtOworCitwdWJsaWMgcGFydGlhbCBjbGFzcyBSZWRpcmVjdCA6
IFBhZ2UKK3sKKyAgICBwcm90ZWN0ZWQgbmV3IHZvaWQgUGFnZV9Mb2FkKG9iamVjdCBzZW5kZXIs
IEV2ZW50QXJncyBlKQorICAgIHsKKyAgICAgICAgUmVzcG9uc2UuUmVkaXJlY3QoInJlc3VsdFBh
Z2UuaHRtbCIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL1NldHRpbmdzLlN0eWxlQ29wIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvU2V0dGluZ3MuU3R5bGVDb3AKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjOTU1ZjgxNWQxCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvU2V0dGluZ3MuU3R5bGVDb3AKQEAgLTAsMCArMSw3NTkgQEAKKzxTdHlsZUNvcFNldHRpbmdz
IFZlcnNpb249IjQuMyI+CisgIDxBbmFseXplcnM+CisgICAgPEFuYWx5emVyIEFuYWx5emVySWQ9
Ik1pY3Jvc29mdC5TdHlsZUNvcC5DU2hhcnAuRG9jdW1lbnRhdGlvblJ1bGVzIj4KKyAgICAgIDxS
dWxlcz4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudHNNdXN0QmVEb2N1bWVudGVkIj4KKyAg
ICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1l
PSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRp
bmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlBhcnRpYWxFbGVtZW50
c011c3RCZURvY3VtZW50ZWQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAg
ICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+
CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1
bGUgTmFtZT0iRW51bWVyYXRpb25JdGVtc011c3RCZURvY3VtZW50ZWQiPgorICAgICAgICAgIDxS
dWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQi
PkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAg
ICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRG9jdW1lbnRhdGlvbk11c3RDb250YWlu
VmFsaWRYbWwiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
RWxlbWVudERvY3VtZW50YXRpb25NdXN0SGF2ZVN1bW1hcnkiPgorICAgICAgICAgIDxSdWxlU2V0
dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNl
PC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwv
UnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUGFydGlhbEVsZW1lbnREb2N1bWVudGF0aW9uTXVz
dEhhdmVTdW1tYXJ5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9IkVsZW1lbnREb2N1bWVudGF0aW9uTXVzdEhhdmVTdW1tYXJ5VGV4dCI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQYXJ0aWFsRWxlbWVudERvY3VtZW50
YXRpb25NdXN0SGF2ZVN1bW1hcnlUZXh0Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IkVsZW1lbnREb2N1bWVudGF0aW9uTXVzdE5vdEhhdmVEZWZhdWx0U3Vt
bWFyeSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJv
cGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8
L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVt
ZW50UGFyYW1ldGVyc011c3RCZURvY3VtZW50ZWQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudFBhcmFtZXRlckRvY3VtZW50YXRpb25NdXN0TWF0
Y2hFbGVtZW50UGFyYW1ldGVycyI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAg
ICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0
eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8
UnVsZSBOYW1lPSJFbGVtZW50UGFyYW1ldGVyRG9jdW1lbnRhdGlvbk11c3REZWNsYXJlUGFyYW1l
dGVyTmFtZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFu
UHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAg
ICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJF
bGVtZW50UGFyYW1ldGVyRG9jdW1lbnRhdGlvbk11c3RIYXZlVGV4dCI+CisgICAgICAgICAgPFJ1
bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+
RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAg
ICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVtZW50UmV0dXJuVmFsdWVNdXN0QmVE
b2N1bWVudGVkIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IkVsZW1lbnRSZXR1cm5WYWx1ZURvY3VtZW50YXRpb25NdXN0SGF2ZVRleHQiPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iVm9pZFJldHVyblZhbHVlTXVzdE5v
dEJlRG9jdW1lbnRlZCI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxC
b29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAg
ICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBO
YW1lPSJHZW5lcmljVHlwZVBhcmFtZXRlcnNNdXN0QmVEb2N1bWVudGVkIj4KKyAgICAgICAgICA8
UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVk
Ij5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAg
ICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkdlbmVyaWNUeXBlUGFyYW1ldGVyc011
c3RCZURvY3VtZW50ZWRQYXJ0aWFsQ2xhc3MiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+Cisg
ICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFu
UHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAg
ICAgICAgPFJ1bGUgTmFtZT0iR2VuZXJpY1R5cGVQYXJhbWV0ZXJEb2N1bWVudGF0aW9uTXVzdE1h
dGNoVHlwZVBhcmFtZXRlcnMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAg
ICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+
CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1
bGUgTmFtZT0iR2VuZXJpY1R5cGVQYXJhbWV0ZXJEb2N1bWVudGF0aW9uTXVzdERlY2xhcmVQYXJh
bWV0ZXJOYW1lIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xl
YW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAg
ICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9
IkdlbmVyaWNUeXBlUGFyYW1ldGVyRG9jdW1lbnRhdGlvbk11c3RIYXZlVGV4dCI+CisgICAgICAg
ICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5h
YmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4K
KyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQcm9wZXJ0eVN1bW1hcnlEb2N1
bWVudGF0aW9uTXVzdE1hdGNoQWNjZXNzb3JzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgor
ICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVh
blByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+Cisg
ICAgICAgIDxSdWxlIE5hbWU9IlByb3BlcnR5U3VtbWFyeURvY3VtZW50YXRpb25NdXN0T21pdFNl
dEFjY2Vzc29yV2l0aFJlc3RyaWN0ZWRBY2Nlc3MiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudERvY3VtZW50YXRpb25NdXN0Tm90QmVDb3BpZWRB
bmRQYXN0ZWQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
U2luZ2xlTGluZUNvbW1lbnRzTXVzdE5vdFVzZURvY3VtZW50YXRpb25TdHlsZVNsYXNoZXMiPgor
ICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5h
bWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0
dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRG9jdW1lbnRhdGlv
blRleHRNdXN0Tm90QmVFbXB0eSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAg
ICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0
eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8
UnVsZSBOYW1lPSJEb2N1bWVudGF0aW9uVGV4dE11c3RDb250YWluV2hpdGVzcGFjZSI+CisgICAg
ICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0i
RW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5n
cz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJEb2N1bWVudGF0aW9uTXVz
dE1lZXRDaGFyYWN0ZXJQZXJjZW50YWdlIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IkRvY3VtZW50YXRpb25UZXh0TXVzdE1lZXRNaW5pbXVtQ2hhcmFjdGVy
TGVuZ3RoIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Q
cm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAg
IDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNv
bnN0cnVjdG9yU3VtbWFyeURvY3VtZW50YXRpb25NdXN0QmVnaW5XaXRoU3RhbmRhcmRUZXh0Ij4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkRlc3RydWN0b3JT
dW1tYXJ5RG9jdW1lbnRhdGlvbk11c3RCZWdpbldpdGhTdGFuZGFyZFRleHQiPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRG9jdW1lbnRhdGlvbkhlYWRlcnNN
dXN0Tm90Q29udGFpbkJsYW5rTGluZXMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAg
ICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJv
cGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAg
ICAgPFJ1bGUgTmFtZT0iSW5jbHVkZWREb2N1bWVudGF0aW9uWFBhdGhEb2VzTm90RXhpc3QiPgor
ICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5h
bWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0
dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iSW5jbHVkZU5vZGVE
b2VzTm90Q29udGFpblZhbGlkRmlsZUFuZFBhdGgiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iRmlsZU11c3RIYXZlSGVhZGVyIj4KKyAgICAgICAgICA8UnVs
ZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5G
YWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAg
ICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkZpbGVIZWFkZXJNdXN0U2hvd0NvcHlyaWdo
dCI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVy
dHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1
bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJGaWxlSGVh
ZGVyTXVzdEhhdmVDb3B5cmlnaHRUZXh0Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IkZpbGVIZWFkZXJNdXN0Q29udGFpbkZpbGVOYW1lIj4KKyAgICAgICAg
ICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFi
bGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgor
ICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkZpbGVIZWFkZXJGaWxlTmFtZURv
Y3VtZW50YXRpb25NdXN0TWF0Y2hGaWxlTmFtZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4K
KyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xl
YW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgor
ICAgICAgICA8UnVsZSBOYW1lPSJGaWxlSGVhZGVyTXVzdEhhdmVWYWxpZENvbXBhbnlUZXh0Ij4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICA8L1J1bGVzPgorICAgICAgPEFuYWx5emVy
U2V0dGluZ3MgLz4KKyAgICA8L0FuYWx5emVyPgorICAgIDxBbmFseXplciBBbmFseXplcklkPSJN
aWNyb3NvZnQuU3R5bGVDb3AuQ1NoYXJwLkxheW91dFJ1bGVzIj4KKyAgICAgIDxSdWxlcz4KKyAg
ICAgICAgPFJ1bGUgTmFtZT0iQ3VybHlCcmFja2V0c0Zvck11bHRpTGluZVN0YXRlbWVudHNNdXN0
Tm90U2hhcmVMaW5lIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9IlN0YXRlbWVudE11c3ROb3RCZU9uU2luZ2xlTGluZSI+CisgICAgICAgICAgPFJ1bGVTZXR0
aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8
L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9S
dWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJFbGVtZW50TXVzdE5vdEJlT25TaW5nbGVMaW5lIj4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkN1cmx5QnJhY2tl
dHNNdXN0Tm90QmVPbWl0dGVkIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAg
ICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5
PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxS
dWxlIE5hbWU9IkFsbEFjY2Vzc29yc011c3RCZU11bHRpTGluZU9yU2luZ2xlTGluZSI+CisgICAg
ICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0i
RW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5n
cz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJPcGVuaW5nQ3VybHlCcmFj
a2V0c011c3ROb3RCZUZvbGxvd2VkQnlCbGFua0xpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudERvY3VtZW50YXRpb25IZWFkZXJzTXVzdE5v
dEJlRm9sbG93ZWRCeUJsYW5rTGluZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAg
ICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9w
ZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAg
ICA8UnVsZSBOYW1lPSJDb2RlTXVzdE5vdENvbnRhaW5NdWx0aXBsZUJsYW5rTGluZXNJbkFSb3ci
PgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5
IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxl
U2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ2xvc2luZ0N1
cmx5QnJhY2tldHNNdXN0Tm90QmVQcmVjZWRlZEJ5QmxhbmtMaW5lIj4KKyAgICAgICAgICA8UnVs
ZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5G
YWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAg
ICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9Ik9wZW5pbmdDdXJseUJyYWNrZXRzTXVzdE5v
dEJlUHJlY2VkZWRCeUJsYW5rTGluZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAg
ICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9w
ZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAg
ICA8UnVsZSBOYW1lPSJDaGFpbmVkU3RhdGVtZW50QmxvY2tzTXVzdE5vdEJlUHJlY2VkZWRCeUJs
YW5rTGluZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFu
UHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAg
ICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJX
aGlsZURvRm9vdGVyTXVzdE5vdEJlUHJlY2VkZWRCeUJsYW5rTGluZSI+CisgICAgICAgICAgPFJ1
bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+
RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAg
ICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJTaW5nbGVMaW5lQ29tbWVudHNNdXN0Tm90
QmVGb2xsb3dlZEJ5QmxhbmtMaW5lIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAg
ICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3Bl
cnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAg
IDxSdWxlIE5hbWU9IkNsb3NpbmdDdXJseUJyYWNrZXRNdXN0QmVGb2xsb3dlZEJ5QmxhbmtMaW5l
Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0
eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVs
ZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkVsZW1lbnRE
b2N1bWVudGF0aW9uSGVhZGVyTXVzdEJlUHJlY2VkZWRCeUJsYW5rTGluZSI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJTaW5nbGVMaW5lQ29tbWVudE11c3RC
ZVByZWNlZGVkQnlCbGFua0xpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAg
ICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVy
dHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAg
PFJ1bGUgTmFtZT0iRWxlbWVudHNNdXN0QmVTZXBhcmF0ZWRCeUJsYW5rTGluZSI+CisgICAgICAg
ICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5h
YmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4K
KyAgICAgICAgPC9SdWxlPgorICAgICAgPC9SdWxlcz4KKyAgICAgIDxBbmFseXplclNldHRpbmdz
IC8+CisgICAgPC9BbmFseXplcj4KKyAgICA8QW5hbHl6ZXIgQW5hbHl6ZXJJZD0iTWljcm9zb2Z0
LlN0eWxlQ29wLkNTaGFycC5NYWludGFpbmFiaWxpdHlSdWxlcyI+CisgICAgICA8UnVsZXM+Cisg
ICAgICAgIDxSdWxlIE5hbWU9IkFjY2Vzc01vZGlmaWVyTXVzdEJlRGVjbGFyZWQiPgorICAgICAg
ICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVu
YWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+
CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRmllbGRzTXVzdEJlUHJpdmF0
ZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVy
dHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1
bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDb2RlQW5h
bHlzaXNTdXBwcmVzc2lvbk11c3RIYXZlSnVzdGlmaWNhdGlvbiI+CisgICAgICAgICAgPFJ1bGVT
ZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFs
c2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAg
PC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJEZWJ1Z0Fzc2VydE11c3RQcm92aWRlTWVzc2Fn
ZVRleHQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblBy
b3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAg
PC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRGVi
dWdGYWlsTXVzdFByb3ZpZGVNZXNzYWdlVGV4dCI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4K
KyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xl
YW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgor
ICAgICAgICA8UnVsZSBOYW1lPSJGaWxlTWF5T25seUNvbnRhaW5BU2luZ2xlQ2xhc3MiPgorICAg
ICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9
IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGlu
Z3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRmlsZU1heU9ubHlDb250
YWluQVNpbmdsZU5hbWVzcGFjZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAg
ICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0
eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8
UnVsZSBOYW1lPSJTdGF0ZW1lbnRNdXN0Tm90VXNlVW5uZWNlc3NhcnlQYXJlbnRoZXNpcyI+Cisg
ICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFt
ZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0
aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJBcml0aG1ldGljRXhw
cmVzc2lvbnNNdXN0RGVjbGFyZVByZWNlZGVuY2UiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iQ29uZGl0aW9uYWxFeHByZXNzaW9uc011c3REZWNsYXJlUHJl
Y2VkZW5jZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFu
UHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAg
ICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJS
ZW1vdmVEZWxlZ2F0ZVBhcmVudGhlc2lzV2hlblBvc3NpYmxlIj4KKyAgICAgICAgICA8UnVsZVNl
dHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxz
ZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8
L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlJlbW92ZVVubmVjZXNzYXJ5Q29kZSI+CisgICAg
ICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0i
RW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5n
cz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgPC9SdWxlcz4KKyAgICAgIDxBbmFseXplclNldHRp
bmdzIC8+CisgICAgPC9BbmFseXplcj4KKyAgICA8QW5hbHl6ZXIgQW5hbHl6ZXJJZD0iTWljcm9z
b2Z0LlN0eWxlQ29wLkNTaGFycC5OYW1pbmdSdWxlcyI+CisgICAgICA8UnVsZXM+CisgICAgICAg
IDxSdWxlIE5hbWU9IkVsZW1lbnRNdXN0QmVnaW5XaXRoVXBwZXJDYXNlTGV0dGVyIj4KKyAgICAg
ICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJF
bmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdz
PgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkVsZW1lbnRNdXN0QmVnaW5X
aXRoTG93ZXJDYXNlTGV0dGVyIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAg
ICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5
PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxS
dWxlIE5hbWU9IkludGVyZmFjZU5hbWVzTXVzdEJlZ2luV2l0aEkiPgorICAgICAgICAgIDxSdWxl
U2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZh
bHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAg
IDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29uc3RGaWVsZE5hbWVzTXVzdEJlZ2luV2l0
aFVwcGVyQ2FzZUxldHRlciI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAg
IDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4K
KyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVs
ZSBOYW1lPSJOb25Qcml2YXRlUmVhZG9ubHlGaWVsZHNNdXN0QmVnaW5XaXRoVXBwZXJDYXNlTGV0
dGVyIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9w
ZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwv
UnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkZpZWxk
TmFtZXNNdXN0Tm90VXNlSHVuZ2FyaWFuTm90YXRpb24iPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRmllbGROYW1lc011c3RCZWdpbldpdGhMb3dlckNhc2VM
ZXR0ZXIiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblBy
b3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAg
PC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQWNj
ZXNzaWJsZUZpZWxkc011c3RCZWdpbldpdGhVcHBlckNhc2VMZXR0ZXIiPgorICAgICAgICAgIDxS
dWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQi
PkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAg
ICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iVmFyaWFibGVOYW1lc011c3ROb3RCZVBy
ZWZpeGVkIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Q
cm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAg
IDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkZp
ZWxkTmFtZXNNdXN0Tm90QmVnaW5XaXRoVW5kZXJzY29yZSI+CisgICAgICAgICAgPFJ1bGVTZXR0
aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8
L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9S
dWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJGaWVsZE5hbWVzTXVzdE5vdENvbnRhaW5VbmRlcnNj
b3JlIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9w
ZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwv
UnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICA8L1J1bGVzPgorICAgICAgPEFu
YWx5emVyU2V0dGluZ3MgLz4KKyAgICA8L0FuYWx5emVyPgorICAgIDxBbmFseXplciBBbmFseXpl
cklkPSJNaWNyb3NvZnQuU3R5bGVDb3AuQ1NoYXJwLk9yZGVyaW5nUnVsZXMiPgorICAgICAgPFJ1
bGVzPgorICAgICAgICA8UnVsZSBOYW1lPSJVc2luZ0RpcmVjdGl2ZXNNdXN0QmVQbGFjZWRXaXRo
aW5OYW1lc3BhY2UiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9v
bGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAg
ICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFt
ZT0iRWxlbWVudHNNdXN0QXBwZWFySW5UaGVDb3JyZWN0T3JkZXIiPgorICAgICAgICAgIDxSdWxl
U2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZh
bHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAg
IDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRWxlbWVudHNNdXN0QmVPcmRlcmVkQnlBY2Nl
c3MiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3Bl
cnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9S
dWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29uc3Rh
bnRzTXVzdEFwcGVhckJlZm9yZUZpZWxkcyI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAg
ICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Q
cm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAg
ICAgICA8UnVsZSBOYW1lPSJTdGF0aWNFbGVtZW50c011c3RBcHBlYXJCZWZvcmVJbnN0YW5jZUVs
ZW1lbnRzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Q
cm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAg
IDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkRl
Y2xhcmF0aW9uS2V5d29yZHNNdXN0Rm9sbG93T3JkZXIiPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUHJvdGVjdGVkTXVzdENvbWVCZWZvcmVJbnRlcm5hbCI+
CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkg
TmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVT
ZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQcm9wZXJ0eUFj
Y2Vzc29yc011c3RGb2xsb3dPcmRlciI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAg
ICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9w
ZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAg
ICA8UnVsZSBOYW1lPSJFdmVudEFjY2Vzc29yc011c3RGb2xsb3dPcmRlciI+CisgICAgICAgICAg
PFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxl
ZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAg
ICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJTeXN0ZW1Vc2luZ0RpcmVjdGl2ZXNN
dXN0QmVQbGFjZWRCZWZvcmVPdGhlclVzaW5nRGlyZWN0aXZlcyI+CisgICAgICAgICAgPFJ1bGVT
ZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFs
c2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAg
PC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJVc2luZ0FsaWFzRGlyZWN0aXZlc011c3RCZVBs
YWNlZEFmdGVyT3RoZXJVc2luZ0RpcmVjdGl2ZXMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iVXNpbmdEaXJlY3RpdmVzTXVzdEJlT3JkZXJlZEFscGhhYmV0
aWNhbGx5QnlOYW1lc3BhY2UiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAg
ICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+
CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1
bGUgTmFtZT0iVXNpbmdBbGlhc0RpcmVjdGl2ZXNNdXN0QmVPcmRlcmVkQWxwaGFiZXRpY2FsbHlC
eUFsaWFzTmFtZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29s
ZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAg
ICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgPC9SdWxlcz4KKyAg
ICAgIDxBbmFseXplclNldHRpbmdzIC8+CisgICAgPC9BbmFseXplcj4KKyAgICA8QW5hbHl6ZXIg
QW5hbHl6ZXJJZD0iTWljcm9zb2Z0LlN0eWxlQ29wLkNTaGFycC5SZWFkYWJpbGl0eVJ1bGVzIj4K
KyAgICAgIDxSdWxlcz4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29tbWVudHNNdXN0Q29udGFpblRl
eHQiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3Bl
cnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9S
dWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iRG9Ob3RQ
cmVmaXhDYWxsc1dpdGhCYXNlVW5sZXNzTG9jYWxJbXBsZW1lbnRhdGlvbkV4aXN0cyI+CisgICAg
ICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0i
RW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5n
cz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQcmVmaXhMb2NhbENhbGxz
V2l0aFRoaXMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
T3BlbmluZ1BhcmVudGhlc2lzTXVzdEJlT25EZWNsYXJhdGlvbkxpbmUiPgorICAgICAgICAgIDxS
dWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQi
PkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAg
ICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ2xvc2luZ1BhcmVudGhlc2lzTXVzdEJl
T25MaW5lT2ZMYXN0UGFyYW1ldGVyIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAg
ICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3Bl
cnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAg
IDxSdWxlIE5hbWU9IkNsb3NpbmdQYXJlbnRoZXNpc011c3RCZU9uTGluZU9mT3BlbmluZ1BhcmVu
dGhlc2lzIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Q
cm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAg
IDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNv
bW1hTXVzdEJlT25TYW1lTGluZUFzUHJldmlvdXNQYXJhbWV0ZXIiPgorICAgICAgICAgIDxSdWxl
U2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZh
bHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAg
IDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUGFyYW1ldGVyTGlzdE11c3RGb2xsb3dEZWNs
YXJhdGlvbiI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFu
UHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAg
ICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQ
YXJhbWV0ZXJNdXN0Rm9sbG93Q29tbWEiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAg
ICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJv
cGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAg
ICAgPFJ1bGUgTmFtZT0iU3BsaXRQYXJhbWV0ZXJzTXVzdFN0YXJ0T25MaW5lQWZ0ZXJEZWNsYXJh
dGlvbiI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJv
cGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8
L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQYXJh
bWV0ZXJzTXVzdEJlT25TYW1lTGluZU9yU2VwYXJhdGVMaW5lcyI+CisgICAgICAgICAgPFJ1bGVT
ZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFs
c2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAg
PC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJQYXJhbWV0ZXJNdXN0Tm90U3Bhbk11bHRpcGxl
TGluZXMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblBy
b3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAg
PC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUXVl
cnlDbGF1c2VNdXN0Rm9sbG93UHJldmlvdXNDbGF1c2UiPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iUXVlcnlDbGF1c2VzTXVzdEJlT25TZXBhcmF0ZUxpbmVz
T3JBbGxPbk9uZUxpbmUiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8
Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+Cisg
ICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUg
TmFtZT0iUXVlcnlDbGF1c2VNdXN0QmVnaW5Pbk5ld0xpbmVXaGVuUHJldmlvdXNDbGF1c2VTcGFu
c011bHRpcGxlTGluZXMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8
Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+Cisg
ICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUg
TmFtZT0iUXVlcnlDbGF1c2VzU3Bhbm5pbmdNdWx0aXBsZUxpbmVzTXVzdEJlZ2luT25Pd25MaW5l
Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0
eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVs
ZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkRvTm90UGxh
Y2VSZWdpb25zV2l0aGluRWxlbWVudHMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAg
ICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJv
cGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAg
ICAgPFJ1bGUgTmFtZT0iQ29kZU11c3ROb3RDb250YWluRW1wdHlTdGF0ZW1lbnRzIj4KKyAgICAg
ICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJF
bmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdz
PgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNvZGVNdXN0Tm90Q29udGFp
bk11bHRpcGxlU3RhdGVtZW50c09uT25lTGluZSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4K
KyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xl
YW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgor
ICAgICAgICA8UnVsZSBOYW1lPSJCbG9ja1N0YXRlbWVudHNNdXN0Tm90Q29udGFpbkVtYmVkZGVk
Q29tbWVudHMiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
QmxvY2tTdGF0ZW1lbnRzTXVzdE5vdENvbnRhaW5FbWJlZGRlZFJlZ2lvbnMiPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iVXNlU3RyaW5nRW1wdHlGb3JFbXB0
eVN0cmluZ3MiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
VXNlQnVpbHRJblR5cGVBbGlhcyI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAg
ICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0
eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgPC9S
dWxlcz4KKyAgICAgIDxBbmFseXplclNldHRpbmdzIC8+CisgICAgPC9BbmFseXplcj4KKyAgICA8
QW5hbHl6ZXIgQW5hbHl6ZXJJZD0iTWljcm9zb2Z0LlN0eWxlQ29wLkNTaGFycC5TcGFjaW5nUnVs
ZXMiPgorICAgICAgPFJ1bGVzPgorICAgICAgICA8UnVsZSBOYW1lPSJLZXl3b3Jkc011c3RCZVNw
YWNlZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxC
b29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAg
ICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBO
YW1lPSJDb21tYXNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGlu
Z3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9C
b29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVs
ZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iU2VtaWNvbG9uc011c3RCZVNwYWNlZENvcnJlY3RseSI+
CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkg
TmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVT
ZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJTeW1ib2xzTXVz
dEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAg
ICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5
PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxS
dWxlIE5hbWU9IkRvY3VtZW50YXRpb25MaW5lc011c3RCZWdpbldpdGhTaW5nbGVTcGFjZSI+Cisg
ICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFt
ZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0
aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJTaW5nbGVMaW5lQ29t
bWVudHNNdXN0QmVnaW5XaXRoU2luZ2xlU3BhY2UiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+
CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29s
ZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4K
KyAgICAgICAgPFJ1bGUgTmFtZT0iUHJlcHJvY2Vzc29yS2V5d29yZHNNdXN0Tm90QmVQcmVjZWRl
ZEJ5U3BhY2UiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVh
blByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAg
ICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0i
T3BlcmF0b3JLZXl3b3JkTXVzdEJlRm9sbG93ZWRCeVNwYWNlIj4KKyAgICAgICAgICA8UnVsZVNl
dHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxz
ZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8
L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9Ik9wZW5pbmdQYXJlbnRoZXNpc011c3RCZVNwYWNl
ZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29s
ZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAg
ICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1l
PSJDbG9zaW5nUGFyZW50aGVzaXNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxS
dWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQi
PkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAg
ICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iT3BlbmluZ1NxdWFyZUJyYWNrZXRzTXVz
dEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAg
ICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5
PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxS
dWxlIE5hbWU9IkNsb3NpbmdTcXVhcmVCcmFja2V0c011c3RCZVNwYWNlZENvcnJlY3RseSI+Cisg
ICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFt
ZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0
aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJPcGVuaW5nQ3VybHlC
cmFja2V0c011c3RCZVNwYWNlZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4K
KyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xl
YW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgor
ICAgICAgICA8UnVsZSBOYW1lPSJDbG9zaW5nQ3VybHlCcmFja2V0c011c3RCZVNwYWNlZENvcnJl
Y3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJv
cGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8
L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJPcGVu
aW5nR2VuZXJpY0JyYWNrZXRzTXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8UnVs
ZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5G
YWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAg
ICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNsb3NpbmdHZW5lcmljQnJhY2tldHNNdXN0
QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAg
ICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+
CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1
bGUgTmFtZT0iT3BlbmluZ0F0dHJpYnV0ZUJyYWNrZXRzTXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4K
KyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBO
YW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNl
dHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IkNsb3NpbmdBdHRy
aWJ1dGVCcmFja2V0c011c3RCZVNwYWNlZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0
aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8
L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9S
dWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJOdWxsYWJsZVR5cGVTeW1ib2xzTXVzdE5vdEJlUHJl
Y2VkZWRCeVNwYWNlIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJv
b2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAg
ICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5h
bWU9Ik1lbWJlckFjY2Vzc1N5bWJvbHNNdXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAg
IDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJs
ZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+Cisg
ICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iSW5jcmVtZW50RGVjcmVtZW50U3lt
Ym9sc011c3RCZVNwYWNlZENvcnJlY3RseSI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAg
ICAgICAgICAgIDxCb29sZWFuUHJvcGVydHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Q
cm9wZXJ0eT4KKyAgICAgICAgICA8L1J1bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAg
ICAgICA8UnVsZSBOYW1lPSJOZWdhdGl2ZVNpZ25zTXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAg
ICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1l
PSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRp
bmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlBvc2l0aXZlU2lnbnNN
dXN0QmVTcGFjZWRDb3JyZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAg
ICAgICA8Qm9vbGVhblByb3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVy
dHk+CisgICAgICAgICAgPC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAg
PFJ1bGUgTmFtZT0iRGVyZWZlcmVuY2VBbmRBY2Nlc3NPZlN5bWJvbHNNdXN0QmVTcGFjZWRDb3Jy
ZWN0bHkiPgorICAgICAgICAgIDxSdWxlU2V0dGluZ3M+CisgICAgICAgICAgICA8Qm9vbGVhblBy
b3BlcnR5IE5hbWU9IkVuYWJsZWQiPkZhbHNlPC9Cb29sZWFuUHJvcGVydHk+CisgICAgICAgICAg
PC9SdWxlU2V0dGluZ3M+CisgICAgICAgIDwvUnVsZT4KKyAgICAgICAgPFJ1bGUgTmFtZT0iQ29s
b25zTXVzdEJlU3BhY2VkQ29ycmVjdGx5Ij4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAg
ICAgICAgICAgPEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblBy
b3BlcnR5PgorICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAg
ICAgIDxSdWxlIE5hbWU9IkNvZGVNdXN0Tm90Q29udGFpbk11bHRpcGxlV2hpdGVzcGFjZUluQVJv
dyI+CisgICAgICAgICAgPFJ1bGVTZXR0aW5ncz4KKyAgICAgICAgICAgIDxCb29sZWFuUHJvcGVy
dHkgTmFtZT0iRW5hYmxlZCI+RmFsc2U8L0Jvb2xlYW5Qcm9wZXJ0eT4KKyAgICAgICAgICA8L1J1
bGVTZXR0aW5ncz4KKyAgICAgICAgPC9SdWxlPgorICAgICAgICA8UnVsZSBOYW1lPSJDb2RlTXVz
dE5vdENvbnRhaW5TcGFjZUFmdGVyTmV3S2V5d29yZEluSW1wbGljaXRseVR5cGVkQXJyYXlBbGxv
Y2F0aW9uIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAgPEJvb2xlYW5Q
cm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5PgorICAgICAgICAg
IDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICAgIDxSdWxlIE5hbWU9IlRh
YnNNdXN0Tm90QmVVc2VkIj4KKyAgICAgICAgICA8UnVsZVNldHRpbmdzPgorICAgICAgICAgICAg
PEJvb2xlYW5Qcm9wZXJ0eSBOYW1lPSJFbmFibGVkIj5GYWxzZTwvQm9vbGVhblByb3BlcnR5Pgor
ICAgICAgICAgIDwvUnVsZVNldHRpbmdzPgorICAgICAgICA8L1J1bGU+CisgICAgICA8L1J1bGVz
PgorICAgICAgPEFuYWx5emVyU2V0dGluZ3MgLz4KKyAgICA8L0FuYWx5emVyPgorICA8L0FuYWx5
emVycz4KKzwvU3R5bGVDb3BTZXR0aW5ncz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9XZWIuQ29uZmlnIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvV2ViLkNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NjhiNjQ4ZjgxYjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9XZWIuQ29uZmlnCkBAIC0wLDAgKzEsNTkgQEAKKzw/eG1s
IHZlcnNpb249IjEuMCI/PgorPCEtLSAKKyAgICBOb3RlOiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBo
YW5kIGVkaXRpbmcgdGhpcyBmaWxlIHlvdSBjYW4gdXNlIHRoZSAKKyAgICB3ZWIgYWRtaW4gdG9v
bCB0byBjb25maWd1cmUgc2V0dGluZ3MgZm9yIHlvdXIgYXBwbGljYXRpb24uIFVzZQorICAgIHRo
ZSBXZWJzaXRlLT5Bc3AuTmV0IENvbmZpZ3VyYXRpb24gb3B0aW9uIGluIFZpc3VhbCBTdHVkaW8u
CisgICAgQSBmdWxsIGxpc3Qgb2Ygc2V0dGluZ3MgYW5kIGNvbW1lbnRzIGNhbiBiZSBmb3VuZCBp
biAKKyAgICBtYWNoaW5lLmNvbmZpZy5jb21tZW50cyB1c3VhbGx5IGxvY2F0ZWQgaW4gCisgICAg
XFdpbmRvd3NcTWljcm9zb2Z0Lk5ldFxGcmFtZXdvcmtcdjIueFxDb25maWcgCistLT4KKzxjb25m
aWd1cmF0aW9uIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tLy5OZXRDb25maWd1
cmF0aW9uL3YyLjAiPgorCTxjb25maWdTZWN0aW9ucz4KKwkJPHNlY3Rpb24gbmFtZT0icmV3cml0
ZXIiIHJlcXVpcmVQZXJtaXNzaW9uPSJmYWxzZSIgdHlwZT0iSW50ZWxsaWdlbmNpYS5VcmxSZXdy
aXRlci5Db25maWd1cmF0aW9uLlJld3JpdGVyQ29uZmlndXJhdGlvblNlY3Rpb25IYW5kbGVyLCBJ
bnRlbGxpZ2VuY2lhLlVybFJld3JpdGVyIi8+CisJPC9jb25maWdTZWN0aW9ucz4KKwk8YXBwU2V0
dGluZ3MvPgorCTxjb25uZWN0aW9uU3RyaW5ncy8+CisJPHN5c3RlbS53ZWI+CisJCTwhLS0gCisg
ICAgICAgICAgICBTZXQgY29tcGlsYXRpb24gZGVidWc9InRydWUiIHRvIGluc2VydCBkZWJ1Z2dp
bmcgCisgICAgICAgICAgICBzeW1ib2xzIGludG8gdGhlIGNvbXBpbGVkIHBhZ2UuIEJlY2F1c2Ug
dGhpcyAKKyAgICAgICAgICAgIGFmZmVjdHMgcGVyZm9ybWFuY2UsIHNldCB0aGlzIHZhbHVlIHRv
IHRydWUgb25seSAKKyAgICAgICAgICAgIGR1cmluZyBkZXZlbG9wbWVudC4KKyAgICAgICAgLS0+
CisJCTxjb21waWxhdGlvbiBkZWJ1Zz0idHJ1ZSIgZGVmYXVsdExhbmd1YWdlPSJjIyIgdGFyZ2V0
RnJhbWV3b3JrPSI0LjAiLz4KKwkJPCEtLQorICAgICAgICAgICAgVGhlIDxhdXRoZW50aWNhdGlv
bj4gc2VjdGlvbiBlbmFibGVzIGNvbmZpZ3VyYXRpb24gCisgICAgICAgICAgICBvZiB0aGUgc2Vj
dXJpdHkgYXV0aGVudGljYXRpb24gbW9kZSB1c2VkIGJ5IAorICAgICAgICAgICAgQVNQLk5FVCB0
byBpZGVudGlmeSBhbiBpbmNvbWluZyB1c2VyLiAKKyAgICAgICAgLS0+CisJCTxhdXRoZW50aWNh
dGlvbiBtb2RlPSJXaW5kb3dzIi8+CisJCTwhLS0KKyAgICAgICAgICAgIFRoZSA8Y3VzdG9tRXJy
b3JzPiBzZWN0aW9uIGVuYWJsZXMgY29uZmlndXJhdGlvbiAKKyAgICAgICAgICAgIG9mIHdoYXQg
dG8gZG8gaWYvd2hlbiBhbiB1bmhhbmRsZWQgZXJyb3Igb2NjdXJzIAorICAgICAgICAgICAgZHVy
aW5nIHRoZSBleGVjdXRpb24gb2YgYSByZXF1ZXN0LiBTcGVjaWZpY2FsbHksIAorICAgICAgICAg
ICAgaXQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIGNvbmZpZ3VyZSBodG1sIGVycm9yIHBhZ2VzIAor
ICAgICAgICAgICAgdG8gYmUgZGlzcGxheWVkIGluIHBsYWNlIG9mIGEgZXJyb3Igc3RhY2sgdHJh
Y2UuCisKKyAgICAgICAgPGN1c3RvbUVycm9ycyBtb2RlPSJSZW1vdGVPbmx5IiBkZWZhdWx0UmVk
aXJlY3Q9IkdlbmVyaWNFcnJvclBhZ2UuaHRtIj4KKyAgICAgICAgICAgIDxlcnJvciBzdGF0dXND
b2RlPSI0MDMiIHJlZGlyZWN0PSJOb0FjY2Vzcy5odG0iIC8+CisgICAgICAgICAgICA8ZXJyb3Ig
c3RhdHVzQ29kZT0iNDA0IiByZWRpcmVjdD0iRmlsZU5vdEZvdW5kLmh0bSIgLz4KKyAgICAgICAg
PC9jdXN0b21FcnJvcnM+CisgICAgICAgIC0tPgorCQk8aHR0cE1vZHVsZXM+CisJCQk8YWRkIG5h
bWU9IlVybFJld3JpdGVyIiB0eXBlPSJJbnRlbGxpZ2VuY2lhLlVybFJld3JpdGVyLlJld3JpdGVy
SHR0cE1vZHVsZSwgSW50ZWxsaWdlbmNpYS5VcmxSZXdyaXRlciIvPgorCQk8L2h0dHBNb2R1bGVz
PgorCQk8IS0tdXJsTWFwcGluZ3MgZW5hYmxlZD0idHJ1ZSI+CisgICAgICA8YWRkIHVybD0ifi9y
ZWRpcmVjdCIgbWFwcGVkVXJsPSJ+L1JlZGlyZWN0LmFzcHgiIC8+CisgICAgPC91cmxNYXBwaW5n
cy0tPgorCQk8cGFnZXMgY29udHJvbFJlbmRlcmluZ0NvbXBhdGliaWxpdHlWZXJzaW9uPSIzLjUi
IGNsaWVudElETW9kZT0iQXV0b0lEIi8+PC9zeXN0ZW0ud2ViPgorCTxzeXN0ZW0ud2ViU2VydmVy
PgorCQk8bW9kdWxlcyBydW5BbGxNYW5hZ2VkTW9kdWxlc0ZvckFsbFJlcXVlc3RzPSJ0cnVlIj4K
KwkJCTxhZGQgbmFtZT0iVXJsUmV3cml0ZXIiIHR5cGU9IkludGVsbGlnZW5jaWEuVXJsUmV3cml0
ZXIuUmV3cml0ZXJIdHRwTW9kdWxlIi8+CisJCTwvbW9kdWxlcz4KKwk8L3N5c3RlbS53ZWJTZXJ2
ZXI+CisJPHJld3JpdGVyPgorCQk8cmV3cml0ZSB1cmw9In4vcmVkaXJlY3QiIHRvPSJ+L1JlZGly
ZWN0LmFzcHgiLz4KKwkJPHJld3JpdGUgdXJsPSJ+L3BhZ2UvKFswLTldKykkIiB0bz0ifi9QYWdl
LmFzcHg/cGFnZU51bWJlcj0kMSIvPgorCQk8cmV3cml0ZSB1cmw9In4vcGFnZS8oWzAtOV0rKShc
PykoLiopIiB0bz0ifi9QYWdlLmFzcHg/cGFnZU51bWJlcj0kMSZhbXA7JDMiLz4KKwk8L3Jld3Jp
dGVyPgorPC9jb25maWd1cmF0aW9uPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWN0dWFsWGh0bWxQYWdlLnhodG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWN0dWFsWGh0bWxQYWdl
LnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMGY1NDcwM2Mx
OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2FjdHVhbFhodG1sUGFnZS54aHRtbApAQCAtMCwwICsxLDE0IEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9U
Ui94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGl0bGUK
KyAgICA8L3RpdGxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxwPgorICAgICA8YSBocmVm
PSIvZm9vIj5Gb288L2E+CisgICAgPC9wPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9hamF4eV9w
YWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9hamF4eV9wYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjRiMzQwMzFkNTVhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWpheHlfcGFnZS5odG1sCkBAIC0wLDAgKzEsODEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxmb3JtIGFjdGlvbj0iamF2YXNjcmlw
dDp1cGRhdGVEb20oKSI+CisgIDxsYWJlbCBmb3I9InR5cGVyIj5OZXcgbGFiZWwgdGV4dDo8L2xh
YmVsPgorICA8aW5wdXQgbmFtZT0idHlwZXIiIHR5cGU9InRleHQiLz4KKyAgPGJyLz4KKyAgPGxh
YmVsIGZvcj0iY29sb3IiPlNlbGVjdCBsYWJlbCBjb2xvcjo8L2xhYmVsPgorICA8aW5wdXQgbmFt
ZT0iY29sb3IiIGlkPSJyZWQiIHZhbHVlPSJyZWQiIHR5cGU9InJhZGlvIi8+UmVkCisgIDxpbnB1
dCBuYW1lPSJjb2xvciIgaWQ9ImdyZWVuIiB2YWx1ZT0iZ3JlZW4iIHR5cGU9InJhZGlvIi8+R3Jl
ZW4KKyAgPGJyLz4KKyAgPGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0i
QWRkIExhYmVsIi8+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJ1cGRhdGVfYnV0dGVyIiBzdHlsZT0iZGlz
cGxheTpub25lIj48L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBidXR0ZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndXBkYXRlX2J1dHRlcicpOworCisgIHZhciB0ZXh0UHJvcGVydHkgPSBidXR0
ZXJbJ2lubmVyVGV4dCddID8gJ2lubmVyVGV4dCcgOiAndGV4dENvbnRlbnQnOworCisgIHZhciBs
aXN0ZW5lcnMgPSBbXTsKKyAgZnVuY3Rpb24gcmVnaXN0ZXJMaXN0ZW5lcihmbikgeworICAgIGxp
c3RlbmVycy5wdXNoKGZuKTsKKyAgfQorCisgIGZ1bmN0aW9uIHVwZGF0ZURvbSgpIHsKKyAgICBi
dXR0ZXIuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CisgICAgYnV0dGVyW3RleHRQcm9wZXJ0eV0g
PSAnVXBkYXRpbmcnOworICAgIGRpc2FibGVGb3JtKCk7CisgICAgdGljaygpOworICB9CisKKyAg
ZnVuY3Rpb24gZGlzYWJsZUZvcm0oKSB7CisgICAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpOworICAgIGZvciAodmFyIGkgPSAwLCBpbnB1dDsgaW5w
dXQgPSBpbnB1dHNbaV07ICsraSkgeworICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICAg
IH0KKyAgfQorCisgIGZ1bmN0aW9uIGVuYWJsZUZvcm0oKSB7CisgICAgdmFyIGlucHV0cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpOworICAgIGZvciAodmFyIGkgPSAw
LCBpbnB1dDsgaW5wdXQgPSBpbnB1dHNbaV07ICsraSkgeworICAgICAgaW5wdXQuZGlzYWJsZWQg
PSBmYWxzZTsKKyAgICB9CisgIH0KKworICBmdW5jdGlvbiB0aWNrKCkgeworICAgIHZhciBsZW5n
dGggPSBidXR0ZXJbdGV4dFByb3BlcnR5XS5zdWJzdHJpbmcoJ1VwZGF0aW5nJy5sZW5ndGgpLmxl
bmd0aDsKKyAgICBpZiAobGVuZ3RoICE9IDEwKSB7CisgICAgICBidXR0ZXJbdGV4dFByb3BlcnR5
XSArPSAnLic7CisgICAgICB3aW5kb3cuc2V0VGltZW91dCh0aWNrLCA1MDApOworICAgIH0gZWxz
ZSB7CisgICAgICBlbmFibGVGb3JtKCk7CisgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgICB2YXIgY29sb3JzID0gZG9jdW1lbnQuZm9ybXNbMF0uY29s
b3I7CisgICAgICBmb3IgKHZhciBpID0gMCwgY29sb3I7IGNvbG9yID0gY29sb3JzW2ldOyArK2kp
IHsKKyAgICAgICAgaWYgKGNvbG9yLmNoZWNrZWQpIHsKKyAgICAgICAgICBkaXYuc3R5bGUuYmFj
a2dyb3VuZENvbG9yID0gY29sb3IudmFsdWU7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIGRpdlt0ZXh0UHJvcGVydHldID0gZG9jdW1lbnQuZm9ybXNbMF0udHlw
ZXIudmFsdWU7CisgICAgICBkaXYuY2xhc3NOYW1lID0gJ2xhYmVsJzsKKyAgICAgIGRvY3VtZW50
LmZvcm1zWzBdLnR5cGVyLnZhbHVlID0gJyc7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGRpdik7CisKKyAgICAgIGJ1dHRlclt0ZXh0UHJvcGVydHldID0gJ0RvbmUhJzsKKworICAg
ICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHdoaWxlIChsaXN0ZW5l
cnMubGVuZ3RoKSB7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxpc3RlbmVycy5zaGlm
dCgpKGRpdlt0ZXh0UHJvcGVydHldKTsKKyAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
ICAgICBidXR0ZXJbdGV4dFByb3BlcnR5XSA9ICJFeGNlcHRpb24gc2VlbjogIiArIGU7CisgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICB9LCA1MDApOworICAgIH0KKyAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYWxlcnRz
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9h
bGVydHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWFkZDBk
Yjk5MTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9hbGVydHMuaHRtbApAQCAtMCwwICsxLDg1IEBACis8aHRtbD4KKzwh
LS0gUGFkZGluZyB0byBhY2NvdW50IGZvciBzbWFsbCBzY3JlZW5zIG9mIG1vYmlsZSBkZXZpY2Vz
IC0tPgorPHN0eWxlPgorICAgIHAge21hcmdpbi10b3A6NDhweDt9Cis8L3N0eWxlPgorPGhlYWQ+
CisgICAgPHRpdGxlPlRlc3RpbmcgQWxlcnRzPC90aXRsZT4KKworICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gc2V0SW5uZXJUZXh0KGlkLCB2YWx1
ZSkgeworICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5pbm5lckhUTUwgPSAn
PHA+JyArIHZhbHVlICsgJzwvcD4nOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZGlz
cGxheVByb21wdCgpIHsKKyAgICAgICAgICBzZXRJbm5lclRleHQoJ3RleHQnLCBwcm9tcHQoJ0Vu
dGVyIHNvbWV0aGluZycpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlQ
cm9tcHRXaXRoRGVmYXVsdCgpIHsKKyAgICAgICAgICBzZXRJbm5lclRleHQoJ3RleHQnLCBwcm9t
cHQoJ0VudGVyIHNvbWV0aGluZycsICdUaGlzIGlzIGEgZGVmYXVsdCB2YWx1ZScpKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlUd29Qcm9tcHRzKCkgeworICAgICAgICAg
IHNldElubmVyVGV4dCgndGV4dDEnLCBwcm9tcHQoJ0ZpcnN0JykpOworICAgICAgICAgIHNldElu
bmVyVGV4dCgndGV4dDInLCBwcm9tcHQoJ1NlY29uZCcpKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIHNsb3dBbGVydCgpIHsKKyAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGFsZXJ0KCdTbG93Jyk7CisgICAgICAgICAgfSwgMjAwKTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxoMT5UZXN0aW5n
IEFsZXJ0cyBhbmQgU3R1ZmY8L2gxPgorCis8cD5UaGlzIHRlc3RzIGFsZXJ0czogPGEgaHJlZj0i
IyIgaWQ9ImFsZXJ0IiBvbmNsaWNrPSJhbGVydCgnY2hlZXNlJyk7Ij5jbGljayBtZTwvYT48L3A+
CisKKzxwPlRoaXMgdGVzdHMgYWxlcnRzOiA8YSBocmVmPSIjIiBpZD0iZW1wdHktYWxlcnQiIG9u
Y2xpY2s9ImFsZXJ0KCcnKTsiPmNsaWNrIG1lPC9hPjwvcD4KKworPHA+TGV0J3MgbWFrZSB0aGUg
PGEgaHJlZj0iIyIgaWQ9InByb21wdCIgb25jbGljaz0iZGlzcGxheVByb21wdCgpOyI+cHJvbXB0
IGhhcHBlbjwvYT48L3A+CisKKzxwPkxldCdzIG1ha2UgdGhlIDxhIGhyZWY9IiMiIGlkPSJwcm9t
cHQtd2l0aC1kZWZhdWx0IiBvbmNsaWNrPSJkaXNwbGF5UHJvbXB0V2l0aERlZmF1bHQoKTsiPnBy
b21wdCB3aXRoIGRlZmF1bHQgaGFwcGVuPC9hPjwvcD4KKworPHA+TGV0J3MgbWFrZSBUV08gPGEg
aHJlZj0iIyIgaWQ9ImRvdWJsZS1wcm9tcHQiIG9uY2xpY2s9ImRpc3BsYXlUd29Qcm9tcHRzKCk7
Ij5wcm9tcHRzIGhhcHBlbjwvYT48L3A+CisKKzxwPkEgPGEgaHJlZj0iIyIgaWQ9InNsb3ctYWxl
cnQiIG9uY2xpY2s9InNsb3dBbGVydCgpOyI+U0xPVzwvYT4gYWxlcnQ8L3A+CisKKzxwPlRoaXMg
aXMgYSB0ZXN0IG9mIGEgY29uZmlybToKKyAgICA8YSBocmVmPSJzaW1wbGVUZXN0Lmh0bWwiIGlk
PSJjb25maXJtIiBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgnQXJlIHlvdSBzdXJlPycpOyI+dGVz
dCBjb25maXJtPC9hPjwvcD4KKworPHA+VGhpcyBpcyBhIHRlc3Qgb2Ygc2hvd01vZGFsRGlhbG9n
OiA8YSBocmVmPSIjIiBpZD0iZGlhbG9nIiBvbmNsaWNrPSJzaG93TW9kYWxEaWFsb2coJ2phdmFz
Y3JpcHRQYWdlLmh0bWwnKSI+dGVzdCBkaWFsb2c8L2E+PC9wPgorCis8cD5UaGlzIGlzIGEgdGVz
dCBvZiBhbiBhbGVydCBpbiBhbiBpZnJhbWU6CisgIDxpZnJhbWUgc3JjPSJpZnJhbWVXaXRoQWxl
cnQuaHRtbCIgbmFtZT0iaWZyYW1lV2l0aEFsZXJ0Ij48L2lmcmFtZT4KKzwvcD4KKworPHA+VGhp
cyBpcyBhIHRlc3Qgb2YgYW4gYWxlcnQgaW4gYSBuZXN0ZWQgaWZyYW1lOgorICA8aWZyYW1lIHNy
Yz0iaWZyYW1lV2l0aElmcmFtZS5odG1sIiBuYW1lPSJpZnJhbWVXaXRoSWZyYW1lIj48L2lmcmFt
ZT4KKzwvcD4KKworPHA+VGhpcyBpcyBhIHRlc3Qgb2YgYW4gYWxlcnQgb3BlbiBmcm9tIG9ubG9h
ZCBldmVudCBoYW5kbGVyOiA8YSBpZD0ib3Blbi1wYWdlLXdpdGgtb25sb2FkLWFsZXJ0IiBocmVm
PSJwYWdlV2l0aE9uTG9hZC5odG1sIj5vcGVuIG5ldyBwYWdlPC9hPjwvcD4KKworPHA+VGhpcyBp
cyBhIHRlc3Qgb2YgYW4gYWxlcnQgb3BlbiBmcm9tIG9ubG9hZCBldmVudCBoYW5kbGVyOiA8YSBp
ZD0ib3Blbi13aW5kb3ctd2l0aC1vbmxvYWQtYWxlcnQiIGhyZWY9InBhZ2VXaXRoT25Mb2FkLmh0
bWwiIHRhcmdldD0ib25sb2FkIj5vcGVuIG5ldyB3aW5kb3c8L2E+PC9wPgorCis8cD5UaGlzIGlz
IGEgdGVzdCBvZiBhbiBhbGVydCBvcGVuIGZyb20gb251bmxvYWQgZXZlbnQgaGFuZGxlcjogPGEg
aWQ9Im9wZW4tcGFnZS13aXRoLW9udW5sb2FkLWFsZXJ0IiBocmVmPSJwYWdlV2l0aE9uVW5sb2Fk
Lmh0bWwiPm9wZW4gbmV3IHBhZ2U8L2E+PC9wPgorCis8cD5UaGlzIGlzIGEgdGVzdCBvZiBhbiBh
bGVydCBvcGVuIGZyb20gb25jbG9zZSBldmVudCBoYW5kbGVyOiA8YSBpZD0ib3Blbi13aW5kb3ct
d2l0aC1vbmNsb3NlLWFsZXJ0IiBocmVmPSJwYWdlV2l0aE9uVW5sb2FkLmh0bWwiIHRhcmdldD0i
b25jbG9zZSI+b3BlbiBuZXcgd2luZG93PC9hPjwvcD4KKworPHA+VGhpcyBpcyBhIHRlc3Qgb2Yg
YW4gYWxlcnQgb3BlbiBmcm9tIG9uY2xvc2UgZXZlbnQgaGFuZGxlcjogPGEgaWQ9Im9wZW4tbmV3
LXdpbmRvdyIgaHJlZj0iYmxhbmsuaHRtbCIgdGFyZ2V0PSJuZXd3aW5kb3ciPm9wZW4gbmV3IHdp
bmRvdzwvYT48L3A+CisKKzxkaXYgaWQ9InRleHQiPjwvZGl2PgorPGRpdiBpZD0idGV4dDEiPjwv
ZGl2PgorPGRpdiBpZD0idGV4dDIiPjwvZGl2PgorCis8cD48c2VsZWN0IGlkPSJzZWxlY3QiIG9u
Y2hhbmdlPSJhbGVydCgnY2hhbmdlZCcpOyI+CisgIDxvcHRpb24gaWQ9Im5vdmFsdWUiIHZhbHVl
PSIiPk5vdGhpbmcgc2VsZWN0ZWQ8L29wdGlvbj4KKyAgPG9wdGlvbiBpZD0idmFsdWUxIiB2YWx1
ZT0iMSI+T25lPC9vcHRpb24+CisgIDxvcHRpb24gaWQ9InZhbHVlMiIgdmFsdWU9IjIiPlR3bzwv
b3B0aW9uPgorICA8b3B0aW9uIGlkPSJ2YWx1ZTMiIHZhbHVlPSIzIj5UaHJlZTwvb3B0aW9uPgor
PC9zZWxlY3Q+PC9wPgorPHA+PGlucHV0IGlkPSJpbnB1dCIgb25jaGFuZ2U9ImFsZXJ0KCdjaGFu
Z2UgZmlyZWQnKTsiIHZhbHVlPSJvbmNoYW5nZSIvPjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2FuaW1hbHMvLmdpdGlnbm9yZSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2FuaW1hbHMvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Jhbm5lci5naWYgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9iYW5uZXIuZ2lmCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNmMzQzNTQwMWY4NzhhZjMwOTMwYmZiMTllZTFlMzQwZDgyM2U3MDYKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDIxMDkKemNtZUl4YEJ4Sk0wPkUrYkQqOHw8aFhSV2Z1X3kjI0BjPD4mSlBqSTFr
ak1yTThnOzU4NHM/KEsxfDhPK2p4dVB9CnowaXk8dEZoWU87Mj9tVzRYcH5ANHZUXzZvQVhfPVlw
XkZ0Y3RPeDBlQCt4ZmloeTVAMV5DeGBZYC1YQmtufVpMWgp6byNTSVFXbzUrelNSKjROSS1PM2ZS
P0IyRWt8WiQ8OHlfRD41VHZRSzM0JFJJMF5oIVVKMl5RaTFjaEIpVD4/UHgKekAjOUI2ITArenZv
fVFrcnVka24obks3SHFKYikqWSVTWntTKW9JbVF3Y2Vsfjl2O1I+ajAxNHdZQkB6eTIjJkJvCno3
SnZnWGctblBEQXEqMEwwKSMqJDUoeXo4PE87YX01JiMmJGY+PiZlZFQzfH1BfE9uUjhKWX15aH5N
N2NQRCk4Twp6I084bjswVjBxcTxwXyFCXmZ+fHFCdkpfbj1JfiZpNUVZVlE1Kk9vcW09RUMpaEdQ
bilMST8+Wkc2XyFNOUVpZ00KemNge2xpbVdzc15GJmt1eXwwRU1qPFByI2hQem5XNlB6VmNnNSs/
e2tPbzsmKTszSXNMS3clNlB6eWReIUBFeyY3CnpyenJefkxQUV99M05mSm82KEFecjV0dmplZz5q
ZS11bjkyJTV9LXpfc1c7UzFXbTFfXkNaUSF0cjRtMkBmKzhSaQp6Zj4yMUlQPUZZeSlGPiY2NX1f
aVJyaj0/WGlsY2hIVUlkR0BTfWxTaEFQI0NZOG82OWZRWTBtIypmNSlpQEwmUWEKek5KNlRSTkAq
IWRxTGhAdjM3bDVZUW4/Z0dRNWMxQjkyWT8lZ1RjVERgNTErdlZpWlBUVDFtSUl3a3AoJHJsdXds
CnpDVzEqQSNuOVJSYChKXnpSKTZ+TTNzeUY+Uj1YRnZoMjFTfiRoMmBfOUI4PilAe2pYJnQ5Uyly
UmZAKGU9TUNeYwp6T0kyeX1Xc2VaYmpqSnMpPTZGWWA0O1ohT1BwJF9YWClXTVpEQGB7eHI7Wk84
dDV2KE5UYWp9PG8jYyYxV15sTngKenoySWJAc0h7Y2c5QylGMzEqekl3WkZwZXF0JlpOZERWRioz
c01EaThTTlAzOWJtZyshb2YoTyVub1JMRVp9O29kCnpUIWV3P2NpOzRwS1VtQl5gRjJpMy1AZjNH
XkkrWlBpcnhuYW0mOU0zZCNnQ1FEPE1MYkQ4O3wyTiZYN3J3QileTwp6KDV2UUdFLT57PyM1VWVO
YSVBbmByPmErM0hSYnhCQlRqQj9IQztXSzh0ZUM8SXc+PUs+R0E+Sj0tYDI4MXM3QksKensmbzVq
UHElO257UWllMiRDJVBYKSg+Wm8tYTU0WWI1R2JnYlc7fFA3Kmpkd3Y7PihCZj1gbXQtfG41fnpw
d2tICno9UythPU96S1drajdRUnB3VmdaaGEhaEJKK3p+OHYlfV8tTDdLezIlcDc8dEh2WnBjZmZR
dW9uNlEzOyktT0Z5aQp6Y0dUKEF5fmU8dmwlN1dLKCU4d3h4fXJUVlpqUVJlLXdEMzlLaF5lMlVn
NiZ0KEQ1O3N8NSo1VjBOVXRVbjtSOEEKeiRFOVQ3aT4tTk9TREUlQCErWTdaXy1NKm5HJGBgPT44
bHNhOEZCN0ExfV9CSnlBJnAre15uR2FlSD41P3BYcW4wCnpTKCFOYV5peD9UMlQ9ez5lbDZiRlUt
MERTOG4yUVhwRVozWVhJKntsaWdJKjglRShpWUYxcGxkaVIpO0ZxdXltcQp6bD9PMShFQHpfQ0ta
SDBkOEQ2UEpXQGVwZVheM2FmZkk+Ukw3fmsmREooaUd0dSR5KkdJeFB3a1Ild1VrUzYmPWsKem9X
NXNZb2o+KWFCN0VJZjlfKGdWe1JXbHsxXlMrP1ckcUV+am52NTI9Smk2bEh5THEod1V1bigxTzNa
PXhCNyszCnpJTnVweyh1d156YjFjMmpiOzIqVShWUU9ydXc+bilZbGVUMWl2b1V7VFV4aWAoWXly
VDxTWl9jP25OJk5KKGhnNgp6SV9TV2lqSUB6cDI2YyROJG1qOHQhUkJSc3o9cHNOZzs3ZjUyYjEr
VF5ILSs0citwe2VWXn5gfTRJcWVCSEMlPFcKeipIeVclUy1oZzx1TWExRnk/RF5gcVd9Myp3UkJS
bS19ZnN7dj5scXctRzRaOSMwX1ote3FFRVdlZXN1cWwrSzhMCnpvTThyc1pQVXp3e3MpZl9VPXk+
MlhAalQzd31RRVlubmNlVnhBdDgrcDY1Tit7b344dmY4OUtJXlZHWGJfeGZeMgp6O0tjMUZkJmx5
Rj1PJTM5MV5MZl53MmJpTnJrZG51WHI9Q0BYcFQ+RHxHbFVDSEZzfUxPcWJ8cU1sPUp4YGM7bGUK
emlpPUJZWVNyWTEtciElYGRVZyFONT8jMFR1Uj9BZ1Y9Q3xMZTZ+M3VkcGNZeyNmOTNQYHxLcTxs
Z2JKZHotTSt0Cnp3X2k9I3hiQFA5c15eOHIlOUNzSlVteVA0SW9+dmJqaU9RZ2pBemF9T3l4MUFA
WnR6Nl5wV1Q3al5wdl90X3BMZwp6WXBZOH4pRnE/aT1uaEVWdjcjfmEhUkc/YW1pdyNmdCY7PWg7
WUluIUkxTWw2WWRya2krUWlKRzgtfDE5dXF1YVQKejM7UHotU3V4KDlVIVQ3KGI9TGQxY2xGbEp1
eUA9TnoyaD4qcV9xYnRLZ1lLQ2luRWl+Ym1GYz5iTTFaJWNwUEF9CnpJKTN8fGdxRyMheV9vYUhS
REtaU0B+fUkpP1AxPDZ3ayFRbD1mQXdKOVd3M1N7PjM9X3YzSjJeNzkke2JPKyEhNQp6QTdMI0gh
KFhwWFYzY2BJJUA1MTU9fU9NWns/PENLI29tNDtQbnZmJlZwYUhMU25wQiRvYi1MfUpYPyFWJjxm
QDcKelF1O2gxI3pGPCFaKnk7RG0jPlpFSmB0SEdXJXR8NHtuTHozZmElSFdrOEQ+akVlfmt9VGBo
U255T2lzJThgfmhKCnpDQkhMVXhselM2IUhYPChaPHtqY3AzI0tobUshZkBSaHlmKz9JPisyN35R
Mn1fODhrU3lgfUpkd3JiMDNaVT02Kgp4JFVuOElTV2B5TjRyMUM7V1ZOX3IrZ0gzISgpSVVabn1g
YmJeNDNsPF5ZOz9GT0JGbG5UPG9tQWB3dV98cmkxX2gKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2JlYWNoLmpwZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2JlYWNoLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDIyMzdjYmRkNmNmNmE3ZjNkNDgzNTBjZDQw
YWIxZDY0ZWU0ZjhlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNDA4NQp6Y21iVnkyUzhLRitV
TyghZl5fdCNmUnFSZGlBb1BqQ3h7NmhRZ2xVQFJre2ZhTkJ+aUIoSThAcDJuYXppQkUlR20KenU0
fiFnO0BaJFBWcCMrTiVPWkFBNWM/fFBmKG1hPXo7Zl4xY21NYWx6P30xKUlkZipkSn5RN3A8SzUl
O2ZrNjswCnprT25YcTQzTlY9Rnk1O2s1JE5aKWlwfnREMSVePUozam92dVYkI3gqdT49NHo7IUBM
QHspLTZfRDxUUV80dUEqbgp6RSY3WHolU2lMMyg/ZTcrWV4kcExtJjxWMU1CNUhxdzZBfTheKj12
b3JeNWpPei1ZcHokbSQ4JDZvcTNhVTxWWGwKem16a0NjK2JsdWhJQ2V9dGdkLXJsQWJseSo1NWlq
XnRoZjNySVFBPHpKfFFDeDBKVXp8Q04oWkM5cm1McGZVc3xUCnpNcUNRfjdRKXl1bHhBMjVmMEBB
bWMkKSEkeVopc3ZHNlI0Z1lYRiNPe2lUaioxaTx2PTA1bSMoc2U4anpAY31jVgp6SDZ6ajROITEt
alhFRWdRLVNQMV4pJlNzMzBRazZQZUVodzVlRWcjWGomVTErcnNUTV89fj0zXzVFLW05MDRkMzkK
ekEtPH1nS0RfRUFxJUxFQGB5N2E4UllDPzhnJWBsNEFATU93QWcrSzY7aHkrfUNEaDZLaWJNYEE1
VystUUUrd1laCnptY2hGeHtQclJ6R2pRb2Q4KkYtTmF1X080dmBAWCVIRFRjcENjdTh5cik0Zj9M
S3VGRjRhJiUzcD8lSlM8eWxmcAp6NUZPczNUcmV9ZlVsV1lCZiVJZFl2ZWA9XjR9Yn0qaHA9QjVn
bDluYjUob3d7QU8kM1ZiYStwTmVLVWJTU1BYMUkKejhtdzZaNSY7TVBDQnlRY15+dGJ4QXtkNzQy
dyhUJmFNPEMyIXtGemgybzhUYkphX29SO2g9LW07YzNHOUBYKU5rCnpsVTk5c3lDcj1VQyQ2PlY2
YC1xZEsqdk0tb2Z3Uyh2NH5NJk1nVkBgMG1PNlM9QFR5QmV9KCVPZTNMKXBPOC1wNQp6MWc7PGM5
YW9UJV80akpgRlhOJEBCeTB+R3tAZzw+IzN9PVA1NU1EcEVDP3NWcnYldE9hfXYrNXglVWFIRlBO
YjEKelFPck1jXyh0WmhPTW0meyVYb2pOSEFaI2xIMj81X3AqfihVbUxLVC1FVE9Me1RKeG5KSyFk
VyVnZUM2RlNZTUMoCnpSbS1uP05QeSNobEpXJUN6ayN3UmZRZk9GM0M2SXV2YEhCeHMzPUREZjt+
QUYkVl56RDNIMXAwdHg0T0UmUk5hUQp6QnNlKVpJMV94S1llXnZadHd+OCtvMCpWSzJ1ekskVFJA
ME9QOX5fQFdEd0Y1Rzd7M1c2NXtSOVp6cFVYZ31ea3cKem4zUk97N3l8MHI9Oz48YEltcnBDYGlh
WWJmQlJMI3t8PTVueiFwPjJhfW9ndjRPTGw7Q2VYeV8xMSRWWDFDfl5iCnpmZU1DcDB4fmdFMFM/
fFZzSVMxNzBDZzElS3B8JDxYTHY3JElOMWpGZk5AZk5pQDxoTytjYGpPdmklOG8yWXhaQgp6WWY+
ayFnZThJZ2ZsR1p1MiFScEhTT2htMDJTT21+RHAwPyNAPUJeWjxmTjsrZ0IkIU9JNHBFYGM1LSl5
NCMjd2gKekBZQmR4JWBGRSQhdjtIU0NiNTlGVWt1JEI+YEJlUiQ7cUpAX1gjN2NRTCktKmMpPWRi
TD5xTChKPW85dlApYWFCCnpZWFM+d0sqXlZTZFdxV1NgaUsocyYrVmcyQFJRPzAtanF6NGdyVURG
KGZadG1FJjdDeXFsMUc4R3VafW1SRH1KKwp6QXVMYVhgdmhhfGl9Z04jbjxtISg0NmhkKE9ud1ZG
RXVRJVdtVlc5SkF9KztGKX10YClEX0hHd0tSbF8lbXdNTz8Kentoeyg1Zl9IUmchfjdISHxFVWhQ
b3p3YDcxJXdIKHBjKH1HUXZKflREcCZ9eHoqITF5ZGtFZygqeV5EbDtUPntHCnopZk99VTBNcElS
JXVJOCl3QD1ObWktfShvbl93NVdDZEdiek9xI3U7b3I2OF9UPF5YPEJgcVooR2xzQX1Cez88Mgp6
ZVo3flpzK2x7NChRMTIzZn5yYThfZzxDfXA+JHxePT9NZ345b2YjbyhwIXJfQWI2KDdDJVFBMiY/
WX5KUGhPVWoKekJkJU13JlRnSHYtSjB+KF9LdDNEWnVTbU5fRClXPXUhVXtMaFNiY01efHEtUVJ1
aTNrPlNxYUBxfC1UUm5WZERMCnoxaG42bipmbmMyeSh9JSFmajw4eEBRaGd0RzVzZ2Y1fSpPOVhv
RF42S1godG1fSmtHZ0FxbEEmLVkjfm93b2NBPQp6UEsxO2NQeTVmY1VqfFhOcTtiK3kqMlNiSmN6
KiYyLXoyMUdwcU4zJUlaUy1fPjZNQlQ2OWBVeG47ZXRETXg3S0sKekVlNTU9K3JpIyhAe3w4fkg5
NC1RSnhjTGM5R0dDUXN1dUZzVGclaF92I2grZSExeWliZ1F4Mm9PZiU0KEtGeDVOCnooYWg8XzFR
I29VbkhqOz8tcUZTLWJQMG5WdkxyWmdTQGNIc3ZUcmteMCl4TmJsYnBGWlp8QU9edGt2WlEla283
Vgp6eDl7QUZjN21Ce1dKRTl9XypoeF9ZPmZ6eCohc1d6alcrPjlQMFcyUDR+TVk/U1ZJaVg1SG8l
V0soKW9GISE7K20Kej80MH56dXNBaCE0WlArUUVwNkRLMFhqbnI0dUA2NHNqSTYmY1pTSjw/fTNg
M2BxYkh1ejhjZFFGP2RUWjsqYDdSCnpwcitPMDt9QG5nK2g1SWJqIW9ZKE1RZ0BQQlYmYGYpOzJg
YUpoSUVlTVhxa3tlb0xxe3xBND9DKjN4QylFUWJyUgp6eGNHI2Apb2V+dU0me2JBYj9ZfXw9V1dn
M3d0ZEc9ZW8zaklZO1NxUktBfjc1bURTWU4pZ0w8WHYlS050Rk84PnUKeno0K1REI3BVS0pTRmI1
TUl7KWJVdi1AVnhnV2tTfWtOTzg1ND9nK3BeXyF1JCF8KG5jOEFhKVc5JHx2NCZ5QFdlCnpVNTFi
QHRlUDU1NFVmYD0hTEVZXlhRLXc9K2ZpZXhGOVJSTG9vNEJqdEJFWSRiTVd8dURPUyRSU0pQd0Qr
cUd1UQp6QXdRVj03ZlBDbnZpfj4ydyl9cmxfTDtDUmJvQnJvOTBtI3hYOSM+aWxmdj8/bTY1YHxz
Q1Q7WlB1OHEkQnJlc0sKenpFej4pUkM5bXxYcCVMKTNUdm5NKFdSWXQmVzBaZXBLbz8wclA9bHl7
QitaSzhhWVhrZ3RLalhBRCVkcXs7YXQ2Cno8Pzx+WDltYXZsWm95R0hFciZEaihtVjReIS1KLV4q
fHloKXdDX3kraSYwYihsOWdJRSpRKCZDdlZOeUYtIVkoZQp6ekEkb0tWOyt0aXlPJDR3bDZSUEsh
Xk5lYCllb0JibU8wIXg2dyokZTU7M2NoQXRjc2RmJitzekxWO0lrVkFWVmEKeihvTHpPeyNsMiZe
PGxjU2lAQk9hJVRuP1NjfmRIQi1lVVEwVHw2eWFnYnZoPUw/JjVJTGA7UVBzJEhjXkRuZzwoCno+
dHlyIUs+KDc1MDQ3c08kNTBWRT5AfUQmZy07YW93MU9ndTFfQypRR0tGZjMwMEZjODl8NDRwV2R1
YGtRJWVwNgp6IXB8SW8oSlA1OShyRCpMbDV+T348UXEpMmIobVU/RngjLVB7NzUzXlU+Y19yX1VW
aHJScFk0ejN5UDEld0ZKfE0Keih6MCFMRjdpcDc5ZEtMYG1Pb2k0TnBkLU9ycHliZSNxbFl3NE9T
KWAyXm16IyVzM2dyM2c5fGF2cmNCY1VrRFp4CnpXZzxIYzQ8bFJgMWUjPTBUPUNRLXpiaUVkZCNp
aGp1Z28jK1Q8Z3J8M2t7ZUlzKUg2JG9jb1hUJW12NTxnJURzKwp6fEZPKTRDfVd3ZGRaTGo0RzdC
WGUlKFhSPURjfXs2MUMmIStLNEh5fDM8NS0lSUNtI3hvaEhmIUg4Q25wNj01VmMKemhBNU1ZViMx
X2ktaSM3SDV5KFc0QUhoJXR0aUFoI2JQMDJNTlYtSCU3OH48VGI9NXJnTVJkQD1GRFBfamcqcUpO
Cnp0RkF1eGA0MGV4MipqfThlPCpOZEY+aCtnVWNTYSRCTTlqKiFmdyQ+cGVPUD5kMkdkMmFYQXZw
bzYzKTNLdWsmOQp6RXB8TzEwY24mZWFJPmcoTTNoSnNzWXMmKVJmZ1VJbG1VRTRzMXRUWE5MQEtY
cEd9bDBqNk08UzJ3OFp4OT9EUl8KeldLaV9YSU4/REYkVG5BfE5mMnA9RSZ8RUBaen1hKXdOMGc/
c0dnIUZGYnN+VShIX2k/cVRgNlF2QWc5dWBgTVBJCnoqVTQ/MTNtKnI7eyFrK3FMUD5kY201OG51
RilVU3QzJjw2IzchLXJ2Zn5CfG84PzFabSlNNXB+TytCRzxASD5PUQp6c29qQEJHMytnMXkmXlY9
Ry1CYk08VmV2fjd9WjhJUjUhPyFSSERNWTZhZl95cSl9V2tnJilHSWxqNjhFUVlRPTMKejImSm9M
dD5QYEo7OzQ4KEQ9PWc+V0c3cE1SUktAflJIe0d9Xjh4N31NOH0/RkFjK2sqal9SOUElTWZgaWwk
QTt7CnpBJn5WWlBfX2xfTGZ9WHZXbCg0RFE3Vn1vMkohOHNQPW4lPzUwd214Y0JBcnp4NGVnbHh6
JDF9PyUrfkhRKmM3PAp6ekpeOFF0JT0zV0ZVPHZPa2wqUTQ7RV5WPSsoLTQkKz5GSFRxWEpLQEQ2
SnkkREtkRCo7SFFRZiEjZ3V0OEx4YW4KejFgSGE8bldBb00mMjltPGgjLStTNko4NDFGalFtY0Iy
WUsrS2F7Q15LZEdYTTV2WHBXS29BJEg1VUklXjgmRm1kCnojZTFSVnArKy1WZiR8MU5QQXIrPS1H
dWReT29ScmVFYF4kX21DakdgR3x8eFE1Xl9RcD1BeVF0QD0pcWZ3PFpkNwp6SDxQVVUlKUBeSns/
KksoKD9mTiNMSlp5ZUxWZ3lCT1ZPM3FfTGlvbzl6THUycSUwQCNgQTw3aiolIShZTkRSfmkKejY7
O3AoQ1hAbyFxUCEzPmYrP1I3e3g2MjBZUXVtK29oWV9ZQU8wJiomfnNDUEQ8ZjNhMHVYXiowNmx2
OXxBKERICno/SChnYWFadDVUeV9PKHZqYi0hdmxQTGF0TWAmdmBJNXo0KFA7eThkc0gmKFcoNURH
a15STFlMcVJGM0NgVUB+Jgp6NDU8RXApJk55a0QmUDJ0ZCFMM1B7O3ZRcnBNbzRaPHRtbUkjMGli
YG10ZD18PytLOFBabl5mWHFRPmRuVmZBIyoKems3cm5vS1lrO3dxfFJNMm5+Rk5fZjh+P1BvdVE7
ZUl0Rzh6S0lxKmh3Vzt4NmtjO343by03IzdoVSNBI0B1eUJ5CnpXPSV1PSNERHJ5KWEpQiY9PXsw
WDIpWS1sUGxgMihjYm5OO3NxUngwTURlOChrdztQT1gkRCRsUjA4czd4fi11Mgp6Zng+cEs5WTty
aHheX2NBRDI+dVd3eCk0TjUxRnhiZCFQKXZCfWZ4PVRPTFRHTkNXenw8SXZnUFd+ajdWMmZEVWkK
eksxZGBnZTR5N2k8fnhSP3RgeiNjO305X0BfaCp4Q2tEYG1oRChCfmMme2g4Sy0+JCleST41MUBI
N0phcmA4clkmCno3RXBYTCNKUlNwOy1WQ3pkVjtNNFg3ekc4WnlpITBtNUowJXZxVD9CPmJBSVB4
amgxaEFxaG1wQE5FN2Y8TzNXcAp6NSV1UmF5bEtkMyh1R2pGaihgUFohclImJWBHbDM2YD8xPmAm
cVppZDhXSnphdjsjbjBiNUlPRERUKjdRajxkVykKenlPJmdyaCF8PGQ3Z3gmVGdlPkpnRH19OENE
fVZNYmVpVCFxYl8rPS1Ad1BJI3A2I2p0bDs0b3NvclI9fExyYWMzCnp2RWpzM0d1dF4+PXR2YGk3
R28zLW8lVmx6cGtzdjJSM3FxYDd8QGFAKVBHe1d7Ny1lflFYJTBlPnImdSswbktEVwp6UyF8KDBT
diVwWkNUJDtgTkBGMkB5e2F9KTw+MChaQ21MYWJgMyF7ek00NjI9VVhkVVYweUkpMkRMJTtRM35D
Yl8KeihPTXJ3N3lSVSpCVTUtcG58QVBlY2shQ2tVOX5uNW5gR1E+UkhXRGZNdy1jdEApUXB3YzJ7
bjdBekx4bUVAPW0lCnptRSNZdy1fR1NVYnZWPTUkRCZIZmBTdHJHPE9uLUV3elMyI0hiJmhATFk2
bSRGeCFSQiZ+dzt2aHoxT20yQlNVfAp6SXVyKT1sUEg3WCs2eXtLYiMoSU9YQXU+K1gkVnVQIzdH
OWlgam1XRWsoJVoxUSFtNE1KUShzZVQkVn1keWJ3Y0wKejRqYnp9Rk43cUNlcHtQJSt8MVNeVk9B
KTE3TDlaKClWZjJwWX4tKEdWOzF0aWxYTyoqdmlnZyEzfnl8Z2NVRkJ6Cno0MXVEWUt+I2tRT3h9
PGd3UDNselplQTA9e0pOeEshOFp6e2BWWiZXaiNfcHoycTx7U15IO2tXdmxYK0ZuaE1MVwp6QlJf
YzxCJEUjJmFtezl0cTg5al8rfStAUEF6MDRmY0p1aDRld2U/b0N9X0YxQT5jR0lrMmw/NDh1cEJj
VyV3cCoKejxeM0tQN0Y4d0pGfEslOVB5Wm1VS3VWUHw5Rn5Xck5hfGAlbHc8Xm4tYm4kVHtESHww
aE57RCR2Mm17YTVONGpRCnoraElab2R9PH1YbjZIanhfPi1kK3B6QkM9MVd3NmNJVG1IeFNGQDRJ
VVp9UXFNMnd0T3Ioel5yVU08ezx1RCslcgp6KE1zc0dwfGZvPG1POUdpJilPQVc1JjR1JUNRe1FW
UGtUWHh7XkV4IUwxVERpczYwaWEtczluNz1RVmhtZUw/RWoKek98SCYyQHxISn0wZTNKc1UhcVp0
SygkTWVEVWZZTTxWZ3NGUHFEYGVPbV4yWGZoYjsoU1B7fDNydnlIdz08RGJRCnpNWTRAI3JmdH1F
OHBIdUVHb2JWUXZpaWtNdCQ1bHZSOEp4cm5xMDw1WmJJa1owKDV5bm9yP2ZEeH5ebEtLST9rVwp6
ZUNROCsrRTlIRjVOZ0V0N0JLbVlOYUxNd2FkYlRSQitvPkhTUHhgOXEkdGhmIVRlJWR5QjwzYSFg
Tn5TWCVEZjcKeipjZWZ5UTZoQ2tiV0dNdy09PG5gcjRidlNgU1lXZVJANz1PKkVWP1dFbDY+KHFq
Nn11R3ZOZEl2fkRQVyl5MS1sCnptdUJoT3tXaSNBUEA3e2Q3QVF3KEhSNF9RSkFVfDhaTEpGdXdQ
MH1eSWJYQj52R19yKD9zakY3P1YpVHElSnlxWAp6dDRMPUxNZSZgZi00WGNgJVpsfGI5X2ctaTBu
Sl56XjdBeCFkSytyKHZXM2Z4cTJMeEZfWnRYd3hFczNvOCh2d2sKemtAWGkxWUw3RXBiXz5wWTtz
LUlPKiR9WHVzY3JhTmxIJCNgbl8qeVUyaEJuISNgOFglYlpWcU5WaT9pWE5BNnp+CnpPMDB4PmBh
eGlFMXtJUztXbUteLWA+c2VkZWpHYG5HJTJpVCVUTXxybk99SXhCYTlsTDRrd2xOS3BOWlYzRih4
eQp6Zzx3SGxMezhpVjxnNSY2bnRJfj4me0JEOGs9eU9VWGpeMlQpSGF1Kj9NcWxuLVQ5S2doOChm
bmRJNCM5e34mIzcKei1FVFo5MiNTai1iUGxxTF9LaWA1OGp0dzs8aipnalFTJkd3I0lEVmVaJWk/
TSZVaV9kVTV4fVNUSXdGaU1yR0dsCnpzR016Qlc7PE09JUxRX3RVejVhQmk3cz47cylZcjR6VHRr
TSpiMDMtYzI4eFkwUDcjZ2FUQlRFe2BRRHhYKDgjNQp6YkM1Mz8/NmJPQ0NIVVE3THZRNyhIb0Rx
QWlIbCp6RSZsWWc5MzVmZEFJNVEyTUJgPk1jeStQZHQ/cCN5RF42MXsKeiZ3YGZvI0hzbGhgU3Zr
U0VnPEJfbVI1MFlpdHd6NmBgbXlfISFeJWF0JEJMI3h7WD1Wbj1nWlJwQ3d7R2F1eWMhCnpPUmxw
e2JpV2hmZGtlSVpOKChzfDZnPiRVYFlDV3FMY1pNKlFQcWpEZSg7cGBmZDJMdz1SVVV1MVBWIVZD
Wj59fgp6Y2ROblgzZDstdyU7aDl7cVpnO0Nab3RMMUFvc3tFP3EkLVRmbXdRSk5aUCREMGRRd0ZN
KlAkc1U4elN9WHhRXigKej8kZHh2dkFncDUtUXVkPTtAT19WaFo9WHI0NkA5cmk+djIpUl9nUjA2
eSNtXmVPbmoqVTJTKkFeKjBKRHYpXz1tCno5WTUzOW9+JUZ4ZUxHYHVlYXMkWkBpc0hhTnx0dXBs
b3hFd1B+eUhidEMzVUBlI1FffD9mOF8mKFBtKzhpaUR9Xwp6WkkwRDFHe3RKVk5wVCNfbUg8UmdK
e19NK1o3THdQeTNFISp0bFk9TCtYJFZBOzl+Qn0wRGJhU1d4ZCZCWXw2dXIKenEtVjV0SXhoRWdy
UGhYTXxBcyluS2JwQmcwb0Q+RHl3SkdHbHg2NkAwb2xMYml7cW9ea2FUczl1RU44YEt6M1VsCnpe
MjR1JV9OXkNEaFlBOFQrKnY7fT1Dal5Wdzd4fUpNIyQzRFhCWGtSY3hJPmg5Q0ZJTFQwcTJ7UVJa
SypXZlQqRQp6bWImfUNHbU8oIWEkd3FEVEcpSHd2PTwzPUNPd3JCKH5iPys8QGhjaFFxXn5hZUVo
QTl1dWpeYG80SjVQdjhnfHAKeiVeVlZgazF+fjdrcmNIeWxDQ1k+QXZDX0xTelJSblBlXmN6IUp6
WXNOTD50PEBzVkdpQGVFLUswLW0pQ1EtfnRHCnpVUSQ0dFh9PzcwdFRVNUBFajJOXmZBQkkjXnYx
OFVWUFZBI21oMWhGUS1ga29Ue3xLd05SJURDVUV4aWxYJnpHaQp6JHx9MnhNQSRfYkpxPW1pdGQh
aVRhXn47ZUBBZGFWIWx9NlJSITZLfiU9XlhXPzdSfSE3N3drNXZRc3RrM2JVa3oKeihHcUwxK25r
Y2tgYXoqbUA9cWFBTGNgd3s+TXArPjVtKTBlK09nQzFKflEyOVhXQmA5R2c5eld3P204bFVFTnhP
Cno1OzV0YClqQFVARH5pJmw/ZnA9e2g0U3Q5YFpCLSVuSTQ2cXY+VzxlPHFqamtEVFNUZXJ6Mnxg
Klk7Tml0UEZwJgp6SmJpJT1jYEUxXnVUdn1GXjVablQhWEVAensyLUFRSCNTb3xTa0RMTXpkdCRI
YkdVQGt5UlU+d3k+YDRWK18rfWkKejtJaDdvVSstNUBKLTl+PGImNEFudHREZlZxS0t4MmQxcjBy
WSU3aWJjQkl6KzJEZTllJHZLOCV7Pz5BTFVTNGExCnotQGMkWlRWcE5OenRRbyU7RihvI2VBVWd5
P1FMRGVSQ2leViFYLVdKdUtZTFJvIyMqSzhAOHU8ako5UGpkeXsyKAp6QHJBQHFEd2FGWENAQ2xK
Nlg2aDQ5X3hvP0g4e1JnQ34qREFhZk9peFEoWmZib2JFVyVEYGNaMHFmaEQyPDdHMXcKemBHQyRA
JDZ8fXt7ZCotWEx7fH0+OEx0JXJ4MUwhS3B1MzgxIShDYG5TaXxwZEtsNT5Ec340X3srMmtIKWlu
ZypxCnozN3QmK1RVamReLUd8bi1FRytrQWY7K1VuSyZwZUQ5OE5Kcl4wTitOMy1CUEhMYXMlRXM1
YzU/UVVVX1QmVF5iUQp6cGErQyNGfUw2dXA+UCgmLVEyY2JzXj1lKzI9fHxYem1+aHFmV3ZzXlph
T0Vwb1FPTj41O259OFQ1YWRza0x5c0AKemp7fGxYT3xScWNyR1kyQCppRFA9WmVgcStLSGhSWF54
O0YobGxuQGItMyRCJnh6QkUyVEcjRWomeDBAUCV9NEozCno/dDRBRHMjaj4yXyY3ZTl1NXFETWpj
QlR6d3xDQlFNV1NNKHJ+a1dqaGomanlfOW05U3lBbH1KKnswRUktYVhveAp6YGdxbiRrbURSN0V5
KSg5Zks8fTtnbUNaOUFNYWFLPGkyJjtyajYrdyVsdUh7Q2VtI25SaEJiMSQmRD5kJU5jKW4KejVt
S2J3NUhqWjJwOVpEKmRqZX1kaXRTKDgjJUdmMDhqYnM9cFpNfG9mZlh6MHl4PSUxbXAhcjllbzJi
cFg/aitiCnopIUpTUDsybDJ2cmEoJj9lRVl5cE0+PjM1NTRGfV5SejhwRj4tdT9hJTQ/NksjJT5E
I3lzakVXKVVCRFhiVFJfZwp6OGFaRWUqO1EjKyp0enYjZjcka289cUM8ZmdTQkw9dDtubjtBK31W
NWNkQ0I0YClkOEJqdjRLSHZCekhwKSo0O0wKendfRntyKFlXejs/QTM/SWNoQkZvSU4mP1h7bitQ
IXYtI2NiT3ctRTgpeFU/bylXMT5XeGNROGFkKX45QlBkSi15CnpvVTdwdEVWJiFJZEh0ciQ0WkEp
KlV9KDxsWT0zQmY3SVMwZzgzcFdSKENfSEc/RX59OytEfHl0VSNva2Bjc0l3agp6Vyh1MiVhfTZf
Iy1RJCVieFh3MXloZ0dxbz9mdiNnMk5ecj9efElIPEktZGlXPWxHcDd5TlZvaEhVfnhMPU00VEoK
emNxajRfeT4hZU8yVWgrUz1mPVVGbmkwfVZ8QnxZMHl5M2h2aWd6RCZuQDExJWwtVVQqWjdVKz41
Y1MjaTY8KUptCnolaWlFNm8wZThGdmwpKyQkfXJFPi19dUFGNFUrY3JeRX5CYSYmP3lwS15BV354
NCgkP3AkQCljaiZNSHF6ISM2PAp6TmNVV2BVQ2h9LUp+RUgldDZ1UUcreDQtWHZlQ0NIWkVXeChA
eSsmaztyKm9kR3ZBQU10RXk/dkghU1k+UjdoMFUKemBoYFdsd0Qha0R5KTZGJHtURX42Qkc+RnFW
cmg/O3kzc0lfY1ZOJUhxNkNYflpQR1dASzVJOT5KaFhxIUZeUEYrCnojTEQoUDg9QnVzI3pyTUto
QWo+UjdzYiRzJDErYVhsU2QoPVVDI2V7e3MwPE5nQjMxa1hUSUB5OzRkODhJYTIrcQp6bz1lbGsr
Xz5fP3BGXnZEOXwhcSVCVklHIyFhQ0JmMUh+YFArYyNWSkAzVmpKdiFAPkotMU1eaSZhRH5WWSgq
UDkKemV7JnExM2tfQkVYND4tUHtKUiM1YjdRWXlVRDZLPktDWChvYFFBOEt6eGZgeXZISlp1YDFe
U3tqNkF6TlR6K1hCCnohMWB2WS1PY2pAMlM0T1R6JilZYyV+a1F8LT9XVl9FalRmK0IqQW1wZnBl
V0g8XnNJNDxIUClkZjttPSUpSHppUgp6VXt9OVFmen08emBURn5PS2FmMGtqRHRwPmRFMktebXRK
T2ZQU3RaWUhYa35RTTk7PF9VNnNgUm4pUUN5Mih5QS0KemBFMXAtTGkrR0ZYRyg3MlU1WGp8XiR6
MWMqSClLP2hlczFFJTR+e2o1ME8zKUFFX15eSU5wM18oYy0yPXNleHwoCnokeVhXfmtAckBJenAj
SDRfVElnMzdYRmJ4YVUoNzZNPFMpfldjWXg4YWFDLWdBX0t9ZjVwNUE8VGY3LU53bHNhYQp6aHZT
KiFhP08hVjhBNWlyQWhYcl83eGlFRF8mKVBpJkVFWDAmJTd3dk1xMkRoYmdfZm1PYUhSJUh8MDcw
JTlFRzAKeis9KDkhRW9zbmcoJFh+KjUzS2Yjd0l0bGk/JWJzcDVUJSNyPCQ3ZDV7PD4rNzkhRzRF
dj48T15NUFJiPTZrQHVRCno3amVlR1BmQ2grTHREOykpK0loPXR9Q3U9ZXpmbUgtM2IjeFZiWVNk
MVZIaFlRX2E4cUpgUSh3RWlPRmMxMGc1TAp6d2BQbFhxNk0lMSNKdHh6ZEomaHdsPyE4OzdpSlpe
ejh3NTZ0OzFeVS1DKzI0LWlEcGlzQk89IV9RYm9UPkwrdFkKekk8fCZnSWxYUm1CbGgoNGhXdT5X
YExlKntJcUxJXiR8fjElJVN5KnFvWGZjRXBDc1YwUEEqJiQ/KCR+fXVFN1kyCnpgcit1UT53UF4x
JT1ZaV8yQ0NySlR4LTRUVUtyJUV6TClLZyF8OX5zN0ZNJnVkZUNUJiFWVjN7RDImamtNMUBSWQp6
M3htMXZMMTgzeVB+QWo7ZHk5Tig3PWY8PGoyPGdnYDxJaS09aGkmcTs5JEEoeGsjZj57ditfcDJ0
SFkhMC1WWEwKejtyNWR9VitIYU4/bz4xd090XlVrezxMfGFeMyFaPiFgT25Ramdrfmh0UzV0Q3pO
VyFRdzFDUVlXY0hTKXp7UGNuCnpnajJ1OEI4Vn1+b1dGVkFhKk8kZDlgPVI5bVVzUWUhR2M/X1lq
P1N3QUpgfVJlZnphKmAjRCpFVHU1Km4pNSFeUwp6alI/TlN7PW58ezgod3FWS1Z7YlVPRUBwQDJ3
Mjt5VGtXOExBMEpLcHtmPDI0aDtRYHlkciZNOSY5X1R+NTlyQD8Kem99V01yPlk5PEp8Rz8oMlRK
ODF6QUFZdmpaTzQ2WTlpSj8rWC1MdVJHYyl2bTVDLSZrajJrfWphaGVmQmVqfWB8CnpFPl5wS1V1
NVRNQH5OOUV1TnVjKlRsSGQwSmBScVpiMGQ3Uzgjel8rdWAmcVReb3w9ZzE5eTY/RVRkanJuQ0ts
KQp6TSV9VjU+cUd0MylsKTApUzA3bSs5Y3xBdHR5XjdjQGVjbmVmVXFPZW0mcGp+SjdIcG9yJl5U
Um84e1hnST9oelkKejFkIVpYKDBGREIpcj50RU5EKHhPXnh9fWxURGJNZEcraylTfDQjbCZUMTZV
VD1gfHdpSkdpdVlZdiRpKGooRnhnCnpwaFJwKFZ0LXM8Sm15bG5pKmF8VXhiTS10Km4oeHtKTW1n
S1lmP2xAQXwldTh1Mz01XnU/dntKdk1KQTc4JDdQdAp6aCR9eDV3R0g0X0cyKnBfYXJlRDRgPG9C
RnRrenNCWWc8dXZ2SGojditIVTdoNjx1UVBBe0JZfl9kKl4mRVJXc1cKel5JYiM2R3Yrd1IpVzJN
e1Y5d2E8dkNMRCZCWGhlQ3s/WUBieG9XSSsoK20wZW82aWZzVi1OVFpyJDN7MmJBdWxWCnpsX3VI
bShsPXxaSUBWbWNxQ1ZyYGR5P15mTTtOVz9vWitZXkU5d2gtWnxjNE1qUlh+cDRicGdvYEBRQmsq
YzxtMwp6YFRYa2JaaVl3ZkdSK2tnPz5TaShlJjFTPmFhJFJHdnJlQHBHWTk1KGs1cV9mZEtuZnky
JW4qPjkhYjFjbWJ7NikKelBJOTI9cldKOTtAMDteMVNkPGd7LSZjSjJlel9UT2xzT1BMJXkzY14p
RUBpciM1ZWxtJX1fUlREbjhQIWQhd3M+CnpSJFkyTWNXQW9oOzlvXiZlb3dtQkNAeSFsbT1rbjlY
OFJ1eXVeSUdyJSpgZ3B7MlAjO255O0gqIXJzN3FuRGE1egp6SFMoZypxbCleQzg4cSVvWVdLK1VT
alJQKksyTiRUdCRmPiZPfkAkR3RUPm5RU2Rebn5SdEU7JGRkcD5tWDt5eTwKei1QPCteOz5hTFZH
O21CTjV5Qk52QzV9KFRhMVEzVzhoQHpvcSs+VX1sVDswOWd+OFI2ZT03U2E0Rj10ZiNrcDVSCnoq
d1hYSmNeTHYxVmxYOy1jR1RRTWBCcXtJN2d0PG1aZzV9LUQ5Wk1GJnM/bigoNkpicGM9UFVyaUty
WkMjJDxYSgp6NWlhJFo5bGkoPDdtanRCRVkyYX43STBxMjlzMjAoLSN4Y15QMGpacXRMdyY9SFhh
XkdUelNucFk0Q05HajdzY3kKeilPdDdTbjttXjtQMGh2Uzl1X0JkRjV4dHYkJE4jb0phKU9aZUB7
YHt2S3R4Q2daLVQ/ZWxDaXc5bk4wO0ArOWZ2CnpXc0JqV3pIaWQ7azxQKlVpYn1rOCUoITlUN0JX
VVklK2FjUio0byo1QGFKKlJSbTtkU0okJjQ3aX5VR3tiKHZjbgp6KWtzc2NRRU9kZk5NKWJKPylp
bVI9LUBIPEs7bUdvSmRFWFEqcHAkSjVUdTR9OGs4YU8/SnphcS1QRVE+K3NORT4KemVtQWk5dTg8
dE8lcjxWZWdjfU5xdWs1aiNsbmwtYzk1b2ooXl5lI1I0M3h0VSt4WlRUZUJmTTJsczw4ZkVvWi1e
CnpzMmVITj10UnR2clc/PjN7NTl4bjhiXitNYmlyLTM0VnlZbDc3Wkxud3A0MXNffms3IVE8LVYx
MT5FMW1LeEdoIQp6OzxsMnZWZ350Qm5yZ1ApPUtrX1ZneDg2KXZkQVklLUVlJEkxPkVMVDs8Xmdu
KTNIVEtuKkRgPk8peUJXRnFTXjAKej0tdnAmcE88LTV2alBIRSl8M1RVQHFyczZLa3lkfV98RkQh
QntFWnNZIzFJal4yeFdFXjl9KHVnfTJkSU9XTVp2Cnp6JjJCaTVHKl9AMUtoO31yaFR0cXhhWXol
NHFIK3YyZSskdzNvNnF7Pm17Ti1uREMpND5LXyErPTNvUF8zQEhGPAp6UE50ZU51VVkydXQhcDIp
bEV3em9ydlhVTyNkNmIpWkNLP0RARnAwQkN8bCtsdztuTVk8akktbDJSTTN+e1hDRW4Kejk5UnJA
VX5WRWpCazxNe3Z5RSpTO2dvQGNCSlNsM2h8N1YlLSFmJkZ2ejdQdHcodnwmamxDTlBRJl9pRy1l
Mjh5Cno7NGFVQVk1SENXTHppMzdCKnF7V2A3YFMxSHhAeCl0dTVgKW9wbHpNU2cmJX1wakJvSHFo
SSh3bjRINmZ5PWRCJAp6MzA3PjEkcU4kfjFCRUgwWGVJa08xJmAtRDV1MyFrWDxKfGQ3ZnZ6UTt3
bChDT1hMfFdzdnwjcDE5USlzd0Q2U3oKeklhM1JgekxrLT0wUmNGO25VdTRaUzNQVyhaeWRgNkZG
RzBpTipGVT4mXkN4YjRwSEpRKmRKKSZoXkQ0NmE7fjNGCnpwJmspZl5FbEd5I3QlUUxsVntrNzVY
QFg4azFQal83QXBydmklYTcyJEN7Jmo1YzsoTG5RYGslRCU+RSRSNX1wbgp6MXVBKTFqTjZkN15r
fHIxbnRZdXx6MTUyLVJqWmJuNCM0NDB5KE1vUVdmWmktS3lCKXJLOTJkJkRSMDQ5bEpoZSoKejJL
JGEyMmpncStWVnBDc1pCSDt5OXMyRCVoY0Rwbm1KMV5uNkVRfHBePEFhKHJnWUJEKSZ8aGUpNjQ3
UHI0eWYhCno7NntIPVRMejZZPHdIR2g+IVB8M15gWWJkPjJ0TUdVdDx5ZWVse2NVWnwzbGoyPFAx
Pzd3RWhic1ZrNUpxc21eTQp6KjVid097Rk94VCM4dWpwIXdIMlU1UT10M1NNQ2R2S1F4QkxCSVNA
NkNncC0jdGh1ekQjfjY7ck0mKXFMaS1CQjwKelIreHYwWl5fTXZgYXZ3NzZHd0MkPFB+cHQkaSQz
Oy1BTDFvWihsQGo2c310LTJhUz9pOFBjZjFufDN+JTYmTV8lCnpGPU9iMF90cCt4VXVFSzZLRSk7
fCh5eTZJWTVqPX1FPjl0IT5mPGtsOCNtbCpYPnkhZXBTUiElNXAoRkV8S2BpKAp6eEZjeCgleHB3
em5eJXh7QVl9YyFFbCZQdGYkS3Y1NU43OGxDZjJvSUk7aUFuSVI7RlRGNCVsfXY8KzhSbGlEOz0K
ek5OVVF2MCZRMz9sI28wJD0tO1dzZDxhQUFwPzVFcmQha1gpSG4kdDA/bDhxaj12YUs8clpvQFlo
bn4tczRSa0BmCnomPjFMMlBiJW5rRklwfGMtaGFyZGhrK19fMzFtVEZSVlBlQmtUbWZ9KU5veGV0
NXtzM0FBK1ZIcDg4NS1zKmgtdwp6Y0U8OCV7dF9BSGY3VDhqcCU1LSskOHd0PTFxV2JENSY2Q3ZP
YVA3M0RGRDI8dF4jST5WfkIzMGQzN1hVSFQjQ0AKejFqbGkzVTFqQikrXm96NjUrNDRJTkxeTV84
dS1TJW11S3BmYWhiI3NuR1psRWxRVXhyR0FQPjNObnRyOF9NQ01oCnp3ZlIqS25hT0h2ZUdhJjk7
ZWI0MiFmTzZuWFdKQEcrMGAxeyYlUVJ0cSpzU3pCQWhUKUY9UkN1WDQ5NktUT0dtIwp6SUFyVWRI
dkpuMTB3YFdvMlpMI1lWTiN6K1krcU5nOXdlXj1oKVpwfF4pR2VJWUgwO2JZP3Yzajx8cG96U31o
UDYKek13SEdvYHIjdGFATVBzKUgqRWd3USVyN0hsWSk/TjB8UiZTM00rIz1ZZ0xFOWFeWnRZIXpC
Z0YwdlYtKVZHMEImCno2ME9RRSlNaC1IJGk8O34tUHU7SVA+WShhZDFpcnNjSlR0QUxuZ29lKEBr
TjJsODlzb0xFPi1LPWVVRG1PJGR+YAp6eTZzJWpDPl8lUnIjeUpJYWY0fVpwbnReSiU9dUgrVjBO
PE1wVmh2PnQ9WHkhQXFHWi1udWYkWUo/TWhgNW4hJiQKel4tNkRoYW84fF89b2tXJmRLJFZnYC1W
bCZMXlEpKEg5UyRHSkp8VXF0b2dgblZfRVlORmszbiZ3OzVVbTlTY2FECnohX35iQ1FnUm1iVnhj
KyNIKzxacWhJKUJBWjxLcmE7WVdiMndGVT05M2xRJEBfQ05Ve1RFSWI1cUlMZGJfRjVPNwp6N1lD
ZCVWVFFTMCZLYjtJPUZYWl55IXlyUVFNJWYkKH0mfXt3O1g4azlxXnY9eChGRjZ7XmdZa0NARD5Q
KFY5KFgKemkodEhUK0g9WmFoJnA8cExSUnhTb0RqUkVgIU5ZVFN4a0FWYU17XlJYbWpGTCFPaUsr
Xj09bWkxTjZfQHdVPTt4CnpqZlhfd2V0YCpsSCRHe1Q5Km5LeWF1dm9gZGlTQ1hoUm4oaEVKUUlo
bEU1XlhoVXpTVXdfSUtVSDVpVHtGND9PKAp6ZHhJJD1nc2shNmhAJkBYRHNzNXReUihrJWQrRk5a
dGZwelcod2txXno4SG0+Zl5CPGx0VFJjSSFuSFYlVWR8Uy0KemdjSEF+LWpFSl8xQ2dGTUJZX1NG
M3BSUmZsTUU1KWskNSRlaGc4KDB0fk4qOVZaSTRYOzUhR2x6JlJ8eV4oOVJHCnpYZ2MyJHR8ZVJl
MkE1Sld0WSRDYiFAfjhsckA9aXU8RmlaZXwzZHlTeC1AYVJqY14mZ3dtXnYpZj02bX0oRVJqTgp6
YnpfKk4pdUtAQ05GKlIlJF8jOGNoTFAkI15ILXkqYjwxaTxVUT00c3N3IU9IQjQ5TjlhPlhJdnRG
Ynh0Kk5mM1AKenNFUWpITUIqaERVRjVxbjtYKn1femIkKns4NCg1IVROYFgpZlZ4c1MhTFkhPjM/
V1EyOXk7eSZ1KEkrc2hwbikoCnpkJDEqNylSY31iODBnc3g0PjVmQEk1NFNIQnNMSGd5U0h0Q0di
emZgUiMkUTl4QGNZaEgjMF9WdkF1dzJuXlJDXgp6dzNkWFEjaWl0bk9ZNnsrRmk+WVBeemF9RDQ9
eUJVWWthZ2FIJj98ZDV8cHs+cSlzN3dwbz0keTQ/bXA5WEh4TzUKemVNZi1KcFRiRHI+Zll1RGxT
JXleemJndiY1fXJZKHRTMHFKQDRsVlJAOUhzKlFIQUhydmAqOFVNPjtnX3lTYjVUCnpZcUh5THk4
IWdtQjx5PXVKfXtRR3o/NytreXRWMiNAfG1pP01jQlAxZTJPaT81SnRudnctM0BTIWFgSlZpMlJT
fQp6VjllRShhQDVmPEM7N3NnO3NyTWd5enE7QV9tKjBicCRPQiUkIzlWZ3dNayhPPEY3NSZLM1Zg
TGZ8YFhNNz5OdWIKemlxcyV1Q3NZQys3YFdGe0JtK29kRFBoM3UqWS0qfVIhS0s5N3I7ZndufVJX
RDszNzJ+by05WSMkc2pUVyk1Y1Y7Cnp5QWNYWitvYHoxNWZOT3ZpWGFOSiU+fnM5di13fnhhekd1
eEcqU1Q3VDBmNFcjaWlQSzN2ZSh+Z2o5NmBJaXJ3dAp6a1RNOVRCS0owWlh6ZUk5SFEzZFZFPkFy
KyMjPG4wYjxzeyk4USRRIU56Uks1KHFvVHlVPiQxSD00OTRgbilzP3AKeil7NkskV2lkczUwYU5P
TCo3cTdzbSEwbihwbEF6O2EwTU1uIWtAS3VteyQ1YzJ4PmREJSUyYXZDRjlUbTxGejJtCnozWTZf
MyohXiRKTVZPIWZ2cnI8TDdoUnhOOFVPSDJ4QmBKd0k7c19qb017a3Yja0JfOFBNcihQdlgjQlVt
V0pScwp6U0wzPy1yQHFhPHd6fXxLQ3I9M0Y0TT5ldlhZS1R8fERwbU1gNHJSejlDfWcmWVdAe2BS
TUFEQTEob2RKcjc2MXQKeiNhM0xZPHFYa3MzPyk9O043UWlSOzBRJTt2Xl9WbGEmMyFvQTBLR0c2
WjFHM2E3a007dmdAfDtwJFVqMk4+IXBvCnojZnZUR1doPDNhO1ZFWC1LQE5sd2NxKmZTNTI3ey1x
MTIjKk9ucEduNlBIPi0tI3tlKVpWMF9FY1Qxb3J2b2JjPAp6Wj8mbVQ4eH5WMnMxWiZYTE17Zmlv
YVZTMF80NE5RbSNWJFdyYm1vIVRDNFZwYE8zNkthSUlFQldIbig2eyY0QXgKek9CfWdDSWglMzJe
UWtBejtsZWc9SVQkWGtBQ1RFU3xIQ05aaHJHTk5RamBoRSFxZ0BUO1ctI1JTeHF8KDZaey0zCnpq
NWV5SldCVXZFVmVCUnc+azVzUmFZMUBIWTttIU1NbiltJE04Rj1xP35ZZHFvKXhUYWFKPWlaQEhw
UDk0czEmaAp6T20pMypuS1V2flhTcyNBLSpKb2NPSTl6bUE/T2NuU2pxI2B4ZW43Um04aEFhWExe
Y0pteFhRYmZ4JjQ7aG1jQzgKeldZcm5GXi04TTM/WDBhei1feypAdzNtdjE2IVk/ZU5QOChPLTI2
O08tUSlvYGMlJWBvb2I3ezlrKyVsYHl3X3ZRCnpMWHo3Jj1iPjcteTApRnxZQW9LZlpSdGxNaFFA
NyROZUNnLVdmRD1PYWQ/fDtWWTg4SmVxeyFLPCVwelNnblFLTAp6RHxFbUlRMj9DcVV8dnJFU1N1
b2kobiprViNQdnpqNyY3V2kxeDdXOGlaPilmP318YXlNO2JIT3dZUVdFYm5pNEYKekA8Z35NRzNe
eWpjfHEjalA2cEJEb28lO14qQUxha0FxS2lvJm5oSSlRfmVjSzxRTXBoa2Y4dnhUbF80cVl6UEVh
CnpDdGQ1V0JGZWlKQkNTVVdBaG1RSDkxWmNIKiE7ZkktREY/IXZEdzBkdVY+Yihgdi13VFUwZCE/
KXM3d3FoU08odQp6T1hvS1Ata3Z3UVEoJk4lPEo/b2x6NU0hSzxUdXpLN2R8JX14bUQxMldKT2M2
UFYtK2k8eSlzdFFSYDU5YnZRMX4KS1klcThIPUtsZklAVk9UTgoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvYmxhbmsuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2JsYW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmMzZjM3NmU3NjgwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYmxhbmsuaHRtbApAQCAtMCwwICsxIEBACis8
aHRtbD48aGVhZD48dGl0bGU+Ymxhbms8L3RpdGxlPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvYm9keVR5cGluZ1Rlc3QuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2JvZHlUeXBpbmdUZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYyYjE5MzlmMTlkCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvYm9keVR5cGluZ1Rl
c3QuaHRtbApAQCAtMCwwICsxLDQxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0aW5nIFR5cGluZyBpbnRvIGJvZHk8L3RpdGxlPgor
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gYXBw
ZW5kTWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0JykuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiICI7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBhcHBlbmRNZXNzYWdlRnJvbUJvZHkobWVzc2FnZSkgeworICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvZHlfcmVzdWx0JykuaW5uZXJIVE1MICs9IG1l
c3NhZ2UgKyAiICI7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkg
b25rZXlwcmVzcz0iYXBwZW5kTWVzc2FnZUZyb21Cb2R5KCdrZXlwcmVzcycpIj4KKyAgPGgxPlR5
cGUgU3R1ZmY8L2gxPgorCisgIDxkaXYgaWQ9InJlc3VsdCI+CisgICAgJm5ic3A7CisgIDwvZGl2
PgorCisgIDxkaXYgaWQ9ImJvZHlfcmVzdWx0Ij4KKyAgICAmbmJzcDsKKyAgPC9kaXY+CisKKwor
ICA8IS0tIFRleHRib3ggLSB0byBjb25mdXNlIHNvbWUgYnJvd3NlcnMuIC0tPgorCisgIDxmb3Jt
IGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIiBpZD0ib24tZm9ybSI+CisgICAgPGlucHV0IGlkPSJp
bnRleHQiCisgICAgICAgICAgIG9uZm9jdXM9ImFwcGVuZE1lc3NhZ2UoJ2ZvY3VzJykiCisgICAg
ICAgICAgIG9ua2V5ZG93bj0iYXBwZW5kTWVzc2FnZSgna2V5ZG93bicpIgorICAgICAgICAgICBv
bmtleXByZXNzPSJhcHBlbmRNZXNzYWdlKCdrZXlwcmVzcycpIgorICAgICAgICAgICBvbmtleXVw
PSJhcHBlbmRNZXNzYWdlKCdrZXl1cCcpIgorICAgICAgICAgICBvbmJsdXI9ImFwcGVuZE1lc3Nh
Z2UoJ2JsdXInKSIKKyAgICAgICAgICAgb25jaGFuZ2U9ImFwcGVuZE1lc3NhZ2UoJ2NoYW5nZScp
IgorICAgICAgICAgICAvPgorICA8L2Zvcm0+Cis8L2JvZHk+CisKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Jvb2xlYW5BdHRyaWJ1
dGVzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9ib29sZWFuQXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4xNmZiYmU5Zjg0YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Jvb2xlYW5BdHRyaWJ1dGVzLmh0bWwKQEAg
LTAsMCArMSwxOSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+RWxlbWVudHMgd2l0aCBi
b29sZWFuIGF0dHJpYnV0ZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8Zm9ybSBtZXRob2Q9
ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9InJlcXVpcmVkIj4KKyAgICA8aW5w
dXQgdHlwZT0idGV4dCIgaWQ9IndvcmtpbmciLz4KKyAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGlk
PSJlbWFpbFJlcXVpcmVkIiByZXF1aXJlZC8+CisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJp
bnB1dFJlcXVpcmVkIiB2YWx1ZT0iRXhhbXBsZSB0ZXh0IiByZXF1aXJlZD0iIi8+CisgICAgPHRl
eHRhcmVhIGlkPSJ0ZXh0QXJlYVJlcXVpcmVkIiByb3dzPSI1IiBjb2xzPSI1IiByZXF1aXJlZD0i
ZmFsc2UiPkV4YW1wbGUgdGV4dDwvdGV4dGFyZWE+CisgICAgPHRleHRhcmVhIGlkPSJlbXB0eVRl
eHRBcmVhUmVxdWlyZWQiIHJvd3M9IjUiIGNvbHM9IjUiIHJlcXVpcmVkPSJyZXF1aXJlZCI+PC90
ZXh0YXJlYT4KKzwvZm9ybT4KKworPCEtLSBFbXB0eSBkaXYgdG8gdGVzdCBHZXRBdHRyaWJ1dGUg
LS0+Cis8ZGl2IGlkPSJ3YWxsYWNlIiBjbGFzcz0iZ3JvbWl0Ij48L2Rpdj4KKzwhLS0gRGl2IHRv
IHRlc3QgYm9vbGVhbiBhdHRyaWJ1dGVzIC0tPgorPGRpdiBpZD0idW53cmFwcGFibGUiIG5vd3Jh
cD5VbndyYXBwYWJsZSB0ZXh0PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jaGlsZC9jaGls
ZFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2NoaWxkL2NoaWxkUGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi45MTkyYjU0YTQwMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NoaWxkL2NoaWxkUGFnZS5odG1sCkBAIC0w
LDAgKzEsOCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+RGVwdGggb25lIGNoaWxkIHBh
Z2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxwPkknbSBhIHBhZ2UgaW4gYSBjaGlsZCBk
aXJlY3Rvcnk8L3A+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY2hpbGQvZ3JhbmRjaGlsZC9ncmFuZGNoaWxkUGFnZS5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2hpbGQvZ3JhbmRjaGlsZC9ncmFu
ZGNoaWxkUGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5m
NTI2ODVlMDY3NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NoaWxkL2dyYW5kY2hpbGQvZ3JhbmRjaGlsZFBhZ2UuaHRt
bApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkRlcHRoIHR3byBj
aGlsZCBwYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8cD5JJ20gYSBwYWdlIGluIGEg
Z3JhbmRjaGlsZCBkaXJlY3RvcnkhIEhvdyBjdXRlITwvcD4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja0V2ZW50UGFnZS5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tFdmVudFBhZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGUwMzU1ZDk0MjIK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9jbGlja0V2ZW50UGFnZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZl
cnNpb249IjEuMCI/PgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
IHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0aW5nIGNsaWNr
IGV2ZW50czwvdGl0bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgZnVu
Y3Rpb24gZGlzcGxheUV2ZW50KGV2ZW50KSB7CisgICAgdmFyIGtleXMgPSBbJ3gnLCAneScsICdj
bGllbnRYJywgJ2NsaWVudFknLCAncGFnZVgnLCAncGFnZVknLCAnc2NyZWVuWCcsICdzY3JlZW5Z
JywgJ3NoaWZ0S2V5JywgJ2N0cmxLZXknXTsKKyAgICB2YXIgbWVzc2FnZSA9ICI8dWw+IjsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKKyAgICAgIG1lc3NhZ2Ug
Kz0gIjxsaT4iICsga2V5c1tpXSArICI6IDxzcGFuIGlkPSciICsga2V5c1tpXSArICInPiIgKyBl
dmVudFtrZXlzW2ldXSArICI8L3NwYW4+PC9saT4iOworICAgIH0KKyAgICBtZXNzYWdlICs9ICI8
L3VsPiI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
IG1lc3NhZ2U7CisgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0i
ZXZlbnRpc2giIG9uY2xpY2s9ImRpc3BsYXlFdmVudChldmVudCk7Ij4KKyAgICBDbGljayBtZSB0
byB2aWV3IG15IGNvb3JkaW5hdGVzCisgIDwvZGl2PgorCisgIDxkaXYgaWQ9InJlc3VsdCIgc3R5
bGU9IndpZHRoOjMwMDtoZWlnaHQ6NjAiPgorICAgIDxwPiZuYnNwOzwvcD4KKyAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9jbGlja19mcmFtZXMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX2ZyYW1lcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZDA1NWM3YzcxYwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Ns
aWNrX2ZyYW1lcy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPmNsaWNrIGZyYW1lczwvdGl0bGU+Cis8L2hlYWQ+Cis8ZnJhbWVzZXQgcm93cz0iKiIgYm9y
ZGVyPSIxIj4KKyAgPGZyYW1lIHNyYz0iY2xpY2tzLmh0bWwiIG5hbWU9InNvdXJjZSIgc2Nyb2xs
aW5nPSJOTyIgbm9yZXNpemU+CisgIDxmcmFtZSBzcmM9InhodG1sVGVzdC5odG1sIiBuYW1lPSJ0
YXJnZXQiPgorPC9mcmFtZXNldD4KKzwvZnJhbWVzZXQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfamFja2VyLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja19qYWNrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGZmMzkwMGVjNTkKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlj
a19qYWNrZXIuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgIDx0aXRsZT5jbGljay1qYWNraW5nPC90aXRsZT4KKyAgPHNjcmlwdD4KKyAgICB2
YXIgY2xpY2tKYWNrZXI7CisKKyAgICBmdW5jdGlvbiBzZXRPcGFjaXR5KG9wYWNpdHkpIHsKKyAg
ICAgIHZhciBtYXRjaGVzID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL01TSUVc
cyooXGQqKS8pOworICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAxICYmIHBh
cnNlSW50KG1hdGNoZXNbMV0pIDw9IDgpIHsKKyAgICAgICAgY2xpY2tKYWNrZXIuc3R5bGUuZmls
dGVyID0gJ2FscGhhKG9wYWNpdHk9JyArIChvcGFjaXR5ICogMTAwKSArICcpJzsKKyAgICAgIH0g
ZWxzZSB7CisgICAgICAgIGNsaWNrSmFja2VyLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5OworICAg
ICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICBjbGlja0phY2tlciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGlja0phY2tlcicpOworICAgICAgc2V0T3BhY2l0
eSgwKTsKKyAgICB9CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCki
PgorPGRpdj4KKyAgPGRpdiBpZD0iY2xpY2tKYWNrZXIiCisgICAgICAgb25jbGljaz0ic2V0T3Bh
Y2l0eSgxKTsiCisgICAgICAgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2Zsb2F0OmxlZnQ7Cisg
ICAgICAgICAgICAgIHdpZHRoOjIwMHB4O2hlaWdodDoxMDBweDsgcGFkZGluZzoxMHB4OworICAg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOmRhcmtyZWQ7CisgICAgICAgICAgICAgIGJvcmRl
cjoxcHggc29saWQgZGFya3JlZDsiPkNsaWNrIGphY2tlZCE8L2Rpdj4KKyAgPGRpdiBzdHlsZT0i
d2lkdGg6MjAwcHg7IGhlaWdodDoxMDBweDsKKyAgICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xp
ZCBibGFjazsgcGFkZGluZzoxMHB4Ij5DbGljayBNZTwvZGl2PgorICA8c2NyaXB0PgorICAgIGNs
aWNrSmFja2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsaWNrSmFja2VyJyk7CisgIDwv
c2NyaXB0PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfb3V0X29mX2JvdW5kcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfb3V0X29mX2JvdW5kcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44YTUxNjU5YjIwMQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2NsaWNrX291dF9vZl9ib3VuZHMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+CisKKzx0YWJsZT4KKyAgPHRyPgorCisgICAgPHRkPgorICAgICAg
PGRpdiBzdHlsZT0id2lkdGg6NzUycHg7Ij48L2Rpdj4KKyAgICA8L3RkPgorCisgICAgPHRkPgor
ICAgICAgPGRpdiBzdHlsZT0id2lkdGg6MzUwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgorICAg
ICAgICA8Zm9ybSBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlOyIgbWV0aG9kPSJnZXQiPgorICAgICAg
ICAgIDxpbnB1dCBpZD0iYnV0dG9uIiB2YWx1ZT0iQ2xpY2sgbWUiIHR5cGU9InN1Ym1pdCI+Cisg
ICAgICAgIDwvZm9ybT4KKyAgICAgIDwvZGl2PgorICAgIDwvdGQ+CisgIDwvdHI+Cis8L3RhYmxl
PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja19vdXRfb2ZfYm91bmRzX292ZXJmbG93Lmh0
bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlj
a19vdXRfb2ZfYm91bmRzX292ZXJmbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjE1YWMxN2Y5MjA4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfb3V0X29mX2JvdW5kc19v
dmVyZmxvdy5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+PGhl
YWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyBv
dmVyZmxvdzogYXV0bzsiPgorICA8dGFibGU+CisgICAgPHRib2R5PgorICAgICAgPHRyPjx0ZD5k
YXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0
ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRy
Pjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAg
PHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAg
ICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgor
ICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3Ry
PgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48
L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90
ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRh
PC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5k
YXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0
ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRy
Pjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAg
PHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAg
ICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgor
ICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3Ry
PgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48
L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90
ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRh
PC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5k
YXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0
ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRy
Pjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAg
PHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAg
ICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgor
ICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3Ry
PgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48
L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90
ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRh
PC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5k
YXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0
ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRy
Pjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAg
PHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAg
ICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgor
ICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3Ry
PgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48
L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD5kYXRhPC90
ZD48L3RyPgorICAgICAgPHRyPjx0ZD48YSBocmVmPSIjY2xpY2tlZCIgaWQ9ImxpbmsiPmNsaWNr
IG1lPC9hPjwvdGQ+PC90cj4KKyAgICA8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2NsaWNrX3J0bC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfcnRsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmU4NGZmZmE5OTNjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfcnRsLmh0bWwK
QEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
IDQuMC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KKzxodG1s
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ij4KKzx0aXRsZT5SVEwgdGVzdDwvdGl0bGU+Cis8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPgorICAgICAgICAudGVzdCB7IGZvbnQtc2l6ZTogMTUwJTsgfQorICAgICAgICB0
YWJsZSB0ZCB7IGJvcmRlcjogMXB4IHNvbGlkICNDQ0M7IH0KKyAgICAgICAgaW1nIHsgbWFyZ2lu
OiAxMHB4OyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGRpcj0icnRsIj4KKwor
PGRpdiBjbGFzcz0idGVzdCI+2YXZgdiq2KfYrTxhIGhyZWY9ImNsaWNrcy5odG1sIiBpZD0iYXJf
bGluayI+INmF2LnYp9mK2YrYsTwvYT4g2KfZhNmI2YrYqDwvZGl2PgorCis8ZGl2IGNsYXNzPSJ0
ZXN0Ij7XpNei15nXnNeV16o8YSBpZD0iaGJfbGluayIgaHJlZj0iY2xpY2tzLmh0bWwiPiDXlNeR
15nXoNeQ15XXnSA8L2E+PC9kaXY+CisKKzwvZGl2PgorCis8L2JvZHk+PC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3NvdXJjZS5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfc291cmNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIyZTkzMTlhNWFmCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY2xpY2tfc291cmNlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8dGl0bGU+Q2xpY2sgU291cmNlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8YSBocmVm
PSJzaW1wbGVUZXN0Lmh0bWwiIHRhcmdldD0idGFyZ2V0IiBpZD0ib3RoZXJmcmFtZSI+SSBnbyB0
byBhIHRhcmdldDwvYT4KKzwvYm9keT4KKzwvaHRtbD4KKyAgICAgICAgCis8aHRtbD4KKzxoZWFk
PgorICAgIDx0aXRsZT5DbGljayBTb3VyY2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxh
IGhyZWY9InNpbXBsZVRlc3QuaHRtbCIgdGFyZ2V0PSJ0YXJnZXQiIGlkPSJvdGhlcmZyYW1lIj5J
IGdvIHRvIGEgdGFyZ2V0PC9hPgorPC9ib2R5PgorPC9odG1sPgorICAgICAgICAKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9jbGlja19pZnJhbWUuaHRtbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L2NsaWNrX2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li43Yjc0OWJjMDQ1OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2NsaWNrX2lmcmFtZS5odG1sCkBA
IC0wLDAgKzEsNiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Y2xpY2sgaWZyYW1lPC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5PjxhIGlkPSJsaW5rIiBocmVmPSJzdWJtaXR0ZWRfcGFnZS5o
dG1sIiB0YXJnZXQ9Il90b3AiPkNsaWNrIG1lPC9hPjwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9jbGlja19pbl9pZnJhbWUuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rl
c3RzL2NsaWNrX2luX2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi42MGIxY2NhYjFlZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2NsaWNrX2luX2lmcmFt
ZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Y2xpY2sg
aW4gaWZyYW1lPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBpZD0iaWZyIiBzcmM9
ImNsaWNrX2lmcmFtZS5odG1sIiBzdHlsZT0ibWFyZ2luOiAyMDBweDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDUwcHg7IiAvPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2Rpc2FibGVkX2VsZW1lbnQuaHRtbCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2Rpc2FibGVk
X2VsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzEx
M2UxYmMwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9kaXNhYmxlZF9lbGVtZW50Lmh0bWwKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+
Q2xpY2tpbmcgb24gYSBkaXNhYmxlZCBlbGVtZW50PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGgxPlNlZSBiZWxvdzwvaDE+Cis8Zm9ybSBhY3Rpb249IlBPU1QiPgorICA8aW5wdXQgbmFtZT0i
ZGlzYWJsZWQiIGRpc2FibGVkPSJkaXNhYmxlZCIgLz4KKzwvZm9ybT4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9kaXNhcHBlYXJp
bmdfZWxlbWVudC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdGVzdHMvZGlzYXBwZWFyaW5nX2VsZW1lbnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDM4NmQ1ZDRiMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlj
a190ZXN0cy9kaXNhcHBlYXJpbmdfZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4i
ICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRk
Ij4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgor
ICA8dGl0bGU+QW4gZWxlbWVudCB0aGF0IGRpc2FwcGVhcnMgb24gY2xpY2s8L3RpdGxlPgorICA8
c3R5bGU+CisjdW5kZXIgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMjA7CisgIGxl
ZnQ6IDIwOworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDogMTAwcHg7CisgIGJhY2tncm91bmQt
Y29sb3I6IHdoaXRlOworfQorCisjb3ZlciB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9w
OiAyMDsKKyAgbGVmdDogMjA7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAxMDBweDsKKyAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICBvcGFjaXR5OiAwLjU7Cit9CisKKyNsb2cgeworICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMTIwcHg7Cit9CisgIDwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keSBpZD0iYm9keSI+CisgIDxkaXYgaWQ9InVuZGVyIj48cCBpZD0iY29udGVudHMiPkhl
bGxvPC9wPjwvZGl2PgorICA8ZGl2IGlkPSJvdmVyIj48L2Rpdj4KKyAgPGRpdiBpZD0ibG9nIj4K
KyAgICA8cD5Mb2c6PHA+CisgIDwvZGl2PgorPHNjcmlwdD4KK3ZhciBieUlkID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQuYmluZChkb2N1bWVudCk7CisKK3ZhciBsb2cgPSBieUlkKCJsb2ciKTsK
KworZnVuY3Rpb24gaGFuZGxlcihldikgeworICBsb2cuaW5uZXJIVE1MICs9ICI8cD48L3A+IjsK
KyAgbG9nLmxhc3RFbGVtZW50Q2hpbGQudGV4dENvbnRlbnQgPSBldi50eXBlICsgIiBpbiAiICsg
ZXYudGFyZ2V0LmlkICsgIiAoaGFuZGxlZCBieSAiICsgZXYuY3VycmVudFRhcmdldC5pZCArICIp
XG4iOworfQorCit2YXIgdW5kZXIgPSBieUlkKCJ1bmRlciIpOwordmFyIG92ZXIgPSBieUlkKCJv
dmVyIik7Cit2YXIgYm9keSA9IGRvY3VtZW50LmJvZHk7CisKK3ZhciB0eXBlcyA9IFsiY2xpY2si
LCAibW91c2Vkb3duIiwgIm1vdXNldXAiXTsKK2ZvciAodmFyIGkgPSAwLCB0eXBlOyAodHlwZSA9
IHR5cGVzW2ldKTsgKytpKSB7CisgIHVuZGVyLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxl
cik7CisgIG92ZXIuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKTsKKyAgYm9keS5hZGRF
dmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworfQorb3Zlci5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZWRvd24iLCBmdW5jdGlvbiAoKSB7CisgIG92ZXIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsK
K30pCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9jbGlja190ZXN0cy9nb29nbGVfbWFwLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9nb29nbGVfbWFwLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmViMmU1NTZjOWQwCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY2xpY2tfdGVzdHMvZ29vZ2xlX21hcC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPkdvb2dsZSBJbWFnZSBNYXA8L3Rp
dGxlPgorPC9oZWFkPgorPGJvZHk+Cis8aDE+R29vZ2xlIEltYWdlIE1hcDwvaDE+Cis8aW1nIGlk
PSJnb29nbGVfbG9nbyIgc3JjPSJnb29nbGVfbWFwLnBuZyIgdXNlbWFwPSIjZ29vZ2xlX21hcCIg
Ym9yZGVyPSIwIiB3aWR0aD0iMzY0IiBoZWlnaHQ9IjEyNiIvPgorPG1hcCBpZD0iZ29vZ2xlX21h
cCIgbmFtZT0iZ29vZ2xlX21hcCI+Cis8YXJlYSBpZD0icmVjdEciIHNoYXBlPSJyZWN0IiBjb29y
ZHM9IjAsMCw5MCwxMDAiIGhyZWY9Im1hcHBlZF9wYWdlMS5odG1sIiBhbHQ9ImFyZWEgMSIvPgor
PGFyZWEgaWQ9ImNpcmNsZU8iIHNoYXBlPSJjaXJjbGUiIGNvb3Jkcz0iMTIwLDYwLDMwIiBocmVm
PSJtYXBwZWRfcGFnZTIuaHRtbCIgYWx0PSJhcmVhIDIiLz4KKzxhcmVhIGlkPSJwb2x5TEUiIHNo
YXBlPSJwb2x5IiBjb29yZHM9IjI4MCwwLDMxMCwwLDM2MCwzMCwzNjAsOTAsMjgwLDkwIiBocmVm
PSJtYXBwZWRfcGFnZTMuaHRtbCIgYWx0PSJhcmVhIDMiLz4KKzwvbWFwPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdGVzdHMvZ29vZ2xlX21hcC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9nb29nbGVfbWFwLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NjNmNTYyNzk5NWY2ZjE3OGU4ZWE3OGUzN2YzMmM4MGIzNWY1ZTJiCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNjIwOQp6Y21XKCtXbUg/OzUpSHZwRy0lTmhUI0NDQzIkYlJ1
I29iIW1yTU1GKT8oU09MaWFXKXZ4ST5Ycit9JlFqSCFKb2gKemNpblQmVHtDPDMtVj81QEQyMGhl
Zig4SHBGbEQ0QVF+Pn00OH5BVHU1REArdWxoezUyfDlheWZ0P2RpfHV1fWlgCnpNKGAqU2JwcnFf
QE1JKiEpSUZBdUpLUXNBSENeZF9DcHRiflVtUHc3Z3pkfFc1WChUb00lX3E9SEBLMEc2RX1oWgp6
d252UyhPK1V9OFd8an1UdDc+WjwwZylWWilLTEg2VT5hcXBmU2ZjfWZzRjc+aSglQ2R1VHoxJitk
LWMtRXxNWXsKelZPYnhNZkBFJjQ9VF5KOSUyVk88JDRAdWBtQDc0eUxRNUwlUVBzPV9KbDE8TXNs
aSZvQTtlSUNtUER9alZxS0pnCnpqT35eeFMzUCReIU1gVDlyKlN6e0hnRGZiP25SRzkoeDFsazNw
JXFlMUppdDY/TjhVQStJb0EtXygkaktzNFp+bQp6ej1YOSZDTW1PZWpaME42TmZMeVpHPFBkMD9l
K2sjOEUodXpXeVZHWERrKkRWSCMxZVlsMCFIP2tjdUlzeHQ0P1AKej0teD1xViF3UDspNmFOK2w7
XzkkSHt1fGlNIyoxOXZBNzZFS25jUik7Q088eiNadHwwdFZ1cTlsUjhwZipVZXY5CnpyZDhVZnRQ
VShSSDVYN3xBQnRHYEpUfENVPH1IaFEmfE04RylILU8jUWBKVWNBVjRuPWdlQ0BzTGh5XyF6eUQm
cwp6TnA+K3pzbHU7bURAQTRVRWFWI3NDUzl5RW8rTX4xYU5HT3hSXiliV3dfSW58T0BnWGFjYHdr
TGt3Sj43TTQxYm4KejFFPEUrTzJ1b0tuWTtYUjhiPS1kK0I+X352PnBvR2JpKkkmT2k4a3p0ZS0h
SyRFcVB3KXhVUm5IRTZQKUtRP3F8Cnorc21YaTAjWDQ4MmRNJmsxMGdeRnMyZDFeMFR8SDR0ZFlQ
KSU2WnFEZmlTZTlNOWwoV3QzdGxpY1VWbV5wRlJxYwp6SXhkOUAzKFhoYj8wcGVeRWVwISZ7SWRI
SlFHUyZrITcma3NTUn5LOHJuYW1mKzNMZztReU08fXJwVSgxdmF3TSQKejwrKkgzdDcxZSt8RWQ3
UyYoNiorQkM8WCtsUTZsTFYrYVg2T3duMyVvTFh5SVM/P1UzVjI8WjdWWDQ3MDRTNTY4CnpsSi15
Mik8VGoxMTJvdT41ZGE3e1Z0TH1+QnVPWmhQfUVZeURZT1FaP3ZJKlAoMS1VQVNMYkplbH1vbSFE
dzw7VQp6TUBOYEs8YCM9JXpubmttPktXKXtYSnFKVllnO3p6JGkjemowUFJoTz9tO0dXcSZ0bWhY
LWpucTNfT2pnKmhGY3kKej9JdEI3OEx5ajk4e2B4ZTgkV0d6e3J2b2hMTVBqVjk0QGZXaVVjPSlf
TmB2UClgWD96QlY/QWVBYnM7X2M9ZmImCnpGKylnV3sjMFdPUjFnMyNrUXtgN3IwKU10VC1tYStL
XjUoRFh+T199RmhydEslPS0xIyplJmdiWlRobyZMaml6bwp6b2lNQTUpQHp2ZlVRZzIyPHtWU2s5
LVpUODtkISlpU0YqcjNHQ1pGbFZZdVNDJXN8NzJAc35PbW97LSNwNSFNMDUKej1qNU5EKGMpPmRH
SWJKaV41ZXJwRkE9SUM4SS1zVmJlRDBUe3FjPilhR1duUjNjcU1mKVNUdlBVQ2xFMi08JEJYCnpJ
dSk8IVRXVmY3aWZ8aExxeHVFTiQ3ZT9qOz8mU2FCYXRheTk7c0AkN15tNVRRbGlMT1Z7a0s3MHR0
Y3pGKnJiIQp6azs8cXJLbWJzKExEODw2dD50Q0MoQSlmKXcjMjthbWJUfl5GRCl2bilBLU96d29F
KmFvcypOM24+KUNDez1QbVYKejV2QFY4NjdVOGY1ZW9xTUJSfk87NzVxQV5EUSZILSooRCZTWHtn
IWwyWXB2MSZwcC0qcVN+X2wrQ3ErdTs2KXUtCnopakcrPUR9MihBS0coSWBwMHBiaXA5JmtYYHEp
OWhOKil1M0pEO35XSTN7K3ViRDdSXyQ/NEA1SCo4NT9HKUpOfAp6MnRWaWNjSkZ1cGdRN0NRKWJZ
aUw3Pm1SIylqXyFjPE9BRTYyaXdZT3BBeSZrOzxIQ1gxSyp7a1VyYDxLZHlVNnwKelVKMTQ2djJO
cGBnKUB+bVU/Q0VLQWF5X303PVI7JmZMdk09emR5MmZuST9+dClBVlR3ND5AaVojcWFzI05fVjVO
Cno0OUJgflpPMlZsezswcDBSZmEpPEk/SU1NSj9FJHpHZmBJekVUTkoob1hDfFgmemRzMj4kR0ha
IV9LaDNEcSVySwp6d1dwVX1FRTcqNyEkfn4yU0tMVVd6c1FyWl9OfUo8KGctXlVEP2NgPEpBRW94
NUpXcC1ncjdKNmtCZTReYGE4SCEKeklIdTczMUhhJCQmSW9vIyl5MExnOUJHRGMtI25zSkhYNl9j
WT13ZFUpc1hLRDBMPEU8ME9xNDRqYXZrNWUkeWw3CnomeSh3VkxBYm5NaVJWWVE9MnkmSiU1Q19T
U2UpMlRYU2RnVDZRWE91Y2deekZEUnRRRjs9V1YwT3IxNEZ1MUdhYwp6blYoRH5RQn0lPVlPRWNG
Ynw5NVRDVmt3WiErP1Y5WWk0N2FOTHohYCM+ck1rK2F1JGdBallve0d4MEEjUXNjeFAKejIldCEl
SWwlJH0hTUoodiYoI1NrUntQVl9TYXJMI2dBSUZBP0ozXzhKYHRCUzIwbnd0aGhURUB3P3pwUEE0
NFhxCno9aiMkc3NKXj90VCNjVzFKaTs7eSVlWUNXdD5WQTQoNlcjWTk+cmhzbEpsRm9hT0N7Kj93
cCNObl9GOTNvMChCIwp6T31WYEgje2N3RU1QQnF1TTxybnYkdVpFZGElfE5vKndGcmdxdXUrYVNl
UT4jZVZ0PmJhYCo9WEZjRktIaUptV3cKem9DaVZVO3M8e0RNSiFIZj9FZFQ/WkA8eGJGPyN5JEV7
YHZBUXhiaDh3OT5EdFVsVHBzTSkjMyhobGAoK08kKiVPCnpvYnI2dnc2ekctd3JweHlrOEt2aVp4
Umx+JmBmMyVLODdtJi1vM20oSVhNWGsyPFl0V2JaV15RLUhwYX0jTmh4MQp6TE8+VnktWXQ0M2B9
QFJYV0VDM2FoPX1OVEExYGxAUzh2REw5IVg+cnh5bTNlV05+aS1CUT87Vns7Ki1OKDVQOFIKelct
TTNlPnFWY0pofGd8TSpPUHNURXk7Pj5xUm5DJXlZfU8/Yzs7c3ozdmtRVSZERnU5czw5RCRSUG41
SkNORFg/CnohaS1malAwUTYpVDBOYWNLRXVKdUowY1BpNTtDJSpsYXE7RUM7SW4wWU8/MF9PWShH
VE9pNy1lbyh+VFhvfUx5Pgp6a3UyV1ZeUSVFI3QlIXNtQjdwYG5YdnUzKnpZZzY7dnRJJmtTcExK
WjlUcT80Yl8+fSY0Q290cGtNMDIhUDlXKjAKekpjZSQ3S2oyfnU1bDhCUlpHckNnI0dUNDBhQEph
fUk/azNqZzREOVN0b2diKTwlcy1QTDlYYXhZSERnfE5aUWNRCnp1dlNZaUNLOEEwQSs9UFEwYlc0
aDg8am0wYUNubVdJeld5JVIpSHUhNEZvfVlxcTlzaUkwWSFfazY+bj12K2EtOQp6eWo0PC1JPnB1
MU57M05AOCEmYTE9bkY0biRQZ0hTWSt5MmhXeGZ4SnlRaUomekJiYDE1UVFSKj9GWTBhamppU0QK
emg5eEYqNV9gfTZZKmAlbURoQ0QhcktGX1pDJn1WfUlga2EhVm1QPCQtRjBmd1N7MG9WekQreFBq
M091XjE5KXMyCnplTXpsZ01eQzdDUys9K2d7WjJadW9BJTgjJXpseHZKTkJiVTclSHl6Y2wqcnsx
WnBXe3N3bDBPendlSipQenM+Jgp6UEwlX1YxYTslNyVYNVhsdE1FemVKNiFDYHoqbzFvTntXaW5r
JiVoQU1RVSNDP35BPGE8YCpLezxoVXJGYnowVkUKekxEQXVoI0shTkJnNDFMc1Jedk5RWHBjPjVg
RlZNSGQzZGckKHZ3emVfVXc2KXAjODZ4O3Qwe0VoO2pXeGhDVkdGCnppKVElSm4wekZ2aExrSGAp
JTReQEQhbXNVVVEkak4zRylCXmBKPDQqaTswTnxVeTw2WTEmWXx6KzhUTU5HNSk5Zgp6cWlueHRT
cW5FVGdoJntIb0JXc31FNUFfM1E+R2d7P05kPFhXTWBpb0FOIyFBZmIxNDgoUGhsV0ZTU1VxNlco
R2EKem13eEkwLVBPc05aTztrUjhqVjYoKDgjbzwjYjIxVks8QkBJTmpaSF9rUktOcFNFPF8rOVVV
JDU5VEJFO3M5TUc/CnpBbjxLe05xNkl0YjtLZShKWG5URTsldih+VU5mNSVwM3tiaGhzUUpjTUUm
O2c7bT1KTk1SfH5NKjJjZFl5Pjx0Xgp6XyU5eFJVak97SyQpK3YmUkZSK3xjZmorcmE8PFhCYyNT
SGReV09aaT9LP2o9Y2YrXkt6aj05aUhvVDhWOGlMK20KenhwO1loI3omS0U8Q1MrfjhUY0FNKTtZ
JmxSYUtSaEZgZm99czN0eyUxMVc7Wm51PGBhdXp+P31oUWU+SD8pJmVYCno9LXAzVWFleTJSRHwr
UUIlTURkKTRsPCt0YD9PekpxcHoxPVVjQE1WayVfZTJGX1RjfnB1SFNXazJYQn5XOT0kKwp6P0JQ
YF9RPlVaPEZXVERMX2BxZztpaDEtdlNXSGxDVWpqODcyS1RwLWg1YV9KNkZLKVpEOGllPHZXRTB7
P3pBbUIKelQ5ejViJEY+Q1lDaVMqOXVhZV44KDZGIV5ZUzdtNHQhUSV9NWZzNn48Tjg7V2JCUyV5
XmY2QU1ZTUJqV0N7JnBBCnpXSnBLbEBBPXw2a29CQlNRc2wwWTd3R1RySlomWGNFYH5wdCprRj9t
bnozZH1XeCs9P0g4cktDcmlMZXZtWU00Nwp6Q0Z7VFQ/VWtNMUlHSDduZWBoY01ISFAxOWFkRUxY
aSR3dmdTem9zQlUySjNWKyo+V148cXFUYCZWQz5+TEFyb2UKejhyUEMlaCVTME1uWDZWfHQhMmdQ
blNoOWxqRXRPfEJ9c05OaS17NTRoMllCWWIpdSU8PiptelpFcVpqZkd5TU83CnppTF9NbmcpdExI
NDYyUTN5dSokeVZiR2pDPGtOT2M5PCF2MzVYVm5sYExvZFdae2U9SWB+WFRpPi10WnZ2YTZgKgp6
WGc3Q3YoVU51ZmtoNjxSRyVse1dHe1cyS1lYVVQ2KFhZLS1qfmN1LWViSEFFU2NtVm9LWm90cW0+
cl5ITm9ae3YKemJgZHt2QF5hOVdfNH5HcCtTViUhT0BBdD5QREVSUnBGS1F9P3h7MUdqaVpKMT8o
Q1MrQkBBMkNGV0stJDxWUXU8CnpWUzRjek85JSQlMEZ9T2FfPSROXlh8ODlfbiFlISUyWElWQnxE
dXp5bDs/RkZ1cEhsMFR6SD1wMEtidys/SHc3Sgp6eyQ8cGVAMHEpNG9uMm94ZE52M0lpZkhQflBr
bFN+Wil7dFBoUXNOWFpQe2NBWEFuPlBLcmZ3bk1vczxFVUY1IWAKekNMPFIrYCZsTVNCMiFVNSF9
NE1xPkNMSmJqJHt3ZDc9UWNxR3hBY2M9azlVMXVgKT0wdEFadzZTPUw2P0RWZHlkCnpXRlBPXnNi
ekl6QldINHRAOEA4cz9JTT5jPjtvJjsxOzF6aStYJj5hSGNHPmA2JFRzJjdtUkAqU2ZkJUhrZCh4
Mwp6Sn4yZ2ljNkspV2smZCRhNHNUOGghcn5NZT5kYDJ5PEhwTndyMyZZUW5eX3omMEk4IzV0VDc+
NUdLZ3tacU9vKXUKelI4anBAaXQtfjk+PjI3cVhoTWB9Pz0wYzxYTUtHZ2xXKnJNI3AyZTdOJUYp
RnVlKGhJWkpsSkEwUkRqZkheODB4Cnoqa05kPUtWcCFUaU0qMTBTKVRFak1OWXlmTD5nUUNpS3Ql
KXZYMVNCISs+SnRmfkIxbDBLd0pAVU0xUlRmKlFYIQp6OHgqc3hTJHZtX3J+Tno8aEQhO094fmk8
Jkt4UTdsSmp1SEYqSGBCa3M7T2FDZ2leTk91WmUqeHNse2FNJlppaTgKelNVKWtIKFBXfnpkbmRN
SWVNPHh8IW0rNFBqS3J4XjlPNHUoTSVmdnNifVp2UVliUEF5QyRQWGdeLVZsJiZOXipSCnp4VFd5
I19walkqYzdCMH5nRiNHU2ZPPjl7TTthPioxTDVxX210Wno4WklBVkRUQW8tbihgdXlZdz49bEck
e29uQAp6IzhBe0RYZnhpVEhEO2p5Znl+eGNFXnxASjx8YitHcH49KVFPenszYyszS0leUz9SNWp2
JnNBR0xpYTB0TGxhcUYKem5GfFRZNVYtKG8wMCFEcEN9VmY5SFJkODBiPD44YXNCO0tJNW87JkE9
TH43ejwlRm1PXz95bEFJRXlwYiF5OSs2CnpVa0JoZXJrRU4rOCh+KDYtM3JIfj8mNWhSVjsmYVI4
QF5uQWswXl94c049a2FDe2dBZ0goXjtJJmtpYnlOQGVSZQp6SlYqZiZsKTtuP241Qml3eHpfZWg4
X2wmQDtrXnFUb1I8VHFtX0tkKCslJT49aUlTXkJUZEQmeFAhKndNSEhkVCQKek5aczgpTkc8fDJL
bSEyQnoob0ZOMERNU2IrMTZINGpSUHskQ3Q/cCR0UylsMm03SnN8X2RTRip6d24haG5KUiYlCnpY
fHFFS09ObHdncEctKkZ3OG1jJCVwOTQ9QCZUem1hVWV1PV9WOEZPYGd1QFg0SylPWihrWmNsNXd2
NGxlZHptVwp6P2UrTm5qflgmcC1OK29YSEN7WE9WSGtEMEFEYGMmUFV9c147QDZNcU94QmI8bk9a
K0YjdmxMfl8kdnRiPTN9QHgKek5FYCROREhIVndjSyNpPnZ0QWhkVm1KRUtrTnQoIVhQPzc9Mj1s
Z05qNSF6eE1WYmlVJDJrbV40bz53YjxZVT5YCnoqVm9zZDlBQSg5TE0tQlQ+YWRfc3lVfmU1WUhR
T31NNC1taVh1SFIoM2xOdTxMa149dmlWc2dIQ0FKTyNCdTMqfgp6ZD5vZEQ0VHFxS3EyZSthYH01
YzRKVUtsS3Z6NDhHdndXZlZxZ2llfW9+PGwmIzIpaU9Od3g8cEFWfitQTn5AKWkKenF+S34oWUFf
fTxuPHM4RF5WWVElSFQobSgmOz5JZnAmP0xEUVRuNklgVThwczl6YCp7TUVlbyNgfVN7KmR9cXFF
CnpgPTdtenZWX0xxdU9tKXZ3dDJLYmZHaCU0REZCZitLKGc4YHZePEx4SUYlTy1GLUY8ejdqUV88
Sk9yVkRJZlFXUQp6IzNobSZpWWNEZnd7RStCQiN4RndNcFRCLXBFOHs+MWpaYks8RjNRYSZBIz5j
OUhWdWYyJG5YZmxZTUwoa0xxdXoKenBtWVFzU0pnM15ITSlqKTNkXmdwZlA+TDRpSDlaUWh3c1Fp
dS1NOyRLejktUmpmOyZmSzBTa253VD0xUjN6ZEsmCnoxI0R1OWRJV1NGcVEwRj5ZX25pdUIqfSpA
Snl1Ty1MT3pxVUxFKWJWQG9nOUEtcGBtKlV5V0E+QnhnUXY3dXVQMgp6fDU3a0ApLTZkNkxyb0M+
Wk5VaStnX1R4QHImcTNDVHg9R15WMldPODhQfTNhbU41bSNqIVYtOHNVWWJEaHp9emgKeiE4Kk50
cDUtPCRlNzlgJXlLWTlDKlBEZGJ1dSgtJjxRRHZgZiVNKEF7Zl5WcEBeWEtUQTB2Zks8ME15OWQ2
a2pXCnpXZj9JbzM5WmFDJCs2JDFmPSkpdzR+JHVaKkA1OXViMHsoZE8mTE1MVXl9U3VpVHtrRVZj
KkFVXmxgclcrYVEwLQp6S0JlPVZ7Jl5LKlZ4aFFYMTtORVNHOW9ZK2NVQmdhMiNFKkBfdFNgNktQ
cDxIQi1vZ2MoaCo2KkJxfXd5KCk+I3IKemQ0MFhPIyF5YDJuMEw/M1BTVzBoYU0zVH03O3xgNl9A
U2wkNTcwKWM3Z1B9c2AldnxIJEx4WDFyU0oyfU9pcks8Cno7dEJgdkxCcHlkTndMQXVxQEskX1B1
Wn1mVyhwJklob1czO3w1QjNHPnEhUzVfSj9VPFVDZXEkIVlIJSkqbH5DKAp6MmclPjZBZV8xZ3Vg
Y0laUGtZX1dgOHkkVU9BT3RxKW4xVEMhdG9ENUNWUFgmOXRTZ31XNG1BMipvRVZILWkkU3YKeklo
T0VHLUt2dDtDdX5kWnlnN3xJbDc7bCstM0ZRRiQxVWZaT2ZRU284QiEhTXgmJWhheFJpYWdLJlY4
Zl5aZkdqCnpVUkcxZCspPi19I1B+KmdNe3tCQGEmS2xyTVVYc0YwMTkqcD9FPEhOO05gakdaS3Zu
UWVLdFEpX21nampqcXhHeAp6amIyNmxaR3A0XjEhKjBiTzdldyE3MCtLLXQlWHJPI3pZb1FYKHNz
SkZoNW97IW5DWl95cTFJaG5xI0xQbT5zcnEKekM2ciQqQzlgVE5xcXE+ZGZKKCZ4NSY7cVpRTkJB
JFV0Yk8jUFFxTHFNYGE5cXFPZ2x8SSVxfGpyNSV+K2FQV2o9CnpXZGV3ZyVUbnJPVTt+MWRNWmNa
JmVsJGd0SGVqKDJ7YlRRRTJlTV9CXjAwZ0g+MTdnRm0odUl9QVUqYjEoYmg9cgp6O2MjJSpeblNW
OGZAK1JmJmhJayRIc3RIRWg4ZkBPZlZNc29xa3hWMCthO1cqSWpMMCo5ZG4qUTh7Z1JhWkVkKVgK
elRHRSp0NCM2TDsobz5FRkY2R0RtPH0peXYpdnV9R2VeTFA+am9Dek1peVN1dVJyfklDQUc+R3pV
UHAhZWBwSmFICnpBRjc4RTJ2dnFzRzlVfEpxTmVFREtOQ08zeXRkdD9ZbF9hYlEyQEZ0SHh5dEop
QEFAPjIoQS1RVWlfJCF6YklFdgp6e2c7VmpLfUAtKyUjcH5vejR3WjNKbCYkciledm92Nj5xdVNz
aW9TNiZ6IyhMY0JjKlJpWUJ3MD53aUo7e2cqcikKelVUOXY8TSh3O09MNnY4UjBYYlJnQ0dGZDJw
RmheeU99PjFsKHhtVH5uMEdqZGYmbX5IbXxANnppQVQrQWJoNTxuCnpmcHBqWGJ5RWgjUThVUGch
YXM/JGhkN3QwUTFSTnJucSVFfHFCQ2I1VD5mR3N2ZU1OR3VHYWxHMj5MKSRZYEpYTAp6V1prJXw+
VXh6dkBQNld9azJoNl5rZVctWEJhfDNLNFgkMWIwSDZnYlNGZlVOYyF6Z3Y3VzU0MURralR1KjYr
TXIKenRfLWlXJDtWNk0lQnw5QEBVR29JWHpOO3BNcUNuU1JnXkolbipWeCF8NFY4USNlRCk+NU59
IWY1RV9DTGlpMVNTCnpnYW40cjU3ZnZNd3BCa0k+fVFkbXd8PjRIWCk5N2E/ZTZhMCslJlNjeDZm
MWROUkxKfTJHZWRLZjd5djsrV3p4MAp6XmRAQjUlZUB1KnhsLUxhY0EhfWA8ZD5CLTx4PDxYcn1j
JWRXakVLaTd2ST4oSENhPjhMJldKNCZUbzUmQENGP18KejM9Ql5XK20xOHFlP0FURk5sfm5xZHRX
bzQ9bFgxeDBGPGZsc2dFZmhTI0ZvRyllU3RDNjcwR0ZmT2xEcmtVJF8lCnpudDgwNzhQWXowUUhI
TX1kcTZXWF9AVjEjPmg4QiZZYF4hWWQ7UD19YkJATjArRiQyTHk8YlRVVDJKJTg9UUVJJAp6c3l7
c2I3WXEyV15NJkZGLVMyflN0UF5NfnhrPGklfEw3ZF91fkk/UF9Xc3RvVUoqI1lEZWFeVUxXS1ZO
RmRCKUgKemY0QWAzZCRoTGt4WUZmMjlyfFdfdD56SEJka2hncjhOSiE2ZUVoLTJKSTRFISkjRHBv
aFBKTT5yZTtjNU9vQCYoCnpkX2BKQi1ZJDBlMkc0aUk/PXtVTER4NUsoe3kxT1B3MmBUaUM8YHE7
NHpZe0JKaTlqRXpmfmp5K2p9bTBBM2VDbQp6TTxeN25Ce3VLdHQjJiMlP2Q9RDdBeXp1ST07Zzho
dEY8NVpBfGJQfXJeczAyWCFDZVJSRXlHfTk2flp7UlFMPW8Kemc4KUxoblJvblVQTF9uUW1ePzIo
TWZJSWUpYkN5Mis8MU9VRU9DTkhKTWRgeTBiJjsqI053VEw/Uy04PHpGcnYxCno7SWZ6TD09PSN1
OHR7Rz9MakxtTT9xUmA8R2NEbDZQSU95P0hLb0pxX3xOMm96fX1xWTl4QlFXN1JHZWYoQEs5Twp6
YzdlRD11Pjk8QjlDYVk8RH09VnV7VXlFaS1nKTxZbXxtb0BufTZ4c2wmaTk4dSp7LU4kQEZfPld+
JFR9eSV2OTgKej8yYmp9UXEtSCl1MTckX04tdHIjWW89a3VUYj1oanQmZUxQWk96WURQRyNLdXtR
UjdwKDw+e0Y+TyU2Mk1UdXlFCnprZClDUlN6MCFCS3tlTFgobkxPPXYrdnEmbChrZ0pIaVc+bjl2
bGV9MF9mUCMrblpHWjx6P19SNk4lZT85a3VQewp6dHBqT2wwNz5gZmBxZmYkYE9ZOXdrP1A0fnJs
ZTRLZ29RbW1KWTN2QWFXST94Typ2V0ZhMioodHMlSkoxZlp7Kz0KenJXUyY1a2Y0bFVnN3hlNXtg
OWRNTHhESyo+IXBuQ0ApSXJ6QlVNWG84YXR2SG8zNUtOdUt9aHhAeDBCQU9FflF5CnpvPiR9Y0VS
azRqUypieHZxP0puSWFtMi1rTnVrR3hzP3lDMURYRyt1ck9kNCFWaDY2aEM9PShOMzVoTj54JUc5
Pgp6SjdHOVExRFckeCtVYyQrZWRxQXBLSGtNVz8mcFlMbkR1Qms+TG5GZm5lcnw8cDNJe2Z6Tlco
KWRUd3JSNXN7T08KeihWUy04Q2xfaF9QYSl6eEA2QXBoPU0wJmptUnxTMHpKfEtgYC02a3dWdHts
bjRLSDl9R21ZWVlfdnxvZFYoKEpRCnpDVW88XmlVVUFeZUZBOXQ2OStGMWEqRDdlUE85UmdrVjFN
PFooRmRSaWo9bFlFQSMlUUVYITV5NjExTEBTTCtCSwp6TjFuKTxvMHlvYCppXksmSnU+alAyU09O
PFdTNEF5RGw7Njc/JW91LUokKkVzZlM1NlNyaW1YN29YLVUocUNpeC0KemlGZGw1IyhLUSU/KWNX
NyNyZGJiMGQ3eGxWI1VHJWIyREFyUXNjSmlXTEFfRGVnXnlkPWpkaFhPcF9rZEIxX2BGCnpaaE8l
bHA3KXw1a1AtUz08OEJaWGtxWSFNIVVQQ3lkYlFBWC0pKHdZSmglUHZkWiokMns4M1VgbysoT2pQ
e0NUSwp6QD5Ka0NgfjFYSE4kR1RQYXE7WXwjeXZOQiRlcSpLLVE2OGQzKSFEfnlEeis4YC1OQn1r
RWwlNEFfZU8oTXZkJlQKek5UKVhiKWppJENfQVAhMD51TlpAdnVwT0NGbnBJSW96KFhQN1U9QT1p
RnJIfDE9UGckUz9NUWhxQHhlcENAbm5PCnpgeFkjNEVqQ3l0RU8yPXw0MzskQntCZEpWUyRXbnl0
JGYtI3tnO2RiYilkb2NOK3dXOEg3fUVuO0MwKSU9SnkoLQp6PndCRk4mRzdxJnV5YjwlaE1vfSQ0
bUxDbG83e3hYcTxZfVlXYTVYYz4rdGhOKlRvOFlJIWp9N1cpLSgpQF9udGAKelBxc2BpMTkkaF50
Tis1cSYrb05YKTtaTDhhYn45OGE7Ny1qeX5GeTI8dDtyK003WHw5RjJRJWxaam4ra0M9JHx5Cno+
NGcrVSNgRWVQPzRKam87R0B5cnF0SGBhNnwkYWxsIWRMSWIlfnhFIzZ3MCZEYUtJUi11eyRoSU9a
RW1FdTJIIwp6LT92PTkkIT1MS2w5QHxPaE5jSX4xPXlCK0w9YVNfKG4wMlgpO3NLMDd8ZiVCYkcy
S0M/Pk56VnZATGxCWSFmVVMKem5sTypEanc8MWV4OXhpUzU/N2NQIVRAI2hXfEVlZHJ6ZX4jXy1W
aUtBfTRBangzb3dYb3J6Tj91OH1HK1BhOzRBCnorV2xlUUQwJmYrSFBOIVkjOU9YN2NyWiQxe2tt
NFJOO2RkcWZhU0t5NHs+YShYPV9AeEU/I31iVk1BeT1jNSk5Kwp6c3kmTio3I1pCNygxVU5taiVD
VEBeTnchT0YtYDVYVmpoOUJPPU05cDRQYGpfdWtAN0hvdCklN2k8bV8odEdvbTYKenc8ZGNzN2dt
QzwxZTdZS3hqaFNTNGNoeXpzY3ReTFZyTD9uJCo0QX1JKihyS0x9X3NMUlBuVj55alN0U1RHJHJT
CnpZQENPODVPe2NhRXc/WEQqNmwwKEB3alJ4bHJzR347ODRZZWgoSEpldWtUQllycllze2NRflNv
IylHRm9FZFdBPgp6S1IxbyM5UU16e3M4eihARTVlajd7cndVeGRMblRsQChLIWJOezxeVDduYX1V
Yi1SZzs1WEY1YmZwX3hkSyROR3kKekU5cEBXOUEkYk53U0NedEI2dzc+YyQ0bT9EYGlgTTwjPjxK
KWwoQV41KzxlMV9TOHVHYHViTFcrVEpmVTY/ZUo7CnpkJl5HPUFYSDNJSXQ4bDZnKWpSdipJe21C
Nm1LMT5NPkt9PDt2c3xZZDtZeH5fcigkXjEwRDBOVHM1dWR0aHReNAp6TihnPXNnbGtxakphWT5S
P2lJZGpVP2QrT3BPJlZNMW9WTFpQK1VfeVFlOFUlT0NkWDxoO1krSG4maVFrbXotXlcKei1fPiF3
QTI8O0piUll5Qi01KD8oVik3QUw0QlZjJjI3Vm0mMzswQ35RZFpxQXw1fStgJlRHRHFWVVcmKEZE
V1NyCnpYRmYtRkZUeik7aXF1PjUtY2VCU2ItbGlpP2gkMEMkPmRrOGo2SFNNeCgtRyg5IVNnYXV5
MCF2djUzMjBeRiNURwp6bUVUPGlRREJke0Y8STROJEtMYm5yWkEhSjFqa1RzQ3VDc1JfPSpicjxZ
P0NOezxyP2s5IXZuSmdLMTB8REI5aWEKeik1dF8kXmN+djE/QWc8U0hucTBZYnkjWF4+eVBKKVV6
U3VVeGp1YU9BU2tIQU9jLTxWUHsyUyFNQVVyc0dAT3p7CnppZFZVMmF0MDJSZU5TIXp7I3VFMlA0
VD1QcGklQlIjLX5AS21UYF94M002T1NeU311e1kxTXdgalJlRnV0ejhPRAp6a31UZ3B6YEUoVWg8
OXAlVSg8Nm5mPFhvVUl3dHozZm07PWlPPWQkREgjcnxVOX03Pm8mS1FTdFdjdmskcH13fVoKenok
JS1YXlpWNXZETUdecHVgYjJeUnIjMXY+dSttc15MfT9VNGNvZWxtdiMlbkBJRl9URyZhdkM+TSpK
YXBGVS0wCnp6c29AdEkxaTRTWiZmWGU+XlEyTSZvSnpMcWxGe0lKUD0/QyMjZV87RWspcTt0diVs
USt+cmdANHhTKzxjVmFjSgp6MDEmfjVXUWFVdiNDJmdPbDNCKn4qIUdXKSQ7cnV1OEs/N2c0Jmc7
LTxSYF9+THtfdXkzSXMqdUEleDFHYHNKU3EKel89fnZPSTw7MnI4dylUOU1aNzwrIX5wO1QoczxH
PEB8SU1yPnpvYSViOTF8d2tVXkpjVzFeZWUrdD5iRSpJbXVJCnpHI25nZy1hT00oWGA/RDcxRyVL
dHE/cGdPMEBwejVfVzRII2gyT2YtTEo8ZjY4TjchYmRUMDw+RWRHYVFBTWR0Pgp6dF9JNGVvbFNt
cV5gejl5O1BXT05qeVVgIU1vUShrKTMoeENhSHRaU2gxbFVWIUF1SDBJeStDeEhPWnFOZT1NOGIK
ekRFSyZPc2MyIyQlZkQyMmNwIz42N3N2UXZHeXYmMVAlPkRtY3kmNFdSQHhvYmxmQ29VeHcmVSZX
fU5GSEhwSWEyCnpiY256NEQzPldsPUt6JGFOaU1BS0EqaXhiens8VEFlWUwjYj4/eWRlKXlLU2ZD
ZUtCSTckSHVoJXZmbkV3QSp+KQp6T2QoWGY1JHxPYEl5fChfeTc1JldpcTY4cDBwPzlTMkVsJUNi
PHpoTzM+Y08jOThNQnQzRCt6THlaQ2QxMVVNdykKemdSPmxNYUUqbClTcTJxVTxBJSo3TCZNZ2Mo
KHVIZiklWmNCOzcwS3hBd3dMNSY1Zj8qaWFEITYhY1AoSU0tKW9kCnpadGJxYnRxKmNqaVU8ZjVK
I0olQjhmMG9oTmw3eiZhTDVtNThWaGNGdiNsT09tTVcrZld0UklEcSVmcnZ3c0BVOwp6R2IwTUEh
c0c2aGU5TH0rdHlue3lpeGYoR3d7UH0yeig8QEk4ekZyQXR2ekpCXlU2fTFnI21veztVK180bmlD
aDEKeloqcUFhRT0kNHJ6dE9DKjthaG4rRV9SLXpfR2hPV0Q0LXVRNWlhVHt3RGNKT3p6VzcmeXhw
VlZyLUomKHR+fFBUCnpHY297dkxLJk5YVDkrS1JIb2pxZCVsN1ohO05iOTNzMEFIUGQtfndMbyVM
aldPR1JnZC10RlNDanNXJS08MzNtcAp6U25oYUBGVyNUPSt3M3lqS21wQEFBUHZBfEsyXnxLa0cy
JUhrJHEtTCtIVWllVT8lK2p5OEY0fks5ZTF4U0xkQEIKelNnNFQoRnNwKyN1YFBAfUYxK3BmRT1e
MG40QClGM2pXflM4ZHo9VCVLcDhrfCh4eS09ISVYeU5ldHNYV3tGU0xJCnpIanR+UWNEZ2lEaEtI
fDJYWWA5aUk4eWFAQk5hfHtabkBtMSVsKCk7TkxNU3lyUzhzKCo4OD8pMWc0QElDP2t3fQp6T0Jw
eWNMZ25gOzI/RTJxMSNLRXopQDRuaSlucXR6Y29wRGZ8THlsKjNBKj1ee2k8Y04qV1gyMWEzYihm
ajY/fkMKekYrXkk+JURNNmE3WDh8K0VHXzx+bkZnMyl0NT42OV8+O3ZWaHhaSn5ecmZRK3lsdj88
Z1YkYWUmRFMmU2NUTEI5CnpJNT05dE5QMnE7eiEyRldva35afWtBRnxQeWRPVGtebU4je2cqWX5y
RWZaMEdKY19KJnw5NkBwTGVaPmQ2dXNBUAp6NV96bkJkQU8lc3d7eDVJNFNAWmVyKWZUWXtCTGJM
Ul40KjdYTVUhSSVjeUktNGd6NFdvOUhZMzFpdV48VmRVJkEKelR4b0hvP1dDZ2ZJJjZHUiRkdU4w
a1Jfa0RwMytGJUlRSEQmQn5QPkVfTGJgT3BSViFhSmgjR3ZUVUgmR2JnKz0zCnpHYChaQT8rKElx
X09IZEB2Yl5tdzxQUkhidkRMbWYlbjE0WGYhcmFJcW1BLU01TGV2VyZ2bjFIOUNMZ3BpT3tkKQp6
Nl8tWFEjbCZ4UFZ9KExgPUNXRDkycFVrckZFNns+JDhMfHJCSW4mdzAxUVlGKmEzfnFJWCNgUWdf
b3lwSkklWEEKendhamNHMEdBUD8/X3grVXt6QUtWcnxxcW44QlpIcG43TzFmLT02aXhiTUs2cVIm
fFJ8RXpNNTx7WFJkbm5HOCZWCnoyMllrWlc4OTNCS0pZSkdUNmk9dG5EMyFmeSYwNGBxdnsxYm90
ZiZEJnFhJDZ4YylOfGBEMjx8KWp8UyZeMXY/RQp6aDsrciQ+Zld0NEU+ZE1taWtgJWJxbWspeXtK
ZFNfK2opUEpXNTBJcGZMXnA7RGxfWTMhWXAwNzZLe0pYRWMoXiYKekB5bEdmcCNjZGdJYjNvZUJe
Q05gZnRtVVZOZWstMGEhKn5aWkd8TUpQREdqYF97fWlAIyhuNUxxWDdRdWZIV15JCno2cmY+KVFH
YFdTZHQ3Yy16alJHJTRhZGJUNm5eeEVVVGtSV3t3NnFjI0Q0fGJtSFIreyhIQXVRPylTMUFJQkhF
VAp6LWY0NnFnOF5KTSRjaDF+OFQ9V3ojQzhOeS1VKkFJVzg0c3ZKWV9BQyQzSVZmVTU4KE8kRj98
TWk+Uk05cU5DNiQKeldCYXZ0S0JIIzQzfl9OZE9ffnlGTmw8Y1dxMyQzQjFQXn5YZGl1S2JoQXhP
K1k5dkZfIWtydWgtMGVXfENMO21gCnpvJU0zRUdGTT8+VjJ+WT85KT8tbU5wSis7b2AmOT0hP0BX
NG9RKjI5cT9qYyhuVSl8Syo5cn1USCkteyNWPn1EIwp6dVROQSo+M0pIPFJDZk5lWUYwI2M5M3xU
d0Mld2xmejBOaHxuWnNzaUElUXVYSHdwWUxkVW5USGE3TkQ2OX0pOz8KelA2bWw3YEBfbzNuNnp3
VG9mUmJ2SmBpaVBVSkF3UDN7a092dzFPenxeOX1APEl8OGR6UzxOfHBeRFR2YUomOGgtCnpRYVdz
RU1YTCQlSyo3a2RMWXQwNSMwWCVQSSh6ZXp6cSsyQ3J3WUhlKVRVcjgyQUcrRjZNXzU/YmZhJFY2
IXhOQwp6TVRVYyQhODxffm51dlVkaHFieShZJXhfRkIrMDMpeiEzVm9mOS1qb21ZXm4kSiRLUEVy
S3wzREQtcWgzRzwha0wKej1VTXclXnVHP3UyRl95VWgrRDQ0SGZ3X3okYGUwanl+T2N3Z0x4VEdt
bHFhV2NlU2p6PjhTfnpPPjBRPVYhMlF2Cno8XlVkPkdAe2dCeUxFJWg9bSttU3lBQUduOShUKzBt
Z0Q8VlhNZDZ9czk2QHpEbU9VJlBRRDVHR0pQe3tPcTUpPQp6V0t6NGh3cyFvLSlFMnlkKTx6eTJW
SmZMSz8rIX5PTDJ6V3JRfnt7ayFaPD9IM19vT0B4fncmQkRoVShIdT40ZkoKenA9OTh5aFpaXldF
dH49YD9teDYmJil4bGJQWWMrYHUmM1BBWC1iYTQycXhDLXtBUE9peHRiWHRPLVVxNSMxQTxoCnpw
Z2YzJkxwPzloQ2wzVlZKMEErX2d1X0JpWCFrb0M4WkgjVFl2KnB+JGBiVyU0dnM2ZFpCPHE9d3E4
YFFxY3J6cQp6TzdVRHA+dVZpdmRPKW5JemkpTVJEemNjdkx+PHtFYkArMjN3dW5mOz89KDYqMTEo
PDViazU3KT9HMyR3MmctO2UKej1VIUFvP35zaio0dnZPcllwRT5+MGFJbEtONX0tJHRMfUNqSWJE
SkZaQnBzc2g0YUtJZ3xvNlAhPlomem5EdmAwCnplY0BTbmY1ZVA0TmokSC15dTc0anU8ZjAxOz87
MTgyTnh3Zkl1I0p7TDF1ayEoYVV2fDNjeCZ7KnE5NzZwbipfYgp6Nkx7RzAwVjE1Q3pfTyYtU1Vn
K15pa0xxeyhEQ2c5QCNOWGxkanFUMmB3PVhhbDhXUEJpc1JqO0I4YmdHPzx5NyEKemVKJUZoRndQ
T24teSQrVlAtcDw/SkJ6cU5naTZiPjl1a0VmTDJiR08lYXx2Q016eFQ3LUktJldOVFJ6RCZeUzJB
CnpvallUa3t3Q3VqdCR1NzFzO3NQKXM8fiYzZ0h5WVhtQTJwU3swajU8PnlvRHpOcVJofGJHbDRh
TVpzKDt4b0kmfAp6V0dPMmw8I216TWR9X3lYPGNSXzgjXkREWl9QZGdkX2U3dkFEUVN3WGBCcWdl
K1V3aURULU1oKE9LdjQqSVMmK1oKekdeeUQhWUpWX3dkZGNVP1NtNnliKjVWKCNFPiZteFdwVy1+
SDVkbWBXJG9feUIhPGs4aXkhRlg+NUdnKmZhZE8wCnp7YGdraGJuSlo2YG9ybUpZIzJyQyZqMURf
TFEwX05aKzxHdWpyZ3whb3lLK2pjRzxFbUlhVkZrUGR9MFpidDtGKwp6TSMzVGZIR3ViVlZZaT5M
LTt0NCFjdjhXbnBXU3h3KWxybjhwaGJpPnRaITh5JlJqdSgrVX1WVyh5T1dSS2dKPTwKenhwQGlK
VDh+QFNLUUpLaVg+SHw4SGFnWlpmVml8enNRb21oLVZwJjxfOVgqdXhieHxNM3dNc3ttY0R1LW9o
LUdXCnomMjUlckZpKXBoZjEjdGdGdH0lMmlHbkxIdm4wN1pVX2MhSTlfcjRNez92ZipfOyFKUSUo
OFdMVzZtPSE+bHxnewp6JlFMTHtMaTJJcXswNUt2YHV3bEBwRFhMeDM9eTZoYHEpYktTS1I7WSFu
OV5AbV8pMT9CWlRsT3JrVSUhc0pyUXYKemlLaV95ZUVhVXNBfnJoKDt4eEd5JVlWKy12c1gpb2da
TTRxPGI3JkA4YXJ4aXglJHBEKlBsYW9hVCkrYUlpTjByCnpvQCN4dFFQdDFvaXt9N3c1JmN4Wisl
PSZZWUFGSTM9S3JRMilsNmhyM01fenBKZH0xKElJTHY4b2ZVVDNUTEFjPgp6aHxTNmxmKTxPXkgr
KUVsaigmJnBkcDEzYipmfkhrTj1xPXdQQ2BQZ1FRZXV8KyE7bFRlVVdyYXY0a0szYVIyUXMKejR3
dylaaHA/RXpCd3RPWnFIcVpqT2diY3lzfEQtZmpKPFBYRW5AI2xlX3s0XitwZ3VlQDRhbTZBM19e
Qz0hQUExCnoyUiZueDd+dz1feTZ8bm8hT3c5KTQ3aD5uX1EmQ0dJMFNgbjBVb3B2Sj4oTXozNW95
e0pra3xUMnRvRDJJfSN2TAp6UWQpV1kyNmtyWjFxRD9BJV5hflJASnkwRktEcXN+RGUwfXJDSlol
cF97O25Ca09oRk9fbGZBS1IoQDJhcT91YWgKek9RMER9S3N1LSMxT1M1bGFlQEtFR3lRO1hkNnNX
eCVnJEh9N182PjRJaCp8VWUhT29LVHpAa3ltaHs9YCtHVzMlCnpUUjhzcmpEUnN2YEplOGJVO3NL
NTZPeDIrcXF+OUU9X1hRfkp8b1g7IVJPN0duYV5WOzdGMDJpVWNJcmIxNVIydAp6KV5POVFEKEJn
bT9GaXZ6IVNIUCE8P1NRX3VqX15WZ3EmQDF1VjV7MzdCIzghUVFeOF93KHl0SHFxTEg9fElWRTAK
ektRcXh5Um9JcypwLSEzUys+IzEwRzlXdmBTTGxpS0EldmtRNWZETX4mYjswNFpPMmptKWhFXjVL
UHx7RWExOUpoCno3R1A+QFNiOGJXUUY/SDBSb1doMW9IJnkwRWNydSZ0MUplKTIwMGQpJFJBPGFy
KFB6V2pKT290KmVRMT1lRCN+IQp6OGB2KzNlRmxibjhlIXh0SUxsZyo4SE1gQ1FGQ0x6PEN5Jng2
cmZkZS05cTBoUkAkUkFCYFhvMnZ+bGxFb2AwSD8Kemw3LTRDNlZKYj1uQXppOEQybWlENTtOcFZo
SiErQkpTWSlSeW5abyF3aWRuSFI8PE56RHUoZGo1eHYrfGxCRj1NCnpzODdWe3sxYDJ5bFhEKzxL
YjltJkQqPipRMitrfTdUeipsUSV4Vzw9VUxobiRnN2FDYiVvPER0aDdSV3Y/RFUpawp6NnBgM3A1
aHd7T3I8eD1sVDJQYz43MFFlX1FMXkFVPmM/STtJMVRPOWdWIWxuNWJCSVJ3YSthRHhreGFyXks9
NlMKeiszX2tWZ2ZlKSZlNnk0Y0BRUHBDVGYtJUVwISVWNkROe1p1T2tWSGI7SnNNKD5CVDZpRiY5
TVg1Y1A0RDxJbjxECnpJPVhAWWUhN2JCNlB2U0F5UitpJiEmbyUlRytDfXdeJXE3KCNgaE9qP2pG
bGhtYjlHSnV9c3EqWDxEezU5U2FZVgp6V35AZXgwenFsMGRMYHVocWwzZjROQXlgIT1JQUwyZTMp
LV9iITtLUGF3ckUzZ3VAT2hAVXZyYE47flpBeENvelEKeilwITAqKlk5MGdFVURMR1JKWV90WE9u
I0tKO0Fpe3JJUjZ8XzQzfVM8JWx8XlBnXyVvOHw4eCE9ZzI+YzFGKGNMCnpDQnVHVWt4djNsK3pl
bCQkb04kNkAyMG5wMUd+P2tBbjhVWCQ1ej96O289ejlfMkpWOSR3cDt2Uj17bX1LaFlTPgp6QUFe
NSkmYz5UWT9uYkdRPG8lfjN1fT52VnA3aVRzTSp5NWYxYzE/QzIya2sqOypVbU1LUXZhLU97fTg3
QyFIJEIKejhPSEV3QyRfdUx7Yn5gb1Nsb0M2Qk5kdVFiZFUzZylQNjx3P31vciZ2WG8yJnJUaWc2
QDJuSVJRfU1iYypwKzQ3CnpobT9YcEUhTmk4ckdJfSVVU3NVaEpOSW13KXgkK2Q3UU8lZzE4YDZB
PnA/O09sJktrbTMhUWIzMyUrPikmOWhkTwp6dnhtb1NEPyU8WEJCVU91TllgSl95Tlc+LXIrSVAk
ODI7cy1KQWlQajUoMU5QS3g0akxpRmRKMmVXOXVlPUlSNX4KemR3RzZgRihjaTh5O2k8fUNIbCNP
aH5jUWNxRnFORk5nMzJTZjVtZnAtST5hY0Z7ZXklbHp2TlhUXzxadFVDeU9NCnp0fVE2MTxiQilF
K3dTIy1BPX45YHUrVWleMHVLWVN3JE9AcUZKRzBNTThkSiNBOEZ8fTFhQ0xqTzYtcmBhfmd8JAp6
Yl5McClJMTV9Tnt6c05iaUJ2c3YpOT45JWdaejdqWkx2fTkrZHFoJEgtTU9+bChKPWxKOUx1Rj5t
WlM2NlJUISoKek9ZMytoX1goejBVbkd6IVp1eGx0entlZ1YzUzI2PiNOX1lTJEdRcWN5ZCtVPkBl
RD1udEZ+WXl4U1V0TjxrYUdnCnpzfjx4eE11WDg7V18mJGxhQl84QHp4NWdFVCQzUmV1dDtCUD1P
eHxvPns9O1hiTzl7enBeeHRpKHhiekBYdFlEUQp6JCFhZzN0ZitWOSg2VVVJK3tYOFomRmUmQSND
IWZiWiN6JjwwRFheelZJYEZxYGpMQHZtTWMhXnhlQ2ZAWF57RnUKejVsbXAoVCQpanVpYXB8aTVD
O3t1e3g7M1FTV1VgY0EmZGM9MENMYmpgY3t1VWA3cUVNNVU+XiFzSmJZbFhqIUIhCnpRM2lndXRl
Y3V2ZDJANDx5JE16cCFoeFBXNXM2MXZubWJXUkQwO1Q4WUlSLWc+PF58UDM5IUJjM2AtYitAQkB7
bAp6aFZIPjNlN1MqN1M9ajBCc2p+a3k1RG9KTko0ME5Ta0ZTYDBYRWQkdnEocm9mV0AqMmVSa2Fw
akdXKkwpRD9iTEkKelBjXisqZyM/UDFCQ1pPaEVZKko1PHNWdjVZK2J3NmEoV2k3YlE+dm1GR0BL
MUhCc1hvTSR5Qy15TnttRVk/aHsjCnpOd0J2bDtGdWkjKXM1MDt5aHZhNF9VNjJpbC1VPiU/UU1k
V2NwPGZHV3JJRVA+VUo8VGhMUHA+IWwrZTJMaC1rZQp6Xns3IUQ8WDxmbzQ/eUBLZWlLZF5aVWs2
OEFKcShraX5TTn0kZmFWSVVePV5yJSlxUzxSb1N8YSU3Y25+bklHKGAKemBwY2dxVX58OWRTPFJa
KyhuKHh8ejk/STckbz8+b0IxQk54Mlh0I3c4QDMzbipPbURNTE85IWN2JnlNVno2PSF8CnpNU2Za
UmNLPlokdVMlOy1KdiF8VVJTNzAzIUtxRHlUTFFJSzI5IyRTcWFoJDleXlJvPSY+aWdXIXpwKT5l
SmBlUgp6M0lzckE2VSpDd0tkRHZINSZVSWJAI3pJOC0+NnNgaXZnJSFtUmJJMCZhNWFFTXYwbz00
ODJeVF5ZTlp8KDc0JHAKempyfnJNUXdCZ2xpS154UEt3dXpxRllgbiMmaz9oM0E4ISMyUEtxR3Fx
M1hpTV9tciUpNilXRVApfj8jfW9yRSZuCnp1Z1dDZ0kzSH5iJXZUa2hwI21XdnF9cHslPkteNFRV
NiF3Um1SSzgxVnBLSFo1RFpZI01TQExNRSllUmdOR01weQp6S0R8JGA0a0o7ZkYwTSVUUWszPCVW
bFc4KEopd3xAV242RjFiX1ZLSTRESzwxdVQ8ZTlwPm5tMWUpaFlnIWgxazUKem9TcHw0S15ZQXAp
fEZAJl5MQShCeG5vWVglIVNJYjRlfFF+akBJWkFiNmFBaXghYzZsem5UQCFrdEVxKTM3Z2dTCnp4
SH0qYTZUdlVzdVNodGB0dXRtKmN9OXB1VnZVKEMqUyEzZlZfJFklR3klIyg8YGUwM0gkfiMtPiRV
OG9kSHBjZQp6UWhXJGdSTVE3QTMrdn5Zc0g5VnhyNUBWSHkhWGt6an58XmtUST1VMylZQGNAVGRm
IUwlTjM3OXp3N1FgMis3RjwKem5NdCU2QzFfPkVhd1lEYDw+WnJSUWlxOWhnWDhaUyU2N1Y1Snl4
fldJfnAyWFU9KD5KRFlCbSYwZ0J4TXdiOGAkCnpwJG8jKURacmtyTUAwcTE+O3RDbmZzS2s+SWZV
bzduXiskVmlNRkFxYzt6bSpuNHNYUzBRNmtOTVNwUyUyfUAtKAp6V3c5I1hFO2QtakJRLWBGMXor
JHsrOFpyeipgemx9eyM7NClaaTFHVGhSIU9LSW1XVll3MU84IU0/WHMtNiphMjwKejFCcDdCZHA5
c0VDPmhfTClKZ1A0NDs3b0sodjMhfF5wTFdhazwpdC08Kit3alZGUG1jSCpRWFhKKSNjITJhOUVj
Cnp5UFAlMjF9OX5lU314ZE1NPXEoMlp7ezhwQThhd2o2SGolSXtiQlY3JktuaDNvNmRxN3h8WXA7
RlZvWFgmKnZ7bgp6YHVnUzdpeHpYVURLaWdGKF59RF8/YDJFe3NAUH43S2RJXlJIV0k4QEhQNlBu
Y0s3IU5RYnFVWXUrYVQhe3hxUmUKelROYnN3fDloRX5aTUNoWSM7RWV6PGFeZDxSTGFqeENRQjRv
PnQwdmN1d0tQMTlEP0FzRlUhWF9qTk5La0AxZVBsCnpqcjwxJUw8e0U8LTVnK1B7Pjl0PSkmZXYr
I2NPfE9EQXI8U3ZQVGhLKyY4aX1IQjtWYV8+SShJJG94bXdtLV9aYwp6ez48UHZMUGk5dGM0eSh9
PVpVfm0/O14rT0clfSZYM0llTExGN0UtfEdSUTM3VDI5TXohMHhzJGdTIy12Qm55YD0KeiZYK30r
Qk1nRH0lPVZxX15KLVdxfEJxLUV6NChPOT85d3R6RzU/OXNzfkBhY2tUUG1vVCUoKDBSSTV3cEww
SlReCno+MGFXWipgaEI1Xn1vZmZsSUJQRldgR1ZRaXJhJTw1PkBsSHBfWkt3XkpsMUNPfDZPO18l
UjxIMDtGIX1hPUpSKgp6dGAjczNnVlc7RGg1fSt5M1ZKTW4pOUQ0dWlNe2VqdmdMWWBFflM2QmpH
Yl5wT0w+NFcqRGJROCNDVHBXQis3KUgKemBnMm0mT3c3SnN4SmtOTEFwPVk0aWxOQT8jXyhrNjR7
OEx8LTlvOCRoOSg/TSNkN1FlQDR8WjFxQHJUZz9aO2trCnpxe3o8bC1uVGNQWlVsWkQpR1l3Yit0
OXZgTzZxVWJXUzcxWSNwXj09NiZsfj92c3hvSHBsQlRhZGFadClva25BSwp6bz92RVNKNCQwTEVl
K2pJZiZtIVhNa3xoYCVOPStgeUUqRTV0UXE1LWV+T2FJP2UkbE1OUmF8U3t4I3oydlgjQj4Kenta
KXJCVWlVOy1pOEJybmVieHFYdll1RD9OWGlnNnF2aHAhRFhrYUoteTJSWmEmQ0VncCQtbFZENUF4
PTRoam4jCnowTzxjNiM/VlhsTzVGZ3pmQCk/RS19citfUkgmSX4jbERraDhzZ2NmOD1RdlM/WkRA
UGxBSz1ab2JMe0ZsXklkUQp6NUcwanJjemNne3okJHNUJG5uS0B3YmpoOF5HYUBUMmVFNGh8RG5m
JUpUQkdpQkI/Vm1melpzP2BRKXMheGJIbFIKej9FZFV2Wl9kWWxeNStSbEBVTFl9LUZ7KzQpN3A2
aVpNVSp8M3pMZXQoT3RPcyFEcWp8M1JoUz42MkhUb1BQREopCnpHNkorfTByaHVJZkwhMmo1Sj89
cTZXVERqZClqdzRnSHUrNjI4YHdKU1JuUVVmNHRmOyF2MWhEKUx+Z1ljSER3OQp6am9MX2BhV34+
XnVwRlBpPFhvS1JzcSFFTENRPEhtSmBqSn47VT5mNFEyVmZSWkJhWnxRMX5iRjcqdH5qcGJiR2sK
eiUzWDRBTz55XyRgaEdCKS0xWVNIKlR5fFdmTGJSQUBQPGpVQm9VPVpuR3RDVUV1SDEqUllkKlM/
e3BNeStCOXUjCnpSbnAoTUl9czd4JThVO21DVVFFZHlDbTdPbXd7X2BhNCZMOSExc1VxSl8pODND
OCVQWCNxQEpRVWRtaCVofnhtRQp6Yk99OC02b1E8fkBwUUdJQllNI3tTPXYoMWBYQDV4PiQ8bkwz
VGtoRW1TblF4UzQ4cSNhKHRgWjFacHdaTSFXRTAKeml+RnxAQD1mX3QxMjJgQSFBPyM2Vz1xUyRo
QXV1S3pTVDk3VkA8ViFxVCV6LStUUkZsY2Jwcz85MENGWUpVb3FYCnpSZGF1VHwwUnlhYSU3QExX
fClYV3FyeTFCQXNzaT9JRD8ob0RCPEBrb1RJc3glfUolN2REfDd0dHJ9KnB8MT9FWQp6Vkx8aG1V
STJJeXtpc194LS0/PUZoTS0odHokSCVRY0FiSn50biR6PkVLaGU/bX14WllCWTs7Jk9PXkExNS1m
PmQKenEhTn0oSEhFK3d5U2c9QTA/QyhEKUwyP2FNcH1HQllZLTxIajZsJWZyOHYyRnNXZGtsSkcl
U1JtZ0okT1gqTW1qCnohayhzYWkmP3ZHelElYjY3ODJ5fGUkO3BTeW00PndOSk54Vy1DNiF6TXlr
VjBrZkZ0Q09JbCghY0Jgaz9fT0FoTQp6IUlwPHheck5EKGwhWHpuenVRSGhiMHc7SnRQQXgyQlRD
YiV6PzxDMlEtQG83RnB8KXkkQnFuaUkkc19OLWt1OCMKelhUIzxfNTZ1PlNvK3BMNWdeMkJ4fDM8
XkZYd0NMVjMpVkVHOGFMWlMlJkItQ2VAdXJmbTR9fDckOTJAbmY8dE83Cnohdn5Tb2NgS2R1PE8y
eWVnSCh3YEVGXkhoQlFCVGpDPj9ESUMkU3FaQ3w4ZClNWWYwQGIwb2lWV3hGYSsjfHB3QQp6SW9z
SktxbE5HbERKbUVJOE0xV3hWS0ZzX0ZEVTRjV0ojcXlHI19heFhJLSY3ZzI7Iyg0JVAqe1ViSChn
JiU7bU8KenhuKVUjRFFTbURVYGRsNVJKcCgrV3otPl5NMisxQ142UF9xZnUqcilEVEIhSkRsMGx6
Tyo0S2JMSkMwMDJ3amglCnoqa3trZmE8UmxTZygrI3xKdTZ3Jnl1MDU4c1g2Nm8zP05ycmJ0dCRM
RzhHdnhmM2F6SS15KWp6bjNlTlMqaj9fPQp6ZSlXJX12eSNyYXJ7IWJFUmpMXmBvOHt1VWBQOXor
cjAqR19ySzxaa0tSb0dXJjdMSnRrenhvSCE1clJtPHpxUWQKejxvcX5NQiVjSXVpdlleaHBgfUZI
aU1pc0pKdXk1NmtJUTxqP28zNjAxTikzJCl+WkxKVSYxUSptRyttO1JTVFZZCnpJI0R+LXd6MCox
JjYtfWVUJUF2UyltfmAkSihMb3soTFlXYDJFcyV2UGJzJEBIdTwtN0JNWGwjaFZ3dmloIVFUNgp6
Nl4+Z04zQzQ5PldDYEVKSjx7TDY3IW4rLXtYJDs7Q0ZQMUNjdWBzekUtQ3dxPFFxckQlVS1zVSMj
aWRiJXNHcWoKeihnLSYqXyNQI3RyZWFEbldwZTVRT2ZaX1RFVGxyPXZTfnU2bSYodEBpdU8qMnYm
JD9KMHZILXJrKjlQSm1VMTEpCnphcHQmN2thKGteNkIxN2JmR1B1Zjtsb2A8WTdVWiUwcE47QWdW
XkMrX2BoZTRPNCVfYFFCZShWcjsqR3pOfiV+JAp6Z0xEdTkyb1QpLWAzUm0rRHVeSitCSVV+ZCRA
YUsxaDFVTXRIJXJldTg0PjNxblQ+QlcmJiRXaEF4dEg8dk57cW4KekhZPy1WQ2VMMU0+NHorKWFQ
ITNNP0NqbSRVSEFZPERnQzJ4YXhSP15fdiRKcTtjOGJ7eXtzfWFSckFQOEhKRjxUCnpCfHdeVUJU
TSg7QkJqLUxNQHFAdWZgPFI7Smt3cTBecm94PmB4cT97dG8kWnshQUVPJFdgQUJDanQhYW92SGpO
ZAp6SnRyPmElTDE7MGdlJExXKlEyQVlLdmVhKWtSWDJDb00qJFZ6alA3PENBK150ZWVCKyZxLSM+
dV9fI058c0RUSE8KeiolOUtpQVM0anY7UVBrYyZQVi0yNT9FXm9TRXMjVlk4STMhOTw3Szkza2op
THZ4X0VXUkcwdTNZJUpZKHk3UWNhCnpYIUlLcjNHSXdoUERDTEdTV2w2QmBzbiFqTVlvYmR6JXNu
QTFTeEp9Q3w5blYmZEFoKChXNXV2KlpJT1ZvU35pYwp6aUdzbjJhVH1XPkZWQH1jPjE/KURAVWNr
aiRDeWFpZFpvQXAwVH1kODhLSnktIT1sUjE7cj5ZQiZ3UTt6QT19dWUKekEmZzYmV3Y8aEEqJkpv
YSktLWw0N0Zqa3p3VD1hUmhSKj9gU1FobXZoSzN1bnZ4eTc0QTVAUzhGNUpPOGktR0EzCno1aiYz
PyhBeV8hUFJ9e3JOQFllJmYzIzIzSFI0OHAwR21wJEVqSSZ2PUFtSXFYPFllT2VqbmhoVzY2NXZy
XklONgp6Y1F7QHhjekp6NjAhMG4oPW5ga291UWVfb2ZKS007NlV3RURFPFglcTlWKGdzMng7TFVj
aSlQTDVXcFpOZjV6JCkKenhDUipMMkRmMTB7X3wpWjAxX3kqMmBudVB5SzI+TWdYMFllSVQhM0cx
NmpnaEVMdEAjU2ImZmgocUFnNEA7NHFHCnpaZz0oV3g9YVdLe0dRc2k8bkFkbXIoUCM4SDM1cXFa
TmpFPXhxaSZIbXZHIXB3WCNha2RXaihiZj1tK3ZFZCEhewp6WEAxJHR2cGlYYkR8cWs7aWtWYTJC
SzJDVyUrJUU4JV85WlRPTi1sM0lsQC1DSF5nPH11NV8tdmx6N2hSYnFlMTMKentlczV5Rj1OZjtD
JGNaa3QkKEdlRVdOSzx8N3pPVlohYEBPcC0pSiE9MVdHJjMtTUhIeE9ZRE0pRXZWe1lwSmNSCnpK
emk7Mmw5Jkg1N2JVRVNCdyZGMnEwO3B2JTAzckV1cklvWUxsRWVzbkNlcH0zWXslZ05BZVVmeGJG
fVpPaX5+Xgp6MDV1NXRJS1BmZ0A9Vy0lKkFDKUhXJGlPYC1PVS04TFdANEdJczt5eE9pe0N3NHpB
UUZHOyRGKVlTI1okaClTNVMKem0weVBCMlAlc1N6bjVUNT5DMVZebi1EZ3Q5Zzl2fm9jISVoTU4q
X0pBb0lFXzhtJSgqUG05KyRlTEM2KTJ1Tm1ACno4NiFpZFd5VDY3P3hYUGRCJDlJcUFBNGQtdyY7
cmUrZG8tKm5KNmVldT9fUE9mZWBwKGlHX2ZNZW4oP2haTzJWewp6Z08xfktZQDgrSyhRUzB+RnZq
MndgX0lrLVdybk1wbnxFLVc+dUJjV2JrUSlRPT1FJndCbDxlT2R+NDlvJmE7WUoKem1xP09QSThW
Yz5waWZkU3Fra3xoUUVgMk4rWUwxNmUxfXZLJDZhZ0BCITklOWZaeEMyeyMoU2I5JlI2NWZqZ25O
CnpzRnJJe2N8NSQkTmhGeEJ1eFlDT2g+UFR6cXgpPDVDSD1AOzstN3Qke3o0dmwkMWdSIyZsQXRW
S2Q0ejcpUzJLRwp6bl5xXzdKPzA+QWZ+a3xaMGVVaCooWn1HKl9WM2shayokQSlGNEZBRHljSWQ8
OXxZcjFTQGFiISsrU0cyQiZCaSEKelFrWElOc3Vuc352eUtYb3FgUHEqPT9CWFZxUyRfJEJCan17
KlZqMUAzUX01bkEwQUloaGxGUnplS05eUTYrbV9qCnp7KCk8NUBHVlVmQG1zb09HJkBHWUsxSG9E
SG0kXmY9STQrfDgwZXFrTFlmOVJfeV8wZit7NSZgdDVyX0khJi1KRwp6NHB8WExwI3I8RDE1emZH
bGhmOTc7O01pYFlEdUxrNWs0R1NQKkFZYTFSdDtUZDktRmR7JnNzOVB2Til5UkwtWEwKeiFGX2Ja
IU15e18hXyNrcVM1dm1BLWxsPTAyeyRIZjMzKzRAbkRXfnQkaVFyNkVpZEEyPnZ2N3E7Wl9vMVZQ
U3JMCnpfKkFOKiZUblhUdSoha2ZiRFRVfiFlYmhSSWl9ZVhocWo1LWspWWFBRjFYUllMPDJAUzxu
YGl4e3w4a0dHdEJnPwp6ZjZDZ2RedEVLOD94TnxudFB1I3NBdypHdTAxJWpWKFB3THpsKDBkOWlD
dkVfdEQwJGskMztQdCRnQ2JuJj9xUnAKenY0Rz9PZEpvRkdNKjBHcnhFQnFYbEsjR351cihYcjtX
LTM/Zl4kQ3N1U19YcTFITVo5V35sdk5PPWxTdk43SHJkCnohNm1xYlY4TEMyeUF1S2czbEo9ajtP
XzEmMHxiSip5U3V4KXlTcD5FTHg4WEl5eXcpIy18MV9ueH5qVk8rSDJqXgp6ekR7aF4zSHxsWHEy
KVdPRTU3NjBmZDhzallQKlZNI2FpYkpncXJjWnd4MG5EQmpDMWUoKCsxJVFLa2RoXkpvXlkKej1Z
cX59KU5JeDhkN3QwO2Z5QCpVdnFpLX5EeWh3ej9RY3NZZStRYz5NfnNERng9QURTcT5CQHxkaXkp
K0slTSU9CnpGUWJ9WTk7WUAkQnp8V1hSI2E0fEdYbXhpN0dgRU42aD8oYClmbWRFZGIzazhleUZk
QXE/KiFQeGwwQ3ImLVRpLQp6QEwqNkdIJllYMVY8Wk43PmZ6KG9ncUFPb1cmemhqakM4VSt0WTR7
MjJuaGoqWFZ7cSZ2QUk2MntAIyUjcX1fdkkKejdsLV9sNmUocTRFaWBOJUE0TWBQbkZ4OEFeTlkr
S1ZGbntBWVE9cUdpcmNuNzliUTtQeVVXOGl5TTdFN0pKUGVICnp7PWolT2d9U21CJlcjMl9VZmxG
VSQ3fDdMU3hiQzYxLSl4fVg/eDZYRW1UPjxJS1M8fjNAeiVJcW41dk1Md2cwdgp6RFFUNWRUKWpi
b3VvfCRVOTZDT1FaMX4jdD1pNXgmODhfQCYoO1YmRmR9SmQ8bWg5WXRuJXpafVJLSjsxaGcwMzEK
ejBGJkdsaG57aUdRZz9nPGNnd2hLMm8oaTBaYkdHU3llRD9iZD93NlApXlQhNndlOTl6JT16eWAq
VkdvZ2ZLSjhMCnomUEhaYSFjQDNXLUt8d19UaWVvKGoqZzBvYkRxd1Q3RF5aeG4zPFV3PDViKUpD
RjJhd3I9dFN2ckR7Vm5HcWFKSwp6IVQ2JGZ4Z0EwNW9Ib0dxXkBxe2dRU34+ant0Xz4xNUQ+ZTwz
V2MkSzlDUz5gMFJtPF9FeCF4QTB2O01RJUxQYjsKekJCbmtKOWI3LSZ6bDZUKUJCLUtfQDU4e3lg
X2V0eVpkMzdNcEB1aTdyTjc0e093N1daSzViKSFkZzEyb3smdkZPCnpqTmwmNXsrRVl7WShQU1k3
Y3p0RCl2MDl+aTBwTks5XmNgM1U9UTxVN2VsZUlDJVUqJj1FJmJwV2oqJmlkaTFUIQp6eD1DK1Nz
Z2c5RjNZZmkhQj53Rjk+e3dkUl4kK2lMNkF0O2FFQXh5OGp0VEMqI2E+KFMhWGFpbmNfaH00Mkhz
QzsKemR2PmxhRSlPUWk7JENFOV9PR0ZFYmt1QVglSnVFTGE+UH49RHd6fjJ6UG8zeWNgK0g9T1Az
d0tgWm57bXghKGg4CnpwfTMkSHB4RmlaKmV+az1CTkxFMCNXd0F8UHozekd7Nkh1WmgtdUVxXlBm
VSRDV1ApKz9JKFdKTUhTaGpHWGA/eQp6YWNwdEthVHZ4XypRNjdWaEpabSYzT3F9NVpVUl9yWG9r
MyNrKEZhcDh1JnFOKmZFekM/Sj4kdWo2dUJeMXJmXjcKekJPO0oldHJFSXVsKV5ScHVodmdoY2xz
XnpvWnR0NGJLcEMtb3pJSlE4Zll4Q1YjaTxgRk1oQl5Zd1kwO19kYFU2CnpqZ3U2KTZASztGOEA2
VDxYeUtgckJ3WmQjY1hiVSFnQSpUTTtlQTMjNyYzc1REVlA/MUdDYihqc0RoNUNHR3R8cAp6NEBy
fiYhRj48dFQwajIje0kqTX0lSDZuRHtMPEdFRGxNbCsqb35TTVohOzxkZGMxJHREYzIkYTY0VjMp
ZThhQWwKekt1U1FeWjVlWHBFZnFuQiVlSlhrV29jYHY4eSVzVDAqJkkzVXAyRyg7IWFafDh2X1p9
e3M+UFUob2AyOXtlMnAqCnpreTwyXnIwSFRJdFp5MyNLPzZSP2tjPkFsZXZxekUjPVVFSFM2M0c+
blpOQFM3PCoxakFKYDxQNkpydm03ZTcheQp6JS1fZ0NpfUxKciMpNXtJKHZHMitQYC0wSmNTS0tE
QnRGb0g3bH1lO3pAfnAme0xePSEoNVRKYCl8RjBEJlc7XzcKeiM7OEhlMFQ7azFYe2ZtR3ROeSZ0
eGppWlcoU2NSJE16NiheRmspPHhAe3JlMUtzcCleQitJWDFWc3t6JlM5RDRHCno9OVhMfWE3anNE
bSVnMDUrNFZ0YyFZQiRjYVpNWnh7WkB7NlpmV2ZxN3h1MEQ0JFhmcHlncVUoTEM1IWdEKEZRRAp6
QSopMVQ5MkR3e2hQc19ILXhzPHFpaXkpdGU7ZDBXNWdXLWZqY0g8QEg4NWt4NTkqJDE2PFYmJj4q
KCtYVWZxc3IKeiRQXnFUV2VWRU5aVTFWPVYmcldydV83KDFUUUN7fmhKVGRBTH4qb1QyLWEqN2Et
V1hnYjhhUUhBWEdCQFVab3ZWCnppPEZOOSpfO35qUl5FRkNVWnApKmByUUp+JTtxIyVxMVpLPzt3
XntncDxCPjQ7SWZyOCF3Iyo1NkA2bUhIdmVRfAp6QFJkYkBPN2AlPkYtUnA0Rj9sPktncWN4I2ZK
aGB6aEQ0MGVnKVc4U2B2cClzckQ3Q05kTVNfOyF5NGsmJUkqWWoKekcoMj4/Ql9IS303Z2x7ZVJY
KW4kUGUrck9fZSZtT1BKTmktdTF9P14/fVpIVno3WS1QQDFwUGBsbmB+YVhLXkFiCnpubS07VUJ6
c0B7ZDUqcVdEcTB9Km5KeUhSIX1KNHheM0N3WHdJZTVuaXBvalFLPGxYbGUqY0JCY2t5an5MWmJ2
OQp6UGpAUFlZZUdPVCE7fitxJmllSmp5TT4/Yit4Vkk8aSF7Kl9ZZkBhTXl2MGJJZ1BhO3p7ZU4z
biZ7XjZWOHljS30Kem1rc0Z4dWs/TihfSkVKQ2M8Xj5NSlh4WUc4O2gqTDhqQEpRU2x7U1NNfT4k
ZnZlJDh+VG40a2poWk5rXigqZzZZCnowYzVLYkgoeVEzRE9LRF9DKmJ0Uih6aURRPFJ5U2lHYXg5
O15IWEleSyRge3J2e2NaKzYlcylBJT05QjJnbCFQawp6ZFlhZTFqWSZiRD05P0FHYmxmRHFpJEtS
QkdyK1YldH1ZZkcpQnBLWk5Wd1V1PHQ2TndHcz9VVlcoUSVPKyR5eV4KemMrQmo+SCsmekU3KjYw
MyFtSXdCPEdHb35PRUxDWiglV2tpdjJoMW9UMXdvamthLSNTQFY/e2lNV018clpPckpvCnpnJWxh
QCUkKTstQ3hOK3pyY2Z8UUZFP0x8aTBEQWc3VGRwdWFGbzFxSmQ/OSFeSl5jK1V5OHcyJkJId0sx
SE54YQp6OGs5TT42Zj5vZzlhMEwwKiZtQj5TXngwVCo0RmxBPWQqY1A0eX15QmhOfHtyNyZAYGVv
YkpRWDEkVntYSSZQLVYKekdsY3RMUmp6NGxYMjcje1VpYztPKiFtVDwmbzsmNmI3T3p+QFUrcUIt
JHtuLTF1WHlAXlV0Kz9kM217JGg7WiRZCno2NHZ4Pz8xfn5PWm1vTVVPWEdnRjFOeDl0ODs0eCVW
UjFuMlpLVjR1ZjlEPzQ+NktVRFZQSkRgS0RQPX5XQHk2Vgp6RTROaU87I0lZN3t8KHNSYChyNnpH
QlRZVGd1YUJlVD01cXZgNT9jMSp4QGNLTzwkQ3U1VklNMShWfWFhO1pFYWQKeklHa3ZJekRNUStW
ZXVhKmspREJfRCZMeTQyRyFjRnVnIXRqYEpZei1NVlVhfExPMXNWeDd5fntiVG98eW5xZFBuCnpE
Ny1DcytLJUhfK0RNUllSPVU/d15aWGRNSntANjFfO3l2UWh8YEFiPjR2YzlDWEpXIzwzPjUtJWlT
TTE7aXZJTQp6Tz5aZyUxYWREZXMrNiVpWEs1aj1NKDswIXk8bD9sVyhhWklqeXolRUx7MEhgPFRL
VEc/WFBKQDc3JmVAckI4fGwKelNRNzBuOyZKTU9RRjJ8bXo0TWhKTCR4OGxEK31IWiMkdHtTTVNC
cmVsNFBqYEo8VTBQYG5saDtmaFp6TEtWfUMtCnpxRDZkNG9jSmw7bWh8YFdmTW5wTyk/PiQ7YHBj
VjtSR0hJZ2BMTEZ1OGtNUTlneiQ2ekEjUT55ZUhfM25rZHVgcQp6QCs3X1A0VjNzK3RKcWslbU9S
RUp1c3pfbVJEeXY0JlF4JTRFIUokaSRGQmRCLX0xK3A+fCpuSUdmTm4xJEFiN2MKelkqTiRqUEps
QWZ7VS1YSnFoO2RjPFljQVFfNC1uRCVUfUVeeTJSU0xrSXJxcl9QWlYmTkpMaXd3KWgodnNtRm9Q
CnozVjBATExWJWEmcylPVksjSCNWVyNweT5mLVpEeSsyKVR9Y0lvMF5vSFgtIy0/a1FtPlN2b1RC
Ozt6OTlGfVRhMQp6WEN4bitATFpXZmFZYU5nbDN4OyRhNCRTVyhDMHM3Sk0yN24qbmRebUFhdiRw
bX1ub2xPPXBPRzlUXmg1dVd6Pi0Kem9Cc0lMQHdvOTZ3eWI3bCZjWmRFQGkke0VZQCRON3E8ISFG
Z05UOVUxYzJVWE40fC19SktIRUspN30laGh0NEJACnpmaiRHekpEYVJiSG1GY14hP2NYbklkak9r
RSgqbCs4PEppPG8mYVlZQVlITEYjbSoka3JmQWF9MWYrSD5tbmxDMQp6X25ebGM9V34qNXpoem9e
SmllN0BCMmdxKCNtYn5+bWBsRzA5SH54NEd0Pkh8OyQ2MUFVeWhOc0c+TUROKjF9dW0Kek9Ue2xJ
K2Z9MXRXVk5PNVh9I2ltbn1YLWE2OVF3O3E9MnVVaE9JYSE3SH05UCRyQDM0LSZPbD51V0lYa0NV
Vm14Cno2P1UjMiN0aX52NWswVXFJQiQwe2VCd0UtP2ktZX44OT90enBBZURCaFlGYE1WRz9uTkQm
OEFJJnYrdiZIKmM8fQp6dW07RT9kVjFUNU1lcXVwJEtnKyZmOU5EZ14+aiYocjNnWTEhRzdQKm17
Zzl0KCQ0TT5QNz4xN0NYNXdtaG59aGkKemd4OzNjR1ZEKFMpYnRWP0RuJTtBNmUmelReYGMwTTtQ
fCViVURDaFQ8NFIkSFpQSlBxYlIheHZWRWU+WiY3Oyg3Cnp6MHNxSjd9IV9paFVfVFMlM29EcUkq
Z09gaFgkMDMqfV9pfVFQSkF8YyVFVWNlT2RQcV5rWH40STteNkY+YjFYTgp6V3V2a0RHREJfbF5e
U3QhP1ptJiVgJGNjWm9WKDVtQGB0IyNDUl54QWM7QyVebn08MTA9SD14RE5iRjI+Mi11dFgKekJv
VCk5MTY5amV5WjFkIWRwWV96ZzNMMStiRCZJKTU8YVg8YUFEbXYqfENVZ0dhVmUqRk1TTipxVjty
JnpvWHpGCnpudGVnTCN3Z0ZxPiMjJDMrTT0/Q2F5JH4pTGAmNFdTUVJBWC1DYEkwWVF8cE1YfnRH
LSY5e2pMNGdqM1UleUEtSgp6KDduU209a0hGei0xdWplPzZgP29VMEQzQVA9UCllb2tJdTMyJHtF
QVpFZkw4fEU8TnZuWFVtKGJQbk8kejQ8VFkKem8wNTclXkAtLSlqc3Uqd0xrdHNzJmFHc19kbWJi
UDl2KilzM1Yyb0RTR1RzZHk1RkQwZUpMbVFJeXxxZ2AhSml5CnpWVFFeRkJafXErX34yMDNHUXw7
TjUweVRUeVpsK2R2NSktVnclcD1QMGVRZyh7dVdpUnE+bVQxO19zaylJVHlKdgp6cDlKO0syTXlT
T2lCVlFvMjU9TXdTZlVjVW9uMX04OSFfZktATlJJcj9Gd0MtN1kpPm5KM3xxaHpkcFNGSSY5Z2oK
ei03IzJ5ZzB6PmMrbiU7JDRKaklgOHg+O2JMY15NOG9BYGpwI05AQDF2YSZPWUBVSFQqeC1VJGVE
cD9OY3F7Xm9YCnp3UnMlWXBQOFRjRUZ4VyMtYGsoQngzeVJ8Q2tiNyF1R1liN1Z0al84NCotMTxM
QlNPN1IyMjJXaGxVNWd1NChIRgp6b2cjdUF2UG0lRVMhSEQ8d2sxJWlhaXgmN2cpSDh0Q2ktQXJA
e34rSEpVazJ4M0BrcnhmN3tQYVlNTF99OHkkdEwKenc+YDZPZlVVaTBnTUhGSWgkO0dMbnVoWiFp
WHpmMEArczBRYFlJOGA7Y2VLUndQO053TjM2VEs/aW1gdFhXdyE9CnpPX3Y7THppbVRyTkpibF5r
USF5QzF8U2lZY3VkdTttKjFDbUskdComU2hLOSZgfFkqT3tobXdzbiMheztlNmIkKwp6dnBFVkIx
IVBrU2pHcjl9RD10WTReeCluYnsmSlB4fEk2PDlPVzI1PXdBJlZQMlQ/ZTBXcUJERkpSO3RSaT89
bnYKeiZXeylBdkd2IXNLaGIlYlNLRXZ+MHgoJj8wUTdoYzRoTzZQLWM8V0tQME4zIV54WXxnJnti
NXtLKVlYbUE8OGtMCnpnQVg1IUYxI1AzZ2ElP1llZ0dEey0lPV97OCo8UmtGem98ekJhak43UFp3
dWE4K04/NFp5O2YmOCMpaDZ5ZH5pXwp6TDJXIX5RNGJLYCl1d3BNKEB0Y0AzaiskQm90KyheQnF+
VX1oNlZ3fj0hRWk+bXdQb0YjWHtgMz1jVkJCVHgjZUMKemhUflQzVEBlWWRUVyNRbEUmcDdkI1ps
cDhiQ3piQHVoYGN4ME4wUCZle1ZveHhPNW1+N1FpU2JEbyNRTTRUM19MCnpHP0g/dV59aDBNLUBE
KU4rRTAxY15qOEAtSipqRVE7JXVZQ2B+R1pnJT08Tjx7Zll8e3Z9UzYxSnIpVjIyZmBxUwp6NH1Q
Z1FrR2h9OUhReD8+eXxyT1A+LTU4aWBsPUgrNlZ8fTdleU1xT2NFX0IxVjY1M2Y8OGxNWFdGI01M
VX1hP20Kej80KlgobncjNGN3aF8pZTJPMzx6TGpKWkFKezRXQ09iIX5+JmsoV0d5IVJAPl98Kmtp
dF4zKkNkQipZTSR3RW8yCno8OWNLM1BhLT8tN01SenI2fnBBe3h0I0xsbjAydylIS04zODxIZkYk
Nk82c2lmK3pVVUZmYG9sP0N0SEArMWFvRQp6b08xblkqN1FGNGBDV2xpRk95T2MtIzJzOzF+fnx2
cjhBZnIqRGFESWNfOS1pbChtfmslJlhmJl5zWktGY3s5MS0KelB5SGBqPF92Y3VvWDxjVjF9c1Zr
aGd0TiYpWVRnKCUqUX47TW57TCtNTzFwKnVmcjgqfExUelclcj9Tay0ldEwhCnpeWmU4cDU/Qkcq
JjtjUylecGhwME8xKyhFUWozMEgkdCo+KjAmN3cybSlQJWJUODs4dG9OendKJHJ1N3gxeVg8bwp6
MTsjR3t2RlRuX0g4bk1GY1gzRyE5bTtuLVU/SntwSXtXWVY0KUMqVFRWaGhGKnFBT1NkcjJEKVFC
Z1ZmdVhsQXUKejE7VGRhREhUMXtMQ085U0s0e0xhN20/Pk1DN3lFNElwaT1QNXc+fjMlajwtPFFT
KkczZChSaE9jX18/NDR+KDhWCnp4alEqSTBjLUprcWJYZC05ZTFeNXp+MHF1ODUjQmhPPV98V2JG
en1wV1QjRzdINGdWZkZBQGU9elkwYVoqTWh7UAp6PDAkWCEjJlhIUk5rXnlDb2BOVzx6Z3hkSkd6
YHBZPG0mNEItQDJhQWRMaDB+ZCVvJX1YX3V0QUMjRDRpSXUjNkIKejshTDB5M2FBUnskaz8lRzRp
SGx+WjFGQUVsYENWYjtXWEJgKCtaLTQrVjBpckhzZGNSPDZrczRuc1pidT8zYk9rCnp2QThVJkVz
ZTJra3ohN0FlY0tZNXB+KmVvUE82MShVV2BkVGYqKmNGPCh0LU5ybHE5YHg/SmN1VDgqIX01VXhN
QAp6Y299cilwKHE5LVdfMz9+O3IxY1JoRFlSVUR3Rj56XmUhNVYlaDhQX0dvNURzdnl3ezRtezM3
TUB8eX1IcDFacXkKemE4TUE/VDIycjNKPyN4bzNUSV90VV9kfThObGk8JFdJQUlTX2JoUWY8TF9I
JGhSWU5+QiVqMkQ9UzN0KFdXJGdFCnpQRzR2aVo+cXpCN1VEPTRIWFojPmJYLTtFQjReJEhrSnA0
dE4zQH1VTyROfVpDbnBzRmZNQXVuSztKU2dgUS0xVwp6PD1pOzxGX3lhZmlCWnArayNUJkBrd1ls
WnU/UFpHRitmV1pTME08NWxUcl9tOFhXcE1mJUZEWjh+QWZJPl55Z2AKemVZdlVUcGlSOG0ob3dK
RlpafEZNVFZTUyFzJHcmQjtrcVBTNTdkJTNIQF9ueSg5cUM/SmZYfV9gJkspPS1ANXp9CnolKCp4
RTdkR2dmMT9aPFFvaVRjUWFfOztENXU1ITxPRSZpPilTPmhNUH5rUV5IRHFNbUB4V1FXOHFrdWFy
b05xdgp6az1UTVpaRU5SdzR2dWYxQVB8VHo0MXlFbj1oT1V9JVVoMHl0X1clJi13c0QxTT1ffUdq
ZXdUZTJOfWw8QzAxK30Keml1VXYhQDZSWExJPWB3ZTh4UFdDcUVOfV9vVUhaQU5hWkd9SyZUK21m
aHt7cWlELU4pbnBVbFhIdjZPV0M1SCklCno9NFR4T25yJG9AWWBnd1l4eTU+SW5uPjFlU1crTFFR
Qmo0QGtfZnM2QjVvc1dZJTElKEEhK01CeFYkeFEpdTUpVAp6eF9AeCt7ezghdFRlb1dLQWQ8RGJr
RT9saUVYUSRAayY3U3xRaFpWfkRqflQ1S095dUhXREE4UUckKlBia31FVSUKelBJQFpBeCZYbGUy
Tn1UM2Q4UEtVZHpMakVDYGdwNG4hQ0MjdkUpdmZoJlVRJi1QeCQhY0ltbE9BSDtMOzwldEFtCnpR
WWV6K1hHYUwrc01Fa34lekg4a0hZVHBNVl58YlBycXJUVUZPfmlwP0NrVk8kb2xtTXMqbDIrTy17
M1hYNUY+SAp6eG9lRFpJUyMmSiozPnBCbmFQZVdpcSUzbmF2VV5aY0FsVWx4fHdEfEVTYyR1UTc5
a3A2OV5YViY5aSRseTdrPmkKelg1N3VyPkRtSlpGfjhJM18mQ1kwMSEpWGVwYVRpKVBBP2IleTM0
KG9fUVd3R2RvTTM5VjNWNGY3RkMleXY+a3t4CnpBN0p1VUJIcT9wMy17Q3dCT29KZ1o+YX1DQDFf
Mn0+SGQoaUhfRyUkMFJNQjtmaWJ7e2Z9RWNOIWh5b0UqIUpiXgp6IVEqN1VXKkdeT2pTZ19CaDQh
YVleckIhVk56PjREaTx9PG8lLVUldm9sTW0hKnQkRGtebFkpVyYrYlR1LStyUlAKemIpNSo5Pj91
IzsheW1INTt4bVN2VFZkO3dReUx2NHJiVXQmbXBLQFQ+OUhYeChfNlNSdXVUclV0ZyYmQ2RnNFpP
CnpjWEc9fWU0Q3d7YGAye19iUDtUOEM3YmNPbH5jRjJjSG12NndOPE5QQSU+RSpmNit+UnxHak5k
YWtBVzs+Pzkoegp6NHNoZGIkUTB0KFpYSW1abWZvKjs7K0ZuRCMrO1BgYXVkbmJoPVA2Y1c4a2I9
VTBocm9Ga087NG07K1U7QFg+cDsKek5uXj0qZ0xDMnd2cnQqa1BSb1lLa19sTEFHaVhtcllufjVj
cD8ldzE/PTtraU4qZi1kS0Qxbz52XmxGP0VzN0BLCnpsaEtTTFZlPDRxMX52MiFlMTJRdz0tRzlT
TnxifnlkTkJtP3tyLWQpaFpjdWNpIVBBMik4fClOJEh3WFJfOF49ZQp6OFZGJTtDJSQjX3c2JGZH
bzdzVUdgLUppfVorZmF7ME1wQWJYRyZkRFEmVVN6PnAhazJiO1JsVjNrTiZQKk82KTIKelBXKHpy
JTFqVWk+YkhQQ2ZqajNPOWJ1SCk2SXZpJEEyWU9qe1YwPCt6M158Uyhaezc1Rj5IciRKbnxpQW1k
I0kzCnpQcF9gN2M2V0VMaXRXNT1Vcm08VklES1B4T2grQEBxZjVZbW5UMEF3MTMjMjJScVRVSCMx
aGtCQTtybDF4P3spUAp6Q30zaThIKGc5IVlQYEUmWCUxaj1DN3FSeHdCSSoqcDExXnVAJDFaIW4k
S3h6TGsyKV9rVTQ8PzJmMHRMTzhwLSUKekJkdTN9M04hQj8kUmNJVEN9K3hxZ1clTU9VcnQjYzE9
QlVeU2wqYz5gQEhLP1opQ30welFadzNzWXNtPjQ8TGJjCnoqQGorNjFQaU5uTGB2cHRFIWcjbkBm
bDlkMG9iS2hLTEBVcStsQkAkVyp7OHFBKFN5QHc3fkticlA9ZntidSpySgp6cXxIQ0FuaTNPR21U
X1c3JTxOSzRERkduQCRIfWpVQ35BUU00a1pIYyVhbG9GMHlUPjt7MXhHUnI/WmdCYWJYTU4Kemx0
M3VFQStQR0NUVj5ifTZYelJPSDxuUTNWaUd7V2NePlBzO2lpJD5DcGNRUTxhQDx9ZDdXbjRQd1Il
MlNEaGEjCnohTkZvcEp0V3p9QWJ7XnVxeWktSD1vM1opI2tNe3V1bkJaWUx0ejM7NUNzPW9UVSVm
K09fQE00eko2U1NgOXFBagp6cFRNYVJFQmBLODZWKUUkbzNqQU1XRzBUQDdYdCtZJVZrNSRQVE0t
e0tJTVJ6aVB5P2N1QjwjfFRDQiEweXpId2YKelh0Jjh7KiRqS09hYDA7fldgRypseHdWSXdPPyYx
MmJUZXUrOzMqQ3NCci1CaCZObj95d0k2P0V6VHp4JStIaz1sCnpIa3UlSjUtOEh3RTBkZDxefWFQ
SyVOdzg2RUZpV1dkKig1R3IlXmdwY2kren5vWFJ7O0U4VXdQVGZkYU0lTlhTZAp6VlhQRi0pWj0w
QGpGQk5iOD5aPSNqWWhKLVFOKStaVG9pVzJ0NVppVz88bEYobm04ODhuVUBLcTR+KyNMdnc5ZmgK
elcocntncWhnR1pSTm9QMSNNaGV6dF9sWD5NYDtmfkY5ZDM3dGJ3WH5oQlNMfm55ektue1dmJU9s
IXFAemhRQX5CCno7a3NoanRhaF97VFc7Mnw/PX5CaHpUU14qYE1QUXE3eGZpZV4mQFdRUkg1YUEz
Z3lGMiU7TFgqNiFgK3BIT2g5Swp6Y0x7S0M/OC18XyFnJVFvOG50USNLbVFuU0B4YzQ1dC1kbiQ9
Jj4jeSlXRXNQYjZZe25VZVFEYkZofFhvLT1GdnoKem8+WENVSlZ2TzRLVSh0fXpCQkZyZCZ8Rn53
dVZiMVNzSytTWEIjRmIjI0x2NWxFaV5CRCZnJXxTO0RKanMpfXJjCnpURzNXQ2thR1dWaHd8fCVl
OVE5PlVhUyY1Oy0/RXZVcXVBV1cwMHJUU2hvYXVafTBkcCVkNWBUeigoX3QjPHZOZgp6Q3tMRk0/
Mzs9KkAxTiVBUSg7M1NDO1dhaSZQRyUyLURScEpRemtDTCNZK30kIW8mRDJtRTg9RXJaa0s0Umsk
VGkKenpsJVA5OW5LQnJge15ncmpnY2Mje2I5KE1EamBhP3crWkVkVTJGNmtEXjJqcF8oUiYoQUU2
OUlTeyZwQDUyMXQrCnpMJChpcD1vRDBmKkREVy0qOGJYREM4Wj9LPHd3VGslN3MoWUZ0SnItUVI9
MlI+PTdFdkdSbVhReldaPkFQJGFDbQp6RmxyckFIQDQjKFhrUntNMC1YQm1IZVgmd0h0NjRGTXNP
NjF6LTcldDlmfH5GVzx6VmhWM0wwWVUwbikpTkp9U2oKelZPRCQ7SlBBN0tWJXZQN0oocVlTNS1w
aiNUMzNtdG9ZKHZsX0Y0aWlPfHU5X0ZmfWgmQzZJbHA5SjVBNENvKnBfCnpVPXFgPyYqaz5uMntl
ZTwlfnt+RVRHTEpKYChSYnFfJXA5QGswLT0oNzQ3QFVeYkRGNlZOdTFOZ1Fvens4dn1AXgp6OCg2
UXV3UFRwQ1J4RnIySChUKHxKUCRWdSVFd3NMYSE2K2pJaTBSMyRjaSYtJF5zWDhiKm0rcmREVUph
WjNQd0IKenskMUIyXkwteiR2QUsyZUB4bmZuU0k8OTVqck4ycE9nKn0rQVN7dzdxUF5YNTQpVXll
TUQqPFJWUn49ek10QG5YCnp5c2d2PmR3dSRQPnB1Y3BmPj5RR1g0PDI7VG4hfTd5WlQxdEdubj9q
UzFyeH45VWI2d3tBVyE5MzM+PjtkXzQ7Ywp6X24/cHolSl9KXl9NRVh7Z01ROVQzKENXUmZ5elYl
RFowPEsmLUshNUlIM3paRXZ7LTU3XlhpRE1JQklxaTdxNG0KeihxMyQ3bjE3NVRDZWYrTFEmXzBn
blQ9VnhydCtgVXI1UVA5ZGZISj9FM3kxV0s1dGh0SGlzKWlTUUtgV0tpOH0/Cnp2ZjgoelI9czJh
R15xdiQhUk55eE1sfU5qSiNLMDl3NG5lT2EwMkp2XllXPmA7aFkoITU9fE4tNWFUd0JPUyQ2cgp6
ZXlOdTJESjFgTC04az8wdGBDbTxpd29fIz9WPH1lN3NPPGc/e1A8QUEpYihrKSZefWtndV5WQTFF
c0k3Y0IpbHAKejx1NnNpb0o/TnpkSHkrJjYheXM2UTZFRkVjUV5CTUhvU01oUDNYOGZNVyRCYClq
Jmp3diE9TkpMVl5UWnlSSXghCnpFbTJAdVlKZWdLTmFocHlGRTRTb08kM0g4cShRVGFJaWp7Ympr
IUA9bikpd3VVbG1GSzc4MFAqMGt7TzlRMztVNQp6ME1JWD4hMj0hO15JQzR+RzApY141KDUjTyQ/
WUspKWVtbFBRVEhVaFpSfXFNaEZTaTE7ZXRVY2s0KD0yY3x5Mk4KenNuVl4rRj0+Q1Q9KkM3V1gw
S0RZdSVFS19aZi0hWksyX3A9OUBgJlledWtqI3ZobEhFWjhuZGlIMlMlZUUrWSFXCnplKENKfGVQ
V1IkVntvX2tUX0BMNzZ5Y29+JElrQXJhd35jPTlveld1Qz9vJXcjWSlvXzRxaXs/Rzl+MlQ7OXdl
Ugp6WUkkWnFtbDtpRzs5Sllkd2U4Z1Q4KFljXjdMNS1ZM15jTTIoT0tFQDB3SmlPRkF5I2ZnQn51
M01zMH18QVFrJWkKekk2e2JlU3lMODY8YzZybD9uO2xHMEgqcmtwXjFYUjFZaDFfP0wxSlUwWlB7
VTRiez44ZlRhb2ooJH1oalRtNFklCno2dmBvWnUqRzdLLX5wdGhxMFQyejlvKSsmanFUS3JsbjJx
bXhzPUt7SjJ8Oy1yOTY0Q3FXI1hDUHsxd01gYX0tUgp6VGVgWGZMckFUd1lxWEpIYE09MzBiMnFX
KFlZLSNkQ0wmfiprS3w8Qk87bmR+VzJqZGpiUy1NV0VpV0BHVn44NkAKelohSCFeNmw0dSV4ZiFO
TXomOTdEeyUheyYwYm4lS0o+Nn05eEtATk87QDwhK2UpemtaMWpTS1g8XitEanpgMEstCnorek5N
aGp5dUpBIzEyeGtObENOYGQqS0hGZTRnK3d3VDc2VFBKX0EhNXxGQjFrQHpsdnZ+YVF9SDNLPzNw
QStDdQp6X3JRPyg5TG9rZVZVZVNCd3JOKytsUlJlRWc9M3VxS2hva3tebE9BRDJDZjR+MVJzR1p2
WjRtXi1fQFFYY1dKLU8KejF9cT04Y0NuZU0yQWJtfEpIZnMxcUEqbTlyT0pjIXhzLUI+cWZERFJV
aCg8SClPZG08V3NmVzhke05HNz9MQWw+Cnp0bkV1TyFxMlc3aDhfUSNnKjwlMURVRU4jSEItPWJH
Kzd+cXBKcHYlZWlXeERtKlF7eT1DOUVuTWU5WVgxZ3tCNgp6ciNvK2RNazZRV2pZNCVGKkhBbCl3
NXFOWDZIMSpUaEBJIWRQOz9nVFBXUU5vKXQ+RyQjNSh1cThHdE08clh3ci0KejJ9LXh6e0c1KXgx
cDQ9KHIzVm1KUmdERUl8Rz0qNShQcGYxKjk+NDQxfEl0M1AwSUZ5P2chSS14T2xwe0JObHhjCnop
cXdSPGp5VkI5SGpFcHZ2MFZOQ3NWbSNAe2J4Uj1rcjsqRFpaaFI4Qm4zTzw7Q2pBM25NRzM7PzdP
d1EqPmxQVAp6NT4+SHBEO1puLXNeR1c4MHMjNUlWaFp6a3ZJMUB4cXskPjlIM199V0BNS1piUi1W
WGwoTU9UNE92RHRvY3RRKT8KeiF9KSVnJklDN0hgRXxQQ1dMSTVsOCZoSmk/ZVF2Q296ZCtuOGRh
P0h6YlFAcUV8Wmp5I3ghMUkhWi01ensqZS1fCnpCeSZQNHFTQTRIQU1YRHl7QzUySi0jckBSNXtB
KSNWdHVaYD13MVMpem80JkxnTWpUK19QQGBnQDt+QnpvQCk4Xgp6T1ZZdWh0YTJ5ZkYhb3dCVCNY
VzBZfGY8VSpVUi0xJXlycHFPRWsteE81MSlze0QlPjBCVipaVXN9eTtiPCtKOU4KejdKJX50N318
bWV0TipQYkVzbkM9MmI7WlRtV0tJSCpzUGNfKndxa31uQ3M7UD10OG03aXRVTk5RKGM1LVN7bXJ5
Cnp5Q2RBKy07UV4jTztAVCtXMjd5eHstOUJCKypkYmhHNS1rPE1AMiFnJFc+fEUzaUVJPj19QXY5
RG9hYUJkT1V4Iwp6LWYodDRCRTFPaDBCaDNXYGJeODFpPEhIUjwqQUY5ZCtkeHsyfHZjYWNCUk1r
QiZGdjVvbHMtO0khaVh3WUc0bE0KendNPWcwVTAhJSNzaiFIYj0+dmVuMEcke3BXLVNnc1RsZkhz
VTF2RTdnN0UkYlYqWlZ7dG05Vj07czxFKGApeylWCnpVeC1ncCMkRHZ7JCN7dlZeKWohb3AqYEUo
P0JSaHBWRF9yY25kXjF1SUlpdF55NEdeM20pVVp1KFEhV2g9e3xKPgp6dSZAQkMqcEdVUHF4MThQ
T3l1PXtpPmpPdWxabEIqQGFCVFRgI1IrQT84U0hmQEM3cHU9TlJOS1ZwPyVWbHNWMCgKelNTVnRT
Q0AkY3N5bmw1cVE9bmoyNVJAYjlxNXxhfWVLcWI2aDwlcFlfQ01fM05+UUpmTEpTRjhvV2hEO2hP
Z0RlCnopOCZDfkY8PWhAWGQzV0UkTiFGK1lyNFh1NDFoP2RLaFdYWDxhSHBmMFROfjUmKkx4KXIm
a2R6dGQrI2dNcG50Sgp6Uml5XzYwMWtNOW1KenBTMl9weTZXNGE8Y0dUT2NHVC1fb0pNcGN5SWkz
Q2hQT1BpOGh1UkhhSj84MFMtc21ZOXEKel5YVCRlUzZze3JGUTtwWUorOy1ENjl4dGJ7JmZsNi0y
dzlQemxIbH4oNFFDPjdedk9pPGF1JXpTWWpRbllETkh4Cno2JSl5ZW1CaF5pM1l8fXJnKXFJS0l5
RzdgVnA0aWdwcDM3V05NTClVQTF4M0ZeWkczaE5LQUhPNXJkaitLcXJJdwp6dzR8MUtSZHRPYDU5
bCloMDAtYSkwPmthMXNVMmpvNkpmRHZ6eC1jfF5NWilIS3lGO2lgXihBTW0rSEFAWGVjQmMKemBh
cW5AWCVvJnU1alpJTmFLTCg8c3B6PThKOVY4Q2lkWmI0cSVJLVFNQ09oeFMjNk5VTCRUZURAU3tM
c3cmNkQ9CnprUkJmcTFrYEZrc3tUKlIqUUpQUS1VPE9gNjhLakRLcEUhYmJocHslfDFSdlN2IUx3
OFQ4e0lDIzMrYigkfCMmcQp6Qm9DO081RFZqYGVGIWktZX0lamU5WUl7K0c0RThVYl8wK0NucD51
aXcmckpiKyQmU01LTFAxK3o+RFBYPysrQikKemR2PzVgKntFdihaeCVUSThkJlk0REZIPHZzSmVB
XnZzNm9uKXVyeDtXN2lPRlNDIVBRPjduMyFwayspMDN0eElrCnokY08yIzZUIX5udXMlPXt6QnFS
RTllUj9fR2hKczZuY0o7ZUttbHxQY3JBZWI3VnQzMVA5LUVaQnFYaVlXZygpLQp6PTd+N0RlWSpO
TD84O1FiYzZqN3c7K2xVSFpgbHpPVENSbzBSaGNsY1clPlhmcUQ7a1hqQkpyQjRkKFluTjtZdj0K
enhZYX1eI0lUfGBwTWVhZWBvOWROdXFyP2lXbHRKfl94UUl7K0h8cmc8en0yKCktMVJQIXpGPUF1
MT9kST0hYmNsCnp5QFo1QndPUjA7VFgwcnM0JDRQWlFUIWwpej8/QXdseFRXWWhlTSooT09QUFJg
K3JMYHRYbT1nM140Wi1JcGt1Iwp6di1pNiY7amA+LUl6SkhqblV3Vz54Kyh3aUE4YUUxanUpaXw2
fChxbV5MJkZyWDZIWD5yUmczR3JUYDtncyg8WSsKamNPeV5OY1pLMVJwTTNScG1fRH09d0J1JDYw
WW16O3loT1F9al5GPFE5cDNMMwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVz
dHMvaHRtbDVfc3VibWl0X2J1dHRvbnMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2h0bWw1X3N1Ym1pdF9idXR0b25zLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE4ZmM2Y2E1NGI3Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdGVzdHMvaHRtbDVfc3VibWl0X2J1dHRvbnMuaHRtbApAQCAtMCwwICsx
LDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SFRNTDUgU3Vi
bWl0IEJ1dHRvbnM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8Zm9ybSBpZD0iZm9ybTEiIGFj
dGlvbj0ic3VibWl0dGVkX3BhZ2UuaHRtbCI+Cis8bGFiZWwgZm9yPSJuYW1lIj5FbnRlciB5b3Vy
IG5hbWU6IDwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiIGlkPSJuYW1lIi8+
Cis8YnV0dG9uIGlkPSJpbnRlcm5hbF9leHBsaWNpdF9zdWJtaXQiIHR5cGU9InN1Ym1pdCI+RXhw
bGljaXQgU3VibWl0PC9idXR0b24+Cis8YnV0dG9uIGlkPSJpbnRlcm5hbF9pbXBsaWNpdF9zdWJt
aXQiPkltcGxpY2l0IFN1Ym1pdDwvYnV0dG9uPgorPGJ1dHRvbiB0eXBlPSJzdWJtaXQiPjxzcGFu
IGlkPSJpbnRlcm5hbF9zcGFuX3N1Ym1pdCI+U3Bhbm5lZCBTdWJtaXQ8L3NwYW4+PC9idXR0b24+
Cis8L2Zvcm0+Cis8YnV0dG9uIGlkPSJleHRlcm5hbF9leHBsaWNpdF9zdWJtaXQiIHR5cGU9InN1
Ym1pdCIgZm9ybT0iZm9ybTEiPkV4cGxpY2l0IFN1Ym1pdDwvYnV0dG9uPgorPGJ1dHRvbiBpZD0i
ZXh0ZXJuYWxfaW1wbGljaXRfc3VibWl0IiBmb3JtPSJmb3JtMSI+SW1wbGljaXQgU3VibWl0PC9i
dXR0b24+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9pc3N1ZTUyMzcuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rl
c3RzL2lzc3VlNTIzNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40NjRmYTExMzg3NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2lzc3VlNTIzNy5odG1sCkBAIC0w
LDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+U2Ft
cGxlIHBhZ2UgZm9yIGlzc3VlIDUyMzc8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxpZnJh
bWUgaWQ9InNlYXJjaCIgc3JjPSJpc3N1ZTUyMzdfZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9pc3N1ZTUyMzdfZnJhbWUuaHRtbCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2lz
c3VlNTIzN19mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5kNmY0Y2FmMTIwMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2lzc3VlNTIzN19mcmFtZS5odG1s
CkBAIC0wLDAgKzEgQEAKKzxhIGlkPSJzdWJtaXQiIGhyZWY9IiMiIG9uY2xpY2s9IndpbmRvdy50
b3AubG9jYXRpb24gPSAnaXNzdWU1MjM3X3RhcmdldC5odG1sJzsgcmV0dXJuIGZhbHNlOyI+Q29u
dGludWU8L2E+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvaXNz
dWU1MjM3X3RhcmdldC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvaXNzdWU1MjM3X3RhcmdldC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYmMxNmU4NTEzZgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNr
X3Rlc3RzL2lzc3VlNTIzN190YXJnZXQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5UYXJnZXQgcGFnZSBmb3IgaXNzdWUgNTIz
NzwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5UZXN0IHBhc3NlZDwvaDE+Cis8L21hcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL2xpbmtfdGhhdF93cmFwcy5odG1sIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVz
dHMvbGlua190aGF0X3dyYXBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjA0NDM0MzY0ZjI2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvbGlua190aGF0X3dyYXBz
Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1s
MS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+CisgIDx0aXRsZT5MaW5rIHRoYXQgY29udGludWVz
IG9uIG5leHQgbGluZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0id2lk
dGg6MzAwcHgiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6MjAwcHg7YmFja2dy
b3VuZDpyZWQiPnBsYWNlaG9sZGVyPC9kaXY+PGEgaWQ9ImxpbmsiIGhyZWY9InN1Ym1pdHRlZF9w
YWdlLmh0bWwiPkxpbmsgdGhhdCBjb250aW51ZXMgb24gbmV4dCBsaW5lPC9hPgorICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190
ZXN0cy9tYXBwZWRfcGFnZTEuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL21hcHBlZF9wYWdlMS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNDVmMDM4NWI2NAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNr
X3Rlc3RzL21hcHBlZF9wYWdlMS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGFyZ2V0IFBhZ2UgMTwvdGl0bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgPGRpdj5UYXJnZXQgUGFnZSAxPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jbGlja190ZXN0cy9tYXBwZWRfcGFnZTIuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL21hcHBlZF9wYWdlMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42Zjk2MzZjNWMxMwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2NsaWNrX3Rlc3RzL21hcHBlZF9wYWdlMi5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGFyZ2V0IFBhZ2UgMjwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj5UYXJnZXQgUGFnZSAyPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9jbGlja190ZXN0cy9tYXBwZWRfcGFnZTMuaHRtbCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL21hcHBlZF9wYWdl
My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44N2EzNWYzODhi
ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL21hcHBlZF9wYWdlMy5odG1sCkBAIC0wLDAgKzEsOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGFyZ2V0IFBhZ2Ug
MzwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj5UYXJnZXQgUGFnZSAzPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9vdmVybGFwcGluZ19lbGVtZW50cy5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xpY2tf
dGVzdHMvb3ZlcmxhcHBpbmdfZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNmNmYTU2YWRlM2EKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9vdmVybGFw
cGluZ19lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorICA8dGl0bGU+QW4gZWxl
bWVudCB0aGF0IGRpc2FwcGVhcnMgb24gY2xpY2s8L3RpdGxlPgorICA8c3R5bGU+CisjdW5kZXIg
eworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMjBweDsKKyAgbGVmdDogMjBweDsKKyAg
d2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0
ZTsKK30KKworI3BhcnRpYWxseV91bmRlciB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9w
OiAyMHB4OworICBsZWZ0OiAxMHB4OworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDogMTAwcHg7
CisgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgIG9wYWNpdHk6IDAuNTsKK30KKworI292ZXIg
eworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMjBweDsKKyAgbGVmdDogMjBweDsKKyAg
d2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
CisgIG9wYWNpdHk6IDAuNTsKK30KKworI2xvZyB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
dG9wOiAxMjBweDsKK30KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKyAg
PGRpdiBpZD0idW5kZXIiPjxwIGlkPSJjb250ZW50cyI+SGVsbG88L3A+PC9kaXY+CisgIDxkaXYg
aWQ9InBhcnRpYWxseV91bmRlciI+PHAgaWQ9Im90aGVyX2NvbnRlbnRzIj5IZWxsbzwvcD48L2Rp
dj4KKyAgPGRpdiBpZD0ib3ZlciI+PC9kaXY+CisgIDxkaXYgaWQ9ImxvZyI+CisgICAgPHA+TG9n
OjxwPgorICA8L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgYnlJZCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkLmJpbmQoZG9jdW1lbnQpOworCit2YXIgbG9nID0gYnlJZCgibG9nIik7CisKK2Z1bmN0aW9u
IGhhbmRsZXIoZXYpIHsKKyAgbG9nLmlubmVySFRNTCArPSAiPHA+PC9wPiI7CisgIGxvZy5sYXN0
RWxlbWVudENoaWxkLnRleHRDb250ZW50ID0gZXYudHlwZSArICIgaW4gIiArIGV2LnRhcmdldC5p
ZCArICIgKGhhbmRsZWQgYnkgIiArIGV2LmN1cnJlbnRUYXJnZXQuaWQgKyAiKVxuIjsKK30KKwor
dmFyIHVuZGVyID0gYnlJZCgidW5kZXIiKTsKK3ZhciBvdmVyID0gYnlJZCgib3ZlciIpOwordmFy
IGJvZHkgPSBkb2N1bWVudC5ib2R5OworCit2YXIgdHlwZXMgPSBbImNsaWNrIiwgIm1vdXNlZG93
biIsICJtb3VzZXVwIl07Citmb3IgKHZhciBpID0gMCwgdHlwZTsgKHR5cGUgPSB0eXBlc1tpXSk7
ICsraSkgeworICB1bmRlci5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworICBvdmVy
LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcik7CisgIGJvZHkuYWRkRXZlbnRMaXN0ZW5l
cih0eXBlLCBoYW5kbGVyKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL3BhcnRpYWxseV9vdmVybGFwcGlu
Z19lbGVtZW50cy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvY2xpY2tfdGVzdHMvcGFydGlhbGx5X292ZXJsYXBwaW5nX2VsZW1lbnRzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJhZjYyNTI2ZTE3Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY2xpY2tfdGVzdHMvcGFydGlhbGx5X292ZXJsYXBwaW5nX2VsZW1lbnRzLmh0bWwKQEAg
LTAsMCArMSwxMjQgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3ho
dG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIj4KKzxoZWFkPgorICA8dGl0bGU+QW4gZWxlbWVudCB0aGF0IGRpc2FwcGVhcnMg
b24gY2xpY2s8L3RpdGxlPgorICA8c3R5bGU+CisjdW5kZXJfdW5kZXIgeworICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgIHRvcDogMjBweDsKKyAgbGVmdDogMjBweDsKKyAgd2lkdGg6IDEwMHB4Owor
ICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKK30KKworI3VuZGVy
IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDIwcHg7CisgIGxlZnQ6IDIwcHg7Cisg
IHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAxMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgb3BhY2l0eTogMC4xOworfQorCisjb3ZlcjEgeworICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgIHRvcDogMTBweDsKKyAgbGVmdDogMTBweDsKKyAgd2lkdGg6IDUwcHg7CisgIGhlaWdodDog
NTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICBvcGFjaXR5OiAwLjI7Cit9CisKKyNv
dmVyMiB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiA4MHB4OworICBsZWZ0OiAxMHB4
OworICB3aWR0aDogNTBweDsKKyAgaGVpZ2h0OiA1MHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7CisgIG9wYWNpdHk6IDAuMjsKK30KKworI292ZXIzIHsKKyAgcG9zaXRpb246IGFic29sdXRl
OworICB0b3A6IDEwcHg7CisgIGxlZnQ6IDgwcHg7CisgIHdpZHRoOiA1MHB4OworICBoZWlnaHQ6
IDUwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgb3BhY2l0eTogMC4yOworfQorCisj
b3ZlcjQgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogODBweDsKKyAgbGVmdDogODBw
eDsKKyAgd2lkdGg6IDUwcHg7CisgIGhlaWdodDogNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOworICBvcGFjaXR5OiAwLjI7Cit9CisKKyNvdmVyNSB7CisgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgdG9wOiA0NXB4OworICBsZWZ0OiA0NXB4OworICB3aWR0aDogNTBweDsKKyAgaGVpZ2h0
OiA1MHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgIG9wYWNpdHk6IDAuMjsKK30KKwor
I2xvZyB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAxMjBweDsKK30KKyAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKyAgPGRpdiBpZD0idW5kZXJfdW5kZXIiPjxw
IGlkPSJjb250ZW50cyI+SGVsbG88L3A+PC9kaXY+CisgIDxkaXYgaWQ9InVuZGVyIj48cCBpZD0i
b3RoZXJfY29udGVudHMiPkhlbGxvPC9wPjwvZGl2PgorICA8ZGl2IGlkPSJvdmVyMSI+PC9kaXY+
CisgIDxkaXYgaWQ9Im92ZXIyIj48L2Rpdj4KKyAgPGRpdiBpZD0ib3ZlcjMiPjwvZGl2PgorICA8
ZGl2IGlkPSJvdmVyNCI+PC9kaXY+CisgIDxkaXYgaWQ9Im92ZXI1Ij48L2Rpdj4KKyAgPGRpdiBp
ZD0ibG9nIj4KKyAgICA8cD5Mb2c6PHA+CisgIDwvZGl2PgorPHNjcmlwdD4KK3ZhciBieUlkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQuYmluZChkb2N1bWVudCk7CisKK3ZhciBsb2cgPSBieUlk
KCJsb2ciKTsKKworZnVuY3Rpb24gaGFuZGxlcihldikgeworICBsb2cuaW5uZXJIVE1MICs9ICI8
cD48L3A+IjsKKyAgbG9nLmxhc3RFbGVtZW50Q2hpbGQudGV4dENvbnRlbnQgPSBldi50eXBlICsg
IiBpbiAiICsgZXYudGFyZ2V0LmlkICsgIiAoaGFuZGxlZCBieSAiICsgZXYuY3VycmVudFRhcmdl
dC5pZCArICIpXG4iOworfQorCit2YXIgdW5kZXJfdW5kZXIgPSBieUlkKCJ1bmRlcl91bmRlciIp
OwordmFyIHVuZGVyID0gYnlJZCgidW5kZXIiKTsKK3ZhciBvdmVyMSA9IGJ5SWQoIm92ZXIxIik7
Cit2YXIgb3ZlcjIgPSBieUlkKCJvdmVyMiIpOwordmFyIG92ZXIzID0gYnlJZCgib3ZlcjMiKTsK
K3ZhciBvdmVyNCA9IGJ5SWQoIm92ZXI0Iik7Cit2YXIgb3ZlcjUgPSBieUlkKCJvdmVyNSIpOwor
dmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5OworCit2YXIgdHlwZXMgPSBbImNsaWNrIiwgIm1vdXNl
ZG93biIsICJtb3VzZXVwIl07Citmb3IgKHZhciBpID0gMCwgdHlwZTsgKHR5cGUgPSB0eXBlc1tp
XSk7ICsraSkgeworICB1bmRlcl91bmRlci5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIp
OworICB1bmRlci5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworICBvdmVyMS5hZGRF
dmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworICBvdmVyMi5hZGRFdmVudExpc3RlbmVyKHR5
cGUsIGhhbmRsZXIpOworICBvdmVyMy5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOwor
ICBvdmVyNC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworICBvdmVyNS5hZGRFdmVu
dExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpOworICBib2R5LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwg
aGFuZGxlcik7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L3NwYW5fdGhhdF93cmFwcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY2xpY2tfdGVzdHMvc3Bhbl90aGF0X3dyYXBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc3YTlkNmQ1MDc0Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xp
Y2tfdGVzdHMvc3Bhbl90aGF0X3dyYXBzLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBF
IGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0
dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgor
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+CisgIDx0
aXRsZT5MaW5rIHRoYXQgY29udGludWVzIG9uIG5leHQgbGluZTwvdGl0bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBzdHlsZT0id2lkdGg6MzAwcHgiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0
OmxlZnQ7d2lkdGg6MjAwcHg7YmFja2dyb3VuZDpyZWQiPnBsYWNlaG9sZGVyPC9kaXY+PHNwYW4g
aWQ9InNwYW4iIG9uY2xpY2s9ImRvY3VtZW50LmxvY2F0aW9uPSdzdWJtaXR0ZWRfcGFnZS5odG1s
JyI+U3BhbiB0aGF0IGNvbnRpbnVlcyBvbiBuZXh0IGxpbmU8L3NwYW4+CisgIDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L3N1Ym1pdHRlZF9wYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9jbGlja190ZXN0cy9zdWJtaXR0ZWRfcGFnZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZWQyY2JhY2JmZAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNr
X3Rlc3RzL3N1Ym1pdHRlZF9wYWdlLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U3VibWl0dGVkIFN1Y2Nlc3NmdWxseSE8L3RpdGxl
PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U3VibWl0dGVkIFN1Y2Nlc3NmdWxseSE8L2gxPgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3Rz
L3dyYXBwZWRfb3ZlcmxhcHBpbmdfZWxlbWVudHMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrX3Rlc3RzL3dyYXBwZWRfb3ZlcmxhcHBp
bmdfZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MWMwYzNkMDNlNjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190ZXN0cy93cmFwcGVkX292ZXJsYXBwaW5nX2Vs
ZW1lbnRzLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RS
L3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+CisgIDx0aXRsZT5BIHdyYXBwZWQgZWxl
bWVudCB3aXRoIG92ZXJsYXBwZWQgZmlyc3QgcGFydDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBp
ZD0iYm9keSI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMDBweCI+CisgIDxkaXYgc3R5bGU9ImZsb2F0
OmxlZnQ7d2lkdGg6MjAwcHg7YmFja2dyb3VuZDpncmVlbjsiPnBsYWNlaG9sZGVyPC9kaXY+Cisg
IDxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7IHBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMHB4O21h
cmdpbi1sZWZ0OjIwMHB4O2JhY2tncm91bmQ6cmVkO29wYWNpdHk6MC41OyI+T3ZlcjwvZGl2Pgor
ICA8YSBpZD0ibGluayIgaHJlZj0ic3VibWl0dGVkX3BhZ2UuaHRtbCI+TGluayB0aGF0IGNvbnRp
bnVlcyBvbiBuZXh0IGxpbmU8L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNr
X3Rvb19iaWcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2NsaWNrX3Rvb19iaWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNTY4ZWU3N2ViNTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190b29fYmlnLmh0bWwKQEAgLTAs
MCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorCTxhIGlkPSJjbGlj
ayIgaHJlZj0iY2xpY2tzLmh0bWwiIHRhcmdldD0iX3BhcmVudCI+CisJCTxkaXYgc3R5bGU9Indp
ZHRoOiAxMDAwMXB4OyBoZWlnaHQ6IDEwMDAxcHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+
CisJCQkmbmJzcDsgJm5ic3A7ICZuYnNwOworCQk8L2Rpdj4KKwk8L2E+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9jbGlja190b29fYmlnX2luX2ZyYW1lLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja190b29fYmlnX2luX2ZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNkYTk5MGVkODkyCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY2xpY2tfdG9vX2JpZ19pbl9mcmFtZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1s
PgorPGhlYWQ+CisgICAgPHRpdGxlPlRoaXMgcGFnZSBoYXMgaWZyYW1lczwvdGl0bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxoMSBpZD0iaWZyYW1lX3BhZ2VfaGVhZGluZyI+VGhpcyBpcyB0aGUgaGVh
ZGluZzwvaDE+CisKKzxpZnJhbWUgc3JjPSJjbGlja190b29fYmlnLmh0bWwiIG1hcmdpbmhlaWdo
dD0iMCIgbWFyZ2lud2lkdGg9IjAiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgYWxsb3d0
cmFuc3BhcmVuY3k9InRydWUiCisgICAgICAgIGZyYW1lYm9yZGVyPSIwIiBoZWlnaHQ9IjEwMDAx
IiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iMTAwMDEiIGlkPSJpZnJhbWUxIiBuYW1lPSJpZnJhbWUx
LW5hbWUiIC8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jbGlja3MuaHRtbCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NsaWNrcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzA3ZmVlNmExZAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Ns
aWNrcy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPmNs
aWNrczwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5UZXN0aW5nIENsaWNrczwvaDE+CisK
KzxpZnJhbWUgaWQ9InNvdXJjZSIgc3JjPSJjbGlja19zb3VyY2UuaHRtbCI+CisKKzwvaWZyYW1l
PgorCis8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCI+CisKKzwvaWZyYW1lPgorPGJy
PgorPGEgaHJlZj0ieGh0bWxUZXN0Lmh0bWwiIGlkPSJub3JtYWwiPkknbSBhIG5vcm1hbCBsaW5r
PC9hPgorPGJyLz4KKzxhIGhyZWY9IiMiIGlkPSJhbmNob3IiPkkgZ28gdG8gYW4gYW5jaG9yPC9h
PgorPGJyPgorPGEgaHJlZj0iamF2YXNjcmlwdDp3aW5kb3cub3BlbigneGh0bWxUZXN0Lmh0bWwn
LCAnX2JsYW5rJykiIGlkPSJuZXctd2luZG93Ij5JIG9wZW4gYSB3aW5kb3cgd2l0aCBqYXZhc2Ny
aXB0PC9hPgorPGJyLz4KKzxhIGhyZWY9InhodG1sVGVzdC5odG1sIiBpZD0idHdvQ2xpZW50UmVj
dHMiPjxzcGFuPjwvc3Bhbj48c3Bhbj5DbGljayBtZTwvc3Bhbj48L2E+Cis8YnIvPgorPGEgaHJl
Zj0ieGh0bWxUZXN0Lmh0bWwiIGlkPSJsaW5rLXdpdGgtZW5jbG9zZWQtaW1hZ2UiPjxpbWcgaWQ9
ImVuY2xvc2VkLWltYWdlIiBzcmM9Ii4vaWNvbi5naWYiLz48L2E+Cis8YnIvPgorPGEgaHJlZj0i
eGh0bWxUZXN0Lmh0bWwiIGlkPSJsaW5rLXdpdGgtZW5jbG9zZWQtc3BhbiI+PHNwYW4gaWQ9ImVu
Y2xvc2VkLXNwYW4iIHN0eWxlPSJjb2xvcjogcmdiKDAsIDI1NSwgMCkiPkknbSBhIGdyZWVuIGxp
bms8L3NwYW4+PC9hPgorPHAgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAw
JSAwJSByZ2IoMCwgMjU1LCAwKTsgd2lkdGg6IDVlbTsiPjxhIGlkPSJvdmVyZmxvd0xpbmsiIGhy
ZWY9InhodG1sVGVzdC5odG1sIj5sb29vb29vb29vb29uZyBzaG9ydCBsb29vb29vb29vb29uZzwv
YT4KKyAgICAgICAgICAgICAgICA8L3A+Cis8ZGl2IGlkPSJidWJibGVzVG8iIG9uY2xpY2s9Indp
bmRvdy5idWJibGVkQ2xpY2sgPSB0cnVlOyI+CisgIDxhIGlkPSJidWJibGVzRnJvbSI+SSBidWJi
bGU8L2E+Cis8L2Rpdj4KKzxhIGhyZWY9InhodG1sVGVzdC5odG1sIj4zMzMzMzM8L2E+Cis8cD48
YSBocmVmPSJ4aHRtbFRlc3QuaHRtbCIgaWQ9ImVtYmVkZGVkQmxvY2siPjxzcGFuIHN0eWxlPSJk
aXNwbGF5OiBibG9jazsiPkkgaGF2ZSBhIHNwYW48L3NwYW4+PGRpdj5BbmQgYSBkaXY8L2Rpdj48
c3Bhbj5BbmQgYW5vdGhlciBzcGFuPC9zcGFuPjwvYT48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jbG9zZWFibGVfd2luZG93Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9jbG9zZWFibGVfd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU2NGM1OTljOTgxCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY2xvc2VhYmxlX3dp
bmRvdy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5jbG9zZWFi
bGUgd2luZG93PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB3aW5kb3cgY2FuIGJlIGNs
b3NlZCBieSBjbGlja2luZyBvbiA8YSBpZD0iY2xvc2UiIG9uY2xpY2s9IndpbmRvdy5zZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cuY2xvc2UoKTt9LCAwKTsiIGhyZWY9IiMiPnRoaXM8L2E+
LgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2NuLXRl
c3QuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2NuLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGY4
NDZhZDQ2ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9jbi10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxNTYgQEAKKworPGhl
YWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg
Y2hhcnNldD1nYjIzMTIiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworCisKKyAgLyogZGVm
YXVsdCBjc3MgKi8KKyAgCisgIHRhYmxlIHsKKyAgICBmb250LXNpemU6IDFlbTsKKyAgICBsaW5l
LWhlaWdodDogaW5oZXJpdDsKKyAgfQorCisgIAorICBkaXYsIGFkZHJlc3MsIG9sLCB1bCwgbGks
IG9wdGlvbiwgc2VsZWN0IHsgCisgICAgbWFyZ2luLXRvcDogMHB4OworICAgIG1hcmdpbi1ib3R0
b206IDBweDsKKyAgfQorCisgIHAgeworICAgIG1hcmdpbjogMHB4OworICB9CisKKyAgYm9keSB7
CisgICAgCisgICAgCisgICAgICBtYXJnaW46IDBweDsKKyAgICAKKyAgICAKKyAgICAKKyAgICAg
IHBhZGRpbmctbGVmdDogNTBweDsKKyAgICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7CisgICAgICBw
YWRkaW5nLXRvcDogNDBweDsKKyAgICAgIAorICAgIAorICB9CisKKyAgaDYgeyBmb250LXNpemU6
IDEwcHQgfQorICBoNSB7IGZvbnQtc2l6ZTogMTFwdCB9CisgIGg0IHsgZm9udC1zaXplOiAxMnB0
IH0KKyAgaDMgeyBmb250LXNpemU6IDEzcHQgfQorICBoMiB7IGZvbnQtc2l6ZTogMTRwdCB9Cisg
IGgxIHsgZm9udC1zaXplOiAxNnB0IH0KKworICBibG9ja3F1b3RlIHtwYWRkaW5nOiAxMHB4OyBi
b3JkZXI6IDFweCAjREREIGRhc2hlZCB9CisKKyAgYSBpbWcge2JvcmRlcjogMH0KKworICBkaXYu
Z29vZ2xlX2hlYWRlciwgZGl2Lmdvb2dsZV9mb290ZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICBtYXJnaW4tdG9wOiAxZW07CisgICAgbWFyZ2luLWJvdHRvbTogMWVtOworICB9Cisg
IC8qIGVuZCBkZWZhdWx0IGNzcyAqLworCisgIAorICAgIC8qIGRlZmF1bHQgcHJpbnQgY3NzICov
CisgICAgCisgICAgQG1lZGlhIHByaW50IHsKKyAgICAgIGJvZHkgeyAKKyAgICAgICAgcGFkZGlu
ZzogMDsgCisgICAgICAgIG1hcmdpbjogMDsgCisgICAgICB9CisKKyAgICAgIGRpdi5nb29nbGVf
aGVhZGVyLCBkaXYuZ29vZ2xlX2Zvb3RlciB7CisgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAg
ICAgICBtaW4taGVpZ2h0OiAwOworICAgICAgICBib3JkZXI6IG5vbmU7CisgICAgICB9CisKKyAg
ICAgIGRpdi5nb29nbGVfaGVhZGVyIHsKKyAgICAgICAgZmxvdzogc3RhdGljKGhlYWRlcik7Cisg
ICAgICB9CisKKyAgICAgIC8qIHVzZWQgdG8gaW5zZXJ0IHBhZ2UgbnVtYmVycyAqLworICAgICAg
ZGl2Lmdvb2dsZV9oZWFkZXI6OmJlZm9yZSwgZGl2Lmdvb2dsZV9mb290ZXI6OmJlZm9yZSB7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwOworICAgICAgfQorCisg
ICAgICBkaXYuZ29vZ2xlX2Zvb3RlciB7CisgICAgICAgIGZsb3c6IHN0YXRpYyhmb290ZXIpOwor
ICAgICAgfQorCisgICAgICAvKiBhbHdheXMgY29uc2lkZXIgdGhpcyBlbGVtZW50IGF0IHRoZSBz
dGFydCBvZiB0aGUgZG9jICovCisgICAgICBkaXYjZ29vZ2xlX2Zvb3RlciB7CisgICAgICAgIGZs
b3c6IHN0YXRpYyhmb290ZXIsIHN0YXJ0KTsKKyAgICAgIH0KKworICAgICAgc3Bhbi5nb29nbGVf
cGFnZW51bWJlciB7CisgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIocGFnZSk7CisgICAgICB9CisK
KyAgICAgIHNwYW4uZ29vZ2xlX3BhZ2Vjb3VudCB7CisgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIo
cGFnZXMpOworICAgICAgfQorICAgIH0KKworICAgIEBwYWdlIHsKKyAgICAgIEB0b3AgeworICAg
ICAgICBjb250ZW50OiBmbG93KGhlYWRlcik7CisgICAgICB9CisgICAgICBAYm90dG9tIHsKKyAg
ICAgICAgY29udGVudDogZmxvdyhmb290ZXIpOworICAgICAgfQorICAgIH0KKyAgICAvKiBlbmQg
ZGVmYXVsdCBwcmludCBjc3MgKi8KKyAgIAorICAKKyAgLyogY3VzdG9tIGNzcyAqLworICAKKyAg
CisgIC8qIGVuZCBjdXN0b20gY3NzICovCisKKyAgLyogdWkgZWRpdGVkIGNzcyAqLworICAKKyAg
Ym9keSB7CisgICAgZm9udC1mYW1pbHk6IFZlcmRhbmE7CisgICAgCisgICAgZm9udC1zaXplOiAx
MC4wcHQ7CisgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj
ZmZmZmZmOworICB9CisgIC8qIGVuZCB1aSBlZGl0ZWQgY3NzICovCisKKworCisKKzwvc3R5bGU+
CisKKworPC9oZWFkPgorCis8Ym9keSByZXZpc2lvbj0iY2N6djY1d2JfNTRmNjJjYzlmMjozIj4K
KworPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2PgorICAgIAorICAgIAorPGgxPtW5zfsyMDA4ysC9
57TzysajurfnxvDUxtO/ILyktbTIy9DEPC9oMT48YnI+Cis8YnI+CisgIDjUwjjI1c3to6yxsb6p
MjAwOMTqsMLUy7vhtbm8xsqx0rvW3MTqx+zXo7vutq/U2szssLLDxbnjs6G+2dDQoaPNvM6qx+zX
o7vutq/W0LXEzsTS1dHds/ahoyDQwruqyee8x9XfwfXOwLH4yeMKKworICAgIKOyo7CjsKO4xOrK
wL3nt+fG8NTG07+jrLyktbTIy9DEoaO1q9Kq1/ez9tK7uPbUpLLio6zK18/I0qq21L3xzOzL+bSm
tcTKwL3n09DSu7j2u/mxvrmyyrahozxicj4KKzxicj4KKzxhIGhyZWY9c2ltcGxlVGVzdC5odG1s
IGlkPWI3djkgdGl0bGU91tC5+tauyfk+1tC5+tauyfk8L2E+PGJyPgorPGJyPgorPGJyPgorCis8
Zm9ybSBhY3Rpb249InNpbXBsZVRlc3QuaHRtbCI+CisgIDxpbnB1dCBuYW1lPSJpMThuIiBvbmNo
YW5nZT0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICc8cD4n
ICsgdGhpcy52YWx1ZSArICc8L3A+JzsiIC8+Cis8L2Zvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2NvbG9yUGFnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvY29sb3JQYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjBkMWJmYzBhZmMzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29sb3JQYWdlLmh0bWwKQEAgLTAsMCAr
MSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+Q29sb3Ig
UGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9Im5hbWVkQ29sb3IiIHN0eWxl
PSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPm5hbWVkQ29sb3I8L2Rpdj4KKzxkaXYgaWQ9InJn
YiIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigwLDEyOCwwKTsiPnJnYjwvZGl2PgorPGRp
diBpZD0icmdicGN0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDAlLDUwJSwwJSk7Ij5y
Z2JwY3Q8L2Rpdj4KKzxkaXYgaWQ9ImhleCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMwMDgw
MDA7Ij5oZXg8L2Rpdj4KKzxkaXYgaWQ9ImhleFNob3J0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xv
cjogI2VlZTsiPmhleDwvZGl2PgorPGRpdiBpZD0iaHNsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xv
cjogaHNsKDEyMCwxMDAlLDI1JSk7Ij5oc2w8L2Rpdj4KKzxkaXYgaWQ9InJnYmEiIHN0eWxlPSJi
YWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMTI4LDAsIDAuNSk7Ij5yZ2JhPC9kaXY+Cis8ZGl2IGlk
PSJyZ2JhcGN0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwJSw1MCUsMCUsIDAuNSk7
Ij5yZ2JhPC9kaXY+Cis8ZGl2IGlkPSJoc2xhIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogaHNs
YSgxMjAsMTAwJSwyNSUsMC41KTsiPmhzbGE8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKworCisK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2NvbnRlbnQtZWRpdGFibGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2NvbnRlbnQtZWRpdGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2E3ZDU1ODE3MDEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb250ZW50LWVk
aXRhYmxlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICA8dGl0bGU+VGVzdGluZyBjb250ZW50IGVkaXRhYmxlPC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4KKyAg
ICBXaHkgPHNwYW4+aGVsbG88L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29va2llcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29va2llcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ZGI1YjQ5MzEyZAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb2tpZXMu
aHRtbApAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0aW5n
IGNvb2tpZXM8L3RpdGxlPgorCisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
ICAgICAgICBmdW5jdGlvbiBzZXRDb29raWUoZG9tYWluLCBuYW1lKSB7CisgICAgICAgICAgICBk
b2N1bWVudC5jb29raWUgPSBuYW1lICsgIj1vaztwYXRoPS87ZG9tYWluPSIgKyBkb21haW47ICAg
ICAgICAgICAgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzaG93Q29va2llKCkgewor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9
ICI8cD4iICsgZG9jdW1lbnQuY29va2llICsgIjwvcD4iOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNob3dDb29raWUoKTsiPgorPGgyPkNvb2tpZSBN
YXNoaW5nPC9oMj4KKyAgICAuY29tIDxhIGhyZWY9IiMiIG9uY2xpY2s9InNldENvb2tpZSgnLmNv
bScsICd0aGUuY29tX29uZScpOyBzaG93Q29va2llKCk7IHJldHVybiBmYWxzZTsiPkNsaWNrPC9h
PjwvYnIgLz4KKyAgICAuIDxhIGhyZWY9IiMiIG9uY2xpY2s9InNldENvb2tpZSgnLicsICd0aGUu
b25lJyk7IHNob3dDb29raWUoKTsgcmV0dXJuIGZhbHNlOyI+Q2xpY2s8L2E+PC9iciAvPgorICAg
IGdvb2dsZS5jb20gPGEgaHJlZj0iIyIgb25jbGljaz0ic2V0Q29va2llKCdnb29nbGUuY29tJywg
J2dvb2dsZScpOyBzaG93Q29va2llKCk7IHJldHVybiBmYWxzZTsiPkNsaWNrPC9hPjwvYnIgLz4K
KyAgICAuZ29vZ2xlLmNvbSA8YSBocmVmPSIjIiBvbmNsaWNrPSJzZXRDb29raWUoJy5nb29nbGUu
Y29tJywgJy5nb29nbGUnKTsgc2hvd0Nvb2tpZSgpOyByZXR1cm4gZmFsc2U7Ij5DbGljazwvYT48
L2JyIC8+CisgICAgMTI3LjAuMC4xIDxhIGhyZWY9IiMiIG9uY2xpY2s9InNldENvb2tpZSgnMTI3
LjAuMC4xJywgJ2xvY2FsaG9zdCcpOyBzaG93Q29va2llKCk7IHJldHVybiBmYWxzZTsiPkNsaWNr
PC9hPjwvYnIgLz4KKyAgICBsb2NhbGhvc3Q6MzAwMSA8YSBocmVmPSIjIiBvbmNsaWNrPSJzZXRD
b29raWUoJ21lbmN5LmFkLmNvcnAuZ29vZ2xlLmNvbTo2MjIxMCcsICd3aXRoX3BvcnQnKTsgc2hv
d0Nvb2tpZSgpOyByZXR1cm4gZmFsc2U7Ij5DbGljazwvYT48L2JyIC8+CisgICAgLmdvb2dsZToz
MDAxIDxhIGhyZWY9IiMiIG9uY2xpY2s9InNldENvb2tpZSgnLmdvb2dsZS5jb206NjIyMTAnLCAn
d2l0aF9kb21haW5fYW5kX3BvcnQnKTsgc2hvd0Nvb2tpZSgpOyByZXR1cm4gZmFsc2U7Ij5DbGlj
azwvYT48L2JyIC8+CisgICAgMTcyLjE2LjEyLjIyNSA8YSBocmVmPSIjIiBvbmNsaWNrPSJzZXRD
b29raWUoJzE3Mi4xNi4xMi4yMjUnLCAncmF3X0lQJyk7IHNob3dDb29raWUoKTsgcmV0dXJuIGZh
bHNlOyI+Q2xpY2s8L2E+PC9iciAvPiAgCisgICAgMTcyLjE2LjEyLjIyNTpwb3J0IDxhIGhyZWY9
IiMiIG9uY2xpY2s9InNldENvb2tpZSgnMTcyLjE2LjEyLjIyNTo2MjIxMCcsICdyYXdfSVBfYW5k
X3BvcnQnKTsgc2hvd0Nvb2tpZSgpOyByZXR1cm4gZmFsc2U7Ij5DbGljazwvYT48L2JyIC8+Cisg
ICAgPGEgaHJlZj0iIyIgb25jbGljaz0iZG9jdW1lbnQuY29va2llID0gJ2Zvbz1iYXI7cGF0aD0v
Y29tbW9uL2dhbGF4eSc7Ij5TZXQgb24gYSBkaWZmZXJlbnQgcGF0aDwvYT4KKworPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9lbGVtZW50X2luX2ZyYW1lLmh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0
cy9lbGVtZW50X2luX2ZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjc3MTRhNDhhZDViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvZWxlbWVudF9p
bl9mcmFtZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICA8dGl0bGU+V2VsY29tZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxl
PSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDBweDsiPgorICA8aWZyYW1lIG5hbWU9ImlmciIgc3Jj
PSJzaW1wbGVfcGFnZS5odG1sIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjMwMCIgc3R5bGU9ImJvcmRl
cjogNXB4IHNvbGlkOyI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRl
c190ZXN0cy9lbGVtZW50X2luX25lc3RlZF9mcmFtZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvZWxlbWVudF9p
bl9uZXN0ZWRfZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uYjMxNDNiMGQ2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9lbGVtZW50X2luX25l
c3RlZF9mcmFtZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICA8dGl0bGU+V2VsY29tZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IHN0
eWxlPSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDBweDsiPgorICA8aWZyYW1lIG5hbWU9ImlmciIg
c3JjPSJlbGVtZW50X2luX2ZyYW1lLmh0bWwiIHdpZHRoPSI1MDAiIGhlaWdodD0iNDAwIiBzdHls
ZT0iYm9yZGVyOiA1cHggc29saWQ7Ij48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nv
b3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9lbGVtZW50X291dF9vZl92aWV3Lmh0bWwgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190
ZXN0cy9wYWdlX3dpdGhfZWxlbWVudF9vdXRfb2Zfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjJiY2Q0ZjJjNgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3JkaW5hdGVz
X3Rlc3RzL3BhZ2Vfd2l0aF9lbGVtZW50X291dF9vZl92aWV3Lmh0bWwKQEAgLTAsMCArMSwxMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSBXaXRoIEVs
ZW1lbnQgT3V0IE9mIFZpZXc8L3RpdGxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9Im1hcmdpbjog
MTBweDsgcGFkZGluZzogMHB4OyI+CisgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAwMHB4OyI+UGxh
Y2Vob2xkZXI8L2Rpdj4KKyAgPGRpdiBpZD0iYm94IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ij5SZWQgYm94PC9kaXY+CisgIDxkaXY+
VGV4IGFmdGVyIGJveDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVz
dHMvcGFnZV93aXRoX2VtcHR5X2VsZW1lbnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9lbXB0
eV9lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIw
Nzk3MmFiZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2VtcHR5X2Vs
ZW1lbnQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgIDx0aXRsZT5QYWdlIFdpdGggRW1wdHkgRWxlbWVudDwvdGl0bGU+Cis8L2hlYWQ+Cis8
Ym9keSBzdHlsZT0ibWFyZ2luOiAxMHB4OyBwYWRkaW5nOiAwcHg7Ij4KKyAgPGRpdiBpZD0iYm94
Ij48L2Rpdj4KKyAgPGRpdj5UZXggYWZ0ZXIgYm94PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfZml4ZWRfZWxlbWVudC5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVz
dHMvcGFnZV93aXRoX2ZpeGVkX2VsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNmNiYjI3MzhlNTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9w
YWdlX3dpdGhfZml4ZWRfZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2UgV2l0aCBGaXhlZCBFbGVtZW50PC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJmaXhlZCIgc3R5bGU9InBvc2l0aW9u
OmZpeGVkOyB0b3A6MHB4OyBsZWZ0OjEwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJlZCI+Zml4ZWQg
cmVkIGJveDwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZWhvbGRlciIgc3R5bGU9ImhlaWdodDogNTAw
MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuIj5QbGFjZWhvbGRlcjwvZGl2PgorICA8ZGl2IGlk
PSJib3R0b20iPkVsZW1lbnQgYXQgdGhlIGJvdHRvbTwvZGl2PgorICA8ZGl2PlRleCBhZnRlciBi
b3g8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0
aF9oaWRkZW5fZWxlbWVudC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2hpZGRlbl9lbGVtZW50
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI4NmIwNGIxNzNm
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2hpZGRlbl9lbGVtZW50Lmh0
bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8
dGl0bGU+UGFnZSBXaXRoIEhpZGRlbiBFbGVtZW50PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IHN0
eWxlPSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDBweDsiPgorICA8ZGl2IGlkPSJib3giIHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgdmlz
aWJpbGl0eTogaGlkZGVuOyI+SGlkZGVuIGJveDwvZGl2PgorICA8ZGl2PlRleCBhZnRlciBib3g8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0aF9p
bnZpc2libGVfZWxlbWVudC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2ludmlzaWJsZV9lbGVt
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRjMzNjNzE4
NTYxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX2ludmlzaWJsZV9lbGVt
ZW50Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICA8dGl0bGU+UGFnZSBXaXRoIEludmlzaWJsZSBFbGVtZW50PC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5IHN0eWxlPSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDBweDsiPgorICA8ZGl2IGlkPSJi
b3giIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQtY29sb3I6
IHJlZDsgZGlzcGxheTogbm9uZTsiPkludmlzaWJsZSBib3g8L2Rpdj4KKyAgPGRpdj5UZXggYWZ0
ZXIgYm94PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9wYWdl
X3dpdGhfdHJhbnNwYXJlbnRfZWxlbWVudC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvcGFnZV93aXRoX3RyYW5z
cGFyZW50X2VsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uZDAwOTBkOTIxZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfdHJh
bnNwYXJlbnRfZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2UgV2l0aCBUcmFuc3BhcmVudCBFbGVtZW50PC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDBweDsi
PgorICA8ZGl2IGlkPSJib3giIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJh
Y2tncm91bmQtY29sb3I6IHJlZDsgb3BhY2l0eTogMDsiPkhpZGRlbiBib3g8L2Rpdj4KKyAgPGRp
dj5UZXggYWZ0ZXIgYm94PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jb29yZGluYXRlc190
ZXN0cy9zaW1wbGVfcGFnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvY29vcmRpbmF0ZXNfdGVzdHMvc2ltcGxlX3BhZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2I4NTdiOWRmZTgKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9j
b29yZGluYXRlc190ZXN0cy9zaW1wbGVfcGFnZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlNpbXBsZSBQYWdlPC90aXRsZT4K
KzwvaGVhZD4KKzxib2R5IHN0eWxlPSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDBweDsiPgorICA8
ZGl2IGlkPSJib3giIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91
bmQtY29sb3I6IHJlZDsiPlJlZCBib3g8L2Rpdj4KKyAgPGRpdj5UZXggYWZ0ZXIgYm94PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19kaWFn
b25hbHMtdGhpY2tfMThfYjgxOTAwXzQweDQwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWJnX2Rp
YWdvbmFscy10aGlja18xOF9iODE5MDBfNDB4NDAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1NGUyMmRiZDk5
ZThjNmRkNzA5MTMzNTU5OWFiZjJkMTBiZjgwMDMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI2
MAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjhYKE5VMXwpbV8/Wl5kRXIjKVI5TG4yej1VVSVk
PVdGWFM9QFY/SFQKeiN4RypgPll2c2drPX05OXdeZF5EXmQqQG03NG9NbzwlI0Zjb3BKZj91MDAt
fllWS1Yyd3pySSpfUjY7VU9STWVhCnpCRlZTRW5OfmVpVkE2ViZ6YEUpWUx6NUFva15EKUlufVlu
PU96RHBnUjVXdjBYZlQ4cE9rbVZ7c0tBSi1QTzkjVAp6Wkt9SVhqJlEtViFVKSFMY0JfM0s8ajY9
a3UqISV1WGp5I2xlS2RRP2BadlAmUmlhUFZPenhRJGBPKWBNKDZzTFMKeU4lSjtZP0RPMDxyNz9m
ZiMhYzZMc0EqMlVgZjIqP0MlZ3NLcE1vNnp2b3J2YCNvKzFjPWQjV3pwJFB5PjAmQyp7CgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19kaWFn
b25hbHMtdGhpY2tfMjBfNjY2NjY2XzQweDQwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWJnX2Rp
YWdvbmFscy10aGlja18yMF82NjY2NjZfNDB4NDAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZWNlNTcwN2Q5
MWE2ZWRmOWZhZDRiZmNjZTBjNGRiY2FmY2Y1OGQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI1
MQp6Y21WPFgwMGpTdVApPGg7M0t8TGswMDBlMU5KTFRxMDAxWmUwMDFabTFeQHM2alErVDcwMDAy
T05rbDxaU2NVRF4KelQ/JklSNyh+KEFZI14pNiFuMTw8VmopZlFZbV5NLW5ANXIxQ31AfmgyO29o
WjctTjN2QypKJCtKJExsRUpJaEwwCno/ZlV8JTtVRURqO0B8fFQ7c0JnNzRoa1IxTzQkPCsrWFV7
JExFe1o3O0doQ2ohOWZBMmdvNnlJaEp5c0NoPVVXVAp6aVVWLVVJMmlhKiZ5K3AhdXRVSXwkNioo
XmA+YnZQY2pLU3xSS1AoNnNEY0NBQihfUUIlMDk3OGE8JEFoJCFifEUKenduO3xITzBpOGNRPGxh
eSQoMXMmT3xuKXQ4cnZrYnZSP2pqbE5APmpAfilzIWFqRjBTMDAyb3ZQREhMa1Yxb0VwCkJZSDB1
ZgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWkt
YmdfZmxhdF8xMF8wMDAwMDBfNDB4MTAwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWJnX2ZsYXRf
MTBfMDAwMDAwXzQweDEwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJkYzAxMDgyYmYzNTM0ZWFmZWNjNTgx
OWQyOGM5NTc0ZDQ0ZWE4OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTc4CnpjbWVBU0BOPyhv
bEh5YHVWQnEhaWEwdnBeOGJGLUYhM0hHMXEhZCpGc1kqezUkQj5OMXg5MUVRND00eVFZLUltRwp6
RlBmOWJ7SjtjXzZTSFJLJVdjYk5faFpwTT0oUnk7NFJ4djJAQDJZPSRLNTdlRiRYJD0hUEN7eFd0
fiQoNjlCKSQKQkkpNEJGCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRu
ZXNzL2ltYWdlcy91aS1iZ19nbGFzc18xMDBfZjZmNmY2XzF4NDAwLnBuZyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1h
Z2VzL3VpLWJnX2dsYXNzXzEwMF9mNmY2ZjZfMXg0MDAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMzgzZjRk
MmVhYjA5YzBmMmE3MzlkNmIyMzJjMzI5MzRiYzYyMGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs
IDEwNAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXmo2Z0pqZ0FLXmFrS25vdXIxVSpxOTc4TzYt
eVl3eyViKn18XygwMkYKekBxYkU5KTBDSk1vOyp2KlBXdmBWaDJoNkVtRzhJUy1DbXszVX5gPFl2
eFNTRlUzKTxRUCVERnt0RG5te3ItVVd8CkR2ZDx1ZgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfZ2xhc3NfMTAwX2ZkZjVjZV8xeDQwMC5w
bmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3Mv
dWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19nbGFzc18xMDBfZmRmNWNlXzF4NDAwLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMjNiYWFkMjViMWQxZmYzNmUxNzM2MWVhYjI0MjcxZjJlOWI3MzI2CkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAxMjUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5qNmdKamdBS15h
a0tub3VxK0MyKjk3OE82bFlqakZ7SUZoKWpnNzQ+CnpGbG1afVlNY0pZPWVvP28lKkBJPzJgTmJs
TmVNdWRsI3Q/PFlJcnlgUUsqT0dyfm90RDlwbEFFR3pgNUc2ZDl6cApXYTU1ZXtHVVc9O0pPKW8h
S2JMaCoyfjdhQCZtQCFwCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRu
ZXNzL2ltYWdlcy91aS1iZ19nbGFzc182NV9mZmZmZmZfMXg0MDAucG5nIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFn
ZXMvdWktYmdfZ2xhc3NfNjVfZmZmZmZmXzF4NDAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MmNjYmEyNjli
NmU5MWJlZjEyYWQwZmExOGJlNjUxYjVlZjBlZTY4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAx
MDUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5qNmdKamdBS15ha0tub3VxenBWPTk3OE82LT0w
P0ZWXjl6fGVCdGY9Cnp8N1d6dElKO1dUPnsrdE4+eVNyfj1Ge2skPjtfeF5feT9hZm1mOXBSS0gw
KTY/ZVNQPzNzNWhFcj5tZEtJO1ZzdApFME88Wjk+O00xJgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfZ2xvc3Mtd2F2ZV8zNV9mNmE4Mjhf
NTAweDEwMC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19nbG9zcy13YXZlXzM1X2Y2YTgyOF81
MDB4MTAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOWQ1ODI0ZDZhZjU0NTZmMWU4OWZjNzg0N2VhMzU5OWVh
NWZkODE1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNzYyCnpjbWJfZVlnaUtLd3gtPVE/UDxF
NG5NTTskZVd1Mm0jUFUlYCZBZV5MT3ZeNmdjdEozdk04IWxVRyFhQ3hRIzBlSgp6cT94SXFESmk5
PGZGcD5kaTArdyF5YUN8XzF1dkE+eWF4enxpWDNlQjxMcWFqcFhibEZ6UlVCaV57d34kKV9VS3AK
enBEejBEKj00IzUwMDhWYz52I0hSMEFTbVNWSUtNUyZrZmBDU0FWNGcwREpMZ1BrUk83OXhqJUo8
KGhINmBiVEdqCnpycl4kSmVpSEpJPztzJjw1cFJ3LV5ran09RTtYME9YK3BneitmNUdWdDBOUXZf
Z2J1MD4tOEorRiRPPkhwVz9MeAp6K1lGT2BDViY2VlY5ZnNFd0cjanMwXy18diohdWpaKk09amZv
NDU3PzBEby16PF59KzhiSStxaytXfiskenolWiYKejtMNyZAJm5zYGw4T2ZoKldkPENwXz5VMHBP
JVJQXj9YYV9oN0l9N0sjfTRYdGBzJS0obS1lbmFQV1g8SD4kTyYtCnpYfmExYU96bj8hcj81d0pW
Qk5QSl9vOC0oOUZ6PF9jMUxZR3hVbChFK1dkeD93a05ISDJUJWVXcTlLejAwaCNSQgp6WUtJfj1h
PDlfUXFDXm48Pmh5V2xTNjZ3YVdneUFQI3QmVGZUV1A9U3hhKXVrUlklajdXSH0oQHI9Ql5XXzti
Jk0KelJ6UFlzYipqXktvdSUlYEs2VlArZEt0UkB4fnFFSHE0clhNeG9YLWdjU2YmLT5sTVklVE1Y
RiFHd19BKSh0cDZ9CnoyQSVrTjN0d2JyJUt5VXJybXcyNFYzZCV3eks8LXEoTTtNVHI0MX11bmBQ
ISF4ZWpBREV2X0NKe0NUaWY5MDdCJgp6RVBgcERKSVpIVmdubXhoJEVabkJPVXh6fkFwK1p6S2JG
bWczOV9uLSkkd1khUUBpfjVhR21IYk43JipnazxITlEKeiEkLXNTKSk1KCM/cVBXJDFDXjMjO2NG
dlFNV1RkKWQoSV80YXdFXlpqR0MlWGNuU0dlej5xOXpXZ1Z8MihaaHhsCnpvRHFKcCZNeFcocVgj
Q0BvRjhMKSpyJFJkU2pWRlNjJCV6Pyo5JVlvWjZzT1ohdnR4WHRCTTwqcjgyPHA3fT8xQAp6dmVR
SSZ0aU5tezs1N2ppcFFiT31iPzlsKmw0bkdBVDRZPS13KClAKiNKMT8lMnspbllee3xOTz14TSlz
P2pSNjwKemlKIWZTT09QcyokOC0+dnlDfV9FaXoxUEoyTCRidHRrb2A9K2ZIe05lQEcjbE1EeGtL
dF95KU8oSjUmQWspdy1JCnpubSF2ellYMyRrTERHJGhPcC1LSmd+N31NOzczQkZXQXshYTYxZmU/
TkpralJffVh3KypgTzA9QUdnNyZkVTxrUQp6QTtkJS16TSppd1MydDhZKUd1QEpLJkEpZlY9SEh2
YldgNm1WK0VacnRKU2F1QXBNQ25kQlN+Rj5BYEE/OWB3aFcKek17ZmtGZmBHYFBeOWoqfC1xOUtM
dlM8MTkxejlhXm1LM0xzc31XOE89c1p9TiRWNEZoKlNXRjVOYlpRPnB7MD4kCnowcGV9ZCQqcyF5
PEk2UEAxLW4kR0U+KlImTlNYYmptbGQ2ezRZO084OU11RFRLMEhuMEM/UWRMOXoxcUdlZ1hzIQp6
NyRNSUdrUGt3ZEhGMm9zLVotZTg1Qj81QW4+eWN8bTx9PiFJaXJnJUgtPE5RJXdzMHVJaTUxLWE1
cGhEbXB7azUKekQoempQQzt0fUB7dykrMCZ7bH5GUyo+JUYxMVhZe3s+QGtnTD5hIzZmTTlKekJF
JmFuJkY+ZVdofGIwXmtKPD9uCnpzPTdXeXVYPWZJaHZBalRUWGBjfUhVSCliVFRJO09KR2x5Qnso
TksmRztIdG1uNl4/Yz9UYUFzT1Z9dUJVdEFhPgp6TkJNNSpuQ2F+KHh3bn5yR348Y2ZQcCp1YjRW
KFdGKWxHYkpwUyh8TXZBQTgzeVZ9fTliZmJ0KD4+R1NHOW16M2gKejlGfjY0eX1naUlyel5sZmx8
XzVIcFVzR30/V3ByKiZmP2JTPXw5YmlxaXZOKS1hfnU+dUs8e0xmY25nezY2M1FMCnpMWHpPQCpO
NSlxNEM9ajZFOG5DK1AlbEV3SSN+MHdrdDtNNFk4IStEWXpOMnJCdVlhbzEqSFJJYV5OQzluRmVl
cAp6K25zNSRYOUJoNDhTLWBzcyFrJiFKI0RkZD1qMU8tOX0/YHYoQnw8TTFALVUxOHQrSnM7Wk5I
SWszJHUkVTtFeXUKejNleHlHaXBVUWJPO1N8QnpwKGhYeyYhTkJAb3EqZ2J9ZV4pNjh9NSMha0gk
QmhLPEA1IXVidV5YRGEmZDFDI0B8CnozeVl9Jih+UVZMQ1Zkdil7KUlfRUN4S3NJbG1XOExaITs9
cnRrNFphWCF4bSo9KloofFArVXFmKlJnPEkhVGF1Jgp6ODV7ND4+Ujd3RDk3QlY7bkt+cXVVSHhe
bWpeRzZLMkdaMSp1U04/aUxtITd2SEI3XzFeVEdiS2htbksrS2BHWUEKem9jcDI9b244THhKSF5g
N14xY2gwZnQoTVRVJHZKQiFSQGdRXlJgcW9YPig9aVkjdSsrM0s+b3FTcEc9ez8jWVZ3CnpwM205
OUZYa15+PDYjWDlYMW9LWVhFSCU4dDJidEc2NSh1MHpGLUopXj44ZGowRXZjKzlfQmReWSlrOUFm
V35GVgp6JWlEVihDbFM2KVRDN2VWemh7bWw7cDRjeDgpJFRWJnFoUldwK2RxaXc+aTMyPzE7NWQ+
SExyTmo9Xk9kSjx9TCkKeld4cXc4YUZJPH5fVGtNRFFIUz9geitLUT8re0FTb3klfVJCdTZpOT9C
WGJoJU9FeDFPdVp9P24oVmpyVCghQjE7CnpRISNXQTBOQng9XjZySnJGVnNEQ3VUNClPVEc8SWth
eipPOHRGVFopUUxeYHFiWXUpanEqa1REPnpaMyRaNFlxegp6JmM5KzclZyElenh0diNwMmZoSGJv
OThLQndmRTxlOVo8WXIldVJXai01SGQzaFRZWTwmdmVgamU4eThSVilrbnUKellDVDBLYCpKclJ2
PG54JWpBZj4mWSgmMiM9fXFFRVVgRUNFamxDcD1YXl90SW9NeD4la0JUNWspXmM9enlWNXczCnpj
PkRMS1k2JT15MGlnV2k5QkA0aEJ9YlI2S3wrallCdCt9aTZMZHxiYCpzNjJjNkdlP3pHWXZkVyk9
cDkwfiRBZAp6eEdCPmM8M0R5fmhQSiN2TlhpZXJPbDQxeEJuXzBMPDVOaEs2Sk8tTHZ0UyZae3hq
R0tmSUM2KjklKj90dio/KyEKenY7UXs/bUhOMmJ8M0RFSk99Ujl3MTFaVDVRVkMoSDB1fDBuOWNW
S19AMnIlQzwpT25aKDNhUzBVeF42RyRqYSo8Cno5Un5vfjlYamhQTCl3QHZZaTZyO0gkdFI+d1dg
MC1aJlFlZGBYMExaWTktfm1mc28hQGR0PzVRO0B8SzYkbUFCJgp6JEo0MSZ5KTx7TjtRQVRQZVV9
QkN7bE1fPEQ0SFpBKUIpaS07Z0oxcHd1c3EkaD5ALUxsUTJoalg7fTZ+cWRnbFQKekdtJXFKbSpG
XmluPXcqP2o7QENfUDxmTnVSPkNNblhLNUZkXndYVioqcFpPZFMxS2JTSnNDfnMjUjt0bVhJTWJg
CnpIQj5zeDxyTkRsQDQrKj5RZyZFNVlmQH1kI35aOUQ0Unt9WnBMbTdTPWJZMHgjazw9SD89Uis9
VyQ9Qm0yYVUqbgp6KXFnRCowIzQ+R0dsSGhRYGJ4I2s9TmpjOys5REB7RjVgeEledE1rQmZ7WEl6
d0I9YjlLYnV1TEY3ak1UUn5Nd3QKek4jISk5SjQmXlZASlJlOVkhYjIhOyRyQ0xQV1pmR2BDO1F6
YHV+VEpkQ3p2LT5lYD1SOHVIWF8ye0ZwJnBXSipoCnojQTYwJmJZKGooXlBAdF9gX3BrdEJWN3t0
RlZvZU5XbE5BfHpnTnImRE1qSl8hazIlMnMyfkZAbGEkTTZrJWhXaQp6N319aG9EdW9hTjc/bGNo
VmtANER1bnBFSVMkNzImdXVGJkY7JjR1aEMkTCk2SXpISFVyeVI5ZW16cHh3c1JYbWoKemZjfXBJ
I29SQ0I3WTE7dD0qNThHc3Y3eDNQR3VXXnNwbjZWJmRXZiM/KlRRMCh8KnJyPUVlRTFvfnkxPHE9
WGJCCnpIN00xbjYhZlNEP3BtI3RuUXFDdD53eVFpJSllKm9YNmlYQCRtMEYxUjxqcDJYNSE0eFlr
RjdKKztidGhDfCFeXwp6Zkd0e2B2YDVAK3ZIXm1vTiUwXmVYc3FeZnZ8RCVeNGQyfnklP15xPS1O
dit3Uj50S1VUMHZnZyE4XmZXaFlMcVMKekZARU9wRmxkNz5mXmtwcmJ+WXdNcT1ePDxwYW42UyEq
SEBnN3R9ZVFKTGh1V2VMR1RrVDJQK0NrMyFUZTFsayUpCnp0OVRDeilvQzM+ZXxndz9RRnlmOGNr
fFpDXj4pM2NgYiReQz5qQ0I0Rm5lXzFlJENxdD00VWQjS35+OE5mYTkxVwp6d2sxNyZEP1g/NEZS
elIrNXFDaUlxUGYwfTtLNCR0VyR9bH5BP3VfRT1KU2U7KmZfRE8+cnt6PVU0XzwpZFkpTSEKejdP
I21pekMrR04mIzspayl2a0JVPHRYbnFQX158LXRHbVpjVDhEbHh0NlBuP2B1eXBCWEAxZlZyTmVQ
VmQjQUxwCnpGNCQ4MCtAQUc7N3hsNVdfc0VeeU5ZRVMkPEM2fWBaYjEmSkNaeH5uWUViYyVyIzFk
JU1uMHBnUyQ1UWx3RyhvdAp6IVphez5TQGZaZXNie3Y/WXVGbENQUmpzVDVieEI0QCtzcWRxfXh2
dkJoVG5nWihOMUxVQ1MtZWk9NXNnRS1UYmMKejdISytBX08yM01QQHNVb2M/ST8qWkJ8RikmJXVz
fDI8b1JVPCR+QXBRJWYlUlUqYUVgVm1HckI8SjRpZU1DaXJWCnpQX35PUTt0eHIyV0JnUFF0QWJh
cFJWJkJvVUxjfT9AfXoqZ0FBSkVGTm8oPyhpT0NaaHFlKVc3OGVaKlV2YU5ANwp6aEtLR3Z0MCF9
KHJqQjtxYzBLXiVofDVuNyg7dmMrdUh4fERnQD1GfjxJO3MzVlRfPUQjaGUlNXAyU29PbHk8X3cK
eipIS3J6QGVqM1c/WSt4ZCtSSlo7OVdaQ0dFR0l7RVRZZzhoNjs9ZH5PaWA8N0BWZmRFJmlVUGk+
TyQjRzdWJDZ6CnpxPkclNiFjdTdPRWYrXyNeQT0yM0hkNkRiOS15SypOUSM8UEdudjNveiVHbCpJ
YiMjcWBkQiVNdlk+UytrakpJNwp6aExpTHp7PnpLS3RISD5IO0ItY0FMempgPkArLX4/WDJhUDd5
cGY5V01mOHEwbSl3UyFOa2YrJlImJnpFakZPVXgKemxxXj52I1ZBcX09KT9kS1JNZSswMTBnOU87
cUFpYVRBNGRWKz09bXclaTNSZSlEd1okV2Q1Q0sxbTRJdnkmJkVmCnpPOFchU3BjZ0E+emZUR0FF
IXtJUEpNaGRaYFQ0e0sjN25kRFQ4SzImKmpmPUo4Tz5IKmlESn1aS316fCRDM1U2Mgp6JG5aaGs0
diRRSVl6TWFWKzBgQjhTIT05UlNZemkqUUcjdHA+Wll8bFlfYH1BLXpJNykodFYkQjlHLXRDI3p0
OG0KejwhTUBNVDw0Mzt3TU5tdW8ta1NtUG01VVFib1k3dUgoYCMoN3NscHQjPUJuTF87dD5yZX5w
RDdvSUZrbUlBTT1zCnp3K0lpbGklblNDP3lrcyl0fnE0bFRsWlcoIzVeeVVWQCteS3ZJdVF6WkRP
XipUQnohPEN0UWgycmZPPHo9VFN7SAp6eklIKiRWNTZIMHtFbkNSXlhyRyFaRzdBakQ0cn1RKHQy
bDkoUCZRVTZNPDQ0O054Q2J5MTJnRSN+dC16Y28zQSsKclFxOEtaNWUqZktFYU97MEtlMHN+UW15
NlhoNW0lRk8hd1Z9Q0UlPmojblglKnVpV3x7eDlxMHcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWJnX2hpZ2hsaWdodC1zb2Z0XzEwMF9lZWVl
ZWVfMXgxMDAucG5nIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfaGlnaGxpZ2h0LXNvZnRfMTAwX2Vl
ZWVlZV8xeDEwMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjEyNzM2NzJkMjUzMjYzYjc1NjRlOWUyMWQ2OWQ3
ZDlkMGIzMzdkOQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTAKemNtZUFTQE4/KG9sSHlgdVZC
cSFpYTB2cF5qNmpeaSEzSEdWYilwaTBsJWw3TFZ+RTdtPFIyZCZBRm8kcVZgRlBtCm9ib3VsRHpy
Nkt5QStmczdoYnt+WlF4KyZxVkM5JjY3cFIhUSk3OCZxb2xgOyswSDhiPW5nOVIqCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1iZ19oaWdobGln
aHQtc29mdF83NV9mZmU0NWNfMXgxMDAucG5nIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktYmdfaGlnaGxp
Z2h0LXNvZnRfNzVfZmZlNDVjXzF4MTAwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTkzOTdhY2ZmZGQ4NGJk
MTAyZjBlOGE5NTFjOWQ3NDRmMjc4ZGI1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMjkKemNt
ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5qNmpeaSEzSEdWYilwaTBsIXZFX1Z+RTdtdE5qTiM4eXAw
ZiluRCVDCnp7a14mMlpaSDRXI3FrZTY3I2okJUllcFYqYHlueyNQfDYwMElWUkpqQ2h3WGUoc3N5
Wj54UFE9Rjg1YSZNQGdfewpkfEdlS3skWTVsbyVQTXVePndsbmA0NCRyakY2KjJVbmdFNF5FR3F5
MgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWkt
aWNvbnNfMjIyMjIyXzI1NngyNDAucG5nIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktaWNvbnNfMjIyMjIy
XzI1NngyNDAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNzNmZjExMWQyMTljOWI5YThiOTZkNTc2ODNkMDA3
NWZiNzg3MWEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQzNjkKemNtZF4/YDhPMilfczNecGhP
ckd9VW5maVVFbjgoOVFXMT9NTmt4WFZERXBGaW4ye3hXckx4NWtCQztrfkdtPHFTCnpsQ2pMN2k4
Ukt9VX5KI3NANlklMVM5fjdsYj8keExVK3l7Z29fbypoYEFWPXNwWFkqISFUPG1PbXhaflI5Ukw5
UQp6ZGoraHJmJldeUCNmOUMhWnBwXlZ7O2FJRD9FbFZMP1Jkb2h3e1VjejlyX1lMNz1ENjwmOEY+
UG1ZVEdeRlh9YyUKemw8ekFpKG0+R0V7RFMxUTt+STc8dkQpJFlqKGZkPi02emUmVE5AK0YteHNJ
NnNkJVN3SyMqTzVLfHBEUlpxRXk8CnpKZzBOZDhGQCFPeHFFbG1gflUjcGlNMjJAdUA4Qjw8ZWNJ
KlM8ZWdVSDd9Y3NkOCEpakxCRDJzYHAoOHYmLS1LRQp6NzFecTlNZ2xGeXdrU3RfNUZDcjJGJW8m
VVIoNWo3LU8+bW95S0UlY3RgQihqeXN4SysxbT9HKVV5SUZzMXQwfUwKemVtR1ImP2pHYU0xWVFi
bGo/diZAMGlYUyNmaS1WYlI5ekxFbkhMUD94UXw9JUlocmM3XnlQV1IhdFckeUghenJ3CnojSTJ9
XyFKblReKHFrKVZnSnJgTkdkUHRUXmRtUUlaYyU9Nm5UQXlKRFhrK14zfXdVT2lsSnV3cT5zPVRf
ITlWKQp6cjEpRFQ2VlEyfnJnZEAhSmxydGUzfX1tfmp9anVDU2BKNChkLTUrZS0zQEV6elRKTkNF
MnopdyhrSjkweipRRSkKekJ0blZANG1NPmpUclpaKiQwMVNuR292MCY9QS1Kclg1R2UlUGNlMVZq
fT01WVFxQkReV0BuNEttRnh4cEZLYHVICnpQOyh4S1YrNlZKMnxnKz9fTGN0N2B1RWxMPCZqekdT
OEdmdmEyKz04QUAjVit4c0FqOXxEa2cpdkw1eWhYQH5CPQp6TjJLWlNBVUQlUUhgeD5IK0BPdShE
MX5QeXYjMG5jJiQhMWtJP0lPMDF5dzNqRDBAODBxdmM/VCpOcjg/LSVyQzgKekA1JHxXWT9IcXBg
aXhtRWt6ZUpUel9gXzwhb0UwZHNPYHBvMT0kaV8xazxVbV99Y2FNWmNycHFBKngtfVJ3KGZYCnoz
UXloODstNF5GZSlVSUNJQGF5em15Vj80OEdiUjsxKnM+d3NTUmkxJVppdmRgIytUe0FpYjYtcmYk
fU04c3o2dgp6YjZFUmJyLVNuaU8yd2JPdiFNNCluYn02VVZ6b1ZaRWg1a1FXaF81eDRyWXkzPHNI
ckhKTHFMK0RjTFQ1YHQkTEAKejVfSjgjSDtQV08xR1dAb0lkMVk+YyE4NzFOZWFNKF9wPTQoa2JT
NlUjeDwqazhXZ15LSHMydHRDejwrcEJ4USRaCnpRTXY7a1ZtNV9mRl92SGBNenJxJFkmNnU/ajZ+
ZjxqdXlgQ15JME9gNG1mWEswbHJSWSpWb2VKWCZrJDlhTDtIbAp6bHA2M3Nmfi0xel80MTkpQThe
anxMZVFTbUsmVDhSN25BPUtpM15IO1lhZUwmaEY2PnRJVjBZZylOdzdKeXNJTl8Kei1fbipLX3Yx
YyZEfS0xe05iQndTMmgjbTF5MGE1UmlFY1lpbCs1OCQ4SURoNDliUG56RTdSOEluNlAlVnsySVpV
Cno3I2Nscj1WNDx6VC1nUDJ1fUREPnl5clJlQG9YTnFicW9eXkx2bExFPyU4WGFJJk4oTnA5MC1w
c1V9N2txbWJXawp6WjtZQndKTm5OczxtNkdxalYyKGNDWDJlKyN0U09nSUdtfkomRGprbmh5IWVg
JnApTlRxPiR+ZCFteDlvTUd5VCgKem5hQm9qMGR9Z3BRXmFScj82blcpJDRnb2QqYEBVaDJlK1lw
U0AwKE13e3x6fDZrbzNOYlR2RGlDdTNZTyspZWdMCno+dVcoXmFoS0ZqPmlKLUpGIV5LaEtReVBU
em5KYTt4eUhZd3hKZ3IxNiZXaWRfOSktJSptRXdve0JffE05dEBTMQp6ZkBUQHE/YjJRZ2whfl8o
Um9lO2ZkSyl5fFhHMDtscztaYlQpdy1hT1Z0dGsjZGFRY1k3JGNwWTQ5NkgqYG1AK0wKemVQIyQm
eVJiQmpGV3Z9Qil8NS0xdj0oNjZNXztWMVNXdjZNSG5PfX0xPXZieSY5bCtnYVA/fHBYd3AwQUZE
ZSNMCnomTVJKXipxWDZ3Z3hoQV9gKm89TEdaPkdfTlRYJUFLSFB6NGJPXlI3MlpZS31hbGUzbGZm
RGdNOEghV3J3e0I3QQp6ez9jX3xkaDJKKnk8SHtgTTNsIUhFdE9jeztIe2xKeH0oQ3wqbHZQUStS
QWNWYD44YjA0YzM3T21xVXc7IztHPCoKekBuekBkVmA7NyZeJCllIUJ9Y2Q1dGw8bkYoPz91TSN8
YCo1cElLZSFERVVsNS0mOU09c18zWW5ALVAoY3p5UFF+CnpUVTNJM2JrJXo8Knc7OVYob1F2dF4y
SGBrQkFXOz0yb0E8TDE8cVZJSyhae0hrQDUmRSZfMm1TK3x9Kz9nQEZCdQp6SytlPU9XZzwpZT9S
TztsbE53MDA+MHtnKFE+NV83SF5AYkVKaTc7ZlE0QiROR1plckgjQWUxIzhXRFRIYGlCJikKekM2
RXQzQllZI21jSnhoJiliMkNee2FMcX5wc0ZOKVExU3VjQ2FCYUJVciU1UFlYe34tcXtLR0VoKSo7
bjs/NzVrCno9aHElaV5JfXJkO3otI1l5SWA4LU9mTXBXejVrZ0pFMzxYN3B0ajBkbVBrNVVyRWYl
blZEJTxHaWl3NHdWaCFLMAp6Rmp5LVZBbnBPRkpJRG09anFxYWhQMFdhbTw5cXY0VU1JYXp4OEo8
WUp6PkkhM2VhbjY9VVppIUJ4RzdpKFlCaz8KejAySE03d1MwKVduaXtkV2JRTVJ0ZC1BKV9BeiF0
PkY7SXdXZn4hKiktQXo0fXlyeU5reiY5KXc+RWxBODBPY2A2CnpIbyM5SCFZMypReDluQEpuKSF3
NkdeaGI7ZV9uOHpwSXlYQ05gSkZrUGMpXlE/Mk1zTE5GaE1ncmNaSS08IzFuZQp6akg7S0ZmPzRl
QVQ5PHQ8aVVTQzVCc0YtPCRxK0hAQGolWWs+bVFafVpmSExHQSNkJXM7U1pLNHAwRndaVDJTXnsK
elEyQkcxeEpzYks2P3lySFRqSml8NUMwdT0hfHIhPyo0RkwleSUzcSMoZCtlPmJfMkk5ISppSSEz
MH00MklhMGJxCnpVZmBaP0xHU0V2dHo4c2BgVGc1b19DUChGYlIwWCRGbEUweUNuQjdzdTxtY0w+
RFBtSTI9eU9nXioyI2NZOW9gWAp6O05ZLTNWQkhaam5WY0dTKXtHWjk4e2UrbDxYfGY0JVMqK3g1
MjZTRTFtSiU2TTxOdCohfWN6RVFmez9IMVUwYnIKel5ZN2NYTnhIQD1WZV4jajNIQEJQVT5xfk8k
dTZwRWNnZDBDcm5Jc1dmZk4xTWJDWkRIPDdjXmh2K1owVWNmMHt3CnpTemlecUt1VUhEOURncDBF
QUdnQEAkenIzMmRReD5OPXdzYE1FU0VzbXpnVDImTDs/TVNUbyZreSYhLUpSM2d+MQp6UEdUdDUx
NVgpd3IrQngoRzlsV2Q7QFkzXlZsfTUwV2ImNi1UaXk7SFBTMGRyRmByQ31xWXEyMks0KUcjQW9E
MFgKell3JEUrQnpAWnJeNTBNQXd1QCQ/JWY5JHI0V0hIPyoyfDY3JkZYRmhYQnJWRkdtZyk2P2gz
Xi0xP3Q7VXpIMCpJCnpOVmY5d1FMTkxuRzJAcT42Q0dtPiZ5fGxDYGlDRmZZZH05aSUreGtsXjVv
Qko/PDthbmVDZmNIcUpoN1lsNXVMUwp6OUZ4LShrTWRjTnlaZWpYaDIyTnttQ3dfclgxTyFjT0Um
Mz5lKFpIODFQUjk1d1FDMzdFbjRPe3c7ezNxOW4xPEEKelBDeztIUkQzI0EhQExrKStrIX5vblEw
fC1VJSN1R2QkJkw/WmhOQyZSKVYobWJgTmhVcXJZeXNvTVE7WilzcSF5CnpXX1d3ViErak8qbkdU
OC1IeF9KVm1GS149PnQmO3ApRCUmWiVOdyRnU1BhIW56OFNsaDc9a28yYW0pWEFSd09Xdwp6cHN6
MH5LIXN7KGRNJE5CPShBPWtrcD5UKCp5VTY8X2R3SXg+Y0g0K0xXbDI4MmhYYTYtRVVxPlIzdD9H
MjYyMzwKeipSd1ROJS1mZ0JtRHtmdSplak5uKTFAS0c/U2c8YnczaFF+akNQOV9kTHAjSjlGaSNu
WDN3R3Y8Y0x3UTs4eDBgCnpBPCVwQSVFMFM7PDVGSmh3OGUjP24mSUE1ZzE5RnYhdjdZQyVHeHFk
PHgxPStoaHQxdD4qOHozaFl0a1FKUWpCNgp6UXx4PndBPW8kPU8pK25MbWdUWFczPGc+XzZkaUE7
YjRFWXsqaTxIeFgyUX5QQXxSLXRKPVYxfjRLTzNoN0h+Q0cKenRORkwjSj1hQDRRNUs3T2d2ai0r
M05fSUpVamN9eDM0fWE3QGJERTMhKUtqNHM3TUU8dilgeVAke1Z+R19KQDZsCnpweyZpKUNHeHgx
KVhgbG53Y30jZztnPChyQTEjN0V6OEBKfXR1TUQzYkJ7V2lmYmV+TFdUMHpZTmpnYl9xbnwrRwp6
MlRDRFp3MXJWfHdQeEB+LUg4PDReTUd4ZlIwYUxxK19rK3tKVDxtY2t4V0xzdypKJUclWUgwPipS
JTZkTzJFTWcKekA2Zz9NM3JwYm5mQkBoT2RVZWI5PE9Ee1p0JlReN3A+Nj1+ST9PSUEzQEJXQUdt
VHdpUXt4NUNxcTw4YzEwTCFQCnpkQFFrXkJzZVRYJSRRN15zfTVuJUhCfClnS3h9SCRkOFNiJGJC
bnE5LUFnbFQyZEdSMigrSTtfZkx8UjRwJG9kSgp6bGxmYjBOcUkpNz1een5xQW0xVnsoUGtweFhz
USM0Kk5IOXlZWmBWZkApPyN1ZUdndENtR0dZfDlVI3Z8aFJkZy0KelElMCNjR0lmWENke1kpSkJ+
cXlrTztLUHZIdXw1Q2smKEhuJURGfmNjdEB9ais4N3hoczJldztmTG01IzIrbWJ8Cno4ezllKllJ
KHV8Z3R8e3gxRytVPURBM3kpOXMydzdAY3ZRKCRaSklBKXgkZX41XzNMPHI9dn5AP2FaKzY0MkAh
Mwp6Jm5UcHA4cF5yUkBJRXNxYHVoemZEJmk+S0ZWfkFTY2k4V31qRiZWZUpvUERVeShCQj5FeEpw
Y2s7JTshYDBBQW8KekFjSGdjblQ4JU9YJlVXX258JXsyQnw8NldwMk1NR3ZkNWBUMktLdjtsdHRf
fkgrdzAweDYrU2xBRGB7SzQhOXp4CnoqMT9FcFElTHdpaWspezNuey0rWU5yVDtmSF9uaURfTmc5
fDU4QG04UnNLRlZGITZwa0BxeGF7QkgtJjh0c2ltMAp6ZEFRKEd5Q145YW5lN19LVyojXnZNSW9l
UWRwSnFtUHAlJXB4M0dJZnRid0VTdSMrdlB5SSpZVHVKNis0YHp7cz8KenBrdn4weDRjX1BGSGAt
dHFhZnc1KT40QXVRNzhTa1ohJDh9SU5MSztFZ3I7MnRTMThoRU81PXQ7UURtWi1xdT9JCnpHKz1E
TmBuUjcyWHRve3tiSnB8fGBrfS0yRzs1I3hnOEV+eGd6MjIpXl9aOz1LfDRAKEUmNUopU1kyb2Y9
b2xjdwp6NSlATClfTnRjbSEqNW5FeTBNOXYwYFMzMztwTzRUPG12JTBSeDY/YzJIflRBJXpPT15U
MiRARDxDdXQze2FlfXwKekFUQFV6Yz5OOz40KForPGo1ajJEUSpyO1V8NmE7WWZQMWpTVCRJM21T
bjNhTm4hPzw9Qi1Ya3pHP2hRSDtAYnUlCnptRllERGdiQyVXdHs2TEJycyU4OEx9ZGVGOXBzZX1k
bUlwNGxtcEBUaXI5cSlKS0VTYT1oPjE5cF8wPnUjZS12RQp6WENVKDZnQXZ1fkk3Q3coeGQlMGU1
OU1OTHdeVTM3WkRic0JyaiVlRENleHc4YTNHYG5UY1hWTkw2e0I3SGpAaSYKemJWQns7QXBFdEhr
NzZxMDhESjQ4ZFN4ZCRDKDskSzY9RnBVPH5sOXBWb1Q5YXJXXlZ1eyVCY240YGVJcGtPVkN8Cnok
KUFLWUdfYHlwTXswQEJVYjNeOWxxaV9jP09OSHw0VUpNSldEb3dNVmphY3ljWDd9OWc9e083c3dP
Qit7Oys/Owp6akJvITk/K25kKWllI3g1SWJGVy16Qk9vMGM0cUA5d0dWdDU7cE50YD0tflpnY3cj
KmBtKCQ2aWJ4dFpgSD1lPX0KekYjR1p+NSQlQVVufTs4VSN0UmVtMEooSlRSfTxxaWl9d3htVXpW
d1ZJZzIkdUUyO0dOe2hoVCZHRTFpO19maShfCno5S0tYUClkczFRKVhuVWhyP3VYTy1IYktFJTVm
JSstQz5kNHZSKGRnSzJNTH5sWnNQaGF5SjJoMSVzRDRGVnN0fAp6S0YpK0BgaU56TFJqZzQ9SzhA
KiowPTVjRT4lP0ZEYyh7SV4rZzlVU2s8OCQmXnFEfkAlVzBpNGJ8eU1HKnA0YE4Kemh9SSFsdFRS
SThFeCQrQFZ7MDJCciV4cSNPP1VsaE97cjhXc2FablpDWnEwTUs5JUFYVSVNRExUOzM9MEE5KEJW
Cno5Vnh4eEpkN2pvJGh3M3E7M28/eUJMbUE9YXpCVXJkOT4tPF9BTnMwbjM/LUljKjYmeXRiQEh+
PzBFKCpkPlQ1bgp6LUhpSDJqc0RmNnVXaElEJSNuPlN6T3FyRkNQRGZVY3U1UVBkPzwoPXc2cHYx
QkUjbnN4U3tuIVVuQzlxQWhhMTwKejszY3BaOUEtZSQrWSklYjt3QCEhWVJBOXAlS2Y5SUhHR2de
eytwYG1oO3E4aTd9JmVAVjNFUWFNc0l0RU1TJj1YCnBsVEAkO2swV2NCX2piO2NuJV9JZHo0SE8k
UVUqYWJmNH0rd2k/ZTk2Tj5mYnF7e2l8VzBAKGxuCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1pY29uc18yMjhlZjFfMjU2eDI0MC5wbmcgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGln
aHRuZXNzL2ltYWdlcy91aS1pY29uc18yMjhlZjFfMjU2eDI0MC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY0
MWEzNzFhZmEwZmJiMDhiYTU5OWRjN2RkZjE0YjliZmMzYzg0ZgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgNDM2OQp6Y21kXj9gOE8yKV9zM15waE9yR31VbmZpVUVuOCg5UVcxP01Oa3hYVkRFcEZp
bjJ7eFdyTHg1a0JDO2t+R208cVMKemxDakw3aThSS31Vfkojc0A2WSUxUzl+N2xiPyR4TFUreXtn
b19vKmhgQVY9c3BYWSohIVQ8bU9teFp+UjlSTDlRCnpkaitocmYmV15QI2Y5QyFacHBeVns7WHsz
PUtzenlMMXhiV0VnVChhaHJSPzVoTSE8enZ1UyZucjZ6NmZpQEo+dwp6PEA/SHNHIVFnM3phVist
eFEzbGR0YWQhVTw2aUd6X2VuR0gqMmFrUF9yKW8xRCY4cF41TSk8aTVLdm03K3crMWQKeiYqfEtB
TSY2TjY/JW98WEtMN3hEVmxCKX0+X2M4SUlqNld5KjdISm8mQ0JMdW9+bmo+KDYzcFp6TyhWdl5a
dUIzCnpNWWlnamt3QTtGRXl8R30xanBpTWo2fE5UbTdVeWl3PUBGREUqblg8PmpSIVdAOVhJeWYl
JEZkKko1KkQwWjBMbQp6OX1aUXh5VHx4NWZ0Tnk/Vj5FYkp6LUs+YlY5Z3M5UmFYVVA8Xj07ZT8m
RnF4ajs2e2llUi1hLUBIPEpfNEdpV1oKemFWdShLQGFKY2ZedzxqOFZBKmlSM3tFOG57bTR6NVRh
PSQlclhrZ1FPNnYjfUwpb3luVnlHRUU9XzUxLXo2NT9ICnpEZ0dBODFhd31nWGBOZ0Y0PnljQTFL
TUtocWw4R09tY3g8SHA4UUtxY2YqPndaP18tKDNoTUteXmEqKGdhRnZCSAp6aUlDIWZnSDQkVypO
YktJYVkmVD8lJjEzYGBLYkRAUy0wYHhRJXYzVFYrQiE7UkM3TyErMWE5UUNBJEhAM3RSO2sKeilT
U29SNyhzNClme3pNfWVXZ0ZOeyhaSDVkMU99bClmJHJ1VCEpUSZOSW1YeVpzVHpPZjlUd2N0Y1Nm
citNKWFKCno1b3RPKyRqdm0tUDQpeWtIKXh8Y081eGViPj8hYHFHdyQoPiZheHFMTDZ5b0Ike3Zz
TVhnTF8tYnpAMkpfdFM5Mgp6ZHZaRy0rdktsQEs0VnIoPFg4RDdGbTUlZXVyRSM8WVA8MVlMQUhi
ISFFfnhDeklNSTY4eCU9WWgtdyRMNi12QjsKeiFjI1oyXyRMZ1BVO1BvM2omKGN3cjZjS2hoRj1W
SUxGITN2WVF2Zk12TFl0VnshaXIhTlV0U3xzaGpubTJLbCt2Cno5TSpvPD5FTHtXUXRAWitFYS1o
eFgwfW5UU1p4bnBpXiNLbjhPeDhGZ0lTfGhjfUtKUTR0bSpITzE2dWl7KE85fQp6MVlOKUdqaVF0
NmZHcWBDaiteYHpVZj84aGteKFR7e2NPUUdXRlA5OGFtfWlzMjhBITUle1IjRU52OGZDTiFqNjkK
emw8dlRYbWB4I0FqM3BSfjUkIXR3OHg2SEpCVDt2ZXFsSSgoZTNsNWYxSjBYUWZVaV45XnxmPyk4
cHAwMislc0FYCnpyM1FTRUFnaGpGeT9rVHkyYn1ZfjVWWXFzNUdzU28jcEZMbDspMF56KzZQKmA7
VDVNdSZXTHY9YnpJOVFAOUshIwp6eDNuZTV7a1R1eDNMI2IhKHQzT1RmcG1ZMD8oNzZucVQ3eFdD
M0NuYGhVMWYxaFpqeGIlQ3htUENhZkpUemVjYm8KemhESHpFZER6JHZTOVU+TUVLKDJ6P3xCWT1K
ZSRYRDltQi1La2VtKihkLWpeOWokMiM2ciREej9zKS1UQ0RDR0NzCno4PjZQdmp7WStZSWVGQUBx
WTIyViQpYXd5QHEhOUE0cmdrNWI5VGNDO3M5SWdeR3w2bkRQKzU9RnpnJj8oTD12Ywp6Q2JHZD5m
U3V+QDYhOTR0ZCtvI2RAc2lkPGM0X14+IUVJPD83UUJpNnQ9JGJmI2d7OFJVQ2o+WCRyeDcqY2F3
ZTYKemBkU2NKKyRIc3NkT2pFKU8jWWJzNTZ2bS1GUSQ3eXVKSkReWnFrJWhNYUlnQUo8MnliX01G
UXRlX2k7NjJTY1QkCnpwamlmWXlSX0U9clErPkgpcG1sci1VZHpnKi0hfHNzdyhEN3dKdkMrU2Y4
YmI5OztxOCN6PzBwISFic2R7d3l8NQp6cEJhTUhFLVZlPmkjTExqSFJhTUx0cCU5JihIQ25nN1N3
OTZqVnYhIzBrJT9GXks3Jj1UKW1uWW4pRDkoaTs0eDUKel5OSlRKd3F+cHY7a0hAI2VqVGQqNDh+
KEoocjZqMzR8bWBoOWZFRGowaW0pfislSTVYcGhXeW1oVDtfWnR5fFEmCnp6alBnIy11ZkFIWjxv
bWY1I3trbE9DPVVLY3h4dyo/eF5yS3d3b1o3d3ozQDhla3UpZ2dMTlJuPDxLSWRhakgjSAp6ZUEp
VD1TZWgkR3tYO0V3JDxaeDFZZEZLbF5idUZtYVJkSSVYSTlyYU48TEgySGBTN3xEbXY8P0pQZF85
RmFScGgKejdNMCowVUc8JnxfQkdDO3Z7VEtaZTZoKXMkUkAlSWZgYyhtZml1PylrU3EmbHEmeHgo
dmBfTDdjZVEmfUF6KihaCnprVFckK25hSStBYHlHaz9xeWBkZ2BXU2J7NmUmRk40Ulg7TyYrZnJy
NmhqYyszPFlva3Y2KnBgTSNTRSl7dmt6Ywp6M0ZMIyUyO1lkWDllcTxHd0w0OGZmN1khZ3M0QkBI
bHpjJEEyYGFWMypBdGsrK0pYNUhEWTRCazt1QjRZeGJ1PFgKemBMJjFCeXFNSXFJOHRgVUV8X0xI
KH5GMjs/fCl7KiU1MHIxc0k5Vj1DNmJPLT1eSyRDU2lPbWxWcXpodlNpPzZnCno0QXpQVGg8aVps
NGwpNklCZko9VzZFa0F0X30+MU0qR2Njdz9LZnw4UG5odGIwYCF7TmBCcXNhMzdKKz53QyQhZQp6
MDBrKzJFZ3p6O3JiY1dvVUIlSnZwOFcxfSRYRCVlMz40eTs7T1oxY2NULU8jdVc2WXNAQ31QYWBu
WnJOS3pSKDIKejRlJTMpQFFJNFNFJkUhbFdgNXkxNFFoYmVwQkclX1hCVi1PKCU8YVg2SFZ6Uko3
ZWUqUVYzQUI9fkxXeUlveXtWCnpxdn5hKVU+NXRqKUA5I3w7c0MtTU5ldiF6R0RIa31KZHBHQ2Bp
SkYjOD04LVAkWG9rdV89RHclQ3Yze1U3TD5nZgp6UlE/PCR0YGNaKk1QNUdRbWJteCMhKyohenU+
ME1ld1JPOUdGR1N7Yl5tX2ZKLU4wP2pARXFvRmY+JGtoaitFfEAKejdyM1dlJl50Ul5ZWnJ4S2Uq
ZDxZSnk0Ryg5bWheR094WjhiaTNuI1l0b3N7bWB0eyUpTGo4d1d7WXtqVitRXzZUCnpJNV9NTVNh
LXhzQ1p+cC1IUkRDaiM8IzBCSWhhY05APjIyYWdYcUNPMGw0NCZrcUN2e3UpVHwobHZgflBLQER2
RQp6e1FJX1RsQ0g1eipnUiE+TE8pazY3e15SK3ZXeDI0VTJeMk9EWHB3VDs2eSs2KyQ1bSlfKnc0
V1kmI2RvOWRDZUUKeik+cCtZa2RocSgkRGhtTWlhWVhleSFATiVMMjZ1eigkYUohUVR7Ql5XdX1V
JF45ZSM1KT1jK1hGOUBJbGw/Wm1NCnpsTmdIaXoqOSF2RGMmdXhPbztaVnhiYFEhU2swKmduZnhX
em1iWmg0KD0lQ0QlcVA/MD0pO24kJnphV18kVUtWOQp6OGF4ZGNOI0F5WntQKXdqP1Z7UH12TSlZ
WSE+NkB9Xj5VK2l2JGA5Pm5NVENQak4+eiV5RiYzeWYlPitUQDB2aDQKemxDOFhhNnplbz8lPW8z
fU04e2FlYkxIY097XjFBcjhxaU09R3F1Zj9KbylxNWAtKz9zVXBnP1FYeUVVcFdTbStuCnokSy1V
eXFrSTxSPyozd1RWZldFfjxAMjx1Uz8tTVZsMTtqekFBOCppTDR4c2k/Yj9CTmk8VVhnWkFoJHQy
ZVgyTwp6bGFTalA2YHV+KEZmV0FId2pkSUNXP0JpfCpZQiQ0LVl0LWUrdXJEeG03czBDLU5SZVQ9
JnhIWT1OTGs5XjwpS18KejhRdmM4YTlAUmNyaHtVfGpSamotPEB4WEpkZkRoQ0hBVTNxQGBmeFY3
REZ8WVpeckg9aDlKI00tMTdnTzYkIzhFCno9PEFDTFBAeCl7VVE2OCZgbUVWWHFgP0N4Yn4lO0pK
PHhRdkl4c2V5KEJacSYhTHVyMV9uVmd6NiR3JGxLXiZqegp6Xj15cTVeWSoyMzxAVzBaX0tLekRi
Wkxsa3lDNUo5dD53SExxdXJ1fm8oT0YpaGh6JFkqfFg+Wklic3dueFJ2cn4KejI9cmRPR1Z1RHx4
UmxwQVpFPDAhWDFGKCVBbnBsXkBWXkQzdmJNfXF4ZXxOSTtUVGlaeTcoSU07UjY5UmtBPmEmCno2
Z3dZRTJzUkV6UV9MSG1XcUIrb2dNayhmTWFTRmVvRHEtIUhrRkJfblh0NSsybmNGdWs5QlFMMUkm
b0IxelppKQp6WVd7Nl8mLUlwMWwqT1ZSQSMjMUlMUVM7NVJ7LUteMHdHVGlKYlZTaUBMQV4kRCQ7
QEo+Xkd7NkAmKyU0e2IzKHMKekN+TEVIaVR2KDBiI3p4dD9ZSjByX35wVVpNfm1RKD8/KG4jPiZ0
RCUrQG5xPUFiajUqOFIhflVsMWBHfj1xRko0CnpmbHxtOFpEQ1lndHJgNExjT3BnaUpZWDlxUlk1
O0RjV3RpflBtUyRWQiRFLVp0XmY0KXZMRE9lXzNYVHE1XnlsVwp6SjlQS20hVi04c0FPSlhuVWZ1
Rk5JZjBSOXRLLXBOczJoTzA0enI2MjB9NUIoT2s+eUIpT2YtM3NQNTlxZlFOYm0KekE0e3chMkBj
QjtHYlIofnN6VnJiTyUodz01UyFYYG9Ab0B4Kyt3Yk5fdE1QVDBWPFFoR3tVZUo7OCh7JT16e0wq
CnpXZDBVZ1FsMWZOSSFIJFkkaFhLI3czIUd2big3NE5iKXQqRm51Y0FBZTE7YFotLUIwM0NIeUIj
MmdxfWc7cXN+SQp6bHU7XjxPeCs8ai07X201aUJ4SnNReHVxdmpzN1FPV01wb3RhPDApOS1WdjtY
SGIldz0+YykqSTtGZ3NiZl4qZzAKejJEaT9IVEFwd0txMytZd2ZOc3FkM2lQJXtoeUsxaXl1Vlpj
QCowdE9fMytOMCNHRnN6PjhNamVKMlVKJUwhJWhpCnpHWVlBdGhIYEUreXdBKnV7KGVKPWlhM2gq
JWs/Nzc5cmstSzwwVlpBUGtsO1RGVWJtZWl8JGZxV084IV96SXZxdAp6JGx5JFZybEg0Nm5ucFh+
WDVZazBpQkpsOz1XdUE0Pn5YNC1mJksweVdmNDJoJjBiMzB0QE5ZWCQ3ZWdRMUZwIWEKemJ1aS1E
NmNXQ1dWJnxSMUNZQEc4KHFPbVdqV2VYM2VYN1VnZ1pQR2ltQX1zb091UWRYZTR1WiMyPjV6Tj5x
bEkwCno5eGt9bEU9dE5wWDFtNipuRnIyRVEzeHM3OSFec0NsZERKWUUkbShxWXYzcTc+fTFSNz9p
Wlc3PiR+KiV6S2FDfAp6PSROP01FJD4jKyVUJk1aQ2BkVzF3VWw2WilKZ3lDbn5WJUsmaTBIfGl3
RSUkPnhzWlczdFRmWnhJVWU8eEFqJjQKejRIejQre19TVDBueW0tTG9IaE1+ZSgxMTAmRCFVX3Aj
SW5eVkxJbntKIVkjeiY8PlBjaUBwO2NSdXxkPUl0SXdGCnoxY2xWSHl7aEg/QFNEfChaZnFpXjBE
UTFoY3pITjd4cTg1aClyelFxTEhNWDJeSWt1SzdGQiFrSTQwcyR8Q1k3fgp6Tlhee19Vak44fUwl
TWVkO3wrPTRSTlRNb3puOEtUOzJ0Yjc3YlVQQ21pb2grclpCZklpTTZmX1AzNGNRX19vMUcKeldx
UXAzVkx+fnBFNT9xT0RmJWlpUVEzZjQyWUZAMDl0USokPHY9KlRCNmd2e2p5ODc5ZEE2aU5zTns1
RUAhKGs0Cno4SGhhaVVfXkJ+NCQraUg/bV5BckwlQTUqRWZvXyU4eVNiM0RKMisoJCNpSGk5TE9t
RG1NRjcqNU4zbjImRSFIRwp6b2xya0kyIUhNNXFuT0hnMjNRMSZVZkReYGlGQ3psZzspYFR4bFJr
WSppIVY5PjR2X0VLVXg7dDFLQ1BDQnRncWcKekArVG47TylhMHVreV8lam0rV2pOQj89flZ5SD5W
I0whKj1sKkBPUzZTVnl0X1VFSCZOQT0/VjJzdEhQeUtrVk55Cno8Sio3M0o0M1VjQjNiSDFQTTJA
SVp3O0UwLVByKDI/RV95JWMpNHtmSShXWXJvPiZqZzwjY2pyb3MpeyNqaSlkSwp6JSlXZTBMXzQ3
OD1IWjgtQHhud3NLcldzOCl4YE1COyhZYENtdTJjLSZTSCh2Ti1GKCplYGw/YyUrbCR8eV9BSkoK
emhjREdud0x2TitidTtfc1h8MTxtSClHQVBhLTR9e2NVV1klWT9uV3ImKG1aMHF+YThyKylWJnIh
UWZAaTMtd1p+CnprMjlmfUs0TXY1Nj5BaWVQaDxMe2ZVVXlQSWBKMWo5PEhDfnckPURuQnJ8dmBl
UCQ1S2EkMEFNb3J6OGt3ajw2Ugp6cUlGMFg+eEB1JiVQJGhmKnhFK089fkQ/XyhfS0dXUSExNThZ
TC15OSQqNm1tUG87UnAqRGw1bG0tbVZNMmlgaC0Kek1Abnh2NTkwX3R2TXdQRF97bD1iJGlPbXwr
fFN7RDkmUCV6ZVQkR2dYNkFrbC10ZlVGPnRMQExkIUIme3BOMzl0CnpIPjNWaHFrcn0yWXVsK2pi
N1Vpb3VXVkdQTnN4WDdVZWJhKzl8fmR6P2QqUU0kbmcwRFpmTzBgN2ZBeT8yeU1tfAp6Y25SelVo
WiZJY3dnakg5Y3VVIXcrVlN0WWF7cCopNElnQmZ8RTgpc3FNWXRCMktIX31TZnNGcShjOWkoUTZT
M1UKb0JvJURJPEgqfE95YEElPD1KJD9xP3xndWBsdEdacS0+Kkt2O3c7KiUoaTlXQGV7ezVDPWx9
byEKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3Vp
LWljb25zX2VmOGMwOF8yNTZ4MjQwLnBuZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2Nzcy91aS1saWdodG5lc3MvaW1hZ2VzL3VpLWljb25zX2VmOGMw
OF8yNTZ4MjQwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NWU2M2U5ZjYwNGNlMDQyZDU5ZWIwNmE4NDI4ZWVi
N2NiNzg5NmM5CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MzY5CnpjbWReP2A4TzIpX3MzXnBo
T3JHfVVuZmlVRW44KDlRVzE/TU5reFhWREVwRmluMnt4V3JMeDVrQkM7a35HbTxxUwp6bENqTDdp
OFJLfVV+SiNzQDZZJTFTOX43bGI/JHhMVSt5e2dvX28qaGBBVj1zcFhZKiEhVDxtT214Wn5SOVJM
OVEKemRqK2hyZiZXXlAjZjlDIVpwcF5We3d6SX1eTUJgRG0rc0h7VFIxdzw0dCl0QTNfcm9iWDRD
ZENPSEpDfDdqK3ZXCnolSi1FTVgmYDg3ZW5JbHVhU2MwX1NuWVV4JEd6VWM/dnJOWHQmSWBvP343
QzNSSj5DLUFqcSEzQWZVOER4OTBeXwp6cDN9TUtqSnpZQytgVCgmZWdGWFEjOUVreypvVkFhYSF6
clp0bWxSRm53UVBSSlhIPCVwa0syKmVQYHBUPWx3RDcKemlmcSs0QllfclVUYStVfDIjJj9pNz5Q
VnZEPzdSNFpmT0xQVHtlPHoqOVNhJS1xK0paMGB1RkB1Zl51UjArMGVBCnpLT0N4WGNhUU9CMHh5
TCYkN3R9ZGZYe3g9ej93SElzOyZ5byVuSnJgK3taMlg5OEh5M2B0bSR1O2RoZDw4eUwoLQp6OyNT
bmU7THB6ez45R35HIUxzM3M4SnRRRWBqTU05dzx0ZmtPaGM7cWwtM2F7aE8lTEMjWldWVChubnx2
ZDxwelkKelF2NUJGM0Z5Mn4oPmwyVjkmUStLMkRIVzBNK3VRbUVyJW5ZSl43Y0s/dUlwVS0pPXdu
NzFaWi09QGFyMDszXkFZCno1K1RJezJiKGUldHsyUFo8QiV4KG5OZzE+XkhLRip2dUArWHI8bDZ3
I3xva3hzcGZ0ZHYkSTlyTl9HUSk3cXwqOAp6czV5X3JGQG9JcTFSb1VgYCR+VWt7cmhWQl4ybl84
dDJISlN4REZmbGtiMnpaK3tXU2x8SW9QP1NyMj1Ndl90cGIKekJocXd1a2VnfHVvOXFkOFpxUDw/
bCl8JTwqO0QrSlhXWmklb249R2hmLTAzTWxzejhoKFErYHY+JkJBY0AyQkM0CnpfdkNnd3cjaT0p
ZWE1Vm8kZ2xFRVZCQmdfVlBCaiEpT08+KWZAfSNkZzZVTE9lQz5MQkh6PDsqNVk7WWZFMGxOeAp6
Z3tOKzRAbE9+b3p4cEY2OXFWQFZPR25jMjQ4SXVhZzRDMVQpUF4oaFdrcFAhe2ghSmVrWH1tXlEj
YjJCNGYxb1QKeklqc0d6KTR9LSRyUSotdFM8dzVZJXh0NHZ2RHpOSTdMak5ER0x8MVQyZVVAMkB7
VlRwOXJVdVpseCFEMntyVUp7CnozQSVwVzgkfkRDMGIyXlA5NT93Ynl1ZUIxQm40bz9gYExuWCRV
ZjlGPEM7fU40R0xkQW57U1pTbFQ3X1BsQ3MwSQp6REJYYiVGYEdpTDcpdmt8QmllVFdIWDNTY014
eVFfTStAaW5gNzlBfDJiPyNyMEFIdUg+dWMlcUc+JTw0eE0jRSYKek4pN2xSS35eMlZkaWxvWTQ+
OyN9QSF5SE9BWEVtRWleK2VBIzA1cGF3R1hzPiF6KWdTb0R1SSM+YlJDcS1xakplCnpaKXI9QWAq
RU1YNispfmVyMWtkdjFMXikwLVBzQUVNN0pGJE82Rzg+NDk2JDI0bGtPPG0xJTJwT2p0V3dldk0j
Rgp6NDI+U1JeUlRmVXVJeiVpU2ZuNWItdCEjI2NzN3NRSSk7Z2RBdnFtbl92fCVJOWs7ZkNQbDBa
KVIxK2hOUU9OSk4KekglM2pUOXNPcSphYExGKk1pWT16bFNTUVo7e19GTDlNMDdBPUluK08hfndS
fT1iekdFUXBrMiFWYzBwKXFLQUg/CnpPa3soJTA2VyMpRGRJQ1FfUyVRQDwwWSshPzklIyRnV0ol
KUVPLTxCVGV9LX1pWjU0c3h8JHUlbFFGSXM/azQtQgp6XnxjX2R4SiY5TV4/V2NxbkVXeU1BRFVD
dlVyaElhVDtwRi0rQHZZMWlqMCpKZHo1Yz4+XllaUHs8YG9CNH45eGgKekw5LTAqYzRAQiNPMnls
WXNfZ2BLeSR6Yn52IU1gTlJhTU5GWUYqR3N1fDcpPUp5eU1IakZDPUhoR1VFQHthSXxCCnpKfklU
WFUwNTIlN2pGYjVZcyNmaFNfPzRrcWM3SDBFVTQ5QjgoQ2hnMCZKelU9R2thI3hPejEpSDBkNG03
Wm5SQQp6PU1edGRZfFU2VCFmbXRle1c/X3I4SH5xZHF8cXs1QU1VXzJJdDFJNDE0M25+eEw/NCZL
I0JPQjQ4PHcqVGVxbGwKemY5WDBmejRiSFotWSR+fEJGZns5bVAjeWVAWVlUcS1CSUNmWSZTdERa
RGwjR3tadHowMkoxa0MlYmBVXjw1WmlaCnpfX0ZpIXV7MmtYYGlFTlZsQX5MMileTFc4PV85VkI7
fEJiaiYjYk88bHpnVjNaPmw5X1JkbSEoY15DP0pVO3RGMAp6RWhAbzF5NlFhXz59I0F3WHtWWStg
Q15rTmt4aGdiMVA1Y0IwJXh1cEFYeWc5Tk89U25YckpVRT9yUWd7TGNzbisKekFaS2N0R0xmYktf
QiNeJk5ldnwwXmZCJj9ETj1hazh8MCFucDUyNExEMjU9czg0QlA4VmwoMz1qZmxOcHtYPmVACno2
MzdSaTV4eDsmSk5sK1hZSW1BfHs7WFJ+UCpzdllERVdZSjZJNSE2dU9+MnR3RkMxWlFldkI3IzN6
fihhcHhuJgp6XkpAPk1jYD5QSmFpcnt5VGA8alpyV1g7eC12NypxbUR4STNQK01nIU9DJWt3KGw7
Vk91ekN8OCNsJThUdjQoRzAKejdfMWN3NWNoITg5Yl5MYk10Q3YkQ1Q3SU9AeEE+aXVhbi1WK2kl
fEhvLXBBPDE/Vi1rXlIyUTw1O0NvJVh4bUxgCnowMTh0NFQwVFR3T153KUd4ezlPU0peOV98a2d3
WGA3JTBSdyFQT35AP3h2bmZVZWh2TjsyUmM7Xmw+M2tmYnRrMwp6OHtqN3A7UyZ7dVRsVGU5JkhU
YzM4cUAlX0tRRms8Jm57dm1yTjd5JkN6e2V0Y0UtPnJxITZITCkyRiFhYT0wJSEKek0lQndvITdU
UTV0O0BhXyNRfXNqa3tVZWJXUVo4e2NwJkhOXiQqSmZIIzhzcGtoa3tSQENWQmlQdVBAeUVodXt9
CnpzUWZ1aFRxViVyaW9BVHBFcGhNZmh5UlliVmZWV2BZd0xGWFVXbS09PT1KKGJ5TWYhNTtXXkNW
MWd+MjE5NFh4KQp6Rkt8entwbSVuLSktRFJle1FoayhkIVFhb0kqeSVXbjZoNzw2QXtpKlNvYiZC
Xnl8U3BnISZKJGBrTj56d1VKM3gKemFCJGNpdTxuU05PaW0zdVlzUVA1amMtP05heGooajwpen07
MmhvRm4wJnVfa0JNfU9AVlM1KW5EWXgxcGYqUlFSCnpgUykkeEJ3Yl5idXpBWSVnbnE3Q0ZwaW50
V0VhKTd5WDQ0bVEoOVN4ej0/a0J4ayo2cEB3NDIkKj4qMEZKS2d9VAp6dGduaClBU0Y4bmp6NT5o
Nj9mI3tjPTxRaWdWZVlicktSYWVxV29FKyVTO3RoPU0jaUJ0ZU5oJlVKeVY5RGlRMmgKekNvdlQz
ZnYxZVRRQG1TWG5HbyQhYXFVbGR2NkBwMEdXa29hRXBHPThyKVJSUm1gfHB+KFQ2MmhwRUl1PWth
LWxICnpIRnoyQGxEX1EqYFJ9SzUrZU5ke1duWC0qaEVIbmA+KllyNFdfMzQkR21WSW84T0xXamNa
SzRhMGArWXYtISp9OQp6QndLbTtEQXNBKG5ESS1gaUhAO2A9Z1ArbXtsZ0ZMSEszbSRXQD8pJmRH
aERBX1oyeE96STAkcChaSnRIJHZDeEUKemo+K2tZTkJKenMtVGxTeCF0U0h9JUk5ZlF2KW1jIUM3
WDBiS2xadjRmJn1DMytPLTRrN0E8cH0rbUtsUTRyVD1sCnpDbjJ7cERuMT5tVk98S1laOXlkUCUo
TjFedWlzVjh5O35wYHg0cUZYRD8hX095Tjk9dyhPPFYqJk19MUk+ZDZXOwp6R3JUP0c7bDJ2QE9i
NWteOHc8OXclSmJqYl58SH1QWUtvfUk8cWNVI0VRVj8oLTtDVyQzXytUaXhhSSNsRC14SlQKeihB
TzZncGg3aD95X1VLbV5qV2kmTlBgRFg+fmJvYmQhWHJUYnpwMlpwfkg4bGdKKUkzP2wmKGJEaVdm
OGdFJjZiCno+KTlHQj1JdS02JUkoKCs+PWpHUD5DekQ4YzBvV0lURlpHZ00hUTd8SnJVWXE0I15Z
KHZ1RHUtYT5PV0RhNFk0fQp6NWFfKmxXI0lMX2FWZjhMK1R5fWMmMlZvakxFSUEtO2VRSzZXbz88
S2F3WWJaISFmMytiQDRVaSF2X0x0OXQqcWsKekRSd0BUNU5zVGJya0ZRQSVrbyVHMV9MYnxpaktG
X0lVXnRlWSRfODtHaHR+dDVmSWVTOV8ha2cyQUMwTDMlREFwCnopJUBHPXA2ZX4yRDJxaXNMZ2V+
WmdfPnhBdUs+aTsxVld4M2M9IXMyO2pfKmlSSE9zYio+Ni1DPHFjajhgQD1yTwp6UH1YTVk2OFlW
MD5nY1lQK0hvPUxAWExkKmp+MmxuLTtXSGcpfGNDaXhrc0gkSz17NXJHU0RAeUIlTEl8KE5DYzgK
ejFFcjhIK1FPKX5Tfkt7Zz9uSHwyZEI4U0tzKUJ4UT8lR319bypMViFORzJtKlRtUnxwV2p+Z2A+
KUNsSkNFI0YkCnpjailmQmcoZEtPS21jJEN5fUlSbGFzbmdJUj56fmtQJldXfjljQzk1MXtBS21u
Wn5aTXNxdXA2UVFmN0owVDE7Qwp6SzkqUWQ1KihIeFc9dGx8UmZqTz5ua29XI0FVM3Q+Smt1eld4
eTQtbD94bVR2MTVfcjFYQHBAZHpeeyZqJjt7TXEKeiReMCQwcSZ5P2tiZFpoKWtaK05mWGZxTFRH
fVFeaj5xSGxVSDRWRUtgM3leLXo2WTw2Tzg4SGY0dl47fSF7dC1hCnpEV2c7em5ZdSU2ekExfkE1
fjxYTnJZSkJTOH5zbm4kaklETzx5QG1KeWR6aSVaSCRaJClRdVpheiU0NT0xbX4pfgp6NFFgell3
TElZZkxmeG1VMG98R182ekZZQDQqaCszY3o+dz88VFdEbT5meE9+aTgtSWIoXjAye2M0cFhqaERJ
XjIKelhCMUxQNGR2V3VjJVBYUXtyIWQjNj4ke3JtK004RUpNOHlmIyFIJEtwOEF4d1VYbTVgN1R1
LUokbUhlPGVEejhQCnpraW5WIU9oYj5DRz52d3wmQXk0MTV9XzF3Jio5SzgrMmQzdjFOK0BhJHw4
MjBvNHU2MFRqQHUma0khfnEyVjlYOwp6PnRNdlFESXxPJCNtK20yTyoqWkhxYF97Izgpcnk2YCY1
c34ya3tPNER1MTZGbjBQOyZfKDAhZTUlQmVsKXtuVTAKekpYfjw4VTZob0kleXh9cUdZXzFUcTdZ
S0RKKUVUT0NzJlcpVGlDcksqMSVERSp2WGRELTdod0UqTFVnamVIUk1gCnomQHBraFRpJmd0bSNL
YytRSUsrMllibjktc0ZWS05IeUlnZm9iNEhfNzd5WWgpKVJxJDdQd3wrYUQ2JnlafGtpOQp6OFpi
NnN7b0J0MUcrUGdmSWN4ZH17bUB+MW56aGU7TEgpNTshZ1M4QGRkeWFicGRCYz83SlZsP3RTKzwj
YlBTTVQKejJAMHVZZHNXTig7V3cpbi1QbEEtMHIrNjJAYllrRWFga3swc30pZkpnWVojNT1EbUlk
RXZvazdhWkpSaXt3LXx9CnprZWEmPHkjQTJgaGppfV8jdjJtN3NrbmRGZT1sVnh6JiUpRUU9cGlP
RWNKJnNPPGBfYjVeRyU8biN2enBAb2peWAp6JUppQjYhaH57R1NCeERtUX1rNzRxT3QrODQpViV+
SnFgI2klN0ppdk1lSVVAOWN9RUleSzQwbFB8NH1TOz0hQDcKekdaMTwzIUhEV345SEo/WSs9SDZL
aGpLQnJUUGh9a0habCU1USVXIW5saitjNElGTTJQRW0zQ3NBan00M281X1ZYCnpJLSExYTVkUFo5
TT1fUTA0NnEwa3l8Ujs+Nlh9WkEzYjcmdmJEYjcpdjhDdUkoK3p6U2YzeiZQMmVPclBOUD9Efgp6
PFdFOHhucCFAUUJlbGU1RldLMmxOKSR9IWNDQnBmaERJcTl2SXFaQnY1c1E8eVNRaWxMYmVyM1JU
R3BaZjdyaWEKeiM8JX41Y1pPeT9NWTdiM29HI3laLXhAUzB5UiFrNSs2VFVqQE4oLXxibnQjTEpo
Mnt9JWp4OU1Jd3V2ZTgmNj5mCnpuMEApMGg7fjVGJkJHNXY8QXNUT2ZMdUVGdEJMV00jcnA+T0ZV
IT13b1cmWlNsfm5yc3s/MXc+bldmV19kbnBUZAp6NHF2TERZSipmdD5TcCVNKF5feENacE5Cbjx2
MF9eP3kkJmkqKUQlTHBRcCQwTnlSQkx4dGpwTWcyQnQyN3dWLX0KekE3P0B7ZVo7Y0JEJUwwX3BU
X2hAMGI3Tm9iPmM2NkpYfUF8Wkw5SUVOTWBVPmBwaDdkPCtSUWlJfUBFOFkpNzBzCnpNQypfJikp
fUdsbVJ9QHt2OSpubSkyOS09cm5gUSRyY140RylHVlFIbFRyNkJwR3h0SHVVKDhBRjdGZmg1ND81
dwp6aitFWVQ5PngpUFdMLWlRQFJObTxrJTQ2X3h1MylSSmxnYmFgeFlVMCUqXzI5eXkxZ1UqMT12
Z19CO2FASmBKN1AKelpidHAxTSpyJjMqUzFyNj1FejFFVSlpV29sT1gqRnlyY3p0SmB9X2IrUyZi
aGs+VD9SK3xjQD1GT21qKTVaYTZfCnpARGtWeTRsXkw+WjMjU0lAc19lVndkM0QpPF5JdnE4YX5K
e3w0bWhPTF48N000RDgpe3V0O0dJcXFuYG9xQ2t8eApwTmg7V2EkQzAobWRwcVl6JkY+eEstdVZE
PURUNSVKemg4WlQjYVhtanI3MCUqe3tSYWNTYFl2TAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvY3NzL3VpLWxpZ2h0bmVzcy9pbWFnZXMvdWktaWNvbnNfZmZkMjdhXzI1NngyNDAucG5nIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxp
Z2h0bmVzcy9pbWFnZXMvdWktaWNvbnNfZmZkMjdhXzI1NngyNDAucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUx
MTdlZmZhM2RjYTI0ZTc5NzhjZmM1ZjhiOTY3ZjY2MWU4MTA0NGYKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDQzNjkKemNtZF4/YDhPMilfczNAcEdtTEUqYCNNPiZaYG1yX2tjd3o1TmgmZz1NY0oz
RSE7Q0UxRTByeVY1Um87Pm52dHZ0CnprJkk9PVhkO2NWR1pAPnFfeHRueHsxdTxhZDdYUC1fbV9M
bHozMU5aZGNHMkVRUmxnI1ZvKDQ4ei0/KF5aVnZ6ZQp6fDZUI0I/NFpBdlhuQTR4dVVvUlVifnc4
fjY4WFAjZSladFZlK3gkaSpgcUUyTHxgWGEqPV5lJld+PDlNXyN0bmoKeiNyVkgrQXE8N2dFR3xm
MEpGYVEzOG1FKGg+JTctRClOfDVZcU9CPmk7KGJaI282MntKMlk5Jl5EM35SXiRvK1g/Cnp3YnhB
RUliKXh3Q3dLM1RTUjRRVnltNk4xclZnUG1tdDBjYXJ5QlVjZUhQXyZ1fXs/XkpuN2YwUFQkI2g+
VURxSQp6ciFxKEYmMWpKMl8hanhkQUI8KTdIJGZvSSoyenVuY3Z1OzskU29VN2JyPUFpSkA0PUJD
NHZOTz5EU2AmVUlCPUsKejsyKTBGKnReRkJ2VmZQdVQ0RlZNU3dVdyVYa3NqeWwrOyMqRER5JT1v
Y0ZPeXpETHZMUihgekNTT3VKPT9GV1luCno1WkQhVWFvRj4tJEA9VnQ/YSY7VVFZTSRPcWUwWkI/
SmU/OFpuTXhEZSZ1enpzKnpsSGQ8biF7ZmNPeS0zdEl4Ywp6bDlHNmZVOz9APilWNThuZkpQYzhT
Xih7XzRiajVIUV9CJkVYSFdqNnd4QEI7IW1yMDRiX014KVVGTClXN2BWIWMKenBNcCNDIWEhIXNo
M2g0OTF5fV5xZmltWFZZJSErc1l1MF9EPFA9amM8NSojfDZWPHtXWkdOYDZONztUNUBCJi1PCno0
WUE7TEpjZ0hfbkI9RGQ8NmFwSXVZWF9kU1JTMn5kOX11KjBAdEF2cDM7eElVRGBRNHt2U0hlQkhM
bCN1dWo8aQp6ZHc5QW9GSmQhWVk/Qzk9LVd9MjtmbUQyVUdHfCZ+PldvSk1xcE4oRlI5TE0jamRa
e3ZKekVja2BQXjkoMU49NEoKemE5JXU0JDJKOFRBa1VhSmtfRlglaUh1diNzdkxfbU1tcHtTUn1p
ZmMjWmNYdiVDRnNUPyo+Tl42ciglRD8xWW5VCnpBYVQ/VVpHbE9uPHlVYCVXYThZOWUoNmQlb2U+
YTZVWFhzMG0pM1lEcH1kJWhiQClAWSFsS19BJkQ2e09QbE5uagp6WVkqJGI+dm5Sekw4PUNEYlFT
aSFETDNEIVBeeGhOdHdyWUJ5bz9oLSZPdlFaWUo2a2F7UmUjPHRma3V9UGslbD4KelNjMHJ5X2Qo
SyRfUTJNe1leT35ET0soc3pET25NaV88cHdWOUhKbGolJXBiSk5SIU44ITBzMXB7VXBvYWorRVRV
CnpFSythcUwrcXc3R31hMFBMNXVZdGZRKk9SVE0pPipoX1J4JWVTUnhBJW58RnVDJj1GPTxNdnZu
QkFzKHI5X0FHegp6aiNMTGVOUi1wU3R6TiNkYDIpc3ZVS3JBUThWSGRePWI7T3BCQ3g/Ulp5a2NI
LXRiOX5xYkwkeCQoYDI8TlZ+Y2MKejR6MkJwQDt+bT13P1lZM2AxSFFzZTwwcVVybkArVW1GYWQ5
MWdUdFopc2NpYHd2azElXztNV2AmUGZ8NXRGTXU0CnpObnRVQWNPRXUleipKbn03bUYyekt6bS1w
QUo2OVYqdSprJVB6MEJ3K0A2RCRuYlghNUBGfiMhbTBEN3kyQD4pQgp6X1FzZ21qOGchR0ErTFpP
WCk8TVRabm10U1pNdlh9aU5+Nm0tSklRVTIwS0Y2YFU2cnNOe2lVPER2cjFXU0B6T3oKemwjNmNn
Nj1KNCl4PHF7ayQ2eHokZVl+WG9rVkQzeFhsTlZLcEFCb0tmOXI2Xk8hTWMtJSt6cWVjcnohSUJI
WlBrCnp3N25Kcm1VSykxcUBFOWZnXilnYHs2a0NYYGlxJWY3UG98I1dPb196c3VFKm0pQikrMjZM
LSRfUik4TXQhaF8rbQp6R0x+NWVQbHReNjA9ZT8tTVlSc1JoeURnbEA3WnVEd3pAakBPTn0xT1hv
JiU5RkZqNzlkWXE5I1BsMkowdHBacVcKem9qKV4jWUZ0P3hDbCtyNnIpYkclT3hYeEI5Ynp1bFJX
N0w0Vnd6WkF0T0QkJHdkZEpzWXVFO0xhVE1fIzxRRWtLCnpzTmo8KlJCRnB5SE82a1U/ZnA3YmB4
JH5tWFF0Q0stNSYxMUdDUElaUlJZODBzTXVlP3t2Z1NPb2xLPV4pTFp4SAp6YkFSYlJGdVYwTF9U
RGEmN2M5bz5nT1d9dmJvOXxsOFFXM2lZdzlxQ0R7b354dF5ISVU+O2RWNU1KZ2MwI3VIVEEKejxi
PzlgXkttcGMmVzRCRDk4ek9qRnQhTVd1aH1FKzxsfXx7bzZvR1RiQyFONHFpKDd2WElGTU1PblZ4
TWJmTilOCnpwZEIqTkJjfVIySH1xP35XbSVXSFd5TkIlN2xCPXJqfEIhb0l8b3MmOHpOWDImUGFP
KDczIVNpQ0c2Xy1zZXdUTwp6MVJ6Jmh4KGIxSDtQeUtye1lmbzIjX1RjbmoyU3s/XmMobzExJitn
MHBnMHlVdkthPjgwJUVlX3I7R2BHVWpzc20KeipBaHR3cFclTHk7WDRMcTFacSNacHV3enJaRSRz
UjA4N2ROe3c3UEE2fE1vIzZ3d0pQMDg1SytoNytEPk55ZVgjCnprfD9NPG9aJjtLck48TDxJKEk9
ZERAcT9jbDRJYlJGJm5kT3M8NXV3TXZnIXtUQlVEOXV8T000ZVUqfW1TVn1iZwp6IW8jNiQ3PVZO
KXhjKHB1dXM2endIWlYwT0cpP1U3UGtXI0FJbyl5ZEhxV0ZmS1FkNml4cjJYfE8kd2k3RWx0flEK
elA2djw/NjR3Z0E4dFVxVm1hPGhXP2U1OSV6SzhyWjBWWTZVP24mLTA1bVhRTFJMWXZSKiNpSEZj
JEJYemtxbEhvCno2VzlTaWZwRmpHU25SVCZqYXQ/aD8kYSFkNVFwPFolS3t2dCozdCU+Sl5FcylK
dFAtMmVOcjBFUWUqWk1gJn1PVQp6Q0QqdVNTdmlFJnB9dVh8QDFnXyV8MypyYSpNYkJWI35jc2hk
Y0ZRKGRHTG5UcWFPLTN7dT09eDE7UHAyaW0hI2AKenVaMmBUaGZBbWlTemJ8NGhgYzQ/XlpvR09G
Km9YWWNWfShnZSF2QF5ic2U/ZGFBYE1hK2JTWkxJZztwSU4xN3ZNCnpJT1lmSz1Ac19Qaj9+I2xx
blkybz9kMSRNcG9xc1lRdyVlWCVYNlk0Kl4yN3toTVdHcUlMRU1uVllVRU1XI3g3Zgp6dV5JKm56
WFFANkhKOG47PHpVTnZrLVBFanMlPFgxaW9VIzVHVyNIQT11YVRfX2RwYX1GKXdgWXE4SXNBZHRg
N1UKemArJmZ7VUF2VDlvSDhhfiNRe0lTVD9mSzRHbih6QXlMWHFJSUImfFJEQzQ8TWtHKGVXczY3
R0p5RW9nPDFAUjtwCnpxRXJtakZibCpLcj1XQEZhQGRtMmYqVVhZPTZhQThwUV5reDZHYyFzT0tf
IUJHaiVfS1goTCkwe19CTi1SRz4yNgp6b14xK0V3aSRmTiRVbnVtMShGVGI4SSNjWWdjR2tsd0lF
eHQjTWIoRD14fk9UZVpedWJKKVMteXdmZFpTP1NSQ3EKejxmNiZqaD9lcn1GZjRkS2xoK31aZ0RV
Xnhkb15ONFhHQXxRTWxaWGszNnkwX245NGooPkRtPWVVPHgrMHIrKEswCnokYGtEcjZyJE4/WHlZ
YT95KFQteTg9dEVqRkE5aF94WXZrITA7a2xxUlBoJGY+K0NDV09AOFNfbSFXe2FsVCl6agp6Wkpi
anhtNSZObzV4ZV9+SnctaTdgJkd9PXIpUE9HR2ZGcTxPOHktNkN4cX1PK2pWT1BLQ1Jqb1NvZE1e
ZmdTVjsKejIxWjB8WEk2ZVhSN2J4TVM9JDBqOytXfkJiVSoqQVQ2PyF4VDsyRF56TmBkcT4rY0Br
UWJCIylheWBjb2omQzMtCnooIyZ4VkBRM0BWSmR7cWRINGdANFpKaSZteDllQElvN0B+KG81dlRy
a1c+UUVPMVQtZ21sVFJISCszKWdjVUMwUAp6azA3cnZEbmYqN1k1Sn04IT5GXzdEXlozSW9IXnVH
SH1fYShheHtRKElydlYkb2xmM1dOJkRZPzxtZjF7I3RwKjYKemJlfnNTb1ZicjRseztAaEtkNFZV
Si0xc15qSz51WVpmdlhJKDtWdiZFQW9RdGZIPFg2QHl5O3VTTVUqfGFLWEtkCnpTNXZVPjsrNFZJ
X2E+eWgqSitDaiE/aCFRWD9PYFFYa0BARzdBamxvSmU1MUN3KnJQWFE+I3k/Ql5eRXhSUUZ1aQp6
b2xtdipDNUt8LXApe3JaaUNOYWleMEhgMShRcihIejN2JTdObm1yaVh1MnREPnhzYk4jKlIzKndz
WmhSajZMdmIKem4wQ3U9cWtDPyplNHtORl8zPV5iVGIxZiFnP0ByeUZIPG1TWDdKJUZENE8zVVol
QnlfJTszMERaSmEtSkc1aW41CnpGaGZPJHdPak9lcFA3P35kUnBoakBXVT87ekNLejZlU0FNVXdB
eFQlSk1JeUVHNzt8Z19RKzdycT42WncydHolQQp6enomb3t3YGREdjY2ITZXazl3MS1kZ2xTI1Nt
e2RveHcmaDVaOCZPTm1sQkJ0ZXtKKXB1YUR6YyFMQz09clBSUUsKelFOSDIzPy1ySW9eTVFkdDNU
ayFCQDhsI31meFZ0cmxjOFk8Pk9SYVZFKCRES2N7NzdxVl5gK2AlX0RvdHJVRD04Cno0fUw3UW5a
aTNSZ1V5KnR0ZVktPSRTcUEyQElaV2UofW1JYG56aEFUe3FDKW15I3JKc2ZvUyo8Wk5SVjJnUmxq
Pwp6KXYxQ2xfVCtxSDxWPil4Q1hqIVRrNj0zKWNyQEp3I09jTnFnUzNwZzd4fDQhQSR8dzE1WCFo
dVIqdkIzcTlZYTQKekZ7eHV6RVF6ezlZUGwoZ2tgfUdmZnV0JWpvdGdxcCRqWnZ6Uk80RXNFeGZ+
OTN2WX4wNEF4SD1sUj5SM3YzUXMyCnp5JHY0U04lZWVAS3oja0R0QVJhUURgZCFSJX0jQFQxPXY4
REFvdypyPiswZDFLU3tadEF+S010Z20pKyRKSHVtVwp6dz07QHFXayZNdUdATEt4I0szQCZXTXc/
cj1qRDJfKSgqJExta0NtNF9AfTtRWkl8U1BlOGhJQzZ4cUJ5IUxReUsKejAxX3htZk5BOVVsQlVA
S3p1Nzt6UVl4SEU+T0NBREEkZ3dhVnFtYGVOP1hRRkBOa3JvY0J9bFU0aGNDZj53cWlyCno+WWE9
UGNFIVhtI0pHOHZARzBsaiZ+KWhTY019WDU3dkd3M2c8JF5TVWxzNTNmfEJrPjVGUXdxRSZ7JXUo
ZiQhMQp6bDgrNTN2eVlaYG1FRXAmWVQ8PShrcmhLcnc/fnBTe04pP3F7MHFCUiMyWSF3NCFoV01k
amBhKEBBQHIkelZCK3UKejA2SGJAXzkoY1FfQXhiWEl8LTJ3PiNRVWhwN2s8K2B6OSsoamtofnYt
UmVuciNDOVUrJmpMNHZnNi1FJGY3QFVVCnooMWZ4Qjh7VTJ2cX1oM3JFIVorbjc9KD5EJn1AOX4z
bUpeUjV9fFdWR0AhUlNoM3J7IT5RSHdnIXQyOVlTJmppUgp6dHluX3EqazlIMGVmWjdoTypiKFdS
fEchVERZYHJvbH5PYjQmMU93ZE04a2JHamBeJH5MNWdkPGQ3WUI1WUpXQEgKejFFbDNgMUZ3Sk4j
M0RSO0xVMlh8QTFlMFdfMXthfjNHQGgmb1FvRlI0XlI4eUxzT2h2bSVgWG9nezI4WlJlc3l4Cnpx
QjZaSEsmV3U7PldZY2VXd0w9UEJ7fk5YPWN1M3Ate1M7aHFhRT9iU0h2JGcrU0E2Ynh5K1ZVM1lW
VFBEajZDTgp6S0xiXyg5Z00yWSNLVzhPTnhqSDlUb15ZKXI/cWwyY3E4K1dFNDM4dUlGJGhqZmRM
czYtOyFqdjU1akdjYzNJcGcKejt9YVQzMk5BRUdlVTtKfSZqNT0rdWA0PyV4bHdMNz9ORG4lMj17
NFdTMzl5bjNmOyZyPXx9NT1NLVkyeXJ4ZVN3Cnp2JSpQbVZ7X3sjUWsxc0Q+P00yS0RhcGJ+ejMh
RSotTFBtQ2U5cTg2RCVNR1NlOzR+fkstaktReHE2Yl45MDJfewp6JT40Rz5AWHFrOG11Uip8dkdl
NXtAN3NkczxhUmNJKCkrLWRrPjJpfGk7Z31vTWtkIW9eMD1IRyt2Y1ByY041NEEKekxHdiRQbFRl
UFJ4cH4tT1NiXyphQUNPMXFje01wZlMtZnYoQFVtUnYlVU8pY1N0O2VlQDkoUylmPnx+YndVQGVa
Cno9a1RTKnNkakxjbHdNWjxKZ3gwRV5rJHFuTXhIQmF7MF4oIW1maUEpXlpFSj0tISFaZWxjeU5+
RUY4TWJiKWk5ZQp6Xj5HIz8lVTMpYnEtdWo/QEB2an42dHEpWlN8fEp4emArZGktTTU8RmllYG11
V2wpQTd0ZnpJeUloZCVGNVBRUGgKekF4ZjhNeHl9ZXZ1PSpsdGZ+amkpcEZXbDdKPTZXOEV3eEl5
dn5+JTNufW9ifmBCYldSTGZ2QmdOSllRc2Y4ZVhmCnpiKkE9M0BHXzEtcXdBNyNmUztfeSV1RWJw
JD5TWE09aDNFTGA/cEI+VzlBO2BWMnZNKXZrJiVLRnl8VEFoI0FRQQp6Yl8/PCFIVHFZTnpQNmpy
dz9IJk9gT0MrSW59ejV7cGUxZVNeV2s2KW1Zdjs/N2E2e3ZLI2dyNWBsRCNUMlZwSWsKekxUfHlu
a1o/bnl7KzhoTDYoNEVhUSMlM09TTUREenQ+Sj09M2ZAJUxMe2B2VSQzWkBBMmE5QzNhQy1ZWTQz
ZFI+CnBJN0owbkA7YjN+YCl1YnZzcnxpVShsO0x7QSNFNkpgfWVDNHVzbi0wdVFFZiZ7MndzMW0o
bDxMCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91
aS1pY29uc19mZmZmZmZfMjU2eDI0MC5wbmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9jc3MvdWktbGlnaHRuZXNzL2ltYWdlcy91aS1pY29uc19mZmZm
ZmZfMjU2eDI0MC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJmOGY5OTJjNzI3ZGRhYTYxN2RhMjI0YTUyMmU0
NjNkZjY5MDM4NwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDM2OQp6Y21kXj9gOE8yKV9zM15w
IyU+dDxJJDUlQiooJSRSaWZBbEpEbCgpKypfVyl0ajRhdEpsYFYhNGt1fU1oaypvPWsKempBaDFY
Qjh7OyM3fjhrXmB9NigkNmAjaj5vcUojUm13VjI9PWljKnJ6N2xPdz1lYXE9SH47X3V4MjEpLUpw
Y2d3CnpkaitocmYmV15mPCVRazlacHFmIztxM241e3tQT1k7ZiF3bVRSMUFuOSg0JkkwejFMTlg1
MFFTVFYyTSU0fHk5Ywp6I3taUUlWSkt1fmFZNT9aYVpQKkdJR3FHcz1lQHE2b3xFUGhaQjNDQz9A
TG5PUks4T0B6e3s8MEt0U241PyN+T1cKenk9TDt4OFQmKiV4cUVsUztzNX5Qams3ZDJicUlhQTxk
Vyg+KXhaYm92blpkN2VYMTdXTnh4PXdgcCg4dnVsd1VaCnpse3NvfU11Uk5KeDUhOFM1RzskbzI/
QkFwUEh0KykhXiMqV3dgP3JjVkV9bWN5dVlgWDJvfHVWVXlJOW8xdDExTwp6ZW1HV1I/O2FEIzAk
dkpoaVBodn4waVhTI2lMcSE+UWQ8P0clbkpvXi1wNE5hOSEtfjlgU0N0dTVwYjVhOX4+JGAKelV7
fTx8VmI5TWQ+JDRUTWJMN0MzR1Ajcjs0V2MkfVo7Xmo7bn15YyFFM2Q7PGpwVn1QT1E3WmcjRTtO
ZSpiP31hCnpsKkMmRTZWUD5gd3J5JCFKa21KUDAlKHRJaCEhVEVUOD08R2QtNS19SiZrSj9lbSh4
TUU2QzY1R0E5JXV6KlFGZgp6NmtNN1kxfnl8WlRyWkk7eiNAPGlscmhne2khcUh+ditmZm1yPGkm
ZiN8b3BKczIyV2NeUnZaMCVKemVSN3VaVH0KenMwRlglRn0oYzVCdEkxeF9zVT4re3JoVWleNjBH
MHQySEpTeFh2LSpEZ0MoSHJKZDhgfERwM052TDV5Zz54QXZVCnpob3xmRUF+d14tSHJXJkgtSndr
cU5YMkktYkVYQlImVWhwK3kyXikxaDFJSWxOQ3pDIXYtTXpAJnomVlB6K2NsMQp6PWYmZjZZKlV+
Q2BpeG00U3kxaGwkaGcoNCVEeTticX5rN2QxPEBLJiUlTkxUYEwrQSktUVh5S1Zzd1g/b3A5MCgK
ekIjeWVGRWloQGN7T1hVOE9xfjFDRklfMzhHWG1uczMoYDtXKGkrYnNsb3ZDeDR1N2d2Sz5EckdP
dWcqP0d8MW56CnpfT1J9fFpZUzNwcS1wP3JTN0cwcWFgVE19cjVYcURUNGNWPiVReWsjOUVTfWBq
YytXd3xEY2JackY2VUc+Q2VYcAp6T1ZJVn1LMWUjejlAdHUjP1gpUmk9P3pYTUJgWDNHLV9JN0ZM
LVpxYG5iZld0WF9FTzEqIStVNnBKVy1fayYrdmsKek1kfVRIaH17KENoX3dQayhQSTR2VkJfS1Q3
NmtHeFZ5dEx4cFdnfSZiSHdgYTNHI1F6eFZASUNOYXgmQGhrMzxfCnpCaGBUcTY2R3stdEN3JFZ7
KHkwdjdsIXRwMjB+QGdkRlg8dDJ5QWY3VFpiVTRIKyZOMEQyaFpeYV82LUkoeXAkQQp6THUtNFl7
RXokZXR4IVQwS0UxRV5BQmd2LT1gUEw/V3hDeDJLYE5KOWJ0RUJ+YiE1Pmp6RmJGI2JKRTdpPlQ0
dXgKelFkckYzb3JnXndGY253JCNiUU12QFNmTjMkRnVvN0huQl9gMlpHQntacUdyPiV4UDsyXyFR
ez1OLVpoVTFjfl41CnpkdD1PTyN3bWNwa1hKeUNHP3t7Jm49UntTbj1ZdGc7PDA5Q0gpbDdUQSZ3
a3R7UTs+UnJBMklhNi1RaXhFUExyVQp6JTApTiQzTmgwP1U4MjUmPEY5P1dLMz52KCRTen0wR18o
IXYmeFNTQXpqZTR7cnVwK15XQF59QnlxT2I5NSQ8d04KeitGbEMqT1MrfGhRcVBDTExQI0d8ey1H
c3h7bCFjIyRTdlV8KjxGVWJzPkUwc2J3SyolI0dQfSE2YCUqWkBMOyZDCnozXmRFJj41JWJXQVht
UDxzTWRrXihCR2l4SnNTP2lSIyhTPHNuRytDbUtkPH4oJklGJCN+QiYpNmQybXJEdUJoLQp6YDc9
WVAjKzlYVVYofl9CaWs1dUZsI0wrTUE/OUxUPCRgKUdyaXRhbkQhQCkhZCFDSzloSFgkNk0ta3Nh
ZV5EYGoKejNPPFFLck1BcGZXOSZCVC1tZ1FvcENMR09XOyFqPz9jb2tBdnMwKkRCYHsybWl2MCFi
NTBYc1MkeUF5fnk+KlgxCnpfbX1QaXZzKnU3QDlpPnFBITU4ZkRDd2peTTwxUCh1Xm07dXJWZGxN
QD5hSWYrRTMtZDk8Vk0lcXlrIU9KVkNXaAp6UEFFUz1BNGhaSlk8UV42RTtZNlZWfnQ/PW5teXU5
SzVpKG1gT053e1hYJDQkPlpXPmZjNGNTN3c1TzNzQ21LS24Keis5NEE/VnlmU0JiOXt9ckViQ0lZ
dFhPUkpCQ3ZfX2ZuWj4/YX1lZGFBJWJQJGpJP0pecTBVS08hbWR1QThVITNiCnowQ0pfSnN9TldR
Wm9lYmFwVlVIUCVwUE9VbT8xPCl6ZDxmcTtNaEZ7aWV2RjJuXyZQaEFTTnEqJTl6bWlINlhOagp6
RXM9RWE4U1dQdXpHR2xVcCFURS04cUIpYTIzSUVzZkttP2RIJGkxcXhDVDVeTD9AXktBfXppZFBJ
I2d2OEdrLVgKenFNK19AaDdYO1Y5IzcyYSt5JkZERDFHb3FfSkw9e3RqeEJsIW4kZjNJUmYhJG1B
KC1MOyVHNFNSWjEhWG0xejJmCnpoalgtSDAxfT4lYGh6VU0tWTZnMXp8QEAzR19raW8/UzBiY2Jq
UXV4SmQ+dlUkVXl6KDQqcGVFRFNWYy1HO087JQp6OVk5NyVUcX1UUnNIK29OJTJ1KG95Qz1XPDlg
ZUAmbTtpO2pDJUw7c1AoOVJCRFFudGgzO1pNRVFORkgzR0VmMGMKelU8M1JGIWhORy12Q0Rvb1lG
U15uUGxGbnY0KEVsSTE9dk5jcjQyVEZedTx6cE5HQHBscSU8NTxXQStzTFReez0tCnoqU0thYElm
VFdiekhRbT5xNjdme01vTj57ZiY+eEE5MXI0cHo1WmMmQFBeaS05fHxgOTh2JFNpIVVAfW91Wjg4
Vwp6ZztZTD1PUTs0fVVRdGtweWR+bER7cVd5MEh8bHdKWEttZW56I0U9KjlrdCRZWCpYIXdEazdJ
VGxJVUdXbmo+YTcKejxfR1FSNzUyQEopWShVKW5jdShkPHFTNVVoe3JLZzNeVnIyYkR8PklpdDdQ
fW9CcTh4JEZQODUpJk5zdzwjck9XCno4VV94KDFKKVpnbSg4dFpYVSUrKHlZY08rWjcjWnN6UHdh
MmB5Z2lNUGF5WDlLb25kdEZNUkshN3hgOXVXTjsoZgp6ZldXPzh5T2RqO0dBM1dlMFlBVzkyZ1dp
cG4oZD56Y2JBK3ZaXzIxQjxHRTBleSpCWnZKcHE9eEhgfnR6QGd4fGMKelIxRE5HMyZhJHNwbyE7
bCpwa2tJOCEhTG5kWE5eTXM9UEU0TU5sfFBhSFVpO2J3NUY5QlUlfiQ+eEY/LXBmY1dgCnpicVk8
azhHT3BmS2dHOE5tSlFWemxoRkJ1NlIkbkJBWH43KytXTDByYUU2azcjYlBRd288MVZBYGtaO35m
VylpaAp6cVJIRWNtaCRUYEVPPFlZKkNDZEpEKnhocEhEWDMqTF9hU15GVDFBK29NbFh5JH47YyMr
NyhWPDNPMk4tZSVBdVoKejZZVWZmcUZIQlg8MGRiP0NPZ0wpcFF7YCUzV3p3aypOQSFvcl97QW5A
Zk9WTT4/PzZpZSg2TSlwQDZAV1E/VGw3CnpvS3JLRWp8eH4yeVplaGhNTGtGUlJuT0M+WEwmTCtO
O20wQntfT1E5Z3p6VFliISFKY3Q9Yms/X2hJcFk5ck93WQp6TW5yNjlSKD84RU41MnFSK2shfnFu
Q1ljLUttViYqZCQmTlk/dDVjalIpVituY01vcj1wdVRSb28/ezVkSDtAISoKejx+UnJWIStsakFO
KztReDJMcmFZJkpXbnpefHNZYlpqUCtZO3xwQyNEdUhVSCs+Rn54M1BxVGt4KT1PQUUwWDkoCnoo
QU82Z3B+QUhee25xK24pTEhZREQ4bVFOP0RERmNkIVUmZDRQYWFqelNEMX5sWHEzcHt4PV52SXRy
cTNnRF40Twp6PWhZU2A/JkMtMCZLdUFWPkp2fVQ/YmEwSWFmTCR+K2JafXAkOWx3eXl4PS11UE5g
SHB2djwpSWE+T1dIYTQrTjQKejZ6c2NyVyReWEEzMkU8aitUeX0rP01QbzVVYyFxYkdUO2A3JUd4
P2w8eGM5WWZUN0xRPkp3XjdoWXRrUkpye1E4CnpRfCoxcHBfcTZNbm98RDZFWCFrZ1N2MGgwSTN+
ZWZfbCUkPHUoQDBgLUlTJkVMfHx9Wk4xUigqSSlFYV43SS15Rwp6eVhDamhKLTF1RihVeXopX145
PSpOX0RZOUtTNzk+RFRGakxgMHkxNm4lXmRHTlFuOzJWODJtcW9JaTlpezE1dnUKekxxJihCVGw5
Q0luVWpabFRJYT5eISFIbE1LM1c4U2RfT3cwK0U4SVQ/aCQ9NTUkXlopJFdZSXVpZz1PO0xwXzFR
Cno0d09UO1hiV1EhPk1oYHBkWHVTbz1LPFNUPX1QKiF4b2RsRUlCSHklNXtVJFZaUyR3RWtOc0d8
dTI8S2spV0N5TAp6elR2eT83TTgmQ2ZxXzVAWUlWISs8Um5ed3QpNXF0cDx4S19LRmxkRDNNXldB
R2xOLVVRfEFORUJZVm9HMHczeFIKemVrYD9fIWFGV1ElJFpFQW49WEZIRWxte2dLendAQmgwLUxO
d1omWmg/eVolKjE1X2JfWTR7T3N6Xn40T3VtISE8CnpzZSYhRzxhfWV+T3Q3dmRrYmpZblVeXkxq
R35FVG4+QmJhO3dUIXdLYEhmMVVlaDA0KiVEN0tmaiojYn5CTmZ2egp6c2JmP3VpTW01LXhoYVF8
N09tMk9yWWJVPm5nVU05JUY1blU8NjVJRnl1KGB5WjtWYjEpPXdDZCFMMks/YyRlekUKejRJYlN8
Xj9aPillRXB9WmZqd0YpV2F3P3BQSj97fipnJTtlPFRYNiY+ZnhPfk54N2RRR0xXWiljUFEqVCEo
KFctCnpHbTI/dE0pS303b0c8MFh6PGBsdFdqeHZFPCRBSCE0KlJ7QTJ+dVlHckBtIXZtKmorZSND
RTleKn1PYyN1aWhCfAp6NTsja01ZMl44bXJyODAlKiswMmJEeDZCe0pzY2goZDdrUUdWN35pR1Rn
RlpCdSRQZmB0TmZgQjJ7fHQ3ZkdoSXEKem9zMHhGI2wkYmZ4T3RjR0RkKk1EYmRLQmFDS3hnPHpC
U190IVRpSSZEJkZTPkNFYnI4SlROZF8xYmpXQ3tVYmdrCno5fik5O0ExJj1GeUl0JGwhVkJYZkR+
NlZDazBmak8lUXdMSjdrMDBSSColSThjQ3FGNTQyVnpQXjtgT1UtXz89PAp6YlZ9T29RRSlIcVZg
fClYNStXYmdTeEdXSD50KzctTzsobH5aK0ZKSilzeWd1XitlRjAxI1N1aitwbkFjdyFzPnAKeiQt
eEZ9Yz43dDlYNkgkXlY5aHZUNUh7akt2Kz16eldIQTBwZ3c4ZTVmWnBtOXZJcGhWcTMlUzQqTjMl
JmpzWV5RCnpLJXNTUHVqPT9ke0FUczBvMHk2IzB3MyVZVF5ALV9zVHVUVXdJKFF7O2wzS2plQWJW
ayNXbWklUER4bWB6b3FRfgp6KCg8LX0qRlNQJTVndDd1STN0MSY3NW5le0AxXmJwZFcxO01NR05r
U3J+VUF1RGJCNCtWUWl8eChnZE9eemluXykKem5jZnMyaGo4eGRpaXkpQHZWa2ZrSXRMS3ZzR3RK
aDxBaCtOOXI0RmsjNGp9Myk1ZnA0JSQ4T1BtITIqdjg1JDJpCnoxNXA0VWpIPURWITwrTC15fnNJ
Uzcmayt3d1FAM2VCbEQwZXdHezAqbD5yVGIwVH50Rmw0UTNKIWZsYXVTPT1iJgp6NkI8VmM1d0Qk
bm1DX2lgMEU8QWVEPzJIPFFFb1d4UC17WDZfaTE1UUpGLUN2LU4tTkxOOSUkfDVMOz1kNmxtRjUK
ejtVdUs3eCVDcSVOP1QmfmxEK01lV1p8Uzxfc1o2OFNoTmEwWFhxYWw+bTxJdmkrd2dBWSoocFZK
eE9qMztQXk1wCnp7UHk0USZoVl80WHRxWU5eV19gdytrKXJoYn5iPzBgQG9seC10TGA/anleOSZD
ZjdzcXhTU29ePUE8S2M2VVlvZgp6XkRrZU1QPiFnJWREdmxDZihTdCRrVm9mdkg5MHw5eWwtZ212
UnZjS1MmWWU5RGRvVEtAMm19aVN2Q3szbSU0RTAKekBUSkQ3YzFWPyFVUk03K3Q/ZjMpJXtYKDZK
WGd+QTlUdkdReVg2biheWXQwTlg7PnZEUGNyfm1JQ1Bvb0xXQV9gCno8MUE+RnVYcnxDKWR0RHIq
UFF0JVhzNVdlUFdVQiZnQmokelojQklZJT9qRGRwYlNBLVBWMGBkR2Zeb2FfSnB9Wgp6bHJHVjdv
ZWAjQl4rblBJUWBaREplSmFzPXJ1Iz0qWUwjK24/R299ZjMzPjFHc1p7VFR5MmJkQmloan1teipt
cCEKek96biV7V2dMTT0qQ3BpdUtVcypHbkhhe0IkMnNpSnFmTml8Wjt8ckglc3RNKjhiMjZrQU1D
WVkmTkh3UEd0bFluCno3VVZ4X15zZ1IkWjh4Mjdmb1M2M0ZDUDxiN05RQDRtJFcmYTQrcGJAYzZM
OHJXY1lwcEhAMUR+a0Q+dHxndGNHXwp6eSNAQ3whVlFWflRZfUc1ZTU3cXA/RjRqUnhxcX5AaDZe
Py1jdkQ+eVN3VkxsMm03PWdFUnRFbj5Gd19ATkQlcE8Kb2lWQyptYno8JUkrMEsxWmArTFd2WiQz
fiQrQSFHbT9eaHBTY0B8fH1Xcm1MVktMdnV6djtZN0EKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2Nzcy91aS1saWdodG5lc3MvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20uY3NzIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVz
cy9qcXVlcnktdWktMS44LjEwLmN1c3RvbS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjE3MDZlMjIwNzdiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzL3VpLWxpZ2h0bmVzcy9qcXVl
cnktdWktMS44LjEwLmN1c3RvbS5jc3MKQEAgLTAsMCArMSw1NzMgQEAKKy8qCisgKiBqUXVlcnkg
VUkgQ1NTIEZyYW1ld29yayAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50
eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRo
ZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xp
Y2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1RoZW1pbmcvQVBJCisgKi8K
KworLyogTGF5b3V0IGhlbHBlcnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0q
LworLnVpLWhlbHBlci1oaWRkZW4geyBkaXNwbGF5OiBub25lOyB9CisudWktaGVscGVyLWhpZGRl
bi1hY2Nlc3NpYmxlIHsgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IGNsaXA6IHJlY3Qo
MXB4IDFweCAxcHggMXB4KTsgY2xpcDogcmVjdCgxcHgsMXB4LDFweCwxcHgpOyB9CisudWktaGVs
cGVyLXJlc2V0IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IDA7IG91dGxpbmU6IDA7
IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxMDAl
OyBsaXN0LXN0eWxlOiBub25lOyB9CisudWktaGVscGVyLWNsZWFyZml4OmFmdGVyIHsgY29udGVu
dDogIi4iOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgdmlzaWJpbGl0
eTogaGlkZGVuOyB9CisudWktaGVscGVyLWNsZWFyZml4IHsgZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB9CisvKiByZXF1aXJlZCBjb21tZW50IGZvciBjbGVhcmZpeCB0byB3b3JrIGluIE9wZXJhIFwq
LworKiBodG1sIC51aS1oZWxwZXItY2xlYXJmaXggeyBoZWlnaHQ6MSU7IH0KKy51aS1oZWxwZXIt
Y2xlYXJmaXggeyBkaXNwbGF5OmJsb2NrOyB9CisvKiBlbmQgY2xlYXJmaXggKi8KKy51aS1oZWxw
ZXItemZpeCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHRvcDogMDsgbGVmdDogMDsgcG9z
aXRpb246IGFic29sdXRlOyBvcGFjaXR5OiAwOyBmaWx0ZXI6QWxwaGEoT3BhY2l0eT0wKTsgfQor
CisKKy8qIEludGVyYWN0aW9uIEN1ZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLworLnVpLXN0YXRlLWRpc2FibGVkIHsgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7IH0K
KworCisvKiBJY29ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8q
IHN0YXRlcyBhbmQgaW1hZ2VzICovCisudWktaWNvbiB7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWlu
ZGVudDogLTk5OTk5cHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQtcmVwZWF0OiBuby1y
ZXBlYXQ7IH0KKworCisvKiBNaXNjIHZpc3VhbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLworCisvKiBPdmVybGF5cyAqLworLnVpLXdpZGdldC1vdmVybGF5IHsgcG9zaXRp
b246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7
IH0KKworCisvKgorICogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsgMS44LjEwCisgKgorICogQ29w
eXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICog
RHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisg
KiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNv
bS9VSS9UaGVtaW5nL0FQSQorICoKKyAqIFRvIHZpZXcgYW5kIG1vZGlmeSB0aGlzIHRoZW1lLCB2
aXNpdCBodHRwOi8vanF1ZXJ5dWkuY29tL3RoZW1lcm9sbGVyLz9mZkRlZmF1bHQ9VHJlYnVjaGV0
JTIwTVMsJTIwVGFob21hLCUyMFZlcmRhbmEsJTIwQXJpYWwsJTIwc2Fucy1zZXJpZiZmd0RlZmF1
bHQ9Ym9sZCZmc0RlZmF1bHQ9MS4xZW0mY29ybmVyUmFkaXVzPTRweCZiZ0NvbG9ySGVhZGVyPWY2
YTgyOCZiZ1RleHR1cmVIZWFkZXI9MTJfZ2xvc3Nfd2F2ZS5wbmcmYmdJbWdPcGFjaXR5SGVhZGVy
PTM1JmJvcmRlckNvbG9ySGVhZGVyPWU3OGYwOCZmY0hlYWRlcj1mZmZmZmYmaWNvbkNvbG9ySGVh
ZGVyPWZmZmZmZiZiZ0NvbG9yQ29udGVudD1lZWVlZWUmYmdUZXh0dXJlQ29udGVudD0wM19oaWdo
bGlnaHRfc29mdC5wbmcmYmdJbWdPcGFjaXR5Q29udGVudD0xMDAmYm9yZGVyQ29sb3JDb250ZW50
PWRkZGRkZCZmY0NvbnRlbnQ9MzMzMzMzJmljb25Db2xvckNvbnRlbnQ9MjIyMjIyJmJnQ29sb3JE
ZWZhdWx0PWY2ZjZmNiZiZ1RleHR1cmVEZWZhdWx0PTAyX2dsYXNzLnBuZyZiZ0ltZ09wYWNpdHlE
ZWZhdWx0PTEwMCZib3JkZXJDb2xvckRlZmF1bHQ9Y2NjY2NjJmZjRGVmYXVsdD0xYzk0YzQmaWNv
bkNvbG9yRGVmYXVsdD1lZjhjMDgmYmdDb2xvckhvdmVyPWZkZjVjZSZiZ1RleHR1cmVIb3Zlcj0w
Ml9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5SG92ZXI9MTAwJmJvcmRlckNvbG9ySG92ZXI9ZmJjYjA5
JmZjSG92ZXI9Yzc3NDA1Jmljb25Db2xvckhvdmVyPWVmOGMwOCZiZ0NvbG9yQWN0aXZlPWZmZmZm
ZiZiZ1RleHR1cmVBY3RpdmU9MDJfZ2xhc3MucG5nJmJnSW1nT3BhY2l0eUFjdGl2ZT02NSZib3Jk
ZXJDb2xvckFjdGl2ZT1mYmQ4NTAmZmNBY3RpdmU9ZWI4ZjAwJmljb25Db2xvckFjdGl2ZT1lZjhj
MDgmYmdDb2xvckhpZ2hsaWdodD1mZmU0NWMmYmdUZXh0dXJlSGlnaGxpZ2h0PTAzX2hpZ2hsaWdo
dF9zb2Z0LnBuZyZiZ0ltZ09wYWNpdHlIaWdobGlnaHQ9NzUmYm9yZGVyQ29sb3JIaWdobGlnaHQ9
ZmVkMjJmJmZjSGlnaGxpZ2h0PTM2MzYzNiZpY29uQ29sb3JIaWdobGlnaHQ9MjI4ZWYxJmJnQ29s
b3JFcnJvcj1iODE5MDAmYmdUZXh0dXJlRXJyb3I9MDhfZGlhZ29uYWxzX3RoaWNrLnBuZyZiZ0lt
Z09wYWNpdHlFcnJvcj0xOCZib3JkZXJDb2xvckVycm9yPWNkMGEwYSZmY0Vycm9yPWZmZmZmZiZp
Y29uQ29sb3JFcnJvcj1mZmQyN2EmYmdDb2xvck92ZXJsYXk9NjY2NjY2JmJnVGV4dHVyZU92ZXJs
YXk9MDhfZGlhZ29uYWxzX3RoaWNrLnBuZyZiZ0ltZ09wYWNpdHlPdmVybGF5PTIwJm9wYWNpdHlP
dmVybGF5PTUwJmJnQ29sb3JTaGFkb3c9MDAwMDAwJmJnVGV4dHVyZVNoYWRvdz0wMV9mbGF0LnBu
ZyZiZ0ltZ09wYWNpdHlTaGFkb3c9MTAmb3BhY2l0eVNoYWRvdz0yMCZ0aGlja25lc3NTaGFkb3c9
NXB4Jm9mZnNldFRvcFNoYWRvdz0tNXB4Jm9mZnNldExlZnRTaGFkb3c9LTVweCZjb3JuZXJSYWRp
dXNTaGFkb3c9NXB4CisgKi8KKworCisvKiBDb21wb25lbnQgY29udGFpbmVycworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisudWktd2lkZ2V0IHsgZm9udC1mYW1pbHk6IFRy
ZWJ1Y2hldCBNUywgVGFob21hLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXpl
OiAxLjFlbTsgfQorLnVpLXdpZGdldCAudWktd2lkZ2V0IHsgZm9udC1zaXplOiAxZW07IH0KKy51
aS13aWRnZXQgaW5wdXQsIC51aS13aWRnZXQgc2VsZWN0LCAudWktd2lkZ2V0IHRleHRhcmVhLCAu
dWktd2lkZ2V0IGJ1dHRvbiB7IGZvbnQtZmFtaWx5OiBUcmVidWNoZXQgTVMsIFRhaG9tYSwgVmVy
ZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMWVtOyB9CisudWktd2lkZ2V0LWNv
bnRlbnQgeyBib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkOyBiYWNrZ3JvdW5kOiAjZWVlZWVlIHVy
bChpbWFnZXMvdWktYmdfaGlnaGxpZ2h0LXNvZnRfMTAwX2VlZWVlZV8xeDEwMC5wbmcpIDUwJSB0
b3AgcmVwZWF0LXg7IGNvbG9yOiAjMzMzMzMzOyB9CisudWktd2lkZ2V0LWNvbnRlbnQgYSB7IGNv
bG9yOiAjMzMzMzMzOyB9CisudWktd2lkZ2V0LWhlYWRlciB7IGJvcmRlcjogMXB4IHNvbGlkICNl
NzhmMDg7IGJhY2tncm91bmQ6ICNmNmE4MjggdXJsKGltYWdlcy91aS1iZ19nbG9zcy13YXZlXzM1
X2Y2YTgyOF81MDB4MTAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgY29sb3I6ICNmZmZmZmY7IGZv
bnQtd2VpZ2h0OiBib2xkOyB9CisudWktd2lkZ2V0LWhlYWRlciBhIHsgY29sb3I6ICNmZmZmZmY7
IH0KKworLyogSW50ZXJhY3Rpb24gc3RhdGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKi8KKy51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRl
LWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0IHsgYm9yZGVyOiAx
cHggc29saWQgI2NjY2NjYzsgYmFja2dyb3VuZDogI2Y2ZjZmNiB1cmwoaW1hZ2VzL3VpLWJnX2ds
YXNzXzEwMF9mNmY2ZjZfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBmb250LXdlaWdodDog
Ym9sZDsgY29sb3I6ICMxYzk0YzQ7IH0KKy51aS1zdGF0ZS1kZWZhdWx0IGEsIC51aS1zdGF0ZS1k
ZWZhdWx0IGE6bGluaywgLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkIHsgY29sb3I6ICMxYzk0
YzQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQorLnVpLXN0YXRlLWhvdmVyLCAudWktd2lkZ2V0
LWNvbnRlbnQgLnVpLXN0YXRlLWhvdmVyLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92
ZXIsIC51aS1zdGF0ZS1mb2N1cywgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1mb2N1cywg
LnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzIHsgYm9yZGVyOiAxcHggc29saWQgI2Zi
Y2IwOTsgYmFja2dyb3VuZDogI2ZkZjVjZSB1cmwoaW1hZ2VzL3VpLWJnX2dsYXNzXzEwMF9mZGY1
Y2VfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6
ICNjNzc0MDU7IH0KKy51aS1zdGF0ZS1ob3ZlciBhLCAudWktc3RhdGUtaG92ZXIgYTpob3ZlciB7
IGNvbG9yOiAjYzc3NDA1OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KKy51aS1zdGF0ZS1hY3Rp
dmUsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLCAudWktd2lkZ2V0LWhlYWRl
ciAudWktc3RhdGUtYWN0aXZlIHsgYm9yZGVyOiAxcHggc29saWQgI2ZiZDg1MDsgYmFja2dyb3Vu
ZDogI2ZmZmZmZiB1cmwoaW1hZ2VzL3VpLWJnX2dsYXNzXzY1X2ZmZmZmZl8xeDQwMC5wbmcpIDUw
JSA1MCUgcmVwZWF0LXg7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogI2ViOGYwMDsgfQorLnVp
LXN0YXRlLWFjdGl2ZSBhLCAudWktc3RhdGUtYWN0aXZlIGE6bGluaywgLnVpLXN0YXRlLWFjdGl2
ZSBhOnZpc2l0ZWQgeyBjb2xvcjogI2ViOGYwMDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Cisu
dWktd2lkZ2V0IDphY3RpdmUgeyBvdXRsaW5lOiBub25lOyB9CisKKy8qIEludGVyYWN0aW9uIEN1
ZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLnVpLXN0YXRlLWhpZ2hs
aWdodCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsIC51aS13aWRnZXQt
aGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgIHtib3JkZXI6IDFweCBzb2xpZCAjZmVkMjJmOyBi
YWNrZ3JvdW5kOiAjZmZlNDVjIHVybChpbWFnZXMvdWktYmdfaGlnaGxpZ2h0LXNvZnRfNzVfZmZl
NDVjXzF4MTAwLnBuZykgNTAlIHRvcCByZXBlYXQteDsgY29sb3I6ICMzNjM2MzY7IH0KKy51aS1z
dGF0ZS1oaWdobGlnaHQgYSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQg
YSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IGEgeyBjb2xvcjogIzM2MzYz
NjsgfQorLnVpLXN0YXRlLWVycm9yLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9y
LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3Ige2JvcmRlcjogMXB4IHNvbGlkICNj
ZDBhMGE7IGJhY2tncm91bmQ6ICNiODE5MDAgdXJsKGltYWdlcy91aS1iZ19kaWFnb25hbHMtdGhp
Y2tfMThfYjgxOTAwXzQweDQwLnBuZykgNTAlIDUwJSByZXBlYXQ7IGNvbG9yOiAjZmZmZmZmOyB9
CisudWktc3RhdGUtZXJyb3IgYSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciBh
LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYSB7IGNvbG9yOiAjZmZmZmZmOyB9
CisudWktc3RhdGUtZXJyb3ItdGV4dCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJv
ci10ZXh0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dCB7IGNvbG9yOiAj
ZmZmZmZmOyB9CisudWktcHJpb3JpdHktcHJpbWFyeSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1w
cmlvcml0eS1wcmltYXJ5LCAudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeSB7
IGZvbnQtd2VpZ2h0OiBib2xkOyB9CisudWktcHJpb3JpdHktc2Vjb25kYXJ5LCAudWktd2lkZ2V0
LWNvbnRlbnQgLnVpLXByaW9yaXR5LXNlY29uZGFyeSwgIC51aS13aWRnZXQtaGVhZGVyIC51aS1w
cmlvcml0eS1zZWNvbmRhcnkgeyBvcGFjaXR5OiAuNzsgZmlsdGVyOkFscGhhKE9wYWNpdHk9NzAp
OyBmb250LXdlaWdodDogbm9ybWFsOyB9CisudWktc3RhdGUtZGlzYWJsZWQsIC51aS13aWRnZXQt
Y29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1k
aXNhYmxlZCB7IG9wYWNpdHk6IC4zNTsgZmlsdGVyOkFscGhhKE9wYWNpdHk9MzUpOyBiYWNrZ3Jv
dW5kLWltYWdlOiBub25lOyB9CisKKy8qIEljb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKi8KKworLyogc3RhdGVzIGFuZCBpbWFnZXMgKi8KKy51aS1pY29uIHsgd2lkdGg6
IDE2cHg7IGhlaWdodDogMTZweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29u
c18yMjIyMjJfMjU2eDI0MC5wbmcpOyB9CisudWktd2lkZ2V0LWNvbnRlbnQgLnVpLWljb24ge2Jh
Y2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdWktaWNvbnNfMjIyMjIyXzI1NngyNDAucG5nKTsg
fQorLnVpLXdpZGdldC1oZWFkZXIgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybChpbWFn
ZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nKTsgfQorLnVpLXN0YXRlLWRlZmF1bHQgLnVp
LWljb24geyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zX2VmOGMwOF8yNTZ4
MjQwLnBuZyk7IH0KKy51aS1zdGF0ZS1ob3ZlciAudWktaWNvbiwgLnVpLXN0YXRlLWZvY3VzIC51
aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWljb25zX2VmOGMwOF8yNTZ4
MjQwLnBuZyk7IH0KKy51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6
IHVybChpbWFnZXMvdWktaWNvbnNfZWY4YzA4XzI1NngyNDAucG5nKTsgfQorLnVpLXN0YXRlLWhp
Z2hsaWdodCAudWktaWNvbiB7YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy91aS1pY29uc18y
MjhlZjFfMjU2eDI0MC5wbmcpOyB9CisudWktc3RhdGUtZXJyb3IgLnVpLWljb24sIC51aS1zdGF0
ZS1lcnJvci10ZXh0IC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3VpLWlj
b25zX2ZmZDI3YV8yNTZ4MjQwLnBuZyk7IH0KKworLyogcG9zaXRpb25pbmcgKi8KKy51aS1pY29u
LWNhcmF0LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfQorLnVpLWljb24tY2FyYXQt
MS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IDA7IH0KKy51aS1pY29uLWNhcmF0LTEt
ZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IDA7IH0KKy51aS1pY29uLWNhcmF0LTEtc2Ug
eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAwOyB9CisudWktaWNvbi1jYXJhdC0xLXMgeyBi
YWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAwOyB9CisudWktaWNvbi1jYXJhdC0xLXN3IHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTgwcHggMDsgfQorLnVpLWljb24tY2FyYXQtMS13IHsgYmFja2dy
b3VuZC1wb3NpdGlvbjogLTk2cHggMDsgfQorLnVpLWljb24tY2FyYXQtMS1udyB7IGJhY2tncm91
bmQtcG9zaXRpb246IC0xMTJweCAwOyB9CisudWktaWNvbi1jYXJhdC0yLW4tcyB7IGJhY2tncm91
bmQtcG9zaXRpb246IC0xMjhweCAwOyB9CisudWktaWNvbi1jYXJhdC0yLWUtdyB7IGJhY2tncm91
bmQtcG9zaXRpb246IC0xNDRweCAwOyB9CisudWktaWNvbi10cmlhbmdsZS0xLW4geyBiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiAwIC0xNnB4OyB9CisudWktaWNvbi10cmlhbmdsZS0xLW5lIHsgYmFja2dy
b3VuZC1wb3NpdGlvbjogLTE2cHggLTE2cHg7IH0KKy51aS1pY29uLXRyaWFuZ2xlLTEtZSB7IGJh
Y2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNnB4OyB9CisudWktaWNvbi10cmlhbmdsZS0xLXNl
IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2cHg7IH0KKy51aS1pY29uLXRyaWFuZ2xl
LTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNnB4OyB9CisudWktaWNvbi10cmlh
bmdsZS0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2cHg7IH0KKy51aS1pY29u
LXRyaWFuZ2xlLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNnB4OyB9CisudWkt
aWNvbi10cmlhbmdsZS0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNnB4OyB9
CisudWktaWNvbi10cmlhbmdsZS0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAt
MTZweDsgfQorLnVpLWljb24tdHJpYW5nbGUtMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAt
MTQ0cHggLTE2cHg7IH0KKy51aS1pY29uLWFycm93LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246
IDAgLTMycHg7IH0KKy51aS1pY29uLWFycm93LTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAt
MTZweCAtMzJweDsgfQorLnVpLWljb24tYXJyb3ctMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
LTMycHggLTMycHg7IH0KKy51aS1pY29uLWFycm93LTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtNDhweCAtMzJweDsgfQorLnVpLWljb24tYXJyb3ctMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogLTY0cHggLTMycHg7IH0KKy51aS1pY29uLWFycm93LTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtODBweCAtMzJweDsgfQorLnVpLWljb24tYXJyb3ctMS13IHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogLTk2cHggLTMycHg7IH0KKy51aS1pY29uLWFycm93LTEtbncgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtMTEycHggLTMycHg7IH0KKy51aS1pY29uLWFycm93LTItbi1zIHsgYmFja2dyb3Vu
ZC1wb3NpdGlvbjogLTEyOHB4IC0zMnB4OyB9CisudWktaWNvbi1hcnJvdy0yLW5lLXN3IHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0zMnB4OyB9CisudWktaWNvbi1hcnJvdy0yLWUtdyB7
IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMzJweDsgfQorLnVpLWljb24tYXJyb3ctMi1z
ZS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMzJweDsgfQorLnVpLWljb24tYXJy
b3dzdG9wLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMzJweDsgfQorLnVpLWlj
b24tYXJyb3dzdG9wLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMzJweDsgfQor
LnVpLWljb24tYXJyb3dzdG9wLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMzJw
eDsgfQorLnVpLWljb24tYXJyb3dzdG9wLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBw
eCAtMzJweDsgfQorLnVpLWljb24tYXJyb3d0aGljay0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAwIC00OHB4OyB9CisudWktaWNvbi1hcnJvd3RoaWNrLTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtMTZweCAtNDhweDsgfQorLnVpLWljb24tYXJyb3d0aGljay0xLWUgeyBiYWNrZ3JvdW5k
LXBvc2l0aW9uOiAtMzJweCAtNDhweDsgfQorLnVpLWljb24tYXJyb3d0aGljay0xLXNlIHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTQ4cHg7IH0KKy51aS1pY29uLWFycm93dGhpY2stMS1z
IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTQ4cHg7IH0KKy51aS1pY29uLWFycm93dGhp
Y2stMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC00OHB4OyB9CisudWktaWNvbi1h
cnJvd3RoaWNrLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC00OHB4OyB9CisudWkt
aWNvbi1hcnJvd3RoaWNrLTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTQ4cHg7
IH0KKy51aS1pY29uLWFycm93dGhpY2stMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4
cHggLTQ4cHg7IH0KKy51aS1pY29uLWFycm93dGhpY2stMi1uZS1zdyB7IGJhY2tncm91bmQtcG9z
aXRpb246IC0xNDRweCAtNDhweDsgfQorLnVpLWljb24tYXJyb3d0aGljay0yLWUtdyB7IGJhY2tn
cm91bmQtcG9zaXRpb246IC0xNjBweCAtNDhweDsgfQorLnVpLWljb24tYXJyb3d0aGljay0yLXNl
LW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC00OHB4OyB9CisudWktaWNvbi1hcnJv
d3RoaWNrc3RvcC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTQ4cHg7IH0KKy51
aS1pY29uLWFycm93dGhpY2tzdG9wLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAt
NDhweDsgfQorLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogLTIyNHB4IC00OHB4OyB9CisudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXcgeyBiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiAtMjQwcHggLTQ4cHg7IH0KKy51aS1pY29uLWFycm93cmV0dXJudGhpY2st
MS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjRweDsgfQorLnVpLWljb24tYXJyb3dyZXR1
cm50aGljay0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNjRweDsgfQorLnVpLWlj
b24tYXJyb3dyZXR1cm50aGljay0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNjRw
eDsgfQorLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtNDhweCAtNjRweDsgfQorLnVpLWljb24tYXJyb3dyZXR1cm4tMS13IHsgYmFja2dyb3VuZC1w
b3NpdGlvbjogLTY0cHggLTY0cHg7IH0KKy51aS1pY29uLWFycm93cmV0dXJuLTEtbiB7IGJhY2tn
cm91bmQtcG9zaXRpb246IC04MHB4IC02NHB4OyB9CisudWktaWNvbi1hcnJvd3JldHVybi0xLWUg
eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNjRweDsgfQorLnVpLWljb24tYXJyb3dyZXR1
cm4tMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC02NHB4OyB9CisudWktaWNvbi1h
cnJvd3JlZnJlc2gtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC02NHB4OyB9Cisu
dWktaWNvbi1hcnJvd3JlZnJlc2gtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC02
NHB4OyB9CisudWktaWNvbi1hcnJvd3JlZnJlc2gtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
LTE2MHB4IC02NHB4OyB9CisudWktaWNvbi1hcnJvd3JlZnJlc2gtMS1zIHsgYmFja2dyb3VuZC1w
b3NpdGlvbjogLTE3NnB4IC02NHB4OyB9CisudWktaWNvbi1hcnJvdy00IHsgYmFja2dyb3VuZC1w
b3NpdGlvbjogMCAtODBweDsgfQorLnVpLWljb24tYXJyb3ctNC1kaWFnIHsgYmFja2dyb3VuZC1w
b3NpdGlvbjogLTE2cHggLTgwcHg7IH0KKy51aS1pY29uLWV4dGxpbmsgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtMzJweCAtODBweDsgfQorLnVpLWljb24tbmV3d2luIHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogLTQ4cHggLTgwcHg7IH0KKy51aS1pY29uLXJlZnJlc2ggeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtNjRweCAtODBweDsgfQorLnVpLWljb24tc2h1ZmZsZSB7IGJhY2tncm91bmQtcG9zaXRp
b246IC04MHB4IC04MHB4OyB9CisudWktaWNvbi10cmFuc2Zlci1lLXcgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtOTZweCAtODBweDsgfQorLnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXcgeyBiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTgwcHg7IH0KKy51aS1pY29uLWZvbGRlci1jb2xsYXBz
ZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05NnB4OyB9CisudWktaWNvbi1mb2xkZXItb3Bl
biB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC05NnB4OyB9CisudWktaWNvbi1kb2N1bWVu
dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05NnB4OyB9CisudWktaWNvbi1kb2N1bWVu
dC1iIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTk2cHg7IH0KKy51aS1pY29uLW5vdGUg
eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtOTZweDsgfQorLnVpLWljb24tbWFpbC1jbG9z
ZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtOTZweDsgfQorLnVpLWljb24tbWFpbC1v
cGVuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTk2cHg7IH0KKy51aS1pY29uLXN1aXRj
YXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC05NnB4OyB9CisudWktaWNvbi1jb21t
ZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC05NnB4OyB9CisudWktaWNvbi1wZXJz
b24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTk2cHg7IH0KKy51aS1pY29uLXByaW50
IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC05NnB4OyB9CisudWktaWNvbi10cmFzaCB7
IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtOTZweDsgfQorLnVpLWljb24tbG9ja2VkIHsg
YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC05NnB4OyB9CisudWktaWNvbi11bmxvY2tlZCB7
IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtOTZweDsgfQorLnVpLWljb24tYm9va21hcmsg
eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTk2cHg7IH0KKy51aS1pY29uLXRhZyB7IGJh
Y2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtOTZweDsgfQorLnVpLWljb24taG9tZSB7IGJhY2tn
cm91bmQtcG9zaXRpb246IDAgLTExMnB4OyB9CisudWktaWNvbi1mbGFnIHsgYmFja2dyb3VuZC1w
b3NpdGlvbjogLTE2cHggLTExMnB4OyB9CisudWktaWNvbi1jYWxlbmRhciB7IGJhY2tncm91bmQt
cG9zaXRpb246IC0zMnB4IC0xMTJweDsgfQorLnVpLWljb24tY2FydCB7IGJhY2tncm91bmQtcG9z
aXRpb246IC00OHB4IC0xMTJweDsgfQorLnVpLWljb24tcGVuY2lsIHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogLTY0cHggLTExMnB4OyB9CisudWktaWNvbi1jbG9jayB7IGJhY2tncm91bmQtcG9zaXRp
b246IC04MHB4IC0xMTJweDsgfQorLnVpLWljb24tZGlzayB7IGJhY2tncm91bmQtcG9zaXRpb246
IC05NnB4IC0xMTJweDsgfQorLnVpLWljb24tY2FsY3VsYXRvciB7IGJhY2tncm91bmQtcG9zaXRp
b246IC0xMTJweCAtMTEycHg7IH0KKy51aS1pY29uLXpvb21pbiB7IGJhY2tncm91bmQtcG9zaXRp
b246IC0xMjhweCAtMTEycHg7IH0KKy51aS1pY29uLXpvb21vdXQgeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtMTQ0cHggLTExMnB4OyB9CisudWktaWNvbi1zZWFyY2ggeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtMTYwcHggLTExMnB4OyB9CisudWktaWNvbi13cmVuY2ggeyBiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAtMTc2cHggLTExMnB4OyB9CisudWktaWNvbi1nZWFyIHsgYmFja2dyb3VuZC1wb3NpdGlv
bjogLTE5MnB4IC0xMTJweDsgfQorLnVpLWljb24taGVhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtMjA4cHggLTExMnB4OyB9CisudWktaWNvbi1zdGFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
LTIyNHB4IC0xMTJweDsgfQorLnVpLWljb24tbGluayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0y
NDBweCAtMTEycHg7IH0KKy51aS1pY29uLWNhbmNlbCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAg
LTEyOHB4OyB9CisudWktaWNvbi1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTEy
OHB4OyB9CisudWktaWNvbi1wbHVzdGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAt
MTI4cHg7IH0KKy51aS1pY29uLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTEy
OHB4OyB9CisudWktaWNvbi1taW51c3RoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHgg
LTEyOHB4OyB9CisudWktaWNvbi1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0x
MjhweDsgfQorLnVpLWljb24tY2xvc2V0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4
IC0xMjhweDsgfQorLnVpLWljb24ta2V5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0x
MjhweDsgfQorLnVpLWljb24tbGlnaHRidWxiIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4
IC0xMjhweDsgfQorLnVpLWljb24tc2Npc3NvcnMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0
cHggLTEyOHB4OyB9CisudWktaWNvbi1jbGlwYm9hcmQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAt
MTYwcHggLTEyOHB4OyB9CisudWktaWNvbi1jb3B5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3
NnB4IC0xMjhweDsgfQorLnVpLWljb24tY29udGFjdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0x
OTJweCAtMTI4cHg7IH0KKy51aS1pY29uLWltYWdlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIw
OHB4IC0xMjhweDsgfQorLnVpLWljb24tdmlkZW8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0
cHggLTEyOHB4OyB9CisudWktaWNvbi1zY3JpcHQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQw
cHggLTEyOHB4OyB9CisudWktaWNvbi1hbGVydCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE0
NHB4OyB9CisudWktaWNvbi1pbmZvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE0NHB4
OyB9CisudWktaWNvbi1ub3RpY2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTQ0cHg7
IH0KKy51aS1pY29uLWhlbHAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTQ0cHg7IH0K
Ky51aS1pY29uLWNoZWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE0NHB4OyB9Cisu
dWktaWNvbi1idWxsZXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTQ0cHg7IH0KKy51
aS1pY29uLXJhZGlvLW9mZiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNDRweDsgfQor
LnVpLWljb24tcmFkaW8tb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE0NHB4OyB9
CisudWktaWNvbi1waW4tdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTQ0cHg7IH0K
Ky51aS1pY29uLXBpbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNDRweDsgfQor
LnVpLWljb24tcGxheSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2MHB4OyB9CisudWktaWNv
bi1wYXVzZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNjBweDsgfQorLnVpLWljb24t
c2Vlay1uZXh0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2MHB4OyB9CisudWktaWNv
bi1zZWVrLXByZXYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTYwcHg7IH0KKy51aS1p
Y29uLXNlZWstZW5kIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2MHB4OyB9CisudWkt
aWNvbi1zZWVrLXN0YXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2MHB4OyB9Cisv
KiB1aS1pY29uLXNlZWstZmlyc3QgaXMgZGVwcmVjYXRlZCwgdXNlIHVpLWljb24tc2Vlay1zdGFy
dCBpbnN0ZWFkICovCisudWktaWNvbi1zZWVrLWZpcnN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
LTgwcHggLTE2MHB4OyB9CisudWktaWNvbi1zdG9wIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2
cHggLTE2MHB4OyB9CisudWktaWNvbi1lamVjdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJw
eCAtMTYwcHg7IH0KKy51aS1pY29uLXZvbHVtZS1vZmYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAt
MTI4cHggLTE2MHB4OyB9CisudWktaWNvbi12b2x1bWUtb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtMTQ0cHggLTE2MHB4OyB9CisudWktaWNvbi1wb3dlciB7IGJhY2tncm91bmQtcG9zaXRpb246
IDAgLTE3NnB4OyB9CisudWktaWNvbi1zaWduYWwtZGlhZyB7IGJhY2tncm91bmQtcG9zaXRpb246
IC0xNnB4IC0xNzZweDsgfQorLnVpLWljb24tc2lnbmFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjog
LTMycHggLTE3NnB4OyB9CisudWktaWNvbi1iYXR0ZXJ5LTAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAtNDhweCAtMTc2cHg7IH0KKy51aS1pY29uLWJhdHRlcnktMSB7IGJhY2tncm91bmQtcG9zaXRp
b246IC02NHB4IC0xNzZweDsgfQorLnVpLWljb24tYmF0dGVyeS0yIHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogLTgwcHggLTE3NnB4OyB9CisudWktaWNvbi1iYXR0ZXJ5LTMgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtOTZweCAtMTc2cHg7IH0KKy51aS1pY29uLWNpcmNsZS1wbHVzIHsgYmFja2dyb3Vu
ZC1wb3NpdGlvbjogMCAtMTkycHg7IH0KKy51aS1pY29uLWNpcmNsZS1taW51cyB7IGJhY2tncm91
bmQtcG9zaXRpb246IC0xNnB4IC0xOTJweDsgfQorLnVpLWljb24tY2lyY2xlLWNsb3NlIHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE5MnB4OyB9CisudWktaWNvbi1jaXJjbGUtdHJpYW5n
bGUtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xOTJweDsgfQorLnVpLWljb24tY2ly
Y2xlLXRyaWFuZ2xlLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTkycHg7IH0KKy51
aS1pY29uLWNpcmNsZS10cmlhbmdsZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE5
MnB4OyB9CisudWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtbiB7IGJhY2tncm91bmQtcG9zaXRpb246
IC05NnB4IC0xOTJweDsgfQorLnVpLWljb24tY2lyY2xlLWFycm93LWUgeyBiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAtMTEycHggLTE5MnB4OyB9CisudWktaWNvbi1jaXJjbGUtYXJyb3ctcyB7IGJhY2tn
cm91bmQtcG9zaXRpb246IC0xMjhweCAtMTkycHg7IH0KKy51aS1pY29uLWNpcmNsZS1hcnJvdy13
IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xOTJweDsgfQorLnVpLWljb24tY2lyY2xl
LWFycm93LW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE5MnB4OyB9CisudWktaWNv
bi1jaXJjbGUtem9vbWluIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xOTJweDsgfQor
LnVpLWljb24tY2lyY2xlLXpvb21vdXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE5
MnB4OyB9CisudWktaWNvbi1jaXJjbGUtY2hlY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4
cHggLTE5MnB4OyB9CisudWktaWNvbi1jaXJjbGVzbWFsbC1wbHVzIHsgYmFja2dyb3VuZC1wb3Np
dGlvbjogMCAtMjA4cHg7IH0KKy51aS1pY29uLWNpcmNsZXNtYWxsLW1pbnVzIHsgYmFja2dyb3Vu
ZC1wb3NpdGlvbjogLTE2cHggLTIwOHB4OyB9CisudWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZSB7
IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMDhweDsgfQorLnVpLWljb24tc3F1YXJlc21h
bGwtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMDhweDsgfQorLnVpLWljb24t
c3F1YXJlc21hbGwtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjA4cHg7IH0K
Ky51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHgg
LTIwOHB4OyB9CisudWktaWNvbi1ncmlwLWRvdHRlZC12ZXJ0aWNhbCB7IGJhY2tncm91bmQtcG9z
aXRpb246IDAgLTIyNHB4OyB9CisudWktaWNvbi1ncmlwLWRvdHRlZC1ob3Jpem9udGFsIHsgYmFj
a2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIyNHB4OyB9CisudWktaWNvbi1ncmlwLXNvbGlkLXZl
cnRpY2FsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIyNHB4OyB9CisudWktaWNvbi1n
cmlwLXNvbGlkLWhvcml6b250YWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjI0cHg7
IH0KKy51aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246
IC02NHB4IC0yMjRweDsgfQorLnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZSB7IGJhY2tncm91bmQt
cG9zaXRpb246IC04MHB4IC0yMjRweDsgfQorCisKKy8qIE1pc2MgdmlzdWFscworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIENvcm5lciByYWRpdXMgKi8KKy51aS1j
b3JuZXItdGwgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogNHB4OyAtd2Via2l0LWJvcmRl
ci10b3AtbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyB9Cisu
dWktY29ybmVyLXRyIHsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiA0cHg7IC13ZWJraXQt
Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRw
eDsgfQorLnVpLWNvcm5lci1ibCB7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiA0cHg7
IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLWxl
ZnQtcmFkaXVzOiA0cHg7IH0KKy51aS1jb3JuZXItYnIgeyAtbW96LWJvcmRlci1yYWRpdXMtYm90
dG9tcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyBi
b3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyB9CisudWktY29ybmVyLXRvcCB7IC1tb3ot
Ym9yZGVyLXJhZGl1cy10b3BsZWZ0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1
czogNHB4OyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10
b3ByaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRl
ci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IH0KKy51aS1jb3JuZXItYm90dG9tIHsgLW1vei1ib3Jk
ZXItcmFkaXVzLWJvdHRvbWxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFk
aXVzOiA0cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFk
aXVzLWJvdHRvbXJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6
IDRweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgfQorLnVpLWNvcm5lci1yaWdo
dCB7ICAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9w
LXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyAtbW96LWJv
cmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0
LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OyB9CisudWktY29y
bmVyLWxlZnQgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogNHB4OyAtd2Via2l0LWJvcmRl
ci10b3AtbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyAtbW96
LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVm
dC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyB9CisudWktY29y
bmVyLWFsbCB7IC1tb3otYm9yZGVyLXJhZGl1czogNHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6
IDRweDsgYm9yZGVyLXJhZGl1czogNHB4OyB9CisKKy8qIE92ZXJsYXlzICovCisudWktd2lkZ2V0
LW92ZXJsYXkgeyBiYWNrZ3JvdW5kOiAjNjY2NjY2IHVybChpbWFnZXMvdWktYmdfZGlhZ29uYWxz
LXRoaWNrXzIwXzY2NjY2Nl80MHg0MC5wbmcpIDUwJSA1MCUgcmVwZWF0OyBvcGFjaXR5OiAuNTA7
ZmlsdGVyOkFscGhhKE9wYWNpdHk9NTApOyB9CisudWktd2lkZ2V0LXNoYWRvdyB7IG1hcmdpbjog
LTVweCAwIDAgLTVweDsgcGFkZGluZzogNXB4OyBiYWNrZ3JvdW5kOiAjMDAwMDAwIHVybChpbWFn
ZXMvdWktYmdfZmxhdF8xMF8wMDAwMDBfNDB4MTAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgb3Bh
Y2l0eTogLjIwO2ZpbHRlcjpBbHBoYShPcGFjaXR5PTIwKTsgLW1vei1ib3JkZXItcmFkaXVzOiA1
cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OyBib3JkZXItcmFkaXVzOiA1cHg7IH0vKgor
ICogalF1ZXJ5IFVJIFJlc2l6YWJsZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVU
SE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVu
ZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnku
b3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1Jlc2l6YWJsZSN0
aGVtaW5nCisgKi8KKy51aS1yZXNpemFibGUgeyBwb3NpdGlvbjogcmVsYXRpdmU7fQorLnVpLXJl
c2l6YWJsZS1oYW5kbGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7Zm9udC1zaXplOiAwLjFweDt6LWlu
ZGV4OiA5OTk5OTsgZGlzcGxheTogYmxvY2s7fQorLnVpLXJlc2l6YWJsZS1kaXNhYmxlZCAudWkt
cmVzaXphYmxlLWhhbmRsZSwgLnVpLXJlc2l6YWJsZS1hdXRvaGlkZSAudWktcmVzaXphYmxlLWhh
bmRsZSB7IGRpc3BsYXk6IG5vbmU7IH0KKy51aS1yZXNpemFibGUtbiB7IGN1cnNvcjogbi1yZXNp
emU7IGhlaWdodDogN3B4OyB3aWR0aDogMTAwJTsgdG9wOiAtNXB4OyBsZWZ0OiAwOyB9CisudWkt
cmVzaXphYmxlLXMgeyBjdXJzb3I6IHMtcmVzaXplOyBoZWlnaHQ6IDdweDsgd2lkdGg6IDEwMCU7
IGJvdHRvbTogLTVweDsgbGVmdDogMDsgfQorLnVpLXJlc2l6YWJsZS1lIHsgY3Vyc29yOiBlLXJl
c2l6ZTsgd2lkdGg6IDdweDsgcmlnaHQ6IC01cHg7IHRvcDogMDsgaGVpZ2h0OiAxMDAlOyB9Cisu
dWktcmVzaXphYmxlLXcgeyBjdXJzb3I6IHctcmVzaXplOyB3aWR0aDogN3B4OyBsZWZ0OiAtNXB4
OyB0b3A6IDA7IGhlaWdodDogMTAwJTsgfQorLnVpLXJlc2l6YWJsZS1zZSB7IGN1cnNvcjogc2Ut
cmVzaXplOyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyByaWdodDogMXB4OyBib3R0b206IDFw
eDsgfQorLnVpLXJlc2l6YWJsZS1zdyB7IGN1cnNvcjogc3ctcmVzaXplOyB3aWR0aDogOXB4OyBo
ZWlnaHQ6IDlweDsgbGVmdDogLTVweDsgYm90dG9tOiAtNXB4OyB9CisudWktcmVzaXphYmxlLW53
IHsgY3Vyc29yOiBudy1yZXNpemU7IHdpZHRoOiA5cHg7IGhlaWdodDogOXB4OyBsZWZ0OiAtNXB4
OyB0b3A6IC01cHg7IH0KKy51aS1yZXNpemFibGUtbmUgeyBjdXJzb3I6IG5lLXJlc2l6ZTsgd2lk
dGg6IDlweDsgaGVpZ2h0OiA5cHg7IHJpZ2h0OiAtNXB4OyB0b3A6IC01cHg7fS8qCisgKiBqUXVl
cnkgVUkgU2VsZWN0YWJsZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50
eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRo
ZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xp
Y2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1NlbGVjdGFibGUjdGhlbWlu
ZworICovCisudWktc2VsZWN0YWJsZS1oZWxwZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5k
ZXg6IDEwMDsgYm9yZGVyOjFweCBkb3R0ZWQgYmxhY2s7IH0KKy8qCisgKiBqUXVlcnkgVUkgQWNj
b3JkaW9uIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDov
L2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBH
UEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoK
KyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvQWNjb3JkaW9uI3RoZW1pbmcKKyAqLworLyog
SUUvV2luIC0gRml4IGFuaW1hdGlvbiBidWcgLSAjNDYxNSAqLworLnVpLWFjY29yZGlvbiB7IHdp
ZHRoOiAxMDAlOyB9CisudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIHsgY3Vyc29y
OiBwb2ludGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi10b3A6IDFweDsgem9vbTogMTsg
fQorLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWxpLWZpeCB7IGRpc3BsYXk6IGlubGluZTsg
fQorLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgeyBib3JkZXItYm90
dG9tOiAwICFpbXBvcnRhbnQ7IH0KKy51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXIg
YSB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDFlbTsgcGFkZGluZzogLjVlbSAuNWVtIC41
ZW0gLjdlbTsgfQorLnVpLWFjY29yZGlvbi1pY29ucyAudWktYWNjb3JkaW9uLWhlYWRlciBhIHsg
cGFkZGluZy1sZWZ0OiAyLjJlbTsgfQorLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRl
ciAudWktaWNvbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLjVlbTsgdG9wOiA1MCU7IG1h
cmdpbi10b3A6IC04cHg7IH0KKy51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1jb250ZW50IHsg
cGFkZGluZzogMWVtIDIuMmVtOyBib3JkZXItdG9wOiAwOyBtYXJnaW4tdG9wOiAtMnB4OyBwb3Np
dGlvbjogcmVsYXRpdmU7IHRvcDogMXB4OyBtYXJnaW4tYm90dG9tOiAycHg7IG92ZXJmbG93OiBh
dXRvOyBkaXNwbGF5OiBub25lOyB6b29tOiAxOyB9CisudWktYWNjb3JkaW9uIC51aS1hY2NvcmRp
b24tY29udGVudC1hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfQorLyoKKyAqIGpRdWVyeSBVSSBB
dXRvY29tcGxldGUgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0ICho
dHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlU
IG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNl
CisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9BdXRvY29tcGxldGUjdGhlbWluZwor
ICovCisudWktYXV0b2NvbXBsZXRlIHsgcG9zaXRpb246IGFic29sdXRlOyBjdXJzb3I6IGRlZmF1
bHQ7IH0JCisKKy8qIHdvcmthcm91bmRzICovCisqIGh0bWwgLnVpLWF1dG9jb21wbGV0ZSB7IHdp
ZHRoOjFweDsgfSAvKiB3aXRob3V0IHRoaXMsIHRoZSBtZW51IGV4cGFuZHMgdG8gMTAwJSBpbiBJ
RTYgKi8KKworLyoKKyAqIGpRdWVyeSBVSSBNZW51IDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAy
MDEwLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGlj
ZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDov
L2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvTWVu
dSN0aGVtaW5nCisgKi8KKy51aS1tZW51IHsKKwlsaXN0LXN0eWxlOm5vbmU7CisJcGFkZGluZzog
MnB4OworCW1hcmdpbjogMDsKKwlkaXNwbGF5OmJsb2NrOworCWZsb2F0OiBsZWZ0OworfQorLnVp
LW1lbnUgLnVpLW1lbnUgeworCW1hcmdpbi10b3A6IC0zcHg7Cit9CisudWktbWVudSAudWktbWVu
dS1pdGVtIHsKKwltYXJnaW46MDsKKwlwYWRkaW5nOiAwOworCXpvb206IDE7CisJZmxvYXQ6IGxl
ZnQ7CisJY2xlYXI6IGxlZnQ7CisJd2lkdGg6IDEwMCU7Cit9CisudWktbWVudSAudWktbWVudS1p
dGVtIGEgeworCXRleHQtZGVjb3JhdGlvbjpub25lOworCWRpc3BsYXk6YmxvY2s7CisJcGFkZGlu
ZzouMmVtIC40ZW07CisJbGluZS1oZWlnaHQ6MS41OworCXpvb206MTsKK30KKy51aS1tZW51IC51
aS1tZW51LWl0ZW0gYS51aS1zdGF0ZS1ob3ZlciwKKy51aS1tZW51IC51aS1tZW51LWl0ZW0gYS51
aS1zdGF0ZS1hY3RpdmUgeworCWZvbnQtd2VpZ2h0OiBub3JtYWw7CisJbWFyZ2luOiAtMXB4Owor
fQorLyoKKyAqIGpRdWVyeSBVSSBCdXR0b24gMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEs
IEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNl
ZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1
ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9CdXR0b24j
dGhlbWluZworICovCisudWktYnV0dG9uIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlv
bjogcmVsYXRpdmU7IHBhZGRpbmc6IDA7IG1hcmdpbi1yaWdodDogLjFlbTsgdGV4dC1kZWNvcmF0
aW9uOiBub25lICFpbXBvcnRhbnQ7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC1hbGlnbjogY2VudGVy
OyB6b29tOiAxOyBvdmVyZmxvdzogdmlzaWJsZTsgfSAvKiB0aGUgb3ZlcmZsb3cgcHJvcGVydHkg
cmVtb3ZlcyBleHRyYSB3aWR0aCBpbiBJRSAqLworLnVpLWJ1dHRvbi1pY29uLW9ubHkgeyB3aWR0
aDogMi4yZW07IH0gLyogdG8gbWFrZSByb29tIGZvciB0aGUgaWNvbiwgYSB3aWR0aCBuZWVkcyB0
byBiZSBzZXQgaGVyZSAqLworYnV0dG9uLnVpLWJ1dHRvbi1pY29uLW9ubHkgeyB3aWR0aDogMi40
ZW07IH0gLyogYnV0dG9uIGVsZW1lbnRzIHNlZW0gdG8gbmVlZCBhIGxpdHRsZSBtb3JlIHdpZHRo
ICovCisudWktYnV0dG9uLWljb25zLW9ubHkgeyB3aWR0aDogMy40ZW07IH0gCitidXR0b24udWkt
YnV0dG9uLWljb25zLW9ubHkgeyB3aWR0aDogMy43ZW07IH0gCisKKy8qYnV0dG9uIHRleHQgZWxl
bWVudCAqLworLnVpLWJ1dHRvbiAudWktYnV0dG9uLXRleHQgeyBkaXNwbGF5OiBibG9jazsgbGlu
ZS1oZWlnaHQ6IDEuNDsgIH0KKy51aS1idXR0b24tdGV4dC1vbmx5IC51aS1idXR0b24tdGV4dCB7
IHBhZGRpbmc6IC40ZW0gMWVtOyB9CisudWktYnV0dG9uLWljb24tb25seSAudWktYnV0dG9uLXRl
eHQsIC51aS1idXR0b24taWNvbnMtb25seSAudWktYnV0dG9uLXRleHQgeyBwYWRkaW5nOiAuNGVt
OyB0ZXh0LWluZGVudDogLTk5OTk5OTlweDsgfQorLnVpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFy
eSAudWktYnV0dG9uLXRleHQsIC51aS1idXR0b24tdGV4dC1pY29ucyAudWktYnV0dG9uLXRleHQg
eyBwYWRkaW5nOiAuNGVtIDFlbSAuNGVtIDIuMWVtOyB9CisudWktYnV0dG9uLXRleHQtaWNvbi1z
ZWNvbmRhcnkgLnVpLWJ1dHRvbi10ZXh0LCAudWktYnV0dG9uLXRleHQtaWNvbnMgLnVpLWJ1dHRv
bi10ZXh0IHsgcGFkZGluZzogLjRlbSAyLjFlbSAuNGVtIDFlbTsgfQorLnVpLWJ1dHRvbi10ZXh0
LWljb25zIC51aS1idXR0b24tdGV4dCB7IHBhZGRpbmctbGVmdDogMi4xZW07IHBhZGRpbmctcmln
aHQ6IDIuMWVtOyB9CisvKiBubyBpY29uIHN1cHBvcnQgZm9yIGlucHV0IGVsZW1lbnRzLCBwcm92
aWRlIHBhZGRpbmcgYnkgZGVmYXVsdCAqLworaW5wdXQudWktYnV0dG9uIHsgcGFkZGluZzogLjRl
bSAxZW07IH0KKworLypidXR0b24gaWNvbiBlbGVtZW50KHMpICovCisudWktYnV0dG9uLWljb24t
b25seSAudWktaWNvbiwgLnVpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFyeSAudWktaWNvbiwgLnVp
LWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IC51aS1pY29uLCAudWktYnV0dG9uLXRleHQtaWNv
bnMgLnVpLWljb24sIC51aS1idXR0b24taWNvbnMtb25seSAudWktaWNvbiB7IHBvc2l0aW9uOiBh
YnNvbHV0ZTsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC04cHg7IH0KKy51aS1idXR0b24taWNvbi1v
bmx5IC51aS1pY29uIHsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLThweDsgfQorLnVpLWJ1dHRv
bi10ZXh0LWljb24tcHJpbWFyeSAudWktYnV0dG9uLWljb24tcHJpbWFyeSwgLnVpLWJ1dHRvbi10
ZXh0LWljb25zIC51aS1idXR0b24taWNvbi1wcmltYXJ5LCAudWktYnV0dG9uLWljb25zLW9ubHkg
LnVpLWJ1dHRvbi1pY29uLXByaW1hcnkgeyBsZWZ0OiAuNWVtOyB9CisudWktYnV0dG9uLXRleHQt
aWNvbi1zZWNvbmRhcnkgLnVpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSwgLnVpLWJ1dHRvbi10ZXh0
LWljb25zIC51aS1idXR0b24taWNvbi1zZWNvbmRhcnksIC51aS1idXR0b24taWNvbnMtb25seSAu
dWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHsgcmlnaHQ6IC41ZW07IH0KKy51aS1idXR0b24tdGV4
dC1pY29ucyAudWktYnV0dG9uLWljb24tc2Vjb25kYXJ5LCAudWktYnV0dG9uLWljb25zLW9ubHkg
LnVpLWJ1dHRvbi1pY29uLXNlY29uZGFyeSB7IHJpZ2h0OiAuNWVtOyB9CisKKy8qYnV0dG9uIHNl
dHMqLworLnVpLWJ1dHRvbnNldCB7IG1hcmdpbi1yaWdodDogN3B4OyB9CisudWktYnV0dG9uc2V0
IC51aS1idXR0b24geyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLXJpZ2h0OiAtLjNlbTsgfQorCisv
KiB3b3JrYXJvdW5kcyAqLworYnV0dG9uLnVpLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7IGJv
cmRlcjogMDsgcGFkZGluZzogMDsgfSAvKiByZXNldCBleHRyYSBwYWRkaW5nIGluIEZpcmVmb3gg
Ki8KKy8qCisgKiBqUXVlcnkgVUkgRGlhbG9nIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDEx
LCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5z
ZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2px
dWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRGlhbG9n
I3RoZW1pbmcKKyAqLworLnVpLWRpYWxvZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcGFkZGluZzog
LjJlbTsgd2lkdGg6IDMwMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9CisudWktZGlhbG9nIC51aS1k
aWFsb2ctdGl0bGViYXIgeyBwYWRkaW5nOiAuNGVtIDFlbTsgcG9zaXRpb246IHJlbGF0aXZlOyAg
fQorLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogLjFl
bSAxNnB4IC4xZW0gMDsgfSAKKy51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB7
IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IC4zZW07IHRvcDogNTAlOyB3aWR0aDogMTlweDsg
bWFyZ2luOiAtMTBweCAwIDAgMDsgcGFkZGluZzogMXB4OyBoZWlnaHQ6IDE4cHg7IH0KKy51aS1k
aWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSBzcGFuIHsgZGlzcGxheTogYmxvY2s7IG1h
cmdpbjogMXB4OyB9CisudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2U6aG92ZXIs
IC51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpmb2N1cyB7IHBhZGRpbmc6IDA7
IH0KKy51aS1kaWFsb2cgLnVpLWRpYWxvZy1jb250ZW50IHsgcG9zaXRpb246IHJlbGF0aXZlOyBi
b3JkZXI6IDA7IHBhZGRpbmc6IC41ZW0gMWVtOyBiYWNrZ3JvdW5kOiBub25lOyBvdmVyZmxvdzog
YXV0bzsgem9vbTogMTsgfQorLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgeyB0ZXh0
LWFsaWduOiBsZWZ0OyBib3JkZXItd2lkdGg6IDFweCAwIDAgMDsgYmFja2dyb3VuZC1pbWFnZTog
bm9uZTsgbWFyZ2luOiAuNWVtIDAgMCAwOyBwYWRkaW5nOiAuM2VtIDFlbSAuNWVtIC40ZW07IH0K
Ky51aS1kaWFsb2cgLnVpLWRpYWxvZy1idXR0b25wYW5lIC51aS1kaWFsb2ctYnV0dG9uc2V0IHsg
ZmxvYXQ6IHJpZ2h0OyB9CisudWktZGlhbG9nIC51aS1kaWFsb2ctYnV0dG9ucGFuZSBidXR0b24g
eyBtYXJnaW46IC41ZW0gLjRlbSAuNWVtIDA7IGN1cnNvcjogcG9pbnRlcjsgfQorLnVpLWRpYWxv
ZyAudWktcmVzaXphYmxlLXNlIHsgd2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDsgcmlnaHQ6IDNw
eDsgYm90dG9tOiAzcHg7IH0KKy51aS1kcmFnZ2FibGUgLnVpLWRpYWxvZy10aXRsZWJhciB7IGN1
cnNvcjogbW92ZTsgfQorLyoKKyAqIGpRdWVyeSBVSSBTbGlkZXIgMS44LjEwCisgKgorICogQ29w
eXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICog
RHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisg
KiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNv
bS9VSS9TbGlkZXIjdGhlbWluZworICovCisudWktc2xpZGVyIHsgcG9zaXRpb246IHJlbGF0aXZl
OyB0ZXh0LWFsaWduOiBsZWZ0OyB9CisudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsgcG9z
aXRpb246IGFic29sdXRlOyB6LWluZGV4OiAyOyB3aWR0aDogMS4yZW07IGhlaWdodDogMS4yZW07
IGN1cnNvcjogZGVmYXVsdDsgfQorLnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHsgcG9zaXRp
b246IGFic29sdXRlOyB6LWluZGV4OiAxOyBmb250LXNpemU6IC43ZW07IGRpc3BsYXk6IGJsb2Nr
OyBib3JkZXI6IDA7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfQorCisudWktc2xpZGVyLWhv
cml6b250YWwgeyBoZWlnaHQ6IC44ZW07IH0KKy51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xp
ZGVyLWhhbmRsZSB7IHRvcDogLS4zZW07IG1hcmdpbi1sZWZ0OiAtLjZlbTsgfQorLnVpLXNsaWRl
ci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UgeyB0b3A6IDA7IGhlaWdodDogMTAwJTsgfQor
LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWluIHsgbGVmdDogMDsgfQor
LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHsgcmlnaHQ6IDA7IH0K
KworLnVpLXNsaWRlci12ZXJ0aWNhbCB7IHdpZHRoOiAuOGVtOyBoZWlnaHQ6IDEwMHB4OyB9Cisu
dWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItaGFuZGxlIHsgbGVmdDogLS4zZW07IG1hcmdp
bi1sZWZ0OiAwOyBtYXJnaW4tYm90dG9tOiAtLjZlbTsgfQorLnVpLXNsaWRlci12ZXJ0aWNhbCAu
dWktc2xpZGVyLXJhbmdlIHsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IH0KKy51aS1zbGlkZXItdmVy
dGljYWwgLnVpLXNsaWRlci1yYW5nZS1taW4geyBib3R0b206IDA7IH0KKy51aS1zbGlkZXItdmVy
dGljYWwgLnVpLXNsaWRlci1yYW5nZS1tYXggeyB0b3A6IDA7IH0vKgorICogalF1ZXJ5IFVJIFRh
YnMgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1
ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBW
ZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICog
aHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UYWJzI3RoZW1pbmcKKyAqLworLnVpLXRhYnMgeyBw
b3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IC4yZW07IHpvb206IDE7IH0gLyogcG9zaXRpb246
IHJlbGF0aXZlIHByZXZlbnRzIElFIHNjcm9sbCBidWcgKGVsZW1lbnQgd2l0aCBwb3NpdGlvbjog
cmVsYXRpdmUgaW5zaWRlIGNvbnRhaW5lciB3aXRoIG92ZXJmbG93OiBhdXRvIGFwcGVhciBhcyAi
Zml4ZWQiKSAqLworLnVpLXRhYnMgLnVpLXRhYnMtbmF2IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAu
MmVtIC4yZW0gMDsgfQorLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpIHsgbGlzdC1zdHlsZTogbm9u
ZTsgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAxcHg7IG1hcmdpbjogMCAu
MmVtIDFweCAwOyBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDA7IHdoaXRl
LXNwYWNlOiBub3dyYXA7IH0KKy51aS10YWJzIC51aS10YWJzLW5hdiBsaSBhIHsgZmxvYXQ6IGxl
ZnQ7IHBhZGRpbmc6IC41ZW0gMWVtOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KKy51aS10YWJz
IC51aS10YWJzLW5hdiBsaS51aS10YWJzLXNlbGVjdGVkIHsgbWFyZ2luLWJvdHRvbTogMDsgcGFk
ZGluZy1ib3R0b206IDFweDsgfQorLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtc2Vs
ZWN0ZWQgYSwgLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXN0YXRlLWRpc2FibGVkIGEsIC51
aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS1zdGF0ZS1wcm9jZXNzaW5nIGEgeyBjdXJzb3I6IHRl
eHQ7IH0KKy51aS10YWJzIC51aS10YWJzLW5hdiBsaSBhLCAudWktdGFicy51aS10YWJzLWNvbGxh
cHNpYmxlIC51aS10YWJzLW5hdiBsaS51aS10YWJzLXNlbGVjdGVkIGEgeyBjdXJzb3I6IHBvaW50
ZXI7IH0gLyogZmlyc3Qgc2VsZWN0b3IgaW4gZ3JvdXAgc2VlbXMgb2Jzb2xldGUsIGJ1dCByZXF1
aXJlZCB0byBvdmVyY29tZSBidWcgaW4gT3BlcmEgYXBwbHlpbmcgY3Vyc29yOiB0ZXh0IG92ZXJh
bGwgaWYgZGVmaW5lZCBlbHNld2hlcmUuLi4gKi8KKy51aS10YWJzIC51aS10YWJzLXBhbmVsIHsg
ZGlzcGxheTogYmxvY2s7IGJvcmRlci13aWR0aDogMDsgcGFkZGluZzogMWVtIDEuNGVtOyBiYWNr
Z3JvdW5kOiBub25lOyB9CisudWktdGFicyAudWktdGFicy1oaWRlIHsgZGlzcGxheTogbm9uZSAh
aW1wb3J0YW50OyB9CisvKgorICogalF1ZXJ5IFVJIERhdGVwaWNrZXIgMS44LjEwCisgKgorICog
Q29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQor
ICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMu
CisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5
LmNvbS9VSS9EYXRlcGlja2VyI3RoZW1pbmcKKyAqLworLnVpLWRhdGVwaWNrZXIgeyB3aWR0aDog
MTdlbTsgcGFkZGluZzogLjJlbSAuMmVtIDA7IGRpc3BsYXk6IG5vbmU7IH0KKy51aS1kYXRlcGlj
a2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nOi4y
ZW0gMDsgfQorLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldiwgLnVpLWRhdGVwaWNr
ZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDJweDsgd2lk
dGg6IDEuOGVtOyBoZWlnaHQ6IDEuOGVtOyB9CisudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tl
ci1wcmV2LWhvdmVyLCAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHsg
dG9wOiAxcHg7IH0KKy51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgeyBsZWZ0OjJw
eDsgfQorLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7IHJpZ2h0OjJweDsgfQor
LnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlciB7IGxlZnQ6MXB4OyB9Cisu
dWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHsgcmlnaHQ6MXB4OyB9Cisu
dWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4sIC51aS1kYXRlcGlja2VyIC51
aS1kYXRlcGlja2VyLW5leHQgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDUwJTsgbWFyZ2luLWxlZnQ6IC04cHg7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAt
OHB4OyAgfQorLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUgeyBtYXJnaW46IDAg
Mi4zZW07IGxpbmUtaGVpZ2h0OiAxLjhlbTsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisudWktZGF0
ZXBpY2tlciAudWktZGF0ZXBpY2tlci10aXRsZSBzZWxlY3QgeyBmb250LXNpemU6MWVtOyBtYXJn
aW46MXB4IDA7IH0KKy51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLXll
YXIge3dpZHRoOiAxMDAlO30KKy51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLW1v
bnRoLCAKKy51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIgeyB3aWR0aDog
NDklO30KKy51aS1kYXRlcGlja2VyIHRhYmxlIHt3aWR0aDogMTAwJTsgZm9udC1zaXplOiAuOWVt
OyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBtYXJnaW46MCAwIC40ZW07IH0KKy51aS1kYXRl
cGlja2VyIHRoIHsgcGFkZGluZzogLjdlbSAuM2VtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQt
d2VpZ2h0OiBib2xkOyBib3JkZXI6IDA7ICB9CisudWktZGF0ZXBpY2tlciB0ZCB7IGJvcmRlcjog
MDsgcGFkZGluZzogMXB4OyB9CisudWktZGF0ZXBpY2tlciB0ZCBzcGFuLCAudWktZGF0ZXBpY2tl
ciB0ZCBhIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IC4yZW07IHRleHQtYWxpZ246IHJpZ2h0
OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KKy51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2Vy
LWJ1dHRvbnBhbmUgeyBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyBtYXJnaW46IC43ZW0gMCAwIDA7
IHBhZGRpbmc6MCAuMmVtOyBib3JkZXItbGVmdDogMDsgYm9yZGVyLXJpZ2h0OiAwOyBib3JkZXIt
Ym90dG9tOiAwOyB9CisudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1
dHRvbiB7IGZsb2F0OiByaWdodDsgbWFyZ2luOiAuNWVtIC4yZW0gLjRlbTsgY3Vyc29yOiBwb2lu
dGVyOyBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbSAuNmVtOyB3aWR0aDphdXRvOyBvdmVyZmxvdzp2
aXNpYmxlOyB9CisudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRv
bi51aS1kYXRlcGlja2VyLWN1cnJlbnQgeyBmbG9hdDpsZWZ0OyB9CisKKy8qIHdpdGggbXVsdGlw
bGUgY2FsZW5kYXJzICovCisudWktZGF0ZXBpY2tlci51aS1kYXRlcGlja2VyLW11bHRpIHsgd2lk
dGg6YXV0bzsgfQorLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyBm
bG9hdDpsZWZ0OyB9CisudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB0
YWJsZSB7IHdpZHRoOjk1JTsgbWFyZ2luOjAgYXV0byAuNGVtOyB9CisudWktZGF0ZXBpY2tlci1t
dWx0aS0yIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgd2lkdGg6NTAlOyB9CisudWktZGF0ZXBpY2tl
ci1tdWx0aS0zIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgd2lkdGg6MzMuMyU7IH0KKy51aS1kYXRl
cGlja2VyLW11bHRpLTQgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyB3aWR0aDoyNSU7IH0KKy51aS1k
YXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXIt
aGVhZGVyIHsgYm9yZGVyLWxlZnQtd2lkdGg6MDsgfQorLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVp
LWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7IGJvcmRlci1s
ZWZ0LXdpZHRoOjA7IH0KKy51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWJ1dHRv
bnBhbmUgeyBjbGVhcjpsZWZ0OyB9CisudWktZGF0ZXBpY2tlci1yb3ctYnJlYWsgeyBjbGVhcjpi
b3RoOyB3aWR0aDoxMDAlOyB9CisKKy8qIFJUTCBzdXBwb3J0ICovCisudWktZGF0ZXBpY2tlci1y
dGwgeyBkaXJlY3Rpb246IHJ0bDsgfQorLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2Vy
LXByZXYgeyByaWdodDogMnB4OyBsZWZ0OiBhdXRvOyB9CisudWktZGF0ZXBpY2tlci1ydGwgLnVp
LWRhdGVwaWNrZXItbmV4dCB7IGxlZnQ6IDJweDsgcmlnaHQ6IGF1dG87IH0KKy51aS1kYXRlcGlj
a2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2OmhvdmVyIHsgcmlnaHQ6IDFweDsgbGVmdDogYXV0
bzsgfQorLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQ6aG92ZXIgeyBsZWZ0
OiAxcHg7IHJpZ2h0OiBhdXRvOyB9CisudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXIt
YnV0dG9ucGFuZSB7IGNsZWFyOnJpZ2h0OyB9CisudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVw
aWNrZXItYnV0dG9ucGFuZSBidXR0b24geyBmbG9hdDogbGVmdDsgfQorLnVpLWRhdGVwaWNrZXIt
cnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVu
dCB7IGZsb2F0OnJpZ2h0OyB9CisudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3Jv
dXAgeyBmbG9hdDpyaWdodDsgfQorLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdy
b3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOjA7IGJv
cmRlci1sZWZ0LXdpZHRoOjFweDsgfQorLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2Vy
LWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItcmlnaHQtd2lkdGg6
MDsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyB9CisKKy8qIElFNiBJRlJBTUUgRklYICh0YWtlbiBm
cm9tIGRhdGVwaWNrZXIgMS41LjMgKi8KKy51aS1kYXRlcGlja2VyLWNvdmVyIHsKKyAgICBkaXNw
bGF5OiBub25lOyAvKnNvcnJ5IGZvciBJRTUqLworICAgIGRpc3BsYXkvKiovOiBibG9jazsgLypz
b3JyeSBmb3IgSUU1Ki8KKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qbXVzdCBoYXZlKi8KKyAg
ICB6LWluZGV4OiAtMTsgLyptdXN0IGhhdmUqLworICAgIGZpbHRlcjogbWFzaygpOyAvKm11c3Qg
aGF2ZSovCisgICAgdG9wOiAtNHB4OyAvKm11c3QgaGF2ZSovCisgICAgbGVmdDogLTRweDsgLypt
dXN0IGhhdmUqLworICAgIHdpZHRoOiAyMDBweDsgLyptdXN0IGhhdmUqLworICAgIGhlaWdodDog
MjAwcHg7IC8qbXVzdCBoYXZlKi8KK30vKgorICogalF1ZXJ5IFVJIFByb2dyZXNzYmFyIDEuOC4x
MAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNv
bS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAy
IGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9k
b2NzLmpxdWVyeS5jb20vVUkvUHJvZ3Jlc3NiYXIjdGhlbWluZworICovCisudWktcHJvZ3Jlc3Ni
YXIgeyBoZWlnaHQ6MmVtOyB0ZXh0LWFsaWduOiBsZWZ0OyB9CisudWktcHJvZ3Jlc3NiYXIgLnVp
LXByb2dyZXNzYmFyLXZhbHVlIHttYXJnaW46IC0xcHg7IGhlaWdodDoxMDAlOyB9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvY3NzVHJhbnNmb3JtLmh0bWwgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3NUcmFuc2Zvcm0uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzNiOTk2NDhhY2EKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9jc3NUcmFuc2Zvcm0uaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
dHlsZT4KKyNwYXJlbnRZIHsKKyAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAwMHB4KTsKKyAg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMDAwcHgpOworICAtby10cmFuc2Zvcm06
IHRyYW5zbGF0ZVkoLTEwMDAwcHgpOworICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAw
MHB4KTsKKyAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMDAwcHgpOworfQorI3BhcmVu
dFggeworICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMDAwcHgpOworICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlWCgtMTAwMDBweCk7CisgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgt
MTAwMDBweCk7CisgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMDAwcHgpOworICAtbW96
LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwMDBweCk7Cit9CisjdHJhbnNmb3JtWCB7CisgIHRy
YW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwMDBweCk7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGVYKC0xMDAwMHB4KTsKKyAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAwMHB4KTsK
KyAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwMDBweCk7CisgIC1tb3otdHJhbnNmb3Jt
OiB0cmFuc2xhdGVYKC0xMDAwMHB4KTsKK30KKyN0cmFuc2Zvcm1ZIHsKKyAgdHJhbnNmb3JtOiB0
cmFuc2xhdGVZKC0xMDAwMHB4KTsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEw
MDAwcHgpOworICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMDAwcHgpOworICAtbXMtdHJh
bnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAwMHB4KTsKKyAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0
ZVkoLTEwMDAwcHgpOworfQorCisjemVyby10cmFuc2Zvcm0geworICB0cmFuc2Zvcm06IHRyYW5z
bGF0ZVkoMHB4KTsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKKyAgLW8t
dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7CisgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVko
MHB4KTsKKyAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKKyAgdHJhbnNmb3JtOiB0
cmFuc2xhdGVYKDBweCk7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7Cisg
IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOworICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xh
dGVYKDBweCk7CisgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7Cit9Cis8L3N0eWxl
PgorPGRpdiBpZD0nemVyby10cmFuZm9ybSc+CitZb3Ugc2hvdWxkbid0IHNlZSBhbnl0aGluZyBv
dGhlciB0aGFuIHRoaXMgc2VudGVuY2Ugb24gdGhlIHBhZ2UKKzwvZGl2PgorPGRpdiBpZD0ncGFy
ZW50WSc+CisgIEkgaGF2ZSBhIGhpZGRlbiBjaGlsZAorICA8ZGl2IGlkPSdjaGlsZFknPgorICAg
IEkgYW0gYSBoaWRkZW4gY2hpbGQKKyAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9J3BhcmVudFgn
PgorICBJIGhhdmUgYSBoaWRkZW4gY2hpbGQKKyAgPGRpdiBpZD0nY2hpbGRYJz4KKyAgICBJIGFt
IGEgaGlkZGVuIGNoaWxkCisgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSd0cmFuc2Zvcm1YJz5J
IGFtIGEgaGlkZGVuIGVsZW1lbnQgPC9kaXY+Cis8ZGl2IGlkPSd0cmFuc2Zvcm1ZJz5JIGFtIGEg
aGlkZGVuIGVsZW1lbnQgPC9kaXY+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3NUcmFuc2Zvcm0yLmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9jc3NUcmFuc2Zvcm0yLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYwMjkyNGJmYmJhCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvY3NzVHJhbnNmb3JtMi5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHN0eWxlPgorI25lZ2F0aXZlLXBlcmNlbnRhZ2UtdHJhbnNmb3JtWXsKKyAgdHJhbnNmb3Jt
OiB0cmFuc2xhdGVZKC03NXB4KTsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTc1
JSk7CisgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzUlKTsKKyAgLW1zLXRyYW5zZm9ybTog
dHJhbnNsYXRlWSgtNzUlKTsKKyAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTc1JSk7Cit9
CisuYmxvY2sgeworICBkaXNwbGF5ID0gYmxvY2s7Cit9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz0n
YmxvY2snPgorICA8YnIvPgorPC9kaXY+CisgIDxici8+Cis8ZGl2IGNsYXNzPSdibG9jayc+Cis8
L2Rpdj4KKzxkaXYgaWQ9J25lZ2F0aXZlLXBlcmNlbnRhZ2UtdHJhbnNmb3JtWSc+SSBhbSBub3Qg
YSBoaWRkZW4gZWxlbWVudCA8L2Rpdj4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2RvY3VtZW50X3dyaXRlX2luX29ubG9hZC5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZG9jdW1l
bnRfd3JpdGVfaW5fb25sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmExNWZjNDc5ZWE5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZG9jdW1lbnRfd3JpdGVfaW5fb25sb2FkLmh0
bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPkRvY3VtZW50IFdy
aXRlIEluIE9ubG9hZDwvdGl0bGU+CisgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gaW5pdCgpIHsK
KyAgICAgIGRvY3VtZW50LndyaXRlbG4oJ2dvb2RieWUsIHdvcmxkIScpOworICAgIH0KKyAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKTsiPgorPHA+aGVsbG8gd29ybGQ8
L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFnQW5kRHJvcEluc2lkZVNjcm9sbGVkRGl2Lmh0
bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFn
QW5kRHJvcEluc2lkZVNjcm9sbGVkRGl2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjBiMmVlOWEyNDYyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHJhZ0FuZERyb3BJbnNpZGVTY3Jv
bGxlZERpdi5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cis8
IS0tCisuZHJhZ21le3Bvc2l0aW9uOnJlbGF0aXZlO30KKy0tPgorPC9zdHlsZT4KKzxzY3JpcHQg
bGFuZ3VhZ2U9IkphdmFTY3JpcHQxLjIiPgorPCEtLQorCit2YXIgaWU9ZG9jdW1lbnQuYWxsOwor
dmFyIG5uNj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCYmIWRvY3VtZW50LmFsbDsKKwordmFyIGlz
ZHJhZz1mYWxzZTsKK3ZhciB4LHk7Cit2YXIgZG9iajsKKworZnVuY3Rpb24gbW92ZW1vdXNlKGUp
Cit7CisKKyAgaWYgKGlzZHJhZykKKyAgeworICAgIGRvYmouc3R5bGUubGVmdCA9IG5uNiA/IHR4
ICsgZS5jbGllbnRYIC0geCA6IHR4ICsgZXZlbnQuY2xpZW50WCAtIHg7CisgICAgZG9iai5zdHls
ZS50b3AgID0gbm42ID8gdHkgKyBlLmNsaWVudFkgLSB5IDogdHkgKyBldmVudC5jbGllbnRZIC0g
eTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KKworZnVuY3Rpb24gc2VsZWN0bW91c2UoZSkK
K3sKKyAgdmFyIGZvYmogICAgICAgPSBubjYgPyBlLnRhcmdldCA6IGV2ZW50LnNyY0VsZW1lbnQ7
CisgIHZhciB0b3BlbGVtZW50ID0gbm42ID8gIkhUTUwiIDogIkJPRFkiOworCisgIHdoaWxlIChm
b2JqLnRhZ05hbWUgIT0gdG9wZWxlbWVudCAmJiBmb2JqLmNsYXNzTmFtZSAhPSAiZHJhZ21lIikK
KyAgeworICAgIGZvYmogPSBubjYgPyBmb2JqLnBhcmVudE5vZGUgOiBmb2JqLnBhcmVudEVsZW1l
bnQ7CisgIH0KKworICBpZiAoZm9iai5jbGFzc05hbWU9PSJkcmFnbWUiKQorICB7CisgICAgaXNk
cmFnID0gdHJ1ZTsKKyAgICBkb2JqID0gZm9iajsKKyAgICB0eCA9IHBhcnNlSW50KGRvYmouc3R5
bGUubGVmdCswKTsKKyAgICB0eSA9IHBhcnNlSW50KGRvYmouc3R5bGUudG9wKzApOworICAgIHgg
PSBubjYgPyBlLmNsaWVudFggOiBldmVudC5jbGllbnRYOworICAgIHkgPSBubjYgPyBlLmNsaWVu
dFkgOiBldmVudC5jbGllbnRZOworICAgIGRvY3VtZW50Lm9ubW91c2Vtb3ZlPW1vdmVtb3VzZTsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KKworZG9jdW1lbnQub25tb3VzZWRvd249c2VsZWN0
bW91c2U7Citkb2N1bWVudC5vbm1vdXNldXA9bmV3IEZ1bmN0aW9uKCJpc2RyYWc9ZmFsc2UiKTsK
KworLy8tLT4KKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0ib3Zl
cmZsb3c6IHNjcm9sbDsgbWFyZ2luOiAyMHB4OyBoZWlnaHQ6IDkwJTsgd2lkdGg6IDkwJSI+Cisg
ICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA0MDAwcHg7IHdpZHRoOiA0MDAwcHg7Ij4KKyAgICAgIDxk
aXYgaWQ9InRlc3QxIiBjbGFzcz0iZHJhZ21lIiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDEwMHB4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
YmxhY2s7IiAvPgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFnQW5kRHJvcFRlc3QuaHRtbCBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2RyYWdBbmREcm9wVGVzdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZGVlMTZiMGI0ZQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2RyYWdBbmREcm9wVGVzdC5odG1sCkBAIC0wLDAgKzEsMTAyIEBACis8aHRtbD4K
Kzxib2R5PgorCis8c3R5bGU+Cis8IS0tCisuZHJhZ21le3Bvc2l0aW9uOnJlbGF0aXZlO30KKy0t
PgorPC9zdHlsZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQxLjIiPgorPCEtLQorCit2
YXIgaWU9ZG9jdW1lbnQuYWxsOwordmFyIG5uNj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCYmIWRv
Y3VtZW50LmFsbDsKKwordmFyIGlzZHJhZz1mYWxzZTsKK3ZhciB4LHk7Cit2YXIgZG9iajsKKwor
ZnVuY3Rpb24gbW92ZW1vdXNlKGUpCit7CisgIGlmIChpc2RyYWcpCisgIHsKKyAgICBpZiAoZSAm
JiBlLmNsaWVudFgpCisgICAgeworICAgICAgZG9iai5zdHlsZS5sZWZ0ID0gdHggKyBlLmNsaWVu
dFggLSB4OworICAgICAgZG9iai5zdHlsZS50b3AgPSB0eSArIGUuY2xpZW50WSAtIHkKKyAgICB9
CisgICAgZWxzZQorICAgIHsKKyAgICAgIGRvYmouc3R5bGUubGVmdCA9IHR4ICsgZXZlbnQuY2xp
ZW50WCAtIHg7CisgICAgICBkb2JqLnN0eWxlLnRvcCA9IHR5ICsgZXZlbnQuY2xpZW50WSAtIHk7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitmdW5jdGlvbiBzZWxlY3Rtb3Vz
ZShlKQoreworICB2YXIgZm9iajsKKyAgdmFyIHRvcGVsZW1lbnQ7CisgIGlmIChlICYmIGUudGFy
Z2V0KQorICB7CisgICAgZm9iaiA9IGUudGFyZ2V0OworICAgIHRvcGVsZW1lbnQgPSAiSFRNTCI7
CisgIH0KKyAgZWxzZQorICB7CisgICAgZm9iaiA9IGV2ZW50LnNyY0VsZW1lbnQ7CisgICAgdG9w
ZWxlbWVudCA9ICJCT0RZIjsKKyAgfQorCisgIHdoaWxlIChmb2JqLnRhZ05hbWUgIT0gdG9wZWxl
bWVudCAmJiBmb2JqLmNsYXNzTmFtZSAhPSAiZHJhZ21lIikKKyAgeworICAgIGlmIChmb2JqLnBh
cmVudE5vZGUpCisgICAgeworICAgICAgZm9iaiA9IGZvYmoucGFyZW50Tm9kZTsKKyAgICB9Cisg
ICAgZWxzZQorICAgIHsKKyAgICAgIGZvYmogPSBmb2JqLnBhcmVudEVsZW1lbnQ7CisgICAgfQor
ICB9CisKKyAgaWYgKGZvYmouY2xhc3NOYW1lPT0iZHJhZ21lIikKKyAgeworICAgIGlzZHJhZyA9
IHRydWU7CisgICAgZG9iaiA9IGZvYmo7CisgICAgdHggPSBwYXJzZUludChkb2JqLnN0eWxlLmxl
ZnQrMCk7CisgICAgdHkgPSBwYXJzZUludChkb2JqLnN0eWxlLnRvcCswKTsKKyAgICBpZiAoZSAm
JiBlLmNsaWVudFgpCisgICAgeworICAgICAgeCA9IGUuY2xpZW50WDsKKyAgICAgIHkgPSBlLmNs
aWVudFk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICB4ID0gZXZlbnQuY2xpZW50WDsK
KyAgICAgIHkgPSBldmVudC5jbGllbnRZOworICAgIH0KKworICAgIGRvY3VtZW50Lm9ubW91c2Vt
b3ZlPW1vdmVtb3VzZTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KKworZG9jdW1lbnQub25t
b3VzZWRvd249c2VsZWN0bW91c2U7Citkb2N1bWVudC5vbm1vdXNldXA9bmV3IEZ1bmN0aW9uKCJp
c2RyYWc9ZmFsc2UiKTsKKworLy8tLT4KKzwvc2NyaXB0PgorCisKKworPGltZyBzcmM9Imljb24u
Z2lmIiBjbGFzcz0iZHJhZ21lIiBpZD0idGVzdDEiPjxicj4KKzxpbWcgc3JjPSJpY29uLmdpZiIg
Y2xhc3M9ImRyYWdtZSIgaWQ9InRlc3QyIj48YnI+Cis8Yj4iSGkgdGhlcmU8L2I+Cis8ZGl2IHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIxMHB4OyB0b3A6IDgwcHg7IGhlaWdodDog
NDAwcHg7IHdpZHRoOiAxMDBweDsgcGFkZGluZzogMTBlbTsiPgorPGltZyBzcmM9Imljb24uZ2lm
IiBjbGFzcz0iZHJhZ21lIiBpZD0idGVzdDMiPjxicj4KKzxpbWcgc3JjPSJpY29uLmdpZiIgY2xh
c3M9ImRyYWdtZSIgaWQ9InRlc3Q0Ij48YnI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2RyYWdEcm9wT3ZlcmZsb3cuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2RyYWdEcm9wT3ZlcmZsb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uZWNiMjU2MjVkNTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFnRHJvcE92ZXJm
bG93Lmh0bWwKQEAgLTAsMCArMSwxMDQgQEAKKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIj4K
KyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICBib2R5IHsKKyAgICAgIGNvbG9yOiAjMjIy
OworICAgICAgZm9udC1zaXplOiAxM3B4OworICAgIH0KKworICAgIC50aW1lLXNsb3QgeworICAg
ICAgaGVpZ2h0OiA0N3B4OworICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICAgIGJvcmRl
ci10b3A6IDFweCBzb2xpZCAjZGRkOworICAgICAgcGFkZGluZy1yaWdodDogMnB4OworICAgICAg
ei1pbmRleDogMjsKKyAgICB9CisKKyAgICAjdGltZS1tYXJrZXIgeworICAgICAgYm9yZGVyLXRv
cDogM3B4IHNvbGlkICM0ZDkwZmU7CisgICAgICBoZWlnaHQ6IDZweDsKKyAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgIHdpZHRoOiAxMDAlOworICAgICAgei1pbmRleDogNDsKKyAgICAg
IGN1cnNvcjogcm93LXJlc2l6ZTsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6
IDI1MHB4OyBoZWlnaHQ6IDQ3MHB4OyI+CisgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2
ZTsiPgorICAgIDxkaXYgc3R5bGU9Im92ZXJmbG93OiBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7
IGhlaWdodDogODUlOyBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViIj4KKyAgICAgIDxkaXYgaWQ9
InRpbWUtbWFya2VyIiBzdHlsZT0idG9wOiA0MzI7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9
InRpbWUtc2xvdCI+MTJhbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90Ij4xYW08
L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+MmFtPC9kaXY+CisgICAgICA8ZGl2
IGNsYXNzPSJ0aW1lLXNsb3QiPjNhbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90
Ij40YW08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+NWFtPC9kaXY+CisgICAg
ICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjZhbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGlt
ZS1zbG90Ij43YW08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+OGFtPC9kaXY+
CisgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjlhbTwvZGl2PgorICAgICAgPGRpdiBjbGFz
cz0idGltZS1zbG90Ij4xMGFtPC9kaXY+CisgICAgICA8ZGl2IGlkPSIxMWFtIiBjbGFzcz0idGlt
ZS1zbG90Ij4xMWFtPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjEycG08L2Rp
dj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+MXBtPC9kaXY+CisgICAgICA8ZGl2IGNs
YXNzPSJ0aW1lLXNsb3QiPjJwbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90Ij4z
cG08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+NHBtPC9kaXY+CisgICAgICA8
ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjVwbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1z
bG90Ij42cG08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+N3BtPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNsb3QiPjhwbTwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0i
dGltZS1zbG90Ij45cG08L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2xvdCI+MTBwbTwv
ZGl2PgorICAgICAgPGRpdiBjbGFzcz0idGltZS1zbG90Ij4xMXBtPC9kaXY+CisgICAgPC9kaXY+
CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgIHZh
ciBzdGFydFRpbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGltZS1tYXJrZXInKTsKKwor
ICB2YXIgaWUgPSBkb2N1bWVudC5hbGw7CisgIHZhciBubjYgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCAmJiAhZG9jdW1lbnQuYWxsOworCisgIHZhciBpc0RyYWcgPSBmYWxzZTsKKyAgdmFyIHgs
IHksIHR4LCB0eTsKKyAgdmFyIGRyYWdFbDsKKworICBmdW5jdGlvbiBtb3ZlbW91c2UoZSkgewor
ICAgIGlmIChpc0RyYWcpIHsKKyAgICAgIHZhciBkeSA9IChubjYgPyBlLmNsaWVudFkgLSB5IDog
ZXZlbnQuY2xpZW50WSAtIHkpOworICAgICAgaWYgKGR5ICUgMTIgPT0gMCkgeworICAgICAgICBk
cmFnRWwuc3R5bGUudG9wID0gdHkgKyBkeTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgIH0KKworICBmdW5jdGlvbiBzZWxlY3Rtb3VzZShlKSB7CisgICAgdmFyIHNyY0Vs
ID0gbm42ID8gZS50YXJnZXQgOiBldmVudC5zcmNFbGVtZW50OworICAgIHZhciB0b3BFbGVtZW50
ID0gbm42ID8gIkhUTUwiIDogIkJPRFkiOworCisgICAgd2hpbGUgKHNyY0VsLnRhZ05hbWUgIT0g
dG9wRWxlbWVudCAmJiBzcmNFbCAhPSBzdGFydFRpbWUpIHsKKyAgICAgIHNyY0VsID0gbm42ID8g
c3JjRWwucGFyZW50Tm9kZSA6IHNyY0VsLnBhcmVudEVsZW1lbnQ7CisgICAgfQorCisgICAgaWYg
KHNyY0VsID09PSBzdGFydFRpbWUpIHsKKyAgICAgIGlzRHJhZyA9IHRydWU7CisgICAgICBkcmFn
RWwgPSBzcmNFbDsKKyAgICAgIHR4ID0gcGFyc2VJbnQoZHJhZ0VsLnN0eWxlLmxlZnQgKyAwKTsK
KyAgICAgIHR5ID0gcGFyc2VJbnQoZHJhZ0VsLnN0eWxlLnRvcCArIDApOworICAgICAgeCA9IG5u
NiA/IGUuY2xpZW50WCA6IGV2ZW50LmNsaWVudFg7CisgICAgICB5ID0gbm42ID8gZS5jbGllbnRZ
IDogZXZlbnQuY2xpZW50WTsKKyAgICAgIGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gbW92ZW1vdXNl
OworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorCisgIGRvY3VtZW50Lm9ubW91c2Vk
b3duID0gc2VsZWN0bW91c2U7CisgIGRvY3VtZW50Lm9ubW91c2V1cCA9IGZ1bmN0aW9uKCkgeyBp
c0RyYWcgPSBmYWxzZTsgfTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2RyYWdnYWJsZUxpc3RzLmh0bWwgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcmFnZ2FibGVMaXN0cy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mN2UwZGNhY2U0NgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2RyYWdnYWJsZUxpc3RzLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04IiAv
PgorICAgIDx0aXRsZT5qUXVlcnkgVUkgU29ydGFibGUgLSBDb25uZWN0IGxpc3RzPC90aXRsZT4K
KyAgICA8IS0tbGluayB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGV2ZWxvcG1lbnQtYnVuZGxlL3Ro
ZW1lcy9iYXNlL2pxdWVyeS51aS5hbGwuY3NzIiByZWw9InN0eWxlc2hlZXQiIC8tLT4KKyAgICA8
IS0tbGluayB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iZGV2ZWxvcG1lbnQtYnVuZGxlL2RlbW9zL2Rl
bW9zLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiAvLS0+CisgICAgPGxpbmsgdHlwZT0idGV4dC9jc3Mi
IGhyZWY9ImNzcy91aS1saWdodG5lc3MvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20uY3NzIiByZWw9
InN0eWxlc2hlZXQiIC8+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
anMvanF1ZXJ5LTEuNC40Lm1pbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ianMvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20ubWluLmpzIj48L3Nj
cmlwdD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgI3NvcnRhYmxlMSwgI3Nv
cnRhYmxlMiB7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBm
bG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9CisgICAgICAjc29ydGFibGUxIGxpLCAj
c29ydGFibGUyIGxpIHsgbWFyZ2luOiAwIDVweCA1cHggNXB4OyBwYWRkaW5nOiA1cHg7IGZvbnQt
c2l6ZTogMS4yZW07IHdpZHRoOiAxMjBweDsgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgJChmdW5jdGlvbigpIHsKKyAgICAgICAgICAk
KCIjc29ydGFibGUxLCAjc29ydGFibGUyIikuc29ydGFibGUoeworICAgICAgICAgICAgY29ubmVj
dFdpdGg6ICcuY29ubmVjdGVkU29ydGFibGUnCisgICAgICAgICAgICB9KS5kaXNhYmxlU2VsZWN0
aW9uKCk7CisKKyAgICAgICAgICB2YXIgcmVwb3J0X2V2ZW50ID0gZnVuY3Rpb24ocmVwb3J0X3Rl
eHQpIHsKKyAgICAgICAgICAgIHZhciByZXBvcnRFbGVtZW50ID0gJCgiI2RyYWdnaW5nX3JlcG9y
dHMiKTsKKyAgICAgICAgICAgIHZhciBvcmlnVGV4dCA9IHJlcG9ydEVsZW1lbnQudGV4dCgpOwor
ICAgICAgICAgICAgcmVwb3J0RWxlbWVudC50ZXh0KG9yaWdUZXh0ICsgIiAiICsgcmVwb3J0X3Rl
eHQpOworICAgICAgICAgIH0KKworICAgICAgICAgICQoIiNzb3J0YWJsZTIiKS5kcm9wcGFibGUo
eworICAgICAgICAgICAgb3V0OiBmdW5jdGlvbihldmVudCwgdWkpIHsKKyAgICAgICAgICAgICAg
cmVwb3J0X2V2ZW50KCJEcmFnT3V0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICQoIiNzb3J0YWJsZTEiKS5kcm9wcGFibGUoeworICAgICAgICAgICAgZHJv
cDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CisgICAgICAgICAgICAgIHJlcG9ydF9ldmVudCgiRHJv
cEluICIgKyB1aS5kcmFnZ2FibGUudGV4dCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0pOworICAgICAgICAgIH0pOworICAgIDwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5Pgor
ICAgIDxkaXYgY2xhc3M9ImRlbW8iPgorICAgICAgPHVsIGlkPSJzb3J0YWJsZTEiIGNsYXNzPSJj
b25uZWN0ZWRTb3J0YWJsZSI+CisgICAgICAgIDxsaSBpZD0ibGVmdGl0ZW0tMSIgY2xhc3M9InVp
LXN0YXRlLWRlZmF1bHQiPkxlZnRJdGVtIDE8L2xpPgorICAgICAgICA8bGkgaWQ9ImxlZnRpdGVt
LTIiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0Ij5MZWZ0SXRlbSAyPC9saT4KKyAgICAgICAgPGxp
IGlkPSJsZWZ0aXRlbS0zIiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCI+TGVmdEl0ZW0gMzwvbGk+
CisgICAgICAgIDxsaSBpZD0ibGVmdGl0ZW0tNCIgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQiPkxl
ZnRJdGVtIDQ8L2xpPgorICAgICAgICA8bGkgaWQ9ImxlZnRpdGVtLTUiIGNsYXNzPSJ1aS1zdGF0
ZS1kZWZhdWx0Ij5MZWZ0SXRlbSA1PC9saT4KKyAgICAgIDwvdWw+CisKKyAgICAgIDx1bCBpZD0i
c29ydGFibGUyIiBjbGFzcz0iY29ubmVjdGVkU29ydGFibGUiPgorICAgICAgICA8bGkgaWQ9InJp
Z2h0aXRlbS0xIiBjbGFzcz0idWktc3RhdGUtaGlnaGxpZ2h0Ij5SaWdodEl0ZW0gMTwvbGk+Cisg
ICAgICAgIDxsaSBpZD0icmlnaHRpdGVtLTIiIGNsYXNzPSJ1aS1zdGF0ZS1oaWdobGlnaHQiPlJp
Z2h0SXRlbSAyPC9saT4KKyAgICAgICAgPGxpIGlkPSJyaWdodGl0ZW0tMyIgY2xhc3M9InVpLXN0
YXRlLWhpZ2hsaWdodCI+UmlnaHRJdGVtIDM8L2xpPgorICAgICAgICA8bGkgaWQ9InJpZ2h0aXRl
bS00IiBjbGFzcz0idWktc3RhdGUtaGlnaGxpZ2h0Ij5SaWdodEl0ZW0gNDwvbGk+CisgICAgICAg
IDxsaSBpZD0icmlnaHRpdGVtLTUiIGNsYXNzPSJ1aS1zdGF0ZS1oaWdobGlnaHQiPlJpZ2h0SXRl
bSA1PC9saT4KKyAgICAgIDwvdWw+CisKKyAgICA8L2Rpdj4KKworICAgIDxici8+CisgICAgPGRp
diBjbGFzcz0idGVzdC1kYXRhIj4KKyAgICAgIDxwIGlkPSJkcmFnZ2luZ19yZXBvcnRzIj5Ob3Ro
aW5nIGhhcHBlbmVkLjwvcD4KKyAgICA8L2Rpdj4KKworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9k
cm9wcGFibGVJdGVtcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvZHJvcHBhYmxlSXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZmM4NTBhYzk2YjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9kcm9wcGFibGVJdGVtcy5odG1s
CkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgIDxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPgorICA8dGl0bGU+alF1ZXJ5IFVJIERyb3Bw
YWJsZSAtIERlZmF1bHQgRGVtbzwvdGl0bGU+CisgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9ImNzcy91aS1saWdodG5lc3MvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20uY3NzIiByZWw9InN0
eWxlc2hlZXQiIC8+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMv
anF1ZXJ5LTEuNC40Lm1pbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ianMvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20ubWluLmpzIj48L3Njcmlw
dD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgI2RyYWdnYWJsZSB7IHdpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgcGFkZGluZzogMC41ZW07IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDEw
cHggMTBweCAxMHB4IDA7IH0KKyAgI2Ryb3BwYWJsZSB7IHdpZHRoOiAxNTBweDsgaGVpZ2h0OiAx
NTBweDsgcGFkZGluZzogMC41ZW07IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDEwcHg7IH0KKyAgPC9z
dHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAkKGZ1bmN0aW9uKCkg
eworICAgICQoIiNkcmFnZ2FibGUiKS5kcmFnZ2FibGUoKTsKKyAgICAkKCIjZHJvcHBhYmxlIiku
ZHJvcHBhYmxlKHsKKyAgICAgIGRyb3A6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgeworICAgICAgICAk
KHRoaXMpLmFkZENsYXNzKCd1aS1zdGF0ZS1oaWdobGlnaHQnKS5maW5kKCdwJykuaHRtbCgnRHJv
cHBlZCEnKTsKKyAgICAgIH0KKyAgfSk7CisKKyAgICAgICAgdmFyIHJlcG9ydF9ldmVudCA9IGZ1
bmN0aW9uKHJlcG9ydF90ZXh0KSB7CisgICAgICAgICAgdmFyIHJlcG9ydEVsZW1lbnQgPSAkKCIj
ZHJvcF9yZXBvcnRzIik7CisgICAgICAgICAgdmFyIG9yaWdUZXh0ID0gcmVwb3J0RWxlbWVudC50
ZXh0KCk7CisgICAgICAgICAgcmVwb3J0RWxlbWVudC50ZXh0KG9yaWdUZXh0ICsgIiAiICsgcmVw
b3J0X3RleHQpOworICAgICAgICB9CisKKyAgICAgICAgJCgnYm9keScpLm1vdXNlZG93bihmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHJlcG9ydF9ldmVudCgnZG93bicpOworICAgICAgICB9KTsK
KworICAgICAgICAkKCdib2R5JykubW91c2Vtb3ZlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
cmVwb3J0X2V2ZW50KCdtb3ZlJyk7CisgICAgICAgIH0pOworCisgICAgICAgICQoJ2JvZHknKS5t
b3VzZXVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmVwb3J0X2V2ZW50KCd1cCcpOworICAg
ICAgICB9KTsKKyAgfSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNz
PSJkZW1vIj4KKworPGRpdiBpZD0iZHJhZ2dhYmxlIiBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQi
PgorICA8cD5EcmFnIG1lIHRvIG15IHRhcmdldDwvcD4KKzwvZGl2PgorCis8ZGl2IGlkPSJkcm9w
cGFibGUiIGNsYXNzPSJ1aS13aWRnZXQtaGVhZGVyIj4KKyAgPHA+RHJvcCBoZXJlPC9wPgorPC9k
aXY+CisKKzxkaXYgY2xhc3M9InRlc3QtZGF0YSI+CisgIDxwIGlkPSJkcm9wX3JlcG9ydHMiPnN0
YXJ0PC9wPgorPC9kaXY+CisKKzwvZGl2PjwhLS0gRW5kIGRlbW8gLS0+CisKKzxkaXYgY2xhc3M9
ImRlbW8tZGVzY3JpcHRpb24iPgorCis8cD5UYWtlbiBmcm9tIHRoZSBKUXVlcnkgZGVtby48L3A+
CisKKzwvZGl2PjwhLS0gRW5kIGRlbW8tZGVzY3JpcHRpb24gLS0+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9keW5hbWljLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmI5ZTYwNjc4ZDJhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRp
b25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8
aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPjwvdGl0bGU+CisgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgorICAgICAgdmFyIG5leHQgPSAwOworCisgICAgICBmdW5jdGlvbiBh
ZGRNb3JlKCkgeworICAgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElW
Jyk7CisgICAgICAgIGJveC5pZCA9ICdib3gnICsgbmV4dCsrOworICAgICAgICBib3guY2xhc3NO
YW1lID0gJ3JlZGJveCc7CisgICAgICAgIGJveC5zdHlsZS53aWR0aCA9ICcxNTBweCc7CisgICAg
ICAgIGJveC5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnOworICAgICAgICBib3guc3R5bGUuYmFja2dy
b3VuZENvbG9yID0gJ3JlZCc7CisgICAgICAgIGJveC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlk
IGJsYWNrJzsKKyAgICAgICAgYm94LnN0eWxlLm1hcmdpbiA9ICc1cHgnOworCisgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoYm94KTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0
aW9uIHJldmVhbCgpIHsKKyAgICAgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmV2ZWFsZWQnKTsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgZWxlbS5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICAgIH0sIDEwMDApOworICAg
ICAgfQorICAgIDwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxpbnB1dCBpZD0i
YWRkZXIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IkFkZCBhIGJveCEiIG9uY2xpY2s9ImFkZE1vcmUo
KSIvPgorCisgICAgPGlucHV0IGlkPSJyZXZlYWwiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlJldmVh
bCBhIG5ldyBpbnB1dCIgb25jbGljaz0icmV2ZWFsKCk7IiAvPgorCisgICAgPGlucHV0IGlkPSJy
ZXZlYWxlZCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiIC8+CisgIDwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9keW5hbWljYWxseU1vZGlmaWVkUGFnZS5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZHluYW1p
Y2FsbHlNb2RpZmllZFBhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZWQ3YzdlZDJiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9keW5hbWljYWxseU1vZGlmaWVkUGFnZS5odG1s
CkBAIC0wLDAgKzEsNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI+Cis8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgIDxo
ZWFkPgorICAgIDx0aXRsZT5EZWxheWVkIHJlbW92ZSBvZiBhbiBlbGVtZW50PC90aXRsZT4KKwor
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIAorICAgICAgdmFyIHBh
cmVudE5vZGU7CisgICAgICB2YXIgZWxlbWVudElkOworICAgICAgICAKKyAgICAgIGZ1bmN0aW9u
IHRpbWVkUmVtb3ZlKCkKKyAgICAgIHsKKyAgICAgICAgdmFyIHQgPSBzZXRUaW1lb3V0KCdyZW1v
dmVFbGVtZW50KCknLCA1MDApOworICAgICAgICB0ID0gc2V0VGltZW91dCgnaW5zZXJ0RWxlbWVu
dCgpJywgMjAwMCk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIHJlbW92ZUVsZW1lbnQoKQor
ICAgICAgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
bGVtZW50LXRvLXJlbW92ZScpOworICAgICAgICBlbGVtZW50SWQgPSBlbGVtZW50LmlkOworICAg
ICAgICBwYXJlbnROb2RlID0gZWxlbWVudC5wYXJlbnROb2RlOworICAgICAgICBwYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBpbnNlcnRF
bGVtZW50KCkKKyAgICAgIHsKKyAgICAgICAgdmFyIG5ld0VsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdwJyk7CisgICAgICAgIG5ld0VsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGVs
ZW1lbnRJZCk7CisgICAgICAgIG5ld0VsZW1lbnQuaW5uZXJIVE1MID0gJ25ldyBlbGVtZW50JzsK
KyAgICAgICAgcGFyZW50Tm9kZS5hcHBlbmRDaGlsZChuZXdFbGVtZW50KTsKKyAgICAgIH0KKyAg
ICA8L3NjcmlwdD4KKworICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxmb3JtPgorICAgICAgPGlu
cHV0IGlkPSJidXR0b25EZWxldGUiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImVsZW1lbnQgd2lsbCBi
ZSByZW1vdmVkIGluIGhhbGYgYSBzZWNvbmQiCisgICAgICBvbmNsaWNrPSJ0aW1lZFJlbW92ZSgp
Ii8+CisgICAgPC9mb3JtPgorICAgIDxwIGlkPSJlbGVtZW50LXRvLXJlbW92ZSI+ZWxlbWVudDwv
cD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZXJyb3JzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9lcnJvcnMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzhmYjkwMjA3N2UKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9lcnJvcnMu
aHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4K
KyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICB3aW5kb3cuRVJST1JT
ID0gW107CisKKyAgICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICB3
aW5kb3cuRVJST1JTLnB1c2goZSk7CisgICAgICB9OworICAgIDwvc2NyaXB0PgorICA8L2hlYWQ+
CisgIDxib2R5PgorICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJUaHJvdyEiIG9uY2xp
Y2s9InRocm93IEVycm9yKCdib29tIScpOyIvPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9maXhl
ZEZvb3Rlck5vU2Nyb2xsLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9maXhlZEZvb3Rlck5vU2Nyb2xsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNhNjVkMWZlZWJkCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZml4ZWRGb290ZXJO
b1Njcm9sbC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgPHRpdGxlPkZpeGVkIGZvb3RlciB3aXRoIG5vIHNjcm9sbGJhcjwvdGl0bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IG1pbi1oZWlnaHQ6IDEw
MCU7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMHB4OyI+
CisgICAgICA8YSBpZD0ibGluayIgaHJlZj0ieGh0bWxUZXN0Lmh0bWwiPkNsaWNrIG1lPC9hPgor
ICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9maXhlZEZvb3Rlck5vU2Nyb2xsUXVpcmtzTW9kZS5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZml4ZWRGb290ZXJOb1Nj
cm9sbFF1aXJrc01vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uMjU5M2JmMzVjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9maXhlZEZvb3Rlck5vU2Nyb2xsUXVpcmtzTW9kZS5o
dG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5GaXhlZCBmb290
ZXIgd2l0aCBubyBzY3JvbGxiYXI8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgc3R5
bGU9IndpZHRoOiAxMDAlOyBtaW4taGVpZ2h0OiAxMDAlOyI+CisgICAgPGRpdiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBib3R0b206IDBweDsiPgorICAgICAgPGEgaWQ9ImxpbmsiIGhyZWY9
InhodG1sVGVzdC5odG1sIj5DbGljayBtZTwvYT4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZm9ybVBhZ2UuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zvcm1Q
YWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ1YWUyYjdk
NmJkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvZm9ybVBhZ2UuaHRtbApAQCAtMCwwICsxLDE3NSBAQAorPGh0bWw+Cis8
aGVhZD4KKyAgICA8dGl0bGU+V2UgTGVhdmUgRnJvbSBIZXJlPC90aXRsZT4KKworICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gY2hhbmdlUGFnZSgp
IHsKKyAgICAgICAgICAgIHZhciBuZXdMb2NhdGlvbiA9ICcvY29tbW9uL3BhZ2UvMyc7CisgICAg
ICAgICAgICB3aW5kb3cubG9jYXRpb24gPSBuZXdMb2NhdGlvbjsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGVyZSBzaG91bGQgYmUgYSBmb3JtIGhlcmU6CisK
Kzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgbmFtZT0ibG9naW4i
PgorICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9ImVtYWlsIi8+CisgICAgPGlucHV0IHR5cGU9
Im51bWJlciIgaWQ9ImFnZSIvPgorICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJzdWJtaXRC
dXR0b24iIHZhbHVlPSJIZWxsbyB0aGVyZSIvPgorPC9mb3JtPgorCis8Zm9ybSBtZXRob2Q9Imdl
dCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImltYWdlIj4KKyAgICA8aW5wdXQgdHlw
ZT0iaW1hZ2UiIGlkPSJpbWFnZUJ1dHRvbiIgYWx0PSJjbGljayBtZSEiIHNyYz0iaW1hZ2VzL2J1
dHRvbi5naWYiLz4KKzwvZm9ybT4KKworPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0
UGFnZS5odG1sIiBuYW1lPSJvcHRpb25hbCIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4KKyAgICBI
ZXJlJ3MgYSBjaGVja2JveDoKKyAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVja3ki
IG5hbWU9ImNoZWNreSIgdmFsdWU9ImZ1cnJmdSIvPgorICAgIDxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgaWQ9ImNoZWNrZWRjaGVja3kiIG5hbWU9ImNoZWNrZWRjaGVja3kiIGNoZWNrZWQ9ImNoZWNr
ZWQiIC8+CisgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZGlzYWJsZWRjaGVja3kiIGRp
c2FibGVkPSJkaXNhYmxlZCIgbmFtZT0iZGlzYWJsZWRjaGVja3kiIC8+CisgICAgPGlucHV0IHR5
cGU9ImNoZWNrYm94IiBpZD0icmFuZG9tbHlfZGlzYWJsZWRfY2hlY2t5IiBkaXNhYmxlZD0ic29t
ZXJhbmRvbXN0cmluZyIgY2hlY2tlZD0iY2hlY2tlZCIgbmFtZT0icmFuZG9tbHlkaXNhYmxlZGNo
ZWNreSIgLz4KKyAgICA8YnIvPgorICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21hdGljIj4KKyAg
ICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiIGlkPSJub25fbXVsdGlfb3B0aW9uIiB2
YWx1ZT0ib25lIj5PbmU8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0idHdvIj5Ud288
L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZm91ciI+Rm91cjwvb3B0aW9uPgorICAg
ICAgICA8b3B0aW9uIHZhbHVlPSJzdGlsbCBsZWFybmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50
bHkiPlN0aWxsIGxlYXJuaW5nIGhvdyB0byBjb3VudCwgYXBwYXJlbnRseTwvb3B0aW9uPgorICAg
IDwvc2VsZWN0PgorCisgICAgPHNlbGVjdCBuYW1lPSJtdWx0aSIgaWQ9Im11bHRpIiBtdWx0aXBs
ZT0ibXVsdGlwbGUiPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9
ImVnZ3MiPkVnZ3M8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaGFtIj5IYW08L29w
dGlvbj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiIHZhbHVlPSJzYXVzYWdl
cyI+U2F1c2FnZXM8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiB2YWx1ZT0ib25pb24gZ3Jhdnki
Pk9uaW9uIGdyYXZ5PC9vcHRpb24+CisgICAgPC9zZWxlY3Q+CisKKyAgICA8c2VsZWN0IG5hbWU9
Im5vLXNlbGVjdCIgZGlzYWJsZWQ9ImRpc2FibGVkIj4KKyAgICAgIDxvcHRpb24gdmFsdWU9ImZv
byI+Rm9vPC9vcHRpb24+CisgICAgICA8b3B0aW9uIHZhbHVlPSJiYXIiPkJhcjwvb3B0aW9uPgor
ICAgIDwvc2VsZWN0PgorCisJCTxzZWxlY3QgbmFtZT0ic2VsZWN0X2VtcHR5X211bHRpcGxlIiBt
dWx0aXBsZT4KKwkJCTxvcHRpb24gaWQ9Im11bHRpXzEiIHZhbHVlPSJzZWxlY3RfMSI+c2VsZWN0
XzE8L29wdGlvbj4KKwkJCTxvcHRpb24gaWQ9Im11bHRpXzIiIHZhbHVlPSJzZWxlY3RfMiI+c2Vs
ZWN0XzI8L29wdGlvbj4KKwkJCTxvcHRpb24gaWQ9Im11bHRpXzMiIHZhbHVlPSJzZWxlY3RfMyI+
c2VsZWN0XzM8L29wdGlvbj4KKwkJCTxvcHRpb24gaWQ9Im11bHRpXzQiIHZhbHVlPSJzZWxlY3Rf
NCI+c2VsZWN0XzQ8L29wdGlvbj4KKwkJPC9zZWxlY3Q+CisKKwkJPHNlbGVjdCBuYW1lPSJtdWx0
aV90cnVlIiBtdWx0aXBsZT0idHJ1ZSI+CisJCQk8b3B0aW9uIGlkPSJtdWx0aV90cnVlXzEiIHZh
bHVlPSJzZWxlY3RfMSI+c2VsZWN0XzE8L29wdGlvbj4KKwkJCTxvcHRpb24gaWQ9Im11bHRpX3Ry
dWVfMiIgdmFsdWU9InNlbGVjdF8yIj5zZWxlY3RfMjwvb3B0aW9uPgorCQk8L3NlbGVjdD4KKwor
CQk8c2VsZWN0IG5hbWU9Im11bHRpX2ZhbHNlIiBtdWx0aXBsZT0iZmFsc2UiPgorCQkJPG9wdGlv
biBpZD0ibXVsdGlfZmFsc2VfMSIgdmFsdWU9InNlbGVjdF8xIj5zZWxlY3RfMTwvb3B0aW9uPgor
CQkJPG9wdGlvbiBpZD0ibXVsdGlfZmFsc2VfMiIgdmFsdWU9InNlbGVjdF8yIj5zZWxlY3RfMjwv
b3B0aW9uPgorCQk8L3NlbGVjdD4KKworICAgIDxzZWxlY3QgaWQ9ImludmlzaV9zZWxlY3QiIHN0
eWxlPSJvcGFjaXR5OjA7Ij4KKyAgICAgIDxvcHRpb24gc2VsZWN0ZWQgdmFsdWU9ImFwcGxlcyI+
QXBwbGVzPC9vcHRpb24+CisgICAgICA8b3B0aW9uIHZhbHVlPSJvcmFuZ2VzIj5PcmFuZ2VzPC9v
cHRpb24+CisgICAgPC9zZWxlY3Q+CisKKyAgICA8c2VsZWN0IG5hbWU9InNlbGVjdC1kZWZhdWx0
Ij4KKyAgICAgICAgPG9wdGlvbj5PbmU8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Ud288L29w
dGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3VyPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+U3Rp
bGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVudGx5PC9vcHRpb24+CisgICAgPC9zZWxl
Y3Q+CisKKyAgICA8c2VsZWN0IG5hbWU9InNlbGVjdF93aXRoX3NwYWNlcyI+CisgICAgICAgIDxv
cHRpb24+T25lPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+ICBUd28gIDwvb3B0aW9uPgorICAg
ICAgICA8b3B0aW9uPgorICAgICAgICAgIEZvdXIKKyAgICAgICAgPC9vcHRpb24+CisgICAgICAg
IDxvcHRpb24+CisgICAgICAgICAgU3RpbGwgbGVhcm5pbmcgICBob3cgdG8gY291bnQsCisgICAg
ICAgICAgYXBwYXJlbnRseQorICAgICAgICA8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKworICAg
IDxzZWxlY3Q+CisgICAgCTxvcHRpb24gaWQ9ImJsYW5rT3B0aW9uIj48L29wdGlvbj4KKyAgICAJ
PG9wdGlvbiBpZD0ib3B0aW9uRW1wdHlWYWx1ZVNldCIgdmFsdWU9IiI+bm90aGluZzwvb3B0aW9u
PgorICAgIDwvc2VsZWN0PgorCisgICAgPGJyLz4KKworICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIg
aWQ9ImNoZWVzZSIgbmFtZT0ic25hY2siIHZhbHVlPSJjaGVlc2UiLz5DaGVlc2U8YnIvPgorICAg
IDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9InBlYXMiIG5hbWU9InNuYWNrIiB2YWx1ZT0icGVhcyIv
PlBlYXM8YnIvPgorICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9ImNoZWVzZV9hbmRfcGVhcyIg
bmFtZT0ic25hY2siIHZhbHVlPSJjaGVlc2UgYW5kIHBlYXMiIGNoZWNrZWQvPkNoZWVzZSBhbmQg
cGVhczxici8+CisgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0ibm90aGluZyIgbmFtZT0ic25h
Y2siIHZhbHVlPSJub3d0IiBkaXNhYmxlZD0iZGlzYWJsZWQiLz5Ob3QgYSBzYXVzYWdlPGJyLz4K
KyAgICA8aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJyYW5kb21seV9kaXNhYmxlZF9ub3RoaW5nIiBu
YW1lPSJzbmFjayIgdmFsdWU9ImZ1bm55IG5vd3QiIGRpc2FibGVkPSJzb21lZGlzYWJsaW5nc3Ry
aW5nIi8+Tm90IGFub3RoZXIgc2F1c2FnZQorCisgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt
ZT0iaGlkZGVuIiB2YWx1ZT0iZnJvbWFnZSIgLz4KKworICAgIDxwIGlkPSJjaGVlc2VMaWtlciI+
SSBsaWtlIGNoZWVzZTwvcD4KKyAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQ2xpY2sh
Ii8+CisgICAgCisgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0ibG9uZV9kaXNhYmxlZF9zZWxl
Y3RlZF9yYWRpbyIgbmFtZT0ibm90X2Ffc25hY2siIHZhbHVlPSJjdW1iZXJsYW5kIiBjaGVja2Vk
PSJjaGVja2VkIiBkaXNhYmxlZD0iZGlzYWJsZWQiIC8+Q3VtYmVybGFuZCBzYXVzYWdlCis8L2Zv
cm0+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgbmFtZT0i
ZGlzYWJsZSI+CisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ3b3JraW5nIi8+CisgICAgPGlu
cHV0IHR5cGU9InRleHQiIGlkPSJub3RXb3JraW5nIiBkaXNhYmxlZD0idHJ1ZSIvPgorCisgICAg
PHRleHRhcmVhIGlkPSJub3RXb3JraW5nQXJlYSIgZGlzYWJsZWQ9ImRpc2FibGVkIiBjb2xzPSI1
IiByb3dzPSI1Ij48L3RleHRhcmVhPgorCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1
dFdpdGhUZXh0IiB2YWx1ZT0iRXhhbXBsZSB0ZXh0Ii8+CisgICAgPHRleHRhcmVhIGlkPSJ3aXRo
VGV4dCIgcm93cz0iNSIgY29scz0iNSI+RXhhbXBsZSB0ZXh0PC90ZXh0YXJlYT4KKyAgICA8dGV4
dGFyZWEgaWQ9ImVtcHR5VGV4dEFyZWEiIHJvd3M9IjUiIGNvbHM9IjUiPjwvdGV4dGFyZWE+Cis8
L2Zvcm0+CisKKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiPgor
ICAgIDxzZWxlY3QgaWQ9InJlZGlyZWN0IiBuYW1lPSJyZWRpcmVjdCIgb25jaGFuZ2U9ImphdmFz
Y3JpcHQ6Y2hhbmdlUGFnZSgpOyI+CisgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVk
IiB2YWx1ZT0ib25lIj5PbmU8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiBpZD0iY2hhbmdlbWUi
IHZhbHVlPSJ0d28iPlR3bzwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorCisgICAgPGlucHV0IGlk
PSJuby10eXBlIiAvPgorICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0idXBsb2FkIiBvbmNoYW5n
ZT0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGVSZXN1bHRzJykuaW5uZXJIVE1MID0gJ2No
YW5nZWQnOyIgLz4KKyAgICA8c3BhbiBpZD0iZmlsZVJlc3VsdHMiPjwvc3Bhbj4KKworICAgIDxp
bnB1dCB0eXBlPSJzdWJtaXQiIC8+Cis8L2Zvcm0+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rp
b249InJlc3VsdFBhZ2UuaHRtbCI+CisgIDxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0ibmFtZSIg
bmFtZT0iaWQtbmFtZTEiLz4KKyAgPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJpZCIgICBpZD0i
aWQtbmFtZTEiLz4KKworICA8IS0tIFJldmVyc2UgdGhlIG9yZGVyaW5nIC0tPgorICA8aW5wdXQg
dHlwZT0idGV4dCIgdmFsdWU9ImlkIiAgIGlkPSJpZC1uYW1lMiIvPgorICA8aW5wdXQgdHlwZT0i
dGV4dCIgdmFsdWU9Im5hbWUiIG5hbWU9ImlkLW5hbWUyIi8+CisgIDxpbnB1dCBuYW1lPSJyZWFk
b25seSIgcmVhZG9ubHk9InJlYWRvbmx5IiAvPgorPC9mb3JtPgorCis8IS0tIGZvcm0gd2l0aCBu
ZXN0ZWQgY2hpbGRyZW4gLS0+Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdl
Lmh0bWwiIGlkPSJuZXN0ZWRfZm9ybSI+CisgIDxkaXY+CisgICAgPGlucHV0IHR5cGU9InRleHQi
IHZhbHVlPSJuYW1lIiBuYW1lPSJ4Ii8+CisgIDwvZGl2PgorICA8aW5wdXQgdHlwZT0ic3VibWl0
IiAvPgorPC9mb3JtPiAgCisKKzwhLS0gRm9ybSB3aXRoIGRpc2FibGVkIGZvcm0gZWxlbWVudHMg
LS0+Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJ4aHRtbFRlc3QuaHRtbCI+CisgIDxwPgor
ICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGlzYWJsZWRUZXh0RWxlbWVudDEiIGRpc2FibGVk
PSJmb28iIC8+CisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJkaXNhYmxlZFRleHRFbGVtZW50
MiIgZGlzYWJsZWQ9IiIgLz4KKyAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iZGlzYWJsZWRT
dWJtaXRFbGVtZW50IiBkaXNhYmxlZD0icXdlcnR5IiB2YWx1ZT0iU3VibWl0IiAvPgorICA8L3A+
Cis8L2Zvcm0+Cis8IS0tIEVtcHR5IGRpdiB0byB0ZXN0IEdldEF0dHJpYnV0ZSAtLT4KKzxkaXYg
aWQ9IndhbGxhY2UiIGNsYXNzPSJncm9taXQiPjwvZGl2PgorCis8aW5wdXQgdHlwZT0nYnV0dG9u
JyBpZD0na2lsbElmcmFtZScgb25jbGljaz0ndG9wLnJlbW92ZSgpOycgdmFsdWU9IktpbGwgY29u
dGFpbmluZyBpZnJhbWUiIC8+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249ImZvcm1QYWdl
Lmh0bWwiPgorICA8cD4KKyAgICA8bGFiZWwgZm9yPSJjaGVja2JveC13aXRoLWxhYmVsIiBpZD0i
bGFiZWwtZm9yLWNoZWNrYm94LXdpdGgtbGFiZWwiPkxhYmVsPC9sYWJlbD48aW5wdXQgdHlwZT0i
Y2hlY2tib3giIGlkPSJjaGVja2JveC13aXRoLWxhYmVsIiAvPgorICA8L3A+Cis8L2Zvcm0+Cis8
aW5wdXQgaWQ9InZzZWFyY2hHYWRnZXQiIG5hbWU9IlNlYXJjaGFibGVUZXh0IiB0eXBlPSJ0ZXh0
IiBzaXplPSIxOCIgdmFsdWU9IiIgdGl0bGU9Ikh2YWQgc8O4Z2VyIGR1PyIgYWNjZXNza2V5PSI0
IiBjbGFzcz0iaW5wdXRMYWJlbCIgLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zvcm1TZWxlY3Rp
b25QYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9mb3JtU2VsZWN0aW9uUGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi40ODkwYzA4ZTgyMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zvcm1TZWxlY3Rpb25QYWdlLmh0bWwK
QEAgLTAsMCArMSw0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+VGVzdGluZyBUeXBpbmcgaW50byBib2R5PC90aXRsZT4KKyAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIHNldE1lc3NhZ2Uo
bWVzc2FnZSkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcp
LmlubmVySFRNTCA9IG1lc3NhZ2U7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzaG93
U2VsZWN0ZWQoKSB7CisgICAgICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbXVsdGknKTsKKyAgICAgICAgICBpZiAoc2VsZWN0RWxlbWVudCA9PSBudWxs
KSB7CisgICAgICAgICAgICBhcHBlbmRNZXNzYWdlKCJudWxsISIpOworICAgICAgICAgIH0KKwor
ICAgICAgICAgIHZhciBvcHRpb25zX2FycmF5ID0gc2VsZWN0RWxlbWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnb3B0aW9uJyk7CisgICAgICAgICAgdmFyIHNlbGVjdGVkX2NoZWVzZSA9ICIiOwor
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0aW9uc19hcnJheS5sZW5ndGg7IGkrKykg
eworICAgICAgICAgICAgaWYgKG9wdGlvbnNfYXJyYXlbaV0uc2VsZWN0ZWQpIHsKKyAgICAgICAg
ICAgICAgc2VsZWN0ZWRfY2hlZXNlID0gc2VsZWN0ZWRfY2hlZXNlICsgb3B0aW9uc19hcnJheVtp
XS5sYWJlbCArICIgIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgc2V0
TWVzc2FnZShzZWxlY3RlZF9jaGVlc2UpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5PgorICA8aDE+VHlwZSBTdHVmZjwvaDE+CisKKyAgPGRpdiBpZD0icmVzdWx0
Ij4KKyAgICAmbmJzcDsKKyAgPC9kaXY+CisKKyAgPGZvcm0gYWN0aW9uPSIiIGlkPSJvbi1mb3Jt
IiBuYW1lPSJtdWx0aWNob2ljZSI+CisgICAgPHNlbGVjdCBuYW1lPSJtdWx0aSIgaWQ9Im11bHRp
IiBtdWx0aXBsZT0ibXVsdGlwbGUiPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3Rl
ZCIgbGFiZWw9ImVtbWVudGFsIj5FbW1lbnRhbDwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uIGxh
YmVsPSJyb3F1ZWZvcnQiID5Sb3F1ZWZvcnQ8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiBsYWJl
bD0icGFybWlnaWFubyI+UGFybWlnaWFubzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uIGxhYmVs
PSJjaGVkZGFyIj5DaGVkZGFyPC9vcHRpb24+CisgICAgPC9zZWxlY3Q+CisgIDwvZm9ybT4KKwor
ICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBuYW1lPSJzaG93c2VsZWN0ZWQiIG9uY2xpY2s9InNob3dT
ZWxlY3RlZCgpIiB2YWx1ZT0iU2hvdyBzZWxlY3RlZCIvPgorPC9ib2R5PgorCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mb3JtX2hh
bmRsaW5nX2pzX3N1Ym1pdC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvZm9ybV9oYW5kbGluZ19qc19zdWJtaXQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzAyMzE0MzkyOWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mb3JtX2hh
bmRsaW5nX2pzX3N1Ym1pdC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhLS0KKyAgfiBDb3B5cmln
aHQgMjAxMiBTZWxlbml1bSBjb21taXR0ZXJzCisgIH4gQ29weXJpZ2h0IDIwMTIgU29mdHdhcmUg
RnJlZWRvbSBDb25zZXJ2YW5jeQorICB+CisgIH4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgIH4geW91IG1heSBub3QgdXNl
IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICB+IFlv
dSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICB+CisgIH4gICAgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgfgorICB+IFVubGVzcyBy
ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdh
cmUKKyAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBh
biAiQVMgSVMiIEJBU0lTLAorICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICB+IFNlZSB0aGUgTGljZW5z
ZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAg
fiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAgLS0+CisKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Rm9ybSB3aXRoIEpTIGFjdGlvbjwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGZvcm0gaWQ9InRoZUZvcm0iIG1ldGhvZD0iZ2V0IiBhY3Rp
b249ImphdmFzY3JpcHQ6YWxlcnQoJ1Rhc3R5IGNoZWVzZScpOyI+CisgICAgICA8aW5wdXQgbmFt
ZT0idW51c2VkIiB0eXBlPSJzdWJtaXQiPgorICA8L2Zvcm0+CisKKyAgPHAgaWQ9InJlc3VsdCI+
PC9wPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2Zy
YW1lUGFnZTMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2ZyYW1lUGFnZTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uM2U2MmU0NTVjZTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZVBhZ2UzLmh0bWwKQEAgLTAsMCArMSw3
IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPmlubmVyPC90aXRsZT4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lU2Nyb2xsQ2hpbGQuaHRtbCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lU2Nyb2xsQ2hpbGQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2ViM2JmNDdkNTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9mcmFtZVNjcm9sbENoaWxkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+Q2hpbGQgZnJhbWU8L3RpdGxlPgorPC9oZWFk
PgorPGJvZHk+CisgIDxoMT5UaGlzIGlzIGEgc2Nyb2xsaW5nIGZyYW1lIHRlc3Q8L2gxPgorICA8
ZGl2PgorICAgIDx0YWJsZT4KKyAgICAgIDx0ciBoZWlnaHQ9IjUwcHgiPgorICAgICAgICA8dGQ+
Rmlyc3Qgcm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHIgaGVpZ2h0PSI1MHB4Ij4KKyAg
ICAgICAgPHRkPlNlY29uZCByb3c8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0ciBoZWlnaHQ9
IjUwcHgiPgorICAgICAgICA8dGQ+VGhpcmQgcm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8
dHIgaGVpZ2h0PSI1MHB4Ij4KKyAgICAgICAgPHRkPkZvdXJ0aCByb3c8L3RkPgorICAgICAgPC90
cj4KKyAgICA8L3RhYmxlPgorICA8L2Rpdj4KKyAgPGlucHV0IHR5cGU9J2NoZWNrYm94JyBuYW1l
PSdzY3JvbGxfY2hlY2tib3gnIC8+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvZnJhbWVTY3JvbGxQYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZVNjcm9sbFBhZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjdmYjhmMjQyYTMKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9m
cmFtZVNjcm9sbFBhZ2UuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgIDx0aXRsZT5XZWxjb21lIFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJv
ZHk+CisgIDxkaXY+CisgICAgPGlmcmFtZSBuYW1lPSJzY3JvbGxpbmdfY2hpbGRfZnJhbWUiIHNy
Yz0iZnJhbWVTY3JvbGxQYXJlbnQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSIyMDAiPjwvaWZy
YW1lPgorICA8L2Rpdj4KKyAgPGRpdj4KKyAgICA8aWZyYW1lIG5hbWU9InNjcm9sbGluZ19mcmFt
ZSIgc3JjPSJmcmFtZVNjcm9sbENoaWxkLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iMjAwIiA+
PC9pZnJhbWU+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVTY3JvbGxQYXJl
bnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2ZyYW1lU2Nyb2xsUGFyZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjhmY2NiNmQzNjU0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVTY3JvbGxQYXJlbnQuaHRtbApAQCAt
MCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5X
ZWxjb21lIFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+CisgICAgPGlmcmFt
ZSBuYW1lPSJzY3JvbGxpbmdfZnJhbWUiIHNyYz0iZnJhbWVTY3JvbGxDaGlsZC5odG1sIiB3aWR0
aD0iNjAwIiBoZWlnaHQ9IjUwMCI+PC9pZnJhbWU+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvZnJhbWVXaXRoQW5pbWFscy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVXaXRoQW5pbWFscy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZTBkYzg3MDQwMAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lV2l0
aEFuaW1hbHMuaHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5UaGlzIHBhZ2UgaGFzIGlmcmFtZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8aDEgaWQ9
ImlmcmFtZV9wYWdlX2hlYWRpbmciPlRoaXMgaXMgdGhlIGhlYWRpbmc8L2gxPgorCis8aWZyYW1l
IHNyYz0iYW5pbWFscyIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgdG9wbWFyZ2lu
PSIwIiBsZWZ0bWFyZ2luPSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIKKyAgICAgICAgZnJh
bWVib3JkZXI9IjAiIGhlaWdodD0iNjAwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iMTIwIiBpZD0i
aWZyYW1lMSIgbmFtZT0iaWZyYW1lMS1uYW1lIiAvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJh
bWVfc3dpdGNoaW5nX3Rlc3RzL2J1ZzQ4NzYuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9idWc0ODc2Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlZDU5N2QzNzk1Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2J1ZzQ4NzYuaHRtbApAQCAtMCwwICsxLDkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IGlzc3VlIDQ4
NzY8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIGlkPSJpZnJhbWUiIHNyYz0iYnVn
NDg3Nl9pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2J1ZzQ4NzZfaWZyYW1l
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9m
cmFtZV9zd2l0Y2hpbmdfdGVzdHMvYnVnNDg3Nl9pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTdkNDdkODQ1YmQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZV9zd2l0
Y2hpbmdfdGVzdHMvYnVnNDg3Nl9pZnJhbWUuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgor
CTxoZWFkPjwvaGVhZD4KKwk8Ym9keT4KKwkgICAgPGZvcm0gPgorCQkgIDxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0iaW5wdXRUZXh0IiAvPgorCQkgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJzdWJt
aXRCdXR0b24iIHZhbHVlPSJzdWJtaXQiIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbj13aW5kb3cu
bG9jYXRpb247IiAvPgorCQk8Zm9ybT4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ZyYW1l
X3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjljMjdlMDRjNDg0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dpdGNoaW5n
X3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRtbApAQCAtMCwwICsxLDI5IEBACivvu788aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5EZWxldGluZyBmcmFtZTogbWFpbiBwYWdlPC90aXRsZT4KKzwvaGVh
ZD4KKyAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAgICAg
ZnVuY3Rpb24gcmVtb3ZlKCkgeworICAgICAgICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lMSIpOworICAgICAgICAgICAgICAgIHZhciBteURpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteURpdiIpOworICAgICAgICAgICAgICAgIG15RGl2
LnJlbW92ZUNoaWxkKGlmcmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmdW5jdGlv
biBhZGRCYWNrKCkgeworICAgICAgICAgICAgICAgIHZhciBpZnJhbWUgPSAnPGlmcmFtZSBzcmM9
ImRlbGV0aW5nRnJhbWVfaWZyYW1lMi5odG1sIiBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndpZHRo
PSIwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIGFsbG93dHJhbnNwYXJlbmN5PSJ0cnVl
IiBmcmFtZWJvcmRlcj0iMCIgaGVpZ2h0PSIyMDAiIHNjcm9sbGluZz0ibm8iIHdpZHRoPSI0MDAi
IGlkPSJpZnJhbWUxIj48L2lmcmFtZT4nOworICAgICAgICAgICAgICAgIHZhciBteURpdjIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlEaXYyIik7CisgICAgICAgICAgICAgICAgbXlEaXYy
LmlubmVySFRNTCA9IGlmcmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+Cis8
Ym9keT4KKworPGRpdiBpZD0nbXlEaXYnPgorPGlmcmFtZSBzcmM9ImRlbGV0aW5nRnJhbWVfaWZy
YW1lLmh0bWwiIG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIHRvcG1hcmdpbj0iMCIg
bGVmdG1hcmdpbj0iMCIgYWxsb3d0cmFuc3BhcmVuY3k9InRydWUiCisgICAgICAgIGZyYW1lYm9y
ZGVyPSIxIiBoZWlnaHQ9IjIwMCIgc2Nyb2xsaW5nPSJubyIgd2lkdGg9IjQwMCIgaWQ9ImlmcmFt
ZTEiPjwvaWZyYW1lPgorICAgICAgICAKKyAgICAgICAgPC9kaXY+Cis8ZGl2IGlkPSdteURpdjIn
PgorCis8L2Rpdj4KKzxpbnB1dCB0eXBlPSdidXR0b24nIGlkPSdhZGRCYWNrRnJhbWUnIHZhbHVl
PSdBZGQgYmFjayBmcmFtZScgb25jbGljaz0nYWRkQmFjaygpOycgLz4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lX2lmcmFtZS5odG1sIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dp
dGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWVfaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU0Yjk3MjNlOWYzCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dpdGNo
aW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWVfaWZyYW1lLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRt
bD4KKzxoZWFkPgorICAgIDx0aXRsZT5EZWxldGluZyBmcmFtZTogaWZyYW1lPC90aXRsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGlucHV0IHR5cGU9J2J1dHRvbicgaWQ9J2tpbGxJZnJhbWUnIG9uY2xp
Y2s9J3RvcC5yZW1vdmUoKTsnIHZhbHVlPSJLaWxsIGNvbnRhaW5pbmcgaWZyYW1lIiAvPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWVfaWZy
YW1lMi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWVfaWZyYW1lMi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40Nzc2NGViM2ViNQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2ZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1lX2lmcmFtZTIuaHRtbApAQCAtMCww
ICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkRlbGV0aW5nIGZyYW1lOiBpZnJh
bWUgMjwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InN1Y2Nlc3MiPkFkZGVkIGJh
Y2s8L2Rpdj48L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZXNldC5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZnJhbWVzZXQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDM5YzVmMjE3NzIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9m
cmFtZXNldC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0
bGU+VW5pcXVlIHRpdGxlPC90aXRsZT4KKyAgPC9oZWFkPgorPGZyYW1lc2V0IGNvbHM9IiosICos
ICosICosICosICosICoiPgorICAgIDxmcmFtZSBuYW1lPSJmaXJzdCIgc3JjPSJwYWdlLzEiLz4K
KyAgICA8ZnJhbWUgbmFtZT0ic2Vjb25kIiBzcmM9InBhZ2UvMj90aXRsZT1GaXNoIi8+CisgICAg
PGZyYW1lIG5hbWU9InRoaXJkIiBzcmM9ImZvcm1QYWdlLmh0bWwiLz4KKyAgICA8ZnJhbWUgbmFt
ZT0iZm91cnRoIiBzcmM9ImZyYW1lc2V0UGFnZTIuaHRtbCIvPgorICAgIDxmcmFtZSBpZD0iZmlm
dGgiIHNyYz0ieGh0bWxUZXN0Lmh0bWwiLz4KKyAgICA8ZnJhbWUgaWQ9InNpeHRoIiBzcmM9Imlm
cmFtZXMuaHRtbCIvPgorICAgIDxmcmFtZSBpZD0ic2l4dGguaWZyYW1lMSIgc3JjPSJwYWdlLzMi
Lz4KKzwvZnJhbWVzZXQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZXNldFBhZ2UyLmh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZXNldFBhZ2UyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlYTM1ZmY3MWI3Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvZnJhbWVzZXRQYWdlMi5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+Cis8aGVh
ZD48L2hlYWQ+Cis8ZnJhbWVzZXQgY29scz0iKiwgKiI+CisgICAgPGZyYW1lIG5hbWU9ImNoaWxk
MSIgc3JjPSJwYWdlLzEwIi8+CisgICAgPGZyYW1lIG5hbWU9ImNoaWxkMiIgc3JjPSJwYWdlLzEx
Ii8+Cis8L2ZyYW1lc2V0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2ZyYW1lc2V0UGFnZTMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2ZyYW1lc2V0UGFnZTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNDJhOTMwMDdmOTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9mcmFtZXNldFBhZ2UzLmh0bWwK
QEAgLTAsMCArMSw0IEBACis8ZnJhbWVzZXQ+CisgICAgPGZyYW1lIHNyYz0iZnJhbWVQYWdlMy5o
dG1sIiBpZD0iZmlyc3QiPjwvZnJhbWU+CisgICAgPGZyYW1lIHNyYz0iZnJhbWVQYWdlMy5odG1s
IiBpZD0ic2Vjb25kIj48L2ZyYW1lPgorPC9mcmFtZXNldD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9nYWxheHkvLmdpdGlnbm9yZSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2dhbGF4eS8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvZ2xvYmFsc2NvcGUuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2dsb2JhbHNj
b3BlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU0Y2E5N2Fi
NzE1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvZ2xvYmFsc2NvcGUuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+R2xvYmFsIHNjb3BlPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICB3aW5kb3cudyA9
ICJ3IjsKKyAgICAgIHdpbmRvdy5oID0gImgiOworICAgICAgd2luZG93Ll9fd2ViZHJpdmVyX3cg
PSAiX193ZWJkcml2ZXJfdyI7CisgICAgICB3aW5kb3cuX193ZWJkcml2ZXJfaCA9ICJfX3dlYmRy
aXZlcl9oIjsKKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTBweDsgaGVpZ2h0OiAx
MHB4OyB3aWR0aDogMTBweDsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiIGlkPSJ0b2NsaWNrIj48
L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaGlkZGVuLmh0bWwgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9oaWRkZW4uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGU4MDk3ZTk3M2UKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9oaWRk
ZW4uaHRtbApAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBpZD0nc2luZ2xl
SGlkZGVuJyBoaWRkZW4+VGhpcyB3aWxsIG5vdCBiZSB2aXNpYmxlPC9kaXY+Cis8ZGl2IGlkPSdw
YXJlbnQnIGhpZGRlbj4KKyAgPGRpdiBpZD0nY2hpbGQnPk15IHBhcmVudCBpcyBoaWRkZW4gc28g
eW91IGNhbid0IHNlZSBtZTwvZGl2PgorPC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvaGlkZGVuX3BhcnRpYWxseS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvaGlkZGVuX3BhcnRpYWxseS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMGY5ZmU1YjhhNgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2hpZGRlbl9w
YXJ0aWFsbHkuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8dGl0bGU+PC90aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisgICAgICB2YXIgbmV4dCA9IDA7CisKKyAgICAgIGZ1bmN0aW9uIGFkZFZpc2li
bGVCb3goKSB7CisgICAgICAgIHZhciBib3ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdESVYn
KTsKKyAgICAgICAgYm94LmlkID0gJ2JveCcgKyBuZXh0Kys7CisgICAgICAgIGJveC5jbGFzc05h
bWUgPSAncmVkYm94JzsKKyAgICAgICAgYm94LnN0eWxlLndpZHRoID0gJzE1MHB4JzsKKyAgICAg
ICAgYm94LnN0eWxlLmhlaWdodCA9ICcxNTBweCc7CisgICAgICAgIGJveC5zdHlsZS5iYWNrZ3Jv
dW5kQ29sb3IgPSAncmVkJzsKKyAgICAgICAgYm94LnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQg
YmxhY2snOworICAgICAgICBib3guc3R5bGUubWFyZ2luID0gJzVweCc7CisgICAgICAgIGJveC5z
dHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnCisKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChib3gpOwor
ICAgICAgICB9LCAxMDAwKTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gYWRkSGlkZGVuQm94
KCkgeworICAgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7Cisg
ICAgICAgIGJveC5pZCA9ICdib3gnICsgbmV4dCsrOworICAgICAgICBib3guY2xhc3NOYW1lID0g
J3JlZGJveCc7CisgICAgICAgIGJveC5zdHlsZS53aWR0aCA9ICcxNTBweCc7CisgICAgICAgIGJv
eC5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnOworICAgICAgICBib3guc3R5bGUuYmFja2dyb3VuZENv
bG9yID0gJ3JlZCc7CisgICAgICAgIGJveC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNr
JzsKKyAgICAgICAgYm94LnN0eWxlLm1hcmdpbiA9ICc1cHgnOworICAgICAgICBib3guc3R5bGUu
dmlzaWJpbGl0eSA9ICdoaWRkZW4nOworCisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYm94KTsKKyAgICAg
ICAgfSwgMTAwMCk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+
CisgICAgPGlucHV0IGlkPSJhZGRWaXNpYmxlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJBZGQgYSB2
aXNpYmxlIGJveCEiIG9uY2xpY2s9ImFkZFZpc2libGVCb3goKSIvPgorICAgIDxpbnB1dCBpZD0i
YWRkSGlkZGVuIiB0eXBlPSJidXR0b24iIHZhbHVlPSJBZGQgYSBoaWRkZW4gYm94ISIgb25jbGlj
az0iYWRkSGlkZGVuQm94KCk7IiAvPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS9ibHVl
LmpwZyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0
bWw1L2JsdWUuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlYTI3YzQyZmFhN2I1ZTU2YzQzZDNkYjMxN2Q1ZTRl
Y2YxY2I2MTMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDkyCnpjbVo/d2JoRUhiRy01RGZYa2NK
YVdTR0pMQiE5OTFOZF5XVDVDTXs1VUB+cyRVd1FnMXxLZDRZWmdwP0l4OTJ5MQpzK2FyJUAmcE1h
QUk8QFRgX3dpM1kqVDN+WHw4PyZCS1lrdnJfOUtmdmNLQiRpdm9jciUwNHhQMGZCKm1oCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS9kYXRhYmFzZS5qcyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0bWw1L2RhdGFiYXNlLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNjMzM2JlOGNkMAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2h0bWw1L2RhdGFiYXNlLmpzCkBAIC0wLDAgKzEsODQgQEAKK3ZhciBkYXRhYmFzZT17fTsKK2Rh
dGFiYXNlLmRiPXt9OworCitkYXRhYmFzZS5vbkVycm9yID0gZnVuY3Rpb24odHgsIGUpIHsKKyAg
dmFyIGxvZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBsb2cuc2V0QXR0cmli
dXRlKCduYW1lJywnZXJyb3InKTsKKyAgbG9nLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdiYWNrZ3Jv
dW5kLWNvbG9yOnJlZCcpOworICBsb2cuaW5uZXJUZXh0ID0gZS5tZXNzYWdlOworICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbG9ncycpLmFwcGVuZENoaWxkKGxvZyk7Cit9CisKK2RhdGFiYXNl
Lm9uU3VjY2VzcyA9IGZ1bmN0aW9uKHR4LCByKSB7CisgIGlmIChyLnJvd3MubGVuZ3RoKSB7Cisg
ICAgdmFyIG9sOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgci5yb3dzLmxlbmd0aDsgaSsrKSB7
CisgICAgICBvbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29sJyk7CisgICAgICBvbC5pbm5l
ckhUTUwgPSByLnJvd3MuaXRlbShpKS5JRCArICI6ICIgKyByLnJvd3MuaXRlbShpKS5kb2NuYW1l
ICsgIiAoIiArIHIucm93cy5pdGVtKGkpLmNyZWF0ZWQgKyAiKSI7CisgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbG9ncycpLmFwcGVuZENoaWxkKG9sKTsKKyAgICB9CisKKyAgfQorfQor
CitkYXRhYmFzZS5vcGVuPWZ1bmN0aW9uKCl7CisgIGRhdGFiYXNlLmRiPW9wZW5EYXRhYmFzZSgn
SFRNTDUnLCAnMS4wJywgJ09mZmxpbmUgZG9jdW1lbnQgc3RvcmFnZScsIDEwMCoxMDI0KTsKK30K
KworZGF0YWJhc2UuY3JlYXRlPWZ1bmN0aW9uKCl7CisgIGRhdGFiYXNlLmRiLnRyYW5zYWN0aW9u
KGZ1bmN0aW9uKHR4KSB7CisgICAgdHguZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxFIElGIE5PVCBF
WElTVFMgZG9jcyhJRCBJTlRFR0VSIFBSSU1BUlkgS0VZIEFTQywgZG9jbmFtZSBURVhULCBjcmVh
dGVkIFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QKSIsCisgICAgICBbXSwKKyAg
ICAgIGRhdGFiYXNlLm9uU3VjY2VzcywKKyAgICAgIGRhdGFiYXNlLm9uRXJyb3IpOworICB9KTt9
CisKK2RhdGFiYXNlLmFkZCA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgZGF0YWJhc2UuZGIudHJh
bnNhY3Rpb24oZnVuY3Rpb24odHgpeworICAgIHR4LmV4ZWN1dGVTcWwoIklOU0VSVCBJTlRPIGRv
Y3MoZG9jbmFtZSkgVkFMVUVTICg/KSIsCisgICAgICAgIFttZXNzYWdlXSwgZGF0YWJhc2Uub25T
dWNjZXNzLCBkYXRhYmFzZS5vbkVycm9yKTsKKyAgICB9KTsKK30KKworZGF0YWJhc2Uuc2VsZWN0
QWxsID0gZnVuY3Rpb24oKSB7CisgIGRhdGFiYXNlLmRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4
KSB7CisgICAgdHguZXhlY3V0ZVNxbCgiU0VMRUNUICogRlJPTSBkb2NzIiwgW10sIGRhdGFiYXNl
Lm9uU3VjY2VzcywKKyAgICAgICAgZGF0YWJhc2Uub25FcnJvcik7CisgfSk7Cit9CisKK2RhdGFi
YXNlLm9uRGVsZXRlQWxsU3VjY2VzcyA9IGZ1bmN0aW9uKHR4LCByKSB7CisgIHZhciBkb2MgPSBk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgIHZhciBkYl9jb21wbGV0ZWQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgZGJfY29tcGxldGVkLnNldEF0dHJpYnV0ZSgiaWQiLCAi
ZGJfY29tcGxldGVkIik7CisgIGRiX2NvbXBsZXRlZC5pbm5lclRleHQgPSAiZGIgb3BlcmF0aW9u
IGNvbXBsZXRlZCI7CisgIGRvYy5hcHBlbmRDaGlsZChkYl9jb21wbGV0ZWQpOworfQorCitkYXRh
YmFzZS5kZWxldGVBbGwgPSBmdW5jdGlvbigpIHsKKyAgZGF0YWJhc2UuZGIudHJhbnNhY3Rpb24o
ZnVuY3Rpb24odHgpIHsKKyAgICB0eC5leGVjdXRlU3FsKCJkZWxldGUgZnJvbSBkb2NzIiwgW10s
IGRhdGFiYXNlLm9uRGVsZXRlQWxsU3VjY2VzcywKKyAgICAgICAgZGF0YWJhc2Uub25FcnJvcik7
CisgIH0pOworfQorCit2YXIgbG9nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cits
b2cuc2V0QXR0cmlidXRlKCduYW1lJywnbm90aWNlJyk7Citsb2cuc2V0QXR0cmlidXRlKCdzdHls
ZScsJ2JhY2tncm91bmQtY29sb3I6eWVsbG93Jyk7Citsb2cuaW5uZXJUZXh0ID0gdHlwZW9mIHdp
bmRvdy5vcGVuRGF0YWJhc2UgPT0gImZ1bmN0aW9uIiA/ICJXZWIgRGF0YWJhc2UgaXMgc3VwcG9y
dGVkLiIgOiAiV2ViIERhdGFiYXNlIGlzIG5vdCBzdXBwb3J0ZWQuIjsKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsb2dzJykuYXBwZW5kQ2hpbGQobG9nKTsKKwordHJ5IHsKKyAgZGF0YWJhc2Uu
b3BlbigpOworICBkYXRhYmFzZS5jcmVhdGUoKTsKKyAgZGF0YWJhc2UuYWRkKCdEb2MgMScpOwor
ICBkYXRhYmFzZS5hZGQoJ0RvYyAyJyk7CisgIGRhdGFiYXNlLnNlbGVjdEFsbCgpOworICBkYXRh
YmFzZS5kZWxldGVBbGwoKTsKK30gY2F0Y2goZXJyb3IpIHsKKyAgdmFyIGxvZyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBsb2cuc2V0QXR0cmlidXRlKCduYW1lJywnY3JpdGlj
YWwnKTsKKyAgbG9nLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdiYWNrZ3JvdW5kLWNvbG9yOnBpbmsn
KTsKKyAgbG9nLmlubmVyVGV4dCA9ICBlcnJvcjsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2xvZ3MnKS5hcHBlbmRDaGlsZChsb2cpOworfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvZ2VvbG9jYXRpb24uanMgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS9nZW9s
b2NhdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjA3YWYx
NDhlZDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9odG1sNS9nZW9sb2NhdGlvbi5qcwpAQCAtMCwwICsxLDE4IEBACitm
dW5jdGlvbiBzdWNjZXNzKHBvc2l0aW9uKSB7CisgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXR1cyIpOworICBtZXNzYWdlLmlubmVySFRNTCA9IjxpbWcgc3JjPSdo
dHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHMvYXBpL3N0YXRpY21hcD9jZW50ZXI9IiArIHBvc2l0
aW9uLmNvb3Jkcy5sYXRpdHVkZSArICIsIiArIHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUgKyAi
JnNpemU9MzAweDIwMCZtYXB0eXBlPXJvYWRtYXAmem9vbT0xMiYmbWFya2Vycz1zaXplOm1pZHxj
b2xvcjpyZWR8IiArIHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSArICIsIiArIHBvc2l0aW9uLmNv
b3Jkcy5sb25naXR1ZGUgKyAiJnNlbnNvcj1mYWxzZScgLz4iOworICBtZXNzYWdlLmlubmVySFRN
TCArPSAiPHA+TG9uZ2l0dWRlOiAiICsgcG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSArICI8L3A+
IjsKKyAgbWVzc2FnZS5pbm5lckhUTUwgKz0gIjxwPkxhdGl0dWRlOiAiICsgcG9zaXRpb24uY29v
cmRzLmxhdGl0dWRlICsgIjwvcD4iOworICBtZXNzYWdlLmlubmVySFRNTCArPSAiPHA+QWx0aXR1
ZGU6ICIgKyBwb3NpdGlvbi5jb29yZHMuYWx0aXR1ZGUgKyAiPC9wPiI7Cit9CisKK2Z1bmN0aW9u
IGVycm9yKG1zZykgeworICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
dGF0dXMiKTsKKyAgbWVzc2FnZS5pbm5lckhUTUwgPSAiRmFpbGVkIHRvIGdldCBnZW9sb2NhdGlv
bi4iOworfQorCitpZiAobmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7CisgIG5hdmlnYXRvci5nZW9s
b2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oc3VjY2VzcywgZXJyb3IpOworfSBlbHNlIHsKKyAg
ZXJyb3IoJ0dlb2xvY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuJyk7Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvZ3JlZW4uanBnIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvZ3JlZW4uanBnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZh
MGQzYmVhNDc5M2E1ZmUzYTNhMzZlMjliYTE3NDU0MDU0MDUxM2QKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDkyCnpjbVo/d2JoRUhiRy01RGZYa2NKcVQ7cyZSekBZZSgxeFBZNT16c3syMzxIeUtP
YUlFI1p9fUlgKj5iQ1VeU3dSNAp0YFAmfE9PbmNWMz9BNTdsQDNAYkReMTElNF94WjFMLX5hTFJh
SjMmPF5zJlE3T1AhVSQ4VVFgeEIpUnxxCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1s
NS9yZWQuanBnIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvaHRtbDUvcmVkLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjk2ZTI3MTk1NmQ1ZDRlMDkzOWI5NzA2ZTg2
YjJjMmJjMGQ2NWI3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21aP3diaEVIYkctNURm
WGtjTFkkSDJrQnpAWWUoMXhQWTU9enN7MjM8SHlLT2FJRSNafX1JYCo+YkNVXlN3UjQKdGBQJnxP
T25jVjM/QTU3bEAzQGJEXjExJTRfeFoxTC1+YUxSYUozJjxecyZRN09QIVUkOFVSS2RCKyZvPgoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUvc3RhdHVzLmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS9zdGF0dXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzk0MTE2YTUyMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9odG1sNS9zdGF0dXMuaHRtbApAQCAtMCwwICsxIEBACis8aHRtbD48aGVhZD48dGl0bGU+
T25saW5lPC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0bWw1L3Rlc3Qu
YXBwY2FjaGUgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9odG1sNS90ZXN0LmFwcGNhY2hlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4zYmM0ZTAwMjU3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2h0bWw1L3Rlc3QuYXBwY2FjaGUKQEAgLTAsMCAr
MSwxMSBAQAorQ0FDSEUgTUFOSUZFU1QKKworQ0FDSEU6CisjIEFkZGl0aW9uYWwgaXRlbXMgdG8g
Y2FjaGUuCit5ZWxsb3cuanBnCityZWQuanBnCitibHVlLmpwZworZ3JlZW4uanBnCisKK0ZBTExC
QUNLOgorc3RhdHVzLmh0bWwgb2ZmbGluZS5odG1sCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9odG1sNS95ZWxsb3cuanBnIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDUveWVsbG93
LmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YzYwOWIzNzEyOTFhZWI2NzJmZWI2YmMyNDQ5N2Q1ZjY0ZDIwMjg4
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5Mgp6Y21aP3diaEVIYkctNURmWGtjTFljWj5sRDZv
MGFTQzxZeDYwZ18+MEdIJlQjZEhPQj87eUdKeGIjSzE2PVFuQGIKckJhZG0lSSt3alZ3ZTIxRUBs
UVYyeng2KTxiPypCPWVqY3YmQmExJEVfLUx1S0dGU3J1ZkN3ZHoKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2h0bWw1UGFnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvaHRtbDVQYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjM1NWRkYzNhMWE2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaHRtbDVQYWdlLmh0bWwKQEAg
LTAsMCArMSwzMiBAQAorPGh0bWwgbWFuaWZlc3Q9Imh0bWw1L3Rlc3QuYXBwY2FjaGUiPgorPGhl
YWQ+Cis8dGl0bGU+SFRNTDU8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxoMz5HZW9sb2Nh
dGlvbiBUZXN0PC9oMz4KKzxkaXYgaWQ9InN0YXR1cyI+TG9jYXRpb24gdW5rbm93bjwvZGl2Pgor
PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Imh0bWw1L2dlb2xvY2F0aW9uLmpzIj48L3NjcmlwdD4KKworPGgzPldlYiBTUUwgRGF0YWJhc2Ug
VGVzdDwvaDM+Cis8ZGl2IGlkPSJsb2dzIj48L2Rpdj4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFz
Y3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodG1sNS9kYXRhYmFzZS5qcyI+PC9z
Y3JpcHQ+CisKKzxoMz5BcHBsaWNhdGlvbiBDYWNoZSBUZXN0PC9oMz4KKzxkaXYgaWQ9ImltYWdl
cyI+CisgIDxwPkN1cnJlbnQgbmV0d29yayBzdGF0dXM6IDxzcGFuIGlkPSJzdGF0ZSI+PC9zcGFu
PjwvcD4KKyAgPHNjcmlwdD4KKyAgICB2YXIgc3RhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc3RhdGUnKQorICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKKyAgICAgIHN0YXRlLmNs
YXNzTmFtZSA9IG5hdmlnYXRvci5vbkxpbmUgPyAnb25saW5lJyA6ICdvZmZsaW5lJzsKKyAgICAg
IHN0YXRlLmlubmVySFRNTCA9IG5hdmlnYXRvci5vbkxpbmUgPyAnb25saW5lJyA6ICdvZmZsaW5l
JzsKKyAgICB9LCAyNTApOworICA8L3NjcmlwdD4KKyAgPGltZyBpZD0icmVkIiBzcmM9Imh0bWw1
L3JlZC5qcGciPgorICA8aW1nIGlkPSJibHVlIiBzcmM9Imh0bWw1L2JsdWUuanBnIj4KKyAgPGlt
ZyBpZD0iZ3JlZW4iIHNyYz0iaHRtbDUvZ3JlZW4uanBnIj4KKyAgPGltZyBpZD0ieWVsbG93IiBz
cmM9Imh0bWw1L3llbGxvdy5qcGciPgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2lj
b24uZ2lmIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
aWNvbi5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI5OTQ2MTkyNzU2NzRhMzYxZjA5MjMzM2NiZmExMjIyMDlk
NjU0NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTI3CnpjbVo/d2JoOXV8NmstciFTaX1HWHxB
QW9iK1ckZDh8MX54TGZCKmlVZ1gyRj9SMGt2bFFwM1JQQk8jXmdkfkFaXgp6c2E8PzgqMXFJcklA
cnNnc0g1bVA+JnliU0NsfmVAJTxTI3tfMjZlI2ZxVz1TZzx3fCkqVlVGUSh0I1BQeTFGR2QKYkZB
MCZFX05lUlhxR2NOfHc/QXl+KDNzfVIjOSQyb0ghM3Q+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9pZEVsZW1lbnRzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9pZEVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjQ3ZjA4MzRjYWNjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaWRFbGVtZW50cy5odG1sCkBAIC0w
LDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IGlkPSJ3aXRoLmRvdHMiPkVsZW1lbnQg
d2l0aCBhIGRvdCBpbiB0aGUgaWQ8L2Rpdj4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2lmcmFtZUF0Qm90dG9tLmh0bWwgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pZnJhbWVBdEJvdHRv
bS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNjg2YmEzMTIx
NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2lmcmFtZUF0Qm90dG9tLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+
Cis8aGVhZD4KKyAgICA8dGl0bGU+VGhpcyBwYWdlIGhhcyBpZnJhbWVzPC90aXRsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGgxIGlkPSJpZnJhbWVfcGFnZV9oZWFkaW5nIj5UaGlzIGlzIHRoZSBoZWFk
aW5nPC9oMT4KKworPGRpdiBzdHlsZT0icG9zaXRpb246IGZpeGVkOyBib3R0b206IDBweDsgcmln
aHQ6IDBweDsgd2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDE1MHB4OyI+CisgIDxpZnJhbWUgc3JjPSJk
cmFnQW5kRHJvcFRlc3QuaHRtbCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgdG9w
bWFyZ2luPSIwIiBsZWZ0bWFyZ2luPSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgZnJhbWVi
b3JkZXI9IjEiIGhlaWdodD0iMTAwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iMTAwIiBpZD0iaWZy
YW1lMSIgbmFtZT0iaWZyYW1lMS1uYW1lIiAvPgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
KworCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9pZnJhbWVXaXRoQWxlcnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2lmcmFtZVdpdGhBbGVydC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYzU0ZGRkNThkZQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2lmcmFtZVdp
dGhBbGVydC5odG1sCkBAIC0wLDAgKzEgQEAKKzxhIGhyZWY9IiMiIGlkPSJhbGVydEluRnJhbWUi
IG9uY2xpY2s9ImFsZXJ0KCdmcmFtZWQgY2hlZXNlJyk7Ij5jbGljayBtZTwvYT4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2lmcmFt
ZVdpdGhJZnJhbWUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2lmcmFtZVdpdGhJZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uYjI5YzU0ZjNjNWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9pZnJhbWVXaXRoSWZyYW1lLmh0
bWwKQEAgLTAsMCArMSBAQAorPGlmcmFtZSBzcmM9ImlmcmFtZVdpdGhBbGVydC5odG1sIiBuYW1l
PSJpZnJhbWVXaXRoQWxlcnQiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaWZyYW1lcy5odG1sIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaWZyYW1lcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMDBiNDgyYWEwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2lmcmFtZXMuaHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5UaGlzIHBhZ2UgaGFzIGlmcmFtZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8aDEgaWQ9
ImlmcmFtZV9wYWdlX2hlYWRpbmciPlRoaXMgaXMgdGhlIGhlYWRpbmc8L2gxPgorCis8aWZyYW1l
IHNyYz0iZm9ybVBhZ2UuaHRtbCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgdG9w
bWFyZ2luPSIwIiBsZWZ0bWFyZ2luPSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIKKyAgICAg
ICAgZnJhbWVib3JkZXI9IjAiIGhlaWdodD0iNjAwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iMTIw
IiBpZD0iaWZyYW1lMSIgbmFtZT0iaWZyYW1lMS1uYW1lIiAvPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvaW5qZWN0YWJsZUNvbnRlbnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL2luamVjdGFibGVDb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcyNDhkY2NmOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaW5qZWN0YWJs
ZUNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRp
dGxlPnJhbmRvbSBudW1iZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgZnVuY3Rpb24g
ZGlzcGxheSgpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bWJlcnMnKS50
ZXh0Q29udGVudCA9IG51bWJlcnMuam9pbignICcpOworICAgICAgfQorICAgIDwvc2NyaXB0Pgor
ICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0iZGlzcGxheSgpIj4KKyAgICA8cD5Tb21lIHJhbmRv
bSBudW1iZXJzIGJldHdlZW4gMCBhbmQgMTAwOjwvcD4KKworICAgIDwhLS0gUGxhY2Vob2xkZXIg
Zm9yIHRoZSBsaXN0IG9mIHJhbmRvbSBudW1iZXJzIC0tPgorICAgIDxwIGlkPSJudW1iZXJzIj48
L3A+CisgICAgPHNjcmlwdD4KKyAgICAgIG51bWJlcnMgPSBbXTsKKyAgICAgIHdoaWxlIChudW1i
ZXJzLmxlbmd0aCA8IDEwMCkgeworICAgICAgICBudW1iZXJzLnB1c2goTWF0aC5yb3VuZChNYXRo
LnJhbmRvbSgpICogMTAwKSk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2lucHV0cy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvaW5wdXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmI2MDg1NGZhOWZjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvaW5wdXRzLmh0bWwKQEAgLTAsMCArMSw0
MiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+aW5wdXRzPC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGgxPlRlc3RpbmcgSW5wdXRzPC9oMT4KKworPGZvcm0gYWN0aW9uPSIjIj4KKyAg
PGlucHV0IG5hbWU9Im5vX3R5cGUiIHZhbHVlPSJpbnB1dCB3aXRoIG5vIHR5cGUiIC8+PGJyLz4K
KyAgPGJyLz4KKyAgPGlucHV0IG5hbWU9Im51bWJlcl9pbnB1dCIgdHlwZT0ibnVtYmVyIiB2YWx1
ZT0iNDIiIC8+PGJyLz4KKyAgPGlucHV0IG5hbWU9InJhbmdlX2lucHV0IiB0eXBlPSJyYW5nZSIg
dmFsdWU9IjQyIiAvPjxici8+CisgIDxici8+CisgIDxpbnB1dCBuYW1lPSJlbWFpbF9pbnB1dCIg
dHlwZT0iZW1haWwiIHZhbHVlPSJhZG1pbkBsb2NhbGhvc3QiIC8+PGJyLz4KKyAgPGlucHV0IG5h
bWU9InBhc3N3b3JkX2lucHV0IiB0eXBlPSJwYXNzd29yZCIgdmFsdWU9InF3ZXJ0eSIgLz48YnIv
PgorICA8aW5wdXQgbmFtZT0ic2VhcmNoX2lucHV0IiB0eXBlPSJzZWFyY2giIHZhbHVlPSJzZWFy
Y2giIC8+PGJyLz4KKyAgPGlucHV0IG5hbWU9InRlbF9pbnB1dCIgdHlwZT0idGVsIiB2YWx1ZT0i
OTExIiAvPjxici8+CisgIDxpbnB1dCBuYW1lPSJ0ZXh0X2lucHV0IiB0eXBlPSJ0ZXh0IiB2YWx1
ZT0idGV4dCBpbnB1dCIgLz48YnIvPgorICA8aW5wdXQgbmFtZT0idXJsX2lucHV0IiB0eXBlPSJ1
cmwiIHZhbHVlPSJodHRwOi8vc2VsZW5pdW1ocS5vcmcvIiAvPjxici8+CisgIDxici8+CisgIDxp
bnB1dCBuYW1lPSJjaGVja2JveF9pbnB1dCIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJDaGVja2Jv
eCIgY2hlY2tlZCAvPjxici8+CisgIDxpbnB1dCBuYW1lPSJyYWRpb19pbnB1dCIgdHlwZT0icmFk
aW8iIHZhbHVlPSJyYWRpbzEiIGNoZWNrZWQgLz48YnIvPgorICA8aW5wdXQgbmFtZT0icmFkaW9f
aW5wdXQiIHR5cGU9InJhZGlvIiB2YWx1ZT0icmFkaW8yIiAvPjxici8+CisgIDxici8+CisgIDxp
bnB1dCBuYW1lPSJjb2xvcl9pbnB1dCIgdHlwZT0iY29sb3IiIHZhbHVlPSIjMDBmZmZmIiAvPjxi
ci8+CisgIDxici8+CisgIDxpbnB1dCBuYW1lPSJkYXRlX2lucHV0IiB0eXBlPSJkYXRlIiB2YWx1
ZT0iMjAxNy0xMS0yMiIgLz48YnIvPgorICA8aW5wdXQgbmFtZT0iZGF0ZXRpbWVfaW5wdXQiIHR5
cGU9ImRhdGV0aW1lIiB2YWx1ZT0iMjAxNy0xMS0yMlQxMToyMiIgLz48YnIvPgorICA8aW5wdXQg
bmFtZT0iZGF0ZXRpbWVfbG9jYWxfaW5wdXQiIHR5cGU9ImRhdGV0aW1lLWxvY2FsIiB2YWx1ZT0i
MjAxNy0xMS0yMlQxMToyMiIgLz48YnIvPgorICA8aW5wdXQgbmFtZT0idGltZV9pbnB1dCIgdHlw
ZT0idGltZSIgdmFsdWU9IjExOjIyIiAvPjxici8+CisgIDxpbnB1dCBuYW1lPSJtb250aF9pbnB1
dCIgdHlwZT0ibW9udGgiIHZhbHVlPSIyMDE3LTExIiAvPjxici8+CisgIDxpbnB1dCBuYW1lPSJ3
ZWVrX2lucHV0IiB0eXBlPSJ3ZWVrIiB2YWx1ZT0iMjAxNy1XNDciIC8+PGJyLz4KKyAgPGJyLz4K
KyAgPGlucHV0IG5hbWU9ImJ1dHRvbl9pbnB1dCIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYnV0dG9u
IiAvPiZuYnNwOworICA8aW5wdXQgbmFtZT0iaW1hZ2VfaW5wdXQiIHR5cGU9ImltYWdlIiB2YWx1
ZT0iaW1hZ2UiIHNyYz0iaWNvbi5naWYiIC8+Jm5ic3A7CisgIDxpbnB1dCBuYW1lPSJyZXNldF9p
bnB1dCIgdHlwZT0icmVzZXQiIHZhbHVlPSJyZXNldCIgLz4mbmJzcDsKKyAgPGlucHV0IG5hbWU9
InN1Ym1pdF9pbnB1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic3VibWl0IiAvPiZuYnNwOworCisg
IDxpbnB1dCBuYW1lPSJoaWRkZW5faW5wdXQiIHR5cGU9ImhpZGRlbiIgdmFsdWU9ImhpZGRlbiIg
Lz4KKzwvZm9ybT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2phdmFzY3JpcHRFbmhhbmNlZEZvcm0u
aHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2ph
dmFzY3JpcHRFbmhhbmNlZEZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uY2JjZmY0MzM1ODkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0RW5oYW5jZWRGb3JtLmh0
bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBI
VE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xv
b3NlLmR0ZCI+CisKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+SmF2YXNjcmlw
dCBFbmhhbmNlZCBQYWdlPC90aXRsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxmb3JtIGlkPSJmb3JtMSIgYWN0aW9uPSJqYXZhc2NyaXB0RW5oYW5jZWRGb3JtLmh0bWwiIG1l
dGhvZD0icG9zdCI+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9
ImxhYmVsZm9ydXNlcm5hbWUiIGZvcj0idXNlcm5hbWUiPgorICAgICAgICAgICAgICAgICAgICBV
c2VybmFtZTogPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUi
IC8+CisgICAgICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFt
ZScpLnZhbHVlID0gJ01pY2hhZWwnOworICAgICAgICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgICAgICAgICAgICA8L2xhYmVsPgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+
CisgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icGFzc3dvcmQiPgorICAgICAgICAgICAgICAg
ICAgICBQYXNzd29yZDogPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9
InBhc3N3b3JkIiAvPgorICAgICAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgeiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdwYXNzd29yZCcpOyBzZXRUaW1lb3V0KCd0cnl7ei5mb2N1cygpO3ouc2VsZWN0
KCk7fSBjYXRjaChlKSB7fScsIDEpOworICAgICAgICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgICAgICAgICAgICA8L2xhYmVsPgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+
CisgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIgLz4K
KyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgPC9mb3JtPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvamF2YXNjcmlwdFBh
Z2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmNhYzI1MmU4
OTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9qYXZhc2NyaXB0UGFnZS5odG1sCkBAIC0wLDAgKzEsMjg1IEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRk
Ij4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0i
ZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0aW5nIEphdmFzY3JpcHQ8L3Rp
dGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgdmFyIHNl
ZW4gPSB7fTsKKworICAgICAgICBmdW5jdGlvbiB1cGRhdGVDb250ZW50KGlucHV0KSB7CisgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0UGFyYWdyYXBoJykuaW5uZXJI
VE1MID0gaW5wdXQudmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkaXNwbGF5
TWVzc2FnZShtZXNzYWdlKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cmVzdWx0UGFyYWdyYXBoJykuaW5uZXJIVE1MID0gbWVzc2FnZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGFwcGVuZE1lc3NhZ2UobWVzc2FnZSkgeworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFBhcmFncmFwaCcpLmlubmVySFRNTCArPSBtZXNzYWdl
ICsgIiAiOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXIobWVzc2FnZSkg
eworICAgICAgICAgIGlmICghc2VlblttZXNzYWdlXSkgeworICAgICAgICAgICAgYXBwZW5kTWVz
c2FnZShtZXNzYWdlKTsKKyAgICAgICAgICAgIHNlZW5bbWVzc2FnZV0gPSB0cnVlOworICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRlbGF5ZWRTaG93SGlkZShkZWxh
eSwgc2hvdykgeworICAgICAgICAgIHZhciBibGFja0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjbGlja1RvSGlkZScpOworICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgYmxhY2tCb3guc3R5bGUuZGlzcGxheSA9IHNob3cgPyAnJyA6ICdu
b25lJzsKKyAgICAgICAgICB9LCBkZWxheSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIHZhciBzdGFydExpc3Qg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIC8vIFVnaC4gTGV0J3MgaG9wZSBuby1vbmUgaXMg
ZmFraW5nIHRoZWlyIHVzZXIgYWdlbnQgd2hlbiBydW5uaW5nIHRoZSB0ZXN0cworICAgICAgICAg
ICAgaWYgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSIpICE9IC0xKSB7CisgICAg
ICAgICAgICAgICAgdmFyIG5hdlJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF2Iik7
CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYXZSb290LmNoaWxkTm9kZXMu
bGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBuYXZSb290LmNo
aWxkTm9kZXNbaV07CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09ICJM
SSIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub25tb3VzZW92ZXIgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsYXNzTmFtZSArPSAiIG92
ZXIiOworICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUub25tb3VzZW91dCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWUucmVwbGFjZSgiIG92ZXIiLCAiIik7
CisgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICB3aW5kb3cu
b25sb2FkPXN0YXJ0TGlzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorICAgICAgICAjbmF2IHsKKyAgICAgICAgICAgIHBhZGRpbmc6IDA7IG1hcmdpbjogMDsg
bGlzdC1zdHlsZTogbm9uZTsKKyAgICAgICAgfQorICAgICAgICAjbmF2IGxpIHsKKyAgICAgICAg
ICAgIGZsb2F0OiBsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMGVtOworICAgICAg
ICB9CisgICAgICAgICNuYXYgbGkgdWwgeworICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9z
aXRpb246IGFic29sdXRlOyB0b3A6IDFlbTsgbGVmdDogMDsKKyAgICAgICAgfQorICAgICAgICAj
bmF2IGxpID4gdWwgeyB0b3A6IGF1dG87IGxlZnQ6IGF1dG87IH0KKyAgICAgICAgI25hdiBsaTpo
b3ZlciB1bCwgI25hdiBsaS5vdmVyIHVseyBkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZDogd2hp
dGU7IH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aDE+VHlwZSBTdHVmZjwvaDE+
CisKKzxkaXY+CisgICAgPHVsIGlkPSJuYXYiPgorICAgICAgICA8bGkgaWQ9Im1lbnUxIj5NZW51
IDEKKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGkgaWQ9Iml0ZW0xIiBvbmNs
aWNrPSJkaXNwbGF5TWVzc2FnZSgnaXRlbSAxJyk7Ij5JdGVtIDE8L2xpPgorICAgICAgICAgICAg
ICAgIDxsaT5JdGVtIDI8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAg
ICA8L3VsPgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdENvbnRhaW5lciIgaGVpZ2h0PSIzMCI+
Jm5ic3A7CisgIDxkaXYgaWQ9InJlc3VsdCIgc3R5bGU9IndpZHRoOjMwMDtoZWlnaHQ6NjAiPgor
ICAgIDxwIGlkPSJyZXN1bHRQYXJhZ3JhcGgiPiZuYnNwOzwvcD4KKyAgPC9kaXY+CisKKzwvZGl2
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKzxkaXYgaWQ9ImZvcm1hZ2VkZG9u
Ij4KKyAgICA8Zm9ybSBhY3Rpb249IiMiPgorICAgICAgICBLZXkgVXA6IDxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0ia2V5VXAiIG9ua2V5dXA9ImphdmFzY3JpcHQ6dXBkYXRlQ29udGVudCh0aGlzKSIv
Pjxici8+CisgICAgICAgIEtleSBEb3duOiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImtleURvd24i
IG9ua2V5ZG93bj0iamF2YXNjcmlwdDp1cGRhdGVDb250ZW50KHRoaXMpIi8+PGJyLz4KKyAgICAg
ICAgS2V5IFByZXNzOiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImtleVByZXNzIiBvbmtleXByZXNz
PSJqYXZhc2NyaXB0OnVwZGF0ZUNvbnRlbnQodGhpcykiLz48YnIvPgorICAgICAgICBDaGFuZ2U6
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2hhbmdlIiBvbmtleXByZXNzPSJqYXZhc2NyaXB0OmRp
c3BsYXlNZXNzYWdlKCdjaGFuZ2UnKSIvPjxici8+CisgICAgICAgIDx0ZXh0YXJlYSBpZD0ia2V5
RG93bkFyZWEiIG9ua2V5ZG93bj0iamF2YXNjcmlwdDp1cGRhdGVDb250ZW50KHRoaXMpIiByb3dz
PSIyIiBjb2xzPSIxNSI+PC90ZXh0YXJlYT4KKyAgICAgICAgPHRleHRhcmVhIGlkPSJrZXlQcmVz
c0FyZWEiIG9ua2V5cHJlc3M9ImphdmFzY3JpcHQ6dXBkYXRlQ29udGVudCh0aGlzKSIgcm93cz0i
MiIgY29scz0iMTUiPjwvdGV4dGFyZWE+CisgICAgICAgIDx0ZXh0YXJlYSBpZD0ia2V5VXBBcmVh
IiBvbmtleXVwPSJqYXZhc2NyaXB0OnVwZGF0ZUNvbnRlbnQodGhpcykiIHJvd3M9IjIiIGNvbHM9
IjE1Ij48L3RleHRhcmVhPgorICAgICAgICA8c2VsZWN0IGlkPSJzZWxlY3RvciIgb25jaGFuZ2U9
ImphdmFzY3JpcHQ6dXBkYXRlQ29udGVudCh0aGlzKSI+CisgICAgICAgICAgICA8b3B0aW9uIHZh
bHVlPSJmb28iPkZvbzwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYmFyIj5C
YXI8L29wdGlvbj4KKyAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDxzZWxlY3QgaWQ9InNlbGVj
dG9yMiIgb25jbGljaz0iamF2YXNjcmlwdDp1cGRhdGVDb250ZW50KHRoaXMpIj4KKyAgICAgICAg
ICAgIDxvcHRpb24gdmFsdWU9ImZvbyI+Rm9vPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0aW9u
IHZhbHVlPSJiYXIiPkJhcjwvb3B0aW9uPgorICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgPGlu
cHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2tib3giIHZhbHVlPSJjaGVja2JveCB0aGluZyIg
b25jaGFuZ2U9ImphdmFzY3JpcHQ6dXBkYXRlQ29udGVudCh0aGlzKSIvPgorICAgICAgICA8aW5w
dXQgaWQ9ImNsaWNrRmllbGQiIHR5cGU9InRleHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjbGlja0ZpZWxkJykudmFsdWU9J0NsaWNrZWQnOyIgdmFsdWU9IkhlbGxvIi8+Cisg
ICAgICAgIDxpbnB1dCBpZD0iZG91YmxlQ2xpY2tGaWVsZCIgdHlwZT0idGV4dCIgb25jbGljaz0i
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvdWJsZUNsaWNrRmllbGQnKS52YWx1ZT0nQ2xpY2tl
ZCc7IiBvbmRibGNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG91YmxlQ2xpY2tGaWVs
ZCcpLnZhbHVlPSdEb3VibGVDbGlja2VkJzsiIG9uY29udGV4dG1lbnU9ImRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkb3VibGVDbGlja0ZpZWxkJykudmFsdWU9J0NvbnRleHRDbGlja2VkJzsgcmV0
dXJuIGZhbHNlOyIgdmFsdWU9IkRvdWJsZUhlbGxvIi8+CisgICAgICAgIDxpbnB1dCBpZD0iY2xl
YXJNZSIgdmFsdWU9IlNvbWV0aGluZyIgb25jaGFuZ2U9ImRpc3BsYXlNZXNzYWdlKCdDbGVhcmVk
JykiLz4KKyAgICA8L2Zvcm0+Cis8L2Rpdj4KKworPGRpdj4KKyAgICA8cD48YSBocmVmPSIjIiBv
bmNsaWNrPSJqYXZhc2NyaXB0OmRvY3VtZW50LnRpdGxlPSdDaGFuZ2VkJyI+Q2hhbmdlIHRoZSBw
YWdlIHRpdGxlITwvYT48L3A+CisKKyAgICA8cD48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OmRvY3Vt
ZW50LnRpdGxlPSdDaGFuZ2VkJyIgaWQ9Im5vaHJlZiI+Tm8gaHJlZjwvYT48L3A+CisKKyAgICA8
cD48YSBpZD0idXBkYXRlZGl2IiBocmVmPSIjIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdkeW5hbW8nKS5pbm5lckhUTUwgPSAnRmlzaCBhbmQgY2hpcHMhJzsi
PlVwZGF0ZSBhCisgICAgICAgIGRpdjwvYT48L3A+Cis8L2Rpdj4KKworPGRpdiBpZD0iZHluYW1v
Ij5XaGF0J3MgZm9yIGRpbm5lcj88L2Rpdj4KKworPGRpdiBpZD0ibW91c2Vkb3duIiBvbm1vdXNl
ZG93bj0iamF2YXNjcmlwdDpkaXNwbGF5TWVzc2FnZSgnbW91c2UgZG93bicpOyI+CisgICAgPHA+
Q2xpY2sgZm9yIHRoZSBtb3VzZSBkb3duIGV2ZW50PC9wPgorICAgIDxzcGFuPjxwIGlkPSJjaGls
ZCI+SGVyZSdzIHNvbWUgdGV4dDwvcD48L3NwYW4+Cis8L2Rpdj4KKworPGRpdiBpZD0ibW91c2V1
cCIgb25tb3VzZXVwPSJqYXZhc2NyaXB0OmRpc3BsYXlNZXNzYWdlKCdtb3VzZSB1cCcpOyI+Cisg
ICAgPHA+Q2xpY2sgZm9yIHRoZSBtb3VzZSB1cCBldmVudDwvcD4KKzwvZGl2PgorCis8ZGl2IGlk
PSJtb3VzZWNsaWNrIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmRpc3BsYXlNZXNzYWdlKCdtb3VzZSBj
bGljaycpOyI+CisgICAgPHA+Q2xpY2sgZm9yIHRoZSBtb3VzZSBjbGljayBldmVudDwvcD4KKzwv
ZGl2PgorCis8ZGl2IGlkPSJlcnJvciIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RvZXNub3RleGlzdCcpLmlubmVySFRNTCA9ICdjaGVlc2UnOyI+CisgICAgQ2xpY2tpbmcgdGhp
cyBjYXVzZXMgYSBKUyBleGNlcHRpb24gaW4gdGhlIGNsaWNrIGhhbmRsZXIKKzwvZGl2PgorCis8
ZGl2PgorICA8Zm9ybSBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgaWQ9Im9uLWZvcm0iPgorICAg
IDxpbnB1dCBpZD0idGhld29ya3MiCisgICAgICAgICAgIG9uZm9jdXM9ImFwcGVuZE1lc3NhZ2Uo
J2ZvY3VzJykiCisgICAgICAgICAgIG9ua2V5ZG93bj0iYXBwZW5kTWVzc2FnZSgna2V5ZG93bicp
IgorICAgICAgICAgICBvbmtleXByZXNzPSJhcHBlbmRNZXNzYWdlKCdrZXlwcmVzcycpIgorICAg
ICAgICAgICBvbmtleXVwPSJhcHBlbmRNZXNzYWdlKCdrZXl1cCcpIgorICAgICAgICAgICBvbmJs
dXI9ImFwcGVuZE1lc3NhZ2UoJ2JsdXInKSIKKyAgICAgICAgICAgb25jaGFuZ2U9ImFwcGVuZE1l
c3NhZ2UoJ2NoYW5nZScpIgorICAgICAgICAgICAvPgorCisgICAgPGlucHV0IGlkPSJjaGFuZ2Vh
YmxlIiBuYW1lPSJjaGFuZ2VhYmxlIiBvbmZvY3VzPSJhcHBlbmRNZXNzYWdlKCdmb2N1cycpIiBv
bmNoYW5nZT0iYXBwZW5kTWVzc2FnZSgnY2hhbmdlJykiIG9uYmx1cj0iYXBwZW5kTWVzc2FnZSgn
Ymx1cicpIi8+CisgICAgICAgICAgIAorICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icGxh
aW5CdXR0b24iIAorICAgIAkJb25mb2N1cz0iYXBwZW5kTWVzc2FnZSgnZm9jdXMnKSIKKyAgICAg
ICAgICAgCW9ua2V5ZG93bj0iYXBwZW5kTWVzc2FnZSgna2V5ZG93bicpIgorICAgICAgICAgICAJ
b25rZXlwcmVzcz0iYXBwZW5kTWVzc2FnZSgna2V5cHJlc3MnKSIKKyAgICAgICAgICAgCW9ua2V5
dXA9ImFwcGVuZE1lc3NhZ2UoJ2tleXVwJykiCisgICAgICAgICAgIAlvbmJsdXI9ImFwcGVuZE1l
c3NhZ2UoJ2JsdXInKSIKKyAgICAgICAgICAgCW9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ2NsaWNr
JykiCisgICAgICAgICAgIAlvbm1vdXNlZG93bj0iYXBwZW5kTWVzc2FnZSgnbW91c2Vkb3duICcp
IiAKKyAgICAgICAgICAgCW9ubW91c2V1cD0iYXBwZW5kTWVzc2FnZSgnbW91c2V1cCAnKSIKKyAg
ICAgICAgICAgIG9ubW91c2VvdmVyPSJyZWdpc3RlcignbW91c2VvdmVyICcpIgorICAgICAgICAg
ICAgb25tb3VzZW1vdmU9InJlZ2lzdGVyKCdtb3VzZW1vdmUgJykiCisgICAgPgorICAgICAgICA8
Yj5HbyBzb21ld2hlcmU8L2I+CisgICAgPC9idXR0b24+CisgICAgPGJ1dHRvbiB0eXBlPSJzdWJt
aXQiIGlkPSJzdWJtaXR0aW5nQnV0dG9uIj48ZW1waD5zdWJtaXQ8L2VtcGg+PC9idXR0b24+Cisg
ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJqc1N1Ym1pdEJ1dHRvbiIgb25jbGljaz0iamF2
YXNjcmlwdDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb24tZm9ybScpLnN1Ym1pdCgpOyI+U3Vi
bWl0b21hdGljPC9idXR0b24+CisKKyAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InN3aXRj
aEZvY3VzIiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhld29ya3MnKS5mb2N1
cygpOyI+U3dpdGNoIGZvY3VzPC9idXR0b24+CisgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIG9u
Y2xpY2s9InZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N3aXRjaEZvY3Vz
Jyk7IHZhciBjbGlja0V2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnRzJyk7
IGNsaWNrRXZlbnQuaW5pdE1vdXNlRXZlbnQoJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSwgbnVsbCwgMCwg
MCwgMCwgMCwgMCxmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZWxlbWVudCk7ZWxlbWVu
dC5kaXNwYXRjaEV2ZW50KGNsaWNrRXZlbnQpOyI+RG8gbWFnaWM8L2J1dHRvbj48YnIvPgorICAg
IDxsYWJlbCBpZD0ibGFiZWxGb3JDaGVja2JveCIgZm9yPSJsYWJlbGVkQ2hlY2tib3giIG9uY2xp
Y2s9ImFwcGVuZE1lc3NhZ2UoJ2xhYmVsY2xpY2snKSI+VG9nZ2xlIGNoZWNrYm94PC9sYWJlbD48
aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJsYWJlbGVkQ2hlY2tib3giIG9uY2xpY2s9ImFwcGVu
ZE1lc3NhZ2UoJ2NoYm94Y2xpY2snKSIvPgorICA8L2Zvcm0+CisgIAorICA8Zm9ybSBhY3Rpb249
ImphdmFzY3JpcHRQYWdlLmh0bWwiIGlkPSJzdWJtaXRMaXN0ZW5pbmdGb3JtIiBvbnN1Ym1pdD0i
YXBwZW5kTWVzc2FnZSgnZm9ybS1vbnN1Ym1pdCAnKTsgcmV0dXJuIGZhbHNlOyI+CisgICAgPHA+
CisgICAgICA8aW5wdXQgaWQ9InN1Ym1pdExpc3RlbmluZ0Zvcm0tdGV4dCIgdHlwZT0idGV4dCIg
b25zdWJtaXQ9ImFwcGVuZE1lc3NhZ2UoJ3RleHQtb25zdWJtaXQgJykiIG9uY2xpY2s9ImFwcGVu
ZE1lc3NhZ2UoJ3RleHQtb25jbGljayAnKTsiIC8+CisgICAgICA8aW5wdXQgaWQ9InN1Ym1pdExp
c3RlbmluZ0Zvcm0tc3VibWl0IiB0eXBlPSJzdWJtaXQiIG9uc3VibWl0PSJhcHBlbmRNZXNzYWdl
KCdzdWJtaXQtb25zdWJtaXQgJykiIG9uY2xpY2s9ImFwcGVuZE1lc3NhZ2UoJ3N1Ym1pdC1vbmNs
aWNrICcpOyIgLz4KKyAgICA8L3A+CisgIDwvZm9ybT4KKzwvZGl2PgorCis8cCBpZD0ic3VwcHJl
c3NlZFBhcmFncmFwaCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPkEgcGFyYWdyYXBoIHN1cHByZXNz
ZWQgdXNpbmcgQ1NTIGRpc3BsYXk9bm9uZTwvcD4KKworPGRpdj4KKyAgICA8cCBpZD0iZGlzcGxh
eWVkIj5EaXNwbGF5ZWQ8L3A+CisKKyAgICA8Zm9ybSBhY3Rpb249IiMiPjxpbnB1dCB0eXBlPSJo
aWRkZW4iIG5hbWU9ImhpZGRlbiIgLz4gPC9mb3JtPgorCisgICAgPHAgaWQ9Im5vbmUiIHN0eWxl
PSJkaXNwbGF5OiBub25lOyI+RGlzcGxheSBzZXQgdG8gbm9uZTwvcD4KKworICAgIDxwIGlkPSJo
aWRkZW4iIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij5IaWRkZW48L3A+CisKKyAgICA8ZGl2
IGlkPSJoaWRkZW5wYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDJlbTsgZGlzcGxheTogbm9uZTsiPgor
ICAgICAgPGRpdiBpZD0iaGlkZGVuY2hpbGQiPgorICAgICAgICA8YSBocmVmPSIjIiBpZD0iaGlk
ZGVubGluayI+b2s8L2E+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICAKKyAgICA8ZGl2
IHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij4KKyAgICAgIDxzcGFuPgorICAgICAgICA8aW5w
dXQgaWQ9InVuY2xpY2thYmxlIiAvPgorICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlk
PSJ1bnRvZ2dsYWJsZSIgY2hlY2tlZD0iY2hlY2tlZCIgLz5DaGVjayBib3ggeW91IGNhbid0IHNl
ZQorICAgICAgPC9zcGFuPgorICAgIDwvZGl2PgorCisgICAgPHAgaWQ9Im91dGVyIiBzdHlsZT0i
dmlzaWJpbGl0eTogaGlkZGVuIj5BIDxiIGlkPSJ2aXNpYmxlU3ViRWxlbWVudCIgc3R5bGU9InZp
c2liaWxpdHk6IHZpc2libGUiPnN1Yi1lbGVtZW50IHRoYXQgaXMgZXhwbGljaXRseSB2aXNpYmxl
PC9iPiB1c2luZyBDU1MgdmlzaWJpbGl0eT12aXNpYmxlPC9wPgorPC9kaXY+CisKKzxkaXY+Cisg
ICAgPGZvcm0+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ia2V5UmVwb3J0ZXIiIHNp
emU9IjgwIgorICAgICAgICAgICAgICAgb25rZXl1cD0iYXBwZW5kTWVzc2FnZSgndXA6ICcgKyBl
dmVudC5rZXlDb2RlKSIKKyAgICAgICAgICAgICAgIG9ua2V5cHJlc3M9ImFwcGVuZE1lc3NhZ2Uo
J3ByZXNzOiAnICsgZXZlbnQua2V5Q29kZSkiCisgICAgICAgICAgICAgICBvbmtleWRvd249ImRp
c3BsYXlNZXNzYWdlKCcnKTsgYXBwZW5kTWVzc2FnZSgnZG93bjogJyArIGV2ZW50LmtleUNvZGUp
IiAvPgorICAgICAgICA8aW5wdXQgbmFtZT0ic3VwcHJlc3MiIG9ua2V5ZG93bj0iaWYgKGV2ZW50
LnByZXZlbnREZWZhdWx0KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBldmVudC5yZXR1cm5WYWx1
ZSA9IGZhbHNlOyByZXR1cm4gZmFsc2U7IiBvbmtleXByZXNzPSJhcHBlbmRNZXNzYWdlKCdwcmVz
cycpOyIvPgorICAgIDwvZm9ybT4KKzwvZGl2PgorCis8IS0tIFVzZWQgZm9yIHRlc3Rpbmcgc3R5
bGVzIC0tPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IiBpZD0iZ3JlZW4t
cGFyZW50Ij4KKyAgPHAgaWQ9InN0eWxlMSI+VGhpcyBzaG91bGQgYmUgZ3JlZW5pc2g8L3A+Cisg
ICAgPHVsPgorICAgICAgPGxpIGlkPSJncmVlbi1pdGVtIj5TbyBzaG91bGQgdGhpczwvbGk+Cisg
ICAgICA8bGkgaWQ9InJlZC1pdGVtIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyI+QnV0
IHRoaXMgaXMgcmVkPC9saT4KKyAgICA8L3VsPgorPC9kaXY+CisKKzxhIGhyZWY9IiMiIGlkPSJj
bG9zZSIgb25jbGljaz0id2luZG93LmNsb3NlKCk7Ij5DbG9zZSB3aW5kb3c8L2E+CisKKzxkaXYg
aWQ9ImRlbGV0ZSIgb25jbGljaz0idmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVs
ZXRlZCcpOyB0aGlzLnJlbW92ZUNoaWxkKGQpOyI+CisgICAgPHAgaWQ9ImRlbGV0ZWQiPkkgc2hv
dWxkIGJlIGRlbGV0ZWQgd2hlbiB5b3UgY2xpY2sgbXkgY29udGFpbmluZyBkaXY8L3A+CisgICAg
PHA+V2hlcmVhcywgSSBzaG91bGQgbm90PC9wPgorPC9kaXY+CisKKzxkaXY+CisgICAgPHNwYW4g
aWQ9ImhpZGVNZSIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyI+Q2xpY2sg
dG8gaGlkZSBtZS48L3NwYW4+Cis8L2Rpdj4KKworPGRpdiBpZD0iaGlkZU9uQmx1ciIgdGFiaW5k
ZXg9IjAiCisgICAgIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJvcmRlcjog
MXB4IHNvbGlkIHJlZCIKKyAgICAgb25ibHVyPSJhcHBlbmRNZXNzYWdlKCdibHVyJyk7IHRoaXMu
c3R5bGUuZGlzcGxheSA9ICdub25lJzsiPgorICA8ZGl2IGlkPSJoaWRlT25CbHVyQ2hpbGQiCisg
ICAgICAgc3R5bGU9IndpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7IGJvcmRlcjogMXB4IHNvbGlk
IGJsdWUiPgorICAgIHgKKyAgPC9kaXY+CisgIEZvY3VzYWJsZS4gV2lsbCBoaWRlIHdoZW4gZm9j
dXMgaXMgbG9zdC4KKzwvZGl2PgorCis8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+Cisg
IENsaWNrIGFjdGlvbnMgZGVsYXllZCBieSAzMDAwbXM6CisgIDxkaXYgaWQ9ImNsaWNrVG9TaG93
IiBvbmNsaWNrPSJkZWxheWVkU2hvd0hpZGUoMzAwMCwgdHJ1ZSk7IgorICAgICAgIHN0eWxlPSJm
bG9hdDogbGVmdDt3aWR0aDogMTAwcHg7aGVpZ2h0OjEwMHB4O2JvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOyI+CisgICAgQ2xpY2sgdG8gc2hvdyBibGFjayBib3gKKyAgPC9kaXY+CisgIDxkaXYgaWQ9
ImNsaWNrVG9IaWRlIiBvbmNsaWNrPSJkZWxheWVkU2hvd0hpZGUoMzAwMCwgZmFsc2UpOyIKKyAg
ICAgICBzdHlsZT0iZmxvYXQ6IGxlZnQ7d2lkdGg6IDEwMHB4O2hlaWdodDoxMDBweDtib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7
IGNvbG9yOiB3aGl0ZTsgZGlzcGxheTogbm9uZTsiPgorICAgIENsaWNrIHRvIGhpZGUgYmxhY2sg
Ym94CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJjbGVhcjogYm90aCI+PC9kaXY+Cis8L2Rpdj4K
KworPGEgaWQ9Im5ld193aW5kb3ciIG9ubW91c2V1cD0id2luZG93Lm9wZW4oJ2Nsb3NlYWJsZV93
aW5kb3cuaHRtbCcsICdjbG9zZV9tZScpIiBocmVmPSIjIj5DbGljayBtZSB0byBvcGVuIGEgbmV3
IHdpbmRvdzwvYT4KKworPGEgaWQ9InRocm93aW5nLW1vdXNlb3ZlciIgb25tb3VzZW92ZXI9InRo
cm93IG5ldyBFcnJvcigpIiBocmVmPSIjdGhyb3dpbmctbW91c2VvdmVyIj5Nb3VzZSBvdmVyIG1l
IHdpbGwgdGhyb3cgYSBKUyBlcnJvcjwvYT4KKworPGRpdiBpZD0icGFyZW50Ij4KKyAgICA8c3Bh
biBpZD0ibW92YWJsZSIgb25tb3VzZW92ZXI9InZhciBwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ21vdmFibGUnKTsgZGlzcGxheU1lc3NhZ2UoJ3BhcmVudCBtYXRjaGVzPyAnICsgKHAgIT0g
ZXZlbnQucmVsYXRlZFRhcmdldCkpOyI+CisgICAgICAgIENsaWNrIG9uIG1lIHRvIHNob3cgdGhl
IHJlbGF0ZWQgdGFyZ2V0CisgICAgPC9zcGFuPgorPC9kaXY+CisKKzxkaXYgaWQ9Inplcm8iIHN0
eWxlPSJ3aWR0aDowO2hlaWdodDowIj4KKyAgPGRpdj4KKyAgICA8aW1nIHNyYz0ibWFwLnBuZyI+
CisgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKworCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcXVlcnktMS4z
LjIuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9q
cXVlcnktMS4zLjIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2
MmNkZTU2YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvanF1ZXJ5LTEuMy4yLmpzCkBAIC0wLDAgKzEsNDM3NiBAQAor
LyohCisgKiBqUXVlcnkgSmF2YVNjcmlwdCBMaWJyYXJ5IHYxLjMuMgorICogaHR0cDovL2pxdWVy
eS5jb20vCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA5IEpvaG4gUmVzaWcKKyAqIER1YWwgbGlj
ZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgorICogaHR0cDovL2RvY3MuanF1
ZXJ5LmNvbS9MaWNlbnNlCisgKgorICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAo
VGh1LCAxOSBGZWIgMjAwOSkKKyAqIFJldmlzaW9uOiA2MjQ2CisgKi8KKyhmdW5jdGlvbigpewor
Cit2YXIgCisJLy8gV2lsbCBzcGVlZCB1cCByZWZlcmVuY2VzIHRvIHdpbmRvdywgYW5kIGFsbG93
cyBtdW5naW5nIGl0cyBuYW1lLgorCXdpbmRvdyA9IHRoaXMsCisJLy8gV2lsbCBzcGVlZCB1cCBy
ZWZlcmVuY2VzIHRvIHVuZGVmaW5lZCwgYW5kIGFsbG93cyBtdW5naW5nIGl0cyBuYW1lLgorCXVu
ZGVmaW5lZCwKKwkvLyBNYXAgb3ZlciBqUXVlcnkgaW4gY2FzZSBvZiBvdmVyd3JpdGUKKwlfalF1
ZXJ5ID0gd2luZG93LmpRdWVyeSwKKwkvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3
cml0ZQorCV8kID0gd2luZG93LiQsCisKKwlqUXVlcnkgPSB3aW5kb3cualF1ZXJ5ID0gd2luZG93
LiQgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7CisJCS8vIFRoZSBqUXVlcnkgb2Jq
ZWN0IGlzIGFjdHVhbGx5IGp1c3QgdGhlIGluaXQgY29uc3RydWN0b3IgJ2VuaGFuY2VkJworCQly
ZXR1cm4gbmV3IGpRdWVyeS5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApOworCX0sCisKKwkv
LyBBIHNpbXBsZSB3YXkgdG8gY2hlY2sgZm9yIEhUTUwgc3RyaW5ncyBvciBJRCBzdHJpbmdzCisJ
Ly8gKGJvdGggb2Ygd2hpY2ggd2Ugb3B0aW1pemUgZm9yKQorCXF1aWNrRXhwciA9IC9eW148XSoo
PCgufFxzKSs+KVtePl0qJHxeIyhbXHctXSspJC8sCisJLy8gSXMgaXQgYSBzaW1wbGUgc2VsZWN0
b3IKKwlpc1NpbXBsZSA9IC9eLlteOiNcW1wuLF0qJC87CisKK2pRdWVyeS5mbiA9IGpRdWVyeS5w
cm90b3R5cGUgPSB7CisJaW5pdDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkgeworCQkv
LyBNYWtlIHN1cmUgdGhhdCBhIHNlbGVjdGlvbiB3YXMgcHJvdmlkZWQKKwkJc2VsZWN0b3IgPSBz
ZWxlY3RvciB8fCBkb2N1bWVudDsKKworCQkvLyBIYW5kbGUgJChET01FbGVtZW50KQorCQlpZiAo
IHNlbGVjdG9yLm5vZGVUeXBlICkgeworCQkJdGhpc1swXSA9IHNlbGVjdG9yOworCQkJdGhpcy5s
ZW5ndGggPSAxOworCQkJdGhpcy5jb250ZXh0ID0gc2VsZWN0b3I7CisJCQlyZXR1cm4gdGhpczsK
KwkJfQorCQkvLyBIYW5kbGUgSFRNTCBzdHJpbmdzCisJCWlmICggdHlwZW9mIHNlbGVjdG9yID09
PSAic3RyaW5nIiApIHsKKwkJCS8vIEFyZSB3ZSBkZWFsaW5nIHdpdGggSFRNTCBzdHJpbmcgb3Ig
YW4gSUQ/CisJCQl2YXIgbWF0Y2ggPSBxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKTsKKworCQkJ
Ly8gVmVyaWZ5IGEgbWF0Y2gsIGFuZCB0aGF0IG5vIGNvbnRleHQgd2FzIHNwZWNpZmllZCBmb3Ig
I2lkCisJCQlpZiAoIG1hdGNoICYmIChtYXRjaFsxXSB8fCAhY29udGV4dCkgKSB7CisKKwkJCQkv
LyBIQU5ETEU6ICQoaHRtbCkgLT4gJChhcnJheSkKKwkJCQlpZiAoIG1hdGNoWzFdICkKKwkJCQkJ
c2VsZWN0b3IgPSBqUXVlcnkuY2xlYW4oIFsgbWF0Y2hbMV0gXSwgY29udGV4dCApOworCisJCQkJ
Ly8gSEFORExFOiAkKCIjaWQiKQorCQkJCWVsc2UgeworCQkJCQl2YXIgZWxlbSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCBtYXRjaFszXSApOworCisJCQkJCS8vIEhhbmRsZSB0aGUgY2FzZSB3
aGVyZSBJRSBhbmQgT3BlcmEgcmV0dXJuIGl0ZW1zCisJCQkJCS8vIGJ5IG5hbWUgaW5zdGVhZCBv
ZiBJRAorCQkJCQlpZiAoIGVsZW0gJiYgZWxlbS5pZCAhPSBtYXRjaFszXSApCisJCQkJCQlyZXR1
cm4galF1ZXJ5KCkuZmluZCggc2VsZWN0b3IgKTsKKworCQkJCQkvLyBPdGhlcndpc2UsIHdlIGlu
amVjdCB0aGUgZWxlbWVudCBkaXJlY3RseSBpbnRvIHRoZSBqUXVlcnkgb2JqZWN0CisJCQkJCXZh
ciByZXQgPSBqUXVlcnkoIGVsZW0gfHwgW10gKTsKKwkJCQkJcmV0LmNvbnRleHQgPSBkb2N1bWVu
dDsKKwkJCQkJcmV0LnNlbGVjdG9yID0gc2VsZWN0b3I7CisJCQkJCXJldHVybiByZXQ7CisJCQkJ
fQorCisJCQkvLyBIQU5ETEU6ICQoZXhwciwgW2NvbnRleHRdKQorCQkJLy8gKHdoaWNoIGlzIGp1
c3QgZXF1aXZhbGVudCB0bzogJChjb250ZW50KS5maW5kKGV4cHIpCisJCQl9IGVsc2UKKwkJCQly
ZXR1cm4galF1ZXJ5KCBjb250ZXh0ICkuZmluZCggc2VsZWN0b3IgKTsKKworCQkvLyBIQU5ETEU6
ICQoZnVuY3Rpb24pCisJCS8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeQorCQl9IGVsc2Ug
aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggc2VsZWN0b3IgKSApCisJCQlyZXR1cm4galF1ZXJ5KCBk
b2N1bWVudCApLnJlYWR5KCBzZWxlY3RvciApOworCisJCS8vIE1ha2Ugc3VyZSB0aGF0IG9sZCBz
ZWxlY3RvciBzdGF0ZSBpcyBwYXNzZWQgYWxvbmcKKwkJaWYgKCBzZWxlY3Rvci5zZWxlY3RvciAm
JiBzZWxlY3Rvci5jb250ZXh0ICkgeworCQkJdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yLnNlbGVj
dG9yOworCQkJdGhpcy5jb250ZXh0ID0gc2VsZWN0b3IuY29udGV4dDsKKwkJfQorCisJCXJldHVy
biB0aGlzLnNldEFycmF5KGpRdWVyeS5pc0FycmF5KCBzZWxlY3RvciApID8KKwkJCXNlbGVjdG9y
IDoKKwkJCWpRdWVyeS5tYWtlQXJyYXkoc2VsZWN0b3IpKTsKKwl9LAorCisJLy8gU3RhcnQgd2l0
aCBhbiBlbXB0eSBzZWxlY3RvcgorCXNlbGVjdG9yOiAiIiwKKworCS8vIFRoZSBjdXJyZW50IHZl
cnNpb24gb2YgalF1ZXJ5IGJlaW5nIHVzZWQKKwlqcXVlcnk6ICIxLjMuMiIsCisKKwkvLyBUaGUg
bnVtYmVyIG9mIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiB0aGUgbWF0Y2hlZCBlbGVtZW50IHNldAor
CXNpemU6IGZ1bmN0aW9uKCkgeworCQlyZXR1cm4gdGhpcy5sZW5ndGg7CisJfSwKKworCS8vIEdl
dCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1IKKwkvLyBHZXQg
dGhlIHdob2xlIG1hdGNoZWQgZWxlbWVudCBzZXQgYXMgYSBjbGVhbiBhcnJheQorCWdldDogZnVu
Y3Rpb24oIG51bSApIHsKKwkJcmV0dXJuIG51bSA9PT0gdW5kZWZpbmVkID8KKworCQkJLy8gUmV0
dXJuIGEgJ2NsZWFuJyBhcnJheQorCQkJQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoIHRoaXMg
KSA6CisKKwkJCS8vIFJldHVybiBqdXN0IHRoZSBvYmplY3QKKwkJCXRoaXNbIG51bSBdOworCX0s
CisKKwkvLyBUYWtlIGFuIGFycmF5IG9mIGVsZW1lbnRzIGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0
YWNrCisJLy8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpCisJcHVzaFN0
YWNrOiBmdW5jdGlvbiggZWxlbXMsIG5hbWUsIHNlbGVjdG9yICkgeworCQkvLyBCdWlsZCBhIG5l
dyBqUXVlcnkgbWF0Y2hlZCBlbGVtZW50IHNldAorCQl2YXIgcmV0ID0galF1ZXJ5KCBlbGVtcyAp
OworCisJCS8vIEFkZCB0aGUgb2xkIG9iamVjdCBvbnRvIHRoZSBzdGFjayAoYXMgYSByZWZlcmVu
Y2UpCisJCXJldC5wcmV2T2JqZWN0ID0gdGhpczsKKworCQlyZXQuY29udGV4dCA9IHRoaXMuY29u
dGV4dDsKKworCQlpZiAoIG5hbWUgPT09ICJmaW5kIiApCisJCQlyZXQuc2VsZWN0b3IgPSB0aGlz
LnNlbGVjdG9yICsgKHRoaXMuc2VsZWN0b3IgPyAiICIgOiAiIikgKyBzZWxlY3RvcjsKKwkJZWxz
ZSBpZiAoIG5hbWUgKQorCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICIuIiArIG5h
bWUgKyAiKCIgKyBzZWxlY3RvciArICIpIjsKKworCQkvLyBSZXR1cm4gdGhlIG5ld2x5LWZvcm1l
ZCBlbGVtZW50IHNldAorCQlyZXR1cm4gcmV0OworCX0sCisKKwkvLyBGb3JjZSB0aGUgY3VycmVu
dCBtYXRjaGVkIHNldCBvZiBlbGVtZW50cyB0byBiZWNvbWUKKwkvLyB0aGUgc3BlY2lmaWVkIGFy
cmF5IG9mIGVsZW1lbnRzIChkZXN0cm95aW5nIHRoZSBzdGFjayBpbiB0aGUgcHJvY2VzcykKKwkv
LyBZb3Ugc2hvdWxkIHVzZSBwdXNoU3RhY2soKSBpbiBvcmRlciB0byBkbyB0aGlzLCBidXQgbWFp
bnRhaW4gdGhlIHN0YWNrCisJc2V0QXJyYXk6IGZ1bmN0aW9uKCBlbGVtcyApIHsKKwkJLy8gUmVz
ZXR0aW5nIHRoZSBsZW5ndGggdG8gMCwgdGhlbiB1c2luZyB0aGUgbmF0aXZlIEFycmF5IHB1c2gK
KwkJLy8gaXMgYSBzdXBlci1mYXN0IHdheSB0byBwb3B1bGF0ZSBhbiBvYmplY3Qgd2l0aCBhcnJh
eS1saWtlIHByb3BlcnRpZXMKKwkJdGhpcy5sZW5ndGggPSAwOworCQlBcnJheS5wcm90b3R5cGUu
cHVzaC5hcHBseSggdGhpcywgZWxlbXMgKTsKKworCQlyZXR1cm4gdGhpczsKKwl9LAorCisJLy8g
RXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC4K
KwkvLyAoWW91IGNhbiBzZWVkIHRoZSBhcmd1bWVudHMgd2l0aCBhbiBhcnJheSBvZiBhcmdzLCBi
dXQgdGhpcyBpcworCS8vIG9ubHkgdXNlZCBpbnRlcm5hbGx5LikKKwllYWNoOiBmdW5jdGlvbigg
Y2FsbGJhY2ssIGFyZ3MgKSB7CisJCXJldHVybiBqUXVlcnkuZWFjaCggdGhpcywgY2FsbGJhY2ss
IGFyZ3MgKTsKKwl9LAorCisJLy8gRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50
IHdpdGhpbgorCS8vIHRoZSBtYXRjaGVkIHNldCBvZiBlbGVtZW50cworCWluZGV4OiBmdW5jdGlv
biggZWxlbSApIHsKKwkJLy8gTG9jYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBlbGVt
ZW50CisJCXJldHVybiBqUXVlcnkuaW5BcnJheSgKKwkJCS8vIElmIGl0IHJlY2VpdmVzIGEgalF1
ZXJ5IG9iamVjdCwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdXNlZAorCQkJZWxlbSAmJiBlbGVtLmpx
dWVyeSA/IGVsZW1bMF0gOiBlbGVtCisJCSwgdGhpcyApOworCX0sCisKKwlhdHRyOiBmdW5jdGlv
biggbmFtZSwgdmFsdWUsIHR5cGUgKSB7CisJCXZhciBvcHRpb25zID0gbmFtZTsKKworCQkvLyBM
b29rIGZvciB0aGUgY2FzZSB3aGVyZSB3ZSdyZSBhY2Nlc3NpbmcgYSBzdHlsZSB2YWx1ZQorCQlp
ZiAoIHR5cGVvZiBuYW1lID09PSAic3RyaW5nIiApCisJCQlpZiAoIHZhbHVlID09PSB1bmRlZmlu
ZWQgKQorCQkJCXJldHVybiB0aGlzWzBdICYmIGpRdWVyeVsgdHlwZSB8fCAiYXR0ciIgXSggdGhp
c1swXSwgbmFtZSApOworCisJCQllbHNlIHsKKwkJCQlvcHRpb25zID0ge307CisJCQkJb3B0aW9u
c1sgbmFtZSBdID0gdmFsdWU7CisJCQl9CisKKwkJLy8gQ2hlY2sgdG8gc2VlIGlmIHdlJ3JlIHNl
dHRpbmcgc3R5bGUgdmFsdWVzCisJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSl7CisJCQkv
LyBTZXQgYWxsIHRoZSBzdHlsZXMKKwkJCWZvciAoIG5hbWUgaW4gb3B0aW9ucyApCisJCQkJalF1
ZXJ5LmF0dHIoCisJCQkJCXR5cGUgPworCQkJCQkJdGhpcy5zdHlsZSA6CisJCQkJCQl0aGlzLAor
CQkJCQluYW1lLCBqUXVlcnkucHJvcCggdGhpcywgb3B0aW9uc1sgbmFtZSBdLCB0eXBlLCBpLCBu
YW1lICkKKwkJCQkpOworCQl9KTsKKwl9LAorCisJY3NzOiBmdW5jdGlvbigga2V5LCB2YWx1ZSAp
IHsKKwkJLy8gaWdub3JlIG5lZ2F0aXZlIHdpZHRoIGFuZCBoZWlnaHQgdmFsdWVzCisJCWlmICgg
KGtleSA9PSAnd2lkdGgnIHx8IGtleSA9PSAnaGVpZ2h0JykgJiYgcGFyc2VGbG9hdCh2YWx1ZSkg
PCAwICkKKwkJCXZhbHVlID0gdW5kZWZpbmVkOworCQlyZXR1cm4gdGhpcy5hdHRyKCBrZXksIHZh
bHVlLCAiY3VyQ1NTIiApOworCX0sCisKKwl0ZXh0OiBmdW5jdGlvbiggdGV4dCApIHsKKwkJaWYg
KCB0eXBlb2YgdGV4dCAhPT0gIm9iamVjdCIgJiYgdGV4dCAhPSBudWxsICkKKwkJCXJldHVybiB0
aGlzLmVtcHR5KCkuYXBwZW5kKCAodGhpc1swXSAmJiB0aGlzWzBdLm93bmVyRG9jdW1lbnQgfHwg
ZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKCB0ZXh0ICkgKTsKKworCQl2YXIgcmV0ID0gIiI7CisK
KwkJalF1ZXJ5LmVhY2goIHRleHQgfHwgdGhpcywgZnVuY3Rpb24oKXsKKwkJCWpRdWVyeS5lYWNo
KCB0aGlzLmNoaWxkTm9kZXMsIGZ1bmN0aW9uKCl7CisJCQkJaWYgKCB0aGlzLm5vZGVUeXBlICE9
IDggKQorCQkJCQlyZXQgKz0gdGhpcy5ub2RlVHlwZSAhPSAxID8KKwkJCQkJCXRoaXMubm9kZVZh
bHVlIDoKKwkJCQkJCWpRdWVyeS5mbi50ZXh0KCBbIHRoaXMgXSApOworCQkJfSk7CisJCX0pOwor
CisJCXJldHVybiByZXQ7CisJfSwKKworCXdyYXBBbGw6IGZ1bmN0aW9uKCBodG1sICkgeworCQlp
ZiAoIHRoaXNbMF0gKSB7CisJCQkvLyBUaGUgZWxlbWVudHMgdG8gd3JhcCB0aGUgdGFyZ2V0IGFy
b3VuZAorCQkJdmFyIHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbMF0ub3duZXJEb2N1bWVudCAp
LmNsb25lKCk7CisKKwkJCWlmICggdGhpc1swXS5wYXJlbnROb2RlICkKKwkJCQl3cmFwLmluc2Vy
dEJlZm9yZSggdGhpc1swXSApOworCisJCQl3cmFwLm1hcChmdW5jdGlvbigpeworCQkJCXZhciBl
bGVtID0gdGhpczsKKworCQkJCXdoaWxlICggZWxlbS5maXJzdENoaWxkICkKKwkJCQkJZWxlbSA9
IGVsZW0uZmlyc3RDaGlsZDsKKworCQkJCXJldHVybiBlbGVtOworCQkJfSkuYXBwZW5kKHRoaXMp
OworCQl9CisKKwkJcmV0dXJuIHRoaXM7CisJfSwKKworCXdyYXBJbm5lcjogZnVuY3Rpb24oIGh0
bWwgKSB7CisJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKKwkJCWpRdWVyeSggdGhpcyAp
LmNvbnRlbnRzKCkud3JhcEFsbCggaHRtbCApOworCQl9KTsKKwl9LAorCisJd3JhcDogZnVuY3Rp
b24oIGh0bWwgKSB7CisJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKKwkJCWpRdWVyeSgg
dGhpcyApLndyYXBBbGwoIGh0bWwgKTsKKwkJfSk7CisJfSwKKworCWFwcGVuZDogZnVuY3Rpb24o
KSB7CisJCXJldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywgdHJ1ZSwgZnVuY3Rpb24oZWxl
bSl7CisJCQlpZiAodGhpcy5ub2RlVHlwZSA9PSAxKQorCQkJCXRoaXMuYXBwZW5kQ2hpbGQoIGVs
ZW0gKTsKKwkJfSk7CisJfSwKKworCXByZXBlbmQ6IGZ1bmN0aW9uKCkgeworCQlyZXR1cm4gdGhp
cy5kb21NYW5pcChhcmd1bWVudHMsIHRydWUsIGZ1bmN0aW9uKGVsZW0peworCQkJaWYgKHRoaXMu
bm9kZVR5cGUgPT0gMSkKKwkJCQl0aGlzLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcy5maXJzdENo
aWxkICk7CisJCX0pOworCX0sCisKKwliZWZvcmU6IGZ1bmN0aW9uKCkgeworCQlyZXR1cm4gdGhp
cy5kb21NYW5pcChhcmd1bWVudHMsIGZhbHNlLCBmdW5jdGlvbihlbGVtKXsKKwkJCXRoaXMucGFy
ZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMgKTsKKwkJfSk7CisJfSwKKworCWFmdGVy
OiBmdW5jdGlvbigpIHsKKwkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCBmYWxzZSwg
ZnVuY3Rpb24oZWxlbSl7CisJCQl0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0
aGlzLm5leHRTaWJsaW5nICk7CisJCX0pOworCX0sCisKKwllbmQ6IGZ1bmN0aW9uKCkgeworCQly
ZXR1cm4gdGhpcy5wcmV2T2JqZWN0IHx8IGpRdWVyeSggW10gKTsKKwl9LAorCisJLy8gRm9yIGlu
dGVybmFsIHVzZSBvbmx5LgorCS8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90
IGxpa2UgYSBqUXVlcnkgbWV0aG9kLgorCXB1c2g6IFtdLnB1c2gsCisJc29ydDogW10uc29ydCwK
KwlzcGxpY2U6IFtdLnNwbGljZSwKKworCWZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKKwkJ
aWYgKCB0aGlzLmxlbmd0aCA9PT0gMSApIHsKKwkJCXZhciByZXQgPSB0aGlzLnB1c2hTdGFjaygg
W10sICJmaW5kIiwgc2VsZWN0b3IgKTsKKwkJCXJldC5sZW5ndGggPSAwOworCQkJalF1ZXJ5LmZp
bmQoIHNlbGVjdG9yLCB0aGlzWzBdLCByZXQgKTsKKwkJCXJldHVybiByZXQ7CisJCX0gZWxzZSB7
CisJCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS51bmlxdWUoalF1ZXJ5Lm1hcCh0aGlz
LCBmdW5jdGlvbihlbGVtKXsKKwkJCQlyZXR1cm4galF1ZXJ5LmZpbmQoIHNlbGVjdG9yLCBlbGVt
ICk7CisJCQl9KSksICJmaW5kIiwgc2VsZWN0b3IgKTsKKwkJfQorCX0sCisKKwljbG9uZTogZnVu
Y3Rpb24oIGV2ZW50cyApIHsKKwkJLy8gRG8gdGhlIGNsb25lCisJCXZhciByZXQgPSB0aGlzLm1h
cChmdW5jdGlvbigpeworCQkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQubm9DbG9uZUV2ZW50ICYmICFq
UXVlcnkuaXNYTUxEb2ModGhpcykgKSB7CisJCQkJLy8gSUUgY29waWVzIGV2ZW50cyBib3VuZCB2
aWEgYXR0YWNoRXZlbnQgd2hlbgorCQkJCS8vIHVzaW5nIGNsb25lTm9kZS4gQ2FsbGluZyBkZXRh
Y2hFdmVudCBvbiB0aGUKKwkJCQkvLyBjbG9uZSB3aWxsIGFsc28gcmVtb3ZlIHRoZSBldmVudHMg
ZnJvbSB0aGUgb3JpZ25hbAorCQkJCS8vIEluIG9yZGVyIHRvIGdldCBhcm91bmQgdGhpcywgd2Ug
dXNlIGlubmVySFRNTC4KKwkJCQkvLyBVbmZvcnR1bmF0ZWx5LCB0aGlzIG1lYW5zIHNvbWUgbW9k
aWZpY2F0aW9ucyB0bworCQkJCS8vIGF0dHJpYnV0ZXMgaW4gSUUgdGhhdCBhcmUgYWN0dWFsbHkg
b25seSBzdG9yZWQKKwkJCQkvLyBhcyBwcm9wZXJ0aWVzIHdpbGwgbm90IGJlIGNvcGllZCAoc3Vj
aCBhcyB0aGUKKwkJCQkvLyB0aGUgbmFtZSBhdHRyaWJ1dGUgb24gYW4gaW5wdXQpLgorCQkJCXZh
ciBodG1sID0gdGhpcy5vdXRlckhUTUw7CisJCQkJaWYgKCAhaHRtbCApIHsKKwkJCQkJdmFyIGRp
diA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKwkJCQkJZGl2LmFw
cGVuZENoaWxkKCB0aGlzLmNsb25lTm9kZSh0cnVlKSApOworCQkJCQlodG1sID0gZGl2LmlubmVy
SFRNTDsKKwkJCQl9CisKKwkJCQlyZXR1cm4galF1ZXJ5LmNsZWFuKFtodG1sLnJlcGxhY2UoLyBq
UXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZywgIiIpLnJlcGxhY2UoL15ccyovLCAiIildKVswXTsK
KwkJCX0gZWxzZQorCQkJCXJldHVybiB0aGlzLmNsb25lTm9kZSh0cnVlKTsKKwkJfSk7CisKKwkJ
Ly8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZQorCQlpZiAo
IGV2ZW50cyA9PT0gdHJ1ZSApIHsKKwkJCXZhciBvcmlnID0gdGhpcy5maW5kKCIqIikuYW5kU2Vs
ZigpLCBpID0gMDsKKworCQkJcmV0LmZpbmQoIioiKS5hbmRTZWxmKCkuZWFjaChmdW5jdGlvbigp
eworCQkJCWlmICggdGhpcy5ub2RlTmFtZSAhPT0gb3JpZ1tpXS5ub2RlTmFtZSApCisJCQkJCXJl
dHVybjsKKworCQkJCXZhciBldmVudHMgPSBqUXVlcnkuZGF0YSggb3JpZ1tpXSwgImV2ZW50cyIg
KTsKKworCQkJCWZvciAoIHZhciB0eXBlIGluIGV2ZW50cyApIHsKKwkJCQkJZm9yICggdmFyIGhh
bmRsZXIgaW4gZXZlbnRzWyB0eXBlIF0gKSB7CisJCQkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlz
LCB0eXBlLCBldmVudHNbIHR5cGUgXVsgaGFuZGxlciBdLCBldmVudHNbIHR5cGUgXVsgaGFuZGxl
ciBdLmRhdGEgKTsKKwkJCQkJfQorCQkJCX0KKworCQkJCWkrKzsKKwkJCX0pOworCQl9CisKKwkJ
Ly8gUmV0dXJuIHRoZSBjbG9uZWQgc2V0CisJCXJldHVybiByZXQ7CisJfSwKKworCWZpbHRlcjog
ZnVuY3Rpb24oIHNlbGVjdG9yICkgeworCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soCisJCQlqUXVl
cnkuaXNGdW5jdGlvbiggc2VsZWN0b3IgKSAmJgorCQkJalF1ZXJ5LmdyZXAodGhpcywgZnVuY3Rp
b24oZWxlbSwgaSl7CisJCQkJcmV0dXJuIHNlbGVjdG9yLmNhbGwoIGVsZW0sIGkgKTsKKwkJCX0p
IHx8CisKKwkJCWpRdWVyeS5tdWx0aUZpbHRlciggc2VsZWN0b3IsIGpRdWVyeS5ncmVwKHRoaXMs
IGZ1bmN0aW9uKGVsZW0peworCQkJCXJldHVybiBlbGVtLm5vZGVUeXBlID09PSAxOworCQkJfSkg
KSwgImZpbHRlciIsIHNlbGVjdG9yICk7CisJfSwKKworCWNsb3Nlc3Q6IGZ1bmN0aW9uKCBzZWxl
Y3RvciApIHsKKwkJdmFyIHBvcyA9IGpRdWVyeS5leHByLm1hdGNoLlBPUy50ZXN0KCBzZWxlY3Rv
ciApID8galF1ZXJ5KHNlbGVjdG9yKSA6IG51bGwsCisJCQljbG9zZXIgPSAwOworCisJCXJldHVy
biB0aGlzLm1hcChmdW5jdGlvbigpeworCQkJdmFyIGN1ciA9IHRoaXM7CisJCQl3aGlsZSAoIGN1
ciAmJiBjdXIub3duZXJEb2N1bWVudCApIHsKKwkJCQlpZiAoIHBvcyA/IHBvcy5pbmRleChjdXIp
ID4gLTEgOiBqUXVlcnkoY3VyKS5pcyhzZWxlY3RvcikgKSB7CisJCQkJCWpRdWVyeS5kYXRhKGN1
ciwgImNsb3Nlc3QiLCBjbG9zZXIpOworCQkJCQlyZXR1cm4gY3VyOworCQkJCX0KKwkJCQljdXIg
PSBjdXIucGFyZW50Tm9kZTsKKwkJCQljbG9zZXIrKzsKKwkJCX0KKwkJfSk7CisJfSwKKworCW5v
dDogZnVuY3Rpb24oIHNlbGVjdG9yICkgeworCQlpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gInN0
cmluZyIgKQorCQkJLy8gdGVzdCBzcGVjaWFsIGNhc2Ugd2hlcmUganVzdCBvbmUgc2VsZWN0b3Ig
aXMgcGFzc2VkIGluCisJCQlpZiAoIGlzU2ltcGxlLnRlc3QoIHNlbGVjdG9yICkgKQorCQkJCXJl
dHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5Lm11bHRpRmlsdGVyKCBzZWxlY3RvciwgdGhpcywg
dHJ1ZSApLCAibm90Iiwgc2VsZWN0b3IgKTsKKwkJCWVsc2UKKwkJCQlzZWxlY3RvciA9IGpRdWVy
eS5tdWx0aUZpbHRlciggc2VsZWN0b3IsIHRoaXMgKTsKKworCQl2YXIgaXNBcnJheUxpa2UgPSBz
ZWxlY3Rvci5sZW5ndGggJiYgc2VsZWN0b3Jbc2VsZWN0b3IubGVuZ3RoIC0gMV0gIT09IHVuZGVm
aW5lZCAmJiAhc2VsZWN0b3Iubm9kZVR5cGU7CisJCXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlv
bigpIHsKKwkJCXJldHVybiBpc0FycmF5TGlrZSA/IGpRdWVyeS5pbkFycmF5KCB0aGlzLCBzZWxl
Y3RvciApIDwgMCA6IHRoaXMgIT0gc2VsZWN0b3I7CisJCX0pOworCX0sCisKKwlhZGQ6IGZ1bmN0
aW9uKCBzZWxlY3RvciApIHsKKwkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkudW5pcXVl
KCBqUXVlcnkubWVyZ2UoCisJCQl0aGlzLmdldCgpLAorCQkJdHlwZW9mIHNlbGVjdG9yID09PSAi
c3RyaW5nIiA/CisJCQkJalF1ZXJ5KCBzZWxlY3RvciApIDoKKwkJCQlqUXVlcnkubWFrZUFycmF5
KCBzZWxlY3RvciApCisJCSkpKTsKKwl9LAorCisJaXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsK
KwkJcmV0dXJuICEhc2VsZWN0b3IgJiYgalF1ZXJ5Lm11bHRpRmlsdGVyKCBzZWxlY3RvciwgdGhp
cyApLmxlbmd0aCA+IDA7CisJfSwKKworCWhhc0NsYXNzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7
CisJCXJldHVybiAhIXNlbGVjdG9yICYmIHRoaXMuaXMoICIuIiArIHNlbGVjdG9yICk7CisJfSwK
KworCXZhbDogZnVuY3Rpb24oIHZhbHVlICkgeworCQlpZiAoIHZhbHVlID09PSB1bmRlZmluZWQg
KSB7CQkJCisJCQl2YXIgZWxlbSA9IHRoaXNbMF07CisKKwkJCWlmICggZWxlbSApIHsKKwkJCQlp
ZiggalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAnb3B0aW9uJyApICkKKwkJCQkJcmV0dXJuIChlbGVt
LmF0dHJpYnV0ZXMudmFsdWUgfHwge30pLnNwZWNpZmllZCA/IGVsZW0udmFsdWUgOiBlbGVtLnRl
eHQ7CisJCQkJCisJCQkJLy8gV2UgbmVlZCB0byBoYW5kbGUgc2VsZWN0IGJveGVzIHNwZWNpYWwK
KwkJCQlpZiAoIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgInNlbGVjdCIgKSApIHsKKwkJCQkJdmFy
IGluZGV4ID0gZWxlbS5zZWxlY3RlZEluZGV4LAorCQkJCQkJdmFsdWVzID0gW10sCisJCQkJCQlv
cHRpb25zID0gZWxlbS5vcHRpb25zLAorCQkJCQkJb25lID0gZWxlbS50eXBlID09ICJzZWxlY3Qt
b25lIjsKKworCQkJCQkvLyBOb3RoaW5nIHdhcyBzZWxlY3RlZAorCQkJCQlpZiAoIGluZGV4IDwg
MCApCisJCQkJCQlyZXR1cm4gbnVsbDsKKworCQkJCQkvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBz
ZWxlY3RlZCBvcHRpb25zCisJCQkJCWZvciAoIHZhciBpID0gb25lID8gaW5kZXggOiAwLCBtYXgg
PSBvbmUgPyBpbmRleCArIDEgOiBvcHRpb25zLmxlbmd0aDsgaSA8IG1heDsgaSsrICkgeworCQkJ
CQkJdmFyIG9wdGlvbiA9IG9wdGlvbnNbIGkgXTsKKworCQkJCQkJaWYgKCBvcHRpb24uc2VsZWN0
ZWQgKSB7CisJCQkJCQkJLy8gR2V0IHRoZSBzcGVjaWZjIHZhbHVlIGZvciB0aGUgb3B0aW9uCisJ
CQkJCQkJdmFsdWUgPSBqUXVlcnkob3B0aW9uKS52YWwoKTsKKworCQkJCQkJCS8vIFdlIGRvbid0
IG5lZWQgYW4gYXJyYXkgZm9yIG9uZSBzZWxlY3RzCisJCQkJCQkJaWYgKCBvbmUgKQorCQkJCQkJ
CQlyZXR1cm4gdmFsdWU7CisKKwkJCQkJCQkvLyBNdWx0aS1TZWxlY3RzIHJldHVybiBhbiBhcnJh
eQorCQkJCQkJCXZhbHVlcy5wdXNoKCB2YWx1ZSApOworCQkJCQkJfQorCQkJCQl9CisKKwkJCQkJ
cmV0dXJuIHZhbHVlczsJCQkJCisJCQkJfQorCisJCQkJLy8gRXZlcnl0aGluZyBlbHNlLCB3ZSBq
dXN0IGdyYWIgdGhlIHZhbHVlCisJCQkJcmV0dXJuIChlbGVtLnZhbHVlIHx8ICIiKS5yZXBsYWNl
KC9cci9nLCAiIik7CisKKwkJCX0KKworCQkJcmV0dXJuIHVuZGVmaW5lZDsKKwkJfQorCisJCWlm
ICggdHlwZW9mIHZhbHVlID09PSAibnVtYmVyIiApCisJCQl2YWx1ZSArPSAnJzsKKworCQlyZXR1
cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CisJCQlpZiAoIHRoaXMubm9kZVR5cGUgIT0gMSApCisJ
CQkJcmV0dXJuOworCisJCQlpZiAoIGpRdWVyeS5pc0FycmF5KHZhbHVlKSAmJiAvcmFkaW98Y2hl
Y2tib3gvLnRlc3QoIHRoaXMudHlwZSApICkKKwkJCQl0aGlzLmNoZWNrZWQgPSAoalF1ZXJ5Lmlu
QXJyYXkodGhpcy52YWx1ZSwgdmFsdWUpID49IDAgfHwKKwkJCQkJalF1ZXJ5LmluQXJyYXkodGhp
cy5uYW1lLCB2YWx1ZSkgPj0gMCk7CisKKwkJCWVsc2UgaWYgKCBqUXVlcnkubm9kZU5hbWUoIHRo
aXMsICJzZWxlY3QiICkgKSB7CisJCQkJdmFyIHZhbHVlcyA9IGpRdWVyeS5tYWtlQXJyYXkodmFs
dWUpOworCisJCQkJalF1ZXJ5KCAib3B0aW9uIiwgdGhpcyApLmVhY2goZnVuY3Rpb24oKXsKKwkJ
CQkJdGhpcy5zZWxlY3RlZCA9IChqUXVlcnkuaW5BcnJheSggdGhpcy52YWx1ZSwgdmFsdWVzICkg
Pj0gMCB8fAorCQkJCQkJalF1ZXJ5LmluQXJyYXkoIHRoaXMudGV4dCwgdmFsdWVzICkgPj0gMCk7
CisJCQkJfSk7CisKKwkJCQlpZiAoICF2YWx1ZXMubGVuZ3RoICkKKwkJCQkJdGhpcy5zZWxlY3Rl
ZEluZGV4ID0gLTE7CisKKwkJCX0gZWxzZQorCQkJCXRoaXMudmFsdWUgPSB2YWx1ZTsKKwkJfSk7
CisJfSwKKworCWh0bWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKKwkJcmV0dXJuIHZhbHVlID09PSB1
bmRlZmluZWQgPworCQkJKHRoaXNbMF0gPworCQkJCXRoaXNbMF0uaW5uZXJIVE1MLnJlcGxhY2Uo
LyBqUXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZywgIiIpIDoKKwkJCQludWxsKSA6CisJCQl0aGlz
LmVtcHR5KCkuYXBwZW5kKCB2YWx1ZSApOworCX0sCisKKwlyZXBsYWNlV2l0aDogZnVuY3Rpb24o
IHZhbHVlICkgeworCQlyZXR1cm4gdGhpcy5hZnRlciggdmFsdWUgKS5yZW1vdmUoKTsKKwl9LAor
CisJZXE6IGZ1bmN0aW9uKCBpICkgeworCQlyZXR1cm4gdGhpcy5zbGljZSggaSwgK2kgKyAxICk7
CisJfSwKKworCXNsaWNlOiBmdW5jdGlvbigpIHsKKwkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBB
cnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLAorCQkJInNsaWNl
IiwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikgKTsKKwl9
LAorCisJbWFwOiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7CisJCXJldHVybiB0aGlzLnB1c2hTdGFj
ayggalF1ZXJ5Lm1hcCh0aGlzLCBmdW5jdGlvbihlbGVtLCBpKXsKKwkJCXJldHVybiBjYWxsYmFj
ay5jYWxsKCBlbGVtLCBpLCBlbGVtICk7CisJCX0pKTsKKwl9LAorCisJYW5kU2VsZjogZnVuY3Rp
b24oKSB7CisJCXJldHVybiB0aGlzLmFkZCggdGhpcy5wcmV2T2JqZWN0ICk7CisJfSwKKworCWRv
bU1hbmlwOiBmdW5jdGlvbiggYXJncywgdGFibGUsIGNhbGxiYWNrICkgeworCQlpZiAoIHRoaXNb
MF0gKSB7CisJCQl2YXIgZnJhZ21lbnQgPSAodGhpc1swXS5vd25lckRvY3VtZW50IHx8IHRoaXNb
MF0pLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSwKKwkJCQlzY3JpcHRzID0galF1ZXJ5LmNsZWFu
KCBhcmdzLCAodGhpc1swXS5vd25lckRvY3VtZW50IHx8IHRoaXNbMF0pLCBmcmFnbWVudCApLAor
CQkJCWZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKKworCQkJaWYgKCBmaXJzdCApCisJCQkJ
Zm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKQorCQkJCQljYWxs
YmFjay5jYWxsKCByb290KHRoaXNbaV0sIGZpcnN0KSwgdGhpcy5sZW5ndGggPiAxIHx8IGkgPiAw
ID8KKwkJCQkJCQlmcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSkgOiBmcmFnbWVudCApOworCQkKKwkJ
CWlmICggc2NyaXB0cyApCisJCQkJalF1ZXJ5LmVhY2goIHNjcmlwdHMsIGV2YWxTY3JpcHQgKTsK
KwkJfQorCisJCXJldHVybiB0aGlzOworCQkKKwkJZnVuY3Rpb24gcm9vdCggZWxlbSwgY3VyICkg
eworCQkJcmV0dXJuIHRhYmxlICYmIGpRdWVyeS5ub2RlTmFtZShlbGVtLCAidGFibGUiKSAmJiBq
UXVlcnkubm9kZU5hbWUoY3VyLCAidHIiKSA/CisJCQkJKGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05h
bWUoInRib2R5IilbMF0gfHwKKwkJCQllbGVtLmFwcGVuZENoaWxkKGVsZW0ub3duZXJEb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSkgOgorCQkJCWVsZW07CisJCX0KKwl9Cit9OworCisv
LyBHaXZlIHRoZSBpbml0IGZ1bmN0aW9uIHRoZSBqUXVlcnkgcHJvdG90eXBlIGZvciBsYXRlciBp
bnN0YW50aWF0aW9uCitqUXVlcnkuZm4uaW5pdC5wcm90b3R5cGUgPSBqUXVlcnkuZm47CisKK2Z1
bmN0aW9uIGV2YWxTY3JpcHQoIGksIGVsZW0gKSB7CisJaWYgKCBlbGVtLnNyYyApCisJCWpRdWVy
eS5hamF4KHsKKwkJCXVybDogZWxlbS5zcmMsCisJCQlhc3luYzogZmFsc2UsCisJCQlkYXRhVHlw
ZTogInNjcmlwdCIKKwkJfSk7CisKKwllbHNlCisJCWpRdWVyeS5nbG9iYWxFdmFsKCBlbGVtLnRl
eHQgfHwgZWxlbS50ZXh0Q29udGVudCB8fCBlbGVtLmlubmVySFRNTCB8fCAiIiApOworCisJaWYg
KCBlbGVtLnBhcmVudE5vZGUgKQorCQllbGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGVsZW0g
KTsKK30KKworZnVuY3Rpb24gbm93KCl7CisJcmV0dXJuICtuZXcgRGF0ZTsKK30KKworalF1ZXJ5
LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHsKKwkvLyBjb3B5IHJlZmVy
ZW5jZSB0byB0YXJnZXQgb2JqZWN0CisJdmFyIHRhcmdldCA9IGFyZ3VtZW50c1swXSB8fCB7fSwg
aSA9IDEsIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsIGRlZXAgPSBmYWxzZSwgb3B0aW9uczsK
KworCS8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb24KKwlpZiAoIHR5cGVvZiB0YXJnZXQg
PT09ICJib29sZWFuIiApIHsKKwkJZGVlcCA9IHRhcmdldDsKKwkJdGFyZ2V0ID0gYXJndW1lbnRz
WzFdIHx8IHt9OworCQkvLyBza2lwIHRoZSBib29sZWFuIGFuZCB0aGUgdGFyZ2V0CisJCWkgPSAy
OworCX0KKworCS8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0
aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KQorCWlmICggdHlwZW9mIHRhcmdldCAhPT0gIm9i
amVjdCIgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKHRhcmdldCkgKQorCQl0YXJnZXQgPSB7fTsKKwor
CS8vIGV4dGVuZCBqUXVlcnkgaXRzZWxmIGlmIG9ubHkgb25lIGFyZ3VtZW50IGlzIHBhc3NlZAor
CWlmICggbGVuZ3RoID09IGkgKSB7CisJCXRhcmdldCA9IHRoaXM7CisJCS0taTsKKwl9CisKKwlm
b3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApCisJCS8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3Vu
ZGVmaW5lZCB2YWx1ZXMKKwkJaWYgKCAob3B0aW9ucyA9IGFyZ3VtZW50c1sgaSBdKSAhPSBudWxs
ICkKKwkJCS8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3QKKwkJCWZvciAoIHZhciBuYW1lIGluIG9w
dGlvbnMgKSB7CisJCQkJdmFyIHNyYyA9IHRhcmdldFsgbmFtZSBdLCBjb3B5ID0gb3B0aW9uc1sg
bmFtZSBdOworCisJCQkJLy8gUHJldmVudCBuZXZlci1lbmRpbmcgbG9vcAorCQkJCWlmICggdGFy
Z2V0ID09PSBjb3B5ICkKKwkJCQkJY29udGludWU7CisKKwkJCQkvLyBSZWN1cnNlIGlmIHdlJ3Jl
IG1lcmdpbmcgb2JqZWN0IHZhbHVlcworCQkJCWlmICggZGVlcCAmJiBjb3B5ICYmIHR5cGVvZiBj
b3B5ID09PSAib2JqZWN0IiAmJiAhY29weS5ub2RlVHlwZSApCisJCQkJCXRhcmdldFsgbmFtZSBd
ID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgCisJCQkJCQkvLyBOZXZlciBtb3ZlIG9yaWdpbmFsIG9i
amVjdHMsIGNsb25lIHRoZW0KKwkJCQkJCXNyYyB8fCAoIGNvcHkubGVuZ3RoICE9IG51bGwgPyBb
IF0gOiB7IH0gKQorCQkJCQksIGNvcHkgKTsKKworCQkJCS8vIERvbid0IGJyaW5nIGluIHVuZGVm
aW5lZCB2YWx1ZXMKKwkJCQllbHNlIGlmICggY29weSAhPT0gdW5kZWZpbmVkICkKKwkJCQkJdGFy
Z2V0WyBuYW1lIF0gPSBjb3B5OworCisJCQl9CisKKwkvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIG9i
amVjdAorCXJldHVybiB0YXJnZXQ7Cit9OworCisvLyBleGNsdWRlIHRoZSBmb2xsb3dpbmcgY3Nz
IHByb3BlcnRpZXMgdG8gYWRkIHB4Cit2YXIJZXhjbHVkZSA9IC96LT9pbmRleHxmb250LT93ZWln
aHR8b3BhY2l0eXx6b29tfGxpbmUtP2hlaWdodC9pLAorCS8vIGNhY2hlIGRlZmF1bHRWaWV3CisJ
ZGVmYXVsdFZpZXcgPSBkb2N1bWVudC5kZWZhdWx0VmlldyB8fCB7fSwKKwl0b1N0cmluZyA9IE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmc7CisKK2pRdWVyeS5leHRlbmQoeworCW5vQ29uZmxpY3Q6
IGZ1bmN0aW9uKCBkZWVwICkgeworCQl3aW5kb3cuJCA9IF8kOworCisJCWlmICggZGVlcCApCisJ
CQl3aW5kb3cualF1ZXJ5ID0gX2pRdWVyeTsKKworCQlyZXR1cm4galF1ZXJ5OworCX0sCisKKwkv
LyBTZWUgdGVzdC91bml0L2NvcmUuanMgZm9yIGRldGFpbHMgY29uY2VybmluZyBpc0Z1bmN0aW9u
LgorCS8vIFNpbmNlIHZlcnNpb24gMS4zLCBET00gbWV0aG9kcyBhbmQgZnVuY3Rpb25zIGxpa2Ug
YWxlcnQKKwkvLyBhcmVuJ3Qgc3VwcG9ydGVkLiBUaGV5IHJldHVybiBmYWxzZSBvbiBJRSAoIzI5
NjgpLgorCWlzRnVuY3Rpb246IGZ1bmN0aW9uKCBvYmogKSB7CisJCXJldHVybiB0b1N0cmluZy5j
YWxsKG9iaikgPT09ICJbb2JqZWN0IEZ1bmN0aW9uXSI7CisJfSwKKworCWlzQXJyYXk6IGZ1bmN0
aW9uKCBvYmogKSB7CisJCXJldHVybiB0b1N0cmluZy5jYWxsKG9iaikgPT09ICJbb2JqZWN0IEFy
cmF5XSI7CisJfSwKKworCS8vIGNoZWNrIGlmIGFuIGVsZW1lbnQgaXMgaW4gYSAob3IgaXMgYW4p
IFhNTCBkb2N1bWVudAorCWlzWE1MRG9jOiBmdW5jdGlvbiggZWxlbSApIHsKKwkJcmV0dXJuIGVs
ZW0ubm9kZVR5cGUgPT09IDkgJiYgZWxlbS5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWUgIT09ICJI
VE1MIiB8fAorCQkJISFlbGVtLm93bmVyRG9jdW1lbnQgJiYgalF1ZXJ5LmlzWE1MRG9jKCBlbGVt
Lm93bmVyRG9jdW1lbnQgKTsKKwl9LAorCisJLy8gRXZhbHVsYXRlcyBhIHNjcmlwdCBpbiBhIGds
b2JhbCBjb250ZXh0CisJZ2xvYmFsRXZhbDogZnVuY3Rpb24oIGRhdGEgKSB7CisJCWlmICggZGF0
YSAmJiAvXFMvLnRlc3QoZGF0YSkgKSB7CisJCQkvLyBJbnNwaXJlZCBieSBjb2RlIGJ5IEFuZHJl
YSBHaWFtbWFyY2hpCisJCQkvLyBodHRwOi8vd2VicmVmbGVjdGlvbi5ibG9nc3BvdC5jb20vMjAw
Ny8wOC9nbG9iYWwtc2NvcGUtZXZhbHVhdGlvbi1hbmQtZG9tLmh0bWwKKwkJCXZhciBoZWFkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXSB8fCBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQsCisJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0
Iik7CisKKwkJCXNjcmlwdC50eXBlID0gInRleHQvamF2YXNjcmlwdCI7CisJCQlpZiAoIGpRdWVy
eS5zdXBwb3J0LnNjcmlwdEV2YWwgKQorCQkJCXNjcmlwdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIGRhdGEgKSApOworCQkJZWxzZQorCQkJCXNjcmlwdC50ZXh0ID0gZGF0
YTsKKworCQkJLy8gVXNlIGluc2VydEJlZm9yZSBpbnN0ZWFkIG9mIGFwcGVuZENoaWxkICB0byBj
aXJjdW12ZW50IGFuIElFNiBidWcuCisJCQkvLyBUaGlzIGFyaXNlcyB3aGVuIGEgYmFzZSBub2Rl
IGlzIHVzZWQgKCMyNzA5KS4KKwkJCWhlYWQuaW5zZXJ0QmVmb3JlKCBzY3JpcHQsIGhlYWQuZmly
c3RDaGlsZCApOworCQkJaGVhZC5yZW1vdmVDaGlsZCggc2NyaXB0ICk7CisJCX0KKwl9LAorCisJ
bm9kZU5hbWU6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkgeworCQlyZXR1cm4gZWxlbS5ub2RlTmFt
ZSAmJiBlbGVtLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT0gbmFtZS50b1VwcGVyQ2FzZSgpOwor
CX0sCisKKwkvLyBhcmdzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5CisJZWFjaDogZnVuY3Rp
b24oIG9iamVjdCwgY2FsbGJhY2ssIGFyZ3MgKSB7CisJCXZhciBuYW1lLCBpID0gMCwgbGVuZ3Ro
ID0gb2JqZWN0Lmxlbmd0aDsKKworCQlpZiAoIGFyZ3MgKSB7CisJCQlpZiAoIGxlbmd0aCA9PT0g
dW5kZWZpbmVkICkgeworCQkJCWZvciAoIG5hbWUgaW4gb2JqZWN0ICkKKwkJCQkJaWYgKCBjYWxs
YmFjay5hcHBseSggb2JqZWN0WyBuYW1lIF0sIGFyZ3MgKSA9PT0gZmFsc2UgKQorCQkJCQkJYnJl
YWs7CisJCQl9IGVsc2UKKwkJCQlmb3IgKCA7IGkgPCBsZW5ndGg7ICkKKwkJCQkJaWYgKCBjYWxs
YmFjay5hcHBseSggb2JqZWN0WyBpKysgXSwgYXJncyApID09PSBmYWxzZSApCisJCQkJCQlicmVh
azsKKworCQkvLyBBIHNwZWNpYWwsIGZhc3QsIGNhc2UgZm9yIHRoZSBtb3N0IGNvbW1vbiB1c2Ug
b2YgZWFjaAorCQl9IGVsc2UgeworCQkJaWYgKCBsZW5ndGggPT09IHVuZGVmaW5lZCApIHsKKwkJ
CQlmb3IgKCBuYW1lIGluIG9iamVjdCApCisJCQkJCWlmICggY2FsbGJhY2suY2FsbCggb2JqZWN0
WyBuYW1lIF0sIG5hbWUsIG9iamVjdFsgbmFtZSBdICkgPT09IGZhbHNlICkKKwkJCQkJCWJyZWFr
OworCQkJfSBlbHNlCisJCQkJZm9yICggdmFyIHZhbHVlID0gb2JqZWN0WzBdOworCQkJCQlpIDwg
bGVuZ3RoICYmIGNhbGxiYWNrLmNhbGwoIHZhbHVlLCBpLCB2YWx1ZSApICE9PSBmYWxzZTsgdmFs
dWUgPSBvYmplY3RbKytpXSApe30KKwkJfQorCisJCXJldHVybiBvYmplY3Q7CisJfSwKKworCXBy
b3A6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgdHlwZSwgaSwgbmFtZSApIHsKKwkJLy8gSGFuZGxl
IGV4ZWN1dGFibGUgZnVuY3Rpb25zCisJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkg
KQorCQkJdmFsdWUgPSB2YWx1ZS5jYWxsKCBlbGVtLCBpICk7CisKKwkJLy8gSGFuZGxlIHBhc3Np
bmcgaW4gYSBudW1iZXIgdG8gYSBDU1MgcHJvcGVydHkKKwkJcmV0dXJuIHR5cGVvZiB2YWx1ZSA9
PT0gIm51bWJlciIgJiYgdHlwZSA9PSAiY3VyQ1NTIiAmJiAhZXhjbHVkZS50ZXN0KCBuYW1lICkg
PworCQkJdmFsdWUgKyAicHgiIDoKKwkJCXZhbHVlOworCX0sCisKKwljbGFzc05hbWU6IHsKKwkJ
Ly8gaW50ZXJuYWwgb25seSwgdXNlIGFkZENsYXNzKCJjbGFzcyIpCisJCWFkZDogZnVuY3Rpb24o
IGVsZW0sIGNsYXNzTmFtZXMgKSB7CisJCQlqUXVlcnkuZWFjaCgoY2xhc3NOYW1lcyB8fCAiIiku
c3BsaXQoL1xzKy8pLCBmdW5jdGlvbihpLCBjbGFzc05hbWUpeworCQkJCWlmICggZWxlbS5ub2Rl
VHlwZSA9PSAxICYmICFqUXVlcnkuY2xhc3NOYW1lLmhhcyggZWxlbS5jbGFzc05hbWUsIGNsYXNz
TmFtZSApICkKKwkJCQkJZWxlbS5jbGFzc05hbWUgKz0gKGVsZW0uY2xhc3NOYW1lID8gIiAiIDog
IiIpICsgY2xhc3NOYW1lOworCQkJfSk7CisJCX0sCisKKwkJLy8gaW50ZXJuYWwgb25seSwgdXNl
IHJlbW92ZUNsYXNzKCJjbGFzcyIpCisJCXJlbW92ZTogZnVuY3Rpb24oIGVsZW0sIGNsYXNzTmFt
ZXMgKSB7CisJCQlpZiAoZWxlbS5ub2RlVHlwZSA9PSAxKQorCQkJCWVsZW0uY2xhc3NOYW1lID0g
Y2xhc3NOYW1lcyAhPT0gdW5kZWZpbmVkID8KKwkJCQkJalF1ZXJ5LmdyZXAoZWxlbS5jbGFzc05h
bWUuc3BsaXQoL1xzKy8pLCBmdW5jdGlvbihjbGFzc05hbWUpeworCQkJCQkJcmV0dXJuICFqUXVl
cnkuY2xhc3NOYW1lLmhhcyggY2xhc3NOYW1lcywgY2xhc3NOYW1lICk7CisJCQkJCX0pLmpvaW4o
IiAiKSA6CisJCQkJCSIiOworCQl9LAorCisJCS8vIGludGVybmFsIG9ubHksIHVzZSBoYXNDbGFz
cygiY2xhc3MiKQorCQloYXM6IGZ1bmN0aW9uKCBlbGVtLCBjbGFzc05hbWUgKSB7CisJCQlyZXR1
cm4gZWxlbSAmJiBqUXVlcnkuaW5BcnJheSggY2xhc3NOYW1lLCAoZWxlbS5jbGFzc05hbWUgfHwg
ZWxlbSkudG9TdHJpbmcoKS5zcGxpdCgvXHMrLykgKSA+IC0xOworCQl9CisJfSwKKworCS8vIEEg
bWV0aG9kIGZvciBxdWlja2x5IHN3YXBwaW5nIGluL291dCBDU1MgcHJvcGVydGllcyB0byBnZXQg
Y29ycmVjdCBjYWxjdWxhdGlvbnMKKwlzd2FwOiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgY2Fs
bGJhY2sgKSB7CisJCXZhciBvbGQgPSB7fTsKKwkJLy8gUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZXMs
IGFuZCBpbnNlcnQgdGhlIG5ldyBvbmVzCisJCWZvciAoIHZhciBuYW1lIGluIG9wdGlvbnMgKSB7
CisJCQlvbGRbIG5hbWUgXSA9IGVsZW0uc3R5bGVbIG5hbWUgXTsKKwkJCWVsZW0uc3R5bGVbIG5h
bWUgXSA9IG9wdGlvbnNbIG5hbWUgXTsKKwkJfQorCisJCWNhbGxiYWNrLmNhbGwoIGVsZW0gKTsK
KworCQkvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXMKKwkJZm9yICggdmFyIG5hbWUgaW4gb3B0aW9u
cyApCisJCQllbGVtLnN0eWxlWyBuYW1lIF0gPSBvbGRbIG5hbWUgXTsKKwl9LAorCisJY3NzOiBm
dW5jdGlvbiggZWxlbSwgbmFtZSwgZm9yY2UsIGV4dHJhICkgeworCQlpZiAoIG5hbWUgPT0gIndp
ZHRoIiB8fCBuYW1lID09ICJoZWlnaHQiICkgeworCQkJdmFyIHZhbCwgcHJvcHMgPSB7IHBvc2l0
aW9uOiAiYWJzb2x1dGUiLCB2aXNpYmlsaXR5OiAiaGlkZGVuIiwgZGlzcGxheToiYmxvY2siIH0s
IHdoaWNoID0gbmFtZSA9PSAid2lkdGgiID8gWyAiTGVmdCIsICJSaWdodCIgXSA6IFsgIlRvcCIs
ICJCb3R0b20iIF07CisKKwkJCWZ1bmN0aW9uIGdldFdIKCkgeworCQkJCXZhbCA9IG5hbWUgPT0g
IndpZHRoIiA/IGVsZW0ub2Zmc2V0V2lkdGggOiBlbGVtLm9mZnNldEhlaWdodDsKKworCQkJCWlm
ICggZXh0cmEgPT09ICJib3JkZXIiICkKKwkJCQkJcmV0dXJuOworCisJCQkJalF1ZXJ5LmVhY2go
IHdoaWNoLCBmdW5jdGlvbigpIHsKKwkJCQkJaWYgKCAhZXh0cmEgKQorCQkJCQkJdmFsIC09IHBh
cnNlRmxvYXQoalF1ZXJ5LmN1ckNTUyggZWxlbSwgInBhZGRpbmciICsgdGhpcywgdHJ1ZSkpIHx8
IDA7CisJCQkJCWlmICggZXh0cmEgPT09ICJtYXJnaW4iICkKKwkJCQkJCXZhbCArPSBwYXJzZUZs
b2F0KGpRdWVyeS5jdXJDU1MoIGVsZW0sICJtYXJnaW4iICsgdGhpcywgdHJ1ZSkpIHx8IDA7CisJ
CQkJCWVsc2UKKwkJCQkJCXZhbCAtPSBwYXJzZUZsb2F0KGpRdWVyeS5jdXJDU1MoIGVsZW0sICJi
b3JkZXIiICsgdGhpcyArICJXaWR0aCIsIHRydWUpKSB8fCAwOworCQkJCX0pOworCQkJfQorCisJ
CQlpZiAoIGVsZW0ub2Zmc2V0V2lkdGggIT09IDAgKQorCQkJCWdldFdIKCk7CisJCQllbHNlCisJ
CQkJalF1ZXJ5LnN3YXAoIGVsZW0sIHByb3BzLCBnZXRXSCApOworCisJCQlyZXR1cm4gTWF0aC5t
YXgoMCwgTWF0aC5yb3VuZCh2YWwpKTsKKwkJfQorCisJCXJldHVybiBqUXVlcnkuY3VyQ1NTKCBl
bGVtLCBuYW1lLCBmb3JjZSApOworCX0sCisKKwljdXJDU1M6IGZ1bmN0aW9uKCBlbGVtLCBuYW1l
LCBmb3JjZSApIHsKKwkJdmFyIHJldCwgc3R5bGUgPSBlbGVtLnN0eWxlOworCisJCS8vIFdlIG5l
ZWQgdG8gaGFuZGxlIG9wYWNpdHkgc3BlY2lhbCBpbiBJRQorCQlpZiAoIG5hbWUgPT0gIm9wYWNp
dHkiICYmICFqUXVlcnkuc3VwcG9ydC5vcGFjaXR5ICkgeworCQkJcmV0ID0galF1ZXJ5LmF0dHIo
IHN0eWxlLCAib3BhY2l0eSIgKTsKKworCQkJcmV0dXJuIHJldCA9PSAiIiA/CisJCQkJIjEiIDoK
KwkJCQlyZXQ7CisJCX0KKworCQkvLyBNYWtlIHN1cmUgd2UncmUgdXNpbmcgdGhlIHJpZ2h0IG5h
bWUgZm9yIGdldHRpbmcgdGhlIGZsb2F0IHZhbHVlCisJCWlmICggbmFtZS5tYXRjaCggL2Zsb2F0
L2kgKSApCisJCQluYW1lID0gc3R5bGVGbG9hdDsKKworCQlpZiAoICFmb3JjZSAmJiBzdHlsZSAm
JiBzdHlsZVsgbmFtZSBdICkKKwkJCXJldCA9IHN0eWxlWyBuYW1lIF07CisKKwkJZWxzZSBpZiAo
IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUgKSB7CisKKwkJCS8vIE9ubHkgImZsb2F0IiBp
cyBuZWVkZWQgaGVyZQorCQkJaWYgKCBuYW1lLm1hdGNoKCAvZmxvYXQvaSApICkKKwkJCQluYW1l
ID0gImZsb2F0IjsKKworCQkJbmFtZSA9IG5hbWUucmVwbGFjZSggLyhbQS1aXSkvZywgIi0kMSIg
KS50b0xvd2VyQ2FzZSgpOworCisJCQl2YXIgY29tcHV0ZWRTdHlsZSA9IGRlZmF1bHRWaWV3Lmdl
dENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKTsKKworCQkJaWYgKCBjb21wdXRlZFN0eWxlICkK
KwkJCQlyZXQgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoIG5hbWUgKTsKKworCQkJ
Ly8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHkKKwkJCWlm
ICggbmFtZSA9PSAib3BhY2l0eSIgJiYgcmV0ID09ICIiICkKKwkJCQlyZXQgPSAiMSI7CisKKwkJ
fSBlbHNlIGlmICggZWxlbS5jdXJyZW50U3R5bGUgKSB7CisJCQl2YXIgY2FtZWxDYXNlID0gbmFt
ZS5yZXBsYWNlKC9cLShcdykvZywgZnVuY3Rpb24oYWxsLCBsZXR0ZXIpeworCQkJCXJldHVybiBs
ZXR0ZXIudG9VcHBlckNhc2UoKTsKKwkJCX0pOworCisJCQlyZXQgPSBlbGVtLmN1cnJlbnRTdHls
ZVsgbmFtZSBdIHx8IGVsZW0uY3VycmVudFN0eWxlWyBjYW1lbENhc2UgXTsKKworCQkJLy8gRnJv
bSB0aGUgYXdlc29tZSBoYWNrIGJ5IERlYW4gRWR3YXJkcworCQkJLy8gaHR0cDovL2VyaWsuZWFl
Lm5ldC9hcmNoaXZlcy8yMDA3LzA3LzI3LzE4LjU0LjE1LyNjb21tZW50LTEwMjI5MQorCisJCQkv
LyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXIKKwkJCS8v
IGJ1dCBhIG51bWJlciB0aGF0IGhhcyBhIHdlaXJkIGVuZGluZywgd2UgbmVlZCB0byBjb252ZXJ0
IGl0IHRvIHBpeGVscworCQkJaWYgKCAhL15cZCsocHgpPyQvaS50ZXN0KCByZXQgKSAmJiAvXlxk
Ly50ZXN0KCByZXQgKSApIHsKKwkJCQkvLyBSZW1lbWJlciB0aGUgb3JpZ2luYWwgdmFsdWVzCisJ
CQkJdmFyIGxlZnQgPSBzdHlsZS5sZWZ0LCByc0xlZnQgPSBlbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0
OworCisJCQkJLy8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVl
IG91dAorCQkJCWVsZW0ucnVudGltZVN0eWxlLmxlZnQgPSBlbGVtLmN1cnJlbnRTdHlsZS5sZWZ0
OworCQkJCXN0eWxlLmxlZnQgPSByZXQgfHwgMDsKKwkJCQlyZXQgPSBzdHlsZS5waXhlbExlZnQg
KyAicHgiOworCisJCQkJLy8gUmV2ZXJ0IHRoZSBjaGFuZ2VkIHZhbHVlcworCQkJCXN0eWxlLmxl
ZnQgPSBsZWZ0OworCQkJCWVsZW0ucnVudGltZVN0eWxlLmxlZnQgPSByc0xlZnQ7CisJCQl9CisJ
CX0KKworCQlyZXR1cm4gcmV0OworCX0sCisKKwljbGVhbjogZnVuY3Rpb24oIGVsZW1zLCBjb250
ZXh0LCBmcmFnbWVudCApIHsKKwkJY29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7CisKKwkJ
Ly8gIWNvbnRleHQuY3JlYXRlRWxlbWVudCBmYWlscyBpbiBJRSB3aXRoIGFuIGVycm9yIGJ1dCBy
ZXR1cm5zIHR5cGVvZiAnb2JqZWN0JworCQlpZiAoIHR5cGVvZiBjb250ZXh0LmNyZWF0ZUVsZW1l
bnQgPT09ICJ1bmRlZmluZWQiICkKKwkJCWNvbnRleHQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQg
fHwgY29udGV4dFswXSAmJiBjb250ZXh0WzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7CisK
KwkJLy8gSWYgYSBzaW5nbGUgc3RyaW5nIGlzIHBhc3NlZCBpbiBhbmQgaXQncyBhIHNpbmdsZSB0
YWcKKwkJLy8ganVzdCBkbyBhIGNyZWF0ZUVsZW1lbnQgYW5kIHNraXAgdGhlIHJlc3QKKwkJaWYg
KCAhZnJhZ21lbnQgJiYgZWxlbXMubGVuZ3RoID09PSAxICYmIHR5cGVvZiBlbGVtc1swXSA9PT0g
InN0cmluZyIgKSB7CisJCQl2YXIgbWF0Y2ggPSAvXjwoXHcrKVxzKlwvPz4kLy5leGVjKGVsZW1z
WzBdKTsKKwkJCWlmICggbWF0Y2ggKQorCQkJCXJldHVybiBbIGNvbnRleHQuY3JlYXRlRWxlbWVu
dCggbWF0Y2hbMV0gKSBdOworCQl9CisKKwkJdmFyIHJldCA9IFtdLCBzY3JpcHRzID0gW10sIGRp
diA9IGNvbnRleHQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKwkJalF1ZXJ5LmVhY2goZWxlbXMs
IGZ1bmN0aW9uKGksIGVsZW0peworCQkJaWYgKCB0eXBlb2YgZWxlbSA9PT0gIm51bWJlciIgKQor
CQkJCWVsZW0gKz0gJyc7CisKKwkJCWlmICggIWVsZW0gKQorCQkJCXJldHVybjsKKworCQkJLy8g
Q29udmVydCBodG1sIHN0cmluZyBpbnRvIERPTSBub2RlcworCQkJaWYgKCB0eXBlb2YgZWxlbSA9
PT0gInN0cmluZyIgKSB7CisJCQkJLy8gRml4ICJYSFRNTCItc3R5bGUgdGFncyBpbiBhbGwgYnJv
d3NlcnMKKwkJCQllbGVtID0gZWxlbS5yZXBsYWNlKC8oPChcdyspW14+XSo/KVwvPi9nLCBmdW5j
dGlvbihhbGwsIGZyb250LCB0YWcpeworCQkJCQlyZXR1cm4gdGFnLm1hdGNoKC9eKGFiYnJ8YnJ8
Y29sfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpID8KKwkJCQkJ
CWFsbCA6CisJCQkJCQlmcm9udCArICI+PC8iICsgdGFnICsgIj4iOworCQkJCX0pOworCisJCQkJ
Ly8gVHJpbSB3aGl0ZXNwYWNlLCBvdGhlcndpc2UgaW5kZXhPZiB3b24ndCB3b3JrIGFzIGV4cGVj
dGVkCisJCQkJdmFyIHRhZ3MgPSBlbGVtLnJlcGxhY2UoL15ccysvLCAiIikuc3Vic3RyaW5nKDAs
IDEwKS50b0xvd2VyQ2FzZSgpOworCisJCQkJdmFyIHdyYXAgPQorCQkJCQkvLyBvcHRpb24gb3Ig
b3B0Z3JvdXAKKwkJCQkJIXRhZ3MuaW5kZXhPZigiPG9wdCIpICYmCisJCQkJCVsgMSwgIjxzZWxl
Y3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCAiPC9zZWxlY3Q+IiBdIHx8CisKKwkJCQkJIXRhZ3Mu
aW5kZXhPZigiPGxlZyIpICYmCisJCQkJCVsgMSwgIjxmaWVsZHNldD4iLCAiPC9maWVsZHNldD4i
IF0gfHwKKworCQkJCQl0YWdzLm1hdGNoKC9ePCh0aGVhZHx0Ym9keXx0Zm9vdHxjb2xnfGNhcCkv
KSAmJgorCQkJCQlbIDEsICI8dGFibGU+IiwgIjwvdGFibGU+IiBdIHx8CisKKwkJCQkJIXRhZ3Mu
aW5kZXhPZigiPHRyIikgJiYKKwkJCQkJWyAyLCAiPHRhYmxlPjx0Ym9keT4iLCAiPC90Ym9keT48
L3RhYmxlPiIgXSB8fAorCisJCQkJIAkvLyA8dGhlYWQ+IG1hdGNoZWQgYWJvdmUKKwkJCQkJKCF0
YWdzLmluZGV4T2YoIjx0ZCIpIHx8ICF0YWdzLmluZGV4T2YoIjx0aCIpKSAmJgorCQkJCQlbIDMs
ICI8dGFibGU+PHRib2R5Pjx0cj4iLCAiPC90cj48L3Rib2R5PjwvdGFibGU+IiBdIHx8CisKKwkJ
CQkJIXRhZ3MuaW5kZXhPZigiPGNvbCIpICYmCisJCQkJCVsgMiwgIjx0YWJsZT48dGJvZHk+PC90
Ym9keT48Y29sZ3JvdXA+IiwgIjwvY29sZ3JvdXA+PC90YWJsZT4iIF0gfHwKKworCQkJCQkvLyBJ
RSBjYW4ndCBzZXJpYWxpemUgPGxpbms+IGFuZCA8c2NyaXB0PiB0YWdzIG5vcm1hbGx5CisJCQkJ
CSFqUXVlcnkuc3VwcG9ydC5odG1sU2VyaWFsaXplICYmCisJCQkJCVsgMSwgImRpdjxkaXY+Iiwg
IjwvZGl2PiIgXSB8fAorCisJCQkJCVsgMCwgIiIsICIiIF07CisKKwkJCQkvLyBHbyB0byBodG1s
IGFuZCBiYWNrLCB0aGVuIHBlZWwgb2ZmIGV4dHJhIHdyYXBwZXJzCisJCQkJZGl2LmlubmVySFRN
TCA9IHdyYXBbMV0gKyBlbGVtICsgd3JhcFsyXTsKKworCQkJCS8vIE1vdmUgdG8gdGhlIHJpZ2h0
IGRlcHRoCisJCQkJd2hpbGUgKCB3cmFwWzBdLS0gKQorCQkJCQlkaXYgPSBkaXYubGFzdENoaWxk
OworCisJCQkJLy8gUmVtb3ZlIElFJ3MgYXV0b2luc2VydGVkIDx0Ym9keT4gZnJvbSB0YWJsZSBm
cmFnbWVudHMKKwkJCQlpZiAoICFqUXVlcnkuc3VwcG9ydC50Ym9keSApIHsKKworCQkJCQkvLyBT
dHJpbmcgd2FzIGEgPHRhYmxlPiwgKm1heSogaGF2ZSBzcHVyaW91cyA8dGJvZHk+CisJCQkJCXZh
ciBoYXNCb2R5ID0gLzx0Ym9keS9pLnRlc3QoZWxlbSksCisJCQkJCQl0Ym9keSA9ICF0YWdzLmlu
ZGV4T2YoIjx0YWJsZSIpICYmICFoYXNCb2R5ID8KKwkJCQkJCQlkaXYuZmlyc3RDaGlsZCAmJiBk
aXYuZmlyc3RDaGlsZC5jaGlsZE5vZGVzIDoKKworCQkJCQkJLy8gU3RyaW5nIHdhcyBhIGJhcmUg
PHRoZWFkPiBvciA8dGZvb3Q+CisJCQkJCQl3cmFwWzFdID09ICI8dGFibGU+IiAmJiAhaGFzQm9k
eSA/CisJCQkJCQkJZGl2LmNoaWxkTm9kZXMgOgorCQkJCQkJCVtdOworCisJCQkJCWZvciAoIHZh
ciBqID0gdGJvZHkubGVuZ3RoIC0gMTsgaiA+PSAwIDsgLS1qICkKKwkJCQkJCWlmICggalF1ZXJ5
Lm5vZGVOYW1lKCB0Ym9keVsgaiBdLCAidGJvZHkiICkgJiYgIXRib2R5WyBqIF0uY2hpbGROb2Rl
cy5sZW5ndGggKQorCQkJCQkJCXRib2R5WyBqIF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggdGJv
ZHlbIGogXSApOworCisJCQkJCX0KKworCQkJCS8vIElFIGNvbXBsZXRlbHkga2lsbHMgbGVhZGlu
ZyB3aGl0ZXNwYWNlIHdoZW4gaW5uZXJIVE1MIGlzIHVzZWQKKwkJCQlpZiAoICFqUXVlcnkuc3Vw
cG9ydC5sZWFkaW5nV2hpdGVzcGFjZSAmJiAvXlxzLy50ZXN0KCBlbGVtICkgKQorCQkJCQlkaXYu
aW5zZXJ0QmVmb3JlKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBlbGVtLm1hdGNoKC9eXHMqLylb
MF0gKSwgZGl2LmZpcnN0Q2hpbGQgKTsKKwkJCQkKKwkJCQllbGVtID0galF1ZXJ5Lm1ha2VBcnJh
eSggZGl2LmNoaWxkTm9kZXMgKTsKKwkJCX0KKworCQkJaWYgKCBlbGVtLm5vZGVUeXBlICkKKwkJ
CQlyZXQucHVzaCggZWxlbSApOworCQkJZWxzZQorCQkJCXJldCA9IGpRdWVyeS5tZXJnZSggcmV0
LCBlbGVtICk7CisKKwkJfSk7CisKKwkJaWYgKCBmcmFnbWVudCApIHsKKwkJCWZvciAoIHZhciBp
ID0gMDsgcmV0W2ldOyBpKysgKSB7CisJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIHJldFtpXSwg
InNjcmlwdCIgKSAmJiAoIXJldFtpXS50eXBlIHx8IHJldFtpXS50eXBlLnRvTG93ZXJDYXNlKCkg
PT09ICJ0ZXh0L2phdmFzY3JpcHQiKSApIHsKKwkJCQkJc2NyaXB0cy5wdXNoKCByZXRbaV0ucGFy
ZW50Tm9kZSA/IHJldFtpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCByZXRbaV0gKSA6IHJldFtp
XSApOworCQkJCX0gZWxzZSB7CisJCQkJCWlmICggcmV0W2ldLm5vZGVUeXBlID09PSAxICkKKwkJ
CQkJCXJldC5zcGxpY2UuYXBwbHkoIHJldCwgW2kgKyAxLCAwXS5jb25jYXQoalF1ZXJ5Lm1ha2VB
cnJheShyZXRbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKSkgKTsKKwkJCQkJZnJh
Z21lbnQuYXBwZW5kQ2hpbGQoIHJldFtpXSApOworCQkJCX0KKwkJCX0KKwkJCQorCQkJcmV0dXJu
IHNjcmlwdHM7CisJCX0KKworCQlyZXR1cm4gcmV0OworCX0sCisKKwlhdHRyOiBmdW5jdGlvbigg
ZWxlbSwgbmFtZSwgdmFsdWUgKSB7CisJCS8vIGRvbid0IHNldCBhdHRyaWJ1dGVzIG9uIHRleHQg
YW5kIGNvbW1lbnQgbm9kZXMKKwkJaWYgKCFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT0gMyB8fCBl
bGVtLm5vZGVUeXBlID09IDgpCisJCQlyZXR1cm4gdW5kZWZpbmVkOworCisJCXZhciBub3R4bWwg
PSAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICksCisJCQkvLyBXaGV0aGVyIHdlIGFyZSBzZXR0aW5n
IChvciBnZXR0aW5nKQorCQkJc2V0ID0gdmFsdWUgIT09IHVuZGVmaW5lZDsKKworCQkvLyBUcnkg
dG8gbm9ybWFsaXplL2ZpeCB0aGUgbmFtZQorCQluYW1lID0gbm90eG1sICYmIGpRdWVyeS5wcm9w
c1sgbmFtZSBdIHx8IG5hbWU7CisKKwkJLy8gT25seSBkbyBhbGwgdGhlIGZvbGxvd2luZyBpZiB0
aGlzIGlzIGEgbm9kZSAoZmFzdGVyIGZvciBzdHlsZSkKKwkJLy8gSUUgZWxlbS5nZXRBdHRyaWJ1
dGUgcGFzc2VzIGV2ZW4gZm9yIHN0eWxlCisJCWlmICggZWxlbS50YWdOYW1lICkgeworCisJCQkv
LyBUaGVzZSBhdHRyaWJ1dGVzIHJlcXVpcmUgc3BlY2lhbCB0cmVhdG1lbnQKKwkJCXZhciBzcGVj
aWFsID0gL2hyZWZ8c3JjfHN0eWxlLy50ZXN0KCBuYW1lICk7CisKKwkJCS8vIFNhZmFyaSBtaXMt
cmVwb3J0cyB0aGUgZGVmYXVsdCBzZWxlY3RlZCBwcm9wZXJ0eSBvZiBhIGhpZGRlbiBvcHRpb24K
KwkJCS8vIEFjY2Vzc2luZyB0aGUgcGFyZW50J3Mgc2VsZWN0ZWRJbmRleCBwcm9wZXJ0eSBmaXhl
cyBpdAorCQkJaWYgKCBuYW1lID09ICJzZWxlY3RlZCIgJiYgZWxlbS5wYXJlbnROb2RlICkKKwkJ
CQllbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKKworCQkJLy8gSWYgYXBwbGljYWJsZSwg
YWNjZXNzIHRoZSBhdHRyaWJ1dGUgdmlhIHRoZSBET00gMCB3YXkKKwkJCWlmICggbmFtZSBpbiBl
bGVtICYmIG5vdHhtbCAmJiAhc3BlY2lhbCApIHsKKwkJCQlpZiAoIHNldCApeworCQkJCQkvLyBX
ZSBjYW4ndCBhbGxvdyB0aGUgdHlwZSBwcm9wZXJ0eSB0byBiZSBjaGFuZ2VkIChzaW5jZSBpdCBj
YXVzZXMgcHJvYmxlbXMgaW4gSUUpCisJCQkJCWlmICggbmFtZSA9PSAidHlwZSIgJiYgalF1ZXJ5
Lm5vZGVOYW1lKCBlbGVtLCAiaW5wdXQiICkgJiYgZWxlbS5wYXJlbnROb2RlICkKKwkJCQkJCXRo
cm93ICJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQiOworCisJCQkJCWVsZW1bIG5hbWUg
XSA9IHZhbHVlOworCQkJCX0KKworCQkJCS8vIGJyb3dzZXJzIGluZGV4IGVsZW1lbnRzIGJ5IGlk
L25hbWUgb24gZm9ybXMsIGdpdmUgcHJpb3JpdHkgdG8gYXR0cmlidXRlcy4KKwkJCQlpZiggalF1
ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAiZm9ybSIgKSAmJiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUobmFt
ZSkgKQorCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkubm9kZVZhbHVl
OworCisJCQkJLy8gZWxlbS50YWJJbmRleCBkb2Vzbid0IGFsd2F5cyByZXR1cm4gdGhlIGNvcnJl
Y3QgdmFsdWUgd2hlbiBpdCBoYXNuJ3QgYmVlbiBleHBsaWNpdGx5IHNldAorCQkJCS8vIGh0dHA6
Ly9mbHVpZHByb2plY3Qub3JnL2Jsb2cvMjAwOC8wMS8wOS9nZXR0aW5nLXNldHRpbmctYW5kLXJl
bW92aW5nLXRhYmluZGV4LXZhbHVlcy13aXRoLWphdmFzY3JpcHQvCisJCQkJaWYgKCBuYW1lID09
ICJ0YWJJbmRleCIgKSB7CisJCQkJCXZhciBhdHRyaWJ1dGVOb2RlID0gZWxlbS5nZXRBdHRyaWJ1
dGVOb2RlKCAidGFiSW5kZXgiICk7CisJCQkJCXJldHVybiBhdHRyaWJ1dGVOb2RlICYmIGF0dHJp
YnV0ZU5vZGUuc3BlY2lmaWVkCisJCQkJCQk/IGF0dHJpYnV0ZU5vZGUudmFsdWUKKwkJCQkJCTog
ZWxlbS5ub2RlTmFtZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVh
KS9pKQorCQkJCQkJCT8gMAorCQkJCQkJCTogZWxlbS5ub2RlTmFtZS5tYXRjaCgvXihhfGFyZWEp
JC9pKSAmJiBlbGVtLmhyZWYKKwkJCQkJCQkJPyAwCisJCQkJCQkJCTogdW5kZWZpbmVkOworCQkJ
CX0KKworCQkJCXJldHVybiBlbGVtWyBuYW1lIF07CisJCQl9CisKKwkJCWlmICggIWpRdWVyeS5z
dXBwb3J0LnN0eWxlICYmIG5vdHhtbCAmJiAgbmFtZSA9PSAic3R5bGUiICkKKwkJCQlyZXR1cm4g
alF1ZXJ5LmF0dHIoIGVsZW0uc3R5bGUsICJjc3NUZXh0IiwgdmFsdWUgKTsKKworCQkJaWYgKCBz
ZXQgKQorCQkJCS8vIGNvbnZlcnQgdGhlIHZhbHVlIHRvIGEgc3RyaW5nIChhbGwgYnJvd3NlcnMg
ZG8gdGhpcyBidXQgSUUpIHNlZSAjMTA3MAorCQkJCWVsZW0uc2V0QXR0cmlidXRlKCBuYW1lLCAi
IiArIHZhbHVlICk7CisKKwkJCXZhciBhdHRyID0gIWpRdWVyeS5zdXBwb3J0LmhyZWZOb3JtYWxp
emVkICYmIG5vdHhtbCAmJiBzcGVjaWFsCisJCQkJCS8vIFNvbWUgYXR0cmlidXRlcyByZXF1aXJl
IGEgc3BlY2lhbCBjYWxsIG9uIElFCisJCQkJCT8gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIDIg
KQorCQkJCQk6IGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICk7CisKKwkJCS8vIE5vbi1leGlzdGVu
dCBhdHRyaWJ1dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkCisJCQly
ZXR1cm4gYXR0ciA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IGF0dHI7CisJCX0KKworCQkvLyBlbGVt
IGlzIGFjdHVhbGx5IGVsZW0uc3R5bGUgLi4uIHNldCB0aGUgc3R5bGUKKworCQkvLyBJRSB1c2Vz
IGZpbHRlcnMgZm9yIG9wYWNpdHkKKwkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQub3BhY2l0eSAmJiBu
YW1lID09ICJvcGFjaXR5IiApIHsKKwkJCWlmICggc2V0ICkgeworCQkJCS8vIElFIGhhcyB0cm91
YmxlIHdpdGggb3BhY2l0eSBpZiBpdCBkb2VzIG5vdCBoYXZlIGxheW91dAorCQkJCS8vIEZvcmNl
IGl0IGJ5IHNldHRpbmcgdGhlIHpvb20gbGV2ZWwKKwkJCQllbGVtLnpvb20gPSAxOworCisJCQkJ
Ly8gU2V0IHRoZSBhbHBoYSBmaWx0ZXIgdG8gc2V0IHRoZSBvcGFjaXR5CisJCQkJZWxlbS5maWx0
ZXIgPSAoZWxlbS5maWx0ZXIgfHwgIiIpLnJlcGxhY2UoIC9hbHBoYVwoW14pXSpcKS8sICIiICkg
KworCQkJCQkocGFyc2VJbnQoIHZhbHVlICkgKyAnJyA9PSAiTmFOIiA/ICIiIDogImFscGhhKG9w
YWNpdHk9IiArIHZhbHVlICogMTAwICsgIikiKTsKKwkJCX0KKworCQkJcmV0dXJuIGVsZW0uZmls
dGVyICYmIGVsZW0uZmlsdGVyLmluZGV4T2YoIm9wYWNpdHk9IikgPj0gMCA/CisJCQkJKHBhcnNl
RmxvYXQoIGVsZW0uZmlsdGVyLm1hdGNoKC9vcGFjaXR5PShbXildKikvKVsxXSApIC8gMTAwKSAr
ICcnOgorCQkJCSIiOworCQl9CisKKwkJbmFtZSA9IG5hbWUucmVwbGFjZSgvLShbYS16XSkvaWcs
IGZ1bmN0aW9uKGFsbCwgbGV0dGVyKXsKKwkJCXJldHVybiBsZXR0ZXIudG9VcHBlckNhc2UoKTsK
KwkJfSk7CisKKwkJaWYgKCBzZXQgKQorCQkJZWxlbVsgbmFtZSBdID0gdmFsdWU7CisKKwkJcmV0
dXJuIGVsZW1bIG5hbWUgXTsKKwl9LAorCisJdHJpbTogZnVuY3Rpb24oIHRleHQgKSB7CisJCXJl
dHVybiAodGV4dCB8fCAiIikucmVwbGFjZSggL15ccyt8XHMrJC9nLCAiIiApOworCX0sCisKKwlt
YWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnJheSApIHsKKwkJdmFyIHJldCA9IFtdOworCisJCWlmKCBh
cnJheSAhPSBudWxsICl7CisJCQl2YXIgaSA9IGFycmF5Lmxlbmd0aDsKKwkJCS8vIFRoZSB3aW5k
b3csIHN0cmluZ3MgKGFuZCBmdW5jdGlvbnMpIGFsc28gaGF2ZSAnbGVuZ3RoJworCQkJaWYoIGkg
PT0gbnVsbCB8fCB0eXBlb2YgYXJyYXkgPT09ICJzdHJpbmciIHx8IGpRdWVyeS5pc0Z1bmN0aW9u
KGFycmF5KSB8fCBhcnJheS5zZXRJbnRlcnZhbCApCisJCQkJcmV0WzBdID0gYXJyYXk7CisJCQll
bHNlCisJCQkJd2hpbGUoIGkgKQorCQkJCQlyZXRbLS1pXSA9IGFycmF5W2ldOworCQl9CisKKwkJ
cmV0dXJuIHJldDsKKwl9LAorCisJaW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewor
CQlmb3IgKCB2YXIgaSA9IDAsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsr
ICkKKwkJLy8gVXNlID09PSBiZWNhdXNlIG9uIElFLCB3aW5kb3cgPT0gZG9jdW1lbnQKKwkJCWlm
ICggYXJyYXlbIGkgXSA9PT0gZWxlbSApCisJCQkJcmV0dXJuIGk7CisKKwkJcmV0dXJuIC0xOwor
CX0sCisKKwltZXJnZTogZnVuY3Rpb24oIGZpcnN0LCBzZWNvbmQgKSB7CisJCS8vIFdlIGhhdmUg
dG8gbG9vcCB0aGlzIHdheSBiZWNhdXNlIElFICYgT3BlcmEgb3ZlcndyaXRlIHRoZSBsZW5ndGgK
KwkJLy8gZXhwYW5kbyBvZiBnZXRFbGVtZW50c0J5VGFnTmFtZQorCQl2YXIgaSA9IDAsIGVsZW0s
IHBvcyA9IGZpcnN0Lmxlbmd0aDsKKwkJLy8gQWxzbywgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhh
dCB0aGUgY29ycmVjdCBlbGVtZW50cyBhcmUgYmVpbmcgcmV0dXJuZWQKKwkJLy8gKElFIHJldHVy
bnMgY29tbWVudCBub2RlcyBpbiBhICcqJyBxdWVyeSkKKwkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQu
Z2V0QWxsICkgeworCQkJd2hpbGUgKCAoZWxlbSA9IHNlY29uZFsgaSsrIF0pICE9IG51bGwgKQor
CQkJCWlmICggZWxlbS5ub2RlVHlwZSAhPSA4ICkKKwkJCQkJZmlyc3RbIHBvcysrIF0gPSBlbGVt
OworCisJCX0gZWxzZQorCQkJd2hpbGUgKCAoZWxlbSA9IHNlY29uZFsgaSsrIF0pICE9IG51bGwg
KQorCQkJCWZpcnN0WyBwb3MrKyBdID0gZWxlbTsKKworCQlyZXR1cm4gZmlyc3Q7CisJfSwKKwor
CXVuaXF1ZTogZnVuY3Rpb24oIGFycmF5ICkgeworCQl2YXIgcmV0ID0gW10sIGRvbmUgPSB7fTsK
KworCQl0cnkgeworCisJCQlmb3IgKCB2YXIgaSA9IDAsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDsg
aSA8IGxlbmd0aDsgaSsrICkgeworCQkJCXZhciBpZCA9IGpRdWVyeS5kYXRhKCBhcnJheVsgaSBd
ICk7CisKKwkJCQlpZiAoICFkb25lWyBpZCBdICkgeworCQkJCQlkb25lWyBpZCBdID0gdHJ1ZTsK
KwkJCQkJcmV0LnB1c2goIGFycmF5WyBpIF0gKTsKKwkJCQl9CisJCQl9CisKKwkJfSBjYXRjaCgg
ZSApIHsKKwkJCXJldCA9IGFycmF5OworCQl9CisKKwkJcmV0dXJuIHJldDsKKwl9LAorCisJZ3Jl
cDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgaW52ICkgeworCQl2YXIgcmV0ID0gW107CisK
KwkJLy8gR28gdGhyb3VnaCB0aGUgYXJyYXksIG9ubHkgc2F2aW5nIHRoZSBpdGVtcworCQkvLyB0
aGF0IHBhc3MgdGhlIHZhbGlkYXRvciBmdW5jdGlvbgorCQlmb3IgKCB2YXIgaSA9IDAsIGxlbmd0
aCA9IGVsZW1zLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrICkKKwkJCWlmICggIWludiAhPSAhY2Fs
bGJhY2soIGVsZW1zWyBpIF0sIGkgKSApCisJCQkJcmV0LnB1c2goIGVsZW1zWyBpIF0gKTsKKwor
CQlyZXR1cm4gcmV0OworCX0sCisKKwltYXA6IGZ1bmN0aW9uKCBlbGVtcywgY2FsbGJhY2sgKSB7
CisJCXZhciByZXQgPSBbXTsKKworCQkvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgdHJhbnNsYXRp
bmcgZWFjaCBvZiB0aGUgaXRlbXMgdG8gdGhlaXIKKwkJLy8gbmV3IHZhbHVlIChvciB2YWx1ZXMp
LgorCQlmb3IgKCB2YXIgaSA9IDAsIGxlbmd0aCA9IGVsZW1zLmxlbmd0aDsgaSA8IGxlbmd0aDsg
aSsrICkgeworCQkJdmFyIHZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTsKKworCQkJ
aWYgKCB2YWx1ZSAhPSBudWxsICkKKwkJCQlyZXRbIHJldC5sZW5ndGggXSA9IHZhbHVlOworCQl9
CisKKwkJcmV0dXJuIHJldC5jb25jYXQuYXBwbHkoIFtdLCByZXQgKTsKKwl9Cit9KTsKKworLy8g
VXNlIG9mIGpRdWVyeS5icm93c2VyIGlzIGRlcHJlY2F0ZWQuCisvLyBJdCdzIGluY2x1ZGVkIGZv
ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgcGx1Z2lucywKKy8vIGFsdGhvdWdoIHRoZXkg
c2hvdWxkIHdvcmsgdG8gbWlncmF0ZSBhd2F5LgorCit2YXIgdXNlckFnZW50ID0gbmF2aWdhdG9y
LnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpOworCisvLyBGaWd1cmUgb3V0IHdoYXQgYnJvd3NlciBp
cyBiZWluZyB1c2VkCitqUXVlcnkuYnJvd3NlciA9IHsKKwl2ZXJzaW9uOiAodXNlckFnZW50Lm1h
dGNoKCAvLisoPzpydnxpdHxyYXxpZSlbXC86IF0oW1xkLl0rKS8gKSB8fCBbMCwnMCddKVsxXSwK
KwlzYWZhcmk6IC93ZWJraXQvLnRlc3QoIHVzZXJBZ2VudCApLAorCW9wZXJhOiAvb3BlcmEvLnRl
c3QoIHVzZXJBZ2VudCApLAorCW1zaWU6IC9tc2llLy50ZXN0KCB1c2VyQWdlbnQgKSAmJiAhL29w
ZXJhLy50ZXN0KCB1c2VyQWdlbnQgKSwKKwltb3ppbGxhOiAvbW96aWxsYS8udGVzdCggdXNlckFn
ZW50ICkgJiYgIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50ZXN0KCB1c2VyQWdlbnQgKQorfTsKKwor
alF1ZXJ5LmVhY2goeworCXBhcmVudDogZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGVsZW0ucGFyZW50
Tm9kZTt9LAorCXBhcmVudHM6IGZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkuZGlyKGVsZW0s
InBhcmVudE5vZGUiKTt9LAorCW5leHQ6IGZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkubnRo
KGVsZW0sMiwibmV4dFNpYmxpbmciKTt9LAorCXByZXY6IGZ1bmN0aW9uKGVsZW0pe3JldHVybiBq
UXVlcnkubnRoKGVsZW0sMiwicHJldmlvdXNTaWJsaW5nIik7fSwKKwluZXh0QWxsOiBmdW5jdGlv
bihlbGVtKXtyZXR1cm4galF1ZXJ5LmRpcihlbGVtLCJuZXh0U2libGluZyIpO30sCisJcHJldkFs
bDogZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5kaXIoZWxlbSwicHJldmlvdXNTaWJsaW5n
Iik7fSwKKwlzaWJsaW5nczogZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5zaWJsaW5nKGVs
ZW0ucGFyZW50Tm9kZS5maXJzdENoaWxkLGVsZW0pO30sCisJY2hpbGRyZW46IGZ1bmN0aW9uKGVs
ZW0pe3JldHVybiBqUXVlcnkuc2libGluZyhlbGVtLmZpcnN0Q2hpbGQpO30sCisJY29udGVudHM6
IGZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkubm9kZU5hbWUoZWxlbSwiaWZyYW1lIik/ZWxl
bS5jb250ZW50RG9jdW1lbnR8fGVsZW0uY29udGVudFdpbmRvdy5kb2N1bWVudDpqUXVlcnkubWFr
ZUFycmF5KGVsZW0uY2hpbGROb2Rlcyk7fQorfSwgZnVuY3Rpb24obmFtZSwgZm4peworCWpRdWVy
eS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNlbGVjdG9yICkgeworCQl2YXIgcmV0ID0galF1ZXJ5
Lm1hcCggdGhpcywgZm4gKTsKKworCQlpZiAoIHNlbGVjdG9yICYmIHR5cGVvZiBzZWxlY3RvciA9
PSAic3RyaW5nIiApCisJCQlyZXQgPSBqUXVlcnkubXVsdGlGaWx0ZXIoIHNlbGVjdG9yLCByZXQg
KTsKKworCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS51bmlxdWUoIHJldCApLCBuYW1l
LCBzZWxlY3RvciApOworCX07Cit9KTsKKworalF1ZXJ5LmVhY2goeworCWFwcGVuZFRvOiAiYXBw
ZW5kIiwKKwlwcmVwZW5kVG86ICJwcmVwZW5kIiwKKwlpbnNlcnRCZWZvcmU6ICJiZWZvcmUiLAor
CWluc2VydEFmdGVyOiAiYWZ0ZXIiLAorCXJlcGxhY2VBbGw6ICJyZXBsYWNlV2l0aCIKK30sIGZ1
bmN0aW9uKG5hbWUsIG9yaWdpbmFsKXsKKwlqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBz
ZWxlY3RvciApIHsKKwkJdmFyIHJldCA9IFtdLCBpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICk7
CisKKwkJZm9yICggdmFyIGkgPSAwLCBsID0gaW5zZXJ0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsK
KwkJCXZhciBlbGVtcyA9IChpID4gMCA/IHRoaXMuY2xvbmUodHJ1ZSkgOiB0aGlzKS5nZXQoKTsK
KwkJCWpRdWVyeS5mblsgb3JpZ2luYWwgXS5hcHBseSggalF1ZXJ5KGluc2VydFtpXSksIGVsZW1z
ICk7CisJCQlyZXQgPSByZXQuY29uY2F0KCBlbGVtcyApOworCQl9CisKKwkJcmV0dXJuIHRoaXMu
cHVzaFN0YWNrKCByZXQsIG5hbWUsIHNlbGVjdG9yICk7CisJfTsKK30pOworCitqUXVlcnkuZWFj
aCh7CisJcmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUgKSB7CisJCWpRdWVyeS5hdHRyKCB0aGlz
LCBuYW1lLCAiIiApOworCQlpZiAodGhpcy5ub2RlVHlwZSA9PSAxKQorCQkJdGhpcy5yZW1vdmVB
dHRyaWJ1dGUoIG5hbWUgKTsKKwl9LAorCisJYWRkQ2xhc3M6IGZ1bmN0aW9uKCBjbGFzc05hbWVz
ICkgeworCQlqUXVlcnkuY2xhc3NOYW1lLmFkZCggdGhpcywgY2xhc3NOYW1lcyApOworCX0sCisK
KwlyZW1vdmVDbGFzczogZnVuY3Rpb24oIGNsYXNzTmFtZXMgKSB7CisJCWpRdWVyeS5jbGFzc05h
bWUucmVtb3ZlKCB0aGlzLCBjbGFzc05hbWVzICk7CisJfSwKKworCXRvZ2dsZUNsYXNzOiBmdW5j
dGlvbiggY2xhc3NOYW1lcywgc3RhdGUgKSB7CisJCWlmKCB0eXBlb2Ygc3RhdGUgIT09ICJib29s
ZWFuIiApCisJCQlzdGF0ZSA9ICFqUXVlcnkuY2xhc3NOYW1lLmhhcyggdGhpcywgY2xhc3NOYW1l
cyApOworCQlqUXVlcnkuY2xhc3NOYW1lWyBzdGF0ZSA/ICJhZGQiIDogInJlbW92ZSIgXSggdGhp
cywgY2xhc3NOYW1lcyApOworCX0sCisKKwlyZW1vdmU6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsK
KwkJaWYgKCAhc2VsZWN0b3IgfHwgalF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIFsgdGhpcyBdICku
bGVuZ3RoICkgeworCQkJLy8gUHJldmVudCBtZW1vcnkgbGVha3MKKwkJCWpRdWVyeSggIioiLCB0
aGlzICkuYWRkKFt0aGlzXSkuZWFjaChmdW5jdGlvbigpeworCQkJCWpRdWVyeS5ldmVudC5yZW1v
dmUodGhpcyk7CisJCQkJalF1ZXJ5LnJlbW92ZURhdGEodGhpcyk7CisJCQl9KTsKKwkJCWlmICh0
aGlzLnBhcmVudE5vZGUpCisJCQkJdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0aGlzICk7
CisJCX0KKwl9LAorCisJZW1wdHk6IGZ1bmN0aW9uKCkgeworCQkvLyBSZW1vdmUgZWxlbWVudCBu
b2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKKwkJalF1ZXJ5KHRoaXMpLmNoaWxkcmVuKCku
cmVtb3ZlKCk7CisKKwkJLy8gUmVtb3ZlIGFueSByZW1haW5pbmcgbm9kZXMKKwkJd2hpbGUgKCB0
aGlzLmZpcnN0Q2hpbGQgKQorCQkJdGhpcy5yZW1vdmVDaGlsZCggdGhpcy5maXJzdENoaWxkICk7
CisJfQorfSwgZnVuY3Rpb24obmFtZSwgZm4peworCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rp
b24oKXsKKwkJcmV0dXJuIHRoaXMuZWFjaCggZm4sIGFyZ3VtZW50cyApOworCX07Cit9KTsKKwor
Ly8gSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIGRpbWVuc2lvbnMgYW5kIG9mZnNldCBtb2R1
bGVzCitmdW5jdGlvbiBudW0oZWxlbSwgcHJvcCkgeworCXJldHVybiBlbGVtWzBdICYmIHBhcnNl
SW50KCBqUXVlcnkuY3VyQ1NTKGVsZW1bMF0sIHByb3AsIHRydWUpLCAxMCApIHx8IDA7Cit9Cit2
YXIgZXhwYW5kbyA9ICJqUXVlcnkiICsgbm93KCksIHV1aWQgPSAwLCB3aW5kb3dEYXRhID0ge307
CisKK2pRdWVyeS5leHRlbmQoeworCWNhY2hlOiB7fSwKKworCWRhdGE6IGZ1bmN0aW9uKCBlbGVt
LCBuYW1lLCBkYXRhICkgeworCQllbGVtID0gZWxlbSA9PSB3aW5kb3cgPworCQkJd2luZG93RGF0
YSA6CisJCQllbGVtOworCisJCXZhciBpZCA9IGVsZW1bIGV4cGFuZG8gXTsKKworCQkvLyBDb21w
dXRlIGEgdW5pcXVlIElEIGZvciB0aGUgZWxlbWVudAorCQlpZiAoICFpZCApCisJCQlpZCA9IGVs
ZW1bIGV4cGFuZG8gXSA9ICsrdXVpZDsKKworCQkvLyBPbmx5IGdlbmVyYXRlIHRoZSBkYXRhIGNh
Y2hlIGlmIHdlJ3JlCisJCS8vIHRyeWluZyB0byBhY2Nlc3Mgb3IgbWFuaXB1bGF0ZSBpdAorCQlp
ZiAoIG5hbWUgJiYgIWpRdWVyeS5jYWNoZVsgaWQgXSApCisJCQlqUXVlcnkuY2FjaGVbIGlkIF0g
PSB7fTsKKworCQkvLyBQcmV2ZW50IG92ZXJyaWRpbmcgdGhlIG5hbWVkIGNhY2hlIHdpdGggdW5k
ZWZpbmVkIHZhbHVlcworCQlpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApCisJCQlqUXVlcnkuY2Fj
aGVbIGlkIF1bIG5hbWUgXSA9IGRhdGE7CisKKwkJLy8gUmV0dXJuIHRoZSBuYW1lZCBjYWNoZSBk
YXRhLCBvciB0aGUgSUQgZm9yIHRoZSBlbGVtZW50CisJCXJldHVybiBuYW1lID8KKwkJCWpRdWVy
eS5jYWNoZVsgaWQgXVsgbmFtZSBdIDoKKwkJCWlkOworCX0sCisKKwlyZW1vdmVEYXRhOiBmdW5j
dGlvbiggZWxlbSwgbmFtZSApIHsKKwkJZWxlbSA9IGVsZW0gPT0gd2luZG93ID8KKwkJCXdpbmRv
d0RhdGEgOgorCQkJZWxlbTsKKworCQl2YXIgaWQgPSBlbGVtWyBleHBhbmRvIF07CisKKwkJLy8g
SWYgd2Ugd2FudCB0byByZW1vdmUgYSBzcGVjaWZpYyBzZWN0aW9uIG9mIHRoZSBlbGVtZW50J3Mg
ZGF0YQorCQlpZiAoIG5hbWUgKSB7CisJCQlpZiAoIGpRdWVyeS5jYWNoZVsgaWQgXSApIHsKKwkJ
CQkvLyBSZW1vdmUgdGhlIHNlY3Rpb24gb2YgY2FjaGUgZGF0YQorCQkJCWRlbGV0ZSBqUXVlcnku
Y2FjaGVbIGlkIF1bIG5hbWUgXTsKKworCQkJCS8vIElmIHdlJ3ZlIHJlbW92ZWQgYWxsIHRoZSBk
YXRhLCByZW1vdmUgdGhlIGVsZW1lbnQncyBjYWNoZQorCQkJCW5hbWUgPSAiIjsKKworCQkJCWZv
ciAoIG5hbWUgaW4galF1ZXJ5LmNhY2hlWyBpZCBdICkKKwkJCQkJYnJlYWs7CisKKwkJCQlpZiAo
ICFuYW1lICkKKwkJCQkJalF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0gKTsKKwkJCX0KKworCQkvLyBP
dGhlcndpc2UsIHdlIHdhbnQgdG8gcmVtb3ZlIGFsbCBvZiB0aGUgZWxlbWVudCdzIGRhdGEKKwkJ
fSBlbHNlIHsKKwkJCS8vIENsZWFuIHVwIHRoZSBlbGVtZW50IGV4cGFuZG8KKwkJCXRyeSB7CisJ
CQkJZGVsZXRlIGVsZW1bIGV4cGFuZG8gXTsKKwkJCX0gY2F0Y2goZSl7CisJCQkJLy8gSUUgaGFz
IHRyb3VibGUgZGlyZWN0bHkgcmVtb3ZpbmcgdGhlIGV4cGFuZG8KKwkJCQkvLyBidXQgaXQncyBv
ayB3aXRoIHVzaW5nIHJlbW92ZUF0dHJpYnV0ZQorCQkJCWlmICggZWxlbS5yZW1vdmVBdHRyaWJ1
dGUgKQorCQkJCQllbGVtLnJlbW92ZUF0dHJpYnV0ZSggZXhwYW5kbyApOworCQkJfQorCisJCQkv
LyBDb21wbGV0ZWx5IHJlbW92ZSB0aGUgZGF0YSBjYWNoZQorCQkJZGVsZXRlIGpRdWVyeS5jYWNo
ZVsgaWQgXTsKKwkJfQorCX0sCisJcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkg
eworCQlpZiAoIGVsZW0gKXsKKwkKKwkJCXR5cGUgPSAodHlwZSB8fCAiZngiKSArICJxdWV1ZSI7
CisJCisJCQl2YXIgcSA9IGpRdWVyeS5kYXRhKCBlbGVtLCB0eXBlICk7CisJCisJCQlpZiAoICFx
IHx8IGpRdWVyeS5pc0FycmF5KGRhdGEpICkKKwkJCQlxID0galF1ZXJ5LmRhdGEoIGVsZW0sIHR5
cGUsIGpRdWVyeS5tYWtlQXJyYXkoZGF0YSkgKTsKKwkJCWVsc2UgaWYoIGRhdGEgKQorCQkJCXEu
cHVzaCggZGF0YSApOworCQorCQl9CisJCXJldHVybiBxOworCX0sCisKKwlkZXF1ZXVlOiBmdW5j
dGlvbiggZWxlbSwgdHlwZSApeworCQl2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5
cGUgKSwKKwkJCWZuID0gcXVldWUuc2hpZnQoKTsKKwkJCisJCWlmKCAhdHlwZSB8fCB0eXBlID09
PSAiZngiICkKKwkJCWZuID0gcXVldWVbMF07CisJCQkKKwkJaWYoIGZuICE9PSB1bmRlZmluZWQg
KQorCQkJZm4uY2FsbChlbGVtKTsKKwl9Cit9KTsKKworalF1ZXJ5LmZuLmV4dGVuZCh7CisJZGF0
YTogZnVuY3Rpb24oIGtleSwgdmFsdWUgKXsKKwkJdmFyIHBhcnRzID0ga2V5LnNwbGl0KCIuIik7
CisJCXBhcnRzWzFdID0gcGFydHNbMV0gPyAiLiIgKyBwYXJ0c1sxXSA6ICIiOworCisJCWlmICgg
dmFsdWUgPT09IHVuZGVmaW5lZCApIHsKKwkJCXZhciBkYXRhID0gdGhpcy50cmlnZ2VySGFuZGxl
cigiZ2V0RGF0YSIgKyBwYXJ0c1sxXSArICIhIiwgW3BhcnRzWzBdXSk7CisKKwkJCWlmICggZGF0
YSA9PT0gdW5kZWZpbmVkICYmIHRoaXMubGVuZ3RoICkKKwkJCQlkYXRhID0galF1ZXJ5LmRhdGEo
IHRoaXNbMF0sIGtleSApOworCisJCQlyZXR1cm4gZGF0YSA9PT0gdW5kZWZpbmVkICYmIHBhcnRz
WzFdID8KKwkJCQl0aGlzLmRhdGEoIHBhcnRzWzBdICkgOgorCQkJCWRhdGE7CisJCX0gZWxzZQor
CQkJcmV0dXJuIHRoaXMudHJpZ2dlcigic2V0RGF0YSIgKyBwYXJ0c1sxXSArICIhIiwgW3BhcnRz
WzBdLCB2YWx1ZV0pLmVhY2goZnVuY3Rpb24oKXsKKwkJCQlqUXVlcnkuZGF0YSggdGhpcywga2V5
LCB2YWx1ZSApOworCQkJfSk7CisJfSwKKworCXJlbW92ZURhdGE6IGZ1bmN0aW9uKCBrZXkgKXsK
KwkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeworCQkJalF1ZXJ5LnJlbW92ZURhdGEoIHRo
aXMsIGtleSApOworCQl9KTsKKwl9LAorCXF1ZXVlOiBmdW5jdGlvbih0eXBlLCBkYXRhKXsKKwkJ
aWYgKCB0eXBlb2YgdHlwZSAhPT0gInN0cmluZyIgKSB7CisJCQlkYXRhID0gdHlwZTsKKwkJCXR5
cGUgPSAiZngiOworCQl9CisKKwkJaWYgKCBkYXRhID09PSB1bmRlZmluZWQgKQorCQkJcmV0dXJu
IGpRdWVyeS5xdWV1ZSggdGhpc1swXSwgdHlwZSApOworCisJCXJldHVybiB0aGlzLmVhY2goZnVu
Y3Rpb24oKXsKKwkJCXZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSAp
OworCQkJCisJCQkgaWYoIHR5cGUgPT0gImZ4IiAmJiBxdWV1ZS5sZW5ndGggPT0gMSApCisJCQkJ
cXVldWVbMF0uY2FsbCh0aGlzKTsKKwkJfSk7CisJfSwKKwlkZXF1ZXVlOiBmdW5jdGlvbih0eXBl
KXsKKwkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeworCQkJalF1ZXJ5LmRlcXVldWUoIHRo
aXMsIHR5cGUgKTsKKwkJfSk7CisJfQorfSk7LyohCisgKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVu
Z2luZSAtIHYwLjkuMworICogIENvcHlyaWdodCAyMDA5LCBUaGUgRG9qbyBGb3VuZGF0aW9uCisg
KiAgUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgorICogIE1v
cmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6bGVqcy5jb20vCisgKi8KKyhmdW5jdGlvbigpewor
Cit2YXIgY2h1bmtlciA9IC8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1te
W1xdXSpcXXxbJyJdW14nIl0qWyciXXxbXltcXSciXSspK1xdfFxcLnxbXiA+K34sKFxbXFxdKykr
fFs+K35dKShccyosXHMqKT8vZywKKwlkb25lID0gMCwKKwl0b1N0cmluZyA9IE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmc7CisKK3ZhciBTaXp6bGUgPSBmdW5jdGlvbihzZWxlY3RvciwgY29udGV4
dCwgcmVzdWx0cywgc2VlZCkgeworCXJlc3VsdHMgPSByZXN1bHRzIHx8IFtdOworCWNvbnRleHQg
PSBjb250ZXh0IHx8IGRvY3VtZW50OworCisJaWYgKCBjb250ZXh0Lm5vZGVUeXBlICE9PSAxICYm
IGNvbnRleHQubm9kZVR5cGUgIT09IDkgKQorCQlyZXR1cm4gW107CisJCisJaWYgKCAhc2VsZWN0
b3IgfHwgdHlwZW9mIHNlbGVjdG9yICE9PSAic3RyaW5nIiApIHsKKwkJcmV0dXJuIHJlc3VsdHM7
CisJfQorCisJdmFyIHBhcnRzID0gW10sIG0sIHNldCwgY2hlY2tTZXQsIGNoZWNrLCBtb2RlLCBl
eHRyYSwgcHJ1bmUgPSB0cnVlOworCQorCS8vIFJlc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2h1
bmtlciByZWdleHAgKHN0YXJ0IGZyb20gaGVhZCkKKwljaHVua2VyLmxhc3RJbmRleCA9IDA7CisJ
CisJd2hpbGUgKCAobSA9IGNodW5rZXIuZXhlYyhzZWxlY3RvcikpICE9PSBudWxsICkgeworCQlw
YXJ0cy5wdXNoKCBtWzFdICk7CisJCQorCQlpZiAoIG1bMl0gKSB7CisJCQlleHRyYSA9IFJlZ0V4
cC5yaWdodENvbnRleHQ7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICggcGFydHMubGVuZ3Ro
ID4gMSAmJiBvcmlnUE9TLmV4ZWMoIHNlbGVjdG9yICkgKSB7CisJCWlmICggcGFydHMubGVuZ3Ro
ID09PSAyICYmIEV4cHIucmVsYXRpdmVbIHBhcnRzWzBdIF0gKSB7CisJCQlzZXQgPSBwb3NQcm9j
ZXNzKCBwYXJ0c1swXSArIHBhcnRzWzFdLCBjb250ZXh0ICk7CisJCX0gZWxzZSB7CisJCQlzZXQg
PSBFeHByLnJlbGF0aXZlWyBwYXJ0c1swXSBdID8KKwkJCQlbIGNvbnRleHQgXSA6CisJCQkJU2l6
emxlKCBwYXJ0cy5zaGlmdCgpLCBjb250ZXh0ICk7CisKKwkJCXdoaWxlICggcGFydHMubGVuZ3Ro
ICkgeworCQkJCXNlbGVjdG9yID0gcGFydHMuc2hpZnQoKTsKKworCQkJCWlmICggRXhwci5yZWxh
dGl2ZVsgc2VsZWN0b3IgXSApCisJCQkJCXNlbGVjdG9yICs9IHBhcnRzLnNoaWZ0KCk7CisKKwkJ
CQlzZXQgPSBwb3NQcm9jZXNzKCBzZWxlY3Rvciwgc2V0ICk7CisJCQl9CisJCX0KKwl9IGVsc2Ug
eworCQl2YXIgcmV0ID0gc2VlZCA/CisJCQl7IGV4cHI6IHBhcnRzLnBvcCgpLCBzZXQ6IG1ha2VB
cnJheShzZWVkKSB9IDoKKwkJCVNpenpsZS5maW5kKCBwYXJ0cy5wb3AoKSwgcGFydHMubGVuZ3Ro
ID09PSAxICYmIGNvbnRleHQucGFyZW50Tm9kZSA/IGNvbnRleHQucGFyZW50Tm9kZSA6IGNvbnRl
eHQsIGlzWE1MKGNvbnRleHQpICk7CisJCXNldCA9IFNpenpsZS5maWx0ZXIoIHJldC5leHByLCBy
ZXQuc2V0ICk7CisKKwkJaWYgKCBwYXJ0cy5sZW5ndGggPiAwICkgeworCQkJY2hlY2tTZXQgPSBt
YWtlQXJyYXkoc2V0KTsKKwkJfSBlbHNlIHsKKwkJCXBydW5lID0gZmFsc2U7CisJCX0KKworCQl3
aGlsZSAoIHBhcnRzLmxlbmd0aCApIHsKKwkJCXZhciBjdXIgPSBwYXJ0cy5wb3AoKSwgcG9wID0g
Y3VyOworCisJCQlpZiAoICFFeHByLnJlbGF0aXZlWyBjdXIgXSApIHsKKwkJCQljdXIgPSAiIjsK
KwkJCX0gZWxzZSB7CisJCQkJcG9wID0gcGFydHMucG9wKCk7CisJCQl9CisKKwkJCWlmICggcG9w
ID09IG51bGwgKSB7CisJCQkJcG9wID0gY29udGV4dDsKKwkJCX0KKworCQkJRXhwci5yZWxhdGl2
ZVsgY3VyIF0oIGNoZWNrU2V0LCBwb3AsIGlzWE1MKGNvbnRleHQpICk7CisJCX0KKwl9CisKKwlp
ZiAoICFjaGVja1NldCApIHsKKwkJY2hlY2tTZXQgPSBzZXQ7CisJfQorCisJaWYgKCAhY2hlY2tT
ZXQgKSB7CisJCXRocm93ICJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAi
ICsgKGN1ciB8fCBzZWxlY3Rvcik7CisJfQorCisJaWYgKCB0b1N0cmluZy5jYWxsKGNoZWNrU2V0
KSA9PT0gIltvYmplY3QgQXJyYXldIiApIHsKKwkJaWYgKCAhcHJ1bmUgKSB7CisJCQlyZXN1bHRz
LnB1c2guYXBwbHkoIHJlc3VsdHMsIGNoZWNrU2V0ICk7CisJCX0gZWxzZSBpZiAoIGNvbnRleHQu
bm9kZVR5cGUgPT09IDEgKSB7CisJCQlmb3IgKCB2YXIgaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51
bGw7IGkrKyApIHsKKwkJCQlpZiAoIGNoZWNrU2V0W2ldICYmIChjaGVja1NldFtpXSA9PT0gdHJ1
ZSB8fCBjaGVja1NldFtpXS5ub2RlVHlwZSA9PT0gMSAmJiBjb250YWlucyhjb250ZXh0LCBjaGVj
a1NldFtpXSkpICkgeworCQkJCQlyZXN1bHRzLnB1c2goIHNldFtpXSApOworCQkJCX0KKwkJCX0K
KwkJfSBlbHNlIHsKKwkJCWZvciAoIHZhciBpID0gMDsgY2hlY2tTZXRbaV0gIT0gbnVsbDsgaSsr
ICkgeworCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgY2hlY2tTZXRbaV0ubm9kZVR5cGUgPT09IDEg
KSB7CisJCQkJCXJlc3VsdHMucHVzaCggc2V0W2ldICk7CisJCQkJfQorCQkJfQorCQl9CisJfSBl
bHNlIHsKKwkJbWFrZUFycmF5KCBjaGVja1NldCwgcmVzdWx0cyApOworCX0KKworCWlmICggZXh0
cmEgKSB7CisJCVNpenpsZSggZXh0cmEsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKTsKKworCQlp
ZiAoIHNvcnRPcmRlciApIHsKKwkJCWhhc0R1cGxpY2F0ZSA9IGZhbHNlOworCQkJcmVzdWx0cy5z
b3J0KHNvcnRPcmRlcik7CisKKwkJCWlmICggaGFzRHVwbGljYXRlICkgeworCQkJCWZvciAoIHZh
ciBpID0gMTsgaSA8IHJlc3VsdHMubGVuZ3RoOyBpKysgKSB7CisJCQkJCWlmICggcmVzdWx0c1tp
XSA9PT0gcmVzdWx0c1tpLTFdICkgeworCQkJCQkJcmVzdWx0cy5zcGxpY2UoaS0tLCAxKTsKKwkJ
CQkJfQorCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCXJldHVybiByZXN1bHRzOworfTsKKworU2l6
emxlLm1hdGNoZXMgPSBmdW5jdGlvbihleHByLCBzZXQpeworCXJldHVybiBTaXp6bGUoZXhwciwg
bnVsbCwgbnVsbCwgc2V0KTsKK307CisKK1NpenpsZS5maW5kID0gZnVuY3Rpb24oZXhwciwgY29u
dGV4dCwgaXNYTUwpeworCXZhciBzZXQsIG1hdGNoOworCisJaWYgKCAhZXhwciApIHsKKwkJcmV0
dXJuIFtdOworCX0KKworCWZvciAoIHZhciBpID0gMCwgbCA9IEV4cHIub3JkZXIubGVuZ3RoOyBp
IDwgbDsgaSsrICkgeworCQl2YXIgdHlwZSA9IEV4cHIub3JkZXJbaV0sIG1hdGNoOworCQkKKwkJ
aWYgKCAobWF0Y2ggPSBFeHByLm1hdGNoWyB0eXBlIF0uZXhlYyggZXhwciApKSApIHsKKwkJCXZh
ciBsZWZ0ID0gUmVnRXhwLmxlZnRDb250ZXh0OworCisJCQlpZiAoIGxlZnQuc3Vic3RyKCBsZWZ0
Lmxlbmd0aCAtIDEgKSAhPT0gIlxcIiApIHsKKwkJCQltYXRjaFsxXSA9IChtYXRjaFsxXSB8fCAi
IikucmVwbGFjZSgvXFwvZywgIiIpOworCQkJCXNldCA9IEV4cHIuZmluZFsgdHlwZSBdKCBtYXRj
aCwgY29udGV4dCwgaXNYTUwgKTsKKwkJCQlpZiAoIHNldCAhPSBudWxsICkgeworCQkJCQlleHBy
ID0gZXhwci5yZXBsYWNlKCBFeHByLm1hdGNoWyB0eXBlIF0sICIiICk7CisJCQkJCWJyZWFrOwor
CQkJCX0KKwkJCX0KKwkJfQorCX0KKworCWlmICggIXNldCApIHsKKwkJc2V0ID0gY29udGV4dC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOworCX0KKworCXJldHVybiB7c2V0OiBzZXQsIGV4cHI6
IGV4cHJ9OworfTsKKworU2l6emxlLmZpbHRlciA9IGZ1bmN0aW9uKGV4cHIsIHNldCwgaW5wbGFj
ZSwgbm90KXsKKwl2YXIgb2xkID0gZXhwciwgcmVzdWx0ID0gW10sIGN1ckxvb3AgPSBzZXQsIG1h
dGNoLCBhbnlGb3VuZCwKKwkJaXNYTUxGaWx0ZXIgPSBzZXQgJiYgc2V0WzBdICYmIGlzWE1MKHNl
dFswXSk7CisKKwl3aGlsZSAoIGV4cHIgJiYgc2V0Lmxlbmd0aCApIHsKKwkJZm9yICggdmFyIHR5
cGUgaW4gRXhwci5maWx0ZXIgKSB7CisJCQlpZiAoIChtYXRjaCA9IEV4cHIubWF0Y2hbIHR5cGUg
XS5leGVjKCBleHByICkpICE9IG51bGwgKSB7CisJCQkJdmFyIGZpbHRlciA9IEV4cHIuZmlsdGVy
WyB0eXBlIF0sIGZvdW5kLCBpdGVtOworCQkJCWFueUZvdW5kID0gZmFsc2U7CisKKwkJCQlpZiAo
IGN1ckxvb3AgPT0gcmVzdWx0ICkgeworCQkJCQlyZXN1bHQgPSBbXTsKKwkJCQl9CisKKwkJCQlp
ZiAoIEV4cHIucHJlRmlsdGVyWyB0eXBlIF0gKSB7CisJCQkJCW1hdGNoID0gRXhwci5wcmVGaWx0
ZXJbIHR5cGUgXSggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTEZp
bHRlciApOworCisJCQkJCWlmICggIW1hdGNoICkgeworCQkJCQkJYW55Rm91bmQgPSBmb3VuZCA9
IHRydWU7CisJCQkJCX0gZWxzZSBpZiAoIG1hdGNoID09PSB0cnVlICkgeworCQkJCQkJY29udGlu
dWU7CisJCQkJCX0KKwkJCQl9CisKKwkJCQlpZiAoIG1hdGNoICkgeworCQkJCQlmb3IgKCB2YXIg
aSA9IDA7IChpdGVtID0gY3VyTG9vcFtpXSkgIT0gbnVsbDsgaSsrICkgeworCQkJCQkJaWYgKCBp
dGVtICkgeworCQkJCQkJCWZvdW5kID0gZmlsdGVyKCBpdGVtLCBtYXRjaCwgaSwgY3VyTG9vcCAp
OworCQkJCQkJCXZhciBwYXNzID0gbm90IF4gISFmb3VuZDsKKworCQkJCQkJCWlmICggaW5wbGFj
ZSAmJiBmb3VuZCAhPSBudWxsICkgeworCQkJCQkJCQlpZiAoIHBhc3MgKSB7CisJCQkJCQkJCQlh
bnlGb3VuZCA9IHRydWU7CisJCQkJCQkJCX0gZWxzZSB7CisJCQkJCQkJCQljdXJMb29wW2ldID0g
ZmFsc2U7CisJCQkJCQkJCX0KKwkJCQkJCQl9IGVsc2UgaWYgKCBwYXNzICkgeworCQkJCQkJCQly
ZXN1bHQucHVzaCggaXRlbSApOworCQkJCQkJCQlhbnlGb3VuZCA9IHRydWU7CisJCQkJCQkJfQor
CQkJCQkJfQorCQkJCQl9CisJCQkJfQorCisJCQkJaWYgKCBmb3VuZCAhPT0gdW5kZWZpbmVkICkg
eworCQkJCQlpZiAoICFpbnBsYWNlICkgeworCQkJCQkJY3VyTG9vcCA9IHJlc3VsdDsKKwkJCQkJ
fQorCisJCQkJCWV4cHIgPSBleHByLnJlcGxhY2UoIEV4cHIubWF0Y2hbIHR5cGUgXSwgIiIgKTsK
KworCQkJCQlpZiAoICFhbnlGb3VuZCApIHsKKwkJCQkJCXJldHVybiBbXTsKKwkJCQkJfQorCisJ
CQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJfQorCisJCS8vIEltcHJvcGVyIGV4cHJlc3Npb24K
KwkJaWYgKCBleHByID09IG9sZCApIHsKKwkJCWlmICggYW55Rm91bmQgPT0gbnVsbCApIHsKKwkJ
CQl0aHJvdyAiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIiArIGV4cHI7
CisJCQl9IGVsc2UgeworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJb2xkID0gZXhwcjsKKwl9
CisKKwlyZXR1cm4gY3VyTG9vcDsKK307CisKK3ZhciBFeHByID0gU2l6emxlLnNlbGVjdG9ycyA9
IHsKKwlvcmRlcjogWyAiSUQiLCAiTkFNRSIsICJUQUciIF0sCisJbWF0Y2g6IHsKKwkJSUQ6IC8j
KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspLywKKwkJQ0xBU1M6IC9cLigoPzpbXHdcdTAw
YzAtXHVGRkZGXy1dfFxcLikrKS8sCisJCU5BTUU6IC9cW25hbWU9WyciXSooKD86W1x3XHUwMGMw
LVx1RkZGRl8tXXxcXC4pKylbJyJdKlxdLywKKwkJQVRUUjogL1xbXHMqKCg/Oltcd1x1MDBjMC1c
dUZGRkZfLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKFsnIl0qKSguKj8pXDN8KVxzKlxdLywKKwkJ
VEFHOiAvXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpfLV18XFwuKSspLywKKwkJQ0hJTEQ6IC86KG9u
bHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sCisJ
CVBPUzogLzoobnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8o
Pz1bXi1dfCQpLywKKwkJUFNFVURPOiAvOigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKSg/
OlwoKFsnIl0qKSgoPzpcKFteXCldK1wpfFteXDJcKFwpXSopKylcMlwpKT8vCisJfSwKKwlhdHRy
TWFwOiB7CisJCSJjbGFzcyI6ICJjbGFzc05hbWUiLAorCQkiZm9yIjogImh0bWxGb3IiCisJfSwK
KwlhdHRySGFuZGxlOiB7CisJCWhyZWY6IGZ1bmN0aW9uKGVsZW0peworCQkJcmV0dXJuIGVsZW0u
Z2V0QXR0cmlidXRlKCJocmVmIik7CisJCX0KKwl9LAorCXJlbGF0aXZlOiB7CisJCSIrIjogZnVu
Y3Rpb24oY2hlY2tTZXQsIHBhcnQsIGlzWE1MKXsKKwkJCXZhciBpc1BhcnRTdHIgPSB0eXBlb2Yg
cGFydCA9PT0gInN0cmluZyIsCisJCQkJaXNUYWcgPSBpc1BhcnRTdHIgJiYgIS9cVy8udGVzdChw
YXJ0KSwKKwkJCQlpc1BhcnRTdHJOb3RUYWcgPSBpc1BhcnRTdHIgJiYgIWlzVGFnOworCisJCQlp
ZiAoIGlzVGFnICYmICFpc1hNTCApIHsKKwkJCQlwYXJ0ID0gcGFydC50b1VwcGVyQ2FzZSgpOwor
CQkJfQorCisJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSBjaGVja1NldC5sZW5ndGgsIGVsZW07IGkg
PCBsOyBpKysgKSB7CisJCQkJaWYgKCAoZWxlbSA9IGNoZWNrU2V0W2ldKSApIHsKKwkJCQkJd2hp
bGUgKCAoZWxlbSA9IGVsZW0ucHJldmlvdXNTaWJsaW5nKSAmJiBlbGVtLm5vZGVUeXBlICE9PSAx
ICkge30KKworCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ck5vdFRhZyB8fCBlbGVtICYmIGVs
ZW0ubm9kZU5hbWUgPT09IHBhcnQgPworCQkJCQkJZWxlbSB8fCBmYWxzZSA6CisJCQkJCQllbGVt
ID09PSBwYXJ0OworCQkJCX0KKwkJCX0KKworCQkJaWYgKCBpc1BhcnRTdHJOb3RUYWcgKSB7CisJ
CQkJU2l6emxlLmZpbHRlciggcGFydCwgY2hlY2tTZXQsIHRydWUgKTsKKwkJCX0KKwkJfSwKKwkJ
Ij4iOiBmdW5jdGlvbihjaGVja1NldCwgcGFydCwgaXNYTUwpeworCQkJdmFyIGlzUGFydFN0ciA9
IHR5cGVvZiBwYXJ0ID09PSAic3RyaW5nIjsKKworCQkJaWYgKCBpc1BhcnRTdHIgJiYgIS9cVy8u
dGVzdChwYXJ0KSApIHsKKwkJCQlwYXJ0ID0gaXNYTUwgPyBwYXJ0IDogcGFydC50b1VwcGVyQ2Fz
ZSgpOworCisJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3RoOyBpIDwgbDsg
aSsrICkgeworCQkJCQl2YXIgZWxlbSA9IGNoZWNrU2V0W2ldOworCQkJCQlpZiAoIGVsZW0gKSB7
CisJCQkJCQl2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOworCQkJCQkJY2hlY2tTZXRbaV0g
PSBwYXJlbnQubm9kZU5hbWUgPT09IHBhcnQgPyBwYXJlbnQgOiBmYWxzZTsKKwkJCQkJfQorCQkJ
CX0KKwkJCX0gZWxzZSB7CisJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3Ro
OyBpIDwgbDsgaSsrICkgeworCQkJCQl2YXIgZWxlbSA9IGNoZWNrU2V0W2ldOworCQkJCQlpZiAo
IGVsZW0gKSB7CisJCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ciA/CisJCQkJCQkJZWxlbS5w
YXJlbnROb2RlIDoKKwkJCQkJCQllbGVtLnBhcmVudE5vZGUgPT09IHBhcnQ7CisJCQkJCX0KKwkJ
CQl9CisKKwkJCQlpZiAoIGlzUGFydFN0ciApIHsKKwkJCQkJU2l6emxlLmZpbHRlciggcGFydCwg
Y2hlY2tTZXQsIHRydWUgKTsKKwkJCQl9CisJCQl9CisJCX0sCisJCSIiOiBmdW5jdGlvbihjaGVj
a1NldCwgcGFydCwgaXNYTUwpeworCQkJdmFyIGRvbmVOYW1lID0gZG9uZSsrLCBjaGVja0ZuID0g
ZGlyQ2hlY2s7CisKKwkJCWlmICggIXBhcnQubWF0Y2goL1xXLykgKSB7CisJCQkJdmFyIG5vZGVD
aGVjayA9IHBhcnQgPSBpc1hNTCA/IHBhcnQgOiBwYXJ0LnRvVXBwZXJDYXNlKCk7CisJCQkJY2hl
Y2tGbiA9IGRpck5vZGVDaGVjazsKKwkJCX0KKworCQkJY2hlY2tGbigicGFyZW50Tm9kZSIsIHBh
cnQsIGRvbmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCk7CisJCX0sCisJCSJ+Ijog
ZnVuY3Rpb24oY2hlY2tTZXQsIHBhcnQsIGlzWE1MKXsKKwkJCXZhciBkb25lTmFtZSA9IGRvbmUr
KywgY2hlY2tGbiA9IGRpckNoZWNrOworCisJCQlpZiAoIHR5cGVvZiBwYXJ0ID09PSAic3RyaW5n
IiAmJiAhcGFydC5tYXRjaCgvXFcvKSApIHsKKwkJCQl2YXIgbm9kZUNoZWNrID0gcGFydCA9IGlz
WE1MID8gcGFydCA6IHBhcnQudG9VcHBlckNhc2UoKTsKKwkJCQljaGVja0ZuID0gZGlyTm9kZUNo
ZWNrOworCQkJfQorCisJCQljaGVja0ZuKCJwcmV2aW91c1NpYmxpbmciLCBwYXJ0LCBkb25lTmFt
ZSwgY2hlY2tTZXQsIG5vZGVDaGVjaywgaXNYTUwpOworCQl9CisJfSwKKwlmaW5kOiB7CisJCUlE
OiBmdW5jdGlvbihtYXRjaCwgY29udGV4dCwgaXNYTUwpeworCQkJaWYgKCB0eXBlb2YgY29udGV4
dC5nZXRFbGVtZW50QnlJZCAhPT0gInVuZGVmaW5lZCIgJiYgIWlzWE1MICkgeworCQkJCXZhciBt
ID0gY29udGV4dC5nZXRFbGVtZW50QnlJZChtYXRjaFsxXSk7CisJCQkJcmV0dXJuIG0gPyBbbV0g
OiBbXTsKKwkJCX0KKwkJfSwKKwkJTkFNRTogZnVuY3Rpb24obWF0Y2gsIGNvbnRleHQsIGlzWE1M
KXsKKwkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUgIT09ICJ1bmRlZmlu
ZWQiICkgeworCQkJCXZhciByZXQgPSBbXSwgcmVzdWx0cyA9IGNvbnRleHQuZ2V0RWxlbWVudHNC
eU5hbWUobWF0Y2hbMV0pOworCisJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gcmVzdWx0cy5sZW5n
dGg7IGkgPCBsOyBpKysgKSB7CisJCQkJCWlmICggcmVzdWx0c1tpXS5nZXRBdHRyaWJ1dGUoIm5h
bWUiKSA9PT0gbWF0Y2hbMV0gKSB7CisJCQkJCQlyZXQucHVzaCggcmVzdWx0c1tpXSApOworCQkJ
CQl9CisJCQkJfQorCisJCQkJcmV0dXJuIHJldC5sZW5ndGggPT09IDAgPyBudWxsIDogcmV0Owor
CQkJfQorCQl9LAorCQlUQUc6IGZ1bmN0aW9uKG1hdGNoLCBjb250ZXh0KXsKKwkJCXJldHVybiBj
b250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKG1hdGNoWzFdKTsKKwkJfQorCX0sCisJcHJlRmls
dGVyOiB7CisJCUNMQVNTOiBmdW5jdGlvbihtYXRjaCwgY3VyTG9vcCwgaW5wbGFjZSwgcmVzdWx0
LCBub3QsIGlzWE1MKXsKKwkJCW1hdGNoID0gIiAiICsgbWF0Y2hbMV0ucmVwbGFjZSgvXFwvZywg
IiIpICsgIiAiOworCisJCQlpZiAoIGlzWE1MICkgeworCQkJCXJldHVybiBtYXRjaDsKKwkJCX0K
KworCQkJZm9yICggdmFyIGkgPSAwLCBlbGVtOyAoZWxlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7
IGkrKyApIHsKKwkJCQlpZiAoIGVsZW0gKSB7CisJCQkJCWlmICggbm90IF4gKGVsZW0uY2xhc3NO
YW1lICYmICgiICIgKyBlbGVtLmNsYXNzTmFtZSArICIgIikuaW5kZXhPZihtYXRjaCkgPj0gMCkg
KSB7CisJCQkJCQlpZiAoICFpbnBsYWNlICkKKwkJCQkJCQlyZXN1bHQucHVzaCggZWxlbSApOwor
CQkJCQl9IGVsc2UgaWYgKCBpbnBsYWNlICkgeworCQkJCQkJY3VyTG9vcFtpXSA9IGZhbHNlOwor
CQkJCQl9CisJCQkJfQorCQkJfQorCisJCQlyZXR1cm4gZmFsc2U7CisJCX0sCisJCUlEOiBmdW5j
dGlvbihtYXRjaCl7CisJCQlyZXR1cm4gbWF0Y2hbMV0ucmVwbGFjZSgvXFwvZywgIiIpOworCQl9
LAorCQlUQUc6IGZ1bmN0aW9uKG1hdGNoLCBjdXJMb29wKXsKKwkJCWZvciAoIHZhciBpID0gMDsg
Y3VyTG9vcFtpXSA9PT0gZmFsc2U7IGkrKyApe30KKwkJCXJldHVybiBjdXJMb29wW2ldICYmIGlz
WE1MKGN1ckxvb3BbaV0pID8gbWF0Y2hbMV0gOiBtYXRjaFsxXS50b1VwcGVyQ2FzZSgpOworCQl9
LAorCQlDSElMRDogZnVuY3Rpb24obWF0Y2gpeworCQkJaWYgKCBtYXRjaFsxXSA9PSAibnRoIiAp
IHsKKwkJCQkvLyBwYXJzZSBlcXVhdGlvbnMgbGlrZSAnZXZlbicsICdvZGQnLCAnNScsICcybics
ICczbisyJywgJzRuLTEnLCAnLW4rNicKKwkJCQl2YXIgdGVzdCA9IC8oLT8pKFxkKiluKCg/Olwr
fC0pP1xkKikvLmV4ZWMoCisJCQkJCW1hdGNoWzJdID09ICJldmVuIiAmJiAiMm4iIHx8IG1hdGNo
WzJdID09ICJvZGQiICYmICIybisxIiB8fAorCQkJCQkhL1xELy50ZXN0KCBtYXRjaFsyXSApICYm
ICIwbisiICsgbWF0Y2hbMl0gfHwgbWF0Y2hbMl0pOworCisJCQkJLy8gY2FsY3VsYXRlIHRoZSBu
dW1iZXJzIChmaXJzdCluKyhsYXN0KSBpbmNsdWRpbmcgaWYgdGhleSBhcmUgbmVnYXRpdmUKKwkJ
CQltYXRjaFsyXSA9ICh0ZXN0WzFdICsgKHRlc3RbMl0gfHwgMSkpIC0gMDsKKwkJCQltYXRjaFsz
XSA9IHRlc3RbM10gLSAwOworCQkJfQorCisJCQkvLyBUT0RPOiBNb3ZlIHRvIG5vcm1hbCBjYWNo
aW5nIHN5c3RlbQorCQkJbWF0Y2hbMF0gPSBkb25lKys7CisKKwkJCXJldHVybiBtYXRjaDsKKwkJ
fSwKKwkJQVRUUjogZnVuY3Rpb24obWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90
LCBpc1hNTCl7CisJCQl2YXIgbmFtZSA9IG1hdGNoWzFdLnJlcGxhY2UoL1xcL2csICIiKTsKKwkJ
CQorCQkJaWYgKCAhaXNYTUwgJiYgRXhwci5hdHRyTWFwW25hbWVdICkgeworCQkJCW1hdGNoWzFd
ID0gRXhwci5hdHRyTWFwW25hbWVdOworCQkJfQorCisJCQlpZiAoIG1hdGNoWzJdID09PSAifj0i
ICkgeworCQkJCW1hdGNoWzRdID0gIiAiICsgbWF0Y2hbNF0gKyAiICI7CisJCQl9CisKKwkJCXJl
dHVybiBtYXRjaDsKKwkJfSwKKwkJUFNFVURPOiBmdW5jdGlvbihtYXRjaCwgY3VyTG9vcCwgaW5w
bGFjZSwgcmVzdWx0LCBub3QpeworCQkJaWYgKCBtYXRjaFsxXSA9PT0gIm5vdCIgKSB7CisJCQkJ
Ly8gSWYgd2UncmUgZGVhbGluZyB3aXRoIGEgY29tcGxleCBleHByZXNzaW9uLCBvciBhIHNpbXBs
ZSBvbmUKKwkJCQlpZiAoIG1hdGNoWzNdLm1hdGNoKGNodW5rZXIpLmxlbmd0aCA+IDEgfHwgL15c
dy8udGVzdChtYXRjaFszXSkgKSB7CisJCQkJCW1hdGNoWzNdID0gU2l6emxlKG1hdGNoWzNdLCBu
dWxsLCBudWxsLCBjdXJMb29wKTsKKwkJCQl9IGVsc2UgeworCQkJCQl2YXIgcmV0ID0gU2l6emxl
LmZpbHRlcihtYXRjaFszXSwgY3VyTG9vcCwgaW5wbGFjZSwgdHJ1ZSBeIG5vdCk7CisJCQkJCWlm
ICggIWlucGxhY2UgKSB7CisJCQkJCQlyZXN1bHQucHVzaC5hcHBseSggcmVzdWx0LCByZXQgKTsK
KwkJCQkJfQorCQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJfQorCQkJfSBlbHNlIGlmICggRXhwci5t
YXRjaC5QT1MudGVzdCggbWF0Y2hbMF0gKSB8fCBFeHByLm1hdGNoLkNISUxELnRlc3QoIG1hdGNo
WzBdICkgKSB7CisJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQkKKwkJCXJldHVybiBtYXRjaDsK
KwkJfSwKKwkJUE9TOiBmdW5jdGlvbihtYXRjaCl7CisJCQltYXRjaC51bnNoaWZ0KCB0cnVlICk7
CisJCQlyZXR1cm4gbWF0Y2g7CisJCX0KKwl9LAorCWZpbHRlcnM6IHsKKwkJZW5hYmxlZDogZnVu
Y3Rpb24oZWxlbSl7CisJCQlyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2UgJiYgZWxlbS50
eXBlICE9PSAiaGlkZGVuIjsKKwkJfSwKKwkJZGlzYWJsZWQ6IGZ1bmN0aW9uKGVsZW0peworCQkJ
cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IHRydWU7CisJCX0sCisJCWNoZWNrZWQ6IGZ1bmN0aW9u
KGVsZW0peworCQkJcmV0dXJuIGVsZW0uY2hlY2tlZCA9PT0gdHJ1ZTsKKwkJfSwKKwkJc2VsZWN0
ZWQ6IGZ1bmN0aW9uKGVsZW0peworCQkJLy8gQWNjZXNzaW5nIHRoaXMgcHJvcGVydHkgbWFrZXMg
c2VsZWN0ZWQtYnktZGVmYXVsdAorCQkJLy8gb3B0aW9ucyBpbiBTYWZhcmkgd29yayBwcm9wZXJs
eQorCQkJZWxlbS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7CisJCQlyZXR1cm4gZWxlbS5zZWxl
Y3RlZCA9PT0gdHJ1ZTsKKwkJfSwKKwkJcGFyZW50OiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVy
biAhIWVsZW0uZmlyc3RDaGlsZDsKKwkJfSwKKwkJZW1wdHk6IGZ1bmN0aW9uKGVsZW0peworCQkJ
cmV0dXJuICFlbGVtLmZpcnN0Q2hpbGQ7CisJCX0sCisJCWhhczogZnVuY3Rpb24oZWxlbSwgaSwg
bWF0Y2gpeworCQkJcmV0dXJuICEhU2l6emxlKCBtYXRjaFszXSwgZWxlbSApLmxlbmd0aDsKKwkJ
fSwKKwkJaGVhZGVyOiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAvaFxkL2kudGVzdCggZWxl
bS5ub2RlTmFtZSApOworCQl9LAorCQl0ZXh0OiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAi
dGV4dCIgPT09IGVsZW0udHlwZTsKKwkJfSwKKwkJcmFkaW86IGZ1bmN0aW9uKGVsZW0peworCQkJ
cmV0dXJuICJyYWRpbyIgPT09IGVsZW0udHlwZTsKKwkJfSwKKwkJY2hlY2tib3g6IGZ1bmN0aW9u
KGVsZW0peworCQkJcmV0dXJuICJjaGVja2JveCIgPT09IGVsZW0udHlwZTsKKwkJfSwKKwkJZmls
ZTogZnVuY3Rpb24oZWxlbSl7CisJCQlyZXR1cm4gImZpbGUiID09PSBlbGVtLnR5cGU7CisJCX0s
CisJCXBhc3N3b3JkOiBmdW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAicGFzc3dvcmQiID09PSBl
bGVtLnR5cGU7CisJCX0sCisJCXN1Ym1pdDogZnVuY3Rpb24oZWxlbSl7CisJCQlyZXR1cm4gInN1
Ym1pdCIgPT09IGVsZW0udHlwZTsKKwkJfSwKKwkJaW1hZ2U6IGZ1bmN0aW9uKGVsZW0peworCQkJ
cmV0dXJuICJpbWFnZSIgPT09IGVsZW0udHlwZTsKKwkJfSwKKwkJcmVzZXQ6IGZ1bmN0aW9uKGVs
ZW0peworCQkJcmV0dXJuICJyZXNldCIgPT09IGVsZW0udHlwZTsKKwkJfSwKKwkJYnV0dG9uOiBm
dW5jdGlvbihlbGVtKXsKKwkJCXJldHVybiAiYnV0dG9uIiA9PT0gZWxlbS50eXBlIHx8IGVsZW0u
bm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PT0gIkJVVFRPTiI7CisJCX0sCisJCWlucHV0OiBmdW5j
dGlvbihlbGVtKXsKKwkJCXJldHVybiAvaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9pLnRl
c3QoZWxlbS5ub2RlTmFtZSk7CisJCX0KKwl9LAorCXNldEZpbHRlcnM6IHsKKwkJZmlyc3Q6IGZ1
bmN0aW9uKGVsZW0sIGkpeworCQkJcmV0dXJuIGkgPT09IDA7CisJCX0sCisJCWxhc3Q6IGZ1bmN0
aW9uKGVsZW0sIGksIG1hdGNoLCBhcnJheSl7CisJCQlyZXR1cm4gaSA9PT0gYXJyYXkubGVuZ3Ro
IC0gMTsKKwkJfSwKKwkJZXZlbjogZnVuY3Rpb24oZWxlbSwgaSl7CisJCQlyZXR1cm4gaSAlIDIg
PT09IDA7CisJCX0sCisJCW9kZDogZnVuY3Rpb24oZWxlbSwgaSl7CisJCQlyZXR1cm4gaSAlIDIg
PT09IDE7CisJCX0sCisJCWx0OiBmdW5jdGlvbihlbGVtLCBpLCBtYXRjaCl7CisJCQlyZXR1cm4g
aSA8IG1hdGNoWzNdIC0gMDsKKwkJfSwKKwkJZ3Q6IGZ1bmN0aW9uKGVsZW0sIGksIG1hdGNoKXsK
KwkJCXJldHVybiBpID4gbWF0Y2hbM10gLSAwOworCQl9LAorCQludGg6IGZ1bmN0aW9uKGVsZW0s
IGksIG1hdGNoKXsKKwkJCXJldHVybiBtYXRjaFszXSAtIDAgPT0gaTsKKwkJfSwKKwkJZXE6IGZ1
bmN0aW9uKGVsZW0sIGksIG1hdGNoKXsKKwkJCXJldHVybiBtYXRjaFszXSAtIDAgPT0gaTsKKwkJ
fQorCX0sCisJZmlsdGVyOiB7CisJCVBTRVVETzogZnVuY3Rpb24oZWxlbSwgbWF0Y2gsIGksIGFy
cmF5KXsKKwkJCXZhciBuYW1lID0gbWF0Y2hbMV0sIGZpbHRlciA9IEV4cHIuZmlsdGVyc1sgbmFt
ZSBdOworCisJCQlpZiAoIGZpbHRlciApIHsKKwkJCQlyZXR1cm4gZmlsdGVyKCBlbGVtLCBpLCBt
YXRjaCwgYXJyYXkgKTsKKwkJCX0gZWxzZSBpZiAoIG5hbWUgPT09ICJjb250YWlucyIgKSB7CisJ
CQkJcmV0dXJuIChlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJUZXh0IHx8ICIiKS5pbmRl
eE9mKG1hdGNoWzNdKSA+PSAwOworCQkJfSBlbHNlIGlmICggbmFtZSA9PT0gIm5vdCIgKSB7CisJ
CQkJdmFyIG5vdCA9IG1hdGNoWzNdOworCisJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gbm90Lmxl
bmd0aDsgaSA8IGw7IGkrKyApIHsKKwkJCQkJaWYgKCBub3RbaV0gPT09IGVsZW0gKSB7CisJCQkJ
CQlyZXR1cm4gZmFsc2U7CisJCQkJCX0KKwkJCQl9CisKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0K
KwkJfSwKKwkJQ0hJTEQ6IGZ1bmN0aW9uKGVsZW0sIG1hdGNoKXsKKwkJCXZhciB0eXBlID0gbWF0
Y2hbMV0sIG5vZGUgPSBlbGVtOworCQkJc3dpdGNoICh0eXBlKSB7CisJCQkJY2FzZSAnb25seSc6
CisJCQkJY2FzZSAnZmlyc3QnOgorCQkJCQl3aGlsZSAobm9kZSA9IG5vZGUucHJldmlvdXNTaWJs
aW5nKSAgeworCQkJCQkJaWYgKCBub2RlLm5vZGVUeXBlID09PSAxICkgcmV0dXJuIGZhbHNlOwor
CQkJCQl9CisJCQkJCWlmICggdHlwZSA9PSAnZmlyc3QnKSByZXR1cm4gdHJ1ZTsKKwkJCQkJbm9k
ZSA9IGVsZW07CisJCQkJY2FzZSAnbGFzdCc6CisJCQkJCXdoaWxlIChub2RlID0gbm9kZS5uZXh0
U2libGluZykgIHsKKwkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSApIHJldHVybiBmYWxz
ZTsKKwkJCQkJfQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQljYXNlICdudGgnOgorCQkJCQl2YXIg
Zmlyc3QgPSBtYXRjaFsyXSwgbGFzdCA9IG1hdGNoWzNdOworCisJCQkJCWlmICggZmlyc3QgPT0g
MSAmJiBsYXN0ID09IDAgKSB7CisJCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQkJfQorCQkJCQkKKwkJ
CQkJdmFyIGRvbmVOYW1lID0gbWF0Y2hbMF0sCisJCQkJCQlwYXJlbnQgPSBlbGVtLnBhcmVudE5v
ZGU7CisJCisJCQkJCWlmICggcGFyZW50ICYmIChwYXJlbnQuc2l6Y2FjaGUgIT09IGRvbmVOYW1l
IHx8ICFlbGVtLm5vZGVJbmRleCkgKSB7CisJCQkJCQl2YXIgY291bnQgPSAwOworCQkJCQkJZm9y
ICggbm9kZSA9IHBhcmVudC5maXJzdENoaWxkOyBub2RlOyBub2RlID0gbm9kZS5uZXh0U2libGlu
ZyApIHsKKwkJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7CisJCQkJCQkJCW5vZGUu
bm9kZUluZGV4ID0gKytjb3VudDsKKwkJCQkJCQl9CisJCQkJCQl9IAorCQkJCQkJcGFyZW50LnNp
emNhY2hlID0gZG9uZU5hbWU7CisJCQkJCX0KKwkJCQkJCisJCQkJCXZhciBkaWZmID0gZWxlbS5u
b2RlSW5kZXggLSBsYXN0OworCQkJCQlpZiAoIGZpcnN0ID09IDAgKSB7CisJCQkJCQlyZXR1cm4g
ZGlmZiA9PSAwOworCQkJCQl9IGVsc2UgeworCQkJCQkJcmV0dXJuICggZGlmZiAlIGZpcnN0ID09
IDAgJiYgZGlmZiAvIGZpcnN0ID49IDAgKTsKKwkJCQkJfQorCQkJfQorCQl9LAorCQlJRDogZnVu
Y3Rpb24oZWxlbSwgbWF0Y2gpeworCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgZWxl
bS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IG1hdGNoOworCQl9LAorCQlUQUc6IGZ1bmN0aW9uKGVs
ZW0sIG1hdGNoKXsKKwkJCXJldHVybiAobWF0Y2ggPT09ICIqIiAmJiBlbGVtLm5vZGVUeXBlID09
PSAxKSB8fCBlbGVtLm5vZGVOYW1lID09PSBtYXRjaDsKKwkJfSwKKwkJQ0xBU1M6IGZ1bmN0aW9u
KGVsZW0sIG1hdGNoKXsKKwkJCXJldHVybiAoIiAiICsgKGVsZW0uY2xhc3NOYW1lIHx8IGVsZW0u
Z2V0QXR0cmlidXRlKCJjbGFzcyIpKSArICIgIikKKwkJCQkuaW5kZXhPZiggbWF0Y2ggKSA+IC0x
OworCQl9LAorCQlBVFRSOiBmdW5jdGlvbihlbGVtLCBtYXRjaCl7CisJCQl2YXIgbmFtZSA9IG1h
dGNoWzFdLAorCQkJCXJlc3VsdCA9IEV4cHIuYXR0ckhhbmRsZVsgbmFtZSBdID8KKwkJCQkJRXhw
ci5hdHRySGFuZGxlWyBuYW1lIF0oIGVsZW0gKSA6CisJCQkJCWVsZW1bIG5hbWUgXSAhPSBudWxs
ID8KKwkJCQkJCWVsZW1bIG5hbWUgXSA6CisJCQkJCQllbGVtLmdldEF0dHJpYnV0ZSggbmFtZSAp
LAorCQkJCXZhbHVlID0gcmVzdWx0ICsgIiIsCisJCQkJdHlwZSA9IG1hdGNoWzJdLAorCQkJCWNo
ZWNrID0gbWF0Y2hbNF07CisKKwkJCXJldHVybiByZXN1bHQgPT0gbnVsbCA/CisJCQkJdHlwZSA9
PT0gIiE9IiA6CisJCQkJdHlwZSA9PT0gIj0iID8KKwkJCQl2YWx1ZSA9PT0gY2hlY2sgOgorCQkJ
CXR5cGUgPT09ICIqPSIgPworCQkJCXZhbHVlLmluZGV4T2YoY2hlY2spID49IDAgOgorCQkJCXR5
cGUgPT09ICJ+PSIgPworCQkJCSgiICIgKyB2YWx1ZSArICIgIikuaW5kZXhPZihjaGVjaykgPj0g
MCA6CisJCQkJIWNoZWNrID8KKwkJCQl2YWx1ZSAmJiByZXN1bHQgIT09IGZhbHNlIDoKKwkJCQl0
eXBlID09PSAiIT0iID8KKwkJCQl2YWx1ZSAhPSBjaGVjayA6CisJCQkJdHlwZSA9PT0gIl49IiA/
CisJCQkJdmFsdWUuaW5kZXhPZihjaGVjaykgPT09IDAgOgorCQkJCXR5cGUgPT09ICIkPSIgPwor
CQkJCXZhbHVlLnN1YnN0cih2YWx1ZS5sZW5ndGggLSBjaGVjay5sZW5ndGgpID09PSBjaGVjayA6
CisJCQkJdHlwZSA9PT0gInw9IiA/CisJCQkJdmFsdWUgPT09IGNoZWNrIHx8IHZhbHVlLnN1YnN0
cigwLCBjaGVjay5sZW5ndGggKyAxKSA9PT0gY2hlY2sgKyAiLSIgOgorCQkJCWZhbHNlOworCQl9
LAorCQlQT1M6IGZ1bmN0aW9uKGVsZW0sIG1hdGNoLCBpLCBhcnJheSl7CisJCQl2YXIgbmFtZSA9
IG1hdGNoWzJdLCBmaWx0ZXIgPSBFeHByLnNldEZpbHRlcnNbIG5hbWUgXTsKKworCQkJaWYgKCBm
aWx0ZXIgKSB7CisJCQkJcmV0dXJuIGZpbHRlciggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICk7CisJ
CQl9CisJCX0KKwl9Cit9OworCit2YXIgb3JpZ1BPUyA9IEV4cHIubWF0Y2guUE9TOworCitmb3Ig
KCB2YXIgdHlwZSBpbiBFeHByLm1hdGNoICkgeworCUV4cHIubWF0Y2hbIHR5cGUgXSA9IFJlZ0V4
cCggRXhwci5tYXRjaFsgdHlwZSBdLnNvdXJjZSArIC8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkv
LnNvdXJjZSApOworfQorCit2YXIgbWFrZUFycmF5ID0gZnVuY3Rpb24oYXJyYXksIHJlc3VsdHMp
IHsKKwlhcnJheSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKCBhcnJheSApOworCisJaWYg
KCByZXN1bHRzICkgeworCQlyZXN1bHRzLnB1c2guYXBwbHkoIHJlc3VsdHMsIGFycmF5ICk7CisJ
CXJldHVybiByZXN1bHRzOworCX0KKwkKKwlyZXR1cm4gYXJyYXk7Cit9OworCisvLyBQZXJmb3Jt
IGEgc2ltcGxlIGNoZWNrIHRvIGRldGVybWluZSBpZiB0aGUgYnJvd3NlciBpcyBjYXBhYmxlIG9m
CisvLyBjb252ZXJ0aW5nIGEgTm9kZUxpc3QgdG8gYW4gYXJyYXkgdXNpbmcgYnVpbHRpbiBtZXRo
b2RzLgordHJ5IHsKKwlBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCggZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LmNoaWxkTm9kZXMgKTsKKworLy8gUHJvdmlkZSBhIGZhbGxiYWNrIG1ldGhvZCBp
ZiBpdCBkb2VzIG5vdCB3b3JrCit9IGNhdGNoKGUpeworCW1ha2VBcnJheSA9IGZ1bmN0aW9uKGFy
cmF5LCByZXN1bHRzKSB7CisJCXZhciByZXQgPSByZXN1bHRzIHx8IFtdOworCisJCWlmICggdG9T
dHJpbmcuY2FsbChhcnJheSkgPT09ICJbb2JqZWN0IEFycmF5XSIgKSB7CisJCQlBcnJheS5wcm90
b3R5cGUucHVzaC5hcHBseSggcmV0LCBhcnJheSApOworCQl9IGVsc2UgeworCQkJaWYgKCB0eXBl
b2YgYXJyYXkubGVuZ3RoID09PSAibnVtYmVyIiApIHsKKwkJCQlmb3IgKCB2YXIgaSA9IDAsIGwg
PSBhcnJheS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CisJCQkJCXJldC5wdXNoKCBhcnJheVtpXSAp
OworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJZm9yICggdmFyIGkgPSAwOyBhcnJheVtpXTsgaSsr
ICkgeworCQkJCQlyZXQucHVzaCggYXJyYXlbaV0gKTsKKwkJCQl9CisJCQl9CisJCX0KKworCQly
ZXR1cm4gcmV0OworCX07Cit9CisKK3ZhciBzb3J0T3JkZXI7CisKK2lmICggZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uICkgeworCXNvcnRPcmRlciA9IGZ1
bmN0aW9uKCBhLCBiICkgeworCQl2YXIgcmV0ID0gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihi
KSAmIDQgPyAtMSA6IGEgPT09IGIgPyAwIDogMTsKKwkJaWYgKCByZXQgPT09IDAgKSB7CisJCQlo
YXNEdXBsaWNhdGUgPSB0cnVlOworCQl9CisJCXJldHVybiByZXQ7CisJfTsKK30gZWxzZSBpZiAo
ICJzb3VyY2VJbmRleCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICkgeworCXNvcnRPcmRl
ciA9IGZ1bmN0aW9uKCBhLCBiICkgeworCQl2YXIgcmV0ID0gYS5zb3VyY2VJbmRleCAtIGIuc291
cmNlSW5kZXg7CisJCWlmICggcmV0ID09PSAwICkgeworCQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsK
KwkJfQorCQlyZXR1cm4gcmV0OworCX07Cit9IGVsc2UgaWYgKCBkb2N1bWVudC5jcmVhdGVSYW5n
ZSApIHsKKwlzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHsKKwkJdmFyIGFSYW5nZSA9IGEu
b3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpLCBiUmFuZ2UgPSBiLm93bmVyRG9jdW1lbnQuY3Jl
YXRlUmFuZ2UoKTsKKwkJYVJhbmdlLnNlbGVjdE5vZGUoYSk7CisJCWFSYW5nZS5jb2xsYXBzZSh0
cnVlKTsKKwkJYlJhbmdlLnNlbGVjdE5vZGUoYik7CisJCWJSYW5nZS5jb2xsYXBzZSh0cnVlKTsK
KwkJdmFyIHJldCA9IGFSYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2UuU1RBUlRfVE9f
RU5ELCBiUmFuZ2UpOworCQlpZiAoIHJldCA9PT0gMCApIHsKKwkJCWhhc0R1cGxpY2F0ZSA9IHRy
dWU7CisJCX0KKwkJcmV0dXJuIHJldDsKKwl9OworfQorCisvLyBDaGVjayB0byBzZWUgaWYgdGhl
IGJyb3dzZXIgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lIHdoZW4KKy8vIHF1ZXJ5aW5nIGJ5IGdl
dEVsZW1lbnRCeUlkIChhbmQgcHJvdmlkZSBhIHdvcmthcm91bmQpCisoZnVuY3Rpb24oKXsKKwkv
LyBXZSdyZSBnb2luZyB0byBpbmplY3QgYSBmYWtlIGlucHV0IGVsZW1lbnQgd2l0aCBhIHNwZWNp
ZmllZCBuYW1lCisJdmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIiksCisJ
CWlkID0gInNjcmlwdCIgKyAobmV3IERhdGUpLmdldFRpbWUoKTsKKwlmb3JtLmlubmVySFRNTCA9
ICI8aW5wdXQgbmFtZT0nIiArIGlkICsgIicvPiI7CisKKwkvLyBJbmplY3QgaXQgaW50byB0aGUg
cm9vdCBlbGVtZW50LCBjaGVjayBpdHMgc3RhdHVzLCBhbmQgcmVtb3ZlIGl0IHF1aWNrbHkKKwl2
YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKwlyb290Lmluc2VydEJlZm9yZSgg
Zm9ybSwgcm9vdC5maXJzdENoaWxkICk7CisKKwkvLyBUaGUgd29ya2Fyb3VuZCBoYXMgdG8gZG8g
YWRkaXRpb25hbCBjaGVja3MgYWZ0ZXIgYSBnZXRFbGVtZW50QnlJZAorCS8vIFdoaWNoIHNsb3dz
IHRoaW5ncyBkb3duIGZvciBvdGhlciBicm93c2VycyAoaGVuY2UgdGhlIGJyYW5jaGluZykKKwlp
ZiAoICEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICkgKSB7CisJCUV4cHIuZmluZC5JRCA9
IGZ1bmN0aW9uKG1hdGNoLCBjb250ZXh0LCBpc1hNTCl7CisJCQlpZiAoIHR5cGVvZiBjb250ZXh0
LmdldEVsZW1lbnRCeUlkICE9PSAidW5kZWZpbmVkIiAmJiAhaXNYTUwgKSB7CisJCQkJdmFyIG0g
PSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKG1hdGNoWzFdKTsKKwkJCQlyZXR1cm4gbSA/IG0uaWQg
PT09IG1hdGNoWzFdIHx8IHR5cGVvZiBtLmdldEF0dHJpYnV0ZU5vZGUgIT09ICJ1bmRlZmluZWQi
ICYmIG0uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKS5ub2RlVmFsdWUgPT09IG1hdGNoWzFdID8gW21d
IDogdW5kZWZpbmVkIDogW107CisJCQl9CisJCX07CisKKwkJRXhwci5maWx0ZXIuSUQgPSBmdW5j
dGlvbihlbGVtLCBtYXRjaCl7CisJCQl2YXIgbm9kZSA9IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0
ZU5vZGUgIT09ICJ1bmRlZmluZWQiICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTsKKwkJ
CXJldHVybiBlbGVtLm5vZGVUeXBlID09PSAxICYmIG5vZGUgJiYgbm9kZS5ub2RlVmFsdWUgPT09
IG1hdGNoOworCQl9OworCX0KKworCXJvb3QucmVtb3ZlQ2hpbGQoIGZvcm0gKTsKK30pKCk7CisK
KyhmdW5jdGlvbigpeworCS8vIENoZWNrIHRvIHNlZSBpZiB0aGUgYnJvd3NlciByZXR1cm5zIG9u
bHkgZWxlbWVudHMKKwkvLyB3aGVuIGRvaW5nIGdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikKKwor
CS8vIENyZWF0ZSBhIGZha2UgZWxlbWVudAorCXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKwlkaXYuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIp
ICk7CisKKwkvLyBNYWtlIHN1cmUgbm8gY29tbWVudHMgYXJlIGZvdW5kCisJaWYgKCBkaXYuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGggPiAwICkgeworCQlFeHByLmZpbmQuVEFHID0g
ZnVuY3Rpb24obWF0Y2gsIGNvbnRleHQpeworCQkJdmFyIHJlc3VsdHMgPSBjb250ZXh0LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKG1hdGNoWzFdKTsKKworCQkJLy8gRmlsdGVyIG91dCBwb3NzaWJsZSBj
b21tZW50cworCQkJaWYgKCBtYXRjaFsxXSA9PT0gIioiICkgeworCQkJCXZhciB0bXAgPSBbXTsK
KworCQkJCWZvciAoIHZhciBpID0gMDsgcmVzdWx0c1tpXTsgaSsrICkgeworCQkJCQlpZiAoIHJl
c3VsdHNbaV0ubm9kZVR5cGUgPT09IDEgKSB7CisJCQkJCQl0bXAucHVzaCggcmVzdWx0c1tpXSAp
OworCQkJCQl9CisJCQkJfQorCisJCQkJcmVzdWx0cyA9IHRtcDsKKwkJCX0KKworCQkJcmV0dXJu
IHJlc3VsdHM7CisJCX07CisJfQorCisJLy8gQ2hlY2sgdG8gc2VlIGlmIGFuIGF0dHJpYnV0ZSBy
ZXR1cm5zIG5vcm1hbGl6ZWQgaHJlZiBhdHRyaWJ1dGVzCisJZGl2LmlubmVySFRNTCA9ICI8YSBo
cmVmPScjJz48L2E+IjsKKwlpZiAoIGRpdi5maXJzdENoaWxkICYmIHR5cGVvZiBkaXYuZmlyc3RD
aGlsZC5nZXRBdHRyaWJ1dGUgIT09ICJ1bmRlZmluZWQiICYmCisJCQlkaXYuZmlyc3RDaGlsZC5n
ZXRBdHRyaWJ1dGUoImhyZWYiKSAhPT0gIiMiICkgeworCQlFeHByLmF0dHJIYW5kbGUuaHJlZiA9
IGZ1bmN0aW9uKGVsZW0peworCQkJcmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCJocmVmIiwgMik7
CisJCX07CisJfQorfSkoKTsKKworaWYgKCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsICkgKGZ1
bmN0aW9uKCl7CisJdmFyIG9sZFNpenpsZSA9IFNpenpsZSwgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisJZGl2LmlubmVySFRNTCA9ICI8cCBjbGFzcz0nVEVTVCc+PC9wPiI7
CisKKwkvLyBTYWZhcmkgY2FuJ3QgaGFuZGxlIHVwcGVyY2FzZSBvciB1bmljb2RlIGNoYXJhY3Rl
cnMgd2hlbgorCS8vIGluIHF1aXJrcyBtb2RlLgorCWlmICggZGl2LnF1ZXJ5U2VsZWN0b3JBbGwg
JiYgZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoID09PSAwICkgeworCQlyZXR1
cm47CisJfQorCQorCVNpenpsZSA9IGZ1bmN0aW9uKHF1ZXJ5LCBjb250ZXh0LCBleHRyYSwgc2Vl
ZCl7CisJCWNvbnRleHQgPSBjb250ZXh0IHx8IGRvY3VtZW50OworCisJCS8vIE9ubHkgdXNlIHF1
ZXJ5U2VsZWN0b3JBbGwgb24gbm9uLVhNTCBkb2N1bWVudHMKKwkJLy8gKElEIHNlbGVjdG9ycyBk
b24ndCB3b3JrIGluIG5vbi1IVE1MIGRvY3VtZW50cykKKwkJaWYgKCAhc2VlZCAmJiBjb250ZXh0
Lm5vZGVUeXBlID09PSA5ICYmICFpc1hNTChjb250ZXh0KSApIHsKKwkJCXRyeSB7CisJCQkJcmV0
dXJuIG1ha2VBcnJheSggY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKHF1ZXJ5KSwgZXh0cmEgKTsK
KwkJCX0gY2F0Y2goZSl7fQorCQl9CisJCQorCQlyZXR1cm4gb2xkU2l6emxlKHF1ZXJ5LCBjb250
ZXh0LCBleHRyYSwgc2VlZCk7CisJfTsKKworCVNpenpsZS5maW5kID0gb2xkU2l6emxlLmZpbmQ7
CisJU2l6emxlLmZpbHRlciA9IG9sZFNpenpsZS5maWx0ZXI7CisJU2l6emxlLnNlbGVjdG9ycyA9
IG9sZFNpenpsZS5zZWxlY3RvcnM7CisJU2l6emxlLm1hdGNoZXMgPSBvbGRTaXp6bGUubWF0Y2hl
czsKK30pKCk7CisKK2lmICggZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAmJiBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSApIChmdW5jdGlvbigp
eworCXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKwlkaXYuaW5uZXJI
VE1MID0gIjxkaXYgY2xhc3M9J3Rlc3QgZSc+PC9kaXY+PGRpdiBjbGFzcz0ndGVzdCc+PC9kaXY+
IjsKKworCS8vIE9wZXJhIGNhbid0IGZpbmQgYSBzZWNvbmQgY2xhc3NuYW1lIChpbiA5LjYpCisJ
aWYgKCBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCA9PT0gMCApCisJCXJl
dHVybjsKKworCS8vIFNhZmFyaSBjYWNoZXMgY2xhc3MgYXR0cmlidXRlcywgZG9lc24ndCBjYXRj
aCBjaGFuZ2VzIChpbiAzLjIpCisJZGl2Lmxhc3RDaGlsZC5jbGFzc05hbWUgPSAiZSI7CisKKwlp
ZiAoIGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoID09PSAxICkKKwkJcmV0
dXJuOworCisJRXhwci5vcmRlci5zcGxpY2UoMSwgMCwgIkNMQVNTIik7CisJRXhwci5maW5kLkNM
QVNTID0gZnVuY3Rpb24obWF0Y2gsIGNvbnRleHQsIGlzWE1MKSB7CisJCWlmICggdHlwZW9mIGNv
bnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAhPT0gInVuZGVmaW5lZCIgJiYgIWlzWE1MICkg
eworCQkJcmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShtYXRjaFsxXSk7CisJ
CX0KKwl9OworfSkoKTsKKworZnVuY3Rpb24gZGlyTm9kZUNoZWNrKCBkaXIsIGN1ciwgZG9uZU5h
bWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICkgeworCXZhciBzaWJEaXIgPSBkaXIgPT0g
InByZXZpb3VzU2libGluZyIgJiYgIWlzWE1MOworCWZvciAoIHZhciBpID0gMCwgbCA9IGNoZWNr
U2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKKwkJdmFyIGVsZW0gPSBjaGVja1NldFtpXTsKKwkJ
aWYgKCBlbGVtICkgeworCQkJaWYgKCBzaWJEaXIgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApewor
CQkJCWVsZW0uc2l6Y2FjaGUgPSBkb25lTmFtZTsKKwkJCQllbGVtLnNpenNldCA9IGk7CisJCQl9
CisJCQllbGVtID0gZWxlbVtkaXJdOworCQkJdmFyIG1hdGNoID0gZmFsc2U7CisKKwkJCXdoaWxl
ICggZWxlbSApIHsKKwkJCQlpZiAoIGVsZW0uc2l6Y2FjaGUgPT09IGRvbmVOYW1lICkgeworCQkJ
CQltYXRjaCA9IGNoZWNrU2V0W2VsZW0uc2l6c2V0XTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJ
CQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmICFpc1hNTCApeworCQkJCQllbGVtLnNpemNh
Y2hlID0gZG9uZU5hbWU7CisJCQkJCWVsZW0uc2l6c2V0ID0gaTsKKwkJCQl9CisKKwkJCQlpZiAo
IGVsZW0ubm9kZU5hbWUgPT09IGN1ciApIHsKKwkJCQkJbWF0Y2ggPSBlbGVtOworCQkJCQlicmVh
azsKKwkJCQl9CisKKwkJCQllbGVtID0gZWxlbVtkaXJdOworCQkJfQorCisJCQljaGVja1NldFtp
XSA9IG1hdGNoOworCQl9CisJfQorfQorCitmdW5jdGlvbiBkaXJDaGVjayggZGlyLCBjdXIsIGRv
bmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApIHsKKwl2YXIgc2liRGlyID0gZGly
ID09ICJwcmV2aW91c1NpYmxpbmciICYmICFpc1hNTDsKKwlmb3IgKCB2YXIgaSA9IDAsIGwgPSBj
aGVja1NldC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CisJCXZhciBlbGVtID0gY2hlY2tTZXRbaV07
CisJCWlmICggZWxlbSApIHsKKwkJCWlmICggc2liRGlyICYmIGVsZW0ubm9kZVR5cGUgPT09IDEg
KSB7CisJCQkJZWxlbS5zaXpjYWNoZSA9IGRvbmVOYW1lOworCQkJCWVsZW0uc2l6c2V0ID0gaTsK
KwkJCX0KKwkJCWVsZW0gPSBlbGVtW2Rpcl07CisJCQl2YXIgbWF0Y2ggPSBmYWxzZTsKKworCQkJ
d2hpbGUgKCBlbGVtICkgeworCQkJCWlmICggZWxlbS5zaXpjYWNoZSA9PT0gZG9uZU5hbWUgKSB7
CisJCQkJCW1hdGNoID0gY2hlY2tTZXRbZWxlbS5zaXpzZXRdOworCQkJCQlicmVhazsKKwkJCQl9
CisKKwkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CisJCQkJCWlmICggIWlzWE1MICkg
eworCQkJCQkJZWxlbS5zaXpjYWNoZSA9IGRvbmVOYW1lOworCQkJCQkJZWxlbS5zaXpzZXQgPSBp
OworCQkJCQl9CisJCQkJCWlmICggdHlwZW9mIGN1ciAhPT0gInN0cmluZyIgKSB7CisJCQkJCQlp
ZiAoIGVsZW0gPT09IGN1ciApIHsKKwkJCQkJCQltYXRjaCA9IHRydWU7CisJCQkJCQkJYnJlYWs7
CisJCQkJCQl9CisKKwkJCQkJfSBlbHNlIGlmICggU2l6emxlLmZpbHRlciggY3VyLCBbZWxlbV0g
KS5sZW5ndGggPiAwICkgeworCQkJCQkJbWF0Y2ggPSBlbGVtOworCQkJCQkJYnJlYWs7CisJCQkJ
CX0KKwkJCQl9CisKKwkJCQllbGVtID0gZWxlbVtkaXJdOworCQkJfQorCisJCQljaGVja1NldFtp
XSA9IG1hdGNoOworCQl9CisJfQorfQorCit2YXIgY29udGFpbnMgPSBkb2N1bWVudC5jb21wYXJl
RG9jdW1lbnRQb3NpdGlvbiA/ICBmdW5jdGlvbihhLCBiKXsKKwlyZXR1cm4gYS5jb21wYXJlRG9j
dW1lbnRQb3NpdGlvbihiKSAmIDE2OworfSA6IGZ1bmN0aW9uKGEsIGIpeworCXJldHVybiBhICE9
PSBiICYmIChhLmNvbnRhaW5zID8gYS5jb250YWlucyhiKSA6IHRydWUpOworfTsKKwordmFyIGlz
WE1MID0gZnVuY3Rpb24oZWxlbSl7CisJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDkgJiYgZWxl
bS5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWUgIT09ICJIVE1MIiB8fAorCQkhIWVsZW0ub3duZXJE
b2N1bWVudCAmJiBpc1hNTCggZWxlbS5vd25lckRvY3VtZW50ICk7Cit9OworCit2YXIgcG9zUHJv
Y2VzcyA9IGZ1bmN0aW9uKHNlbGVjdG9yLCBjb250ZXh0KXsKKwl2YXIgdG1wU2V0ID0gW10sIGxh
dGVyID0gIiIsIG1hdGNoLAorCQlyb290ID0gY29udGV4dC5ub2RlVHlwZSA/IFtjb250ZXh0XSA6
IGNvbnRleHQ7CisKKwkvLyBQb3NpdGlvbiBzZWxlY3RvcnMgbXVzdCBiZSBkb25lIGFmdGVyIHRo
ZSBmaWx0ZXIKKwkvLyBBbmQgc28gbXVzdCA6bm90KHBvc2l0aW9uYWwpIHNvIHdlIG1vdmUgYWxs
IFBTRVVET3MgdG8gdGhlIGVuZAorCXdoaWxlICggKG1hdGNoID0gRXhwci5tYXRjaC5QU0VVRE8u
ZXhlYyggc2VsZWN0b3IgKSkgKSB7CisJCWxhdGVyICs9IG1hdGNoWzBdOworCQlzZWxlY3RvciA9
IHNlbGVjdG9yLnJlcGxhY2UoIEV4cHIubWF0Y2guUFNFVURPLCAiIiApOworCX0KKworCXNlbGVj
dG9yID0gRXhwci5yZWxhdGl2ZVtzZWxlY3Rvcl0gPyBzZWxlY3RvciArICIqIiA6IHNlbGVjdG9y
OworCisJZm9yICggdmFyIGkgPSAwLCBsID0gcm9vdC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CisJ
CVNpenpsZSggc2VsZWN0b3IsIHJvb3RbaV0sIHRtcFNldCApOworCX0KKworCXJldHVybiBTaXp6
bGUuZmlsdGVyKCBsYXRlciwgdG1wU2V0ICk7Cit9OworCisvLyBFWFBPU0UKK2pRdWVyeS5maW5k
ID0gU2l6emxlOworalF1ZXJ5LmZpbHRlciA9IFNpenpsZS5maWx0ZXI7CitqUXVlcnkuZXhwciA9
IFNpenpsZS5zZWxlY3RvcnM7CitqUXVlcnkuZXhwclsiOiJdID0galF1ZXJ5LmV4cHIuZmlsdGVy
czsKKworU2l6emxlLnNlbGVjdG9ycy5maWx0ZXJzLmhpZGRlbiA9IGZ1bmN0aW9uKGVsZW0pewor
CXJldHVybiBlbGVtLm9mZnNldFdpZHRoID09PSAwIHx8IGVsZW0ub2Zmc2V0SGVpZ2h0ID09PSAw
OworfTsKKworU2l6emxlLnNlbGVjdG9ycy5maWx0ZXJzLnZpc2libGUgPSBmdW5jdGlvbihlbGVt
KXsKKwlyZXR1cm4gZWxlbS5vZmZzZXRXaWR0aCA+IDAgfHwgZWxlbS5vZmZzZXRIZWlnaHQgPiAw
OworfTsKKworU2l6emxlLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkID0gZnVuY3Rpb24oZWxl
bSl7CisJcmV0dXJuIGpRdWVyeS5ncmVwKGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKGZuKXsKKwkJ
cmV0dXJuIGVsZW0gPT09IGZuLmVsZW07CisJfSkubGVuZ3RoOworfTsKKworalF1ZXJ5Lm11bHRp
RmlsdGVyID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1zLCBub3QgKSB7CisJaWYgKCBub3QgKSB7CisJ
CWV4cHIgPSAiOm5vdCgiICsgZXhwciArICIpIjsKKwl9CisKKwlyZXR1cm4gU2l6emxlLm1hdGNo
ZXMoZXhwciwgZWxlbXMpOworfTsKKworalF1ZXJ5LmRpciA9IGZ1bmN0aW9uKCBlbGVtLCBkaXIg
KXsKKwl2YXIgbWF0Y2hlZCA9IFtdLCBjdXIgPSBlbGVtW2Rpcl07CisJd2hpbGUgKCBjdXIgJiYg
Y3VyICE9IGRvY3VtZW50ICkgeworCQlpZiAoIGN1ci5ub2RlVHlwZSA9PSAxICkKKwkJCW1hdGNo
ZWQucHVzaCggY3VyICk7CisJCWN1ciA9IGN1cltkaXJdOworCX0KKwlyZXR1cm4gbWF0Y2hlZDsK
K307CisKK2pRdWVyeS5udGggPSBmdW5jdGlvbihjdXIsIHJlc3VsdCwgZGlyLCBlbGVtKXsKKwly
ZXN1bHQgPSByZXN1bHQgfHwgMTsKKwl2YXIgbnVtID0gMDsKKworCWZvciAoIDsgY3VyOyBjdXIg
PSBjdXJbZGlyXSApCisJCWlmICggY3VyLm5vZGVUeXBlID09IDEgJiYgKytudW0gPT0gcmVzdWx0
ICkKKwkJCWJyZWFrOworCisJcmV0dXJuIGN1cjsKK307CisKK2pRdWVyeS5zaWJsaW5nID0gZnVu
Y3Rpb24obiwgZWxlbSl7CisJdmFyIHIgPSBbXTsKKworCWZvciAoIDsgbjsgbiA9IG4ubmV4dFNp
YmxpbmcgKSB7CisJCWlmICggbi5ub2RlVHlwZSA9PSAxICYmIG4gIT0gZWxlbSApCisJCQlyLnB1
c2goIG4gKTsKKwl9CisKKwlyZXR1cm4gcjsKK307CisKK3JldHVybjsKKword2luZG93LlNpenps
ZSA9IFNpenpsZTsKKworfSkoKTsKKy8qCisgKiBBIG51bWJlciBvZiBoZWxwZXIgZnVuY3Rpb25z
IHVzZWQgZm9yIG1hbmFnaW5nIGV2ZW50cy4KKyAqIE1hbnkgb2YgdGhlIGlkZWFzIGJlaGluZCB0
aGlzIGNvZGUgb3JpZ2luYXRlZCBmcm9tCisgKiBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJh
cnkuCisgKi8KK2pRdWVyeS5ldmVudCA9IHsKKworCS8vIEJpbmQgYW4gZXZlbnQgdG8gYW4gZWxl
bWVudAorCS8vIE9yaWdpbmFsIGJ5IERlYW4gRWR3YXJkcworCWFkZDogZnVuY3Rpb24oZWxlbSwg
dHlwZXMsIGhhbmRsZXIsIGRhdGEpIHsKKwkJaWYgKCBlbGVtLm5vZGVUeXBlID09IDMgfHwgZWxl
bS5ub2RlVHlwZSA9PSA4ICkKKwkJCXJldHVybjsKKworCQkvLyBGb3Igd2hhdGV2ZXIgcmVhc29u
LCBJRSBoYXMgdHJvdWJsZSBwYXNzaW5nIHRoZSB3aW5kb3cgb2JqZWN0CisJCS8vIGFyb3VuZCwg
Y2F1c2luZyBpdCB0byBiZSBjbG9uZWQgaW4gdGhlIHByb2Nlc3MKKwkJaWYgKCBlbGVtLnNldElu
dGVydmFsICYmIGVsZW0gIT0gd2luZG93ICkKKwkJCWVsZW0gPSB3aW5kb3c7CisKKwkJLy8gTWFr
ZSBzdXJlIHRoYXQgdGhlIGZ1bmN0aW9uIGJlaW5nIGV4ZWN1dGVkIGhhcyBhIHVuaXF1ZSBJRAor
CQlpZiAoICFoYW5kbGVyLmd1aWQgKQorCQkJaGFuZGxlci5ndWlkID0gdGhpcy5ndWlkKys7CisK
KwkJLy8gaWYgZGF0YSBpcyBwYXNzZWQsIGJpbmQgdG8gaGFuZGxlcgorCQlpZiAoIGRhdGEgIT09
IHVuZGVmaW5lZCApIHsKKwkJCS8vIENyZWF0ZSB0ZW1wb3JhcnkgZnVuY3Rpb24gcG9pbnRlciB0
byBvcmlnaW5hbCBoYW5kbGVyCisJCQl2YXIgZm4gPSBoYW5kbGVyOworCisJCQkvLyBDcmVhdGUg
dW5pcXVlIGhhbmRsZXIgZnVuY3Rpb24sIHdyYXBwZWQgYXJvdW5kIG9yaWdpbmFsIGhhbmRsZXIK
KwkJCWhhbmRsZXIgPSB0aGlzLnByb3h5KCBmbiApOworCisJCQkvLyBTdG9yZSBkYXRhIGluIHVu
aXF1ZSBoYW5kbGVyCisJCQloYW5kbGVyLmRhdGEgPSBkYXRhOworCQl9CisKKwkJLy8gSW5pdCB0
aGUgZWxlbWVudCdzIGV2ZW50IHN0cnVjdHVyZQorCQl2YXIgZXZlbnRzID0galF1ZXJ5LmRhdGEo
ZWxlbSwgImV2ZW50cyIpIHx8IGpRdWVyeS5kYXRhKGVsZW0sICJldmVudHMiLCB7fSksCisJCQlo
YW5kbGUgPSBqUXVlcnkuZGF0YShlbGVtLCAiaGFuZGxlIikgfHwgalF1ZXJ5LmRhdGEoZWxlbSwg
ImhhbmRsZSIsIGZ1bmN0aW9uKCl7CisJCQkJLy8gSGFuZGxlIHRoZSBzZWNvbmQgZXZlbnQgb2Yg
YSB0cmlnZ2VyIGFuZCB3aGVuCisJCQkJLy8gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFn
ZSBoYXMgdW5sb2FkZWQKKwkJCQlyZXR1cm4gdHlwZW9mIGpRdWVyeSAhPT0gInVuZGVmaW5lZCIg
JiYgIWpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPworCQkJCQlqUXVlcnkuZXZlbnQuaGFuZGxlLmFw
cGx5KGFyZ3VtZW50cy5jYWxsZWUuZWxlbSwgYXJndW1lbnRzKSA6CisJCQkJCXVuZGVmaW5lZDsK
KwkJCX0pOworCQkvLyBBZGQgZWxlbSBhcyBhIHByb3BlcnR5IG9mIHRoZSBoYW5kbGUgZnVuY3Rp
b24KKwkJLy8gVGhpcyBpcyB0byBwcmV2ZW50IGEgbWVtb3J5IGxlYWsgd2l0aCBub24tbmF0aXZl
CisJCS8vIGV2ZW50IGluIElFLgorCQloYW5kbGUuZWxlbSA9IGVsZW07CisKKwkJLy8gSGFuZGxl
IG11bHRpcGxlIGV2ZW50cyBzZXBhcmF0ZWQgYnkgYSBzcGFjZQorCQkvLyBqUXVlcnkoLi4uKS5i
aW5kKCJtb3VzZW92ZXIgbW91c2VvdXQiLCBmbik7CisJCWpRdWVyeS5lYWNoKHR5cGVzLnNwbGl0
KC9ccysvKSwgZnVuY3Rpb24oaW5kZXgsIHR5cGUpIHsKKwkJCS8vIE5hbWVzcGFjZWQgZXZlbnQg
aGFuZGxlcnMKKwkJCXZhciBuYW1lc3BhY2VzID0gdHlwZS5zcGxpdCgiLiIpOworCQkJdHlwZSA9
IG5hbWVzcGFjZXMuc2hpZnQoKTsKKwkJCWhhbmRsZXIudHlwZSA9IG5hbWVzcGFjZXMuc2xpY2Uo
KS5zb3J0KCkuam9pbigiLiIpOworCisJCQkvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdCBvZiBmdW5j
dGlvbnMgYm91bmQgdG8gdGhpcyBldmVudAorCQkJdmFyIGhhbmRsZXJzID0gZXZlbnRzW3R5cGVd
OworCQkJCisJCQlpZiAoIGpRdWVyeS5ldmVudC5zcGVjaWFsQWxsW3R5cGVdICkKKwkJCQlqUXVl
cnkuZXZlbnQuc3BlY2lhbEFsbFt0eXBlXS5zZXR1cC5jYWxsKGVsZW0sIGRhdGEsIG5hbWVzcGFj
ZXMpOworCisJCQkvLyBJbml0IHRoZSBldmVudCBoYW5kbGVyIHF1ZXVlCisJCQlpZiAoIWhhbmRs
ZXJzKSB7CisJCQkJaGFuZGxlcnMgPSBldmVudHNbdHlwZV0gPSB7fTsKKworCQkJCS8vIENoZWNr
IGZvciBhIHNwZWNpYWwgZXZlbnQgaGFuZGxlcgorCQkJCS8vIE9ubHkgdXNlIGFkZEV2ZW50TGlz
dGVuZXIvYXR0YWNoRXZlbnQgaWYgdGhlIHNwZWNpYWwKKwkJCQkvLyBldmVudHMgaGFuZGxlciBy
ZXR1cm5zIGZhbHNlCisJCQkJaWYgKCAhalF1ZXJ5LmV2ZW50LnNwZWNpYWxbdHlwZV0gfHwgalF1
ZXJ5LmV2ZW50LnNwZWNpYWxbdHlwZV0uc2V0dXAuY2FsbChlbGVtLCBkYXRhLCBuYW1lc3BhY2Vz
KSA9PT0gZmFsc2UgKSB7CisJCQkJCS8vIEJpbmQgdGhlIGdsb2JhbCBldmVudCBoYW5kbGVyIHRv
IHRoZSBlbGVtZW50CisJCQkJCWlmIChlbGVtLmFkZEV2ZW50TGlzdGVuZXIpCisJCQkJCQllbGVt
LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlLCBmYWxzZSk7CisJCQkJCWVsc2UgaWYgKGVs
ZW0uYXR0YWNoRXZlbnQpCisJCQkJCQllbGVtLmF0dGFjaEV2ZW50KCJvbiIgKyB0eXBlLCBoYW5k
bGUpOworCQkJCX0KKwkJCX0KKworCQkJLy8gQWRkIHRoZSBmdW5jdGlvbiB0byB0aGUgZWxlbWVu
dCdzIGhhbmRsZXIgbGlzdAorCQkJaGFuZGxlcnNbaGFuZGxlci5ndWlkXSA9IGhhbmRsZXI7CisK
KwkJCS8vIEtlZXAgdHJhY2sgb2Ygd2hpY2ggZXZlbnRzIGhhdmUgYmVlbiB1c2VkLCBmb3IgZ2xv
YmFsIHRyaWdnZXJpbmcKKwkJCWpRdWVyeS5ldmVudC5nbG9iYWxbdHlwZV0gPSB0cnVlOworCQl9
KTsKKworCQkvLyBOdWxsaWZ5IGVsZW0gdG8gcHJldmVudCBtZW1vcnkgbGVha3MgaW4gSUUKKwkJ
ZWxlbSA9IG51bGw7CisJfSwKKworCWd1aWQ6IDEsCisJZ2xvYmFsOiB7fSwKKworCS8vIERldGFj
aCBhbiBldmVudCBvciBzZXQgb2YgZXZlbnRzIGZyb20gYW4gZWxlbWVudAorCXJlbW92ZTogZnVu
Y3Rpb24oZWxlbSwgdHlwZXMsIGhhbmRsZXIpIHsKKwkJLy8gZG9uJ3QgZG8gZXZlbnRzIG9uIHRl
eHQgYW5kIGNvbW1lbnQgbm9kZXMKKwkJaWYgKCBlbGVtLm5vZGVUeXBlID09IDMgfHwgZWxlbS5u
b2RlVHlwZSA9PSA4ICkKKwkJCXJldHVybjsKKworCQl2YXIgZXZlbnRzID0galF1ZXJ5LmRhdGEo
ZWxlbSwgImV2ZW50cyIpLCByZXQsIGluZGV4OworCisJCWlmICggZXZlbnRzICkgeworCQkJLy8g
VW5iaW5kIGFsbCBldmVudHMgZm9yIHRoZSBlbGVtZW50CisJCQlpZiAoIHR5cGVzID09PSB1bmRl
ZmluZWQgfHwgKHR5cGVvZiB0eXBlcyA9PT0gInN0cmluZyIgJiYgdHlwZXMuY2hhckF0KDApID09
ICIuIikgKQorCQkJCWZvciAoIHZhciB0eXBlIGluIGV2ZW50cyApCisJCQkJCXRoaXMucmVtb3Zl
KCBlbGVtLCB0eXBlICsgKHR5cGVzIHx8ICIiKSApOworCQkJZWxzZSB7CisJCQkJLy8gdHlwZXMg
aXMgYWN0dWFsbHkgYW4gZXZlbnQgb2JqZWN0IGhlcmUKKwkJCQlpZiAoIHR5cGVzLnR5cGUgKSB7
CisJCQkJCWhhbmRsZXIgPSB0eXBlcy5oYW5kbGVyOworCQkJCQl0eXBlcyA9IHR5cGVzLnR5cGU7
CisJCQkJfQorCisJCQkJLy8gSGFuZGxlIG11bHRpcGxlIGV2ZW50cyBzZXBlcmF0ZWQgYnkgYSBz
cGFjZQorCQkJCS8vIGpRdWVyeSguLi4pLnVuYmluZCgibW91c2VvdmVyIG1vdXNlb3V0IiwgZm4p
OworCQkJCWpRdWVyeS5lYWNoKHR5cGVzLnNwbGl0KC9ccysvKSwgZnVuY3Rpb24oaW5kZXgsIHR5
cGUpeworCQkJCQkvLyBOYW1lc3BhY2VkIGV2ZW50IGhhbmRsZXJzCisJCQkJCXZhciBuYW1lc3Bh
Y2VzID0gdHlwZS5zcGxpdCgiLiIpOworCQkJCQl0eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwor
CQkJCQl2YXIgbmFtZXNwYWNlID0gUmVnRXhwKCIoXnxcXC4pIiArIG5hbWVzcGFjZXMuc2xpY2Uo
KS5zb3J0KCkuam9pbigiLipcXC4iKSArICIoXFwufCQpIik7CisKKwkJCQkJaWYgKCBldmVudHNb
dHlwZV0gKSB7CisJCQkJCQkvLyByZW1vdmUgdGhlIGdpdmVuIGhhbmRsZXIgZm9yIHRoZSBnaXZl
biB0eXBlCisJCQkJCQlpZiAoIGhhbmRsZXIgKQorCQkJCQkJCWRlbGV0ZSBldmVudHNbdHlwZV1b
aGFuZGxlci5ndWlkXTsKKworCQkJCQkJLy8gcmVtb3ZlIGFsbCBoYW5kbGVycyBmb3IgdGhlIGdp
dmVuIHR5cGUKKwkJCQkJCWVsc2UKKwkJCQkJCQlmb3IgKCB2YXIgaGFuZGxlIGluIGV2ZW50c1t0
eXBlXSApCisJCQkJCQkJCS8vIEhhbmRsZSB0aGUgcmVtb3ZhbCBvZiBuYW1lc3BhY2VkIGV2ZW50
cworCQkJCQkJCQlpZiAoIG5hbWVzcGFjZS50ZXN0KGV2ZW50c1t0eXBlXVtoYW5kbGVdLnR5cGUp
ICkKKwkJCQkJCQkJCWRlbGV0ZSBldmVudHNbdHlwZV1baGFuZGxlXTsKKwkJCQkJCQkJCQorCQkJ
CQkJaWYgKCBqUXVlcnkuZXZlbnQuc3BlY2lhbEFsbFt0eXBlXSApCisJCQkJCQkJalF1ZXJ5LmV2
ZW50LnNwZWNpYWxBbGxbdHlwZV0udGVhcmRvd24uY2FsbChlbGVtLCBuYW1lc3BhY2VzKTsKKwor
CQkJCQkJLy8gcmVtb3ZlIGdlbmVyaWMgZXZlbnQgaGFuZGxlciBpZiBubyBtb3JlIGhhbmRsZXJz
IGV4aXN0CisJCQkJCQlmb3IgKCByZXQgaW4gZXZlbnRzW3R5cGVdICkgYnJlYWs7CisJCQkJCQlp
ZiAoICFyZXQgKSB7CisJCQkJCQkJaWYgKCAhalF1ZXJ5LmV2ZW50LnNwZWNpYWxbdHlwZV0gfHwg
alF1ZXJ5LmV2ZW50LnNwZWNpYWxbdHlwZV0udGVhcmRvd24uY2FsbChlbGVtLCBuYW1lc3BhY2Vz
KSA9PT0gZmFsc2UgKSB7CisJCQkJCQkJCWlmIChlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIpCisJ
CQkJCQkJCQllbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgalF1ZXJ5LmRhdGEoZWxlbSwg
ImhhbmRsZSIpLCBmYWxzZSk7CisJCQkJCQkJCWVsc2UgaWYgKGVsZW0uZGV0YWNoRXZlbnQpCisJ
CQkJCQkJCQllbGVtLmRldGFjaEV2ZW50KCJvbiIgKyB0eXBlLCBqUXVlcnkuZGF0YShlbGVtLCAi
aGFuZGxlIikpOworCQkJCQkJCX0KKwkJCQkJCQlyZXQgPSBudWxsOworCQkJCQkJCWRlbGV0ZSBl
dmVudHNbdHlwZV07CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9KTsKKwkJCX0KKworCQkJLy8gUmVt
b3ZlIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWQKKwkJCWZvciAoIHJldCBpbiBl
dmVudHMgKSBicmVhazsKKwkJCWlmICggIXJldCApIHsKKwkJCQl2YXIgaGFuZGxlID0galF1ZXJ5
LmRhdGEoIGVsZW0sICJoYW5kbGUiICk7CisJCQkJaWYgKCBoYW5kbGUgKSBoYW5kbGUuZWxlbSA9
IG51bGw7CisJCQkJalF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0sICJldmVudHMiICk7CisJCQkJalF1
ZXJ5LnJlbW92ZURhdGEoIGVsZW0sICJoYW5kbGUiICk7CisJCQl9CisJCX0KKwl9LAorCisJLy8g
YnViYmxpbmcgaXMgaW50ZXJuYWwKKwl0cmlnZ2VyOiBmdW5jdGlvbiggZXZlbnQsIGRhdGEsIGVs
ZW0sIGJ1YmJsaW5nICkgeworCQkvLyBFdmVudCBvYmplY3Qgb3IgZXZlbnQgdHlwZQorCQl2YXIg
dHlwZSA9IGV2ZW50LnR5cGUgfHwgZXZlbnQ7CisKKwkJaWYoICFidWJibGluZyApeworCQkJZXZl
bnQgPSB0eXBlb2YgZXZlbnQgPT09ICJvYmplY3QiID8KKwkJCQkvLyBqUXVlcnkuRXZlbnQgb2Jq
ZWN0CisJCQkJZXZlbnRbZXhwYW5kb10gPyBldmVudCA6CisJCQkJLy8gT2JqZWN0IGxpdGVyYWwK
KwkJCQlqUXVlcnkuZXh0ZW5kKCBqUXVlcnkuRXZlbnQodHlwZSksIGV2ZW50ICkgOgorCQkJCS8v
IEp1c3QgdGhlIGV2ZW50IHR5cGUgKHN0cmluZykKKwkJCQlqUXVlcnkuRXZlbnQodHlwZSk7CisK
KwkJCWlmICggdHlwZS5pbmRleE9mKCIhIikgPj0gMCApIHsKKwkJCQlldmVudC50eXBlID0gdHlw
ZSA9IHR5cGUuc2xpY2UoMCwgLTEpOworCQkJCWV2ZW50LmV4Y2x1c2l2ZSA9IHRydWU7CisJCQl9
CisKKwkJCS8vIEhhbmRsZSBhIGdsb2JhbCB0cmlnZ2VyCisJCQlpZiAoICFlbGVtICkgeworCQkJ
CS8vIERvbid0IGJ1YmJsZSBjdXN0b20gZXZlbnRzIHdoZW4gZ2xvYmFsICh0byBhdm9pZCB0b28g
bXVjaCBvdmVyaGVhZCkKKwkJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKwkJCQkvLyBPbmx5
IHRyaWdnZXIgaWYgd2UndmUgZXZlciBib3VuZCBhbiBldmVudCBmb3IgaXQKKwkJCQlpZiAoIHRo
aXMuZ2xvYmFsW3R5cGVdICkKKwkJCQkJalF1ZXJ5LmVhY2goIGpRdWVyeS5jYWNoZSwgZnVuY3Rp
b24oKXsKKwkJCQkJCWlmICggdGhpcy5ldmVudHMgJiYgdGhpcy5ldmVudHNbdHlwZV0gKQorCQkJ
CQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCBldmVudCwgZGF0YSwgdGhpcy5oYW5kbGUuZWxlbSAp
OworCQkJCQl9KTsKKwkJCX0KKworCQkJLy8gSGFuZGxlIHRyaWdnZXJpbmcgYSBzaW5nbGUgZWxl
bWVudAorCisJCQkvLyBkb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlcwor
CQkJaWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PSA4
ICkKKwkJCQlyZXR1cm4gdW5kZWZpbmVkOworCQkJCisJCQkvLyBDbGVhbiB1cCBpbiBjYXNlIGl0
IGlzIHJldXNlZAorCQkJZXZlbnQucmVzdWx0ID0gdW5kZWZpbmVkOworCQkJZXZlbnQudGFyZ2V0
ID0gZWxlbTsKKwkJCQorCQkJLy8gQ2xvbmUgdGhlIGluY29taW5nIGRhdGEsIGlmIGFueQorCQkJ
ZGF0YSA9IGpRdWVyeS5tYWtlQXJyYXkoZGF0YSk7CisJCQlkYXRhLnVuc2hpZnQoIGV2ZW50ICk7
CisJCX0KKworCQlldmVudC5jdXJyZW50VGFyZ2V0ID0gZWxlbTsKKworCQkvLyBUcmlnZ2VyIHRo
ZSBldmVudCwgaXQgaXMgYXNzdW1lZCB0aGF0ICJoYW5kbGUiIGlzIGEgZnVuY3Rpb24KKwkJdmFy
IGhhbmRsZSA9IGpRdWVyeS5kYXRhKGVsZW0sICJoYW5kbGUiKTsKKwkJaWYgKCBoYW5kbGUgKQor
CQkJaGFuZGxlLmFwcGx5KCBlbGVtLCBkYXRhICk7CisKKwkJLy8gSGFuZGxlIHRyaWdnZXJpbmcg
bmF0aXZlIC5vbmZvbyBoYW5kbGVycyAoYW5kIG9uIGxpbmtzIHNpbmNlIHdlIGRvbid0IGNhbGwg
LmNsaWNrKCkgZm9yIGxpbmtzKQorCQlpZiAoICghZWxlbVt0eXBlXSB8fCAoalF1ZXJ5Lm5vZGVO
YW1lKGVsZW0sICdhJykgJiYgdHlwZSA9PSAiY2xpY2siKSkgJiYgZWxlbVsib24iK3R5cGVdICYm
IGVsZW1bIm9uIit0eXBlXS5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApCisJCQlldmVu
dC5yZXN1bHQgPSBmYWxzZTsKKworCQkvLyBUcmlnZ2VyIHRoZSBuYXRpdmUgZXZlbnRzIChleGNl
cHQgZm9yIGNsaWNrcyBvbiBsaW5rcykKKwkJaWYgKCAhYnViYmxpbmcgJiYgZWxlbVt0eXBlXSAm
JiAhZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkgJiYgIShqUXVlcnkubm9kZU5hbWUoZWxlbSwg
J2EnKSAmJiB0eXBlID09ICJjbGljayIpICkgeworCQkJdGhpcy50cmlnZ2VyZWQgPSB0cnVlOwor
CQkJdHJ5IHsKKwkJCQllbGVtWyB0eXBlIF0oKTsKKwkJCS8vIHByZXZlbnQgSUUgZnJvbSB0aHJv
d2luZyBhbiBlcnJvciBmb3Igc29tZSBoaWRkZW4gZWxlbWVudHMKKwkJCX0gY2F0Y2ggKGUpIHt9
CisJCX0KKworCQl0aGlzLnRyaWdnZXJlZCA9IGZhbHNlOworCisJCWlmICggIWV2ZW50LmlzUHJv
cGFnYXRpb25TdG9wcGVkKCkgKSB7CisJCQl2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlIHx8
IGVsZW0ub3duZXJEb2N1bWVudDsKKwkJCWlmICggcGFyZW50ICkKKwkJCQlqUXVlcnkuZXZlbnQu
dHJpZ2dlcihldmVudCwgZGF0YSwgcGFyZW50LCB0cnVlKTsKKwkJfQorCX0sCisKKwloYW5kbGU6
IGZ1bmN0aW9uKGV2ZW50KSB7CisJCS8vIHJldHVybmVkIHVuZGVmaW5lZCBvciBmYWxzZQorCQl2
YXIgYWxsLCBoYW5kbGVyczsKKworCQlldmVudCA9IGFyZ3VtZW50c1swXSA9IGpRdWVyeS5ldmVu
dC5maXgoIGV2ZW50IHx8IHdpbmRvdy5ldmVudCApOworCQlldmVudC5jdXJyZW50VGFyZ2V0ID0g
dGhpczsKKwkJCisJCS8vIE5hbWVzcGFjZWQgZXZlbnQgaGFuZGxlcnMKKwkJdmFyIG5hbWVzcGFj
ZXMgPSBldmVudC50eXBlLnNwbGl0KCIuIik7CisJCWV2ZW50LnR5cGUgPSBuYW1lc3BhY2VzLnNo
aWZ0KCk7CisKKwkJLy8gQ2FjaGUgdGhpcyBub3csIGFsbCA9IHRydWUgbWVhbnMsIGFueSBoYW5k
bGVyCisJCWFsbCA9ICFuYW1lc3BhY2VzLmxlbmd0aCAmJiAhZXZlbnQuZXhjbHVzaXZlOworCQkK
KwkJdmFyIG5hbWVzcGFjZSA9IFJlZ0V4cCgiKF58XFwuKSIgKyBuYW1lc3BhY2VzLnNsaWNlKCku
c29ydCgpLmpvaW4oIi4qXFwuIikgKyAiKFxcLnwkKSIpOworCisJCWhhbmRsZXJzID0gKCBqUXVl
cnkuZGF0YSh0aGlzLCAiZXZlbnRzIikgfHwge30gKVtldmVudC50eXBlXTsKKworCQlmb3IgKCB2
YXIgaiBpbiBoYW5kbGVycyApIHsKKwkJCXZhciBoYW5kbGVyID0gaGFuZGxlcnNbal07CisKKwkJ
CS8vIEZpbHRlciB0aGUgZnVuY3Rpb25zIGJ5IGNsYXNzCisJCQlpZiAoIGFsbCB8fCBuYW1lc3Bh
Y2UudGVzdChoYW5kbGVyLnR5cGUpICkgeworCQkJCS8vIFBhc3MgaW4gYSByZWZlcmVuY2UgdG8g
dGhlIGhhbmRsZXIgZnVuY3Rpb24gaXRzZWxmCisJCQkJLy8gU28gdGhhdCB3ZSBjYW4gbGF0ZXIg
cmVtb3ZlIGl0CisJCQkJZXZlbnQuaGFuZGxlciA9IGhhbmRsZXI7CisJCQkJZXZlbnQuZGF0YSA9
IGhhbmRsZXIuZGF0YTsKKworCQkJCXZhciByZXQgPSBoYW5kbGVyLmFwcGx5KHRoaXMsIGFyZ3Vt
ZW50cyk7CisKKwkJCQlpZiggcmV0ICE9PSB1bmRlZmluZWQgKXsKKwkJCQkJZXZlbnQucmVzdWx0
ID0gcmV0OworCQkJCQlpZiAoIHJldCA9PT0gZmFsc2UgKSB7CisJCQkJCQlldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworCQkJCQkJZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisJCQkJCX0KKwkJCQl9
CisKKwkJCQlpZiggZXZlbnQuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSApCisJCQkJ
CWJyZWFrOworCisJCQl9CisJCX0KKwl9LAorCisJcHJvcHM6ICJhbHRLZXkgYXR0ckNoYW5nZSBh
dHRyTmFtZSBidWJibGVzIGJ1dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50
WSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVu
dCBoYW5kbGVyIGtleUNvZGUgbWV0YUtleSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBw
YWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUgcmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkg
c2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9FbGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGlj
aCIuc3BsaXQoIiAiKSwKKworCWZpeDogZnVuY3Rpb24oZXZlbnQpIHsKKwkJaWYgKCBldmVudFtl
eHBhbmRvXSApCisJCQlyZXR1cm4gZXZlbnQ7CisKKwkJLy8gc3RvcmUgYSBjb3B5IG9mIHRoZSBv
cmlnaW5hbCBldmVudCBvYmplY3QKKwkJLy8gYW5kICJjbG9uZSIgdG8gc2V0IHJlYWQtb25seSBw
cm9wZXJ0aWVzCisJCXZhciBvcmlnaW5hbEV2ZW50ID0gZXZlbnQ7CisJCWV2ZW50ID0galF1ZXJ5
LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7CisKKwkJZm9yICggdmFyIGkgPSB0aGlzLnByb3BzLmxl
bmd0aCwgcHJvcDsgaTsgKXsKKwkJCXByb3AgPSB0aGlzLnByb3BzWyAtLWkgXTsKKwkJCWV2ZW50
WyBwcm9wIF0gPSBvcmlnaW5hbEV2ZW50WyBwcm9wIF07CisJCX0KKworCQkvLyBGaXggdGFyZ2V0
IHByb3BlcnR5LCBpZiBuZWNlc3NhcnkKKwkJaWYgKCAhZXZlbnQudGFyZ2V0ICkKKwkJCWV2ZW50
LnRhcmdldCA9IGV2ZW50LnNyY0VsZW1lbnQgfHwgZG9jdW1lbnQ7IC8vIEZpeGVzICMxOTI1IHdo
ZXJlIHNyY0VsZW1lbnQgbWlnaHQgbm90IGJlIGRlZmluZWQgZWl0aGVyCisKKwkJLy8gY2hlY2sg
aWYgdGFyZ2V0IGlzIGEgdGV4dG5vZGUgKHNhZmFyaSkKKwkJaWYgKCBldmVudC50YXJnZXQubm9k
ZVR5cGUgPT0gMyApCisJCQlldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTsK
KworCQkvLyBBZGQgcmVsYXRlZFRhcmdldCwgaWYgbmVjZXNzYXJ5CisJCWlmICggIWV2ZW50LnJl
bGF0ZWRUYXJnZXQgJiYgZXZlbnQuZnJvbUVsZW1lbnQgKQorCQkJZXZlbnQucmVsYXRlZFRhcmdl
dCA9IGV2ZW50LmZyb21FbGVtZW50ID09IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRvRWxlbWVudCA6
IGV2ZW50LmZyb21FbGVtZW50OworCisJCS8vIENhbGN1bGF0ZSBwYWdlWC9ZIGlmIG1pc3Npbmcg
YW5kIGNsaWVudFgvWSBhdmFpbGFibGUKKwkJaWYgKCBldmVudC5wYWdlWCA9PSBudWxsICYmIGV2
ZW50LmNsaWVudFggIT0gbnVsbCApIHsKKwkJCXZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQsIGJvZHkgPSBkb2N1bWVudC5ib2R5OworCQkJZXZlbnQucGFnZVggPSBldmVudC5jbGll
bnRYICsgKGRvYyAmJiBkb2Muc2Nyb2xsTGVmdCB8fCBib2R5ICYmIGJvZHkuc2Nyb2xsTGVmdCB8
fCAwKSAtIChkb2MuY2xpZW50TGVmdCB8fCAwKTsKKwkJCWV2ZW50LnBhZ2VZID0gZXZlbnQuY2xp
ZW50WSArIChkb2MgJiYgZG9jLnNjcm9sbFRvcCB8fCBib2R5ICYmIGJvZHkuc2Nyb2xsVG9wIHx8
IDApIC0gKGRvYy5jbGllbnRUb3AgfHwgMCk7CisJCX0KKworCQkvLyBBZGQgd2hpY2ggZm9yIGtl
eSBldmVudHMKKwkJaWYgKCAhZXZlbnQud2hpY2ggJiYgKChldmVudC5jaGFyQ29kZSB8fCBldmVu
dC5jaGFyQ29kZSA9PT0gMCkgPyBldmVudC5jaGFyQ29kZSA6IGV2ZW50LmtleUNvZGUpICkKKwkJ
CWV2ZW50LndoaWNoID0gZXZlbnQuY2hhckNvZGUgfHwgZXZlbnQua2V5Q29kZTsKKworCQkvLyBB
ZGQgbWV0YUtleSB0byBub24tTWFjIGJyb3dzZXJzICh1c2UgY3RybCBmb3IgUEMncyBhbmQgTWV0
YSBmb3IgTWFjcykKKwkJaWYgKCAhZXZlbnQubWV0YUtleSAmJiBldmVudC5jdHJsS2V5ICkKKwkJ
CWV2ZW50Lm1ldGFLZXkgPSBldmVudC5jdHJsS2V5OworCisJCS8vIEFkZCB3aGljaCBmb3IgY2xp
Y2s6IDEgPT0gbGVmdDsgMiA9PSBtaWRkbGU7IDMgPT0gcmlnaHQKKwkJLy8gTm90ZTogYnV0dG9u
IGlzIG5vdCBub3JtYWxpemVkLCBzbyBkb24ndCB1c2UgaXQKKwkJaWYgKCAhZXZlbnQud2hpY2gg
JiYgZXZlbnQuYnV0dG9uICkKKwkJCWV2ZW50LndoaWNoID0gKGV2ZW50LmJ1dHRvbiAmIDEgPyAx
IDogKCBldmVudC5idXR0b24gJiAyID8gMyA6ICggZXZlbnQuYnV0dG9uICYgNCA/IDIgOiAwICkg
KSk7CisKKwkJcmV0dXJuIGV2ZW50OworCX0sCisKKwlwcm94eTogZnVuY3Rpb24oIGZuLCBwcm94
eSApeworCQlwcm94eSA9IHByb3h5IHx8IGZ1bmN0aW9uKCl7IHJldHVybiBmbi5hcHBseSh0aGlz
LCBhcmd1bWVudHMpOyB9OworCQkvLyBTZXQgdGhlIGd1aWQgb2YgdW5pcXVlIGhhbmRsZXIgdG8g
dGhlIHNhbWUgb2Ygb3JpZ2luYWwgaGFuZGxlciwgc28gaXQgY2FuIGJlIHJlbW92ZWQKKwkJcHJv
eHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IHByb3h5Lmd1aWQgfHwgdGhpcy5ndWlkKys7
CisJCS8vIFNvIHByb3h5IGNhbiBiZSBkZWNsYXJlZCBhcyBhbiBhcmd1bWVudAorCQlyZXR1cm4g
cHJveHk7CisJfSwKKworCXNwZWNpYWw6IHsKKwkJcmVhZHk6IHsKKwkJCS8vIE1ha2Ugc3VyZSB0
aGUgcmVhZHkgZXZlbnQgaXMgc2V0dXAKKwkJCXNldHVwOiBiaW5kUmVhZHksCisJCQl0ZWFyZG93
bjogZnVuY3Rpb24oKSB7fQorCQl9CisJfSwKKwkKKwlzcGVjaWFsQWxsOiB7CisJCWxpdmU6IHsK
KwkJCXNldHVwOiBmdW5jdGlvbiggc2VsZWN0b3IsIG5hbWVzcGFjZXMgKXsKKwkJCQlqUXVlcnku
ZXZlbnQuYWRkKCB0aGlzLCBuYW1lc3BhY2VzWzBdLCBsaXZlSGFuZGxlciApOworCQkJfSwKKwkJ
CXRlYXJkb3duOiAgZnVuY3Rpb24oIG5hbWVzcGFjZXMgKXsKKwkJCQlpZiAoIG5hbWVzcGFjZXMu
bGVuZ3RoICkgeworCQkJCQl2YXIgcmVtb3ZlID0gMCwgbmFtZSA9IFJlZ0V4cCgiKF58XFwuKSIg
KyBuYW1lc3BhY2VzWzBdICsgIihcXC58JCkiKTsKKwkJCQkJCisJCQkJCWpRdWVyeS5lYWNoKCAo
alF1ZXJ5LmRhdGEodGhpcywgImV2ZW50cyIpLmxpdmUgfHwge30pLCBmdW5jdGlvbigpeworCQkJ
CQkJaWYgKCBuYW1lLnRlc3QodGhpcy50eXBlKSApCisJCQkJCQkJcmVtb3ZlKys7CisJCQkJCX0p
OworCQkJCQkKKwkJCQkJaWYgKCByZW1vdmUgPCAxICkKKwkJCQkJCWpRdWVyeS5ldmVudC5yZW1v
dmUoIHRoaXMsIG5hbWVzcGFjZXNbMF0sIGxpdmVIYW5kbGVyICk7CisJCQkJfQorCQkJfQorCQl9
CisJfQorfTsKKworalF1ZXJ5LkV2ZW50ID0gZnVuY3Rpb24oIHNyYyApeworCS8vIEFsbG93IGlu
c3RhbnRpYXRpb24gd2l0aG91dCB0aGUgJ25ldycga2V5d29yZAorCWlmKCAhdGhpcy5wcmV2ZW50
RGVmYXVsdCApCisJCXJldHVybiBuZXcgalF1ZXJ5LkV2ZW50KHNyYyk7CisJCisJLy8gRXZlbnQg
b2JqZWN0CisJaWYoIHNyYyAmJiBzcmMudHlwZSApeworCQl0aGlzLm9yaWdpbmFsRXZlbnQgPSBz
cmM7CisJCXRoaXMudHlwZSA9IHNyYy50eXBlOworCS8vIEV2ZW50IHR5cGUKKwl9ZWxzZQorCQl0
aGlzLnR5cGUgPSBzcmM7CisKKwkvLyB0aW1lU3RhbXAgaXMgYnVnZ3kgZm9yIHNvbWUgZXZlbnRz
IG9uIEZpcmVmb3goIzM4NDMpCisJLy8gU28gd2Ugd29uJ3QgcmVseSBvbiB0aGUgbmF0aXZlIHZh
bHVlCisJdGhpcy50aW1lU3RhbXAgPSBub3coKTsKKwkKKwkvLyBNYXJrIGl0IGFzIGZpeGVkCisJ
dGhpc1tleHBhbmRvXSA9IHRydWU7Cit9OworCitmdW5jdGlvbiByZXR1cm5GYWxzZSgpeworCXJl
dHVybiBmYWxzZTsKK30KK2Z1bmN0aW9uIHJldHVyblRydWUoKXsKKwlyZXR1cm4gdHJ1ZTsKK30K
KworLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBi
eSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nCisvLyBodHRwOi8vd3d3LnczLm9yZy9U
Ui8yMDAzL1dELURPTS1MZXZlbC0zLUV2ZW50cy0yMDAzMDMzMS9lY21hLXNjcmlwdC1iaW5kaW5n
Lmh0bWwKK2pRdWVyeS5FdmVudC5wcm90b3R5cGUgPSB7CisJcHJldmVudERlZmF1bHQ6IGZ1bmN0
aW9uKCkgeworCQl0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IHJldHVyblRydWU7CisKKwkJdmFy
IGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7CisJCWlmKCAhZSApCisJCQlyZXR1cm47CisJCS8vIGlm
IHByZXZlbnREZWZhdWx0IGV4aXN0cyBydW4gaXQgb24gdGhlIG9yaWdpbmFsIGV2ZW50CisJCWlm
IChlLnByZXZlbnREZWZhdWx0KQorCQkJZS5wcmV2ZW50RGVmYXVsdCgpOworCQkvLyBvdGhlcndp
c2Ugc2V0IHRoZSByZXR1cm5WYWx1ZSBwcm9wZXJ0eSBvZiB0aGUgb3JpZ2luYWwgZXZlbnQgdG8g
ZmFsc2UgKElFKQorCQllLnJldHVyblZhbHVlID0gZmFsc2U7CisJfSwKKwlzdG9wUHJvcGFnYXRp
b246IGZ1bmN0aW9uKCkgeworCQl0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1
ZTsKKworCQl2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDsKKwkJaWYoICFlICkKKwkJCXJldHVy
bjsKKwkJLy8gaWYgc3RvcFByb3BhZ2F0aW9uIGV4aXN0cyBydW4gaXQgb24gdGhlIG9yaWdpbmFs
IGV2ZW50CisJCWlmIChlLnN0b3BQcm9wYWdhdGlvbikKKwkJCWUuc3RvcFByb3BhZ2F0aW9uKCk7
CisJCS8vIG90aGVyd2lzZSBzZXQgdGhlIGNhbmNlbEJ1YmJsZSBwcm9wZXJ0eSBvZiB0aGUgb3Jp
Z2luYWwgZXZlbnQgdG8gdHJ1ZSAoSUUpCisJCWUuY2FuY2VsQnViYmxlID0gdHJ1ZTsKKwl9LAor
CXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpeworCQl0aGlzLmlzSW1tZWRpYXRl
UHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTsKKwkJdGhpcy5zdG9wUHJvcGFnYXRpb24o
KTsKKwl9LAorCWlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsCisJaXNQcm9wYWdhdGlv
blN0b3BwZWQ6IHJldHVybkZhbHNlLAorCWlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiBy
ZXR1cm5GYWxzZQorfTsKKy8vIENoZWNrcyBpZiBhbiBldmVudCBoYXBwZW5lZCBvbiBhbiBlbGVt
ZW50IHdpdGhpbiBhbm90aGVyIGVsZW1lbnQKKy8vIFVzZWQgaW4galF1ZXJ5LmV2ZW50LnNwZWNp
YWwubW91c2VlbnRlciBhbmQgbW91c2VsZWF2ZSBoYW5kbGVycwordmFyIHdpdGhpbkVsZW1lbnQg
PSBmdW5jdGlvbihldmVudCkgeworCS8vIENoZWNrIGlmIG1vdXNlKG92ZXJ8b3V0KSBhcmUgc3Rp
bGwgd2l0aGluIHRoZSBzYW1lIHBhcmVudCBlbGVtZW50CisJdmFyIHBhcmVudCA9IGV2ZW50LnJl
bGF0ZWRUYXJnZXQ7CisJLy8gVHJhdmVyc2UgdXAgdGhlIHRyZWUKKwl3aGlsZSAoIHBhcmVudCAm
JiBwYXJlbnQgIT0gdGhpcyApCisJCXRyeSB7IHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlOyB9
CisJCWNhdGNoKGUpIHsgcGFyZW50ID0gdGhpczsgfQorCQorCWlmKCBwYXJlbnQgIT0gdGhpcyAp
eworCQkvLyBzZXQgdGhlIGNvcnJlY3QgZXZlbnQgdHlwZQorCQlldmVudC50eXBlID0gZXZlbnQu
ZGF0YTsKKwkJLy8gaGFuZGxlIGV2ZW50IGlmIHdlIGFjdHVhbGx5IGp1c3QgbW91c2VkIG9uIHRv
IGEgbm9uIHN1Yi1lbGVtZW50CisJCWpRdWVyeS5ldmVudC5oYW5kbGUuYXBwbHkoIHRoaXMsIGFy
Z3VtZW50cyApOworCX0KK307CisJCitqUXVlcnkuZWFjaCh7IAorCW1vdXNlb3ZlcjogJ21vdXNl
ZW50ZXInLCAKKwltb3VzZW91dDogJ21vdXNlbGVhdmUnCit9LCBmdW5jdGlvbiggb3JpZywgZml4
ICl7CisJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0geworCQlzZXR1cDogZnVuY3Rpb24o
KXsKKwkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIG9yaWcsIHdpdGhpbkVsZW1lbnQsIGZpeCAp
OworCQl9LAorCQl0ZWFyZG93bjogZnVuY3Rpb24oKXsKKwkJCWpRdWVyeS5ldmVudC5yZW1vdmUo
IHRoaXMsIG9yaWcsIHdpdGhpbkVsZW1lbnQgKTsKKwkJfQorCX07CQkJICAgCit9KTsKKworalF1
ZXJ5LmZuLmV4dGVuZCh7CisJYmluZDogZnVuY3Rpb24oIHR5cGUsIGRhdGEsIGZuICkgeworCQly
ZXR1cm4gdHlwZSA9PSAidW5sb2FkIiA/IHRoaXMub25lKHR5cGUsIGRhdGEsIGZuKSA6IHRoaXMu
ZWFjaChmdW5jdGlvbigpeworCQkJalF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgdHlwZSwgZm4gfHwg
ZGF0YSwgZm4gJiYgZGF0YSApOworCQl9KTsKKwl9LAorCisJb25lOiBmdW5jdGlvbiggdHlwZSwg
ZGF0YSwgZm4gKSB7CisJCXZhciBvbmUgPSBqUXVlcnkuZXZlbnQucHJveHkoIGZuIHx8IGRhdGEs
IGZ1bmN0aW9uKGV2ZW50KSB7CisJCQlqUXVlcnkodGhpcykudW5iaW5kKGV2ZW50LCBvbmUpOwor
CQkJcmV0dXJuIChmbiB8fCBkYXRhKS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7CisJCX0pOwor
CQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CisJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlz
LCB0eXBlLCBvbmUsIGZuICYmIGRhdGEpOworCQl9KTsKKwl9LAorCisJdW5iaW5kOiBmdW5jdGlv
biggdHlwZSwgZm4gKSB7CisJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKKwkJCWpRdWVy
eS5ldmVudC5yZW1vdmUoIHRoaXMsIHR5cGUsIGZuICk7CisJCX0pOworCX0sCisKKwl0cmlnZ2Vy
OiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHsKKwkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigp
eworCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIHRoaXMgKTsKKwkJfSk7CisJ
fSwKKworCXRyaWdnZXJIYW5kbGVyOiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHsKKwkJaWYoIHRo
aXNbMF0gKXsKKwkJCXZhciBldmVudCA9IGpRdWVyeS5FdmVudCh0eXBlKTsKKwkJCWV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKwkJCWpRdWVyeS5l
dmVudC50cmlnZ2VyKCBldmVudCwgZGF0YSwgdGhpc1swXSApOworCQkJcmV0dXJuIGV2ZW50LnJl
c3VsdDsKKwkJfQkJCisJfSwKKworCXRvZ2dsZTogZnVuY3Rpb24oIGZuICkgeworCQkvLyBTYXZl
IHJlZmVyZW5jZSB0byBhcmd1bWVudHMgZm9yIGFjY2VzcyBpbiBjbG9zdXJlCisJCXZhciBhcmdz
ID0gYXJndW1lbnRzLCBpID0gMTsKKworCQkvLyBsaW5rIGFsbCB0aGUgZnVuY3Rpb25zLCBzbyBh
bnkgb2YgdGhlbSBjYW4gdW5iaW5kIHRoaXMgY2xpY2sgaGFuZGxlcgorCQl3aGlsZSggaSA8IGFy
Z3MubGVuZ3RoICkKKwkJCWpRdWVyeS5ldmVudC5wcm94eSggZm4sIGFyZ3NbaSsrXSApOworCisJ
CXJldHVybiB0aGlzLmNsaWNrKCBqUXVlcnkuZXZlbnQucHJveHkoIGZuLCBmdW5jdGlvbihldmVu
dCkgeworCQkJLy8gRmlndXJlIG91dCB3aGljaCBmdW5jdGlvbiB0byBleGVjdXRlCisJCQl0aGlz
Lmxhc3RUb2dnbGUgPSAoIHRoaXMubGFzdFRvZ2dsZSB8fCAwICkgJSBpOworCisJCQkvLyBNYWtl
IHN1cmUgdGhhdCBjbGlja3Mgc3RvcAorCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKKworCQkJ
Ly8gYW5kIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uCisJCQlyZXR1cm4gYXJnc1sgdGhpcy5sYXN0VG9n
Z2xlKysgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgfHwgZmFsc2U7CisJCX0pKTsKKwl9LAor
CisJaG92ZXI6IGZ1bmN0aW9uKGZuT3ZlciwgZm5PdXQpIHsKKwkJcmV0dXJuIHRoaXMubW91c2Vl
bnRlcihmbk92ZXIpLm1vdXNlbGVhdmUoZm5PdXQpOworCX0sCisKKwlyZWFkeTogZnVuY3Rpb24o
Zm4pIHsKKwkJLy8gQXR0YWNoIHRoZSBsaXN0ZW5lcnMKKwkJYmluZFJlYWR5KCk7CisKKwkJLy8g
SWYgdGhlIERPTSBpcyBhbHJlYWR5IHJlYWR5CisJCWlmICggalF1ZXJ5LmlzUmVhZHkgKQorCQkJ
Ly8gRXhlY3V0ZSB0aGUgZnVuY3Rpb24gaW1tZWRpYXRlbHkKKwkJCWZuLmNhbGwoIGRvY3VtZW50
LCBqUXVlcnkgKTsKKworCQkvLyBPdGhlcndpc2UsIHJlbWVtYmVyIHRoZSBmdW5jdGlvbiBmb3Ig
bGF0ZXIKKwkJZWxzZQorCQkJLy8gQWRkIHRoZSBmdW5jdGlvbiB0byB0aGUgd2FpdCBsaXN0CisJ
CQlqUXVlcnkucmVhZHlMaXN0LnB1c2goIGZuICk7CisKKwkJcmV0dXJuIHRoaXM7CisJfSwKKwkK
KwlsaXZlOiBmdW5jdGlvbiggdHlwZSwgZm4gKXsKKwkJdmFyIHByb3h5ID0galF1ZXJ5LmV2ZW50
LnByb3h5KCBmbiApOworCQlwcm94eS5ndWlkICs9IHRoaXMuc2VsZWN0b3IgKyB0eXBlOworCisJ
CWpRdWVyeShkb2N1bWVudCkuYmluZCggbGl2ZUNvbnZlcnQodHlwZSwgdGhpcy5zZWxlY3Rvciks
IHRoaXMuc2VsZWN0b3IsIHByb3h5ICk7CisKKwkJcmV0dXJuIHRoaXM7CisJfSwKKwkKKwlkaWU6
IGZ1bmN0aW9uKCB0eXBlLCBmbiApeworCQlqUXVlcnkoZG9jdW1lbnQpLnVuYmluZCggbGl2ZUNv
bnZlcnQodHlwZSwgdGhpcy5zZWxlY3RvciksIGZuID8geyBndWlkOiBmbi5ndWlkICsgdGhpcy5z
ZWxlY3RvciArIHR5cGUgfSA6IG51bGwgKTsKKwkJcmV0dXJuIHRoaXM7CisJfQorfSk7CisKK2Z1
bmN0aW9uIGxpdmVIYW5kbGVyKCBldmVudCApeworCXZhciBjaGVjayA9IFJlZ0V4cCgiKF58XFwu
KSIgKyBldmVudC50eXBlICsgIihcXC58JCkiKSwKKwkJc3RvcCA9IHRydWUsCisJCWVsZW1zID0g
W107CisKKwlqUXVlcnkuZWFjaChqUXVlcnkuZGF0YSh0aGlzLCAiZXZlbnRzIikubGl2ZSB8fCBb
XSwgZnVuY3Rpb24oaSwgZm4peworCQlpZiAoIGNoZWNrLnRlc3QoZm4udHlwZSkgKSB7CisJCQl2
YXIgZWxlbSA9IGpRdWVyeShldmVudC50YXJnZXQpLmNsb3Nlc3QoZm4uZGF0YSlbMF07CisJCQlp
ZiAoIGVsZW0gKQorCQkJCWVsZW1zLnB1c2goeyBlbGVtOiBlbGVtLCBmbjogZm4gfSk7CisJCX0K
Kwl9KTsKKworCWVsZW1zLnNvcnQoZnVuY3Rpb24oYSxiKSB7CisJCXJldHVybiBqUXVlcnkuZGF0
YShhLmVsZW0sICJjbG9zZXN0IikgLSBqUXVlcnkuZGF0YShiLmVsZW0sICJjbG9zZXN0Iik7CisJ
fSk7CisJCisJalF1ZXJ5LmVhY2goZWxlbXMsIGZ1bmN0aW9uKCl7CisJCWlmICggdGhpcy5mbi5j
YWxsKHRoaXMuZWxlbSwgZXZlbnQsIHRoaXMuZm4uZGF0YSkgPT09IGZhbHNlICkKKwkJCXJldHVy
biAoc3RvcCA9IGZhbHNlKTsKKwl9KTsKKworCXJldHVybiBzdG9wOworfQorCitmdW5jdGlvbiBs
aXZlQ29udmVydCh0eXBlLCBzZWxlY3Rvcil7CisJcmV0dXJuIFsibGl2ZSIsIHR5cGUsIHNlbGVj
dG9yLnJlcGxhY2UoL1wuL2csICJgIikucmVwbGFjZSgvIC9nLCAifCIpXS5qb2luKCIuIik7Cit9
CisKK2pRdWVyeS5leHRlbmQoeworCWlzUmVhZHk6IGZhbHNlLAorCXJlYWR5TGlzdDogW10sCisJ
Ly8gSGFuZGxlIHdoZW4gdGhlIERPTSBpcyByZWFkeQorCXJlYWR5OiBmdW5jdGlvbigpIHsKKwkJ
Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIERPTSBpcyBub3QgYWxyZWFkeSBsb2FkZWQKKwkJaWYgKCAh
alF1ZXJ5LmlzUmVhZHkgKSB7CisJCQkvLyBSZW1lbWJlciB0aGF0IHRoZSBET00gaXMgcmVhZHkK
KwkJCWpRdWVyeS5pc1JlYWR5ID0gdHJ1ZTsKKworCQkJLy8gSWYgdGhlcmUgYXJlIGZ1bmN0aW9u
cyBib3VuZCwgdG8gZXhlY3V0ZQorCQkJaWYgKCBqUXVlcnkucmVhZHlMaXN0ICkgeworCQkJCS8v
IEV4ZWN1dGUgYWxsIG9mIHRoZW0KKwkJCQlqUXVlcnkuZWFjaCggalF1ZXJ5LnJlYWR5TGlzdCwg
ZnVuY3Rpb24oKXsKKwkJCQkJdGhpcy5jYWxsKCBkb2N1bWVudCwgalF1ZXJ5ICk7CisJCQkJfSk7
CisKKwkJCQkvLyBSZXNldCB0aGUgbGlzdCBvZiBmdW5jdGlvbnMKKwkJCQlqUXVlcnkucmVhZHlM
aXN0ID0gbnVsbDsKKwkJCX0KKworCQkJLy8gVHJpZ2dlciBhbnkgYm91bmQgcmVhZHkgZXZlbnRz
CisJCQlqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpOworCQl9CisJfQor
fSk7CisKK3ZhciByZWFkeUJvdW5kID0gZmFsc2U7CisKK2Z1bmN0aW9uIGJpbmRSZWFkeSgpewor
CWlmICggcmVhZHlCb3VuZCApIHJldHVybjsKKwlyZWFkeUJvdW5kID0gdHJ1ZTsKKworCS8vIE1v
emlsbGEsIE9wZXJhIGFuZCB3ZWJraXQgbmlnaHRsaWVzIGN1cnJlbnRseSBzdXBwb3J0IHRoaXMg
ZXZlbnQKKwlpZiAoIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgKSB7CisJCS8vIFVzZSB0aGUg
aGFuZHkgZXZlbnQgY2FsbGJhY2sKKwkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggIkRPTUNv
bnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpeworCQkJZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5l
ciggIkRPTUNvbnRlbnRMb2FkZWQiLCBhcmd1bWVudHMuY2FsbGVlLCBmYWxzZSApOworCQkJalF1
ZXJ5LnJlYWR5KCk7CisJCX0sIGZhbHNlICk7CisKKwkvLyBJZiBJRSBldmVudCBtb2RlbCBpcyB1
c2VkCisJfSBlbHNlIGlmICggZG9jdW1lbnQuYXR0YWNoRXZlbnQgKSB7CisJCS8vIGVuc3VyZSBm
aXJpbmcgYmVmb3JlIG9ubG9hZCwKKwkJLy8gbWF5YmUgbGF0ZSBidXQgc2FmZSBhbHNvIGZvciBp
ZnJhbWVzCisJCWRvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBmdW5j
dGlvbigpeworCQkJaWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiICkgewor
CQkJCWRvY3VtZW50LmRldGFjaEV2ZW50KCAib25yZWFkeXN0YXRlY2hhbmdlIiwgYXJndW1lbnRz
LmNhbGxlZSApOworCQkJCWpRdWVyeS5yZWFkeSgpOworCQkJfQorCQl9KTsKKworCQkvLyBJZiBJ
RSBhbmQgbm90IGFuIGlmcmFtZQorCQkvLyBjb250aW51YWxseSBjaGVjayB0byBzZWUgaWYgdGhl
IGRvY3VtZW50IGlzIHJlYWR5CisJCWlmICggZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Ny
b2xsICYmIHdpbmRvdyA9PSB3aW5kb3cudG9wICkgKGZ1bmN0aW9uKCl7CisJCQlpZiAoIGpRdWVy
eS5pc1JlYWR5ICkgcmV0dXJuOworCisJCQl0cnkgeworCQkJCS8vIElmIElFIGlzIHVzZWQsIHVz
ZSB0aGUgdHJpY2sgYnkgRGllZ28gUGVyaW5pCisJCQkJLy8gaHR0cDovL2phdmFzY3JpcHQubndi
b3guY29tL0lFQ29udGVudExvYWRlZC8KKwkJCQlkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9T
Y3JvbGwoImxlZnQiKTsKKwkJCX0gY2F0Y2goIGVycm9yICkgeworCQkJCXNldFRpbWVvdXQoIGFy
Z3VtZW50cy5jYWxsZWUsIDAgKTsKKwkJCQlyZXR1cm47CisJCQl9CisKKwkJCS8vIGFuZCBleGVj
dXRlIGFueSB3YWl0aW5nIGZ1bmN0aW9ucworCQkJalF1ZXJ5LnJlYWR5KCk7CisJCX0pKCk7CisJ
fQorCisJLy8gQSBmYWxsYmFjayB0byB3aW5kb3cub25sb2FkLCB0aGF0IHdpbGwgYWx3YXlzIHdv
cmsKKwlqUXVlcnkuZXZlbnQuYWRkKCB3aW5kb3csICJsb2FkIiwgalF1ZXJ5LnJlYWR5ICk7Cit9
CisKK2pRdWVyeS5lYWNoKCAoImJsdXIsZm9jdXMsbG9hZCxyZXNpemUsc2Nyb2xsLHVubG9hZCxj
bGljayxkYmxjbGljaywiICsKKwkibW91c2Vkb3duLG1vdXNldXAsbW91c2Vtb3ZlLG1vdXNlb3Zl
cixtb3VzZW91dCxtb3VzZWVudGVyLG1vdXNlbGVhdmUsIiArCisJImNoYW5nZSxzZWxlY3Qsc3Vi
bWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5zcGxpdCgiLCIpLCBmdW5jdGlvbihp
LCBuYW1lKXsKKworCS8vIEhhbmRsZSBldmVudCBiaW5kaW5nCisJalF1ZXJ5LmZuW25hbWVdID0g
ZnVuY3Rpb24oZm4peworCQlyZXR1cm4gZm4gPyB0aGlzLmJpbmQobmFtZSwgZm4pIDogdGhpcy50
cmlnZ2VyKG5hbWUpOworCX07Cit9KTsKKworLy8gUHJldmVudCBtZW1vcnkgbGVha3MgaW4gSUUK
Ky8vIEFuZCBwcmV2ZW50IGVycm9ycyBvbiByZWZyZXNoIHdpdGggZXZlbnRzIGxpa2UgbW91c2Vv
dmVyIGluIG90aGVyIGJyb3dzZXJzCisvLyBXaW5kb3cgaXNuJ3QgaW5jbHVkZWQgc28gYXMgbm90
IHRvIHVuYmluZCBleGlzdGluZyB1bmxvYWQgZXZlbnRzCitqUXVlcnkoIHdpbmRvdyApLmJpbmQo
ICd1bmxvYWQnLCBmdW5jdGlvbigpeyAKKwlmb3IgKCB2YXIgaWQgaW4galF1ZXJ5LmNhY2hlICkK
KwkJLy8gU2tpcCB0aGUgd2luZG93CisJCWlmICggaWQgIT0gMSAmJiBqUXVlcnkuY2FjaGVbIGlk
IF0uaGFuZGxlICkKKwkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIGpRdWVyeS5jYWNoZVsgaWQgXS5o
YW5kbGUuZWxlbSApOworfSk7IAorKGZ1bmN0aW9uKCl7CisKKwlqUXVlcnkuc3VwcG9ydCA9IHt9
OworCisJdmFyIHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsCisJCXNjcmlwdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLAorCQlkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSwKKwkJaWQgPSAic2NyaXB0IiArIChuZXcgRGF0ZSkuZ2V0VGltZSgpOwor
CisJZGl2LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisJZGl2LmlubmVySFRNTCA9ICcgICA8bGlu
ay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVm
dDtvcGFjaXR5Oi41OyI+YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0
PjxvYmplY3Q+PHBhcmFtLz48L29iamVjdD4nOworCisJdmFyIGFsbCA9IGRpdi5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiKiIpLAorCQlhID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIilbMF07
CisKKwkvLyBDYW4ndCBnZXQgYmFzaWMgdGVzdCBzdXBwb3J0CisJaWYgKCAhYWxsIHx8ICFhbGwu
bGVuZ3RoIHx8ICFhICkgeworCQlyZXR1cm47CisJfQorCisJalF1ZXJ5LnN1cHBvcnQgPSB7CisJ
CS8vIElFIHN0cmlwcyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiAuaW5uZXJIVE1MIGlzIHVzZWQK
KwkJbGVhZGluZ1doaXRlc3BhY2U6IGRpdi5maXJzdENoaWxkLm5vZGVUeXBlID09IDMsCisJCQor
CQkvLyBNYWtlIHN1cmUgdGhhdCB0Ym9keSBlbGVtZW50cyBhcmVuJ3QgYXV0b21hdGljYWxseSBp
bnNlcnRlZAorCQkvLyBJRSB3aWxsIGluc2VydCB0aGVtIGludG8gZW1wdHkgdGFibGVzCisJCXRi
b2R5OiAhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCwKKwkJCisJCS8v
IE1ha2Ugc3VyZSB0aGF0IHlvdSBjYW4gZ2V0IGFsbCBlbGVtZW50cyBpbiBhbiA8b2JqZWN0PiBl
bGVtZW50CisJCS8vIElFIDcgYWx3YXlzIHJldHVybnMgbm8gcmVzdWx0cworCQlvYmplY3RBbGw6
ICEhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXQorCQkJLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCIqIikubGVuZ3RoLAorCQkKKwkJLy8gTWFrZSBzdXJlIHRoYXQgbGluayBlbGVt
ZW50cyBnZXQgc2VyaWFsaXplZCBjb3JyZWN0bHkgYnkgaW5uZXJIVE1MCisJCS8vIFRoaXMgcmVx
dWlyZXMgYSB3cmFwcGVyIGVsZW1lbnQgaW4gSUUKKwkJaHRtbFNlcmlhbGl6ZTogISFkaXYuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKS5sZW5ndGgsCisJCQorCQkvLyBHZXQgdGhlIHN0eWxl
IGluZm9ybWF0aW9uIGZyb20gZ2V0QXR0cmlidXRlCisJCS8vIChJRSB1c2VzIC5jc3NUZXh0IGlu
c3RlZCkKKwkJc3R5bGU6IC9yZWQvLnRlc3QoIGEuZ2V0QXR0cmlidXRlKCJzdHlsZSIpICksCisJ
CQorCQkvLyBNYWtlIHN1cmUgdGhhdCBVUkxzIGFyZW4ndCBtYW5pcHVsYXRlZAorCQkvLyAoSUUg
bm9ybWFsaXplcyBpdCBieSBkZWZhdWx0KQorCQlocmVmTm9ybWFsaXplZDogYS5nZXRBdHRyaWJ1
dGUoImhyZWYiKSA9PT0gIi9hIiwKKwkJCisJCS8vIE1ha2Ugc3VyZSB0aGF0IGVsZW1lbnQgb3Bh
Y2l0eSBleGlzdHMKKwkJLy8gKElFIHVzZXMgZmlsdGVyIGluc3RlYWQpCisJCW9wYWNpdHk6IGEu
c3R5bGUub3BhY2l0eSA9PT0gIjAuNSIsCisJCQorCQkvLyBWZXJpZnkgc3R5bGUgZmxvYXQgZXhp
c3RlbmNlCisJCS8vIChJRSB1c2VzIHN0eWxlRmxvYXQgaW5zdGVhZCBvZiBjc3NGbG9hdCkKKwkJ
Y3NzRmxvYXQ6ICEhYS5zdHlsZS5jc3NGbG9hdCwKKworCQkvLyBXaWxsIGJlIGRlZmluZWQgbGF0
ZXIKKwkJc2NyaXB0RXZhbDogZmFsc2UsCisJCW5vQ2xvbmVFdmVudDogdHJ1ZSwKKwkJYm94TW9k
ZWw6IG51bGwKKwl9OworCQorCXNjcmlwdC50eXBlID0gInRleHQvamF2YXNjcmlwdCI7CisJdHJ5
IHsKKwkJc2NyaXB0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggIndpbmRv
dy4iICsgaWQgKyAiPTE7IiApICk7CisJfSBjYXRjaChlKXt9CisKKwlyb290Lmluc2VydEJlZm9y
ZSggc2NyaXB0LCByb290LmZpcnN0Q2hpbGQgKTsKKwkKKwkvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
ZXhlY3V0aW9uIG9mIGNvZGUgd29ya3MgYnkgaW5qZWN0aW5nIGEgc2NyaXB0CisJLy8gdGFnIHdp
dGggYXBwZW5kQ2hpbGQvY3JlYXRlVGV4dE5vZGUKKwkvLyAoSUUgZG9lc24ndCBzdXBwb3J0IHRo
aXMsIGZhaWxzLCBhbmQgdXNlcyAudGV4dCBpbnN0ZWFkKQorCWlmICggd2luZG93WyBpZCBdICkg
eworCQlqUXVlcnkuc3VwcG9ydC5zY3JpcHRFdmFsID0gdHJ1ZTsKKwkJZGVsZXRlIHdpbmRvd1sg
aWQgXTsKKwl9CisKKwlyb290LnJlbW92ZUNoaWxkKCBzY3JpcHQgKTsKKworCWlmICggZGl2LmF0
dGFjaEV2ZW50ICYmIGRpdi5maXJlRXZlbnQgKSB7CisJCWRpdi5hdHRhY2hFdmVudCgib25jbGlj
ayIsIGZ1bmN0aW9uKCl7CisJCQkvLyBDbG9uaW5nIGEgbm9kZSBzaG91bGRuJ3QgY29weSBvdmVy
IGFueQorCQkJLy8gYm91bmQgZXZlbnQgaGFuZGxlcnMgKElFIGRvZXMgdGhpcykKKwkJCWpRdWVy
eS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCA9IGZhbHNlOworCQkJZGl2LmRldGFjaEV2ZW50KCJvbmNs
aWNrIiwgYXJndW1lbnRzLmNhbGxlZSk7CisJCX0pOworCQlkaXYuY2xvbmVOb2RlKHRydWUpLmZp
cmVFdmVudCgib25jbGljayIpOworCX0KKworCS8vIEZpZ3VyZSBvdXQgaWYgdGhlIFczQyBib3gg
bW9kZWwgd29ya3MgYXMgZXhwZWN0ZWQKKwkvLyBkb2N1bWVudC5ib2R5IG11c3QgZXhpc3QgYmVm
b3JlIHdlIGNhbiBkbyB0aGlzCisJalF1ZXJ5KGZ1bmN0aW9uKCl7CisJCXZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKwkJZGl2LnN0eWxlLndpZHRoID0gZGl2LnN0eWxl
LnBhZGRpbmdMZWZ0ID0gIjFweCI7CisKKwkJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCggZGl2
ICk7CisJCWpRdWVyeS5ib3hNb2RlbCA9IGpRdWVyeS5zdXBwb3J0LmJveE1vZGVsID0gZGl2Lm9m
ZnNldFdpZHRoID09PSAyOworCQlkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKCBkaXYgKS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOworCX0pOworfSkoKTsKKwordmFyIHN0eWxlRmxvYXQgPSBqUXVl
cnkuc3VwcG9ydC5jc3NGbG9hdCA/ICJjc3NGbG9hdCIgOiAic3R5bGVGbG9hdCI7CisKK2pRdWVy
eS5wcm9wcyA9IHsKKwkiZm9yIjogImh0bWxGb3IiLAorCSJjbGFzcyI6ICJjbGFzc05hbWUiLAor
CSJmbG9hdCI6IHN0eWxlRmxvYXQsCisJY3NzRmxvYXQ6IHN0eWxlRmxvYXQsCisJc3R5bGVGbG9h
dDogc3R5bGVGbG9hdCwKKwlyZWFkb25seTogInJlYWRPbmx5IiwKKwltYXhsZW5ndGg6ICJtYXhM
ZW5ndGgiLAorCWNlbGxzcGFjaW5nOiAiY2VsbFNwYWNpbmciLAorCXJvd3NwYW46ICJyb3dTcGFu
IiwKKwl0YWJpbmRleDogInRhYkluZGV4IgorfTsKK2pRdWVyeS5mbi5leHRlbmQoeworCS8vIEtl
ZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9hZAorCV9sb2FkOiBqUXVlcnkuZm4ubG9hZCwKKworCWxv
YWQ6IGZ1bmN0aW9uKCB1cmwsIHBhcmFtcywgY2FsbGJhY2sgKSB7CisJCWlmICggdHlwZW9mIHVy
bCAhPT0gInN0cmluZyIgKQorCQkJcmV0dXJuIHRoaXMuX2xvYWQoIHVybCApOworCisJCXZhciBv
ZmYgPSB1cmwuaW5kZXhPZigiICIpOworCQlpZiAoIG9mZiA+PSAwICkgeworCQkJdmFyIHNlbGVj
dG9yID0gdXJsLnNsaWNlKG9mZiwgdXJsLmxlbmd0aCk7CisJCQl1cmwgPSB1cmwuc2xpY2UoMCwg
b2ZmKTsKKwkJfQorCisJCS8vIERlZmF1bHQgdG8gYSBHRVQgcmVxdWVzdAorCQl2YXIgdHlwZSA9
ICJHRVQiOworCisJCS8vIElmIHRoZSBzZWNvbmQgcGFyYW1ldGVyIHdhcyBwcm92aWRlZAorCQlp
ZiAoIHBhcmFtcyApCisJCQkvLyBJZiBpdCdzIGEgZnVuY3Rpb24KKwkJCWlmICggalF1ZXJ5Lmlz
RnVuY3Rpb24oIHBhcmFtcyApICkgeworCQkJCS8vIFdlIGFzc3VtZSB0aGF0IGl0J3MgdGhlIGNh
bGxiYWNrCisJCQkJY2FsbGJhY2sgPSBwYXJhbXM7CisJCQkJcGFyYW1zID0gbnVsbDsKKworCQkJ
Ly8gT3RoZXJ3aXNlLCBidWlsZCBhIHBhcmFtIHN0cmluZworCQkJfSBlbHNlIGlmKCB0eXBlb2Yg
cGFyYW1zID09PSAib2JqZWN0IiApIHsKKwkJCQlwYXJhbXMgPSBqUXVlcnkucGFyYW0oIHBhcmFt
cyApOworCQkJCXR5cGUgPSAiUE9TVCI7CisJCQl9CisKKwkJdmFyIHNlbGYgPSB0aGlzOworCisJ
CS8vIFJlcXVlc3QgdGhlIHJlbW90ZSBkb2N1bWVudAorCQlqUXVlcnkuYWpheCh7CisJCQl1cmw6
IHVybCwKKwkJCXR5cGU6IHR5cGUsCisJCQlkYXRhVHlwZTogImh0bWwiLAorCQkJZGF0YTogcGFy
YW1zLAorCQkJY29tcGxldGU6IGZ1bmN0aW9uKHJlcywgc3RhdHVzKXsKKwkJCQkvLyBJZiBzdWNj
ZXNzZnVsLCBpbmplY3QgdGhlIEhUTUwgaW50byBhbGwgdGhlIG1hdGNoZWQgZWxlbWVudHMKKwkJ
CQlpZiAoIHN0YXR1cyA9PSAic3VjY2VzcyIgfHwgc3RhdHVzID09ICJub3Rtb2RpZmllZCIgKQor
CQkJCQkvLyBTZWUgaWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkCisJCQkJCXNlbGYuaHRtbCgg
c2VsZWN0b3IgPworCQkJCQkJLy8gQ3JlYXRlIGEgZHVtbXkgZGl2IHRvIGhvbGQgdGhlIHJlc3Vs
dHMKKwkJCQkJCWpRdWVyeSgiPGRpdi8+IikKKwkJCQkJCQkvLyBpbmplY3QgdGhlIGNvbnRlbnRz
IG9mIHRoZSBkb2N1bWVudCBpbiwgcmVtb3ZpbmcgdGhlIHNjcmlwdHMKKwkJCQkJCQkvLyB0byBh
dm9pZCBhbnkgJ1Blcm1pc3Npb24gRGVuaWVkJyBlcnJvcnMgaW4gSUUKKwkJCQkJCQkuYXBwZW5k
KHJlcy5yZXNwb25zZVRleHQucmVwbGFjZSgvPHNjcmlwdCgufFxzKSo/XC9zY3JpcHQ+L2csICIi
KSkKKworCQkJCQkJCS8vIExvY2F0ZSB0aGUgc3BlY2lmaWVkIGVsZW1lbnRzCisJCQkJCQkJLmZp
bmQoc2VsZWN0b3IpIDoKKworCQkJCQkJLy8gSWYgbm90LCBqdXN0IGluamVjdCB0aGUgZnVsbCBy
ZXN1bHQKKwkJCQkJCXJlcy5yZXNwb25zZVRleHQgKTsKKworCQkJCWlmKCBjYWxsYmFjayApCisJ
CQkJCXNlbGYuZWFjaCggY2FsbGJhY2ssIFtyZXMucmVzcG9uc2VUZXh0LCBzdGF0dXMsIHJlc10g
KTsKKwkJCX0KKwkJfSk7CisJCXJldHVybiB0aGlzOworCX0sCisKKwlzZXJpYWxpemU6IGZ1bmN0
aW9uKCkgeworCQlyZXR1cm4galF1ZXJ5LnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSk7CisJ
fSwKKwlzZXJpYWxpemVBcnJheTogZnVuY3Rpb24oKSB7CisJCXJldHVybiB0aGlzLm1hcChmdW5j
dGlvbigpeworCQkJcmV0dXJuIHRoaXMuZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KHRoaXMu
ZWxlbWVudHMpIDogdGhpczsKKwkJfSkKKwkJLmZpbHRlcihmdW5jdGlvbigpeworCQkJcmV0dXJu
IHRoaXMubmFtZSAmJiAhdGhpcy5kaXNhYmxlZCAmJgorCQkJCSh0aGlzLmNoZWNrZWQgfHwgL3Nl
bGVjdHx0ZXh0YXJlYS9pLnRlc3QodGhpcy5ub2RlTmFtZSkgfHwKKwkJCQkJL3RleHR8aGlkZGVu
fHBhc3N3b3JkfHNlYXJjaC9pLnRlc3QodGhpcy50eXBlKSk7CisJCX0pCisJCS5tYXAoZnVuY3Rp
b24oaSwgZWxlbSl7CisJCQl2YXIgdmFsID0galF1ZXJ5KHRoaXMpLnZhbCgpOworCQkJcmV0dXJu
IHZhbCA9PSBudWxsID8gbnVsbCA6CisJCQkJalF1ZXJ5LmlzQXJyYXkodmFsKSA/CisJCQkJCWpR
dWVyeS5tYXAoIHZhbCwgZnVuY3Rpb24odmFsLCBpKXsKKwkJCQkJCXJldHVybiB7bmFtZTogZWxl
bS5uYW1lLCB2YWx1ZTogdmFsfTsKKwkJCQkJfSkgOgorCQkJCQl7bmFtZTogZWxlbS5uYW1lLCB2
YWx1ZTogdmFsfTsKKwkJfSkuZ2V0KCk7CisJfQorfSk7CisKKy8vIEF0dGFjaCBhIGJ1bmNoIG9m
IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgY29tbW9uIEFKQVggZXZlbnRzCitqUXVlcnkuZWFjaCgg
ImFqYXhTdGFydCxhamF4U3RvcCxhamF4Q29tcGxldGUsYWpheEVycm9yLGFqYXhTdWNjZXNzLGFq
YXhTZW5kIi5zcGxpdCgiLCIpLCBmdW5jdGlvbihpLG8peworCWpRdWVyeS5mbltvXSA9IGZ1bmN0
aW9uKGYpeworCQlyZXR1cm4gdGhpcy5iaW5kKG8sIGYpOworCX07Cit9KTsKKwordmFyIGpzYyA9
IG5vdygpOworCitqUXVlcnkuZXh0ZW5kKHsKKyAgCisJZ2V0OiBmdW5jdGlvbiggdXJsLCBkYXRh
LCBjYWxsYmFjaywgdHlwZSApIHsKKwkJLy8gc2hpZnQgYXJndW1lbnRzIGlmIGRhdGEgYXJndW1l
bnQgd2FzIG9tbWl0ZWQKKwkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggZGF0YSApICkgeworCQkJ
Y2FsbGJhY2sgPSBkYXRhOworCQkJZGF0YSA9IG51bGw7CisJCX0KKworCQlyZXR1cm4galF1ZXJ5
LmFqYXgoeworCQkJdHlwZTogIkdFVCIsCisJCQl1cmw6IHVybCwKKwkJCWRhdGE6IGRhdGEsCisJ
CQlzdWNjZXNzOiBjYWxsYmFjaywKKwkJCWRhdGFUeXBlOiB0eXBlCisJCX0pOworCX0sCisKKwln
ZXRTY3JpcHQ6IGZ1bmN0aW9uKCB1cmwsIGNhbGxiYWNrICkgeworCQlyZXR1cm4galF1ZXJ5Lmdl
dCh1cmwsIG51bGwsIGNhbGxiYWNrLCAic2NyaXB0Iik7CisJfSwKKworCWdldEpTT046IGZ1bmN0
aW9uKCB1cmwsIGRhdGEsIGNhbGxiYWNrICkgeworCQlyZXR1cm4galF1ZXJ5LmdldCh1cmwsIGRh
dGEsIGNhbGxiYWNrLCAianNvbiIpOworCX0sCisKKwlwb3N0OiBmdW5jdGlvbiggdXJsLCBkYXRh
LCBjYWxsYmFjaywgdHlwZSApIHsKKwkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggZGF0YSApICkg
eworCQkJY2FsbGJhY2sgPSBkYXRhOworCQkJZGF0YSA9IHt9OworCQl9CisKKwkJcmV0dXJuIGpR
dWVyeS5hamF4KHsKKwkJCXR5cGU6ICJQT1NUIiwKKwkJCXVybDogdXJsLAorCQkJZGF0YTogZGF0
YSwKKwkJCXN1Y2Nlc3M6IGNhbGxiYWNrLAorCQkJZGF0YVR5cGU6IHR5cGUKKwkJfSk7CisJfSwK
KworCWFqYXhTZXR1cDogZnVuY3Rpb24oIHNldHRpbmdzICkgeworCQlqUXVlcnkuZXh0ZW5kKCBq
UXVlcnkuYWpheFNldHRpbmdzLCBzZXR0aW5ncyApOworCX0sCisKKwlhamF4U2V0dGluZ3M6IHsK
KwkJdXJsOiBsb2NhdGlvbi5ocmVmLAorCQlnbG9iYWw6IHRydWUsCisJCXR5cGU6ICJHRVQiLAor
CQljb250ZW50VHlwZTogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCisJCXBy
b2Nlc3NEYXRhOiB0cnVlLAorCQlhc3luYzogdHJ1ZSwKKwkJLyoKKwkJdGltZW91dDogMCwKKwkJ
ZGF0YTogbnVsbCwKKwkJdXNlcm5hbWU6IG51bGwsCisJCXBhc3N3b3JkOiBudWxsLAorCQkqLwor
CQkvLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JqZWN0OyBNaWNyb3NvZnQgZmFpbGVkIHRvIHByb3Bl
cmx5CisJCS8vIGltcGxlbWVudCB0aGUgWE1MSHR0cFJlcXVlc3QgaW4gSUU3LCBzbyB3ZSB1c2Ug
dGhlIEFjdGl2ZVhPYmplY3Qgd2hlbiBpdCBpcyBhdmFpbGFibGUKKwkJLy8gVGhpcyBmdW5jdGlv
biBjYW4gYmUgb3ZlcnJpZGVuIGJ5IGNhbGxpbmcgalF1ZXJ5LmFqYXhTZXR1cAorCQl4aHI6ZnVu
Y3Rpb24oKXsKKwkJCXJldHVybiB3aW5kb3cuQWN0aXZlWE9iamVjdCA/IG5ldyBBY3RpdmVYT2Jq
ZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpIDogbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisJCX0sCisJ
CWFjY2VwdHM6IHsKKwkJCXhtbDogImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLAorCQkJaHRt
bDogInRleHQvaHRtbCIsCisJCQlzY3JpcHQ6ICJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9u
L2phdmFzY3JpcHQiLAorCQkJanNvbjogImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlw
dCIsCisJCQl0ZXh0OiAidGV4dC9wbGFpbiIsCisJCQlfZGVmYXVsdDogIiovKiIKKwkJfQorCX0s
CisKKwkvLyBMYXN0LU1vZGlmaWVkIGhlYWRlciBjYWNoZSBmb3IgbmV4dCByZXF1ZXN0CisJbGFz
dE1vZGlmaWVkOiB7fSwKKworCWFqYXg6IGZ1bmN0aW9uKCBzICkgeworCQkvLyBFeHRlbmQgdGhl
IHNldHRpbmdzLCBidXQgcmUtZXh0ZW5kICdzJyBzbyB0aGF0IGl0IGNhbiBiZQorCQkvLyBjaGVj
a2VkIGFnYWluIGxhdGVyIChpbiB0aGUgdGVzdCBzdWl0ZSwgc3BlY2lmaWNhbGx5KQorCQlzID0g
alF1ZXJ5LmV4dGVuZCh0cnVlLCBzLCBqUXVlcnkuZXh0ZW5kKHRydWUsIHt9LCBqUXVlcnkuYWph
eFNldHRpbmdzLCBzKSk7CisKKwkJdmFyIGpzb25wLCBqc3JlID0gLz1cPygmfCQpL2csIHN0YXR1
cywgZGF0YSwKKwkJCXR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTsKKworCQkvLyBjb252ZXJ0
IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmcKKwkJaWYgKCBzLmRhdGEgJiYgcy5wcm9jZXNz
RGF0YSAmJiB0eXBlb2Ygcy5kYXRhICE9PSAic3RyaW5nIiApCisJCQlzLmRhdGEgPSBqUXVlcnku
cGFyYW0ocy5kYXRhKTsKKworCQkvLyBIYW5kbGUgSlNPTlAgUGFyYW1ldGVyIENhbGxiYWNrcwor
CQlpZiAoIHMuZGF0YVR5cGUgPT0gImpzb25wIiApIHsKKwkJCWlmICggdHlwZSA9PSAiR0VUIiAp
IHsKKwkJCQlpZiAoICFzLnVybC5tYXRjaChqc3JlKSApCisJCQkJCXMudXJsICs9IChzLnVybC5t
YXRjaCgvXD8vKSA/ICImIiA6ICI/IikgKyAocy5qc29ucCB8fCAiY2FsbGJhY2siKSArICI9PyI7
CisJCQl9IGVsc2UgaWYgKCAhcy5kYXRhIHx8ICFzLmRhdGEubWF0Y2goanNyZSkgKQorCQkJCXMu
ZGF0YSA9IChzLmRhdGEgPyBzLmRhdGEgKyAiJiIgOiAiIikgKyAocy5qc29ucCB8fCAiY2FsbGJh
Y2siKSArICI9PyI7CisJCQlzLmRhdGFUeXBlID0gImpzb24iOworCQl9CisKKwkJLy8gQnVpbGQg
dGVtcG9yYXJ5IEpTT05QIGZ1bmN0aW9uCisJCWlmICggcy5kYXRhVHlwZSA9PSAianNvbiIgJiYg
KHMuZGF0YSAmJiBzLmRhdGEubWF0Y2goanNyZSkgfHwgcy51cmwubWF0Y2goanNyZSkpICkgewor
CQkJanNvbnAgPSAianNvbnAiICsganNjKys7CisKKwkJCS8vIFJlcGxhY2UgdGhlID0/IHNlcXVl
bmNlIGJvdGggaW4gdGhlIHF1ZXJ5IHN0cmluZyBhbmQgdGhlIGRhdGEKKwkJCWlmICggcy5kYXRh
ICkKKwkJCQlzLmRhdGEgPSAocy5kYXRhICsgIiIpLnJlcGxhY2UoanNyZSwgIj0iICsganNvbnAg
KyAiJDEiKTsKKwkJCXMudXJsID0gcy51cmwucmVwbGFjZShqc3JlLCAiPSIgKyBqc29ucCArICIk
MSIpOworCisJCQkvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZQorCQkJLy8gdGhhdCBhIEpTT05QIHN0
eWxlIHJlc3BvbnNlIGlzIGV4ZWN1dGVkIHByb3Blcmx5CisJCQlzLmRhdGFUeXBlID0gInNjcmlw
dCI7CisKKwkJCS8vIEhhbmRsZSBKU09OUC1zdHlsZSBsb2FkaW5nCisJCQl3aW5kb3dbIGpzb25w
IF0gPSBmdW5jdGlvbih0bXApeworCQkJCWRhdGEgPSB0bXA7CisJCQkJc3VjY2VzcygpOworCQkJ
CWNvbXBsZXRlKCk7CisJCQkJLy8gR2FyYmFnZSBjb2xsZWN0CisJCQkJd2luZG93WyBqc29ucCBd
ID0gdW5kZWZpbmVkOworCQkJCXRyeXsgZGVsZXRlIHdpbmRvd1sganNvbnAgXTsgfSBjYXRjaChl
KXt9CisJCQkJaWYgKCBoZWFkICkKKwkJCQkJaGVhZC5yZW1vdmVDaGlsZCggc2NyaXB0ICk7CisJ
CQl9OworCQl9CisKKwkJaWYgKCBzLmRhdGFUeXBlID09ICJzY3JpcHQiICYmIHMuY2FjaGUgPT0g
bnVsbCApCisJCQlzLmNhY2hlID0gZmFsc2U7CisKKwkJaWYgKCBzLmNhY2hlID09PSBmYWxzZSAm
JiB0eXBlID09ICJHRVQiICkgeworCQkJdmFyIHRzID0gbm93KCk7CisJCQkvLyB0cnkgcmVwbGFj
aW5nIF89IGlmIGl0IGlzIHRoZXJlCisJCQl2YXIgcmV0ID0gcy51cmwucmVwbGFjZSgvKFw/fCYp
Xz0uKj8oJnwkKS8sICIkMV89IiArIHRzICsgIiQyIik7CisJCQkvLyBpZiBub3RoaW5nIHdhcyBy
ZXBsYWNlZCwgYWRkIHRpbWVzdGFtcCB0byB0aGUgZW5kCisJCQlzLnVybCA9IHJldCArICgocmV0
ID09IHMudXJsKSA/IChzLnVybC5tYXRjaCgvXD8vKSA/ICImIiA6ICI/IikgKyAiXz0iICsgdHMg
OiAiIik7CisJCX0KKworCQkvLyBJZiBkYXRhIGlzIGF2YWlsYWJsZSwgYXBwZW5kIGRhdGEgdG8g
dXJsIGZvciBnZXQgcmVxdWVzdHMKKwkJaWYgKCBzLmRhdGEgJiYgdHlwZSA9PSAiR0VUIiApIHsK
KwkJCXMudXJsICs9IChzLnVybC5tYXRjaCgvXD8vKSA/ICImIiA6ICI/IikgKyBzLmRhdGE7CisK
KwkJCS8vIElFIGxpa2VzIHRvIHNlbmQgYm90aCBnZXQgYW5kIHBvc3QgZGF0YSwgcHJldmVudCB0
aGlzCisJCQlzLmRhdGEgPSBudWxsOworCQl9CisKKwkJLy8gV2F0Y2ggZm9yIGEgbmV3IHNldCBv
ZiByZXF1ZXN0cworCQlpZiAoIHMuZ2xvYmFsICYmICEgalF1ZXJ5LmFjdGl2ZSsrICkKKwkJCWpR
dWVyeS5ldmVudC50cmlnZ2VyKCAiYWpheFN0YXJ0IiApOworCisJCS8vIE1hdGNoZXMgYW4gYWJz
b2x1dGUgVVJMLCBhbmQgc2F2ZXMgdGhlIGRvbWFpbgorCQl2YXIgcGFydHMgPSAvXihcdys6KT9c
L1wvKFteXC8/I10rKS8uZXhlYyggcy51cmwgKTsKKworCQkvLyBJZiB3ZSdyZSByZXF1ZXN0aW5n
IGEgcmVtb3RlIGRvY3VtZW50CisJCS8vIGFuZCB0cnlpbmcgdG8gbG9hZCBKU09OIG9yIFNjcmlw
dCB3aXRoIGEgR0VUCisJCWlmICggcy5kYXRhVHlwZSA9PSAic2NyaXB0IiAmJiB0eXBlID09ICJH
RVQiICYmIHBhcnRzCisJCQkmJiAoIHBhcnRzWzFdICYmIHBhcnRzWzFdICE9IGxvY2F0aW9uLnBy
b3RvY29sIHx8IHBhcnRzWzJdICE9IGxvY2F0aW9uLmhvc3QgKSl7CisKKwkJCXZhciBoZWFkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXTsKKwkJCXZhciBzY3JpcHQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKwkJCXNjcmlwdC5zcmMgPSBzLnVy
bDsKKwkJCWlmIChzLnNjcmlwdENoYXJzZXQpCisJCQkJc2NyaXB0LmNoYXJzZXQgPSBzLnNjcmlw
dENoYXJzZXQ7CisKKwkJCS8vIEhhbmRsZSBTY3JpcHQgbG9hZGluZworCQkJaWYgKCAhanNvbnAg
KSB7CisJCQkJdmFyIGRvbmUgPSBmYWxzZTsKKworCQkJCS8vIEF0dGFjaCBoYW5kbGVycyBmb3Ig
YWxsIGJyb3dzZXJzCisJCQkJc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFu
Z2UgPSBmdW5jdGlvbigpeworCQkJCQlpZiAoICFkb25lICYmICghdGhpcy5yZWFkeVN0YXRlIHx8
CisJCQkJCQkJdGhpcy5yZWFkeVN0YXRlID09ICJsb2FkZWQiIHx8IHRoaXMucmVhZHlTdGF0ZSA9
PSAiY29tcGxldGUiKSApIHsKKwkJCQkJCWRvbmUgPSB0cnVlOworCQkJCQkJc3VjY2VzcygpOwor
CQkJCQkJY29tcGxldGUoKTsKKworCQkJCQkJLy8gSGFuZGxlIG1lbW9yeSBsZWFrIGluIElFCisJ
CQkJCQlzY3JpcHQub25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CisJ
CQkJCQloZWFkLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTsKKwkJCQkJfQorCQkJCX07CisJCQl9CisK
KwkJCWhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKworCQkJLy8gV2UgaGFuZGxlIGV2ZXJ5dGhp
bmcgdXNpbmcgdGhlIHNjcmlwdCBlbGVtZW50IGluamVjdGlvbgorCQkJcmV0dXJuIHVuZGVmaW5l
ZDsKKwkJfQorCisJCXZhciByZXF1ZXN0RG9uZSA9IGZhbHNlOworCisJCS8vIENyZWF0ZSB0aGUg
cmVxdWVzdCBvYmplY3QKKwkJdmFyIHhociA9IHMueGhyKCk7CisKKwkJLy8gT3BlbiB0aGUgc29j
a2V0CisJCS8vIFBhc3NpbmcgbnVsbCB1c2VybmFtZSwgZ2VuZXJhdGVzIGEgbG9naW4gcG9wdXAg
b24gT3BlcmEgKCMyODY1KQorCQlpZiggcy51c2VybmFtZSApCisJCQl4aHIub3Blbih0eXBlLCBz
LnVybCwgcy5hc3luYywgcy51c2VybmFtZSwgcy5wYXNzd29yZCk7CisJCWVsc2UKKwkJCXhoci5v
cGVuKHR5cGUsIHMudXJsLCBzLmFzeW5jKTsKKworCQkvLyBOZWVkIGFuIGV4dHJhIHRyeS9jYXRj
aCBmb3IgY3Jvc3MgZG9tYWluIHJlcXVlc3RzIGluIEZpcmVmb3ggMworCQl0cnkgeworCQkJLy8g
U2V0IHRoZSBjb3JyZWN0IGhlYWRlciwgaWYgZGF0YSBpcyBiZWluZyBzZW50CisJCQlpZiAoIHMu
ZGF0YSApCisJCQkJeGhyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsIHMuY29udGVu
dFR5cGUpOworCisJCQkvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciwgaWYgaWZN
b2RpZmllZCBtb2RlLgorCQkJaWYgKCBzLmlmTW9kaWZpZWQgKQorCQkJCXhoci5zZXRSZXF1ZXN0
SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsCisJCQkJCWpRdWVyeS5sYXN0TW9kaWZpZWRbcy51
cmxdIHx8ICJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIgKTsKKworCQkJLy8gU2V0IGhl
YWRlciBzbyB0aGUgY2FsbGVkIHNjcmlwdCBrbm93cyB0aGF0IGl0J3MgYW4gWE1MSHR0cFJlcXVl
c3QKKwkJCXhoci5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwgIlhNTEh0dHBS
ZXF1ZXN0Iik7CisKKwkJCS8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIs
IGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGUKKwkJCXhoci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2Nl
cHQiLCBzLmRhdGFUeXBlICYmIHMuYWNjZXB0c1sgcy5kYXRhVHlwZSBdID8KKwkJCQlzLmFjY2Vw
dHNbIHMuZGF0YVR5cGUgXSArICIsICovKiIgOgorCQkJCXMuYWNjZXB0cy5fZGVmYXVsdCApOwor
CQl9IGNhdGNoKGUpe30KKworCQkvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5k
IGVhcmx5IGFib3J0CisJCWlmICggcy5iZWZvcmVTZW5kICYmIHMuYmVmb3JlU2VuZCh4aHIsIHMp
ID09PSBmYWxzZSApIHsKKwkJCS8vIEhhbmRsZSB0aGUgZ2xvYmFsIEFKQVggY291bnRlcgorCQkJ
aWYgKCBzLmdsb2JhbCAmJiAhIC0talF1ZXJ5LmFjdGl2ZSApCisJCQkJalF1ZXJ5LmV2ZW50LnRy
aWdnZXIoICJhamF4U3RvcCIgKTsKKwkJCS8vIGNsb3NlIG9wZW5kZWQgc29ja2V0CisJCQl4aHIu
YWJvcnQoKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWlmICggcy5nbG9iYWwgKQorCQkJ
alF1ZXJ5LmV2ZW50LnRyaWdnZXIoImFqYXhTZW5kIiwgW3hociwgc10pOworCisJCS8vIFdhaXQg
Zm9yIGEgcmVzcG9uc2UgdG8gY29tZSBiYWNrCisJCXZhciBvbnJlYWR5c3RhdGVjaGFuZ2UgPSBm
dW5jdGlvbihpc1RpbWVvdXQpeworCQkJLy8gVGhlIHJlcXVlc3Qgd2FzIGFib3J0ZWQsIGNsZWFy
IHRoZSBpbnRlcnZhbCBhbmQgZGVjcmVtZW50IGpRdWVyeS5hY3RpdmUKKwkJCWlmICh4aHIucmVh
ZHlTdGF0ZSA9PSAwKSB7CisJCQkJaWYgKGl2YWwpIHsKKwkJCQkJLy8gY2xlYXIgcG9sbCBpbnRl
cnZhbAorCQkJCQljbGVhckludGVydmFsKGl2YWwpOworCQkJCQlpdmFsID0gbnVsbDsKKwkJCQkJ
Ly8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyCisJCQkJCWlmICggcy5nbG9iYWwgJiYg
ISAtLWpRdWVyeS5hY3RpdmUgKQorCQkJCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoICJhamF4U3Rv
cCIgKTsKKwkJCQl9CisJCQkvLyBUaGUgdHJhbnNmZXIgaXMgY29tcGxldGUgYW5kIHRoZSBkYXRh
IGlzIGF2YWlsYWJsZSwgb3IgdGhlIHJlcXVlc3QgdGltZWQgb3V0CisJCQl9IGVsc2UgaWYgKCAh
cmVxdWVzdERvbmUgJiYgeGhyICYmICh4aHIucmVhZHlTdGF0ZSA9PSA0IHx8IGlzVGltZW91dCA9
PSAidGltZW91dCIpICkgeworCQkJCXJlcXVlc3REb25lID0gdHJ1ZTsKKworCQkJCS8vIGNsZWFy
IHBvbGwgaW50ZXJ2YWwKKwkJCQlpZiAoaXZhbCkgeworCQkJCQljbGVhckludGVydmFsKGl2YWwp
OworCQkJCQlpdmFsID0gbnVsbDsKKwkJCQl9CisKKwkJCQlzdGF0dXMgPSBpc1RpbWVvdXQgPT0g
InRpbWVvdXQiID8gInRpbWVvdXQiIDoKKwkJCQkJIWpRdWVyeS5odHRwU3VjY2VzcyggeGhyICkg
PyAiZXJyb3IiIDoKKwkJCQkJcy5pZk1vZGlmaWVkICYmIGpRdWVyeS5odHRwTm90TW9kaWZpZWQo
IHhociwgcy51cmwgKSA/ICJub3Rtb2RpZmllZCIgOgorCQkJCQkic3VjY2VzcyI7CisKKwkJCQlp
ZiAoIHN0YXR1cyA9PSAic3VjY2VzcyIgKSB7CisJCQkJCS8vIFdhdGNoIGZvciwgYW5kIGNhdGNo
LCBYTUwgZG9jdW1lbnQgcGFyc2UgZXJyb3JzCisJCQkJCXRyeSB7CisJCQkJCQkvLyBwcm9jZXNz
IHRoZSBkYXRhIChydW5zIHRoZSB4bWwgdGhyb3VnaCBodHRwRGF0YSByZWdhcmRsZXNzIG9mIGNh
bGxiYWNrKQorCQkJCQkJZGF0YSA9IGpRdWVyeS5odHRwRGF0YSggeGhyLCBzLmRhdGFUeXBlLCBz
ICk7CisJCQkJCX0gY2F0Y2goZSkgeworCQkJCQkJc3RhdHVzID0gInBhcnNlcmVycm9yIjsKKwkJ
CQkJfQorCQkJCX0KKworCQkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXF1ZXN0IHdhcyBzdWNj
ZXNzZnVsIG9yIG5vdG1vZGlmaWVkCisJCQkJaWYgKCBzdGF0dXMgPT0gInN1Y2Nlc3MiICkgewor
CQkJCQkvLyBDYWNoZSBMYXN0LU1vZGlmaWVkIGhlYWRlciwgaWYgaWZNb2RpZmllZCBtb2RlLgor
CQkJCQl2YXIgbW9kUmVzOworCQkJCQl0cnkgeworCQkJCQkJbW9kUmVzID0geGhyLmdldFJlc3Bv
bnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7CisJCQkJCX0gY2F0Y2goZSkge30gLy8gc3dhbGxv
dyBleGNlcHRpb24gdGhyb3duIGJ5IEZGIGlmIGhlYWRlciBpcyBub3QgYXZhaWxhYmxlCisKKwkJ
CQkJaWYgKCBzLmlmTW9kaWZpZWQgJiYgbW9kUmVzICkKKwkJCQkJCWpRdWVyeS5sYXN0TW9kaWZp
ZWRbcy51cmxdID0gbW9kUmVzOworCisJCQkJCS8vIEpTT05QIGhhbmRsZXMgaXRzIG93biBzdWNj
ZXNzIGNhbGxiYWNrCisJCQkJCWlmICggIWpzb25wICkKKwkJCQkJCXN1Y2Nlc3MoKTsKKwkJCQl9
IGVsc2UKKwkJCQkJalF1ZXJ5LmhhbmRsZUVycm9yKHMsIHhociwgc3RhdHVzKTsKKworCQkJCS8v
IEZpcmUgdGhlIGNvbXBsZXRlIGhhbmRsZXJzCisJCQkJY29tcGxldGUoKTsKKworCQkJCWlmICgg
aXNUaW1lb3V0ICkKKwkJCQkJeGhyLmFib3J0KCk7CisKKwkJCQkvLyBTdG9wIG1lbW9yeSBsZWFr
cworCQkJCWlmICggcy5hc3luYyApCisJCQkJCXhociA9IG51bGw7CisJCQl9CisJCX07CisKKwkJ
aWYgKCBzLmFzeW5jICkgeworCQkJLy8gZG9uJ3QgYXR0YWNoIHRoZSBoYW5kbGVyIHRvIHRoZSBy
ZXF1ZXN0LCBqdXN0IHBvbGwgaXQgaW5zdGVhZAorCQkJdmFyIGl2YWwgPSBzZXRJbnRlcnZhbChv
bnJlYWR5c3RhdGVjaGFuZ2UsIDEzKTsKKworCQkJLy8gVGltZW91dCBjaGVja2VyCisJCQlpZiAo
IHMudGltZW91dCA+IDAgKQorCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKKwkJCQkJLy8gQ2hl
Y2sgdG8gc2VlIGlmIHRoZSByZXF1ZXN0IGlzIHN0aWxsIGhhcHBlbmluZworCQkJCQlpZiAoIHho
ciAmJiAhcmVxdWVzdERvbmUgKQorCQkJCQkJb25yZWFkeXN0YXRlY2hhbmdlKCAidGltZW91dCIg
KTsKKwkJCQl9LCBzLnRpbWVvdXQpOworCQl9CisKKwkJLy8gU2VuZCB0aGUgZGF0YQorCQl0cnkg
eworCQkJeGhyLnNlbmQocy5kYXRhKTsKKwkJfSBjYXRjaChlKSB7CisJCQlqUXVlcnkuaGFuZGxl
RXJyb3IocywgeGhyLCBudWxsLCBlKTsKKwkJfQorCisJCS8vIGZpcmVmb3ggMS41IGRvZXNuJ3Qg
ZmlyZSBzdGF0ZWNoYW5nZSBmb3Igc3luYyByZXF1ZXN0cworCQlpZiAoICFzLmFzeW5jICkKKwkJ
CW9ucmVhZHlzdGF0ZWNoYW5nZSgpOworCisJCWZ1bmN0aW9uIHN1Y2Nlc3MoKXsKKwkJCS8vIElm
IGEgbG9jYWwgY2FsbGJhY2sgd2FzIHNwZWNpZmllZCwgZmlyZSBpdCBhbmQgcGFzcyBpdCB0aGUg
ZGF0YQorCQkJaWYgKCBzLnN1Y2Nlc3MgKQorCQkJCXMuc3VjY2VzcyggZGF0YSwgc3RhdHVzICk7
CisKKwkJCS8vIEZpcmUgdGhlIGdsb2JhbCBjYWxsYmFjaworCQkJaWYgKCBzLmdsb2JhbCApCisJ
CQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoICJhamF4U3VjY2VzcyIsIFt4aHIsIHNdICk7CisJCX0K
KworCQlmdW5jdGlvbiBjb21wbGV0ZSgpeworCQkJLy8gUHJvY2VzcyByZXN1bHQKKwkJCWlmICgg
cy5jb21wbGV0ZSApCisJCQkJcy5jb21wbGV0ZSh4aHIsIHN0YXR1cyk7CisKKwkJCS8vIFRoZSBy
ZXF1ZXN0IHdhcyBjb21wbGV0ZWQKKwkJCWlmICggcy5nbG9iYWwgKQorCQkJCWpRdWVyeS5ldmVu
dC50cmlnZ2VyKCAiYWpheENvbXBsZXRlIiwgW3hociwgc10gKTsKKworCQkJLy8gSGFuZGxlIHRo
ZSBnbG9iYWwgQUpBWCBjb3VudGVyCisJCQlpZiAoIHMuZ2xvYmFsICYmICEgLS1qUXVlcnkuYWN0
aXZlICkKKwkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggImFqYXhTdG9wIiApOworCQl9CisKKwkJ
Ly8gcmV0dXJuIFhNTEh0dHBSZXF1ZXN0IHRvIGFsbG93IGFib3J0aW5nIHRoZSByZXF1ZXN0IGV0
Yy4KKwkJcmV0dXJuIHhocjsKKwl9LAorCisJaGFuZGxlRXJyb3I6IGZ1bmN0aW9uKCBzLCB4aHIs
IHN0YXR1cywgZSApIHsKKwkJLy8gSWYgYSBsb2NhbCBjYWxsYmFjayB3YXMgc3BlY2lmaWVkLCBm
aXJlIGl0CisJCWlmICggcy5lcnJvciApIHMuZXJyb3IoIHhociwgc3RhdHVzLCBlICk7CisKKwkJ
Ly8gRmlyZSB0aGUgZ2xvYmFsIGNhbGxiYWNrCisJCWlmICggcy5nbG9iYWwgKQorCQkJalF1ZXJ5
LmV2ZW50LnRyaWdnZXIoICJhamF4RXJyb3IiLCBbeGhyLCBzLCBlXSApOworCX0sCisKKwkvLyBD
b3VudGVyIGZvciBob2xkaW5nIHRoZSBudW1iZXIgb2YgYWN0aXZlIHF1ZXJpZXMKKwlhY3RpdmU6
IDAsCisKKwkvLyBEZXRlcm1pbmVzIGlmIGFuIFhNTEh0dHBSZXF1ZXN0IHdhcyBzdWNjZXNzZnVs
IG9yIG5vdAorCWh0dHBTdWNjZXNzOiBmdW5jdGlvbiggeGhyICkgeworCQl0cnkgeworCQkJLy8g
SUUgZXJyb3Igc29tZXRpbWVzIHJldHVybnMgMTIyMyB3aGVuIGl0IHNob3VsZCBiZSAyMDQgc28g
dHJlYXQgaXQgYXMgc3VjY2Vzcywgc2VlICMxNDUwCisJCQlyZXR1cm4gIXhoci5zdGF0dXMgJiYg
bG9jYXRpb24ucHJvdG9jb2wgPT0gImZpbGU6IiB8fAorCQkJCSggeGhyLnN0YXR1cyA+PSAyMDAg
JiYgeGhyLnN0YXR1cyA8IDMwMCApIHx8IHhoci5zdGF0dXMgPT0gMzA0IHx8IHhoci5zdGF0dXMg
PT0gMTIyMzsKKwkJfSBjYXRjaChlKXt9CisJCXJldHVybiBmYWxzZTsKKwl9LAorCisJLy8gRGV0
ZXJtaW5lcyBpZiBhbiBYTUxIdHRwUmVxdWVzdCByZXR1cm5zIE5vdE1vZGlmaWVkCisJaHR0cE5v
dE1vZGlmaWVkOiBmdW5jdGlvbiggeGhyLCB1cmwgKSB7CisJCXRyeSB7CisJCQl2YXIgeGhyUmVz
ID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7CisKKwkJCS8vIEZpcmVm
b3ggYWx3YXlzIHJldHVybnMgMjAwLiBjaGVjayBMYXN0LU1vZGlmaWVkIGRhdGUKKwkJCXJldHVy
biB4aHIuc3RhdHVzID09IDMwNCB8fCB4aHJSZXMgPT0galF1ZXJ5Lmxhc3RNb2RpZmllZFt1cmxd
OworCQl9IGNhdGNoKGUpe30KKwkJcmV0dXJuIGZhbHNlOworCX0sCisKKwlodHRwRGF0YTogZnVu
Y3Rpb24oIHhociwgdHlwZSwgcyApIHsKKwkJdmFyIGN0ID0geGhyLmdldFJlc3BvbnNlSGVhZGVy
KCJjb250ZW50LXR5cGUiKSwKKwkJCXhtbCA9IHR5cGUgPT0gInhtbCIgfHwgIXR5cGUgJiYgY3Qg
JiYgY3QuaW5kZXhPZigieG1sIikgPj0gMCwKKwkJCWRhdGEgPSB4bWwgPyB4aHIucmVzcG9uc2VY
TUwgOiB4aHIucmVzcG9uc2VUZXh0OworCisJCWlmICggeG1sICYmIGRhdGEuZG9jdW1lbnRFbGVt
ZW50LnRhZ05hbWUgPT0gInBhcnNlcmVycm9yIiApCisJCQl0aHJvdyAicGFyc2VyZXJyb3IiOwor
CQkJCisJCS8vIEFsbG93IGEgcHJlLWZpbHRlcmluZyBmdW5jdGlvbiB0byBzYW5pdGl6ZSB0aGUg
cmVzcG9uc2UKKwkJLy8gcyAhPSBudWxsIGlzIGNoZWNrZWQgdG8ga2VlcCBiYWNrd2FyZHMgY29t
cGF0aWJpbGl0eQorCQlpZiggcyAmJiBzLmRhdGFGaWx0ZXIgKQorCQkJZGF0YSA9IHMuZGF0YUZp
bHRlciggZGF0YSwgdHlwZSApOworCisJCS8vIFRoZSBmaWx0ZXIgY2FuIGFjdHVhbGx5IHBhcnNl
IHRoZSByZXNwb25zZQorCQlpZiggdHlwZW9mIGRhdGEgPT09ICJzdHJpbmciICl7CisKKwkJCS8v
IElmIHRoZSB0eXBlIGlzICJzY3JpcHQiLCBldmFsIGl0IGluIGdsb2JhbCBjb250ZXh0CisJCQlp
ZiAoIHR5cGUgPT0gInNjcmlwdCIgKQorCQkJCWpRdWVyeS5nbG9iYWxFdmFsKCBkYXRhICk7CisK
KwkJCS8vIEdldCB0aGUgSmF2YVNjcmlwdCBvYmplY3QsIGlmIEpTT04gaXMgdXNlZC4KKwkJCWlm
ICggdHlwZSA9PSAianNvbiIgKQorCQkJCWRhdGEgPSB3aW5kb3dbImV2YWwiXSgiKCIgKyBkYXRh
ICsgIikiKTsKKwkJfQorCQkKKwkJcmV0dXJuIGRhdGE7CisJfSwKKworCS8vIFNlcmlhbGl6ZSBh
biBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mCisJLy8ga2V5L3ZhbHVlcyBpbnRv
IGEgcXVlcnkgc3RyaW5nCisJcGFyYW06IGZ1bmN0aW9uKCBhICkgeworCQl2YXIgcyA9IFsgXTsK
KworCQlmdW5jdGlvbiBhZGQoIGtleSwgdmFsdWUgKXsKKwkJCXNbIHMubGVuZ3RoIF0gPSBlbmNv
ZGVVUklDb21wb25lbnQoa2V5KSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7CisJ
CX07CisKKwkJLy8gSWYgYW4gYXJyYXkgd2FzIHBhc3NlZCBpbiwgYXNzdW1lIHRoYXQgaXQgaXMg
YW4gYXJyYXkKKwkJLy8gb2YgZm9ybSBlbGVtZW50cworCQlpZiAoIGpRdWVyeS5pc0FycmF5KGEp
IHx8IGEuanF1ZXJ5ICkKKwkJCS8vIFNlcmlhbGl6ZSB0aGUgZm9ybSBlbGVtZW50cworCQkJalF1
ZXJ5LmVhY2goIGEsIGZ1bmN0aW9uKCl7CisJCQkJYWRkKCB0aGlzLm5hbWUsIHRoaXMudmFsdWUg
KTsKKwkJCX0pOworCisJCS8vIE90aGVyd2lzZSwgYXNzdW1lIHRoYXQgaXQncyBhbiBvYmplY3Qg
b2Yga2V5L3ZhbHVlIHBhaXJzCisJCWVsc2UKKwkJCS8vIFNlcmlhbGl6ZSB0aGUga2V5L3ZhbHVl
cworCQkJZm9yICggdmFyIGogaW4gYSApCisJCQkJLy8gSWYgdGhlIHZhbHVlIGlzIGFuIGFycmF5
IHRoZW4gdGhlIGtleSBuYW1lcyBuZWVkIHRvIGJlIHJlcGVhdGVkCisJCQkJaWYgKCBqUXVlcnku
aXNBcnJheShhW2pdKSApCisJCQkJCWpRdWVyeS5lYWNoKCBhW2pdLCBmdW5jdGlvbigpeworCQkJ
CQkJYWRkKCBqLCB0aGlzICk7CisJCQkJCX0pOworCQkJCWVsc2UKKwkJCQkJYWRkKCBqLCBqUXVl
cnkuaXNGdW5jdGlvbihhW2pdKSA/IGFbal0oKSA6IGFbal0gKTsKKworCQkvLyBSZXR1cm4gdGhl
IHJlc3VsdGluZyBzZXJpYWxpemF0aW9uCisJCXJldHVybiBzLmpvaW4oIiYiKS5yZXBsYWNlKC8l
MjAvZywgIisiKTsKKwl9CisKK30pOwordmFyIGVsZW1kaXNwbGF5ID0ge30sCisJdGltZXJJZCwK
KwlmeEF0dHJzID0gWworCQkvLyBoZWlnaHQgYW5pbWF0aW9ucworCQlbICJoZWlnaHQiLCAibWFy
Z2luVG9wIiwgIm1hcmdpbkJvdHRvbSIsICJwYWRkaW5nVG9wIiwgInBhZGRpbmdCb3R0b20iIF0s
CisJCS8vIHdpZHRoIGFuaW1hdGlvbnMKKwkJWyAid2lkdGgiLCAibWFyZ2luTGVmdCIsICJtYXJn
aW5SaWdodCIsICJwYWRkaW5nTGVmdCIsICJwYWRkaW5nUmlnaHQiIF0sCisJCS8vIG9wYWNpdHkg
YW5pbWF0aW9ucworCQlbICJvcGFjaXR5IiBdCisJXTsKKworZnVuY3Rpb24gZ2VuRngoIHR5cGUs
IG51bSApeworCXZhciBvYmogPSB7fTsKKwlqUXVlcnkuZWFjaCggZnhBdHRycy5jb25jYXQuYXBw
bHkoW10sIGZ4QXR0cnMuc2xpY2UoMCxudW0pKSwgZnVuY3Rpb24oKXsKKwkJb2JqWyB0aGlzIF0g
PSB0eXBlOworCX0pOworCXJldHVybiBvYmo7Cit9CisKK2pRdWVyeS5mbi5leHRlbmQoeworCXNo
b3c6IGZ1bmN0aW9uKHNwZWVkLGNhbGxiYWNrKXsKKwkJaWYgKCBzcGVlZCApIHsKKwkJCXJldHVy
biB0aGlzLmFuaW1hdGUoIGdlbkZ4KCJzaG93IiwgMyksIHNwZWVkLCBjYWxsYmFjayk7CisJCX0g
ZWxzZSB7CisJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyAp
eworCQkJCXZhciBvbGQgPSBqUXVlcnkuZGF0YSh0aGlzW2ldLCAib2xkZGlzcGxheSIpOworCQkJ
CQorCQkJCXRoaXNbaV0uc3R5bGUuZGlzcGxheSA9IG9sZCB8fCAiIjsKKwkJCQkKKwkJCQlpZiAo
IGpRdWVyeS5jc3ModGhpc1tpXSwgImRpc3BsYXkiKSA9PT0gIm5vbmUiICkgeworCQkJCQl2YXIg
dGFnTmFtZSA9IHRoaXNbaV0udGFnTmFtZSwgZGlzcGxheTsKKwkJCQkJCisJCQkJCWlmICggZWxl
bWRpc3BsYXlbIHRhZ05hbWUgXSApIHsKKwkJCQkJCWRpc3BsYXkgPSBlbGVtZGlzcGxheVsgdGFn
TmFtZSBdOworCQkJCQl9IGVsc2UgeworCQkJCQkJdmFyIGVsZW0gPSBqUXVlcnkoIjwiICsgdGFn
TmFtZSArICIgLz4iKS5hcHBlbmRUbygiYm9keSIpOworCQkJCQkJCisJCQkJCQlkaXNwbGF5ID0g
ZWxlbS5jc3MoImRpc3BsYXkiKTsKKwkJCQkJCWlmICggZGlzcGxheSA9PT0gIm5vbmUiICkKKwkJ
CQkJCQlkaXNwbGF5ID0gImJsb2NrIjsKKwkJCQkJCQorCQkJCQkJZWxlbS5yZW1vdmUoKTsKKwkJ
CQkJCQorCQkJCQkJZWxlbWRpc3BsYXlbIHRhZ05hbWUgXSA9IGRpc3BsYXk7CisJCQkJCX0KKwkJ
CQkJCisJCQkJCWpRdWVyeS5kYXRhKHRoaXNbaV0sICJvbGRkaXNwbGF5IiwgZGlzcGxheSk7CisJ
CQkJfQorCQkJfQorCisJCQkvLyBTZXQgdGhlIGRpc3BsYXkgb2YgdGhlIGVsZW1lbnRzIGluIGEg
c2Vjb25kIGxvb3AKKwkJCS8vIHRvIGF2b2lkIHRoZSBjb25zdGFudCByZWZsb3cKKwkJCWZvciAo
IHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICl7CisJCQkJdGhpc1tpXS5z
dHlsZS5kaXNwbGF5ID0galF1ZXJ5LmRhdGEodGhpc1tpXSwgIm9sZGRpc3BsYXkiKSB8fCAiIjsK
KwkJCX0KKwkJCQorCQkJcmV0dXJuIHRoaXM7CisJCX0KKwl9LAorCisJaGlkZTogZnVuY3Rpb24o
c3BlZWQsY2FsbGJhY2speworCQlpZiAoIHNwZWVkICkgeworCQkJcmV0dXJuIHRoaXMuYW5pbWF0
ZSggZ2VuRngoImhpZGUiLCAzKSwgc3BlZWQsIGNhbGxiYWNrKTsKKwkJfSBlbHNlIHsKKwkJCWZv
ciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICl7CisJCQkJdmFyIG9s
ZCA9IGpRdWVyeS5kYXRhKHRoaXNbaV0sICJvbGRkaXNwbGF5Iik7CisJCQkJaWYgKCAhb2xkICYm
IG9sZCAhPT0gIm5vbmUiICkKKwkJCQkJalF1ZXJ5LmRhdGEodGhpc1tpXSwgIm9sZGRpc3BsYXki
LCBqUXVlcnkuY3NzKHRoaXNbaV0sICJkaXNwbGF5IikpOworCQkJfQorCisJCQkvLyBTZXQgdGhl
IGRpc3BsYXkgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AKKwkJCS8vIHRvIGF2b2lk
IHRoZSBjb25zdGFudCByZWZsb3cKKwkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3Ro
OyBpIDwgbDsgaSsrICl7CisJCQkJdGhpc1tpXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworCQkJ
fQorCisJCQlyZXR1cm4gdGhpczsKKwkJfQorCX0sCisKKwkvLyBTYXZlIHRoZSBvbGQgdG9nZ2xl
IGZ1bmN0aW9uCisJX3RvZ2dsZTogalF1ZXJ5LmZuLnRvZ2dsZSwKKworCXRvZ2dsZTogZnVuY3Rp
b24oIGZuLCBmbjIgKXsKKwkJdmFyIGJvb2wgPSB0eXBlb2YgZm4gPT09ICJib29sZWFuIjsKKwor
CQlyZXR1cm4galF1ZXJ5LmlzRnVuY3Rpb24oZm4pICYmIGpRdWVyeS5pc0Z1bmN0aW9uKGZuMikg
PworCQkJdGhpcy5fdG9nZ2xlLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKSA6CisJCQlmbiA9PSBu
dWxsIHx8IGJvb2wgPworCQkJCXRoaXMuZWFjaChmdW5jdGlvbigpeworCQkJCQl2YXIgc3RhdGUg
PSBib29sID8gZm4gOiBqUXVlcnkodGhpcykuaXMoIjpoaWRkZW4iKTsKKwkJCQkJalF1ZXJ5KHRo
aXMpWyBzdGF0ZSA/ICJzaG93IiA6ICJoaWRlIiBdKCk7CisJCQkJfSkgOgorCQkJCXRoaXMuYW5p
bWF0ZShnZW5GeCgidG9nZ2xlIiwgMyksIGZuLCBmbjIpOworCX0sCisKKwlmYWRlVG86IGZ1bmN0
aW9uKHNwZWVkLHRvLGNhbGxiYWNrKXsKKwkJcmV0dXJuIHRoaXMuYW5pbWF0ZSh7b3BhY2l0eTog
dG99LCBzcGVlZCwgY2FsbGJhY2spOworCX0sCisKKwlhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwg
c3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CisJCXZhciBvcHRhbGwgPSBqUXVlcnkuc3BlZWQo
c3BlZWQsIGVhc2luZywgY2FsbGJhY2spOworCisJCXJldHVybiB0aGlzWyBvcHRhbGwucXVldWUg
PT09IGZhbHNlID8gImVhY2giIDogInF1ZXVlIiBdKGZ1bmN0aW9uKCl7CisJCQorCQkJdmFyIG9w
dCA9IGpRdWVyeS5leHRlbmQoe30sIG9wdGFsbCksIHAsCisJCQkJaGlkZGVuID0gdGhpcy5ub2Rl
VHlwZSA9PSAxICYmIGpRdWVyeSh0aGlzKS5pcygiOmhpZGRlbiIpLAorCQkJCXNlbGYgPSB0aGlz
OworCQorCQkJZm9yICggcCBpbiBwcm9wICkgeworCQkJCWlmICggcHJvcFtwXSA9PSAiaGlkZSIg
JiYgaGlkZGVuIHx8IHByb3BbcF0gPT0gInNob3ciICYmICFoaWRkZW4gKQorCQkJCQlyZXR1cm4g
b3B0LmNvbXBsZXRlLmNhbGwodGhpcyk7CisKKwkJCQlpZiAoICggcCA9PSAiaGVpZ2h0IiB8fCBw
ID09ICJ3aWR0aCIgKSAmJiB0aGlzLnN0eWxlICkgeworCQkJCQkvLyBTdG9yZSBkaXNwbGF5IHBy
b3BlcnR5CisJCQkJCW9wdC5kaXNwbGF5ID0galF1ZXJ5LmNzcyh0aGlzLCAiZGlzcGxheSIpOwor
CisJCQkJCS8vIE1ha2Ugc3VyZSB0aGF0IG5vdGhpbmcgc25lYWtzIG91dAorCQkJCQlvcHQub3Zl
cmZsb3cgPSB0aGlzLnN0eWxlLm92ZXJmbG93OworCQkJCX0KKwkJCX0KKworCQkJaWYgKCBvcHQu
b3ZlcmZsb3cgIT0gbnVsbCApCisJCQkJdGhpcy5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwor
CisJCQlvcHQuY3VyQW5pbSA9IGpRdWVyeS5leHRlbmQoe30sIHByb3ApOworCisJCQlqUXVlcnku
ZWFjaCggcHJvcCwgZnVuY3Rpb24obmFtZSwgdmFsKXsKKwkJCQl2YXIgZSA9IG5ldyBqUXVlcnku
ZngoIHNlbGYsIG9wdCwgbmFtZSApOworCisJCQkJaWYgKCAvdG9nZ2xlfHNob3d8aGlkZS8udGVz
dCh2YWwpICkKKwkJCQkJZVsgdmFsID09ICJ0b2dnbGUiID8gaGlkZGVuID8gInNob3ciIDogImhp
ZGUiIDogdmFsIF0oIHByb3AgKTsKKwkJCQllbHNlIHsKKwkJCQkJdmFyIHBhcnRzID0gdmFsLnRv
U3RyaW5nKCkubWF0Y2goL14oWystXT0pPyhbXGQrLS5dKykoLiopJC8pLAorCQkJCQkJc3RhcnQg
PSBlLmN1cih0cnVlKSB8fCAwOworCisJCQkJCWlmICggcGFydHMgKSB7CisJCQkJCQl2YXIgZW5k
ID0gcGFyc2VGbG9hdChwYXJ0c1syXSksCisJCQkJCQkJdW5pdCA9IHBhcnRzWzNdIHx8ICJweCI7
CisKKwkJCQkJCS8vIFdlIG5lZWQgdG8gY29tcHV0ZSBzdGFydGluZyB2YWx1ZQorCQkJCQkJaWYg
KCB1bml0ICE9ICJweCIgKSB7CisJCQkJCQkJc2VsZi5zdHlsZVsgbmFtZSBdID0gKGVuZCB8fCAx
KSArIHVuaXQ7CisJCQkJCQkJc3RhcnQgPSAoKGVuZCB8fCAxKSAvIGUuY3VyKHRydWUpKSAqIHN0
YXJ0OworCQkJCQkJCXNlbGYuc3R5bGVbIG5hbWUgXSA9IHN0YXJ0ICsgdW5pdDsKKwkJCQkJCX0K
KworCQkJCQkJLy8gSWYgYSArPS8tPSB0b2tlbiB3YXMgcHJvdmlkZWQsIHdlJ3JlIGRvaW5nIGEg
cmVsYXRpdmUgYW5pbWF0aW9uCisJCQkJCQlpZiAoIHBhcnRzWzFdICkKKwkJCQkJCQllbmQgPSAo
KHBhcnRzWzFdID09ICItPSIgPyAtMSA6IDEpICogZW5kKSArIHN0YXJ0OworCisJCQkJCQllLmN1
c3RvbSggc3RhcnQsIGVuZCwgdW5pdCApOworCQkJCQl9IGVsc2UKKwkJCQkJCWUuY3VzdG9tKCBz
dGFydCwgdmFsLCAiIiApOworCQkJCX0KKwkJCX0pOworCisJCQkvLyBGb3IgSlMgc3RyaWN0IGNv
bXBsaWFuY2UKKwkJCXJldHVybiB0cnVlOworCQl9KTsKKwl9LAorCisJc3RvcDogZnVuY3Rpb24o
Y2xlYXJRdWV1ZSwgZ290b0VuZCl7CisJCXZhciB0aW1lcnMgPSBqUXVlcnkudGltZXJzOworCisJ
CWlmIChjbGVhclF1ZXVlKQorCQkJdGhpcy5xdWV1ZShbXSk7CisKKwkJdGhpcy5lYWNoKGZ1bmN0
aW9uKCl7CisJCQkvLyBnbyBpbiByZXZlcnNlIG9yZGVyIHNvIGFueXRoaW5nIGFkZGVkIHRvIHRo
ZSBxdWV1ZSBkdXJpbmcgdGhlIGxvb3AgaXMgaWdub3JlZAorCQkJZm9yICggdmFyIGkgPSB0aW1l
cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKQorCQkJCWlmICggdGltZXJzW2ldLmVsZW0gPT0g
dGhpcyApIHsKKwkJCQkJaWYgKGdvdG9FbmQpCisJCQkJCQkvLyBmb3JjZSB0aGUgbmV4dCBzdGVw
IHRvIGJlIHRoZSBsYXN0CisJCQkJCQl0aW1lcnNbaV0odHJ1ZSk7CisJCQkJCXRpbWVycy5zcGxp
Y2UoaSwgMSk7CisJCQkJfQorCQl9KTsKKworCQkvLyBzdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVl
dWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkCisJCWlmICghZ290b0VuZCkKKwkJCXRo
aXMuZGVxdWV1ZSgpOworCisJCXJldHVybiB0aGlzOworCX0KKworfSk7CisKKy8vIEdlbmVyYXRl
IHNob3J0Y3V0cyBmb3IgY3VzdG9tIGFuaW1hdGlvbnMKK2pRdWVyeS5lYWNoKHsKKwlzbGlkZURv
d246IGdlbkZ4KCJzaG93IiwgMSksCisJc2xpZGVVcDogZ2VuRngoImhpZGUiLCAxKSwKKwlzbGlk
ZVRvZ2dsZTogZ2VuRngoInRvZ2dsZSIsIDEpLAorCWZhZGVJbjogeyBvcGFjaXR5OiAic2hvdyIg
fSwKKwlmYWRlT3V0OiB7IG9wYWNpdHk6ICJoaWRlIiB9Cit9LCBmdW5jdGlvbiggbmFtZSwgcHJv
cHMgKXsKKwlqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzcGVlZCwgY2FsbGJhY2sgKXsK
KwkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBjYWxsYmFjayApOworCX07Cit9
KTsKKworalF1ZXJ5LmV4dGVuZCh7CisKKwlzcGVlZDogZnVuY3Rpb24oc3BlZWQsIGVhc2luZywg
Zm4pIHsKKwkJdmFyIG9wdCA9IHR5cGVvZiBzcGVlZCA9PT0gIm9iamVjdCIgPyBzcGVlZCA6IHsK
KwkJCWNvbXBsZXRlOiBmbiB8fCAhZm4gJiYgZWFzaW5nIHx8CisJCQkJalF1ZXJ5LmlzRnVuY3Rp
b24oIHNwZWVkICkgJiYgc3BlZWQsCisJCQlkdXJhdGlvbjogc3BlZWQsCisJCQllYXNpbmc6IGZu
ICYmIGVhc2luZyB8fCBlYXNpbmcgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKGVhc2luZykgJiYgZWFz
aW5nCisJCX07CisKKwkJb3B0LmR1cmF0aW9uID0galF1ZXJ5LmZ4Lm9mZiA/IDAgOiB0eXBlb2Yg
b3B0LmR1cmF0aW9uID09PSAibnVtYmVyIiA/IG9wdC5kdXJhdGlvbiA6CisJCQlqUXVlcnkuZngu
c3BlZWRzW29wdC5kdXJhdGlvbl0gfHwgalF1ZXJ5LmZ4LnNwZWVkcy5fZGVmYXVsdDsKKworCQkv
LyBRdWV1ZWluZworCQlvcHQub2xkID0gb3B0LmNvbXBsZXRlOworCQlvcHQuY29tcGxldGUgPSBm
dW5jdGlvbigpeworCQkJaWYgKCBvcHQucXVldWUgIT09IGZhbHNlICkKKwkJCQlqUXVlcnkodGhp
cykuZGVxdWV1ZSgpOworCQkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkKKwkJ
CQlvcHQub2xkLmNhbGwoIHRoaXMgKTsKKwkJfTsKKworCQlyZXR1cm4gb3B0OworCX0sCisKKwll
YXNpbmc6IHsKKwkJbGluZWFyOiBmdW5jdGlvbiggcCwgbiwgZmlyc3ROdW0sIGRpZmYgKSB7CisJ
CQlyZXR1cm4gZmlyc3ROdW0gKyBkaWZmICogcDsKKwkJfSwKKwkJc3dpbmc6IGZ1bmN0aW9uKCBw
LCBuLCBmaXJzdE51bSwgZGlmZiApIHsKKwkJCXJldHVybiAoKC1NYXRoLmNvcyhwKk1hdGguUEkp
LzIpICsgMC41KSAqIGRpZmYgKyBmaXJzdE51bTsKKwkJfQorCX0sCisKKwl0aW1lcnM6IFtdLAor
CisJZng6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBwcm9wICl7CisJCXRoaXMub3B0aW9ucyA9
IG9wdGlvbnM7CisJCXRoaXMuZWxlbSA9IGVsZW07CisJCXRoaXMucHJvcCA9IHByb3A7CisKKwkJ
aWYgKCAhb3B0aW9ucy5vcmlnICkKKwkJCW9wdGlvbnMub3JpZyA9IHt9OworCX0KKworfSk7CisK
K2pRdWVyeS5meC5wcm90b3R5cGUgPSB7CisKKwkvLyBTaW1wbGUgZnVuY3Rpb24gZm9yIHNldHRp
bmcgYSBzdHlsZSB2YWx1ZQorCXVwZGF0ZTogZnVuY3Rpb24oKXsKKwkJaWYgKCB0aGlzLm9wdGlv
bnMuc3RlcCApCisJCQl0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKCB0aGlzLmVsZW0sIHRoaXMubm93
LCB0aGlzICk7CisKKwkJKGpRdWVyeS5meC5zdGVwW3RoaXMucHJvcF0gfHwgalF1ZXJ5LmZ4LnN0
ZXAuX2RlZmF1bHQpKCB0aGlzICk7CisKKwkJLy8gU2V0IGRpc3BsYXkgcHJvcGVydHkgdG8gYmxv
Y2sgZm9yIGhlaWdodC93aWR0aCBhbmltYXRpb25zCisJCWlmICggKCB0aGlzLnByb3AgPT0gImhl
aWdodCIgfHwgdGhpcy5wcm9wID09ICJ3aWR0aCIgKSAmJiB0aGlzLmVsZW0uc3R5bGUgKQorCQkJ
dGhpcy5lbGVtLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworCX0sCisKKwkvLyBHZXQgdGhlIGN1
cnJlbnQgc2l6ZQorCWN1cjogZnVuY3Rpb24oZm9yY2UpeworCQlpZiAoIHRoaXMuZWxlbVt0aGlz
LnByb3BdICE9IG51bGwgJiYgKCF0aGlzLmVsZW0uc3R5bGUgfHwgdGhpcy5lbGVtLnN0eWxlW3Ro
aXMucHJvcF0gPT0gbnVsbCkgKQorCQkJcmV0dXJuIHRoaXMuZWxlbVsgdGhpcy5wcm9wIF07CisK
KwkJdmFyIHIgPSBwYXJzZUZsb2F0KGpRdWVyeS5jc3ModGhpcy5lbGVtLCB0aGlzLnByb3AsIGZv
cmNlKSk7CisJCXJldHVybiByICYmIHIgPiAtMTAwMDAgPyByIDogcGFyc2VGbG9hdChqUXVlcnku
Y3VyQ1NTKHRoaXMuZWxlbSwgdGhpcy5wcm9wKSkgfHwgMDsKKwl9LAorCisJLy8gU3RhcnQgYW4g
YW5pbWF0aW9uIGZyb20gb25lIG51bWJlciB0byBhbm90aGVyCisJY3VzdG9tOiBmdW5jdGlvbihm
cm9tLCB0bywgdW5pdCl7CisJCXRoaXMuc3RhcnRUaW1lID0gbm93KCk7CisJCXRoaXMuc3RhcnQg
PSBmcm9tOworCQl0aGlzLmVuZCA9IHRvOworCQl0aGlzLnVuaXQgPSB1bml0IHx8IHRoaXMudW5p
dCB8fCAicHgiOworCQl0aGlzLm5vdyA9IHRoaXMuc3RhcnQ7CisJCXRoaXMucG9zID0gdGhpcy5z
dGF0ZSA9IDA7CisKKwkJdmFyIHNlbGYgPSB0aGlzOworCQlmdW5jdGlvbiB0KGdvdG9FbmQpewor
CQkJcmV0dXJuIHNlbGYuc3RlcChnb3RvRW5kKTsKKwkJfQorCisJCXQuZWxlbSA9IHRoaXMuZWxl
bTsKKworCQlpZiAoIHQoKSAmJiBqUXVlcnkudGltZXJzLnB1c2godCkgJiYgIXRpbWVySWQgKSB7
CisJCQl0aW1lcklkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKKwkJCQl2YXIgdGltZXJzID0g
alF1ZXJ5LnRpbWVyczsKKworCQkJCWZvciAoIHZhciBpID0gMDsgaSA8IHRpbWVycy5sZW5ndGg7
IGkrKyApCisJCQkJCWlmICggIXRpbWVyc1tpXSgpICkKKwkJCQkJCXRpbWVycy5zcGxpY2UoaS0t
LCAxKTsKKworCQkJCWlmICggIXRpbWVycy5sZW5ndGggKSB7CisJCQkJCWNsZWFySW50ZXJ2YWwo
IHRpbWVySWQgKTsKKwkJCQkJdGltZXJJZCA9IHVuZGVmaW5lZDsKKwkJCQl9CisJCQl9LCAxMyk7
CisJCX0KKwl9LAorCisJLy8gU2ltcGxlICdzaG93JyBmdW5jdGlvbgorCXNob3c6IGZ1bmN0aW9u
KCl7CisJCS8vIFJlbWVtYmVyIHdoZXJlIHdlIHN0YXJ0ZWQsIHNvIHRoYXQgd2UgY2FuIGdvIGJh
Y2sgdG8gaXQgbGF0ZXIKKwkJdGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXSA9IGpRdWVyeS5h
dHRyKCB0aGlzLmVsZW0uc3R5bGUsIHRoaXMucHJvcCApOworCQl0aGlzLm9wdGlvbnMuc2hvdyA9
IHRydWU7CisKKwkJLy8gQmVnaW4gdGhlIGFuaW1hdGlvbgorCQkvLyBNYWtlIHN1cmUgdGhhdCB3
ZSBzdGFydCBhdCBhIHNtYWxsIHdpZHRoL2hlaWdodCB0byBhdm9pZCBhbnkKKwkJLy8gZmxhc2gg
b2YgY29udGVudAorCQl0aGlzLmN1c3RvbSh0aGlzLnByb3AgPT0gIndpZHRoIiB8fCB0aGlzLnBy
b3AgPT0gImhlaWdodCIgPyAxIDogMCwgdGhpcy5jdXIoKSk7CisKKwkJLy8gU3RhcnQgYnkgc2hv
d2luZyB0aGUgZWxlbWVudAorCQlqUXVlcnkodGhpcy5lbGVtKS5zaG93KCk7CisJfSwKKworCS8v
IFNpbXBsZSAnaGlkZScgZnVuY3Rpb24KKwloaWRlOiBmdW5jdGlvbigpeworCQkvLyBSZW1lbWJl
ciB3aGVyZSB3ZSBzdGFydGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNrIHRvIGl0IGxhdGVyCisJ
CXRoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF0gPSBqUXVlcnkuYXR0ciggdGhpcy5lbGVtLnN0
eWxlLCB0aGlzLnByb3AgKTsKKwkJdGhpcy5vcHRpb25zLmhpZGUgPSB0cnVlOworCisJCS8vIEJl
Z2luIHRoZSBhbmltYXRpb24KKwkJdGhpcy5jdXN0b20odGhpcy5jdXIoKSwgMCk7CisJfSwKKwor
CS8vIEVhY2ggc3RlcCBvZiBhbiBhbmltYXRpb24KKwlzdGVwOiBmdW5jdGlvbihnb3RvRW5kKXsK
KwkJdmFyIHQgPSBub3coKTsKKworCQlpZiAoIGdvdG9FbmQgfHwgdCA+PSB0aGlzLm9wdGlvbnMu
ZHVyYXRpb24gKyB0aGlzLnN0YXJ0VGltZSApIHsKKwkJCXRoaXMubm93ID0gdGhpcy5lbmQ7CisJ
CQl0aGlzLnBvcyA9IHRoaXMuc3RhdGUgPSAxOworCQkJdGhpcy51cGRhdGUoKTsKKworCQkJdGhp
cy5vcHRpb25zLmN1ckFuaW1bIHRoaXMucHJvcCBdID0gdHJ1ZTsKKworCQkJdmFyIGRvbmUgPSB0
cnVlOworCQkJZm9yICggdmFyIGkgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0gKQorCQkJCWlmICgg
dGhpcy5vcHRpb25zLmN1ckFuaW1baV0gIT09IHRydWUgKQorCQkJCQlkb25lID0gZmFsc2U7CisK
KwkJCWlmICggZG9uZSApIHsKKwkJCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNwbGF5ICE9IG51bGwg
KSB7CisJCQkJCS8vIFJlc2V0IHRoZSBvdmVyZmxvdworCQkJCQl0aGlzLmVsZW0uc3R5bGUub3Zl
cmZsb3cgPSB0aGlzLm9wdGlvbnMub3ZlcmZsb3c7CisKKwkJCQkJLy8gUmVzZXQgdGhlIGRpc3Bs
YXkKKwkJCQkJdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm9wdGlvbnMuZGlzcGxheTsK
KwkJCQkJaWYgKCBqUXVlcnkuY3NzKHRoaXMuZWxlbSwgImRpc3BsYXkiKSA9PSAibm9uZSIgKQor
CQkJCQkJdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworCQkJCX0KKworCQkJCS8v
IEhpZGUgdGhlIGVsZW1lbnQgaWYgdGhlICJoaWRlIiBvcGVyYXRpb24gd2FzIGRvbmUKKwkJCQlp
ZiAoIHRoaXMub3B0aW9ucy5oaWRlICkKKwkJCQkJalF1ZXJ5KHRoaXMuZWxlbSkuaGlkZSgpOwor
CisJCQkJLy8gUmVzZXQgdGhlIHByb3BlcnRpZXMsIGlmIHRoZSBpdGVtIGhhcyBiZWVuIGhpZGRl
biBvciBzaG93bgorCQkJCWlmICggdGhpcy5vcHRpb25zLmhpZGUgfHwgdGhpcy5vcHRpb25zLnNo
b3cgKQorCQkJCQlmb3IgKCB2YXIgcCBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSApCisJCQkJCQlq
UXVlcnkuYXR0cih0aGlzLmVsZW0uc3R5bGUsIHAsIHRoaXMub3B0aW9ucy5vcmlnW3BdKTsKKwkJ
CQkJCisJCQkJLy8gRXhlY3V0ZSB0aGUgY29tcGxldGUgZnVuY3Rpb24KKwkJCQl0aGlzLm9wdGlv
bnMuY29tcGxldGUuY2FsbCggdGhpcy5lbGVtICk7CisJCQl9CisKKwkJCXJldHVybiBmYWxzZTsK
KwkJfSBlbHNlIHsKKwkJCXZhciBuID0gdCAtIHRoaXMuc3RhcnRUaW1lOworCQkJdGhpcy5zdGF0
ZSA9IG4gLyB0aGlzLm9wdGlvbnMuZHVyYXRpb247CisKKwkJCS8vIFBlcmZvcm0gdGhlIGVhc2lu
ZyBmdW5jdGlvbiwgZGVmYXVsdHMgdG8gc3dpbmcKKwkJCXRoaXMucG9zID0galF1ZXJ5LmVhc2lu
Z1t0aGlzLm9wdGlvbnMuZWFzaW5nIHx8IChqUXVlcnkuZWFzaW5nLnN3aW5nID8gInN3aW5nIiA6
ICJsaW5lYXIiKV0odGhpcy5zdGF0ZSwgbiwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uKTsK
KwkJCXRoaXMubm93ID0gdGhpcy5zdGFydCArICgodGhpcy5lbmQgLSB0aGlzLnN0YXJ0KSAqIHRo
aXMucG9zKTsKKworCQkJLy8gUGVyZm9ybSB0aGUgbmV4dCBzdGVwIG9mIHRoZSBhbmltYXRpb24K
KwkJCXRoaXMudXBkYXRlKCk7CisJCX0KKworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKK307CisKK2pR
dWVyeS5leHRlbmQoIGpRdWVyeS5meCwgeworCXNwZWVkczp7CisJCXNsb3c6IDYwMCwKKyAJCWZh
c3Q6IDIwMCwKKyAJCS8vIERlZmF1bHQgc3BlZWQKKyAJCV9kZWZhdWx0OiA0MDAKKwl9LAorCXN0
ZXA6IHsKKworCQlvcGFjaXR5OiBmdW5jdGlvbihmeCl7CisJCQlqUXVlcnkuYXR0cihmeC5lbGVt
LnN0eWxlLCAib3BhY2l0eSIsIGZ4Lm5vdyk7CisJCX0sCisKKwkJX2RlZmF1bHQ6IGZ1bmN0aW9u
KGZ4KXsKKwkJCWlmICggZnguZWxlbS5zdHlsZSAmJiBmeC5lbGVtLnN0eWxlWyBmeC5wcm9wIF0g
IT0gbnVsbCApCisJCQkJZnguZWxlbS5zdHlsZVsgZngucHJvcCBdID0gZngubm93ICsgZngudW5p
dDsKKwkJCWVsc2UKKwkJCQlmeC5lbGVtWyBmeC5wcm9wIF0gPSBmeC5ub3c7CisJCX0KKwl9Cit9
KTsKK2lmICggZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJnZXRCb3VuZGluZ0NsaWVudFJlY3Qi
XSApCisJalF1ZXJ5LmZuLm9mZnNldCA9IGZ1bmN0aW9uKCkgeworCQlpZiAoICF0aGlzWzBdICkg
cmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07CisJCWlmICggdGhpc1swXSA9PT0gdGhpc1swXS5v
d25lckRvY3VtZW50LmJvZHkgKSByZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCB0aGlz
WzBdICk7CisJCXZhciBib3ggID0gdGhpc1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgZG9j
ID0gdGhpc1swXS5vd25lckRvY3VtZW50LCBib2R5ID0gZG9jLmJvZHksIGRvY0VsZW0gPSBkb2Mu
ZG9jdW1lbnRFbGVtZW50LAorCQkJY2xpZW50VG9wID0gZG9jRWxlbS5jbGllbnRUb3AgfHwgYm9k
eS5jbGllbnRUb3AgfHwgMCwgY2xpZW50TGVmdCA9IGRvY0VsZW0uY2xpZW50TGVmdCB8fCBib2R5
LmNsaWVudExlZnQgfHwgMCwKKwkJCXRvcCAgPSBib3gudG9wICArIChzZWxmLnBhZ2VZT2Zmc2V0
IHx8IGpRdWVyeS5ib3hNb2RlbCAmJiBkb2NFbGVtLnNjcm9sbFRvcCAgfHwgYm9keS5zY3JvbGxU
b3AgKSAtIGNsaWVudFRvcCwKKwkJCWxlZnQgPSBib3gubGVmdCArIChzZWxmLnBhZ2VYT2Zmc2V0
IHx8IGpRdWVyeS5ib3hNb2RlbCAmJiBkb2NFbGVtLnNjcm9sbExlZnQgfHwgYm9keS5zY3JvbGxM
ZWZ0KSAtIGNsaWVudExlZnQ7CisJCXJldHVybiB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07CisJ
fTsKK2Vsc2UgCisJalF1ZXJ5LmZuLm9mZnNldCA9IGZ1bmN0aW9uKCkgeworCQlpZiAoICF0aGlz
WzBdICkgcmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07CisJCWlmICggdGhpc1swXSA9PT0gdGhp
c1swXS5vd25lckRvY3VtZW50LmJvZHkgKSByZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0
KCB0aGlzWzBdICk7CisJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZWQgfHwgalF1ZXJ5Lm9mZnNl
dC5pbml0aWFsaXplKCk7CisKKwkJdmFyIGVsZW0gPSB0aGlzWzBdLCBvZmZzZXRQYXJlbnQgPSBl
bGVtLm9mZnNldFBhcmVudCwgcHJldk9mZnNldFBhcmVudCA9IGVsZW0sCisJCQlkb2MgPSBlbGVt
Lm93bmVyRG9jdW1lbnQsIGNvbXB1dGVkU3R5bGUsIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVt
ZW50LAorCQkJYm9keSA9IGRvYy5ib2R5LCBkZWZhdWx0VmlldyA9IGRvYy5kZWZhdWx0VmlldywK
KwkJCXByZXZDb21wdXRlZFN0eWxlID0gZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
LCBudWxsKSwKKwkJCXRvcCA9IGVsZW0ub2Zmc2V0VG9wLCBsZWZ0ID0gZWxlbS5vZmZzZXRMZWZ0
OworCisJCXdoaWxlICggKGVsZW0gPSBlbGVtLnBhcmVudE5vZGUpICYmIGVsZW0gIT09IGJvZHkg
JiYgZWxlbSAhPT0gZG9jRWxlbSApIHsKKwkJCWNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKGVsZW0sIG51bGwpOworCQkJdG9wIC09IGVsZW0uc2Nyb2xsVG9wLCBs
ZWZ0IC09IGVsZW0uc2Nyb2xsTGVmdDsKKwkJCWlmICggZWxlbSA9PT0gb2Zmc2V0UGFyZW50ICkg
eworCQkJCXRvcCArPSBlbGVtLm9mZnNldFRvcCwgbGVmdCArPSBlbGVtLm9mZnNldExlZnQ7CisJ
CQkJaWYgKCBqUXVlcnkub2Zmc2V0LmRvZXNOb3RBZGRCb3JkZXIgJiYgIShqUXVlcnkub2Zmc2V0
LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzICYmIC9edChhYmxlfGR8aCkkL2kudGVzdChl
bGVtLnRhZ05hbWUpKSApCisJCQkJCXRvcCAgKz0gcGFyc2VJbnQoIGNvbXB1dGVkU3R5bGUuYm9y
ZGVyVG9wV2lkdGgsICAxMCkgfHwgMCwKKwkJCQkJbGVmdCArPSBwYXJzZUludCggY29tcHV0ZWRT
dHlsZS5ib3JkZXJMZWZ0V2lkdGgsIDEwKSB8fCAwOworCQkJCXByZXZPZmZzZXRQYXJlbnQgPSBv
ZmZzZXRQYXJlbnQsIG9mZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50OworCQkJfQorCQkJ
aWYgKCBqUXVlcnkub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSAm
JiBjb21wdXRlZFN0eWxlLm92ZXJmbG93ICE9PSAidmlzaWJsZSIgKQorCQkJCXRvcCAgKz0gcGFy
c2VJbnQoIGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGgsICAxMCkgfHwgMCwKKwkJCQlsZWZ0
ICs9IHBhcnNlSW50KCBjb21wdXRlZFN0eWxlLmJvcmRlckxlZnRXaWR0aCwgMTApIHx8IDA7CisJ
CQlwcmV2Q29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7CisJCX0KKworCQlpZiAoIHByZXZD
b21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHByZXZDb21wdXRlZFN0eWxl
LnBvc2l0aW9uID09PSAic3RhdGljIiApCisJCQl0b3AgICs9IGJvZHkub2Zmc2V0VG9wLAorCQkJ
bGVmdCArPSBib2R5Lm9mZnNldExlZnQ7CisKKwkJaWYgKCBwcmV2Q29tcHV0ZWRTdHlsZS5wb3Np
dGlvbiA9PT0gImZpeGVkIiApCisJCQl0b3AgICs9IE1hdGgubWF4KGRvY0VsZW0uc2Nyb2xsVG9w
LCBib2R5LnNjcm9sbFRvcCksCisJCQlsZWZ0ICs9IE1hdGgubWF4KGRvY0VsZW0uc2Nyb2xsTGVm
dCwgYm9keS5zY3JvbGxMZWZ0KTsKKworCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9
OworCX07CisKK2pRdWVyeS5vZmZzZXQgPSB7CisJaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisJ
CWlmICggdGhpcy5pbml0aWFsaXplZCApIHJldHVybjsKKwkJdmFyIGJvZHkgPSBkb2N1bWVudC5i
b2R5LCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgaW5uZXJEaXYs
IGNoZWNrRGl2LCB0YWJsZSwgdGQsIHJ1bGVzLCBwcm9wLCBib2R5TWFyZ2luVG9wID0gYm9keS5z
dHlsZS5tYXJnaW5Ub3AsCisJCQlodG1sID0gJzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRl
O3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dp
ZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUgc3R5bGU9InBvc2l0
aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7
cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFj
aW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7CisKKwkJcnVsZXMgPSB7IHBvc2l0
aW9uOiAnYWJzb2x1dGUnLCB0b3A6IDAsIGxlZnQ6IDAsIG1hcmdpbjogMCwgYm9yZGVyOiAwLCB3
aWR0aDogJzFweCcsIGhlaWdodDogJzFweCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH07CisJCWZv
ciAoIHByb3AgaW4gcnVsZXMgKSBjb250YWluZXIuc3R5bGVbcHJvcF0gPSBydWxlc1twcm9wXTsK
KworCQljb250YWluZXIuaW5uZXJIVE1MID0gaHRtbDsKKwkJYm9keS5pbnNlcnRCZWZvcmUoY29u
dGFpbmVyLCBib2R5LmZpcnN0Q2hpbGQpOworCQlpbm5lckRpdiA9IGNvbnRhaW5lci5maXJzdENo
aWxkLCBjaGVja0RpdiA9IGlubmVyRGl2LmZpcnN0Q2hpbGQsIHRkID0gaW5uZXJEaXYubmV4dFNp
YmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkOworCisJCXRoaXMuZG9lc05vdEFkZEJvcmRlciA9
IChjaGVja0Rpdi5vZmZzZXRUb3AgIT09IDUpOworCQl0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJs
ZUFuZENlbGxzID0gKHRkLm9mZnNldFRvcCA9PT0gNSk7CisKKwkJaW5uZXJEaXYuc3R5bGUub3Zl
cmZsb3cgPSAnaGlkZGVuJywgaW5uZXJEaXYuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnOwor
CQl0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSA9IChjaGVja0Rpdi5v
ZmZzZXRUb3AgPT09IC01KTsKKworCQlib2R5LnN0eWxlLm1hcmdpblRvcCA9ICcxcHgnOworCQl0
aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0ID0gKGJvZHkub2Zmc2V0VG9wID09
PSAwKTsKKwkJYm9keS5zdHlsZS5tYXJnaW5Ub3AgPSBib2R5TWFyZ2luVG9wOworCisJCWJvZHku
cmVtb3ZlQ2hpbGQoY29udGFpbmVyKTsKKwkJdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisJfSwK
KworCWJvZHlPZmZzZXQ6IGZ1bmN0aW9uKGJvZHkpIHsKKwkJalF1ZXJ5Lm9mZnNldC5pbml0aWFs
aXplZCB8fCBqUXVlcnkub2Zmc2V0LmluaXRpYWxpemUoKTsKKwkJdmFyIHRvcCA9IGJvZHkub2Zm
c2V0VG9wLCBsZWZ0ID0gYm9keS5vZmZzZXRMZWZ0OworCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9l
c05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgKQorCQkJdG9wICArPSBwYXJzZUludCggalF1
ZXJ5LmN1ckNTUyhib2R5LCAnbWFyZ2luVG9wJywgIHRydWUpLCAxMCApIHx8IDAsCisJCQlsZWZ0
ICs9IHBhcnNlSW50KCBqUXVlcnkuY3VyQ1NTKGJvZHksICdtYXJnaW5MZWZ0JywgdHJ1ZSksIDEw
ICkgfHwgMDsKKwkJcmV0dXJuIHsgdG9wOiB0b3AsIGxlZnQ6IGxlZnQgfTsKKwl9Cit9OworCisK
K2pRdWVyeS5mbi5leHRlbmQoeworCXBvc2l0aW9uOiBmdW5jdGlvbigpIHsKKwkJdmFyIGxlZnQg
PSAwLCB0b3AgPSAwLCByZXN1bHRzOworCisJCWlmICggdGhpc1swXSApIHsKKwkJCS8vIEdldCAq
cmVhbCogb2Zmc2V0UGFyZW50CisJCQl2YXIgb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJl
bnQoKSwKKworCQkJLy8gR2V0IGNvcnJlY3Qgb2Zmc2V0cworCQkJb2Zmc2V0ICAgICAgID0gdGhp
cy5vZmZzZXQoKSwKKwkJCXBhcmVudE9mZnNldCA9IC9eYm9keXxodG1sJC9pLnRlc3Qob2Zmc2V0
UGFyZW50WzBdLnRhZ05hbWUpID8geyB0b3A6IDAsIGxlZnQ6IDAgfSA6IG9mZnNldFBhcmVudC5v
ZmZzZXQoKTsKKworCQkJLy8gU3VidHJhY3QgZWxlbWVudCBtYXJnaW5zCisJCQkvLyBub3RlOiB3
aGVuIGFuIGVsZW1lbnQgaGFzIG1hcmdpbjogYXV0byB0aGUgb2Zmc2V0TGVmdCBhbmQgbWFyZ2lu
TGVmdCAKKwkJCS8vIGFyZSB0aGUgc2FtZSBpbiBTYWZhcmkgY2F1c2luZyBvZmZzZXQubGVmdCB0
byBpbmNvcnJlY3RseSBiZSAwCisJCQlvZmZzZXQudG9wICAtPSBudW0oIHRoaXMsICdtYXJnaW5U
b3AnICApOworCQkJb2Zmc2V0LmxlZnQgLT0gbnVtKCB0aGlzLCAnbWFyZ2luTGVmdCcgKTsKKwor
CQkJLy8gQWRkIG9mZnNldFBhcmVudCBib3JkZXJzCisJCQlwYXJlbnRPZmZzZXQudG9wICArPSBu
dW0oIG9mZnNldFBhcmVudCwgJ2JvcmRlclRvcFdpZHRoJyAgKTsKKwkJCXBhcmVudE9mZnNldC5s
ZWZ0ICs9IG51bSggb2Zmc2V0UGFyZW50LCAnYm9yZGVyTGVmdFdpZHRoJyApOworCisJCQkvLyBT
dWJ0cmFjdCB0aGUgdHdvIG9mZnNldHMKKwkJCXJlc3VsdHMgPSB7CisJCQkJdG9wOiAgb2Zmc2V0
LnRvcCAgLSBwYXJlbnRPZmZzZXQudG9wLAorCQkJCWxlZnQ6IG9mZnNldC5sZWZ0IC0gcGFyZW50
T2Zmc2V0LmxlZnQKKwkJCX07CisJCX0KKworCQlyZXR1cm4gcmVzdWx0czsKKwl9LAorCisJb2Zm
c2V0UGFyZW50OiBmdW5jdGlvbigpIHsKKwkJdmFyIG9mZnNldFBhcmVudCA9IHRoaXNbMF0ub2Zm
c2V0UGFyZW50IHx8IGRvY3VtZW50LmJvZHk7CisJCXdoaWxlICggb2Zmc2V0UGFyZW50ICYmICgh
L15ib2R5fGh0bWwkL2kudGVzdChvZmZzZXRQYXJlbnQudGFnTmFtZSkgJiYgalF1ZXJ5LmNzcyhv
ZmZzZXRQYXJlbnQsICdwb3NpdGlvbicpID09ICdzdGF0aWMnKSApCisJCQlvZmZzZXRQYXJlbnQg
PSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50OworCQlyZXR1cm4galF1ZXJ5KG9mZnNldFBhcmVu
dCk7CisJfQorfSk7CisKKworLy8gQ3JlYXRlIHNjcm9sbExlZnQgYW5kIHNjcm9sbFRvcCBtZXRo
b2RzCitqUXVlcnkuZWFjaCggWydMZWZ0JywgJ1RvcCddLCBmdW5jdGlvbihpLCBuYW1lKSB7CisJ
dmFyIG1ldGhvZCA9ICdzY3JvbGwnICsgbmFtZTsKKwkKKwlqUXVlcnkuZm5bIG1ldGhvZCBdID0g
ZnVuY3Rpb24odmFsKSB7CisJCWlmICghdGhpc1swXSkgcmV0dXJuIG51bGw7CisKKwkJcmV0dXJu
IHZhbCAhPT0gdW5kZWZpbmVkID8KKworCQkJLy8gU2V0IHRoZSBzY3JvbGwgb2Zmc2V0CisJCQl0
aGlzLmVhY2goZnVuY3Rpb24oKSB7CisJCQkJdGhpcyA9PSB3aW5kb3cgfHwgdGhpcyA9PSBkb2N1
bWVudCA/CisJCQkJCXdpbmRvdy5zY3JvbGxUbygKKwkJCQkJCSFpID8gdmFsIDogalF1ZXJ5KHdp
bmRvdykuc2Nyb2xsTGVmdCgpLAorCQkJCQkJIGkgPyB2YWwgOiBqUXVlcnkod2luZG93KS5zY3Jv
bGxUb3AoKQorCQkJCQkpIDoKKwkJCQkJdGhpc1sgbWV0aG9kIF0gPSB2YWw7CisJCQl9KSA6CisK
KwkJCS8vIFJldHVybiB0aGUgc2Nyb2xsIG9mZnNldAorCQkJdGhpc1swXSA9PSB3aW5kb3cgfHwg
dGhpc1swXSA9PSBkb2N1bWVudCA/CisJCQkJc2VsZlsgaSA/ICdwYWdlWU9mZnNldCcgOiAncGFn
ZVhPZmZzZXQnIF0gfHwKKwkJCQkJalF1ZXJ5LmJveE1vZGVsICYmIGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudFsgbWV0aG9kIF0gfHwKKwkJCQkJZG9jdW1lbnQuYm9keVsgbWV0aG9kIF0gOgorCQkJ
CXRoaXNbMF1bIG1ldGhvZCBdOworCX07Cit9KTsKKy8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5u
ZXJXaWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kcworalF1ZXJ5LmVhY2go
WyAiSGVpZ2h0IiwgIldpZHRoIiBdLCBmdW5jdGlvbihpLCBuYW1lKXsKKworCXZhciB0bCA9IGkg
PyAiTGVmdCIgIDogIlRvcCIsICAvLyB0b3Agb3IgbGVmdAorCQliciA9IGkgPyAiUmlnaHQiIDog
IkJvdHRvbSIsIC8vIGJvdHRvbSBvciByaWdodAorCQlsb3dlciA9IG5hbWUudG9Mb3dlckNhc2Uo
KTsKKworCS8vIGlubmVySGVpZ2h0IGFuZCBpbm5lcldpZHRoCisJalF1ZXJ5LmZuWyJpbm5lciIg
KyBuYW1lXSA9IGZ1bmN0aW9uKCl7CisJCXJldHVybiB0aGlzWzBdID8KKwkJCWpRdWVyeS5jc3Mo
IHRoaXNbMF0sIGxvd2VyLCBmYWxzZSwgInBhZGRpbmciICkgOgorCQkJbnVsbDsKKwl9OworCisJ
Ly8gb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGgKKwlqUXVlcnkuZm5bIm91dGVyIiArIG5hbWVd
ID0gZnVuY3Rpb24obWFyZ2luKSB7CisJCXJldHVybiB0aGlzWzBdID8KKwkJCWpRdWVyeS5jc3Mo
IHRoaXNbMF0sIGxvd2VyLCBmYWxzZSwgbWFyZ2luID8gIm1hcmdpbiIgOiAiYm9yZGVyIiApIDoK
KwkJCW51bGw7CisJfTsKKwkKKwl2YXIgdHlwZSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKKworCWpR
dWVyeS5mblsgdHlwZSBdID0gZnVuY3Rpb24oIHNpemUgKSB7CisJCS8vIEdldCB3aW5kb3cgd2lk
dGggb3IgaGVpZ2h0CisJCXJldHVybiB0aGlzWzBdID09IHdpbmRvdyA/CisJCQkvLyBFdmVyeW9u
ZSBlbHNlIHVzZSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgb3IgZG9jdW1lbnQuYm9keSBkZXBl
bmRpbmcgb24gUXVpcmtzIHZzIFN0YW5kYXJkcyBtb2RlCisJCQlkb2N1bWVudC5jb21wYXRNb2Rl
ID09ICJDU1MxQ29tcGF0IiAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbICJjbGllbnQiICsg
bmFtZSBdIHx8CisJCQlkb2N1bWVudC5ib2R5WyAiY2xpZW50IiArIG5hbWUgXSA6CisKKwkJCS8v
IEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHQKKwkJCXRoaXNbMF0gPT0gZG9jdW1lbnQgPwor
CQkJCS8vIEVpdGhlciBzY3JvbGxbV2lkdGgvSGVpZ2h0XSBvciBvZmZzZXRbV2lkdGgvSGVpZ2h0
XSwgd2hpY2hldmVyIGlzIGdyZWF0ZXIKKwkJCQlNYXRoLm1heCgKKwkJCQkJZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50WyJjbGllbnQiICsgbmFtZV0sCisJCQkJCWRvY3VtZW50LmJvZHlbInNjcm9s
bCIgKyBuYW1lXSwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiICsgbmFtZV0sCisJ
CQkJCWRvY3VtZW50LmJvZHlbIm9mZnNldCIgKyBuYW1lXSwgZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50WyJvZmZzZXQiICsgbmFtZV0KKwkJCQkpIDoKKworCQkJCS8vIEdldCBvciBzZXQgd2lkdGgg
b3IgaGVpZ2h0IG9uIHRoZSBlbGVtZW50CisJCQkJc2l6ZSA9PT0gdW5kZWZpbmVkID8KKwkJCQkJ
Ly8gR2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxlbWVudAorCQkJCQkodGhpcy5sZW5ndGgg
PyBqUXVlcnkuY3NzKCB0aGlzWzBdLCB0eXBlICkgOiBudWxsKSA6CisKKwkJCQkJLy8gU2V0IHRo
ZSB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQgKGRlZmF1bHQgdG8gcGl4ZWxzIGlmIHZh
bHVlIGlzIHVuaXRsZXNzKQorCQkJCQl0aGlzLmNzcyggdHlwZSwgdHlwZW9mIHNpemUgPT09ICJz
dHJpbmciID8gc2l6ZSA6IHNpemUgKyAicHgiICk7CisJfTsKKworfSk7Cit9KSgpOwpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMv
anF1ZXJ5LTEuNC40Lm1pbi5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL2pzL2pxdWVyeS0xLjQuNC5taW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjhmM2NhMmUyZGFmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvanF1ZXJ5LTEuNC40
Lm1pbi5qcwpAQCAtMCwwICsxLDE2NyBAQAorLyohCisgKiBqUXVlcnkgSmF2YVNjcmlwdCBMaWJy
YXJ5IHYxLjQuNAorICogaHR0cDovL2pxdWVyeS5jb20vCisgKgorICogQ29weXJpZ2h0IDIwMTAs
IEpvaG4gUmVzaWcKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lv
biAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIEluY2x1
ZGVzIFNpenpsZS5qcworICogaHR0cDovL3NpenpsZWpzLmNvbS8KKyAqIENvcHlyaWdodCAyMDEw
LCBUaGUgRG9qbyBGb3VuZGF0aW9uCisgKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlULCBCU0QsIGFu
ZCBHUEwgTGljZW5zZXMuCisgKgorICogRGF0ZTogVGh1IE5vdiAxMSAxOTowNDo1MyAyMDEwIC0w
NTAwCisgKi8KKyhmdW5jdGlvbihFLEIpe2Z1bmN0aW9uIGthKGEsYixkKXtpZihkPT09QiYmYS5u
b2RlVHlwZT09PTEpe2Q9YS5nZXRBdHRyaWJ1dGUoImRhdGEtIitiKTtpZih0eXBlb2YgZD09PSJz
dHJpbmciKXt0cnl7ZD1kPT09InRydWUiP3RydWU6ZD09PSJmYWxzZSI/ZmFsc2U6ZD09PSJudWxs
Ij9udWxsOiFjLmlzTmFOKGQpP3BhcnNlRmxvYXQoZCk6SmEudGVzdChkKT9jLnBhcnNlSlNPTihk
KTpkfWNhdGNoKGUpe31jLmRhdGEoYSxiLGQpfWVsc2UgZD1CfXJldHVybiBkfWZ1bmN0aW9uIFUo
KXtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gY2EoKXtyZXR1cm4gdHJ1ZX1mdW5jdGlvbiBsYShhLGIs
ZCl7ZFswXS50eXBlPWE7cmV0dXJuIGMuZXZlbnQuaGFuZGxlLmFwcGx5KGIsZCl9ZnVuY3Rpb24g
S2EoYSl7dmFyIGIsZCxlLGYsaCxsLGssbyx4LHIsQSxDPVtdO2Y9W107aD1jLmRhdGEodGhpcyx0
aGlzLm5vZGVUeXBlPyJldmVudHMiOiJfX2V2ZW50c19fIik7aWYodHlwZW9mIGg9PT0iZnVuY3Rp
b24iKWg9CitoLmV2ZW50cztpZighKGEubGl2ZUZpcmVkPT09dGhpc3x8IWh8fCFoLmxpdmV8fGEu
YnV0dG9uJiZhLnR5cGU9PT0iY2xpY2siKSl7aWYoYS5uYW1lc3BhY2UpQT1SZWdFeHAoIihefFxc
LikiK2EubmFtZXNwYWNlLnNwbGl0KCIuIikuam9pbigiXFwuKD86LipcXC4pPyIpKyIoXFwufCQp
Iik7YS5saXZlRmlyZWQ9dGhpczt2YXIgSj1oLmxpdmUuc2xpY2UoMCk7Zm9yKGs9MDtrPEoubGVu
Z3RoO2srKyl7aD1KW2tdO2gub3JpZ1R5cGUucmVwbGFjZShYLCIiKT09PWEudHlwZT9mLnB1c2go
aC5zZWxlY3Rvcik6Si5zcGxpY2Uoay0tLDEpfWY9YyhhLnRhcmdldCkuY2xvc2VzdChmLGEuY3Vy
cmVudFRhcmdldCk7bz0wO2Zvcih4PWYubGVuZ3RoO288eDtvKyspe3I9ZltvXTtmb3Ioaz0wO2s8
Si5sZW5ndGg7aysrKXtoPUpba107aWYoci5zZWxlY3Rvcj09PWguc2VsZWN0b3ImJighQXx8QS50
ZXN0KGgubmFtZXNwYWNlKSkpe2w9ci5lbGVtO2U9bnVsbDtpZihoLnByZVR5cGU9PT0ibW91c2Vl
bnRlciJ8fAoraC5wcmVUeXBlPT09Im1vdXNlbGVhdmUiKXthLnR5cGU9aC5wcmVUeXBlO2U9Yyhh
LnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoaC5zZWxlY3RvcilbMF19aWYoIWV8fGUhPT1sKUMucHVz
aCh7ZWxlbTpsLGhhbmRsZU9iajpoLGxldmVsOnIubGV2ZWx9KX19fW89MDtmb3IoeD1DLmxlbmd0
aDtvPHg7bysrKXtmPUNbb107aWYoZCYmZi5sZXZlbD5kKWJyZWFrO2EuY3VycmVudFRhcmdldD1m
LmVsZW07YS5kYXRhPWYuaGFuZGxlT2JqLmRhdGE7YS5oYW5kbGVPYmo9Zi5oYW5kbGVPYmo7QT1m
LmhhbmRsZU9iai5vcmlnSGFuZGxlci5hcHBseShmLmVsZW0sYXJndW1lbnRzKTtpZihBPT09ZmFs
c2V8fGEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7ZD1mLmxldmVsO2lmKEE9PT1mYWxzZSliPWZh
bHNlO2lmKGEuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVha319cmV0dXJuIGJ9
fWZ1bmN0aW9uIFkoYSxiKXtyZXR1cm4oYSYmYSE9PSIqIj9hKyIuIjoiIikrYi5yZXBsYWNlKExh
LAorImAiKS5yZXBsYWNlKE1hLCImIil9ZnVuY3Rpb24gbWEoYSxiLGQpe2lmKGMuaXNGdW5jdGlv
bihiKSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZixoKXtyZXR1cm4hIWIuY2FsbChmLGgsZik9
PT1kfSk7ZWxzZSBpZihiLm5vZGVUeXBlKXJldHVybiBjLmdyZXAoYSxmdW5jdGlvbihmKXtyZXR1
cm4gZj09PWI9PT1kfSk7ZWxzZSBpZih0eXBlb2YgYj09PSJzdHJpbmciKXt2YXIgZT1jLmdyZXAo
YSxmdW5jdGlvbihmKXtyZXR1cm4gZi5ub2RlVHlwZT09PTF9KTtpZihOYS50ZXN0KGIpKXJldHVy
biBjLmZpbHRlcihiLGUsIWQpO2Vsc2UgYj1jLmZpbHRlcihiLGUpfXJldHVybiBjLmdyZXAoYSxm
dW5jdGlvbihmKXtyZXR1cm4gYy5pbkFycmF5KGYsYik+PTA9PT1kfSl9ZnVuY3Rpb24gbmEoYSxi
KXt2YXIgZD0wO2IuZWFjaChmdW5jdGlvbigpe2lmKHRoaXMubm9kZU5hbWU9PT0oYVtkXSYmYVtk
XS5ub2RlTmFtZSkpe3ZhciBlPWMuZGF0YShhW2QrK10pLGY9Yy5kYXRhKHRoaXMsCitlKTtpZihl
PWUmJmUuZXZlbnRzKXtkZWxldGUgZi5oYW5kbGU7Zi5ldmVudHM9e307Zm9yKHZhciBoIGluIGUp
Zm9yKHZhciBsIGluIGVbaF0pYy5ldmVudC5hZGQodGhpcyxoLGVbaF1bbF0sZVtoXVtsXS5kYXRh
KX19fSl9ZnVuY3Rpb24gT2EoYSxiKXtiLnNyYz9jLmFqYXgoe3VybDpiLnNyYyxhc3luYzpmYWxz
ZSxkYXRhVHlwZToic2NyaXB0In0pOmMuZ2xvYmFsRXZhbChiLnRleHR8fGIudGV4dENvbnRlbnR8
fGIuaW5uZXJIVE1MfHwiIik7Yi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
Yil9ZnVuY3Rpb24gb2EoYSxiLGQpe3ZhciBlPWI9PT0id2lkdGgiP2Eub2Zmc2V0V2lkdGg6YS5v
ZmZzZXRIZWlnaHQ7aWYoZD09PSJib3JkZXIiKXJldHVybiBlO2MuZWFjaChiPT09IndpZHRoIj9Q
YTpRYSxmdW5jdGlvbigpe2R8fChlLT1wYXJzZUZsb2F0KGMuY3NzKGEsInBhZGRpbmciK3RoaXMp
KXx8MCk7aWYoZD09PSJtYXJnaW4iKWUrPXBhcnNlRmxvYXQoYy5jc3MoYSwKKyJtYXJnaW4iK3Ro
aXMpKXx8MDtlbHNlIGUtPXBhcnNlRmxvYXQoYy5jc3MoYSwiYm9yZGVyIit0aGlzKyJXaWR0aCIp
KXx8MH0pO3JldHVybiBlfWZ1bmN0aW9uIGRhKGEsYixkLGUpe2lmKGMuaXNBcnJheShiKSYmYi5s
ZW5ndGgpYy5lYWNoKGIsZnVuY3Rpb24oZixoKXtkfHxSYS50ZXN0KGEpP2UoYSxoKTpkYShhKyJb
IisodHlwZW9mIGg9PT0ib2JqZWN0Inx8Yy5pc0FycmF5KGgpP2Y6IiIpKyJdIixoLGQsZSl9KTtl
bHNlIGlmKCFkJiZiIT1udWxsJiZ0eXBlb2YgYj09PSJvYmplY3QiKWMuaXNFbXB0eU9iamVjdChi
KT9lKGEsIiIpOmMuZWFjaChiLGZ1bmN0aW9uKGYsaCl7ZGEoYSsiWyIrZisiXSIsaCxkLGUpfSk7
ZWxzZSBlKGEsYil9ZnVuY3Rpb24gUyhhLGIpe3ZhciBkPXt9O2MuZWFjaChwYS5jb25jYXQuYXBw
bHkoW10scGEuc2xpY2UoMCxiKSksZnVuY3Rpb24oKXtkW3RoaXNdPWF9KTtyZXR1cm4gZH1mdW5j
dGlvbiBxYShhKXtpZighZWFbYV0pe3ZhciBiPWMoIjwiKworYSsiPiIpLmFwcGVuZFRvKCJib2R5
IiksZD1iLmNzcygiZGlzcGxheSIpO2IucmVtb3ZlKCk7aWYoZD09PSJub25lInx8ZD09PSIiKWQ9
ImJsb2NrIjtlYVthXT1kfXJldHVybiBlYVthXX1mdW5jdGlvbiBmYShhKXtyZXR1cm4gYy5pc1dp
bmRvdyhhKT9hOmEubm9kZVR5cGU9PT05P2EuZGVmYXVsdFZpZXd8fGEucGFyZW50V2luZG93OmZh
bHNlfXZhciB0PUUuZG9jdW1lbnQsYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtpZighYi5pc1Jl
YWR5KXt0cnl7dC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwoImxlZnQiKX1jYXRjaChqKXtzZXRU
aW1lb3V0KGEsMSk7cmV0dXJufWIucmVhZHkoKX19dmFyIGI9ZnVuY3Rpb24oaixzKXtyZXR1cm4g
bmV3IGIuZm4uaW5pdChqLHMpfSxkPUUualF1ZXJ5LGU9RS4kLGYsaD0vXig/OltePF0qKDxbXHdc
V10rPilbXj5dKiR8IyhbXHdcLV0rKSQpLyxsPS9cUy8saz0vXlxzKy8sbz0vXHMrJC8seD0vXFcv
LHI9L1xkLyxBPS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sCitDPS9eW1xdLDp7fVxzXSok
LyxKPS9cXCg/OlsiXFxcL2JmbnJ0XXx1WzAtOWEtZkEtRl17NH0pL2csdz0vIlteIlxcXG5ccl0q
Inx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2csST0v
KD86Xnw6fCwpKD86XHMqXFspKy9nLEw9Lyh3ZWJraXQpWyBcL10oW1x3Ll0rKS8sZz0vKG9wZXJh
KSg/Oi4qdmVyc2lvbik/WyBcL10oW1x3Ll0rKS8saT0vKG1zaWUpIChbXHcuXSspLyxuPS8obW96
aWxsYSkoPzouKj8gcnY6KFtcdy5dKykpPy8sbT1uYXZpZ2F0b3IudXNlckFnZW50LHA9ZmFsc2Us
cT1bXSx1LHk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxGPU9iamVjdC5wcm90b3R5cGUuaGFz
T3duUHJvcGVydHksTT1BcnJheS5wcm90b3R5cGUucHVzaCxOPUFycmF5LnByb3RvdHlwZS5zbGlj
ZSxPPVN0cmluZy5wcm90b3R5cGUudHJpbSxEPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLFI9e307
Yi5mbj1iLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihqLAorcyl7dmFyIHYseixIO2lmKCFqKXJl
dHVybiB0aGlzO2lmKGoubm9kZVR5cGUpe3RoaXMuY29udGV4dD10aGlzWzBdPWo7dGhpcy5sZW5n
dGg9MTtyZXR1cm4gdGhpc31pZihqPT09ImJvZHkiJiYhcyYmdC5ib2R5KXt0aGlzLmNvbnRleHQ9
dDt0aGlzWzBdPXQuYm9keTt0aGlzLnNlbGVjdG9yPSJib2R5Ijt0aGlzLmxlbmd0aD0xO3JldHVy
biB0aGlzfWlmKHR5cGVvZiBqPT09InN0cmluZyIpaWYoKHY9aC5leGVjKGopKSYmKHZbMV18fCFz
KSlpZih2WzFdKXtIPXM/cy5vd25lckRvY3VtZW50fHxzOnQ7aWYoej1BLmV4ZWMoaikpaWYoYi5p
c1BsYWluT2JqZWN0KHMpKXtqPVt0LmNyZWF0ZUVsZW1lbnQoelsxXSldO2IuZm4uYXR0ci5jYWxs
KGoscyx0cnVlKX1lbHNlIGo9W0guY3JlYXRlRWxlbWVudCh6WzFdKV07ZWxzZXt6PWIuYnVpbGRG
cmFnbWVudChbdlsxXV0sW0hdKTtqPSh6LmNhY2hlYWJsZT96LmZyYWdtZW50LmNsb25lTm9kZSh0
cnVlKTp6LmZyYWdtZW50KS5jaGlsZE5vZGVzfXJldHVybiBiLm1lcmdlKHRoaXMsCitqKX1lbHNl
e2lmKCh6PXQuZ2V0RWxlbWVudEJ5SWQodlsyXSkpJiZ6LnBhcmVudE5vZGUpe2lmKHouaWQhPT12
WzJdKXJldHVybiBmLmZpbmQoaik7dGhpcy5sZW5ndGg9MTt0aGlzWzBdPXp9dGhpcy5jb250ZXh0
PXQ7dGhpcy5zZWxlY3Rvcj1qO3JldHVybiB0aGlzfWVsc2UgaWYoIXMmJiF4LnRlc3Qoaikpe3Ro
aXMuc2VsZWN0b3I9ajt0aGlzLmNvbnRleHQ9dDtqPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaik7
cmV0dXJuIGIubWVyZ2UodGhpcyxqKX1lbHNlIHJldHVybiFzfHxzLmpxdWVyeT8oc3x8ZikuZmlu
ZChqKTpiKHMpLmZpbmQoaik7ZWxzZSBpZihiLmlzRnVuY3Rpb24oaikpcmV0dXJuIGYucmVhZHko
aik7aWYoai5zZWxlY3RvciE9PUIpe3RoaXMuc2VsZWN0b3I9ai5zZWxlY3Rvcjt0aGlzLmNvbnRl
eHQ9ai5jb250ZXh0fXJldHVybiBiLm1ha2VBcnJheShqLHRoaXMpfSxzZWxlY3RvcjoiIixqcXVl
cnk6IjEuNC40IixsZW5ndGg6MCxzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSwK
K3RvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gTi5jYWxsKHRoaXMsMCl9LGdldDpmdW5jdGlvbihq
KXtyZXR1cm4gaj09bnVsbD90aGlzLnRvQXJyYXkoKTpqPDA/dGhpcy5zbGljZShqKVswXTp0aGlz
W2pdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oaixzLHYpe3ZhciB6PWIoKTtiLmlzQXJyYXkoaik/TS5h
cHBseSh6LGopOmIubWVyZ2UoeixqKTt6LnByZXZPYmplY3Q9dGhpczt6LmNvbnRleHQ9dGhpcy5j
b250ZXh0O2lmKHM9PT0iZmluZCIpei5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yKyh0aGlzLnNlbGVj
dG9yPyIgIjoiIikrdjtlbHNlIGlmKHMpei5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yKyIuIitzKyIo
Iit2KyIpIjtyZXR1cm4gen0sZWFjaDpmdW5jdGlvbihqLHMpe3JldHVybiBiLmVhY2godGhpcyxq
LHMpfSxyZWFkeTpmdW5jdGlvbihqKXtiLmJpbmRSZWFkeSgpO2lmKGIuaXNSZWFkeSlqLmNhbGwo
dCxiKTtlbHNlIHEmJnEucHVzaChqKTtyZXR1cm4gdGhpc30sZXE6ZnVuY3Rpb24oail7cmV0dXJu
IGo9PT0KKy0xP3RoaXMuc2xpY2Uoaik6dGhpcy5zbGljZShqLCtqKzEpfSxmaXJzdDpmdW5jdGlv
bigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEp
fSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhOLmFwcGx5KHRoaXMsYXJn
dW1lbnRzKSwic2xpY2UiLE4uY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlv
bihqKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYi5tYXAodGhpcyxmdW5jdGlvbihzLHYpe3JldHVy
biBqLmNhbGwocyx2LHMpfSkpfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0
fHxiKG51bGwpfSxwdXNoOk0sc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2V9O2IuZm4uaW5p
dC5wcm90b3R5cGU9Yi5mbjtiLmV4dGVuZD1iLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBqLHMs
dix6LEgsRz1hcmd1bWVudHNbMF18fHt9LEs9MSxRPWFyZ3VtZW50cy5sZW5ndGgsZ2E9ZmFsc2U7
CitpZih0eXBlb2YgRz09PSJib29sZWFuIil7Z2E9RztHPWFyZ3VtZW50c1sxXXx8e307Sz0yfWlm
KHR5cGVvZiBHIT09Im9iamVjdCImJiFiLmlzRnVuY3Rpb24oRykpRz17fTtpZihRPT09Syl7Rz10
aGlzOy0tS31mb3IoO0s8UTtLKyspaWYoKGo9YXJndW1lbnRzW0tdKSE9bnVsbClmb3IocyBpbiBq
KXt2PUdbc107ej1qW3NdO2lmKEchPT16KWlmKGdhJiZ6JiYoYi5pc1BsYWluT2JqZWN0KHopfHwo
SD1iLmlzQXJyYXkoeikpKSl7aWYoSCl7SD1mYWxzZTt2PXYmJmIuaXNBcnJheSh2KT92OltdfWVs
c2Ugdj12JiZiLmlzUGxhaW5PYmplY3Qodik/djp7fTtHW3NdPWIuZXh0ZW5kKGdhLHYseil9ZWxz
ZSBpZih6IT09QilHW3NdPXp9cmV0dXJuIEd9O2IuZXh0ZW5kKHtub0NvbmZsaWN0OmZ1bmN0aW9u
KGope0UuJD1lO2lmKGopRS5qUXVlcnk9ZDtyZXR1cm4gYn0saXNSZWFkeTpmYWxzZSxyZWFkeVdh
aXQ6MSxyZWFkeTpmdW5jdGlvbihqKXtqPT09dHJ1ZSYmYi5yZWFkeVdhaXQtLTsKK2lmKCFiLnJl
YWR5V2FpdHx8aiE9PXRydWUmJiFiLmlzUmVhZHkpe2lmKCF0LmJvZHkpcmV0dXJuIHNldFRpbWVv
dXQoYi5yZWFkeSwxKTtiLmlzUmVhZHk9dHJ1ZTtpZighKGohPT10cnVlJiYtLWIucmVhZHlXYWl0
PjApKWlmKHEpe3ZhciBzPTAsdj1xO2ZvcihxPW51bGw7aj12W3MrK107KWouY2FsbCh0LGIpO2Iu
Zm4udHJpZ2dlciYmYih0KS50cmlnZ2VyKCJyZWFkeSIpLnVuYmluZCgicmVhZHkiKX19fSxiaW5k
UmVhZHk6ZnVuY3Rpb24oKXtpZighcCl7cD10cnVlO2lmKHQucmVhZHlTdGF0ZT09PSJjb21wbGV0
ZSIpcmV0dXJuIHNldFRpbWVvdXQoYi5yZWFkeSwxKTtpZih0LmFkZEV2ZW50TGlzdGVuZXIpe3Qu
YWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdSxmYWxzZSk7RS5hZGRFdmVudExp
c3RlbmVyKCJsb2FkIixiLnJlYWR5LGZhbHNlKX1lbHNlIGlmKHQuYXR0YWNoRXZlbnQpe3QuYXR0
YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsdSk7RS5hdHRhY2hFdmVudCgib25sb2FkIiwK
K2IucmVhZHkpO3ZhciBqPWZhbHNlO3RyeXtqPUUuZnJhbWVFbGVtZW50PT1udWxsfWNhdGNoKHMp
e310LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCYmaiYmYSgpfX19LGlzRnVuY3Rpb246ZnVuY3Rp
b24oail7cmV0dXJuIGIudHlwZShqKT09PSJmdW5jdGlvbiJ9LGlzQXJyYXk6QXJyYXkuaXNBcnJh
eXx8ZnVuY3Rpb24oail7cmV0dXJuIGIudHlwZShqKT09PSJhcnJheSJ9LGlzV2luZG93OmZ1bmN0
aW9uKGope3JldHVybiBqJiZ0eXBlb2Ygaj09PSJvYmplY3QiJiYic2V0SW50ZXJ2YWwiaW4gan0s
aXNOYU46ZnVuY3Rpb24oail7cmV0dXJuIGo9PW51bGx8fCFyLnRlc3Qoail8fGlzTmFOKGopfSx0
eXBlOmZ1bmN0aW9uKGope3JldHVybiBqPT1udWxsP1N0cmluZyhqKTpSW3kuY2FsbChqKV18fCJv
YmplY3QifSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGope2lmKCFqfHxiLnR5cGUoaikhPT0ib2Jq
ZWN0Inx8ai5ub2RlVHlwZXx8Yi5pc1dpbmRvdyhqKSlyZXR1cm4gZmFsc2U7aWYoai5jb25zdHJ1
Y3RvciYmCishRi5jYWxsKGosImNvbnN0cnVjdG9yIikmJiFGLmNhbGwoai5jb25zdHJ1Y3Rvci5w
cm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4gZmFsc2U7Zm9yKHZhciBzIGluIGopO3Jl
dHVybiBzPT09Qnx8Ri5jYWxsKGoscyl9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oail7Zm9yKHZh
ciBzIGluIGopcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlfSxlcnJvcjpmdW5jdGlvbihqKXt0aHJv
dyBqO30scGFyc2VKU09OOmZ1bmN0aW9uKGope2lmKHR5cGVvZiBqIT09InN0cmluZyJ8fCFqKXJl
dHVybiBudWxsO2o9Yi50cmltKGopO2lmKEMudGVzdChqLnJlcGxhY2UoSiwiQCIpLnJlcGxhY2Uo
dywiXSIpLnJlcGxhY2UoSSwiIikpKXJldHVybiBFLkpTT04mJkUuSlNPTi5wYXJzZT9FLkpTT04u
cGFyc2Uoaik6KG5ldyBGdW5jdGlvbigicmV0dXJuICIraikpKCk7ZWxzZSBiLmVycm9yKCJJbnZh
bGlkIEpTT046ICIrail9LG5vb3A6ZnVuY3Rpb24oKXt9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oail7
aWYoaiYmCitsLnRlc3Qoaikpe3ZhciBzPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVsw
XXx8dC5kb2N1bWVudEVsZW1lbnQsdj10LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3YudHlwZT0i
dGV4dC9qYXZhc2NyaXB0IjtpZihiLnN1cHBvcnQuc2NyaXB0RXZhbCl2LmFwcGVuZENoaWxkKHQu
Y3JlYXRlVGV4dE5vZGUoaikpO2Vsc2Ugdi50ZXh0PWo7cy5pbnNlcnRCZWZvcmUodixzLmZpcnN0
Q2hpbGQpO3MucmVtb3ZlQ2hpbGQodil9fSxub2RlTmFtZTpmdW5jdGlvbihqLHMpe3JldHVybiBq
Lm5vZGVOYW1lJiZqLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT1zLnRvVXBwZXJDYXNlKCl9LGVh
Y2g6ZnVuY3Rpb24oaixzLHYpe3ZhciB6LEg9MCxHPWoubGVuZ3RoLEs9Rz09PUJ8fGIuaXNGdW5j
dGlvbihqKTtpZih2KWlmKEspZm9yKHogaW4gail7aWYocy5hcHBseShqW3pdLHYpPT09ZmFsc2Up
YnJlYWt9ZWxzZSBmb3IoO0g8Rzspe2lmKHMuYXBwbHkoaltIKytdLHYpPT09ZmFsc2UpYnJlYWt9
ZWxzZSBpZihLKWZvcih6IGluIGope2lmKHMuY2FsbChqW3pdLAoreixqW3pdKT09PWZhbHNlKWJy
ZWFrfWVsc2UgZm9yKHY9alswXTtIPEcmJnMuY2FsbCh2LEgsdikhPT1mYWxzZTt2PWpbKytIXSk7
cmV0dXJuIGp9LHRyaW06Tz9mdW5jdGlvbihqKXtyZXR1cm4gaj09bnVsbD8iIjpPLmNhbGwoail9
OmZ1bmN0aW9uKGope3JldHVybiBqPT1udWxsPyIiOmoudG9TdHJpbmcoKS5yZXBsYWNlKGssIiIp
LnJlcGxhY2UobywiIil9LG1ha2VBcnJheTpmdW5jdGlvbihqLHMpe3ZhciB2PXN8fFtdO2lmKGoh
PW51bGwpe3ZhciB6PWIudHlwZShqKTtqLmxlbmd0aD09bnVsbHx8ej09PSJzdHJpbmcifHx6PT09
ImZ1bmN0aW9uInx8ej09PSJyZWdleHAifHxiLmlzV2luZG93KGopP00uY2FsbCh2LGopOmIubWVy
Z2UodixqKX1yZXR1cm4gdn0saW5BcnJheTpmdW5jdGlvbihqLHMpe2lmKHMuaW5kZXhPZilyZXR1
cm4gcy5pbmRleE9mKGopO2Zvcih2YXIgdj0wLHo9cy5sZW5ndGg7djx6O3YrKylpZihzW3ZdPT09
ailyZXR1cm4gdjtyZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oaiwKK3Mpe3ZhciB2PWoubGVuZ3Ro
LHo9MDtpZih0eXBlb2Ygcy5sZW5ndGg9PT0ibnVtYmVyIilmb3IodmFyIEg9cy5sZW5ndGg7ejxI
O3orKylqW3YrK109c1t6XTtlbHNlIGZvcig7c1t6XSE9PUI7KWpbdisrXT1zW3orK107ai5sZW5n
dGg9djtyZXR1cm4gan0sZ3JlcDpmdW5jdGlvbihqLHMsdil7dmFyIHo9W10sSDt2PSEhdjtmb3Io
dmFyIEc9MCxLPWoubGVuZ3RoO0c8SztHKyspe0g9ISFzKGpbR10sRyk7diE9PUgmJnoucHVzaChq
W0ddKX1yZXR1cm4gen0sbWFwOmZ1bmN0aW9uKGoscyx2KXtmb3IodmFyIHo9W10sSCxHPTAsSz1q
Lmxlbmd0aDtHPEs7RysrKXtIPXMoaltHXSxHLHYpO2lmKEghPW51bGwpelt6Lmxlbmd0aF09SH1y
ZXR1cm4gei5jb25jYXQuYXBwbHkoW10seil9LGd1aWQ6MSxwcm94eTpmdW5jdGlvbihqLHMsdil7
aWYoYXJndW1lbnRzLmxlbmd0aD09PTIpaWYodHlwZW9mIHM9PT0ic3RyaW5nIil7dj1qO2o9dltz
XTtzPUJ9ZWxzZSBpZihzJiYhYi5pc0Z1bmN0aW9uKHMpKXt2PQorcztzPUJ9aWYoIXMmJmopcz1m
dW5jdGlvbigpe3JldHVybiBqLmFwcGx5KHZ8fHRoaXMsYXJndW1lbnRzKX07aWYoailzLmd1aWQ9
ai5ndWlkPWouZ3VpZHx8cy5ndWlkfHxiLmd1aWQrKztyZXR1cm4gc30sYWNjZXNzOmZ1bmN0aW9u
KGoscyx2LHosSCxHKXt2YXIgSz1qLmxlbmd0aDtpZih0eXBlb2Ygcz09PSJvYmplY3QiKXtmb3Io
dmFyIFEgaW4gcyliLmFjY2VzcyhqLFEsc1tRXSx6LEgsdik7cmV0dXJuIGp9aWYodiE9PUIpe3o9
IUcmJnomJmIuaXNGdW5jdGlvbih2KTtmb3IoUT0wO1E8SztRKyspSChqW1FdLHMsej92LmNhbGwo
altRXSxRLEgoaltRXSxzKSk6dixHKTtyZXR1cm4gan1yZXR1cm4gSz9IKGpbMF0scyk6Qn0sbm93
OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9LHVhTWF0Y2g6ZnVuY3Rpb24o
ail7aj1qLnRvTG93ZXJDYXNlKCk7aj1MLmV4ZWMoail8fGcuZXhlYyhqKXx8aS5leGVjKGopfHxq
LmluZGV4T2YoImNvbXBhdGlibGUiKTwwJiZuLmV4ZWMoail8fAorW107cmV0dXJue2Jyb3dzZXI6
alsxXXx8IiIsdmVyc2lvbjpqWzJdfHwiMCJ9fSxicm93c2VyOnt9fSk7Yi5lYWNoKCJCb29sZWFu
IE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0Ii5zcGxpdCgi
ICIpLGZ1bmN0aW9uKGoscyl7UlsiW29iamVjdCAiK3MrIl0iXT1zLnRvTG93ZXJDYXNlKCl9KTtt
PWIudWFNYXRjaChtKTtpZihtLmJyb3dzZXIpe2IuYnJvd3NlclttLmJyb3dzZXJdPXRydWU7Yi5i
cm93c2VyLnZlcnNpb249bS52ZXJzaW9ufWlmKGIuYnJvd3Nlci53ZWJraXQpYi5icm93c2VyLnNh
ZmFyaT10cnVlO2lmKEQpYi5pbkFycmF5PWZ1bmN0aW9uKGoscyl7cmV0dXJuIEQuY2FsbChzLGop
fTtpZighL1xzLy50ZXN0KCJcdTAwYTAiKSl7az0vXltcc1x4QTBdKy87bz0vW1xzXHhBMF0rJC99
Zj1iKHQpO2lmKHQuYWRkRXZlbnRMaXN0ZW5lcil1PWZ1bmN0aW9uKCl7dC5yZW1vdmVFdmVudExp
c3RlbmVyKCJET01Db250ZW50TG9hZGVkIix1LAorZmFsc2UpO2IucmVhZHkoKX07ZWxzZSBpZih0
LmF0dGFjaEV2ZW50KXU9ZnVuY3Rpb24oKXtpZih0LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXt0
LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHUpO2IucmVhZHkoKX19O3JldHVybiBF
LmpRdWVyeT1FLiQ9Yn0oKTsoZnVuY3Rpb24oKXtjLnN1cHBvcnQ9e307dmFyIGE9dC5kb2N1bWVu
dEVsZW1lbnQsYj10LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGQ9dC5jcmVhdGVFbGVtZW50KCJk
aXYiKSxlPSJzY3JpcHQiK2Mubm93KCk7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjtkLmlubmVySFRN
TD0iICAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJyBzdHlsZT0nY29sb3I6cmVk
O2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTU7Jz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiI7
dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLGg9ZC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiYSIpWzBdLGw9dC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKSwKK2s9bC5hcHBlbmRDaGlsZCh0
LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtpZighKCFmfHwhZi5sZW5ndGh8fCFoKSl7Yy5zdXBw
b3J0PXtsZWFkaW5nV2hpdGVzcGFjZTpkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0zLHRib2R5OiFk
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhZC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KGguZ2V0
QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpoLmdldEF0dHJpYnV0ZSgiaHJlZiIp
PT09Ii9hIixvcGFjaXR5Oi9eMC41NSQvLnRlc3QoaC5zdHlsZS5vcGFjaXR5KSxjc3NGbG9hdDoh
IWguc3R5bGUuY3NzRmxvYXQsY2hlY2tPbjpkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIp
WzBdLnZhbHVlPT09Im9uIixvcHRTZWxlY3RlZDprLnNlbGVjdGVkLGRlbGV0ZUV4cGFuZG86dHJ1
ZSxvcHREaXNhYmxlZDpmYWxzZSxjaGVja0Nsb25lOmZhbHNlLAorc2NyaXB0RXZhbDpmYWxzZSxu
b0Nsb25lRXZlbnQ6dHJ1ZSxib3hNb2RlbDpudWxsLGlubGluZUJsb2NrTmVlZHNMYXlvdXQ6ZmFs
c2Usc2hyaW5rV3JhcEJsb2NrczpmYWxzZSxyZWxpYWJsZUhpZGRlbk9mZnNldHM6dHJ1ZX07bC5k
aXNhYmxlZD10cnVlO2Muc3VwcG9ydC5vcHREaXNhYmxlZD0hay5kaXNhYmxlZDtiLnR5cGU9InRl
eHQvamF2YXNjcmlwdCI7dHJ5e2IuYXBwZW5kQ2hpbGQodC5jcmVhdGVUZXh0Tm9kZSgid2luZG93
LiIrZSsiPTE7IikpfWNhdGNoKG8pe31hLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCk7aWYo
RVtlXSl7Yy5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgRVtlXX10cnl7ZGVsZXRlIGIu
dGVzdH1jYXRjaCh4KXtjLnN1cHBvcnQuZGVsZXRlRXhwYW5kbz1mYWxzZX1hLnJlbW92ZUNoaWxk
KGIpO2lmKGQuYXR0YWNoRXZlbnQmJmQuZmlyZUV2ZW50KXtkLmF0dGFjaEV2ZW50KCJvbmNsaWNr
IixmdW5jdGlvbiByKCl7Yy5zdXBwb3J0Lm5vQ2xvbmVFdmVudD0KK2ZhbHNlO2QuZGV0YWNoRXZl
bnQoIm9uY2xpY2siLHIpfSk7ZC5jbG9uZU5vZGUodHJ1ZSkuZmlyZUV2ZW50KCJvbmNsaWNrIil9
ZD10LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuaW5uZXJIVE1MPSI8aW5wdXQgdHlwZT0ncmFkaW8n
IG5hbWU9J3JhZGlvdGVzdCcgY2hlY2tlZD0nY2hlY2tlZCcvPiI7YT10LmNyZWF0ZURvY3VtZW50
RnJhZ21lbnQoKTthLmFwcGVuZENoaWxkKGQuZmlyc3RDaGlsZCk7Yy5zdXBwb3J0LmNoZWNrQ2xv
bmU9YS5jbG9uZU5vZGUodHJ1ZSkuY2xvbmVOb2RlKHRydWUpLmxhc3RDaGlsZC5jaGVja2VkO2Mo
ZnVuY3Rpb24oKXt2YXIgcj10LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Iuc3R5bGUud2lkdGg9ci5z
dHlsZS5wYWRkaW5nTGVmdD0iMXB4Ijt0LmJvZHkuYXBwZW5kQ2hpbGQocik7Yy5ib3hNb2RlbD1j
LnN1cHBvcnQuYm94TW9kZWw9ci5vZmZzZXRXaWR0aD09PTI7aWYoInpvb20iaW4gci5zdHlsZSl7
ci5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiO3Iuc3R5bGUuem9vbT0KKzE7Yy5zdXBwb3J0LmlubGlu
ZUJsb2NrTmVlZHNMYXlvdXQ9ci5vZmZzZXRXaWR0aD09PTI7ci5zdHlsZS5kaXNwbGF5PSIiO3Iu
aW5uZXJIVE1MPSI8ZGl2IHN0eWxlPSd3aWR0aDo0cHg7Jz48L2Rpdj4iO2Muc3VwcG9ydC5zaHJp
bmtXcmFwQmxvY2tzPXIub2Zmc2V0V2lkdGghPT0yfXIuaW5uZXJIVE1MPSI8dGFibGU+PHRyPjx0
ZCBzdHlsZT0ncGFkZGluZzowO2Rpc3BsYXk6bm9uZSc+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3Rh
YmxlPiI7dmFyIEE9ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKTtjLnN1cHBvcnQucmVsaWFi
bGVIaWRkZW5PZmZzZXRzPUFbMF0ub2Zmc2V0SGVpZ2h0PT09MDtBWzBdLnN0eWxlLmRpc3BsYXk9
IiI7QVsxXS5zdHlsZS5kaXNwbGF5PSJub25lIjtjLnN1cHBvcnQucmVsaWFibGVIaWRkZW5PZmZz
ZXRzPWMuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMmJkFbMF0ub2Zmc2V0SGVpZ2h0PT09
MDtyLmlubmVySFRNTD0iIjt0LmJvZHkucmVtb3ZlQ2hpbGQocikuc3R5bGUuZGlzcGxheT0KKyJu
b25lIn0pO2E9ZnVuY3Rpb24ocil7dmFyIEE9dC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyPSJvbiIr
cjt2YXIgQz1yIGluIEE7aWYoIUMpe0Euc2V0QXR0cmlidXRlKHIsInJldHVybjsiKTtDPXR5cGVv
ZiBBW3JdPT09ImZ1bmN0aW9uIn1yZXR1cm4gQ307Yy5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXM9YSgi
c3VibWl0Iik7Yy5zdXBwb3J0LmNoYW5nZUJ1YmJsZXM9YSgiY2hhbmdlIik7YT1iPWQ9Zj1oPW51
bGx9fSkoKTt2YXIgcmE9e30sSmE9L14oPzpcey4qXH18XFsuKlxdKSQvO2MuZXh0ZW5kKHtjYWNo
ZTp7fSx1dWlkOjAsZXhwYW5kbzoialF1ZXJ5IitjLm5vdygpLG5vRGF0YTp7ZW1iZWQ6dHJ1ZSxv
YmplY3Q6ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIsYXBwbGV0
OnRydWV9LGRhdGE6ZnVuY3Rpb24oYSxiLGQpe2lmKGMuYWNjZXB0RGF0YShhKSl7YT1hPT1FP3Jh
OmE7dmFyIGU9YS5ub2RlVHlwZSxmPWU/YVtjLmV4cGFuZG9dOm51bGwsaD0KK2MuY2FjaGU7aWYo
IShlJiYhZiYmdHlwZW9mIGI9PT0ic3RyaW5nIiYmZD09PUIpKXtpZihlKWZ8fChhW2MuZXhwYW5k
b109Zj0rK2MudXVpZCk7ZWxzZSBoPWE7aWYodHlwZW9mIGI9PT0ib2JqZWN0IilpZihlKWhbZl09
Yy5leHRlbmQoaFtmXSxiKTtlbHNlIGMuZXh0ZW5kKGgsYik7ZWxzZSBpZihlJiYhaFtmXSloW2Zd
PXt9O2E9ZT9oW2ZdOmg7aWYoZCE9PUIpYVtiXT1kO3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmci
P2FbYl06YX19fSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7aWYoYy5hY2NlcHREYXRhKGEpKXth
PWE9PUU/cmE6YTt2YXIgZD1hLm5vZGVUeXBlLGU9ZD9hW2MuZXhwYW5kb106YSxmPWMuY2FjaGUs
aD1kP2ZbZV06ZTtpZihiKXtpZihoKXtkZWxldGUgaFtiXTtkJiZjLmlzRW1wdHlPYmplY3QoaCkm
JmMucmVtb3ZlRGF0YShhKX19ZWxzZSBpZihkJiZjLnN1cHBvcnQuZGVsZXRlRXhwYW5kbylkZWxl
dGUgYVtjLmV4cGFuZG9dO2Vsc2UgaWYoYS5yZW1vdmVBdHRyaWJ1dGUpYS5yZW1vdmVBdHRyaWJ1
dGUoYy5leHBhbmRvKTsKK2Vsc2UgaWYoZClkZWxldGUgZltlXTtlbHNlIGZvcih2YXIgbCBpbiBh
KWRlbGV0ZSBhW2xdfX0sYWNjZXB0RGF0YTpmdW5jdGlvbihhKXtpZihhLm5vZGVOYW1lKXt2YXIg
Yj1jLm5vRGF0YVthLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldO2lmKGIpcmV0dXJuIShiPT09dHJ1
ZXx8YS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKSE9PWIpfXJldHVybiB0cnVlfX0pO2MuZm4uZXh0
ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGQ9bnVsbDtpZih0eXBlb2YgYT09PSJ1bmRlZmlu
ZWQiKXtpZih0aGlzLmxlbmd0aCl7dmFyIGU9dGhpc1swXS5hdHRyaWJ1dGVzLGY7ZD1jLmRhdGEo
dGhpc1swXSk7Zm9yKHZhciBoPTAsbD1lLmxlbmd0aDtoPGw7aCsrKXtmPWVbaF0ubmFtZTtpZihm
LmluZGV4T2YoImRhdGEtIik9PT0wKXtmPWYuc3Vic3RyKDUpO2thKHRoaXNbMF0sZixkW2ZdKX19
fXJldHVybiBkfWVsc2UgaWYodHlwZW9mIGE9PT0ib2JqZWN0IilyZXR1cm4gdGhpcy5lYWNoKGZ1
bmN0aW9uKCl7Yy5kYXRhKHRoaXMsCithKX0pO3ZhciBrPWEuc3BsaXQoIi4iKTtrWzFdPWtbMV0/
Ii4iK2tbMV06IiI7aWYoYj09PUIpe2Q9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIra1sx
XSsiISIsW2tbMF1dKTtpZihkPT09QiYmdGhpcy5sZW5ndGgpe2Q9Yy5kYXRhKHRoaXNbMF0sYSk7
ZD1rYSh0aGlzWzBdLGEsZCl9cmV0dXJuIGQ9PT1CJiZrWzFdP3RoaXMuZGF0YShrWzBdKTpkfWVs
c2UgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBvPWModGhpcykseD1ba1swXSxiXTtv
LnRyaWdnZXJIYW5kbGVyKCJzZXREYXRhIitrWzFdKyIhIix4KTtjLmRhdGEodGhpcyxhLGIpO28u
dHJpZ2dlckhhbmRsZXIoImNoYW5nZURhdGEiK2tbMV0rIiEiLHgpfSl9LHJlbW92ZURhdGE6ZnVu
Y3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MucmVtb3ZlRGF0YSh0aGlzLGEp
fSl9fSk7Yy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixkKXtpZihhKXtiPShifHwiZngiKSsi
cXVldWUiO3ZhciBlPQorYy5kYXRhKGEsYik7aWYoIWQpcmV0dXJuIGV8fFtdO2lmKCFlfHxjLmlz
QXJyYXkoZCkpZT1jLmRhdGEoYSxiLGMubWFrZUFycmF5KGQpKTtlbHNlIGUucHVzaChkKTtyZXR1
cm4gZX19LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGQ9Yy5xdWV1ZShhLGIp
LGU9ZC5zaGlmdCgpO2lmKGU9PT0iaW5wcm9ncmVzcyIpZT1kLnNoaWZ0KCk7aWYoZSl7Yj09PSJm
eCImJmQudW5zaGlmdCgiaW5wcm9ncmVzcyIpO2UuY2FsbChhLGZ1bmN0aW9uKCl7Yy5kZXF1ZXVl
KGEsYil9KX19fSk7Yy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGEh
PT0ic3RyaW5nIil7Yj1hO2E9ImZ4In1pZihiPT09QilyZXR1cm4gYy5xdWV1ZSh0aGlzWzBdLGEp
O3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1jLnF1ZXVlKHRoaXMsYSxiKTthPT09
ImZ4IiYmZFswXSE9PSJpbnByb2dyZXNzIiYmYy5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpm
dW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKHRoaXMsCith
KX0pfSxkZWxheTpmdW5jdGlvbihhLGIpe2E9Yy5meD9jLmZ4LnNwZWVkc1thXXx8YTphO2I9Ynx8
ImZ4IjtyZXR1cm4gdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKCl7dmFyIGQ9dGhpcztzZXRUaW1lb3V0
KGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKGQsYil9LGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7
cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9fSk7dmFyIHNhPS9bXG5cdF0vZyxoYT0vXHMr
LyxTYT0vXHIvZyxUYT0vXig/OmhyZWZ8c3JjfHN0eWxlKSQvLFVhPS9eKD86YnV0dG9ufGlucHV0
KSQvaSxWYT0vXig/OmJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKSQvaSxXYT0v
XmEoPzpyZWEpPyQvaSx0YT0vXig/OnJhZGlvfGNoZWNrYm94KSQvaTtjLnByb3BzPXsiZm9yIjoi
aHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIixyZWFkb25seToicmVhZE9ubHkiLG1heGxlbmd0
aDoibWF4TGVuZ3RoIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLHJvd3NwYW46InJvd1NwYW4i
LAorY29sc3BhbjoiY29sU3BhbiIsdGFiaW5kZXg6InRhYkluZGV4Iix1c2VtYXA6InVzZU1hcCIs
ZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIn07Yy5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxi
KXtyZXR1cm4gYy5hY2Nlc3ModGhpcyxhLGIsdHJ1ZSxjLmF0dHIpfSxyZW1vdmVBdHRyOmZ1bmN0
aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmF0dHIodGhpcyxhLCIiKTt0aGlz
Lm5vZGVUeXBlPT09MSYmdGhpcy5yZW1vdmVBdHRyaWJ1dGUoYSl9KX0sYWRkQ2xhc3M6ZnVuY3Rp
b24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oeCl7dmFy
IHI9Yyh0aGlzKTtyLmFkZENsYXNzKGEuY2FsbCh0aGlzLHgsci5hdHRyKCJjbGFzcyIpKSl9KTtp
ZihhJiZ0eXBlb2YgYT09PSJzdHJpbmciKWZvcih2YXIgYj0oYXx8IiIpLnNwbGl0KGhhKSxkPTAs
ZT10aGlzLmxlbmd0aDtkPGU7ZCsrKXt2YXIgZj10aGlzW2RdO2lmKGYubm9kZVR5cGU9PT0KKzEp
aWYoZi5jbGFzc05hbWUpe2Zvcih2YXIgaD0iICIrZi5jbGFzc05hbWUrIiAiLGw9Zi5jbGFzc05h
bWUsaz0wLG89Yi5sZW5ndGg7azxvO2srKylpZihoLmluZGV4T2YoIiAiK2Jba10rIiAiKTwwKWwr
PSIgIitiW2tdO2YuY2xhc3NOYW1lPWMudHJpbShsKX1lbHNlIGYuY2xhc3NOYW1lPWF9cmV0dXJu
IHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4g
dGhpcy5lYWNoKGZ1bmN0aW9uKG8pe3ZhciB4PWModGhpcyk7eC5yZW1vdmVDbGFzcyhhLmNhbGwo
dGhpcyxvLHguYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nInx8YT09
PUIpZm9yKHZhciBiPShhfHwiIikuc3BsaXQoaGEpLGQ9MCxlPXRoaXMubGVuZ3RoO2Q8ZTtkKysp
e3ZhciBmPXRoaXNbZF07aWYoZi5ub2RlVHlwZT09PTEmJmYuY2xhc3NOYW1lKWlmKGEpe2Zvcih2
YXIgaD0oIiAiK2YuY2xhc3NOYW1lKyIgIikucmVwbGFjZShzYSwiICIpLAorbD0wLGs9Yi5sZW5n
dGg7bDxrO2wrKyloPWgucmVwbGFjZSgiICIrYltsXSsiICIsIiAiKTtmLmNsYXNzTmFtZT1jLnRy
aW0oaCl9ZWxzZSBmLmNsYXNzTmFtZT0iIn1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rp
b24oYSxiKXt2YXIgZD10eXBlb2YgYSxlPXR5cGVvZiBiPT09ImJvb2xlYW4iO2lmKGMuaXNGdW5j
dGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGYpe3ZhciBoPWModGhpcyk7aC50b2dn
bGVDbGFzcyhhLmNhbGwodGhpcyxmLGguYXR0cigiY2xhc3MiKSxiKSxiKX0pO3JldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oKXtpZihkPT09InN0cmluZyIpZm9yKHZhciBmLGg9MCxsPWModGhpcyks
az1iLG89YS5zcGxpdChoYSk7Zj1vW2grK107KXtrPWU/azohbC5oYXNDbGFzcyhmKTtsW2s/ImFk
ZENsYXNzIjoicmVtb3ZlQ2xhc3MiXShmKX1lbHNlIGlmKGQ9PT0idW5kZWZpbmVkInx8ZD09PSJi
b29sZWFuIil7dGhpcy5jbGFzc05hbWUmJmMuZGF0YSh0aGlzLAorIl9fY2xhc3NOYW1lX18iLHRo
aXMuY2xhc3NOYW1lKTt0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZXx8YT09PWZhbHNlPyIi
OmMuZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIifX0pfSxoYXNDbGFzczpmdW5jdGlvbihh
KXthPSIgIithKyIgIjtmb3IodmFyIGI9MCxkPXRoaXMubGVuZ3RoO2I8ZDtiKyspaWYoKCIgIit0
aGlzW2JdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2Uoc2EsIiAiKS5pbmRleE9mKGEpPi0xKXJldHVy
biB0cnVlO3JldHVybiBmYWxzZX0sdmFsOmZ1bmN0aW9uKGEpe2lmKCFhcmd1bWVudHMubGVuZ3Ro
KXt2YXIgYj10aGlzWzBdO2lmKGIpe2lmKGMubm9kZU5hbWUoYiwib3B0aW9uIikpe3ZhciBkPWIu
YXR0cmlidXRlcy52YWx1ZTtyZXR1cm4hZHx8ZC5zcGVjaWZpZWQ/Yi52YWx1ZTpiLnRleHR9aWYo
Yy5ub2RlTmFtZShiLCJzZWxlY3QiKSl7dmFyIGU9Yi5zZWxlY3RlZEluZGV4O2Q9W107dmFyIGY9
Yi5vcHRpb25zO2I9Yi50eXBlPT09InNlbGVjdC1vbmUiOworaWYoZTwwKXJldHVybiBudWxsO3Zh
ciBoPWI/ZTowO2ZvcihlPWI/ZSsxOmYubGVuZ3RoO2g8ZTtoKyspe3ZhciBsPWZbaF07aWYobC5z
ZWxlY3RlZCYmKGMuc3VwcG9ydC5vcHREaXNhYmxlZD8hbC5kaXNhYmxlZDpsLmdldEF0dHJpYnV0
ZSgiZGlzYWJsZWQiKT09PW51bGwpJiYoIWwucGFyZW50Tm9kZS5kaXNhYmxlZHx8IWMubm9kZU5h
bWUobC5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7YT1jKGwpLnZhbCgpO2lmKGIpcmV0dXJuIGE7
ZC5wdXNoKGEpfX1yZXR1cm4gZH1pZih0YS50ZXN0KGIudHlwZSkmJiFjLnN1cHBvcnQuY2hlY2tP
bilyZXR1cm4gYi5nZXRBdHRyaWJ1dGUoInZhbHVlIik9PT1udWxsPyJvbiI6Yi52YWx1ZTtyZXR1
cm4oYi52YWx1ZXx8IiIpLnJlcGxhY2UoU2EsIiIpfXJldHVybiBCfXZhciBrPWMuaXNGdW5jdGlv
bihhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG8pe3ZhciB4PWModGhpcykscj1hO2lmKHRo
aXMubm9kZVR5cGU9PT0xKXtpZihrKXI9CithLmNhbGwodGhpcyxvLHgudmFsKCkpO2lmKHI9PW51
bGwpcj0iIjtlbHNlIGlmKHR5cGVvZiByPT09Im51bWJlciIpcis9IiI7ZWxzZSBpZihjLmlzQXJy
YXkocikpcj1jLm1hcChyLGZ1bmN0aW9uKEMpe3JldHVybiBDPT1udWxsPyIiOkMrIiJ9KTtpZihj
LmlzQXJyYXkocikmJnRhLnRlc3QodGhpcy50eXBlKSl0aGlzLmNoZWNrZWQ9Yy5pbkFycmF5KHgu
dmFsKCkscik+PTA7ZWxzZSBpZihjLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgQT1jLm1h
a2VBcnJheShyKTtjKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVk
PWMuaW5BcnJheShjKHRoaXMpLnZhbCgpLEEpPj0wfSk7aWYoIUEubGVuZ3RoKXRoaXMuc2VsZWN0
ZWRJbmRleD0tMX1lbHNlIHRoaXMudmFsdWU9cn19KX19KTtjLmV4dGVuZCh7YXR0ckZuOnt2YWw6
dHJ1ZSxjc3M6dHJ1ZSxodG1sOnRydWUsdGV4dDp0cnVlLGRhdGE6dHJ1ZSx3aWR0aDp0cnVlLGhl
aWdodDp0cnVlLG9mZnNldDp0cnVlfSwKK2F0dHI6ZnVuY3Rpb24oYSxiLGQsZSl7aWYoIWF8fGEu
bm9kZVR5cGU9PT0zfHxhLm5vZGVUeXBlPT09OClyZXR1cm4gQjtpZihlJiZiIGluIGMuYXR0ckZu
KXJldHVybiBjKGEpW2JdKGQpO2U9YS5ub2RlVHlwZSE9PTF8fCFjLmlzWE1MRG9jKGEpO3ZhciBm
PWQhPT1CO2I9ZSYmYy5wcm9wc1tiXXx8Yjt2YXIgaD1UYS50ZXN0KGIpO2lmKChiIGluIGF8fGFb
Yl0hPT1CKSYmZSYmIWgpe2lmKGYpe2I9PT0idHlwZSImJlVhLnRlc3QoYS5ub2RlTmFtZSkmJmEu
cGFyZW50Tm9kZSYmYy5lcnJvcigidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIik7aWYo
ZD09PW51bGwpYS5ub2RlVHlwZT09PTEmJmEucmVtb3ZlQXR0cmlidXRlKGIpO2Vsc2UgYVtiXT1k
fWlmKGMubm9kZU5hbWUoYSwiZm9ybSIpJiZhLmdldEF0dHJpYnV0ZU5vZGUoYikpcmV0dXJuIGEu
Z2V0QXR0cmlidXRlTm9kZShiKS5ub2RlVmFsdWU7aWYoYj09PSJ0YWJJbmRleCIpcmV0dXJuKGI9
YS5nZXRBdHRyaWJ1dGVOb2RlKCJ0YWJJbmRleCIpKSYmCitiLnNwZWNpZmllZD9iLnZhbHVlOlZh
LnRlc3QoYS5ub2RlTmFtZSl8fFdhLnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOkI7cmV0dXJu
IGFbYl19aWYoIWMuc3VwcG9ydC5zdHlsZSYmZSYmYj09PSJzdHlsZSIpe2lmKGYpYS5zdHlsZS5j
c3NUZXh0PSIiK2Q7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dH1mJiZhLnNldEF0dHJpYnV0ZShiLCIi
K2QpO2lmKCFhLmF0dHJpYnV0ZXNbYl0mJmEuaGFzQXR0cmlidXRlJiYhYS5oYXNBdHRyaWJ1dGUo
YikpcmV0dXJuIEI7YT0hYy5zdXBwb3J0LmhyZWZOb3JtYWxpemVkJiZlJiZoP2EuZ2V0QXR0cmli
dXRlKGIsMik6YS5nZXRBdHRyaWJ1dGUoYik7cmV0dXJuIGE9PT1udWxsP0I6YX19KTt2YXIgWD0v
XC4oLiopJC8saWE9L14oPzp0ZXh0YXJlYXxpbnB1dHxzZWxlY3QpJC9pLExhPS9cLi9nLE1hPS8g
L2csWGE9L1teXHdccy58YF0vZyxZYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKFhhLCJc
XCQmIil9LHVhPXtmb2N1c2luOjAsZm9jdXNvdXQ6MH07CitjLmV2ZW50PXthZGQ6ZnVuY3Rpb24o
YSxiLGQsZSl7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpKXtpZihjLmlzV2lu
ZG93KGEpJiZhIT09RSYmIWEuZnJhbWVFbGVtZW50KWE9RTtpZihkPT09ZmFsc2UpZD1VO2Vsc2Ug
aWYoIWQpcmV0dXJuO3ZhciBmLGg7aWYoZC5oYW5kbGVyKXtmPWQ7ZD1mLmhhbmRsZXJ9aWYoIWQu
Z3VpZClkLmd1aWQ9Yy5ndWlkKys7aWYoaD1jLmRhdGEoYSkpe3ZhciBsPWEubm9kZVR5cGU/ImV2
ZW50cyI6Il9fZXZlbnRzX18iLGs9aFtsXSxvPWguaGFuZGxlO2lmKHR5cGVvZiBrPT09ImZ1bmN0
aW9uIil7bz1rLmhhbmRsZTtrPWsuZXZlbnRzfWVsc2UgaWYoIWspe2Eubm9kZVR5cGV8fChoW2xd
PWg9ZnVuY3Rpb24oKXt9KTtoLmV2ZW50cz1rPXt9fWlmKCFvKWguaGFuZGxlPW89ZnVuY3Rpb24o
KXtyZXR1cm4gdHlwZW9mIGMhPT0idW5kZWZpbmVkIiYmIWMuZXZlbnQudHJpZ2dlcmVkP2MuZXZl
bnQuaGFuZGxlLmFwcGx5KG8uZWxlbSwKK2FyZ3VtZW50cyk6Qn07by5lbGVtPWE7Yj1iLnNwbGl0
KCIgIik7Zm9yKHZhciB4PTAscjtsPWJbeCsrXTspe2g9Zj9jLmV4dGVuZCh7fSxmKTp7aGFuZGxl
cjpkLGRhdGE6ZX07aWYobC5pbmRleE9mKCIuIik+LTEpe3I9bC5zcGxpdCgiLiIpO2w9ci5zaGlm
dCgpO2gubmFtZXNwYWNlPXIuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKX1lbHNle3I9W107aC5u
YW1lc3BhY2U9IiJ9aC50eXBlPWw7aWYoIWguZ3VpZCloLmd1aWQ9ZC5ndWlkO3ZhciBBPWtbbF0s
Qz1jLmV2ZW50LnNwZWNpYWxbbF18fHt9O2lmKCFBKXtBPWtbbF09W107aWYoIUMuc2V0dXB8fEMu
c2V0dXAuY2FsbChhLGUscixvKT09PWZhbHNlKWlmKGEuYWRkRXZlbnRMaXN0ZW5lcilhLmFkZEV2
ZW50TGlzdGVuZXIobCxvLGZhbHNlKTtlbHNlIGEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQo
Im9uIitsLG8pfWlmKEMuYWRkKXtDLmFkZC5jYWxsKGEsaCk7aWYoIWguaGFuZGxlci5ndWlkKWgu
aGFuZGxlci5ndWlkPQorZC5ndWlkfUEucHVzaChoKTtjLmV2ZW50Lmdsb2JhbFtsXT10cnVlfWE9
bnVsbH19fSxnbG9iYWw6e30scmVtb3ZlOmZ1bmN0aW9uKGEsYixkLGUpe2lmKCEoYS5ub2RlVHlw
ZT09PTN8fGEubm9kZVR5cGU9PT04KSl7aWYoZD09PWZhbHNlKWQ9VTt2YXIgZixoLGw9MCxrLG8s
eCxyLEEsQyxKPWEubm9kZVR5cGU/ImV2ZW50cyI6Il9fZXZlbnRzX18iLHc9Yy5kYXRhKGEpLEk9
dyYmd1tKXTtpZih3JiZJKXtpZih0eXBlb2YgST09PSJmdW5jdGlvbiIpe3c9STtJPUkuZXZlbnRz
fWlmKGImJmIudHlwZSl7ZD1iLmhhbmRsZXI7Yj1iLnR5cGV9aWYoIWJ8fHR5cGVvZiBiPT09InN0
cmluZyImJmIuY2hhckF0KDApPT09Ii4iKXtiPWJ8fCIiO2ZvcihmIGluIEkpYy5ldmVudC5yZW1v
dmUoYSxmK2IpfWVsc2V7Zm9yKGI9Yi5zcGxpdCgiICIpO2Y9YltsKytdOyl7cj1mO2s9Zi5pbmRl
eE9mKCIuIik8MDtvPVtdO2lmKCFrKXtvPWYuc3BsaXQoIi4iKTtmPW8uc2hpZnQoKTt4PVJlZ0V4
cCgiKF58XFwuKSIrCitjLm1hcChvLnNsaWNlKDApLnNvcnQoKSxZYSkuam9pbigiXFwuKD86Lipc
XC4pPyIpKyIoXFwufCQpIil9aWYoQT1JW2ZdKWlmKGQpe3I9Yy5ldmVudC5zcGVjaWFsW2ZdfHx7
fTtmb3IoaD1lfHwwO2g8QS5sZW5ndGg7aCsrKXtDPUFbaF07aWYoZC5ndWlkPT09Qy5ndWlkKXtp
ZihrfHx4LnRlc3QoQy5uYW1lc3BhY2UpKXtlPT1udWxsJiZBLnNwbGljZShoLS0sMSk7ci5yZW1v
dmUmJnIucmVtb3ZlLmNhbGwoYSxDKX1pZihlIT1udWxsKWJyZWFrfX1pZihBLmxlbmd0aD09PTB8
fGUhPW51bGwmJkEubGVuZ3RoPT09MSl7aWYoIXIudGVhcmRvd258fHIudGVhcmRvd24uY2FsbChh
LG8pPT09ZmFsc2UpYy5yZW1vdmVFdmVudChhLGYsdy5oYW5kbGUpO2RlbGV0ZSBJW2ZdfX1lbHNl
IGZvcihoPTA7aDxBLmxlbmd0aDtoKyspe0M9QVtoXTtpZihrfHx4LnRlc3QoQy5uYW1lc3BhY2Up
KXtjLmV2ZW50LnJlbW92ZShhLHIsQy5oYW5kbGVyLGgpO0Euc3BsaWNlKGgtLSwxKX19fWlmKGMu
aXNFbXB0eU9iamVjdChJKSl7aWYoYj0KK3cuaGFuZGxlKWIuZWxlbT1udWxsO2RlbGV0ZSB3LmV2
ZW50cztkZWxldGUgdy5oYW5kbGU7aWYodHlwZW9mIHc9PT0iZnVuY3Rpb24iKWMucmVtb3ZlRGF0
YShhLEopO2Vsc2UgYy5pc0VtcHR5T2JqZWN0KHcpJiZjLnJlbW92ZURhdGEoYSl9fX19fSx0cmln
Z2VyOmZ1bmN0aW9uKGEsYixkLGUpe3ZhciBmPWEudHlwZXx8YTtpZighZSl7YT10eXBlb2YgYT09
PSJvYmplY3QiP2FbYy5leHBhbmRvXT9hOmMuZXh0ZW5kKGMuRXZlbnQoZiksYSk6Yy5FdmVudChm
KTtpZihmLmluZGV4T2YoIiEiKT49MCl7YS50eXBlPWY9Zi5zbGljZSgwLC0xKTthLmV4Y2x1c2l2
ZT10cnVlfWlmKCFkKXthLnN0b3BQcm9wYWdhdGlvbigpO2MuZXZlbnQuZ2xvYmFsW2ZdJiZjLmVh
Y2goYy5jYWNoZSxmdW5jdGlvbigpe3RoaXMuZXZlbnRzJiZ0aGlzLmV2ZW50c1tmXSYmYy5ldmVu
dC50cmlnZ2VyKGEsYix0aGlzLmhhbmRsZS5lbGVtKX0pfWlmKCFkfHxkLm5vZGVUeXBlPT09M3x8
ZC5ub2RlVHlwZT09PQorOClyZXR1cm4gQjthLnJlc3VsdD1CO2EudGFyZ2V0PWQ7Yj1jLm1ha2VB
cnJheShiKTtiLnVuc2hpZnQoYSl9YS5jdXJyZW50VGFyZ2V0PWQ7KGU9ZC5ub2RlVHlwZT9jLmRh
dGEoZCwiaGFuZGxlIik6KGMuZGF0YShkLCJfX2V2ZW50c19fIil8fHt9KS5oYW5kbGUpJiZlLmFw
cGx5KGQsYik7ZT1kLnBhcmVudE5vZGV8fGQub3duZXJEb2N1bWVudDt0cnl7aWYoIShkJiZkLm5v
ZGVOYW1lJiZjLm5vRGF0YVtkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSlpZihkWyJvbiIrZl0m
JmRbIm9uIitmXS5hcHBseShkLGIpPT09ZmFsc2Upe2EucmVzdWx0PWZhbHNlO2EucHJldmVudERl
ZmF1bHQoKX19Y2F0Y2goaCl7fWlmKCFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmUpYy5ldmVu
dC50cmlnZ2VyKGEsYixlLHRydWUpO2Vsc2UgaWYoIWEuaXNEZWZhdWx0UHJldmVudGVkKCkpe3Zh
ciBsO2U9YS50YXJnZXQ7dmFyIGs9Zi5yZXBsYWNlKFgsIiIpLG89Yy5ub2RlTmFtZShlLCJhIikm
Jms9PT0KKyJjbGljayIseD1jLmV2ZW50LnNwZWNpYWxba118fHt9O2lmKCgheC5fZGVmYXVsdHx8
eC5fZGVmYXVsdC5jYWxsKGQsYSk9PT1mYWxzZSkmJiFvJiYhKGUmJmUubm9kZU5hbWUmJmMubm9E
YXRhW2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXt0cnl7aWYoZVtrXSl7aWYobD1lWyJvbiIr
a10pZVsib24iK2tdPW51bGw7Yy5ldmVudC50cmlnZ2VyZWQ9dHJ1ZTtlW2tdKCl9fWNhdGNoKHIp
e31pZihsKWVbIm9uIitrXT1sO2MuZXZlbnQudHJpZ2dlcmVkPWZhbHNlfX19LGhhbmRsZTpmdW5j
dGlvbihhKXt2YXIgYixkLGUsZjtkPVtdO3ZhciBoPWMubWFrZUFycmF5KGFyZ3VtZW50cyk7YT1o
WzBdPWMuZXZlbnQuZml4KGF8fEUuZXZlbnQpO2EuY3VycmVudFRhcmdldD10aGlzO2I9YS50eXBl
LmluZGV4T2YoIi4iKTwwJiYhYS5leGNsdXNpdmU7aWYoIWIpe2U9YS50eXBlLnNwbGl0KCIuIik7
YS50eXBlPWUuc2hpZnQoKTtkPWUuc2xpY2UoMCkuc29ydCgpO2U9UmVnRXhwKCIoXnxcXC4pIisK
K2Quam9pbigiXFwuKD86LipcXC4pPyIpKyIoXFwufCQpIil9YS5uYW1lc3BhY2U9YS5uYW1lc3Bh
Y2V8fGQuam9pbigiLiIpO2Y9Yy5kYXRhKHRoaXMsdGhpcy5ub2RlVHlwZT8iZXZlbnRzIjoiX19l
dmVudHNfXyIpO2lmKHR5cGVvZiBmPT09ImZ1bmN0aW9uIilmPWYuZXZlbnRzO2Q9KGZ8fHt9KVth
LnR5cGVdO2lmKGYmJmQpe2Q9ZC5zbGljZSgwKTtmPTA7Zm9yKHZhciBsPWQubGVuZ3RoO2Y8bDtm
Kyspe3ZhciBrPWRbZl07aWYoYnx8ZS50ZXN0KGsubmFtZXNwYWNlKSl7YS5oYW5kbGVyPWsuaGFu
ZGxlcjthLmRhdGE9ay5kYXRhO2EuaGFuZGxlT2JqPWs7az1rLmhhbmRsZXIuYXBwbHkodGhpcyxo
KTtpZihrIT09Qil7YS5yZXN1bHQ9aztpZihrPT09ZmFsc2Upe2EucHJldmVudERlZmF1bHQoKTth
LnN0b3BQcm9wYWdhdGlvbigpfX1pZihhLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkp
YnJlYWt9fX1yZXR1cm4gYS5yZXN1bHR9LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFt
ZSBidWJibGVzIGJ1dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJs
S2V5IGN1cnJlbnRUYXJnZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5k
bGVyIGtleUNvZGUgbGF5ZXJYIGxheWVyWSBtZXRhS2V5IG5ld1ZhbHVlIG9mZnNldFggb2Zmc2V0
WSBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUgcmVsYXRlZFRhcmdldCBzY3JlZW5Y
IHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9FbGVtZW50IHZpZXcgd2hlZWxE
ZWx0YSB3aGljaCIuc3BsaXQoIiAiKSwKK2ZpeDpmdW5jdGlvbihhKXtpZihhW2MuZXhwYW5kb10p
cmV0dXJuIGE7dmFyIGI9YTthPWMuRXZlbnQoYik7Zm9yKHZhciBkPXRoaXMucHJvcHMubGVuZ3Ro
LGU7ZDspe2U9dGhpcy5wcm9wc1stLWRdO2FbZV09YltlXX1pZighYS50YXJnZXQpYS50YXJnZXQ9
YS5zcmNFbGVtZW50fHx0O2lmKGEudGFyZ2V0Lm5vZGVUeXBlPT09MylhLnRhcmdldD1hLnRhcmdl
dC5wYXJlbnROb2RlO2lmKCFhLnJlbGF0ZWRUYXJnZXQmJmEuZnJvbUVsZW1lbnQpYS5yZWxhdGVk
VGFyZ2V0PWEuZnJvbUVsZW1lbnQ9PT1hLnRhcmdldD9hLnRvRWxlbWVudDphLmZyb21FbGVtZW50
O2lmKGEucGFnZVg9PW51bGwmJmEuY2xpZW50WCE9bnVsbCl7Yj10LmRvY3VtZW50RWxlbWVudDtk
PXQuYm9keTthLnBhZ2VYPWEuY2xpZW50WCsoYiYmYi5zY3JvbGxMZWZ0fHxkJiZkLnNjcm9sbExl
ZnR8fDApLShiJiZiLmNsaWVudExlZnR8fGQmJmQuY2xpZW50TGVmdHx8MCk7YS5wYWdlWT1hLmNs
aWVudFkrKGImJmIuc2Nyb2xsVG9wfHwKK2QmJmQuc2Nyb2xsVG9wfHwwKS0oYiYmYi5jbGllbnRU
b3B8fGQmJmQuY2xpZW50VG9wfHwwKX1pZihhLndoaWNoPT1udWxsJiYoYS5jaGFyQ29kZSE9bnVs
bHx8YS5rZXlDb2RlIT1udWxsKSlhLndoaWNoPWEuY2hhckNvZGUhPW51bGw/YS5jaGFyQ29kZTph
LmtleUNvZGU7aWYoIWEubWV0YUtleSYmYS5jdHJsS2V5KWEubWV0YUtleT1hLmN0cmxLZXk7aWYo
IWEud2hpY2gmJmEuYnV0dG9uIT09QilhLndoaWNoPWEuYnV0dG9uJjE/MTphLmJ1dHRvbiYyPzM6
YS5idXR0b24mND8yOjA7cmV0dXJuIGF9LGd1aWQ6MUU4LHByb3h5OmMucHJveHksc3BlY2lhbDp7
cmVhZHk6e3NldHVwOmMuYmluZFJlYWR5LHRlYXJkb3duOmMubm9vcH0sbGl2ZTp7YWRkOmZ1bmN0
aW9uKGEpe2MuZXZlbnQuYWRkKHRoaXMsWShhLm9yaWdUeXBlLGEuc2VsZWN0b3IpLGMuZXh0ZW5k
KHt9LGEse2hhbmRsZXI6S2EsZ3VpZDphLmhhbmRsZXIuZ3VpZH0pKX0scmVtb3ZlOmZ1bmN0aW9u
KGEpe2MuZXZlbnQucmVtb3ZlKHRoaXMsCitZKGEub3JpZ1R5cGUsYS5zZWxlY3RvciksYSl9fSxi
ZWZvcmV1bmxvYWQ6e3NldHVwOmZ1bmN0aW9uKGEsYixkKXtpZihjLmlzV2luZG93KHRoaXMpKXRo
aXMub25iZWZvcmV1bmxvYWQ9ZH0sdGVhcmRvd246ZnVuY3Rpb24oYSxiKXtpZih0aGlzLm9uYmVm
b3JldW5sb2FkPT09Yil0aGlzLm9uYmVmb3JldW5sb2FkPW51bGx9fX19O2MucmVtb3ZlRXZlbnQ9
dC5yZW1vdmVFdmVudExpc3RlbmVyP2Z1bmN0aW9uKGEsYixkKXthLnJlbW92ZUV2ZW50TGlzdGVu
ZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGQsZmFsc2UpfTpmdW5jdGlvbihhLGIsZCl7YS5k
ZXRhY2hFdmVudCYmYS5kZXRhY2hFdmVudCgib24iK2IsZCl9O2MuRXZlbnQ9ZnVuY3Rpb24oYSl7
aWYoIXRoaXMucHJldmVudERlZmF1bHQpcmV0dXJuIG5ldyBjLkV2ZW50KGEpO2lmKGEmJmEudHlw
ZSl7dGhpcy5vcmlnaW5hbEV2ZW50PWE7dGhpcy50eXBlPWEudHlwZX1lbHNlIHRoaXMudHlwZT1h
O3RoaXMudGltZVN0YW1wPQorYy5ub3coKTt0aGlzW2MuZXhwYW5kb109dHJ1ZX07Yy5FdmVudC5w
cm90b3R5cGU9e3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5pc0RlZmF1bHRQcmV2ZW50
ZWQ9Y2E7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKGEpaWYoYS5wcmV2ZW50RGVmYXVsdClh
LnByZXZlbnREZWZhdWx0KCk7ZWxzZSBhLnJldHVyblZhbHVlPWZhbHNlfSxzdG9wUHJvcGFnYXRp
b246ZnVuY3Rpb24oKXt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPWNhO3ZhciBhPXRoaXMub3Jp
Z2luYWxFdmVudDtpZihhKXthLnN0b3BQcm9wYWdhdGlvbiYmYS5zdG9wUHJvcGFnYXRpb24oKTth
LmNhbmNlbEJ1YmJsZT10cnVlfX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7
dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1jYTt0aGlzLnN0b3BQcm9wYWdhdGlv
bigpfSxpc0RlZmF1bHRQcmV2ZW50ZWQ6VSxpc1Byb3BhZ2F0aW9uU3RvcHBlZDpVLGlzSW1tZWRp
YXRlUHJvcGFnYXRpb25TdG9wcGVkOlV9OwordmFyIHZhPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVs
YXRlZFRhcmdldDt0cnl7Zm9yKDtiJiZiIT09dGhpczspYj1iLnBhcmVudE5vZGU7aWYoYiE9PXRo
aXMpe2EudHlwZT1hLmRhdGE7Yy5ldmVudC5oYW5kbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1j
YXRjaChkKXt9fSx3YT1mdW5jdGlvbihhKXthLnR5cGU9YS5kYXRhO2MuZXZlbnQuaGFuZGxlLmFw
cGx5KHRoaXMsYXJndW1lbnRzKX07Yy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNl
bGVhdmU6Im1vdXNlb3V0In0sZnVuY3Rpb24oYSxiKXtjLmV2ZW50LnNwZWNpYWxbYV09e3NldHVw
OmZ1bmN0aW9uKGQpe2MuZXZlbnQuYWRkKHRoaXMsYixkJiZkLnNlbGVjdG9yP3dhOnZhLGEpfSx0
ZWFyZG93bjpmdW5jdGlvbihkKXtjLmV2ZW50LnJlbW92ZSh0aGlzLGIsZCYmZC5zZWxlY3Rvcj93
YTp2YSl9fX0pO2lmKCFjLnN1cHBvcnQuc3VibWl0QnViYmxlcyljLmV2ZW50LnNwZWNpYWwuc3Vi
bWl0PXtzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PQor
ImZvcm0iKXtjLmV2ZW50LmFkZCh0aGlzLCJjbGljay5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihh
KXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZigoZD09PSJzdWJtaXQifHxkPT09ImltYWdlIikm
JmMoYikuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aCl7YS5saXZlRmlyZWQ9QjtyZXR1cm4gbGEoInN1
Ym1pdCIsdGhpcyxhcmd1bWVudHMpfX0pO2MuZXZlbnQuYWRkKHRoaXMsImtleXByZXNzLnNwZWNp
YWxTdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9Yi50eXBlO2lmKChkPT09InRl
eHQifHxkPT09InBhc3N3b3JkIikmJmMoYikuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aCYmYS5rZXlD
b2RlPT09MTMpe2EubGl2ZUZpcmVkPUI7cmV0dXJuIGxhKCJzdWJtaXQiLHRoaXMsYXJndW1lbnRz
KX19KX1lbHNlIHJldHVybiBmYWxzZX0sdGVhcmRvd246ZnVuY3Rpb24oKXtjLmV2ZW50LnJlbW92
ZSh0aGlzLCIuc3BlY2lhbFN1Ym1pdCIpfX07aWYoIWMuc3VwcG9ydC5jaGFuZ2VCdWJibGVzKXt2
YXIgViwKK3hhPWZ1bmN0aW9uKGEpe3ZhciBiPWEudHlwZSxkPWEudmFsdWU7aWYoYj09PSJyYWRp
byJ8fGI9PT0iY2hlY2tib3giKWQ9YS5jaGVja2VkO2Vsc2UgaWYoYj09PSJzZWxlY3QtbXVsdGlw
bGUiKWQ9YS5zZWxlY3RlZEluZGV4Pi0xP2MubWFwKGEub3B0aW9ucyxmdW5jdGlvbihlKXtyZXR1
cm4gZS5zZWxlY3RlZH0pLmpvaW4oIi0iKToiIjtlbHNlIGlmKGEubm9kZU5hbWUudG9Mb3dlckNh
c2UoKT09PSJzZWxlY3QiKWQ9YS5zZWxlY3RlZEluZGV4O3JldHVybiBkfSxaPWZ1bmN0aW9uKGEs
Yil7dmFyIGQ9YS50YXJnZXQsZSxmO2lmKCEoIWlhLnRlc3QoZC5ub2RlTmFtZSl8fGQucmVhZE9u
bHkpKXtlPWMuZGF0YShkLCJfY2hhbmdlX2RhdGEiKTtmPXhhKGQpO2lmKGEudHlwZSE9PSJmb2N1
c291dCJ8fGQudHlwZSE9PSJyYWRpbyIpYy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIsZik7aWYoIShl
PT09Qnx8Zj09PWUpKWlmKGUhPW51bGx8fGYpe2EudHlwZT0iY2hhbmdlIjthLmxpdmVGaXJlZD0K
K0I7cmV0dXJuIGMuZXZlbnQudHJpZ2dlcihhLGIsZCl9fX07Yy5ldmVudC5zcGVjaWFsLmNoYW5n
ZT17ZmlsdGVyczp7Zm9jdXNvdXQ6WixiZWZvcmVkZWFjdGl2YXRlOlosY2xpY2s6ZnVuY3Rpb24o
YSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoZD09PSJyYWRpbyJ8fGQ9PT0iY2hlY2tib3gi
fHxiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2VsZWN0IilyZXR1cm4gWi5jYWxsKHRoaXMs
YSl9LGtleWRvd246ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoYS5rZXlD
b2RlPT09MTMmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PSJ0ZXh0YXJlYSJ8fGEua2V5Q29k
ZT09PTMyJiYoZD09PSJjaGVja2JveCJ8fGQ9PT0icmFkaW8iKXx8ZD09PSJzZWxlY3QtbXVsdGlw
bGUiKXJldHVybiBaLmNhbGwodGhpcyxhKX0sYmVmb3JlYWN0aXZhdGU6ZnVuY3Rpb24oYSl7YT1h
LnRhcmdldDtjLmRhdGEoYSwiX2NoYW5nZV9kYXRhIix4YShhKSl9fSxzZXR1cDpmdW5jdGlvbigp
e2lmKHRoaXMudHlwZT09PQorImZpbGUiKXJldHVybiBmYWxzZTtmb3IodmFyIGEgaW4gViljLmV2
ZW50LmFkZCh0aGlzLGErIi5zcGVjaWFsQ2hhbmdlIixWW2FdKTtyZXR1cm4gaWEudGVzdCh0aGlz
Lm5vZGVOYW1lKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtjLmV2ZW50LnJlbW92ZSh0aGlzLCIuc3Bl
Y2lhbENoYW5nZSIpO3JldHVybiBpYS50ZXN0KHRoaXMubm9kZU5hbWUpfX07Vj1jLmV2ZW50LnNw
ZWNpYWwuY2hhbmdlLmZpbHRlcnM7Vi5mb2N1cz1WLmJlZm9yZWFjdGl2YXRlfXQuYWRkRXZlbnRM
aXN0ZW5lciYmYy5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlv
bihhLGIpe2Z1bmN0aW9uIGQoZSl7ZT1jLmV2ZW50LmZpeChlKTtlLnR5cGU9YjtyZXR1cm4gYy5l
dmVudC50cmlnZ2VyKGUsbnVsbCxlLnRhcmdldCl9Yy5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpm
dW5jdGlvbigpe3VhW2JdKys9PT0wJiZ0LmFkZEV2ZW50TGlzdGVuZXIoYSxkLHRydWUpfSx0ZWFy
ZG93bjpmdW5jdGlvbigpey0tdWFbYl09PT0KKzAmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGQs
dHJ1ZSl9fX0pO2MuZWFjaChbImJpbmQiLCJvbmUiXSxmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVu
Y3Rpb24oZCxlLGYpe2lmKHR5cGVvZiBkPT09Im9iamVjdCIpe2Zvcih2YXIgaCBpbiBkKXRoaXNb
Yl0oaCxlLGRbaF0sZik7cmV0dXJuIHRoaXN9aWYoYy5pc0Z1bmN0aW9uKGUpfHxlPT09ZmFsc2Up
e2Y9ZTtlPUJ9dmFyIGw9Yj09PSJvbmUiP2MucHJveHkoZixmdW5jdGlvbihvKXtjKHRoaXMpLnVu
YmluZChvLGwpO3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pOmY7aWYoZD09PSJ1bmxv
YWQiJiZiIT09Im9uZSIpdGhpcy5vbmUoZCxlLGYpO2Vsc2V7aD0wO2Zvcih2YXIgaz10aGlzLmxl
bmd0aDtoPGs7aCsrKWMuZXZlbnQuYWRkKHRoaXNbaF0sZCxsLGUpfXJldHVybiB0aGlzfX0pO2Mu
Zm4uZXh0ZW5kKHt1bmJpbmQ6ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJvYmplY3QiJiYh
YS5wcmV2ZW50RGVmYXVsdClmb3IodmFyIGQgaW4gYSl0aGlzLnVuYmluZChkLAorYVtkXSk7ZWxz
ZXtkPTA7Zm9yKHZhciBlPXRoaXMubGVuZ3RoO2Q8ZTtkKyspYy5ldmVudC5yZW1vdmUodGhpc1tk
XSxhLGIpfXJldHVybiB0aGlzfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsZCxlKXtyZXR1cm4gdGhp
cy5saXZlKGIsZCxlLGEpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYXJndW1l
bnRzLmxlbmd0aD09PTA/dGhpcy51bmJpbmQoImxpdmUiKTp0aGlzLmRpZShiLG51bGwsZCxhKX0s
dHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmV2ZW50
LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7aWYodGhp
c1swXSl7dmFyIGQ9Yy5FdmVudChhKTtkLnByZXZlbnREZWZhdWx0KCk7ZC5zdG9wUHJvcGFnYXRp
b24oKTtjLmV2ZW50LnRyaWdnZXIoZCxiLHRoaXNbMF0pO3JldHVybiBkLnJlc3VsdH19LHRvZ2ds
ZTpmdW5jdGlvbihhKXtmb3IodmFyIGI9YXJndW1lbnRzLGQ9CisxO2Q8Yi5sZW5ndGg7KWMucHJv
eHkoYSxiW2QrK10pO3JldHVybiB0aGlzLmNsaWNrKGMucHJveHkoYSxmdW5jdGlvbihlKXt2YXIg
Zj0oYy5kYXRhKHRoaXMsImxhc3RUb2dnbGUiK2EuZ3VpZCl8fDApJWQ7Yy5kYXRhKHRoaXMsImxh
c3RUb2dnbGUiK2EuZ3VpZCxmKzEpO2UucHJldmVudERlZmF1bHQoKTtyZXR1cm4gYltmXS5hcHBs
eSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0
aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX19KTt2YXIgeWE9e2ZvY3VzOiJmb2N1
c2luIixibHVyOiJmb2N1c291dCIsbW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJt
b3VzZW91dCJ9O2MuZWFjaChbImxpdmUiLCJkaWUiXSxmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVu
Y3Rpb24oZCxlLGYsaCl7dmFyIGwsaz0wLG8seCxyPWh8fHRoaXMuc2VsZWN0b3I7aD1oP3RoaXM6
Yyh0aGlzLmNvbnRleHQpO2lmKHR5cGVvZiBkPT09Cisib2JqZWN0IiYmIWQucHJldmVudERlZmF1
bHQpe2ZvcihsIGluIGQpaFtiXShsLGUsZFtsXSxyKTtyZXR1cm4gdGhpc31pZihjLmlzRnVuY3Rp
b24oZSkpe2Y9ZTtlPUJ9Zm9yKGQ9KGR8fCIiKS5zcGxpdCgiICIpOyhsPWRbaysrXSkhPW51bGw7
KXtvPVguZXhlYyhsKTt4PSIiO2lmKG8pe3g9b1swXTtsPWwucmVwbGFjZShYLCIiKX1pZihsPT09
ImhvdmVyIilkLnB1c2goIm1vdXNlZW50ZXIiK3gsIm1vdXNlbGVhdmUiK3gpO2Vsc2V7bz1sO2lm
KGw9PT0iZm9jdXMifHxsPT09ImJsdXIiKXtkLnB1c2goeWFbbF0reCk7bCs9eH1lbHNlIGw9KHlh
W2xdfHxsKSt4O2lmKGI9PT0ibGl2ZSIpe3g9MDtmb3IodmFyIEE9aC5sZW5ndGg7eDxBO3grKylj
LmV2ZW50LmFkZChoW3hdLCJsaXZlLiIrWShsLHIpLHtkYXRhOmUsc2VsZWN0b3I6cixoYW5kbGVy
OmYsb3JpZ1R5cGU6bCxvcmlnSGFuZGxlcjpmLHByZVR5cGU6b30pfWVsc2UgaC51bmJpbmQoImxp
dmUuIitZKGwsciksZil9fXJldHVybiB0aGlzfX0pOworYy5lYWNoKCJibHVyIGZvY3VzIGZvY3Vz
aW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xsIHVubG9hZCBjbGljayBkYmxjbGljayBtb3Vz
ZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91
c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGVycm9y
Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkLGUpe2lmKGU9PW51
bGwpe2U9ZDtkPW51bGx9cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLmJpbmQoYixkLGUp
OnRoaXMudHJpZ2dlcihiKX07aWYoYy5hdHRyRm4pYy5hdHRyRm5bYl09dHJ1ZX0pO0UuYXR0YWNo
RXZlbnQmJiFFLmFkZEV2ZW50TGlzdGVuZXImJmMoRSkuYmluZCgidW5sb2FkIixmdW5jdGlvbigp
e2Zvcih2YXIgYSBpbiBjLmNhY2hlKWlmKGMuY2FjaGVbYV0uaGFuZGxlKXRyeXtjLmV2ZW50LnJl
bW92ZShjLmNhY2hlW2FdLmhhbmRsZS5lbGVtKX1jYXRjaChiKXt9fSk7CisoZnVuY3Rpb24oKXtm
dW5jdGlvbiBhKGcsaSxuLG0scCxxKXtwPTA7Zm9yKHZhciB1PW0ubGVuZ3RoO3A8dTtwKyspe3Zh
ciB5PW1bcF07aWYoeSl7dmFyIEY9ZmFsc2U7Zm9yKHk9eVtnXTt5Oyl7aWYoeS5zaXpjYWNoZT09
PW4pe0Y9bVt5LnNpenNldF07YnJlYWt9aWYoeS5ub2RlVHlwZT09PTEmJiFxKXt5LnNpemNhY2hl
PW47eS5zaXpzZXQ9cH1pZih5Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1pKXtGPXk7YnJlYWt9
eT15W2ddfW1bcF09Rn19fWZ1bmN0aW9uIGIoZyxpLG4sbSxwLHEpe3A9MDtmb3IodmFyIHU9bS5s
ZW5ndGg7cDx1O3ArKyl7dmFyIHk9bVtwXTtpZih5KXt2YXIgRj1mYWxzZTtmb3IoeT15W2ddO3k7
KXtpZih5LnNpemNhY2hlPT09bil7Rj1tW3kuc2l6c2V0XTticmVha31pZih5Lm5vZGVUeXBlPT09
MSl7aWYoIXEpe3kuc2l6Y2FjaGU9bjt5LnNpenNldD1wfWlmKHR5cGVvZiBpIT09InN0cmluZyIp
e2lmKHk9PT1pKXtGPXRydWU7YnJlYWt9fWVsc2UgaWYoay5maWx0ZXIoaSwKK1t5XSkubGVuZ3Ro
PjApe0Y9eTticmVha319eT15W2ddfW1bcF09Rn19fXZhciBkPS8oKD86XCgoPzpcKFteKCldK1wp
fFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykr
XF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2cs
ZT0wLGY9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxoPWZhbHNlLGw9dHJ1ZTtbMCwwXS5zb3J0
KGZ1bmN0aW9uKCl7bD1mYWxzZTtyZXR1cm4gMH0pO3ZhciBrPWZ1bmN0aW9uKGcsaSxuLG0pe249
bnx8W107dmFyIHA9aT1pfHx0O2lmKGkubm9kZVR5cGUhPT0xJiZpLm5vZGVUeXBlIT09OSlyZXR1
cm5bXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4gbjt2YXIgcSx1LHksRixNLE49
dHJ1ZSxPPWsuaXNYTUwoaSksRD1bXSxSPWc7ZG97ZC5leGVjKCIiKTtpZihxPWQuZXhlYyhSKSl7
Uj1xWzNdO0QucHVzaChxWzFdKTtpZihxWzJdKXtGPXFbM107CiticmVha319fXdoaWxlKHEpO2lm
KEQubGVuZ3RoPjEmJnguZXhlYyhnKSlpZihELmxlbmd0aD09PTImJm8ucmVsYXRpdmVbRFswXV0p
dT1MKERbMF0rRFsxXSxpKTtlbHNlIGZvcih1PW8ucmVsYXRpdmVbRFswXV0/W2ldOmsoRC5zaGlm
dCgpLGkpO0QubGVuZ3RoOyl7Zz1ELnNoaWZ0KCk7aWYoby5yZWxhdGl2ZVtnXSlnKz1ELnNoaWZ0
KCk7dT1MKGcsdSl9ZWxzZXtpZighbSYmRC5sZW5ndGg+MSYmaS5ub2RlVHlwZT09PTkmJiFPJiZv
Lm1hdGNoLklELnRlc3QoRFswXSkmJiFvLm1hdGNoLklELnRlc3QoRFtELmxlbmd0aC0xXSkpe3E9
ay5maW5kKEQuc2hpZnQoKSxpLE8pO2k9cS5leHByP2suZmlsdGVyKHEuZXhwcixxLnNldClbMF06
cS5zZXRbMF19aWYoaSl7cT1tP3tleHByOkQucG9wKCksc2V0OkMobSl9OmsuZmluZChELnBvcCgp
LEQubGVuZ3RoPT09MSYmKERbMF09PT0ifiJ8fERbMF09PT0iKyIpJiZpLnBhcmVudE5vZGU/aS5w
YXJlbnROb2RlOmksTyk7dT1xLmV4cHI/ay5maWx0ZXIocS5leHByLAorcS5zZXQpOnEuc2V0O2lm
KEQubGVuZ3RoPjApeT1DKHUpO2Vsc2UgTj1mYWxzZTtmb3IoO0QubGVuZ3RoOyl7cT1NPUQucG9w
KCk7aWYoby5yZWxhdGl2ZVtNXSlxPUQucG9wKCk7ZWxzZSBNPSIiO2lmKHE9PW51bGwpcT1pO28u
cmVsYXRpdmVbTV0oeSxxLE8pfX1lbHNlIHk9W119eXx8KHk9dSk7eXx8ay5lcnJvcihNfHxnKTtp
ZihmLmNhbGwoeSk9PT0iW29iamVjdCBBcnJheV0iKWlmKE4paWYoaSYmaS5ub2RlVHlwZT09PTEp
Zm9yKGc9MDt5W2ddIT1udWxsO2crKyl7aWYoeVtnXSYmKHlbZ109PT10cnVlfHx5W2ddLm5vZGVU
eXBlPT09MSYmay5jb250YWlucyhpLHlbZ10pKSluLnB1c2godVtnXSl9ZWxzZSBmb3IoZz0wO3lb
Z10hPW51bGw7ZysrKXlbZ10mJnlbZ10ubm9kZVR5cGU9PT0xJiZuLnB1c2godVtnXSk7ZWxzZSBu
LnB1c2guYXBwbHkobix5KTtlbHNlIEMoeSxuKTtpZihGKXtrKEYscCxuLG0pO2sudW5pcXVlU29y
dChuKX1yZXR1cm4gbn07ay51bmlxdWVTb3J0PWZ1bmN0aW9uKGcpe2lmKHcpe2g9CitsO2cuc29y
dCh3KTtpZihoKWZvcih2YXIgaT0xO2k8Zy5sZW5ndGg7aSsrKWdbaV09PT1nW2ktMV0mJmcuc3Bs
aWNlKGktLSwxKX1yZXR1cm4gZ307ay5tYXRjaGVzPWZ1bmN0aW9uKGcsaSl7cmV0dXJuIGsoZyxu
dWxsLG51bGwsaSl9O2subWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGcsaSl7cmV0dXJuIGsoaSxu
dWxsLG51bGwsW2ddKS5sZW5ndGg+MH07ay5maW5kPWZ1bmN0aW9uKGcsaSxuKXt2YXIgbTtpZigh
ZylyZXR1cm5bXTtmb3IodmFyIHA9MCxxPW8ub3JkZXIubGVuZ3RoO3A8cTtwKyspe3ZhciB1LHk9
by5vcmRlcltwXTtpZih1PW8ubGVmdE1hdGNoW3ldLmV4ZWMoZykpe3ZhciBGPXVbMV07dS5zcGxp
Y2UoMSwxKTtpZihGLnN1YnN0cihGLmxlbmd0aC0xKSE9PSJcXCIpe3VbMV09KHVbMV18fCIiKS5y
ZXBsYWNlKC9cXC9nLCIiKTttPW8uZmluZFt5XSh1LGksbik7aWYobSE9bnVsbCl7Zz1nLnJlcGxh
Y2Uoby5tYXRjaFt5XSwiIik7YnJlYWt9fX19bXx8KG09aS5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
KiIpKTsKK3JldHVybntzZXQ6bSxleHByOmd9fTtrLmZpbHRlcj1mdW5jdGlvbihnLGksbixtKXtm
b3IodmFyIHAscSx1PWcseT1bXSxGPWksTT1pJiZpWzBdJiZrLmlzWE1MKGlbMF0pO2cmJmkubGVu
Z3RoOyl7Zm9yKHZhciBOIGluIG8uZmlsdGVyKWlmKChwPW8ubGVmdE1hdGNoW05dLmV4ZWMoZykp
IT1udWxsJiZwWzJdKXt2YXIgTyxELFI9by5maWx0ZXJbTl07RD1wWzFdO3E9ZmFsc2U7cC5zcGxp
Y2UoMSwxKTtpZihELnN1YnN0cihELmxlbmd0aC0xKSE9PSJcXCIpe2lmKEY9PT15KXk9W107aWYo
by5wcmVGaWx0ZXJbTl0paWYocD1vLnByZUZpbHRlcltOXShwLEYsbix5LG0sTSkpe2lmKHA9PT10
cnVlKWNvbnRpbnVlfWVsc2UgcT1PPXRydWU7aWYocClmb3IodmFyIGo9MDsoRD1GW2pdKSE9bnVs
bDtqKyspaWYoRCl7Tz1SKEQscCxqLEYpO3ZhciBzPW1eISFPO2lmKG4mJk8hPW51bGwpaWYocylx
PXRydWU7ZWxzZSBGW2pdPWZhbHNlO2Vsc2UgaWYocyl7eS5wdXNoKEQpO3E9dHJ1ZX19aWYoTyE9
PQorQil7bnx8KEY9eSk7Zz1nLnJlcGxhY2Uoby5tYXRjaFtOXSwiIik7aWYoIXEpcmV0dXJuW107
YnJlYWt9fX1pZihnPT09dSlpZihxPT1udWxsKWsuZXJyb3IoZyk7ZWxzZSBicmVhazt1PWd9cmV0
dXJuIEZ9O2suZXJyb3I9ZnVuY3Rpb24oZyl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6
ZWQgZXhwcmVzc2lvbjogIitnO307dmFyIG89ay5zZWxlY3RvcnM9e29yZGVyOlsiSUQiLCJOQU1F
IiwiVEFHIl0sbWF0Y2g6e0lEOi8jKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLyxDTEFT
UzovXC4oKD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKykvLE5BTUU6L1xbbmFtZT1bJyJdKigo
PzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKVsnIl0qXF0vLEFUVFI6L1xbXHMqKCg/Oltcd1x1
MDBjMC1cdUZGRkZcLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKFsnIl0qKSguKj8pXDN8KVxzKlxd
LyxUQUc6L14oKD86W1x3XHUwMGMwLVx1RkZGRlwqXC1dfFxcLikrKS8sQ0hJTEQ6Lzoob25seXxu
dGh8bGFzdHxmaXJzdCktY2hpbGQoPzpcKChldmVufG9kZHxbXGRuK1wtXSopXCkpPy8sCitQT1M6
LzoobnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXlwt
XXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8p
KCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vfSxsZWZ0TWF0Y2g6e30sYXR0ck1hcDp7
ImNsYXNzIjoiY2xhc3NOYW1lIiwiZm9yIjoiaHRtbEZvciJ9LGF0dHJIYW5kbGU6e2hyZWY6ZnVu
Y3Rpb24oZyl7cmV0dXJuIGcuZ2V0QXR0cmlidXRlKCJocmVmIil9fSxyZWxhdGl2ZTp7IisiOmZ1
bmN0aW9uKGcsaSl7dmFyIG49dHlwZW9mIGk9PT0ic3RyaW5nIixtPW4mJiEvXFcvLnRlc3QoaSk7
bj1uJiYhbTtpZihtKWk9aS50b0xvd2VyQ2FzZSgpO209MDtmb3IodmFyIHA9Zy5sZW5ndGgscTtt
PHA7bSsrKWlmKHE9Z1ttXSl7Zm9yKDsocT1xLnByZXZpb3VzU2libGluZykmJnEubm9kZVR5cGUh
PT0xOyk7Z1ttXT1ufHxxJiZxLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0KK2k/cXx8ZmFsc2U6
cT09PWl9biYmay5maWx0ZXIoaSxnLHRydWUpfSwiPiI6ZnVuY3Rpb24oZyxpKXt2YXIgbixtPXR5
cGVvZiBpPT09InN0cmluZyIscD0wLHE9Zy5sZW5ndGg7aWYobSYmIS9cVy8udGVzdChpKSlmb3Io
aT1pLnRvTG93ZXJDYXNlKCk7cDxxO3ArKyl7aWYobj1nW3BdKXtuPW4ucGFyZW50Tm9kZTtnW3Bd
PW4ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWk/bjpmYWxzZX19ZWxzZXtmb3IoO3A8cTtwKysp
aWYobj1nW3BdKWdbcF09bT9uLnBhcmVudE5vZGU6bi5wYXJlbnROb2RlPT09aTttJiZrLmZpbHRl
cihpLGcsdHJ1ZSl9fSwiIjpmdW5jdGlvbihnLGksbil7dmFyIG0scD1lKysscT1iO2lmKHR5cGVv
ZiBpPT09InN0cmluZyImJiEvXFcvLnRlc3QoaSkpe209aT1pLnRvTG93ZXJDYXNlKCk7cT1hfXEo
InBhcmVudE5vZGUiLGkscCxnLG0sbil9LCJ+IjpmdW5jdGlvbihnLGksbil7dmFyIG0scD1lKyss
cT1iO2lmKHR5cGVvZiBpPT09InN0cmluZyImJiEvXFcvLnRlc3QoaSkpe209CitpPWkudG9Mb3dl
ckNhc2UoKTtxPWF9cSgicHJldmlvdXNTaWJsaW5nIixpLHAsZyxtLG4pfX0sZmluZDp7SUQ6ZnVu
Y3Rpb24oZyxpLG4pe2lmKHR5cGVvZiBpLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFu
KXJldHVybihnPWkuZ2V0RWxlbWVudEJ5SWQoZ1sxXSkpJiZnLnBhcmVudE5vZGU/W2ddOltdfSxO
QU1FOmZ1bmN0aW9uKGcsaSl7aWYodHlwZW9mIGkuZ2V0RWxlbWVudHNCeU5hbWUhPT0idW5kZWZp
bmVkIil7Zm9yKHZhciBuPVtdLG09aS5nZXRFbGVtZW50c0J5TmFtZShnWzFdKSxwPTAscT1tLmxl
bmd0aDtwPHE7cCsrKW1bcF0uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1nWzFdJiZuLnB1c2gobVtw
XSk7cmV0dXJuIG4ubGVuZ3RoPT09MD9udWxsOm59fSxUQUc6ZnVuY3Rpb24oZyxpKXtyZXR1cm4g
aS5nZXRFbGVtZW50c0J5VGFnTmFtZShnWzFdKX19LHByZUZpbHRlcjp7Q0xBU1M6ZnVuY3Rpb24o
ZyxpLG4sbSxwLHEpe2c9IiAiK2dbMV0ucmVwbGFjZSgvXFwvZywKKyIiKSsiICI7aWYocSlyZXR1
cm4gZztxPTA7Zm9yKHZhciB1Oyh1PWlbcV0pIT1udWxsO3ErKylpZih1KWlmKHBeKHUuY2xhc3NO
YW1lJiYoIiAiK3UuY2xhc3NOYW1lKyIgIikucmVwbGFjZSgvW1x0XG5dL2csIiAiKS5pbmRleE9m
KGcpPj0wKSlufHxtLnB1c2godSk7ZWxzZSBpZihuKWlbcV09ZmFsc2U7cmV0dXJuIGZhbHNlfSxJ
RDpmdW5jdGlvbihnKXtyZXR1cm4gZ1sxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9u
KGcpe3JldHVybiBnWzFdLnRvTG93ZXJDYXNlKCl9LENISUxEOmZ1bmN0aW9uKGcpe2lmKGdbMV09
PT0ibnRoIil7dmFyIGk9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhnWzJdPT09ImV2
ZW4iJiYiMm4ifHxnWzJdPT09Im9kZCImJiIybisxInx8IS9cRC8udGVzdChnWzJdKSYmIjBuKyIr
Z1syXXx8Z1syXSk7Z1syXT1pWzFdKyhpWzJdfHwxKS0wO2dbM109aVszXS0wfWdbMF09ZSsrO3Jl
dHVybiBnfSxBVFRSOmZ1bmN0aW9uKGcsaSxuLAorbSxwLHEpe2k9Z1sxXS5yZXBsYWNlKC9cXC9n
LCIiKTtpZighcSYmby5hdHRyTWFwW2ldKWdbMV09by5hdHRyTWFwW2ldO2lmKGdbMl09PT0ifj0i
KWdbNF09IiAiK2dbNF0rIiAiO3JldHVybiBnfSxQU0VVRE86ZnVuY3Rpb24oZyxpLG4sbSxwKXtp
ZihnWzFdPT09Im5vdCIpaWYoKGQuZXhlYyhnWzNdKXx8IiIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0
KGdbM10pKWdbM109ayhnWzNdLG51bGwsbnVsbCxpKTtlbHNle2c9ay5maWx0ZXIoZ1szXSxpLG4s
dHJ1ZV5wKTtufHxtLnB1c2guYXBwbHkobSxnKTtyZXR1cm4gZmFsc2V9ZWxzZSBpZihvLm1hdGNo
LlBPUy50ZXN0KGdbMF0pfHxvLm1hdGNoLkNISUxELnRlc3QoZ1swXSkpcmV0dXJuIHRydWU7cmV0
dXJuIGd9LFBPUzpmdW5jdGlvbihnKXtnLnVuc2hpZnQodHJ1ZSk7cmV0dXJuIGd9fSxmaWx0ZXJz
OntlbmFibGVkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmRpc2FibGVkPT09ZmFsc2UmJmcudHlwZSE9
PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5kaXNhYmxlZD09PQordHJ1
ZX0sY2hlY2tlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5jaGVja2VkPT09dHJ1ZX0sc2VsZWN0ZWQ6
ZnVuY3Rpb24oZyl7cmV0dXJuIGcuc2VsZWN0ZWQ9PT10cnVlfSxwYXJlbnQ6ZnVuY3Rpb24oZyl7
cmV0dXJuISFnLmZpcnN0Q2hpbGR9LGVtcHR5OmZ1bmN0aW9uKGcpe3JldHVybiFnLmZpcnN0Q2hp
bGR9LGhhczpmdW5jdGlvbihnLGksbil7cmV0dXJuISFrKG5bM10sZykubGVuZ3RofSxoZWFkZXI6
ZnVuY3Rpb24oZyl7cmV0dXJuL2hcZC9pLnRlc3QoZy5ub2RlTmFtZSl9LHRleHQ6ZnVuY3Rpb24o
Zyl7cmV0dXJuInRleHQiPT09Zy50eXBlfSxyYWRpbzpmdW5jdGlvbihnKXtyZXR1cm4icmFkaW8i
PT09Zy50eXBlfSxjaGVja2JveDpmdW5jdGlvbihnKXtyZXR1cm4iY2hlY2tib3giPT09Zy50eXBl
fSxmaWxlOmZ1bmN0aW9uKGcpe3JldHVybiJmaWxlIj09PWcudHlwZX0scGFzc3dvcmQ6ZnVuY3Rp
b24oZyl7cmV0dXJuInBhc3N3b3JkIj09PWcudHlwZX0sc3VibWl0OmZ1bmN0aW9uKGcpe3JldHVy
biJzdWJtaXQiPT09CitnLnR5cGV9LGltYWdlOmZ1bmN0aW9uKGcpe3JldHVybiJpbWFnZSI9PT1n
LnR5cGV9LHJlc2V0OmZ1bmN0aW9uKGcpe3JldHVybiJyZXNldCI9PT1nLnR5cGV9LGJ1dHRvbjpm
dW5jdGlvbihnKXtyZXR1cm4iYnV0dG9uIj09PWcudHlwZXx8Zy5ub2RlTmFtZS50b0xvd2VyQ2Fz
ZSgpPT09ImJ1dHRvbiJ9LGlucHV0OmZ1bmN0aW9uKGcpe3JldHVybi9pbnB1dHxzZWxlY3R8dGV4
dGFyZWF8YnV0dG9uL2kudGVzdChnLm5vZGVOYW1lKX19LHNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0
aW9uKGcsaSl7cmV0dXJuIGk9PT0wfSxsYXN0OmZ1bmN0aW9uKGcsaSxuLG0pe3JldHVybiBpPT09
bS5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihnLGkpe3JldHVybiBpJTI9PT0wfSxvZGQ6ZnVuY3Rp
b24oZyxpKXtyZXR1cm4gaSUyPT09MX0sbHQ6ZnVuY3Rpb24oZyxpLG4pe3JldHVybiBpPG5bM10t
MH0sZ3Q6ZnVuY3Rpb24oZyxpLG4pe3JldHVybiBpPm5bM10tMH0sbnRoOmZ1bmN0aW9uKGcsaSxu
KXtyZXR1cm4gblszXS0KKzA9PT1pfSxlcTpmdW5jdGlvbihnLGksbil7cmV0dXJuIG5bM10tMD09
PWl9fSxmaWx0ZXI6e1BTRVVETzpmdW5jdGlvbihnLGksbixtKXt2YXIgcD1pWzFdLHE9by5maWx0
ZXJzW3BdO2lmKHEpcmV0dXJuIHEoZyxuLGksbSk7ZWxzZSBpZihwPT09ImNvbnRhaW5zIilyZXR1
cm4oZy50ZXh0Q29udGVudHx8Zy5pbm5lclRleHR8fGsuZ2V0VGV4dChbZ10pfHwiIikuaW5kZXhP
ZihpWzNdKT49MDtlbHNlIGlmKHA9PT0ibm90Iil7aT1pWzNdO249MDtmb3IobT1pLmxlbmd0aDtu
PG07bisrKWlmKGlbbl09PT1nKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZX1lbHNlIGsuZXJyb3Io
IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrcCl9LENISUxEOmZ1bmN0
aW9uKGcsaSl7dmFyIG49aVsxXSxtPWc7c3dpdGNoKG4pe2Nhc2UgIm9ubHkiOmNhc2UgImZpcnN0
Ijpmb3IoO209bS5wcmV2aW91c1NpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxz
ZTtpZihuPT09CisiZmlyc3QiKXJldHVybiB0cnVlO209ZztjYXNlICJsYXN0Ijpmb3IoO209bS5u
ZXh0U2libGluZzspaWYobS5ub2RlVHlwZT09PTEpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlO2Nh
c2UgIm50aCI6bj1pWzJdO3ZhciBwPWlbM107aWYobj09PTEmJnA9PT0wKXJldHVybiB0cnVlO3Zh
ciBxPWlbMF0sdT1nLnBhcmVudE5vZGU7aWYodSYmKHUuc2l6Y2FjaGUhPT1xfHwhZy5ub2RlSW5k
ZXgpKXt2YXIgeT0wO2ZvcihtPXUuZmlyc3RDaGlsZDttO209bS5uZXh0U2libGluZylpZihtLm5v
ZGVUeXBlPT09MSltLm5vZGVJbmRleD0rK3k7dS5zaXpjYWNoZT1xfW09Zy5ub2RlSW5kZXgtcDty
ZXR1cm4gbj09PTA/bT09PTA6bSVuPT09MCYmbS9uPj0wfX0sSUQ6ZnVuY3Rpb24oZyxpKXtyZXR1
cm4gZy5ub2RlVHlwZT09PTEmJmcuZ2V0QXR0cmlidXRlKCJpZCIpPT09aX0sVEFHOmZ1bmN0aW9u
KGcsaSl7cmV0dXJuIGk9PT0iKiImJmcubm9kZVR5cGU9PT0xfHxnLm5vZGVOYW1lLnRvTG93ZXJD
YXNlKCk9PT0KK2l9LENMQVNTOmZ1bmN0aW9uKGcsaSl7cmV0dXJuKCIgIisoZy5jbGFzc05hbWV8
fGcuZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSsiICIpLmluZGV4T2YoaSk+LTF9LEFUVFI6ZnVuY3Rp
b24oZyxpKXt2YXIgbj1pWzFdO249by5hdHRySGFuZGxlW25dP28uYXR0ckhhbmRsZVtuXShnKTpn
W25dIT1udWxsP2dbbl06Zy5nZXRBdHRyaWJ1dGUobik7dmFyIG09bisiIixwPWlbMl0scT1pWzRd
O3JldHVybiBuPT1udWxsP3A9PT0iIT0iOnA9PT0iPSI/bT09PXE6cD09PSIqPSI/bS5pbmRleE9m
KHEpPj0wOnA9PT0ifj0iPygiICIrbSsiICIpLmluZGV4T2YocSk+PTA6IXE/bSYmbiE9PWZhbHNl
OnA9PT0iIT0iP20hPT1xOnA9PT0iXj0iP20uaW5kZXhPZihxKT09PTA6cD09PSIkPSI/bS5zdWJz
dHIobS5sZW5ndGgtcS5sZW5ndGgpPT09cTpwPT09Inw9Ij9tPT09cXx8bS5zdWJzdHIoMCxxLmxl
bmd0aCsxKT09PXErIi0iOmZhbHNlfSxQT1M6ZnVuY3Rpb24oZyxpLG4sbSl7dmFyIHA9by5zZXRG
aWx0ZXJzW2lbMl1dOworaWYocClyZXR1cm4gcChnLG4saSxtKX19fSx4PW8ubWF0Y2guUE9TLHI9
ZnVuY3Rpb24oZyxpKXtyZXR1cm4iXFwiKyhpLTArMSl9LEE7Zm9yKEEgaW4gby5tYXRjaCl7by5t
YXRjaFtBXT1SZWdFeHAoby5tYXRjaFtBXS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVteXChdKlwp
KS8uc291cmNlKTtvLmxlZnRNYXRjaFtBXT1SZWdFeHAoLyheKD86LnxccnxcbikqPykvLnNvdXJj
ZStvLm1hdGNoW0FdLnNvdXJjZS5yZXBsYWNlKC9cXChcZCspL2cscikpfXZhciBDPWZ1bmN0aW9u
KGcsaSl7Zz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChnLDApO2lmKGkpe2kucHVzaC5hcHBs
eShpLGcpO3JldHVybiBpfXJldHVybiBnfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
dC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywwKX1jYXRjaChKKXtDPWZ1bmN0aW9uKGcsaSl7
dmFyIG49MCxtPWl8fFtdO2lmKGYuY2FsbChnKT09PSJbb2JqZWN0IEFycmF5XSIpQXJyYXkucHJv
dG90eXBlLnB1c2guYXBwbHkobSwKK2cpO2Vsc2UgaWYodHlwZW9mIGcubGVuZ3RoPT09Im51bWJl
ciIpZm9yKHZhciBwPWcubGVuZ3RoO248cDtuKyspbS5wdXNoKGdbbl0pO2Vsc2UgZm9yKDtnW25d
O24rKyltLnB1c2goZ1tuXSk7cmV0dXJuIG19fXZhciB3LEk7aWYodC5kb2N1bWVudEVsZW1lbnQu
Y29tcGFyZURvY3VtZW50UG9zaXRpb24pdz1mdW5jdGlvbihnLGkpe2lmKGc9PT1pKXtoPXRydWU7
cmV0dXJuIDB9aWYoIWcuY29tcGFyZURvY3VtZW50UG9zaXRpb258fCFpLmNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uKXJldHVybiBnLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPy0xOjE7cmV0dXJuIGcu
Y29tcGFyZURvY3VtZW50UG9zaXRpb24oaSkmND8tMToxfTtlbHNle3c9ZnVuY3Rpb24oZyxpKXt2
YXIgbixtLHA9W10scT1bXTtuPWcucGFyZW50Tm9kZTttPWkucGFyZW50Tm9kZTt2YXIgdT1uO2lm
KGc9PT1pKXtoPXRydWU7cmV0dXJuIDB9ZWxzZSBpZihuPT09bSlyZXR1cm4gSShnLGkpO2Vsc2Ug
aWYobil7aWYoIW0pcmV0dXJuIDF9ZWxzZSByZXR1cm4tMTsKK2Zvcig7dTspe3AudW5zaGlmdCh1
KTt1PXUucGFyZW50Tm9kZX1mb3IodT1tO3U7KXtxLnVuc2hpZnQodSk7dT11LnBhcmVudE5vZGV9
bj1wLmxlbmd0aDttPXEubGVuZ3RoO2Zvcih1PTA7dTxuJiZ1PG07dSsrKWlmKHBbdV0hPT1xW3Vd
KXJldHVybiBJKHBbdV0scVt1XSk7cmV0dXJuIHU9PT1uP0koZyxxW3VdLC0xKTpJKHBbdV0saSwx
KX07ST1mdW5jdGlvbihnLGksbil7aWYoZz09PWkpcmV0dXJuIG47Zm9yKGc9Zy5uZXh0U2libGlu
ZztnOyl7aWYoZz09PWkpcmV0dXJuLTE7Zz1nLm5leHRTaWJsaW5nfXJldHVybiAxfX1rLmdldFRl
eHQ9ZnVuY3Rpb24oZyl7Zm9yKHZhciBpPSIiLG4sbT0wO2dbbV07bSsrKXtuPWdbbV07aWYobi5u
b2RlVHlwZT09PTN8fG4ubm9kZVR5cGU9PT00KWkrPW4ubm9kZVZhbHVlO2Vsc2UgaWYobi5ub2Rl
VHlwZSE9PTgpaSs9ay5nZXRUZXh0KG4uY2hpbGROb2Rlcyl9cmV0dXJuIGl9OyhmdW5jdGlvbigp
e3ZhciBnPXQuY3JlYXRlRWxlbWVudCgiZGl2IiksCitpPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0
VGltZSgpLG49dC5kb2N1bWVudEVsZW1lbnQ7Zy5pbm5lckhUTUw9IjxhIG5hbWU9JyIraSsiJy8+
IjtuLmluc2VydEJlZm9yZShnLG4uZmlyc3RDaGlsZCk7aWYodC5nZXRFbGVtZW50QnlJZChpKSl7
by5maW5kLklEPWZ1bmN0aW9uKG0scCxxKXtpZih0eXBlb2YgcC5nZXRFbGVtZW50QnlJZCE9PSJ1
bmRlZmluZWQiJiYhcSlyZXR1cm4ocD1wLmdldEVsZW1lbnRCeUlkKG1bMV0pKT9wLmlkPT09bVsx
XXx8dHlwZW9mIHAuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZwLmdldEF0dHJpYnV0
ZU5vZGUoImlkIikubm9kZVZhbHVlPT09bVsxXT9bcF06QjpbXX07by5maWx0ZXIuSUQ9ZnVuY3Rp
b24obSxwKXt2YXIgcT10eXBlb2YgbS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJm0u
Z2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbS5ub2RlVHlwZT09PTEmJnEmJnEubm9kZVZh
bHVlPT09cH19bi5yZW1vdmVDaGlsZChnKTsKK249Zz1udWxsfSkoKTsoZnVuY3Rpb24oKXt2YXIg
Zz10LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuYXBwZW5kQ2hpbGQodC5jcmVhdGVDb21tZW50KCIi
KSk7aWYoZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aD4wKW8uZmluZC5UQUc9ZnVu
Y3Rpb24oaSxuKXt2YXIgbT1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKGlbMV0pO2lmKGlbMV09PT0i
KiIpe2Zvcih2YXIgcD1bXSxxPTA7bVtxXTtxKyspbVtxXS5ub2RlVHlwZT09PTEmJnAucHVzaCht
W3FdKTttPXB9cmV0dXJuIG19O2cuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IjtpZihnLmZp
cnN0Q2hpbGQmJnR5cGVvZiBnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlIT09InVuZGVmaW5lZCIm
JmcuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PSIjIilvLmF0dHJIYW5kbGUuaHJl
Zj1mdW5jdGlvbihpKXtyZXR1cm4gaS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfTtnPW51bGx9KSgp
O3QucXVlcnlTZWxlY3RvckFsbCYmCitmdW5jdGlvbigpe3ZhciBnPWssaT10LmNyZWF0ZUVsZW1l
bnQoImRpdiIpO2kuaW5uZXJIVE1MPSI8cCBjbGFzcz0nVEVTVCc+PC9wPiI7aWYoIShpLnF1ZXJ5
U2VsZWN0b3JBbGwmJmkucXVlcnlTZWxlY3RvckFsbCgiLlRFU1QiKS5sZW5ndGg9PT0wKSl7az1m
dW5jdGlvbihtLHAscSx1KXtwPXB8fHQ7bT1tLnJlcGxhY2UoL1w9XHMqKFteJyJcXV0qKVxzKlxd
L2csIj0nJDEnXSIpO2lmKCF1JiYhay5pc1hNTChwKSlpZihwLm5vZGVUeXBlPT09OSl0cnl7cmV0
dXJuIEMocC5xdWVyeVNlbGVjdG9yQWxsKG0pLHEpfWNhdGNoKHkpe31lbHNlIGlmKHAubm9kZVR5
cGU9PT0xJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0ib2JqZWN0Iil7dmFyIEY9cC5nZXRB
dHRyaWJ1dGUoImlkIiksTT1GfHwiX19zaXp6bGVfXyI7Rnx8cC5zZXRBdHRyaWJ1dGUoImlkIixN
KTt0cnl7cmV0dXJuIEMocC5xdWVyeVNlbGVjdG9yQWxsKCIjIitNKyIgIittKSxxKX1jYXRjaChO
KXt9ZmluYWxseXtGfHwKK3AucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX1yZXR1cm4gZyhtLHAscSx1
KX07Zm9yKHZhciBuIGluIGcpa1tuXT1nW25dO2k9bnVsbH19KCk7KGZ1bmN0aW9uKCl7dmFyIGc9
dC5kb2N1bWVudEVsZW1lbnQsaT1nLm1hdGNoZXNTZWxlY3Rvcnx8Zy5tb3pNYXRjaGVzU2VsZWN0
b3J8fGcud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxnLm1zTWF0Y2hlc1NlbGVjdG9yLG49ZmFsc2U7
dHJ5e2kuY2FsbCh0LmRvY3VtZW50RWxlbWVudCwiW3Rlc3QhPScnXTpzaXp6bGUiKX1jYXRjaCht
KXtuPXRydWV9aWYoaSlrLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihwLHEpe3E9cS5yZXBsYWNl
KC9cPVxzKihbXiciXF1dKilccypcXS9nLCI9JyQxJ10iKTtpZighay5pc1hNTChwKSl0cnl7aWYo
bnx8IW8ubWF0Y2guUFNFVURPLnRlc3QocSkmJiEvIT0vLnRlc3QocSkpcmV0dXJuIGkuY2FsbChw
LHEpfWNhdGNoKHUpe31yZXR1cm4gayhxLG51bGwsbnVsbCxbcF0pLmxlbmd0aD4wfX0pKCk7KGZ1
bmN0aW9uKCl7dmFyIGc9Cit0LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuaW5uZXJIVE1MPSI8ZGl2
IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7aWYoISghZy5n
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lfHxnLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5n
dGg9PT0wKSl7Zy5sYXN0Q2hpbGQuY2xhc3NOYW1lPSJlIjtpZihnLmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoImUiKS5sZW5ndGghPT0xKXtvLm9yZGVyLnNwbGljZSgxLDAsIkNMQVNTIik7by5maW5k
LkNMQVNTPWZ1bmN0aW9uKGksbixtKXtpZih0eXBlb2Ygbi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1l
IT09InVuZGVmaW5lZCImJiFtKXJldHVybiBuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaVsxXSl9
O2c9bnVsbH19fSkoKTtrLmNvbnRhaW5zPXQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zP2Z1bmN0
aW9uKGcsaSl7cmV0dXJuIGchPT1pJiYoZy5jb250YWlucz9nLmNvbnRhaW5zKGkpOnRydWUpfTp0
LmRvY3VtZW50RWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8KK2Z1bmN0aW9uKGcsaSl7
cmV0dXJuISEoZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihpKSYxNil9OmZ1bmN0aW9uKCl7cmV0
dXJuIGZhbHNlfTtrLmlzWE1MPWZ1bmN0aW9uKGcpe3JldHVybihnPShnP2cub3duZXJEb2N1bWVu
dHx8ZzowKS5kb2N1bWVudEVsZW1lbnQpP2cubm9kZU5hbWUhPT0iSFRNTCI6ZmFsc2V9O3ZhciBM
PWZ1bmN0aW9uKGcsaSl7Zm9yKHZhciBuLG09W10scD0iIixxPWkubm9kZVR5cGU/W2ldOmk7bj1v
Lm1hdGNoLlBTRVVETy5leGVjKGcpOyl7cCs9blswXTtnPWcucmVwbGFjZShvLm1hdGNoLlBTRVVE
TywiIil9Zz1vLnJlbGF0aXZlW2ddP2crIioiOmc7bj0wO2Zvcih2YXIgdT1xLmxlbmd0aDtuPHU7
bisrKWsoZyxxW25dLG0pO3JldHVybiBrLmZpbHRlcihwLG0pfTtjLmZpbmQ9aztjLmV4cHI9ay5z
ZWxlY3RvcnM7Yy5leHByWyI6Il09Yy5leHByLmZpbHRlcnM7Yy51bmlxdWU9ay51bmlxdWVTb3J0
O2MudGV4dD1rLmdldFRleHQ7Yy5pc1hNTERvYz1rLmlzWE1MOworYy5jb250YWlucz1rLmNvbnRh
aW5zfSkoKTt2YXIgWmE9L1VudGlsJC8sJGE9L14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxs
KS8sYWI9LywvLE5hPS9eLlteOiNcW1wuLF0qJC8sYmI9QXJyYXkucHJvdG90eXBlLnNsaWNlLGNi
PWMuZXhwci5tYXRjaC5QT1M7Yy5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBi
PXRoaXMucHVzaFN0YWNrKCIiLCJmaW5kIixhKSxkPTAsZT0wLGY9dGhpcy5sZW5ndGg7ZTxmO2Ur
Kyl7ZD1iLmxlbmd0aDtjLmZpbmQoYSx0aGlzW2VdLGIpO2lmKGU+MClmb3IodmFyIGg9ZDtoPGIu
bGVuZ3RoO2grKylmb3IodmFyIGw9MDtsPGQ7bCsrKWlmKGJbbF09PT1iW2hdKXtiLnNwbGljZSho
LS0sMSk7YnJlYWt9fXJldHVybiBifSxoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9YyhhKTtyZXR1cm4g
dGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2Q8ZTtkKyspaWYo
Yy5jb250YWlucyh0aGlzLGJbZF0pKXJldHVybiB0cnVlfSl9LAorbm90OmZ1bmN0aW9uKGEpe3Jl
dHVybiB0aGlzLnB1c2hTdGFjayhtYSh0aGlzLGEsZmFsc2UpLCJub3QiLGEpfSxmaWx0ZXI6ZnVu
Y3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG1hKHRoaXMsYSx0cnVlKSwiZmlsdGVyIixh
KX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISFhJiZjLmZpbHRlcihhLHRoaXMpLmxlbmd0aD4wfSxj
bG9zZXN0OmZ1bmN0aW9uKGEsYil7dmFyIGQ9W10sZSxmLGg9dGhpc1swXTtpZihjLmlzQXJyYXko
YSkpe3ZhciBsLGs9e30sbz0xO2lmKGgmJmEubGVuZ3RoKXtlPTA7Zm9yKGY9YS5sZW5ndGg7ZTxm
O2UrKyl7bD1hW2VdO2tbbF18fChrW2xdPWMuZXhwci5tYXRjaC5QT1MudGVzdChsKT9jKGwsYnx8
dGhpcy5jb250ZXh0KTpsKX1mb3IoO2gmJmgub3duZXJEb2N1bWVudCYmaCE9PWI7KXtmb3IobCBp
biBrKXtlPWtbbF07aWYoZS5qcXVlcnk/ZS5pbmRleChoKT4tMTpjKGgpLmlzKGUpKWQucHVzaCh7
c2VsZWN0b3I6bCxlbGVtOmgsbGV2ZWw6b30pfWg9CitoLnBhcmVudE5vZGU7bysrfX1yZXR1cm4g
ZH1sPWNiLnRlc3QoYSk/YyhhLGJ8fHRoaXMuY29udGV4dCk6bnVsbDtlPTA7Zm9yKGY9dGhpcy5s
ZW5ndGg7ZTxmO2UrKylmb3IoaD10aGlzW2VdO2g7KWlmKGw/bC5pbmRleChoKT4tMTpjLmZpbmQu
bWF0Y2hlc1NlbGVjdG9yKGgsYSkpe2QucHVzaChoKTticmVha31lbHNle2g9aC5wYXJlbnROb2Rl
O2lmKCFofHwhaC5vd25lckRvY3VtZW50fHxoPT09YilicmVha31kPWQubGVuZ3RoPjE/Yy51bmlx
dWUoZCk6ZDtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZCwiY2xvc2VzdCIsYSl9LGluZGV4OmZ1bmN0
aW9uKGEpe2lmKCFhfHx0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBjLmluQXJyYXkodGhpc1sw
XSxhP2MoYSk6dGhpcy5wYXJlbnQoKS5jaGlsZHJlbigpKTtyZXR1cm4gYy5pbkFycmF5KGEuanF1
ZXJ5P2FbMF06YSx0aGlzKX0sYWRkOmZ1bmN0aW9uKGEsYil7dmFyIGQ9dHlwZW9mIGE9PT0ic3Ry
aW5nIj9jKGEsYnx8dGhpcy5jb250ZXh0KToKK2MubWFrZUFycmF5KGEpLGU9Yy5tZXJnZSh0aGlz
LmdldCgpLGQpO3JldHVybiB0aGlzLnB1c2hTdGFjayghZFswXXx8IWRbMF0ucGFyZW50Tm9kZXx8
ZFswXS5wYXJlbnROb2RlLm5vZGVUeXBlPT09MTF8fCFlWzBdfHwhZVswXS5wYXJlbnROb2RlfHxl
WzBdLnBhcmVudE5vZGUubm9kZVR5cGU9PT0xMT9lOmMudW5pcXVlKGUpKX0sYW5kU2VsZjpmdW5j
dGlvbigpe3JldHVybiB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfX0pO2MuZWFjaCh7cGFyZW50
OmZ1bmN0aW9uKGEpe3JldHVybihhPWEucGFyZW50Tm9kZSkmJmEubm9kZVR5cGUhPT0xMT9hOm51
bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIGMuZGlyKGEsInBhcmVudE5vZGUiKX0scGFy
ZW50c1VudGlsOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5kaXIoYSwicGFyZW50Tm9kZSIsZCl9
LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGMubnRoKGEsMiwibmV4dFNpYmxpbmciKX0scHJldjpm
dW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwKKzIsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxs
OmZ1bmN0aW9uKGEpe3JldHVybiBjLmRpcihhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0
aW9uKGEpe3JldHVybiBjLmRpcihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0
aW9uKGEsYixkKXtyZXR1cm4gYy5kaXIoYSwibmV4dFNpYmxpbmciLGQpfSxwcmV2VW50aWw6ZnVu
Y3Rpb24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwcmV2aW91c1NpYmxpbmciLGQpfSxzaWJsaW5n
czpmdW5jdGlvbihhKXtyZXR1cm4gYy5zaWJsaW5nKGEucGFyZW50Tm9kZS5maXJzdENoaWxkLGEp
fSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gYy5zaWJsaW5nKGEuZmlyc3RDaGlsZCl9LGNv
bnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBjLm5vZGVOYW1lKGEsImlmcmFtZSIpP2EuY29udGVu
dERvY3VtZW50fHxhLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6Yy5tYWtlQXJyYXkoYS5jaGlsZE5v
ZGVzKX19LGZ1bmN0aW9uKGEsCitiKXtjLmZuW2FdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9Yy5tYXAo
dGhpcyxiLGQpO1phLnRlc3QoYSl8fChlPWQpO2lmKGUmJnR5cGVvZiBlPT09InN0cmluZyIpZj1j
LmZpbHRlcihlLGYpO2Y9dGhpcy5sZW5ndGg+MT9jLnVuaXF1ZShmKTpmO2lmKCh0aGlzLmxlbmd0
aD4xfHxhYi50ZXN0KGUpKSYmJGEudGVzdChhKSlmPWYucmV2ZXJzZSgpO3JldHVybiB0aGlzLnB1
c2hTdGFjayhmLGEsYmIuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9fSk7Yy5leHRlbmQoe2Zp
bHRlcjpmdW5jdGlvbihhLGIsZCl7aWYoZClhPSI6bm90KCIrYSsiKSI7cmV0dXJuIGIubGVuZ3Ro
PT09MT9jLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGJbMF0sYSk/W2JbMF1dOltdOmMuZmluZC5tYXRj
aGVzKGEsYil9LGRpcjpmdW5jdGlvbihhLGIsZCl7dmFyIGU9W107Zm9yKGE9YVtiXTthJiZhLm5v
ZGVUeXBlIT09OSYmKGQ9PT1CfHxhLm5vZGVUeXBlIT09MXx8IWMoYSkuaXMoZCkpOyl7YS5ub2Rl
VHlwZT09PTEmJgorZS5wdXNoKGEpO2E9YVtiXX1yZXR1cm4gZX0sbnRoOmZ1bmN0aW9uKGEsYixk
KXtiPWJ8fDE7Zm9yKHZhciBlPTA7YTthPWFbZF0paWYoYS5ub2RlVHlwZT09PTEmJisrZT09PWIp
YnJlYWs7cmV0dXJuIGF9LHNpYmxpbmc6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQ9W107YTthPWEu
bmV4dFNpYmxpbmcpYS5ub2RlVHlwZT09PTEmJmEhPT1iJiZkLnB1c2goYSk7cmV0dXJuIGR9fSk7
dmFyIHphPS8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csJD0vXlxzKy8sQWE9LzwoPyFhcmVh
fGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0q
KVwvPi9pZyxCYT0vPChbXHc6XSspLyxkYj0vPHRib2R5L2ksZWI9Lzx8JiM/XHcrOy8sQ2E9Lzwo
PzpzY3JpcHR8b2JqZWN0fGVtYmVkfG9wdGlvbnxzdHlsZSkvaSxEYT0vY2hlY2tlZFxzKig/Olte
PV18PVxzKi5jaGVja2VkLikvaSxmYj0vXD0oW149Iic+XHNdK1wvKT4vZyxQPXtvcHRpb246WzEs
CisiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwi
PGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJd
LHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxl
Pjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRi
b2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSxhcmVhOlsxLCI8
bWFwPiIsIjwvbWFwPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07UC5vcHRncm91cD1QLm9wdGlvbjtQ
LnRib2R5PVAudGZvb3Q9UC5jb2xncm91cD1QLmNhcHRpb249UC50aGVhZDtQLnRoPVAudGQ7aWYo
IWMuc3VwcG9ydC5odG1sU2VyaWFsaXplKVAuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+
Il07Yy5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVy
biB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFyIGQ9CitjKHRoaXMpO2QudGV4dChhLmNhbGwodGhp
cyxiLGQudGV4dCgpKSl9KTtpZih0eXBlb2YgYSE9PSJvYmplY3QiJiZhIT09QilyZXR1cm4gdGhp
cy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHx0KS5jcmVh
dGVUZXh0Tm9kZShhKSk7cmV0dXJuIGMudGV4dCh0aGlzKX0sd3JhcEFsbDpmdW5jdGlvbihhKXtp
ZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihkKXtjKHRoaXMpLndy
YXBBbGwoYS5jYWxsKHRoaXMsZCkpfSk7aWYodGhpc1swXSl7dmFyIGI9YyhhLHRoaXNbMF0ub3du
ZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUodHJ1ZSk7dGhpc1swXS5wYXJlbnROb2RlJiZiLmluc2Vy
dEJlZm9yZSh0aGlzWzBdKTtiLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgZD10aGlzO2QuZmlyc3RD
aGlsZCYmZC5maXJzdENoaWxkLm5vZGVUeXBlPT09MTspZD1kLmZpcnN0Q2hpbGQ7cmV0dXJuIGR9
KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LAord3JhcElubmVyOmZ1bmN0aW9uKGEpe2lmKGMu
aXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2ModGhpcykud3JhcElu
bmVyKGEuY2FsbCh0aGlzLGIpKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1j
KHRoaXMpLGQ9Yi5jb250ZW50cygpO2QubGVuZ3RoP2Qud3JhcEFsbChhKTpiLmFwcGVuZChhKX0p
fSx3cmFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLndy
YXBBbGwoYSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChm
dW5jdGlvbigpe2Mubm9kZU5hbWUodGhpcywiYm9keSIpfHxjKHRoaXMpLnJlcGxhY2VXaXRoKHRo
aXMuY2hpbGROb2Rlcyl9KS5lbmQoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9t
TWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMu
YXBwZW5kQ2hpbGQoYSl9KX0sCitwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFu
aXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuaW5z
ZXJ0QmVmb3JlKGEsdGhpcy5maXJzdENoaWxkKX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtpZih0aGlz
WzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZh
bHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYix0aGlzKX0pO2Vs
c2UgaWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIGE9Yyhhcmd1bWVudHNbMF0pO2EucHVzaC5hcHBs
eShhLHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1
bWVudHMpfX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUp
cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFy
ZW50Tm9kZS5pbnNlcnRCZWZvcmUoYiwKK3RoaXMubmV4dFNpYmxpbmcpfSk7ZWxzZSBpZihhcmd1
bWVudHMubGVuZ3RoKXt2YXIgYT10aGlzLnB1c2hTdGFjayh0aGlzLCJhZnRlciIsYXJndW1lbnRz
KTthLnB1c2guYXBwbHkoYSxjKGFyZ3VtZW50c1swXSkudG9BcnJheSgpKTtyZXR1cm4gYX19LHJl
bW92ZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgZD0wLGU7KGU9dGhpc1tkXSkhPW51bGw7ZCsrKWlm
KCFhfHxjLmZpbHRlcihhLFtlXSkubGVuZ3RoKXtpZighYiYmZS5ub2RlVHlwZT09PTEpe2MuY2xl
YW5EYXRhKGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7Yy5jbGVhbkRhdGEoW2VdKX1lLnBh
cmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX1yZXR1cm4gdGhpc30sZW1wdHk6
ZnVuY3Rpb24oKXtmb3IodmFyIGE9MCxiOyhiPXRoaXNbYV0pIT1udWxsO2ErKylmb3IoYi5ub2Rl
VHlwZT09PTEmJmMuY2xlYW5EYXRhKGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7Yi5maXJz
dENoaWxkOyliLnJlbW92ZUNoaWxkKGIuZmlyc3RDaGlsZCk7CityZXR1cm4gdGhpc30sY2xvbmU6
ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighYy5zdXBwb3J0Lm5vQ2xv
bmVFdmVudCYmIWMuaXNYTUxEb2ModGhpcykpe3ZhciBkPXRoaXMub3V0ZXJIVE1MLGU9dGhpcy5v
d25lckRvY3VtZW50O2lmKCFkKXtkPWUuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5hcHBlbmRDaGls
ZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ZD1kLmlubmVySFRNTH1yZXR1cm4gYy5jbGVhbihbZC5y
ZXBsYWNlKHphLCIiKS5yZXBsYWNlKGZiLCc9IiQxIj4nKS5yZXBsYWNlKCQsIiIpXSxlKVswXX1l
bHNlIHJldHVybiB0aGlzLmNsb25lTm9kZSh0cnVlKX0pO2lmKGE9PT10cnVlKXtuYSh0aGlzLGIp
O25hKHRoaXMuZmluZCgiKiIpLGIuZmluZCgiKiIpKX1yZXR1cm4gYn0saHRtbDpmdW5jdGlvbihh
KXtpZihhPT09QilyZXR1cm4gdGhpc1swXSYmdGhpc1swXS5ub2RlVHlwZT09PTE/dGhpc1swXS5p
bm5lckhUTUwucmVwbGFjZSh6YSwiIik6bnVsbDsKK2Vsc2UgaWYodHlwZW9mIGE9PT0ic3RyaW5n
IiYmIUNhLnRlc3QoYSkmJihjLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2V8fCEkLnRlc3QoYSkp
JiYhUFsoQmEuZXhlYyhhKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2E9YS5yZXBsYWNl
KEFhLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKHZhciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlm
KHRoaXNbYl0ubm9kZVR5cGU9PT0xKXtjLmNsZWFuRGF0YSh0aGlzW2JdLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCIqIikpO3RoaXNbYl0uaW5uZXJIVE1MPWF9fWNhdGNoKGUpe3RoaXMuZW1wdHkoKS5h
cHBlbmQoYSl9fWVsc2UgYy5pc0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihmKXt2YXIg
aD1jKHRoaXMpO2guaHRtbChhLmNhbGwodGhpcyxmLGguaHRtbCgpKSl9KTp0aGlzLmVtcHR5KCku
YXBwZW5kKGEpO3JldHVybiB0aGlzfSxyZXBsYWNlV2l0aDpmdW5jdGlvbihhKXtpZih0aGlzWzBd
JiZ0aGlzWzBdLnBhcmVudE5vZGUpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNo
KGZ1bmN0aW9uKGIpe3ZhciBkPQorYyh0aGlzKSxlPWQuaHRtbCgpO2QucmVwbGFjZVdpdGgoYS5j
YWxsKHRoaXMsYixlKSl9KTtpZih0eXBlb2YgYSE9PSJzdHJpbmciKWE9YyhhKS5kZXRhY2goKTty
ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5uZXh0U2libGluZyxkPXRoaXMu
cGFyZW50Tm9kZTtjKHRoaXMpLnJlbW92ZSgpO2I/YyhiKS5iZWZvcmUoYSk6YyhkKS5hcHBlbmQo
YSl9KX1lbHNlIHJldHVybiB0aGlzLnB1c2hTdGFjayhjKGMuaXNGdW5jdGlvbihhKT9hKCk6YSks
InJlcGxhY2VXaXRoIixhKX0sZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShh
LHRydWUpfSxkb21NYW5pcDpmdW5jdGlvbihhLGIsZCl7dmFyIGUsZixoLGw9YVswXSxrPVtdO2lm
KCFjLnN1cHBvcnQuY2hlY2tDbG9uZSYmYXJndW1lbnRzLmxlbmd0aD09PTMmJnR5cGVvZiBsPT09
InN0cmluZyImJkRhLnRlc3QobCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2ModGhpcyku
ZG9tTWFuaXAoYSwKK2IsZCx0cnVlKX0pO2lmKGMuaXNGdW5jdGlvbihsKSlyZXR1cm4gdGhpcy5l
YWNoKGZ1bmN0aW9uKHgpe3ZhciByPWModGhpcyk7YVswXT1sLmNhbGwodGhpcyx4LGI/ci5odG1s
KCk6Qik7ci5kb21NYW5pcChhLGIsZCl9KTtpZih0aGlzWzBdKXtlPWwmJmwucGFyZW50Tm9kZTtl
PWMuc3VwcG9ydC5wYXJlbnROb2RlJiZlJiZlLm5vZGVUeXBlPT09MTEmJmUuY2hpbGROb2Rlcy5s
ZW5ndGg9PT10aGlzLmxlbmd0aD97ZnJhZ21lbnQ6ZX06Yy5idWlsZEZyYWdtZW50KGEsdGhpcyxr
KTtoPWUuZnJhZ21lbnQ7aWYoZj1oLmNoaWxkTm9kZXMubGVuZ3RoPT09MT9oPWguZmlyc3RDaGls
ZDpoLmZpcnN0Q2hpbGQpe2I9YiYmYy5ub2RlTmFtZShmLCJ0ciIpO2Y9MDtmb3IodmFyIG89dGhp
cy5sZW5ndGg7ZjxvO2YrKylkLmNhbGwoYj9jLm5vZGVOYW1lKHRoaXNbZl0sInRhYmxlIik/dGhp
c1tmXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8dGhpc1tmXS5hcHBlbmRDaGls
ZCh0aGlzW2ZdLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6Cit0aGlzW2Zd
OnRoaXNbZl0sZj4wfHxlLmNhY2hlYWJsZXx8dGhpcy5sZW5ndGg+MT9oLmNsb25lTm9kZSh0cnVl
KTpoKX1rLmxlbmd0aCYmYy5lYWNoKGssT2EpfXJldHVybiB0aGlzfX0pO2MuYnVpbGRGcmFnbWVu
dD1mdW5jdGlvbihhLGIsZCl7dmFyIGUsZixoO2I9YiYmYlswXT9iWzBdLm93bmVyRG9jdW1lbnR8
fGJbMF06dDtpZihhLmxlbmd0aD09PTEmJnR5cGVvZiBhWzBdPT09InN0cmluZyImJmFbMF0ubGVu
Z3RoPDUxMiYmYj09PXQmJiFDYS50ZXN0KGFbMF0pJiYoYy5zdXBwb3J0LmNoZWNrQ2xvbmV8fCFE
YS50ZXN0KGFbMF0pKSl7Zj10cnVlO2lmKGg9Yy5mcmFnbWVudHNbYVswXV0paWYoaCE9PTEpZT1o
fWlmKCFlKXtlPWIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2MuY2xlYW4oYSxiLGUsZCl9aWYo
ZiljLmZyYWdtZW50c1thWzBdXT1oP2U6MTtyZXR1cm57ZnJhZ21lbnQ6ZSxjYWNoZWFibGU6Zn19
O2MuZnJhZ21lbnRzPXt9O2MuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIsCitwcmVwZW5kVG86InBy
ZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VB
bGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1bmN0aW9uKGQpe3ZhciBl
PVtdO2Q9YyhkKTt2YXIgZj10aGlzLmxlbmd0aD09PTEmJnRoaXNbMF0ucGFyZW50Tm9kZTtpZihm
JiZmLm5vZGVUeXBlPT09MTEmJmYuY2hpbGROb2Rlcy5sZW5ndGg9PT0xJiZkLmxlbmd0aD09PTEp
e2RbYl0odGhpc1swXSk7cmV0dXJuIHRoaXN9ZWxzZXtmPTA7Zm9yKHZhciBoPWQubGVuZ3RoO2Y8
aDtmKyspe3ZhciBsPShmPjA/dGhpcy5jbG9uZSh0cnVlKTp0aGlzKS5nZXQoKTtjKGRbZl0pW2Jd
KGwpO2U9ZS5jb25jYXQobCl9cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUsYSxkLnNlbGVjdG9yKX19
fSk7Yy5leHRlbmQoe2NsZWFuOmZ1bmN0aW9uKGEsYixkLGUpe2I9Ynx8dDtpZih0eXBlb2YgYi5j
cmVhdGVFbGVtZW50PT09InVuZGVmaW5lZCIpYj1iLm93bmVyRG9jdW1lbnR8fAorYlswXSYmYlsw
XS5vd25lckRvY3VtZW50fHx0O2Zvcih2YXIgZj1bXSxoPTAsbDsobD1hW2hdKSE9bnVsbDtoKysp
e2lmKHR5cGVvZiBsPT09Im51bWJlciIpbCs9IiI7aWYobCl7aWYodHlwZW9mIGw9PT0ic3RyaW5n
IiYmIWViLnRlc3QobCkpbD1iLmNyZWF0ZVRleHROb2RlKGwpO2Vsc2UgaWYodHlwZW9mIGw9PT0i
c3RyaW5nIil7bD1sLnJlcGxhY2UoQWEsIjwkMT48LyQyPiIpO3ZhciBrPShCYS5leGVjKGwpfHxb
IiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLG89UFtrXXx8UC5fZGVmYXVsdCx4PW9bMF0scj1iLmNy
ZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihyLmlubmVySFRNTD1vWzFdK2wrb1syXTt4LS07KXI9ci5s
YXN0Q2hpbGQ7aWYoIWMuc3VwcG9ydC50Ym9keSl7eD1kYi50ZXN0KGwpO2s9az09PSJ0YWJsZSIm
JiF4P3IuZmlyc3RDaGlsZCYmci5maXJzdENoaWxkLmNoaWxkTm9kZXM6b1sxXT09PSI8dGFibGU+
IiYmIXg/ci5jaGlsZE5vZGVzOltdO2ZvcihvPWsubGVuZ3RoLQorMTtvPj0wOy0tbyljLm5vZGVO
YW1lKGtbb10sInRib2R5IikmJiFrW29dLmNoaWxkTm9kZXMubGVuZ3RoJiZrW29dLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoa1tvXSl9IWMuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSYmJC50ZXN0
KGwpJiZyLmluc2VydEJlZm9yZShiLmNyZWF0ZVRleHROb2RlKCQuZXhlYyhsKVswXSksci5maXJz
dENoaWxkKTtsPXIuY2hpbGROb2Rlc31pZihsLm5vZGVUeXBlKWYucHVzaChsKTtlbHNlIGY9Yy5t
ZXJnZShmLGwpfX1pZihkKWZvcihoPTA7ZltoXTtoKyspaWYoZSYmYy5ub2RlTmFtZShmW2hdLCJz
Y3JpcHQiKSYmKCFmW2hdLnR5cGV8fGZbaF0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2
YXNjcmlwdCIpKWUucHVzaChmW2hdLnBhcmVudE5vZGU/ZltoXS5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGZbaF0pOmZbaF0pO2Vsc2V7ZltoXS5ub2RlVHlwZT09PTEmJmYuc3BsaWNlLmFwcGx5KGYs
W2grMSwwXS5jb25jYXQoYy5tYWtlQXJyYXkoZltoXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2Ny
aXB0IikpKSk7CitkLmFwcGVuZENoaWxkKGZbaF0pfXJldHVybiBmfSxjbGVhbkRhdGE6ZnVuY3Rp
b24oYSl7Zm9yKHZhciBiLGQsZT1jLmNhY2hlLGY9Yy5ldmVudC5zcGVjaWFsLGg9Yy5zdXBwb3J0
LmRlbGV0ZUV4cGFuZG8sbD0wLGs7KGs9YVtsXSkhPW51bGw7bCsrKWlmKCEoay5ub2RlTmFtZSYm
Yy5ub0RhdGFbay5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkpaWYoZD1rW2MuZXhwYW5kb10pe2lm
KChiPWVbZF0pJiZiLmV2ZW50cylmb3IodmFyIG8gaW4gYi5ldmVudHMpZltvXT9jLmV2ZW50LnJl
bW92ZShrLG8pOmMucmVtb3ZlRXZlbnQoayxvLGIuaGFuZGxlKTtpZihoKWRlbGV0ZSBrW2MuZXhw
YW5kb107ZWxzZSBrLnJlbW92ZUF0dHJpYnV0ZSYmay5yZW1vdmVBdHRyaWJ1dGUoYy5leHBhbmRv
KTtkZWxldGUgZVtkXX19fSk7dmFyIEVhPS9hbHBoYVwoW14pXSpcKS9pLGdiPS9vcGFjaXR5PShb
XildKikvLGhiPS8tKFthLXpdKS9pZyxpYj0vKFtBLVpdKS9nLEZhPS9eLT9cZCsoPzpweCk/JC9p
LAoramI9L14tP1xkLyxrYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4i
LGRpc3BsYXk6ImJsb2NrIn0sUGE9WyJMZWZ0IiwiUmlnaHQiXSxRYT1bIlRvcCIsIkJvdHRvbSJd
LFcsR2EsYWEsbGI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTtjLmZuLmNz
cz1mdW5jdGlvbihhLGIpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0yJiZiPT09QilyZXR1cm4gdGhp
cztyZXR1cm4gYy5hY2Nlc3ModGhpcyxhLGIsdHJ1ZSxmdW5jdGlvbihkLGUsZil7cmV0dXJuIGYh
PT1CP2Muc3R5bGUoZCxlLGYpOmMuY3NzKGQsZSl9KX07Yy5leHRlbmQoe2Nzc0hvb2tzOntvcGFj
aXR5OntnZXQ6ZnVuY3Rpb24oYSxiKXtpZihiKXt2YXIgZD1XKGEsIm9wYWNpdHkiLCJvcGFjaXR5
Iik7cmV0dXJuIGQ9PT0iIj8iMSI6ZH1lbHNlIHJldHVybiBhLnN0eWxlLm9wYWNpdHl9fX0sY3Nz
TnVtYmVyOnt6SW5kZXg6dHJ1ZSxmb250V2VpZ2h0OnRydWUsb3BhY2l0eTp0cnVlLAorem9vbTp0
cnVlLGxpbmVIZWlnaHQ6dHJ1ZX0sY3NzUHJvcHM6eyJmbG9hdCI6Yy5zdXBwb3J0LmNzc0Zsb2F0
PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsZCxlKXtpZighKCFh
fHxhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTh8fCFhLnN0eWxlKSl7dmFyIGYsaD1jLmNh
bWVsQ2FzZShiKSxsPWEuc3R5bGUsaz1jLmNzc0hvb2tzW2hdO2I9Yy5jc3NQcm9wc1toXXx8aDtp
ZihkIT09Qil7aWYoISh0eXBlb2YgZD09PSJudW1iZXIiJiZpc05hTihkKXx8ZD09bnVsbCkpe2lm
KHR5cGVvZiBkPT09Im51bWJlciImJiFjLmNzc051bWJlcltoXSlkKz0icHgiO2lmKCFrfHwhKCJz
ZXQiaW4gayl8fChkPWsuc2V0KGEsZCkpIT09Qil0cnl7bFtiXT1kfWNhdGNoKG8pe319fWVsc2V7
aWYoayYmImdldCJpbiBrJiYoZj1rLmdldChhLGZhbHNlLGUpKSE9PUIpcmV0dXJuIGY7cmV0dXJu
IGxbYl19fX0sY3NzOmZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmPWMuY2FtZWxDYXNlKGIpLAoraD1j
LmNzc0hvb2tzW2ZdO2I9Yy5jc3NQcm9wc1tmXXx8ZjtpZihoJiYiZ2V0ImluIGgmJihlPWguZ2V0
KGEsdHJ1ZSxkKSkhPT1CKXJldHVybiBlO2Vsc2UgaWYoVylyZXR1cm4gVyhhLGIsZil9LHN3YXA6
ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPXt9LGY7Zm9yKGYgaW4gYil7ZVtmXT1hLnN0eWxlW2ZdO2Eu
c3R5bGVbZl09YltmXX1kLmNhbGwoYSk7Zm9yKGYgaW4gYilhLnN0eWxlW2ZdPWVbZl19LGNhbWVs
Q2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGhiLGxiKX19KTtjLmN1ckNTUz1jLmNz
cztjLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7Yy5jc3NIb29rc1tiXT17
Z2V0OmZ1bmN0aW9uKGQsZSxmKXt2YXIgaDtpZihlKXtpZihkLm9mZnNldFdpZHRoIT09MCloPW9h
KGQsYixmKTtlbHNlIGMuc3dhcChkLGtiLGZ1bmN0aW9uKCl7aD1vYShkLGIsZil9KTtpZihoPD0w
KXtoPVcoZCxiLGIpO2lmKGg9PT0iMHB4IiYmYWEpaD1hYShkLGIsYik7CitpZihoIT1udWxsKXJl
dHVybiBoPT09IiJ8fGg9PT0iYXV0byI/IjBweCI6aH1pZihoPDB8fGg9PW51bGwpe2g9ZC5zdHls
ZVtiXTtyZXR1cm4gaD09PSIifHxoPT09ImF1dG8iPyIwcHgiOmh9cmV0dXJuIHR5cGVvZiBoPT09
InN0cmluZyI/aDpoKyJweCJ9fSxzZXQ6ZnVuY3Rpb24oZCxlKXtpZihGYS50ZXN0KGUpKXtlPXBh
cnNlRmxvYXQoZSk7aWYoZT49MClyZXR1cm4gZSsicHgifWVsc2UgcmV0dXJuIGV9fX0pO2lmKCFj
LnN1cHBvcnQub3BhY2l0eSljLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3Jl
dHVybiBnYi50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5z
dHlsZS5maWx0ZXIpfHwiIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjpiPyIxIjoiIn0s
c2V0OmZ1bmN0aW9uKGEsYil7dmFyIGQ9YS5zdHlsZTtkLnpvb209MTt2YXIgZT1jLmlzTmFOKGIp
PyIiOiJhbHBoYShvcGFjaXR5PSIrYioxMDArIikiLGY9CitkLmZpbHRlcnx8IiI7ZC5maWx0ZXI9
RWEudGVzdChmKT9mLnJlcGxhY2UoRWEsZSk6ZC5maWx0ZXIrIiAiK2V9fTtpZih0LmRlZmF1bHRW
aWV3JiZ0LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpR2E9ZnVuY3Rpb24oYSxiLGQpe3Zh
ciBlO2Q9ZC5yZXBsYWNlKGliLCItJDEiKS50b0xvd2VyQ2FzZSgpO2lmKCEoYj1hLm93bmVyRG9j
dW1lbnQuZGVmYXVsdFZpZXcpKXJldHVybiBCO2lmKGI9Yi5nZXRDb21wdXRlZFN0eWxlKGEsbnVs
bCkpe2U9Yi5nZXRQcm9wZXJ0eVZhbHVlKGQpO2lmKGU9PT0iIiYmIWMuY29udGFpbnMoYS5vd25l
ckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxhKSllPWMuc3R5bGUoYSxkKX1yZXR1cm4gZX07aWYo
dC5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxlKWFhPWZ1bmN0aW9uKGEsYil7dmFyIGQsZSxm
PWEuY3VycmVudFN0eWxlJiZhLmN1cnJlbnRTdHlsZVtiXSxoPWEuc3R5bGU7aWYoIUZhLnRlc3Qo
ZikmJmpiLnRlc3QoZikpe2Q9aC5sZWZ0OworZT1hLnJ1bnRpbWVTdHlsZS5sZWZ0O2EucnVudGlt
ZVN0eWxlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdDtoLmxlZnQ9Yj09PSJmb250U2l6ZSI/IjFl
bSI6Znx8MDtmPWgucGl4ZWxMZWZ0KyJweCI7aC5sZWZ0PWQ7YS5ydW50aW1lU3R5bGUubGVmdD1l
fXJldHVybiBmPT09IiI/ImF1dG8iOmZ9O1c9R2F8fGFhO2lmKGMuZXhwciYmYy5leHByLmZpbHRl
cnMpe2MuZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXt2YXIgYj1hLm9mZnNldEhlaWdo
dDtyZXR1cm4gYS5vZmZzZXRXaWR0aD09PTAmJmI9PT0wfHwhYy5zdXBwb3J0LnJlbGlhYmxlSGlk
ZGVuT2Zmc2V0cyYmKGEuc3R5bGUuZGlzcGxheXx8Yy5jc3MoYSwiZGlzcGxheSIpKT09PSJub25l
In07Yy5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hYy5leHByLmZpbHRl
cnMuaGlkZGVuKGEpfX12YXIgbWI9Yy5ub3coKSxuYj0vPHNjcmlwdFxiW148XSooPzooPyE8XC9z
Y3JpcHQ+KTxbXjxdKikqPFwvc2NyaXB0Pi9naSwKK29iPS9eKD86c2VsZWN0fHRleHRhcmVhKS9p
LHBiPS9eKD86Y29sb3J8ZGF0ZXxkYXRldGltZXxlbWFpbHxoaWRkZW58bW9udGh8bnVtYmVyfHBh
c3N3b3JkfHJhbmdlfHNlYXJjaHx0ZWx8dGV4dHx0aW1lfHVybHx3ZWVrKSQvaSxxYj0vXig/OkdF
VHxIRUFEKSQvLFJhPS9cW1xdJC8sVD0vXD1cPygmfCQpLyxqYT0vXD8vLHJiPS8oWz8mXSlfPVte
Jl0qLyxzYj0vXihcdys6KT9cL1wvKFteXC8/I10rKS8sdGI9LyUyMC9nLHViPS8jLiokLyxIYT1j
LmZuLmxvYWQ7Yy5mbi5leHRlbmQoe2xvYWQ6ZnVuY3Rpb24oYSxiLGQpe2lmKHR5cGVvZiBhIT09
InN0cmluZyImJkhhKXJldHVybiBIYS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZWxzZSBpZighdGhp
cy5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIGU9YS5pbmRleE9mKCIgIik7aWYoZT49MCl7dmFyIGY9
YS5zbGljZShlLGEubGVuZ3RoKTthPWEuc2xpY2UoMCxlKX1lPSJHRVQiO2lmKGIpaWYoYy5pc0Z1
bmN0aW9uKGIpKXtkPWI7Yj1udWxsfWVsc2UgaWYodHlwZW9mIGI9PT0KKyJvYmplY3QiKXtiPWMu
cGFyYW0oYixjLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCk7ZT0iUE9TVCJ9dmFyIGg9dGhpcztj
LmFqYXgoe3VybDphLHR5cGU6ZSxkYXRhVHlwZToiaHRtbCIsZGF0YTpiLGNvbXBsZXRlOmZ1bmN0
aW9uKGwsayl7aWYoaz09PSJzdWNjZXNzInx8az09PSJub3Rtb2RpZmllZCIpaC5odG1sKGY/Yygi
PGRpdj4iKS5hcHBlbmQobC5yZXNwb25zZVRleHQucmVwbGFjZShuYiwiIikpLmZpbmQoZik6bC5y
ZXNwb25zZVRleHQpO2QmJmguZWFjaChkLFtsLnJlc3BvbnNlVGV4dCxrLGxdKX19KTtyZXR1cm4g
dGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGMucGFyYW0odGhpcy5zZXJpYWxpemVB
cnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9jLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlz
fSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmCishdGhpcy5kaXNhYmxlZCYm
KHRoaXMuY2hlY2tlZHx8b2IudGVzdCh0aGlzLm5vZGVOYW1lKXx8cGIudGVzdCh0aGlzLnR5cGUp
KX0pLm1hcChmdW5jdGlvbihhLGIpe3ZhciBkPWModGhpcykudmFsKCk7cmV0dXJuIGQ9PW51bGw/
bnVsbDpjLmlzQXJyYXkoZCk/Yy5tYXAoZCxmdW5jdGlvbihlKXtyZXR1cm57bmFtZTpiLm5hbWUs
dmFsdWU6ZX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6ZH19KS5nZXQoKX19KTtjLmVhY2goImFqYXhT
dGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5k
Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkKXtyZXR1cm4gdGhp
cy5iaW5kKGIsZCl9fSk7Yy5leHRlbmQoe2dldDpmdW5jdGlvbihhLGIsZCxlKXtpZihjLmlzRnVu
Y3Rpb24oYikpe2U9ZXx8ZDtkPWI7Yj1udWxsfXJldHVybiBjLmFqYXgoe3R5cGU6IkdFVCIsdXJs
OmEsZGF0YTpiLHN1Y2Nlc3M6ZCxkYXRhVHlwZTplfSl9LAorZ2V0U2NyaXB0OmZ1bmN0aW9uKGEs
Yil7cmV0dXJuIGMuZ2V0KGEsbnVsbCxiLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihhLGIs
ZCl7cmV0dXJuIGMuZ2V0KGEsYixkLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oYSxiLGQsZSl7aWYo
Yy5pc0Z1bmN0aW9uKGIpKXtlPWV8fGQ7ZD1iO2I9e319cmV0dXJuIGMuYWpheCh7dHlwZToiUE9T
VCIsdXJsOmEsZGF0YTpiLHN1Y2Nlc3M6ZCxkYXRhVHlwZTplfSl9LGFqYXhTZXR1cDpmdW5jdGlv
bihhKXtjLmV4dGVuZChjLmFqYXhTZXR0aW5ncyxhKX0sYWpheFNldHRpbmdzOnt1cmw6bG9jYXRp
b24uaHJlZixnbG9iYWw6dHJ1ZSx0eXBlOiJHRVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94
LXd3dy1mb3JtLXVybGVuY29kZWQiLHByb2Nlc3NEYXRhOnRydWUsYXN5bmM6dHJ1ZSx4aHI6ZnVu
Y3Rpb24oKXtyZXR1cm4gbmV3IEUuWE1MSHR0cFJlcXVlc3R9LGFjY2VwdHM6e3htbDoiYXBwbGlj
YXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIiwKK3NjcmlwdDoidGV4dC9qYXZh
c2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0
ZXh0L2phdmFzY3JpcHQiLHRleHQ6InRleHQvcGxhaW4iLF9kZWZhdWx0OiIqLyoifX0sYWpheDpm
dW5jdGlvbihhKXt2YXIgYj1jLmV4dGVuZCh0cnVlLHt9LGMuYWpheFNldHRpbmdzLGEpLGQsZSxm
LGg9Yi50eXBlLnRvVXBwZXJDYXNlKCksbD1xYi50ZXN0KGgpO2IudXJsPWIudXJsLnJlcGxhY2Uo
dWIsIiIpO2IuY29udGV4dD1hJiZhLmNvbnRleHQhPW51bGw/YS5jb250ZXh0OmI7aWYoYi5kYXRh
JiZiLnByb2Nlc3NEYXRhJiZ0eXBlb2YgYi5kYXRhIT09InN0cmluZyIpYi5kYXRhPWMucGFyYW0o
Yi5kYXRhLGIudHJhZGl0aW9uYWwpO2lmKGIuZGF0YVR5cGU9PT0ianNvbnAiKXtpZihoPT09IkdF
VCIpVC50ZXN0KGIudXJsKXx8KGIudXJsKz0oamEudGVzdChiLnVybCk/IiYiOiI/IikrKGIuanNv
bnB8fCJjYWxsYmFjayIpKyI9PyIpO2Vsc2UgaWYoIWIuZGF0YXx8CishVC50ZXN0KGIuZGF0YSkp
Yi5kYXRhPShiLmRhdGE/Yi5kYXRhKyImIjoiIikrKGIuanNvbnB8fCJjYWxsYmFjayIpKyI9PyI7
Yi5kYXRhVHlwZT0ianNvbiJ9aWYoYi5kYXRhVHlwZT09PSJqc29uIiYmKGIuZGF0YSYmVC50ZXN0
KGIuZGF0YSl8fFQudGVzdChiLnVybCkpKXtkPWIuanNvbnBDYWxsYmFja3x8Impzb25wIittYisr
O2lmKGIuZGF0YSliLmRhdGE9KGIuZGF0YSsiIikucmVwbGFjZShULCI9IitkKyIkMSIpO2IudXJs
PWIudXJsLnJlcGxhY2UoVCwiPSIrZCsiJDEiKTtiLmRhdGFUeXBlPSJzY3JpcHQiO3ZhciBrPUVb
ZF07RVtkXT1mdW5jdGlvbihtKXtpZihjLmlzRnVuY3Rpb24oaykpayhtKTtlbHNle0VbZF09Qjt0
cnl7ZGVsZXRlIEVbZF19Y2F0Y2gocCl7fX1mPW07Yy5oYW5kbGVTdWNjZXNzKGIsdyxlLGYpO2Mu
aGFuZGxlQ29tcGxldGUoYix3LGUsZik7ciYmci5yZW1vdmVDaGlsZChBKX19aWYoYi5kYXRhVHlw
ZT09PSJzY3JpcHQiJiZiLmNhY2hlPT09bnVsbCliLmNhY2hlPQorZmFsc2U7aWYoYi5jYWNoZT09
PWZhbHNlJiZsKXt2YXIgbz1jLm5vdygpLHg9Yi51cmwucmVwbGFjZShyYiwiJDFfPSIrbyk7Yi51
cmw9eCsoeD09PWIudXJsPyhqYS50ZXN0KGIudXJsKT8iJiI6Ij8iKSsiXz0iK286IiIpfWlmKGIu
ZGF0YSYmbCliLnVybCs9KGphLnRlc3QoYi51cmwpPyImIjoiPyIpK2IuZGF0YTtiLmdsb2JhbCYm
Yy5hY3RpdmUrKz09PTAmJmMuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iik7bz0obz1zYi5leGVj
KGIudXJsKSkmJihvWzFdJiZvWzFdLnRvTG93ZXJDYXNlKCkhPT1sb2NhdGlvbi5wcm90b2NvbHx8
b1syXS50b0xvd2VyQ2FzZSgpIT09bG9jYXRpb24uaG9zdCk7aWYoYi5kYXRhVHlwZT09PSJzY3Jp
cHQiJiZoPT09IkdFVCImJm8pe3ZhciByPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVsw
XXx8dC5kb2N1bWVudEVsZW1lbnQsQT10LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKGIuc2Ny
aXB0Q2hhcnNldClBLmNoYXJzZXQ9Yi5zY3JpcHRDaGFyc2V0OworQS5zcmM9Yi51cmw7aWYoIWQp
e3ZhciBDPWZhbHNlO0Eub25sb2FkPUEub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYo
IUMmJighdGhpcy5yZWFkeVN0YXRlfHx0aGlzLnJlYWR5U3RhdGU9PT0ibG9hZGVkInx8dGhpcy5y
ZWFkeVN0YXRlPT09ImNvbXBsZXRlIikpe0M9dHJ1ZTtjLmhhbmRsZVN1Y2Nlc3MoYix3LGUsZik7
Yy5oYW5kbGVDb21wbGV0ZShiLHcsZSxmKTtBLm9ubG9hZD1BLm9ucmVhZHlzdGF0ZWNoYW5nZT1u
dWxsO3ImJkEucGFyZW50Tm9kZSYmci5yZW1vdmVDaGlsZChBKX19fXIuaW5zZXJ0QmVmb3JlKEEs
ci5maXJzdENoaWxkKTtyZXR1cm4gQn12YXIgSj1mYWxzZSx3PWIueGhyKCk7aWYodyl7Yi51c2Vy
bmFtZT93Lm9wZW4oaCxiLnVybCxiLmFzeW5jLGIudXNlcm5hbWUsYi5wYXNzd29yZCk6dy5vcGVu
KGgsYi51cmwsYi5hc3luYyk7dHJ5e2lmKGIuZGF0YSE9bnVsbCYmIWx8fGEmJmEuY29udGVudFR5
cGUpdy5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLAorYi5jb250ZW50VHlwZSk7aWYo
Yi5pZk1vZGlmaWVkKXtjLmxhc3RNb2RpZmllZFtiLnVybF0mJncuc2V0UmVxdWVzdEhlYWRlcigi
SWYtTW9kaWZpZWQtU2luY2UiLGMubGFzdE1vZGlmaWVkW2IudXJsXSk7Yy5ldGFnW2IudXJsXSYm
dy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixjLmV0YWdbYi51cmxdKX1vfHx3LnNl
dFJlcXVlc3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpO3cuc2V0
UmVxdWVzdEhlYWRlcigiQWNjZXB0IixiLmRhdGFUeXBlJiZiLmFjY2VwdHNbYi5kYXRhVHlwZV0/
Yi5hY2NlcHRzW2IuZGF0YVR5cGVdKyIsICovKjsgcT0wLjAxIjpiLmFjY2VwdHMuX2RlZmF1bHQp
fWNhdGNoKEkpe31pZihiLmJlZm9yZVNlbmQmJmIuYmVmb3JlU2VuZC5jYWxsKGIuY29udGV4dCx3
LGIpPT09ZmFsc2Upe2IuZ2xvYmFsJiZjLmFjdGl2ZS0tPT09MSYmYy5ldmVudC50cmlnZ2VyKCJh
amF4U3RvcCIpO3cuYWJvcnQoKTtyZXR1cm4gZmFsc2V9Yi5nbG9iYWwmJgorYy50cmlnZ2VyR2xv
YmFsKGIsImFqYXhTZW5kIixbdyxiXSk7dmFyIEw9dy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rp
b24obSl7aWYoIXd8fHcucmVhZHlTdGF0ZT09PTB8fG09PT0iYWJvcnQiKXtKfHxjLmhhbmRsZUNv
bXBsZXRlKGIsdyxlLGYpO0o9dHJ1ZTtpZih3KXcub25yZWFkeXN0YXRlY2hhbmdlPWMubm9vcH1l
bHNlIGlmKCFKJiZ3JiYody5yZWFkeVN0YXRlPT09NHx8bT09PSJ0aW1lb3V0Iikpe0o9dHJ1ZTt3
Lm9ucmVhZHlzdGF0ZWNoYW5nZT1jLm5vb3A7ZT1tPT09InRpbWVvdXQiPyJ0aW1lb3V0IjohYy5o
dHRwU3VjY2Vzcyh3KT8iZXJyb3IiOmIuaWZNb2RpZmllZCYmYy5odHRwTm90TW9kaWZpZWQodyxi
LnVybCk/Im5vdG1vZGlmaWVkIjoic3VjY2VzcyI7dmFyIHA7aWYoZT09PSJzdWNjZXNzIil0cnl7
Zj1jLmh0dHBEYXRhKHcsYi5kYXRhVHlwZSxiKX1jYXRjaChxKXtlPSJwYXJzZXJlcnJvciI7cD1x
fWlmKGU9PT0ic3VjY2VzcyJ8fGU9PT0ibm90bW9kaWZpZWQiKWR8fAorYy5oYW5kbGVTdWNjZXNz
KGIsdyxlLGYpO2Vsc2UgYy5oYW5kbGVFcnJvcihiLHcsZSxwKTtkfHxjLmhhbmRsZUNvbXBsZXRl
KGIsdyxlLGYpO209PT0idGltZW91dCImJncuYWJvcnQoKTtpZihiLmFzeW5jKXc9bnVsbH19O3Ry
eXt2YXIgZz13LmFib3J0O3cuYWJvcnQ9ZnVuY3Rpb24oKXt3JiZGdW5jdGlvbi5wcm90b3R5cGUu
Y2FsbC5jYWxsKGcsdyk7TCgiYWJvcnQiKX19Y2F0Y2goaSl7fWIuYXN5bmMmJmIudGltZW91dD4w
JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dyYmIUomJkwoInRpbWVvdXQiKX0sYi50aW1lb3V0KTt0
cnl7dy5zZW5kKGx8fGIuZGF0YT09bnVsbD9udWxsOmIuZGF0YSl9Y2F0Y2gobil7Yy5oYW5kbGVF
cnJvcihiLHcsbnVsbCxuKTtjLmhhbmRsZUNvbXBsZXRlKGIsdyxlLGYpfWIuYXN5bmN8fEwoKTty
ZXR1cm4gd319LHBhcmFtOmZ1bmN0aW9uKGEsYil7dmFyIGQ9W10sZT1mdW5jdGlvbihoLGwpe2w9
Yy5pc0Z1bmN0aW9uKGwpP2woKTpsO2RbZC5sZW5ndGhdPQorZW5jb2RlVVJJQ29tcG9uZW50KGgp
KyI9IitlbmNvZGVVUklDb21wb25lbnQobCl9O2lmKGI9PT1CKWI9Yy5hamF4U2V0dGluZ3MudHJh
ZGl0aW9uYWw7aWYoYy5pc0FycmF5KGEpfHxhLmpxdWVyeSljLmVhY2goYSxmdW5jdGlvbigpe2Uo
dGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IodmFyIGYgaW4gYSlkYShmLGFbZl0sYixl
KTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZSh0YiwiKyIpfX0pO2MuZXh0ZW5kKHthY3RpdmU6
MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxoYW5kbGVFcnJvcjpmdW5jdGlvbihhLGIsZCxlKXth
LmVycm9yJiZhLmVycm9yLmNhbGwoYS5jb250ZXh0LGIsZCxlKTthLmdsb2JhbCYmYy50cmlnZ2Vy
R2xvYmFsKGEsImFqYXhFcnJvciIsW2IsYSxlXSl9LGhhbmRsZVN1Y2Nlc3M6ZnVuY3Rpb24oYSxi
LGQsZSl7YS5zdWNjZXNzJiZhLnN1Y2Nlc3MuY2FsbChhLmNvbnRleHQsZSxkLGIpO2EuZ2xvYmFs
JiZjLnRyaWdnZXJHbG9iYWwoYSwiYWpheFN1Y2Nlc3MiLAorW2IsYV0pfSxoYW5kbGVDb21wbGV0
ZTpmdW5jdGlvbihhLGIsZCl7YS5jb21wbGV0ZSYmYS5jb21wbGV0ZS5jYWxsKGEuY29udGV4dCxi
LGQpO2EuZ2xvYmFsJiZjLnRyaWdnZXJHbG9iYWwoYSwiYWpheENvbXBsZXRlIixbYixhXSk7YS5n
bG9iYWwmJmMuYWN0aXZlLS09PT0xJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9LHRyaWdn
ZXJHbG9iYWw6ZnVuY3Rpb24oYSxiLGQpeyhhLmNvbnRleHQmJmEuY29udGV4dC51cmw9PW51bGw/
YyhhLmNvbnRleHQpOmMuZXZlbnQpLnRyaWdnZXIoYixkKX0saHR0cFN1Y2Nlc3M6ZnVuY3Rpb24o
YSl7dHJ5e3JldHVybiFhLnN0YXR1cyYmbG9jYXRpb24ucHJvdG9jb2w9PT0iZmlsZToifHxhLnN0
YXR1cz49MjAwJiZhLnN0YXR1czwzMDB8fGEuc3RhdHVzPT09MzA0fHxhLnN0YXR1cz09PTEyMjN9
Y2F0Y2goYil7fXJldHVybiBmYWxzZX0saHR0cE5vdE1vZGlmaWVkOmZ1bmN0aW9uKGEsYil7dmFy
IGQ9YS5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLAorZT1hLmdldFJlc3BvbnNl
SGVhZGVyKCJFdGFnIik7aWYoZCljLmxhc3RNb2RpZmllZFtiXT1kO2lmKGUpYy5ldGFnW2JdPWU7
cmV0dXJuIGEuc3RhdHVzPT09MzA0fSxodHRwRGF0YTpmdW5jdGlvbihhLGIsZCl7dmFyIGU9YS5n
ZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIil8fCIiLGY9Yj09PSJ4bWwifHwhYiYmZS5p
bmRleE9mKCJ4bWwiKT49MDthPWY/YS5yZXNwb25zZVhNTDphLnJlc3BvbnNlVGV4dDtmJiZhLmRv
Y3VtZW50RWxlbWVudC5ub2RlTmFtZT09PSJwYXJzZXJlcnJvciImJmMuZXJyb3IoInBhcnNlcmVy
cm9yIik7aWYoZCYmZC5kYXRhRmlsdGVyKWE9ZC5kYXRhRmlsdGVyKGEsYik7aWYodHlwZW9mIGE9
PT0ic3RyaW5nIilpZihiPT09Impzb24ifHwhYiYmZS5pbmRleE9mKCJqc29uIik+PTApYT1jLnBh
cnNlSlNPTihhKTtlbHNlIGlmKGI9PT0ic2NyaXB0Inx8IWImJmUuaW5kZXhPZigiamF2YXNjcmlw
dCIpPj0wKWMuZ2xvYmFsRXZhbChhKTtyZXR1cm4gYX19KTsKK2lmKEUuQWN0aXZlWE9iamVjdClj
LmFqYXhTZXR0aW5ncy54aHI9ZnVuY3Rpb24oKXtpZihFLmxvY2F0aW9uLnByb3RvY29sIT09ImZp
bGU6Iil0cnl7cmV0dXJuIG5ldyBFLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGEpe310cnl7cmV0dXJu
IG5ldyBFLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX07Yy5z
dXBwb3J0LmFqYXg9ISFjLmFqYXhTZXR0aW5ncy54aHIoKTt2YXIgZWE9e30sdmI9L14oPzp0b2dn
bGV8c2hvd3xoaWRlKSQvLHdiPS9eKFsrXC1dPSk/KFtcZCsuXC1dKykoLiopJC8sYmEscGE9W1si
aGVpZ2h0IiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwicGFkZGluZ1RvcCIsInBhZGRpbmdC
b3R0b20iXSxbIndpZHRoIiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwicGFkZGluZ0xlZnQi
LCJwYWRkaW5nUmlnaHQiXSxbIm9wYWNpdHkiXV07Yy5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24o
YSxiLGQpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlzLmFuaW1hdGUoUygic2hvdyIsCiszKSxhLGIs
ZCk7ZWxzZXtkPTA7Zm9yKHZhciBlPXRoaXMubGVuZ3RoO2Q8ZTtkKyspe2E9dGhpc1tkXTtiPWEu
c3R5bGUuZGlzcGxheTtpZighYy5kYXRhKGEsIm9sZGRpc3BsYXkiKSYmYj09PSJub25lIiliPWEu
c3R5bGUuZGlzcGxheT0iIjtiPT09IiImJmMuY3NzKGEsImRpc3BsYXkiKT09PSJub25lIiYmYy5k
YXRhKGEsIm9sZGRpc3BsYXkiLHFhKGEubm9kZU5hbWUpKX1mb3IoZD0wO2Q8ZTtkKyspe2E9dGhp
c1tkXTtiPWEuc3R5bGUuZGlzcGxheTtpZihiPT09IiJ8fGI9PT0ibm9uZSIpYS5zdHlsZS5kaXNw
bGF5PWMuZGF0YShhLCJvbGRkaXNwbGF5Iil8fCIifXJldHVybiB0aGlzfX0saGlkZTpmdW5jdGlv
bihhLGIsZCl7aWYoYXx8YT09PTApcmV0dXJuIHRoaXMuYW5pbWF0ZShTKCJoaWRlIiwzKSxhLGIs
ZCk7ZWxzZXthPTA7Zm9yKGI9dGhpcy5sZW5ndGg7YTxiO2ErKyl7ZD1jLmNzcyh0aGlzW2FdLCJk
aXNwbGF5Iik7ZCE9PSJub25lIiYmYy5kYXRhKHRoaXNbYV0sIm9sZGRpc3BsYXkiLAorZCl9Zm9y
KGE9MDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJuIHRoaXN9fSxf
dG9nZ2xlOmMuZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihhLGIsZCl7dmFyIGU9dHlwZW9mIGE9
PT0iYm9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpJiZjLmlzRnVuY3Rpb24oYikpdGhpcy5fdG9n
Z2xlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlbHNlIGE9PW51bGx8fGU/dGhpcy5lYWNoKGZ1bmN0
aW9uKCl7dmFyIGY9ZT9hOmModGhpcykuaXMoIjpoaWRkZW4iKTtjKHRoaXMpW2Y/InNob3ciOiJo
aWRlIl0oKX0pOnRoaXMuYW5pbWF0ZShTKCJ0b2dnbGUiLDMpLGEsYixkKTtyZXR1cm4gdGhpc30s
ZmFkZVRvOmZ1bmN0aW9uKGEsYixkLGUpe3JldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNz
cygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxkLGUpfSxh
bmltYXRlOmZ1bmN0aW9uKGEsYixkLGUpe3ZhciBmPWMuc3BlZWQoYiwKK2QsZSk7aWYoYy5pc0Vt
cHR5T2JqZWN0KGEpKXJldHVybiB0aGlzLmVhY2goZi5jb21wbGV0ZSk7cmV0dXJuIHRoaXNbZi5x
dWV1ZT09PWZhbHNlPyJlYWNoIjoicXVldWUiXShmdW5jdGlvbigpe3ZhciBoPWMuZXh0ZW5kKHt9
LGYpLGwsaz10aGlzLm5vZGVUeXBlPT09MSxvPWsmJmModGhpcykuaXMoIjpoaWRkZW4iKSx4PXRo
aXM7Zm9yKGwgaW4gYSl7dmFyIHI9Yy5jYW1lbENhc2UobCk7aWYobCE9PXIpe2Fbcl09YVtsXTtk
ZWxldGUgYVtsXTtsPXJ9aWYoYVtsXT09PSJoaWRlIiYmb3x8YVtsXT09PSJzaG93IiYmIW8pcmV0
dXJuIGguY29tcGxldGUuY2FsbCh0aGlzKTtpZihrJiYobD09PSJoZWlnaHQifHxsPT09IndpZHRo
Iikpe2gub3ZlcmZsb3c9W3RoaXMuc3R5bGUub3ZlcmZsb3csdGhpcy5zdHlsZS5vdmVyZmxvd1gs
dGhpcy5zdHlsZS5vdmVyZmxvd1ldO2lmKGMuY3NzKHRoaXMsImRpc3BsYXkiKT09PSJpbmxpbmUi
JiZjLmNzcyh0aGlzLCJmbG9hdCIpPT09Im5vbmUiKWlmKGMuc3VwcG9ydC5pbmxpbmVCbG9ja05l
ZWRzTGF5b3V0KWlmKHFhKHRoaXMubm9kZU5hbWUpPT09CisiaW5saW5lIil0aGlzLnN0eWxlLmRp
c3BsYXk9ImlubGluZS1ibG9jayI7ZWxzZXt0aGlzLnN0eWxlLmRpc3BsYXk9ImlubGluZSI7dGhp
cy5zdHlsZS56b29tPTF9ZWxzZSB0aGlzLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayJ9aWYo
Yy5pc0FycmF5KGFbbF0pKXsoaC5zcGVjaWFsRWFzaW5nPWguc3BlY2lhbEVhc2luZ3x8e30pW2xd
PWFbbF1bMV07YVtsXT1hW2xdWzBdfX1pZihoLm92ZXJmbG93IT1udWxsKXRoaXMuc3R5bGUub3Zl
cmZsb3c9ImhpZGRlbiI7aC5jdXJBbmltPWMuZXh0ZW5kKHt9LGEpO2MuZWFjaChhLGZ1bmN0aW9u
KEEsQyl7dmFyIEo9bmV3IGMuZngoeCxoLEEpO2lmKHZiLnRlc3QoQykpSltDPT09InRvZ2dsZSI/
bz8ic2hvdyI6ImhpZGUiOkNdKGEpO2Vsc2V7dmFyIHc9d2IuZXhlYyhDKSxJPUouY3VyKCl8fDA7
aWYodyl7dmFyIEw9cGFyc2VGbG9hdCh3WzJdKSxnPXdbM118fCJweCI7aWYoZyE9PSJweCIpe2Mu
c3R5bGUoeCxBLChMfHwxKStnKTtJPShMfHwKKzEpL0ouY3VyKCkqSTtjLnN0eWxlKHgsQSxJK2cp
fWlmKHdbMV0pTD0od1sxXT09PSItPSI/LTE6MSkqTCtJO0ouY3VzdG9tKEksTCxnKX1lbHNlIEou
Y3VzdG9tKEksQywiIil9fSk7cmV0dXJuIHRydWV9KX0sc3RvcDpmdW5jdGlvbihhLGIpe3ZhciBk
PWMudGltZXJzO2EmJnRoaXMucXVldWUoW10pO3RoaXMuZWFjaChmdW5jdGlvbigpe2Zvcih2YXIg
ZT1kLmxlbmd0aC0xO2U+PTA7ZS0tKWlmKGRbZV0uZWxlbT09PXRoaXMpe2ImJmRbZV0odHJ1ZSk7
ZC5zcGxpY2UoZSwxKX19KTtifHx0aGlzLmRlcXVldWUoKTtyZXR1cm4gdGhpc319KTtjLmVhY2go
e3NsaWRlRG93bjpTKCJzaG93IiwxKSxzbGlkZVVwOlMoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOlMo
InRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlk
ZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbihhLGIpe2MuZm5bYV09
ZnVuY3Rpb24oZCxlLGYpe3JldHVybiB0aGlzLmFuaW1hdGUoYiwKK2QsZSxmKX19KTtjLmV4dGVu
ZCh7c3BlZWQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEmJnR5cGVvZiBhPT09Im9iamVjdCI/Yy5l
eHRlbmQoe30sYSk6e2NvbXBsZXRlOmR8fCFkJiZifHxjLmlzRnVuY3Rpb24oYSkmJmEsZHVyYXRp
b246YSxlYXNpbmc6ZCYmYnx8YiYmIWMuaXNGdW5jdGlvbihiKSYmYn07ZS5kdXJhdGlvbj1jLmZ4
Lm9mZj8wOnR5cGVvZiBlLmR1cmF0aW9uPT09Im51bWJlciI/ZS5kdXJhdGlvbjplLmR1cmF0aW9u
IGluIGMuZnguc3BlZWRzP2MuZnguc3BlZWRzW2UuZHVyYXRpb25dOmMuZnguc3BlZWRzLl9kZWZh
dWx0O2Uub2xkPWUuY29tcGxldGU7ZS5jb21wbGV0ZT1mdW5jdGlvbigpe2UucXVldWUhPT1mYWxz
ZSYmYyh0aGlzKS5kZXF1ZXVlKCk7Yy5pc0Z1bmN0aW9uKGUub2xkKSYmZS5vbGQuY2FsbCh0aGlz
KX07cmV0dXJuIGV9LGVhc2luZzp7bGluZWFyOmZ1bmN0aW9uKGEsYixkLGUpe3JldHVybiBkK2Uq
YX0sc3dpbmc6ZnVuY3Rpb24oYSxiLGQsZSl7cmV0dXJuKC1NYXRoLmNvcyhhKgorTWF0aC5QSSkv
MiswLjUpKmUrZH19LHRpbWVyczpbXSxmeDpmdW5jdGlvbihhLGIsZCl7dGhpcy5vcHRpb25zPWI7
dGhpcy5lbGVtPWE7dGhpcy5wcm9wPWQ7aWYoIWIub3JpZyliLm9yaWc9e319fSk7Yy5meC5wcm90
b3R5cGU9e3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMu
c3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKTsoYy5meC5zdGVwW3RoaXMucHJvcF18
fGMuZnguc3RlcC5fZGVmYXVsdCkodGhpcyl9LGN1cjpmdW5jdGlvbigpe2lmKHRoaXMuZWxlbVt0
aGlzLnByb3BdIT1udWxsJiYoIXRoaXMuZWxlbS5zdHlsZXx8dGhpcy5lbGVtLnN0eWxlW3RoaXMu
cHJvcF09PW51bGwpKXJldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXTt2YXIgYT1wYXJzZUZsb2F0
KGMuY3NzKHRoaXMuZWxlbSx0aGlzLnByb3ApKTtyZXR1cm4gYSYmYT4tMUU0P2E6MH0sY3VzdG9t
OmZ1bmN0aW9uKGEsYixkKXtmdW5jdGlvbiBlKGwpe3JldHVybiBmLnN0ZXAobCl9Cit2YXIgZj10
aGlzLGg9Yy5meDt0aGlzLnN0YXJ0VGltZT1jLm5vdygpO3RoaXMuc3RhcnQ9YTt0aGlzLmVuZD1i
O3RoaXMudW5pdD1kfHx0aGlzLnVuaXR8fCJweCI7dGhpcy5ub3c9dGhpcy5zdGFydDt0aGlzLnBv
cz10aGlzLnN0YXRlPTA7ZS5lbGVtPXRoaXMuZWxlbTtpZihlKCkmJmMudGltZXJzLnB1c2goZSkm
JiFiYSliYT1zZXRJbnRlcnZhbChoLnRpY2ssaC5pbnRlcnZhbCl9LHNob3c6ZnVuY3Rpb24oKXt0
aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7
dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PT0id2lkdGgifHx0
aGlzLnByb3A9PT0iaGVpZ2h0Ij8xOjAsdGhpcy5jdXIoKSk7Yyh0aGlzLmVsZW0pLnNob3coKX0s
aGlkZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF09Yy5zdHlsZSh0aGlz
LmVsZW0sdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlOwordGhpcy5jdXN0b20odGhp
cy5jdXIoKSwwKX0sc3RlcDpmdW5jdGlvbihhKXt2YXIgYj1jLm5vdygpLGQ9dHJ1ZTtpZihhfHxi
Pj10aGlzLm9wdGlvbnMuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe3RoaXMubm93PXRoaXMuZW5k
O3RoaXMucG9zPXRoaXMuc3RhdGU9MTt0aGlzLnVwZGF0ZSgpO3RoaXMub3B0aW9ucy5jdXJBbmlt
W3RoaXMucHJvcF09dHJ1ZTtmb3IodmFyIGUgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0paWYodGhp
cy5vcHRpb25zLmN1ckFuaW1bZV0hPT10cnVlKWQ9ZmFsc2U7aWYoZCl7aWYodGhpcy5vcHRpb25z
Lm92ZXJmbG93IT1udWxsJiYhYy5zdXBwb3J0LnNocmlua1dyYXBCbG9ja3Mpe3ZhciBmPXRoaXMu
ZWxlbSxoPXRoaXMub3B0aW9ucztjLmVhY2goWyIiLCJYIiwiWSJdLGZ1bmN0aW9uKGssbyl7Zi5z
dHlsZVsib3ZlcmZsb3ciK29dPWgub3ZlcmZsb3dba119KX10aGlzLm9wdGlvbnMuaGlkZSYmYyh0
aGlzLmVsZW0pLmhpZGUoKTtpZih0aGlzLm9wdGlvbnMuaGlkZXx8Cit0aGlzLm9wdGlvbnMuc2hv
dylmb3IodmFyIGwgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0pYy5zdHlsZSh0aGlzLmVsZW0sbCx0
aGlzLm9wdGlvbnMub3JpZ1tsXSk7dGhpcy5vcHRpb25zLmNvbXBsZXRlLmNhbGwodGhpcy5lbGVt
KX1yZXR1cm4gZmFsc2V9ZWxzZXthPWItdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1hL3RoaXMu
b3B0aW9ucy5kdXJhdGlvbjtiPXRoaXMub3B0aW9ucy5lYXNpbmd8fChjLmVhc2luZy5zd2luZz8i
c3dpbmciOiJsaW5lYXIiKTt0aGlzLnBvcz1jLmVhc2luZ1t0aGlzLm9wdGlvbnMuc3BlY2lhbEVh
c2luZyYmdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmdbdGhpcy5wcm9wXXx8Yl0odGhpcy5zdGF0
ZSxhLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pO3RoaXMubm93PXRoaXMuc3RhcnQrKHRoaXMu
ZW5kLXRoaXMuc3RhcnQpKnRoaXMucG9zO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtjLmV4
dGVuZChjLmZ4LHt0aWNrOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPQorYy50aW1lcnMsYj0wO2I8YS5s
ZW5ndGg7YisrKWFbYl0oKXx8YS5zcGxpY2UoYi0tLDEpO2EubGVuZ3RofHxjLmZ4LnN0b3AoKX0s
aW50ZXJ2YWw6MTMsc3RvcDpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoYmEpO2JhPW51bGx9LHNw
ZWVkczp7c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxzdGVwOntvcGFjaXR5OmZ1bmN0
aW9uKGEpe2Muc3R5bGUoYS5lbGVtLCJvcGFjaXR5IixhLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9u
KGEpe2lmKGEuZWxlbS5zdHlsZSYmYS5lbGVtLnN0eWxlW2EucHJvcF0hPW51bGwpYS5lbGVtLnN0
eWxlW2EucHJvcF09KGEucHJvcD09PSJ3aWR0aCJ8fGEucHJvcD09PSJoZWlnaHQiP01hdGgubWF4
KDAsYS5ub3cpOmEubm93KSthLnVuaXQ7ZWxzZSBhLmVsZW1bYS5wcm9wXT1hLm5vd319fSk7aWYo
Yy5leHByJiZjLmV4cHIuZmlsdGVycyljLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihh
KXtyZXR1cm4gYy5ncmVwKGMudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09CitiLmVsZW19
KS5sZW5ndGh9O3ZhciB4Yj0vXnQoPzphYmxlfGR8aCkkL2ksSWE9L14oPzpib2R5fGh0bWwpJC9p
O2MuZm4ub2Zmc2V0PSJnZXRCb3VuZGluZ0NsaWVudFJlY3QiaW4gdC5kb2N1bWVudEVsZW1lbnQ/
ZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXSxkO2lmKGEpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv
bihsKXtjLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLGwpfSk7aWYoIWJ8fCFiLm93bmVyRG9jdW1l
bnQpcmV0dXJuIG51bGw7aWYoYj09PWIub3duZXJEb2N1bWVudC5ib2R5KXJldHVybiBjLm9mZnNl
dC5ib2R5T2Zmc2V0KGIpO3RyeXtkPWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2goZSl7
fXZhciBmPWIub3duZXJEb2N1bWVudCxoPWYuZG9jdW1lbnRFbGVtZW50O2lmKCFkfHwhYy5jb250
YWlucyhoLGIpKXJldHVybiBkfHx7dG9wOjAsbGVmdDowfTtiPWYuYm9keTtmPWZhKGYpO3JldHVy
bnt0b3A6ZC50b3ArKGYucGFnZVlPZmZzZXR8fGMuc3VwcG9ydC5ib3hNb2RlbCYmCitoLnNjcm9s
bFRvcHx8Yi5zY3JvbGxUb3ApLShoLmNsaWVudFRvcHx8Yi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5s
ZWZ0KyhmLnBhZ2VYT2Zmc2V0fHxjLnN1cHBvcnQuYm94TW9kZWwmJmguc2Nyb2xsTGVmdHx8Yi5z
Y3JvbGxMZWZ0KS0oaC5jbGllbnRMZWZ0fHxiLmNsaWVudExlZnR8fDApfX06ZnVuY3Rpb24oYSl7
dmFyIGI9dGhpc1swXTtpZihhKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oeCl7Yy5vZmZzZXQu
c2V0T2Zmc2V0KHRoaXMsYSx4KX0pO2lmKCFifHwhYi5vd25lckRvY3VtZW50KXJldHVybiBudWxs
O2lmKGI9PT1iLm93bmVyRG9jdW1lbnQuYm9keSlyZXR1cm4gYy5vZmZzZXQuYm9keU9mZnNldChi
KTtjLm9mZnNldC5pbml0aWFsaXplKCk7dmFyIGQsZT1iLm9mZnNldFBhcmVudCxmPWIub3duZXJE
b2N1bWVudCxoPWYuZG9jdW1lbnRFbGVtZW50LGw9Zi5ib2R5O2Q9KGY9Zi5kZWZhdWx0Vmlldyk/
Zi5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7Citmb3IodmFyIGs9Yi5v
ZmZzZXRUb3Asbz1iLm9mZnNldExlZnQ7KGI9Yi5wYXJlbnROb2RlKSYmYiE9PWwmJmIhPT1oOyl7
aWYoYy5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uJiZkLnBvc2l0aW9uPT09ImZpeGVkIili
cmVhaztkPWY/Zi5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7ay09Yi5z
Y3JvbGxUb3A7by09Yi5zY3JvbGxMZWZ0O2lmKGI9PT1lKXtrKz1iLm9mZnNldFRvcDtvKz1iLm9m
ZnNldExlZnQ7aWYoYy5vZmZzZXQuZG9lc05vdEFkZEJvcmRlciYmIShjLm9mZnNldC5kb2VzQWRk
Qm9yZGVyRm9yVGFibGVBbmRDZWxscyYmeGIudGVzdChiLm5vZGVOYW1lKSkpe2srPXBhcnNlRmxv
YXQoZC5ib3JkZXJUb3BXaWR0aCl8fDA7bys9cGFyc2VGbG9hdChkLmJvcmRlckxlZnRXaWR0aCl8
fDB9ZT1iLm9mZnNldFBhcmVudH1pZihjLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxv
d05vdFZpc2libGUmJmQub3ZlcmZsb3chPT0idmlzaWJsZSIpe2srPQorcGFyc2VGbG9hdChkLmJv
cmRlclRvcFdpZHRoKXx8MDtvKz1wYXJzZUZsb2F0KGQuYm9yZGVyTGVmdFdpZHRoKXx8MH1kPWR9
aWYoZC5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGQucG9zaXRpb249PT0ic3RhdGljIil7ays9bC5v
ZmZzZXRUb3A7bys9bC5vZmZzZXRMZWZ0fWlmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlv
biYmZC5wb3NpdGlvbj09PSJmaXhlZCIpe2srPU1hdGgubWF4KGguc2Nyb2xsVG9wLGwuc2Nyb2xs
VG9wKTtvKz1NYXRoLm1heChoLnNjcm9sbExlZnQsbC5zY3JvbGxMZWZ0KX1yZXR1cm57dG9wOmss
bGVmdDpvfX07Yy5vZmZzZXQ9e2luaXRpYWxpemU6ZnVuY3Rpb24oKXt2YXIgYT10LmJvZHksYj10
LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQsZSxmLGg9cGFyc2VGbG9hdChjLmNzcyhhLCJtYXJnaW5U
b3AiKSl8fDA7Yy5leHRlbmQoYi5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0
OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsCitoZWlnaHQ6IjFweCIsdmlzaWJpbGl0
eToiaGlkZGVuIn0pO2IuaW5uZXJIVE1MPSI8ZGl2IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt0
b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0
aDoxcHg7aGVpZ2h0OjFweDsnPjxkaXY+PC9kaXY+PC9kaXY+PHRhYmxlIHN0eWxlPSdwb3NpdGlv
bjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3Bh
ZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2lu
Zz0nMCc+PHRyPjx0ZD48L3RkPjwvdHI+PC90YWJsZT4iO2EuaW5zZXJ0QmVmb3JlKGIsYS5maXJz
dENoaWxkKTtkPWIuZmlyc3RDaGlsZDtlPWQuZmlyc3RDaGlsZDtmPWQubmV4dFNpYmxpbmcuZmly
c3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJvcmRlcj1lLm9mZnNldFRvcCE9PTU7
dGhpcy5kb2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxscz0KK2Yub2Zmc2V0VG9wPT09NTtlLnN0
eWxlLnBvc2l0aW9uPSJmaXhlZCI7ZS5zdHlsZS50b3A9IjIwcHgiO3RoaXMuc3VwcG9ydHNGaXhl
ZFBvc2l0aW9uPWUub2Zmc2V0VG9wPT09MjB8fGUub2Zmc2V0VG9wPT09MTU7ZS5zdHlsZS5wb3Np
dGlvbj1lLnN0eWxlLnRvcD0iIjtkLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Quc3R5bGUucG9z
aXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJs
ZT1lLm9mZnNldFRvcD09PS01O3RoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9
YS5vZmZzZXRUb3AhPT1oO2EucmVtb3ZlQ2hpbGQoYik7Yy5vZmZzZXQuaW5pdGlhbGl6ZT1jLm5v
b3B9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5vZmZzZXRUb3AsZD1hLm9mZnNldExl
ZnQ7Yy5vZmZzZXQuaW5pdGlhbGl6ZSgpO2lmKGMub2Zmc2V0LmRvZXNOb3RJbmNsdWRlTWFyZ2lu
SW5Cb2R5T2Zmc2V0KXtiKz1wYXJzZUZsb2F0KGMuY3NzKGEsCisibWFyZ2luVG9wIikpfHwwO2Qr
PXBhcnNlRmxvYXQoYy5jc3MoYSwibWFyZ2luTGVmdCIpKXx8MH1yZXR1cm57dG9wOmIsbGVmdDpk
fX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixkKXt2YXIgZT1jLmNzcyhhLCJwb3NpdGlvbiIpO2lm
KGU9PT0ic3RhdGljIilhLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7dmFyIGY9YyhhKSxoPWYu
b2Zmc2V0KCksbD1jLmNzcyhhLCJ0b3AiKSxrPWMuY3NzKGEsImxlZnQiKSxvPWU9PT0iYWJzb2x1
dGUiJiZjLmluQXJyYXkoImF1dG8iLFtsLGtdKT4tMTtlPXt9O3ZhciB4PXt9O2lmKG8peD1mLnBv
c2l0aW9uKCk7bD1vP3gudG9wOnBhcnNlSW50KGwsMTApfHwwO2s9bz94LmxlZnQ6cGFyc2VJbnQo
aywxMCl8fDA7aWYoYy5pc0Z1bmN0aW9uKGIpKWI9Yi5jYWxsKGEsZCxoKTtpZihiLnRvcCE9bnVs
bCllLnRvcD1iLnRvcC1oLnRvcCtsO2lmKGIubGVmdCE9bnVsbCllLmxlZnQ9Yi5sZWZ0LWgubGVm
dCtrOyJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLAorZSk6Zi5jc3MoZSl9fTtjLmZuLmV4dGVu
ZCh7cG9zaXRpb246ZnVuY3Rpb24oKXtpZighdGhpc1swXSlyZXR1cm4gbnVsbDt2YXIgYT10aGlz
WzBdLGI9dGhpcy5vZmZzZXRQYXJlbnQoKSxkPXRoaXMub2Zmc2V0KCksZT1JYS50ZXN0KGJbMF0u
bm9kZU5hbWUpP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCk7ZC50b3AtPXBhcnNlRmxvYXQoYy5j
c3MoYSwibWFyZ2luVG9wIikpfHwwO2QubGVmdC09cGFyc2VGbG9hdChjLmNzcyhhLCJtYXJnaW5M
ZWZ0IikpfHwwO2UudG9wKz1wYXJzZUZsb2F0KGMuY3NzKGJbMF0sImJvcmRlclRvcFdpZHRoIikp
fHwwO2UubGVmdCs9cGFyc2VGbG9hdChjLmNzcyhiWzBdLCJib3JkZXJMZWZ0V2lkdGgiKSl8fDA7
cmV0dXJue3RvcDpkLnRvcC1lLnRvcCxsZWZ0OmQubGVmdC1lLmxlZnR9fSxvZmZzZXRQYXJlbnQ6
ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5vZmZz
ZXRQYXJlbnR8fHQuYm9keTthJiYhSWEudGVzdChhLm5vZGVOYW1lKSYmCitjLmNzcyhhLCJwb3Np
dGlvbiIpPT09InN0YXRpYyI7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF9KX19KTtjLmVhY2go
WyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oYSxiKXt2YXIgZD0ic2Nyb2xsIitiO2MuZm5bZF09ZnVu
Y3Rpb24oZSl7dmFyIGY9dGhpc1swXSxoO2lmKCFmKXJldHVybiBudWxsO2lmKGUhPT1CKXJldHVy
biB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihoPWZhKHRoaXMpKWguc2Nyb2xsVG8oIWE/ZTpjKGgp
LnNjcm9sbExlZnQoKSxhP2U6YyhoKS5zY3JvbGxUb3AoKSk7ZWxzZSB0aGlzW2RdPWV9KTtlbHNl
IHJldHVybihoPWZhKGYpKT8icGFnZVhPZmZzZXQiaW4gaD9oW2E/InBhZ2VZT2Zmc2V0IjoicGFn
ZVhPZmZzZXQiXTpjLnN1cHBvcnQuYm94TW9kZWwmJmguZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
W2RdfHxoLmRvY3VtZW50LmJvZHlbZF06ZltkXX19KTtjLmVhY2goWyJIZWlnaHQiLCJXaWR0aCJd
LGZ1bmN0aW9uKGEsYil7dmFyIGQ9Yi50b0xvd2VyQ2FzZSgpOworYy5mblsiaW5uZXIiK2JdPWZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXNbMF0/cGFyc2VGbG9hdChjLmNzcyh0aGlzWzBdLGQsInBhZGRp
bmciKSk6bnVsbH07Yy5mblsib3V0ZXIiK2JdPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzWzBdP3Bh
cnNlRmxvYXQoYy5jc3ModGhpc1swXSxkLGU/Im1hcmdpbiI6ImJvcmRlciIpKTpudWxsfTtjLmZu
W2RdPWZ1bmN0aW9uKGUpe3ZhciBmPXRoaXNbMF07aWYoIWYpcmV0dXJuIGU9PW51bGw/bnVsbDp0
aGlzO2lmKGMuaXNGdW5jdGlvbihlKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGwpe3ZhciBr
PWModGhpcyk7a1tkXShlLmNhbGwodGhpcyxsLGtbZF0oKSkpfSk7aWYoYy5pc1dpbmRvdyhmKSly
ZXR1cm4gZi5kb2N1bWVudC5jb21wYXRNb2RlPT09IkNTUzFDb21wYXQiJiZmLmRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudFsiY2xpZW50IitiXXx8Zi5kb2N1bWVudC5ib2R5WyJjbGllbnQiK2JdO2Vs
c2UgaWYoZi5ub2RlVHlwZT09PTkpcmV0dXJuIE1hdGgubWF4KGYuZG9jdW1lbnRFbGVtZW50WyJj
bGllbnQiKworYl0sZi5ib2R5WyJzY3JvbGwiK2JdLGYuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwi
K2JdLGYuYm9keVsib2Zmc2V0IitiXSxmLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IitiXSk7ZWxz
ZSBpZihlPT09Qil7Zj1jLmNzcyhmLGQpO3ZhciBoPXBhcnNlRmxvYXQoZik7cmV0dXJuIGMuaXNO
YU4oaCk/ZjpofWVsc2UgcmV0dXJuIHRoaXMuY3NzKGQsdHlwZW9mIGU9PT0ic3RyaW5nIj9lOmUr
InB4Iil9fSl9KSh3aW5kb3cpOwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20ubWluLmpz
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvanF1
ZXJ5LXVpLTEuOC4xMC5jdXN0b20ubWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi43ZDRmZjFjZWMxMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL2pxdWVyeS11aS0xLjguMTAuY3Vz
dG9tLm1pbi5qcwpAQCAtMCwwICsxLDc4MiBAQAorLyohCisgKiBqUXVlcnkgVUkgMS44LjEwCisg
KgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fi
b3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGlj
ZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3Mu
anF1ZXJ5LmNvbS9VSQorICovCisoZnVuY3Rpb24oYyxqKXtmdW5jdGlvbiBrKGEpe3JldHVybiFj
KGEpLnBhcmVudHMoKS5hbmRTZWxmKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIGMuY3VyQ1NT
KHRoaXMsInZpc2liaWxpdHkiKT09PSJoaWRkZW4ifHxjLmV4cHIuZmlsdGVycy5oaWRkZW4odGhp
cyl9KS5sZW5ndGh9Yy51aT1jLnVpfHx7fTtpZighYy51aS52ZXJzaW9uKXtjLmV4dGVuZChjLnVp
LHt2ZXJzaW9uOiIxLjguMTAiLGtleUNvZGU6e0FMVDoxOCxCQUNLU1BBQ0U6OCxDQVBTX0xPQ0s6
MjAsQ09NTUE6MTg4LENPTU1BTkQ6OTEsQ09NTUFORF9MRUZUOjkxLENPTU1BTkRfUklHSFQ6OTMs
Q09OVFJPTDoxNyxERUxFVEU6NDYsRE9XTjo0MCxFTkQ6MzUsRU5URVI6MTMsRVNDQVBFOjI3LEhP
TUU6MzYsSU5TRVJUOjQ1LExFRlQ6MzcsTUVOVTo5MyxOVU1QQURfQUREOjEwNyxOVU1QQURfREVD
SU1BTDoxMTAsTlVNUEFEX0RJVklERToxMTEsTlVNUEFEX0VOVEVSOjEwOCxOVU1QQURfTVVMVElQ
TFk6MTA2LAorTlVNUEFEX1NVQlRSQUNUOjEwOSxQQUdFX0RPV046MzQsUEFHRV9VUDozMyxQRVJJ
T0Q6MTkwLFJJR0hUOjM5LFNISUZUOjE2LFNQQUNFOjMyLFRBQjo5LFVQOjM4LFdJTkRPV1M6OTF9
fSk7Yy5mbi5leHRlbmQoe19mb2N1czpjLmZuLmZvY3VzLGZvY3VzOmZ1bmN0aW9uKGEsYil7cmV0
dXJuIHR5cGVvZiBhPT09Im51bWJlciI/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9dGhpcztz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YyhkKS5mb2N1cygpO2ImJmIuY2FsbChkKX0sYSl9KTp0aGlz
Ll9mb2N1cy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHNjcm9sbFBhcmVudDpmdW5jdGlvbigpe3Zh
ciBhO2E9Yy5icm93c2VyLm1zaWUmJi8oc3RhdGljfHJlbGF0aXZlKS8udGVzdCh0aGlzLmNzcygi
cG9zaXRpb24iKSl8fC9hYnNvbHV0ZS8udGVzdCh0aGlzLmNzcygicG9zaXRpb24iKSk/dGhpcy5w
YXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuLyhyZWxhdGl2ZXxhYnNvbHV0ZXxmaXhl
ZCkvLnRlc3QoYy5jdXJDU1ModGhpcywKKyJwb3NpdGlvbiIsMSkpJiYvKGF1dG98c2Nyb2xsKS8u
dGVzdChjLmN1ckNTUyh0aGlzLCJvdmVyZmxvdyIsMSkrYy5jdXJDU1ModGhpcywib3ZlcmZsb3ct
eSIsMSkrYy5jdXJDU1ModGhpcywib3ZlcmZsb3cteCIsMSkpfSkuZXEoMCk6dGhpcy5wYXJlbnRz
KCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuLyhhdXRvfHNjcm9sbCkvLnRlc3QoYy5jdXJDU1Mo
dGhpcywib3ZlcmZsb3ciLDEpK2MuY3VyQ1NTKHRoaXMsIm92ZXJmbG93LXkiLDEpK2MuY3VyQ1NT
KHRoaXMsIm92ZXJmbG93LXgiLDEpKX0pLmVxKDApO3JldHVybi9maXhlZC8udGVzdCh0aGlzLmNz
cygicG9zaXRpb24iKSl8fCFhLmxlbmd0aD9jKGRvY3VtZW50KTphfSx6SW5kZXg6ZnVuY3Rpb24o
YSl7aWYoYSE9PWopcmV0dXJuIHRoaXMuY3NzKCJ6SW5kZXgiLGEpO2lmKHRoaXMubGVuZ3RoKXth
PWModGhpc1swXSk7Zm9yKHZhciBiO2EubGVuZ3RoJiZhWzBdIT09ZG9jdW1lbnQ7KXtiPWEuY3Nz
KCJwb3NpdGlvbiIpOworaWYoYj09PSJhYnNvbHV0ZSJ8fGI9PT0icmVsYXRpdmUifHxiPT09ImZp
eGVkIil7Yj1wYXJzZUludChhLmNzcygiekluZGV4IiksMTApO2lmKCFpc05hTihiKSYmYiE9PTAp
cmV0dXJuIGJ9YT1hLnBhcmVudCgpfX1yZXR1cm4gMH0sZGlzYWJsZVNlbGVjdGlvbjpmdW5jdGlv
bigpe3JldHVybiB0aGlzLmJpbmQoKGMuc3VwcG9ydC5zZWxlY3RzdGFydD8ic2VsZWN0c3RhcnQi
OiJtb3VzZWRvd24iKSsiLnVpLWRpc2FibGVTZWxlY3Rpb24iLGZ1bmN0aW9uKGEpe2EucHJldmVu
dERlZmF1bHQoKX0pfSxlbmFibGVTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmJp
bmQoIi51aS1kaXNhYmxlU2VsZWN0aW9uIil9fSk7Yy5lYWNoKFsiV2lkdGgiLCJIZWlnaHQiXSxm
dW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoZixnLGwsbSl7Yy5lYWNoKGUsZnVuY3Rpb24oKXtnLT1w
YXJzZUZsb2F0KGMuY3VyQ1NTKGYsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwO2lmKGwpZy09cGFy
c2VGbG9hdChjLmN1ckNTUyhmLAorImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MDtpZiht
KWctPXBhcnNlRmxvYXQoYy5jdXJDU1MoZiwibWFyZ2luIit0aGlzLHRydWUpKXx8MH0pO3JldHVy
biBnfXZhciBlPWI9PT0iV2lkdGgiP1siTGVmdCIsIlJpZ2h0Il06WyJUb3AiLCJCb3R0b20iXSxo
PWIudG9Mb3dlckNhc2UoKSxpPXtpbm5lcldpZHRoOmMuZm4uaW5uZXJXaWR0aCxpbm5lckhlaWdo
dDpjLmZuLmlubmVySGVpZ2h0LG91dGVyV2lkdGg6Yy5mbi5vdXRlcldpZHRoLG91dGVySGVpZ2h0
OmMuZm4ub3V0ZXJIZWlnaHR9O2MuZm5bImlubmVyIitiXT1mdW5jdGlvbihmKXtpZihmPT09aily
ZXR1cm4gaVsiaW5uZXIiK2JdLmNhbGwodGhpcyk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigp
e2ModGhpcykuY3NzKGgsZCh0aGlzLGYpKyJweCIpfSl9O2MuZm5bIm91dGVyIitiXT1mdW5jdGlv
bihmLGcpe2lmKHR5cGVvZiBmIT09Im51bWJlciIpcmV0dXJuIGlbIm91dGVyIitiXS5jYWxsKHRo
aXMsZik7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2ModGhpcykuY3NzKGgsCitkKHRoaXMs
Zix0cnVlLGcpKyJweCIpfSl9fSk7Yy5leHRlbmQoYy5leHByWyI6Il0se2RhdGE6ZnVuY3Rpb24o
YSxiLGQpe3JldHVybiEhYy5kYXRhKGEsZFszXSl9LGZvY3VzYWJsZTpmdW5jdGlvbihhKXt2YXIg
Yj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksZD1jLmF0dHIoYSwidGFiaW5kZXgiKTtpZigiYXJl
YSI9PT1iKXtiPWEucGFyZW50Tm9kZTtkPWIubmFtZTtpZighYS5ocmVmfHwhZHx8Yi5ub2RlTmFt
ZS50b0xvd2VyQ2FzZSgpIT09Im1hcCIpcmV0dXJuIGZhbHNlO2E9YygiaW1nW3VzZW1hcD0jIitk
KyJdIilbMF07cmV0dXJuISFhJiZrKGEpfXJldHVybigvaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1
dHRvbnxvYmplY3QvLnRlc3QoYik/IWEuZGlzYWJsZWQ6ImEiPT1iP2EuaHJlZnx8IWlzTmFOKGQp
OiFpc05hTihkKSkmJmsoYSl9LHRhYmJhYmxlOmZ1bmN0aW9uKGEpe3ZhciBiPWMuYXR0cihhLCJ0
YWJpbmRleCIpO3JldHVybihpc05hTihiKXx8Yj49MCkmJmMoYSkuaXMoIjpmb2N1c2FibGUiKX19
KTsKK2MoZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5ib2R5LGI9YS5hcHBlbmRDaGlsZChiPWRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTtjLmV4dGVuZChiLnN0eWxlLHttaW5IZWlnaHQ6
IjEwMHB4IixoZWlnaHQ6ImF1dG8iLHBhZGRpbmc6MCxib3JkZXJXaWR0aDowfSk7Yy5zdXBwb3J0
Lm1pbkhlaWdodD1iLm9mZnNldEhlaWdodD09PTEwMDtjLnN1cHBvcnQuc2VsZWN0c3RhcnQ9Im9u
c2VsZWN0c3RhcnQiaW4gYjthLnJlbW92ZUNoaWxkKGIpLnN0eWxlLmRpc3BsYXk9Im5vbmUifSk7
Yy5leHRlbmQoYy51aSx7cGx1Z2luOnthZGQ6ZnVuY3Rpb24oYSxiLGQpe2E9Yy51aVthXS5wcm90
b3R5cGU7Zm9yKHZhciBlIGluIGQpe2EucGx1Z2luc1tlXT1hLnBsdWdpbnNbZV18fFtdO2EucGx1
Z2luc1tlXS5wdXNoKFtiLGRbZV1dKX19LGNhbGw6ZnVuY3Rpb24oYSxiLGQpe2lmKChiPWEucGx1
Z2luc1tiXSkmJmEuZWxlbWVudFswXS5wYXJlbnROb2RlKWZvcih2YXIgZT0wO2U8Yi5sZW5ndGg7
ZSsrKWEub3B0aW9uc1tiW2VdWzBdXSYmCitiW2VdWzFdLmFwcGx5KGEuZWxlbWVudCxkKX19LGNv
bnRhaW5zOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uP2EuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTY6YSE9PWImJmEuY29udGFpbnMoYil9
LGhhc1Njcm9sbDpmdW5jdGlvbihhLGIpe2lmKGMoYSkuY3NzKCJvdmVyZmxvdyIpPT09ImhpZGRl
biIpcmV0dXJuIGZhbHNlO2I9YiYmYj09PSJsZWZ0Ij8ic2Nyb2xsTGVmdCI6InNjcm9sbFRvcCI7
dmFyIGQ9ZmFsc2U7aWYoYVtiXT4wKXJldHVybiB0cnVlO2FbYl09MTtkPWFbYl0+MDthW2JdPTA7
cmV0dXJuIGR9LGlzT3ZlckF4aXM6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBhPmImJmE8YitkfSxp
c092ZXI6ZnVuY3Rpb24oYSxiLGQsZSxoLGkpe3JldHVybiBjLnVpLmlzT3ZlckF4aXMoYSxkLGgp
JiZjLnVpLmlzT3ZlckF4aXMoYixlLGkpfX0pfX0pKGpRdWVyeSk7Cis7LyohCisgKiBqUXVlcnkg
VUkgV2lkZ2V0IDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0
cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBv
ciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQor
ICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvV2lkZ2V0CisgKi8KKyhmdW5jdGlvbihi
LGope2lmKGIuY2xlYW5EYXRhKXt2YXIgaz1iLmNsZWFuRGF0YTtiLmNsZWFuRGF0YT1mdW5jdGlv
bihhKXtmb3IodmFyIGM9MCxkOyhkPWFbY10pIT1udWxsO2MrKyliKGQpLnRyaWdnZXJIYW5kbGVy
KCJyZW1vdmUiKTtrKGEpfX1lbHNle3ZhciBsPWIuZm4ucmVtb3ZlO2IuZm4ucmVtb3ZlPWZ1bmN0
aW9uKGEsYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCFjKWlmKCFhfHxiLmZpbHRl
cihhLFt0aGlzXSkubGVuZ3RoKWIoIioiLHRoaXMpLmFkZChbdGhpc10pLmVhY2goZnVuY3Rpb24o
KXtiKHRoaXMpLnRyaWdnZXJIYW5kbGVyKCJyZW1vdmUiKX0pO3JldHVybiBsLmNhbGwoYih0aGlz
KSxhLGMpfSl9fWIud2lkZ2V0PWZ1bmN0aW9uKGEsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIilbMF0s
ZjthPWEuc3BsaXQoIi4iKVsxXTtmPWUrIi0iK2E7aWYoIWQpe2Q9YztjPWIuV2lkZ2V0fWIuZXhw
clsiOiJdW2ZdPWZ1bmN0aW9uKGgpe3JldHVybiEhYi5kYXRhKGgsCithKX07YltlXT1iW2VdfHx7
fTtiW2VdW2FdPWZ1bmN0aW9uKGgsZyl7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lk
Z2V0KGgsZyl9O2M9bmV3IGM7Yy5vcHRpb25zPWIuZXh0ZW5kKHRydWUse30sYy5vcHRpb25zKTti
W2VdW2FdLnByb3RvdHlwZT1iLmV4dGVuZCh0cnVlLGMse25hbWVzcGFjZTplLHdpZGdldE5hbWU6
YSx3aWRnZXRFdmVudFByZWZpeDpiW2VdW2FdLnByb3RvdHlwZS53aWRnZXRFdmVudFByZWZpeHx8
YSx3aWRnZXRCYXNlQ2xhc3M6Zn0sZCk7Yi53aWRnZXQuYnJpZGdlKGEsYltlXVthXSl9O2Iud2lk
Z2V0LmJyaWRnZT1mdW5jdGlvbihhLGMpe2IuZm5bYV09ZnVuY3Rpb24oZCl7dmFyIGU9dHlwZW9m
IGQ9PT0ic3RyaW5nIixmPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxo
PXRoaXM7ZD0hZSYmZi5sZW5ndGg/Yi5leHRlbmQuYXBwbHkobnVsbCxbdHJ1ZSxkXS5jb25jYXQo
ZikpOmQ7aWYoZSYmZC5jaGFyQXQoMCk9PT0iXyIpcmV0dXJuIGg7CitlP3RoaXMuZWFjaChmdW5j
dGlvbigpe3ZhciBnPWIuZGF0YSh0aGlzLGEpLGk9ZyYmYi5pc0Z1bmN0aW9uKGdbZF0pP2dbZF0u
YXBwbHkoZyxmKTpnO2lmKGkhPT1nJiZpIT09ail7aD1pO3JldHVybiBmYWxzZX19KTp0aGlzLmVh
Y2goZnVuY3Rpb24oKXt2YXIgZz1iLmRhdGEodGhpcyxhKTtnP2cub3B0aW9uKGR8fHt9KS5faW5p
dCgpOmIuZGF0YSh0aGlzLGEsbmV3IGMoZCx0aGlzKSl9KTtyZXR1cm4gaH19O2IuV2lkZ2V0PWZ1
bmN0aW9uKGEsYyl7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGEsYyl9O2Iu
V2lkZ2V0LnByb3RvdHlwZT17d2lkZ2V0TmFtZToid2lkZ2V0Iix3aWRnZXRFdmVudFByZWZpeDoi
IixvcHRpb25zOntkaXNhYmxlZDpmYWxzZX0sX2NyZWF0ZVdpZGdldDpmdW5jdGlvbihhLGMpe2Iu
ZGF0YShjLHRoaXMud2lkZ2V0TmFtZSx0aGlzKTt0aGlzLmVsZW1lbnQ9YihjKTt0aGlzLm9wdGlv
bnM9Yi5leHRlbmQodHJ1ZSx7fSx0aGlzLm9wdGlvbnMsCit0aGlzLl9nZXRDcmVhdGVPcHRpb25z
KCksYSk7dmFyIGQ9dGhpczt0aGlzLmVsZW1lbnQuYmluZCgicmVtb3ZlLiIrdGhpcy53aWRnZXRO
YW1lLGZ1bmN0aW9uKCl7ZC5kZXN0cm95KCl9KTt0aGlzLl9jcmVhdGUoKTt0aGlzLl90cmlnZ2Vy
KCJjcmVhdGUiKTt0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmZ1bmN0aW9uKCl7cmV0
dXJuIGIubWV0YWRhdGEmJmIubWV0YWRhdGEuZ2V0KHRoaXMuZWxlbWVudFswXSlbdGhpcy53aWRn
ZXROYW1lXX0sX2NyZWF0ZTpmdW5jdGlvbigpe30sX2luaXQ6ZnVuY3Rpb24oKXt9LGRlc3Ryb3k6
ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQudW5iaW5kKCIuIit0aGlzLndpZGdldE5hbWUpLnJlbW92
ZURhdGEodGhpcy53aWRnZXROYW1lKTt0aGlzLndpZGdldCgpLnVuYmluZCgiLiIrdGhpcy53aWRn
ZXROYW1lKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIikucmVtb3ZlQ2xhc3ModGhpcy53aWRn
ZXRCYXNlQ2xhc3MrIi1kaXNhYmxlZCB1aS1zdGF0ZS1kaXNhYmxlZCIpfSwKK3dpZGdldDpmdW5j
dGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LG9wdGlvbjpmdW5jdGlvbihhLGMpe3ZhciBkPWE7
aWYoYXJndW1lbnRzLmxlbmd0aD09PTApcmV0dXJuIGIuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyk7
aWYodHlwZW9mIGE9PT0ic3RyaW5nIil7aWYoYz09PWopcmV0dXJuIHRoaXMub3B0aW9uc1thXTtk
PXt9O2RbYV09Y310aGlzLl9zZXRPcHRpb25zKGQpO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uczpm
dW5jdGlvbihhKXt2YXIgYz10aGlzO2IuZWFjaChhLGZ1bmN0aW9uKGQsZSl7Yy5fc2V0T3B0aW9u
KGQsZSl9KTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbihhLGMpe3RoaXMub3B0aW9u
c1thXT1jO2lmKGE9PT0iZGlzYWJsZWQiKXRoaXMud2lkZ2V0KClbYz8iYWRkQ2xhc3MiOiJyZW1v
dmVDbGFzcyJdKHRoaXMud2lkZ2V0QmFzZUNsYXNzKyItZGlzYWJsZWQgdWktc3RhdGUtZGlzYWJs
ZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIixjKTtyZXR1cm4gdGhpc30sCitlbmFibGU6ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsZmFsc2UpfSxkaXNhYmxlOmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbigiZGlzYWJsZWQiLHRydWUpfSxfdHJpZ2dl
cjpmdW5jdGlvbihhLGMsZCl7dmFyIGU9dGhpcy5vcHRpb25zW2FdO2M9Yi5FdmVudChjKTtjLnR5
cGU9KGE9PT10aGlzLndpZGdldEV2ZW50UHJlZml4P2E6dGhpcy53aWRnZXRFdmVudFByZWZpeCth
KS50b0xvd2VyQ2FzZSgpO2Q9ZHx8e307aWYoYy5vcmlnaW5hbEV2ZW50KXthPWIuZXZlbnQucHJv
cHMubGVuZ3RoO2Zvcih2YXIgZjthOyl7Zj1iLmV2ZW50LnByb3BzWy0tYV07Y1tmXT1jLm9yaWdp
bmFsRXZlbnRbZl19fXRoaXMuZWxlbWVudC50cmlnZ2VyKGMsZCk7cmV0dXJuIShiLmlzRnVuY3Rp
b24oZSkmJmUuY2FsbCh0aGlzLmVsZW1lbnRbMF0sYyxkKT09PWZhbHNlfHxjLmlzRGVmYXVsdFBy
ZXZlbnRlZCgpKX19fSkoalF1ZXJ5KTsKKzsvKiEKKyAqIGpRdWVyeSBVSSBNb3VzZSAxLjguMTAK
KyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20v
YWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBs
aWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9j
cy5qcXVlcnkuY29tL1VJL01vdXNlCisgKgorICogRGVwZW5kczoKKyAqCWpxdWVyeS51aS53aWRn
ZXQuanMKKyAqLworKGZ1bmN0aW9uKGMpe2Mud2lkZ2V0KCJ1aS5tb3VzZSIse29wdGlvbnM6e2Nh
bmNlbDoiOmlucHV0LG9wdGlvbiIsZGlzdGFuY2U6MSxkZWxheTowfSxfbW91c2VJbml0OmZ1bmN0
aW9uKCl7dmFyIGE9dGhpczt0aGlzLmVsZW1lbnQuYmluZCgibW91c2Vkb3duLiIrdGhpcy53aWRn
ZXROYW1lLGZ1bmN0aW9uKGIpe3JldHVybiBhLl9tb3VzZURvd24oYil9KS5iaW5kKCJjbGljay4i
K3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihiKXtpZih0cnVlPT09Yy5kYXRhKGIudGFyZ2V0LGEu
d2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50Iikpe2MucmVtb3ZlRGF0YShiLnRhcmdldCxh
LndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpO2Iuc3RvcEltbWVkaWF0ZVByb3BhZ2F0
aW9uKCk7cmV0dXJuIGZhbHNlfX0pO3RoaXMuc3RhcnRlZD1mYWxzZX0sX21vdXNlRGVzdHJveTpm
dW5jdGlvbigpe3RoaXMuZWxlbWVudC51bmJpbmQoIi4iK3RoaXMud2lkZ2V0TmFtZSl9LF9tb3Vz
ZURvd246ZnVuY3Rpb24oYSl7YS5vcmlnaW5hbEV2ZW50PQorYS5vcmlnaW5hbEV2ZW50fHx7fTtp
ZighYS5vcmlnaW5hbEV2ZW50Lm1vdXNlSGFuZGxlZCl7dGhpcy5fbW91c2VTdGFydGVkJiZ0aGlz
Ll9tb3VzZVVwKGEpO3RoaXMuX21vdXNlRG93bkV2ZW50PWE7dmFyIGI9dGhpcyxlPWEud2hpY2g9
PTEsZj10eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbD09InN0cmluZyI/YyhhLnRhcmdldCkucGFy
ZW50cygpLmFkZChhLnRhcmdldCkuZmlsdGVyKHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aDpm
YWxzZTtpZighZXx8Znx8IXRoaXMuX21vdXNlQ2FwdHVyZShhKSlyZXR1cm4gdHJ1ZTt0aGlzLm1v
dXNlRGVsYXlNZXQ9IXRoaXMub3B0aW9ucy5kZWxheTtpZighdGhpcy5tb3VzZURlbGF5TWV0KXRo
aXMuX21vdXNlRGVsYXlUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5tb3VzZURlbGF5TWV0
PXRydWV9LHRoaXMub3B0aW9ucy5kZWxheSk7aWYodGhpcy5fbW91c2VEaXN0YW5jZU1ldChhKSYm
dGhpcy5fbW91c2VEZWxheU1ldChhKSl7dGhpcy5fbW91c2VTdGFydGVkPQordGhpcy5fbW91c2VT
dGFydChhKSE9PWZhbHNlO2lmKCF0aGlzLl9tb3VzZVN0YXJ0ZWQpe2EucHJldmVudERlZmF1bHQo
KTtyZXR1cm4gdHJ1ZX19dGhpcy5fbW91c2VNb3ZlRGVsZWdhdGU9ZnVuY3Rpb24oZCl7cmV0dXJu
IGIuX21vdXNlTW92ZShkKX07dGhpcy5fbW91c2VVcERlbGVnYXRlPWZ1bmN0aW9uKGQpe3JldHVy
biBiLl9tb3VzZVVwKGQpfTtjKGRvY3VtZW50KS5iaW5kKCJtb3VzZW1vdmUuIit0aGlzLndpZGdl
dE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLmJpbmQoIm1vdXNldXAuIit0aGlzLndpZGdl
dE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKTthLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGEu
b3JpZ2luYWxFdmVudC5tb3VzZUhhbmRsZWQ9dHJ1ZX19LF9tb3VzZU1vdmU6ZnVuY3Rpb24oYSl7
aWYoYy5icm93c2VyLm1zaWUmJiEoZG9jdW1lbnQuZG9jdW1lbnRNb2RlPj05KSYmIWEuYnV0dG9u
KXJldHVybiB0aGlzLl9tb3VzZVVwKGEpO2lmKHRoaXMuX21vdXNlU3RhcnRlZCl7dGhpcy5fbW91
c2VEcmFnKGEpOworcmV0dXJuIGEucHJldmVudERlZmF1bHQoKX1pZih0aGlzLl9tb3VzZURpc3Rh
bmNlTWV0KGEpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KGEpKSh0aGlzLl9tb3VzZVN0YXJ0ZWQ9dGhp
cy5fbW91c2VTdGFydCh0aGlzLl9tb3VzZURvd25FdmVudCxhKSE9PWZhbHNlKT90aGlzLl9tb3Vz
ZURyYWcoYSk6dGhpcy5fbW91c2VVcChhKTtyZXR1cm4hdGhpcy5fbW91c2VTdGFydGVkfSxfbW91
c2VVcDpmdW5jdGlvbihhKXtjKGRvY3VtZW50KS51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lk
Z2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53
aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSk7aWYodGhpcy5fbW91c2VTdGFydGVkKXt0
aGlzLl9tb3VzZVN0YXJ0ZWQ9ZmFsc2U7YS50YXJnZXQ9PXRoaXMuX21vdXNlRG93bkV2ZW50LnRh
cmdldCYmYy5kYXRhKGEudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50
IiwKK3RydWUpO3RoaXMuX21vdXNlU3RvcChhKX1yZXR1cm4gZmFsc2V9LF9tb3VzZURpc3RhbmNl
TWV0OmZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25F
dmVudC5wYWdlWC1hLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1h
LnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe30sX21v
dXNlRHJhZzpmdW5jdGlvbigpe30sX21vdXNlU3RvcDpmdW5jdGlvbigpe30sX21vdXNlQ2FwdHVy
ZTpmdW5jdGlvbigpe3JldHVybiB0cnVlfX0pfSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJ
IFBvc2l0aW9uIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0
cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBv
ciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQor
ICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvUG9zaXRpb24KKyAqLworKGZ1bmN0aW9u
KGMpe2MudWk9Yy51aXx8e307dmFyIG49L2xlZnR8Y2VudGVyfHJpZ2h0LyxvPS90b3B8Y2VudGVy
fGJvdHRvbS8sdD1jLmZuLnBvc2l0aW9uLHU9Yy5mbi5vZmZzZXQ7Yy5mbi5wb3NpdGlvbj1mdW5j
dGlvbihiKXtpZighYnx8IWIub2YpcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO2I9Yy5l
eHRlbmQoe30sYik7dmFyIGE9YyhiLm9mKSxkPWFbMF0sZz0oYi5jb2xsaXNpb258fCJmbGlwIiku
c3BsaXQoIiAiKSxlPWIub2Zmc2V0P2Iub2Zmc2V0LnNwbGl0KCIgIik6WzAsMF0saCxrLGo7aWYo
ZC5ub2RlVHlwZT09PTkpe2g9YS53aWR0aCgpO2s9YS5oZWlnaHQoKTtqPXt0b3A6MCxsZWZ0OjB9
fWVsc2UgaWYoZC5zZXRUaW1lb3V0KXtoPWEud2lkdGgoKTtrPWEuaGVpZ2h0KCk7aj17dG9wOmEu
c2Nyb2xsVG9wKCksbGVmdDphLnNjcm9sbExlZnQoKX19ZWxzZSBpZihkLnByZXZlbnREZWZhdWx0
KXtiLmF0PSJsZWZ0IHRvcCI7aD1rPTA7aj17dG9wOmIub2YucGFnZVksCitsZWZ0OmIub2YucGFn
ZVh9fWVsc2V7aD1hLm91dGVyV2lkdGgoKTtrPWEub3V0ZXJIZWlnaHQoKTtqPWEub2Zmc2V0KCl9
Yy5lYWNoKFsibXkiLCJhdCJdLGZ1bmN0aW9uKCl7dmFyIGY9KGJbdGhpc118fCIiKS5zcGxpdCgi
ICIpO2lmKGYubGVuZ3RoPT09MSlmPW4udGVzdChmWzBdKT9mLmNvbmNhdChbImNlbnRlciJdKTpv
LnRlc3QoZlswXSk/WyJjZW50ZXIiXS5jb25jYXQoZik6WyJjZW50ZXIiLCJjZW50ZXIiXTtmWzBd
PW4udGVzdChmWzBdKT9mWzBdOiJjZW50ZXIiO2ZbMV09by50ZXN0KGZbMV0pP2ZbMV06ImNlbnRl
ciI7Ylt0aGlzXT1mfSk7aWYoZy5sZW5ndGg9PT0xKWdbMV09Z1swXTtlWzBdPXBhcnNlSW50KGVb
MF0sMTApfHwwO2lmKGUubGVuZ3RoPT09MSllWzFdPWVbMF07ZVsxXT1wYXJzZUludChlWzFdLDEw
KXx8MDtpZihiLmF0WzBdPT09InJpZ2h0IilqLmxlZnQrPWg7ZWxzZSBpZihiLmF0WzBdPT09ImNl
bnRlciIpai5sZWZ0Kz1oLzI7aWYoYi5hdFsxXT09PSJib3R0b20iKWoudG9wKz0KK2s7ZWxzZSBp
ZihiLmF0WzFdPT09ImNlbnRlciIpai50b3ArPWsvMjtqLmxlZnQrPWVbMF07ai50b3ArPWVbMV07
cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWModGhpcyksbD1mLm91dGVyV2lkdGgo
KSxtPWYub3V0ZXJIZWlnaHQoKSxwPXBhcnNlSW50KGMuY3VyQ1NTKHRoaXMsIm1hcmdpbkxlZnQi
LHRydWUpKXx8MCxxPXBhcnNlSW50KGMuY3VyQ1NTKHRoaXMsIm1hcmdpblRvcCIsdHJ1ZSkpfHww
LHY9bCtwKyhwYXJzZUludChjLmN1ckNTUyh0aGlzLCJtYXJnaW5SaWdodCIsdHJ1ZSkpfHwwKSx3
PW0rcSsocGFyc2VJbnQoYy5jdXJDU1ModGhpcywibWFyZ2luQm90dG9tIix0cnVlKSl8fDApLGk9
Yy5leHRlbmQoe30saikscjtpZihiLm15WzBdPT09InJpZ2h0IilpLmxlZnQtPWw7ZWxzZSBpZihi
Lm15WzBdPT09ImNlbnRlciIpaS5sZWZ0LT1sLzI7aWYoYi5teVsxXT09PSJib3R0b20iKWkudG9w
LT1tO2Vsc2UgaWYoYi5teVsxXT09PSJjZW50ZXIiKWkudG9wLT0KK20vMjtpLmxlZnQ9TWF0aC5y
b3VuZChpLmxlZnQpO2kudG9wPU1hdGgucm91bmQoaS50b3ApO3I9e2xlZnQ6aS5sZWZ0LXAsdG9w
OmkudG9wLXF9O2MuZWFjaChbImxlZnQiLCJ0b3AiXSxmdW5jdGlvbihzLHgpe2MudWkucG9zaXRp
b25bZ1tzXV0mJmMudWkucG9zaXRpb25bZ1tzXV1beF0oaSx7dGFyZ2V0V2lkdGg6aCx0YXJnZXRI
ZWlnaHQ6ayxlbGVtV2lkdGg6bCxlbGVtSGVpZ2h0Om0sY29sbGlzaW9uUG9zaXRpb246cixjb2xs
aXNpb25XaWR0aDp2LGNvbGxpc2lvbkhlaWdodDp3LG9mZnNldDplLG15OmIubXksYXQ6Yi5hdH0p
fSk7Yy5mbi5iZ2lmcmFtZSYmZi5iZ2lmcmFtZSgpO2Yub2Zmc2V0KGMuZXh0ZW5kKGkse3VzaW5n
OmIudXNpbmd9KSl9KX07Yy51aS5wb3NpdGlvbj17Zml0OntsZWZ0OmZ1bmN0aW9uKGIsYSl7dmFy
IGQ9Yyh3aW5kb3cpO2Q9YS5jb2xsaXNpb25Qb3NpdGlvbi5sZWZ0K2EuY29sbGlzaW9uV2lkdGgt
ZC53aWR0aCgpLWQuc2Nyb2xsTGVmdCgpO2IubGVmdD0KK2Q+MD9iLmxlZnQtZDpNYXRoLm1heChi
LmxlZnQtYS5jb2xsaXNpb25Qb3NpdGlvbi5sZWZ0LGIubGVmdCl9LHRvcDpmdW5jdGlvbihiLGEp
e3ZhciBkPWMod2luZG93KTtkPWEuY29sbGlzaW9uUG9zaXRpb24udG9wK2EuY29sbGlzaW9uSGVp
Z2h0LWQuaGVpZ2h0KCktZC5zY3JvbGxUb3AoKTtiLnRvcD1kPjA/Yi50b3AtZDpNYXRoLm1heChi
LnRvcC1hLmNvbGxpc2lvblBvc2l0aW9uLnRvcCxiLnRvcCl9fSxmbGlwOntsZWZ0OmZ1bmN0aW9u
KGIsYSl7aWYoYS5hdFswXSE9PSJjZW50ZXIiKXt2YXIgZD1jKHdpbmRvdyk7ZD1hLmNvbGxpc2lv
blBvc2l0aW9uLmxlZnQrYS5jb2xsaXNpb25XaWR0aC1kLndpZHRoKCktZC5zY3JvbGxMZWZ0KCk7
dmFyIGc9YS5teVswXT09PSJsZWZ0Ij8tYS5lbGVtV2lkdGg6YS5teVswXT09PSJyaWdodCI/YS5l
bGVtV2lkdGg6MCxlPWEuYXRbMF09PT0ibGVmdCI/YS50YXJnZXRXaWR0aDotYS50YXJnZXRXaWR0
aCxoPS0yKmEub2Zmc2V0WzBdO2IubGVmdCs9CithLmNvbGxpc2lvblBvc2l0aW9uLmxlZnQ8MD9n
K2UraDpkPjA/ZytlK2g6MH19LHRvcDpmdW5jdGlvbihiLGEpe2lmKGEuYXRbMV0hPT0iY2VudGVy
Iil7dmFyIGQ9Yyh3aW5kb3cpO2Q9YS5jb2xsaXNpb25Qb3NpdGlvbi50b3ArYS5jb2xsaXNpb25I
ZWlnaHQtZC5oZWlnaHQoKS1kLnNjcm9sbFRvcCgpO3ZhciBnPWEubXlbMV09PT0idG9wIj8tYS5l
bGVtSGVpZ2h0OmEubXlbMV09PT0iYm90dG9tIj9hLmVsZW1IZWlnaHQ6MCxlPWEuYXRbMV09PT0i
dG9wIj9hLnRhcmdldEhlaWdodDotYS50YXJnZXRIZWlnaHQsaD0tMiphLm9mZnNldFsxXTtiLnRv
cCs9YS5jb2xsaXNpb25Qb3NpdGlvbi50b3A8MD9nK2UraDpkPjA/ZytlK2g6MH19fX07aWYoIWMu
b2Zmc2V0LnNldE9mZnNldCl7Yy5vZmZzZXQuc2V0T2Zmc2V0PWZ1bmN0aW9uKGIsYSl7aWYoL3N0
YXRpYy8udGVzdChjLmN1ckNTUyhiLCJwb3NpdGlvbiIpKSliLnN0eWxlLnBvc2l0aW9uPSJyZWxh
dGl2ZSI7dmFyIGQ9YyhiKSwKK2c9ZC5vZmZzZXQoKSxlPXBhcnNlSW50KGMuY3VyQ1NTKGIsInRv
cCIsdHJ1ZSksMTApfHwwLGg9cGFyc2VJbnQoYy5jdXJDU1MoYiwibGVmdCIsdHJ1ZSksMTApfHww
O2c9e3RvcDphLnRvcC1nLnRvcCtlLGxlZnQ6YS5sZWZ0LWcubGVmdCtofTsidXNpbmciaW4gYT9h
LnVzaW5nLmNhbGwoYixnKTpkLmNzcyhnKX07Yy5mbi5vZmZzZXQ9ZnVuY3Rpb24oYil7dmFyIGE9
dGhpc1swXTtpZighYXx8IWEub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiKXJldHVybiB0
aGlzLmVhY2goZnVuY3Rpb24oKXtjLm9mZnNldC5zZXRPZmZzZXQodGhpcyxiKX0pO3JldHVybiB1
LmNhbGwodGhpcyl9fX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBEcmFnZ2FibGUgMS44
LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWku
Y29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9u
IDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDov
L2RvY3MuanF1ZXJ5LmNvbS9VSS9EcmFnZ2FibGVzCisgKgorICogRGVwZW5kczoKKyAqCWpxdWVy
eS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkubW91c2UuanMKKyAqCWpxdWVyeS51aS53aWRnZXQu
anMKKyAqLworKGZ1bmN0aW9uKGQpe2Qud2lkZ2V0KCJ1aS5kcmFnZ2FibGUiLGQudWkubW91c2Us
e3dpZGdldEV2ZW50UHJlZml4OiJkcmFnIixvcHRpb25zOnthZGRDbGFzc2VzOnRydWUsYXBwZW5k
VG86InBhcmVudCIsYXhpczpmYWxzZSxjb25uZWN0VG9Tb3J0YWJsZTpmYWxzZSxjb250YWlubWVu
dDpmYWxzZSxjdXJzb3I6ImF1dG8iLGN1cnNvckF0OmZhbHNlLGdyaWQ6ZmFsc2UsaGFuZGxlOmZh
bHNlLGhlbHBlcjoib3JpZ2luYWwiLGlmcmFtZUZpeDpmYWxzZSxvcGFjaXR5OmZhbHNlLHJlZnJl
c2hQb3NpdGlvbnM6ZmFsc2UscmV2ZXJ0OmZhbHNlLHJldmVydER1cmF0aW9uOjUwMCxzY29wZToi
ZGVmYXVsdCIsc2Nyb2xsOnRydWUsc2Nyb2xsU2Vuc2l0aXZpdHk6MjAsc2Nyb2xsU3BlZWQ6MjAs
c25hcDpmYWxzZSxzbmFwTW9kZToiYm90aCIsc25hcFRvbGVyYW5jZToyMCxzdGFjazpmYWxzZSx6
SW5kZXg6ZmFsc2V9LF9jcmVhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuaGVscGVyPT0K
KyJvcmlnaW5hbCImJiEvXig/OnJ8YXxmKS8udGVzdCh0aGlzLmVsZW1lbnQuY3NzKCJwb3NpdGlv
biIpKSl0aGlzLmVsZW1lbnRbMF0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt0aGlzLm9wdGlv
bnMuYWRkQ2xhc3NlcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUiKTt0aGlz
Lm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRp
c2FibGVkIik7dGhpcy5fbW91c2VJbml0KCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtpZih0aGlzLmVs
ZW1lbnQuZGF0YSgiZHJhZ2dhYmxlIikpe3RoaXMuZWxlbWVudC5yZW1vdmVEYXRhKCJkcmFnZ2Fi
bGUiKS51bmJpbmQoIi5kcmFnZ2FibGUiKS5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlIHVpLWRy
YWdnYWJsZS1kcmFnZ2luZyB1aS1kcmFnZ2FibGUtZGlzYWJsZWQiKTt0aGlzLl9tb3VzZURlc3Ry
b3koKTtyZXR1cm4gdGhpc319LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oYSl7dmFyIGI9Cit0aGlz
Lm9wdGlvbnM7aWYodGhpcy5oZWxwZXJ8fGIuZGlzYWJsZWR8fGQoYS50YXJnZXQpLmlzKCIudWkt
cmVzaXphYmxlLWhhbmRsZSIpKXJldHVybiBmYWxzZTt0aGlzLmhhbmRsZT10aGlzLl9nZXRIYW5k
bGUoYSk7aWYoIXRoaXMuaGFuZGxlKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZX0sX21vdXNlU3Rh
cnQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zO3RoaXMuaGVscGVyPXRoaXMuX2NyZWF0
ZUhlbHBlcihhKTt0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCk7aWYoZC51aS5kZG1hbmFn
ZXIpZC51aS5kZG1hbmFnZXIuY3VycmVudD10aGlzO3RoaXMuX2NhY2hlTWFyZ2lucygpO3RoaXMu
Y3NzUG9zaXRpb249dGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIpO3RoaXMuc2Nyb2xsUGFyZW50
PXRoaXMuaGVscGVyLnNjcm9sbFBhcmVudCgpO3RoaXMub2Zmc2V0PXRoaXMucG9zaXRpb25BYnM9
dGhpcy5lbGVtZW50Lm9mZnNldCgpO3RoaXMub2Zmc2V0PXt0b3A6dGhpcy5vZmZzZXQudG9wLQor
dGhpcy5tYXJnaW5zLnRvcCxsZWZ0OnRoaXMub2Zmc2V0LmxlZnQtdGhpcy5tYXJnaW5zLmxlZnR9
O2QuZXh0ZW5kKHRoaXMub2Zmc2V0LHtjbGljazp7bGVmdDphLnBhZ2VYLXRoaXMub2Zmc2V0Lmxl
ZnQsdG9wOmEucGFnZVktdGhpcy5vZmZzZXQudG9wfSxwYXJlbnQ6dGhpcy5fZ2V0UGFyZW50T2Zm
c2V0KCkscmVsYXRpdmU6dGhpcy5fZ2V0UmVsYXRpdmVPZmZzZXQoKX0pO3RoaXMub3JpZ2luYWxQ
b3NpdGlvbj10aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24oYSk7dGhpcy5vcmln
aW5hbFBhZ2VYPWEucGFnZVg7dGhpcy5vcmlnaW5hbFBhZ2VZPWEucGFnZVk7Yi5jdXJzb3JBdCYm
dGhpcy5fYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcihiLmN1cnNvckF0KTtiLmNvbnRhaW5tZW50JiZ0
aGlzLl9zZXRDb250YWlubWVudCgpO2lmKHRoaXMuX3RyaWdnZXIoInN0YXJ0IixhKT09PWZhbHNl
KXt0aGlzLl9jbGVhcigpO3JldHVybiBmYWxzZX10aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25z
KCk7CitkLnVpLmRkbWFuYWdlciYmIWIuZHJvcEJlaGF2aW91ciYmZC51aS5kZG1hbmFnZXIucHJl
cGFyZU9mZnNldHModGhpcyxhKTt0aGlzLmhlbHBlci5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRy
YWdnaW5nIik7dGhpcy5fbW91c2VEcmFnKGEsdHJ1ZSk7cmV0dXJuIHRydWV9LF9tb3VzZURyYWc6
ZnVuY3Rpb24oYSxiKXt0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24oYSk7dGhp
cy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKTtpZighYil7
Yj10aGlzLl91aUhhc2goKTtpZih0aGlzLl90cmlnZ2VyKCJkcmFnIixhLGIpPT09ZmFsc2Upe3Ro
aXMuX21vdXNlVXAoe30pO3JldHVybiBmYWxzZX10aGlzLnBvc2l0aW9uPWIucG9zaXRpb259aWYo
IXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLm9wdGlvbnMuYXhpcyE9InkiKXRoaXMuaGVscGVyWzBd
LnN0eWxlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCI7aWYoIXRoaXMub3B0aW9ucy5heGlz
fHwKK3RoaXMub3B0aW9ucy5heGlzIT0ieCIpdGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMu
cG9zaXRpb24udG9wKyJweCI7ZC51aS5kZG1hbmFnZXImJmQudWkuZGRtYW5hZ2VyLmRyYWcodGhp
cyxhKTtyZXR1cm4gZmFsc2V9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oYSl7dmFyIGI9ZmFsc2U7aWYo
ZC51aS5kZG1hbmFnZXImJiF0aGlzLm9wdGlvbnMuZHJvcEJlaGF2aW91ciliPWQudWkuZGRtYW5h
Z2VyLmRyb3AodGhpcyxhKTtpZih0aGlzLmRyb3BwZWQpe2I9dGhpcy5kcm9wcGVkO3RoaXMuZHJv
cHBlZD1mYWxzZX1pZigoIXRoaXMuZWxlbWVudFswXXx8IXRoaXMuZWxlbWVudFswXS5wYXJlbnRO
b2RlKSYmdGhpcy5vcHRpb25zLmhlbHBlcj09Im9yaWdpbmFsIilyZXR1cm4gZmFsc2U7aWYodGhp
cy5vcHRpb25zLnJldmVydD09ImludmFsaWQiJiYhYnx8dGhpcy5vcHRpb25zLnJldmVydD09InZh
bGlkIiYmYnx8dGhpcy5vcHRpb25zLnJldmVydD09PXRydWV8fGQuaXNGdW5jdGlvbih0aGlzLm9w
dGlvbnMucmV2ZXJ0KSYmCit0aGlzLm9wdGlvbnMucmV2ZXJ0LmNhbGwodGhpcy5lbGVtZW50LGIp
KXt2YXIgYz10aGlzO2QodGhpcy5oZWxwZXIpLmFuaW1hdGUodGhpcy5vcmlnaW5hbFBvc2l0aW9u
LHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnREdXJhdGlvbiwxMCksZnVuY3Rpb24oKXtjLl90
cmlnZ2VyKCJzdG9wIixhKSE9PWZhbHNlJiZjLl9jbGVhcigpfSl9ZWxzZSB0aGlzLl90cmlnZ2Vy
KCJzdG9wIixhKSE9PWZhbHNlJiZ0aGlzLl9jbGVhcigpO3JldHVybiBmYWxzZX0sY2FuY2VsOmZ1
bmN0aW9uKCl7dGhpcy5oZWxwZXIuaXMoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciKT90aGlzLl9t
b3VzZVVwKHt9KTp0aGlzLl9jbGVhcigpO3JldHVybiB0aGlzfSxfZ2V0SGFuZGxlOmZ1bmN0aW9u
KGEpe3ZhciBiPSF0aGlzLm9wdGlvbnMuaGFuZGxlfHwhZCh0aGlzLm9wdGlvbnMuaGFuZGxlLHRo
aXMuZWxlbWVudCkubGVuZ3RoP3RydWU6ZmFsc2U7ZCh0aGlzLm9wdGlvbnMuaGFuZGxlLHRoaXMu
ZWxlbWVudCkuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcz09Cith
LnRhcmdldCliPXRydWV9KTtyZXR1cm4gYn0sX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbihhKXt2YXIg
Yj10aGlzLm9wdGlvbnM7YT1kLmlzRnVuY3Rpb24oYi5oZWxwZXIpP2QoYi5oZWxwZXIuYXBwbHko
dGhpcy5lbGVtZW50WzBdLFthXSkpOmIuaGVscGVyPT0iY2xvbmUiP3RoaXMuZWxlbWVudC5jbG9u
ZSgpOnRoaXMuZWxlbWVudDthLnBhcmVudHMoImJvZHkiKS5sZW5ndGh8fGEuYXBwZW5kVG8oYi5h
cHBlbmRUbz09InBhcmVudCI/dGhpcy5lbGVtZW50WzBdLnBhcmVudE5vZGU6Yi5hcHBlbmRUbyk7
YVswXSE9dGhpcy5lbGVtZW50WzBdJiYhLyhmaXhlZHxhYnNvbHV0ZSkvLnRlc3QoYS5jc3MoInBv
c2l0aW9uIikpJiZhLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpO3JldHVybiBhfSxfYWRqdXN0
T2Zmc2V0RnJvbUhlbHBlcjpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09InN0cmluZyIpYT1hLnNw
bGl0KCIgIik7aWYoZC5pc0FycmF5KGEpKWE9e2xlZnQ6K2FbMF0sdG9wOithWzFdfHwKKzB9O2lm
KCJsZWZ0ImluIGEpdGhpcy5vZmZzZXQuY2xpY2subGVmdD1hLmxlZnQrdGhpcy5tYXJnaW5zLmxl
ZnQ7aWYoInJpZ2h0ImluIGEpdGhpcy5vZmZzZXQuY2xpY2subGVmdD10aGlzLmhlbHBlclByb3Bv
cnRpb25zLndpZHRoLWEucmlnaHQrdGhpcy5tYXJnaW5zLmxlZnQ7aWYoInRvcCJpbiBhKXRoaXMu
b2Zmc2V0LmNsaWNrLnRvcD1hLnRvcCt0aGlzLm1hcmdpbnMudG9wO2lmKCJib3R0b20iaW4gYSl0
aGlzLm9mZnNldC5jbGljay50b3A9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtYS5ib3R0
b20rdGhpcy5tYXJnaW5zLnRvcH0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3RoaXMub2Zm
c2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpO3ZhciBhPXRoaXMub2Zmc2V0UGFy
ZW50Lm9mZnNldCgpO2lmKHRoaXMuY3NzUG9zaXRpb249PSJhYnNvbHV0ZSImJnRoaXMuc2Nyb2xs
UGFyZW50WzBdIT1kb2N1bWVudCYmZC51aS5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSwK
K3RoaXMub2Zmc2V0UGFyZW50WzBdKSl7YS5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxM
ZWZ0KCk7YS50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpfWlmKHRoaXMub2Zmc2V0
UGFyZW50WzBdPT1kb2N1bWVudC5ib2R5fHx0aGlzLm9mZnNldFBhcmVudFswXS50YWdOYW1lJiZ0
aGlzLm9mZnNldFBhcmVudFswXS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PSJodG1sIiYmZC5icm93
c2VyLm1zaWUpYT17dG9wOjAsbGVmdDowfTtyZXR1cm57dG9wOmEudG9wKyhwYXJzZUludCh0aGlz
Lm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OmEubGVmdCso
cGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDAp
fX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5jc3NQb3NpdGlvbj09InJl
bGF0aXZlIil7dmFyIGE9dGhpcy5lbGVtZW50LnBvc2l0aW9uKCk7cmV0dXJue3RvcDphLnRvcC0K
KyhwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJl
bnQuc2Nyb2xsVG9wKCksbGVmdDphLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVm
dCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpfX1lbHNlIHJldHVybnt0
b3A6MCxsZWZ0OjB9fSxfY2FjaGVNYXJnaW5zOmZ1bmN0aW9uKCl7dGhpcy5tYXJnaW5zPXtsZWZ0
OnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSwxMCl8fDAsdG9wOnBhcnNl
SW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclBy
b3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5o
ZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3Nl
dENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zO2lmKGEuY29udGFpbm1l
bnQ9PQorInBhcmVudCIpYS5jb250YWlubWVudD10aGlzLmhlbHBlclswXS5wYXJlbnROb2RlO2lm
KGEuY29udGFpbm1lbnQ9PSJkb2N1bWVudCJ8fGEuY29udGFpbm1lbnQ9PSJ3aW5kb3ciKXRoaXMu
Y29udGFpbm1lbnQ9WyhhLmNvbnRhaW5tZW50PT0iZG9jdW1lbnQiPzA6ZCh3aW5kb3cpLnNjcm9s
bExlZnQoKSktdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVm
dCwoYS5jb250YWlubWVudD09ImRvY3VtZW50Ij8wOmQod2luZG93KS5zY3JvbGxUb3AoKSktdGhp
cy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3AsKGEuY29udGFpbm1l
bnQ9PSJkb2N1bWVudCI/MDpkKHdpbmRvdykuc2Nyb2xsTGVmdCgpKStkKGEuY29udGFpbm1lbnQ9
PSJkb2N1bWVudCI/ZG9jdW1lbnQ6d2luZG93KS53aWR0aCgpLXRoaXMuaGVscGVyUHJvcG9ydGlv
bnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsKGEuY29udGFpbm1lbnQ9PSJkb2N1bWVudCI/Cisw
OmQod2luZG93KS5zY3JvbGxUb3AoKSkrKGQoYS5jb250YWlubWVudD09ImRvY3VtZW50Ij9kb2N1
bWVudDp3aW5kb3cpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVp
Z2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXTtpZigh
L14oZG9jdW1lbnR8d2luZG93fHBhcmVudCkkLy50ZXN0KGEuY29udGFpbm1lbnQpJiZhLmNvbnRh
aW5tZW50LmNvbnN0cnVjdG9yIT1BcnJheSl7dmFyIGI9ZChhLmNvbnRhaW5tZW50KVswXTtpZihi
KXthPWQoYS5jb250YWlubWVudCkub2Zmc2V0KCk7dmFyIGM9ZChiKS5jc3MoIm92ZXJmbG93Iikh
PSJoaWRkZW4iO3RoaXMuY29udGFpbm1lbnQ9W2EubGVmdCsocGFyc2VJbnQoZChiKS5jc3MoImJv
cmRlckxlZnRXaWR0aCIpLDEwKXx8MCkrKHBhcnNlSW50KGQoYikuY3NzKCJwYWRkaW5nTGVmdCIp
LDEwKXx8MCktdGhpcy5tYXJnaW5zLmxlZnQsYS50b3ArKHBhcnNlSW50KGQoYikuY3NzKCJib3Jk
ZXJUb3BXaWR0aCIpLAorMTApfHwwKSsocGFyc2VJbnQoZChiKS5jc3MoInBhZGRpbmdUb3AiKSwx
MCl8fDApLXRoaXMubWFyZ2lucy50b3AsYS5sZWZ0KyhjP01hdGgubWF4KGIuc2Nyb2xsV2lkdGgs
Yi5vZmZzZXRXaWR0aCk6Yi5vZmZzZXRXaWR0aCktKHBhcnNlSW50KGQoYikuY3NzKCJib3JkZXJM
ZWZ0V2lkdGgiKSwxMCl8fDApLShwYXJzZUludChkKGIpLmNzcygicGFkZGluZ1JpZ2h0IiksMTAp
fHwwKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lucy5sZWZ0LGEudG9w
KyhjP01hdGgubWF4KGIuc2Nyb2xsSGVpZ2h0LGIub2Zmc2V0SGVpZ2h0KTpiLm9mZnNldEhlaWdo
dCktKHBhcnNlSW50KGQoYikuY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50
KGQoYikuY3NzKCJwYWRkaW5nQm90dG9tIiksMTApfHwwKS10aGlzLmhlbHBlclByb3BvcnRpb25z
LmhlaWdodC10aGlzLm1hcmdpbnMudG9wXX19ZWxzZSBpZihhLmNvbnRhaW5tZW50LmNvbnN0cnVj
dG9yPT0KK0FycmF5KXRoaXMuY29udGFpbm1lbnQ9YS5jb250YWlubWVudH0sX2NvbnZlcnRQb3Np
dGlvblRvOmZ1bmN0aW9uKGEsYil7aWYoIWIpYj10aGlzLnBvc2l0aW9uO2E9YT09ImFic29sdXRl
Ij8xOi0xO3ZhciBjPXRoaXMuY3NzUG9zaXRpb249PSJhYnNvbHV0ZSImJiEodGhpcy5zY3JvbGxQ
YXJlbnRbMF0hPWRvY3VtZW50JiZkLnVpLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRo
aXMub2Zmc2V0UGFyZW50WzBdKSk/dGhpcy5vZmZzZXRQYXJlbnQ6dGhpcy5zY3JvbGxQYXJlbnQs
Zj0vKGh0bWx8Ym9keSkvaS50ZXN0KGNbMF0udGFnTmFtZSk7cmV0dXJue3RvcDpiLnRvcCt0aGlz
Lm9mZnNldC5yZWxhdGl2ZS50b3AqYSt0aGlzLm9mZnNldC5wYXJlbnQudG9wKmEtKGQuYnJvd3Nl
ci5zYWZhcmkmJmQuYnJvd3Nlci52ZXJzaW9uPDUyNiYmdGhpcy5jc3NQb3NpdGlvbj09ImZpeGVk
Ij8wOih0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxU
b3AoKToKK2Y/MDpjLnNjcm9sbFRvcCgpKSphKSxsZWZ0OmIubGVmdCt0aGlzLm9mZnNldC5yZWxh
dGl2ZS5sZWZ0KmErdGhpcy5vZmZzZXQucGFyZW50LmxlZnQqYS0oZC5icm93c2VyLnNhZmFyaSYm
ZC5icm93c2VyLnZlcnNpb248NTI2JiZ0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPzA6KHRoaXMu
Y3NzUG9zaXRpb249PSJmaXhlZCI/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKTpmPzA6
Yy5zY3JvbGxMZWZ0KCkpKmEpfX0sX2dlbmVyYXRlUG9zaXRpb246ZnVuY3Rpb24oYSl7dmFyIGI9
dGhpcy5vcHRpb25zLGM9dGhpcy5jc3NQb3NpdGlvbj09ImFic29sdXRlIiYmISh0aGlzLnNjcm9s
bFBhcmVudFswXSE9ZG9jdW1lbnQmJmQudWkuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0s
dGhpcy5vZmZzZXRQYXJlbnRbMF0pKT90aGlzLm9mZnNldFBhcmVudDp0aGlzLnNjcm9sbFBhcmVu
dCxmPS8oaHRtbHxib2R5KS9pLnRlc3QoY1swXS50YWdOYW1lKSxlPWEucGFnZVgsZz1hLnBhZ2VZ
OworaWYodGhpcy5vcmlnaW5hbFBvc2l0aW9uKXtpZih0aGlzLmNvbnRhaW5tZW50KXtpZihhLnBh
Z2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXSllPXRoaXMuY29u
dGFpbm1lbnRbMF0rdGhpcy5vZmZzZXQuY2xpY2subGVmdDtpZihhLnBhZ2VZLXRoaXMub2Zmc2V0
LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdKWc9dGhpcy5jb250YWlubWVudFsxXSt0aGlz
Lm9mZnNldC5jbGljay50b3A7aWYoYS5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PnRoaXMu
Y29udGFpbm1lbnRbMl0pZT10aGlzLmNvbnRhaW5tZW50WzJdK3RoaXMub2Zmc2V0LmNsaWNrLmxl
ZnQ7aWYoYS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+dGhpcy5jb250YWlubWVudFszXSln
PXRoaXMuY29udGFpbm1lbnRbM10rdGhpcy5vZmZzZXQuY2xpY2sudG9wfWlmKGIuZ3JpZCl7Zz10
aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgoZy10aGlzLm9yaWdpbmFsUGFnZVkpLworYi5n
cmlkWzFdKSpiLmdyaWRbMV07Zz10aGlzLmNvbnRhaW5tZW50PyEoZy10aGlzLm9mZnNldC5jbGlj
ay50b3A8dGhpcy5jb250YWlubWVudFsxXXx8Zy10aGlzLm9mZnNldC5jbGljay50b3A+dGhpcy5j
b250YWlubWVudFszXSk/ZzohKGctdGhpcy5vZmZzZXQuY2xpY2sudG9wPHRoaXMuY29udGFpbm1l
bnRbMV0pP2ctYi5ncmlkWzFdOmcrYi5ncmlkWzFdOmc7ZT10aGlzLm9yaWdpbmFsUGFnZVgrTWF0
aC5yb3VuZCgoZS10aGlzLm9yaWdpbmFsUGFnZVgpL2IuZ3JpZFswXSkqYi5ncmlkWzBdO2U9dGhp
cy5jb250YWlubWVudD8hKGUtdGhpcy5vZmZzZXQuY2xpY2subGVmdDx0aGlzLmNvbnRhaW5tZW50
WzBdfHxlLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+dGhpcy5jb250YWlubWVudFsyXSk/ZTohKGUt
dGhpcy5vZmZzZXQuY2xpY2subGVmdDx0aGlzLmNvbnRhaW5tZW50WzBdKT9lLWIuZ3JpZFswXTpl
K2IuZ3JpZFswXTplfX1yZXR1cm57dG9wOmctdGhpcy5vZmZzZXQuY2xpY2sudG9wLQordGhpcy5v
ZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKGQuYnJvd3Nlci5zYWZh
cmkmJmQuYnJvd3Nlci52ZXJzaW9uPDUyNiYmdGhpcy5jc3NQb3NpdGlvbj09ImZpeGVkIj8wOnRo
aXMuY3NzUG9zaXRpb249PSJmaXhlZCI/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOmY/
MDpjLnNjcm9sbFRvcCgpKSxsZWZ0OmUtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNl
dC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KyhkLmJyb3dzZXIuc2FmYXJp
JiZkLmJyb3dzZXIudmVyc2lvbjw1MjYmJnRoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/MDp0aGlz
LmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6Zj8w
OmMuc2Nyb2xsTGVmdCgpKX19LF9jbGVhcjpmdW5jdGlvbigpe3RoaXMuaGVscGVyLnJlbW92ZUNs
YXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKTt0aGlzLmhlbHBlclswXSE9Cit0aGlzLmVsZW1l
bnRbMF0mJiF0aGlzLmNhbmNlbEhlbHBlclJlbW92YWwmJnRoaXMuaGVscGVyLnJlbW92ZSgpO3Ro
aXMuaGVscGVyPW51bGw7dGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsPWZhbHNlfSxfdHJpZ2dlcjpm
dW5jdGlvbihhLGIsYyl7Yz1jfHx0aGlzLl91aUhhc2goKTtkLnVpLnBsdWdpbi5jYWxsKHRoaXMs
YSxbYixjXSk7aWYoYT09ImRyYWciKXRoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0
aW9uVG8oImFic29sdXRlIik7cmV0dXJuIGQuV2lkZ2V0LnByb3RvdHlwZS5fdHJpZ2dlci5jYWxs
KHRoaXMsYSxiLGMpfSxwbHVnaW5zOnt9LF91aUhhc2g6ZnVuY3Rpb24oKXtyZXR1cm57aGVscGVy
OnRoaXMuaGVscGVyLHBvc2l0aW9uOnRoaXMucG9zaXRpb24sb3JpZ2luYWxQb3NpdGlvbjp0aGlz
Lm9yaWdpbmFsUG9zaXRpb24sb2Zmc2V0OnRoaXMucG9zaXRpb25BYnN9fX0pO2QuZXh0ZW5kKGQu
dWkuZHJhZ2dhYmxlLHt2ZXJzaW9uOiIxLjguMTAifSk7CitkLnVpLnBsdWdpbi5hZGQoImRyYWdn
YWJsZSIsImNvbm5lY3RUb1NvcnRhYmxlIix7c3RhcnQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1kKHRo
aXMpLmRhdGEoImRyYWdnYWJsZSIpLGY9Yy5vcHRpb25zLGU9ZC5leHRlbmQoe30sYix7aXRlbTpj
LmVsZW1lbnR9KTtjLnNvcnRhYmxlcz1bXTtkKGYuY29ubmVjdFRvU29ydGFibGUpLmVhY2goZnVu
Y3Rpb24oKXt2YXIgZz1kLmRhdGEodGhpcywic29ydGFibGUiKTtpZihnJiYhZy5vcHRpb25zLmRp
c2FibGVkKXtjLnNvcnRhYmxlcy5wdXNoKHtpbnN0YW5jZTpnLHNob3VsZFJldmVydDpnLm9wdGlv
bnMucmV2ZXJ0fSk7Zy5fcmVmcmVzaEl0ZW1zKCk7Zy5fdHJpZ2dlcigiYWN0aXZhdGUiLGEsZSl9
fSl9LHN0b3A6ZnVuY3Rpb24oYSxiKXt2YXIgYz1kKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLGY9
ZC5leHRlbmQoe30sYix7aXRlbTpjLmVsZW1lbnR9KTtkLmVhY2goYy5zb3J0YWJsZXMsZnVuY3Rp
b24oKXtpZih0aGlzLmluc3RhbmNlLmlzT3Zlcil7dGhpcy5pbnN0YW5jZS5pc092ZXI9CiswO2Mu
Y2FuY2VsSGVscGVyUmVtb3ZhbD10cnVlO3RoaXMuaW5zdGFuY2UuY2FuY2VsSGVscGVyUmVtb3Zh
bD1mYWxzZTtpZih0aGlzLnNob3VsZFJldmVydCl0aGlzLmluc3RhbmNlLm9wdGlvbnMucmV2ZXJ0
PXRydWU7dGhpcy5pbnN0YW5jZS5fbW91c2VTdG9wKGEpO3RoaXMuaW5zdGFuY2Uub3B0aW9ucy5o
ZWxwZXI9dGhpcy5pbnN0YW5jZS5vcHRpb25zLl9oZWxwZXI7Yy5vcHRpb25zLmhlbHBlcj09Im9y
aWdpbmFsIiYmdGhpcy5pbnN0YW5jZS5jdXJyZW50SXRlbS5jc3Moe3RvcDoiYXV0byIsbGVmdDoi
YXV0byJ9KX1lbHNle3RoaXMuaW5zdGFuY2UuY2FuY2VsSGVscGVyUmVtb3ZhbD1mYWxzZTt0aGlz
Lmluc3RhbmNlLl90cmlnZ2VyKCJkZWFjdGl2YXRlIixhLGYpfX0pfSxkcmFnOmZ1bmN0aW9uKGEs
Yil7dmFyIGM9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKSxmPXRoaXM7ZC5lYWNoKGMuc29ydGFi
bGVzLGZ1bmN0aW9uKCl7dGhpcy5pbnN0YW5jZS5wb3NpdGlvbkFicz0KK2MucG9zaXRpb25BYnM7
dGhpcy5pbnN0YW5jZS5oZWxwZXJQcm9wb3J0aW9ucz1jLmhlbHBlclByb3BvcnRpb25zO3RoaXMu
aW5zdGFuY2Uub2Zmc2V0LmNsaWNrPWMub2Zmc2V0LmNsaWNrO2lmKHRoaXMuaW5zdGFuY2UuX2lu
dGVyc2VjdHNXaXRoKHRoaXMuaW5zdGFuY2UuY29udGFpbmVyQ2FjaGUpKXtpZighdGhpcy5pbnN0
YW5jZS5pc092ZXIpe3RoaXMuaW5zdGFuY2UuaXNPdmVyPTE7dGhpcy5pbnN0YW5jZS5jdXJyZW50
SXRlbT1kKGYpLmNsb25lKCkuYXBwZW5kVG8odGhpcy5pbnN0YW5jZS5lbGVtZW50KS5kYXRhKCJz
b3J0YWJsZS1pdGVtIix0cnVlKTt0aGlzLmluc3RhbmNlLm9wdGlvbnMuX2hlbHBlcj10aGlzLmlu
c3RhbmNlLm9wdGlvbnMuaGVscGVyO3RoaXMuaW5zdGFuY2Uub3B0aW9ucy5oZWxwZXI9ZnVuY3Rp
b24oKXtyZXR1cm4gYi5oZWxwZXJbMF19O2EudGFyZ2V0PXRoaXMuaW5zdGFuY2UuY3VycmVudEl0
ZW1bMF07dGhpcy5pbnN0YW5jZS5fbW91c2VDYXB0dXJlKGEsCit0cnVlKTt0aGlzLmluc3RhbmNl
Ll9tb3VzZVN0YXJ0KGEsdHJ1ZSx0cnVlKTt0aGlzLmluc3RhbmNlLm9mZnNldC5jbGljay50b3A9
Yy5vZmZzZXQuY2xpY2sudG9wO3RoaXMuaW5zdGFuY2Uub2Zmc2V0LmNsaWNrLmxlZnQ9Yy5vZmZz
ZXQuY2xpY2subGVmdDt0aGlzLmluc3RhbmNlLm9mZnNldC5wYXJlbnQubGVmdC09Yy5vZmZzZXQu
cGFyZW50LmxlZnQtdGhpcy5pbnN0YW5jZS5vZmZzZXQucGFyZW50LmxlZnQ7dGhpcy5pbnN0YW5j
ZS5vZmZzZXQucGFyZW50LnRvcC09Yy5vZmZzZXQucGFyZW50LnRvcC10aGlzLmluc3RhbmNlLm9m
ZnNldC5wYXJlbnQudG9wO2MuX3RyaWdnZXIoInRvU29ydGFibGUiLGEpO2MuZHJvcHBlZD10aGlz
Lmluc3RhbmNlLmVsZW1lbnQ7Yy5jdXJyZW50SXRlbT1jLmVsZW1lbnQ7dGhpcy5pbnN0YW5jZS5m
cm9tT3V0c2lkZT1jfXRoaXMuaW5zdGFuY2UuY3VycmVudEl0ZW0mJnRoaXMuaW5zdGFuY2UuX21v
dXNlRHJhZyhhKX1lbHNlIGlmKHRoaXMuaW5zdGFuY2UuaXNPdmVyKXt0aGlzLmluc3RhbmNlLmlz
T3Zlcj0KKzA7dGhpcy5pbnN0YW5jZS5jYW5jZWxIZWxwZXJSZW1vdmFsPXRydWU7dGhpcy5pbnN0
YW5jZS5vcHRpb25zLnJldmVydD1mYWxzZTt0aGlzLmluc3RhbmNlLl90cmlnZ2VyKCJvdXQiLGEs
dGhpcy5pbnN0YW5jZS5fdWlIYXNoKHRoaXMuaW5zdGFuY2UpKTt0aGlzLmluc3RhbmNlLl9tb3Vz
ZVN0b3AoYSx0cnVlKTt0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGVscGVyPXRoaXMuaW5zdGFuY2Uu
b3B0aW9ucy5faGVscGVyO3RoaXMuaW5zdGFuY2UuY3VycmVudEl0ZW0ucmVtb3ZlKCk7dGhpcy5p
bnN0YW5jZS5wbGFjZWhvbGRlciYmdGhpcy5pbnN0YW5jZS5wbGFjZWhvbGRlci5yZW1vdmUoKTtj
Ll90cmlnZ2VyKCJmcm9tU29ydGFibGUiLGEpO2MuZHJvcHBlZD1mYWxzZX19KX19KTtkLnVpLnBs
dWdpbi5hZGQoImRyYWdnYWJsZSIsImN1cnNvciIse3N0YXJ0OmZ1bmN0aW9uKCl7dmFyIGE9ZCgi
Ym9keSIpLGI9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25zO2lmKGEuY3NzKCJjdXJz
b3IiKSliLl9jdXJzb3I9CithLmNzcygiY3Vyc29yIik7YS5jc3MoImN1cnNvciIsYi5jdXJzb3Ip
fSxzdG9wOmZ1bmN0aW9uKCl7dmFyIGE9ZCh0aGlzKS5kYXRhKCJkcmFnZ2FibGUiKS5vcHRpb25z
O2EuX2N1cnNvciYmZCgiYm9keSIpLmNzcygiY3Vyc29yIixhLl9jdXJzb3IpfX0pO2QudWkucGx1
Z2luLmFkZCgiZHJhZ2dhYmxlIiwiaWZyYW1lRml4Iix7c3RhcnQ6ZnVuY3Rpb24oKXt2YXIgYT1k
KHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLm9wdGlvbnM7ZChhLmlmcmFtZUZpeD09PXRydWU/Imlm
cmFtZSI6YS5pZnJhbWVGaXgpLmVhY2goZnVuY3Rpb24oKXtkKCc8ZGl2IGNsYXNzPSJ1aS1kcmFn
Z2FibGUtaWZyYW1lRml4IiBzdHlsZT0iYmFja2dyb3VuZDogI2ZmZjsiPjwvZGl2PicpLmNzcyh7
d2lkdGg6dGhpcy5vZmZzZXRXaWR0aCsicHgiLGhlaWdodDp0aGlzLm9mZnNldEhlaWdodCsicHgi
LHBvc2l0aW9uOiJhYnNvbHV0ZSIsb3BhY2l0eToiMC4wMDEiLHpJbmRleDoxRTN9KS5jc3MoZCh0
aGlzKS5vZmZzZXQoKSkuYXBwZW5kVG8oImJvZHkiKX0pfSwKK3N0b3A6ZnVuY3Rpb24oKXtkKCJk
aXYudWktZHJhZ2dhYmxlLWlmcmFtZUZpeCIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQodGhpcyl9KX19KTtkLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsIm9w
YWNpdHkiLHtzdGFydDpmdW5jdGlvbihhLGIpe2E9ZChiLmhlbHBlcik7Yj1kKHRoaXMpLmRhdGEo
ImRyYWdnYWJsZSIpLm9wdGlvbnM7aWYoYS5jc3MoIm9wYWNpdHkiKSliLl9vcGFjaXR5PWEuY3Nz
KCJvcGFjaXR5Iik7YS5jc3MoIm9wYWNpdHkiLGIub3BhY2l0eSl9LHN0b3A6ZnVuY3Rpb24oYSxi
KXthPWQodGhpcykuZGF0YSgiZHJhZ2dhYmxlIikub3B0aW9uczthLl9vcGFjaXR5JiZkKGIuaGVs
cGVyKS5jc3MoIm9wYWNpdHkiLGEuX29wYWNpdHkpfX0pO2QudWkucGx1Z2luLmFkZCgiZHJhZ2dh
YmxlIiwic2Nyb2xsIix7c3RhcnQ6ZnVuY3Rpb24oKXt2YXIgYT1kKHRoaXMpLmRhdGEoImRyYWdn
YWJsZSIpO2lmKGEuc2Nyb2xsUGFyZW50WzBdIT0KK2RvY3VtZW50JiZhLnNjcm9sbFBhcmVudFsw
XS50YWdOYW1lIT0iSFRNTCIpYS5vdmVyZmxvd09mZnNldD1hLnNjcm9sbFBhcmVudC5vZmZzZXQo
KX0sZHJhZzpmdW5jdGlvbihhKXt2YXIgYj1kKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLGM9Yi5v
cHRpb25zLGY9ZmFsc2U7aWYoYi5zY3JvbGxQYXJlbnRbMF0hPWRvY3VtZW50JiZiLnNjcm9sbFBh
cmVudFswXS50YWdOYW1lIT0iSFRNTCIpe2lmKCFjLmF4aXN8fGMuYXhpcyE9IngiKWlmKGIub3Zl
cmZsb3dPZmZzZXQudG9wK2Iuc2Nyb2xsUGFyZW50WzBdLm9mZnNldEhlaWdodC1hLnBhZ2VZPGMu
c2Nyb2xsU2Vuc2l0aXZpdHkpYi5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPWY9Yi5zY3JvbGxQ
YXJlbnRbMF0uc2Nyb2xsVG9wK2Muc2Nyb2xsU3BlZWQ7ZWxzZSBpZihhLnBhZ2VZLWIub3ZlcmZs
b3dPZmZzZXQudG9wPGMuc2Nyb2xsU2Vuc2l0aXZpdHkpYi5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xs
VG9wPWY9Yi5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wLQorYy5zY3JvbGxTcGVlZDtpZighYy5h
eGlzfHxjLmF4aXMhPSJ5IilpZihiLm92ZXJmbG93T2Zmc2V0LmxlZnQrYi5zY3JvbGxQYXJlbnRb
MF0ub2Zmc2V0V2lkdGgtYS5wYWdlWDxjLnNjcm9sbFNlbnNpdGl2aXR5KWIuc2Nyb2xsUGFyZW50
WzBdLnNjcm9sbExlZnQ9Zj1iLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0K2Muc2Nyb2xsU3Bl
ZWQ7ZWxzZSBpZihhLnBhZ2VYLWIub3ZlcmZsb3dPZmZzZXQubGVmdDxjLnNjcm9sbFNlbnNpdGl2
aXR5KWIuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQ9Zj1iLnNjcm9sbFBhcmVudFswXS5zY3Jv
bGxMZWZ0LWMuc2Nyb2xsU3BlZWR9ZWxzZXtpZighYy5heGlzfHxjLmF4aXMhPSJ4IilpZihhLnBh
Z2VZLWQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpPGMuc2Nyb2xsU2Vuc2l0aXZpdHkpZj1kKGRvY3Vt
ZW50KS5zY3JvbGxUb3AoZChkb2N1bWVudCkuc2Nyb2xsVG9wKCktYy5zY3JvbGxTcGVlZCk7ZWxz
ZSBpZihkKHdpbmRvdykuaGVpZ2h0KCktCisoYS5wYWdlWS1kKGRvY3VtZW50KS5zY3JvbGxUb3Ao
KSk8Yy5zY3JvbGxTZW5zaXRpdml0eSlmPWQoZG9jdW1lbnQpLnNjcm9sbFRvcChkKGRvY3VtZW50
KS5zY3JvbGxUb3AoKStjLnNjcm9sbFNwZWVkKTtpZighYy5heGlzfHxjLmF4aXMhPSJ5IilpZihh
LnBhZ2VYLWQoZG9jdW1lbnQpLnNjcm9sbExlZnQoKTxjLnNjcm9sbFNlbnNpdGl2aXR5KWY9ZChk
b2N1bWVudCkuc2Nyb2xsTGVmdChkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCktYy5zY3JvbGxTcGVl
ZCk7ZWxzZSBpZihkKHdpbmRvdykud2lkdGgoKS0oYS5wYWdlWC1kKGRvY3VtZW50KS5zY3JvbGxM
ZWZ0KCkpPGMuc2Nyb2xsU2Vuc2l0aXZpdHkpZj1kKGRvY3VtZW50KS5zY3JvbGxMZWZ0KGQoZG9j
dW1lbnQpLnNjcm9sbExlZnQoKStjLnNjcm9sbFNwZWVkKX1mIT09ZmFsc2UmJmQudWkuZGRtYW5h
Z2VyJiYhYy5kcm9wQmVoYXZpb3VyJiZkLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyhiLGEp
fX0pO2QudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwKKyJzbmFwIix7c3RhcnQ6ZnVuY3Rpb24o
KXt2YXIgYT1kKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLGI9YS5vcHRpb25zO2Euc25hcEVsZW1l
bnRzPVtdO2QoYi5zbmFwLmNvbnN0cnVjdG9yIT1TdHJpbmc/Yi5zbmFwLml0ZW1zfHwiOmRhdGEo
ZHJhZ2dhYmxlKSI6Yi5zbmFwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9ZCh0aGlzKSxmPWMub2Zm
c2V0KCk7dGhpcyE9YS5lbGVtZW50WzBdJiZhLnNuYXBFbGVtZW50cy5wdXNoKHtpdGVtOnRoaXMs
d2lkdGg6Yy5vdXRlcldpZHRoKCksaGVpZ2h0OmMub3V0ZXJIZWlnaHQoKSx0b3A6Zi50b3AsbGVm
dDpmLmxlZnR9KX0pfSxkcmFnOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWQodGhpcykuZGF0YSgi
ZHJhZ2dhYmxlIiksZj1jLm9wdGlvbnMsZT1mLnNuYXBUb2xlcmFuY2UsZz1iLm9mZnNldC5sZWZ0
LG49ZytjLmhlbHBlclByb3BvcnRpb25zLndpZHRoLG09Yi5vZmZzZXQudG9wLG89bStjLmhlbHBl
clByb3BvcnRpb25zLmhlaWdodCxoPQorYy5zbmFwRWxlbWVudHMubGVuZ3RoLTE7aD49MDtoLS0p
e3ZhciBpPWMuc25hcEVsZW1lbnRzW2hdLmxlZnQsaz1pK2Muc25hcEVsZW1lbnRzW2hdLndpZHRo
LGo9Yy5zbmFwRWxlbWVudHNbaF0udG9wLGw9aitjLnNuYXBFbGVtZW50c1toXS5oZWlnaHQ7aWYo
aS1lPGcmJmc8aytlJiZqLWU8bSYmbTxsK2V8fGktZTxnJiZnPGsrZSYmai1lPG8mJm88bCtlfHxp
LWU8biYmbjxrK2UmJmotZTxtJiZtPGwrZXx8aS1lPG4mJm48aytlJiZqLWU8byYmbzxsK2Upe2lm
KGYuc25hcE1vZGUhPSJpbm5lciIpe3ZhciBwPU1hdGguYWJzKGotbyk8PWUscT1NYXRoLmFicyhs
LW0pPD1lLHI9TWF0aC5hYnMoaS1uKTw9ZSxzPU1hdGguYWJzKGstZyk8PWU7aWYocCliLnBvc2l0
aW9uLnRvcD1jLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6ai1jLmhlbHBlclBy
b3BvcnRpb25zLmhlaWdodCxsZWZ0OjB9KS50b3AtYy5tYXJnaW5zLnRvcDtpZihxKWIucG9zaXRp
b24udG9wPWMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsCit7dG9wOmwsbGVmdDowfSku
dG9wLWMubWFyZ2lucy50b3A7aWYociliLnBvc2l0aW9uLmxlZnQ9Yy5fY29udmVydFBvc2l0aW9u
VG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDppLWMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGh9KS5s
ZWZ0LWMubWFyZ2lucy5sZWZ0O2lmKHMpYi5wb3NpdGlvbi5sZWZ0PWMuX2NvbnZlcnRQb3NpdGlv
blRvKCJyZWxhdGl2ZSIse3RvcDowLGxlZnQ6a30pLmxlZnQtYy5tYXJnaW5zLmxlZnR9dmFyIHQ9
cHx8cXx8cnx8cztpZihmLnNuYXBNb2RlIT0ib3V0ZXIiKXtwPU1hdGguYWJzKGotbSk8PWU7cT1N
YXRoLmFicyhsLW8pPD1lO3I9TWF0aC5hYnMoaS1nKTw9ZTtzPU1hdGguYWJzKGstbik8PWU7aWYo
cCliLnBvc2l0aW9uLnRvcD1jLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6aixs
ZWZ0OjB9KS50b3AtYy5tYXJnaW5zLnRvcDtpZihxKWIucG9zaXRpb24udG9wPWMuX2NvbnZlcnRQ
b3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDpsLWMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LAor
bGVmdDowfSkudG9wLWMubWFyZ2lucy50b3A7aWYociliLnBvc2l0aW9uLmxlZnQ9Yy5fY29udmVy
dFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDppfSkubGVmdC1jLm1hcmdpbnMubGVm
dDtpZihzKWIucG9zaXRpb24ubGVmdD1jLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0
b3A6MCxsZWZ0OmstYy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQtYy5tYXJnaW5zLmxl
ZnR9aWYoIWMuc25hcEVsZW1lbnRzW2hdLnNuYXBwaW5nJiYocHx8cXx8cnx8c3x8dCkpYy5vcHRp
b25zLnNuYXAuc25hcCYmYy5vcHRpb25zLnNuYXAuc25hcC5jYWxsKGMuZWxlbWVudCxhLGQuZXh0
ZW5kKGMuX3VpSGFzaCgpLHtzbmFwSXRlbTpjLnNuYXBFbGVtZW50c1toXS5pdGVtfSkpO2Muc25h
cEVsZW1lbnRzW2hdLnNuYXBwaW5nPXB8fHF8fHJ8fHN8fHR9ZWxzZXtjLnNuYXBFbGVtZW50c1to
XS5zbmFwcGluZyYmYy5vcHRpb25zLnNuYXAucmVsZWFzZSYmYy5vcHRpb25zLnNuYXAucmVsZWFz
ZS5jYWxsKGMuZWxlbWVudCwKK2EsZC5leHRlbmQoYy5fdWlIYXNoKCkse3NuYXBJdGVtOmMuc25h
cEVsZW1lbnRzW2hdLml0ZW19KSk7Yy5zbmFwRWxlbWVudHNbaF0uc25hcHBpbmc9ZmFsc2V9fX19
KTtkLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInN0YWNrIix7c3RhcnQ6ZnVuY3Rpb24oKXt2
YXIgYT1kKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIpLm9wdGlvbnM7YT1kLm1ha2VBcnJheShkKGEu
c3RhY2spKS5zb3J0KGZ1bmN0aW9uKGMsZil7cmV0dXJuKHBhcnNlSW50KGQoYykuY3NzKCJ6SW5k
ZXgiKSwxMCl8fDApLShwYXJzZUludChkKGYpLmNzcygiekluZGV4IiksMTApfHwwKX0pO2lmKGEu
bGVuZ3RoKXt2YXIgYj1wYXJzZUludChhWzBdLnN0eWxlLnpJbmRleCl8fDA7ZChhKS5lYWNoKGZ1
bmN0aW9uKGMpe3RoaXMuc3R5bGUuekluZGV4PWIrY30pO3RoaXNbMF0uc3R5bGUuekluZGV4PWIr
YS5sZW5ndGh9fX0pO2QudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwiekluZGV4Iix7c3RhcnQ6
ZnVuY3Rpb24oYSwKK2Ipe2E9ZChiLmhlbHBlcik7Yj1kKHRoaXMpLmRhdGEoImRyYWdnYWJsZSIp
Lm9wdGlvbnM7aWYoYS5jc3MoInpJbmRleCIpKWIuX3pJbmRleD1hLmNzcygiekluZGV4Iik7YS5j
c3MoInpJbmRleCIsYi56SW5kZXgpfSxzdG9wOmZ1bmN0aW9uKGEsYil7YT1kKHRoaXMpLmRhdGEo
ImRyYWdnYWJsZSIpLm9wdGlvbnM7YS5fekluZGV4JiZkKGIuaGVscGVyKS5jc3MoInpJbmRleCIs
YS5fekluZGV4KX19KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBEcm9wcGFibGUgMS44
LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWku
Y29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9u
IDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDov
L2RvY3MuanF1ZXJ5LmNvbS9VSS9Ecm9wcGFibGVzCisgKgorICogRGVwZW5kczoKKyAqCWpxdWVy
eS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkud2lkZ2V0LmpzCisgKglqcXVlcnkudWkubW91c2Uu
anMKKyAqCWpxdWVyeS51aS5kcmFnZ2FibGUuanMKKyAqLworKGZ1bmN0aW9uKGQpe2Qud2lkZ2V0
KCJ1aS5kcm9wcGFibGUiLHt3aWRnZXRFdmVudFByZWZpeDoiZHJvcCIsb3B0aW9uczp7YWNjZXB0
OiIqIixhY3RpdmVDbGFzczpmYWxzZSxhZGRDbGFzc2VzOnRydWUsZ3JlZWR5OmZhbHNlLGhvdmVy
Q2xhc3M6ZmFsc2Usc2NvcGU6ImRlZmF1bHQiLHRvbGVyYW5jZToiaW50ZXJzZWN0In0sX2NyZWF0
ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucyxiPWEuYWNjZXB0O3RoaXMuaXNvdmVyPTA7
dGhpcy5pc291dD0xO3RoaXMuYWNjZXB0PWQuaXNGdW5jdGlvbihiKT9iOmZ1bmN0aW9uKGMpe3Jl
dHVybiBjLmlzKGIpfTt0aGlzLnByb3BvcnRpb25zPXt3aWR0aDp0aGlzLmVsZW1lbnRbMF0ub2Zm
c2V0V2lkdGgsaGVpZ2h0OnRoaXMuZWxlbWVudFswXS5vZmZzZXRIZWlnaHR9O2QudWkuZGRtYW5h
Z2VyLmRyb3BwYWJsZXNbYS5zY29wZV09ZC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1thLnNjb3Bl
XXx8W107ZC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1thLnNjb3BlXS5wdXNoKHRoaXMpOworYS5h
ZGRDbGFzc2VzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyb3BwYWJsZSIpfSxkZXN0cm95
OmZ1bmN0aW9uKCl7Zm9yKHZhciBhPWQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdGhpcy5vcHRp
b25zLnNjb3BlXSxiPTA7YjxhLmxlbmd0aDtiKyspYVtiXT09dGhpcyYmYS5zcGxpY2UoYiwxKTt0
aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyb3BwYWJsZSB1aS1kcm9wcGFibGUtZGlzYWJs
ZWQiKS5yZW1vdmVEYXRhKCJkcm9wcGFibGUiKS51bmJpbmQoIi5kcm9wcGFibGUiKTtyZXR1cm4g
dGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbihhLGIpe2lmKGE9PSJhY2NlcHQiKXRoaXMuYWNjZXB0
PWQuaXNGdW5jdGlvbihiKT9iOmZ1bmN0aW9uKGMpe3JldHVybiBjLmlzKGIpfTtkLldpZGdldC5w
cm90b3R5cGUuX3NldE9wdGlvbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LF9hY3RpdmF0ZTpmdW5j
dGlvbihhKXt2YXIgYj1kLnVpLmRkbWFuYWdlci5jdXJyZW50O3RoaXMub3B0aW9ucy5hY3RpdmVD
bGFzcyYmCit0aGlzLmVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKTti
JiZ0aGlzLl90cmlnZ2VyKCJhY3RpdmF0ZSIsYSx0aGlzLnVpKGIpKX0sX2RlYWN0aXZhdGU6ZnVu
Y3Rpb24oYSl7dmFyIGI9ZC51aS5kZG1hbmFnZXIuY3VycmVudDt0aGlzLm9wdGlvbnMuYWN0aXZl
Q2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3Mp
O2ImJnRoaXMuX3RyaWdnZXIoImRlYWN0aXZhdGUiLGEsdGhpcy51aShiKSl9LF9vdmVyOmZ1bmN0
aW9uKGEpe3ZhciBiPWQudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7aWYoISghYnx8KGIuY3VycmVudEl0
ZW18fGIuZWxlbWVudClbMF09PXRoaXMuZWxlbWVudFswXSkpaWYodGhpcy5hY2NlcHQuY2FsbCh0
aGlzLmVsZW1lbnRbMF0sYi5jdXJyZW50SXRlbXx8Yi5lbGVtZW50KSl7dGhpcy5vcHRpb25zLmhv
dmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyk7
Cit0aGlzLl90cmlnZ2VyKCJvdmVyIixhLHRoaXMudWkoYikpfX0sX291dDpmdW5jdGlvbihhKXt2
YXIgYj1kLnVpLmRkbWFuYWdlci5jdXJyZW50O2lmKCEoIWJ8fChiLmN1cnJlbnRJdGVtfHxiLmVs
ZW1lbnQpWzBdPT10aGlzLmVsZW1lbnRbMF0pKWlmKHRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVt
ZW50WzBdLGIuY3VycmVudEl0ZW18fGIuZWxlbWVudCkpe3RoaXMub3B0aW9ucy5ob3ZlckNsYXNz
JiZ0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MpO3RoaXMu
X3RyaWdnZXIoIm91dCIsYSx0aGlzLnVpKGIpKX19LF9kcm9wOmZ1bmN0aW9uKGEsYil7dmFyIGM9
Ynx8ZC51aS5kZG1hbmFnZXIuY3VycmVudDtpZighY3x8KGMuY3VycmVudEl0ZW18fGMuZWxlbWVu
dClbMF09PXRoaXMuZWxlbWVudFswXSlyZXR1cm4gZmFsc2U7dmFyIGU9ZmFsc2U7dGhpcy5lbGVt
ZW50LmZpbmQoIjpkYXRhKGRyb3BwYWJsZSkiKS5ub3QoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmci
KS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9CitkLmRhdGEodGhpcywiZHJvcHBhYmxlIik7aWYoZy5v
cHRpb25zLmdyZWVkeSYmIWcub3B0aW9ucy5kaXNhYmxlZCYmZy5vcHRpb25zLnNjb3BlPT1jLm9w
dGlvbnMuc2NvcGUmJmcuYWNjZXB0LmNhbGwoZy5lbGVtZW50WzBdLGMuY3VycmVudEl0ZW18fGMu
ZWxlbWVudCkmJmQudWkuaW50ZXJzZWN0KGMsZC5leHRlbmQoZyx7b2Zmc2V0OmcuZWxlbWVudC5v
ZmZzZXQoKX0pLGcub3B0aW9ucy50b2xlcmFuY2UpKXtlPXRydWU7cmV0dXJuIGZhbHNlfX0pO2lm
KGUpcmV0dXJuIGZhbHNlO2lmKHRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLGMuY3Vy
cmVudEl0ZW18fGMuZWxlbWVudCkpe3RoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyYmdGhpcy5lbGVt
ZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyk7dGhpcy5vcHRpb25zLmhv
dmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFz
cyk7dGhpcy5fdHJpZ2dlcigiZHJvcCIsCithLHRoaXMudWkoYykpO3JldHVybiB0aGlzLmVsZW1l
bnR9cmV0dXJuIGZhbHNlfSx1aTpmdW5jdGlvbihhKXtyZXR1cm57ZHJhZ2dhYmxlOmEuY3VycmVu
dEl0ZW18fGEuZWxlbWVudCxoZWxwZXI6YS5oZWxwZXIscG9zaXRpb246YS5wb3NpdGlvbixvZmZz
ZXQ6YS5wb3NpdGlvbkFic319fSk7ZC5leHRlbmQoZC51aS5kcm9wcGFibGUse3ZlcnNpb246IjEu
OC4xMCJ9KTtkLnVpLmludGVyc2VjdD1mdW5jdGlvbihhLGIsYyl7aWYoIWIub2Zmc2V0KXJldHVy
biBmYWxzZTt2YXIgZT0oYS5wb3NpdGlvbkFic3x8YS5wb3NpdGlvbi5hYnNvbHV0ZSkubGVmdCxn
PWUrYS5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCxmPShhLnBvc2l0aW9uQWJzfHxhLnBvc2l0aW9u
LmFic29sdXRlKS50b3AsaD1mK2EuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGk9Yi5vZmZzZXQu
bGVmdCxrPWkrYi5wcm9wb3J0aW9ucy53aWR0aCxqPWIub2Zmc2V0LnRvcCxsPWorYi5wcm9wb3J0
aW9ucy5oZWlnaHQ7Citzd2l0Y2goYyl7Y2FzZSAiZml0IjpyZXR1cm4gaTw9ZSYmZzw9ayYmajw9
ZiYmaDw9bDtjYXNlICJpbnRlcnNlY3QiOnJldHVybiBpPGUrYS5oZWxwZXJQcm9wb3J0aW9ucy53
aWR0aC8yJiZnLWEuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMjxrJiZqPGYrYS5oZWxwZXJQcm9w
b3J0aW9ucy5oZWlnaHQvMiYmaC1hLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yPGw7Y2FzZSAi
cG9pbnRlciI6cmV0dXJuIGQudWkuaXNPdmVyKChhLnBvc2l0aW9uQWJzfHxhLnBvc2l0aW9uLmFi
c29sdXRlKS50b3ArKGEuY2xpY2tPZmZzZXR8fGEub2Zmc2V0LmNsaWNrKS50b3AsKGEucG9zaXRp
b25BYnN8fGEucG9zaXRpb24uYWJzb2x1dGUpLmxlZnQrKGEuY2xpY2tPZmZzZXR8fGEub2Zmc2V0
LmNsaWNrKS5sZWZ0LGosaSxiLnByb3BvcnRpb25zLmhlaWdodCxiLnByb3BvcnRpb25zLndpZHRo
KTtjYXNlICJ0b3VjaCI6cmV0dXJuKGY+PWomJmY8PWx8fGg+PWomJmg8PWx8fGY8aiYmaD5sKSYm
KGU+PQoraSYmZTw9a3x8Zz49aSYmZzw9a3x8ZTxpJiZnPmspO2RlZmF1bHQ6cmV0dXJuIGZhbHNl
fX07ZC51aS5kZG1hbmFnZXI9e2N1cnJlbnQ6bnVsbCxkcm9wcGFibGVzOnsiZGVmYXVsdCI6W119
LHByZXBhcmVPZmZzZXRzOmZ1bmN0aW9uKGEsYil7dmFyIGM9ZC51aS5kZG1hbmFnZXIuZHJvcHBh
Ymxlc1thLm9wdGlvbnMuc2NvcGVdfHxbXSxlPWI/Yi50eXBlOm51bGwsZz0oYS5jdXJyZW50SXRl
bXx8YS5lbGVtZW50KS5maW5kKCI6ZGF0YShkcm9wcGFibGUpIikuYW5kU2VsZigpLGY9MDthOmZv
cig7ZjxjLmxlbmd0aDtmKyspaWYoIShjW2ZdLm9wdGlvbnMuZGlzYWJsZWR8fGEmJiFjW2ZdLmFj
Y2VwdC5jYWxsKGNbZl0uZWxlbWVudFswXSxhLmN1cnJlbnRJdGVtfHxhLmVsZW1lbnQpKSl7Zm9y
KHZhciBoPTA7aDxnLmxlbmd0aDtoKyspaWYoZ1toXT09Y1tmXS5lbGVtZW50WzBdKXtjW2ZdLnBy
b3BvcnRpb25zLmhlaWdodD0wO2NvbnRpbnVlIGF9Y1tmXS52aXNpYmxlPWNbZl0uZWxlbWVudC5j
c3MoImRpc3BsYXkiKSE9Cisibm9uZSI7aWYoY1tmXS52aXNpYmxlKXtjW2ZdLm9mZnNldD1jW2Zd
LmVsZW1lbnQub2Zmc2V0KCk7Y1tmXS5wcm9wb3J0aW9ucz17d2lkdGg6Y1tmXS5lbGVtZW50WzBd
Lm9mZnNldFdpZHRoLGhlaWdodDpjW2ZdLmVsZW1lbnRbMF0ub2Zmc2V0SGVpZ2h0fTtlPT0ibW91
c2Vkb3duIiYmY1tmXS5fYWN0aXZhdGUuY2FsbChjW2ZdLGIpfX19LGRyb3A6ZnVuY3Rpb24oYSxi
KXt2YXIgYz1mYWxzZTtkLmVhY2goZC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1thLm9wdGlvbnMu
c2NvcGVdfHxbXSxmdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucyl7aWYoIXRoaXMub3B0aW9ucy5k
aXNhYmxlZCYmdGhpcy52aXNpYmxlJiZkLnVpLmludGVyc2VjdChhLHRoaXMsdGhpcy5vcHRpb25z
LnRvbGVyYW5jZSkpYz1jfHx0aGlzLl9kcm9wLmNhbGwodGhpcyxiKTtpZighdGhpcy5vcHRpb25z
LmRpc2FibGVkJiZ0aGlzLnZpc2libGUmJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBd
LGEuY3VycmVudEl0ZW18fAorYS5lbGVtZW50KSl7dGhpcy5pc291dD0xO3RoaXMuaXNvdmVyPTA7
dGhpcy5fZGVhY3RpdmF0ZS5jYWxsKHRoaXMsYil9fX0pO3JldHVybiBjfSxkcmFnOmZ1bmN0aW9u
KGEsYil7YS5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMmJmQudWkuZGRtYW5hZ2VyLnByZXBhcmVP
ZmZzZXRzKGEsYik7ZC5lYWNoKGQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbYS5vcHRpb25zLnNj
b3BlXXx8W10sZnVuY3Rpb24oKXtpZighKHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8dGhpcy5ncmVl
ZHlDaGlsZHx8IXRoaXMudmlzaWJsZSkpe3ZhciBjPWQudWkuaW50ZXJzZWN0KGEsdGhpcyx0aGlz
Lm9wdGlvbnMudG9sZXJhbmNlKTtpZihjPSFjJiZ0aGlzLmlzb3Zlcj09MT8iaXNvdXQiOmMmJnRo
aXMuaXNvdmVyPT0wPyJpc292ZXIiOm51bGwpe3ZhciBlO2lmKHRoaXMub3B0aW9ucy5ncmVlZHkp
e3ZhciBnPXRoaXMuZWxlbWVudC5wYXJlbnRzKCI6ZGF0YShkcm9wcGFibGUpOmVxKDApIik7aWYo
Zy5sZW5ndGgpe2U9CitkLmRhdGEoZ1swXSwiZHJvcHBhYmxlIik7ZS5ncmVlZHlDaGlsZD1jPT0i
aXNvdmVyIj8xOjB9fWlmKGUmJmM9PSJpc292ZXIiKXtlLmlzb3Zlcj0wO2UuaXNvdXQ9MTtlLl9v
dXQuY2FsbChlLGIpfXRoaXNbY109MTt0aGlzW2M9PSJpc291dCI/Imlzb3ZlciI6Imlzb3V0Il09
MDt0aGlzW2M9PSJpc292ZXIiPyJfb3ZlciI6Il9vdXQiXS5jYWxsKHRoaXMsYik7aWYoZSYmYz09
Imlzb3V0Iil7ZS5pc291dD0wO2UuaXNvdmVyPTE7ZS5fb3Zlci5jYWxsKGUsYil9fX19KX19fSko
alF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIFJlc2l6YWJsZSAxLjguMTAKKyAqCisgKiBDb3B5
cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBE
dWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAq
IGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29t
L1VJL1Jlc2l6YWJsZXMKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LnVpLmNvcmUuanMKKyAq
CWpxdWVyeS51aS5tb3VzZS5qcworICoJanF1ZXJ5LnVpLndpZGdldC5qcworICovCisoZnVuY3Rp
b24oZSl7ZS53aWRnZXQoInVpLnJlc2l6YWJsZSIsZS51aS5tb3VzZSx7d2lkZ2V0RXZlbnRQcmVm
aXg6InJlc2l6ZSIsb3B0aW9uczp7YWxzb1Jlc2l6ZTpmYWxzZSxhbmltYXRlOmZhbHNlLGFuaW1h
dGVEdXJhdGlvbjoic2xvdyIsYW5pbWF0ZUVhc2luZzoic3dpbmciLGFzcGVjdFJhdGlvOmZhbHNl
LGF1dG9IaWRlOmZhbHNlLGNvbnRhaW5tZW50OmZhbHNlLGdob3N0OmZhbHNlLGdyaWQ6ZmFsc2Us
aGFuZGxlczoiZSxzLHNlIixoZWxwZXI6ZmFsc2UsbWF4SGVpZ2h0Om51bGwsbWF4V2lkdGg6bnVs
bCxtaW5IZWlnaHQ6MTAsbWluV2lkdGg6MTAsekluZGV4OjFFM30sX2NyZWF0ZTpmdW5jdGlvbigp
e3ZhciBiPXRoaXMsYT10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNp
emFibGUiKTtlLmV4dGVuZCh0aGlzLHtfYXNwZWN0UmF0aW86ISFhLmFzcGVjdFJhdGlvLGFzcGVj
dFJhdGlvOmEuYXNwZWN0UmF0aW8sb3JpZ2luYWxFbGVtZW50OnRoaXMuZWxlbWVudCwKK19wcm9w
b3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzOltdLF9oZWxwZXI6YS5oZWxwZXJ8fGEuZ2hvc3R8fGEu
YW5pbWF0ZT9hLmhlbHBlcnx8InVpLXJlc2l6YWJsZS1oZWxwZXIiOm51bGx9KTtpZih0aGlzLmVs
ZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL2NhbnZhc3x0ZXh0YXJlYXxpbnB1dHxzZWxlY3R8YnV0
dG9ufGltZy9pKSl7L3JlbGF0aXZlLy50ZXN0KHRoaXMuZWxlbWVudC5jc3MoInBvc2l0aW9uIikp
JiZlLmJyb3dzZXIub3BlcmEmJnRoaXMuZWxlbWVudC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIs
dG9wOiJhdXRvIixsZWZ0OiJhdXRvIn0pO3RoaXMuZWxlbWVudC53cmFwKGUoJzxkaXYgY2xhc3M9
InVpLXdyYXBwZXIiIHN0eWxlPSJvdmVyZmxvdzogaGlkZGVuOyI+PC9kaXY+JykuY3NzKHtwb3Np
dGlvbjp0aGlzLmVsZW1lbnQuY3NzKCJwb3NpdGlvbiIpLHdpZHRoOnRoaXMuZWxlbWVudC5vdXRl
cldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLAordG9wOnRoaXMuZWxl
bWVudC5jc3MoInRvcCIpLGxlZnQ6dGhpcy5lbGVtZW50LmNzcygibGVmdCIpfSkpO3RoaXMuZWxl
bWVudD10aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgicmVzaXphYmxlIix0aGlzLmVsZW1lbnQu
ZGF0YSgicmVzaXphYmxlIikpO3RoaXMuZWxlbWVudElzV3JhcHBlcj10cnVlO3RoaXMuZWxlbWVu
dC5jc3Moe21hcmdpbkxlZnQ6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5MZWZ0Iiks
bWFyZ2luVG9wOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luVG9wIiksbWFyZ2luUmln
aHQ6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5SaWdodCIpLG1hcmdpbkJvdHRvbTp0
aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkJvdHRvbSIpfSk7dGhpcy5vcmlnaW5hbEVs
ZW1lbnQuY3NzKHttYXJnaW5MZWZ0OjAsbWFyZ2luVG9wOjAsbWFyZ2luUmlnaHQ6MCxtYXJnaW5C
b3R0b206MH0pO3RoaXMub3JpZ2luYWxSZXNpemVTdHlsZT0KK3RoaXMub3JpZ2luYWxFbGVtZW50
LmNzcygicmVzaXplIik7dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLCJub25lIik7
dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5wdXNoKHRoaXMub3JpZ2luYWxFbGVt
ZW50LmNzcyh7cG9zaXRpb246InN0YXRpYyIsem9vbToxLGRpc3BsYXk6ImJsb2NrIn0pKTt0aGlz
Lm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbjp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1h
cmdpbiIpfSk7dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKX10aGlzLmhhbmRsZXM9YS5oYW5k
bGVzfHwoIWUoIi51aS1yZXNpemFibGUtaGFuZGxlIix0aGlzLmVsZW1lbnQpLmxlbmd0aD8iZSxz
LHNlIjp7bjoiLnVpLXJlc2l6YWJsZS1uIixlOiIudWktcmVzaXphYmxlLWUiLHM6Ii51aS1yZXNp
emFibGUtcyIsdzoiLnVpLXJlc2l6YWJsZS13IixzZToiLnVpLXJlc2l6YWJsZS1zZSIsc3c6Ii51
aS1yZXNpemFibGUtc3ciLG5lOiIudWktcmVzaXphYmxlLW5lIiwKK253OiIudWktcmVzaXphYmxl
LW53In0pO2lmKHRoaXMuaGFuZGxlcy5jb25zdHJ1Y3Rvcj09U3RyaW5nKXtpZih0aGlzLmhhbmRs
ZXM9PSJhbGwiKXRoaXMuaGFuZGxlcz0ibixlLHMsdyxzZSxzdyxuZSxudyI7dmFyIGM9dGhpcy5o
YW5kbGVzLnNwbGl0KCIsIik7dGhpcy5oYW5kbGVzPXt9O2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7
ZCsrKXt2YXIgZj1lLnRyaW0oY1tkXSksZz1lKCc8ZGl2IGNsYXNzPSJ1aS1yZXNpemFibGUtaGFu
ZGxlICcrKCJ1aS1yZXNpemFibGUtIitmKSsnIj48L2Rpdj4nKTsvc3d8c2V8bmV8bncvLnRlc3Qo
ZikmJmcuY3NzKHt6SW5kZXg6KythLnpJbmRleH0pOyJzZSI9PWYmJmcuYWRkQ2xhc3MoInVpLWlj
b24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKTt0aGlzLmhhbmRsZXNbZl09Ii51aS1y
ZXNpemFibGUtIitmO3RoaXMuZWxlbWVudC5hcHBlbmQoZyl9fXRoaXMuX3JlbmRlckF4aXM9ZnVu
Y3Rpb24oaCl7aD1ofHx0aGlzLmVsZW1lbnQ7Zm9yKHZhciBpIGluIHRoaXMuaGFuZGxlcyl7aWYo
dGhpcy5oYW5kbGVzW2ldLmNvbnN0cnVjdG9yPT0KK1N0cmluZyl0aGlzLmhhbmRsZXNbaV09ZSh0
aGlzLmhhbmRsZXNbaV0sdGhpcy5lbGVtZW50KS5zaG93KCk7aWYodGhpcy5lbGVtZW50SXNXcmFw
cGVyJiZ0aGlzLm9yaWdpbmFsRWxlbWVudFswXS5ub2RlTmFtZS5tYXRjaCgvdGV4dGFyZWF8aW5w
dXR8c2VsZWN0fGJ1dHRvbi9pKSl7dmFyIGo9ZSh0aGlzLmhhbmRsZXNbaV0sdGhpcy5lbGVtZW50
KSxrPTA7az0vc3d8bmV8bnd8c2V8bnxzLy50ZXN0KGkpP2oub3V0ZXJIZWlnaHQoKTpqLm91dGVy
V2lkdGgoKTtqPVsicGFkZGluZyIsL25lfG53fG4vLnRlc3QoaSk/IlRvcCI6L3NlfHN3fHMvLnRl
c3QoaSk/IkJvdHRvbSI6L15lJC8udGVzdChpKT8iUmlnaHQiOiJMZWZ0Il0uam9pbigiIik7aC5j
c3MoaixrKTt0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpfWUodGhpcy5oYW5kbGVzW2ldKX19
O3RoaXMuX3JlbmRlckF4aXModGhpcy5lbGVtZW50KTt0aGlzLl9oYW5kbGVzPWUoIi51aS1yZXNp
emFibGUtaGFuZGxlIix0aGlzLmVsZW1lbnQpLmRpc2FibGVTZWxlY3Rpb24oKTsKK3RoaXMuX2hh
bmRsZXMubW91c2VvdmVyKGZ1bmN0aW9uKCl7aWYoIWIucmVzaXppbmcpe2lmKHRoaXMuY2xhc3NO
YW1lKXZhciBoPXRoaXMuY2xhc3NOYW1lLm1hdGNoKC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53
fG58ZXxzfHcpL2kpO2IuYXhpcz1oJiZoWzFdP2hbMV06InNlIn19KTtpZihhLmF1dG9IaWRlKXt0
aGlzLl9oYW5kbGVzLmhpZGUoKTtlKHRoaXMuZWxlbWVudCkuYWRkQ2xhc3MoInVpLXJlc2l6YWJs
ZS1hdXRvaGlkZSIpLmhvdmVyKGZ1bmN0aW9uKCl7ZSh0aGlzKS5yZW1vdmVDbGFzcygidWktcmVz
aXphYmxlLWF1dG9oaWRlIik7Yi5faGFuZGxlcy5zaG93KCl9LGZ1bmN0aW9uKCl7aWYoIWIucmVz
aXppbmcpe2UodGhpcykuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpO2IuX2hhbmRs
ZXMuaGlkZSgpfX0pfXRoaXMuX21vdXNlSW5pdCgpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5f
bW91c2VEZXN0cm95KCk7dmFyIGI9ZnVuY3Rpb24oYyl7ZShjKS5yZW1vdmVDbGFzcygidWktcmVz
aXphYmxlIHVpLXJlc2l6YWJsZS1kaXNhYmxlZCB1aS1yZXNpemFibGUtcmVzaXppbmciKS5yZW1v
dmVEYXRhKCJyZXNpemFibGUiKS51bmJpbmQoIi5yZXNpemFibGUiKS5maW5kKCIudWktcmVzaXph
YmxlLWhhbmRsZSIpLnJlbW92ZSgpfTsKK2lmKHRoaXMuZWxlbWVudElzV3JhcHBlcil7Yih0aGlz
LmVsZW1lbnQpO3ZhciBhPXRoaXMuZWxlbWVudDthLmFmdGVyKHRoaXMub3JpZ2luYWxFbGVtZW50
LmNzcyh7cG9zaXRpb246YS5jc3MoInBvc2l0aW9uIiksd2lkdGg6YS5vdXRlcldpZHRoKCksaGVp
Z2h0OmEub3V0ZXJIZWlnaHQoKSx0b3A6YS5jc3MoInRvcCIpLGxlZnQ6YS5jc3MoImxlZnQiKX0p
KS5yZW1vdmUoKX10aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsdGhpcy5vcmlnaW5h
bFJlc2l6ZVN0eWxlKTtiKHRoaXMub3JpZ2luYWxFbGVtZW50KTtyZXR1cm4gdGhpc30sX21vdXNl
Q2FwdHVyZTpmdW5jdGlvbihiKXt2YXIgYT1mYWxzZTtmb3IodmFyIGMgaW4gdGhpcy5oYW5kbGVz
KWlmKGUodGhpcy5oYW5kbGVzW2NdKVswXT09Yi50YXJnZXQpYT10cnVlO3JldHVybiF0aGlzLm9w
dGlvbnMuZGlzYWJsZWQmJmF9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXMub3B0
aW9ucyxjPXRoaXMuZWxlbWVudC5wb3NpdGlvbigpLAorZD10aGlzLmVsZW1lbnQ7dGhpcy5yZXNp
emluZz10cnVlO3RoaXMuZG9jdW1lbnRTY3JvbGw9e3RvcDplKGRvY3VtZW50KS5zY3JvbGxUb3Ao
KSxsZWZ0OmUoZG9jdW1lbnQpLnNjcm9sbExlZnQoKX07aWYoZC5pcygiLnVpLWRyYWdnYWJsZSIp
fHwvYWJzb2x1dGUvLnRlc3QoZC5jc3MoInBvc2l0aW9uIikpKWQuY3NzKHtwb3NpdGlvbjoiYWJz
b2x1dGUiLHRvcDpjLnRvcCxsZWZ0OmMubGVmdH0pO2UuYnJvd3Nlci5vcGVyYSYmL3JlbGF0aXZl
Ly50ZXN0KGQuY3NzKCJwb3NpdGlvbiIpKSYmZC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsdG9w
OiJhdXRvIixsZWZ0OiJhdXRvIn0pO3RoaXMuX3JlbmRlclByb3h5KCk7Yz1tKHRoaXMuaGVscGVy
LmNzcygibGVmdCIpKTt2YXIgZj1tKHRoaXMuaGVscGVyLmNzcygidG9wIikpO2lmKGEuY29udGFp
bm1lbnQpe2MrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwO2YrPWUoYS5jb250YWlu
bWVudCkuc2Nyb2xsVG9wKCl8fDB9dGhpcy5vZmZzZXQ9Cit0aGlzLmhlbHBlci5vZmZzZXQoKTt0
aGlzLnBvc2l0aW9uPXtsZWZ0OmMsdG9wOmZ9O3RoaXMuc2l6ZT10aGlzLl9oZWxwZXI/e3dpZHRo
OmQub3V0ZXJXaWR0aCgpLGhlaWdodDpkLm91dGVySGVpZ2h0KCl9Ont3aWR0aDpkLndpZHRoKCks
aGVpZ2h0OmQuaGVpZ2h0KCl9O3RoaXMub3JpZ2luYWxTaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6
ZC5vdXRlcldpZHRoKCksaGVpZ2h0OmQub3V0ZXJIZWlnaHQoKX06e3dpZHRoOmQud2lkdGgoKSxo
ZWlnaHQ6ZC5oZWlnaHQoKX07dGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtsZWZ0OmMsdG9wOmZ9O3Ro
aXMuc2l6ZURpZmY9e3dpZHRoOmQub3V0ZXJXaWR0aCgpLWQud2lkdGgoKSxoZWlnaHQ6ZC5vdXRl
ckhlaWdodCgpLWQuaGVpZ2h0KCl9O3RoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uPXtsZWZ0OmIu
cGFnZVgsdG9wOmIucGFnZVl9O3RoaXMuYXNwZWN0UmF0aW89dHlwZW9mIGEuYXNwZWN0UmF0aW89
PSJudW1iZXIiP2EuYXNwZWN0UmF0aW86Cit0aGlzLm9yaWdpbmFsU2l6ZS53aWR0aC90aGlzLm9y
aWdpbmFsU2l6ZS5oZWlnaHR8fDE7YT1lKCIudWktcmVzaXphYmxlLSIrdGhpcy5heGlzKS5jc3Mo
ImN1cnNvciIpO2UoImJvZHkiKS5jc3MoImN1cnNvciIsYT09ImF1dG8iP3RoaXMuYXhpcysiLXJl
c2l6ZSI6YSk7ZC5hZGRDbGFzcygidWktcmVzaXphYmxlLXJlc2l6aW5nIik7dGhpcy5fcHJvcGFn
YXRlKCJzdGFydCIsYik7cmV0dXJuIHRydWV9LF9tb3VzZURyYWc6ZnVuY3Rpb24oYil7dmFyIGE9
dGhpcy5oZWxwZXIsYz10aGlzLm9yaWdpbmFsTW91c2VQb3NpdGlvbixkPXRoaXMuX2NoYW5nZVt0
aGlzLmF4aXNdO2lmKCFkKXJldHVybiBmYWxzZTtjPWQuYXBwbHkodGhpcyxbYixiLnBhZ2VYLWMu
bGVmdHx8MCxiLnBhZ2VZLWMudG9wfHwwXSk7aWYodGhpcy5fYXNwZWN0UmF0aW98fGIuc2hpZnRL
ZXkpYz10aGlzLl91cGRhdGVSYXRpbyhjLGIpO2M9dGhpcy5fcmVzcGVjdFNpemUoYyxiKTt0aGlz
Ll9wcm9wYWdhdGUoInJlc2l6ZSIsCitiKTthLmNzcyh7dG9wOnRoaXMucG9zaXRpb24udG9wKyJw
eCIsbGVmdDp0aGlzLnBvc2l0aW9uLmxlZnQrInB4Iix3aWR0aDp0aGlzLnNpemUud2lkdGgrInB4
IixoZWlnaHQ6dGhpcy5zaXplLmhlaWdodCsicHgifSk7IXRoaXMuX2hlbHBlciYmdGhpcy5fcHJv
cG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5sZW5ndGgmJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVz
aXplKCk7dGhpcy5fdXBkYXRlQ2FjaGUoYyk7dGhpcy5fdHJpZ2dlcigicmVzaXplIixiLHRoaXMu
dWkoKSk7cmV0dXJuIGZhbHNlfSxfbW91c2VTdG9wOmZ1bmN0aW9uKGIpe3RoaXMucmVzaXppbmc9
ZmFsc2U7dmFyIGE9dGhpcy5vcHRpb25zLGM9dGhpcztpZih0aGlzLl9oZWxwZXIpe3ZhciBkPXRo
aXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMsZj1kLmxlbmd0aCYmL3RleHRhcmVhL2ku
dGVzdChkWzBdLm5vZGVOYW1lKTtkPWYmJmUudWkuaGFzU2Nyb2xsKGRbMF0sImxlZnQiKT8wOmMu
c2l6ZURpZmYuaGVpZ2h0OworZj1mPzA6Yy5zaXplRGlmZi53aWR0aDtmPXt3aWR0aDpjLmhlbHBl
ci53aWR0aCgpLWYsaGVpZ2h0OmMuaGVscGVyLmhlaWdodCgpLWR9O2Q9cGFyc2VJbnQoYy5lbGVt
ZW50LmNzcygibGVmdCIpLDEwKSsoYy5wb3NpdGlvbi5sZWZ0LWMub3JpZ2luYWxQb3NpdGlvbi5s
ZWZ0KXx8bnVsbDt2YXIgZz1wYXJzZUludChjLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGMucG9z
aXRpb24udG9wLWMub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2EuYW5pbWF0ZXx8dGhpcy5l
bGVtZW50LmNzcyhlLmV4dGVuZChmLHt0b3A6ZyxsZWZ0OmR9KSk7Yy5oZWxwZXIuaGVpZ2h0KGMu
c2l6ZS5oZWlnaHQpO2MuaGVscGVyLndpZHRoKGMuc2l6ZS53aWR0aCk7dGhpcy5faGVscGVyJiYh
YS5hbmltYXRlJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpfWUoImJvZHkiKS5jc3MoImN1
cnNvciIsImF1dG8iKTt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNp
emluZyIpOwordGhpcy5fcHJvcGFnYXRlKCJzdG9wIixiKTt0aGlzLl9oZWxwZXImJnRoaXMuaGVs
cGVyLnJlbW92ZSgpO3JldHVybiBmYWxzZX0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKGIpe3RoaXMu
b2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpO2lmKGwoYi5sZWZ0KSl0aGlzLnBvc2l0aW9uLmxl
ZnQ9Yi5sZWZ0O2lmKGwoYi50b3ApKXRoaXMucG9zaXRpb24udG9wPWIudG9wO2lmKGwoYi5oZWln
aHQpKXRoaXMuc2l6ZS5oZWlnaHQ9Yi5oZWlnaHQ7aWYobChiLndpZHRoKSl0aGlzLnNpemUud2lk
dGg9Yi53aWR0aH0sX3VwZGF0ZVJhdGlvOmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXMucG9zaXRpb24s
Yz10aGlzLnNpemUsZD10aGlzLmF4aXM7aWYoYi5oZWlnaHQpYi53aWR0aD1jLmhlaWdodCp0aGlz
LmFzcGVjdFJhdGlvO2Vsc2UgaWYoYi53aWR0aCliLmhlaWdodD1jLndpZHRoL3RoaXMuYXNwZWN0
UmF0aW87aWYoZD09InN3Iil7Yi5sZWZ0PWEubGVmdCsoYy53aWR0aC1iLndpZHRoKTtiLnRvcD0K
K251bGx9aWYoZD09Im53Iil7Yi50b3A9YS50b3ArKGMuaGVpZ2h0LWIuaGVpZ2h0KTtiLmxlZnQ9
YS5sZWZ0KyhjLndpZHRoLWIud2lkdGgpfXJldHVybiBifSxfcmVzcGVjdFNpemU6ZnVuY3Rpb24o
Yil7dmFyIGE9dGhpcy5vcHRpb25zLGM9dGhpcy5heGlzLGQ9bChiLndpZHRoKSYmYS5tYXhXaWR0
aCYmYS5tYXhXaWR0aDxiLndpZHRoLGY9bChiLmhlaWdodCkmJmEubWF4SGVpZ2h0JiZhLm1heEhl
aWdodDxiLmhlaWdodCxnPWwoYi53aWR0aCkmJmEubWluV2lkdGgmJmEubWluV2lkdGg+Yi53aWR0
aCxoPWwoYi5oZWlnaHQpJiZhLm1pbkhlaWdodCYmYS5taW5IZWlnaHQ+Yi5oZWlnaHQ7aWYoZyli
LndpZHRoPWEubWluV2lkdGg7aWYoaCliLmhlaWdodD1hLm1pbkhlaWdodDtpZihkKWIud2lkdGg9
YS5tYXhXaWR0aDtpZihmKWIuaGVpZ2h0PWEubWF4SGVpZ2h0O3ZhciBpPXRoaXMub3JpZ2luYWxQ
b3NpdGlvbi5sZWZ0K3RoaXMub3JpZ2luYWxTaXplLndpZHRoLGo9dGhpcy5wb3NpdGlvbi50b3Ar
Cit0aGlzLnNpemUuaGVpZ2h0LGs9L3N3fG53fHcvLnRlc3QoYyk7Yz0vbnd8bmV8bi8udGVzdChj
KTtpZihnJiZrKWIubGVmdD1pLWEubWluV2lkdGg7aWYoZCYmayliLmxlZnQ9aS1hLm1heFdpZHRo
O2lmKGgmJmMpYi50b3A9ai1hLm1pbkhlaWdodDtpZihmJiZjKWIudG9wPWotYS5tYXhIZWlnaHQ7
aWYoKGE9IWIud2lkdGgmJiFiLmhlaWdodCkmJiFiLmxlZnQmJmIudG9wKWIudG9wPW51bGw7ZWxz
ZSBpZihhJiYhYi50b3AmJmIubGVmdCliLmxlZnQ9bnVsbDtyZXR1cm4gYn0sX3Byb3BvcnRpb25h
bGx5UmVzaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50
cy5sZW5ndGgpZm9yKHZhciBiPXRoaXMuaGVscGVyfHx0aGlzLmVsZW1lbnQsYT0wO2E8dGhpcy5f
cHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5sZW5ndGg7YSsrKXt2YXIgYz10aGlzLl9wcm9w
b3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzW2FdO2lmKCF0aGlzLmJvcmRlckRpZil7dmFyIGQ9Citb
Yy5jc3MoImJvcmRlclRvcFdpZHRoIiksYy5jc3MoImJvcmRlclJpZ2h0V2lkdGgiKSxjLmNzcygi
Ym9yZGVyQm90dG9tV2lkdGgiKSxjLmNzcygiYm9yZGVyTGVmdFdpZHRoIildLGY9W2MuY3NzKCJw
YWRkaW5nVG9wIiksYy5jc3MoInBhZGRpbmdSaWdodCIpLGMuY3NzKCJwYWRkaW5nQm90dG9tIiks
Yy5jc3MoInBhZGRpbmdMZWZ0IildO3RoaXMuYm9yZGVyRGlmPWUubWFwKGQsZnVuY3Rpb24oZyxo
KXtnPXBhcnNlSW50KGcsMTApfHwwO2g9cGFyc2VJbnQoZltoXSwxMCl8fDA7cmV0dXJuIGcraH0p
fWUuYnJvd3Nlci5tc2llJiYoZShiKS5pcygiOmhpZGRlbiIpfHxlKGIpLnBhcmVudHMoIjpoaWRk
ZW4iKS5sZW5ndGgpfHxjLmNzcyh7aGVpZ2h0OmIuaGVpZ2h0KCktdGhpcy5ib3JkZXJEaWZbMF0t
dGhpcy5ib3JkZXJEaWZbMl18fDAsd2lkdGg6Yi53aWR0aCgpLXRoaXMuYm9yZGVyRGlmWzFdLXRo
aXMuYm9yZGVyRGlmWzNdfHwwfSl9fSxfcmVuZGVyUHJveHk6ZnVuY3Rpb24oKXt2YXIgYj0KK3Ro
aXMub3B0aW9uczt0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpO2lmKHRo
aXMuX2hlbHBlcil7dGhpcy5oZWxwZXI9dGhpcy5oZWxwZXJ8fGUoJzxkaXYgc3R5bGU9Im92ZXJm
bG93OmhpZGRlbjsiPjwvZGl2PicpO3ZhciBhPWUuYnJvd3Nlci5tc2llJiZlLmJyb3dzZXIudmVy
c2lvbjw3LGM9YT8xOjA7YT1hPzI6LTE7dGhpcy5oZWxwZXIuYWRkQ2xhc3ModGhpcy5faGVscGVy
KS5jc3Moe3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCkrYSxoZWlnaHQ6dGhpcy5lbGVt
ZW50Lm91dGVySGVpZ2h0KCkrYSxwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6dGhpcy5lbGVtZW50
T2Zmc2V0LmxlZnQtYysicHgiLHRvcDp0aGlzLmVsZW1lbnRPZmZzZXQudG9wLWMrInB4Iix6SW5k
ZXg6KytiLnpJbmRleH0pO3RoaXMuaGVscGVyLmFwcGVuZFRvKCJib2R5IikuZGlzYWJsZVNlbGVj
dGlvbigpfWVsc2UgdGhpcy5oZWxwZXI9dGhpcy5lbGVtZW50fSxfY2hhbmdlOntlOmZ1bmN0aW9u
KGIsCithKXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrYX19LHc6ZnVuY3Rp
b24oYixhKXtyZXR1cm57bGVmdDp0aGlzLm9yaWdpbmFsUG9zaXRpb24ubGVmdCthLHdpZHRoOnRo
aXMub3JpZ2luYWxTaXplLndpZHRoLWF9fSxuOmZ1bmN0aW9uKGIsYSxjKXtyZXR1cm57dG9wOnRo
aXMub3JpZ2luYWxQb3NpdGlvbi50b3ArYyxoZWlnaHQ6dGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0
LWN9fSxzOmZ1bmN0aW9uKGIsYSxjKXtyZXR1cm57aGVpZ2h0OnRoaXMub3JpZ2luYWxTaXplLmhl
aWdodCtjfX0sc2U6ZnVuY3Rpb24oYixhLGMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uu
cy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcyxbYixhLGNd
KSl9LHN3OmZ1bmN0aW9uKGIsYSxjKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBw
bHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsW2IsYSwKK2NdKSl9
LG5lOmZ1bmN0aW9uKGIsYSxjKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLm4uYXBwbHko
dGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS5lLmFwcGx5KHRoaXMsW2IsYSxjXSkpfSxudzpm
dW5jdGlvbihiLGEsYyl7cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMs
YXJndW1lbnRzKSx0aGlzLl9jaGFuZ2Uudy5hcHBseSh0aGlzLFtiLGEsY10pKX19LF9wcm9wYWdh
dGU6ZnVuY3Rpb24oYixhKXtlLnVpLnBsdWdpbi5jYWxsKHRoaXMsYixbYSx0aGlzLnVpKCldKTti
IT0icmVzaXplIiYmdGhpcy5fdHJpZ2dlcihiLGEsdGhpcy51aSgpKX0scGx1Z2luczp7fSx1aTpm
dW5jdGlvbigpe3JldHVybntvcmlnaW5hbEVsZW1lbnQ6dGhpcy5vcmlnaW5hbEVsZW1lbnQsZWxl
bWVudDp0aGlzLmVsZW1lbnQsaGVscGVyOnRoaXMuaGVscGVyLHBvc2l0aW9uOnRoaXMucG9zaXRp
b24sc2l6ZTp0aGlzLnNpemUsb3JpZ2luYWxTaXplOnRoaXMub3JpZ2luYWxTaXplLAorb3JpZ2lu
YWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb259fX0pO2UuZXh0ZW5kKGUudWkucmVzaXph
YmxlLHt2ZXJzaW9uOiIxLjguMTAifSk7ZS51aS5wbHVnaW4uYWRkKCJyZXNpemFibGUiLCJhbHNv
UmVzaXplIix7c3RhcnQ6ZnVuY3Rpb24oKXt2YXIgYj1lKHRoaXMpLmRhdGEoInJlc2l6YWJsZSIp
Lm9wdGlvbnMsYT1mdW5jdGlvbihjKXtlKGMpLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1lKHRoaXMp
O2QuZGF0YSgicmVzaXphYmxlLWFsc29yZXNpemUiLHt3aWR0aDpwYXJzZUludChkLndpZHRoKCks
MTApLGhlaWdodDpwYXJzZUludChkLmhlaWdodCgpLDEwKSxsZWZ0OnBhcnNlSW50KGQuY3NzKCJs
ZWZ0IiksMTApLHRvcDpwYXJzZUludChkLmNzcygidG9wIiksMTApLHBvc2l0aW9uOmQuY3NzKCJw
b3NpdGlvbiIpfSl9KX07aWYodHlwZW9mIGIuYWxzb1Jlc2l6ZT09Im9iamVjdCImJiFiLmFsc29S
ZXNpemUucGFyZW50Tm9kZSlpZihiLmFsc29SZXNpemUubGVuZ3RoKXtiLmFsc29SZXNpemU9Citi
LmFsc29SZXNpemVbMF07YShiLmFsc29SZXNpemUpfWVsc2UgZS5lYWNoKGIuYWxzb1Jlc2l6ZSxm
dW5jdGlvbihjKXthKGMpfSk7ZWxzZSBhKGIuYWxzb1Jlc2l6ZSl9LHJlc2l6ZTpmdW5jdGlvbihi
LGEpe3ZhciBjPWUodGhpcykuZGF0YSgicmVzaXphYmxlIik7Yj1jLm9wdGlvbnM7dmFyIGQ9Yy5v
cmlnaW5hbFNpemUsZj1jLm9yaWdpbmFsUG9zaXRpb24sZz17aGVpZ2h0OmMuc2l6ZS5oZWlnaHQt
ZC5oZWlnaHR8fDAsd2lkdGg6Yy5zaXplLndpZHRoLWQud2lkdGh8fDAsdG9wOmMucG9zaXRpb24u
dG9wLWYudG9wfHwwLGxlZnQ6Yy5wb3NpdGlvbi5sZWZ0LWYubGVmdHx8MH0saD1mdW5jdGlvbihp
LGope2UoaSkuZWFjaChmdW5jdGlvbigpe3ZhciBrPWUodGhpcykscT1lKHRoaXMpLmRhdGEoInJl
c2l6YWJsZS1hbHNvcmVzaXplIikscD17fSxyPWomJmoubGVuZ3RoP2o6ay5wYXJlbnRzKGEub3Jp
Z2luYWxFbGVtZW50WzBdKS5sZW5ndGg/WyJ3aWR0aCIsImhlaWdodCJdOlsid2lkdGgiLAorImhl
aWdodCIsInRvcCIsImxlZnQiXTtlLmVhY2gocixmdW5jdGlvbihuLG8pe2lmKChuPShxW29dfHww
KSsoZ1tvXXx8MCkpJiZuPj0wKXBbb109bnx8bnVsbH0pO2lmKGUuYnJvd3Nlci5vcGVyYSYmL3Jl
bGF0aXZlLy50ZXN0KGsuY3NzKCJwb3NpdGlvbiIpKSl7Yy5fcmV2ZXJ0VG9SZWxhdGl2ZVBvc2l0
aW9uPXRydWU7ay5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiJhdXRvIixsZWZ0OiJhdXRv
In0pfWsuY3NzKHApfSl9O3R5cGVvZiBiLmFsc29SZXNpemU9PSJvYmplY3QiJiYhYi5hbHNvUmVz
aXplLm5vZGVUeXBlP2UuZWFjaChiLmFsc29SZXNpemUsZnVuY3Rpb24oaSxqKXtoKGksail9KTpo
KGIuYWxzb1Jlc2l6ZSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgYj1lKHRoaXMpLmRhdGEoInJlc2l6
YWJsZSIpLGE9Yi5vcHRpb25zLGM9ZnVuY3Rpb24oZCl7ZShkKS5lYWNoKGZ1bmN0aW9uKCl7dmFy
IGY9ZSh0aGlzKTtmLmNzcyh7cG9zaXRpb246Zi5kYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIp
LnBvc2l0aW9ufSl9KX07CitpZihiLl9yZXZlcnRUb1JlbGF0aXZlUG9zaXRpb24pe2IuX3JldmVy
dFRvUmVsYXRpdmVQb3NpdGlvbj1mYWxzZTt0eXBlb2YgYS5hbHNvUmVzaXplPT0ib2JqZWN0IiYm
IWEuYWxzb1Jlc2l6ZS5ub2RlVHlwZT9lLmVhY2goYS5hbHNvUmVzaXplLGZ1bmN0aW9uKGQpe2Mo
ZCl9KTpjKGEuYWxzb1Jlc2l6ZSl9ZSh0aGlzKS5yZW1vdmVEYXRhKCJyZXNpemFibGUtYWxzb3Jl
c2l6ZSIpfX0pO2UudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYW5pbWF0ZSIse3N0b3A6ZnVu
Y3Rpb24oYil7dmFyIGE9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKSxjPWEub3B0aW9ucyxkPWEu
X3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMsZj1kLmxlbmd0aCYmL3RleHRhcmVhL2kudGVz
dChkWzBdLm5vZGVOYW1lKSxnPWYmJmUudWkuaGFzU2Nyb2xsKGRbMF0sImxlZnQiKT8wOmEuc2l6
ZURpZmYuaGVpZ2h0O2Y9e3dpZHRoOmEuc2l6ZS53aWR0aC0oZj8wOmEuc2l6ZURpZmYud2lkdGgp
LGhlaWdodDphLnNpemUuaGVpZ2h0LQorZ307Zz1wYXJzZUludChhLmVsZW1lbnQuY3NzKCJsZWZ0
IiksMTApKyhhLnBvc2l0aW9uLmxlZnQtYS5vcmlnaW5hbFBvc2l0aW9uLmxlZnQpfHxudWxsO3Zh
ciBoPXBhcnNlSW50KGEuZWxlbWVudC5jc3MoInRvcCIpLDEwKSsoYS5wb3NpdGlvbi50b3AtYS5v
cmlnaW5hbFBvc2l0aW9uLnRvcCl8fG51bGw7YS5lbGVtZW50LmFuaW1hdGUoZS5leHRlbmQoZixo
JiZnP3t0b3A6aCxsZWZ0Omd9Ont9KSx7ZHVyYXRpb246Yy5hbmltYXRlRHVyYXRpb24sZWFzaW5n
OmMuYW5pbWF0ZUVhc2luZyxzdGVwOmZ1bmN0aW9uKCl7dmFyIGk9e3dpZHRoOnBhcnNlSW50KGEu
ZWxlbWVudC5jc3MoIndpZHRoIiksMTApLGhlaWdodDpwYXJzZUludChhLmVsZW1lbnQuY3NzKCJo
ZWlnaHQiKSwxMCksdG9wOnBhcnNlSW50KGEuZWxlbWVudC5jc3MoInRvcCIpLDEwKSxsZWZ0OnBh
cnNlSW50KGEuZWxlbWVudC5jc3MoImxlZnQiKSwxMCl9O2QmJmQubGVuZ3RoJiZlKGRbMF0pLmNz
cyh7d2lkdGg6aS53aWR0aCwKK2hlaWdodDppLmhlaWdodH0pO2EuX3VwZGF0ZUNhY2hlKGkpO2Eu
X3Byb3BhZ2F0ZSgicmVzaXplIixiKX19KX19KTtlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIs
ImNvbnRhaW5tZW50Iix7c3RhcnQ6ZnVuY3Rpb24oKXt2YXIgYj1lKHRoaXMpLmRhdGEoInJlc2l6
YWJsZSIpLGE9Yi5lbGVtZW50LGM9Yi5vcHRpb25zLmNvbnRhaW5tZW50O2lmKGE9YyBpbnN0YW5j
ZW9mIGU/Yy5nZXQoMCk6L3BhcmVudC8udGVzdChjKT9hLnBhcmVudCgpLmdldCgwKTpjKXtiLmNv
bnRhaW5lckVsZW1lbnQ9ZShhKTtpZigvZG9jdW1lbnQvLnRlc3QoYyl8fGM9PWRvY3VtZW50KXti
LmNvbnRhaW5lck9mZnNldD17bGVmdDowLHRvcDowfTtiLmNvbnRhaW5lclBvc2l0aW9uPXtsZWZ0
OjAsdG9wOjB9O2IucGFyZW50RGF0YT17ZWxlbWVudDplKGRvY3VtZW50KSxsZWZ0OjAsdG9wOjAs
d2lkdGg6ZShkb2N1bWVudCkud2lkdGgoKSxoZWlnaHQ6ZShkb2N1bWVudCkuaGVpZ2h0KCl8fGRv
Y3VtZW50LmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHR9fWVsc2V7dmFyIGQ9CitlKGEpLGY9
W107ZShbIlRvcCIsIlJpZ2h0IiwiTGVmdCIsIkJvdHRvbSJdKS5lYWNoKGZ1bmN0aW9uKGksail7
ZltpXT1tKGQuY3NzKCJwYWRkaW5nIitqKSl9KTtiLmNvbnRhaW5lck9mZnNldD1kLm9mZnNldCgp
O2IuY29udGFpbmVyUG9zaXRpb249ZC5wb3NpdGlvbigpO2IuY29udGFpbmVyU2l6ZT17aGVpZ2h0
OmQuaW5uZXJIZWlnaHQoKS1mWzNdLHdpZHRoOmQuaW5uZXJXaWR0aCgpLWZbMV19O2M9Yi5jb250
YWluZXJPZmZzZXQ7dmFyIGc9Yi5jb250YWluZXJTaXplLmhlaWdodCxoPWIuY29udGFpbmVyU2l6
ZS53aWR0aDtoPWUudWkuaGFzU2Nyb2xsKGEsImxlZnQiKT9hLnNjcm9sbFdpZHRoOmg7Zz1lLnVp
Lmhhc1Njcm9sbChhKT9hLnNjcm9sbEhlaWdodDpnO2IucGFyZW50RGF0YT17ZWxlbWVudDphLGxl
ZnQ6Yy5sZWZ0LHRvcDpjLnRvcCx3aWR0aDpoLGhlaWdodDpnfX19fSxyZXNpemU6ZnVuY3Rpb24o
Yil7dmFyIGE9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKSxjPWEub3B0aW9ucywKK2Q9YS5jb250
YWluZXJPZmZzZXQsZj1hLnBvc2l0aW9uO2I9YS5fYXNwZWN0UmF0aW98fGIuc2hpZnRLZXk7dmFy
IGc9e3RvcDowLGxlZnQ6MH0saD1hLmNvbnRhaW5lckVsZW1lbnQ7aWYoaFswXSE9ZG9jdW1lbnQm
Ji9zdGF0aWMvLnRlc3QoaC5jc3MoInBvc2l0aW9uIikpKWc9ZDtpZihmLmxlZnQ8KGEuX2hlbHBl
cj9kLmxlZnQ6MCkpe2Euc2l6ZS53aWR0aCs9YS5faGVscGVyP2EucG9zaXRpb24ubGVmdC1kLmxl
ZnQ6YS5wb3NpdGlvbi5sZWZ0LWcubGVmdDtpZihiKWEuc2l6ZS5oZWlnaHQ9YS5zaXplLndpZHRo
L2MuYXNwZWN0UmF0aW87YS5wb3NpdGlvbi5sZWZ0PWMuaGVscGVyP2QubGVmdDowfWlmKGYudG9w
PChhLl9oZWxwZXI/ZC50b3A6MCkpe2Euc2l6ZS5oZWlnaHQrPWEuX2hlbHBlcj9hLnBvc2l0aW9u
LnRvcC1kLnRvcDphLnBvc2l0aW9uLnRvcDtpZihiKWEuc2l6ZS53aWR0aD1hLnNpemUuaGVpZ2h0
KmMuYXNwZWN0UmF0aW87YS5wb3NpdGlvbi50b3A9YS5faGVscGVyPworZC50b3A6MH1hLm9mZnNl
dC5sZWZ0PWEucGFyZW50RGF0YS5sZWZ0K2EucG9zaXRpb24ubGVmdDthLm9mZnNldC50b3A9YS5w
YXJlbnREYXRhLnRvcCthLnBvc2l0aW9uLnRvcDtjPU1hdGguYWJzKChhLl9oZWxwZXI/YS5vZmZz
ZXQubGVmdC1nLmxlZnQ6YS5vZmZzZXQubGVmdC1nLmxlZnQpK2Euc2l6ZURpZmYud2lkdGgpO2Q9
TWF0aC5hYnMoKGEuX2hlbHBlcj9hLm9mZnNldC50b3AtZy50b3A6YS5vZmZzZXQudG9wLWQudG9w
KSthLnNpemVEaWZmLmhlaWdodCk7Zj1hLmNvbnRhaW5lckVsZW1lbnQuZ2V0KDApPT1hLmVsZW1l
bnQucGFyZW50KCkuZ2V0KDApO2c9L3JlbGF0aXZlfGFic29sdXRlLy50ZXN0KGEuY29udGFpbmVy
RWxlbWVudC5jc3MoInBvc2l0aW9uIikpO2lmKGYmJmcpYy09YS5wYXJlbnREYXRhLmxlZnQ7aWYo
YythLnNpemUud2lkdGg+PWEucGFyZW50RGF0YS53aWR0aCl7YS5zaXplLndpZHRoPWEucGFyZW50
RGF0YS53aWR0aC1jO2lmKGIpYS5zaXplLmhlaWdodD0KK2Euc2l6ZS53aWR0aC9hLmFzcGVjdFJh
dGlvfWlmKGQrYS5zaXplLmhlaWdodD49YS5wYXJlbnREYXRhLmhlaWdodCl7YS5zaXplLmhlaWdo
dD1hLnBhcmVudERhdGEuaGVpZ2h0LWQ7aWYoYilhLnNpemUud2lkdGg9YS5zaXplLmhlaWdodCph
LmFzcGVjdFJhdGlvfX0sc3RvcDpmdW5jdGlvbigpe3ZhciBiPWUodGhpcykuZGF0YSgicmVzaXph
YmxlIiksYT1iLm9wdGlvbnMsYz1iLmNvbnRhaW5lck9mZnNldCxkPWIuY29udGFpbmVyUG9zaXRp
b24sZj1iLmNvbnRhaW5lckVsZW1lbnQsZz1lKGIuaGVscGVyKSxoPWcub2Zmc2V0KCksaT1nLm91
dGVyV2lkdGgoKS1iLnNpemVEaWZmLndpZHRoO2c9Zy5vdXRlckhlaWdodCgpLWIuc2l6ZURpZmYu
aGVpZ2h0O2IuX2hlbHBlciYmIWEuYW5pbWF0ZSYmL3JlbGF0aXZlLy50ZXN0KGYuY3NzKCJwb3Np
dGlvbiIpKSYmZSh0aGlzKS5jc3Moe2xlZnQ6aC5sZWZ0LWQubGVmdC1jLmxlZnQsd2lkdGg6aSxo
ZWlnaHQ6Z30pO2IuX2hlbHBlciYmIWEuYW5pbWF0ZSYmCisvc3RhdGljLy50ZXN0KGYuY3NzKCJw
b3NpdGlvbiIpKSYmZSh0aGlzKS5jc3Moe2xlZnQ6aC5sZWZ0LWQubGVmdC1jLmxlZnQsd2lkdGg6
aSxoZWlnaHQ6Z30pfX0pO2UudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiZ2hvc3QiLHtzdGFy
dDpmdW5jdGlvbigpe3ZhciBiPWUodGhpcykuZGF0YSgicmVzaXphYmxlIiksYT1iLm9wdGlvbnMs
Yz1iLnNpemU7Yi5naG9zdD1iLm9yaWdpbmFsRWxlbWVudC5jbG9uZSgpO2IuZ2hvc3QuY3NzKHtv
cGFjaXR5OjAuMjUsZGlzcGxheToiYmxvY2siLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OmMu
aGVpZ2h0LHdpZHRoOmMud2lkdGgsbWFyZ2luOjAsbGVmdDowLHRvcDowfSkuYWRkQ2xhc3MoInVp
LXJlc2l6YWJsZS1naG9zdCIpLmFkZENsYXNzKHR5cGVvZiBhLmdob3N0PT0ic3RyaW5nIj9hLmdo
b3N0OiIiKTtiLmdob3N0LmFwcGVuZFRvKGIuaGVscGVyKX0scmVzaXplOmZ1bmN0aW9uKCl7dmFy
IGI9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKTsKK2IuZ2hvc3QmJmIuZ2hvc3QuY3NzKHtwb3Np
dGlvbjoicmVsYXRpdmUiLGhlaWdodDpiLnNpemUuaGVpZ2h0LHdpZHRoOmIuc2l6ZS53aWR0aH0p
fSxzdG9wOmZ1bmN0aW9uKCl7dmFyIGI9ZSh0aGlzKS5kYXRhKCJyZXNpemFibGUiKTtiLmdob3N0
JiZiLmhlbHBlciYmYi5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKGIuZ2hvc3QuZ2V0KDApKX19
KTtlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdyaWQiLHtyZXNpemU6ZnVuY3Rpb24oKXt2
YXIgYj1lKHRoaXMpLmRhdGEoInJlc2l6YWJsZSIpLGE9Yi5vcHRpb25zLGM9Yi5zaXplLGQ9Yi5v
cmlnaW5hbFNpemUsZj1iLm9yaWdpbmFsUG9zaXRpb24sZz1iLmF4aXM7YS5ncmlkPXR5cGVvZiBh
LmdyaWQ9PSJudW1iZXIiP1thLmdyaWQsYS5ncmlkXTphLmdyaWQ7dmFyIGg9TWF0aC5yb3VuZCgo
Yy53aWR0aC1kLndpZHRoKS8oYS5ncmlkWzBdfHwxKSkqKGEuZ3JpZFswXXx8MSk7YT1NYXRoLnJv
dW5kKChjLmhlaWdodC1kLmhlaWdodCkvCisoYS5ncmlkWzFdfHwxKSkqKGEuZ3JpZFsxXXx8MSk7
aWYoL14oc2V8c3xlKSQvLnRlc3QoZykpe2Iuc2l6ZS53aWR0aD1kLndpZHRoK2g7Yi5zaXplLmhl
aWdodD1kLmhlaWdodCthfWVsc2UgaWYoL14obmUpJC8udGVzdChnKSl7Yi5zaXplLndpZHRoPWQu
d2lkdGgraDtiLnNpemUuaGVpZ2h0PWQuaGVpZ2h0K2E7Yi5wb3NpdGlvbi50b3A9Zi50b3AtYX1l
bHNle2lmKC9eKHN3KSQvLnRlc3QoZykpe2Iuc2l6ZS53aWR0aD1kLndpZHRoK2g7Yi5zaXplLmhl
aWdodD1kLmhlaWdodCthfWVsc2V7Yi5zaXplLndpZHRoPWQud2lkdGgraDtiLnNpemUuaGVpZ2h0
PWQuaGVpZ2h0K2E7Yi5wb3NpdGlvbi50b3A9Zi50b3AtYX1iLnBvc2l0aW9uLmxlZnQ9Zi5sZWZ0
LWh9fX0pO3ZhciBtPWZ1bmN0aW9uKGIpe3JldHVybiBwYXJzZUludChiLDEwKXx8MH0sbD1mdW5j
dGlvbihiKXtyZXR1cm4haXNOYU4ocGFyc2VJbnQoYiwxMCkpfX0pKGpRdWVyeSk7Cis7LyoKKyAq
IGpRdWVyeSBVSSBTZWxlY3RhYmxlIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRI
T1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5k
ZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5v
cmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvU2VsZWN0YWJsZXMK
KyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LnVpLmNvcmUuanMKKyAqCWpxdWVyeS51aS5tb3Vz
ZS5qcworICoJanF1ZXJ5LnVpLndpZGdldC5qcworICovCisoZnVuY3Rpb24oZSl7ZS53aWRnZXQo
InVpLnNlbGVjdGFibGUiLGUudWkubW91c2Use29wdGlvbnM6e2FwcGVuZFRvOiJib2R5IixhdXRv
UmVmcmVzaDp0cnVlLGRpc3RhbmNlOjAsZmlsdGVyOiIqIix0b2xlcmFuY2U6InRvdWNoIn0sX2Ny
ZWF0ZTpmdW5jdGlvbigpe3ZhciBjPXRoaXM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxl
Y3RhYmxlIik7dGhpcy5kcmFnZ2VkPWZhbHNlO3ZhciBmO3RoaXMucmVmcmVzaD1mdW5jdGlvbigp
e2Y9ZShjLm9wdGlvbnMuZmlsdGVyLGMuZWxlbWVudFswXSk7Zi5lYWNoKGZ1bmN0aW9uKCl7dmFy
IGQ9ZSh0aGlzKSxiPWQub2Zmc2V0KCk7ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIse2Vs
ZW1lbnQ6dGhpcywkZWxlbWVudDpkLGxlZnQ6Yi5sZWZ0LHRvcDpiLnRvcCxyaWdodDpiLmxlZnQr
ZC5vdXRlcldpZHRoKCksYm90dG9tOmIudG9wK2Qub3V0ZXJIZWlnaHQoKSxzdGFydHNlbGVjdGVk
OmZhbHNlLHNlbGVjdGVkOmQuaGFzQ2xhc3MoInVpLXNlbGVjdGVkIiksCitzZWxlY3Rpbmc6ZC5o
YXNDbGFzcygidWktc2VsZWN0aW5nIiksdW5zZWxlY3Rpbmc6ZC5oYXNDbGFzcygidWktdW5zZWxl
Y3RpbmciKX0pfSl9O3RoaXMucmVmcmVzaCgpO3RoaXMuc2VsZWN0ZWVzPWYuYWRkQ2xhc3MoInVp
LXNlbGVjdGVlIik7dGhpcy5fbW91c2VJbml0KCk7dGhpcy5oZWxwZXI9ZSgiPGRpdiBjbGFzcz0n
dWktc2VsZWN0YWJsZS1oZWxwZXInPjwvZGl2PiIpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5z
ZWxlY3RlZXMucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVlIikucmVtb3ZlRGF0YSgic2VsZWN0YWJs
ZS1pdGVtIik7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RhYmxlIHVpLXNlbGVj
dGFibGUtZGlzYWJsZWQiKS5yZW1vdmVEYXRhKCJzZWxlY3RhYmxlIikudW5iaW5kKCIuc2VsZWN0
YWJsZSIpO3RoaXMuX21vdXNlRGVzdHJveSgpO3JldHVybiB0aGlzfSxfbW91c2VTdGFydDpmdW5j
dGlvbihjKXt2YXIgZj10aGlzO3RoaXMub3Bvcz1bYy5wYWdlWCwKK2MucGFnZVldO2lmKCF0aGlz
Lm9wdGlvbnMuZGlzYWJsZWQpe3ZhciBkPXRoaXMub3B0aW9uczt0aGlzLnNlbGVjdGVlcz1lKGQu
ZmlsdGVyLHRoaXMuZWxlbWVudFswXSk7dGhpcy5fdHJpZ2dlcigic3RhcnQiLGMpO2UoZC5hcHBl
bmRUbykuYXBwZW5kKHRoaXMuaGVscGVyKTt0aGlzLmhlbHBlci5jc3Moe2xlZnQ6Yy5jbGllbnRY
LHRvcDpjLmNsaWVudFksd2lkdGg6MCxoZWlnaHQ6MH0pO2QuYXV0b1JlZnJlc2gmJnRoaXMucmVm
cmVzaCgpO3RoaXMuc2VsZWN0ZWVzLmZpbHRlcigiLnVpLXNlbGVjdGVkIikuZWFjaChmdW5jdGlv
bigpe3ZhciBiPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtiLnN0YXJ0c2VsZWN0ZWQ9
dHJ1ZTtpZighYy5tZXRhS2V5KXtiLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIp
O2Iuc2VsZWN0ZWQ9ZmFsc2U7Yi4kZWxlbWVudC5hZGRDbGFzcygidWktdW5zZWxlY3RpbmciKTti
LnVuc2VsZWN0aW5nPXRydWU7Zi5fdHJpZ2dlcigidW5zZWxlY3RpbmciLAorYyx7dW5zZWxlY3Rp
bmc6Yi5lbGVtZW50fSl9fSk7ZShjLnRhcmdldCkucGFyZW50cygpLmFuZFNlbGYoKS5lYWNoKGZ1
bmN0aW9uKCl7dmFyIGI9ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO2lmKGIpe3ZhciBn
PSFjLm1ldGFLZXl8fCFiLiRlbGVtZW50Lmhhc0NsYXNzKCJ1aS1zZWxlY3RlZCIpO2IuJGVsZW1l
bnQucmVtb3ZlQ2xhc3MoZz8idWktdW5zZWxlY3RpbmciOiJ1aS1zZWxlY3RlZCIpLmFkZENsYXNz
KGc/InVpLXNlbGVjdGluZyI6InVpLXVuc2VsZWN0aW5nIik7Yi51bnNlbGVjdGluZz0hZztiLnNl
bGVjdGluZz1nOyhiLnNlbGVjdGVkPWcpP2YuX3RyaWdnZXIoInNlbGVjdGluZyIsYyx7c2VsZWN0
aW5nOmIuZWxlbWVudH0pOmYuX3RyaWdnZXIoInVuc2VsZWN0aW5nIixjLHt1bnNlbGVjdGluZzpi
LmVsZW1lbnR9KTtyZXR1cm4gZmFsc2V9fSl9fSxfbW91c2VEcmFnOmZ1bmN0aW9uKGMpe3ZhciBm
PXRoaXM7dGhpcy5kcmFnZ2VkPXRydWU7aWYoIXRoaXMub3B0aW9ucy5kaXNhYmxlZCl7dmFyIGQ9
Cit0aGlzLm9wdGlvbnMsYj10aGlzLm9wb3NbMF0sZz10aGlzLm9wb3NbMV0saD1jLnBhZ2VYLGk9
Yy5wYWdlWTtpZihiPmgpe3ZhciBqPWg7aD1iO2I9an1pZihnPmkpe2o9aTtpPWc7Zz1qfXRoaXMu
aGVscGVyLmNzcyh7bGVmdDpiLHRvcDpnLHdpZHRoOmgtYixoZWlnaHQ6aS1nfSk7dGhpcy5zZWxl
Y3RlZXMuZWFjaChmdW5jdGlvbigpe3ZhciBhPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0i
KTtpZighKCFhfHxhLmVsZW1lbnQ9PWYuZWxlbWVudFswXSkpe3ZhciBrPWZhbHNlO2lmKGQudG9s
ZXJhbmNlPT0idG91Y2giKWs9IShhLmxlZnQ+aHx8YS5yaWdodDxifHxhLnRvcD5pfHxhLmJvdHRv
bTxnKTtlbHNlIGlmKGQudG9sZXJhbmNlPT0iZml0IilrPWEubGVmdD5iJiZhLnJpZ2h0PGgmJmEu
dG9wPmcmJmEuYm90dG9tPGk7aWYoayl7aWYoYS5zZWxlY3RlZCl7YS4kZWxlbWVudC5yZW1vdmVD
bGFzcygidWktc2VsZWN0ZWQiKTthLnNlbGVjdGVkPWZhbHNlfWlmKGEudW5zZWxlY3Rpbmcpe2Eu
JGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXVuc2VsZWN0aW5nIik7CithLnVuc2VsZWN0aW5nPWZh
bHNlfWlmKCFhLnNlbGVjdGluZyl7YS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIik7
YS5zZWxlY3Rpbmc9dHJ1ZTtmLl90cmlnZ2VyKCJzZWxlY3RpbmciLGMse3NlbGVjdGluZzphLmVs
ZW1lbnR9KX19ZWxzZXtpZihhLnNlbGVjdGluZylpZihjLm1ldGFLZXkmJmEuc3RhcnRzZWxlY3Rl
ZCl7YS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0aW5nIik7YS5zZWxlY3Rpbmc9ZmFs
c2U7YS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0ZWQiKTthLnNlbGVjdGVkPXRydWV9ZWxz
ZXthLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKTthLnNlbGVjdGluZz1mYWxz
ZTtpZihhLnN0YXJ0c2VsZWN0ZWQpe2EuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5n
Iik7YS51bnNlbGVjdGluZz10cnVlfWYuX3RyaWdnZXIoInVuc2VsZWN0aW5nIixjLHt1bnNlbGVj
dGluZzphLmVsZW1lbnR9KX1pZihhLnNlbGVjdGVkKWlmKCFjLm1ldGFLZXkmJgorIWEuc3RhcnRz
ZWxlY3RlZCl7YS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKTthLnNlbGVjdGVk
PWZhbHNlO2EuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIik7YS51bnNlbGVjdGlu
Zz10cnVlO2YuX3RyaWdnZXIoInVuc2VsZWN0aW5nIixjLHt1bnNlbGVjdGluZzphLmVsZW1lbnR9
KX19fX0pO3JldHVybiBmYWxzZX19LF9tb3VzZVN0b3A6ZnVuY3Rpb24oYyl7dmFyIGY9dGhpczt0
aGlzLmRyYWdnZWQ9ZmFsc2U7ZSgiLnVpLXVuc2VsZWN0aW5nIix0aGlzLmVsZW1lbnRbMF0pLmVh
Y2goZnVuY3Rpb24oKXt2YXIgZD1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7ZC4kZWxl
bWVudC5yZW1vdmVDbGFzcygidWktdW5zZWxlY3RpbmciKTtkLnVuc2VsZWN0aW5nPWZhbHNlO2Qu
c3RhcnRzZWxlY3RlZD1mYWxzZTtmLl90cmlnZ2VyKCJ1bnNlbGVjdGVkIixjLHt1bnNlbGVjdGVk
OmQuZWxlbWVudH0pfSk7ZSgiLnVpLXNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1
bmN0aW9uKCl7dmFyIGQ9CitlLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7ZC4kZWxlbWVu
dC5yZW1vdmVDbGFzcygidWktc2VsZWN0aW5nIikuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIik7ZC5z
ZWxlY3Rpbmc9ZmFsc2U7ZC5zZWxlY3RlZD10cnVlO2Quc3RhcnRzZWxlY3RlZD10cnVlO2YuX3Ry
aWdnZXIoInNlbGVjdGVkIixjLHtzZWxlY3RlZDpkLmVsZW1lbnR9KX0pO3RoaXMuX3RyaWdnZXIo
InN0b3AiLGMpO3RoaXMuaGVscGVyLnJlbW92ZSgpO3JldHVybiBmYWxzZX19KTtlLmV4dGVuZChl
LnVpLnNlbGVjdGFibGUse3ZlcnNpb246IjEuOC4xMCJ9KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpR
dWVyeSBVSSBTb3J0YWJsZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50
eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRo
ZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xp
Y2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL1NvcnRhYmxlcworICoKKyAq
IERlcGVuZHM6CisgKglqcXVlcnkudWkuY29yZS5qcworICoJanF1ZXJ5LnVpLm1vdXNlLmpzCisg
KglqcXVlcnkudWkud2lkZ2V0LmpzCisgKi8KKyhmdW5jdGlvbihkKXtkLndpZGdldCgidWkuc29y
dGFibGUiLGQudWkubW91c2Use3dpZGdldEV2ZW50UHJlZml4OiJzb3J0IixvcHRpb25zOnthcHBl
bmRUbzoicGFyZW50IixheGlzOmZhbHNlLGNvbm5lY3RXaXRoOmZhbHNlLGNvbnRhaW5tZW50OmZh
bHNlLGN1cnNvcjoiYXV0byIsY3Vyc29yQXQ6ZmFsc2UsZHJvcE9uRW1wdHk6dHJ1ZSxmb3JjZVBs
YWNlaG9sZGVyU2l6ZTpmYWxzZSxmb3JjZUhlbHBlclNpemU6ZmFsc2UsZ3JpZDpmYWxzZSxoYW5k
bGU6ZmFsc2UsaGVscGVyOiJvcmlnaW5hbCIsaXRlbXM6Ij4gKiIsb3BhY2l0eTpmYWxzZSxwbGFj
ZWhvbGRlcjpmYWxzZSxyZXZlcnQ6ZmFsc2Usc2Nyb2xsOnRydWUsc2Nyb2xsU2Vuc2l0aXZpdHk6
MjAsc2Nyb2xsU3BlZWQ6MjAsc2NvcGU6ImRlZmF1bHQiLHRvbGVyYW5jZToiaW50ZXJzZWN0Iix6
SW5kZXg6MUUzfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJDYWNoZT17fTt0aGlz
LmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNvcnRhYmxlIik7Cit0aGlzLnJlZnJlc2goKTt0aGlzLmZs
b2F0aW5nPXRoaXMuaXRlbXMubGVuZ3RoPy9sZWZ0fHJpZ2h0Ly50ZXN0KHRoaXMuaXRlbXNbMF0u
aXRlbS5jc3MoImZsb2F0IikpOmZhbHNlO3RoaXMub2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQo
KTt0aGlzLl9tb3VzZUluaXQoKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1v
dmVDbGFzcygidWktc29ydGFibGUgdWktc29ydGFibGUtZGlzYWJsZWQiKS5yZW1vdmVEYXRhKCJz
b3J0YWJsZSIpLnVuYmluZCgiLnNvcnRhYmxlIik7dGhpcy5fbW91c2VEZXN0cm95KCk7Zm9yKHZh
ciBhPXRoaXMuaXRlbXMubGVuZ3RoLTE7YT49MDthLS0pdGhpcy5pdGVtc1thXS5pdGVtLnJlbW92
ZURhdGEoInNvcnRhYmxlLWl0ZW0iKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbihh
LGIpe2lmKGE9PT0iZGlzYWJsZWQiKXt0aGlzLm9wdGlvbnNbYV09Yjt0aGlzLndpZGdldCgpW2I/
ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXSgidWktc29ydGFibGUtZGlzYWJsZWQiKX1lbHNlIGQu
V2lkZ2V0LnByb3RvdHlwZS5fc2V0T3B0aW9uLmFwcGx5KHRoaXMsCithcmd1bWVudHMpfSxfbW91
c2VDYXB0dXJlOmZ1bmN0aW9uKGEsYil7aWYodGhpcy5yZXZlcnRpbmcpcmV0dXJuIGZhbHNlO2lm
KHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8dGhpcy5vcHRpb25zLnR5cGU9PSJzdGF0aWMiKXJldHVy
biBmYWxzZTt0aGlzLl9yZWZyZXNoSXRlbXMoYSk7dmFyIGM9bnVsbCxlPXRoaXM7ZChhLnRhcmdl
dCkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXtpZihkLmRhdGEodGhpcywic29ydGFibGUtaXRl
bSIpPT1lKXtjPWQodGhpcyk7cmV0dXJuIGZhbHNlfX0pO2lmKGQuZGF0YShhLnRhcmdldCwic29y
dGFibGUtaXRlbSIpPT1lKWM9ZChhLnRhcmdldCk7aWYoIWMpcmV0dXJuIGZhbHNlO2lmKHRoaXMu
b3B0aW9ucy5oYW5kbGUmJiFiKXt2YXIgZj1mYWxzZTtkKHRoaXMub3B0aW9ucy5oYW5kbGUsYyku
ZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcz09YS50YXJnZXQpZj10
cnVlfSk7aWYoIWYpcmV0dXJuIGZhbHNlfXRoaXMuY3VycmVudEl0ZW09CitjO3RoaXMuX3JlbW92
ZUN1cnJlbnRzRnJvbUl0ZW1zKCk7cmV0dXJuIHRydWV9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKGEs
YixjKXtiPXRoaXMub3B0aW9uczt2YXIgZT10aGlzO3RoaXMuY3VycmVudENvbnRhaW5lcj10aGlz
O3RoaXMucmVmcmVzaFBvc2l0aW9ucygpO3RoaXMuaGVscGVyPXRoaXMuX2NyZWF0ZUhlbHBlcihh
KTt0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCk7dGhpcy5fY2FjaGVNYXJnaW5zKCk7dGhp
cy5zY3JvbGxQYXJlbnQ9dGhpcy5oZWxwZXIuc2Nyb2xsUGFyZW50KCk7dGhpcy5vZmZzZXQ9dGhp
cy5jdXJyZW50SXRlbS5vZmZzZXQoKTt0aGlzLm9mZnNldD17dG9wOnRoaXMub2Zmc2V0LnRvcC10
aGlzLm1hcmdpbnMudG9wLGxlZnQ6dGhpcy5vZmZzZXQubGVmdC10aGlzLm1hcmdpbnMubGVmdH07
dGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIsImFic29sdXRlIik7dGhpcy5jc3NQb3NpdGlvbj10
aGlzLmhlbHBlci5jc3MoInBvc2l0aW9uIik7ZC5leHRlbmQodGhpcy5vZmZzZXQsCit7Y2xpY2s6
e2xlZnQ6YS5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDphLnBhZ2VZLXRoaXMub2Zmc2V0LnRv
cH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0
aXZlT2Zmc2V0KCl9KTt0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlv
bihhKTt0aGlzLm9yaWdpbmFsUGFnZVg9YS5wYWdlWDt0aGlzLm9yaWdpbmFsUGFnZVk9YS5wYWdl
WTtiLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKGIuY3Vyc29yQXQpO3Ro
aXMuZG9tUG9zaXRpb249e3ByZXY6dGhpcy5jdXJyZW50SXRlbS5wcmV2KClbMF0scGFyZW50OnRo
aXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF19O3RoaXMuaGVscGVyWzBdIT10aGlzLmN1cnJlbnRJ
dGVtWzBdJiZ0aGlzLmN1cnJlbnRJdGVtLmhpZGUoKTt0aGlzLl9jcmVhdGVQbGFjZWhvbGRlcigp
O2IuY29udGFpbm1lbnQmJnRoaXMuX3NldENvbnRhaW5tZW50KCk7CitpZihiLmN1cnNvcil7aWYo
ZCgiYm9keSIpLmNzcygiY3Vyc29yIikpdGhpcy5fc3RvcmVkQ3Vyc29yPWQoImJvZHkiKS5jc3Mo
ImN1cnNvciIpO2QoImJvZHkiKS5jc3MoImN1cnNvciIsYi5jdXJzb3IpfWlmKGIub3BhY2l0eSl7
aWYodGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IikpdGhpcy5fc3RvcmVkT3BhY2l0eT10aGlzLmhl
bHBlci5jc3MoIm9wYWNpdHkiKTt0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiLGIub3BhY2l0eSl9
aWYoYi56SW5kZXgpe2lmKHRoaXMuaGVscGVyLmNzcygiekluZGV4IikpdGhpcy5fc3RvcmVkWklu
ZGV4PXRoaXMuaGVscGVyLmNzcygiekluZGV4Iik7dGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiLGIu
ekluZGV4KX1pZih0aGlzLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQmJnRoaXMuc2Nyb2xsUGFy
ZW50WzBdLnRhZ05hbWUhPSJIVE1MIil0aGlzLm92ZXJmbG93T2Zmc2V0PXRoaXMuc2Nyb2xsUGFy
ZW50Lm9mZnNldCgpO3RoaXMuX3RyaWdnZXIoInN0YXJ0IiwKK2EsdGhpcy5fdWlIYXNoKCkpO3Ro
aXMuX3ByZXNlcnZlSGVscGVyUHJvcG9ydGlvbnN8fHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlv
bnMoKTtpZighYylmb3IoYz10aGlzLmNvbnRhaW5lcnMubGVuZ3RoLTE7Yz49MDtjLS0pdGhpcy5j
b250YWluZXJzW2NdLl90cmlnZ2VyKCJhY3RpdmF0ZSIsYSxlLl91aUhhc2godGhpcykpO2lmKGQu
dWkuZGRtYW5hZ2VyKWQudWkuZGRtYW5hZ2VyLmN1cnJlbnQ9dGhpcztkLnVpLmRkbWFuYWdlciYm
IWIuZHJvcEJlaGF2aW91ciYmZC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcyxhKTt0
aGlzLmRyYWdnaW5nPXRydWU7dGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBl
ciIpO3RoaXMuX21vdXNlRHJhZyhhKTtyZXR1cm4gdHJ1ZX0sX21vdXNlRHJhZzpmdW5jdGlvbihh
KXt0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24oYSk7dGhpcy5wb3NpdGlvbkFi
cz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKTsKK2lmKCF0aGlzLmxhc3RQb3Np
dGlvbkFicyl0aGlzLmxhc3RQb3NpdGlvbkFicz10aGlzLnBvc2l0aW9uQWJzO2lmKHRoaXMub3B0
aW9ucy5zY3JvbGwpe3ZhciBiPXRoaXMub3B0aW9ucyxjPWZhbHNlO2lmKHRoaXMuc2Nyb2xsUGFy
ZW50WzBdIT1kb2N1bWVudCYmdGhpcy5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSE9IkhUTUwiKXtp
Zih0aGlzLm92ZXJmbG93T2Zmc2V0LnRvcCt0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRIZWln
aHQtYS5wYWdlWTxiLnNjcm9sbFNlbnNpdGl2aXR5KXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9s
bFRvcD1jPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcCtiLnNjcm9sbFNwZWVkO2Vsc2Ug
aWYoYS5wYWdlWS10aGlzLm92ZXJmbG93T2Zmc2V0LnRvcDxiLnNjcm9sbFNlbnNpdGl2aXR5KXRo
aXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcD1jPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9s
bFRvcC1iLnNjcm9sbFNwZWVkO2lmKHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCsKK3RoaXMuc2Ny
b2xsUGFyZW50WzBdLm9mZnNldFdpZHRoLWEucGFnZVg8Yi5zY3JvbGxTZW5zaXRpdml0eSl0aGlz
LnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0PWM9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xs
TGVmdCtiLnNjcm9sbFNwZWVkO2Vsc2UgaWYoYS5wYWdlWC10aGlzLm92ZXJmbG93T2Zmc2V0Lmxl
ZnQ8Yi5zY3JvbGxTZW5zaXRpdml0eSl0aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0PWM9
dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdC1iLnNjcm9sbFNwZWVkfWVsc2V7aWYoYS5w
YWdlWS1kKGRvY3VtZW50KS5zY3JvbGxUb3AoKTxiLnNjcm9sbFNlbnNpdGl2aXR5KWM9ZChkb2N1
bWVudCkuc2Nyb2xsVG9wKGQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLWIuc2Nyb2xsU3BlZWQpO2Vs
c2UgaWYoZCh3aW5kb3cpLmhlaWdodCgpLShhLnBhZ2VZLWQoZG9jdW1lbnQpLnNjcm9sbFRvcCgp
KTxiLnNjcm9sbFNlbnNpdGl2aXR5KWM9ZChkb2N1bWVudCkuc2Nyb2xsVG9wKGQoZG9jdW1lbnQp
LnNjcm9sbFRvcCgpKworYi5zY3JvbGxTcGVlZCk7aWYoYS5wYWdlWC1kKGRvY3VtZW50KS5zY3Jv
bGxMZWZ0KCk8Yi5zY3JvbGxTZW5zaXRpdml0eSljPWQoZG9jdW1lbnQpLnNjcm9sbExlZnQoZChk
b2N1bWVudCkuc2Nyb2xsTGVmdCgpLWIuc2Nyb2xsU3BlZWQpO2Vsc2UgaWYoZCh3aW5kb3cpLndp
ZHRoKCktKGEucGFnZVgtZChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpKTxiLnNjcm9sbFNlbnNpdGl2
aXR5KWM9ZChkb2N1bWVudCkuc2Nyb2xsTGVmdChkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkrYi5z
Y3JvbGxTcGVlZCl9YyE9PWZhbHNlJiZkLnVpLmRkbWFuYWdlciYmIWIuZHJvcEJlaGF2aW91ciYm
ZC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcyxhKX10aGlzLnBvc2l0aW9uQWJzPXRo
aXMuX2NvbnZlcnRQb3NpdGlvblRvKCJhYnNvbHV0ZSIpO2lmKCF0aGlzLm9wdGlvbnMuYXhpc3x8
dGhpcy5vcHRpb25zLmF4aXMhPSJ5Iil0aGlzLmhlbHBlclswXS5zdHlsZS5sZWZ0PXRoaXMucG9z
aXRpb24ubGVmdCsKKyJweCI7aWYoIXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLm9wdGlvbnMuYXhp
cyE9IngiKXRoaXMuaGVscGVyWzBdLnN0eWxlLnRvcD10aGlzLnBvc2l0aW9uLnRvcCsicHgiO2Zv
cihiPXRoaXMuaXRlbXMubGVuZ3RoLTE7Yj49MDtiLS0pe2M9dGhpcy5pdGVtc1tiXTt2YXIgZT1j
Lml0ZW1bMF0sZj10aGlzLl9pbnRlcnNlY3RzV2l0aFBvaW50ZXIoYyk7aWYoZilpZihlIT10aGlz
LmN1cnJlbnRJdGVtWzBdJiZ0aGlzLnBsYWNlaG9sZGVyW2Y9PTE/Im5leHQiOiJwcmV2Il0oKVsw
XSE9ZSYmIWQudWkuY29udGFpbnModGhpcy5wbGFjZWhvbGRlclswXSxlKSYmKHRoaXMub3B0aW9u
cy50eXBlPT0ic2VtaS1keW5hbWljIj8hZC51aS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sZSk6
dHJ1ZSkpe3RoaXMuZGlyZWN0aW9uPWY9PTE/ImRvd24iOiJ1cCI7aWYodGhpcy5vcHRpb25zLnRv
bGVyYW5jZT09InBvaW50ZXIifHx0aGlzLl9pbnRlcnNlY3RzV2l0aFNpZGVzKGMpKXRoaXMuX3Jl
YXJyYW5nZShhLAorYyk7ZWxzZSBicmVhazt0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGEsdGhpcy5f
dWlIYXNoKCkpO2JyZWFrfX10aGlzLl9jb250YWN0Q29udGFpbmVycyhhKTtkLnVpLmRkbWFuYWdl
ciYmZC51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLGEpO3RoaXMuX3RyaWdnZXIoInNvcnQiLGEsdGhp
cy5fdWlIYXNoKCkpO3RoaXMubGFzdFBvc2l0aW9uQWJzPXRoaXMucG9zaXRpb25BYnM7cmV0dXJu
IGZhbHNlfSxfbW91c2VTdG9wOmZ1bmN0aW9uKGEsYil7aWYoYSl7ZC51aS5kZG1hbmFnZXImJiF0
aGlzLm9wdGlvbnMuZHJvcEJlaGF2aW91ciYmZC51aS5kZG1hbmFnZXIuZHJvcCh0aGlzLGEpO2lm
KHRoaXMub3B0aW9ucy5yZXZlcnQpe3ZhciBjPXRoaXM7Yj1jLnBsYWNlaG9sZGVyLm9mZnNldCgp
O2MucmV2ZXJ0aW5nPXRydWU7ZCh0aGlzLmhlbHBlcikuYW5pbWF0ZSh7bGVmdDpiLmxlZnQtdGhp
cy5vZmZzZXQucGFyZW50LmxlZnQtYy5tYXJnaW5zLmxlZnQrKHRoaXMub2Zmc2V0UGFyZW50WzBd
PT0KK2RvY3VtZW50LmJvZHk/MDp0aGlzLm9mZnNldFBhcmVudFswXS5zY3JvbGxMZWZ0KSx0b3A6
Yi50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcC1jLm1hcmdpbnMudG9wKyh0aGlzLm9mZnNldFBh
cmVudFswXT09ZG9jdW1lbnQuYm9keT8wOnRoaXMub2Zmc2V0UGFyZW50WzBdLnNjcm9sbFRvcCl9
LHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnQsMTApfHw1MDAsZnVuY3Rpb24oKXtjLl9jbGVh
cihhKX0pfWVsc2UgdGhpcy5fY2xlYXIoYSxiKTtyZXR1cm4gZmFsc2V9fSxjYW5jZWw6ZnVuY3Rp
b24oKXt2YXIgYT10aGlzO2lmKHRoaXMuZHJhZ2dpbmcpe3RoaXMuX21vdXNlVXAoe3RhcmdldDpu
dWxsfSk7dGhpcy5vcHRpb25zLmhlbHBlcj09Im9yaWdpbmFsIj90aGlzLmN1cnJlbnRJdGVtLmNz
cyh0aGlzLl9zdG9yZWRDU1MpLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oZWxwZXIiKTp0aGlz
LmN1cnJlbnRJdGVtLnNob3coKTtmb3IodmFyIGI9dGhpcy5jb250YWluZXJzLmxlbmd0aC0KKzE7
Yj49MDtiLS0pe3RoaXMuY29udGFpbmVyc1tiXS5fdHJpZ2dlcigiZGVhY3RpdmF0ZSIsbnVsbCxh
Ll91aUhhc2godGhpcykpO2lmKHRoaXMuY29udGFpbmVyc1tiXS5jb250YWluZXJDYWNoZS5vdmVy
KXt0aGlzLmNvbnRhaW5lcnNbYl0uX3RyaWdnZXIoIm91dCIsbnVsbCxhLl91aUhhc2godGhpcykp
O3RoaXMuY29udGFpbmVyc1tiXS5jb250YWluZXJDYWNoZS5vdmVyPTB9fX1pZih0aGlzLnBsYWNl
aG9sZGVyKXt0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUmJnRoaXMucGxhY2Vob2xkZXJb
MF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKTt0aGlzLm9wdGlv
bnMuaGVscGVyIT0ib3JpZ2luYWwiJiZ0aGlzLmhlbHBlciYmdGhpcy5oZWxwZXJbMF0ucGFyZW50
Tm9kZSYmdGhpcy5oZWxwZXIucmVtb3ZlKCk7ZC5leHRlbmQodGhpcyx7aGVscGVyOm51bGwsZHJh
Z2dpbmc6ZmFsc2UscmV2ZXJ0aW5nOmZhbHNlLF9ub0ZpbmFsU29ydDpudWxsfSk7Cit0aGlzLmRv
bVBvc2l0aW9uLnByZXY/ZCh0aGlzLmRvbVBvc2l0aW9uLnByZXYpLmFmdGVyKHRoaXMuY3VycmVu
dEl0ZW0pOmQodGhpcy5kb21Qb3NpdGlvbi5wYXJlbnQpLnByZXBlbmQodGhpcy5jdXJyZW50SXRl
bSl9cmV0dXJuIHRoaXN9LHNlcmlhbGl6ZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLl9nZXRJdGVt
c0FzalF1ZXJ5KGEmJmEuY29ubmVjdGVkKSxjPVtdO2E9YXx8e307ZChiKS5lYWNoKGZ1bmN0aW9u
KCl7dmFyIGU9KGQoYS5pdGVtfHx0aGlzKS5hdHRyKGEuYXR0cmlidXRlfHwiaWQiKXx8IiIpLm1h
dGNoKGEuZXhwcmVzc2lvbnx8LyguKylbLT1fXSguKykvKTtpZihlKWMucHVzaCgoYS5rZXl8fGVb
MV0rIltdIikrIj0iKyhhLmtleSYmYS5leHByZXNzaW9uP2VbMV06ZVsyXSkpfSk7IWMubGVuZ3Ro
JiZhLmtleSYmYy5wdXNoKGEua2V5KyI9Iik7cmV0dXJuIGMuam9pbigiJiIpfSx0b0FycmF5OmZ1
bmN0aW9uKGEpe3ZhciBiPXRoaXMuX2dldEl0ZW1zQXNqUXVlcnkoYSYmCithLmNvbm5lY3RlZCks
Yz1bXTthPWF8fHt9O2IuZWFjaChmdW5jdGlvbigpe2MucHVzaChkKGEuaXRlbXx8dGhpcykuYXR0
cihhLmF0dHJpYnV0ZXx8ImlkIil8fCIiKX0pO3JldHVybiBjfSxfaW50ZXJzZWN0c1dpdGg6ZnVu
Y3Rpb24oYSl7dmFyIGI9dGhpcy5wb3NpdGlvbkFicy5sZWZ0LGM9Yit0aGlzLmhlbHBlclByb3Bv
cnRpb25zLndpZHRoLGU9dGhpcy5wb3NpdGlvbkFicy50b3AsZj1lK3RoaXMuaGVscGVyUHJvcG9y
dGlvbnMuaGVpZ2h0LGc9YS5sZWZ0LGg9ZythLndpZHRoLGk9YS50b3Asaz1pK2EuaGVpZ2h0LGo9
dGhpcy5vZmZzZXQuY2xpY2sudG9wLGw9dGhpcy5vZmZzZXQuY2xpY2subGVmdDtqPWUraj5pJiZl
K2o8ayYmYitsPmcmJmIrbDxoO3JldHVybiB0aGlzLm9wdGlvbnMudG9sZXJhbmNlPT0icG9pbnRl
ciJ8fHRoaXMub3B0aW9ucy5mb3JjZVBvaW50ZXJGb3JDb250YWluZXJzfHx0aGlzLm9wdGlvbnMu
dG9sZXJhbmNlIT0icG9pbnRlciImJnRoaXMuaGVscGVyUHJvcG9ydGlvbnNbdGhpcy5mbG9hdGlu
Zz8KKyJ3aWR0aCI6ImhlaWdodCJdPmFbdGhpcy5mbG9hdGluZz8id2lkdGgiOiJoZWlnaHQiXT9q
Omc8Yit0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLzImJmMtdGhpcy5oZWxwZXJQcm9wb3J0
aW9ucy53aWR0aC8yPGgmJmk8ZSt0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yJiZmLXRo
aXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI8a30sX2ludGVyc2VjdHNXaXRoUG9pbnRlcjpm
dW5jdGlvbihhKXt2YXIgYj1kLnVpLmlzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy50b3ArdGhp
cy5vZmZzZXQuY2xpY2sudG9wLGEudG9wLGEuaGVpZ2h0KTthPWQudWkuaXNPdmVyQXhpcyh0aGlz
LnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxhLmxlZnQsYS53aWR0aCk7
Yj1iJiZhO2E9dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCk7dmFyIGM9dGhpcy5fZ2V0
RHJhZ0hvcml6b250YWxEaXJlY3Rpb24oKTtpZighYilyZXR1cm4gZmFsc2U7cmV0dXJuIHRoaXMu
ZmxvYXRpbmc/CitjJiZjPT0icmlnaHQifHxhPT0iZG93biI/MjoxOmEmJihhPT0iZG93biI/Mjox
KX0sX2ludGVyc2VjdHNXaXRoU2lkZXM6ZnVuY3Rpb24oYSl7dmFyIGI9ZC51aS5pc092ZXJBeGlz
KHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCxhLnRvcCthLmhlaWdo
dC8yLGEuaGVpZ2h0KTthPWQudWkuaXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhp
cy5vZmZzZXQuY2xpY2subGVmdCxhLmxlZnQrYS53aWR0aC8yLGEud2lkdGgpO3ZhciBjPXRoaXMu
X2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLGU9dGhpcy5fZ2V0RHJhZ0hvcml6b250YWxEaXJl
Y3Rpb24oKTtyZXR1cm4gdGhpcy5mbG9hdGluZyYmZT9lPT0icmlnaHQiJiZhfHxlPT0ibGVmdCIm
JiFhOmMmJihjPT0iZG93biImJmJ8fGM9PSJ1cCImJiFiKX0sX2dldERyYWdWZXJ0aWNhbERpcmVj
dGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMucG9zaXRpb25BYnMudG9wLXRoaXMubGFzdFBvc2l0
aW9uQWJzLnRvcDsKK3JldHVybiBhIT0wJiYoYT4wPyJkb3duIjoidXAiKX0sX2dldERyYWdIb3Jp
em9udGFsRGlyZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5wb3NpdGlvbkFicy5sZWZ0LXRo
aXMubGFzdFBvc2l0aW9uQWJzLmxlZnQ7cmV0dXJuIGEhPTAmJihhPjA/InJpZ2h0IjoibGVmdCIp
fSxyZWZyZXNoOmZ1bmN0aW9uKGEpe3RoaXMuX3JlZnJlc2hJdGVtcyhhKTt0aGlzLnJlZnJlc2hQ
b3NpdGlvbnMoKTtyZXR1cm4gdGhpc30sX2Nvbm5lY3RXaXRoOmZ1bmN0aW9uKCl7dmFyIGE9dGhp
cy5vcHRpb25zO3JldHVybiBhLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yPT1TdHJpbmc/W2EuY29u
bmVjdFdpdGhdOmEuY29ubmVjdFdpdGh9LF9nZXRJdGVtc0FzalF1ZXJ5OmZ1bmN0aW9uKGEpe3Zh
ciBiPVtdLGM9W10sZT10aGlzLl9jb25uZWN0V2l0aCgpO2lmKGUmJmEpZm9yKGE9ZS5sZW5ndGgt
MTthPj0wO2EtLSlmb3IodmFyIGY9ZChlW2FdKSxnPWYubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBo
PQorZC5kYXRhKGZbZ10sInNvcnRhYmxlIik7aWYoaCYmaCE9dGhpcyYmIWgub3B0aW9ucy5kaXNh
YmxlZCljLnB1c2goW2QuaXNGdW5jdGlvbihoLm9wdGlvbnMuaXRlbXMpP2gub3B0aW9ucy5pdGVt
cy5jYWxsKGguZWxlbWVudCk6ZChoLm9wdGlvbnMuaXRlbXMsaC5lbGVtZW50KS5ub3QoIi51aS1z
b3J0YWJsZS1oZWxwZXIiKS5ub3QoIi51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIpLGhdKX1jLnB1
c2goW2QuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMuaXRlbXMpP3RoaXMub3B0aW9ucy5pdGVtcy5j
YWxsKHRoaXMuZWxlbWVudCxudWxsLHtvcHRpb25zOnRoaXMub3B0aW9ucyxpdGVtOnRoaXMuY3Vy
cmVudEl0ZW19KTpkKHRoaXMub3B0aW9ucy5pdGVtcyx0aGlzLmVsZW1lbnQpLm5vdCgiLnVpLXNv
cnRhYmxlLWhlbHBlciIpLm5vdCgiLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIiksdGhpc10pO2Zv
cihhPWMubGVuZ3RoLTE7YT49MDthLS0pY1thXVswXS5lYWNoKGZ1bmN0aW9uKCl7Yi5wdXNoKHRo
aXMpfSk7CityZXR1cm4gZChiKX0sX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOmZ1bmN0aW9uKCl7
Zm9yKHZhciBhPXRoaXMuY3VycmVudEl0ZW0uZmluZCgiOmRhdGEoc29ydGFibGUtaXRlbSkiKSxi
PTA7Yjx0aGlzLml0ZW1zLmxlbmd0aDtiKyspZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYVtj
XT09dGhpcy5pdGVtc1tiXS5pdGVtWzBdJiZ0aGlzLml0ZW1zLnNwbGljZShiLDEpfSxfcmVmcmVz
aEl0ZW1zOmZ1bmN0aW9uKGEpe3RoaXMuaXRlbXM9W107dGhpcy5jb250YWluZXJzPVt0aGlzXTt2
YXIgYj10aGlzLml0ZW1zLGM9W1tkLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLml0ZW1zKT90aGlz
Lm9wdGlvbnMuaXRlbXMuY2FsbCh0aGlzLmVsZW1lbnRbMF0sYSx7aXRlbTp0aGlzLmN1cnJlbnRJ
dGVtfSk6ZCh0aGlzLm9wdGlvbnMuaXRlbXMsdGhpcy5lbGVtZW50KSx0aGlzXV0sZT10aGlzLl9j
b25uZWN0V2l0aCgpO2lmKGUpZm9yKHZhciBmPWUubGVuZ3RoLTE7Zj49MDtmLS0pZm9yKHZhciBn
PQorZChlW2ZdKSxoPWcubGVuZ3RoLTE7aD49MDtoLS0pe3ZhciBpPWQuZGF0YShnW2hdLCJzb3J0
YWJsZSIpO2lmKGkmJmkhPXRoaXMmJiFpLm9wdGlvbnMuZGlzYWJsZWQpe2MucHVzaChbZC5pc0Z1
bmN0aW9uKGkub3B0aW9ucy5pdGVtcyk/aS5vcHRpb25zLml0ZW1zLmNhbGwoaS5lbGVtZW50WzBd
LGEse2l0ZW06dGhpcy5jdXJyZW50SXRlbX0pOmQoaS5vcHRpb25zLml0ZW1zLGkuZWxlbWVudCks
aV0pO3RoaXMuY29udGFpbmVycy5wdXNoKGkpfX1mb3IoZj1jLmxlbmd0aC0xO2Y+PTA7Zi0tKXth
PWNbZl1bMV07ZT1jW2ZdWzBdO2g9MDtmb3IoZz1lLmxlbmd0aDtoPGc7aCsrKXtpPWQoZVtoXSk7
aS5kYXRhKCJzb3J0YWJsZS1pdGVtIixhKTtiLnB1c2goe2l0ZW06aSxpbnN0YW5jZTphLHdpZHRo
OjAsaGVpZ2h0OjAsbGVmdDowLHRvcDowfSl9fX0scmVmcmVzaFBvc2l0aW9uczpmdW5jdGlvbihh
KXtpZih0aGlzLm9mZnNldFBhcmVudCYmdGhpcy5oZWxwZXIpdGhpcy5vZmZzZXQucGFyZW50PQor
dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCk7Zm9yKHZhciBiPXRoaXMuaXRlbXMubGVuZ3RoLTE7Yj49
MDtiLS0pe3ZhciBjPXRoaXMuaXRlbXNbYl0sZT10aGlzLm9wdGlvbnMudG9sZXJhbmNlRWxlbWVu
dD9kKHRoaXMub3B0aW9ucy50b2xlcmFuY2VFbGVtZW50LGMuaXRlbSk6Yy5pdGVtO2lmKCFhKXtj
LndpZHRoPWUub3V0ZXJXaWR0aCgpO2MuaGVpZ2h0PWUub3V0ZXJIZWlnaHQoKX1lPWUub2Zmc2V0
KCk7Yy5sZWZ0PWUubGVmdDtjLnRvcD1lLnRvcH1pZih0aGlzLm9wdGlvbnMuY3VzdG9tJiZ0aGlz
Lm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzKXRoaXMub3B0aW9ucy5jdXN0b20ucmVm
cmVzaENvbnRhaW5lcnMuY2FsbCh0aGlzKTtlbHNlIGZvcihiPXRoaXMuY29udGFpbmVycy5sZW5n
dGgtMTtiPj0wO2ItLSl7ZT10aGlzLmNvbnRhaW5lcnNbYl0uZWxlbWVudC5vZmZzZXQoKTt0aGlz
LmNvbnRhaW5lcnNbYl0uY29udGFpbmVyQ2FjaGUubGVmdD1lLmxlZnQ7dGhpcy5jb250YWluZXJz
W2JdLmNvbnRhaW5lckNhY2hlLnRvcD0KK2UudG9wO3RoaXMuY29udGFpbmVyc1tiXS5jb250YWlu
ZXJDYWNoZS53aWR0aD10aGlzLmNvbnRhaW5lcnNbYl0uZWxlbWVudC5vdXRlcldpZHRoKCk7dGhp
cy5jb250YWluZXJzW2JdLmNvbnRhaW5lckNhY2hlLmhlaWdodD10aGlzLmNvbnRhaW5lcnNbYl0u
ZWxlbWVudC5vdXRlckhlaWdodCgpfXJldHVybiB0aGlzfSxfY3JlYXRlUGxhY2Vob2xkZXI6ZnVu
Y3Rpb24oYSl7dmFyIGI9YXx8dGhpcyxjPWIub3B0aW9ucztpZighYy5wbGFjZWhvbGRlcnx8Yy5w
bGFjZWhvbGRlci5jb25zdHJ1Y3Rvcj09U3RyaW5nKXt2YXIgZT1jLnBsYWNlaG9sZGVyO2MucGxh
Y2Vob2xkZXI9e2VsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZj1kKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoYi5jdXJyZW50SXRlbVswXS5ub2RlTmFtZSkpLmFkZENsYXNzKGV8fGIuY3VycmVudEl0ZW1b
MF0uY2xhc3NOYW1lKyIgdWktc29ydGFibGUtcGxhY2Vob2xkZXIiKS5yZW1vdmVDbGFzcygidWkt
c29ydGFibGUtaGVscGVyIilbMF07CitpZighZSlmLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7
cmV0dXJuIGZ9LHVwZGF0ZTpmdW5jdGlvbihmLGcpe2lmKCEoZSYmIWMuZm9yY2VQbGFjZWhvbGRl
clNpemUpKXtnLmhlaWdodCgpfHxnLmhlaWdodChiLmN1cnJlbnRJdGVtLmlubmVySGVpZ2h0KCkt
cGFyc2VJbnQoYi5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdUb3AiKXx8MCwxMCktcGFyc2VJbnQo
Yi5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdCb3R0b20iKXx8MCwxMCkpO2cud2lkdGgoKXx8Zy53
aWR0aChiLmN1cnJlbnRJdGVtLmlubmVyV2lkdGgoKS1wYXJzZUludChiLmN1cnJlbnRJdGVtLmNz
cygicGFkZGluZ0xlZnQiKXx8MCwxMCktcGFyc2VJbnQoYi5jdXJyZW50SXRlbS5jc3MoInBhZGRp
bmdSaWdodCIpfHwwLDEwKSl9fX19Yi5wbGFjZWhvbGRlcj1kKGMucGxhY2Vob2xkZXIuZWxlbWVu
dC5jYWxsKGIuZWxlbWVudCxiLmN1cnJlbnRJdGVtKSk7Yi5jdXJyZW50SXRlbS5hZnRlcihiLnBs
YWNlaG9sZGVyKTsKK2MucGxhY2Vob2xkZXIudXBkYXRlKGIsYi5wbGFjZWhvbGRlcil9LF9jb250
YWN0Q29udGFpbmVyczpmdW5jdGlvbihhKXtmb3IodmFyIGI9bnVsbCxjPW51bGwsZT10aGlzLmNv
bnRhaW5lcnMubGVuZ3RoLTE7ZT49MDtlLS0paWYoIWQudWkuY29udGFpbnModGhpcy5jdXJyZW50
SXRlbVswXSx0aGlzLmNvbnRhaW5lcnNbZV0uZWxlbWVudFswXSkpaWYodGhpcy5faW50ZXJzZWN0
c1dpdGgodGhpcy5jb250YWluZXJzW2VdLmNvbnRhaW5lckNhY2hlKSl7aWYoIShiJiZkLnVpLmNv
bnRhaW5zKHRoaXMuY29udGFpbmVyc1tlXS5lbGVtZW50WzBdLGIuZWxlbWVudFswXSkpKXtiPXRo
aXMuY29udGFpbmVyc1tlXTtjPWV9fWVsc2UgaWYodGhpcy5jb250YWluZXJzW2VdLmNvbnRhaW5l
ckNhY2hlLm92ZXIpe3RoaXMuY29udGFpbmVyc1tlXS5fdHJpZ2dlcigib3V0IixhLHRoaXMuX3Vp
SGFzaCh0aGlzKSk7dGhpcy5jb250YWluZXJzW2VdLmNvbnRhaW5lckNhY2hlLm92ZXI9MH1pZihi
KWlmKHRoaXMuY29udGFpbmVycy5sZW5ndGg9PT0KKzEpe3RoaXMuY29udGFpbmVyc1tjXS5fdHJp
Z2dlcigib3ZlciIsYSx0aGlzLl91aUhhc2godGhpcykpO3RoaXMuY29udGFpbmVyc1tjXS5jb250
YWluZXJDYWNoZS5vdmVyPTF9ZWxzZSBpZih0aGlzLmN1cnJlbnRDb250YWluZXIhPXRoaXMuY29u
dGFpbmVyc1tjXSl7Yj0xRTQ7ZT1udWxsO2Zvcih2YXIgZj10aGlzLnBvc2l0aW9uQWJzW3RoaXMu
Y29udGFpbmVyc1tjXS5mbG9hdGluZz8ibGVmdCI6InRvcCJdLGc9dGhpcy5pdGVtcy5sZW5ndGgt
MTtnPj0wO2ctLSlpZihkLnVpLmNvbnRhaW5zKHRoaXMuY29udGFpbmVyc1tjXS5lbGVtZW50WzBd
LHRoaXMuaXRlbXNbZ10uaXRlbVswXSkpe3ZhciBoPXRoaXMuaXRlbXNbZ11bdGhpcy5jb250YWlu
ZXJzW2NdLmZsb2F0aW5nPyJsZWZ0IjoidG9wIl07aWYoTWF0aC5hYnMoaC1mKTxiKXtiPU1hdGgu
YWJzKGgtZik7ZT10aGlzLml0ZW1zW2ddfX1pZihlfHx0aGlzLm9wdGlvbnMuZHJvcE9uRW1wdHkp
e3RoaXMuY3VycmVudENvbnRhaW5lcj0KK3RoaXMuY29udGFpbmVyc1tjXTtlP3RoaXMuX3JlYXJy
YW5nZShhLGUsbnVsbCx0cnVlKTp0aGlzLl9yZWFycmFuZ2UoYSxudWxsLHRoaXMuY29udGFpbmVy
c1tjXS5lbGVtZW50LHRydWUpO3RoaXMuX3RyaWdnZXIoImNoYW5nZSIsYSx0aGlzLl91aUhhc2go
KSk7dGhpcy5jb250YWluZXJzW2NdLl90cmlnZ2VyKCJjaGFuZ2UiLGEsdGhpcy5fdWlIYXNoKHRo
aXMpKTt0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXIudXBkYXRlKHRoaXMuY3VycmVudENvbnRhaW5l
cix0aGlzLnBsYWNlaG9sZGVyKTt0aGlzLmNvbnRhaW5lcnNbY10uX3RyaWdnZXIoIm92ZXIiLGEs
dGhpcy5fdWlIYXNoKHRoaXMpKTt0aGlzLmNvbnRhaW5lcnNbY10uY29udGFpbmVyQ2FjaGUub3Zl
cj0xfX19LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zO2E9ZC5p
c0Z1bmN0aW9uKGIuaGVscGVyKT9kKGIuaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbYSx0
aGlzLmN1cnJlbnRJdGVtXSkpOgorYi5oZWxwZXI9PSJjbG9uZSI/dGhpcy5jdXJyZW50SXRlbS5j
bG9uZSgpOnRoaXMuY3VycmVudEl0ZW07YS5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxkKGIuYXBw
ZW5kVG8hPSJwYXJlbnQiP2IuYXBwZW5kVG86dGhpcy5jdXJyZW50SXRlbVswXS5wYXJlbnROb2Rl
KVswXS5hcHBlbmRDaGlsZChhWzBdKTtpZihhWzBdPT10aGlzLmN1cnJlbnRJdGVtWzBdKXRoaXMu
X3N0b3JlZENTUz17d2lkdGg6dGhpcy5jdXJyZW50SXRlbVswXS5zdHlsZS53aWR0aCxoZWlnaHQ6
dGhpcy5jdXJyZW50SXRlbVswXS5zdHlsZS5oZWlnaHQscG9zaXRpb246dGhpcy5jdXJyZW50SXRl
bS5jc3MoInBvc2l0aW9uIiksdG9wOnRoaXMuY3VycmVudEl0ZW0uY3NzKCJ0b3AiKSxsZWZ0OnRo
aXMuY3VycmVudEl0ZW0uY3NzKCJsZWZ0Iil9O2lmKGFbMF0uc3R5bGUud2lkdGg9PSIifHxiLmZv
cmNlSGVscGVyU2l6ZSlhLndpZHRoKHRoaXMuY3VycmVudEl0ZW0ud2lkdGgoKSk7aWYoYVswXS5z
dHlsZS5oZWlnaHQ9PQorIiJ8fGIuZm9yY2VIZWxwZXJTaXplKWEuaGVpZ2h0KHRoaXMuY3VycmVu
dEl0ZW0uaGVpZ2h0KCkpO3JldHVybiBhfSxfYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcjpmdW5jdGlv
bihhKXtpZih0eXBlb2YgYT09InN0cmluZyIpYT1hLnNwbGl0KCIgIik7aWYoZC5pc0FycmF5KGEp
KWE9e2xlZnQ6K2FbMF0sdG9wOithWzFdfHwwfTtpZigibGVmdCJpbiBhKXRoaXMub2Zmc2V0LmNs
aWNrLmxlZnQ9YS5sZWZ0K3RoaXMubWFyZ2lucy5sZWZ0O2lmKCJyaWdodCJpbiBhKXRoaXMub2Zm
c2V0LmNsaWNrLmxlZnQ9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC1hLnJpZ2h0K3RoaXMu
bWFyZ2lucy5sZWZ0O2lmKCJ0b3AiaW4gYSl0aGlzLm9mZnNldC5jbGljay50b3A9YS50b3ArdGhp
cy5tYXJnaW5zLnRvcDtpZigiYm90dG9tImluIGEpdGhpcy5vZmZzZXQuY2xpY2sudG9wPXRoaXMu
aGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LWEuYm90dG9tK3RoaXMubWFyZ2lucy50b3B9LF9nZXRQ
YXJlbnRPZmZzZXQ6ZnVuY3Rpb24oKXt0aGlzLm9mZnNldFBhcmVudD0KK3RoaXMuaGVscGVyLm9m
ZnNldFBhcmVudCgpO3ZhciBhPXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpO2lmKHRoaXMuY3Nz
UG9zaXRpb249PSJhYnNvbHV0ZSImJnRoaXMuc2Nyb2xsUGFyZW50WzBdIT1kb2N1bWVudCYmZC51
aS5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSkpe2Eu
bGVmdCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpO2EudG9wKz10aGlzLnNjcm9sbFBh
cmVudC5zY3JvbGxUb3AoKX1pZih0aGlzLm9mZnNldFBhcmVudFswXT09ZG9jdW1lbnQuYm9keXx8
dGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFtZSYmdGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFt
ZS50b0xvd2VyQ2FzZSgpPT0iaHRtbCImJmQuYnJvd3Nlci5tc2llKWE9e3RvcDowLGxlZnQ6MH07
cmV0dXJue3RvcDphLnRvcCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJU
b3BXaWR0aCIpLDEwKXx8MCksbGVmdDphLmxlZnQrKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50
LmNzcygiYm9yZGVyTGVmdFdpZHRoIiksCisxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1
bmN0aW9uKCl7aWYodGhpcy5jc3NQb3NpdGlvbj09InJlbGF0aXZlIil7dmFyIGE9dGhpcy5jdXJy
ZW50SXRlbS5wb3NpdGlvbigpO3JldHVybnt0b3A6YS50b3AtKHBhcnNlSW50KHRoaXMuaGVscGVy
LmNzcygidG9wIiksMTApfHwwKSt0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OmEu
bGVmdC0ocGFyc2VJbnQodGhpcy5oZWxwZXIuY3NzKCJsZWZ0IiksMTApfHwwKSt0aGlzLnNjcm9s
bFBhcmVudC5zY3JvbGxMZWZ0KCl9fWVsc2UgcmV0dXJue3RvcDowLGxlZnQ6MH19LF9jYWNoZU1h
cmdpbnM6ZnVuY3Rpb24oKXt0aGlzLm1hcmdpbnM9e2xlZnQ6cGFyc2VJbnQodGhpcy5jdXJyZW50
SXRlbS5jc3MoIm1hcmdpbkxlZnQiKSwxMCl8fDAsdG9wOnBhcnNlSW50KHRoaXMuY3VycmVudEl0
ZW0uY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDB9fSxfY2FjaGVIZWxwZXJQcm9wb3J0aW9uczpmdW5j
dGlvbigpe3RoaXMuaGVscGVyUHJvcG9ydGlvbnM9Cit7d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJX
aWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50
OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zO2lmKGEuY29udGFpbm1lbnQ9PSJwYXJlbnQi
KWEuY29udGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZTtpZihhLmNvbnRhaW5tZW50
PT0iZG9jdW1lbnQifHxhLmNvbnRhaW5tZW50PT0id2luZG93Iil0aGlzLmNvbnRhaW5tZW50PVsw
LXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsMC10aGlz
Lm9mZnNldC5yZWxhdGl2ZS50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcCxkKGEuY29udGFpbm1l
bnQ9PSJkb2N1bWVudCI/ZG9jdW1lbnQ6d2luZG93KS53aWR0aCgpLXRoaXMuaGVscGVyUHJvcG9y
dGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsKGQoYS5jb250YWlubWVudD09ImRvY3VtZW50
Ij9kb2N1bWVudDp3aW5kb3cpLmhlaWdodCgpfHwKK2RvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5z
Y3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50
b3BdO2lmKCEvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvLnRlc3QoYS5jb250YWlubWVudCkp
e3ZhciBiPWQoYS5jb250YWlubWVudClbMF07YT1kKGEuY29udGFpbm1lbnQpLm9mZnNldCgpO3Zh
ciBjPWQoYikuY3NzKCJvdmVyZmxvdyIpIT0iaGlkZGVuIjt0aGlzLmNvbnRhaW5tZW50PVthLmxl
ZnQrKHBhcnNlSW50KGQoYikuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApKyhwYXJzZUlu
dChkKGIpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLXRoaXMubWFyZ2lucy5sZWZ0LGEudG9w
KyhwYXJzZUludChkKGIpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChk
KGIpLmNzcygicGFkZGluZ1RvcCIpLDEwKXx8MCktdGhpcy5tYXJnaW5zLnRvcCxhLmxlZnQrKGM/
TWF0aC5tYXgoYi5zY3JvbGxXaWR0aCwKK2Iub2Zmc2V0V2lkdGgpOmIub2Zmc2V0V2lkdGgpLShw
YXJzZUludChkKGIpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoZChi
KS5jc3MoInBhZGRpbmdSaWdodCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0
aC10aGlzLm1hcmdpbnMubGVmdCxhLnRvcCsoYz9NYXRoLm1heChiLnNjcm9sbEhlaWdodCxiLm9m
ZnNldEhlaWdodCk6Yi5vZmZzZXRIZWlnaHQpLShwYXJzZUludChkKGIpLmNzcygiYm9yZGVyVG9w
V2lkdGgiKSwxMCl8fDApLShwYXJzZUludChkKGIpLmNzcygicGFkZGluZ0JvdHRvbSIpLDEwKXx8
MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcF19fSxfY29u
dmVydFBvc2l0aW9uVG86ZnVuY3Rpb24oYSxiKXtpZighYiliPXRoaXMucG9zaXRpb247YT1hPT0i
YWJzb2x1dGUiPzE6LTE7dmFyIGM9dGhpcy5jc3NQb3NpdGlvbj09ImFic29sdXRlIiYmISh0aGlz
LnNjcm9sbFBhcmVudFswXSE9Citkb2N1bWVudCYmZC51aS5jb250YWlucyh0aGlzLnNjcm9sbFBh
cmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSkpP3RoaXMub2Zmc2V0UGFyZW50OnRoaXMuc2Ny
b2xsUGFyZW50LGU9LyhodG1sfGJvZHkpL2kudGVzdChjWzBdLnRhZ05hbWUpO3JldHVybnt0b3A6
Yi50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKmErdGhpcy5vZmZzZXQucGFyZW50LnRvcCph
LShkLmJyb3dzZXIuc2FmYXJpJiZ0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPzA6KHRoaXMuY3Nz
UG9zaXRpb249PSJmaXhlZCI/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOmU/MDpjLnNj
cm9sbFRvcCgpKSphKSxsZWZ0OmIubGVmdCt0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0KmErdGhp
cy5vZmZzZXQucGFyZW50LmxlZnQqYS0oZC5icm93c2VyLnNhZmFyaSYmdGhpcy5jc3NQb3NpdGlv
bj09ImZpeGVkIj8wOih0aGlzLmNzc1Bvc2l0aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVu
dC5zY3JvbGxMZWZ0KCk6CitlPzA6Yy5zY3JvbGxMZWZ0KCkpKmEpfX0sX2dlbmVyYXRlUG9zaXRp
b246ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zLGM9dGhpcy5jc3NQb3NpdGlvbj09ImFi
c29sdXRlIiYmISh0aGlzLnNjcm9sbFBhcmVudFswXSE9ZG9jdW1lbnQmJmQudWkuY29udGFpbnMo
dGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pKT90aGlzLm9mZnNldFBh
cmVudDp0aGlzLnNjcm9sbFBhcmVudCxlPS8oaHRtbHxib2R5KS9pLnRlc3QoY1swXS50YWdOYW1l
KTtpZih0aGlzLmNzc1Bvc2l0aW9uPT0icmVsYXRpdmUiJiYhKHRoaXMuc2Nyb2xsUGFyZW50WzBd
IT1kb2N1bWVudCYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPXRoaXMub2Zmc2V0UGFyZW50WzBdKSl0
aGlzLm9mZnNldC5yZWxhdGl2ZT10aGlzLl9nZXRSZWxhdGl2ZU9mZnNldCgpO3ZhciBmPWEucGFn
ZVgsZz1hLnBhZ2VZO2lmKHRoaXMub3JpZ2luYWxQb3NpdGlvbil7aWYodGhpcy5jb250YWlubWVu
dCl7aWYoYS5wYWdlWC0KK3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFsw
XSlmPXRoaXMuY29udGFpbm1lbnRbMF0rdGhpcy5vZmZzZXQuY2xpY2subGVmdDtpZihhLnBhZ2VZ
LXRoaXMub2Zmc2V0LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdKWc9dGhpcy5jb250YWlu
bWVudFsxXSt0aGlzLm9mZnNldC5jbGljay50b3A7aWYoYS5wYWdlWC10aGlzLm9mZnNldC5jbGlj
ay5sZWZ0PnRoaXMuY29udGFpbm1lbnRbMl0pZj10aGlzLmNvbnRhaW5tZW50WzJdK3RoaXMub2Zm
c2V0LmNsaWNrLmxlZnQ7aWYoYS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+dGhpcy5jb250
YWlubWVudFszXSlnPXRoaXMuY29udGFpbm1lbnRbM10rdGhpcy5vZmZzZXQuY2xpY2sudG9wfWlm
KGIuZ3JpZCl7Zz10aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgoZy10aGlzLm9yaWdpbmFs
UGFnZVkpL2IuZ3JpZFsxXSkqYi5ncmlkWzFdO2c9dGhpcy5jb250YWlubWVudD8hKGctdGhpcy5v
ZmZzZXQuY2xpY2sudG9wPAordGhpcy5jb250YWlubWVudFsxXXx8Zy10aGlzLm9mZnNldC5jbGlj
ay50b3A+dGhpcy5jb250YWlubWVudFszXSk/ZzohKGctdGhpcy5vZmZzZXQuY2xpY2sudG9wPHRo
aXMuY29udGFpbm1lbnRbMV0pP2ctYi5ncmlkWzFdOmcrYi5ncmlkWzFdOmc7Zj10aGlzLm9yaWdp
bmFsUGFnZVgrTWF0aC5yb3VuZCgoZi10aGlzLm9yaWdpbmFsUGFnZVgpL2IuZ3JpZFswXSkqYi5n
cmlkWzBdO2Y9dGhpcy5jb250YWlubWVudD8hKGYtdGhpcy5vZmZzZXQuY2xpY2subGVmdDx0aGlz
LmNvbnRhaW5tZW50WzBdfHxmLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+dGhpcy5jb250YWlubWVu
dFsyXSk/ZjohKGYtdGhpcy5vZmZzZXQuY2xpY2subGVmdDx0aGlzLmNvbnRhaW5tZW50WzBdKT9m
LWIuZ3JpZFswXTpmK2IuZ3JpZFswXTpmfX1yZXR1cm57dG9wOmctdGhpcy5vZmZzZXQuY2xpY2su
dG9wLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wKyhkLmJy
b3dzZXIuc2FmYXJpJiYKK3RoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/MDp0aGlzLmNzc1Bvc2l0
aW9uPT0iZml4ZWQiPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTplPzA6Yy5zY3JvbGxU
b3AoKSksbGVmdDpmLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQtdGhpcy5vZmZzZXQucmVsYXRpdmUu
bGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCsoZC5icm93c2VyLnNhZmFyaSYmdGhpcy5jc3NQ
b3NpdGlvbj09ImZpeGVkIj8wOnRoaXMuY3NzUG9zaXRpb249PSJmaXhlZCI/LXRoaXMuc2Nyb2xs
UGFyZW50LnNjcm9sbExlZnQoKTplPzA6Yy5zY3JvbGxMZWZ0KCkpfX0sX3JlYXJyYW5nZTpmdW5j
dGlvbihhLGIsYyxlKXtjP2NbMF0uYXBwZW5kQ2hpbGQodGhpcy5wbGFjZWhvbGRlclswXSk6Yi5p
dGVtWzBdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMucGxhY2Vob2xkZXJbMF0sdGhpcy5k
aXJlY3Rpb249PSJkb3duIj9iLml0ZW1bMF06Yi5pdGVtWzBdLm5leHRTaWJsaW5nKTt0aGlzLmNv
dW50ZXI9Cit0aGlzLmNvdW50ZXI/Kyt0aGlzLmNvdW50ZXI6MTt2YXIgZj10aGlzLGc9dGhpcy5j
b3VudGVyO3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zz09Zi5jb3VudGVyJiZmLnJlZnJl
c2hQb3NpdGlvbnMoIWUpfSwwKX0sX2NsZWFyOmZ1bmN0aW9uKGEsYil7dGhpcy5yZXZlcnRpbmc9
ZmFsc2U7dmFyIGM9W107IXRoaXMuX25vRmluYWxTb3J0JiZ0aGlzLmN1cnJlbnRJdGVtWzBdLnBh
cmVudE5vZGUmJnRoaXMucGxhY2Vob2xkZXIuYmVmb3JlKHRoaXMuY3VycmVudEl0ZW0pO3RoaXMu
X25vRmluYWxTb3J0PW51bGw7aWYodGhpcy5oZWxwZXJbMF09PXRoaXMuY3VycmVudEl0ZW1bMF0p
e2Zvcih2YXIgZSBpbiB0aGlzLl9zdG9yZWRDU1MpaWYodGhpcy5fc3RvcmVkQ1NTW2VdPT0iYXV0
byJ8fHRoaXMuX3N0b3JlZENTU1tlXT09InN0YXRpYyIpdGhpcy5fc3RvcmVkQ1NTW2VdPSIiO3Ro
aXMuY3VycmVudEl0ZW0uY3NzKHRoaXMuX3N0b3JlZENTUykucmVtb3ZlQ2xhc3MoInVpLXNvcnRh
YmxlLWhlbHBlciIpfWVsc2UgdGhpcy5jdXJyZW50SXRlbS5zaG93KCk7Cit0aGlzLmZyb21PdXRz
aWRlJiYhYiYmYy5wdXNoKGZ1bmN0aW9uKGYpe3RoaXMuX3RyaWdnZXIoInJlY2VpdmUiLGYsdGhp
cy5fdWlIYXNoKHRoaXMuZnJvbU91dHNpZGUpKX0pO2lmKCh0aGlzLmZyb21PdXRzaWRlfHx0aGlz
LmRvbVBvc2l0aW9uLnByZXYhPXRoaXMuY3VycmVudEl0ZW0ucHJldigpLm5vdCgiLnVpLXNvcnRh
YmxlLWhlbHBlciIpWzBdfHx0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCE9dGhpcy5jdXJyZW50SXRl
bS5wYXJlbnQoKVswXSkmJiFiKWMucHVzaChmdW5jdGlvbihmKXt0aGlzLl90cmlnZ2VyKCJ1cGRh
dGUiLGYsdGhpcy5fdWlIYXNoKCkpfSk7aWYoIWQudWkuY29udGFpbnModGhpcy5lbGVtZW50WzBd
LHRoaXMuY3VycmVudEl0ZW1bMF0pKXtifHxjLnB1c2goZnVuY3Rpb24oZil7dGhpcy5fdHJpZ2dl
cigicmVtb3ZlIixmLHRoaXMuX3VpSGFzaCgpKX0pO2ZvcihlPXRoaXMuY29udGFpbmVycy5sZW5n
dGgtMTtlPj0wO2UtLSlpZihkLnVpLmNvbnRhaW5zKHRoaXMuY29udGFpbmVyc1tlXS5lbGVtZW50
WzBdLAordGhpcy5jdXJyZW50SXRlbVswXSkmJiFiKXtjLnB1c2goZnVuY3Rpb24oZil7cmV0dXJu
IGZ1bmN0aW9uKGcpe2YuX3RyaWdnZXIoInJlY2VpdmUiLGcsdGhpcy5fdWlIYXNoKHRoaXMpKX19
LmNhbGwodGhpcyx0aGlzLmNvbnRhaW5lcnNbZV0pKTtjLnB1c2goZnVuY3Rpb24oZil7cmV0dXJu
IGZ1bmN0aW9uKGcpe2YuX3RyaWdnZXIoInVwZGF0ZSIsZyx0aGlzLl91aUhhc2godGhpcykpfX0u
Y2FsbCh0aGlzLHRoaXMuY29udGFpbmVyc1tlXSkpfX1mb3IoZT10aGlzLmNvbnRhaW5lcnMubGVu
Z3RoLTE7ZT49MDtlLS0pe2J8fGMucHVzaChmdW5jdGlvbihmKXtyZXR1cm4gZnVuY3Rpb24oZyl7
Zi5fdHJpZ2dlcigiZGVhY3RpdmF0ZSIsZyx0aGlzLl91aUhhc2godGhpcykpfX0uY2FsbCh0aGlz
LHRoaXMuY29udGFpbmVyc1tlXSkpO2lmKHRoaXMuY29udGFpbmVyc1tlXS5jb250YWluZXJDYWNo
ZS5vdmVyKXtjLnB1c2goZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe2YuX3RyaWdnZXIo
Im91dCIsCitnLHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jb250YWluZXJz
W2VdKSk7dGhpcy5jb250YWluZXJzW2VdLmNvbnRhaW5lckNhY2hlLm92ZXI9MH19dGhpcy5fc3Rv
cmVkQ3Vyc29yJiZkKCJib2R5IikuY3NzKCJjdXJzb3IiLHRoaXMuX3N0b3JlZEN1cnNvcik7dGhp
cy5fc3RvcmVkT3BhY2l0eSYmdGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5Iix0aGlzLl9zdG9yZWRP
cGFjaXR5KTtpZih0aGlzLl9zdG9yZWRaSW5kZXgpdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiLHRo
aXMuX3N0b3JlZFpJbmRleD09ImF1dG8iPyIiOnRoaXMuX3N0b3JlZFpJbmRleCk7dGhpcy5kcmFn
Z2luZz1mYWxzZTtpZih0aGlzLmNhbmNlbEhlbHBlclJlbW92YWwpe2lmKCFiKXt0aGlzLl90cmln
Z2VyKCJiZWZvcmVTdG9wIixhLHRoaXMuX3VpSGFzaCgpKTtmb3IoZT0wO2U8Yy5sZW5ndGg7ZSsr
KWNbZV0uY2FsbCh0aGlzLGEpO3RoaXMuX3RyaWdnZXIoInN0b3AiLGEsdGhpcy5fdWlIYXNoKCkp
fXJldHVybiBmYWxzZX1ifHwKK3RoaXMuX3RyaWdnZXIoImJlZm9yZVN0b3AiLGEsdGhpcy5fdWlI
YXNoKCkpO3RoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBs
YWNlaG9sZGVyWzBdKTt0aGlzLmhlbHBlclswXSE9dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5o
ZWxwZXIucmVtb3ZlKCk7dGhpcy5oZWxwZXI9bnVsbDtpZighYil7Zm9yKGU9MDtlPGMubGVuZ3Ro
O2UrKyljW2VdLmNhbGwodGhpcyxhKTt0aGlzLl90cmlnZ2VyKCJzdG9wIixhLHRoaXMuX3VpSGFz
aCgpKX10aGlzLmZyb21PdXRzaWRlPWZhbHNlO3JldHVybiB0cnVlfSxfdHJpZ2dlcjpmdW5jdGlv
bigpe2QuV2lkZ2V0LnByb3RvdHlwZS5fdHJpZ2dlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk9PT1m
YWxzZSYmdGhpcy5jYW5jZWwoKX0sX3VpSGFzaDpmdW5jdGlvbihhKXt2YXIgYj1hfHx0aGlzO3Jl
dHVybntoZWxwZXI6Yi5oZWxwZXIscGxhY2Vob2xkZXI6Yi5wbGFjZWhvbGRlcnx8ZChbXSkscG9z
aXRpb246Yi5wb3NpdGlvbiwKK29yaWdpbmFsUG9zaXRpb246Yi5vcmlnaW5hbFBvc2l0aW9uLG9m
ZnNldDpiLnBvc2l0aW9uQWJzLGl0ZW06Yi5jdXJyZW50SXRlbSxzZW5kZXI6YT9hLmVsZW1lbnQ6
bnVsbH19fSk7ZC5leHRlbmQoZC51aS5zb3J0YWJsZSx7dmVyc2lvbjoiMS44LjEwIn0pfSkoalF1
ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIEFjY29yZGlvbiAxLjguMTAKKyAqCisgKiBDb3B5cmln
aHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFs
IGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0
dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJ
L0FjY29yZGlvbgorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkudWkuY29yZS5qcworICoJanF1
ZXJ5LnVpLndpZGdldC5qcworICovCisoZnVuY3Rpb24oYyl7Yy53aWRnZXQoInVpLmFjY29yZGlv
biIse29wdGlvbnM6e2FjdGl2ZTowLGFuaW1hdGVkOiJzbGlkZSIsYXV0b0hlaWdodDp0cnVlLGNs
ZWFyU3R5bGU6ZmFsc2UsY29sbGFwc2libGU6ZmFsc2UsZXZlbnQ6ImNsaWNrIixmaWxsU3BhY2U6
ZmFsc2UsaGVhZGVyOiI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsaWNvbnM6
e2hlYWRlcjoidWktaWNvbi10cmlhbmdsZS0xLWUiLGhlYWRlclNlbGVjdGVkOiJ1aS1pY29uLXRy
aWFuZ2xlLTEtcyJ9LG5hdmlnYXRpb246ZmFsc2UsbmF2aWdhdGlvbkZpbHRlcjpmdW5jdGlvbigp
e3JldHVybiB0aGlzLmhyZWYudG9Mb3dlckNhc2UoKT09PWxvY2F0aW9uLmhyZWYudG9Mb3dlckNh
c2UoKX19LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5vcHRpb25zO2EucnVubmlu
Zz0wO2EuZWxlbWVudC5hZGRDbGFzcygidWktYWNjb3JkaW9uIHVpLXdpZGdldCB1aS1oZWxwZXIt
cmVzZXQiKS5jaGlsZHJlbigibGkiKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWxpLWZpeCIpOwor
YS5oZWFkZXJzPWEuZWxlbWVudC5maW5kKGIuaGVhZGVyKS5hZGRDbGFzcygidWktYWNjb3JkaW9u
LWhlYWRlciB1aS1oZWxwZXItcmVzZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIiku
YmluZCgibW91c2VlbnRlci5hY2NvcmRpb24iLGZ1bmN0aW9uKCl7Yi5kaXNhYmxlZHx8Yyh0aGlz
KS5hZGRDbGFzcygidWktc3RhdGUtaG92ZXIiKX0pLmJpbmQoIm1vdXNlbGVhdmUuYWNjb3JkaW9u
IixmdW5jdGlvbigpe2IuZGlzYWJsZWR8fGModGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWhv
dmVyIil9KS5iaW5kKCJmb2N1cy5hY2NvcmRpb24iLGZ1bmN0aW9uKCl7Yi5kaXNhYmxlZHx8Yyh0
aGlzKS5hZGRDbGFzcygidWktc3RhdGUtZm9jdXMiKX0pLmJpbmQoImJsdXIuYWNjb3JkaW9uIixm
dW5jdGlvbigpe2IuZGlzYWJsZWR8fGModGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3Vz
Iil9KTthLmhlYWRlcnMubmV4dCgpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudCB1aS1o
ZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpOworaWYoYi5u
YXZpZ2F0aW9uKXt2YXIgZD1hLmVsZW1lbnQuZmluZCgiYSIpLmZpbHRlcihiLm5hdmlnYXRpb25G
aWx0ZXIpLmVxKDApO2lmKGQubGVuZ3RoKXt2YXIgaD1kLmNsb3Nlc3QoIi51aS1hY2NvcmRpb24t
aGVhZGVyIik7YS5hY3RpdmU9aC5sZW5ndGg/aDpkLmNsb3Nlc3QoIi51aS1hY2NvcmRpb24tY29u
dGVudCIpLnByZXYoKX19YS5hY3RpdmU9YS5fZmluZEFjdGl2ZShhLmFjdGl2ZXx8Yi5hY3RpdmUp
LmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLXN0YXRlLWFjdGl2ZSIpLnRvZ2dsZUNsYXNz
KCJ1aS1jb3JuZXItYWxsIikudG9nZ2xlQ2xhc3MoInVpLWNvcm5lci10b3AiKTthLmFjdGl2ZS5u
ZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpO2EuX2NyZWF0ZUlj
b25zKCk7YS5yZXNpemUoKTthLmVsZW1lbnQuYXR0cigicm9sZSIsInRhYmxpc3QiKTthLmhlYWRl
cnMuYXR0cigicm9sZSIsInRhYiIpLmJpbmQoImtleWRvd24uYWNjb3JkaW9uIiwKK2Z1bmN0aW9u
KGYpe3JldHVybiBhLl9rZXlkb3duKGYpfSkubmV4dCgpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIp
O2EuaGVhZGVycy5ub3QoYS5hY3RpdmV8fCIiKS5hdHRyKHsiYXJpYS1leHBhbmRlZCI6ImZhbHNl
Iix0YWJJbmRleDotMX0pLm5leHQoKS5oaWRlKCk7YS5hY3RpdmUubGVuZ3RoP2EuYWN0aXZlLmF0
dHIoeyJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pOmEuaGVhZGVycy5lcSgwKS5h
dHRyKCJ0YWJJbmRleCIsMCk7Yy5icm93c2VyLnNhZmFyaXx8YS5oZWFkZXJzLmZpbmQoImEiKS5h
dHRyKCJ0YWJJbmRleCIsLTEpO2IuZXZlbnQmJmEuaGVhZGVycy5iaW5kKGIuZXZlbnQuc3BsaXQo
IiAiKS5qb2luKCIuYWNjb3JkaW9uICIpKyIuYWNjb3JkaW9uIixmdW5jdGlvbihmKXthLl9jbGlj
a0hhbmRsZXIuY2FsbChhLGYsdGhpcyk7Zi5wcmV2ZW50RGVmYXVsdCgpfSl9LF9jcmVhdGVJY29u
czpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucztpZihhLmljb25zKXtjKCI8c3Bhbj48L3Nw
YW4+IikuYWRkQ2xhc3MoInVpLWljb24gIisKK2EuaWNvbnMuaGVhZGVyKS5wcmVwZW5kVG8odGhp
cy5oZWFkZXJzKTt0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWljb24iKS50b2dnbGVDbGFzcyhh
Lmljb25zLmhlYWRlcikudG9nZ2xlQ2xhc3MoYS5pY29ucy5oZWFkZXJTZWxlY3RlZCk7dGhpcy5l
bGVtZW50LmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taWNvbnMiKX19LF9kZXN0cm95SWNvbnM6ZnVu
Y3Rpb24oKXt0aGlzLmhlYWRlcnMuY2hpbGRyZW4oIi51aS1pY29uIikucmVtb3ZlKCk7dGhpcy5l
bGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24taWNvbnMiKX0sZGVzdHJveTpmdW5jdGlv
bigpe3ZhciBhPXRoaXMub3B0aW9uczt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWFjY29y
ZGlvbiB1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IikucmVtb3ZlQXR0cigicm9sZSIpO3RoaXMu
aGVhZGVycy51bmJpbmQoIi5hY2NvcmRpb24iKS5yZW1vdmVDbGFzcygidWktYWNjb3JkaW9uLWhl
YWRlciB1aS1hY2NvcmRpb24tZGlzYWJsZWQgdWktaGVscGVyLXJlc2V0IHVpLXN0YXRlLWRlZmF1
bHQgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1hY3RpdmUgdWktc3RhdGUtZGlzYWJsZWQgdWktY29y
bmVyLXRvcCIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIiku
cmVtb3ZlQXR0cigidGFiSW5kZXgiKTsKK3RoaXMuaGVhZGVycy5maW5kKCJhIikucmVtb3ZlQXR0
cigidGFiSW5kZXgiKTt0aGlzLl9kZXN0cm95SWNvbnMoKTt2YXIgYj10aGlzLmhlYWRlcnMubmV4
dCgpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVDbGFzcygidWkt
aGVscGVyLXJlc2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20gdWktYWNjb3Jk
aW9uLWNvbnRlbnQgdWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIHVpLWFjY29yZGlvbi1kaXNh
YmxlZCB1aS1zdGF0ZS1kaXNhYmxlZCIpO2lmKGEuYXV0b0hlaWdodHx8YS5maWxsSGVpZ2h0KWIu
Y3NzKCJoZWlnaHQiLCIiKTtyZXR1cm4gYy5XaWRnZXQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0
aGlzKX0sX3NldE9wdGlvbjpmdW5jdGlvbihhLGIpe2MuV2lkZ2V0LnByb3RvdHlwZS5fc2V0T3B0
aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthPT0iYWN0aXZlIiYmdGhpcy5hY3RpdmF0ZShiKTtp
ZihhPT0iaWNvbnMiKXt0aGlzLl9kZXN0cm95SWNvbnMoKTsKK2ImJnRoaXMuX2NyZWF0ZUljb25z
KCl9aWYoYT09ImRpc2FibGVkIil0aGlzLmhlYWRlcnMuYWRkKHRoaXMuaGVhZGVycy5uZXh0KCkp
W2I/ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXSgidWktYWNjb3JkaW9uLWRpc2FibGVkIHVpLXN0
YXRlLWRpc2FibGVkIil9LF9rZXlkb3duOmZ1bmN0aW9uKGEpe2lmKCEodGhpcy5vcHRpb25zLmRp
c2FibGVkfHxhLmFsdEtleXx8YS5jdHJsS2V5KSl7dmFyIGI9Yy51aS5rZXlDb2RlLGQ9dGhpcy5o
ZWFkZXJzLmxlbmd0aCxoPXRoaXMuaGVhZGVycy5pbmRleChhLnRhcmdldCksZj1mYWxzZTtzd2l0
Y2goYS5rZXlDb2RlKXtjYXNlIGIuUklHSFQ6Y2FzZSBiLkRPV046Zj10aGlzLmhlYWRlcnNbKGgr
MSklZF07YnJlYWs7Y2FzZSBiLkxFRlQ6Y2FzZSBiLlVQOmY9dGhpcy5oZWFkZXJzWyhoLTErZCkl
ZF07YnJlYWs7Y2FzZSBiLlNQQUNFOmNhc2UgYi5FTlRFUjp0aGlzLl9jbGlja0hhbmRsZXIoe3Rh
cmdldDphLnRhcmdldH0sYS50YXJnZXQpOworYS5wcmV2ZW50RGVmYXVsdCgpfWlmKGYpe2MoYS50
YXJnZXQpLmF0dHIoInRhYkluZGV4IiwtMSk7YyhmKS5hdHRyKCJ0YWJJbmRleCIsMCk7Zi5mb2N1
cygpO3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX19LHJlc2l6ZTpmdW5jdGlvbigpe3ZhciBhPXRo
aXMub3B0aW9ucyxiO2lmKGEuZmlsbFNwYWNlKXtpZihjLmJyb3dzZXIubXNpZSl7dmFyIGQ9dGhp
cy5lbGVtZW50LnBhcmVudCgpLmNzcygib3ZlcmZsb3ciKTt0aGlzLmVsZW1lbnQucGFyZW50KCku
Y3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpfWI9dGhpcy5lbGVtZW50LnBhcmVudCgpLmhlaWdodCgp
O2MuYnJvd3Nlci5tc2llJiZ0aGlzLmVsZW1lbnQucGFyZW50KCkuY3NzKCJvdmVyZmxvdyIsZCk7
dGhpcy5oZWFkZXJzLmVhY2goZnVuY3Rpb24oKXtiLT1jKHRoaXMpLm91dGVySGVpZ2h0KHRydWUp
fSk7dGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5oZWlnaHQoTWF0
aC5tYXgoMCxiLWModGhpcykuaW5uZXJIZWlnaHQoKSsKK2ModGhpcykuaGVpZ2h0KCkpKX0pLmNz
cygib3ZlcmZsb3ciLCJhdXRvIil9ZWxzZSBpZihhLmF1dG9IZWlnaHQpe2I9MDt0aGlzLmhlYWRl
cnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXtiPU1hdGgubWF4KGIsYyh0aGlzKS5oZWlnaHQoIiIp
LmhlaWdodCgpKX0pLmhlaWdodChiKX1yZXR1cm4gdGhpc30sYWN0aXZhdGU6ZnVuY3Rpb24oYSl7
dGhpcy5vcHRpb25zLmFjdGl2ZT1hO2E9dGhpcy5fZmluZEFjdGl2ZShhKVswXTt0aGlzLl9jbGlj
a0hhbmRsZXIoe3RhcmdldDphfSxhKTtyZXR1cm4gdGhpc30sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24o
YSl7cmV0dXJuIGE/dHlwZW9mIGE9PT0ibnVtYmVyIj90aGlzLmhlYWRlcnMuZmlsdGVyKCI6ZXEo
IithKyIpIik6dGhpcy5oZWFkZXJzLm5vdCh0aGlzLmhlYWRlcnMubm90KGEpKTphPT09ZmFsc2U/
YyhbXSk6dGhpcy5oZWFkZXJzLmZpbHRlcigiOmVxKDApIil9LF9jbGlja0hhbmRsZXI6ZnVuY3Rp
b24oYSxiKXt2YXIgZD10aGlzLm9wdGlvbnM7CitpZighZC5kaXNhYmxlZClpZihhLnRhcmdldCl7
YT1jKGEuY3VycmVudFRhcmdldHx8Yik7Yj1hWzBdPT09dGhpcy5hY3RpdmVbMF07ZC5hY3RpdmU9
ZC5jb2xsYXBzaWJsZSYmYj9mYWxzZTp0aGlzLmhlYWRlcnMuaW5kZXgoYSk7aWYoISh0aGlzLnJ1
bm5pbmd8fCFkLmNvbGxhcHNpYmxlJiZiKSl7dmFyIGg9dGhpcy5hY3RpdmU7aj1hLm5leHQoKTtn
PXRoaXMuYWN0aXZlLm5leHQoKTtlPXtvcHRpb25zOmQsbmV3SGVhZGVyOmImJmQuY29sbGFwc2li
bGU/YyhbXSk6YSxvbGRIZWFkZXI6dGhpcy5hY3RpdmUsbmV3Q29udGVudDpiJiZkLmNvbGxhcHNp
YmxlP2MoW10pOmosb2xkQ29udGVudDpnfTt2YXIgZj10aGlzLmhlYWRlcnMuaW5kZXgodGhpcy5h
Y3RpdmVbMF0pPnRoaXMuaGVhZGVycy5pbmRleChhWzBdKTt0aGlzLmFjdGl2ZT1iP2MoW10pOmE7
dGhpcy5fdG9nZ2xlKGosZyxlLGIsZik7aC5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIHVp
LWNvcm5lci10b3AiKS5hZGRDbGFzcygidWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIiku
Y2hpbGRyZW4oIi51aS1pY29uIikucmVtb3ZlQ2xhc3MoZC5pY29ucy5oZWFkZXJTZWxlY3RlZCku
YWRkQ2xhc3MoZC5pY29ucy5oZWFkZXIpOworaWYoIWIpe2EucmVtb3ZlQ2xhc3MoInVpLXN0YXRl
LWRlZmF1bHQgdWktY29ybmVyLWFsbCIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUgdWktY29y
bmVyLXRvcCIpLmNoaWxkcmVuKCIudWktaWNvbiIpLnJlbW92ZUNsYXNzKGQuaWNvbnMuaGVhZGVy
KS5hZGRDbGFzcyhkLmljb25zLmhlYWRlclNlbGVjdGVkKTthLm5leHQoKS5hZGRDbGFzcygidWkt
YWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIil9fX1lbHNlIGlmKGQuY29sbGFwc2libGUpe3RoaXMu
YWN0aXZlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUgdWktY29ybmVyLXRvcCIpLmFkZENs
YXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKS5jaGlsZHJlbigiLnVpLWljb24i
KS5yZW1vdmVDbGFzcyhkLmljb25zLmhlYWRlclNlbGVjdGVkKS5hZGRDbGFzcyhkLmljb25zLmhl
YWRlcik7dGhpcy5hY3RpdmUubmV4dCgpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudC1h
Y3RpdmUiKTt2YXIgZz10aGlzLmFjdGl2ZS5uZXh0KCksCitlPXtvcHRpb25zOmQsbmV3SGVhZGVy
OmMoW10pLG9sZEhlYWRlcjpkLmFjdGl2ZSxuZXdDb250ZW50OmMoW10pLG9sZENvbnRlbnQ6Z30s
aj10aGlzLmFjdGl2ZT1jKFtdKTt0aGlzLl90b2dnbGUoaixnLGUpfX0sX3RvZ2dsZTpmdW5jdGlv
bihhLGIsZCxoLGYpe3ZhciBnPXRoaXMsZT1nLm9wdGlvbnM7Zy50b1Nob3c9YTtnLnRvSGlkZT1i
O2cuZGF0YT1kO3ZhciBqPWZ1bmN0aW9uKCl7aWYoZylyZXR1cm4gZy5fY29tcGxldGVkLmFwcGx5
KGcsYXJndW1lbnRzKX07Zy5fdHJpZ2dlcigiY2hhbmdlc3RhcnQiLG51bGwsZy5kYXRhKTtnLnJ1
bm5pbmc9Yi5zaXplKCk9PT0wP2Euc2l6ZSgpOmIuc2l6ZSgpO2lmKGUuYW5pbWF0ZWQpe2Q9e307
ZD1lLmNvbGxhcHNpYmxlJiZoP3t0b1Nob3c6YyhbXSksdG9IaWRlOmIsY29tcGxldGU6aixkb3du
OmYsYXV0b0hlaWdodDplLmF1dG9IZWlnaHR8fGUuZmlsbFNwYWNlfTp7dG9TaG93OmEsdG9IaWRl
OmIsY29tcGxldGU6aixkb3duOmYsYXV0b0hlaWdodDplLmF1dG9IZWlnaHR8fAorZS5maWxsU3Bh
Y2V9O2lmKCFlLnByb3hpZWQpZS5wcm94aWVkPWUuYW5pbWF0ZWQ7aWYoIWUucHJveGllZER1cmF0
aW9uKWUucHJveGllZER1cmF0aW9uPWUuZHVyYXRpb247ZS5hbmltYXRlZD1jLmlzRnVuY3Rpb24o
ZS5wcm94aWVkKT9lLnByb3hpZWQoZCk6ZS5wcm94aWVkO2UuZHVyYXRpb249Yy5pc0Z1bmN0aW9u
KGUucHJveGllZER1cmF0aW9uKT9lLnByb3hpZWREdXJhdGlvbihkKTplLnByb3hpZWREdXJhdGlv
bjtoPWMudWkuYWNjb3JkaW9uLmFuaW1hdGlvbnM7dmFyIGk9ZS5kdXJhdGlvbixrPWUuYW5pbWF0
ZWQ7aWYoayYmIWhba10mJiFjLmVhc2luZ1trXSlrPSJzbGlkZSI7aFtrXXx8KGhba109ZnVuY3Rp
b24obCl7dGhpcy5zbGlkZShsLHtlYXNpbmc6ayxkdXJhdGlvbjppfHw3MDB9KX0pO2hba10oZCl9
ZWxzZXtpZihlLmNvbGxhcHNpYmxlJiZoKWEudG9nZ2xlKCk7ZWxzZXtiLmhpZGUoKTthLnNob3co
KX1qKHRydWUpfWIucHJldigpLmF0dHIoeyJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLAordGFiSW5k
ZXg6LTF9KS5ibHVyKCk7YS5wcmV2KCkuYXR0cih7ImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJ
bmRleDowfSkuZm9jdXMoKX0sX2NvbXBsZXRlZDpmdW5jdGlvbihhKXt0aGlzLnJ1bm5pbmc9YT8w
Oi0tdGhpcy5ydW5uaW5nO2lmKCF0aGlzLnJ1bm5pbmcpe3RoaXMub3B0aW9ucy5jbGVhclN0eWxl
JiZ0aGlzLnRvU2hvdy5hZGQodGhpcy50b0hpZGUpLmNzcyh7aGVpZ2h0OiIiLG92ZXJmbG93OiIi
fSk7dGhpcy50b0hpZGUucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIp
O2lmKHRoaXMudG9IaWRlLmxlbmd0aCl0aGlzLnRvSGlkZS5wYXJlbnQoKVswXS5jbGFzc05hbWU9
dGhpcy50b0hpZGUucGFyZW50KClbMF0uY2xhc3NOYW1lO3RoaXMuX3RyaWdnZXIoImNoYW5nZSIs
bnVsbCx0aGlzLmRhdGEpfX19KTtjLmV4dGVuZChjLnVpLmFjY29yZGlvbix7dmVyc2lvbjoiMS44
LjEwIixhbmltYXRpb25zOntzbGlkZTpmdW5jdGlvbihhLGIpe2E9CitjLmV4dGVuZCh7ZWFzaW5n
OiJzd2luZyIsZHVyYXRpb246MzAwfSxhLGIpO2lmKGEudG9IaWRlLnNpemUoKSlpZihhLnRvU2hv
dy5zaXplKCkpe3ZhciBkPWEudG9TaG93LmNzcygib3ZlcmZsb3ciKSxoPTAsZj17fSxnPXt9LGU7
Yj1hLnRvU2hvdztlPWJbMF0uc3R5bGUud2lkdGg7Yi53aWR0aChwYXJzZUludChiLnBhcmVudCgp
LndpZHRoKCksMTApLXBhcnNlSW50KGIuY3NzKCJwYWRkaW5nTGVmdCIpLDEwKS1wYXJzZUludChi
LmNzcygicGFkZGluZ1JpZ2h0IiksMTApLShwYXJzZUludChiLmNzcygiYm9yZGVyTGVmdFdpZHRo
IiksMTApfHwwKS0ocGFyc2VJbnQoYi5jc3MoImJvcmRlclJpZ2h0V2lkdGgiKSwxMCl8fDApKTtj
LmVhY2goWyJoZWlnaHQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLGZ1bmN0aW9uKGos
aSl7Z1tpXT0iaGlkZSI7aj0oIiIrYy5jc3MoYS50b1Nob3dbMF0saSkpLm1hdGNoKC9eKFtcZCst
Ll0rKSguKikkLyk7ZltpXT17dmFsdWU6alsxXSwKK3VuaXQ6alsyXXx8InB4In19KTthLnRvU2hv
dy5jc3Moe2hlaWdodDowLG92ZXJmbG93OiJoaWRkZW4ifSkuc2hvdygpO2EudG9IaWRlLmZpbHRl
cigiOmhpZGRlbiIpLmVhY2goYS5jb21wbGV0ZSkuZW5kKCkuZmlsdGVyKCI6dmlzaWJsZSIpLmFu
aW1hdGUoZyx7c3RlcDpmdW5jdGlvbihqLGkpe2lmKGkucHJvcD09ImhlaWdodCIpaD1pLmVuZC1p
LnN0YXJ0PT09MD8wOihpLm5vdy1pLnN0YXJ0KS8oaS5lbmQtaS5zdGFydCk7YS50b1Nob3dbMF0u
c3R5bGVbaS5wcm9wXT1oKmZbaS5wcm9wXS52YWx1ZStmW2kucHJvcF0udW5pdH0sZHVyYXRpb246
YS5kdXJhdGlvbixlYXNpbmc6YS5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXthLmF1dG9IZWln
aHR8fGEudG9TaG93LmNzcygiaGVpZ2h0IiwiIik7YS50b1Nob3cuY3NzKHt3aWR0aDplLG92ZXJm
bG93OmR9KTthLmNvbXBsZXRlKCl9fSl9ZWxzZSBhLnRvSGlkZS5hbmltYXRlKHtoZWlnaHQ6Imhp
ZGUiLHBhZGRpbmdUb3A6ImhpZGUiLAorcGFkZGluZ0JvdHRvbToiaGlkZSJ9LGEpO2Vsc2UgYS50
b1Nob3cuYW5pbWF0ZSh7aGVpZ2h0OiJzaG93IixwYWRkaW5nVG9wOiJzaG93IixwYWRkaW5nQm90
dG9tOiJzaG93In0sYSl9LGJvdW5jZXNsaWRlOmZ1bmN0aW9uKGEpe3RoaXMuc2xpZGUoYSx7ZWFz
aW5nOmEuZG93bj8iZWFzZU91dEJvdW5jZSI6InN3aW5nIixkdXJhdGlvbjphLmRvd24/MUUzOjIw
MH0pfX19KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBBdXRvY29tcGxldGUgMS44LjEw
CisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29t
L2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIg
bGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2Rv
Y3MuanF1ZXJ5LmNvbS9VSS9BdXRvY29tcGxldGUKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5
LnVpLmNvcmUuanMKKyAqCWpxdWVyeS51aS53aWRnZXQuanMKKyAqCWpxdWVyeS51aS5wb3NpdGlv
bi5qcworICovCisoZnVuY3Rpb24oZCl7dmFyIGU9MDtkLndpZGdldCgidWkuYXV0b2NvbXBsZXRl
Iix7b3B0aW9uczp7YXBwZW5kVG86ImJvZHkiLGRlbGF5OjMwMCxtaW5MZW5ndGg6MSxwb3NpdGlv
bjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHNvdXJj
ZTpudWxsfSxwZW5kaW5nOjAsX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLmVs
ZW1lbnRbMF0ub3duZXJEb2N1bWVudCxnO3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYXV0b2Nv
bXBsZXRlLWlucHV0IikuYXR0cigiYXV0b2NvbXBsZXRlIiwib2ZmIikuYXR0cih7cm9sZToidGV4
dGJveCIsImFyaWEtYXV0b2NvbXBsZXRlIjoibGlzdCIsImFyaWEtaGFzcG9wdXAiOiJ0cnVlIn0p
LmJpbmQoImtleWRvd24uYXV0b2NvbXBsZXRlIixmdW5jdGlvbihjKXtpZighKGEub3B0aW9ucy5k
aXNhYmxlZHx8YS5lbGVtZW50LmF0dHIoInJlYWRvbmx5IikpKXtnPWZhbHNlO3ZhciBmPWQudWku
a2V5Q29kZTsKK3N3aXRjaChjLmtleUNvZGUpe2Nhc2UgZi5QQUdFX1VQOmEuX21vdmUoInByZXZp
b3VzUGFnZSIsYyk7YnJlYWs7Y2FzZSBmLlBBR0VfRE9XTjphLl9tb3ZlKCJuZXh0UGFnZSIsYyk7
YnJlYWs7Y2FzZSBmLlVQOmEuX21vdmUoInByZXZpb3VzIixjKTtjLnByZXZlbnREZWZhdWx0KCk7
YnJlYWs7Y2FzZSBmLkRPV046YS5fbW92ZSgibmV4dCIsYyk7Yy5wcmV2ZW50RGVmYXVsdCgpO2Jy
ZWFrO2Nhc2UgZi5FTlRFUjpjYXNlIGYuTlVNUEFEX0VOVEVSOmlmKGEubWVudS5hY3RpdmUpe2c9
dHJ1ZTtjLnByZXZlbnREZWZhdWx0KCl9Y2FzZSBmLlRBQjppZighYS5tZW51LmFjdGl2ZSlyZXR1
cm47YS5tZW51LnNlbGVjdChjKTticmVhaztjYXNlIGYuRVNDQVBFOmEuZWxlbWVudC52YWwoYS50
ZXJtKTthLmNsb3NlKGMpO2JyZWFrO2RlZmF1bHQ6Y2xlYXJUaW1lb3V0KGEuc2VhcmNoaW5nKTth
LnNlYXJjaGluZz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoYS50ZXJtIT1hLmVsZW1lbnQudmFs
KCkpe2Euc2VsZWN0ZWRJdGVtPQorbnVsbDthLnNlYXJjaChudWxsLGMpfX0sYS5vcHRpb25zLmRl
bGF5KTticmVha319fSkuYmluZCgia2V5cHJlc3MuYXV0b2NvbXBsZXRlIixmdW5jdGlvbihjKXtp
ZihnKXtnPWZhbHNlO2MucHJldmVudERlZmF1bHQoKX19KS5iaW5kKCJmb2N1cy5hdXRvY29tcGxl
dGUiLGZ1bmN0aW9uKCl7aWYoIWEub3B0aW9ucy5kaXNhYmxlZCl7YS5zZWxlY3RlZEl0ZW09bnVs
bDthLnByZXZpb3VzPWEuZWxlbWVudC52YWwoKX19KS5iaW5kKCJibHVyLmF1dG9jb21wbGV0ZSIs
ZnVuY3Rpb24oYyl7aWYoIWEub3B0aW9ucy5kaXNhYmxlZCl7Y2xlYXJUaW1lb3V0KGEuc2VhcmNo
aW5nKTthLmNsb3Npbmc9c2V0VGltZW91dChmdW5jdGlvbigpe2EuY2xvc2UoYyk7YS5fY2hhbmdl
KGMpfSwxNTApfX0pO3RoaXMuX2luaXRTb3VyY2UoKTt0aGlzLnJlc3BvbnNlPWZ1bmN0aW9uKCl7
cmV0dXJuIGEuX3Jlc3BvbnNlLmFwcGx5KGEsYXJndW1lbnRzKX07dGhpcy5tZW51PWQoIjx1bD48
L3VsPiIpLmFkZENsYXNzKCJ1aS1hdXRvY29tcGxldGUiKS5hcHBlbmRUbyhkKHRoaXMub3B0aW9u
cy5hcHBlbmRUb3x8CisiYm9keSIsYilbMF0pLm1vdXNlZG93bihmdW5jdGlvbihjKXt2YXIgZj1h
Lm1lbnUuZWxlbWVudFswXTtkKGMudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikubGVu
Z3RofHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZChkb2N1bWVudCkub25lKCJtb3VzZWRvd24iLGZ1
bmN0aW9uKGgpe2gudGFyZ2V0IT09YS5lbGVtZW50WzBdJiZoLnRhcmdldCE9PWYmJiFkLnVpLmNv
bnRhaW5zKGYsaC50YXJnZXQpJiZhLmNsb3NlKCl9KX0sMSk7c2V0VGltZW91dChmdW5jdGlvbigp
e2NsZWFyVGltZW91dChhLmNsb3NpbmcpfSwxMyl9KS5tZW51KHtmb2N1czpmdW5jdGlvbihjLGYp
e2Y9Zi5pdGVtLmRhdGEoIml0ZW0uYXV0b2NvbXBsZXRlIik7ZmFsc2UhPT1hLl90cmlnZ2VyKCJm
b2N1cyIsYyx7aXRlbTpmfSkmJi9ea2V5Ly50ZXN0KGMub3JpZ2luYWxFdmVudC50eXBlKSYmYS5l
bGVtZW50LnZhbChmLnZhbHVlKX0sc2VsZWN0ZWQ6ZnVuY3Rpb24oYyxmKXt2YXIgaD1mLml0ZW0u
ZGF0YSgiaXRlbS5hdXRvY29tcGxldGUiKSwKK2k9YS5wcmV2aW91cztpZihhLmVsZW1lbnRbMF0h
PT1iLmFjdGl2ZUVsZW1lbnQpe2EuZWxlbWVudC5mb2N1cygpO2EucHJldmlvdXM9aTtzZXRUaW1l
b3V0KGZ1bmN0aW9uKCl7YS5wcmV2aW91cz1pO2Euc2VsZWN0ZWRJdGVtPWh9LDEpfWZhbHNlIT09
YS5fdHJpZ2dlcigic2VsZWN0IixjLHtpdGVtOmh9KSYmYS5lbGVtZW50LnZhbChoLnZhbHVlKTth
LnRlcm09YS5lbGVtZW50LnZhbCgpO2EuY2xvc2UoYyk7YS5zZWxlY3RlZEl0ZW09aH0sYmx1cjpm
dW5jdGlvbigpe2EubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpJiZhLmVsZW1lbnQudmFsKCkh
PT1hLnRlcm0mJmEuZWxlbWVudC52YWwoYS50ZXJtKX19KS56SW5kZXgodGhpcy5lbGVtZW50LnpJ
bmRleCgpKzEpLmNzcyh7dG9wOjAsbGVmdDowfSkuaGlkZSgpLmRhdGEoIm1lbnUiKTtkLmZuLmJn
aWZyYW1lJiZ0aGlzLm1lbnUuZWxlbWVudC5iZ2lmcmFtZSgpfSxkZXN0cm95OmZ1bmN0aW9uKCl7
dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hdXRvY29tcGxldGUtaW5wdXQiKS5yZW1vdmVB
dHRyKCJhdXRvY29tcGxldGUiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS1h
dXRvY29tcGxldGUiKS5yZW1vdmVBdHRyKCJhcmlhLWhhc3BvcHVwIik7Cit0aGlzLm1lbnUuZWxl
bWVudC5yZW1vdmUoKTtkLldpZGdldC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpfSxfc2V0
T3B0aW9uOmZ1bmN0aW9uKGEsYil7ZC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHko
dGhpcyxhcmd1bWVudHMpO2E9PT0ic291cmNlIiYmdGhpcy5faW5pdFNvdXJjZSgpO2lmKGE9PT0i
YXBwZW5kVG8iKXRoaXMubWVudS5lbGVtZW50LmFwcGVuZFRvKGQoYnx8ImJvZHkiLHRoaXMuZWxl
bWVudFswXS5vd25lckRvY3VtZW50KVswXSk7YT09PSJkaXNhYmxlZCImJmImJnRoaXMueGhyJiZ0
aGlzLnhoci5hYm9ydCgpfSxfaW5pdFNvdXJjZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYixnO2lm
KGQuaXNBcnJheSh0aGlzLm9wdGlvbnMuc291cmNlKSl7Yj10aGlzLm9wdGlvbnMuc291cmNlO3Ro
aXMuc291cmNlPWZ1bmN0aW9uKGMsZil7ZihkLnVpLmF1dG9jb21wbGV0ZS5maWx0ZXIoYixjLnRl
cm0pKX19ZWxzZSBpZih0eXBlb2YgdGhpcy5vcHRpb25zLnNvdXJjZT09PQorInN0cmluZyIpe2c9
dGhpcy5vcHRpb25zLnNvdXJjZTt0aGlzLnNvdXJjZT1mdW5jdGlvbihjLGYpe2EueGhyJiZhLnho
ci5hYm9ydCgpO2EueGhyPWQuYWpheCh7dXJsOmcsZGF0YTpjLGRhdGFUeXBlOiJqc29uIixhdXRv
Y29tcGxldGVSZXF1ZXN0OisrZSxzdWNjZXNzOmZ1bmN0aW9uKGgpe3RoaXMuYXV0b2NvbXBsZXRl
UmVxdWVzdD09PWUmJmYoaCl9LGVycm9yOmZ1bmN0aW9uKCl7dGhpcy5hdXRvY29tcGxldGVSZXF1
ZXN0PT09ZSYmZihbXSl9fSl9fWVsc2UgdGhpcy5zb3VyY2U9dGhpcy5vcHRpb25zLnNvdXJjZX0s
c2VhcmNoOmZ1bmN0aW9uKGEsYil7YT1hIT1udWxsP2E6dGhpcy5lbGVtZW50LnZhbCgpO3RoaXMu
dGVybT10aGlzLmVsZW1lbnQudmFsKCk7aWYoYS5sZW5ndGg8dGhpcy5vcHRpb25zLm1pbkxlbmd0
aClyZXR1cm4gdGhpcy5jbG9zZShiKTtjbGVhclRpbWVvdXQodGhpcy5jbG9zaW5nKTtpZih0aGlz
Ll90cmlnZ2VyKCJzZWFyY2giLGIpIT09ZmFsc2UpcmV0dXJuIHRoaXMuX3NlYXJjaChhKX0sCitf
c2VhcmNoOmZ1bmN0aW9uKGEpe3RoaXMucGVuZGluZysrO3RoaXMuZWxlbWVudC5hZGRDbGFzcygi
dWktYXV0b2NvbXBsZXRlLWxvYWRpbmciKTt0aGlzLnNvdXJjZSh7dGVybTphfSx0aGlzLnJlc3Bv
bnNlKX0sX3Jlc3BvbnNlOmZ1bmN0aW9uKGEpe2lmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJmEm
JmEubGVuZ3RoKXthPXRoaXMuX25vcm1hbGl6ZShhKTt0aGlzLl9zdWdnZXN0KGEpO3RoaXMuX3Ry
aWdnZXIoIm9wZW4iKX1lbHNlIHRoaXMuY2xvc2UoKTt0aGlzLnBlbmRpbmctLTt0aGlzLnBlbmRp
bmd8fHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktYXV0b2NvbXBsZXRlLWxvYWRpbmciKX0s
Y2xvc2U6ZnVuY3Rpb24oYSl7Y2xlYXJUaW1lb3V0KHRoaXMuY2xvc2luZyk7aWYodGhpcy5tZW51
LmVsZW1lbnQuaXMoIjp2aXNpYmxlIikpe3RoaXMubWVudS5lbGVtZW50LmhpZGUoKTt0aGlzLm1l
bnUuZGVhY3RpdmF0ZSgpO3RoaXMuX3RyaWdnZXIoImNsb3NlIixhKX19LF9jaGFuZ2U6ZnVuY3Rp
b24oYSl7dGhpcy5wcmV2aW91cyE9PQordGhpcy5lbGVtZW50LnZhbCgpJiZ0aGlzLl90cmlnZ2Vy
KCJjaGFuZ2UiLGEse2l0ZW06dGhpcy5zZWxlY3RlZEl0ZW19KX0sX25vcm1hbGl6ZTpmdW5jdGlv
bihhKXtpZihhLmxlbmd0aCYmYVswXS5sYWJlbCYmYVswXS52YWx1ZSlyZXR1cm4gYTtyZXR1cm4g
ZC5tYXAoYSxmdW5jdGlvbihiKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybntsYWJlbDpi
LHZhbHVlOmJ9O3JldHVybiBkLmV4dGVuZCh7bGFiZWw6Yi5sYWJlbHx8Yi52YWx1ZSx2YWx1ZTpi
LnZhbHVlfHxiLmxhYmVsfSxiKX0pfSxfc3VnZ2VzdDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm1l
bnUuZWxlbWVudC5lbXB0eSgpLnpJbmRleCh0aGlzLmVsZW1lbnQuekluZGV4KCkrMSk7dGhpcy5f
cmVuZGVyTWVudShiLGEpO3RoaXMubWVudS5kZWFjdGl2YXRlKCk7dGhpcy5tZW51LnJlZnJlc2go
KTtiLnNob3coKTt0aGlzLl9yZXNpemVNZW51KCk7Yi5wb3NpdGlvbihkLmV4dGVuZCh7b2Y6dGhp
cy5lbGVtZW50fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKX0sCitfcmVzaXplTWVudTpmdW5jdGlv
bigpe3ZhciBhPXRoaXMubWVudS5lbGVtZW50O2Eub3V0ZXJXaWR0aChNYXRoLm1heChhLndpZHRo
KCIiKS5vdXRlcldpZHRoKCksdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSkpfSxfcmVuZGVyTWVu
dTpmdW5jdGlvbihhLGIpe3ZhciBnPXRoaXM7ZC5lYWNoKGIsZnVuY3Rpb24oYyxmKXtnLl9yZW5k
ZXJJdGVtKGEsZil9KX0sX3JlbmRlckl0ZW06ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZCgiPGxpPjwv
bGk+IikuZGF0YSgiaXRlbS5hdXRvY29tcGxldGUiLGIpLmFwcGVuZChkKCI8YT48L2E+IikudGV4
dChiLmxhYmVsKSkuYXBwZW5kVG8oYSl9LF9tb3ZlOmZ1bmN0aW9uKGEsYil7aWYodGhpcy5tZW51
LmVsZW1lbnQuaXMoIjp2aXNpYmxlIikpaWYodGhpcy5tZW51LmZpcnN0KCkmJi9ecHJldmlvdXMv
LnRlc3QoYSl8fHRoaXMubWVudS5sYXN0KCkmJi9ebmV4dC8udGVzdChhKSl7dGhpcy5lbGVtZW50
LnZhbCh0aGlzLnRlcm0pO3RoaXMubWVudS5kZWFjdGl2YXRlKCl9ZWxzZSB0aGlzLm1lbnVbYV0o
Yik7CitlbHNlIHRoaXMuc2VhcmNoKG51bGwsYil9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0
aGlzLm1lbnUuZWxlbWVudH19KTtkLmV4dGVuZChkLnVpLmF1dG9jb21wbGV0ZSx7ZXNjYXBlUmVn
ZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvWy1bXF17fSgpKis/LixcXF4kfCNcc10v
ZywiXFwkJiIpfSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXt2YXIgZz1uZXcgUmVnRXhwKGQudWkuYXV0
b2NvbXBsZXRlLmVzY2FwZVJlZ2V4KGIpLCJpIik7cmV0dXJuIGQuZ3JlcChhLGZ1bmN0aW9uKGMp
e3JldHVybiBnLnRlc3QoYy5sYWJlbHx8Yy52YWx1ZXx8Yyl9KX19KX0pKGpRdWVyeSk7CisoZnVu
Y3Rpb24oZCl7ZC53aWRnZXQoInVpLm1lbnUiLHtfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhp
czt0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250
ZW50IHVpLWNvcm5lci1hbGwiKS5hdHRyKHtyb2xlOiJsaXN0Ym94IiwiYXJpYS1hY3RpdmVkZXNj
ZW5kYW50IjoidWktYWN0aXZlLW1lbnVpdGVtIn0pLmNsaWNrKGZ1bmN0aW9uKGEpe2lmKGQoYS50
YXJnZXQpLmNsb3Nlc3QoIi51aS1tZW51LWl0ZW0gYSIpLmxlbmd0aCl7YS5wcmV2ZW50RGVmYXVs
dCgpO2Uuc2VsZWN0KGEpfX0pO3RoaXMucmVmcmVzaCgpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFy
IGU9dGhpczt0aGlzLmVsZW1lbnQuY2hpbGRyZW4oImxpOm5vdCgudWktbWVudS1pdGVtKTpoYXMo
YSkiKS5hZGRDbGFzcygidWktbWVudS1pdGVtIikuYXR0cigicm9sZSIsIm1lbnVpdGVtIikuY2hp
bGRyZW4oImEiKS5hZGRDbGFzcygidWktY29ybmVyLWFsbCIpLmF0dHIoInRhYmluZGV4IiwKKy0x
KS5tb3VzZWVudGVyKGZ1bmN0aW9uKGEpe2UuYWN0aXZhdGUoYSxkKHRoaXMpLnBhcmVudCgpKX0p
Lm1vdXNlbGVhdmUoZnVuY3Rpb24oKXtlLmRlYWN0aXZhdGUoKX0pfSxhY3RpdmF0ZTpmdW5jdGlv
bihlLGEpe3RoaXMuZGVhY3RpdmF0ZSgpO2lmKHRoaXMuaGFzU2Nyb2xsKCkpe3ZhciBiPWEub2Zm
c2V0KCkudG9wLXRoaXMuZWxlbWVudC5vZmZzZXQoKS50b3AsZz10aGlzLmVsZW1lbnQuYXR0cigi
c2Nyb2xsVG9wIiksYz10aGlzLmVsZW1lbnQuaGVpZ2h0KCk7aWYoYjwwKXRoaXMuZWxlbWVudC5h
dHRyKCJzY3JvbGxUb3AiLGcrYik7ZWxzZSBiPj1jJiZ0aGlzLmVsZW1lbnQuYXR0cigic2Nyb2xs
VG9wIixnK2ItYythLmhlaWdodCgpKX10aGlzLmFjdGl2ZT1hLmVxKDApLmNoaWxkcmVuKCJhIiku
YWRkQ2xhc3MoInVpLXN0YXRlLWhvdmVyIikuYXR0cigiaWQiLCJ1aS1hY3RpdmUtbWVudWl0ZW0i
KS5lbmQoKTt0aGlzLl90cmlnZ2VyKCJmb2N1cyIsZSx7aXRlbTphfSl9LAorZGVhY3RpdmF0ZTpm
dW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt0aGlzLmFjdGl2ZS5jaGlsZHJlbigiYSIpLnJlbW92
ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLnJlbW92ZUF0dHIoImlkIik7dGhpcy5fdHJpZ2dlcigi
Ymx1ciIpO3RoaXMuYWN0aXZlPW51bGx9fSxuZXh0OmZ1bmN0aW9uKGUpe3RoaXMubW92ZSgibmV4
dCIsIi51aS1tZW51LWl0ZW06Zmlyc3QiLGUpfSxwcmV2aW91czpmdW5jdGlvbihlKXt0aGlzLm1v
dmUoInByZXYiLCIudWktbWVudS1pdGVtOmxhc3QiLGUpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVy
biB0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLnByZXZBbGwoIi51aS1tZW51LWl0ZW0iKS5sZW5n
dGh9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmUmJiF0aGlzLmFjdGl2ZS5uZXh0
QWxsKCIudWktbWVudS1pdGVtIikubGVuZ3RofSxtb3ZlOmZ1bmN0aW9uKGUsYSxiKXtpZih0aGlz
LmFjdGl2ZSl7ZT10aGlzLmFjdGl2ZVtlKyJBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKDApOwor
ZS5sZW5ndGg/dGhpcy5hY3RpdmF0ZShiLGUpOnRoaXMuYWN0aXZhdGUoYix0aGlzLmVsZW1lbnQu
Y2hpbGRyZW4oYSkpfWVsc2UgdGhpcy5hY3RpdmF0ZShiLHRoaXMuZWxlbWVudC5jaGlsZHJlbihh
KSl9LG5leHRQYWdlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuaGFzU2Nyb2xsKCkpaWYoIXRoaXMuYWN0
aXZlfHx0aGlzLmxhc3QoKSl0aGlzLmFjdGl2YXRlKGUsdGhpcy5lbGVtZW50LmNoaWxkcmVuKCIu
dWktbWVudS1pdGVtOmZpcnN0IikpO2Vsc2V7dmFyIGE9dGhpcy5hY3RpdmUub2Zmc2V0KCkudG9w
LGI9dGhpcy5lbGVtZW50LmhlaWdodCgpLGc9dGhpcy5lbGVtZW50LmNoaWxkcmVuKCIudWktbWVu
dS1pdGVtIikuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGM9ZCh0aGlzKS5vZmZzZXQoKS50b3AtYS1i
K2QodGhpcykuaGVpZ2h0KCk7cmV0dXJuIGM8MTAmJmM+LTEwfSk7Zy5sZW5ndGh8fChnPXRoaXMu
ZWxlbWVudC5jaGlsZHJlbigiLnVpLW1lbnUtaXRlbTpsYXN0IikpO3RoaXMuYWN0aXZhdGUoZSwK
K2cpfWVsc2UgdGhpcy5hY3RpdmF0ZShlLHRoaXMuZWxlbWVudC5jaGlsZHJlbigiLnVpLW1lbnUt
aXRlbSIpLmZpbHRlcighdGhpcy5hY3RpdmV8fHRoaXMubGFzdCgpPyI6Zmlyc3QiOiI6bGFzdCIp
KX0scHJldmlvdXNQYWdlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuaGFzU2Nyb2xsKCkpaWYoIXRoaXMu
YWN0aXZlfHx0aGlzLmZpcnN0KCkpdGhpcy5hY3RpdmF0ZShlLHRoaXMuZWxlbWVudC5jaGlsZHJl
bigiLnVpLW1lbnUtaXRlbTpsYXN0IikpO2Vsc2V7dmFyIGE9dGhpcy5hY3RpdmUub2Zmc2V0KCku
dG9wLGI9dGhpcy5lbGVtZW50LmhlaWdodCgpO3Jlc3VsdD10aGlzLmVsZW1lbnQuY2hpbGRyZW4o
Ii51aS1tZW51LWl0ZW0iKS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgZz1kKHRoaXMpLm9mZnNldCgp
LnRvcC1hK2ItZCh0aGlzKS5oZWlnaHQoKTtyZXR1cm4gZzwxMCYmZz4tMTB9KTtyZXN1bHQubGVu
Z3RofHwocmVzdWx0PXRoaXMuZWxlbWVudC5jaGlsZHJlbigiLnVpLW1lbnUtaXRlbTpmaXJzdCIp
KTsKK3RoaXMuYWN0aXZhdGUoZSxyZXN1bHQpfWVsc2UgdGhpcy5hY3RpdmF0ZShlLHRoaXMuZWxl
bWVudC5jaGlsZHJlbigiLnVpLW1lbnUtaXRlbSIpLmZpbHRlcighdGhpcy5hY3RpdmV8fHRoaXMu
Zmlyc3QoKT8iOmxhc3QiOiI6Zmlyc3QiKSl9LGhhc1Njcm9sbDpmdW5jdGlvbigpe3JldHVybiB0
aGlzLmVsZW1lbnQuaGVpZ2h0KCk8dGhpcy5lbGVtZW50LmF0dHIoInNjcm9sbEhlaWdodCIpfSxz
ZWxlY3Q6ZnVuY3Rpb24oZSl7dGhpcy5fdHJpZ2dlcigic2VsZWN0ZWQiLGUse2l0ZW06dGhpcy5h
Y3RpdmV9KX19KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBCdXR0b24gMS44LjEwCisg
KgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fi
b3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGlj
ZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3Mu
anF1ZXJ5LmNvbS9VSS9CdXR0b24KKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LnVpLmNvcmUu
anMKKyAqCWpxdWVyeS51aS53aWRnZXQuanMKKyAqLworKGZ1bmN0aW9uKGEpe3ZhciBnLGk9ZnVu
Y3Rpb24oYil7YSgiOnVpLWJ1dHRvbiIsYi50YXJnZXQuZm9ybSkuZWFjaChmdW5jdGlvbigpe3Zh
ciBjPWEodGhpcykuZGF0YSgiYnV0dG9uIik7c2V0VGltZW91dChmdW5jdGlvbigpe2MucmVmcmVz
aCgpfSwxKX0pfSxoPWZ1bmN0aW9uKGIpe3ZhciBjPWIubmFtZSxkPWIuZm9ybSxmPWEoW10pO2lm
KGMpZj1kP2EoZCkuZmluZCgiW25hbWU9JyIrYysiJ10iKTphKCJbbmFtZT0nIitjKyInXSIsYi5v
d25lckRvY3VtZW50KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5mb3JtfSk7cmV0dXJu
IGZ9O2Eud2lkZ2V0KCJ1aS5idXR0b24iLHtvcHRpb25zOntkaXNhYmxlZDpudWxsLHRleHQ6dHJ1
ZSxsYWJlbDpudWxsLGljb25zOntwcmltYXJ5Om51bGwsc2Vjb25kYXJ5Om51bGx9fSxfY3JlYXRl
OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmNsb3Nlc3QoImZvcm0iKS51bmJpbmQoInJlc2V0LmJ1
dHRvbiIpLmJpbmQoInJlc2V0LmJ1dHRvbiIsCitpKTtpZih0eXBlb2YgdGhpcy5vcHRpb25zLmRp
c2FibGVkIT09ImJvb2xlYW4iKXRoaXMub3B0aW9ucy5kaXNhYmxlZD10aGlzLmVsZW1lbnQuYXR0
cigiZGlzYWJsZWQiKTt0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCk7dGhpcy5oYXNUaXRsZT0h
IXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCJ0aXRsZSIpO3ZhciBiPXRoaXMsYz10aGlzLm9wdGlv
bnMsZD10aGlzLnR5cGU9PT0iY2hlY2tib3gifHx0aGlzLnR5cGU9PT0icmFkaW8iLGY9InVpLXN0
YXRlLWhvdmVyIisoIWQ/IiB1aS1zdGF0ZS1hY3RpdmUiOiIiKTtpZihjLmxhYmVsPT09bnVsbClj
LmxhYmVsPXRoaXMuYnV0dG9uRWxlbWVudC5odG1sKCk7aWYodGhpcy5lbGVtZW50LmlzKCI6ZGlz
YWJsZWQiKSljLmRpc2FibGVkPXRydWU7dGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1i
dXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIpLmF0dHIoInJv
bGUiLCJidXR0b24iKS5iaW5kKCJtb3VzZWVudGVyLmJ1dHRvbiIsCitmdW5jdGlvbigpe2lmKCFj
LmRpc2FibGVkKXthKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpO3RoaXM9PT1nJiZh
KHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX19KS5iaW5kKCJtb3VzZWxlYXZlLmJ1
dHRvbiIsZnVuY3Rpb24oKXtjLmRpc2FibGVkfHxhKHRoaXMpLnJlbW92ZUNsYXNzKGYpfSkuYmlu
ZCgiZm9jdXMuYnV0dG9uIixmdW5jdGlvbigpe2EodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWZv
Y3VzIil9KS5iaW5kKCJibHVyLmJ1dHRvbiIsZnVuY3Rpb24oKXthKHRoaXMpLnJlbW92ZUNsYXNz
KCJ1aS1zdGF0ZS1mb2N1cyIpfSk7ZCYmdGhpcy5lbGVtZW50LmJpbmQoImNoYW5nZS5idXR0b24i
LGZ1bmN0aW9uKCl7Yi5yZWZyZXNoKCl9KTtpZih0aGlzLnR5cGU9PT0iY2hlY2tib3giKXRoaXMu
YnV0dG9uRWxlbWVudC5iaW5kKCJjbGljay5idXR0b24iLGZ1bmN0aW9uKCl7aWYoYy5kaXNhYmxl
ZClyZXR1cm4gZmFsc2U7YSh0aGlzKS50b2dnbGVDbGFzcygidWktc3RhdGUtYWN0aXZlIik7Citi
LmJ1dHRvbkVsZW1lbnQuYXR0cigiYXJpYS1wcmVzc2VkIixiLmVsZW1lbnRbMF0uY2hlY2tlZCl9
KTtlbHNlIGlmKHRoaXMudHlwZT09PSJyYWRpbyIpdGhpcy5idXR0b25FbGVtZW50LmJpbmQoImNs
aWNrLmJ1dHRvbiIsZnVuY3Rpb24oKXtpZihjLmRpc2FibGVkKXJldHVybiBmYWxzZTthKHRoaXMp
LmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKTtiLmJ1dHRvbkVsZW1lbnQuYXR0cigiYXJpYS1w
cmVzc2VkIix0cnVlKTt2YXIgZT1iLmVsZW1lbnRbMF07aChlKS5ub3QoZSkubWFwKGZ1bmN0aW9u
KCl7cmV0dXJuIGEodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1z
dGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLGZhbHNlKX0pO2Vsc2V7dGhpcy5idXR0
b25FbGVtZW50LmJpbmQoIm1vdXNlZG93bi5idXR0b24iLGZ1bmN0aW9uKCl7aWYoYy5kaXNhYmxl
ZClyZXR1cm4gZmFsc2U7YSh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIik7CitnPXRo
aXM7YShkb2N1bWVudCkub25lKCJtb3VzZXVwIixmdW5jdGlvbigpe2c9bnVsbH0pfSkuYmluZCgi
bW91c2V1cC5idXR0b24iLGZ1bmN0aW9uKCl7aWYoYy5kaXNhYmxlZClyZXR1cm4gZmFsc2U7YSh0
aGlzKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIil9KS5iaW5kKCJrZXlkb3duLmJ1dHRv
biIsZnVuY3Rpb24oZSl7aWYoYy5kaXNhYmxlZClyZXR1cm4gZmFsc2U7aWYoZS5rZXlDb2RlPT1h
LnVpLmtleUNvZGUuU1BBQ0V8fGUua2V5Q29kZT09YS51aS5rZXlDb2RlLkVOVEVSKWEodGhpcyku
YWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgia2V5dXAuYnV0dG9uIixmdW5jdGlv
bigpe2EodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSk7dGhpcy5idXR0b25F
bGVtZW50LmlzKCJhIikmJnRoaXMuYnV0dG9uRWxlbWVudC5rZXl1cChmdW5jdGlvbihlKXtlLmtl
eUNvZGU9PT1hLnVpLmtleUNvZGUuU1BBQ0UmJmEodGhpcykuY2xpY2soKX0pfXRoaXMuX3NldE9w
dGlvbigiZGlzYWJsZWQiLAorYy5kaXNhYmxlZCl9LF9kZXRlcm1pbmVCdXR0b25UeXBlOmZ1bmN0
aW9uKCl7dGhpcy50eXBlPXRoaXMuZWxlbWVudC5pcygiOmNoZWNrYm94Iik/ImNoZWNrYm94Ijp0
aGlzLmVsZW1lbnQuaXMoIjpyYWRpbyIpPyJyYWRpbyI6dGhpcy5lbGVtZW50LmlzKCJpbnB1dCIp
PyJpbnB1dCI6ImJ1dHRvbiI7aWYodGhpcy50eXBlPT09ImNoZWNrYm94Inx8dGhpcy50eXBlPT09
InJhZGlvIil7dGhpcy5idXR0b25FbGVtZW50PXRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgp
LmZpbmQoImxhYmVsW2Zvcj0iK3RoaXMuZWxlbWVudC5hdHRyKCJpZCIpKyJdIik7dGhpcy5lbGVt
ZW50LmFkZENsYXNzKCJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiKTt2YXIgYj10aGlzLmVs
ZW1lbnQuaXMoIjpjaGVja2VkIik7YiYmdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1z
dGF0ZS1hY3RpdmUiKTt0aGlzLmJ1dHRvbkVsZW1lbnQuYXR0cigiYXJpYS1wcmVzc2VkIixiKX1l
bHNlIHRoaXMuYnV0dG9uRWxlbWVudD0KK3RoaXMuZWxlbWVudH0sd2lkZ2V0OmZ1bmN0aW9uKCl7
cmV0dXJuIHRoaXMuYnV0dG9uRWxlbWVudH0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVu
dC5yZW1vdmVDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIik7dGhpcy5idXR0b25F
bGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQg
dWktY29ybmVyLWFsbCB1aS1zdGF0ZS1ob3ZlciB1aS1zdGF0ZS1hY3RpdmUgIHVpLWJ1dHRvbi1p
Y29ucy1vbmx5IHVpLWJ1dHRvbi1pY29uLW9ubHkgdWktYnV0dG9uLXRleHQtaWNvbnMgdWktYnV0
dG9uLXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IHVpLWJ1
dHRvbi10ZXh0LW9ubHkiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS1wcmVz
c2VkIikuaHRtbCh0aGlzLmJ1dHRvbkVsZW1lbnQuZmluZCgiLnVpLWJ1dHRvbi10ZXh0IikuaHRt
bCgpKTt0aGlzLmhhc1RpdGxlfHwKK3RoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVBdHRyKCJ0aXRs
ZSIpO2EuV2lkZ2V0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyl9LF9zZXRPcHRpb246ZnVu
Y3Rpb24oYixjKXthLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5hcHBseSh0aGlzLGFyZ3Vt
ZW50cyk7aWYoYj09PSJkaXNhYmxlZCIpYz90aGlzLmVsZW1lbnQuYXR0cigiZGlzYWJsZWQiLHRy
dWUpOnRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpO3RoaXMuX3Jlc2V0QnV0dG9u
KCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLmVsZW1lbnQuaXMoIjpkaXNhYmxlZCIp
O2IhPT10aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbigiZGlzYWJsZWQiLGIp
O2lmKHRoaXMudHlwZT09PSJyYWRpbyIpaCh0aGlzLmVsZW1lbnRbMF0pLmVhY2goZnVuY3Rpb24o
KXthKHRoaXMpLmlzKCI6Y2hlY2tlZCIpP2EodGhpcykuYnV0dG9uKCJ3aWRnZXQiKS5hZGRDbGFz
cygidWktc3RhdGUtYWN0aXZlIikuYXR0cigiYXJpYS1wcmVzc2VkIiwKK3RydWUpOmEodGhpcyku
YnV0dG9uKCJ3aWRnZXQiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikuYXR0cigiYXJp
YS1wcmVzc2VkIixmYWxzZSl9KTtlbHNlIGlmKHRoaXMudHlwZT09PSJjaGVja2JveCIpdGhpcy5l
bGVtZW50LmlzKCI6Y2hlY2tlZCIpP3RoaXMuYnV0dG9uRWxlbWVudC5hZGRDbGFzcygidWktc3Rh
dGUtYWN0aXZlIikuYXR0cigiYXJpYS1wcmVzc2VkIix0cnVlKTp0aGlzLmJ1dHRvbkVsZW1lbnQu
cmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsZmFsc2Up
fSxfcmVzZXRCdXR0b246ZnVuY3Rpb24oKXtpZih0aGlzLnR5cGU9PT0iaW5wdXQiKXRoaXMub3B0
aW9ucy5sYWJlbCYmdGhpcy5lbGVtZW50LnZhbCh0aGlzLm9wdGlvbnMubGFiZWwpO2Vsc2V7dmFy
IGI9dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1idXR0b24taWNvbnMtb25seSB1
aS1idXR0b24taWNvbi1vbmx5IHVpLWJ1dHRvbi10ZXh0LWljb25zIHVpLWJ1dHRvbi10ZXh0LWlj
b24tcHJpbWFyeSB1aS1idXR0b24tdGV4dC1pY29uLXNlY29uZGFyeSB1aS1idXR0b24tdGV4dC1v
bmx5IiksCitjPWEoIjxzcGFuPjwvc3Bhbj4iKS5hZGRDbGFzcygidWktYnV0dG9uLXRleHQiKS5o
dG1sKHRoaXMub3B0aW9ucy5sYWJlbCkuYXBwZW5kVG8oYi5lbXB0eSgpKS50ZXh0KCksZD10aGlz
Lm9wdGlvbnMuaWNvbnMsZj1kLnByaW1hcnkmJmQuc2Vjb25kYXJ5LGU9W107aWYoZC5wcmltYXJ5
fHxkLnNlY29uZGFyeSl7ZS5wdXNoKCJ1aS1idXR0b24tdGV4dC1pY29uIisoZj8icyI6ZC5wcmlt
YXJ5PyItcHJpbWFyeSI6Ii1zZWNvbmRhcnkiKSk7ZC5wcmltYXJ5JiZiLnByZXBlbmQoIjxzcGFu
IGNsYXNzPSd1aS1idXR0b24taWNvbi1wcmltYXJ5IHVpLWljb24gIitkLnByaW1hcnkrIic+PC9z
cGFuPiIpO2Quc2Vjb25kYXJ5JiZiLmFwcGVuZCgiPHNwYW4gY2xhc3M9J3VpLWJ1dHRvbi1pY29u
LXNlY29uZGFyeSB1aS1pY29uICIrZC5zZWNvbmRhcnkrIic+PC9zcGFuPiIpO2lmKCF0aGlzLm9w
dGlvbnMudGV4dCl7ZS5wdXNoKGY/InVpLWJ1dHRvbi1pY29ucy1vbmx5IjoidWktYnV0dG9uLWlj
b24tb25seSIpOworYi5yZW1vdmVDbGFzcygidWktYnV0dG9uLXRleHQtaWNvbnMgdWktYnV0dG9u
LXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5Iik7dGhpcy5o
YXNUaXRsZXx8Yi5hdHRyKCJ0aXRsZSIsYyl9fWVsc2UgZS5wdXNoKCJ1aS1idXR0b24tdGV4dC1v
bmx5Iik7Yi5hZGRDbGFzcyhlLmpvaW4oIiAiKSl9fX0pO2Eud2lkZ2V0KCJ1aS5idXR0b25zZXQi
LHtvcHRpb25zOntpdGVtczoiOmJ1dHRvbiwgOnN1Ym1pdCwgOnJlc2V0LCA6Y2hlY2tib3gsIDpy
YWRpbywgYSwgOmRhdGEoYnV0dG9uKSJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQu
YWRkQ2xhc3MoInVpLWJ1dHRvbnNldCIpfSxfaW5pdDpmdW5jdGlvbigpe3RoaXMucmVmcmVzaCgp
fSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGIsYyl7Yj09PSJkaXNhYmxlZCImJnRoaXMuYnV0dG9ucy5i
dXR0b24oIm9wdGlvbiIsYixjKTthLldpZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5hcHBseSh0
aGlzLAorYXJndW1lbnRzKX0scmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuYnV0dG9ucz10aGlzLmVs
ZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpLmZpbHRlcigiOnVpLWJ1dHRvbiIpLmJ1dHRv
bigicmVmcmVzaCIpLmVuZCgpLm5vdCgiOnVpLWJ1dHRvbiIpLmJ1dHRvbigpLmVuZCgpLm1hcChm
dW5jdGlvbigpe3JldHVybiBhKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFz
cygidWktY29ybmVyLWFsbCB1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5maWx0ZXIo
IjpmaXJzdCIpLmFkZENsYXNzKCJ1aS1jb3JuZXItbGVmdCIpLmVuZCgpLmZpbHRlcigiOmxhc3Qi
KS5hZGRDbGFzcygidWktY29ybmVyLXJpZ2h0IikuZW5kKCkuZW5kKCl9LGRlc3Ryb3k6ZnVuY3Rp
b24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWJ1dHRvbnNldCIpO3RoaXMuYnV0dG9u
cy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKS5idXR0b24oIndpZGdldCIpWzBdfSkucmVt
b3ZlQ2xhc3MoInVpLWNvcm5lci1sZWZ0IHVpLWNvcm5lci1yaWdodCIpLmVuZCgpLmJ1dHRvbigi
ZGVzdHJveSIpOworYS5XaWRnZXQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKX19KX0pKGpR
dWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBEaWFsb2cgMS44LjEwCisgKgorICogQ29weXJpZ2h0
IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBs
aWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRw
Oi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9E
aWFsb2cKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LnVpLmNvcmUuanMKKyAqCWpxdWVyeS51
aS53aWRnZXQuanMKKyAqICBqcXVlcnkudWkuYnV0dG9uLmpzCisgKglqcXVlcnkudWkuZHJhZ2dh
YmxlLmpzCisgKglqcXVlcnkudWkubW91c2UuanMKKyAqCWpxdWVyeS51aS5wb3NpdGlvbi5qcwor
ICoJanF1ZXJ5LnVpLnJlc2l6YWJsZS5qcworICovCisoZnVuY3Rpb24oYyxqKXt2YXIgaz17YnV0
dG9uczp0cnVlLGhlaWdodDp0cnVlLG1heEhlaWdodDp0cnVlLG1heFdpZHRoOnRydWUsbWluSGVp
Z2h0OnRydWUsbWluV2lkdGg6dHJ1ZSx3aWR0aDp0cnVlfSxsPXttYXhIZWlnaHQ6dHJ1ZSxtYXhX
aWR0aDp0cnVlLG1pbkhlaWdodDp0cnVlLG1pbldpZHRoOnRydWV9O2Mud2lkZ2V0KCJ1aS5kaWFs
b2ciLHtvcHRpb25zOnthdXRvT3Blbjp0cnVlLGJ1dHRvbnM6e30sY2xvc2VPbkVzY2FwZTp0cnVl
LGNsb3NlVGV4dDoiY2xvc2UiLGRpYWxvZ0NsYXNzOiIiLGRyYWdnYWJsZTp0cnVlLGhpZGU6bnVs
bCxoZWlnaHQ6ImF1dG8iLG1heEhlaWdodDpmYWxzZSxtYXhXaWR0aDpmYWxzZSxtaW5IZWlnaHQ6
MTUwLG1pbldpZHRoOjE1MCxtb2RhbDpmYWxzZSxwb3NpdGlvbjp7bXk6ImNlbnRlciIsYXQ6ImNl
bnRlciIsY29sbGlzaW9uOiJmaXQiLHVzaW5nOmZ1bmN0aW9uKGEpe3ZhciBiPWModGhpcykuY3Nz
KGEpLm9mZnNldCgpLnRvcDtiPDAmJgorYyh0aGlzKS5jc3MoInRvcCIsYS50b3AtYil9fSxyZXNp
emFibGU6dHJ1ZSxzaG93Om51bGwsc3RhY2s6dHJ1ZSx0aXRsZToiIix3aWR0aDozMDAsekluZGV4
OjFFM30sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMub3JpZ2luYWxUaXRsZT10aGlzLmVsZW1lbnQu
YXR0cigidGl0bGUiKTtpZih0eXBlb2YgdGhpcy5vcmlnaW5hbFRpdGxlIT09InN0cmluZyIpdGhp
cy5vcmlnaW5hbFRpdGxlPSIiO3RoaXMub3B0aW9ucy50aXRsZT10aGlzLm9wdGlvbnMudGl0bGV8
fHRoaXMub3JpZ2luYWxUaXRsZTt2YXIgYT10aGlzLGI9YS5vcHRpb25zLGQ9Yi50aXRsZXx8IiYj
MTYwOyIsZT1jLnVpLmRpYWxvZy5nZXRUaXRsZUlkKGEuZWxlbWVudCksZz0oYS51aURpYWxvZz1j
KCI8ZGl2PjwvZGl2PiIpKS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KS5oaWRlKCkuYWRkQ2xhc3Mo
InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCAiK2Iu
ZGlhbG9nQ2xhc3MpLmNzcyh7ekluZGV4OmIuekluZGV4fSkuYXR0cigidGFiSW5kZXgiLAorLTEp
LmNzcygib3V0bGluZSIsMCkua2V5ZG93bihmdW5jdGlvbihpKXtpZihiLmNsb3NlT25Fc2NhcGUm
Jmkua2V5Q29kZSYmaS5rZXlDb2RlPT09Yy51aS5rZXlDb2RlLkVTQ0FQRSl7YS5jbG9zZShpKTtp
LnByZXZlbnREZWZhdWx0KCl9fSkuYXR0cih7cm9sZToiZGlhbG9nIiwiYXJpYS1sYWJlbGxlZGJ5
IjplfSkubW91c2Vkb3duKGZ1bmN0aW9uKGkpe2EubW92ZVRvVG9wKGZhbHNlLGkpfSk7YS5lbGVt
ZW50LnNob3coKS5yZW1vdmVBdHRyKCJ0aXRsZSIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctY29udGVu
dCB1aS13aWRnZXQtY29udGVudCIpLmFwcGVuZFRvKGcpO3ZhciBmPShhLnVpRGlhbG9nVGl0bGVi
YXI9YygiPGRpdj48L2Rpdj4iKSkuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRn
ZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwgdWktaGVscGVyLWNsZWFyZml4IikucHJlcGVuZFRvKGcp
LGg9YygnPGEgaHJlZj0iIyI+PC9hPicpLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGViYXItY2xv
c2UgdWktY29ybmVyLWFsbCIpLmF0dHIoInJvbGUiLAorImJ1dHRvbiIpLmhvdmVyKGZ1bmN0aW9u
KCl7aC5hZGRDbGFzcygidWktc3RhdGUtaG92ZXIiKX0sZnVuY3Rpb24oKXtoLnJlbW92ZUNsYXNz
KCJ1aS1zdGF0ZS1ob3ZlciIpfSkuZm9jdXMoZnVuY3Rpb24oKXtoLmFkZENsYXNzKCJ1aS1zdGF0
ZS1mb2N1cyIpfSkuYmx1cihmdW5jdGlvbigpe2gucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3Vz
Iil9KS5jbGljayhmdW5jdGlvbihpKXthLmNsb3NlKGkpO3JldHVybiBmYWxzZX0pLmFwcGVuZFRv
KGYpOyhhLnVpRGlhbG9nVGl0bGViYXJDbG9zZVRleHQ9YygiPHNwYW4+PC9zcGFuPiIpKS5hZGRD
bGFzcygidWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siKS50ZXh0KGIuY2xvc2VUZXh0KS5hcHBl
bmRUbyhoKTtjKCI8c3Bhbj48L3NwYW4+IikuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZSIpLmF0
dHIoImlkIixlKS5odG1sKGQpLnByZXBlbmRUbyhmKTtpZihjLmlzRnVuY3Rpb24oYi5iZWZvcmVj
bG9zZSkmJiFjLmlzRnVuY3Rpb24oYi5iZWZvcmVDbG9zZSkpYi5iZWZvcmVDbG9zZT0KK2IuYmVm
b3JlY2xvc2U7Zi5maW5kKCIqIikuYWRkKGYpLmRpc2FibGVTZWxlY3Rpb24oKTtiLmRyYWdnYWJs
ZSYmYy5mbi5kcmFnZ2FibGUmJmEuX21ha2VEcmFnZ2FibGUoKTtiLnJlc2l6YWJsZSYmYy5mbi5y
ZXNpemFibGUmJmEuX21ha2VSZXNpemFibGUoKTthLl9jcmVhdGVCdXR0b25zKGIuYnV0dG9ucyk7
YS5faXNPcGVuPWZhbHNlO2MuZm4uYmdpZnJhbWUmJmcuYmdpZnJhbWUoKX0sX2luaXQ6ZnVuY3Rp
b24oKXt0aGlzLm9wdGlvbnMuYXV0b09wZW4mJnRoaXMub3BlbigpfSxkZXN0cm95OmZ1bmN0aW9u
KCl7dmFyIGE9dGhpczthLm92ZXJsYXkmJmEub3ZlcmxheS5kZXN0cm95KCk7YS51aURpYWxvZy5o
aWRlKCk7YS5lbGVtZW50LnVuYmluZCgiLmRpYWxvZyIpLnJlbW92ZURhdGEoImRpYWxvZyIpLnJl
bW92ZUNsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmhpZGUoKS5h
cHBlbmRUbygiYm9keSIpO2EudWlEaWFsb2cucmVtb3ZlKCk7YS5vcmlnaW5hbFRpdGxlJiYKK2Eu
ZWxlbWVudC5hdHRyKCJ0aXRsZSIsYS5vcmlnaW5hbFRpdGxlKTtyZXR1cm4gYX0sd2lkZ2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMudWlEaWFsb2d9LGNsb3NlOmZ1bmN0aW9uKGEpe3ZhciBiPXRo
aXMsZCxlO2lmKGZhbHNlIT09Yi5fdHJpZ2dlcigiYmVmb3JlQ2xvc2UiLGEpKXtiLm92ZXJsYXkm
JmIub3ZlcmxheS5kZXN0cm95KCk7Yi51aURpYWxvZy51bmJpbmQoImtleXByZXNzLnVpLWRpYWxv
ZyIpO2IuX2lzT3Blbj1mYWxzZTtpZihiLm9wdGlvbnMuaGlkZSliLnVpRGlhbG9nLmhpZGUoYi5v
cHRpb25zLmhpZGUsZnVuY3Rpb24oKXtiLl90cmlnZ2VyKCJjbG9zZSIsYSl9KTtlbHNle2IudWlE
aWFsb2cuaGlkZSgpO2IuX3RyaWdnZXIoImNsb3NlIixhKX1jLnVpLmRpYWxvZy5vdmVybGF5LnJl
c2l6ZSgpO2lmKGIub3B0aW9ucy5tb2RhbCl7ZD0wO2MoIi51aS1kaWFsb2ciKS5lYWNoKGZ1bmN0
aW9uKCl7aWYodGhpcyE9PWIudWlEaWFsb2dbMF0pe2U9Yyh0aGlzKS5jc3MoInotaW5kZXgiKTsK
K2lzTmFOKGUpfHwoZD1NYXRoLm1heChkLGUpKX19KTtjLnVpLmRpYWxvZy5tYXhaPWR9cmV0dXJu
IGJ9fSxpc09wZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNPcGVufSxtb3ZlVG9Ub3A6ZnVu
Y3Rpb24oYSxiKXt2YXIgZD10aGlzLGU9ZC5vcHRpb25zO2lmKGUubW9kYWwmJiFhfHwhZS5zdGFj
ayYmIWUubW9kYWwpcmV0dXJuIGQuX3RyaWdnZXIoImZvY3VzIixiKTtpZihlLnpJbmRleD5jLnVp
LmRpYWxvZy5tYXhaKWMudWkuZGlhbG9nLm1heFo9ZS56SW5kZXg7aWYoZC5vdmVybGF5KXtjLnVp
LmRpYWxvZy5tYXhaKz0xO2Qub3ZlcmxheS4kZWwuY3NzKCJ6LWluZGV4IixjLnVpLmRpYWxvZy5v
dmVybGF5Lm1heFo9Yy51aS5kaWFsb2cubWF4Wil9YT17c2Nyb2xsVG9wOmQuZWxlbWVudC5hdHRy
KCJzY3JvbGxUb3AiKSxzY3JvbGxMZWZ0OmQuZWxlbWVudC5hdHRyKCJzY3JvbGxMZWZ0Iil9O2Mu
dWkuZGlhbG9nLm1heForPTE7ZC51aURpYWxvZy5jc3MoInotaW5kZXgiLGMudWkuZGlhbG9nLm1h
eFopOworZC5lbGVtZW50LmF0dHIoYSk7ZC5fdHJpZ2dlcigiZm9jdXMiLGIpO3JldHVybiBkfSxv
cGVuOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2lzT3Blbil7dmFyIGE9dGhpcyxiPWEub3B0aW9ucyxk
PWEudWlEaWFsb2c7YS5vdmVybGF5PWIubW9kYWw/bmV3IGMudWkuZGlhbG9nLm92ZXJsYXkoYSk6
bnVsbDthLl9zaXplKCk7YS5fcG9zaXRpb24oYi5wb3NpdGlvbik7ZC5zaG93KGIuc2hvdyk7YS5t
b3ZlVG9Ub3AodHJ1ZSk7Yi5tb2RhbCYmZC5iaW5kKCJrZXlwcmVzcy51aS1kaWFsb2ciLGZ1bmN0
aW9uKGUpe2lmKGUua2V5Q29kZT09PWMudWkua2V5Q29kZS5UQUIpe3ZhciBnPWMoIjp0YWJiYWJs
ZSIsdGhpcyksZj1nLmZpbHRlcigiOmZpcnN0Iik7Zz1nLmZpbHRlcigiOmxhc3QiKTtpZihlLnRh
cmdldD09PWdbMF0mJiFlLnNoaWZ0S2V5KXtmLmZvY3VzKDEpO3JldHVybiBmYWxzZX1lbHNlIGlm
KGUudGFyZ2V0PT09ZlswXSYmZS5zaGlmdEtleSl7Zy5mb2N1cygxKTtyZXR1cm4gZmFsc2V9fX0p
OworYyhhLmVsZW1lbnQuZmluZCgiOnRhYmJhYmxlIikuZ2V0KCkuY29uY2F0KGQuZmluZCgiLnVp
LWRpYWxvZy1idXR0b25wYW5lIDp0YWJiYWJsZSIpLmdldCgpLmNvbmNhdChkLmdldCgpKSkpLmVx
KDApLmZvY3VzKCk7YS5faXNPcGVuPXRydWU7YS5fdHJpZ2dlcigib3BlbiIpO3JldHVybiBhfX0s
X2NyZWF0ZUJ1dHRvbnM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxkPWZhbHNlLGU9YygiPGRpdj48
L2Rpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQg
dWktaGVscGVyLWNsZWFyZml4IiksZz1jKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFs
b2ctYnV0dG9uc2V0IikuYXBwZW5kVG8oZSk7Yi51aURpYWxvZy5maW5kKCIudWktZGlhbG9nLWJ1
dHRvbnBhbmUiKS5yZW1vdmUoKTt0eXBlb2YgYT09PSJvYmplY3QiJiZhIT09bnVsbCYmYy5lYWNo
KGEsZnVuY3Rpb24oKXtyZXR1cm4hKGQ9dHJ1ZSl9KTtpZihkKXtjLmVhY2goYSxmdW5jdGlvbihm
LAoraCl7aD1jLmlzRnVuY3Rpb24oaCk/e2NsaWNrOmgsdGV4dDpmfTpoO2Y9YygnPGJ1dHRvbiB0
eXBlPSJidXR0b24iPjwvYnV0dG9uPicpLmF0dHIoaCx0cnVlKS51bmJpbmQoImNsaWNrIikuY2xp
Y2soZnVuY3Rpb24oKXtoLmNsaWNrLmFwcGx5KGIuZWxlbWVudFswXSxhcmd1bWVudHMpfSkuYXBw
ZW5kVG8oZyk7Yy5mbi5idXR0b24mJmYuYnV0dG9uKCl9KTtlLmFwcGVuZFRvKGIudWlEaWFsb2cp
fX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGYpe3JldHVybntwb3NpdGlv
bjpmLnBvc2l0aW9uLG9mZnNldDpmLm9mZnNldH19dmFyIGI9dGhpcyxkPWIub3B0aW9ucyxlPWMo
ZG9jdW1lbnQpLGc7Yi51aURpYWxvZy5kcmFnZ2FibGUoe2NhbmNlbDoiLnVpLWRpYWxvZy1jb250
ZW50LCAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIixoYW5kbGU6Ii51aS1kaWFsb2ctdGl0bGVi
YXIiLGNvbnRhaW5tZW50OiJkb2N1bWVudCIsc3RhcnQ6ZnVuY3Rpb24oZixoKXtnPQorZC5oZWln
aHQ9PT0iYXV0byI/ImF1dG8iOmModGhpcykuaGVpZ2h0KCk7Yyh0aGlzKS5oZWlnaHQoYyh0aGlz
KS5oZWlnaHQoKSkuYWRkQ2xhc3MoInVpLWRpYWxvZy1kcmFnZ2luZyIpO2IuX3RyaWdnZXIoImRy
YWdTdGFydCIsZixhKGgpKX0sZHJhZzpmdW5jdGlvbihmLGgpe2IuX3RyaWdnZXIoImRyYWciLGYs
YShoKSl9LHN0b3A6ZnVuY3Rpb24oZixoKXtkLnBvc2l0aW9uPVtoLnBvc2l0aW9uLmxlZnQtZS5z
Y3JvbGxMZWZ0KCksaC5wb3NpdGlvbi50b3AtZS5zY3JvbGxUb3AoKV07Yyh0aGlzKS5yZW1vdmVD
bGFzcygidWktZGlhbG9nLWRyYWdnaW5nIikuaGVpZ2h0KGcpO2IuX3RyaWdnZXIoImRyYWdTdG9w
IixmLGEoaCkpO2MudWkuZGlhbG9nLm92ZXJsYXkucmVzaXplKCl9fSl9LF9tYWtlUmVzaXphYmxl
OmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZil7cmV0dXJue29yaWdpbmFsUG9zaXRpb246Zi5vcmln
aW5hbFBvc2l0aW9uLG9yaWdpbmFsU2l6ZTpmLm9yaWdpbmFsU2l6ZSwKK3Bvc2l0aW9uOmYucG9z
aXRpb24sc2l6ZTpmLnNpemV9fWE9YT09PWo/dGhpcy5vcHRpb25zLnJlc2l6YWJsZTphO3ZhciBk
PXRoaXMsZT1kLm9wdGlvbnMsZz1kLnVpRGlhbG9nLmNzcygicG9zaXRpb24iKTthPXR5cGVvZiBh
PT09InN0cmluZyI/YToibixlLHMsdyxzZSxzdyxuZSxudyI7ZC51aURpYWxvZy5yZXNpemFibGUo
e2NhbmNlbDoiLnVpLWRpYWxvZy1jb250ZW50Iixjb250YWlubWVudDoiZG9jdW1lbnQiLGFsc29S
ZXNpemU6ZC5lbGVtZW50LG1heFdpZHRoOmUubWF4V2lkdGgsbWF4SGVpZ2h0OmUubWF4SGVpZ2h0
LG1pbldpZHRoOmUubWluV2lkdGgsbWluSGVpZ2h0OmQuX21pbkhlaWdodCgpLGhhbmRsZXM6YSxz
dGFydDpmdW5jdGlvbihmLGgpe2ModGhpcykuYWRkQ2xhc3MoInVpLWRpYWxvZy1yZXNpemluZyIp
O2QuX3RyaWdnZXIoInJlc2l6ZVN0YXJ0IixmLGIoaCkpfSxyZXNpemU6ZnVuY3Rpb24oZixoKXtk
Ll90cmlnZ2VyKCJyZXNpemUiLGYsYihoKSl9LHN0b3A6ZnVuY3Rpb24oZiwKK2gpe2ModGhpcyku
cmVtb3ZlQ2xhc3MoInVpLWRpYWxvZy1yZXNpemluZyIpO2UuaGVpZ2h0PWModGhpcykuaGVpZ2h0
KCk7ZS53aWR0aD1jKHRoaXMpLndpZHRoKCk7ZC5fdHJpZ2dlcigicmVzaXplU3RvcCIsZixiKGgp
KTtjLnVpLmRpYWxvZy5vdmVybGF5LnJlc2l6ZSgpfX0pLmNzcygicG9zaXRpb24iLGcpLmZpbmQo
Ii51aS1yZXNpemFibGUtc2UiKS5hZGRDbGFzcygidWktaWNvbiB1aS1pY29uLWdyaXAtZGlhZ29u
YWwtc2UiKX0sX21pbkhlaWdodDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucztyZXR1cm4g
YS5oZWlnaHQ9PT0iYXV0byI/YS5taW5IZWlnaHQ6TWF0aC5taW4oYS5taW5IZWlnaHQsYS5oZWln
aHQpfSxfcG9zaXRpb246ZnVuY3Rpb24oYSl7dmFyIGI9W10sZD1bMCwwXSxlO2lmKGEpe2lmKHR5
cGVvZiBhPT09InN0cmluZyJ8fHR5cGVvZiBhPT09Im9iamVjdCImJiIwImluIGEpe2I9YS5zcGxp
dD9hLnNwbGl0KCIgIik6W2FbMF0sYVsxXV07aWYoYi5sZW5ndGg9PT0KKzEpYlsxXT1iWzBdO2Mu
ZWFjaChbImxlZnQiLCJ0b3AiXSxmdW5jdGlvbihnLGYpe2lmKCtiW2ddPT09YltnXSl7ZFtnXT1i
W2ddO2JbZ109Zn19KTthPXtteTpiLmpvaW4oIiAiKSxhdDpiLmpvaW4oIiAiKSxvZmZzZXQ6ZC5q
b2luKCIgIil9fWE9Yy5leHRlbmQoe30sYy51aS5kaWFsb2cucHJvdG90eXBlLm9wdGlvbnMucG9z
aXRpb24sYSl9ZWxzZSBhPWMudWkuZGlhbG9nLnByb3RvdHlwZS5vcHRpb25zLnBvc2l0aW9uOyhl
PXRoaXMudWlEaWFsb2cuaXMoIjp2aXNpYmxlIikpfHx0aGlzLnVpRGlhbG9nLnNob3coKTt0aGlz
LnVpRGlhbG9nLmNzcyh7dG9wOjAsbGVmdDowfSkucG9zaXRpb24oYy5leHRlbmQoe29mOndpbmRv
d30sYSkpO2V8fHRoaXMudWlEaWFsb2cuaGlkZSgpfSxfc2V0T3B0aW9uczpmdW5jdGlvbihhKXt2
YXIgYj10aGlzLGQ9e30sZT1mYWxzZTtjLmVhY2goYSxmdW5jdGlvbihnLGYpe2IuX3NldE9wdGlv
bihnLGYpO2lmKGcgaW4gayllPXRydWU7aWYoZyBpbgorbClkW2ddPWZ9KTtlJiZ0aGlzLl9zaXpl
KCk7dGhpcy51aURpYWxvZy5pcygiOmRhdGEocmVzaXphYmxlKSIpJiZ0aGlzLnVpRGlhbG9nLnJl
c2l6YWJsZSgib3B0aW9uIixkKX0sX3NldE9wdGlvbjpmdW5jdGlvbihhLGIpe3ZhciBkPXRoaXMs
ZT1kLnVpRGlhbG9nO3N3aXRjaChhKXtjYXNlICJiZWZvcmVjbG9zZSI6YT0iYmVmb3JlQ2xvc2Ui
O2JyZWFrO2Nhc2UgImJ1dHRvbnMiOmQuX2NyZWF0ZUJ1dHRvbnMoYik7YnJlYWs7Y2FzZSAiY2xv
c2VUZXh0IjpkLnVpRGlhbG9nVGl0bGViYXJDbG9zZVRleHQudGV4dCgiIitiKTticmVhaztjYXNl
ICJkaWFsb2dDbGFzcyI6ZS5yZW1vdmVDbGFzcyhkLm9wdGlvbnMuZGlhbG9nQ2xhc3MpLmFkZENs
YXNzKCJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwg
IitiKTticmVhaztjYXNlICJkaXNhYmxlZCI6Yj9lLmFkZENsYXNzKCJ1aS1kaWFsb2ctZGlzYWJs
ZWQiKTplLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctZGlzYWJsZWQiKTsKK2JyZWFrO2Nhc2UgImRy
YWdnYWJsZSI6dmFyIGc9ZS5pcygiOmRhdGEoZHJhZ2dhYmxlKSIpO2cmJiFiJiZlLmRyYWdnYWJs
ZSgiZGVzdHJveSIpOyFnJiZiJiZkLl9tYWtlRHJhZ2dhYmxlKCk7YnJlYWs7Y2FzZSAicG9zaXRp
b24iOmQuX3Bvc2l0aW9uKGIpO2JyZWFrO2Nhc2UgInJlc2l6YWJsZSI6KGc9ZS5pcygiOmRhdGEo
cmVzaXphYmxlKSIpKSYmIWImJmUucmVzaXphYmxlKCJkZXN0cm95Iik7ZyYmdHlwZW9mIGI9PT0i
c3RyaW5nIiYmZS5yZXNpemFibGUoIm9wdGlvbiIsImhhbmRsZXMiLGIpOyFnJiZiIT09ZmFsc2Um
JmQuX21ha2VSZXNpemFibGUoYik7YnJlYWs7Y2FzZSAidGl0bGUiOmMoIi51aS1kaWFsb2ctdGl0
bGUiLGQudWlEaWFsb2dUaXRsZWJhcikuaHRtbCgiIisoYnx8IiYjMTYwOyIpKTticmVha31jLldp
ZGdldC5wcm90b3R5cGUuX3NldE9wdGlvbi5hcHBseShkLGFyZ3VtZW50cyl9LF9zaXplOmZ1bmN0
aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLGIsZCxlPQordGhpcy51aURpYWxvZy5pcygiOnZpc2li
bGUiKTt0aGlzLmVsZW1lbnQuc2hvdygpLmNzcyh7d2lkdGg6ImF1dG8iLG1pbkhlaWdodDowLGhl
aWdodDowfSk7aWYoYS5taW5XaWR0aD5hLndpZHRoKWEud2lkdGg9YS5taW5XaWR0aDtiPXRoaXMu
dWlEaWFsb2cuY3NzKHtoZWlnaHQ6ImF1dG8iLHdpZHRoOmEud2lkdGh9KS5oZWlnaHQoKTtkPU1h
dGgubWF4KDAsYS5taW5IZWlnaHQtYik7aWYoYS5oZWlnaHQ9PT0iYXV0byIpaWYoYy5zdXBwb3J0
Lm1pbkhlaWdodCl0aGlzLmVsZW1lbnQuY3NzKHttaW5IZWlnaHQ6ZCxoZWlnaHQ6ImF1dG8ifSk7
ZWxzZXt0aGlzLnVpRGlhbG9nLnNob3coKTthPXRoaXMuZWxlbWVudC5jc3MoImhlaWdodCIsImF1
dG8iKS5oZWlnaHQoKTtlfHx0aGlzLnVpRGlhbG9nLmhpZGUoKTt0aGlzLmVsZW1lbnQuaGVpZ2h0
KE1hdGgubWF4KGEsZCkpfWVsc2UgdGhpcy5lbGVtZW50LmhlaWdodChNYXRoLm1heChhLmhlaWdo
dC1iLDApKTt0aGlzLnVpRGlhbG9nLmlzKCI6ZGF0YShyZXNpemFibGUpIikmJgordGhpcy51aURp
YWxvZy5yZXNpemFibGUoIm9wdGlvbiIsIm1pbkhlaWdodCIsdGhpcy5fbWluSGVpZ2h0KCkpfX0p
O2MuZXh0ZW5kKGMudWkuZGlhbG9nLHt2ZXJzaW9uOiIxLjguMTAiLHV1aWQ6MCxtYXhaOjAsZ2V0
VGl0bGVJZDpmdW5jdGlvbihhKXthPWEuYXR0cigiaWQiKTtpZighYSl7dGhpcy51dWlkKz0xO2E9
dGhpcy51dWlkfXJldHVybiJ1aS1kaWFsb2ctdGl0bGUtIithfSxvdmVybGF5OmZ1bmN0aW9uKGEp
e3RoaXMuJGVsPWMudWkuZGlhbG9nLm92ZXJsYXkuY3JlYXRlKGEpfX0pO2MuZXh0ZW5kKGMudWku
ZGlhbG9nLm92ZXJsYXkse2luc3RhbmNlczpbXSxvbGRJbnN0YW5jZXM6W10sbWF4WjowLGV2ZW50
czpjLm1hcCgiZm9jdXMsbW91c2Vkb3duLG1vdXNldXAsa2V5ZG93bixrZXlwcmVzcyxjbGljayIu
c3BsaXQoIiwiKSxmdW5jdGlvbihhKXtyZXR1cm4gYSsiLmRpYWxvZy1vdmVybGF5In0pLmpvaW4o
IiAiKSxjcmVhdGU6ZnVuY3Rpb24oYSl7aWYodGhpcy5pbnN0YW5jZXMubGVuZ3RoPT09CiswKXtz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy51aS5kaWFsb2cub3ZlcmxheS5pbnN0YW5jZXMubGVuZ3Ro
JiZjKGRvY3VtZW50KS5iaW5kKGMudWkuZGlhbG9nLm92ZXJsYXkuZXZlbnRzLGZ1bmN0aW9uKGQp
e2lmKGMoZC50YXJnZXQpLnpJbmRleCgpPGMudWkuZGlhbG9nLm92ZXJsYXkubWF4WilyZXR1cm4g
ZmFsc2V9KX0sMSk7Yyhkb2N1bWVudCkuYmluZCgia2V5ZG93bi5kaWFsb2ctb3ZlcmxheSIsZnVu
Y3Rpb24oZCl7aWYoYS5vcHRpb25zLmNsb3NlT25Fc2NhcGUmJmQua2V5Q29kZSYmZC5rZXlDb2Rl
PT09Yy51aS5rZXlDb2RlLkVTQ0FQRSl7YS5jbG9zZShkKTtkLnByZXZlbnREZWZhdWx0KCl9fSk7
Yyh3aW5kb3cpLmJpbmQoInJlc2l6ZS5kaWFsb2ctb3ZlcmxheSIsYy51aS5kaWFsb2cub3Zlcmxh
eS5yZXNpemUpfXZhciBiPSh0aGlzLm9sZEluc3RhbmNlcy5wb3AoKXx8YygiPGRpdj48L2Rpdj4i
KS5hZGRDbGFzcygidWktd2lkZ2V0LW92ZXJsYXkiKSkuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSku
Y3NzKHt3aWR0aDp0aGlzLndpZHRoKCksCitoZWlnaHQ6dGhpcy5oZWlnaHQoKX0pO2MuZm4uYmdp
ZnJhbWUmJmIuYmdpZnJhbWUoKTt0aGlzLmluc3RhbmNlcy5wdXNoKGIpO3JldHVybiBifSxkZXN0
cm95OmZ1bmN0aW9uKGEpe3ZhciBiPWMuaW5BcnJheShhLHRoaXMuaW5zdGFuY2VzKTtiIT0tMSYm
dGhpcy5vbGRJbnN0YW5jZXMucHVzaCh0aGlzLmluc3RhbmNlcy5zcGxpY2UoYiwxKVswXSk7dGhp
cy5pbnN0YW5jZXMubGVuZ3RoPT09MCYmYyhbZG9jdW1lbnQsd2luZG93XSkudW5iaW5kKCIuZGlh
bG9nLW92ZXJsYXkiKTthLnJlbW92ZSgpO3ZhciBkPTA7Yy5lYWNoKHRoaXMuaW5zdGFuY2VzLGZ1
bmN0aW9uKCl7ZD1NYXRoLm1heChkLHRoaXMuY3NzKCJ6LWluZGV4IikpfSk7dGhpcy5tYXhaPWR9
LGhlaWdodDpmdW5jdGlvbigpe3ZhciBhLGI7aWYoYy5icm93c2VyLm1zaWUmJmMuYnJvd3Nlci52
ZXJzaW9uPDcpe2E9TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdo
dCxkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCk7CitiPU1hdGgubWF4KGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5vZmZzZXRIZWlnaHQsZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQpO3JldHVy
biBhPGI/Yyh3aW5kb3cpLmhlaWdodCgpKyJweCI6YSsicHgifWVsc2UgcmV0dXJuIGMoZG9jdW1l
bnQpLmhlaWdodCgpKyJweCJ9LHdpZHRoOmZ1bmN0aW9uKCl7dmFyIGEsYjtpZihjLmJyb3dzZXIu
bXNpZSYmYy5icm93c2VyLnZlcnNpb248Nyl7YT1NYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuc2Nyb2xsV2lkdGgsZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0aCk7Yj1NYXRoLm1heChk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgsZG9jdW1lbnQuYm9keS5vZmZzZXRX
aWR0aCk7cmV0dXJuIGE8Yj9jKHdpbmRvdykud2lkdGgoKSsicHgiOmErInB4In1lbHNlIHJldHVy
biBjKGRvY3VtZW50KS53aWR0aCgpKyJweCJ9LHJlc2l6ZTpmdW5jdGlvbigpe3ZhciBhPWMoW10p
O2MuZWFjaChjLnVpLmRpYWxvZy5vdmVybGF5Lmluc3RhbmNlcywKK2Z1bmN0aW9uKCl7YT1hLmFk
ZCh0aGlzKX0pO2EuY3NzKHt3aWR0aDowLGhlaWdodDowfSkuY3NzKHt3aWR0aDpjLnVpLmRpYWxv
Zy5vdmVybGF5LndpZHRoKCksaGVpZ2h0OmMudWkuZGlhbG9nLm92ZXJsYXkuaGVpZ2h0KCl9KX19
KTtjLmV4dGVuZChjLnVpLmRpYWxvZy5vdmVybGF5LnByb3RvdHlwZSx7ZGVzdHJveTpmdW5jdGlv
bigpe2MudWkuZGlhbG9nLm92ZXJsYXkuZGVzdHJveSh0aGlzLiRlbCl9fSl9KShqUXVlcnkpOwor
Oy8qCisgKiBqUXVlcnkgVUkgU2xpZGVyIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBB
VVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQg
dW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVy
eS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvU2xpZGVyCisg
KgorICogRGVwZW5kczoKKyAqCWpxdWVyeS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkubW91c2Uu
anMKKyAqCWpxdWVyeS51aS53aWRnZXQuanMKKyAqLworKGZ1bmN0aW9uKGQpe2Qud2lkZ2V0KCJ1
aS5zbGlkZXIiLGQudWkubW91c2Use3dpZGdldEV2ZW50UHJlZml4OiJzbGlkZSIsb3B0aW9uczp7
YW5pbWF0ZTpmYWxzZSxkaXN0YW5jZTowLG1heDoxMDAsbWluOjAsb3JpZW50YXRpb246Imhvcml6
b250YWwiLHJhbmdlOmZhbHNlLHN0ZXA6MSx2YWx1ZTowLHZhbHVlczpudWxsfSxfY3JlYXRlOmZ1
bmN0aW9uKCl7dmFyIGI9dGhpcyxhPXRoaXMub3B0aW9uczt0aGlzLl9tb3VzZVNsaWRpbmc9dGhp
cy5fa2V5U2xpZGluZz1mYWxzZTt0aGlzLl9hbmltYXRlT2ZmPXRydWU7dGhpcy5faGFuZGxlSW5k
ZXg9bnVsbDt0aGlzLl9kZXRlY3RPcmllbnRhdGlvbigpO3RoaXMuX21vdXNlSW5pdCgpO3RoaXMu
ZWxlbWVudC5hZGRDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24r
IiB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCIpO2EuZGlzYWJsZWQm
JnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktc2xpZGVyLWRpc2FibGVkIHVpLWRpc2FibGVkIik7
Cit0aGlzLnJhbmdlPWQoW10pO2lmKGEucmFuZ2Upe2lmKGEucmFuZ2U9PT10cnVlKXt0aGlzLnJh
bmdlPWQoIjxkaXY+PC9kaXY+Iik7aWYoIWEudmFsdWVzKWEudmFsdWVzPVt0aGlzLl92YWx1ZU1p
bigpLHRoaXMuX3ZhbHVlTWluKCldO2lmKGEudmFsdWVzLmxlbmd0aCYmYS52YWx1ZXMubGVuZ3Ro
IT09MilhLnZhbHVlcz1bYS52YWx1ZXNbMF0sYS52YWx1ZXNbMF1dfWVsc2UgdGhpcy5yYW5nZT1k
KCI8ZGl2PjwvZGl2PiIpO3RoaXMucmFuZ2UuYXBwZW5kVG8odGhpcy5lbGVtZW50KS5hZGRDbGFz
cygidWktc2xpZGVyLXJhbmdlIik7aWYoYS5yYW5nZT09PSJtaW4ifHxhLnJhbmdlPT09Im1heCIp
dGhpcy5yYW5nZS5hZGRDbGFzcygidWktc2xpZGVyLXJhbmdlLSIrYS5yYW5nZSk7dGhpcy5yYW5n
ZS5hZGRDbGFzcygidWktd2lkZ2V0LWhlYWRlciIpfWQoIi51aS1zbGlkZXItaGFuZGxlIix0aGlz
LmVsZW1lbnQpLmxlbmd0aD09PTAmJmQoIjxhIGhyZWY9JyMnPjwvYT4iKS5hcHBlbmRUbyh0aGlz
LmVsZW1lbnQpLmFkZENsYXNzKCJ1aS1zbGlkZXItaGFuZGxlIik7CitpZihhLnZhbHVlcyYmYS52
YWx1ZXMubGVuZ3RoKWZvcig7ZCgiLnVpLXNsaWRlci1oYW5kbGUiLHRoaXMuZWxlbWVudCkubGVu
Z3RoPGEudmFsdWVzLmxlbmd0aDspZCgiPGEgaHJlZj0nIyc+PC9hPiIpLmFwcGVuZFRvKHRoaXMu
ZWxlbWVudCkuYWRkQ2xhc3MoInVpLXNsaWRlci1oYW5kbGUiKTt0aGlzLmhhbmRsZXM9ZCgiLnVp
LXNsaWRlci1oYW5kbGUiLHRoaXMuZWxlbWVudCkuYWRkQ2xhc3MoInVpLXN0YXRlLWRlZmF1bHQg
dWktY29ybmVyLWFsbCIpO3RoaXMuaGFuZGxlPXRoaXMuaGFuZGxlcy5lcSgwKTt0aGlzLmhhbmRs
ZXMuYWRkKHRoaXMucmFuZ2UpLmZpbHRlcigiYSIpLmNsaWNrKGZ1bmN0aW9uKGMpe2MucHJldmVu
dERlZmF1bHQoKX0pLmhvdmVyKGZ1bmN0aW9uKCl7YS5kaXNhYmxlZHx8ZCh0aGlzKS5hZGRDbGFz
cygidWktc3RhdGUtaG92ZXIiKX0sZnVuY3Rpb24oKXtkKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1z
dGF0ZS1ob3ZlciIpfSkuZm9jdXMoZnVuY3Rpb24oKXtpZihhLmRpc2FibGVkKWQodGhpcykuYmx1
cigpOworZWxzZXtkKCIudWktc2xpZGVyIC51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1
aS1zdGF0ZS1mb2N1cyIpO2QodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9fSkuYmx1
cihmdW5jdGlvbigpe2QodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9KTt0aGlz
LmhhbmRsZXMuZWFjaChmdW5jdGlvbihjKXtkKHRoaXMpLmRhdGEoImluZGV4LnVpLXNsaWRlci1o
YW5kbGUiLGMpfSk7dGhpcy5oYW5kbGVzLmtleWRvd24oZnVuY3Rpb24oYyl7dmFyIGU9dHJ1ZSxm
PWQodGhpcykuZGF0YSgiaW5kZXgudWktc2xpZGVyLWhhbmRsZSIpLGgsZyxpO2lmKCFiLm9wdGlv
bnMuZGlzYWJsZWQpe3N3aXRjaChjLmtleUNvZGUpe2Nhc2UgZC51aS5rZXlDb2RlLkhPTUU6Y2Fz
ZSBkLnVpLmtleUNvZGUuRU5EOmNhc2UgZC51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSBkLnVpLmtl
eUNvZGUuUEFHRV9ET1dOOmNhc2UgZC51aS5rZXlDb2RlLlVQOmNhc2UgZC51aS5rZXlDb2RlLlJJ
R0hUOmNhc2UgZC51aS5rZXlDb2RlLkRPV046Y2FzZSBkLnVpLmtleUNvZGUuTEVGVDplPQorZmFs
c2U7aWYoIWIuX2tleVNsaWRpbmcpe2IuX2tleVNsaWRpbmc9dHJ1ZTtkKHRoaXMpLmFkZENsYXNz
KCJ1aS1zdGF0ZS1hY3RpdmUiKTtoPWIuX3N0YXJ0KGMsZik7aWYoaD09PWZhbHNlKXJldHVybn1i
cmVha31pPWIub3B0aW9ucy5zdGVwO2g9Yi5vcHRpb25zLnZhbHVlcyYmYi5vcHRpb25zLnZhbHVl
cy5sZW5ndGg/KGc9Yi52YWx1ZXMoZikpOihnPWIudmFsdWUoKSk7c3dpdGNoKGMua2V5Q29kZSl7
Y2FzZSBkLnVpLmtleUNvZGUuSE9NRTpnPWIuX3ZhbHVlTWluKCk7YnJlYWs7Y2FzZSBkLnVpLmtl
eUNvZGUuRU5EOmc9Yi5fdmFsdWVNYXgoKTticmVhaztjYXNlIGQudWkua2V5Q29kZS5QQUdFX1VQ
Omc9Yi5fdHJpbUFsaWduVmFsdWUoaCsoYi5fdmFsdWVNYXgoKS1iLl92YWx1ZU1pbigpKS81KTti
cmVhaztjYXNlIGQudWkua2V5Q29kZS5QQUdFX0RPV046Zz1iLl90cmltQWxpZ25WYWx1ZShoLShi
Ll92YWx1ZU1heCgpLWIuX3ZhbHVlTWluKCkpLzUpO2JyZWFrO2Nhc2UgZC51aS5rZXlDb2RlLlVQ
OmNhc2UgZC51aS5rZXlDb2RlLlJJR0hUOmlmKGg9PT0KK2IuX3ZhbHVlTWF4KCkpcmV0dXJuO2c9
Yi5fdHJpbUFsaWduVmFsdWUoaCtpKTticmVhaztjYXNlIGQudWkua2V5Q29kZS5ET1dOOmNhc2Ug
ZC51aS5rZXlDb2RlLkxFRlQ6aWYoaD09PWIuX3ZhbHVlTWluKCkpcmV0dXJuO2c9Yi5fdHJpbUFs
aWduVmFsdWUoaC1pKTticmVha31iLl9zbGlkZShjLGYsZyk7cmV0dXJuIGV9fSkua2V5dXAoZnVu
Y3Rpb24oYyl7dmFyIGU9ZCh0aGlzKS5kYXRhKCJpbmRleC51aS1zbGlkZXItaGFuZGxlIik7aWYo
Yi5fa2V5U2xpZGluZyl7Yi5fa2V5U2xpZGluZz1mYWxzZTtiLl9zdG9wKGMsZSk7Yi5fY2hhbmdl
KGMsZSk7ZCh0aGlzKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIil9fSk7dGhpcy5fcmVm
cmVzaFZhbHVlKCk7dGhpcy5fYW5pbWF0ZU9mZj1mYWxzZX0sZGVzdHJveTpmdW5jdGlvbigpe3Ro
aXMuaGFuZGxlcy5yZW1vdmUoKTt0aGlzLnJhbmdlLnJlbW92ZSgpO3RoaXMuZWxlbWVudC5yZW1v
dmVDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci1ob3Jpem9udGFsIHVpLXNsaWRlci12ZXJ0aWNh
bCB1aS1zbGlkZXItZGlzYWJsZWQgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5l
ci1hbGwiKS5yZW1vdmVEYXRhKCJzbGlkZXIiKS51bmJpbmQoIi5zbGlkZXIiKTsKK3RoaXMuX21v
dXNlRGVzdHJveSgpO3JldHVybiB0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKGIpe3ZhciBh
PXRoaXMub3B0aW9ucyxjLGUsZixoLGc7aWYoYS5kaXNhYmxlZClyZXR1cm4gZmFsc2U7dGhpcy5l
bGVtZW50U2l6ZT17d2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5l
bGVtZW50Lm91dGVySGVpZ2h0KCl9O3RoaXMuZWxlbWVudE9mZnNldD10aGlzLmVsZW1lbnQub2Zm
c2V0KCk7Yz10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2Uoe3g6Yi5wYWdlWCx5OmIucGFnZVl9KTtl
PXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSsxO2g9dGhpczt0aGlzLmhhbmRsZXMu
ZWFjaChmdW5jdGlvbihpKXt2YXIgaj1NYXRoLmFicyhjLWgudmFsdWVzKGkpKTtpZihlPmope2U9
ajtmPWQodGhpcyk7Zz1pfX0pO2lmKGEucmFuZ2U9PT10cnVlJiZ0aGlzLnZhbHVlcygxKT09PWEu
bWluKXtnKz0xO2Y9ZCh0aGlzLmhhbmRsZXNbZ10pfWlmKHRoaXMuX3N0YXJ0KGIsCitnKT09PWZh
bHNlKXJldHVybiBmYWxzZTt0aGlzLl9tb3VzZVNsaWRpbmc9dHJ1ZTtoLl9oYW5kbGVJbmRleD1n
O2YuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmZvY3VzKCk7YT1mLm9mZnNldCgpO3RoaXMu
X2NsaWNrT2Zmc2V0PSFkKGIudGFyZ2V0KS5wYXJlbnRzKCkuYW5kU2VsZigpLmlzKCIudWktc2xp
ZGVyLWhhbmRsZSIpP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OmIucGFnZVgtYS5sZWZ0LWYud2lkdGgo
KS8yLHRvcDpiLnBhZ2VZLWEudG9wLWYuaGVpZ2h0KCkvMi0ocGFyc2VJbnQoZi5jc3MoImJvcmRl
clRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoZi5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiks
MTApfHwwKSsocGFyc2VJbnQoZi5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCl9O3RoaXMuaGFuZGxl
cy5oYXNDbGFzcygidWktc3RhdGUtaG92ZXIiKXx8dGhpcy5fc2xpZGUoYixnLGMpO3JldHVybiB0
aGlzLl9hbmltYXRlT2ZmPXRydWV9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRydWV9
LAorX21vdXNlRHJhZzpmdW5jdGlvbihiKXt2YXIgYT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2Uo
e3g6Yi5wYWdlWCx5OmIucGFnZVl9KTt0aGlzLl9zbGlkZShiLHRoaXMuX2hhbmRsZUluZGV4LGEp
O3JldHVybiBmYWxzZX0sX21vdXNlU3RvcDpmdW5jdGlvbihiKXt0aGlzLmhhbmRsZXMucmVtb3Zl
Q2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpO3RoaXMuX21vdXNlU2xpZGluZz1mYWxzZTt0aGlzLl9z
dG9wKGIsdGhpcy5faGFuZGxlSW5kZXgpO3RoaXMuX2NoYW5nZShiLHRoaXMuX2hhbmRsZUluZGV4
KTt0aGlzLl9jbGlja09mZnNldD10aGlzLl9oYW5kbGVJbmRleD1udWxsO3JldHVybiB0aGlzLl9h
bmltYXRlT2ZmPWZhbHNlfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVu
dGF0aW9uPXRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJ2ZXJ0aWNhbCI/InZlcnRpY2FsIjoi
aG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oYil7dmFyIGE7CitpZih0
aGlzLm9yaWVudGF0aW9uPT09Imhvcml6b250YWwiKXthPXRoaXMuZWxlbWVudFNpemUud2lkdGg7
Yj1iLngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2Ns
aWNrT2Zmc2V0LmxlZnQ6MCl9ZWxzZXthPXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0O2I9Yi55LXRo
aXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0
LnRvcDowKX1hPWIvYTtpZihhPjEpYT0xO2lmKGE8MClhPTA7aWYodGhpcy5vcmllbnRhdGlvbj09
PSJ2ZXJ0aWNhbCIpYT0xLWE7Yj10aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCk7cmV0
dXJuIHRoaXMuX3RyaW1BbGlnblZhbHVlKHRoaXMuX3ZhbHVlTWluKCkrYSpiKX0sX3N0YXJ0OmZ1
bmN0aW9uKGIsYSl7dmFyIGM9e2hhbmRsZTp0aGlzLmhhbmRsZXNbYV0sdmFsdWU6dGhpcy52YWx1
ZSgpfTtpZih0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCl7
Yy52YWx1ZT0KK3RoaXMudmFsdWVzKGEpO2MudmFsdWVzPXRoaXMudmFsdWVzKCl9cmV0dXJuIHRo
aXMuX3RyaWdnZXIoInN0YXJ0IixiLGMpfSxfc2xpZGU6ZnVuY3Rpb24oYixhLGMpe3ZhciBlO2lm
KHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKXtlPXRoaXMu
dmFsdWVzKGE/MDoxKTtpZih0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aD09PTImJnRoaXMub3B0
aW9ucy5yYW5nZT09PXRydWUmJihhPT09MCYmYz5lfHxhPT09MSYmYzxlKSljPWU7aWYoYyE9PXRo
aXMudmFsdWVzKGEpKXtlPXRoaXMudmFsdWVzKCk7ZVthXT1jO2I9dGhpcy5fdHJpZ2dlcigic2xp
ZGUiLGIse2hhbmRsZTp0aGlzLmhhbmRsZXNbYV0sdmFsdWU6Yyx2YWx1ZXM6ZX0pO3RoaXMudmFs
dWVzKGE/MDoxKTtiIT09ZmFsc2UmJnRoaXMudmFsdWVzKGEsYyx0cnVlKX19ZWxzZSBpZihjIT09
dGhpcy52YWx1ZSgpKXtiPXRoaXMuX3RyaWdnZXIoInNsaWRlIixiLHtoYW5kbGU6dGhpcy5oYW5k
bGVzW2FdLAordmFsdWU6Y30pO2IhPT1mYWxzZSYmdGhpcy52YWx1ZShjKX19LF9zdG9wOmZ1bmN0
aW9uKGIsYSl7dmFyIGM9e2hhbmRsZTp0aGlzLmhhbmRsZXNbYV0sdmFsdWU6dGhpcy52YWx1ZSgp
fTtpZih0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCl7Yy52
YWx1ZT10aGlzLnZhbHVlcyhhKTtjLnZhbHVlcz10aGlzLnZhbHVlcygpfXRoaXMuX3RyaWdnZXIo
InN0b3AiLGIsYyl9LF9jaGFuZ2U6ZnVuY3Rpb24oYixhKXtpZighdGhpcy5fa2V5U2xpZGluZyYm
IXRoaXMuX21vdXNlU2xpZGluZyl7dmFyIGM9e2hhbmRsZTp0aGlzLmhhbmRsZXNbYV0sdmFsdWU6
dGhpcy52YWx1ZSgpfTtpZih0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVz
Lmxlbmd0aCl7Yy52YWx1ZT10aGlzLnZhbHVlcyhhKTtjLnZhbHVlcz10aGlzLnZhbHVlcygpfXRo
aXMuX3RyaWdnZXIoImNoYW5nZSIsYixjKX19LHZhbHVlOmZ1bmN0aW9uKGIpe2lmKGFyZ3VtZW50
cy5sZW5ndGgpe3RoaXMub3B0aW9ucy52YWx1ZT0KK3RoaXMuX3RyaW1BbGlnblZhbHVlKGIpO3Ro
aXMuX3JlZnJlc2hWYWx1ZSgpO3RoaXMuX2NoYW5nZShudWxsLDApfXJldHVybiB0aGlzLl92YWx1
ZSgpfSx2YWx1ZXM6ZnVuY3Rpb24oYixhKXt2YXIgYyxlLGY7aWYoYXJndW1lbnRzLmxlbmd0aD4x
KXt0aGlzLm9wdGlvbnMudmFsdWVzW2JdPXRoaXMuX3RyaW1BbGlnblZhbHVlKGEpO3RoaXMuX3Jl
ZnJlc2hWYWx1ZSgpO3RoaXMuX2NoYW5nZShudWxsLGIpfWlmKGFyZ3VtZW50cy5sZW5ndGgpaWYo
ZC5pc0FycmF5KGFyZ3VtZW50c1swXSkpe2M9dGhpcy5vcHRpb25zLnZhbHVlcztlPWFyZ3VtZW50
c1swXTtmb3IoZj0wO2Y8Yy5sZW5ndGg7Zis9MSl7Y1tmXT10aGlzLl90cmltQWxpZ25WYWx1ZShl
W2ZdKTt0aGlzLl9jaGFuZ2UobnVsbCxmKX10aGlzLl9yZWZyZXNoVmFsdWUoKX1lbHNlIHJldHVy
biB0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aD90aGlzLl92
YWx1ZXMoYik6dGhpcy52YWx1ZSgpOworZWxzZSByZXR1cm4gdGhpcy5fdmFsdWVzKCl9LF9zZXRP
cHRpb246ZnVuY3Rpb24oYixhKXt2YXIgYyxlPTA7aWYoZC5pc0FycmF5KHRoaXMub3B0aW9ucy52
YWx1ZXMpKWU9dGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg7ZC5XaWRnZXQucHJvdG90eXBlLl9z
ZXRPcHRpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO3N3aXRjaChiKXtjYXNlICJkaXNhYmxlZCI6
aWYoYSl7dGhpcy5oYW5kbGVzLmZpbHRlcigiLnVpLXN0YXRlLWZvY3VzIikuYmx1cigpO3RoaXMu
aGFuZGxlcy5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKTt0aGlzLmhhbmRsZXMuYXR0cigi
ZGlzYWJsZWQiLCJkaXNhYmxlZCIpO3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZGlzYWJsZWQi
KX1lbHNle3RoaXMuaGFuZGxlcy5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpO3RoaXMuZWxlbWVudC5y
ZW1vdmVDbGFzcygidWktZGlzYWJsZWQiKX1icmVhaztjYXNlICJvcmllbnRhdGlvbiI6dGhpcy5f
ZGV0ZWN0T3JpZW50YXRpb24oKTsKK3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2xpZGVy
LWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIikuYWRkQ2xhc3MoInVpLXNsaWRlci0iK3Ro
aXMub3JpZW50YXRpb24pO3RoaXMuX3JlZnJlc2hWYWx1ZSgpO2JyZWFrO2Nhc2UgInZhbHVlIjp0
aGlzLl9hbmltYXRlT2ZmPXRydWU7dGhpcy5fcmVmcmVzaFZhbHVlKCk7dGhpcy5fY2hhbmdlKG51
bGwsMCk7dGhpcy5fYW5pbWF0ZU9mZj1mYWxzZTticmVhaztjYXNlICJ2YWx1ZXMiOnRoaXMuX2Fu
aW1hdGVPZmY9dHJ1ZTt0aGlzLl9yZWZyZXNoVmFsdWUoKTtmb3IoYz0wO2M8ZTtjKz0xKXRoaXMu
X2NoYW5nZShudWxsLGMpO3RoaXMuX2FuaW1hdGVPZmY9ZmFsc2U7YnJlYWt9fSxfdmFsdWU6ZnVu
Y3Rpb24oKXt2YXIgYj10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGI9dGhpcy5fdHJpbUFsaWdu
VmFsdWUoYil9LF92YWx1ZXM6ZnVuY3Rpb24oYil7dmFyIGEsYztpZihhcmd1bWVudHMubGVuZ3Ro
KXthPXRoaXMub3B0aW9ucy52YWx1ZXNbYl07CityZXR1cm4gYT10aGlzLl90cmltQWxpZ25WYWx1
ZShhKX1lbHNle2E9dGhpcy5vcHRpb25zLnZhbHVlcy5zbGljZSgpO2ZvcihjPTA7YzxhLmxlbmd0
aDtjKz0xKWFbY109dGhpcy5fdHJpbUFsaWduVmFsdWUoYVtjXSk7cmV0dXJuIGF9fSxfdHJpbUFs
aWduVmFsdWU6ZnVuY3Rpb24oYil7aWYoYjw9dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm4gdGhpcy5f
dmFsdWVNaW4oKTtpZihiPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgp
O3ZhciBhPXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxjPShiLXRoaXMu
X3ZhbHVlTWluKCkpJWE7YWxpZ25WYWx1ZT1iLWM7aWYoTWF0aC5hYnMoYykqMj49YSlhbGlnblZh
bHVlKz1jPjA/YTotYTtyZXR1cm4gcGFyc2VGbG9hdChhbGlnblZhbHVlLnRvRml4ZWQoNSkpfSxf
dmFsdWVNaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLm1pbn0sX3ZhbHVlTWF4OmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5tYXh9LAorX3JlZnJlc2hWYWx1ZTpmdW5jdGlv
bigpe3ZhciBiPXRoaXMub3B0aW9ucy5yYW5nZSxhPXRoaXMub3B0aW9ucyxjPXRoaXMsZT0hdGhp
cy5fYW5pbWF0ZU9mZj9hLmFuaW1hdGU6ZmFsc2UsZixoPXt9LGcsaSxqLGw7aWYodGhpcy5vcHRp
b25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgpdGhpcy5oYW5kbGVzLmVhY2go
ZnVuY3Rpb24oayl7Zj0oYy52YWx1ZXMoayktYy5fdmFsdWVNaW4oKSkvKGMuX3ZhbHVlTWF4KCkt
Yy5fdmFsdWVNaW4oKSkqMTAwO2hbYy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIj8ibGVmdCI6
ImJvdHRvbSJdPWYrIiUiO2QodGhpcykuc3RvcCgxLDEpW2U/ImFuaW1hdGUiOiJjc3MiXShoLGEu
YW5pbWF0ZSk7aWYoYy5vcHRpb25zLnJhbmdlPT09dHJ1ZSlpZihjLm9yaWVudGF0aW9uPT09Imhv
cml6b250YWwiKXtpZihrPT09MCljLnJhbmdlLnN0b3AoMSwxKVtlPyJhbmltYXRlIjoiY3NzIl0o
e2xlZnQ6ZisiJSJ9LGEuYW5pbWF0ZSk7CitpZihrPT09MSljLnJhbmdlW2U/ImFuaW1hdGUiOiJj
c3MiXSh7d2lkdGg6Zi1nKyIlIn0se3F1ZXVlOmZhbHNlLGR1cmF0aW9uOmEuYW5pbWF0ZX0pfWVs
c2V7aWYoaz09PTApYy5yYW5nZS5zdG9wKDEsMSlbZT8iYW5pbWF0ZSI6ImNzcyJdKHtib3R0b206
ZisiJSJ9LGEuYW5pbWF0ZSk7aWYoaz09PTEpYy5yYW5nZVtlPyJhbmltYXRlIjoiY3NzIl0oe2hl
aWdodDpmLWcrIiUifSx7cXVldWU6ZmFsc2UsZHVyYXRpb246YS5hbmltYXRlfSl9Zz1mfSk7ZWxz
ZXtpPXRoaXMudmFsdWUoKTtqPXRoaXMuX3ZhbHVlTWluKCk7bD10aGlzLl92YWx1ZU1heCgpO2Y9
bCE9PWo/KGktaikvKGwtaikqMTAwOjA7aFtjLm9yaWVudGF0aW9uPT09Imhvcml6b250YWwiPyJs
ZWZ0IjoiYm90dG9tIl09ZisiJSI7dGhpcy5oYW5kbGUuc3RvcCgxLDEpW2U/ImFuaW1hdGUiOiJj
c3MiXShoLGEuYW5pbWF0ZSk7aWYoYj09PSJtaW4iJiZ0aGlzLm9yaWVudGF0aW9uPT09Imhvcml6
b250YWwiKXRoaXMucmFuZ2Uuc3RvcCgxLAorMSlbZT8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDpm
KyIlIn0sYS5hbmltYXRlKTtpZihiPT09Im1heCImJnRoaXMub3JpZW50YXRpb249PT0iaG9yaXpv
bnRhbCIpdGhpcy5yYW5nZVtlPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1mKyIlIn0se3F1
ZXVlOmZhbHNlLGR1cmF0aW9uOmEuYW5pbWF0ZX0pO2lmKGI9PT0ibWluIiYmdGhpcy5vcmllbnRh
dGlvbj09PSJ2ZXJ0aWNhbCIpdGhpcy5yYW5nZS5zdG9wKDEsMSlbZT8iYW5pbWF0ZSI6ImNzcyJd
KHtoZWlnaHQ6ZisiJSJ9LGEuYW5pbWF0ZSk7aWYoYj09PSJtYXgiJiZ0aGlzLm9yaWVudGF0aW9u
PT09InZlcnRpY2FsIil0aGlzLnJhbmdlW2U/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OjEwMC1m
KyIlIn0se3F1ZXVlOmZhbHNlLGR1cmF0aW9uOmEuYW5pbWF0ZX0pfX19KTtkLmV4dGVuZChkLnVp
LnNsaWRlcix7dmVyc2lvbjoiMS44LjEwIn0pfSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJ
IFRhYnMgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8v
anF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQ
TCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgor
ICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9UYWJzCisgKgorICogRGVwZW5kczoKKyAqCWpx
dWVyeS51aS5jb3JlLmpzCisgKglqcXVlcnkudWkud2lkZ2V0LmpzCisgKi8KKyhmdW5jdGlvbihk
LHApe2Z1bmN0aW9uIHUoKXtyZXR1cm4rK3Z9ZnVuY3Rpb24gdygpe3JldHVybisreH12YXIgdj0w
LHg9MDtkLndpZGdldCgidWkudGFicyIse29wdGlvbnM6e2FkZDpudWxsLGFqYXhPcHRpb25zOm51
bGwsY2FjaGU6ZmFsc2UsY29va2llOm51bGwsY29sbGFwc2libGU6ZmFsc2UsZGlzYWJsZTpudWxs
LGRpc2FibGVkOltdLGVuYWJsZTpudWxsLGV2ZW50OiJjbGljayIsZng6bnVsbCxpZFByZWZpeDoi
dWktdGFicy0iLGxvYWQ6bnVsbCxwYW5lbFRlbXBsYXRlOiI8ZGl2PjwvZGl2PiIscmVtb3ZlOm51
bGwsc2VsZWN0Om51bGwsc2hvdzpudWxsLHNwaW5uZXI6IjxlbT5Mb2FkaW5nJiM4MjMwOzwvZW0+
Iix0YWJUZW1wbGF0ZToiPGxpPjxhIGhyZWY9JyN7aHJlZn0nPjxzcGFuPiN7bGFiZWx9PC9zcGFu
PjwvYT48L2xpPiJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl90YWJpZnkodHJ1ZSl9LF9zZXRP
cHRpb246ZnVuY3Rpb24oYixlKXtpZihiPT0ic2VsZWN0ZWQiKXRoaXMub3B0aW9ucy5jb2xsYXBz
aWJsZSYmCitlPT10aGlzLm9wdGlvbnMuc2VsZWN0ZWR8fHRoaXMuc2VsZWN0KGUpO2Vsc2V7dGhp
cy5vcHRpb25zW2JdPWU7dGhpcy5fdGFiaWZ5KCl9fSxfdGFiSWQ6ZnVuY3Rpb24oYil7cmV0dXJu
IGIudGl0bGUmJmIudGl0bGUucmVwbGFjZSgvXHMvZywiXyIpLnJlcGxhY2UoL1teXHdcdTAwYzAt
XHVGRkZGLV0vZywiIil8fHRoaXMub3B0aW9ucy5pZFByZWZpeCt1KCl9LF9zYW5pdGl6ZVNlbGVj
dG9yOmZ1bmN0aW9uKGIpe3JldHVybiBiLnJlcGxhY2UoLzovZywiXFw6Iil9LF9jb29raWU6ZnVu
Y3Rpb24oKXt2YXIgYj10aGlzLmNvb2tpZXx8KHRoaXMuY29va2llPXRoaXMub3B0aW9ucy5jb29r
aWUubmFtZXx8InVpLXRhYnMtIit3KCkpO3JldHVybiBkLmNvb2tpZS5hcHBseShudWxsLFtiXS5j
b25jYXQoZC5tYWtlQXJyYXkoYXJndW1lbnRzKSkpfSxfdWk6ZnVuY3Rpb24oYixlKXtyZXR1cm57
dGFiOmIscGFuZWw6ZSxpbmRleDp0aGlzLmFuY2hvcnMuaW5kZXgoYil9fSxfY2xlYW51cDpmdW5j
dGlvbigpe3RoaXMubGlzLmZpbHRlcigiLnVpLXN0YXRlLXByb2Nlc3NpbmciKS5yZW1vdmVDbGFz
cygidWktc3RhdGUtcHJvY2Vzc2luZyIpLmZpbmQoInNwYW46ZGF0YShsYWJlbC50YWJzKSIpLmVh
Y2goZnVuY3Rpb24oKXt2YXIgYj0KK2QodGhpcyk7Yi5odG1sKGIuZGF0YSgibGFiZWwudGFicyIp
KS5yZW1vdmVEYXRhKCJsYWJlbC50YWJzIil9KX0sX3RhYmlmeTpmdW5jdGlvbihiKXtmdW5jdGlv
biBlKGcsZil7Zy5jc3MoImRpc3BsYXkiLCIiKTshZC5zdXBwb3J0Lm9wYWNpdHkmJmYub3BhY2l0
eSYmZ1swXS5zdHlsZS5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpfXZhciBhPXRoaXMsYz10aGlz
Lm9wdGlvbnMsaD0vXiMuKy87dGhpcy5saXN0PXRoaXMuZWxlbWVudC5maW5kKCJvbCx1bCIpLmVx
KDApO3RoaXMubGlzPWQoIiA+IGxpOmhhcyhhW2hyZWZdKSIsdGhpcy5saXN0KTt0aGlzLmFuY2hv
cnM9dGhpcy5saXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGQoImEiLHRoaXMpWzBdfSk7dGhpcy5w
YW5lbHM9ZChbXSk7dGhpcy5hbmNob3JzLmVhY2goZnVuY3Rpb24oZyxmKXt2YXIgaT1kKGYpLmF0
dHIoImhyZWYiKSxsPWkuc3BsaXQoIiMiKVswXSxxO2lmKGwmJihsPT09bG9jYXRpb24udG9TdHJp
bmcoKS5zcGxpdCgiIyIpWzBdfHwKKyhxPWQoImJhc2UiKVswXSkmJmw9PT1xLmhyZWYpKXtpPWYu
aGFzaDtmLmhyZWY9aX1pZihoLnRlc3QoaSkpYS5wYW5lbHM9YS5wYW5lbHMuYWRkKGEuZWxlbWVu
dC5maW5kKGEuX3Nhbml0aXplU2VsZWN0b3IoaSkpKTtlbHNlIGlmKGkmJmkhPT0iIyIpe2QuZGF0
YShmLCJocmVmLnRhYnMiLGkpO2QuZGF0YShmLCJsb2FkLnRhYnMiLGkucmVwbGFjZSgvIy4qJC8s
IiIpKTtpPWEuX3RhYklkKGYpO2YuaHJlZj0iIyIraTtmPWEuZWxlbWVudC5maW5kKCIjIitpKTtp
ZighZi5sZW5ndGgpe2Y9ZChjLnBhbmVsVGVtcGxhdGUpLmF0dHIoImlkIixpKS5hZGRDbGFzcygi
dWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIikuaW5zZXJ0
QWZ0ZXIoYS5wYW5lbHNbZy0xXXx8YS5saXN0KTtmLmRhdGEoImRlc3Ryb3kudGFicyIsdHJ1ZSl9
YS5wYW5lbHM9YS5wYW5lbHMuYWRkKGYpfWVsc2UgYy5kaXNhYmxlZC5wdXNoKGcpfSk7aWYoYil7
dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVu
dCB1aS1jb3JuZXItYWxsIik7Cit0aGlzLmxpc3QuYWRkQ2xhc3MoInVpLXRhYnMtbmF2IHVpLWhl
bHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXIt
YWxsIik7dGhpcy5saXMuYWRkQ2xhc3MoInVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCIp
O3RoaXMucGFuZWxzLmFkZENsYXNzKCJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVp
LWNvcm5lci1ib3R0b20iKTtpZihjLnNlbGVjdGVkPT09cCl7bG9jYXRpb24uaGFzaCYmdGhpcy5h
bmNob3JzLmVhY2goZnVuY3Rpb24oZyxmKXtpZihmLmhhc2g9PWxvY2F0aW9uLmhhc2gpe2Muc2Vs
ZWN0ZWQ9ZztyZXR1cm4gZmFsc2V9fSk7aWYodHlwZW9mIGMuc2VsZWN0ZWQhPT0ibnVtYmVyIiYm
Yy5jb29raWUpYy5zZWxlY3RlZD1wYXJzZUludChhLl9jb29raWUoKSwxMCk7aWYodHlwZW9mIGMu
c2VsZWN0ZWQhPT0ibnVtYmVyIiYmdGhpcy5saXMuZmlsdGVyKCIudWktdGFicy1zZWxlY3RlZCIp
Lmxlbmd0aCljLnNlbGVjdGVkPQordGhpcy5saXMuaW5kZXgodGhpcy5saXMuZmlsdGVyKCIudWkt
dGFicy1zZWxlY3RlZCIpKTtjLnNlbGVjdGVkPWMuc2VsZWN0ZWR8fCh0aGlzLmxpcy5sZW5ndGg/
MDotMSl9ZWxzZSBpZihjLnNlbGVjdGVkPT09bnVsbCljLnNlbGVjdGVkPS0xO2Muc2VsZWN0ZWQ9
Yy5zZWxlY3RlZD49MCYmdGhpcy5hbmNob3JzW2Muc2VsZWN0ZWRdfHxjLnNlbGVjdGVkPDA/Yy5z
ZWxlY3RlZDowO2MuZGlzYWJsZWQ9ZC51bmlxdWUoYy5kaXNhYmxlZC5jb25jYXQoZC5tYXAodGhp
cy5saXMuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihnKXtyZXR1cm4gYS5s
aXMuaW5kZXgoZyl9KSkpLnNvcnQoKTtkLmluQXJyYXkoYy5zZWxlY3RlZCxjLmRpc2FibGVkKSE9
LTEmJmMuZGlzYWJsZWQuc3BsaWNlKGQuaW5BcnJheShjLnNlbGVjdGVkLGMuZGlzYWJsZWQpLDEp
O3RoaXMucGFuZWxzLmFkZENsYXNzKCJ1aS10YWJzLWhpZGUiKTt0aGlzLmxpcy5yZW1vdmVDbGFz
cygidWktdGFicy1zZWxlY3RlZCB1aS1zdGF0ZS1hY3RpdmUiKTsKK2lmKGMuc2VsZWN0ZWQ+PTAm
JnRoaXMuYW5jaG9ycy5sZW5ndGgpe2EuZWxlbWVudC5maW5kKGEuX3Nhbml0aXplU2VsZWN0b3Io
YS5hbmNob3JzW2Muc2VsZWN0ZWRdLmhhc2gpKS5yZW1vdmVDbGFzcygidWktdGFicy1oaWRlIik7
dGhpcy5saXMuZXEoYy5zZWxlY3RlZCkuYWRkQ2xhc3MoInVpLXRhYnMtc2VsZWN0ZWQgdWktc3Rh
dGUtYWN0aXZlIik7YS5lbGVtZW50LnF1ZXVlKCJ0YWJzIixmdW5jdGlvbigpe2EuX3RyaWdnZXIo
InNob3ciLG51bGwsYS5fdWkoYS5hbmNob3JzW2Muc2VsZWN0ZWRdLGEuZWxlbWVudC5maW5kKGEu
X3Nhbml0aXplU2VsZWN0b3IoYS5hbmNob3JzW2Muc2VsZWN0ZWRdLmhhc2gpKVswXSkpfSk7dGhp
cy5sb2FkKGMuc2VsZWN0ZWQpfWQod2luZG93KS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7YS5s
aXMuYWRkKGEuYW5jaG9ycykudW5iaW5kKCIudGFicyIpO2EubGlzPWEuYW5jaG9ycz1hLnBhbmVs
cz1udWxsfSl9ZWxzZSBjLnNlbGVjdGVkPXRoaXMubGlzLmluZGV4KHRoaXMubGlzLmZpbHRlcigi
LnVpLXRhYnMtc2VsZWN0ZWQiKSk7Cit0aGlzLmVsZW1lbnRbYy5jb2xsYXBzaWJsZT8iYWRkQ2xh
c3MiOiJyZW1vdmVDbGFzcyJdKCJ1aS10YWJzLWNvbGxhcHNpYmxlIik7Yy5jb29raWUmJnRoaXMu
X2Nvb2tpZShjLnNlbGVjdGVkLGMuY29va2llKTtiPTA7Zm9yKHZhciBqO2o9dGhpcy5saXNbYl07
YisrKWQoailbZC5pbkFycmF5KGIsYy5kaXNhYmxlZCkhPS0xJiYhZChqKS5oYXNDbGFzcygidWkt
dGFicy1zZWxlY3RlZCIpPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0oInVpLXN0YXRlLWRpc2Fi
bGVkIik7Yy5jYWNoZT09PWZhbHNlJiZ0aGlzLmFuY2hvcnMucmVtb3ZlRGF0YSgiY2FjaGUudGFi
cyIpO3RoaXMubGlzLmFkZCh0aGlzLmFuY2hvcnMpLnVuYmluZCgiLnRhYnMiKTtpZihjLmV2ZW50
IT09Im1vdXNlb3ZlciIpe3ZhciBrPWZ1bmN0aW9uKGcsZil7Zi5pcygiOm5vdCgudWktc3RhdGUt
ZGlzYWJsZWQpIikmJmYuYWRkQ2xhc3MoInVpLXN0YXRlLSIrZyl9LG49ZnVuY3Rpb24oZyxmKXtm
LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS0iKworZyl9O3RoaXMubGlzLmJpbmQoIm1vdXNlb3Zlci50
YWJzIixmdW5jdGlvbigpe2soImhvdmVyIixkKHRoaXMpKX0pO3RoaXMubGlzLmJpbmQoIm1vdXNl
b3V0LnRhYnMiLGZ1bmN0aW9uKCl7bigiaG92ZXIiLGQodGhpcykpfSk7dGhpcy5hbmNob3JzLmJp
bmQoImZvY3VzLnRhYnMiLGZ1bmN0aW9uKCl7aygiZm9jdXMiLGQodGhpcykuY2xvc2VzdCgibGki
KSl9KTt0aGlzLmFuY2hvcnMuYmluZCgiYmx1ci50YWJzIixmdW5jdGlvbigpe24oImZvY3VzIixk
KHRoaXMpLmNsb3Nlc3QoImxpIikpfSl9dmFyIG0sbztpZihjLmZ4KWlmKGQuaXNBcnJheShjLmZ4
KSl7bT1jLmZ4WzBdO289Yy5meFsxXX1lbHNlIG09bz1jLmZ4O3ZhciByPW8/ZnVuY3Rpb24oZyxm
KXtkKGcpLmNsb3Nlc3QoImxpIikuYWRkQ2xhc3MoInVpLXRhYnMtc2VsZWN0ZWQgdWktc3RhdGUt
YWN0aXZlIik7Zi5oaWRlKCkucmVtb3ZlQ2xhc3MoInVpLXRhYnMtaGlkZSIpLmFuaW1hdGUobyxv
LmR1cmF0aW9ufHwibm9ybWFsIiwKK2Z1bmN0aW9uKCl7ZShmLG8pO2EuX3RyaWdnZXIoInNob3ci
LG51bGwsYS5fdWkoZyxmWzBdKSl9KX06ZnVuY3Rpb24oZyxmKXtkKGcpLmNsb3Nlc3QoImxpIiku
YWRkQ2xhc3MoInVpLXRhYnMtc2VsZWN0ZWQgdWktc3RhdGUtYWN0aXZlIik7Zi5yZW1vdmVDbGFz
cygidWktdGFicy1oaWRlIik7YS5fdHJpZ2dlcigic2hvdyIsbnVsbCxhLl91aShnLGZbMF0pKX0s
cz1tP2Z1bmN0aW9uKGcsZil7Zi5hbmltYXRlKG0sbS5kdXJhdGlvbnx8Im5vcm1hbCIsZnVuY3Rp
b24oKXthLmxpcy5yZW1vdmVDbGFzcygidWktdGFicy1zZWxlY3RlZCB1aS1zdGF0ZS1hY3RpdmUi
KTtmLmFkZENsYXNzKCJ1aS10YWJzLWhpZGUiKTtlKGYsbSk7YS5lbGVtZW50LmRlcXVldWUoInRh
YnMiKX0pfTpmdW5jdGlvbihnLGYpe2EubGlzLnJlbW92ZUNsYXNzKCJ1aS10YWJzLXNlbGVjdGVk
IHVpLXN0YXRlLWFjdGl2ZSIpO2YuYWRkQ2xhc3MoInVpLXRhYnMtaGlkZSIpO2EuZWxlbWVudC5k
ZXF1ZXVlKCJ0YWJzIil9OwordGhpcy5hbmNob3JzLmJpbmQoYy5ldmVudCsiLnRhYnMiLGZ1bmN0
aW9uKCl7dmFyIGc9dGhpcyxmPWQoZykuY2xvc2VzdCgibGkiKSxpPWEucGFuZWxzLmZpbHRlcigi
Om5vdCgudWktdGFicy1oaWRlKSIpLGw9YS5lbGVtZW50LmZpbmQoYS5fc2FuaXRpemVTZWxlY3Rv
cihnLmhhc2gpKTtpZihmLmhhc0NsYXNzKCJ1aS10YWJzLXNlbGVjdGVkIikmJiFjLmNvbGxhcHNp
YmxlfHxmLmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpfHxmLmhhc0NsYXNzKCJ1aS1zdGF0
ZS1wcm9jZXNzaW5nIil8fGEucGFuZWxzLmZpbHRlcigiOmFuaW1hdGVkIikubGVuZ3RofHxhLl90
cmlnZ2VyKCJzZWxlY3QiLG51bGwsYS5fdWkodGhpcyxsWzBdKSk9PT1mYWxzZSl7dGhpcy5ibHVy
KCk7cmV0dXJuIGZhbHNlfWMuc2VsZWN0ZWQ9YS5hbmNob3JzLmluZGV4KHRoaXMpO2EuYWJvcnQo
KTtpZihjLmNvbGxhcHNpYmxlKWlmKGYuaGFzQ2xhc3MoInVpLXRhYnMtc2VsZWN0ZWQiKSl7Yy5z
ZWxlY3RlZD0KKy0xO2MuY29va2llJiZhLl9jb29raWUoYy5zZWxlY3RlZCxjLmNvb2tpZSk7YS5l
bGVtZW50LnF1ZXVlKCJ0YWJzIixmdW5jdGlvbigpe3MoZyxpKX0pLmRlcXVldWUoInRhYnMiKTt0
aGlzLmJsdXIoKTtyZXR1cm4gZmFsc2V9ZWxzZSBpZighaS5sZW5ndGgpe2MuY29va2llJiZhLl9j
b29raWUoYy5zZWxlY3RlZCxjLmNvb2tpZSk7YS5lbGVtZW50LnF1ZXVlKCJ0YWJzIixmdW5jdGlv
bigpe3IoZyxsKX0pO2EubG9hZChhLmFuY2hvcnMuaW5kZXgodGhpcykpO3RoaXMuYmx1cigpO3Jl
dHVybiBmYWxzZX1jLmNvb2tpZSYmYS5fY29va2llKGMuc2VsZWN0ZWQsYy5jb29raWUpO2lmKGwu
bGVuZ3RoKXtpLmxlbmd0aCYmYS5lbGVtZW50LnF1ZXVlKCJ0YWJzIixmdW5jdGlvbigpe3MoZyxp
KX0pO2EuZWxlbWVudC5xdWV1ZSgidGFicyIsZnVuY3Rpb24oKXtyKGcsbCl9KTthLmxvYWQoYS5h
bmNob3JzLmluZGV4KHRoaXMpKX1lbHNlIHRocm93ImpRdWVyeSBVSSBUYWJzOiBNaXNtYXRjaGlu
ZyBmcmFnbWVudCBpZGVudGlmaWVyLiI7CitkLmJyb3dzZXIubXNpZSYmdGhpcy5ibHVyKCl9KTt0
aGlzLmFuY2hvcnMuYmluZCgiY2xpY2sudGFicyIsZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9KX0s
X2dldEluZGV4OmZ1bmN0aW9uKGIpe2lmKHR5cGVvZiBiPT0ic3RyaW5nIiliPXRoaXMuYW5jaG9y
cy5pbmRleCh0aGlzLmFuY2hvcnMuZmlsdGVyKCJbaHJlZiQ9IitiKyJdIikpO3JldHVybiBifSxk
ZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5vcHRpb25zO3RoaXMuYWJvcnQoKTt0aGlzLmVs
ZW1lbnQudW5iaW5kKCIudGFicyIpLnJlbW92ZUNsYXNzKCJ1aS10YWJzIHVpLXdpZGdldCB1aS13
aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXRhYnMtY29sbGFwc2libGUiKS5yZW1vdmVE
YXRhKCJ0YWJzIik7dGhpcy5saXN0LnJlbW92ZUNsYXNzKCJ1aS10YWJzLW5hdiB1aS1oZWxwZXIt
cmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCIp
O3RoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9CitkLmRhdGEodGhpcywiaHJlZi50
YWJzIik7aWYoZSl0aGlzLmhyZWY9ZTt2YXIgYT1kKHRoaXMpLnVuYmluZCgiLnRhYnMiKTtkLmVh
Y2goWyJocmVmIiwibG9hZCIsImNhY2hlIl0sZnVuY3Rpb24oYyxoKXthLnJlbW92ZURhdGEoaCsi
LnRhYnMiKX0pfSk7dGhpcy5saXMudW5iaW5kKCIudGFicyIpLmFkZCh0aGlzLnBhbmVscykuZWFj
aChmdW5jdGlvbigpe2QuZGF0YSh0aGlzLCJkZXN0cm95LnRhYnMiKT9kKHRoaXMpLnJlbW92ZSgp
OmQodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCB1aS10
YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1ob3ZlciB1aS1zdGF0ZS1mb2N1
cyB1aS1zdGF0ZS1kaXNhYmxlZCB1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNv
cm5lci1ib3R0b20gdWktdGFicy1oaWRlIil9KTtiLmNvb2tpZSYmdGhpcy5fY29va2llKG51bGws
Yi5jb29raWUpO3JldHVybiB0aGlzfSxhZGQ6ZnVuY3Rpb24oYiwKK2UsYSl7aWYoYT09PXApYT10
aGlzLmFuY2hvcnMubGVuZ3RoO3ZhciBjPXRoaXMsaD10aGlzLm9wdGlvbnM7ZT1kKGgudGFiVGVt
cGxhdGUucmVwbGFjZSgvI1x7aHJlZlx9L2csYikucmVwbGFjZSgvI1x7bGFiZWxcfS9nLGUpKTti
PSFiLmluZGV4T2YoIiMiKT9iLnJlcGxhY2UoIiMiLCIiKTp0aGlzLl90YWJJZChkKCJhIixlKVsw
XSk7ZS5hZGRDbGFzcygidWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItdG9wIikuZGF0YSgiZGVz
dHJveS50YWJzIix0cnVlKTt2YXIgaj1jLmVsZW1lbnQuZmluZCgiIyIrYik7ai5sZW5ndGh8fChq
PWQoaC5wYW5lbFRlbXBsYXRlKS5hdHRyKCJpZCIsYikuZGF0YSgiZGVzdHJveS50YWJzIix0cnVl
KSk7ai5hZGRDbGFzcygidWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXIt
Ym90dG9tIHVpLXRhYnMtaGlkZSIpO2lmKGE+PXRoaXMubGlzLmxlbmd0aCl7ZS5hcHBlbmRUbyh0
aGlzLmxpc3QpO2ouYXBwZW5kVG8odGhpcy5saXN0WzBdLnBhcmVudE5vZGUpfWVsc2V7ZS5pbnNl
cnRCZWZvcmUodGhpcy5saXNbYV0pOworai5pbnNlcnRCZWZvcmUodGhpcy5wYW5lbHNbYV0pfWgu
ZGlzYWJsZWQ9ZC5tYXAoaC5kaXNhYmxlZCxmdW5jdGlvbihrKXtyZXR1cm4gaz49YT8rK2s6a30p
O3RoaXMuX3RhYmlmeSgpO2lmKHRoaXMuYW5jaG9ycy5sZW5ndGg9PTEpe2guc2VsZWN0ZWQ9MDtl
LmFkZENsYXNzKCJ1aS10YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSIpO2oucmVtb3ZlQ2xh
c3MoInVpLXRhYnMtaGlkZSIpO3RoaXMuZWxlbWVudC5xdWV1ZSgidGFicyIsZnVuY3Rpb24oKXtj
Ll90cmlnZ2VyKCJzaG93IixudWxsLGMuX3VpKGMuYW5jaG9yc1swXSxjLnBhbmVsc1swXSkpfSk7
dGhpcy5sb2FkKDApfXRoaXMuX3RyaWdnZXIoImFkZCIsbnVsbCx0aGlzLl91aSh0aGlzLmFuY2hv
cnNbYV0sdGhpcy5wYW5lbHNbYV0pKTtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKGIpe2I9
dGhpcy5fZ2V0SW5kZXgoYik7dmFyIGU9dGhpcy5vcHRpb25zLGE9dGhpcy5saXMuZXEoYikucmVt
b3ZlKCksYz10aGlzLnBhbmVscy5lcShiKS5yZW1vdmUoKTsKK2lmKGEuaGFzQ2xhc3MoInVpLXRh
YnMtc2VsZWN0ZWQiKSYmdGhpcy5hbmNob3JzLmxlbmd0aD4xKXRoaXMuc2VsZWN0KGIrKGIrMTx0
aGlzLmFuY2hvcnMubGVuZ3RoPzE6LTEpKTtlLmRpc2FibGVkPWQubWFwKGQuZ3JlcChlLmRpc2Fi
bGVkLGZ1bmN0aW9uKGgpe3JldHVybiBoIT1ifSksZnVuY3Rpb24oaCl7cmV0dXJuIGg+PWI/LS1o
Omh9KTt0aGlzLl90YWJpZnkoKTt0aGlzLl90cmlnZ2VyKCJyZW1vdmUiLG51bGwsdGhpcy5fdWko
YS5maW5kKCJhIilbMF0sY1swXSkpO3JldHVybiB0aGlzfSxlbmFibGU6ZnVuY3Rpb24oYil7Yj10
aGlzLl9nZXRJbmRleChiKTt2YXIgZT10aGlzLm9wdGlvbnM7aWYoZC5pbkFycmF5KGIsZS5kaXNh
YmxlZCkhPS0xKXt0aGlzLmxpcy5lcShiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQi
KTtlLmRpc2FibGVkPWQuZ3JlcChlLmRpc2FibGVkLGZ1bmN0aW9uKGEpe3JldHVybiBhIT1ifSk7
dGhpcy5fdHJpZ2dlcigiZW5hYmxlIixudWxsLAordGhpcy5fdWkodGhpcy5hbmNob3JzW2JdLHRo
aXMucGFuZWxzW2JdKSk7cmV0dXJuIHRoaXN9fSxkaXNhYmxlOmZ1bmN0aW9uKGIpe2I9dGhpcy5f
Z2V0SW5kZXgoYik7dmFyIGU9dGhpcy5vcHRpb25zO2lmKGIhPWUuc2VsZWN0ZWQpe3RoaXMubGlz
LmVxKGIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpO2UuZGlzYWJsZWQucHVzaChiKTtl
LmRpc2FibGVkLnNvcnQoKTt0aGlzLl90cmlnZ2VyKCJkaXNhYmxlIixudWxsLHRoaXMuX3VpKHRo
aXMuYW5jaG9yc1tiXSx0aGlzLnBhbmVsc1tiXSkpfXJldHVybiB0aGlzfSxzZWxlY3Q6ZnVuY3Rp
b24oYil7Yj10aGlzLl9nZXRJbmRleChiKTtpZihiPT0tMSlpZih0aGlzLm9wdGlvbnMuY29sbGFw
c2libGUmJnRoaXMub3B0aW9ucy5zZWxlY3RlZCE9LTEpYj10aGlzLm9wdGlvbnMuc2VsZWN0ZWQ7
ZWxzZSByZXR1cm4gdGhpczt0aGlzLmFuY2hvcnMuZXEoYikudHJpZ2dlcih0aGlzLm9wdGlvbnMu
ZXZlbnQrIi50YWJzIik7cmV0dXJuIHRoaXN9LAorbG9hZDpmdW5jdGlvbihiKXtiPXRoaXMuX2dl
dEluZGV4KGIpO3ZhciBlPXRoaXMsYT10aGlzLm9wdGlvbnMsYz10aGlzLmFuY2hvcnMuZXEoYilb
MF0saD1kLmRhdGEoYywibG9hZC50YWJzIik7dGhpcy5hYm9ydCgpO2lmKCFofHx0aGlzLmVsZW1l
bnQucXVldWUoInRhYnMiKS5sZW5ndGghPT0wJiZkLmRhdGEoYywiY2FjaGUudGFicyIpKXRoaXMu
ZWxlbWVudC5kZXF1ZXVlKCJ0YWJzIik7ZWxzZXt0aGlzLmxpcy5lcShiKS5hZGRDbGFzcygidWkt
c3RhdGUtcHJvY2Vzc2luZyIpO2lmKGEuc3Bpbm5lcil7dmFyIGo9ZCgic3BhbiIsYyk7ai5kYXRh
KCJsYWJlbC50YWJzIixqLmh0bWwoKSkuaHRtbChhLnNwaW5uZXIpfXRoaXMueGhyPWQuYWpheChk
LmV4dGVuZCh7fSxhLmFqYXhPcHRpb25zLHt1cmw6aCxzdWNjZXNzOmZ1bmN0aW9uKGssbil7ZS5l
bGVtZW50LmZpbmQoZS5fc2FuaXRpemVTZWxlY3RvcihjLmhhc2gpKS5odG1sKGspO2UuX2NsZWFu
dXAoKTthLmNhY2hlJiZkLmRhdGEoYywKKyJjYWNoZS50YWJzIix0cnVlKTtlLl90cmlnZ2VyKCJs
b2FkIixudWxsLGUuX3VpKGUuYW5jaG9yc1tiXSxlLnBhbmVsc1tiXSkpO3RyeXthLmFqYXhPcHRp
b25zLnN1Y2Nlc3MoayxuKX1jYXRjaChtKXt9fSxlcnJvcjpmdW5jdGlvbihrLG4pe2UuX2NsZWFu
dXAoKTtlLl90cmlnZ2VyKCJsb2FkIixudWxsLGUuX3VpKGUuYW5jaG9yc1tiXSxlLnBhbmVsc1ti
XSkpO3RyeXthLmFqYXhPcHRpb25zLmVycm9yKGssbixiLGMpfWNhdGNoKG0pe319fSkpO2UuZWxl
bWVudC5kZXF1ZXVlKCJ0YWJzIik7cmV0dXJuIHRoaXN9fSxhYm9ydDpmdW5jdGlvbigpe3RoaXMu
ZWxlbWVudC5xdWV1ZShbXSk7dGhpcy5wYW5lbHMuc3RvcChmYWxzZSx0cnVlKTt0aGlzLmVsZW1l
bnQucXVldWUoInRhYnMiLHRoaXMuZWxlbWVudC5xdWV1ZSgidGFicyIpLnNwbGljZSgtMiwyKSk7
aWYodGhpcy54aHIpe3RoaXMueGhyLmFib3J0KCk7ZGVsZXRlIHRoaXMueGhyfXRoaXMuX2NsZWFu
dXAoKTtyZXR1cm4gdGhpc30sCit1cmw6ZnVuY3Rpb24oYixlKXt0aGlzLmFuY2hvcnMuZXEoYiku
cmVtb3ZlRGF0YSgiY2FjaGUudGFicyIpLmRhdGEoImxvYWQudGFicyIsZSk7cmV0dXJuIHRoaXN9
LGxlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFuY2hvcnMubGVuZ3RofX0pO2QuZXh0ZW5k
KGQudWkudGFicyx7dmVyc2lvbjoiMS44LjEwIn0pO2QuZXh0ZW5kKGQudWkudGFicy5wcm90b3R5
cGUse3JvdGF0aW9uOm51bGwscm90YXRlOmZ1bmN0aW9uKGIsZSl7dmFyIGE9dGhpcyxjPXRoaXMu
b3B0aW9ucyxoPWEuX3JvdGF0ZXx8KGEuX3JvdGF0ZT1mdW5jdGlvbihqKXtjbGVhclRpbWVvdXQo
YS5yb3RhdGlvbik7YS5yb3RhdGlvbj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGs9Yy5zZWxl
Y3RlZDthLnNlbGVjdCgrK2s8YS5hbmNob3JzLmxlbmd0aD9rOjApfSxiKTtqJiZqLnN0b3BQcm9w
YWdhdGlvbigpfSk7ZT1hLl91bnJvdGF0ZXx8KGEuX3Vucm90YXRlPSFlP2Z1bmN0aW9uKGope2ou
Y2xpZW50WCYmCithLnJvdGF0ZShudWxsKX06ZnVuY3Rpb24oKXt0PWMuc2VsZWN0ZWQ7aCgpfSk7
aWYoYil7dGhpcy5lbGVtZW50LmJpbmQoInRhYnNzaG93IixoKTt0aGlzLmFuY2hvcnMuYmluZChj
LmV2ZW50KyIudGFicyIsZSk7aCgpfWVsc2V7Y2xlYXJUaW1lb3V0KGEucm90YXRpb24pO3RoaXMu
ZWxlbWVudC51bmJpbmQoInRhYnNzaG93IixoKTt0aGlzLmFuY2hvcnMudW5iaW5kKGMuZXZlbnQr
Ii50YWJzIixlKTtkZWxldGUgdGhpcy5fcm90YXRlO2RlbGV0ZSB0aGlzLl91bnJvdGF0ZX1yZXR1
cm4gdGhpc319KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBEYXRlcGlja2VyIDEuOC4x
MAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNv
bS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAy
IGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9k
b2NzLmpxdWVyeS5jb20vVUkvRGF0ZXBpY2tlcgorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnku
dWkuY29yZS5qcworICovCisoZnVuY3Rpb24oZCxHKXtmdW5jdGlvbiBLKCl7dGhpcy5kZWJ1Zz1m
YWxzZTt0aGlzLl9jdXJJbnN0PW51bGw7dGhpcy5fa2V5RXZlbnQ9ZmFsc2U7dGhpcy5fZGlzYWJs
ZWRJbnB1dHM9W107dGhpcy5faW5EaWFsb2c9dGhpcy5fZGF0ZXBpY2tlclNob3dpbmc9ZmFsc2U7
dGhpcy5fbWFpbkRpdklkPSJ1aS1kYXRlcGlja2VyLWRpdiI7dGhpcy5faW5saW5lQ2xhc3M9InVp
LWRhdGVwaWNrZXItaW5saW5lIjt0aGlzLl9hcHBlbmRDbGFzcz0idWktZGF0ZXBpY2tlci1hcHBl
bmQiO3RoaXMuX3RyaWdnZXJDbGFzcz0idWktZGF0ZXBpY2tlci10cmlnZ2VyIjt0aGlzLl9kaWFs
b2dDbGFzcz0idWktZGF0ZXBpY2tlci1kaWFsb2ciO3RoaXMuX2Rpc2FibGVDbGFzcz0idWktZGF0
ZXBpY2tlci1kaXNhYmxlZCI7dGhpcy5fdW5zZWxlY3RhYmxlQ2xhc3M9InVpLWRhdGVwaWNrZXIt
dW5zZWxlY3RhYmxlIjt0aGlzLl9jdXJyZW50Q2xhc3M9InVpLWRhdGVwaWNrZXItY3VycmVudC1k
YXkiO3RoaXMuX2RheU92ZXJDbGFzcz0KKyJ1aS1kYXRlcGlja2VyLWRheXMtY2VsbC1vdmVyIjt0
aGlzLnJlZ2lvbmFsPVtdO3RoaXMucmVnaW9uYWxbIiJdPXtjbG9zZVRleHQ6IkRvbmUiLHByZXZU
ZXh0OiJQcmV2IixuZXh0VGV4dDoiTmV4dCIsY3VycmVudFRleHQ6IlRvZGF5Iixtb250aE5hbWVz
OlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5
IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxt
b250aE5hbWVzU2hvcnQ6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwi
LCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxkYXlOYW1lczpbIlN1bmRheSIsIk1vbmRh
eSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0s
ZGF5TmFtZXNTaG9ydDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJd
LGRheU5hbWVzTWluOlsiU3UiLAorIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLHdlZWtI
ZWFkZXI6IldrIixkYXRlRm9ybWF0OiJtbS9kZC95eSIsZmlyc3REYXk6MCxpc1JUTDpmYWxzZSxz
aG93TW9udGhBZnRlclllYXI6ZmFsc2UseWVhclN1ZmZpeDoiIn07dGhpcy5fZGVmYXVsdHM9e3No
b3dPbjoiZm9jdXMiLHNob3dBbmltOiJmYWRlSW4iLHNob3dPcHRpb25zOnt9LGRlZmF1bHREYXRl
Om51bGwsYXBwZW5kVGV4dDoiIixidXR0b25UZXh0OiIuLi4iLGJ1dHRvbkltYWdlOiIiLGJ1dHRv
bkltYWdlT25seTpmYWxzZSxoaWRlSWZOb1ByZXZOZXh0OmZhbHNlLG5hdmlnYXRpb25Bc0RhdGVG
b3JtYXQ6ZmFsc2UsZ290b0N1cnJlbnQ6ZmFsc2UsY2hhbmdlTW9udGg6ZmFsc2UsY2hhbmdlWWVh
cjpmYWxzZSx5ZWFyUmFuZ2U6ImMtMTA6YysxMCIsc2hvd090aGVyTW9udGhzOmZhbHNlLHNlbGVj
dE90aGVyTW9udGhzOmZhbHNlLHNob3dXZWVrOmZhbHNlLGNhbGN1bGF0ZVdlZWs6dGhpcy5pc284
NjAxV2VlayxzaG9ydFllYXJDdXRvZmY6IisxMCIsCittaW5EYXRlOm51bGwsbWF4RGF0ZTpudWxs
LGR1cmF0aW9uOiJmYXN0IixiZWZvcmVTaG93RGF5Om51bGwsYmVmb3JlU2hvdzpudWxsLG9uU2Vs
ZWN0Om51bGwsb25DaGFuZ2VNb250aFllYXI6bnVsbCxvbkNsb3NlOm51bGwsbnVtYmVyT2ZNb250
aHM6MSxzaG93Q3VycmVudEF0UG9zOjAsc3RlcE1vbnRoczoxLHN0ZXBCaWdNb250aHM6MTIsYWx0
RmllbGQ6IiIsYWx0Rm9ybWF0OiIiLGNvbnN0cmFpbklucHV0OnRydWUsc2hvd0J1dHRvblBhbmVs
OmZhbHNlLGF1dG9TaXplOmZhbHNlfTtkLmV4dGVuZCh0aGlzLl9kZWZhdWx0cyx0aGlzLnJlZ2lv
bmFsWyIiXSk7dGhpcy5kcERpdj1kKCc8ZGl2IGlkPSInK3RoaXMuX21haW5EaXZJZCsnIiBjbGFz
cz0idWktZGF0ZXBpY2tlciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNs
ZWFyZml4IHVpLWNvcm5lci1hbGwiPjwvZGl2PicpfWZ1bmN0aW9uIEUoYSxiKXtkLmV4dGVuZChh
LGIpO2Zvcih2YXIgYyBpbiBiKWlmKGJbY109PQorbnVsbHx8YltjXT09RylhW2NdPWJbY107cmV0
dXJuIGF9ZC5leHRlbmQoZC51aSx7ZGF0ZXBpY2tlcjp7dmVyc2lvbjoiMS44LjEwIn19KTt2YXIg
eT0obmV3IERhdGUpLmdldFRpbWUoKTtkLmV4dGVuZChLLnByb3RvdHlwZSx7bWFya2VyQ2xhc3NO
YW1lOiJoYXNEYXRlcGlja2VyIixsb2c6ZnVuY3Rpb24oKXt0aGlzLmRlYnVnJiZjb25zb2xlLmxv
Zy5hcHBseSgiIixhcmd1bWVudHMpfSxfd2lkZ2V0RGF0ZXBpY2tlcjpmdW5jdGlvbigpe3JldHVy
biB0aGlzLmRwRGl2fSxzZXREZWZhdWx0czpmdW5jdGlvbihhKXtFKHRoaXMuX2RlZmF1bHRzLGF8
fHt9KTtyZXR1cm4gdGhpc30sX2F0dGFjaERhdGVwaWNrZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz1u
dWxsO2Zvcih2YXIgZSBpbiB0aGlzLl9kZWZhdWx0cyl7dmFyIGY9YS5nZXRBdHRyaWJ1dGUoImRh
dGU6IitlKTtpZihmKXtjPWN8fHt9O3RyeXtjW2VdPWV2YWwoZil9Y2F0Y2goaCl7Y1tlXT1mfX19
ZT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CitmPWU9PSJkaXYifHxlPT0ic3BhbiI7aWYoIWEu
aWQpe3RoaXMudXVpZCs9MTthLmlkPSJkcCIrdGhpcy51dWlkfXZhciBpPXRoaXMuX25ld0luc3Qo
ZChhKSxmKTtpLnNldHRpbmdzPWQuZXh0ZW5kKHt9LGJ8fHt9LGN8fHt9KTtpZihlPT0iaW5wdXQi
KXRoaXMuX2Nvbm5lY3REYXRlcGlja2VyKGEsaSk7ZWxzZSBmJiZ0aGlzLl9pbmxpbmVEYXRlcGlj
a2VyKGEsaSl9LF9uZXdJbnN0OmZ1bmN0aW9uKGEsYil7cmV0dXJue2lkOmFbMF0uaWQucmVwbGFj
ZSgvKFteQS1aYS16MC05Xy1dKS9nLCJcXFxcJDEiKSxpbnB1dDphLHNlbGVjdGVkRGF5OjAsc2Vs
ZWN0ZWRNb250aDowLHNlbGVjdGVkWWVhcjowLGRyYXdNb250aDowLGRyYXdZZWFyOjAsaW5saW5l
OmIsZHBEaXY6IWI/dGhpcy5kcERpdjpkKCc8ZGl2IGNsYXNzPSInK3RoaXMuX2lubGluZUNsYXNz
KycgdWktZGF0ZXBpY2tlciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNs
ZWFyZml4IHVpLWNvcm5lci1hbGwiPjwvZGl2PicpfX0sCitfY29ubmVjdERhdGVwaWNrZXI6ZnVu
Y3Rpb24oYSxiKXt2YXIgYz1kKGEpO2IuYXBwZW5kPWQoW10pO2IudHJpZ2dlcj1kKFtdKTtpZigh
Yy5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkpe3RoaXMuX2F0dGFjaG1lbnRzKGMsYik7
Yy5hZGRDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkua2V5ZG93bih0aGlzLl9kb0tleURvd24p
LmtleXByZXNzKHRoaXMuX2RvS2V5UHJlc3MpLmtleXVwKHRoaXMuX2RvS2V5VXApLmJpbmQoInNl
dERhdGEuZGF0ZXBpY2tlciIsZnVuY3Rpb24oZSxmLGgpe2Iuc2V0dGluZ3NbZl09aH0pLmJpbmQo
ImdldERhdGEuZGF0ZXBpY2tlciIsZnVuY3Rpb24oZSxmKXtyZXR1cm4gdGhpcy5fZ2V0KGIsZil9
KTt0aGlzLl9hdXRvU2l6ZShiKTtkLmRhdGEoYSwiZGF0ZXBpY2tlciIsYil9fSxfYXR0YWNobWVu
dHM6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9nZXQoYiwiYXBwZW5kVGV4dCIpLGU9dGhpcy5f
Z2V0KGIsImlzUlRMIik7Yi5hcHBlbmQmJgorYi5hcHBlbmQucmVtb3ZlKCk7aWYoYyl7Yi5hcHBl
bmQ9ZCgnPHNwYW4gY2xhc3M9IicrdGhpcy5fYXBwZW5kQ2xhc3MrJyI+JytjKyI8L3NwYW4+Iik7
YVtlPyJiZWZvcmUiOiJhZnRlciJdKGIuYXBwZW5kKX1hLnVuYmluZCgiZm9jdXMiLHRoaXMuX3No
b3dEYXRlcGlja2VyKTtiLnRyaWdnZXImJmIudHJpZ2dlci5yZW1vdmUoKTtjPXRoaXMuX2dldChi
LCJzaG93T24iKTtpZihjPT0iZm9jdXMifHxjPT0iYm90aCIpYS5mb2N1cyh0aGlzLl9zaG93RGF0
ZXBpY2tlcik7aWYoYz09ImJ1dHRvbiJ8fGM9PSJib3RoIil7Yz10aGlzLl9nZXQoYiwiYnV0dG9u
VGV4dCIpO3ZhciBmPXRoaXMuX2dldChiLCJidXR0b25JbWFnZSIpO2IudHJpZ2dlcj1kKHRoaXMu
X2dldChiLCJidXR0b25JbWFnZU9ubHkiKT9kKCI8aW1nLz4iKS5hZGRDbGFzcyh0aGlzLl90cmln
Z2VyQ2xhc3MpLmF0dHIoe3NyYzpmLGFsdDpjLHRpdGxlOmN9KTpkKCc8YnV0dG9uIHR5cGU9ImJ1
dHRvbiI+PC9idXR0b24+JykuYWRkQ2xhc3ModGhpcy5fdHJpZ2dlckNsYXNzKS5odG1sKGY9PQor
IiI/YzpkKCI8aW1nLz4iKS5hdHRyKHtzcmM6ZixhbHQ6Yyx0aXRsZTpjfSkpKTthW2U/ImJlZm9y
ZSI6ImFmdGVyIl0oYi50cmlnZ2VyKTtiLnRyaWdnZXIuY2xpY2soZnVuY3Rpb24oKXtkLmRhdGVw
aWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nJiZkLmRhdGVwaWNrZXIuX2xhc3RJbnB1dD09YVswXT9k
LmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk6ZC5kYXRlcGlja2VyLl9zaG93RGF0ZXBpY2tl
cihhWzBdKTtyZXR1cm4gZmFsc2V9KX19LF9hdXRvU2l6ZTpmdW5jdGlvbihhKXtpZih0aGlzLl9n
ZXQoYSwiYXV0b1NpemUiKSYmIWEuaW5saW5lKXt2YXIgYj1uZXcgRGF0ZSgyMDA5LDExLDIwKSxj
PXRoaXMuX2dldChhLCJkYXRlRm9ybWF0Iik7aWYoYy5tYXRjaCgvW0RNXS8pKXt2YXIgZT1mdW5j
dGlvbihmKXtmb3IodmFyIGg9MCxpPTAsZz0wO2c8Zi5sZW5ndGg7ZysrKWlmKGZbZ10ubGVuZ3Ro
Pmgpe2g9ZltnXS5sZW5ndGg7aT1nfXJldHVybiBpfTtiLnNldE1vbnRoKGUodGhpcy5fZ2V0KGEs
CitjLm1hdGNoKC9NTS8pPyJtb250aE5hbWVzIjoibW9udGhOYW1lc1Nob3J0IikpKTtiLnNldERh
dGUoZSh0aGlzLl9nZXQoYSxjLm1hdGNoKC9ERC8pPyJkYXlOYW1lcyI6ImRheU5hbWVzU2hvcnQi
KSkrMjAtYi5nZXREYXkoKSl9YS5pbnB1dC5hdHRyKCJzaXplIix0aGlzLl9mb3JtYXREYXRlKGEs
YikubGVuZ3RoKX19LF9pbmxpbmVEYXRlcGlja2VyOmZ1bmN0aW9uKGEsYil7dmFyIGM9ZChhKTtp
ZighYy5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkpe2MuYWRkQ2xhc3ModGhpcy5tYXJr
ZXJDbGFzc05hbWUpLmFwcGVuZChiLmRwRGl2KS5iaW5kKCJzZXREYXRhLmRhdGVwaWNrZXIiLGZ1
bmN0aW9uKGUsZixoKXtiLnNldHRpbmdzW2ZdPWh9KS5iaW5kKCJnZXREYXRhLmRhdGVwaWNrZXIi
LGZ1bmN0aW9uKGUsZil7cmV0dXJuIHRoaXMuX2dldChiLGYpfSk7ZC5kYXRhKGEsImRhdGVwaWNr
ZXIiLGIpO3RoaXMuX3NldERhdGUoYix0aGlzLl9nZXREZWZhdWx0RGF0ZShiKSwKK3RydWUpO3Ro
aXMuX3VwZGF0ZURhdGVwaWNrZXIoYik7dGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGIpO2IuZHBEaXYu
c2hvdygpfX0sX2RpYWxvZ0RhdGVwaWNrZXI6ZnVuY3Rpb24oYSxiLGMsZSxmKXthPXRoaXMuX2Rp
YWxvZ0luc3Q7aWYoIWEpe3RoaXMudXVpZCs9MTt0aGlzLl9kaWFsb2dJbnB1dD1kKCc8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9IicrKCJkcCIrdGhpcy51dWlkKSsnIiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyB0b3A6IC0xMDBweDsgd2lkdGg6IDBweDsgei1pbmRleDogLTEwOyIvPicpO3RoaXMu
X2RpYWxvZ0lucHV0LmtleWRvd24odGhpcy5fZG9LZXlEb3duKTtkKCJib2R5IikuYXBwZW5kKHRo
aXMuX2RpYWxvZ0lucHV0KTthPXRoaXMuX2RpYWxvZ0luc3Q9dGhpcy5fbmV3SW5zdCh0aGlzLl9k
aWFsb2dJbnB1dCxmYWxzZSk7YS5zZXR0aW5ncz17fTtkLmRhdGEodGhpcy5fZGlhbG9nSW5wdXRb
MF0sImRhdGVwaWNrZXIiLGEpfUUoYS5zZXR0aW5ncyxlfHx7fSk7CitiPWImJmIuY29uc3RydWN0
b3I9PURhdGU/dGhpcy5fZm9ybWF0RGF0ZShhLGIpOmI7dGhpcy5fZGlhbG9nSW5wdXQudmFsKGIp
O3RoaXMuX3Bvcz1mP2YubGVuZ3RoP2Y6W2YucGFnZVgsZi5wYWdlWV06bnVsbDtpZighdGhpcy5f
cG9zKXRoaXMuX3Bvcz1bZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLzItMTAw
Kyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3Jv
bGxMZWZ0KSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LzItMTUwKyhkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCld
O3RoaXMuX2RpYWxvZ0lucHV0LmNzcygibGVmdCIsdGhpcy5fcG9zWzBdKzIwKyJweCIpLmNzcygi
dG9wIix0aGlzLl9wb3NbMV0rInB4Iik7YS5zZXR0aW5ncy5vblNlbGVjdD1jO3RoaXMuX2luRGlh
bG9nPXRydWU7dGhpcy5kcERpdi5hZGRDbGFzcyh0aGlzLl9kaWFsb2dDbGFzcyk7Cit0aGlzLl9z
aG93RGF0ZXBpY2tlcih0aGlzLl9kaWFsb2dJbnB1dFswXSk7ZC5ibG9ja1VJJiZkLmJsb2NrVUko
dGhpcy5kcERpdik7ZC5kYXRhKHRoaXMuX2RpYWxvZ0lucHV0WzBdLCJkYXRlcGlja2VyIixhKTty
ZXR1cm4gdGhpc30sX2Rlc3Ryb3lEYXRlcGlja2VyOmZ1bmN0aW9uKGEpe3ZhciBiPWQoYSksYz1k
LmRhdGEoYSwiZGF0ZXBpY2tlciIpO2lmKGIuaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUp
KXt2YXIgZT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7ZC5yZW1vdmVEYXRhKGEsImRhdGVwaWNr
ZXIiKTtpZihlPT0iaW5wdXQiKXtjLmFwcGVuZC5yZW1vdmUoKTtjLnRyaWdnZXIucmVtb3ZlKCk7
Yi5yZW1vdmVDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkudW5iaW5kKCJmb2N1cyIsdGhpcy5f
c2hvd0RhdGVwaWNrZXIpLnVuYmluZCgia2V5ZG93biIsdGhpcy5fZG9LZXlEb3duKS51bmJpbmQo
ImtleXByZXNzIix0aGlzLl9kb0tleVByZXNzKS51bmJpbmQoImtleXVwIiwKK3RoaXMuX2RvS2V5
VXApfWVsc2UgaWYoZT09ImRpdiJ8fGU9PSJzcGFuIiliLnJlbW92ZUNsYXNzKHRoaXMubWFya2Vy
Q2xhc3NOYW1lKS5lbXB0eSgpfX0sX2VuYWJsZURhdGVwaWNrZXI6ZnVuY3Rpb24oYSl7dmFyIGI9
ZChhKSxjPWQuZGF0YShhLCJkYXRlcGlja2VyIik7aWYoYi5oYXNDbGFzcyh0aGlzLm1hcmtlckNs
YXNzTmFtZSkpe3ZhciBlPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihlPT0iaW5wdXQiKXth
LmRpc2FibGVkPWZhbHNlO2MudHJpZ2dlci5maWx0ZXIoImJ1dHRvbiIpLmVhY2goZnVuY3Rpb24o
KXt0aGlzLmRpc2FibGVkPWZhbHNlfSkuZW5kKCkuZmlsdGVyKCJpbWciKS5jc3Moe29wYWNpdHk6
IjEuMCIsY3Vyc29yOiIifSl9ZWxzZSBpZihlPT0iZGl2Inx8ZT09InNwYW4iKWIuY2hpbGRyZW4o
Ii4iK3RoaXMuX2lubGluZUNsYXNzKS5jaGlsZHJlbigpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1k
aXNhYmxlZCIpO3RoaXMuX2Rpc2FibGVkSW5wdXRzPWQubWFwKHRoaXMuX2Rpc2FibGVkSW5wdXRz
LAorZnVuY3Rpb24oZil7cmV0dXJuIGY9PWE/bnVsbDpmfSl9fSxfZGlzYWJsZURhdGVwaWNrZXI6
ZnVuY3Rpb24oYSl7dmFyIGI9ZChhKSxjPWQuZGF0YShhLCJkYXRlcGlja2VyIik7aWYoYi5oYXND
bGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkpe3ZhciBlPWEubm9kZU5hbWUudG9Mb3dlckNhc2Uo
KTtpZihlPT0iaW5wdXQiKXthLmRpc2FibGVkPXRydWU7Yy50cmlnZ2VyLmZpbHRlcigiYnV0dG9u
IikuZWFjaChmdW5jdGlvbigpe3RoaXMuZGlzYWJsZWQ9dHJ1ZX0pLmVuZCgpLmZpbHRlcigiaW1n
IikuY3NzKHtvcGFjaXR5OiIwLjUiLGN1cnNvcjoiZGVmYXVsdCJ9KX1lbHNlIGlmKGU9PSJkaXYi
fHxlPT0ic3BhbiIpYi5jaGlsZHJlbigiLiIrdGhpcy5faW5saW5lQ2xhc3MpLmNoaWxkcmVuKCku
YWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik7dGhpcy5fZGlzYWJsZWRJbnB1dHM9ZC5tYXAo
dGhpcy5fZGlzYWJsZWRJbnB1dHMsZnVuY3Rpb24oZil7cmV0dXJuIGY9PWE/bnVsbDoKK2Z9KTt0
aGlzLl9kaXNhYmxlZElucHV0c1t0aGlzLl9kaXNhYmxlZElucHV0cy5sZW5ndGhdPWF9fSxfaXNE
aXNhYmxlZERhdGVwaWNrZXI6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIGZhbHNlO2Zvcih2YXIg
Yj0wO2I8dGhpcy5fZGlzYWJsZWRJbnB1dHMubGVuZ3RoO2IrKylpZih0aGlzLl9kaXNhYmxlZElu
cHV0c1tiXT09YSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9LF9nZXRJbnN0OmZ1bmN0aW9uKGEp
e3RyeXtyZXR1cm4gZC5kYXRhKGEsImRhdGVwaWNrZXIiKX1jYXRjaChiKXt0aHJvdyJNaXNzaW5n
IGluc3RhbmNlIGRhdGEgZm9yIHRoaXMgZGF0ZXBpY2tlciI7fX0sX29wdGlvbkRhdGVwaWNrZXI6
ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPXRoaXMuX2dldEluc3QoYSk7aWYoYXJndW1lbnRzLmxlbmd0
aD09MiYmdHlwZW9mIGI9PSJzdHJpbmciKXJldHVybiBiPT0iZGVmYXVsdHMiP2QuZXh0ZW5kKHt9
LGQuZGF0ZXBpY2tlci5fZGVmYXVsdHMpOmU/Yj09ImFsbCI/ZC5leHRlbmQoe30sCitlLnNldHRp
bmdzKTp0aGlzLl9nZXQoZSxiKTpudWxsO3ZhciBmPWJ8fHt9O2lmKHR5cGVvZiBiPT0ic3RyaW5n
Iil7Zj17fTtmW2JdPWN9aWYoZSl7dGhpcy5fY3VySW5zdD09ZSYmdGhpcy5faGlkZURhdGVwaWNr
ZXIoKTt2YXIgaD10aGlzLl9nZXREYXRlRGF0ZXBpY2tlcihhLHRydWUpO0UoZS5zZXR0aW5ncyxm
KTt0aGlzLl9hdHRhY2htZW50cyhkKGEpLGUpO3RoaXMuX2F1dG9TaXplKGUpO3RoaXMuX3NldERh
dGVEYXRlcGlja2VyKGEsaCk7dGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihlKX19LF9jaGFuZ2VEYXRl
cGlja2VyOmZ1bmN0aW9uKGEsYixjKXt0aGlzLl9vcHRpb25EYXRlcGlja2VyKGEsYixjKX0sX3Jl
ZnJlc2hEYXRlcGlja2VyOmZ1bmN0aW9uKGEpeyhhPXRoaXMuX2dldEluc3QoYSkpJiZ0aGlzLl91
cGRhdGVEYXRlcGlja2VyKGEpfSxfc2V0RGF0ZURhdGVwaWNrZXI6ZnVuY3Rpb24oYSxiKXtpZihh
PXRoaXMuX2dldEluc3QoYSkpe3RoaXMuX3NldERhdGUoYSxiKTsKK3RoaXMuX3VwZGF0ZURhdGVw
aWNrZXIoYSk7dGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGEpfX0sX2dldERhdGVEYXRlcGlja2VyOmZ1
bmN0aW9uKGEsYil7KGE9dGhpcy5fZ2V0SW5zdChhKSkmJiFhLmlubGluZSYmdGhpcy5fc2V0RGF0
ZUZyb21GaWVsZChhLGIpO3JldHVybiBhP3RoaXMuX2dldERhdGUoYSk6bnVsbH0sX2RvS2V5RG93
bjpmdW5jdGlvbihhKXt2YXIgYj1kLmRhdGVwaWNrZXIuX2dldEluc3QoYS50YXJnZXQpLGM9dHJ1
ZSxlPWIuZHBEaXYuaXMoIi51aS1kYXRlcGlja2VyLXJ0bCIpO2IuX2tleUV2ZW50PXRydWU7aWYo
ZC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZylzd2l0Y2goYS5rZXlDb2RlKXtjYXNlIDk6
ZC5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpO2M9ZmFsc2U7YnJlYWs7Y2FzZSAxMzpjPWQo
InRkLiIrZC5kYXRlcGlja2VyLl9kYXlPdmVyQ2xhc3MrIjpub3QoLiIrZC5kYXRlcGlja2VyLl9j
dXJyZW50Q2xhc3MrIikiLGIuZHBEaXYpO2NbMF0/CitkLmRhdGVwaWNrZXIuX3NlbGVjdERheShh
LnRhcmdldCxiLnNlbGVjdGVkTW9udGgsYi5zZWxlY3RlZFllYXIsY1swXSk6ZC5kYXRlcGlja2Vy
Ll9oaWRlRGF0ZXBpY2tlcigpO3JldHVybiBmYWxzZTtjYXNlIDI3OmQuZGF0ZXBpY2tlci5faGlk
ZURhdGVwaWNrZXIoKTticmVhaztjYXNlIDMzOmQuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZShhLnRh
cmdldCxhLmN0cmxLZXk/LWQuZGF0ZXBpY2tlci5fZ2V0KGIsInN0ZXBCaWdNb250aHMiKTotZC5k
YXRlcGlja2VyLl9nZXQoYiwic3RlcE1vbnRocyIpLCJNIik7YnJlYWs7Y2FzZSAzNDpkLmRhdGVw
aWNrZXIuX2FkanVzdERhdGUoYS50YXJnZXQsYS5jdHJsS2V5PytkLmRhdGVwaWNrZXIuX2dldChi
LCJzdGVwQmlnTW9udGhzIik6K2QuZGF0ZXBpY2tlci5fZ2V0KGIsInN0ZXBNb250aHMiKSwiTSIp
O2JyZWFrO2Nhc2UgMzU6aWYoYS5jdHJsS2V5fHxhLm1ldGFLZXkpZC5kYXRlcGlja2VyLl9jbGVh
ckRhdGUoYS50YXJnZXQpO2M9YS5jdHJsS2V5fHwKK2EubWV0YUtleTticmVhaztjYXNlIDM2Omlm
KGEuY3RybEtleXx8YS5tZXRhS2V5KWQuZGF0ZXBpY2tlci5fZ290b1RvZGF5KGEudGFyZ2V0KTtj
PWEuY3RybEtleXx8YS5tZXRhS2V5O2JyZWFrO2Nhc2UgMzc6aWYoYS5jdHJsS2V5fHxhLm1ldGFL
ZXkpZC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGEudGFyZ2V0LGU/KzE6LTEsIkQiKTtjPWEuY3Ry
bEtleXx8YS5tZXRhS2V5O2lmKGEub3JpZ2luYWxFdmVudC5hbHRLZXkpZC5kYXRlcGlja2VyLl9h
ZGp1c3REYXRlKGEudGFyZ2V0LGEuY3RybEtleT8tZC5kYXRlcGlja2VyLl9nZXQoYiwic3RlcEJp
Z01vbnRocyIpOi1kLmRhdGVwaWNrZXIuX2dldChiLCJzdGVwTW9udGhzIiksIk0iKTticmVhaztj
YXNlIDM4OmlmKGEuY3RybEtleXx8YS5tZXRhS2V5KWQuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZShh
LnRhcmdldCwtNywiRCIpO2M9YS5jdHJsS2V5fHxhLm1ldGFLZXk7YnJlYWs7Y2FzZSAzOTppZihh
LmN0cmxLZXl8fGEubWV0YUtleSlkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoYS50YXJnZXQsCitl
Py0xOisxLCJEIik7Yz1hLmN0cmxLZXl8fGEubWV0YUtleTtpZihhLm9yaWdpbmFsRXZlbnQuYWx0
S2V5KWQuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZShhLnRhcmdldCxhLmN0cmxLZXk/K2QuZGF0ZXBp
Y2tlci5fZ2V0KGIsInN0ZXBCaWdNb250aHMiKTorZC5kYXRlcGlja2VyLl9nZXQoYiwic3RlcE1v
bnRocyIpLCJNIik7YnJlYWs7Y2FzZSA0MDppZihhLmN0cmxLZXl8fGEubWV0YUtleSlkLmRhdGVw
aWNrZXIuX2FkanVzdERhdGUoYS50YXJnZXQsKzcsIkQiKTtjPWEuY3RybEtleXx8YS5tZXRhS2V5
O2JyZWFrO2RlZmF1bHQ6Yz1mYWxzZX1lbHNlIGlmKGEua2V5Q29kZT09MzYmJmEuY3RybEtleSlk
LmRhdGVwaWNrZXIuX3Nob3dEYXRlcGlja2VyKHRoaXMpO2Vsc2UgYz1mYWxzZTtpZihjKXthLnBy
ZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKX19LF9kb0tleVByZXNzOmZ1bmN0aW9u
KGEpe3ZhciBiPWQuZGF0ZXBpY2tlci5fZ2V0SW5zdChhLnRhcmdldCk7aWYoZC5kYXRlcGlja2Vy
Ll9nZXQoYiwKKyJjb25zdHJhaW5JbnB1dCIpKXtiPWQuZGF0ZXBpY2tlci5fcG9zc2libGVDaGFy
cyhkLmRhdGVwaWNrZXIuX2dldChiLCJkYXRlRm9ybWF0IikpO3ZhciBjPVN0cmluZy5mcm9tQ2hh
ckNvZGUoYS5jaGFyQ29kZT09Rz9hLmtleUNvZGU6YS5jaGFyQ29kZSk7cmV0dXJuIGEuY3RybEtl
eXx8YS5tZXRhS2V5fHxjPCIgInx8IWJ8fGIuaW5kZXhPZihjKT4tMX19LF9kb0tleVVwOmZ1bmN0
aW9uKGEpe2E9ZC5kYXRlcGlja2VyLl9nZXRJbnN0KGEudGFyZ2V0KTtpZihhLmlucHV0LnZhbCgp
IT1hLmxhc3RWYWwpdHJ5e2lmKGQuZGF0ZXBpY2tlci5wYXJzZURhdGUoZC5kYXRlcGlja2VyLl9n
ZXQoYSwiZGF0ZUZvcm1hdCIpLGEuaW5wdXQ/YS5pbnB1dC52YWwoKTpudWxsLGQuZGF0ZXBpY2tl
ci5fZ2V0Rm9ybWF0Q29uZmlnKGEpKSl7ZC5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKGEp
O2QuZGF0ZXBpY2tlci5fdXBkYXRlQWx0ZXJuYXRlKGEpO2QuZGF0ZXBpY2tlci5fdXBkYXRlRGF0
ZXBpY2tlcihhKX19Y2F0Y2goYil7ZC5kYXRlcGlja2VyLmxvZyhiKX1yZXR1cm4gdHJ1ZX0sCitf
c2hvd0RhdGVwaWNrZXI6ZnVuY3Rpb24oYSl7YT1hLnRhcmdldHx8YTtpZihhLm5vZGVOYW1lLnRv
TG93ZXJDYXNlKCkhPSJpbnB1dCIpYT1kKCJpbnB1dCIsYS5wYXJlbnROb2RlKVswXTtpZighKGQu
ZGF0ZXBpY2tlci5faXNEaXNhYmxlZERhdGVwaWNrZXIoYSl8fGQuZGF0ZXBpY2tlci5fbGFzdElu
cHV0PT1hKSl7dmFyIGI9ZC5kYXRlcGlja2VyLl9nZXRJbnN0KGEpO2QuZGF0ZXBpY2tlci5fY3Vy
SW5zdCYmZC5kYXRlcGlja2VyLl9jdXJJbnN0IT1iJiZkLmRhdGVwaWNrZXIuX2N1ckluc3QuZHBE
aXYuc3RvcCh0cnVlLHRydWUpO3ZhciBjPWQuZGF0ZXBpY2tlci5fZ2V0KGIsImJlZm9yZVNob3ci
KTtFKGIuc2V0dGluZ3MsYz9jLmFwcGx5KGEsW2EsYl0pOnt9KTtiLmxhc3RWYWw9bnVsbDtkLmRh
dGVwaWNrZXIuX2xhc3RJbnB1dD1hO2QuZGF0ZXBpY2tlci5fc2V0RGF0ZUZyb21GaWVsZChiKTtp
ZihkLmRhdGVwaWNrZXIuX2luRGlhbG9nKWEudmFsdWU9IiI7aWYoIWQuZGF0ZXBpY2tlci5fcG9z
KXtkLmRhdGVwaWNrZXIuX3Bvcz0KK2QuZGF0ZXBpY2tlci5fZmluZFBvcyhhKTtkLmRhdGVwaWNr
ZXIuX3Bvc1sxXSs9YS5vZmZzZXRIZWlnaHR9dmFyIGU9ZmFsc2U7ZChhKS5wYXJlbnRzKCkuZWFj
aChmdW5jdGlvbigpe2V8PWQodGhpcykuY3NzKCJwb3NpdGlvbiIpPT0iZml4ZWQiO3JldHVybiFl
fSk7aWYoZSYmZC5icm93c2VyLm9wZXJhKXtkLmRhdGVwaWNrZXIuX3Bvc1swXS09ZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7ZC5kYXRlcGlja2VyLl9wb3NbMV0tPWRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B9Yz17bGVmdDpkLmRhdGVwaWNrZXIuX3Bvc1swXSx0
b3A6ZC5kYXRlcGlja2VyLl9wb3NbMV19O2QuZGF0ZXBpY2tlci5fcG9zPW51bGw7Yi5kcERpdi5l
bXB0eSgpO2IuZHBEaXYuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGRpc3BsYXk6ImJsb2NrIix0
b3A6Ii0xMDAwcHgifSk7ZC5kYXRlcGlja2VyLl91cGRhdGVEYXRlcGlja2VyKGIpO2M9ZC5kYXRl
cGlja2VyLl9jaGVja09mZnNldChiLAorYyxlKTtiLmRwRGl2LmNzcyh7cG9zaXRpb246ZC5kYXRl
cGlja2VyLl9pbkRpYWxvZyYmZC5ibG9ja1VJPyJzdGF0aWMiOmU/ImZpeGVkIjoiYWJzb2x1dGUi
LGRpc3BsYXk6Im5vbmUiLGxlZnQ6Yy5sZWZ0KyJweCIsdG9wOmMudG9wKyJweCJ9KTtpZighYi5p
bmxpbmUpe2M9ZC5kYXRlcGlja2VyLl9nZXQoYiwic2hvd0FuaW0iKTt2YXIgZj1kLmRhdGVwaWNr
ZXIuX2dldChiLCJkdXJhdGlvbiIpLGg9ZnVuY3Rpb24oKXtkLmRhdGVwaWNrZXIuX2RhdGVwaWNr
ZXJTaG93aW5nPXRydWU7dmFyIGk9Yi5kcERpdi5maW5kKCJpZnJhbWUudWktZGF0ZXBpY2tlci1j
b3ZlciIpO2lmKGkubGVuZ3RoKXt2YXIgZz1kLmRhdGVwaWNrZXIuX2dldEJvcmRlcnMoYi5kcERp
dik7aS5jc3Moe2xlZnQ6LWdbMF0sdG9wOi1nWzFdLHdpZHRoOmIuZHBEaXYub3V0ZXJXaWR0aCgp
LGhlaWdodDpiLmRwRGl2Lm91dGVySGVpZ2h0KCl9KX19O2IuZHBEaXYuekluZGV4KGQoYSkueklu
ZGV4KCkrMSk7ZC5lZmZlY3RzJiYKK2QuZWZmZWN0c1tjXT9iLmRwRGl2LnNob3coYyxkLmRhdGVw
aWNrZXIuX2dldChiLCJzaG93T3B0aW9ucyIpLGYsaCk6Yi5kcERpdltjfHwic2hvdyJdKGM/Zjpu
dWxsLGgpO2lmKCFjfHwhZiloKCk7Yi5pbnB1dC5pcygiOnZpc2libGUiKSYmIWIuaW5wdXQuaXMo
IjpkaXNhYmxlZCIpJiZiLmlucHV0LmZvY3VzKCk7ZC5kYXRlcGlja2VyLl9jdXJJbnN0PWJ9fX0s
X3VwZGF0ZURhdGVwaWNrZXI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWQuZGF0ZXBpY2tlci5f
Z2V0Qm9yZGVycyhhLmRwRGl2KTthLmRwRGl2LmVtcHR5KCkuYXBwZW5kKHRoaXMuX2dlbmVyYXRl
SFRNTChhKSk7dmFyIGU9YS5kcERpdi5maW5kKCJpZnJhbWUudWktZGF0ZXBpY2tlci1jb3ZlciIp
O2UubGVuZ3RoJiZlLmNzcyh7bGVmdDotY1swXSx0b3A6LWNbMV0sd2lkdGg6YS5kcERpdi5vdXRl
cldpZHRoKCksaGVpZ2h0OmEuZHBEaXYub3V0ZXJIZWlnaHQoKX0pO2EuZHBEaXYuZmluZCgiYnV0
dG9uLCAudWktZGF0ZXBpY2tlci1wcmV2LCAudWktZGF0ZXBpY2tlci1uZXh0LCAudWktZGF0ZXBp
Y2tlci1jYWxlbmRhciB0ZCBhIikuYmluZCgibW91c2VvdXQiLAorZnVuY3Rpb24oKXtkKHRoaXMp
LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpO3RoaXMuY2xhc3NOYW1lLmluZGV4T2YoInVp
LWRhdGVwaWNrZXItcHJldiIpIT0tMSYmZCh0aGlzKS5yZW1vdmVDbGFzcygidWktZGF0ZXBpY2tl
ci1wcmV2LWhvdmVyIik7dGhpcy5jbGFzc05hbWUuaW5kZXhPZigidWktZGF0ZXBpY2tlci1uZXh0
IikhPS0xJiZkKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1kYXRlcGlja2VyLW5leHQtaG92ZXIiKX0p
LmJpbmQoIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtpZighYi5faXNEaXNhYmxlZERhdGVwaWNrZXIo
YS5pbmxpbmU/YS5kcERpdi5wYXJlbnQoKVswXTphLmlucHV0WzBdKSl7ZCh0aGlzKS5wYXJlbnRz
KCIudWktZGF0ZXBpY2tlci1jYWxlbmRhciIpLmZpbmQoImEiKS5yZW1vdmVDbGFzcygidWktc3Rh
dGUtaG92ZXIiKTtkKHRoaXMpLmFkZENsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpO3RoaXMuY2xhc3NO
YW1lLmluZGV4T2YoInVpLWRhdGVwaWNrZXItcHJldiIpIT0KKy0xJiZkKHRoaXMpLmFkZENsYXNz
KCJ1aS1kYXRlcGlja2VyLXByZXYtaG92ZXIiKTt0aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1k
YXRlcGlja2VyLW5leHQiKSE9LTEmJmQodGhpcykuYWRkQ2xhc3MoInVpLWRhdGVwaWNrZXItbmV4
dC1ob3ZlciIpfX0pLmVuZCgpLmZpbmQoIi4iK3RoaXMuX2RheU92ZXJDbGFzcysiIGEiKS50cmln
Z2VyKCJtb3VzZW92ZXIiKS5lbmQoKTtjPXRoaXMuX2dldE51bWJlck9mTW9udGhzKGEpO2U9Y1sx
XTtlPjE/YS5kcERpdi5hZGRDbGFzcygidWktZGF0ZXBpY2tlci1tdWx0aS0iK2UpLmNzcygid2lk
dGgiLDE3KmUrImVtIik6YS5kcERpdi5yZW1vdmVDbGFzcygidWktZGF0ZXBpY2tlci1tdWx0aS0y
IHVpLWRhdGVwaWNrZXItbXVsdGktMyB1aS1kYXRlcGlja2VyLW11bHRpLTQiKS53aWR0aCgiIik7
YS5kcERpdlsoY1swXSE9MXx8Y1sxXSE9MT8iYWRkIjoicmVtb3ZlIikrIkNsYXNzIl0oInVpLWRh
dGVwaWNrZXItbXVsdGkiKTthLmRwRGl2Wyh0aGlzLl9nZXQoYSwKKyJpc1JUTCIpPyJhZGQiOiJy
ZW1vdmUiKSsiQ2xhc3MiXSgidWktZGF0ZXBpY2tlci1ydGwiKTthPT1kLmRhdGVwaWNrZXIuX2N1
ckluc3QmJmQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcmJmEuaW5wdXQmJmEuaW5wdXQu
aXMoIjp2aXNpYmxlIikmJiFhLmlucHV0LmlzKCI6ZGlzYWJsZWQiKSYmYS5pbnB1dFswXSE9ZG9j
dW1lbnQuYWN0aXZlRWxlbWVudCYmYS5pbnB1dC5mb2N1cygpO2lmKGEueWVhcnNodG1sKXt2YXIg
Zj1hLnllYXJzaHRtbDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zj09PWEueWVhcnNodG1sJiZhLmRw
RGl2LmZpbmQoInNlbGVjdC51aS1kYXRlcGlja2VyLXllYXI6Zmlyc3QiKS5yZXBsYWNlV2l0aChh
LnllYXJzaHRtbCk7Zj1hLnllYXJzaHRtbD1udWxsfSwwKX19LF9nZXRCb3JkZXJzOmZ1bmN0aW9u
KGEpe3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybnt0aGluOjEsbWVkaXVtOjIsdGhpY2s6M31bY118
fGN9O3JldHVybltwYXJzZUZsb2F0KGIoYS5jc3MoImJvcmRlci1sZWZ0LXdpZHRoIikpKSwKK3Bh
cnNlRmxvYXQoYihhLmNzcygiYm9yZGVyLXRvcC13aWR0aCIpKSldfSxfY2hlY2tPZmZzZXQ6ZnVu
Y3Rpb24oYSxiLGMpe3ZhciBlPWEuZHBEaXYub3V0ZXJXaWR0aCgpLGY9YS5kcERpdi5vdXRlckhl
aWdodCgpLGg9YS5pbnB1dD9hLmlucHV0Lm91dGVyV2lkdGgoKTowLGk9YS5pbnB1dD9hLmlucHV0
Lm91dGVySGVpZ2h0KCk6MCxnPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCtk
KGRvY3VtZW50KS5zY3JvbGxMZWZ0KCksaj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50
SGVpZ2h0K2QoZG9jdW1lbnQpLnNjcm9sbFRvcCgpO2IubGVmdC09dGhpcy5fZ2V0KGEsImlzUlRM
Iik/ZS1oOjA7Yi5sZWZ0LT1jJiZiLmxlZnQ9PWEuaW5wdXQub2Zmc2V0KCkubGVmdD9kKGRvY3Vt
ZW50KS5zY3JvbGxMZWZ0KCk6MDtiLnRvcC09YyYmYi50b3A9PWEuaW5wdXQub2Zmc2V0KCkudG9w
K2k/ZChkb2N1bWVudCkuc2Nyb2xsVG9wKCk6MDtiLmxlZnQtPU1hdGgubWluKGIubGVmdCwKK2Iu
bGVmdCtlPmcmJmc+ZT9NYXRoLmFicyhiLmxlZnQrZS1nKTowKTtiLnRvcC09TWF0aC5taW4oYi50
b3AsYi50b3ArZj5qJiZqPmY/TWF0aC5hYnMoZitpKTowKTtyZXR1cm4gYn0sX2ZpbmRQb3M6ZnVu
Y3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMuX2dldCh0aGlzLl9nZXRJbnN0KGEpLCJpc1JUTCIpO2Em
JihhLnR5cGU9PSJoaWRkZW4ifHxhLm5vZGVUeXBlIT0xfHxkLmV4cHIuZmlsdGVycy5oaWRkZW4o
YSkpOylhPWFbYj8icHJldmlvdXNTaWJsaW5nIjoibmV4dFNpYmxpbmciXTthPWQoYSkub2Zmc2V0
KCk7cmV0dXJuW2EubGVmdCxhLnRvcF19LF9oaWRlRGF0ZXBpY2tlcjpmdW5jdGlvbihhKXt2YXIg
Yj10aGlzLl9jdXJJbnN0O2lmKCEoIWJ8fGEmJmIhPWQuZGF0YShhLCJkYXRlcGlja2VyIikpKWlm
KHRoaXMuX2RhdGVwaWNrZXJTaG93aW5nKXthPXRoaXMuX2dldChiLCJzaG93QW5pbSIpO3ZhciBj
PXRoaXMuX2dldChiLCJkdXJhdGlvbiIpLGU9ZnVuY3Rpb24oKXtkLmRhdGVwaWNrZXIuX3RpZHlE
aWFsb2coYik7Cit0aGlzLl9jdXJJbnN0PW51bGx9O2QuZWZmZWN0cyYmZC5lZmZlY3RzW2FdP2Iu
ZHBEaXYuaGlkZShhLGQuZGF0ZXBpY2tlci5fZ2V0KGIsInNob3dPcHRpb25zIiksYyxlKTpiLmRw
RGl2W2E9PSJzbGlkZURvd24iPyJzbGlkZVVwIjphPT0iZmFkZUluIj8iZmFkZU91dCI6ImhpZGUi
XShhP2M6bnVsbCxlKTthfHxlKCk7aWYoYT10aGlzLl9nZXQoYiwib25DbG9zZSIpKWEuYXBwbHko
Yi5pbnB1dD9iLmlucHV0WzBdOm51bGwsW2IuaW5wdXQ/Yi5pbnB1dC52YWwoKToiIixiXSk7dGhp
cy5fZGF0ZXBpY2tlclNob3dpbmc9ZmFsc2U7dGhpcy5fbGFzdElucHV0PW51bGw7aWYodGhpcy5f
aW5EaWFsb2cpe3RoaXMuX2RpYWxvZ0lucHV0LmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0
OiIwIix0b3A6Ii0xMDBweCJ9KTtpZihkLmJsb2NrVUkpe2QudW5ibG9ja1VJKCk7ZCgiYm9keSIp
LmFwcGVuZCh0aGlzLmRwRGl2KX19dGhpcy5faW5EaWFsb2c9ZmFsc2V9fSxfdGlkeURpYWxvZzpm
dW5jdGlvbihhKXthLmRwRGl2LnJlbW92ZUNsYXNzKHRoaXMuX2RpYWxvZ0NsYXNzKS51bmJpbmQo
Ii51aS1kYXRlcGlja2VyLWNhbGVuZGFyIil9LAorX2NoZWNrRXh0ZXJuYWxDbGljazpmdW5jdGlv
bihhKXtpZihkLmRhdGVwaWNrZXIuX2N1ckluc3Qpe2E9ZChhLnRhcmdldCk7YVswXS5pZCE9ZC5k
YXRlcGlja2VyLl9tYWluRGl2SWQmJmEucGFyZW50cygiIyIrZC5kYXRlcGlja2VyLl9tYWluRGl2
SWQpLmxlbmd0aD09MCYmIWEuaGFzQ2xhc3MoZC5kYXRlcGlja2VyLm1hcmtlckNsYXNzTmFtZSkm
JiFhLmhhc0NsYXNzKGQuZGF0ZXBpY2tlci5fdHJpZ2dlckNsYXNzKSYmZC5kYXRlcGlja2VyLl9k
YXRlcGlja2VyU2hvd2luZyYmIShkLmRhdGVwaWNrZXIuX2luRGlhbG9nJiZkLmJsb2NrVUkpJiZk
LmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCl9fSxfYWRqdXN0RGF0ZTpmdW5jdGlvbihhLGIs
Yyl7YT1kKGEpO3ZhciBlPXRoaXMuX2dldEluc3QoYVswXSk7aWYoIXRoaXMuX2lzRGlzYWJsZWRE
YXRlcGlja2VyKGFbMF0pKXt0aGlzLl9hZGp1c3RJbnN0RGF0ZShlLGIrKGM9PSJNIj90aGlzLl9n
ZXQoZSwic2hvd0N1cnJlbnRBdFBvcyIpOgorMCksYyk7dGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihl
KX19LF9nb3RvVG9kYXk6ZnVuY3Rpb24oYSl7YT1kKGEpO3ZhciBiPXRoaXMuX2dldEluc3QoYVsw
XSk7aWYodGhpcy5fZ2V0KGIsImdvdG9DdXJyZW50IikmJmIuY3VycmVudERheSl7Yi5zZWxlY3Rl
ZERheT1iLmN1cnJlbnREYXk7Yi5kcmF3TW9udGg9Yi5zZWxlY3RlZE1vbnRoPWIuY3VycmVudE1v
bnRoO2IuZHJhd1llYXI9Yi5zZWxlY3RlZFllYXI9Yi5jdXJyZW50WWVhcn1lbHNle3ZhciBjPW5l
dyBEYXRlO2Iuc2VsZWN0ZWREYXk9Yy5nZXREYXRlKCk7Yi5kcmF3TW9udGg9Yi5zZWxlY3RlZE1v
bnRoPWMuZ2V0TW9udGgoKTtiLmRyYXdZZWFyPWIuc2VsZWN0ZWRZZWFyPWMuZ2V0RnVsbFllYXIo
KX10aGlzLl9ub3RpZnlDaGFuZ2UoYik7dGhpcy5fYWRqdXN0RGF0ZShhKX0sX3NlbGVjdE1vbnRo
WWVhcjpmdW5jdGlvbihhLGIsYyl7YT1kKGEpO3ZhciBlPXRoaXMuX2dldEluc3QoYVswXSk7ZS5f
c2VsZWN0aW5nTW9udGhZZWFyPQorZmFsc2U7ZVsic2VsZWN0ZWQiKyhjPT0iTSI/Ik1vbnRoIjoi
WWVhciIpXT1lWyJkcmF3IisoYz09Ik0iPyJNb250aCI6IlllYXIiKV09cGFyc2VJbnQoYi5vcHRp
b25zW2Iuc2VsZWN0ZWRJbmRleF0udmFsdWUsMTApO3RoaXMuX25vdGlmeUNoYW5nZShlKTt0aGlz
Ll9hZGp1c3REYXRlKGEpfSxfY2xpY2tNb250aFllYXI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5f
Z2V0SW5zdChkKGEpWzBdKTtiLmlucHV0JiZiLl9zZWxlY3RpbmdNb250aFllYXImJnNldFRpbWVv
dXQoZnVuY3Rpb24oKXtiLmlucHV0LmZvY3VzKCl9LDApO2IuX3NlbGVjdGluZ01vbnRoWWVhcj0h
Yi5fc2VsZWN0aW5nTW9udGhZZWFyfSxfc2VsZWN0RGF5OmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBm
PWQoYSk7aWYoIShkKGUpLmhhc0NsYXNzKHRoaXMuX3Vuc2VsZWN0YWJsZUNsYXNzKXx8dGhpcy5f
aXNEaXNhYmxlZERhdGVwaWNrZXIoZlswXSkpKXtmPXRoaXMuX2dldEluc3QoZlswXSk7Zi5zZWxl
Y3RlZERheT1mLmN1cnJlbnREYXk9CitkKCJhIixlKS5odG1sKCk7Zi5zZWxlY3RlZE1vbnRoPWYu
Y3VycmVudE1vbnRoPWI7Zi5zZWxlY3RlZFllYXI9Zi5jdXJyZW50WWVhcj1jO3RoaXMuX3NlbGVj
dERhdGUoYSx0aGlzLl9mb3JtYXREYXRlKGYsZi5jdXJyZW50RGF5LGYuY3VycmVudE1vbnRoLGYu
Y3VycmVudFllYXIpKX19LF9jbGVhckRhdGU6ZnVuY3Rpb24oYSl7YT1kKGEpO3RoaXMuX2dldElu
c3QoYVswXSk7dGhpcy5fc2VsZWN0RGF0ZShhLCIiKX0sX3NlbGVjdERhdGU6ZnVuY3Rpb24oYSxi
KXthPXRoaXMuX2dldEluc3QoZChhKVswXSk7Yj1iIT1udWxsP2I6dGhpcy5fZm9ybWF0RGF0ZShh
KTthLmlucHV0JiZhLmlucHV0LnZhbChiKTt0aGlzLl91cGRhdGVBbHRlcm5hdGUoYSk7dmFyIGM9
dGhpcy5fZ2V0KGEsIm9uU2VsZWN0Iik7aWYoYyljLmFwcGx5KGEuaW5wdXQ/YS5pbnB1dFswXTpu
dWxsLFtiLGFdKTtlbHNlIGEuaW5wdXQmJmEuaW5wdXQudHJpZ2dlcigiY2hhbmdlIik7aWYoYS5p
bmxpbmUpdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihhKTsKK2Vsc2V7dGhpcy5faGlkZURhdGVwaWNr
ZXIoKTt0aGlzLl9sYXN0SW5wdXQ9YS5pbnB1dFswXTt0eXBlb2YgYS5pbnB1dFswXSE9Im9iamVj
dCImJmEuaW5wdXQuZm9jdXMoKTt0aGlzLl9sYXN0SW5wdXQ9bnVsbH19LF91cGRhdGVBbHRlcm5h
dGU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fZ2V0KGEsImFsdEZpZWxkIik7aWYoYil7dmFyIGM9
dGhpcy5fZ2V0KGEsImFsdEZvcm1hdCIpfHx0aGlzLl9nZXQoYSwiZGF0ZUZvcm1hdCIpLGU9dGhp
cy5fZ2V0RGF0ZShhKSxmPXRoaXMuZm9ybWF0RGF0ZShjLGUsdGhpcy5fZ2V0Rm9ybWF0Q29uZmln
KGEpKTtkKGIpLmVhY2goZnVuY3Rpb24oKXtkKHRoaXMpLnZhbChmKX0pfX0sbm9XZWVrZW5kczpm
dW5jdGlvbihhKXthPWEuZ2V0RGF5KCk7cmV0dXJuW2E+MCYmYTw2LCIiXX0saXNvODYwMVdlZWs6
ZnVuY3Rpb24oYSl7YT1uZXcgRGF0ZShhLmdldFRpbWUoKSk7YS5zZXREYXRlKGEuZ2V0RGF0ZSgp
KzQtKGEuZ2V0RGF5KCl8fDcpKTt2YXIgYj0KK2EuZ2V0VGltZSgpO2Euc2V0TW9udGgoMCk7YS5z
ZXREYXRlKDEpO3JldHVybiBNYXRoLmZsb29yKE1hdGgucm91bmQoKGItYSkvODY0RTUpLzcpKzF9
LHBhcnNlRGF0ZTpmdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbHx8Yj09bnVsbCl0aHJvdyJJbnZh
bGlkIGFyZ3VtZW50cyI7Yj10eXBlb2YgYj09Im9iamVjdCI/Yi50b1N0cmluZygpOmIrIiI7aWYo
Yj09IiIpcmV0dXJuIG51bGw7dmFyIGU9KGM/Yy5zaG9ydFllYXJDdXRvZmY6bnVsbCl8fHRoaXMu
X2RlZmF1bHRzLnNob3J0WWVhckN1dG9mZjtlPXR5cGVvZiBlIT0ic3RyaW5nIj9lOihuZXcgRGF0
ZSkuZ2V0RnVsbFllYXIoKSUxMDArcGFyc2VJbnQoZSwxMCk7Zm9yKHZhciBmPShjP2MuZGF5TmFt
ZXNTaG9ydDpudWxsKXx8dGhpcy5fZGVmYXVsdHMuZGF5TmFtZXNTaG9ydCxoPShjP2MuZGF5TmFt
ZXM6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLmRheU5hbWVzLGk9KGM/Yy5tb250aE5hbWVzU2hvcnQ6
bnVsbCl8fHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXNTaG9ydCwKK2c9KGM/Yy5tb250aE5hbWVz
Om51bGwpfHx0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzLGo9Yz0tMSxsPS0xLHU9LTEsaz1mYWxz
ZSxvPWZ1bmN0aW9uKHApeyhwPXorMTxhLmxlbmd0aCYmYS5jaGFyQXQoeisxKT09cCkmJnorKzty
ZXR1cm4gcH0sbT1mdW5jdGlvbihwKXt2YXIgdj1vKHApO3A9bmV3IFJlZ0V4cCgiXlxcZHsxLCIr
KHA9PSJAIj8xNDpwPT0iISI/MjA6cD09InkiJiZ2PzQ6cD09Im8iPzM6MikrIn0iKTtwPWIuc3Vi
c3RyaW5nKHMpLm1hdGNoKHApO2lmKCFwKXRocm93Ik1pc3NpbmcgbnVtYmVyIGF0IHBvc2l0aW9u
ICIrcztzKz1wWzBdLmxlbmd0aDtyZXR1cm4gcGFyc2VJbnQocFswXSwxMCl9LG49ZnVuY3Rpb24o
cCx2LEgpe3A9byhwKT9IOnY7Zm9yKHY9MDt2PHAubGVuZ3RoO3YrKylpZihiLnN1YnN0cihzLHBb
dl0ubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT1wW3ZdLnRvTG93ZXJDYXNlKCkpe3MrPXBbdl0ubGVu
Z3RoO3JldHVybiB2KzF9dGhyb3ciVW5rbm93biBuYW1lIGF0IHBvc2l0aW9uICIrCitzO30scj1m
dW5jdGlvbigpe2lmKGIuY2hhckF0KHMpIT1hLmNoYXJBdCh6KSl0aHJvdyJVbmV4cGVjdGVkIGxp
dGVyYWwgYXQgcG9zaXRpb24gIitzO3MrK30scz0wLHo9MDt6PGEubGVuZ3RoO3orKylpZihrKWlm
KGEuY2hhckF0KHopPT0iJyImJiFvKCInIikpaz1mYWxzZTtlbHNlIHIoKTtlbHNlIHN3aXRjaChh
LmNoYXJBdCh6KSl7Y2FzZSAiZCI6bD1tKCJkIik7YnJlYWs7Y2FzZSAiRCI6bigiRCIsZixoKTti
cmVhaztjYXNlICJvIjp1PW0oIm8iKTticmVhaztjYXNlICJtIjpqPW0oIm0iKTticmVhaztjYXNl
ICJNIjpqPW4oIk0iLGksZyk7YnJlYWs7Y2FzZSAieSI6Yz1tKCJ5Iik7YnJlYWs7Y2FzZSAiQCI6
dmFyIHc9bmV3IERhdGUobSgiQCIpKTtjPXcuZ2V0RnVsbFllYXIoKTtqPXcuZ2V0TW9udGgoKSsx
O2w9dy5nZXREYXRlKCk7YnJlYWs7Y2FzZSAiISI6dz1uZXcgRGF0ZSgobSgiISIpLXRoaXMuX3Rp
Y2tzVG8xOTcwKS8xRTQpO2M9dy5nZXRGdWxsWWVhcigpO2o9dy5nZXRNb250aCgpKworMTtsPXcu
Z2V0RGF0ZSgpO2JyZWFrO2Nhc2UgIiciOmlmKG8oIiciKSlyKCk7ZWxzZSBrPXRydWU7YnJlYWs7
ZGVmYXVsdDpyKCl9aWYoYz09LTEpYz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7ZWxzZSBpZihj
PDEwMCljKz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCktKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigp
JTEwMCsoYzw9ZT8wOi0xMDApO2lmKHU+LTEpe2o9MTtsPXU7ZG97ZT10aGlzLl9nZXREYXlzSW5N
b250aChjLGotMSk7aWYobDw9ZSlicmVhaztqKys7bC09ZX13aGlsZSgxKX13PXRoaXMuX2RheWxp
Z2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGMsai0xLGwpKTtpZih3LmdldEZ1bGxZZWFyKCkhPWN8
fHcuZ2V0TW9udGgoKSsxIT1qfHx3LmdldERhdGUoKSE9bCl0aHJvdyJJbnZhbGlkIGRhdGUiO3Jl
dHVybiB3fSxBVE9NOiJ5eS1tbS1kZCIsQ09PS0lFOiJELCBkZCBNIHl5IixJU09fODYwMToieXkt
bW0tZGQiLFJGQ184MjI6IkQsIGQgTSB5IixSRkNfODUwOiJERCwgZGQtTS15IiwKK1JGQ18xMDM2
OiJELCBkIE0geSIsUkZDXzExMjM6IkQsIGQgTSB5eSIsUkZDXzI4MjI6IkQsIGQgTSB5eSIsUlNT
OiJELCBkIE0geSIsVElDS1M6IiEiLFRJTUVTVEFNUDoiQCIsVzNDOiJ5eS1tbS1kZCIsX3RpY2tz
VG8xOTcwOig3MTg2ODUrTWF0aC5mbG9vcig0OTIuNSktTWF0aC5mbG9vcigxOS43KStNYXRoLmZs
b29yKDQuOTI1KSkqMjQqNjAqNjAqMUU3LGZvcm1hdERhdGU6ZnVuY3Rpb24oYSxiLGMpe2lmKCFi
KXJldHVybiIiO3ZhciBlPShjP2MuZGF5TmFtZXNTaG9ydDpudWxsKXx8dGhpcy5fZGVmYXVsdHMu
ZGF5TmFtZXNTaG9ydCxmPShjP2MuZGF5TmFtZXM6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLmRheU5h
bWVzLGg9KGM/Yy5tb250aE5hbWVzU2hvcnQ6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFt
ZXNTaG9ydDtjPShjP2MubW9udGhOYW1lczpudWxsKXx8dGhpcy5fZGVmYXVsdHMubW9udGhOYW1l
czt2YXIgaT1mdW5jdGlvbihvKXsobz1rKzE8YS5sZW5ndGgmJgorYS5jaGFyQXQoaysxKT09bykm
JmsrKztyZXR1cm4gb30sZz1mdW5jdGlvbihvLG0sbil7bT0iIittO2lmKGkobykpZm9yKDttLmxl
bmd0aDxuOyltPSIwIittO3JldHVybiBtfSxqPWZ1bmN0aW9uKG8sbSxuLHIpe3JldHVybiBpKG8p
P3JbbV06blttXX0sbD0iIix1PWZhbHNlO2lmKGIpZm9yKHZhciBrPTA7azxhLmxlbmd0aDtrKysp
aWYodSlpZihhLmNoYXJBdChrKT09IiciJiYhaSgiJyIpKXU9ZmFsc2U7ZWxzZSBsKz1hLmNoYXJB
dChrKTtlbHNlIHN3aXRjaChhLmNoYXJBdChrKSl7Y2FzZSAiZCI6bCs9ZygiZCIsYi5nZXREYXRl
KCksMik7YnJlYWs7Y2FzZSAiRCI6bCs9aigiRCIsYi5nZXREYXkoKSxlLGYpO2JyZWFrO2Nhc2Ug
Im8iOmwrPWcoIm8iLChiLmdldFRpbWUoKS0obmV3IERhdGUoYi5nZXRGdWxsWWVhcigpLDAsMCkp
LmdldFRpbWUoKSkvODY0RTUsMyk7YnJlYWs7Y2FzZSAibSI6bCs9ZygibSIsYi5nZXRNb250aCgp
KzEsMik7YnJlYWs7Y2FzZSAiTSI6bCs9aigiTSIsCitiLmdldE1vbnRoKCksaCxjKTticmVhaztj
YXNlICJ5IjpsKz1pKCJ5Iik/Yi5nZXRGdWxsWWVhcigpOihiLmdldFllYXIoKSUxMDA8MTA/IjAi
OiIiKStiLmdldFllYXIoKSUxMDA7YnJlYWs7Y2FzZSAiQCI6bCs9Yi5nZXRUaW1lKCk7YnJlYWs7
Y2FzZSAiISI6bCs9Yi5nZXRUaW1lKCkqMUU0K3RoaXMuX3RpY2tzVG8xOTcwO2JyZWFrO2Nhc2Ug
IiciOmlmKGkoIiciKSlsKz0iJyI7ZWxzZSB1PXRydWU7YnJlYWs7ZGVmYXVsdDpsKz1hLmNoYXJB
dChrKX1yZXR1cm4gbH0sX3Bvc3NpYmxlQ2hhcnM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9
ZmFsc2UsZT1mdW5jdGlvbihoKXsoaD1mKzE8YS5sZW5ndGgmJmEuY2hhckF0KGYrMSk9PWgpJiZm
Kys7cmV0dXJuIGh9LGY9MDtmPGEubGVuZ3RoO2YrKylpZihjKWlmKGEuY2hhckF0KGYpPT0iJyIm
JiFlKCInIikpYz1mYWxzZTtlbHNlIGIrPWEuY2hhckF0KGYpO2Vsc2Ugc3dpdGNoKGEuY2hhckF0
KGYpKXtjYXNlICJkIjpjYXNlICJtIjpjYXNlICJ5IjpjYXNlICJAIjpiKz0KKyIwMTIzNDU2Nzg5
IjticmVhaztjYXNlICJEIjpjYXNlICJNIjpyZXR1cm4gbnVsbDtjYXNlICInIjppZihlKCInIikp
Yis9IiciO2Vsc2UgYz10cnVlO2JyZWFrO2RlZmF1bHQ6Yis9YS5jaGFyQXQoZil9cmV0dXJuIGJ9
LF9nZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5zZXR0aW5nc1tiXSE9PUc/YS5zZXR0aW5nc1ti
XTp0aGlzLl9kZWZhdWx0c1tiXX0sX3NldERhdGVGcm9tRmllbGQ6ZnVuY3Rpb24oYSxiKXtpZihh
LmlucHV0LnZhbCgpIT1hLmxhc3RWYWwpe3ZhciBjPXRoaXMuX2dldChhLCJkYXRlRm9ybWF0Iiks
ZT1hLmxhc3RWYWw9YS5pbnB1dD9hLmlucHV0LnZhbCgpOm51bGwsZixoO2Y9aD10aGlzLl9nZXRE
ZWZhdWx0RGF0ZShhKTt2YXIgaT10aGlzLl9nZXRGb3JtYXRDb25maWcoYSk7dHJ5e2Y9dGhpcy5w
YXJzZURhdGUoYyxlLGkpfHxofWNhdGNoKGcpe3RoaXMubG9nKGcpO2U9Yj8iIjplfWEuc2VsZWN0
ZWREYXk9Zi5nZXREYXRlKCk7YS5kcmF3TW9udGg9YS5zZWxlY3RlZE1vbnRoPQorZi5nZXRNb250
aCgpO2EuZHJhd1llYXI9YS5zZWxlY3RlZFllYXI9Zi5nZXRGdWxsWWVhcigpO2EuY3VycmVudERh
eT1lP2YuZ2V0RGF0ZSgpOjA7YS5jdXJyZW50TW9udGg9ZT9mLmdldE1vbnRoKCk6MDthLmN1cnJl
bnRZZWFyPWU/Zi5nZXRGdWxsWWVhcigpOjA7dGhpcy5fYWRqdXN0SW5zdERhdGUoYSl9fSxfZ2V0
RGVmYXVsdERhdGU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX3Jlc3RyaWN0TWluTWF4KGEsdGhp
cy5fZGV0ZXJtaW5lRGF0ZShhLHRoaXMuX2dldChhLCJkZWZhdWx0RGF0ZSIpLG5ldyBEYXRlKSl9
LF9kZXRlcm1pbmVEYXRlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1mdW5jdGlvbihoKXt2YXIgaT1u
ZXcgRGF0ZTtpLnNldERhdGUoaS5nZXREYXRlKCkraCk7cmV0dXJuIGl9LGY9ZnVuY3Rpb24oaCl7
dHJ5e3JldHVybiBkLmRhdGVwaWNrZXIucGFyc2VEYXRlKGQuZGF0ZXBpY2tlci5fZ2V0KGEsImRh
dGVGb3JtYXQiKSxoLGQuZGF0ZXBpY2tlci5fZ2V0Rm9ybWF0Q29uZmlnKGEpKX1jYXRjaChpKXt9
dmFyIGc9CisoaC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9eYy8pP2QuZGF0ZXBpY2tlci5fZ2V0RGF0
ZShhKTpudWxsKXx8bmV3IERhdGUsaj1nLmdldEZ1bGxZZWFyKCksbD1nLmdldE1vbnRoKCk7Zz1n
LmdldERhdGUoKTtmb3IodmFyIHU9LyhbKy1dP1swLTldKylccyooZHxEfHd8V3xtfE18eXxZKT8v
ZyxrPXUuZXhlYyhoKTtrOyl7c3dpdGNoKGtbMl18fCJkIil7Y2FzZSAiZCI6Y2FzZSAiRCI6Zys9
cGFyc2VJbnQoa1sxXSwxMCk7YnJlYWs7Y2FzZSAidyI6Y2FzZSAiVyI6Zys9cGFyc2VJbnQoa1sx
XSwxMCkqNzticmVhaztjYXNlICJtIjpjYXNlICJNIjpsKz1wYXJzZUludChrWzFdLDEwKTtnPU1h
dGgubWluKGcsZC5kYXRlcGlja2VyLl9nZXREYXlzSW5Nb250aChqLGwpKTticmVhaztjYXNlICJ5
IjpjYXNlICJZIjpqKz1wYXJzZUludChrWzFdLDEwKTtnPU1hdGgubWluKGcsZC5kYXRlcGlja2Vy
Ll9nZXREYXlzSW5Nb250aChqLGwpKTticmVha31rPXUuZXhlYyhoKX1yZXR1cm4gbmV3IERhdGUo
aiwKK2wsZyl9O2lmKGI9KGI9Yj09bnVsbHx8Yj09PSIiP2M6dHlwZW9mIGI9PSJzdHJpbmciP2Yo
Yik6dHlwZW9mIGI9PSJudW1iZXIiP2lzTmFOKGIpP2M6ZShiKTpuZXcgRGF0ZShiLmdldFRpbWUo
KSkpJiZiLnRvU3RyaW5nKCk9PSJJbnZhbGlkIERhdGUiP2M6Yil7Yi5zZXRIb3VycygwKTtiLnNl
dE1pbnV0ZXMoMCk7Yi5zZXRTZWNvbmRzKDApO2Iuc2V0TWlsbGlzZWNvbmRzKDApfXJldHVybiB0
aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChiKX0sX2RheWxpZ2h0U2F2aW5nQWRqdXN0OmZ1bmN0
aW9uKGEpe2lmKCFhKXJldHVybiBudWxsO2Euc2V0SG91cnMoYS5nZXRIb3VycygpPjEyP2EuZ2V0
SG91cnMoKSsyOjApO3JldHVybiBhfSxfc2V0RGF0ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGU9IWIs
Zj1hLnNlbGVjdGVkTW9udGgsaD1hLnNlbGVjdGVkWWVhcjtiPXRoaXMuX3Jlc3RyaWN0TWluTWF4
KGEsdGhpcy5fZGV0ZXJtaW5lRGF0ZShhLGIsbmV3IERhdGUpKTthLnNlbGVjdGVkRGF5PQorYS5j
dXJyZW50RGF5PWIuZ2V0RGF0ZSgpO2EuZHJhd01vbnRoPWEuc2VsZWN0ZWRNb250aD1hLmN1cnJl
bnRNb250aD1iLmdldE1vbnRoKCk7YS5kcmF3WWVhcj1hLnNlbGVjdGVkWWVhcj1hLmN1cnJlbnRZ
ZWFyPWIuZ2V0RnVsbFllYXIoKTtpZigoZiE9YS5zZWxlY3RlZE1vbnRofHxoIT1hLnNlbGVjdGVk
WWVhcikmJiFjKXRoaXMuX25vdGlmeUNoYW5nZShhKTt0aGlzLl9hZGp1c3RJbnN0RGF0ZShhKTtp
ZihhLmlucHV0KWEuaW5wdXQudmFsKGU/IiI6dGhpcy5fZm9ybWF0RGF0ZShhKSl9LF9nZXREYXRl
OmZ1bmN0aW9uKGEpe3JldHVybiFhLmN1cnJlbnRZZWFyfHxhLmlucHV0JiZhLmlucHV0LnZhbCgp
PT0iIj9udWxsOnRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGEuY3VycmVudFll
YXIsYS5jdXJyZW50TW9udGgsYS5jdXJyZW50RGF5KSl9LF9nZW5lcmF0ZUhUTUw6ZnVuY3Rpb24o
YSl7dmFyIGI9bmV3IERhdGU7Yj10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShi
LmdldEZ1bGxZZWFyKCksCitiLmdldE1vbnRoKCksYi5nZXREYXRlKCkpKTt2YXIgYz10aGlzLl9n
ZXQoYSwiaXNSVEwiKSxlPXRoaXMuX2dldChhLCJzaG93QnV0dG9uUGFuZWwiKSxmPXRoaXMuX2dl
dChhLCJoaWRlSWZOb1ByZXZOZXh0IiksaD10aGlzLl9nZXQoYSwibmF2aWdhdGlvbkFzRGF0ZUZv
cm1hdCIpLGk9dGhpcy5fZ2V0TnVtYmVyT2ZNb250aHMoYSksZz10aGlzLl9nZXQoYSwic2hvd0N1
cnJlbnRBdFBvcyIpLGo9dGhpcy5fZ2V0KGEsInN0ZXBNb250aHMiKSxsPWlbMF0hPTF8fGlbMV0h
PTEsdT10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCghYS5jdXJyZW50RGF5P25ldyBEYXRlKDk5
OTksOSw5KTpuZXcgRGF0ZShhLmN1cnJlbnRZZWFyLGEuY3VycmVudE1vbnRoLGEuY3VycmVudERh
eSkpLGs9dGhpcy5fZ2V0TWluTWF4RGF0ZShhLCJtaW4iKSxvPXRoaXMuX2dldE1pbk1heERhdGUo
YSwibWF4Iik7Zz1hLmRyYXdNb250aC1nO3ZhciBtPWEuZHJhd1llYXI7aWYoZzwwKXtnKz0xMjtt
LS19aWYobyl7dmFyIG49Cit0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShvLmdl
dEZ1bGxZZWFyKCksby5nZXRNb250aCgpLWlbMF0qaVsxXSsxLG8uZ2V0RGF0ZSgpKSk7Zm9yKG49
ayYmbjxrP2s6bjt0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShtLGcsMSkpPm47
KXtnLS07aWYoZzwwKXtnPTExO20tLX19fWEuZHJhd01vbnRoPWc7YS5kcmF3WWVhcj1tO249dGhp
cy5fZ2V0KGEsInByZXZUZXh0Iik7bj0haD9uOnRoaXMuZm9ybWF0RGF0ZShuLHRoaXMuX2RheWxp
Z2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKG0sZy1qLDEpKSx0aGlzLl9nZXRGb3JtYXRDb25maWco
YSkpO249dGhpcy5fY2FuQWRqdXN0TW9udGgoYSwtMSxtLGcpPyc8YSBjbGFzcz0idWktZGF0ZXBp
Y2tlci1wcmV2IHVpLWNvcm5lci1hbGwiIG9uY2xpY2s9IkRQX2pRdWVyeV8nK3krIi5kYXRlcGlj
a2VyLl9hZGp1c3REYXRlKCcjIithLmlkKyInLCAtIitqKyIsICdNJyk7XCIgdGl0bGU9XCIiK24r
JyI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtJysKKyhjPyJl
IjoidyIpKyciPicrbisiPC9zcGFuPjwvYT4iOmY/IiI6JzxhIGNsYXNzPSJ1aS1kYXRlcGlja2Vy
LXByZXYgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1kaXNhYmxlZCIgdGl0bGU9IicrbisnIj48c3Bh
biBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0nKyhjPyJlIjoidyIpKyci
PicrbisiPC9zcGFuPjwvYT4iO3ZhciByPXRoaXMuX2dldChhLCJuZXh0VGV4dCIpO3I9IWg/cjp0
aGlzLmZvcm1hdERhdGUocix0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShtLGcr
aiwxKSksdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGEpKTtmPXRoaXMuX2NhbkFkanVzdE1vbnRoKGEs
KzEsbSxnKT8nPGEgY2xhc3M9InVpLWRhdGVwaWNrZXItbmV4dCB1aS1jb3JuZXItYWxsIiBvbmNs
aWNrPSJEUF9qUXVlcnlfJyt5KyIuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZSgnIyIrYS5pZCsiJywg
KyIraisiLCAnTScpO1wiIHRpdGxlPVwiIityKyciPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWlj
b24tY2lyY2xlLXRyaWFuZ2xlLScrCisoYz8idyI6ImUiKSsnIj4nK3IrIjwvc3Bhbj48L2E+Ijpm
PyIiOic8YSBjbGFzcz0idWktZGF0ZXBpY2tlci1uZXh0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUt
ZGlzYWJsZWQiIHRpdGxlPSInK3IrJyI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jaXJj
bGUtdHJpYW5nbGUtJysoYz8idyI6ImUiKSsnIj4nK3IrIjwvc3Bhbj48L2E+IjtqPXRoaXMuX2dl
dChhLCJjdXJyZW50VGV4dCIpO3I9dGhpcy5fZ2V0KGEsImdvdG9DdXJyZW50IikmJmEuY3VycmVu
dERheT91OmI7aj0haD9qOnRoaXMuZm9ybWF0RGF0ZShqLHIsdGhpcy5fZ2V0Rm9ybWF0Q29uZmln
KGEpKTtoPSFhLmlubGluZT8nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ1aS1kYXRlcGlj
a2VyLWNsb3NlIHVpLXN0YXRlLWRlZmF1bHQgdWktcHJpb3JpdHktcHJpbWFyeSB1aS1jb3JuZXIt
YWxsIiBvbmNsaWNrPSJEUF9qUXVlcnlfJyt5KycuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIo
KTsiPicrdGhpcy5fZ2V0KGEsCisiY2xvc2VUZXh0IikrIjwvYnV0dG9uPiI6IiI7ZT1lPyc8ZGl2
IGNsYXNzPSJ1aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQiPicrKGM/
aDoiIikrKHRoaXMuX2lzSW5SYW5nZShhLHIpPyc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9
InVpLWRhdGVwaWNrZXItY3VycmVudCB1aS1zdGF0ZS1kZWZhdWx0IHVpLXByaW9yaXR5LXNlY29u
ZGFyeSB1aS1jb3JuZXItYWxsIiBvbmNsaWNrPSJEUF9qUXVlcnlfJyt5KyIuZGF0ZXBpY2tlci5f
Z290b1RvZGF5KCcjIithLmlkKyInKTtcIj4iK2orIjwvYnV0dG9uPiI6IiIpKyhjPyIiOmgpKyI8
L2Rpdj4iOiIiO2g9cGFyc2VJbnQodGhpcy5fZ2V0KGEsImZpcnN0RGF5IiksMTApO2g9aXNOYU4o
aCk/MDpoO2o9dGhpcy5fZ2V0KGEsInNob3dXZWVrIik7cj10aGlzLl9nZXQoYSwiZGF5TmFtZXMi
KTt0aGlzLl9nZXQoYSwiZGF5TmFtZXNTaG9ydCIpO3ZhciBzPXRoaXMuX2dldChhLCJkYXlOYW1l
c01pbiIpLHo9Cit0aGlzLl9nZXQoYSwibW9udGhOYW1lcyIpLHc9dGhpcy5fZ2V0KGEsIm1vbnRo
TmFtZXNTaG9ydCIpLHA9dGhpcy5fZ2V0KGEsImJlZm9yZVNob3dEYXkiKSx2PXRoaXMuX2dldChh
LCJzaG93T3RoZXJNb250aHMiKSxIPXRoaXMuX2dldChhLCJzZWxlY3RPdGhlck1vbnRocyIpO3Ro
aXMuX2dldChhLCJjYWxjdWxhdGVXZWVrIik7Zm9yKHZhciBMPXRoaXMuX2dldERlZmF1bHREYXRl
KGEpLEk9IiIsQz0wO0M8aVswXTtDKyspe2Zvcih2YXIgTT0iIixEPTA7RDxpWzFdO0QrKyl7dmFy
IE49dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUobSxnLGEuc2VsZWN0ZWREYXkp
KSx0PSIgdWktY29ybmVyLWFsbCIseD0iIjtpZihsKXt4Kz0nPGRpdiBjbGFzcz0idWktZGF0ZXBp
Y2tlci1ncm91cCc7aWYoaVsxXT4xKXN3aXRjaChEKXtjYXNlIDA6eCs9IiB1aS1kYXRlcGlja2Vy
LWdyb3VwLWZpcnN0Ijt0PSIgdWktY29ybmVyLSIrKGM/InJpZ2h0IjoibGVmdCIpO2JyZWFrO2Nh
c2UgaVsxXS0KKzE6eCs9IiB1aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QiO3Q9IiB1aS1jb3JuZXIt
IisoYz8ibGVmdCI6InJpZ2h0Iik7YnJlYWs7ZGVmYXVsdDp4Kz0iIHVpLWRhdGVwaWNrZXItZ3Jv
dXAtbWlkZGxlIjt0PSIiO2JyZWFrfXgrPSciPid9eCs9JzxkaXYgY2xhc3M9InVpLWRhdGVwaWNr
ZXItaGVhZGVyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4Jyt0KyciPicrKC9h
bGx8bGVmdC8udGVzdCh0KSYmQz09MD9jP2Y6bjoiIikrKC9hbGx8cmlnaHQvLnRlc3QodCkmJkM9
PTA/Yz9uOmY6IiIpK3RoaXMuX2dlbmVyYXRlTW9udGhZZWFySGVhZGVyKGEsZyxtLGssbyxDPjB8
fEQ+MCx6LHcpKyc8L2Rpdj48dGFibGUgY2xhc3M9InVpLWRhdGVwaWNrZXItY2FsZW5kYXIiPjx0
aGVhZD48dHI+Jzt2YXIgQT1qPyc8dGggY2xhc3M9InVpLWRhdGVwaWNrZXItd2Vlay1jb2wiPicr
dGhpcy5fZ2V0KGEsIndlZWtIZWFkZXIiKSsiPC90aD4iOiIiO2Zvcih0PTA7dDw3O3QrKyl7dmFy
IHE9CisodCtoKSU3O0ErPSI8dGgiKygodCtoKzYpJTc+PTU/JyBjbGFzcz0idWktZGF0ZXBpY2tl
ci13ZWVrLWVuZCInOiIiKSsnPjxzcGFuIHRpdGxlPSInK3JbcV0rJyI+JytzW3FdKyI8L3NwYW4+
PC90aD4ifXgrPUErIjwvdHI+PC90aGVhZD48dGJvZHk+IjtBPXRoaXMuX2dldERheXNJbk1vbnRo
KG0sZyk7aWYobT09YS5zZWxlY3RlZFllYXImJmc9PWEuc2VsZWN0ZWRNb250aClhLnNlbGVjdGVk
RGF5PU1hdGgubWluKGEuc2VsZWN0ZWREYXksQSk7dD0odGhpcy5fZ2V0Rmlyc3REYXlPZk1vbnRo
KG0sZyktaCs3KSU3O0E9bD82Ok1hdGguY2VpbCgodCtBKS83KTtxPXRoaXMuX2RheWxpZ2h0U2F2
aW5nQWRqdXN0KG5ldyBEYXRlKG0sZywxLXQpKTtmb3IodmFyIE89MDtPPEE7TysrKXt4Kz0iPHRy
PiI7dmFyIFA9IWo/IiI6Jzx0ZCBjbGFzcz0idWktZGF0ZXBpY2tlci13ZWVrLWNvbCI+Jyt0aGlz
Ll9nZXQoYSwiY2FsY3VsYXRlV2VlayIpKHEpKyI8L3RkPiI7Zm9yKHQ9MDt0PDc7dCsrKXt2YXIg
Rj0KK3A/cC5hcHBseShhLmlucHV0P2EuaW5wdXRbMF06bnVsbCxbcV0pOlt0cnVlLCIiXSxCPXEu
Z2V0TW9udGgoKSE9ZyxKPUImJiFIfHwhRlswXXx8ayYmcTxrfHxvJiZxPm87UCs9Jzx0ZCBjbGFz
cz0iJysoKHQraCs2KSU3Pj01PyIgdWktZGF0ZXBpY2tlci13ZWVrLWVuZCI6IiIpKyhCPyIgdWkt
ZGF0ZXBpY2tlci1vdGhlci1tb250aCI6IiIpKyhxLmdldFRpbWUoKT09Ti5nZXRUaW1lKCkmJmc9
PWEuc2VsZWN0ZWRNb250aCYmYS5fa2V5RXZlbnR8fEwuZ2V0VGltZSgpPT1xLmdldFRpbWUoKSYm
TC5nZXRUaW1lKCk9PU4uZ2V0VGltZSgpPyIgIit0aGlzLl9kYXlPdmVyQ2xhc3M6IiIpKyhKPyIg
Iit0aGlzLl91bnNlbGVjdGFibGVDbGFzcysiIHVpLXN0YXRlLWRpc2FibGVkIjoiIikrKEImJiF2
PyIiOiIgIitGWzFdKyhxLmdldFRpbWUoKT09dS5nZXRUaW1lKCk/IiAiK3RoaXMuX2N1cnJlbnRD
bGFzczoiIikrKHEuZ2V0VGltZSgpPT1iLmdldFRpbWUoKT8iIHVpLWRhdGVwaWNrZXItdG9kYXki
OgorIiIpKSsnIicrKCghQnx8dikmJkZbMl0/JyB0aXRsZT0iJytGWzJdKyciJzoiIikrKEo/IiI6
JyBvbmNsaWNrPSJEUF9qUXVlcnlfJyt5KyIuZGF0ZXBpY2tlci5fc2VsZWN0RGF5KCcjIithLmlk
KyInLCIrcS5nZXRNb250aCgpKyIsIitxLmdldEZ1bGxZZWFyKCkrJywgdGhpcyk7cmV0dXJuIGZh
bHNlOyInKSsiPiIrKEImJiF2PyImI3hhMDsiOko/JzxzcGFuIGNsYXNzPSJ1aS1zdGF0ZS1kZWZh
dWx0Ij4nK3EuZ2V0RGF0ZSgpKyI8L3NwYW4+IjonPGEgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQn
KyhxLmdldFRpbWUoKT09Yi5nZXRUaW1lKCk/IiB1aS1zdGF0ZS1oaWdobGlnaHQiOiIiKSsocS5n
ZXRUaW1lKCk9PXUuZ2V0VGltZSgpPyIgdWktc3RhdGUtYWN0aXZlIjoiIikrKEI/IiB1aS1wcmlv
cml0eS1zZWNvbmRhcnkiOiIiKSsnIiBocmVmPSIjIj4nK3EuZ2V0RGF0ZSgpKyI8L2E+IikrIjwv
dGQ+IjtxLnNldERhdGUocS5nZXREYXRlKCkrMSk7cT10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVz
dChxKX14Kz0KK1ArIjwvdHI+In1nKys7aWYoZz4xMSl7Zz0wO20rK314Kz0iPC90Ym9keT48L3Rh
YmxlPiIrKGw/IjwvZGl2PiIrKGlbMF0+MCYmRD09aVsxXS0xPyc8ZGl2IGNsYXNzPSJ1aS1kYXRl
cGlja2VyLXJvdy1icmVhayI+PC9kaXY+JzoiIik6IiIpO00rPXh9SSs9TX1JKz1lKyhkLmJyb3dz
ZXIubXNpZSYmcGFyc2VJbnQoZC5icm93c2VyLnZlcnNpb24sMTApPDcmJiFhLmlubGluZT8nPGlm
cmFtZSBzcmM9ImphdmFzY3JpcHQ6ZmFsc2U7IiBjbGFzcz0idWktZGF0ZXBpY2tlci1jb3ZlciIg
ZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPic6IiIpO2EuX2tleUV2ZW50PWZhbHNlO3JldHVybiBJ
fSxfZ2VuZXJhdGVNb250aFllYXJIZWFkZXI6ZnVuY3Rpb24oYSxiLGMsZSxmLGgsaSxnKXt2YXIg
aj10aGlzLl9nZXQoYSwiY2hhbmdlTW9udGgiKSxsPXRoaXMuX2dldChhLCJjaGFuZ2VZZWFyIiks
dT10aGlzLl9nZXQoYSwic2hvd01vbnRoQWZ0ZXJZZWFyIiksaz0nPGRpdiBjbGFzcz0idWktZGF0
ZXBpY2tlci10aXRsZSI+JywKK289IiI7aWYoaHx8IWopbys9JzxzcGFuIGNsYXNzPSJ1aS1kYXRl
cGlja2VyLW1vbnRoIj4nK2lbYl0rIjwvc3Bhbj4iO2Vsc2V7aT1lJiZlLmdldEZ1bGxZZWFyKCk9
PWM7dmFyIG09ZiYmZi5nZXRGdWxsWWVhcigpPT1jO28rPSc8c2VsZWN0IGNsYXNzPSJ1aS1kYXRl
cGlja2VyLW1vbnRoIiBvbmNoYW5nZT0iRFBfalF1ZXJ5XycreSsiLmRhdGVwaWNrZXIuX3NlbGVj
dE1vbnRoWWVhcignIyIrYS5pZCsiJywgdGhpcywgJ00nKTtcIiBvbmNsaWNrPVwiRFBfalF1ZXJ5
XyIreSsiLmRhdGVwaWNrZXIuX2NsaWNrTW9udGhZZWFyKCcjIithLmlkKyInKTtcIj4iO2Zvcih2
YXIgbj0wO248MTI7bisrKWlmKCghaXx8bj49ZS5nZXRNb250aCgpKSYmKCFtfHxuPD1mLmdldE1v
bnRoKCkpKW8rPSc8b3B0aW9uIHZhbHVlPSInK24rJyInKyhuPT1iPycgc2VsZWN0ZWQ9InNlbGVj
dGVkIic6IiIpKyI+IitnW25dKyI8L29wdGlvbj4iO28rPSI8L3NlbGVjdD4ifXV8fChrKz1vKyho
fHwhKGomJgorbCk/IiYjeGEwOyI6IiIpKTthLnllYXJzaHRtbD0iIjtpZihofHwhbClrKz0nPHNw
YW4gY2xhc3M9InVpLWRhdGVwaWNrZXIteWVhciI+JytjKyI8L3NwYW4+IjtlbHNle2c9dGhpcy5f
Z2V0KGEsInllYXJSYW5nZSIpLnNwbGl0KCI6Iik7dmFyIHI9KG5ldyBEYXRlKS5nZXRGdWxsWWVh
cigpO2k9ZnVuY3Rpb24ocyl7cz1zLm1hdGNoKC9jWystXS4qLyk/YytwYXJzZUludChzLnN1YnN0
cmluZygxKSwxMCk6cy5tYXRjaCgvWystXS4qLyk/citwYXJzZUludChzLDEwKTpwYXJzZUludChz
LDEwKTtyZXR1cm4gaXNOYU4ocyk/cjpzfTtiPWkoZ1swXSk7Zz1NYXRoLm1heChiLGkoZ1sxXXx8
IiIpKTtiPWU/TWF0aC5tYXgoYixlLmdldEZ1bGxZZWFyKCkpOmI7Zz1mP01hdGgubWluKGcsZi5n
ZXRGdWxsWWVhcigpKTpnO2ZvcihhLnllYXJzaHRtbCs9JzxzZWxlY3QgY2xhc3M9InVpLWRhdGVw
aWNrZXIteWVhciIgb25jaGFuZ2U9IkRQX2pRdWVyeV8nK3krIi5kYXRlcGlja2VyLl9zZWxlY3RN
b250aFllYXIoJyMiKworYS5pZCsiJywgdGhpcywgJ1knKTtcIiBvbmNsaWNrPVwiRFBfalF1ZXJ5
XyIreSsiLmRhdGVwaWNrZXIuX2NsaWNrTW9udGhZZWFyKCcjIithLmlkKyInKTtcIj4iO2I8PWc7
YisrKWEueWVhcnNodG1sKz0nPG9wdGlvbiB2YWx1ZT0iJytiKyciJysoYj09Yz8nIHNlbGVjdGVk
PSJzZWxlY3RlZCInOiIiKSsiPiIrYisiPC9vcHRpb24+IjthLnllYXJzaHRtbCs9Ijwvc2VsZWN0
PiI7aWYoZC5icm93c2VyLm1vemlsbGEpays9JzxzZWxlY3QgY2xhc3M9InVpLWRhdGVwaWNrZXIt
eWVhciI+PG9wdGlvbiB2YWx1ZT0iJytjKyciIHNlbGVjdGVkPSJzZWxlY3RlZCI+JytjKyI8L29w
dGlvbj48L3NlbGVjdD4iO2Vsc2V7ays9YS55ZWFyc2h0bWw7YS55ZWFyc2h0bWw9bnVsbH19ays9
dGhpcy5fZ2V0KGEsInllYXJTdWZmaXgiKTtpZih1KWsrPShofHwhKGomJmwpPyImI3hhMDsiOiIi
KStvO2srPSI8L2Rpdj4iO3JldHVybiBrfSxfYWRqdXN0SW5zdERhdGU6ZnVuY3Rpb24oYSxiLGMp
e3ZhciBlPQorYS5kcmF3WWVhcisoYz09IlkiP2I6MCksZj1hLmRyYXdNb250aCsoYz09Ik0iP2I6
MCk7Yj1NYXRoLm1pbihhLnNlbGVjdGVkRGF5LHRoaXMuX2dldERheXNJbk1vbnRoKGUsZikpKyhj
PT0iRCI/YjowKTtlPXRoaXMuX3Jlc3RyaWN0TWluTWF4KGEsdGhpcy5fZGF5bGlnaHRTYXZpbmdB
ZGp1c3QobmV3IERhdGUoZSxmLGIpKSk7YS5zZWxlY3RlZERheT1lLmdldERhdGUoKTthLmRyYXdN
b250aD1hLnNlbGVjdGVkTW9udGg9ZS5nZXRNb250aCgpO2EuZHJhd1llYXI9YS5zZWxlY3RlZFll
YXI9ZS5nZXRGdWxsWWVhcigpO2lmKGM9PSJNInx8Yz09IlkiKXRoaXMuX25vdGlmeUNoYW5nZShh
KX0sX3Jlc3RyaWN0TWluTWF4OmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fZ2V0TWluTWF4RGF0
ZShhLCJtaW4iKTthPXRoaXMuX2dldE1pbk1heERhdGUoYSwibWF4Iik7Yj1jJiZiPGM/YzpiO3Jl
dHVybiBiPWEmJmI+YT9hOmJ9LF9ub3RpZnlDaGFuZ2U6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5f
Z2V0KGEsCisib25DaGFuZ2VNb250aFllYXIiKTtpZihiKWIuYXBwbHkoYS5pbnB1dD9hLmlucHV0
WzBdOm51bGwsW2Euc2VsZWN0ZWRZZWFyLGEuc2VsZWN0ZWRNb250aCsxLGFdKX0sX2dldE51bWJl
ck9mTW9udGhzOmZ1bmN0aW9uKGEpe2E9dGhpcy5fZ2V0KGEsIm51bWJlck9mTW9udGhzIik7cmV0
dXJuIGE9PW51bGw/WzEsMV06dHlwZW9mIGE9PSJudW1iZXIiP1sxLGFdOmF9LF9nZXRNaW5NYXhE
YXRlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuX2RldGVybWluZURhdGUoYSx0aGlzLl9nZXQo
YSxiKyJEYXRlIiksbnVsbCl9LF9nZXREYXlzSW5Nb250aDpmdW5jdGlvbihhLGIpe3JldHVybiAz
Mi10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShhLGIsMzIpKS5nZXREYXRlKCl9
LF9nZXRGaXJzdERheU9mTW9udGg6ZnVuY3Rpb24oYSxiKXtyZXR1cm4obmV3IERhdGUoYSxiLDEp
KS5nZXREYXkoKX0sX2NhbkFkanVzdE1vbnRoOmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmPXRoaXMu
X2dldE51bWJlck9mTW9udGhzKGEpOworYz10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcg
RGF0ZShjLGUrKGI8MD9iOmZbMF0qZlsxXSksMSkpO2I8MCYmYy5zZXREYXRlKHRoaXMuX2dldERh
eXNJbk1vbnRoKGMuZ2V0RnVsbFllYXIoKSxjLmdldE1vbnRoKCkpKTtyZXR1cm4gdGhpcy5faXNJ
blJhbmdlKGEsYyl9LF9pc0luUmFuZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9nZXRNaW5N
YXhEYXRlKGEsIm1pbiIpO2E9dGhpcy5fZ2V0TWluTWF4RGF0ZShhLCJtYXgiKTtyZXR1cm4oIWN8
fGIuZ2V0VGltZSgpPj1jLmdldFRpbWUoKSkmJighYXx8Yi5nZXRUaW1lKCk8PWEuZ2V0VGltZSgp
KX0sX2dldEZvcm1hdENvbmZpZzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLl9nZXQoYSwic2hvcnRZ
ZWFyQ3V0b2ZmIik7Yj10eXBlb2YgYiE9InN0cmluZyI/YjoobmV3IERhdGUpLmdldEZ1bGxZZWFy
KCklMTAwK3BhcnNlSW50KGIsMTApO3JldHVybntzaG9ydFllYXJDdXRvZmY6YixkYXlOYW1lc1No
b3J0OnRoaXMuX2dldChhLAorImRheU5hbWVzU2hvcnQiKSxkYXlOYW1lczp0aGlzLl9nZXQoYSwi
ZGF5TmFtZXMiKSxtb250aE5hbWVzU2hvcnQ6dGhpcy5fZ2V0KGEsIm1vbnRoTmFtZXNTaG9ydCIp
LG1vbnRoTmFtZXM6dGhpcy5fZ2V0KGEsIm1vbnRoTmFtZXMiKX19LF9mb3JtYXREYXRlOmZ1bmN0
aW9uKGEsYixjLGUpe2lmKCFiKXthLmN1cnJlbnREYXk9YS5zZWxlY3RlZERheTthLmN1cnJlbnRN
b250aD1hLnNlbGVjdGVkTW9udGg7YS5jdXJyZW50WWVhcj1hLnNlbGVjdGVkWWVhcn1iPWI/dHlw
ZW9mIGI9PSJvYmplY3QiP2I6dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZSxj
LGIpKTp0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShhLmN1cnJlbnRZZWFyLGEu
Y3VycmVudE1vbnRoLGEuY3VycmVudERheSkpO3JldHVybiB0aGlzLmZvcm1hdERhdGUodGhpcy5f
Z2V0KGEsImRhdGVGb3JtYXQiKSxiLHRoaXMuX2dldEZvcm1hdENvbmZpZyhhKSl9fSk7ZC5mbi5k
YXRlcGlja2VyPQorZnVuY3Rpb24oYSl7aWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO2lmKCFk
LmRhdGVwaWNrZXIuaW5pdGlhbGl6ZWQpe2QoZG9jdW1lbnQpLm1vdXNlZG93bihkLmRhdGVwaWNr
ZXIuX2NoZWNrRXh0ZXJuYWxDbGljaykuZmluZCgiYm9keSIpLmFwcGVuZChkLmRhdGVwaWNrZXIu
ZHBEaXYpO2QuZGF0ZXBpY2tlci5pbml0aWFsaXplZD10cnVlfXZhciBiPUFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtpZih0eXBlb2YgYT09InN0cmluZyImJihhPT0iaXNE
aXNhYmxlZCJ8fGE9PSJnZXREYXRlInx8YT09IndpZGdldCIpKXJldHVybiBkLmRhdGVwaWNrZXJb
Il8iK2ErIkRhdGVwaWNrZXIiXS5hcHBseShkLmRhdGVwaWNrZXIsW3RoaXNbMF1dLmNvbmNhdChi
KSk7aWYoYT09Im9wdGlvbiImJmFyZ3VtZW50cy5sZW5ndGg9PTImJnR5cGVvZiBhcmd1bWVudHNb
MV09PSJzdHJpbmciKXJldHVybiBkLmRhdGVwaWNrZXJbIl8iK2ErIkRhdGVwaWNrZXIiXS5hcHBs
eShkLmRhdGVwaWNrZXIsCitbdGhpc1swXV0uY29uY2F0KGIpKTtyZXR1cm4gdGhpcy5lYWNoKGZ1
bmN0aW9uKCl7dHlwZW9mIGE9PSJzdHJpbmciP2QuZGF0ZXBpY2tlclsiXyIrYSsiRGF0ZXBpY2tl
ciJdLmFwcGx5KGQuZGF0ZXBpY2tlcixbdGhpc10uY29uY2F0KGIpKTpkLmRhdGVwaWNrZXIuX2F0
dGFjaERhdGVwaWNrZXIodGhpcyxhKX0pfTtkLmRhdGVwaWNrZXI9bmV3IEs7ZC5kYXRlcGlja2Vy
LmluaXRpYWxpemVkPWZhbHNlO2QuZGF0ZXBpY2tlci51dWlkPShuZXcgRGF0ZSkuZ2V0VGltZSgp
O2QuZGF0ZXBpY2tlci52ZXJzaW9uPSIxLjguMTAiO3dpbmRvd1siRFBfalF1ZXJ5XyIreV09ZH0p
KGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBQcm9ncmVzc2JhciAxLjguMTAKKyAqCisgKiBD
b3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisg
KiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4K
KyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnku
Y29tL1VJL1Byb2dyZXNzYmFyCisgKgorICogRGVwZW5kczoKKyAqICAganF1ZXJ5LnVpLmNvcmUu
anMKKyAqICAganF1ZXJ5LnVpLndpZGdldC5qcworICovCisoZnVuY3Rpb24oYixkKXtiLndpZGdl
dCgidWkucHJvZ3Jlc3NiYXIiLHtvcHRpb25zOnt2YWx1ZTowLG1heDoxMDB9LG1pbjowLF9jcmVh
dGU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXByb2dyZXNzYmFyIHVpLXdp
ZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIikuYXR0cih7cm9sZToicHJvZ3Jl
c3NiYXIiLCJhcmlhLXZhbHVlbWluIjp0aGlzLm1pbiwiYXJpYS12YWx1ZW1heCI6dGhpcy5vcHRp
b25zLm1heCwiYXJpYS12YWx1ZW5vdyI6dGhpcy5fdmFsdWUoKX0pO3RoaXMudmFsdWVEaXY9Yigi
PGRpdiBjbGFzcz0ndWktcHJvZ3Jlc3NiYXItdmFsdWUgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3Ju
ZXItbGVmdCc+PC9kaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KTt0aGlzLm9sZFZhbHVlPXRo
aXMuX3ZhbHVlKCk7dGhpcy5fcmVmcmVzaFZhbHVlKCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlz
LmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXByb2dyZXNzYmFyIHVpLXdpZGdldCB1aS13aWRnZXQt
Y29udGVudCB1aS1jb3JuZXItYWxsIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFy
aWEtdmFsdWVtaW4iKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbWF4IikucmVtb3ZlQXR0cigiYXJp
YS12YWx1ZW5vdyIpOwordGhpcy52YWx1ZURpdi5yZW1vdmUoKTtiLldpZGdldC5wcm90b3R5cGUu
ZGVzdHJveS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHZhbHVlOmZ1bmN0aW9uKGEpe2lmKGE9PT1k
KXJldHVybiB0aGlzLl92YWx1ZSgpO3RoaXMuX3NldE9wdGlvbigidmFsdWUiLGEpO3JldHVybiB0
aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGEsYyl7aWYoYT09PSJ2YWx1ZSIpe3RoaXMub3B0aW9u
cy52YWx1ZT1jO3RoaXMuX3JlZnJlc2hWYWx1ZSgpO3RoaXMuX3ZhbHVlKCk9PT10aGlzLm9wdGlv
bnMubWF4JiZ0aGlzLl90cmlnZ2VyKCJjb21wbGV0ZSIpfWIuV2lkZ2V0LnByb3RvdHlwZS5fc2V0
T3B0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sX3ZhbHVlOmZ1bmN0aW9uKCl7dmFyIGE9dGhp
cy5vcHRpb25zLnZhbHVlO2lmKHR5cGVvZiBhIT09Im51bWJlciIpYT0wO3JldHVybiBNYXRoLm1p
bih0aGlzLm9wdGlvbnMubWF4LE1hdGgubWF4KHRoaXMubWluLGEpKX0sX3BlcmNlbnRhZ2U6ZnVu
Y3Rpb24oKXtyZXR1cm4gMTAwKgordGhpcy5fdmFsdWUoKS90aGlzLm9wdGlvbnMubWF4fSxfcmVm
cmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy52YWx1ZSgpLGM9dGhpcy5fcGVyY2VudGFn
ZSgpO2lmKHRoaXMub2xkVmFsdWUhPT1hKXt0aGlzLm9sZFZhbHVlPWE7dGhpcy5fdHJpZ2dlcigi
Y2hhbmdlIil9dGhpcy52YWx1ZURpdi50b2dnbGVDbGFzcygidWktY29ybmVyLXJpZ2h0IixhPT09
dGhpcy5vcHRpb25zLm1heCkud2lkdGgoYy50b0ZpeGVkKDApKyIlIik7dGhpcy5lbGVtZW50LmF0
dHIoImFyaWEtdmFsdWVub3ciLGEpfX0pO2IuZXh0ZW5kKGIudWkucHJvZ3Jlc3NiYXIse3ZlcnNp
b246IjEuOC4xMCJ9KX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIDEuOC4x
MAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNv
bS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAy
IGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9k
b2NzLmpxdWVyeS5jb20vVUkvRWZmZWN0cy8KKyAqLworalF1ZXJ5LmVmZmVjdHN8fGZ1bmN0aW9u
KGYsail7ZnVuY3Rpb24gbihjKXt2YXIgYTtpZihjJiZjLmNvbnN0cnVjdG9yPT1BcnJheSYmYy5s
ZW5ndGg9PTMpcmV0dXJuIGM7aWYoYT0vcmdiXChccyooWzAtOV17MSwzfSlccyosXHMqKFswLTld
ezEsM30pXHMqLFxzKihbMC05XXsxLDN9KVxzKlwpLy5leGVjKGMpKXJldHVybltwYXJzZUludChh
WzFdLDEwKSxwYXJzZUludChhWzJdLDEwKSxwYXJzZUludChhWzNdLDEwKV07aWYoYT0vcmdiXChc
cyooWzAtOV0rKD86XC5bMC05XSspPylcJVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylcJVxz
KixccyooWzAtOV0rKD86XC5bMC05XSspPylcJVxzKlwpLy5leGVjKGMpKXJldHVybltwYXJzZUZs
b2F0KGFbMV0pKjIuNTUscGFyc2VGbG9hdChhWzJdKSoyLjU1LHBhcnNlRmxvYXQoYVszXSkqMi41
NV07aWYoYT0vIyhbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9
KS8uZXhlYyhjKSlyZXR1cm5bcGFyc2VJbnQoYVsxXSwKKzE2KSxwYXJzZUludChhWzJdLDE2KSxw
YXJzZUludChhWzNdLDE2KV07aWYoYT0vIyhbYS1mQS1GMC05XSkoW2EtZkEtRjAtOV0pKFthLWZB
LUYwLTldKS8uZXhlYyhjKSlyZXR1cm5bcGFyc2VJbnQoYVsxXSthWzFdLDE2KSxwYXJzZUludChh
WzJdK2FbMl0sMTYpLHBhcnNlSW50KGFbM10rYVszXSwxNildO2lmKC9yZ2JhXCgwLCAwLCAwLCAw
XCkvLmV4ZWMoYykpcmV0dXJuIG8udHJhbnNwYXJlbnQ7cmV0dXJuIG9bZi50cmltKGMpLnRvTG93
ZXJDYXNlKCldfWZ1bmN0aW9uIHMoYyxhKXt2YXIgYjtkb3tiPWYuY3VyQ1NTKGMsYSk7aWYoYiE9
IiImJmIhPSJ0cmFuc3BhcmVudCJ8fGYubm9kZU5hbWUoYywiYm9keSIpKWJyZWFrO2E9ImJhY2tn
cm91bmRDb2xvciJ9d2hpbGUoYz1jLnBhcmVudE5vZGUpO3JldHVybiBuKGIpfWZ1bmN0aW9uIHAo
KXt2YXIgYz1kb2N1bWVudC5kZWZhdWx0Vmlldz9kb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlKHRoaXMsbnVsbCk6dGhpcy5jdXJyZW50U3R5bGUsCithPXt9LGIsZDtpZihjJiZj
Lmxlbmd0aCYmY1swXSYmY1tjWzBdXSlmb3IodmFyIGU9Yy5sZW5ndGg7ZS0tOyl7Yj1jW2VdO2lm
KHR5cGVvZiBjW2JdPT0ic3RyaW5nIil7ZD1iLnJlcGxhY2UoL1wtKFx3KS9nLGZ1bmN0aW9uKGcs
aCl7cmV0dXJuIGgudG9VcHBlckNhc2UoKX0pO2FbZF09Y1tiXX19ZWxzZSBmb3IoYiBpbiBjKWlm
KHR5cGVvZiBjW2JdPT09InN0cmluZyIpYVtiXT1jW2JdO3JldHVybiBhfWZ1bmN0aW9uIHEoYyl7
dmFyIGEsYjtmb3IoYSBpbiBjKXtiPWNbYV07aWYoYj09bnVsbHx8Zi5pc0Z1bmN0aW9uKGIpfHxh
IGluIHR8fC9zY3JvbGxiYXIvLnRlc3QoYSl8fCEvY29sb3IvaS50ZXN0KGEpJiZpc05hTihwYXJz
ZUZsb2F0KGIpKSlkZWxldGUgY1thXX1yZXR1cm4gY31mdW5jdGlvbiB1KGMsYSl7dmFyIGI9e186
MH0sZDtmb3IoZCBpbiBhKWlmKGNbZF0hPWFbZF0pYltkXT1hW2RdO3JldHVybiBifWZ1bmN0aW9u
IGsoYyxhLGIsZCl7aWYodHlwZW9mIGM9PSJvYmplY3QiKXtkPQorYTtiPW51bGw7YT1jO2M9YS5l
ZmZlY3R9aWYoZi5pc0Z1bmN0aW9uKGEpKXtkPWE7Yj1udWxsO2E9e319aWYodHlwZW9mIGE9PSJu
dW1iZXIifHxmLmZ4LnNwZWVkc1thXSl7ZD1iO2I9YTthPXt9fWlmKGYuaXNGdW5jdGlvbihiKSl7
ZD1iO2I9bnVsbH1hPWF8fHt9O2I9Ynx8YS5kdXJhdGlvbjtiPWYuZngub2ZmPzA6dHlwZW9mIGI9
PSJudW1iZXIiP2I6YiBpbiBmLmZ4LnNwZWVkcz9mLmZ4LnNwZWVkc1tiXTpmLmZ4LnNwZWVkcy5f
ZGVmYXVsdDtkPWR8fGEuY29tcGxldGU7cmV0dXJuW2MsYSxiLGRdfWZ1bmN0aW9uIG0oYyl7aWYo
IWN8fHR5cGVvZiBjPT09Im51bWJlciJ8fGYuZnguc3BlZWRzW2NdKXJldHVybiB0cnVlO2lmKHR5
cGVvZiBjPT09InN0cmluZyImJiFmLmVmZmVjdHNbY10pcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNl
fWYuZWZmZWN0cz17fTtmLmVhY2goWyJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJCb3R0b21Db2xv
ciIsImJvcmRlckxlZnRDb2xvciIsImJvcmRlclJpZ2h0Q29sb3IiLAorImJvcmRlclRvcENvbG9y
IiwiYm9yZGVyQ29sb3IiLCJjb2xvciIsIm91dGxpbmVDb2xvciJdLGZ1bmN0aW9uKGMsYSl7Zi5m
eC5zdGVwW2FdPWZ1bmN0aW9uKGIpe2lmKCFiLmNvbG9ySW5pdCl7Yi5zdGFydD1zKGIuZWxlbSxh
KTtiLmVuZD1uKGIuZW5kKTtiLmNvbG9ySW5pdD10cnVlfWIuZWxlbS5zdHlsZVthXT0icmdiKCIr
TWF0aC5tYXgoTWF0aC5taW4ocGFyc2VJbnQoYi5wb3MqKGIuZW5kWzBdLWIuc3RhcnRbMF0pK2Iu
c3RhcnRbMF0sMTApLDI1NSksMCkrIiwiK01hdGgubWF4KE1hdGgubWluKHBhcnNlSW50KGIucG9z
KihiLmVuZFsxXS1iLnN0YXJ0WzFdKStiLnN0YXJ0WzFdLDEwKSwyNTUpLDApKyIsIitNYXRoLm1h
eChNYXRoLm1pbihwYXJzZUludChiLnBvcyooYi5lbmRbMl0tYi5zdGFydFsyXSkrYi5zdGFydFsy
XSwxMCksMjU1KSwwKSsiKSJ9fSk7dmFyIG89e2FxdWE6WzAsMjU1LDI1NV0sYXp1cmU6WzI0MCwy
NTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJsYWNrOlswLAorMCwwXSxibHVlOlswLDAsMjU1
XSxicm93bjpbMTY1LDQyLDQyXSxjeWFuOlswLDI1NSwyNTVdLGRhcmtibHVlOlswLDAsMTM5XSxk
YXJrY3lhbjpbMCwxMzksMTM5XSxkYXJrZ3JleTpbMTY5LDE2OSwxNjldLGRhcmtncmVlbjpbMCwx
MDAsMF0sZGFya2toYWtpOlsxODksMTgzLDEwN10sZGFya21hZ2VudGE6WzEzOSwwLDEzOV0sZGFy
a29saXZlZ3JlZW46Wzg1LDEwNyw0N10sZGFya29yYW5nZTpbMjU1LDE0MCwwXSxkYXJrb3JjaGlk
OlsxNTMsNTAsMjA0XSxkYXJrcmVkOlsxMzksMCwwXSxkYXJrc2FsbW9uOlsyMzMsMTUwLDEyMl0s
ZGFya3Zpb2xldDpbMTQ4LDAsMjExXSxmdWNoc2lhOlsyNTUsMCwyNTVdLGdvbGQ6WzI1NSwyMTUs
MF0sZ3JlZW46WzAsMTI4LDBdLGluZGlnbzpbNzUsMCwxMzBdLGtoYWtpOlsyNDAsMjMwLDE0MF0s
bGlnaHRibHVlOlsxNzMsMjE2LDIzMF0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NV0sbGlnaHRncmVl
bjpbMTQ0LDIzOCwxNDRdLGxpZ2h0Z3JleTpbMjExLAorMjExLDIxMV0sbGlnaHRwaW5rOlsyNTUs
MTgyLDE5M10sbGlnaHR5ZWxsb3c6WzI1NSwyNTUsMjI0XSxsaW1lOlswLDI1NSwwXSxtYWdlbnRh
OlsyNTUsMCwyNTVdLG1hcm9vbjpbMTI4LDAsMF0sbmF2eTpbMCwwLDEyOF0sb2xpdmU6WzEyOCwx
MjgsMF0sb3JhbmdlOlsyNTUsMTY1LDBdLHBpbms6WzI1NSwxOTIsMjAzXSxwdXJwbGU6WzEyOCww
LDEyOF0sdmlvbGV0OlsxMjgsMCwxMjhdLHJlZDpbMjU1LDAsMF0sc2lsdmVyOlsxOTIsMTkyLDE5
Ml0sd2hpdGU6WzI1NSwyNTUsMjU1XSx5ZWxsb3c6WzI1NSwyNTUsMF0sdHJhbnNwYXJlbnQ6WzI1
NSwyNTUsMjU1XX0scj1bImFkZCIsInJlbW92ZSIsInRvZ2dsZSJdLHQ9e2JvcmRlcjoxLGJvcmRl
ckJvdHRvbToxLGJvcmRlckNvbG9yOjEsYm9yZGVyTGVmdDoxLGJvcmRlclJpZ2h0OjEsYm9yZGVy
VG9wOjEsYm9yZGVyV2lkdGg6MSxtYXJnaW46MSxwYWRkaW5nOjF9O2YuZWZmZWN0cy5hbmltYXRl
Q2xhc3M9ZnVuY3Rpb24oYyxhLGIsCitkKXtpZihmLmlzRnVuY3Rpb24oYikpe2Q9YjtiPW51bGx9
cmV0dXJuIHRoaXMucXVldWUoImZ4IixmdW5jdGlvbigpe3ZhciBlPWYodGhpcyksZz1lLmF0dHIo
InN0eWxlIil8fCIgIixoPXEocC5jYWxsKHRoaXMpKSxsLHY9ZS5hdHRyKCJjbGFzc05hbWUiKTtm
LmVhY2gocixmdW5jdGlvbih3LGkpe2NbaV0mJmVbaSsiQ2xhc3MiXShjW2ldKX0pO2w9cShwLmNh
bGwodGhpcykpO2UuYXR0cigiY2xhc3NOYW1lIix2KTtlLmFuaW1hdGUodShoLGwpLGEsYixmdW5j
dGlvbigpe2YuZWFjaChyLGZ1bmN0aW9uKHcsaSl7Y1tpXSYmZVtpKyJDbGFzcyJdKGNbaV0pfSk7
aWYodHlwZW9mIGUuYXR0cigic3R5bGUiKT09Im9iamVjdCIpe2UuYXR0cigic3R5bGUiKS5jc3NU
ZXh0PSIiO2UuYXR0cigic3R5bGUiKS5jc3NUZXh0PWd9ZWxzZSBlLmF0dHIoInN0eWxlIixnKTtk
JiZkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO2g9Zi5xdWV1ZSh0aGlzKTtsPWguc3BsaWNlKGgu
bGVuZ3RoLTEsMSlbMF07CitoLnNwbGljZSgxLDAsbCk7Zi5kZXF1ZXVlKHRoaXMpfSl9O2YuZm4u
ZXh0ZW5kKHtfYWRkQ2xhc3M6Zi5mbi5hZGRDbGFzcyxhZGRDbGFzczpmdW5jdGlvbihjLGEsYixk
KXtyZXR1cm4gYT9mLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmFwcGx5KHRoaXMsW3thZGQ6Y30sYSxi
LGRdKTp0aGlzLl9hZGRDbGFzcyhjKX0sX3JlbW92ZUNsYXNzOmYuZm4ucmVtb3ZlQ2xhc3MscmVt
b3ZlQ2xhc3M6ZnVuY3Rpb24oYyxhLGIsZCl7cmV0dXJuIGE/Zi5lZmZlY3RzLmFuaW1hdGVDbGFz
cy5hcHBseSh0aGlzLFt7cmVtb3ZlOmN9LGEsYixkXSk6dGhpcy5fcmVtb3ZlQ2xhc3MoYyl9LF90
b2dnbGVDbGFzczpmLmZuLnRvZ2dsZUNsYXNzLHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGMsYSxiLGQs
ZSl7cmV0dXJuIHR5cGVvZiBhPT0iYm9vbGVhbiJ8fGE9PT1qP2I/Zi5lZmZlY3RzLmFuaW1hdGVD
bGFzcy5hcHBseSh0aGlzLFthP3thZGQ6Y306e3JlbW92ZTpjfSxiLGQsZV0pOnRoaXMuX3RvZ2ds
ZUNsYXNzKGMsCithKTpmLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmFwcGx5KHRoaXMsW3t0b2dnbGU6
Y30sYSxiLGRdKX0sc3dpdGNoQ2xhc3M6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4gZi5lZmZl
Y3RzLmFuaW1hdGVDbGFzcy5hcHBseSh0aGlzLFt7YWRkOmEscmVtb3ZlOmN9LGIsZCxlXSl9fSk7
Zi5leHRlbmQoZi5lZmZlY3RzLHt2ZXJzaW9uOiIxLjguMTAiLHNhdmU6ZnVuY3Rpb24oYyxhKXtm
b3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKylhW2JdIT09bnVsbCYmYy5kYXRhKCJlYy5zdG9yYWdl
LiIrYVtiXSxjWzBdLnN0eWxlW2FbYl1dKX0scmVzdG9yZTpmdW5jdGlvbihjLGEpe2Zvcih2YXIg
Yj0wO2I8YS5sZW5ndGg7YisrKWFbYl0hPT1udWxsJiZjLmNzcyhhW2JdLGMuZGF0YSgiZWMuc3Rv
cmFnZS4iK2FbYl0pKX0sc2V0TW9kZTpmdW5jdGlvbihjLGEpe2lmKGE9PSJ0b2dnbGUiKWE9Yy5p
cygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSI7cmV0dXJuIGF9LGdldEJhc2VsaW5lOmZ1bmN0aW9u
KGMsCithKXt2YXIgYjtzd2l0Y2goY1swXSl7Y2FzZSAidG9wIjpiPTA7YnJlYWs7Y2FzZSAibWlk
ZGxlIjpiPTAuNTticmVhaztjYXNlICJib3R0b20iOmI9MTticmVhaztkZWZhdWx0OmI9Y1swXS9h
LmhlaWdodH1zd2l0Y2goY1sxXSl7Y2FzZSAibGVmdCI6Yz0wO2JyZWFrO2Nhc2UgImNlbnRlciI6
Yz0wLjU7YnJlYWs7Y2FzZSAicmlnaHQiOmM9MTticmVhaztkZWZhdWx0OmM9Y1sxXS9hLndpZHRo
fXJldHVybnt4OmMseTpifX0sY3JlYXRlV3JhcHBlcjpmdW5jdGlvbihjKXtpZihjLnBhcmVudCgp
LmlzKCIudWktZWZmZWN0cy13cmFwcGVyIikpcmV0dXJuIGMucGFyZW50KCk7dmFyIGE9e3dpZHRo
OmMub3V0ZXJXaWR0aCh0cnVlKSxoZWlnaHQ6Yy5vdXRlckhlaWdodCh0cnVlKSwiZmxvYXQiOmMu
Y3NzKCJmbG9hdCIpfSxiPWYoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3Jh
cHBlciIpLmNzcyh7Zm9udFNpemU6IjEwMCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50IiwKK2Jv
cmRlcjoibm9uZSIsbWFyZ2luOjAscGFkZGluZzowfSk7Yy53cmFwKGIpO2I9Yy5wYXJlbnQoKTtp
ZihjLmNzcygicG9zaXRpb24iKT09InN0YXRpYyIpe2IuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUi
fSk7Yy5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KX1lbHNle2YuZXh0ZW5kKGEse3Bvc2l0aW9u
OmMuY3NzKCJwb3NpdGlvbiIpLHpJbmRleDpjLmNzcygiei1pbmRleCIpfSk7Zi5lYWNoKFsidG9w
IiwibGVmdCIsImJvdHRvbSIsInJpZ2h0Il0sZnVuY3Rpb24oZCxlKXthW2VdPWMuY3NzKGUpO2lm
KGlzTmFOKHBhcnNlSW50KGFbZV0sMTApKSlhW2VdPSJhdXRvIn0pO2MuY3NzKHtwb3NpdGlvbjoi
cmVsYXRpdmUiLHRvcDowLGxlZnQ6MCxyaWdodDoiYXV0byIsYm90dG9tOiJhdXRvIn0pfXJldHVy
biBiLmNzcyhhKS5zaG93KCl9LHJlbW92ZVdyYXBwZXI6ZnVuY3Rpb24oYyl7aWYoYy5wYXJlbnQo
KS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiBjLnBhcmVudCgpLnJlcGxhY2VXaXRo
KGMpOworcmV0dXJuIGN9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24oYyxhLGIsZCl7ZD1kfHx7fTtm
LmVhY2goYSxmdW5jdGlvbihlLGcpe3VuaXQ9Yy5jc3NVbml0KGcpO2lmKHVuaXRbMF0+MClkW2dd
PXVuaXRbMF0qYit1bml0WzFdfSk7cmV0dXJuIGR9fSk7Zi5mbi5leHRlbmQoe2VmZmVjdDpmdW5j
dGlvbihjKXt2YXIgYT1rLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxiPXtvcHRpb25zOmFbMV0sZHVy
YXRpb246YVsyXSxjYWxsYmFjazphWzNdfTthPWIub3B0aW9ucy5tb2RlO3ZhciBkPWYuZWZmZWN0
c1tjXTtpZihmLmZ4Lm9mZnx8IWQpcmV0dXJuIGE/dGhpc1thXShiLmR1cmF0aW9uLGIuY2FsbGJh
Y2spOnRoaXMuZWFjaChmdW5jdGlvbigpe2IuY2FsbGJhY2smJmIuY2FsbGJhY2suY2FsbCh0aGlz
KX0pO3JldHVybiBkLmNhbGwodGhpcyxiKX0sX3Nob3c6Zi5mbi5zaG93LHNob3c6ZnVuY3Rpb24o
Yyl7aWYobShjKSlyZXR1cm4gdGhpcy5fc2hvdy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7CitlbHNl
e3ZhciBhPWsuYXBwbHkodGhpcyxhcmd1bWVudHMpO2FbMV0ubW9kZT0ic2hvdyI7cmV0dXJuIHRo
aXMuZWZmZWN0LmFwcGx5KHRoaXMsYSl9fSxfaGlkZTpmLmZuLmhpZGUsaGlkZTpmdW5jdGlvbihj
KXtpZihtKGMpKXJldHVybiB0aGlzLl9oaWRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlbHNle3Zh
ciBhPWsuYXBwbHkodGhpcyxhcmd1bWVudHMpO2FbMV0ubW9kZT0iaGlkZSI7cmV0dXJuIHRoaXMu
ZWZmZWN0LmFwcGx5KHRoaXMsYSl9fSxfX3RvZ2dsZTpmLmZuLnRvZ2dsZSx0b2dnbGU6ZnVuY3Rp
b24oYyl7aWYobShjKXx8dHlwZW9mIGM9PT0iYm9vbGVhbiJ8fGYuaXNGdW5jdGlvbihjKSlyZXR1
cm4gdGhpcy5fX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZWxzZXt2YXIgYT1rLmFwcGx5
KHRoaXMsYXJndW1lbnRzKTthWzFdLm1vZGU9InRvZ2dsZSI7cmV0dXJuIHRoaXMuZWZmZWN0LmFw
cGx5KHRoaXMsYSl9fSxjc3NVbml0OmZ1bmN0aW9uKGMpe3ZhciBhPXRoaXMuY3NzKGMpLAorYj1b
XTtmLmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZCxlKXtpZihhLmluZGV4T2Yo
ZSk+MCliPVtwYXJzZUZsb2F0KGEpLGVdfSk7cmV0dXJuIGJ9fSk7Zi5lYXNpbmcuanN3aW5nPWYu
ZWFzaW5nLnN3aW5nO2YuZXh0ZW5kKGYuZWFzaW5nLHtkZWY6ImVhc2VPdXRRdWFkIixzd2luZzpm
dW5jdGlvbihjLGEsYixkLGUpe3JldHVybiBmLmVhc2luZ1tmLmVhc2luZy5kZWZdKGMsYSxiLGQs
ZSl9LGVhc2VJblF1YWQ6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4gZCooYS89ZSkqYStifSxl
YXNlT3V0UXVhZDpmdW5jdGlvbihjLGEsYixkLGUpe3JldHVybi1kKihhLz1lKSooYS0yKStifSxl
YXNlSW5PdXRRdWFkOmZ1bmN0aW9uKGMsYSxiLGQsZSl7aWYoKGEvPWUvMik8MSlyZXR1cm4gZC8y
KmEqYStiO3JldHVybi1kLzIqKC0tYSooYS0yKS0xKStifSxlYXNlSW5DdWJpYzpmdW5jdGlvbihj
LGEsYixkLGUpe3JldHVybiBkKihhLz1lKSphKmErYn0sZWFzZU91dEN1YmljOmZ1bmN0aW9uKGMs
CithLGIsZCxlKXtyZXR1cm4gZCooKGE9YS9lLTEpKmEqYSsxKStifSxlYXNlSW5PdXRDdWJpYzpm
dW5jdGlvbihjLGEsYixkLGUpe2lmKChhLz1lLzIpPDEpcmV0dXJuIGQvMiphKmEqYStiO3JldHVy
biBkLzIqKChhLT0yKSphKmErMikrYn0sZWFzZUluUXVhcnQ6ZnVuY3Rpb24oYyxhLGIsZCxlKXty
ZXR1cm4gZCooYS89ZSkqYSphKmErYn0sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKGMsYSxiLGQsZSl7
cmV0dXJuLWQqKChhPWEvZS0xKSphKmEqYS0xKStifSxlYXNlSW5PdXRRdWFydDpmdW5jdGlvbihj
LGEsYixkLGUpe2lmKChhLz1lLzIpPDEpcmV0dXJuIGQvMiphKmEqYSphK2I7cmV0dXJuLWQvMioo
KGEtPTIpKmEqYSphLTIpK2J9LGVhc2VJblF1aW50OmZ1bmN0aW9uKGMsYSxiLGQsZSl7cmV0dXJu
IGQqKGEvPWUpKmEqYSphKmErYn0sZWFzZU91dFF1aW50OmZ1bmN0aW9uKGMsYSxiLGQsZSl7cmV0
dXJuIGQqKChhPWEvZS0xKSphKmEqYSphKzEpK2J9LGVhc2VJbk91dFF1aW50OmZ1bmN0aW9uKGMs
CithLGIsZCxlKXtpZigoYS89ZS8yKTwxKXJldHVybiBkLzIqYSphKmEqYSphK2I7cmV0dXJuIGQv
MiooKGEtPTIpKmEqYSphKmErMikrYn0sZWFzZUluU2luZTpmdW5jdGlvbihjLGEsYixkLGUpe3Jl
dHVybi1kKk1hdGguY29zKGEvZSooTWF0aC5QSS8yKSkrZCtifSxlYXNlT3V0U2luZTpmdW5jdGlv
bihjLGEsYixkLGUpe3JldHVybiBkKk1hdGguc2luKGEvZSooTWF0aC5QSS8yKSkrYn0sZWFzZUlu
T3V0U2luZTpmdW5jdGlvbihjLGEsYixkLGUpe3JldHVybi1kLzIqKE1hdGguY29zKE1hdGguUEkq
YS9lKS0xKStifSxlYXNlSW5FeHBvOmZ1bmN0aW9uKGMsYSxiLGQsZSl7cmV0dXJuIGE9PTA/Yjpk
Kk1hdGgucG93KDIsMTAqKGEvZS0xKSkrYn0sZWFzZU91dEV4cG86ZnVuY3Rpb24oYyxhLGIsZCxl
KXtyZXR1cm4gYT09ZT9iK2Q6ZCooLU1hdGgucG93KDIsLTEwKmEvZSkrMSkrYn0sZWFzZUluT3V0
RXhwbzpmdW5jdGlvbihjLGEsYixkLGUpe2lmKGE9PTApcmV0dXJuIGI7aWYoYT09CitlKXJldHVy
biBiK2Q7aWYoKGEvPWUvMik8MSlyZXR1cm4gZC8yKk1hdGgucG93KDIsMTAqKGEtMSkpK2I7cmV0
dXJuIGQvMiooLU1hdGgucG93KDIsLTEwKi0tYSkrMikrYn0sZWFzZUluQ2lyYzpmdW5jdGlvbihj
LGEsYixkLGUpe3JldHVybi1kKihNYXRoLnNxcnQoMS0oYS89ZSkqYSktMSkrYn0sZWFzZU91dENp
cmM6ZnVuY3Rpb24oYyxhLGIsZCxlKXtyZXR1cm4gZCpNYXRoLnNxcnQoMS0oYT1hL2UtMSkqYSkr
Yn0sZWFzZUluT3V0Q2lyYzpmdW5jdGlvbihjLGEsYixkLGUpe2lmKChhLz1lLzIpPDEpcmV0dXJu
LWQvMiooTWF0aC5zcXJ0KDEtYSphKS0xKStiO3JldHVybiBkLzIqKE1hdGguc3FydCgxLShhLT0y
KSphKSsxKStifSxlYXNlSW5FbGFzdGljOmZ1bmN0aW9uKGMsYSxiLGQsZSl7Yz0xLjcwMTU4O3Zh
ciBnPTAsaD1kO2lmKGE9PTApcmV0dXJuIGI7aWYoKGEvPWUpPT0xKXJldHVybiBiK2Q7Z3x8KGc9
ZSowLjMpO2lmKGg8TWF0aC5hYnMoZCkpe2g9ZDtjPWcvNH1lbHNlIGM9CitnLygyKk1hdGguUEkp
Kk1hdGguYXNpbihkL2gpO3JldHVybi0oaCpNYXRoLnBvdygyLDEwKihhLT0xKSkqTWF0aC5zaW4o
KGEqZS1jKSoyKk1hdGguUEkvZykpK2J9LGVhc2VPdXRFbGFzdGljOmZ1bmN0aW9uKGMsYSxiLGQs
ZSl7Yz0xLjcwMTU4O3ZhciBnPTAsaD1kO2lmKGE9PTApcmV0dXJuIGI7aWYoKGEvPWUpPT0xKXJl
dHVybiBiK2Q7Z3x8KGc9ZSowLjMpO2lmKGg8TWF0aC5hYnMoZCkpe2g9ZDtjPWcvNH1lbHNlIGM9
Zy8oMipNYXRoLlBJKSpNYXRoLmFzaW4oZC9oKTtyZXR1cm4gaCpNYXRoLnBvdygyLC0xMCphKSpN
YXRoLnNpbigoYSplLWMpKjIqTWF0aC5QSS9nKStkK2J9LGVhc2VJbk91dEVsYXN0aWM6ZnVuY3Rp
b24oYyxhLGIsZCxlKXtjPTEuNzAxNTg7dmFyIGc9MCxoPWQ7aWYoYT09MClyZXR1cm4gYjtpZigo
YS89ZS8yKT09MilyZXR1cm4gYitkO2d8fChnPWUqMC4zKjEuNSk7aWYoaDxNYXRoLmFicyhkKSl7
aD1kO2M9Zy80fWVsc2UgYz1nLygyKk1hdGguUEkpKk1hdGguYXNpbihkLworaCk7aWYoYTwxKXJl
dHVybi0wLjUqaCpNYXRoLnBvdygyLDEwKihhLT0xKSkqTWF0aC5zaW4oKGEqZS1jKSoyKk1hdGgu
UEkvZykrYjtyZXR1cm4gaCpNYXRoLnBvdygyLC0xMCooYS09MSkpKk1hdGguc2luKChhKmUtYykq
MipNYXRoLlBJL2cpKjAuNStkK2J9LGVhc2VJbkJhY2s6ZnVuY3Rpb24oYyxhLGIsZCxlLGcpe2lm
KGc9PWopZz0xLjcwMTU4O3JldHVybiBkKihhLz1lKSphKigoZysxKSphLWcpK2J9LGVhc2VPdXRC
YWNrOmZ1bmN0aW9uKGMsYSxiLGQsZSxnKXtpZihnPT1qKWc9MS43MDE1ODtyZXR1cm4gZCooKGE9
YS9lLTEpKmEqKChnKzEpKmErZykrMSkrYn0sZWFzZUluT3V0QmFjazpmdW5jdGlvbihjLGEsYixk
LGUsZyl7aWYoZz09ailnPTEuNzAxNTg7aWYoKGEvPWUvMik8MSlyZXR1cm4gZC8yKmEqYSooKChn
Kj0xLjUyNSkrMSkqYS1nKStiO3JldHVybiBkLzIqKChhLT0yKSphKigoKGcqPTEuNTI1KSsxKSph
K2cpKzIpK2J9LGVhc2VJbkJvdW5jZTpmdW5jdGlvbihjLAorYSxiLGQsZSl7cmV0dXJuIGQtZi5l
YXNpbmcuZWFzZU91dEJvdW5jZShjLGUtYSwwLGQsZSkrYn0sZWFzZU91dEJvdW5jZTpmdW5jdGlv
bihjLGEsYixkLGUpe3JldHVybihhLz1lKTwxLzIuNzU/ZCo3LjU2MjUqYSphK2I6YTwyLzIuNzU/
ZCooNy41NjI1KihhLT0xLjUvMi43NSkqYSswLjc1KStiOmE8Mi41LzIuNzU/ZCooNy41NjI1Kihh
LT0yLjI1LzIuNzUpKmErMC45Mzc1KStiOmQqKDcuNTYyNSooYS09Mi42MjUvMi43NSkqYSswLjk4
NDM3NSkrYn0sZWFzZUluT3V0Qm91bmNlOmZ1bmN0aW9uKGMsYSxiLGQsZSl7aWYoYTxlLzIpcmV0
dXJuIGYuZWFzaW5nLmVhc2VJbkJvdW5jZShjLGEqMiwwLGQsZSkqMC41K2I7cmV0dXJuIGYuZWFz
aW5nLmVhc2VPdXRCb3VuY2UoYyxhKjItZSwwLGQsZSkqMC41K2QqMC41K2J9fSl9KGpRdWVyeSk7
Cis7LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIEJsaW5kIDEuOC4xMAorICoKKyAqIENvcHlyaWdo
dCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwg
bGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0
cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkv
RWZmZWN0cy9CbGluZAorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkuZWZmZWN0cy5jb3JlLmpz
CisgKi8KKyhmdW5jdGlvbihiKXtiLmVmZmVjdHMuYmxpbmQ9ZnVuY3Rpb24oYyl7cmV0dXJuIHRo
aXMucXVldWUoZnVuY3Rpb24oKXt2YXIgYT1iKHRoaXMpLGc9WyJwb3NpdGlvbiIsInRvcCIsImJv
dHRvbSIsImxlZnQiLCJyaWdodCJdLGY9Yi5lZmZlY3RzLnNldE1vZGUoYSxjLm9wdGlvbnMubW9k
ZXx8ImhpZGUiKSxkPWMub3B0aW9ucy5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCI7Yi5lZmZlY3RzLnNh
dmUoYSxnKTthLnNob3coKTt2YXIgZT1iLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihhKS5jc3Moe292
ZXJmbG93OiJoaWRkZW4ifSksaD1kPT0idmVydGljYWwiPyJoZWlnaHQiOiJ3aWR0aCI7ZD1kPT0i
dmVydGljYWwiP2UuaGVpZ2h0KCk6ZS53aWR0aCgpO2Y9PSJzaG93IiYmZS5jc3MoaCwwKTt2YXIg
aT17fTtpW2hdPWY9PSJzaG93Ij9kOjA7ZS5hbmltYXRlKGksYy5kdXJhdGlvbixjLm9wdGlvbnMu
ZWFzaW5nLGZ1bmN0aW9uKCl7Zj09ImhpZGUiJiZhLmhpZGUoKTtiLmVmZmVjdHMucmVzdG9yZShh
LAorZyk7Yi5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoYSk7Yy5jYWxsYmFjayYmYy5jYWxsYmFjay5h
cHBseShhWzBdLGFyZ3VtZW50cyk7YS5kZXF1ZXVlKCl9KX0pfX0pKGpRdWVyeSk7Cis7LyoKKyAq
IGpRdWVyeSBVSSBFZmZlY3RzIEJvdW5jZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwg
QVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2Vk
IHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVl
cnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMv
Qm91bmNlCisgKgorICogRGVwZW5kczoKKyAqCWpxdWVyeS5lZmZlY3RzLmNvcmUuanMKKyAqLwor
KGZ1bmN0aW9uKGUpe2UuZWZmZWN0cy5ib3VuY2U9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMucXVl
dWUoZnVuY3Rpb24oKXt2YXIgYT1lKHRoaXMpLGw9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIs
ImxlZnQiLCJyaWdodCJdLGg9ZS5lZmZlY3RzLnNldE1vZGUoYSxiLm9wdGlvbnMubW9kZXx8ImVm
ZmVjdCIpLGQ9Yi5vcHRpb25zLmRpcmVjdGlvbnx8InVwIixjPWIub3B0aW9ucy5kaXN0YW5jZXx8
MjAsbT1iLm9wdGlvbnMudGltZXN8fDUsaT1iLmR1cmF0aW9ufHwyNTA7L3Nob3d8aGlkZS8udGVz
dChoKSYmbC5wdXNoKCJvcGFjaXR5Iik7ZS5lZmZlY3RzLnNhdmUoYSxsKTthLnNob3coKTtlLmVm
ZmVjdHMuY3JlYXRlV3JhcHBlcihhKTt2YXIgZj1kPT0idXAifHxkPT0iZG93biI/InRvcCI6Imxl
ZnQiO2Q9ZD09InVwInx8ZD09ImxlZnQiPyJwb3MiOiJuZWciO2M9Yi5vcHRpb25zLmRpc3RhbmNl
fHwoZj09InRvcCI/YS5vdXRlckhlaWdodCh7bWFyZ2luOnRydWV9KS8zOmEub3V0ZXJXaWR0aCh7
bWFyZ2luOnRydWV9KS8KKzMpO2lmKGg9PSJzaG93IilhLmNzcygib3BhY2l0eSIsMCkuY3NzKGYs
ZD09InBvcyI/LWM6Yyk7aWYoaD09ImhpZGUiKWMvPW0qMjtoIT0iaGlkZSImJm0tLTtpZihoPT0i
c2hvdyIpe3ZhciBnPXtvcGFjaXR5OjF9O2dbZl09KGQ9PSJwb3MiPyIrPSI6Ii09IikrYzthLmFu
aW1hdGUoZyxpLzIsYi5vcHRpb25zLmVhc2luZyk7Yy89MjttLS19Zm9yKGc9MDtnPG07ZysrKXt2
YXIgaj17fSxrPXt9O2pbZl09KGQ9PSJwb3MiPyItPSI6Iis9IikrYztrW2ZdPShkPT0icG9zIj8i
Kz0iOiItPSIpK2M7YS5hbmltYXRlKGosaS8yLGIub3B0aW9ucy5lYXNpbmcpLmFuaW1hdGUoayxp
LzIsYi5vcHRpb25zLmVhc2luZyk7Yz1oPT0iaGlkZSI/YyoyOmMvMn1pZihoPT0iaGlkZSIpe2c9
e29wYWNpdHk6MH07Z1tmXT0oZD09InBvcyI/Ii09IjoiKz0iKStjO2EuYW5pbWF0ZShnLGkvMixi
Lm9wdGlvbnMuZWFzaW5nLGZ1bmN0aW9uKCl7YS5oaWRlKCk7ZS5lZmZlY3RzLnJlc3RvcmUoYSxs
KTtlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihhKTsKK2IuY2FsbGJhY2smJmIuY2FsbGJhY2suYXBw
bHkodGhpcyxhcmd1bWVudHMpfSl9ZWxzZXtqPXt9O2s9e307altmXT0oZD09InBvcyI/Ii09Ijoi
Kz0iKStjO2tbZl09KGQ9PSJwb3MiPyIrPSI6Ii09IikrYzthLmFuaW1hdGUoaixpLzIsYi5vcHRp
b25zLmVhc2luZykuYW5pbWF0ZShrLGkvMixiLm9wdGlvbnMuZWFzaW5nLGZ1bmN0aW9uKCl7ZS5l
ZmZlY3RzLnJlc3RvcmUoYSxsKTtlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihhKTtiLmNhbGxiYWNr
JiZiLmNhbGxiYWNrLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfWEucXVldWUoImZ4IixmdW5jdGlv
bigpe2EuZGVxdWV1ZSgpfSk7YS5kZXF1ZXVlKCl9KX19KShqUXVlcnkpOworOy8qCisgKiBqUXVl
cnkgVUkgRWZmZWN0cyBDbGlwIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JT
LnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIg
dGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcv
bGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRWZmZWN0cy9DbGlwCisg
KgorICogRGVwZW5kczoKKyAqCWpxdWVyeS5lZmZlY3RzLmNvcmUuanMKKyAqLworKGZ1bmN0aW9u
KGIpe2IuZWZmZWN0cy5jbGlwPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9u
KCl7dmFyIGE9Yih0aGlzKSxpPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0Iiwicmln
aHQiLCJoZWlnaHQiLCJ3aWR0aCJdLGY9Yi5lZmZlY3RzLnNldE1vZGUoYSxlLm9wdGlvbnMubW9k
ZXx8ImhpZGUiKSxjPWUub3B0aW9ucy5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCI7Yi5lZmZlY3RzLnNh
dmUoYSxpKTthLnNob3coKTt2YXIgZD1iLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihhKS5jc3Moe292
ZXJmbG93OiJoaWRkZW4ifSk7ZD1hWzBdLnRhZ05hbWU9PSJJTUciP2Q6YTt2YXIgZz17c2l6ZTpj
PT0idmVydGljYWwiPyJoZWlnaHQiOiJ3aWR0aCIscG9zaXRpb246Yz09InZlcnRpY2FsIj8idG9w
IjoibGVmdCJ9O2M9Yz09InZlcnRpY2FsIj9kLmhlaWdodCgpOmQud2lkdGgoKTtpZihmPT0ic2hv
dyIpe2QuY3NzKGcuc2l6ZSwwKTtkLmNzcyhnLnBvc2l0aW9uLAorYy8yKX12YXIgaD17fTtoW2cu
c2l6ZV09Zj09InNob3ciP2M6MDtoW2cucG9zaXRpb25dPWY9PSJzaG93Ij8wOmMvMjtkLmFuaW1h
dGUoaCx7cXVldWU6ZmFsc2UsZHVyYXRpb246ZS5kdXJhdGlvbixlYXNpbmc6ZS5vcHRpb25zLmVh
c2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe2Y9PSJoaWRlIiYmYS5oaWRlKCk7Yi5lZmZlY3RzLnJl
c3RvcmUoYSxpKTtiLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihhKTtlLmNhbGxiYWNrJiZlLmNhbGxi
YWNrLmFwcGx5KGFbMF0sYXJndW1lbnRzKTthLmRlcXVldWUoKX19KX0pfX0pKGpRdWVyeSk7Cis7
LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIERyb3AgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIw
MTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNl
bnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8v
anF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9FZmZl
Y3RzL0Ryb3AKKyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVjdHMuY29yZS5qcworICov
CisoZnVuY3Rpb24oYyl7Yy5lZmZlY3RzLmRyb3A9ZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMucXVl
dWUoZnVuY3Rpb24oKXt2YXIgYT1jKHRoaXMpLGg9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIs
ImxlZnQiLCJyaWdodCIsIm9wYWNpdHkiXSxlPWMuZWZmZWN0cy5zZXRNb2RlKGEsZC5vcHRpb25z
Lm1vZGV8fCJoaWRlIiksYj1kLm9wdGlvbnMuZGlyZWN0aW9ufHwibGVmdCI7Yy5lZmZlY3RzLnNh
dmUoYSxoKTthLnNob3coKTtjLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihhKTt2YXIgZj1iPT0idXAi
fHxiPT0iZG93biI/InRvcCI6ImxlZnQiO2I9Yj09InVwInx8Yj09ImxlZnQiPyJwb3MiOiJuZWci
O3ZhciBnPWQub3B0aW9ucy5kaXN0YW5jZXx8KGY9PSJ0b3AiP2Eub3V0ZXJIZWlnaHQoe21hcmdp
bjp0cnVlfSkvMjphLm91dGVyV2lkdGgoe21hcmdpbjp0cnVlfSkvMik7aWYoZT09InNob3ciKWEu
Y3NzKCJvcGFjaXR5IiwwKS5jc3MoZixiPT0icG9zIj8tZzpnKTt2YXIgaT17b3BhY2l0eTplPT0K
KyJzaG93Ij8xOjB9O2lbZl09KGU9PSJzaG93Ij9iPT0icG9zIj8iKz0iOiItPSI6Yj09InBvcyI/
Ii09IjoiKz0iKStnO2EuYW5pbWF0ZShpLHtxdWV1ZTpmYWxzZSxkdXJhdGlvbjpkLmR1cmF0aW9u
LGVhc2luZzpkLm9wdGlvbnMuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ZT09ImhpZGUiJiZh
LmhpZGUoKTtjLmVmZmVjdHMucmVzdG9yZShhLGgpO2MuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKGEp
O2QuY2FsbGJhY2smJmQuY2FsbGJhY2suYXBwbHkodGhpcyxhcmd1bWVudHMpO2EuZGVxdWV1ZSgp
fX0pfSl9fSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIEVmZmVjdHMgRXhwbG9kZSAxLjgu
MTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5j
b20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24g
MiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8v
ZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMvRXhwbG9kZQorICoKKyAqIERlcGVuZHM6CisgKglq
cXVlcnkuZWZmZWN0cy5jb3JlLmpzCisgKi8KKyhmdW5jdGlvbihqKXtqLmVmZmVjdHMuZXhwbG9k
ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBjPWEub3B0aW9u
cy5waWVjZXM/TWF0aC5yb3VuZChNYXRoLnNxcnQoYS5vcHRpb25zLnBpZWNlcykpOjMsZD1hLm9w
dGlvbnMucGllY2VzP01hdGgucm91bmQoTWF0aC5zcXJ0KGEub3B0aW9ucy5waWVjZXMpKTozO2Eu
b3B0aW9ucy5tb2RlPWEub3B0aW9ucy5tb2RlPT0idG9nZ2xlIj9qKHRoaXMpLmlzKCI6dmlzaWJs
ZSIpPyJoaWRlIjoic2hvdyI6YS5vcHRpb25zLm1vZGU7dmFyIGI9aih0aGlzKS5zaG93KCkuY3Nz
KCJ2aXNpYmlsaXR5IiwiaGlkZGVuIiksZz1iLm9mZnNldCgpO2cudG9wLT1wYXJzZUludChiLmNz
cygibWFyZ2luVG9wIiksMTApfHwwO2cubGVmdC09cGFyc2VJbnQoYi5jc3MoIm1hcmdpbkxlZnQi
KSwxMCl8fDA7Zm9yKHZhciBoPWIub3V0ZXJXaWR0aCh0cnVlKSxpPWIub3V0ZXJIZWlnaHQodHJ1
ZSksZT0wO2U8YztlKyspZm9yKHZhciBmPQorMDtmPGQ7ZisrKWIuY2xvbmUoKS5hcHBlbmRUbygi
Ym9keSIpLndyYXAoIjxkaXY+PC9kaXY+IikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2li
aWxpdHk6InZpc2libGUiLGxlZnQ6LWYqKGgvZCksdG9wOi1lKihpL2MpfSkucGFyZW50KCkuYWRk
Q2xhc3MoInVpLWVmZmVjdHMtZXhwbG9kZSIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixvdmVy
ZmxvdzoiaGlkZGVuIix3aWR0aDpoL2QsaGVpZ2h0OmkvYyxsZWZ0OmcubGVmdCtmKihoL2QpKyhh
Lm9wdGlvbnMubW9kZT09InNob3ciPyhmLU1hdGguZmxvb3IoZC8yKSkqKGgvZCk6MCksdG9wOmcu
dG9wK2UqKGkvYykrKGEub3B0aW9ucy5tb2RlPT0ic2hvdyI/KGUtTWF0aC5mbG9vcihjLzIpKSoo
aS9jKTowKSxvcGFjaXR5OmEub3B0aW9ucy5tb2RlPT0ic2hvdyI/MDoxfSkuYW5pbWF0ZSh7bGVm
dDpnLmxlZnQrZiooaC9kKSsoYS5vcHRpb25zLm1vZGU9PSJzaG93Ij8wOihmLU1hdGguZmxvb3Io
ZC8yKSkqKGgvZCkpLHRvcDpnLnRvcCsKK2UqKGkvYykrKGEub3B0aW9ucy5tb2RlPT0ic2hvdyI/
MDooZS1NYXRoLmZsb29yKGMvMikpKihpL2MpKSxvcGFjaXR5OmEub3B0aW9ucy5tb2RlPT0ic2hv
dyI/MTowfSxhLmR1cmF0aW9ufHw1MDApO3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLm9wdGlvbnMu
bW9kZT09InNob3ciP2IuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pOmIuY3NzKHt2aXNpYmls
aXR5OiJ2aXNpYmxlIn0pLmhpZGUoKTthLmNhbGxiYWNrJiZhLmNhbGxiYWNrLmFwcGx5KGJbMF0p
O2IuZGVxdWV1ZSgpO2ooImRpdi51aS1lZmZlY3RzLWV4cGxvZGUiKS5yZW1vdmUoKX0sYS5kdXJh
dGlvbnx8NTAwKX0pfX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIEZhZGUg
MS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5
dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJz
aW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0
cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9FZmZlY3RzL0ZhZGUKKyAqCisgKiBEZXBlbmRzOgorICoJ
anF1ZXJ5LmVmZmVjdHMuY29yZS5qcworICovCisoZnVuY3Rpb24oYil7Yi5lZmZlY3RzLmZhZGU9
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgYz1iKHRoaXMpLGQ9
Yi5lZmZlY3RzLnNldE1vZGUoYyxhLm9wdGlvbnMubW9kZXx8ImhpZGUiKTtjLmFuaW1hdGUoe29w
YWNpdHk6ZH0se3F1ZXVlOmZhbHNlLGR1cmF0aW9uOmEuZHVyYXRpb24sZWFzaW5nOmEub3B0aW9u
cy5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXthLmNhbGxiYWNrJiZhLmNhbGxiYWNrLmFwcGx5
KHRoaXMsYXJndW1lbnRzKTtjLmRlcXVldWUoKX19KX0pfX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpR
dWVyeSBVSSBFZmZlY3RzIEZvbGQgMS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhP
UlMudHh0IChodHRwOi8vanF1ZXJ5dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRl
ciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9y
Zy9saWNlbnNlCisgKgorICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9FZmZlY3RzL0ZvbGQK
KyAqCisgKiBEZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVjdHMuY29yZS5qcworICovCisoZnVuY3Rp
b24oYyl7Yy5lZmZlY3RzLmZvbGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rp
b24oKXt2YXIgYj1jKHRoaXMpLGo9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJy
aWdodCJdLGQ9Yy5lZmZlY3RzLnNldE1vZGUoYixhLm9wdGlvbnMubW9kZXx8ImhpZGUiKSxnPWEu
b3B0aW9ucy5zaXplfHwxNSxoPSEhYS5vcHRpb25zLmhvcml6Rmlyc3Qsaz1hLmR1cmF0aW9uP2Eu
ZHVyYXRpb24vMjpjLmZ4LnNwZWVkcy5fZGVmYXVsdC8yO2MuZWZmZWN0cy5zYXZlKGIsaik7Yi5z
aG93KCk7dmFyIGU9Yy5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoYikuY3NzKHtvdmVyZmxvdzoiaGlk
ZGVuIn0pLGY9ZD09InNob3ciIT1oLGw9Zj9bIndpZHRoIiwiaGVpZ2h0Il06WyJoZWlnaHQiLCJ3
aWR0aCJdO2Y9Zj9bZS53aWR0aCgpLGUuaGVpZ2h0KCldOltlLmhlaWdodCgpLGUud2lkdGgoKV07
dmFyIGk9LyhbMC05XSspJS8uZXhlYyhnKTtpZihpKWc9cGFyc2VJbnQoaVsxXSwKKzEwKS8xMDAq
ZltkPT0iaGlkZSI/MDoxXTtpZihkPT0ic2hvdyIpZS5jc3MoaD97aGVpZ2h0OjAsd2lkdGg6Z306
e2hlaWdodDpnLHdpZHRoOjB9KTtoPXt9O2k9e307aFtsWzBdXT1kPT0ic2hvdyI/ZlswXTpnO2lb
bFsxXV09ZD09InNob3ciP2ZbMV06MDtlLmFuaW1hdGUoaCxrLGEub3B0aW9ucy5lYXNpbmcpLmFu
aW1hdGUoaSxrLGEub3B0aW9ucy5lYXNpbmcsZnVuY3Rpb24oKXtkPT0iaGlkZSImJmIuaGlkZSgp
O2MuZWZmZWN0cy5yZXN0b3JlKGIsaik7Yy5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoYik7YS5jYWxs
YmFjayYmYS5jYWxsYmFjay5hcHBseShiWzBdLGFyZ3VtZW50cyk7Yi5kZXF1ZXVlKCl9KX0pfX0p
KGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIEhpZ2hsaWdodCAxLjguMTAKKyAq
CisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJv
dXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNl
bnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisgKiBodHRwOi8vZG9jcy5q
cXVlcnkuY29tL1VJL0VmZmVjdHMvSGlnaGxpZ2h0CisgKgorICogRGVwZW5kczoKKyAqCWpxdWVy
eS5lZmZlY3RzLmNvcmUuanMKKyAqLworKGZ1bmN0aW9uKGIpe2IuZWZmZWN0cy5oaWdobGlnaHQ9
ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgYT1iKHRoaXMpLGU9
WyJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kQ29sb3IiLCJvcGFjaXR5Il0sZD1iLmVmZmVj
dHMuc2V0TW9kZShhLGMub3B0aW9ucy5tb2RlfHwic2hvdyIpLGY9e2JhY2tncm91bmRDb2xvcjph
LmNzcygiYmFja2dyb3VuZENvbG9yIil9O2lmKGQ9PSJoaWRlIilmLm9wYWNpdHk9MDtiLmVmZmVj
dHMuc2F2ZShhLGUpO2Euc2hvdygpLmNzcyh7YmFja2dyb3VuZEltYWdlOiJub25lIixiYWNrZ3Jv
dW5kQ29sb3I6Yy5vcHRpb25zLmNvbG9yfHwiI2ZmZmY5OSJ9KS5hbmltYXRlKGYse3F1ZXVlOmZh
bHNlLGR1cmF0aW9uOmMuZHVyYXRpb24sZWFzaW5nOmMub3B0aW9ucy5lYXNpbmcsY29tcGxldGU6
ZnVuY3Rpb24oKXtkPT0iaGlkZSImJmEuaGlkZSgpO2IuZWZmZWN0cy5yZXN0b3JlKGEsZSk7ZD09
InNob3ciJiYhYi5zdXBwb3J0Lm9wYWNpdHkmJgordGhpcy5zdHlsZS5yZW1vdmVBdHRyaWJ1dGUo
ImZpbHRlciIpO2MuY2FsbGJhY2smJmMuY2FsbGJhY2suYXBwbHkodGhpcyxhcmd1bWVudHMpO2Eu
ZGVxdWV1ZSgpfX0pfSl9fSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIEVmZmVjdHMgUHVs
c2F0ZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQgKGh0dHA6Ly9q
cXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BM
IFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKKyAqCisg
KiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMvUHVsc2F0ZQorICoKKyAqIERlcGVu
ZHM6CisgKglqcXVlcnkuZWZmZWN0cy5jb3JlLmpzCisgKi8KKyhmdW5jdGlvbihkKXtkLmVmZmVj
dHMucHVsc2F0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBi
PWQodGhpcyksYz1kLmVmZmVjdHMuc2V0TW9kZShiLGEub3B0aW9ucy5tb2RlfHwic2hvdyIpO3Rp
bWVzPShhLm9wdGlvbnMudGltZXN8fDUpKjItMTtkdXJhdGlvbj1hLmR1cmF0aW9uP2EuZHVyYXRp
b24vMjpkLmZ4LnNwZWVkcy5fZGVmYXVsdC8yO2lzVmlzaWJsZT1iLmlzKCI6dmlzaWJsZSIpO2Fu
aW1hdGVUbz0wO2lmKCFpc1Zpc2libGUpe2IuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCk7YW5pbWF0
ZVRvPTF9aWYoYz09ImhpZGUiJiZpc1Zpc2libGV8fGM9PSJzaG93IiYmIWlzVmlzaWJsZSl0aW1l
cy0tO2ZvcihjPTA7Yzx0aW1lcztjKyspe2IuYW5pbWF0ZSh7b3BhY2l0eTphbmltYXRlVG99LGR1
cmF0aW9uLGEub3B0aW9ucy5lYXNpbmcpO2FuaW1hdGVUbz0oYW5pbWF0ZVRvKzEpJTJ9Yi5hbmlt
YXRlKHtvcGFjaXR5OmFuaW1hdGVUb30sZHVyYXRpb24sCithLm9wdGlvbnMuZWFzaW5nLGZ1bmN0
aW9uKCl7YW5pbWF0ZVRvPT0wJiZiLmhpZGUoKTthLmNhbGxiYWNrJiZhLmNhbGxiYWNrLmFwcGx5
KHRoaXMsYXJndW1lbnRzKX0pO2IucXVldWUoImZ4IixmdW5jdGlvbigpe2IuZGVxdWV1ZSgpfSku
ZGVxdWV1ZSgpfSl9fSkoalF1ZXJ5KTsKKzsvKgorICogalF1ZXJ5IFVJIEVmZmVjdHMgU2NhbGUg
MS44LjEwCisgKgorICogQ29weXJpZ2h0IDIwMTEsIEFVVEhPUlMudHh0IChodHRwOi8vanF1ZXJ5
dWkuY29tL2Fib3V0KQorICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJz
aW9uIDIgbGljZW5zZXMuCisgKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCisgKgorICogaHR0
cDovL2RvY3MuanF1ZXJ5LmNvbS9VSS9FZmZlY3RzL1NjYWxlCisgKgorICogRGVwZW5kczoKKyAq
CWpxdWVyeS5lZmZlY3RzLmNvcmUuanMKKyAqLworKGZ1bmN0aW9uKGMpe2MuZWZmZWN0cy5wdWZm
PWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGE9Yyh0aGlzKSxl
PWMuZWZmZWN0cy5zZXRNb2RlKGEsYi5vcHRpb25zLm1vZGV8fCJoaWRlIiksZz1wYXJzZUludChi
Lm9wdGlvbnMucGVyY2VudCwxMCl8fDE1MCxoPWcvMTAwLGk9e2hlaWdodDphLmhlaWdodCgpLHdp
ZHRoOmEud2lkdGgoKX07Yy5leHRlbmQoYi5vcHRpb25zLHtmYWRlOnRydWUsbW9kZTplLHBlcmNl
bnQ6ZT09ImhpZGUiP2c6MTAwLGZyb206ZT09ImhpZGUiP2k6e2hlaWdodDppLmhlaWdodCpoLHdp
ZHRoOmkud2lkdGgqaH19KTthLmVmZmVjdCgic2NhbGUiLGIub3B0aW9ucyxiLmR1cmF0aW9uLGIu
Y2FsbGJhY2spO2EuZGVxdWV1ZSgpfSl9O2MuZWZmZWN0cy5zY2FsZT1mdW5jdGlvbihiKXtyZXR1
cm4gdGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBhPWModGhpcyksZT1jLmV4dGVuZCh0cnVlLHt9
LGIub3B0aW9ucyksZz1jLmVmZmVjdHMuc2V0TW9kZShhLAorYi5vcHRpb25zLm1vZGV8fCJlZmZl
Y3QiKSxoPXBhcnNlSW50KGIub3B0aW9ucy5wZXJjZW50LDEwKXx8KHBhcnNlSW50KGIub3B0aW9u
cy5wZXJjZW50LDEwKT09MD8wOmc9PSJoaWRlIj8wOjEwMCksaT1iLm9wdGlvbnMuZGlyZWN0aW9u
fHwiYm90aCIsZj1iLm9wdGlvbnMub3JpZ2luO2lmKGchPSJlZmZlY3QiKXtlLm9yaWdpbj1mfHxb
Im1pZGRsZSIsImNlbnRlciJdO2UucmVzdG9yZT10cnVlfWY9e2hlaWdodDphLmhlaWdodCgpLHdp
ZHRoOmEud2lkdGgoKX07YS5mcm9tPWIub3B0aW9ucy5mcm9tfHwoZz09InNob3ciP3toZWlnaHQ6
MCx3aWR0aDowfTpmKTtoPXt5OmkhPSJob3Jpem9udGFsIj9oLzEwMDoxLHg6aSE9InZlcnRpY2Fs
Ij9oLzEwMDoxfTthLnRvPXtoZWlnaHQ6Zi5oZWlnaHQqaC55LHdpZHRoOmYud2lkdGgqaC54fTtp
ZihiLm9wdGlvbnMuZmFkZSl7aWYoZz09InNob3ciKXthLmZyb20ub3BhY2l0eT0wO2EudG8ub3Bh
Y2l0eT0xfWlmKGc9PSJoaWRlIil7YS5mcm9tLm9wYWNpdHk9CisxO2EudG8ub3BhY2l0eT0wfX1l
LmZyb209YS5mcm9tO2UudG89YS50bztlLm1vZGU9ZzthLmVmZmVjdCgic2l6ZSIsZSxiLmR1cmF0
aW9uLGIuY2FsbGJhY2spO2EuZGVxdWV1ZSgpfSl9O2MuZWZmZWN0cy5zaXplPWZ1bmN0aW9uKGIp
e3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGE9Yyh0aGlzKSxlPVsicG9zaXRpb24i
LCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93
Iiwib3BhY2l0eSJdLGc9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIs
Im92ZXJmbG93Iiwib3BhY2l0eSJdLGg9WyJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Il0saT1b
ImZvbnRTaXplIl0sZj1bImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJwYWRk
aW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLGs9WyJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdo
dFdpZHRoIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiXSwKK3A9Yy5lZmZlY3RzLnNldE1v
ZGUoYSxiLm9wdGlvbnMubW9kZXx8ImVmZmVjdCIpLG49Yi5vcHRpb25zLnJlc3RvcmV8fGZhbHNl
LG09Yi5vcHRpb25zLnNjYWxlfHwiYm90aCIsbD1iLm9wdGlvbnMub3JpZ2luLGo9e2hlaWdodDph
LmhlaWdodCgpLHdpZHRoOmEud2lkdGgoKX07YS5mcm9tPWIub3B0aW9ucy5mcm9tfHxqO2EudG89
Yi5vcHRpb25zLnRvfHxqO2lmKGwpe2w9Yy5lZmZlY3RzLmdldEJhc2VsaW5lKGwsaik7YS5mcm9t
LnRvcD0oai5oZWlnaHQtYS5mcm9tLmhlaWdodCkqbC55O2EuZnJvbS5sZWZ0PShqLndpZHRoLWEu
ZnJvbS53aWR0aCkqbC54O2EudG8udG9wPShqLmhlaWdodC1hLnRvLmhlaWdodCkqbC55O2EudG8u
bGVmdD0oai53aWR0aC1hLnRvLndpZHRoKSpsLnh9dmFyIGQ9e2Zyb206e3k6YS5mcm9tLmhlaWdo
dC9qLmhlaWdodCx4OmEuZnJvbS53aWR0aC9qLndpZHRofSx0bzp7eTphLnRvLmhlaWdodC9qLmhl
aWdodCx4OmEudG8ud2lkdGgvai53aWR0aH19OworaWYobT09ImJveCJ8fG09PSJib3RoIil7aWYo
ZC5mcm9tLnkhPWQudG8ueSl7ZT1lLmNvbmNhdChmKTthLmZyb209Yy5lZmZlY3RzLnNldFRyYW5z
aXRpb24oYSxmLGQuZnJvbS55LGEuZnJvbSk7YS50bz1jLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihh
LGYsZC50by55LGEudG8pfWlmKGQuZnJvbS54IT1kLnRvLngpe2U9ZS5jb25jYXQoayk7YS5mcm9t
PWMuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGEsayxkLmZyb20ueCxhLmZyb20pO2EudG89Yy5lZmZl
Y3RzLnNldFRyYW5zaXRpb24oYSxrLGQudG8ueCxhLnRvKX19aWYobT09ImNvbnRlbnQifHxtPT0i
Ym90aCIpaWYoZC5mcm9tLnkhPWQudG8ueSl7ZT1lLmNvbmNhdChpKTthLmZyb209Yy5lZmZlY3Rz
LnNldFRyYW5zaXRpb24oYSxpLGQuZnJvbS55LGEuZnJvbSk7YS50bz1jLmVmZmVjdHMuc2V0VHJh
bnNpdGlvbihhLGksZC50by55LGEudG8pfWMuZWZmZWN0cy5zYXZlKGEsbj9lOmcpO2Euc2hvdygp
O2MuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKGEpOworYS5jc3MoIm92ZXJmbG93IiwiaGlkZGVuIiku
Y3NzKGEuZnJvbSk7aWYobT09ImNvbnRlbnQifHxtPT0iYm90aCIpe2Y9Zi5jb25jYXQoWyJtYXJn
aW5Ub3AiLCJtYXJnaW5Cb3R0b20iXSkuY29uY2F0KGkpO2s9ay5jb25jYXQoWyJtYXJnaW5MZWZ0
IiwibWFyZ2luUmlnaHQiXSk7aD1lLmNvbmNhdChmKS5jb25jYXQoayk7YS5maW5kKCIqW3dpZHRo
XSIpLmVhY2goZnVuY3Rpb24oKXtjaGlsZD1jKHRoaXMpO24mJmMuZWZmZWN0cy5zYXZlKGNoaWxk
LGgpO3ZhciBvPXtoZWlnaHQ6Y2hpbGQuaGVpZ2h0KCksd2lkdGg6Y2hpbGQud2lkdGgoKX07Y2hp
bGQuZnJvbT17aGVpZ2h0Om8uaGVpZ2h0KmQuZnJvbS55LHdpZHRoOm8ud2lkdGgqZC5mcm9tLnh9
O2NoaWxkLnRvPXtoZWlnaHQ6by5oZWlnaHQqZC50by55LHdpZHRoOm8ud2lkdGgqZC50by54fTtp
ZihkLmZyb20ueSE9ZC50by55KXtjaGlsZC5mcm9tPWMuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGNo
aWxkLGYsZC5mcm9tLnksY2hpbGQuZnJvbSk7CitjaGlsZC50bz1jLmVmZmVjdHMuc2V0VHJhbnNp
dGlvbihjaGlsZCxmLGQudG8ueSxjaGlsZC50byl9aWYoZC5mcm9tLnghPWQudG8ueCl7Y2hpbGQu
ZnJvbT1jLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihjaGlsZCxrLGQuZnJvbS54LGNoaWxkLmZyb20p
O2NoaWxkLnRvPWMuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGNoaWxkLGssZC50by54LGNoaWxkLnRv
KX1jaGlsZC5jc3MoY2hpbGQuZnJvbSk7Y2hpbGQuYW5pbWF0ZShjaGlsZC50byxiLmR1cmF0aW9u
LGIub3B0aW9ucy5lYXNpbmcsZnVuY3Rpb24oKXtuJiZjLmVmZmVjdHMucmVzdG9yZShjaGlsZCxo
KX0pfSl9YS5hbmltYXRlKGEudG8se3F1ZXVlOmZhbHNlLGR1cmF0aW9uOmIuZHVyYXRpb24sZWFz
aW5nOmIub3B0aW9ucy5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXthLnRvLm9wYWNpdHk9PT0w
JiZhLmNzcygib3BhY2l0eSIsYS5mcm9tLm9wYWNpdHkpO3A9PSJoaWRlIiYmYS5oaWRlKCk7Yy5l
ZmZlY3RzLnJlc3RvcmUoYSwKK24/ZTpnKTtjLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihhKTtiLmNh
bGxiYWNrJiZiLmNhbGxiYWNrLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthLmRlcXVldWUoKX19KX0p
fX0pKGpRdWVyeSk7Cis7LyoKKyAqIGpRdWVyeSBVSSBFZmZlY3RzIFNoYWtlIDEuOC4xMAorICoK
KyAqIENvcHlyaWdodCAyMDExLCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91
dCkKKyAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vu
c2VzLgorICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpx
dWVyeS5jb20vVUkvRWZmZWN0cy9TaGFrZQorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkuZWZm
ZWN0cy5jb3JlLmpzCisgKi8KKyhmdW5jdGlvbihkKXtkLmVmZmVjdHMuc2hha2U9ZnVuY3Rpb24o
YSl7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgYj1kKHRoaXMpLGo9WyJwb3NpdGlv
biIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCJdO2QuZWZmZWN0cy5zZXRNb2RlKGIsYS5v
cHRpb25zLm1vZGV8fCJlZmZlY3QiKTt2YXIgYz1hLm9wdGlvbnMuZGlyZWN0aW9ufHwibGVmdCIs
ZT1hLm9wdGlvbnMuZGlzdGFuY2V8fDIwLGw9YS5vcHRpb25zLnRpbWVzfHwzLGY9YS5kdXJhdGlv
bnx8YS5vcHRpb25zLmR1cmF0aW9ufHwxNDA7ZC5lZmZlY3RzLnNhdmUoYixqKTtiLnNob3coKTtk
LmVmZmVjdHMuY3JlYXRlV3JhcHBlcihiKTt2YXIgZz1jPT0idXAifHxjPT0iZG93biI/InRvcCI6
ImxlZnQiLGg9Yz09InVwInx8Yz09ImxlZnQiPyJwb3MiOiJuZWciO2M9e307dmFyIGk9e30saz17
fTtjW2ddPShoPT0icG9zIj8iLT0iOiIrPSIpK2U7aVtnXT0oaD09InBvcyI/Iis9IjoiLT0iKStl
KjI7a1tnXT0KKyhoPT0icG9zIj8iLT0iOiIrPSIpK2UqMjtiLmFuaW1hdGUoYyxmLGEub3B0aW9u
cy5lYXNpbmcpO2ZvcihlPTE7ZTxsO2UrKyliLmFuaW1hdGUoaSxmLGEub3B0aW9ucy5lYXNpbmcp
LmFuaW1hdGUoayxmLGEub3B0aW9ucy5lYXNpbmcpO2IuYW5pbWF0ZShpLGYsYS5vcHRpb25zLmVh
c2luZykuYW5pbWF0ZShjLGYvMixhLm9wdGlvbnMuZWFzaW5nLGZ1bmN0aW9uKCl7ZC5lZmZlY3Rz
LnJlc3RvcmUoYixqKTtkLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihiKTthLmNhbGxiYWNrJiZhLmNh
bGxiYWNrLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO2IucXVldWUoImZ4IixmdW5jdGlvbigpe2Iu
ZGVxdWV1ZSgpfSk7Yi5kZXF1ZXVlKCl9KX19KShqUXVlcnkpOworOy8qCisgKiBqUXVlcnkgVUkg
RWZmZWN0cyBTbGlkZSAxLjguMTAKKyAqCisgKiBDb3B5cmlnaHQgMjAxMSwgQVVUSE9SUy50eHQg
KGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCisgKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBN
SVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KKyAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vu
c2UKKyAqCisgKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL1VJL0VmZmVjdHMvU2xpZGUKKyAqCisg
KiBEZXBlbmRzOgorICoJanF1ZXJ5LmVmZmVjdHMuY29yZS5qcworICovCisoZnVuY3Rpb24oYyl7
Yy5lZmZlY3RzLnNsaWRlPWZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7
dmFyIGE9Yyh0aGlzKSxoPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQi
XSxmPWMuZWZmZWN0cy5zZXRNb2RlKGEsZC5vcHRpb25zLm1vZGV8fCJzaG93IiksYj1kLm9wdGlv
bnMuZGlyZWN0aW9ufHwibGVmdCI7Yy5lZmZlY3RzLnNhdmUoYSxoKTthLnNob3coKTtjLmVmZmVj
dHMuY3JlYXRlV3JhcHBlcihhKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSk7dmFyIGc9Yj09InVw
Inx8Yj09ImRvd24iPyJ0b3AiOiJsZWZ0IjtiPWI9PSJ1cCJ8fGI9PSJsZWZ0Ij8icG9zIjoibmVn
Ijt2YXIgZT1kLm9wdGlvbnMuZGlzdGFuY2V8fChnPT0idG9wIj9hLm91dGVySGVpZ2h0KHttYXJn
aW46dHJ1ZX0pOmEub3V0ZXJXaWR0aCh7bWFyZ2luOnRydWV9KSk7aWYoZj09InNob3ciKWEuY3Nz
KGcsYj09InBvcyI/aXNOYU4oZSk/Ii0iK2U6LWU6ZSk7Cit2YXIgaT17fTtpW2ddPShmPT0ic2hv
dyI/Yj09InBvcyI/Iis9IjoiLT0iOmI9PSJwb3MiPyItPSI6Iis9IikrZTthLmFuaW1hdGUoaSx7
cXVldWU6ZmFsc2UsZHVyYXRpb246ZC5kdXJhdGlvbixlYXNpbmc6ZC5vcHRpb25zLmVhc2luZyxj
b21wbGV0ZTpmdW5jdGlvbigpe2Y9PSJoaWRlIiYmYS5oaWRlKCk7Yy5lZmZlY3RzLnJlc3RvcmUo
YSxoKTtjLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihhKTtkLmNhbGxiYWNrJiZkLmNhbGxiYWNrLmFw
cGx5KHRoaXMsYXJndW1lbnRzKTthLmRlcXVldWUoKX19KX0pfX0pKGpRdWVyeSk7Cis7LyoKKyAq
IGpRdWVyeSBVSSBFZmZlY3RzIFRyYW5zZmVyIDEuOC4xMAorICoKKyAqIENvcHlyaWdodCAyMDEx
LCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKyAqIER1YWwgbGljZW5z
ZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLgorICogaHR0cDovL2px
dWVyeS5vcmcvbGljZW5zZQorICoKKyAqIGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVUkvRWZmZWN0
cy9UcmFuc2ZlcgorICoKKyAqIERlcGVuZHM6CisgKglqcXVlcnkuZWZmZWN0cy5jb3JlLmpzCisg
Ki8KKyhmdW5jdGlvbihlKXtlLmVmZmVjdHMudHJhbnNmZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHRo
aXMucXVldWUoZnVuY3Rpb24oKXt2YXIgYj1lKHRoaXMpLGM9ZShhLm9wdGlvbnMudG8pLGQ9Yy5v
ZmZzZXQoKTtjPXt0b3A6ZC50b3AsbGVmdDpkLmxlZnQsaGVpZ2h0OmMuaW5uZXJIZWlnaHQoKSx3
aWR0aDpjLmlubmVyV2lkdGgoKX07ZD1iLm9mZnNldCgpO3ZhciBmPWUoJzxkaXYgY2xhc3M9InVp
LWVmZmVjdHMtdHJhbnNmZXIiPjwvZGl2PicpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmFkZENs
YXNzKGEub3B0aW9ucy5jbGFzc05hbWUpLmNzcyh7dG9wOmQudG9wLGxlZnQ6ZC5sZWZ0LGhlaWdo
dDpiLmlubmVySGVpZ2h0KCksd2lkdGg6Yi5pbm5lcldpZHRoKCkscG9zaXRpb246ImFic29sdXRl
In0pLmFuaW1hdGUoYyxhLmR1cmF0aW9uLGEub3B0aW9ucy5lYXNpbmcsZnVuY3Rpb24oKXtmLnJl
bW92ZSgpO2EuY2FsbGJhY2smJmEuY2FsbGJhY2suYXBwbHkoYlswXSxhcmd1bWVudHMpOworYi5k
ZXF1ZXVlKCl9KX0pfX0pKGpRdWVyeSk7Cis7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvanMvc2tpbnMvbGlnaHRncmF5L2NvbnRlbnQuaW5saW5lLm1pbi5jc3MgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkv
Y29udGVudC5pbmxpbmUubWluLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uOWYxOTRmNmE2NDkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvY29udGVudC5p
bmxpbmUubWluLmNzcwpAQCAtMCwwICsxIEBACisubWNlLW9iamVjdHtib3JkZXI6MXB4IGRvdHRl
ZCAjM0EzQTNBO2JhY2tncm91bmQ6I2Q1ZDVkNSB1cmwoaW1nL29iamVjdC5naWYpIG5vLXJlcGVh
dCBjZW50ZXJ9Lm1jZS1wYWdlYnJlYWt7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpibG9jaztib3Jk
ZXI6MDt3aWR0aDoxMDAlO2hlaWdodDo1cHg7Ym9yZGVyOjFweCBkYXNoZWQgIzY2NjttYXJnaW4t
dG9wOjE1cHg7cGFnZS1icmVhay1iZWZvcmU6YWx3YXlzfUBtZWRpYSBwcmludHsubWNlLXBhZ2Vi
cmVha3tib3JkZXI6MHB4fX0ubWNlLWl0ZW0tYW5jaG9ye2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6
aW5saW5lLWJsb2NrOy13ZWJraXQtdXNlci1zZWxlY3Q6YWxsOy13ZWJraXQtdXNlci1tb2RpZnk6
cmVhZC1vbmx5Oy1tb3otdXNlci1zZWxlY3Q6YWxsOy1tb3otdXNlci1tb2RpZnk6cmVhZC1vbmx5
O3VzZXItc2VsZWN0OmFsbDt1c2VyLW1vZGlmeTpyZWFkLW9ubHk7d2lkdGg6OXB4ICFpbXBvcnRh
bnQ7aGVpZ2h0OjlweCAhaW1wb3J0YW50O2JvcmRlcjoxcHggZG90dGVkICMzQTNBM0E7YmFja2dy
b3VuZDojZDVkNWQ1IHVybChpbWcvYW5jaG9yLmdpZikgbm8tcmVwZWF0IGNlbnRlcn0ubWNlLW5i
c3B7YmFja2dyb3VuZDojQUFBfWhye2N1cnNvcjpkZWZhdWx0fS5tY2UtbWF0Y2gtbWFya2Vye2Jh
Y2tncm91bmQ6I0FBQTtjb2xvcjojZmZmfS5tY2UtbWF0Y2gtbWFya2VyLXNlbGVjdGVke2JhY2tn
cm91bmQ6IzMzOTlmZjtjb2xvcjojZmZmfS5tY2Utc3BlbGxjaGVja2VyLXdvcmR7Ym9yZGVyLWJv
dHRvbToycHggc29saWQgI0YwMDtjdXJzb3I6ZGVmYXVsdH0ubWNlLXNwZWxsY2hlY2tlci1ncmFt
bWFye2JvcmRlci1ib3R0b206MnB4IHNvbGlkICMwMDgwMDA7Y3Vyc29yOmRlZmF1bHR9Lm1jZS1p
dGVtLXRhYmxlLC5tY2UtaXRlbS10YWJsZSB0ZCwubWNlLWl0ZW0tdGFibGUgdGgsLm1jZS1pdGVt
LXRhYmxlIGNhcHRpb257Ym9yZGVyOjFweCBkYXNoZWQgI0JCQn10ZC5tY2UtaXRlbS1zZWxlY3Rl
ZCx0aC5tY2UtaXRlbS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiMzMzk5ZmYgIWltcG9ydGFu
dH0ubWNlLWVkaXQtZm9jdXN7b3V0bGluZToxcHggZG90dGVkICMzMzN9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2NvbnRlbnQubWluLmNzcyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xp
Z2h0Z3JheS9jb250ZW50Lm1pbi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmVhMDhjNjg5NmZlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2NvbnRlbnQu
bWluLmNzcwpAQCAtMCwwICsxIEBACitib2R5e2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRjtjb2xv
cjojMDAwMDAwO2ZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7
Zm9udC1zaXplOjExcHg7c2Nyb2xsYmFyLTNkbGlnaHQtY29sb3I6I0YwRjBFRTtzY3JvbGxiYXIt
YXJyb3ctY29sb3I6IzY3NjY2MjtzY3JvbGxiYXItYmFzZS1jb2xvcjojRjBGMEVFO3Njcm9sbGJh
ci1kYXJrc2hhZG93LWNvbG9yOiNEREREREQ7c2Nyb2xsYmFyLWZhY2UtY29sb3I6I0UwRTBERDtz
Y3JvbGxiYXItaGlnaGxpZ2h0LWNvbG9yOiNGMEYwRUU7c2Nyb2xsYmFyLXNoYWRvdy1jb2xvcjoj
RjBGMEVFO3Njcm9sbGJhci10cmFjay1jb2xvcjojRjVGNUY1fXRkLHRoe2ZvbnQtZmFtaWx5OlZl
cmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHh9Lm1jZS1vYmpl
Y3R7Ym9yZGVyOjFweCBkb3R0ZWQgIzNBM0EzQTtiYWNrZ3JvdW5kOiNkNWQ1ZDUgdXJsKGltZy9v
YmplY3QuZ2lmKSBuby1yZXBlYXQgY2VudGVyfS5tY2UtcGFnZWJyZWFre2N1cnNvcjpkZWZhdWx0
O2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2JvcmRlcjoxcHgg
ZGFzaGVkICM2NjY7bWFyZ2luLXRvcDoxNXB4O3BhZ2UtYnJlYWstYmVmb3JlOmFsd2F5c31AbWVk
aWEgcHJpbnR7Lm1jZS1wYWdlYnJlYWt7Ym9yZGVyOjBweH19Lm1jZS1pdGVtLWFuY2hvcntjdXJz
b3I6ZGVmYXVsdDtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LXVzZXItc2VsZWN0OmFsbDst
d2Via2l0LXVzZXItbW9kaWZ5OnJlYWQtb25seTstbW96LXVzZXItc2VsZWN0OmFsbDstbW96LXVz
ZXItbW9kaWZ5OnJlYWQtb25seTt1c2VyLXNlbGVjdDphbGw7dXNlci1tb2RpZnk6cmVhZC1vbmx5
O3dpZHRoOjlweCAhaW1wb3J0YW50O2hlaWdodDo5cHggIWltcG9ydGFudDtib3JkZXI6MXB4IGRv
dHRlZCAjM0EzQTNBO2JhY2tncm91bmQ6I2Q1ZDVkNSB1cmwoaW1nL2FuY2hvci5naWYpIG5vLXJl
cGVhdCBjZW50ZXJ9Lm1jZS1uYnNwe2JhY2tncm91bmQ6I0FBQX1ocntjdXJzb3I6ZGVmYXVsdH0u
bWNlLW1hdGNoLW1hcmtlcntiYWNrZ3JvdW5kOiNBQUE7Y29sb3I6I2ZmZn0ubWNlLW1hdGNoLW1h
cmtlci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiMzMzk5ZmY7Y29sb3I6I2ZmZn0ubWNlLXNwZWxsY2hl
Y2tlci13b3Jke2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNGMDA7Y3Vyc29yOmRlZmF1bHR9Lm1j
ZS1zcGVsbGNoZWNrZXItZ3JhbW1hcntib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMDA4MDAwO2N1
cnNvcjpkZWZhdWx0fS5tY2UtaXRlbS10YWJsZSwubWNlLWl0ZW0tdGFibGUgdGQsLm1jZS1pdGVt
LXRhYmxlIHRoLC5tY2UtaXRlbS10YWJsZSBjYXB0aW9ue2JvcmRlcjoxcHggZGFzaGVkICNCQkJ9
dGQubWNlLWl0ZW0tc2VsZWN0ZWQsdGgubWNlLWl0ZW0tc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xv
cjojMzM5OWZmICFpbXBvcnRhbnR9Lm1jZS1lZGl0LWZvY3Vze291dGxpbmU6MXB4IGRvdHRlZCAj
MzMzfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9m
b250cy9yZWFkbWUubWQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvcmVhZG1lLm1kCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYTVkNjM5NDZjNQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5z
L2xpZ2h0Z3JheS9mb250cy9yZWFkbWUubWQKQEAgLTAsMCArMSBAQAorSWNvbnMgYXJlIGdlbmVy
YXRlZCBhbmQgcHJvdmlkZWQgYnkgdGhlIGh0dHA6Ly9pY29tb29uLmlvIHNlcnZpY2UuCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9q
cy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS1zbWFsbC5kZXYuc3ZnIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5
L2ZvbnRzL3RpbnltY2Utc21hbGwuZGV2LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNTc4Yjg2OTU0OWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9u
dHMvdGlueW1jZS1zbWFsbC5kZXYuc3ZnCkBAIC0wLDAgKzEsMTc1IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9E
VEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9z
dmcxMS5kdGQiID4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzxt
ZXRhZGF0YT4KK1RoaXMgaXMgYSBjdXN0b20gU1ZHIGZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24u
Cis8aWNvbnNldCBncmlkPSIxNiI+PC9pY29uc2V0PgorPC9tZXRhZGF0YT4KKzxkZWZzPgorPGZv
bnQgaWQ9InRpbnltY2Utc21hbGwiIGhvcml6LWFkdi14PSI1MTIiID4KKzxmb250LWZhY2UgdW5p
dHMtcGVyLWVtPSI1MTIiIGFzY2VudD0iNDgwIiBkZXNjZW50PSItMzIiIC8+Cis8bWlzc2luZy1n
bHlwaCBob3Jpei1hZHYteD0iNTEyIiAvPgorPGdseXBoIGNsYXNzPSJoaWRkZW4iIHVuaWNvZGU9
IiYjeGYwMDA7IiBkPSJNMCw0ODBMIDUxMiAtMzJMMCAtMzIgeiIgaG9yaXotYWR2LXg9IjAiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMDsiIGQ9Ik0gMzUyLDY0bDAsMTguNTAyIGMgNzUuNjc0
LDMwLjgxNCwgMTI4LDk2LjkxLCAxMjgsMTczLjQ5OGMwLDEwNi4wMzktMTAwLjI4OCwxOTItMjI0
LDE5MlMgMzIsMzYyLjAzOSwgMzIsMjU2CisJYzAtNzYuNTg4LCA1Mi4zMjctMTQyLjY4NCwgMTI4
LTE3My40OThMIDE2MCw2NCBMIDY0LDY0IGwtMzIsNDhsMC0xMTIgbCAxNjAsMCBMIDE5MiwxMTEu
NDA2IGMtNTAuNDUsMjUuNjgxLTg1LjMzMyw4MC43Ny04NS4zMzMsMTQ0LjU5NAorCWMwLDg4LjM2
NiwgNjYuODU5LDE2MCwgMTQ5LjMzMywxNjBjIDgyLjQ3NCwwLCAxNDkuMzMzLTcxLjYzNCwgMTQ5
LjMzMy0xNjBjMC02My44MjQtMzQuODgzLTExOC45MTMtODUuMzMzLTE0NC41OTRMIDMyMCwwIGwg
MTYwLDAgTCA0ODAsMTEyIGwtMzItNDgKKwlMIDM1Miw2NCB6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwMTM7IiBkPSJNIDEyOCw0NDhsMC00NDggbCAxMjgsMTI4bCAxMjgtMTI4TCAzODQsNDQ4
IEwgMTI4LDQ0OCB6IE0gMzUyLDg1LjI1NWwtOTYsOTZsLTk2LTk2TCAxNjAsNDE2IGwgMTkyLDAg
TCAzNTIsODUuMjU1IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik0gNDYzLjYz
NywzNjQuODkybC02Ni43NDUsNjYuNzQ0QyAzODYuMzQsNDQyLjE4OCwgMzcyLjI3Niw0NDgsIDM1
Ny4yOTMsNDQ4cy0yOS4wNDctNS44MTItMzkuNTk4LTE2LjM2M2wtODIuNzQ2LTgyLjc0NQorCQlj
LTIxLjgzNC0yMS44MzQtMjEuODM0LTU3LjM2MiwwLTc5LjE5NmwgMS4zNzMtMS4zNzNsIDMzLjk0
MSwzMy45NDFsLTEuMzczLDEuMzczYy0zLjA2NiwzLjA2Ni0zLjA2Niw4LjI0NywwLDExLjMxM2wg
ODIuNzQ2LDgyLjc0NgorCQlDIDM1My42NDEsMzk5LjcsIDM1Ni4wNDAsNDAwLCAzNTcuMjkyLDQw
MHMgMy42NTEtMC4yOTksIDUuNjU2LTIuMzA1bCA2Ni43NDUtNjYuNzQ0YyAzLjA2Ni0zLjA2Nywg
My4wNjYtOC4yNDksIDAuMDAxLTExLjMxNGwtODIuNzQ3LTgyLjc0NworCQljLTIuMDA0LTIuMDA0
LTQuNDAzLTIuMzA0LTUuNjU1LTIuMzA0cy0zLjY1MSwwLjMtNS42NTYsMi4zMDZsLTEuMzczLDEu
MzczbC0zMy45NC0zMy45NDJsIDEuMzcxLTEuMzcxCisJCWMgMTAuNTUzLTEwLjU1NCwgMjQuNjE1
LTE2LjM2NCwgMzkuNi0xNi4zNjRzIDI5LjA0Nyw1LjgxMiwgMzkuNTk4LDE2LjM2M2wgODIuNzQ3
LDgyLjc0NkMgNDg1LjQ3LDMwNy41MywgNDg1LjQ3LDM0My4wNTcsIDQ2My42MzcsMzY0Ljg5Mgor
CQl6TSAyNzUuNjc4LDE3OS42NzhsLTMzLjk0MS0zMy45NDFsIDEuMzczLTEuMzczYyAyLjAwNC0y
LjAwNCwgMi4zMDUtNC40MDMsIDIuMzA1LTUuNjU1YzAtMS4yNTMtMC4yOTktMy42NTEtMi4zMDMt
NS42NTcKKwkJbC04Mi43NDctODIuNzQ1Yy0yLjAwNS0yLjAwNS00LjQwNS0yLjMwNS01LjY1Ny0y
LjMwNXMtMy42NTIsMC4zLTUuNjU3LDIuMzA1TCA4Mi4zMDUsMTE3LjA1MEMgODAuMywxMTkuMDU1
LCA4MCwxMjEuNDU1LCA4MCwxMjIuNzA3CisJCXMgMC4yOTksMy42NSwgMi4zMDUsNS42NTZsIDgy
Ljc0NSw4Mi43NDRjIDIuMDA1LDIuMDA2LCA0LjQwNSwyLjMwNiwgNS42NTcsMi4zMDZzIDMuNjUy
LTAuMywgNS42NTctMi4zMDZsIDEuMzczLTEuMzcxbCAzMy45NDEsMzMuOTQKKwkJbC0xLjM3Mywx
LjM3M2MtMTAuNTUyLDEwLjU1Mi0yNC42MTUsMTYuMzYzLTM5LjU5OCwxNi4zNjNzLTI5LjA0Ni01
LjgxMi0zOS41OTgtMTYuMzYzbC04Mi43NDQtODIuNzQzCisJCUMgMzcuODEyLDE1MS43NTQsIDMy
LDEzNy42ODksIDMyLDEyMi43MDdzIDUuODEyLTI5LjA0NywgMTYuMzYzLTM5LjU5OWwgNjYuNzQ1
LTY2Ljc0NUMgMTI1LjY2MSw1LjgxMiwgMTM5LjcyNCwwLCAxNTQuNzA3LDAKKwkJcyAyOS4wNDYs
NS44MTIsIDM5LjU5OCwxNi4zNjNsIDgyLjc0Nyw4Mi43NDZjIDEwLjU1MiwxMC41NTIsIDE2LjM2
MSwyNC42MTUsIDE2LjM2MSwzOS41OThzLTUuODEyLDI5LjA0Ny0xNi4zNjMsMzkuNTk4CisJCUwg
Mjc1LjY3OCwxNzkuNjc4ek0gNDAwLDYxYy00Ljg2MiwwLTkuNzI1LDEuODU0LTEzLjQzNSw1LjU2
NWwtNjQsNjMuOTk5Yy03LjQyMiw3LjQyLTcuNDIyLDE5LjQ0OSwwLDI2Ljg2OQorCQkJYyA3LjQy
LDcuNDIyLCAxOS40NDgsNy40MjIsIDI2Ljg2OCwwbCA2NC02NGMgNy40MjItNy40MiwgNy40MjIt
MTkuNDQ4LDAtMjYuODY4QyA0MDkuNzI1LDYyLjg1NCwgNDA0Ljg2Miw2MSwgNDAwLDYxek0gMzA0
LDBjLTguODM3LDAtMTYsNy4xNjMtMTYsMTZsMCw2NCBjMCw4LjgzNywgNy4xNjMsMTYsIDE2LDE2
cyAxNi03LjE2MywgMTYtMTZsMC02NCBDIDMyMCw3LjE2MywgMzEyLjgzNywwLCAzMDQsMHpNIDQ2
NCwxNjBsLTY0LDAgYy04LjgzNywwLTE2LDcuMTYzLTE2LDE2cyA3LjE2MywxNiwgMTYsMTZsIDY0
LDAgYyA4LjgzNywwLCAxNi03LjE2MywgMTYtMTZTIDQ3Mi44MzcsMTYwLCA0NjQsMTYwek0gMTEy
LDM4N2MgNC44NjIsMCwgOS43MjUtMS44NTQsIDEzLjQzNS01LjU2NWwgNjQtNjRjIDcuNDIxLTcu
NDIsIDcuNDIxLTE5LjQ0OSwwLTI2Ljg2OWMtNy40Mi03LjQyMi0xOS40NDktNy40MjItMjYuODY5
LDAKKwkJCWwtNjQsNjRjLTcuNDIxLDcuNDItNy40MjEsMTkuNDQ5LDAsMjYuODY5QyAxMDIuMjc1
LDM4NS4xNDYsIDEwNy4xMzgsMzg3LCAxMTIsMzg3ek0gMjA4LDQ0OGMgOC44MzcsMCwgMTYtNy4x
NjMsIDE2LTE2bDAtNjQgYzAtOC44MzctNy4xNjMtMTYtMTYtMTZzLTE2LDcuMTYzLTE2LDE2TCAx
OTIsNDMyIEMgMTkyLDQ0MC44MzcsIDE5OS4xNjMsNDQ4LCAyMDgsNDQ4ek0gNDgsMjg4bCA2NCww
IGMgOC44MzcsMCwgMTYtNy4xNjMsIDE2LTE2cy03LjE2My0xNi0xNi0xNkwgNDgsMjU2IGMtOC44
MzcsMC0xNiw3LjE2My0xNiwxNlMgMzkuMTYzLDI4OCwgNDgsMjg4eiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDExOyIgZD0iTSA0NjMuNjM3LDM2NC44OTJsLTY2Ljc0NSw2Ni43NDRDIDM4Ni4z
NCw0NDIuMTg4LCAzNzIuMjc2LDQ0OCwgMzU3LjI5Myw0NDhzLTI5LjA0Ny01LjgxMi0zOS41OTgt
MTYuMzYzbC04Mi43NDYtODIuNzQ1CisJCWMtMjEuODM0LTIxLjgzNC0yMS44MzQtNTcuMzYyLDAt
NzkuMTk2bCAxLjM3My0xLjM3M2wgMzMuOTQxLDMzLjk0MWwtMS4zNzMsMS4zNzNjLTMuMDY2LDMu
MDY2LTMuMDY2LDguMjQ3LDAsMTEuMzEzbCA4Mi43NDYsODIuNzQ2CisJCUMgMzUzLjY0MSwzOTku
NywgMzU2LjA0MCw0MDAsIDM1Ny4yOTIsNDAwcyAzLjY1MS0wLjI5OSwgNS42NTYtMi4zMDVsIDY2
Ljc0NS02Ni43NDRjIDMuMDY2LTMuMDY3LCAzLjA2Ni04LjI0OSwgMC4wMDEtMTEuMzE0bC04Mi43
NDctODIuNzQ3CisJCWMtMi4wMDQtMi4wMDQtNC40MDMtMi4zMDQtNS42NTUtMi4zMDRzLTMuNjUx
LDAuMy01LjY1NiwyLjMwNmwtMS4zNzMsMS4zNzNsLTMzLjk0LTMzLjk0MmwgMS4zNzEtMS4zNzEK
KwkJYyAxMC41NTMtMTAuNTU0LCAyNC42MTUtMTYuMzY0LCAzOS42LTE2LjM2NHMgMjkuMDQ3LDUu
ODEyLCAzOS41OTgsMTYuMzYzbCA4Mi43NDcsODIuNzQ2QyA0ODUuNDcsMzA3LjUzLCA0ODUuNDcs
MzQzLjA1NywgNDYzLjYzNywzNjQuODkyCisJCXpNIDI3NS42NzgsMTc5LjY3OGwtMzMuOTQxLTMz
Ljk0MWwgMS4zNzMtMS4zNzNjIDIuMDA0LTIuMDA0LCAyLjMwNS00LjQwMywgMi4zMDUtNS42NTVj
MC0xLjI1My0wLjI5OS0zLjY1MS0yLjMwMy01LjY1NworCQlsLTgyLjc0Ny04Mi43NDVjLTIuMDA1
LTIuMDA1LTQuNDA1LTIuMzA1LTUuNjU3LTIuMzA1cy0zLjY1MiwwLjMtNS42NTcsMi4zMDVMIDgy
LjMwNSwxMTcuMDUwQyA4MC4zLDExOS4wNTUsIDgwLDEyMS40NTUsIDgwLDEyMi43MDcKKwkJcyAw
LjI5OSwzLjY1LCAyLjMwNSw1LjY1NmwgODIuNzQ1LDgyLjc0NGMgMi4wMDUsMi4wMDYsIDQuNDA1
LDIuMzA2LCA1LjY1NywyLjMwNnMgMy42NTItMC4zLCA1LjY1Ny0yLjMwNmwgMS4zNzMtMS4zNzFs
IDMzLjk0MSwzMy45NAorCQlsLTEuMzczLDEuMzczYy0xMC41NTIsMTAuNTUyLTI0LjYxNSwxNi4z
NjMtMzkuNTk4LDE2LjM2M3MtMjkuMDQ2LTUuODEyLTM5LjU5OC0xNi4zNjNsLTgyLjc0NC04Mi43
NDMKKwkJQyAzNy44MTIsMTUxLjc1NCwgMzIsMTM3LjY4OSwgMzIsMTIyLjcwN3MgNS44MTItMjku
MDQ3LCAxNi4zNjMtMzkuNTk5bCA2Ni43NDUtNjYuNzQ1QyAxMjUuNjYxLDUuODEyLCAxMzkuNzI0
LDAsIDE1NC43MDcsMAorCQlzIDI5LjA0Niw1LjgxMiwgMzkuNTk4LDE2LjM2M2wgODIuNzQ3LDgy
Ljc0NmMgMTAuNTUyLDEwLjU1MiwgMTYuMzYxLDI0LjYxNSwgMTYuMzYxLDM5LjU5OHMtNS44MTIs
MjkuMDQ3LTE2LjM2MywzOS41OTgKKwkJTCAyNzUuNjc4LDE3OS42Nzh6TSAxNzYsMTI1Yy00Ljg2
MiwwLTkuNzI1LDEuODU1LTEzLjQzNSw1LjU2NGMtNy40Miw3LjQyLTcuNDIsMTkuNDQ5LDAsMjYu
ODY5bCAxNjAsMTYwYyA3LjQyLDcuNDIsIDE5LjQ0OCw3LjQyLCAyNi44NjgsMAorCQljIDcuNDIy
LTcuNDIsIDcuNDIyLTE5LjQ1LDAtMjYuODdsLTE2MC0xNjBDIDE4NS43MjUsMTI2Ljg1NSwgMTgw
Ljg2MiwxMjUsIDE3NiwxMjV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNIDI4
OCwzMzkuMzM3TCAyODgsNDQ4IGwgMTY4LjAwMS0xNjhMIDI4OCwxMTJMIDI4OCwyMjMuMDQ4IEMg
OTIuNTQ3LDIyNy42MzMsIDEzMC41LDk5LjUsIDE2MCwwQyAxNiwxNjAsIDUzLjk1NCwzNDUuNDM3
LCAyODgsMzM5LjMzN3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwZjsiIGQ9Ik0gMzUyLDBj
IDI5LjUsOTkuNSwgNjcuNDUzLDIyNy42MzMtMTI4LDIyMy4wNDhMIDIyNCwxMTIgTCA1NS45OTks
MjgwTCAyMjQsNDQ4bDAtMTA4LjY2MyBDIDQ1OC4wNDYsMzQ1LjQzNywgNDk2LDE2MCwgMzUyLDB6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGU7IiBkPSJNIDEyOC4yMTQsMjY3LjYzN2MgNTIu
OSwwLCA5NS43ODYtNDUuNTg1LCA5NS43ODYtMTAxLjgxOUMgMjI0LDEwOS41ODYsIDE4MS4xMTQs
NjQsIDEyOC4yMTQsNjQKKwljLTUyLjkwMSwwLTk1Ljc4Niw0NS41ODUtOTUuNzg2LDEwMS44MThM
IDMyLDE4MC4zNjRDIDMyLDI5Mi44MjksIDExNy43NywzODQsIDIyMy41NzIsMzg0bDAtNTguMTgy
IGMtMzYuNTUsMC03MC45MTMtMTUuMTMtOTYuNzU4LTQyLjYwMgorCWMtNC45NzctNS4yODktOS41
MTctMTAuOTE3LTEzLjYxMi0xNi44MjhDIDExOC4wOTQsMjY3LjIwOCwgMTIzLjEwNSwyNjcuNjM3
LCAxMjguMjE0LDI2Ny42Mzd6TSAzODQuMjE0LDI2Ny42MzdjIDUyLjksMCwgOTUuNzg2LTQ1LjU4
NSwgOTUuNzg2LTEwMS44MTlDIDQ4MCwxMDkuNTg2LCA0MzcuMTE0LDY0LCAzODQuMjE0LDY0CisJ
Yy01Mi45MDEsMC05NS43ODYsNDUuNTg1LTk1Ljc4NiwxMDEuODE4TCAyODgsMTgwLjM2NEMgMjg4
LDI5Mi44MjksIDM3My43NywzODQsIDQ3OS41NzIsMzg0bDAtNTguMTgyIGMtMzYuNTUsMC03MC45
MTMtMTUuMTMtOTYuNzU4LTQyLjYwMgorCWMtNC45NzgtNS4yODktOS41MTgtMTAuOTE3LTEzLjYx
Mi0xNi44MjhDIDM3NC4wOTQsMjY3LjIwOCwgMzc5LjEwNSwyNjcuNjM3LCAzODQuMjE0LDI2Ny42
Mzd6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGM7IiBkPSJNIDMyLDM4NEwgNDgwLDM4NEwg
NDgwLDMyMEwgMzIsMzIwek0gMTkyLDE5MkwgNDgwLDE5MkwgNDgwLDEyOEwgMTkyLDEyOHpNIDE5
MiwyODhMIDQ4MCwyODhMIDQ4MCwyMjRMIDE5MiwyMjR6TSAzMiw5NkwgNDgwLDk2TCA0ODAsMzJM
IDMyLDMyek0gMzIsMjg4TCAxNDQsMjA4TCAzMiwxMjggeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDBkOyIgZD0iTSAzMiwzODRMIDQ4MCwzODRMIDQ4MCwzMjBMIDMyLDMyMHpNIDMyLDE5Mkwg
MzIwLDE5MkwgMzIwLDEyOEwgMzIsMTI4ek0gMzIsMjg4TCAzMjAsMjg4TCAzMjAsMjI0TCAzMiwy
MjR6TSAzMiw5NkwgNDgwLDk2TCA0ODAsMzJMIDMyLDMyek0gNDgwLDI4OEwgMzY4LDIwOEwgNDgw
LDEyOCB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGI7IiBkPSJNIDE5Miw0MTZMIDQ4MCw0
MTZMIDQ4MCwzNTJMIDE5MiwzNTJ6TSAxOTIsMjU2TCA0ODAsMjU2TCA0ODAsMTkyTCAxOTIsMTky
ek0gMTkyLDk2TCA0ODAsOTZMIDQ4MCwzMkwgMTkyLDMyek0gMTYwLDIxNUwgMTYwLDI4OEwgMTI4
LDI4OEwgMTI4LDQ0OEwgNjQsNDQ4TCA2NCw0MTZMIDk2LDQxNkwgOTYsMjg4TCA2NCwyODhMIDY0
LDI1NkwgMTI4LDI1NkwgMTI4LDIzMUwgNjQsMjAxTCA2NCwxMjhMIDEyOCwxMjhMIDEyOCw5Nkwg
NjQsOTZMIDY0LDY0TCAxMjgsNjRMIDEyOCwzMkwgNjQsMzJMIDY0LDBMIDE2MCwwTCAxNjAsMTYw
TCA5NiwxNjBMIDk2LDE4NSAJeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDBhOyIgZD0iTSAx
OTIsNDE2TCA0ODAsNDE2TCA0ODAsMzUyTCAxOTIsMzUyek0gMTkyLDI1NkwgNDgwLDI1NkwgNDgw
LDE5MkwgMTkyLDE5MnpNIDE5Miw5NkwgNDgwLDk2TCA0ODAsMzJMIDE5MiwzMnpNIDY0LDM4NEEz
MiwzMiAyNzAwIDEgMSAxMjgsMzg0QTMyLDMyIDI3MDAgMSAxIDY0LDM4NHpNIDY0LDIyNEEzMiwz
MiAyNzAwIDEgMSAxMjgsMjI0QTMyLDMyIDI3MDAgMSAxIDY0LDIyNHpNIDY0LDY0QTMyLDMyIDI3
MDAgMSAxIDEyOCw2NEEzMiwzMiAyNzAwIDEgMSA2NCw2NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAwOTsiIGQ9Ik0gNDQ0LDI4OGwtMjgsMCBMIDQxNiw0MTYgbCAzMiwwIEwgNDQ4LDQ0OCBM
IDI4OCw0NDggbDAtMzIgbCAzMiwwIGwwLTEyOCBMIDE5MiwyODggTCAxOTIsNDE2IGwgMzIsMCBM
IDIyNCw0NDggTCA2NCw0NDggbDAtMzIgbCAzMiwwIGwwLTEyOCBMIDY4LDI4OCBjLTE5LjgsMC0z
Ni0xNi4yLTM2LTM2bDAtMjE2IGMwLTE5LjgsIDE2LjItMzYsIDM2LTM2bCAxMjAsMCAKKwljIDE5
LjgsMCwgMzYsMTYuMiwgMzYsMzZMIDIyNCwxOTIgbCA2NCwwIGwwLTE1NiBjMC0xOS44LCAxNi4y
LTM2LCAzNi0zNmwgMTIwLDAgYyAxOS44LDAsIDM2LDE2LjIsIDM2LDM2TCA0ODAsMjUyIEMgNDgw
LDI3MS44LCA0NjMuOCwyODgsIDQ0NCwyODh6IE0gMTc0LDMyTCA4MiwzMiAKKwljLTkuOSwwLTE4
LDcuMi0xOCwxNnMgOC4xLDE2LCAxOCwxNmwgOTIsMCBjIDkuOSwwLCAxOC03LjIsIDE4LTE2UyAx
ODMuOSwzMiwgMTc0LDMyeiBNIDI3MiwyMjRsLTMyLDAgYy04LjgsMC0xNiw3LjItMTYsMTZzIDcu
MiwxNiwgMTYsMTZsIDMyLDAgCisJYyA4LjgsMCwgMTYtNy4yLCAxNi0xNlMgMjgwLjgsMjI0LCAy
NzIsMjI0eiBNIDQzMCwzMmwtOTIsMCBjLTkuOSwwLTE4LDcuMi0xOCwxNnMgOC4xLDE2LCAxOCwx
NmwgOTIsMCBjIDkuOSwwLCAxOC03LjIsIDE4LTE2UyA0MzkuOSwzMiwgNDMwLDMyeiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMDA4OyIgZD0iTSAzNTIsMjg4bDAsODAgYzAsOC44LTcuMiwxNi0x
NiwxNmwtODAsMCBMIDI1Niw0MTYgYzAsMTcuNi0xNC40LDMyLTMyLDMybC02NCwwIGMtMTcuNjAy
LDAtMzItMTQuNC0zMi0zMmwwLTMyIEwgNDgsMzg0IGMtOC44MDEsMC0xNi03LjItMTYtMTZsMC0y
NTYgCisJYzAtOC44LCA3LjE5OS0xNiwgMTYtMTZsIDExMiwwIGwwLTk2IGwgMTkyLDAgbCA5Niw5
NkwgNDQ4LDI4OCBMIDM1MiwyODggeiBNIDE2MCw0MTUuOTQzYyAwLjAxNywwLjAxOSwgMC4wMzYs
MC4wMzksIDAuMDU3LDAuMDU3bCA2My44ODQsMCAKKwljIDAuMDIxLTAuMDE4LCAwLjA0MS0wLjAz
OCwgMC4wNTktMC4wNTdMIDIyNCwzODQgbC02NCwwIEwgMTYwLDQxNS45NDMgTCAxNjAsNDE1Ljk0
M3ogTSA5NiwzMjBsMCwzMiBsIDE5MiwwIGwwLTMyIEwgOTYsMzIwIHogTSAzNTIsNDUuMjU1TCAz
NTIsOTYgbCA1MC43NDUsMCBMIDM1Miw0NS4yNTV6CisJIE0gNDE2LDEyOGwtOTYsMCBsMC05NiBM
IDE5MiwzMiBMIDE5MiwyNTYgbCAyMjQsMCBMIDQxNiwxMjggeiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDMxOyIgZD0iTSA0MTYsMzIwbC05NiwwIGwwLDMyIGwtOTYsOTZMIDMyLDQ0OCBsMC0z
NTIgbCAxOTIsMCBsMC05NiBsIDI4OCwwIEwgNTEyLDIyNCBMIDQxNiwzMjB6IE0gNDE2LDI3NC43
NDVMIDQ2Ni43NDUsMjI0TCA0MTYsMjI0IEwgNDE2LDI3NC43NDUgeiBNIDIyNCw0MDIuNzQ1TCAy
NzQuNzQ1LDM1MgorCUwgMjI0LDM1MiBMIDIyNCw0MDIuNzQ1IHogTSA2NCw0MTZsIDEyOCwwIGww
LTk2IGwgOTYsMCBsMC0xOTIgTCA2NCwxMjggTCA2NCw0MTYgeiBNIDQ4MCwzMkwgMjU2LDMyIGww
LDY0IGwgNjQsMCBMIDMyMCwyODggbCA2NCwwIGwwLTk2IGwgOTYsMCBMIDQ4MCwzMiB6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNIDQzMi4yMDQsMTQ0LjkzNGMtMjMuMjM1LDIz
LjIzNS01My40NjksMzQuMDAyLTgwLjU0MSwzMS40MDNMIDMyMCwyMDhsIDk2LDk2YzAsMCwgNjQs
NjQsMCwxMjhMIDI1NiwyNzJMIDk2LDQzMgorCQljLTY0LTY0LDAtMTI4LDAtMTI4bCA5Ni05Nmwt
MzEuNjYzLTMxLjY2M2MtMjcuMDcyLDIuNTk5LTU3LjMwNS04LjE2OS04MC41NC0zMS40MDNjLTM3
LjQ5LTM3LjQ5LTQyLjU1Ni05My4yMDktMTEuMzEzLTEyNC40NQorCQljIDMxLjI0MS0zMS4yNDEs
IDg2Ljk2LTI2LjE3NywgMTI0LjQ1LDExLjMxM2MgMjMuMjM1LDIzLjIzNCwgMzQuMDAxLDUzLjQ2
OSwgMzEuNDAzLDgwLjU0TCAyNTYsMTQ0bCAzMS42NjQtMzEuNjY0CisJCWMtMi41OTgtMjcuMDcy
LCA4LjE2OC01Ny4zMDUsIDMxLjQwMy04MC41MzljIDM3LjQ4OS0zNy40OSwgOTMuMjA5LTQyLjU1
NiwgMTI0LjQ0OS0xMS4zMTMKKwkJQyA0NzQuNzYsNTEuNzI1LCA0NjkuNjk0LDEwNy40NDMsIDQz
Mi4yMDQsMTQ0LjkzNHogTSAxNzYuNTYyLDEwMC43MTFjLTEuMTA2LTEyLjE2Ni03LjUxLTI0Ljkx
My0xNy41Ny0zNC45NzMKKwkJQyAxNDcuODg2LDU0LjYzMSwgMTMzLjQ1Miw0OCwgMTIwLjM4Myw0
OGMtNS4yNjIsMC0xMi42NDksMS4xMTQtMTcuOTU4LDYuNDI0Yy0xMC43MDMsMTAuNzAyLTguNjg4
LDM2LjU2NiwgMTEuMzEzLDU2LjU2OAorCQljIDExLjEwNiwxMS4xMDcsIDI1LjU0LDE3LjczOCwg
MzguNjA5LDE3LjczOGMgNS4yNjIsMCwgMTIuNjQ5LTEuMTE0LCAxNy45NTgtNi40MjRDIDE3Ni44
NjEsMTE1Ljc1MSwgMTc3LjA0MCwxMDUuOTYyLCAxNzYuNTYyLDEwMC43MTF6CisJCSBNIDI1Niwx
NzZjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMnMgMTQuMzI3LDMyLCAzMiwzMnMgMzItMTQuMzI3
LCAzMi0zMlMgMjczLjY3MywxNzYsIDI1NiwxNzZ6IE0gNDA5LjU3Niw1NC40MjQKKwkJYy01LjMx
LTUuMzEtMTIuNjk2LTYuNDI0LTE3Ljk1OC02LjQyNGMtMTMuMDY5LDAtMjcuNTAzLDYuNjMxLTM4
LjYwOSwxNy43MzhjLTEwLjA2MSwxMC4wNjAtMTYuNDY0LDIyLjgwNy0xNy41NjksMzQuOTczCisJ
CWMtMC40NzksNS4yNTEtMC4zLDE1LjA0MCwgNi4yNTcsMjEuNTk2YyA1LjMwOSw1LjMxMSwgMTIu
Njk1LDYuNDI0LCAxNy45NTgsNi40MjRjIDEzLjA2OCwwLCAyNy41MDMtNi42MzEsIDM4LjYwOC0x
Ny43MzcKKwkJQyA0MTguMjY1LDkwLjk5LCA0MjAuMjc5LDY1LjEyNiwgNDA5LjU3Niw1NC40MjR6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDY7IiBkPSJNIDMyLDM4NEwgNDgwLDM4NEwgNDgw
LDMyMEwgMzIsMzIwek0gMzIsMTkyTCA0ODAsMTkyTCA0ODAsMTI4TCAzMiwxMjh6TSAzMiwyODhM
IDQ4MCwyODhMIDQ4MCwyMjRMIDMyLDIyNHpNIDMyLDk2TCA0ODAsOTZMIDQ4MCwzMkwgMzIsMzJ6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDQ7IiBkPSJNIDMyLDM4NEwgNDgwLDM4NEwgNDgw
LDMyMEwgMzIsMzIwek0gMzIsMTkyTCA0ODAsMTkyTCA0ODAsMTI4TCAzMiwxMjh6TSAxMjgsMjg4
TCAzODQsMjg4TCAzODQsMjI0TCAxMjgsMjI0ek0gMTI4LDk2TCAzODQsOTZMIDM4NCwzMkwgMTI4
LDMyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDA1OyIgZD0iTSAzMiwzODRMIDQ4MCwzODRM
IDQ4MCwzMjBMIDMyLDMyMHpNIDMyLDE5MkwgNDgwLDE5MkwgNDgwLDEyOEwgMzIsMTI4ek0gMTky
LDI4OEwgNDgwLDI4OEwgNDgwLDIyNEwgMTkyLDIyNHpNIDE5Miw5NkwgNDgwLDk2TCA0ODAsMzJM
IDE5MiwzMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMzsiIGQ9Ik0gMzIsMzg0TCA0ODAs
Mzg0TCA0ODAsMzIwTCAzMiwzMjB6TSAzMiwxOTJMIDQ4MCwxOTJMIDQ4MCwxMjhMIDMyLDEyOHpN
IDMyLDI4OEwgMzIwLDI4OEwgMzIwLDIyNEwgMzIsMjI0ek0gMzIsOTZMIDMyMCw5NkwgMzIwLDMy
TCAzMiwzMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyZDsiIGQ9Ik0gNDgwLDIyNGwtNC41
NzEsMCBMIDM0Ny4wNjIsMjI0IGMtMjUuMDM5LDE3LjcxLTU3LjIxNSwyNy40My05MS4wNjIsMjcu
NDNjLTQ0LjYwMywwLTgyLjI4NiwyNS4xMjEtODIuMjg2LDU0Ljg1NgorCWMwLDI5LjczNSwgMzcu
NjgzLDU0Ljg1NywgODIuMjg2LDU0Ljg1N2MgMzcuNTI5LDAsIDcwLjE1NC0xNy43ODgsIDc5LjU2
LTQxLjE0M2wgNTYuNTA4LDAgYy0zLjk2NSwyNS4zMjItMTguNzksNDguOTg0LTQyLjAyOSw2Ni40
MTMKKwlDIDMyNC41OTksNDA1LjQ5MywgMjkxLjIwMSw0MTYsIDI1Niw0MTZjLTM1LjIwMiwwLTY4
LjU5OC0xMC41MDctOTQuMDM3LTI5LjU4N2MtMjcuMzk0LTIwLjU0NS00My4xMDYtNDkuNzUxLTQz
LjEwNi04MC4xMjcKKwlzIDE1LjcxMi01OS41ODIsIDQzLjEwNi04MC4xMjdjIDAuOTc4LTAuNzMz
LCAxLjk3MS0xLjQ0OSwgMi45NzMtMi4xNThMIDM2LjU3MSwyMjQuMDAxIEwgMzIsMjI0LjAwMSBs
MC0zMiBsIDI1Ni4yNjYsMCBjIDI5LjEwNC04LjU1MywgNTAuMDIxLTI4LjEzNSwgNTAuMDIxLTUw
LjI4NgorCWMwLTI5LjczNC0zNy42ODQtNTQuODU1LTgyLjI4Ni01NC44NTVjLTM3LjUzLDAtNzAu
MTU0LDE3Ljc4Ny03OS41NTksNDEuMTQzbC01Ni41MDgsMCBjIDMuOTY1LTI1LjMyLCAxOC43OTEt
NDguOTg0LCA0Mi4wMzAtNjYuNDEzCisJQyAxODcuNDAyLDQyLjUwOCwgMjIwLjc5OCwzMiwgMjU2
LDMyYyAzNS4yMDEsMCwgNjguNTk5LDEwLjUwOCwgOTQuMDM3LDI5LjU4N2MgMjcuMzk1LDIwLjU0
NSwgNDMuMTA0LDQ5Ljc1MSwgNDMuMTA0LDgwLjEyNworCWMwLDE3LjY0OS01LjMyNywzNC44OTYt
MTUuMTQ3LDUwLjI4NkwgNDgwLDE5MiBMIDQ4MCwyMjQgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDJjOyIgZD0iTSA5Niw2NGwgMjg4LDAgbDAtMzIgTCA5NiwzMiBMIDk2LDY0IHpNIDMyMCw0
MTZsMC0xOTIgYzAtMTUuNjU2LTcuMzUtMzAuODEyLTIwLjY5NS00Mi42NzZDIDI4My44MzQsMTY3
LjU3MywgMjYyLjc3MSwxNjAsIDI0MCwxNjBjLTIyLjc3MiwwLTQzLjgzNCw3LjU3My01OS4zMDQs
MjEuMzI0CisJQyAxNjcuMzUsMTkzLjE4OCwgMTYwLDIwOC4zNDQsIDE2MCwyMjRMIDE2MCw0MTYg
TCA5Niw0MTYgbDAtMTkyIGMwLTcwLjY5MSwgNjQuNDcxLTEyOCwgMTQ0LTEyOGMgNzkuNTI5LDAs
IDE0NCw1Ny4zMDksIDE0NCwxMjhMIDM4NCw0MTYgTCAzMjAsNDE2IHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAyYjsiIGQ9Ik0gNDE2LDQxNmwwLTMyIGwtNzIsMCBMIDIxNiw2NGwgNzIsMCBs
MC0zMiBMIDY0LDMyIGwwLDMyIGwgNzIsMCBMIDI2NCwzODRsLTcyLDAgTCAxOTIsNDE2IEwgNDE2
LDQxNiB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMmE7IiBkPSJNIDMxMi43MjEsMjMyLjkw
OUMgMzM2Ljc1OCwyNTEuOTg0LCAzNTIsMjgwLjMzNywgMzUyLDMxMmMwLDU3LjQzOC01MC4xNDUs
MTA0LTExMiwxMDRMIDEyOCw0MTYgbDAtMzg0IGwgMTQ0LDAgCisJYyA2MS44NTYsMCwgMTEyLDQ2
LjU2MiwgMTEyLDEwNEMgMzg0LDE4MC4wOTgsIDM1NC40NDEsMjE3Ljc4MSwgMzEyLjcyMSwyMzIu
OTA5eiBNIDE5MiwzMjhjMCwxMy4yNTUsIDEwLjc0NSwyNCwgMjQsMjRsIDMzLjYwMiwwIAorCUMg
MjcwLjgwOSwzNTIsIDI4OCwzMzAuNTEsIDI4OCwzMDRzLTE3LjE5MS00OC0zOC4zOTgtNDhMIDE5
MiwyNTYgTCAxOTIsMzI4IHogTSAyNzMuNiw5NkwgMjE2LDk2IGMtMTMuMjU1LDAtMjQsMTAuNzQ1
LTI0LDI0bDAsNzIgbCA4MS42LDAgCisJYyAyMS4yMDksMCwgMzguNC0yMS40OSwgMzguNC00OFMg
Mjk0LjgwOSw5NiwgMjczLjYsOTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDE7IiBkPSJN
IDQyNS4zNzMsMzU4LjYyN2wtNjYuNzQ2LDY2Ljc0NUMgMzQ2LjE4Myw0MzcuODE4LCAzMjEuNiw0
NDgsIDMwNCw0NDhMIDk2LDQ0OCBjLTE3LjYsMC0zMi0xNC40LTMyLTMybDAtMzg0IGMwLTE3LjYs
IDE0LjQtMzIsIDMyLTMybCAzMjAsMCAKKwljIDE3LjYsMCwgMzIsMTQuNCwgMzIsMzJMIDQ0OCwz
MDQgQyA0NDgsMzIxLjYsIDQzNy44MTcsMzQ2LjE4MiwgNDI1LjM3MywzNTguNjI3eiBNIDQwMi43
NDUsMzM2LjAwMWMgMy4zOTYtMy4zOTgsIDYuODk2LTkuNTgxLCA5LjQ0Ny0xNi4wMDFMIDMyMCwz
MjAgCisJTCAzMjAsNDEyLjE5MyBjIDYuNDItMi41NSwgMTIuNjAyLTYuMDUwLCAxNi05LjQ0OEwg
NDAyLjc0NSwzMzYuMDAxeiBNIDQxNS45NDIsMzJMIDk2LjA1NywzMiBjLTAuMDIwLDAuMDE3LTAu
MDQxLDAuMDM4LTAuMDU3LDAuMDU4TCA5Niw0MTUuOTQzIAorCWMgMC4wMTcsMC4wMjAsIDAuMDM4
LDAuMDQxLCAwLjA1NywwLjA1N0wgMjg4LDQxNiBsMC0xMjggbCAxMjgsMCBsMC0yNTUuOTQyIEMg
NDE1Ljk4MywzMi4wMzgsIDQxNS45NjIsMzIuMDE3LCA0MTUuOTQyLDMyeiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDAwOyIgZD0iTSA0ODAsNDBMIDQ4MCwzMzUuOTY5IEwgMzY4LjAzMSw0NDhM
IDcyLDQ0OCBjLTIyLjA5MSwwLTQwLTE3LjkwOC00MC00MGwwLTM2OCBjMC0yMi4wOTIsIDE3Ljkw
OS00MCwgNDAtNDBsIDM2OCwwIAorCUMgNDYyLjA5MiwwLCA0ODAsMTcuOTA4LCA0ODAsNDB6IE0g
Mjg4LDM4NGwgMzIsMCBsMC05NiBsLTMyLDAgTCAyODgsMzg0IHogTSAzNTIsNjRMIDE2MCw2NCBM
IDE2MCwxOTEuOTQxIGMgMC4wMTcsMC4wMjEsIDAuMDM4LDAuMDQxLCAwLjA1OCwwLjA1OWwgMTkx
Ljg4NSwwIAorCWMgMC4wMjAtMC4wMTgsIDAuMDQxLTAuMDM4LCAwLjA1OC0wLjA1OUwgMzUyLDY0
TCAzNTIsNjR6IE0gNDE2LDY0bC0zMiwwIEwgMzg0LDE5MiBjMCwxNy42LTE0LjQsMzItMzIsMzJM
IDE2MCwyMjQgYy0xNy42LDAtMzItMTQuNC0zMi0zMmwwLTEyOCBMIDk2LDY0IEwgOTYsMzg0IAor
CWwgMzIsMCBsMC05NiBjMC0xNy42LCAxNC40LTMyLCAzMi0zMmwgMTYwLDAgYyAxNy42LDAsIDMy
LDE0LjQsIDMyLDMybDAsODUuNTA1IGwgNjQtNjQuMDM2TCA0MTYsNjQgeiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDFiOyIgZD0iTSAzMiwzODRsMC0zNTIgbCA0NDgsMCBMIDQ4MCwzODQgTCAz
MiwzODQgeiBNIDE5MiwxNjBsMCw2NCBsIDEyOCwwIGwwLTY0IEwgMTkyLDE2MCB6IE0gMzIwLDEy
OGwwLTY0IEwgMTkyLDY0IGwwLDY0IEwgMzIwLDEyOCB6IE0gMzIwLDMyMGwwLTY0IEwgMTkyLDI1
NiBsMCw2NCBMIDMyMCwzMjAgeiBNIDE2MCwzMjBsMC02NCBMIDY0LDI1NiBsMCw2NCBMIDE2MCwz
MjAgCisJeiBNIDY0LDIyNGwgOTYsMCBsMC02NCBMIDY0LDE2MCBMIDY0LDIyNCB6IE0gMzUyLDIy
NGwgOTYsMCBsMC02NCBsLTk2LDAgTCAzNTIsMjI0IHogTSAzNTIsMjU2bDAsNjQgbCA5NiwwIGww
LTY0IEwgMzUyLDI1NiB6IE0gNjQsMTI4bCA5NiwwIGwwLTY0IEwgNjQsNjQgTCA2NCwxMjggeiBN
IDM1Miw2NGwwLDY0IGwgOTYsMCBsMC02NCBMIDM1Miw2NCB6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwMjE7IiBkPSJNIDI1Niw0MTBjIDQ5LjY4MywwLCA5Ni4zOTEtMTkuMzQ3LCAxMzEuNTIx
LTU0LjQ3OFMgNDQyLDI3My42ODMsIDQ0MiwyMjRzLTE5LjM0OC05Ni4zOTEtNTQuNDc5LTEzMS41
MjFTIDMwNS42ODMsMzgsIDI1NiwzOAorCXMtOTYuMzkxLDE5LjM0OC0xMzEuNTIyLDU0LjQ3OVMg
NzAsMTc0LjMxNywgNzAsMjI0cyAxOS4zNDcsOTYuMzkxLCA1NC40NzgsMTMxLjUyMlMgMjA2LjMx
Nyw0MTAsIDI1Niw0MTAgTSAyNTYsNDQ4CisJQyAxMzIuMjg4LDQ0OCwgMzIsMzQ3LjcxMiwgMzIs
MjI0cyAxMDAuMjg4LTIyNCwgMjI0LTIyNHMgMjI0LDEwMC4yODgsIDIyNCwyMjRTIDM3OS43MTIs
NDQ4LCAyNTYsNDQ4TCAyNTYsNDQ4ek0gMTYwLDI4OEEzMiwzMiAyNzAwIDEgMSAyMjQsMjg4QTMy
LDMyIDI3MDAgMSAxIDE2MCwyODh6TSAyODgsMjg4QTMyLDMyIDI3MDAgMSAxIDM1MiwyODhBMzIs
MzIgMjcwMCAxIDEgMjg4LDI4OHpNIDI1NiwxNTJjLTUwLjkyLDAtOTYuMjgsMTguNDM3LTEyNS41
ODMsNDcuMTY0QyAxNDEuOTgsMTQwLjM2LCAxOTMuODA2LDk2LCAyNTYsOTZjIDYyLjE5NCwwLCAx
MTQuMDIwLDQ0LjM2LCAxMjUuNTg0LDEwMy4xNjQKKwlDIDM1Mi4yOCwxNzAuNDM3LCAzMDYuOTIs
MTUyLCAyNTYsMTUyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDIzOyIgZD0iTSAyNDAsMjg4
TCAxNDQsMzg0TCAyMDgsNDQ4TCAzMiw0NDhMIDMyLDI3MkwgOTYsMzM2TCAxOTIsMjQwIHpNIDMy
MCwyNDBMIDQxNiwzMzZMIDQ4MCwyNzJMIDQ4MCw0NDhMIDMwNCw0NDhMIDM2OCwzODRMIDI3Miwy
ODggek0gMjcyLDE2MEwgMzY4LDY0TCAzMDQsMEwgNDgwLDBMIDQ4MCwxNzZMIDQxNiwxMTJMIDMy
MCwyMDggek0gMTkyLDIwOEwgOTYsMTEyTCAzMiwxNzZMIDMyLDBMIDIwOCwwTCAxNDQsNjRMIDI0
MCwxNjAgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFjOyIgZD0iTSAzMiwyNTZMIDQ4MCwy
NTZMIDQ4MCwxOTJMIDMyLDE5MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxZDsiIGQ9Ik0g
MzIsOTZsIDI1NiwwIGwwLTY0IEwgMzIsMzIgTCAzMiw5NiB6IE0gMzg0LDM4NEwgMjczLjcyMSwz
ODQgbC05MS44ODMtMjU2bC02Ni4xNDQsMCBsIDkxLjg4MSwyNTZMIDk2LDM4NCBMIDk2LDQ0OCBs
IDI4OCwwIEwgMzg0LDM4NCB6IE0gNDY0Ljg4NywzMkwgNDAwLDk2Ljg4NworCUwgMzM1LjExMywz
MkwgMzA0LDYzLjExM0wgMzY4Ljg4NywxMjhMIDMwNCwxOTIuODg3TCAzMzUuMTEzLDIyNEwgNDAw
LDE1OS4xMTNMIDQ2NC44ODcsMjI0TCA0OTYsMTkyLjg4N0wgNDMxLjExMywxMjhMIDQ5Niw2My4x
MTMKKwlMIDQ2NC44ODcsMzJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjI7IiBkPSJNIDEy
OCw0MTZsIDI1NiwwIGwwLTY0IEwgMTI4LDM1MiBMIDEyOCw0MTYgeiBNIDQ0OCwzMjBMIDY0LDMy
MCBjLTE3LjYsMC0zMi0xNC40LTMyLTMybDAtMTI4IGMwLTE3LjYsIDE0LjM5OC0zMiwgMzItMzJs
IDY0LDAgbDAtOTYgbCAyNTYsMCBsMCw5NiBsIDY0LDAgCisJYyAxNy42LDAsIDMyLDE0LjQsIDMy
LDMyTCA0ODAsMjg4IEMgNDgwLDMwNS42LCA0NjUuNiwzMjAsIDQ0OCwzMjB6IE0gMzUyLDY0TCAx
NjAsNjQgTCAxNjAsMTkyIGwgMTkyLDAgTCAzNTIsNjQgeiBNIDQ1NS4yLDI3MmMwLTEyLjgxMy0x
MC4zODctMjMuMi0yMy4xOTktMjMuMgorCVMgNDA4LjgsMjU5LjE4NywgNDA4LjgsMjcycyAxMC4z
ODksMjMuMiwgMjMuMjAxLDIzLjJDIDQ0NC44MTQsMjk1LjIsIDQ1NS4yLDI4NC44MTMsIDQ1NS4y
LDI3MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyZTsiIGQ9Ik0gMTkyLDQxNmMtNjEuODU2
LDAtMTEyLTUwLjE0NC0xMTItMTEycyA1MC4xNDQtMTEyLCAxMTItMTEybDAtMTYwIGwgNjQsMCBM
IDI1NiwzNTIgbCAzMiwwIGwwLTMyMCBsIDY0LDAgTCAzNTIsMzUyIGwgNjQsMCBMIDQxNiw0MTYg
TCAxOTIsNDE2IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyZjsiIGQ9Ik0gMjI0LDQxNmMt
NjEuODU2LDAtMTEyLTUwLjE0NC0xMTItMTEycyA1MC4xNDQtMTEyLCAxMTItMTEybDAtMTYwIGwg
NjQsMCBMIDI4OCwzNTIgbCAzMiwwIGwwLTMyMCBsIDY0LDAgTCAzODQsMzUyIGwgNjQsMCBMIDQ0
OCw0MTYgTCAyMjQsNDE2IHpNIDMyLDMyTCAxNDQsMTI4TCAzMiwyMjQgeiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDMwOyIgZD0iTSAxNjAsNDE2QyA5OC4xNDQsNDE2LCA0OCwzNjUuODU2LCA0
OCwzMDRzIDUwLjE0NC0xMTIsIDExMi0xMTJsMC0xNjAgbCA2NCwwIEwgMjI0LDM1MiBsIDMyLDAg
bDAtMzIwIGwgNjQsMCBMIDMyMCwzNTIgbCA2NCwwIEwgMzg0LDQxNiBMIDE2MCw0MTYgek0gNDgw
LDIyNEwgMzY4LDEyOEwgNDgwLDMyIHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNjsiIGQ9
Ik0gMjU2LDI4OEwgMzIwLDI4OEwgMzIwLDI1NkwgMjU2LDI1NnpNIDI1Niw5NkwgMzIwLDk2TCAz
MjAsNjRMIDI1Niw2NHpNIDI4OCwxOTJMIDM1MiwxOTJMIDM1MiwxNjBMIDI4OCwxNjB6TSAzODQs
MTkyTCAzODQsOTZMIDM1Miw5NkwgMzUyLDY0TCA0MTYsNjRMIDQxNiwxOTIgCXpNIDE5MiwxOTJM
IDI1NiwxOTJMIDI1NiwxNjBMIDE5MiwxNjB6TSAxNjAsOTZMIDIyNCw5NkwgMjI0LDY0TCAxNjAs
NjR6TSAxNjAsMjg4TCAyMjQsMjg4TCAyMjQsMjU2TCAxNjAsMjU2ek0gOTYsMzg0TCA5NiwyNTZM
IDEyOCwyNTZMIDEyOCwzNTJMIDE2MCwzNTJMIDE2MCwzODQgCXpNIDM1MiwyNTZMIDQxNiwyNTZM
IDQxNiwzODRMIDM4NCwzODRMIDM4NCwyODhMIDM1MiwyODggCXpNIDMyLDQ0OGwwLTQ0OCBsIDQ0
OCwwIEwgNDgwLDQ0OCBMIDMyLDQ0OCB6IE0gNDQ4LDMyTCA2NCwzMiBMIDY0LDQxNiBsIDM4NCww
IEwgNDQ4LDMyIHpNIDk2LDE5MkwgOTYsNjRMIDEyOCw2NEwgMTI4LDE2MEwgMTYwLDE2MEwgMTYw
LDE5MiAJek0gMjg4LDM4NEwgMzUyLDM4NEwgMzUyLDM1MkwgMjg4LDM1MnpNIDE5MiwzODRMIDI1
NiwzODRMIDI1NiwzNTJMIDE5MiwzNTJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjc7IiBk
PSJNIDQwOCw0NDhsIDgtMTkyTCA5NiwyNTYgbCA4LDE5MmwgMTYsMCBsIDgtMTYwbCAyNTYsMCBs
IDgsMTYwTCA0MDgsNDQ4IHogTSAxMDQsMGwtOCwxNjBsIDMyMCwwIGwtOC0xNjBsLTE2LDAgbC04
LDEyOEwgMTI4LDEyOCBsLTgtMTI4TCAxMDQsMCB6TSAzMiwyMjRMIDk2LDIyNEwgOTYsMTkyTCAz
MiwxOTJ6TSAxMjgsMjI0TCAxOTIsMjI0TCAxOTIsMTkyTCAxMjgsMTkyek0gMjI0LDIyNEwgMjg4
LDIyNEwgMjg4LDE5MkwgMjI0LDE5MnpNIDMyMCwyMjRMIDM4NCwyMjRMIDM4NCwxOTJMIDMyMCwx
OTJ6TSA0MTYsMjI0TCA0ODAsMjI0TCA0ODAsMTkyTCA0MTYsMTkyeiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDI0OyIgZD0iTSA0ODAsNDE2TCA0ODAsNDQ4IGwtOTYsMCBjLTE3LjYwMSwwLTMy
LTE0LjQtMzItMzJsMC0xNjAgYzAtNy45MjgsIDIuOTI5LTE1LjIwMSwgNy43NDgtMjAuODA3TCAy
MDgsMTA1bC03MSw3NGwtNDEtMzVsIDExMi0xNDRsIDIwOCwyMjRsIDY0LDAgCisJCWwwLDMyIGwt
OTYsMCBMIDM4NCw0MTYgTCA0ODAsNDE2IHpNIDEyOCwyMjRsIDMyLDAgTCAxNjAsNDE2IGMwLDE3
LjYtMTQuNCwzMi0zMiwzMkwgNjQsNDQ4IGMtMTcuNiwwLTMyLTE0LjQtMzItMzJsMC0xOTIgbCAz
MiwwIGwwLDk2IGwgNjQsMCBMIDEyOCwyMjQgeiBNIDY0LDM1MkwgNjQsNDE2IGwgNjQsMCBsMC02
NCBMIDY0LDM1MiB6TSAzMjAsMjU2bDAsNDggYzAsMTcuNi00LjQsMzItMjIsMzJjIDE3LjYsMCwg
MjIsMTQuNCwgMjIsMzJMIDMyMCw0MTYgYzAsMTcuNi0xNC40LDMyLTMyLDMybC05NiwwIGwwLTIy
NCBsIDk2LDAgQyAzMDUuNiwyMjQsIDMyMCwyMzguNCwgMzIwLDI1NnoKKwkJIE0gMjI0LDQxNmwg
NjQsMCBsMC02NCBsLTY0LDAgTCAyMjQsNDE2IHogTSAyMjQsMzIwbCA2NCwwIGwwLTY0IGwtNjQs
MCBMIDIyNCwzMjAgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTSAyMjQsMjI0
bC02NCwwIGwwLDY0IGwgNjQsMCBsMCw2NCBsIDY0LDAgbDAtNjQgbCA2NCwwIGwwLTY0IGwtNjQs
MCBsMC02NCBsLTY0LDAgTCAyMjQsMjI0IHogTSA0ODAsMTkybDAtMTYwIEwgMzIsMzIgTCAzMiwx
OTIgbCA2NCwwIGwwLTk2IGwgMzIwLDAgbDAsOTYgTCA0ODAsMTkyIHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAxNzsiIGQ9Ik0gMjA4LDEyOEwgMTEyLDIyNEwgMjA4LDMyMEwgMTc2LDM1Mkwg
NDgsMjI0TCAxNzYsOTYgek0gMzM2LDM1MkwgMzA0LDMyMEwgNDAwLDIyNEwgMzA0LDEyOEwgMzM2
LDk2TCA0NjQsMjI0IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNjsiIGQ9Ik0gMjI0LDEy
OGwgNjQsMCBsMC02NCBsLTY0LDAgTCAyMjQsMTI4IHogTSAzNTIsMzUyYyAxNy42NzMsMCwgMzIt
MTQuMzI3LCAzMi0zMmwwLTgzIGwtMTE0LTc3bC00NiwwIGwwLDMyIGwgOTYsNjRsMCwzMiBMIDE2
MCwyODggbDAsNjQgTCAzNTIsMzUyIHogTSAyNTYsNDQ4CisJYy01OS44MzMsMC0xMTYuMDgzLTIz
LjMtMTU4LjM5Mi02NS42MDhDIDU1LjMwMSwzNDAuMDgzLCAzMiwyODMuODMzLCAzMiwyMjRjMC01
OS44MzIsIDIzLjMwMS0xMTYuMDg0LCA2NS42MDgtMTU4LjM5MgorCUMgMTM5LjkxNywyMy4zLCAx
OTYuMTY3LDAsIDI1NiwwYyA1OS44MzIsMCwgMTE2LjA4NCwyMy4zLCAxNTguMzkyLDY1LjYwOEMg
NDU2LjcsMTA3LjkxNiwgNDgwLDE2NC4xNjgsIDQ4MCwyMjQKKwljMCw1OS44MzMtMjMuMywxMTYu
MDgzLTY1LjYwOCwxNTguMzkyQyAzNzIuMDg0LDQyNC43LCAzMTUuODMyLDQ0OCwgMjU2LDQ0OHoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNDsiIGQ9Ik0gNDQ4LDQxNkwgNjQsNDE2IGMtMTcu
NiwwLTMyLTE0LjQtMzItMzJsMC0zMjAgYzAtMTcuNiwgMTQuNC0zMiwgMzItMzJsIDM4NCwwIGMg
MTcuNiwwLCAzMiwxNC40LCAzMiwzMkwgNDgwLDM4NCBDIDQ4MCw0MDEuNiwgNDY1LjYsNDE2LCA0
NDgsNDE2egorCQkgTSA0NDgsNjQuMDU4Yy0wLjAwNi0wLjAwNy0wLjAxNS0wLjAxNC0wLjAyMS0w
LjAyMUwgMzUyLDIyNGwtODAtNjRMIDE2MCwzMDRMIDY0LjAxNiw2NC4wNDJjLTAuMDA1LDAuMDA1
LTAuMDExLDAuMDExLTAuMDE2LDAuMDE2CisJCUwgNjQsMzgzLjk0MyBjIDAuMDE3LDAuMDIwLCAw
LjAzOCwwLjA0MSwgMC4wNTcsMC4wNTdsIDM4My44ODUsMCBjIDAuMDIwLTAuMDE3LCAwLjA0MS0w
LjAzOCwgMC4wNTgtMC4wNThMIDQ0OCw2NC4wNTggek0gMzIwLDMwNEE0OCw0OCAyNzAwIDEgMSA0
MTYsMzA0QTQ4LDQ4IDI3MDAgMSAxIDMyMCwzMDR6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
MTU7IiBkPSJNIDQ0OCw0MTZMIDY0LDQxNiBjLTE3LjYsMC0zMi0xNC40LTMyLTMybDAtMzIwIGMw
LTE3LjYsIDE0LjQtMzIsIDMyLTMybCAzODQsMCBjIDE3LjYsMCwgMzIsMTQuNCwgMzIsMzJMIDQ4
MCwzODQgQyA0ODAsNDAxLjYsIDQ2NS42LDQxNiwgNDQ4LDQxNnoKKwkgTSAxMjgsNjRMIDY0LDY0
IGwwLDY0IGwgNjQsMCBMIDEyOCw2NCB6IE0gMTI4LDE5MkwgNjQsMTkyIGwwLDY0IGwgNjQsMCBM
IDEyOCwxOTIgeiBNIDEyOCwzMjBMIDY0LDMyMCBMIDY0LDM4NCBsIDY0LDAgTCAxMjgsMzIwIHog
TSAzNTIsNjRMIDE2MCw2NCBMIDE2MCwzODQgbCAxOTIsMCBMIDM1Miw2NCB6IE0gNDQ4LDY0bC02
NCwwIGwwLDY0IGwgNjQsMCBMIDQ0OCw2NCB6CisJIE0gNDQ4LDE5MmwtNjQsMCBsMCw2NCBsIDY0
LDAgTCA0NDgsMTkyIHogTSA0NDgsMzIwbC02NCwwIEwgMzg0LDM4NCBsIDY0LDAgTCA0NDgsMzIw
IHpNIDE5MiwzMjBMIDE5MiwxMjhMIDMzNiwyMjQgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDE4OyIgZD0iTSAzOC44OTksMzI3LjY4OGwgNDAuNzA3LTI1LjQ0MUMgMTA1LjAwNywzNDIuODA0
LCAxNDQsMzczLjk3NCwgMTkwLjIxLDM4OS4zN2wtMTUuMTgzLDQ1LjU0NworCQlDIDExOC4xNTMs
NDE1Ljk2OCwgNzAuMTYzLDM3Ny42MDQsIDM4Ljg5OSwzMjcuNjg4ek0gMzM2Ljk3Myw0MzQuOTE3
TCAzMjEuNzksMzg5LjM3YyA0Ni4yMTEtMTUuMzk2LCA4NS4yMDItNDYuNTY2LCAxMTAuNjA0LTg3
LjEyNGwgNDAuNzA2LDI1LjQ0MQorCQlDIDQ0MS44MzcsMzc3LjYwNCwgMzkzLjg0Nyw0MTUuOTY4
LCAzMzYuOTczLDQzNC45MTd6TSAzMDMuOTg3LDEyNy45OTZjLTIuNDA0LDAtNC44NDYsMC41NDUt
Ny4xNDMsMS42OTNMIDIyNCwxNjYuMTExTCAyMjQsMjcyIGMwLDguODM2LCA3LjE2NCwxNiwgMTYs
MTZzIDE2LTcuMTY0LCAxNi0xNmwwLTg2LjExMSAKKwkJbCA1NS4xNTUtMjcuNTc4YyA3LjkwMy0z
Ljk1MSwgMTEuMTA3LTEzLjU2MiwgNy4xNTUtMjEuNDY2QyAzMTUuNTA4LDEzMS4yMzgsIDMwOS44
NTYsMTI3Ljk5NywgMzAzLjk4NywxMjcuOTk2ek0gMjU2LDM4NEMgMTQ5Ljk2MSwzODQsIDY0LDI5
OC4wMzksIDY0LDE5MmMwLTEwNi4wMzksIDg1Ljk2MS0xOTIsIDE5Mi0xOTJjIDEwNi4wMzksMCwg
MTkyLDg1Ljk2MSwgMTkyLDE5MgorCUMgNDQ4LDI5OC4wMzksIDM2Mi4wMzksMzg0LCAyNTYsMzg0
eiBNIDI1Niw0OGMtNzkuNTI5LDAtMTQ0LDY0LjQ3MS0xNDQsMTQ0YzAsNzkuNTI5LCA2NC40NzEs
MTQ0LCAxNDQsMTQ0YyA3OS41MjksMCwgMTQ0LTY0LjQ3MSwgMTQ0LTE0NAorCUMgNDAwLDExMi40
NzEsIDMzNS41MjksNDgsIDI1Niw0OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxOTsiIGQ9
Ik0gMzIsMjUyLjEyN2MgMjIuNjU5LDI0Ljk2LCA0OC41ODEsNDYuMTgsIDc2LjYzNiw2Mi41NjJD
IDE1My44MDIsMzQxLjA2MSwgMjA0Ljc1OSwzNTUsIDI1NiwzNTUKKwkJYyA1MS4yNCwwLCAxMDIu
MTk4LTEzLjkzOSwgMTQ3LjM2My00MC4zMTJjIDI4LjA1Ni0xNi4zODIsIDUzLjk3OC0zNy42MDIs
IDc2LjYzNy02Mi41NjJsMCw1OC43MTYgCisJCWMtMTYuNTA1LDE0LjA1OS0zNC4wNjIsMjYuNTct
NTIuNDM0LDM3LjI5N0MgMzc1LjA2MywzNzguNzk2LCAzMTUuNzM3LDM5NSwgMjU2LDM5NXMtMTE5
LjA2NC0xNi4yMDQtMTcxLjU2Ny00Ni44NgorCQlDIDY2LjA2MiwzMzcuNDEzLCA0OC41MDUsMzI0
LjkwMSwgMzIsMzEwLjg0MkwgMzIsMjUyLjEyNyB6TSAyNTYsMzIwYy05MS41OTgsMC0xNzIuOTE5
LTUwLjI3OC0yMjQtMTI4YyA1MS4wODEtNzcuNzI0LCAxMzIuNDAyLTEyOCwgMjI0LTEyOGMgOTEu
NTk4LDAsIDE3Mi45MTksNTAuMjc2LCAyMjQsMTI4CisJQyA0MjguOTE5LDI2OS43MjIsIDM0Ny41
OTgsMzIwLCAyNTYsMzIweiBNIDI1NiwyMjRjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiwx
NC4zMjctMzIsMzJjMCwxNy42NzQsIDE0LjMyNywzMiwgMzIsMzIKKwlTIDI1NiwyNDEuNjc0LCAy
NTYsMjI0eiBNIDM2NC4wMzMsMTMxLjY2OUMgMzMwLjMxNiwxMTEuOTgyLCAyOTMuOTY5LDEwMiwg
MjU2LDEwMnMtNzQuMzE2LDkuOTgyLTEwOC4wMzMsMjkuNjY5CisJQyAxMjIuMTksMTQ2LjcyMSwg
OTguNjU5LDE2Ny4zMjQsIDc4LjkxLDE5MmMgMTkuNzQ5LDI0LjY3NSwgNDMuMjgsNDUuMjc5LCA2
OS4wNTgsNjAuMzNjIDYuNjM4LDMuODc2LCAxMy4zNzksNy4zNywgMjAuMjEzLDEwLjQ5MQorCUMg
MTYyLjkyNSwyNTAuOTUsIDE2MCwyMzcuODE3LCAxNjAsMjI0YzAtNTMuMDIwLCA0Mi45ODEtOTYs
IDk2LTk2YyA1My4wMjAsMCwgOTYsNDIuOTgsIDk2LDk2YzAsMTMuODE3LTIuOTI1LDI2Ljk1LTgu
MTgsMzguODIxCisJYyA2LjgzNC0zLjEyMiwgMTMuNTc1LTYuNjE1LCAyMC4yMTMtMTAuNDkxYyAy
NS43NzctMTUuMDUxLCA0OS4zMDgtMzUuNjU1LCA2OS4wNTgtNjAuMzMKKwlDIDQxMy4zNDIsMTY3
LjMyNCwgMzg5LjgxMSwxNDYuNzIxLCAzNjQuMDMzLDEzMS42Njl6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwMWE7IiBkPSJNIDMyNS41ODQsMzM4LjA4M0MgMzEzLjI3OCwzNzkuMDY0LCAzMTEu
MTQ2LDM4NCwgMjcyLDM4NGwtMzIsMCBjLTM5LjgwOSwwLTQxLjMzMi01LjA3Ni01NC4yMDktNDhj
MC0wLjAwMSwwLTAuMDAxLTAuMDAxLTAuMDAyCisJTCAxMTMuNzkxLDk2bCA1Ni44MTgsMCBsIDI4
LjgsOTZsIDExMy4xODMsMCBsIDI4LjgtOTZsIDU2LjgxNSwwIEwgMzI1LjU4NCwzMzguMDgzeiBN
IDIxOC42MDksMjU2bCAxOS4yLDY4YyA1LjA0MywxNi44MDksIDE4LjE5LDE1LCAxOC4xOSwxNQor
CXMgMTMuMTQ3LDEuODA5LCAxOC4xOS0xNWwgMC4wMDIsMCBsIDE5LjItNjhMIDIxOC42MDksMjU2
IHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyODsiIGQ9Ik0gMjg4LDQ0OCBDIDQxMS43MTIs
NDQ4IDUxMiwzNDcuNzEyIDUxMiwyMjQgQyA1MTIsMTAwLjI4OCA0MTEuNzEyLDAgMjg4LDAgTCAy
ODgsNDggQyAzMzUuMDEyLDQ4IDM3OS4yMDksNjYuMzA3IDQxMi40NTEsOTkuNTQ5IEMgNDQ1LjY5
MywxMzIuNzkxIDQ2NCwxNzYuOTg4IDQ2NCwyMjQgQyA0NjQsMjcxLjAxMSA0NDUuNjkzLDMxNS4y
MDkgNDEyLjQ1MSwzNDguNDUxIEMgMzc5LjIwOSwzODEuNjkzIDMzNS4wMTIsNDAwIDI4OCw0MDAg
QyAyNDAuOTg5LDQwMCAxOTYuNzkxLDM4MS42OTMgMTYzLjU0OSwzNDguNDUxIEMgMTM3Ljk3OSwz
MjIuODgyIDEyMS4yNTgsMjkwLjgyOCAxMTQuODk2LDI1NiBMIDIwOCwyNTYgTCA5NiwxMjggTCAt
MTYsMjU2IEwgNjYuMjg1LDI1NiBDIDgxLjgxNSwzNjQuNTUxIDE3NS4xNTQsNDQ4IDI4OCw0NDgg
Wk0gMzg0LDI1NiBMIDM4NCwxOTIgTCAyNTYsMTkyIEwgMjU2LDM1MiBMIDMyMCwzNTIgTCAzMjAs
MjU2IFoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik0gNTEyLDE4My43NzFsMCw4
MC40NTggbC03OS41NzIsNy45NTdjLTQuMDkzLDE1LjAyMS0xMC4wNDQsMjkuMjc0LTE3LjYwNSw0
Mi40OWwgNTIuMjk4LDYzLjkxOUwgNDEwLjU5NSw0MzUuMTJsLTYzLjkxOC01Mi4yOTgKKwljLTEz
LjIxNyw3LjU2Mi0yNy40NzEsMTMuNTEzLTQyLjQ5MSwxNy42MDRMIDI5Ni4yMjksNDgwbC04MC40
NTgsMCBsLTcuOTU3LTc5LjU3M2MtMTUuMDIxLTQuMDkzLTI5LjI3NC0xMC4wNDMtNDIuNDktMTcu
NjA0CisJTCAxMDEuNDA1LDQzNS4xMkwgNDQuODgsMzc4LjU5NWwgNTIuMjk4LTYzLjkxOGMtNy41
NjItMTMuMjE2LTEzLjUxMy0yNy40Ny0xNy42MDUtNDIuNDlMMCwyNjQuMjI5bDAtODAuNDU4IGwg
NzkuNTczLTcuOTU3CisJYyA0LjA5My0xNS4wMjEsIDEwLjA0My0yOS4yNzQsIDE3LjYwNS00Mi40
OTFMIDQ0Ljg4LDY5LjQwNWwgNTYuNTI0LTU2LjUyNGwgNjMuOTE5LDUyLjI5OGMgMTMuMjE2LTcu
NTYyLCAyNy40Ny0xMy41MTQsIDQyLjQ5LTE3LjYwNQorCUwgMjE1Ljc3MS0zMmwgODAuNDU4LDAg
bCA3Ljk1Nyw3OS41NzJjIDE1LjAyMSw0LjA5MywgMjkuMjc0LDEwLjA0NCwgNDIuNDkxLDE3LjYw
NWwgNjMuOTE4LTUyLjI5OGwgNTYuNTI0LDU2LjUyNGwtNTIuMjk4LDYzLjkxOAorCWMgNy41NjIs
MTMuMjE3LCAxMy41MTQsMjcuNDcxLCAxNy42MDUsNDIuNDlMIDUxMiwxODMuNzcxeiBNIDM1Miwx
OTJsLTY0LTY0bC02NCwwIGwtNjQsNjRsMCw2NCBsIDY0LDY0bCA2NCwwIGwgNjQtNjRMIDM1Miwx
OTIgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFmOyIgZD0iTSAzODQsMzc3IEwgMzg0LDM1
MiBMIDQ0OCwzNTIgTCA0NDgsMzIwIEwgMzUyLDMyMCBMIDM1MiwzOTMgTCA0MTYsNDIzIEwgNDE2
LDQ0OCBMIDM1Miw0NDggTCAzNTIsNDgwIEwgNDQ4LDQ4MCBMIDQ0OCw0MDcgWk0gMzM4LDM1Mkwg
MjcwLDM1MkwgMTc2LDI1OEwgODIsMzUyTCAxNCwzNTJMIDE0MiwyMjRMIDE0LDk2TCA4Miw5Nkwg
MTc2LDE5MEwgMjcwLDk2TCAzMzgsOTZMIDIxMCwyMjQgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDFlOyIgZD0iTSAzODQsMjUgTCAzODQsMCBMIDQ0OCwwIEwgNDQ4LTMyIEwgMzUyLTMyIEwg
MzUyLDQxIEwgNDE2LDcxIEwgNDE2LDk2IEwgMzUyLDk2IEwgMzUyLDEyOCBMIDQ0OCwxMjggTCA0
NDgsNTUgWk0gMzM4LDM1MkwgMjcwLDM1MkwgMTc2LDI1OEwgODIsMzUyTCAxNCwzNTJMIDE0Miwy
MjRMIDE0LDk2TCA4Miw5NkwgMTc2LDE5MEwgMjcwLDk2TCAzMzgsOTZMIDIxMCwyMjQgeiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTSAzNTIsMjg4bDAsODAgYzAsOC44LTcuMiwx
Ni0xNiwxNmwtODAsMCBMIDI1Niw0MTYgYzAsMTcuNi0xNC40LDMyLTMyLDMybC02NCwwIGMtMTcu
NjAyLDAtMzItMTQuNC0zMi0zMmwwLTMyIEwgNDgsMzg0IGMtOC44MDEsMC0xNi03LjItMTYtMTYK
KwkJbDAtMjU2IGMwLTguOCwgNy4xOTktMTYsIDE2LTE2bCAxMTIsMCBsMC05NiBsIDI4OCwwIEwg
NDQ4LDI4OCBMIDM1MiwyODggeiBNIDE2MCw0MTUuOTQzYyAwLjAxNywwLjAxOSwgMC4wMzYsMC4w
MzksIDAuMDU3LDAuMDU3bCA2My44ODQsMCAKKwkJYyAwLjAyMS0wLjAxOCwgMC4wNDEtMC4wMzgs
IDAuMDU5LTAuMDU3TCAyMjQsMzg0IGwtNjQsMCBMIDE2MCw0MTUuOTQzIHogTSA5NiwzMjBsMCwz
MiBsIDE5MiwwIGwwLTMyIEwgOTYsMzIwIHogTSA0MTYsMzJMIDE5MiwzMiBMIDE5MiwyNTYgbCAy
MjQsMCBMIDQxNiwzMiB6TSAyMjQsMjI0TCAyMjQsMTYwTCAyNDAsMTYwTCAyNTYsMTkyTCAyODgs
MTkyTCAyODgsOTZMIDI2NCw5NkwgMjY0LDY0TCAzNDQsNjRMIDM0NCw5NkwgMzIwLDk2TCAzMjAs
MTkyTCAzNTIsMTkyTCAzNjgsMTYwTCAzODQsMTYwTCAzODQsMjI0IAl6IiBkYXRhLXRhZ3M9InBh
c3RldGV4dCIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDMyOyIgZD0iTSAzODQsMzUyTCA0MTYs
MzUyTCA0MTYsMzIwTCAzODQsMzIwek0gMzIwLDI4OEwgMzUyLDI4OEwgMzUyLDI1NkwgMzIwLDI1
NnpNIDMyMCwyMjRMIDM1MiwyMjRMIDM1MiwxOTJMIDMyMCwxOTJ6TSAzMjAsMTYwTCAzNTIsMTYw
TCAzNTIsMTI4TCAzMjAsMTI4ek0gMjU2LDIyNEwgMjg4LDIyNEwgMjg4LDE5MkwgMjU2LDE5MnpN
IDI1NiwxNjBMIDI4OCwxNjBMIDI4OCwxMjhMIDI1NiwxMjh6TSAxOTIsMTYwTCAyMjQsMTYwTCAy
MjQsMTI4TCAxOTIsMTI4ek0gMzg0LDI4OEwgNDE2LDI4OEwgNDE2LDI1NkwgMzg0LDI1NnpNIDM4
NCwyMjRMIDQxNiwyMjRMIDQxNiwxOTJMIDM4NCwxOTJ6TSAzODQsMTYwTCA0MTYsMTYwTCA0MTYs
MTI4TCAzODQsMTI4ek0gMzg0LDk2TCA0MTYsOTZMIDQxNiw2NEwgMzg0LDY0ek0gMzIwLDk2TCAz
NTIsOTZMIDM1Miw2NEwgMzIwLDY0ek0gMjU2LDk2TCAyODgsOTZMIDI4OCw2NEwgMjU2LDY0ek0g
MTkyLDk2TCAyMjQsOTZMIDIyNCw2NEwgMTkyLDY0ek0gMTI4LDk2TCAxNjAsOTZMIDE2MCw2NEwg
MTI4LDY0eiIgZGF0YS10YWdzPSJyZXNpemUsIGRvdHMiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAzNDsiIGQ9Ik0gNDY0LDQxNkwgMjU2LDQxNkwgMjQwLDQ0OEwgNjQsNDQ4TCAzMiwzODRMIDQ4
MCwzODQgek0gNDIwLjE3LDEyOEwgNDY0LDEyOCBsIDE2LDIyNEwgMzIsMzUyIGwgMzItMzIwbCAx
NzguMDQwLDAgQyAxODkuNTk5LDUwLjg4OCwgMTUyLDEwMS4xMzMsIDE1MiwxNjBjMCw3NC45OTEs
IDYxLjAwOSwxMzYsIDEzNiwxMzYKKwljIDc0Ljk5LDAsIDEzNi02MS4wMDksIDEzNi0xMzZDIDQy
NCwxNDkuMTYxLCA0MjIuNjg5LDEzOC40MjUsIDQyMC4xNywxMjh6TSA0MzcuNDk4LDU1LjEyNWwt
NjcuMjQ4LDU1LjM0NkMgMzc4Ljk3NywxMjQuOTMyLCAzODQsMTQxLjg3OCwgMzg0LDE2MGMwLDUz
LjAyMC00Mi45OCw5Ni05Niw5NnMtOTYtNDIuOTgtOTYtOTYKKwlzIDQyLjk4LTk2LCA5Ni05NmMg
MTguMTIyLDAsIDM1LjA2OSw1LjAyMywgNDkuNTI5LDEzLjc1bCA1NS4zNDYtNjcuMjQ4YyAxMS40
ODEtMTMuMzM5LCAzMS4wNTktMTQuMDcwLCA0My41MDMtMS42MjZsIDIuNzQ2LDIuNzQ2CisJQyA0
NTEuNTY4LDI0LjA2NiwgNDUwLjgzNyw0My42NDQsIDQzNy40OTgsNTUuMTI1eiBNIDI4OCw5OGMt
MzQuMjQyLDAtNjIsMjcuNzU4LTYyLDYycyAyNy43NTgsNjIsIDYyLDYycyA2Mi0yNy43NTgsIDYy
LTYyCisJUyAzMjIuMjQyLDk4LCAyODgsOTh6IiBkYXRhLXRhZ3M9ImJyb3dzZSIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3gyMDsiIGhvcml6LWFkdi14PSIyNTYiIC8+Cis8L2ZvbnQ+PC9kZWZzPjwv
c3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9m
b250cy90aW55bWNlLXNtYWxsLmVvdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLmVv
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MGUyZDJlNWM3NDdjYWY5ZDQxMzEwOTc2YWY5NmM3NWM2OTZiNDQ4CkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMDMxNgp6Y21kNT9VMkdpSmItczgwX2l1S1d5UiQ8fDxa
XmJHPFdROHZ6dXxLQVc2Pmled2syNl5YZW10JE02cmtkSD0tWF8KemMyaGZVbkBKREBMMGMzYGZ3
Wm4rNiFYJFRlSlJ1d1o0PHlLI3hGJTQzUktCTTtyNX1+QjAlN18ycjN3TFAhI1U2CnotP184MVR2
OEdaQlFHQkUmT1BfZXk9VHQ3X3VUS0NkdUdxaUdJcW1kajVDU3R5ZzBrVHNwa0NwJlUkS19UdEVB
cAp6VXd3MTtHc2dDQFNKfSgjRHRuej5WYjhNWCo8dG55czEwQCplfmcqejBfdDk1em1DIWR5TjtS
fmB2UGpOcXQobW8Kejh1fmVHaU9zVmBKbFVIUThqdjc0N0JaUEZlKHZKSnZlRXAtZjE+N0hxfk9e
cjg9TEcwKEgwdHdxa1FTYmphTjMyCnptciNCVXgkKXhWKkkoRnBgWD90KTRqRjZTZGc9TCU9ZUJQ
QitmTnZxcUYxbEpnYk1rYChpcUF3cCo7MXtsfi1TVAp6blA7OD1gRmtqTEZKRjZoO31ANUh7dmwp
MkdfMzFhSGVUQ2dYWlFtc2NUc2soWmRgZihaUl98JiMlNTZEKkVYLWMKekArIyFTPCZxb0BsT0BK
KUZjcl92XkF9TF9YZ35qbWpqP1oweVA9Q2k/NDZlbjUhJEBGZytKWn1IP1NGTUt4SE50CnpsLV5q
eWQrQk1GRGVNZSNsTm9yWHEwWl5mYzkqO0R0XmVEP0ptR1M+dFVLM1Q1b055aFElNy1STjl5KyQ0
ZjszRQp6SUM+T14tVTtSRDkyRnZMJWR2TnohVzs8UTx1VCtNVzMlaW1YMEdmdW54PHJ4dDk4azFF
VSFzeip8Uz5oTn4/V0QKelVoPEdFdWhtfGVta3g1WW4mN1JuWFFBYkJqK1E2NVpTbjRBP3xxfH4p
M2pYQztHMENual5vRiVAMkh1YTlfelZgCno+SWdDLSh4MnRDbzdBKi1XNjxmekFuMyhtN305Zzw2
TExSRD1gV284aD13bVNBOUJaI3lVcUA9aGR7Z1l2aEpGKQp6RSFTbXh5MCN7RDxrZmt9KWxxVWcl
WE1rVnVCYkQkblZNUz5jVSFsMGx4QSVIPWNnM1lFTk1UfEBgbERhU0YlfXkKektXSnBMM0pRMztW
b1E/RHI3dkA/JD9FQlI/PiR0ZipMKGFNZWUlVXEzUGVTTHk3I2AoQDIoa25qaEQ1T1gofX5JCnpS
dSEzbE4jQEd3LWpEamR6TWtZPz1VYWxIYWJkTiN5M29sayN6JCs+IzwxTHV0SXh7fHlycjhNcUhk
ZFZreXx6Zgp6cnJWdm1KanVQem4ldUVGP3diNHtjbERPcj9zJkUodjMwSH1zPVJXPFM5OTUlV34+
XzthQDlZdzAhYjlVe3Qxc0cKelV0SGgrbC0raTVINC1paUlgMSRDZFBYUnIxMSpZLVJUYEd+WXhp
QDkkMzAmcHJgUDNfTE89OClCK1NibXtYNHQrCnoyYl50VFF5Xl9LXyUhX15AJCNKbD85dTtqYE98
VDF6YUh8Ulc+eCshenJ+S1JydlMybGd0YUF3P0pUYkc4NWZHbgp6PndMLTlYR30+cXJKN3ltWWFG
WlVjNUpPSyo+ITJQdiZRR0t4S0lGN1paKUNVXkdPUjJzKlVHV3RBb24rJTk9eksKelJASWJSUD9N
eWc+XmB1Z3QpfXheblRsbSlvblIhZGpZaVJebUxDYjZ0WXVYKVc9WVFHQHtgU2BuYUxZNmNOe0pv
CnpgSGIwWVBVZHIyeG55b31TPHdfSWN+K0dhNi1reTJMJjtFNFJUVzg9cXxjPXJITz0xXlBnSGJL
Jj1wJD10KjkkJQp6R0t5aXl2aHRuZVR8c1NYb31gKGRzcysyPm81O0ljI3pTZipWPD9LUU4qcnZK
TGFBZ1pJJHBzY2hvLTYwViswPGwKejlGJWBlcUwhK3pDYEtqJjVqMmY5SF4hdFpNeVhVIzcqaG92
NjBYZCFIcjhzNUpxJkN+O0JGWjdRaCs/cEV3OXNWCnp4aFhXWitJa3lrJD1qYVpYI3E3b2l3QnI4
ZDdWVkBOcnJWOXZwYGp3YVMrN1ZBOTJpPz1sTVlocjU2dktSQWgmbQp6Wjg3U0FybEkybWo/Pz9P
PVVvaUNWU2k1fip1QmFnWFYwLVdBU3ZHMVpkcnVhe2FqJTVIYS10eUg4OHh6Tms+UjsKemZadShe
PkQqbXEtKEFKdTlke3hwTD5reDRqSFlFd3tXVCl8MFl5YWIhJUs+JCVDZjJ7MUw3R2NvcSstSUN4
ZUZyCnpmYGhqY1FYKVJAcnwpPkBvczwkKW0+Zih8JTgmQis2RHlib1kkWXM7YGRIKihyTyQyUzV1
dVZ5d3ZTOTclQE02Tgp6bllnX3g7c0kmXklsfHFWX2VvX1FgMnFnO3p8TiZRNVQhKCMtJkZ4QEB2
LXQ8PXhsPG0oPnVyRndwKW94S3JNN3EKempVPUlWaHNkemVfIWslQ05XfVR1diRWdXhefEtESDJ3
c0BqQTJmSHtJNmppUiZCbSt8NjYjMjBUTmh2K3JCZjBTCnp0WiF9KEBSK21wXip3bWUzWiRzWWJ6
QVVDU3RVbHxFP3lHJHR1TiU3V3sqTGxSR0ZkT0NwZntQZztnWkBUc184RAp6O25ubll7b2FxbVlI
TUd5eFVXXkV5dVJ8dHRocy0qbUw7JFEkfCRuTCooV3V+bSZUX3BZa0lzeXhxMHdoJDJrVGMKekN4
X2t5UGtUUFpRbkRrczF6MWxMUilUPEV4Nz8xa1RJWWM3QVU5R3piQHR9WEN0c0whU0swSXZDK0RQ
VkgqYTIlCnpQZHhKbXlrN0s7YVFrNz5tJHotYkohQTVrUDFlSFomZHItPVBuQWI8dE0yM3JQeDZh
YlpyOzJtJjdGSz1gaGhvfAp6SVJPX3s3VDkraWViMkJ6VyQlRnhvRGI2ZUF+JClwSHB4NCVJeERM
V2FAZWZwckRMI0k5dD40Z3FzTWMrd0smSVQKeitIZzxtR0hzTHhAeTMtSXg1KHx+K0JqYnRtKFht
ezxqdGl5akhsKFVmS3oqTVdzTlZ2dktgfno7eFMmYztLS31GCnpEQVNJYzxPNjBoWk4md3lXNXhQ
WEtuT0NGO3s5QHEtLVpoWUtMXmZFTSE5STw7IVdYSVRfbnVzTlQ7WkhRSU4wfQp6UWQ2UyNEeDlL
emAqJU1AZHNzNTRmfkV8PUdwKnkjTml0U2gjdVo3cnAtWH4tayU4aHxJaEQ0JFhqcW5JS25pTHwK
elZ2JkZZNjArfVhfPTZAeU1qTkRsVE91KElRNXRUKEoqdz9AWk9ARjxwLXdgcWh+IUVyVnZXPDdT
cFYpfHtvaU4qCnojZEJiTl5mUmRtSFopLVl5MGsqUihLNTc/UkRyeEJRanVpT1cweX5HQGBkaFUo
eCZrKz9aY1poREpSKlohJFEoKQp6eigtRz1EamEkR1VlOyR3LUZ7UTNuP0cxaEs/IXZXaDdCWHgj
bUctPDIxR0NWck1pQ3hIMk9ENHF5NTI3T0ROTGwKejZFeCgoS21gI3xSWFBXaHxNWnZYNDdgPENo
fXt1bCYhey1udXU4ZE9tbTN2VkZNRE1pVjdGS29qdkpZKjVLVmdECno0RmRqSEAyfUJLVX5TQHFq
SXRGdj5HNTQ+P2xPNUVXd0AwJTlPJWYxWSo2bSpfQyZ4cU9xfk5ocG5+PHlmUU8rYAp6Q30qP2Zm
fDJHdEIyVDBqND82Zm5eYGdrWGFma2M4X3w5LSs+STdMY3o9YyVTM0Qjc1RQVFdndWxedXQ3ZH5k
blEKejRZbEI0Xmx1ZiEyKzlaPTRBKFdSJmI8WmkjZmNOcmpwSERwd2gjaWxrSnZzPWh4Q3VMOSl3
UnphblFHQWdrPWg9CnpGaiZTOGBOWVpJKTxLWVBac0hQPHEzSWhmOUokRU1rUU01SjhCTlhnYDU9
bWUrTShJJFZyaV9EJD4zSTtvO181JQp6eTlRIShYPnU8PDRvfUp0X0dtZmlPWnYwTzApQ3FaaVQt
cnh0WiFFa29VbDgkZzgmWTI8Y0xoJUkxPmZaOX5HOz4Kel8mQFclVnRLQEVJX3h+I2ZjRHU0MWh7
Wj1yWVk+dkxGN1E1KFBwIy1vTHwtP2R6RW1GJldacEAqVHFSdzNfS2FKCnpVZSojfExxTEh9a0ZJ
K2xHZGt7K2k8YUEoJG4me2sqJT0/cjlMUF8hVCZzY1kjYClRRkN2e3wpTGNvbjhFelVsJgp6UVlV
dlEmRmQ/IVpNIyZMPG93Sy1JY2A7eTEqMUNRUjR5K2w2PkhvYXQyaCU/cXhUUWtoK0p4WU1iYyRO
VUtDbEUKenpQTWspKE41dGk5JkdWUj9Aey1fIXxlJnFDKXk3bWEzQSQxZEc5YXo9dUNUSih3blZ1
VVlxcU1DKXpXa3V3eDRKCnptMytiOVdwbkk3X0lkVWx0VWV9WTRTdERPWH1nVj9OZ05JRzJ5dHxW
WW5WNzFuNnM4UkoqUE8yOUBmeEZUQ25NdQp6IVp9SGcxMXt6b3xLUXtwbH1hXk5acTNZOERsOz4h
YTt7cGI3K1JyVllTcD1laGlrUk4yantBcVN0d31UPUU8Vz0Kem1DRGw1bGcoe3ZfWXZXOFZjLTY3
KDtWTnd1YUYlWERkfkQ/V0YoNi10NGIkbXAxUC07NCY3OV8tUjklV05VXkE4CnppJjw2ME8pQ35o
R1JNX3lDWnB1YmN9PkdqJHotelhAelcjQ2deN3VVPTE3X2NESloxKkJfb0hVdllzPGt2c2xoIwp6
JTAqTWYraG5mTmZqQFBEPV5VQCgjNFN0UHR3XnUwTCQ3fXk9TEROVnVZNnQ+O1gqPCgtOXZvSmJN
Py1ldzdqJnEKelQ8NytaLVF0Z15kYlY3MmlzaGBYbztmO3hlZjtRfHVUKmV+TjY8aSVEKENveFZr
SU5YKi1HaDc1UFcjeXc1RyN9CnooTjQyJEFEY3B+ZEl0Vi1nXmpYcGl+PTR2JF8qUjkpM1VNc3kq
QXkldjBOdU9Yd2RCaCQ2WH4jckZJVVhicmRGNwp6Nnd0KlR5NyMmWCNsdjMyMUhnbFdxcX5uUXBx
bkdHMkwkI2V3a2VDRGV9d1dQJHxaUG1JOzlDKmFgK3ZBTzloMTEKejhBWSQheWR9Mn5VdXteaDk2
JGdCXkMmKiloIXxGSV8wbUleSG81Yn0kJi1fVnxHQFhUTHFSVXo/P3I9SjVPQFhWCnotYjZlKTJC
emROYCl0fnghM281KDsycFV3OCFMYlh6LWJJQGZ+JSpXZGdeby1pdT40QGJHREFlND9PaSQ3JE9s
Ygp6dFJxSH5ASXRnPnopUm5vN2t8Q2F0ZHNKaGQxMDhCNyMwdGElPjtTRz42I0dPMDw/SjhuWnJS
Vzk5UD9WaXdFTmkKeiV9VlJVaDU3amxDdDgpfSFnJTBCbH1TNXFBNlQ4N1RzOzZ7dkkzbStFNGl0
fEQtJFhET3NwSzklMmdJT3VWdzRnCnpoZWpMNjR2bWMrSUBUQ0hHK29iTCtnIXZ2Qzl4aW9YQkwr
MUI3MkdiN1VXQVhmPFM8ck4jRnBXZkBDODZYYWd5Qgp6TDt7eGQtUFlMS1RfSHteZVJLZ3MmTUgl
bHg+PX4yeF43a3JYMXlfMHh4MG8ybmh1IXFVXmg1fnlET1pebHJ4QEYKej9aJXZLJm95aXtIfHxW
VF99aEVEV0FONlE7V3lFbnFaOXp7bXcjSyZtdmduNXtpVnxXbk9kJSMqOUdQfVNsYjl4CnoxM1Vo
QnFXTnU9KyMweWtebm4xMVBNOFZiOUlsTl8/bSZsfV5JQG5CaDA2UWU0dmh+TFBvKVVyXyhmU2FS
TXBWcwp6RylKSnE3bjM4NWIrQW90dWBzK24rPiZ9RXdqdDMkalRQfENWP1gzezV2anc1PS02Iys0
R1gpWWpaTENNOHtOKkcKenpgdXBhb1ZYOD5LbUA4RXN1M2h+TipuMDc0ZVBUMiYrYj5DUyVASCNv
e00+fkRUTG9hYmd1MkctY1UlPCErZnwlCnpFbVpgYSh1cTJWRWt9VlVtb31jKmVZYDd4bnQ9YlVN
LU9iP2g4KEBmQSQ8QHQ8QG1WcDlUOCo0aCRYNUlNMkEyOwp6TkxvZytoN2p5RyYkVnVKb2hYamU4
SUZTPiNDJEhNV2tHYV9NVEJZc0h3b2pUYnE/VG5TVUBpVlJnYzdpYlNmPHsKenJMSGU3JlUlbXBV
UXRxWHE5X1AzTUwtbSVqe2B9KHN0aXRKSzx5U2dmS1FHZEpJWVM1bFcwTClrO3JyRjVaUHtsCno2
Mk9nfHpgfD9XNnk8RDk2VXVYPkdPIU17KVB2QFc7ODgkeDtFKWd3bTMrc0VrJE4lVkpkYilJO1c/
cz1WdGdEPwp6RXtaJENAcDYycD54M2J3Rm8/dT1pMnlDYjJzTj9lVTt2RWlnSy0hdjlZY2RuTHZw
KFQ2TmtqejJFTkJvZjszX3IKekxwZ3VUPSozM0s7TElyWFpYNFZPeSNATT01RzY/T0pkV2NDNT0y
b0xjSmIhcXFXNFElY1c2Tz9VJnx0NU03fDFiCnpzNWJOa1hxOUBoPGxWcUlAcFJWJWdiNiFuYVZK
SFhrPj16P3pFQ09YSSZTJWlOcGM1SmxQJT5sKHc4P2tGS0YpWgp6Xks7TSY5O1lhPXhVKiYySCZl
NjYzU29IUWsoRyhxans/WGk8ODAqTVkhdHg/JjAkUnUlTXdCejxtR3x5PFBMfFAKejQ8Y1lpWn4m
OD5qKWZvMW18MVA0ZSEkK21WSVFjRTxWTi12VXN0cUArQjh0RldsaUpRZz0xPClRIWI/Q2Y3ZUg8
Cnp3Un4tUXFTT21aNlZ0VkZlWE9FQU8tPDQ+KDN1YTIhSWB3a3BlQiRyZn1EQSpveilWYkozWktB
azRJPDFHaElxTgp6ZzMzNCFfWl56QHBnJTRKOGs8PH4lMShvRWcyUm5XQkV9I0MzU00/KTcwX2lD
PT9ubyEzSSo5dW9uejhVOT5pS00KejJjSGNPTUFLe3pVcnl1d15BdmBoLXljSVg9b3tfNWgmX1kz
WT5AfXNrNEJLcUBganlTO28yfE9tVE9CYnRDNl8kCnohaiFkeXVTJkNARHV7PmcqS2NDJk1ob1M3
dHglfWQlalEwLXMydCZYJmRnLTMoUzMhJnpFTFppRXp0K3ZRV2kwJQp6SCN5NWVVLW9RQEZGZVcl
VHxLTUluUE40VXN9P2Z8ZWBZZTNhIzJmdE8xKisqJUdJbjlnTDZtRG5ubU9PJkVQfWwKekhPeEhD
ITgrIUUpflg4UlBSKzR9PDBidklUUU1tS3NTRTlQT2Nqdy03MTgrK1NWVE18Rl57cH0wc3JWOFR5
VG8mCno/cUMhbjtDdlVhVVlPdCtvI0Ijb3NnbDJTNH1QantNPzNnJmlpWTNDNWIjVSMzQk4/Xz5u
eU54MWxaV2J6Kn12WAp6S0Q5VTZ1NFJMIUIhSVVweldFVHpmdjw3UW94dDtBJmpWNm57OVY4Wmxv
bDJ1PW12KjlGWjhAWmZIdTkqa0FzTmUKeko4Wn4mJXhBejdFSDEpPndxWD9+ZnlPUjcybiopbmJP
fiF0WGlWNUV1cFQpZjhxcTFUclMpa1kpdSlNdjQmWVE9CnpCRXV+ZkNFUCN7eyZ8MjN4Jm0+SiND
YGpRc2JPQHMlVX09MG41OVlmMj5UTXY0NkpubmZ4QVdwZHRsJWBqdzMzcQp6K3hSRmgleFM3QXIx
PU9NRkMmVUE7P3dUWDc4Mm1lWntJSDZhKE1pfXA7Rkl4ekVeRkc3T2QmekAkdXpwMytLQEMKekRT
VDN3KHo2JWtkTGZfSkkhWjJ8U01YaDMpeEtNKFFOKUZ8UWohQlg1VDU4RjxUQlFydHF+dk1oY0JP
b2E8LSU4CnpeOTRPVU5se0tlNkY4LVRrKnd0TklweUZtQypud1JBb0slMWM/P14jMCZCU2pBTEEz
Z1E4dm5WZjEpR0AzfDVyUAp6NjA5YWxGc0FxYVNQOFg/ZVZsaz0/c3ZPIXNwTzJWazI8QiZVWXsm
RXRTQnVkdSYqMEsyZFVzZ2V4OVVqTkI/OCkKej5FWigpdjdDZW8je09+ckhjc2tFeklDVm5EK3Iy
OEN5enh4YG1HSVo7S2NGP1BTaHA2QFpEdGxxU3Y2U2dYOXk3CnpLMjdCYG9nU2o4NFc7eE08d3Vh
QnB9S0kwcnNzPURab2xzT3U0Zzk3bCZJWXZZM21OMjZKSC1HPShrPCg9ZnZNWgp6M2o0VnVNd2JR
bCkhRW5CJi1ldj9vJk4jPDl7O2lRWFZTOz1UTUFRRkB0eVVYJF9FR3RPbGVkNC18N0VpRUU+T0sK
entIeVc1blF2IyRXcSYqUyF8WHJoak5FK2deU084TzU5UitifE0hS30hanB3fTNtPT4zJkIqK3xg
UU9FXzdUK3F5CnojU2NwTChwTzlXUSteVX1xPWBKamtJYD43YTZ5IzJFfGRMKlhobSZ0cnRRO29j
S28kSUV1KCgxUGI7OW0tbHRYawp6QE44ZTdDWGY3RnBVJmI7X1Eke151NEdVe0pRRihNbmF+Tihn
aWQlU2JpeTtDSFQzO3J6aS0weHt5JlNtX1lkSWkKeit5MiM7dWZCZmUrMjs/eGElSlE0PHZvNkZ4
QVR7Rl9oclcoI3FhTn5pcj9VRWZaT3g8cHpweFl6bUVHXl9BR3ZyCk9fYyMqJEc3cUVLXlpJfH1V
emdQWQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRz
L3RpbnltY2Utc21hbGwuc3ZnIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Utc21hbGwuc3ZnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MzBjNDhkY2VmYwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLnN2ZwpAQCAtMCwwICsx
LDYyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUg
c3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9H
cmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIj4KKzxtZXRhZGF0YT5HZW5lcmF0ZWQgYnkgSWNvTW9vbjwvbWV0YWRh
dGE+Cis8ZGVmcz4KKzxmb250IGlkPSJ0aW55bWNlLXNtYWxsIiBob3Jpei1hZHYteD0iNTEyIj4K
Kzxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSI1MTIiIGFzY2VudD0iNDgwIiBkZXNjZW50PSItMzIi
IC8+Cis8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iNTEyIiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeDIwOyIgZD0iIiBob3Jpei1hZHYteD0iMjU2IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
MDA7IiBkPSJNNDgwIDQwdjI5NS45NjlsLTExMS45NjkgMTEyLjAzMWgtMjk2LjAzMWMtMjIuMDkx
IDAtNDAtMTcuOTA4LTQwLTQwdi0zNjhjMC0yMi4wOTIgMTcuOTA5LTQwIDQwLTQwaDM2OGMyMi4w
OTIgMCA0MCAxNy45MDggNDAgNDB6TTI4OCAzODRoMzJ2LTk2aC0zMnY5NnpNMzUyIDY0aC0xOTJ2
MTI3Ljk0MWMwLjAxNyAwLjAyMSAwLjAzOCAwLjA0MSAwLjA1OCAwLjA1OWgxOTEuODg1YzAuMDIw
LTAuMDE4IDAuMDQxLTAuMDM4IDAuMDU4LTAuMDU5bC0wLjAwMS0xMjcuOTQxek00MTYgNjRoLTMy
djEyOGMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtMTkyYy0xNy42IDAtMzItMTQuNC0zMi0zMnYtMTI4
aC0zMnYzMjBoMzJ2LTk2YzAtMTcuNiAxNC40LTMyIDMyLTMyaDE2MGMxNy42IDAgMzIgMTQuNCAz
MiAzMnY4NS41MDVsNjQtNjQuMDM2di0yNDUuNDY5eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDAxOyIgZD0iTTQyNS4zNzMgMzU4LjYyN2wtNjYuNzQ2IDY2Ljc0NWMtMTIuNDQ0IDEyLjQ0Ni0z
Ny4wMjcgMjIuNjI4LTU0LjYyNyAyMi42MjhoLTIwOGMtMTcuNiAwLTMyLTE0LjQtMzItMzJ2LTM4
NGMwLTE3LjYgMTQuNC0zMiAzMi0zMmgzMjBjMTcuNiAwIDMyIDE0LjQgMzIgMzJ2MjcyYzAgMTcu
Ni0xMC4xODMgNDIuMTgyLTIyLjYyNyA1NC42Mjd6TTQwMi43NDUgMzM2LjAwMWMzLjM5Ni0zLjM5
OCA2Ljg5Ni05LjU4MSA5LjQ0Ny0xNi4wMDFoLTkyLjE5MnY5Mi4xOTNjNi40Mi0yLjU1IDEyLjYw
Mi02LjA1MCAxNi05LjQ0OGw2Ni43NDUtNjYuNzQ0ek00MTUuOTQyIDMyaC0zMTkuODg1Yy0wLjAy
MCAwLjAxNy0wLjA0MSAwLjAzOC0wLjA1NyAwLjA1OHYzODMuODg1YzAuMDE3IDAuMDIwIDAuMDM4
IDAuMDQxIDAuMDU3IDAuMDU3aDE5MS45NDN2LTEyOGgxMjh2LTI1NS45NDJjLTAuMDE3LTAuMDIw
LTAuMDM4LTAuMDQxLTAuMDU4LTAuMDU4eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDAyOyIg
ZD0iTTUxMiAxODMuNzcxdjgwLjQ1OGwtNzkuNTcyIDcuOTU3Yy00LjA5MyAxNS4wMjEtMTAuMDQ0
IDI5LjI3NC0xNy42MDUgNDIuNDlsNTIuMjk4IDYzLjkxOS01Ni41MjYgNTYuNTI1LTYzLjkxOC01
Mi4yOThjLTEzLjIxNyA3LjU2Mi0yNy40NzEgMTMuNTEzLTQyLjQ5MSAxNy42MDRsLTcuOTU3IDc5
LjU3NGgtODAuNDU4bC03Ljk1Ny03OS41NzNjLTE1LjAyMS00LjA5My0yOS4yNzQtMTAuMDQzLTQy
LjQ5LTE3LjYwNGwtNjMuOTE5IDUyLjI5Ny01Ni41MjUtNTYuNTI1IDUyLjI5OC02My45MThjLTcu
NTYyLTEzLjIxNi0xMy41MTMtMjcuNDctMTcuNjA1LTQyLjQ5bC03OS41NzMtNy45NTh2LTgwLjQ1
OGw3OS41NzMtNy45NTdjNC4wOTMtMTUuMDIxIDEwLjA0My0yOS4yNzQgMTcuNjA1LTQyLjQ5MWwt
NTIuMjk4LTYzLjkxOCA1Ni41MjQtNTYuNTI0IDYzLjkxOSA1Mi4yOThjMTMuMjE2LTcuNTYyIDI3
LjQ3LTEzLjUxNCA0Mi40OS0xNy42MDVsNy45NTgtNzkuNTc0aDgwLjQ1OGw3Ljk1NyA3OS41NzJj
MTUuMDIxIDQuMDkzIDI5LjI3NCAxMC4wNDQgNDIuNDkxIDE3LjYwNWw2My45MTgtNTIuMjk4IDU2
LjUyNCA1Ni41MjQtNTIuMjk4IDYzLjkxOGM3LjU2MiAxMy4yMTcgMTMuNTE0IDI3LjQ3MSAxNy42
MDUgNDIuNDlsNzkuNTc0IDcuOTZ6TTM1MiAxOTJsLTY0LTY0aC02NGwtNjQgNjR2NjRsNjQgNjRo
NjRsNjQtNjR2LTY0eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDAzOyIgZD0iTTMyIDM4NGg0
NDh2LTY0aC00NDh6TTMyIDE5Mmg0NDh2LTY0aC00NDh6TTMyIDI4OGgyODh2LTY0aC0yODh6TTMy
IDk2aDI4OHYtNjRoLTI4OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNDsiIGQ9Ik0zMiAz
ODRoNDQ4di02NGgtNDQ4ek0zMiAxOTJoNDQ4di02NGgtNDQ4ek0xMjggMjg4aDI1NnYtNjRoLTI1
NnpNMTI4IDk2aDI1NnYtNjRoLTI1NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNTsiIGQ9
Ik0zMiAzODRoNDQ4di02NGgtNDQ4ek0zMiAxOTJoNDQ4di02NGgtNDQ4ek0xOTIgMjg4aDI4OHYt
NjRoLTI4OHpNMTkyIDk2aDI4OHYtNjRoLTI4OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAw
NjsiIGQ9Ik0zMiAzODRoNDQ4di02NGgtNDQ4ek0zMiAxOTJoNDQ4di02NGgtNDQ4ek0zMiAyODho
NDQ4di02NGgtNDQ4ek0zMiA5Nmg0NDh2LTY0aC00NDh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwMDc7IiBkPSJNNDMyLjIwNCAxNDQuOTM0Yy0yMy4yMzUgMjMuMjM1LTUzLjQ2OSAzNC4wMDIt
ODAuNTQxIDMxLjQwM2wtMzEuNjYzIDMxLjY2MyA5NiA5NmMwIDAgNjQgNjQgMCAxMjhsLTE2MC0x
NjAtMTYwIDE2MGMtNjQtNjQgMC0xMjggMC0xMjhsOTYtOTYtMzEuNjYzLTMxLjY2M2MtMjcuMDcy
IDIuNTk5LTU3LjMwNS04LjE2OS04MC41NC0zMS40MDMtMzcuNDktMzcuNDktNDIuNTU2LTkzLjIw
OS0xMS4zMTMtMTI0LjQ1IDMxLjI0MS0zMS4yNDEgODYuOTYtMjYuMTc3IDEyNC40NSAxMS4zMTMg
MjMuMjM1IDIzLjIzNCAzNC4wMDEgNTMuNDY5IDMxLjQwMyA4MC41NGwzMS42NjMgMzEuNjYzIDMx
LjY2NC0zMS42NjRjLTIuNTk4LTI3LjA3MiA4LjE2OC01Ny4zMDUgMzEuNDAzLTgwLjUzOSAzNy40
ODktMzcuNDkgOTMuMjA5LTQyLjU1NiAxMjQuNDQ5LTExLjMxMyAzMS4yNDQgMzEuMjQxIDI2LjE3
OCA4Ni45NTktMTEuMzEyIDEyNC40NXpNMTc2LjU2MiAxMDAuNzExYy0xLjEwNi0xMi4xNjYtNy41
MS0yNC45MTMtMTcuNTctMzQuOTczLTExLjEwNi0xMS4xMDctMjUuNTQtMTcuNzM4LTM4LjYwOS0x
Ny43MzgtNS4yNjIgMC0xMi42NDkgMS4xMTQtMTcuOTU4IDYuNDI0LTEwLjcwMyAxMC43MDItOC42
ODggMzYuNTY2IDExLjMxMyA1Ni41NjggMTEuMTA2IDExLjEwNyAyNS41NCAxNy43MzggMzguNjA5
IDE3LjczOCA1LjI2MiAwIDEyLjY0OS0xLjExNCAxNy45NTgtNi40MjQgNi41NTYtNi41NTUgNi43
MzUtMTYuMzQ0IDYuMjU3LTIxLjU5NXpNMjU2IDE3NmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMy
czE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyek00MDkuNTc2
IDU0LjQyNGMtNS4zMS01LjMxLTEyLjY5Ni02LjQyNC0xNy45NTgtNi40MjQtMTMuMDY5IDAtMjcu
NTAzIDYuNjMxLTM4LjYwOSAxNy43MzgtMTAuMDYxIDEwLjA2MC0xNi40NjQgMjIuODA3LTE3LjU2
OSAzNC45NzMtMC40NzkgNS4yNTEtMC4zIDE1LjA0MCA2LjI1NyAyMS41OTYgNS4zMDkgNS4zMTEg
MTIuNjk1IDYuNDI0IDE3Ljk1OCA2LjQyNCAxMy4wNjggMCAyNy41MDMtNi42MzEgMzguNjA4LTE3
LjczNyAyMC4wMDItMjAuMDA0IDIyLjAxNi00NS44NjggMTEuMzEzLTU2LjU3eiIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3hlMDA4OyIgZD0iTTM1MiAyODh2ODBjMCA4LjgtNy4yIDE2LTE2IDE2aC04
MHYzMmMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtNjRjLTE3LjYwMiAwLTMyLTE0LjQtMzItMzJ2LTMy
aC04MGMtOC44MDEgMC0xNi03LjItMTYtMTZ2LTI1NmMwLTguOCA3LjE5OS0xNiAxNi0xNmgxMTJ2
LTk2aDE5Mmw5NiA5NnYxOTJoLTk2ek0xNjAgNDE1Ljk0M2MwLjAxNyAwLjAxOSAwLjAzNiAwLjAz
OSAwLjA1NyAwLjA1N2g2My44ODRjMC4wMjEtMC4wMTggMC4wNDEtMC4wMzggMC4wNTktMC4wNTd2
LTMxLjk0M2gtNjR2MzEuOTQzek05NiAzMjB2MzJoMTkydi0zMmgtMTkyek0zNTIgNDUuMjU1djUw
Ljc0NWg1MC43NDVsLTUwLjc0NS01MC43NDV6TTQxNiAxMjhoLTk2di05NmgtMTI4djIyNGgyMjR2
LTEyOHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwOTsiIGQ9Ik00NDQgMjg4aC0yOHYxMjho
MzJ2MzJoLTE2MHYtMzJoMzJ2LTEyOGgtMTI4djEyOGgzMnYzMmgtMTYwdi0zMmgzMnYtMTI4aC0y
OGMtMTkuOCAwLTM2LTE2LjItMzYtMzZ2LTIxNmMwLTE5LjggMTYuMi0zNiAzNi0zNmgxMjBjMTku
OCAwIDM2IDE2LjIgMzYgMzZ2MTU2aDY0di0xNTZjMC0xOS44IDE2LjItMzYgMzYtMzZoMTIwYzE5
LjggMCAzNiAxNi4yIDM2IDM2djIxNmMwIDE5LjgtMTYuMiAzNi0zNiAzNnpNMTc0IDMyaC05MmMt
OS45IDAtMTggNy4yLTE4IDE2czguMSAxNiAxOCAxNmg5MmM5LjkgMCAxOC03LjIgMTgtMTZzLTgu
MS0xNi0xOC0xNnpNMjcyIDIyNGgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZo
MzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZ6TTQzMCAzMmgtOTJjLTkuOSAwLTE4
IDcuMi0xOCAxNnM4LjEgMTYgMTggMTZoOTJjOS45IDAgMTgtNy4yIDE4LTE2cy04LjEtMTYtMTgt
MTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGE7IiBkPSJNMTkyIDQxNmgyODh2LTY0aC0y
ODh6TTE5MiAyNTZoMjg4di02NGgtMjg4ek0xOTIgOTZoMjg4di02NGgtMjg4ek02NCAzODRjMC0x
Ny42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMmMwIDE3LjY3My0xNC4zMjcgMzIt
MzIgMzItMTcuNjczIDAtMzItMTQuMzI3LTMyLTMyek02NCAyMjRjMC0xNy42NzMgMTQuMzI3LTMy
IDMyLTMyczMyIDE0LjMyNyAzMiAzMmMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzItMTcuNjczIDAt
MzItMTQuMzI3LTMyLTMyek02NCA2NGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3
IDMyIDMyYzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMi0xNy42NzMgMC0zMi0xNC4zMjctMzItMzJ6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGI7IiBkPSJNMTkyIDQxNmgyODh2LTY0aC0yODh6
TTE5MiAyNTZoMjg4di02NGgtMjg4ek0xOTIgOTZoMjg4di02NGgtMjg4ek0xNjAgMjE1djczaC0z
MnYxNjBoLTY0di0zMmgzMnYtMTI4aC0zMnYtMzJoNjR2LTI1bC02NC0zMHYtNzNoNjR2LTMyaC02
NHYtMzJoNjR2LTMyaC02NHYtMzJoOTZ2MTYwaC02NHYyNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAwYzsiIGQ9Ik0zMiAzODRoNDQ4di02NGgtNDQ4ek0xOTIgMTkyaDI4OHYtNjRoLTI4OHpN
MTkyIDI4OGgyODh2LTY0aC0yODh6TTMyIDk2aDQ0OHYtNjRoLTQ0OHpNMzIgMjg4bDExMi04MC0x
MTItODB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGQ7IiBkPSJNMzIgMzg0aDQ0OHYtNjRo
LTQ0OHpNMzIgMTkyaDI4OHYtNjRoLTI4OHpNMzIgMjg4aDI4OHYtNjRoLTI4OHpNMzIgOTZoNDQ4
di02NGgtNDQ4ek00ODAgMjg4bC0xMTItODAgMTEyLTgweiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDBlOyIgZD0iTTEyOC4yMTQgMjY3LjYzN2M1Mi45IDAgOTUuNzg2LTQ1LjU4NSA5NS43ODYt
MTAxLjgxOSAwLTU2LjIzMi00Mi44ODYtMTAxLjgxOC05NS43ODYtMTAxLjgxOC01Mi45MDEgMC05
NS43ODYgNDUuNTg1LTk1Ljc4NiAxMDEuODE4bC0wLjQyOCAxNC41NDZjMCAxMTIuNDY1IDg1Ljc3
IDIwMy42MzYgMTkxLjU3MiAyMDMuNjM2di01OC4xODJjLTM2LjU1IDAtNzAuOTEzLTE1LjEzLTk2
Ljc1OC00Mi42MDItNC45NzctNS4yODktOS41MTctMTAuOTE3LTEzLjYxMi0xNi44MjggNC44OTIg
MC44MiA5LjkwMyAxLjI0OSAxNS4wMTIgMS4yNDl6TTM4NC4yMTQgMjY3LjYzN2M1Mi45IDAgOTUu
Nzg2LTQ1LjU4NSA5NS43ODYtMTAxLjgxOSAwLTU2LjIzMi00Mi44ODYtMTAxLjgxOC05NS43ODYt
MTAxLjgxOC01Mi45MDEgMC05NS43ODYgNDUuNTg1LTk1Ljc4NiAxMDEuODE4bC0wLjQyOCAxNC41
NDZjMCAxMTIuNDY1IDg1Ljc3IDIwMy42MzYgMTkxLjU3MiAyMDMuNjM2di01OC4xODJjLTM2LjU1
IDAtNzAuOTEzLTE1LjEzLTk2Ljc1OC00Mi42MDItNC45NzgtNS4yODktOS41MTgtMTAuOTE3LTEz
LjYxMi0xNi44MjggNC44OTIgMC44MiA5LjkwMyAxLjI0OSAxNS4wMTIgMS4yNDl6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwMGY7IiBkPSJNMzUyIDBjMjkuNSA5OS41IDY3LjQ1MyAyMjcuNjMz
LTEyOCAyMjMuMDQ4di0xMTEuMDQ4bC0xNjguMDAxIDE2OCAxNjguMDAxIDE2OHYtMTA4LjY2M2My
MzQuMDQ2IDYuMSAyNzItMTc5LjMzNyAxMjgtMzM5LjMzN3oiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAxMDsiIGQ9Ik0yODggMzM5LjMzN3YxMDguNjYzbDE2OC4wMDEtMTY4LTE2OC4wMDEtMTY4
djExMS4wNDhjLTE5NS40NTMgNC41ODUtMTU3LjUtMTIzLjU0OC0xMjgtMjIzLjA0OC0xNDQgMTYw
LTEwNi4wNDYgMzQ1LjQzNyAxMjggMzM5LjMzN3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAx
MTsiIGQ9Ik00NjMuNjM3IDM2NC44OTJsLTY2Ljc0NSA2Ni43NDRjLTEwLjU1MiAxMC41NTItMjQu
NjE2IDE2LjM2NC0zOS41OTkgMTYuMzY0cy0yOS4wNDctNS44MTItMzkuNTk4LTE2LjM2M2wtODIu
NzQ2LTgyLjc0NWMtMjEuODM0LTIxLjgzNC0yMS44MzQtNTcuMzYyIDAtNzkuMTk2bDEuMzczLTEu
MzczIDMzLjk0MSAzMy45NDEtMS4zNzMgMS4zNzNjLTMuMDY2IDMuMDY2LTMuMDY2IDguMjQ3IDAg
MTEuMzEzbDgyLjc0NiA4Mi43NDZjMi4wMDUgMi4wMDQgNC40MDQgMi4zMDQgNS42NTYgMi4zMDRz
My42NTEtMC4yOTkgNS42NTYtMi4zMDVsNjYuNzQ1LTY2Ljc0NGMzLjA2Ni0zLjA2NyAzLjA2Ni04
LjI0OSAwLjAwMS0xMS4zMTRsLTgyLjc0Ny04Mi43NDdjLTIuMDA0LTIuMDA0LTQuNDAzLTIuMzA0
LTUuNjU1LTIuMzA0cy0zLjY1MSAwLjMtNS42NTYgMi4zMDZsLTEuMzczIDEuMzczLTMzLjk0LTMz
Ljk0MiAxLjM3MS0xLjM3MWMxMC41NTMtMTAuNTU0IDI0LjYxNS0xNi4zNjQgMzkuNi0xNi4zNjRz
MjkuMDQ3IDUuODEyIDM5LjU5OCAxNi4zNjNsODIuNzQ3IDgyLjc0NmMyMS44MzEgMjEuODMzIDIx
LjgzMSA1Ny4zNi0wLjAwMiA3OS4xOTV6TTI3NS42NzggMTc5LjY3OGwtMzMuOTQxLTMzLjk0MSAx
LjM3My0xLjM3M2MyLjAwNC0yLjAwNCAyLjMwNS00LjQwMyAyLjMwNS01LjY1NSAwLTEuMjUzLTAu
Mjk5LTMuNjUxLTIuMzAzLTUuNjU3bC04Mi43NDctODIuNzQ1Yy0yLjAwNS0yLjAwNS00LjQwNS0y
LjMwNS01LjY1Ny0yLjMwNXMtMy42NTIgMC4zLTUuNjU3IDIuMzA1bC02Ni43NDYgNjYuNzQzYy0y
LjAwNSAyLjAwNS0yLjMwNSA0LjQwNS0yLjMwNSA1LjY1N3MwLjI5OSAzLjY1IDIuMzA1IDUuNjU2
bDgyLjc0NSA4Mi43NDRjMi4wMDUgMi4wMDYgNC40MDUgMi4zMDYgNS42NTcgMi4zMDZzMy42NTIt
MC4zIDUuNjU3LTIuMzA2bDEuMzczLTEuMzcxIDMzLjk0MSAzMy45NC0xLjM3MyAxLjM3M2MtMTAu
NTUyIDEwLjU1Mi0yNC42MTUgMTYuMzYzLTM5LjU5OCAxNi4zNjNzLTI5LjA0Ni01LjgxMi0zOS41
OTgtMTYuMzYzbC04Mi43NDQtODIuNzQzYy0xMC41NTMtMTAuNTUyLTE2LjM2NS0yNC42MTctMTYu
MzY1LTM5LjU5OXM1LjgxMi0yOS4wNDcgMTYuMzYzLTM5LjU5OWw2Ni43NDUtNjYuNzQ1YzEwLjU1
My0xMC41NTEgMjQuNjE2LTE2LjM2MyAzOS41OTktMTYuMzYzczI5LjA0NiA1LjgxMiAzOS41OTgg
MTYuMzYzbDgyLjc0NyA4Mi43NDZjMTAuNTUyIDEwLjU1MiAxNi4zNjEgMjQuNjE1IDE2LjM2MSAz
OS41OThzLTUuODEyIDI5LjA0Ny0xNi4zNjMgMzkuNTk4bC0xLjM3MiAxLjM3M3pNMTc2IDEyNWMt
NC44NjIgMC05LjcyNSAxLjg1NS0xMy40MzUgNS41NjQtNy40MiA3LjQyLTcuNDIgMTkuNDQ5IDAg
MjYuODY5bDE2MCAxNjBjNy40MiA3LjQyIDE5LjQ0OCA3LjQyIDI2Ljg2OCAwIDcuNDIyLTcuNDIg
Ny40MjItMTkuNDUgMC0yNi44N2wtMTYwLTE2MGMtMy43MDgtMy43MDgtOC41NzEtNS41NjMtMTMu
NDMzLTUuNTYzeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDEyOyIgZD0iTTQ2My42MzcgMzY0
Ljg5MmwtNjYuNzQ1IDY2Ljc0NGMtMTAuNTUyIDEwLjU1Mi0yNC42MTYgMTYuMzY0LTM5LjU5OSAx
Ni4zNjRzLTI5LjA0Ny01LjgxMi0zOS41OTgtMTYuMzYzbC04Mi43NDYtODIuNzQ1Yy0yMS44MzQt
MjEuODM0LTIxLjgzNC01Ny4zNjIgMC03OS4xOTZsMS4zNzMtMS4zNzMgMzMuOTQxIDMzLjk0MS0x
LjM3MyAxLjM3M2MtMy4wNjYgMy4wNjYtMy4wNjYgOC4yNDcgMCAxMS4zMTNsODIuNzQ2IDgyLjc0
NmMyLjAwNSAyLjAwNCA0LjQwNCAyLjMwNCA1LjY1NiAyLjMwNHMzLjY1MS0wLjI5OSA1LjY1Ni0y
LjMwNWw2Ni43NDUtNjYuNzQ0YzMuMDY2LTMuMDY3IDMuMDY2LTguMjQ5IDAuMDAxLTExLjMxNGwt
ODIuNzQ3LTgyLjc0N2MtMi4wMDQtMi4wMDQtNC40MDMtMi4zMDQtNS42NTUtMi4zMDRzLTMuNjUx
IDAuMy01LjY1NiAyLjMwNmwtMS4zNzMgMS4zNzMtMzMuOTQtMzMuOTQyIDEuMzcxLTEuMzcxYzEw
LjU1My0xMC41NTQgMjQuNjE1LTE2LjM2NCAzOS42LTE2LjM2NHMyOS4wNDcgNS44MTIgMzkuNTk4
IDE2LjM2M2w4Mi43NDcgODIuNzQ2YzIxLjgzMSAyMS44MzMgMjEuODMxIDU3LjM2LTAuMDAyIDc5
LjE5NXpNMjc1LjY3OCAxNzkuNjc4bC0zMy45NDEtMzMuOTQxIDEuMzczLTEuMzczYzIuMDA0LTIu
MDA0IDIuMzA1LTQuNDAzIDIuMzA1LTUuNjU1IDAtMS4yNTMtMC4yOTktMy42NTEtMi4zMDMtNS42
NTdsLTgyLjc0Ny04Mi43NDVjLTIuMDA1LTIuMDA1LTQuNDA1LTIuMzA1LTUuNjU3LTIuMzA1cy0z
LjY1MiAwLjMtNS42NTcgMi4zMDVsLTY2Ljc0NiA2Ni43NDNjLTIuMDA1IDIuMDA1LTIuMzA1IDQu
NDA1LTIuMzA1IDUuNjU3czAuMjk5IDMuNjUgMi4zMDUgNS42NTZsODIuNzQ1IDgyLjc0NGMyLjAw
NSAyLjAwNiA0LjQwNSAyLjMwNiA1LjY1NyAyLjMwNnMzLjY1Mi0wLjMgNS42NTctMi4zMDZsMS4z
NzMtMS4zNzEgMzMuOTQxIDMzLjk0LTEuMzczIDEuMzczYy0xMC41NTIgMTAuNTUyLTI0LjYxNSAx
Ni4zNjMtMzkuNTk4IDE2LjM2M3MtMjkuMDQ2LTUuODEyLTM5LjU5OC0xNi4zNjNsLTgyLjc0NC04
Mi43NDNjLTEwLjU1My0xMC41NTItMTYuMzY1LTI0LjYxNy0xNi4zNjUtMzkuNTk5czUuODEyLTI5
LjA0NyAxNi4zNjMtMzkuNTk5bDY2Ljc0NS02Ni43NDVjMTAuNTUzLTEwLjU1MSAyNC42MTYtMTYu
MzYzIDM5LjU5OS0xNi4zNjNzMjkuMDQ2IDUuODEyIDM5LjU5OCAxNi4zNjNsODIuNzQ3IDgyLjc0
NmMxMC41NTIgMTAuNTUyIDE2LjM2MSAyNC42MTUgMTYuMzYxIDM5LjU5OHMtNS44MTIgMjkuMDQ3
LTE2LjM2MyAzOS41OThsLTEuMzcyIDEuMzczek00MDAgNjFjLTQuODYyIDAtOS43MjUgMS44NTQt
MTMuNDM1IDUuNTY1bC02NCA2My45OTljLTcuNDIyIDcuNDItNy40MjIgMTkuNDQ5IDAgMjYuODY5
IDcuNDIgNy40MjIgMTkuNDQ4IDcuNDIyIDI2Ljg2OCAwbDY0LTY0YzcuNDIyLTcuNDIgNy40MjIt
MTkuNDQ4IDAtMjYuODY4LTMuNzA4LTMuNzExLTguNTcxLTUuNTY1LTEzLjQzMy01LjU2NXpNMzA0
IDBjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2NjRjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNnMxNi03
LjE2MyAxNi0xNnYtNjRjMC04LjgzNy03LjE2My0xNi0xNi0xNnpNNDY0IDE2MGgtNjRjLTguODM3
IDAtMTYgNy4xNjMtMTYgMTZzNy4xNjMgMTYgMTYgMTZoNjRjOC44MzcgMCAxNi03LjE2MyAxNi0x
NnMtNy4xNjMtMTYtMTYtMTZ6TTExMiAzODdjNC44NjIgMCA5LjcyNS0xLjg1NCAxMy40MzUtNS41
NjVsNjQtNjRjNy40MjEtNy40MiA3LjQyMS0xOS40NDkgMC0yNi44NjktNy40Mi03LjQyMi0xOS40
NDktNy40MjItMjYuODY5IDBsLTY0IDY0Yy03LjQyMSA3LjQyLTcuNDIxIDE5LjQ0OSAwIDI2Ljg2
OSAzLjcwOSAzLjcxMSA4LjU3MiA1LjU2NSAxMy40MzQgNS41NjV6TTIwOCA0NDhjOC44MzcgMCAx
Ni03LjE2MyAxNi0xNnYtNjRjMC04LjgzNy03LjE2My0xNi0xNi0xNnMtMTYgNy4xNjMtMTYgMTZ2
NjRjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNnpNNDggMjg4aDY0YzguODM3IDAgMTYtNy4xNjMgMTYt
MTZzLTcuMTYzLTE2LTE2LTE2aC02NGMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnM3LjE2MyAxNiAx
NiAxNnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik0xMjggNDQ4di00NDhsMTI4
IDEyOCAxMjgtMTI4djQ0OGgtMjU2ek0zNTIgODUuMjU1bC05NiA5Ni05Ni05NnYzMzAuNzQ1aDE5
MnYtMzMwLjc0NXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNDsiIGQ9Ik00NDggNDE2aC0z
ODRjLTE3LjYgMC0zMi0xNC40LTMyLTMydi0zMjBjMC0xNy42IDE0LjQtMzIgMzItMzJoMzg0YzE3
LjYgMCAzMiAxNC40IDMyIDMydjMyMGMwIDE3LjYtMTQuNCAzMi0zMiAzMnpNNDQ4IDY0LjA1OGMt
MC4wMDYtMC4wMDctMC4wMTUtMC4wMTQtMC4wMjEtMC4wMjFsLTk1Ljk3OSAxNTkuOTYzLTgwLTY0
LTExMiAxNDQtOTUuOTg0LTIzOS45NThjLTAuMDA1IDAuMDA1LTAuMDExIDAuMDExLTAuMDE2IDAu
MDE2djMxOS44ODVjMC4wMTcgMC4wMjAgMC4wMzggMC4wNDEgMC4wNTcgMC4wNTdoMzgzLjg4NWMw
LjAyMC0wLjAxNyAwLjA0MS0wLjAzOCAwLjA1OC0wLjA1OHYtMzE5Ljg4NHpNMzIwIDMwNGMwLTI2
LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDgt
MjYuNTEgMC00OC0yMS40OS00OC00OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNTsiIGQ9
Ik00NDggNDE2aC0zODRjLTE3LjYgMC0zMi0xNC40LTMyLTMydi0zMjBjMC0xNy42IDE0LjQtMzIg
MzItMzJoMzg0YzE3LjYgMCAzMiAxNC40IDMyIDMydjMyMGMwIDE3LjYtMTQuNCAzMi0zMiAzMnpN
MTI4IDY0aC02NHY2NGg2NHYtNjR6TTEyOCAxOTJoLTY0djY0aDY0di02NHpNMTI4IDMyMGgtNjR2
NjRoNjR2LTY0ek0zNTIgNjRoLTE5MnYzMjBoMTkydi0zMjB6TTQ0OCA2NGgtNjR2NjRoNjR2LTY0
ek00NDggMTkyaC02NHY2NGg2NHYtNjR6TTQ0OCAzMjBoLTY0djY0aDY0di02NHpNMTkyIDMyMHYt
MTkybDE0NCA5NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNjsiIGQ9Ik0yMjQgMTI4aDY0
di02NGgtNjR2NjR6TTM1MiAzNTJjMTcuNjczIDAgMzItMTQuMzI3IDMyLTMydi04M2wtMTE0LTc3
aC00NnYzMmw5NiA2NHYzMmgtMTYwdjY0aDE5MnpNMjU2IDQ0OGMtNTkuODMzIDAtMTE2LjA4My0y
My4zLTE1OC4zOTItNjUuNjA4LTQyLjMwNy00Mi4zMDktNjUuNjA4LTk4LjU1OS02NS42MDgtMTU4
LjM5MiAwLTU5LjgzMiAyMy4zMDEtMTE2LjA4NCA2NS42MDgtMTU4LjM5MiA0Mi4zMDktNDIuMzA4
IDk4LjU1OS02NS42MDggMTU4LjM5Mi02NS42MDggNTkuODMyIDAgMTE2LjA4NCAyMy4zIDE1OC4z
OTIgNjUuNjA4IDQyLjMwOCA0Mi4zMDggNjUuNjA4IDk4LjU2IDY1LjYwOCAxNTguMzkyIDAgNTku
ODMzLTIzLjMgMTE2LjA4My02NS42MDggMTU4LjM5Mi00Mi4zMDggNDIuMzA4LTk4LjU2IDY1LjYw
OC0xNTguMzkyIDY1LjYwOHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik0yMDgg
MTI4bC05NiA5NiA5NiA5Ni0zMiAzMi0xMjgtMTI4IDEyOC0xMjh6TTMzNiAzNTJsLTMyLTMyIDk2
LTk2LTk2LTk2IDMyLTMyIDEyOCAxMjh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTg7IiBk
PSJNMzguODk5IDMyNy42ODhsNDAuNzA3LTI1LjQ0MWMyNS40MDEgNDAuNTU3IDY0LjM5NCA3MS43
MjcgMTEwLjYwNCA4Ny4xMjNsLTE1LjE4MyA0NS41NDdjLTU2Ljg3NC0xOC45NDktMTA0Ljg2NC01
Ny4zMTMtMTM2LjEyOC0xMDcuMjI5ek0zMzYuOTczIDQzNC45MTdsLTE1LjE4My00NS41NDdjNDYu
MjExLTE1LjM5NiA4NS4yMDItNDYuNTY2IDExMC42MDQtODcuMTI0bDQwLjcwNiAyNS40NDFjLTMx
LjI2MyA0OS45MTctNzkuMjUzIDg4LjI4MS0xMzYuMTI3IDEwNy4yM3pNMzAzLjk4NyAxMjcuOTk2
Yy0yLjQwNCAwLTQuODQ2IDAuNTQ1LTcuMTQzIDEuNjkzbC03Mi44NDQgMzYuNDIydjEwNS44ODlj
MCA4LjgzNiA3LjE2NCAxNiAxNiAxNnMxNi03LjE2NCAxNi0xNnYtODYuMTExbDU1LjE1NS0yNy41
NzhjNy45MDMtMy45NTEgMTEuMTA3LTEzLjU2MiA3LjE1NS0yMS40NjYtMi44MDItNS42MDctOC40
NTQtOC44NDgtMTQuMzIzLTguODQ5ek0yNTYgMzg0Yy0xMDYuMDM5IDAtMTkyLTg1Ljk2MS0xOTIt
MTkyczg1Ljk2MS0xOTIgMTkyLTE5MmMxMDYuMDM5IDAgMTkyIDg1Ljk2MSAxOTIgMTkyIDAgMTA2
LjAzOS04NS45NjEgMTkyLTE5MiAxOTJ6TTI1NiA0OGMtNzkuNTI5IDAtMTQ0IDY0LjQ3MS0xNDQg
MTQ0czY0LjQ3MSAxNDQgMTQ0IDE0NGM3OS41MjkgMCAxNDQtNjQuNDcxIDE0NC0xNDQgMC03OS41
MjktNjQuNDcxLTE0NC0xNDQtMTQ0eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE5OyIgZD0i
TTMyIDI1Mi4xMjdjMjIuNjU5IDI0Ljk2IDQ4LjU4MSA0Ni4xOCA3Ni42MzYgNjIuNTYyIDQ1LjE2
NiAyNi4zNzIgOTYuMTIzIDQwLjMxMSAxNDcuMzY0IDQwLjMxMSA1MS4yNCAwIDEwMi4xOTgtMTMu
OTM5IDE0Ny4zNjMtNDAuMzEyIDI4LjA1Ni0xNi4zODIgNTMuOTc4LTM3LjYwMiA3Ni42MzctNjIu
NTYydjU4LjcxNmMtMTYuNTA1IDE0LjA1OS0zNC4wNjIgMjYuNTctNTIuNDM0IDM3LjI5Ny01Mi41
MDMgMzAuNjU3LTExMS44MjkgNDYuODYxLTE3MS41NjYgNDYuODYxcy0xMTkuMDY0LTE2LjIwNC0x
NzEuNTY3LTQ2Ljg2Yy0xOC4zNzEtMTAuNzI3LTM1LjkyOC0yMy4yMzktNTIuNDMzLTM3LjI5OHYt
NTguNzE1ek0yNTYgMzIwYy05MS41OTggMC0xNzIuOTE5LTUwLjI3OC0yMjQtMTI4IDUxLjA4MS03
Ny43MjQgMTMyLjQwMi0xMjggMjI0LTEyOCA5MS41OTggMCAxNzIuOTE5IDUwLjI3NiAyMjQgMTI4
LTUxLjA4MSA3Ny43MjItMTMyLjQwMiAxMjgtMjI0IDEyOHpNMjU2IDIyNGMwLTE3LjY3My0xNC4z
MjctMzItMzItMzJzLTMyIDE0LjMyNy0zMiAzMmMwIDE3LjY3NCAxNC4zMjcgMzIgMzIgMzJzMzIt
MTQuMzI2IDMyLTMyek0zNjQuMDMzIDEzMS42NjljLTMzLjcxNy0xOS42ODctNzAuMDY0LTI5LjY2
OS0xMDguMDMzLTI5LjY2OXMtNzQuMzE2IDkuOTgyLTEwOC4wMzMgMjkuNjY5Yy0yNS43NzcgMTUu
MDUyLTQ5LjMwOCAzNS42NTUtNjkuMDU3IDYwLjMzMSAxOS43NDkgMjQuNjc1IDQzLjI4IDQ1LjI3
OSA2OS4wNTggNjAuMzMgNi42MzggMy44NzYgMTMuMzc5IDcuMzcgMjAuMjEzIDEwLjQ5MS01LjI1
Ni0xMS44NzEtOC4xODEtMjUuMDA0LTguMTgxLTM4LjgyMSAwLTUzLjAyMCA0Mi45ODEtOTYgOTYt
OTYgNTMuMDIwIDAgOTYgNDIuOTggOTYgOTYgMCAxMy44MTctMi45MjUgMjYuOTUtOC4xOCAzOC44
MjEgNi44MzQtMy4xMjIgMTMuNTc1LTYuNjE1IDIwLjIxMy0xMC40OTEgMjUuNzc3LTE1LjA1MSA0
OS4zMDgtMzUuNjU1IDY5LjA1OC02MC4zMy0xOS43NDktMjQuNjc2LTQzLjI4LTQ1LjI3OS02OS4w
NTgtNjAuMzMxeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFhOyIgZD0iTTMyNS41ODQgMzM4
LjA4M2MtMTIuMzA2IDQwLjk4MS0xNC40MzggNDUuOTE3LTUzLjU4NCA0NS45MTdoLTMyYy0zOS44
MDkgMC00MS4zMzItNS4wNzYtNTQuMjA5LTQ4IDAtMC4wMDEgMC0wLjAwMS0wLjAwMS0wLjAwMmwt
NzEuOTk5LTIzOS45OThoNTYuODE4bDI4LjggOTZoMTEzLjE4M2wyOC44LTk2aDU2LjgxNWwtNzIu
NjIzIDI0Mi4wODN6TTIxOC42MDkgMjU2bDE5LjIgNjhjNS4wNDMgMTYuODA5IDE4LjE5IDE1IDE4
LjE5IDE1czEzLjE0NyAxLjgwOSAxOC4xOS0xNWgwLjAwMmwxOS4yLTY4aC03NC43ODJ6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMWI7IiBkPSJNMzIgMzg0di0zNTJoNDQ4djM1MmgtNDQ4ek0x
OTIgMTYwdjY0aDEyOHYtNjRoLTEyOHpNMzIwIDEyOHYtNjRoLTEyOHY2NGgxMjh6TTMyMCAzMjB2
LTY0aC0xMjh2NjRoMTI4ek0xNjAgMzIwdi02NGgtOTZ2NjRoOTZ6TTY0IDIyNGg5NnYtNjRoLTk2
djY0ek0zNTIgMjI0aDk2di02NGgtOTZ2NjR6TTM1MiAyNTZ2NjRoOTZ2LTY0aC05NnpNNjQgMTI4
aDk2di02NGgtOTZ2NjR6TTM1MiA2NHY2NGg5NnYtNjRoLTk2eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDFjOyIgZD0iTTMyIDI1Nmg0NDh2LTY0aC00NDh6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwMWQ7IiBkPSJNMzIgOTZoMjU2di02NGgtMjU2djY0ek0zODQgMzg0aC0xMTAuMjc5bC05
MS44ODMtMjU2aC02Ni4xNDRsOTEuODgxIDI1NmgtMTExLjU3NXY2NGgyODh2LTY0ek00NjQuODg3
IDMybC02NC44ODcgNjQuODg3LTY0Ljg4Ny02NC44ODctMzEuMTEzIDMxLjExMyA2NC44ODcgNjQu
ODg3LTY0Ljg4NyA2NC44ODcgMzEuMTEzIDMxLjExMyA2NC44ODctNjQuODg3IDY0Ljg4NyA2NC44
ODcgMzEuMTEzLTMxLjExMy02NC44ODctNjQuODg3IDY0Ljg4Ny02NC44ODctMzEuMTEzLTMxLjEx
M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxZTsiIGQ9Ik0zODQgMjV2LTI1aDY0di0zMmgt
OTZ2NzNsNjQgMzB2MjVoLTY0djMyaDk2di03M3pNMzM4IDM1MmgtNjhsLTk0LTk0LTk0IDk0aC02
OGwxMjgtMTI4LTEyOC0xMjhoNjhsOTQgOTQgOTQtOTRoNjhsLTEyOCAxMjh6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMWY7IiBkPSJNMzg0IDM3N3YtMjVoNjR2LTMyaC05NnY3M2w2NCAzMHYy
NWgtNjR2MzJoOTZ2LTczek0zMzggMzUyaC02OGwtOTQtOTQtOTQgOTRoLTY4bDEyOC0xMjgtMTI4
LTEyOGg2OGw5NCA5NCA5NC05NGg2OGwtMTI4IDEyOHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAyMDsiIGQ9Ik0zNTIgNjR2MTguNTAyYzc1LjY3NCAzMC44MTQgMTI4IDk2LjkxIDEyOCAxNzMu
NDk4IDAgMTA2LjAzOS0xMDAuMjg4IDE5Mi0yMjQgMTkycy0yMjQtODUuOTYxLTIyNC0xOTJjMC03
Ni41ODggNTIuMzI3LTE0Mi42ODQgMTI4LTE3My40OTh2LTE4LjUwMmgtOTZsLTMyIDQ4di0xMTJo
MTYwdjExMS40MDZjLTUwLjQ1IDI1LjY4MS04NS4zMzMgODAuNzctODUuMzMzIDE0NC41OTQgMCA4
OC4zNjYgNjYuODU5IDE2MCAxNDkuMzMzIDE2MCA4Mi40NzQgMCAxNDkuMzMzLTcxLjYzNCAxNDku
MzMzLTE2MCAwLTYzLjgyNC0zNC44ODMtMTE4LjkxMy04NS4zMzMtMTQ0LjU5NHYtMTExLjQwNmgx
NjB2MTEybC0zMi00OGgtOTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjE7IiBkPSJNMjU2
IDQxMGM0OS42ODMgMCA5Ni4zOTEtMTkuMzQ3IDEzMS41MjEtNTQuNDc4czU0LjQ3OS04MS44Mzkg
NTQuNDc5LTEzMS41MjItMTkuMzQ4LTk2LjM5MS01NC40NzktMTMxLjUyMS04MS44MzgtNTQuNDc5
LTEzMS41MjEtNTQuNDc5LTk2LjM5MSAxOS4zNDgtMTMxLjUyMiA1NC40NzktNTQuNDc4IDgxLjgz
OC01NC40NzggMTMxLjUyMSAxOS4zNDcgOTYuMzkxIDU0LjQ3OCAxMzEuNTIyIDgxLjgzOSA1NC40
NzggMTMxLjUyMiA1NC40Nzh6TTI1NiA0NDhjLTEyMy43MTIgMC0yMjQtMTAwLjI4OC0yMjQtMjI0
czEwMC4yODgtMjI0IDIyNC0yMjQgMjI0IDEwMC4yODggMjI0IDIyNC0xMDAuMjg4IDIyNC0yMjQg
MjI0djB6TTE2MCAyODhjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMmMw
IDE3LjY3My0xNC4zMjcgMzItMzIgMzItMTcuNjczIDAtMzItMTQuMzI3LTMyLTMyek0yODggMjg4
YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIgMzJjMCAxNy42NzMtMTQuMzI3
IDMyLTMyIDMyLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnpNMjU2IDE1MmMtNTAuOTIgMC05Ni4y
OCAxOC40MzctMTI1LjU4MyA0Ny4xNjQgMTEuNTYzLTU4LjgwNCA2My4zODktMTAzLjE2NCAxMjUu
NTgzLTEwMy4xNjQgNjIuMTk0IDAgMTE0LjAyMCA0NC4zNiAxMjUuNTg0IDEwMy4xNjQtMjkuMzA0
LTI4LjcyNy03NC42NjQtNDcuMTY0LTEyNS41ODQtNDcuMTY0eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDIyOyIgZD0iTTEyOCA0MTZoMjU2di02NGgtMjU2djY0ek00NDggMzIwaC0zODRjLTE3
LjYgMC0zMi0xNC40LTMyLTMydi0xMjhjMC0xNy42IDE0LjM5OC0zMiAzMi0zMmg2NHYtOTZoMjU2
djk2aDY0YzE3LjYgMCAzMiAxNC40IDMyIDMydjEyOGMwIDE3LjYtMTQuNCAzMi0zMiAzMnpNMzUy
IDY0aC0xOTJ2MTI4aDE5MnYtMTI4ek00NTUuMiAyNzJjMC0xMi44MTMtMTAuMzg3LTIzLjItMjMu
MTk5LTIzLjJzLTIzLjIwMSAxMC4zODctMjMuMjAxIDIzLjIgMTAuMzg5IDIzLjIgMjMuMjAxIDIz
LjJjMTIuODEzIDAgMjMuMTk5LTEwLjM4NyAyMy4xOTktMjMuMnoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAyMzsiIGQ9Ik0yNDAgMjg4bC05NiA5NiA2NCA2NGgtMTc2di0xNzZsNjQgNjQgOTYt
OTZ6TTMyMCAyNDBsOTYgOTYgNjQtNjR2MTc2aC0xNzZsNjQtNjQtOTYtOTZ6TTI3MiAxNjBsOTYt
OTYtNjQtNjRoMTc2djE3NmwtNjQtNjQtOTYgOTZ6TTE5MiAyMDhsLTk2LTk2LTY0IDY0di0xNzZo
MTc2bC02NCA2NCA5NiA5NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNDsiIGQ9Ik00ODAg
NDE2djMyaC05NmMtMTcuNjAxIDAtMzItMTQuNC0zMi0zMnYtMTYwYzAtNy45MjggMi45MjktMTUu
MjAxIDcuNzQ4LTIwLjgwN2wtMTUxLjc0OC0xMzAuMTkzLTcxIDc0LTQxLTM1IDExMi0xNDQgMjA4
IDIyNGg2NHYzMmgtOTZ2MTYwaDk2ek0xMjggMjI0aDMydjE5MmMwIDE3LjYtMTQuNCAzMi0zMiAz
MmgtNjRjLTE3LjYgMC0zMi0xNC40LTMyLTMydi0xOTJoMzJ2OTZoNjR2LTk2ek02NCAzNTJ2NjRo
NjR2LTY0aC02NHpNMzIwIDI1NnY0OGMwIDE3LjYtNC40IDMyLTIyIDMyIDE3LjYgMCAyMiAxNC40
IDIyIDMydjQ4YzAgMTcuNi0xNC40IDMyLTMyIDMyaC05NnYtMjI0aDk2YzE3LjYgMCAzMiAxNC40
IDMyIDMyek0yMjQgNDE2aDY0di02NGgtNjR2NjR6TTIyNCAzMjBoNjR2LTY0aC02NHY2NHoiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNTsiIGQ9Ik0yMjQgMjI0aC02NHY2NGg2NHY2NGg2NHYt
NjRoNjR2LTY0aC02NHYtNjRoLTY0djY0ek00ODAgMTkydi0xNjBoLTQ0OHYxNjBoNjR2LTk2aDMy
MHY5Nmg2NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNjsiIGQ9Ik0yNTYgMjg4aDY0di0z
MmgtNjR6TTI1NiA5Nmg2NHYtMzJoLTY0ek0yODggMTkyaDY0di0zMmgtNjR6TTM4NCAxOTJ2LTk2
aC0zMnYtMzJoNjR2MTI4ek0xOTIgMTkyaDY0di0zMmgtNjR6TTE2MCA5Nmg2NHYtMzJoLTY0ek0x
NjAgMjg4aDY0di0zMmgtNjR6TTk2IDM4NHYtMTI4aDMydjk2aDMydjMyek0zNTIgMjU2aDY0djEy
OGgtMzJ2LTk2aC0zMnpNMzIgNDQ4di00NDhoNDQ4djQ0OGgtNDQ4ek00NDggMzJoLTM4NHYzODRo
Mzg0di0zODR6TTk2IDE5MnYtMTI4aDMydjk2aDMydjMyek0yODggMzg0aDY0di0zMmgtNjR6TTE5
MiAzODRoNjR2LTMyaC02NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNzsiIGQ9Ik00MDgg
NDQ4bDgtMTkyaC0zMjBsOCAxOTJoMTZsOC0xNjBoMjU2bDggMTYwaDE2ek0xMDQgMGwtOCAxNjBo
MzIwbC04LTE2MGgtMTZsLTggMTI4aC0yNTZsLTgtMTI4aC0xNnpNMzIgMjI0aDY0di0zMmgtNjR6
TTEyOCAyMjRoNjR2LTMyaC02NHpNMjI0IDIyNGg2NHYtMzJoLTY0ek0zMjAgMjI0aDY0di0zMmgt
NjR6TTQxNiAyMjRoNjR2LTMyaC02NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyODsiIGQ9
Ik0yODggNDQ4YzEyMy43MTIgMCAyMjQtMTAwLjI4OCAyMjQtMjI0cy0xMDAuMjg4LTIyNC0yMjQt
MjI0djQ4YzQ3LjAxMiAwIDkxLjIwOSAxOC4zMDcgMTI0LjQ1MSA1MS41NDkgMzMuMjQyIDMzLjI0
MiA1MS41NDkgNzcuNDM5IDUxLjU0OSAxMjQuNDUxIDAgNDcuMDExLTE4LjMwNyA5MS4yMDktNTEu
NTQ5IDEyNC40NTEtMzMuMjQyIDMzLjI0Mi03Ny40MzkgNTEuNTQ5LTEyNC40NTEgNTEuNTQ5LTQ3
LjAxMSAwLTkxLjIwOS0xOC4zMDctMTI0LjQ1MS01MS41NDktMjUuNTctMjUuNTY5LTQyLjI5MS01
Ny42MjMtNDguNjUzLTkyLjQ1MWg5My4xMDRsLTExMi0xMjgtMTEyIDEyOGg4Mi4yODVjMTUuNTMg
MTA4LjU1MSAxMDguODY5IDE5MiAyMjEuNzE1IDE5MnpNMzg0IDI1NnYtNjRoLTEyOHYxNjBoNjR2
LTk2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJhOyIgZD0iTTMxMi43MjEgMjMyLjkwOWMy
NC4wMzcgMTkuMDc1IDM5LjI3OSA0Ny40MjggMzkuMjc5IDc5LjA5MSAwIDU3LjQzOC01MC4xNDUg
MTA0LTExMiAxMDRoLTExMnYtMzg0aDE0NGM2MS44NTYgMCAxMTIgNDYuNTYyIDExMiAxMDQgMCA0
NC4wOTgtMjkuNTU5IDgxLjc4MS03MS4yNzkgOTYuOTA5ek0xOTIgMzI4YzAgMTMuMjU1IDEwLjc0
NSAyNCAyNCAyNGgzMy42MDJjMjEuMjA3IDAgMzguMzk4LTIxLjQ5IDM4LjM5OC00OHMtMTcuMTkx
LTQ4LTM4LjM5OC00OGgtNTcuNjAydjcyek0yNzMuNiA5NmgtNTcuNmMtMTMuMjU1IDAtMjQgMTAu
NzQ1LTI0IDI0djcyaDgxLjZjMjEuMjA5IDAgMzguNC0yMS40OSAzOC40LTQ4cy0xNy4xOTEtNDgt
MzguNC00OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyYjsiIGQ9Ik00MTYgNDE2di0zMmgt
NzJsLTEyOC0zMjBoNzJ2LTMyaC0yMjR2MzJoNzJsMTI4IDMyMGgtNzJ2MzJoMjI0eiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMDJjOyIgZD0iTTk2IDY0aDI4OHYtMzJoLTI4OHYzMnpNMzIwIDQx
NnYtMTkyYzAtMTUuNjU2LTcuMzUtMzAuODEyLTIwLjY5NS00Mi42NzYtMTUuNDcxLTEzLjc1MS0z
Ni41MzQtMjEuMzI0LTU5LjMwNS0yMS4zMjQtMjIuNzcyIDAtNDMuODM0IDcuNTczLTU5LjMwNCAy
MS4zMjQtMTMuMzQ2IDExLjg2NC0yMC42OTYgMjcuMDIwLTIwLjY5NiA0Mi42NzZ2MTkyaC02NHYt
MTkyYzAtNzAuNjkxIDY0LjQ3MS0xMjggMTQ0LTEyOHMxNDQgNTcuMzA5IDE0NCAxMjh2MTkyaC02
NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyZDsiIGQ9Ik00ODAgMjI0aC0xMzIuOTM4Yy0y
NS4wMzkgMTcuNzEtNTcuMjE1IDI3LjQzLTkxLjA2MiAyNy40My00NC42MDMgMC04Mi4yODYgMjUu
MTIxLTgyLjI4NiA1NC44NTYgMCAyOS43MzUgMzcuNjgzIDU0Ljg1NyA4Mi4yODYgNTQuODU3IDM3
LjUyOSAwIDcwLjE1NC0xNy43ODggNzkuNTYtNDEuMTQzaDU2LjUwOGMtMy45NjUgMjUuMzIyLTE4
Ljc5IDQ4Ljk4NC00Mi4wMjkgNjYuNDEzLTI1LjQ0IDE5LjA4MC01OC44MzggMjkuNTg3LTk0LjAz
OSAyOS41ODctMzUuMjAyIDAtNjguNTk4LTEwLjUwNy05NC4wMzctMjkuNTg3LTI3LjM5NC0yMC41
NDUtNDMuMTA2LTQ5Ljc1MS00My4xMDYtODAuMTI3czE1LjcxMi01OS41ODIgNDMuMTA2LTgwLjEy
N2MwLjk3OC0wLjczMyAxLjk3MS0xLjQ0OSAyLjk3My0yLjE1OGgtMTMyLjkzNnYtMzJoMjU2LjI2
NmMyOS4xMDQtOC41NTMgNTAuMDIxLTI4LjEzNSA1MC4wMjEtNTAuMjg2IDAtMjkuNzM0LTM3LjY4
NC01NC44NTUtODIuMjg2LTU0Ljg1NS0zNy41MyAwLTcwLjE1NCAxNy43ODctNzkuNTU5IDQxLjE0
M2gtNTYuNTA4YzMuOTY1LTI1LjMyIDE4Ljc5MS00OC45ODQgNDIuMDMwLTY2LjQxMyAyNS40Mzgt
MTkuMDgyIDU4LjgzNC0yOS41OSA5NC4wMzYtMjkuNTkgMzUuMjAxIDAgNjguNTk5IDEwLjUwOCA5
NC4wMzcgMjkuNTg3IDI3LjM5NSAyMC41NDUgNDMuMTA0IDQ5Ljc1MSA0My4xMDQgODAuMTI3IDAg
MTcuNjQ5LTUuMzI3IDM0Ljg5Ni0xNS4xNDcgNTAuMjg2aDEwMi4wMDZ2MzJ6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMmU7IiBkPSJNMTkyIDQxNmMtNjEuODU2IDAtMTEyLTUwLjE0NC0xMTIt
MTEyczUwLjE0NC0xMTIgMTEyLTExMnYtMTYwaDY0djMyMGgzMnYtMzIwaDY0djMyMGg2NHY2NGgt
MjI0eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJmOyIgZD0iTTIyNCA0MTZjLTYxLjg1NiAw
LTExMi01MC4xNDQtMTEyLTExMnM1MC4xNDQtMTEyIDExMi0xMTJ2LTE2MGg2NHYzMjBoMzJ2LTMy
MGg2NHYzMjBoNjR2NjRoLTIyNHpNMzIgMzJsMTEyIDk2LTExMiA5NnoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAzMDsiIGQ9Ik0xNjAgNDE2Yy02MS44NTYgMC0xMTItNTAuMTQ0LTExMi0xMTJz
NTAuMTQ0LTExMiAxMTItMTEydi0xNjBoNjR2MzIwaDMydi0zMjBoNjR2MzIwaDY0djY0aC0yMjR6
TTQ4MCAyMjRsLTExMi05NiAxMTItOTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzE7IiBk
PSJNNDE2IDMyMGgtOTZ2MzJsLTk2IDk2aC0xOTJ2LTM1MmgxOTJ2LTk2aDI4OHYyMjRsLTk2IDk2
ek00MTYgMjc0Ljc0NWw1MC43NDUtNTAuNzQ1aC01MC43NDV2NTAuNzQ1ek0yMjQgNDAyLjc0NWw1
MC43NDUtNTAuNzQ1aC01MC43NDV2NTAuNzQ1ek02NCA0MTZoMTI4di05Nmg5NnYtMTkyaC0yMjR2
Mjg4ek00ODAgMzJoLTIyNHY2NGg2NHYxOTJoNjR2LTk2aDk2di0xNjB6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMzI7IiBkPSJNMzg0IDM1MmgzMnYtMzJoLTMyek0zMjAgMjg4aDMydi0zMmgt
MzJ6TTMyMCAyMjRoMzJ2LTMyaC0zMnpNMzIwIDE2MGgzMnYtMzJoLTMyek0yNTYgMjI0aDMydi0z
MmgtMzJ6TTI1NiAxNjBoMzJ2LTMyaC0zMnpNMTkyIDE2MGgzMnYtMzJoLTMyek0zODQgMjg4aDMy
di0zMmgtMzJ6TTM4NCAyMjRoMzJ2LTMyaC0zMnpNMzg0IDE2MGgzMnYtMzJoLTMyek0zODQgOTZo
MzJ2LTMyaC0zMnpNMzIwIDk2aDMydi0zMmgtMzJ6TTI1NiA5NmgzMnYtMzJoLTMyek0xOTIgOTZo
MzJ2LTMyaC0zMnpNMTI4IDk2aDMydi0zMmgtMzJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
MzQ7IiBkPSJNNDY0IDQxNmgtMjA4bC0xNiAzMmgtMTc2bC0zMi02NGg0NDh6TTQyMC4xNyAxMjho
NDMuODNsMTYgMjI0aC00NDhsMzItMzIwaDE3OC4wNDBjLTUyLjQ0MSAxOC44ODgtOTAuMDQwIDY5
LjEzMy05MC4wNDAgMTI4IDAgNzQuOTkxIDYxLjAwOSAxMzYgMTM2IDEzNiA3NC45OSAwIDEzNi02
MS4wMDkgMTM2LTEzNiAwLTEwLjgzOS0xLjMxMS0yMS41NzUtMy44My0zMnpNNDM3LjQ5OCA1NS4x
MjVsLTY3LjI0OCA1NS4zNDZjOC43MjcgMTQuNDYxIDEzLjc1IDMxLjQwNyAxMy43NSA0OS41Mjkg
MCA1My4wMjAtNDIuOTggOTYtOTYgOTZzLTk2LTQyLjk4LTk2LTk2IDQyLjk4LTk2IDk2LTk2YzE4
LjEyMiAwIDM1LjA2OSA1LjAyMyA0OS41MjkgMTMuNzVsNTUuMzQ2LTY3LjI0OGMxMS40ODEtMTMu
MzM5IDMxLjA1OS0xNC4wNzAgNDMuNTAzLTEuNjI2bDIuNzQ2IDIuNzQ2YzEyLjQ0NCAxMi40NDQg
MTEuNzEzIDMyLjAyMi0xLjYyNiA0My41MDN6TTI4OCA5OGMtMzQuMjQyIDAtNjIgMjcuNzU4LTYy
IDYyczI3Ljc1OCA2MiA2MiA2MiA2Mi0yNy43NTggNjItNjItMjcuNzU4LTYyLTYyLTYyeiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTTM1MiAyODh2ODBjMCA4LjgtNy4yIDE2LTE2
IDE2aC04MHYzMmMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtNjRjLTE3LjYwMiAwLTMyLTE0LjQtMzIt
MzJ2LTMyaC04MGMtOC44MDEgMC0xNi03LjItMTYtMTZ2LTI1NmMwLTguOCA3LjE5OS0xNiAxNi0x
NmgxMTJ2LTk2aDI4OHYyODhoLTk2ek0xNjAgNDE1Ljk0M2MwLjAxNyAwLjAxOSAwLjAzNiAwLjAz
OSAwLjA1NyAwLjA1N2g2My44ODRjMC4wMjEtMC4wMTggMC4wNDEtMC4wMzggMC4wNTktMC4wNTd2
LTMxLjk0M2gtNjR2MzEuOTQzek05NiAzMjB2MzJoMTkydi0zMmgtMTkyek00MTYgMzJoLTIyNHYy
MjRoMjI0di0yMjR6TTIyNCAyMjR2LTY0aDE2bDE2IDMyaDMydi05NmgtMjR2LTMyaDgwdjMyaC0y
NHY5NmgzMmwxNi0zMmgxNnY2NHoiIC8+Cis8L2ZvbnQ+PC9kZWZzPjwvc3ZnPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNt
YWxsLnR0ZiBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLnR0ZgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZmM2ZWM0NThiNWMwMzJmMTA0YzEyMzE4ZmY3MjFkMzFkOWRhYjhlCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxMDEyOAp6Y21kNT9VMkdpSmItczgwX2l1S1d5UiQ8fDxaXmJHPGRCcmF6dXxLQVc2
Pmled2s2d1hYZW1leE02cmtkSD0tWF8KemMyZ15FPnEqYzZMMGMzYGZoNFlCNiFYJFRlSlJ1d01I
OWQlI3hGJTQzUktCTTtyNX1+QjAlQWAycjN3TFAhI1U2CnotP184MVQjKnREQlFLdWlvcU8oYGQo
V0pFQDQ0U09fWTRfbGpPQUYhV1ZaREEzeVVqOF5PeWdMbnM8P2M9UHF3PAp6dV4mYS1qUFlAbEZU
UystPks1YDYlQzkzZ1ViPU1zI20jNGFiYHNAfnZGNUZwVSlYJHBgX3treWpJcFVESllSYm0Kejc0
bER8Rl9kM01kRnRpTXVmNl5YJnBaazg0Xlp4Mnk4N0phRkU5UyRMJmx+cnA/dk1+PUlkTVJFUG52
eUYzUWY4CnomQzQmbVpKb0hsKmJJdk4+ZWtnKVV4Uz51VCQwMEt2YyZpZXJzQ05YezYqOX0rUnJ+
P1c5KWFTLU8kQSRfVDg1Ywp6NSEkQEZqVVZyVjhgdW1ycGZZMDs2MX1tQ0ozWHkzZ2BHdWlHNlQ7
dilIJlZSP248fTR7ZVJuLUN0T2FLYj8zWFEKenFSaDh7P2tKQXpOZDRaVExJMWBYTX5+dnJKTXBn
MEYoSlpeOVEpVFAlekBCZDl6KDclSHB8WG89RWBvUFgtWmJQCnpUOT5AVyVEVTgrSiooQk93QXg0
SVdlPl5uVEo2O1o9QDNWJjNFbkR1N0Z3UipYbkImYDdWbUVMLVp6UmxQMEpNeAp6ekN+MipJRFE9
YWorKThvdjdYRFFqdnlsPHthSFN7TU5OQSoyQSFTP2Y/Z2JrQXc4ISlBQF9ybnteRl5SWCF0Vm8K
ekEkSlY5PitDUmwyKC1IKD4jaXg9YSRVQmtZd0o9K1VSI2h7OVZOSDNRa1J6UGlhSng5c2tzJCN3
ez1AYlh+eVAlCnplcClmamxKKmxWWilsdXpDN1UoKWdHTSYxcG4kaDR3ant9MWBVPlpvdGUobUQt
YX5iSXl+bkBOQ3RvX1BLdldjewp6ZCshX2w/d1hPO2N2JmwlcmMjcStSZ3c5Wld2LW0qe2lOVVAl
X00pNVp3ckZQaDFKXmJMTU9XekFGVnxqISpWO1cKeno5MjkxbVRxRSp4XjJvdVpySz1eWmc9WVBC
PTxWJmE+d3F0PisqeCMpbXZgNjxKcCRQSG5eZ3deNkY3diYxR3wlCnp2MC1TKVJzWk5KQnZKVXJD
cD9hUGFzQlg5Y0g3MChOVnFXUXl1JSNtOEtIeUB2P3d4R1g7fFhkPyZsN1ZkJWozYwp6dWdmV2dl
JnxPP24zc0x9Y1hzeT1JTlFkaUsteXZPWTVHVXY8IyE5UFB5ZkMwcnttYXBKPik7YnN7Q0RraXlk
Y0EKenZzYztvdjlfZUpvdXpkPzwzZSRIb2lFJF5qNEExK1JJfUBSb251d3FqOystdHlEcUpEKjcq
ViE3WWJtP3R0SiRFCnpBISpAM3dlaEBhYnhfJH1VNi1pQnMrdipAWUxZYVItM1JWIXRMZ2shcmVh
eEhDbTZ8VnFmcz1mPHdwVzFZZ3ZfeQp6UygzQjR7QTlDZlg3WXkyOWYhK0NLNFVoVWxsZmQkRX03
ZTBSeHx9bG8+ZTc5TVVyTDFQJT4waFJZajV8PkdTREUKelA0bDxLNkJTKCliajRPZUU5IzF4akE5
dEZ0YjhZVlM1VFc7QVpacStZUWdVSkNpM288QHZ4Zjc3PmM1KzUoaXRRCnpQJTBVVWojcUhWcD1x
bDBJRHRuaDJqeVJ2c0hMaGFpam0xYzFXbHZPaldPd3BRN1JQXyMjRGlhZ2V4PHdqa1F7NQp6NCtD
Mmd4RWx0JjZkK0c8JWo+alRaVkhYOXclIUk+XjB1ZFVUMGwrRDtzS15pLVhLd1lsM18hfUVLdD19
OTBXMTsKek07dnFKZDQzUT0+QlUxUTcxXk8/K2wpRyhZM01rQzxNZSp2Y144NmkqeHdUZ2NDV0Z8
dkZGKHZrUThyaHc9Qlp6CnplbDlTMjJjTChyOFdgVDxxJDh2XiEwKjF8Ym9OJStkI21gbjw0KXYr
TmFNUGgoWEA9SXpmT2NkcG9yKndjdX48Kgp6U3luWT1Lc0BXREdjWHxqV2JrbDZhUFczUU8ycF49
XmQwWktsVHhBemxZPVFyYEI1SCFWZz1LSHQlT0JVQUIhQlUKel5rWH1DTTVyV18/SVk3aWIzfClS
Q1R7PFZjel94fWomUWY7ZU52ZjZldDtoeip0dHsocUxmSlVKciUkZkExbUw1CnomTC1HOGVmTD0w
Yn1MWntzRCkwZGt0RWRLQntGT0B7PUB9MjVeP19LOTQreCF7aFdnPGYpXihDMmhINk1qKmxkNwp6
dm9VTGdnZ1IyJCkmLWJIPjZBblM+c3dtYEptemQ7VjteMyQweDdDOy00P3UzUio4fD0hJU09eF5A
VXYxPn5UbngKekRsQGVFQnF2ejN1ITtucVlzZEsteXFkblEtfWBZYFo1PTJVNTQ1VjMqSDw1ekg0
bCF+dklLVE84QVg7amA9a2M+CnooKWhHeE9ePXItSHhFNzVhZ017cyQpUHZGKTRtVX1sPFgqTzBv
SyFtbF8yMlBFd15LPilqNk8kJGM+YXdwU3lZVQp6c1RVe1JIOCVhXnNkPyRAJjZ9NnlsaDN7WnVO
UXFJKzx1KCY8IXhKVSZ6UVZzbGVNdDliTXhsOCk4JiFlbm1oVTgKelF+Ymlebj5WalleUVdHaWUm
Q0h+UHJebCYxQF8lVy0/UXZiKj9ac3Y9WXpEciRXMzBZUDRXKGAmZyRCTzk1IW9aCnpgOFhfPTJT
WmlXPTx6Jm5FelI/cEhyJGlDT2RJN3Z5bTU4TEVwbUlNSHFNdkZCe1creWQyQExsPDd2Njg7TTg3
UAp6VUZYWk5ZeyQ4YGJlentMXyVNU1AlQ3pHcWBHQT5CVFhCKT1TaDJubzVQfVMpYykjNEB4OFpg
cCZ3O2EoUTcjeWAKemN2RTspN1lPcT8ockdHUTVHMVVIKVJkXmIzYTY7d3tAcVd9OStuS01wZWUp
ZU96WmdibDhqWkJhWWQ0RD0jcnBkCnpXU31eZ1BwN1JlNz94IWprYilZTFNSfitwZ3pSQFd7ODFB
a3FZWUJPRXMrPzlDPUVCPzhQKDNhYzRrS0VQJHdaKQp6TH48bip2QnFna3RiY2N+e19uSEA7eUpL
Ql9MPFpLOD05flBVME5tSVhhKDl5c3pCWm1zWXRUdHZDQWhvYDlrK0YKelkxNFJeX1RrTiRsI31l
eVZJaz0/O0c/SGI2Xj1aOEZZN2E7Wm9laGUlXiQzJHBvRj53IS1rUlVWJnRiYTFFTHJHCnpPNUh5
TDh2VUUzKGYoa2tCQH03Jk5nREVDcG5gfn5EeEN3JGZCdmc8MkhyfDYjTz9eT1hIPVlPU2YkKnQl
Wi1Zdwp6bSVUQyR1LW1LKSRCaiVAaCRnLTcxXzZKKF90KXFxdXJ+MlFNJWdOel4hVG5iY2JQbm9H
VGNmVzRzPktoSFlqJkAKemRtPjtRcnBeSCRQe0dEbHp7QWllbChYNCMhQU5yK2t0Zm9OMk9XSChk
UXMleHhXb05rZH1we1piJUx4Sjs2Zl92CnoxWnklRUMrPW1vIyFrUkh6UEhAdWhGV2tpYG5MKlYx
WjR5YmhVKiR1PWlZKyU7PX5FKiMmTThQK3c4e3UjUClHSQp6cSg3WVhBYmVWaWdUNV56RUtedjgh
N19IcENyPFhaNHVYVnA2UEpKdFAyWHRZJFZGeWB0V1ghc1hsa3g0MVdfRSsKejQkbj4oT0prKT4y
RGpxJD9CVXdwOGk+KVEkLVZHN2N2NjBfUHM+NEgod2ArM0BZXzV7XnJ1NS1lWT05LWd4JEZ2Cnox
YU4+T01gWXMwbkpBRntzOHxLWXxCMyQ8JU9oXm5WTmJBNFhyR05oZkQwI1FuISs5KEw9Tk5gWkFN
JGZgREk8UQp6KjloMD50TyReRlU3UiQ8ej5eV3tXaTBfVjFRaDc+PSg9OzYoUSY2LXdBfEsycDNm
SnsmaUg2JUU8ZSQ3dHA+SW0Kej1qWU8kKVJBRWQwWEtAWUgyY1ZFbyFxNH51ZGxrYz9OVkttXlJy
ey14SyZYV2pwfkZgeHdOUU10WntSITshSVNICnotcnIqKmE7ZiFJTnRZM01RRGp+RShtQEdGSkI2
IXd1KzFtRU44UCFIK1lfOG12PiU+eEFOM31BPz1TaTJPbllMfAp6bzJfd1BvQW85cStCMmlEVish
PEBlOEp5bV5YeChQMUA7fVJKfDw9emV1LUZWeU4jSmk5MVpkYWFkZGBqbV5kMWsKenZ6OW5MciNP
IXUqM2R+PnU8NGs+SVoyTkxGNko3NDtOJSNVTjtPdyomQ0ZDUEdjJkRudTNEKVdUQV5UUyklaW41
CnpZUEJQVz1CdGBuQ31gZDBzYmtCUCVKUSpPJV5obUA1I2R0ZHpgPTNUOTZ4eFZrUjJIKj4zVjVv
QiNTZXZOKylRWgp6eH5INUQtQmh7TD1IdHZydjhaSz5TeWpiTkQ7N3NHQyk4e3ZxdlhxWk9+WHll
V1V9Z3NHYjdFI2lIWEpMTlNYJkoKekQ1VXZDQlpzNTFvLTxVbFNrN2UxTU5gR3dXVWtWSUtYcmxX
OUl4V1VFbFdHQ05VeUkhdW0yRnwxZS0jeWRfZmxCCnpMUDlkI0x3dzN9XzBHRHF2Yj9sWD1rfkpR
OypZMyR3cD9fSTwqY3JySnZNJUF7TWd5QVImYV8oJl9JKGFrTVoteAp6Tj1CQm1tQ35JY2AwKUgw
T0B8WXNvbmhITkhpY09BNEUqSF44KVo4ZjF3M3cpOCNhS2FXbj1xJFpNdW5MeGxWQTwKenB4YTR+
eUdvUXc/SG9ldUNgXyY+cG89P24/e3lRM2hyTmdnZkNtUmhjT08/a0glREwoMjwlTzRReC0lMjI8
MWhUCnpPWXIxJE4peCFgQEgreVIzaFYkaGxnPks0Q0FTYj9aQ0oxekttWXt1Q19kP2s3Kj1yUTt6
Smo9eGJ4KHhRPEg8Zwp6ITF1WEJLYCE2I01UMSVwY20/TChMXzloTXJzT2REWX0lczEzQjxHRDls
MCRWRH1WKlNYJCkrRkRgJWQ1YGItIyMKemBgRE9zdTh6ZCNvXzt6RWslJC04NXUtX1hBPSl3RXJT
SCMrVSsqKlBxYFlXZTgwSUMwI1kxRT5LXn0zc0NJcSRzCnpFZ3A4fWExYVp9KXdiVF4hVDRnYyht
SHY1VmQ0REFSOzlUKDl5bjJEKCQzcCtZbTx7fWIwOCl3eik4UTduPnc7Twp6aylxR1U+WEU1aldv
aGVid215QSR2fm0zSyp4MkZZam5UdT9fM1lLSENDcFAyPm1oayZWYVlEQW0pVVBhejYydSgKejFq
dn5MNGdlfWhDYz0rNGttOWFMel9QeUU4aGc3ZCNFR1NrRT9+JTZXdldwKDNzcUNzJjElN3tIPk42
a1lpT1k5CnpmR0gxbGdUdE54Z0h4R3UjJmZGT243OGZ1aE9PcXRvdjh8Y2QhS2c8LWEwZTxDVkYj
fTA+Sig5WnxuSlR0flBWOQp6UjYwMFElYSF4R3orNEF3OC1aJEkkRGM/dnpwYXY2MTl6R301SjFy
aEd2Uy1Wd1VObWs9I1g8aDQ3SCg5ZDRJPkQKekB1QXxXNmhSIW5CPHFIJThvSGUzMnZxb0RhKWh4
Q2NGMWlPaFBRYFhRamYkb0JzIT9FMD17YDFncSR1U2I9VkxjCnp5TiNgM1ZSeTgjTnB4dFYrcW8w
P3ctQXtWX2FQRjlLPW5nNGZgbT9LMTBBPHZlSFApX3tUZWgyNWslNStGJUxGewp6QEg+ZGt3TFI0
djNNcVArNDtRSldpbDk/RVFIUVlRQz1saCsjdUt9YmNMaClyQFcxdXcrfTNUIyhUZn5YNUhWQVoK
emtCYykyVzU8WGtzdC1obUtzLW9WTXpWJHc+XkMyNC1STD98OUglb0oyU0pHV1R1Ukc9PW57KHYp
ZFglNSN6KlRNCnohMClodFVJZU5oaTNSQ1lUM3x8RFV0RkJeQVBLeXByMDdJWjVNWVhjQ3s3Oy1s
Nlh9YW9XXzlLRWpHcyVuOCVLPgp6bGs1fik1TFlEZismVjxJVGM4QVJCUFghJStCUVd3VGhvTns5
SHxWZkxvTX43YDY3NH0mPlQxPGdoTTZZYWJsIWkKek9nUFZAVVB5UzNENURyM04wZmA9aiZRc2ot
fDBHRzJyM0xCQG0oVDclUD5Ncz5eSyt6V0JPbm0yMjAxI1ZBR0o/Cnpab3RHTGFrcWkqRl9hKlU3
e15lfi0hZ2khUThHOSlPMTt8I19kIyFpSn1YMkMobVJqaUlEIU9HNm95XkFJbDFXbAp6KClKeCU1
YThFfWghfk50TEt+X0xlRjBqZm8tQkRjYTg1a2teI0ViUTRxRHR2NW9WLTBJZ3V8XjNjOE00ZXF4
ZmAKejBufXRtYEhifEh0KiFII2QqWD9DWGEkY2BsdnVqRVchZzdXdiZSWnlJUVBpdk1DP1phPGRi
bldhJlJfXlYxPyRmCnpyaWYoO3AkX3Ijejt8K29MKGhqMHVwJjVzTmx3U1lrN2RsUEhkM0Zud3tG
O1ReXng0aiFReXBBJWN4QlFeOypfNgp6ai1ObFNXO0VxfFRLOyFecSp9fEByWUIwaHVyeDdVRTch
Kj0rQjRLN0pwLU5uZkViKWppd3RUNElVfnJLJEokdmYKekB3d0IzSkAkQlhIYXkjPCMzUUpUPDhh
QGhERyZQTlFsUFBrMStVeX5GaXZ1fmt4OWZEV0kofm91Qi15TyVwI3AzCno7N0ZrJGA+QXRHVEZI
WjAlak12KztlbHdIJkVkO3dkfmt1bmtQOFE2aHo1UDV5JShgKEZfJGchVkVmU3N2UlU0Kwp6USE4
QmlyUEBrdXhuKHNIbXRMNSVtaGU/K19FUUQlQGNzSCpTaTh8ZXhuMygyWVcxPnR6JHorN3h0PXBL
UyE/dF8KenA+U1otJTRTUlNMQVI3ZSU7e1U0PClBUDdIcExlbjw7QVheKSNYZ0ZuIyl5LThIN0pH
bk0lMityOVAheiE3fUEpCnopYC1FbUJXS05gYXNPdVVxNE9HTXA1fFohYjNraVYxIytrNip1d0ZX
ZShoRkZOPCEqRnlCJCtTQnZuT3BKX0hzSwp6NEB0fnBFT0B7X3goNjRXcVBsbDZpVjwrJCE+Ym8y
Y3QmVHFXTD5Ke1p7MzVSc0B1X0J7NVZDIV9iPiRmbDY9QjEKejUmSnB8dFEtTTBIWmt5NCtvZXpL
amthc3FwZVlJOUVzSmtITH5gSjM5Q0lofHl4OC1BUjJZOTNGYW84OGckVE9BCno1emgtZnVNblYz
RlpBT2VWKXphbEc5VTk5dW1wPlhAU3RzMiNZdiNDJU1RVlVje3A5ZG5pQ29tXzZuPj1QS1pXeQp6
aWZuMHBUMVdNMTstTGRMNl8/MHhpJHdgSCgxU2w3cG58U0krI18re3huWEo7byRXSCUxMkpaNGww
Q3d7T2Z2JigKei05WF4zUU5iUDx4UjJ3QU82eFgwaVZKZ15ZNkB2U2cycFJ8VnZHMitKRzZ4YWM9
RnF+T1NjPnpLWEFDel5QTH01Cno4PjBubGRTIWZrVyFsMHl3MHMoJClUUSs3TVkmJGM9ZTNUSyVq
WHEqUzY4Kn43SFNsNnB7PG5VS257Y194KEs8OQp6SERfelloeHA7a3I9Z3RkWCEoM1dQZnQ+bSk0
dkl2KjEkK3NeNykpe1hxWGRtcSZYMSEwaVFnRXR5elYmVCEpWUcKejNFd0NpPC1NT00kcE0yRUM5
PyNwaTR1KEl7WGJTaHR6c1cxb3x5YUhaZEB1a3FaXn02c2tHbEdPQWFlYU85fH1qCnojP1YxM18+
aTlgPkZUbG5uMTgxRHooKmA2cEBPbDAqdG1fOGRYako3PkhpbDVNV3ZJK3E5NlVRNFE9NFdAKEU3
Vgp6Q0I1KzdXYXB5U3BzUiFBNk5eNGc8dXNpY3FOeHB+XmNtJHhrKW9seGFFUFlvT0dzfE4/JUor
ckNkIW5rLTlCbWkKejR4U1RWQTFVYSEtUlM0VS0kNHJkeGckb0cxQF9oMSpWKGBFXlpYa0JCbU0q
YVF8WnM3a0w5LSVybVcjUj5vPTdUCno1RD1Lc3J1NHRufEpoaEZlJFYoOTw5ez5YJk9WbT9vJFFh
WnxDbHAhMyVNYGstcE4wZHw2Y3lAM1R1VUAzaHgjXgp6SGxIdmZeTX5ldDdyJDB+c344dFFEQWh8
fUVCI09URFpHJjtAK2R6fXxGZU0kcVVeYSRfN3xjUndaKW1YUHQpMSkKeipaWmBMYGxVWHRmUFMt
MnRFYDMreUA3bl4wPX5tMGJRV2lfS0wjZG9DNChCYG5hfk4oZ2lkJVNiaXk7QzZQXmpKCnpxM0BV
YWVHe0lxdX4qbT9jQVpeaiYjQFFTNSZTUjRXd3l5SztyQig5dWM3PTN5TlZWTFZ3PysqYE0mTDZk
KiNhWQp6JWc/PVY8a2ljWW1vREFFODlOV1FGUnxhaTNwVDwyelU8aGVYbT5AM3UhJllMO0RmI2NM
d19DamF9ZjBeS0ppfV8KS2Y/K2lLVWpHazlzZSMxKwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Utc21hbGwud29mZiBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3Jh
eS9mb250cy90aW55bWNlLXNtYWxsLndvZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE3MmM3NGI0NWJhMzcyNWE2
ZmY3ZDhkMDkwMWM1Mzg0NjdjNjRlMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzg0OAp6Y21l
SE1kd2YkPm88Q2BHQFFNKHQ8fnJrWj5VYEwoSX14RUp4TSsxZzRwZE13M31+fUpONU5MOHc1Rnd7
cV9tfEUKejhrKGp9ZXxAQkJUS2I/NVlrOV9eYnQodT4hNEtzbHg8VEM/eVV4eV9TYXg9MG9hfXla
XzUqVj5wVVpDZGR1fGUxCnpQI0QrIWNXLWple2hpMH1kdFNmQ0lwLUVGVSVZc14pdy1PcWQtdDtH
NDl+c2tPZWZ4N2UtPHJYOUZOPSFqTk4mcwp6MilYR2ctc1AhdGt7Ryl5NCpCVUtOSSgyamE5d1Vq
S0pwT1FiNlBtdUg/YmpPdiZjSnp2PWorKFMoekVAa3ZFMykKekxuMkpQZSlqViRXSE5VNTQ1Vmo/
NWN7aWBKRjtAXiNtSmtCXnRjR3d4Kk1PKSVfcyltSiNrMSspNTN4a1ktMmBsCnpDaTE/fG1AWkYq
UEJ9Uj5LWDA9Z1cyIX0rY3JDPURnejVFNnJfJmtpKiY5bzgqSmFNJG9TVHU4ISpucXljX2VncQp6
T3o1dUkoRChLQ1BHQChkUDdwPWtHajFyZ2c/dTQ5elh1MnhaV2kmTVokWnAlTTBEcFp4M1klP3pr
JUp3P3FOUyoKektWJTgpMGhXaz9DOX11YjZLcEE0JmE1bnJ0ITMrMjdSek0/dGNhQnsyWGlyRTlA
ZmVfU3VZITRgYDd7WTMtJVRwCnpWYU00P2M4ZEtZYC1HandwI1AyaWZ0fDwxfEMjLV9FPjxWJFg2
a08kZU5UNns/bXBkTFVvbk8mNWB9WE02QVAyKAp6N0N0ZHx0YDtRPERvSTUxTH1WN3hkPVdoKXFR
NGM8MHVlbmRxTXdMcHBAPGZWQ2BDazFoLWZqUU0xaHdtQERjQEgKenFRRlpPYyE+ZnBRUSMjQ3lo
TVNRRERWO21VWlRLRDZuS2RPRkh6dG4zT3Vjb05kaGxQOzNXeVhCIVFQQ0BSOV54CnpsRTZ6NmN1
NHsoTmtBbkRzM1paRUIlcVE2KUk4QyhjPi0jbGZTTTt6PUZNajtNKDQmX0VEJWVpWEUjOTdYRU1M
Owp6TEVSREVgSXVRVEthWGpPJkRRSm18SDNvKT1ybGZVQHdCKDVqbyU8aWs0KFJSZGd9Qn5aentS
eiVuVXhHY2ptZzgKenVOb2RVRUhOfTFQVGY1SD1KaiFSI0NoViorflUzRT97QlRXXn09bUd6d058
clVtNzFXby1xRFZ7Kms7K0s2KDJLCnp3fS13cmFMSCF+fDVjd01XZERVcyR9ZCZEcUV+LU95cFQj
dHM4Rkl5ZFFPR2lCYD1jeyhpNEF+eTFWSVJOd3E1Zgp6RjhoZzBIbGlSOHNBSUJmQn5weD52YDEy
YDZlVVNEQCZMKUdEMmx0d0o0eSliIzduNVdvSnU0Vmk9cl88eiZNcTMKemx5e1MpbjJDMiZNK2JG
RmJUK1YqUjV2JC05I2Q1THNTa0tYYHtxYEd1em5LWjVeeTdvVzBRPV4wOXRkclFxZTlJCnorVTNV
RENUQnluRz43T01aKzNmWThmJkV3cFhCWjgzMFZiOylAUENeR2AwV2VtfGBTU2ViSGg9JGZ4e05y
cWp0Uwp6eXIjM2QhYFVHbjMjNSkoUmBHSWdkMj9CbFJDUEw7cyotdEdPP2g+PlE/ZVhPTys5QWVQ
OSRvfHF+dDB9SzMmQ3wKeiU5PkdHVDRmbmM0SUpadXNQMyRoVDlRdnclVzItKClZMDdHbD4pMHFN
Xl4+NzdtMjEkPjJ3UU0lYExMVVZqKVhfCnowKGQ5QGt7a1JYcWE0RE5UUHxUTChiWHZsI1Zqa3ND
e2MmUUM2XlB8VkcwVCtwSjRKdW40KmQ2RmUmRW0oaUROfAp6bnxwMnVyNl8rVCt4djZkQEBwbFZL
TiFUITJMaElXcT8qTX5GPntMcnFiRGg3dmV8ZmtWe1dEMG98KTtnP3pqMUsKemooZGlOYHVwNFYp
JFclM2UhcT5ePUN8ZWMrbE1sYnlacm4yYCg0S35oYXxQLWREKj9LeTI5Yjh0U29hQGtjKnU0Cnop
Z0RKJSE+LT1td3pkdiRKMmpLSCZRdEJKQ0lgOHMtK20lUEw/TUlKLU8rKUZJdn1vOFFlRjx9UXl4
P2VhPCQ3QAp6PWJ7UUteSCNQd1RDM2FMSklGKD0tZXltO3g0eE8kc2woWTsqO359RyR4JGc4bG5j
cipNMkN+bD5EXjlKR0xiKjMKejN6a1Zpd2p+cWFQRUlGbmhndn1Id3RKbUVHXlU0WUslcyZgUW1p
SzgmXkBDWjUhbkQlT000YDtTcD14WEIkRlNOCnokdEhBNkB1Xz1jSShuMj11allYPnZJIyh7NSF6
LX4/MnYzRHZ9eShWbF95bHc0e3BeQUpgayE9dDk0YWc5YFBiNwp6RXV8dUtFezlXNVM3fFJnSC1t
VURiIyttJU05U08lYzt8aiY1ZzIrKXlOYU49e2k7dSVMKTx9Q1VoPEt6I29KMksKeklwVkY8Zl5w
T0tEeU1eX3w0XihqNy1CQjhJJGtmUCFCNTtyVWFnTVBpOClrflJPPz5eR0FQIzJSQ08+LVFIPzF5
CnpSUS1ZK3dqcDc9NlNoO0FPX2NkTjdKa2QtWkhoJnZGJm1iX1k+QlBfUVpgSXlmaENzfjt3QEhK
cV91WjJUJDl0bAp6UmZhJEAheENLOWNjRSNRNlZSWTVqRCR+Q152Uzl8YDY+aXFOLXB6VTBVJH4p
PnV0IVlfKylTY2dCdWoxKGtIKHwKejJpSCg0cktZYzBOaD5NK0ZwV3lvIUFhcH56cWttfmBaUngk
dmRjRSp4bT5SNW5yY3J5ZXBvXnVlSjRKczZVcUN8Cnp6cGZiN1JXMytsdG9vPjt7WWNldXJKe0xB
VThjQGIlfX4yeDxzNXZQUEkqKy1leCReNWIoTHBHSFNTR05YRFF8KAp6V3RtYkBFZzNAVkxwdTQl
NHwhIVBFSUV9P2Q5fWtLRW0qKHszbn1hNkxhRSs4STlTKWZZYTdZYSplSVBqIXk2aEoKenNHYl9j
Jm4rQkRWPWNMQVlYeWhmP0l0KFhBLUVlUGNZU3R0TG1oOWU+fk04YkN2fHcqKzV+c3MlWERCMWVD
UF53CnpuVmcrbkA4JTdjZEVEK09oejIxKiZASCN0bDQhQV5BPS1TVDE4JTlJWmc5fEQmbUM+JDk8
QSVIJTFWTFphOCNGTAp6QnljI2JtNzxHbjRtY2FwaVJSVztmemo2SD18SG02KWx1MGhWUT5qbior
czV+KzlzJndqdXRPYEZ6bF9qV2UwaHkKenBxU2dMb1NHSHB3S1hvY2l+ZkpjRms/IWJkUSlXMUJ1
anZZPVBmKkFRb3pFKXZsZnt6KTZlOXZGX1MwJkNtOy0zCnoqcUJMaD1Dbk8qKDFiZytUeElvTztJ
RldIPklKMXBfSz9UalNUb3ModnVZYlRUUDhjdip5TCR8ZElqSDt1V3NiKAp6UEgybE5VKXsqbm9x
JmRpdFRKN0s7fUpoTmhtY2lsNmNvRVVBKUE2RzZEZ2t5cFFDO2JrMEsyMkNGNykxUV4lc2EKenZr
LUVsK2QyaWc7a19XS0Z1bUYlbkd8IWYxXmRyZ0NlP1lfdVpmIUJWITxDRjM4Km1JUE1QeGl3KE8/
ZSlZcGUtCnpfbTtrViVCTCtgQz82OH56d0wtUmhNcmkmbUlNMUJTVDVyPTUqUmdYQUJMLXBYQGVm
KUxBcGxPRD9sKH5HUW9Negp6M2NfVUMwV2FEUz9RdS0xVEBHKEJCd0M8T2B8JW4kPDZ0MXtrT09G
aG59WUlrTzB7UkNyKVN0eFgqbihMUGQlOU4Kelg4TmY4QiVQJHV7eD1VRWU2eFFQPFZwS3pga05V
Q1F+UUBnTjBzJHgjMXNxJFpHUGQ9I2xtckB3TkpMJHV4Mkt8CnpPKU1yaXlyRno1NHt6Y0YhKkE/
QSskb2hFPUZiI0FvMCpkKURNJFkjbSN5SzQlaWhRdGN0SU44I2RBaVU5ZVNvbQp6ZFB6TWd5USNM
YFRgdyhzalZAaiMmaHdBd0BzXnMjP0tNXkk+Z3c4UmxBYzlfX3RFX01iUlhTIWNLJGBXTk4zTD8K
eng7WCNyZWVldEZ6c2t2Q1lrUWhiMkxnITFfQk5UNEV0WF5xel57MVp7KClWNmR2P0NIPnVBU08h
bXM/VE8/JFRQCnorUnxTaihZdChXJEpRTXNaN2NWJD0pI1E5aXFlJWlDNiF5Wlo3cjgqMSFWSWg+
PCU3RFRtOUo0JDM5SXZOOVg5JQp6ayl5dl57aExRZD1BYz5abEMrKU4qTFFmNSFzZmA/TUg/S01s
dH4qfXZ3SnNuK0l4IXpkSSRQQGNYZkszbnd6fGgKenU1R215UjhBYG9yb1RnUWRrNShxeFZxWVEq
QTghT2JCKHVWUzZQMmlaJFZMa3k9WVN6N1U4JGI3am5oMCtxMGV8Cno4fVc1aT1jLTYyP1U1RiMm
SihtSnM3I3xoclczU0NhcTsrdjwoYGtZWEpALXgpTSMoO1k/WCs1bWkmYW1aV184Rwp6VChFTE0/
RTJ5Qz9KQDwjQTtraWZnY1I5aWpuZVdVeikpRkg1S2R4bWhvbExxQWpIV2UyZi15JDlOdkMxTDRG
e0gKemk/fSlyazNYZkZXd0huPjxEMStKODJySkBoWCg7RF9QU35lJX41PyUoSyYyRXY0MEl7ZGtY
JDNHO0hhcXJBdUA2CnpwRXxZbCljKmE1UFZMV0dpbWFSKm09NUVCT2ElZEthP3I3e3omO3dWMnQ2
UUwka2lCU0x8I0koWFYzbX0zNng1Ugp6dnVnWl56V25tYioma3RKQkUmZGs0OSZiWXlZKCt7RDtF
TVhfMyZUc0pONXpuR2hJd0x0SHUlajJ8e2R0ZUMoLVQKej1Tb3k7QkhQO3BeSks7ZiNQWU9WUzty
fHJ6eChqeCYqKEd5YTFxVFRPT2BjbGxofWBGUnJJIUpPO3xVQDdrV0AwCnpwfko8bVdnWGJpdnhk
P3J0JDBuPWg3RFAzaWIyd3ZvKCVgR1VNb0lLQlEoLTtfYHF3ZzlYUS1HMHRwP0dNZV8tdwp6Nktk
U34xU084fUtZdzF0Tj9nS3VXSjVCek5pfD00WVlOR0BjQS10WlRWNzNUeUwwI01TYUl6Nl92dzgp
YzQpYEQKenhmfEQodFFNeGpEN01XJEF6NnM5cmVtZm5qays7dilVak05UTQhezkoenY1RVl9YCN6
USkkI3BySUcpcXZSKTx9CnohNzZaWWE8dC08KVpXXlBoKn0qfmZvN2MkOWFBdDZQKmRQZFFVWmFY
MzFTV1Q0OGtsWkRhWnwyT2VYRVQ4I0d4Zwp6M1RpMVM3SzxxZVhGIyZhMVZmXnhBbERNVztTbT1h
N3pGdlQyJExJbVBGME9nUHFtfnpweCZQSFBjTE5RdTQ1TUwKenEjZVVSTVFuSjNJQUMyK3QrRjJw
WWpoWnZERyprYVY2ZUVZdSF3VjUwM0B0OWojPyZ9LVVkU3JFO3pjV054UXJkCnpZMzsocGd5R2wk
OWRVbmZiZCVOfSN3ZCh8Y0B+YnI5KDUpZmJmaFRhRDEwYCE1SHF3Tkp3PUkwODRKJW1xenA1TQp6
OTI+ZlY4ZDFfOGJ+N1MzPSRFelk4WElhc1VzTzlxRTc+ZWozTWEhVHNTUXBRTjVDTTBwRFJ7YTFD
NzsmYzVSclkKekYkQEJHMCU0RnNSJC03cj0xWkZFJDJ8Jk1IUWB6WXlBey0jaVVLKV53cVd1e0RN
UlExPkBRa1dEPXVTTjZsKWk/Cno7SSFgcFkzQFFoQ29XbSNEKV9CMnMjNDlSUjBafC1maSN2OVVv
X2NZMz1oNEY0RD5uXyZJRCpuPXUkK3Q1KXczQgp6ZFlkMWlMKjFfcTQhK3ViaD5wO2FsMChfQXpC
S3JKX2pCfGRKencldF9OSWNadygyYkRfYj5wa0okbDlYOFN5U2YKel94bSNuJDQoMFo2U2xTQ1d4
K2FycHA/dDZebU9oYUtiPVRCdkozfWJuODhhJVdmdC1HWTIqbDxwaExNc0ZMWC1rCnolczxHfi1x
ek1tKGpmNlorS0o1ejwhezl2TXRZailXQiE/MUNPPUtRZi0yam5UX1BCcEQ9UWc3VytDT2FNVk14
Rgp6Pnw7eTtSK2p1OVZ+diV1TVdBcmg9WjBXRkpKczI2Q25WTz1Fez9rQCNKa2o0Uj0leVFWb1F+
cz82anEmdGk2MVAKenZ5LX1UbWJZM1V2WiM+fmN0JiV9QytKdDxUJWxLKGNKJlY4MT5IN1pIbSMp
PmNoTyRqX3hpd0ZHKGBUQVI9WUd4Cnp5az87Njc1bVBEcDZzP1AlQSlNYmc1dno1KHY2ZnV4bV9E
flo+Z2BWcn17YnhBWXtXel5TI15xaW04eHRVbzJQKQp6d2A9UW1eaD5HNG4raUhOX2lyNjI5O2Bl
LTJXWVR1cGw1ZSkqSXdGQko2K3c1UFUoK2dFYTQ7ZUdEPUlNV3dkTjAKej9TMHJxUnBeRnhyS3Ba
KzZydXA4TVdgMWg+c3dZPHQoUn5YKSgySTY1Ujc3JHphXnRHMjYwZ0pDUGk8O1dJPUduCnojZiNx
ckE7RlloNVFma3MrQFdISi1KLVNmKGJjUG9qKXQjd3FPYGVQN0psNm42cEo3aFIyZGZQV3QwVWk/
MUV4Tgp6cSFwV20+JSk1YkZfbG5EaSFEbWdIJkIrfipHbnpfWHI1dyl4PCt1bWlGLTB7bElReEFJ
OVohelQtS0tRVlozYj8Kejd6QDR9S0goNWBEUiRUbEtkaWBOOztWV3hOOWJNcDxofVBrcC08PyZw
Vjh3flN5eCU+a2FqTVZwRkdaZW90fllyCnpzcWRzOCliMUEyYWx4USV6UGYzcnJfKDFMJExZNGJ3
e0F6ZilZITx8Y2h2UWt3QEs+WDlGKCZ1WngwUjk7R1I4Kgp6WGlwd3hRKzhmbndzM0YlPWoqcyh1
X1B1fkMjIUcqKzlMJkVkYyV9PFA0bChPeEd7QkRUZmZObG5fVnlxeVV8NW0KemVtXz1vR2drMDRC
bjVCUyslOCp9QFZ2Tm5IaW1wTSVARShlVikyUTwhI0tYfns4YVpNKG59KW1pfGh7T00wKUNACno2
UTdeMWNwa14rc3JrQ2AzSCleOSs3fkM/bD02NnVqek5zQ1B8UyF9bHA2Nng7el8mPl8lYXJRdVVS
QDRLWXNzcwp6KClqI3x8QypSVUswfSZ+fDdoSC1yRjlkKGlgVTE7Iz5ZZ3N3RjszKSQ4X01oU3dq
VktfMV8pKjtgeTUmeX51NzcKek8pfmI7aWhwUjF6OSt0Izd7Xkcqa3J1Nm5BTWw5Mjw3KXw8Xyk1
ZVlRbHdDT0V0cn1Sb2t5S2BndlNMJGdjaiomCnpOU1EqNUl3Q35OIzJYKUVTbF5WcSR8PHhjcE5v
KFgkdCQ/MyV6KDVBcVRZNEYjOClVNnhRYD5HTjl3TUt5YWokZAp6TFNeSX4mKTVwfE4qa3BDQUxH
T2ojVnBgXlhNflF5SSZGJjN2QjtrcnE0bDcqTVFGfSRNPUghYTRQVG07TShGQTYKemUlMndAT0BB
WUQxWkoySFZ9fEs0V3wkNlJoVXFZN240U2pTUlQxN1dyayFROGpqUk04N1QyKiVIaylrKm1CRGlH
CnpUWndjNSglQ0V6SFJBQ31APEhfWm4pUj52Zl9Vdn0+PjBwclYxO05QMU10XmBWQHB0UHF0PUJD
KVhIUyooUztZIwpVKFJsVjB4fCt3OUEmOEQpR31uRnAyaSl1ckpwY2R6CgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS5kZXYuc3ZnIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMv
bGlnaHRncmF5L2ZvbnRzL3RpbnltY2UuZGV2LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uYzg3YjhjZDFhYWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkv
Zm9udHMvdGlueW1jZS5kZXYuc3ZnCkBAIC0wLDAgKzEsMTUzIEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQg
U1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcx
MS5kdGQiID4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzxtZXRh
ZGF0YT4KK1RoaXMgaXMgYSBjdXN0b20gU1ZHIGZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uCis8
aWNvbnNldCBncmlkPSIxNiI+PC9pY29uc2V0PgorPC9tZXRhZGF0YT4KKzxkZWZzPgorPGZvbnQg
aWQ9InRpbnltY2UiIGhvcml6LWFkdi14PSI1MTIiID4KKzxmb250LWZhY2UgdW5pdHMtcGVyLWVt
PSI1MTIiIGFzY2VudD0iNDgwIiBkZXNjZW50PSItMzIiIC8+Cis8bWlzc2luZy1nbHlwaCBob3Jp
ei1hZHYteD0iNTEyIiAvPgorPGdseXBoIGNsYXNzPSJoaWRkZW4iIHVuaWNvZGU9IiYjeGYwMDA7
IiBkPSJNMCw0ODBMIDUxMiAtMzJMMCAtMzIgeiIgaG9yaXotYWR2LXg9IjAiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0gNDY0LDQxNkwgMjU2LDQxNkwgMjQwLDQ0OEwgNjQsNDQ4
TCAzMiwzODRMIDQ4MCwzODQgek0gNDUyLjE3LDEyOGwgMzcuNDMsMCBMIDUxMiwzNTJMMCwzNTIg
bCAzMi0zMjBsIDI0Mi4wNDAsMCBDIDIyMS41OTksNTAuODg4LCAxODQsMTAxLjEzMywgMTg0LDE2
MGMwLDc0Ljk5MSwgNjEuMDA5LDEzNiwgMTM2LDEzNgorCWMgNzQuOTksMCwgMTM2LTYxLjAwOSwg
MTM2LTEzNkMgNDU2LDE0OS4xNjEsIDQ1NC42ODksMTM4LjQyNSwgNDUyLjE3LDEyOHpNIDUwMS40
OTgsMjMuMTI1bC05OS4yNDgsODcuMzQ2QyA0MTAuOTc3LDEyNC45MzEsIDQxNiwxNDEuODc4LCA0
MTYsMTYwYzAsNTMuMDIwLTQyLjk4LDk2LTk2LDk2cy05Ni00Mi45OC05Ni05NgorCXMgNDIuOTgt
OTYsIDk2LTk2YyAxOC4xMjIsMCwgMzUuMDY5LDUuMDIzLCA0OS41MjksMTMuNzVsIDg3LjM0Ni05
OS4yNDhjIDExLjQ4MS0xMy4zMzksIDMxLjA1OS0xNC4wNzAsIDQzLjUwMy0xLjYyNmwgMi43NDYs
Mi43NDYKKwlDIDUxNS41NjgtNy45MzQsIDUxNC44MzcsMTEuNjQ0LCA1MDEuNDk4LDIzLjEyNXog
TSAzMjAsOThjLTM0LjI0MiwwLTYyLDI3Ljc1OC02Miw2MnMgMjcuNzU4LDYyLCA2Miw2MnMgNjIt
MjcuNzU4LCA2Mi02MgorCVMgMzU0LjI0Miw5OCwgMzIwLDk4eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDMyOyIgZD0iTSAzODQsMzUyTCA0MTYsMzUyTCA0MTYsMzIwTCAzODQsMzIwek0gMzIw
LDI4OEwgMzUyLDI4OEwgMzUyLDI1NkwgMzIwLDI1NnpNIDMyMCwyMjRMIDM1MiwyMjRMIDM1Miwx
OTJMIDMyMCwxOTJ6TSAzMjAsMTYwTCAzNTIsMTYwTCAzNTIsMTI4TCAzMjAsMTI4ek0gMjU2LDIy
NEwgMjg4LDIyNEwgMjg4LDE5MkwgMjU2LDE5MnpNIDI1NiwxNjBMIDI4OCwxNjBMIDI4OCwxMjhM
IDI1NiwxMjh6TSAxOTIsMTYwTCAyMjQsMTYwTCAyMjQsMTI4TCAxOTIsMTI4ek0gMzg0LDI4OEwg
NDE2LDI4OEwgNDE2LDI1NkwgMzg0LDI1NnpNIDM4NCwyMjRMIDQxNiwyMjRMIDQxNiwxOTJMIDM4
NCwxOTJ6TSAzODQsMTYwTCA0MTYsMTYwTCA0MTYsMTI4TCAzODQsMTI4ek0gMzg0LDk2TCA0MTYs
OTZMIDQxNiw2NEwgMzg0LDY0ek0gMzIwLDk2TCAzNTIsOTZMIDM1Miw2NEwgMzIwLDY0ek0gMjU2
LDk2TCAyODgsOTZMIDI4OCw2NEwgMjU2LDY0ek0gMTkyLDk2TCAyMjQsOTZMIDIyNCw2NEwgMTky
LDY0ek0gMTI4LDk2TCAxNjAsOTZMIDE2MCw2NEwgMTI4LDY0eiIgZGF0YS10YWdzPSJyZXNpemUs
IGRvdHMiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMTsiIGQ9Ik0gNDE2LDM1MmwtOTYsMCBM
IDMyMCwzODQgTCAyMjQsNDgwTDAsNDgwIGwwLTM4NCBsIDE5MiwwIGwwLTEyOCBsIDMyMCwwIEwg
NTEyLDI1NiBMIDQxNiwzNTJ6IE0gNDE2LDMwNi43NDVMIDQ2Ni43NDUsMjU2TCA0MTYsMjU2IEwg
NDE2LDMwNi43NDUgeiBNIDIyNCw0MzQuNzQ1TCAyNzQuNzQ1LDM4NEwgMjI0LDM4NCAKKwlMIDIy
NCw0MzQuNzQ1IHogTSAzMiw0NDhsIDE2MCwwIGwwLTk2IGwgOTYsMCBsMC0yMjQgTCAzMiwxMjgg
TCAzMiw0NDggeiBNIDQ4MCwwTCAyMjQsMCBsMCw5NiBsIDk2LDAgTCAzMjAsMzIwIGwgNjQsMCBs
MC05NiBsIDk2LDAgTCA0ODAsMCB6IiBkYXRhLXRhZ3M9ImNvcHkiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAzMDsiIGQ9Ik0gMTI4LDQ0OCBMIDM4NCw0NDggTCAzODQsMzg0IEwgMzIwLDM4NCBM
IDMyMCwwIEwgMjU2LDAgTCAyNTYsMzg0IEwgMTkyLDM4NCBMIDE5MiwwIEwgMTI4LDAgTCAxMjgs
MjI0IEMgNjYuMTQ0LDIyNCAxNiwyNzQuMTQ0IDE2LDMzNiBDIDE2LDM5Ny44NTYgNjYuMTQ0LDQ0
OCAxMjgsNDQ4IFpNIDQ4MCwzMkwgMzUyLDE0NEwgNDgwLDI1NiB6IiBkYXRhLXRhZ3M9InJ0bCIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJmOyIgZD0iTSAyMjQsNDQ4IEwgNDgwLDQ0OCBMIDQ4
MCwzODQgTCA0MTYsMzg0IEwgNDE2LDAgTCAzNTIsMCBMIDM1MiwzODQgTCAyODgsMzg0IEwgMjg4
LDAgTCAyMjQsMCBMIDIyNCwyMjQgQyAxNjIuMTQ0LDIyNCAxMTIsMjc0LjE0NCAxMTIsMzM2IEMg
MTEyLDM5Ny44NTYgMTYyLjE0NCw0NDggMjI0LDQ0OCBaTSAzMiwyNTZMIDE2MCwxNDRMIDMyLDMy
IHoiIGRhdGEtdGFncz0ibHRyIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMmU7IiBkPSJNIDE5
Miw0NDggTCA0NDgsNDQ4IEwgNDQ4LDM4NCBMIDM4NCwzODQgTCAzODQsMCBMIDMyMCwwIEwgMzIw
LDM4NCBMIDI1NiwzODQgTCAyNTYsMCBMIDE5MiwwIEwgMTkyLDIyNCBDIDEzMC4xNDQsMjI0IDgw
LDI3NC4xNDQgODAsMzM2IEMgODAsMzk3Ljg1NiAxMzAuMTQ0LDQ0OCAxOTIsNDQ4IFoiIGRhdGEt
dGFncz0idmlzdWFsY2hhcnMiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyZDsiIGQ9Ik0gMzY1
LjcxLDIyMS40ODIgQyAzOTcuNjcsMTk3LjUxMyA0MTYsMTYzLjQzOSA0MTYsMTI4IEMgNDE2LDky
LjU2MSAzOTcuNjcsNTguNDg3IDM2NS43MSwzNC41MTggQyAzMzYuMDMxLDEyLjI1OSAyOTcuMDY4
LDAgMjU2LDAgQyAyMTQuOTMxLDAgMTc1Ljk2OSwxMi4yNTkgMTQ2LjI5LDM0LjUxOCBDIDExNC4z
Myw1OC40ODcgOTYsOTIuNTYxIDk2LDEyOCBMIDE2MCwxMjggQyAxNjAsOTMuMzA5IDIwMy45NjMs
NjQgMjU2LDY0IEMgMzA4LjAzNyw2NCAzNTIsOTMuMzA5IDM1MiwxMjggQyAzNTIsMTYyLjY5MSAz
MDguMDM3LDE5MiAyNTYsMTkyIEMgMjE0LjkzMSwxOTIgMTc1Ljk2OSwyMDQuMjU5IDE0Ni4yOSwy
MjYuNTE4IEMgMTE0LjMzLDI1MC40ODggOTYsMjg0LjU2MSA5NiwzMjAgQyA5NiwzNTUuNDM5IDEx
NC4zMywzODkuNTEyIDE0Ni4yOSw0MTMuNDgyIEMgMTc1Ljk2OSw0MzUuNzQxIDIxNC45MzEsNDQ4
IDI1Niw0NDggQyAyOTcuMDY4LDQ0OCAzMzYuMDMxLDQzNS43NDEgMzY1LjcxLDQxMy40ODIgQyAz
OTcuNjcsMzg5LjUxMiA0MTYsMzU1LjQzOSA0MTYsMzIwIEwgMzUyLDMyMCBDIDM1MiwzNTQuNjkx
IDMwOC4wMzcsMzg0IDI1NiwzODQgQyAyMDMuOTYzLDM4NCAxNjAsMzU0LjY5MSAxNjAsMzIwIEMg
MTYwLDI4NS4zMDkgMjAzLjk2MywyNTYgMjU2LDI1NiBDIDI5Ny4wNjgsMjU2IDMzNi4wMzEsMjQz
Ljc0MSAzNjUuNzEsMjIxLjQ4MiBaTTAsMjI0TCA1MTIsMjI0TCA1MTIsMTkyTDAsMTkyeiIgZGF0
YS10YWdzPSJzdHJpa2V0aHJvdWdoIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMmM7IiBkPSJN
IDM1Miw0NDggTCA0MTYsNDQ4IEwgNDE2LDI0MCBDIDQxNiwxNjAuNDcxIDM0NC4zNjYsOTYgMjU2
LDk2IEMgMTY3LjYzNSw5NiA5NiwxNjAuNDcxIDk2LDI0MCBMIDk2LDQ0OCBMIDE2MCw0NDggTCAx
NjAsMjQwIEMgMTYwLDIxOS45MTcgMTY5LjExOSwyMDAuNjQ4IDE4NS42NzcsMTg1Ljc0NyBDIDIw
NC4xMjUsMTY5LjE0NSAyMjkuMSwxNjAgMjU2LDE2MCBDIDI4Mi45LDE2MCAzMDcuODc1LDE2OS4x
NDUgMzI2LjMyMywxODUuNzQ3IEMgMzQyLjg4MSwyMDAuNjQ4IDM1MiwyMTkuOTE3IDM1MiwyNDAg
TCAzNTIsNDQ4IFpNIDk2LDY0TCA0MTYsNjRMIDQxNiwwTCA5NiwweiIgZGF0YS10YWdzPSJ1bmRl
cmxpbmUiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyYjsiIGQ9Ik0gNDQ4LDQ0OCBMIDQ0OCw0
MTYgTCAzODQsNDE2IEwgMjI0LDMyIEwgMjg4LDMyIEwgMjg4LDAgTCA2NCwwIEwgNjQsMzIgTCAx
MjgsMzIgTCAyODgsNDE2IEwgMjI0LDQxNiBMIDIyNCw0NDggWiIgZGF0YS10YWdzPSJpdGFsaWMi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyYTsiIGQ9Ik0gMzUzLjk0LDIzNy42NzRDIDM3Mi42
ODksMjU5Ljk0NSwgMzg0LDI4OC42NzgsIDM4NCwzMjBjMCw3MC41OC01Ny40MjEsMTI4LTEyOCwx
MjhsLTY0LDAgbC02NCwwIEwgOTYsNDQ4IGwwLTQ0OCBsIDMyLDAgbCA2NCwwIGwgOTYsMCAKKwlj
IDcwLjU3OSwwLCAxMjgsNTcuNDIxLCAxMjgsMTI4QyA0MTYsMTc0LjQ3OCwgMzkxLjEwMSwyMTUu
MjQ4LCAzNTMuOTQsMjM3LjY3NHogTSAxOTIsMzg0bCA1MC43NSwwIGMgMjcuOTg0LDAsIDUwLjc1
LTI4LjcxLCA1MC43NS02NAorCXMtMjIuNzY2LTY0LTUwLjc1LTY0TCAxOTIsMjU2IEwgMTkyLDM4
NCB6IE0gMjcxLjUsNjRMIDE5Miw2NCBMIDE5MiwxOTIgbCA3OS41LDAgYyAyOS4yMjUsMCwgNTMt
MjguNzEsIDUzLTY0UyAzMDAuNzI1LDY0LCAyNzEuNSw2NHoiIGRhdGEtdGFncz0iYm9sZDAiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyOTsiIGQ9Ik0gMTkyLDY0TCAyODgsNjRMIDI4OC0zMkwg
MTkyLTMyek0gNDAwLDQ0OCBDIDQyNi41MSw0NDggNDQ4LDQyNi41MSA0NDgsNDAwIEwgNDQ4LDI1
NiBMIDI4OCwxNjAgTCAyODgsOTYgTCAxOTIsOTYgTCAxOTIsMTkyIEwgMzUyLDI4OCBMIDM1Miwz
NTIgTCA5NiwzNTIgTCA5Niw0NDggTCA0MDAsNDQ4IFoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAyODsiIGQ9Ik0gMjg4LDQ0OCBDIDQxMS43MTIsNDQ4IDUxMiwzNDcuNzEyIDUxMiwyMjQgQyA1
MTIsMTAwLjI4OCA0MTEuNzEyLDAgMjg4LDAgTCAyODgsNDggQyAzMzUuMDEyLDQ4IDM3OS4yMDks
NjYuMzA3IDQxMi40NTEsOTkuNTQ5IEMgNDQ1LjY5MywxMzIuNzkxIDQ2NCwxNzYuOTg4IDQ2NCwy
MjQgQyA0NjQsMjcxLjAxMSA0NDUuNjkzLDMxNS4yMDkgNDEyLjQ1MSwzNDguNDUxIEMgMzc5LjIw
OSwzODEuNjkzIDMzNS4wMTIsNDAwIDI4OCw0MDAgQyAyNDAuOTg5LDQwMCAxOTYuNzkxLDM4MS42
OTMgMTYzLjU0OSwzNDguNDUxIEMgMTM3Ljk3OSwzMjIuODgyIDEyMS4yNTgsMjkwLjgyOCAxMTQu
ODk2LDI1NiBMIDIwOCwyNTYgTCA5NiwxMjggTCAtMTYsMjU2IEwgNjYuMjg1LDI1NiBDIDgxLjgx
NSwzNjQuNTUxIDE3NS4xNTQsNDQ4IDI4OCw0NDggWk0gMzg0LDI1NiBMIDM4NCwxOTIgTCAyNTYs
MTkyIEwgMjU2LDM1MiBMIDMyMCwzNTIgTCAzMjAsMjU2IFoiIGRhdGEtdGFncz0icmVzdG9yZWRy
YWZ0IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjc7IiBkPSJNMCwyMjRMIDY0LDIyNEwgNjQs
MTkyTDAsMTkyek0gOTYsMjI0TCAxOTIsMjI0TCAxOTIsMTkyTCA5NiwxOTJ6TSAyMjQsMjI0TCAy
ODgsMjI0TCAyODgsMTkyTCAyMjQsMTkyek0gMzIwLDIyNEwgNDE2LDIyNEwgNDE2LDE5MkwgMzIw
LDE5MnpNIDQ0OCwyMjRMIDUxMiwyMjRMIDUxMiwxOTJMIDQ0OCwxOTJ6TSA0NDAsNDgwIEwgNDQ4
LDI1NiBMIDY0LDI1NiBMIDcyLDQ4MCBMIDg4LDQ4MCBMIDk2LDI4OCBMIDQxNiwyODggTCA0MjQs
NDgwIFpNIDcyLTMyIEwgNjQsMTYwIEwgNDQ4LDE2MCBMIDQ0MC0zMiBMIDQyNC0zMiBMIDQxNiwx
MjggTCA5NiwxMjggTCA4OC0zMiBaIiBkYXRhLXRhZ3M9InBhZ2VicmVhayIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDI2OyIgZD0iTSAxOTIsMzg0TCAyNTYsMzg0TCAyNTYsMzUyTCAxOTIsMzUy
ek0gMjg4LDM4NEwgMzUyLDM4NEwgMzUyLDM1MkwgMjg4LDM1MnpNIDQ0OCwzODQgTCA0NDgsMjU2
IEwgMzUyLDI1NiBMIDM1MiwyODggTCA0MTYsMjg4IEwgNDE2LDM1MiBMIDM4NCwzNTIgTCAzODQs
Mzg0IFpNIDE2MCwyODhMIDIyNCwyODhMIDIyNCwyNTZMIDE2MCwyNTZ6TSAyNTYsMjg4TCAzMjAs
Mjg4TCAzMjAsMjU2TCAyNTYsMjU2ek0gOTYsMzUyIEwgOTYsMjg4IEwgMTI4LDI4OCBMIDEyOCwy
NTYgTCA2NCwyNTYgTCA2NCwzODQgTCAxNjAsMzg0IEwgMTYwLDM1MiBaTSAxOTIsMTkyTCAyNTYs
MTkyTCAyNTYsMTYwTCAxOTIsMTYwek0gMjg4LDE5MkwgMzUyLDE5MkwgMzUyLDE2MEwgMjg4LDE2
MHpNIDQ0OCwxOTIgTCA0NDgsNjQgTCAzNTIsNjQgTCAzNTIsOTYgTCA0MTYsOTYgTCA0MTYsMTYw
IEwgMzg0LDE2MCBMIDM4NCwxOTIgWk0gMTYwLDk2TCAyMjQsOTZMIDIyNCw2NEwgMTYwLDY0ek0g
MjU2LDk2TCAzMjAsOTZMIDMyMCw2NEwgMjU2LDY0ek0gOTYsMTYwIEwgOTYsOTYgTCAxMjgsOTYg
TCAxMjgsNjQgTCA2NCw2NCBMIDY0LDE5MiBMIDE2MCwxOTIgTCAxNjAsMTYwIFpNIDQ4MCw0NDgg
TCAzMiw0NDggTCAzMiwwIEwgNDgwLDAgTCA0ODAsNDQ4IFogTSA1MTIsNDgwIEwgNTEyLDQ4MCBM
IDUxMi0zMiBMIDAtMzIgTCAwLDQ4MCBMIDUxMiw0ODAgWiIgZGF0YS10YWdzPSJ0ZW1wbGF0ZSIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTSAyMjQsMTkyIEwgMTI4LDE5MiBMIDEy
OCwyNTYgTCAyMjQsMjU2IEwgMjI0LDM1MiBMIDI4OCwzNTIgTCAyODgsMjU2IEwgMzg0LDI1NiBM
IDM4NCwxOTIgTCAyODgsMTkyIEwgMjg4LDk2IEwgMjI0LDk2IFpNIDUxMiwxNjAgTCA1MTItMzIg
TCAwLTMyIEwgMCwxNjAgTCA2NCwxNjAgTCA2NCwzMiBMIDQ0OCwzMiBMIDQ0OCwxNjAgWiIgZGF0
YS10YWdzPSJub25icmVha2luZyIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDI0OyIgZD0iTSA2
NCwzNTJsIDY0LDAgbDAtOTYgbCAzMiwwIEwgMTYwLDQ0OCBjMCwxNy42LTE0LjQsMzItMzIsMzJM
IDY0LDQ4MCBDIDQ2LjQsNDgwLCAzMiw0NjUuNiwgMzIsNDQ4bDAtMTkyIGwgMzIsMCBMIDY0LDM1
MiB6IE0gNjQsNDQ4bCA2NCwwIGwwLTY0IEwgNjQsMzg0IEwgNjQsNDQ4IHogTSA0ODAsNDQ4TCA0
ODAsNDgwIGwtOTYsMCAKKwljLTE3LjYwMSwwLTMyLTE0LjQtMzItMzJsMC0xNjAgYzAtMTcuNiwg
MTQuMzk5LTMyLCAzMi0zMmwgOTYsMCBsMCwzMiBsLTk2LDAgTCAzODQsNDQ4IEwgNDgwLDQ0OCB6
IE0gMzIwLDQwMEwgMzIwLDQ0OCBjMCwxNy42LTE0LjQsMzItMzIsMzJsLTk2LDAgbDAtMjI0IGwg
OTYsMCAKKwljIDE3LjYsMCwgMzIsMTQuNCwgMzIsMzJsMCw0OCBjMCwxNy42LTQuNCwzMi0yMiwz
MkMgMzE1LjYsMzY4LCAzMjAsMzgyLjQsIDMyMCw0MDB6IE0gMjg4LDI4OGwtNjQsMCBsMCw2NCBs
IDY0LDAgTCAyODgsMjg4IHogTSAyODgsMzg0bC02NCwwIEwgMjI0LDQ0OCBsIDY0LDAgTCAyODgs
Mzg0IHpNIDQxNiwxOTIgTCAyMDgtMzIgTCA5NiwxMTIgTCAxMzcsMTQ3IEwgMjA4LDczIEwgMzg0
LDIyNCBaIiBkYXRhLXRhZ3M9InNwZWxsY2hlY2tlciIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDIzOyIgZD0iTSA1MTIsNDgwIEwgNTEyLDI4OCBMIDQ0Mi44NywzNTcuMTMgTCAzMzYuODcsMjUx
LjEzIEwgMjgzLjEzLDMwNC44NyBMIDM4OS4xMyw0MTAuODcgTCAzMjAsNDgwIFpNIDEyMi44Nyw0
MTAuODcgTCAyMjguODcsMzA0Ljg3IEwgMTc1LjEzLDI1MS4xMyBMIDY5LjEzLDM1Ny4xMyBMIDAs
Mjg4IEwgMCw0ODAgTCAxOTIsNDgwIFpNIDQ0Mi44Nyw5MC44NyBMIDUxMiwxNjAgTCA1MTItMzIg
TCAzMjAtMzIgTCAzODkuMTMsMzcuMTMgTCAyODMuMTMsMTQzLjEzIEwgMzM2Ljg3LDE5Ni44NyBa
TSAyMjguODcsMTQzLjEzIEwgMTIyLjg3LDM3LjEzIEwgMTkyLTMyIEwgMC0zMiBMIDAsMTYwIEwg
NjkuMTMsOTAuODcgTCAxNzUuMTMsMTk2Ljg3IFoiIGRhdGEtdGFncz0iZnVsbHNjcmVlbiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDIyOyIgZD0iTSAxMjgsNDQ4TCAzODQsNDQ4TCAzODQsMzg0
TCAxMjgsMzg0ek0gNDgwLDM1MkwgMzIsMzUyIEMgMTQuNCwzNTIsMCwzMzcuNiwwLDMyMGwwLTE2
MCBjMC0xNy42LCAxNC4zOTgtMzIsIDMyLTMybCA5NiwwIGwwLTEyOCBsIDI1NiwwIEwgMzg0LDEy
OCBsIDk2LDAgYyAxNy42LDAsIDMyLDE0LjQsIDMyLDMyTCA1MTIsMzIwIAorCQlDIDUxMiwzMzcu
NiwgNDk3LjYsMzUyLCA0ODAsMzUyeiBNIDM1MiwzMkwgMTYwLDMyIEwgMTYwLDE5MiBsIDE5Miww
IEwgMzUyLDMyIHogTSA0ODcuMiwzMDRjMC0xMi44MTMtMTAuMzg3LTIzLjItMjMuMTk5LTIzLjIK
KwkJYy0xMi44MTMsMC0yMy4yMDEsMTAuMzg3LTIzLjIwMSwyMy4ycyAxMC4zODgsMjMuMiwgMjMu
MjAxLDIzLjJDIDQ3Ni44MTQsMzI3LjIsIDQ4Ny4yLDMxNi44MTMsIDQ4Ny4yLDMwNHoiIGRhdGEt
dGFncz0icHJpbnQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMTsiIGQ9Ik0gMjU2LDQ4MEMg
MTE0LjYxNSw0ODAsMCwzNjUuMzg2LDAsMjI0YzAtMTQxLjM4NSwgMTE0LjYxNC0yNTYsIDI1Ni0y
NTZjIDE0MS4zODUsMCwgMjU2LDExNC42MTUsIDI1NiwyNTYKKwlDIDUxMiwzNjUuMzg2LCAzOTcu
Mzg1LDQ4MCwgMjU2LDQ4MHogTSAyNTYsOGMtMTE5LjI5MywwLTIxNiw5Ni43MDYtMjE2LDIxNmMw
LDExOS4yOTMsIDk2LjcwNywyMTYsIDIxNiwyMTZjIDExOS4yOTUsMCwgMjE2LTk2LjcwNywgMjE2
LTIxNgorCUMgNDcyLDEwNC43MDYsIDM3NS4yOTUsOCwgMjU2LDh6IE0gMTkyLDMyMGMwLTE3LjY3
My0xNC4zMjctMzItMzItMzJzLTMyLDE0LjMyNy0zMiwzMnMgMTQuMzI3LDMyLCAzMiwzMlMgMTky
LDMzNy42NzMsIDE5MiwzMjB6CisJIE0gMzg0LDMyMGMwLTE3LjY3My0xNC4zMjYtMzItMzItMzJz
LTMyLDE0LjMyNy0zMiwzMnMgMTQuMzI2LDMyLCAzMiwzMlMgMzg0LDMzNy42NzMsIDM4NCwzMjB6
TSAyNTYsMTU0IEMgMzI2LjUzNywxNTQgMzg3LjM0NCwxODIuNzY2IDQxNS4yMzEsMjE1LjU5NiBD
IDQwNC43OTUsMTI5Ljk4NiAzMzcuMDg3LDY0IDI1Niw2NCBDIDE3NC45NDEsNjQgMTA3LjI1MSwx
MzAuMDEzIDk2Ljc3OCwyMTUuNTg0IEMgMTI0LjY3MSwxODIuNzYxIDE4NS40NzEsMTU0IDI1Niwx
NTQgWiIgZGF0YS10YWdzPSJlbW90aWNvbnMiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMDsi
IGQ9Ik0gMzUyLDMyIEwgNDgwLDMyIEwgNTEyLDk2IEwgNTEyLTMyIEwgMzIwLTMyIEwgMzIwLDc1
LjEwNyBDIDM4NS41NTYsMTAzLjM0OSA0MzIsMTczLjY4OCA0MzIsMjU2IEMgNDMyLDM2My4yMTYg
MzUzLjIwMSw0NDcuMTMzIDI1Niw0NDcuMTMzIEMgMTU4Ljc5Nyw0NDcuMTMzIDgwLDM2My4yMTcg
ODAsMjU2IEMgODAsMTczLjY4OCAxMjYuNDQzLDEwMy4zNDkgMTkyLDc1LjEwNyBMIDE5Mi0zMiBM
IDAtMzIgTCAwLDk2IEwgMzIsMzIgTCAxNjAsMzIgTCAxNjAsNDguMjk1IEMgNjYuMTg1LDgxLjUy
NSAwLDE2MS45OTYgMCwyNTYgQyAwLDM3OS43MTIgMTE0LjYxNSw0ODAgMjU2LDQ4MCBDIDM5Ny4z
ODUsNDgwIDUxMiwzNzkuNzEyIDUxMiwyNTYgQyA1MTIsMTYxLjk5NiA0NDUuODE1LDgxLjUyNSAz
NTIsNDguMjk1IEwgMzUyLDMyIFoiIGRhdGEtdGFncz0iY2hhcm1hcCIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDFmOyIgZD0iTSAzODQsMzc3IEwgMzg0LDM1MiBMIDQ0OCwzNTIgTCA0NDgsMzIw
IEwgMzUyLDMyMCBMIDM1MiwzOTMgTCA0MTYsNDIzIEwgNDE2LDQ0OCBMIDM1Miw0NDggTCAzNTIs
NDgwIEwgNDQ4LDQ4MCBMIDQ0OCw0MDcgWk0gMzM4LDM1MkwgMjcwLDM1MkwgMTc2LDI1OEwgODIs
MzUyTCAxNCwzNTJMIDE0MiwyMjRMIDE0LDk2TCA4Miw5NkwgMTc2LDE5MEwgMjcwLDk2TCAzMzgs
OTZMIDIxMCwyMjQgeiIgZGF0YS10YWdzPSJzdXAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAx
ZTsiIGQ9Ik0gMzg0LDI1IEwgMzg0LDAgTCA0NDgsMCBMIDQ0OC0zMiBMIDM1Mi0zMiBMIDM1Miw0
MSBMIDQxNiw3MSBMIDQxNiw5NiBMIDM1Miw5NiBMIDM1MiwxMjggTCA0NDgsMTI4IEwgNDQ4LDU1
IFpNIDMzOCwzNTJMIDI3MCwzNTJMIDE3NiwyNThMIDgyLDM1MkwgMTQsMzUyTCAxNDIsMjI0TCAx
NCw5NkwgODIsOTZMIDE3NiwxOTBMIDI3MCw5NkwgMzM4LDk2TCAyMTAsMjI0IHoiIGRhdGEtdGFn
cz0ic3ViIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWQ7IiBkPSJNMCwzMkwgMjg4LDMyTCAy
ODgtMzJMMC0zMnpNIDk2LDQ4MEwgNDQ4LDQ4MEwgNDQ4LDQxNkwgOTYsNDE2ek0gMTM4LjY5NCw2
NCBMIDI0MS4wMzgsNDU2LjA4MiBMIDMwMi45NjMsNDM5LjkxOCBMIDIwNC44MzgsNjQgWk0gNDY0
Ljg4Ny0zMiBMIDQwMCwzMi44ODcgTCAzMzUuMTEzLTMyIEwgMzA0LTAuODg3IEwgMzY4Ljg4Nyw2
NCBMIDMwNCwxMjguODg3IEwgMzM1LjExMywxNjAgTCA0MDAsOTUuMTEzIEwgNDY0Ljg4NywxNjAg
TCA0OTYsMTI4Ljg4NyBMIDQzMS4xMTMsNjQgTCA0OTYtMC44ODcgWiIgZGF0YS10YWdzPSJyZW1v
dmVmb3JtYXQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxYzsiIGQ9Ik0wLDI1NkwgNTEyLDI1
NkwgNTEyLDE5MkwwLDE5MnoiIGRhdGEtdGFncz0iaHIiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAxYjsiIGQ9Ik0wLDQ0OGwwLTQ0OCBsIDUxMiwwIEwgNTEyLDQ0OCBMMCw0NDggeiBNIDE5Miwx
NjBsMCw5NiBsIDEyOCwwIGwwLTk2IEwgMTkyLDE2MCB6IE0gMzIwLDEyOGwwLTk2IEwgMTkyLDMy
IGwwLDk2IEwgMzIwLDEyOCB6IE0gMzIwLDM4NGwwLTk2IEwgMTkyLDI4OCBMIDE5MiwzODQgTCAz
MjAsMzg0IHogTSAxNjAsMzg0bDAtOTYgTCAzMiwyODggTCAzMiwzODQgTCAxNjAsMzg0IHoKKwkg
TSAzMiwyNTZsIDEyOCwwIGwwLTk2IEwgMzIsMTYwIEwgMzIsMjU2IHogTSAzNTIsMjU2bCAxMjgs
MCBsMC05NiBMIDM1MiwxNjAgTCAzNTIsMjU2IHogTSAzNTIsMjg4TCAzNTIsMzg0IGwgMTI4LDAg
bDAtOTYgTCAzNTIsMjg4IHogTSAzMiwxMjhsIDEyOCwwIGwwLTk2IEwgMzIsMzIgTCAzMiwxMjgg
eiBNIDM1MiwzMmwwLDk2IGwgMTI4LDAgbDAtOTYgTCAzNTIsMzIgeiIgZGF0YS10YWdzPSJ0YWJs
ZSIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDFhOyIgZD0iTSAxNjEuMDA5LDY0bCAyOC44LDk2
bCAxMzIuMzgyLDAgbCAyOC44LTk2bCA1Ni44MTYsMCBMIDMxMS44MDksMzg0TCAyMDAuMTkxLDM4
NCBsLTk2LTMyMEwgMTYxLjAwOSw2NCB6IE0gMjM3LjgwOSwzMjBsIDM2LjM4MiwwIGwgMjguOC05
NmwtOTMuOTgyLDAgCisJTCAyMzcuODA5LDMyMHoiIGRhdGEtdGFncz0iZm9yZWNvbG9yIiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMTk7IiBkPSJNIDI1NiwzMjBDIDE1MS4zMTYsMzIwLCA1OC4z
NzgsMjY5LjcyMiwwLDE5MmMgNTguMzc4LTc3LjcyMywgMTUxLjMxNi0xMjgsIDI1Ni0xMjhjIDEw
NC42ODQsMCwgMTk3LjYyMiw1MC4yNzcsIDI1NiwxMjgKKwlDIDQ1My42MjIsMjY5LjcyMiwgMzYw
LjY4NCwzMjAsIDI1NiwzMjB6IE0gMjI0LDI1NmMgMTcuNjczLDAsIDMyLTE0LjMyNywgMzItMzJz
LTE0LjMyNy0zMi0zMi0zMnMtMzIsMTQuMzI3LTMyLDMyUyAyMDYuMzI3LDI1NiwgMjI0LDI1NnoK
KwkgTSAzODYuODA4LDEyNy4zNTJjLTE5LjgyNC0xMC4xMjktNDAuODI2LTE3LjkzMS02Mi40MjMt
MjMuMTg4QyAzMDIuMTQxLDk4Ljc0NiwgMjc5LjEzNCw5NiwgMjU2LDk2CisJYy0yMy4xMzMsMC00
Ni4xNDEsMi43NDYtNjguMzg0LDguMTYyYy0yMS41OTcsNS4yNTktNDIuNTk5LDEzLjA2MS02Mi40
MjMsMjMuMTg4Yy0zMS41MSwxNi4xMDEtNjAuMTExLDM4LjIwNS04My44Miw2NC42NDkKKwljIDIz
LjcwOSwyNi40NDQsIDUyLjMxLDQ4LjU1LCA4My44Miw2NC42NDljIDE2LjE2OCw4LjI2MSwgMzMu
MTIxLDE0Ljk3MywgNTAuNTQxLDIwLjAyMEMgMTY1Ljc5LDI2MS41NDcsIDE2MCwyNDMuNDUxLCAx
NjAsMjI0CisJYzAtNTMuMDIwLCA0Mi45ODEtOTYsIDk2LTk2YyA1My4wMTksMCwgOTYsNDIuOTgs
IDk2LDk2YzAsMTkuNDUxLTUuNzkxLDM3LjU0Ny0xNS43MzMsNTIuNjdjIDE3LjQxOS01LjA0OCwg
MzQuMzcyLTExLjc2LCA1MC41NDEtMjAuMDIxCisJYyAzMS41MTEtMTYuMDk5LCA2MC4xMDktMzgu
MjA0LCA4My44MTktNjQuNjQ5QyA0NDYuOTE3LDE2NS41NTcsIDQxOC4zMTgsMTQzLjQ1LCAzODYu
ODA4LDEyNy4zNTJ6IE0gNDMwLjQ1OSwzNTguMTM5CisJQyAzNzYuMDk5LDM4NS45MTYsIDMxNy40
MDMsNDAwLCAyNTYsNDAwYy02MS40MDMsMC0xMjAuMDk5LTE0LjA4NC0xNzQuNDU5LTQxLjg2MUMg
NTIuMTU1LDM0My4xMjMsIDI0LjY3NSwzMjQuMTg3LDAsMzAyLjEwMWwwLTU0LjYwMyAKKwljIDI3
LjY2OSwyOS4yODMsIDYwLjM0Nyw1My44NzcsIDk2LjA5Nyw3Mi4xNDVDIDE0NS45MDcsMzQ1LjA5
NSwgMTk5LjcwNiwzNTgsIDI1NiwzNThzIDExMC4wOTMtMTIuOTA1LCAxNTkuOTAyLTM4LjM1OAor
CWMgMzUuNzUxLTE4LjI2OCwgNjguNDI5LTQyLjg2MiwgOTYuMDk4LTcyLjE0NUwgNTEyLDMwMi4x
IEMgNDg3LjMyNSwzMjQuMTg3LCA0NTkuODQ2LDM0My4xMjMsIDQzMC40NTksMzU4LjEzOXoiIGRh
dGEtdGFncz0icHJldmlldyIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE4OyIgZD0iTSAyNTYs
Mzg0QyAxNDkuOTYyLDM4NCwgNjQsMjk4LjAzOSwgNjQsMTkycyA4NS45NjEtMTkyLCAxOTItMTky
YyAxMDYuMDM3LDAsIDE5Miw4NS45NjEsIDE5MiwxOTJTIDM2Mi4wMzcsMzg0LCAyNTYsMzg0egor
CQkgTSAzNTcuODIyLDkwLjE3N0MgMzMwLjYyNiw2Mi45NzksIDI5NC40NjQsNDgsIDI1Niw0OHMt
NzQuNjI1LDE0Ljk3OS0xMDEuODIzLDQyLjE3N0MgMTI2Ljk3OSwxMTcuMzc0LCAxMTIsMTUzLjUz
NiwgMTEyLDE5MgorCQlzIDE0Ljk3OSw3NC42MjUsIDQyLjE3NywxMDEuODIzQyAxODEuMzc1LDMy
MS4wMjEsIDIxNy41MzYsMzM2LCAyNTYsMzM2cyA3NC42MjYtMTQuOTc5LCAxMDEuODIxLTQyLjE3
NworCQlDIDM4NS4wMjIsMjY2LjYyNSwgNDAwLDIzMC40NjQsIDQwMCwxOTJTIDM4NS4wMjEsMTE3
LjM3NCwgMzU3LjgyMiw5MC4xNzd6TSAxNjIuOTY1LDM3OC4wNjlsLTIxLjQ3LDQyLjkzOUMgOTIu
MDU4LDM5Ni4yNCwgNTEuNzYsMzU1Ljk0MiwgMjYuOTkyLDMwNi41MDRsIDQyLjkzOC0yMS40Nwor
CQlDIDkwLjA1NCwzMjUuMjAyLCAxMjIuNzk2LDM1Ny45NDUsIDE2Mi45NjUsMzc4LjA2OXpNIDQ0
Mi4wNjcsMjg1LjAzNWwgNDIuOTM5LDIxLjQ2OUMgNDYwLjI0LDM1NS45NDIsIDQxOS45NDMsMzk2
LjI0LCAzNzAuNTA0LDQyMS4wMDhsLTIxLjQ3Mi00Mi45MzkKKwkJQyAzODkuMjAxLDM1Ny45NDUs
IDQyMS45NDQsMzI1LjIwMywgNDQyLjA2NywyODUuMDM1ek0gMjU2LDI4OGwtMzIsMCBsMC05NiBj
MC01LjA1NSwgMi4zNS05LjU1NSwgNi4wMTEtMTIuNDg2bC0wLjAwNi0wLjAwOGwgODAtNjRsIDE5
Ljk4OCwyNC45ODhMIDI1NiwxOTkuNjg5TCAyNTYsMjg4IHoiIGRhdGEtdGFncz0iaW5zZXJ0dGlt
ZSIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE3OyIgZD0iTSAxNjAsMzUyTCAzMiwyMjRMIDE2
MCw5NkwgMjI0LDk2TCA5NiwyMjRMIDIyNCwzNTIgCXpNIDM1MiwzNTJMIDI4OCwzNTJMIDQxNiwy
MjRMIDI4OCw5NkwgMzUyLDk2TCA0ODAsMjI0IAl6IiBkYXRhLXRhZ3M9ImNvZGUiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAxNjsiIGQ9Ik0gMjI0LDEyOEwgMjg4LDEyOEwgMjg4LDY0TCAyMjQs
NjR6TSAzNTIsMzUyIEMgMzY5LjY3MywzNTIgMzg0LDMzNy42NzMgMzg0LDMyMCBMIDM4NCwyMjQg
TCAyODgsMTYwIEwgMjI0LDE2MCBMIDIyNCwxOTIgTCAzMjAsMjU2IEwgMzIwLDI4OCBMIDE2MCwy
ODggTCAxNjAsMzUyIEwgMzUyLDM1MiBaTSAyNTYsNDMyIEMgMjAwLjQ0MSw0MzIgMTQ4LjIwOCw0
MTAuMzY0IDEwOC45MjIsMzcxLjA3OCBDIDY5LjYzNiwzMzEuNzkyIDQ4LDI3OS41NTkgNDgsMjI0
IEMgNDgsMTY4LjQ0MSA2OS42MzYsMTE2LjIwOCAxMDguOTIyLDc2LjkyMiBDIDE0OC4yMDgsMzcu
NjM2IDIwMC40NDEsMTYgMjU2LDE2IEMgMzExLjU1OSwxNiAzNjMuNzkyLDM3LjYzNiA0MDMuMDc4
LDc2LjkyMiBDIDQ0Mi4zNjQsMTE2LjIwOCA0NjQsMTY4LjQ0MSA0NjQsMjI0IEMgNDY0LDI3OS41
NTkgNDQyLjM2NCwzMzEuNzkyIDQwMy4wNzgsMzcxLjA3OCBDIDM2My43OTIsNDEwLjM2NCAzMTEu
NTU5LDQzMiAyNTYsNDMyIFogTSAyNTYsNDgwIEwgMjU2LDQ4MCBDIDM5Ny4zODUsNDgwIDUxMiwz
NjUuMzg1IDUxMiwyMjQgQyA1MTIsODIuNjE1IDM5Ny4zODUtMzIgMjU2LTMyIEMgMTE0LjYxNS0z
MiAwLDgyLjYxNSAwLDIyNCBDIDAsMzY1LjM4NSAxMTQuNjE1LDQ4MCAyNTYsNDgwIFoiIGRhdGEt
dGFncz0iaGVscCIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE1OyIgZD0iTTAsNDE2bDAtMzg0
IGwgNTEyLDAgTCA1MTIsNDE2IEwwLDQxNiB6IE0gOTYsNjRMIDMyLDY0IGwwLDY0IGwgNjQsMCBM
IDk2LDY0IHogTSA5NiwxOTJMIDMyLDE5MiBsMCw2NCBsIDY0LDAgTCA5NiwxOTIgeiBNIDk2LDMy
MEwgMzIsMzIwIEwgMzIsMzg0IGwgNjQsMCBMIDk2LDMyMCB6IE0gMzg0LDY0TCAxMjgsNjQgTCAx
MjgsMzg0IGwgMjU2LDAgTCAzODQsNjQgegorCQkgTSA0ODAsNjRsLTY0LDAgbDAsNjQgbCA2NCww
IEwgNDgwLDY0IHogTSA0ODAsMTkybC02NCwwIGwwLDY0IGwgNjQsMCBMIDQ4MCwxOTIgeiBNIDQ4
MCwzMjBsLTY0LDAgTCA0MTYsMzg0IGwgNjQsMCBMIDQ4MCwzMjAgek0gMTkyLDMyMEwgMTkyLDEy
OEwgMzIwLDIyNCAJeiIgZGF0YS10YWdzPSJtZWRpYSIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDE0OyIgZD0iTTAsNDE2bDAtNDE2IGwgNTEyLDAgTCA1MTIsNDE2IEwwLDQxNiB6IE0gNDgwLDMy
TCAzMiwzMiBMIDMyLDM4NCBsIDQ0OCwwIEwgNDgwLDMyIHpNIDM1MiwzMDRBNDgsNDggMzA2MCAx
IDAgNDQ4LDMwNEE0OCw0OCAzMDYwIDEgMCAzNTIsMzA0ek0gNDQ4LDY0IEwgNjQsNjQgTCAxNjAs
MzIwIEwgMjg4LDE2MCBMIDM1MiwyMDggWiIgZGF0YS10YWdzPSJpbWFnZSIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDEzOyIgZD0iTSA5Niw0ODBsMC01MTIgbCAxNjAsMTYwbCAxNjAtMTYwTCA0
MTYsNDgwIEwgOTYsNDgwIHogTSAzODQsNDUuMjU1bC0xMjgsMTI4bC0xMjgtMTI4TCAxMjgsNDQ4
IGwgMjU2LDAgTCAzODQsNDUuMjU1IHoiIGRhdGEtdGFncz0iYW5jaG9yIiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMTI7IiBkPSJNIDIzOC40NDQsMTQyLjQ0M2MgMi4yOC00LjUyNCwgMy40OTUt
OS41NzksIDMuNDk1LTE0Ljg0OGMwLTguODA4LTMuMzcyLTE3LjAyOS05LjQ5Ni0yMy4xNTRsLTgx
LjY5LTgxLjY5CisJCWMtNi4xMjQtNi4xMjQtMTQuMzQ4LTkuNDk2LTIzLjE1NC05LjQ5NnMtMTcu
MDMwLDMuMzcyLTIzLjE1NCw5LjQ5NmwtNDkuNjksNDkuNjljLTYuMTI0LDYuMTI1LTkuNDk2LDE0
LjM0OC05LjQ5NiwyMy4xNTQKKwkJcyAzLjM3MiwxNy4wMzAsIDkuNDk2LDIzLjE1NGwgODEuNjks
ODEuNjkxYyA2LjEyNCw2LjEyMywgMTQuMzQ4LDkuNDk2LCAyMy4xNTQsOS40OTZjIDUuMjY5LDAs
IDEwLjMyMi0xLjIxNSwgMTQuODQ4LTMuNDk0bCAzMi42NjksMzIuNjY4CisJCWMtMTMuOTM1LDEw
LjcwNS0zMC43MiwxNi4wODAtNDcuNTE3LDE2LjA4MGMtMTkuOTkzLDAtMzkuOTg2LTcuNTgzLTU1
LjE1NC0yMi43NTFsLTgxLjY5LTgxLjY5MQorCQljLTMwLjMzNS0zMC4zMzUtMzAuMzM1LTc5Ljk3
NSwwLTExMC4zMDlsIDQ5LjY5LTQ5LjY5MWMgMTUuMTY3LTE1LjE2NiwgMzUuMTYtMjIuNzUsIDU1
LjE1My0yMi43NQorCQljIDE5Ljk5NCwwLCAzOS45ODcsNy41ODQsIDU1LjE1NCwyMi43NTFsIDgx
LjY5LDgxLjY5YyAyNy45MSwyNy45MSwgMzAuMTE5LDcyLjE0OSwgNi42NzIsMTAyLjY3M0wgMjM4
LjQ0NCwxNDIuNDQzek0gNDg5LjI0OCw0MDcuNTU4bC00OS42OSw0OS42OTFDIDQyNC4zOTEsNDcy
LjQxNywgNDA0LjM5OCw0ODAsIDM4NC40MDQsNDgwYy0xOS45OTMsMC0zOS45ODUtNy41ODMtNTUu
MTUzLTIyLjc1MWwtODEuNjkxLTgxLjY5MQorCQljLTI3LjkxLTI3LjkxLTMwLjExOS03Mi4xNDkt
Ni42NzEtMTAyLjY3MWwgMzIuNjY5LDMyLjY3Yy0yLjI3OSw0LjUyNS0zLjQ5NCw5LjU4LTMuNDk0
LDE0Ljg0N2MwLDguODA4LCAzLjM3MiwxNy4wMzAsIDkuNDk2LDIzLjE1NAorCQlsIDgxLjY5MSw4
MS42OTFjIDYuMTIzLDYuMTI0LCAxNC4zNDcsOS40OTcsIDIzLjE1Myw5LjQ5N2MgOC44MDgsMCwg
MTcuMDMwLTMuMzczLCAyMy4xNTQtOS40OTdsIDQ5LjY5LTQ5LjY5MQorCQljIDYuMTI0LTYuMTI0
LCA5LjQ5Ni0xNC4zNDcsIDkuNDk2LTIzLjE1NGMwLTguODA3LTMuMzcyLTE3LjAzMC05LjQ5Ni0y
My4xNTRsLTgxLjY5LTgxLjY5MWMtNi4xMjQtNi4xMjQtMTQuMzQ3LTkuNDk2LTIzLjE1NC05LjQ5
NgorCQljLTUuMjY4LDAtMTAuMzIyLDEuMjE1LTE0Ljg0OCwzLjQ5NWwtMzIuNjY5LTMyLjY2OWMg
MTMuOTM2LTEwLjcwNSwgMzAuNzItMTYuMDgwLCA0Ny41MTctMTYuMDgwYyAxOS45OTQsMCwgMzku
OTg3LDcuNTg0LCA1NS4xNTQsMjIuNzUyCisJCWwgODEuNjksODEuNjlDIDUxOS41ODQsMzI3LjU4
NCwgNTE5LjU4NCwzNzcuMjIzLCA0ODkuMjQ4LDQwNy41NTh6TSAxMTYuNjg0LDM0MC42ODhMIDIw
LjY4Nyw0MzYuNjg1TCA0My4zMTUsNDU5LjMxM0wgMTM5LjMxMiwzNjMuMzE2ek0gMTkyLDQ4MEwg
MjI0LDQ4MEwgMjI0LDM4NEwgMTkyLDM4NHpNMCwyODhMIDk2LDI4OEwgOTYsMjU2TDAsMjU2ek0g
Mzk1LjMxNiwxMDcuMzEyTCA0OTEuMzE0LDExLjMxNEwgNDY4LjY4Ni0xMS4zMTRMIDM3Mi42ODgs
ODQuNjg0ek0gMjg4LDY0TCAzMjAsNjRMIDMyMC0zMkwgMjg4LTMyek0gNDE2LDE5MkwgNTEyLDE5
MkwgNTEyLDE2MEwgNDE2LDE2MHoiIGRhdGEtdGFncz0idW5saW5rIiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwMTE7IiBkPSJNIDE2MCwxMjhjIDguOC04LjgsIDIzLjYzNy04LjM2MywgMzIuOTcx
LDAuOTcxTCAzNTEuMDMwLDI4Ny4wMjlDIDM2MC4zNjQsMjk2LjM2MywgMzYwLjgsMzExLjIsIDM1
MiwzMjAKKwkJcy0yMy42MzcsOC4zNjMtMzIuOTcxLTAuOTcxTCAxNjAuOTcxLDE2MC45NzFDIDE1
MS42MzcsMTUxLjYzNywgMTUxLjIsMTM2LjgsIDE2MCwxMjh6TSAyMzguNDQ0LDE0Mi40NDRjIDIu
MjgtNC41MjUsIDMuNDk1LTkuNTgsIDMuNDk1LTE0Ljg0OGMwLTguODA4LTMuMzcyLTE3LjAzMC05
LjQ5Ni0yMy4xNTRsLTgxLjY5MS04MS42OTEKKwkJYy02LjEyNC02LjEyNC0xNC4zNDctOS40OTYt
MjMuMTU0LTkuNDk2cy0xNy4wMzAsMy4zNzItMjMuMTU0LDkuNDk2bC00OS42OTEsNDkuNjkxYy02
LjEyNCw2LjEyNC05LjQ5NiwxNC4zNDctOS40OTYsMjMuMTU0CisJCXMgMy4zNzIsMTcuMDMwLCA5
LjQ5NiwyMy4xNTRsIDgxLjY5MSw4MS42OTFjIDYuMTI0LDYuMTI0LCAxNC4zNDcsOS40OTcsIDIz
LjE1NCw5LjQ5N2MgNS4yNjgsMCwgMTAuMzIyLTEuMjE1LCAxNC44NDgtMy40OTVsIDMyLjY2OSwz
Mi42NjkKKwkJYy0xMy45MzUsMTAuNzA1LTMwLjcyLDE2LjA4MC00Ny41MTcsMTYuMDgwYy0xOS45
OTMsMC0zOS45ODYtNy41ODMtNTUuMTU0LTIyLjc1MWwtODEuNjkxLTgxLjY5MQorCQljLTMwLjMz
NS0zMC4zMzUtMzAuMzM1LTc5Ljk3NCwwLTExMC4zMDlsIDQ5LjY5MS00OS42OTFDIDg3LjYxMS0y
NC40MTYsIDEwNy42MDQtMzIsIDEyNy41OTctMzIKKwkJYyAxOS45OTQsMCwgMzkuOTg3LDcuNTg0
LCA1NS4xNTQsMjIuNzUxbCA4MS42OTEsODEuNjkxYyAyNy45MSwyNy45MSwgMzAuMTE5LDcyLjE0
OSwgNi42NzIsMTAyLjY3MkwgMjM4LjQ0NCwxNDIuNDQ0ek0gNDg5LjI0OSw0MDcuNTU4bC00OS42
OTEsNDkuNjkxQyA0MjQuMzkxLDQ3Mi40MTcsIDQwNC4zOTgsNDgwLCAzODQuNDA0LDQ4MGMtMTku
OTkzLDAtMzkuOTg2LTcuNTgzLTU1LjE1NC0yMi43NTFsLTgxLjY5MS04MS42OTEKKwkJYy0yNy45
MS0yNy45MS0zMC4xMTktNzIuMTQ5LTYuNjcxLTEwMi42NzFsIDMyLjY2OSwzMi42N2MtMi4yNzks
NC41MjUtMy40OTQsOS41OC0zLjQ5NCwxNC44NDdjMCw4LjgwOCwgMy4zNzIsMTcuMDMwLCA5LjQ5
NiwyMy4xNTQKKwkJbCA4MS42OTEsODEuNjkxYyA2LjEyNCw2LjEyNCwgMTQuMzQ3LDkuNDk3LCAy
My4xNTQsOS40OTdzIDE3LjAzMC0zLjM3MywgMjMuMTU0LTkuNDk3bCA0OS42OTEtNDkuNjkxCisJ
CWMgNi4xMjQtNi4xMjQsIDkuNDk2LTE0LjM0NywgOS40OTYtMjMuMTU0cy0zLjM3Mi0xNy4wMzAt
OS40OTYtMjMuMTU0bC04MS42OTEtODEuNjkxYy02LjEyNC02LjEyNC0xNC4zNDctOS40OTYtMjMu
MTU0LTkuNDk2CisJCWMtNS4yNjgsMC0xMC4zMjIsMS4yMTUtMTQuODQ4LDMuNDk1bC0zMi42Njkt
MzIuNjY5YyAxMy45MzYtMTAuNzA1LCAzMC43Mi0xNi4wODAsIDQ3LjUxNy0xNi4wODBjIDE5Ljk5
NCwwLCAzOS45ODcsNy41ODQsIDU1LjE1NCwyMi43NTEKKwkJbCA4MS42OTEsODEuNjkxQyA1MTku
NTg0LDMyNy41ODQsIDUxOS41ODQsMzc3LjIyMywgNDg5LjI0OSw0MDcuNTU4eiIgZGF0YS10YWdz
PSJsaW5rIiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNIDI4OCwzNTUuODE0TCAy
ODgsNDgwIGwgMTkyLTE5MkwgMjg4LDk2TCAyODgsMjIyLjkxMiBDIDY0LjYyNSwyMjguMTUzLCA3
NC4yMDYsNzEuMDE2LCAxMzEuMDcwLTMyCisJQy05LjI4NiwxMTkuNzA3LCAyMC41MiwzNjIuNzg1
LCAyODgsMzU1LjgxNHoiIGRhdGEtdGFncz0icmVkbyIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDBmOyIgZD0iTSAzODAuOTMxLTMyQyA0MzcuNzk0LDcxLjAxNiwgNDQ3LjM3NSwyMjguMTUzLCAy
MjQsMjIyLjkxMkwgMjI0LDk2IEwgMzIsMjg4TCAyMjQsNDgwbDAtMTI0LjE4NiAKKwlDIDQ5MS40
ODEsMzYyLjc4NSwgNTIxLjI4NSwxMTkuNzA3LCAzODAuOTMxLTMyeiIgZGF0YS10YWdzPSJ1bmRv
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGU7IiBkPSJNIDExMi41LDI1NiBDIDE3NC4zNTYs
MjU2IDIyNC41LDIwNS44NTUgMjI0LjUsMTQ0IEMgMjI0LjUsODIuMTQ0IDE3NC4zNTYsMzIgMTEy
LjUsMzIgQyA1MC42NDQsMzIgMC41LDgyLjE0NCAwLjUsMTQ0IEwgMCwxNjAgQyAwLDI4My43MTIg
MTAwLjI4OCwzODQgMjI0LDM4NCBMIDIyNCwzMjAgQyAxODEuMjYzLDMyMCAxNDEuMDgzLDMwMy4z
NTcgMTEwLjg2MywyNzMuMTM3IEMgMTA1LjA0NiwyNjcuMzE5IDk5LjczNywyNjEuMTI5IDk0Ljk0
OCwyNTQuNjI3IEMgMTAwLjY2NywyNTUuNTI3IDEwNi41MjgsMjU2IDExMi41LDI1NiBaTSA0MDAu
NSwyNTYgQyA0NjIuMzU1LDI1NiA1MTIuNSwyMDUuODU1IDUxMi41LDE0NCBDIDUxMi41LDgyLjE0
NCA0NjIuMzU1LDMyIDQwMC41LDMyIEMgMzM4LjY0NSwzMiAyODguNSw4Mi4xNDQgMjg4LjUsMTQ0
IEwgMjg4LDE2MCBDIDI4OCwyODMuNzEyIDM4OC4yODgsMzg0IDUxMiwzODQgTCA1MTIsMzIwIEMg
NDY5LjI2MywzMjAgNDI5LjA4MywzMDMuMzU3IDM5OC44NjMsMjczLjEzNyBDIDM5My4wNDUsMjY3
LjMxOSAzODcuNzM2LDI2MS4xMjkgMzgyLjk0NywyNTQuNjI3IEMgMzg4LjY2NywyNTUuNTI3IDM5
NC41MjcsMjU2IDQwMC41LDI1NiBaIiBkYXRhLXRhZ3M9ImJsb2NrcXVvdGUiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTAwZDsiIGQ9Ik0wLDQ0OEwgNTEyLDQ0OEwgNTEyLDM4NEwwLDM4NHpNIDE5
MiwzNTJMIDUxMiwzNTJMIDUxMiwyODhMIDE5MiwyODh6TSAxOTIsMjU2TCA1MTIsMjU2TCA1MTIs
MTkyTCAxOTIsMTkyek0gMTkyLDE2MEwgNTEyLDE2MEwgNTEyLDk2TCAxOTIsOTZ6TTAsNjRMIDUx
Miw2NEwgNTEyLDBMMCwwek0gMTI4LDMyMCBMIDEyOCwxMjggTCAwLDIyNCBaIiBkYXRhLXRhZ3M9
Im91dGRlbnQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwYzsiIGQ9Ik0wLDQ0OEwgNTEyLDQ0
OEwgNTEyLDM4NEwwLDM4NHpNIDE5MiwzNTJMIDUxMiwzNTJMIDUxMiwyODhMIDE5MiwyODh6TSAx
OTIsMjU2TCA1MTIsMjU2TCA1MTIsMTkyTCAxOTIsMTkyek0gMTkyLDE2MEwgNTEyLDE2MEwgNTEy
LDk2TCAxOTIsOTZ6TTAsNjRMIDUxMiw2NEwgNTEyLDBMMCwwek0gMCwxMjggTCAwLDMyMCBMIDEy
OCwyMjQgWiIgZGF0YS10YWdzPSJpbmRlbnQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwYjsi
IGQ9Ik0gMTkyLDY0TCA1MTIsNjRMIDUxMiwwTCAxOTIsMHpNIDE5MiwyNTZMIDUxMiwyNTZMIDUx
MiwxOTJMIDE5MiwxOTJ6TSAxOTIsNDQ4TCA1MTIsNDQ4TCA1MTIsMzg0TCAxOTIsMzg0ek0gOTYs
NDgwIEwgOTYsMzUyIEwgNjQsMzUyIEwgNjQsNDQ4IEwgMzIsNDQ4IEwgMzIsNDgwIFpNIDY0LDIx
NyBMIDY0LDE5MiBMIDEyOCwxOTIgTCAxMjgsMTYwIEwgMzIsMTYwIEwgMzIsMjMzIEwgOTYsMjYz
IEwgOTYsMjg4IEwgMzIsMjg4IEwgMzIsMzIwIEwgMTI4LDMyMCBMIDEyOCwyNDcgWk0gMTI4LDEy
OCBMIDEyOC0zMiBMIDMyLTMyIEwgMzIsMCBMIDk2LDAgTCA5NiwzMiBMIDMyLDMyIEwgMzIsNjQg
TCA5Niw2NCBMIDk2LDk2IEwgMzIsOTYgTCAzMiwxMjggWiIgZGF0YS10YWdzPSJudW1saXN0IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGE7IiBkPSJNIDE5Miw0NDhsIDMyMCwwIGwwLTY0IEwg
MTkyLDM4NCBMIDE5Miw0NDggeiBNIDE5MiwyNTZsIDMyMCwwIGwwLTY0IEwgMTkyLDE5MiBMIDE5
MiwyNTYgeiBNIDE5Miw2NGwgMzIwLDAgbDAtNjQgTCAxOTIsMCBMIDE5Miw2NCB6TTAsNDE2QTY0
LDY0IDMwNjAgMSAwIDEyOCw0MTZBNjQsNjQgMzA2MCAxIDAgMCw0MTZ6TTAsMjI0QTY0LDY0IDMw
NjAgMSAwIDEyOCwyMjRBNjQsNjQgMzA2MCAxIDAgMCwyMjR6TTAsMzJBNjQsNjQgMzA2MCAxIDAg
MTI4LDMyQTY0LDY0IDMwNjAgMSAwIDAsMzJ6IiBkYXRhLXRhZ3M9ImJ1bGxpc3QiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAwOTsiIGQ9Ik0gMzIsNDgwTCAyMjQsNDgwTCAyMjQsNDQ4TCAzMiw0
NDh6TSAyODgsNDgwTCA0ODAsNDgwTCA0ODAsNDQ4TCAyODgsNDQ4ek0gNDc2LDMyMGwtMjgsMCBM
IDQ0OCw0NDggTCAzMjAsNDQ4IGwwLTEyOCBMIDE5MiwzMjAgTCAxOTIsNDQ4IEwgNjQsNDQ4IGww
LTEyOCBMIDM2LDMyMCBjLTE5LjgsMC0zNi0xNi4yLTM2LTM2bDAtMjgwIGMwLTE5LjgsIDE2LjIt
MzYsIDM2LTM2bCAxNTIsMCBjIDE5LjgsMCwgMzYsMTYuMiwgMzYsMzZMIDIyNCwxOTIgbCA2NCww
IAorCWwwLTE4OCBjMC0xOS44LCAxNi4yLTM2LCAzNi0zNmwgMTUyLDAgYyAxOS44LDAsIDM2LDE2
LjIsIDM2LDM2TCA1MTIsMjg0IEMgNTEyLDMwMy44LCA0OTUuOCwzMjAsIDQ3NiwzMjB6IE0gMTc0
LDBMIDUwLDAgYy05LjksMC0xOCw3LjItMTgsMTYKKwlzIDguMSwxNiwgMTgsMTZsIDEyNCwwIGMg
OS45LDAsIDE4LTcuMiwgMTgtMTZTIDE4My45LDAsIDE3NCwweiBNIDI3MiwyMjRsLTMyLDAgYy04
LjgsMC0xNiw3LjItMTYsMTZzIDcuMiwxNiwgMTYsMTZsIDMyLDAgYyA4LjgsMCwgMTYtNy4yLCAx
Ni0xNgorCVMgMjgwLjgsMjI0LCAyNzIsMjI0eiBNIDQ2MiwwTCAzMzgsMCBjLTkuOSwwLTE4LDcu
Mi0xOCwxNnMgOC4xLDE2LCAxOCwxNmwgMTI0LDAgYyA5LjksMCwgMTgtNy4yLCAxOC0xNlMgNDcx
LjksMCwgNDYyLDB6IiBkYXRhLXRhZ3M9InNlYXJjaHJlcGxhY2UiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAwODsiIGQ9Ik0gNDE2LDMyMEwgNDE2LDQwMCBjMCw4LjgtNy4yLDE2LTE2LDE2TCAy
ODgsNDE2IEwgMjg4LDQ0OCBjMCwxNy42LTE0LjQsMzItMzIsMzJsLTY0LDAgYy0xNy42MDIsMC0z
Mi0xNC40LTMyLTMybDAtMzIgTCA0OCw0MTYgYy04LjgwMSwwLTE2LTcuMi0xNi0xNmwwLTMyMCAK
KwljMC04LjgsIDcuMTk5LTE2LCAxNi0xNmwgMTQ0LDAgbDAtOTYgbCAyMjQsMCBsIDk2LDk2TCA1
MTIsMzIwIEwgNDE2LDMyMCB6IE0gMTkyLDQ0Ny45NDNjIDAuMDE3LDAuMDE5LCAwLjAzNiwwLjAz
OSwgMC4wNTcsMC4wNTdsIDYzLjg4NCwwIAorCWMgMC4wMjEtMC4wMTgsIDAuMDQxLTAuMDM4LCAw
LjA1OS0wLjA1N0wgMjU2LDQxNiBsLTY0LDAgTCAxOTIsNDQ3Ljk0MyB6IE0gOTYsMzUyTCA5Niwz
ODQgbCAyNTYsMCBsMC0zMiBMIDk2LDM1MiB6IE0gNDE2LDEzLjI1NUwgNDE2LDY0IGwgNTAuNzQ1
LDAgTCA0MTYsMTMuMjU1eiBNIDQ4MCw5NmwtOTYsMCBsMC05NiAKKwlMIDIyNCwwIEwgMjI0LDI4
OCBsIDI1NiwwIEwgNDgwLDk2IHoiIGRhdGEtdGFncz0icGFzdGUiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAwNzsiIGQ9Ik0gNDQ1LjM4NywxMjUuNDIzYy0yMi44MjcsMjIuNzc4LTUxLjg2NCwz
NC41MzYtNzguOTczLDM0LjUzNmwtMTQuNTU2LDAgbC0zMS45NTIsMzIuMDA0bCAxMjcuODEsMTI4
LjAxOQorCWMgMzEuOTUyLDMyLjAwNSwgMzEuOTUyLDk2LjAxNCwwLDEyOC4wMTlMIDI1Ni4wMDEs
MjU1Ljk3M0wgNjQuMjg1LDQ0OGMtMzEuOTUyLTMyLjAwNC0zMS45NTItOTYuMDE0LDAtMTI4LjAx
OWwgMTI3LjgxMS0xMjguMDE3CisJbC0zMS45NTMtMzIuMDA0bC0xNC41NTcsMCBjLTI3LjExLDAt
NTYuMTQ2LTExLjc1OS03OC45NzQtMzQuNTM4Yy00MC44MTEtNDAuNzIxLTQ2LjMyNS0xMDEuMjQy
LTEyLjMxNS0xMzUuMTc1CisJQyA2OS4yODItMjQuNzA0LCA4OS40NDEtMzIsIDExMC43OTUtMzJj
IDI3LjEwOCwwLCA1Ni4xNDUsMTEuNzU3LCA3OC45NzMsMzQuNTM2YyAyNi43OTIsMjYuNzMyLCAz
OC4zNzEsNjIsIDMzLjU0Miw5Mi42NzRsIDMyLjY5MiwzMi43NDQKKwlsIDMyLjY4OC0zMi43NDRj
LTQuODI4LTMwLjY3NCwgNi43NTMtNjUuOTQxLCAzMy41NDItOTIuNjc0QyAzNDUuMDYzLTIwLjI0
MywgMzc0LjA5OC0zMiwgNDAxLjIwNi0zMgorCWMgMjEuMzU0LDAsIDQxLjUxMiw3LjI5NiwgNTYu
NDk3LDIyLjI0OEMgNDkxLjcxMywyNC4xODEsIDQ4Ni4xOTcsODQuNzAyLCA0NDUuMzg3LDEyNS40
MjN6IE0gMTc2LjUxMiw1Ny4yMzEKKwljLTMuODQ5LTguOTQxLTkuNTA1LTE3LjE3My0xNi44MTMt
MjQuNDYzYy03LjMxOC03LjMwMi0xNS41ODYtMTIuOTU5LTI0LjU3NC0xNi44MTJjLTguMDY2LTMu
NDU4LTE2LjQ4LTUuMjg0LTI0LjMzMS01LjI4NAorCWMtNy41NzMsMC0xOC4zMDYsMS43MDEtMjYu
NDMxLDkuODA2Yy04LjA2OCw4LjA1Mi05Ljc2LDE4LjY1OS05Ljc2LDI2LjE0NGMwLDcuNzcxLCAx
LjgyMSwxNi4xMDUsIDUuMjYzLDI0LjEwNgorCWMgMy44NSw4Ljk0MiwgOS41MDcsMTcuMTczLCAx
Ni44MTMsMjQuNDYzYyA3LjMxNyw3LjMwMywgMTUuNTg2LDEyLjk1NywgMjQuNTc1LDE2LjgxMmMg
OC4wNjcsMy40NTcsIDE2LjQ4LDUuMjg0LCAyNC4zMzIsNS4yODQKKwljIDcuNTczLDAsIDE4LjMw
Ni0xLjcsIDI2LjQyOS05LjgwN2MgOC4wNjctOC4wNDksIDkuNzYxLTE4LjY1OCwgOS43NjEtMjYu
MTQyQyAxODEuNzc3LDczLjU2NywgMTc5Ljk1Nyw2NS4yMywgMTc2LjUxMiw1Ny4yMzF6CisJIE0g
MjU2LjAwMiwxNDYuNzAyYy0yNC45NTcsMC00NS4xODgsMjAuMjY2LTQ1LjE4OCw0NS4yNjNjMCwy
NC45OTYsIDIwLjIzMSw0NS4yNiwgNDUuMTg4LDQ1LjI2cyA0NS4xODYtMjAuMjY0LCA0NS4xODYt
NDUuMjYKKwlDIDMwMS4xODgsMTY2Ljk2NiwgMjgwLjk1OCwxNDYuNzAyLCAyNTYuMDAyLDE0Ni43
MDJ6IE0gNDI3LjYzNiwyMC40NzljLTguMTI0LTguMTA0LTE4Ljg1Ni05LjgwNi0yNi40My05Ljgw
NgorCWMtNy44NTIsMC0xNi4yNjUsMS44MjYtMjQuMzMzLDUuMjg0Yy04Ljk4NiwzLjg1My0xNy4y
NTQsOS41MS0yNC41NzEsMTYuODEyYy03LjMwNyw3LjI5LTEyLjk2MywxNS41MjEtMTYuODEzLDI0
LjQ2MworCWMtMy40NDMsNy45OTktNS4yNjMsMTYuMzM2LTUuMjYzLDI0LjEwNmMwLDcuNDgzLCAx
LjY5MiwxOC4wOTQsIDkuNzYsMjYuMTQzYyA4LjEyMyw4LjEwNCwgMTguODU2LDkuODA3LCAyNi40
Myw5LjgwNworCWMgNy44NSwwLCAxNi4yNjUtMS44MjcsIDI0LjMzLTUuMjg0YyA4Ljk4OS0zLjg1
NCwgMTcuMjU4LTkuNTA5LCAyNC41NzUtMTYuODEyYyA3LjMwNS03LjI5LCAxMi45NjItMTUuNTIx
LCAxNi44MTMtMjQuNDYzCisJYyAzLjQ0Mi03Ljk5OSwgNS4yNjMtMTYuMzM1LCA1LjI2My0yNC4x
MDZDIDQzNy4zOTYsMzkuMTM4LCA0MzUuNzAyLDI4LjUzLCA0MjcuNjM2LDIwLjQ3OXoiIGRhdGEt
dGFncz0iY3V0IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDY7IiBkPSJNMCw0NDhMIDUxMiw0
NDhMIDUxMiwzODRMMCwzODR6TTAsMzUyTCA1MTIsMzUyTCA1MTIsMjg4TDAsMjg4ek0wLDI1Nkwg
NTEyLDI1NkwgNTEyLDE5MkwwLDE5MnpNMCwxNjBMIDUxMiwxNjBMIDUxMiw5NkwwLDk2ek0wLDY0
TCA1MTIsNjRMIDUxMiwwTDAsMHoiIGRhdGEtdGFncz0iYWxpZ25qdXN0aWZ5IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwMDU7IiBkPSJNMCw0NDhMIDUxMiw0NDhMIDUxMiwzODRMMCwzODR6TSAx
OTIsMzUyTCA1MTIsMzUyTCA1MTIsMjg4TCAxOTIsMjg4ek0gMTkyLDE2MEwgNTEyLDE2MEwgNTEy
LDk2TCAxOTIsOTZ6TTAsMjU2TCA1MTIsMjU2TCA1MTIsMTkyTDAsMTkyek0wLDY0TCA1MTIsNjRM
IDUxMiwwTDAsMHoiIGRhdGEtdGFncz0iYWxpZ25yaWdodCIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDA0OyIgZD0iTTAsNDQ4TCA1MTIsNDQ4TCA1MTIsMzg0TDAsMzg0ek0gOTYsMzUyTCA0MTYs
MzUyTCA0MTYsMjg4TCA5NiwyODh6TSA5NiwxNjBMIDQxNiwxNjBMIDQxNiw5NkwgOTYsOTZ6TTAs
MjU2TCA1MTIsMjU2TCA1MTIsMTkyTDAsMTkyek0wLDY0TCA1MTIsNjRMIDUxMiwwTDAsMHoiIGRh
dGEtdGFncz0iYWxpZ25jZW50ZXIiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMzsiIGQ9Ik0w
LDQ0OEwgNTEyLDQ0OEwgNTEyLDM4NEwwLDM4NHpNMCwzNTJMIDMyMCwzNTJMIDMyMCwyODhMMCwy
ODh6TTAsMTYwTCAzMjAsMTYwTCAzMjAsOTZMMCw5NnpNMCwyNTZMIDUxMiwyNTZMIDUxMiwxOTJM
MCwxOTJ6TTAsNjRMIDUxMiw2NEwgNTEyLDBMMCwweiIgZGF0YS10YWdzPSJhbGlnbmxlZnQiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik0gNTEyLDE4My43NzFsMCw4MC40NTggbC03
OS41NzIsNy45NTdjLTQuMDkzLDE1LjAyMS0xMC4wNDQsMjkuMjc0LTE3LjYwNSw0Mi40OWwgNTIu
Mjk4LDYzLjkxOUwgNDEwLjU5NSw0MzUuMTJsLTYzLjkxOC01Mi4yOTgKKwljLTEzLjIxNyw3LjU2
Mi0yNy40NzEsMTMuNTEzLTQyLjQ5MSwxNy42MDRMIDI5Ni4yMjksNDgwbC04MC40NTgsMCBsLTcu
OTU3LTc5LjU3M2MtMTUuMDIxLTQuMDkzLTI5LjI3NC0xMC4wNDMtNDIuNDktMTcuNjA0CisJTCAx
MDEuNDA1LDQzNS4xMkwgNDQuODgsMzc4LjU5NWwgNTIuMjk4LTYzLjkxOGMtNy41NjItMTMuMjE2
LTEzLjUxMy0yNy40Ny0xNy42MDUtNDIuNDlMMCwyNjQuMjI5bDAtODAuNDU4IGwgNzkuNTczLTcu
OTU3CisJYyA0LjA5My0xNS4wMjEsIDEwLjA0My0yOS4yNzQsIDE3LjYwNS00Mi40OTFMIDQ0Ljg4
LDY5LjQwNWwgNTYuNTI0LTU2LjUyNGwgNjMuOTE5LDUyLjI5OGMgMTMuMjE2LTcuNTYyLCAyNy40
Ny0xMy41MTQsIDQyLjQ5LTE3LjYwNQorCUwgMjE1Ljc3MS0zMmwgODAuNDU4LDAgbCA3Ljk1Nyw3
OS41NzJjIDE1LjAyMSw0LjA5MywgMjkuMjc0LDEwLjA0NCwgNDIuNDkxLDE3LjYwNWwgNjMuOTE4
LTUyLjI5OGwgNTYuNTI0LDU2LjUyNGwtNTIuMjk4LDYzLjkxOAorCWMgNy41NjIsMTMuMjE3LCAx
My41MTQsMjcuNDcxLCAxNy42MDUsNDIuNDlMIDUxMiwxODMuNzcxeiBNIDM1MiwxOTJsLTY0LTY0
bC02NCwwIGwtNjQsNjRsMCw2NCBsIDY0LDY0bCA2NCwwIGwgNjQtNjRMIDM1MiwxOTIgeiIgZGF0
YS10YWdzPSJmdWxscGFnZSIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDAxOyIgZD0iTSA0NTEu
NzE2LDM4MC4yODVsLTcxLjQzMiw3MS40MzFDIDM2NC43MjgsNDY3LjI3MiwgMzM0LDQ4MCwgMzEy
LDQ4MEwgNzIsNDgwIEMgNTAsNDgwLCAzMiw0NjIsIDMyLDQ0MGwwLTQzMiBjMC0yMiwgMTgtNDAs
IDQwLTQwbCAzNjgsMCBjIDIyLDAsIDQwLDE4LCA0MCw0MAorCUwgNDgwLDMxMiBDIDQ4MCwzMzQs
IDQ2Ny4yNzIsMzY0LjcyOSwgNDUxLjcxNiwzODAuMjg1eiBNIDQyOS4wODksMzU3LjY1N2MgMS41
NjUtMS41NjUsIDMuMTI1LTMuNDg3LCA0LjY0LTUuNjU3TCAzNTIsMzUyIEwgMzUyLDQzMy43Mjgg
CisJYyAyLjE3LTEuNTE1LCA0LjA5Mi0zLjA3NSwgNS42NTctNC42NEwgNDI5LjA4OSwzNTcuNjU3
eiBNIDQ0OCw4YzAtNC4zMzYtMy42NjQtOC04LThMIDcyLDAgYy00LjMzNiwwLTgsMy42NjQtOCw4
TCA2NCw0NDAgYzAsNC4zMzYsIDMuNjY0LDgsIDgsOAorCWwgMjQwLDAgYyAyLjQxNiwwLCA1LjEy
Ny0wLjMwNSwgOC0wLjg1MkwgMzIwLDMyMCBsIDEyNy4xNDgsMCBjIDAuNTQ3LTIuODczLCAwLjg1
Mi01LjU4MywgMC44NTItOEwgNDQ4LDggeiIgZGF0YS10YWdzPSJuZXdkb2N1bWVudCIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMDAwOyIgZD0iTSA0NDgsNDgwTDAsNDgwIGwwLTUxMiBsIDUxMiww
IEwgNTEyLDQxNiBMIDQ0OCw0ODB6IE0gMjU2LDQxNmwgNjQsMCBsMC0xMjggbC02NCwwIEwgMjU2
LDQxNiB6IE0gNDQ4LDMyTCA2NCwzMiBMIDY0LDQxNiBsIDMyLDAgbDAtMTYwIGwgMjg4LDAgTCAz
ODQsNDE2IGwgMzcuNDg5LDAgTCA0NDgsMzg5LjQ5MUwgNDQ4LDMyIHoiIGRhdGEtdGFncz0ic2F2
ZSIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDMzOyIgZD0iTSA2NCwyMDhMIDIwOCw2NEwgNDQ4
LDMwNEwgMzg0LDM2OEwgMjA4LDE5MkwgMTI4LDI3MiB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwMzU7IiBkPSJNIDI1NiwyMjRMIDI1NiwxNjBMIDI3MiwxNjBMIDI4OCwxOTJMIDMyMCwxOTJM
IDMyMCw2NEwgMjk2LDY0TCAyOTYsMzJMIDQwOCwzMkwgNDA4LDY0TCAzODQsNjRMIDM4NCwxOTJM
IDQxNiwxOTJMIDQzMiwxNjBMIDQ0OCwxNjBMIDQ0OCwyMjQgCXpNIDQxNiwzMjBMIDQxNiw0MDAg
YzAsOC44LTcuMiwxNi0xNiwxNkwgMjg4LDQxNiBMIDI4OCw0NDggYzAsMTcuNi0xNC40LDMyLTMy
LDMybC02NCwwIGMtMTcuNjAyLDAtMzItMTQuNC0zMi0zMmwwLTMyIEwgNDgsNDE2IGMtOC44MDEs
MC0xNi03LjItMTYtMTZsMC0zMjAgCisJCWMwLTguOCwgNy4xOTktMTYsIDE2LTE2bCAxNDQsMCBs
MC05NiBsIDMyMCwwIEwgNTEyLDMyMCBMIDQxNiwzMjAgeiBNIDE5Miw0NDcuOTQzYyAwLjAxNyww
LjAxOSwgMC4wMzYsMC4wMzksIDAuMDU3LDAuMDU3bCA2My44ODQsMCAKKwkJYyAwLjAyMS0wLjAx
OCwgMC4wNDEtMC4wMzgsIDAuMDU5LTAuMDU3TCAyNTYsNDE2IGwtNjQsMCBMIDE5Miw0NDcuOTQz
IHogTSA5NiwzNTJMIDk2LDM4NCBsIDI1NiwwIGwwLTMyIEwgOTYsMzUyIHogTSA0ODAsMEwgMjI0
LDAgTCAyMjQsMjg4IGwgMjU2LDAgTCA0ODAsMCB6IiBkYXRhLXRhZ3M9InBhc3RldGV4dCIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3gyMDsiIGhvcml6LWFkdi14PSIyNTYiIC8+Cis8L2ZvbnQ+PC9k
ZWZzPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0
Z3JheS9mb250cy90aW55bWNlLmVvdCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLmVvdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMTA4NWJmZDI5NWFiY2Y5NDA4NzFjODYzMTY1NjU2ZGY4YjA5NGMyCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAxMDAyNAp6Y21iX2lkeUV+fFN3Q21xY2tjVCtgQEIyJVVobUdYP2Qq
RFlfV0pxfVpebzdGUCR6Y1EmWmBPfThPTEBXUE1qPT4KelgmbHVkUXplMl9NOTdwJUxASj0wcUU7
WU9ORClPPDcwTXZzcFopPStmfnUtb3hRSFVDNVd6ZigzS2UoeGVQP0Z3CnotcmU7aHNoRTR1b2JT
QjheUE98UF5GN1gpUyU8TVZXKkZtNFZ3KWUldTUhd2BjWGV8PClzM0ZaWiM/Knd0ITBlbQp6KmRf
SzFkIURfKkYwIS1pSlN5YmFYfmEqbHBKQzZqR3dlbT0pWXdERmQ2QihAbmxHVFAlQCl9XythdjAz
WkgtTG8KekZ3RnVjdnB4NlN6cCFMOXxMZFFUXkIjaEtfVHJoZi1kZ1YpczVGN30xNWNmS1gkXjQh
WF5NQGZvX3BvVkVCOVl7Cno2NndvfkhOTnhvYDdgSSV6d3xGeyMjI0BjZURCbDlrcERePU1meHFJ
Y1JZUlooJmNCbF4wIUY4aX1kJU5kKlNTdgp6PiEqS3MyfVBlbGBxSVRTbSlGPXcqfCEqKkhqdVdU
S1hkVz9KQHI1NkF3NyNlX09IRzAoazBNfFhYWUgwR2cpSCUKekRwT0gqRjkjTHU/bH1HZDgpYWAk
eWBoSkw/OUdxSVNnKn17Pi1nfj11bVIwYjF4aG9xYU1XVzN7WmVVI0RhPUVoCnpWRnQ8KzxrYEwx
VVZIdDIqVm1FRGtZY0BeQkV7R0wtZDFjbVpZSylHaSErWThgSnVrUjlHKDU1Pnk3P3pvZD01Ngp6
ZGwtOFVWPmR3KTxCZWpZPTsmXj4paDspUlpuZT5OdHMpUW1wMldQK15US3skYjk7SzZfeGcrQDlS
JlM9MmlAKj8KenxGZlhhcnR0JDtvJFk0IzArJXh7Sk5pc2MoI3UrMT5abUtTUT5MNmZ3TXVQS2NX
UWZUZCF+Mzx0S18oJiZOT0cxCnpvJHx+SVUrUCVQd1l7fnIpaj0pSWxLRyRCdD4tSkgpVzQ+MzhJ
Xk9jbisyVyF2fGNjRUI7LV58dVN3RD1GM0hsZAp6M1lSNmh8NFZxR01CKW5uSDxgPSlYT1h+ajwh
KEtkcTVeOCl6YnxnRFdeeVVNa1NiTzN4K1M1X3tnTmFkPiVXN3gKejV+Pm9XLTtLfV8hVD4/JFF2
V1k4YDxUXnUtYVBPYm57THhrSkJ+Z3RGWXVQMGxYWFk4YSZuJG10LTVVS1I7TW1jCnpha3NNfmNk
VS1IQkh6VXd6MiZxIXUycSVURHB3UiRVZiQ9YVgpfj1FdEE+VkhfNFh+eHMtcDFLK1oxO19AcUZi
Jgp6SHJzO0xoX0VvKTBXPiVzVmx7UV88fiVEaVImRz1XempoM3Y1Oyh4P2haRzFGPkNtJmkhMFJG
YSV9c0d4RiVELUsKem0hQlo+Wi1uaWA7U3hqPHo4Z3xAUShQT1BqMzY8bGdxa0Q8KlcyK0FWXnI4
KUBjaD4/VSZxKyU+fX5lZjtEdmQ0Cno3azRAPGQ+KlVwPGFuSj1hbE9eVkYzM3FXdSFGbV9CN3Fa
fWopaEd6Tks8VlVkXyNZISsxZzN6ZEFUI1FCREtMYQp6XnB9PzAxMytmZ3JIVnkrTSg7R3xCYH1r
X1JHMEt4UEhJXzA0VCY5PlhPP0ZPIUJBNWZ7WjtGZFdAJEFiO0Q0QVoKeil5a1B7PENFenVQaU96
PWs0NXlfUk5reXNEdGZWP1dZVCZqcEhIUH48JSpIY253O0JCU3ZLLTF2c0E2NV48cC1zCnpXPSpN
LUBCYXJfU21UUFNZbEBfK3h9PDBaQWNnamoqaFIkMXhAdCZAWU4hZX5HKGEtO0I2aSVXUzslVWZZ
dVNRbgp6bCtwKDBNIUlERHdqYD5reH5mUDkoOC1EPiR1aDc+VG90JXdOIU8/c1U2bXpHUiV1KH1M
NjVKZHZNSSQ1R1IrOyQKek9jO3ROdW9ZekhjVDZ8NFlEJCRVVmIoQFEoflUtWWJmamlkMH5yT2A9
SmJ5STVuMHolUz9vSjVwLVdsVGJ6UFA8CnpPI2AmNE0zSj9tPFBra25Pcj9xJEomOWpLSXw8YSV3
dzZfR2ZJIXp8NEV1JjlJJXgpIzxmbzl1R3B4LUh1b1pSYAp6R1BKIXNGWVN1b1Y0X0oqdFcrJmw+
ZTR9OGJ2d25EdnJrQGg1Z0BVMytNVEBaPllZfSNSY3VzdzdnSHklc2owTj8Kej5GSmNaQ1RwTW9T
eXl8JC19NX01dnZxN0AqWSo0XncyOE0kPHU9dSVDTnxhVmhtX318Vz88WENaVEcrRXk3JjlzCno0
akkhMUdMVTQmVVVxXz1XMW9QdWZiTihedXYlP1VMMUJZbnU+SytMUnQ1MlorZUhrbmclUW41P2Qy
NT0yJmBQSwp6ZlIjSmp2I2prfGJ7S0xOaFZNLVRLYF4xYFFrc15ePjJETEA0SWwjZy0/KlpQKXpn
IyNAUHdWciNRXngpcGx8XjIKem9eOUt9OXN+bDxLUDg+S19nKF89NXJReUZuNXpVTSNsNzJSNDkl
YXlRWlQ8LVkjLSlPTlpVM0VweSh4SVZyWXd0CnpkNys3Xy1abzwoeyk3bExpekNfV05ZVlZERnsk
PEYmOzcwSyFyTndta0ZeMEdNPj9kKUNmT1Y7NkFUR0ZEU3xfYwp6KEpvaVglOyo0ZXRLalJsT0F4
eylgb1ZMeT1Zdi1mPTs0aDFlJkV+dnt+b25KVDFSLWZpI29RQXU0enVVPjkxTmUKenIte35+c25y
bjxhWjNwSk99ejwpNWUmKXJBb0wwNGhybkJ8SXlie1JqRkB8YjhGbUQtQXU5cWwmRiVyNiF3Yz11
CnpMUlc/MmtvNXo2P34+Y05iQDdAdEo1Py1BJX5+VWZkRiM7V2BOR3VYU1h4cFBNU3w+d0pocEZK
Z08lIVltTmkhfAp6UUN5Zm1lVz5NV25ObkkoNl5Qa2VsfGZWcWB8bmxXMTF+ZGBecSpkSklAUF4o
dUljPk1ZSSojajJnMn4maSFnal8Kej1hR3wzKHJhT09NTE9+RnJ9a3FHSUQwKnw5bnFHekV4a1JI
PDI3clp1VypaRnBGaS0+Yyk4a2tTfSZnQz1kT2d8CnpZdHF1bU4xWGtpZGlldzxQLVlnfGVqb2tU
O0k4fldJSVlmP19UR2kyJVFNYkFaKSRtLTxDUGtXRnVaOVNBdVc/TQp6Uz5XP0Ikc0pVTTdPZ0Z6
JH4rMjAxeXI1bGsrTWR5R34/KUg9K3c5bmRifjNhPj5He2k2NGw7NzRzK0pnMmhFOSkKekVeSmpw
YEV8JSZjPl84TG1CeHtBM1ZIKENMNCVaOUJvI3IqTjh+OWBlaFAxPm5NXzdBXjB9O2JEdzlyVTdQ
VnxICnpafEVZT1BEQDZyQHVUZm9LT1g3OylQUENAI198U35nRCNWeVokYUx2Z3VGIX04RVA9ZjZX
WTk/SzxoKTlnMjsqYgp6QiZhazxDS31xUV53YDlCeTF+dERJbTJqeTB6S1h5RSZMQEc+JmNWcypW
c0drXlgjfFM3dWxFQ20mTTkmRVV9fCkKelQ0SEliUShKPWxnZiU5Z0J3YDkkd042ZDJLKGZZaDtu
cD5fX0hKNVpzajFJMiQtKjE3ciR0c18pcGV8QHR8Tz14CnpJUlJDaigobkl4aT9NeEN8S0haUnxD
VjMjK3FOQS13Zl9SWjJjaFNEe30tYCpVX0QqY3F8PWZAV3xhKUhZRHY7bQp6VTUwdDVENjI1QyRr
dmpZR1ZCXyVhWkw0ZWRVQ1IhVVY7JllBX2RXRGI5e1dsdzBVWkstWHtFSDNQQ1ZeRiNJMlIKeism
YzRke3kyVjl7NC1+Jms1PlR3OWJsNTdLSzZlWGAoSzV9IXBnO3RSY3Y1bztLPSZqWmE/STk1V3U+
RCRKKl99CnppYSZ3V0ZaVkIhP1QhY2JSdUBuVEs1TDhHTE9scj1jJD9hXzhmQn00PmhPQWNlVUZF
TWt0TG0pSEltcngyWSVyMwp6WnI/YDt4Wm0mYyFmLWomeVV0bTY0fFNWRHVtXnFUO0FNP0tPRSNJ
cWNFKGhjTmg9RH5DfC1nbmNYTTgmOFdIM1IKeiNwclB4I3ZGP2l7YXpyKjI+TS1rPkVjaE9VTyFB
eWt6VF9iI0N1NipDM2NYViFYQVFCQ090Rj51Tyg4PlBOYWojCnpZI2FEMTVTO0tuQVE5VighJUIl
JVJ1NWZ9NGU3KEc0RV5mdGJUZ2x+QGBpeXx6QnhUeC1KYThhXnd7anx1fTlsVQp6akFedlYwYCl5
fHdOYEpAYSk0e2thQ15jLU9LVVM5PU1qRik3ck55LTlrKnJhWmxAYXJVTGI7cGw+JFQkbUlPNyYK
enBAMDU/ZTsjS2NodUNyVUZsPGBKJCQtViskI2JKJng1X3phMHheOGowUHhQcEtxSj0qJTAtdSpv
VUJfYmF6fS12CnpBXkJpQUVpcllBQGNyQUklXnE4PipPekkpUVQoSmlHQiVPUk9ebDcwWDJIfW55
dGUyM052K2hWa0VDfCNtNjdwMAp6d3wxcFE+V3h3QEtSIX4/emlRSmlVOUJBRiE3eTR2LX5hWl9G
PmR0MT9PfTl9NCktTWMmXzVGUU0oK0dydnxseyUKej57Wk9vOTl2X2JqYjxpUmJFRz07dCpuNEU1
T31vbFQjLStUWH45Mi1uY0EzNjJVQ1BVcz5iUzxvWnphYzhQQldMCnpNcE1xNTxBP1h2WVdvZiFj
USZBYnd+fX0qemhVR0gxO1ojNyR0ZiFxNFdtJVY4eVY+UlJIezt+V3dkTjJ0Q09DfQp6a0ZfZTUp
PnN+RFAwXjk1WlBlTFMqfTN9OyVlckl0JlB1dmdzaWFKNldHcXtEWDZMSGF4bWw7MjlVSE9DUkhh
ZiYKemJGYjd+bjREWl9tWGc+YndvT1EoXz48JX5MWTxTU2dKTElsUHxGdWVyZGNaRjtrdjQtcS1B
bkJvaFR1U15qdDJaCnpOeXJ8bV5eZlUlVDI8K2wlQHZHSng+X3Blc1hYfjtgSUtITFJucn0ja2p0
dnpfb3RjMS0tYXp8dXE8UERhbzJMPwp6bWg2Xll0SlFnREB7UCY7eytocjQjRSF8d0NTZ3NCO30r
KW80Q2o3JHUmJHd5Z1R1MERIeDdJd25PS0d9WUZTbXQKenBDWX07djIoPkNWU2BMfl42NlNDS2BQ
WSl2T1d2Tm8oaDdsaGBDMm1LWk5XQk1DWFlKSj5SIzx2LUklPF5zO0B3CnpPUiowKiMjamlOJGhz
M0FrLSFQVkFOZkxOQCN+UUhrJCspRHo2RzY5amRNI0BhcTd8JGRSVnNAeDZ1cDk7JDJVIQp6Smko
UjJob19SaT9NY2pvakRFQXdmNzRHZ1FBJCZoZ0ZYbyVIX3tCYXI+aXV1JFYmbD5KM0BkIWw8K3tm
Q0M/dnUKej82RCgzQWx7Pn5MJkUxQ2RuXmJMMnA0MmYyd0RYJGM8Y2pRYG1KJkNTN0t6SDFRI1lG
bWV0RmslSXlIdGlWKHhYCnohNnhDMTlMdlJDQSpuPUxONjRjcDFlX2c/JlBeNjQ3N3AqJmFkPV4o
STV7Xk8rQ2w1ISZYR2lGal9mP3h2YzJIaAp6XnAxc25ReEZ9S2xhTnFUYHhiVmpwQUVjMWM1ZChD
N1dvMz9RP3c1Nm95KmJASUxeXnhkUHA5dXU9fk0oWUA0aHMKeiM/RjAwUGZJMlRlPmxfS254V0dQ
U3U4ZVNMdnhuc2coU1k/PGlUZTE7S0A2WmMteVdFd3tGOD1ZO21xKERpYj85CnpeP0dPTGdrbT00
N1JQdW04R2FKP1hOUz1lZGNKUlhIKlpCdD1gV2JZVERIKzR1Y18wPil7MF5+ZmspIyNCe0xobwp6
LUdQWFUpZHAwX0IqJDllQENIWmc7eWk+ajNpUE8zRXBNSE9LJUNGYGVRfGgwZWJIdH49bjJCYD1W
amVjUlJmay0KejlGeVpwXn0xOWsybkp3Mz83fHV1dTFQSUdxUyNCPVhGYUF0Vz5rZHN0Qk1Wemxs
al9xJVYwQz9DZz5kU1IhM3EtCnpGWUxXPV52fiFPe14pM2spTl9FMlVmP31+RkJ9IUd1PlQyQk0z
cyhTVjdsLU5kKzRLdHtqYCVFIUhNfXZfNWZ6WQp6dC04X2ltWTVae09+Und5WGNJcmpsaGhfVDZW
PDcxJW9nY2s3JD5vUDFWVWtUZChwX25STjA9I3lNdXs+Sm40JGIKejZGQ3hRMGJgZD8kTWI/fllq
YnpNJVk4cGdXO0xYOWhLKUoyeUw8TGZRSThNXmg9NFZad3RtPlYrQipJI3c5TF55CnpBYkVrKUAo
dV9DWCY0STUhRHh7WWRjY1o1cSFJSVk1RUFUckEqM09lZlZ8fl80V14zfGNaKkgyN0hxKTw9Q1Rn
RQp6M29+fEgldk90Ukd1cm9iTjwhazcoaGhablVhVUJNdnZPZlViezVJUDRGJnlPLT9NdVdXUDg0
U2dGTlU2JFl+R18KejRoaVVwQzlwbClNfnMkJS0zNzJZMmpmZlhWX2Y+Q2FZYzZ0O34xQilGdlVt
YGlWQDNKMUpAeXE0dEU7Mzhmb1laCno8VWxKVlpeUCZaTSMxMm8oZUUwWno8eX0taHlkfCR5Vm5h
dEM+YClRbGgmYHRkdjZJUllIVjwqKmUwPE9OekItbAp6Q3F1KjQ5VHheMSR4Z1MqP0xeOXpucDJh
Ulkmb216Y3g1SzFOV34rXkVNIXZCcWlidVlIUnNeSEozJHswTmhWVU8KekopM0pMWkJzUkNHI2Ru
U2tnMXs5XilXOXAhPCU9WlohSmckN3FVRGVZOE5qaTdOK0FRO3UxJXs8PD1uODshbyZsCnpMI2Vi
RCM9N0N5TGFVTjBTaD4lK1c7diVEeHc3ZnJjT1BGaEQ+KTtUdEM7VF9XIU83WnNxYXlQVnE/TmVl
TDZWPgp6NDR7aD43JkhtWjNPeUIpMmdSYCpmflZrdkslI1dMOXM9PH1WQjZwV1IwbCkmQGZkYjZ4
PjNjTVpZMCY/PEp9RUUKejtTbEZnJS1yYHpjT1BncDQodU5GV0lkKEJaWWk1KThJfXdaYV4jdXRA
TEdNQHVgRmt+ZShqbyhnR3I7QUItJV8zCnpoRUxBOCkoPD98WXdfQ3Q2ajNsOCt1UT5pditXS1Vt
TiZOMVRPQEE+N0NwNClHfH41YnJiS0k5JUhYVmBwM20xTwp6Iz9xQUk8O1I8cU5ePzk8QGdWbnUp
YSFxbXRmMjN2czwwaGxGOy1LbEVYbkZARCQyM1ExaGxlUSMyY0JudHRRKFQKeks0K19WKE9UaVk3
RkpLSUQxUGxrci1vUWVKam8jKlIqPiMhYCN+PWB6N3Rhak96QDJlMlcqQGhWMWZNYVpBTGBLCnor
Y3NSYCs4V1NkVTBATzE1K0FPX2czYjgyZTxPcl9wRD1GTjdBRTlsM0FnWX47QlZtc2tuV181UDhJ
Nk5wK0pKUgp6UVJFUF8qdUwxblUwaUkwLTFBKkcjSn1yPHdaZTdnZHBgR1Z6bUU9V3t8P3M7VHNR
MFlOV0EkeXpYJHNCRVAhUDAKemF2IUBoeCVhZjc0ST8/Y0UwKTl1Sz82MWhOblozTjB0Z3R5Qi00
XzdpbTdaa2tQUCpOeW93XmdWVSFnNE5KZjg8Cno4YSt8bWpaO1lrYT1gOzA9bmU3cDFaSWpabTM3
Q3ZkZmpfPl5fcUFLejVhYShWQExURT9rMGJkWDN1SHE0Y1lCOQp6JUk9VmZJRHh9YS1HWEIjSmxu
eShmVCo7RmohflYyeGVeYkxVJU9VIypYSDVHT3MmdUNmM0d3fnZlb0lPaUhXN0AKekQkY3FWJipK
V0Q7OT8yS0NXe2x5aG1+fERnWD1hJCl4SiFZNT9NfTMlKTdSPyZVKmImQThwUm8yb0s+PzQ4dV5L
CnpkMDVOOVlmRjQyO2s1ekRTcStGfUM2aEBqX1k3bDdZJXEwajUwU0B4VDRaJlFINkpZI0cke098
d2k2aV9MdVFETwp6NGV8WTI7fEFBaig0UiVsM0klJilaTnhASTdkPHorVmduUVFwdVU2Jjd0cU59
a0NZfVVPI2tOaFl9Z2FmdURFOUYKemxJS0Z9RVcqQHg+bVBlT2Y5RFRhVDAjYjZmM2Y8X0pDa18q
STs7bHs+azhrfHUmN3dIcTM9Oz5XMUBVciF1YzF+CnpBQTBFMmVlaDVySEFTJUZJN3VoKi1Zc1FZ
PnJ3aTMxU0BYdSQ4cGwwJUUjbHByPy1ebGtmeEItTz00PTN6PStxYwp6QmtkITJhZzAyK2llTXVZ
NUdXbFdjcmsxdml+UVJQUFdPKG11a3NtdSkkPH1lPGdaRUpsa2IkanF4XipPYklSezIKemYxQDV6
cEhLdHN2TDVLYXMoOyg0OCpkcTNORytSK1hgMl8hJWpSI0lle1RMfmBwKSMlR3hmfUJDZH5BKl9o
I1NCCnplazwzXjltc3Q9X3J2Xkh7di1KZGBPb0c1cihoUHxEIWVhZGRPIU9uV0N9ZSolR017eGVr
V2NKUFMjJXhsZHBKcAp6NDlrRmIjSU9TUiE1Q0k/JEJ+Tys0VSVkcGhEflZVdnlmZH1OZzs9RE1z
UzJQZitMJn05Tn49TTJ4a09xWHVDZ2QKejh7eXBpcTFUTisyLXtUVyhsZ0okYWBFaT5FI0hASXs8
ZHNXMH1UMit6QW1GTCZDYTBKZDNLSzM+PE42Q1gyVmY5ClNpIWFZa0FrZzxgVnBSMEw+R09ZeStP
PmxLCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMv
dGlueW1jZS5zdmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9qcy9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS5zdmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZlYjliYTM4ZGUxCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMv
bGlnaHRncmF5L2ZvbnRzL3RpbnltY2Uuc3ZnCkBAIC0wLDAgKzEsNjMgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0Mv
L0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFRE
L3N2ZzExLmR0ZCIgPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgor
PG1ldGFkYXRhPkdlbmVyYXRlZCBieSBJY29Nb29uPC9tZXRhZGF0YT4KKzxkZWZzPgorPGZvbnQg
aWQ9InRpbnltY2UiIGhvcml6LWFkdi14PSI1MTIiPgorPGZvbnQtZmFjZSB1bml0cy1wZXItZW09
IjUxMiIgYXNjZW50PSI0ODAiIGRlc2NlbnQ9Ii0zMiIgLz4KKzxtaXNzaW5nLWdseXBoIGhvcml6
LWFkdi14PSI1MTIiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjA7IiBkPSIiIGhvcml6LWFkdi14
PSIyNTYiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMDsiIGQ9Ik00NDggNDgwaC00NDh2LTUx
Mmg1MTJ2NDQ4bC02NCA2NHpNMjU2IDQxNmg2NHYtMTI4aC02NHYxMjh6TTQ0OCAzMmgtMzg0djM4
NGgzMnYtMTYwaDI4OHYxNjBoMzcuNDg5bDI2LjUxMS0yNi41MDl2LTM1Ny40OTF6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwMDE7IiBkPSJNNDUxLjcxNiAzODAuMjg1bC03MS40MzIgNzEuNDMx
Yy0xNS41NTYgMTUuNTU2LTQ2LjI4NCAyOC4yODQtNjguMjg0IDI4LjI4NGgtMjQwYy0yMiAwLTQw
LTE4LTQwLTQwdi00MzJjMC0yMiAxOC00MCA0MC00MGgzNjhjMjIgMCA0MCAxOCA0MCA0MHYzMDRj
MCAyMi0xMi43MjggNTIuNzI5LTI4LjI4NCA2OC4yODV6TTQyOS4wODkgMzU3LjY1N2MxLjU2NS0x
LjU2NSAzLjEyNS0zLjQ4NyA0LjY0LTUuNjU3aC04MS43Mjl2ODEuNzI4YzIuMTctMS41MTUgNC4w
OTItMy4wNzUgNS42NTctNC42NGw3MS40MzItNzEuNDMxek00NDggOGMwLTQuMzM2LTMuNjY0LTgt
OC04aC0zNjhjLTQuMzM2IDAtOCAzLjY2NC04IDh2NDMyYzAgNC4zMzYgMy42NjQgOCA4IDhoMjQw
YzIuNDE2IDAgNS4xMjctMC4zMDUgOC0wLjg1MnYtMTI3LjE0OGgxMjcuMTQ4YzAuNTQ3LTIuODcz
IDAuODUyLTUuNTgzIDAuODUyLTh2LTMwNHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsi
IGQ9Ik01MTIgMTgzLjc3MXY4MC40NThsLTc5LjU3MiA3Ljk1N2MtNC4wOTMgMTUuMDIxLTEwLjA0
NCAyOS4yNzQtMTcuNjA1IDQyLjQ5bDUyLjI5OCA2My45MTktNTYuNTI2IDU2LjUyNS02My45MTgt
NTIuMjk4Yy0xMy4yMTcgNy41NjItMjcuNDcxIDEzLjUxMy00Mi40OTEgMTcuNjA0bC03Ljk1NyA3
OS41NzRoLTgwLjQ1OGwtNy45NTctNzkuNTczYy0xNS4wMjEtNC4wOTMtMjkuMjc0LTEwLjA0My00
Mi40OS0xNy42MDRsLTYzLjkxOSA1Mi4yOTctNTYuNTI1LTU2LjUyNSA1Mi4yOTgtNjMuOTE4Yy03
LjU2Mi0xMy4yMTYtMTMuNTEzLTI3LjQ3LTE3LjYwNS00Mi40OWwtNzkuNTczLTcuOTU4di04MC40
NThsNzkuNTczLTcuOTU3YzQuMDkzLTE1LjAyMSAxMC4wNDMtMjkuMjc0IDE3LjYwNS00Mi40OTFs
LTUyLjI5OC02My45MTggNTYuNTI0LTU2LjUyNCA2My45MTkgNTIuMjk4YzEzLjIxNi03LjU2MiAy
Ny40Ny0xMy41MTQgNDIuNDktMTcuNjA1bDcuOTU4LTc5LjU3NGg4MC40NThsNy45NTcgNzkuNTcy
YzE1LjAyMSA0LjA5MyAyOS4yNzQgMTAuMDQ0IDQyLjQ5MSAxNy42MDVsNjMuOTE4LTUyLjI5OCA1
Ni41MjQgNTYuNTI0LTUyLjI5OCA2My45MThjNy41NjIgMTMuMjE3IDEzLjUxNCAyNy40NzEgMTcu
NjA1IDQyLjQ5bDc5LjU3NCA3Ljk2ek0zNTIgMTkybC02NC02NGgtNjRsLTY0IDY0djY0bDY0IDY0
aDY0bDY0LTY0di02NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMzsiIGQ9Ik0wIDQ0OGg1
MTJ2LTY0aC01MTJ6TTAgMzUyaDMyMHYtNjRoLTMyMHpNMCAxNjBoMzIwdi02NGgtMzIwek0wIDI1
Nmg1MTJ2LTY0aC01MTJ6TTAgNjRoNTEydi02NGgtNTEyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDA0OyIgZD0iTTAgNDQ4aDUxMnYtNjRoLTUxMnpNOTYgMzUyaDMyMHYtNjRoLTMyMHpNOTYg
MTYwaDMyMHYtNjRoLTMyMHpNMCAyNTZoNTEydi02NGgtNTEyek0wIDY0aDUxMnYtNjRoLTUxMnoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNTsiIGQ9Ik0wIDQ0OGg1MTJ2LTY0aC01MTJ6TTE5
MiAzNTJoMzIwdi02NGgtMzIwek0xOTIgMTYwaDMyMHYtNjRoLTMyMHpNMCAyNTZoNTEydi02NGgt
NTEyek0wIDY0aDUxMnYtNjRoLTUxMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNjsiIGQ9
Ik0wIDQ0OGg1MTJ2LTY0aC01MTJ6TTAgMzUyaDUxMnYtNjRoLTUxMnpNMCAyNTZoNTEydi02NGgt
NTEyek0wIDE2MGg1MTJ2LTY0aC01MTJ6TTAgNjRoNTEydi02NGgtNTEyeiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDA3OyIgZD0iTTQ0NS4zODcgMTI1LjQyM2MtMjIuODI3IDIyLjc3OC01MS44
NjQgMzQuNTM2LTc4Ljk3MyAzNC41MzZoLTE0LjU1NmwtMzEuOTUyIDMyLjAwNCAxMjcuODEgMTI4
LjAxOWMzMS45NTIgMzIuMDA1IDMxLjk1MiA5Ni4wMTQgMCAxMjguMDE5bC0xOTEuNzE1LTE5Mi4w
MjgtMTkxLjcxNiAxOTIuMDI3Yy0zMS45NTItMzIuMDA0LTMxLjk1Mi05Ni4wMTQgMC0xMjguMDE5
bDEyNy44MTEtMTI4LjAxNy0zMS45NTMtMzIuMDA0aC0xNC41NTdjLTI3LjExIDAtNTYuMTQ2LTEx
Ljc1OS03OC45NzQtMzQuNTM4LTQwLjgxMS00MC43MjEtNDYuMzI1LTEwMS4yNDItMTIuMzE1LTEz
NS4xNzUgMTQuOTg1LTE0Ljk1MSAzNS4xNDQtMjIuMjQ3IDU2LjQ5OC0yMi4yNDcgMjcuMTA4IDAg
NTYuMTQ1IDExLjc1NyA3OC45NzMgMzQuNTM2IDI2Ljc5MiAyNi43MzIgMzguMzcxIDYyIDMzLjU0
MiA5Mi42NzRsMzIuNjkyIDMyLjc0NCAzMi42ODgtMzIuNzQ0Yy00LjgyOC0zMC42NzQgNi43NTMt
NjUuOTQxIDMzLjU0Mi05Mi42NzQgMjIuODMxLTIyLjc3OSA1MS44NjYtMzQuNTM2IDc4Ljk3NC0z
NC41MzYgMjEuMzU0IDAgNDEuNTEyIDcuMjk2IDU2LjQ5NyAyMi4yNDggMzQuMDEwIDMzLjkzMyAy
OC40OTQgOTQuNDU0LTEyLjMxNiAxMzUuMTc1ek0xNzYuNTEyIDU3LjIzMWMtMy44NDktOC45NDEt
OS41MDUtMTcuMTczLTE2LjgxMy0yNC40NjMtNy4zMTgtNy4zMDItMTUuNTg2LTEyLjk1OS0yNC41
NzQtMTYuODEyLTguMDY2LTMuNDU4LTE2LjQ4LTUuMjg0LTI0LjMzMS01LjI4NC03LjU3MyAwLTE4
LjMwNiAxLjcwMS0yNi40MzEgOS44MDYtOC4wNjggOC4wNTItOS43NiAxOC42NTktOS43NiAyNi4x
NDQgMCA3Ljc3MSAxLjgyMSAxNi4xMDUgNS4yNjMgMjQuMTA2IDMuODUgOC45NDIgOS41MDcgMTcu
MTczIDE2LjgxMyAyNC40NjMgNy4zMTcgNy4zMDMgMTUuNTg2IDEyLjk1NyAyNC41NzUgMTYuODEy
IDguMDY3IDMuNDU3IDE2LjQ4IDUuMjg0IDI0LjMzMiA1LjI4NCA3LjU3MyAwIDE4LjMwNi0xLjcg
MjYuNDI5LTkuODA3IDguMDY3LTguMDQ5IDkuNzYxLTE4LjY1OCA5Ljc2MS0yNi4xNDIgMC4wMDEt
Ny43NzEtMS44MTktMTYuMTA4LTUuMjY0LTI0LjEwN3pNMjU2LjAwMiAxNDYuNzAyYy0yNC45NTcg
MC00NS4xODggMjAuMjY2LTQ1LjE4OCA0NS4yNjMgMCAyNC45OTYgMjAuMjMxIDQ1LjI2IDQ1LjE4
OCA0NS4yNnM0NS4xODYtMjAuMjY0IDQ1LjE4Ni00NS4yNmMwLTI0Ljk5OS0yMC4yMy00NS4yNjMt
NDUuMTg2LTQ1LjI2M3pNNDI3LjYzNiAyMC40NzljLTguMTI0LTguMTA0LTE4Ljg1Ni05LjgwNi0y
Ni40My05LjgwNi03Ljg1MiAwLTE2LjI2NSAxLjgyNi0yNC4zMzMgNS4yODQtOC45ODYgMy44NTMt
MTcuMjU0IDkuNTEtMjQuNTcxIDE2LjgxMi03LjMwNyA3LjI5LTEyLjk2MyAxNS41MjEtMTYuODEz
IDI0LjQ2My0zLjQ0MyA3Ljk5OS01LjI2MyAxNi4zMzYtNS4yNjMgMjQuMTA2IDAgNy40ODMgMS42
OTIgMTguMDk0IDkuNzYgMjYuMTQzIDguMTIzIDguMTA0IDE4Ljg1NiA5LjgwNyAyNi40MyA5Ljgw
NyA3Ljg1IDAgMTYuMjY1LTEuODI3IDI0LjMzLTUuMjg0IDguOTg5LTMuODU0IDE3LjI1OC05LjUw
OSAyNC41NzUtMTYuODEyIDcuMzA1LTcuMjkgMTIuOTYyLTE1LjUyMSAxNi44MTMtMjQuNDYzIDMu
NDQyLTcuOTk5IDUuMjYzLTE2LjMzNSA1LjI2My0yNC4xMDYtMC4wMDEtNy40ODUtMS42OTUtMTgu
MDkzLTkuNzYxLTI2LjE0NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwODsiIGQ9Ik00MTYg
MzIwdjgwYzAgOC44LTcuMiAxNi0xNiAxNmgtMTEydjMyYzAgMTcuNi0xNC40IDMyLTMyIDMyaC02
NGMtMTcuNjAyIDAtMzItMTQuNC0zMi0zMnYtMzJoLTExMmMtOC44MDEgMC0xNi03LjItMTYtMTZ2
LTMyMGMwLTguOCA3LjE5OS0xNiAxNi0xNmgxNDR2LTk2aDIyNGw5NiA5NnYyNTZoLTk2ek0xOTIg
NDQ3Ljk0M2MwLjAxNyAwLjAxOSAwLjAzNiAwLjAzOSAwLjA1NyAwLjA1N2g2My44ODRjMC4wMjEt
MC4wMTggMC4wNDEtMC4wMzggMC4wNTktMC4wNTd2LTMxLjk0M2gtNjR2MzEuOTQzek05NiAzNTJ2
MzJoMjU2di0zMmgtMjU2ek00MTYgMTMuMjU1djUwLjc0NWg1MC43NDVsLTUwLjc0NS01MC43NDV6
TTQ4MCA5NmgtOTZ2LTk2aC0xNjB2Mjg4aDI1NnYtMTkyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDA5OyIgZD0iTTMyIDQ4MGgxOTJ2LTMyaC0xOTJ6TTI4OCA0ODBoMTkydi0zMmgtMTkyek00
NzYgMzIwaC0yOHYxMjhoLTEyOHYtMTI4aC0xMjh2MTI4aC0xMjh2LTEyOGgtMjhjLTE5LjggMC0z
Ni0xNi4yLTM2LTM2di0yODBjMC0xOS44IDE2LjItMzYgMzYtMzZoMTUyYzE5LjggMCAzNiAxNi4y
IDM2IDM2djE4OGg2NHYtMTg4YzAtMTkuOCAxNi4yLTM2IDM2LTM2aDE1MmMxOS44IDAgMzYgMTYu
MiAzNiAzNnYyODBjMCAxOS44LTE2LjIgMzYtMzYgMzZ6TTE3NCAwaC0xMjRjLTkuOSAwLTE4IDcu
Mi0xOCAxNnM4LjEgMTYgMTggMTZoMTI0YzkuOSAwIDE4LTcuMiAxOC0xNnMtOC4xLTE2LTE4LTE2
ek0yNzIgMjI0aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmgzMmM4LjggMCAx
Ni03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNNDYyIDBoLTEyNGMtOS45IDAtMTggNy4yLTE4IDE2
czguMSAxNiAxOCAxNmgxMjRjOS45IDAgMTgtNy4yIDE4LTE2cy04LjEtMTYtMTgtMTZ6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMGE7IiBkPSJNMTkyIDQ0OGgzMjB2LTY0aC0zMjB2NjR6TTE5
MiAyNTZoMzIwdi02NGgtMzIwdjY0ek0xOTIgNjRoMzIwdi02NGgtMzIwdjY0ek0wIDQxNmMwIDM1
LjM0NiAyOC42NTQgNjQgNjQgNjRzNjQtMjguNjU0IDY0LTY0YzAtMzUuMzQ2LTI4LjY1NC02NC02
NC02NC0zNS4zNDYgMC02NCAyOC42NTQtNjQgNjR6TTAgMjI0YzAgMzUuMzQ2IDI4LjY1NCA2NCA2
NCA2NHM2NC0yOC42NTQgNjQtNjRjMC0zNS4zNDYtMjguNjU0LTY0LTY0LTY0LTM1LjM0NiAwLTY0
IDI4LjY1NC02NCA2NHpNMCAzMmMwIDM1LjM0NiAyOC42NTQgNjQgNjQgNjRzNjQtMjguNjU0IDY0
LTY0YzAtMzUuMzQ2LTI4LjY1NC02NC02NC02NC0zNS4zNDYgMC02NCAyOC42NTQtNjQgNjR6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGI7IiBkPSJNMTkyIDY0aDMyMHYtNjRoLTMyMHpNMTky
IDI1NmgzMjB2LTY0aC0zMjB6TTE5MiA0NDhoMzIwdi02NGgtMzIwek05NiA0ODB2LTEyOGgtMzJ2
OTZoLTMydjMyek02NCAyMTd2LTI1aDY0di0zMmgtOTZ2NzNsNjQgMzB2MjVoLTY0djMyaDk2di03
M3pNMTI4IDEyOHYtMTYwaC05NnYzMmg2NHYzMmgtNjR2MzJoNjR2MzJoLTY0djMyeiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMDBjOyIgZD0iTTAgNDQ4aDUxMnYtNjRoLTUxMnpNMTkyIDM1Mmgz
MjB2LTY0aC0zMjB6TTE5MiAyNTZoMzIwdi02NGgtMzIwek0xOTIgMTYwaDMyMHYtNjRoLTMyMHpN
MCA2NGg1MTJ2LTY0aC01MTJ6TTAgMTI4djE5MmwxMjgtOTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwMGQ7IiBkPSJNMCA0NDhoNTEydi02NGgtNTEyek0xOTIgMzUyaDMyMHYtNjRoLTMyMHpN
MTkyIDI1NmgzMjB2LTY0aC0zMjB6TTE5MiAxNjBoMzIwdi02NGgtMzIwek0wIDY0aDUxMnYtNjRo
LTUxMnpNMTI4IDMyMHYtMTkybC0xMjggOTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMGU7
IiBkPSJNMTEyLjUgMjU2YzYxLjg1NiAwIDExMi01MC4xNDUgMTEyLTExMiAwLTYxLjg1Ni01MC4x
NDQtMTEyLTExMi0xMTItNjEuODU2IDAtMTEyIDUwLjE0NC0xMTIgMTEybC0wLjUgMTZjMCAxMjMu
NzEyIDEwMC4yODggMjI0IDIyNCAyMjR2LTY0Yy00Mi43MzcgMC04Mi45MTctMTYuNjQzLTExMy4x
MzctNDYuODYzLTUuODE3LTUuODE4LTExLjEyNi0xMi4wMDgtMTUuOTE1LTE4LjUxIDUuNzE5IDAu
OSAxMS41OCAxLjM3MyAxNy41NTIgMS4zNzN6TTQwMC41IDI1NmM2MS44NTUgMCAxMTItNTAuMTQ1
IDExMi0xMTIgMC02MS44NTYtNTAuMTQ1LTExMi0xMTItMTEyLTYxLjg1NSAwLTExMiA1MC4xNDQt
MTEyIDExMmwtMC41IDE2YzAgMTIzLjcxMiAxMDAuMjg4IDIyNCAyMjQgMjI0di02NGMtNDIuNzM3
IDAtODIuOTE3LTE2LjY0My0xMTMuMTM3LTQ2Ljg2My01LjgxOC01LjgxOC0xMS4xMjctMTIuMDA4
LTE1LjkxNi0xOC41MSA1LjcyIDAuOSAxMS41OCAxLjM3MyAxNy41NTMgMS4zNzN6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwMGY7IiBkPSJNMzgwLjkzMS0zMmM1Ni44NjMgMTAzLjAxNiA2Ni40
NDQgMjYwLjE1My0xNTYuOTMxIDI1NC45MTJ2LTEyNi45MTJsLTE5MiAxOTIgMTkyIDE5MnYtMTI0
LjE4NmMyNjcuNDgxIDYuOTcxIDI5Ny4yODUtMjM2LjEwNyAxNTYuOTMxLTM4Ny44MTR6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNMjg4IDM1NS44MTR2MTI0LjE4NmwxOTItMTky
LTE5Mi0xOTJ2MTI2LjkxMmMtMjIzLjM3NSA1LjI0MS0yMTMuNzk0LTE1MS44OTYtMTU2LjkzLTI1
NC45MTItMTQwLjM1NiAxNTEuNzA3LTExMC41NSAzOTQuNzg1IDE1Ni45MyAzODcuODE0eiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDExOyIgZD0iTTE2MCAxMjhjOC44LTguOCAyMy42MzctOC4z
NjMgMzIuOTcxIDAuOTcxbDE1OC4wNTkgMTU4LjA1OGM5LjMzNCA5LjMzNCA5Ljc3IDI0LjE3MSAw
Ljk3IDMyLjk3MXMtMjMuNjM3IDguMzYzLTMyLjk3MS0wLjk3MWwtMTU4LjA1OC0xNTguMDU4Yy05
LjMzNC05LjMzNC05Ljc3MS0yNC4xNzEtMC45NzEtMzIuOTcxek0yMzguNDQ0IDE0Mi40NDRjMi4y
OC00LjUyNSAzLjQ5NS05LjU4IDMuNDk1LTE0Ljg0OCAwLTguODA4LTMuMzcyLTE3LjAzMC05LjQ5
Ni0yMy4xNTRsLTgxLjY5MS04MS42OTFjLTYuMTI0LTYuMTI0LTE0LjM0Ny05LjQ5Ni0yMy4xNTQt
OS40OTZzLTE3LjAzMCAzLjM3Mi0yMy4xNTQgOS40OTZsLTQ5LjY5MSA0OS42OTFjLTYuMTI0IDYu
MTI0LTkuNDk2IDE0LjM0Ny05LjQ5NiAyMy4xNTRzMy4zNzIgMTcuMDMwIDkuNDk2IDIzLjE1NGw4
MS42OTEgODEuNjkxYzYuMTI0IDYuMTI0IDE0LjM0NyA5LjQ5NyAyMy4xNTQgOS40OTcgNS4yNjgg
MCAxMC4zMjItMS4yMTUgMTQuODQ4LTMuNDk1bDMyLjY2OSAzMi42NjljLTEzLjkzNSAxMC43MDUt
MzAuNzIgMTYuMDgwLTQ3LjUxNyAxNi4wODAtMTkuOTkzIDAtMzkuOTg2LTcuNTgzLTU1LjE1NC0y
Mi43NTFsLTgxLjY5MS04MS42OTFjLTMwLjMzNS0zMC4zMzUtMzAuMzM1LTc5Ljk3NCAwLTExMC4z
MDlsNDkuNjkxLTQ5LjY5MWMxNS4xNjctMTUuMTY2IDM1LjE2LTIyLjc1IDU1LjE1My0yMi43NSAx
OS45OTQgMCAzOS45ODcgNy41ODQgNTUuMTU0IDIyLjc1MWw4MS42OTEgODEuNjkxYzI3LjkxIDI3
LjkxIDMwLjExOSA3Mi4xNDkgNi42NzIgMTAyLjY3MmwtMzIuNjctMzIuNjd6TTQ4OS4yNDkgNDA3
LjU1OGwtNDkuNjkxIDQ5LjY5MWMtMTUuMTY3IDE1LjE2OC0zNS4xNiAyMi43NTEtNTUuMTU0IDIy
Ljc1MS0xOS45OTMgMC0zOS45ODYtNy41ODMtNTUuMTU0LTIyLjc1MWwtODEuNjkxLTgxLjY5MWMt
MjcuOTEtMjcuOTEtMzAuMTE5LTcyLjE0OS02LjY3MS0xMDIuNjcxbDMyLjY2OSAzMi42N2MtMi4y
NzkgNC41MjUtMy40OTQgOS41OC0zLjQ5NCAxNC44NDcgMCA4LjgwOCAzLjM3MiAxNy4wMzAgOS40
OTYgMjMuMTU0bDgxLjY5MSA4MS42OTFjNi4xMjQgNi4xMjQgMTQuMzQ3IDkuNDk3IDIzLjE1NCA5
LjQ5N3MxNy4wMzAtMy4zNzMgMjMuMTU0LTkuNDk3bDQ5LjY5MS00OS42OTFjNi4xMjQtNi4xMjQg
OS40OTYtMTQuMzQ3IDkuNDk2LTIzLjE1NHMtMy4zNzItMTcuMDMwLTkuNDk2LTIzLjE1NGwtODEu
NjkxLTgxLjY5MWMtNi4xMjQtNi4xMjQtMTQuMzQ3LTkuNDk2LTIzLjE1NC05LjQ5Ni01LjI2OCAw
LTEwLjMyMiAxLjIxNS0xNC44NDggMy40OTVsLTMyLjY2OS0zMi42NjljMTMuOTM2LTEwLjcwNSAz
MC43Mi0xNi4wODAgNDcuNTE3LTE2LjA4MCAxOS45OTQgMCAzOS45ODcgNy41ODQgNTUuMTU0IDIy
Ljc1MWw4MS42OTEgODEuNjkxYzMwLjMzNSAzMC4zMzMgMzAuMzM1IDc5Ljk3MiAwIDExMC4zMDd6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTI7IiBkPSJNMjM4LjQ0NCAxNDIuNDQzYzIuMjgt
NC41MjQgMy40OTUtOS41NzkgMy40OTUtMTQuODQ4IDAtOC44MDgtMy4zNzItMTcuMDI5LTkuNDk2
LTIzLjE1NGwtODEuNjktODEuNjljLTYuMTI0LTYuMTI0LTE0LjM0OC05LjQ5Ni0yMy4xNTQtOS40
OTZzLTE3LjAzMCAzLjM3Mi0yMy4xNTQgOS40OTZsLTQ5LjY5IDQ5LjY5Yy02LjEyNCA2LjEyNS05
LjQ5NiAxNC4zNDgtOS40OTYgMjMuMTU0czMuMzcyIDE3LjAzMCA5LjQ5NiAyMy4xNTRsODEuNjkg
ODEuNjkxYzYuMTI0IDYuMTIzIDE0LjM0OCA5LjQ5NiAyMy4xNTQgOS40OTYgNS4yNjkgMCAxMC4z
MjItMS4yMTUgMTQuODQ4LTMuNDk0bDMyLjY2OSAzMi42NjhjLTEzLjkzNSAxMC43MDUtMzAuNzIg
MTYuMDgwLTQ3LjUxNyAxNi4wODAtMTkuOTkzIDAtMzkuOTg2LTcuNTgzLTU1LjE1NC0yMi43NTFs
LTgxLjY5LTgxLjY5MWMtMzAuMzM1LTMwLjMzNS0zMC4zMzUtNzkuOTc1IDAtMTEwLjMwOWw0OS42
OS00OS42OTFjMTUuMTY3LTE1LjE2NiAzNS4xNi0yMi43NSA1NS4xNTMtMjIuNzUgMTkuOTk0IDAg
MzkuOTg3IDcuNTg0IDU1LjE1NCAyMi43NTFsODEuNjkgODEuNjljMjcuOTEgMjcuOTEgMzAuMTE5
IDcyLjE0OSA2LjY3MiAxMDIuNjczbC0zMi42Ny0zMi42Njl6TTQ4OS4yNDggNDA3LjU1OGwtNDku
NjkgNDkuNjkxYy0xNS4xNjcgMTUuMTY4LTM1LjE2IDIyLjc1MS01NS4xNTQgMjIuNzUxLTE5Ljk5
MyAwLTM5Ljk4NS03LjU4My01NS4xNTMtMjIuNzUxbC04MS42OTEtODEuNjkxYy0yNy45MS0yNy45
MS0zMC4xMTktNzIuMTQ5LTYuNjcxLTEwMi42NzFsMzIuNjY5IDMyLjY3Yy0yLjI3OSA0LjUyNS0z
LjQ5NCA5LjU4LTMuNDk0IDE0Ljg0NyAwIDguODA4IDMuMzcyIDE3LjAzMCA5LjQ5NiAyMy4xNTRs
ODEuNjkxIDgxLjY5MWM2LjEyMyA2LjEyNCAxNC4zNDcgOS40OTcgMjMuMTUzIDkuNDk3IDguODA4
IDAgMTcuMDMwLTMuMzczIDIzLjE1NC05LjQ5N2w0OS42OS00OS42OTFjNi4xMjQtNi4xMjQgOS40
OTYtMTQuMzQ3IDkuNDk2LTIzLjE1NHMtMy4zNzItMTcuMDMwLTkuNDk2LTIzLjE1NGwtODEuNjkt
ODEuNjkxYy02LjEyNC02LjEyNC0xNC4zNDctOS40OTYtMjMuMTU0LTkuNDk2LTUuMjY4IDAtMTAu
MzIyIDEuMjE1LTE0Ljg0OCAzLjQ5NWwtMzIuNjY5LTMyLjY2OWMxMy45MzYtMTAuNzA1IDMwLjcy
LTE2LjA4MCA0Ny41MTctMTYuMDgwIDE5Ljk5NCAwIDM5Ljk4NyA3LjU4NCA1NS4xNTQgMjIuNzUy
bDgxLjY5IDgxLjY5YzMwLjMzNiAzMC4zMzMgMzAuMzM2IDc5Ljk3MiAwIDExMC4zMDd6TTExNi42
ODQgMzQwLjY4OGwtOTUuOTk3IDk1Ljk5NyAyMi42MjggMjIuNjI4IDk1Ljk5Ny05NS45OTd6TTE5
MiA0ODBoMzJ2LTk2aC0zMnpNMCAyODhoOTZ2LTMyaC05NnpNMzk1LjMxNiAxMDcuMzEybDk1Ljk5
OC05NS45OTgtMjIuNjI4LTIyLjYyOC05NS45OTggOTUuOTk4ek0yODggNjRoMzJ2LTk2aC0zMnpN
NDE2IDE5Mmg5NnYtMzJoLTk2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDEzOyIgZD0iTTk2
IDQ4MHYtNTEybDE2MCAxNjAgMTYwLTE2MHY1MTJoLTMyMHpNMzg0IDQ1LjI1NWwtMTI4IDEyOC0x
MjgtMTI4djQwMi43NDVoMjU2di00MDIuNzQ1eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE0
OyIgZD0iTTAgNDE2di00MTZoNTEydjQxNmgtNTEyek00ODAgMzJoLTQ0OHYzNTJoNDQ4di0zNTJ6
TTM1MiAzMDRjMCAyNi41MSAyMS40OSA0OCA0OCA0OHM0OC0yMS40OSA0OC00OGMwLTI2LjUxLTIx
LjQ5LTQ4LTQ4LTQ4LTI2LjUxIDAtNDggMjEuNDktNDggNDh6TTQ0OCA2NGgtMzg0bDk2IDI1NiAx
MjgtMTYwIDY0IDQ4eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE1OyIgZD0iTTAgNDE2di0z
ODRoNTEydjM4NGgtNTEyek05NiA2NGgtNjR2NjRoNjR2LTY0ek05NiAxOTJoLTY0djY0aDY0di02
NHpNOTYgMzIwaC02NHY2NGg2NHYtNjR6TTM4NCA2NGgtMjU2djMyMGgyNTZ2LTMyMHpNNDgwIDY0
aC02NHY2NGg2NHYtNjR6TTQ4MCAxOTJoLTY0djY0aDY0di02NHpNNDgwIDMyMGgtNjR2NjRoNjR2
LTY0ek0xOTIgMzIwdi0xOTJsMTI4IDk2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE2OyIg
ZD0iTTIyNCAxMjhoNjR2LTY0aC02NHpNMzUyIDM1MmMxNy42NzMgMCAzMi0xNC4zMjcgMzItMzJ2
LTk2bC05Ni02NGgtNjR2MzJsOTYgNjR2MzJoLTE2MHY2NGgxOTJ6TTI1NiA0MzJjLTU1LjU1OSAw
LTEwNy43OTItMjEuNjM2LTE0Ny4wNzgtNjAuOTIycy02MC45MjItOTEuNTE5LTYwLjkyMi0xNDcu
MDc4YzAtNTUuNTU5IDIxLjYzNi0xMDcuNzkyIDYwLjkyMi0xNDcuMDc4IDM5LjI4Ni0zOS4yODYg
OTEuNTE5LTYwLjkyMiAxNDcuMDc4LTYwLjkyMiA1NS41NTkgMCAxMDcuNzkyIDIxLjYzNiAxNDcu
MDc4IDYwLjkyMiAzOS4yODYgMzkuMjg2IDYwLjkyMiA5MS41MTkgNjAuOTIyIDE0Ny4wNzggMCA1
NS41NTktMjEuNjM2IDEwNy43OTItNjAuOTIyIDE0Ny4wNzgtMzkuMjg2IDM5LjI4Ni05MS41MTkg
NjAuOTIyLTE0Ny4wNzggNjAuOTIyek0yNTYgNDgwdjBjMTQxLjM4NSAwIDI1Ni0xMTQuNjE1IDI1
Ni0yNTZzLTExNC42MTUtMjU2LTI1Ni0yNTZjLTE0MS4zODUgMC0yNTYgMTE0LjYxNS0yNTYgMjU2
IDAgMTQxLjM4NSAxMTQuNjE1IDI1NiAyNTYgMjU2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDE3OyIgZD0iTTE2MCAzNTJsLTEyOC0xMjggMTI4LTEyOGg2NGwtMTI4IDEyOCAxMjggMTI4ek0z
NTIgMzUyaC02NGwxMjgtMTI4LTEyOC0xMjhoNjRsMTI4IDEyOHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAxODsiIGQ9Ik0yNTYgMzg0Yy0xMDYuMDM4IDAtMTkyLTg1Ljk2MS0xOTItMTkyczg1
Ljk2MS0xOTIgMTkyLTE5MmMxMDYuMDM3IDAgMTkyIDg1Ljk2MSAxOTIgMTkycy04NS45NjMgMTky
LTE5MiAxOTJ6TTM1Ny44MjIgOTAuMTc3Yy0yNy4xOTYtMjcuMTk4LTYzLjM1OC00Mi4xNzctMTAx
LjgyMi00Mi4xNzdzLTc0LjYyNSAxNC45NzktMTAxLjgyMyA0Mi4xNzdjLTI3LjE5OCAyNy4xOTct
NDIuMTc3IDYzLjM1OS00Mi4xNzcgMTAxLjgyM3MxNC45NzkgNzQuNjI1IDQyLjE3NyAxMDEuODIz
YzI3LjE5OCAyNy4xOTggNjMuMzU5IDQyLjE3NyAxMDEuODIzIDQyLjE3N3M3NC42MjYtMTQuOTc5
IDEwMS44MjEtNDIuMTc3YzI3LjIwMS0yNy4xOTggNDIuMTc5LTYzLjM1OSA0Mi4xNzktMTAxLjgy
M3MtMTQuOTc5LTc0LjYyNi00Mi4xNzgtMTAxLjgyM3pNMTYyLjk2NSAzNzguMDY5bC0yMS40NyA0
Mi45MzljLTQ5LjQzNy0yNC43NjgtODkuNzM1LTY1LjA2Ni0xMTQuNTAzLTExNC41MDRsNDIuOTM4
LTIxLjQ3YzIwLjEyNCA0MC4xNjggNTIuODY2IDcyLjkxMSA5My4wMzUgOTMuMDM1ek00NDIuMDY3
IDI4NS4wMzVsNDIuOTM5IDIxLjQ2OWMtMjQuNzY2IDQ5LjQzOC02NS4wNjMgODkuNzM2LTExNC41
MDIgMTE0LjUwNGwtMjEuNDcyLTQyLjkzOWM0MC4xNjktMjAuMTI0IDcyLjkxMi01Mi44NjYgOTMu
MDM1LTkzLjAzNHpNMjU2IDI4OGgtMzJ2LTk2YzAtNS4wNTUgMi4zNS05LjU1NSA2LjAxMS0xMi40
ODZsLTAuMDA2LTAuMDA4IDgwLTY0IDE5Ljk4OCAyNC45ODgtNzMuOTkzIDU5LjE5NXY4OC4zMTF6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTk7IiBkPSJNMjU2IDMyMGMtMTA0LjY4NCAwLTE5
Ny42MjItNTAuMjc4LTI1Ni0xMjggNTguMzc4LTc3LjcyMyAxNTEuMzE2LTEyOCAyNTYtMTI4IDEw
NC42ODQgMCAxOTcuNjIyIDUwLjI3NyAyNTYgMTI4LTU4LjM3OCA3Ny43MjItMTUxLjMxNiAxMjgt
MjU2IDEyOHpNMjI0IDI1NmMxNy42NzMgMCAzMi0xNC4zMjcgMzItMzJzLTE0LjMyNy0zMi0zMi0z
Mi0zMiAxNC4zMjctMzIgMzIgMTQuMzI3IDMyIDMyIDMyek0zODYuODA4IDEyNy4zNTJjLTE5Ljgy
NC0xMC4xMjktNDAuODI2LTE3LjkzMS02Mi40MjMtMjMuMTg4LTIyLjI0NC01LjQxOC00NS4yNTEt
OC4xNjQtNjguMzg1LTguMTY0LTIzLjEzMyAwLTQ2LjE0MSAyLjc0Ni02OC4zODQgOC4xNjItMjEu
NTk3IDUuMjU5LTQyLjU5OSAxMy4wNjEtNjIuNDIzIDIzLjE4OC0zMS41MSAxNi4xMDEtNjAuMTEx
IDM4LjIwNS04My44MiA2NC42NDkgMjMuNzA5IDI2LjQ0NCA1Mi4zMSA0OC41NSA4My44MiA2NC42
NDkgMTYuMTY4IDguMjYxIDMzLjEyMSAxNC45NzMgNTAuNTQxIDIwLjAyMC05Ljk0NC0xNS4xMjEt
MTUuNzM0LTMzLjIxNy0xNS43MzQtNTIuNjY4IDAtNTMuMDIwIDQyLjk4MS05NiA5Ni05NiA1My4w
MTkgMCA5NiA0Mi45OCA5NiA5NiAwIDE5LjQ1MS01Ljc5MSAzNy41NDctMTUuNzMzIDUyLjY3IDE3
LjQxOS01LjA0OCAzNC4zNzItMTEuNzYgNTAuNTQxLTIwLjAyMSAzMS41MTEtMTYuMDk5IDYwLjEw
OS0zOC4yMDQgODMuODE5LTY0LjY0OS0yMy43MS0yNi40NDMtNTIuMzA5LTQ4LjU1LTgzLjgxOS02
NC42NDh6TTQzMC40NTkgMzU4LjEzOWMtNTQuMzYgMjcuNzc3LTExMy4wNTYgNDEuODYxLTE3NC40
NTkgNDEuODYxLTYxLjQwMyAwLTEyMC4wOTktMTQuMDg0LTE3NC40NTktNDEuODYxLTI5LjM4Ni0x
NS4wMTYtNTYuODY2LTMzLjk1Mi04MS41NDEtNTYuMDM4di01NC42MDNjMjcuNjY5IDI5LjI4MyA2
MC4zNDcgNTMuODc3IDk2LjA5NyA3Mi4xNDUgNDkuODEgMjUuNDUyIDEwMy42MDkgMzguMzU3IDE1
OS45MDMgMzguMzU3czExMC4wOTMtMTIuOTA1IDE1OS45MDItMzguMzU4YzM1Ljc1MS0xOC4yNjgg
NjguNDI5LTQyLjg2MiA5Ni4wOTgtNzIuMTQ1djU0LjYwM2MtMjQuNjc1IDIyLjA4Ny01Mi4xNTQg
NDEuMDIzLTgxLjU0MSA1Ni4wMzl6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWE7IiBkPSJN
MTYxLjAwOSA2NGwyOC44IDk2aDEzMi4zODJsMjguOC05Nmg1Ni44MTZsLTk1Ljk5OCAzMjBoLTEx
MS42MThsLTk2LTMyMGg1Ni44MTh6TTIzNy44MDkgMzIwaDM2LjM4MmwyOC44LTk2aC05My45ODJs
MjguOCA5NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxYjsiIGQ9Ik0wIDQ0OHYtNDQ4aDUx
MnY0NDhoLTUxMnpNMTkyIDE2MHY5NmgxMjh2LTk2aC0xMjh6TTMyMCAxMjh2LTk2aC0xMjh2OTZo
MTI4ek0zMjAgMzg0di05NmgtMTI4djk2aDEyOHpNMTYwIDM4NHYtOTZoLTEyOHY5NmgxMjh6TTMy
IDI1NmgxMjh2LTk2aC0xMjh2OTZ6TTM1MiAyNTZoMTI4di05NmgtMTI4djk2ek0zNTIgMjg4djk2
aDEyOHYtOTZoLTEyOHpNMzIgMTI4aDEyOHYtOTZoLTEyOHY5NnpNMzUyIDMydjk2aDEyOHYtOTZo
LTEyOHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxYzsiIGQ9Ik0wIDI1Nmg1MTJ2LTY0aC01
MTJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWQ7IiBkPSJNMCAzMmgyODh2LTY0aC0yODh6
TTk2IDQ4MGgzNTJ2LTY0aC0zNTJ6TTEzOC42OTQgNjRsMTAyLjM0NCAzOTIuMDgyIDYxLjkyNS0x
Ni4xNjQtOTguMTI1LTM3NS45MTh6TTQ2NC44ODctMzJsLTY0Ljg4NyA2NC44ODctNjQuODg3LTY0
Ljg4Ny0zMS4xMTMgMzEuMTEzIDY0Ljg4NyA2NC44ODctNjQuODg3IDY0Ljg4NyAzMS4xMTMgMzEu
MTEzIDY0Ljg4Ny02NC44ODcgNjQuODg3IDY0Ljg4NyAzMS4xMTMtMzEuMTEzLTY0Ljg4Ny02NC44
ODcgNjQuODg3LTY0Ljg4N3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxZTsiIGQ9Ik0zODQg
MjV2LTI1aDY0di0zMmgtOTZ2NzNsNjQgMzB2MjVoLTY0djMyaDk2di03M3pNMzM4IDM1MmgtNjhs
LTk0LTk0LTk0IDk0aC02OGwxMjgtMTI4LTEyOC0xMjhoNjhsOTQgOTQgOTQtOTRoNjhsLTEyOCAx
Mjh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMWY7IiBkPSJNMzg0IDM3N3YtMjVoNjR2LTMy
aC05NnY3M2w2NCAzMHYyNWgtNjR2MzJoOTZ2LTczek0zMzggMzUyaC02OGwtOTQtOTQtOTQgOTRo
LTY4bDEyOC0xMjgtMTI4LTEyOGg2OGw5NCA5NCA5NC05NGg2OGwtMTI4IDEyOHoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAyMDsiIGQ9Ik0zNTIgMzJoMTI4bDMyIDY0di0xMjhoLTE5MnYxMDcu
MTA3YzY1LjU1NiAyOC4yNDIgMTEyIDk4LjU4MSAxMTIgMTgwLjg5MyAwIDEwNy4yMTYtNzguNzk5
IDE5MS4xMzMtMTc2IDE5MS4xMzMtOTcuMjAzIDAtMTc2LTgzLjkxNi0xNzYtMTkxLjEzMyAwLTgy
LjMxMiA0Ni40NDMtMTUyLjY1MSAxMTItMTgwLjg5M3YtMTA3LjEwN2gtMTkydjEyOGwzMi02NGgx
Mjh2MTYuMjk1Yy05My44MTUgMzMuMjMtMTYwIDExMy43MDEtMTYwIDIwNy43MDUgMCAxMjMuNzEy
IDExNC42MTUgMjI0IDI1NiAyMjQgMTQxLjM4NSAwIDI1Ni0xMDAuMjg4IDI1Ni0yMjQgMC05NC4w
MDQtNjYuMTg1LTE3NC40NzUtMTYwLTIwNy43MDV2LTE2LjI5NXoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAyMTsiIGQ9Ik0yNTYgNDgwYy0xNDEuMzg1IDAtMjU2LTExNC42MTQtMjU2LTI1NiAw
LTE0MS4zODUgMTE0LjYxNC0yNTYgMjU2LTI1NiAxNDEuMzg1IDAgMjU2IDExNC42MTUgMjU2IDI1
NiAwIDE0MS4zODYtMTE0LjYxNSAyNTYtMjU2IDI1NnpNMjU2IDhjLTExOS4yOTMgMC0yMTYgOTYu
NzA2LTIxNiAyMTYgMCAxMTkuMjkzIDk2LjcwNyAyMTYgMjE2IDIxNiAxMTkuMjk1IDAgMjE2LTk2
LjcwNyAyMTYtMjE2IDAtMTE5LjI5NC05Ni43MDUtMjE2LTIxNi0yMTZ6TTE5MiAzMjBjMC0xNy42
NzMtMTQuMzI3LTMyLTMyLTMycy0zMiAxNC4zMjctMzIgMzIgMTQuMzI3IDMyIDMyIDMyIDMyLTE0
LjMyNyAzMi0zMnpNMzg0IDMyMGMwLTE3LjY3My0xNC4zMjYtMzItMzItMzJzLTMyIDE0LjMyNy0z
MiAzMiAxNC4zMjYgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyek0yNTYgMTU0YzcwLjUzNyAwIDEz
MS4zNDQgMjguNzY2IDE1OS4yMzEgNjEuNTk2LTEwLjQzNi04NS42MS03OC4xNDQtMTUxLjU5Ni0x
NTkuMjMxLTE1MS41OTYtODEuMDU5IDAtMTQ4Ljc0OSA2Ni4wMTMtMTU5LjIyMiAxNTEuNTg0IDI3
Ljg5My0zMi44MjMgODguNjkzLTYxLjU4NCAxNTkuMjIyLTYxLjU4NHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAyMjsiIGQ9Ik0xMjggNDQ4aDI1NnYtNjRoLTI1NnpNNDgwIDM1MmgtNDQ4Yy0x
Ny42IDAtMzItMTQuNC0zMi0zMnYtMTYwYzAtMTcuNiAxNC4zOTgtMzIgMzItMzJoOTZ2LTEyOGgy
NTZ2MTI4aDk2YzE3LjYgMCAzMiAxNC40IDMyIDMydjE2MGMwIDE3LjYtMTQuNCAzMi0zMiAzMnpN
MzUyIDMyaC0xOTJ2MTYwaDE5MnYtMTYwek00ODcuMiAzMDRjMC0xMi44MTMtMTAuMzg3LTIzLjIt
MjMuMTk5LTIzLjItMTIuODEzIDAtMjMuMjAxIDEwLjM4Ny0yMy4yMDEgMjMuMnMxMC4zODggMjMu
MiAyMy4yMDEgMjMuMmMxMi44MTMgMCAyMy4xOTktMTAuMzg3IDIzLjE5OS0yMy4yeiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMDIzOyIgZD0iTTUxMiA0ODB2LTE5MmwtNjkuMTMgNjkuMTMtMTA2
LTEwNi01My43NCA1My43NCAxMDYgMTA2LTY5LjEzIDY5LjEzek0xMjIuODcgNDEwLjg3bDEwNi0x
MDYtNTMuNzQtNTMuNzQtMTA2IDEwNi02OS4xMy02OS4xM3YxOTJoMTkyek00NDIuODcgOTAuODds
NjkuMTMgNjkuMTN2LTE5MmgtMTkybDY5LjEzIDY5LjEzLTEwNiAxMDYgNTMuNzQgNTMuNzR6TTIy
OC44NyAxNDMuMTNsLTEwNi0xMDYgNjkuMTMtNjkuMTNoLTE5MnYxOTJsNjkuMTMtNjkuMTMgMTA2
IDEwNnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNDsiIGQ9Ik02NCAzNTJoNjR2LTk2aDMy
djE5MmMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtNjRjLTE3LjYgMC0zMi0xNC40LTMyLTMydi0xOTJo
MzJ2OTZ6TTY0IDQ0OGg2NHYtNjRoLTY0djY0ek00ODAgNDQ4djMyaC05NmMtMTcuNjAxIDAtMzIt
MTQuNC0zMi0zMnYtMTYwYzAtMTcuNiAxNC4zOTktMzIgMzItMzJoOTZ2MzJoLTk2djE2MGg5NnpN
MzIwIDQwMHY0OGMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtOTZ2LTIyNGg5NmMxNy42IDAgMzIgMTQu
NCAzMiAzMnY0OGMwIDE3LjYtNC40IDMyLTIyIDMyIDE3LjYgMCAyMiAxNC40IDIyIDMyek0yODgg
Mjg4aC02NHY2NGg2NHYtNjR6TTI4OCAzODRoLTY0djY0aDY0di02NHpNNDE2IDE5MmwtMjA4LTIy
NC0xMTIgMTQ0IDQxIDM1IDcxLTc0IDE3NiAxNTF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
MjU7IiBkPSJNMjI0IDE5MmgtOTZ2NjRoOTZ2OTZoNjR2LTk2aDk2di02NGgtOTZ2LTk2aC02NHpN
NTEyIDE2MHYtMTkyaC01MTJ2MTkyaDY0di0xMjhoMzg0djEyOHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAyNjsiIGQ9Ik0xOTIgMzg0aDY0di0zMmgtNjR6TTI4OCAzODRoNjR2LTMyaC02NHpN
NDQ4IDM4NHYtMTI4aC05NnYzMmg2NHY2NGgtMzJ2MzJ6TTE2MCAyODhoNjR2LTMyaC02NHpNMjU2
IDI4OGg2NHYtMzJoLTY0ek05NiAzNTJ2LTY0aDMydi0zMmgtNjR2MTI4aDk2di0zMnpNMTkyIDE5
Mmg2NHYtMzJoLTY0ek0yODggMTkyaDY0di0zMmgtNjR6TTQ0OCAxOTJ2LTEyOGgtOTZ2MzJoNjR2
NjRoLTMydjMyek0xNjAgOTZoNjR2LTMyaC02NHpNMjU2IDk2aDY0di0zMmgtNjR6TTk2IDE2MHYt
NjRoMzJ2LTMyaC02NHYxMjhoOTZ2LTMyek00ODAgNDQ4aC00NDh2LTQ0OGg0NDh2NDQ4ek01MTIg
NDgwdjAtNTEyaC01MTJ2NTEyaDUxMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNzsiIGQ9
Ik0wIDIyNGg2NHYtMzJoLTY0ek05NiAyMjRoOTZ2LTMyaC05NnpNMjI0IDIyNGg2NHYtMzJoLTY0
ek0zMjAgMjI0aDk2di0zMmgtOTZ6TTQ0OCAyMjRoNjR2LTMyaC02NHpNNDQwIDQ4MGw4LTIyNGgt
Mzg0bDggMjI0aDE2bDgtMTkyaDMyMGw4IDE5MnpNNzItMzJsLTggMTkyaDM4NGwtOC0xOTJoLTE2
bC04IDE2MGgtMzIwbC04LTE2MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyODsiIGQ9Ik0y
ODggNDQ4YzEyMy43MTIgMCAyMjQtMTAwLjI4OCAyMjQtMjI0cy0xMDAuMjg4LTIyNC0yMjQtMjI0
djQ4YzQ3LjAxMiAwIDkxLjIwOSAxOC4zMDcgMTI0LjQ1MSA1MS41NDkgMzMuMjQyIDMzLjI0MiA1
MS41NDkgNzcuNDM5IDUxLjU0OSAxMjQuNDUxIDAgNDcuMDExLTE4LjMwNyA5MS4yMDktNTEuNTQ5
IDEyNC40NTEtMzMuMjQyIDMzLjI0Mi03Ny40MzkgNTEuNTQ5LTEyNC40NTEgNTEuNTQ5LTQ3LjAx
MSAwLTkxLjIwOS0xOC4zMDctMTI0LjQ1MS01MS41NDktMjUuNTctMjUuNTY5LTQyLjI5MS01Ny42
MjMtNDguNjUzLTkyLjQ1MWg5My4xMDRsLTExMi0xMjgtMTEyIDEyOGg4Mi4yODVjMTUuNTMgMTA4
LjU1MSAxMDguODY5IDE5MiAyMjEuNzE1IDE5MnpNMzg0IDI1NnYtNjRoLTEyOHYxNjBoNjR2LTk2
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJhOyIgZD0iTTM1My45NCAyMzcuNjc0YzE4Ljc0
OSAyMi4yNzEgMzAuMDYwIDUxLjAwNCAzMC4wNjAgODIuMzI2IDAgNzAuNTgtNTcuNDIxIDEyOC0x
MjggMTI4aC0xNjB2LTQ0OGgxOTJjNzAuNTc5IDAgMTI4IDU3LjQyMSAxMjggMTI4IDAgNDYuNDc4
LTI0Ljg5OSA4Ny4yNDgtNjIuMDYwIDEwOS42NzR6TTE5MiAzODRoNTAuNzVjMjcuOTg0IDAgNTAu
NzUtMjguNzEgNTAuNzUtNjRzLTIyLjc2Ni02NC01MC43NS02NGgtNTAuNzV2MTI4ek0yNzEuNSA2
NGgtNzkuNXYxMjhoNzkuNWMyOS4yMjUgMCA1My0yOC43MSA1My02NHMtMjMuNzc1LTY0LTUzLTY0
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDJiOyIgZD0iTTQ0OCA0NDh2LTMyaC02NGwtMTYw
LTM4NGg2NHYtMzJoLTIyNHYzMmg2NGwxNjAgMzg0aC02NHYzMnoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAyYzsiIGQ9Ik0zNTIgNDQ4aDY0di0yMDhjMC03OS41MjktNzEuNjM0LTE0NC0xNjAt
MTQ0LTg4LjM2NSAwLTE2MCA2NC40NzEtMTYwIDE0NHYyMDhoNjR2LTIwOGMwLTIwLjA4MyA5LjEx
OS0zOS4zNTIgMjUuNjc3LTU0LjI1MyAxOC40NDgtMTYuNjAyIDQzLjQyMy0yNS43NDcgNzAuMzIz
LTI1Ljc0NyAyNi45IDAgNTEuODc1IDkuMTQ1IDcwLjMyMyAyNS43NDcgMTYuNTU4IDE0LjkwMSAy
NS42NzcgMzQuMTcgMjUuNjc3IDU0LjI1M3YyMDh6TTk2IDY0aDMyMHYtNjRoLTMyMHoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTAyZDsiIGQ9Ik0zNjUuNzEgMjIxLjQ4MmMzMS45Ni0yMy45Njkg
NTAuMjktNTguMDQzIDUwLjI5LTkzLjQ4MnMtMTguMzMtNjkuNTEzLTUwLjI5LTkzLjQ4MmMtMjku
Njc5LTIyLjI1OS02OC42NDItMzQuNTE4LTEwOS43MS0zNC41MTgtNDEuMDY5IDAtODAuMDMxIDEy
LjI1OS0xMDkuNzEgMzQuNTE4LTMxLjk2IDIzLjk2OS01MC4yOSA1OC4wNDMtNTAuMjkgOTMuNDgy
aDY0YzAtMzQuNjkxIDQzLjk2My02NCA5Ni02NHM5NiAyOS4zMDkgOTYgNjRjMCAzNC42OTEtNDMu
OTYzIDY0LTk2IDY0LTQxLjA2OSAwLTgwLjAzMSAxMi4yNTktMTA5LjcxIDM0LjUxOC0zMS45NiAy
My45Ny01MC4yOSA1OC4wNDMtNTAuMjkgOTMuNDgyIDAgMzUuNDM5IDE4LjMzIDY5LjUxMiA1MC4y
OSA5My40ODIgMjkuNjc5IDIyLjI1OSA2OC42NDEgMzQuNTE4IDEwOS43MSAzNC41MTggNDEuMDY4
IDAgODAuMDMxLTEyLjI1OSAxMDkuNzEtMzQuNTE4IDMxLjk2LTIzLjk3IDUwLjI5LTU4LjA0MyA1
MC4yOS05My40ODJoLTY0YzAgMzQuNjkxLTQzLjk2MyA2NC05NiA2NC01Mi4wMzcgMC05Ni0yOS4z
MDktOTYtNjQgMC0zNC42OTEgNDMuOTYzLTY0IDk2LTY0IDQxLjA2OCAwIDgwLjAzMS0xMi4yNTkg
MTA5LjcxLTM0LjUxOHpNMCAyMjRoNTEydi0zMmgtNTEyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDJlOyIgZD0iTTE5MiA0NDhoMjU2di02NGgtNjR2LTM4NGgtNjR2Mzg0aC02NHYtMzg0aC02
NHYyMjRjLTYxLjg1NiAwLTExMiA1MC4xNDQtMTEyIDExMnM1MC4xNDQgMTEyIDExMiAxMTJ6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMmY7IiBkPSJNMjI0IDQ0OGgyNTZ2LTY0aC02NHYtMzg0
aC02NHYzODRoLTY0di0zODRoLTY0djIyNGMtNjEuODU2IDAtMTEyIDUwLjE0NC0xMTIgMTEyczUw
LjE0NCAxMTIgMTEyIDExMnpNMzIgMjU2bDEyOC0xMTItMTI4LTExMnoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAzMDsiIGQ9Ik0xMjggNDQ4aDI1NnYtNjRoLTY0di0zODRoLTY0djM4NGgtNjR2
LTM4NGgtNjR2MjI0Yy02MS44NTYgMC0xMTIgNTAuMTQ0LTExMiAxMTJzNTAuMTQ0IDExMiAxMTIg
MTEyek00ODAgMzJsLTEyOCAxMTIgMTI4IDExMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAz
MTsiIGQ9Ik00MTYgMzUyaC05NnYzMmwtOTYgOTZoLTIyNHYtMzg0aDE5MnYtMTI4aDMyMHYyODhs
LTk2IDk2ek00MTYgMzA2Ljc0NWw1MC43NDUtNTAuNzQ1aC01MC43NDV2NTAuNzQ1ek0yMjQgNDM0
Ljc0NWw1MC43NDUtNTAuNzQ1aC01MC43NDV2NTAuNzQ1ek0zMiA0NDhoMTYwdi05Nmg5NnYtMjI0
aC0yNTZ2MzIwek00ODAgMGgtMjU2djk2aDk2djIyNGg2NHYtOTZoOTZ2LTIyNHoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAzMjsiIGQ9Ik0zODQgMzUyaDMydi0zMmgtMzJ6TTMyMCAyODhoMzJ2
LTMyaC0zMnpNMzIwIDIyNGgzMnYtMzJoLTMyek0zMjAgMTYwaDMydi0zMmgtMzJ6TTI1NiAyMjRo
MzJ2LTMyaC0zMnpNMjU2IDE2MGgzMnYtMzJoLTMyek0xOTIgMTYwaDMydi0zMmgtMzJ6TTM4NCAy
ODhoMzJ2LTMyaC0zMnpNMzg0IDIyNGgzMnYtMzJoLTMyek0zODQgMTYwaDMydi0zMmgtMzJ6TTM4
NCA5NmgzMnYtMzJoLTMyek0zMjAgOTZoMzJ2LTMyaC0zMnpNMjU2IDk2aDMydi0zMmgtMzJ6TTE5
MiA5NmgzMnYtMzJoLTMyek0xMjggOTZoMzJ2LTMyaC0zMnoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAzMzsiIGQ9Ik02NCAyMDhsMTQ0LTE0NCAyNDAgMjQwLTY0IDY0LTE3Ni0xNzYtODAgODB6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzQ7IiBkPSJNNDY0IDQxNmgtMjA4bC0xNiAzMmgt
MTc2bC0zMi02NGg0NDh6TTQ1Mi4xNyAxMjhoMzcuNDNsMjIuNCAyMjRoLTUxMmwzMi0zMjBoMjQy
LjA0MGMtNTIuNDQxIDE4Ljg4OC05MC4wNDAgNjkuMTMzLTkwLjA0MCAxMjggMCA3NC45OTEgNjEu
MDA5IDEzNiAxMzYgMTM2IDc0Ljk5IDAgMTM2LTYxLjAwOSAxMzYtMTM2IDAtMTAuODM5LTEuMzEx
LTIxLjU3NS0zLjgzLTMyek01MDEuNDk4IDIzLjEyNWwtOTkuMjQ4IDg3LjM0NmM4LjcyNyAxNC40
NiAxMy43NSAzMS40MDcgMTMuNzUgNDkuNTI5IDAgNTMuMDIwLTQyLjk4IDk2LTk2IDk2cy05Ni00
Mi45OC05Ni05NiA0Mi45OC05NiA5Ni05NmMxOC4xMjIgMCAzNS4wNjkgNS4wMjMgNDkuNTI5IDEz
Ljc1bDg3LjM0Ni05OS4yNDhjMTEuNDgxLTEzLjMzOSAzMS4wNTktMTQuMDcwIDQzLjUwMy0xLjYy
NmwyLjc0NiAyLjc0NmMxMi40NDQgMTIuNDQ0IDExLjcxMyAzMi4wMjItMS42MjYgNDMuNTAzek0z
MjAgOThjLTM0LjI0MiAwLTYyIDI3Ljc1OC02MiA2MnMyNy43NTggNjIgNjIgNjIgNjItMjcuNzU4
IDYyLTYyLTI3Ljc1OC02Mi02Mi02MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNTsiIGQ9
Ik0yNTYgMjI0di02NGgxNmwxNiAzMmgzMnYtMTI4aC0yNHYtMzJoMTEydjMyaC0yNHYxMjhoMzJs
MTYtMzJoMTZ2NjR6TTQxNiAzMjB2ODBjMCA4LjgtNy4yIDE2LTE2IDE2aC0xMTJ2MzJjMCAxNy42
LTE0LjQgMzItMzIgMzJoLTY0Yy0xNy42MDIgMC0zMi0xNC40LTMyLTMydi0zMmgtMTEyYy04Ljgw
MSAwLTE2LTcuMi0xNi0xNnYtMzIwYzAtOC44IDcuMTk5LTE2IDE2LTE2aDE0NHYtOTZoMzIwdjM1
MmgtOTZ6TTE5MiA0NDcuOTQzYzAuMDE3IDAuMDE5IDAuMDM2IDAuMDM5IDAuMDU3IDAuMDU3aDYz
Ljg4NGMwLjAyMS0wLjAxOCAwLjA0MS0wLjAzOCAwLjA1OS0wLjA1N3YtMzEuOTQzaC02NHYzMS45
NDN6TTk2IDM1MnYzMmgyNTZ2LTMyaC0yNTZ6TTQ4MCAwaC0yNTZ2Mjg4aDI1NnYtMjg4eiIgLz4K
KzwvZm9udD48L2RlZnM+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMv
c2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2UudHRmIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3Rpbnlt
Y2UudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU4MTAzYzJiNjI4N2ZhMjA5YmYxZTYyYzdlYTEwN2ZkNjVhMzUx
ZjEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDk4NjAKemNtYl9pZHlFfnxTd0NtcWNrY1QhY2g+
djNKTkk3aSZhVW4zZFV5OHZgaktxTG1GLVhgY0dnYXNSRG1TcCp2YFg9CnpsTy1gdHFCPi0lUjMj
TT0zWilXfTNoMVYmNiRsa2xMPW1iJjgzZz4oS2ZxS19SYUZaWVEzTXF0bWA3MmU7eDUxTQp6JSpA
QHBVTyRxRyo/Wj1FPWs9Wk1vYnhAO0VhUXheRURNPjtfVEdFbjs8Q35EdVlYMyh5R1gmPWkpWXNS
Pi19I3EKeiN3U3N9fEF7aiV0UnBYPk91NnlJR2NQfVdgTSU0S3F4PSRNJkY/JlV7Pi1fSkZhSngy
dkcpQ0YtfWZYYzxpQz0zCnpwIV4yUEpEPEZHPjd9USteMHozemdZeCZEZEc3Myl0RVljPjJ+RDN4
YE8/S1JGUmlsPXZ1YG1yVzEjRmpkKjxUIwp6eUJvalhNfGxvJjk5Vnp1Zy1mNmwmK0l2QlhSXmZq
bkBtTzlKc2VjOXlPUjZ8WXpPLSFeJjVGTyRsbSgralAqT2IKenpreHNBMlI1Sj89fEUtMUJxVy0j
aEJ2aj1uOEpNSUljQV91TDdtZnw+dnVOKGNWaCMhMz88Z3pCfSNuYj87WFhGCnpsWDBSXnlnMXxO
VE82NFNiOTRgZ3NXPDFwY154Uik9d3QxRHRsYjFuajVvezh2YTVTbXlIam5KSiooT0E+QHRyQQp6
elFwezxfb0c0UmFBIyhNX1htdWw5RU85Q2hyUW0hO0IlblFxNGZoLWdZOUFXMEdHUVV5WlVURih5
TGxTPlorQDwKelRjdyk0XjsmJk5jazZyV2QjOEMtc307RGImYkRTKC0wSktxVSsmcn5eP21oQC05
PDBXbWllRkZyNTlfSiUpZSN8CnpJaEF2K248YnQ5dnxjaUc2eSFgc3VTP1A/RjNIbGQ4a1okYEBR
WmslTWRBd29IPGA9KVhIbWQmYDdTK15wI35hMQp6eEhsUUU8X2EwVW41b28/eC1EVk1lVWM7ezhA
IUZONjFvem0tLSohPyFWcFIzKCU+KCNgYEZjRi0rYl5IbzlXT30KenlSTjw8Rlk+bHRrYWJ0TDN2
IVdMYzA7eXh5VzViYnh6fUJseUxRKUltRzkpUC1nWX0oJiRjQUMjdVlgQ1NOOGpBCnoqMzQ/Z254
UD9Be3J4TWxzd2pOejdSXjBoSmImOzNoaDJsIWhfTnR8MDlxVzZhR0UtI3h5WSlGUmghb0V1YWlM
Tgp6MVA8XkE1aGEyfUlyMUdwXm18QV5iMzxIcWcyTnJmNntOXzU+dFh2fnhDQnZ6QDRBJVQ1WkM0
XlZAUndpcjYkZTYKel4tbDdLSDdhWiRjPmUzeXVWZF5yXzc/a1ZAV08oO280ZWdyekpPRDkzJXRS
bnghIUk7M0pPdms/QkZmME81Zzt5CnpZZU9pOFckTFloWnxFbnIrUGtRe0FhYGUxcjRHMTtlJHVq
YzVYa0k/UkleRURebG9jRzB5QkJiNE4wI1RxXyNhVwp6a2wxbCRjNGR8amowfX1BcFZnMndUZE07
QnxIRGtCVWRgcDNwVUNFVUh2ZE98RVY1VXBpPjZocD5FKTc9JWomc2UKekZfV29SWWVxSjJhXytR
YiooaGVyaWREPCU8JE9XU25eTDdYX3okcUsjdVppOTZpSFdnTnpue0kzZHhYPUI0VDcrCnpINiVx
ZlJEfk5GQVFgZDxpQ1omRWQ1dj18VW93cUsqNUtVOFIqY2AwTD5FPDg3MENjUFM8eGd9MX4hU1Mw
PUYjYgp6OHFLMXN2WlRvPmk2dEopXyh+PzlRSmdUPitTJHJRaztwPHZMMWw2ME9lP1F1UkdBODll
UVpheiswNT0zdEQ3YEgKek1uaz9ldiRKP2EpLV9jWWE+cGYxRGEqUjklZCkwdmZWUStLdlgtX3ly
MDI/K09nWDJnYEt1VHdmbSN4NFM9RUxKCnpiV08meHVpSylOV2wlfGYzU0IoUUlfd31AV2s7YnlK
MVl5KT8mSis3biZRTXRSPUwpWTRzcHh0bWZQLXJkQzViOQp6I0AwelhkQkBZY1pMM3t3VEQqcz9s
aEBUdVJgPk82TXFRVVJQPUttOGAkNXE2e2VaSSMyKGpuK0tAWmwlVSEhKTEKemRlUlZ3ZEpaRDAz
KHp4a29XT0FnVS1HPkIwYDVlTlgrc0BJeD8mJFkhT3BSZEx0RFVoJXBscUE0eWQ1Q05pYk9kCno0
KD9ma2MpKj05N1QzbSM3TnBMfkRpI0Qqd3JYSkk/KUVCc2R6Qk1Lb0pHO1FsVktRNj5WPUdeV2VX
T1IxbyVVVQp6ZldiRXxFOF9HdFdlN2F4cTxiKzB6QlgoZTA9KH15NHpQIXohMUdWKEI9NWVQTFZT
IU0+PU8xVyNZbFBvbUs3dVcKenI/M253dXJ9THxKcnZydUxrY0s8JD1EYllhamBHN1FQd1JoaFUh
bktLKGpvUyZ5U1ZPX25WVmhrQUZQNGMzZ0RKCnozaD1RdTxtMT9lbC1VJVVoaThIJWZoUj9CaTdg
ND1pYDxNWkFrUDl7Y1JZZlN3JEtscmJObTNqaWJNfSpeYjVrawp6OFR8SlM9ZmUlODdrbFhBSUdD
RkRiZXNMRSQ5dE11OW9rd1E9Py1vUzE7MXJCVktCbEc5VW4ja3E1SkBOdENvOHMKenlyWVBAUG5o
OUhGYkJGS1dIYW47Jl5kYjBFKi1RYjQyUF5BPG9sTXI9Rk9ZZT9ZWmY0V3FRc1lMKGJjR29MKHFS
CnpQbU8wS01OdVReVWclQHptT1dVZEY+bC1SalNBKFpoMH1NbWVKeGtYTn4hYGlkJFRzRUQmaGFW
IXUjTjVyanFeQgp6RXdeaiFZajkySHVVT1RJMmt3dWViSS0lXmFvbVNhRT0jWFEoUGlueGk9Ukcj
Sj5jeE0jQ09ENC1tJiUwWT1QSjkKejEte0J7NG1yUjdmcitac2FvZitJPEw1MyUoV316KCQlb3Ru
cE1MUUtIYykwWiMocDMzKjRjVVhkKkhNTlUqMn5vCnpoT1clSTMlc1FqZDRicEphS2k4PUYreTE7
WkwtSzBXWVJuNjNNKlApTXdiT05oentzRiYwfU1ZV0AqO2R0RldtXwp6QmtYdjAwb1hTT0h6ZXg0
aTUleyVzfUZ9MEF3QnIyaFZwQ0J6dyN6QDUrO3FLO3VQIXp0Yit6RXdMflVAakV8Xk8KelZFaCFg
UkNCcVVXKXVyfj9ObHpDJWBJdjlMZWJEZ0loJlA/TyFHKEV0QTBHeEEqY2JCMkF0KGhyfnEzZyFg
XzB0CnpRej5+JUxeOH1eVHFtcX5RLVJmb0YkSXk2alZWeFJrV010VFFgenkhaUVOWGIraUZKOTB0
SUhnSENuXz1FVX1YKAp6KntgeTwqJSNQdnZNO2VPdiMqR2ctI2xWaCtqN0x4YTx7JD17fFJTSUYt
Z282YlpYdFlWMWV8RWxnNFkkKnh0QTAKempIUS03K2FlRWRJR3pxIWc7Jj9MRW5QPWFaMytTYG95
emIxYyEjbjVRMipifmRHSlAxND8yeiQhTDxLOHo+bVByCnoxO0g9aV9gckkpcyE2OU1oMUBDYFpx
PjQrc2sjakpQRXBxMldSYjVXd1BnNDs8bH5zPz5GbV4wQmZBVkkzUVk+Swp6KThAcClyME1YP19Q
UTxqJHJYWlBkVmx5b15yKEkyV0JnSjRQNG15NXVeejFmYGE4ZytMaiVadjVBdkBmVnF3KkMKeipE
ZzE0RzYtYVlVVCtYX0NrKX07QVkkJEg7S2lSbj42Wm88JCM9JkNmMiMqNWdQNjVWVl99e3wyKXhi
ZytSZHVuCnpNUiFDIXtlalA7KDghWmIlXlBWUjQ4a0R2ZDJiTFBnKitKYWN4a2txYGQjSSR4MGp+
UEFVVlVpM3k4QURVP3A0Mwp6V3hFbjhzJD47flglc0kobCgpNjZYfmhIdSFaNztXZml1VUYha2B9
dEdRdlIqUU0mayV0MmM8IVFmJHwtMlo9MW4KenRpbGVsUTs7RFRXd0p3NGgrMU9mPzhZe1QrX3F1
NzA+ejJ3MH4pY2pHLXtOe1djNHV4YEglczskfCRoclc/SUZmCnpUe0h+NWltalBCWWtOKVM7YlVg
aSN+JHZhSWt3UnU0PmEmOClMT2dBJFJWITFxdkh0PTlqKEl4KyghZm5VK0F7eQp6Y0Q9VChkKTsw
YmBrX2NaUDZga2BJMT09bmZjXk9ne3NyOEgrYCoyczJqU0IpUDdXKjxQbXZvZnlJbjI3NXtUdUsK
ejF3ZUYwNGpQNDRGZk98NjdHJkxDbUFmaTU0ZTFCbFpIdWoyTGhScStaMF5gZnFwP0JAamBQUk92
R0tgNVZSQyVUCnpHKXR6WTtrQ1d5UHdKSXNWPVN7PHVaPkw8eHhHNngpQFdBaCNmaDwreyNBI2hi
Z2chcmhvZmkte292YS0jPCkyTAp6Y1NnfVlKVVd2YyEyVT93QUdgZ2R2QXA9OyoqQ0VfXks2fWNG
NWEyTSUjckVUdVZuPz9mZ3F3eV9LSVJzWXp1d2AKej85fUZWeTRXSzgmXjBsPzZhLXRNWFJAeiQy
U1loP2swMEomdWtTeTYrfSh0UihNbFMle0pLI3JsPzxhP3JsNzFgCnpIakdsS1h5am5gR250eEkm
dVJId1VNRCtNOUI8Y1o/ZVFZYW54ZG1wK3c4TnV3cmtJQXd0ZF40VUExaHpSP0M/Nwp6Km0lQ2Am
ZHBvYXtHNDBPa0JgfUFyZEYkR3huRjU1UEU5U2dEcnhRJCtvcSZZe3N7XmtWYWBkXyFMVTt9czEt
e1UKeikyeCg9MndoY0coc0c0QFBMdlF1ZFpDY2hCdmc7fGBwMFpCdEUlK003Zk1EcVlnSX5tcmJz
YmJGezc2JVI8PilECnozVjlYJHt2YEFIVGtzX2ZtU15sdj8lQUgpbWM2UUh4NFVtb2VSQXFSdXBT
Jlp2MipIP0RSfFQzeGBoUCshQFZDSwp6b05GWlg7SFdPeiE8SkhRMVpDOD1FJEUqenkocUJyIzNm
O3FUekhEPCtBMlhSXiNpZzJpLWImdFZOY31UcikmXkcKel9YNDgoTTVLTllJMjJoMWN0VXpQTEN+
Vy1mRjVIazAhYHgxbDx1RGRQQntMazdkbmV5Z30jc0QzcDxXMnNNaUZ5CnpXZml3QlUxNWlIbntm
eFRrU15aK2AwOFVeSWVkNkp7Vy1xR2VDWCljT019O2d2PVhoZjYkUkxuMnpuI1NmUDJRRwp6Z35k
P3tTbGtyfjFnZUNHQX1vM0skUm0jJjJ9QU1Ua3B2YHN7Kmd6KjVRJVU+MlN1UCY7NmxWYyNISFVI
N2tAY0gKeik9aEM/R1pKMEIwOzs/JkZzJXdURUNPcyYmWngwSCRPPnNDNSo/d0JFR1JmOStBJSo+
bz9KWTxiTFpqMyRAMHx2CnpqPnJreWhqeHZuVDYxaklwfDwwUFBpSj43P3deTTBuM3tyeW4lPSot
R3k4UHRtLTYlYjQhMD41cHFRZTRjOzlAVQp6dUUyNFJtZTUxYFYzcGtteyR0eThXalA3JVErbkRt
MV5BPHQtbkE3di1IO199MTNvbG9zYTs2KCtmRSo4d0dOJVUKekV6UCR7VTM5RyZoVH1gfk87ZWZO
KW9uRG95Q3hPMElsblp7YHwweDJkQHdoUG1lQk00cXRialdTfUszaEVaNmhSCnpFPTVoPFgxLW4p
O3NoUXxXSitjWlYhTU5vQmstciVnZWpUZ0k0Zk08O0EmbW1obWJ7cTlyZGowd0hwek5gPFktTQp6
RV5sWnE1fCkmbkZwN1JvKSh1clA7RTUkVTErTFZ1TjFlaU8ybzluaXlwaHFLR3kpX0ZTJVJHUG5G
Z0l2NlZ9ZlgKejA7SDRzK1ZRR2pHZXtGYDR0VDM4djc7Q0VUeyF3QF5vbzlURyh6YmFLdTBnfEtF
VzRgaWRRdUZ4TS1xSU09dm00CnojRCNzI1FHcTx8Vm49WGVldjtqZjlxfXdMelRPaE07Jm4pUWJl
YkxGPVZYJlFxLVd3aio1Kz1KOWZvc35fKHZjVgp6VWJpMndUeF54JmBAQT5ZRENtPSgqZ1IxcVZI
ZEQ9MzRNRyZ5c3whaipFPjgycUk2ZHl4QFh3akwjTVpRRkUjWkUKemZxKTJEX2V1MWx7K3NSTnpm
OHYqJUtfO04rP0lEaTcpWmxYYTFUYUBqTU44S3tHZzRQJiU9bnx6PmxCfWFSZH1DCno0fUNDUStf
PjlwbnppOHpFOzVnRypgMygyPDZeaGs8ZVFQKSg9Nz85VW47dmE2PXQhTUB7UVZzMmlhWEI0PnVD
QAp6X1g2TVAkQl5SKCZVTlp3QmNQezJHJm0lckUwKW1sb2Q3dlRoRTVOXykqN3JZP1Q+Wm9UaDxr
U09QSWpBZ29pMHMKemwyVkxad3d3NEkoKEgxI2lCQlU8b3EtJSFoNGdKMGdVfjEkKyYyYjJnQStL
Mmo2TSt7OWA1d31RM1Jze0s0O1IjCnopa09BfGFpaGtEbXg+KXlFM3c4KkxWMHBESmwqeCt6Pik2
c0ViZ1JRdUZ7JkclSF53aFVCQGRvSEJCWlNIRClRNwp6a3NlLU9LZHJmaz8lNChVY3RrcHBNKHkz
JkdhWnwkK2RKfU1JMWlsfmBNbSk5QX5VPnM1QkFvRVg3SGZQVzFARVIKemFfVjhhWm1LU0VeOz5O
Wk9LdHZgbzs4JE9kdlV4TWpXNCFxblVZPWp5a31NbXg+MlpfLW81d29ITTNTUUdLSEc/CnpvPjdJ
ckwhQWFiNEpiRCE/YVhKPVRmaCp1SUU2dXp1Jmw2QzVrKmlPJDAyd01GJGdxRCYrajc8QUIydHJL
MHRSYwp6TTNBZ3VDITtUX3hZTGNiZFVDekg4N0pKcUlUUmxjezJoQV5IayR8Yz9DQG5ocXItMmhu
cjBRQTM8YDFfbmVnYUoKelc1dTs/Y2NwUlZpY3g/fHFuVmBJT2J3MXQhTUhMQWVVaTIwWT00Ujxt
YFF4QHBedz98TWpYclFgey1AYnc/bUh9CnpSJiQydmRwMXwwdiMjV0RTSjVhSTg8WFElc199fnh0
eS0tJFFLV29XYCtvV2pLMHt2NmNRWTF6TXxnfUBDWCoqIQp6b3pLS0lIbzFVeUs5Nzh9QHxOOVgy
Z35QZDRLRiQ/ZTZOTDdYX3YpY0MkKl4mNGlpcyRpSDglVVo/dUUzcEkrYUkKekVkKGFTTXVZPUMm
VUxVcnxNI35kQklqKXp1NHNLNz14e0ZaMnlUaUdwVHhxZ187XyRWZ29BKUVadSVBYF5rVzVJCno7
YWtBcCN0azVTbFA8ZCElI2xscDZtN0gycD1LZXo1YTFwQFkoKDQtSlRKbnA3bDVeKjRIb3pUNTFl
M3QzN3owSgp6JmtIPi1BTXtEUjFedTg4YGltQHRYNzJGLSh3VG51dnwkWm5KLWo+NyNEX293MWNO
aiQ8YE19NjQwRjxIWCs3b0MKekhrd0Y+YGEpbUQ4UT5AYGloMn58QTRyWCNJUFdFO0d5fVFkMFV6
ezZgMG9rcTZuI3xJVUh7Rml7eVM/fCM5UD8pCno/QEwlYStOYmV0QCtXRWMrX3Y3N3k+N0dXamt0
KUR4RSQ0TzFaRTwjOW0payVyOUU8dT5aWig8TXRKPG5tQ2AjNwp6azB4ajkxTHBqRHR2UXlyV3xr
KT5tdUQ+OGJ1RkY2eDM2SntCPzZsflpaSUVJdmJoe1N3PClVajc0bnFHYjRxakcKemJObWd+QTRL
fCYpP0EoTjVJKTUpNENTY0B3SCVfaEcpNTlwODwzcFVmSmp6eXh2WDtjRDVsZzBRLXxMbml1aiV1
CnpkbVpHPiRIeFE8aXVrREcjP0hsdjh6T1c9QF9ucyZvekg4cXBKbVFVQzEtNFgldDF5VWRhbjEw
NE5UYUZgNFRRJQp6Tkg7VG1HTVojQ2dCeVFtZ0d8Nz47eGsqMUF7UlBtayoyQGZffkBnPitrZTJh
NS1KJGBpP3dnd3A1X31AO1hRRDgKelNOSn5+N0JgREFeIzNSJW19dVhTYVF7WDlNO15MJEEzb0di
THk/PiRQcz9lKEAwengyYCUoRWRCcyY9JkJ6WmNYCnorOSM1X0MkREtNcGlDKzRvOH5rb2deX1B1
TUw5dDdsTkB6eTRhcT8mQXlHTCpAKU91VzZ+KHRULTBtRz1VKilzLQp6dWIkQC1BJTlLIW9feEZm
OXB4dktQYnQ1dntFZDE8ZU19OXRtLUpCbzc1Jj5yISs2OF5WcklvdU92ayluekdWSn0KemBSQz87
V15kMWFKPWUmczwpVTBhZV4zN1B7ST8zTiFva0FGM09fODQ3ZTc/SVEyYyFIZUBiVFFqbmFFIXJ3
XzFpCnpMWntGfXErSShIKmwjRTIhTzhuZVYyVHkqTj87bEEmSURFZmU8WG9iZUImcjJ1bSgtRm9X
TGZtQExBfEN1NEdVewp6SUFiYCo4TilIbzc+O3FxYUV2cENISDx4d2pFISsjVm8kTVcqfnshQUBT
a1Q3QVUpNHNLOzNod2IjT25oITFsNSYKemVKKHhxPzhfST1wNUkhQFBHakhgPn1TfEI+PGtjVzhH
dUVmMlFvckAxfSoyPUlVcyV2USN1Rn4mU0loeU5IbT5UCko2fUBseHsydnVEcV96TTYKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLndv
ZmYgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9z
a2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS53b2ZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkMWFlMzk2YTg4
MjM5Mjc4NjUzY2Y2M2FjMzYzMGI2YjgzNjAxMDIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDc2
NjQKemNtZF5FZVJOYnNtYWgmZUAmcyZ5XnFVejVvaz82KTlhX3xjTWkrNFFwZkV2Z01VPSg+PDU3
QCtLPEE2M24tRyZBCno+RiNgeDh9aWtVazh9dHowWkIqKVJMc0ZvS25FT2s4Oz1+ZWs3d1BDNChq
ZSUrMUF6WkJ2JFd2eUAmblA+dXZ9dAp6anl3TGp1ZTw4cXheP1VLPmZfIzl4ODVzekFTZFNtaHZO
YXB1S2tMUVc0TnlFVjx2aDM/bG10YkNqO0RKI3dQRVUKej5DUCM4OSgtVyZFIW05eXZJWURWR0FZ
LTY2SW9UVHZLWUx0UDxGXzR3KXBJc0NzdmslSClUR2BOK1BBTlVBOzA3Cnp5ISVrVE97VmtEZT0m
MHtuQmUoUG8re0lyYUxWTWgxK0dvdF5gWlE0R0M1N0RlPWI8TDMzJTV1cUNEMH12bGcrIQp6bD9B
SzgoLTw/JmxGOXo3QldIXz9OP2pQIVh+PCs0WCQpI3VZQVEzQ09wMHE9VlJeeC0peSRMdi10NmMj
RGJYb28KenFRNk19KWleZUpAcCs9O2VMYEE9R3JCJE07QDZfPnh2T09VVWxXbkRFMDloMFUoSUlB
XzZvYS1PPU9lVSYpNV9eCno+aElZIWJfPXR5Uz9uTCNKYSN2YHBGUEJLKiZ9UXZUZj5+Sm43UEBM
Pj8hN0JUVWl0SHZ0NnV7XntgJHh6QEJHRQp6KnNKVnlfOXB1JF84dHFmNTc8WlNRfSFBQWZfPT5k
aT1vJEpQMil9SkNlYCN5KTJ8YyNQdSQkTXkwaEhieDRNNksKej4jYXRYQzg9emcmNSlUKlc7MTFX
bzZLJlAqKzBsXm1keCZ5KjxDVzVDJHNyN2A8PXtra1khMXtFUXl5VEB2PGFkCnptYyt9RmN2JXVK
T1g2aW95ZXheQUNHb04oVVk1a21sNllBWEZIN1BYb3k/WWEqJUJ7WDskPSZgWT5BZ0dAdjxkZQp6
dyMzVnBQfXZlSFRTOD9ec0I4KDlFdW0ofXVGYTU4R2JHZHUye2w3UCY2dnFwaWZKcG1vejBTfmxn
aVNkLWRDfioKeiplOWshKTNjX3BRZjghVjd9SkAwSkhNVkU5Nk0jfm56NHR8dTF7Ti13b3olbDs7
ayEyI0AjKmM8b0c0eXklWVghCnohWiVsNWQqd0A0ez9WK01iSWQ7VENzI0c0cj0+NU1JQVAqbFM1
TFV3ZWY3fCFTKEFRMHNuMyNTZERQTnczOUdaegp6dT08fXIrdyR7VVZ3eVNyKkVNdDA1cH02QzJU
QEZtWUQ3X29KO1pmflRANFpHN0NWdSFhTiZxcSlSK2E4bUxSd2AKekYkbEtwSW9lLUxgaFJuQ2Ja
SW5RbyVoZVlHTFhOXk9eV1UjP3h5bGBhd2A7QCYmbDBjLWMzcTBtM1RMR2MyYylPCno7dn1jOyZI
YUBEI3BQREZaRWY3VFpMMmJpPXRJNzM+JFYyYVhYZilnYHF3SmU7VVhvNW1VVUZ1T3c5XktmIUI8
Uwp6Nm9JRX5xYjYhPFApTUk3Q0p9Rn1yK1Y2byhuKWtsNlpmZSFHez97RDB5WFd2Y0k5fHpAZDxr
X3VXR0FtdCEhNGoKekx2elNHaGdhNUIpbH5UdWB8LXQja0s0SHFnfU8+KmorZj5QZDNrZVhEfTxG
P2AtI1AmO35XcSpmalklTVhOZGVtCnpKa1o/VStUTnl3YSE7SmQ0ZT5TPG5naHlecFgpWmlZUFp8
VDktPEh+M1c0TmlPc09obykqalB7bFQjSTgoMFVsTwp6WlcmYiZ3b3l7M3h6T1pOZlhMK2x0VW5T
IUk0Kn52SkFOYnQyNjNUeEtaWjYoOX4yVytjVGVIWUIydWN6ODU5PDEKelJXTHspWEhkfXtAK1Ri
Sj1fR3M1c1IpYTFhWFBEcjdnNkM7WnI5X2hZOEQ8YDdwVXk9Yjw9KzgrdTc1enxDdEBuCnopKmVz
PjFfc3ZpK0pZVFY/QkNHaT5VKE5HYnlIVmNBYUwrdCZEKVFecHkqRjhRMHFLM1VaMm5GXzExZG95
bWo2Tgp6RkxgTjhxdTF9JThuJTw0KzhWV0hmM3chJl9xVm1SYENHTVMjb3dmRDFEfCNAXyZ0OF93
cmFAeHd0REtsJUQ/YCoKelQwJilBdzIkXzZicz9qIUdBZn54dmElOD07I19AXz5oKjNoO0p1Q0JX
PjIlWCNxME9BKSVmZVFkakQxcGZjfGFVCnp7ZUhpO3FZKSUmVG1BS2xSX0N2Ml5aOSkoaEoyJWtl
Ql5EWV9JZWFeKUYjNEVUfjM7PiU+ISNuQj9AeHR0WkZZTwp6I1pKN09zO2ExNUF0eCQwbiklMkJs
QER8QndEfm1qVy01X1l4RmB9S3A7P0xSRUA0czB4UmVsN0U+NGx0RT5XI2sKem00WDdRPkN+WmBC
Q1ArMU8yPn1UKHhwN35rIWw1eVppQXJATih0UzslfFNReztnSGV9Tk5kNFNnKyktPEJJenIxCnpp
Knk/QFB0cnhpJWMhRCklRnhYTFBHdWJ4VUZoYWIjSml9WWdTeX1pN0tQQWUoZjN4TkwwM2diOEsm
VjZkUlchZAp6aURPYVBORiZZUHdqRDVGVUAwKk48bmo4ZE4lPXkhUkhyZDdoRVE3QHJYKXhsWWhj
THVlMygpM2tuWntzUC1md1AKejtVPGxoTE5NMUtEbmY7YVJYV3R5Y1pkI0FVbT5sZndTfFNxc0la
Uj9WZCMjKHVAYzx+VUZaZUpxRiR6OGppe0otCnpDczcwYCRiKSleTitwPEJyPEV1aUl6YXBFVWBM
NFYhWl5sNSlDUFZxZ2UzWE5gP3M5Y3JMSlBNK1phWGJARnkzJgp6ZnomcVA1RWtvQ2hKdWQ+cW57
NGw2NShiNmVOKjQyVzZTNyV4X3t9aWd9NXl7TzdBRVE5aGoyekZUYUUkRERicl8Kelh3e1BpMXZO
RmJfX2EyK1FZJShfa3A4eFk9SUJKSGRoJTtjV2EqYH5TaW5pck55IzdTPjBFVFI5bmtDYTRFLWo+
CnozPEhUYChDTlooV1V2aH1pUit+O254MXVYcy03V2tJdzB5cW1rKTlfT3BmTFdHLXtlNnZQQ3g2
dzhuciheSnRYfgp6OSo/NEQ+KUc3blh7Z2paJF9NUmdRKGE+JSllQFlLJiFeMHUmMS03bCE9VUVn
Vz8hcWF7NTQrRlJ0SFopQEwjUjEKeiVBZndrO2xZfFRZTjN7Zj02YmtCVWJXLU43VDZxPmA2Pz04
YH19LWItay0wJHd3IWxWYzZxeDlLWXQoflRsViVnCnp5O09RWVMtK2woWDBiO0ZjMTU3ZmtDcyZD
dCpuJTdpO0MoVy1DSDEwPnpmPCEyLTJHMUdHKklWY3VrYGxiIXt+Zwp6eVZjaWhiUH1Hb016KTBh
dEBtSVV3VCpSNkAoSngqY0d0cUA7aXgtMFdjJlZwZE0mPm5Re3hmV3tyPyhyT3UxWE4Kek0hTEhy
UntweFVMSmgqJSFmKXZnc35SekVtUGRjQnwzLX5pLUVNMXktP2xMKzBIYmd2Q0NtfXtWPz1HeEVC
eFQ5CnpxbmVCPSM5KFpKcyQrdlMrO0g+Oz5BaG4mTk9RRDcrOXBqa1lMbFR6KUZxPWoyUiF2fjZ1
Q2FrKFEyUGNgPTVTIwp6S2VwUFpIJlFWYlpgX0VDSGE8PUptNUE8QlYtfGBDNGNOQk90NFQ8VTBj
bnd0NXEoJk5LU0FnTlc1Zjx7blN2UDkKekg1RlM5aUxrTV5nbjVLNkJZRnZsNHFKdnQ1UWF4XjBi
Vn1HanYtc2JweFIwOCM+UXkxZigyST5xTStRcUxOSGl2Cno5YTB4bHR+KEV4SkNfI0k7X2xxVGQ1
ODBreUhDJndJXktPNFNOQ3l7Qyl+JXVLQWhYVjgxQ2QlPzMtTDxsMVM2agp6TllCSnkyVzFlWHIt
P0xAYihzUGIyKmJSR0c0SnUyNTVYNzlBViZ0ejdDRS1+YV9FKjJDQHtASmkoMXI3bm1MbSkKekRm
OG8qQlEhIUVlfmZIbz1FbmcwaX5mcFFUKWRgb0hMYSNLZiNVdGVgenhRTD1qcip0Yk5ne1U3WFY0
bVJmMWd7CnpTT2J5T20xfk5ONitJV1Q7NkIyYW0ja1Y8dlJwYWg9M09yZzQ3fHsjaH5VbFlrIzFo
eytOdXxwP15FMD5felB0Tgp6PiRfR2Rgb2JuYG1TcDhyeVJFaHZrdXdlMXlZfUFzN0pWeEYyaygw
dy1Nczk8LUBmX1YmejIzLUZueENQJT99PkAKejtPMyooaz5hIWBya2wjRXM+JXM1TmpyNT9YTTF9
bTlQYUo5cytMdTZedHgtXndYUyo+O24oRERha3Amcm11PTdRCnpEQ3tZSFg3NGs3Sl5kWFd7QHJi
ekUhQ0FabmBvMGw0PEF8YUk9eE91anYoN3B2IV49SFMtYWNVO3E5O0piTTQodwp6eH1uZ09VIWZj
azczen1TTWVQZXxBdVh5fVFkQ2VgeXJ+NEkzPHZLJDVad0Zob30+SFQqZDxyPWptPHwocDR9OEkK
ej9KWkV+NTRAemljdXpxOTNwNnZOX0M+QG1zTHkmNUY7Vy0tbHZOTChCPnBlaFRiPjFYSWB2X3pr
Pk5WVTlFTVVtCnpxKkJBTDUye2RtaXd1WT9Rcm4hV0teWihfT0NEOCgmVyl+PjNaVypPUVVwTzNq
VkBBZkdfb0duWktHPk4qZ0NxfQp6RU8mcHxGWEpSKE1xN0NodiVATlFCI085VFNRZHRmQUF1R0FD
Mz8qfTZ+QnAxOzl7M216NHozO192WkpYSSg2QDwKensoZllxYHQkRHYzI1RMdCU+RGE9MVUqRkBS
VHQzbz5DP3xHeFMraTYoWWJUeXJvVShDd3JtfX1eNzczY2YyRms7CnpNKXhmO151UUUzaGAhPFBf
UCVfRUtCUkIlYDEzVEhNdDlzITg4cXdWYFJeN2ZscHpJI0Mxe3J1Kn08bkR5bDA1Ywp6JHNJVENP
VHp8WHFCbWV5cnM/PDBuWjhiOzNkNmgqPEgyU3gqc2lxVnE7UyU5cjQ+VTYkSkJnUEE1WVVoQ292
eFgKeiZwJFZBXiFZU3xPODhIa2hNUXMrcl99R05kJjI5JCR5fms/MUR2ZyVwfHw+YTJkWloteE13
IWFyVW1hLWY4NHdOCnp0LT4/WGFhZCVXc21hQlkrQldRelBXZUtkdWlINDR3XnpaaUF8eGpzYWAx
bnxAbkZ+LXFHIX57NCtuVG1TVCR6Swp6Q1psdlQ2alApPi0mfGUybktvMVBjR15YfHdyQHY5K3BC
M2FQOHlvckt5KmpXPkNEVX1aO1h1T29hWHduOUNhamYKeiQmJD5Hb0UjYSlwKENPPkhkI0c9OGdq
cnNlTDhkR2pXQFc/bVorSlRyKm4qX0labyR7akJzLVpAb3h3dzU8fnxiCnokdihrM0NsNCZUMTJx
diZrJVpTcUw+LW0zNjEwd3o4OWk4M1YwMEwmWnVgQVR1Tz1iRSltQF98S3Z2WUBhTVZmNwp6YXpi
en04bnUtfkY0Rk04NHBxPDdVMyNqUkkoWD5Kb25wUX5scXlgcEE8c0lZMnpuUG58OGNqWVkoPnxf
VWBXbW4Kem9CKVB8SV43YnIkbXZIYjJpIUx9UERuKzlObE1zKWtoaD5VKUViOWQrO0lUMkNhVyhC
PmI4aUEhPi1aWlNXYT54CnpWeislKUBGeVcrY084dHMqPlQ3WEtJKmBjVGI+MURuajheVUFMPDY1
O3VgaFhOSWR2fXReRlg9M3QrI0ZfPHtWdwp6KWpAdmokemhOVnRgRW1GKWhsTyp5dDw9O3lhLUlm
QVo/aGtMODwySF5yY357ZGlvN0Z6KyRuPkA+bDReJlZocG0KejJSZEoqU0xsYFU3dU9BfUtsb1Za
QmxITThSPSQ0U2hMUl9wSEVXZzZOS2JgPXJ3WXI1IzU7dVB2eVRMYU55dVpCCnotOGdPOUxSZDNB
PHMwRXFfaks+KnFrY05gKDg+OFlJb2RFe0x6QjxZJCYrLTNVTT9BMikxJkNPaVI7eTQjQ3hnNwp6
SUlPdH1Ab3IrTnZBUlJCcWRBZnFCSGwtUGpxMXxFTFlPTXZtRW5Pe2JsbiFpUipzWGYlVUVrK2le
XkFKS3xGc0wKejV+JEpoSUwoPTdwRnVOZFVXa1RacitFbyhuWUwrblcjXk9vSlRsMUlyKi1iJDlu
a2d8PWlvZjlZWTU0Yk1eMVJ5Cno2dE9gS3g7b2BDYSY3cnFyPm5xfl90ZkxgSU9YanU9eUNSeDxF
VXZJPmVzJGxjJHwqWWkjVGMwcH53MWlGT2lAXwp6b3JpKXcyWUw/ZzlIYz15e0x9JUw1e0ZjdnlL
KFZjZGR3SzRnaGAwUlFrc21kI3RCdDEpSUgmJUZ2XiU1c3hlLUoKejUtdUo7akx8enNrRz49UW5N
KkQtRyklQH1lPz9lMjY+SjBYd1ooSFJLZmI5TGpAZXxLM3paUDVtQDZDbmp9PmNSCnpqbVNsYlNx
dllER2I5I3I1SFUxOHN2Y1g0Xip4M2w4PEZEJGRZMzl9YWpTPUNLJk01Uk07JFNFM2ViQFYlQzFu
ZAp6VDVmckdORCVBcEJ5TSptRFpCenBAR2VzSiRvS0dxTmdoMF9FbEZRJl5MPj40TFlwNl47Q31O
fEY7JC1gZThPaUIKej5HU3BaYkI1NjJKVmdDXjkjc1ZPYE9zVXEwYllkSWArNGRYRjA1PSY0fnRz
anhxRFYwcjlhYTlaQD5MTXktI20xCnpxYDk9RVZNfjNyXjRmTGtqaH1FVyg2U3J1XzRPNDs5O1N6
QiNSX0Nid0FNK3hUTFBOJCQmR3dSUmFlOCNUfW8zRQp6LT9nKSR0Nz9hJC19QW5Aaio1RWVBUlgt
T01Na3x2dzJzeWw2fEl2UnFRVThxeUBOVn1tXmpeMWlXd0YxSnJAWUwKejlfbnkqejxxS2pvYTll
PzQ7QlhBdT1XNCs3QSRIKF5rZ1ZQe0pxeThDUS04PnlySyE/KmNpTzZaKCR0WVNuZX5lCnohOGV1
I2lUZW5makwjKlBVWihVKiVaJHhzP0NlYV8rNEswQiZLaDVRT3J1MEgzXzFsbHo1KzF8YSM/R14k
QVApSAp6UHJ4VWY2d29HP2FyVlp1R3RkOWVgU2FqMWwtU3Y2TSMqJmsoflEpTkZeUDZZcklER0sz
OT9yaVhoM3t2aUVxPG0KelNLVHFmIz4rPUJfVEhsUj8/flJ5ZXw3JEJpVjF5Xy1AKVM1QGBEdFVl
Wn5oMWhXaGc8ej8xVCRFX34wcmMqI29ICno2ZSVOZFBuTUpTK3JDeHpaOD0lP0JLPHRrZW5zTSpZ
JWxBbEJ6U0FUUmNBKDdybGY1MEY1NHQmK3xQZjdAKFFINgp6aTkye341bUUrSEkrODRKTDdKUE9H
Zj5VJiFBeEZlYnxeNmlDZVgkVkF4e0NsQWkqQzRkVE40QjEtJkZlYjl7Z14KekMrTTtHPSMhbkck
RlVwUEQhRnAwU0FaaWk8OCZNfFBSQjloYlIwOEkkMSZzZFNoU3MkWGRCMEx2MzBERm05cWxpCnp1
VnhQO205U0ZxaW9uZmFTP3AkWkU0eEd7YFB1T2pDY1kxQFc+NFV8VV9RUFBtUiNCWmdJKjBWM0Ff
P0R0NjNnXgpaQUlCcHoqZ2JlPzV4eT1LOElMblloM3hYent7bGw3Pz9NMG8KCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9pbWcvYW5jaG9yLmdpZiBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0
Z3JheS9pbWcvYW5jaG9yLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDYzNDhjN2Y1M2RiYTE2OWE5YWNhNzI3
OWEyYTk3M2Y0YjA3YmRiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1Mwp6Y21aP3diaEVIYldN
XlAhWGtjVWpnOCU+akVCPDV3RzhxfGtLenh1NDB+MWVBViZ7eTVlYGwxS0ZvaUtOU09Xa3oKQytZ
Q0dhCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvaW1nL2xv
YWRlci5naWYgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9qcy9za2lucy9saWdodGdyYXkvaW1nL2xvYWRlci5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY5ZTkzNzIz
MmIyNGVhMzBmMDFjNjhiYmQyZWJjNzk4ZGNlY2ZjYgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MjYwOAp6Y21kVmNkcih0WDl0WkdDOXlpR349SF8qUS0wJW4oa1dxUCpEI2h3e0FRdTg7MSVnbC1I
cmYmezI/NDhLWDtoSHkKejNaZSp6RXo0dDNYZFVGeUxiTlBVWWxBYHxCfVA9TjFmcXRMMTw/ZVY5
YyEmXjhEd15zNFIkKl9gXlI9P1hXQm57Cnp7eXNEMyV4OFkqYCNvXzkoI1h2IVUlKGdtOXNyaD9t
ak04bnBQd0hlQU1mdylAOU9HbVg9JDxCP0ZOSVB2OVp6Tgp6YU0pfSV5PFhxayt9eiNXSnZ1dE51
Jn5oNChQNmIoPWpQQGpBfGU2PDFMYm5MJHombzNxTmIpTUp3MUpDWC1UV3EKek5+S2I+Kn1TOzg3
I3wtVzl2PCNHO3VsKGUlZDMpTiheOWMkZDJEens3fT9FcmpOZDt7RU1La0NzazIxfmI5R3ZnCnpE
bzw3TD0zWjVITmJWbFpVY20xZWcjbyNDWkNKVWAzSVlId00tPnpDZD91WXJGM3ZLRmVNfXY/Zisl
czxZZjxYVQp6JmQ2NiVKQzc2eEA5TnU4d1JZPXt1PE0kUXM0MF8tSn42eH1naEVsRVA/MXhGOTkp
JEc/UFppR1NUTXV9TkZELUkKemR5KXlvV1MyNUhUJEs+P0U+bHl8M1cyNXJ5OSNOTmJUeC19ME9O
NThkVHJzXml4e18xTzBXaH5TVlNCbEgpQWpuCnpQbl5HYmp6fVBDdE5AI2tlUiZoSyZEaGwtYiRr
WjheUyl4I2RoMHs3WD1YJUNDSms3UDFQU08+VCZTOEk0eyNMZwp6YjUjKW89OyFaUCoxbk17Y0k0
QCh4N28yNypTQSgpTkhtcm42N2FOQFBtaX4oaV9TbnJqWW53aDM2YUclIUBpMGQKenFidmZhNDRm
fD9PRzRudFB8bmJqaEVsPE9pfUhBcUxIY1E8QS1SWjJgT3llaXNFcGs5QUBzVFhJcSRYZiVDOEF5
CnpTazdNPFgzMSpwNUtuI1ohRFpYYnc7STVZbkY4JURQKEo1akxvaURUQWMpOChDTSgrb2wqaT4x
KVlwNlpOQHlqeQp6eTQ9PVFtTHkldDtwczNSP35mMktmVFRJfDI/cThkRmQ2Xno1R0YrWGEmWSlz
akcpaHhpdDg8YU4xcj4wcFBjT1AKejxJaGVgRUFMSVJAb2pnVjVUMUM7M0ZBcHVvaSluaiZuQ0dW
ZDZ3I1F7aE59R1YwdSEhelRSQnI7bno1PVRqRTEoCnpIfitIZiVvTmlJTkJsTV8kbUVVRiN5bzNs
KGIzYWNHP3J7YmsrcGp0QmFTcyhVVGJmek5Pdzk7RistZE0tVSs+Sgp6KkxXe1N5R0hEJWhVb3RW
K1clSX1mQkxBSXghOHw3I30kO2NsS1EreyZGakRxR1EyWk54KGxZTTMqJX59SUxuYW8Kek1gYXVp
NTV+WkZKbDx4OEBDM1pkRU1lb2FpMyFrUnlNUm5qXlFreE45eThQSzRUPnVeITVyZEE5PFR8fiRC
YSsjCnpQWTEhciRROFhwQCVOYD1Nc0ohUVAxK30keFliYXRKSEJ6PlFfN0g2OEhfOyMjdXt4KFlu
LXZTZklSQ2JeTnFzZwp6R1JTIUVnbT5oK288fUxlVjQmQ0xSZW85RnJEakR2c304P0p3QykjUXN8
aWU9cj9+eFVoKSYqZGBGeD5GR30lWCMKek5kdERIQktoTFBDMHdwb29GREFRS0wlKjZUfFVMSCQ9
d1ghTmhjYXNnRDxCNntKaStIRkRiYWVFJktnUyVPRnBXCnoqVSQzWDtpdj13bWN7Pz4zZDstZCRJ
NjxBPWR4djBCMk5TSzA5NERFJVlTJVBmV05xZzJHZXtFZzZOaWBOMnA5agp6VyNgWlImVklvJGBk
PnlSSzN5TitFfkMxMzM1X2lMT3QrKjl1dlNaYD4qS0F9dm19MDh3UnE9PjVsfHQqTmEmalIKei08
RFNnI3FGN0ZFcHd5U2lDKjJ+KW4rRHhyO3pOSFhXdHYkaj5DMSZDYG5rRWsjc0J8QHl5dC0jZlhu
Z1AwNE15CnptN3UkUSVFSmJIcGA+fmA1VyZMe1chNmB5Jn1MTVM7amZVcGdPfjdUTFZNUlo5SUMp
SVpwMEEke2B5cDB7Jndjbwp6IzFueEBYTWtocWVLJTc/UkU3SmRMcjFebndGZmFKMFEmTHY/V05K
JTl9VlNKc05ZMitVWXMyJUVVMEp+YXlGWHYKemkqPzdLQ1hRSGtEKU82ITBRJTROK0hUT0RIeEp7
a1FTdVFYJGwtclN3a3doKHpNa2Rmenh5R3dsQHlIQylDNHA8CnombjIlOCNNPylRQG1nSEwxb3Q4
YFNGZFNFajl5ZXxqSHkrVTgjQEhvVUV4Rz1AQVZrUkFlX3FZbTRFcHpLNkwqJgp6aGApMjY/ViNm
NCNfaF5QOUc8aGJrI1d9Q3MzS1lPTmBmIX50Z0h7XzFPXlJuKHMmZTtpfD5eJT5oMi1IMykkUVAK
elFvdnU2SjlxRHZzeHF3ZURkTk5hIUxiP0w0X1VGe3RMWF9uPGNINHMte2plPk43cjBVX3ZGMTRZ
S2NHUi0qR2x9Cnp4M29HKWJ6Znw2NWRCeEQtOzJaQ3A/P0s7K1R1UTlvbm5LPz09NWh6YmtiXnJf
Zz56NCNEOG1jdjgoK1hkb3N6QQp6Q3gtcWhkZ3hNTk1vdGp9U2lMXzZWKHRMY3NLNyhNKHIoJXU8
fVFyVmZPdnlLNl87fk5PVGxQR2ZYQE03UzVZUUYKeiYqJCh5bEpNSEp0Xl9hUWV1e0M2TmFURSRH
M0hOTkBfU25OOFljYUtuJWApRkB+TDF4K2FoNy1nRUpQcGM2dyUzCnp5WH1yK1FrJDRSSFp6Zkgp
e2V+RipxSjxOOFAwRFdtODdtJGdsejV5K0cteD9aP0U2bjE0UUM9QjJyak44eUZDfAp6RFRaPztn
eWo/VEIlKlVYQW1udCoteisyNT57ZCpMOGE2bjQ7VT8re2RlMC10KW1hbCNUVnhlKTNGfV5VQmgr
emQKVCk2XyoqI2NncF8rP0pMOShldzNCbE5GPnUKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L2pzL3NraW5zL2xpZ2h0Z3JheS9pbWcvb2JqZWN0LmdpZiBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9pbWcvb2JqZWN0
LmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jY2NkN2YwMjNmYjgwOTA4Y2IzM2JiN2Q5NjA0MjM2Y2QyMWI3YWU3
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNTIKemNtVjtKMEI4UzROayV3MVZHI2ZnMEo5R088
PmxvK0tSPDc4Wj92P3VTNjVnNHtyJVkzKnhsWFQlRjQ+YEA5KzJiCnpfd3dAY290PlRrfE5rPkhH
WE1ZcEFeOExXMDAwakZFQzJ1aTAxKkhVMDAwQzwoOCk9d2QjPCZ0eVhJTWpIQlZgZAp6QlNpfHhz
ajMoO25EMGtRMGFKcThlTEh+eDAyUHx0MiFfSiZXcWIlMGlvPyN4RDx1cHhuQER1cGA3R2UzWEgw
SEgKRzAwMjh8SzE0QTkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5zL2xpZ2h0
Z3JheS9pbWcvdHJhbnMuZ2lmIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvanMvc2tpbnMvbGlnaHRncmF5L2ltZy90cmFucy5naWYKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mzg4NDg2NTE3ZmE4ZGExM2ViZDE1MGU4ZjY1ZDUwOTZjM2UxMGMzYQpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNDMKbmNtWj93YmhFSGJXTXA3dW43e3g5aWElS3hNU3lHXzVGYUdOentLUmokWTJj
c2IpZl94CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvc2tp
bi5pZTcubWluLmNzcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL2pzL3NraW5zL2xpZ2h0Z3JheS9za2luLmllNy5taW4uY3NzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZDJiYmRmM2YxOAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5z
L2xpZ2h0Z3JheS9za2luLmllNy5taW4uY3NzCkBAIC0wLDAgKzEgQEAKKy5tY2UtY29udGFpbmVy
LC5tY2UtY29udGFpbmVyICosLm1jZS13aWRnZXQsLm1jZS13aWRnZXQgKiwubWNlLXJlc2V0e21h
cmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtvdXRsaW5lOjA7dmVydGljYWwtYWxpZ246dG9wO2Jh
Y2tncm91bmQ6dHJhbnNwYXJlbnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6IzMzMztmb250
LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQt
c2l6ZToxNHB4O3RleHQtc2hhZG93Om5vbmU7ZmxvYXQ6bm9uZTtwb3NpdGlvbjpzdGF0aWM7d2lk
dGg6YXV0bztoZWlnaHQ6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOmluaGVyaXQ7LXdl
YmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2xpbmUtaGVpZ2h0Om5vcm1hbDtm
b250LXdlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpsZWZ0Oy1tb3otYm94LXNpemluZzpjb250ZW50
LWJveDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJv
eDtkaXJlY3Rpb246bHRyfS5tY2Utd2lkZ2V0IGJ1dHRvbnstbW96LWJveC1zaXppbmc6Ym9yZGVy
LWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9
Lm1jZS1jb250YWluZXIgKlt1bnNlbGVjdGFibGVdey1tb3otdXNlci1zZWxlY3Q6bm9uZTstd2Vi
a2l0LXVzZXItc2VsZWN0Om5vbmU7LW8tdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25l
fS5tY2UtZmFkZXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5l
YXI7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgbGluZWFyfS5tY2UtZmFkZS5tY2UtaW57b3BhY2l0
eToxfS5tY2UtdGlueW1jZXt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtwb3NpdGlvbjpy
ZWxhdGl2ZX0ubWNlLWZ1bGxzY3JlZW57Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowO292ZXJm
bG93OmhpZGRlbjtoZWlnaHQ6MTAwJTt6LWluZGV4OjEwMH1kaXYubWNlLWZ1bGxzY3JlZW57cG9z
aXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG99Lm1jZS10aW55
bWNle2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjJweDstbW96LWJvcmRlci1y
YWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS5tY2Utd29yZGNvdW50e3Bvc2l0aW9uOmFic29s
dXRlO3RvcDowO3JpZ2h0OjA7cGFkZGluZzo4cHh9ZGl2Lm1jZS1lZGl0LWFyZWF7YmFja2dyb3Vu
ZDojRkZGO2ZpbHRlcjpub25lfS5tY2Utc3RhdHVzYmFye3Bvc2l0aW9uOnJlbGF0aXZlfS5tY2Ut
c3RhdHVzYmFyIC5tY2UtY29udGFpbmVyLWJvZHl7cG9zaXRpb246cmVsYXRpdmV9Lm1jZS1mdWxs
c2NyZWVuIC5tY2UtcmVzaXplaGFuZGxle2Rpc3BsYXk6bm9uZX0ubWNlLWNoYXJtYXB7Ym9yZGVy
LWNvbGxhcHNlOmNvbGxhcHNlfS5tY2UtY2hhcm1hcCB0ZHtjdXJzb3I6ZGVmYXVsdDtib3JkZXI6
MXB4IHNvbGlkICM5ZTllOWU7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtsaW5lLWhlaWdodDoyMHB4
O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtwYWRkaW5nOjJweH0ubWNl
LWNoYXJtYXAgdGQgZGl2e3RleHQtYWxpZ246Y2VudGVyfS5tY2UtY2hhcm1hcCB0ZDpob3Zlcnti
YWNrZ3JvdW5kOiNkOWQ5ZDl9Lm1jZS1ncmlkIHRkIGRpdntib3JkZXI6MXB4IHNvbGlkICNkNmQ2
ZDY7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDttYXJnaW46MnB4O2N1cnNvcjpwb2ludGVyfS5tY2Ut
Z3JpZCB0ZCBkaXY6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNhMWExYTF9Lm1jZS1ncmlke2JvcmRlci1z
cGFjaW5nOjJweDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGV9Lm1jZS1ncmlkIGF7ZGlzcGxheTpi
bG9jaztib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5tY2UtZ3JpZCBhOmhvdmVyLC5tY2Ut
Z3JpZCBhOmZvY3Vze2JvcmRlci1jb2xvcjojYTFhMWExfS5tY2UtZ3JpZC1ib3JkZXJ7bWFyZ2lu
OjAgNHB4IDAgNHB4fS5tY2UtZ3JpZC1ib3JkZXIgYXtib3JkZXItY29sb3I6I2Q2ZDZkNjt3aWR0
aDoxM3B4O2hlaWdodDoxM3B4fS5tY2UtZ3JpZC1ib3JkZXIgYTpob3ZlciwubWNlLWdyaWQtYm9y
ZGVyIGEubWNlLWFjdGl2ZXtib3JkZXItY29sb3I6I2ExYTFhMTtiYWNrZ3JvdW5kOiNjOGRlZjR9
Lm1jZS10ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn1kaXYubWNlLXRpbnltY2UtaW5saW5l
e3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7
Ym94LXNoYWRvdzpub25lfS5tY2UtdG9vbGJhci1ncnB7cGFkZGluZy1ib3R0b206MnB4fS5tY2Ut
dG9vbGJhci1ncnAgLm1jZS1mbG93LWxheW91dC1pdGVte21hcmdpbi1ib3R0b206MH0ubWNlLXJ0
bCAubWNlLXdvcmRjb3VudHtsZWZ0OjA7cmlnaHQ6YXV0b30ubWNlLWNvbnRhaW5lciwubWNlLWNv
bnRhaW5lci1ib2R5e2Rpc3BsYXk6YmxvY2t9Lm1jZS1hdXRvc2Nyb2xse292ZXJmbG93OmhpZGRl
bn0ubWNlLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3cHg7aGVpZ2h0OjEwMCU7
dG9wOjJweDtyaWdodDoycHg7b3BhY2l0eTouNDtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7em9v
bToxfS5tY2Utc2Nyb2xsYmFyLWh7dG9wOmF1dG87cmlnaHQ6YXV0bztsZWZ0OjJweDtib3R0b206
MnB4O3dpZHRoOjEwMCU7aGVpZ2h0OjdweH0ubWNlLXNjcm9sbGJhci10aHVtYntwb3NpdGlvbjph
YnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyOjFweCBzb2xpZCAjODg4O2JvcmRl
ci1jb2xvcjpyZ2JhKDg1LDg1LDg1LDAuNik7d2lkdGg6NXB4O2hlaWdodDoxMDAlOy13ZWJraXQt
Ym9yZGVyLXJhZGl1czo3cHg7LW1vei1ib3JkZXItcmFkaXVzOjdweDtib3JkZXItcmFkaXVzOjdw
eH0ubWNlLXNjcm9sbGJhci1oIC5tY2Utc2Nyb2xsYmFyLXRodW1ie3dpZHRoOjEwMCU7aGVpZ2h0
OjVweH0ubWNlLXNjcm9sbGJhcjpob3ZlciwubWNlLXNjcm9sbGJhci5tY2UtYWN0aXZle2JhY2tn
cm91bmQtY29sb3I6I0FBQTtvcGFjaXR5Oi42O2ZpbHRlcjphbHBoYShvcGFjaXR5PTYwKTt6b29t
OjE7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjdweDstbW96LWJvcmRlci1yYWRpdXM6N3B4O2JvcmRl
ci1yYWRpdXM6N3B4fS5tY2Utc2Nyb2xse3Bvc2l0aW9uOnJlbGF0aXZlfS5tY2UtcGFuZWx7Ym9y
ZGVyOjAgc29saWQgIzllOWU5ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjA7YmFja2dyb3VuZC1p
bWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZGZkZmQsICNkZGQpO2JhY2tncm91bmQt
aW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKCNmZGZkZmQp
LCB0bygjZGRkKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3As
ICNmZGZkZmQsICNkZGQpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwg
I2ZkZmRmZCwgI2RkZCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9t
LCAjZmRmZGZkLCAjZGRkKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lk
OkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmZk
ZmRmZCcsIGVuZENvbG9yc3RyPScjZmZkZGRkZGQnLCBHcmFkaWVudFR5cGU9MCk7em9vbToxfS5t
Y2UtZmxvYXRwYW5lbHtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCA1cHgg
MTBweCByZ2JhKDAsIDAsIDAsIDAuMik7LW1vei1ib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgw
LCAwLCAwLCAwLjIpO2JveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMil9Lm1j
ZS1mbG9hdHBhbmVsLm1jZS1maXhlZHtwb3NpdGlvbjpmaXhlZH0ubWNlLWZsb2F0cGFuZWwgLm1j
ZS1hcnJvdywubWNlLWZsb2F0cGFuZWwgLm1jZS1hcnJvdzphZnRlcntwb3NpdGlvbjphYnNvbHV0
ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50
O2JvcmRlci1zdHlsZTpzb2xpZH0ubWNlLWZsb2F0cGFuZWwgLm1jZS1hcnJvd3tib3JkZXItd2lk
dGg6MTFweH0ubWNlLWZsb2F0cGFuZWwgLm1jZS1hcnJvdzphZnRlcntib3JkZXItd2lkdGg6MTBw
eDtjb250ZW50OiIifS5tY2UtZmxvYXRwYW5lbC5tY2UtcG9wb3ZlcntmaWx0ZXI6cHJvZ2lkOkRY
SW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBmYWxzZSk7YmFja2dy
b3VuZDp0cmFuc3BhcmVudDstd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4Oy1tb3otYm9yZGVyLXJh
ZGl1czo2cHg7Ym9yZGVyLXJhZGl1czo2cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDEwcHgg
cmdiYSgwLCAwLCAwLCAwLjIpOy1tb3otYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwgMCwg
MCwgMC4yKTtib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO3RvcDowO2xl
ZnQ6MDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjOWU5ZTllO2JvcmRlcjoxcHgg
c29saWQgcmdiYSgwLDAsMCwwLjI1KX0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJv
dHRvbXttYXJnaW4tdG9wOjEwcHg7Km1hcmdpbi10b3A6MH0ubWNlLWZsb2F0cGFuZWwubWNlLXBv
cG92ZXIubWNlLWJvdHRvbT4ubWNlLWFycm93e2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xMXB4O2Jv
cmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLWNvbG9yOiM5ZTllOWU7Ym9yZGVyLWJvdHRv
bS1jb2xvcjpyZ2JhKDAsMCwwLDAuMjUpO3RvcDotMTFweH0ubWNlLWZsb2F0cGFuZWwubWNlLXBv
cG92ZXIubWNlLWJvdHRvbT4ubWNlLWFycm93OmFmdGVye3RvcDoxcHg7bWFyZ2luLWxlZnQ6LTEw
cHg7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0ubWNlLWZsb2F0
cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRvbS5tY2Utc3RhcnR7bWFyZ2luLWxlZnQ6LTIycHh9
Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVyLm1jZS1ib3R0b20ubWNlLXN0YXJ0Pi5tY2UtYXJy
b3d7bGVmdDoyMHB4fS5tY2UtZmxvYXRwYW5lbC5tY2UtcG9wb3Zlci5tY2UtYm90dG9tLm1jZS1l
bmR7bWFyZ2luLWxlZnQ6MjJweH0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRv
bS5tY2UtZW5kPi5tY2UtYXJyb3d7cmlnaHQ6MTBweDtsZWZ0OmF1dG99Lm1jZS1mdWxsc2NyZWVu
e2JvcmRlcjowO3BhZGRpbmc6MDttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDoj
ZmZmO2hlaWdodDoxMDAlfWRpdi5tY2UtZnVsbHNjcmVlbntwb3NpdGlvbjpmaXhlZDt0b3A6MDts
ZWZ0OjB9I21jZS1tb2RhbC1ibG9ja3tvcGFjaXR5OjA7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7
em9vbToxO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAl
O2JhY2tncm91bmQ6IzAwMH0jbWNlLW1vZGFsLWJsb2NrLm1jZS1pbntvcGFjaXR5Oi4zO2ZpbHRl
cjphbHBoYShvcGFjaXR5PTMwKTt6b29tOjF9Lm1jZS13aW5kb3ctbW92ZXtjdXJzb3I6bW92ZX0u
bWNlLXdpbmRvd3std2Via2l0LWJvcmRlci1yYWRpdXM6NnB4Oy1tb3otYm9yZGVyLXJhZGl1czo2
cHg7Ym9yZGVyLXJhZGl1czo2cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgM3B4IDdweCByZ2JhKDAs
IDAsIDAsIDAuMyk7LW1vei1ib3gtc2hhZG93OjAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMyk7
Ym94LXNoYWRvdzowIDNweCA3cHggcmdiYSgwLCAwLCAwLCAwLjMpO2ZpbHRlcjpwcm9naWQ6RFhJ
bWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtiYWNrZ3Jv
dW5kOnRyYW5zcGFyZW50O2JhY2tncm91bmQ6I2ZmZjtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0
OjA7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDE1MG1zIGVhc2UtaW47dHJh
bnNpdGlvbjpvcGFjaXR5IDE1MG1zIGVhc2UtaW59Lm1jZS13aW5kb3cubWNlLWlue29wYWNpdHk6
MX0ubWNlLXdpbmRvdy1oZWFke3BhZGRpbmc6OXB4IDE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29s
aWQgI2M1YzVjNTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLXdpbmRvdy1oZWFkIC5tY2UtY2xvc2V7
cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTVweDt0b3A6OXB4O2ZvbnQtc2l6ZToyMHB4O2ZvbnQt
d2VpZ2h0OmJvbGQ7bGluZS1oZWlnaHQ6MjBweDtjb2xvcjojODU4NTg1O2N1cnNvcjpwb2ludGVy
O2hlaWdodDoyMHB4O292ZXJmbG93OmhpZGRlbn0ubWNlLWNsb3NlOmhvdmVye2NvbG9yOiNhZGFk
YWR9Lm1jZS13aW5kb3ctaGVhZCAubWNlLXRpdGxle2xpbmUtaGVpZ2h0OjIwcHg7Zm9udC1zaXpl
OjIwcHg7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZWxlZ2liaWxpdHk7
cGFkZGluZy1yaWdodDoxMHB4fS5tY2Utd2luZG93IC5tY2UtY29udGFpbmVyLWJvZHl7ZGlzcGxh
eTpibG9ja30ubWNlLWZvb3R7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9y
ZGVyLXRvcDoxcHggc29saWQgI2M1YzVjNTstd2Via2l0LWJvcmRlci1yYWRpdXM6MCAwIDZweCA2
cHg7LW1vei1ib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4O2JvcmRlci1yYWRpdXM6MCAwIDZweCA2
cHh9Lm1jZS13aW5kb3ctaGVhZCAubWNlLWRyYWdoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xl
ZnQ6MDtjdXJzb3I6bW92ZTt3aWR0aDo5MCU7aGVpZ2h0OjEwMCV9Lm1jZS13aW5kb3cgaWZyYW1l
e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lm1jZS13aW5kb3cubWNlLWZ1bGxzY3JlZW4sLm1jZS13
aW5kb3cubWNlLWZ1bGxzY3JlZW4gLm1jZS1mb290ey13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1t
b3otYm9yZGVyLXJhZGl1czowO2JvcmRlci1yYWRpdXM6MH0ubWNlLXJ0bCAubWNlLXdpbmRvdy1o
ZWFkIC5tY2UtY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6YXV0bztsZWZ0OjE1cHh9Lm1j
ZS1ydGwgLm1jZS13aW5kb3ctaGVhZCAubWNlLWRyYWdoe2xlZnQ6YXV0bztyaWdodDowfS5tY2Ut
cnRsIC5tY2Utd2luZG93LWhlYWQgLm1jZS10aXRsZXtkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246
cmlnaHR9Lm1jZS1hYnMtbGF5b3V0e3Bvc2l0aW9uOnJlbGF0aXZlfWJvZHkgLm1jZS1hYnMtbGF5
b3V0LWl0ZW0sLm1jZS1hYnMtZW5ke3Bvc2l0aW9uOmFic29sdXRlfS5tY2UtYWJzLWVuZHt3aWR0
aDoxcHg7aGVpZ2h0OjFweH0ubWNlLWNvbnRhaW5lci1ib2R5Lm1jZS1hYnMtbGF5b3V0e292ZXJm
bG93OmhpZGRlbn0ubWNlLXRvb2x0aXB7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzo1cHg7b3Bh
Y2l0eTouODtmaWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7em9vbToxfS5tY2UtdG9vbHRpcC1pbm5l
cntmb250LXNpemU6MTFweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6I2ZmZjttYXgtd2lk
dGg6MjAwcHg7cGFkZGluZzo1cHggOHB4IDRweCA4cHg7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUt
c3BhY2U6bm9ybWFsfS5tY2UtdG9vbHRpcC1pbm5lcnstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4
Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHh9Lm1jZS10b29sdGlwLWlu
bmVyey13ZWJraXQtYm94LXNoYWRvdzowIDAgNXB4ICMwMDAwMDA7LW1vei1ib3gtc2hhZG93OjAg
MCA1cHggIzAwMDAwMDtib3gtc2hhZG93OjAgMCA1cHggIzAwMDAwMH0ubWNlLXRvb2x0aXAtYXJy
b3d7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtsaW5lLWhlaWdodDowO2JvcmRl
cjo1cHggZGFzaGVkICMwMDB9Lm1jZS10b29sdGlwLWFycm93LW57Ym9yZGVyLWJvdHRvbS1jb2xv
cjojMDAwfS5tY2UtdG9vbHRpcC1hcnJvdy1ze2JvcmRlci10b3AtY29sb3I6IzAwMH0ubWNlLXRv
b2x0aXAtYXJyb3ctZXtib3JkZXItbGVmdC1jb2xvcjojMDAwfS5tY2UtdG9vbHRpcC1hcnJvdy13
e2JvcmRlci1yaWdodC1jb2xvcjojMDAwfS5tY2UtdG9vbHRpcC1udywubWNlLXRvb2x0aXAtc3d7
bWFyZ2luLWxlZnQ6LTE0cHh9Lm1jZS10b29sdGlwLW4gLm1jZS10b29sdGlwLWFycm93e3RvcDow
cHg7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTVweDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2Jv
cmRlci10b3A6bm9uZTtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQt
Y29sb3I6dHJhbnNwYXJlbnR9Lm1jZS10b29sdGlwLW53IC5tY2UtdG9vbHRpcC1hcnJvd3t0b3A6
MDtsZWZ0OjEwcHg7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItdG9wOm5vbmU7Ym9y
ZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50
fS5tY2UtdG9vbHRpcC1uZSAubWNlLXRvb2x0aXAtYXJyb3d7dG9wOjA7cmlnaHQ6MTBweDtib3Jk
ZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdC1jb2xvcjp0
cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lm1jZS10b29sdGlwLXMg
Lm1jZS10b29sdGlwLWFycm93e2JvdHRvbTowO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi01cHg7Ym9y
ZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLWxlZnQtY29sb3I6
dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tY2UtdG9vbHRpcC1z
dyAubWNlLXRvb2x0aXAtYXJyb3d7Ym90dG9tOjA7bGVmdDoxMHB4O2JvcmRlci10b3Atc3R5bGU6
c29saWQ7Ym9yZGVyLWJvdHRvbTpub25lO2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O2Jv
cmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWNlLXRvb2x0aXAtc2UgLm1jZS10b29sdGlw
LWFycm93e2JvdHRvbTowO3JpZ2h0OjEwcHg7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXIt
Ym90dG9tOm5vbmU7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNv
bG9yOnRyYW5zcGFyZW50fS5tY2UtdG9vbHRpcC1lIC5tY2UtdG9vbHRpcC1hcnJvd3tyaWdodDow
O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO2JvcmRlci1y
aWdodDpub25lO2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xv
cjp0cmFuc3BhcmVudH0ubWNlLXRvb2x0aXAtdyAubWNlLXRvb2x0aXAtYXJyb3d7bGVmdDowO3Rv
cDo1MCU7bWFyZ2luLXRvcDotNXB4O2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItbGVm
dDpub25lO2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0
cmFuc3BhcmVudH0ubWNlLWJ0bntib3JkZXI6MXB4IHNvbGlkICNiMWIxYjE7Ym9yZGVyLWNvbG9y
OnJnYmEoMCwwLDAsMC4xKSByZ2JhKDAsMCwwLDAuMSkgcmdiYSgwLDAsMCwwLjI1KSByZ2JhKDAs
MCwwLDAuMjUpO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtc2hhZG93OjAgMXB4IDFweCByZ2JhKDI1
NSwyNTUsMjU1LDAuNzUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9v
bToxOy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3Jk
ZXItcmFkaXVzOjNweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwg
MjU1LCAyNTUsIDAuMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOy1tb3otYm94LXNo
YWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgMCAxcHggMnB4IHJn
YmEoMCwgMCwgMCwgMC4wNSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUs
IDI1NSwgMC4yKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7YmFja2dyb3VuZC1jb2xv
cjojZjBmMGYwO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZm
LCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAs
IDAgMTAwJSwgZnJvbSgjZmZmKSwgdG8oI2Q5ZDlkOSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtp
dC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOi1v
LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtaW1hZ2U6bGlu
ZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1yZXBlYXQ6
cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVu
dChzdGFydENvbG9yc3RyPScjZmZmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2ZmZDlkOWQ5JywgR3Jh
ZGllbnRUeXBlPTApO3pvb206MX0ubWNlLWJ0bjpob3ZlciwubWNlLWJ0bjpmb2N1c3tjb2xvcjoj
MzMzO2JhY2tncm91bmQtY29sb3I6I2UzZTNlMztiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFy
LWdyYWRpZW50KHRvcCwgI2YyZjJmMiwgI2NjYyk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdy
YWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2YyZjJmMiksIHRvKCNjY2MpKTtiYWNr
Z3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2YyZjJmMiwgI2NjYyk7
YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmMmYyLCAjY2NjKTti
YWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmMmYyZjIsICNjY2Mp
O2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9y
bS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZjJmMmYyJywgZW5kQ29sb3Jz
dHI9JyNmZmNjY2NjYycsIEdyYWRpZW50VHlwZT0wKTt6b29tOjF9Lm1jZS1idG4ubWNlLWRpc2Fi
bGVkIGJ1dHRvbiwubWNlLWJ0bi5tY2UtZGlzYWJsZWQ6aG92ZXIgYnV0dG9ue2N1cnNvcjpkZWZh
dWx0Oy13ZWJraXQtYm94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFk
b3c6bm9uZTtvcGFjaXR5Oi40O2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTt6b29tOjF9Lm1jZS1i
dG4ubWNlLWFjdGl2ZSwubWNlLWJ0bi5tY2UtYWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6
I2Q2ZDZkNjtiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2U2ZTZl
NiwgI2MwYzBjMCk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAw
LCAwIDEwMCUsIGZyb20oI2U2ZTZlNiksIHRvKCNjMGMwYzApKTtiYWNrZ3JvdW5kLWltYWdlOi13
ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1p
bWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCAjZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5k
LWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlNmU2ZTYsICNjMGMwYzApO2JhY2tn
cm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNy
b3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZTZlNmU2JywgZW5kQ29sb3JzdHI9JyNm
ZmMwYzBjMCcsIEdyYWRpZW50VHlwZT0wKTt6b29tOjE7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0
IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAw
LjA1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSks
IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO2JveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4
IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpfS5tY2Ut
YnRuOm5vdCgubWNlLWRpc2FibGVkKTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDZkNmQ2O2Jh
Y2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZTZlNmU2LCAjYzBjMGMw
KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwg
ZnJvbSgjZTZlNmU2KSwgdG8oI2MwYzBjMCkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5l
YXItZ3JhZGllbnQodG9wLCAjZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxp
bmVhci1ncmFkaWVudCh0b3AsICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91bmQtaW1hZ2U6bGlu
ZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1yZXBl
YXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFk
aWVudChzdGFydENvbG9yc3RyPScjZmZlNmU2ZTYnLCBlbmRDb2xvcnN0cj0nI2ZmYzBjMGMwJywg
R3JhZGllbnRUeXBlPTApO3pvb206MTstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4
IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOy1tb3ot
Ym94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4
IHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAw
LCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSl9Lm1jZS1idG4gYnV0dG9u
e3BhZGRpbmc6NHB4IDEwcHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjBweDsqbGluZS1o
ZWlnaHQ6MTZweDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojMzMzO3RleHQtYWxpZ246Y2VudGVyO292
ZXJmbG93OnZpc2libGU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm1jZS1idG4gYnV0dG9uOjot
bW96LWZvY3VzLWlubmVye2JvcmRlcjowO3BhZGRpbmc6MH0ubWNlLWJ0biBpe3RleHQtc2hhZG93
OjFweCAxcHggI2ZmZn0ubWNlLXByaW1hcnl7bWluLXdpZHRoOjUwcHg7Y29sb3I6I2ZmZjtib3Jk
ZXI6MXB4IHNvbGlkICNiMWIxYjE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKSByZ2JhKDAs
MCwwLDAuMSkgcmdiYSgwLDAsMCwwLjI1KSByZ2JhKDAsMCwwLDAuMjUpO2JhY2tncm91bmQtY29s
b3I6IzAwNmRjYztiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzA4
YywgIzA0Yyk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAw
IDEwMCUsIGZyb20oIzA4YyksIHRvKCMwNGMpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGlu
ZWFyLWdyYWRpZW50KHRvcCwgIzA4YywgIzA0Yyk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXIt
Z3JhZGllbnQodG9wLCAjMDhjLCAjMDRjKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVu
dCh0byBib3R0b20sICMwOGMsICMwNGMpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRl
cjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0
cj0nI2ZmMDA4OGNjJywgZW5kQ29sb3JzdHI9JyNmZjAwNDRjYycsIEdyYWRpZW50VHlwZT0wKTt6
b29tOjF9Lm1jZS1wcmltYXJ5OmhvdmVyLC5tY2UtcHJpbWFyeTpmb2N1c3tiYWNrZ3JvdW5kLWNv
bG9yOiMwMDVmYjM7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMw
MDc3YjMsICMwMDNjYjMpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIs
IDAgMCwgMCAxMDAlLCBmcm9tKCMwMDc3YjMpLCB0bygjMDAzY2IzKSk7YmFja2dyb3VuZC1pbWFn
ZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMwMDc3YjMsICMwMDNjYjMpO2JhY2tncm91
bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwNzdiMywgIzAwM2NiMyk7YmFja2dy
b3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDA3N2IzLCAjMDAzY2IzKTti
YWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0u
TWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjAwNzdiMycsIGVuZENvbG9yc3Ry
PScjZmYwMDNjYjMnLCBHcmFkaWVudFR5cGU9MCk7em9vbToxfS5tY2UtcHJpbWFyeS5tY2UtZGlz
YWJsZWQgYnV0dG9uLC5tY2UtcHJpbWFyeS5tY2UtZGlzYWJsZWQ6aG92ZXIgYnV0dG9ue2N1cnNv
cjpkZWZhdWx0Oy13ZWJraXQtYm94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2Jv
eC1zaGFkb3c6bm9uZTtvcGFjaXR5Oi40O2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTt6b29tOjF9
Lm1jZS1wcmltYXJ5Lm1jZS1hY3RpdmUsLm1jZS1wcmltYXJ5Lm1jZS1hY3RpdmU6aG92ZXIsLm1j
ZS1wcmltYXJ5Om5vdCgubWNlLWRpc2FibGVkKTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDA1
Mjk5O2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMDY5LCAjMDM5
KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwg
ZnJvbSgjMDY5KSwgdG8oIzAzOSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3Jh
ZGllbnQodG9wLCAjMDY5LCAjMDM5KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVu
dCh0b3AsICMwNjksICMwMzkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJv
dHRvbSwgIzA2OSwgIzAzOSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dp
ZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYw
MDY2OTknLCBlbmRDb2xvcnN0cj0nI2ZmMDAzMzk5JywgR3JhZGllbnRUeXBlPTApO3pvb206MTst
d2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAg
MXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDJweCA0
cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym94
LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJn
YmEoMCwgMCwgMCwgMC4wNSl9Lm1jZS1wcmltYXJ5IGJ1dHRvbiwubWNlLXByaW1hcnkgYnV0dG9u
IGl7Y29sb3I6I2ZmZjt0ZXh0LXNoYWRvdzoxcHggMXB4ICMzMzN9Lm1jZS1idG4tbGFyZ2UgYnV0
dG9ue3BhZGRpbmc6OXB4IDE0cHg7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6bm9ybWFsOy13
ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFk
aXVzOjVweH0ubWNlLWJ0bi1sYXJnZSBpe21hcmdpbi10b3A6MnB4fS5tY2UtYnRuLXNtYWxsIGJ1
dHRvbntwYWRkaW5nOjFweCA1cHg7Zm9udC1zaXplOjEycHg7KnBhZGRpbmctYm90dG9tOjJweH0u
bWNlLWJ0bi1zbWFsbCBpe2xpbmUtaGVpZ2h0OjIwcHg7dmVydGljYWwtYWxpZ246dG9wOypsaW5l
LWhlaWdodDoxOHB4fS5tY2UtYnRuIC5tY2UtY2FyZXR7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLWxl
ZnQ6MH0ubWNlLWJ0bi1zbWFsbCAubWNlLWNhcmV0e21hcmdpbi10b3A6OHB4O21hcmdpbi1sZWZ0
OjB9Lm1jZS1jYXJldHtkaXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206
MTt3aWR0aDowO2hlaWdodDowO3ZlcnRpY2FsLWFsaWduOnRvcDtib3JkZXItdG9wOjRweCBzb2xp
ZCAjMzMzO2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6NHB4
IHNvbGlkIHRyYW5zcGFyZW50O2NvbnRlbnQ6IiJ9Lm1jZS1kaXNhYmxlZCAubWNlLWNhcmV0e2Jv
cmRlci10b3AtY29sb3I6I2FhYX0ubWNlLWNhcmV0Lm1jZS11cHtib3JkZXItYm90dG9tOjRweCBz
b2xpZCAjMzMzO2JvcmRlci10b3A6MH0ubWNlLXJ0bCAubWNlLWJ0biBidXR0b257ZGlyZWN0aW9u
OnJ0bH0ubWNlLWJ0bi1ncm91cCAubWNlLWJ0bntib3JkZXItd2lkdGg6MXB4IDAgMXB4IDA7bWFy
Z2luOjA7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjA7LW1vei1ib3JkZXItcmFkaXVzOjA7Ym9yZGVy
LXJhZGl1czowfS5tY2UtYnRuLWdyb3VwIC5tY2UtZmlyc3R7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlk
ICNiMWIxYjE7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yNSk7LXdlYmtpdC1i
b3JkZXItcmFkaXVzOjNweCAwIDAgM3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDti
b3JkZXItcmFkaXVzOjNweCAwIDAgM3B4fS5tY2UtYnRuLWdyb3VwIC5tY2UtbGFzdHtib3JkZXIt
cmlnaHQ6MXB4IHNvbGlkICNiMWIxYjE7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCww
LDAuMSk7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwOy1tb3otYm9yZGVyLXJhZGl1
czowIDNweCAzcHggMDtib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwfS5tY2UtYnRuLWdyb3VwIC5t
Y2UtZmlyc3QubWNlLWxhc3R7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1y
YWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4fS5tY2UtYnRuLWdyb3VwIC5tY2UtYnRuLm1jZS1m
bG93LWxheW91dC1pdGVte21hcmdpbjowfS5tY2UtY2hlY2tib3h7Y3Vyc29yOnBvaW50ZXJ9aS5t
Y2UtaS1jaGVja2JveHttYXJnaW46MCAzcHggMCAwO2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTst
d2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJh
ZGl1czozcHg7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwg
MjU1LCAwLjIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTstbW96LWJveC1zaGFkb3c6
aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIDAgMXB4IDJweCByZ2JhKDAs
IDAsIDAsIDAuMDUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUs
IDAuMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO2JhY2tncm91bmQtY29sb3I6I2Yw
ZjBmMDtiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiwgI2Q5
ZDlkOSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEw
MCUsIGZyb20oI2ZmZiksIHRvKCNkOWQ5ZDkpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGlu
ZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5l
YXItZ3JhZGllbnQodG9wLCAjZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1n
cmFkaWVudCh0byBib3R0b20sICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVh
dC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3Rh
cnRDb2xvcnN0cj0nI2ZmZmZmZmZmJywgZW5kQ29sb3JzdHI9JyNmZmQ5ZDlkOScsIEdyYWRpZW50
VHlwZT0wKTt6b29tOjE7dGV4dC1pbmRlbnQ6LTEwZW07KmZvbnQtc2l6ZTowOypsaW5lLWhlaWdo
dDowOyp0ZXh0LWluZGVudDowO292ZXJmbG93OmhpZGRlbn0ubWNlLWNoZWNrZWQgaS5tY2UtaS1j
aGVja2JveHtjb2xvcjojMzMzO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE2cHg7dGV4dC1p
bmRlbnQ6MH0ubWNlLWNoZWNrYm94OmZvY3VzIGkubWNlLWktY2hlY2tib3gsLm1jZS1jaGVja2Jv
eC5tY2UtZm9jdXMgaS5tY2UtaS1jaGVja2JveHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoODIsMTY4
LDIzNiwwLjgpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAw
LCAwLjA3NSksIDAgMCA4cHggcmdiYSg4MiwgMTY4LCAyMzYsIDAuNjUpOy1tb3otYm94LXNoYWRv
dzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHggcmdiYSg4Miwg
MTY4LCAyMzYsIDAuNjUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwg
MC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjY1KX0ubWNlLWNoZWNrYm94Lm1j
ZS1kaXNhYmxlZCAubWNlLWxhYmVsLC5tY2UtY2hlY2tib3gubWNlLWRpc2FibGVkIGkubWNlLWkt
Y2hlY2tib3h7Y29sb3I6I2FjYWNhY30ubWNlLXJ0bCAubWNlLWNoZWNrYm94e2RpcmVjdGlvbjpy
dGw7dGV4dC1hbGlnbjpyaWdodH0ubWNlLXJ0bCBpLm1jZS1pLWNoZWNrYm94e21hcmdpbjowIDAg
MCAzcHh9Lm1jZS1jb2xvcmJ1dHRvbiAubWNlLWljb3twb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLWNv
bG9yYnV0dG9uLWdyaWR7bWFyZ2luOjRweH0ubWNlLWNvbG9yYnV0dG9uIGJ1dHRvbntwYWRkaW5n
LXJpZ2h0OjRweH0ubWNlLWNvbG9yYnV0dG9uIC5tY2UtcHJldmlld3twYWRkaW5nLXJpZ2h0OjNw
eDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCU7bWFyZ2lu
LWxlZnQ6LTE0cHg7bWFyZ2luLXRvcDo3cHg7YmFja2dyb3VuZDpncmF5O3dpZHRoOjEzcHg7aGVp
Z2h0OjJweDtvdmVyZmxvdzpoaWRkZW59Lm1jZS1jb2xvcmJ1dHRvbi5tY2UtYnRuLXNtYWxsIC5t
Y2UtcHJldmlld3ttYXJnaW4tbGVmdDotMTZweDtwYWRkaW5nLXJpZ2h0OjA7d2lkdGg6MTZweH0u
bWNlLWNvbG9yYnV0dG9uIC5tY2Utb3BlbntwYWRkaW5nLWxlZnQ6NHB4O2JvcmRlci1sZWZ0OjFw
eCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5t
Y2UtY29sb3JidXR0b246aG92ZXIgLm1jZS1vcGVue2JvcmRlci1sZWZ0LWNvbG9yOiNiZGJkYmQ7
Ym9yZGVyLXJpZ2h0LWNvbG9yOiNiZGJkYmR9Lm1jZS1jb2xvcmJ1dHRvbi5tY2UtYnRuLXNtYWxs
IC5tY2Utb3BlbntwYWRkaW5nOjAgM3B4IDAgM3B4fS5tY2UtcnRsIC5tY2UtY29sb3JidXR0b257
ZGlyZWN0aW9uOnJ0bH0ubWNlLXJ0bCAubWNlLWNvbG9yYnV0dG9uIC5tY2UtcHJldmlld3ttYXJn
aW4tbGVmdDowO3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6NHB4O21hcmdpbi1yaWdodDot
MTRweH0ubWNlLXJ0bCAubWNlLWNvbG9yYnV0dG9uLm1jZS1idG4tc21hbGwgLm1jZS1wcmV2aWV3
e21hcmdpbi1sZWZ0OjA7cGFkZGluZy1yaWdodDowO21hcmdpbi1yaWdodDotMTdweDtwYWRkaW5n
LWxlZnQ6MH0ubWNlLXJ0bCAubWNlLWNvbG9yYnV0dG9uIGJ1dHRvbntwYWRkaW5nLXJpZ2h0OjEw
cHg7cGFkZGluZy1sZWZ0OjEwcHh9Lm1jZS1ydGwgLm1jZS1jb2xvcmJ1dHRvbiAubWNlLW9wZW57
cGFkZGluZy1sZWZ0OjRweDtwYWRkaW5nLXJpZ2h0OjRweH0ubWNlLWNvbWJvYm94e2Rpc3BsYXk6
aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9vbToxOy13ZWJraXQtYm9yZGVyLXJhZGl1
czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweDstd2Via2l0LWJv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOy1tb3otYm94LXNo
YWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7Ym94LXNoYWRvdzppbnNl
dCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7KmhlaWdodDozMnB4fS5tY2UtY29tYm9i
b3ggaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1O2JvcmRlci1yaWdodC1jb2xvcjojYzVj
NWM1O2hlaWdodDoyOHB4fS5tY2UtY29tYm9ib3gubWNlLWRpc2FibGVkIGlucHV0e2NvbG9yOiNh
ZGFkYWR9Lm1jZS1jb21ib2JveC5tY2UtaGFzLW9wZW4gaW5wdXR7LXdlYmtpdC1ib3JkZXItcmFk
aXVzOjRweCAwIDAgNHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHggMCAwIDRweDtib3JkZXItcmFk
aXVzOjRweCAwIDAgNHB4fS5tY2UtY29tYm9ib3ggLm1jZS1idG57Ym9yZGVyLWxlZnQ6MDstd2Vi
a2l0LWJvcmRlci1yYWRpdXM6MCA0cHggNHB4IDA7LW1vei1ib3JkZXItcmFkaXVzOjAgNHB4IDRw
eCAwO2JvcmRlci1yYWRpdXM6MCA0cHggNHB4IDB9Lm1jZS1jb21ib2JveCBidXR0b257cGFkZGlu
Zy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjhweH0ubWNlLWNvbWJvYm94Lm1jZS1kaXNhYmxlZCAu
bWNlLWJ0biBidXR0b257Y3Vyc29yOmRlZmF1bHQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1v
ei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO29wYWNpdHk6LjQ7ZmlsdGVyOmFscGhh
KG9wYWNpdHk9NDApO3pvb206MX0ubWNlLXBhdGh7ZGlzcGxheTppbmxpbmUtYmxvY2s7KmRpc3Bs
YXk6aW5saW5lOyp6b29tOjE7cGFkZGluZzo4cHg7d2hpdGUtc3BhY2U6bm9ybWFsfS5tY2UtcGF0
aCAubWNlLXR4dHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0OjNweH0ubWNlLXBh
dGggLm1jZS1wYXRoLWJvZHl7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm1jZS1wYXRoLWl0ZW17ZGlz
cGxheTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7Y3Vyc29yOnBvaW50ZXI7
Y29sb3I6IzMzM30ubWNlLXBhdGgtaXRlbTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
fS5tY2UtcGF0aC1pdGVtOmZvY3Vze2JhY2tncm91bmQ6IzY2Njtjb2xvcjojZmZmfS5tY2UtcGF0
aCAubWNlLWRpdmlkZXJ7ZGlzcGxheTppbmxpbmV9Lm1jZS1kaXNhYmxlZCAubWNlLXBhdGgtaXRl
bXtjb2xvcjojYWFhfS5tY2UtcnRsIC5tY2UtcGF0aHtkaXJlY3Rpb246cnRsfS5tY2UtZmllbGRz
ZXR7Ym9yZGVyOjAgc29saWQgIzlFOUU5RTstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3ot
Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHh9Lm1jZS1maWVsZHNldD4ubWNlLWNv
bnRhaW5lci1ib2R5e21hcmdpbi10b3A6LTE1cHh9Lm1jZS1maWVsZHNldC10aXRsZXttYXJnaW4t
bGVmdDo1cHg7cGFkZGluZzowIDVweCAwIDVweH0ubWNlLWZpdC1sYXlvdXR7ZGlzcGxheTppbmxp
bmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjF9Lm1jZS1maXQtbGF5b3V0LWl0ZW17cG9z
aXRpb246YWJzb2x1dGV9Lm1jZS1mbG93LWxheW91dC1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2Nr
OypkaXNwbGF5OmlubGluZTsqem9vbToxfS5tY2UtZmxvdy1sYXlvdXQtaXRlbXttYXJnaW46MnB4
IDAgMnB4IDJweH0ubWNlLWZsb3ctbGF5b3V0LWl0ZW0ubWNlLWxhc3R7bWFyZ2luLXJpZ2h0OjJw
eH0ubWNlLWZsb3ctbGF5b3V0e3doaXRlLXNwYWNlOm5vcm1hbH0ubWNlLXRpbnltY2UtaW5saW5l
IC5tY2UtZmxvdy1sYXlvdXR7d2hpdGUtc3BhY2U6bm93cmFwfS5tY2UtcnRsIC5tY2UtZmxvdy1s
YXlvdXR7dGV4dC1hbGlnbjpyaWdodDtkaXJlY3Rpb246cnRsfS5tY2UtcnRsIC5tY2UtZmxvdy1s
YXlvdXQtaXRlbXttYXJnaW46MnB4IDJweCAycHggMH0ubWNlLXJ0bCAubWNlLWZsb3ctbGF5b3V0
LWl0ZW0ubWNlLWxhc3R7bWFyZ2luLWxlZnQ6MnB4fS5tY2UtaWZyYW1le2JvcmRlcjowIHNvbGlk
ICM5ZTllOWU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ubWNlLWxhYmVse2Rpc3BsYXk6aW5saW5l
LWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9vbToxO3RleHQtc2hhZG93OjAgMXB4IDFweCByZ2Jh
KDI1NSwyNTUsMjU1LDAuNzUpO292ZXJmbG93OmhpZGRlbn0ubWNlLWxhYmVsLm1jZS1hdXRvc2Ny
b2xse292ZXJmbG93OmF1dG99Lm1jZS1sYWJlbC5tY2UtZGlzYWJsZWR7Y29sb3I6I2FhYX0ubWNl
LWxhYmVsLm1jZS1tdWx0aWxpbmV7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1jZS1sYWJlbC5tY2Ut
ZXJyb3J7Y29sb3I6I2EwMH0ubWNlLXJ0bCAubWNlLWxhYmVse3RleHQtYWxpZ246cmlnaHQ7ZGly
ZWN0aW9uOnJ0bH0ubWNlLW1lbnViYXIgLm1jZS1tZW51YnRue2JvcmRlci1jb2xvcjp0cmFuc3Bh
cmVudDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3ot
Ym9yZGVyLXJhZGl1czowO2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTst
bW96LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7ZmlsdGVyOm5vbmV9Lm1jZS1tZW51
YmFye2JvcmRlcjoxcHggc29saWQgI2M0YzRjNH0ubWNlLW1lbnViYXIgLm1jZS1tZW51YnRuIGJ1
dHRvbiBzcGFue2NvbG9yOiMzMzN9Lm1jZS1tZW51YmFyIC5tY2UtY2FyZXR7Ym9yZGVyLXRvcC1j
b2xvcjojMzMzfS5tY2UtbWVudWJhciAubWNlLW1lbnVidG46aG92ZXIsLm1jZS1tZW51YmFyIC5t
Y2UtbWVudWJ0bi5tY2UtYWN0aXZlLC5tY2UtbWVudWJhciAubWNlLW1lbnVidG46Zm9jdXN7Ym9y
ZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQ6I2U2ZTZlNjtmaWx0ZXI6bm9uZTstd2Vi
a2l0LWJveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9
Lm1jZS1tZW51YnRuIHNwYW57Y29sb3I6IzMzMzttYXJnaW4tcmlnaHQ6MnB4O2xpbmUtaGVpZ2h0
OjIwcHg7KmxpbmUtaGVpZ2h0OjE2cHh9Lm1jZS1tZW51YnRuLm1jZS1idG4tc21hbGwgc3Bhbntm
b250LXNpemU6MTJweH0ubWNlLW1lbnVidG4ubWNlLWZpeGVkLXdpZHRoIHNwYW57ZGlzcGxheTpp
bmxpbmUtYmxvY2s7b3ZlcmZsb3cteDpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aWR0
aDo5MHB4fS5tY2UtbWVudWJ0bi5tY2UtZml4ZWQtd2lkdGgubWNlLWJ0bi1zbWFsbCBzcGFue3dp
ZHRoOjcwcHh9Lm1jZS1tZW51YnRuIC5tY2UtY2FyZXR7Km1hcmdpbi10b3A6NnB4fS5tY2UtcnRs
IC5tY2UtbWVudWJ0biBidXR0b257ZGlyZWN0aW9uOnJ0bDt0ZXh0LWFsaWduOnJpZ2h0fS5tY2Ut
bGlzdGJveCBidXR0b257dGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmctcmlnaHQ6MjBweDtwb3NpdGlv
bjpyZWxhdGl2ZX0ubWNlLWxpc3Rib3ggLm1jZS1jYXJldHtwb3NpdGlvbjphYnNvbHV0ZTttYXJn
aW4tdG9wOi0ycHg7cmlnaHQ6OHB4O3RvcDo1MCV9Lm1jZS1ydGwgLm1jZS1saXN0Ym94IC5tY2Ut
Y2FyZXR7cmlnaHQ6YXV0bztsZWZ0OjhweH0ubWNlLXJ0bCAubWNlLWxpc3Rib3ggYnV0dG9ue3Bh
ZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWxlZnQ6MjBweH0ubWNlLW1lbnUtaXRlbXtkaXNwbGF5
OmJsb2NrO3BhZGRpbmc6NnB4IDE1cHggNnB4IDEycHg7Y2xlYXI6Ym90aDtmb250LXdlaWdodDpu
b3JtYWw7bGluZS1oZWlnaHQ6MjBweDtjb2xvcjojMzMzO3doaXRlLXNwYWNlOm5vd3JhcDtjdXJz
b3I6cG9pbnRlcjtsaW5lLWhlaWdodDpub3JtYWw7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5z
cGFyZW50O21hcmdpbi1ib3R0b206MXB4fS5tY2UtbWVudS1pdGVtIC5tY2UtaWNvLC5tY2UtbWVu
dS1pdGVtIC5tY2UtdGV4dHtjb2xvcjojMzMzfS5tY2UtbWVudS1pdGVtLm1jZS1kaXNhYmxlZCAu
bWNlLXRleHQsLm1jZS1tZW51LWl0ZW0ubWNlLWRpc2FibGVkIC5tY2UtaWNve2NvbG9yOiNhZGFk
YWR9Lm1jZS1tZW51LWl0ZW06aG92ZXIgLm1jZS10ZXh0LC5tY2UtbWVudS1pdGVtLm1jZS1zZWxl
Y3RlZCAubWNlLXRleHQsLm1jZS1tZW51LWl0ZW06Zm9jdXMgLm1jZS10ZXh0e2NvbG9yOiNmZmZ9
Lm1jZS1tZW51LWl0ZW06aG92ZXIgLm1jZS1pY28sLm1jZS1tZW51LWl0ZW0ubWNlLXNlbGVjdGVk
IC5tY2UtaWNvLC5tY2UtbWVudS1pdGVtOmZvY3VzIC5tY2UtaWNve2NvbG9yOiNmZmZ9Lm1jZS1t
ZW51LWl0ZW0ubWNlLWRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6I2NjY30ubWNlLW1lbnUtc2hv
cnRjdXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6I2FkYWRhZH0ubWNlLW1lbnUtc2hvcnRj
dXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7cGFkZGluZzow
IDE1cHggMCAyMHB4fS5tY2UtbWVudS1pdGVtOmhvdmVyIC5tY2UtbWVudS1zaG9ydGN1dCwubWNl
LW1lbnUtaXRlbS5tY2Utc2VsZWN0ZWQgLm1jZS1tZW51LXNob3J0Y3V0LC5tY2UtbWVudS1pdGVt
OmZvY3VzIC5tY2UtbWVudS1zaG9ydGN1dHtjb2xvcjojZmZmfS5tY2UtbWVudS1pdGVtIC5tY2Ut
Y2FyZXR7bWFyZ2luLXRvcDo0cHg7Km1hcmdpbi10b3A6M3B4O21hcmdpbi1yaWdodDo2cHg7Ym9y
ZGVyLXRvcDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgdHJh
bnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMzMzN9Lm1jZS1tZW51LWl0ZW0ubWNlLXNl
bGVjdGVkIC5tY2UtY2FyZXQsLm1jZS1tZW51LWl0ZW06Zm9jdXMgLm1jZS1jYXJldCwubWNlLW1l
bnUtaXRlbTpob3ZlciAubWNlLWNhcmV0e2JvcmRlci1sZWZ0LWNvbG9yOiNmZmZ9Lm1jZS1tZW51
LWFsaWduIC5tY2UtbWVudS1zaG9ydGN1dHsqbWFyZ2luLXRvcDotMnB4fS5tY2UtbWVudS1hbGln
biAubWNlLW1lbnUtc2hvcnRjdXQsLm1jZS1tZW51LWFsaWduIC5tY2UtY2FyZXR7cG9zaXRpb246
YWJzb2x1dGU7cmlnaHQ6MH0ubWNlLW1lbnUtaXRlbS5tY2UtYWN0aXZlIGl7dmlzaWJpbGl0eTp2
aXNpYmxlfS5tY2UtbWVudS1pdGVtLW5vcm1hbC5tY2UtYWN0aXZle2JhY2tncm91bmQtY29sb3I6
I2M4ZGVmNH0ubWNlLW1lbnUtaXRlbS1wcmV2aWV3Lm1jZS1hY3RpdmV7Ym9yZGVyLWxlZnQ6NXB4
IHNvbGlkICNhYWF9Lm1jZS1tZW51LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmUgLm1jZS10ZXh0e2Nv
bG9yOiMzMzN9Lm1jZS1tZW51LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmU6aG92ZXIgLm1jZS10ZXh0
LC5tY2UtbWVudS1pdGVtLW5vcm1hbC5tY2UtYWN0aXZlOmhvdmVyIC5tY2UtaWNve2NvbG9yOiNm
ZmZ9Lm1jZS1tZW51LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmU6Zm9jdXMgLm1jZS10ZXh0LC5tY2Ut
bWVudS1pdGVtLW5vcm1hbC5tY2UtYWN0aXZlOmZvY3VzIC5tY2UtaWNve2NvbG9yOiNmZmZ9Lm1j
ZS1tZW51LWl0ZW06aG92ZXIsLm1jZS1tZW51LWl0ZW0ubWNlLXNlbGVjdGVkLC5tY2UtbWVudS1p
dGVtOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xv
cjojMDA4MWMyO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMDhj
LCAjMDA3N2IzKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAs
IDAgMTAwJSwgZnJvbSgjMDhjKSwgdG8oIzAwNzdiMykpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtp
dC1saW5lYXItZ3JhZGllbnQodG9wLCAjMDhjLCAjMDA3N2IzKTtiYWNrZ3JvdW5kLWltYWdlOi1v
LWxpbmVhci1ncmFkaWVudCh0b3AsICMwOGMsICMwMDc3YjMpO2JhY2tncm91bmQtaW1hZ2U6bGlu
ZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzA4YywgIzAwNzdiMyk7YmFja2dyb3VuZC1yZXBlYXQ6
cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVu
dChzdGFydENvbG9yc3RyPScjZmYwMDg4Y2MnLCBlbmRDb2xvcnN0cj0nI2ZmMDA3N2IzJywgR3Jh
ZGllbnRUeXBlPTApO3pvb206MX1kaXYubWNlLW1lbnUgLm1jZS1tZW51LWl0ZW0tc2VwLC5tY2Ut
bWVudS1pdGVtLXNlcDpob3Zlcntib3JkZXI6MDtwYWRkaW5nOjA7aGVpZ2h0OjFweDttYXJnaW46
OXB4IDFweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojY2JjYmNiO2JvcmRlci1ib3R0b206
MXB4IHNvbGlkICNmZmY7Y3Vyc29yOmRlZmF1bHQ7ZmlsdGVyOm5vbmV9Lm1jZS1tZW51Lm1jZS1y
dGx7ZGlyZWN0aW9uOnJ0bH0ubWNlLXJ0bCAubWNlLW1lbnUtaXRlbXt0ZXh0LWFsaWduOnJpZ2h0
O2RpcmVjdGlvbjpydGw7cGFkZGluZzo2cHggMTJweCA2cHggMTVweH0ubWNlLW1lbnUtYWxpZ24u
bWNlLXJ0bCAubWNlLW1lbnUtc2hvcnRjdXQsLm1jZS1tZW51LWFsaWduLm1jZS1ydGwgLm1jZS1j
YXJldHtyaWdodDphdXRvO2xlZnQ6MH0ubWNlLXJ0bCAubWNlLW1lbnUtaXRlbSAubWNlLWNhcmV0
e21hcmdpbi1sZWZ0OjZweDttYXJnaW4tcmlnaHQ6MDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkICMz
MzM7Ym9yZGVyLWxlZnQ6MH0ubWNlLXJ0bCAubWNlLW1lbnUtaXRlbS5tY2Utc2VsZWN0ZWQgLm1j
ZS1jYXJldCwubWNlLXJ0bCAubWNlLW1lbnUtaXRlbTpmb2N1cyAubWNlLWNhcmV0LC5tY2UtcnRs
IC5tY2UtbWVudS1pdGVtOmhvdmVyIC5tY2UtY2FyZXR7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNw
YXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmZmZ9Lm1jZS1tZW51e3Bvc2l0aW9uOmFic29sdXRl
O2xlZnQ6MDt0b3A6MDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lmdy
YWRpZW50KGVuYWJsZWQgPSBmYWxzZSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt6LWluZGV4OjEw
MDA7cGFkZGluZzo1cHggMCA1cHggMDttYXJnaW46MnB4IDAgMDttaW4td2lkdGg6MTYwcHg7YmFj
a2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzk4OTg5ODtib3JkZXI6MXB4IHNvbGlkIHJn
YmEoMCwwLDAsMC4yKTt6LWluZGV4OjEwMDI7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDstbW96
LWJvcmRlci1yYWRpdXM6NnB4O2JvcmRlci1yYWRpdXM6NnB4Oy13ZWJraXQtYm94LXNoYWRvdzow
IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTstbW96LWJveC1zaGFkb3c6MCA1cHggMTBweCBy
Z2JhKDAsIDAsIDAsIDAuMik7Ym94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4y
KTttYXgtaGVpZ2h0OjQwMHB4O292ZXJmbG93OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59Lm1jZS1t
ZW51IGl7ZGlzcGxheTpub25lfS5tY2UtbWVudS1oYXMtaWNvbnMgaXtkaXNwbGF5OmlubGluZS1i
bG9jazsqZGlzcGxheTppbmxpbmV9Lm1jZS1tZW51LXN1Yi10ci10bHttYXJnaW46LTZweCAwIDAg
LTFweH0ubWNlLW1lbnUtc3ViLWJyLWJse21hcmdpbjo2cHggMCAwIC0xcHh9Lm1jZS1tZW51LXN1
Yi10bC10cnttYXJnaW46LTZweCAwIDAgMXB4fS5tY2UtbWVudS1zdWItYmwtYnJ7bWFyZ2luOjZw
eCAwIDAgMXB4fS5tY2UtY29udGFpbmVyLWJvZHkgLm1jZS1yZXNpemVoYW5kbGV7cG9zaXRpb246
YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3Zpc2liaWxp
dHk6dmlzaWJsZTtjdXJzb3I6cy1yZXNpemU7bWFyZ2luOjB9Lm1jZS1jb250YWluZXItYm9keSAu
bWNlLXJlc2l6ZWhhbmRsZS1ib3Roe2N1cnNvcjpzZS1yZXNpemV9aS5tY2UtaS1yZXNpemV7Y29s
b3I6IzMzM30ubWNlLXNwYWNlcnt2aXNpYmlsaXR5OmhpZGRlbn0ubWNlLXNwbGl0YnRuIC5tY2Ut
b3Blbntib3JkZXItbGVmdDoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjFweCBz
b2xpZCB0cmFuc3BhcmVudH0ubWNlLXNwbGl0YnRuOmhvdmVyIC5tY2Utb3Blbntib3JkZXItbGVm
dC1jb2xvcjojYmRiZGJkO2JvcmRlci1yaWdodC1jb2xvcjojYmRiZGJkfS5tY2Utc3BsaXRidG4g
YnV0dG9ue3BhZGRpbmctcmlnaHQ6NHB4fS5tY2Utc3BsaXRidG4gLm1jZS1vcGVue3BhZGRpbmct
bGVmdDo0cHh9Lm1jZS1zcGxpdGJ0biAubWNlLW9wZW4ubWNlLWFjdGl2ZXstd2Via2l0LWJveC1z
aGFkb3c6aW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2Jh
KDAsIDAsIDAsIDAuMDUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAw
LCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym94LXNoYWRvdzppbnNl
dCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwg
MC4wNSl9Lm1jZS1zcGxpdGJ0bi5tY2UtYnRuLXNtYWxsIC5tY2Utb3BlbntwYWRkaW5nOjAgM3B4
IDAgM3B4fS5tY2UtcnRsIC5tY2Utc3BsaXRidG57ZGlyZWN0aW9uOnJ0bDt0ZXh0LWFsaWduOnJp
Z2h0fS5tY2UtcnRsIC5tY2Utc3BsaXRidG4gYnV0dG9ue3BhZGRpbmctcmlnaHQ6MTBweDtwYWRk
aW5nLWxlZnQ6MTBweH0ubWNlLXJ0bCAubWNlLXNwbGl0YnRuIC5tY2Utb3BlbntwYWRkaW5nLWxl
ZnQ6NHB4O3BhZGRpbmctcmlnaHQ6NHB4fS5tY2Utc3RhY2stbGF5b3V0LWl0ZW17ZGlzcGxheTpi
bG9ja30ubWNlLXRhYnN7ZGlzcGxheTpibG9jaztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzVj
NWM1fS5tY2UtdGFie2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9vbTox
O2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTtib3JkZXItd2lkdGg6MCAxcHggMCAwO2JhY2tncm91
bmQ6I2UzZTNlMztwYWRkaW5nOjhweDt0ZXh0LXNoYWRvdzowIDFweCAxcHggcmdiYSgyNTUsMjU1
LDI1NSwwLjc1KTtoZWlnaHQ6MTNweDtjdXJzb3I6cG9pbnRlcn0ubWNlLXRhYjpob3ZlcntiYWNr
Z3JvdW5kOiNmZGZkZmR9Lm1jZS10YWIubWNlLWFjdGl2ZXtiYWNrZ3JvdW5kOiNmZGZkZmQ7Ym9y
ZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDttYXJnaW4tYm90dG9tOi0xcHg7aGVpZ2h0OjE0
cHh9Lm1jZS1ydGwgLm1jZS10YWJze3RleHQtYWxpZ246cmlnaHQ7ZGlyZWN0aW9uOnJ0bH0ubWNl
LXJ0bCAubWNlLXRhYntib3JkZXItd2lkdGg6MCAwIDAgMXB4fS5tY2UtdGV4dGJveHtiYWNrZ3Jv
dW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoz
cHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweDstd2Via2l0LWJveC1z
aGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOy1tb3otYm94LXNoYWRv
dzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7Ym94LXNoYWRvdzppbnNldCAw
IDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtp
dC10cmFuc2l0aW9uOmJvcmRlciBsaW5lYXIgLjJzLCBib3gtc2hhZG93IGxpbmVhciAuMnM7dHJh
bnNpdGlvbjpib3JkZXIgbGluZWFyIC4ycywgYm94LXNoYWRvdyBsaW5lYXIgLjJzO2hlaWdodDoy
OHB4O3Jlc2l6ZTpub25lO3BhZGRpbmc6MCA0cHggMCA0cHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7
KndoaXRlLXNwYWNlOnByZTtjb2xvcjojMzMzfS5tY2UtdGV4dGJveDpmb2N1cywubWNlLXRleHRi
b3gubWNlLWZvY3Vze2JvcmRlci1jb2xvcjpyZ2JhKDgyLDE2OCwyMzYsMC44KTstd2Via2l0LWJv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJn
YmEoODIsIDE2OCwgMjM2LCAwLjY1KTstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJn
YmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjY1KTtib3gt
c2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2Jh
KDgyLCAxNjgsIDIzNiwgMC42NSl9Lm1jZS1wbGFjZWhvbGRlciAubWNlLXRleHRib3h7Y29sb3I6
I2FhYX0ubWNlLXRleHRib3gubWNlLW11bHRpbGluZXtwYWRkaW5nOjRweH0ubWNlLXRleHRib3gu
bWNlLWRpc2FibGVke2NvbG9yOiNhZGFkYWR9Lm1jZS1ydGwgLm1jZS10ZXh0Ym94e3RleHQtYWxp
Z246cmlnaHQ7ZGlyZWN0aW9uOnJ0bH0ubWNlLXRocm9iYmVye3Bvc2l0aW9uOmFic29sdXRlO3Rv
cDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29wYWNpdHk6LjY7ZmlsdGVyOmFscGhh
KG9wYWNpdHk9NjApO3pvb206MTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCdpbWcvbG9hZGVyLmdpZicp
IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyfS5tY2UtdGhyb2JiZXItaW5saW5le3Bvc2l0aW9uOnN0
YXRpYztoZWlnaHQ6NTBweH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Oid0aW55bWNlJztzcmM6dXJs
KCdmb250cy90aW55bWNlLmVvdCcpO3NyYzp1cmwoJ2ZvbnRzL3RpbnltY2UuZW90PyNpZWZpeCcp
IGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJ2ZvbnRzL3RpbnltY2Uud29mZicpIGZv
cm1hdCgnd29mZicpLHVybCgnZm9udHMvdGlueW1jZS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyks
dXJsKCdmb250cy90aW55bWNlLnN2ZyN0aW55bWNlJykgZm9ybWF0KCdzdmcnKTtmb250LXdlaWdo
dDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTondGlueW1j
ZS1zbWFsbCc7c3JjOnVybCgnZm9udHMvdGlueW1jZS1zbWFsbC5lb3QnKTtzcmM6dXJsKCdmb250
cy90aW55bWNlLXNtYWxsLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyks
dXJsKCdmb250cy90aW55bWNlLXNtYWxsLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJ2ZvbnRz
L3RpbnltY2Utc21hbGwudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLHVybCgnZm9udHMvdGlueW1j
ZS1zbWFsbC5zdmcjdGlueW1jZScpIGZvcm1hdCgnc3ZnJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2Zv
bnQtc3R5bGU6bm9ybWFsfS5tY2UtaWNve2ZvbnQtZmFtaWx5Oid0aW55bWNlJztmb250LXN0eWxl
Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MTZw
eDt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlh
c2VkO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgY2VudGVyIGNl
bnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2NvbG9yOiMzMzM7LWllNy1pY29uOicgJ30ubWNl
LWJ0bi1zbWFsbCAubWNlLWljb3tmb250LWZhbWlseTondGlueW1jZS1zbWFsbCd9Lm1jZS1pY28s
aS5tY2UtaS1jaGVja2JveHt6b29tOmV4cHJlc3Npb24odGhpcy5ydW50aW1lU3R5bGVbJ3pvb20n
XSA9ICcxJywgdGhpcy5pbm5lckhUTUwgPSB0aGlzLmN1cnJlbnRTdHlsZVsnLWllNy1pY29uJ10u
c3Vic3RyKDEsIDEpICsgJyZuYnNwOycpfS5tY2UtaS1zYXZley1pZTctaWNvbjoiXGUwMDAifS5t
Y2UtaS1uZXdkb2N1bWVudHstaWU3LWljb246IlxlMDAxIn0ubWNlLWktZnVsbHBhZ2V7LWllNy1p
Y29uOiJcZTAwMiJ9Lm1jZS1pLWFsaWdubGVmdHstaWU3LWljb246IlxlMDAzIn0ubWNlLWktYWxp
Z25jZW50ZXJ7LWllNy1pY29uOiJcZTAwNCJ9Lm1jZS1pLWFsaWducmlnaHR7LWllNy1pY29uOiJc
ZTAwNSJ9Lm1jZS1pLWFsaWduanVzdGlmeXstaWU3LWljb246IlxlMDA2In0ubWNlLWktY3V0ey1p
ZTctaWNvbjoiXGUwMDcifS5tY2UtaS1wYXN0ZXstaWU3LWljb246IlxlMDA4In0ubWNlLWktc2Vh
cmNocmVwbGFjZXstaWU3LWljb246IlxlMDA5In0ubWNlLWktYnVsbGlzdHstaWU3LWljb246Ilxl
MDBhIn0ubWNlLWktbnVtbGlzdHstaWU3LWljb246IlxlMDBiIn0ubWNlLWktaW5kZW50ey1pZTct
aWNvbjoiXGUwMGMifS5tY2UtaS1vdXRkZW50ey1pZTctaWNvbjoiXGUwMGQifS5tY2UtaS1ibG9j
a3F1b3Rley1pZTctaWNvbjoiXGUwMGUifS5tY2UtaS11bmRvey1pZTctaWNvbjoiXGUwMGYifS5t
Y2UtaS1yZWRvey1pZTctaWNvbjoiXGUwMTAifS5tY2UtaS1saW5rey1pZTctaWNvbjoiXGUwMTEi
fS5tY2UtaS11bmxpbmt7LWllNy1pY29uOiJcZTAxMiJ9Lm1jZS1pLWFuY2hvcnstaWU3LWljb246
IlxlMDEzIn0ubWNlLWktaW1hZ2V7LWllNy1pY29uOiJcZTAxNCJ9Lm1jZS1pLW1lZGlhey1pZTct
aWNvbjoiXGUwMTUifS5tY2UtaS1oZWxwey1pZTctaWNvbjoiXGUwMTYifS5tY2UtaS1jb2Rley1p
ZTctaWNvbjoiXGUwMTcifS5tY2UtaS1pbnNlcnRkYXRldGltZXstaWU3LWljb246IlxlMDE4In0u
bWNlLWktcHJldmlld3staWU3LWljb246IlxlMDE5In0ubWNlLWktZm9yZWNvbG9yey1pZTctaWNv
bjoiXGUwMWEifS5tY2UtaS1iYWNrY29sb3J7LWllNy1pY29uOiJcZTAxYSJ9Lm1jZS1pLXRhYmxl
ey1pZTctaWNvbjoiXGUwMWIifS5tY2UtaS1ocnstaWU3LWljb246IlxlMDFjIn0ubWNlLWktcmVt
b3ZlZm9ybWF0ey1pZTctaWNvbjoiXGUwMWQifS5tY2UtaS1zdWJzY3JpcHR7LWllNy1pY29uOiJc
ZTAxZSJ9Lm1jZS1pLXN1cGVyc2NyaXB0ey1pZTctaWNvbjoiXGUwMWYifS5tY2UtaS1jaGFybWFw
ey1pZTctaWNvbjoiXGUwMjAifS5tY2UtaS1lbW90aWNvbnN7LWllNy1pY29uOiJcZTAyMSJ9Lm1j
ZS1pLXByaW50ey1pZTctaWNvbjoiXGUwMjIifS5tY2UtaS1mdWxsc2NyZWVuey1pZTctaWNvbjoi
XGUwMjMifS5tY2UtaS1zcGVsbGNoZWNrZXJ7LWllNy1pY29uOiJcZTAyNCJ9Lm1jZS1pLW5vbmJy
ZWFraW5ney1pZTctaWNvbjoiXGUwMjUifS5tY2UtaS10ZW1wbGF0ZXstaWU3LWljb246IlxlMDI2
In0ubWNlLWktcGFnZWJyZWFrey1pZTctaWNvbjoiXGUwMjcifS5tY2UtaS1yZXN0b3JlZHJhZnR7
LWllNy1pY29uOiJcZTAyOCJ9Lm1jZS1pLXVudGl0bGVkey1pZTctaWNvbjoiXGUwMjkifS5tY2Ut
aS1ib2xkey1pZTctaWNvbjoiXGUwMmEifS5tY2UtaS1pdGFsaWN7LWllNy1pY29uOiJcZTAyYiJ9
Lm1jZS1pLXVuZGVybGluZXstaWU3LWljb246IlxlMDJjIn0ubWNlLWktc3RyaWtldGhyb3VnaHst
aWU3LWljb246IlxlMDJkIn0ubWNlLWktdmlzdWFsY2hhcnN7LWllNy1pY29uOiJcZTAyZSJ9Lm1j
ZS1pLWx0cnstaWU3LWljb246IlxlMDJmIn0ubWNlLWktcnRsey1pZTctaWNvbjoiXGUwMzAifS5t
Y2UtaS1jb3B5ey1pZTctaWNvbjoiXGUwMzEifS5tY2UtaS1yZXNpemV7LWllNy1pY29uOiJcZTAz
MiJ9Lm1jZS1pLWJyb3dzZXstaWU3LWljb246IlxlMDM0In0ubWNlLWktcGFzdGV0ZXh0ey1pZTct
aWNvbjoiXGUwMzUifS5tY2UtaS1jaGVja2JveCwubWNlLWktc2VsZWN0ZWR7LWllNy1pY29uOiJc
ZTAzMyJ9Lm1jZS1pLXNlbGVjdGVke3Zpc2liaWxpdHk6aGlkZGVufS5tY2UtaS1iYWNrY29sb3J7
YmFja2dyb3VuZDojQkJCfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3NraW5z
L2xpZ2h0Z3JheS9za2luLm1pbi5jc3MgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9qcy9za2lucy9saWdodGdyYXkvc2tpbi5taW4uY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yODRhYzFkZWE2ZAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pz
L3NraW5zL2xpZ2h0Z3JheS9za2luLm1pbi5jc3MKQEAgLTAsMCArMSBAQAorLm1jZS1jb250YWlu
ZXIsLm1jZS1jb250YWluZXIgKiwubWNlLXdpZGdldCwubWNlLXdpZGdldCAqLC5tY2UtcmVzZXR7
bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO291dGxpbmU6MDt2ZXJ0aWNhbC1hbGlnbjp0b3A7
YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojMzMzO2Zv
bnQtZmFtaWx5OiJIZWx2ZXRpY2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9u
dC1zaXplOjE0cHg7dGV4dC1zaGFkb3c6bm9uZTtmbG9hdDpub25lO3Bvc2l0aW9uOnN0YXRpYzt3
aWR0aDphdXRvO2hlaWdodDphdXRvO3doaXRlLXNwYWNlOm5vd3JhcDtjdXJzb3I6aW5oZXJpdDst
d2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7bGluZS1oZWlnaHQ6bm9ybWFs
O2ZvbnQtd2VpZ2h0Om5vcm1hbDt0ZXh0LWFsaWduOmxlZnQ7LW1vei1ib3gtc2l6aW5nOmNvbnRl
bnQtYm94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQt
Ym94O2RpcmVjdGlvbjpsdHJ9Lm1jZS13aWRnZXQgYnV0dG9uey1tb3otYm94LXNpemluZzpib3Jk
ZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJv
eH0ubWNlLWNvbnRhaW5lciAqW3Vuc2VsZWN0YWJsZV17LW1vei11c2VyLXNlbGVjdDpub25lOy13
ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5v
bmV9Lm1jZS1mYWRle29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMTVzIGxp
bmVhcjt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5lYXJ9Lm1jZS1mYWRlLm1jZS1pbntvcGFj
aXR5OjF9Lm1jZS10aW55bWNle3Zpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50O3Bvc2l0aW9u
OnJlbGF0aXZlfS5tY2UtZnVsbHNjcmVlbntib3JkZXI6MDtwYWRkaW5nOjA7bWFyZ2luOjA7b3Zl
cmZsb3c6aGlkZGVuO2hlaWdodDoxMDAlO3otaW5kZXg6MTAwfWRpdi5tY2UtZnVsbHNjcmVlbntw
b3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30ubWNlLXRp
bnltY2V7ZGlzcGxheTpibG9jazstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm9yZGVy
LXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHh9Lm1jZS13b3JkY291bnR7cG9zaXRpb246YWJz
b2x1dGU7dG9wOjA7cmlnaHQ6MDtwYWRkaW5nOjhweH1kaXYubWNlLWVkaXQtYXJlYXtiYWNrZ3Jv
dW5kOiNGRkY7ZmlsdGVyOm5vbmV9Lm1jZS1zdGF0dXNiYXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1j
ZS1zdGF0dXNiYXIgLm1jZS1jb250YWluZXItYm9keXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWNlLWZ1
bGxzY3JlZW4gLm1jZS1yZXNpemVoYW5kbGV7ZGlzcGxheTpub25lfS5tY2UtY2hhcm1hcHtib3Jk
ZXItY29sbGFwc2U6Y29sbGFwc2V9Lm1jZS1jaGFybWFwIHRke2N1cnNvcjpkZWZhdWx0O2JvcmRl
cjoxcHggc29saWQgIzllOWU5ZTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2xpbmUtaGVpZ2h0OjIw
cHg7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmc6MnB4fS5t
Y2UtY2hhcm1hcCB0ZCBkaXZ7dGV4dC1hbGlnbjpjZW50ZXJ9Lm1jZS1jaGFybWFwIHRkOmhvdmVy
e2JhY2tncm91bmQ6I2Q5ZDlkOX0ubWNlLWdyaWQgdGQgZGl2e2JvcmRlcjoxcHggc29saWQgI2Q2
ZDZkNjt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O21hcmdpbjoycHg7Y3Vyc29yOnBvaW50ZXJ9Lm1j
ZS1ncmlkIHRkIGRpdjpmb2N1c3tib3JkZXItY29sb3I6I2ExYTFhMX0ubWNlLWdyaWR7Ym9yZGVy
LXNwYWNpbmc6MnB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZX0ubWNlLWdyaWQgYXtkaXNwbGF5
OmJsb2NrO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9Lm1jZS1ncmlkIGE6aG92ZXIsLm1j
ZS1ncmlkIGE6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNhMWExYTF9Lm1jZS1ncmlkLWJvcmRlcnttYXJn
aW46MCA0cHggMCA0cHh9Lm1jZS1ncmlkLWJvcmRlciBhe2JvcmRlci1jb2xvcjojZDZkNmQ2O3dp
ZHRoOjEzcHg7aGVpZ2h0OjEzcHh9Lm1jZS1ncmlkLWJvcmRlciBhOmhvdmVyLC5tY2UtZ3JpZC1i
b3JkZXIgYS5tY2UtYWN0aXZle2JvcmRlci1jb2xvcjojYTFhMWExO2JhY2tncm91bmQ6I2M4ZGVm
NH0ubWNlLXRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfWRpdi5tY2UtdGlueW1jZS1pbmxp
bmV7d2lkdGg6MTAwJTstd2Via2l0LWJveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9u
ZTtib3gtc2hhZG93Om5vbmV9Lm1jZS10b29sYmFyLWdycHtwYWRkaW5nLWJvdHRvbToycHh9Lm1j
ZS10b29sYmFyLWdycCAubWNlLWZsb3ctbGF5b3V0LWl0ZW17bWFyZ2luLWJvdHRvbTowfS5tY2Ut
cnRsIC5tY2Utd29yZGNvdW50e2xlZnQ6MDtyaWdodDphdXRvfS5tY2UtY29udGFpbmVyLC5tY2Ut
Y29udGFpbmVyLWJvZHl7ZGlzcGxheTpibG9ja30ubWNlLWF1dG9zY3JvbGx7b3ZlcmZsb3c6aGlk
ZGVufS5tY2Utc2Nyb2xsYmFye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjdweDtoZWlnaHQ6MTAw
JTt0b3A6MnB4O3JpZ2h0OjJweDtvcGFjaXR5Oi40O2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTt6
b29tOjF9Lm1jZS1zY3JvbGxiYXItaHt0b3A6YXV0bztyaWdodDphdXRvO2xlZnQ6MnB4O2JvdHRv
bToycHg7d2lkdGg6MTAwJTtoZWlnaHQ6N3B4fS5tY2Utc2Nyb2xsYmFyLXRodW1ie3Bvc2l0aW9u
OmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6IzAwMDtib3JkZXI6MXB4IHNvbGlkICM4ODg7Ym9y
ZGVyLWNvbG9yOnJnYmEoODUsODUsODUsMC42KTt3aWR0aDo1cHg7aGVpZ2h0OjEwMCU7LXdlYmtp
dC1ib3JkZXItcmFkaXVzOjdweDstbW96LWJvcmRlci1yYWRpdXM6N3B4O2JvcmRlci1yYWRpdXM6
N3B4fS5tY2Utc2Nyb2xsYmFyLWggLm1jZS1zY3JvbGxiYXItdGh1bWJ7d2lkdGg6MTAwJTtoZWln
aHQ6NXB4fS5tY2Utc2Nyb2xsYmFyOmhvdmVyLC5tY2Utc2Nyb2xsYmFyLm1jZS1hY3RpdmV7YmFj
a2dyb3VuZC1jb2xvcjojQUFBO29wYWNpdHk6LjY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NjApO3pv
b206MTstd2Via2l0LWJvcmRlci1yYWRpdXM6N3B4Oy1tb3otYm9yZGVyLXJhZGl1czo3cHg7Ym9y
ZGVyLXJhZGl1czo3cHh9Lm1jZS1zY3JvbGx7cG9zaXRpb246cmVsYXRpdmV9Lm1jZS1wYW5lbHti
b3JkZXI6MCBzb2xpZCAjOWU5ZTllO2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtiYWNrZ3JvdW5k
LWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZkZmRmZCwgI2RkZCk7YmFja2dyb3Vu
ZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2ZkZmRm
ZCksIHRvKCNkZGQpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRv
cCwgI2ZkZmRmZCwgI2RkZCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9w
LCAjZmRmZGZkLCAjZGRkKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0
b20sICNmZGZkZmQsICNkZGQpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9n
aWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2Zm
ZmRmZGZkJywgZW5kQ29sb3JzdHI9JyNmZmRkZGRkZCcsIEdyYWRpZW50VHlwZT0wKTt6b29tOjF9
Lm1jZS1mbG9hdHBhbmVse3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtYm94LXNoYWRvdzowIDVw
eCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTstbW96LWJveC1zaGFkb3c6MCA1cHggMTBweCByZ2Jh
KDAsIDAsIDAsIDAuMik7Ym94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKX0u
bWNlLWZsb2F0cGFuZWwubWNlLWZpeGVke3Bvc2l0aW9uOmZpeGVkfS5tY2UtZmxvYXRwYW5lbCAu
bWNlLWFycm93LC5tY2UtZmxvYXRwYW5lbCAubWNlLWFycm93OmFmdGVye3Bvc2l0aW9uOmFic29s
dXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItY29sb3I6dHJhbnNwYXJl
bnQ7Ym9yZGVyLXN0eWxlOnNvbGlkfS5tY2UtZmxvYXRwYW5lbCAubWNlLWFycm93e2JvcmRlci13
aWR0aDoxMXB4fS5tY2UtZmxvYXRwYW5lbCAubWNlLWFycm93OmFmdGVye2JvcmRlci13aWR0aDox
MHB4O2NvbnRlbnQ6IiJ9Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVye2ZpbHRlcjpwcm9naWQ6
RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtiYWNr
Z3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7LW1vei1ib3JkZXIt
cmFkaXVzOjZweDtib3JkZXItcmFkaXVzOjZweDstd2Via2l0LWJveC1zaGFkb3c6MCA1cHggMTBw
eCByZ2JhKDAsIDAsIDAsIDAuMik7LW1vei1ib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLCAw
LCAwLCAwLjIpO2JveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7dG9wOjA7
bGVmdDowO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICM5ZTllOWU7Ym9yZGVyOjFw
eCBzb2xpZCByZ2JhKDAsMCwwLDAuMjUpfS5tY2UtZmxvYXRwYW5lbC5tY2UtcG9wb3Zlci5tY2Ut
Ym90dG9te21hcmdpbi10b3A6MTBweDsqbWFyZ2luLXRvcDowfS5tY2UtZmxvYXRwYW5lbC5tY2Ut
cG9wb3Zlci5tY2UtYm90dG9tPi5tY2UtYXJyb3d7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTExcHg7
Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20tY29sb3I6IzllOWU5ZTtib3JkZXItYm90
dG9tLWNvbG9yOnJnYmEoMCwwLDAsMC4yNSk7dG9wOi0xMXB4fS5tY2UtZmxvYXRwYW5lbC5tY2Ut
cG9wb3Zlci5tY2UtYm90dG9tPi5tY2UtYXJyb3c6YWZ0ZXJ7dG9wOjFweDttYXJnaW4tbGVmdDot
MTBweDtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmfS5tY2UtZmxv
YXRwYW5lbC5tY2UtcG9wb3Zlci5tY2UtYm90dG9tLm1jZS1zdGFydHttYXJnaW4tbGVmdDotMjJw
eH0ubWNlLWZsb2F0cGFuZWwubWNlLXBvcG92ZXIubWNlLWJvdHRvbS5tY2Utc3RhcnQ+Lm1jZS1h
cnJvd3tsZWZ0OjIwcHh9Lm1jZS1mbG9hdHBhbmVsLm1jZS1wb3BvdmVyLm1jZS1ib3R0b20ubWNl
LWVuZHttYXJnaW4tbGVmdDoyMnB4fS5tY2UtZmxvYXRwYW5lbC5tY2UtcG9wb3Zlci5tY2UtYm90
dG9tLm1jZS1lbmQ+Lm1jZS1hcnJvd3tyaWdodDoxMHB4O2xlZnQ6YXV0b30ubWNlLWZ1bGxzY3Jl
ZW57Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5k
OiNmZmY7aGVpZ2h0OjEwMCV9ZGl2Lm1jZS1mdWxsc2NyZWVue3Bvc2l0aW9uOmZpeGVkO3RvcDow
O2xlZnQ6MH0jbWNlLW1vZGFsLWJsb2Nre29wYWNpdHk6MDtmaWx0ZXI6YWxwaGEob3BhY2l0eT0w
KTt6b29tOjE7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEw
MCU7YmFja2dyb3VuZDojMDAwfSNtY2UtbW9kYWwtYmxvY2subWNlLWlue29wYWNpdHk6LjM7Zmls
dGVyOmFscGhhKG9wYWNpdHk9MzApO3pvb206MX0ubWNlLXdpbmRvdy1tb3Zle2N1cnNvcjptb3Zl
fS5tY2Utd2luZG93ey13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7LW1vei1ib3JkZXItcmFkaXVz
OjZweDtib3JkZXItcmFkaXVzOjZweDstd2Via2l0LWJveC1zaGFkb3c6MCAzcHggN3B4IHJnYmEo
MCwgMCwgMCwgMC4zKTstbW96LWJveC1zaGFkb3c6MCAzcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4z
KTtib3gtc2hhZG93OjAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMyk7ZmlsdGVyOnByb2dpZDpE
WEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpO2JhY2tn
cm91bmQ6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZDojZmZmO3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xl
ZnQ6MDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMTUwbXMgZWFzZS1pbjt0
cmFuc2l0aW9uOm9wYWNpdHkgMTUwbXMgZWFzZS1pbn0ubWNlLXdpbmRvdy5tY2UtaW57b3BhY2l0
eToxfS5tY2Utd2luZG93LWhlYWR7cGFkZGluZzo5cHggMTVweDtib3JkZXItYm90dG9tOjFweCBz
b2xpZCAjYzVjNWM1O3Bvc2l0aW9uOnJlbGF0aXZlfS5tY2Utd2luZG93LWhlYWQgLm1jZS1jbG9z
ZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNXB4O3RvcDo5cHg7Zm9udC1zaXplOjIwcHg7Zm9u
dC13ZWlnaHQ6Ym9sZDtsaW5lLWhlaWdodDoyMHB4O2NvbG9yOiM4NTg1ODU7Y3Vyc29yOnBvaW50
ZXI7aGVpZ2h0OjIwcHg7b3ZlcmZsb3c6aGlkZGVufS5tY2UtY2xvc2U6aG92ZXJ7Y29sb3I6I2Fk
YWRhZH0ubWNlLXdpbmRvdy1oZWFkIC5tY2UtdGl0bGV7bGluZS1oZWlnaHQ6MjBweDtmb250LXNp
emU6MjBweDtmb250LXdlaWdodDpib2xkO3RleHQtcmVuZGVyaW5nOm9wdGltaXplbGVnaWJpbGl0
eTtwYWRkaW5nLXJpZ2h0OjEwcHh9Lm1jZS13aW5kb3cgLm1jZS1jb250YWluZXItYm9keXtkaXNw
bGF5OmJsb2NrfS5tY2UtZm9vdHtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6I2ZmZjti
b3JkZXItdG9wOjFweCBzb2xpZCAjYzVjNWM1Oy13ZWJraXQtYm9yZGVyLXJhZGl1czowIDAgNnB4
IDZweDstbW96LWJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7Ym9yZGVyLXJhZGl1czowIDAgNnB4
IDZweH0ubWNlLXdpbmRvdy1oZWFkIC5tY2UtZHJhZ2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7
bGVmdDowO2N1cnNvcjptb3ZlO3dpZHRoOjkwJTtoZWlnaHQ6MTAwJX0ubWNlLXdpbmRvdyBpZnJh
bWV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ubWNlLXdpbmRvdy5tY2UtZnVsbHNjcmVlbiwubWNl
LXdpbmRvdy5tY2UtZnVsbHNjcmVlbiAubWNlLWZvb3R7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjA7
LW1vei1ib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXJhZGl1czowfS5tY2UtcnRsIC5tY2Utd2luZG93
LWhlYWQgLm1jZS1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDphdXRvO2xlZnQ6MTVweH0u
bWNlLXJ0bCAubWNlLXdpbmRvdy1oZWFkIC5tY2UtZHJhZ2h7bGVmdDphdXRvO3JpZ2h0OjB9Lm1j
ZS1ydGwgLm1jZS13aW5kb3ctaGVhZCAubWNlLXRpdGxle2RpcmVjdGlvbjpydGw7dGV4dC1hbGln
bjpyaWdodH0ubWNlLWFicy1sYXlvdXR7cG9zaXRpb246cmVsYXRpdmV9Ym9keSAubWNlLWFicy1s
YXlvdXQtaXRlbSwubWNlLWFicy1lbmR7cG9zaXRpb246YWJzb2x1dGV9Lm1jZS1hYnMtZW5ke3dp
ZHRoOjFweDtoZWlnaHQ6MXB4fS5tY2UtY29udGFpbmVyLWJvZHkubWNlLWFicy1sYXlvdXR7b3Zl
cmZsb3c6aGlkZGVufS5tY2UtdG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nOjVweDtv
cGFjaXR5Oi44O2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKTt6b29tOjF9Lm1jZS10b29sdGlwLWlu
bmVye2ZvbnQtc2l6ZToxMXB4O2JhY2tncm91bmQtY29sb3I6IzAwMDtjb2xvcjojZmZmO21heC13
aWR0aDoyMDBweDtwYWRkaW5nOjVweCA4cHggNHB4IDhweDt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0
ZS1zcGFjZTpub3JtYWx9Lm1jZS10b29sdGlwLWlubmVyey13ZWJraXQtYm9yZGVyLXJhZGl1czoz
cHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweH0ubWNlLXRvb2x0aXAt
aW5uZXJ7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA1cHggIzAwMDAwMDstbW96LWJveC1zaGFkb3c6
MCAwIDVweCAjMDAwMDAwO2JveC1zaGFkb3c6MCAwIDVweCAjMDAwMDAwfS5tY2UtdG9vbHRpcC1h
cnJvd3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO2xpbmUtaGVpZ2h0OjA7Ym9y
ZGVyOjVweCBkYXNoZWQgIzAwMH0ubWNlLXRvb2x0aXAtYXJyb3ctbntib3JkZXItYm90dG9tLWNv
bG9yOiMwMDB9Lm1jZS10b29sdGlwLWFycm93LXN7Ym9yZGVyLXRvcC1jb2xvcjojMDAwfS5tY2Ut
dG9vbHRpcC1hcnJvdy1le2JvcmRlci1sZWZ0LWNvbG9yOiMwMDB9Lm1jZS10b29sdGlwLWFycm93
LXd7Ym9yZGVyLXJpZ2h0LWNvbG9yOiMwMDB9Lm1jZS10b29sdGlwLW53LC5tY2UtdG9vbHRpcC1z
d3ttYXJnaW4tbGVmdDotMTRweH0ubWNlLXRvb2x0aXAtbiAubWNlLXRvb2x0aXAtYXJyb3d7dG9w
OjBweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNXB4O2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7
Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdo
dC1jb2xvcjp0cmFuc3BhcmVudH0ubWNlLXRvb2x0aXAtbncgLm1jZS10b29sdGlwLWFycm93e3Rv
cDowO2xlZnQ6MTBweDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci10b3A6bm9uZTti
b3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJl
bnR9Lm1jZS10b29sdGlwLW5lIC5tY2UtdG9vbHRpcC1hcnJvd3t0b3A6MDtyaWdodDoxMHB4O2Jv
cmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0LWNvbG9y
OnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWNlLXRvb2x0aXAt
cyAubWNlLXRvb2x0aXAtYXJyb3d7Ym90dG9tOjA7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTVweDti
b3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b206bm9uZTtib3JkZXItbGVmdC1jb2xv
cjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lm1jZS10b29sdGlw
LXN3IC5tY2UtdG9vbHRpcC1hcnJvd3tib3R0b206MDtsZWZ0OjEwcHg7Ym9yZGVyLXRvcC1zdHls
ZTpzb2xpZDtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7
Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tY2UtdG9vbHRpcC1zZSAubWNlLXRvb2x0
aXAtYXJyb3d7Ym90dG9tOjA7cmlnaHQ6MTBweDtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRl
ci1ib3R0b206bm9uZTtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQt
Y29sb3I6dHJhbnNwYXJlbnR9Lm1jZS10b29sdGlwLWUgLm1jZS10b29sdGlwLWFycm93e3JpZ2h0
OjA7dG9wOjUwJTttYXJnaW4tdG9wOi01cHg7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7Ym9yZGVy
LXJpZ2h0Om5vbmU7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNv
bG9yOnRyYW5zcGFyZW50fS5tY2UtdG9vbHRpcC13IC5tY2UtdG9vbHRpcC1hcnJvd3tsZWZ0OjA7
dG9wOjUwJTttYXJnaW4tdG9wOi01cHg7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1s
ZWZ0Om5vbmU7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9y
OnRyYW5zcGFyZW50fS5tY2UtYnRue2JvcmRlcjoxcHggc29saWQgI2IxYjFiMTtib3JkZXItY29s
b3I6cmdiYSgwLDAsMCwwLjEpIHJnYmEoMCwwLDAsMC4xKSByZ2JhKDAsMCwwLDAuMjUpIHJnYmEo
MCwwLDAsMC4yNSk7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1zaGFkb3c6MCAxcHggMXB4IHJnYmEo
MjU1LDI1NSwyNTUsMC43NSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6
b29tOjE7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4O2Jv
cmRlci1yYWRpdXM6M3B4Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1
LCAyNTUsIDI1NSwgMC4yKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7LW1vei1ib3gt
c2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFweCAycHgg
cmdiYSgwLCAwLCAwLCAwLjA1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1
NSwgMjU1LCAwLjIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtiYWNrZ3JvdW5kLWNv
bG9yOiNmMGYwZjA7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNm
ZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAg
MCwgMCAxMDAlLCBmcm9tKCNmZmYpLCB0bygjZDlkOWQ5KSk7YmFja2dyb3VuZC1pbWFnZTotd2Vi
a2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtaW1hZ2U6
LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1pbWFnZTps
aW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLXJlcGVh
dDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRp
ZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmZmZicsIGVuZENvbG9yc3RyPScjZmZkOWQ5ZDknLCBH
cmFkaWVudFR5cGU9MCk7em9vbToxfS5tY2UtYnRuOmhvdmVyLC5tY2UtYnRuOmZvY3Vze2NvbG9y
OiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZTNlM2UzO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5l
YXItZ3JhZGllbnQodG9wLCAjZjJmMmYyLCAjY2NjKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQt
Z3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZjJmMmYyKSwgdG8oI2NjYykpO2Jh
Y2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZjJmMmYyLCAjY2Nj
KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmMmYyZjIsICNjY2Mp
O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2YyZjJmMiwgI2Nj
Yyk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNm
b3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZmMmYyZjInLCBlbmRDb2xv
cnN0cj0nI2ZmY2NjY2NjJywgR3JhZGllbnRUeXBlPTApO3pvb206MX0ubWNlLWJ0bi5tY2UtZGlz
YWJsZWQgYnV0dG9uLC5tY2UtYnRuLm1jZS1kaXNhYmxlZDpob3ZlciBidXR0b257Y3Vyc29yOmRl
ZmF1bHQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNo
YWRvdzpub25lO29wYWNpdHk6LjQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO3pvb206MX0ubWNl
LWJ0bi5tY2UtYWN0aXZlLC5tY2UtYnRuLm1jZS1hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xv
cjojZDZkNmQ2O2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZTZl
NmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAw
IDAsIDAgMTAwJSwgZnJvbSgjZTZlNmU2KSwgdG8oI2MwYzBjMCkpO2JhY2tncm91bmQtaW1hZ2U6
LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5k
LWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91
bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFj
a2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1p
Y3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZlNmU2ZTYnLCBlbmRDb2xvcnN0cj0n
I2ZmYzBjMGMwJywgR3JhZGllbnRUeXBlPTApO3pvb206MTstd2Via2l0LWJveC1zaGFkb3c6aW5z
ZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAs
IDAuMDUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1
KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym94LXNoYWRvdzppbnNldCAwIDJweCA0
cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSl9Lm1j
ZS1idG46bm90KC5tY2UtZGlzYWJsZWQpOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkNmQ2ZDY7
YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNlNmU2ZTYsICNjMGMw
YzApO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAl
LCBmcm9tKCNlNmU2ZTYpLCB0bygjYzBjMGMwKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxp
bmVhci1ncmFkaWVudCh0b3AsICNlNmU2ZTYsICNjMGMwYzApO2JhY2tncm91bmQtaW1hZ2U6LW8t
bGluZWFyLWdyYWRpZW50KHRvcCwgI2U2ZTZlNiwgI2MwYzBjMCk7YmFja2dyb3VuZC1pbWFnZTps
aW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZTZlNmU2LCAjYzBjMGMwKTtiYWNrZ3JvdW5kLXJl
cGVhdDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lmdy
YWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmU2ZTZlNicsIGVuZENvbG9yc3RyPScjZmZjMGMwYzAn
LCBHcmFkaWVudFR5cGU9MCk7em9vbToxOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCA0
cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7LW1v
ei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAy
cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAs
IDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KX0ubWNlLWJ0biBidXR0
b257cGFkZGluZzo0cHggMTBweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4OypsaW5l
LWhlaWdodDoxNnB4O2N1cnNvcjpwb2ludGVyO2NvbG9yOiMzMzM7dGV4dC1hbGlnbjpjZW50ZXI7
b3ZlcmZsb3c6dmlzaWJsZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0ubWNlLWJ0biBidXR0b246
Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjA7cGFkZGluZzowfS5tY2UtYnRuIGl7dGV4dC1zaGFk
b3c6MXB4IDFweCAjZmZmfS5tY2UtcHJpbWFyeXttaW4td2lkdGg6NTBweDtjb2xvcjojZmZmO2Jv
cmRlcjoxcHggc29saWQgI2IxYjFiMTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEpIHJnYmEo
MCwwLDAsMC4xKSByZ2JhKDAsMCwwLDAuMjUpIHJnYmEoMCwwLDAsMC4yNSk7YmFja2dyb3VuZC1j
b2xvcjojMDA2ZGNjO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAj
MDhjLCAjMDRjKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAs
IDAgMTAwJSwgZnJvbSgjMDhjKSwgdG8oIzA0YykpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1s
aW5lYXItZ3JhZGllbnQodG9wLCAjMDhjLCAjMDRjKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVh
ci1ncmFkaWVudCh0b3AsICMwOGMsICMwNGMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRp
ZW50KHRvIGJvdHRvbSwgIzA4YywgIzA0Yyk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7Zmls
dGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9y
c3RyPScjZmYwMDg4Y2MnLCBlbmRDb2xvcnN0cj0nI2ZmMDA0NGNjJywgR3JhZGllbnRUeXBlPTAp
O3pvb206MX0ubWNlLXByaW1hcnk6aG92ZXIsLm1jZS1wcmltYXJ5OmZvY3Vze2JhY2tncm91bmQt
Y29sb3I6IzAwNWZiMztiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwg
IzAwNzdiMywgIzAwM2NiMyk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVh
ciwgMCAwLCAwIDEwMCUsIGZyb20oIzAwNzdiMyksIHRvKCMwMDNjYjMpKTtiYWNrZ3JvdW5kLWlt
YWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwNzdiMywgIzAwM2NiMyk7YmFja2dy
b3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCAjMDA3N2IzLCAjMDAzY2IzKTtiYWNr
Z3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwMDc3YjMsICMwMDNjYjMp
O2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9y
bS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMDA3N2IzJywgZW5kQ29sb3Jz
dHI9JyNmZjAwM2NiMycsIEdyYWRpZW50VHlwZT0wKTt6b29tOjF9Lm1jZS1wcmltYXJ5Lm1jZS1k
aXNhYmxlZCBidXR0b24sLm1jZS1wcmltYXJ5Lm1jZS1kaXNhYmxlZDpob3ZlciBidXR0b257Y3Vy
c29yOmRlZmF1bHQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7
Ym94LXNoYWRvdzpub25lO29wYWNpdHk6LjQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO3pvb206
MX0ubWNlLXByaW1hcnkubWNlLWFjdGl2ZSwubWNlLXByaW1hcnkubWNlLWFjdGl2ZTpob3Zlciwu
bWNlLXByaW1hcnk6bm90KC5tY2UtZGlzYWJsZWQpOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMw
MDUyOTk7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMwNjksICMw
MzkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAl
LCBmcm9tKCMwNjkpLCB0bygjMDM5KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1n
cmFkaWVudCh0b3AsICMwNjksICMwMzkpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRp
ZW50KHRvcCwgIzA2OSwgIzAzOSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8g
Ym90dG9tLCAjMDY5LCAjMDM5KTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtmaWx0ZXI6cHJv
Z2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNm
ZjAwNjY5OScsIGVuZENvbG9yc3RyPScjZmYwMDMzOTknLCBHcmFkaWVudFR5cGU9MCk7em9vbTox
Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwg
MCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4
IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTti
b3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHgg
cmdiYSgwLCAwLCAwLCAwLjA1KX0ubWNlLXByaW1hcnkgYnV0dG9uLC5tY2UtcHJpbWFyeSBidXR0
b24gaXtjb2xvcjojZmZmO3RleHQtc2hhZG93OjFweCAxcHggIzMzM30ubWNlLWJ0bi1sYXJnZSBi
dXR0b257cGFkZGluZzo5cHggMTRweDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDpub3JtYWw7
LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDstbW96LWJvcmRlci1yYWRpdXM6NXB4O2JvcmRlci1y
YWRpdXM6NXB4fS5tY2UtYnRuLWxhcmdlIGl7bWFyZ2luLXRvcDoycHh9Lm1jZS1idG4tc21hbGwg
YnV0dG9ue3BhZGRpbmc6MXB4IDVweDtmb250LXNpemU6MTJweDsqcGFkZGluZy1ib3R0b206MnB4
fS5tY2UtYnRuLXNtYWxsIGl7bGluZS1oZWlnaHQ6MjBweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7Kmxp
bmUtaGVpZ2h0OjE4cHh9Lm1jZS1idG4gLm1jZS1jYXJldHttYXJnaW4tdG9wOjhweDttYXJnaW4t
bGVmdDowfS5tY2UtYnRuLXNtYWxsIC5tY2UtY2FyZXR7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLWxl
ZnQ6MH0ubWNlLWNhcmV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrOypkaXNwbGF5OmlubGluZTsqem9v
bToxO3dpZHRoOjA7aGVpZ2h0OjA7dmVydGljYWwtYWxpZ246dG9wO2JvcmRlci10b3A6NHB4IHNv
bGlkICMzMzM7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDo0
cHggc29saWQgdHJhbnNwYXJlbnQ7Y29udGVudDoiIn0ubWNlLWRpc2FibGVkIC5tY2UtY2FyZXR7
Ym9yZGVyLXRvcC1jb2xvcjojYWFhfS5tY2UtY2FyZXQubWNlLXVwe2JvcmRlci1ib3R0b206NHB4
IHNvbGlkICMzMzM7Ym9yZGVyLXRvcDowfS5tY2UtcnRsIC5tY2UtYnRuIGJ1dHRvbntkaXJlY3Rp
b246cnRsfS5tY2UtYnRuLWdyb3VwIC5tY2UtYnRue2JvcmRlci13aWR0aDoxcHggMCAxcHggMDtt
YXJnaW46MDstd2Via2l0LWJvcmRlci1yYWRpdXM6MDstbW96LWJvcmRlci1yYWRpdXM6MDtib3Jk
ZXItcmFkaXVzOjB9Lm1jZS1idG4tZ3JvdXAgLm1jZS1maXJzdHtib3JkZXItbGVmdDoxcHggc29s
aWQgI2IxYjFiMTtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjI1KTstd2Via2l0
LWJvcmRlci1yYWRpdXM6M3B4IDAgMCAzcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4
O2JvcmRlci1yYWRpdXM6M3B4IDAgMCAzcHh9Lm1jZS1idG4tZ3JvdXAgLm1jZS1sYXN0e2JvcmRl
ci1yaWdodDoxcHggc29saWQgI2IxYjFiMTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCww
LDAsMC4xKTstd2Via2l0LWJvcmRlci1yYWRpdXM6MCAzcHggM3B4IDA7LW1vei1ib3JkZXItcmFk
aXVzOjAgM3B4IDNweCAwO2JvcmRlci1yYWRpdXM6MCAzcHggM3B4IDB9Lm1jZS1idG4tZ3JvdXAg
Lm1jZS1maXJzdC5tY2UtbGFzdHstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVy
LXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHh9Lm1jZS1idG4tZ3JvdXAgLm1jZS1idG4ubWNl
LWZsb3ctbGF5b3V0LWl0ZW17bWFyZ2luOjB9Lm1jZS1jaGVja2JveHtjdXJzb3I6cG9pbnRlcn1p
Lm1jZS1pLWNoZWNrYm94e21hcmdpbjowIDNweCAwIDA7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1
Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXIt
cmFkaXVzOjNweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1
LCAyNTUsIDAuMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOy1tb3otYm94LXNoYWRv
dzppbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgMCAxcHggMnB4IHJnYmEo
MCwgMCwgMCwgMC4wNSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1
NSwgMC4yKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7YmFja2dyb3VuZC1jb2xvcjoj
ZjBmMGYwO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmLCAj
ZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAg
MTAwJSwgZnJvbSgjZmZmKSwgdG8oI2Q5ZDlkOSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1s
aW5lYXItZ3JhZGllbnQodG9wLCAjZmZmLCAjZDlkOWQ5KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxp
bmVhci1ncmFkaWVudCh0b3AsICNmZmYsICNkOWQ5ZDkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFy
LWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZiwgI2Q5ZDlkOSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVw
ZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChz
dGFydENvbG9yc3RyPScjZmZmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2ZmZDlkOWQ5JywgR3JhZGll
bnRUeXBlPTApO3pvb206MTt0ZXh0LWluZGVudDotMTBlbTsqZm9udC1zaXplOjA7KmxpbmUtaGVp
Z2h0OjA7KnRleHQtaW5kZW50OjA7b3ZlcmZsb3c6aGlkZGVufS5tY2UtY2hlY2tlZCBpLm1jZS1p
LWNoZWNrYm94e2NvbG9yOiMzMzM7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MTZweDt0ZXh0
LWluZGVudDowfS5tY2UtY2hlY2tib3g6Zm9jdXMgaS5tY2UtaS1jaGVja2JveCwubWNlLWNoZWNr
Ym94Lm1jZS1mb2N1cyBpLm1jZS1pLWNoZWNrYm94e2JvcmRlcjoxcHggc29saWQgcmdiYSg4Miwx
NjgsMjM2LDAuOCk7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAs
IDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42NSk7LW1vei1ib3gtc2hh
ZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgy
LCAxNjgsIDIzNiwgMC42NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAw
LCAwLjA3NSksIDAgMCA4cHggcmdiYSg4MiwgMTY4LCAyMzYsIDAuNjUpfS5tY2UtY2hlY2tib3gu
bWNlLWRpc2FibGVkIC5tY2UtbGFiZWwsLm1jZS1jaGVja2JveC5tY2UtZGlzYWJsZWQgaS5tY2Ut
aS1jaGVja2JveHtjb2xvcjojYWNhY2FjfS5tY2UtcnRsIC5tY2UtY2hlY2tib3h7ZGlyZWN0aW9u
OnJ0bDt0ZXh0LWFsaWduOnJpZ2h0fS5tY2UtcnRsIGkubWNlLWktY2hlY2tib3h7bWFyZ2luOjAg
MCAwIDNweH0ubWNlLWNvbG9yYnV0dG9uIC5tY2UtaWNve3Bvc2l0aW9uOnJlbGF0aXZlfS5tY2Ut
Y29sb3JidXR0b24tZ3JpZHttYXJnaW46NHB4fS5tY2UtY29sb3JidXR0b24gYnV0dG9ue3BhZGRp
bmctcmlnaHQ6NHB4fS5tY2UtY29sb3JidXR0b24gLm1jZS1wcmV2aWV3e3BhZGRpbmctcmlnaHQ6
M3B4O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTttYXJn
aW4tbGVmdDotMTRweDttYXJnaW4tdG9wOjdweDtiYWNrZ3JvdW5kOmdyYXk7d2lkdGg6MTNweDto
ZWlnaHQ6MnB4O292ZXJmbG93OmhpZGRlbn0ubWNlLWNvbG9yYnV0dG9uLm1jZS1idG4tc21hbGwg
Lm1jZS1wcmV2aWV3e21hcmdpbi1sZWZ0Oi0xNnB4O3BhZGRpbmctcmlnaHQ6MDt3aWR0aDoxNnB4
fS5tY2UtY29sb3JidXR0b24gLm1jZS1vcGVue3BhZGRpbmctbGVmdDo0cHg7Ym9yZGVyLWxlZnQ6
MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDoxcHggc29saWQgdHJhbnNwYXJlbnR9
Lm1jZS1jb2xvcmJ1dHRvbjpob3ZlciAubWNlLW9wZW57Ym9yZGVyLWxlZnQtY29sb3I6I2JkYmRi
ZDtib3JkZXItcmlnaHQtY29sb3I6I2JkYmRiZH0ubWNlLWNvbG9yYnV0dG9uLm1jZS1idG4tc21h
bGwgLm1jZS1vcGVue3BhZGRpbmc6MCAzcHggMCAzcHh9Lm1jZS1ydGwgLm1jZS1jb2xvcmJ1dHRv
bntkaXJlY3Rpb246cnRsfS5tY2UtcnRsIC5tY2UtY29sb3JidXR0b24gLm1jZS1wcmV2aWV3e21h
cmdpbi1sZWZ0OjA7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDo0cHg7bWFyZ2luLXJpZ2h0
Oi0xNHB4fS5tY2UtcnRsIC5tY2UtY29sb3JidXR0b24ubWNlLWJ0bi1zbWFsbCAubWNlLXByZXZp
ZXd7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7bWFyZ2luLXJpZ2h0Oi0xN3B4O3BhZGRp
bmctbGVmdDowfS5tY2UtcnRsIC5tY2UtY29sb3JidXR0b24gYnV0dG9ue3BhZGRpbmctcmlnaHQ6
MTBweDtwYWRkaW5nLWxlZnQ6MTBweH0ubWNlLXJ0bCAubWNlLWNvbG9yYnV0dG9uIC5tY2Utb3Bl
bntwYWRkaW5nLWxlZnQ6NHB4O3BhZGRpbmctcmlnaHQ6NHB4fS5tY2UtY29tYm9ib3h7ZGlzcGxh
eTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7LXdlYmtpdC1ib3JkZXItcmFk
aXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4Oy13ZWJraXQt
Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7LW1vei1ib3gt
c2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtib3gtc2hhZG93Omlu
c2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTsqaGVpZ2h0OjMycHh9Lm1jZS1jb21i
b2JveCBpbnB1dHtib3JkZXI6MXB4IHNvbGlkICNjNWM1YzU7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNj
NWM1YzU7aGVpZ2h0OjI4cHh9Lm1jZS1jb21ib2JveC5tY2UtZGlzYWJsZWQgaW5wdXR7Y29sb3I6
I2FkYWRhZH0ubWNlLWNvbWJvYm94Lm1jZS1oYXMtb3BlbiBpbnB1dHstd2Via2l0LWJvcmRlci1y
YWRpdXM6NHB4IDAgMCA0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweCAwIDAgNHB4O2JvcmRlci1y
YWRpdXM6NHB4IDAgMCA0cHh9Lm1jZS1jb21ib2JveCAubWNlLWJ0bntib3JkZXItbGVmdDowOy13
ZWJraXQtYm9yZGVyLXJhZGl1czowIDRweCA0cHggMDstbW96LWJvcmRlci1yYWRpdXM6MCA0cHgg
NHB4IDA7Ym9yZGVyLXJhZGl1czowIDRweCA0cHggMH0ubWNlLWNvbWJvYm94IGJ1dHRvbntwYWRk
aW5nLXJpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6OHB4fS5tY2UtY29tYm9ib3gubWNlLWRpc2FibGVk
IC5tY2UtYnRuIGJ1dHRvbntjdXJzb3I6ZGVmYXVsdDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTst
bW96LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7b3BhY2l0eTouNDtmaWx0ZXI6YWxw
aGEob3BhY2l0eT00MCk7em9vbToxfS5tY2UtcGF0aHtkaXNwbGF5OmlubGluZS1ibG9jazsqZGlz
cGxheTppbmxpbmU7Knpvb206MTtwYWRkaW5nOjhweDt3aGl0ZS1zcGFjZTpub3JtYWx9Lm1jZS1w
YXRoIC5tY2UtdHh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctcmlnaHQ6M3B4fS5tY2Ut
cGF0aCAubWNlLXBhdGgtYm9keXtkaXNwbGF5OmlubGluZS1ibG9ja30ubWNlLXBhdGgtaXRlbXtk
aXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206MTtjdXJzb3I6cG9pbnRl
cjtjb2xvcjojMzMzfS5tY2UtcGF0aC1pdGVtOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxp
bmV9Lm1jZS1wYXRoLWl0ZW06Zm9jdXN7YmFja2dyb3VuZDojNjY2O2NvbG9yOiNmZmZ9Lm1jZS1w
YXRoIC5tY2UtZGl2aWRlcntkaXNwbGF5OmlubGluZX0ubWNlLWRpc2FibGVkIC5tY2UtcGF0aC1p
dGVte2NvbG9yOiNhYWF9Lm1jZS1ydGwgLm1jZS1wYXRoe2RpcmVjdGlvbjpydGx9Lm1jZS1maWVs
ZHNldHtib3JkZXI6MCBzb2xpZCAjOUU5RTlFOy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1v
ei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweH0ubWNlLWZpZWxkc2V0Pi5tY2Ut
Y29udGFpbmVyLWJvZHl7bWFyZ2luLXRvcDotMTVweH0ubWNlLWZpZWxkc2V0LXRpdGxle21hcmdp
bi1sZWZ0OjVweDtwYWRkaW5nOjAgNXB4IDAgNXB4fS5tY2UtZml0LWxheW91dHtkaXNwbGF5Omlu
bGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206MX0ubWNlLWZpdC1sYXlvdXQtaXRlbXtw
b3NpdGlvbjphYnNvbHV0ZX0ubWNlLWZsb3ctbGF5b3V0LWl0ZW17ZGlzcGxheTppbmxpbmUtYmxv
Y2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjF9Lm1jZS1mbG93LWxheW91dC1pdGVte21hcmdpbjoy
cHggMCAycHggMnB4fS5tY2UtZmxvdy1sYXlvdXQtaXRlbS5tY2UtbGFzdHttYXJnaW4tcmlnaHQ6
MnB4fS5tY2UtZmxvdy1sYXlvdXR7d2hpdGUtc3BhY2U6bm9ybWFsfS5tY2UtdGlueW1jZS1pbmxp
bmUgLm1jZS1mbG93LWxheW91dHt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1jZS1ydGwgLm1jZS1mbG93
LWxheW91dHt0ZXh0LWFsaWduOnJpZ2h0O2RpcmVjdGlvbjpydGx9Lm1jZS1ydGwgLm1jZS1mbG93
LWxheW91dC1pdGVte21hcmdpbjoycHggMnB4IDJweCAwfS5tY2UtcnRsIC5tY2UtZmxvdy1sYXlv
dXQtaXRlbS5tY2UtbGFzdHttYXJnaW4tbGVmdDoycHh9Lm1jZS1pZnJhbWV7Ym9yZGVyOjAgc29s
aWQgIzllOWU5ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5tY2UtbGFiZWx7ZGlzcGxheTppbmxp
bmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29tOjE7dGV4dC1zaGFkb3c6MCAxcHggMXB4IHJn
YmEoMjU1LDI1NSwyNTUsMC43NSk7b3ZlcmZsb3c6aGlkZGVufS5tY2UtbGFiZWwubWNlLWF1dG9z
Y3JvbGx7b3ZlcmZsb3c6YXV0b30ubWNlLWxhYmVsLm1jZS1kaXNhYmxlZHtjb2xvcjojYWFhfS5t
Y2UtbGFiZWwubWNlLW11bHRpbGluZXt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ubWNlLWxhYmVsLm1j
ZS1lcnJvcntjb2xvcjojYTAwfS5tY2UtcnRsIC5tY2UtbGFiZWx7dGV4dC1hbGlnbjpyaWdodDtk
aXJlY3Rpb246cnRsfS5tY2UtbWVudWJhciAubWNlLW1lbnVidG57Ym9yZGVyLWNvbG9yOnRyYW5z
cGFyZW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjA7LW1v
ei1ib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzpub25l
Oy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtmaWx0ZXI6bm9uZX0ubWNlLW1l
bnViYXJ7Ym9yZGVyOjFweCBzb2xpZCAjYzRjNGM0fS5tY2UtbWVudWJhciAubWNlLW1lbnVidG4g
YnV0dG9uIHNwYW57Y29sb3I6IzMzM30ubWNlLW1lbnViYXIgLm1jZS1jYXJldHtib3JkZXItdG9w
LWNvbG9yOiMzMzN9Lm1jZS1tZW51YmFyIC5tY2UtbWVudWJ0bjpob3ZlciwubWNlLW1lbnViYXIg
Lm1jZS1tZW51YnRuLm1jZS1hY3RpdmUsLm1jZS1tZW51YmFyIC5tY2UtbWVudWJ0bjpmb2N1c3ti
b3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZDojZTZlNmU2O2ZpbHRlcjpub25lOy13
ZWJraXQtYm94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9u
ZX0ubWNlLW1lbnVidG4gc3Bhbntjb2xvcjojMzMzO21hcmdpbi1yaWdodDoycHg7bGluZS1oZWln
aHQ6MjBweDsqbGluZS1oZWlnaHQ6MTZweH0ubWNlLW1lbnVidG4ubWNlLWJ0bi1zbWFsbCBzcGFu
e2ZvbnQtc2l6ZToxMnB4fS5tY2UtbWVudWJ0bi5tY2UtZml4ZWQtd2lkdGggc3BhbntkaXNwbGF5
OmlubGluZS1ibG9jaztvdmVyZmxvdy14OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3dp
ZHRoOjkwcHh9Lm1jZS1tZW51YnRuLm1jZS1maXhlZC13aWR0aC5tY2UtYnRuLXNtYWxsIHNwYW57
d2lkdGg6NzBweH0ubWNlLW1lbnVidG4gLm1jZS1jYXJldHsqbWFyZ2luLXRvcDo2cHh9Lm1jZS1y
dGwgLm1jZS1tZW51YnRuIGJ1dHRvbntkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246cmlnaHR9Lm1j
ZS1saXN0Ym94IGJ1dHRvbnt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZy1yaWdodDoyMHB4O3Bvc2l0
aW9uOnJlbGF0aXZlfS5tY2UtbGlzdGJveCAubWNlLWNhcmV0e3Bvc2l0aW9uOmFic29sdXRlO21h
cmdpbi10b3A6LTJweDtyaWdodDo4cHg7dG9wOjUwJX0ubWNlLXJ0bCAubWNlLWxpc3Rib3ggLm1j
ZS1jYXJldHtyaWdodDphdXRvO2xlZnQ6OHB4fS5tY2UtcnRsIC5tY2UtbGlzdGJveCBidXR0b257
cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctbGVmdDoyMHB4fS5tY2UtbWVudS1pdGVte2Rpc3Bs
YXk6YmxvY2s7cGFkZGluZzo2cHggMTVweCA2cHggMTJweDtjbGVhcjpib3RoO2ZvbnQtd2VpZ2h0
Om5vcm1hbDtsaW5lLWhlaWdodDoyMHB4O2NvbG9yOiMzMzM7d2hpdGUtc3BhY2U6bm93cmFwO2N1
cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0Om5vcm1hbDtib3JkZXItbGVmdDo0cHggc29saWQgdHJh
bnNwYXJlbnQ7bWFyZ2luLWJvdHRvbToxcHh9Lm1jZS1tZW51LWl0ZW0gLm1jZS1pY28sLm1jZS1t
ZW51LWl0ZW0gLm1jZS10ZXh0e2NvbG9yOiMzMzN9Lm1jZS1tZW51LWl0ZW0ubWNlLWRpc2FibGVk
IC5tY2UtdGV4dCwubWNlLW1lbnUtaXRlbS5tY2UtZGlzYWJsZWQgLm1jZS1pY297Y29sb3I6I2Fk
YWRhZH0ubWNlLW1lbnUtaXRlbTpob3ZlciAubWNlLXRleHQsLm1jZS1tZW51LWl0ZW0ubWNlLXNl
bGVjdGVkIC5tY2UtdGV4dCwubWNlLW1lbnUtaXRlbTpmb2N1cyAubWNlLXRleHR7Y29sb3I6I2Zm
Zn0ubWNlLW1lbnUtaXRlbTpob3ZlciAubWNlLWljbywubWNlLW1lbnUtaXRlbS5tY2Utc2VsZWN0
ZWQgLm1jZS1pY28sLm1jZS1tZW51LWl0ZW06Zm9jdXMgLm1jZS1pY297Y29sb3I6I2ZmZn0ubWNl
LW1lbnUtaXRlbS5tY2UtZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDojY2NjfS5tY2UtbWVudS1z
aG9ydGN1dHtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojYWRhZGFkfS5tY2UtbWVudS1zaG9y
dGN1dHtkaXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206MTtwYWRkaW5n
OjAgMTVweCAwIDIwcHh9Lm1jZS1tZW51LWl0ZW06aG92ZXIgLm1jZS1tZW51LXNob3J0Y3V0LC5t
Y2UtbWVudS1pdGVtLm1jZS1zZWxlY3RlZCAubWNlLW1lbnUtc2hvcnRjdXQsLm1jZS1tZW51LWl0
ZW06Zm9jdXMgLm1jZS1tZW51LXNob3J0Y3V0e2NvbG9yOiNmZmZ9Lm1jZS1tZW51LWl0ZW0gLm1j
ZS1jYXJldHttYXJnaW4tdG9wOjRweDsqbWFyZ2luLXRvcDozcHg7bWFyZ2luLXJpZ2h0OjZweDti
b3JkZXItdG9wOjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjRweCBzb2xpZCB0
cmFuc3BhcmVudDtib3JkZXItbGVmdDo0cHggc29saWQgIzMzM30ubWNlLW1lbnUtaXRlbS5tY2Ut
c2VsZWN0ZWQgLm1jZS1jYXJldCwubWNlLW1lbnUtaXRlbTpmb2N1cyAubWNlLWNhcmV0LC5tY2Ut
bWVudS1pdGVtOmhvdmVyIC5tY2UtY2FyZXR7Ym9yZGVyLWxlZnQtY29sb3I6I2ZmZn0ubWNlLW1l
bnUtYWxpZ24gLm1jZS1tZW51LXNob3J0Y3V0eyptYXJnaW4tdG9wOi0ycHh9Lm1jZS1tZW51LWFs
aWduIC5tY2UtbWVudS1zaG9ydGN1dCwubWNlLW1lbnUtYWxpZ24gLm1jZS1jYXJldHtwb3NpdGlv
bjphYnNvbHV0ZTtyaWdodDowfS5tY2UtbWVudS1pdGVtLm1jZS1hY3RpdmUgaXt2aXNpYmlsaXR5
OnZpc2libGV9Lm1jZS1tZW51LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmV7YmFja2dyb3VuZC1jb2xv
cjojYzhkZWY0fS5tY2UtbWVudS1pdGVtLXByZXZpZXcubWNlLWFjdGl2ZXtib3JkZXItbGVmdDo1
cHggc29saWQgI2FhYX0ubWNlLW1lbnUtaXRlbS1ub3JtYWwubWNlLWFjdGl2ZSAubWNlLXRleHR7
Y29sb3I6IzMzM30ubWNlLW1lbnUtaXRlbS1ub3JtYWwubWNlLWFjdGl2ZTpob3ZlciAubWNlLXRl
eHQsLm1jZS1tZW51LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmU6aG92ZXIgLm1jZS1pY297Y29sb3I6
I2ZmZn0ubWNlLW1lbnUtaXRlbS1ub3JtYWwubWNlLWFjdGl2ZTpmb2N1cyAubWNlLXRleHQsLm1j
ZS1tZW51LWl0ZW0tbm9ybWFsLm1jZS1hY3RpdmU6Zm9jdXMgLm1jZS1pY297Y29sb3I6I2ZmZn0u
bWNlLW1lbnUtaXRlbTpob3ZlciwubWNlLW1lbnUtaXRlbS5tY2Utc2VsZWN0ZWQsLm1jZS1tZW51
LWl0ZW06Zm9jdXN7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNv
bG9yOiMwMDgxYzI7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMw
OGMsICMwMDc3YjMpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAg
MCwgMCAxMDAlLCBmcm9tKCMwOGMpLCB0bygjMDA3N2IzKSk7YmFja2dyb3VuZC1pbWFnZTotd2Vi
a2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMwOGMsICMwMDc3YjMpO2JhY2tncm91bmQtaW1hZ2U6
LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzA4YywgIzAwNzdiMyk7YmFja2dyb3VuZC1pbWFnZTps
aW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDhjLCAjMDA3N2IzKTtiYWNrZ3JvdW5kLXJlcGVh
dDpyZXBlYXQteDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRp
ZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjAwODhjYycsIGVuZENvbG9yc3RyPScjZmYwMDc3YjMnLCBH
cmFkaWVudFR5cGU9MCk7em9vbToxfWRpdi5tY2UtbWVudSAubWNlLW1lbnUtaXRlbS1zZXAsLm1j
ZS1tZW51LWl0ZW0tc2VwOmhvdmVye2JvcmRlcjowO3BhZGRpbmc6MDtoZWlnaHQ6MXB4O21hcmdp
bjo5cHggMXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiNjYmNiY2I7Ym9yZGVyLWJvdHRv
bToxcHggc29saWQgI2ZmZjtjdXJzb3I6ZGVmYXVsdDtmaWx0ZXI6bm9uZX0ubWNlLW1lbnUubWNl
LXJ0bHtkaXJlY3Rpb246cnRsfS5tY2UtcnRsIC5tY2UtbWVudS1pdGVte3RleHQtYWxpZ246cmln
aHQ7ZGlyZWN0aW9uOnJ0bDtwYWRkaW5nOjZweCAxMnB4IDZweCAxNXB4fS5tY2UtbWVudS1hbGln
bi5tY2UtcnRsIC5tY2UtbWVudS1zaG9ydGN1dCwubWNlLW1lbnUtYWxpZ24ubWNlLXJ0bCAubWNl
LWNhcmV0e3JpZ2h0OmF1dG87bGVmdDowfS5tY2UtcnRsIC5tY2UtbWVudS1pdGVtIC5tY2UtY2Fy
ZXR7bWFyZ2luLWxlZnQ6NnB4O21hcmdpbi1yaWdodDowO2JvcmRlci1yaWdodDo0cHggc29saWQg
IzMzMztib3JkZXItbGVmdDowfS5tY2UtcnRsIC5tY2UtbWVudS1pdGVtLm1jZS1zZWxlY3RlZCAu
bWNlLWNhcmV0LC5tY2UtcnRsIC5tY2UtbWVudS1pdGVtOmZvY3VzIC5tY2UtY2FyZXQsLm1jZS1y
dGwgLm1jZS1tZW51LWl0ZW06aG92ZXIgLm1jZS1jYXJldHtib3JkZXItbGVmdC1jb2xvcjp0cmFu
c3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6I2ZmZn0ubWNlLW1lbnV7cG9zaXRpb246YWJzb2x1
dGU7bGVmdDowO3RvcDowO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQu
Z3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3otaW5kZXg6
MTAwMDtwYWRkaW5nOjVweCAwIDVweCAwO21hcmdpbjoycHggMCAwO21pbi13aWR0aDoxNjBweDti
YWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjOTg5ODk4O2JvcmRlcjoxcHggc29saWQg
cmdiYSgwLDAsMCwwLjIpO3otaW5kZXg6MTAwMjstd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4Oy1t
b3otYm9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyLXJhZGl1czo2cHg7LXdlYmtpdC1ib3gtc2hhZG93
OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpOy1tb3otYm94LXNoYWRvdzowIDVweCAxMHB4
IHJnYmEoMCwgMCwgMCwgMC4yKTtib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAw
LjIpO21heC1oZWlnaHQ6NDAwcHg7b3ZlcmZsb3c6YXV0bztvdmVyZmxvdy14OmhpZGRlbn0ubWNl
LW1lbnUgaXtkaXNwbGF5Om5vbmV9Lm1jZS1tZW51LWhhcy1pY29ucyBpe2Rpc3BsYXk6aW5saW5l
LWJsb2NrOypkaXNwbGF5OmlubGluZX0ubWNlLW1lbnUtc3ViLXRyLXRse21hcmdpbjotNnB4IDAg
MCAtMXB4fS5tY2UtbWVudS1zdWItYnItYmx7bWFyZ2luOjZweCAwIDAgLTFweH0ubWNlLW1lbnUt
c3ViLXRsLXRye21hcmdpbjotNnB4IDAgMCAxcHh9Lm1jZS1tZW51LXN1Yi1ibC1icnttYXJnaW46
NnB4IDAgMCAxcHh9Lm1jZS1jb250YWluZXItYm9keSAubWNlLXJlc2l6ZWhhbmRsZXtwb3NpdGlv
bjphYnNvbHV0ZTtyaWdodDowO2JvdHRvbTowO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7dmlzaWJp
bGl0eTp2aXNpYmxlO2N1cnNvcjpzLXJlc2l6ZTttYXJnaW46MH0ubWNlLWNvbnRhaW5lci1ib2R5
IC5tY2UtcmVzaXplaGFuZGxlLWJvdGh7Y3Vyc29yOnNlLXJlc2l6ZX1pLm1jZS1pLXJlc2l6ZXtj
b2xvcjojMzMzfS5tY2Utc3BhY2Vye3Zpc2liaWxpdHk6aGlkZGVufS5tY2Utc3BsaXRidG4gLm1j
ZS1vcGVue2JvcmRlci1sZWZ0OjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6MXB4
IHNvbGlkIHRyYW5zcGFyZW50fS5tY2Utc3BsaXRidG46aG92ZXIgLm1jZS1vcGVue2JvcmRlci1s
ZWZ0LWNvbG9yOiNiZGJkYmQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNiZGJkYmR9Lm1jZS1zcGxpdGJ0
biBidXR0b257cGFkZGluZy1yaWdodDo0cHh9Lm1jZS1zcGxpdGJ0biAubWNlLW9wZW57cGFkZGlu
Zy1sZWZ0OjRweH0ubWNlLXNwbGl0YnRuIC5tY2Utb3Blbi5tY2UtYWN0aXZley13ZWJraXQtYm94
LXNoYWRvdzppbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJn
YmEoMCwgMCwgMCwgMC4wNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAs
IDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtib3gtc2hhZG93Omlu
c2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDFweCAycHggcmdiYSgwLCAwLCAw
LCAwLjA1KX0ubWNlLXNwbGl0YnRuLm1jZS1idG4tc21hbGwgLm1jZS1vcGVue3BhZGRpbmc6MCAz
cHggMCAzcHh9Lm1jZS1ydGwgLm1jZS1zcGxpdGJ0bntkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246
cmlnaHR9Lm1jZS1ydGwgLm1jZS1zcGxpdGJ0biBidXR0b257cGFkZGluZy1yaWdodDoxMHB4O3Bh
ZGRpbmctbGVmdDoxMHB4fS5tY2UtcnRsIC5tY2Utc3BsaXRidG4gLm1jZS1vcGVue3BhZGRpbmct
bGVmdDo0cHg7cGFkZGluZy1yaWdodDo0cHh9Lm1jZS1zdGFjay1sYXlvdXQtaXRlbXtkaXNwbGF5
OmJsb2NrfS5tY2UtdGFic3tkaXNwbGF5OmJsb2NrO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNj
NWM1YzV9Lm1jZS10YWJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7KmRpc3BsYXk6aW5saW5lOyp6b29t
OjE7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1O2JvcmRlci13aWR0aDowIDFweCAwIDA7YmFja2dy
b3VuZDojZTNlM2UzO3BhZGRpbmc6OHB4O3RleHQtc2hhZG93OjAgMXB4IDFweCByZ2JhKDI1NSwy
NTUsMjU1LDAuNzUpO2hlaWdodDoxM3B4O2N1cnNvcjpwb2ludGVyfS5tY2UtdGFiOmhvdmVye2Jh
Y2tncm91bmQ6I2ZkZmRmZH0ubWNlLXRhYi5tY2UtYWN0aXZle2JhY2tncm91bmQ6I2ZkZmRmZDti
b3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O21hcmdpbi1ib3R0b206LTFweDtoZWlnaHQ6
MTRweH0ubWNlLXJ0bCAubWNlLXRhYnN7dGV4dC1hbGlnbjpyaWdodDtkaXJlY3Rpb246cnRsfS5t
Y2UtcnRsIC5tY2UtdGFie2JvcmRlci13aWR0aDowIDAgMCAxcHh9Lm1jZS10ZXh0Ym94e2JhY2tn
cm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjNWM1YzU7LXdlYmtpdC1ib3JkZXItcmFkaXVz
OjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4Oy13ZWJraXQtYm94
LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7LW1vei1ib3gtc2hh
ZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtib3gtc2hhZG93Omluc2V0
IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtkaXNwbGF5OmlubGluZS1ibG9jazstd2Vi
a2l0LXRyYW5zaXRpb246Ym9yZGVyIGxpbmVhciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4yczt0
cmFuc2l0aW9uOmJvcmRlciBsaW5lYXIgLjJzLCBib3gtc2hhZG93IGxpbmVhciAuMnM7aGVpZ2h0
OjI4cHg7cmVzaXplOm5vbmU7cGFkZGluZzowIDRweCAwIDRweDt3aGl0ZS1zcGFjZTpwcmUtd3Jh
cDsqd2hpdGUtc3BhY2U6cHJlO2NvbG9yOiMzMzN9Lm1jZS10ZXh0Ym94OmZvY3VzLC5tY2UtdGV4
dGJveC5tY2UtZm9jdXN7Ym9yZGVyLWNvbG9yOnJnYmEoODIsMTY4LDIzNiwwLjgpOy13ZWJraXQt
Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHgg
cmdiYSg4MiwgMTY4LCAyMzYsIDAuNjUpOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHgg
cmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHggcmdiYSg4MiwgMTY4LCAyMzYsIDAuNjUpO2Jv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJn
YmEoODIsIDE2OCwgMjM2LCAwLjY1KX0ubWNlLXBsYWNlaG9sZGVyIC5tY2UtdGV4dGJveHtjb2xv
cjojYWFhfS5tY2UtdGV4dGJveC5tY2UtbXVsdGlsaW5le3BhZGRpbmc6NHB4fS5tY2UtdGV4dGJv
eC5tY2UtZGlzYWJsZWR7Y29sb3I6I2FkYWRhZH0ubWNlLXJ0bCAubWNlLXRleHRib3h7dGV4dC1h
bGlnbjpyaWdodDtkaXJlY3Rpb246cnRsfS5tY2UtdGhyb2JiZXJ7cG9zaXRpb246YWJzb2x1dGU7
dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3BhY2l0eTouNjtmaWx0ZXI6YWxw
aGEob3BhY2l0eT02MCk7em9vbToxO2JhY2tncm91bmQ6I2ZmZiB1cmwoJ2ltZy9sb2FkZXIuZ2lm
Jykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXJ9Lm1jZS10aHJvYmJlci1pbmxpbmV7cG9zaXRpb246
c3RhdGljO2hlaWdodDo1MHB4fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J3RpbnltY2UnO3NyYzp1
cmwoJ2ZvbnRzL3RpbnltY2UuZW90Jyk7c3JjOnVybCgnZm9udHMvdGlueW1jZS5lb3Q/I2llZml4
JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnZm9udHMvdGlueW1jZS53b2ZmJykg
Zm9ybWF0KCd3b2ZmJyksdXJsKCdmb250cy90aW55bWNlLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUn
KSx1cmwoJ2ZvbnRzL3RpbnltY2Uuc3ZnI3RpbnltY2UnKSBmb3JtYXQoJ3N2ZycpO2ZvbnQtd2Vp
Z2h0Om5vcm1hbDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Oid0aW55
bWNlLXNtYWxsJztzcmM6dXJsKCdmb250cy90aW55bWNlLXNtYWxsLmVvdCcpO3NyYzp1cmwoJ2Zv
bnRzL3RpbnltY2Utc21hbGwuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUn
KSx1cmwoJ2ZvbnRzL3RpbnltY2Utc21hbGwud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnZm9u
dHMvdGlueW1jZS1zbWFsbC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksdXJsKCdmb250cy90aW55
bWNlLXNtYWxsLnN2ZyN0aW55bWNlJykgZm9ybWF0KCdzdmcnKTtmb250LXdlaWdodDpub3JtYWw7
Zm9udC1zdHlsZTpub3JtYWx9Lm1jZS1pY297Zm9udC1mYW1pbHk6J3RpbnltY2UnLEFyaWFsO2Zv
bnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2Zv
bnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE2cHg7c3BlYWs6bm9uZTt2ZXJ0aWNhbC1hbGlnbjp0
ZXh0LXRvcDstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQt
c21vb3RoaW5nOmdyYXlzY2FsZTtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOnRyYW5z
cGFyZW50IGNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO3dpZHRoOjE2cHg7aGVp
Z2h0OjE2cHg7Y29sb3I6IzMzM30ubWNlLWJ0bi1zbWFsbCAubWNlLWljb3tmb250LWZhbWlseTon
dGlueW1jZS1zbWFsbCcsQXJpYWx9Lm1jZS1pLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDAwIn0u
bWNlLWktbmV3ZG9jdW1lbnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDAxIn0ubWNlLWktZnVsbHBhZ2U6
YmVmb3Jle2NvbnRlbnQ6IlxlMDAyIn0ubWNlLWktYWxpZ25sZWZ0OmJlZm9yZXtjb250ZW50OiJc
ZTAwMyJ9Lm1jZS1pLWFsaWduY2VudGVyOmJlZm9yZXtjb250ZW50OiJcZTAwNCJ9Lm1jZS1pLWFs
aWducmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDA1In0ubWNlLWktYWxpZ25qdXN0aWZ5OmJlZm9y
ZXtjb250ZW50OiJcZTAwNiJ9Lm1jZS1pLWN1dDpiZWZvcmV7Y29udGVudDoiXGUwMDcifS5tY2Ut
aS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGUwMDgifS5tY2UtaS1zZWFyY2hyZXBsYWNlOmJlZm9y
ZXtjb250ZW50OiJcZTAwOSJ9Lm1jZS1pLWJ1bGxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxlMDBhIn0u
bWNlLWktbnVtbGlzdDpiZWZvcmV7Y29udGVudDoiXGUwMGIifS5tY2UtaS1pbmRlbnQ6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDBjIn0ubWNlLWktb3V0ZGVudDpiZWZvcmV7Y29udGVudDoiXGUwMGQifS5t
Y2UtaS1ibG9ja3F1b3RlOmJlZm9yZXtjb250ZW50OiJcZTAwZSJ9Lm1jZS1pLXVuZG86YmVmb3Jl
e2NvbnRlbnQ6IlxlMDBmIn0ubWNlLWktcmVkbzpiZWZvcmV7Y29udGVudDoiXGUwMTAifS5tY2Ut
aS1saW5rOmJlZm9yZXtjb250ZW50OiJcZTAxMSJ9Lm1jZS1pLXVubGluazpiZWZvcmV7Y29udGVu
dDoiXGUwMTIifS5tY2UtaS1hbmNob3I6YmVmb3Jle2NvbnRlbnQ6IlxlMDEzIn0ubWNlLWktaW1h
Z2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDE0In0ubWNlLWktbWVkaWE6YmVmb3Jle2NvbnRlbnQ6Ilxl
MDE1In0ubWNlLWktaGVscDpiZWZvcmV7Y29udGVudDoiXGUwMTYifS5tY2UtaS1jb2RlOmJlZm9y
ZXtjb250ZW50OiJcZTAxNyJ9Lm1jZS1pLWluc2VydGRhdGV0aW1lOmJlZm9yZXtjb250ZW50OiJc
ZTAxOCJ9Lm1jZS1pLXByZXZpZXc6YmVmb3Jle2NvbnRlbnQ6IlxlMDE5In0ubWNlLWktZm9yZWNv
bG9yOmJlZm9yZXtjb250ZW50OiJcZTAxYSJ9Lm1jZS1pLWJhY2tjb2xvcjpiZWZvcmV7Y29udGVu
dDoiXGUwMWEifS5tY2UtaS10YWJsZTpiZWZvcmV7Y29udGVudDoiXGUwMWIifS5tY2UtaS1ocjpi
ZWZvcmV7Y29udGVudDoiXGUwMWMifS5tY2UtaS1yZW1vdmVmb3JtYXQ6YmVmb3Jle2NvbnRlbnQ6
IlxlMDFkIn0ubWNlLWktc3Vic2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZTAxZSJ9Lm1jZS1pLXN1
cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZTAxZiJ9Lm1jZS1pLWNoYXJtYXA6YmVmb3Jle2Nv
bnRlbnQ6IlxlMDIwIn0ubWNlLWktZW1vdGljb25zOmJlZm9yZXtjb250ZW50OiJcZTAyMSJ9Lm1j
ZS1pLXByaW50OmJlZm9yZXtjb250ZW50OiJcZTAyMiJ9Lm1jZS1pLWZ1bGxzY3JlZW46YmVmb3Jl
e2NvbnRlbnQ6IlxlMDIzIn0ubWNlLWktc3BlbGxjaGVja2VyOmJlZm9yZXtjb250ZW50OiJcZTAy
NCJ9Lm1jZS1pLW5vbmJyZWFraW5nOmJlZm9yZXtjb250ZW50OiJcZTAyNSJ9Lm1jZS1pLXRlbXBs
YXRlOmJlZm9yZXtjb250ZW50OiJcZTAyNiJ9Lm1jZS1pLXBhZ2VicmVhazpiZWZvcmV7Y29udGVu
dDoiXGUwMjcifS5tY2UtaS1yZXN0b3JlZHJhZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDI4In0ubWNl
LWktdW50aXRsZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDI5In0ubWNlLWktYm9sZDpiZWZvcmV7Y29u
dGVudDoiXGUwMmEifS5tY2UtaS1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxlMDJiIn0ubWNlLWkt
dW5kZXJsaW5lOmJlZm9yZXtjb250ZW50OiJcZTAyYyJ9Lm1jZS1pLXN0cmlrZXRocm91Z2g6YmVm
b3Jle2NvbnRlbnQ6IlxlMDJkIn0ubWNlLWktdmlzdWFsY2hhcnM6YmVmb3Jle2NvbnRlbnQ6Ilxl
MDJlIn0ubWNlLWktdmlzdWFsYmxvY2tzOmJlZm9yZXtjb250ZW50OiJcZTAyZSJ9Lm1jZS1pLWx0
cjpiZWZvcmV7Y29udGVudDoiXGUwMmYifS5tY2UtaS1ydGw6YmVmb3Jle2NvbnRlbnQ6IlxlMDMw
In0ubWNlLWktY29weTpiZWZvcmV7Y29udGVudDoiXGUwMzEifS5tY2UtaS1yZXNpemU6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDMyIn0ubWNlLWktYnJvd3NlOmJlZm9yZXtjb250ZW50OiJcZTAzNCJ9Lm1j
ZS1pLXBhc3RldGV4dDpiZWZvcmV7Y29udGVudDoiXGUwMzUifS5tY2UtaS1jaGVja2JveDpiZWZv
cmUsLm1jZS1pLXNlbGVjdGVkOmJlZm9yZXtjb250ZW50OiJcZTAzMyJ9Lm1jZS1pLXNlbGVjdGVk
e3Zpc2liaWxpdHk6aGlkZGVufWkubWNlLWktYmFja2NvbG9ye3RleHQtc2hhZG93Om5vbmU7YmFj
a2dyb3VuZDojYmJifQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2pzL3RoZW1lcy9t
b2Rlcm4vdGhlbWUubWluLmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvanMvdGhlbWVzL21vZGVybi90aGVtZS5taW4uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUyNTg0OWRmMzczCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvdGhlbWVz
L21vZGVybi90aGVtZS5taW4uanMKQEAgLTAsMCArMSBAQAordGlueW1jZS5UaGVtZU1hbmFnZXIu
YWRkKCJtb2Rlcm4iLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtmdW5jdGlvbiB0KHQpe3ZhciBu
LG89W107aWYodClyZXR1cm4gZCh0LnNwbGl0KC9bICxdLyksZnVuY3Rpb24odCl7ZnVuY3Rpb24g
aSgpe3ZhciBpPWUuc2VsZWN0aW9uOyJidWxsaXN0Ij09ciYmaS5zZWxlY3RvckNoYW5nZWQoInVs
ID4gbGkiLGZ1bmN0aW9uKGUsaSl7Zm9yKHZhciBuLG89aS5wYXJlbnRzLmxlbmd0aDtvLS0mJihu
PWkucGFyZW50c1tvXS5ub2RlTmFtZSwiT0wiIT1uJiYiVUwiIT1uKTspO3QuYWN0aXZlKGUmJiJV
TCI9PW4pfSksIm51bWxpc3QiPT1yJiZpLnNlbGVjdG9yQ2hhbmdlZCgib2wgPiBsaSIsZnVuY3Rp
b24oZSxpKXtmb3IodmFyIG4sbz1pLnBhcmVudHMubGVuZ3RoO28tLSYmKG49aS5wYXJlbnRzW29d
Lm5vZGVOYW1lLCJPTCIhPW4mJiJVTCIhPW4pOyk7dC5hY3RpdmUoZSYmIk9MIj09bil9KSx0LnNl
dHRpbmdzLnN0YXRlU2VsZWN0b3ImJmkuc2VsZWN0b3JDaGFuZ2VkKHQuc2V0dGluZ3Muc3RhdGVT
ZWxlY3RvcixmdW5jdGlvbihlKXt0LmFjdGl2ZShlKX0sITApLHQuc2V0dGluZ3MuZGlzYWJsZWRT
dGF0ZVNlbGVjdG9yJiZpLnNlbGVjdG9yQ2hhbmdlZCh0LnNldHRpbmdzLmRpc2FibGVkU3RhdGVT
ZWxlY3RvcixmdW5jdGlvbihlKXt0LmRpc2FibGVkKGUpfSl9dmFyIHI7InwiPT10P249bnVsbDpj
Lmhhcyh0KT8odD17dHlwZTp0fSx1LnRvb2xiYXJfaXRlbXNfc2l6ZSYmKHQuc2l6ZT11LnRvb2xi
YXJfaXRlbXNfc2l6ZSksby5wdXNoKHQpLG49bnVsbCk6KG58fChuPXt0eXBlOiJidXR0b25ncm91
cCIsaXRlbXM6W119LG8ucHVzaChuKSksZS5idXR0b25zW3RdJiYocj10LHQ9ZS5idXR0b25zW3Jd
LCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYodD10KCkpLHQudHlwZT10LnR5cGV8fCJidXR0b24iLHUu
dG9vbGJhcl9pdGVtc19zaXplJiYodC5zaXplPXUudG9vbGJhcl9pdGVtc19zaXplKSx0PWMuY3Jl
YXRlKHQpLG4uaXRlbXMucHVzaCh0KSxlLmluaXRpYWxpemVkP2koKTplLm9uKCJpbml0IixpKSkp
fSksaS5wdXNoKHt0eXBlOiJ0b29sYmFyIixsYXlvdXQ6ImZsb3ciLGl0ZW1zOm99KSwhMH12YXIg
aT1bXTtpZih0aW55bWNlLmlzQXJyYXkodS50b29sYmFyKSl7aWYoMD09PXUudG9vbGJhci5sZW5n
dGgpcmV0dXJuO3RpbnltY2UuZWFjaCh1LnRvb2xiYXIsZnVuY3Rpb24oZSx0KXt1WyJ0b29sYmFy
IisodCsxKV09ZX0pLGRlbGV0ZSB1LnRvb2xiYXJ9Zm9yKHZhciBuPTE7MTA+biYmdCh1WyJ0b29s
YmFyIituXSk7bisrKTtyZXR1cm4gaS5sZW5ndGh8fHUudG9vbGJhcj09PSExfHx0KHUudG9vbGJh
cnx8ZiksaS5sZW5ndGg/e3R5cGU6InBhbmVsIixsYXlvdXQ6InN0YWNrIixjbGFzc2VzOiJ0b29s
YmFyLWdycCIsYXJpYVJvb3Q6ITAsYXJpYVJlbWVtYmVyOiEwLGl0ZW1zOml9OnZvaWQgMH1mdW5j
dGlvbiBpKCl7ZnVuY3Rpb24gdCh0KXt2YXIgaTtyZXR1cm4ifCI9PXQ/e3RleHQ6InwifTppPWUu
bWVudUl0ZW1zW3RdfWZ1bmN0aW9uIGkoaSl7dmFyIG4sbyxyLGEscztpZihzPXRpbnltY2UubWFr
ZU1hcCgodS5yZW1vdmVkX21lbnVpdGVtc3x8IiIpLnNwbGl0KC9bICxdLykpLHUubWVudT8obz11
Lm1lbnVbaV0sYT0hMCk6bz1oW2ldLG8pe249e3RleHQ6by50aXRsZX0scj1bXSxkKChvLml0ZW1z
fHwiIikuc3BsaXQoL1sgLF0vKSxmdW5jdGlvbihlKXt2YXIgaT10KGUpO2kmJiFzW2VdJiZyLnB1
c2godChlKSl9KSxhfHxkKGUubWVudUl0ZW1zLGZ1bmN0aW9uKGUpe2UuY29udGV4dD09aSYmKCJi
ZWZvcmUiPT1lLnNlcGFyYXRvciYmci5wdXNoKHt0ZXh0OiJ8In0pLGUucHJlcGVuZFRvQ29udGV4
dD9yLnVuc2hpZnQoZSk6ci5wdXNoKGUpLCJhZnRlciI9PWUuc2VwYXJhdG9yJiZyLnB1c2goe3Rl
eHQ6InwifSkpfSk7Zm9yKHZhciBsPTA7bDxyLmxlbmd0aDtsKyspInwiPT1yW2xdLnRleHQmJigw
PT09bHx8bD09ci5sZW5ndGgtMSkmJnIuc3BsaWNlKGwsMSk7aWYobi5tZW51PXIsIW4ubWVudS5s
ZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIG59dmFyIG4sbz1bXSxyPVtdO2lmKHUubWVudSlmb3Io
biBpbiB1Lm1lbnUpci5wdXNoKG4pO2Vsc2UgZm9yKG4gaW4gaClyLnB1c2gobik7Zm9yKHZhciBh
PSJzdHJpbmciPT10eXBlb2YgdS5tZW51YmFyP3UubWVudWJhci5zcGxpdCgvWyAsXS8pOnIscz0w
O3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdO2w9aShsKSxsJiZvLnB1c2gobCl9cmV0dXJuIG99
ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBpKGUpe3ZhciBpPXQuZmluZChlKVswXTtpJiZpLmZvY3Vz
KCEwKX1lLnNob3J0Y3V0cy5hZGQoIkFsdCtGOSIsIiIsZnVuY3Rpb24oKXtpKCJtZW51YmFyIil9
KSxlLnNob3J0Y3V0cy5hZGQoIkFsdCtGMTAiLCIiLGZ1bmN0aW9uKCl7aSgidG9vbGJhciIpfSks
ZS5zaG9ydGN1dHMuYWRkKCJBbHQrRjExIiwiIixmdW5jdGlvbigpe2koImVsZW1lbnRwYXRoIil9
KSx0Lm9uKCJjYW5jZWwiLGZ1bmN0aW9uKCl7ZS5mb2N1cygpfSl9ZnVuY3Rpb24gbyh0LGkpe2Z1
bmN0aW9uIG4oZSl7cmV0dXJue3dpZHRoOmUuY2xpZW50V2lkdGgsaGVpZ2h0OmUuY2xpZW50SGVp
Z2h0fX12YXIgbyxyLGEscztvPWUuZ2V0Q29udGFpbmVyKCkscj1lLmdldENvbnRlbnRBcmVhQ29u
dGFpbmVyKCkuZmlyc3RDaGlsZCxhPW4obykscz1uKHIpLG51bGwhPT10JiYodD1NYXRoLm1heCh1
Lm1pbl93aWR0aHx8MTAwLHQpLHQ9TWF0aC5taW4odS5tYXhfd2lkdGh8fDY1NTM1LHQpLG0uY3Nz
KG8sIndpZHRoIix0KyhhLndpZHRoLXMud2lkdGgpKSxtLmNzcyhyLCJ3aWR0aCIsdCkpLGk9TWF0
aC5tYXgodS5taW5faGVpZ2h0fHwxMDAsaSksaT1NYXRoLm1pbih1Lm1heF9oZWlnaHR8fDY1NTM1
LGkpLG0uY3NzKHIsImhlaWdodCIsaSksZS5maXJlKCJSZXNpemVFZGl0b3IiKX1mdW5jdGlvbiBy
KHQsaSl7dmFyIG49ZS5nZXRDb250ZW50QXJlYUNvbnRhaW5lcigpO2wucmVzaXplVG8obi5jbGll
bnRXaWR0aCt0LG4uY2xpZW50SGVpZ2h0K2kpfWZ1bmN0aW9uIGEobyl7ZnVuY3Rpb24gcigpe2lm
KGgmJmgubW92ZVJlbCYmaC52aXNpYmxlKCkmJiFoLl9maXhlZCl7dmFyIHQ9ZS5zZWxlY3Rpb24u
Z2V0U2Nyb2xsQ29udGFpbmVyKCksaT1lLmdldEJvZHkoKSxuPTAsbz0wO2lmKHQpe3ZhciByPW0u
Z2V0UG9zKGkpLGE9bS5nZXRQb3ModCk7bj1NYXRoLm1heCgwLGEueC1yLngpLG89TWF0aC5tYXgo
MCxhLnktci55KX1oLmZpeGVkKCExKS5tb3ZlUmVsKGksZS5ydGw/WyJ0ci1iciIsImJyLXRyIl06
WyJ0bC1ibCIsImJsLXRsIl0pLm1vdmVCeShuLG8pfX1mdW5jdGlvbiBhKCl7aCYmKGguc2hvdygp
LHIoKSxtLmFkZENsYXNzKGUuZ2V0Qm9keSgpLCJtY2UtZWRpdC1mb2N1cyIpKX1mdW5jdGlvbiBz
KCl7aCYmKGguaGlkZSgpLG0ucmVtb3ZlQ2xhc3MoZS5nZXRCb2R5KCksIm1jZS1lZGl0LWZvY3Vz
IikpfWZ1bmN0aW9uIGQoKXtyZXR1cm4gaD92b2lkKGgudmlzaWJsZSgpfHxhKCkpOihoPWwucGFu
ZWw9Yy5jcmVhdGUoe3R5cGU6Zj8icGFuZWwiOiJmbG9hdHBhbmVsIixyb2xlOiJhcHBsaWNhdGlv
biIsY2xhc3NlczoidGlueW1jZSB0aW55bWNlLWlubGluZSIsbGF5b3V0OiJmbGV4IixkaXJlY3Rp
b246ImNvbHVtbiIsYWxpZ246InN0cmV0Y2giLGF1dG9oaWRlOiExLGF1dG9maXg6ITAsZml4ZWQ6
ISFmLGJvcmRlcjoxLGl0ZW1zOlt1Lm1lbnViYXI9PT0hMT9udWxsOnt0eXBlOiJtZW51YmFyIixi
b3JkZXI6IjAgMCAxIDAiLGl0ZW1zOmkoKX0sdCgpXX0pLGUuZmlyZSgiQmVmb3JlUmVuZGVyVUki
KSxoLnJlbmRlclRvKGZ8fGRvY3VtZW50LmJvZHkpLnJlZmxvdygpLG4oaCksYSgpLGUub24oIm5v
ZGVDaGFuZ2UiLHIpLGUub24oImFjdGl2YXRlIixhKSxlLm9uKCJkZWFjdGl2YXRlIixzKSx2b2lk
IGUubm9kZUNoYW5nZWQoKSl9dmFyIGgsZjtyZXR1cm4gdS5maXhlZF90b29sYmFyX2NvbnRhaW5l
ciYmKGY9bS5zZWxlY3QodS5maXhlZF90b29sYmFyX2NvbnRhaW5lcilbMF0pLHUuY29udGVudF9l
ZGl0YWJsZT0hMCxlLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtvLnNraW5VaUNzcz90aW55bWNlLkRP
TS5zdHlsZVNoZWV0TG9hZGVyLmxvYWQoby5za2luVWlDc3MsZCxkKTpkKCl9KSxlLm9uKCJibHVy
IGhpZGUiLHMpLGUub24oInJlbW92ZSIsZnVuY3Rpb24oKXtoJiYoaC5yZW1vdmUoKSxoPW51bGwp
fSksby5za2luVWlDc3MmJnRpbnltY2UuRE9NLnN0eWxlU2hlZXRMb2FkZXIubG9hZChvLnNraW5V
aUNzcykse319ZnVuY3Rpb24gcyhyKXt2YXIgYSxzLGQ7cmV0dXJuIHIuc2tpblVpQ3NzJiZ0aW55
bWNlLkRPTS5sb2FkQ1NTKHIuc2tpblVpQ3NzKSxhPWwucGFuZWw9Yy5jcmVhdGUoe3R5cGU6InBh
bmVsIixyb2xlOiJhcHBsaWNhdGlvbiIsY2xhc3NlczoidGlueW1jZSIsc3R5bGU6InZpc2liaWxp
dHk6IGhpZGRlbiIsbGF5b3V0OiJzdGFjayIsYm9yZGVyOjEsaXRlbXM6W3UubWVudWJhcj09PSEx
P251bGw6e3R5cGU6Im1lbnViYXIiLGJvcmRlcjoiMCAwIDEgMCIsaXRlbXM6aSgpfSx0KCkse3R5
cGU6InBhbmVsIixuYW1lOiJpZnJhbWUiLGxheW91dDoic3RhY2siLGNsYXNzZXM6ImVkaXQtYXJl
YSIsaHRtbDoiIixib3JkZXI6IjEgMCAwIDAifV19KSx1LnJlc2l6ZSE9PSExJiYocz17dHlwZToi
cmVzaXplaGFuZGxlIixkaXJlY3Rpb246dS5yZXNpemUsb25SZXNpemVTdGFydDpmdW5jdGlvbigp
e3ZhciB0PWUuZ2V0Q29udGVudEFyZWFDb250YWluZXIoKS5maXJzdENoaWxkO2Q9e3dpZHRoOnQu
Y2xpZW50V2lkdGgsaGVpZ2h0OnQuY2xpZW50SGVpZ2h0fX0sb25SZXNpemU6ZnVuY3Rpb24oZSl7
ImJvdGgiPT11LnJlc2l6ZT9vKGQud2lkdGgrZS5kZWx0YVgsZC5oZWlnaHQrZS5kZWx0YVkpOm8o
bnVsbCxkLmhlaWdodCtlLmRlbHRhWSl9fSksdS5zdGF0dXNiYXIhPT0hMSYmYS5hZGQoe3R5cGU6
InBhbmVsIixuYW1lOiJzdGF0dXNiYXIiLGNsYXNzZXM6InN0YXR1c2JhciIsbGF5b3V0OiJmbG93
Iixib3JkZXI6IjEgMCAwIDAiLGFyaWFSb290OiEwLGl0ZW1zOlt7dHlwZToiZWxlbWVudHBhdGgi
fSxzXX0pLHUucmVhZG9ubHkmJmEuZmluZCgiKiIpLmRpc2FibGVkKCEwKSxlLmZpcmUoIkJlZm9y
ZVJlbmRlclVJIiksYS5yZW5kZXJCZWZvcmUoci50YXJnZXROb2RlKS5yZWZsb3coKSx1LndpZHRo
JiZ0aW55bWNlLkRPTS5zZXRTdHlsZShhLmdldEVsKCksIndpZHRoIix1LndpZHRoKSxlLm9uKCJy
ZW1vdmUiLGZ1bmN0aW9uKCl7YS5yZW1vdmUoKSxhPW51bGx9KSxuKGEpLHtpZnJhbWVDb250YWlu
ZXI6YS5maW5kKCIjaWZyYW1lIilbMF0uZ2V0RWwoKSxlZGl0b3JDb250YWluZXI6YS5nZXRFbCgp
fX12YXIgbD10aGlzLHU9ZS5zZXR0aW5ncyxjPXRpbnltY2UudWkuRmFjdG9yeSxkPXRpbnltY2Uu
ZWFjaCxtPXRpbnltY2UuRE9NLGg9e2ZpbGU6e3RpdGxlOiJGaWxlIixpdGVtczoibmV3ZG9jdW1l
bnQifSxlZGl0Ont0aXRsZToiRWRpdCIsaXRlbXM6InVuZG8gcmVkbyB8IGN1dCBjb3B5IHBhc3Rl
IHBhc3RldGV4dCB8IHNlbGVjdGFsbCJ9LGluc2VydDp7dGl0bGU6Ikluc2VydCIsaXRlbXM6Inwi
fSx2aWV3Ont0aXRsZToiVmlldyIsaXRlbXM6InZpc3VhbGFpZCB8In0sZm9ybWF0Ont0aXRsZToi
Rm9ybWF0IixpdGVtczoiYm9sZCBpdGFsaWMgdW5kZXJsaW5lIHN0cmlrZXRocm91Z2ggc3VwZXJz
Y3JpcHQgc3Vic2NyaXB0IHwgZm9ybWF0cyB8IHJlbW92ZWZvcm1hdCJ9LHRhYmxlOnt0aXRsZToi
VGFibGUifSx0b29sczp7dGl0bGU6IlRvb2xzIn19LGY9InVuZG8gcmVkbyB8IHN0eWxlc2VsZWN0
IHwgYm9sZCBpdGFsaWMgfCBhbGlnbmxlZnQgYWxpZ25jZW50ZXIgYWxpZ25yaWdodCBhbGlnbmp1
c3RpZnkgfCBidWxsaXN0IG51bWxpc3Qgb3V0ZGVudCBpbmRlbnQgfCBsaW5rIGltYWdlIjtsLnJl
bmRlclVJPWZ1bmN0aW9uKHQpe3ZhciBpPXUuc2tpbiE9PSExP3Uuc2tpbnx8ImxpZ2h0Z3JheSI6
ITE7aWYoaSl7dmFyIG49dS5za2luX3VybDtuPW4/ZS5kb2N1bWVudEJhc2VVUkkudG9BYnNvbHV0
ZShuKTp0aW55bWNlLmJhc2VVUkwrIi9za2lucy8iK2ksdC5za2luVWlDc3M9dGlueW1jZS5FbnYu
ZG9jdW1lbnRNb2RlPD03P24rIi9za2luLmllNy5taW4uY3NzIjpuKyIvc2tpbi5taW4uY3NzIixl
LmNvbnRlbnRDU1MucHVzaChuKyIvY29udGVudCIrKGUuaW5saW5lPyIuaW5saW5lIjoiIikrIi5t
aW4uY3NzIil9cmV0dXJuIGUub24oIlByb2dyZXNzU3RhdGUiLGZ1bmN0aW9uKGUpe2wudGhyb2Ji
ZXI9bC50aHJvYmJlcnx8bmV3IHRpbnltY2UudWkuVGhyb2JiZXIobC5wYW5lbC5nZXRFbCgiYm9k
eSIpKSxlLnN0YXRlP2wudGhyb2JiZXIuc2hvdyhlLnRpbWUpOmwudGhyb2JiZXIuaGlkZSgpfSks
dS5pbmxpbmU/YSh0KTpzKHQpfSxsLnJlc2l6ZVRvPW8sbC5yZXNpemVCeT1yfSk7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvanMvdGlueW1jZS5taW4uanMgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9qcy90aW55bWNlLm1pbi5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2FiN2RmN2ZjYTYKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9qcy90aW55bWNlLm1pbi5qcwpAQCAtMCwwICsxLDEwIEBACisvLyA0LjAuMjYgKDIwMTQtMDUt
MDYpCishZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2Zvcih2YXIg
bixyPVtdLGk9MDtpPGUubGVuZ3RoOysraSl7aWYobj1zW2VbaV1dfHxvKGVbaV0pLCFuKXRocm93
Im1vZHVsZSBkZWZpbml0aW9uIGRlcGVuZGVjeSBub3QgZm91bmQ6ICIrZVtpXTtyLnB1c2gobil9
dC5hcHBseShudWxsLHIpfWZ1bmN0aW9uIHIoZSxyLGkpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0
aHJvdyJpbnZhbGlkIG1vZHVsZSBkZWZpbml0aW9uLCBtb2R1bGUgaWQgbXVzdCBiZSBkZWZpbmVk
IGFuZCBiZSBhIHN0cmluZyI7aWYocj09PXQpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlv
biwgZGVwZW5kZW5jaWVzIG11c3QgYmUgc3BlY2lmaWVkIjtpZihpPT09dCl0aHJvdyJpbnZhbGlk
IG1vZHVsZSBkZWZpbml0aW9uLCBkZWZpbml0aW9uIGZ1bmN0aW9uIG11c3QgYmUgc3BlY2lmaWVk
IjtuKHIsZnVuY3Rpb24oKXtzW2VdPWkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSl9ZnVuY3Rpb24g
aShlKXtyZXR1cm4hIXNbZV19ZnVuY3Rpb24gbyh0KXtmb3IodmFyIG49ZSxyPXQuc3BsaXQoL1su
XC9dLyksaT0wO2k8ci5sZW5ndGg7KytpKXtpZighbltyW2ldXSlyZXR1cm47bj1uW3JbaV1dfXJl
dHVybiBufWZ1bmN0aW9uIGEobil7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe2Zvcih2YXIg
aT1lLG89bltyXSxhPW8uc3BsaXQoL1suXC9dLyksbD0wO2w8YS5sZW5ndGgtMTsrK2wpaVthW2xd
XT09PXQmJihpW2FbbF1dPXt9KSxpPWlbYVtsXV07aVthW2EubGVuZ3RoLTFdXT1zW29dfX12YXIg
cz17fSxsPSJ0aW55bWNlL2RvbS9FdmVudFV0aWxzIixjPSJ0aW55bWNlL2RvbS9TaXp6bGUiLHU9
InRpbnltY2UvZG9tL0RvbVF1ZXJ5IixkPSJ0aW55bWNlL2h0bWwvU3R5bGVzIixmPSJ0aW55bWNl
L2RvbS9UcmVlV2Fsa2VyIixwPSJ0aW55bWNlL3V0aWwvVG9vbHMiLGg9InRpbnltY2UvZG9tL1Jh
bmdlIixtPSJ0aW55bWNlL2h0bWwvRW50aXRpZXMiLGc9InRpbnltY2UvRW52Iix2PSJ0aW55bWNl
L2RvbS9TdHlsZVNoZWV0TG9hZGVyIix5PSJ0aW55bWNlL2RvbS9ET01VdGlscyIsYj0idGlueW1j
ZS9kb20vU2NyaXB0TG9hZGVyIixDPSJ0aW55bWNlL0FkZE9uTWFuYWdlciIseD0idGlueW1jZS9o
dG1sL05vZGUiLHc9InRpbnltY2UvaHRtbC9TY2hlbWEiLF89InRpbnltY2UvaHRtbC9TYXhQYXJz
ZXIiLE49InRpbnltY2UvaHRtbC9Eb21QYXJzZXIiLEU9InRpbnltY2UvaHRtbC9Xcml0ZXIiLFM9
InRpbnltY2UvaHRtbC9TZXJpYWxpemVyIixrPSJ0aW55bWNlL2RvbS9TZXJpYWxpemVyIixUPSJ0
aW55bWNlL2RvbS9UcmlkZW50U2VsZWN0aW9uIixSPSJ0aW55bWNlL3V0aWwvVksiLEE9InRpbnlt
Y2UvZG9tL0NvbnRyb2xTZWxlY3Rpb24iLEI9InRpbnltY2UvZG9tL1JhbmdlVXRpbHMiLEQ9InRp
bnltY2UvZG9tL1NlbGVjdGlvbiIsTD0idGlueW1jZS9mbXQvUHJldmlldyIsTT0idGlueW1jZS9G
b3JtYXR0ZXIiLEg9InRpbnltY2UvVW5kb01hbmFnZXIiLFA9InRpbnltY2UvRW50ZXJLZXkiLE89
InRpbnltY2UvRm9yY2VCbG9ja3MiLEk9InRpbnltY2UvRWRpdG9yQ29tbWFuZHMiLEY9InRpbnlt
Y2UvdXRpbC9VUkkiLHo9InRpbnltY2UvdXRpbC9DbGFzcyIsVz0idGlueW1jZS91dGlsL0V2ZW50
RGlzcGF0Y2hlciIsVj0idGlueW1jZS91aS9TZWxlY3RvciIsVT0idGlueW1jZS91aS9Db2xsZWN0
aW9uIixxPSJ0aW55bWNlL3VpL0RvbVV0aWxzIiwkPSJ0aW55bWNlL3VpL0NvbnRyb2wiLGo9InRp
bnltY2UvdWkvRmFjdG9yeSIsSz0idGlueW1jZS91aS9LZXlib2FyZE5hdmlnYXRpb24iLEc9InRp
bnltY2UvdWkvQ29udGFpbmVyIixZPSJ0aW55bWNlL3VpL0RyYWdIZWxwZXIiLFg9InRpbnltY2Uv
dWkvU2Nyb2xsYWJsZSIsSj0idGlueW1jZS91aS9QYW5lbCIsUT0idGlueW1jZS91aS9Nb3ZhYmxl
IixaPSJ0aW55bWNlL3VpL1Jlc2l6YWJsZSIsZXQ9InRpbnltY2UvdWkvRmxvYXRQYW5lbCIsdHQ9
InRpbnltY2UvdWkvV2luZG93IixudD0idGlueW1jZS91aS9NZXNzYWdlQm94IixydD0idGlueW1j
ZS9XaW5kb3dNYW5hZ2VyIixpdD0idGlueW1jZS91dGlsL1F1aXJrcyIsb3Q9InRpbnltY2UvdXRp
bC9PYnNlcnZhYmxlIixhdD0idGlueW1jZS9FZGl0b3JPYnNlcnZhYmxlIixzdD0idGlueW1jZS9T
aG9ydGN1dHMiLGx0PSJ0aW55bWNlL0VkaXRvciIsY3Q9InRpbnltY2UvdXRpbC9JMThuIix1dD0i
dGlueW1jZS9Gb2N1c01hbmFnZXIiLGR0PSJ0aW55bWNlL0VkaXRvck1hbmFnZXIiLGZ0PSJ0aW55
bWNlL0xlZ2FjeUlucHV0IixwdD0idGlueW1jZS91dGlsL1hIUiIsaHQ9InRpbnltY2UvdXRpbC9K
U09OIixtdD0idGlueW1jZS91dGlsL0pTT05SZXF1ZXN0IixndD0idGlueW1jZS91dGlsL0pTT05Q
Iix2dD0idGlueW1jZS91dGlsL0xvY2FsU3RvcmFnZSIseXQ9InRpbnltY2UvQ29tcGF0IixidD0i
dGlueW1jZS91aS9MYXlvdXQiLEN0PSJ0aW55bWNlL3VpL0Fic29sdXRlTGF5b3V0Iix4dD0idGlu
eW1jZS91aS9Ub29sdGlwIix3dD0idGlueW1jZS91aS9XaWRnZXQiLF90PSJ0aW55bWNlL3VpL0J1
dHRvbiIsTnQ9InRpbnltY2UvdWkvQnV0dG9uR3JvdXAiLEV0PSJ0aW55bWNlL3VpL0NoZWNrYm94
IixTdD0idGlueW1jZS91aS9QYW5lbEJ1dHRvbiIsa3Q9InRpbnltY2UvdWkvQ29sb3JCdXR0b24i
LFR0PSJ0aW55bWNlL3VpL0NvbWJvQm94IixSdD0idGlueW1jZS91aS9QYXRoIixBdD0idGlueW1j
ZS91aS9FbGVtZW50UGF0aCIsQnQ9InRpbnltY2UvdWkvRm9ybUl0ZW0iLER0PSJ0aW55bWNlL3Vp
L0Zvcm0iLEx0PSJ0aW55bWNlL3VpL0ZpZWxkU2V0IixNdD0idGlueW1jZS91aS9GaWxlUGlja2Vy
IixIdD0idGlueW1jZS91aS9GaXRMYXlvdXQiLFB0PSJ0aW55bWNlL3VpL0ZsZXhMYXlvdXQiLE90
PSJ0aW55bWNlL3VpL0Zsb3dMYXlvdXQiLEl0PSJ0aW55bWNlL3VpL0Zvcm1hdENvbnRyb2xzIixG
dD0idGlueW1jZS91aS9HcmlkTGF5b3V0Iix6dD0idGlueW1jZS91aS9JZnJhbWUiLFd0PSJ0aW55
bWNlL3VpL0xhYmVsIixWdD0idGlueW1jZS91aS9Ub29sYmFyIixVdD0idGlueW1jZS91aS9NZW51
QmFyIixxdD0idGlueW1jZS91aS9NZW51QnV0dG9uIiwkdD0idGlueW1jZS91aS9MaXN0Qm94Iixq
dD0idGlueW1jZS91aS9NZW51SXRlbSIsS3Q9InRpbnltY2UvdWkvTWVudSIsR3Q9InRpbnltY2Uv
dWkvUmFkaW8iLFl0PSJ0aW55bWNlL3VpL1Jlc2l6ZUhhbmRsZSIsWHQ9InRpbnltY2UvdWkvU3Bh
Y2VyIixKdD0idGlueW1jZS91aS9TcGxpdEJ1dHRvbiIsUXQ9InRpbnltY2UvdWkvU3RhY2tMYXlv
dXQiLFp0PSJ0aW55bWNlL3VpL1RhYlBhbmVsIixlbj0idGlueW1jZS91aS9UZXh0Qm94Iix0bj0i
dGlueW1jZS91aS9UaHJvYmJlciI7cihsLFtdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbixy
KXtlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKHQsbixyfHwhMSk6ZS5hdHRh
Y2hFdmVudCYmZS5hdHRhY2hFdmVudCgib24iK3Qsbil9ZnVuY3Rpb24gdChlLHQsbixyKXtlLnJl
bW92ZUV2ZW50TGlzdGVuZXI/ZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbixyfHwhMSk6ZS5kZXRh
Y2hFdmVudCYmZS5kZXRhY2hFdmVudCgib24iK3Qsbil9ZnVuY3Rpb24gbihlLHQpe2Z1bmN0aW9u
IG4oKXtyZXR1cm4hMX1mdW5jdGlvbiByKCl7cmV0dXJuITB9dmFyIGksbz10fHx7fSxsO2Zvcihp
IGluIGUpc1tpXXx8KG9baV09ZVtpXSk7aWYoby50YXJnZXR8fChvLnRhcmdldD1vLnNyY0VsZW1l
bnR8fGRvY3VtZW50KSxlJiZhLnRlc3QoZS50eXBlKSYmZS5wYWdlWD09PWwmJmUuY2xpZW50WCE9
PWwpe3ZhciBjPW8udGFyZ2V0Lm93bmVyRG9jdW1lbnR8fGRvY3VtZW50LHU9Yy5kb2N1bWVudEVs
ZW1lbnQsZD1jLmJvZHk7by5wYWdlWD1lLmNsaWVudFgrKHUmJnUuc2Nyb2xsTGVmdHx8ZCYmZC5z
Y3JvbGxMZWZ0fHwwKS0odSYmdS5jbGllbnRMZWZ0fHxkJiZkLmNsaWVudExlZnR8fDApLG8ucGFn
ZVk9ZS5jbGllbnRZKyh1JiZ1LnNjcm9sbFRvcHx8ZCYmZC5zY3JvbGxUb3B8fDApLSh1JiZ1LmNs
aWVudFRvcHx8ZCYmZC5jbGllbnRUb3B8fDApfXJldHVybiBvLnByZXZlbnREZWZhdWx0PWZ1bmN0
aW9uKCl7by5pc0RlZmF1bHRQcmV2ZW50ZWQ9cixlJiYoZS5wcmV2ZW50RGVmYXVsdD9lLnByZXZl
bnREZWZhdWx0KCk6ZS5yZXR1cm5WYWx1ZT0hMSl9LG8uc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9u
KCl7by5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1yLGUmJihlLnN0b3BQcm9wYWdhdGlvbj9lLnN0b3BQ
cm9wYWdhdGlvbigpOmUuY2FuY2VsQnViYmxlPSEwKX0sby5zdG9wSW1tZWRpYXRlUHJvcGFnYXRp
b249ZnVuY3Rpb24oKXtvLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXIsby5zdG9wUHJv
cGFnYXRpb24oKX0sby5pc0RlZmF1bHRQcmV2ZW50ZWR8fChvLmlzRGVmYXVsdFByZXZlbnRlZD1u
LG8uaXNQcm9wYWdhdGlvblN0b3BwZWQ9bixvLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVk
PW4pLG99ZnVuY3Rpb24gcihuLHIsaSl7ZnVuY3Rpb24gbygpe2kuZG9tTG9hZGVkfHwoaS5kb21M
b2FkZWQ9ITAscihjKSl9ZnVuY3Rpb24gYSgpeygiY29tcGxldGUiPT09bC5yZWFkeVN0YXRlfHwi
aW50ZXJhY3RpdmUiPT09bC5yZWFkeVN0YXRlJiZsLmJvZHkpJiYodChsLCJyZWFkeXN0YXRlY2hh
bmdlIixhKSxvKCkpfWZ1bmN0aW9uIHMoKXt0cnl7bC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwo
ImxlZnQiKX1jYXRjaChlKXtyZXR1cm4gdm9pZCBzZXRUaW1lb3V0KHMsMCl9bygpfXZhciBsPW4u
ZG9jdW1lbnQsYz17dHlwZToicmVhZHkifTtyZXR1cm4gaS5kb21Mb2FkZWQ/dm9pZCByKGMpOihs
LmFkZEV2ZW50TGlzdGVuZXI/ImNvbXBsZXRlIj09PWwucmVhZHlTdGF0ZT9vKCk6ZShuLCJET01D
b250ZW50TG9hZGVkIixvKTooZShsLCJyZWFkeXN0YXRlY2hhbmdlIixhKSxsLmRvY3VtZW50RWxl
bWVudC5kb1Njcm9sbCYmbi5zZWxmPT09bi50b3AmJnMoKSksdm9pZCBlKG4sImxvYWQiLG8pKX1m
dW5jdGlvbiBpKCl7ZnVuY3Rpb24gaShlLHQpe3ZhciBuLHIsaSxvLGE9c1t0XTtpZihuPWEmJmFb
ZS50eXBlXSlmb3Iocj0wLGk9bi5sZW5ndGg7aT5yO3IrKylpZihvPW5bcl0sbyYmby5mdW5jLmNh
bGwoby5zY29wZSxlKT09PSExJiZlLnByZXZlbnREZWZhdWx0KCksZS5pc0ltbWVkaWF0ZVByb3Bh
Z2F0aW9uU3RvcHBlZCgpKXJldHVybn12YXIgYT10aGlzLHM9e30sbCxjLHUsZCxmO2M9bysoK25l
dyBEYXRlKS50b1N0cmluZygzMiksZD0ib25tb3VzZWVudGVyImluIGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudCx1PSJvbmZvY3VzaW4iaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGY9e21vdXNl
ZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSxsPTEsYS5kb21Mb2FkZWQ9
ITEsYS5ldmVudHM9cyxhLmJpbmQ9ZnVuY3Rpb24odCxvLHAsaCl7ZnVuY3Rpb24gbShlKXtpKG4o
ZXx8Xy5ldmVudCksZyl9dmFyIGcsdix5LGIsQyx4LHcsXz13aW5kb3c7aWYodCYmMyE9PXQubm9k
ZVR5cGUmJjghPT10Lm5vZGVUeXBlKXtmb3IodFtjXT9nPXRbY106KGc9bCsrLHRbY109ZyxzW2dd
PXt9KSxoPWh8fHQsbz1vLnNwbGl0KCIgIikseT1vLmxlbmd0aDt5LS07KWI9b1t5XSx4PW0sQz13
PSExLCJET01Db250ZW50TG9hZGVkIj09PWImJihiPSJyZWFkeSIpLGEuZG9tTG9hZGVkJiYicmVh
ZHkiPT09YiYmImNvbXBsZXRlIj09dC5yZWFkeVN0YXRlP3AuY2FsbChoLG4oe3R5cGU6Yn0pKToo
ZHx8KEM9ZltiXSxDJiYoeD1mdW5jdGlvbihlKXt2YXIgdCxyO2lmKHQ9ZS5jdXJyZW50VGFyZ2V0
LHI9ZS5yZWxhdGVkVGFyZ2V0LHImJnQuY29udGFpbnMpcj10LmNvbnRhaW5zKHIpO2Vsc2UgZm9y
KDtyJiZyIT09dDspcj1yLnBhcmVudE5vZGU7cnx8KGU9bihlfHxfLmV2ZW50KSxlLnR5cGU9Im1v
dXNlb3V0Ij09PWUudHlwZT8ibW91c2VsZWF2ZSI6Im1vdXNlZW50ZXIiLGUudGFyZ2V0PXQsaShl
LGcpKX0pKSx1fHwiZm9jdXNpbiIhPT1iJiYiZm9jdXNvdXQiIT09Ynx8KHc9ITAsQz0iZm9jdXNp
biI9PT1iPyJmb2N1cyI6ImJsdXIiLHg9ZnVuY3Rpb24oZSl7ZT1uKGV8fF8uZXZlbnQpLGUudHlw
ZT0iZm9jdXMiPT09ZS50eXBlPyJmb2N1c2luIjoiZm9jdXNvdXQiLGkoZSxnKX0pLHY9c1tnXVti
XSx2PyJyZWFkeSI9PT1iJiZhLmRvbUxvYWRlZD9wKHt0eXBlOmJ9KTp2LnB1c2goe2Z1bmM6cCxz
Y29wZTpofSk6KHNbZ11bYl09dj1be2Z1bmM6cCxzY29wZTpofV0sdi5mYWtlTmFtZT1DLHYuY2Fw
dHVyZT13LHYubmF0aXZlSGFuZGxlcj14LCJyZWFkeSI9PT1iP3IodCx4LGEpOmUodCxDfHxiLHgs
dykpKTtyZXR1cm4gdD12PTAscH19LGEudW5iaW5kPWZ1bmN0aW9uKGUsbixyKXt2YXIgaSxvLGws
dSxkLGY7aWYoIWV8fDM9PT1lLm5vZGVUeXBlfHw4PT09ZS5ub2RlVHlwZSlyZXR1cm4gYTtpZihp
PWVbY10pe2lmKGY9c1tpXSxuKXtmb3Iobj1uLnNwbGl0KCIgIiksbD1uLmxlbmd0aDtsLS07KWlm
KGQ9bltsXSxvPWZbZF0pe2lmKHIpZm9yKHU9by5sZW5ndGg7dS0tOylpZihvW3VdLmZ1bmM9PT1y
KXt2YXIgcD1vLm5hdGl2ZUhhbmRsZXIsaD1vLmZha2VOYW1lLG09by5jYXB0dXJlO289by5zbGlj
ZSgwLHUpLmNvbmNhdChvLnNsaWNlKHUrMSkpLG8ubmF0aXZlSGFuZGxlcj1wLG8uZmFrZU5hbWU9
aCxvLmNhcHR1cmU9bSxmW2RdPW99ciYmMCE9PW8ubGVuZ3RofHwoZGVsZXRlIGZbZF0sdChlLG8u
ZmFrZU5hbWV8fGQsby5uYXRpdmVIYW5kbGVyLG8uY2FwdHVyZSkpfX1lbHNle2ZvcihkIGluIGYp
bz1mW2RdLHQoZSxvLmZha2VOYW1lfHxkLG8ubmF0aXZlSGFuZGxlcixvLmNhcHR1cmUpO2Y9e319
Zm9yKGQgaW4gZilyZXR1cm4gYTtkZWxldGUgc1tpXTt0cnl7ZGVsZXRlIGVbY119Y2F0Y2goZyl7
ZVtjXT1udWxsfX1yZXR1cm4gYX0sYS5maXJlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbztpZighZXx8
Mz09PWUubm9kZVR5cGV8fDg9PT1lLm5vZGVUeXBlKXJldHVybiBhO3I9bihudWxsLHIpLHIudHlw
ZT10LHIudGFyZ2V0PWU7ZG8gbz1lW2NdLG8mJmkocixvKSxlPWUucGFyZW50Tm9kZXx8ZS5vd25l
ckRvY3VtZW50fHxlLmRlZmF1bHRWaWV3fHxlLnBhcmVudFdpbmRvdzt3aGlsZShlJiYhci5pc1By
b3BhZ2F0aW9uU3RvcHBlZCgpKTtyZXR1cm4gYX0sYS5jbGVhbj1mdW5jdGlvbihlKXt2YXIgdCxu
LHI9YS51bmJpbmQ7aWYoIWV8fDM9PT1lLm5vZGVUeXBlfHw4PT09ZS5ub2RlVHlwZSlyZXR1cm4g
YTtpZihlW2NdJiZyKGUpLGUuZ2V0RWxlbWVudHNCeVRhZ05hbWV8fChlPWUuZG9jdW1lbnQpLGUm
JmUuZ2V0RWxlbWVudHNCeVRhZ05hbWUpZm9yKHIoZSksbj1lLmdldEVsZW1lbnRzQnlUYWdOYW1l
KCIqIiksdD1uLmxlbmd0aDt0LS07KWU9blt0XSxlW2NdJiZyKGUpO3JldHVybiBhfSxhLmRlc3Ry
b3k9ZnVuY3Rpb24oKXtzPXt9fSxhLmNhbmNlbD1mdW5jdGlvbihlKXtyZXR1cm4gZSYmKGUucHJl
dmVudERlZmF1bHQoKSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKSwhMX19dmFyIG89Im1j
ZS1kYXRhLSIsYT0vXig/Om1vdXNlfGNvbnRleHRtZW51KXxjbGljay8scz17a2V5TG9jYXRpb246
MSxsYXllclg6MSxsYXllclk6MSxyZXR1cm5WYWx1ZToxfTtyZXR1cm4gaS5FdmVudD1uZXcgaSxp
LkV2ZW50LmJpbmQod2luZG93LCJyZWFkeSIsZnVuY3Rpb24oKXt9KSxpfSkscihjLFtdLGZ1bmN0
aW9uKCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gbXQudGVzdChlKyIiKX1mdW5jdGlvbiBuKCl7dmFy
IGUsdD1bXTtyZXR1cm4gZT1mdW5jdGlvbihuLHIpe3JldHVybiB0LnB1c2gobis9IiAiKT5fLmNh
Y2hlTGVuZ3RoJiZkZWxldGUgZVt0LnNoaWZ0KCldLGVbbl09cixyfX1mdW5jdGlvbiByKGUpe3Jl
dHVybiBlW0ldPSEwLGV9ZnVuY3Rpb24gaShlKXt2YXIgdD1CLmNyZWF0ZUVsZW1lbnQoImRpdiIp
O3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2gobil7cmV0dXJuITF9ZmluYWxseXt0PW51bGx9fWZ1bmN0
aW9uIG8oZSx0LG4scil7dmFyIGksbyxhLHMsbCxjLGYscCxoLG07aWYoKHQ/dC5vd25lckRvY3Vt
ZW50fHx0OkYpIT09QiYmQSh0KSx0PXR8fEIsbj1ufHxbXSwhZXx8InN0cmluZyIhPXR5cGVvZiBl
KXJldHVybiBuO2lmKDEhPT0ocz10Lm5vZGVUeXBlKSYmOSE9PXMpcmV0dXJuW107aWYoTCYmIXIp
e2lmKGk9Z3QuZXhlYyhlKSlpZihhPWlbMV0pe2lmKDk9PT1zKXtpZihvPXQuZ2V0RWxlbWVudEJ5
SWQoYSksIW98fCFvLnBhcmVudE5vZGUpcmV0dXJuIG47aWYoby5pZD09PWEpcmV0dXJuIG4ucHVz
aChvKSxufWVsc2UgaWYodC5vd25lckRvY3VtZW50JiYobz10Lm93bmVyRG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoYSkpJiZPKHQsbykmJm8uaWQ9PT1hKXJldHVybiBuLnB1c2gobyksbn1lbHNle2lm
KGlbMl0pcmV0dXJuIFouYXBwbHkobix0LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpKSxuO2lmKChh
PWlbM10pJiZ6LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSlyZXR1cm4gWi5hcHBseShuLHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKSksbn1pZih6LnFz
YSYmIU0udGVzdChlKSl7aWYoZj0hMCxwPUksaD10LG09OT09PXMmJmUsMT09PXMmJiJvYmplY3Qi
IT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXtmb3IoYz11KGUpLChmPXQuZ2V0QXR0cmlidXRl
KCJpZCIpKT9wPWYucmVwbGFjZShidCwiXFwkJiIpOnQuc2V0QXR0cmlidXRlKCJpZCIscCkscD0i
W2lkPSciK3ArIiddICIsbD1jLmxlbmd0aDtsLS07KWNbbF09cCtkKGNbbF0pO2g9aHQudGVzdChl
KSYmdC5wYXJlbnROb2RlfHx0LG09Yy5qb2luKCIsIil9aWYobSl0cnl7cmV0dXJuIFouYXBwbHko
bixoLnF1ZXJ5U2VsZWN0b3JBbGwobSkpLG59Y2F0Y2goZyl7fWZpbmFsbHl7Znx8dC5yZW1vdmVB
dHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gYihlLnJlcGxhY2UobHQsIiQxIiksdCxuLHIpfWZ1bmN0
aW9uIGEoZSx0KXt2YXIgbj10JiZlLHI9biYmKH50LnNvdXJjZUluZGV4fHxZKS0ofmUuc291cmNl
SW5kZXh8fFkpO2lmKHIpcmV0dXJuIHI7aWYobilmb3IoO249bi5uZXh0U2libGluZzspaWYobj09
PXQpcmV0dXJuLTE7cmV0dXJuIGU/MTotMX1mdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbih0
KXt2YXIgbj10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PW4mJnQudHlw
ZT09PWV9fWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQubm9kZU5hbWUu
dG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PW58fCJidXR0b24iPT09bikmJnQudHlwZT09
PWV9fWZ1bmN0aW9uIGMoZSl7cmV0dXJuIHIoZnVuY3Rpb24odCl7cmV0dXJuIHQ9K3QscihmdW5j
dGlvbihuLHIpe2Zvcih2YXIgaSxvPWUoW10sbi5sZW5ndGgsdCksYT1vLmxlbmd0aDthLS07KW5b
aT1vW2FdXSYmKG5baV09IShyW2ldPW5baV0pKX0pfSl9ZnVuY3Rpb24gdShlLHQpe3ZhciBuLHIs
aSxhLHMsbCxjLHU9cVtlKyIgIl07aWYodSlyZXR1cm4gdD8wOnUuc2xpY2UoMCk7Zm9yKHM9ZSxs
PVtdLGM9Xy5wcmVGaWx0ZXI7czspeyghbnx8KHI9Y3QuZXhlYyhzKSkpJiYociYmKHM9cy5zbGlj
ZShyWzBdLmxlbmd0aCl8fHMpLGwucHVzaChpPVtdKSksbj0hMSwocj11dC5leGVjKHMpKSYmKG49
ci5zaGlmdCgpLGkucHVzaCh7dmFsdWU6bix0eXBlOnJbMF0ucmVwbGFjZShsdCwiICIpfSkscz1z
LnNsaWNlKG4ubGVuZ3RoKSk7Zm9yKGEgaW4gXy5maWx0ZXIpIShyPXB0W2FdLmV4ZWMocykpfHxj
W2FdJiYhKHI9Y1thXShyKSl8fChuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTphLG1h
dGNoZXM6cn0pLHM9cy5zbGljZShuLmxlbmd0aCkpO2lmKCFuKWJyZWFrfXJldHVybiB0P3MubGVu
Z3RoOnM/by5lcnJvcihlKTpxKGUsbCkuc2xpY2UoMCl9ZnVuY3Rpb24gZChlKXtmb3IodmFyIHQ9
MCxuPWUubGVuZ3RoLHI9IiI7bj50O3QrKylyKz1lW3RdLnZhbHVlO3JldHVybiByfWZ1bmN0aW9u
IGYoZSx0LG4pe3ZhciByPXQuZGlyLGk9biYmInBhcmVudE5vZGUiPT09cixvPVYrKztyZXR1cm4g
dC5maXJzdD9mdW5jdGlvbih0LG4sbyl7Zm9yKDt0PXRbcl07KWlmKDE9PT10Lm5vZGVUeXBlfHxp
KXJldHVybiBlKHQsbixvKX06ZnVuY3Rpb24odCxuLGEpe3ZhciBzLGwsYyx1PVcrIiAiK287aWYo
YSl7Zm9yKDt0PXRbcl07KWlmKCgxPT09dC5ub2RlVHlwZXx8aSkmJmUodCxuLGEpKXJldHVybiEw
fWVsc2UgZm9yKDt0PXRbcl07KWlmKDE9PT10Lm5vZGVUeXBlfHxpKWlmKGM9dFtJXXx8KHRbSV09
e30pLChsPWNbcl0pJiZsWzBdPT09dSl7aWYoKHM9bFsxXSk9PT0hMHx8cz09PXcpcmV0dXJuIHM9
PT0hMH1lbHNlIGlmKGw9Y1tyXT1bdV0sbFsxXT1lKHQsbixhKXx8dyxsWzFdPT09ITApcmV0dXJu
ITB9fWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGUubGVuZ3RoPjE/ZnVuY3Rpb24odCxuLHIpe2Zvcih2
YXIgaT1lLmxlbmd0aDtpLS07KWlmKCFlW2ldKHQsbixyKSlyZXR1cm4hMTtyZXR1cm4hMH06ZVsw
XX1mdW5jdGlvbiBoKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLGw9ZS5sZW5ndGgsYz1u
dWxsIT10O2w+cztzKyspKG89ZVtzXSkmJighbnx8bihvLHIsaSkpJiYoYS5wdXNoKG8pLGMmJnQu
cHVzaChzKSk7cmV0dXJuIGF9ZnVuY3Rpb24gbShlLHQsbixpLG8sYSl7cmV0dXJuIGkmJiFpW0ld
JiYoaT1tKGkpKSxvJiYhb1tJXSYmKG89bShvLGEpKSxyKGZ1bmN0aW9uKHIsYSxzLGwpe3ZhciBj
LHUsZCxmPVtdLHA9W10sbT1hLmxlbmd0aCxnPXJ8fHkodHx8IioiLHMubm9kZVR5cGU/W3NdOnMs
W10pLHY9IWV8fCFyJiZ0P2c6aChnLGYsZSxzLGwpLGI9bj9vfHwocj9lOm18fGkpP1tdOmE6djtp
ZihuJiZuKHYsYixzLGwpLGkpZm9yKGM9aChiLHApLGkoYyxbXSxzLGwpLHU9Yy5sZW5ndGg7dS0t
OykoZD1jW3VdKSYmKGJbcFt1XV09ISh2W3BbdV1dPWQpKTtpZihyKXtpZihvfHxlKXtpZihvKXtm
b3IoYz1bXSx1PWIubGVuZ3RoO3UtLTspKGQ9Ylt1XSkmJmMucHVzaCh2W3VdPWQpO28obnVsbCxi
PVtdLGMsbCl9Zm9yKHU9Yi5sZW5ndGg7dS0tOykoZD1iW3VdKSYmKGM9bz90dC5jYWxsKHIsZCk6
Zlt1XSk+LTEmJihyW2NdPSEoYVtjXT1kKSl9fWVsc2UgYj1oKGI9PT1hP2Iuc3BsaWNlKG0sYi5s
ZW5ndGgpOmIpLG8/byhudWxsLGEsYixsKTpaLmFwcGx5KGEsYil9KX1mdW5jdGlvbiBnKGUpe2Zv
cih2YXIgdCxuLHIsaT1lLmxlbmd0aCxvPV8ucmVsYXRpdmVbZVswXS50eXBlXSxhPW98fF8ucmVs
YXRpdmVbIiAiXSxzPW8/MTowLGw9ZihmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9LGEsITApLGM9
ZihmdW5jdGlvbihlKXtyZXR1cm4gdHQuY2FsbCh0LGUpPi0xfSxhLCEwKSx1PVtmdW5jdGlvbihl
LG4scil7cmV0dXJuIW8mJihyfHxuIT09ayl8fCgodD1uKS5ub2RlVHlwZT9sKGUsbixyKTpjKGUs
bixyKSl9XTtpPnM7cysrKWlmKG49Xy5yZWxhdGl2ZVtlW3NdLnR5cGVdKXU9W2YocCh1KSxuKV07
ZWxzZXtpZihuPV8uZmlsdGVyW2Vbc10udHlwZV0uYXBwbHkobnVsbCxlW3NdLm1hdGNoZXMpLG5b
SV0pe2ZvcihyPSsrcztpPnImJiFfLnJlbGF0aXZlW2Vbcl0udHlwZV07cisrKTtyZXR1cm4gbShz
PjEmJnAodSkscz4xJiZkKGUuc2xpY2UoMCxzLTEpKS5yZXBsYWNlKGx0LCIkMSIpLG4scj5zJiZn
KGUuc2xpY2UocyxyKSksaT5yJiZnKGU9ZS5zbGljZShyKSksaT5yJiZkKGUpKX11LnB1c2gobil9
cmV0dXJuIHAodSl9ZnVuY3Rpb24gdihlLHQpe3ZhciBuPTAsaT10Lmxlbmd0aD4wLGE9ZS5sZW5n
dGg+MCxzPWZ1bmN0aW9uKHIscyxsLGMsdSl7dmFyIGQsZixwLG09W10sZz0wLHY9IjAiLHk9ciYm
W10sYj1udWxsIT11LEM9ayx4PXJ8fGEmJl8uZmluZC5UQUcoIioiLHUmJnMucGFyZW50Tm9kZXx8
cyksTj1XKz1udWxsPT1DPzE6TWF0aC5yYW5kb20oKXx8LjE7Zm9yKGImJihrPXMhPT1CJiZzLHc9
bik7bnVsbCE9KGQ9eFt2XSk7disrKXtpZihhJiZkKXtmb3IoZj0wO3A9ZVtmKytdOylpZihwKGQs
cyxsKSl7Yy5wdXNoKGQpO2JyZWFrfWImJihXPU4sdz0rK24pfWkmJigoZD0hcCYmZCkmJmctLSxy
JiZ5LnB1c2goZCkpfWlmKGcrPXYsaSYmdiE9PWcpe2ZvcihmPTA7cD10W2YrK107KXAoeSxtLHMs
bCk7aWYocil7aWYoZz4wKWZvcig7di0tOyl5W3ZdfHxtW3ZdfHwobVt2XT1KLmNhbGwoYykpO209
aChtKX1aLmFwcGx5KGMsbSksYiYmIXImJm0ubGVuZ3RoPjAmJmcrdC5sZW5ndGg+MSYmby51bmlx
dWVTb3J0KGMpfXJldHVybiBiJiYoVz1OLGs9QykseX07cmV0dXJuIGk/cihzKTpzfWZ1bmN0aW9u
IHkoZSx0LG4pe2Zvcih2YXIgcj0wLGk9dC5sZW5ndGg7aT5yO3IrKylvKGUsdFtyXSxuKTtyZXR1
cm4gbn1mdW5jdGlvbiBiKGUsdCxuLHIpe3ZhciBpLG8sYSxzLGwsYz11KGUpO2lmKCFyJiYxPT09
Yy5sZW5ndGgpe2lmKG89Y1swXT1jWzBdLnNsaWNlKDApLG8ubGVuZ3RoPjImJiJJRCI9PT0oYT1v
WzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmTCYmXy5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZih0
PShfLmZpbmQuSUQoYS5tYXRjaGVzWzBdLnJlcGxhY2UoeHQsd3QpLHQpfHxbXSlbMF0sIXQpcmV0
dXJuIG47ZT1lLnNsaWNlKG8uc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWZvcihpPXB0Lm5lZWRzQ29u
dGV4dC50ZXN0KGUpPzA6by5sZW5ndGg7aS0tJiYoYT1vW2ldLCFfLnJlbGF0aXZlW3M9YS50eXBl
XSk7KWlmKChsPV8uZmluZFtzXSkmJihyPWwoYS5tYXRjaGVzWzBdLnJlcGxhY2UoeHQsd3QpLGh0
LnRlc3Qob1swXS50eXBlKSYmdC5wYXJlbnROb2RlfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksZT1y
Lmxlbmd0aCYmZChvKSwhZSlyZXR1cm4gWi5hcHBseShuLHIpLG47YnJlYWt9fXJldHVybiBTKGUs
Yykocix0LCFMLG4saHQudGVzdChlKSksbn1mdW5jdGlvbiBDKCl7fXZhciB4LHcsXyxOLEUsUyxr
LFQsUixBLEIsRCxMLE0sSCxQLE8sST0ic2l6emxlIistbmV3IERhdGUsRj13aW5kb3cuZG9jdW1l
bnQsej17fSxXPTAsVj0wLFU9bigpLHE9bigpLCQ9bigpLGo9ITEsSz1mdW5jdGlvbigpe3JldHVy
biAwfSxHPXR5cGVvZiB0LFk9MTw8MzEsWD1bXSxKPVgucG9wLFE9WC5wdXNoLFo9WC5wdXNoLGV0
PVguc2xpY2UsdHQ9WC5pbmRleE9mfHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPXRoaXMubGVu
Z3RoO24+dDt0KyspaWYodGhpc1t0XT09PWUpcmV0dXJuIHQ7cmV0dXJuLTF9LG50PSJbXFx4MjBc
XHRcXHJcXG5cXGZdIixydD0iKD86XFxcXC58W1xcdy1dfFteXFx4MDAtXFx4YTBdKSsiLGl0PXJ0
LnJlcGxhY2UoInciLCJ3IyIpLG90PSIoWypeJHwhfl0/PSkiLGF0PSJcXFsiK250KyIqKCIrcnQr
IikiK250KyIqKD86IitvdCtudCsiKig/OihbJ1wiXSkoKD86XFxcXC58W15cXFxcXSkqPylcXDN8
KCIraXQrIil8KXwpIitudCsiKlxcXSIsc3Q9IjooIitydCsiKSg/OlxcKCgoWydcIl0pKCg/Olxc
XFwufFteXFxcXF0pKj8pXFwzfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrYXQucmVwbGFjZSgz
LDgpKyIpKil8LiopXFwpfCkiLGx0PW5ldyBSZWdFeHAoIl4iK250KyIrfCgoPzpefFteXFxcXF0p
KD86XFxcXC4pKikiK250KyIrJCIsImciKSxjdD1uZXcgUmVnRXhwKCJeIitudCsiKiwiK250KyIq
IiksdXQ9bmV3IFJlZ0V4cCgiXiIrbnQrIiooW1xceDIwXFx0XFxyXFxuXFxmPit+XSkiK250KyIq
IiksZHQ9bmV3IFJlZ0V4cChzdCksZnQ9bmV3IFJlZ0V4cCgiXiIraXQrIiQiKSxwdD17SUQ6bmV3
IFJlZ0V4cCgiXiMoIitydCsiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitydCsiKSIpLE5B
TUU6bmV3IFJlZ0V4cCgiXlxcW25hbWU9WydcIl0/KCIrcnQrIilbJ1wiXT9cXF0iKSxUQUc6bmV3
IFJlZ0V4cCgiXigiK3J0LnJlcGxhY2UoInciLCJ3KiIpKyIpIiksQVRUUjpuZXcgUmVnRXhwKCJe
IithdCksUFNFVURPOm5ldyBSZWdFeHAoIl4iK3N0KSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5
fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK250KyIqKGV2
ZW58b2RkfCgoWystXXwpKFxcZCopbnwpIitudCsiKig/OihbKy1dfCkiK250KyIqKFxcZCspfCkp
IitudCsiKlxcKXwpIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitudCsiKls+K35d
fDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitudCsiKigoPzotXFxk
KT9cXGQqKSIrbnQrIipcXCl8KSg/PVteLV18JCkiLCJpIil9LGh0PS9bXHgyMFx0XHJcblxmXSpb
K35dLyxtdD0vXltee10rXHtccypcW25hdGl2ZSBjb2RlLyxndD0vXig/OiMoW1x3XC1dKyl8KFx3
Kyl8XC4oW1x3XC1dKykpJC8sdnQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQv
aSx5dD0vXmhcZCQvaSxidD0vJ3xcXC9nLEN0PS9cPVtceDIwXHRcclxuXGZdKihbXiciXF1dKilb
XHgyMFx0XHJcblxmXSpcXS9nLHh0PS9cXChbXGRhLWZBLUZdezEsNn1bXHgyMFx0XHJcblxmXT98
LikvZyx3dD1mdW5jdGlvbihlLHQpe3ZhciBuPSIweCIrdC02NTUzNjtyZXR1cm4gbiE9PW4/dDow
Pm4/U3RyaW5nLmZyb21DaGFyQ29kZShuKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKG4+PjEw
fDU1Mjk2LDEwMjMmbnw1NjMyMCl9O3RyeXtaLmFwcGx5KFg9ZXQuY2FsbChGLmNoaWxkTm9kZXMp
LEYuY2hpbGROb2RlcyksWFtGLmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChfdCl7
Wj17YXBwbHk6WC5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtRLmFwcGx5KGUsZXQuY2FsbCh0KSl9OmZ1
bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9MDtlW24rK109dFtyKytdOyk7ZS5sZW5n
dGg9bi0xfX19RT1vLmlzWE1MPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJihlLm93bmVyRG9jdW1lbnR8
fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gdD8iSFRNTCIhPT10Lm5vZGVOYW1lOiExfSxBPW8u
c2V0RG9jdW1lbnQ9ZnVuY3Rpb24obil7dmFyIHI9bj9uLm93bmVyRG9jdW1lbnR8fG46RjtyZXR1
cm4gciE9PUImJjk9PT1yLm5vZGVUeXBlJiZyLmRvY3VtZW50RWxlbWVudD8oQj1yLEQ9ci5kb2N1
bWVudEVsZW1lbnQsTD0hRShyKSx6LmdldEVsZW1lbnRzQnlUYWdOYW1lPWkoZnVuY3Rpb24oZSl7
cmV0dXJuIGUuYXBwZW5kQ2hpbGQoci5jcmVhdGVDb21tZW50KCIiKSksIWUuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoIioiKS5sZW5ndGh9KSx6LmF0dHJpYnV0ZXM9aShmdW5jdGlvbihlKXtlLmlubmVy
SFRNTD0iPHNlbGVjdD48L3NlbGVjdD4iO3ZhciB0PXR5cGVvZiBlLmxhc3RDaGlsZC5nZXRBdHRy
aWJ1dGUoIm11bHRpcGxlIik7cmV0dXJuImJvb2xlYW4iIT09dCYmInN0cmluZyIhPT10fSksei5n
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lPWkoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5uZXJIVE1MPSI8
ZGl2IGNsYXNzPSdoaWRkZW4gZSc+PC9kaXY+PGRpdiBjbGFzcz0naGlkZGVuJz48L2Rpdj4iLGUu
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVu
Z3RoPyhlLmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiLDI9PT1lLmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoImUiKS5sZW5ndGgpOiExfSksei5nZXRCeU5hbWU9aShmdW5jdGlvbihlKXtlLmlkPUkrMCxl
LmFwcGVuZENoaWxkKEIuY3JlYXRlRWxlbWVudCgiYSIpKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLEkp
LGUuYXBwZW5kQ2hpbGQoQi5jcmVhdGVFbGVtZW50KCJpIikpLnNldEF0dHJpYnV0ZSgibmFtZSIs
SSksRC5hcHBlbmRDaGlsZChlKTt2YXIgdD1yLmdldEVsZW1lbnRzQnlOYW1lJiZyLmdldEVsZW1l
bnRzQnlOYW1lKEkpLmxlbmd0aD09PTIrci5nZXRFbGVtZW50c0J5TmFtZShJKzApLmxlbmd0aDty
ZXR1cm4gRC5yZW1vdmVDaGlsZChlKSx0fSksei5zb3J0RGV0YWNoZWQ9aShmdW5jdGlvbihlKXty
ZXR1cm4gZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKEIuY3JlYXRlRWxlbWVudCgiZGl2IikpfSksXy5hdHRySGFuZGxlPWkoZnVuY3Rpb24oZSl7
cmV0dXJuIGUuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IixlLmZpcnN0Q2hpbGQmJnR5cGVv
ZiBlLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlIT09RyYmIiMiPT09ZS5maXJzdENoaWxkLmdldEF0
dHJpYnV0ZSgiaHJlZiIpfSk/e306e2hyZWY6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmli
dXRlKCJocmVmIiwyKX0sdHlwZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoInR5
cGUiKX19LHouZ2V0QnlOYW1lPyhfLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgdC5n
ZXRFbGVtZW50QnlJZCE9PUcmJkwpe3ZhciBuPXQuZ2V0RWxlbWVudEJ5SWQoZSk7cmV0dXJuIG4m
Jm4ucGFyZW50Tm9kZT9bbl06W119fSxfLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJl
cGxhY2UoeHQsd3QpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImlk
Iik9PT10fX0pOihfLmZpbmQuSUQ9ZnVuY3Rpb24oZSxuKXtpZih0eXBlb2Ygbi5nZXRFbGVtZW50
QnlJZCE9PUcmJkwpe3ZhciByPW4uZ2V0RWxlbWVudEJ5SWQoZSk7cmV0dXJuIHI/ci5pZD09PWV8
fHR5cGVvZiByLmdldEF0dHJpYnV0ZU5vZGUhPT1HJiZyLmdldEF0dHJpYnV0ZU5vZGUoImlkIiku
dmFsdWU9PT1lP1tyXTp0OltdfX0sXy5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBs
YWNlKHh0LHd0KTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49dHlwZW9mIGUuZ2V0QXR0cmlidXRl
Tm9kZSE9PUcmJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbiYmbi52YWx1ZT09PXR9
fSksXy5maW5kLlRBRz16LmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGUsdCl7cmV0dXJu
IHR5cGVvZiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Rz90LmdldEVsZW1lbnRzQnlUYWdOYW1l
KGUpOnZvaWQgMH06ZnVuY3Rpb24oZSx0KXt2YXIgbixyPVtdLGk9MCxvPXQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoZSk7aWYoIioiPT09ZSl7Zm9yKDtuPW9baSsrXTspMT09PW4ubm9kZVR5cGUmJnIu
cHVzaChuKTtyZXR1cm4gcn1yZXR1cm4gb30sXy5maW5kLk5BTUU9ei5nZXRCeU5hbWUmJmZ1bmN0
aW9uKGUsdCl7cmV0dXJuIHR5cGVvZiB0LmdldEVsZW1lbnRzQnlOYW1lIT09Rz90LmdldEVsZW1l
bnRzQnlOYW1lKG5hbWUpOnZvaWQgMH0sXy5maW5kLkNMQVNTPXouZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSYmZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHlwZW9mIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSE9PUcmJkw/dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGUpOnZvaWQgMH0sSD1bXSxNPVsiOmZv
Y3VzIl0sKHoucXNhPWUoci5xdWVyeVNlbGVjdG9yQWxsKSkmJihpKGZ1bmN0aW9uKGUpe2UuaW5u
ZXJIVE1MPSI8c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+Iixl
LnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fE0ucHVzaCgiXFxbIitudCsi
Kig/OmNoZWNrZWR8ZGlzYWJsZWR8aXNtYXB8bXVsdGlwbGV8cmVhZG9ubHl8c2VsZWN0ZWR8dmFs
dWUpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8TS5wdXNoKCI6Y2hl
Y2tlZCIpfSksaShmdW5jdGlvbihlKXtlLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J2hpZGRlbicg
aT0nJy8+IixlLnF1ZXJ5U2VsZWN0b3JBbGwoIltpXj0nJ10iKS5sZW5ndGgmJk0ucHVzaCgiWype
JF09IitudCsiKig/OlwiXCJ8JycpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxl
bmd0aHx8TS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGUucXVlcnlTZWxlY3RvckFsbCgi
Kiw6eCIpLE0ucHVzaCgiLC4qOiIpfSkpLCh6Lm1hdGNoZXNTZWxlY3Rvcj1lKFA9RC5tYXRjaGVz
U2VsZWN0b3J8fEQubW96TWF0Y2hlc1NlbGVjdG9yfHxELndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8
RC5vTWF0Y2hlc1NlbGVjdG9yfHxELm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmkoZnVuY3Rpb24oZSl7
ei5kaXNjb25uZWN0ZWRNYXRjaD1QLmNhbGwoZSwiZGl2IiksUC5jYWxsKGUsIltzIT0nJ106eCIp
LEgucHVzaCgiIT0iLHN0KX0pLE09bmV3IFJlZ0V4cChNLmpvaW4oInwiKSksSD1ILmxlbmd0aCYm
bmV3IFJlZ0V4cChILmpvaW4oInwiKSksTz1lKEQuY29udGFpbnMpfHxELmNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uP2Z1bmN0aW9uKGUsdCl7dmFyIG49OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVs
ZW1lbnQ6ZSxyPXQmJnQucGFyZW50Tm9kZTtyZXR1cm4gZT09PXJ8fCEoIXJ8fDEhPT1yLm5vZGVU
eXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhyKTplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u
JiYxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpKSl9OmZ1bmN0aW9uKGUsdCl7aWYodClm
b3IoO3Q9dC5wYXJlbnROb2RlOylpZih0PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0sSz1ELmNvbXBh
cmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGo9ITAsMDt2
YXIgbj10LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u
JiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpO3JldHVybiBuPzEmbnx8VCYmdC5jb21wYXJl
RG9jdW1lbnRQb3NpdGlvbihlKT09PW4/ZT09PXJ8fE8oRixlKT8tMTp0PT09cnx8TyhGLHQpPzE6
Uj90dC5jYWxsKFIsZSktdHQuY2FsbChSLHQpOjA6NCZuPy0xOjE6ZS5jb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbj8tMToxfTpmdW5jdGlvbihlLHQpe3ZhciBuLGk9MCxvPWUucGFyZW50Tm9kZSxzPXQu
cGFyZW50Tm9kZSxsPVtlXSxjPVt0XTtpZihlPT09dClyZXR1cm4gaj0hMCwwO2lmKCFvfHwhcyly
ZXR1cm4gZT09PXI/LTE6dD09PXI/MTpvPy0xOnM/MTowO2lmKG89PT1zKXJldHVybiBhKGUsdCk7
Zm9yKG49ZTtuPW4ucGFyZW50Tm9kZTspbC51bnNoaWZ0KG4pO2ZvcihuPXQ7bj1uLnBhcmVudE5v
ZGU7KWMudW5zaGlmdChuKTtmb3IoO2xbaV09PT1jW2ldOylpKys7cmV0dXJuIGk/YShsW2ldLGNb
aV0pOmxbaV09PT1GPy0xOmNbaV09PT1GPzE6MH0sQik6Qn0sby5tYXRjaGVzPWZ1bmN0aW9uKGUs
dCl7cmV0dXJuIG8oZSxudWxsLG51bGwsdCl9LG8ubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGUs
dCl7aWYoKGUub3duZXJEb2N1bWVudHx8ZSkhPT1CJiZBKGUpLHQ9dC5yZXBsYWNlKEN0LCI9JyQx
J10iKSx6Lm1hdGNoZXNTZWxlY3RvciYmTCYmKCFIfHwhSC50ZXN0KHQpKSYmIU0udGVzdCh0KSl0
cnl7dmFyIG49UC5jYWxsKGUsdCk7aWYobnx8ei5kaXNjb25uZWN0ZWRNYXRjaHx8ZS5kb2N1bWVu
dCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBufWNhdGNoKHIpe31yZXR1cm4gbyh0
LEIsbnVsbCxbZV0pLmxlbmd0aD4wfSxvLmNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUu
b3duZXJEb2N1bWVudHx8ZSkhPT1CJiZBKGUpLE8oZSx0KX0sby5hdHRyPWZ1bmN0aW9uKGUsdCl7
dmFyIG47cmV0dXJuKGUub3duZXJEb2N1bWVudHx8ZSkhPT1CJiZBKGUpLEwmJih0PXQudG9Mb3dl
ckNhc2UoKSksKG49Xy5hdHRySGFuZGxlW3RdKT9uKGUpOiFMfHx6LmF0dHJpYnV0ZXM/ZS5nZXRB
dHRyaWJ1dGUodCk6KChuPWUuZ2V0QXR0cmlidXRlTm9kZSh0KSl8fGUuZ2V0QXR0cmlidXRlKHQp
KSYmZVt0XT09PSEwP3Q6biYmbi5zcGVjaWZpZWQ/bi52YWx1ZTpudWxsfSxvLmVycm9yPWZ1bmN0
aW9uKGUpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVz
c2lvbjogIitlKX0sby51bmlxdWVTb3J0PWZ1bmN0aW9uKGUpe3ZhciB0LG49W10scj0wLGk9MDtp
ZihqPSF6LmRldGVjdER1cGxpY2F0ZXMsVD0hei5zb3J0RGV0YWNoZWQsUj0hei5zb3J0U3RhYmxl
JiZlLnNsaWNlKDApLGUuc29ydChLKSxqKXtmb3IoO3Q9ZVtpKytdOyl0PT09ZVtpXSYmKHI9bi5w
dXNoKGkpKTtmb3IoO3ItLTspZS5zcGxpY2UobltyXSwxKX1yZXR1cm4gZX0sTj1vLmdldFRleHQ9
ZnVuY3Rpb24oZSl7dmFyIHQsbj0iIixyPTAsaT1lLm5vZGVUeXBlO2lmKGkpe2lmKDE9PT1pfHw5
PT09aXx8MTE9PT1pKXtpZigic3RyaW5nIj09dHlwZW9mIGUudGV4dENvbnRlbnQpcmV0dXJuIGUu
dGV4dENvbnRlbnQ7Zm9yKGU9ZS5maXJzdENoaWxkO2U7ZT1lLm5leHRTaWJsaW5nKW4rPU4oZSl9
ZWxzZSBpZigzPT09aXx8ND09PWkpcmV0dXJuIGUubm9kZVZhbHVlfWVsc2UgZm9yKDt0PWVbcl07
cisrKW4rPU4odCk7cmV0dXJuIG59LF89by5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0
ZVBzZXVkbzpyLG1hdGNoOnB0LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2Rl
IixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJs
aW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FU
VFI6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS5yZXBsYWNlKHh0LHd0KSxlWzNdPShlWzRd
fHxlWzVdfHwiIikucmVwbGFjZSh4dCx3dCksIn49Ij09PWVbMl0mJihlWzNdPSIgIitlWzNdKyIg
IiksZS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnRvTG93
ZXJDYXNlKCksIm50aCI9PT1lWzFdLnNsaWNlKDAsMyk/KGVbM118fG8uZXJyb3IoZVswXSksZVs0
XT0rKGVbNF0/ZVs1XSsoZVs2XXx8MSk6MiooImV2ZW4iPT09ZVszXXx8Im9kZCI9PT1lWzNdKSks
ZVs1XT0rKGVbN10rZVs4XXx8Im9kZCI9PT1lWzNdKSk6ZVszXSYmby5lcnJvcihlWzBdKSxlfSxQ
U0VVRE86ZnVuY3Rpb24oZSl7dmFyIHQsbj0hZVs1XSYmZVsyXTtyZXR1cm4gcHQuQ0hJTEQudGVz
dChlWzBdKT9udWxsOihlWzRdP2VbMl09ZVs0XTpuJiZkdC50ZXN0KG4pJiYodD11KG4sITApKSYm
KHQ9bi5pbmRleE9mKCIpIixuLmxlbmd0aC10KS1uLmxlbmd0aCkmJihlWzBdPWVbMF0uc2xpY2Uo
MCx0KSxlWzJdPW4uc2xpY2UoMCx0KSksZS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0
aW9uKGUpe3JldHVybiIqIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06KGU9ZS5yZXBsYWNlKHh0
LHd0KS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVOYW1lJiZ0Lm5vZGVO
YW1lLnRvTG93ZXJDYXNlKCk9PT1lfSl9LENMQVNTOmZ1bmN0aW9uKGUpe3ZhciB0PVVbZSsiICJd
O3JldHVybiB0fHwodD1uZXcgUmVnRXhwKCIoXnwiK250KyIpIitlKyIoIitudCsifCQpIikpJiZV
KGUsZnVuY3Rpb24oZSl7cmV0dXJuIHQudGVzdChlLmNsYXNzTmFtZXx8dHlwZW9mIGUuZ2V0QXR0
cmlidXRlIT09RyYmZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9u
KGUsdCxuKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIGk9by5hdHRyKHIsZSk7cmV0dXJuIG51bGw9
PWk/IiE9Ij09PXQ6dD8oaSs9IiIsIj0iPT09dD9pPT09bjoiIT0iPT09dD9pIT09bjoiXj0iPT09
dD9uJiYwPT09aS5pbmRleE9mKG4pOiIqPSI9PT10P24mJmkuaW5kZXhPZihuKT4tMToiJD0iPT09
dD9uJiZpLnNsaWNlKC1uLmxlbmd0aCk9PT1uOiJ+PSI9PT10PygiICIraSsiICIpLmluZGV4T2Yo
bik+LTE6Inw9Ij09PXQ/aT09PW58fGkuc2xpY2UoMCxuLmxlbmd0aCsxKT09PW4rIi0iOiExKToh
MH19LENISUxEOmZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG89Im50aCIhPT1lLnNsaWNlKDAsMyks
YT0ibGFzdCIhPT1lLnNsaWNlKC00KSxzPSJvZi10eXBlIj09PXQ7cmV0dXJuIDE9PT1yJiYwPT09
aT9mdW5jdGlvbihlKXtyZXR1cm4hIWUucGFyZW50Tm9kZX06ZnVuY3Rpb24odCxuLGwpe3ZhciBj
LHUsZCxmLHAsaCxtPW8hPT1hPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIsZz10LnBh
cmVudE5vZGUsdj1zJiZ0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkseT0hbCYmIXM7aWYoZyl7aWYo
byl7Zm9yKDttOyl7Zm9yKGQ9dDtkPWRbbV07KWlmKHM/ZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgp
PT09djoxPT09ZC5ub2RlVHlwZSlyZXR1cm4hMTtoPW09Im9ubHkiPT09ZSYmIWgmJiJuZXh0U2li
bGluZyJ9cmV0dXJuITB9aWYoaD1bYT9nLmZpcnN0Q2hpbGQ6Zy5sYXN0Q2hpbGRdLGEmJnkpe2Zv
cih1PWdbSV18fChnW0ldPXt9KSxjPXVbZV18fFtdLHA9Y1swXT09PVcmJmNbMV0sZj1jWzBdPT09
VyYmY1syXSxkPXAmJmcuY2hpbGROb2Rlc1twXTtkPSsrcCYmZCYmZFttXXx8KGY9cD0wKXx8aC5w
b3AoKTspaWYoMT09PWQubm9kZVR5cGUmJisrZiYmZD09PXQpe3VbZV09W1cscCxmXTticmVha319
ZWxzZSBpZih5JiYoYz0odFtJXXx8KHRbSV09e30pKVtlXSkmJmNbMF09PT1XKWY9Y1sxXTtlbHNl
IGZvcig7KGQ9KytwJiZkJiZkW21dfHwoZj1wPTApfHxoLnBvcCgpKSYmKChzP2Qubm9kZU5hbWUu
dG9Mb3dlckNhc2UoKSE9PXY6MSE9PWQubm9kZVR5cGUpfHwhKytmfHwoeSYmKChkW0ldfHwoZFtJ
XT17fSkpW2VdPVtXLGZdKSxkIT09dCkpOyk7cmV0dXJuIGYtPWksZj09PXJ8fGYlcj09PTAmJmYv
cj49MH19fSxQU0VVRE86ZnVuY3Rpb24oZSx0KXt2YXIgbixpPV8ucHNldWRvc1tlXXx8Xy5zZXRG
aWx0ZXJzW2UudG9Mb3dlckNhc2UoKV18fG8uZXJyb3IoInVuc3VwcG9ydGVkIHBzZXVkbzogIitl
KTtyZXR1cm4gaVtJXT9pKHQpOmkubGVuZ3RoPjE/KG49W2UsZSwiIix0XSxfLnNldEZpbHRlcnMu
aGFzT3duUHJvcGVydHkoZS50b0xvd2VyQ2FzZSgpKT9yKGZ1bmN0aW9uKGUsbil7Zm9yKHZhciBy
LG89aShlLHQpLGE9by5sZW5ndGg7YS0tOylyPXR0LmNhbGwoZSxvW2FdKSxlW3JdPSEobltyXT1v
W2FdKX0pOmZ1bmN0aW9uKGUpe3JldHVybiBpKGUsMCxuKX0pOml9fSxwc2V1ZG9zOntub3Q6cihm
dW5jdGlvbihlKXt2YXIgdD1bXSxuPVtdLGk9UyhlLnJlcGxhY2UobHQsIiQxIikpO3JldHVybiBp
W0ldP3IoZnVuY3Rpb24oZSx0LG4scil7Zm9yKHZhciBvLGE9aShlLG51bGwscixbXSkscz1lLmxl
bmd0aDtzLS07KShvPWFbc10pJiYoZVtzXT0hKHRbc109bykpfSk6ZnVuY3Rpb24oZSxyLG8pe3Jl
dHVybiB0WzBdPWUsaSh0LG51bGwsbyxuKSwhbi5wb3AoKX19KSxoYXM6cihmdW5jdGlvbihlKXty
ZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG8oZSx0KS5sZW5ndGg+MH19KSxjb250YWluczpyKGZ1
bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4odC50ZXh0Q29udGVudHx8dC5pbm5l
clRleHR8fE4odCkpLmluZGV4T2YoZSk+LTF9fSksbGFuZzpyKGZ1bmN0aW9uKGUpe3JldHVybiBm
dC50ZXN0KGV8fCIiKXx8by5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitlKSxlPWUucmVwbGFj
ZSh4dCx3dCkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbih0KXt2YXIgbjtkbyBpZihuPUw/dC5sYW5n
OnQuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHx0LmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVy
biBuPW4udG9Mb3dlckNhc2UoKSxuPT09ZXx8MD09PW4uaW5kZXhPZihlKyItIik7d2hpbGUoKHQ9
dC5wYXJlbnROb2RlKSYmMT09PXQubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlv
bihlKXt2YXIgdD13aW5kb3cubG9jYXRpb24mJndpbmRvdy5sb2NhdGlvbi5oYXNoO3JldHVybiB0
JiZ0LnNsaWNlKDEpPT09ZS5pZH0scm9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PUR9LGZvY3Vz
OmZ1bmN0aW9uKGUpe3JldHVybiBlPT09Qi5hY3RpdmVFbGVtZW50JiYoIUIuaGFzRm9jdXN8fEIu
aGFzRm9jdXMoKSkmJiEhKGUudHlwZXx8ZS5ocmVmfHx+ZS50YWJJbmRleCl9LGVuYWJsZWQ6ZnVu
Y3Rpb24oZSl7cmV0dXJuIGUuZGlzYWJsZWQ9PT0hMX0sZGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0
dXJuIGUuZGlzYWJsZWQ9PT0hMH0sY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1l
LnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiEhZS5jaGVja2VkfHwib3B0aW9uIj09
PXQmJiEhZS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9k
ZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsZS5zZWxlY3RlZD09PSEwfSxlbXB0eTpmdW5j
dGlvbihlKXtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpaWYoZS5ub2RlTmFt
ZT4iQCJ8fDM9PT1lLm5vZGVUeXBlfHw0PT09ZS5ub2RlVHlwZSlyZXR1cm4hMTtyZXR1cm4hMH0s
cGFyZW50OmZ1bmN0aW9uKGUpe3JldHVybiFfLnBzZXVkb3MuZW1wdHkoZSl9LGhlYWRlcjpmdW5j
dGlvbihlKXtyZXR1cm4geXQudGVzdChlLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oZSl7cmV0
dXJuIHZ0LnRlc3QoZS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVO
YW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwi
YnV0dG9uIj09PXR9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImlucHV0Ij09PWUubm9k
ZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRy
aWJ1dGUoInR5cGUiKSl8fHQudG9Mb3dlckNhc2UoKT09PWUudHlwZSl9LGZpcnN0OmMoZnVuY3Rp
b24oKXtyZXR1cm5bMF19KSxsYXN0OmMoZnVuY3Rpb24oZSx0KXtyZXR1cm5bdC0xXX0pLGVxOmMo
ZnVuY3Rpb24oZSx0LG4pe3JldHVyblswPm4/bit0Om5dfSksZXZlbjpjKGZ1bmN0aW9uKGUsdCl7
Zm9yKHZhciBuPTA7dD5uO24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksb2RkOmMoZnVuY3Rpb24o
ZSx0KXtmb3IodmFyIG49MTt0Pm47bis9MillLnB1c2gobik7cmV0dXJuIGV9KSxsdDpjKGZ1bmN0
aW9uKGUsdCxuKXtmb3IodmFyIHI9MD5uP24rdDpuOy0tcj49MDspZS5wdXNoKHIpO3JldHVybiBl
fSksZ3Q6YyhmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTA+bj9uK3Q6bjsrK3I8dDspZS5wdXNo
KHIpO3JldHVybiBlfSl9fTtmb3IoeCBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBh
c3N3b3JkOiEwLGltYWdlOiEwfSlfLnBzZXVkb3NbeF09cyh4KTtmb3IoeCBpbntzdWJtaXQ6ITAs
cmVzZXQ6ITB9KV8ucHNldWRvc1t4XT1sKHgpO3JldHVybiBTPW8uY29tcGlsZT1mdW5jdGlvbihl
LHQpe3ZhciBuLHI9W10saT1bXSxvPSRbZSsiICJdO2lmKCFvKXtmb3IodHx8KHQ9dShlKSksbj10
Lmxlbmd0aDtuLS07KW89Zyh0W25dKSxvW0ldP3IucHVzaChvKTppLnB1c2gobyk7bz0kKGUsdihp
LHIpKX1yZXR1cm4gb30sXy5wc2V1ZG9zLm50aD1fLnBzZXVkb3MuZXEsQy5wcm90b3R5cGU9Xy5m
aWx0ZXJzPV8ucHNldWRvcyxfLnNldEZpbHRlcnM9bmV3IEMsei5zb3J0U3RhYmxlPUkuc3BsaXQo
IiIpLnNvcnQoSykuam9pbigiIik9PT1JLEEoKSxbMCwwXS5zb3J0KEspLHouZGV0ZWN0RHVwbGlj
YXRlcz1qLG99KSxyKHUsW2wsY10sZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiByKGUpe3JldHVybiJ1
bmRlZmluZWQiIT10eXBlb2YgZX1mdW5jdGlvbiBpKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2Yg
ZX1mdW5jdGlvbiBvKGUpe3ZhciB0LG4scjtmb3Iocj12LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQ9
di5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksci5pbm5lckhUTUw9ZTtuPXIuZmlyc3RDaGlsZDsp
dC5hcHBlbmRDaGlsZChuKTtyZXR1cm4gdH1mdW5jdGlvbiBhKGUsdCxuKXt2YXIgcjtpZigic3Ry
aW5nIj09dHlwZW9mIHQpdD1vKHQpO2Vsc2UgaWYodC5sZW5ndGgpe2ZvcihyPTA7cjx0Lmxlbmd0
aDtyKyspYShlLHRbcl0sbik7cmV0dXJuIGV9Zm9yKHI9ZS5sZW5ndGg7ci0tOyluLmNhbGwoZVty
XSx0LnBhcmVudE5vZGU/dDp0KTtyZXR1cm4gZX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGUmJnQm
Ji0xIT09KCIgIitlLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiAiK3QrIiAiKX1mdW5jdGlvbiBs
KGUsdCl7dmFyIG47Zm9yKGU9ZXx8W10sInN0cmluZyI9PXR5cGVvZiBlJiYoZT1lLnNwbGl0KCIg
IikpLHQ9dHx8e30sbj1lLmxlbmd0aDtuLS07KXRbZVtuXV09e307cmV0dXJuIHR9ZnVuY3Rpb24g
YyhlLHQpe3JldHVybiBuZXcgYy5mbi5pbml0KGUsdCl9ZnVuY3Rpb24gdShlKXt2YXIgdD1hcmd1
bWVudHMsbixyLGk7Zm9yKHI9MTtyPHQubGVuZ3RoO3IrKyl7bj10W3JdO2ZvcihpIGluIG4pZVtp
XT1uW2ldfXJldHVybiBlfWZ1bmN0aW9uIGQoZSl7dmFyIHQ9W10sbixyO2ZvcihuPTAscj1lLmxl
bmd0aDtyPm47bisrKXRbbl09ZVtuXTtyZXR1cm4gdH1mdW5jdGlvbiBmKGUsdCl7dmFyIG47aWYo
dC5pbmRleE9mKXJldHVybiB0LmluZGV4T2YoZSk7Zm9yKG49dC5sZW5ndGg7bi0tOylpZih0W25d
PT09ZSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBwKGUpe3JldHVybiBudWxsPT09ZXx8ZT09
PXQ/IiI6KCIiK2UpLnJlcGxhY2UoTiwiIil9ZnVuY3Rpb24gaChlLHQpe3ZhciBuLHIsaSxvLGE7
aWYoZSlpZihuPWUubGVuZ3RoLG49PT1vKXtmb3IociBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHko
cikmJihhPWVbcl0sdC5jYWxsKGEsYSxyKT09PSExKSlicmVha31lbHNlIGZvcihpPTA7bj5pJiYo
YT1lW2ldLHQuY2FsbChhLGEscikhPT0hMSk7aSsrKTtyZXR1cm4gZX1mdW5jdGlvbiBtKGUsbixy
KXtmb3IodmFyIGk9W10sbz1lW25dO28mJjkhPT1vLm5vZGVUeXBlJiYocj09PXR8fDEhPT1vLm5v
ZGVUeXBlfHwhYyhvKS5pcyhyKSk7KTE9PT1vLm5vZGVUeXBlJiZpLnB1c2gobyksbz1vW25dO3Jl
dHVybiBpfWZ1bmN0aW9uIGcoZSx0LG4scil7Zm9yKHZhciBpPVtdO2U7ZT1lW25dKXImJmUubm9k
ZVR5cGUhPT1yfHxlPT09dHx8aS5wdXNoKGUpO3JldHVybiBpfXZhciB2PWRvY3VtZW50LHk9QXJy
YXkucHJvdG90eXBlLnB1c2gsYj1BcnJheS5wcm90b3R5cGUuc2xpY2UsQz0vXig/OlteIzxdKig8
W1x3XFddKz4pW14+XSokfCMoW1x3XC1dKikkKS8seD1lLkV2ZW50LHc9bCgiZmlsbE9wYWNpdHkg
Zm9udFdlaWdodCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JwaGFucyB3aWRvd3MgekluZGV4IHpvb20i
KSxfPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1P
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9LE49L15ccyp8XHMqJC9nO3JldHVybiBj
LmZuPWMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpjLHNlbGVjdG9yOiIiLGxlbmd0aDowLGluaXQ6
ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHIsYTtpZighZSlyZXR1cm4gbjtpZihlLm5vZGVUeXBl
KXJldHVybiBuLmNvbnRleHQ9blswXT1lLG4ubGVuZ3RoPTEsbjtpZihpKGUpKXtpZihyPSI8Ij09
PWUuY2hhckF0KDApJiYiPiI9PT1lLmNoYXJBdChlLmxlbmd0aC0xKSYmZS5sZW5ndGg+PTM/W251
bGwsZSxudWxsXTpDLmV4ZWMoZSksIXIpcmV0dXJuIGModHx8ZG9jdW1lbnQpLmZpbmQoZSk7aWYo
clsxXSlmb3IoYT1vKGUpLmZpcnN0Q2hpbGQ7YTspdGhpcy5hZGQoYSksYT1hLm5leHRTaWJsaW5n
O2Vsc2V7aWYoYT12LmdldEVsZW1lbnRCeUlkKHJbMl0pLGEuaWQhPT1yWzJdKXJldHVybiBuLmZp
bmQoZSk7bi5sZW5ndGg9MSxuWzBdPWF9fWVsc2UgdGhpcy5hZGQoZSk7cmV0dXJuIG59LHRvQXJy
YXk6ZnVuY3Rpb24oKXtyZXR1cm4gZCh0aGlzKX0sYWRkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7
cmV0dXJuIF8oZSk/eS5hcHBseSh0LGUpOmUgaW5zdGFuY2VvZiBjP3QuYWRkKGUudG9BcnJheSgp
KTp5LmNhbGwodCxlKSx0fSxhdHRyOmZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcztpZigib2JqZWN0
Ij09dHlwZW9mIGUpaChlLGZ1bmN0aW9uKGUsdCl7aS5hdHRyKHQsZSl9KTtlbHNle2lmKCFyKG4p
KXJldHVybiBpWzBdJiYxPT09aVswXS5ub2RlVHlwZT9pWzBdLmdldEF0dHJpYnV0ZShlKTp0O3Ro
aXMuZWFjaChmdW5jdGlvbigpezE9PT10aGlzLm5vZGVUeXBlJiZ0aGlzLnNldEF0dHJpYnV0ZShl
LG4pfSl9cmV0dXJuIGl9LGNzczpmdW5jdGlvbihlLG4pe3ZhciBpPXRoaXM7aWYoIm9iamVjdCI9
PXR5cGVvZiBlKWgoZSxmdW5jdGlvbihlLHQpe2kuY3NzKHQsZSl9KTtlbHNle2lmKGU9ZS5yZXBs
YWNlKC8tKFxEKS9nLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pLCFyKG4p
KXJldHVybiBpWzBdP2lbMF0uc3R5bGVbZV06dDsibnVtYmVyIiE9dHlwZW9mIG58fHdbZV18fChu
Kz0icHgiKSxpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN0eWxlOyJvcGFjaXR5Ij09PWUm
JnRoaXMucnVudGltZVN0eWxlJiYidW5kZWZpbmVkIj09dHlwZW9mIHRoaXMucnVudGltZVN0eWxl
Lm9wYWNpdHkmJih0LmZpbHRlcj0iIj09PW4/IiI6ImFscGhhKG9wYWNpdHk9IisxMDAqbisiKSIp
O3RyeXt0W2VdPW59Y2F0Y2gocil7fX0pfXJldHVybiBpfSxyZW1vdmU6ZnVuY3Rpb24oKXtmb3Io
dmFyIGU9dGhpcyx0LG49dGhpcy5sZW5ndGg7bi0tOyl0PWVbbl0seC5jbGVhbih0KSx0LnBhcmVu
dE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVu
Y3Rpb24oKXtmb3IodmFyIGU9dGhpcyx0LG49dGhpcy5sZW5ndGg7bi0tOylmb3IodD1lW25dO3Qu
Zmlyc3RDaGlsZDspdC5yZW1vdmVDaGlsZCh0LmZpcnN0Q2hpbGQpO3JldHVybiB0aGlzfSxodG1s
OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbjtpZihyKGUpKXtmb3Iobj10Lmxlbmd0aDtuLS07KXRb
bl0uaW5uZXJIVE1MPWU7cmV0dXJuIHR9cmV0dXJuIHRbMF0/dFswXS5pbm5lckhUTUw6IiJ9LHRl
eHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuO2lmKHIoZSkpe2ZvcihuPXQubGVuZ3RoO24tLTsp
dFtuXS5pbm5lclRleHQ9dFswXS50ZXh0Q29udGVudD1lO3JldHVybiB0fXJldHVybiB0WzBdP3Rb
MF0uaW5uZXJUZXh0fHx0WzBdLnRleHRDb250ZW50OiIifSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1
cm4gYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXsxPT09dGhpcy5ub2RlVHlwZSYmdGhpcy5h
cHBlbmRDaGlsZChlKX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcyxhcmd1bWVu
dHMsZnVuY3Rpb24oZSl7MT09PXRoaXMubm9kZVR5cGUmJnRoaXMuaW5zZXJ0QmVmb3JlKGUsdGhp
cy5maXJzdENoaWxkKX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBlWzBd
JiZlWzBdLnBhcmVudE5vZGU/YShlLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5v
ZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcy5uZXh0U2libGluZyl9KTplfSxhZnRlcjpmdW5jdGlvbigp
e3ZhciBlPXRoaXM7cmV0dXJuIGVbMF0mJmVbMF0ucGFyZW50Tm9kZT9hKGUsYXJndW1lbnRzLGZ1
bmN0aW9uKGUpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pOmV9LGFwcGVu
ZFRvOmZ1bmN0aW9uKGUpe3JldHVybiBjKGUpLmFwcGVuZCh0aGlzKSx0aGlzfSxhZGRDbGFzczpm
dW5jdGlvbihlKXtyZXR1cm4gdGhpcy50b2dnbGVDbGFzcyhlLCEwKX0scmVtb3ZlQ2xhc3M6ZnVu
Y3Rpb24oZSl7cmV0dXJuIHRoaXMudG9nZ2xlQ2xhc3MoZSwhMSl9LHRvZ2dsZUNsYXNzOmZ1bmN0
aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4tMSE9PWUuaW5kZXhPZigiICIpP2goZS5zcGxpdCgi
ICIpLGZ1bmN0aW9uKCl7bi50b2dnbGVDbGFzcyh0aGlzLHQpfSk6bi5lYWNoKGZ1bmN0aW9uKG4p
e3ZhciByO3MobixlKSE9PXQmJihyPW4uY2xhc3NOYW1lLHQ/bi5jbGFzc05hbWUrPXI/IiAiK2U6
ZTpuLmNsYXNzTmFtZT1wKCgiICIrcisiICIpLnJlcGxhY2UoIiAiK2UrIiAiLCIgIikpKX0pLG59
LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiBzKHRoaXNbMF0sZSl9LGVhY2g6ZnVuY3Rpb24o
ZSl7cmV0dXJuIGgodGhpcyxlKX0sb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lYWNoKGZ1
bmN0aW9uKCl7eC5iaW5kKHRoaXMsZSx0KX0pfSxvZmY6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhp
cy5lYWNoKGZ1bmN0aW9uKCl7eC51bmJpbmQodGhpcyxlLHQpfSl9LHNob3c6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5jc3MoImRpc3BsYXkiLCIiKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlz
LmNzcygiZGlzcGxheSIsIm5vbmUiKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGMoYi5h
cHBseSh0aGlzLGFyZ3VtZW50cykpfSxlcTpmdW5jdGlvbihlKXtyZXR1cm4tMT09PWU/dGhpcy5z
bGljZShlKTp0aGlzLnNsaWNlKGUsK2UrMSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu
ZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LHJlcGxhY2VXaXRoOmZ1
bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRbMF0mJnRbMF0ucGFyZW50Tm9kZS5yZXBsYWNl
Q2hpbGQoYyhlKVswXSx0WzBdKSx0fSx3cmFwOmZ1bmN0aW9uKGUpe3JldHVybiBlPWMoZSlbMF0s
dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWUuY2xvbmVOb2RlKCExKTt0LnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKG4sdCksbi5hcHBlbmRDaGlsZCh0KX0pfSx1bndyYXA6ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMsdD1lLmZpcnN0
Q2hpbGQsbjt0OyluPXQsdD10Lm5leHRTaWJsaW5nLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo
bixlKX0pfSxjbG9uZTpmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rp
b24oKXtlLnB1c2godGhpcy5jbG9uZU5vZGUoITApKX0pLGMoZSl9LGZpbmQ6ZnVuY3Rpb24oZSl7
dmFyIHQsbixyPVtdO2Zvcih0PTAsbj10aGlzLmxlbmd0aDtuPnQ7dCsrKWMuZmluZChlLHRoaXNb
dF0scik7cmV0dXJuIGMocil9LHB1c2g6eSxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX0s
dShjLHtleHRlbmQ6dSx0b0FycmF5OmQsaW5BcnJheTpmLGlzQXJyYXk6XyxlYWNoOmgsdHJpbTpw
LG1ha2VNYXA6bCxmaW5kOm4sZXhwcjpuLnNlbGVjdG9ycyx1bmlxdWU6bi51bmlxdWVTb3J0LHRl
eHQ6bi5nZXRUZXh0LGlzWE1MRG9jOm4uaXNYTUwsY29udGFpbnM6bi5jb250YWlucyxmaWx0ZXI6
ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuJiYoZT0iOm5vdCgiK2UrIikiKSx0PTE9PT10Lmxlbmd0
aD9jLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHRbMF0sZSk/W3RbMF1dOltdOmMuZmluZC5tYXRjaGVz
KGUsdCl9fSksaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4g
dCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4gbShl
LCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQpe3JldHVybiBtKGUsInBh
cmVudE5vZGUiLHQpfSxuZXh0OmZ1bmN0aW9uKGUpe3JldHVybiBnKGUsIm5leHRTaWJsaW5nIiwx
KX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gZyhlLCJwcmV2aW91c1NpYmxpbmciLDEpfSxuZXh0
Tm9kZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSwibmV4dFNpYmxpbmciKX0scHJldk5vZGVzOmZ1
bmN0aW9uKGUpe3JldHVybiBnKGUsInByZXZpb3VzU2libGluZyIpfSxjaGlsZHJlbjpmdW5jdGlv
bihlKXtyZXR1cm4gZyhlLmZpcnN0Q2hpbGQsIm5leHRTaWJsaW5nIiwxKX0sY29udGVudHM6ZnVu
Y3Rpb24oZSl7cmV0dXJuIGQoKCJpZnJhbWUiPT09ZS5ub2RlTmFtZT9lLmNvbnRlbnREb2N1bWVu
dHx8ZS5jb250ZW50V2luZG93LmRvY3VtZW50OmUpLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oZSx0
KXtjLmZuW2VdPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMsaTtpZihyLmxlbmd0aD4xKXRocm93IG5l
dyBFcnJvcigiRG9tUXVlcnkgb25seSBzdXBwb3J0cyB0cmF2ZXJzZSBmdW5jdGlvbnMgb24gYSBz
aW5nbGUgbm9kZS4iKTtyZXR1cm4gclswXSYmKGk9dChyWzBdLG4pKSxpPWMoaSksbiYmInBhcmVu
dHNVbnRpbCIhPT1lP2kuZmlsdGVyKG4pOml9fSksYy5mbi5maWx0ZXI9ZnVuY3Rpb24oZSl7cmV0
dXJuIGMuZmlsdGVyKGUpfSxjLmZuLmlzPWZ1bmN0aW9uKGUpe3JldHVybiEhZSYmdGhpcy5maWx0
ZXIoZSkubGVuZ3RoPjB9LGMuZm4uaW5pdC5wcm90b3R5cGU9Yy5mbixjfSkscihkLFtdLGZ1bmN0
aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihlLHQsbixyKXtmdW5jdGlvbiBp
KGUpe3JldHVybiBlPXBhcnNlSW50KGUsMTApLnRvU3RyaW5nKDE2KSxlLmxlbmd0aD4xP2U6IjAi
K2UKK31yZXR1cm4iIyIraSh0KStpKG4pK2kocil9dmFyIHI9L3JnYlxzKlwoXHMqKFswLTldKylc
cyosXHMqKFswLTldKylccyosXHMqKFswLTldKylccypcKS9naSxpPS8oPzp1cmwoPzooPzpcKFxz
KlwiKFteXCJdKylcIlxzKlwpKXwoPzpcKFxzKlwnKFteXCddKylcJ1xzKlwpKXwoPzpcKFxzKihb
Xilcc10rKVxzKlwpKSkpfCg/OlwnKFteXCddKylcJyl8KD86XCIoW15cIl0rKVwiKS9naSxvPS9c
cyooW146XSspOlxzKihbXjtdKyk7Py9nLGE9L1xzKyQvLHMsbCxjPXt9LHUsZD0iXHVmZWZmIjtm
b3IoZT1lfHx7fSx1PSgiXFxcIiBcXCcgXFw7IFxcOiA7IDogIitkKS5zcGxpdCgiICIpLGw9MDts
PHUubGVuZ3RoO2wrKyljW3VbbF1dPWQrbCxjW2QrbF09dVtsXTtyZXR1cm57dG9IZXg6ZnVuY3Rp
b24oZSl7cmV0dXJuIGUucmVwbGFjZShyLG4pfSxwYXJzZTpmdW5jdGlvbih0KXtmdW5jdGlvbiBz
KGUsdCxuKXt2YXIgcixpLG8sYTtpZihyPW1bZSsiLXRvcCIrdF0sciYmKGk9bVtlKyItcmlnaHQi
K3RdLGkmJihvPW1bZSsiLWJvdHRvbSIrdF0sbyYmKGE9bVtlKyItbGVmdCIrdF0pKSkpe3ZhciBz
PVtyLGksbyxhXTtmb3IobD1zLmxlbmd0aC0xO2wtLSYmc1tsXT09PXNbbCsxXTspO2w+LTEmJm58
fChtW2UrdF09LTE9PWw/c1swXTpzLmpvaW4oIiAiKSxkZWxldGUgbVtlKyItdG9wIit0XSxkZWxl
dGUgbVtlKyItcmlnaHQiK3RdLGRlbGV0ZSBtW2UrIi1ib3R0b20iK3RdLGRlbGV0ZSBtW2UrIi1s
ZWZ0Iit0XSl9fWZ1bmN0aW9uIHUoZSl7dmFyIHQ9bVtlXSxuO2lmKHQpe2Zvcih0PXQuc3BsaXQo
IiAiKSxuPXQubGVuZ3RoO24tLTspaWYodFtuXSE9PXRbMF0pcmV0dXJuITE7cmV0dXJuIG1bZV09
dFswXSwhMH19ZnVuY3Rpb24gZChlLHQsbixyKXt1KHQpJiZ1KG4pJiZ1KHIpJiYobVtlXT1tW3Rd
KyIgIittW25dKyIgIittW3JdLGRlbGV0ZSBtW3RdLGRlbGV0ZSBtW25dLGRlbGV0ZSBtW3JdKX1m
dW5jdGlvbiBmKGUpe3JldHVybiBiPSEwLGNbZV19ZnVuY3Rpb24gcChlLHQpe3JldHVybiBiJiYo
ZT1lLnJlcGxhY2UoL1x1RkVGRlswLTldL2csZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV19KSksdHx8
KGU9ZS5yZXBsYWNlKC9cXChbXCdcIjs6XSkvZywiJDEiKSksZX1mdW5jdGlvbiBoKHQsbixyLGks
byxhKXtpZihvPW98fGEpcmV0dXJuIG89cChvKSwiJyIrby5yZXBsYWNlKC9cJy9nLCJcXCciKSsi
JyI7aWYobj1wKG58fHJ8fGkpLCFlLmFsbG93X3NjcmlwdF91cmxzKXt2YXIgcz1uLnJlcGxhY2Uo
L1tcc1xyXG5dKy8sIiIpO2lmKC8oamF2YXx2YilzY3JpcHQ6L2kudGVzdChzKSlyZXR1cm4iIjtp
ZighZS5hbGxvd19zdmdfZGF0YV91cmxzJiYvXmRhdGE6aW1hZ2VcL3N2Zy9pLnRlc3QocykpcmV0
dXJuIiJ9cmV0dXJuIEMmJihuPUMuY2FsbCh4LG4sInN0eWxlIikpLCJ1cmwoJyIrbi5yZXBsYWNl
KC9cJy9nLCJcXCciKSsiJykifXZhciBtPXt9LGcsdix5LGIsQz1lLnVybF9jb252ZXJ0ZXIseD1l
LnVybF9jb252ZXJ0ZXJfc2NvcGV8fHRoaXM7aWYodCl7Zm9yKHQ9dC5yZXBsYWNlKC9bXHUwMDAw
LVx1MDAxRl0vZywiIiksdD10LnJlcGxhY2UoL1xcW1wiXCc7Olx1RkVGRl0vZyxmKS5yZXBsYWNl
KC9cIlteXCJdK1wifFwnW15cJ10rXCcvZyxmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9b
OzpdL2csZil9KTtnPW8uZXhlYyh0KTspe2lmKHY9Z1sxXS5yZXBsYWNlKGEsIiIpLnRvTG93ZXJD
YXNlKCkseT1nWzJdLnJlcGxhY2UoYSwiIikseT15LnJlcGxhY2UoL1xcWzAtOWEtZl0rL2csZnVu
Y3Rpb24oZSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZS5zdWJzdHIoMSks
MTYpKX0pLHYmJnkubGVuZ3RoPjApe2lmKCFlLmFsbG93X3NjcmlwdF91cmxzJiYoImJlaGF2aW9y
Ij09dnx8L2V4cHJlc3Npb25ccypcKHxcL1wqfFwqXC8vLnRlc3QoeSkpKWNvbnRpbnVlOyJmb250
LXdlaWdodCI9PT12JiYiNzAwIj09PXk/eT0iYm9sZCI6KCJjb2xvciI9PT12fHwiYmFja2dyb3Vu
ZC1jb2xvciI9PT12KSYmKHk9eS50b0xvd2VyQ2FzZSgpKSx5PXkucmVwbGFjZShyLG4pLHk9eS5y
ZXBsYWNlKGksaCksbVt2XT1iP3AoeSwhMCk6eX1vLmxhc3RJbmRleD1nLmluZGV4K2dbMF0ubGVu
Z3RofXMoImJvcmRlciIsIiIsITApLHMoImJvcmRlciIsIi13aWR0aCIpLHMoImJvcmRlciIsIi1j
b2xvciIpLHMoImJvcmRlciIsIi1zdHlsZSIpLHMoInBhZGRpbmciLCIiKSxzKCJtYXJnaW4iLCIi
KSxkKCJib3JkZXIiLCJib3JkZXItd2lkdGgiLCJib3JkZXItc3R5bGUiLCJib3JkZXItY29sb3Ii
KSwibWVkaXVtIG5vbmUiPT09bS5ib3JkZXImJmRlbGV0ZSBtLmJvcmRlciwibm9uZSI9PT1tWyJi
b3JkZXItaW1hZ2UiXSYmZGVsZXRlIG1bImJvcmRlci1pbWFnZSJdfXJldHVybiBtfSxzZXJpYWxp
emU6ZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiByKG4pe3ZhciByLG8sYSxsO2lmKHI9dC5zdHlsZXNb
bl0pZm9yKG89MCxhPXIubGVuZ3RoO2E+bztvKyspbj1yW29dLGw9ZVtuXSxsIT09cyYmbC5sZW5n
dGg+MCYmKGkrPShpLmxlbmd0aD4wPyIgIjoiIikrbisiOiAiK2wrIjsiKX12YXIgaT0iIixvLGE7
aWYobiYmdCYmdC5zdHlsZXMpcigiKiIpLHIobik7ZWxzZSBmb3IobyBpbiBlKWE9ZVtvXSxhIT09
cyYmYS5sZW5ndGg+MCYmKGkrPShpLmxlbmd0aD4wPyIgIjoiIikrbysiOiAiK2ErIjsiKTtyZXR1
cm4gaX19fX0pLHIoZixbXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLHQpe2Z1bmN0aW9u
IG4oZSxuLHIsaSl7dmFyIG8sYTtpZihlKXtpZighaSYmZVtuXSlyZXR1cm4gZVtuXTtpZihlIT10
KXtpZihvPWVbcl0pcmV0dXJuIG87Zm9yKGE9ZS5wYXJlbnROb2RlO2EmJmEhPXQ7YT1hLnBhcmVu
dE5vZGUpaWYobz1hW3JdKXJldHVybiBvfX19dmFyIHI9ZTt0aGlzLmN1cnJlbnQ9ZnVuY3Rpb24o
KXtyZXR1cm4gcn0sdGhpcy5uZXh0PWZ1bmN0aW9uKGUpe3JldHVybiByPW4ociwiZmlyc3RDaGls
ZCIsIm5leHRTaWJsaW5nIixlKX0sdGhpcy5wcmV2PWZ1bmN0aW9uKGUpe3JldHVybiByPW4ociwi
bGFzdENoaWxkIiwicHJldmlvdXNTaWJsaW5nIixlKX19fSkscihwLFtdLGZ1bmN0aW9uKCl7ZnVu
Y3Rpb24gZShlKXtyZXR1cm4gbnVsbD09PWV8fGU9PT10PyIiOigiIitlKS5yZXBsYWNlKG0sIiIp
fWZ1bmN0aW9uIG4oZSxuKXtyZXR1cm4gbj8iYXJyYXkiPT1uJiZnKGUpPyEwOnR5cGVvZiBlPT1u
OmUhPT10fWZ1bmN0aW9uIHIoZSl7dmFyIHQ9W10sbixyO2ZvcihuPTAscj1lLmxlbmd0aDtyPm47
bisrKXRbbl09ZVtuXTtyZXR1cm4gdH1mdW5jdGlvbiBpKGUsdCxuKXt2YXIgcjtmb3IoZT1lfHxb
XSx0PXR8fCIsIiwic3RyaW5nIj09dHlwZW9mIGUmJihlPWUuc3BsaXQodCkpLG49bnx8e30scj1l
Lmxlbmd0aDtyLS07KW5bZVtyXV09e307cmV0dXJuIG59ZnVuY3Rpb24gbyhlLG4scil7dmFyIGks
bztpZighZSlyZXR1cm4gMDtpZihyPXJ8fGUsZS5sZW5ndGghPT10KXtmb3IoaT0wLG89ZS5sZW5n
dGg7bz5pO2krKylpZihuLmNhbGwocixlW2ldLGksZSk9PT0hMSlyZXR1cm4gMH1lbHNlIGZvcihp
IGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShpKSYmbi5jYWxsKHIsZVtpXSxpLGUpPT09ITEpcmV0
dXJuIDA7cmV0dXJuIDF9ZnVuY3Rpb24gYShlLHQpe3ZhciBuPVtdO3JldHVybiBvKGUsZnVuY3Rp
b24oZSl7bi5wdXNoKHQoZSkpfSksbn1mdW5jdGlvbiBzKGUsdCl7dmFyIG49W107cmV0dXJuIG8o
ZSxmdW5jdGlvbihlKXsoIXR8fHQoZSkpJiZuLnB1c2goZSl9KSxufWZ1bmN0aW9uIGwoZSx0LG4p
e3ZhciByPXRoaXMsaSxvLGEscyxsLGM9MDtpZihlPS9eKChzdGF0aWMpICk/KFtcdy5dKykoOihb
XHcuXSspKT8vLmV4ZWMoZSksYT1lWzNdLm1hdGNoKC8oXnxcLikoXHcrKSQvaSlbMl0sbz1yLmNy
ZWF0ZU5TKGVbM10ucmVwbGFjZSgvXC5cdyskLywiIiksbiksIW9bYV0pe2lmKCJzdGF0aWMiPT1l
WzJdKXJldHVybiBvW2FdPXQsdm9pZCh0aGlzLm9uQ3JlYXRlJiZ0aGlzLm9uQ3JlYXRlKGVbMl0s
ZVszXSxvW2FdKSk7dFthXXx8KHRbYV09ZnVuY3Rpb24oKXt9LGM9MSksb1thXT10W2FdLHIuZXh0
ZW5kKG9bYV0ucHJvdG90eXBlLHQpLGVbNV0mJihpPXIucmVzb2x2ZShlWzVdKS5wcm90b3R5cGUs
cz1lWzVdLm1hdGNoKC9cLihcdyspJC9pKVsxXSxsPW9bYV0sb1thXT1jP2Z1bmN0aW9uKCl7cmV0
dXJuIGlbc10uYXBwbHkodGhpcyxhcmd1bWVudHMpfTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBh
cmVudD1pW3NdLGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxvW2FdLnByb3RvdHlwZVthXT1vW2Fd
LHIuZWFjaChpLGZ1bmN0aW9uKGUsdCl7b1thXS5wcm90b3R5cGVbdF09aVt0XX0pLHIuZWFjaCh0
LGZ1bmN0aW9uKGUsdCl7aVt0XT9vW2FdLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiB0
aGlzLnBhcmVudD1pW3RdLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTp0IT1hJiYob1thXS5wcm90
b3R5cGVbdF09ZSl9KSksci5lYWNoKHRbInN0YXRpYyJdLGZ1bmN0aW9uKGUsdCl7b1thXVt0XT1l
fSl9fWZ1bmN0aW9uIGMoZSx0KXt2YXIgbixyO2lmKGUpZm9yKG49MCxyPWUubGVuZ3RoO3I+bjtu
KyspaWYoZVtuXT09PXQpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gdShlLG4pe3ZhciByLGks
byxhPWFyZ3VtZW50cyxzO2ZvcihyPTEsaT1hLmxlbmd0aDtpPnI7cisrKXtuPWFbcl07Zm9yKG8g
aW4gbiluLmhhc093blByb3BlcnR5KG8pJiYocz1uW29dLHMhPT10JiYoZVtvXT1zKSl9cmV0dXJu
IGV9ZnVuY3Rpb24gZChlLHQsbixyKXtyPXJ8fHRoaXMsZSYmKG4mJihlPWVbbl0pLG8oZSxmdW5j
dGlvbihlLGkpe3JldHVybiB0LmNhbGwocixlLGksbik9PT0hMT8hMTp2b2lkIGQoZSx0LG4scil9
KSl9ZnVuY3Rpb24gZihlLHQpe3ZhciBuLHI7Zm9yKHQ9dHx8d2luZG93LGU9ZS5zcGxpdCgiLiIp
LG49MDtuPGUubGVuZ3RoO24rKylyPWVbbl0sdFtyXXx8KHRbcl09e30pLHQ9dFtyXTtyZXR1cm4g
dH1mdW5jdGlvbiBwKGUsdCl7dmFyIG4scjtmb3IodD10fHx3aW5kb3csZT1lLnNwbGl0KCIuIiks
bj0wLHI9ZS5sZW5ndGg7cj5uJiYodD10W2Vbbl1dLHQpO24rKyk7cmV0dXJuIHR9ZnVuY3Rpb24g
aCh0LHIpe3JldHVybiF0fHxuKHQsImFycmF5Iik/dDphKHQuc3BsaXQocnx8IiwiKSxlKX12YXIg
bT0vXlxzKnxccyokL2csZz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iW29iamVj
dCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfTtyZXR1cm57dHJp
bTplLGlzQXJyYXk6ZyxpczpuLHRvQXJyYXk6cixtYWtlTWFwOmksZWFjaDpvLG1hcDphLGdyZXA6
cyxpbkFycmF5OmMsZXh0ZW5kOnUsY3JlYXRlOmwsd2FsazpkLGNyZWF0ZU5TOmYscmVzb2x2ZTpw
LGV4cGxvZGU6aH19KSxyKGgsW3BdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobil7ZnVuY3Rpb24g
cigpe3JldHVybiBILmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKX1mdW5jdGlvbiBpKGUsdCl7XyhG
LGUsdCl9ZnVuY3Rpb24gbyhlLHQpe18oeixlLHQpfWZ1bmN0aW9uIGEoZSl7aShlLnBhcmVudE5v
ZGUsaihlKSl9ZnVuY3Rpb24gcyhlKXtpKGUucGFyZW50Tm9kZSxqKGUpKzEpfWZ1bmN0aW9uIGwo
ZSl7byhlLnBhcmVudE5vZGUsaihlKSl9ZnVuY3Rpb24gYyhlKXtvKGUucGFyZW50Tm9kZSxqKGUp
KzEpfWZ1bmN0aW9uIHUoZSl7ZT8oTVtVXT1NW1ZdLE1bcV09TVtXXSk6KE1bVl09TVtVXSxNW1dd
PU1bcV0pLE0uY29sbGFwc2VkPUZ9ZnVuY3Rpb24gZChlKXthKGUpLGMoZSl9ZnVuY3Rpb24gZihl
KXtpKGUsMCksbyhlLDE9PT1lLm5vZGVUeXBlP2UuY2hpbGROb2Rlcy5sZW5ndGg6ZS5ub2RlVmFs
dWUubGVuZ3RoKX1mdW5jdGlvbiBwKGUsdCl7dmFyIG49TVtWXSxyPU1bV10saT1NW1VdLG89TVtx
XSxhPXQuc3RhcnRDb250YWluZXIscz10LnN0YXJ0T2Zmc2V0LGw9dC5lbmRDb250YWluZXIsYz10
LmVuZE9mZnNldDtyZXR1cm4gMD09PWU/dyhuLHIsYSxzKToxPT09ZT93KGksbyxhLHMpOjI9PT1l
P3coaSxvLGwsYyk6Mz09PWU/dyhuLHIsbCxjKTp2b2lkIDB9ZnVuY3Rpb24gaCgpe04oSSl9ZnVu
Y3Rpb24gbSgpe3JldHVybiBOKFApfWZ1bmN0aW9uIGcoKXtyZXR1cm4gTihPKX1mdW5jdGlvbiB2
KGUpe3ZhciB0PXRoaXNbVl0scj10aGlzW1ddLGksbzszIT09dC5ub2RlVHlwZSYmNCE9PXQubm9k
ZVR5cGV8fCF0Lm5vZGVWYWx1ZT8odC5jaGlsZE5vZGVzLmxlbmd0aD4wJiYobz10LmNoaWxkTm9k
ZXNbcl0pLG8/dC5pbnNlcnRCZWZvcmUoZSxvKTozPT10Lm5vZGVUeXBlP24uaW5zZXJ0QWZ0ZXIo
ZSx0KTp0LmFwcGVuZENoaWxkKGUpKTpyP3I+PXQubm9kZVZhbHVlLmxlbmd0aD9uLmluc2VydEFm
dGVyKGUsdCk6KGk9dC5zcGxpdFRleHQociksdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLGkp
KTp0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdCl9ZnVuY3Rpb24geShlKXt2YXIgdD1NLmV4
dHJhY3RDb250ZW50cygpO00uaW5zZXJ0Tm9kZShlKSxlLmFwcGVuZENoaWxkKHQpLE0uc2VsZWN0
Tm9kZShlKX1mdW5jdGlvbiBiKCl7cmV0dXJuICQobmV3IHQobikse3N0YXJ0Q29udGFpbmVyOk1b
Vl0sc3RhcnRPZmZzZXQ6TVtXXSxlbmRDb250YWluZXI6TVtVXSxlbmRPZmZzZXQ6TVtxXSxjb2xs
YXBzZWQ6TS5jb2xsYXBzZWQsY29tbW9uQW5jZXN0b3JDb250YWluZXI6TS5jb21tb25BbmNlc3Rv
ckNvbnRhaW5lcn0pfWZ1bmN0aW9uIEMoZSx0KXt2YXIgbjtpZigzPT1lLm5vZGVUeXBlKXJldHVy
biBlO2lmKDA+dClyZXR1cm4gZTtmb3Iobj1lLmZpcnN0Q2hpbGQ7biYmdD4wOyktLXQsbj1uLm5l
eHRTaWJsaW5nO3JldHVybiBuP246ZX1mdW5jdGlvbiB4KCl7cmV0dXJuIE1bVl09PU1bVV0mJk1b
V109PU1bcV19ZnVuY3Rpb24gdyhlLHQscixpKXt2YXIgbyxhLHMsbCxjLHU7aWYoZT09cilyZXR1
cm4gdD09aT8wOmk+dD8tMToxO2ZvcihvPXI7byYmby5wYXJlbnROb2RlIT1lOylvPW8ucGFyZW50
Tm9kZTtpZihvKXtmb3IoYT0wLHM9ZS5maXJzdENoaWxkO3MhPW8mJnQ+YTspYSsrLHM9cy5uZXh0
U2libGluZztyZXR1cm4gYT49dD8tMToxfWZvcihvPWU7byYmby5wYXJlbnROb2RlIT1yOylvPW8u
cGFyZW50Tm9kZTtpZihvKXtmb3IoYT0wLHM9ci5maXJzdENoaWxkO3MhPW8mJmk+YTspYSsrLHM9
cy5uZXh0U2libGluZztyZXR1cm4gaT5hPy0xOjF9Zm9yKGw9bi5maW5kQ29tbW9uQW5jZXN0b3Io
ZSxyKSxjPWU7YyYmYy5wYXJlbnROb2RlIT1sOyljPWMucGFyZW50Tm9kZTtmb3IoY3x8KGM9bCks
dT1yO3UmJnUucGFyZW50Tm9kZSE9bDspdT11LnBhcmVudE5vZGU7aWYodXx8KHU9bCksYz09dSly
ZXR1cm4gMDtmb3Iocz1sLmZpcnN0Q2hpbGQ7czspe2lmKHM9PWMpcmV0dXJuLTE7aWYocz09dSly
ZXR1cm4gMTtzPXMubmV4dFNpYmxpbmd9fWZ1bmN0aW9uIF8oZSx0LHIpe3ZhciBpLG87Zm9yKGU/
KE1bVl09dCxNW1ddPXIpOihNW1VdPXQsTVtxXT1yKSxpPU1bVV07aS5wYXJlbnROb2RlOylpPWku
cGFyZW50Tm9kZTtmb3Iobz1NW1ZdO28ucGFyZW50Tm9kZTspbz1vLnBhcmVudE5vZGU7bz09aT93
KE1bVl0sTVtXXSxNW1VdLE1bcV0pPjAmJk0uY29sbGFwc2UoZSk6TS5jb2xsYXBzZShlKSxNLmNv
bGxhcHNlZD14KCksTS5jb21tb25BbmNlc3RvckNvbnRhaW5lcj1uLmZpbmRDb21tb25BbmNlc3Rv
cihNW1ZdLE1bVV0pfWZ1bmN0aW9uIE4oZSl7dmFyIHQsbj0wLHI9MCxpLG8sYSxzLGwsYztpZihN
W1ZdPT1NW1VdKXJldHVybiBFKGUpO2Zvcih0PU1bVV0saT10LnBhcmVudE5vZGU7aTt0PWksaT1p
LnBhcmVudE5vZGUpe2lmKGk9PU1bVl0pcmV0dXJuIFModCxlKTsrK259Zm9yKHQ9TVtWXSxpPXQu
cGFyZW50Tm9kZTtpO3Q9aSxpPWkucGFyZW50Tm9kZSl7aWYoaT09TVtVXSlyZXR1cm4gayh0LGUp
Oysrcn1mb3Iobz1yLW4sYT1NW1ZdO28+MDspYT1hLnBhcmVudE5vZGUsby0tO2ZvcihzPU1bVV07
MD5vOylzPXMucGFyZW50Tm9kZSxvKys7Zm9yKGw9YS5wYXJlbnROb2RlLGM9cy5wYXJlbnROb2Rl
O2whPWM7bD1sLnBhcmVudE5vZGUsYz1jLnBhcmVudE5vZGUpYT1sLHM9YztyZXR1cm4gVChhLHMs
ZSl9ZnVuY3Rpb24gRShlKXt2YXIgdCxuLGksbyxhLHMsbCxjLHU7aWYoZSE9SSYmKHQ9cigpKSxN
W1ddPT1NW3FdKXJldHVybiB0O2lmKDM9PU1bVl0ubm9kZVR5cGUpe2lmKG49TVtWXS5ub2RlVmFs
dWUsaT1uLnN1YnN0cmluZyhNW1ddLE1bcV0pLGUhPU8mJihvPU1bVl0sYz1NW1ddLHU9TVtxXS1N
W1ddLDA9PT1jJiZ1Pj1vLm5vZGVWYWx1ZS5sZW5ndGgtMT9vLnBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQobyk6by5kZWxldGVEYXRhKGMsdSksTS5jb2xsYXBzZShGKSksZT09SSlyZXR1cm47cmV0dXJu
IGkubGVuZ3RoPjAmJnQuYXBwZW5kQ2hpbGQoSC5jcmVhdGVUZXh0Tm9kZShpKSksdH1mb3Iobz1D
KE1bVl0sTVtXXSksYT1NW3FdLU1bV107byYmYT4wOylzPW8ubmV4dFNpYmxpbmcsbD1EKG8sZSks
dCYmdC5hcHBlbmRDaGlsZChsKSwtLWEsbz1zO3JldHVybiBlIT1PJiZNLmNvbGxhcHNlKEYpLHR9
ZnVuY3Rpb24gUyhlLHQpe3ZhciBuLGksbyxhLHMsbDtpZih0IT1JJiYobj1yKCkpLGk9UihlLHQp
LG4mJm4uYXBwZW5kQ2hpbGQoaSksbz1qKGUpLGE9by1NW1ddLDA+PWEpcmV0dXJuIHQhPU8mJihN
LnNldEVuZEJlZm9yZShlKSxNLmNvbGxhcHNlKHopKSxuO2ZvcihpPWUucHJldmlvdXNTaWJsaW5n
O2E+MDspcz1pLnByZXZpb3VzU2libGluZyxsPUQoaSx0KSxuJiZuLmluc2VydEJlZm9yZShsLG4u
Zmlyc3RDaGlsZCksLS1hLGk9cztyZXR1cm4gdCE9TyYmKE0uc2V0RW5kQmVmb3JlKGUpLE0uY29s
bGFwc2UoeikpLG59ZnVuY3Rpb24gayhlLHQpe3ZhciBuLGksbyxhLHMsbDtmb3IodCE9SSYmKG49
cigpKSxvPUEoZSx0KSxuJiZuLmFwcGVuZENoaWxkKG8pLGk9aihlKSwrK2ksYT1NW3FdLWksbz1l
Lm5leHRTaWJsaW5nO28mJmE+MDspcz1vLm5leHRTaWJsaW5nLGw9RChvLHQpLG4mJm4uYXBwZW5k
Q2hpbGQobCksLS1hLG89cztyZXR1cm4gdCE9TyYmKE0uc2V0U3RhcnRBZnRlcihlKSxNLmNvbGxh
cHNlKEYpKSxufWZ1bmN0aW9uIFQoZSx0LG4pe3ZhciBpLG8sYSxzLGwsYyx1O2ZvcihuIT1JJiYo
bz1yKCkpLGk9QShlLG4pLG8mJm8uYXBwZW5kQ2hpbGQoaSksYT1qKGUpLHM9aih0KSwrK2EsbD1z
LWEsYz1lLm5leHRTaWJsaW5nO2w+MDspdT1jLm5leHRTaWJsaW5nLGk9RChjLG4pLG8mJm8uYXBw
ZW5kQ2hpbGQoaSksYz11LC0tbDtyZXR1cm4gaT1SKHQsbiksbyYmby5hcHBlbmRDaGlsZChpKSxu
IT1PJiYoTS5zZXRTdGFydEFmdGVyKGUpLE0uY29sbGFwc2UoRikpLG99ZnVuY3Rpb24gUihlLHQp
e3ZhciBuPUMoTVtVXSxNW3FdLTEpLHIsaSxvLGEscyxsPW4hPU1bVV07aWYobj09ZSlyZXR1cm4g
QihuLGwseix0KTtmb3Iocj1uLnBhcmVudE5vZGUsaT1CKHIseix6LHQpO3I7KXtmb3IoO247KW89
bi5wcmV2aW91c1NpYmxpbmcsYT1CKG4sbCx6LHQpLHQhPUkmJmkuaW5zZXJ0QmVmb3JlKGEsaS5m
aXJzdENoaWxkKSxsPUYsbj1vO2lmKHI9PWUpcmV0dXJuIGk7bj1yLnByZXZpb3VzU2libGluZyxy
PXIucGFyZW50Tm9kZSxzPUIocix6LHosdCksdCE9SSYmcy5hcHBlbmRDaGlsZChpKSxpPXN9fWZ1
bmN0aW9uIEEoZSx0KXt2YXIgbj1DKE1bVl0sTVtXXSkscj1uIT1NW1ZdLGksbyxhLHMsbDtpZihu
PT1lKXJldHVybiBCKG4scixGLHQpO2ZvcihpPW4ucGFyZW50Tm9kZSxvPUIoaSx6LEYsdCk7aTsp
e2Zvcig7bjspYT1uLm5leHRTaWJsaW5nLHM9QihuLHIsRix0KSx0IT1JJiZvLmFwcGVuZENoaWxk
KHMpLHI9RixuPWE7aWYoaT09ZSlyZXR1cm4gbztuPWkubmV4dFNpYmxpbmcsaT1pLnBhcmVudE5v
ZGUsbD1CKGkseixGLHQpLHQhPUkmJmwuYXBwZW5kQ2hpbGQobyksbz1sfX1mdW5jdGlvbiBCKGUs
dCxyLGkpe3ZhciBvLGEscyxsLGM7aWYodClyZXR1cm4gRChlLGkpO2lmKDM9PWUubm9kZVR5cGUp
e2lmKG89ZS5ub2RlVmFsdWUscj8obD1NW1ddLGE9by5zdWJzdHJpbmcobCkscz1vLnN1YnN0cmlu
ZygwLGwpKToobD1NW3FdLGE9by5zdWJzdHJpbmcoMCxsKSxzPW8uc3Vic3RyaW5nKGwpKSxpIT1P
JiYoZS5ub2RlVmFsdWU9cyksaT09SSlyZXR1cm47cmV0dXJuIGM9bi5jbG9uZShlLHopLGMubm9k
ZVZhbHVlPWEsY31pZihpIT1JKXJldHVybiBuLmNsb25lKGUseil9ZnVuY3Rpb24gRChlLHQpe3Jl
dHVybiB0IT1JP3Q9PU8/bi5jbG9uZShlLEYpOmU6dm9pZCBlLnBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQoZSl9ZnVuY3Rpb24gTCgpe3JldHVybiBuLmNyZWF0ZSgiYm9keSIsbnVsbCxnKCkpLm91dGVy
VGV4dH12YXIgTT10aGlzLEg9bi5kb2MsUD0wLE89MSxJPTIsRj0hMCx6PSExLFc9InN0YXJ0T2Zm
c2V0IixWPSJzdGFydENvbnRhaW5lciIsVT0iZW5kQ29udGFpbmVyIixxPSJlbmRPZmZzZXQiLCQ9
ZS5leHRlbmQsaj1uLm5vZGVJbmRleDtyZXR1cm4gJChNLHtzdGFydENvbnRhaW5lcjpILHN0YXJ0
T2Zmc2V0OjAsZW5kQ29udGFpbmVyOkgsZW5kT2Zmc2V0OjAsY29sbGFwc2VkOkYsY29tbW9uQW5j
ZXN0b3JDb250YWluZXI6SCxTVEFSVF9UT19TVEFSVDowLFNUQVJUX1RPX0VORDoxLEVORF9UT19F
TkQ6MixFTkRfVE9fU1RBUlQ6MyxzZXRTdGFydDppLHNldEVuZDpvLHNldFN0YXJ0QmVmb3JlOmEs
c2V0U3RhcnRBZnRlcjpzLHNldEVuZEJlZm9yZTpsLHNldEVuZEFmdGVyOmMsY29sbGFwc2U6dSxz
ZWxlY3ROb2RlOmQsc2VsZWN0Tm9kZUNvbnRlbnRzOmYsY29tcGFyZUJvdW5kYXJ5UG9pbnRzOnAs
ZGVsZXRlQ29udGVudHM6aCxleHRyYWN0Q29udGVudHM6bSxjbG9uZUNvbnRlbnRzOmcsaW5zZXJ0
Tm9kZTp2LHN1cnJvdW5kQ29udGVudHM6eSxjbG9uZVJhbmdlOmIsdG9TdHJpbmdJRTpMfSksTX1y
ZXR1cm4gdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmlu
Z0lFKCl9LHR9KSxyKG0sW3BdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7dmFyIHQ7cmV0dXJu
IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5pbm5lckhUTUw9ZSx0LnRleHRDb250
ZW50fHx0LmlubmVyVGV4dHx8ZX1mdW5jdGlvbiBuKGUsdCl7dmFyIG4scixpLGE9e307aWYoZSl7
Zm9yKGU9ZS5zcGxpdCgiLCIpLHQ9dHx8MTAsbj0wO248ZS5sZW5ndGg7bis9MilyPVN0cmluZy5m
cm9tQ2hhckNvZGUocGFyc2VJbnQoZVtuXSx0KSksb1tyXXx8KGk9IiYiK2VbbisxXSsiOyIsYVty
XT1pLGFbaV09cik7cmV0dXJuIGF9fXZhciByPWUubWFrZU1hcCxpLG8sYSxzPS9bJjw+XCJcdTAw
NjBcdTAwN0UtXHVEN0ZGXHVFMDAwLVx1RkZFRl18W1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURG
RkZdL2csbD0vWzw+Jlx1MDA3RS1cdUQ3RkZcdUUwMDAtXHVGRkVGXXxbXHVEODAwLVx1REJGRl1b
XHVEQzAwLVx1REZGRl0vZyxjPS9bPD4mXCJcJ10vZyx1PS8mKCN4fCMpPyhbXHddKyk7L2csZD17
MTI4OiJcdTIwYWMiLDEzMDoiXHUyMDFhIiwxMzE6Ilx1MDE5MiIsMTMyOiJcdTIwMWUiLDEzMzoi
XHUyMDI2IiwxMzQ6Ilx1MjAyMCIsMTM1OiJcdTIwMjEiLDEzNjoiXHUwMmM2IiwxMzc6Ilx1MjAz
MCIsMTM4OiJcdTAxNjAiLDEzOToiXHUyMDM5IiwxNDA6Ilx1MDE1MiIsMTQyOiJcdTAxN2QiLDE0
NToiXHUyMDE4IiwxNDY6Ilx1MjAxOSIsMTQ3OiJcdTIwMWMiLDE0ODoiXHUyMDFkIiwxNDk6Ilx1
MjAyMiIsMTUwOiJcdTIwMTMiLDE1MToiXHUyMDE0IiwxNTI6Ilx1MDJkYyIsMTUzOiJcdTIxMjIi
LDE1NDoiXHUwMTYxIiwxNTU6Ilx1MjAzYSIsMTU2OiJcdTAxNTMiLDE1ODoiXHUwMTdlIiwxNTk6
Ilx1MDE3OCJ9O289eyciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7IiwiPCI6IiZsdDsiLCI+IjoiJmd0
OyIsIiYiOiImYW1wOyIsImAiOiImIzk2OyJ9LGE9eyImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJmFt
cDsiOiImIiwiJnF1b3Q7IjonIicsIiZhcG9zOyI6IicifSxpPW4oIjUwLG5ic3AsNTEsaWV4Y2ws
NTIsY2VudCw1Myxwb3VuZCw1NCxjdXJyZW4sNTUseWVuLDU2LGJydmJhciw1NyxzZWN0LDU4LHVt
bCw1OSxjb3B5LDVhLG9yZGYsNWIsbGFxdW8sNWMsbm90LDVkLHNoeSw1ZSxyZWcsNWYsbWFjciw1
ZyxkZWcsNWgscGx1c21uLDVpLHN1cDIsNWosc3VwMyw1ayxhY3V0ZSw1bCxtaWNybyw1bSxwYXJh
LDVuLG1pZGRvdCw1byxjZWRpbCw1cCxzdXAxLDVxLG9yZG0sNXIscmFxdW8sNXMsZnJhYzE0LDV0
LGZyYWMxMiw1dSxmcmFjMzQsNXYsaXF1ZXN0LDYwLEFncmF2ZSw2MSxBYWN1dGUsNjIsQWNpcmMs
NjMsQXRpbGRlLDY0LEF1bWwsNjUsQXJpbmcsNjYsQUVsaWcsNjcsQ2NlZGlsLDY4LEVncmF2ZSw2
OSxFYWN1dGUsNmEsRWNpcmMsNmIsRXVtbCw2YyxJZ3JhdmUsNmQsSWFjdXRlLDZlLEljaXJjLDZm
LEl1bWwsNmcsRVRILDZoLE50aWxkZSw2aSxPZ3JhdmUsNmosT2FjdXRlLDZrLE9jaXJjLDZsLE90
aWxkZSw2bSxPdW1sLDZuLHRpbWVzLDZvLE9zbGFzaCw2cCxVZ3JhdmUsNnEsVWFjdXRlLDZyLFVj
aXJjLDZzLFV1bWwsNnQsWWFjdXRlLDZ1LFRIT1JOLDZ2LHN6bGlnLDcwLGFncmF2ZSw3MSxhYWN1
dGUsNzIsYWNpcmMsNzMsYXRpbGRlLDc0LGF1bWwsNzUsYXJpbmcsNzYsYWVsaWcsNzcsY2NlZGls
LDc4LGVncmF2ZSw3OSxlYWN1dGUsN2EsZWNpcmMsN2IsZXVtbCw3YyxpZ3JhdmUsN2QsaWFjdXRl
LDdlLGljaXJjLDdmLGl1bWwsN2csZXRoLDdoLG50aWxkZSw3aSxvZ3JhdmUsN2osb2FjdXRlLDdr
LG9jaXJjLDdsLG90aWxkZSw3bSxvdW1sLDduLGRpdmlkZSw3byxvc2xhc2gsN3AsdWdyYXZlLDdx
LHVhY3V0ZSw3cix1Y2lyYyw3cyx1dW1sLDd0LHlhY3V0ZSw3dSx0aG9ybiw3dix5dW1sLGNpLGZu
b2Ysc2gsQWxwaGEsc2ksQmV0YSxzaixHYW1tYSxzayxEZWx0YSxzbCxFcHNpbG9uLHNtLFpldGEs
c24sRXRhLHNvLFRoZXRhLHNwLElvdGEsc3EsS2FwcGEsc3IsTGFtYmRhLHNzLE11LHN0LE51LHN1
LFhpLHN2LE9taWNyb24sdDAsUGksdDEsUmhvLHQzLFNpZ21hLHQ0LFRhdSx0NSxVcHNpbG9uLHQ2
LFBoaSx0NyxDaGksdDgsUHNpLHQ5LE9tZWdhLHRoLGFscGhhLHRpLGJldGEsdGosZ2FtbWEsdGss
ZGVsdGEsdGwsZXBzaWxvbix0bSx6ZXRhLHRuLGV0YSx0byx0aGV0YSx0cCxpb3RhLHRxLGthcHBh
LHRyLGxhbWJkYSx0cyxtdSx0dCxudSx0dSx4aSx0dixvbWljcm9uLHUwLHBpLHUxLHJobyx1Mixz
aWdtYWYsdTMsc2lnbWEsdTQsdGF1LHU1LHVwc2lsb24sdTYscGhpLHU3LGNoaSx1OCxwc2ksdTks
b21lZ2EsdWgsdGhldGFzeW0sdWksdXBzaWgsdW0scGl2LDgxMixidWxsLDgxNixoZWxsaXAsODFp
LHByaW1lLDgxaixQcmltZSw4MXUsb2xpbmUsODI0LGZyYXNsLDg4byx3ZWllcnAsODhoLGltYWdl
LDg4cyxyZWFsLDg5Mix0cmFkZSw4OWwsYWxlZnN5bSw4Y2csbGFyciw4Y2gsdWFyciw4Y2kscmFy
ciw4Y2osZGFyciw4Y2ssaGFyciw4ZGwsY3JhcnIsOGVnLGxBcnIsOGVoLHVBcnIsOGVpLHJBcnIs
OGVqLGRBcnIsOGVrLGhBcnIsOGcwLGZvcmFsbCw4ZzIscGFydCw4ZzMsZXhpc3QsOGc1LGVtcHR5
LDhnNyxuYWJsYSw4ZzgsaXNpbiw4Zzksbm90aW4sOGdiLG5pLDhnZixwcm9kLDhnaCxzdW0sOGdp
LG1pbnVzLDhnbixsb3dhc3QsOGdxLHJhZGljLDhndCxwcm9wLDhndSxpbmZpbiw4aDAsYW5nLDho
NyxhbmQsOGg4LG9yLDhoOSxjYXAsOGhhLGN1cCw4aGIsaW50LDhoayx0aGVyZTQsOGhzLHNpbSw4
aTUsY29uZyw4aTgsYXN5bXAsOGowLG5lLDhqMSxlcXVpdiw4ajQsbGUsOGo1LGdlLDhrMixzdWIs
OGszLHN1cCw4azQsbnN1Yiw4azYsc3ViZSw4azcsc3VwZSw4a2wsb3BsdXMsOGtuLG90aW1lcyw4
bDUscGVycCw4bTUsc2RvdCw4bzgsbGNlaWwsOG85LHJjZWlsLDhvYSxsZmxvb3IsOG9iLHJmbG9v
ciw4cDksbGFuZyw4cGEscmFuZyw5ZWEsbG96LDlqMCxzcGFkZXMsOWozLGNsdWJzLDlqNSxoZWFy
dHMsOWo2LGRpYW1zLGFpLE9FbGlnLGFqLG9lbGlnLGIwLFNjYXJvbixiMSxzY2Fyb24sYm8sWXVt
bCxtNixjaXJjLG1zLHRpbGRlLDgwMixlbnNwLDgwMyxlbXNwLDgwOSx0aGluc3AsODBjLHp3bmos
ODBkLHp3aiw4MGUsbHJtLDgwZixybG0sODBqLG5kYXNoLDgwayxtZGFzaCw4MG8sbHNxdW8sODBw
LHJzcXVvLDgwcSxzYnF1byw4MHMsbGRxdW8sODB0LHJkcXVvLDgwdSxiZHF1byw4MTAsZGFnZ2Vy
LDgxMSxEYWdnZXIsODFnLHBlcm1pbCw4MXAsbHNhcXVvLDgxcSxyc2FxdW8sODVjLGV1cm8iLDMy
KTt2YXIgZj17ZW5jb2RlUmF3OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucmVwbGFjZSh0P3M6bCxm
dW5jdGlvbihlKXtyZXR1cm4gb1tlXXx8ZX0pfSxlbmNvZGVBbGxSYXc6ZnVuY3Rpb24oZSl7cmV0
dXJuKCIiK2UpLnJlcGxhY2UoYyxmdW5jdGlvbihlKXtyZXR1cm4gb1tlXXx8ZX0pfSxlbmNvZGVO
dW1lcmljOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucmVwbGFjZSh0P3M6bCxmdW5jdGlvbihlKXty
ZXR1cm4gZS5sZW5ndGg+MT8iJiMiKygxMDI0KihlLmNoYXJDb2RlQXQoMCktNTUyOTYpKyhlLmNo
YXJDb2RlQXQoMSktNTYzMjApKzY1NTM2KSsiOyI6b1tlXXx8IiYjIitlLmNoYXJDb2RlQXQoMCkr
IjsifSl9LGVuY29kZU5hbWVkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj1ufHxpLGUucmVwbGFj
ZSh0P3M6bCxmdW5jdGlvbihlKXtyZXR1cm4gb1tlXXx8bltlXXx8ZX0pfSxnZXRFbmNvZGVGdW5j
OmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gYShlLG4pe3JldHVybiBlLnJlcGxhY2Uobj9zOmwsZnVu
Y3Rpb24oZSl7cmV0dXJuIG9bZV18fHRbZV18fCImIyIrZS5jaGFyQ29kZUF0KDApKyI7Inx8ZX0p
fWZ1bmN0aW9uIGMoZSxuKXtyZXR1cm4gZi5lbmNvZGVOYW1lZChlLG4sdCl9cmV0dXJuIHQ9bih0
KXx8aSxlPXIoZS5yZXBsYWNlKC9cKy9nLCIsIikpLGUubmFtZWQmJmUubnVtZXJpYz9hOmUubmFt
ZWQ/dD9jOmYuZW5jb2RlTmFtZWQ6ZS5udW1lcmljP2YuZW5jb2RlTnVtZXJpYzpmLmVuY29kZVJh
d30sZGVjb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UodSxmdW5jdGlvbihlLG4scil7
cmV0dXJuIG4/KHI9cGFyc2VJbnQociwyPT09bi5sZW5ndGg/MTY6MTApLHI+NjU1MzU/KHItPTY1
NTM2LFN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKHI+PjEwKSw1NjMyMCsoMTAyMyZyKSkpOmRb
cl18fFN0cmluZy5mcm9tQ2hhckNvZGUocikpOmFbZV18fGlbZV18fHQoZSl9KX19O3JldHVybiBm
fSkscihnLFtdLGZ1bmN0aW9uKCl7dmFyIGU9bmF2aWdhdG9yLHQ9ZS51c2VyQWdlbnQsbixyLGks
byxhLHMsbDtuPXdpbmRvdy5vcGVyYSYmd2luZG93Lm9wZXJhLmJ1aWxkTnVtYmVyLHI9L1dlYktp
dC8udGVzdCh0KSxpPSFyJiYhbiYmL01TSUUvZ2kudGVzdCh0KSYmL0V4cGxvcmVyL2dpLnRlc3Qo
ZS5hcHBOYW1lKSxpPWkmJi9NU0lFIChcdyspXC4vLmV4ZWModClbMV0sbz0tMT09dC5pbmRleE9m
KCJUcmlkZW50LyIpfHwtMT09dC5pbmRleE9mKCJydjoiKSYmLTE9PWUuYXBwTmFtZS5pbmRleE9m
KCJOZXRzY2FwZSIpPyExOjExLGk9aXx8byxhPSFyJiYhbyYmL0dlY2tvLy50ZXN0KHQpLHM9LTEh
PXQuaW5kZXhPZigiTWFjIiksbD0vKGlQYWR8aVBob25lKS8udGVzdCh0KTt2YXIgYz0hbHx8dC5t
YXRjaCgvQXBwbGVXZWJLaXRcLyhcZCopLylbMV0+PTUzNDtyZXR1cm57b3BlcmE6bix3ZWJraXQ6
cixpZTppLGdlY2tvOmEsbWFjOnMsaU9TOmwsY29udGVudEVkaXRhYmxlOmMsdHJhbnNwYXJlbnRT
cmM6ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veUg1QkFF
QUFBQUFMQUFBQUFBQkFBRUFBQUlCUkFBNyIsY2FyZXRBZnRlcjo4IT1pLHJhbmdlOndpbmRvdy5n
ZXRTZWxlY3Rpb24mJiJSYW5nZSJpbiB3aW5kb3csZG9jdW1lbnRNb2RlOmk/ZG9jdW1lbnQuZG9j
dW1lbnRNb2RlfHw3OjEwfX0pLHIodixbXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLHQp
e2Z1bmN0aW9uIG4odCl7ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENo
aWxkKHQpfWZ1bmN0aW9uIHIodCxyLHMpe2Z1bmN0aW9uIGwoKXtmb3IodmFyIGU9di5wYXNzZWQs
dD1lLmxlbmd0aDt0LS07KWVbdF0oKTt2LnN0YXR1cz0yLHYucGFzc2VkPVtdLHYuZmFpbGVkPVtd
fWZ1bmN0aW9uIGMoKXtmb3IodmFyIGU9di5mYWlsZWQsdD1lLmxlbmd0aDt0LS07KWVbdF0oKTt2
LnN0YXR1cz0zLHYucGFzc2VkPVtdLHYuZmFpbGVkPVtdfWZ1bmN0aW9uIHUoKXt2YXIgZT1uYXZp
Z2F0b3IudXNlckFnZW50Lm1hdGNoKC9XZWJLaXRcLyhcZCopLyk7cmV0dXJuISEoZSYmZVsxXTw1
MzYpfWZ1bmN0aW9uIGQoZSx0KXtlKCl8fCgobmV3IERhdGUpLmdldFRpbWUoKS1nPGE/d2luZG93
LnNldFRpbWVvdXQodCwwKTpjKCkpfWZ1bmN0aW9uIGYoKXtkKGZ1bmN0aW9uKCl7Zm9yKHZhciB0
PWUuc3R5bGVTaGVldHMsbixyPXQubGVuZ3RoLGk7ci0tOylpZihuPXRbcl0saT1uLm93bmVyTm9k
ZT9uLm93bmVyTm9kZTpuLm93bmluZ0VsZW1lbnQsaSYmaS5pZD09PWguaWQpcmV0dXJuIGwoKSwh
MH0sZil9ZnVuY3Rpb24gcCgpe2QoZnVuY3Rpb24oKXt0cnl7dmFyIGU9bS5zaGVldC5jc3NSdWxl
cztyZXR1cm4gbCgpLCEhZX1jYXRjaCh0KXt9fSxwKX12YXIgaCxtLGcsdjtpZihvW3RdP3Y9b1t0
XToodj17cGFzc2VkOltdLGZhaWxlZDpbXX0sb1t0XT12KSxyJiZ2LnBhc3NlZC5wdXNoKHIpLHMm
JnYuZmFpbGVkLnB1c2gocyksMSE9di5zdGF0dXMpe2lmKDI9PXYuc3RhdHVzKXJldHVybiB2b2lk
IGwoKTtpZigzPT12LnN0YXR1cylyZXR1cm4gdm9pZCBjKCk7aWYodi5zdGF0dXM9MSxoPWUuY3Jl
YXRlRWxlbWVudCgibGluayIpLGgucmVsPSJzdHlsZXNoZWV0IixoLnR5cGU9InRleHQvY3NzIixo
LmlkPSJ1IitpKyssaC5hc3luYz0hMSxoLmRlZmVyPSExLGc9KG5ldyBEYXRlKS5nZXRUaW1lKCks
Im9ubG9hZCJpbiBoJiYhdSgpKWgub25sb2FkPWYsaC5vbmVycm9yPWM7ZWxzZXtpZihuYXZpZ2F0
b3IudXNlckFnZW50LmluZGV4T2YoIkZpcmVmb3giKT4wKXJldHVybiBtPWUuY3JlYXRlRWxlbWVu
dCgic3R5bGUiKSxtLnRleHRDb250ZW50PSdAaW1wb3J0ICInK3QrJyInLHAoKSx2b2lkIG4obSk7
ZigpfW4oaCksaC5ocmVmPXR9fXZhciBpPTAsbz17fSxhO3Q9dHx8e30sYT10Lm1heExvYWRUaW1l
fHw1ZTMsdGhpcy5sb2FkPXJ9fSkscih5LFtjLGQsbCxmLGgsbSxnLHAsdl0sZnVuY3Rpb24oZSxu
LHIsaSxvLGEscyxsLGMpe2Z1bmN0aW9uIHUoZSx0KXt2YXIgaT10aGlzLG87aS5kb2M9ZSxpLndp
bj13aW5kb3csaS5maWxlcz17fSxpLmNvdW50ZXI9MCxpLnN0ZE1vZGU9IXZ8fGUuZG9jdW1lbnRN
b2RlPj04LGkuYm94TW9kZWw9IXZ8fCJDU1MxQ29tcGF0Ij09ZS5jb21wYXRNb2RlfHxpLnN0ZE1v
ZGUsaS5oYXNPdXRlckhUTUw9Im91dGVySFRNTCJpbiBlLmNyZWF0ZUVsZW1lbnQoImEiKSxpLnN0
eWxlU2hlZXRMb2FkZXI9bmV3IGMoZSksdGhpcy5ib3VuZEV2ZW50cz1bXSxpLnNldHRpbmdzPXQ9
bSh7a2VlcF92YWx1ZXM6ITEsaGV4X2NvbG9yczoxfSx0KSxpLnNjaGVtYT10LnNjaGVtYSxpLnN0
eWxlcz1uZXcgbih7dXJsX2NvbnZlcnRlcjp0LnVybF9jb252ZXJ0ZXIsdXJsX2NvbnZlcnRlcl9z
Y29wZTp0LnVybF9jb252ZXJ0ZXJfc2NvcGV9LHQuc2NoZW1hKSxpLmZpeERvYyhlKSxpLmV2ZW50
cz10Lm93bkV2ZW50cz9uZXcgcih0LnByb3h5KTpyLkV2ZW50LG89dC5zY2hlbWE/dC5zY2hlbWEu
Z2V0QmxvY2tFbGVtZW50cygpOnt9LGkuaXNCbG9jaz1mdW5jdGlvbihlKXtpZighZSlyZXR1cm4h
MTt2YXIgdD1lLm5vZGVUeXBlO3JldHVybiB0PyEoMSE9PXR8fCFvW2Uubm9kZU5hbWVdKTohIW9b
ZV19fXZhciBkPWwuZWFjaCxmPWwuaXMscD1sLmdyZXAsaD1sLnRyaW0sbT1sLmV4dGVuZCxnPXMu
d2Via2l0LHY9cy5pZSx5PS9eKFthLXowLTldLD8pKyQvaSxiPS9eWyBcdFxyXG5dKiQvLEM9bC5t
YWtlTWFwKCJmaWxsT3BhY2l0eSBmb250V2VpZ2h0IGxpbmVIZWlnaHQgb3BhY2l0eSBvcnBoYW5z
IHdpZG93cyB6SW5kZXggem9vbSIsIiAiKTtyZXR1cm4gdS5wcm90b3R5cGU9e3Jvb3Q6bnVsbCxw
cm9wczp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsY2xhc3NOYW1lOiJjbGFz
c05hbWUiLGNoZWNrZWQ6ImNoZWNrZWQiLGRpc2FibGVkOiJkaXNhYmxlZCIsbWF4bGVuZ3RoOiJt
YXhMZW5ndGgiLHJlYWRvbmx5OiJyZWFkT25seSIsc2VsZWN0ZWQ6InNlbGVjdGVkIix2YWx1ZToi
dmFsdWUiLGlkOiJpZCIsbmFtZToibmFtZSIsdHlwZToidHlwZSJ9LGZpeERvYzpmdW5jdGlvbihl
KXt2YXIgdD10aGlzLnNldHRpbmdzLG47aWYodiYmdC5zY2hlbWEpeyJhYmJyIGFydGljbGUgYXNp
ZGUgYXVkaW8gY2FudmFzIGRldGFpbHMgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBo
Z3JvdXAgbWFyayBtZW51IG1ldGVyIG5hdiBvdXRwdXQgcHJvZ3Jlc3Mgc2VjdGlvbiBzdW1tYXJ5
IHRpbWUgdmlkZW8iLnJlcGxhY2UoL1x3Ky9nLGZ1bmN0aW9uKHQpe2UuY3JlYXRlRWxlbWVudCh0
KX0pO2ZvcihuIGluIHQuc2NoZW1hLmdldEN1c3RvbUVsZW1lbnRzKCkpZS5jcmVhdGVFbGVtZW50
KG4pfX0sY2xvbmU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHIsaTtyZXR1cm4hdnx8MSE9PWUu
bm9kZVR5cGV8fHQ/ZS5jbG9uZU5vZGUodCk6KGk9bi5kb2MsdD9yLmZpcnN0Q2hpbGQ6KHI9aS5j
cmVhdGVFbGVtZW50KGUubm9kZU5hbWUpLGQobi5nZXRBdHRyaWJzKGUpLGZ1bmN0aW9uKHQpe24u
c2V0QXR0cmliKHIsdC5ub2RlTmFtZSxuLmdldEF0dHJpYihlLHQubm9kZU5hbWUpKX0pLHIpKX0s
Z2V0Um9vdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGUuZ2V0KGUuc2V0dGluZ3Mucm9v
dF9lbGVtZW50KXx8ZS5kb2MuYm9keX0sZ2V0Vmlld1BvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQsbjty
ZXR1cm4gZT1lP2U6dGhpcy53aW4sdD1lLmRvY3VtZW50LG49dGhpcy5ib3hNb2RlbD90LmRvY3Vt
ZW50RWxlbWVudDp0LmJvZHkse3g6ZS5wYWdlWE9mZnNldHx8bi5zY3JvbGxMZWZ0LHk6ZS5wYWdl
WU9mZnNldHx8bi5zY3JvbGxUb3AsdzplLmlubmVyV2lkdGh8fG4uY2xpZW50V2lkdGgsaDplLmlu
bmVySGVpZ2h0fHxuLmNsaWVudEhlaWdodH19LGdldFJlY3Q6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhp
cyxuLHI7cmV0dXJuIGU9dC5nZXQoZSksbj10LmdldFBvcyhlKSxyPXQuZ2V0U2l6ZShlKSx7eDpu
LngseTpuLnksdzpyLncsaDpyLmh9fSxnZXRTaXplOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbixy
O3JldHVybiBlPXQuZ2V0KGUpLG49dC5nZXRTdHlsZShlLCJ3aWR0aCIpLHI9dC5nZXRTdHlsZShl
LCJoZWlnaHQiKSwtMT09PW4uaW5kZXhPZigicHgiKSYmKG49MCksLTE9PT1yLmluZGV4T2YoInB4
IikmJihyPTApLHt3OnBhcnNlSW50KG4sMTApfHxlLm9mZnNldFdpZHRofHxlLmNsaWVudFdpZHRo
LGg6cGFyc2VJbnQociwxMCl8fGUub2Zmc2V0SGVpZ2h0fHxlLmNsaWVudEhlaWdodH19LGdldFBh
cmVudDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuZ2V0UGFyZW50cyhlLHQsbiwhMSl9LGdl
dFBhcmVudHM6ZnVuY3Rpb24oZSxuLHIsaSl7dmFyIG89dGhpcyxhLHM9W107Zm9yKGU9by5nZXQo
ZSksaT1pPT09dCxyPXJ8fCgiQk9EWSIhPW8uZ2V0Um9vdCgpLm5vZGVOYW1lP28uZ2V0Um9vdCgp
LnBhcmVudE5vZGU6bnVsbCksZihuLCJzdHJpbmciKSYmKGE9bixuPSIqIj09PW4/ZnVuY3Rpb24o
ZSl7cmV0dXJuIDE9PWUubm9kZVR5cGV9OmZ1bmN0aW9uKGUpe3JldHVybiBvLmlzKGUsYSl9KTtl
JiZlIT1yJiZlLm5vZGVUeXBlJiY5IT09ZS5ub2RlVHlwZTspe2lmKCFufHxuKGUpKXtpZighaSly
ZXR1cm4gZTtzLnB1c2goZSl9ZT1lLnBhcmVudE5vZGV9cmV0dXJuIGk/czpudWxsfSxnZXQ6ZnVu
Y3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGUmJnRoaXMuZG9jJiYic3RyaW5nIj09dHlwZW9mIGUmJih0
PWUsZT10aGlzLmRvYy5nZXRFbGVtZW50QnlJZChlKSxlJiZlLmlkIT09dCk/dGhpcy5kb2MuZ2V0
RWxlbWVudHNCeU5hbWUodClbMV06ZX0sZ2V0TmV4dDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlz
Ll9maW5kU2liKGUsdCwibmV4dFNpYmxpbmciKX0sZ2V0UHJldjpmdW5jdGlvbihlLHQpe3JldHVy
biB0aGlzLl9maW5kU2liKGUsdCwicHJldmlvdXNTaWJsaW5nIil9LHNlbGVjdDpmdW5jdGlvbih0
LG4pe3ZhciByPXRoaXM7cmV0dXJuIGUodCxyLmdldChuKXx8ci5nZXQoci5zZXR0aW5ncy5yb290
X2VsZW1lbnQpfHxyLmRvYyxbXSl9LGlzOmZ1bmN0aW9uKG4scil7dmFyIGk7aWYobi5sZW5ndGg9
PT10KXtpZigiKiI9PT1yKXJldHVybiAxPT1uLm5vZGVUeXBlO2lmKHkudGVzdChyKSl7Zm9yKHI9
ci50b0xvd2VyQ2FzZSgpLnNwbGl0KC8sLyksbj1uLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksaT1y
Lmxlbmd0aC0xO2k+PTA7aS0tKWlmKHJbaV09PW4pcmV0dXJuITA7cmV0dXJuITF9fWlmKG4ubm9k
ZVR5cGUmJjEhPW4ubm9kZVR5cGUpcmV0dXJuITE7dmFyIG89bi5ub2RlVHlwZT9bbl06bjtyZXR1
cm4gZShyLG9bMF0ub3duZXJEb2N1bWVudHx8b1swXSxudWxsLG8pLmxlbmd0aD4wfSxhZGQ6ZnVu
Y3Rpb24oZSx0LG4scixpKXt2YXIgbz10aGlzO3JldHVybiB0aGlzLnJ1bihlLGZ1bmN0aW9uKGUp
e3ZhciBhO3JldHVybiBhPWYodCwic3RyaW5nIik/by5kb2MuY3JlYXRlRWxlbWVudCh0KTp0LG8u
c2V0QXR0cmlicyhhLG4pLHImJihyLm5vZGVUeXBlP2EuYXBwZW5kQ2hpbGQocik6by5zZXRIVE1M
KGEscikpLGk/YTplLmFwcGVuZENoaWxkKGEpfSl9LGNyZWF0ZTpmdW5jdGlvbihlLHQsbil7cmV0
dXJuIHRoaXMuYWRkKHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoZSksZSx0LG4sMSl9LGNyZWF0ZUhU
TUw6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPSIiLGk7cis9IjwiK2U7Zm9yKGkgaW4gdCl0Lmhhc093
blByb3BlcnR5KGkpJiZudWxsIT09dFtpXSYmKHIrPSIgIitpKyc9IicrdGhpcy5lbmNvZGUodFtp
XSkrJyInKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG4/cisiPiIrbisiPC8iK2UrIj4iOnIr
IiAvPiJ9LGNyZWF0ZUZyYWdtZW50OmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzLmRvYyxpO2Zv
cihpPXIuY3JlYXRlRWxlbWVudCgiZGl2IiksdD1yLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxl
JiYoaS5pbm5lckhUTUw9ZSk7bj1pLmZpcnN0Q2hpbGQ7KXQuYXBwZW5kQ2hpbGQobik7cmV0dXJu
IHR9LHJlbW92ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnJ1bihlLGZ1bmN0aW9uKGUpe3Zh
ciBuLHI9ZS5wYXJlbnROb2RlO2lmKCFyKXJldHVybiBudWxsO2lmKHQpZm9yKDtuPWUuZmlyc3RD
aGlsZDspIXZ8fDMhPT1uLm5vZGVUeXBlfHxuLm5vZGVWYWx1ZT9yLmluc2VydEJlZm9yZShuLGUp
OmUucmVtb3ZlQ2hpbGQobik7cmV0dXJuIHIucmVtb3ZlQ2hpbGQoZSl9KX0sc2V0U3R5bGU6ZnVu
Y3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLnJ1bihlLGZ1bmN0aW9uKGUpe3ZhciByPXRoaXMsaSxv
O2lmKHQpaWYoInN0cmluZyI9PXR5cGVvZiB0KXtpPWUuc3R5bGUsdD10LnJlcGxhY2UoLy0oXEQp
L2csZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfSksIm51bWJlciIhPXR5cGVv
ZiBufHxDW3RdfHwobis9InB4IiksIm9wYWNpdHkiPT09dCYmZS5ydW50aW1lU3R5bGUmJiJ1bmRl
ZmluZWQiPT10eXBlb2YgZS5ydW50aW1lU3R5bGUub3BhY2l0eSYmKGkuZmlsdGVyPSIiPT09bj8i
IjoiYWxwaGEob3BhY2l0eT0iKzEwMCpuKyIpIiksImZsb2F0Ij09dCYmKHQ9ImNzc0Zsb2F0Imlu
IGUuc3R5bGU/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCIpO3RyeXtpW3RdPW59Y2F0Y2goYSl7fXIu
c2V0dGluZ3MudXBkYXRlX3N0eWxlcyYmZS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtbWNlLXN0eWxl
Iil9ZWxzZSBmb3IobyBpbiB0KXIuc2V0U3R5bGUoZSxvLHRbb10pfSl9LGdldFN0eWxlOmZ1bmN0
aW9uKGUsbixyKXtpZihlPXRoaXMuZ2V0KGUpKXtpZih0aGlzLmRvYy5kZWZhdWx0VmlldyYmcil7
bj1uLnJlcGxhY2UoL1tBLVpdL2csZnVuY3Rpb24oZSl7cmV0dXJuIi0iK2V9KTt0cnl7cmV0dXJu
IHRoaXMuZG9jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZSxudWxsKS5nZXRQcm9wZXJ0
eVZhbHVlKG4pfWNhdGNoKGkpe3JldHVybiBudWxsfX1yZXR1cm4gbj1uLnJlcGxhY2UoLy0oXEQp
L2csZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfSksImZsb2F0Ij09biYmKG49
dj8ic3R5bGVGbG9hdCI6ImNzc0Zsb2F0IiksZS5jdXJyZW50U3R5bGUmJnI/ZS5jdXJyZW50U3R5
bGVbbl06ZS5zdHlsZT9lLnN0eWxlW25dOnR9fSxzZXRTdHlsZXM6ZnVuY3Rpb24oZSx0KXt0aGlz
LnNldFN0eWxlKGUsdCl9LGNzczpmdW5jdGlvbihlLHQsbil7dGhpcy5zZXRTdHlsZShlLHQsbil9
LHJlbW92ZUFsbEF0dHJpYnM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucnVuKGUsZnVuY3Rpb24o
ZSl7dmFyIHQsbj1lLmF0dHJpYnV0ZXM7Zm9yKHQ9bi5sZW5ndGgtMTt0Pj0wO3QtLSllLnJlbW92
ZUF0dHJpYnV0ZU5vZGUobi5pdGVtKHQpKX0pfSxzZXRBdHRyaWI6ZnVuY3Rpb24oZSx0LG4pe3Zh
ciByPXRoaXM7aWYoZSYmdClyZXR1cm4gdGhpcy5ydW4oZSxmdW5jdGlvbihlKXt2YXIgaT1yLnNl
dHRpbmdzLG89ZS5nZXRBdHRyaWJ1dGUodCk7aWYobnVsbCE9PW4pc3dpdGNoKHQpe2Nhc2Uic3R5
bGUiOmlmKCFmKG4sInN0cmluZyIpKXJldHVybiB2b2lkIGQobixmdW5jdGlvbih0LG4pe3Iuc2V0
U3R5bGUoZSxuLHQpfSk7aS5rZWVwX3ZhbHVlcyYmKG4/ZS5zZXRBdHRyaWJ1dGUoImRhdGEtbWNl
LXN0eWxlIixuLDIpOmUucmVtb3ZlQXR0cmlidXRlKCJkYXRhLW1jZS1zdHlsZSIsMikpLGUuc3R5
bGUuY3NzVGV4dD1uO2JyZWFrO2Nhc2UiY2xhc3MiOmUuY2xhc3NOYW1lPW58fCIiO2JyZWFrO2Nh
c2Uic3JjIjpjYXNlImhyZWYiOmkua2VlcF92YWx1ZXMmJihpLnVybF9jb252ZXJ0ZXImJihuPWku
dXJsX2NvbnZlcnRlci5jYWxsKGkudXJsX2NvbnZlcnRlcl9zY29wZXx8cixuLHQsZSkpLHIuc2V0
QXR0cmliKGUsImRhdGEtbWNlLSIrdCxuLDIpKTticmVhaztjYXNlInNoYXBlIjplLnNldEF0dHJp
YnV0ZSgiZGF0YS1tY2Utc3R5bGUiLG4pfWYobikmJm51bGwhPT1uJiYwIT09bi5sZW5ndGg/ZS5z
ZXRBdHRyaWJ1dGUodCwiIituLDIpOmUucmVtb3ZlQXR0cmlidXRlKHQsMiksbyE9biYmaS5vblNl
dEF0dHJpYiYmaS5vblNldEF0dHJpYih7YXR0ckVsbTplLGF0dHJOYW1lOnQsYXR0clZhbHVlOm59
KX0pfSxzZXRBdHRyaWJzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5ydW4o
ZSxmdW5jdGlvbihlKXtkKHQsZnVuY3Rpb24odCxyKXtuLnNldEF0dHJpYihlLHIsdCl9KX0pfSxn
ZXRBdHRyaWI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9dGhpcyxvO2lmKGU9aS5nZXQoZSksIWV8
fDEhPT1lLm5vZGVUeXBlKXJldHVybiBuPT09bz8hMTpuO2lmKGYobil8fChuPSIiKSwvXihzcmN8
aHJlZnxzdHlsZXxjb29yZHN8c2hhcGUpJC8udGVzdCh0KSYmKHI9ZS5nZXRBdHRyaWJ1dGUoImRh
dGEtbWNlLSIrdCkpKXJldHVybiByO2lmKHYmJmkucHJvcHNbdF0mJihyPWVbaS5wcm9wc1t0XV0s
cj1yJiZyLm5vZGVWYWx1ZT9yLm5vZGVWYWx1ZTpyKSxyfHwocj1lLmdldEF0dHJpYnV0ZSh0LDIp
KSwvXihjaGVja2VkfGNvbXBhY3R8ZGVjbGFyZXxkZWZlcnxkaXNhYmxlZHxpc21hcHxtdWx0aXBs
ZXxub2hyZWZ8bm9zaGFkZXxub3dyYXB8cmVhZG9ubHl8c2VsZWN0ZWQpJC8udGVzdCh0KSlyZXR1
cm4gZVtpLnByb3BzW3RdXT09PSEwJiYiIj09PXI/dDpyP3Q6IiI7aWYoIkZPUk0iPT09ZS5ub2Rl
TmFtZSYmZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKXJldHVybiBlLmdldEF0dHJpYnV0ZU5vZGUodCku
bm9kZVZhbHVlO2lmKCJzdHlsZSI9PT10JiYocj1yfHxlLnN0eWxlLmNzc1RleHQsciYmKHI9aS5z
ZXJpYWxpemVTdHlsZShpLnBhcnNlU3R5bGUociksZS5ub2RlTmFtZSksaS5zZXR0aW5ncy5rZWVw
X3ZhbHVlcyYmZS5zZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXN0eWxlIixyKSkpLGcmJiJjbGFzcyI9
PT10JiZyJiYocj1yLnJlcGxhY2UoLyhhcHBsZXx3ZWJraXQpXC1bYS16XC1dKy9naSwiIikpLHYp
c3dpdGNoKHQpe2Nhc2Uicm93c3BhbiI6Y2FzZSJjb2xzcGFuIjoxPT09ciYmKHI9IiIpO2JyZWFr
O2Nhc2Uic2l6ZSI6KCIrMCI9PT1yfHwyMD09PXJ8fDA9PT1yKSYmKHI9IiIpO2JyZWFrO2Nhc2Ui
d2lkdGgiOmNhc2UiaGVpZ2h0IjpjYXNlInZzcGFjZSI6Y2FzZSJjaGVja2VkIjpjYXNlImRpc2Fi
bGVkIjpjYXNlInJlYWRvbmx5IjowPT09ciYmKHI9IiIpO2JyZWFrO2Nhc2UiaHNwYWNlIjotMT09
PXImJihyPSIiKTticmVhaztjYXNlIm1heGxlbmd0aCI6Y2FzZSJ0YWJpbmRleCI6KDMyNzY4PT09
cnx8MjE0NzQ4MzY0Nz09PXJ8fCIzMjc2OCI9PT1yKSYmKHI9IiIpO2JyZWFrO2Nhc2UibXVsdGlw
bGUiOmNhc2UiY29tcGFjdCI6Y2FzZSJub3NoYWRlIjpjYXNlIm5vd3JhcCI6cmV0dXJuIDY1NTM1
PT09cj90Om47Y2FzZSJzaGFwZSI6cj1yLnRvTG93ZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDowPT09
dC5pbmRleE9mKCJvbiIpJiZyJiYocj0oIiIrcikucmVwbGFjZSgvXmZ1bmN0aW9uXHMrXHcrXChc
KVxzK1x7XHMrKC4qKVxzK1x9JC8sIiQxIikpfXJldHVybiByIT09byYmbnVsbCE9PXImJiIiIT09
cj8iIityOm59LGdldFBvczpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj0wLGk9MCxvLGE9bi5k
b2MscztpZihlPW4uZ2V0KGUpLHQ9dHx8YS5ib2R5LGUpe2lmKHQ9PT1hLmJvZHkmJmUuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KXJldHVybiBzPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdD1uLmJv
eE1vZGVsP2EuZG9jdW1lbnRFbGVtZW50OmEuYm9keSxyPXMubGVmdCsoYS5kb2N1bWVudEVsZW1l
bnQuc2Nyb2xsTGVmdHx8YS5ib2R5LnNjcm9sbExlZnQpLXQuY2xpZW50TGVmdCxpPXMudG9wKyhh
LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGEuYm9keS5zY3JvbGxUb3ApLXQuY2xpZW50VG9w
LHt4OnIseTppfTtmb3Iobz1lO28mJm8hPXQmJm8ubm9kZVR5cGU7KXIrPW8ub2Zmc2V0TGVmdHx8
MCxpKz1vLm9mZnNldFRvcHx8MCxvPW8ub2Zmc2V0UGFyZW50O2ZvcihvPWUucGFyZW50Tm9kZTtv
JiZvIT10JiZvLm5vZGVUeXBlOylyLT1vLnNjcm9sbExlZnR8fDAsaS09by5zY3JvbGxUb3B8fDAs
bz1vLnBhcmVudE5vZGV9cmV0dXJue3g6cix5Oml9fSxwYXJzZVN0eWxlOmZ1bmN0aW9uKGUpe3Jl
dHVybiB0aGlzLnN0eWxlcy5wYXJzZShlKX0sc2VyaWFsaXplU3R5bGU6ZnVuY3Rpb24oZSx0KXty
ZXR1cm4gdGhpcy5zdHlsZXMuc2VyaWFsaXplKGUsdCl9LGFkZFN0eWxlOmZ1bmN0aW9uKGUpe3Zh
ciB0PXRoaXMsbj10LmRvYyxyLGk7aWYodCE9PXUuRE9NJiZuPT09ZG9jdW1lbnQpe3ZhciBvPXUu
RE9NLmFkZGVkU3R5bGVzO2lmKG89b3x8W10sb1tlXSlyZXR1cm47b1tlXT0hMCx1LkRPTS5hZGRl
ZFN0eWxlcz1vfWk9bi5nZXRFbGVtZW50QnlJZCgibWNlRGVmYXVsdFN0eWxlcyIpLGl8fChpPW4u
Y3JlYXRlRWxlbWVudCgic3R5bGUiKSxpLmlkPSJtY2VEZWZhdWx0U3R5bGVzIixpLnR5cGU9InRl
eHQvY3NzIixyPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXSxyLmZpcnN0Q2hpbGQ/
ci5pbnNlcnRCZWZvcmUoaSxyLmZpcnN0Q2hpbGQpOnIuYXBwZW5kQ2hpbGQoaSkpLGkuc3R5bGVT
aGVldD9pLnN0eWxlU2hlZXQuY3NzVGV4dCs9ZTppLmFwcGVuZENoaWxkKG4uY3JlYXRlVGV4dE5v
ZGUoZSkpfSxsb2FkQ1NTOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10LmRvYyxyO3JldHVybiB0
IT09dS5ET00mJm49PT1kb2N1bWVudD92b2lkIHUuRE9NLmxvYWRDU1MoZSk6KGV8fChlPSIiKSxy
PW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXSx2b2lkIGQoZS5zcGxpdCgiLCIpLGZ1
bmN0aW9uKGUpe3ZhciBpO3QuZmlsZXNbZV18fCh0LmZpbGVzW2VdPSEwLGk9dC5jcmVhdGUoImxp
bmsiLHtyZWw6InN0eWxlc2hlZXQiLGhyZWY6ZX0pLHYmJm4uZG9jdW1lbnRNb2RlJiZuLnJlY2Fs
YyYmKGkub25sb2FkPWZ1bmN0aW9uKCl7bi5yZWNhbGMmJm4ucmVjYWxjKCksaS5vbmxvYWQ9bnVs
bH0pLHIuYXBwZW5kQ2hpbGQoaSkpfSkpfSxhZGRDbGFzczpmdW5jdGlvbihlLHQpe3JldHVybiB0
aGlzLnJ1bihlLGZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybiB0P3RoaXMuaGFzQ2xhc3MoZSx0KT9l
LmNsYXNzTmFtZToobj10aGlzLnJlbW92ZUNsYXNzKGUsdCksZS5jbGFzc05hbWU9bj0oIiIhPT1u
P24rIiAiOiIiKSt0LG4pOjB9KX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlz
LHI7cmV0dXJuIG4ucnVuKGUsZnVuY3Rpb24oZSl7dmFyIGk7cmV0dXJuIG4uaGFzQ2xhc3MoZSx0
KT8ocnx8KHI9bmV3IFJlZ0V4cCgiKF58XFxzKykiK3QrIihcXHMrfCQpIiwiZyIpKSxpPWUuY2xh
c3NOYW1lLnJlcGxhY2UociwiICIpLGk9aCgiICIhPWk/aToiIiksZS5jbGFzc05hbWU9aSxpfHwo
ZS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIiksZS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzTmFtZSIp
KSxpKTplLmNsYXNzTmFtZX0pfSxoYXNDbGFzczpmdW5jdGlvbihlLHQpe3JldHVybiBlPXRoaXMu
Z2V0KGUpLGUmJnQ/LTEhPT0oIiAiK2UuY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiICIrdCsiICIp
OiExfSx0b2dnbGVDbGFzczpmdW5jdGlvbihlLG4scil7cj1yPT09dD8hdGhpcy5oYXNDbGFzcyhl
LG4pOnIsdGhpcy5oYXNDbGFzcyhlLG4pIT09ciYmKHI/dGhpcy5hZGRDbGFzcyhlLG4pOnRoaXMu
cmVtb3ZlQ2xhc3MoZSxuKSl9LHNob3c6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0U3R5bGUo
ZSwiZGlzcGxheSIsImJsb2NrIil9LGhpZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0U3R5
bGUoZSwiZGlzcGxheSIsIm5vbmUiKX0saXNIaWRkZW46ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dGhp
cy5nZXQoZSksIWV8fCJub25lIj09ZS5zdHlsZS5kaXNwbGF5fHwibm9uZSI9PXRoaXMuZ2V0U3R5
bGUoZSwiZGlzcGxheSIpfSx1bmlxdWVJZDpmdW5jdGlvbihlKXtyZXR1cm4oZT9lOiJtY2VfIikr
dGhpcy5jb3VudGVyKyt9LHNldEhUTUw6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3JldHVybiBu
LnJ1bihlLGZ1bmN0aW9uKGUpe2lmKHYpe2Zvcig7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxk
KGUuZmlyc3RDaGlsZCk7dHJ5e2UuaW5uZXJIVE1MPSI8YnIgLz4iK3QsZS5yZW1vdmVDaGlsZChl
LmZpcnN0Q2hpbGQpfWNhdGNoKHIpe3ZhciBpPW4uY3JlYXRlKCJkaXYiKTtpLmlubmVySFRNTD0i
PGJyIC8+Iit0LGQocChpLmNoaWxkTm9kZXMpLGZ1bmN0aW9uKHQsbil7biYmZS5jYW5IYXZlSFRN
TCYmZS5hcHBlbmRDaGlsZCh0KX0pfX1lbHNlIGUuaW5uZXJIVE1MPXQ7cmV0dXJuIHR9KX0sZ2V0
T3V0ZXJIVE1MOmZ1bmN0aW9uKGUpe3ZhciB0LG49dGhpcztyZXR1cm4oZT1uLmdldChlKSk/MT09
PWUubm9kZVR5cGUmJm4uaGFzT3V0ZXJIVE1MP2Uub3V0ZXJIVE1MOih0PShlLm93bmVyRG9jdW1l
bnR8fG4uZG9jKS5jcmVhdGVFbGVtZW50KCJib2R5IiksdC5hcHBlbmRDaGlsZChlLmNsb25lTm9k
ZSghMCkpLHQuaW5uZXJIVE1MKTpudWxsfSxzZXRPdXRlckhUTUw6ZnVuY3Rpb24oZSx0LG4pe3Zh
ciByPXRoaXM7cmV0dXJuIHIucnVuKGUsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gaSgpe3ZhciBpLG87
Zm9yKG89bi5jcmVhdGVFbGVtZW50KCJib2R5Iiksby5pbm5lckhUTUw9dCxpPW8ubGFzdENoaWxk
O2k7KXIuaW5zZXJ0QWZ0ZXIoaS5jbG9uZU5vZGUoITApLGUpLGk9aS5wcmV2aW91c1NpYmxpbmc7
ci5yZW1vdmUoZSl9aWYoMT09ZS5ub2RlVHlwZSlpZihuPW58fGUub3duZXJEb2N1bWVudHx8ci5k
b2Msdil0cnl7MT09ZS5ub2RlVHlwZSYmci5oYXNPdXRlckhUTUw/ZS5vdXRlckhUTUw9dDppKCl9
Y2F0Y2gobyl7aSgpfWVsc2UgaSgpfSl9LGRlY29kZTphLmRlY29kZSxlbmNvZGU6YS5lbmNvZGVB
bGxSYXcsaW5zZXJ0QWZ0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD10aGlzLmdldCh0KSx0aGlz
LnJ1bihlLGZ1bmN0aW9uKGUpe3ZhciBuLHI7cmV0dXJuIG49dC5wYXJlbnROb2RlLHI9dC5uZXh0
U2libGluZyxyP24uaW5zZXJ0QmVmb3JlKGUscik6bi5hcHBlbmRDaGlsZChlKSxlfSl9LHJlcGxh
Y2U6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXM7cmV0dXJuIHIucnVuKHQsZnVuY3Rpb24odCl7
cmV0dXJuIGYodCwiYXJyYXkiKSYmKGU9ZS5jbG9uZU5vZGUoITApKSxuJiZkKHAodC5jaGlsZE5v
ZGVzKSxmdW5jdGlvbih0KXtlLmFwcGVuZENoaWxkKHQpfSksdC5wYXJlbnROb2RlLnJlcGxhY2VD
aGlsZChlLHQpfSl9LHJlbmFtZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscjtyZXR1cm4gZS5u
b2RlTmFtZSE9dC50b1VwcGVyQ2FzZSgpJiYocj1uLmNyZWF0ZSh0KSxkKG4uZ2V0QXR0cmlicyhl
KSxmdW5jdGlvbih0KXtuLnNldEF0dHJpYihyLHQubm9kZU5hbWUsbi5nZXRBdHRyaWIoZSx0Lm5v
ZGVOYW1lKSl9KSxuLnJlcGxhY2UocixlLDEpKSxyfHxlfSxmaW5kQ29tbW9uQW5jZXN0b3I6ZnVu
Y3Rpb24oZSx0KXtmb3IodmFyIG49ZSxyO247KXtmb3Iocj10O3ImJm4hPXI7KXI9ci5wYXJlbnRO
b2RlO2lmKG49PXIpYnJlYWs7bj1uLnBhcmVudE5vZGV9cmV0dXJuIW4mJmUub3duZXJEb2N1bWVu
dD9lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Om59LHRvSGV4OmZ1bmN0aW9uKGUpe3Jl
dHVybiB0aGlzLnN0eWxlcy50b0hleChsLnRyaW0oZSkpfSxydW46ZnVuY3Rpb24oZSx0LG4pe3Zh
ciByPXRoaXMsaTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXIuZ2V0KGUpKSxlPyhuPW58
fHRoaXMsZS5ub2RlVHlwZXx8IWUubGVuZ3RoJiYwIT09ZS5sZW5ndGg/dC5jYWxsKG4sZSk6KGk9
W10sZChlLGZ1bmN0aW9uKGUsbyl7ZSYmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9ci5nZXQoZSkp
LGkucHVzaCh0LmNhbGwobixlLG8pKSl9KSxpKSk6ITF9LGdldEF0dHJpYnM6ZnVuY3Rpb24oZSl7
dmFyIHQ7aWYoZT10aGlzLmdldChlKSwhZSlyZXR1cm5bXTtpZih2KXtpZih0PVtdLCJPQkpFQ1Qi
PT1lLm5vZGVOYW1lKXJldHVybiBlLmF0dHJpYnV0ZXM7Ik9QVElPTiI9PT1lLm5vZGVOYW1lJiZ0
aGlzLmdldEF0dHJpYihlLCJzZWxlY3RlZCIpJiZ0LnB1c2goe3NwZWNpZmllZDoxLG5vZGVOYW1l
OiJzZWxlY3RlZCJ9KTt2YXIgbj0vPFwvP1tcdzpcLV0rID98PVtcIl1bXlwiXStcInw9XCdbXlwn
XStcJ3w9W1x3XC1dK3w+L2dpO3JldHVybiBlLmNsb25lTm9kZSghMSkub3V0ZXJIVE1MLnJlcGxh
Y2UobiwiIikucmVwbGFjZSgvW1x3OlwtXSsvZ2ksZnVuY3Rpb24oZSl7dC5wdXNoKHtzcGVjaWZp
ZWQ6MSxub2RlTmFtZTplfSl9KSx0fXJldHVybiBlLmF0dHJpYnV0ZXN9LGlzRW1wdHk6ZnVuY3Rp
b24oZSx0KXt2YXIgbj10aGlzLHIsbyxhLHMsbCxjPTA7aWYoZT1lLmZpcnN0Q2hpbGQpe3M9bmV3
IGkoZSxlLnBhcmVudE5vZGUpLHQ9dHx8bi5zY2hlbWE/bi5zY2hlbWEuZ2V0Tm9uRW1wdHlFbGVt
ZW50cygpOm51bGw7ZG97aWYoYT1lLm5vZGVUeXBlLDE9PT1hKXtpZihlLmdldEF0dHJpYnV0ZSgi
ZGF0YS1tY2UtYm9ndXMiKSljb250aW51ZTtpZihsPWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSx0
JiZ0W2xdKXtpZigiYnIiPT09bCl7YysrO2NvbnRpbnVlfXJldHVybiExfWZvcihvPW4uZ2V0QXR0
cmlicyhlKSxyPW8ubGVuZ3RoO3ItLTspaWYobD1vW3JdLm5vZGVOYW1lLCJuYW1lIj09PWx8fCJk
YXRhLW1jZS1ib29rbWFyayI9PT1sKXJldHVybiExfWlmKDg9PWEpcmV0dXJuITE7aWYoMz09PWEm
JiFiLnRlc3QoZS5ub2RlVmFsdWUpKXJldHVybiExfXdoaWxlKGU9cy5uZXh0KCkpfXJldHVybiAx
Pj1jfSxjcmVhdGVSbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmRvYztyZXR1cm4gZS5jcmVhdGVS
YW5nZT9lLmNyZWF0ZVJhbmdlKCk6bmV3IG8odGhpcyl9LG5vZGVJbmRleDpmdW5jdGlvbihlLHQp
e3ZhciBuPTAscixpO2lmKGUpZm9yKHI9ZS5ub2RlVHlwZSxlPWUucHJldmlvdXNTaWJsaW5nO2U7
ZT1lLnByZXZpb3VzU2libGluZylpPWUubm9kZVR5cGUsKCF0fHwzIT1pfHxpIT1yJiZlLm5vZGVW
YWx1ZS5sZW5ndGgpJiYobisrLHI9aSk7cmV0dXJuIG59LHNwbGl0OmZ1bmN0aW9uKGUsdCxuKXtm
dW5jdGlvbiByKGUpe2Z1bmN0aW9uIHQoZSl7dmFyIHQ9ZS5wcmV2aW91c1NpYmxpbmcmJiJTUEFO
Ij09ZS5wcmV2aW91c1NpYmxpbmcubm9kZU5hbWUsbj1lLm5leHRTaWJsaW5nJiYiU1BBTiI9PWUu
bmV4dFNpYmxpbmcubm9kZU5hbWU7cmV0dXJuIHQmJm59dmFyIG4sbz1lLmNoaWxkTm9kZXMsYT1l
Lm5vZGVUeXBlO2lmKDEhPWF8fCJib29rbWFyayIhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS10
eXBlIikpe2ZvcihuPW8ubGVuZ3RoLTE7bj49MDtuLS0pcihvW25dKTtpZig5IT1hKXtpZigzPT1h
JiZlLm5vZGVWYWx1ZS5sZW5ndGg+MCl7dmFyIHM9aChlLm5vZGVWYWx1ZSkubGVuZ3RoO2lmKCFp
LmlzQmxvY2soZS5wYXJlbnROb2RlKXx8cz4wfHwwPT09cyYmdChlKSlyZXR1cm59ZWxzZSBpZigx
PT1hJiYobz1lLmNoaWxkTm9kZXMsMT09by5sZW5ndGgmJm9bMF0mJjE9PW9bMF0ubm9kZVR5cGUm
JiJib29rbWFyayI9PW9bMF0uZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS10eXBlIikmJmUucGFyZW50
Tm9kZS5pbnNlcnRCZWZvcmUob1swXSxlKSxvLmxlbmd0aHx8L14oYnJ8aHJ8aW5wdXR8aW1nKSQv
aS50ZXN0KGUubm9kZU5hbWUpKSlyZXR1cm47aS5yZW1vdmUoZSl9cmV0dXJuIGV9fXZhciBpPXRo
aXMsbz1pLmNyZWF0ZVJuZygpLGEscyxsO3JldHVybiBlJiZ0PyhvLnNldFN0YXJ0KGUucGFyZW50
Tm9kZSxpLm5vZGVJbmRleChlKSksby5zZXRFbmQodC5wYXJlbnROb2RlLGkubm9kZUluZGV4KHQp
KSxhPW8uZXh0cmFjdENvbnRlbnRzKCksbz1pLmNyZWF0ZVJuZygpLG8uc2V0U3RhcnQodC5wYXJl
bnROb2RlLGkubm9kZUluZGV4KHQpKzEpLG8uc2V0RW5kKGUucGFyZW50Tm9kZSxpLm5vZGVJbmRl
eChlKSsxKSxzPW8uZXh0cmFjdENvbnRlbnRzKCksbD1lLnBhcmVudE5vZGUsbC5pbnNlcnRCZWZv
cmUocihhKSxlKSxuP2wucmVwbGFjZUNoaWxkKG4sdCk6bC5pbnNlcnRCZWZvcmUodCxlKSxsLmlu
c2VydEJlZm9yZShyKHMpLGUpLGkucmVtb3ZlKGUpLG58fHQpOnZvaWQgMH0sYmluZDpmdW5jdGlv
bihlLHQsbixyKXt2YXIgaT10aGlzO2lmKGwuaXNBcnJheShlKSl7Zm9yKHZhciBvPWUubGVuZ3Ro
O28tLTspZVtvXT1pLmJpbmQoZVtvXSx0LG4scik7cmV0dXJuIGV9cmV0dXJuIWkuc2V0dGluZ3Mu
Y29sbGVjdHx8ZSE9PWkuZG9jJiZlIT09aS53aW58fGkuYm91bmRFdmVudHMucHVzaChbZSx0LG4s
cl0pLGkuZXZlbnRzLmJpbmQoZSx0LG4scnx8aSl9LHVuYmluZDpmdW5jdGlvbihlLHQsbil7dmFy
IHI9dGhpcyxpO2lmKGwuaXNBcnJheShlKSl7Zm9yKGk9ZS5sZW5ndGg7aS0tOyllW2ldPXIudW5i
aW5kKGVbaV0sdCxuKTtyZXR1cm4gZX1pZihyLmJvdW5kRXZlbnRzJiYoZT09PXIuZG9jfHxlPT09
ci53aW4pKWZvcihpPXIuYm91bmRFdmVudHMubGVuZ3RoO2ktLTspe3ZhciBvPXIuYm91bmRFdmVu
dHNbaV07ZSE9b1swXXx8dCYmdCE9b1sxXXx8biYmbiE9b1syXXx8dGhpcy5ldmVudHMudW5iaW5k
KG9bMF0sb1sxXSxvWzJdKX1yZXR1cm4gdGhpcy5ldmVudHMudW5iaW5kKGUsdCxuKX0sZmlyZTpm
dW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuZXZlbnRzLmZpcmUoZSx0LG4pfSxnZXRDb250ZW50
RWRpdGFibGU6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGUmJjE9PWUubm9kZVR5cGU/KHQ9ZS5n
ZXRBdHRyaWJ1dGUoImRhdGEtbWNlLWNvbnRlbnRlZGl0YWJsZSIpLHQmJiJpbmhlcml0IiE9PXQ/
dDoiaW5oZXJpdCIhPT1lLmNvbnRlbnRFZGl0YWJsZT9lLmNvbnRlbnRFZGl0YWJsZTpudWxsKTpu
dWxsfSxnZXRDb250ZW50RWRpdGFibGVQYXJlbnQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMu
Z2V0Um9vdCgpLG49bnVsbDtlJiZlIT09dCYmKG49dGhpcy5nZXRDb250ZW50RWRpdGFibGUoZSks
bnVsbD09PW4pO2U9ZS5wYXJlbnROb2RlKTtyZXR1cm4gbn0sZGVzdHJveTpmdW5jdGlvbigpe3Zh
ciB0PXRoaXM7aWYodC5ib3VuZEV2ZW50cyl7Zm9yKHZhciBuPXQuYm91bmRFdmVudHMubGVuZ3Ro
O24tLTspe3ZhciByPXQuYm91bmRFdmVudHNbbl07Cit0aGlzLmV2ZW50cy51bmJpbmQoclswXSxy
WzFdLHJbMl0pfXQuYm91bmRFdmVudHM9bnVsbH1lLnNldERvY3VtZW50JiZlLnNldERvY3VtZW50
KCksdC53aW49dC5kb2M9dC5yb290PXQuZXZlbnRzPXQuZnJhZz1udWxsfSxpc0NoaWxkT2Y6ZnVu
Y3Rpb24oZSx0KXtmb3IoO2U7KXtpZih0PT09ZSlyZXR1cm4hMDtlPWUucGFyZW50Tm9kZX1yZXR1
cm4hMX0sZHVtcFJuZzpmdW5jdGlvbihlKXtyZXR1cm4ic3RhcnRDb250YWluZXI6ICIrZS5zdGFy
dENvbnRhaW5lci5ub2RlTmFtZSsiLCBzdGFydE9mZnNldDogIitlLnN0YXJ0T2Zmc2V0KyIsIGVu
ZENvbnRhaW5lcjogIitlLmVuZENvbnRhaW5lci5ub2RlTmFtZSsiLCBlbmRPZmZzZXQ6ICIrZS5l
bmRPZmZzZXR9LF9maW5kU2liOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzLGk9dDtpZihlKWZv
cigic3RyaW5nIj09dHlwZW9mIGkmJihpPWZ1bmN0aW9uKGUpe3JldHVybiByLmlzKGUsdCl9KSxl
PWVbbl07ZTtlPWVbbl0paWYoaShlKSlyZXR1cm4gZTtyZXR1cm4gbnVsbH19LHUuRE9NPW5ldyB1
KGRvY3VtZW50KSx1fSkscihiLFt5LHBdLGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe2Z1bmN0
aW9uIGUoZSx0KXtmdW5jdGlvbiBuKCl7by5yZW1vdmUocyksYSYmKGEub25yZWFkeXN0YXRlY2hh
bmdlPWEub25sb2FkPWE9bnVsbCksdCgpfWZ1bmN0aW9uIGkoKXsidW5kZWZpbmVkIiE9dHlwZW9m
IGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRmFpbGVkIHRvIGxvYWQ6ICIrZSl9
dmFyIG89cixhLHM7cz1vLnVuaXF1ZUlkKCksYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3Jp
cHQiKSxhLmlkPXMsYS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGEuc3JjPWUsIm9ucmVhZHlzdGF0
ZWNoYW5nZSJpbiBhP2Eub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7L2xvYWRlZHxjb21w
bGV0ZS8udGVzdChhLnJlYWR5U3RhdGUpJiZuKCl9OmEub25sb2FkPW4sYS5vbmVycm9yPWksKGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmJvZHkpLmFw
cGVuZENoaWxkKGEpfXZhciB0PTAsbj0xLGE9MixzPXt9LGw9W10sYz17fSx1PVtdLGQ9MCxmO3Ro
aXMuaXNEb25lPWZ1bmN0aW9uKGUpe3JldHVybiBzW2VdPT1hfSx0aGlzLm1hcmtEb25lPWZ1bmN0
aW9uKGUpe3NbZV09YX0sdGhpcy5hZGQ9dGhpcy5sb2FkPWZ1bmN0aW9uKGUsbixyKXt2YXIgaT1z
W2VdO2k9PWYmJihsLnB1c2goZSksc1tlXT10KSxuJiYoY1tlXXx8KGNbZV09W10pLGNbZV0ucHVz
aCh7ZnVuYzpuLHNjb3BlOnJ8fHRoaXN9KSl9LHRoaXMubG9hZFF1ZXVlPWZ1bmN0aW9uKGUsdCl7
dGhpcy5sb2FkU2NyaXB0cyhsLGUsdCl9LHRoaXMubG9hZFNjcmlwdHM9ZnVuY3Rpb24odCxyLGwp
e2Z1bmN0aW9uIHAoZSl7aShjW2VdLGZ1bmN0aW9uKGUpe2UuZnVuYy5jYWxsKGUuc2NvcGUpfSks
Y1tlXT1mfXZhciBoO3UucHVzaCh7ZnVuYzpyLHNjb3BlOmx8fHRoaXN9KSwoaD1mdW5jdGlvbigp
e3ZhciByPW8odCk7dC5sZW5ndGg9MCxpKHIsZnVuY3Rpb24odCl7cmV0dXJuIHNbdF09PWE/dm9p
ZCBwKHQpOnZvaWQoc1t0XSE9biYmKHNbdF09bixkKyssZSh0LGZ1bmN0aW9uKCl7c1t0XT1hLGQt
LSxwKHQpLGgoKX0pKSl9KSxkfHwoaSh1LGZ1bmN0aW9uKGUpe2UuZnVuYy5jYWxsKGUuc2NvcGUp
fSksdS5sZW5ndGg9MCl9KSgpfX12YXIgcj1lLkRPTSxpPXQuZWFjaCxvPXQuZ3JlcDtyZXR1cm4g
bi5TY3JpcHRMb2FkZXI9bmV3IG4sbn0pLHIoQyxbYixwXSxmdW5jdGlvbihlLG4pe2Z1bmN0aW9u
IHIoKXt2YXIgZT10aGlzO2UuaXRlbXM9W10sZS51cmxzPXt9LGUubG9va3VwPXt9fXZhciBpPW4u
ZWFjaDtyZXR1cm4gci5wcm90b3R5cGU9e2dldDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5sb29r
dXBbZV0/dGhpcy5sb29rdXBbZV0uaW5zdGFuY2U6dH0sZGVwZW5kZW5jaWVzOmZ1bmN0aW9uKGUp
e3ZhciB0O3JldHVybiB0aGlzLmxvb2t1cFtlXSYmKHQ9dGhpcy5sb29rdXBbZV0uZGVwZW5kZW5j
aWVzKSx0fHxbXX0scmVxdWlyZUxhbmdQYWNrOmZ1bmN0aW9uKHQsbil7dmFyIGk9ci5sYW5ndWFn
ZTtpZihpJiZyLmxhbmd1YWdlTG9hZCE9PSExKXtpZihuKWlmKG49IiwiK24rIiwiLC0xIT1uLmlu
ZGV4T2YoIiwiK2kuc3Vic3RyKDAsMikrIiwiKSlpPWkuc3Vic3RyKDAsMik7ZWxzZSBpZigtMT09
bi5pbmRleE9mKCIsIitpKyIsIikpcmV0dXJuO2UuU2NyaXB0TG9hZGVyLmFkZCh0aGlzLnVybHNb
dF0rIi9sYW5ncy8iK2krIi5qcyIpfX0sYWRkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5p
dGVtcy5wdXNoKHQpLHRoaXMubG9va3VwW2VdPXtpbnN0YW5jZTp0LGRlcGVuZGVuY2llczpufSx0
fSxjcmVhdGVVcmw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/dDp7cHJl
Zml4OmUucHJlZml4LHJlc291cmNlOnQsc3VmZml4OmUuc3VmZml4fX0sYWRkQ29tcG9uZW50czpm
dW5jdGlvbih0LG4pe3ZhciByPXRoaXMudXJsc1t0XTtpKG4sZnVuY3Rpb24odCl7ZS5TY3JpcHRM
b2FkZXIuYWRkKHIrIi8iK3QpfSl9LGxvYWQ6ZnVuY3Rpb24obixvLGEscyl7ZnVuY3Rpb24gbCgp
e3ZhciByPWMuZGVwZW5kZW5jaWVzKG4pO2kocixmdW5jdGlvbihlKXt2YXIgbj1jLmNyZWF0ZVVy
bChvLGUpO2MubG9hZChuLnJlc291cmNlLG4sdCx0KX0pLGEmJmEuY2FsbChzP3M6ZSl9dmFyIGM9
dGhpcyx1PW87Yy51cmxzW25dfHwoIm9iamVjdCI9PXR5cGVvZiBvJiYodT1vLnByZWZpeCtvLnJl
c291cmNlK28uc3VmZml4KSwwIT09dS5pbmRleE9mKCIvIikmJi0xPT11LmluZGV4T2YoIjovLyIp
JiYodT1yLmJhc2VVUkwrIi8iK3UpLGMudXJsc1tuXT11LnN1YnN0cmluZygwLHUubGFzdEluZGV4
T2YoIi8iKSksYy5sb29rdXBbbl0/bCgpOmUuU2NyaXB0TG9hZGVyLmFkZCh1LGwscykpfX0sci5Q
bHVnaW5NYW5hZ2VyPW5ldyByLHIuVGhlbWVNYW5hZ2VyPW5ldyByLHJ9KSxyKHgsW10sZnVuY3Rp
b24oKXtmdW5jdGlvbiBlKGUsdCxuKXt2YXIgcixpLG89bj8ibGFzdENoaWxkIjoiZmlyc3RDaGls
ZCIsYT1uPyJwcmV2IjoibmV4dCI7aWYoZVtvXSlyZXR1cm4gZVtvXTtpZihlIT09dCl7aWYocj1l
W2FdKXJldHVybiByO2ZvcihpPWUucGFyZW50O2kmJmkhPT10O2k9aS5wYXJlbnQpaWYocj1pW2Fd
KXJldHVybiByfX1mdW5jdGlvbiB0KGUsdCl7dGhpcy5uYW1lPWUsdGhpcy50eXBlPXQsMT09PXQm
Jih0aGlzLmF0dHJpYnV0ZXM9W10sdGhpcy5hdHRyaWJ1dGVzLm1hcD17fSl9dmFyIG49L15bIFx0
XHJcbl0qJC8scj17IiN0ZXh0IjozLCIjY29tbWVudCI6OCwiI2NkYXRhIjo0LCIjcGkiOjcsIiNk
b2N0eXBlIjoxMCwiI2RvY3VtZW50LWZyYWdtZW50IjoxMX07cmV0dXJuIHQucHJvdG90eXBlPXty
ZXBsYWNlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGUucGFyZW50JiZlLnJlbW92ZSgp
LHQuaW5zZXJ0KGUsdCksdC5yZW1vdmUoKSx0fSxhdHRyOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhp
cyxyLGksbztpZigic3RyaW5nIiE9dHlwZW9mIGUpe2ZvcihpIGluIGUpbi5hdHRyKGksZVtpXSk7
cmV0dXJuIG59aWYocj1uLmF0dHJpYnV0ZXMpe2lmKHQhPT1vKXtpZihudWxsPT09dCl7aWYoZSBp
biByLm1hcClmb3IoZGVsZXRlIHIubWFwW2VdLGk9ci5sZW5ndGg7aS0tOylpZihyW2ldLm5hbWU9
PT1lKXJldHVybiByPXIuc3BsaWNlKGksMSksbjtyZXR1cm4gbn1pZihlIGluIHIubWFwKXtmb3Io
aT1yLmxlbmd0aDtpLS07KWlmKHJbaV0ubmFtZT09PWUpe3JbaV0udmFsdWU9dDticmVha319ZWxz
ZSByLnB1c2goe25hbWU6ZSx2YWx1ZTp0fSk7cmV0dXJuIHIubWFwW2VdPXQsbn1yZXR1cm4gci5t
YXBbZV19fSxjbG9uZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1uZXcgdChlLm5hbWUsZS50eXBl
KSxyLGksbyxhLHM7aWYobz1lLmF0dHJpYnV0ZXMpe2ZvcihzPVtdLHMubWFwPXt9LHI9MCxpPW8u
bGVuZ3RoO2k+cjtyKyspYT1vW3JdLCJpZCIhPT1hLm5hbWUmJihzW3MubGVuZ3RoXT17bmFtZTph
Lm5hbWUsdmFsdWU6YS52YWx1ZX0scy5tYXBbYS5uYW1lXT1hLnZhbHVlKTtuLmF0dHJpYnV0ZXM9
c31yZXR1cm4gbi52YWx1ZT1lLnZhbHVlLG4uc2hvcnRFbmRlZD1lLnNob3J0RW5kZWQsbn0sd3Jh
cDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0LnBhcmVudC5pbnNlcnQoZSx0KSxlLmFw
cGVuZCh0KSx0fSx1bndyYXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQsbjtmb3IodD1lLmZpcnN0
Q2hpbGQ7dDspbj10Lm5leHQsZS5pbnNlcnQodCxlLCEwKSx0PW47ZS5yZW1vdmUoKX0scmVtb3Zl
OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUucGFyZW50LG49ZS5uZXh0LHI9ZS5wcmV2O3JldHVy
biB0JiYodC5maXJzdENoaWxkPT09ZT8odC5maXJzdENoaWxkPW4sbiYmKG4ucHJldj1udWxsKSk6
ci5uZXh0PW4sdC5sYXN0Q2hpbGQ9PT1lPyh0Lmxhc3RDaGlsZD1yLHImJihyLm5leHQ9bnVsbCkp
Om4ucHJldj1yLGUucGFyZW50PWUubmV4dD1lLnByZXY9bnVsbCksZX0sYXBwZW5kOmZ1bmN0aW9u
KGUpe3ZhciB0PXRoaXMsbjtyZXR1cm4gZS5wYXJlbnQmJmUucmVtb3ZlKCksbj10Lmxhc3RDaGls
ZCxuPyhuLm5leHQ9ZSxlLnByZXY9bix0Lmxhc3RDaGlsZD1lKTp0Lmxhc3RDaGlsZD10LmZpcnN0
Q2hpbGQ9ZSxlLnBhcmVudD10LGV9LGluc2VydDpmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJu
IGUucGFyZW50JiZlLnJlbW92ZSgpLHI9dC5wYXJlbnR8fHRoaXMsbj8odD09PXIuZmlyc3RDaGls
ZD9yLmZpcnN0Q2hpbGQ9ZTp0LnByZXYubmV4dD1lLGUucHJldj10LnByZXYsZS5uZXh0PXQsdC5w
cmV2PWUpOih0PT09ci5sYXN0Q2hpbGQ/ci5sYXN0Q2hpbGQ9ZTp0Lm5leHQucHJldj1lLGUubmV4
dD10Lm5leHQsZS5wcmV2PXQsdC5uZXh0PWUpLGUucGFyZW50PXIsZX0sZ2V0QWxsOmZ1bmN0aW9u
KHQpe3ZhciBuPXRoaXMscixpPVtdO2ZvcihyPW4uZmlyc3RDaGlsZDtyO3I9ZShyLG4pKXIubmFt
ZT09PXQmJmkucHVzaChyKTtyZXR1cm4gaX0sZW1wdHk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG4s
cixpO2lmKHQuZmlyc3RDaGlsZCl7Zm9yKG49W10saT10LmZpcnN0Q2hpbGQ7aTtpPWUoaSx0KSlu
LnB1c2goaSk7Zm9yKHI9bi5sZW5ndGg7ci0tOylpPW5bcl0saS5wYXJlbnQ9aS5maXJzdENoaWxk
PWkubGFzdENoaWxkPWkubmV4dD1pLnByZXY9bnVsbH1yZXR1cm4gdC5maXJzdENoaWxkPXQubGFz
dENoaWxkPW51bGwsdH0saXNFbXB0eTpmdW5jdGlvbih0KXt2YXIgcj10aGlzLGk9ci5maXJzdENo
aWxkLG8sYTtpZihpKWRve2lmKDE9PT1pLnR5cGUpe2lmKGkuYXR0cmlidXRlcy5tYXBbImRhdGEt
bWNlLWJvZ3VzIl0pY29udGludWU7aWYodFtpLm5hbWVdKXJldHVybiExO2ZvcihvPWkuYXR0cmli
dXRlcy5sZW5ndGg7by0tOylpZihhPWkuYXR0cmlidXRlc1tvXS5uYW1lLCJuYW1lIj09PWF8fDA9
PT1hLmluZGV4T2YoImRhdGEtbWNlLSIpKXJldHVybiExfWlmKDg9PT1pLnR5cGUpcmV0dXJuITE7
aWYoMz09PWkudHlwZSYmIW4udGVzdChpLnZhbHVlKSlyZXR1cm4hMX13aGlsZShpPWUoaSxyKSk7
cmV0dXJuITB9LHdhbGs6ZnVuY3Rpb24odCl7cmV0dXJuIGUodGhpcyxudWxsLHQpfX0sdC5jcmVh
dGU9ZnVuY3Rpb24oZSxuKXt2YXIgaSxvO2lmKGk9bmV3IHQoZSxyW2VdfHwxKSxuKWZvcihvIGlu
IG4paS5hdHRyKG8sbltvXSk7cmV0dXJuIGl9LHR9KSxyKHcsW3BdLGZ1bmN0aW9uKGUpe2Z1bmN0
aW9uIHQoZSx0KXtyZXR1cm4gZT9lLnNwbGl0KHR8fCIgIik6W119ZnVuY3Rpb24gbihlKXtmdW5j
dGlvbiBuKGUsbixyKXtmdW5jdGlvbiBpKGUpe3ZhciB0PXt9LG4scjtmb3Iobj0wLHI9ZS5sZW5n
dGg7cj5uO24rKyl0W2Vbbl1dPXt9O3JldHVybiB0fXZhciBvLGwsYyx1PWFyZ3VtZW50cztmb3Io
cj1yfHxbXSxuPW58fCIiLCJzdHJpbmciPT10eXBlb2YgciYmKHI9dChyKSksbD0zO2w8dS5sZW5n
dGg7bCsrKSJzdHJpbmciPT10eXBlb2YgdVtsXSYmKHVbbF09dCh1W2xdKSksci5wdXNoLmFwcGx5
KHIsdVtsXSk7Zm9yKGU9dChlKSxvPWUubGVuZ3RoO28tLTspYz1bXS5jb25jYXQocyx0KG4pKSxh
W2Vbb11dPXthdHRyaWJ1dGVzOmkoYyksYXR0cmlidXRlc09yZGVyOmMsY2hpbGRyZW46aShyKX19
ZnVuY3Rpb24gaShlLG4pe3ZhciByLGksbyxzO2ZvcihlPXQoZSkscj1lLmxlbmd0aCxuPXQobik7
ci0tOylmb3IoaT1hW2Vbcl1dLG89MCxzPW4ubGVuZ3RoO3M+bztvKyspaS5hdHRyaWJ1dGVzW25b
b11dPXt9LGkuYXR0cmlidXRlc09yZGVyLnB1c2gobltvXSl9dmFyIGE9e30scyxsLGMsdSxkLGY7
cmV0dXJuIHJbZV0/cltlXToocz10KCJpZCBhY2Nlc3NrZXkgY2xhc3MgZGlyIGxhbmcgc3R5bGUg
dGFiaW5kZXggdGl0bGUiKSxsPXQoImFkZHJlc3MgYmxvY2txdW90ZSBkaXYgZGwgZmllbGRzZXQg
Zm9ybSBoMSBoMiBoMyBoNCBoNSBoNiBociBtZW51IG9sIHAgcHJlIHRhYmxlIHVsIiksYz10KCJh
IGFiYnIgYiBiZG8gYnIgYnV0dG9uIGNpdGUgY29kZSBkZWwgZGZuIGVtIGVtYmVkIGkgaWZyYW1l
IGltZyBpbnB1dCBpbnMga2JkIGxhYmVsIG1hcCBub3NjcmlwdCBvYmplY3QgcSBzIHNhbXAgc2Ny
aXB0IHNlbGVjdCBzbWFsbCBzcGFuIHN0cm9uZyBzdWIgc3VwIHRleHRhcmVhIHUgdmFyICN0ZXh0
ICNjb21tZW50IiksImh0bWw0IiE9ZSYmKHMucHVzaC5hcHBseShzLHQoImNvbnRlbnRlZGl0YWJs
ZSBjb250ZXh0bWVudSBkcmFnZ2FibGUgZHJvcHpvbmUgaGlkZGVuIHNwZWxsY2hlY2sgdHJhbnNs
YXRlIikpLGwucHVzaC5hcHBseShsLHQoImFydGljbGUgYXNpZGUgZGV0YWlscyBkaWFsb2cgZmln
dXJlIGhlYWRlciBmb290ZXIgaGdyb3VwIHNlY3Rpb24gbmF2IikpLGMucHVzaC5hcHBseShjLHQo
ImF1ZGlvIGNhbnZhcyBjb21tYW5kIGRhdGFsaXN0IG1hcmsgbWV0ZXIgb3V0cHV0IHByb2dyZXNz
IHRpbWUgd2JyIHZpZGVvIHJ1YnkgYmRpIGtleWdlbiIpKSksImh0bWw1LXN0cmljdCIhPWUmJihz
LnB1c2goInhtbDpsYW5nIiksZj10KCJhY3JvbnltIGFwcGxldCBiYXNlZm9udCBiaWcgZm9udCBz
dHJpa2UgdHQiKSxjLnB1c2guYXBwbHkoYyxmKSxvKGYsZnVuY3Rpb24oZSl7bihlLCIiLGMpfSks
ZD10KCJjZW50ZXIgZGlyIGlzaW5kZXggbm9mcmFtZXMiKSxsLnB1c2guYXBwbHkobCxkKSx1PVtd
LmNvbmNhdChsLGMpLG8oZCxmdW5jdGlvbihlKXtuKGUsIiIsdSl9KSksdT11fHxbXS5jb25jYXQo
bCxjKSxuKCJodG1sIiwibWFuaWZlc3QiLCJoZWFkIGJvZHkiKSxuKCJoZWFkIiwiIiwiYmFzZSBj
b21tYW5kIGxpbmsgbWV0YSBub3NjcmlwdCBzY3JpcHQgc3R5bGUgdGl0bGUiKSxuKCJ0aXRsZSBo
ciBub3NjcmlwdCBiciIpLG4oImJhc2UiLCJocmVmIHRhcmdldCIpLG4oImxpbmsiLCJocmVmIHJl
bCBtZWRpYSBocmVmbGFuZyB0eXBlIHNpemVzIGhyZWZsYW5nIiksbigibWV0YSIsIm5hbWUgaHR0
cC1lcXVpdiBjb250ZW50IGNoYXJzZXQiKSxuKCJzdHlsZSIsIm1lZGlhIHR5cGUgc2NvcGVkIiks
bigic2NyaXB0Iiwic3JjIGFzeW5jIGRlZmVyIHR5cGUgY2hhcnNldCIpLG4oImJvZHkiLCJvbmFm
dGVycHJpbnQgb25iZWZvcmVwcmludCBvbmJlZm9yZXVubG9hZCBvbmJsdXIgb25lcnJvciBvbmZv
Y3VzIG9uaGFzaGNoYW5nZSBvbmxvYWQgb25tZXNzYWdlIG9ub2ZmbGluZSBvbm9ubGluZSBvbnBh
Z2VoaWRlIG9ucGFnZXNob3cgb25wb3BzdGF0ZSBvbnJlc2l6ZSBvbnNjcm9sbCBvbnN0b3JhZ2Ug
b251bmxvYWQiLHUpLG4oImFkZHJlc3MgZHQgZGQgZGl2IGNhcHRpb24iLCIiLHUpLG4oImgxIGgy
IGgzIGg0IGg1IGg2IHByZSBwIGFiYnIgY29kZSB2YXIgc2FtcCBrYmQgc3ViIHN1cCBpIGIgdSBi
ZG8gc3BhbiBsZWdlbmQgZW0gc3Ryb25nIHNtYWxsIHMgY2l0ZSBkZm4iLCIiLGMpLG4oImJsb2Nr
cXVvdGUiLCJjaXRlIix1KSxuKCJvbCIsInJldmVyc2VkIHN0YXJ0IHR5cGUiLCJsaSIpLG4oInVs
IiwiIiwibGkiKSxuKCJsaSIsInZhbHVlIix1KSxuKCJkbCIsIiIsImR0IGRkIiksbigiYSIsImhy
ZWYgdGFyZ2V0IHJlbCBtZWRpYSBocmVmbGFuZyB0eXBlIixjKSxuKCJxIiwiY2l0ZSIsYyksbigi
aW5zIGRlbCIsImNpdGUgZGF0ZXRpbWUiLHUpLG4oImltZyIsInNyYyBhbHQgdXNlbWFwIGlzbWFw
IHdpZHRoIGhlaWdodCIpLG4oImlmcmFtZSIsInNyYyBuYW1lIHdpZHRoIGhlaWdodCIsdSksbigi
ZW1iZWQiLCJzcmMgdHlwZSB3aWR0aCBoZWlnaHQiKSxuKCJvYmplY3QiLCJkYXRhIHR5cGUgdHlw
ZW11c3RtYXRjaCBuYW1lIHVzZW1hcCBmb3JtIHdpZHRoIGhlaWdodCIsdSwicGFyYW0iKSxuKCJw
YXJhbSIsIm5hbWUgdmFsdWUiKSxuKCJtYXAiLCJuYW1lIix1LCJhcmVhIiksbigiYXJlYSIsImFs
dCBjb29yZHMgc2hhcGUgaHJlZiB0YXJnZXQgcmVsIG1lZGlhIGhyZWZsYW5nIHR5cGUiKSxuKCJ0
YWJsZSIsImJvcmRlciIsImNhcHRpb24gY29sZ3JvdXAgdGhlYWQgdGZvb3QgdGJvZHkgdHIiKygi
aHRtbDQiPT1lPyIgY29sIjoiIikpLG4oImNvbGdyb3VwIiwic3BhbiIsImNvbCIpLG4oImNvbCIs
InNwYW4iKSxuKCJ0Ym9keSB0aGVhZCB0Zm9vdCIsIiIsInRyIiksbigidHIiLCIiLCJ0ZCB0aCIp
LG4oInRkIiwiY29sc3BhbiByb3dzcGFuIGhlYWRlcnMiLHUpLG4oInRoIiwiY29sc3BhbiByb3dz
cGFuIGhlYWRlcnMgc2NvcGUgYWJiciIsdSksbigiZm9ybSIsImFjY2VwdC1jaGFyc2V0IGFjdGlv
biBhdXRvY29tcGxldGUgZW5jdHlwZSBtZXRob2QgbmFtZSBub3ZhbGlkYXRlIHRhcmdldCIsdSks
bigiZmllbGRzZXQiLCJkaXNhYmxlZCBmb3JtIG5hbWUiLHUsImxlZ2VuZCIpLG4oImxhYmVsIiwi
Zm9ybSBmb3IiLGMpLG4oImlucHV0IiwiYWNjZXB0IGFsdCBhdXRvY29tcGxldGUgY2hlY2tlZCBk
aXJuYW1lIGRpc2FibGVkIGZvcm0gZm9ybWFjdGlvbiBmb3JtZW5jdHlwZSBmb3JtbWV0aG9kIGZv
cm1ub3ZhbGlkYXRlIGZvcm10YXJnZXQgaGVpZ2h0IGxpc3QgbWF4IG1heGxlbmd0aCBtaW4gbXVs
dGlwbGUgbmFtZSBwYXR0ZXJuIHJlYWRvbmx5IHJlcXVpcmVkIHNpemUgc3JjIHN0ZXAgdHlwZSB2
YWx1ZSB3aWR0aCIpLG4oImJ1dHRvbiIsImRpc2FibGVkIGZvcm0gZm9ybWFjdGlvbiBmb3JtZW5j
dHlwZSBmb3JtbWV0aG9kIGZvcm1ub3ZhbGlkYXRlIGZvcm10YXJnZXQgbmFtZSB0eXBlIHZhbHVl
IiwiaHRtbDQiPT1lP3U6Yyksbigic2VsZWN0IiwiZGlzYWJsZWQgZm9ybSBtdWx0aXBsZSBuYW1l
IHJlcXVpcmVkIHNpemUiLCJvcHRpb24gb3B0Z3JvdXAiKSxuKCJvcHRncm91cCIsImRpc2FibGVk
IGxhYmVsIiwib3B0aW9uIiksbigib3B0aW9uIiwiZGlzYWJsZWQgbGFiZWwgc2VsZWN0ZWQgdmFs
dWUiKSxuKCJ0ZXh0YXJlYSIsImNvbHMgZGlybmFtZSBkaXNhYmxlZCBmb3JtIG1heGxlbmd0aCBu
YW1lIHJlYWRvbmx5IHJlcXVpcmVkIHJvd3Mgd3JhcCIpLG4oIm1lbnUiLCJ0eXBlIGxhYmVsIix1
LCJsaSIpLG4oIm5vc2NyaXB0IiwiIix1KSwiaHRtbDQiIT1lJiYobigid2JyIiksbigicnVieSIs
IiIsYywicnQgcnAiKSxuKCJmaWdjYXB0aW9uIiwiIix1KSxuKCJtYXJrIHJ0IHJwIHN1bW1hcnkg
YmRpIiwiIixjKSxuKCJjYW52YXMiLCJ3aWR0aCBoZWlnaHQiLHUpLG4oInZpZGVvIiwic3JjIGNy
b3Nzb3JpZ2luIHBvc3RlciBwcmVsb2FkIGF1dG9wbGF5IG1lZGlhZ3JvdXAgbG9vcCBtdXRlZCBj
b250cm9scyB3aWR0aCBoZWlnaHQgYnVmZmVyZWQiLHUsInRyYWNrIHNvdXJjZSIpLG4oImF1ZGlv
Iiwic3JjIGNyb3Nzb3JpZ2luIHByZWxvYWQgYXV0b3BsYXkgbWVkaWFncm91cCBsb29wIG11dGVk
IGNvbnRyb2xzIGJ1ZmZlcmVkIHZvbHVtZSIsdSwidHJhY2sgc291cmNlIiksbigic291cmNlIiwi
c3JjIHR5cGUgbWVkaWEiKSxuKCJ0cmFjayIsImtpbmQgc3JjIHNyY2xhbmcgbGFiZWwgZGVmYXVs
dCIpLG4oImRhdGFsaXN0IiwiIixjLCJvcHRpb24iKSxuKCJhcnRpY2xlIHNlY3Rpb24gbmF2IGFz
aWRlIGhlYWRlciBmb290ZXIiLCIiLHUpLG4oImhncm91cCIsIiIsImgxIGgyIGgzIGg0IGg1IGg2
IiksbigiZmlndXJlIiwiIix1LCJmaWdjYXB0aW9uIiksbigidGltZSIsImRhdGV0aW1lIixjKSxu
KCJkaWFsb2ciLCJvcGVuIix1KSxuKCJjb21tYW5kIiwidHlwZSBsYWJlbCBpY29uIGRpc2FibGVk
IGNoZWNrZWQgcmFkaW9ncm91cCBjb21tYW5kIiksbigib3V0cHV0IiwiZm9yIGZvcm0gbmFtZSIs
YyksbigicHJvZ3Jlc3MiLCJ2YWx1ZSBtYXgiLGMpLG4oIm1ldGVyIiwidmFsdWUgbWluIG1heCBs
b3cgaGlnaCBvcHRpbXVtIixjKSxuKCJkZXRhaWxzIiwib3BlbiIsdSwic3VtbWFyeSIpLG4oImtl
eWdlbiIsImF1dG9mb2N1cyBjaGFsbGVuZ2UgZGlzYWJsZWQgZm9ybSBrZXl0eXBlIG5hbWUiKSks
Imh0bWw1LXN0cmljdCIhPWUmJihpKCJzY3JpcHQiLCJsYW5ndWFnZSB4bWw6c3BhY2UiKSxpKCJz
dHlsZSIsInhtbDpzcGFjZSIpLGkoIm9iamVjdCIsImRlY2xhcmUgY2xhc3NpZCBjb2RlYmFzZSBj
b2RldHlwZSBhcmNoaXZlIHN0YW5kYnkgYWxpZ24gYm9yZGVyIGhzcGFjZSB2c3BhY2UiKSxpKCJw
YXJhbSIsInZhbHVldHlwZSB0eXBlIiksaSgiYSIsImNoYXJzZXQgbmFtZSByZXYgc2hhcGUgY29v
cmRzIiksaSgiYnIiLCJjbGVhciIpLGkoImFwcGxldCIsImNvZGViYXNlIGFyY2hpdmUgY29kZSBv
YmplY3QgYWx0IG5hbWUgd2lkdGggaGVpZ2h0IGFsaWduIGhzcGFjZSB2c3BhY2UiKSxpKCJpbWci
LCJuYW1lIGxvbmdkZXNjIGFsaWduIGJvcmRlciBoc3BhY2UgdnNwYWNlIiksaSgiaWZyYW1lIiwi
bG9uZ2Rlc2MgZnJhbWVib3JkZXIgbWFyZ2lud2lkdGggbWFyZ2luaGVpZ2h0IHNjcm9sbGluZyBh
bGlnbiIpLGkoImZvbnQgYmFzZWZvbnQiLCJzaXplIGNvbG9yIGZhY2UiKSxpKCJpbnB1dCIsInVz
ZW1hcCBhbGlnbiIpLGkoInNlbGVjdCIsIm9uY2hhbmdlIiksaSgidGV4dGFyZWEiKSxpKCJoMSBo
MiBoMyBoNCBoNSBoNiBkaXYgcCBsZWdlbmQgY2FwdGlvbiIsImFsaWduIiksaSgidWwiLCJ0eXBl
IGNvbXBhY3QiKSxpKCJsaSIsInR5cGUiKSxpKCJvbCBkbCBtZW51IGRpciIsImNvbXBhY3QiKSxp
KCJwcmUiLCJ3aWR0aCB4bWw6c3BhY2UiKSxpKCJociIsImFsaWduIG5vc2hhZGUgc2l6ZSB3aWR0
aCIpLGkoImlzaW5kZXgiLCJwcm9tcHQiKSxpKCJ0YWJsZSIsInN1bW1hcnkgd2lkdGggZnJhbWUg
cnVsZXMgY2VsbHNwYWNpbmcgY2VsbHBhZGRpbmcgYWxpZ24gYmdjb2xvciIpLGkoImNvbCIsIndp
ZHRoIGFsaWduIGNoYXIgY2hhcm9mZiB2YWxpZ24iKSxpKCJjb2xncm91cCIsIndpZHRoIGFsaWdu
IGNoYXIgY2hhcm9mZiB2YWxpZ24iKSxpKCJ0aGVhZCIsImFsaWduIGNoYXIgY2hhcm9mZiB2YWxp
Z24iKSxpKCJ0ciIsImFsaWduIGNoYXIgY2hhcm9mZiB2YWxpZ24gYmdjb2xvciIpLGkoInRoIiwi
YXhpcyBhbGlnbiBjaGFyIGNoYXJvZmYgdmFsaWduIG5vd3JhcCBiZ2NvbG9yIHdpZHRoIGhlaWdo
dCIpLGkoImZvcm0iLCJhY2NlcHQiKSxpKCJ0ZCIsImFiYnIgYXhpcyBzY29wZSBhbGlnbiBjaGFy
IGNoYXJvZmYgdmFsaWduIG5vd3JhcCBiZ2NvbG9yIHdpZHRoIGhlaWdodCIpLGkoInRmb290Iiwi
YWxpZ24gY2hhciBjaGFyb2ZmIHZhbGlnbiIpLGkoInRib2R5IiwiYWxpZ24gY2hhciBjaGFyb2Zm
IHZhbGlnbiIpLGkoImFyZWEiLCJub2hyZWYiKSxpKCJib2R5IiwiYmFja2dyb3VuZCBiZ2NvbG9y
IHRleHQgbGluayB2bGluayBhbGluayIpKSwiaHRtbDQiIT1lJiYoaSgiaW5wdXQgYnV0dG9uIHNl
bGVjdCB0ZXh0YXJlYSIsImF1dG9mb2N1cyIpLGkoImlucHV0IHRleHRhcmVhIiwicGxhY2Vob2xk
ZXIiKSxpKCJhIiwiZG93bmxvYWQiKSxpKCJsaW5rIHNjcmlwdCBpbWciLCJjcm9zc29yaWdpbiIp
LGkoImlmcmFtZSIsInNhbmRib3ggc2VhbWxlc3MgYWxsb3dmdWxsc2NyZWVuIikpLG8odCgiYSBm
b3JtIG1ldGVyIHByb2dyZXNzIGRmbiIpLGZ1bmN0aW9uKGUpe2FbZV0mJmRlbGV0ZSBhW2VdLmNo
aWxkcmVuW2VdfSksZGVsZXRlIGEuY2FwdGlvbi5jaGlsZHJlbi50YWJsZSxyW2VdPWEsYSl9dmFy
IHI9e30saT1lLm1ha2VNYXAsbz1lLmVhY2gsYT1lLmV4dGVuZCxzPWUuZXhwbG9kZSxsPWUuaW5B
cnJheTtyZXR1cm4gZnVuY3Rpb24oZSl7ZnVuY3Rpb24gYyh0LG4sbyl7dmFyIHM9ZVt0XTtyZXR1
cm4gcz9zPWkocywvWywgXS8saShzLnRvVXBwZXJDYXNlKCksL1ssIF0vKSk6KHM9clt0XSxzfHwo
cz1pKG4sIiAiLGkobi50b1VwcGVyQ2FzZSgpLCIgIikpLHM9YShzLG8pLHJbdF09cykpLHN9ZnVu
Y3Rpb24gdShlKXtyZXR1cm4gbmV3IFJlZ0V4cCgiXiIrZS5yZXBsYWNlKC8oWz8rKl0pL2csIi4k
MSIpKyIkIil9ZnVuY3Rpb24gZChlKXt2YXIgbixyLG8sYSxzLGMsZCxmLHAsaCxtLGcseSxDLHgs
dyxfLE4sRSxTPS9eKFsjK1wtXSk/KFteXFshXC9dKykoPzpcLyhbXlxbIV0rKSk/KD86KCE/KVxb
KFteXF1dKylcXSk/JC8saz0vXihbIVwtXSk/KFx3Kzo6XHcrfFtePTo8XSspPyg/OihbPTo8XSko
LiopKT8kLyxUPS9bKj8rXS87aWYoZSlmb3IoZT10KGUsIiwiKSx2WyJAIl0mJih3PXZbIkAiXS5h
dHRyaWJ1dGVzLF89dlsiQCJdLmF0dHJpYnV0ZXNPcmRlciksbj0wLHI9ZS5sZW5ndGg7cj5uO24r
KylpZihzPVMuZXhlYyhlW25dKSl7aWYoQz1zWzFdLHA9c1syXSx4PXNbM10sZj1zWzVdLGc9e30s
eT1bXSxjPXthdHRyaWJ1dGVzOmcsYXR0cmlidXRlc09yZGVyOnl9LCIjIj09PUMmJihjLnBhZGRF
bXB0eT0hMCksIi0iPT09QyYmKGMucmVtb3ZlRW1wdHk9ITApLCIhIj09PXNbNF0mJihjLnJlbW92
ZUVtcHR5QXR0cnM9ITApLHcpe2ZvcihOIGluIHcpZ1tOXT13W05dO3kucHVzaC5hcHBseSh5LF8p
fWlmKGYpZm9yKGY9dChmLCJ8Iiksbz0wLGE9Zi5sZW5ndGg7YT5vO28rKylpZihzPWsuZXhlYyhm
W29dKSl7aWYoZD17fSxtPXNbMV0saD1zWzJdLnJlcGxhY2UoLzo6L2csIjoiKSxDPXNbM10sRT1z
WzRdLCIhIj09PW0mJihjLmF0dHJpYnV0ZXNSZXF1aXJlZD1jLmF0dHJpYnV0ZXNSZXF1aXJlZHx8
W10sYy5hdHRyaWJ1dGVzUmVxdWlyZWQucHVzaChoKSxkLnJlcXVpcmVkPSEwKSwiLSI9PT1tKXtk
ZWxldGUgZ1toXSx5LnNwbGljZShsKHksaCksMSk7Y29udGludWV9QyYmKCI9Ij09PUMmJihjLmF0
dHJpYnV0ZXNEZWZhdWx0PWMuYXR0cmlidXRlc0RlZmF1bHR8fFtdLGMuYXR0cmlidXRlc0RlZmF1
bHQucHVzaCh7bmFtZTpoLHZhbHVlOkV9KSxkLmRlZmF1bHRWYWx1ZT1FKSwiOiI9PT1DJiYoYy5h
dHRyaWJ1dGVzRm9yY2VkPWMuYXR0cmlidXRlc0ZvcmNlZHx8W10sYy5hdHRyaWJ1dGVzRm9yY2Vk
LnB1c2goe25hbWU6aCx2YWx1ZTpFfSksZC5mb3JjZWRWYWx1ZT1FKSwiPCI9PT1DJiYoZC52YWxp
ZFZhbHVlcz1pKEUsIj8iKSkpLFQudGVzdChoKT8oYy5hdHRyaWJ1dGVQYXR0ZXJucz1jLmF0dHJp
YnV0ZVBhdHRlcm5zfHxbXSxkLnBhdHRlcm49dShoKSxjLmF0dHJpYnV0ZVBhdHRlcm5zLnB1c2go
ZCkpOihnW2hdfHx5LnB1c2goaCksZ1toXT1kKX13fHwiQCIhPXB8fCh3PWcsXz15KSx4JiYoYy5v
dXRwdXROYW1lPXAsdlt4XT1jKSxULnRlc3QocCk/KGMucGF0dGVybj11KHApLGIucHVzaChjKSk6
dltwXT1jfX1mdW5jdGlvbiBmKGUpe3Y9e30sYj1bXSxkKGUpLG8oeCxmdW5jdGlvbihlLHQpe3lb
dF09ZS5jaGlsZHJlbn0pfWZ1bmN0aW9uIHAoZSl7dmFyIG49L14ofik/KC4rKSQvO2UmJihyLnRl
eHRfYmxvY2tfZWxlbWVudHM9ci5ibG9ja19lbGVtZW50cz1udWxsLG8odChlLCIsIiksZnVuY3Rp
b24oZSl7dmFyIHQ9bi5leGVjKGUpLHI9In4iPT09dFsxXSxpPXI/InNwYW4iOiJkaXYiLHM9dFsy
XTtpZih5W3NdPXlbaV0sUltzXT1pLHJ8fChTW3MudG9VcHBlckNhc2UoKV09e30sU1tzXT17fSks
IXZbc10pe3ZhciBsPXZbaV07bD1hKHt9LGwpLGRlbGV0ZSBsLnJlbW92ZUVtcHR5QXR0cnMsZGVs
ZXRlIGwucmVtb3ZlRW1wdHksdltzXT1sfW8oeSxmdW5jdGlvbihlLHQpe2VbaV0mJih5W3RdPWU9
YSh7fSx5W3RdKSxlW3NdPWVbaV0pfSl9KSl9ZnVuY3Rpb24gaChlKXt2YXIgbj0vXihbK1wtXT8p
KFx3KylcWyhbXlxdXSspXF0kLztlJiZvKHQoZSwiLCIpLGZ1bmN0aW9uKGUpe3ZhciByPW4uZXhl
YyhlKSxpLHM7ciYmKHM9clsxXSxpPXM/eVtyWzJdXTp5W3JbMl1dPXsiI2NvbW1lbnQiOnt9fSxp
PXlbclsyXV0sbyh0KHJbM10sInwiKSxmdW5jdGlvbihlKXsiLSI9PT1zPyh5W3JbMl1dPWk9YSh7
fSx5W3JbMl1dKSxkZWxldGUgaVtlXSk6aVtlXT17fX0pKX0pfWZ1bmN0aW9uIG0oZSl7dmFyIHQ9
dltlXSxuO2lmKHQpcmV0dXJuIHQ7Zm9yKG49Yi5sZW5ndGg7bi0tOylpZih0PWJbbl0sdC5wYXR0
ZXJuLnRlc3QoZSkpcmV0dXJuIHR9dmFyIGc9dGhpcyx2PXt9LHk9e30sYj1bXSxDLHgsdyxfLE4s
RSxTLGssVCxSPXt9LEE9e307ZT1lfHx7fSx4PW4oZS5zY2hlbWEpLGUudmVyaWZ5X2h0bWw9PT0h
MSYmKGUudmFsaWRfZWxlbWVudHM9IipbKl0iKSxlLnZhbGlkX3N0eWxlcyYmKEM9e30sbyhlLnZh
bGlkX3N0eWxlcyxmdW5jdGlvbihlLHQpe0NbdF09cyhlKX0pKSx3PWMoIndoaXRlc3BhY2VfZWxl
bWVudHMiLCJwcmUgc2NyaXB0IG5vc2NyaXB0IHN0eWxlIHRleHRhcmVhIHZpZGVvIGF1ZGlvIGlm
cmFtZSBvYmplY3QiKSxfPWMoInNlbGZfY2xvc2luZ19lbGVtZW50cyIsImNvbGdyb3VwIGRkIGR0
IGxpIG9wdGlvbiBwIHRkIHRmb290IHRoIHRoZWFkIHRyIiksTj1jKCJzaG9ydF9lbmRlZF9lbGVt
ZW50cyIsImFyZWEgYmFzZSBiYXNlZm9udCBiciBjb2wgZnJhbWUgaHIgaW1nIGlucHV0IGlzaW5k
ZXggbGluayBtZXRhIHBhcmFtIGVtYmVkIHNvdXJjZSB3YnIgdHJhY2siKSxFPWMoImJvb2xlYW5f
YXR0cmlidXRlcyIsImNoZWNrZWQgY29tcGFjdCBkZWNsYXJlIGRlZmVyIGRpc2FibGVkIGlzbWFw
IG11bHRpcGxlIG5vaHJlZiBub3Jlc2l6ZSBub3NoYWRlIG5vd3JhcCByZWFkb25seSBzZWxlY3Rl
ZCBhdXRvcGxheSBsb29wIGNvbnRyb2xzIiksaz1jKCJub25fZW1wdHlfZWxlbWVudHMiLCJ0ZCB0
aCBpZnJhbWUgdmlkZW8gYXVkaW8gb2JqZWN0IHNjcmlwdCIsTiksVD1jKCJ0ZXh0X2Jsb2NrX2Vs
ZW1lbnRzIiwiaDEgaDIgaDMgaDQgaDUgaDYgcCBkaXYgYWRkcmVzcyBwcmUgZm9ybSBibG9ja3F1
b3RlIGNlbnRlciBkaXIgZmllbGRzZXQgaGVhZGVyIGZvb3RlciBhcnRpY2xlIHNlY3Rpb24gaGdy
b3VwIGFzaWRlIG5hdiBmaWd1cmUiKSxTPWMoImJsb2NrX2VsZW1lbnRzIiwiaHIgdGFibGUgdGJv
ZHkgdGhlYWQgdGZvb3QgdGggdHIgdGQgbGkgb2wgdWwgY2FwdGlvbiBkbCBkdCBkZCBub3Njcmlw
dCBtZW51IGlzaW5kZXggb3B0aW9uIGRhdGFsaXN0IHNlbGVjdCBvcHRncm91cCIsVCksbygoZS5z
cGVjaWFsfHwic2NyaXB0IG5vc2NyaXB0IHN0eWxlIHRleHRhcmVhIikuc3BsaXQoIiAiKSxmdW5j
dGlvbihlKXtBW2VdPW5ldyBSZWdFeHAoIjwvIitlKyJbXj5dKj4iLCJnaSIpfSksZS52YWxpZF9l
bGVtZW50cz9mKGUudmFsaWRfZWxlbWVudHMpOihvKHgsZnVuY3Rpb24oZSx0KXt2W3RdPXthdHRy
aWJ1dGVzOmUuYXR0cmlidXRlcyxhdHRyaWJ1dGVzT3JkZXI6ZS5hdHRyaWJ1dGVzT3JkZXJ9LHlb
dF09ZS5jaGlsZHJlbn0pLCJodG1sNSIhPWUuc2NoZW1hJiZvKHQoInN0cm9uZy9iIGVtL2kiKSxm
dW5jdGlvbihlKXtlPXQoZSwiLyIpLHZbZVsxXV0ub3V0cHV0TmFtZT1lWzBdfSksdi5pbWcuYXR0
cmlidXRlc0RlZmF1bHQ9W3tuYW1lOiJhbHQiLHZhbHVlOiIifV0sbyh0KCJvbCB1bCBzdWIgc3Vw
IGJsb2NrcXVvdGUgc3BhbiBmb250IGEgdGFibGUgdGJvZHkgdHIgc3Ryb25nIGVtIGIgaSIpLGZ1
bmN0aW9uKGUpe3ZbZV0mJih2W2VdLnJlbW92ZUVtcHR5PSEwKX0pLG8odCgicCBoMSBoMiBoMyBo
NCBoNSBoNiB0aCB0ZCBwcmUgZGl2IGFkZHJlc3MgY2FwdGlvbiIpLGZ1bmN0aW9uKGUpe3ZbZV0u
cGFkZEVtcHR5PSEwfSksbyh0KCJzcGFuIiksZnVuY3Rpb24oZSl7dltlXS5yZW1vdmVFbXB0eUF0
dHJzPSEwfSkpLHAoZS5jdXN0b21fZWxlbWVudHMpLGgoZS52YWxpZF9jaGlsZHJlbiksZChlLmV4
dGVuZGVkX3ZhbGlkX2VsZW1lbnRzKSxoKCIrb2xbdWx8b2xdLCt1bFt1bHxvbF0iKSxlLmludmFs
aWRfZWxlbWVudHMmJm8ocyhlLmludmFsaWRfZWxlbWVudHMpLGZ1bmN0aW9uKGUpe3ZbZV0mJmRl
bGV0ZSB2W2VdfSksbSgic3BhbiIpfHxkKCJzcGFuWyFkYXRhLW1jZS10eXBlfCpdIiksZy5jaGls
ZHJlbj15LGcuc3R5bGVzPUMsZy5nZXRCb29sQXR0cnM9ZnVuY3Rpb24oKXtyZXR1cm4gRX0sZy5n
ZXRCbG9ja0VsZW1lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIFN9LGcuZ2V0VGV4dEJsb2NrRWxlbWVu
dHM9ZnVuY3Rpb24oKXtyZXR1cm4gVH0sZy5nZXRTaG9ydEVuZGVkRWxlbWVudHM9ZnVuY3Rpb24o
KXtyZXR1cm4gTn0sZy5nZXRTZWxmQ2xvc2luZ0VsZW1lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIF99
LGcuZ2V0Tm9uRW1wdHlFbGVtZW50cz1mdW5jdGlvbigpe3JldHVybiBrfSxnLmdldFdoaXRlU3Bh
Y2VFbGVtZW50cz1mdW5jdGlvbigpe3JldHVybiB3fSxnLmdldFNwZWNpYWxFbGVtZW50cz1mdW5j
dGlvbigpe3JldHVybiBBfSxnLmlzVmFsaWRDaGlsZD1mdW5jdGlvbihlLHQpe3ZhciBuPXlbZV07
cmV0dXJuISghbnx8IW5bdF0pfSxnLmlzVmFsaWQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGk9bShl
KTtpZihpKXtpZighdClyZXR1cm4hMDtpZihpLmF0dHJpYnV0ZXNbdF0pcmV0dXJuITA7aWYobj1p
LmF0dHJpYnV0ZVBhdHRlcm5zKWZvcihyPW4ubGVuZ3RoO3ItLTspaWYobltyXS5wYXR0ZXJuLnRl
c3QoZSkpcmV0dXJuITB9cmV0dXJuITF9LGcuZ2V0RWxlbWVudFJ1bGU9bSxnLmdldEN1c3RvbUVs
ZW1lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIFJ9LGcuYWRkVmFsaWRFbGVtZW50cz1kLGcuc2V0VmFs
aWRFbGVtZW50cz1mLGcuYWRkQ3VzdG9tRWxlbWVudHM9cCxnLmFkZFZhbGlkQ2hpbGRyZW49aCxn
LmVsZW1lbnRzPXZ9fSkscihfLFt3LG0scF0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4uZWFjaDty
ZXR1cm4gZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKCl7fXZhciBzPXRoaXM7aT1pfHx7fSxzLnNj
aGVtYT1vPW98fG5ldyBlLGkuZml4X3NlbGZfY2xvc2luZyE9PSExJiYoaS5maXhfc2VsZl9jbG9z
aW5nPSEwKSxyKCJjb21tZW50IGNkYXRhIHRleHQgc3RhcnQgZW5kIHBpIGRvY3R5cGUiLnNwbGl0
KCIgIiksZnVuY3Rpb24oZSl7ZSYmKHNbZV09aVtlXXx8YSl9KSxzLnBhcnNlPWZ1bmN0aW9uKGUp
e2Z1bmN0aW9uIHIoZSl7dmFyIHQsbjtmb3IodD1mLmxlbmd0aDt0LS0mJmZbdF0ubmFtZSE9PWU7
KTtpZih0Pj0wKXtmb3Iobj1mLmxlbmd0aC0xO24+PXQ7bi0tKWU9ZltuXSxlLnZhbGlkJiZzLmVu
ZChlLm5hbWUpO2YubGVuZ3RoPXR9fWZ1bmN0aW9uIGEoZSx0LG4scixvKXt2YXIgYSxzLGw9L1tc
c1x1MDAwMC1cdTAwMUZdKy9nO2lmKHQ9dC50b0xvd2VyQ2FzZSgpLG49dCBpbiBDP3Q6RihufHxy
fHxvfHwiIiksdyYmIXYmJjAhPT10LmluZGV4T2YoImRhdGEtIikpe2lmKGE9a1t0XSwhYSYmVCl7
Zm9yKHM9VC5sZW5ndGg7cy0tJiYoYT1UW3NdLCFhLnBhdHRlcm4udGVzdCh0KSk7KTstMT09PXMm
JihhPW51bGwpfWlmKCFhKXJldHVybjtpZihhLnZhbGlkVmFsdWVzJiYhKG4gaW4gYS52YWxpZFZh
bHVlcykpcmV0dXJufWlmKFdbdF0mJiFpLmFsbG93X3NjcmlwdF91cmxzKXt2YXIgYz1uLnJlcGxh
Y2UobCwiIik7dHJ5e2M9ZGVjb2RlVVJJQ29tcG9uZW50KGMpfWNhdGNoKHUpe2M9dW5lc2NhcGUo
Yyl9aWYoVi50ZXN0KGMpKXJldHVybjtpZighaS5hbGxvd19odG1sX2RhdGFfdXJscyYmVS50ZXN0
KGMpJiYhL15kYXRhOmltYWdlXC8vaS50ZXN0KGMpKXJldHVybn1wLm1hcFt0XT1uLHAucHVzaCh7
bmFtZTp0LHZhbHVlOm59KX12YXIgcz10aGlzLGwsYz0wLHUsZCxmPVtdLHAsaCxtLGcsdix5LGIs
Qyx4LHcsXyxOLEUsUyxrLFQsUixBLEIsRCxMLE0sSCxQLE8sST0wLEY9dC5kZWNvZGUseixXPW4u
bWFrZU1hcCgic3JjLGhyZWYsZGF0YSxiYWNrZ3JvdW5kLGZvcm1hY3Rpb24scG9zdGVyIiksVj0v
KChqYXZhfHZiKXNjcmlwdHxtaHRtbCk6L2ksVT0vXmRhdGE6L2k7Zm9yKE09bmV3IFJlZ0V4cCgi
PCg/Oig/OiEtLShbXFx3XFxXXSo/KS0tPil8KD86IVxcW0NEQVRBXFxbKFtcXHdcXFddKj8pXFxd
XFxdPil8KD86IURPQ1RZUEUoW1xcd1xcV10qPyk+KXwoPzpcXD8oW15cXHNcXC88Pl0rKSA/KFtc
XHdcXFddKj8pWz8vXT4pfCg/OlxcLyhbXj5dKyk+KXwoPzooW0EtWmEtejAtOVxcLVxcOlxcLl0r
KSgoPzpcXHMrW15cIic+XSsoPzooPzpcIlteXCJdKlwiKXwoPzonW14nXSonKXxbXj5dKikpKnxc
XC98XFxzKyk+KSkiLCJnIiksSD0vKFtcdzpcLV0rKSg/OlxzKj1ccyooPzooPzpcIigoPzpbXlwi
XSkqKVwiKXwoPzpcJygoPzpbXlwnXSkqKVwnKXwoW14+XHNdKykpKT8vZyxiPW8uZ2V0U2hvcnRF
bmRlZEVsZW1lbnRzKCksTD1pLnNlbGZfY2xvc2luZ19lbGVtZW50c3x8by5nZXRTZWxmQ2xvc2lu
Z0VsZW1lbnRzKCksQz1vLmdldEJvb2xBdHRycygpLHc9aS52YWxpZGF0ZSx5PWkucmVtb3ZlX2lu
dGVybmFscyx6PWkuZml4X3NlbGZfY2xvc2luZyxQPW8uZ2V0U3BlY2lhbEVsZW1lbnRzKCk7bD1N
LmV4ZWMoZSk7KXtpZihjPGwuaW5kZXgmJnMudGV4dChGKGUuc3Vic3RyKGMsbC5pbmRleC1jKSkp
LHU9bFs2XSl1PXUudG9Mb3dlckNhc2UoKSwiOiI9PT11LmNoYXJBdCgwKSYmKHU9dS5zdWJzdHIo
MSkpLHIodSk7ZWxzZSBpZih1PWxbN10pe2lmKHU9dS50b0xvd2VyQ2FzZSgpLCI6Ij09PXUuY2hh
ckF0KDApJiYodT11LnN1YnN0cigxKSkseD11IGluIGIseiYmTFt1XSYmZi5sZW5ndGg+MCYmZltm
Lmxlbmd0aC0xXS5uYW1lPT09dSYmcih1KSwhd3x8KF89by5nZXRFbGVtZW50UnVsZSh1KSkpe2lm
KE49ITAsdyYmKGs9Xy5hdHRyaWJ1dGVzLFQ9Xy5hdHRyaWJ1dGVQYXR0ZXJucyksKFM9bFs4XSk/
KHY9LTEhPT1TLmluZGV4T2YoImRhdGEtbWNlLXR5cGUiKSx2JiZ5JiYoTj0hMSkscD1bXSxwLm1h
cD17fSxTLnJlcGxhY2UoSCxhKSk6KHA9W10scC5tYXA9e30pLHcmJiF2KXtpZihSPV8uYXR0cmli
dXRlc1JlcXVpcmVkLEE9Xy5hdHRyaWJ1dGVzRGVmYXVsdCxCPV8uYXR0cmlidXRlc0ZvcmNlZCxE
PV8ucmVtb3ZlRW1wdHlBdHRycyxEJiYhcC5sZW5ndGgmJihOPSExKSxCKWZvcihoPUIubGVuZ3Ro
O2gtLTspRT1CW2hdLGc9RS5uYW1lLE89RS52YWx1ZSwieyR1aWR9Ij09PU8mJihPPSJtY2VfIitJ
KyspLHAubWFwW2ddPU8scC5wdXNoKHtuYW1lOmcsdmFsdWU6T30pO2lmKEEpZm9yKGg9QS5sZW5n
dGg7aC0tOylFPUFbaF0sZz1FLm5hbWUsZyBpbiBwLm1hcHx8KE89RS52YWx1ZSwieyR1aWR9Ij09
PU8mJihPPSJtY2VfIitJKyspLHAubWFwW2ddPU8scC5wdXNoKHtuYW1lOmcsdmFsdWU6T30pKTtp
ZihSKXtmb3IoaD1SLmxlbmd0aDtoLS0mJiEoUltoXWluIHAubWFwKTspOy0xPT09aCYmKE49ITEp
fXAubWFwWyJkYXRhLW1jZS1ib2d1cyJdJiYoTj0hMSl9TiYmcy5zdGFydCh1LHAseCl9ZWxzZSBO
PSExO2lmKGQ9UFt1XSl7ZC5sYXN0SW5kZXg9Yz1sLmluZGV4K2xbMF0ubGVuZ3RoLChsPWQuZXhl
YyhlKSk/KE4mJihtPWUuc3Vic3RyKGMsbC5pbmRleC1jKSksYz1sLmluZGV4K2xbMF0ubGVuZ3Ro
KToobT1lLnN1YnN0cihjKSxjPWUubGVuZ3RoKSxOJiYobS5sZW5ndGg+MCYmcy50ZXh0KG0sITAp
LHMuZW5kKHUpKSxNLmxhc3RJbmRleD1jO2NvbnRpbnVlfXh8fChTJiZTLmluZGV4T2YoIi8iKT09
Uy5sZW5ndGgtMT9OJiZzLmVuZCh1KTpmLnB1c2goe25hbWU6dSx2YWxpZDpOfSkpfWVsc2UodT1s
WzFdKT8oIj4iPT09dS5jaGFyQXQoMCkmJih1PSIgIit1KSxpLmFsbG93X2NvbmRpdGlvbmFsX2Nv
bW1lbnRzfHwiW2lmIiE9PXUuc3Vic3RyKDAsMyl8fCh1PSIgIit1KSxzLmNvbW1lbnQodSkpOih1
PWxbMl0pP3MuY2RhdGEodSk6KHU9bFszXSk/cy5kb2N0eXBlKHUpOih1PWxbNF0pJiZzLnBpKHUs
bFs1XSk7Yz1sLmluZGV4K2xbMF0ubGVuZ3RofWZvcihjPGUubGVuZ3RoJiZzLnRleHQoRihlLnN1
YnN0cihjKSkpLGg9Zi5sZW5ndGgtMTtoPj0wO2gtLSl1PWZbaF0sdS52YWxpZCYmcy5lbmQodS5u
YW1lKX19fSkscihOLFt4LHcsXyxwXSxmdW5jdGlvbihlLHQsbixyKXt2YXIgaT1yLm1ha2VNYXAs
bz1yLmVhY2gsYT1yLmV4cGxvZGUscz1yLmV4dGVuZDtyZXR1cm4gZnVuY3Rpb24ocixsKXtmdW5j
dGlvbiBjKHQpe3ZhciBuLHIsbyxhLHMsYyxkLGYscCxoLG0sZyx2LHk7Zm9yKG09aSgidHIsdGQs
dGgsdGJvZHksdGhlYWQsdGZvb3QsdGFibGUiKSxoPWwuZ2V0Tm9uRW1wdHlFbGVtZW50cygpLGc9
bC5nZXRUZXh0QmxvY2tFbGVtZW50cygpLG49MDtuPHQubGVuZ3RoO24rKylpZihyPXRbbl0sci5w
YXJlbnQmJiFyLmZpeGVkKWlmKGdbci5uYW1lXSYmImxpIj09ci5wYXJlbnQubmFtZSl7Zm9yKHY9
ci5uZXh0O3YmJmdbdi5uYW1lXTspdi5uYW1lPSJsaSIsdi5maXhlZD0hMCxyLnBhcmVudC5pbnNl
cnQodixyLnBhcmVudCksdj12Lm5leHQ7ci51bndyYXAocil9ZWxzZXtmb3IoYT1bcl0sbz1yLnBh
cmVudDtvJiYhbC5pc1ZhbGlkQ2hpbGQoby5uYW1lLHIubmFtZSkmJiFtW28ubmFtZV07bz1vLnBh
cmVudClhLnB1c2gobyk7aWYobyYmYS5sZW5ndGg+MSl7Zm9yKGEucmV2ZXJzZSgpLHM9Yz11LmZp
bHRlck5vZGUoYVswXS5jbG9uZSgpKSxwPTA7cDxhLmxlbmd0aC0xO3ArKyl7Zm9yKGwuaXNWYWxp
ZENoaWxkKGMubmFtZSxhW3BdLm5hbWUpPyhkPXUuZmlsdGVyTm9kZShhW3BdLmNsb25lKCkpLGMu
YXBwZW5kKGQpKTpkPWMsZj1hW3BdLmZpcnN0Q2hpbGQ7ZiYmZiE9YVtwKzFdOyl5PWYubmV4dCxk
LmFwcGVuZChmKSxmPXk7Yz1kfXMuaXNFbXB0eShoKT9vLmluc2VydChyLGFbMF0sITApOihvLmlu
c2VydChzLGFbMF0sITApLG8uaW5zZXJ0KHIscykpLG89YVswXSwoby5pc0VtcHR5KGgpfHxvLmZp
cnN0Q2hpbGQ9PT1vLmxhc3RDaGlsZCYmImJyIj09PW8uZmlyc3RDaGlsZC5uYW1lKSYmby5lbXB0
eSgpLnJlbW92ZSgpfWVsc2UgaWYoci5wYXJlbnQpe2lmKCJsaSI9PT1yLm5hbWUpe2lmKHY9ci5w
cmV2LHYmJigidWwiPT09di5uYW1lfHwidWwiPT09di5uYW1lKSl7di5hcHBlbmQocik7Y29udGlu
dWV9aWYodj1yLm5leHQsdiYmKCJ1bCI9PT12Lm5hbWV8fCJ1bCI9PT12Lm5hbWUpKXt2Lmluc2Vy
dChyLHYuZmlyc3RDaGlsZCwhMCk7Y29udGludWV9ci53cmFwKHUuZmlsdGVyTm9kZShuZXcgZSgi
dWwiLDEpKSk7Y29udGludWV9bC5pc1ZhbGlkQ2hpbGQoci5wYXJlbnQubmFtZSwiZGl2IikmJmwu
aXNWYWxpZENoaWxkKCJkaXYiLHIubmFtZSk/ci53cmFwKHUuZmlsdGVyTm9kZShuZXcgZSgiZGl2
IiwxKSkpOiJzdHlsZSI9PT1yLm5hbWV8fCJzY3JpcHQiPT09ci5uYW1lP3IuZW1wdHkoKS5yZW1v
dmUoKTpyLnVud3JhcCgpfX19dmFyIHU9dGhpcyxkPXt9LGY9W10scD17fSxoPXt9O3I9cnx8e30s
ci52YWxpZGF0ZT0idmFsaWRhdGUiaW4gcj9yLnZhbGlkYXRlOiEwLHIucm9vdF9uYW1lPXIucm9v
dF9uYW1lfHwiYm9keSIsdS5zY2hlbWE9bD1sfHxuZXcgdCx1LmZpbHRlck5vZGU9ZnVuY3Rpb24o
ZSl7dmFyIHQsbixyO24gaW4gZCYmKHI9cFtuXSxyP3IucHVzaChlKTpwW25dPVtlXSksdD1mLmxl
bmd0aDtmb3IoO3QtLTspbj1mW3RdLm5hbWUsbiBpbiBlLmF0dHJpYnV0ZXMubWFwJiYocj1oW25d
LHI/ci5wdXNoKGUpOmhbbl09W2VdKTtyZXR1cm4gZX0sdS5hZGROb2RlRmlsdGVyPWZ1bmN0aW9u
KGUsdCl7byhhKGUpLGZ1bmN0aW9uKGUpe3ZhciBuPWRbZV07bnx8KGRbZV09bj1bXSksbi5wdXNo
KHQpfSl9LHUuYWRkQXR0cmlidXRlRmlsdGVyPWZ1bmN0aW9uKGUsdCl7byhhKGUpLGZ1bmN0aW9u
KGUpe3ZhciBuO2ZvcihuPTA7bjxmLmxlbmd0aDtuKyspaWYoZltuXS5uYW1lPT09ZSlyZXR1cm4g
dm9pZCBmW25dLmNhbGxiYWNrcy5wdXNoKHQpO2YucHVzaCh7bmFtZTplLGNhbGxiYWNrczpbdF19
KX0pfSx1LnBhcnNlPWZ1bmN0aW9uKHQsbyl7ZnVuY3Rpb24gYSgpe2Z1bmN0aW9uIGUoZSl7ZSYm
KHQ9ZS5maXJzdENoaWxkLHQmJjM9PXQudHlwZSYmKHQudmFsdWU9dC52YWx1ZS5yZXBsYWNlKFIs
IiIpKSx0PWUubGFzdENoaWxkLHQmJjM9PXQudHlwZSYmKHQudmFsdWU9dC52YWx1ZS5yZXBsYWNl
KEQsIiIpKSl9dmFyIHQ9eS5maXJzdENoaWxkLG4saTtpZihsLmlzVmFsaWRDaGlsZCh5Lm5hbWUs
SS50b0xvd2VyQ2FzZSgpKSl7Zm9yKDt0OyluPXQubmV4dCwzPT10LnR5cGV8fDE9PXQudHlwZSYm
InAiIT09dC5uYW1lJiYhVFt0Lm5hbWVdJiYhdC5hdHRyKCJkYXRhLW1jZS10eXBlIik/aT9pLmFw
cGVuZCh0KTooaT11KEksMSksaS5hdHRyKHIuZm9yY2VkX3Jvb3RfYmxvY2tfYXR0cnMpLHkuaW5z
ZXJ0KGksdCksaS5hcHBlbmQodCkpOihlKGkpLGk9bnVsbCksdD1uO2UoaSl9fWZ1bmN0aW9uIHUo
dCxuKXt2YXIgcj1uZXcgZSh0LG4pLGk7cmV0dXJuIHQgaW4gZCYmKGk9cFt0XSxpP2kucHVzaChy
KTpwW3RdPVtyXSkscn1mdW5jdGlvbiBtKGUpe3ZhciB0LG4scjtmb3IodD1lLnByZXY7dCYmMz09
PXQudHlwZTspbj10LnZhbHVlLnJlcGxhY2UoRCwiIiksbi5sZW5ndGg+MD8odC52YWx1ZT1uLHQ9
dC5wcmV2KToocj10LnByZXYsdC5yZW1vdmUoKSx0PXIpfWZ1bmN0aW9uIGcoZSl7dmFyIHQsbj17
fTtmb3IodCBpbiBlKSJsaSIhPT10JiYicCIhPXQmJihuW3RdPWVbdF0pO3JldHVybiBufXZhciB2
LHksYixDLHgsdyxfLE4sRSxTLGssVCxSLEE9W10sQixELEwsTSxILFAsTyxJO2lmKG89b3x8e30s
cD17fSxoPXt9LFQ9cyhpKCJzY3JpcHQsc3R5bGUsaGVhZCxodG1sLGJvZHksdGl0bGUsbWV0YSxw
YXJhbSIpLGwuZ2V0QmxvY2tFbGVtZW50cygpKSxPPWwuZ2V0Tm9uRW1wdHlFbGVtZW50cygpLFA9
bC5jaGlsZHJlbixrPXIudmFsaWRhdGUsST0iZm9yY2VkX3Jvb3RfYmxvY2siaW4gbz9vLmZvcmNl
ZF9yb290X2Jsb2NrOnIuZm9yY2VkX3Jvb3RfYmxvY2ssSD1sLmdldFdoaXRlU3BhY2VFbGVtZW50
cygpLFI9L15bIFx0XHJcbl0rLyxEPS9bIFx0XHJcbl0rJC8sTD0vWyBcdFxyXG5dKy9nLE09L15b
IFx0XHJcbl0rJC8sdj1uZXcgbih7dmFsaWRhdGU6ayxhbGxvd19zY3JpcHRfdXJsczpyLmFsbG93
X3NjcmlwdF91cmxzLGFsbG93X2NvbmRpdGlvbmFsX2NvbW1lbnRzOnIuYWxsb3dfY29uZGl0aW9u
YWxfY29tbWVudHMsc2VsZl9jbG9zaW5nX2VsZW1lbnRzOmcobC5nZXRTZWxmQ2xvc2luZ0VsZW1l
bnRzKCkpLGNkYXRhOmZ1bmN0aW9uKGUpe2IuYXBwZW5kKHUoIiNjZGF0YSIsNCkpLnZhbHVlPWV9
LHRleHQ6ZnVuY3Rpb24oZSx0KXt2YXIgbjtCfHwoZT1lLnJlcGxhY2UoTCwiICIpLGIubGFzdENo
aWxkJiZUW2IubGFzdENoaWxkLm5hbWVdJiYoZT1lLnJlcGxhY2UoUiwiIikpKSwwIT09ZS5sZW5n
dGgmJihuPXUoIiN0ZXh0IiwzKSxuLnJhdz0hIXQsYi5hcHBlbmQobikudmFsdWU9ZSl9LGNvbW1l
bnQ6ZnVuY3Rpb24oZSl7Yi5hcHBlbmQodSgiI2NvbW1lbnQiLDgpKS52YWx1ZT1lfSxwaTpmdW5j
dGlvbihlLHQpe2IuYXBwZW5kKHUoZSw3KSkudmFsdWU9dCxtKGIpfSxkb2N0eXBlOmZ1bmN0aW9u
KGUpe3ZhciB0O3Q9Yi5hcHBlbmQodSgiI2RvY3R5cGUiLDEwKSksdC52YWx1ZT1lLG0oYil9LHN0
YXJ0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzO2lmKG89az9sLmdldEVsZW1lbnRSdWxl
KGUpOnt9KXtmb3Iocj11KG8ub3V0cHV0TmFtZXx8ZSwxKSxyLmF0dHJpYnV0ZXM9dCxyLnNob3J0
RW5kZWQ9bixiLmFwcGVuZChyKSxzPVBbYi5uYW1lXSxzJiZQW3IubmFtZV0mJiFzW3IubmFtZV0m
JkEucHVzaChyKSxpPWYubGVuZ3RoO2ktLTspYT1mW2ldLm5hbWUsYSBpbiB0Lm1hcCYmKEU9aFth
XSxFP0UucHVzaChyKTpoW2FdPVtyXSk7VFtlXSYmbShyKSxufHwoYj1yKSwhQiYmSFtlXSYmKEI9
ITApfX0sZW5kOmZ1bmN0aW9uKHQpe3ZhciBuLHIsaSxvLGE7aWYocj1rP2wuZ2V0RWxlbWVudFJ1
bGUodCk6e30pe2lmKFRbdF0mJiFCKXtpZihuPWIuZmlyc3RDaGlsZCxuJiYzPT09bi50eXBlKWlm
KGk9bi52YWx1ZS5yZXBsYWNlKFIsIiIpLGkubGVuZ3RoPjApbi52YWx1ZT1pLG49bi5uZXh0O2Vs
c2UgZm9yKG89bi5uZXh0LG4ucmVtb3ZlKCksbj1vO24mJjM9PT1uLnR5cGU7KWk9bi52YWx1ZSxv
PW4ubmV4dCwoMD09PWkubGVuZ3RofHxNLnRlc3QoaSkpJiYobi5yZW1vdmUoKSxuPW8pLG49bztp
ZihuPWIubGFzdENoaWxkLG4mJjM9PT1uLnR5cGUpaWYoaT1uLnZhbHVlLnJlcGxhY2UoRCwiIiks
aS5sZW5ndGg+MCluLnZhbHVlPWksbj1uLnByZXY7ZWxzZSBmb3Iobz1uLnByZXYsbi5yZW1vdmUo
KSxuPW87biYmMz09PW4udHlwZTspaT1uLnZhbHVlLG89bi5wcmV2LCgwPT09aS5sZW5ndGh8fE0u
dGVzdChpKSkmJihuLnJlbW92ZSgpLG49byksbj1vfWlmKEImJkhbdF0mJihCPSExKSwoci5yZW1v
dmVFbXB0eXx8ci5wYWRkRW1wdHkpJiZiLmlzRW1wdHkoTykpaWYoci5wYWRkRW1wdHkpYi5lbXB0
eSgpLmFwcGVuZChuZXcgZSgiI3RleHQiLCIzIikpLnZhbHVlPSJceGEwIjtlbHNlIGlmKCFiLmF0
dHJpYnV0ZXMubWFwLm5hbWUmJiFiLmF0dHJpYnV0ZXMubWFwLmlkKXJldHVybiBhPWIucGFyZW50
LGIuZW1wdHkoKS5yZW1vdmUoKSx2b2lkKGI9YSk7Yj1iLnBhcmVudH19fSxsKSx5PWI9bmV3IGUo
by5jb250ZXh0fHxyLnJvb3RfbmFtZSwxMSksdi5wYXJzZSh0KSxrJiZBLmxlbmd0aCYmKG8uY29u
dGV4dD9vLmludmFsaWQ9ITA6YyhBKSksSSYmKCJib2R5Ij09eS5uYW1lfHxvLmlzUm9vdENvbnRl
bnQpJiZhKCksIW8uaW52YWxpZCl7Zm9yKFMgaW4gcCl7Zm9yKEU9ZFtTXSxDPXBbU10sXz1DLmxl
bmd0aDtfLS07KUNbX10ucGFyZW50fHxDLnNwbGljZShfLDEpO2Zvcih4PTAsdz1FLmxlbmd0aDt3
Png7eCsrKUVbeF0oQyxTLG8pfWZvcih4PTAsdz1mLmxlbmd0aDt3Png7eCsrKWlmKEU9Zlt4XSxF
Lm5hbWUgaW4gaCl7Zm9yKEM9aFtFLm5hbWVdLF89Qy5sZW5ndGg7Xy0tOylDW19dLnBhcmVudHx8
Qy5zcGxpY2UoXywxKTtmb3IoXz0wLE49RS5jYWxsYmFja3MubGVuZ3RoO04+XztfKyspRS5jYWxs
YmFja3NbX10oQyxFLm5hbWUsbyl9fXJldHVybiB5fSxyLnJlbW92ZV90cmFpbGluZ19icnMmJnUu
YWRkTm9kZUZpbHRlcigiYnIiLGZ1bmN0aW9uKHQpe3ZhciBuLHI9dC5sZW5ndGgsaSxvPXMoe30s
bC5nZXRCbG9ja0VsZW1lbnRzKCkpLGE9bC5nZXROb25FbXB0eUVsZW1lbnRzKCksYyx1LGQsZixw
LGg7Zm9yKG8uYm9keT0xLG49MDtyPm47bisrKWlmKGk9dFtuXSxjPWkucGFyZW50LG9baS5wYXJl
bnQubmFtZV0mJmk9PT1jLmxhc3RDaGlsZCl7Zm9yKGQ9aS5wcmV2O2Q7KXtpZihmPWQubmFtZSwi
c3BhbiIhPT1mfHwiYm9va21hcmsiIT09ZC5hdHRyKCJkYXRhLW1jZS10eXBlIikpe2lmKCJiciIh
PT1mKWJyZWFrO2lmKCJiciI9PT1mKXtpPW51bGw7YnJlYWt9fWQ9ZC5wcmV2fWkmJihpLnJlbW92
ZSgpLGMuaXNFbXB0eShhKSYmKHA9bC5nZXRFbGVtZW50UnVsZShjLm5hbWUpLHAmJihwLnJlbW92
ZUVtcHR5P2MucmVtb3ZlKCk6cC5wYWRkRW1wdHkmJihjLmVtcHR5KCkuYXBwZW5kKG5ldyBlKCIj
dGV4dCIsMykpLnZhbHVlPSJceGEwIikpKSl9ZWxzZXtmb3IodT1pO2MmJmMuZmlyc3RDaGlsZD09
PXUmJmMubGFzdENoaWxkPT09dSYmKHU9Yywhb1tjLm5hbWVdKTspYz1jLnBhcmVudDt1PT09YyYm
KGg9bmV3IGUoIiN0ZXh0IiwzKSxoLnZhbHVlPSJceGEwIixpLnJlcGxhY2UoaCkpfX0pLHIuYWxs
b3dfaHRtbF9pbl9uYW1lZF9hbmNob3J8fHUuYWRkQXR0cmlidXRlRmlsdGVyKCJpZCxuYW1lIixm
dW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5sZW5ndGgsbixyLGksbzt0LS07KWlmKG89ZVt0XSwiYSI9
PT1vLm5hbWUmJm8uZmlyc3RDaGlsZCYmIW8uYXR0cigiaHJlZiIpKXtpPW8ucGFyZW50LG49by5s
YXN0Q2hpbGQ7ZG8gcj1uLnByZXYsaS5pbnNlcnQobixvKSxuPXI7d2hpbGUobil9fSl9fSkscihF
LFttLHBdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dC5tYWtlTWFwO3JldHVybiBmdW5jdGlvbih0KXt2
YXIgcj1bXSxpLG8sYSxzLGw7cmV0dXJuIHQ9dHx8e30saT10LmluZGVudCxvPW4odC5pbmRlbnRf
YmVmb3JlfHwiIiksYT1uKHQuaW5kZW50X2FmdGVyfHwiIikscz1lLmdldEVuY29kZUZ1bmModC5l
bnRpdHlfZW5jb2Rpbmd8fCJyYXciLHQuZW50aXRpZXMpLGw9Imh0bWwiPT10LmVsZW1lbnRfZm9y
bWF0LHtzdGFydDpmdW5jdGlvbihlLHQsbil7dmFyIGMsdSxkLGY7aWYoaSYmb1tlXSYmci5sZW5n
dGg+MCYmKGY9cltyLmxlbmd0aC0xXSxmLmxlbmd0aD4wJiYiXG4iIT09ZiYmci5wdXNoKCJcbiIp
KSxyLnB1c2goIjwiLGUpLHQpZm9yKGM9MCx1PXQubGVuZ3RoO3U+YztjKyspZD10W2NdLHIucHVz
aCgiICIsZC5uYW1lLCc9IicscyhkLnZhbHVlLCEwKSwnIicpO3Jbci5sZW5ndGhdPSFufHxsPyI+
IjoiIC8+IixuJiZpJiZhW2VdJiZyLmxlbmd0aD4wJiYoZj1yW3IubGVuZ3RoLTFdLGYubGVuZ3Ro
PjAmJiJcbiIhPT1mJiZyLnB1c2goIlxuIikpfSxlbmQ6ZnVuY3Rpb24oZSl7dmFyIHQ7ci5wdXNo
KCI8LyIsZSwiPiIpLGkmJmFbZV0mJnIubGVuZ3RoPjAmJih0PXJbci5sZW5ndGgtMV0sdC5sZW5n
dGg+MCYmIlxuIiE9PXQmJnIucHVzaCgiXG4iKSl9LHRleHQ6ZnVuY3Rpb24oZSx0KXtlLmxlbmd0
aD4wJiYocltyLmxlbmd0aF09dD9lOnMoZSkpfSxjZGF0YTpmdW5jdGlvbihlKXtyLnB1c2goIjwh
W0NEQVRBWyIsZSwiXV0+Iil9LGNvbW1lbnQ6ZnVuY3Rpb24oZSl7ci5wdXNoKCI8IS0tIixlLCIt
LT4iKX0scGk6ZnVuY3Rpb24oZSx0KXt0P3IucHVzaCgiPD8iLGUsIiAiLHQsIj8+Iik6ci5wdXNo
KCI8PyIsZSwiPz4iKSxpJiZyLnB1c2goIlxuIil9LGRvY3R5cGU6ZnVuY3Rpb24oZSl7ci5wdXNo
KCI8IURPQ1RZUEUiLGUsIj4iLGk/IlxuIjoiIil9LHJlc2V0OmZ1bmN0aW9uKCl7ci5sZW5ndGg9
MH0sZ2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiByLmpvaW4oIiIpLnJlcGxhY2UoL1xuJC8s
IiIpfX19fSkscihTLFtFLHddLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dmFy
IGk9dGhpcyxvPW5ldyBlKG4pO249bnx8e30sbi52YWxpZGF0ZT0idmFsaWRhdGUiaW4gbj9uLnZh
bGlkYXRlOiEwLGkuc2NoZW1hPXI9cnx8bmV3IHQsaS53cml0ZXI9byxpLnNlcmlhbGl6ZT1mdW5j
dGlvbihlKXtmdW5jdGlvbiB0KGUpe3ZhciBuPWlbZS50eXBlXSxzLGwsYyx1LGQsZixwLGgsbTtp
ZihuKW4oZSk7ZWxzZXtpZihzPWUubmFtZSxsPWUuc2hvcnRFbmRlZCxjPWUuYXR0cmlidXRlcyxh
JiZjJiZjLmxlbmd0aD4xKXtmb3IoZj1bXSxmLm1hcD17fSxtPXIuZ2V0RWxlbWVudFJ1bGUoZS5u
YW1lKSxwPTAsaD1tLmF0dHJpYnV0ZXNPcmRlci5sZW5ndGg7aD5wO3ArKyl1PW0uYXR0cmlidXRl
c09yZGVyW3BdLHUgaW4gYy5tYXAmJihkPWMubWFwW3VdLGYubWFwW3VdPWQsZi5wdXNoKHtuYW1l
OnUsdmFsdWU6ZH0pKTtmb3IocD0wLGg9Yy5sZW5ndGg7aD5wO3ArKyl1PWNbcF0ubmFtZSx1IGlu
IGYubWFwfHwoZD1jLm1hcFt1XSxmLm1hcFt1XT1kLGYucHVzaCh7bmFtZTp1LHZhbHVlOmR9KSk7
Yz1mfWlmKG8uc3RhcnQoZS5uYW1lLGMsbCksIWwpe2lmKGU9ZS5maXJzdENoaWxkKWRvIHQoZSk7
d2hpbGUoZT1lLm5leHQpO28uZW5kKHMpfX19dmFyIGksYTtyZXR1cm4gYT1uLnZhbGlkYXRlLGk9
ezM6ZnVuY3Rpb24oZSl7by50ZXh0KGUudmFsdWUsZS5yYXcpfSw4OmZ1bmN0aW9uKGUpe28uY29t
bWVudChlLnZhbHVlKX0sNzpmdW5jdGlvbihlKXtvLnBpKGUubmFtZSxlLnZhbHVlKX0sMTA6ZnVu
Y3Rpb24oZSl7by5kb2N0eXBlKGUudmFsdWUpfSw0OmZ1bmN0aW9uKGUpe28uY2RhdGEoZS52YWx1
ZSl9LDExOmZ1bmN0aW9uKGUpe2lmKGU9ZS5maXJzdENoaWxkKWRvIHQoZSk7d2hpbGUoZT1lLm5l
eHQpfX0sby5yZXNldCgpLDEhPWUudHlwZXx8bi5pbm5lcj9pWzExXShlKTp0KGUpLG8uZ2V0Q29u
dGVudCgpfX19KSxyKGssW3ksTixtLFMseCx3LGcscF0sZnVuY3Rpb24oZSx0LG4scixpLG8sYSxz
KXt2YXIgbD1zLmVhY2gsYz1zLnRyaW0sdT1lLkRPTTtyZXR1cm4gZnVuY3Rpb24oZSxpKXt2YXIg
cyxkLGY7cmV0dXJuIGkmJihzPWkuZG9tLGQ9aS5zY2hlbWEpLHM9c3x8dSxkPWR8fG5ldyBvKGUp
LGUuZW50aXR5X2VuY29kaW5nPWUuZW50aXR5X2VuY29kaW5nfHwibmFtZWQiLGUucmVtb3ZlX3Ry
YWlsaW5nX2Jycz0icmVtb3ZlX3RyYWlsaW5nX2JycyJpbiBlP2UucmVtb3ZlX3RyYWlsaW5nX2Jy
czohMCxmPW5ldyB0KGUsZCksZi5hZGRBdHRyaWJ1dGVGaWx0ZXIoImRhdGEtbWNlLXRhYmluZGV4
IixmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aCxyO24tLTspcj1lW25dLHIuYXR0cigi
dGFiaW5kZXgiLHIuYXR0cmlidXRlcy5tYXBbImRhdGEtbWNlLXRhYmluZGV4Il0pLHIuYXR0cih0
LG51bGwpfSksZi5hZGRBdHRyaWJ1dGVGaWx0ZXIoInNyYyxocmVmLHN0eWxlIixmdW5jdGlvbih0
LG4pe2Zvcih2YXIgcj10Lmxlbmd0aCxpLG8sYT0iZGF0YS1tY2UtIituLGw9ZS51cmxfY29udmVy
dGVyLGM9ZS51cmxfY29udmVydGVyX3Njb3BlLHU7ci0tOylpPXRbcl0sbz1pLmF0dHJpYnV0ZXMu
bWFwW2FdLG8hPT11PyhpLmF0dHIobixvLmxlbmd0aD4wP286bnVsbCksaS5hdHRyKGEsbnVsbCkp
OihvPWkuYXR0cmlidXRlcy5tYXBbbl0sInN0eWxlIj09PW4/bz1zLnNlcmlhbGl6ZVN0eWxlKHMu
cGFyc2VTdHlsZShvKSxpLm5hbWUpOmwmJihvPWwuY2FsbChjLG8sbixpLm5hbWUpKSxpLmF0dHIo
bixvLmxlbmd0aD4wP286bnVsbCkpfSksZi5hZGRBdHRyaWJ1dGVGaWx0ZXIoImNsYXNzIixmdW5j
dGlvbihlKXtmb3IodmFyIHQ9ZS5sZW5ndGgsbixyO3QtLTspbj1lW3RdLHI9bi5hdHRyKCJjbGFz
cyIpLnJlcGxhY2UoLyg/Ol58XHMpbWNlLWl0ZW0tXHcrKD8hXFMpL2csIiIpLG4uYXR0cigiY2xh
c3MiLHIubGVuZ3RoPjA/cjpudWxsKX0pLGYuYWRkQXR0cmlidXRlRmlsdGVyKCJkYXRhLW1jZS10
eXBlIixmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPWUubGVuZ3RoLGk7ci0tOylpPWVbcl0sImJv
b2ttYXJrIiE9PWkuYXR0cmlidXRlcy5tYXBbImRhdGEtbWNlLXR5cGUiXXx8bi5jbGVhbnVwfHxp
LnJlbW92ZSgpfSksZi5hZGRBdHRyaWJ1dGVGaWx0ZXIoImRhdGEtbWNlLWV4cGFuZG8iLGZ1bmN0
aW9uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoO24tLTspZVtuXS5hdHRyKHQsbnVsbCl9KSxmLmFk
ZE5vZGVGaWx0ZXIoIm5vc2NyaXB0IixmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5sZW5ndGgscjt0
LS07KXI9ZVt0XS5maXJzdENoaWxkLHImJihyLnZhbHVlPW4uZGVjb2RlKHIudmFsdWUpKX0pLGYu
YWRkTm9kZUZpbHRlcigic2NyaXB0LHN0eWxlIixmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSl7
cmV0dXJuIGUucmVwbGFjZSgvKDwhLS1cW0NEQVRBXFt8XF1cXS0tPikvZywiXG4iKS5yZXBsYWNl
KC9eW1xyXG5dKnxbXHJcbl0qJC9nLCIiKS5yZXBsYWNlKC9eXHMqKCg8IS0tKT8oXHMqXC9cLyk/
XHMqPCFcW0NEQVRBXFt8KDwhLS1ccyopP1wvXCpccyo8IVxbQ0RBVEFcW1xzKlwqXC98KFwvXC8p
P1xzKjwhLS18XC9cKlxzKjwhLS1ccypcKlwvKVxzKltcclxuXSovZ2ksIiIpLnJlcGxhY2UoL1xz
KihcL1wqXHMqXF1cXT5ccypcKlwvKC0tPik/fFxzKlwvXC9ccypcXVxdPigtLT4pP3xcL1wvXHMq
KC0tPik/fFxdXF0+fFwvXCpccyotLT5ccypcKlwvfFxzKi0tPlxzKilccyokL2csIiIpfWZvcih2
YXIgcj1lLmxlbmd0aCxpLG87ci0tOylpZihpPWVbcl0sbz1pLmZpcnN0Q2hpbGQ/aS5maXJzdENo
aWxkLnZhbHVlOiIiLCJzY3JpcHQiPT09dCl7dmFyIGE9KGkuYXR0cigidHlwZSIpfHwidGV4dC9q
YXZhc2NyaXB0IikucmVwbGFjZSgvXm1jZVwtLywiIik7aS5hdHRyKCJ0eXBlIiwidGV4dC9qYXZh
c2NyaXB0Ij09PWE/bnVsbDphKSxvLmxlbmd0aD4wJiYoaS5maXJzdENoaWxkLnZhbHVlPSIvLyA8
IVtDREFUQVtcbiIrbihvKSsiXG4vLyBdXT4iKX1lbHNlIG8ubGVuZ3RoPjAmJihpLmZpcnN0Q2hp
bGQudmFsdWU9IjwhLS1cbiIrbihvKSsiXG4tLT4iKX0pLGYuYWRkTm9kZUZpbHRlcigiI2NvbW1l
bnQiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxuO3QtLTspbj1lW3RdLDA9PT1uLnZh
bHVlLmluZGV4T2YoIltDREFUQVsiKT8obi5uYW1lPSIjY2RhdGEiLG4udHlwZT00LG4udmFsdWU9
bi52YWx1ZS5yZXBsYWNlKC9eXFtDREFUQVxbfFxdXF0kL2csIiIpKTowPT09bi52YWx1ZS5pbmRl
eE9mKCJtY2U6cHJvdGVjdGVkICIpJiYobi5uYW1lPSIjdGV4dCIsbi50eXBlPTMsbi5yYXc9ITAs
bi52YWx1ZT11bmVzY2FwZShuLnZhbHVlKS5zdWJzdHIoMTQpKX0pLGYuYWRkTm9kZUZpbHRlcigi
eG1sOm5hbWVzcGFjZSxpbnB1dCIsZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZS5sZW5ndGgscjtu
LS07KXI9ZVtuXSw3PT09ci50eXBlP3IucmVtb3ZlKCk6MT09PXIudHlwZSYmKCJpbnB1dCIhPT10
fHwidHlwZSJpbiByLmF0dHJpYnV0ZXMubWFwfHxyLmF0dHIoInR5cGUiLCJ0ZXh0IikpfSksZS5m
aXhfbGlzdF9lbGVtZW50cyYmZi5hZGROb2RlRmlsdGVyKCJ1bCxvbCIsZnVuY3Rpb24oZSl7Zm9y
KHZhciB0PWUubGVuZ3RoLG4scjt0LS07KW49ZVt0XSxyPW4ucGFyZW50LCgidWwiPT09ci5uYW1l
fHwib2wiPT09ci5uYW1lKSYmbi5wcmV2JiYibGkiPT09bi5wcmV2Lm5hbWUmJm4ucHJldi5hcHBl
bmQobil9KSxmLmFkZEF0dHJpYnV0ZUZpbHRlcigiZGF0YS1tY2Utc3JjLGRhdGEtbWNlLWhyZWYs
ZGF0YS1tY2Utc3R5bGUsZGF0YS1tY2Utc2VsZWN0ZWQiLGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBu
PWUubGVuZ3RoO24tLTspZVtuXS5hdHRyKHQsbnVsbCl9KSx7c2NoZW1hOmQsYWRkTm9kZUZpbHRl
cjpmLmFkZE5vZGVGaWx0ZXIsYWRkQXR0cmlidXRlRmlsdGVyOmYuYWRkQXR0cmlidXRlRmlsdGVy
LHNlcmlhbGl6ZTpmdW5jdGlvbih0LG4pe3ZhciBpPXRoaXMsbyx1LHAsaCxtO3JldHVybiBhLmll
JiZzLnNlbGVjdCgic2NyaXB0LHN0eWxlLHNlbGVjdCxtYXAiKS5sZW5ndGg+MD8obT10LmlubmVy
SFRNTCx0PXQuY2xvbmVOb2RlKCExKSxzLnNldEhUTUwodCxtKSk6dD10LmNsb25lTm9kZSghMCks
bz10Lm93bmVyRG9jdW1lbnQuaW1wbGVtZW50YXRpb24sby5jcmVhdGVIVE1MRG9jdW1lbnQmJih1
PW8uY3JlYXRlSFRNTERvY3VtZW50KCIiKSxsKCJCT0RZIj09dC5ub2RlTmFtZT90LmNoaWxkTm9k
ZXM6W3RdLGZ1bmN0aW9uKGUpe3UuYm9keS5hcHBlbmRDaGlsZCh1LmltcG9ydE5vZGUoZSwhMCkp
fSksdD0iQk9EWSIhPXQubm9kZU5hbWU/dS5ib2R5LmZpcnN0Q2hpbGQ6dS5ib2R5LHA9cy5kb2Ms
cy5kb2M9dSksbj1ufHx7fSxuLmZvcm1hdD1uLmZvcm1hdHx8Imh0bWwiLG4uc2VsZWN0aW9uJiYo
bi5mb3JjZWRfcm9vdF9ibG9jaz0iIiksbi5ub19ldmVudHN8fChuLm5vZGU9dCxpLm9uUHJlUHJv
Y2VzcyhuKSksaD1uZXcgcihlLGQpLG4uY29udGVudD1oLnNlcmlhbGl6ZShmLnBhcnNlKGMobi5n
ZXRJbm5lcj90LmlubmVySFRNTDpzLmdldE91dGVySFRNTCh0KSksbikpLG4uY2xlYW51cHx8KG4u
Y29udGVudD1uLmNvbnRlbnQucmVwbGFjZSgvXHVGRUZGL2csIiIpKSxuLm5vX2V2ZW50c3x8aS5v
blBvc3RQcm9jZXNzKG4pLHAmJihzLmRvYz1wKSxuLm5vZGU9bnVsbCxuLmNvbnRlbnR9LGFkZFJ1
bGVzOmZ1bmN0aW9uKGUpe2QuYWRkVmFsaWRFbGVtZW50cyhlKX0sc2V0UnVsZXM6ZnVuY3Rpb24o
ZSl7ZC5zZXRWYWxpZEVsZW1lbnRzKGUpfSxvblByZVByb2Nlc3M6ZnVuY3Rpb24oZSl7aSYmaS5m
aXJlKCJQcmVQcm9jZXNzIixlKX0sb25Qb3N0UHJvY2VzczpmdW5jdGlvbihlKXtpJiZpLmZpcmUo
IlBvc3RQcm9jZXNzIixlKX19fX0pLHIoVCxbXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7ZnVu
Y3Rpb24gdCh0LG4pe3ZhciByLGk9MCxvLGEscyxsLGMsdSxkPS0xLGY7aWYocj10LmR1cGxpY2F0
ZSgpLHIuY29sbGFwc2UobiksZj1yLnBhcmVudEVsZW1lbnQoKSxmLm93bmVyRG9jdW1lbnQ9PT1l
LmRvbS5kb2Mpe2Zvcig7ImZhbHNlIj09PWYuY29udGVudEVkaXRhYmxlOylmPWYucGFyZW50Tm9k
ZTsKK2lmKCFmLmhhc0NoaWxkTm9kZXMoKSlyZXR1cm57bm9kZTpmLGluc2lkZToxfTtmb3Iocz1m
LmNoaWxkcmVuLG89cy5sZW5ndGgtMTtvPj1pOylpZih1PU1hdGguZmxvb3IoKGkrbykvMiksbD1z
W3VdLHIubW92ZVRvRWxlbWVudFRleHQobCksZD1yLmNvbXBhcmVFbmRQb2ludHMobj8iU3RhcnRU
b1N0YXJ0IjoiRW5kVG9FbmQiLHQpLGQ+MClvPXUtMTtlbHNle2lmKCEoMD5kKSlyZXR1cm57bm9k
ZTpsfTtpPXUrMX1pZigwPmQpZm9yKGw/ci5jb2xsYXBzZSghMSk6KHIubW92ZVRvRWxlbWVudFRl
eHQoZiksci5jb2xsYXBzZSghMCksbD1mLGE9ITApLGM9MDswIT09ci5jb21wYXJlRW5kUG9pbnRz
KG4/IlN0YXJ0VG9TdGFydCI6IlN0YXJ0VG9FbmQiLHQpJiYwIT09ci5tb3ZlKCJjaGFyYWN0ZXIi
LDEpJiZmPT1yLnBhcmVudEVsZW1lbnQoKTspYysrO2Vsc2UgZm9yKHIuY29sbGFwc2UoITApLGM9
MDswIT09ci5jb21wYXJlRW5kUG9pbnRzKG4/IlN0YXJ0VG9TdGFydCI6IlN0YXJ0VG9FbmQiLHQp
JiYwIT09ci5tb3ZlKCJjaGFyYWN0ZXIiLC0xKSYmZj09ci5wYXJlbnRFbGVtZW50KCk7KWMrKzty
ZXR1cm57bm9kZTpsLHBvc2l0aW9uOmQsb2Zmc2V0OmMsaW5zaWRlOmF9fX1mdW5jdGlvbiBuKCl7
ZnVuY3Rpb24gbihlKXt2YXIgbj10KG8sZSkscixpLHM9MCxsLGMsdTtpZihyPW4ubm9kZSxpPW4u
b2Zmc2V0LG4uaW5zaWRlJiYhci5oYXNDaGlsZE5vZGVzKCkpcmV0dXJuIHZvaWQgYVtlPyJzZXRT
dGFydCI6InNldEVuZCJdKHIsMCk7aWYoaT09PWMpcmV0dXJuIHZvaWQgYVtlPyJzZXRTdGFydEJl
Zm9yZSI6InNldEVuZEFmdGVyIl0ocik7aWYobi5wb3NpdGlvbjwwKXtpZihsPW4uaW5zaWRlP3Iu
Zmlyc3RDaGlsZDpyLm5leHRTaWJsaW5nLCFsKXJldHVybiB2b2lkIGFbZT8ic2V0U3RhcnRBZnRl
ciI6InNldEVuZEFmdGVyIl0ocik7aWYoIWkpcmV0dXJuIHZvaWQoMz09bC5ub2RlVHlwZT9hW2U/
InNldFN0YXJ0Ijoic2V0RW5kIl0obCwwKTphW2U/InNldFN0YXJ0QmVmb3JlIjoic2V0RW5kQmVm
b3JlIl0obCkpO2Zvcig7bDspe2lmKHU9bC5ub2RlVmFsdWUscys9dS5sZW5ndGgscz49aSl7cj1s
LHMtPWkscz11Lmxlbmd0aC1zO2JyZWFrfWw9bC5uZXh0U2libGluZ319ZWxzZXtpZihsPXIucHJl
dmlvdXNTaWJsaW5nLCFsKXJldHVybiBhW2U/InNldFN0YXJ0QmVmb3JlIjoic2V0RW5kQmVmb3Jl
Il0ocik7aWYoIWkpcmV0dXJuIHZvaWQoMz09ci5ub2RlVHlwZT9hW2U/InNldFN0YXJ0Ijoic2V0
RW5kIl0obCxyLm5vZGVWYWx1ZS5sZW5ndGgpOmFbZT8ic2V0U3RhcnRBZnRlciI6InNldEVuZEFm
dGVyIl0obCkpO2Zvcig7bDspe2lmKHMrPWwubm9kZVZhbHVlLmxlbmd0aCxzPj1pKXtyPWwscy09
aTticmVha31sPWwucHJldmlvdXNTaWJsaW5nfX1hW2U/InNldFN0YXJ0Ijoic2V0RW5kIl0ocixz
KX12YXIgbz1lLmdldFJuZygpLGE9aS5jcmVhdGVSbmcoKSxzLGwsYyx1LGQ7aWYocz1vLml0ZW0/
by5pdGVtKDApOm8ucGFyZW50RWxlbWVudCgpLHMub3duZXJEb2N1bWVudCE9aS5kb2MpcmV0dXJu
IGE7aWYobD1lLmlzQ29sbGFwc2VkKCksby5pdGVtKXJldHVybiBhLnNldFN0YXJ0KHMucGFyZW50
Tm9kZSxpLm5vZGVJbmRleChzKSksYS5zZXRFbmQoYS5zdGFydENvbnRhaW5lcixhLnN0YXJ0T2Zm
c2V0KzEpLGE7dHJ5e24oITApLGx8fG4oKX1jYXRjaChmKXtpZigtMjE0NzAyNDgwOSE9Zi5udW1i
ZXIpdGhyb3cgZjtkPXIuZ2V0Qm9va21hcmsoMiksYz1vLmR1cGxpY2F0ZSgpLGMuY29sbGFwc2Uo
ITApLHM9Yy5wYXJlbnRFbGVtZW50KCksbHx8KGM9by5kdXBsaWNhdGUoKSxjLmNvbGxhcHNlKCEx
KSx1PWMucGFyZW50RWxlbWVudCgpLHUuaW5uZXJIVE1MPXUuaW5uZXJIVE1MKSxzLmlubmVySFRN
TD1zLmlubmVySFRNTCxyLm1vdmVUb0Jvb2ttYXJrKGQpLG89ZS5nZXRSbmcoKSxuKCEwKSxsfHxu
KCl9cmV0dXJuIGF9dmFyIHI9dGhpcyxpPWUuZG9tLG89ITE7dGhpcy5nZXRCb29rbWFyaz1mdW5j
dGlvbihuKXtmdW5jdGlvbiByKGUpe3ZhciB0LG4scixvLGE9W107Zm9yKHQ9ZS5wYXJlbnROb2Rl
LG49aS5nZXRSb290KCkucGFyZW50Tm9kZTt0IT1uJiY5IT09dC5ub2RlVHlwZTspe2ZvcihyPXQu
Y2hpbGRyZW4sbz1yLmxlbmd0aDtvLS07KWlmKGU9PT1yW29dKXthLnB1c2gobyk7YnJlYWt9ZT10
LHQ9dC5wYXJlbnROb2RlfXJldHVybiBhfWZ1bmN0aW9uIG8oZSl7dmFyIG47cmV0dXJuIG49dChh
LGUpLG4/e3Bvc2l0aW9uOm4ucG9zaXRpb24sb2Zmc2V0Om4ub2Zmc2V0LGluZGV4ZXM6cihuLm5v
ZGUpLGluc2lkZTpuLmluc2lkZX06dm9pZCAwfXZhciBhPWUuZ2V0Um5nKCkscz17fTtyZXR1cm4g
Mj09PW4mJihhLml0ZW0/cy5zdGFydD17Y3RybDohMCxpbmRleGVzOnIoYS5pdGVtKDApKX06KHMu
c3RhcnQ9byghMCksZS5pc0NvbGxhcHNlZCgpfHwocy5lbmQ9bygpKSkpLHN9LHRoaXMubW92ZVRv
Qm9va21hcms9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXt2YXIgdCxuLHIsbztmb3IodD1pLmdl
dFJvb3QoKSxuPWUubGVuZ3RoLTE7bj49MDtuLS0pbz10LmNoaWxkcmVuLHI9ZVtuXSxyPD1vLmxl
bmd0aC0xJiYodD1vW3JdKTtyZXR1cm4gdH1mdW5jdGlvbiBuKG4pe3ZhciBpPWVbbj8ic3RhcnQi
OiJlbmQiXSxhLHMsbCxjO2kmJihhPWkucG9zaXRpb24+MCxzPW8uY3JlYXRlVGV4dFJhbmdlKCks
cy5tb3ZlVG9FbGVtZW50VGV4dCh0KGkuaW5kZXhlcykpLGM9aS5vZmZzZXQsYyE9PWw/KHMuY29s
bGFwc2UoaS5pbnNpZGV8fGEpLHMubW92ZVN0YXJ0KCJjaGFyYWN0ZXIiLGE/LWM6YykpOnMuY29s
bGFwc2Uobiksci5zZXRFbmRQb2ludChuPyJTdGFydFRvU3RhcnQiOiJFbmRUb1N0YXJ0IixzKSxu
JiZyLmNvbGxhcHNlKCEwKSl9dmFyIHIsbz1pLmRvYy5ib2R5O2Uuc3RhcnQmJihlLnN0YXJ0LmN0
cmw/KHI9by5jcmVhdGVDb250cm9sUmFuZ2UoKSxyLmFkZEVsZW1lbnQodChlLnN0YXJ0LmluZGV4
ZXMpKSxyLnNlbGVjdCgpKToocj1vLmNyZWF0ZVRleHRSYW5nZSgpLG4oITApLG4oKSxyLnNlbGVj
dCgpKSl9LHRoaXMuYWRkUmFuZ2U9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXt2YXIgdCxuLGEs
ZCxoO2E9aS5jcmVhdGUoImEiKSx0PWU/czpjLG49ZT9sOnUsZD1yLmR1cGxpY2F0ZSgpLCh0PT1m
fHx0PT1mLmRvY3VtZW50RWxlbWVudCkmJih0PXAsbj0wKSwzPT10Lm5vZGVUeXBlPyh0LnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKGEsdCksZC5tb3ZlVG9FbGVtZW50VGV4dChhKSxkLm1vdmVTdGFy
dCgiY2hhcmFjdGVyIixuKSxpLnJlbW92ZShhKSxyLnNldEVuZFBvaW50KGU/IlN0YXJ0VG9TdGFy
dCI6IkVuZFRvRW5kIixkKSk6KGg9dC5jaGlsZE5vZGVzLGgubGVuZ3RoPyhuPj1oLmxlbmd0aD9p
Lmluc2VydEFmdGVyKGEsaFtoLmxlbmd0aC0xXSk6dC5pbnNlcnRCZWZvcmUoYSxoW25dKSxkLm1v
dmVUb0VsZW1lbnRUZXh0KGEpKTp0LmNhbkhhdmVIVE1MJiYodC5pbm5lckhUTUw9IjxzcGFuPiYj
eEZFRkY7PC9zcGFuPiIsYT10LmZpcnN0Q2hpbGQsZC5tb3ZlVG9FbGVtZW50VGV4dChhKSxkLmNv
bGxhcHNlKG8pKSxyLnNldEVuZFBvaW50KGU/IlN0YXJ0VG9TdGFydCI6IkVuZFRvRW5kIixkKSxp
LnJlbW92ZShhKSl9dmFyIHIsYSxzLGwsYyx1LGQsZj1lLmRvbS5kb2MscD1mLmJvZHksaCxtO2lm
KHM9dC5zdGFydENvbnRhaW5lcixsPXQuc3RhcnRPZmZzZXQsYz10LmVuZENvbnRhaW5lcix1PXQu
ZW5kT2Zmc2V0LHI9cC5jcmVhdGVUZXh0UmFuZ2UoKSxzPT1jJiYxPT1zLm5vZGVUeXBlKXtpZihs
PT11JiYhcy5oYXNDaGlsZE5vZGVzKCkpe2lmKHMuY2FuSGF2ZUhUTUwpcmV0dXJuIGQ9cy5wcmV2
aW91c1NpYmxpbmcsZCYmIWQuaGFzQ2hpbGROb2RlcygpJiZpLmlzQmxvY2soZCk/ZC5pbm5lckhU
TUw9IiYjeEZFRkY7IjpkPW51bGwscy5pbm5lckhUTUw9IjxzcGFuPiYjeEZFRkY7PC9zcGFuPjxz
cGFuPiYjeEZFRkY7PC9zcGFuPiIsci5tb3ZlVG9FbGVtZW50VGV4dChzLmxhc3RDaGlsZCksci5z
ZWxlY3QoKSxpLmRvYy5zZWxlY3Rpb24uY2xlYXIoKSxzLmlubmVySFRNTD0iIix2b2lkKGQmJihk
LmlubmVySFRNTD0iIikpO2w9aS5ub2RlSW5kZXgocykscz1zLnBhcmVudE5vZGV9aWYobD09dS0x
KXRyeXtpZihtPXMuY2hpbGROb2Rlc1tsXSxhPXAuY3JlYXRlQ29udHJvbFJhbmdlKCksYS5hZGRF
bGVtZW50KG0pLGEuc2VsZWN0KCksaD1lLmdldFJuZygpLGguaXRlbSYmbT09PWguaXRlbSgwKSly
ZXR1cm59Y2F0Y2goZyl7fX1uKCEwKSxuKCksci5zZWxlY3QoKX0sdGhpcy5nZXRSYW5nZUF0PW59
cmV0dXJuIGV9KSxyKFIsW2ddLGZ1bmN0aW9uKGUpe3JldHVybntCQUNLU1BBQ0U6OCxERUxFVEU6
NDYsRE9XTjo0MCxFTlRFUjoxMyxMRUZUOjM3LFJJR0hUOjM5LFNQQUNFQkFSOjMyLFRBQjo5LFVQ
OjM4LG1vZGlmaWVyUHJlc3NlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zaGlmdEtleXx8ZS5jdHJs
S2V5fHxlLmFsdEtleX0sbWV0YUtleVByZXNzZWQ6ZnVuY3Rpb24odCl7cmV0dXJuKGUubWFjP3Qu
bWV0YUtleTp0LmN0cmxLZXkpJiYhdC5hbHRLZXl9fX0pLHIoQSxbUixwLGddLGZ1bmN0aW9uKGUs
dCxuKXtyZXR1cm4gZnVuY3Rpb24ocixpKXtmdW5jdGlvbiBvKGUpe3ZhciB0PWkuc2V0dGluZ3Mu
b2JqZWN0X3Jlc2l6aW5nO3JldHVybiB0PT09ITF8fG4uaU9TPyExOigic3RyaW5nIiE9dHlwZW9m
IHQmJih0PSJ0YWJsZSxpbWcsZGl2IiksImZhbHNlIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1j
ZS1yZXNpemUiKT8hMTppLmRvbS5pcyhlLHQpKX1mdW5jdGlvbiBhKHQpe3ZhciBuLHI7bj10LnNj
cmVlblgtayxyPXQuc2NyZWVuWS1ULEg9bipFWzJdK0IsUD1yKkVbM10rRCxIPTU+SD81OkgsUD01
PlA/NTpQLChlLm1vZGlmaWVyUHJlc3NlZCh0KXx8IklNRyI9PXcubm9kZU5hbWUmJkVbMl0qRVsz
XSE9PTApJiYoSD1NYXRoLnJvdW5kKFAvTCksUD1NYXRoLnJvdW5kKEgqTCkpLEMuc2V0U3R5bGVz
KF8se3dpZHRoOkgsaGVpZ2h0OlB9KSxFWzJdPDAmJl8uY2xpZW50V2lkdGg8PUgmJkMuc2V0U3R5
bGUoXywibGVmdCIsUisoQi1IKSksRVszXTwwJiZfLmNsaWVudEhlaWdodDw9UCYmQy5zZXRTdHls
ZShfLCJ0b3AiLEErKEQtUCkpLE18fChpLmZpcmUoIk9iamVjdFJlc2l6ZVN0YXJ0Iix7dGFyZ2V0
Oncsd2lkdGg6QixoZWlnaHQ6RH0pLE09ITApfWZ1bmN0aW9uIHMoKXtmdW5jdGlvbiBlKGUsdCl7
dCYmKHcuc3R5bGVbZV18fCFpLnNjaGVtYS5pc1ZhbGlkKHcubm9kZU5hbWUudG9Mb3dlckNhc2Uo
KSxlKT9DLnNldFN0eWxlKHcsZSx0KTpDLnNldEF0dHJpYih3LGUsdCkpfU09ITEsZSgid2lkdGgi
LEgpLGUoImhlaWdodCIsUCksQy51bmJpbmQoTywibW91c2Vtb3ZlIixhKSxDLnVuYmluZChPLCJt
b3VzZXVwIixzKSxJIT1PJiYoQy51bmJpbmQoSSwibW91c2Vtb3ZlIixhKSxDLnVuYmluZChJLCJt
b3VzZXVwIixzKSksQy5yZW1vdmUoXyksRiYmIlRBQkxFIiE9dy5ub2RlTmFtZXx8bCh3KSxpLmZp
cmUoIk9iamVjdFJlc2l6ZWQiLHt0YXJnZXQ6dyx3aWR0aDpILGhlaWdodDpQfSksaS5ub2RlQ2hh
bmdlZCgpfWZ1bmN0aW9uIGwoZSx0LHIpe3ZhciBsLHUsZCxmLHAsaD1pLmdldEJvZHkoKTtnKCks
bD1DLmdldFBvcyhlLGgpLFI9bC54LEE9bC55LHA9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1
PXAud2lkdGh8fHAucmlnaHQtcC5sZWZ0LGQ9cC5oZWlnaHR8fHAuYm90dG9tLXAudG9wLHchPWUm
JihtKCksdz1lLEg9UD0wKSxmPWkuZmlyZSgiT2JqZWN0U2VsZWN0ZWQiLHt0YXJnZXQ6ZX0pLG8o
ZSkmJiFmLmlzRGVmYXVsdFByZXZlbnRlZCgpP3goTixmdW5jdGlvbihlLG8pe2Z1bmN0aW9uIGwo
dCl7az10LnNjcmVlblgsVD10LnNjcmVlblksQj13LmNsaWVudFdpZHRoLEQ9dy5jbGllbnRIZWln
aHQsTD1EL0IsRT1lLF89dy5jbG9uZU5vZGUoITApLEMuYWRkQ2xhc3MoXywibWNlLWNsb25lZHJl
c2l6YWJsZSIpLF8uY29udGVudEVkaXRhYmxlPSExLF8udW5TZWxlY3RhYmU9ITAsQy5zZXRTdHls
ZXMoXyx7bGVmdDpSLHRvcDpBLG1hcmdpbjowfSksXy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtbWNl
LXNlbGVjdGVkIiksaS5nZXRCb2R5KCkuYXBwZW5kQ2hpbGQoXyksQy5iaW5kKE8sIm1vdXNlbW92
ZSIsYSksQy5iaW5kKE8sIm1vdXNldXAiLHMpLEkhPU8mJihDLmJpbmQoSSwibW91c2Vtb3ZlIixh
KSxDLmJpbmQoSSwibW91c2V1cCIscykpfXZhciBjLGY7cmV0dXJuIHQ/dm9pZChvPT10JiZsKHIp
KTooYz1DLmdldCgibWNlUmVzaXplSGFuZGxlIitvKSxjP0Muc2hvdyhjKTooZj1pLmdldEJvZHko
KSxjPUMuYWRkKGYsImRpdiIse2lkOiJtY2VSZXNpemVIYW5kbGUiK28sImRhdGEtbWNlLWJvZ3Vz
IjohMCwiY2xhc3MiOiJtY2UtcmVzaXplaGFuZGxlIix1bnNlbGVjdGFibGU6ITAsc3R5bGU6ImN1
cnNvcjoiK28rIi1yZXNpemU7IG1hcmdpbjowOyBwYWRkaW5nOjAifSksbi5pZSYmKGMuY29udGVu
dEVkaXRhYmxlPSExKSksZS5lbG18fChDLmJpbmQoYywibW91c2Vkb3duIixmdW5jdGlvbihlKXtl
LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSxsKGUpfSksZS5l
bG09Yyksdm9pZCBDLnNldFN0eWxlcyhjLHtsZWZ0OnUqZVswXStSLWMub2Zmc2V0V2lkdGgvMix0
b3A6ZCplWzFdK0EtYy5vZmZzZXRIZWlnaHQvMn0pKX0pOmMoKSx3LnNldEF0dHJpYnV0ZSgiZGF0
YS1tY2Utc2VsZWN0ZWQiLCIxIil9ZnVuY3Rpb24gYygpe3ZhciBlLHQ7ZygpLHcmJncucmVtb3Zl
QXR0cmlidXRlKCJkYXRhLW1jZS1zZWxlY3RlZCIpO2ZvcihlIGluIE4pdD1DLmdldCgibWNlUmVz
aXplSGFuZGxlIitlKSx0JiYoQy51bmJpbmQodCksQy5yZW1vdmUodCkpfWZ1bmN0aW9uIHUoZSl7
ZnVuY3Rpb24gdChlLHQpe2lmKGUpZG8gaWYoZT09PXQpcmV0dXJuITA7d2hpbGUoZT1lLnBhcmVu
dE5vZGUpfXZhciBuO3JldHVybiB4KEMuc2VsZWN0KCJpbWdbZGF0YS1tY2Utc2VsZWN0ZWRdLGhy
W2RhdGEtbWNlLXNlbGVjdGVkXSIpLGZ1bmN0aW9uKGUpe2UucmVtb3ZlQXR0cmlidXRlKCJkYXRh
LW1jZS1zZWxlY3RlZCIpfSksbj0ibW91c2Vkb3duIj09ZS50eXBlP2UudGFyZ2V0OnIuZ2V0Tm9k
ZSgpLG49Qy5nZXRQYXJlbnQobixGPyJ0YWJsZSI6InRhYmxlLGltZyxociIpLHQobixpLmdldEJv
ZHkoKSkmJih2KCksdChyLmdldFN0YXJ0KCksbikmJnQoci5nZXRFbmQoKSxuKSYmKCFGfHxuIT1y
LmdldFN0YXJ0KCkmJiJJTUciIT09ci5nZXRTdGFydCgpLm5vZGVOYW1lKSk/dm9pZCBsKG4pOnZv
aWQgYygpfWZ1bmN0aW9uIGQoZSx0LG4pe2UmJmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZlbnQo
Im9uIit0LG4pfWZ1bmN0aW9uIGYoZSx0LG4pe2UmJmUuZGV0YWNoRXZlbnQmJmUuZGV0YWNoRXZl
bnQoIm9uIit0LG4pfWZ1bmN0aW9uIHAoZSl7dmFyIHQ9ZS5zcmNFbGVtZW50LG4scixvLGEscyxj
LHU7bj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGM9Uy5jbGllbnRYLW4ubGVmdCx1PVMuY2xp
ZW50WS1uLnRvcDtmb3IociBpbiBOKWlmKG89TltyXSxhPXQub2Zmc2V0V2lkdGgqb1swXSxzPXQu
b2Zmc2V0SGVpZ2h0Km9bMV0sTWF0aC5hYnMoYS1jKTw4JiZNYXRoLmFicyhzLXUpPDgpe0U9bzti
cmVha31NPSEwLGkuZ2V0RG9jKCkuc2VsZWN0aW9uLmVtcHR5KCksbCh0LHIsUyl9ZnVuY3Rpb24g
aChlKXt2YXIgdD1lLnNyY0VsZW1lbnQ7aWYodCE9dyl7aWYobSgpLDA9PT10LmlkLmluZGV4T2Yo
Im1jZVJlc2l6ZUhhbmRsZSIpKXJldHVybiB2b2lkKGUucmV0dXJuVmFsdWU9ITEpOygiSU1HIj09
dC5ub2RlTmFtZXx8IlRBQkxFIj09dC5ub2RlTmFtZSkmJihjKCksdz10LGQodCwicmVzaXplc3Rh
cnQiLHApKX19ZnVuY3Rpb24gbSgpe2YodywicmVzaXplc3RhcnQiLHApfWZ1bmN0aW9uIGcoKXtm
b3IodmFyIGUgaW4gTil7dmFyIHQ9TltlXTt0LmVsbSYmKEMudW5iaW5kKHQuZWxtKSxkZWxldGUg
dC5lbG0pfX1mdW5jdGlvbiB2KCl7dHJ5e2kuZ2V0RG9jKCkuZXhlY0NvbW1hbmQoImVuYWJsZU9i
amVjdFJlc2l6aW5nIiwhMSwhMSl9Y2F0Y2goZSl7fX1mdW5jdGlvbiB5KGUpe3ZhciB0O2lmKEYp
e3Q9Ty5ib2R5LmNyZWF0ZUNvbnRyb2xSYW5nZSgpO3RyeXtyZXR1cm4gdC5hZGRFbGVtZW50KGUp
LHQuc2VsZWN0KCksITB9Y2F0Y2gobil7fX19ZnVuY3Rpb24gYigpe3c9Xz1udWxsLEYmJihtKCks
ZihpLmdldEJvZHkoKSwiY29udHJvbHNlbGVjdCIsaCkpfXZhciBDPWkuZG9tLHg9dC5lYWNoLHcs
XyxOLEUsUyxrLFQsUixBLEIsRCxMLE0sSCxQLE89aS5nZXREb2MoKSxJPWRvY3VtZW50LEY9bi5p
ZSYmbi5pZTwxMTtOPXtuOlsuNSwwLDAsLTFdLGU6WzEsLjUsMSwwXSxzOlsuNSwxLDAsMV0sdzpb
MCwuNSwtMSwwXSxudzpbMCwwLC0xLC0xXSxuZTpbMSwwLDEsLTFdLHNlOlsxLDEsMSwxXSxzdzpb
MCwxLC0xLDFdfTt2YXIgej0iLm1jZS1jb250ZW50LWJvZHkiO3JldHVybiBpLmNvbnRlbnRTdHls
ZXMucHVzaCh6KyIgZGl2Lm1jZS1yZXNpemVoYW5kbGUge3Bvc2l0aW9uOiBhYnNvbHV0ZTtib3Jk
ZXI6IDFweCBzb2xpZCBibGFjaztiYWNrZ3JvdW5kOiAjRkZGO3dpZHRoOiA1cHg7aGVpZ2h0OiA1
cHg7ei1pbmRleDogMTAwMDB9Iit6KyIgLm1jZS1yZXNpemVoYW5kbGU6aG92ZXIge2JhY2tncm91
bmQ6ICMwMDB9Iit6KyIgaW1nW2RhdGEtbWNlLXNlbGVjdGVkXSwgaHJbZGF0YS1tY2Utc2VsZWN0
ZWRdIHtvdXRsaW5lOiAxcHggc29saWQgYmxhY2s7cmVzaXplOiBub25lfSIreisiIC5tY2UtY2xv
bmVkcmVzaXphYmxlIHtwb3NpdGlvbjogYWJzb2x1dGU7Iisobi5nZWNrbz8iIjoib3V0bGluZTog
MXB4IGRhc2hlZCBibGFjazsiKSsib3BhY2l0eTogLjU7ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUw
KTt6LWluZGV4OiAxMDAwMH0iKSxpLm9uKCJpbml0IixmdW5jdGlvbigpe0Y/KGkub24oIk9iamVj
dFJlc2l6ZWQiLGZ1bmN0aW9uKGUpeyJUQUJMRSIhPWUudGFyZ2V0Lm5vZGVOYW1lJiYoYygpLHko
ZS50YXJnZXQpKX0pLGQoaS5nZXRCb2R5KCksImNvbnRyb2xzZWxlY3QiLGgpLGkub24oIm1vdXNl
ZG93biIsZnVuY3Rpb24oZSl7Uz1lfSkpOih2KCksbi5pZT49MTEmJihpLm9uKCJtb3VzZXVwIixm
dW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldC5ub2RlTmFtZTsvXihUQUJMRXxJTUd8SFIpJC8udGVz
dCh0KSYmKGkuc2VsZWN0aW9uLnNlbGVjdChlLnRhcmdldCwiVEFCTEUiPT10KSxpLm5vZGVDaGFu
Z2VkKCkpfSksaS5kb20uYmluZChpLmdldEJvZHkoKSwibXNjb250cm9sc2VsZWN0IixmdW5jdGlv
bihlKXsvXihUQUJMRXxJTUd8SFIpJC8udGVzdChlLnRhcmdldC5ub2RlTmFtZSkmJihlLnByZXZl
bnREZWZhdWx0KCksIklNRyI9PWUudGFyZ2V0LnRhZ05hbWUmJndpbmRvdy5zZXRUaW1lb3V0KGZ1
bmN0aW9uKCl7aS5zZWxlY3Rpb24uc2VsZWN0KGUudGFyZ2V0KX0sMCkpfSkpKSxpLm9uKCJub2Rl
Y2hhbmdlIG1vdXNlZG93biBtb3VzZXVwIFJlc2l6ZUVkaXRvciIsdSksaS5vbigia2V5ZG93biBr
ZXl1cCIsZnVuY3Rpb24oZSl7dyYmIlRBQkxFIj09dy5ub2RlTmFtZSYmdShlKX0pLGkub24oImhp
ZGUiLGMpfSksaS5vbigicmVtb3ZlIixnKSx7aXNSZXNpemFibGU6byxzaG93UmVzaXplUmVjdDps
LGhpZGVSZXNpemVSZWN0OmMsdXBkYXRlUmVzaXplUmVjdDp1LGNvbnRyb2xTZWxlY3Q6eSxkZXN0
cm95OmJ9fX0pLHIoQixbcCxmXSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSl7dGhpcy53YWxr
PWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gaShlKXt2YXIgdDtyZXR1cm4gdD1lWzBdLDM9PT10Lm5v
ZGVUeXBlJiZ0PT09bCYmYz49dC5ub2RlVmFsdWUubGVuZ3RoJiZlLnNwbGljZSgwLDEpLHQ9ZVtl
Lmxlbmd0aC0xXSwwPT09ZCYmZS5sZW5ndGg+MCYmdD09PXUmJjM9PT10Lm5vZGVUeXBlJiZlLnNw
bGljZShlLmxlbmd0aC0xLDEpLGV9ZnVuY3Rpb24gbyhlLHQsbil7Zm9yKHZhciByPVtdO2UmJmUh
PW47ZT1lW3RdKXIucHVzaChlKTtyZXR1cm4gcn1mdW5jdGlvbiBhKGUsdCl7ZG97aWYoZS5wYXJl
bnROb2RlPT10KXJldHVybiBlO2U9ZS5wYXJlbnROb2RlfXdoaWxlKGUpfWZ1bmN0aW9uIHMoZSx0
LHIpe3ZhciBhPXI/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIjtmb3IobT1lLGc9bS5w
YXJlbnROb2RlO20mJm0hPXQ7bT1nKWc9bS5wYXJlbnROb2RlLHY9byhtPT1lP206bVthXSxhKSx2
Lmxlbmd0aCYmKHJ8fHYucmV2ZXJzZSgpLG4oaSh2KSkpfXZhciBsPXQuc3RhcnRDb250YWluZXIs
Yz10LnN0YXJ0T2Zmc2V0LHU9dC5lbmRDb250YWluZXIsZD10LmVuZE9mZnNldCxmLHAsaCxtLGcs
dix5O2lmKHk9ZS5zZWxlY3QoInRkLm1jZS1pdGVtLXNlbGVjdGVkLHRoLm1jZS1pdGVtLXNlbGVj
dGVkIikseS5sZW5ndGg+MClyZXR1cm4gdm9pZCByKHksZnVuY3Rpb24oZSl7bihbZV0pfSk7aWYo
MT09bC5ub2RlVHlwZSYmbC5oYXNDaGlsZE5vZGVzKCkmJihsPWwuY2hpbGROb2Rlc1tjXSksMT09
dS5ub2RlVHlwZSYmdS5oYXNDaGlsZE5vZGVzKCkmJih1PXUuY2hpbGROb2Rlc1tNYXRoLm1pbihk
LTEsdS5jaGlsZE5vZGVzLmxlbmd0aC0xKV0pLGw9PXUpcmV0dXJuIG4oaShbbF0pKTtmb3IoZj1l
LmZpbmRDb21tb25BbmNlc3RvcihsLHUpLG09bDttO209bS5wYXJlbnROb2RlKXtpZihtPT09dSly
ZXR1cm4gcyhsLGYsITApO2lmKG09PT1mKWJyZWFrfWZvcihtPXU7bTttPW0ucGFyZW50Tm9kZSl7
aWYobT09PWwpcmV0dXJuIHModSxmKTtpZihtPT09ZilicmVha31wPWEobCxmKXx8bCxoPWEodSxm
KXx8dSxzKGwscCwhMCksdj1vKHA9PWw/cDpwLm5leHRTaWJsaW5nLCJuZXh0U2libGluZyIsaD09
dT9oLm5leHRTaWJsaW5nOmgpLHYubGVuZ3RoJiZuKGkodikpLHModSxoKX0sdGhpcy5zcGxpdD1m
dW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsdCl7cmV0dXJuIGUuc3BsaXRUZXh0KHQpfXZhciBuPWUu
c3RhcnRDb250YWluZXIscj1lLnN0YXJ0T2Zmc2V0LGk9ZS5lbmRDb250YWluZXIsbz1lLmVuZE9m
ZnNldDtyZXR1cm4gbj09aSYmMz09bi5ub2RlVHlwZT9yPjAmJnI8bi5ub2RlVmFsdWUubGVuZ3Ro
JiYoaT10KG4sciksbj1pLnByZXZpb3VzU2libGluZyxvPnI/KG8tPXIsbj1pPXQoaSxvKS5wcmV2
aW91c1NpYmxpbmcsbz1pLm5vZGVWYWx1ZS5sZW5ndGgscj0wKTpvPTApOigzPT1uLm5vZGVUeXBl
JiZyPjAmJnI8bi5ub2RlVmFsdWUubGVuZ3RoJiYobj10KG4scikscj0wKSwzPT1pLm5vZGVUeXBl
JiZvPjAmJm88aS5ub2RlVmFsdWUubGVuZ3RoJiYoaT10KGksbykucHJldmlvdXNTaWJsaW5nLG89
aS5ub2RlVmFsdWUubGVuZ3RoKSkse3N0YXJ0Q29udGFpbmVyOm4sc3RhcnRPZmZzZXQ6cixlbmRD
b250YWluZXI6aSxlbmRPZmZzZXQ6b319LHRoaXMubm9ybWFsaXplPWZ1bmN0aW9uKG4pe2Z1bmN0
aW9uIHIocil7ZnVuY3Rpb24gYShuLHIpe2Zvcih2YXIgaT1uZXcgdChuLGUuZ2V0UGFyZW50KG4u
cGFyZW50Tm9kZSxlLmlzQmxvY2spfHxmKTtuPWlbcj8icHJldiI6Im5leHQiXSgpOylpZigiQlIi
PT09bi5ub2RlTmFtZSlyZXR1cm4hMH1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGUucHJldmlvdXNT
aWJsaW5nJiZlLnByZXZpb3VzU2libGluZy5ub2RlTmFtZT09dH1mdW5jdGlvbiBsKG4scil7dmFy
IGEscyxsO2lmKHI9cnx8YyxsPWUuZ2V0UGFyZW50KHIucGFyZW50Tm9kZSxlLmlzQmxvY2spfHxm
LG4mJiJCUiI9PXIubm9kZU5hbWUmJmcmJmUuaXNFbXB0eShsKSlyZXR1cm4gYz1yLnBhcmVudE5v
ZGUsdT1lLm5vZGVJbmRleChyKSx2b2lkKGk9ITApO2ZvcihhPW5ldyB0KHIsbCk7cD1hW24/InBy
ZXYiOiJuZXh0Il0oKTspe2lmKCJmYWxzZSI9PT1lLmdldENvbnRlbnRFZGl0YWJsZVBhcmVudChw
KSlyZXR1cm47aWYoMz09PXAubm9kZVR5cGUmJnAubm9kZVZhbHVlLmxlbmd0aD4wKXJldHVybiBj
PXAsdT1uP3Aubm9kZVZhbHVlLmxlbmd0aDowLHZvaWQoaT0hMCk7aWYoZS5pc0Jsb2NrKHApfHxo
W3Aubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pcmV0dXJuO3M9cH1vJiZzJiYoYz1zLGk9ITAsdT0w
KX12YXIgYyx1LGQsZj1lLmdldFJvb3QoKSxwLGgsbSxnO2lmKGM9blsocj8ic3RhcnQiOiJlbmQi
KSsiQ29udGFpbmVyIl0sdT1uWyhyPyJzdGFydCI6ImVuZCIpKyJPZmZzZXQiXSxnPTE9PWMubm9k
ZVR5cGUmJnU9PT1jLmNoaWxkTm9kZXMubGVuZ3RoLGg9ZS5zY2hlbWEuZ2V0Tm9uRW1wdHlFbGVt
ZW50cygpLG09ciwxPT1jLm5vZGVUeXBlJiZ1PmMuY2hpbGROb2Rlcy5sZW5ndGgtMSYmKG09ITEp
LDk9PT1jLm5vZGVUeXBlJiYoYz1lLmdldFJvb3QoKSx1PTApLGM9PT1mKXtpZihtJiYocD1jLmNo
aWxkTm9kZXNbdT4wP3UtMTowXSxwJiYoaFtwLm5vZGVOYW1lXXx8IlRBQkxFIj09cC5ub2RlTmFt
ZSkpKXJldHVybjtpZihjLmhhc0NoaWxkTm9kZXMoKSYmKHU9TWF0aC5taW4oIW0mJnU+MD91LTE6
dSxjLmNoaWxkTm9kZXMubGVuZ3RoLTEpLGM9Yy5jaGlsZE5vZGVzW3VdLHU9MCxjLmhhc0NoaWxk
Tm9kZXMoKSYmIS9UQUJMRS8udGVzdChjLm5vZGVOYW1lKSkpe3A9YyxkPW5ldyB0KGMsZik7ZG97
aWYoMz09PXAubm9kZVR5cGUmJnAubm9kZVZhbHVlLmxlbmd0aD4wKXt1PW0/MDpwLm5vZGVWYWx1
ZS5sZW5ndGgsYz1wLGk9ITA7YnJlYWt9aWYoaFtwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKXt1
PWUubm9kZUluZGV4KHApLGM9cC5wYXJlbnROb2RlLCJJTUciIT1wLm5vZGVOYW1lfHxtfHx1Kyss
aT0hMDticmVha319d2hpbGUocD1tP2QubmV4dCgpOmQucHJldigpKX19byYmKDM9PT1jLm5vZGVU
eXBlJiYwPT09dSYmbCghMCksMT09PWMubm9kZVR5cGUmJihwPWMuY2hpbGROb2Rlc1t1XSxwfHwo
cD1jLmNoaWxkTm9kZXNbdS0xXSksIXB8fCJCUiIhPT1wLm5vZGVOYW1lfHxzKHAsIkEiKXx8YShw
KXx8YShwLCEwKXx8bCghMCxwKSkpLG0mJiFvJiYzPT09Yy5ub2RlVHlwZSYmdT09PWMubm9kZVZh
bHVlLmxlbmd0aCYmbCghMSksaSYmblsic2V0Iisocj8iU3RhcnQiOiJFbmQiKV0oYyx1KX12YXIg
aSxvO3JldHVybiBvPW4uY29sbGFwc2VkLHIoITApLG98fHIoKSxpJiZvJiZuLmNvbGxhcHNlKCEw
KSxpfX12YXIgcj1lLmVhY2g7cmV0dXJuIG4uY29tcGFyZVJhbmdlcz1mdW5jdGlvbihlLHQpe2lm
KGUmJnQpe2lmKCFlLml0ZW0mJiFlLmR1cGxpY2F0ZSlyZXR1cm4gZS5zdGFydENvbnRhaW5lcj09
dC5zdGFydENvbnRhaW5lciYmZS5zdGFydE9mZnNldD09dC5zdGFydE9mZnNldDtpZihlLml0ZW0m
JnQuaXRlbSYmZS5pdGVtKDApPT09dC5pdGVtKDApKXJldHVybiEwO2lmKGUuaXNFcXVhbCYmdC5p
c0VxdWFsJiZ0LmlzRXF1YWwoZSkpcmV0dXJuITB9cmV0dXJuITF9LG59KSxyKEQsW2YsVCxBLEIs
ZyxwXSxmdW5jdGlvbihlLG4scixpLG8sYSl7ZnVuY3Rpb24gcyhlLHQsaSxvKXt2YXIgYT10aGlz
O2EuZG9tPWUsYS53aW49dCxhLnNlcmlhbGl6ZXI9aSxhLmVkaXRvcj1vLGEuY29udHJvbFNlbGVj
dGlvbj1uZXcgcihhLG8pLGEud2luLmdldFNlbGVjdGlvbnx8KGEudHJpZGVudFNlbD1uZXcgbihh
KSl9dmFyIGw9YS5lYWNoLGM9YS5ncmVwLHU9YS50cmltLGQ9by5pZSxmPW8ub3BlcmE7cmV0dXJu
IHMucHJvdG90eXBlPXtzZXRDdXJzb3JMb2NhdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMs
cj1uLmRvbS5jcmVhdGVSbmcoKTtlPyhyLnNldFN0YXJ0KGUsdCksci5zZXRFbmQoZSx0KSxuLnNl
dFJuZyhyKSxuLmNvbGxhcHNlKCExKSk6KG4uX21vdmVFbmRQb2ludChyLG4uZWRpdG9yLmdldEJv
ZHkoKSwhMCksbi5zZXRSbmcocikpfSxnZXRDb250ZW50OmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMs
cj1uLmdldFJuZygpLGk9bi5kb20uY3JlYXRlKCJib2R5Iiksbz1uLmdldFNlbCgpLGEscyxsO3Jl
dHVybiBlPWV8fHt9LGE9cz0iIixlLmdldD0hMCxlLmZvcm1hdD1lLmZvcm1hdHx8Imh0bWwiLGUu
c2VsZWN0aW9uPSEwLG4uZWRpdG9yLmZpcmUoIkJlZm9yZUdldENvbnRlbnQiLGUpLCJ0ZXh0Ij09
ZS5mb3JtYXQ/bi5pc0NvbGxhcHNlZCgpPyIiOnIudGV4dHx8KG8udG9TdHJpbmc/by50b1N0cmlu
ZygpOiIiKTooci5jbG9uZUNvbnRlbnRzPyhsPXIuY2xvbmVDb250ZW50cygpLGwmJmkuYXBwZW5k
Q2hpbGQobCkpOnIuaXRlbSE9PXR8fHIuaHRtbFRleHQhPT10PyhpLmlubmVySFRNTD0iPGJyPiIr
KHIuaXRlbT9yLml0ZW0oMCkub3V0ZXJIVE1MOnIuaHRtbFRleHQpLGkucmVtb3ZlQ2hpbGQoaS5m
aXJzdENoaWxkKSk6aS5pbm5lckhUTUw9ci50b1N0cmluZygpLC9eXHMvLnRlc3QoaS5pbm5lckhU
TUwpJiYoYT0iICIpLC9ccyskLy50ZXN0KGkuaW5uZXJIVE1MKSYmKHM9IiAiKSxlLmdldElubmVy
PSEwLGUuY29udGVudD1uLmlzQ29sbGFwc2VkKCk/IiI6YStuLnNlcmlhbGl6ZXIuc2VyaWFsaXpl
KGksZSkrcyxuLmVkaXRvci5maXJlKCJHZXRDb250ZW50IixlKSxlLmNvbnRlbnQpfSxzZXRDb250
ZW50OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPW4uZ2V0Um5nKCksaSxvPW4ud2luLmRvY3Vt
ZW50LGEscztpZih0PXR8fHtmb3JtYXQ6Imh0bWwifSx0LnNldD0hMCx0LnNlbGVjdGlvbj0hMCxl
PXQuY29udGVudD1lLHQubm9fZXZlbnRzfHxuLmVkaXRvci5maXJlKCJCZWZvcmVTZXRDb250ZW50
Iix0KSxlPXQuY29udGVudCxyLmluc2VydE5vZGUpe2UrPSc8c3BhbiBpZD0iX19jYXJldCI+Xzwv
c3Bhbj4nLHIuc3RhcnRDb250YWluZXI9PW8mJnIuZW5kQ29udGFpbmVyPT1vP28uYm9keS5pbm5l
ckhUTUw9ZTooci5kZWxldGVDb250ZW50cygpLDA9PT1vLmJvZHkuY2hpbGROb2Rlcy5sZW5ndGg/
by5ib2R5LmlubmVySFRNTD1lOnIuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50P3IuaW5zZXJ0Tm9k
ZShyLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChlKSk6KGE9by5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCkscz1vLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGEuYXBwZW5kQ2hpbGQocykscy5vdXRlckhU
TUw9ZSxyLmluc2VydE5vZGUoYSkpKSxpPW4uZG9tLmdldCgiX19jYXJldCIpLHI9by5jcmVhdGVS
YW5nZSgpLHIuc2V0U3RhcnRCZWZvcmUoaSksci5zZXRFbmRCZWZvcmUoaSksbi5zZXRSbmcociks
bi5kb20ucmVtb3ZlKCJfX2NhcmV0Iik7dHJ5e24uc2V0Um5nKHIpfWNhdGNoKGwpe319ZWxzZSBy
Lml0ZW0mJihvLmV4ZWNDb21tYW5kKCJEZWxldGUiLCExLG51bGwpLHI9bi5nZXRSbmcoKSksL15c
cysvLnRlc3QoZSk/KHIucGFzdGVIVE1MKCc8c3BhbiBpZD0iX19tY2VfdG1wIj5fPC9zcGFuPicr
ZSksbi5kb20ucmVtb3ZlKCJfX21jZV90bXAiKSk6ci5wYXN0ZUhUTUwoZSk7dC5ub19ldmVudHN8
fG4uZWRpdG9yLmZpcmUoIlNldENvbnRlbnQiLHQpfSxnZXRTdGFydDpmdW5jdGlvbigpe3ZhciBl
PXRoaXMsdD1lLmdldFJuZygpLG4scixpLG87aWYodC5kdXBsaWNhdGV8fHQuaXRlbSl7aWYodC5p
dGVtKXJldHVybiB0Lml0ZW0oMCk7Zm9yKGk9dC5kdXBsaWNhdGUoKSxpLmNvbGxhcHNlKDEpLG49
aS5wYXJlbnRFbGVtZW50KCksbi5vd25lckRvY3VtZW50IT09ZS5kb20uZG9jJiYobj1lLmRvbS5n
ZXRSb290KCkpLHI9bz10LnBhcmVudEVsZW1lbnQoKTtvPW8ucGFyZW50Tm9kZTspaWYobz09bil7
bj1yO2JyZWFrfXJldHVybiBufXJldHVybiBuPXQuc3RhcnRDb250YWluZXIsMT09bi5ub2RlVHlw
ZSYmbi5oYXNDaGlsZE5vZGVzKCkmJihuPW4uY2hpbGROb2Rlc1tNYXRoLm1pbihuLmNoaWxkTm9k
ZXMubGVuZ3RoLTEsdC5zdGFydE9mZnNldCldKSxuJiYzPT1uLm5vZGVUeXBlP24ucGFyZW50Tm9k
ZTpufSxnZXRFbmQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5nZXRSbmcoKSxuLHI7cmV0dXJu
IHQuZHVwbGljYXRlfHx0Lml0ZW0/dC5pdGVtP3QuaXRlbSgwKToodD10LmR1cGxpY2F0ZSgpLHQu
Y29sbGFwc2UoMCksbj10LnBhcmVudEVsZW1lbnQoKSxuLm93bmVyRG9jdW1lbnQhPT1lLmRvbS5k
b2MmJihuPWUuZG9tLmdldFJvb3QoKSksbiYmIkJPRFkiPT1uLm5vZGVOYW1lP24ubGFzdENoaWxk
fHxuOm4pOihuPXQuZW5kQ29udGFpbmVyLHI9dC5lbmRPZmZzZXQsMT09bi5ub2RlVHlwZSYmbi5o
YXNDaGlsZE5vZGVzKCkmJihuPW4uY2hpbGROb2Rlc1tyPjA/ci0xOnJdKSxuJiYzPT1uLm5vZGVU
eXBlP24ucGFyZW50Tm9kZTpuKX0sZ2V0Qm9va21hcms6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBu
KGUsdCl7dmFyIG49MDtyZXR1cm4gbChhLnNlbGVjdChlKSxmdW5jdGlvbihlLHIpe2U9PXQmJihu
PXIpfSksbn1mdW5jdGlvbiByKGUpe2Z1bmN0aW9uIHQodCl7dmFyIG4scixpLG89dD8ic3RhcnQi
OiJlbmQiO249ZVtvKyJDb250YWluZXIiXSxyPWVbbysiT2Zmc2V0Il0sMT09bi5ub2RlVHlwZSYm
IlRSIj09bi5ub2RlTmFtZSYmKGk9bi5jaGlsZE5vZGVzLG49aVtNYXRoLm1pbih0P3I6ci0xLGku
bGVuZ3RoLTEpXSxuJiYocj10PzA6bi5jaGlsZE5vZGVzLmxlbmd0aCxlWyJzZXQiKyh0PyJTdGFy
dCI6IkVuZCIpXShuLHIpKSl9cmV0dXJuIHQoITApLHQoKSxlfWZ1bmN0aW9uIGkoKXtmdW5jdGlv
biBlKGUsbil7dmFyIGk9ZVtuPyJzdGFydENvbnRhaW5lciI6ImVuZENvbnRhaW5lciJdLGE9ZVtu
PyJzdGFydE9mZnNldCI6ImVuZE9mZnNldCJdLHM9W10sbCxjLHU9MDtpZigzPT1pLm5vZGVUeXBl
KXtpZih0KWZvcihsPWkucHJldmlvdXNTaWJsaW5nO2wmJjM9PWwubm9kZVR5cGU7bD1sLnByZXZp
b3VzU2libGluZylhKz1sLm5vZGVWYWx1ZS5sZW5ndGg7cy5wdXNoKGEpfWVsc2UgYz1pLmNoaWxk
Tm9kZXMsYT49Yy5sZW5ndGgmJmMubGVuZ3RoJiYodT0xLGE9TWF0aC5tYXgoMCxjLmxlbmd0aC0x
KSkscy5wdXNoKG8uZG9tLm5vZGVJbmRleChjW2FdLHQpK3UpO2Zvcig7aSYmaSE9cjtpPWkucGFy
ZW50Tm9kZSlzLnB1c2goby5kb20ubm9kZUluZGV4KGksdCkpO3JldHVybiBzfXZhciBuPW8uZ2V0
Um5nKCEwKSxyPWEuZ2V0Um9vdCgpLGk9e307cmV0dXJuIGkuc3RhcnQ9ZShuLCEwKSxvLmlzQ29s
bGFwc2VkKCl8fChpLmVuZD1lKG4pKSxpfXZhciBvPXRoaXMsYT1vLmRvbSxzLGMsdSxkLGYscCxo
PSImI3hGRUZGOyIsbTtpZigyPT1lKXJldHVybiBwPW8uZ2V0Tm9kZSgpLGY9cD9wLm5vZGVOYW1l
Om51bGwsIklNRyI9PWY/e25hbWU6ZixpbmRleDpuKGYscCl9Om8udHJpZGVudFNlbD9vLnRyaWRl
bnRTZWwuZ2V0Qm9va21hcmsoZSk6aSgpO2lmKGUpcmV0dXJue3JuZzpvLmdldFJuZygpfTtpZihz
PW8uZ2V0Um5nKCksdT1hLnVuaXF1ZUlkKCksZD1vLmlzQ29sbGFwc2VkKCksbT0ib3ZlcmZsb3c6
aGlkZGVuO2xpbmUtaGVpZ2h0OjBweCIscy5kdXBsaWNhdGV8fHMuaXRlbSl7aWYocy5pdGVtKXJl
dHVybiBwPXMuaXRlbSgwKSxmPXAubm9kZU5hbWUse25hbWU6ZixpbmRleDpuKGYscCl9O2M9cy5k
dXBsaWNhdGUoKTt0cnl7cy5jb2xsYXBzZSgpLHMucGFzdGVIVE1MKCc8c3BhbiBkYXRhLW1jZS10
eXBlPSJib29rbWFyayIgaWQ9IicrdSsnX3N0YXJ0IiBzdHlsZT0iJyttKyciPicraCsiPC9zcGFu
PiIpLGR8fChjLmNvbGxhcHNlKCExKSxzLm1vdmVUb0VsZW1lbnRUZXh0KGMucGFyZW50RWxlbWVu
dCgpKSwwPT09cy5jb21wYXJlRW5kUG9pbnRzKCJTdGFydFRvRW5kIixjKSYmYy5tb3ZlKCJjaGFy
YWN0ZXIiLC0xKSxjLnBhc3RlSFRNTCgnPHNwYW4gZGF0YS1tY2UtdHlwZT0iYm9va21hcmsiIGlk
PSInK3UrJ19lbmQiIHN0eWxlPSInK20rJyI+JytoKyI8L3NwYW4+IikpfWNhdGNoKGcpe3JldHVy
biBudWxsfX1lbHNle2lmKHA9by5nZXROb2RlKCksZj1wLm5vZGVOYW1lLCJJTUciPT1mKXJldHVy
bntuYW1lOmYsaW5kZXg6bihmLHApfTtjPXIocy5jbG9uZVJhbmdlKCkpLGR8fChjLmNvbGxhcHNl
KCExKSxjLmluc2VydE5vZGUoYS5jcmVhdGUoInNwYW4iLHsiZGF0YS1tY2UtdHlwZSI6ImJvb2tt
YXJrIixpZDp1KyJfZW5kIixzdHlsZTptfSxoKSkpLHM9cihzKSxzLmNvbGxhcHNlKCEwKSxzLmlu
c2VydE5vZGUoYS5jcmVhdGUoInNwYW4iLHsiZGF0YS1tY2UtdHlwZSI6ImJvb2ttYXJrIixpZDp1
KyJfc3RhcnQiLHN0eWxlOm19LGgpKX1yZXR1cm4gby5tb3ZlVG9Cb29rbWFyayh7aWQ6dSxrZWVw
OjF9KSx7aWQ6dX19LG1vdmVUb0Jvb2ttYXJrOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7dmFy
IG49ZVt0PyJzdGFydCI6ImVuZCJdLHIsaSxvLGw7aWYobil7Zm9yKG89blswXSxpPXMscj1uLmxl
bmd0aC0xO3I+PTE7ci0tKXtpZihsPWkuY2hpbGROb2RlcyxuW3JdPmwubGVuZ3RoLTEpcmV0dXJu
O2k9bFtuW3JdXX0zPT09aS5ub2RlVHlwZSYmKG89TWF0aC5taW4oblswXSxpLm5vZGVWYWx1ZS5s
ZW5ndGgpKSwxPT09aS5ub2RlVHlwZSYmKG89TWF0aC5taW4oblswXSxpLmNoaWxkTm9kZXMubGVu
Z3RoKSksdD9hLnNldFN0YXJ0KGksbyk6YS5zZXRFbmQoaSxvKX1yZXR1cm4hMH1mdW5jdGlvbiBu
KHQpe3ZhciBuPW8uZ2V0KGUuaWQrIl8iK3QpLHIsaSxhLHMsZD1lLmtlZXA7aWYobiYmKHI9bi5w
YXJlbnROb2RlLCJzdGFydCI9PXQ/KGQ/KHI9bi5maXJzdENoaWxkLGk9MSk6aT1vLm5vZGVJbmRl
eChuKSx1PXA9cixoPW09aSk6KGQ/KHI9bi5maXJzdENoaWxkLGk9MSk6aT1vLm5vZGVJbmRleChu
KSxwPXIsbT1pKSwhZCkpe2ZvcihzPW4ucHJldmlvdXNTaWJsaW5nLGE9bi5uZXh0U2libGluZyxs
KGMobi5jaGlsZE5vZGVzKSxmdW5jdGlvbihlKXszPT1lLm5vZGVUeXBlJiYoZS5ub2RlVmFsdWU9
ZS5ub2RlVmFsdWUucmVwbGFjZSgvXHVGRUZGL2csIiIpKX0pO249by5nZXQoZS5pZCsiXyIrdCk7
KW8ucmVtb3ZlKG4sMSk7cyYmYSYmcy5ub2RlVHlwZT09YS5ub2RlVHlwZSYmMz09cy5ub2RlVHlw
ZSYmIWYmJihpPXMubm9kZVZhbHVlLmxlbmd0aCxzLmFwcGVuZERhdGEoYS5ub2RlVmFsdWUpLG8u
cmVtb3ZlKGEpLCJzdGFydCI9PXQ/KHU9cD1zLGg9bT1pKToocD1zLG09aSkpfX1mdW5jdGlvbiBy
KGUpe3JldHVybiFvLmlzQmxvY2soZSl8fGUuaW5uZXJIVE1MfHxkfHwoZS5pbm5lckhUTUw9Jzxi
ciBkYXRhLW1jZS1ib2d1cz0iMSIgLz4nKSxlfXZhciBpPXRoaXMsbz1pLmRvbSxhLHMsdSxwLGgs
bTtpZihlKWlmKGUuc3RhcnQpe2lmKGE9by5jcmVhdGVSbmcoKSxzPW8uZ2V0Um9vdCgpLGkudHJp
ZGVudFNlbClyZXR1cm4gaS50cmlkZW50U2VsLm1vdmVUb0Jvb2ttYXJrKGUpO3QoITApJiZ0KCkm
Jmkuc2V0Um5nKGEpfWVsc2UgZS5pZD8obigic3RhcnQiKSxuKCJlbmQiKSx1JiYoYT1vLmNyZWF0
ZVJuZygpLGEuc2V0U3RhcnQocih1KSxoKSxhLnNldEVuZChyKHApLG0pLGkuc2V0Um5nKGEpKSk6
ZS5uYW1lP2kuc2VsZWN0KG8uc2VsZWN0KGUubmFtZSlbZS5pbmRleF0pOmUucm5nJiZpLnNldFJu
ZyhlLnJuZyl9LHNlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1uLmRvbSxpPXIuY3Jl
YXRlUm5nKCksbztpZihuLmxhc3RGb2N1c0Jvb2ttYXJrPW51bGwsZSl7aWYoIXQmJm4uY29udHJv
bFNlbGVjdGlvbi5jb250cm9sU2VsZWN0KGUpKXJldHVybjtvPXIubm9kZUluZGV4KGUpLGkuc2V0
U3RhcnQoZS5wYXJlbnROb2RlLG8pLGkuc2V0RW5kKGUucGFyZW50Tm9kZSxvKzEpLHQmJihuLl9t
b3ZlRW5kUG9pbnQoaSxlLCEwKSxuLl9tb3ZlRW5kUG9pbnQoaSxlKSksbi5zZXRSbmcoaSl9cmV0
dXJuIGV9LGlzQ29sbGFwc2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuZ2V0Um5nKCksbj1l
LmdldFNlbCgpO3JldHVybiF0fHx0Lml0ZW0/ITE6dC5jb21wYXJlRW5kUG9pbnRzPzA9PT10LmNv
bXBhcmVFbmRQb2ludHMoIlN0YXJ0VG9FbmQiLHQpOiFufHx0LmNvbGxhcHNlZH0sY29sbGFwc2U6
ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQuZ2V0Um5nKCkscjtuLml0ZW0mJihyPW4uaXRlbSgw
KSxuPXQud2luLmRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKCksbi5tb3ZlVG9FbGVtZW50
VGV4dChyKSksbi5jb2xsYXBzZSghIWUpLHQuc2V0Um5nKG4pfSxnZXRTZWw6ZnVuY3Rpb24oKXt2
YXIgZT10aGlzLndpbjtyZXR1cm4gZS5nZXRTZWxlY3Rpb24/ZS5nZXRTZWxlY3Rpb24oKTplLmRv
Y3VtZW50LnNlbGVjdGlvbn0sZ2V0Um5nOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0LG4pe3Ry
eXtyZXR1cm4gdC5jb21wYXJlQm91bmRhcnlQb2ludHMoZSxuKX1jYXRjaChyKXtyZXR1cm4tMX19
dmFyIG49dGhpcyxyLGksbyxhPW4ud2luLmRvY3VtZW50LHM7aWYoIWUmJm4ubGFzdEZvY3VzQm9v
a21hcmspe3ZhciBsPW4ubGFzdEZvY3VzQm9va21hcms7cmV0dXJuIGwuc3RhcnRDb250YWluZXI/
KGk9YS5jcmVhdGVSYW5nZSgpLGkuc2V0U3RhcnQobC5zdGFydENvbnRhaW5lcixsLnN0YXJ0T2Zm
c2V0KSxpLnNldEVuZChsLmVuZENvbnRhaW5lcixsLmVuZE9mZnNldCkpOmk9bCxpfWlmKGUmJm4u
dHJpZGVudFNlbClyZXR1cm4gbi50cmlkZW50U2VsLmdldFJhbmdlQXQoMCk7dHJ5eyhyPW4uZ2V0
U2VsKCkpJiYoaT1yLnJhbmdlQ291bnQ+MD9yLmdldFJhbmdlQXQoMCk6ci5jcmVhdGVSYW5nZT9y
LmNyZWF0ZVJhbmdlKCk6YS5jcmVhdGVSYW5nZSgpKX1jYXRjaChjKXt9aWYoZCYmaSYmaS5zZXRT
dGFydCYmYS5zZWxlY3Rpb24pe3RyeXtzPWEuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCl9Y2F0Y2go
Yyl7fXMmJnMuaXRlbSYmKG89cy5pdGVtKDApLGk9YS5jcmVhdGVSYW5nZSgpLGkuc2V0U3RhcnRC
ZWZvcmUobyksaS5zZXRFbmRBZnRlcihvKSl9cmV0dXJuIGl8fChpPWEuY3JlYXRlUmFuZ2U/YS5j
cmVhdGVSYW5nZSgpOmEuYm9keS5jcmVhdGVUZXh0UmFuZ2UoKSksaS5zZXRTdGFydCYmOT09PWku
c3RhcnRDb250YWluZXIubm9kZVR5cGUmJmkuY29sbGFwc2VkJiYobz1uLmRvbS5nZXRSb290KCks
aS5zZXRTdGFydChvLDApLGkuc2V0RW5kKG8sMCkpLG4uc2VsZWN0ZWRSYW5nZSYmbi5leHBsaWNp
dFJhbmdlJiYoMD09PXQoaS5TVEFSVF9UT19TVEFSVCxpLG4uc2VsZWN0ZWRSYW5nZSkmJjA9PT10
KGkuRU5EX1RPX0VORCxpLG4uc2VsZWN0ZWRSYW5nZSk/aT1uLmV4cGxpY2l0UmFuZ2U6KG4uc2Vs
ZWN0ZWRSYW5nZT1udWxsLG4uZXhwbGljaXRSYW5nZT1udWxsKSksaX0sc2V0Um5nOmZ1bmN0aW9u
KGUsdCl7dmFyIG49dGhpcyxyO2lmKGUuc2VsZWN0KXRyeXtlLnNlbGVjdCgpfWNhdGNoKGkpe31l
bHNlIGlmKG4udHJpZGVudFNlbCl7aWYoZS5jbG9uZVJhbmdlKXRyeXtyZXR1cm4gdm9pZCBuLnRy
aWRlbnRTZWwuYWRkUmFuZ2UoZSl9Y2F0Y2goaSl7fX1lbHNlIGlmKHI9bi5nZXRTZWwoKSl7bi5l
eHBsaWNpdFJhbmdlPWU7dHJ5e3IucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShlKX1jYXRj
aChpKXt9dD09PSExJiZyLmV4dGVuZCYmKHIuY29sbGFwc2UoZS5lbmRDb250YWluZXIsZS5lbmRP
ZmZzZXQpLHIuZXh0ZW5kKGUuc3RhcnRDb250YWluZXIsZS5zdGFydE9mZnNldCkpLG4uc2VsZWN0
ZWRSYW5nZT1yLnJhbmdlQ291bnQ+MD9yLmdldFJhbmdlQXQoMCk6bnVsbH19LHNldE5vZGU6ZnVu
Y3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gdC5zZXRDb250ZW50KHQuZG9tLmdldE91dGVySFRN
TChlKSksZX0sZ2V0Tm9kZTpmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXtmb3IodmFyIG49ZTtl
JiYzPT09ZS5ub2RlVHlwZSYmMD09PWUubGVuZ3RoOyllPXQ/ZS5uZXh0U2libGluZzplLnByZXZp
b3VzU2libGluZztyZXR1cm4gZXx8bn12YXIgdD10aGlzLG49dC5nZXRSbmcoKSxyLGk9bi5zdGFy
dENvbnRhaW5lcixvPW4uZW5kQ29udGFpbmVyLGE9bi5zdGFydE9mZnNldCxzPW4uZW5kT2Zmc2V0
LGw9dC5kb20uZ2V0Um9vdCgpO3JldHVybiBuP24uc2V0U3RhcnQ/KHI9bi5jb21tb25BbmNlc3Rv
ckNvbnRhaW5lciwhbi5jb2xsYXBzZWQmJihpPT1vJiYyPnMtYSYmaS5oYXNDaGlsZE5vZGVzKCkm
JihyPWkuY2hpbGROb2Rlc1thXSksMz09PWkubm9kZVR5cGUmJjM9PT1vLm5vZGVUeXBlJiYoaT1p
Lmxlbmd0aD09PWE/ZShpLm5leHRTaWJsaW5nLCEwKTppLnBhcmVudE5vZGUsbz0wPT09cz9lKG8u
cHJldmlvdXNTaWJsaW5nLCExKTpvLnBhcmVudE5vZGUsaSYmaT09PW8pKT9pOnImJjM9PXIubm9k
ZVR5cGU/ci5wYXJlbnROb2RlOnIpOihyPW4uaXRlbT9uLml0ZW0oMCk6bi5wYXJlbnRFbGVtZW50
KCksci5vd25lckRvY3VtZW50IT09dC53aW4uZG9jdW1lbnQmJihyPWwpLHIpOmx9LGdldFNlbGVj
dGVkQmxvY2tzOmZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcyxpPXIuZG9tLG8sYSxzPVtdO2lmKGE9
aS5nZXRSb290KCksdD1pLmdldFBhcmVudCh0fHxyLmdldFN0YXJ0KCksaS5pc0Jsb2NrKSxuPWku
Z2V0UGFyZW50KG58fHIuZ2V0RW5kKCksaS5pc0Jsb2NrKSx0JiZ0IT1hJiZzLnB1c2godCksdCYm
biYmdCE9bil7bz10O2Zvcih2YXIgbD1uZXcgZSh0LGEpOyhvPWwubmV4dCgpKSYmbyE9bjspaS5p
c0Jsb2NrKG8pJiZzLnB1c2gobyl9cmV0dXJuIG4mJnQhPW4mJm4hPWEmJnMucHVzaChuKSxzfSxp
c0ZvcndhcmQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmRvbSx0PXRoaXMuZ2V0U2VsKCksbixyO3Jl
dHVybiB0JiZ0LmFuY2hvck5vZGUmJnQuZm9jdXNOb2RlPyhuPWUuY3JlYXRlUm5nKCksbi5zZXRT
dGFydCh0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQpLG4uY29sbGFwc2UoITApLHI9ZS5jcmVh
dGVSbmcoKSxyLnNldFN0YXJ0KHQuZm9jdXNOb2RlLHQuZm9jdXNPZmZzZXQpLHIuY29sbGFwc2Uo
ITApLG4uY29tcGFyZUJvdW5kYXJ5UG9pbnRzKG4uU1RBUlRfVE9fU1RBUlQscik8PTApOiEwfSxu
b3JtYWxpemU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5nZXRSbmcoKTtyZXR1cm4hZCYmbmV3
IGkoZS5kb20pLm5vcm1hbGl6ZSh0KSYmZS5zZXRSbmcodCxlLmlzRm9yd2FyZCgpKSx0fSxzZWxl
Y3RvckNoYW5nZWQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI7cmV0dXJuIG4uc2VsZWN0b3JD
aGFuZ2VkRGF0YXx8KG4uc2VsZWN0b3JDaGFuZ2VkRGF0YT17fSxyPXt9LG4uZWRpdG9yLm9uKCJO
b2RlQ2hhbmdlIixmdW5jdGlvbihlKXt2YXIgdD1lLmVsZW1lbnQsaT1uLmRvbSxvPWkuZ2V0UGFy
ZW50cyh0LG51bGwsaS5nZXRSb290KCkpLGE9e307bChuLnNlbGVjdG9yQ2hhbmdlZERhdGEsZnVu
Y3Rpb24oZSx0KXtsKG8sZnVuY3Rpb24obil7cmV0dXJuIGkuaXMobix0KT8oclt0XXx8KGwoZSxm
dW5jdGlvbihlKXtlKCEwLHtub2RlOm4sc2VsZWN0b3I6dCxwYXJlbnRzOm99KX0pLHJbdF09ZSks
YVt0XT1lLCExKTp2b2lkIDB9KX0pLGwocixmdW5jdGlvbihlLG4pe2Fbbl18fChkZWxldGUgcltu
XSxsKGUsZnVuY3Rpb24oZSl7ZSghMSx7bm9kZTp0LHNlbGVjdG9yOm4scGFyZW50czpvfSl9KSl9
KX0pKSxuLnNlbGVjdG9yQ2hhbmdlZERhdGFbZV18fChuLnNlbGVjdG9yQ2hhbmdlZERhdGFbZV09
W10pLG4uc2VsZWN0b3JDaGFuZ2VkRGF0YVtlXS5wdXNoKHQpLG59LGdldFNjcm9sbENvbnRhaW5l
cjpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PXRoaXMuZG9tLmdldFJvb3QoKTt0JiYiQk9EWSIhPXQu
bm9kZU5hbWU7KXtpZih0LnNjcm9sbEhlaWdodD50LmNsaWVudEhlaWdodCl7ZT10O2JyZWFrfXQ9
dC5wYXJlbnROb2RlfXJldHVybiBlfSxzY3JvbGxJbnRvVmlldzpmdW5jdGlvbihlKXtmdW5jdGlv
biB0KGUpe2Zvcih2YXIgdD0wLG49MCxyPWU7ciYmci5ub2RlVHlwZTspdCs9ci5vZmZzZXRMZWZ0
fHwwLG4rPXIub2Zmc2V0VG9wfHwwLHI9ci5vZmZzZXRQYXJlbnQ7cmV0dXJue3g6dCx5Om59fXZh
ciBuLHIsaT10aGlzLG89aS5kb20sYT1vLmdldFJvb3QoKSxzLGw7aWYoIkJPRFkiIT1hLm5vZGVO
YW1lKXt2YXIgYz1pLmdldFNjcm9sbENvbnRhaW5lcigpO2lmKGMpcmV0dXJuIG49dChlKS55LXQo
YykueSxsPWMuY2xpZW50SGVpZ2h0LHM9Yy5zY3JvbGxUb3Asdm9pZCgocz5ufHxuKzI1PnMrbCkm
JihjLnNjcm9sbFRvcD1zPm4/bjpuLWwrMjUpKX1yPW8uZ2V0Vmlld1BvcnQoaS5lZGl0b3IuZ2V0
V2luKCkpLG49by5nZXRQb3MoZSkueSxzPXIueSxsPXIuaCwobjxyLnl8fG4rMjU+cytsKSYmaS5l
ZGl0b3IuZ2V0V2luKCkuc2Nyb2xsVG8oMCxzPm4/bjpuLWwrMjUpfSxfbW92ZUVuZFBvaW50OmZ1
bmN0aW9uKHQsbixyKXt2YXIgaT1uLGE9bmV3IGUobixpKSxzPXRoaXMuZG9tLnNjaGVtYS5nZXRO
b25FbXB0eUVsZW1lbnRzKCk7ZG97aWYoMz09bi5ub2RlVHlwZSYmMCE9PXUobi5ub2RlVmFsdWUp
Lmxlbmd0aClyZXR1cm4gdm9pZChyP3Quc2V0U3RhcnQobiwwKTp0LnNldEVuZChuLG4ubm9kZVZh
bHVlLmxlbmd0aCkpO2lmKHNbbi5ub2RlTmFtZV0pcmV0dXJuIHZvaWQocj90LnNldFN0YXJ0QmVm
b3JlKG4pOiJCUiI9PW4ubm9kZU5hbWU/dC5zZXRFbmRCZWZvcmUobik6dC5zZXRFbmRBZnRlcihu
KSk7aWYoby5pZSYmby5pZTwxMSYmdGhpcy5kb20uaXNCbG9jayhuKSYmdGhpcy5kb20uaXNFbXB0
eShuKSlyZXR1cm4gdm9pZChyP3Quc2V0U3RhcnQobiwwKTp0LnNldEVuZChuLDApKX13aGlsZShu
PXI/YS5uZXh0KCk6YS5wcmV2KCkpOyJCT0RZIj09aS5ub2RlTmFtZSYmKHI/dC5zZXRTdGFydChp
LDApOnQuc2V0RW5kKGksaS5jaGlsZE5vZGVzLmxlbmd0aCkpfSxkZXN0cm95OmZ1bmN0aW9uKCl7
dGhpcy53aW49bnVsbCx0aGlzLmNvbnRyb2xTZWxlY3Rpb24uZGVzdHJveSgpfX0sc30pLHIoTCxb
cF0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlLHQpe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUucmVw
bGFjZSgvJShcdyspL2csIiIpfXZhciBpLG8sYT1lLmRvbSxzPSIiLGwsYztpZihjPWUuc2V0dGlu
Z3MucHJldmlld19zdHlsZXMsYz09PSExKXJldHVybiIiO2lmKGN8fChjPSJmb250LWZhbWlseSBm
b250LXNpemUgZm9udC13ZWlnaHQgZm9udC1zdHlsZSB0ZXh0LWRlY29yYXRpb24gdGV4dC10cmFu
c2Zvcm0gY29sb3IgYmFja2dyb3VuZC1jb2xvciBib3JkZXIgYm9yZGVyLXJhZGl1cyBvdXRsaW5l
IHRleHQtc2hhZG93IiksInN0cmluZyI9PXR5cGVvZiB0KXtpZih0PWUuZm9ybWF0dGVyLmdldCh0
KSwhdClyZXR1cm47dD10WzBdfXJldHVybiBpPXQuYmxvY2t8fHQuaW5saW5lfHwic3BhbiIsbz1h
LmNyZWF0ZShpKSxuKHQuc3R5bGVzLGZ1bmN0aW9uKGUsdCl7ZT1yKGUpLGUmJmEuc2V0U3R5bGUo
byx0LGUpfSksbih0LmF0dHJpYnV0ZXMsZnVuY3Rpb24oZSx0KXtlPXIoZSksZSYmYS5zZXRBdHRy
aWIobyx0LGUpfSksbih0LmNsYXNzZXMsZnVuY3Rpb24oZSl7ZT1yKGUpLGEuaGFzQ2xhc3Mobyxl
KXx8YS5hZGRDbGFzcyhvLGUpfSksZS5maXJlKCJQcmV2aWV3Rm9ybWF0cyIpLGEuc2V0U3R5bGVz
KG8se3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDotNjU1MzV9KSxlLmdldEJvZHkoKS5hcHBlbmRD
aGlsZChvKSxsPWEuZ2V0U3R5bGUoZS5nZXRCb2R5KCksImZvbnRTaXplIiwhMCksbD0vcHgkLy50
ZXN0KGwpP3BhcnNlSW50KGwsMTApOjAsbihjLnNwbGl0KCIgIiksZnVuY3Rpb24odCl7dmFyIG49
YS5nZXRTdHlsZShvLHQsITApO2lmKCEoImJhY2tncm91bmQtY29sb3IiPT10JiYvdHJhbnNwYXJl
bnR8cmdiYVxzKlwoW14pXSssXHMqMFwpLy50ZXN0KG4pJiYobj1hLmdldFN0eWxlKGUuZ2V0Qm9k
eSgpLHQsITApLCIjZmZmZmZmIj09YS50b0hleChuKS50b0xvd2VyQ2FzZSgpKXx8ImNvbG9yIj09
dCYmIiMwMDAwMDAiPT1hLnRvSGV4KG4pLnRvTG93ZXJDYXNlKCkpKXtpZigiZm9udC1zaXplIj09
dCYmL2VtfCUkLy50ZXN0KG4pKXtpZigwPT09bClyZXR1cm47bj1wYXJzZUZsb2F0KG4sMTApLygv
JSQvLnRlc3Qobik/MTAwOjEpLG49bipsKyJweCJ9ImJvcmRlciI9PXQmJm4mJihzKz0icGFkZGlu
ZzowIDJweDsiKSxzKz10KyI6IituKyI7In19KSxlLmZpcmUoIkFmdGVyUHJldmlld0Zvcm1hdHMi
KSxhLnJlbW92ZShvKSxzfXZhciBuPWUuZWFjaDtyZXR1cm57Z2V0Q3NzVGV4dDp0fX0pLHIoTSxb
ZixCLHAsTF0sZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIG8o
ZSl7cmV0dXJuIGUubm9kZVR5cGUmJihlPWUubm9kZU5hbWUpLCEhaS5zY2hlbWEuZ2V0VGV4dEJs
b2NrRWxlbWVudHMoKVtlLnRvTG93ZXJDYXNlKCldfWZ1bmN0aW9uIGEoZSx0KXtyZXR1cm4gei5n
ZXRQYXJlbnRzKGUsdCx6LmdldFJvb3QoKSl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gMT09PWUubm9k
ZVR5cGUmJiJfbWNlX2NhcmV0Ij09PWUuaWR9ZnVuY3Rpb24gbCgpe2Qoe3ZhbGlnbnRvcDpbe3Nl
bGVjdG9yOiJ0ZCx0aCIsc3R5bGVzOnt2ZXJ0aWNhbEFsaWduOiJ0b3AifX1dLHZhbGlnbm1pZGRs
ZTpbe3NlbGVjdG9yOiJ0ZCx0aCIsc3R5bGVzOnt2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifX1dLHZh
bGlnbmJvdHRvbTpbe3NlbGVjdG9yOiJ0ZCx0aCIsc3R5bGVzOnt2ZXJ0aWNhbEFsaWduOiJib3R0
b20ifX1dLGFsaWdubGVmdDpbe3NlbGVjdG9yOiJmaWd1cmUscCxoMSxoMixoMyxoNCxoNSxoNix0
ZCx0aCx0cixkaXYsdWwsb2wsbGkiLHN0eWxlczp7dGV4dEFsaWduOiJsZWZ0In0sZGVmYXVsdEJs
b2NrOiJkaXYifSx7c2VsZWN0b3I6ImltZyx0YWJsZSIsY29sbGFwc2VkOiExLHN0eWxlczp7ImZs
b2F0IjoibGVmdCJ9fV0sYWxpZ25jZW50ZXI6W3tzZWxlY3RvcjoiZmlndXJlLHAsaDEsaDIsaDMs
aDQsaDUsaDYsdGQsdGgsdHIsZGl2LHVsLG9sLGxpIixzdHlsZXM6e3RleHRBbGlnbjoiY2VudGVy
In0sZGVmYXVsdEJsb2NrOiJkaXYifSx7c2VsZWN0b3I6ImltZyIsY29sbGFwc2VkOiExLHN0eWxl
czp7ZGlzcGxheToiYmxvY2siLG1hcmdpbkxlZnQ6ImF1dG8iLG1hcmdpblJpZ2h0OiJhdXRvIn19
LHtzZWxlY3RvcjoidGFibGUiLGNvbGxhcHNlZDohMSxzdHlsZXM6e21hcmdpbkxlZnQ6ImF1dG8i
LG1hcmdpblJpZ2h0OiJhdXRvIn19XSxhbGlnbnJpZ2h0Olt7c2VsZWN0b3I6ImZpZ3VyZSxwLGgx
LGgyLGgzLGg0LGg1LGg2LHRkLHRoLHRyLGRpdix1bCxvbCxsaSIsc3R5bGVzOnt0ZXh0QWxpZ246
InJpZ2h0In0sZGVmYXVsdEJsb2NrOiJkaXYifSx7c2VsZWN0b3I6ImltZyx0YWJsZSIsY29sbGFw
c2VkOiExLHN0eWxlczp7ImZsb2F0IjoicmlnaHQifX1dLGFsaWduanVzdGlmeTpbe3NlbGVjdG9y
OiJmaWd1cmUscCxoMSxoMixoMyxoNCxoNSxoNix0ZCx0aCx0cixkaXYsdWwsb2wsbGkiLHN0eWxl
czp7dGV4dEFsaWduOiJqdXN0aWZ5In0sZGVmYXVsdEJsb2NrOiJkaXYifV0sYm9sZDpbe2lubGlu
ZToic3Ryb25nIixyZW1vdmU6ImFsbCJ9LHtpbmxpbmU6InNwYW4iLHN0eWxlczp7Zm9udFdlaWdo
dDoiYm9sZCJ9fSx7aW5saW5lOiJiIixyZW1vdmU6ImFsbCJ9XSxpdGFsaWM6W3tpbmxpbmU6ImVt
IixyZW1vdmU6ImFsbCJ9LHtpbmxpbmU6InNwYW4iLHN0eWxlczp7Zm9udFN0eWxlOiJpdGFsaWMi
fX0se2lubGluZToiaSIscmVtb3ZlOiJhbGwifV0sdW5kZXJsaW5lOlt7aW5saW5lOiJzcGFuIixz
dHlsZXM6e3RleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSxleGFjdDohMH0se2lubGluZToidSIs
cmVtb3ZlOiJhbGwifV0sc3RyaWtldGhyb3VnaDpbe2lubGluZToic3BhbiIsc3R5bGVzOnt0ZXh0
RGVjb3JhdGlvbjoibGluZS10aHJvdWdoIn0sZXhhY3Q6ITB9LHtpbmxpbmU6InN0cmlrZSIscmVt
b3ZlOiJhbGwifV0sZm9yZWNvbG9yOntpbmxpbmU6InNwYW4iLHN0eWxlczp7Y29sb3I6IiV2YWx1
ZSJ9LHdyYXBfbGlua3M6ITF9LGhpbGl0ZWNvbG9yOntpbmxpbmU6InNwYW4iLHN0eWxlczp7YmFj
a2dyb3VuZENvbG9yOiIldmFsdWUifSx3cmFwX2xpbmtzOiExfSxmb250bmFtZTp7aW5saW5lOiJz
cGFuIixzdHlsZXM6e2ZvbnRGYW1pbHk6IiV2YWx1ZSJ9fSxmb250c2l6ZTp7aW5saW5lOiJzcGFu
IixzdHlsZXM6e2ZvbnRTaXplOiIldmFsdWUifX0sZm9udHNpemVfY2xhc3M6e2lubGluZToic3Bh
biIsYXR0cmlidXRlczp7ImNsYXNzIjoiJXZhbHVlIn19LGJsb2NrcXVvdGU6e2Jsb2NrOiJibG9j
a3F1b3RlIix3cmFwcGVyOjEscmVtb3ZlOiJhbGwifSxzdWJzY3JpcHQ6e2lubGluZToic3ViIn0s
c3VwZXJzY3JpcHQ6e2lubGluZToic3VwIn0sY29kZTp7aW5saW5lOiJjb2RlIn0sbGluazp7aW5s
aW5lOiJhIixzZWxlY3RvcjoiYSIscmVtb3ZlOiJhbGwiLHNwbGl0OiEwLGRlZXA6ITAsb25tYXRj
aDpmdW5jdGlvbigpe3JldHVybiEwfSxvbmZvcm1hdDpmdW5jdGlvbihlLHQsbil7bnQobixmdW5j
dGlvbih0LG4pe3ouc2V0QXR0cmliKGUsbix0KX0pfX0scmVtb3ZlZm9ybWF0Olt7c2VsZWN0b3I6
ImIsc3Ryb25nLGVtLGksZm9udCx1LHN0cmlrZSxzdWIsc3VwLGRmbixjb2RlLHNhbXAsa2JkLHZh
cixjaXRlLG1hcmsscSIscmVtb3ZlOiJhbGwiLHNwbGl0OiEwLGV4cGFuZDohMSxibG9ja19leHBh
bmQ6ITAsZGVlcDohMH0se3NlbGVjdG9yOiJzcGFuIixhdHRyaWJ1dGVzOlsic3R5bGUiLCJjbGFz
cyJdLHJlbW92ZToiZW1wdHkiLHNwbGl0OiEwLGV4cGFuZDohMSxkZWVwOiEwfSx7c2VsZWN0b3I6
IioiLGF0dHJpYnV0ZXM6WyJzdHlsZSIsImNsYXNzIl0sc3BsaXQ6ITEsZXhwYW5kOiExLGRlZXA6
ITB9XX0pLG50KCJwIGgxIGgyIGgzIGg0IGg1IGg2IGRpdiBhZGRyZXNzIHByZSBkaXYgZHQgZGQg
c2FtcCIuc3BsaXQoL1xzLyksZnVuY3Rpb24oZSl7ZChlLHtibG9jazplLHJlbW92ZToiYWxsIn0p
fSksZChpLnNldHRpbmdzLmZvcm1hdHMpfWZ1bmN0aW9uIGMoKXtpLmFkZFNob3J0Y3V0KCJjdHJs
K2IiLCJib2xkX2Rlc2MiLCJCb2xkIiksaS5hZGRTaG9ydGN1dCgiY3RybCtpIiwiaXRhbGljX2Rl
c2MiLCJJdGFsaWMiKSxpLmFkZFNob3J0Y3V0KCJjdHJsK3UiLCJ1bmRlcmxpbmVfZGVzYyIsIlVu
ZGVybGluZSIpO2Zvcih2YXIgZT0xOzY+PWU7ZSsrKWkuYWRkU2hvcnRjdXQoImN0cmwrIitlLCIi
LFsiRm9ybWF0QmxvY2siLCExLCJoIitlXSk7aS5hZGRTaG9ydGN1dCgiY3RybCs3IiwiIixbIkZv
cm1hdEJsb2NrIiwhMSwicCJdKSxpLmFkZFNob3J0Y3V0KCJjdHJsKzgiLCIiLFsiRm9ybWF0Qmxv
Y2siLCExLCJkaXYiXSksaS5hZGRTaG9ydGN1dCgiY3RybCs5IiwiIixbIkZvcm1hdEJsb2NrIiwh
MSwiYWRkcmVzcyJdKX1mdW5jdGlvbiB1KGUpe3JldHVybiBlP0ZbZV06Rn1mdW5jdGlvbiBkKGUs
dCl7ZSYmKCJzdHJpbmciIT10eXBlb2YgZT9udChlLGZ1bmN0aW9uKGUsdCl7ZCh0LGUpfSk6KHQ9
dC5sZW5ndGg/dDpbdF0sbnQodCxmdW5jdGlvbihlKXtlLmRlZXA9PT1RJiYoZS5kZWVwPSFlLnNl
bGVjdG9yKSxlLnNwbGl0PT09USYmKGUuc3BsaXQ9IWUuc2VsZWN0b3J8fGUuaW5saW5lKSxlLnJl
bW92ZT09PVEmJmUuc2VsZWN0b3ImJiFlLmlubGluZSYmKGUucmVtb3ZlPSJub25lIiksZS5zZWxl
Y3RvciYmZS5pbmxpbmUmJihlLm1peGVkPSEwLGUuYmxvY2tfZXhwYW5kPSEwKSwic3RyaW5nIj09
dHlwZW9mIGUuY2xhc3NlcyYmKGUuY2xhc3Nlcz1lLmNsYXNzZXMuc3BsaXQoL1xzKy8pKX0pLEZb
ZV09dCkpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ7cmV0dXJuIGkuZG9tLmdldFBhcmVudChlLGZ1bmN0
aW9uKGUpe3JldHVybiB0PWkuZG9tLmdldFN0eWxlKGUsInRleHQtZGVjb3JhdGlvbiIpLHQmJiJu
b25lIiE9PXR9KSx0fWZ1bmN0aW9uIHAoZSl7dmFyIHQ7MT09PWUubm9kZVR5cGUmJmUucGFyZW50
Tm9kZSYmMT09PWUucGFyZW50Tm9kZS5ub2RlVHlwZSYmKHQ9ZihlLnBhcmVudE5vZGUpLGkuZG9t
LmdldFN0eWxlKGUsImNvbG9yIikmJnQ/aS5kb20uc2V0U3R5bGUoZSwidGV4dC1kZWNvcmF0aW9u
Iix0KTppLmRvbS5nZXRTdHlsZShlLCJ0ZXh0ZGVjb3JhdGlvbiIpPT09dCYmaS5kb20uc2V0U3R5
bGUoZSwidGV4dC1kZWNvcmF0aW9uIixudWxsKSl9ZnVuY3Rpb24gaCh0LG4scil7ZnVuY3Rpb24g
YShlLHQpe2lmKHQ9dHx8bSxlKXtpZih0Lm9uZm9ybWF0JiZ0Lm9uZm9ybWF0KGUsdCxuLHIpLG50
KHQuc3R5bGVzLGZ1bmN0aW9uKHQscil7ei5zZXRTdHlsZShlLHIsayh0LG4pKX0pLHQuc3R5bGVz
KXt2YXIgaT16LmdldEF0dHJpYihlLCJzdHlsZSIpO2kmJmUuc2V0QXR0cmlidXRlKCJkYXRhLW1j
ZS1zdHlsZSIsaSl9bnQodC5hdHRyaWJ1dGVzLGZ1bmN0aW9uKHQscil7ei5zZXRBdHRyaWIoZSxy
LGsodCxuKSl9KSxudCh0LmNsYXNzZXMsZnVuY3Rpb24odCl7dD1rKHQsbiksei5oYXNDbGFzcyhl
LHQpfHx6LmFkZENsYXNzKGUsdCl9KX19ZnVuY3Rpb24gbCgpe2Z1bmN0aW9uIHQodCxuKXt2YXIg
aT1uZXcgZShuKTtmb3Iocj1pLmN1cnJlbnQoKTtyO3I9aS5wcmV2KCkpaWYoci5jaGlsZE5vZGVz
Lmxlbmd0aD4xfHxyPT10fHwiQlIiPT1yLnRhZ05hbWUpcmV0dXJuIHJ9dmFyIG49aS5zZWxlY3Rp
b24uZ2V0Um5nKCksbz1uLnN0YXJ0Q29udGFpbmVyLGE9bi5lbmRDb250YWluZXI7aWYobyE9YSYm
MD09PW4uZW5kT2Zmc2V0KXt2YXIgcz10KG8sYSksbD0zPT1zLm5vZGVUeXBlP3MubGVuZ3RoOnMu
Y2hpbGROb2Rlcy5sZW5ndGg7bi5zZXRFbmQocyxsKX1yZXR1cm4gbn1mdW5jdGlvbiBjKGUsdCxu
LHIsaSl7dmFyIG89W10sYT0tMSxzLGw9LTEsYz0tMSx1O3JldHVybiBudChlLmNoaWxkTm9kZXMs
ZnVuY3Rpb24oZSx0KXtyZXR1cm4iVUwiPT09ZS5ub2RlTmFtZXx8Ik9MIj09PWUubm9kZU5hbWU/
KGE9dCxzPWUsITEpOnZvaWQgMH0pLG50KGUuY2hpbGROb2RlcyxmdW5jdGlvbihlLG4peyJTUEFO
Ij09PWUubm9kZU5hbWUmJiJib29rbWFyayI9PXouZ2V0QXR0cmliKGUsImRhdGEtbWNlLXR5cGUi
KSYmKGUuaWQ9PXQuaWQrIl9zdGFydCI/bD1uOmUuaWQ9PXQuaWQrIl9lbmQiJiYoYz1uKSl9KSww
Pj1hfHxhPmwmJmM+YT8obnQocnQoZS5jaGlsZE5vZGVzKSxpKSwwKToodT16LmNsb25lKG4sWSks
bnQocnQoZS5jaGlsZE5vZGVzKSxmdW5jdGlvbihlLHQpeyhhPmwmJmE+dHx8bD5hJiZ0PmEpJiYo
by5wdXNoKGUpLGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSl9KSxhPmw/ZS5pbnNlcnRCZWZv
cmUodSxzKTpsPmEmJmUuaW5zZXJ0QmVmb3JlKHUscy5uZXh0U2libGluZyksci5wdXNoKHUpLG50
KG8sZnVuY3Rpb24oZSl7dS5hcHBlbmRDaGlsZChlKX0pLHUpfWZ1bmN0aW9uIGQoZSxyLGkpe3Zh
ciBsPVtdLHUsZCxwPSEwO3U9bS5pbmxpbmV8fG0uYmxvY2ssZD16LmNyZWF0ZSh1KSxhKGQpLFYu
d2FsayhlLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGgoZSl7dmFyIHksQyx4LHcsXztyZXR1cm4gXz1w
LHk9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLEM9ZS5wYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCksMT09PWUubm9kZVR5cGUmJlooZSkmJihfPXAscD0idHJ1ZSI9PT1aKGUpLHc9ITAp
LE4oeSwiYnIiKT8oZz0wLHZvaWQobS5ibG9jayYmei5yZW1vdmUoZSkpKTptLndyYXBwZXImJnYo
ZSx0LG4pP3ZvaWQoZz0wKTpwJiYhdyYmbS5ibG9jayYmIW0ud3JhcHBlciYmbyh5KSYmVShDLHUp
PyhlPXoucmVuYW1lKGUsdSksYShlKSxsLnB1c2goZSksdm9pZChnPTApKTptLnNlbGVjdG9yJiYo
bnQoZixmdW5jdGlvbih0KXsiY29sbGFwc2VkImluIHQmJnQuY29sbGFwc2VkIT09Ynx8ei5pcyhl
LHQuc2VsZWN0b3IpJiYhcyhlKSYmKGEoZSx0KSx4PSEwKX0pLCFtLmlubGluZXx8eCk/dm9pZChn
PTApOnZvaWQoIXB8fHd8fCFVKHUseSl8fCFVKEMsdSl8fCFpJiYzPT09ZS5ub2RlVHlwZSYmMT09
PWUubm9kZVZhbHVlLmxlbmd0aCYmNjUyNzk9PT1lLm5vZGVWYWx1ZS5jaGFyQ29kZUF0KDApfHxz
KGUpfHxtLmlubGluZSYmcShlKT8ibGkiPT15JiZyP2c9YyhlLHIsZCxsLGgpOihnPTAsbnQocnQo
ZS5jaGlsZE5vZGVzKSxoKSx3JiYocD1fKSxnPTApOihnfHwoZz16LmNsb25lKGQsWSksZS5wYXJl
bnROb2RlLmluc2VydEJlZm9yZShnLGUpLGwucHVzaChnKSksZy5hcHBlbmRDaGlsZChlKSkpfXZh
ciBnO250KGUsaCl9KSxtLndyYXBfbGlua3M9PT0hMSYmbnQobCxmdW5jdGlvbihlKXtmdW5jdGlv
biB0KGUpe3ZhciBuLHIsaTtpZigiQSI9PT1lLm5vZGVOYW1lKXtmb3Iocj16LmNsb25lKGQsWSks
bC5wdXNoKHIpLGk9cnQoZS5jaGlsZE5vZGVzKSxuPTA7bjxpLmxlbmd0aDtuKyspci5hcHBlbmRD
aGlsZChpW25dKTtlLmFwcGVuZENoaWxkKHIpfW50KHJ0KGUuY2hpbGROb2RlcyksdCl9dChlKX0p
LG50KGwsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihlKXt2YXIgdD0wO3JldHVybiBudChlLmNoaWxk
Tm9kZXMsZnVuY3Rpb24oZSl7VChlKXx8TShlKXx8dCsrfSksdH1mdW5jdGlvbiBpKGUpe3ZhciB0
LG47cmV0dXJuIG50KGUuY2hpbGROb2RlcyxmdW5jdGlvbihlKXtyZXR1cm4gMSE9ZS5ub2RlVHlw
ZXx8TShlKXx8cyhlKT92b2lkIDA6KHQ9ZSxZKQorfSksdCYmIU0odCkmJl8odCxtKSYmKG49ei5j
bG9uZSh0LFkpLGEobiksei5yZXBsYWNlKG4sZSxYKSx6LnJlbW92ZSh0LDEpKSxufHxlfXZhciBv
O2lmKG89cihlKSwobC5sZW5ndGg+MXx8IXEoZSkpJiYwPT09bylyZXR1cm4gdm9pZCB6LnJlbW92
ZShlLDEpO2lmKG0uaW5saW5lfHxtLndyYXBwZXIpe2lmKG0uZXhhY3R8fDEhPT1vfHwoZT1pKGUp
KSxudChmLGZ1bmN0aW9uKHQpe250KHouc2VsZWN0KHQuaW5saW5lLGUpLGZ1bmN0aW9uKGUpe3Zh
ciByO2lmKCFNKGUpKXtpZih0LndyYXBfbGlua3M9PT0hMSl7cj1lLnBhcmVudE5vZGU7ZG8gaWYo
IkEiPT09ci5ub2RlTmFtZSlyZXR1cm47d2hpbGUocj1yLnBhcmVudE5vZGUpfUIodCxuLGUsdC5l
eGFjdD9lOm51bGwpfX0pfSksdihlLnBhcmVudE5vZGUsdCxuKSlyZXR1cm4gei5yZW1vdmUoZSwx
KSxlPTAsWDttLm1lcmdlX3dpdGhfcGFyZW50cyYmei5nZXRQYXJlbnQoZS5wYXJlbnROb2RlLGZ1
bmN0aW9uKHIpe3JldHVybiB2KHIsdCxuKT8oei5yZW1vdmUoZSwxKSxlPTAsWCk6dm9pZCAwfSks
ZSYmbS5tZXJnZV9zaWJsaW5ncyE9PSExJiYoZT1IKEwoZSksZSksZT1IKGUsTChlLFgpKSl9fSl9
dmFyIGY9dSh0KSxtPWZbMF0sZyx5LGI9IXImJlcuaXNDb2xsYXBzZWQoKTtpZihtKWlmKHIpci5u
b2RlVHlwZT8oeT16LmNyZWF0ZVJuZygpLHkuc2V0U3RhcnRCZWZvcmUocikseS5zZXRFbmRBZnRl
cihyKSxkKEEoeSxmKSxudWxsLCEwKSk6ZChyLG51bGwsITApO2Vsc2UgaWYoYiYmbS5pbmxpbmUm
JiF6LnNlbGVjdCgidGQubWNlLWl0ZW0tc2VsZWN0ZWQsdGgubWNlLWl0ZW0tc2VsZWN0ZWQiKS5s
ZW5ndGgpTygiYXBwbHkiLHQsbik7ZWxzZXt2YXIgQz1pLnNlbGVjdGlvbi5nZXROb2RlKCk7JHx8
IWZbMF0uZGVmYXVsdEJsb2NrfHx6LmdldFBhcmVudChDLHouaXNCbG9jayl8fGgoZlswXS5kZWZh
dWx0QmxvY2spLGkuc2VsZWN0aW9uLnNldFJuZyhsKCkpLGc9Vy5nZXRCb29rbWFyaygpLGQoQShX
LmdldFJuZyhYKSxmKSxnKSxtLnN0eWxlcyYmKG0uc3R5bGVzLmNvbG9yfHxtLnN0eWxlcy50ZXh0
RGVjb3JhdGlvbikmJihpdChDLHAsImNoaWxkTm9kZXMiKSxwKEMpKSxXLm1vdmVUb0Jvb2ttYXJr
KGcpLEkoVy5nZXRSbmcoWCkpLGkubm9kZUNoYW5nZWQoKX19ZnVuY3Rpb24gbShlLHQsbil7ZnVu
Y3Rpb24gcihlKXt2YXIgbixpLG8sYSxzO2lmKDE9PT1lLm5vZGVUeXBlJiZaKGUpJiYoYT1iLGI9
InRydWUiPT09WihlKSxzPSEwKSxuPXJ0KGUuY2hpbGROb2RlcyksYiYmIXMpZm9yKGk9MCxvPXAu
bGVuZ3RoO28+aSYmIUIocFtpXSx0LGUsZSk7aSsrKTtpZihoLmRlZXAmJm4ubGVuZ3RoKXtmb3Io
aT0wLG89bi5sZW5ndGg7bz5pO2krKylyKG5baV0pO3MmJihiPWEpfX1mdW5jdGlvbiBvKG4pe3Zh
ciByO3JldHVybiBudChhKG4ucGFyZW50Tm9kZSkucmV2ZXJzZSgpLGZ1bmN0aW9uKG4pe3ZhciBp
O3J8fCJfc3RhcnQiPT1uLmlkfHwiX2VuZCI9PW4uaWR8fChpPXYobixlLHQpLGkmJmkuc3BsaXQh
PT0hMSYmKHI9bikpfSkscn1mdW5jdGlvbiBzKGUsbixyLGkpe3ZhciBvLGEscyxsLGMsdTtpZihl
KXtmb3IodT1lLnBhcmVudE5vZGUsbz1uLnBhcmVudE5vZGU7byYmbyE9dTtvPW8ucGFyZW50Tm9k
ZSl7Zm9yKGE9ei5jbG9uZShvLFkpLGM9MDtjPHAubGVuZ3RoO2MrKylpZihCKHBbY10sdCxhLGEp
KXthPTA7YnJlYWt9YSYmKHMmJmEuYXBwZW5kQ2hpbGQocyksbHx8KGw9YSkscz1hKX0haXx8aC5t
aXhlZCYmcShlKXx8KG49ei5zcGxpdChlLG4pKSxzJiYoci5wYXJlbnROb2RlLmluc2VydEJlZm9y
ZShzLHIpLGwuYXBwZW5kQ2hpbGQocikpfXJldHVybiBufWZ1bmN0aW9uIGwoZSl7cmV0dXJuIHMo
byhlKSxlLGUsITApfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9ei5nZXQoZT8iX3N0YXJ0IjoiX2VuZCIp
LG49dFtlPyJmaXJzdENoaWxkIjoibGFzdENoaWxkIl07cmV0dXJuIE0obikmJihuPW5bZT8iZmly
c3RDaGlsZCI6Imxhc3RDaGlsZCJdKSx6LnJlbW92ZSh0LCEwKSxufWZ1bmN0aW9uIGQoZSl7dmFy
IHQsbixvPWUuY29tbW9uQW5jZXN0b3JDb250YWluZXI7ZT1BKGUscCxYKSxoLnNwbGl0JiYodD1Q
KGUsWCksbj1QKGUpLHQhPW4/KC9eKFRSfFRIfFREKSQvLnRlc3QodC5ub2RlTmFtZSkmJnQuZmly
c3RDaGlsZCYmKHQ9IlRSIj09dC5ub2RlTmFtZT90LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZHx8dDp0
LmZpcnN0Q2hpbGR8fHQpLG8mJi9eVChIRUFEfEJPRFl8Rk9PVHxSKSQvLnRlc3Qoby5ub2RlTmFt
ZSkmJi9eKFRIfFREKSQvLnRlc3Qobi5ub2RlTmFtZSkmJm4uZmlyc3RDaGlsZCYmKG49bi5maXJz
dENoaWxkfHxuKSx0PVIodCwic3BhbiIse2lkOiJfc3RhcnQiLCJkYXRhLW1jZS10eXBlIjoiYm9v
a21hcmsifSksbj1SKG4sInNwYW4iLHtpZDoiX2VuZCIsImRhdGEtbWNlLXR5cGUiOiJib29rbWFy
ayJ9KSxsKHQpLGwobiksdD1jKFgpLG49YygpKTp0PW49bCh0KSxlLnN0YXJ0Q29udGFpbmVyPXQu
cGFyZW50Tm9kZSxlLnN0YXJ0T2Zmc2V0PWoodCksZS5lbmRDb250YWluZXI9bi5wYXJlbnROb2Rl
LGUuZW5kT2Zmc2V0PWoobikrMSksVi53YWxrKGUsZnVuY3Rpb24oZSl7bnQoZSxmdW5jdGlvbihl
KXtyKGUpLDE9PT1lLm5vZGVUeXBlJiYidW5kZXJsaW5lIj09PWkuZG9tLmdldFN0eWxlKGUsInRl
eHQtZGVjb3JhdGlvbiIpJiZlLnBhcmVudE5vZGUmJiJ1bmRlcmxpbmUiPT09ZihlLnBhcmVudE5v
ZGUpJiZCKHtkZWVwOiExLGV4YWN0OiEwLGlubGluZToic3BhbiIsc3R5bGVzOnt0ZXh0RGVjb3Jh
dGlvbjoidW5kZXJsaW5lIn19LG51bGwsZSl9KX0pfXZhciBwPXUoZSksaD1wWzBdLG0sZyxiPSEw
O3JldHVybiBuP3ZvaWQobi5ub2RlVHlwZT8oZz16LmNyZWF0ZVJuZygpLGcuc2V0U3RhcnRCZWZv
cmUobiksZy5zZXRFbmRBZnRlcihuKSxkKGcpKTpkKG4pKTp2b2lkKFcuaXNDb2xsYXBzZWQoKSYm
aC5pbmxpbmUmJiF6LnNlbGVjdCgidGQubWNlLWl0ZW0tc2VsZWN0ZWQsdGgubWNlLWl0ZW0tc2Vs
ZWN0ZWQiKS5sZW5ndGg/TygicmVtb3ZlIixlLHQpOihtPVcuZ2V0Qm9va21hcmsoKSxkKFcuZ2V0
Um5nKFgpKSxXLm1vdmVUb0Jvb2ttYXJrKG0pLGguaW5saW5lJiZ5KGUsdCxXLmdldFN0YXJ0KCkp
JiZJKFcuZ2V0Um5nKCEwKSksaS5ub2RlQ2hhbmdlZCgpKSl9ZnVuY3Rpb24gZyhlLHQsbil7dmFy
IHI9dShlKTsheShlLHQsbil8fCJ0b2dnbGUiaW4gclswXSYmIXJbMF0udG9nZ2xlP2goZSx0LG4p
Om0oZSx0LG4pfWZ1bmN0aW9uIHYoZSx0LG4scil7ZnVuY3Rpb24gaShlLHQsaSl7dmFyIG8sYSxz
PXRbaV0sbDtpZih0Lm9ubWF0Y2gpcmV0dXJuIHQub25tYXRjaChlLHQsaSk7aWYocylpZihzLmxl
bmd0aD09PVEpe2ZvcihvIGluIHMpaWYocy5oYXNPd25Qcm9wZXJ0eShvKSl7aWYoYT0iYXR0cmli
dXRlcyI9PT1pP3ouZ2V0QXR0cmliKGUsbyk6RShlLG8pLHImJiFhJiYhdC5leGFjdClyZXR1cm47
aWYoKCFyfHx0LmV4YWN0KSYmIU4oYSxTKGsoc1tvXSxuKSxvKSkpcmV0dXJufX1lbHNlIGZvcihs
PTA7bDxzLmxlbmd0aDtsKyspaWYoImF0dHJpYnV0ZXMiPT09aT96LmdldEF0dHJpYihlLHNbbF0p
OkUoZSxzW2xdKSlyZXR1cm4gdDtyZXR1cm4gdH12YXIgbz11KHQpLGEscyxsO2lmKG8mJmUpZm9y
KHM9MDtzPG8ubGVuZ3RoO3MrKylpZihhPW9bc10sXyhlLGEpJiZpKGUsYSwiYXR0cmlidXRlcyIp
JiZpKGUsYSwic3R5bGVzIikpe2lmKGw9YS5jbGFzc2VzKWZvcihzPTA7czxsLmxlbmd0aDtzKysp
aWYoIXouaGFzQ2xhc3MoZSxsW3NdKSlyZXR1cm47cmV0dXJuIGF9fWZ1bmN0aW9uIHkoZSx0LG4p
e2Z1bmN0aW9uIHIobil7dmFyIHI9ei5nZXRSb290KCk7cmV0dXJuIG49PT1yPyExOihuPXouZ2V0
UGFyZW50KG4sZnVuY3Rpb24obil7cmV0dXJuIG4ucGFyZW50Tm9kZT09PXJ8fCEhdihuLGUsdCwh
MCl9KSx2KG4sZSx0KSl9dmFyIGk7cmV0dXJuIG4/cihuKToobj1XLmdldE5vZGUoKSxyKG4pP1g6
KGk9Vy5nZXRTdGFydCgpLGkhPW4mJnIoaSk/WDpZKSl9ZnVuY3Rpb24gYihlLHQpe3ZhciBuLHI9
W10saT17fTtyZXR1cm4gbj1XLmdldFN0YXJ0KCksei5nZXRQYXJlbnQobixmdW5jdGlvbihuKXt2
YXIgbyxhO2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspYT1lW29dLCFpW2FdJiZ2KG4sYSx0KSYmKGlb
YV09ITAsci5wdXNoKGEpKX0sei5nZXRSb290KCkpLHJ9ZnVuY3Rpb24gQyhlKXt2YXIgdD11KGUp
LG4scixpLG8scztpZih0KWZvcihuPVcuZ2V0U3RhcnQoKSxyPWEobiksbz10Lmxlbmd0aC0xO28+
PTA7by0tKXtpZihzPXRbb10uc2VsZWN0b3IsIXN8fHRbb10uZGVmYXVsdEJsb2NrKXJldHVybiBY
O2ZvcihpPXIubGVuZ3RoLTE7aT49MDtpLS0paWYoei5pcyhyW2ldLHMpKXJldHVybiBYfXJldHVy
biBZfWZ1bmN0aW9uIHgoZSx0LG4pe3ZhciByO3JldHVybiBKfHwoSj17fSxyPXt9LGkub24oIk5v
ZGVDaGFuZ2UiLGZ1bmN0aW9uKGUpe3ZhciB0PWEoZS5lbGVtZW50KSxuPXt9O250KEosZnVuY3Rp
b24oZSxpKXtudCh0LGZ1bmN0aW9uKG8pe3JldHVybiB2KG8saSx7fSxlLnNpbWlsYXIpPyhyW2ld
fHwobnQoZSxmdW5jdGlvbihlKXtlKCEwLHtub2RlOm8sZm9ybWF0OmkscGFyZW50czp0fSl9KSxy
W2ldPWUpLG5baV09ZSwhMSk6dm9pZCAwfSl9KSxudChyLGZ1bmN0aW9uKGksbyl7bltvXXx8KGRl
bGV0ZSByW29dLG50KGksZnVuY3Rpb24obil7bighMSx7bm9kZTplLmVsZW1lbnQsZm9ybWF0Om8s
cGFyZW50czp0fSl9KSl9KX0pKSxudChlLnNwbGl0KCIsIiksZnVuY3Rpb24oZSl7SltlXXx8KEpb
ZV09W10sSltlXS5zaW1pbGFyPW4pLEpbZV0ucHVzaCh0KX0pLHRoaXN9ZnVuY3Rpb24gdyhlKXty
ZXR1cm4gci5nZXRDc3NUZXh0KGksZSl9ZnVuY3Rpb24gXyhlLHQpe3JldHVybiBOKGUsdC5pbmxp
bmUpP1g6TihlLHQuYmxvY2spP1g6dC5zZWxlY3Rvcj8xPT1lLm5vZGVUeXBlJiZ6LmlzKGUsdC5z
ZWxlY3Rvcik6dm9pZCAwfWZ1bmN0aW9uIE4oZSx0KXtyZXR1cm4gZT1lfHwiIix0PXR8fCIiLGU9
IiIrKGUubm9kZU5hbWV8fGUpLHQ9IiIrKHQubm9kZU5hbWV8fHQpLGUudG9Mb3dlckNhc2UoKT09
dC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEUoZSx0KXtyZXR1cm4gUyh6LmdldFN0eWxlKGUsdCks
dCl9ZnVuY3Rpb24gUyhlLHQpe3JldHVybigiY29sb3IiPT10fHwiYmFja2dyb3VuZENvbG9yIj09
dCkmJihlPXoudG9IZXgoZSkpLCJmb250V2VpZ2h0Ij09dCYmNzAwPT1lJiYoZT0iYm9sZCIpLCJm
b250RmFtaWx5Ij09dCYmKGU9ZS5yZXBsYWNlKC9bXCdcIl0vZywiIikucmVwbGFjZSgvLFxzKy9n
LCIsIikpLCIiK2V9ZnVuY3Rpb24gayhlLHQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9lPWUo
dCk6dCYmKGU9ZS5yZXBsYWNlKC8lKFx3KykvZyxmdW5jdGlvbihlLG4pe3JldHVybiB0W25dfHxl
fSkpLGV9ZnVuY3Rpb24gVChlKXtyZXR1cm4gZSYmMz09PWUubm9kZVR5cGUmJi9eKFtcdCBcclxu
XSt8KSQvLnRlc3QoZS5ub2RlVmFsdWUpfWZ1bmN0aW9uIFIoZSx0LG4pe3ZhciByPXouY3JlYXRl
KHQsbik7cmV0dXJuIGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixlKSxyLmFwcGVuZENoaWxk
KGUpLHJ9ZnVuY3Rpb24gQSh0LG4scil7ZnVuY3Rpb24gcyhlKXtmdW5jdGlvbiB0KGUpe3JldHVy
biJCUiI9PWUubm9kZU5hbWUmJmUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1ib2d1cyIpJiYhZS5u
ZXh0U2libGluZ312YXIgcixpLG8sYSxzO2lmKHI9aT1lP2c6eSxhPWU/InByZXZpb3VzU2libGlu
ZyI6Im5leHRTaWJsaW5nIixzPXouZ2V0Um9vdCgpLDM9PXIubm9kZVR5cGUmJiFUKHIpJiYoZT92
PjA6YjxyLm5vZGVWYWx1ZS5sZW5ndGgpKXJldHVybiByO2Zvcig7Oyl7aWYoIW5bMF0uYmxvY2tf
ZXhwYW5kJiZxKGkpKXJldHVybiBpO2ZvcihvPWlbYV07bztvPW9bYV0paWYoIU0obykmJiFUKG8p
JiYhdChvKSlyZXR1cm4gaTtpZihpLnBhcmVudE5vZGU9PXMpe3I9aTticmVha31pPWkucGFyZW50
Tm9kZX1yZXR1cm4gcn1mdW5jdGlvbiBsKGUsdCl7Zm9yKHQ9PT1RJiYodD0zPT09ZS5ub2RlVHlw
ZT9lLmxlbmd0aDplLmNoaWxkTm9kZXMubGVuZ3RoKTtlJiZlLmhhc0NoaWxkTm9kZXMoKTspZT1l
LmNoaWxkTm9kZXNbdF0sZSYmKHQ9Mz09PWUubm9kZVR5cGU/ZS5sZW5ndGg6ZS5jaGlsZE5vZGVz
Lmxlbmd0aCk7cmV0dXJue25vZGU6ZSxvZmZzZXQ6dH19ZnVuY3Rpb24gYyhlKXtmb3IodmFyIHQ9
ZTt0Oyl7aWYoMT09PXQubm9kZVR5cGUmJloodCkpcmV0dXJuImZhbHNlIj09PVoodCk/dDplO3Q9
dC5wYXJlbnROb2RlfXJldHVybiBlfWZ1bmN0aW9uIHUodCxuLG8pe2Z1bmN0aW9uIGEoZSx0KXt2
YXIgbixpLGE9ZS5ub2RlVmFsdWU7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB0JiYodD1vP2Eu
bGVuZ3RoOjApLG8/KG49YS5sYXN0SW5kZXhPZigiICIsdCksaT1hLmxhc3RJbmRleE9mKCJceGEw
Iix0KSxuPW4+aT9uOmksLTE9PT1ufHxyfHxuKyspOihuPWEuaW5kZXhPZigiICIsdCksaT1hLmlu
ZGV4T2YoIlx4YTAiLHQpLG49LTEhPT1uJiYoLTE9PT1pfHxpPm4pP246aSksbn12YXIgcyxsLGMs
dTtpZigzPT09dC5ub2RlVHlwZSl7aWYoYz1hKHQsbiksLTEhPT1jKXJldHVybntjb250YWluZXI6
dCxvZmZzZXQ6Y307dT10fWZvcihzPW5ldyBlKHQsei5nZXRQYXJlbnQodCxxKXx8aS5nZXRCb2R5
KCkpO2w9c1tvPyJwcmV2IjoibmV4dCJdKCk7KWlmKDM9PT1sLm5vZGVUeXBlKXtpZih1PWwsYz1h
KGwpLC0xIT09YylyZXR1cm57Y29udGFpbmVyOmwsb2Zmc2V0OmN9fWVsc2UgaWYocShsKSlicmVh
aztyZXR1cm4gdT8obj1vPzA6dS5sZW5ndGgse2NvbnRhaW5lcjp1LG9mZnNldDpufSk6dm9pZCAw
fWZ1bmN0aW9uIGQoZSxyKXt2YXIgaSxvLHMsbDtmb3IoMz09ZS5ub2RlVHlwZSYmMD09PWUubm9k
ZVZhbHVlLmxlbmd0aCYmZVtyXSYmKGU9ZVtyXSksaT1hKGUpLG89MDtvPGkubGVuZ3RoO28rKylm
b3Iocz0wO3M8bi5sZW5ndGg7cysrKWlmKGw9bltzXSwhKCJjb2xsYXBzZWQiaW4gbCYmbC5jb2xs
YXBzZWQhPT10LmNvbGxhcHNlZCkmJnouaXMoaVtvXSxsLnNlbGVjdG9yKSlyZXR1cm4gaVtvXTty
ZXR1cm4gZX1mdW5jdGlvbiBmKGUsdCl7dmFyIHIsaT16LmdldFJvb3QoKTtpZihuWzBdLndyYXBw
ZXJ8fChyPXouZ2V0UGFyZW50KGUsblswXS5ibG9jayxpKSkscnx8KHI9ei5nZXRQYXJlbnQoMz09
ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZSxmdW5jdGlvbihlKXtyZXR1cm4gZSE9aSYmbyhlKX0p
KSxyJiZuWzBdLndyYXBwZXImJihyPWEociwidWwsb2wiKS5yZXZlcnNlKClbMF18fHIpLCFyKWZv
cihyPWU7clt0XSYmIXEoclt0XSkmJihyPXJbdF0sIU4ociwiYnIiKSk7KTtyZXR1cm4gcnx8ZX12
YXIgcCxoLG0sZz10LnN0YXJ0Q29udGFpbmVyLHY9dC5zdGFydE9mZnNldCx5PXQuZW5kQ29udGFp
bmVyLGI9dC5lbmRPZmZzZXQ7aWYoMT09Zy5ub2RlVHlwZSYmZy5oYXNDaGlsZE5vZGVzKCkmJihw
PWcuY2hpbGROb2Rlcy5sZW5ndGgtMSxnPWcuY2hpbGROb2Rlc1t2PnA/cDp2XSwzPT1nLm5vZGVU
eXBlJiYodj0wKSksMT09eS5ub2RlVHlwZSYmeS5oYXNDaGlsZE5vZGVzKCkmJihwPXkuY2hpbGRO
b2Rlcy5sZW5ndGgtMSx5PXkuY2hpbGROb2Rlc1tiPnA/cDpiLTFdLDM9PXkubm9kZVR5cGUmJihi
PXkubm9kZVZhbHVlLmxlbmd0aCkpLGc9YyhnKSx5PWMoeSksKE0oZy5wYXJlbnROb2RlKXx8TShn
KSkmJihnPU0oZyk/ZzpnLnBhcmVudE5vZGUsZz1nLm5leHRTaWJsaW5nfHxnLDM9PWcubm9kZVR5
cGUmJih2PTApKSwoTSh5LnBhcmVudE5vZGUpfHxNKHkpKSYmKHk9TSh5KT95OnkucGFyZW50Tm9k
ZSx5PXkucHJldmlvdXNTaWJsaW5nfHx5LDM9PXkubm9kZVR5cGUmJihiPXkubGVuZ3RoKSksblsw
XS5pbmxpbmUmJih0LmNvbGxhcHNlZCYmKG09dShnLHYsITApLG0mJihnPW0uY29udGFpbmVyLHY9
bS5vZmZzZXQpLG09dSh5LGIpLG0mJih5PW0uY29udGFpbmVyLGI9bS5vZmZzZXQpKSxoPWwoeSxi
KSxoLm5vZGUpKXtmb3IoO2gubm9kZSYmMD09PWgub2Zmc2V0JiZoLm5vZGUucHJldmlvdXNTaWJs
aW5nOyloPWwoaC5ub2RlLnByZXZpb3VzU2libGluZyk7aC5ub2RlJiZoLm9mZnNldD4wJiYzPT09
aC5ub2RlLm5vZGVUeXBlJiYiICI9PT1oLm5vZGUubm9kZVZhbHVlLmNoYXJBdChoLm9mZnNldC0x
KSYmaC5vZmZzZXQ+MSYmKHk9aC5ub2RlLHkuc3BsaXRUZXh0KGgub2Zmc2V0LTEpKX1yZXR1cm4o
blswXS5pbmxpbmV8fG5bMF0uYmxvY2tfZXhwYW5kKSYmKG5bMF0uaW5saW5lJiYzPT1nLm5vZGVU
eXBlJiYwIT09dnx8KGc9cyghMCkpLG5bMF0uaW5saW5lJiYzPT15Lm5vZGVUeXBlJiZiIT09eS5u
b2RlVmFsdWUubGVuZ3RofHwoeT1zKCkpKSxuWzBdLnNlbGVjdG9yJiZuWzBdLmV4cGFuZCE9PVkm
JiFuWzBdLmlubGluZSYmKGc9ZChnLCJwcmV2aW91c1NpYmxpbmciKSx5PWQoeSwibmV4dFNpYmxp
bmciKSksKG5bMF0uYmxvY2t8fG5bMF0uc2VsZWN0b3IpJiYoZz1mKGcsInByZXZpb3VzU2libGlu
ZyIpLHk9Zih5LCJuZXh0U2libGluZyIpLG5bMF0uYmxvY2smJihxKGcpfHwoZz1zKCEwKSkscSh5
KXx8KHk9cygpKSkpLDE9PWcubm9kZVR5cGUmJih2PWooZyksZz1nLnBhcmVudE5vZGUpLDE9PXku
bm9kZVR5cGUmJihiPWooeSkrMSx5PXkucGFyZW50Tm9kZSkse3N0YXJ0Q29udGFpbmVyOmcsc3Rh
cnRPZmZzZXQ6dixlbmRDb250YWluZXI6eSxlbmRPZmZzZXQ6Yn19ZnVuY3Rpb24gQihlLHQsbixy
KXt2YXIgaSxvLGE7aWYoIV8obixlKSlyZXR1cm4gWTtpZigiYWxsIiE9ZS5yZW1vdmUpZm9yKG50
KGUuc3R5bGVzLGZ1bmN0aW9uKGUsaSl7ZT1TKGsoZSx0KSxpKSwibnVtYmVyIj09dHlwZW9mIGkm
JihpPWUscj0wKSwoIXJ8fE4oRShyLGkpLGUpKSYmei5zZXRTdHlsZShuLGksIiIpLGE9MX0pLGEm
JiIiPT09ei5nZXRBdHRyaWIobiwic3R5bGUiKSYmKG4ucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIp
LG4ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLW1jZS1zdHlsZSIpKSxudChlLmF0dHJpYnV0ZXMsZnVu
Y3Rpb24oZSxpKXt2YXIgbztpZihlPWsoZSx0KSwibnVtYmVyIj09dHlwZW9mIGkmJihpPWUscj0w
KSwhcnx8Tih6LmdldEF0dHJpYihyLGkpLGUpKXtpZigiY2xhc3MiPT1pJiYoZT16LmdldEF0dHJp
YihuLGkpLGUmJihvPSIiLG50KGUuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKGUpey9tY2VcdysvLnRl
c3QoZSkmJihvKz0obz8iICI6IiIpK2UpfSksbykpKXJldHVybiB2b2lkIHouc2V0QXR0cmliKG4s
aSxvKTsiY2xhc3MiPT1pJiZuLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3NOYW1lIiksRy50ZXN0KGkp
JiZuLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1tY2UtIitpKSxuLnJlbW92ZUF0dHJpYnV0ZShpKX19
KSxudChlLmNsYXNzZXMsZnVuY3Rpb24oZSl7ZT1rKGUsdCksKCFyfHx6Lmhhc0NsYXNzKHIsZSkp
JiZ6LnJlbW92ZUNsYXNzKG4sZSl9KSxvPXouZ2V0QXR0cmlicyhuKSxpPTA7aTxvLmxlbmd0aDtp
KyspaWYoMCE9PW9baV0ubm9kZU5hbWUuaW5kZXhPZigiXyIpKXJldHVybiBZO3JldHVybiJub25l
IiE9ZS5yZW1vdmU/KEQobixlKSxYKTp2b2lkIDB9ZnVuY3Rpb24gRChlLHQpe2Z1bmN0aW9uIG4o
ZSx0LG4pe3JldHVybiBlPUwoZSx0LG4pLCFlfHwiQlIiPT1lLm5vZGVOYW1lfHxxKGUpfXZhciBy
PWUucGFyZW50Tm9kZSxvO3QuYmxvY2smJigkP3I9PXouZ2V0Um9vdCgpJiYodC5saXN0X2Jsb2Nr
JiZOKGUsdC5saXN0X2Jsb2NrKXx8bnQocnQoZS5jaGlsZE5vZGVzKSxmdW5jdGlvbihlKXtVKCQs
ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT9vP28uYXBwZW5kQ2hpbGQoZSk6KG89UihlLCQpLHou
c2V0QXR0cmlicyhvLGkuc2V0dGluZ3MuZm9yY2VkX3Jvb3RfYmxvY2tfYXR0cnMpKTpvPTB9KSk6
cShlKSYmIXEocikmJihuKGUsWSl8fG4oZS5maXJzdENoaWxkLFgsMSl8fGUuaW5zZXJ0QmVmb3Jl
KHouY3JlYXRlKCJiciIpLGUuZmlyc3RDaGlsZCksbihlLFgpfHxuKGUubGFzdENoaWxkLFksMSl8
fGUuYXBwZW5kQ2hpbGQoei5jcmVhdGUoImJyIikpKSksdC5zZWxlY3RvciYmdC5pbmxpbmUmJiFO
KHQuaW5saW5lLGUpfHx6LnJlbW92ZShlLDEpfWZ1bmN0aW9uIEwoZSx0LG4pe2lmKGUpZm9yKHQ9
dD8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLGU9bj9lOmVbdF07ZTtlPWVbdF0paWYo
MT09ZS5ub2RlVHlwZXx8IVQoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gTShlKXtyZXR1cm4gZSYmMT09
ZS5ub2RlVHlwZSYmImJvb2ttYXJrIj09ZS5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXR5cGUiKX1m
dW5jdGlvbiBIKGUsdCl7ZnVuY3Rpb24gbihlLHQpe2Z1bmN0aW9uIG4oZSl7dmFyIHQ9e307cmV0
dXJuIG50KHouZ2V0QXR0cmlicyhlKSxmdW5jdGlvbihuKXt2YXIgcj1uLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCk7MCE9PXIuaW5kZXhPZigiXyIpJiYic3R5bGUiIT09ciYmImRhdGEtbWNlLXN0eWxl
IiE9PXImJih0W3JdPXouZ2V0QXR0cmliKGUscikpfSksdH1mdW5jdGlvbiByKGUsdCl7dmFyIG4s
cjtmb3IociBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkocikpe2lmKG49dFtyXSxuPT09USlyZXR1
cm4gWTtpZihlW3JdIT1uKXJldHVybiBZO2RlbGV0ZSB0W3JdfWZvcihyIGluIHQpaWYodC5oYXNP
d25Qcm9wZXJ0eShyKSlyZXR1cm4gWTtyZXR1cm4gWH1yZXR1cm4gZS5ub2RlTmFtZSE9dC5ub2Rl
TmFtZT9ZOnIobihlKSxuKHQpKSYmcih6LnBhcnNlU3R5bGUoei5nZXRBdHRyaWIoZSwic3R5bGUi
KSksei5wYXJzZVN0eWxlKHouZ2V0QXR0cmliKHQsInN0eWxlIikpKT8hTShlKSYmIU0odCk6WX1m
dW5jdGlvbiByKGUsdCl7Zm9yKGk9ZTtpO2k9aVt0XSl7aWYoMz09aS5ub2RlVHlwZSYmMCE9PWku
bm9kZVZhbHVlLmxlbmd0aClyZXR1cm4gZTtpZigxPT1pLm5vZGVUeXBlJiYhTShpKSlyZXR1cm4g
aX1yZXR1cm4gZX12YXIgaSxvO2lmKGUmJnQmJihlPXIoZSwicHJldmlvdXNTaWJsaW5nIiksdD1y
KHQsIm5leHRTaWJsaW5nIiksbihlLHQpKSl7Zm9yKGk9ZS5uZXh0U2libGluZztpJiZpIT10Oylv
PWksaT1pLm5leHRTaWJsaW5nLGUuYXBwZW5kQ2hpbGQobyk7cmV0dXJuIHoucmVtb3ZlKHQpLG50
KHJ0KHQuY2hpbGROb2RlcyksZnVuY3Rpb24odCl7ZS5hcHBlbmRDaGlsZCh0KX0pLGV9cmV0dXJu
IHR9ZnVuY3Rpb24gUCh0LG4pe3ZhciByLG8sYTtyZXR1cm4gcj10W24/InN0YXJ0Q29udGFpbmVy
IjoiZW5kQ29udGFpbmVyIl0sbz10W24/InN0YXJ0T2Zmc2V0IjoiZW5kT2Zmc2V0Il0sMT09ci5u
b2RlVHlwZSYmKGE9ci5jaGlsZE5vZGVzLmxlbmd0aC0xLCFuJiZvJiZvLS0scj1yLmNoaWxkTm9k
ZXNbbz5hP2E6b10pLDM9PT1yLm5vZGVUeXBlJiZuJiZvPj1yLm5vZGVWYWx1ZS5sZW5ndGgmJihy
PW5ldyBlKHIsaS5nZXRCb2R5KCkpLm5leHQoKXx8ciksMyE9PXIubm9kZVR5cGV8fG58fDAhPT1v
fHwocj1uZXcgZShyLGkuZ2V0Qm9keSgpKS5wcmV2KCl8fHIpLHJ9ZnVuY3Rpb24gTyh0LG4scil7
ZnVuY3Rpb24gYShlKXt2YXIgdD16LmNyZWF0ZSgic3BhbiIse2lkOnksImRhdGEtbWNlLWJvZ3Vz
IjohMCxzdHlsZTpiPyJjb2xvcjpyZWQiOiIifSk7cmV0dXJuIGUmJnQuYXBwZW5kQ2hpbGQoaS5n
ZXREb2MoKS5jcmVhdGVUZXh0Tm9kZShLKSksdH1mdW5jdGlvbiBzKGUsdCl7Zm9yKDtlOyl7aWYo
Mz09PWUubm9kZVR5cGUmJmUubm9kZVZhbHVlIT09S3x8ZS5jaGlsZE5vZGVzLmxlbmd0aD4xKXJl
dHVybiExO3QmJjE9PT1lLm5vZGVUeXBlJiZ0LnB1c2goZSksZT1lLmZpcnN0Q2hpbGR9cmV0dXJu
ITB9ZnVuY3Rpb24gbChlKXtmb3IoO2U7KXtpZihlLmlkPT09eSlyZXR1cm4gZTtlPWUucGFyZW50
Tm9kZX19ZnVuY3Rpb24gYyh0KXt2YXIgbjtpZih0KWZvcihuPW5ldyBlKHQsdCksdD1uLmN1cnJl
bnQoKTt0O3Q9bi5uZXh0KCkpaWYoMz09PXQubm9kZVR5cGUpcmV0dXJuIHR9ZnVuY3Rpb24gZChl
LHQpe3ZhciBuLHI7aWYoZSlyPVcuZ2V0Um5nKCEwKSxzKGUpPyh0IT09ITEmJihyLnNldFN0YXJ0
QmVmb3JlKGUpLHIuc2V0RW5kQmVmb3JlKGUpKSx6LnJlbW92ZShlKSk6KG49YyhlKSxuLm5vZGVW
YWx1ZS5jaGFyQXQoMCk9PT1LJiYobj1uLmRlbGV0ZURhdGEoMCwxKSksei5yZW1vdmUoZSwxKSks
Vy5zZXRSbmcocik7ZWxzZSBpZihlPWwoVy5nZXRTdGFydCgpKSwhZSlmb3IoO2U9ei5nZXQoeSk7
KWQoZSwhMSl9ZnVuY3Rpb24gZigpe3ZhciBlLHQsaSxvLHMsZCxmO2U9Vy5nZXRSbmcoITApLG89
ZS5zdGFydE9mZnNldCxkPWUuc3RhcnRDb250YWluZXIsZj1kLm5vZGVWYWx1ZSx0PWwoVy5nZXRT
dGFydCgpKSx0JiYoaT1jKHQpKSxmJiZvPjAmJm88Zi5sZW5ndGgmJi9cdy8udGVzdChmLmNoYXJB
dChvKSkmJi9cdy8udGVzdChmLmNoYXJBdChvLTEpKT8ocz1XLmdldEJvb2ttYXJrKCksZS5jb2xs
YXBzZSghMCksZT1BKGUsdShuKSksZT1WLnNwbGl0KGUpLGgobixyLGUpLFcubW92ZVRvQm9va21h
cmsocykpOih0JiZpLm5vZGVWYWx1ZT09PUs/aChuLHIsdCk6KHQ9YSghMCksaT10LmZpcnN0Q2hp
bGQsZS5pbnNlcnROb2RlKHQpLG89MSxoKG4scix0KSksVy5zZXRDdXJzb3JMb2NhdGlvbihpLG8p
KX1mdW5jdGlvbiBwKCl7dmFyIGU9Vy5nZXRSbmcoITApLHQsaSxzLGwsYyxkLGY9W10scCxoO2Zv
cih0PWUuc3RhcnRDb250YWluZXIsaT1lLnN0YXJ0T2Zmc2V0LGM9dCwzPT10Lm5vZGVUeXBlJiYo
KGkhPXQubm9kZVZhbHVlLmxlbmd0aHx8dC5ub2RlVmFsdWU9PT1LKSYmKGw9ITApLGM9Yy5wYXJl
bnROb2RlKTtjOyl7aWYodihjLG4scikpe2Q9YzticmVha31jLm5leHRTaWJsaW5nJiYobD0hMCks
Zi5wdXNoKGMpLGM9Yy5wYXJlbnROb2RlfWlmKGQpaWYobClzPVcuZ2V0Qm9va21hcmsoKSxlLmNv
bGxhcHNlKCEwKSxlPUEoZSx1KG4pLCEwKSxlPVYuc3BsaXQoZSksbShuLHIsZSksVy5tb3ZlVG9C
b29rbWFyayhzKTtlbHNle2ZvcihoPWEoKSxjPWgscD1mLmxlbmd0aC0xO3A+PTA7cC0tKWMuYXBw
ZW5kQ2hpbGQoei5jbG9uZShmW3BdLCExKSksYz1jLmZpcnN0Q2hpbGQ7Yy5hcHBlbmRDaGlsZCh6
LmRvYy5jcmVhdGVUZXh0Tm9kZShLKSksYz1jLmZpcnN0Q2hpbGQ7dmFyIGc9ei5nZXRQYXJlbnQo
ZCxvKTtnJiZ6LmlzRW1wdHkoZyk/ZC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChoLGQpOnouaW5z
ZXJ0QWZ0ZXIoaCxkKSxXLnNldEN1cnNvckxvY2F0aW9uKGMsMSksei5pc0VtcHR5KGQpJiZ6LnJl
bW92ZShkKX19ZnVuY3Rpb24gZygpe3ZhciBlO2U9bChXLmdldFN0YXJ0KCkpLGUmJiF6LmlzRW1w
dHkoZSkmJml0KGUsZnVuY3Rpb24oZSl7MSE9ZS5ub2RlVHlwZXx8ZS5pZD09PXl8fHouaXNFbXB0
eShlKXx8ei5zZXRBdHRyaWIoZSwiZGF0YS1tY2UtYm9ndXMiLG51bGwpfSwiY2hpbGROb2RlcyIp
fXZhciB5PSJfbWNlX2NhcmV0IixiPWkuc2V0dGluZ3MuY2FyZXRfZGVidWc7aS5faGFzQ2FyZXRF
dmVudHN8fCh0dD1mdW5jdGlvbigpe3ZhciBlPVtdLHQ7aWYocyhsKFcuZ2V0U3RhcnQoKSksZSkp
Zm9yKHQ9ZS5sZW5ndGg7dC0tOyl6LnNldEF0dHJpYihlW3RdLCJkYXRhLW1jZS1ib2d1cyIsIjEi
KX0sZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5rZXlDb2RlO2QoKSwoOD09dHx8Mzc9PXR8fDM5PT10
KSYmZChsKFcuZ2V0U3RhcnQoKSkpLGcoKX0saS5vbigiU2V0Q29udGVudCIsZnVuY3Rpb24oZSl7
ZS5zZWxlY3Rpb24mJmcoKX0pLGkuX2hhc0NhcmV0RXZlbnRzPSEwKSwiYXBwbHkiPT10P2YoKTpw
KCl9ZnVuY3Rpb24gSSh0KXt2YXIgbj10LnN0YXJ0Q29udGFpbmVyLHI9dC5zdGFydE9mZnNldCxp
LG8sYSxzLGw7aWYoMz09bi5ub2RlVHlwZSYmcj49bi5ub2RlVmFsdWUubGVuZ3RoJiYocj1qKG4p
LG49bi5wYXJlbnROb2RlLGk9ITApLDE9PW4ubm9kZVR5cGUpZm9yKHM9bi5jaGlsZE5vZGVzLG49
c1tNYXRoLm1pbihyLHMubGVuZ3RoLTEpXSxvPW5ldyBlKG4sei5nZXRQYXJlbnQobix6LmlzQmxv
Y2spKSwocj5zLmxlbmd0aC0xfHxpKSYmby5uZXh0KCksYT1vLmN1cnJlbnQoKTthO2E9by5uZXh0
KCkpaWYoMz09YS5ub2RlVHlwZSYmIVQoYSkpcmV0dXJuIGw9ei5jcmVhdGUoImEiLG51bGwsSyks
YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsLGEpLHQuc2V0U3RhcnQoYSwwKSxXLnNldFJuZyh0
KSx2b2lkIHoucmVtb3ZlKGwpfXZhciBGPXt9LHo9aS5kb20sVz1pLnNlbGVjdGlvbixWPW5ldyB0
KHopLFU9aS5zY2hlbWEuaXNWYWxpZENoaWxkLHE9ei5pc0Jsb2NrLCQ9aS5zZXR0aW5ncy5mb3Jj
ZWRfcm9vdF9ibG9jayxqPXoubm9kZUluZGV4LEs9Ilx1ZmVmZiIsRz0vXihzcmN8aHJlZnxzdHls
ZSkkLyxZPSExLFg9ITAsSixRLFo9ei5nZXRDb250ZW50RWRpdGFibGUsZXQsdHQsbnQ9bi5lYWNo
LHJ0PW4uZ3JlcCxpdD1uLndhbGssb3Q9bi5leHRlbmQ7b3QodGhpcyx7Z2V0OnUscmVnaXN0ZXI6
ZCxhcHBseTpoLHJlbW92ZTptLHRvZ2dsZTpnLG1hdGNoOnksbWF0Y2hBbGw6YixtYXRjaE5vZGU6
dixjYW5BcHBseTpDLGZvcm1hdENoYW5nZWQ6eCxnZXRDc3NUZXh0Ond9KSxsKCksYygpLGkub24o
IkJlZm9yZUdldENvbnRlbnQiLGZ1bmN0aW9uKCl7dHQmJnR0KCl9KSxpLm9uKCJtb3VzZXVwIGtl
eWRvd24iLGZ1bmN0aW9uKGUpe2V0JiZldChlKX0pfX0pLHIoSCxbZyxwXSxmdW5jdGlvbihlLHQp
e3ZhciBuPXQudHJpbSxyO3JldHVybiByPW5ldyBSZWdFeHAoWyI8c3BhbltePl0rZGF0YS1tY2Ut
Ym9ndXNbXj5dKz5bXHUyMDBiXHVmZWZmXSs8XFwvc3Bhbj4iLCI8ZGl2W14+XStkYXRhLW1jZS1i
b2d1c1tePl0rPjxcXC9kaXY+IiwnXFxzP2RhdGEtbWNlLXNlbGVjdGVkPSJbXiJdKyInXS5qb2lu
KCJ8IiksImdpIiksZnVuY3Rpb24odCl7ZnVuY3Rpb24gaSgpe3JldHVybiBuKHQuZ2V0Q29udGVu
dCh7Zm9ybWF0OiJyYXciLG5vX2V2ZW50czoxfSkucmVwbGFjZShyLCIiKSl9ZnVuY3Rpb24gbyhl
KXthLnR5cGluZz0hMSxhLmFkZCh7fSxlKX12YXIgYT10aGlzLHM9MCxsPVtdLGMsdSxkPTA7cmV0
dXJuIHQub24oImluaXQiLGZ1bmN0aW9uKCl7YS5hZGQoKX0pLHQub24oIkJlZm9yZUV4ZWNDb21t
YW5kIixmdW5jdGlvbihlKXt2YXIgdD1lLmNvbW1hbmQ7IlVuZG8iIT10JiYiUmVkbyIhPXQmJiJt
Y2VSZXBhaW50IiE9dCYmYS5iZWZvcmVDaGFuZ2UoKX0pLHQub24oIkV4ZWNDb21tYW5kIixmdW5j
dGlvbihlKXt2YXIgdD1lLmNvbW1hbmQ7IlVuZG8iIT10JiYiUmVkbyIhPXQmJiJtY2VSZXBhaW50
IiE9dCYmbyhlKX0pLHQub24oIk9iamVjdFJlc2l6ZVN0YXJ0IixmdW5jdGlvbigpe2EuYmVmb3Jl
Q2hhbmdlKCl9KSx0Lm9uKCJTYXZlQ29udGVudCBPYmplY3RSZXNpemVkIGJsdXIiLG8pLHQub24o
IkRyYWdFbmQiLG8pLHQub24oIktleVVwIixmdW5jdGlvbihuKXt2YXIgcj1uLmtleUNvZGU7KHI+
PTMzJiYzNj49cnx8cj49MzcmJjQwPj1yfHw0NT09cnx8MTM9PXJ8fG4uY3RybEtleSkmJihvKCks
dC5ub2RlQ2hhbmdlZCgpKSwoNDY9PXJ8fDg9PXJ8fGUubWFjJiYoOTE9PXJ8fDkzPT1yKSkmJnQu
bm9kZUNoYW5nZWQoKSx1JiZhLnR5cGluZyYmKHQuaXNEaXJ0eSgpfHwodC5pc05vdERpcnR5PSFs
WzBdfHxpKCk9PWxbMF0uY29udGVudCx0LmlzTm90RGlydHl8fHQuZmlyZSgiY2hhbmdlIix7bGV2
ZWw6bFswXSxsYXN0TGV2ZWw6bnVsbH0pKSx0LmZpcmUoIlR5cGluZ1VuZG8iKSx1PSExLHQubm9k
ZUNoYW5nZWQoKSl9KSx0Lm9uKCJLZXlEb3duIixmdW5jdGlvbihlKXt2YXIgdD1lLmtleUNvZGU7
cmV0dXJuIHQ+PTMzJiYzNj49dHx8dD49MzcmJjQwPj10fHw0NT09dD92b2lkKGEudHlwaW5nJiZv
KGUpKTp2b2lkKCgxNj50fHx0PjIwKSYmMjI0IT10JiY5MSE9dCYmIWEudHlwaW5nJiYoYS5iZWZv
cmVDaGFuZ2UoKSxhLnR5cGluZz0hMCxhLmFkZCh7fSxlKSx1PSEwKSl9KSx0Lm9uKCJNb3VzZURv
d24iLGZ1bmN0aW9uKGUpe2EudHlwaW5nJiZvKGUpfSksdC5hZGRTaG9ydGN1dCgiY3RybCt6Iiwi
IiwiVW5kbyIpLHQuYWRkU2hvcnRjdXQoImN0cmwreSxjdHJsK3NoaWZ0K3oiLCIiLCJSZWRvIiks
dC5vbigiQWRkVW5kbyBVbmRvIFJlZG8gQ2xlYXJVbmRvcyBNb3VzZVVwIixmdW5jdGlvbihlKXtl
LmlzRGVmYXVsdFByZXZlbnRlZCgpfHx0Lm5vZGVDaGFuZ2VkKCl9KSxhPXtkYXRhOmwsdHlwaW5n
OiExLGJlZm9yZUNoYW5nZTpmdW5jdGlvbigpe2R8fChjPXQuc2VsZWN0aW9uLmdldEJvb2ttYXJr
KDIsITApKX0sYWRkOmZ1bmN0aW9uKGUsbil7dmFyIHIsbz10LnNldHRpbmdzLGE7aWYoZT1lfHx7
fSxlLmNvbnRlbnQ9aSgpLGR8fHQucmVtb3ZlZClyZXR1cm4gbnVsbDtpZihhPWxbc10sdC5maXJl
KCJCZWZvcmVBZGRVbmRvIix7bGV2ZWw6ZSxsYXN0TGV2ZWw6YSxvcmlnaW5hbEV2ZW50Om59KS5p
c0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm4gbnVsbDtpZihhJiZhLmNvbnRlbnQ9PWUuY29udGVu
dClyZXR1cm4gbnVsbDtpZihsW3NdJiYobFtzXS5iZWZvcmVCb29rbWFyaz1jKSxvLmN1c3RvbV91
bmRvX3JlZG9fbGV2ZWxzJiZsLmxlbmd0aD5vLmN1c3RvbV91bmRvX3JlZG9fbGV2ZWxzKXtmb3Io
cj0wO3I8bC5sZW5ndGgtMTtyKyspbFtyXT1sW3IrMV07bC5sZW5ndGgtLSxzPWwubGVuZ3RofWUu
Ym9va21hcms9dC5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoMiwhMCksczxsLmxlbmd0aC0xJiYobC5s
ZW5ndGg9cysxKSxsLnB1c2goZSkscz1sLmxlbmd0aC0xO3ZhciB1PXtsZXZlbDplLGxhc3RMZXZl
bDphLG9yaWdpbmFsRXZlbnQ6bn07cmV0dXJuIHQuZmlyZSgiQWRkVW5kbyIsdSkscz4wJiYodC5p
c05vdERpcnR5PSExLHQuZmlyZSgiY2hhbmdlIix1KSksZX0sdW5kbzpmdW5jdGlvbigpe3ZhciBl
O3JldHVybiBhLnR5cGluZyYmKGEuYWRkKCksYS50eXBpbmc9ITEpLHM+MCYmKGU9bFstLXNdLDA9
PT1zJiYodC5pc05vdERpcnR5PSEwKSx0LnNldENvbnRlbnQoZS5jb250ZW50LHtmb3JtYXQ6InJh
dyJ9KSx0LnNlbGVjdGlvbi5tb3ZlVG9Cb29rbWFyayhlLmJlZm9yZUJvb2ttYXJrKSx0LmZpcmUo
InVuZG8iLHtsZXZlbDplfSkpLGV9LHJlZG86ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gczxsLmxl
bmd0aC0xJiYoZT1sWysrc10sdC5zZXRDb250ZW50KGUuY29udGVudCx7Zm9ybWF0OiJyYXcifSks
dC5zZWxlY3Rpb24ubW92ZVRvQm9va21hcmsoZS5ib29rbWFyayksdC5maXJlKCJyZWRvIix7bGV2
ZWw6ZX0pKSxlfSxjbGVhcjpmdW5jdGlvbigpe2w9W10scz0wLGEudHlwaW5nPSExLHQuZmlyZSgi
Q2xlYXJVbmRvcyIpfSxoYXNVbmRvOmZ1bmN0aW9uKCl7cmV0dXJuIHM+MHx8YS50eXBpbmcmJmxb
MF0mJmkoKSE9bFswXS5jb250ZW50fSxoYXNSZWRvOmZ1bmN0aW9uKCl7cmV0dXJuIHM8bC5sZW5n
dGgtMSYmIXRoaXMudHlwaW5nfSx0cmFuc2FjdDpmdW5jdGlvbihlKXthLmJlZm9yZUNoYW5nZSgp
O3RyeXtkKyssZSgpfWZpbmFsbHl7ZC0tfWEuYWRkKCl9fX19KSxyKFAsW2YsQixnXSxmdW5jdGlv
bihlLHQsbil7dmFyIHI9bi5pZSYmbi5pZTwxMTtyZXR1cm4gZnVuY3Rpb24oaSl7ZnVuY3Rpb24g
byhvKXtmdW5jdGlvbiBmKGUpe3JldHVybiBlJiZhLmlzQmxvY2soZSkmJiEvXihURHxUSHxDQVBU
SU9OfEZPUk0pJC8udGVzdChlLm5vZGVOYW1lKSYmIS9eKGZpeGVkfGFic29sdXRlKS9pLnRlc3Qo
ZS5zdHlsZS5wb3NpdGlvbikmJiJ0cnVlIiE9PWEuZ2V0Q29udGVudEVkaXRhYmxlKGUpfWZ1bmN0
aW9uIHAoZSl7dmFyIHQ7YS5pc0Jsb2NrKGUpJiYodD1zLmdldFJuZygpLGUuYXBwZW5kQ2hpbGQo
YS5jcmVhdGUoInNwYW4iLG51bGwsIlx4YTAiKSkscy5zZWxlY3QoZSksZS5sYXN0Q2hpbGQub3V0
ZXJIVE1MPSIiLHMuc2V0Um5nKHQpKX1mdW5jdGlvbiBoKGUpe2Zvcih2YXIgdD1lLG49W10scjt0
PXQuZmlyc3RDaGlsZDspe2lmKGEuaXNCbG9jayh0KSlyZXR1cm47MSE9dC5ub2RlVHlwZXx8ZFt0
Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldfHxuLnB1c2godCl9Zm9yKHI9bi5sZW5ndGg7ci0tOyl0
PW5bcl0sIXQuaGFzQ2hpbGROb2RlcygpfHx0LmZpcnN0Q2hpbGQ9PXQubGFzdENoaWxkJiYiIj09
PXQuZmlyc3RDaGlsZC5ub2RlVmFsdWU/YS5yZW1vdmUodCk6IkEiPT10Lm5vZGVOYW1lJiYiICI9
PT0odC5pbm5lclRleHR8fHQudGV4dENvbnRlbnQpJiZhLnJlbW92ZSh0KX1mdW5jdGlvbiBtKHQp
e2Z1bmN0aW9uIHIoZSl7Zm9yKDtlOyl7aWYoMT09ZS5ub2RlVHlwZXx8Mz09ZS5ub2RlVHlwZSYm
ZS5kYXRhJiYvW1xyXG5cc10vLnRlc3QoZS5kYXRhKSlyZXR1cm4gZTtlPWUubmV4dFNpYmxpbmd9
fXZhciBpLG8sbCxjPXQsdTtpZihuLmllJiZuLmllPDkmJkImJkIuZmlyc3RDaGlsZCYmQi5maXJz
dENoaWxkPT1CLmxhc3RDaGlsZCYmIkJSIj09Qi5maXJzdENoaWxkLnRhZ05hbWUmJmEucmVtb3Zl
KEIuZmlyc3RDaGlsZCksIkxJIj09dC5ub2RlTmFtZSl7dmFyIGY9cih0LmZpcnN0Q2hpbGQpO2Ym
Ji9eKFVMfE9MKSQvLnRlc3QoZi5ub2RlTmFtZSkmJnQuaW5zZXJ0QmVmb3JlKGEuZG9jLmNyZWF0
ZVRleHROb2RlKCJceGEwIiksdC5maXJzdENoaWxkKX1pZihsPWEuY3JlYXRlUm5nKCksdC5oYXND
aGlsZE5vZGVzKCkpe2ZvcihpPW5ldyBlKHQsdCk7bz1pLmN1cnJlbnQoKTspe2lmKDM9PW8ubm9k
ZVR5cGUpe2wuc2V0U3RhcnQobywwKSxsLnNldEVuZChvLDApO2JyZWFrfWlmKGRbby5ub2RlTmFt
ZS50b0xvd2VyQ2FzZSgpXSl7bC5zZXRTdGFydEJlZm9yZShvKSxsLnNldEVuZEJlZm9yZShvKTti
cmVha31jPW8sbz1pLm5leHQoKX1vfHwobC5zZXRTdGFydChjLDApLGwuc2V0RW5kKGMsMCkpfWVs
c2UiQlIiPT10Lm5vZGVOYW1lP3QubmV4dFNpYmxpbmcmJmEuaXNCbG9jayh0Lm5leHRTaWJsaW5n
KT8oKCFEfHw5PkQpJiYodT1hLmNyZWF0ZSgiYnIiKSx0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KHUsdCkpLGwuc2V0U3RhcnRCZWZvcmUodCksbC5zZXRFbmRCZWZvcmUodCkpOihsLnNldFN0YXJ0
QWZ0ZXIodCksbC5zZXRFbmRBZnRlcih0KSk6KGwuc2V0U3RhcnQodCwwKSxsLnNldEVuZCh0LDAp
KTtzLnNldFJuZyhsKSxhLnJlbW92ZSh1KSxzLnNjcm9sbEludG9WaWV3KHQpfWZ1bmN0aW9uIGco
ZSl7dmFyIHQ9bC5mb3JjZWRfcm9vdF9ibG9jazt0JiZ0LnRvTG93ZXJDYXNlKCk9PT1lLnRhZ05h
bWUudG9Mb3dlckNhc2UoKSYmYS5zZXRBdHRyaWJzKGUsbC5mb3JjZWRfcm9vdF9ibG9ja19hdHRy
cyl9ZnVuY3Rpb24gdihlKXt2YXIgdD1SLG4saSxvO2lmKGV8fCJUQUJMRSI9PU8/KG49YS5jcmVh
dGUoZXx8RiksZyhuKSk6bj1CLmNsb25lTm9kZSghMSksbz1uLGwua2VlcF9zdHlsZXMhPT0hMSlk
byBpZigvXihTUEFOfFNUUk9OR3xCfEVNfEl8Rk9OVHxTVFJJS0V8VXxWQVJ8Q0lURXxERk58Q09E
RXxNQVJLfFF8U1VQfFNVQnxTQU1QKSQvLnRlc3QodC5ub2RlTmFtZSkpe2lmKCJfbWNlX2NhcmV0
Ij09dC5pZCljb250aW51ZTtpPXQuY2xvbmVOb2RlKCExKSxhLnNldEF0dHJpYihpLCJpZCIsIiIp
LG4uaGFzQ2hpbGROb2RlcygpPyhpLmFwcGVuZENoaWxkKG4uZmlyc3RDaGlsZCksbi5hcHBlbmRD
aGlsZChpKSk6KG89aSxuLmFwcGVuZENoaWxkKGkpKX13aGlsZSh0PXQucGFyZW50Tm9kZSk7cmV0
dXJuIHJ8fChvLmlubmVySFRNTD0nPGJyIGRhdGEtbWNlLWJvZ3VzPSIxIj4nKSxufWZ1bmN0aW9u
IHkodCl7dmFyIG4scixpO2lmKDM9PVIubm9kZVR5cGUmJih0P0E+MDpBPFIubm9kZVZhbHVlLmxl
bmd0aCkpcmV0dXJuITE7aWYoUi5wYXJlbnROb2RlPT1CJiZ6JiYhdClyZXR1cm4hMDtpZih0JiYx
PT1SLm5vZGVUeXBlJiZSPT1CLmZpcnN0Q2hpbGQpcmV0dXJuITA7aWYoIlRBQkxFIj09PVIubm9k
ZU5hbWV8fFIucHJldmlvdXNTaWJsaW5nJiYiVEFCTEUiPT1SLnByZXZpb3VzU2libGluZy5ub2Rl
TmFtZSlyZXR1cm4geiYmIXR8fCF6JiZ0O2ZvcihuPW5ldyBlKFIsQiksMz09Ui5ub2RlVHlwZSYm
KHQmJjA9PT1BP24ucHJldigpOnR8fEEhPVIubm9kZVZhbHVlLmxlbmd0aHx8bi5uZXh0KCkpO3I9
bi5jdXJyZW50KCk7KXtpZigxPT09ci5ub2RlVHlwZSl7aWYoIXIuZ2V0QXR0cmlidXRlKCJkYXRh
LW1jZS1ib2d1cyIpJiYoaT1yLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksZFtpXSYmImJyIiE9PWkp
KXJldHVybiExfWVsc2UgaWYoMz09PXIubm9kZVR5cGUmJiEvXlsgXHRcclxuXSokLy50ZXN0KHIu
bm9kZVZhbHVlKSlyZXR1cm4hMTt0P24ucHJldigpOm4ubmV4dCgpfXJldHVybiEwfWZ1bmN0aW9u
IGIoZSx0KXt2YXIgbixyLG8scyxsLGMsZD1GfHwiUCI7aWYocj1hLmdldFBhcmVudChlLGEuaXNC
bG9jayksYz1pLmdldEJvZHkoKS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLCFyfHwhZihyKSl7aWYo
cj1yfHxULCFyLmhhc0NoaWxkTm9kZXMoKSlyZXR1cm4gbj1hLmNyZWF0ZShkKSxnKG4pLHIuYXBw
ZW5kQ2hpbGQobiksUy5zZXRTdGFydChuLDApLFMuc2V0RW5kKG4sMCksbjtmb3Iocz1lO3MucGFy
ZW50Tm9kZSE9cjspcz1zLnBhcmVudE5vZGU7Zm9yKDtzJiYhYS5pc0Jsb2NrKHMpOylvPXMscz1z
LnByZXZpb3VzU2libGluZztpZihvJiZ1LmlzVmFsaWRDaGlsZChjLGQudG9Mb3dlckNhc2UoKSkp
e2ZvcihuPWEuY3JlYXRlKGQpLGcobiksby5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLG8pLHM9
bztzJiYhYS5pc0Jsb2NrKHMpOylsPXMubmV4dFNpYmxpbmcsbi5hcHBlbmRDaGlsZChzKSxzPWw7
Uy5zZXRTdGFydChlLHQpLFMuc2V0RW5kKGUsdCl9fXJldHVybiBlfWZ1bmN0aW9uIEMoKXtmdW5j
dGlvbiBlKGUpe2Zvcih2YXIgdD1QW2U/ImZpcnN0Q2hpbGQiOiJsYXN0Q2hpbGQiXTt0JiYxIT10
Lm5vZGVUeXBlOyl0PXRbZT8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciXTtyZXR1cm4g
dD09PUJ9ZnVuY3Rpb24gdCgpe3ZhciBlPVAucGFyZW50Tm9kZTtyZXR1cm4iTEkiPT1lLm5vZGVO
YW1lP2U6UH12YXIgbj1QLnBhcmVudE5vZGUubm9kZU5hbWU7L14oT0x8VUx8TEkpJC8udGVzdChu
KSYmKEY9IkxJIiksTT1GP3YoRik6YS5jcmVhdGUoIkJSIiksZSghMCkmJmUoKT8iTEkiPT1uP2Eu
aW5zZXJ0QWZ0ZXIoTSx0KCkpOmEucmVwbGFjZShNLFApOmUoITApPyJMSSI9PW4/KGEuaW5zZXJ0
QWZ0ZXIoTSx0KCkpLE0uYXBwZW5kQ2hpbGQoYS5kb2MuY3JlYXRlVGV4dE5vZGUoIiAiKSksTS5h
cHBlbmRDaGlsZChQKSk6UC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShNLFApOmUoKT8oYS5pbnNl
cnRBZnRlcihNLHQoKSkscChNKSk6KFA9dCgpLGs9Uy5jbG9uZVJhbmdlKCksay5zZXRTdGFydEFm
dGVyKEIpLGsuc2V0RW5kQWZ0ZXIoUCksSD1rLmV4dHJhY3RDb250ZW50cygpLCJMSSI9PUYmJiJM
SSI9PUguZmlyc3RDaGlsZC5ub2RlTmFtZT8oTT1ILmZpcnN0Q2hpbGQsYS5pbnNlcnRBZnRlcihI
LFApKTooYS5pbnNlcnRBZnRlcihILFApLGEuaW5zZXJ0QWZ0ZXIoTSxQKSkpLGEucmVtb3ZlKEIp
LG0oTSksYy5hZGQoKX1mdW5jdGlvbiB4KCl7Zm9yKHZhciB0PW5ldyBlKFIsQiksbjtuPXQubmV4
dCgpOylpZihkW24ubm9kZU5hbWUudG9Mb3dlckNhc2UoKV18fG4ubGVuZ3RoPjApcmV0dXJuITB9
ZnVuY3Rpb24gdygpe3ZhciBlLHQsbjtSJiYzPT1SLm5vZGVUeXBlJiZBPj1SLm5vZGVWYWx1ZS5s
ZW5ndGgmJihyfHx4KCl8fChlPWEuY3JlYXRlKCJiciIpLFMuaW5zZXJ0Tm9kZShlKSxTLnNldFN0
YXJ0QWZ0ZXIoZSksUy5zZXRFbmRBZnRlcihlKSx0PSEwKSksZT1hLmNyZWF0ZSgiYnIiKSxTLmlu
c2VydE5vZGUoZSksciYmIlBSRSI9PU8mJighRHx8OD5EKSYmZS5wYXJlbnROb2RlLmluc2VydEJl
Zm9yZShhLmRvYy5jcmVhdGVUZXh0Tm9kZSgiXHIiKSxlKSxuPWEuY3JlYXRlKCJzcGFuIix7fSwi
Jm5ic3A7IiksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGUpLHMuc2Nyb2xsSW50b1ZpZXco
biksYS5yZW1vdmUobiksdD8oUy5zZXRTdGFydEJlZm9yZShlKSxTLnNldEVuZEJlZm9yZShlKSk6
KFMuc2V0U3RhcnRBZnRlcihlKSxTLnNldEVuZEFmdGVyKGUpKSxzLnNldFJuZyhTKSxjLmFkZCgp
fWZ1bmN0aW9uIF8oZSl7ZG8gMz09PWUubm9kZVR5cGUmJihlLm5vZGVWYWx1ZT1lLm5vZGVWYWx1
ZS5yZXBsYWNlKC9eW1xyXG5dKy8sIiIpKSxlPWUuZmlyc3RDaGlsZDt3aGlsZShlKX1mdW5jdGlv
biBOKGUpe3ZhciB0PWEuZ2V0Um9vdCgpLG4scjtmb3Iobj1lO24hPT10JiYiZmFsc2UiIT09YS5n
ZXRDb250ZW50RWRpdGFibGUobik7KSJ0cnVlIj09PWEuZ2V0Q29udGVudEVkaXRhYmxlKG4pJiYo
cj1uKSxuPW4ucGFyZW50Tm9kZTtyZXR1cm4gbiE9PXQ/cjp0fWZ1bmN0aW9uIEUoZSl7dmFyIHQ7
cnx8KGUubm9ybWFsaXplKCksdD1lLmxhc3RDaGlsZCwoIXR8fC9eKGxlZnR8cmlnaHQpJC9naS50
ZXN0KGEuZ2V0U3R5bGUodCwiZmxvYXQiLCEwKSkpJiZhLmFkZChlLCJiciIpKX12YXIgUyxrLFQs
UixBLEIsRCxMLE0sSCxQLE8sSSxGLHo7aWYoUz1zLmdldFJuZyghMCksIW8uaXNEZWZhdWx0UHJl
dmVudGVkKCkpe2lmKCFTLmNvbGxhcHNlZClyZXR1cm4gdm9pZCBpLmV4ZWNDb21tYW5kKCJEZWxl
dGUiKTtpZihuZXcgdChhKS5ub3JtYWxpemUoUyksUj1TLnN0YXJ0Q29udGFpbmVyLEE9Uy5zdGFy
dE9mZnNldCxGPShsLmZvcmNlX3BfbmV3bGluZXM/InAiOiIiKXx8bC5mb3JjZWRfcm9vdF9ibG9j
ayxGPUY/Ri50b1VwcGVyQ2FzZSgpOiIiLEQ9YS5kb2MuZG9jdW1lbnRNb2RlLEw9by5zaGlmdEtl
eSwxPT1SLm5vZGVUeXBlJiZSLmhhc0NoaWxkTm9kZXMoKSYmKHo9QT5SLmNoaWxkTm9kZXMubGVu
Z3RoLTEsUj1SLmNoaWxkTm9kZXNbTWF0aC5taW4oQSxSLmNoaWxkTm9kZXMubGVuZ3RoLTEpXXx8
UixBPXomJjM9PVIubm9kZVR5cGU/Ui5ub2RlVmFsdWUubGVuZ3RoOjApLFQ9TihSKSl7aWYoYy5i
ZWZvcmVDaGFuZ2UoKSwhYS5pc0Jsb2NrKFQpJiZUIT1hLmdldFJvb3QoKSlyZXR1cm4gdm9pZCgo
IUZ8fEwpJiZ3KCkpO2lmKChGJiYhTHx8IUYmJkwpJiYoUj1iKFIsQSkpLEI9YS5nZXRQYXJlbnQo
UixhLmlzQmxvY2spLFA9Qj9hLmdldFBhcmVudChCLnBhcmVudE5vZGUsYS5pc0Jsb2NrKTpudWxs
LE89Qj9CLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk6IiIsST1QP1Aubm9kZU5hbWUudG9VcHBlckNh
c2UoKToiIiwiTEkiIT1JfHxvLmN0cmxLZXl8fChCPVAsTz1JKSwiTEkiPT1PKXtpZighRiYmTCly
ZXR1cm4gdm9pZCB3KCk7aWYoYS5pc0VtcHR5KEIpKXJldHVybiB2b2lkIEMoKX1pZigiUFJFIj09
TyYmbC5icl9pbl9wcmUhPT0hMSl7aWYoIUwpcmV0dXJuIHZvaWQgdygpfWVsc2UgaWYoIUYmJiFM
JiYiTEkiIT1PfHxGJiZMKXJldHVybiB2b2lkIHcoKTtGJiZCPT09aS5nZXRCb2R5KCl8fChGPUZ8
fCJQIix5KCk/KE09L14oSFsxLTZdfFBSRXxGSUdVUkUpJC8udGVzdChPKSYmIkhHUk9VUCIhPUk/
dihGKTp2KCksbC5lbmRfY29udGFpbmVyX29uX2VtcHR5X2Jsb2NrJiZmKFApJiZhLmlzRW1wdHko
Qik/TT1hLnNwbGl0KFAsQik6YS5pbnNlcnRBZnRlcihNLEIpLG0oTSkpOnkoITApPyhNPUIucGFy
ZW50Tm9kZS5pbnNlcnRCZWZvcmUodigpLEIpLHAoTSksbShCKSk6KGs9Uy5jbG9uZVJhbmdlKCks
ay5zZXRFbmRBZnRlcihCKSxIPWsuZXh0cmFjdENvbnRlbnRzKCksXyhIKSxNPUguZmlyc3RDaGls
ZCxhLmluc2VydEFmdGVyKEgsQiksaChNKSxFKEIpLG0oTSkpLGEuc2V0QXR0cmliKE0sImlkIiwi
IiksaS5maXJlKCJOZXdCbG9jayIse25ld0Jsb2NrOk19KSxjLmFkZCgpKX19fXZhciBhPWkuZG9t
LHM9aS5zZWxlY3Rpb24sbD1pLnNldHRpbmdzLGM9aS51bmRvTWFuYWdlcix1PWkuc2NoZW1hLGQ9
dS5nZXROb25FbXB0eUVsZW1lbnRzKCk7aS5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7MTM9PWUu
a2V5Q29kZSYmbyhlKSE9PSExJiZlLnByZXZlbnREZWZhdWx0KCl9KX19KSxyKE8sW10sZnVuY3Rp
b24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3ZhciB0PWkuZ2V0U3RhcnQoKSxz
PWUuZ2V0Qm9keSgpLGwsYyx1LGQsZixwLGgsbT0tMTY3NzcyMTUsZyx2LHksYixDO2lmKEM9bi5m
b3JjZWRfcm9vdF9ibG9jayx0JiYxPT09dC5ub2RlVHlwZSYmQyl7Zm9yKDt0JiZ0IT1zOyl7aWYo
YVt0Lm5vZGVOYW1lXSlyZXR1cm47dD10LnBhcmVudE5vZGV9aWYobD1pLmdldFJuZygpLGwuc2V0
U3RhcnQpe2M9bC5zdGFydENvbnRhaW5lcix1PWwuc3RhcnRPZmZzZXQsZD1sLmVuZENvbnRhaW5l
cixmPWwuZW5kT2Zmc2V0O3RyeXt2PWUuZ2V0RG9jKCkuYWN0aXZlRWxlbWVudD09PXN9Y2F0Y2go
eCl7fX1lbHNlIGwuaXRlbSYmKHQ9bC5pdGVtKDApLGw9ZS5nZXREb2MoKS5ib2R5LmNyZWF0ZVRl
eHRSYW5nZSgpLGwubW92ZVRvRWxlbWVudFRleHQodCkpLHY9bC5wYXJlbnRFbGVtZW50KCkub3du
ZXJEb2N1bWVudD09PWUuZ2V0RG9jKCkseT1sLmR1cGxpY2F0ZSgpLHkuY29sbGFwc2UoITApLHU9
LTEqeS5tb3ZlKCJjaGFyYWN0ZXIiLG0pLHkuY29sbGFwc2VkfHwoeT1sLmR1cGxpY2F0ZSgpLHku
Y29sbGFwc2UoITEpLGY9LTEqeS5tb3ZlKCJjaGFyYWN0ZXIiLG0pLXUpO2Zvcih0PXMuZmlyc3RD
aGlsZCxiPXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt0OylpZigoMz09PXQubm9kZVR5cGV8fDE9
PXQubm9kZVR5cGUmJiFhW3Qubm9kZU5hbWVdKSYmby5pc1ZhbGlkQ2hpbGQoYixDLnRvTG93ZXJD
YXNlKCkpKXtpZigzPT09dC5ub2RlVHlwZSYmMD09PXQubm9kZVZhbHVlLmxlbmd0aCl7aD10LHQ9
dC5uZXh0U2libGluZyxyLnJlbW92ZShoKTtjb250aW51ZX1wfHwocD1yLmNyZWF0ZShDLGUuc2V0
dGluZ3MuZm9yY2VkX3Jvb3RfYmxvY2tfYXR0cnMpLHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo
cCx0KSxnPSEwKSxoPXQsdD10Lm5leHRTaWJsaW5nLHAuYXBwZW5kQ2hpbGQoaCl9ZWxzZSBwPW51
bGwsdD10Lm5leHRTaWJsaW5nO2lmKGcmJnYpe2lmKGwuc2V0U3RhcnQpbC5zZXRTdGFydChjLHUp
LGwuc2V0RW5kKGQsZiksaS5zZXRSbmcobCk7ZWxzZSB0cnl7bD1lLmdldERvYygpLmJvZHkuY3Jl
YXRlVGV4dFJhbmdlKCksbC5tb3ZlVG9FbGVtZW50VGV4dChzKSxsLmNvbGxhcHNlKCEwKSxsLm1v
dmVTdGFydCgiY2hhcmFjdGVyIix1KSxmPjAmJmwubW92ZUVuZCgiY2hhcmFjdGVyIixmKSxsLnNl
bGVjdCgpfWNhdGNoKHgpe31lLm5vZGVDaGFuZ2VkKCl9fX12YXIgbj1lLnNldHRpbmdzLHI9ZS5k
b20saT1lLnNlbGVjdGlvbixvPWUuc2NoZW1hLGE9by5nZXRCbG9ja0VsZW1lbnRzKCk7bi5mb3Jj
ZWRfcm9vdF9ibG9jayYmZS5vbigiTm9kZUNoYW5nZSIsdCl9fSkscihJLFtTLGcscF0sZnVuY3Rp
b24oZSxuLHIpe3ZhciBpPXIuZWFjaCxvPXIuZXh0ZW5kLGE9ci5tYXAscz1yLmluQXJyYXksbD1y
LmV4cGxvZGUsYz1uLmdlY2tvLHU9bi5pZSxkPSEwLGY9ITE7cmV0dXJuIGZ1bmN0aW9uKHIpe2Z1
bmN0aW9uIHAoZSx0LG4pe3ZhciByO3JldHVybiBlPWUudG9Mb3dlckNhc2UoKSwocj1OLmV4ZWNb
ZV0pPyhyKGUsdCxuKSxkKTpmfWZ1bmN0aW9uIGgoZSl7dmFyIHQ7cmV0dXJuIGU9ZS50b0xvd2Vy
Q2FzZSgpLCh0PU4uc3RhdGVbZV0pP3QoZSk6LTF9ZnVuY3Rpb24gbShlKXt2YXIgdDtyZXR1cm4g
ZT1lLnRvTG93ZXJDYXNlKCksKHQ9Ti52YWx1ZVtlXSk/dChlKTpmfWZ1bmN0aW9uIGcoZSx0KXt0
PXR8fCJleGVjIixpKGUsZnVuY3Rpb24oZSxuKXtpKG4udG9Mb3dlckNhc2UoKS5zcGxpdCgiLCIp
LGZ1bmN0aW9uKG4pe05bdF1bbl09ZX0pfSl9ZnVuY3Rpb24gdihlLG4saSl7cmV0dXJuIG49PT10
JiYobj1mKSxpPT09dCYmKGk9bnVsbCksci5nZXREb2MoKS5leGVjQ29tbWFuZChlLG4saSl9ZnVu
Y3Rpb24geShlKXtyZXR1cm4gUy5tYXRjaChlKX1mdW5jdGlvbiBiKGUsbil7Uy50b2dnbGUoZSxu
P3t2YWx1ZTpufTp0KSxyLm5vZGVDaGFuZ2VkKCl9ZnVuY3Rpb24gQyhlKXtrPV8uZ2V0Qm9va21h
cmsoZSl9ZnVuY3Rpb24geCgpe18ubW92ZVRvQm9va21hcmsoayl9dmFyIHc9ci5kb20sXz1yLnNl
bGVjdGlvbixOPXtzdGF0ZTp7fSxleGVjOnt9LHZhbHVlOnt9fSxFPXIuc2V0dGluZ3MsUz1yLmZv
cm1hdHRlcixrO28odGhpcyx7ZXhlY0NvbW1hbmQ6cCxxdWVyeUNvbW1hbmRTdGF0ZTpoLHF1ZXJ5
Q29tbWFuZFZhbHVlOm0sYWRkQ29tbWFuZHM6Z30pLGcoeyJtY2VSZXNldERlc2lnbk1vZGUsbWNl
QmVnaW5VbmRvTGV2ZWwiOmZ1bmN0aW9uKCl7fSwibWNlRW5kVW5kb0xldmVsLG1jZUFkZFVuZG9M
ZXZlbCI6ZnVuY3Rpb24oKXtyLnVuZG9NYW5hZ2VyLmFkZCgpfSwiQ3V0LENvcHksUGFzdGUiOmZ1
bmN0aW9uKGUpe3ZhciB0PXIuZ2V0RG9jKCksaTt0cnl7dihlKX1jYXRjaChvKXtpPWR9aWYoaXx8
IXQucXVlcnlDb21tYW5kU3VwcG9ydGVkKGUpKXt2YXIgYT1yLnRyYW5zbGF0ZSgiWW91ciBicm93
c2VyIGRvZXNuJ3Qgc3VwcG9ydCBkaXJlY3QgYWNjZXNzIHRvIHRoZSBjbGlwYm9hcmQuIFBsZWFz
ZSB1c2UgdGhlIEN0cmwrWC9DL1Yga2V5Ym9hcmQgc2hvcnRjdXRzIGluc3RlYWQuIik7bi5tYWMm
JihhPWEucmVwbGFjZSgvQ3RybFwrL2csIlx1MjMxOCsiKSksci53aW5kb3dNYW5hZ2VyLmFsZXJ0
KGEpfX0sdW5saW5rOmZ1bmN0aW9uKCl7aWYoXy5pc0NvbGxhcHNlZCgpKXt2YXIgZT1fLmdldE5v
ZGUoKTtyZXR1cm4gdm9pZCgiQSI9PWUudGFnTmFtZSYmci5kb20ucmVtb3ZlKGUsITApKX1TLnJl
bW92ZSgibGluayIpfSwiSnVzdGlmeUxlZnQsSnVzdGlmeUNlbnRlcixKdXN0aWZ5UmlnaHQsSnVz
dGlmeUZ1bGwiOmZ1bmN0aW9uKGUpe3ZhciB0PWUuc3Vic3RyaW5nKDcpOyJmdWxsIj09dCYmKHQ9
Imp1c3RpZnkiKSxpKCJsZWZ0LGNlbnRlcixyaWdodCxqdXN0aWZ5Ii5zcGxpdCgiLCIpLGZ1bmN0
aW9uKGUpe3QhPWUmJlMucmVtb3ZlKCJhbGlnbiIrZSl9KSxiKCJhbGlnbiIrdCkscCgibWNlUmVw
YWludCIpfSwiSW5zZXJ0VW5vcmRlcmVkTGlzdCxJbnNlcnRPcmRlcmVkTGlzdCI6ZnVuY3Rpb24o
ZSl7dmFyIHQsbjt2KGUpLHQ9dy5nZXRQYXJlbnQoXy5nZXROb2RlKCksIm9sLHVsIiksdCYmKG49
dC5wYXJlbnROb2RlLC9eKEhbMS02XXxQfEFERFJFU1N8UFJFKSQvLnRlc3Qobi5ub2RlTmFtZSkm
JihDKCksdy5zcGxpdChuLHQpLHgoKSkpfSwiQm9sZCxJdGFsaWMsVW5kZXJsaW5lLFN0cmlrZXRo
cm91Z2gsU3VwZXJzY3JpcHQsU3Vic2NyaXB0IjpmdW5jdGlvbihlKXtiKGUpfSwiRm9yZUNvbG9y
LEhpbGl0ZUNvbG9yLEZvbnROYW1lIjpmdW5jdGlvbihlLHQsbil7YihlLG4pfSxGb250U2l6ZTpm
dW5jdGlvbihlLHQsbil7dmFyIHIsaTtuPj0xJiY3Pj1uJiYoaT1sKEUuZm9udF9zaXplX3N0eWxl
X3ZhbHVlcykscj1sKEUuZm9udF9zaXplX2NsYXNzZXMpLG49cj9yW24tMV18fG46aVtuLTFdfHxu
KSxiKGUsbil9LFJlbW92ZUZvcm1hdDpmdW5jdGlvbihlKXtTLnJlbW92ZShlKX0sbWNlQmxvY2tR
dW90ZTpmdW5jdGlvbigpe2IoImJsb2NrcXVvdGUiKX0sRm9ybWF0QmxvY2s6ZnVuY3Rpb24oZSx0
LG4pe3JldHVybiBiKG58fCJwIil9LG1jZUNsZWFudXA6ZnVuY3Rpb24oKXt2YXIgZT1fLmdldEJv
b2ttYXJrKCk7ci5zZXRDb250ZW50KHIuZ2V0Q29udGVudCh7Y2xlYW51cDpkfSkse2NsZWFudXA6
ZH0pLF8ubW92ZVRvQm9va21hcmsoZSl9LG1jZVJlbW92ZU5vZGU6ZnVuY3Rpb24oZSx0LG4pe3Zh
ciBpPW58fF8uZ2V0Tm9kZSgpO2khPXIuZ2V0Qm9keSgpJiYoQygpLHIuZG9tLnJlbW92ZShpLGQp
LHgoKSl9LG1jZVNlbGVjdE5vZGVEZXB0aDpmdW5jdGlvbihlLHQsbil7dmFyIGk9MDt3LmdldFBh
cmVudChfLmdldE5vZGUoKSxmdW5jdGlvbihlKXtyZXR1cm4gMT09ZS5ub2RlVHlwZSYmaSsrPT1u
PyhfLnNlbGVjdChlKSxmKTp2b2lkIDB9LHIuZ2V0Qm9keSgpKX0sbWNlU2VsZWN0Tm9kZTpmdW5j
dGlvbihlLHQsbil7Xy5zZWxlY3Qobil9LG1jZUluc2VydENvbnRlbnQ6ZnVuY3Rpb24odCxuLGkp
e2Z1bmN0aW9uIG8oZSl7ZnVuY3Rpb24gdChlKXtyZXR1cm4gcltlXSYmMz09cltlXS5ub2RlVHlw
ZX12YXIgbixyLGk7cmV0dXJuIG49Xy5nZXRSbmcoITApLHI9bi5zdGFydENvbnRhaW5lcixpPW4u
c3RhcnRPZmZzZXQsMz09ci5ub2RlVHlwZSYmKGk+MD9lPWUucmVwbGFjZSgvXiZuYnNwOy8sIiAi
KTp0KCJwcmV2aW91c1NpYmxpbmciKXx8KGU9ZS5yZXBsYWNlKC9eIC8sIiZuYnNwOyIpKSxpPHIu
bGVuZ3RoP2U9ZS5yZXBsYWNlKC8mbmJzcDsoPGJyPnwpJC8sIiAiKTp0KCJuZXh0U2libGluZyIp
fHwoZT1lLnJlcGxhY2UoLygmbmJzcDt8ICkoPGJyPnwpJC8sIiZuYnNwOyIpKSksZX12YXIgYSxz
LGwsYyxkLGYscCxoLG0sZyx2Oy9eIHwgJC8udGVzdChpKSYmKGk9byhpKSksYT1yLnBhcnNlcixz
PW5ldyBlKHt9LHIuc2NoZW1hKSx2PSc8c3BhbiBpZD0ibWNlX21hcmtlciIgZGF0YS1tY2UtdHlw
ZT0iYm9va21hcmsiPiYjeEZFRkY7JiMyMDBCOzwvc3Bhbj4nLGY9e2NvbnRlbnQ6aSxmb3JtYXQ6
Imh0bWwiLHNlbGVjdGlvbjohMH0sci5maXJlKCJCZWZvcmVTZXRDb250ZW50IixmKSxpPWYuY29u
dGVudCwtMT09aS5pbmRleE9mKCJ7JGNhcmV0fSIpJiYoaSs9InskY2FyZXR9IiksaT1pLnJlcGxh
Y2UoL1x7XCRjYXJldFx9Lyx2KSxoPV8uZ2V0Um5nKCk7dmFyIHk9aC5zdGFydENvbnRhaW5lcnx8
KGgucGFyZW50RWxlbWVudD9oLnBhcmVudEVsZW1lbnQoKTpudWxsKSxiPXIuZ2V0Qm9keSgpO3k9
PT1iJiZfLmlzQ29sbGFwc2VkKCkmJncuaXNCbG9jayhiLmZpcnN0Q2hpbGQpJiZ3LmlzRW1wdHko
Yi5maXJzdENoaWxkKSYmKGg9dy5jcmVhdGVSbmcoKSxoLnNldFN0YXJ0KGIuZmlyc3RDaGlsZCww
KSxoLnNldEVuZChiLmZpcnN0Q2hpbGQsMCksXy5zZXRSbmcoaCkpLF8uaXNDb2xsYXBzZWQoKXx8
ci5nZXREb2MoKS5leGVjQ29tbWFuZCgiRGVsZXRlIiwhMSxudWxsKSxsPV8uZ2V0Tm9kZSgpO3Zh
ciBDPXtjb250ZXh0Omwubm9kZU5hbWUudG9Mb3dlckNhc2UoKX07aWYoZD1hLnBhcnNlKGksQyks
bT1kLmxhc3RDaGlsZCwibWNlX21hcmtlciI9PW0uYXR0cigiaWQiKSlmb3IocD1tLG09bS5wcmV2
O207bT1tLndhbGsoITApKWlmKDM9PW0udHlwZXx8IXcuaXNCbG9jayhtLm5hbWUpKXttLnBhcmVu
dC5pbnNlcnQocCxtLCJiciI9PT1tLm5hbWUpO2JyZWFrfWlmKEMuaW52YWxpZCl7Zm9yKF8uc2V0
Q29udGVudCh2KSxsPV8uZ2V0Tm9kZSgpLGM9ci5nZXRCb2R5KCksOT09bC5ub2RlVHlwZT9sPW09
YzptPWw7bSE9PWM7KWw9bSxtPW0ucGFyZW50Tm9kZTtpPWw9PWM/Yy5pbm5lckhUTUw6dy5nZXRP
dXRlckhUTUwobCksaT1zLnNlcmlhbGl6ZShhLnBhcnNlKGkucmVwbGFjZSgvPHNwYW4gKGlkPSJt
Y2VfbWFya2VyInxpZD1tY2VfbWFya2VyKS4rPzxcL3NwYW4+L2ksZnVuY3Rpb24oKXtyZXR1cm4g
cy5zZXJpYWxpemUoZCl9KSkpLGw9PWM/dy5zZXRIVE1MKGMsaSk6dy5zZXRPdXRlckhUTUwobCxp
KX1lbHNlIGk9cy5zZXJpYWxpemUoZCksbT1sLmZpcnN0Q2hpbGQsZz1sLmxhc3RDaGlsZCwhbXx8
bT09PWcmJiJCUiI9PT1tLm5vZGVOYW1lP3cuc2V0SFRNTChsLGkpOl8uc2V0Q29udGVudChpKTtw
PXcuZ2V0KCJtY2VfbWFya2VyIiksXy5zY3JvbGxJbnRvVmlldyhwKSxoPXcuY3JlYXRlUm5nKCks
bT1wLnByZXZpb3VzU2libGluZyxtJiYzPT1tLm5vZGVUeXBlPyhoLnNldFN0YXJ0KG0sbS5ub2Rl
VmFsdWUubGVuZ3RoKSx1fHwoZz1wLm5leHRTaWJsaW5nLGcmJjM9PWcubm9kZVR5cGUmJihtLmFw
cGVuZERhdGEoZy5kYXRhKSxnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZykpKSk6KGguc2V0U3Rh
cnRCZWZvcmUocCksaC5zZXRFbmRCZWZvcmUocCkpLHcucmVtb3ZlKHApLF8uc2V0Um5nKGgpLHIu
ZmlyZSgiU2V0Q29udGVudCIsZiksci5hZGRWaXN1YWwoKX0sbWNlSW5zZXJ0UmF3SFRNTDpmdW5j
dGlvbihlLHQsbil7Xy5zZXRDb250ZW50KCJ0aW55X21jZV9tYXJrZXIiKSxyLnNldENvbnRlbnQo
ci5nZXRDb250ZW50KCkucmVwbGFjZSgvdGlueV9tY2VfbWFya2VyL2csZnVuY3Rpb24oKXtyZXR1
cm4gbn0pKX0sbWNlVG9nZ2xlRm9ybWF0OmZ1bmN0aW9uKGUsdCxuKXtiKG4pfSxtY2VTZXRDb250
ZW50OmZ1bmN0aW9uKGUsdCxuKXtyLnNldENvbnRlbnQobil9LCJJbmRlbnQsT3V0ZGVudCI6ZnVu
Y3Rpb24oZSl7dmFyIHQsbixvO3Q9RS5pbmRlbnRhdGlvbixuPS9bYS16JV0rJC9pLmV4ZWModCks
dD1wYXJzZUludCh0LDEwKSxoKCJJbnNlcnRVbm9yZGVyZWRMaXN0Iil8fGgoIkluc2VydE9yZGVy
ZWRMaXN0Iik/dihlKTooRS5mb3JjZWRfcm9vdF9ibG9ja3x8dy5nZXRQYXJlbnQoXy5nZXROb2Rl
KCksdy5pc0Jsb2NrKXx8Uy5hcHBseSgiZGl2IiksaShfLmdldFNlbGVjdGVkQmxvY2tzKCksZnVu
Y3Rpb24oaSl7aWYoIkxJIiE9aS5ub2RlTmFtZSl7dmFyIGE9ci5nZXRQYXJhbSgiaW5kZW50X3Vz
ZV9tYXJnaW4iLCExKT8ibWFyZ2luIjoicGFkZGluZyI7YSs9InJ0bCI9PXcuZ2V0U3R5bGUoaSwi
ZGlyZWN0aW9uIiwhMCk/IlJpZ2h0IjoiTGVmdCIsIm91dGRlbnQiPT1lPyhvPU1hdGgubWF4KDAs
cGFyc2VJbnQoaS5zdHlsZVthXXx8MCwxMCktdCksdy5zZXRTdHlsZShpLGEsbz9vK246IiIpKToo
bz1wYXJzZUludChpLnN0eWxlW2FdfHwwLDEwKSt0K24sdy5zZXRTdHlsZShpLGEsbykpfX0pKX0s
bWNlUmVwYWludDpmdW5jdGlvbigpe2lmKGMpdHJ5e0MoZCksXy5nZXRTZWwoKSYmXy5nZXRTZWwo
KS5zZWxlY3RBbGxDaGlsZHJlbihyLmdldEJvZHkoKSksXy5jb2xsYXBzZShkKSx4KCl9Y2F0Y2go
ZSl7fX0sSW5zZXJ0SG9yaXpvbnRhbFJ1bGU6ZnVuY3Rpb24oKXtyLmV4ZWNDb21tYW5kKCJtY2VJ
bnNlcnRDb250ZW50IiwhMSwiPGhyIC8+Iil9LG1jZVRvZ2dsZVZpc3VhbEFpZDpmdW5jdGlvbigp
e3IuaGFzVmlzdWFsPSFyLmhhc1Zpc3VhbCxyLmFkZFZpc3VhbCgpfSxtY2VSZXBsYWNlQ29udGVu
dDpmdW5jdGlvbihlLHQsbil7ci5leGVjQ29tbWFuZCgibWNlSW5zZXJ0Q29udGVudCIsITEsbi5y
ZXBsYWNlKC9ce1wkc2VsZWN0aW9uXH0vZyxfLmdldENvbnRlbnQoe2Zvcm1hdDoidGV4dCJ9KSkp
fSxtY2VJbnNlcnRMaW5rOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjsic3RyaW5nIj09dHlwZW9mIG4m
JihuPXtocmVmOm59KSxyPXcuZ2V0UGFyZW50KF8uZ2V0Tm9kZSgpLCJhIiksbi5ocmVmPW4uaHJl
Zi5yZXBsYWNlKCIgIiwiJTIwIiksciYmbi5ocmVmfHxTLnJlbW92ZSgibGluayIpLG4uaHJlZiYm
Uy5hcHBseSgibGluayIsbixyKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKCl7dmFyIGU9dy5nZXRSb290
KCksdDtfLmdldFJuZygpLnNldFN0YXJ0Pyh0PXcuY3JlYXRlUm5nKCksdC5zZXRTdGFydChlLDAp
LHQuc2V0RW5kKGUsZS5jaGlsZE5vZGVzLmxlbmd0aCksXy5zZXRSbmcodCkpOih0PV8uZ2V0Um5n
KCksdC5pdGVtfHwodC5tb3ZlVG9FbGVtZW50VGV4dChlKSx0LnNlbGVjdCgpKSl9LCJkZWxldGUi
OmZ1bmN0aW9uKCl7digiRGVsZXRlIik7dmFyIGU9ci5nZXRCb2R5KCk7dy5pc0VtcHR5KGUpJiYo
ci5zZXRDb250ZW50KCIiKSxlLmZpcnN0Q2hpbGQmJncuaXNCbG9jayhlLmZpcnN0Q2hpbGQpP3Iu
c2VsZWN0aW9uLnNldEN1cnNvckxvY2F0aW9uKGUuZmlyc3RDaGlsZCwwKTpyLnNlbGVjdGlvbi5z
ZXRDdXJzb3JMb2NhdGlvbihlLDApKX0sbWNlTmV3RG9jdW1lbnQ6ZnVuY3Rpb24oKXtyLnNldENv
bnRlbnQoIiIpfX0pLGcoeyJKdXN0aWZ5TGVmdCxKdXN0aWZ5Q2VudGVyLEp1c3RpZnlSaWdodCxK
dXN0aWZ5RnVsbCI6ZnVuY3Rpb24oZSl7dmFyIHQ9ImFsaWduIitlLnN1YnN0cmluZyg3KSxuPV8u
aXNDb2xsYXBzZWQoKT9bdy5nZXRQYXJlbnQoXy5nZXROb2RlKCksdy5pc0Jsb2NrKV06Xy5nZXRT
ZWxlY3RlZEJsb2NrcygpLHI9YShuLGZ1bmN0aW9uKGUpe3JldHVybiEhUy5tYXRjaE5vZGUoZSx0
KX0pO3JldHVybi0xIT09cyhyLGQpfSwiQm9sZCxJdGFsaWMsVW5kZXJsaW5lLFN0cmlrZXRocm91
Z2gsU3VwZXJzY3JpcHQsU3Vic2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4geShlKX0sbWNlQmxv
Y2tRdW90ZTpmdW5jdGlvbigpe3JldHVybiB5KCJibG9ja3F1b3RlIil9LE91dGRlbnQ6ZnVuY3Rp
b24oKXt2YXIgZTtpZihFLmlubGluZV9zdHlsZXMpe2lmKChlPXcuZ2V0UGFyZW50KF8uZ2V0U3Rh
cnQoKSx3LmlzQmxvY2spKSYmcGFyc2VJbnQoZS5zdHlsZS5wYWRkaW5nTGVmdCwxMCk+MClyZXR1
cm4gZDtpZigoZT13LmdldFBhcmVudChfLmdldEVuZCgpLHcuaXNCbG9jaykpJiZwYXJzZUludChl
LnN0eWxlLnBhZGRpbmdMZWZ0LDEwKT4wKXJldHVybiBkCit9cmV0dXJuIGgoIkluc2VydFVub3Jk
ZXJlZExpc3QiKXx8aCgiSW5zZXJ0T3JkZXJlZExpc3QiKXx8IUUuaW5saW5lX3N0eWxlcyYmISF3
LmdldFBhcmVudChfLmdldE5vZGUoKSwiQkxPQ0tRVU9URSIpfSwiSW5zZXJ0VW5vcmRlcmVkTGlz
dCxJbnNlcnRPcmRlcmVkTGlzdCI6ZnVuY3Rpb24oZSl7dmFyIHQ9dy5nZXRQYXJlbnQoXy5nZXRO
b2RlKCksInVsLG9sIik7cmV0dXJuIHQmJigiaW5zZXJ0dW5vcmRlcmVkbGlzdCI9PT1lJiYiVUwi
PT09dC50YWdOYW1lfHwiaW5zZXJ0b3JkZXJlZGxpc3QiPT09ZSYmIk9MIj09PXQudGFnTmFtZSl9
fSwic3RhdGUiKSxnKHsiRm9udFNpemUsRm9udE5hbWUiOmZ1bmN0aW9uKGUpe3ZhciB0PTAsbjty
ZXR1cm4obj13LmdldFBhcmVudChfLmdldE5vZGUoKSwic3BhbiIpKSYmKHQ9ImZvbnRzaXplIj09
ZT9uLnN0eWxlLmZvbnRTaXplOm4uc3R5bGUuZm9udEZhbWlseS5yZXBsYWNlKC8sIC9nLCIsIiku
cmVwbGFjZSgvW1wnXCJdL2csIiIpLnRvTG93ZXJDYXNlKCkpLHR9fSwidmFsdWUiKSxnKHtVbmRv
OmZ1bmN0aW9uKCl7ci51bmRvTWFuYWdlci51bmRvKCl9LFJlZG86ZnVuY3Rpb24oKXtyLnVuZG9N
YW5hZ2VyLnJlZG8oKX19KX19KSxyKEYsW3BdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSxpKXt2
YXIgbz10aGlzLGEscztpZihlPXIoZSksaT1vLnNldHRpbmdzPWl8fHt9LC9eKFtcd1wtXSspOihb
XlwvXXsyfSkvaS50ZXN0KGUpfHwvXlxzKiMvLnRlc3QoZSkpcmV0dXJuIHZvaWQoby5zb3VyY2U9
ZSk7dmFyIGw9MD09PWUuaW5kZXhPZigiLy8iKTswIT09ZS5pbmRleE9mKCIvIil8fGx8fChlPShp
LmJhc2VfdXJpP2kuYmFzZV91cmkucHJvdG9jb2x8fCJodHRwIjoiaHR0cCIpKyI6Ly9tY2VfaG9z
dCIrZSksL15bXHdcLV0qOj9cL1wvLy50ZXN0KGUpfHwocz1pLmJhc2VfdXJpP2kuYmFzZV91cmku
cGF0aDpuZXcgdChsb2NhdGlvbi5ocmVmKS5kaXJlY3RvcnksZT0iIj09PWkuYmFzZV91cmkucHJv
dG9jb2w/Ii8vbWNlX2hvc3QiK28udG9BYnNQYXRoKHMsZSk6KGkuYmFzZV91cmkmJmkuYmFzZV91
cmkucHJvdG9jb2x8fCJodHRwIikrIjovL21jZV9ob3N0IitvLnRvQWJzUGF0aChzLGUpKSxlPWUu
cmVwbGFjZSgvQEAvZywiKG1jZV9hdCkiKSxlPS9eKD86KD8hW146QF0rOlteOkBcL10qQCkoW146
XC8/Iy5dKyk6KT8oPzpcL1wvKT8oKD86KChbXjpAXC9dKik6PyhbXjpAXC9dKikpP0ApPyhbXjpc
Lz8jXSopKD86OihcZCopKT8pKCgoXC8oPzpbXj8jXSg/IVtePyNcL10qXC5bXj8jXC8uXSsoPzpb
PyNdfCQpKSkqXC8/KT8oW14/I1wvXSopKSg/Olw/KFteI10qKSk/KD86IyguKikpPykvLmV4ZWMo
ZSksbihbInNvdXJjZSIsInByb3RvY29sIiwiYXV0aG9yaXR5IiwidXNlckluZm8iLCJ1c2VyIiwi
cGFzc3dvcmQiLCJob3N0IiwicG9ydCIsInJlbGF0aXZlIiwicGF0aCIsImRpcmVjdG9yeSIsImZp
bGUiLCJxdWVyeSIsImFuY2hvciJdLGZ1bmN0aW9uKHQsbil7dmFyIHI9ZVtuXTtyJiYocj1yLnJl
cGxhY2UoL1wobWNlX2F0XCkvZywiQEAiKSksb1t0XT1yfSksYT1pLmJhc2VfdXJpLGEmJihvLnBy
b3RvY29sfHwoby5wcm90b2NvbD1hLnByb3RvY29sKSxvLnVzZXJJbmZvfHwoby51c2VySW5mbz1h
LnVzZXJJbmZvKSxvLnBvcnR8fCJtY2VfaG9zdCIhPT1vLmhvc3R8fChvLnBvcnQ9YS5wb3J0KSxv
Lmhvc3QmJiJtY2VfaG9zdCIhPT1vLmhvc3R8fChvLmhvc3Q9YS5ob3N0KSxvLnNvdXJjZT0iIiks
bCYmKG8ucHJvdG9jb2w9IiIpfXZhciBuPWUuZWFjaCxyPWUudHJpbSxpPXtmdHA6MjEsaHR0cDo4
MCxodHRwczo0NDMsbWFpbHRvOjI1fTtyZXR1cm4gdC5wcm90b3R5cGU9e3NldFBhdGg6ZnVuY3Rp
b24oZSl7dmFyIHQ9dGhpcztlPS9eKC4qPylcLz8oXHcrKT8kLy5leGVjKGUpLHQucGF0aD1lWzBd
LHQuZGlyZWN0b3J5PWVbMV0sdC5maWxlPWVbMl0sdC5zb3VyY2U9IiIsdC5nZXRVUkkoKX0sdG9S
ZWxhdGl2ZTpmdW5jdGlvbihlKXt2YXIgbj10aGlzLHI7aWYoIi4vIj09PWUpcmV0dXJuIGU7aWYo
ZT1uZXcgdChlLHtiYXNlX3VyaTpufSksIm1jZV9ob3N0IiE9ZS5ob3N0JiZuLmhvc3QhPWUuaG9z
dCYmZS5ob3N0fHxuLnBvcnQhPWUucG9ydHx8bi5wcm90b2NvbCE9ZS5wcm90b2NvbCYmIiIhPT1l
LnByb3RvY29sKXJldHVybiBlLmdldFVSSSgpO3ZhciBpPW4uZ2V0VVJJKCksbz1lLmdldFVSSSgp
O3JldHVybiBpPT1vfHwiLyI9PWkuY2hhckF0KGkubGVuZ3RoLTEpJiZpLnN1YnN0cigwLGkubGVu
Z3RoLTEpPT1vP2k6KHI9bi50b1JlbFBhdGgobi5wYXRoLGUucGF0aCksZS5xdWVyeSYmKHIrPSI/
IitlLnF1ZXJ5KSxlLmFuY2hvciYmKHIrPSIjIitlLmFuY2hvcikscil9LHRvQWJzb2x1dGU6ZnVu
Y3Rpb24oZSxuKXtyZXR1cm4gZT1uZXcgdChlLHtiYXNlX3VyaTp0aGlzfSksZS5nZXRVUkkobiYm
dGhpcy5pc1NhbWVPcmlnaW4oZSkpfSxpc1NhbWVPcmlnaW46ZnVuY3Rpb24oZSl7aWYodGhpcy5o
b3N0PT1lLmhvc3QmJnRoaXMucHJvdG9jb2w9PWUucHJvdG9jb2wpe2lmKHRoaXMucG9ydD09ZS5w
b3J0KXJldHVybiEwO3ZhciB0PWlbdGhpcy5wcm90b2NvbF07aWYodCYmKHRoaXMucG9ydHx8dCk9
PShlLnBvcnR8fHQpKXJldHVybiEwfXJldHVybiExfSx0b1JlbFBhdGg6ZnVuY3Rpb24oZSx0KXt2
YXIgbixyPTAsaT0iIixvLGE7aWYoZT1lLnN1YnN0cmluZygwLGUubGFzdEluZGV4T2YoIi8iKSks
ZT1lLnNwbGl0KCIvIiksbj10LnNwbGl0KCIvIiksZS5sZW5ndGg+PW4ubGVuZ3RoKWZvcihvPTAs
YT1lLmxlbmd0aDthPm87bysrKWlmKG8+PW4ubGVuZ3RofHxlW29dIT1uW29dKXtyPW8rMTticmVh
a31pZihlLmxlbmd0aDxuLmxlbmd0aClmb3Iobz0wLGE9bi5sZW5ndGg7YT5vO28rKylpZihvPj1l
Lmxlbmd0aHx8ZVtvXSE9bltvXSl7cj1vKzE7YnJlYWt9aWYoMT09PXIpcmV0dXJuIHQ7Zm9yKG89
MCxhPWUubGVuZ3RoLShyLTEpO2E+bztvKyspaSs9Ii4uLyI7Zm9yKG89ci0xLGE9bi5sZW5ndGg7
YT5vO28rKylpKz1vIT1yLTE/Ii8iK25bb106bltvXTtyZXR1cm4gaX0sdG9BYnNQYXRoOmZ1bmN0
aW9uKGUsdCl7dmFyIHIsaT0wLG89W10sYSxzO2ZvcihhPS9cLyQvLnRlc3QodCk/Ii8iOiIiLGU9
ZS5zcGxpdCgiLyIpLHQ9dC5zcGxpdCgiLyIpLG4oZSxmdW5jdGlvbihlKXtlJiZvLnB1c2goZSl9
KSxlPW8scj10Lmxlbmd0aC0xLG89W107cj49MDtyLS0pMCE9PXRbcl0ubGVuZ3RoJiYiLiIhPT10
W3JdJiYoIi4uIiE9PXRbcl0/aT4wP2ktLTpvLnB1c2godFtyXSk6aSsrKTtyZXR1cm4gcj1lLmxl
bmd0aC1pLHM9MD49cj9vLnJldmVyc2UoKS5qb2luKCIvIik6ZS5zbGljZSgwLHIpLmpvaW4oIi8i
KSsiLyIrby5yZXZlcnNlKCkuam9pbigiLyIpLDAhPT1zLmluZGV4T2YoIi8iKSYmKHM9Ii8iK3Mp
LGEmJnMubGFzdEluZGV4T2YoIi8iKSE9PXMubGVuZ3RoLTEmJihzKz1hKSxzfSxnZXRVUkk6ZnVu
Y3Rpb24oZSl7dmFyIHQsbj10aGlzO3JldHVybighbi5zb3VyY2V8fGUpJiYodD0iIixlfHwodCs9
bi5wcm90b2NvbD9uLnByb3RvY29sKyI6Ly8iOiIvLyIsbi51c2VySW5mbyYmKHQrPW4udXNlcklu
Zm8rIkAiKSxuLmhvc3QmJih0Kz1uLmhvc3QpLG4ucG9ydCYmKHQrPSI6IituLnBvcnQpKSxuLnBh
dGgmJih0Kz1uLnBhdGgpLG4ucXVlcnkmJih0Kz0iPyIrbi5xdWVyeSksbi5hbmNob3ImJih0Kz0i
IyIrbi5hbmNob3IpLG4uc291cmNlPXQpLG4uc291cmNlfX0sdH0pLHIoeixbcF0sZnVuY3Rpb24o
ZSl7ZnVuY3Rpb24gdCgpe312YXIgbj1lLmVhY2gscj1lLmV4dGVuZCxpLG87cmV0dXJuIHQuZXh0
ZW5kPWk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3ZhciBlLHQsbixyPXRoaXM7aWYoIW8mJihy
LmluaXQmJnIuaW5pdC5hcHBseShyLGFyZ3VtZW50cyksdD1yLk1peGlucykpZm9yKGU9dC5sZW5n
dGg7ZS0tOyluPXRbZV0sbi5pbml0JiZuLmluaXQuYXBwbHkocixhcmd1bWVudHMpfWZ1bmN0aW9u
IGEoKXtyZXR1cm4gdGhpc31mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49
dGhpcyxyPW4uX3N1cGVyLGk7cmV0dXJuIG4uX3N1cGVyPWNbZV0saT10LmFwcGx5KG4sYXJndW1l
bnRzKSxuLl9zdXBlcj1yLGl9fXZhciBsPXRoaXMsYz1sLnByb3RvdHlwZSx1LGQsZjtvPSEwLHU9
bmV3IGwsbz0hMSxlLk1peGlucyYmKG4oZS5NaXhpbnMsZnVuY3Rpb24odCl7dD10O2Zvcih2YXIg
biBpbiB0KSJpbml0IiE9PW4mJihlW25dPXRbbl0pfSksYy5NaXhpbnMmJihlLk1peGlucz1jLk1p
eGlucy5jb25jYXQoZS5NaXhpbnMpKSksZS5NZXRob2RzJiZuKGUuTWV0aG9kcy5zcGxpdCgiLCIp
LGZ1bmN0aW9uKHQpe2VbdF09YX0pLGUuUHJvcGVydGllcyYmbihlLlByb3BlcnRpZXMuc3BsaXQo
IiwiKSxmdW5jdGlvbih0KXt2YXIgbj0iXyIrdDtlW3RdPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMs
cjtyZXR1cm4gZSE9PXI/KHRbbl09ZSx0KTp0W25dfX0pLGUuU3RhdGljcyYmbihlLlN0YXRpY3Ms
ZnVuY3Rpb24oZSxuKXt0W25dPWV9KSxlLkRlZmF1bHRzJiZjLkRlZmF1bHRzJiYoZS5EZWZhdWx0
cz1yKHt9LGMuRGVmYXVsdHMsZS5EZWZhdWx0cykpO2ZvcihkIGluIGUpZj1lW2RdLHVbZF09ImZ1
bmN0aW9uIj09dHlwZW9mIGYmJmNbZF0/cyhkLGYpOmY7cmV0dXJuIHQucHJvdG90eXBlPXUsdC5j
b25zdHJ1Y3Rvcj10LHQuZXh0ZW5kPWksdH0sdH0pLHIoVyxbcF0sZnVuY3Rpb24oZSl7ZnVuY3Rp
b24gdChlKXtmdW5jdGlvbiB0KCl7cmV0dXJuITF9ZnVuY3Rpb24gbigpe3JldHVybiEwfWZ1bmN0
aW9uIHIocixpKXt2YXIgbyxhLHMsdTtpZihyPXIudG9Mb3dlckNhc2UoKSxpPWl8fHt9LGkudHlw
ZT1yLGkudGFyZ2V0fHwoaS50YXJnZXQ9bCksaS5wcmV2ZW50RGVmYXVsdHx8KGkucHJldmVudERl
ZmF1bHQ9ZnVuY3Rpb24oKXtpLmlzRGVmYXVsdFByZXZlbnRlZD1ufSxpLnN0b3BQcm9wYWdhdGlv
bj1mdW5jdGlvbigpe2kuaXNQcm9wYWdhdGlvblN0b3BwZWQ9bn0saS5zdG9wSW1tZWRpYXRlUHJv
cGFnYXRpb249ZnVuY3Rpb24oKXtpLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPW59LGku
aXNEZWZhdWx0UHJldmVudGVkPXQsaS5pc1Byb3BhZ2F0aW9uU3RvcHBlZD10LGkuaXNJbW1lZGlh
dGVQcm9wYWdhdGlvblN0b3BwZWQ9dCksZS5iZWZvcmVGaXJlJiZlLmJlZm9yZUZpcmUoaSksbz1j
W3JdKWZvcihhPTAscz1vLmxlbmd0aDtzPmE7YSsrKXtpZihvW2FdPXU9b1thXSxpLmlzSW1tZWRp
YXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpcmV0dXJuIGkuc3RvcFByb3BhZ2F0aW9uKCksaTtpZih1
LmNhbGwobCxpKT09PSExKXJldHVybiBpLnByZXZlbnREZWZhdWx0KCksaX1yZXR1cm4gaX1mdW5j
dGlvbiBpKGUsbixyKXt2YXIgaSxvLGE7aWYobj09PSExJiYobj10KSxuKWZvcihvPWUudG9Mb3dl
ckNhc2UoKS5zcGxpdCgiICIpLGE9by5sZW5ndGg7YS0tOyllPW9bYV0saT1jW2VdLGl8fChpPWNb
ZV09W10sdShlLCEwKSkscj9pLnVuc2hpZnQobik6aS5wdXNoKG4pO3JldHVybiBzfWZ1bmN0aW9u
IG8oZSx0KXt2YXIgbixyLGksbyxhO2lmKGUpZm9yKG89ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCIg
Iiksbj1vLmxlbmd0aDtuLS07KXtpZihlPW9bbl0scj1jW2VdLCFlKXtmb3IoaSBpbiBjKXUoaSwh
MSksZGVsZXRlIGNbaV07cmV0dXJuIHN9aWYocil7aWYodClmb3IoYT1yLmxlbmd0aDthLS07KXJb
YV09PT10JiZyLnNwbGljZShhLDEpO2Vsc2Ugci5sZW5ndGg9MDtyLmxlbmd0aHx8KHUoZSwhMSks
ZGVsZXRlIGNbZV0pfX1lbHNle2ZvcihlIGluIGMpdShlLCExKTtjPXt9fXJldHVybiBzfWZ1bmN0
aW9uIGEoZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLCEoIWNbZV18fDA9PT1jW2VdLmxlbmd0
aCl9dmFyIHM9dGhpcyxsLGM9e30sdTtlPWV8fHt9LGw9ZS5zY29wZXx8cyx1PWUudG9nZ2xlRXZl
bnR8fHQscy5maXJlPXIscy5vbj1pLHMub2ZmPW8scy5oYXM9YX12YXIgbj1lLm1ha2VNYXAoImZv
Y3VzIGJsdXIgZm9jdXNpbiBmb2N1c291dCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1
cCBtb3VzZW1vdmUgbW91c2VvdmVyIGJlZm9yZXBhc3RlIHBhc3RlIGN1dCBjb3B5IHNlbGVjdGlv
bmNoYW5nZSBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgd2hlZWwga2V5ZG93biBrZXlw
cmVzcyBrZXl1cCBpbnB1dCBjb250ZXh0bWVudSBkcmFnc3RhcnQgZHJhZ2VuZCBkcmFnb3ZlciBk
cmFnZ2VzdHVyZSBkcmFnZHJvcCBkcm9wIGRyYWcgc3VibWl0IiwiICIpO3JldHVybiB0LmlzTmF0
aXZlPWZ1bmN0aW9uKGUpe3JldHVybiEhbltlLnRvTG93ZXJDYXNlKCldfSx0fSkscihWLFt6XSxm
dW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe2Zvcih2YXIgdD1bXSxuPWUubGVuZ3RoLHI7bi0tOyly
PWVbbl0sci5fX2NoZWNrZWR8fCh0LnB1c2gociksci5fX2NoZWNrZWQ9MSk7Zm9yKG49dC5sZW5n
dGg7bi0tOylkZWxldGUgdFtuXS5fX2NoZWNrZWQ7cmV0dXJuIHR9dmFyIG49L14oW1x3XFwqXSsp
Pyg/OiMoW1x3XFxdKykpPyg/OlwuKFtcd1xcXC5dKykpPyg/OlxbXEA/KFtcd1xcXSspKFtcXlwk
XCohfl0/PSkoW1x3XFxdKylcXSk/KD86XDooLispKT8vaSxyPS8oKD86XCgoPzpcKFteKCldK1wp
fFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykr
XF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2cs
aT0vXlxzKnxccyokL2csbyxhPWUuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQo
ZSl7cmV0dXJuIGU/KGU9ZS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKHQpe3JldHVybiIqIj09PWV8
fHQudHlwZT09PWV9KTp2b2lkIDB9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZT9mdW5jdGlvbih0KXty
ZXR1cm4gdC5fbmFtZT09PWV9OnZvaWQgMH1mdW5jdGlvbiBhKGUpe3JldHVybiBlPyhlPWUuc3Bs
aXQoIi4iKSxmdW5jdGlvbih0KXtmb3IodmFyIG49ZS5sZW5ndGg7bi0tOylpZighdC5oYXNDbGFz
cyhlW25dKSlyZXR1cm4hMTtyZXR1cm4hMH0pOnZvaWQgMH1mdW5jdGlvbiBzKGUsdCxuKXtyZXR1
cm4gZT9mdW5jdGlvbihyKXt2YXIgaT1yW2VdP3JbZV0oKToiIjtyZXR1cm4gdD8iPSI9PT10P2k9
PT1uOiIqPSI9PT10P2kuaW5kZXhPZihuKT49MDoifj0iPT09dD8oIiAiK2krIiAiKS5pbmRleE9m
KCIgIituKyIgIik+PTA6IiE9Ij09PXQ/aSE9bjoiXj0iPT09dD8wPT09aS5pbmRleE9mKG4pOiIk
PSI9PT10P2kuc3Vic3RyKGkubGVuZ3RoLW4ubGVuZ3RoKT09PW46ITE6ISFufTp2b2lkIDB9ZnVu
Y3Rpb24gbChlKXt2YXIgdDtyZXR1cm4gZT8oZT0vKD86bm90XCgoLispXCkpfCguKykvaS5leGVj
KGUpLGVbMV0/KHQ9dShlWzFdLFtdKSxmdW5jdGlvbihlKXtyZXR1cm4hZChlLHQpfSk6KGU9ZVsy
XSxmdW5jdGlvbih0LG4scil7cmV0dXJuImZpcnN0Ij09PWU/MD09PW46Imxhc3QiPT09ZT9uPT09
ci0xOiJldmVuIj09PWU/biUyPT09MDoib2RkIj09PWU/biUyPT09MTp0W2VdP3RbZV0oKTohMX0p
KTp2b2lkIDB9ZnVuY3Rpb24gYyhlLHIsYyl7ZnVuY3Rpb24gdShlKXtlJiZyLnB1c2goZSl9dmFy
IGQ7cmV0dXJuIGQ9bi5leGVjKGUucmVwbGFjZShpLCIiKSksdSh0KGRbMV0pKSx1KG8oZFsyXSkp
LHUoYShkWzNdKSksdShzKGRbNF0sZFs1XSxkWzZdKSksdShsKGRbN10pKSxyLnBzdWVkbz0hIWRb
N10sci5kaXJlY3Q9YyxyfWZ1bmN0aW9uIHUoZSx0KXt2YXIgbj1bXSxpLG8sYTtkbyBpZihyLmV4
ZWMoIiIpLG89ci5leGVjKGUpLG8mJihlPW9bM10sbi5wdXNoKG9bMV0pLG9bMl0pKXtpPW9bM107
YnJlYWt9d2hpbGUobyk7Zm9yKGkmJnUoaSx0KSxlPVtdLGE9MDthPG4ubGVuZ3RoO2ErKykiPiIh
PW5bYV0mJmUucHVzaChjKG5bYV0sW10sIj4iPT09blthLTFdKSk7cmV0dXJuIHQucHVzaChlKSx0
fXZhciBkPXRoaXMubWF0Y2g7dGhpcy5fc2VsZWN0b3JzPXUoZSxbXSl9LG1hdGNoOmZ1bmN0aW9u
KGUsdCl7dmFyIG4scixpLG8sYSxzLGwsYyx1LGQsZixwLGg7Zm9yKHQ9dHx8dGhpcy5fc2VsZWN0
b3JzLG49MCxyPXQubGVuZ3RoO3I+bjtuKyspe2ZvcihhPXRbbl0sbz1hLmxlbmd0aCxoPWUscD0w
LGk9by0xO2k+PTA7aS0tKWZvcihjPWFbaV07aDspe2lmKGMucHN1ZWRvKWZvcihmPWgucGFyZW50
KCkuaXRlbXMoKSx1PWQ9Zi5sZW5ndGg7dS0tJiZmW3VdIT09aDspO2ZvcihzPTAsbD1jLmxlbmd0
aDtsPnM7cysrKWlmKCFjW3NdKGgsdSxkKSl7cz1sKzE7YnJlYWt9aWYocz09PWwpe3ArKzticmVh
a31pZihpPT09by0xKWJyZWFrO2g9aC5wYXJlbnQoKX1pZihwPT09bylyZXR1cm4hMH1yZXR1cm4h
MX0sZmluZDpmdW5jdGlvbihlKXtmdW5jdGlvbiBuKGUsdCxpKXt2YXIgbyxhLHMsbCxjLHU9dFtp
XTtmb3Iobz0wLGE9ZS5sZW5ndGg7YT5vO28rKyl7Zm9yKGM9ZVtvXSxzPTAsbD11Lmxlbmd0aDts
PnM7cysrKWlmKCF1W3NdKGMsbyxhKSl7cz1sKzE7YnJlYWt9aWYocz09PWwpaT09dC5sZW5ndGgt
MT9yLnB1c2goYyk6Yy5pdGVtcyYmbihjLml0ZW1zKCksdCxpKzEpO2Vsc2UgaWYodS5kaXJlY3Qp
cmV0dXJuO2MuaXRlbXMmJm4oYy5pdGVtcygpLHQsaSl9fXZhciByPVtdLGkscyxsPXRoaXMuX3Nl
bGVjdG9ycztpZihlLml0ZW1zKXtmb3IoaT0wLHM9bC5sZW5ndGg7cz5pO2krKyluKGUuaXRlbXMo
KSxsW2ldLDApO3M+MSYmKHI9dChyKSl9cmV0dXJuIG98fChvPWEuQ29sbGVjdGlvbiksbmV3IG8o
cil9fSk7cmV0dXJuIGF9KSxyKFUsW3AsVix6XSxmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPUFy
cmF5LnByb3RvdHlwZS5wdXNoLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlO3JldHVybiBpPXtsZW5n
dGg6MCxpbml0OmZ1bmN0aW9uKGUpe2UmJnRoaXMuYWRkKGUpfSxhZGQ6ZnVuY3Rpb24odCl7dmFy
IG49dGhpcztyZXR1cm4gZS5pc0FycmF5KHQpP28uYXBwbHkobix0KTp0IGluc3RhbmNlb2Ygcj9u
LmFkZCh0LnRvQXJyYXkoKSk6by5jYWxsKG4sdCksbn0sc2V0OmZ1bmN0aW9uKGUpe3ZhciB0PXRo
aXMsbj10Lmxlbmd0aCxyO2Zvcih0Lmxlbmd0aD0wLHQuYWRkKGUpLHI9dC5sZW5ndGg7bj5yO3Ir
KylkZWxldGUgdFtyXTtyZXR1cm4gdH0sZmlsdGVyOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMsaSxv
LGE9W10scyxsO2Zvcigic3RyaW5nIj09dHlwZW9mIGU/KGU9bmV3IHQoZSksbD1mdW5jdGlvbih0
KXtyZXR1cm4gZS5tYXRjaCh0KX0pOmw9ZSxpPTAsbz1uLmxlbmd0aDtvPmk7aSsrKXM9bltpXSxs
KHMpJiZhLnB1c2gocyk7cmV0dXJuIG5ldyByKGEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiBu
ZXcgcihhLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGVxOmZ1bmN0aW9uKGUpe3JldHVybi0xPT09
ZT90aGlzLnNsaWNlKGUpOnRoaXMuc2xpY2UoZSwrZSsxKX0sZWFjaDpmdW5jdGlvbih0KXtyZXR1
cm4gZS5lYWNoKHRoaXMsdCksdGhpc30sdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBlLnRvQXJy
YXkodGhpcyl9LGluZGV4T2Y6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMsbj10Lmxlbmd0aDtu
LS0mJnRbbl0hPT1lOyk7cmV0dXJuIG59LHJldmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIo
ZS50b0FycmF5KHRoaXMpLnJldmVyc2UoKSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiB0
aGlzWzBdP3RoaXNbMF0uaGFzQ2xhc3MoZSk6ITF9LHByb3A6ZnVuY3Rpb24oZSx0KXt2YXIgbj10
aGlzLHIsaTtyZXR1cm4gdCE9PXI/KG4uZWFjaChmdW5jdGlvbihuKXtuW2VdJiZuW2VdKHQpfSks
bik6KGk9blswXSxpJiZpW2VdP2lbZV0oKTp2b2lkIDApfSxleGVjOmZ1bmN0aW9uKHQpe3ZhciBu
PXRoaXMscj1lLnRvQXJyYXkoYXJndW1lbnRzKS5zbGljZSgxKTtyZXR1cm4gbi5lYWNoKGZ1bmN0
aW9uKGUpe2VbdF0mJmVbdF0uYXBwbHkoZSxyKX0pLG59LHJlbW92ZTpmdW5jdGlvbigpe2Zvcih2
YXIgZT10aGlzLmxlbmd0aDtlLS07KXRoaXNbZV0ucmVtb3ZlKCk7cmV0dXJuIHRoaXN9fSxlLmVh
Y2goImZpcmUgb24gb2ZmIHNob3cgaGlkZSBhZGRDbGFzcyByZW1vdmVDbGFzcyBhcHBlbmQgcHJl
cGVuZCBiZWZvcmUgYWZ0ZXIgcmVmbG93Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKHQpe2lbdF09ZnVu
Y3Rpb24oKXt2YXIgbj1lLnRvQXJyYXkoYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0
aW9uKGUpe3QgaW4gZSYmZVt0XS5hcHBseShlLG4pfSksdGhpc319KSxlLmVhY2goInRleHQgbmFt
ZSBkaXNhYmxlZCBhY3RpdmUgc2VsZWN0ZWQgY2hlY2tlZCB2aXNpYmxlIHBhcmVudCB2YWx1ZSBk
YXRhIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe2lbZV09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMu
cHJvcChlLHQpfX0pLHI9bi5leHRlbmQoaSksdC5Db2xsZWN0aW9uPXIscn0pLHIocSxbcCx5XSxm
dW5jdGlvbihlLHQpe3JldHVybntpZDpmdW5jdGlvbigpe3JldHVybiB0LkRPTS51bmlxdWVJZCgp
fSxjcmVhdGVGcmFnbWVudDpmdW5jdGlvbihlKXtyZXR1cm4gdC5ET00uY3JlYXRlRnJhZ21lbnQo
ZSl9LGdldFdpbmRvd1NpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdC5ET00uZ2V0Vmlld1BvcnQoKX0s
Z2V0U2l6ZTpmdW5jdGlvbihlKXt2YXIgdCxuO2lmKGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2
YXIgcj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Q9TWF0aC5tYXgoci53aWR0aHx8ci5yaWdo
dC1yLmxlZnQsZS5vZmZzZXRXaWR0aCksbj1NYXRoLm1heChyLmhlaWdodHx8ci5ib3R0b20tci5i
b3R0b20sZS5vZmZzZXRIZWlnaHQpfWVsc2UgdD1lLm9mZnNldFdpZHRoLG49ZS5vZmZzZXRIZWln
aHQ7cmV0dXJue3dpZHRoOnQsaGVpZ2h0Om59fSxnZXRQb3M6ZnVuY3Rpb24oZSxuKXtyZXR1cm4g
dC5ET00uZ2V0UG9zKGUsbil9LGdldFZpZXdQb3J0OmZ1bmN0aW9uKGUpe3JldHVybiB0LkRPTS5n
ZXRWaWV3UG9ydChlKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlKX0sYWRkQ2xhc3M6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5ET00uYWRkQ2xhc3MoZSxu
KX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5ET00ucmVtb3ZlQ2xhc3MoZSxu
KX0saGFzQ2xhc3M6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5ET00uaGFzQ2xhc3MoZSxuKX0sdG9n
Z2xlQ2xhc3M6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0LkRPTS50b2dnbGVDbGFzcyhlLG4scil9
LGNzczpmdW5jdGlvbihlLG4scil7cmV0dXJuIHQuRE9NLnNldFN0eWxlKGUsbixyKX0sb246ZnVu
Y3Rpb24oZSxuLHIsaSl7cmV0dXJuIHQuRE9NLmJpbmQoZSxuLHIsaSl9LG9mZjpmdW5jdGlvbihl
LG4scil7cmV0dXJuIHQuRE9NLnVuYmluZChlLG4scil9LGZpcmU6ZnVuY3Rpb24oZSxuLHIpe3Jl
dHVybiB0LkRPTS5maXJlKGUsbixyKX0saW5uZXJIdG1sOmZ1bmN0aW9uKGUsbil7dC5ET00uc2V0
SFRNTChlLG4pfX19KSxyKCQsW3oscCxXLFUscV0sZnVuY3Rpb24oZSx0LG4scixpKXtmdW5jdGlv
biBvKGUpe3JldHVybiBlLl9ldmVudERpc3BhdGNoZXJ8fChlLl9ldmVudERpc3BhdGNoZXI9bmV3
IG4oe3Njb3BlOmUsdG9nZ2xlRXZlbnQ6ZnVuY3Rpb24odCxyKXtyJiZuLmlzTmF0aXZlKHQpJiYo
ZS5fbmF0aXZlRXZlbnRzfHwoZS5fbmF0aXZlRXZlbnRzPXt9KSxlLl9uYXRpdmVFdmVudHNbdF09
ITAsZS5fcmVuZGVyZWQmJmUuYmluZFBlbmRpbmdFdmVudHMoKSl9fSkpLGUuX2V2ZW50RGlzcGF0
Y2hlcn12YXIgYT17fSxzPSJvbm1vdXNld2hlZWwiaW4gZG9jdW1lbnQsbD0hMSxjPSJtY2UtIix1
PWUuZXh0ZW5kKHtTdGF0aWNzOntlbGVtZW50SWRDYWNoZTphLGNsYXNzUHJlZml4OmN9LGlzUnRs
OmZ1bmN0aW9uKCl7cmV0dXJuIHUucnRsfSxjbGFzc1ByZWZpeDpjLGluaXQ6ZnVuY3Rpb24oZSl7
dmFyIG49dGhpcyxyLG87aWYobi5zZXR0aW5ncz1lPXQuZXh0ZW5kKHt9LG4uRGVmYXVsdHMsZSks
bi5faWQ9ZS5pZHx8aS5pZCgpLG4uX3RleHQ9bi5fbmFtZT0iIixuLl93aWR0aD1uLl9oZWlnaHQ9
MCxuLl9hcmlhPXtyb2xlOmUucm9sZX0scj1lLmNsYXNzZXMpZm9yKHI9ci5zcGxpdCgiICIpLHIu
bWFwPXt9LG89ci5sZW5ndGg7by0tOylyLm1hcFtyW29dXT0hMDtuLl9jbGFzc2VzPXJ8fFtdLG4u
dmlzaWJsZSghMCksdC5lYWNoKCJ0aXRsZSB0ZXh0IHdpZHRoIGhlaWdodCBuYW1lIGNsYXNzZXMg
dmlzaWJsZSBkaXNhYmxlZCBhY3RpdmUgdmFsdWUiLnNwbGl0KCIgIiksZnVuY3Rpb24odCl7dmFy
IHI9ZVt0XSxpO3IhPT1pP25bdF0ocik6blsiXyIrdF09PT1pJiYoblsiXyIrdF09ITEpfSksbi5v
bigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIG4uZGlzYWJsZWQoKT8hMTp2b2lkIDB9KSxlLmNs
YXNzZXMmJnQuZWFjaChlLmNsYXNzZXMuc3BsaXQoIiAiKSxmdW5jdGlvbihlKXtuLmFkZENsYXNz
KGUpfSksbi5zZXR0aW5ncz1lLG4uX2JvcmRlckJveD1uLnBhcnNlQm94KGUuYm9yZGVyKSxuLl9w
YWRkaW5nQm94PW4ucGFyc2VCb3goZS5wYWRkaW5nKSxuLl9tYXJnaW5Cb3g9bi5wYXJzZUJveChl
Lm1hcmdpbiksZS5oaWRkZW4mJm4uaGlkZSgpfSxQcm9wZXJ0aWVzOiJwYXJlbnQsdGl0bGUsdGV4
dCx3aWR0aCxoZWlnaHQsZGlzYWJsZWQsYWN0aXZlLG5hbWUsdmFsdWUiLE1ldGhvZHM6InJlbmRl
ckh0bWwiLGdldENvbnRhaW5lckVsbTpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5ib2R5fSxn
ZXRQYXJlbnRDdHJsOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPXRoaXMuZ2V0Um9vdCgpLmNvbnRy
b2xJZExvb2t1cDtlJiZuJiYhKHQ9bltlLmlkXSk7KWU9ZS5wYXJlbnROb2RlO3JldHVybiB0fSxw
YXJzZUJveDpmdW5jdGlvbihlKXt2YXIgdCxuPTEwO2lmKGUpcmV0dXJuIm51bWJlciI9PXR5cGVv
ZiBlPyhlPWV8fDAse3RvcDplLGxlZnQ6ZSxib3R0b206ZSxyaWdodDplfSk6KGU9ZS5zcGxpdCgi
ICIpLHQ9ZS5sZW5ndGgsMT09PXQ/ZVsxXT1lWzJdPWVbM109ZVswXToyPT09dD8oZVsyXT1lWzBd
LGVbM109ZVsxXSk6Mz09PXQmJihlWzNdPWVbMV0pLHt0b3A6cGFyc2VJbnQoZVswXSxuKXx8MCxy
aWdodDpwYXJzZUludChlWzFdLG4pfHwwLGJvdHRvbTpwYXJzZUludChlWzJdLG4pfHwwLGxlZnQ6
cGFyc2VJbnQoZVszXSxuKXx8MH0pfSxib3JkZXJCb3g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5f
Ym9yZGVyQm94fSxwYWRkaW5nQm94OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhZGRpbmdCb3h9
LG1hcmdpbkJveDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXJnaW5Cb3h9LG1lYXN1cmVCb3g6
ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKHQpe3ZhciBuPWRvY3VtZW50LmRlZmF1bHRWaWV3O3Jl
dHVybiBuPyh0PXQucmVwbGFjZSgvW0EtWl0vZyxmdW5jdGlvbihlKXtyZXR1cm4iLSIrZX0pLG4u
Z2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCkpOmUuY3VycmVudFN0
eWxlW3RdfWZ1bmN0aW9uIHIoZSl7dmFyIHQ9cGFyc2VGbG9hdChuKGUpLDEwKTtyZXR1cm4gaXNO
YU4odCk/MDp0fXJldHVybnt0b3A6cih0KyJUb3BXaWR0aCIpLHJpZ2h0OnIodCsiUmlnaHRXaWR0
aCIpLGJvdHRvbTpyKHQrIkJvdHRvbVdpZHRoIiksbGVmdDpyKHQrIkxlZnRXaWR0aCIpfX0saW5p
dExheW91dFJlY3Q6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5zZXR0aW5ncyxuLHIsbz1lLmdl
dEVsKCksYSxzLGwsYyx1LGQsZixwO249ZS5fYm9yZGVyQm94PWUuX2JvcmRlckJveHx8ZS5tZWFz
dXJlQm94KG8sImJvcmRlciIpLGUuX3BhZGRpbmdCb3g9ZS5fcGFkZGluZ0JveHx8ZS5tZWFzdXJl
Qm94KG8sInBhZGRpbmciKSxlLl9tYXJnaW5Cb3g9ZS5fbWFyZ2luQm94fHxlLm1lYXN1cmVCb3go
bywibWFyZ2luIikscD1pLmdldFNpemUobyksZD10Lm1pbldpZHRoLGY9dC5taW5IZWlnaHQsbD1k
fHxwLndpZHRoLGM9Znx8cC5oZWlnaHQsYT10LndpZHRoLHM9dC5oZWlnaHQsdT10LmF1dG9SZXNp
emUsdT0idW5kZWZpbmVkIiE9dHlwZW9mIHU/dTohYSYmIXMsYT1hfHxsLHM9c3x8Yzt2YXIgaD1u
LmxlZnQrbi5yaWdodCxtPW4udG9wK24uYm90dG9tLGc9dC5tYXhXaWR0aHx8NjU1MzUsdj10Lm1h
eEhlaWdodHx8NjU1MzU7cmV0dXJuIGUuX2xheW91dFJlY3Q9cj17eDp0Lnh8fDAseTp0Lnl8fDAs
dzphLGg6cyxkZWx0YVc6aCxkZWx0YUg6bSxjb250ZW50VzphLWgsY29udGVudEg6cy1tLGlubmVy
VzphLWgsaW5uZXJIOnMtbSxzdGFydE1pbldpZHRoOmR8fDAsc3RhcnRNaW5IZWlnaHQ6Znx8MCxt
aW5XOk1hdGgubWluKGwsZyksbWluSDpNYXRoLm1pbihjLHYpLG1heFc6ZyxtYXhIOnYsYXV0b1Jl
c2l6ZTp1LHNjcm9sbFc6MH0sZS5fbGFzdExheW91dFJlY3Q9e30scn0sbGF5b3V0UmVjdDpmdW5j
dGlvbihlKXt2YXIgdD10aGlzLG49dC5fbGF5b3V0UmVjdCxyLGksbyxhLHMsbDtyZXR1cm4gbnx8
KG49dC5pbml0TGF5b3V0UmVjdCgpKSxlPyhvPW4uZGVsdGFXLGE9bi5kZWx0YUgsZS54IT09cyYm
KG4ueD1lLngpLGUueSE9PXMmJihuLnk9ZS55KSxlLm1pblchPT1zJiYobi5taW5XPWUubWluVyks
ZS5taW5IIT09cyYmKG4ubWluSD1lLm1pbkgpLGk9ZS53LGkhPT1zJiYoaT1pPG4ubWluVz9uLm1p
blc6aSxpPWk+bi5tYXhXP24ubWF4VzppLG4udz1pLG4uaW5uZXJXPWktbyksaT1lLmgsaSE9PXMm
JihpPWk8bi5taW5IP24ubWluSDppLGk9aT5uLm1heEg/bi5tYXhIOmksbi5oPWksbi5pbm5lckg9
aS1hKSxpPWUuaW5uZXJXLGkhPT1zJiYoaT1pPG4ubWluVy1vP24ubWluVy1vOmksaT1pPm4ubWF4
Vy1vP24ubWF4Vy1vOmksbi5pbm5lclc9aSxuLnc9aStvKSxpPWUuaW5uZXJILGkhPT1zJiYoaT1p
PG4ubWluSC1hP24ubWluSC1hOmksaT1pPm4ubWF4SC1hP24ubWF4SC1hOmksbi5pbm5lckg9aSxu
Lmg9aSthKSxlLmNvbnRlbnRXIT09cyYmKG4uY29udGVudFc9ZS5jb250ZW50VyksZS5jb250ZW50
SCE9PXMmJihuLmNvbnRlbnRIPWUuY29udGVudEgpLHI9dC5fbGFzdExheW91dFJlY3QsKHIueCE9
PW4ueHx8ci55IT09bi55fHxyLnchPT1uLnd8fHIuaCE9PW4uaCkmJihsPXUucmVwYWludENvbnRy
b2xzLGwmJmwubWFwJiYhbC5tYXBbdC5faWRdJiYobC5wdXNoKHQpLGwubWFwW3QuX2lkXT0hMCks
ci54PW4ueCxyLnk9bi55LHIudz1uLncsci5oPW4uaCksdCk6bn0scmVwYWludDpmdW5jdGlvbigp
e3ZhciBlPXRoaXMsdCxuLHIsaSxvPTAsYT0wLHMsbDtsPWRvY3VtZW50LmNyZWF0ZVJhbmdlP2Z1
bmN0aW9uKGUpe3JldHVybiBlfTpNYXRoLnJvdW5kLHQ9ZS5nZXRFbCgpLnN0eWxlLHI9ZS5fbGF5
b3V0UmVjdCxzPWUuX2xhc3RSZXBhaW50UmVjdHx8e30saT1lLl9ib3JkZXJCb3gsbz1pLmxlZnQr
aS5yaWdodCxhPWkudG9wK2kuYm90dG9tLHIueCE9PXMueCYmKHQubGVmdD1sKHIueCkrInB4Iixz
Lng9ci54KSxyLnkhPT1zLnkmJih0LnRvcD1sKHIueSkrInB4IixzLnk9ci55KSxyLnchPT1zLncm
Jih0LndpZHRoPWwoci53LW8pKyJweCIscy53PXIudyksci5oIT09cy5oJiYodC5oZWlnaHQ9bChy
LmgtYSkrInB4IixzLmg9ci5oKSxlLl9oYXNCb2R5JiZyLmlubmVyVyE9PXMuaW5uZXJXJiYobj1l
LmdldEVsKCJib2R5Iikuc3R5bGUsbi53aWR0aD1sKHIuaW5uZXJXKSsicHgiLHMuaW5uZXJXPXIu
aW5uZXJXKSxlLl9oYXNCb2R5JiZyLmlubmVySCE9PXMuaW5uZXJIJiYobj1ufHxlLmdldEVsKCJi
b2R5Iikuc3R5bGUsbi5oZWlnaHQ9bChyLmlubmVySCkrInB4IixzLmlubmVySD1yLmlubmVySCks
ZS5fbGFzdFJlcGFpbnRSZWN0PXMsZS5maXJlKCJyZXBhaW50Iix7fSwhMSl9LG9uOmZ1bmN0aW9u
KGUsdCl7ZnVuY3Rpb24gbihlKXt2YXIgdCxuO3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9lOmZ1
bmN0aW9uKGkpe3JldHVybiB0fHxyLnBhcmVudHNBbmRTZWxmKCkuZWFjaChmdW5jdGlvbihyKXt2
YXIgaT1yLnNldHRpbmdzLmNhbGxiYWNrcztyZXR1cm4gaSYmKHQ9aVtlXSk/KG49ciwhMSk6dm9p
ZCAwfSksdC5jYWxsKG4saSl9fXZhciByPXRoaXM7cmV0dXJuIG8ocikub24oZSxuKHQpKSxyfSxv
ZmY6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyh0aGlzKS5vZmYoZSx0KSx0aGlzfSxmaXJlOmZ1bmN0
aW9uKGUsdCxuKXt2YXIgcj10aGlzO2lmKHQ9dHx8e30sdC5jb250cm9sfHwodC5jb250cm9sPXIp
LHQ9byhyKS5maXJlKGUsdCksbiE9PSExJiZyLnBhcmVudClmb3IodmFyIGk9ci5wYXJlbnQoKTtp
JiYhdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpOylpLmZpcmUoZSx0LCExKSxpPWkucGFyZW50KCk7
cmV0dXJuIHR9LGhhc0V2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKGUpe3JldHVybiBvKHRoaXMpLmhh
cyhlKX0scGFyZW50czpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG4saT1uZXcgcjtmb3Iobj10LnBh
cmVudCgpO247bj1uLnBhcmVudCgpKWkuYWRkKG4pO3JldHVybiBlJiYoaT1pLmZpbHRlcihlKSks
aX0scGFyZW50c0FuZFNlbGY6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyByKHRoaXMpLmFkZCh0aGlz
LnBhcmVudHMoZSkpfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYXJlbnQoKS5pdGVtcygp
O3JldHVybiBlW2UuaW5kZXhPZih0aGlzKSsxXX0scHJldjpmdW5jdGlvbigpe3ZhciBlPXRoaXMu
cGFyZW50KCkuaXRlbXMoKTtyZXR1cm4gZVtlLmluZGV4T2YodGhpcyktMV19LGZpbmRDb21tb25B
bmNlc3RvcjpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbjtlOyl7Zm9yKG49dDtuJiZlIT1uOyluPW4u
cGFyZW50KCk7aWYoZT09bilicmVhaztlPWUucGFyZW50KCl9cmV0dXJuIGV9LGhhc0NsYXNzOmZ1
bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fY2xhc3Nlc1t0fHwiY29udHJvbCJdO3JldHVybiBlPXRo
aXMuY2xhc3NQcmVmaXgrZSxuJiYhIW4ubWFwW2VdfSxhZGRDbGFzczpmdW5jdGlvbihlLHQpe3Zh
ciBuPXRoaXMscixpO3JldHVybiBlPXRoaXMuY2xhc3NQcmVmaXgrZSxyPW4uX2NsYXNzZXNbdHx8
ImNvbnRyb2wiXSxyfHwocj1bXSxyLm1hcD17fSxuLl9jbGFzc2VzW3R8fCJjb250cm9sIl09ciks
ci5tYXBbZV18fChyLm1hcFtlXT1lLHIucHVzaChlKSxuLl9yZW5kZXJlZCYmKGk9bi5nZXRFbCh0
KSxpJiYoaS5jbGFzc05hbWU9ci5qb2luKCIgIikpKSksbn0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24o
ZSx0KXt2YXIgbj10aGlzLHIsaSxvO2lmKGU9dGhpcy5jbGFzc1ByZWZpeCtlLHI9bi5fY2xhc3Nl
c1t0fHwiY29udHJvbCJdLHImJnIubWFwW2VdKWZvcihkZWxldGUgci5tYXBbZV0saT1yLmxlbmd0
aDtpLS07KXJbaV09PT1lJiZyLnNwbGljZShpLDEpO3JldHVybiBuLl9yZW5kZXJlZCYmKG89bi5n
ZXRFbCh0KSxvJiYoby5jbGFzc05hbWU9ci5qb2luKCIgIikpKSxufSx0b2dnbGVDbGFzczpmdW5j
dGlvbihlLHQsbil7dmFyIHI9dGhpcztyZXR1cm4gdD9yLmFkZENsYXNzKGUsbik6ci5yZW1vdmVD
bGFzcyhlLG4pLHJ9LGNsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fY2xhc3Nlc1tlfHwi
Y29udHJvbCJdO3JldHVybiB0P3Quam9pbigiICIpOiIifSxpbm5lckh0bWw6ZnVuY3Rpb24oZSl7
cmV0dXJuIGkuaW5uZXJIdG1sKHRoaXMuZ2V0RWwoKSxlKSx0aGlzfSxnZXRFbDpmdW5jdGlvbihl
LHQpe3ZhciBuLHI9ZT90aGlzLl9pZCsiLSIrZTp0aGlzLl9pZDtyZXR1cm4gbj1hW3JdPSh0PT09
ITA/bnVsbDphW3JdKXx8aS5nZXQocil9LHZpc2libGU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxu
O3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZT8odC5fdmlzaWJsZSE9PWUmJih0Ll9yZW5kZXJl
ZCYmKHQuZ2V0RWwoKS5zdHlsZS5kaXNwbGF5PWU/IiI6Im5vbmUiKSx0Ll92aXNpYmxlPWUsbj10
LnBhcmVudCgpLG4mJihuLl9sYXN0UmVjdD1udWxsKSx0LmZpcmUoZT8ic2hvdyI6ImhpZGUiKSks
dCk6dC5fdmlzaWJsZX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZpc2libGUoITApfSxo
aWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlzaWJsZSghMSl9LGZvY3VzOmZ1bmN0aW9uKCl7
dHJ5e3RoaXMuZ2V0RWwoKS5mb2N1cygpfWNhdGNoKGUpe31yZXR1cm4gdGhpc30sYmx1cjpmdW5j
dGlvbigpe3JldHVybiB0aGlzLmdldEVsKCkuYmx1cigpLHRoaXN9LGFyaWE6ZnVuY3Rpb24oZSx0
KXt2YXIgbj10aGlzLHI9bi5nZXRFbChuLmFyaWFUYXJnZXQpO3JldHVybiJ1bmRlZmluZWQiPT10
eXBlb2YgdD9uLl9hcmlhW2VdOihuLl9hcmlhW2VdPXQsbi5fcmVuZGVyZWQmJnIuc2V0QXR0cmli
dXRlKCJyb2xlIj09ZT9lOiJhcmlhLSIrZSx0KSxuKX0sZW5jb2RlOmZ1bmN0aW9uKGUsdCl7cmV0
dXJuIHQhPT0hMSYmKGU9dGhpcy50cmFuc2xhdGUoZSkpLChlfHwiIikucmVwbGFjZSgvWyY8PiJd
L2csZnVuY3Rpb24oZSl7cmV0dXJuIiYjIitlLmNoYXJDb2RlQXQoMCkrIjsifSl9LHRyYW5zbGF0
ZTpmdW5jdGlvbihlKXtyZXR1cm4gdS50cmFuc2xhdGU/dS50cmFuc2xhdGUoZSk6ZX0sYmVmb3Jl
OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10LnBhcmVudCgpO3JldHVybiBuJiZuLmluc2VydChl
LG4uaXRlbXMoKS5pbmRleE9mKHQpLCEwKSx0fSxhZnRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlz
LG49dC5wYXJlbnQoKTtyZXR1cm4gbiYmbi5pbnNlcnQoZSxuLml0ZW1zKCkuaW5kZXhPZih0KSks
dH0scmVtb3ZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuZ2V0RWwoKSxuPWUucGFyZW50KCks
cixvO2lmKGUuaXRlbXMpe3ZhciBzPWUuaXRlbXMoKS50b0FycmF5KCk7Zm9yKG89cy5sZW5ndGg7
by0tOylzW29dLnJlbW92ZSgpfW4mJm4uaXRlbXMmJihyPVtdLG4uaXRlbXMoKS5lYWNoKGZ1bmN0
aW9uKHQpe3QhPT1lJiZyLnB1c2godCl9KSxuLml0ZW1zKCkuc2V0KHIpLG4uX2xhc3RSZWN0PW51
bGwpLGUuX2V2ZW50c1Jvb3QmJmUuX2V2ZW50c1Jvb3Q9PWUmJmkub2ZmKHQpO3ZhciBsPWUuZ2V0
Um9vdCgpLmNvbnRyb2xJZExvb2t1cDtpZihsJiZkZWxldGUgbFtlLl9pZF0sZGVsZXRlIGFbZS5f
aWRdLHQmJnQucGFyZW50Tm9kZSl7dmFyIGM9dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpO2Zv
cihvPWMubGVuZ3RoO28tLTspZGVsZXRlIGFbY1tvXS5pZF07dC5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKHQpfXJldHVybiBlLl9yZW5kZXJlZD0hMSxlfSxyZW5kZXJCZWZvcmU6ZnVuY3Rpb24oZSl7
dmFyIHQ9dGhpcztyZXR1cm4gZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLmNyZWF0ZUZyYWdt
ZW50KHQucmVuZGVySHRtbCgpKSxlKSx0LnBvc3RSZW5kZXIoKSx0fSxyZW5kZXJUbzpmdW5jdGlv
bihlKXt2YXIgdD10aGlzO3JldHVybiBlPWV8fHQuZ2V0Q29udGFpbmVyRWxtKCksZS5hcHBlbmRD
aGlsZChpLmNyZWF0ZUZyYWdtZW50KHQucmVuZGVySHRtbCgpKSksdC5wb3N0UmVuZGVyKCksdH0s
cG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLnNldHRpbmdzLG4scixvLGEscztm
b3IoYSBpbiB0KTA9PT1hLmluZGV4T2YoIm9uIikmJmUub24oYS5zdWJzdHIoMiksdFthXSk7aWYo
ZS5fZXZlbnRzUm9vdCl7Zm9yKG89ZS5wYXJlbnQoKTshcyYmbztvPW8ucGFyZW50KCkpcz1vLl9l
dmVudHNSb290O2lmKHMpZm9yKGEgaW4gcy5fbmF0aXZlRXZlbnRzKWUuX25hdGl2ZUV2ZW50c1th
XT0hMH1lLmJpbmRQZW5kaW5nRXZlbnRzKCksdC5zdHlsZSYmKG49ZS5nZXRFbCgpLG4mJihuLnNl
dEF0dHJpYnV0ZSgic3R5bGUiLHQuc3R5bGUpLG4uc3R5bGUuY3NzVGV4dD10LnN0eWxlKSksZS5f
dmlzaWJsZXx8aS5jc3MoZS5nZXRFbCgpLCJkaXNwbGF5Iiwibm9uZSIpLGUuc2V0dGluZ3MuYm9y
ZGVyJiYocj1lLmJvcmRlckJveCgpLGkuY3NzKGUuZ2V0RWwoKSx7ImJvcmRlci10b3Atd2lkdGgi
OnIudG9wLCJib3JkZXItcmlnaHQtd2lkdGgiOnIucmlnaHQsImJvcmRlci1ib3R0b20td2lkdGgi
OnIuYm90dG9tLCJib3JkZXItbGVmdC13aWR0aCI6ci5sZWZ0fSkpO3ZhciBsPWUuZ2V0Um9vdCgp
O2wuY29udHJvbElkTG9va3VwfHwobC5jb250cm9sSWRMb29rdXA9e30pLGwuY29udHJvbElkTG9v
a3VwW2UuX2lkXT1lO2Zvcih2YXIgYyBpbiBlLl9hcmlhKWUuYXJpYShjLGUuX2FyaWFbY10pO2Uu
ZmlyZSgicG9zdHJlbmRlciIse30sITEpfSxzY3JvbGxJbnRvVmlldzpmdW5jdGlvbihlKXtmdW5j
dGlvbiB0KGUsdCl7dmFyIG4scixpPWU7Zm9yKG49cj0wO2kmJmkhPXQmJmkubm9kZVR5cGU7KW4r
PWkub2Zmc2V0TGVmdHx8MCxyKz1pLm9mZnNldFRvcHx8MCxpPWkub2Zmc2V0UGFyZW50O3JldHVy
bnt4Om4seTpyfX12YXIgbj10aGlzLmdldEVsKCkscj1uLnBhcmVudE5vZGUsaSxvLGEscyxsLGMs
dT10KG4scik7cmV0dXJuIGk9dS54LG89dS55LGE9bi5vZmZzZXRXaWR0aCxzPW4ub2Zmc2V0SGVp
Z2h0LGw9ci5jbGllbnRXaWR0aCxjPXIuY2xpZW50SGVpZ2h0LCJlbmQiPT1lPyhpLT1sLWEsby09
Yy1zKToiY2VudGVyIj09ZSYmKGktPWwvMi1hLzIsby09Yy8yLXMvMiksci5zY3JvbGxMZWZ0PWks
ci5zY3JvbGxUb3A9byx0aGlzfSxiaW5kUGVuZGluZ0V2ZW50czpmdW5jdGlvbigpe2Z1bmN0aW9u
IGUoZSl7dmFyIHQ9by5nZXRQYXJlbnRDdHJsKGUudGFyZ2V0KTt0JiZ0LmZpcmUoZS50eXBlLGUp
fWZ1bmN0aW9uIHQoKXt2YXIgZT1kLl9sYXN0SG92ZXJDdHJsO2UmJihlLmZpcmUoIm1vdXNlbGVh
dmUiLHt0YXJnZXQ6ZS5nZXRFbCgpfSksZS5wYXJlbnRzKCkuZWFjaChmdW5jdGlvbihlKXtlLmZp
cmUoIm1vdXNlbGVhdmUiLHt0YXJnZXQ6ZS5nZXRFbCgpfSl9KSxkLl9sYXN0SG92ZXJDdHJsPW51
bGwpfWZ1bmN0aW9uIG4oZSl7dmFyIHQ9by5nZXRQYXJlbnRDdHJsKGUudGFyZ2V0KSxuPWQuX2xh
c3RIb3ZlckN0cmwscj0wLGksYSxzO2lmKHQhPT1uKXtpZihkLl9sYXN0SG92ZXJDdHJsPXQsYT10
LnBhcmVudHMoKS50b0FycmF5KCkucmV2ZXJzZSgpLGEucHVzaCh0KSxuKXtmb3Iocz1uLnBhcmVu
dHMoKS50b0FycmF5KCkucmV2ZXJzZSgpLHMucHVzaChuKSxyPTA7cjxzLmxlbmd0aCYmYVtyXT09
PXNbcl07cisrKTtmb3IoaT1zLmxlbmd0aC0xO2k+PXI7aS0tKW49c1tpXSxuLmZpcmUoIm1vdXNl
bGVhdmUiLHt0YXJnZXQ6bi5nZXRFbCgpfSl9Zm9yKGk9cjtpPGEubGVuZ3RoO2krKyl0PWFbaV0s
dC5maXJlKCJtb3VzZWVudGVyIix7dGFyZ2V0OnQuZ2V0RWwoKX0pfX1mdW5jdGlvbiByKGUpe2Uu
cHJldmVudERlZmF1bHQoKSwibW91c2V3aGVlbCI9PWUudHlwZT8oZS5kZWx0YVk9LTEvNDAqZS53
aGVlbERlbHRhLGUud2hlZWxEZWx0YVgmJihlLmRlbHRhWD0tMS80MCplLndoZWVsRGVsdGFYKSk6
KGUuZGVsdGFYPTAsZS5kZWx0YVk9ZS5kZXRhaWwpLGU9by5maXJlKCJ3aGVlbCIsZSl9dmFyIG89
dGhpcyxhLGMsdSxkLGYscDtpZihvLl9yZW5kZXJlZD0hMCxmPW8uX25hdGl2ZUV2ZW50cyl7Zm9y
KHU9by5wYXJlbnRzKCkudG9BcnJheSgpLHUudW5zaGlmdChvKSxhPTAsYz11Lmxlbmd0aDshZCYm
Yz5hO2ErKylkPXVbYV0uX2V2ZW50c1Jvb3Q7Zm9yKGR8fChkPXVbdS5sZW5ndGgtMV18fG8pLG8u
X2V2ZW50c1Jvb3Q9ZCxjPWEsYT0wO2M+YTthKyspdVthXS5fZXZlbnRzUm9vdD1kO3ZhciBoPWQu
X2RlbGVnYXRlcztofHwoaD1kLl9kZWxlZ2F0ZXM9e30pO2ZvcihwIGluIGYpe2lmKCFmKXJldHVy
biExOyJ3aGVlbCIhPT1wfHxsPygibW91c2VlbnRlciI9PT1wfHwibW91c2VsZWF2ZSI9PT1wP2Qu
X2hhc01vdXNlRW50ZXJ8fChpLm9uKGQuZ2V0RWwoKSwibW91c2VsZWF2ZSIsdCksaS5vbihkLmdl
dEVsKCksIm1vdXNlb3ZlciIsbiksZC5faGFzTW91c2VFbnRlcj0xKTpoW3BdfHwoaS5vbihkLmdl
dEVsKCkscCxlKSxoW3BdPSEwKSxmW3BdPSExKTpzP2kub24oby5nZXRFbCgpLCJtb3VzZXdoZWVs
IixyKTppLm9uKG8uZ2V0RWwoKSwiRE9NTW91c2VTY3JvbGwiLHIpfX19LGdldFJvb3Q6ZnVuY3Rp
b24oKXtmb3IodmFyIGU9dGhpcyx0LG49W107ZTspe2lmKGUucm9vdENvbnRyb2wpe3Q9ZS5yb290
Q29udHJvbDticmVha31uLnB1c2goZSksdD1lLGU9ZS5wYXJlbnQoKX10fHwodD10aGlzKTtmb3Io
dmFyIHI9bi5sZW5ndGg7ci0tOyluW3JdLnJvb3RDb250cm9sPXQ7cmV0dXJuIHR9LHJlZmxvdzpm
dW5jdGlvbigpe3JldHVybiB0aGlzLnJlcGFpbnQoKSx0aGlzfX0pO3JldHVybiB1fSkscihqLFtd
LGZ1bmN0aW9uKCl7dmFyIGU9e30sdDtyZXR1cm57YWRkOmZ1bmN0aW9uKHQsbil7ZVt0LnRvTG93
ZXJDYXNlKCldPW59LGhhczpmdW5jdGlvbih0KXtyZXR1cm4hIWVbdC50b0xvd2VyQ2FzZSgpXX0s
Y3JlYXRlOmZ1bmN0aW9uKG4scil7dmFyIGksbyxhO2lmKCF0KXthPXRpbnltY2UudWk7Zm9yKG8g
aW4gYSllW28udG9Mb3dlckNhc2UoKV09YVtvXTt0PSEwfWlmKCJzdHJpbmciPT10eXBlb2Ygbj8o
cj1yfHx7fSxyLnR5cGU9bik6KHI9bixuPXIudHlwZSksbj1uLnRvTG93ZXJDYXNlKCksaT1lW25d
LCFpKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgY29udHJvbCBieSB0eXBlOiAiK24p
O3JldHVybiBpPW5ldyBpKHIpLGkudHlwZT1uLGl9fX0pLHIoSyxbXSxmdW5jdGlvbigpe3JldHVy
biBmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe3JldHVybiBlPWV8fGIsZSYmZS5nZXRBdHRyaWJ1
dGUoInJvbGUiKX1mdW5jdGlvbiBuKGUpe2Zvcih2YXIgbixyPWV8fGI7cj1yLnBhcmVudE5vZGU7
KWlmKG49dChyKSlyZXR1cm4gbn1mdW5jdGlvbiByKGUpe3ZhciB0PWI7cmV0dXJuIHQ/dC5nZXRB
dHRyaWJ1dGUoImFyaWEtIitlKTp2b2lkIDB9ZnVuY3Rpb24gaShlKXt2YXIgdD1lLnRhZ05hbWUu
dG9VcHBlckNhc2UoKTtyZXR1cm4iSU5QVVQiPT10fHwiVEVYVEFSRUEiPT10fWZ1bmN0aW9uIG8o
ZSl7cmV0dXJuIGkoZSkmJiFlLmhpZGRlbj8hMDovXihidXR0b258bWVudWl0ZW18Y2hlY2tib3h8
dGFifG1lbnVpdGVtY2hlY2tib3h8b3B0aW9ufGdyaWRjZWxsKSQvLnRlc3QodChlKSk/ITA6ITF9
ZnVuY3Rpb24gYShlKXtmdW5jdGlvbiB0KGUpe2lmKDE9PWUubm9kZVR5cGUmJiJub25lIiE9ZS5z
dHlsZS5kaXNwbGF5KXtvKGUpJiZuLnB1c2goZSk7Zm9yKHZhciByPTA7cjxlLmNoaWxkTm9kZXMu
bGVuZ3RoO3IrKyl0KGUuY2hpbGROb2Rlc1tyXSl9fXZhciBuPVtdO3JldHVybiB0KGV8fHkuZ2V0
RWwoKSksbn1mdW5jdGlvbiBzKGUpe3ZhciB0LG47ZT1lfHxDLG49ZS5wYXJlbnRzKCkudG9BcnJh
eSgpLG4udW5zaGlmdChlKTtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoJiYodD1uW3JdLCF0LnNldHRp
bmdzLmFyaWFSb290KTtyKyspO3JldHVybiB0fWZ1bmN0aW9uIGwoZSl7dmFyIHQ9cyhlKSxuPWEo
dC5nZXRFbCgpKTt0LnNldHRpbmdzLmFyaWFSZW1lbWJlciYmImxhc3RBcmlhSW5kZXgiaW4gdD9j
KHQubGFzdEFyaWFJbmRleCxuKTpjKDAsbil9ZnVuY3Rpb24gYyhlLHQpe3JldHVybiAwPmU/ZT10
Lmxlbmd0aC0xOmU+PXQubGVuZ3RoJiYoZT0wKSx0W2VdJiZ0W2VdLmZvY3VzKCksZX1mdW5jdGlv
biB1KGUsdCl7dmFyIG49LTEscj1zKCk7dD10fHxhKHIuZ2V0RWwoKSk7Zm9yKHZhciBpPTA7aTx0
Lmxlbmd0aDtpKyspdFtpXT09PWImJihuPWkpO24rPWUsci5sYXN0QXJpYUluZGV4PWMobix0KX1m
dW5jdGlvbiBkKCl7dmFyIGU9bigpOyJ0YWJsaXN0Ij09ZT91KC0xLGEoYi5wYXJlbnROb2RlKSk6
Qy5wYXJlbnQoKS5zdWJtZW51P2coKTp1KC0xKX1mdW5jdGlvbiBmKCl7dmFyIGU9dCgpLGk9bigp
OyJ0YWJsaXN0Ij09aT91KDEsYShiLnBhcmVudE5vZGUpKToibWVudWl0ZW0iPT1lJiYibWVudSI9
PWkmJnIoImhhc3BvcHVwIik/digpOnUoMSl9ZnVuY3Rpb24gcCgpe3UoLTEpfWZ1bmN0aW9uIGgo
KXt2YXIgZT10KCksaT1uKCk7Im1lbnVpdGVtIj09ZSYmIm1lbnViYXIiPT1pP3YoKToiYnV0dG9u
Ij09ZSYmcigiaGFzcG9wdXAiKT92KHtrZXk6ImRvd24ifSk6dSgxKX1mdW5jdGlvbiBtKGUpe3Zh
ciB0PW4oKTtpZigidGFibGlzdCI9PXQpe3ZhciByPWEoQy5nZXRFbCgiYm9keSIpKVswXTtyJiZy
LmZvY3VzKCl9ZWxzZSB1KGUuc2hpZnRLZXk/LTE6MSl9ZnVuY3Rpb24gZygpe0MuZmlyZSgiY2Fu
Y2VsIil9ZnVuY3Rpb24gdihlKXtlPWV8fHt9LEMuZmlyZSgiY2xpY2siLHt0YXJnZXQ6Yixhcmlh
OmV9KX12YXIgeT1lLnJvb3QsYixDO3JldHVybiBiPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsQz15
LmdldFBhcmVudEN0cmwoYikseS5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChl
LHQpe2koYil8fHQoZSkhPT0hMSYmZS5wcmV2ZW50RGVmYXVsdCgpfWlmKCFlLmlzRGVmYXVsdFBy
ZXZlbnRlZCgpKXN3aXRjaChlLmtleUNvZGUpe2Nhc2UgMzc6dChlLGQpO2JyZWFrO2Nhc2UgMzk6
dChlLGYpO2JyZWFrO2Nhc2UgMzg6dChlLHApO2JyZWFrO2Nhc2UgNDA6dChlLGgpO2JyZWFrO2Nh
c2UgMjc6ZygpO2JyZWFrO2Nhc2UgMTQ6Y2FzZSAxMzpjYXNlIDMyOnQoZSx2KTticmVhaztjYXNl
IDk6bShlKSE9PSExJiZlLnByZXZlbnREZWZhdWx0KCl9fSkseS5vbigiZm9jdXNpbiIsZnVuY3Rp
b24oZSl7Yj1lLnRhcmdldCxDPWUuY29udHJvbH0pLHtmb2N1c0ZpcnN0Omx9fX0pLHIoRyxbJCxV
LFYsaixLLHAscV0sZnVuY3Rpb24oZSx0LG4scixpLG8sYSl7dmFyIHM9e307cmV0dXJuIGUuZXh0
ZW5kKHtsYXlvdXQ6IiIsaW5uZXJDbGFzczoiY29udGFpbmVyLWlubmVyIixpbml0OmZ1bmN0aW9u
KGUpe3ZhciBuPXRoaXM7bi5fc3VwZXIoZSksZT1uLnNldHRpbmdzLG4uX2ZpeGVkPWUuZml4ZWQs
bi5faXRlbXM9bmV3IHQsbi5pc1J0bCgpJiZuLmFkZENsYXNzKCJydGwiKSxuLmFkZENsYXNzKCJj
b250YWluZXIiKSxuLmFkZENsYXNzKCJjb250YWluZXItYm9keSIsImJvZHkiKSxlLmNvbnRhaW5l
ckNscyYmbi5hZGRDbGFzcyhlLmNvbnRhaW5lckNscyksbi5fbGF5b3V0PXIuY3JlYXRlKChlLmxh
eW91dHx8bi5sYXlvdXQpKyJsYXlvdXQiKSxuLnNldHRpbmdzLml0ZW1zJiZuLmFkZChuLnNldHRp
bmdzLml0ZW1zKSxuLl9oYXNCb2R5PSEwfSxpdGVtczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9p
dGVtc30sZmluZDpmdW5jdGlvbihlKXtyZXR1cm4gZT1zW2VdPXNbZV18fG5ldyBuKGUpLGUuZmlu
ZCh0aGlzKX0sYWRkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHQuaXRlbXMoKS5hZGQo
dC5jcmVhdGUoZSkpLnBhcmVudCh0KSx0fSxmb2N1czpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG4s
cixpO3JldHVybiBlJiYocj10LmtleWJvYXJkTmF2fHx0LnBhcmVudHMoKS5lcSgtMSlbMF0ua2V5
Ym9hcmROYXYpP3ZvaWQgci5mb2N1c0ZpcnN0KHQpOihpPXQuZmluZCgiKiIpLHQuc3RhdHVzYmFy
JiZpLmFkZCh0LnN0YXR1c2Jhci5pdGVtcygpKSxpLmVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUu
c2V0dGluZ3MuYXV0b2ZvY3VzPyhuPW51bGwsITEpOnZvaWQoZS5jYW5Gb2N1cyYmKG49bnx8ZSkp
fSksbiYmbi5mb2N1cygpLHQpfSxyZXBsYWNlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHI9dGhp
cy5pdGVtcygpLGk9ci5sZW5ndGg7aS0tOylpZihyW2ldPT09ZSl7cltpXT10O2JyZWFrfWk+PTAm
JihuPXQuZ2V0RWwoKSxuJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksbj1lLmdldEVsKCks
biYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pKSx0LnBhcmVudCh0aGlzKX0sY3JlYXRlOmZ1
bmN0aW9uKHQpe3ZhciBuPXRoaXMsaSxhPVtdO3JldHVybiBvLmlzQXJyYXkodCl8fCh0PVt0XSks
by5lYWNoKHQsZnVuY3Rpb24odCl7dCYmKHQgaW5zdGFuY2VvZiBlfHwoInN0cmluZyI9PXR5cGVv
ZiB0JiYodD17dHlwZTp0fSksaT1vLmV4dGVuZCh7fSxuLnNldHRpbmdzLmRlZmF1bHRzLHQpLHQu
dHlwZT1pLnR5cGU9aS50eXBlfHx0LnR5cGV8fG4uc2V0dGluZ3MuZGVmYXVsdFR5cGV8fChpLmRl
ZmF1bHRzP2kuZGVmYXVsdHMudHlwZTpudWxsKSx0PXIuY3JlYXRlKGkpKSxhLnB1c2godCkpfSks
YX0scmVuZGVyTmV3OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gZS5pdGVtcygpLmVhY2go
ZnVuY3Rpb24odCxuKXt2YXIgcixpO3QucGFyZW50KGUpLHQuX3JlbmRlcmVkfHwocj1lLmdldEVs
KCJib2R5IiksaT1hLmNyZWF0ZUZyYWdtZW50KHQucmVuZGVySHRtbCgpKSxyLmhhc0NoaWxkTm9k
ZXMoKSYmbjw9ci5jaGlsZE5vZGVzLmxlbmd0aC0xP3IuaW5zZXJ0QmVmb3JlKGksci5jaGlsZE5v
ZGVzW25dKTpyLmFwcGVuZENoaWxkKGkpLHQucG9zdFJlbmRlcigpKX0pLGUuX2xheW91dC5hcHBs
eUNsYXNzZXMoZSksZS5fbGFzdFJlY3Q9bnVsbCxlfSxhcHBlbmQ6ZnVuY3Rpb24oZSl7cmV0dXJu
IHRoaXMuYWRkKGUpLnJlbmRlck5ldygpfSxwcmVwZW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7
cmV0dXJuIHQuaXRlbXMoKS5zZXQodC5jcmVhdGUoZSkuY29uY2F0KHQuaXRlbXMoKS50b0FycmF5
KCkpKSx0LnJlbmRlck5ldygpfSxpbnNlcnQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMsaSxv
LGE7cmV0dXJuIGU9ci5jcmVhdGUoZSksaT1yLml0ZW1zKCksIW4mJnQ8aS5sZW5ndGgtMSYmKHQr
PTEpLHQ+PTAmJnQ8aS5sZW5ndGgmJihvPWkuc2xpY2UoMCx0KS50b0FycmF5KCksYT1pLnNsaWNl
KHQpLnRvQXJyYXkoKSxpLnNldChvLmNvbmNhdChlLGEpKSksci5yZW5kZXJOZXcoKX0sZnJvbUpT
T046ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztmb3IodmFyIG4gaW4gZSl0LmZpbmQoIiMiK24pLnZh
bHVlKGVbbl0pO3JldHVybiB0fSx0b0pTT046ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9e307cmV0
dXJuIGUuZmluZCgiKiIpLmVhY2goZnVuY3Rpb24oZSl7dmFyIG49ZS5uYW1lKCkscj1lLnZhbHVl
KCk7biYmInVuZGVmaW5lZCIhPXR5cGVvZiByJiYodFtuXT1yKX0pLHR9LHByZVJlbmRlcjpmdW5j
dGlvbigpe30scmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9sYXlvdXQsbj10
aGlzLnNldHRpbmdzLnJvbGU7cmV0dXJuIGUucHJlUmVuZGVyKCksdC5wcmVSZW5kZXIoZSksJzxk
aXYgaWQ9IicrZS5faWQrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyInKyhuPycgcm9sZT0iJyt0
aGlzLnNldHRpbmdzLnJvbGUrJyInOiIiKSsnPjxkaXYgaWQ9IicrZS5faWQrJy1ib2R5IiBjbGFz
cz0iJytlLmNsYXNzZXMoImJvZHkiKSsnIj4nKyhlLnNldHRpbmdzLmh0bWx8fCIiKSt0LnJlbmRl
ckh0bWwoZSkrIjwvZGl2PjwvZGl2PiJ9LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlz
LHQ7cmV0dXJuIGUuaXRlbXMoKS5leGVjKCJwb3N0UmVuZGVyIiksZS5fc3VwZXIoKSxlLl9sYXlv
dXQucG9zdFJlbmRlcihlKSxlLl9yZW5kZXJlZD0hMCxlLnNldHRpbmdzLnN0eWxlJiZhLmNzcyhl
LmdldEVsKCksZS5zZXR0aW5ncy5zdHlsZSksZS5zZXR0aW5ncy5ib3JkZXImJih0PWUuYm9yZGVy
Qm94KCksYS5jc3MoZS5nZXRFbCgpLHsiYm9yZGVyLXRvcC13aWR0aCI6dC50b3AsImJvcmRlci1y
aWdodC13aWR0aCI6dC5yaWdodCwiYm9yZGVyLWJvdHRvbS13aWR0aCI6dC5ib3R0b20sImJvcmRl
ci1sZWZ0LXdpZHRoIjp0LmxlZnR9KSksZS5wYXJlbnQoKXx8KGUua2V5Ym9hcmROYXY9bmV3IGko
e3Jvb3Q6ZX0pKSxlfSxpbml0TGF5b3V0UmVjdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9z
dXBlcigpO3JldHVybiBlLl9sYXlvdXQucmVjYWxjKGUpLHR9LHJlY2FsYzpmdW5jdGlvbigpe3Zh
ciBlPXRoaXMsdD1lLl9sYXlvdXRSZWN0LG49ZS5fbGFzdFJlY3Q7cmV0dXJuIG4mJm4udz09dC53
JiZuLmg9PXQuaD92b2lkIDA6KGUuX2xheW91dC5yZWNhbGMoZSksdD1lLmxheW91dFJlY3QoKSxl
Ll9sYXN0UmVjdD17eDp0LngseTp0Lnksdzp0LncsaDp0Lmh9LCEwKX0scmVmbG93OmZ1bmN0aW9u
KCl7dmFyIHQ7aWYodGhpcy52aXNpYmxlKCkpe2ZvcihlLnJlcGFpbnRDb250cm9scz1bXSxlLnJl
cGFpbnRDb250cm9scy5tYXA9e30sdGhpcy5yZWNhbGMoKSx0PWUucmVwYWludENvbnRyb2xzLmxl
bmd0aDt0LS07KWUucmVwYWludENvbnRyb2xzW3RdLnJlcGFpbnQoKTsiZmxvdyIhPT10aGlzLnNl
dHRpbmdzLmxheW91dCYmInN0YWNrIiE9PXRoaXMuc2V0dGluZ3MubGF5b3V0JiZ0aGlzLnJlcGFp
bnQoKSxlLnJlcGFpbnRDb250cm9scz1bXX1yZXR1cm4gdGhpc319KX0pLHIoWSxbcV0sZnVuY3Rp
b24oZSl7ZnVuY3Rpb24gdCgpe3ZhciBlPWRvY3VtZW50LHQsbixyLGksbyxhLHMsbCxjPU1hdGgu
bWF4O3JldHVybiB0PWUuZG9jdW1lbnRFbGVtZW50LG49ZS5ib2R5LHI9Yyh0LnNjcm9sbFdpZHRo
LG4uc2Nyb2xsV2lkdGgpLGk9Yyh0LmNsaWVudFdpZHRoLG4uY2xpZW50V2lkdGgpLG89Yyh0Lm9m
ZnNldFdpZHRoLG4ub2Zmc2V0V2lkdGgpLGE9Yyh0LnNjcm9sbEhlaWdodCxuLnNjcm9sbEhlaWdo
dCkscz1jKHQuY2xpZW50SGVpZ2h0LG4uY2xpZW50SGVpZ2h0KSxsPWModC5vZmZzZXRIZWlnaHQs
bi5vZmZzZXRIZWlnaHQpLHt3aWR0aDpvPnI/aTpyLGhlaWdodDpsPmE/czphfX1yZXR1cm4gZnVu
Y3Rpb24obixyKXtmdW5jdGlvbiBpKCl7cmV0dXJuIGEuZ2V0RWxlbWVudEJ5SWQoci5oYW5kbGV8
fG4pfXZhciBvLGE9ZG9jdW1lbnQscyxsLGMsdSxkLGY7cj1yfHx7fSxsPWZ1bmN0aW9uKG4pe3Zh
ciBsPXQoKSxwLGg7bi5wcmV2ZW50RGVmYXVsdCgpLHM9bi5idXR0b24scD1pKCksZD1uLnNjcmVl
blgsZj1uLnNjcmVlblksaD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZT93aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShwLG51bGwpLmdldFByb3BlcnR5VmFsdWUoImN1cnNvciIpOnAucnVudGltZVN0eWxl
LmN1cnNvcixvPWEuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jc3Mobyx7cG9zaXRpb246ImFic29s
dXRlIix0b3A6MCxsZWZ0OjAsd2lkdGg6bC53aWR0aCxoZWlnaHQ6bC5oZWlnaHQsekluZGV4OjIx
NDc0ODM2NDcsb3BhY2l0eToxZS00LGJhY2tncm91bmQ6InJlZCIsY3Vyc29yOmh9KSxhLmJvZHku
YXBwZW5kQ2hpbGQobyksZS5vbihhLCJtb3VzZW1vdmUiLHUpLGUub24oYSwibW91c2V1cCIsYyks
ci5zdGFydChuKX0sdT1mdW5jdGlvbihlKXtyZXR1cm4gZS5idXR0b24hPT1zP2MoZSk6KGUuZGVs
dGFYPWUuc2NyZWVuWC1kLGUuZGVsdGFZPWUuc2NyZWVuWS1mLGUucHJldmVudERlZmF1bHQoKSx2
b2lkIHIuZHJhZyhlKSl9LGM9ZnVuY3Rpb24odCl7ZS5vZmYoYSwibW91c2Vtb3ZlIix1KSxlLm9m
ZihhLCJtb3VzZXVwIixjKSxvLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobyksci5zdG9wJiZyLnN0
b3AodCl9LHRoaXMuZGVzdHJveT1mdW5jdGlvbigpe2Uub2ZmKGkoKSl9LGUub24oaSgpLCJtb3Vz
ZWRvd24iLGwpfX0pLHIoWCxbcSxZXSxmdW5jdGlvbihlLHQpe3JldHVybntpbml0OmZ1bmN0aW9u
KCl7dmFyIGU9dGhpcztlLm9uKCJyZXBhaW50IixlLnJlbmRlclNjcm9sbCl9LHJlbmRlclNjcm9s
bDpmdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXtmdW5jdGlvbiB0KHQsYSxzLGwsYyx1KXt2YXIgZCxm
LHAsaCxtLGcsdix5LGI7aWYoZj1pLmdldEVsKCJzY3JvbGwiK3QpKXtpZih5PWEudG9Mb3dlckNh
c2UoKSxiPXMudG9Mb3dlckNhc2UoKSxpLmdldEVsKCJhYnNlbmQiKSYmZS5jc3MoaS5nZXRFbCgi
YWJzZW5kIikseSxpLmxheW91dFJlY3QoKVtsXS0xKSwhYylyZXR1cm4gdm9pZCBlLmNzcyhmLCJk
aXNwbGF5Iiwibm9uZSIpO2UuY3NzKGYsImRpc3BsYXkiLCJibG9jayIpLGQ9aS5nZXRFbCgiYm9k
eSIpLHA9aS5nZXRFbCgic2Nyb2xsIit0KyJ0IiksaD1kWyJjbGllbnQiK3NdLTIqbyxoLT1uJiZy
P2ZbImNsaWVudCIrdV06MCxtPWRbInNjcm9sbCIrc10sZz1oL20sdj17fSx2W3ldPWRbIm9mZnNl
dCIrYV0rbyx2W2JdPWgsZS5jc3MoZix2KSx2PXt9LHZbeV09ZFsic2Nyb2xsIithXSpnLHZbYl09
aCpnLGUuY3NzKHAsdil9fXZhciBuLHIsYTthPWkuZ2V0RWwoImJvZHkiKSxuPWEuc2Nyb2xsV2lk
dGg+YS5jbGllbnRXaWR0aCxyPWEuc2Nyb2xsSGVpZ2h0PmEuY2xpZW50SGVpZ2h0LHQoImgiLCJM
ZWZ0IiwiV2lkdGgiLCJjb250ZW50VyIsbiwiSGVpZ2h0IiksdCgidiIsIlRvcCIsIkhlaWdodCIs
ImNvbnRlbnRIIixyLCJXaWR0aCIpfWZ1bmN0aW9uIHIoKXtmdW5jdGlvbiBuKG4scixhLHMsbCl7
dmFyIGMsdT1pLl9pZCsiLXNjcm9sbCIrbixkPWkuY2xhc3NQcmVmaXg7aS5nZXRFbCgpLmFwcGVu
ZENoaWxkKGUuY3JlYXRlRnJhZ21lbnQoJzxkaXYgaWQ9IicrdSsnIiBjbGFzcz0iJytkKyJzY3Jv
bGxiYXIgIitkKyJzY3JvbGxiYXItIituKyciPjxkaXYgaWQ9IicrdSsndCIgY2xhc3M9IicrZCsn
c2Nyb2xsYmFyLXRodW1iIj48L2Rpdj48L2Rpdj4nKSksaS5kcmFnaGVscGVyPW5ldyB0KHUrInQi
LHtzdGFydDpmdW5jdGlvbigpe2M9aS5nZXRFbCgiYm9keSIpWyJzY3JvbGwiK3JdLGUuYWRkQ2xh
c3MoZS5nZXQodSksZCsiYWN0aXZlIil9LGRyYWc6ZnVuY3Rpb24oZSl7dmFyIHQsdSxkLGYscD1p
LmxheW91dFJlY3QoKTt1PXAuY29udGVudFc+cC5pbm5lclcsZD1wLmNvbnRlbnRIPnAuaW5uZXJI
LGY9aS5nZXRFbCgiYm9keSIpWyJjbGllbnQiK2FdLTIqbyxmLT11JiZkP2kuZ2V0RWwoInNjcm9s
bCIrbilbImNsaWVudCIrbF06MCx0PWYvaS5nZXRFbCgiYm9keSIpWyJzY3JvbGwiK2FdLGkuZ2V0
RWwoImJvZHkiKVsic2Nyb2xsIityXT1jK2VbImRlbHRhIitzXS90fSxzdG9wOmZ1bmN0aW9uKCl7
ZS5yZW1vdmVDbGFzcyhlLmdldCh1KSxkKyJhY3RpdmUiKX19KX1pLmFkZENsYXNzKCJzY3JvbGwi
KSxuKCJ2IiwiVG9wIiwiSGVpZ2h0IiwiWSIsIldpZHRoIiksbigiaCIsIkxlZnQiLCJXaWR0aCIs
IlgiLCJIZWlnaHQiKX12YXIgaT10aGlzLG89MjtpLnNldHRpbmdzLmF1dG9TY3JvbGwmJihpLl9o
YXNTY3JvbGx8fChpLl9oYXNTY3JvbGw9ITAscigpLGkub24oIndoZWVsIixmdW5jdGlvbihlKXt2
YXIgdD1pLmdldEVsKCJib2R5Iik7dC5zY3JvbGxMZWZ0Kz0xMCooZS5kZWx0YVh8fDApLHQuc2Ny
b2xsVG9wKz0xMCplLmRlbHRhWSxuKCl9KSxlLm9uKGkuZ2V0RWwoImJvZHkiKSwic2Nyb2xsIixu
KSksbigpKX19fSkscihKLFtHLFhdLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZh
dWx0czp7bGF5b3V0OiJmaXQiLGNvbnRhaW5lckNsczoicGFuZWwifSxNaXhpbnM6W3RdLHJlbmRl
ckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5fbGF5b3V0LG49ZS5zZXR0aW5ncy5odG1s
O3JldHVybiBlLnByZVJlbmRlcigpLHQucHJlUmVuZGVyKGUpLCJ1bmRlZmluZWQiPT10eXBlb2Yg
bj9uPSc8ZGl2IGlkPSInK2UuX2lkKyctYm9keSIgY2xhc3M9IicrZS5jbGFzc2VzKCJib2R5Iikr
JyI+Jyt0LnJlbmRlckh0bWwoZSkrIjwvZGl2PiI6KCJmdW5jdGlvbiI9PXR5cGVvZiBuJiYobj1u
LmNhbGwoZSkpLGUuX2hhc0JvZHk9ITEpLCc8ZGl2IGlkPSInK2UuX2lkKyciIGNsYXNzPSInK2Uu
Y2xhc3NlcygpKyciIGhpZGVmb2N1cz0iMSIgdGFiaW5kZXg9Ii0xIiByb2xlPSJncm91cCI+Jyso
ZS5fcHJlQm9keUh0bWx8fCIiKStuKyI8L2Rpdj4ifX0pfSkscihRLFtxXSxmdW5jdGlvbihlKXtm
dW5jdGlvbiB0KHQsbixyKXt2YXIgaSxvLGEscyxsLGMsdSxkLGYscDtyZXR1cm4gZj1lLmdldFZp
ZXdQb3J0KCksbz1lLmdldFBvcyhuKSxhPW8ueCxzPW8ueSx0Ll9maXhlZCYmKGEtPWYueCxzLT1m
LnkpLGk9dC5nZXRFbCgpLHA9ZS5nZXRTaXplKGkpLGw9cC53aWR0aCxjPXAuaGVpZ2h0LHA9ZS5n
ZXRTaXplKG4pLHU9cC53aWR0aCxkPXAuaGVpZ2h0LHI9KHJ8fCIiKS5zcGxpdCgiIiksImIiPT09
clswXSYmKHMrPWQpLCJyIj09PXJbMV0mJihhKz11KSwiYyI9PT1yWzBdJiYocys9TWF0aC5yb3Vu
ZChkLzIpKSwiYyI9PT1yWzFdJiYoYSs9TWF0aC5yb3VuZCh1LzIpKSwiYiI9PT1yWzNdJiYocy09
YyksInIiPT09cls0XSYmKGEtPWwpLCJjIj09PXJbM10mJihzLT1NYXRoLnJvdW5kKGMvMikpLCJj
Ij09PXJbNF0mJihhLT1NYXRoLnJvdW5kKGwvMikpLHt4OmEseTpzLHc6bCxoOmN9fXJldHVybnt0
ZXN0TW92ZVJlbDpmdW5jdGlvbihuLHIpe2Zvcih2YXIgaT1lLmdldFZpZXdQb3J0KCksbz0wO288
ci5sZW5ndGg7bysrKXt2YXIgYT10KHRoaXMsbixyW29dKTtpZih0aGlzLl9maXhlZCl7aWYoYS54
PjAmJmEueCthLnc8aS53JiZhLnk+MCYmYS55K2EuaDxpLmgpcmV0dXJuIHJbb119ZWxzZSBpZihh
Lng+aS54JiZhLngrYS53PGkudytpLngmJmEueT5pLnkmJmEueSthLmg8aS5oK2kueSlyZXR1cm4g
cltvXX1yZXR1cm4gclswXX0sbW92ZVJlbDpmdW5jdGlvbihlLG4peyJzdHJpbmciIT10eXBlb2Yg
biYmKG49dGhpcy50ZXN0TW92ZVJlbChlLG4pKTsKK3ZhciByPXQodGhpcyxlLG4pO3JldHVybiB0
aGlzLm1vdmVUbyhyLngsci55KX0sbW92ZUJ5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPW4u
bGF5b3V0UmVjdCgpO3JldHVybiBuLm1vdmVUbyhyLngrZSxyLnkrdCksbn0sbW92ZVRvOmZ1bmN0
aW9uKHQsbil7ZnVuY3Rpb24gcihlLHQsbil7cmV0dXJuIDA+ZT8wOmUrbj50PyhlPXQtbiwwPmU/
MDplKTplfXZhciBpPXRoaXM7aWYoaS5zZXR0aW5ncy5jb25zdHJhaW5Ub1ZpZXdwb3J0KXt2YXIg
bz1lLmdldFZpZXdQb3J0KHdpbmRvdyksYT1pLmxheW91dFJlY3QoKTt0PXIodCxvLncrby54LGEu
dyksbj1yKG4sby5oK28ueSxhLmgpfXJldHVybiBpLl9yZW5kZXJlZD9pLmxheW91dFJlY3Qoe3g6
dCx5Om59KS5yZXBhaW50KCk6KGkuc2V0dGluZ3MueD10LGkuc2V0dGluZ3MueT1uKSxpLmZpcmUo
Im1vdmUiLHt4OnQseTpufSksaX19fSkscihaLFtxXSxmdW5jdGlvbihlKXtyZXR1cm57cmVzaXpl
VG9Db250ZW50OmZ1bmN0aW9uKCl7dGhpcy5fbGF5b3V0UmVjdC5hdXRvUmVzaXplPSEwLHRoaXMu
X2xhc3RSZWN0PW51bGwsdGhpcy5yZWZsb3coKX0scmVzaXplVG86ZnVuY3Rpb24odCxuKXtpZigx
Pj10fHwxPj1uKXt2YXIgcj1lLmdldFdpbmRvd1NpemUoKTt0PTE+PXQ/dCpyLnc6dCxuPTE+PW4/
bipyLmg6bn1yZXR1cm4gdGhpcy5fbGF5b3V0UmVjdC5hdXRvUmVzaXplPSExLHRoaXMubGF5b3V0
UmVjdCh7bWluVzp0LG1pbkg6bix3OnQsaDpufSkucmVmbG93KCl9LHJlc2l6ZUJ5OmZ1bmN0aW9u
KGUsdCl7dmFyIG49dGhpcyxyPW4ubGF5b3V0UmVjdCgpO3JldHVybiBuLnJlc2l6ZVRvKHIudytl
LHIuaCt0KX19fSkscihldCxbSixRLFoscV0sZnVuY3Rpb24oZSx0LG4scil7ZnVuY3Rpb24gaShl
KXt2YXIgdDtmb3IodD1zLmxlbmd0aDt0LS07KXNbdF09PT1lJiZzLnNwbGljZSh0LDEpO2Zvcih0
PWwubGVuZ3RoO3QtLTspbFt0XT09PWUmJmwuc3BsaWNlKHQsMSl9dmFyIG8sYSxzPVtdLGw9W10s
Yyx1PWUuZXh0ZW5kKHtNaXhpbnM6W3Qsbl0saW5pdDpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7
dmFyIGUsdD11LnpJbmRleHx8NjU1MzUsbjtpZihsLmxlbmd0aClmb3IoZT0wO2U8bC5sZW5ndGg7
ZSsrKWxbZV0ubW9kYWwmJih0Kyssbj1sW2VdKSxsW2VdLmdldEVsKCkuc3R5bGUuekluZGV4PXQs
bFtlXS56SW5kZXg9dCx0Kys7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZC5jbGFzc1By
ZWZpeCsibW9kYWwtYmxvY2siKTtuP3IuY3NzKGksInotaW5kZXgiLG4uekluZGV4LTEpOmkmJihp
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSksYz0hMSksdS5jdXJyZW50WkluZGV4PXR9ZnVuY3Rp
b24gbihlLHQpe2Zvcig7ZTspe2lmKGU9PXQpcmV0dXJuITA7ZT1lLnBhcmVudCgpfX1mdW5jdGlv
biBpKGUpe2Z1bmN0aW9uIHQodCxuKXtmb3IodmFyIHIsaT0wO2k8cy5sZW5ndGg7aSsrKWlmKHNb
aV0hPWUpZm9yKHI9c1tpXS5wYXJlbnQoKTtyJiYocj1yLnBhcmVudCgpKTspcj09ZSYmc1tpXS5m
aXhlZCh0KS5tb3ZlQnkoMCxuKS5yZXBhaW50KCl9dmFyIG49ci5nZXRWaWV3UG9ydCgpLnk7ZS5z
ZXR0aW5ncy5hdXRvZml4JiYoZS5fZml4ZWQ/ZS5fYXV0b0ZpeFk+biYmKGUuZml4ZWQoITEpLmxh
eW91dFJlY3Qoe3k6ZS5fYXV0b0ZpeFl9KS5yZXBhaW50KCksdCghMSxlLl9hdXRvRml4WS1uKSk6
KGUuX2F1dG9GaXhZPWUubGF5b3V0UmVjdCgpLnksZS5fYXV0b0ZpeFk8biYmKGUuZml4ZWQoITAp
LmxheW91dFJlY3Qoe3k6MH0pLnJlcGFpbnQoKSx0KCEwLG4tZS5fYXV0b0ZpeFkpKSkpfXZhciBk
PXRoaXM7ZC5fc3VwZXIoZSksZC5fZXZlbnRzUm9vdD1kLGQuYWRkQ2xhc3MoImZsb2F0cGFuZWwi
KSxlLmF1dG9oaWRlJiYob3x8KG89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXMubGVuZ3RoO3QtLTsp
e3ZhciByPXNbdF0saT1yLmdldFBhcmVudEN0cmwoZS50YXJnZXQpO2lmKHIuc2V0dGluZ3MuYXV0
b2hpZGUpe2lmKGkmJihuKGkscil8fHIucGFyZW50KCk9PT1pKSljb250aW51ZTtlPXIuZmlyZSgi
YXV0b2hpZGUiLHt0YXJnZXQ6ZS50YXJnZXR9KSxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxyLmhp
ZGUoKX19fSxyLm9uKGRvY3VtZW50LCJjbGljayIsbykpLHMucHVzaChkKSksZS5hdXRvZml4JiYo
YXx8KGE9ZnVuY3Rpb24oKXt2YXIgZTtmb3IoZT1zLmxlbmd0aDtlLS07KWkoc1tlXSl9LHIub24o
d2luZG93LCJzY3JvbGwiLGEpKSxkLm9uKCJtb3ZlIixmdW5jdGlvbigpe2kodGhpcyl9KSksZC5v
bigicG9zdHJlbmRlciBzaG93IixmdW5jdGlvbihlKXtpZihlLmNvbnRyb2w9PWQpe3ZhciBuLGk9
ZC5jbGFzc1ByZWZpeDtkLm1vZGFsJiYhYyYmKG49ci5jcmVhdGVGcmFnbWVudCgnPGRpdiBpZD0i
JytpKydtb2RhbC1ibG9jayIgY2xhc3M9IicraSsicmVzZXQgIitpKydmYWRlIj48L2Rpdj4nKSxu
PW4uZmlyc3RDaGlsZCxkLmdldENvbnRhaW5lckVsbSgpLmFwcGVuZENoaWxkKG4pLHNldFRpbWVv
dXQoZnVuY3Rpb24oKXtyLmFkZENsYXNzKG4saSsiaW4iKSxyLmFkZENsYXNzKGQuZ2V0RWwoKSxp
KyJpbiIpfSwwKSxjPSEwKSxsLnB1c2goZCksdCgpfX0pLGQub24oImNsb3NlIGhpZGUiLGZ1bmN0
aW9uKGUpe2lmKGUuY29udHJvbD09ZCl7Zm9yKHZhciBuPWwubGVuZ3RoO24tLTspbFtuXT09PWQm
Jmwuc3BsaWNlKG4sMSk7dCgpfX0pLGQub24oInNob3ciLGZ1bmN0aW9uKCl7ZC5wYXJlbnRzKCku
ZWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5fZml4ZWQ/KGQuZml4ZWQoITApLCExKTp2b2lkIDB9
KX0pLGUucG9wb3ZlciYmKGQuX3ByZUJvZHlIdG1sPSc8ZGl2IGNsYXNzPSInK2QuY2xhc3NQcmVm
aXgrJ2Fycm93Ij48L2Rpdj4nLGQuYWRkQ2xhc3MoInBvcG92ZXIiKS5hZGRDbGFzcygiYm90dG9t
IikuYWRkQ2xhc3MoZC5pc1J0bCgpPyJlbmQiOiJzdGFydCIpKX0sZml4ZWQ6ZnVuY3Rpb24oZSl7
dmFyIHQ9dGhpcztpZih0Ll9maXhlZCE9ZSl7aWYodC5fcmVuZGVyZWQpe3ZhciBuPXIuZ2V0Vmll
d1BvcnQoKTtlP3QubGF5b3V0UmVjdCgpLnktPW4ueTp0LmxheW91dFJlY3QoKS55Kz1uLnl9dC50
b2dnbGVDbGFzcygiZml4ZWQiLGUpLHQuX2ZpeGVkPWV9cmV0dXJuIHR9LHNob3c6ZnVuY3Rpb24o
KXt2YXIgZT10aGlzLHQsbj1lLl9zdXBlcigpO2Zvcih0PXMubGVuZ3RoO3QtLSYmc1t0XSE9PWU7
KTtyZXR1cm4tMT09PXQmJnMucHVzaChlKSxufSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGkodGhp
cyksdGhpcy5fc3VwZXIoKX0saGlkZUFsbDpmdW5jdGlvbigpe3UuaGlkZUFsbCgpfSxjbG9zZTpm
dW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGUuZmlyZSgiY2xvc2UiKSxlLnJlbW92ZSgpfSxy
ZW1vdmU6ZnVuY3Rpb24oKXtpKHRoaXMpLHRoaXMuX3N1cGVyKCl9LHBvc3RSZW5kZXI6ZnVuY3Rp
b24oKXt2YXIgZT10aGlzO3JldHVybiBlLnNldHRpbmdzLmJvZHlSb2xlJiZ0aGlzLmdldEVsKCJi
b2R5Iikuc2V0QXR0cmlidXRlKCJyb2xlIixlLnNldHRpbmdzLmJvZHlSb2xlKSxlLl9zdXBlcigp
fX0pO3JldHVybiB1LmhpZGVBbGw9ZnVuY3Rpb24oKXtmb3IodmFyIGU9cy5sZW5ndGg7ZS0tOyl7
dmFyIHQ9c1tlXTt0JiZ0LnNldHRpbmdzLmF1dG9oaWRlJiYodC5oaWRlKCkscy5zcGxpY2UoZSwx
KSl9fSx1fSkscih0dCxbZXQsSixxLFldLGZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPWUuZXh0ZW5k
KHttb2RhbDohMCxEZWZhdWx0czp7Ym9yZGVyOjEsbGF5b3V0OiJmbGV4Iixjb250YWluZXJDbHM6
InBhbmVsIixyb2xlOiJkaWFsb2ciLGNhbGxiYWNrczp7c3VibWl0OmZ1bmN0aW9uKCl7dGhpcy5m
aXJlKCJzdWJtaXQiLHtkYXRhOnRoaXMudG9KU09OKCl9KX0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlz
LmNsb3NlKCl9fX0saW5pdDpmdW5jdGlvbihlKXt2YXIgbj10aGlzO24uX3N1cGVyKGUpLG4uaXNS
dGwoKSYmbi5hZGRDbGFzcygicnRsIiksbi5hZGRDbGFzcygid2luZG93Iiksbi5fZml4ZWQ9ITAs
ZS5idXR0b25zJiYobi5zdGF0dXNiYXI9bmV3IHQoe2xheW91dDoiZmxleCIsYm9yZGVyOiIxIDAg
MCAwIixzcGFjaW5nOjMscGFkZGluZzoxMCxhbGlnbjoiY2VudGVyIixwYWNrOm4uaXNSdGwoKT8i
c3RhcnQiOiJlbmQiLGRlZmF1bHRzOnt0eXBlOiJidXR0b24ifSxpdGVtczplLmJ1dHRvbnN9KSxu
LnN0YXR1c2Jhci5hZGRDbGFzcygiZm9vdCIpLG4uc3RhdHVzYmFyLnBhcmVudChuKSksbi5vbigi
Y2xpY2siLGZ1bmN0aW9uKGUpey0xIT1lLnRhcmdldC5jbGFzc05hbWUuaW5kZXhPZihuLmNsYXNz
UHJlZml4KyJjbG9zZSIpJiZuLmNsb3NlKCl9KSxuLm9uKCJjYW5jZWwiLGZ1bmN0aW9uKCl7bi5j
bG9zZSgpfSksbi5hcmlhKCJkZXNjcmliZWRieSIsbi5kZXNjcmliZWRCeXx8bi5faWQrIi1ub25l
Iiksbi5hcmlhKCJsYWJlbCIsZS50aXRsZSksbi5fZnVsbHNjcmVlbj0hMX0scmVjYWxjOmZ1bmN0
aW9uKCl7dmFyIGU9dGhpcyx0PWUuc3RhdHVzYmFyLHIsaSxvLGE7ZS5fZnVsbHNjcmVlbiYmKGUu
bGF5b3V0UmVjdChuLmdldFdpbmRvd1NpemUoKSksZS5sYXlvdXRSZWN0KCkuY29udGVudEg9ZS5s
YXlvdXRSZWN0KCkuaW5uZXJIKSxlLl9zdXBlcigpLHI9ZS5sYXlvdXRSZWN0KCksZS5zZXR0aW5n
cy50aXRsZSYmIWUuX2Z1bGxzY3JlZW4mJihpPXIuaGVhZGVyVyxpPnIudyYmKG89ci54LU1hdGgu
bWF4KDAsaS8yKSxlLmxheW91dFJlY3Qoe3c6aSx4Om99KSxhPSEwKSksdCYmKHQubGF5b3V0UmVj
dCh7dzplLmxheW91dFJlY3QoKS5pbm5lcld9KS5yZWNhbGMoKSxpPXQubGF5b3V0UmVjdCgpLm1p
blcrci5kZWx0YVcsaT5yLncmJihvPXIueC1NYXRoLm1heCgwLGktci53KSxlLmxheW91dFJlY3Qo
e3c6aSx4Om99KSxhPSEwKSksYSYmZS5yZWNhbGMoKX0saW5pdExheW91dFJlY3Q6ZnVuY3Rpb24o
KXt2YXIgZT10aGlzLHQ9ZS5fc3VwZXIoKSxyPTAsaTtpZihlLnNldHRpbmdzLnRpdGxlJiYhZS5f
ZnVsbHNjcmVlbil7aT1lLmdldEVsKCJoZWFkIik7dmFyIG89bi5nZXRTaXplKGkpO3QuaGVhZGVy
Vz1vLndpZHRoLHQuaGVhZGVySD1vLmhlaWdodCxyKz10LmhlYWRlckh9ZS5zdGF0dXNiYXImJihy
Kz1lLnN0YXR1c2Jhci5sYXlvdXRSZWN0KCkuaCksdC5kZWx0YUgrPXIsdC5taW5IKz1yLHQuaCs9
cjt2YXIgYT1uLmdldFdpbmRvd1NpemUoKTtyZXR1cm4gdC54PU1hdGgubWF4KDAsYS53LzItdC53
LzIpLHQueT1NYXRoLm1heCgwLGEuaC8yLXQuaC8yKSx0fSxyZW5kZXJIdG1sOmZ1bmN0aW9uKCl7
dmFyIGU9dGhpcyx0PWUuX2xheW91dCxuPWUuX2lkLHI9ZS5jbGFzc1ByZWZpeCxpPWUuc2V0dGlu
Z3Msbz0iIixhPSIiLHM9aS5odG1sO3JldHVybiBlLnByZVJlbmRlcigpLHQucHJlUmVuZGVyKGUp
LGkudGl0bGUmJihvPSc8ZGl2IGlkPSInK24rJy1oZWFkIiBjbGFzcz0iJytyKyd3aW5kb3ctaGVh
ZCI+PGRpdiBpZD0iJytuKyctdGl0bGUiIGNsYXNzPSInK3IrJ3RpdGxlIj4nK2UuZW5jb2RlKGku
dGl0bGUpKyc8L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9IicrcisnY2xvc2UiIGFy
aWEtaGlkZGVuPSJ0cnVlIj5ceGQ3PC9idXR0b24+PGRpdiBpZD0iJytuKyctZHJhZ2giIGNsYXNz
PSInK3IrJ2RyYWdoIj48L2Rpdj48L2Rpdj4nKSxpLnVybCYmKHM9JzxpZnJhbWUgc3JjPSInK2ku
dXJsKyciIHRhYmluZGV4PSItMSI+PC9pZnJhbWU+JyksInVuZGVmaW5lZCI9PXR5cGVvZiBzJiYo
cz10LnJlbmRlckh0bWwoZSkpLGUuc3RhdHVzYmFyJiYoYT1lLnN0YXR1c2Jhci5yZW5kZXJIdG1s
KCkpLCc8ZGl2IGlkPSInK24rJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgaGlkZWZvY3VzPSIx
Ij48ZGl2IGNsYXNzPSInK2UuY2xhc3NQcmVmaXgrJ3Jlc2V0IiByb2xlPSJhcHBsaWNhdGlvbiI+
JytvKyc8ZGl2IGlkPSInK24rJy1ib2R5IiBjbGFzcz0iJytlLmNsYXNzZXMoImJvZHkiKSsnIj4n
K3MrIjwvZGl2PiIrYSsiPC9kaXY+PC9kaXY+In0sZnVsbHNjcmVlbjpmdW5jdGlvbihlKXt2YXIg
dD10aGlzLHI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGksbz10LmNsYXNzUHJlZml4LGE7aWYo
ZSE9dC5fZnVsbHNjcmVlbilpZihuLm9uKHdpbmRvdywicmVzaXplIixmdW5jdGlvbigpe3ZhciBl
O2lmKHQuX2Z1bGxzY3JlZW4paWYoaSl0Ll90aW1lcnx8KHQuX3RpbWVyPXNldFRpbWVvdXQoZnVu
Y3Rpb24oKXt2YXIgZT1uLmdldFdpbmRvd1NpemUoKTt0Lm1vdmVUbygwLDApLnJlc2l6ZVRvKGUu
dyxlLmgpLHQuX3RpbWVyPTB9LDUwKSk7ZWxzZXtlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3ZhciBy
PW4uZ2V0V2luZG93U2l6ZSgpO3QubW92ZVRvKDAsMCkucmVzaXplVG8oci53LHIuaCksKG5ldyBE
YXRlKS5nZXRUaW1lKCktZT41MCYmKGk9ITApfX0pLGE9dC5sYXlvdXRSZWN0KCksdC5fZnVsbHNj
cmVlbj1lLGUpe3QuX2luaXRpYWw9e3g6YS54LHk6YS55LHc6YS53LGg6YS5ofSx0Ll9ib3JkZXJC
b3g9dC5wYXJzZUJveCgiMCIpLHQuZ2V0RWwoImhlYWQiKS5zdHlsZS5kaXNwbGF5PSJub25lIixh
LmRlbHRhSC09YS5oZWFkZXJIKzIsbi5hZGRDbGFzcyhyLG8rImZ1bGxzY3JlZW4iKSxuLmFkZENs
YXNzKGRvY3VtZW50LmJvZHksbysiZnVsbHNjcmVlbiIpLHQuYWRkQ2xhc3MoImZ1bGxzY3JlZW4i
KTt2YXIgcz1uLmdldFdpbmRvd1NpemUoKTt0Lm1vdmVUbygwLDApLnJlc2l6ZVRvKHMudyxzLmgp
fWVsc2UgdC5fYm9yZGVyQm94PXQucGFyc2VCb3godC5zZXR0aW5ncy5ib3JkZXIpLHQuZ2V0RWwo
ImhlYWQiKS5zdHlsZS5kaXNwbGF5PSIiLGEuZGVsdGFIKz1hLmhlYWRlckgsbi5yZW1vdmVDbGFz
cyhyLG8rImZ1bGxzY3JlZW4iKSxuLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksbysiZnVsbHNj
cmVlbiIpLHQucmVtb3ZlQ2xhc3MoImZ1bGxzY3JlZW4iKSx0Lm1vdmVUbyh0Ll9pbml0aWFsLngs
dC5faW5pdGlhbC55KS5yZXNpemVUbyh0Ll9pbml0aWFsLncsdC5faW5pdGlhbC5oKTtyZXR1cm4g
dC5yZWZsb3coKX0scG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdDtzZXRUaW1lb3V0
KGZ1bmN0aW9uKCl7ZS5hZGRDbGFzcygiaW4iKX0sMCksZS5fc3VwZXIoKSxlLnN0YXR1c2JhciYm
ZS5zdGF0dXNiYXIucG9zdFJlbmRlcigpLGUuZm9jdXMoKSx0aGlzLmRyYWdIZWxwZXI9bmV3IHIo
ZS5faWQrIi1kcmFnaCIse3N0YXJ0OmZ1bmN0aW9uKCl7dD17eDplLmxheW91dFJlY3QoKS54LHk6
ZS5sYXlvdXRSZWN0KCkueX19LGRyYWc6ZnVuY3Rpb24obil7ZS5tb3ZlVG8odC54K24uZGVsdGFY
LHQueStuLmRlbHRhWSl9fSksZS5vbigic3VibWl0IixmdW5jdGlvbih0KXt0LmlzRGVmYXVsdFBy
ZXZlbnRlZCgpfHxlLmNsb3NlKCl9KX0sc3VibWl0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmly
ZSgic3VibWl0Iix7ZGF0YTp0aGlzLnRvSlNPTigpfSl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciBl
PXRoaXMsdD1lLmNsYXNzUHJlZml4O2UuZHJhZ0hlbHBlci5kZXN0cm95KCksZS5fc3VwZXIoKSxl
LnN0YXR1c2JhciYmdGhpcy5zdGF0dXNiYXIucmVtb3ZlKCksZS5fZnVsbHNjcmVlbiYmKG4ucmVt
b3ZlQ2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHQrImZ1bGxzY3JlZW4iKSxuLnJlbW92
ZUNsYXNzKGRvY3VtZW50LmJvZHksdCsiZnVsbHNjcmVlbiIpKX0sZ2V0Q29udGVudFdpbmRvdzpm
dW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0RWwoKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1l
IilbMF07cmV0dXJuIGU/ZS5jb250ZW50V2luZG93Om51bGx9fSk7cmV0dXJuIGl9KSxyKG50LFt0
dF0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24oZSl7ZT17Ym9yZGVy
OjEscGFkZGluZzoyMCxsYXlvdXQ6ImZsZXgiLHBhY2s6ImNlbnRlciIsYWxpZ246ImNlbnRlciIs
Y29udGFpbmVyQ2xzOiJwYW5lbCIsYXV0b1Njcm9sbDohMCxidXR0b25zOnt0eXBlOiJidXR0b24i
LHRleHQ6Ik9rIixhY3Rpb246Im9rIn0saXRlbXM6e3R5cGU6ImxhYmVsIixtdWx0aWxpbmU6ITAs
bWF4V2lkdGg6NTAwLG1heEhlaWdodDoyMDB9fSx0aGlzLl9zdXBlcihlKX0sU3RhdGljczp7T0s6
MSxPS19DQU5DRUw6MixZRVNfTk86MyxZRVNfTk9fQ0FOQ0VMOjQsbXNnQm94OmZ1bmN0aW9uKG4p
e3ZhciByLGk9bi5jYWxsYmFja3x8ZnVuY3Rpb24oKXt9O3N3aXRjaChuLmJ1dHRvbnMpe2Nhc2Ug
dC5PS19DQU5DRUw6cj1be3R5cGU6ImJ1dHRvbiIsdGV4dDoiT2siLHN1YnR5cGU6InByaW1hcnki
LG9uQ2xpY2s6ZnVuY3Rpb24oZSl7ZS5jb250cm9sLnBhcmVudHMoKVsxXS5jbG9zZSgpLGkoITAp
fX0se3R5cGU6ImJ1dHRvbiIsdGV4dDoiQ2FuY2VsIixvbkNsaWNrOmZ1bmN0aW9uKGUpe2UuY29u
dHJvbC5wYXJlbnRzKClbMV0uY2xvc2UoKSxpKCExKX19XTticmVhaztjYXNlIHQuWUVTX05POnI9
W3t0eXBlOiJidXR0b24iLHRleHQ6Ik9rIixzdWJ0eXBlOiJwcmltYXJ5IixvbkNsaWNrOmZ1bmN0
aW9uKGUpe2UuY29udHJvbC5wYXJlbnRzKClbMV0uY2xvc2UoKSxpKCEwKX19XTticmVhaztjYXNl
IHQuWUVTX05PX0NBTkNFTDpyPVt7dHlwZToiYnV0dG9uIix0ZXh0OiJPayIsc3VidHlwZToicHJp
bWFyeSIsb25DbGljazpmdW5jdGlvbihlKXtlLmNvbnRyb2wucGFyZW50cygpWzFdLmNsb3NlKCl9
fV07YnJlYWs7ZGVmYXVsdDpyPVt7dHlwZToiYnV0dG9uIix0ZXh0OiJPayIsc3VidHlwZToicHJp
bWFyeSIsb25DbGljazpmdW5jdGlvbihlKXtlLmNvbnRyb2wucGFyZW50cygpWzFdLmNsb3NlKCks
aSghMCl9fV19cmV0dXJuIG5ldyBlKHtwYWRkaW5nOjIwLHg6bi54LHk6bi55LG1pbldpZHRoOjMw
MCxtaW5IZWlnaHQ6MTAwLGxheW91dDoiZmxleCIscGFjazoiY2VudGVyIixhbGlnbjoiY2VudGVy
IixidXR0b25zOnIsdGl0bGU6bi50aXRsZSxyb2xlOiJhbGVydGRpYWxvZyIsaXRlbXM6e3R5cGU6
ImxhYmVsIixtdWx0aWxpbmU6ITAsbWF4V2lkdGg6NTAwLG1heEhlaWdodDoyMDAsdGV4dDpuLnRl
eHR9LG9uUG9zdFJlbmRlcjpmdW5jdGlvbigpe3RoaXMuYXJpYSgiZGVzY3JpYmVkYnkiLHRoaXMu
aXRlbXMoKVswXS5faWQpfSxvbkNsb3NlOm4ub25DbG9zZSxvbkNhbmNlbDpmdW5jdGlvbigpe2ko
ITEpfX0pLnJlbmRlclRvKGRvY3VtZW50LmJvZHkpLnJlZmxvdygpfSxhbGVydDpmdW5jdGlvbihl
LG4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmKGU9e3RleHQ6ZX0pLGUuY2FsbGJhY2s9bix0
Lm1zZ0JveChlKX0sY29uZmlybTpmdW5jdGlvbihlLG4pe3JldHVybiJzdHJpbmciPT10eXBlb2Yg
ZSYmKGU9e3RleHQ6ZX0pLGUuY2FsbGJhY2s9bixlLmJ1dHRvbnM9dC5PS19DQU5DRUwsdC5tc2dC
b3goZSl9fX0pO3JldHVybiB0fSkscihydCxbdHQsbnRdLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1
bmN0aW9uKG4pe2Z1bmN0aW9uIHIoKXtyZXR1cm4gby5sZW5ndGg/b1tvLmxlbmd0aC0xXTp2b2lk
IDB9dmFyIGk9dGhpcyxvPVtdO2kud2luZG93cz1vLGkub3Blbj1mdW5jdGlvbih0LHIpe3ZhciBp
O3JldHVybiBuLmVkaXRvck1hbmFnZXIuYWN0aXZlRWRpdG9yPW4sdC50aXRsZT10LnRpdGxlfHwi
ICIsdC51cmw9dC51cmx8fHQuZmlsZSx0LnVybCYmKHQud2lkdGg9cGFyc2VJbnQodC53aWR0aHx8
MzIwLDEwKSx0LmhlaWdodD1wYXJzZUludCh0LmhlaWdodHx8MjQwLDEwKSksdC5ib2R5JiYodC5p
dGVtcz17ZGVmYXVsdHM6dC5kZWZhdWx0cyx0eXBlOnQuYm9keVR5cGV8fCJmb3JtIixpdGVtczp0
LmJvZHl9KSx0LnVybHx8dC5idXR0b25zfHwodC5idXR0b25zPVt7dGV4dDoiT2siLHN1YnR5cGU6
InByaW1hcnkiLG9uY2xpY2s6ZnVuY3Rpb24oKXtpLmZpbmQoImZvcm0iKVswXS5zdWJtaXQoKX19
LHt0ZXh0OiJDYW5jZWwiLG9uY2xpY2s6ZnVuY3Rpb24oKXtpLmNsb3NlKCl9fV0pLGk9bmV3IGUo
dCksby5wdXNoKGkpLGkub24oImNsb3NlIixmdW5jdGlvbigpe2Zvcih2YXIgZT1vLmxlbmd0aDtl
LS07KW9bZV09PT1pJiZvLnNwbGljZShlLDEpO24uZm9jdXMoKX0pLHQuZGF0YSYmaS5vbigicG9z
dFJlbmRlciIsZnVuY3Rpb24oKXt0aGlzLmZpbmQoIioiKS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBu
PWUubmFtZSgpO24gaW4gdC5kYXRhJiZlLnZhbHVlKHQuZGF0YVtuXSl9KX0pLGkuZmVhdHVyZXM9
dHx8e30saS5wYXJhbXM9cnx8e30sbi5ub2RlQ2hhbmdlZCgpLGkucmVuZGVyVG8oKS5yZWZsb3co
KX0saS5hbGVydD1mdW5jdGlvbihlLHIsaSl7dC5hbGVydChlLGZ1bmN0aW9uKCl7cj9yLmNhbGwo
aXx8dGhpcyk6bi5mb2N1cygpfSl9LGkuY29uZmlybT1mdW5jdGlvbihlLG4scil7dC5jb25maXJt
KGUsZnVuY3Rpb24oZSl7bi5jYWxsKHJ8fHRoaXMsZSl9KX0saS5jbG9zZT1mdW5jdGlvbigpe3Io
KSYmcigpLmNsb3NlKCl9LGkuZ2V0UGFyYW1zPWZ1bmN0aW9uKCl7cmV0dXJuIHIoKT9yKCkucGFy
YW1zOm51bGx9LGkuc2V0UGFyYW1zPWZ1bmN0aW9uKGUpe3IoKSYmKHIoKS5wYXJhbXM9ZSl9LGku
Z2V0V2luZG93cz1mdW5jdGlvbigpe3JldHVybiBvfX19KSxyKGl0LFtSLEIseCxtLGcscF0sZnVu
Y3Rpb24oZSx0LG4scixpLG8pe3JldHVybiBmdW5jdGlvbihhKXtmdW5jdGlvbiBzKGUsdCl7dHJ5
e2EuZ2V0RG9jKCkuZXhlY0NvbW1hbmQoZSwhMSx0KX1jYXRjaChuKXt9fWZ1bmN0aW9uIGwoKXt2
YXIgZT1hLmdldERvYygpLmRvY3VtZW50TW9kZTtyZXR1cm4gZT9lOjZ9ZnVuY3Rpb24gYyhlKXty
ZXR1cm4gZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKX1mdW5jdGlvbiB1KCl7ZnVuY3Rpb24gdChlKXt2
YXIgdD1uZXcgaShmdW5jdGlvbigpe30pO28uZWFjaChhLmdldEJvZHkoKS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiKiIpLGZ1bmN0aW9uKGUpeyJTUEFOIj09ZS50YWdOYW1lJiZlLnNldEF0dHJpYnV0
ZSgibWNlLWRhdGEtbWFya2VkIiwxKSwhZS5oYXNBdHRyaWJ1dGUoImRhdGEtbWNlLXN0eWxlIikm
JmUuaGFzQXR0cmlidXRlKCJzdHlsZSIpJiZhLmRvbS5zZXRBdHRyaWIoZSwic3R5bGUiLGUuZ2V0
QXR0cmlidXRlKCJzdHlsZSIpKX0pLHQub2JzZXJ2ZShhLmdldERvYygpLHtjaGlsZExpc3Q6ITAs
YXR0cmlidXRlczohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInN0eWxlIl19KSxhLmdl
dERvYygpLmV4ZWNDb21tYW5kKGU/IkZvcndhcmREZWxldGUiOiJEZWxldGUiLCExLG51bGwpO3Zh
ciBuPWEuc2VsZWN0aW9uLmdldFJuZygpLHI9bi5zdGFydENvbnRhaW5lci5wYXJlbnROb2RlO28u
ZWFjaCh0LnRha2VSZWNvcmRzKCksZnVuY3Rpb24oZSl7aWYocS5pc0NoaWxkT2YoZS50YXJnZXQs
YS5nZXRCb2R5KCkpKXtpZigic3R5bGUiPT1lLmF0dHJpYnV0ZU5hbWUpe3ZhciB0PWUudGFyZ2V0
LmdldEF0dHJpYnV0ZSgiZGF0YS1tY2Utc3R5bGUiKTt0P2UudGFyZ2V0LnNldEF0dHJpYnV0ZSgi
c3R5bGUiLHQpOmUudGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKX1vLmVhY2goZS5hZGRl
ZE5vZGVzLGZ1bmN0aW9uKGUpe2lmKCJTUEFOIj09ZS5ub2RlTmFtZSYmIWUuZ2V0QXR0cmlidXRl
KCJtY2UtZGF0YS1tYXJrZWQiKSl7dmFyIHQsaTtlPT1yJiYodD1uLnN0YXJ0T2Zmc2V0LGk9ZS5m
aXJzdENoaWxkKSxxLnJlbW92ZShlLCEwKSxpJiYobi5zZXRTdGFydChpLHQpLG4uc2V0RW5kKGks
dCksYS5zZWxlY3Rpb24uc2V0Um5nKG4pKX19KX19KSx0LmRpc2Nvbm5lY3QoKSxvLmVhY2goYS5k
b20uc2VsZWN0KCJzcGFuW21jZS1kYXRhLW1hcmtlZF0iKSxmdW5jdGlvbihlKXtlLnJlbW92ZUF0
dHJpYnV0ZSgibWNlLWRhdGEtbWFya2VkIil9KX12YXIgbj1hLmdldERvYygpLHI9ImRhdGE6dGV4
dC9tY2UtaW50ZXJuYWwsIixpPXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyLHMsbDtpfHwocz0hMCxp
PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt2YXIgdD1lLnJlbGF0ZWROb2RlfHxlLnRhcmdldDtu
LnB1c2goe3RhcmdldDp0LGFkZGVkTm9kZXM6W3RdfSl9ZnVuY3Rpb24gdChlKXt2YXIgdD1lLnJl
bGF0ZWROb2RlfHxlLnRhcmdldDtuLnB1c2goe3RhcmdldDp0LGF0dHJpYnV0ZU5hbWU6ZS5hdHRy
TmFtZX0pfXZhciBuPVtdLHI7dGhpcy5vYnNlcnZlPWZ1bmN0aW9uKG4pe3I9bixyLmFkZEV2ZW50
TGlzdGVuZXIoIkRPTVN1YnRyZWVNb2RpZmllZCIsZSwhMSksci5hZGRFdmVudExpc3RlbmVyKCJE
T01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQiLGUsITEpLHIuYWRkRXZlbnRMaXN0ZW5lcigiRE9N
Tm9kZUluc2VydGVkIixlLCExKSxyLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUF0dHJNb2RpZmllZCIs
dCwhMSl9LHRoaXMuZGlzY29ubmVjdD1mdW5jdGlvbigpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
RE9NU3VidHJlZU1vZGlmaWVkIixlLCExKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJ
bnNlcnRlZEludG9Eb2N1bWVudCIsZSwhMSksci5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Ob2Rl
SW5zZXJ0ZWQiLGUsITEpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQXR0ck1vZGlmaWVkIix0
LCExKX0sdGhpcy50YWtlUmVjb3Jkcz1mdW5jdGlvbigpe3JldHVybiBufX0pLGEub24oImtleWRv
d24iLGZ1bmN0aW9uKG4pe3ZhciByPW4ua2V5Q29kZT09VSxpPWUubWV0YUtleVByZXNzZWQobik7
aWYoIWMobikmJihyfHxuLmtleUNvZGU9PVYpKXt2YXIgbz1hLnNlbGVjdGlvbi5nZXRSbmcoKSxz
PW8uc3RhcnRDb250YWluZXIsbD1vLnN0YXJ0T2Zmc2V0O2lmKCFpJiZvLmNvbGxhcHNlZCYmMz09
cy5ub2RlVHlwZSYmKHI/bDxzLmRhdGEubGVuZ3RoOmw+MCkpcmV0dXJuO24ucHJldmVudERlZmF1
bHQoKSxpJiZhLnNlbGVjdGlvbi5nZXRTZWwoKS5tb2RpZnkoImV4dGVuZCIscj8iZm9yd2FyZCI6
ImJhY2t3YXJkIiwid29yZCIpLHQocil9fSksYS5vbigia2V5cHJlc3MiLGZ1bmN0aW9uKG4pe2Mo
bil8fCQuaXNDb2xsYXBzZWQoKXx8IW4uY2hhckNvZGV8fGUubWV0YUtleVByZXNzZWQobil8fChu
LnByZXZlbnREZWZhdWx0KCksdCghMCksYS5zZWxlY3Rpb24uc2V0Q29udGVudChTdHJpbmcuZnJv
bUNoYXJDb2RlKG4uY2hhckNvZGUpKSl9KSxhLmFkZENvbW1hbmQoIkRlbGV0ZSIsZnVuY3Rpb24o
KXt0KCl9KSxhLmFkZENvbW1hbmQoIkZvcndhcmREZWxldGUiLGZ1bmN0aW9uKCl7dCghMCl9KSxz
fHwoYS5vbigiZHJhZ3N0YXJ0IixmdW5jdGlvbihlKXt2YXIgdDthLnNlbGVjdGlvbi5pc0NvbGxh
cHNlZCgpJiYiSU1HIj09ZS50YXJnZXQudGFnTmFtZSYmJC5zZWxlY3QoZS50YXJnZXQpLGw9JC5n
ZXRSbmcoKSx0PWEuc2VsZWN0aW9uLmdldENvbnRlbnQoKSx0Lmxlbmd0aD4wJiZlLmRhdGFUcmFu
c2Zlci5zZXREYXRhKCJVUkwiLCJkYXRhOnRleHQvbWNlLWludGVybmFsLCIrZXNjYXBlKHQpKX0p
LGEub24oImRyb3AiLGZ1bmN0aW9uKGUpe2lmKCFjKGUpKXt2YXIgaT1lLmRhdGFUcmFuc2Zlci5n
ZXREYXRhKCJVUkwiKTtpZighaXx8LTE9PWkuaW5kZXhPZihyKXx8IW4uY2FyZXRSYW5nZUZyb21Q
b2ludClyZXR1cm47aT11bmVzY2FwZShpLnN1YnN0cihyLmxlbmd0aCkpLG4uY2FyZXRSYW5nZUZy
b21Qb2ludCYmKGUucHJldmVudERlZmF1bHQoKSx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
e3ZhciByPW4uY2FyZXRSYW5nZUZyb21Qb2ludChlLngsZS55KTtsJiYoJC5zZXRSbmcobCksbD1u
dWxsKSx0KCksJC5zZXRSbmcociksYS5pbnNlcnRDb250ZW50KGkpfSwwKSl9fSksYS5vbigiY3V0
IixmdW5jdGlvbihlKXshYyhlKSYmZS5jbGlwYm9hcmREYXRhJiYoZS5wcmV2ZW50RGVmYXVsdCgp
LGUuY2xpcGJvYXJkRGF0YS5jbGVhckRhdGEoKSxlLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4
dC9odG1sIixhLnNlbGVjdGlvbi5nZXRDb250ZW50KCkpLGUuY2xpcGJvYXJkRGF0YS5zZXREYXRh
KCJ0ZXh0L3BsYWluIixhLnNlbGVjdGlvbi5nZXRDb250ZW50KHtmb3JtYXQ6InRleHQifSkpLHQo
ITApKX0pKX1mdW5jdGlvbiBkKCl7ZnVuY3Rpb24gZShlKXt2YXIgdD1xLmNyZWF0ZSgiYm9keSIp
LG49ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIHQuYXBwZW5kQ2hpbGQobiksJC5zZXJpYWxpemVy
LnNlcmlhbGl6ZSh0LHtmb3JtYXQ6Imh0bWwifSl9ZnVuY3Rpb24gbihuKXtpZighbi5zZXRTdGFy
dCl7aWYobi5pdGVtKXJldHVybiExO3ZhciByPW4uZHVwbGljYXRlKCk7cmV0dXJuIHIubW92ZVRv
RWxlbWVudFRleHQoYS5nZXRCb2R5KCkpLHQuY29tcGFyZVJhbmdlcyhuLHIpfXZhciBpPWUobiks
bz1xLmNyZWF0ZVJuZygpO28uc2VsZWN0Tm9kZShhLmdldEJvZHkoKSk7dmFyIHM9ZShvKTtyZXR1
cm4gaT09PXN9YS5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5rZXlDb2RlLHIsaTtp
ZighYyhlKSYmKHQ9PVV8fHQ9PVYpKXtpZihyPWEuc2VsZWN0aW9uLmlzQ29sbGFwc2VkKCksaT1h
LmdldEJvZHkoKSxyJiYhcS5pc0VtcHR5KGkpKXJldHVybjtpZighciYmIW4oYS5zZWxlY3Rpb24u
Z2V0Um5nKCkpKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksYS5zZXRDb250ZW50KCIiKSxpLmZp
cnN0Q2hpbGQmJnEuaXNCbG9jayhpLmZpcnN0Q2hpbGQpP2Euc2VsZWN0aW9uLnNldEN1cnNvckxv
Y2F0aW9uKGkuZmlyc3RDaGlsZCwwKTphLnNlbGVjdGlvbi5zZXRDdXJzb3JMb2NhdGlvbihpLDAp
LGEubm9kZUNoYW5nZWQoKX19KX1mdW5jdGlvbiBmKCl7YS5vbigia2V5ZG93biIsZnVuY3Rpb24o
dCl7IWModCkmJjY1PT10LmtleUNvZGUmJmUubWV0YUtleVByZXNzZWQodCkmJih0LnByZXZlbnRE
ZWZhdWx0KCksYS5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIikpfSl9ZnVuY3Rpb24gcCgpe2Euc2V0
dGluZ3MuY29udGVudF9lZGl0YWJsZXx8KHEuYmluZChhLmdldERvYygpLCJmb2N1c2luIixmdW5j
dGlvbigpeyQuc2V0Um5nKCQuZ2V0Um5nKCkpfSkscS5iaW5kKGEuZ2V0RG9jKCksIm1vdXNlZG93
biIsZnVuY3Rpb24oZSl7ZS50YXJnZXQ9PWEuZ2V0RG9jKCkuZG9jdW1lbnRFbGVtZW50JiYoYS5n
ZXRCb2R5KCkuZm9jdXMoKSwkLnNldFJuZygkLmdldFJuZygpKSl9KSl9ZnVuY3Rpb24gaCgpe2Eu
b24oImtleWRvd24iLGZ1bmN0aW9uKGUpe2lmKCFjKGUpJiZlLmtleUNvZGU9PT1WJiYkLmlzQ29s
bGFwc2VkKCkmJjA9PT0kLmdldFJuZyghMCkuc3RhcnRPZmZzZXQpe3ZhciB0PSQuZ2V0Tm9kZSgp
LG49dC5wcmV2aW91c1NpYmxpbmc7aWYoIkhSIj09dC5ub2RlTmFtZSlyZXR1cm4gcS5yZW1vdmUo
dCksdm9pZCBlLnByZXZlbnREZWZhdWx0KCk7biYmbi5ub2RlTmFtZSYmImhyIj09PW4ubm9kZU5h
bWUudG9Mb3dlckNhc2UoKSYmKHEucmVtb3ZlKG4pLGUucHJldmVudERlZmF1bHQoKSl9fSl9ZnVu
Y3Rpb24gbSgpe3dpbmRvdy5SYW5nZS5wcm90b3R5cGUuZ2V0Q2xpZW50UmVjdHN8fGEub24oIm1v
dXNlZG93biIsZnVuY3Rpb24oZSl7aWYoIWMoZSkmJiJIVE1MIj09PWUudGFyZ2V0Lm5vZGVOYW1l
KXt2YXIgdD1hLmdldEJvZHkoKTt0LmJsdXIoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5mb2N1
cygpfSwwKX19KX1mdW5jdGlvbiBnKCl7YS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe2U9ZS50YXJn
ZXQsL14oSU1HfEhSKSQvLnRlc3QoZS5ub2RlTmFtZSkmJiQuZ2V0U2VsKCkuc2V0QmFzZUFuZEV4
dGVudChlLDAsZSwxKSwiQSI9PWUubm9kZU5hbWUmJnEuaGFzQ2xhc3MoZSwibWNlLWl0ZW0tYW5j
aG9yIikmJiQuc2VsZWN0KGUpLGEubm9kZUNoYW5nZWQoKX0pfWZ1bmN0aW9uIHYoKXtmdW5jdGlv
biBlKCl7dmFyIGU9cS5nZXRBdHRyaWJzKCQuZ2V0U3RhcnQoKS5jbG9uZU5vZGUoITEpKTtyZXR1
cm4gZnVuY3Rpb24oKXt2YXIgdD0kLmdldFN0YXJ0KCk7dCE9PWEuZ2V0Qm9keSgpJiYocS5zZXRB
dHRyaWIodCwic3R5bGUiLG51bGwpLFcoZSxmdW5jdGlvbihlKXt0LnNldEF0dHJpYnV0ZU5vZGUo
ZS5jbG9uZU5vZGUoITApKX0pKX19ZnVuY3Rpb24gdCgpe3JldHVybiEkLmlzQ29sbGFwc2VkKCkm
JnEuZ2V0UGFyZW50KCQuZ2V0U3RhcnQoKSxxLmlzQmxvY2spIT1xLmdldFBhcmVudCgkLmdldEVu
ZCgpLHEuaXNCbG9jayl9YS5vbigia2V5cHJlc3MiLGZ1bmN0aW9uKG4pe3ZhciByO3JldHVybiBj
KG4pfHw4IT1uLmtleUNvZGUmJjQ2IT1uLmtleUNvZGV8fCF0KCk/dm9pZCAwOihyPWUoKSxhLmdl
dERvYygpLmV4ZWNDb21tYW5kKCJkZWxldGUiLCExLG51bGwpLHIoKSxuLnByZXZlbnREZWZhdWx0
KCksITEpfSkscS5iaW5kKGEuZ2V0RG9jKCksImN1dCIsZnVuY3Rpb24obil7dmFyIHI7IWMobikm
JnQoKSYmKHI9ZSgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyKCl9LDApKX0pfWZ1bmN0aW9uIHko
KXt2YXIgZSxuO2Eub24oInNlbGVjdGlvbmNoYW5nZSIsZnVuY3Rpb24oKXtuJiYoY2xlYXJUaW1l
b3V0KG4pLG49MCksbj13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2lmKCFhLnJlbW92ZWQp
e3ZhciBuPSQuZ2V0Um5nKCk7ZSYmdC5jb21wYXJlUmFuZ2VzKG4sZSl8fChhLm5vZGVDaGFuZ2Vk
KCksZT1uKX19LDUwKX0pfWZ1bmN0aW9uIGIoKXtkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgi
cm9sZSIsImFwcGxpY2F0aW9uIil9ZnVuY3Rpb24gQygpe2Eub24oImtleWRvd24iLGZ1bmN0aW9u
KGUpe2lmKCFjKGUpJiZlLmtleUNvZGU9PT1WJiYkLmlzQ29sbGFwc2VkKCkmJjA9PT0kLmdldFJu
ZyghMCkuc3RhcnRPZmZzZXQpe3ZhciB0PSQuZ2V0Tm9kZSgpLnByZXZpb3VzU2libGluZztpZih0
JiZ0Lm5vZGVOYW1lJiYidGFibGUiPT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiBl
LnByZXZlbnREZWZhdWx0KCksITF9fSl9ZnVuY3Rpb24geCgpe2woKT43fHwocygiUmVzcGVjdFZp
c2liaWxpdHlJbkRlc2lnbiIsITApLGEuY29udGVudFN0eWxlcy5wdXNoKCIubWNlSGlkZUJySW5Q
cmUgcHJlIGJyIHtkaXNwbGF5OiBub25lfSIpLHEuYWRkQ2xhc3MoYS5nZXRCb2R5KCksIm1jZUhp
ZGVCckluUHJlIiksSy5hZGROb2RlRmlsdGVyKCJwcmUiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1l
Lmxlbmd0aCxyLGksbyxhO3QtLTspZm9yKHI9ZVt0XS5nZXRBbGwoImJyIiksaT1yLmxlbmd0aDtp
LS07KW89cltpXSxhPW8ucHJldixhJiYzPT09YS50eXBlJiYiXG4iIT1hLnZhbHVlLmNoYXJBdChh
LnZhbHVlLTEpP2EudmFsdWUrPSJcbiI6by5wYXJlbnQuaW5zZXJ0KG5ldyBuKCIjdGV4dCIsMyks
bywhMCkudmFsdWU9IlxuIn0pLEcuYWRkTm9kZUZpbHRlcigicHJlIixmdW5jdGlvbihlKXtmb3Io
dmFyIHQ9ZS5sZW5ndGgsbixyLGksbzt0LS07KWZvcihuPWVbdF0uZ2V0QWxsKCJiciIpLHI9bi5s
ZW5ndGg7ci0tOylpPW5bcl0sbz1pLnByZXYsbyYmMz09by50eXBlJiYoby52YWx1ZT1vLnZhbHVl
LnJlcGxhY2UoL1xyP1xuJC8sIiIpKX0pKX1mdW5jdGlvbiB3KCl7cS5iaW5kKGEuZ2V0Qm9keSgp
LCJtb3VzZXVwIixmdW5jdGlvbigpe3ZhciBlLHQ9JC5nZXROb2RlKCk7IklNRyI9PXQubm9kZU5h
bWUmJigoZT1xLmdldFN0eWxlKHQsIndpZHRoIikpJiYocS5zZXRBdHRyaWIodCwid2lkdGgiLGUu
cmVwbGFjZSgvW14wLTklXSsvZywiIikpLHEuc2V0U3R5bGUodCwid2lkdGgiLCIiKSksKGU9cS5n
ZXRTdHlsZSh0LCJoZWlnaHQiKSkmJihxLnNldEF0dHJpYih0LCJoZWlnaHQiLGUucmVwbGFjZSgv
W14wLTklXSsvZywiIikpLHEuc2V0U3R5bGUodCwiaGVpZ2h0IiwiIikpKX0pfWZ1bmN0aW9uIF8o
KXthLm9uKCJrZXlkb3duIixmdW5jdGlvbih0KXt2YXIgbixyLGksbyxzO2lmKCFjKHQpJiZ0Lmtl
eUNvZGU9PWUuQkFDS1NQQUNFJiYobj0kLmdldFJuZygpLHI9bi5zdGFydENvbnRhaW5lcixpPW4u
c3RhcnRPZmZzZXQsbz1xLmdldFJvb3QoKSxzPXIsbi5jb2xsYXBzZWQmJjA9PT1pKSl7Zm9yKDtz
JiZzLnBhcmVudE5vZGUmJnMucGFyZW50Tm9kZS5maXJzdENoaWxkPT1zJiZzLnBhcmVudE5vZGUh
PW87KXM9cy5wYXJlbnROb2RlOyJCTE9DS1FVT1RFIj09PXMudGFnTmFtZSYmKGEuZm9ybWF0dGVy
LnRvZ2dsZSgiYmxvY2txdW90ZSIsbnVsbCxzKSxuPXEuY3JlYXRlUm5nKCksbi5zZXRTdGFydChy
LDApLG4uc2V0RW5kKHIsMCksJC5zZXRSbmcobikpfX0pfWZ1bmN0aW9uIE4oKXtmdW5jdGlvbiBl
KCl7YS5fcmVmcmVzaENvbnRlbnRFZGl0YWJsZSgpLHMoIlN0eWxlV2l0aENTUyIsITEpLHMoImVu
YWJsZUlubGluZVRhYmxlRWRpdGluZyIsITEpLGoub2JqZWN0X3Jlc2l6aW5nfHxzKCJlbmFibGVP
YmplY3RSZXNpemluZyIsITEpfWoucmVhZG9ubHl8fGEub24oIkJlZm9yZUV4ZWNDb21tYW5kIE1v
dXNlRG93biIsZSl9ZnVuY3Rpb24gRSgpe2Z1bmN0aW9uIGUoKXtXKHEuc2VsZWN0KCJhIiksZnVu
Y3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlLG49cS5nZXRSb290KCk7aWYodC5sYXN0Q2hpbGQ9
PT1lKXtmb3IoO3QmJiFxLmlzQmxvY2sodCk7KXtpZih0LnBhcmVudE5vZGUubGFzdENoaWxkIT09
dHx8dD09PW4pcmV0dXJuO3Q9dC5wYXJlbnROb2RlfXEuYWRkKHQsImJyIix7ImRhdGEtbWNlLWJv
Z3VzIjoxfSl9fSl9YS5vbigiU2V0Q29udGVudCBFeGVjQ29tbWFuZCIsZnVuY3Rpb24odCl7KCJz
ZXRjb250ZW50Ij09dC50eXBlfHwibWNlSW5zZXJ0TGluayI9PT10LmNvbW1hbmQpJiZlKCl9KX1m
dW5jdGlvbiBTKCl7ai5mb3JjZWRfcm9vdF9ibG9jayYmYS5vbigiaW5pdCIsZnVuY3Rpb24oKXtz
KCJEZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yIixqLmZvcmNlZF9yb290X2Jsb2NrKX0pfWZ1bmN0
aW9uIGsoKXthLm9uKCJVbmRvIFJlZG8gU2V0Q29udGVudCIsZnVuY3Rpb24oZSl7ZS5pbml0aWFs
fHxhLmV4ZWNDb21tYW5kKCJtY2VSZXBhaW50Iil9KX1mdW5jdGlvbiBUKCl7YS5vbigia2V5ZG93
biIsZnVuY3Rpb24oZSl7dmFyIHQ7YyhlKXx8ZS5rZXlDb2RlIT1WfHwodD1hLmdldERvYygpLnNl
bGVjdGlvbi5jcmVhdGVSYW5nZSgpLHQmJnQuaXRlbSYmKGUucHJldmVudERlZmF1bHQoKSxhLnVu
ZG9NYW5hZ2VyLmJlZm9yZUNoYW5nZSgpLHEucmVtb3ZlKHQuaXRlbSgwKSksYS51bmRvTWFuYWdl
ci5hZGQoKSkpfSl9ZnVuY3Rpb24gUigpe3ZhciBlO2woKT49MTAmJihlPSIiLFcoInAgZGl2IGgx
IGgyIGgzIGg0IGg1IGg2Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKHQsbil7ZSs9KG4+MD8iLCI6IiIp
K3QrIjplbXB0eSJ9KSxhLmNvbnRlbnRTdHlsZXMucHVzaChlKyJ7cGFkZGluZy1yaWdodDogMXB4
ICFpbXBvcnRhbnR9IikpfWZ1bmN0aW9uIEEoKXtsKCk8OSYmKEsuYWRkTm9kZUZpbHRlcigibm9z
Y3JpcHQiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxuLHI7dC0tOyluPWVbdF0scj1u
LmZpcnN0Q2hpbGQsciYmbi5hdHRyKCJkYXRhLW1jZS1pbm5lcnRleHQiLHIudmFsdWUpfSksRy5h
ZGROb2RlRmlsdGVyKCJub3NjcmlwdCIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUubGVuZ3RoLGks
byxhO3QtLTspaT1lW3RdLG89ZVt0XS5maXJzdENoaWxkLG8/by52YWx1ZT1yLmRlY29kZShvLnZh
bHVlKTooYT1pLmF0dHJpYnV0ZXMubWFwWyJkYXRhLW1jZS1pbm5lcnRleHQiXSxhJiYoaS5hdHRy
KCJkYXRhLW1jZS1pbm5lcnRleHQiLG51bGwpLG89bmV3IG4oIiN0ZXh0IiwzKSxvLnZhbHVlPWEs
by5yYXc9ITAsaS5hcHBlbmQobykpKX0pKX1mdW5jdGlvbiBCKCl7ZnVuY3Rpb24gZShlLHQpe3Zh
ciBuPWkuY3JlYXRlVGV4dFJhbmdlKCk7dHJ5e24ubW92ZVRvUG9pbnQoZSx0KX1jYXRjaChyKXtu
PW51bGx9cmV0dXJuIG59ZnVuY3Rpb24gdCh0KXt2YXIgcjt0LmJ1dHRvbj8ocj1lKHQueCx0Lnkp
LHImJihyLmNvbXBhcmVFbmRQb2ludHMoIlN0YXJ0VG9TdGFydCIsYSk+MD9yLnNldEVuZFBvaW50
KCJTdGFydFRvU3RhcnQiLGEpOnIuc2V0RW5kUG9pbnQoIkVuZFRvRW5kIixhKSxyLnNlbGVjdCgp
KSk6bigpfWZ1bmN0aW9uIG4oKXt2YXIgZT1yLnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO2EmJiFl
Lml0ZW0mJjA9PT1lLmNvbXBhcmVFbmRQb2ludHMoIlN0YXJ0VG9FbmQiLGUpJiZhLnNlbGVjdCgp
LHEudW5iaW5kKHIsIm1vdXNldXAiLG4pLHEudW5iaW5kKHIsIm1vdXNlbW92ZSIsdCksYT1vPTB9
dmFyIHI9cS5kb2MsaT1yLmJvZHksbyxhLHM7ci5kb2N1bWVudEVsZW1lbnQudW5zZWxlY3RhYmxl
PSEwLHEuYmluZChyLCJtb3VzZWRvd24gY29udGV4dG1lbnUiLGZ1bmN0aW9uKGkpe2lmKCJIVE1M
Ij09PWkudGFyZ2V0Lm5vZGVOYW1lKXtpZihvJiZuKCkscz1yLmRvY3VtZW50RWxlbWVudCxzLnNj
cm9sbEhlaWdodD5zLmNsaWVudEhlaWdodClyZXR1cm47bz0xLGE9ZShpLngsaS55KSxhJiYocS5i
aW5kKHIsIm1vdXNldXAiLG4pLHEuYmluZChyLCJtb3VzZW1vdmUiLHQpLHEuZ2V0Um9vdCgpLmZv
Y3VzKCksYS5zZWxlY3QoKSl9fSl9ZnVuY3Rpb24gRCgpe2Eub24oImtleXVwIGZvY3VzaW4gbW91
c2V1cCIsZnVuY3Rpb24odCl7NjU9PXQua2V5Q29kZSYmZS5tZXRhS2V5UHJlc3NlZCh0KXx8JC5u
b3JtYWxpemUoKX0sITApfWZ1bmN0aW9uIEwoKXthLmNvbnRlbnRTdHlsZXMucHVzaCgiaW1nOi1t
b3otYnJva2VuIHstbW96LWZvcmNlLWJyb2tlbi1pbWFnZS1pY29uOjE7bWluLXdpZHRoOjI0cHg7
bWluLWhlaWdodDoyNHB4fSIpfWZ1bmN0aW9uIE0oKXthLmlubGluZXx8YS5vbigia2V5ZG93biIs
ZnVuY3Rpb24oKXtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT1kb2N1bWVudC5ib2R5JiZhLmdldFdp
bigpLmZvY3VzKCl9KX1mdW5jdGlvbiBIKCl7YS5pbmxpbmV8fChhLmNvbnRlbnRTdHlsZXMucHVz
aCgiYm9keSB7bWluLWhlaWdodDogMTUwcHh9IiksYS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpeyJI
VE1MIj09ZS50YXJnZXQubm9kZU5hbWUmJihhLmdldEJvZHkoKS5mb2N1cygpLGEuc2VsZWN0aW9u
Lm5vcm1hbGl6ZSgpLGEubm9kZUNoYW5nZWQoKSl9KSl9ZnVuY3Rpb24gUCgpe2kubWFjJiZhLm9u
KCJrZXlkb3duIixmdW5jdGlvbih0KXshZS5tZXRhS2V5UHJlc3NlZCh0KXx8MzchPXQua2V5Q29k
ZSYmMzkhPXQua2V5Q29kZXx8KHQucHJldmVudERlZmF1bHQoKSxhLnNlbGVjdGlvbi5nZXRTZWwo
KS5tb2RpZnkoIm1vdmUiLDM3PT10LmtleUNvZGU/ImJhY2t3YXJkIjoiZm9yd2FyZCIsIndvcmQi
KSl9KX1mdW5jdGlvbiBPKCl7cygiQXV0b1VybERldGVjdCIsITEpfWZ1bmN0aW9uIEkoKXthLmlu
bGluZXx8YS5vbigiZm9jdXMgYmx1ciBiZWZvcmVnZXRjb250ZW50IixmdW5jdGlvbigpe3ZhciBl
PWEuZG9tLmNyZWF0ZSgiYnIiKTthLmdldEJvZHkoKS5hcHBlbmRDaGlsZChlKSxlLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoZSl9LCEwKX1mdW5jdGlvbiBGKCl7YS5vbigiY2xpY2siLGZ1bmN0aW9u
KGUpe3ZhciB0PWUudGFyZ2V0O2RvIGlmKCJBIj09PXQudGFnTmFtZSlyZXR1cm4gdm9pZCBlLnBy
ZXZlbnREZWZhdWx0KCk7d2hpbGUodD10LnBhcmVudE5vZGUpfSksYS5jb250ZW50U3R5bGVzLnB1
c2goIi5tY2UtY29udGVudC1ib2R5IHstd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmV9Iil9ZnVu
Y3Rpb24geigpe2Eub24oImluaXQiLGZ1bmN0aW9uKCl7YS5kb20uYmluZChhLmdldEJvZHkoKSwi
c3VibWl0IixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9KX0pfXZhciBXPW8uZWFjaCxW
PWUuQkFDS1NQQUNFLFU9ZS5ERUxFVEUscT1hLmRvbSwkPWEuc2VsZWN0aW9uLGo9YS5zZXR0aW5n
cyxLPWEucGFyc2VyLEc9YS5zZXJpYWxpemVyLFk9aS5nZWNrbyxYPWkuaWUsSj1pLndlYmtpdDtD
KCksXygpLGQoKSxEKCksSiYmKHUoKSxwKCksZygpLFMoKSx6KCksaS5pT1M/KHkoKSxNKCksSCgp
LEYoKSk6ZigpKSxYJiZpLmllPDExJiYoaCgpLGIoKSx4KCksdygpLFQoKSxSKCksQSgpLEIoKSks
aS5pZT49MTEmJihIKCksSSgpKSxpLmllJiYoZigpLE8oKSksWSYmKGgoKSxtKCksdigpLE4oKSxF
KCksaygpLEwoKSxQKCkpfX0pLHIob3QsW1ddLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7cmV0
dXJuIHQuX2V2ZW50RGlzcGF0Y2hlcnx8KHQuX2V2ZW50RGlzcGF0Y2hlcj1uZXcgZSh7c2NvcGU6
dCx0b2dnbGVFdmVudDpmdW5jdGlvbihuLHIpe2UuaXNOYXRpdmUobikmJnQudG9nZ2xlTmF0aXZl
RXZlbnQmJnQudG9nZ2xlTmF0aXZlRXZlbnQobixyKX19KSksdC5fZXZlbnREaXNwYXRjaGVyfXJl
dHVybntmaXJlOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT10aGlzO2lmKGkucmVtb3ZlZCYmInJlbW92
ZSIhPT1lKXJldHVybiBuO2lmKG49dChpKS5maXJlKGUsbixyKSxyIT09ITEmJmkucGFyZW50KWZv
cih2YXIgbz1pLnBhcmVudCgpO28mJiFuLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KW8uZmlyZShl
LG4sITEpLG89by5wYXJlbnQoKTtyZXR1cm4gbn0sb246ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0
KHRoaXMpLm9uKGUsbixyKX0sb2ZmOmZ1bmN0aW9uKGUsbil7cmV0dXJuIHQodGhpcykub2ZmKGUs
bil9LGhhc0V2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKGUpe3JldHVybiB0KHRoaXMpLmhhcyhlKX19
fSkscihhdCxbb3QseSxwXSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihlLHQpe3JldHVybiJz
ZWxlY3Rpb25jaGFuZ2UiPT10P2UuZ2V0RG9jKCk6IWUuaW5saW5lJiYvXm1vdXNlfGNsaWNrfGNv
bnRleHRtZW51fGRyb3AvLnRlc3QodCk/ZS5nZXREb2MoKTplLmdldEJvZHkoKX1mdW5jdGlvbiBp
KGUsdCl7dmFyIG49ZS5zZXR0aW5ncy5ldmVudF9yb290LGk9ZS5lZGl0b3JNYW5hZ2VyLGE9aS5l
dmVudFJvb3RFbG18fHIoZSx0KTtpZihuKXtpZihpLnJvb3RFdmVudHN8fChpLnJvb3RFdmVudHM9
e30saS5vbigiUmVtb3ZlRWRpdG9yIixmdW5jdGlvbigpe2kuYWN0aXZlRWRpdG9yfHwoby51bmJp
bmQoYSksZGVsZXRlIGkucm9vdEV2ZW50cyl9KSksaS5yb290RXZlbnRzW3RdKXJldHVybjthPT1l
LmdldEJvZHkoKSYmKGE9by5zZWxlY3QobilbMF0saS5ldmVudFJvb3RFbG09YSksaS5yb290RXZl
bnRzW3RdPSEwLG8uYmluZChhLHQsZnVuY3Rpb24oZSl7Zm9yKHZhciBuPWUudGFyZ2V0LHI9aS5l
ZGl0b3JzLGE9ci5sZW5ndGg7YS0tOyl7dmFyIHM9clthXS5nZXRCb2R5KCk7KHM9PT1ufHxvLmlz
Q2hpbGRPZihuLHMpKSYmKHJbYV0uaGlkZGVufHxyW2FdLmZpcmUodCxlKSl9fSl9ZWxzZSBlLmRv
bS5iaW5kKGEsdCxmdW5jdGlvbihuKXtlLmhpZGRlbnx8ZS5maXJlKHQsbil9KX12YXIgbz10LkRP
TSxhPXtiaW5kUGVuZGluZ0V2ZW50RGVsZWdhdGVzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztuLmVh
Y2goZS5fcGVuZGluZ05hdGl2ZUV2ZW50cyxmdW5jdGlvbih0KXtpKGUsdCl9KX0sdG9nZ2xlTmF0
aXZlRXZlbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO24uc2V0dGluZ3MucmVhZG9ubHl8fCJm
b2N1cyIhPWUmJiJibHVyIiE9ZSYmKHQ/bi5pbml0aWFsaXplZD9pKG4sZSk6bi5fcGVuZGluZ05h
dGl2ZUV2ZW50cz9uLl9wZW5kaW5nTmF0aXZlRXZlbnRzLnB1c2goZSk6bi5fcGVuZGluZ05hdGl2
ZUV2ZW50cz1bZV06bi5pbml0aWFsaXplZCYmbi5kb20udW5iaW5kKHIobixlKSxlKSl9fTtyZXR1
cm4gYT1uLmV4dGVuZCh7fSxlLGEpfSkscihzdCxbcCxnXSxmdW5jdGlvbihlLHQpe3ZhciBuPWUu
ZWFjaCxyPWUuZXhwbG9kZSxpPXtmOToxMjAsZjEwOjEyMSxmMTE6MTIyfTtyZXR1cm4gZnVuY3Rp
b24obyl7dmFyIGE9dGhpcyxzPXt9O28ub24oImtleXVwIGtleXByZXNzIGtleWRvd24iLGZ1bmN0
aW9uKGUpeyhlLmFsdEtleXx8ZS5jdHJsS2V5fHxlLm1ldGFLZXkpJiZuKHMsZnVuY3Rpb24obil7
dmFyIHI9dC5tYWM/ZS5tZXRhS2V5OmUuY3RybEtleTtpZihuLmN0cmw9PXImJm4uYWx0PT1lLmFs
dEtleSYmbi5zaGlmdD09ZS5zaGlmdEtleSlyZXR1cm4gZS5rZXlDb2RlPT1uLmtleUNvZGV8fGUu
Y2hhckNvZGUmJmUuY2hhckNvZGU9PW4uY2hhckNvZGU/KGUucHJldmVudERlZmF1bHQoKSwia2V5
ZG93biI9PWUudHlwZSYmbi5mdW5jLmNhbGwobi5zY29wZSksITApOnZvaWQgMH0pfSksYS5hZGQ9
ZnVuY3Rpb24odCxhLGwsYyl7dmFyIHU7cmV0dXJuIHU9bCwic3RyaW5nIj09dHlwZW9mIGw/bD1m
dW5jdGlvbigpe28uZXhlY0NvbW1hbmQodSwhMSxudWxsKX06ZS5pc0FycmF5KHUpJiYobD1mdW5j
dGlvbigpe28uZXhlY0NvbW1hbmQodVswXSx1WzFdLHVbMl0pfSksbihyKHQudG9Mb3dlckNhc2Uo
KSksZnVuY3Rpb24oZSl7dmFyIHQ9e2Z1bmM6bCxzY29wZTpjfHxvLGRlc2M6by50cmFuc2xhdGUo
YSksYWx0OiExLGN0cmw6ITEsc2hpZnQ6ITF9O24ocihlLCIrIiksZnVuY3Rpb24oZSl7c3dpdGNo
KGUpe2Nhc2UiYWx0IjpjYXNlImN0cmwiOmNhc2Uic2hpZnQiOnRbZV09ITA7YnJlYWs7ZGVmYXVs
dDp0LmNoYXJDb2RlPWUuY2hhckNvZGVBdCgwKSx0LmtleUNvZGU9aVtlXXx8ZS50b1VwcGVyQ2Fz
ZSgpLmNoYXJDb2RlQXQoMCl9fSksc1sodC5jdHJsPyJjdHJsIjoiIikrIiwiKyh0LmFsdD8iYWx0
IjoiIikrIiwiKyh0LnNoaWZ0PyJzaGlmdCI6IiIpKyIsIit0LmtleUNvZGVdPXR9KSwhMH19fSks
cihsdCxbeSxDLHgsayxTLEQsTSxILFAsTyxJLEYsYixsLHJ0LHcsTixpdCxnLHAsYXQsc3RdLGZ1
bmN0aW9uKGUsbixyLGksbyxhLHMsbCxjLHUsZCxmLHAsaCxtLGcsdix5LGIsQyx4LHcpe2Z1bmN0
aW9uIF8oZSx0LHIpe3ZhciBpPXRoaXMsbyxhO289aS5kb2N1bWVudEJhc2VVcmw9ci5kb2N1bWVu
dEJhc2VVUkwsYT1yLmJhc2VVUkksaS5zZXR0aW5ncz10PWsoe2lkOmUsdGhlbWU6Im1vZGVybiIs
ZGVsdGFfd2lkdGg6MCxkZWx0YV9oZWlnaHQ6MCxwb3B1cF9jc3M6IiIscGx1Z2luczoiIixkb2N1
bWVudF9iYXNlX3VybDpvLGFkZF9mb3JtX3N1Ym1pdF90cmlnZ2VyOiEwLHN1Ym1pdF9wYXRjaDoh
MCxhZGRfdW5sb2FkX3RyaWdnZXI6ITAsY29udmVydF91cmxzOiEwLHJlbGF0aXZlX3VybHM6ITAs
cmVtb3ZlX3NjcmlwdF9ob3N0OiEwLG9iamVjdF9yZXNpemluZzohMCxkb2N0eXBlOiI8IURPQ1RZ
UEUgaHRtbD4iLHZpc3VhbDohMCxmb250X3NpemVfc3R5bGVfdmFsdWVzOiJ4eC1zbWFsbCx4LXNt
YWxsLHNtYWxsLG1lZGl1bSxsYXJnZSx4LWxhcmdlLHh4LWxhcmdlIixmb250X3NpemVfbGVnYWN5
X3ZhbHVlczoieHgtc21hbGwsc21hbGwsbWVkaXVtLGxhcmdlLHgtbGFyZ2UseHgtbGFyZ2UsMzAw
JSIsZm9yY2VkX3Jvb3RfYmxvY2s6InAiLGhpZGRlbl9pbnB1dDohMCxwYWRkX2VtcHR5X2VkaXRv
cjohMCxyZW5kZXJfdWk6ITAsaW5kZW50YXRpb246IjMwcHgiLGlubGluZV9zdHlsZXM6ITAsY29u
dmVydF9mb250c190b19zcGFuczohMCxpbmRlbnQ6InNpbXBsZSIsaW5kZW50X2JlZm9yZToicCxo
MSxoMixoMyxoNCxoNSxoNixibG9ja3F1b3RlLGRpdix0aXRsZSxzdHlsZSxwcmUsc2NyaXB0LHRk
LHVsLGxpLGFyZWEsdGFibGUsdGhlYWQsdGZvb3QsdGJvZHksdHIsc2VjdGlvbixhcnRpY2xlLGhn
cm91cCxhc2lkZSxmaWd1cmUsb3B0aW9uLG9wdGdyb3VwLGRhdGFsaXN0IixpbmRlbnRfYWZ0ZXI6
InAsaDEsaDIsaDMsaDQsaDUsaDYsYmxvY2txdW90ZSxkaXYsdGl0bGUsc3R5bGUscHJlLHNjcmlw
dCx0ZCx1bCxsaSxhcmVhLHRhYmxlLHRoZWFkLHRmb290LHRib2R5LHRyLHNlY3Rpb24sYXJ0aWNs
ZSxoZ3JvdXAsYXNpZGUsZmlndXJlLG9wdGlvbixvcHRncm91cCxkYXRhbGlzdCIsdmFsaWRhdGU6
ITAsZW50aXR5X2VuY29kaW5nOiJuYW1lZCIsdXJsX2NvbnZlcnRlcjppLmNvbnZlcnRVUkwsdXJs
X2NvbnZlcnRlcl9zY29wZTppLGllN19jb21wYXQ6ITB9LHQpLG4ubGFuZ3VhZ2U9dC5sYW5ndWFn
ZXx8ImVuIixuLmxhbmd1YWdlTG9hZD10Lmxhbmd1YWdlX2xvYWQsbi5iYXNlVVJMPXIuYmFzZVVS
TCxpLmlkPXQuaWQ9ZSxpLmlzTm90RGlydHk9ITAsaS5wbHVnaW5zPXt9LGkuZG9jdW1lbnRCYXNl
VVJJPW5ldyBmKHQuZG9jdW1lbnRfYmFzZV91cmx8fG8se2Jhc2VfdXJpOmF9KSxpLmJhc2VVUkk9
YSxpLmNvbnRlbnRDU1M9W10saS5jb250ZW50U3R5bGVzPVtdLGkuc2hvcnRjdXRzPW5ldyB3KGkp
LGkuZXhlY0NvbW1hbmRzPXt9LGkucXVlcnlTdGF0ZUNvbW1hbmRzPXt9LGkucXVlcnlWYWx1ZUNv
bW1hbmRzPXt9LGkubG9hZGVkQ1NTPXt9LGkuc3VmZml4PXIuc3VmZml4LGkuZWRpdG9yTWFuYWdl
cj1yLGkuaW5saW5lPXQuaW5saW5lLHIuZmlyZSgiU2V0dXBFZGl0b3IiLGkpLGkuZXhlY0NhbGxi
YWNrKCJzZXR1cCIsaSl9dmFyIE49ZS5ET00sRT1uLlRoZW1lTWFuYWdlcixTPW4uUGx1Z2luTWFu
YWdlcixrPUMuZXh0ZW5kLFQ9Qy5lYWNoLFI9Qy5leHBsb2RlLEE9Qy5pbkFycmF5LEI9Qy50cmlt
LEQ9Qy5yZXNvbHZlLEw9aC5FdmVudCxNPWIuZ2Vja28sSD1iLmllO3JldHVybiBfLnByb3RvdHlw
ZT17cmVuZGVyOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe04udW5iaW5kKHdpbmRvdywicmVhZHki
LGUpLG4ucmVuZGVyKCl9ZnVuY3Rpb24gdCgpe3ZhciBlPXAuU2NyaXB0TG9hZGVyO2lmKHIubGFu
Z3VhZ2UmJiJlbiIhPXIubGFuZ3VhZ2UmJiFyLmxhbmd1YWdlX3VybCYmKHIubGFuZ3VhZ2VfdXJs
PW4uZWRpdG9yTWFuYWdlci5iYXNlVVJMKyIvbGFuZ3MvIityLmxhbmd1YWdlKyIuanMiKSxyLmxh
bmd1YWdlX3VybCYmZS5hZGQoci5sYW5ndWFnZV91cmwpLHIudGhlbWUmJiJmdW5jdGlvbiIhPXR5
cGVvZiByLnRoZW1lJiYiLSIhPXIudGhlbWUuY2hhckF0KDApJiYhRS51cmxzW3IudGhlbWVdKXt2
YXIgdD1yLnRoZW1lX3VybDt0PXQ/bi5kb2N1bWVudEJhc2VVUkkudG9BYnNvbHV0ZSh0KToidGhl
bWVzLyIrci50aGVtZSsiL3RoZW1lIitvKyIuanMiLEUubG9hZChyLnRoZW1lLHQpfUMuaXNBcnJh
eShyLnBsdWdpbnMpJiYoci5wbHVnaW5zPXIucGx1Z2lucy5qb2luKCIgIikpLFQoci5leHRlcm5h
bF9wbHVnaW5zLGZ1bmN0aW9uKGUsdCl7Uy5sb2FkKHQsZSksci5wbHVnaW5zKz0iICIrdH0pLFQo
ci5wbHVnaW5zLnNwbGl0KC9bICxdLyksZnVuY3Rpb24oZSl7aWYoZT1CKGUpLGUmJiFTLnVybHNb
ZV0paWYoIi0iPT1lLmNoYXJBdCgwKSl7ZT1lLnN1YnN0cigxLGUubGVuZ3RoKTt2YXIgdD1TLmRl
cGVuZGVuY2llcyhlKTtUKHQsZnVuY3Rpb24oZSl7dmFyIHQ9e3ByZWZpeDoicGx1Z2lucy8iLHJl
c291cmNlOmUsc3VmZml4OiIvcGx1Z2luIitvKyIuanMifTtlPVMuY3JlYXRlVXJsKHQsZSksUy5s
b2FkKGUucmVzb3VyY2UsZSl9KX1lbHNlIFMubG9hZChlLHtwcmVmaXg6InBsdWdpbnMvIixyZXNv
dXJjZTplLHN1ZmZpeDoiL3BsdWdpbiIrbysiLmpzIn0pfSksZS5sb2FkUXVldWUoZnVuY3Rpb24o
KXtuLnJlbW92ZWR8fG4uaW5pdCgpfSl9dmFyIG49dGhpcyxyPW4uc2V0dGluZ3MsaT1uLmlkLG89
bi5zdWZmaXg7aWYoIUwuZG9tTG9hZGVkKXJldHVybiB2b2lkIE4uYmluZCh3aW5kb3csInJlYWR5
IixlKTtpZihuLmdldEVsZW1lbnQoKSYmYi5jb250ZW50RWRpdGFibGUpe3IuaW5saW5lP24uaW5s
aW5lPSEwOihuLm9yZ1Zpc2liaWxpdHk9bi5nZXRFbGVtZW50KCkuc3R5bGUudmlzaWJpbGl0eSxu
LmdldEVsZW1lbnQoKS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKTt2YXIgYT1uLmdldEVsZW1l
bnQoKS5mb3JtfHxOLmdldFBhcmVudChpLCJmb3JtIik7YSYmKG4uZm9ybUVsZW1lbnQ9YSxyLmhp
ZGRlbl9pbnB1dCYmIS9URVhUQVJFQXxJTlBVVC9pLnRlc3Qobi5nZXRFbGVtZW50KCkubm9kZU5h
bWUpJiYoTi5pbnNlcnRBZnRlcihOLmNyZWF0ZSgiaW5wdXQiLHt0eXBlOiJoaWRkZW4iLG5hbWU6
aX0pLGkpLG4uaGFzSGlkZGVuSW5wdXQ9ITApLG4uZm9ybUV2ZW50RGVsZWdhdGU9ZnVuY3Rpb24o
ZSl7bi5maXJlKGUudHlwZSxlKX0sTi5iaW5kKGEsInN1Ym1pdCByZXNldCIsbi5mb3JtRXZlbnRE
ZWxlZ2F0ZSksbi5vbigicmVzZXQiLGZ1bmN0aW9uKCl7bi5zZXRDb250ZW50KG4uc3RhcnRDb250
ZW50LHtmb3JtYXQ6InJhdyJ9KX0pLCFyLnN1Ym1pdF9wYXRjaHx8YS5zdWJtaXQubm9kZVR5cGV8
fGEuc3VibWl0Lmxlbmd0aHx8YS5fbWNlT2xkU3VibWl0fHwoYS5fbWNlT2xkU3VibWl0PWEuc3Vi
bWl0LGEuc3VibWl0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uZWRpdG9yTWFuYWdlci50cmlnZ2VyU2F2
ZSgpLG4uaXNOb3REaXJ0eT0hMCxhLl9tY2VPbGRTdWJtaXQoYSl9KSksbi53aW5kb3dNYW5hZ2Vy
PW5ldyBtKG4pLCJ4bWwiPT1yLmVuY29kaW5nJiZuLm9uKCJHZXRDb250ZW50IixmdW5jdGlvbihl
KXtlLnNhdmUmJihlLmNvbnRlbnQ9Ti5lbmNvZGUoZS5jb250ZW50KSl9KSxyLmFkZF9mb3JtX3N1
Ym1pdF90cmlnZ2VyJiZuLm9uKCJzdWJtaXQiLGZ1bmN0aW9uKCl7bi5pbml0aWFsaXplZCYmbi5z
YXZlKCl9KSxyLmFkZF91bmxvYWRfdHJpZ2dlciYmKG4uX2JlZm9yZVVubG9hZD1mdW5jdGlvbigp
eyFuLmluaXRpYWxpemVkfHxuLmRlc3Ryb3llZHx8bi5pc0hpZGRlbigpfHxuLnNhdmUoe2Zvcm1h
dDoicmF3Iixub19ldmVudHM6ITAsc2V0X2RpcnR5OiExfSl9LG4uZWRpdG9yTWFuYWdlci5vbigi
QmVmb3JlVW5sb2FkIixuLl9iZWZvcmVVbmxvYWQpKSx0KCl9fSxpbml0OmZ1bmN0aW9uKCl7ZnVu
Y3Rpb24gZShuKXt2YXIgcj1TLmdldChuKSxpLG87aT1TLnVybHNbbl18fHQuZG9jdW1lbnRCYXNl
VXJsLnJlcGxhY2UoL1wvJC8sIiIpLG49QihuKSxyJiYtMT09PUEobSxuKSYmKFQoUy5kZXBlbmRl
bmNpZXMobiksZnVuY3Rpb24odCl7ZSh0KX0pLG89bmV3IHIodCxpKSx0LnBsdWdpbnNbbl09byxv
LmluaXQmJihvLmluaXQodCxpKSxtLnB1c2gobikpKX12YXIgdD10aGlzLG49dC5zZXR0aW5ncyxy
PXQuZ2V0RWxlbWVudCgpLGksbyxhLHMsbCxjLHUsZCxmLHAsaCxtPVtdO2lmKHQucnRsPXRoaXMu
ZWRpdG9yTWFuYWdlci5pMThuLnJ0bCx0LmVkaXRvck1hbmFnZXIuYWRkKHQpLG4uYXJpYV9sYWJl
bD1uLmFyaWFfbGFiZWx8fE4uZ2V0QXR0cmliKHIsImFyaWEtbGFiZWwiLHQuZ2V0TGFuZygiYXJp
YS5yaWNoX3RleHRfYXJlYSIpKSxuLnRoZW1lJiYoImZ1bmN0aW9uIiE9dHlwZW9mIG4udGhlbWU/
KG4udGhlbWU9bi50aGVtZS5yZXBsYWNlKC8tLywiIiksYz1FLmdldChuLnRoZW1lKSx0LnRoZW1l
PW5ldyBjKHQsRS51cmxzW24udGhlbWVdKSx0LnRoZW1lLmluaXQmJnQudGhlbWUuaW5pdCh0LEUu
dXJsc1tuLnRoZW1lXXx8dC5kb2N1bWVudEJhc2VVcmwucmVwbGFjZSgvXC8kLywiIikpKTp0LnRo
ZW1lPW4udGhlbWUpLFQobi5wbHVnaW5zLnJlcGxhY2UoL1wtL2csIiIpLnNwbGl0KC9bICxdLyks
ZSksbi5yZW5kZXJfdWkmJnQudGhlbWUmJih0Lm9yZ0Rpc3BsYXk9ci5zdHlsZS5kaXNwbGF5LCJm
dW5jdGlvbiIhPXR5cGVvZiBuLnRoZW1lPyhpPW4ud2lkdGh8fHIuc3R5bGUud2lkdGh8fHIub2Zm
c2V0V2lkdGgsbz1uLmhlaWdodHx8ci5zdHlsZS5oZWlnaHR8fHIub2Zmc2V0SGVpZ2h0LGE9bi5t
aW5faGVpZ2h0fHwxMDAscD0vXlswLTlcLl0rKHxweCkkL2kscC50ZXN0KCIiK2kpJiYoaT1NYXRo
Lm1heChwYXJzZUludChpLDEwKSwxMDApKSxwLnRlc3QoIiIrbykmJihvPU1hdGgubWF4KHBhcnNl
SW50KG8sMTApLGEpKSxsPXQudGhlbWUucmVuZGVyVUkoe3RhcmdldE5vZGU6cix3aWR0aDppLGhl
aWdodDpvLGRlbHRhV2lkdGg6bi5kZWx0YV93aWR0aCxkZWx0YUhlaWdodDpuLmRlbHRhX2hlaWdo
dH0pLG4uY29udGVudF9lZGl0YWJsZXx8KE4uc2V0U3R5bGVzKGwuc2l6ZUNvbnRhaW5lcnx8bC5l
ZGl0b3JDb250YWluZXIse3dpMmR0aDppLGgyZWlnaHQ6b30pLG89KGwuaWZyYW1lSGVpZ2h0fHxv
KSsoIm51bWJlciI9PXR5cGVvZiBvP2wuZGVsdGFIZWlnaHR8fDA6IiIpLGE+byYmKG89YSkpKToo
bD1uLnRoZW1lKHQsciksbC5lZGl0b3JDb250YWluZXIubm9kZVR5cGUmJihsLmVkaXRvckNvbnRh
aW5lcj1sLmVkaXRvckNvbnRhaW5lci5pZD1sLmVkaXRvckNvbnRhaW5lci5pZHx8dC5pZCsiX3Bh
cmVudCIpLGwuaWZyYW1lQ29udGFpbmVyLm5vZGVUeXBlJiYobC5pZnJhbWVDb250YWluZXI9bC5p
ZnJhbWVDb250YWluZXIuaWQ9bC5pZnJhbWVDb250YWluZXIuaWR8fHQuaWQrIl9pZnJhbWVjb250
YWluZXIiKSxvPWwuaWZyYW1lSGVpZ2h0fHxyLm9mZnNldEhlaWdodCksdC5lZGl0b3JDb250YWlu
ZXI9bC5lZGl0b3JDb250YWluZXIpLG4uY29udGVudF9jc3MmJlQoUihuLmNvbnRlbnRfY3NzKSxm
dW5jdGlvbihlKXt0LmNvbnRlbnRDU1MucHVzaCh0LmRvY3VtZW50QmFzZVVSSS50b0Fic29sdXRl
KGUpKX0pLG4uY29udGVudF9zdHlsZSYmdC5jb250ZW50U3R5bGVzLnB1c2gobi5jb250ZW50X3N0
eWxlKSxuLmNvbnRlbnRfZWRpdGFibGUpcmV0dXJuIHI9cz1sPW51bGwsdC5pbml0Q29udGVudEJv
ZHkoKTtmb3IodC5pZnJhbWVIVE1MPW4uZG9jdHlwZSsiPGh0bWw+PGhlYWQ+IixuLmRvY3VtZW50
X2Jhc2VfdXJsIT10LmRvY3VtZW50QmFzZVVybCYmKHQuaWZyYW1lSFRNTCs9JzxiYXNlIGhyZWY9
IicrdC5kb2N1bWVudEJhc2VVUkkuZ2V0VVJJKCkrJyIgLz4nKSwhYi5jYXJldEFmdGVyJiZuLmll
N19jb21wYXQmJih0LmlmcmFtZUhUTUwrPSc8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGli
bGUiIGNvbnRlbnQ9IklFPTciIC8+JyksdC5pZnJhbWVIVE1MKz0nPG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiIC8+JyxoPTA7
aDx0LmNvbnRlbnRDU1MubGVuZ3RoO2grKyl7dmFyIGc9dC5jb250ZW50Q1NTW2hdO3QuaWZyYW1l
SFRNTCs9JzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9IicrZysn
IiAvPicsdC5sb2FkZWRDU1NbZ109ITB9ZD1uLmJvZHlfaWR8fCJ0aW55bWNlIiwtMSE9ZC5pbmRl
eE9mKCI9IikmJihkPXQuZ2V0UGFyYW0oImJvZHlfaWQiLCIiLCJoYXNoIiksZD1kW3QuaWRdfHxk
KSxmPW4uYm9keV9jbGFzc3x8IiIsLTEhPWYuaW5kZXhPZigiPSIpJiYoZj10LmdldFBhcmFtKCJi
b2R5X2NsYXNzIiwiIiwiaGFzaCIpLGY9Zlt0LmlkXXx8IiIpLHQuaWZyYW1lSFRNTCs9JzwvaGVh
ZD48Ym9keSBpZD0iJytkKyciIGNsYXNzPSJtY2UtY29udGVudC1ib2R5ICcrZisnIiBvbmxvYWQ9
IndpbmRvdy5wYXJlbnQudGlueW1jZS5nZXQoXCcnK3QuaWQrIicpLmZpcmUoJ2xvYWQnKTtcIj48
YnI+PC9ib2R5PjwvaHRtbD4iO3ZhciB2PSdqYXZhc2NyaXB0OihmdW5jdGlvbigpe2RvY3VtZW50
Lm9wZW4oKTtkb2N1bWVudC5kb21haW49IicrZG9jdW1lbnQuZG9tYWluKyciO3ZhciBlZCA9IHdp
bmRvdy5wYXJlbnQudGlueW1jZS5nZXQoIicrdC5pZCsnIik7ZG9jdW1lbnQud3JpdGUoZWQuaWZy
YW1lSFRNTCk7ZG9jdW1lbnQuY2xvc2UoKTtlZC5pbml0Q29udGVudEJvZHkodHJ1ZSk7fSkoKSc7
aWYoZG9jdW1lbnQuZG9tYWluIT1sb2NhdGlvbi5ob3N0bmFtZSYmKHU9dikscz1OLmFkZChsLmlm
cmFtZUNvbnRhaW5lciwiaWZyYW1lIix7aWQ6dC5pZCsiX2lmciIsc3JjOnV8fCdqYXZhc2NyaXB0
OiIiJyxmcmFtZUJvcmRlcjoiMCIsYWxsb3dUcmFuc3BhcmVuY3k6InRydWUiLHRpdGxlOnQuZWRp
dG9yTWFuYWdlci50cmFuc2xhdGUoIlJpY2ggVGV4dCBBcmVhLiBQcmVzcyBBTFQtRjkgZm9yIG1l
bnUuIFByZXNzIEFMVC1GMTAgZm9yIHRvb2xiYXIuIFByZXNzIEFMVC0wIGZvciBoZWxwIiksc3R5
bGU6e3dpZHRoOiIxMDAlIixoZWlnaHQ6byxkaXNwbGF5OiJibG9jayJ9fSksSCl0cnl7dC5nZXRE
b2MoKX1jYXRjaCh5KXtzLnNyYz11PXZ9dC5jb250ZW50QXJlYUNvbnRhaW5lcj1sLmlmcmFtZUNv
bnRhaW5lcixsLmVkaXRvckNvbnRhaW5lciYmKE4uZ2V0KGwuZWRpdG9yQ29udGFpbmVyKS5zdHls
ZS5kaXNwbGF5PXQub3JnRGlzcGxheSksTi5nZXQodC5pZCkuc3R5bGUuZGlzcGxheT0ibm9uZSIs
Ti5zZXRBdHRyaWIodC5pZCwiYXJpYS1oaWRkZW4iLCEwKSx1fHx0LmluaXRDb250ZW50Qm9keSgp
LHI9cz1sPW51bGx9LGluaXRDb250ZW50Qm9keTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLG89bi5z
ZXR0aW5ncyxmPU4uZ2V0KG4uaWQpLHA9bi5nZXREb2MoKSxoLG07by5pbmxpbmV8fChuLmdldEVs
ZW1lbnQoKS5zdHlsZS52aXNpYmlsaXR5PW4ub3JnVmlzaWJpbGl0eSksdHx8by5jb250ZW50X2Vk
aXRhYmxlfHwocC5vcGVuKCkscC53cml0ZShuLmlmcmFtZUhUTUwpLHAuY2xvc2UoKSksby5jb250
ZW50X2VkaXRhYmxlJiYobi5vbigicmVtb3ZlIixmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0Qm9k
eSgpO04ucmVtb3ZlQ2xhc3MoZSwibWNlLWNvbnRlbnQtYm9keSIpLE4ucmVtb3ZlQ2xhc3MoZSwi
bWNlLWVkaXQtZm9jdXMiKSxOLnNldEF0dHJpYihlLCJjb250ZW50RWRpdGFibGUiLG51bGwpfSks
Ti5hZGRDbGFzcyhmLCJtY2UtY29udGVudC1ib2R5Iiksbi5jb250ZW50RG9jdW1lbnQ9cD1vLmNv
bnRlbnRfZG9jdW1lbnR8fGRvY3VtZW50LG4uY29udGVudFdpbmRvdz1vLmNvbnRlbnRfd2luZG93
fHx3aW5kb3csbi5ib2R5RWxlbWVudD1mLG8uY29udGVudF9kb2N1bWVudD1vLmNvbnRlbnRfd2lu
ZG93PW51bGwsby5yb290X25hbWU9Zi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSxoPW4uZ2V0Qm9k
eSgpLGguZGlzYWJsZWQ9ITAsby5yZWFkb25seXx8KG4uaW5saW5lJiYic3RhdGljIj09Ti5nZXRT
dHlsZShoLCJwb3NpdGlvbiIsITApJiYoaC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoLmNv
bnRlbnRFZGl0YWJsZT1uLmdldFBhcmFtKCJjb250ZW50X2VkaXRhYmxlX3N0YXRlIiwhMCkpLGgu
ZGlzYWJsZWQ9ITEsbi5zY2hlbWE9bmV3IGcobyksbi5kb209bmV3IGUocCx7a2VlcF92YWx1ZXM6
ITAsdXJsX2NvbnZlcnRlcjpuLmNvbnZlcnRVUkwsdXJsX2NvbnZlcnRlcl9zY29wZTpuLGhleF9j
b2xvcnM6by5mb3JjZV9oZXhfc3R5bGVfY29sb3JzLGNsYXNzX2ZpbHRlcjpvLmNsYXNzX2ZpbHRl
cix1cGRhdGVfc3R5bGVzOiEwLHJvb3RfZWxlbWVudDpvLmNvbnRlbnRfZWRpdGFibGU/bi5pZDpu
dWxsLGNvbGxlY3Q6by5jb250ZW50X2VkaXRhYmxlLHNjaGVtYTpuLnNjaGVtYSxvblNldEF0dHJp
YjpmdW5jdGlvbihlKXtuLmZpcmUoIlNldEF0dHJpYiIsZSkKK319KSxuLnBhcnNlcj1uZXcgdihv
LG4uc2NoZW1hKSxuLnBhcnNlci5hZGRBdHRyaWJ1dGVGaWx0ZXIoInNyYyxocmVmLHN0eWxlLHRh
YmluZGV4IixmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmxlbmd0aCxpLG89bi5kb20sYSxzO3It
LTspaT1lW3JdLGE9aS5hdHRyKHQpLHM9ImRhdGEtbWNlLSIrdCxpLmF0dHJpYnV0ZXMubWFwW3Nd
fHwoInN0eWxlIj09PXQ/aS5hdHRyKHMsby5zZXJpYWxpemVTdHlsZShvLnBhcnNlU3R5bGUoYSks
aS5uYW1lKSk6InRhYmluZGV4Ij09PXQ/KGkuYXR0cihzLGEpLGkuYXR0cih0LG51bGwpKTppLmF0
dHIocyxuLmNvbnZlcnRVUkwoYSx0LGkubmFtZSkpKX0pLG4ucGFyc2VyLmFkZE5vZGVGaWx0ZXIo
InNjcmlwdCIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUubGVuZ3RoLG47dC0tOyluPWVbdF0sbi5h
dHRyKCJ0eXBlIiwibWNlLSIrKG4uYXR0cigidHlwZSIpfHwidGV4dC9qYXZhc2NyaXB0IikpfSks
bi5wYXJzZXIuYWRkTm9kZUZpbHRlcigiI2NkYXRhIixmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5s
ZW5ndGgsbjt0LS07KW49ZVt0XSxuLnR5cGU9OCxuLm5hbWU9IiNjb21tZW50IixuLnZhbHVlPSJb
Q0RBVEFbIituLnZhbHVlKyJdXSJ9KSxuLnBhcnNlci5hZGROb2RlRmlsdGVyKCJwLGgxLGgyLGgz
LGg0LGg1LGg2LGRpdiIsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUubGVuZ3RoLGksbz1uLnNjaGVt
YS5nZXROb25FbXB0eUVsZW1lbnRzKCk7dC0tOylpPWVbdF0saS5pc0VtcHR5KG8pJiYoaS5lbXB0
eSgpLmFwcGVuZChuZXcgcigiYnIiLDEpKS5zaG9ydEVuZGVkPSEwKX0pLG4uc2VyaWFsaXplcj1u
ZXcgaShvLG4pLG4uc2VsZWN0aW9uPW5ldyBhKG4uZG9tLG4uZ2V0V2luKCksbi5zZXJpYWxpemVy
LG4pLG4uZm9ybWF0dGVyPW5ldyBzKG4pLG4udW5kb01hbmFnZXI9bmV3IGwobiksbi5mb3JjZUJs
b2Nrcz1uZXcgdShuKSxuLmVudGVyS2V5PW5ldyBjKG4pLG4uZWRpdG9yQ29tbWFuZHM9bmV3IGQo
biksbi5maXJlKCJQcmVJbml0Iiksby5icm93c2VyX3NwZWxsY2hlY2t8fG8uZ2Vja29fc3BlbGxj
aGVja3x8KHAuYm9keS5zcGVsbGNoZWNrPSExLE4uc2V0QXR0cmliKGgsInNwZWxsY2hlY2siLCJm
YWxzZSIpKSxuLmZpcmUoIlBvc3RSZW5kZXIiKSxuLnF1aXJrcz15KG4pLG8uZGlyZWN0aW9uYWxp
dHkmJihoLmRpcj1vLmRpcmVjdGlvbmFsaXR5KSxvLm5vd3JhcCYmKGguc3R5bGUud2hpdGVTcGFj
ZT0ibm93cmFwIiksby5wcm90ZWN0JiZuLm9uKCJCZWZvcmVTZXRDb250ZW50IixmdW5jdGlvbihl
KXtUKG8ucHJvdGVjdCxmdW5jdGlvbih0KXtlLmNvbnRlbnQ9ZS5jb250ZW50LnJlcGxhY2UodCxm
dW5jdGlvbihlKXtyZXR1cm4iPCEtLW1jZTpwcm90ZWN0ZWQgIitlc2NhcGUoZSkrIi0tPiJ9KX0p
fSksbi5vbigiU2V0Q29udGVudCIsZnVuY3Rpb24oKXtuLmFkZFZpc3VhbChuLmdldEJvZHkoKSl9
KSxvLnBhZGRfZW1wdHlfZWRpdG9yJiZuLm9uKCJQb3N0UHJvY2VzcyIsZnVuY3Rpb24oZSl7ZS5j
b250ZW50PWUuY29udGVudC5yZXBsYWNlKC9eKDxwW14+XSo+KCZuYnNwO3wmIzE2MDt8XHN8XHUw
MGEwfCk8XC9wPltcclxuXSp8PGJyIFwvPltcclxuXSopJC8sIiIpfSksbi5sb2FkKHtpbml0aWFs
OiEwLGZvcm1hdDoiaHRtbCJ9KSxuLnN0YXJ0Q29udGVudD1uLmdldENvbnRlbnQoe2Zvcm1hdDoi
cmF3In0pLG4uaW5pdGlhbGl6ZWQ9ITAsbi5iaW5kUGVuZGluZ0V2ZW50RGVsZWdhdGVzKCksbi5m
aXJlKCJpbml0Iiksbi5mb2N1cyghMCksbi5ub2RlQ2hhbmdlZCh7aW5pdGlhbDohMH0pLG4uZXhl
Y0NhbGxiYWNrKCJpbml0X2luc3RhbmNlX2NhbGxiYWNrIixuKSxuLmNvbnRlbnRTdHlsZXMubGVu
Z3RoPjAmJihtPSIiLFQobi5jb250ZW50U3R5bGVzLGZ1bmN0aW9uKGUpe20rPWUrIlxyXG4ifSks
bi5kb20uYWRkU3R5bGUobSkpLFQobi5jb250ZW50Q1NTLGZ1bmN0aW9uKGUpe24ubG9hZGVkQ1NT
W2VdfHwobi5kb20ubG9hZENTUyhlKSxuLmxvYWRlZENTU1tlXT0hMCl9KSxvLmF1dG9fZm9jdXMm
JnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1uLmVkaXRvck1hbmFnZXIuZ2V0KG8uYXV0b19m
b2N1cyk7ZS5zZWxlY3Rpb24uc2VsZWN0KGUuZ2V0Qm9keSgpLDEpLGUuc2VsZWN0aW9uLmNvbGxh
cHNlKDEpLGUuZ2V0Qm9keSgpLmZvY3VzKCksZS5nZXRXaW4oKS5mb2N1cygpfSwxMDApLGY9cD1o
PW51bGx9LGZvY3VzOmZ1bmN0aW9uKGUpe3ZhciB0LG49dGhpcyxyPW4uc2VsZWN0aW9uLGk9bi5z
ZXR0aW5ncy5jb250ZW50X2VkaXRhYmxlLG8sYSxzPW4uZ2V0RG9jKCksbDtpZighZSl7aWYobz1y
LmdldFJuZygpLG8uaXRlbSYmKGE9by5pdGVtKDApKSxuLl9yZWZyZXNoQ29udGVudEVkaXRhYmxl
KCksaXx8KGIub3BlcmF8fG4uZ2V0Qm9keSgpLmZvY3VzKCksbi5nZXRXaW4oKS5mb2N1cygpKSxN
fHxpKXtpZihsPW4uZ2V0Qm9keSgpLGwuc2V0QWN0aXZlKXRyeXtsLnNldEFjdGl2ZSgpfWNhdGNo
KGMpe2wuZm9jdXMoKX1lbHNlIGwuZm9jdXMoKTtpJiZyLm5vcm1hbGl6ZSgpfWEmJmEub3duZXJE
b2N1bWVudD09cyYmKG89cy5ib2R5LmNyZWF0ZUNvbnRyb2xSYW5nZSgpLG8uYWRkRWxlbWVudChh
KSxvLnNlbGVjdCgpKX1uLmVkaXRvck1hbmFnZXIuYWN0aXZlRWRpdG9yIT1uJiYoKHQ9bi5lZGl0
b3JNYW5hZ2VyLmFjdGl2ZUVkaXRvcikmJnQuZmlyZSgiZGVhY3RpdmF0ZSIse3JlbGF0ZWRUYXJn
ZXQ6bn0pLG4uZmlyZSgiYWN0aXZhdGUiLHtyZWxhdGVkVGFyZ2V0OnR9KSksbi5lZGl0b3JNYW5h
Z2VyLmFjdGl2ZUVkaXRvcj1ufSxleGVjQ2FsbGJhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxu
PXQuc2V0dGluZ3NbZV0scjtpZihuKXJldHVybiB0LmNhbGxiYWNrTG9va3VwJiYocj10LmNhbGxi
YWNrTG9va3VwW2VdKSYmKG49ci5mdW5jLHI9ci5zY29wZSksInN0cmluZyI9PXR5cGVvZiBuJiYo
cj1uLnJlcGxhY2UoL1wuXHcrJC8sIiIpLHI9cj9EKHIpOjAsbj1EKG4pLHQuY2FsbGJhY2tMb29r
dXA9dC5jYWxsYmFja0xvb2t1cHx8e30sdC5jYWxsYmFja0xvb2t1cFtlXT17ZnVuYzpuLHNjb3Bl
OnJ9KSxuLmFwcGx5KHJ8fHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEp
KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc2V0dGluZ3MubGFuZ3VhZ2V8fCJl
biIsbj10aGlzLmVkaXRvck1hbmFnZXIuaTE4bjtyZXR1cm4gZT9uLmRhdGFbdCsiLiIrZV18fGUu
cmVwbGFjZSgvXHtcIyhbXlx9XSspXH0vZyxmdW5jdGlvbihlLHIpe3JldHVybiBuLmRhdGFbdCsi
LiIrcl18fCJ7IyIrcisifSJ9KToiIn0sZ2V0TGFuZzpmdW5jdGlvbihlLG4pe3JldHVybiB0aGlz
LmVkaXRvck1hbmFnZXIuaTE4bi5kYXRhWyh0aGlzLnNldHRpbmdzLmxhbmd1YWdlfHwiZW4iKSsi
LiIrZV18fChuIT09dD9uOiJ7IyIrZSsifSIpfSxnZXRQYXJhbTpmdW5jdGlvbihlLHQsbil7dmFy
IHI9ZSBpbiB0aGlzLnNldHRpbmdzP3RoaXMuc2V0dGluZ3NbZV06dCxpO3JldHVybiJoYXNoIj09
PW4/KGk9e30sInN0cmluZyI9PXR5cGVvZiByP1Qoci5zcGxpdChyLmluZGV4T2YoIj0iKT4wPy9b
OyxdKD8hW149OyxdKig/Ols7LF18JCkpLzoiLCIpLGZ1bmN0aW9uKGUpe2U9ZS5zcGxpdCgiPSIp
LGlbQihlWzBdKV09QihlLmxlbmd0aD4xP2VbMV06ZSl9KTppPXIsaSk6cn0sbm9kZUNoYW5nZWQ6
ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5zZWxlY3Rpb24sbixyLGk7IWUuaW5pdGlhbGl6ZWR8
fGUuc2V0dGluZ3MuZGlzYWJsZV9ub2RlY2hhbmdlfHxlLnNldHRpbmdzLnJlYWRvbmx5fHwoaT1l
LmdldEJvZHkoKSxuPXQuZ2V0U3RhcnQoKXx8aSxuPUgmJm4ub3duZXJEb2N1bWVudCE9ZS5nZXRE
b2MoKT9lLmdldEJvZHkoKTpuLCJJTUciPT1uLm5vZGVOYW1lJiZ0LmlzQ29sbGFwc2VkKCkmJihu
PW4ucGFyZW50Tm9kZSkscj1bXSxlLmRvbS5nZXRQYXJlbnQobixmdW5jdGlvbihlKXtyZXR1cm4g
ZT09PWk/ITA6dm9pZCByLnB1c2goZSl9KSxlLmZpcmUoIk5vZGVDaGFuZ2UiLHtlbGVtZW50Om4s
cGFyZW50czpyfSkpfSxhZGRCdXR0b246ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3QuY21kJiYo
dC5vbmNsaWNrPWZ1bmN0aW9uKCl7bi5leGVjQ29tbWFuZCh0LmNtZCl9KSx0LnRleHR8fHQuaWNv
bnx8KHQuaWNvbj1lKSxuLmJ1dHRvbnM9bi5idXR0b25zfHx7fSx0LnRvb2x0aXA9dC50b29sdGlw
fHx0LnRpdGxlLG4uYnV0dG9uc1tlXT10fSxhZGRNZW51SXRlbTpmdW5jdGlvbihlLHQpe3ZhciBu
PXRoaXM7dC5jbWQmJih0Lm9uY2xpY2s9ZnVuY3Rpb24oKXtuLmV4ZWNDb21tYW5kKHQuY21kKX0p
LG4ubWVudUl0ZW1zPW4ubWVudUl0ZW1zfHx7fSxuLm1lbnVJdGVtc1tlXT10fSxhZGRDb21tYW5k
OmZ1bmN0aW9uKGUsdCxuKXt0aGlzLmV4ZWNDb21tYW5kc1tlXT17ZnVuYzp0LHNjb3BlOm58fHRo
aXN9fSxhZGRRdWVyeVN0YXRlSGFuZGxlcjpmdW5jdGlvbihlLHQsbil7dGhpcy5xdWVyeVN0YXRl
Q29tbWFuZHNbZV09e2Z1bmM6dCxzY29wZTpufHx0aGlzfX0sYWRkUXVlcnlWYWx1ZUhhbmRsZXI6
ZnVuY3Rpb24oZSx0LG4pe3RoaXMucXVlcnlWYWx1ZUNvbW1hbmRzW2VdPXtmdW5jOnQsc2NvcGU6
bnx8dGhpc319LGFkZFNob3J0Y3V0OmZ1bmN0aW9uKGUsdCxuLHIpe3RoaXMuc2hvcnRjdXRzLmFk
ZChlLHQsbixyKX0sZXhlY0NvbW1hbmQ6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dGhpcyxvPTAs
YTtyZXR1cm4vXihtY2VBZGRVbmRvTGV2ZWx8bWNlRW5kVW5kb0xldmVsfG1jZUJlZ2luVW5kb0xl
dmVsfG1jZVJlcGFpbnQpJC8udGVzdChlKXx8ciYmci5za2lwX2ZvY3VzfHxpLmZvY3VzKCkscj1r
KHt9LHIpLHI9aS5maXJlKCJCZWZvcmVFeGVjQ29tbWFuZCIse2NvbW1hbmQ6ZSx1aTp0LHZhbHVl
Om59KSxyLmlzRGVmYXVsdFByZXZlbnRlZCgpPyExOihhPWkuZXhlY0NvbW1hbmRzW2VdKSYmYS5m
dW5jLmNhbGwoYS5zY29wZSx0LG4pIT09ITA/KGkuZmlyZSgiRXhlY0NvbW1hbmQiLHtjb21tYW5k
OmUsdWk6dCx2YWx1ZTpufSksITApOihUKGkucGx1Z2lucyxmdW5jdGlvbihyKXtyZXR1cm4gci5l
eGVjQ29tbWFuZCYmci5leGVjQ29tbWFuZChlLHQsbik/KGkuZmlyZSgiRXhlY0NvbW1hbmQiLHtj
b21tYW5kOmUsdWk6dCx2YWx1ZTpufSksbz0hMCwhMSk6dm9pZCAwfSksbz9vOmkudGhlbWUmJmku
dGhlbWUuZXhlY0NvbW1hbmQmJmkudGhlbWUuZXhlY0NvbW1hbmQoZSx0LG4pPyhpLmZpcmUoIkV4
ZWNDb21tYW5kIix7Y29tbWFuZDplLHVpOnQsdmFsdWU6bn0pLCEwKTppLmVkaXRvckNvbW1hbmRz
LmV4ZWNDb21tYW5kKGUsdCxuKT8oaS5maXJlKCJFeGVjQ29tbWFuZCIse2NvbW1hbmQ6ZSx1aTp0
LHZhbHVlOm59KSwhMCk6KGkuZ2V0RG9jKCkuZXhlY0NvbW1hbmQoZSx0LG4pLHZvaWQgaS5maXJl
KCJFeGVjQ29tbWFuZCIse2NvbW1hbmQ6ZSx1aTp0LHZhbHVlOm59KSkpfSxxdWVyeUNvbW1hbmRT
dGF0ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG4scjtpZighdC5faXNIaWRkZW4oKSl7aWYoKG49
dC5xdWVyeVN0YXRlQ29tbWFuZHNbZV0pJiYocj1uLmZ1bmMuY2FsbChuLnNjb3BlKSxyIT09ITAp
KXJldHVybiByO2lmKHI9dC5lZGl0b3JDb21tYW5kcy5xdWVyeUNvbW1hbmRTdGF0ZShlKSwtMSE9
PXIpcmV0dXJuIHI7dHJ5e3JldHVybiB0LmdldERvYygpLnF1ZXJ5Q29tbWFuZFN0YXRlKGUpfWNh
dGNoKGkpe319fSxxdWVyeUNvbW1hbmRWYWx1ZTpmdW5jdGlvbihlKXt2YXIgbj10aGlzLHIsaTtp
Zighbi5faXNIaWRkZW4oKSl7aWYoKHI9bi5xdWVyeVZhbHVlQ29tbWFuZHNbZV0pJiYoaT1yLmZ1
bmMuY2FsbChyLnNjb3BlKSxpIT09ITApKXJldHVybiBpO2lmKGk9bi5lZGl0b3JDb21tYW5kcy5x
dWVyeUNvbW1hbmRWYWx1ZShlKSxpIT09dClyZXR1cm4gaTt0cnl7cmV0dXJuIG4uZ2V0RG9jKCku
cXVlcnlDb21tYW5kVmFsdWUoZSl9Y2F0Y2gobyl7fX19LHNob3c6ZnVuY3Rpb24oKXt2YXIgZT10
aGlzO2UuaGlkZGVuJiYoZS5oaWRkZW49ITEsZS5pbmxpbmU/ZS5nZXRCb2R5KCkuY29udGVudEVk
aXRhYmxlPSEwOihOLnNob3coZS5nZXRDb250YWluZXIoKSksTi5oaWRlKGUuaWQpKSxlLmxvYWQo
KSxlLmZpcmUoInNob3ciKSl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5nZXREb2Mo
KTtlLmhpZGRlbnx8KGUuaGlkZGVuPSEwLEgmJnQmJiFlLmlubGluZSYmdC5leGVjQ29tbWFuZCgi
U2VsZWN0QWxsIiksZS5zYXZlKCksZS5pbmxpbmU/KGUuZ2V0Qm9keSgpLmNvbnRlbnRFZGl0YWJs
ZT0hMSxlPT1lLmVkaXRvck1hbmFnZXIuZm9jdXNlZEVkaXRvciYmKGUuZWRpdG9yTWFuYWdlci5m
b2N1c2VkRWRpdG9yPW51bGwpKTooTi5oaWRlKGUuZ2V0Q29udGFpbmVyKCkpLE4uc2V0U3R5bGUo
ZS5pZCwiZGlzcGxheSIsZS5vcmdEaXNwbGF5KSksZS5maXJlKCJoaWRlIikpfSxpc0hpZGRlbjpm
dW5jdGlvbigpe3JldHVybiEhdGhpcy5oaWRkZW59LHNldFByb2dyZXNzU3RhdGU6ZnVuY3Rpb24o
ZSx0KXt0aGlzLmZpcmUoIlByb2dyZXNzU3RhdGUiLHtzdGF0ZTplLHRpbWU6dH0pfSxsb2FkOmZ1
bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1uLmdldEVsZW1lbnQoKSxpO3JldHVybiByPyhlPWV8fHt9
LGUubG9hZD0hMCxpPW4uc2V0Q29udGVudChyLnZhbHVlIT09dD9yLnZhbHVlOnIuaW5uZXJIVE1M
LGUpLGUuZWxlbWVudD1yLGUubm9fZXZlbnRzfHxuLmZpcmUoIkxvYWRDb250ZW50IixlKSxlLmVs
ZW1lbnQ9cj1udWxsLGkpOnZvaWQgMH0sc2F2ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dC5n
ZXRFbGVtZW50KCkscixpO2lmKG4mJnQuaW5pdGlhbGl6ZWQpcmV0dXJuIGU9ZXx8e30sZS5zYXZl
PSEwLGUuZWxlbWVudD1uLHI9ZS5jb250ZW50PXQuZ2V0Q29udGVudChlKSxlLm5vX2V2ZW50c3x8
dC5maXJlKCJTYXZlQ29udGVudCIsZSkscj1lLmNvbnRlbnQsL1RFWFRBUkVBfElOUFVUL2kudGVz
dChuLm5vZGVOYW1lKT9uLnZhbHVlPXI6KHQuaW5saW5lfHwobi5pbm5lckhUTUw9ciksKGk9Ti5n
ZXRQYXJlbnQodC5pZCwiZm9ybSIpKSYmVChpLmVsZW1lbnRzLGZ1bmN0aW9uKGUpe3JldHVybiBl
Lm5hbWU9PXQuaWQ/KGUudmFsdWU9ciwhMSk6dm9pZCAwfSkpLGUuZWxlbWVudD1uPW51bGwsZS5z
ZXRfZGlydHkhPT0hMSYmKHQuaXNOb3REaXJ0eT0hMCkscn0sc2V0Q29udGVudDpmdW5jdGlvbihl
LHQpe3ZhciBuPXRoaXMscj1uLmdldEJvZHkoKSxpO3JldHVybiB0PXR8fHt9LHQuZm9ybWF0PXQu
Zm9ybWF0fHwiaHRtbCIsdC5zZXQ9ITAsdC5jb250ZW50PWUsdC5ub19ldmVudHN8fG4uZmlyZSgi
QmVmb3JlU2V0Q29udGVudCIsdCksZT10LmNvbnRlbnQsMD09PWUubGVuZ3RofHwvXlxzKyQvLnRl
c3QoZSk/KGk9bi5zZXR0aW5ncy5mb3JjZWRfcm9vdF9ibG9jayxpJiZuLnNjaGVtYS5pc1ZhbGlk
Q2hpbGQoci5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGkudG9Mb3dlckNhc2UoKSk/KGU9SCYmMTE+
SD8iIjonPGJyIGRhdGEtbWNlLWJvZ3VzPSIxIj4nLGU9bi5kb20uY3JlYXRlSFRNTChpLG4uc2V0
dGluZ3MuZm9yY2VkX3Jvb3RfYmxvY2tfYXR0cnMsZSkpOkh8fChlPSc8YnIgZGF0YS1tY2UtYm9n
dXM9IjEiPicpLHIuaW5uZXJIVE1MPWUsbi5maXJlKCJTZXRDb250ZW50Iix0KSk6KCJyYXciIT09
dC5mb3JtYXQmJihlPW5ldyBvKHt9LG4uc2NoZW1hKS5zZXJpYWxpemUobi5wYXJzZXIucGFyc2Uo
ZSx7aXNSb290Q29udGVudDohMH0pKSksdC5jb250ZW50PUIoZSksbi5kb20uc2V0SFRNTChyLHQu
Y29udGVudCksdC5ub19ldmVudHN8fG4uZmlyZSgiU2V0Q29udGVudCIsdCkpLHQuY29udGVudH0s
Z2V0Q29udGVudDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG4scj10LmdldEJvZHkoKTtyZXR1cm4g
ZT1lfHx7fSxlLmZvcm1hdD1lLmZvcm1hdHx8Imh0bWwiLGUuZ2V0PSEwLGUuZ2V0SW5uZXI9ITAs
ZS5ub19ldmVudHN8fHQuZmlyZSgiQmVmb3JlR2V0Q29udGVudCIsZSksbj0icmF3Ij09ZS5mb3Jt
YXQ/ci5pbm5lckhUTUw6InRleHQiPT1lLmZvcm1hdD9yLmlubmVyVGV4dHx8ci50ZXh0Q29udGVu
dDp0LnNlcmlhbGl6ZXIuc2VyaWFsaXplKHIsZSksZS5jb250ZW50PSJ0ZXh0IiE9ZS5mb3JtYXQ/
QihuKTpuLGUubm9fZXZlbnRzfHx0LmZpcmUoIkdldENvbnRlbnQiLGUpLGUuY29udGVudH0saW5z
ZXJ0Q29udGVudDpmdW5jdGlvbihlKXt0aGlzLmV4ZWNDb21tYW5kKCJtY2VJbnNlcnRDb250ZW50
IiwhMSxlKX0saXNEaXJ0eTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmlzTm90RGlydHl9LGdldENv
bnRhaW5lcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGUuY29udGFpbmVyfHwoZS5jb250
YWluZXI9Ti5nZXQoZS5lZGl0b3JDb250YWluZXJ8fGUuaWQrIl9wYXJlbnQiKSksZS5jb250YWlu
ZXJ9LGdldENvbnRlbnRBcmVhQ29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVu
dEFyZWFDb250YWluZXJ9LGdldEVsZW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gTi5nZXQodGhpcy5z
ZXR0aW5ncy5jb250ZW50X2VsZW1lbnR8fHRoaXMuaWQpfSxnZXRXaW46ZnVuY3Rpb24oKXt2YXIg
ZT10aGlzLHQ7cmV0dXJuIGUuY29udGVudFdpbmRvd3x8KHQ9Ti5nZXQoZS5pZCsiX2lmciIpLHQm
JihlLmNvbnRlbnRXaW5kb3c9dC5jb250ZW50V2luZG93KSksZS5jb250ZW50V2luZG93fSxnZXRE
b2M6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ7cmV0dXJuIGUuY29udGVudERvY3VtZW50fHwodD1l
LmdldFdpbigpLHQmJihlLmNvbnRlbnREb2N1bWVudD10LmRvY3VtZW50KSksZS5jb250ZW50RG9j
dW1lbnR9LGdldEJvZHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ib2R5RWxlbWVudHx8dGhpcy5n
ZXREb2MoKS5ib2R5fSxjb252ZXJ0VVJMOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzLGk9ci5z
ZXR0aW5ncztyZXR1cm4gaS51cmxjb252ZXJ0ZXJfY2FsbGJhY2s/ci5leGVjQ2FsbGJhY2soInVy
bGNvbnZlcnRlcl9jYWxsYmFjayIsZSxuLCEwLHQpOiFpLmNvbnZlcnRfdXJsc3x8biYmIkxJTksi
PT1uLm5vZGVOYW1lfHwwPT09ZS5pbmRleE9mKCJmaWxlOiIpfHwwPT09ZS5sZW5ndGg/ZTppLnJl
bGF0aXZlX3VybHM/ci5kb2N1bWVudEJhc2VVUkkudG9SZWxhdGl2ZShlKTplPXIuZG9jdW1lbnRC
YXNlVVJJLnRvQWJzb2x1dGUoZSxpLnJlbW92ZV9zY3JpcHRfaG9zdCl9LGFkZFZpc3VhbDpmdW5j
dGlvbihlKXt2YXIgbj10aGlzLHI9bi5zZXR0aW5ncyxpPW4uZG9tLG87ZT1lfHxuLmdldEJvZHko
KSxuLmhhc1Zpc3VhbD09PXQmJihuLmhhc1Zpc3VhbD1yLnZpc3VhbCksVChpLnNlbGVjdCgidGFi
bGUsYSIsZSksZnVuY3Rpb24oZSl7dmFyIHQ7c3dpdGNoKGUubm9kZU5hbWUpe2Nhc2UiVEFCTEUi
OnJldHVybiBvPXIudmlzdWFsX3RhYmxlX2NsYXNzfHwibWNlLWl0ZW0tdGFibGUiLHQ9aS5nZXRB
dHRyaWIoZSwiYm9yZGVyIiksdm9pZCh0JiYiMCIhPXR8fChuLmhhc1Zpc3VhbD9pLmFkZENsYXNz
KGUsbyk6aS5yZW1vdmVDbGFzcyhlLG8pKSk7Y2FzZSJBIjpyZXR1cm4gdm9pZChpLmdldEF0dHJp
YihlLCJocmVmIiwhMSl8fCh0PWkuZ2V0QXR0cmliKGUsIm5hbWUiKXx8ZS5pZCxvPXIudmlzdWFs
X2FuY2hvcl9jbGFzc3x8Im1jZS1pdGVtLWFuY2hvciIsdCYmKG4uaGFzVmlzdWFsP2kuYWRkQ2xh
c3MoZSxvKTppLnJlbW92ZUNsYXNzKGUsbykpKSl9fSksbi5maXJlKCJWaXN1YWxBaWQiLHtlbGVt
ZW50OmUsaGFzVmlzdWFsOm4uaGFzVmlzdWFsfSl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciBlPXRo
aXM7aWYoIWUucmVtb3ZlZCl7ZS5yZW1vdmVkPTEsZS5zYXZlKCksZS5oYXNIaWRkZW5JbnB1dCYm
Ti5yZW1vdmUoZS5nZXRFbGVtZW50KCkubmV4dFNpYmxpbmcpLGUuaW5saW5lfHwoSCYmMTA+SCYm
ZS5nZXREb2MoKS5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIiwhMSxudWxsKSxOLnNldFN0eWxlKGUu
aWQsImRpc3BsYXkiLGUub3JnRGlzcGxheSksZS5nZXRCb2R5KCkub25sb2FkPW51bGwsTC51bmJp
bmQoZS5nZXRXaW4oKSksTC51bmJpbmQoZS5nZXREb2MoKSkpO3ZhciB0PWUuZ2V0Q29udGFpbmVy
KCk7TC51bmJpbmQoZS5nZXRCb2R5KCkpLEwudW5iaW5kKHQpLGUuZmlyZSgicmVtb3ZlIiksZS5l
ZGl0b3JNYW5hZ2VyLnJlbW92ZShlKSxOLnJlbW92ZSh0KSxlLmRlc3Ryb3koKX19LGRlc3Ryb3k6
ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuO2lmKCF0LmRlc3Ryb3llZCl7aWYoIWUmJiF0LnJlbW92
ZWQpcmV0dXJuIHZvaWQgdC5yZW1vdmUoKTtlJiZNJiYoTC51bmJpbmQodC5nZXREb2MoKSksTC51
bmJpbmQodC5nZXRXaW4oKSksTC51bmJpbmQodC5nZXRCb2R5KCkpKSxlfHwodC5lZGl0b3JNYW5h
Z2VyLm9mZigiYmVmb3JldW5sb2FkIix0Ll9iZWZvcmVVbmxvYWQpLHQudGhlbWUmJnQudGhlbWUu
ZGVzdHJveSYmdC50aGVtZS5kZXN0cm95KCksdC5zZWxlY3Rpb24uZGVzdHJveSgpLHQuZG9tLmRl
c3Ryb3koKSksbj10LmZvcm1FbGVtZW50LG4mJihuLl9tY2VPbGRTdWJtaXQmJihuLnN1Ym1pdD1u
Ll9tY2VPbGRTdWJtaXQsbi5fbWNlT2xkU3VibWl0PW51bGwpLE4udW5iaW5kKG4sInN1Ym1pdCBy
ZXNldCIsdC5mb3JtRXZlbnREZWxlZ2F0ZSkpLHQuY29udGVudEFyZWFDb250YWluZXI9dC5mb3Jt
RWxlbWVudD10LmNvbnRhaW5lcj10LmVkaXRvckNvbnRhaW5lcj1udWxsLHQuc2V0dGluZ3MuY29u
dGVudF9lbGVtZW50PXQuYm9keUVsZW1lbnQ9dC5jb250ZW50RG9jdW1lbnQ9dC5jb250ZW50V2lu
ZG93PW51bGwsdC5zZWxlY3Rpb24mJih0LnNlbGVjdGlvbj10LnNlbGVjdGlvbi53aW49dC5zZWxl
Y3Rpb24uZG9tPXQuc2VsZWN0aW9uLmRvbS5kb2M9bnVsbCksdC5kZXN0cm95ZWQ9MX19LF9yZWZy
ZXNoQ29udGVudEVkaXRhYmxlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0LG47ZS5faXNIaWRkZW4o
KSYmKHQ9ZS5nZXRCb2R5KCksbj10LnBhcmVudE5vZGUsbi5yZW1vdmVDaGlsZCh0KSxuLmFwcGVu
ZENoaWxkKHQpLHQuZm9jdXMoKSl9LF9pc0hpZGRlbjpmdW5jdGlvbigpe3ZhciBlO3JldHVybiBN
PyhlPXRoaXMuc2VsZWN0aW9uLmdldFNlbCgpLCFlfHwhZS5yYW5nZUNvdW50fHwwPT09ZS5yYW5n
ZUNvdW50KTowfX0sayhfLnByb3RvdHlwZSx4KSxffSkscihjdCxbXSxmdW5jdGlvbigpe3ZhciBl
PXt9O3JldHVybntydGw6ITEsYWRkOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciByIGluIG4pZVtyXT1u
W3JdO3RoaXMucnRsPXRoaXMucnRsfHwicnRsIj09PWUuX2Rpcn0sdHJhbnNsYXRlOmZ1bmN0aW9u
KHQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgdClyZXR1cm4gdDtpZigic3RyaW5nIiE9dHlwZW9m
IHQmJnQucmF3KXJldHVybiB0LnJhdztpZih0LnB1c2gpe3ZhciBuPXQuc2xpY2UoMSk7dD0oZVt0
WzBdXXx8dFswXSkucmVwbGFjZSgvXHsoW15cfV0rKVx9L2csZnVuY3Rpb24oZSx0KXtyZXR1cm4g
blt0XX0pfXJldHVybiBlW3RdfHx0fSxkYXRhOmV9fSkscih1dCxbeSxnXSxmdW5jdGlvbihlLHQp
e2Z1bmN0aW9uIG4oZSl7ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxl
bWVudH1jYXRjaChlKXtyZXR1cm4gZG9jdW1lbnQuYm9keX19ZnVuY3Rpb24gbChlLHQpe2lmKHQm
JnQuc3RhcnRDb250YWluZXIpe2lmKCFlLmlzQ2hpbGRPZih0LnN0YXJ0Q29udGFpbmVyLGUuZ2V0
Um9vdCgpKXx8IWUuaXNDaGlsZE9mKHQuZW5kQ29udGFpbmVyLGUuZ2V0Um9vdCgpKSlyZXR1cm47
cmV0dXJue3N0YXJ0Q29udGFpbmVyOnQuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6dC5zdGFy
dE9mZnNldCxlbmRDb250YWluZXI6dC5lbmRDb250YWluZXIsZW5kT2Zmc2V0OnQuZW5kT2Zmc2V0
fX1yZXR1cm4gdH1mdW5jdGlvbiBjKGUsdCl7dmFyIG47cmV0dXJuIHQuc3RhcnRDb250YWluZXI/
KG49ZS5nZXREb2MoKS5jcmVhdGVSYW5nZSgpLG4uc2V0U3RhcnQodC5zdGFydENvbnRhaW5lcix0
LnN0YXJ0T2Zmc2V0KSxuLnNldEVuZCh0LmVuZENvbnRhaW5lcix0LmVuZE9mZnNldCkpOm49dCxu
fWZ1bmN0aW9uIHUoZSl7cmV0dXJuISFhLmdldFBhcmVudChlLG4uaXNFZGl0b3JVSUVsZW1lbnQp
fWZ1bmN0aW9uIGQobil7dmFyIGQ9bi5lZGl0b3I7ZC5vbigiaW5pdCIsZnVuY3Rpb24oKXsoZC5p
bmxpbmV8fHQuaWUpJiYoZC5vbigibm9kZWNoYW5nZSBrZXl1cCIsZnVuY3Rpb24oKXt2YXIgZT1k
b2N1bWVudC5hY3RpdmVFbGVtZW50O2UmJmUuaWQ9PWQuaWQrIl9pZnIiJiYoZT1kLmdldEJvZHko
KSksZC5kb20uaXNDaGlsZE9mKGUsZC5nZXRCb2R5KCkpJiYoZC5sYXN0Um5nPWQuc2VsZWN0aW9u
LmdldFJuZygpKX0pLHQud2Via2l0JiYhciYmKHI9ZnVuY3Rpb24oKXt2YXIgdD1lLmFjdGl2ZUVk
aXRvcjtpZih0JiZ0LnNlbGVjdGlvbil7dmFyIG49dC5zZWxlY3Rpb24uZ2V0Um5nKCk7biYmIW4u
Y29sbGFwc2VkJiYoZC5sYXN0Um5nPW4pfX0sYS5iaW5kKGRvY3VtZW50LCJzZWxlY3Rpb25jaGFu
Z2UiLHIpKSl9KSxkLm9uKCJzZXRjb250ZW50IixmdW5jdGlvbigpe2QubGFzdFJuZz1udWxsfSks
ZC5vbigibW91c2Vkb3duIixmdW5jdGlvbigpe2Quc2VsZWN0aW9uLmxhc3RGb2N1c0Jvb2ttYXJr
PW51bGx9KSxkLm9uKCJmb2N1c2luIixmdW5jdGlvbigpe3ZhciB0PWUuZm9jdXNlZEVkaXRvcjtk
LnNlbGVjdGlvbi5sYXN0Rm9jdXNCb29rbWFyayYmKGQuc2VsZWN0aW9uLnNldFJuZyhjKGQsZC5z
ZWxlY3Rpb24ubGFzdEZvY3VzQm9va21hcmspKSxkLnNlbGVjdGlvbi5sYXN0Rm9jdXNCb29rbWFy
az1udWxsKSx0IT1kJiYodCYmdC5maXJlKCJibHVyIix7Zm9jdXNlZEVkaXRvcjpkfSksZS5hY3Rp
dmVFZGl0b3I9ZCxlLmZvY3VzZWRFZGl0b3I9ZCxkLmZpcmUoImZvY3VzIix7Ymx1cnJlZEVkaXRv
cjp0fSksZC5mb2N1cyghMCkpLGQubGFzdFJuZz1udWxsfSksZC5vbigiZm9jdXNvdXQiLGZ1bmN0
aW9uKCl7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1lLmZvY3VzZWRFZGl0b3I7
dShzKCkpfHx0IT1kfHwoZC5maXJlKCJibHVyIix7Zm9jdXNlZEVkaXRvcjpudWxsfSksZS5mb2N1
c2VkRWRpdG9yPW51bGwsZC5zZWxlY3Rpb24mJihkLnNlbGVjdGlvbi5sYXN0Rm9jdXNCb29rbWFy
az1udWxsKSl9LDApfSksaXx8KGk9ZnVuY3Rpb24odCl7dmFyIG49ZS5hY3RpdmVFZGl0b3I7biYm
dC50YXJnZXQub3duZXJEb2N1bWVudD09ZG9jdW1lbnQmJihuLnNlbGVjdGlvbiYmKG4uc2VsZWN0
aW9uLmxhc3RGb2N1c0Jvb2ttYXJrPWwobi5kb20sbi5sYXN0Um5nKSksdSh0LnRhcmdldCl8fGUu
Zm9jdXNlZEVkaXRvciE9bnx8KG4uZmlyZSgiYmx1ciIse2ZvY3VzZWRFZGl0b3I6bnVsbH0pLGUu
Zm9jdXNlZEVkaXRvcj1udWxsKSl9LGEuYmluZChkb2N1bWVudCwiZm9jdXNpbiIsaSkpLGQuaW5s
aW5lJiYhbyYmKG89ZnVuY3Rpb24odCl7dmFyIG49ZS5hY3RpdmVFZGl0b3I7aWYobi5pbmxpbmUm
JiFuLmRvbS5pc0NoaWxkT2YodC50YXJnZXQsbi5nZXRCb2R5KCkpKXt2YXIgcj1uLnNlbGVjdGlv
bi5nZXRSbmcoKTtyLmNvbGxhcHNlZHx8KG4ubGFzdFJuZz1yKX19LGEuYmluZChkb2N1bWVudCwi
bW91c2V1cCIsbykpfWZ1bmN0aW9uIGYodCl7ZS5mb2N1c2VkRWRpdG9yPT10LmVkaXRvciYmKGUu
Zm9jdXNlZEVkaXRvcj1udWxsKSxlLmFjdGl2ZUVkaXRvcnx8KGEudW5iaW5kKGRvY3VtZW50LCJz
ZWxlY3Rpb25jaGFuZ2UiLHIpLGEudW5iaW5kKGRvY3VtZW50LCJmb2N1c2luIixpKSxhLnVuYmlu
ZChkb2N1bWVudCwibW91c2V1cCIsbykscj1pPW89bnVsbCl9ZS5vbigiQWRkRWRpdG9yIixkKSxl
Lm9uKCJSZW1vdmVFZGl0b3IiLGYpfXZhciByLGksbyxhPWUuRE9NO3JldHVybiBuLmlzRWRpdG9y
VUlFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybi0xIT09ZS5jbGFzc05hbWUudG9TdHJpbmcoKS5p
bmRleE9mKCJtY2UtIil9LG59KSxyKGR0LFtsdCx5LEYsZyxwLG90LGN0LHV0XSxmdW5jdGlvbihl
LHQsbixyLGksbyxhLHMpe2Z1bmN0aW9uIGwoZSl7dmFyIHQ9Zy5lZGl0b3JzLG47ZGVsZXRlIHRb
ZS5pZF07Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspaWYodFtyXT09ZSl7dC5zcGxpY2Uociwx
KSxuPSEwO2JyZWFrfXJldHVybiBnLmFjdGl2ZUVkaXRvcj09ZSYmKGcuYWN0aXZlRWRpdG9yPXRb
MF0pLGcuZm9jdXNlZEVkaXRvcj09ZSYmKGcuZm9jdXNlZEVkaXRvcj1udWxsKSxufWZ1bmN0aW9u
IGMoZSl7cmV0dXJuIGUmJiEoZS5nZXRDb250YWluZXIoKXx8ZS5nZXRCb2R5KCkpLnBhcmVudE5v
ZGUmJihsKGUpLGUuZGVzdHJveSghMCksZT1udWxsKSxlfXZhciB1PXQuRE9NLGQ9aS5leHBsb2Rl
LGY9aS5lYWNoLHA9aS5leHRlbmQsaD0wLG0sZztyZXR1cm4gZz17bWFqb3JWZXJzaW9uOiI0Iixt
aW5vclZlcnNpb246IjAuMjYiLHJlbGVhc2VEYXRlOiIyMDE0LTA1LTA2IixlZGl0b3JzOltdLGkx
OG46YSxhY3RpdmVFZGl0b3I6bnVsbCxzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdCxyLGk9
IiIsbyxhO2lmKHI9ZG9jdW1lbnQubG9jYXRpb24uaHJlZi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIp
LnJlcGxhY2UoL1tcL1xcXVteXC9dKyQvLCIiKSwvW1wvXFxdJC8udGVzdChyKXx8KHIrPSIvIiks
bz13aW5kb3cudGlueW1jZXx8d2luZG93LnRpbnlNQ0VQcmVJbml0KXQ9by5iYXNlfHxvLmJhc2VV
UkwsaT1vLnN1ZmZpeDtlbHNle2Zvcih2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgic2NyaXB0IiksYz0wO2M8bC5sZW5ndGg7YysrKWlmKGE9bFtjXS5zcmMsL3RpbnltY2UoXC5m
dWxsfFwuanF1ZXJ5fCkoXC5taW58XC5kZXZ8KVwuanMvLnRlc3QoYSkpey0xIT1hLmluZGV4T2Yo
Ii5taW4iKSYmKGk9Ii5taW4iKSx0PWEuc3Vic3RyaW5nKDAsYS5sYXN0SW5kZXhPZigiLyIpKTti
cmVha30hdCYmZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmKGE9ZG9jdW1lbnQuY3VycmVudFNjcmlw
dC5zcmMsLTEhPWEuaW5kZXhPZigiLm1pbiIpJiYoaT0iLm1pbiIpLHQ9YS5zdWJzdHJpbmcoMCxh
Lmxhc3RJbmRleE9mKCIvIikpKX1lLmJhc2VVUkw9bmV3IG4ocikudG9BYnNvbHV0ZSh0KSxlLmRv
Y3VtZW50QmFzZVVSTD1yLGUuYmFzZVVSST1uZXcgbihlLmJhc2VVUkwpLGUuc3VmZml4PWksZS5m
b2N1c01hbmFnZXI9bmV3IHMoZSl9LGluaXQ6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXt2YXIg
dD1lLmlkO3JldHVybiB0fHwodD1lLm5hbWUsdD10JiYhdS5nZXQodCk/ZS5uYW1lOnUudW5pcXVl
SWQoKSxlLnNldEF0dHJpYnV0ZSgiaWQiLHQpKSx0fWZ1bmN0aW9uIHIodCxuKXtpZighYyhzLmdl
dCh0KSkpe3ZhciByPW5ldyBlKHQsbixzKTtsLnB1c2gociksci5yZW5kZXIoKX19ZnVuY3Rpb24g
aShlLHQsbil7dmFyIHI9ZVt0XTtpZihyKXJldHVybiByLmFwcGx5KG58fHRoaXMsQXJyYXkucHJv
dG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKX1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuIHQu
Y29uc3RydWN0b3I9PT1SZWdFeHA/dC50ZXN0KGUuY2xhc3NOYW1lKTp1Lmhhc0NsYXNzKGUsdCl9
ZnVuY3Rpb24gYSgpe3ZhciBjLGc7aWYodS51bmJpbmQod2luZG93LCJyZWFkeSIsYSksaSh0LCJv
bnBhZ2Vsb2FkIiksdC50eXBlcylyZXR1cm4gdm9pZCBmKHQudHlwZXMsZnVuY3Rpb24oZSl7Zih1
LnNlbGVjdChlLnNlbGVjdG9yKSxmdW5jdGlvbihpKXtyKG4oaSkscCh7fSx0LGUpKX0pfSk7aWYo
dC5zZWxlY3RvcilyZXR1cm4gdm9pZCBmKHUuc2VsZWN0KHQuc2VsZWN0b3IpLGZ1bmN0aW9uKGUp
e3IobihlKSx0KX0pO3N3aXRjaCh0Lm1vZGUpe2Nhc2UiZXhhY3QiOmM9dC5lbGVtZW50c3x8IiIs
Yy5sZW5ndGg+MCYmZihkKGMpLGZ1bmN0aW9uKG4pe3UuZ2V0KG4pPyhtPW5ldyBlKG4sdCxzKSxs
LnB1c2gobSksbS5yZW5kZXIoKSk6Zihkb2N1bWVudC5mb3JtcyxmdW5jdGlvbihlKXtmKGUuZWxl
bWVudHMsZnVuY3Rpb24oZSl7ZS5uYW1lPT09biYmKG49Im1jZV9lZGl0b3JfIitoKyssdS5zZXRB
dHRyaWIoZSwiaWQiLG4pLHIobix0KSl9KX0pfSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYXMiOmNhc2Ui
c3BlY2lmaWNfdGV4dGFyZWFzIjpmKHUuc2VsZWN0KCJ0ZXh0YXJlYSIpLGZ1bmN0aW9uKGUpe3Qu
ZWRpdG9yX2Rlc2VsZWN0b3ImJm8oZSx0LmVkaXRvcl9kZXNlbGVjdG9yKXx8KCF0LmVkaXRvcl9z
ZWxlY3Rvcnx8byhlLHQuZWRpdG9yX3NlbGVjdG9yKSkmJnIobihlKSx0KX0pfXQub25pbml0JiYo
Yz1nPTAsZihsLGZ1bmN0aW9uKGUpe2crKyxlLmluaXRpYWxpemVkP2MrKzplLm9uKCJpbml0Iixm
dW5jdGlvbigpe2MrKyxjPT1nJiZpKHQsIm9uaW5pdCIpfSksYz09ZyYmaSh0LCJvbmluaXQiKX0p
KX12YXIgcz10aGlzLGw9W10sbTtzLnNldHRpbmdzPXQsdS5iaW5kKHdpbmRvdywicmVhZHkiLGEp
fSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZSBpbiB0aGlzLmVkaXRv
cnM/dGhpcy5lZGl0b3JzW2VdOm51bGw6dGhpcy5lZGl0b3JzfSxhZGQ6ZnVuY3Rpb24oZSl7dmFy
IHQ9dGhpcyxuPXQuZWRpdG9ycztyZXR1cm4gbltlLmlkXT1lLG4ucHVzaChlKSx0LmFjdGl2ZUVk
aXRvcj1lLHQuZmlyZSgiQWRkRWRpdG9yIix7ZWRpdG9yOmV9KSxtfHwobT1mdW5jdGlvbigpe3Qu
ZmlyZSgiQmVmb3JlVW5sb2FkIil9LHUuYmluZCh3aW5kb3csImJlZm9yZXVubG9hZCIsbSkpLGV9
LGNyZWF0ZUVkaXRvcjpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLmFkZChuZXcgZSh0LG4sdGhp
cykpfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuLHI9dC5lZGl0b3JzLGk7e2lmKGUp
cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlPyhlPWUuc2VsZWN0b3J8fGUsdm9pZCBmKHUuc2VsZWN0
KGUpLGZ1bmN0aW9uKGUpe3QucmVtb3ZlKHJbZS5pZF0pfSkpOihpPWUscltpLmlkXT8obChpKSYm
dC5maXJlKCJSZW1vdmVFZGl0b3IiLHtlZGl0b3I6aX0pLHIubGVuZ3RofHx1LnVuYmluZCh3aW5k
b3csImJlZm9yZXVubG9hZCIsbSksaS5yZW1vdmUoKSxpKTpudWxsKTtmb3Iobj1yLmxlbmd0aC0x
O24+PTA7bi0tKXQucmVtb3ZlKHJbbl0pfX0sZXhlY0NvbW1hbmQ6ZnVuY3Rpb24odCxuLHIpe3Zh
ciBpPXRoaXMsbz1pLmdldChyKTtzd2l0Y2godCl7Y2FzZSJtY2VBZGRFZGl0b3IiOnJldHVybiBp
LmdldChyKXx8bmV3IGUocixpLnNldHRpbmdzLGkpLnJlbmRlcigpLCEwO2Nhc2UibWNlUmVtb3Zl
RWRpdG9yIjpyZXR1cm4gbyYmby5yZW1vdmUoKSwhMDtjYXNlIm1jZVRvZ2dsZUVkaXRvciI6cmV0
dXJuIG8/KG8uaXNIaWRkZW4oKT9vLnNob3coKTpvLmhpZGUoKSwhMCk6KGkuZXhlY0NvbW1hbmQo
Im1jZUFkZEVkaXRvciIsMCxyKSwhMCl9cmV0dXJuIGkuYWN0aXZlRWRpdG9yP2kuYWN0aXZlRWRp
dG9yLmV4ZWNDb21tYW5kKHQsbixyKTohMX0sdHJpZ2dlclNhdmU6ZnVuY3Rpb24oKXtmKHRoaXMu
ZWRpdG9ycyxmdW5jdGlvbihlKXtlLnNhdmUoKX0pfSxhZGRJMThuOmZ1bmN0aW9uKGUsdCl7YS5h
ZGQoZSx0KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBhLnRyYW5zbGF0ZShlKX19LHAo
ZyxvKSxnLnNldHVwKCksd2luZG93LnRpbnltY2U9d2luZG93LnRpbnlNQ0U9ZyxnfSkscihmdCxb
ZHQscF0sZnVuY3Rpb24oZSx0KXt2YXIgbj10LmVhY2gscj10LmV4cGxvZGU7ZS5vbigiQWRkRWRp
dG9yIixmdW5jdGlvbihlKXt2YXIgdD1lLmVkaXRvcjt0Lm9uKCJwcmVJbml0IixmdW5jdGlvbigp
e2Z1bmN0aW9uIGUoZSx0KXtuKHQsZnVuY3Rpb24odCxuKXt0JiZzLnNldFN0eWxlKGUsbix0KX0p
LHMucmVuYW1lKGUsInNwYW4iKX1mdW5jdGlvbiBpKGUpe3M9dC5kb20sbC5jb252ZXJ0X2ZvbnRz
X3RvX3NwYW5zJiZuKHMuc2VsZWN0KCJmb250LHUsc3RyaWtlIixlLm5vZGUpLGZ1bmN0aW9uKGUp
e29bZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXShzLGUpfSl9dmFyIG8sYSxzLGw9dC5zZXR0aW5n
cztsLmlubGluZV9zdHlsZXMmJihhPXIobC5mb250X3NpemVfbGVnYWN5X3ZhbHVlcyksbz17Zm9u
dDpmdW5jdGlvbih0LG4pe2Uobix7YmFja2dyb3VuZENvbG9yOm4uc3R5bGUuYmFja2dyb3VuZENv
bG9yLGNvbG9yOm4uY29sb3IsZm9udEZhbWlseTpuLmZhY2UsZm9udFNpemU6YVtwYXJzZUludChu
LnNpemUsMTApLTFdfSl9LHU6ZnVuY3Rpb24odCxuKXtlKG4se3RleHREZWNvcmF0aW9uOiJ1bmRl
cmxpbmUifSl9LHN0cmlrZTpmdW5jdGlvbih0LG4pe2Uobix7dGV4dERlY29yYXRpb246ImxpbmUt
dGhyb3VnaCJ9KX19LHQub24oIlByZVByb2Nlc3MgU2V0Q29udGVudCIsaSkpfSl9KX0pLHIocHQs
W10sZnVuY3Rpb24oKXtyZXR1cm57c2VuZDpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7IWUuYXN5
bmN8fDQ9PW4ucmVhZHlTdGF0ZXx8cisrPjFlND8oZS5zdWNjZXNzJiYxZTQ+ciYmMjAwPT1uLnN0
YXR1cz9lLnN1Y2Nlc3MuY2FsbChlLnN1Y2Nlc3Nfc2NvcGUsIiIrbi5yZXNwb25zZVRleHQsbixl
KTplLmVycm9yJiZlLmVycm9yLmNhbGwoZS5lcnJvcl9zY29wZSxyPjFlND8iVElNRURfT1VUIjoi
R0VORVJBTCIsbixlKSxuPW51bGwpOnNldFRpbWVvdXQodCwxMCl9dmFyIG4scj0wO2lmKGUuc2Nv
cGU9ZS5zY29wZXx8dGhpcyxlLnN1Y2Nlc3Nfc2NvcGU9ZS5zdWNjZXNzX3Njb3BlfHxlLnNjb3Bl
LGUuZXJyb3Jfc2NvcGU9ZS5lcnJvcl9zY29wZXx8ZS5zY29wZSxlLmFzeW5jPWUuYXN5bmM9PT0h
MT8hMTohMCxlLmRhdGE9ZS5kYXRhfHwiIixuPW5ldyBYTUxIdHRwUmVxdWVzdCl7aWYobi5vdmVy
cmlkZU1pbWVUeXBlJiZuLm92ZXJyaWRlTWltZVR5cGUoZS5jb250ZW50X3R5cGUpLG4ub3Blbihl
LnR5cGV8fChlLmRhdGE/IlBPU1QiOiJHRVQiKSxlLnVybCxlLmFzeW5jKSxlLmNvbnRlbnRfdHlw
ZSYmbi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGUuY29udGVudF90eXBlKSxuLnNl
dFJlcXVlc3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpLG4uc2Vu
ZChlLmRhdGEpLCFlLmFzeW5jKXJldHVybiB0KCk7c2V0VGltZW91dCh0LDEwKX19fX0pLHIoaHQs
W10sZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbil7dmFyIHIsaSxvLGE7aWYobj1ufHwnIicsbnVs
bD09PXQpcmV0dXJuIm51bGwiO2lmKG89dHlwZW9mIHQsInN0cmluZyI9PW8pcmV0dXJuIGk9Ilxi
Ygl0XG5uXGZmXHJyXCJcIicnXFxcXCIsbit0LnJlcGxhY2UoLyhbXHUwMDgwLVx1RkZGRlx4MDAt
XHgxZlwiXCdcXF0pL2csZnVuY3Rpb24oZSx0KXtyZXR1cm4nIic9PT1uJiYiJyI9PT1lP2U6KHI9
aS5pbmRleE9mKHQpLHIrMT8iXFwiK2kuY2hhckF0KHIrMSk6KGU9dC5jaGFyQ29kZUF0KCkudG9T
dHJpbmcoMTYpLCJcXHUiKyIwMDAwIi5zdWJzdHJpbmcoZS5sZW5ndGgpK2UpKX0pK247aWYoIm9i
amVjdCI9PW8pe2lmKHQuaGFzT3duUHJvcGVydHkmJiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkpe2ZvcihyPTAsaT0iWyI7cjx0Lmxlbmd0aDtyKysp
aSs9KHI+MD8iLCI6IiIpK2UodFtyXSxuKTtyZXR1cm4gaSsiXSJ9aT0ieyI7Zm9yKGEgaW4gdCl0
Lmhhc093blByb3BlcnR5KGEpJiYoaSs9ImZ1bmN0aW9uIiE9dHlwZW9mIHRbYV0/KGkubGVuZ3Ro
PjE/IiwiK246bikrYStuKyI6IitlKHRbYV0sbik6IiIpO3JldHVybiBpKyJ9In1yZXR1cm4iIit0
fXJldHVybntzZXJpYWxpemU6ZSxwYXJzZTpmdW5jdGlvbihlKXt0cnl7cmV0dXJuIHdpbmRvd1tT
dHJpbmcuZnJvbUNoYXJDb2RlKDEwMSkrInZhbCJdKCIoIitlKyIpIil9Y2F0Y2godCl7fX19fSks
cihtdCxbaHQscHQscF0sZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIHIoZSl7dGhpcy5zZXR0aW5n
cz1pKHt9LGUpLHRoaXMuY291bnQ9MH12YXIgaT1uLmV4dGVuZDtyZXR1cm4gci5zZW5kUlBDPWZ1
bmN0aW9uKGUpe3JldHVybihuZXcgcikuc2VuZChlKX0sci5wcm90b3R5cGU9e3NlbmQ6ZnVuY3Rp
b24obil7dmFyIHI9bi5lcnJvcixvPW4uc3VjY2VzcztuPWkodGhpcy5zZXR0aW5ncyxuKSxuLnN1
Y2Nlc3M9ZnVuY3Rpb24odCxpKXt0PWUucGFyc2UodCksInVuZGVmaW5lZCI9PXR5cGVvZiB0JiYo
dD17ZXJyb3I6IkpTT04gUGFyc2UgZXJyb3IuIn0pLHQuZXJyb3I/ci5jYWxsKG4uZXJyb3Jfc2Nv
cGV8fG4uc2NvcGUsdC5lcnJvcixpKTpvLmNhbGwobi5zdWNjZXNzX3Njb3BlfHxuLnNjb3BlLHQu
cmVzdWx0KX0sbi5lcnJvcj1mdW5jdGlvbihlLHQpe3ImJnIuY2FsbChuLmVycm9yX3Njb3BlfHxu
LnNjb3BlLGUsdCl9LG4uZGF0YT1lLnNlcmlhbGl6ZSh7aWQ6bi5pZHx8ImMiK3RoaXMuY291bnQr
KyxtZXRob2Q6bi5tZXRob2QscGFyYW1zOm4ucGFyYW1zfSksbi5jb250ZW50X3R5cGU9ImFwcGxp
Y2F0aW9uL2pzb24iLHQuc2VuZChuKX19LHJ9KSxyKGd0LFt5XSxmdW5jdGlvbihlKXtyZXR1cm57
Y2FsbGJhY2tzOnt9LGNvdW50OjAsc2VuZDpmdW5jdGlvbihuKXt2YXIgcj10aGlzLGk9ZS5ET00s
bz1uLmNvdW50IT09dD9uLmNvdW50OnIuY291bnQsYT0idGlueW1jZV9qc29ucF8iK287ci5jYWxs
YmFja3Nbb109ZnVuY3Rpb24oZSl7aS5yZW1vdmUoYSksZGVsZXRlIHIuY2FsbGJhY2tzW29dLG4u
Y2FsbGJhY2soZSl9LGkuYWRkKGkuZG9jLmJvZHksInNjcmlwdCIse2lkOmEsc3JjOm4udXJsLHR5
cGU6InRleHQvamF2YXNjcmlwdCJ9KSxyLmNvdW50Kyt9fX0pLHIodnQsW10sZnVuY3Rpb24oKXtm
dW5jdGlvbiBlKCl7cz1bXTtmb3IodmFyIGUgaW4gYSlzLnB1c2goZSk7aS5sZW5ndGg9cy5sZW5n
dGh9ZnVuY3Rpb24gbigpe2Z1bmN0aW9uIG4oZSl7dmFyIG4scjtyZXR1cm4gcj1lIT09dD91K2U6
aS5pbmRleE9mKCIsIix1KSwtMT09PXJ8fHI+aS5sZW5ndGg/bnVsbDoobj1pLnN1YnN0cmluZyh1
LHIpLHU9cisxLG4pfXZhciByLGkscyx1PTA7aWYoYT17fSxjKXtvLmxvYWQobCksaT1vLmdldEF0
dHJpYnV0ZShsKXx8IiI7ZG97dmFyIGQ9bigpO2lmKG51bGw9PT1kKWJyZWFrO2lmKHI9bihwYXJz
ZUludChkLDMyKXx8MCksbnVsbCE9PXIpe2lmKGQ9bigpLG51bGw9PT1kKWJyZWFrO3M9bihwYXJz
ZUludChkLDMyKXx8MCksciYmKGFbcl09cyl9fXdoaWxlKG51bGwhPT1yKTtlKCl9fWZ1bmN0aW9u
IHIoKXt2YXIgdCxuPSIiO2lmKGMpe2Zvcih2YXIgciBpbiBhKXQ9YVtyXSxuKz0obj8iLCI6IiIp
K3IubGVuZ3RoLnRvU3RyaW5nKDMyKSsiLCIrcisiLCIrdC5sZW5ndGgudG9TdHJpbmcoMzIpKyIs
Iit0O28uc2V0QXR0cmlidXRlKGwsbik7dHJ5e28uc2F2ZShsKX1jYXRjaChpKXt9ZSgpfX12YXIg
aSxvLGEscyxsLGM7dHJ5e2lmKHdpbmRvdy5sb2NhbFN0b3JhZ2UpcmV0dXJuIGxvY2FsU3RvcmFn
ZX1jYXRjaCh1KXt9cmV0dXJuIGw9InRpbnltY2UiLG89ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LGM9ISFvLmFkZEJlaGF2aW9yLGMmJm8uYWRkQmVoYXZpb3IoIiNkZWZhdWx0I3VzZXJEYXRhIiks
aT17a2V5OmZ1bmN0aW9uKGUpe3JldHVybiBzW2VdfSxnZXRJdGVtOmZ1bmN0aW9uKGUpe3JldHVy
biBlIGluIGE/YVtlXTpudWxsfSxzZXRJdGVtOmZ1bmN0aW9uKGUsdCl7YVtlXT0iIit0LHIoKX0s
cmVtb3ZlSXRlbTpmdW5jdGlvbihlKXtkZWxldGUgYVtlXSxyKCl9LGNsZWFyOmZ1bmN0aW9uKCl7
YT17fSxyKCl9fSxuKCksaX0pLHIoeXQsW3ksbCxiLEMscCxnXSxmdW5jdGlvbihlLHQsbixyLGks
byl7dmFyIGE9d2luZG93LnRpbnltY2U7cmV0dXJuIGEuRE9NPWUuRE9NLGEuU2NyaXB0TG9hZGVy
PW4uU2NyaXB0TG9hZGVyLGEuUGx1Z2luTWFuYWdlcj1yLlBsdWdpbk1hbmFnZXIsYS5UaGVtZU1h
bmFnZXI9ci5UaGVtZU1hbmFnZXIsYS5kb209YS5kb218fHt9LGEuZG9tLkV2ZW50PXQuRXZlbnQs
aS5lYWNoKGksZnVuY3Rpb24oZSx0KXthW3RdPWV9KSxpLmVhY2goImlzT3BlcmEgaXNXZWJLaXQg
aXNJRSBpc0dlY2tvIGlzTWFjIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe2FbZV09b1tlLnN1YnN0
cigyKS50b0xvd2VyQ2FzZSgpXX0pLHt9fSkscihidCxbeixwXSxmdW5jdGlvbihlLHQpe3JldHVy
biBlLmV4dGVuZCh7RGVmYXVsdHM6e2ZpcnN0Q29udHJvbENsYXNzOiJmaXJzdCIsbGFzdENvbnRy
b2xDbGFzczoibGFzdCJ9LGluaXQ6ZnVuY3Rpb24oZSl7dGhpcy5zZXR0aW5ncz10LmV4dGVuZCh7
fSx0aGlzLkRlZmF1bHRzLGUpfSxwcmVSZW5kZXI6ZnVuY3Rpb24oZSl7ZS5hZGRDbGFzcyh0aGlz
LnNldHRpbmdzLmNvbnRhaW5lckNsYXNzLCJib2R5Iil9LGFwcGx5Q2xhc3NlczpmdW5jdGlvbihl
KXt2YXIgdD10aGlzLG49dC5zZXR0aW5ncyxyLGksbztyPWUuaXRlbXMoKS5maWx0ZXIoIjp2aXNp
YmxlIiksaT1uLmZpcnN0Q29udHJvbENsYXNzLG89bi5sYXN0Q29udHJvbENsYXNzLHIuZWFjaChm
dW5jdGlvbihlKXtlLnJlbW92ZUNsYXNzKGkpLnJlbW92ZUNsYXNzKG8pLG4uY29udHJvbENsYXNz
JiZlLmFkZENsYXNzKG4uY29udHJvbENsYXNzKX0pLHIuZXEoMCkuYWRkQ2xhc3MoaSksci5lcSgt
MSkuYWRkQ2xhc3Mobyl9LHJlbmRlckh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQuc2V0
dGluZ3MscixpPSIiO3JldHVybiByPWUuaXRlbXMoKSxyLmVxKDApLmFkZENsYXNzKG4uZmlyc3RD
b250cm9sQ2xhc3MpLHIuZXEoLTEpLmFkZENsYXNzKG4ubGFzdENvbnRyb2xDbGFzcyksci5lYWNo
KGZ1bmN0aW9uKGUpe24uY29udHJvbENsYXNzJiZlLmFkZENsYXNzKG4uY29udHJvbENsYXNzKSxp
Kz1lLnJlbmRlckh0bWwoKX0pLGl9LHJlY2FsYzpmdW5jdGlvbigpe30scG9zdFJlbmRlcjpmdW5j
dGlvbigpe319KX0pLHIoQ3QsW2J0XSxmdW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe0RlZmF1
bHRzOntjb250YWluZXJDbGFzczoiYWJzLWxheW91dCIsY29udHJvbENsYXNzOiJhYnMtbGF5b3V0
LWl0ZW0ifSxyZWNhbGM6ZnVuY3Rpb24oZSl7ZS5pdGVtcygpLmZpbHRlcigiOnZpc2libGUiKS5l
YWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUuc2V0dGluZ3M7ZS5sYXlvdXRSZWN0KHt4OnQueCx5OnQu
eSx3OnQudyxoOnQuaH0pLGUucmVjYWxjJiZlLnJlY2FsYygpfSl9LHJlbmRlckh0bWw6ZnVuY3Rp
b24oZSl7cmV0dXJuJzxkaXYgaWQ9IicrZS5faWQrJy1hYnNlbmQiIGNsYXNzPSInK2UuY2xhc3NQ
cmVmaXgrJ2Ficy1lbmQiPjwvZGl2PicrdGhpcy5fc3VwZXIoZSl9fSl9KSxyKHh0LFskLFFdLGZ1
bmN0aW9uKGUsdCl7cmV0dXJuIGUuZXh0ZW5kKHtNaXhpbnM6W3RdLERlZmF1bHRzOntjbGFzc2Vz
OiJ3aWRnZXQgdG9vbHRpcCB0b29sdGlwLW4ifSx0ZXh0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7
cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBlPyh0Ll92YWx1ZT1lLHQuX3JlbmRlcmVkJiYodC5n
ZXRFbCgpLmxhc3RDaGlsZC5pbm5lckhUTUw9dC5lbmNvZGUoZSkpLHQpOnQuX3ZhbHVlfSxyZW5k
ZXJIdG1sOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuY2xhc3NQcmVmaXg7cmV0dXJuJzxkaXYg
aWQ9IicrZS5faWQrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgcm9sZT0icHJlc2VudGF0aW9u
Ij48ZGl2IGNsYXNzPSInK3QrJ3Rvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9IicrdCsn
dG9vbHRpcC1pbm5lciI+JytlLmVuY29kZShlLl90ZXh0KSsiPC9kaXY+PC9kaXY+In0scmVwYWlu
dDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdCxuO3Q9ZS5nZXRFbCgpLnN0eWxlLG49ZS5fbGF5b3V0
UmVjdCx0LmxlZnQ9bi54KyJweCIsdC50b3A9bi55KyJweCIsdC56SW5kZXg9MTMxMDcwfX0pfSks
cih3dCxbJCx4dF0sZnVuY3Rpb24oZSx0KXt2YXIgbixyPWUuZXh0ZW5kKHtpbml0OmZ1bmN0aW9u
KGUpe3ZhciB0PXRoaXM7dC5fc3VwZXIoZSksZT10LnNldHRpbmdzLHQuY2FuRm9jdXM9ITAsZS50
b29sdGlwJiZyLnRvb2x0aXBzIT09ITEmJih0Lm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbihuKXt2
YXIgcj10LnRvb2x0aXAoKS5tb3ZlVG8oLTY1NTM1KTtpZihuLmNvbnRyb2w9PXQpe3ZhciBpPXIu
dGV4dChlLnRvb2x0aXApLnNob3coKS50ZXN0TW92ZVJlbCh0LmdldEVsKCksWyJiYy10YyIsImJj
LXRsIiwiYmMtdHIiXSk7ci50b2dnbGVDbGFzcygidG9vbHRpcC1uIiwiYmMtdGMiPT1pKSxyLnRv
Z2dsZUNsYXNzKCJ0b29sdGlwLW53IiwiYmMtdGwiPT1pKSxyLnRvZ2dsZUNsYXNzKCJ0b29sdGlw
LW5lIiwiYmMtdHIiPT1pKSxyLm1vdmVSZWwodC5nZXRFbCgpLGkpfWVsc2Ugci5oaWRlKCl9KSx0
Lm9uKCJtb3VzZWxlYXZlIG1vdXNlZG93biBjbGljayIsZnVuY3Rpb24oKXt0LnRvb2x0aXAoKS5o
aWRlKCl9KSksdC5hcmlhKCJsYWJlbCIsZS5hcmlhTGFiZWx8fGUudG9vbHRpcCl9LHRvb2x0aXA6
ZnVuY3Rpb24oKXtyZXR1cm4gbnx8KG49bmV3IHQoe3R5cGU6InRvb2x0aXAifSksbi5yZW5kZXJU
bygpKSxufSxhY3RpdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuO3JldHVybiBlIT09biYmKHQu
YXJpYSgicHJlc3NlZCIsZSksdC50b2dnbGVDbGFzcygiYWN0aXZlIixlKSksdC5fc3VwZXIoZSl9
LGRpc2FibGVkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbjtyZXR1cm4gZSE9PW4mJih0LmFyaWEo
ImRpc2FibGVkIixlKSx0LnRvZ2dsZUNsYXNzKCJkaXNhYmxlZCIsZSkpLHQuX3N1cGVyKGUpfSxw
b3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuc2V0dGluZ3M7ZS5fcmVuZGVyZWQ9
ITAsZS5fc3VwZXIoKSxlLnBhcmVudCgpfHwhdC53aWR0aCYmIXQuaGVpZ2h0fHwoZS5pbml0TGF5
b3V0UmVjdCgpLGUucmVwYWludCgpKSx0LmF1dG9mb2N1cyYmZS5mb2N1cygpfSxyZW1vdmU6ZnVu
Y3Rpb24oKXt0aGlzLl9zdXBlcigpLG4mJihuLnJlbW92ZSgpLG49bnVsbCl9fSk7cmV0dXJuIHJ9
KSxyKF90LFt3dF0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7Y2xhc3Nl
czoid2lkZ2V0IGJ0biIscm9sZToiYnV0dG9uIn0saW5pdDpmdW5jdGlvbihlKXt2YXIgdD10aGlz
LG47dC5vbigiY2xpY2sgbW91c2Vkb3duIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9
KSx0Ll9zdXBlcihlKSxuPWUuc2l6ZSxlLnN1YnR5cGUmJnQuYWRkQ2xhc3MoZS5zdWJ0eXBlKSxu
JiZ0LmFkZENsYXNzKCJidG4tIituKX0saWNvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dC5j
bGFzc1ByZWZpeDtpZigidW5kZWZpbmVkIj09dHlwZW9mIGUpcmV0dXJuIHQuc2V0dGluZ3MuaWNv
bjtpZih0LnNldHRpbmdzLmljb249ZSxlPWU/bisiaWNvICIrbisiaS0iK3Quc2V0dGluZ3MuaWNv
bjoiIix0Ll9yZW5kZXJlZCl7dmFyIHI9dC5nZXRFbCgpLmZpcnN0Q2hpbGQsaT1yLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpIilbMF07ZT8oaSYmaT09ci5maXJzdENoaWxkfHwoaT1kb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpIiksci5pbnNlcnRCZWZvcmUoaSxyLmZpcnN0Q2hpbGQpKSxpLmNsYXNz
TmFtZT1lKTppJiZyLnJlbW92ZUNoaWxkKGkpLHQudGV4dCh0Ll90ZXh0KX1yZXR1cm4gdH0scmVw
YWludDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0RWwoKS5maXJzdENoaWxkLnN0eWxlO2Uud2lk
dGg9ZS5oZWlnaHQ9IjEwMCUiLHRoaXMuX3N1cGVyKCl9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9
dGhpcztpZih0Ll9yZW5kZXJlZCl7dmFyIG49dC5nZXRFbCgpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7
biYmKG4uZGF0YT10LnRyYW5zbGF0ZShlKSl9cmV0dXJuIHQuX3N1cGVyKGUpfSxyZW5kZXJIdG1s
OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuX2lkLG49ZS5jbGFzc1ByZWZpeCxyPWUuc2V0dGlu
Z3MuaWNvbixpO3JldHVybiBpPWUuc2V0dGluZ3MuaW1hZ2UsaT8ocj0ibm9uZSIsInN0cmluZyIh
PXR5cGVvZiBpJiYoaT13aW5kb3cuZ2V0U2VsZWN0aW9uP2lbMF06aVsxXSksaT0iIHN0eWxlPVwi
YmFja2dyb3VuZC1pbWFnZTogdXJsKCciK2krIicpXCIiKTppPSIiLHI9ZS5zZXR0aW5ncy5pY29u
P24rImljbyAiK24rImktIityOiIiLCc8ZGl2IGlkPSInK3QrJyIgY2xhc3M9IicrZS5jbGFzc2Vz
KCkrJyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsbGVkYnk9IicrdCsnIj48YnV0dG9uIHJvbGU9
InByZXNlbnRhdGlvbiIgdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iLTEiPicrKHI/JzxpIGNsYXNz
PSInK3IrJyInK2krIj48L2k+IjoiIikrKGUuX3RleHQ/KHI/Ilx4YTAiOiIiKStlLmVuY29kZShl
Ll90ZXh0KToiIikrIjwvYnV0dG9uPjwvZGl2PiJ9fSl9KSxyKE50LFtHXSxmdW5jdGlvbihlKXty
ZXR1cm4gZS5leHRlbmQoe0RlZmF1bHRzOntkZWZhdWx0VHlwZToiYnV0dG9uIixyb2xlOiJncm91
cCJ9LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5fbGF5b3V0O3JldHVybiBl
LmFkZENsYXNzKCJidG4tZ3JvdXAiKSxlLnByZVJlbmRlcigpLHQucHJlUmVuZGVyKGUpLCc8ZGl2
IGlkPSInK2UuX2lkKyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciPjxkaXYgaWQ9IicrZS5faWQr
Jy1ib2R5Ij4nKyhlLnNldHRpbmdzLmh0bWx8fCIiKSt0LnJlbmRlckh0bWwoZSkrIjwvZGl2Pjwv
ZGl2PiJ9fSl9KSxyKEV0LFt3dF0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0
czp7Y2xhc3NlczoiY2hlY2tib3giLHJvbGU6ImNoZWNrYm94IixjaGVja2VkOiExfSxpbml0OmZ1
bmN0aW9uKGUpe3ZhciB0PXRoaXM7dC5fc3VwZXIoZSksdC5vbigiY2xpY2sgbW91c2Vkb3duIixm
dW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9KSx0Lm9uKCJjbGljayIsZnVuY3Rpb24oZSl7
ZS5wcmV2ZW50RGVmYXVsdCgpLHQuZGlzYWJsZWQoKXx8dC5jaGVja2VkKCF0LmNoZWNrZWQoKSl9
KSx0LmNoZWNrZWQodC5zZXR0aW5ncy5jaGVja2VkKX0sY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIg
dD10aGlzO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZT8oZT90LmFkZENsYXNzKCJjaGVja2Vk
Iik6dC5yZW1vdmVDbGFzcygiY2hlY2tlZCIpLHQuX2NoZWNrZWQ9ZSx0LmFyaWEoImNoZWNrZWQi
LGUpLHQpOnQuX2NoZWNrZWR9LHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNoZWNrZWQo
ZSl9LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5faWQsbj1lLmNsYXNzUHJl
Zml4O3JldHVybic8ZGl2IGlkPSInK3QrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgdW5zZWxl
Y3RhYmxlPSJvbiIgYXJpYS1sYWJlbGxlZGJ5PSInK3QrJy1hbCIgdGFiaW5kZXg9Ii0xIj48aSBj
bGFzcz0iJytuKyJpY28gIituKydpLWNoZWNrYm94Ij48L2k+PHNwYW4gaWQ9IicrdCsnLWFsIiBj
bGFzcz0iJytuKydsYWJlbCI+JytlLmVuY29kZShlLl90ZXh0KSsiPC9zcGFuPjwvZGl2PiJ9fSl9
KSxyKFN0LFtfdCxldF0sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5leHRlbmQoe3Nob3dQYW5lbDpm
dW5jdGlvbigpe3ZhciBlPXRoaXMsbj1lLnNldHRpbmdzO2lmKGUuYWN0aXZlKCEwKSxlLnBhbmVs
KWUucGFuZWwuc2hvdygpO2Vsc2V7dmFyIHI9bi5wYW5lbDtyLnR5cGUmJihyPXtsYXlvdXQ6Imdy
aWQiLGl0ZW1zOnJ9KSxyLnJvbGU9ci5yb2xlfHwiZGlhbG9nIixyLnBvcG92ZXI9ITAsci5hdXRv
aGlkZT0hMCxyLmFyaWFSb290PSEwLGUucGFuZWw9bmV3IHQocikub24oImhpZGUiLGZ1bmN0aW9u
KCl7ZS5hY3RpdmUoITEpfSkub24oImNhbmNlbCIsZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRp
b24oKSxlLmZvY3VzKCksZS5oaWRlUGFuZWwoKX0pLnBhcmVudChlKS5yZW5kZXJUbyhlLmdldENv
bnRhaW5lckVsbSgpKSxlLnBhbmVsLmZpcmUoInNob3ciKSxlLnBhbmVsLnJlZmxvdygpfWUucGFu
ZWwubW92ZVJlbChlLmdldEVsKCksbi5wb3BvdmVyQWxpZ258fChlLmlzUnRsKCk/WyJiYy10ciIs
ImJjLXRjIl06WyJiYy10bCIsImJjLXRjIl0pKX0saGlkZVBhbmVsOmZ1bmN0aW9uKCl7dmFyIGU9
dGhpcztlLnBhbmVsJiZlLnBhbmVsLmhpZGUoKX0scG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBl
PXRoaXM7cmV0dXJuIGUuYXJpYSgiaGFzcG9wdXAiLCEwKSxlLm9uKCJjbGljayIsZnVuY3Rpb24o
dCl7dC5jb250cm9sPT09ZSYmKGUucGFuZWwmJmUucGFuZWwudmlzaWJsZSgpP2UuaGlkZVBhbmVs
KCk6KGUuc2hvd1BhbmVsKCksZS5wYW5lbC5mb2N1cyghIXQuYXJpYSkpKX0pLGUuX3N1cGVyKCl9
fSl9KSxyKGt0LFtTdCx5XSxmdW5jdGlvbihlLHQpe3ZhciBuPXQuRE9NO3JldHVybiBlLmV4dGVu
ZCh7aW5pdDpmdW5jdGlvbihlKXt0aGlzLl9zdXBlcihlKSx0aGlzLmFkZENsYXNzKCJjb2xvcmJ1
dHRvbiIpfSxjb2xvcjpmdW5jdGlvbihlKXtyZXR1cm4gZT8odGhpcy5fY29sb3I9ZSx0aGlzLmdl
dEVsKCJwcmV2aWV3Iikuc3R5bGUuYmFja2dyb3VuZENvbG9yPWUsdGhpcyk6dGhpcy5fY29sb3J9
LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5faWQsbj1lLmNsYXNzUHJlZml4
LHI9ZS5zZXR0aW5ncy5pY29uP24rImljbyAiK24rImktIitlLnNldHRpbmdzLmljb246IiIsaT1l
LnNldHRpbmdzLmltYWdlPyIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrZS5zZXR0
aW5ncy5pbWFnZSsiJylcIiI6IiI7cmV0dXJuJzxkaXYgaWQ9IicrdCsnIiBjbGFzcz0iJytlLmNs
YXNzZXMoKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSItMSIgYXJpYS1oYXNwb3B1cD0idHJ1
ZSI+PGJ1dHRvbiByb2xlPSJwcmVzZW50YXRpb24iIGhpZGVmb2N1cz0iMSIgdHlwZT0iYnV0dG9u
IiB0YWJpbmRleD0iLTEiPicrKHI/JzxpIGNsYXNzPSInK3IrJyInK2krIj48L2k+IjoiIikrJzxz
cGFuIGlkPSInK3QrJy1wcmV2aWV3IiBjbGFzcz0iJytuKydwcmV2aWV3Ij48L3NwYW4+JysoZS5f
dGV4dD8ocj8iICI6IiIpK2UuX3RleHQ6IiIpKyc8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRv
biIgY2xhc3M9Iicrbisnb3BlbiIgaGlkZWZvY3VzPSIxIiB0YWJpbmRleD0iLTEiPiA8aSBjbGFz
cz0iJytuKydjYXJldCI+PC9pPjwvYnV0dG9uPjwvZGl2Pid9LHBvc3RSZW5kZXI6ZnVuY3Rpb24o
KXt2YXIgZT10aGlzLHQ9ZS5zZXR0aW5ncy5vbmNsaWNrO3JldHVybiBlLm9uKCJjbGljayIsZnVu
Y3Rpb24ocil7ci5hcmlhJiYiZG93biI9PXIuYXJpYS5rZXl8fHIuY29udHJvbCE9ZXx8bi5nZXRQ
YXJlbnQoci50YXJnZXQsIi4iK2UuY2xhc3NQcmVmaXgrIm9wZW4iKXx8KHIuc3RvcEltbWVkaWF0
ZVByb3BhZ2F0aW9uKCksdC5jYWxsKGUscikpfSksZGVsZXRlIGUuc2V0dGluZ3Mub25jbGljayxl
Ll9zdXBlcigpfX0pfSkscihUdCxbd3QsaixxXSxmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuZXh0
ZW5kKHtpbml0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dC5fc3VwZXIoZSksdC5hZGRDbGFzcygi
Y29tYm9ib3giKSx0LnN1YmlucHV0PSEwLHQuYXJpYVRhcmdldD0iaW5wIixlPXQuc2V0dGluZ3Ms
ZS5tZW51PWUubWVudXx8ZS52YWx1ZXMsZS5tZW51JiYoZS5pY29uPSJjYXJldCIpLHQub24oImNs
aWNrIixmdW5jdGlvbihuKXtmb3IodmFyIHI9bi50YXJnZXQsaT10LmdldEVsKCk7ciYmciE9aTsp
ci5pZCYmLTEhPXIuaWQuaW5kZXhPZigiLW9wZW4iKSYmKHQuZmlyZSgiYWN0aW9uIiksZS5tZW51
JiYodC5zaG93TWVudSgpLG4uYXJpYSYmdC5tZW51Lml0ZW1zKClbMF0uZm9jdXMoKSkpLHI9ci5w
YXJlbnROb2RlfSksdC5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7IklOUFVUIj09ZS50YXJnZXQu
bm9kZU5hbWUmJjEzPT1lLmtleUNvZGUmJnQucGFyZW50cygpLnJldmVyc2UoKS5lYWNoKGZ1bmN0
aW9uKG4pe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCksdC5maXJlKCJjaGFuZ2UiKSxuLmhhc0V2
ZW50TGlzdGVuZXJzKCJzdWJtaXQiKSYmbi50b0pTT04/KG4uZmlyZSgic3VibWl0Iix7ZGF0YTpu
LnRvSlNPTigpfSksITEpOnZvaWQgMH0pfSksZS5wbGFjZWhvbGRlciYmKHQuYWRkQ2xhc3MoInBs
YWNlaG9sZGVyIiksdC5vbigiZm9jdXNpbiIsZnVuY3Rpb24oKXt0Ll9oYXNPbkNoYW5nZXx8KG4u
b24odC5nZXRFbCgiaW5wIiksImNoYW5nZSIsZnVuY3Rpb24oKXt0LmZpcmUoImNoYW5nZSIpfSks
dC5faGFzT25DaGFuZ2U9ITApLHQuaGFzQ2xhc3MoInBsYWNlaG9sZGVyIikmJih0LmdldEVsKCJp
bnAiKS52YWx1ZT0iIix0LnJlbW92ZUNsYXNzKCJwbGFjZWhvbGRlciIpKX0pLHQub24oImZvY3Vz
b3V0IixmdW5jdGlvbigpezA9PT10LnZhbHVlKCkubGVuZ3RoJiYodC5nZXRFbCgiaW5wIikudmFs
dWU9ZS5wbGFjZWhvbGRlcix0LmFkZENsYXNzKCJwbGFjZWhvbGRlciIpKX0pKX0sc2hvd01lbnU6
ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49ZS5zZXR0aW5ncyxyO2UubWVudXx8KHI9bi5tZW51fHxb
XSxyLmxlbmd0aD9yPXt0eXBlOiJtZW51IixpdGVtczpyfTpyLnR5cGU9ci50eXBlfHwibWVudSIs
ZS5tZW51PXQuY3JlYXRlKHIpLnBhcmVudChlKS5yZW5kZXJUbyhlLmdldENvbnRhaW5lckVsbSgp
KSxlLmZpcmUoImNyZWF0ZW1lbnUiKSxlLm1lbnUucmVmbG93KCksZS5tZW51Lm9uKCJjYW5jZWwi
LGZ1bmN0aW9uKHQpe3QuY29udHJvbD09PWUubWVudSYmZS5mb2N1cygpfSksZS5tZW51Lm9uKCJz
aG93IGhpZGUiLGZ1bmN0aW9uKHQpe3QuY29udHJvbC5pdGVtcygpLmVhY2goZnVuY3Rpb24odCl7
dC5hY3RpdmUodC52YWx1ZSgpPT1lLnZhbHVlKCkpfSl9KS5maXJlKCJzaG93IiksZS5tZW51Lm9u
KCJzZWxlY3QiLGZ1bmN0aW9uKHQpe2UudmFsdWUodC5jb250cm9sLnZhbHVlKCkpfSksZS5vbigi
Zm9jdXNpbiIsZnVuY3Rpb24odCl7IklOUFVUIj09dC50YXJnZXQudGFnTmFtZS50b1VwcGVyQ2Fz
ZSgpJiZlLm1lbnUuaGlkZSgpfSksZS5hcmlhKCJleHBhbmRlZCIsITApKSxlLm1lbnUuc2hvdygp
LGUubWVudS5sYXlvdXRSZWN0KHt3OmUubGF5b3V0UmVjdCgpLnd9KSxlLm1lbnUubW92ZVJlbChl
LmdldEVsKCksZS5pc1J0bCgpP1siYnItdHIiLCJ0ci1iciJdOlsiYmwtdGwiLCJ0bC1ibCJdKX0s
dmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGU/
KHQuX3ZhbHVlPWUsdC5yZW1vdmVDbGFzcygicGxhY2Vob2xkZXIiKSx0Ll9yZW5kZXJlZCYmKHQu
Z2V0RWwoImlucCIpLnZhbHVlPWUpLHQpOnQuX3JlbmRlcmVkPyhlPXQuZ2V0RWwoImlucCIpLnZh
bHVlLGUhPXQuc2V0dGluZ3MucGxhY2Vob2xkZXI/ZToiIik6dC5fdmFsdWV9LGRpc2FibGVkOmZ1
bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHQuX3JlbmRlcmVkJiYidW5kZWZpbmVkIiE9dHlw
ZW9mIGUmJih0LmdldEVsKCJpbnAiKS5kaXNhYmxlZD1lKSx0Ll9zdXBlcihlKX0sZm9jdXM6ZnVu
Y3Rpb24oKXt0aGlzLmdldEVsKCJpbnAiKS5mb2N1cygpfSxyZXBhaW50OmZ1bmN0aW9uKCl7dmFy
IGU9dGhpcyx0PWUuZ2V0RWwoKSxyPWUuZ2V0RWwoIm9wZW4iKSxpPWUubGF5b3V0UmVjdCgpLG8s
YTtvPXI/aS53LW4uZ2V0U2l6ZShyKS53aWR0aC0xMDppLnctMTA7dmFyIHM9ZG9jdW1lbnQ7cmV0
dXJuIHMuYWxsJiYoIXMuZG9jdW1lbnRNb2RlfHxzLmRvY3VtZW50TW9kZTw9OCkmJihhPWUubGF5
b3V0UmVjdCgpLmgtMisicHgiKSxuLmNzcyh0LmZpcnN0Q2hpbGQse3dpZHRoOm8sbGluZUhlaWdo
dDphfSksZS5fc3VwZXIoKSxlfSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1
cm4gbi5vbih0aGlzLmdldEVsKCJpbnAiKSwiY2hhbmdlIixmdW5jdGlvbigpe2UuZmlyZSgiY2hh
bmdlIil9KSxlLl9zdXBlcigpfSxyZW1vdmU6ZnVuY3Rpb24oKXtuLm9mZih0aGlzLmdldEVsKCJp
bnAiKSksdGhpcy5fc3VwZXIoKX0scmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1l
Ll9pZCxuPWUuc2V0dGluZ3Mscj1lLmNsYXNzUHJlZml4LGk9bi52YWx1ZXx8bi5wbGFjZWhvbGRl
cnx8IiIsbyxhLHM9IiIsbD0iIjtyZXR1cm4ic3BlbGxjaGVjayJpbiBuJiYobCs9JyBzcGVsbGNo
ZWNrPSInK24uc3BlbGxjaGVjaysnIicpLG4ubWF4TGVuZ3RoJiYobCs9JyBtYXhsZW5ndGg9Iicr
bi5tYXhMZW5ndGgrJyInKSxuLnNpemUmJihsKz0nIHNpemU9Iicrbi5zaXplKyciJyksbi5zdWJ0
eXBlJiYobCs9JyB0eXBlPSInK24uc3VidHlwZSsnIicpLGUuZGlzYWJsZWQoKSYmKGwrPScgZGlz
YWJsZWQ9ImRpc2FibGVkIicpLG89bi5pY29uLG8mJiJjYXJldCIhPW8mJihvPXIrImljbyAiK3Ir
ImktIituLmljb24pLGE9ZS5fdGV4dCwob3x8YSkmJihzPSc8ZGl2IGlkPSInK3QrJy1vcGVuIiBj
bGFzcz0iJytyKyJidG4gIityKydvcGVuIiB0YWJJbmRleD0iLTEiIHJvbGU9ImJ1dHRvbiI+PGJ1
dHRvbiBpZD0iJyt0KyctYWN0aW9uIiB0eXBlPSJidXR0b24iIGhpZGVmb2N1cz0iMSIgdGFiaW5k
ZXg9Ii0xIj4nKygiY2FyZXQiIT1vPyc8aSBjbGFzcz0iJytvKyciPjwvaT4nOic8aSBjbGFzcz0i
JytyKydjYXJldCI+PC9pPicpKyhhPyhvPyIgIjoiIikrYToiIikrIjwvYnV0dG9uPjwvZGl2PiIs
ZS5hZGRDbGFzcygiaGFzLW9wZW4iKSksJzxkaXYgaWQ9IicrdCsnIiBjbGFzcz0iJytlLmNsYXNz
ZXMoKSsnIj48aW5wdXQgaWQ9IicrdCsnLWlucCIgY2xhc3M9IicrcisidGV4dGJveCAiK3IrJ3Bs
YWNlaG9sZGVyIiB2YWx1ZT0iJytpKyciIGhpZGVmb2N1cz0iMSInK2wrIiAvPiIrcysiPC9kaXY+
IgorfX0pfSkscihSdCxbd3RdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7aW5pdDpmdW5j
dGlvbihlKXt2YXIgdD10aGlzO2UuZGVsaW1pdGVyfHwoZS5kZWxpbWl0ZXI9Ilx4YmIiKSx0Ll9z
dXBlcihlKSx0LmFkZENsYXNzKCJwYXRoIiksdC5jYW5Gb2N1cz0hMCx0Lm9uKCJjbGljayIsZnVu
Y3Rpb24oZSl7dmFyIG4scj1lLnRhcmdldDsobj1yLmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIp
KSYmdC5maXJlKCJzZWxlY3QiLHt2YWx1ZTp0LmRhdGEoKVtuXSxpbmRleDpufSl9KX0sZm9jdXM6
ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBlLmdldEVsKCkuZmlyc3RDaGlsZC5mb2N1cygp
LGV9LGRhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9m
IGU/KHQuX2RhdGE9ZSx0LnVwZGF0ZSgpLHQpOnQuX2RhdGF9LHVwZGF0ZTpmdW5jdGlvbigpe3Ro
aXMuaW5uZXJIdG1sKHRoaXMuX2dldFBhdGhIdG1sKCkpfSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7
dmFyIGU9dGhpcztlLl9zdXBlcigpLGUuZGF0YShlLnNldHRpbmdzLmRhdGEpfSxyZW5kZXJIdG1s
OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4nPGRpdiBpZD0iJytlLl9pZCsnIiBjbGFzcz0i
JytlLmNsYXNzZXMoKSsnIj4nK2UuX2dldFBhdGhIdG1sKCkrIjwvZGl2PiJ9LF9nZXRQYXRoSHRt
bDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9kYXRhfHxbXSxuLHIsaT0iIixvPWUuY2xhc3NQ
cmVmaXg7Zm9yKG49MCxyPXQubGVuZ3RoO3I+bjtuKyspaSs9KG4+MD8nPGRpdiBjbGFzcz0iJytv
KydkaXZpZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+ICcrZS5zZXR0aW5ncy5kZWxpbWl0ZXIrIiA8
L2Rpdj4iOiIiKSsnPGRpdiByb2xlPSJidXR0b24iIGNsYXNzPSInK28rInBhdGgtaXRlbSIrKG49
PXItMT8iICIrbysibGFzdCI6IiIpKyciIGRhdGEtaW5kZXg9IicrbisnIiB0YWJpbmRleD0iLTEi
IGlkPSInK2UuX2lkKyItIituKyciIGFyaWEtbGV2ZWw9IicrbisnIj4nK3Rbbl0ubmFtZSsiPC9k
aXY+IjtyZXR1cm4gaXx8KGk9JzxkaXYgY2xhc3M9IicrbysncGF0aC1pdGVtIj5ceGEwPC9kaXY+
JyksaX19KX0pLHIoQXQsW1J0LGR0XSxmdW5jdGlvbihlLHQpe3JldHVybiBlLmV4dGVuZCh7cG9z
dFJlbmRlcjpmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7aWYoMT09PWUubm9kZVR5cGUpe2lmKCJC
UiI9PWUubm9kZU5hbWV8fGUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1ib2d1cyIpKXJldHVybiEw
O2lmKCJib29rbWFyayI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtdHlwZSIpKXJldHVybiEw
fXJldHVybiExfXZhciBuPXRoaXMscj10LmFjdGl2ZUVkaXRvcjtyZXR1cm4gbi5vbigic2VsZWN0
IixmdW5jdGlvbih0KXt2YXIgbj1bXSxpLG89ci5nZXRCb2R5KCk7Zm9yKHIuZm9jdXMoKSxpPXIu
c2VsZWN0aW9uLmdldFN0YXJ0KCk7aSYmaSE9bzspZShpKXx8bi5wdXNoKGkpLGk9aS5wYXJlbnRO
b2RlO3Iuc2VsZWN0aW9uLnNlbGVjdChuW24ubGVuZ3RoLTEtdC5pbmRleF0pLHIubm9kZUNoYW5n
ZWQoKX0pLHIub24oIm5vZGVDaGFuZ2UiLGZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxvPXQucGFy
ZW50cyxhPW8ubGVuZ3RoO2EtLTspaWYoMT09b1thXS5ub2RlVHlwZSYmIWUob1thXSkpe3ZhciBz
PXIuZmlyZSgiUmVzb2x2ZU5hbWUiLHtuYW1lOm9bYV0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSx0
YXJnZXQ6b1thXX0pO2kucHVzaCh7bmFtZTpzLm5hbWV9KX1uLmRhdGEoaSl9KSxuLl9zdXBlcigp
fX0pfSkscihCdCxbR10sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7bGF5
b3V0OiJmbGV4IixhbGlnbjoiY2VudGVyIixkZWZhdWx0czp7ZmxleDoxfX0scmVuZGVySHRtbDpm
dW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9sYXlvdXQsbj1lLmNsYXNzUHJlZml4O3JldHVybiBl
LmFkZENsYXNzKCJmb3JtaXRlbSIpLHQucHJlUmVuZGVyKGUpLCc8ZGl2IGlkPSInK2UuX2lkKyci
IGNsYXNzPSInK2UuY2xhc3NlcygpKyciIGhpZGVmb2N1cz0iMSIgdGFiaW5kZXg9Ii0xIj4nKyhl
LnNldHRpbmdzLnRpdGxlPyc8ZGl2IGlkPSInK2UuX2lkKyctdGl0bGUiIGNsYXNzPSInK24rJ3Rp
dGxlIj4nK2Uuc2V0dGluZ3MudGl0bGUrIjwvZGl2PiI6IiIpKyc8ZGl2IGlkPSInK2UuX2lkKyct
Ym9keSIgY2xhc3M9IicrZS5jbGFzc2VzKCJib2R5IikrJyI+JysoZS5zZXR0aW5ncy5odG1sfHwi
IikrdC5yZW5kZXJIdG1sKGUpKyI8L2Rpdj48L2Rpdj4ifX0pfSkscihEdCxbRyxCdF0sZnVuY3Rp
b24oZSx0KXtyZXR1cm4gZS5leHRlbmQoe0RlZmF1bHRzOntjb250YWluZXJDbHM6ImZvcm0iLGxh
eW91dDoiZmxleCIsZGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduOiJzdHJldGNoIixmbGV4OjEscGFk
ZGluZzoyMCxsYWJlbEdhcDozMCxzcGFjaW5nOjEwLGNhbGxiYWNrczp7c3VibWl0OmZ1bmN0aW9u
KCl7dGhpcy5zdWJtaXQoKX19fSxwcmVSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49ZS5p
dGVtcygpO24uZWFjaChmdW5jdGlvbihuKXt2YXIgcixpPW4uc2V0dGluZ3MubGFiZWw7aSYmKHI9
bmV3IHQoe2xheW91dDoiZmxleCIsYXV0b1Jlc2l6ZToib3ZlcmZsb3ciLGRlZmF1bHRzOntmbGV4
OjF9LGl0ZW1zOlt7dHlwZToibGFiZWwiLGlkOm4uX2lkKyItbCIsdGV4dDppLGZsZXg6MCxmb3JJ
ZDpuLl9pZCxkaXNhYmxlZDpuLmRpc2FibGVkKCl9XX0pLHIudHlwZT0iZm9ybWl0ZW0iLG4uYXJp
YSgibGFiZWxsZWRieSIsbi5faWQrIi1sIiksInVuZGVmaW5lZCI9PXR5cGVvZiBuLnNldHRpbmdz
LmZsZXgmJihuLnNldHRpbmdzLmZsZXg9MSksZS5yZXBsYWNlKG4sciksci5hZGQobikpfSl9LHJl
Y2FsY0xhYmVsczpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD0wLG49W10scixpO2lmKGUuc2V0dGlu
Z3MubGFiZWxHYXBDYWxjIT09ITEpZm9yKGUuaXRlbXMoKS5maWx0ZXIoImZvcm1pdGVtIikuZWFj
aChmdW5jdGlvbihlKXt2YXIgcj1lLml0ZW1zKClbMF0saT1yLmdldEVsKCkuY2xpZW50V2lkdGg7
dD1pPnQ/aTp0LG4ucHVzaChyKX0pLGk9ZS5zZXR0aW5ncy5sYWJlbEdhcHx8MCxyPW4ubGVuZ3Ro
O3ItLTspbltyXS5zZXR0aW5ncy5taW5XaWR0aD10K2l9LHZpc2libGU6ZnVuY3Rpb24oZSl7dmFy
IHQ9dGhpcy5fc3VwZXIoZSk7cmV0dXJuIGU9PT0hMCYmdGhpcy5fcmVuZGVyZWQmJnRoaXMucmVj
YWxjTGFiZWxzKCksdH0sc3VibWl0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyZSgic3VibWl0
Iix7ZGF0YTp0aGlzLnRvSlNPTigpfSl9LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlz
O2UuX3N1cGVyKCksZS5yZWNhbGNMYWJlbHMoKSxlLmZyb21KU09OKGUuc2V0dGluZ3MuZGF0YSl9
fSl9KSxyKEx0LFtEdF0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7Y29u
dGFpbmVyQ2xzOiJmaWVsZHNldCIsbGF5b3V0OiJmbGV4IixkaXJlY3Rpb246ImNvbHVtbiIsYWxp
Z246InN0cmV0Y2giLGZsZXg6MSxwYWRkaW5nOiIyNSAxNSA1IDE1IixsYWJlbEdhcDozMCxzcGFj
aW5nOjEwLGJvcmRlcjoxfSxyZW5kZXJIdG1sOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuX2xh
eW91dCxuPWUuY2xhc3NQcmVmaXg7cmV0dXJuIGUucHJlUmVuZGVyKCksdC5wcmVSZW5kZXIoZSks
JzxmaWVsZHNldCBpZD0iJytlLl9pZCsnIiBjbGFzcz0iJytlLmNsYXNzZXMoKSsnIiBoaWRlZm9j
dXM9IjEiIHRhYmluZGV4PSItMSI+JysoZS5zZXR0aW5ncy50aXRsZT8nPGxlZ2VuZCBpZD0iJytl
Ll9pZCsnLXRpdGxlIiBjbGFzcz0iJytuKydmaWVsZHNldC10aXRsZSI+JytlLnNldHRpbmdzLnRp
dGxlKyI8L2xlZ2VuZD4iOiIiKSsnPGRpdiBpZD0iJytlLl9pZCsnLWJvZHkiIGNsYXNzPSInK2Uu
Y2xhc3NlcygiYm9keSIpKyciPicrKGUuc2V0dGluZ3MuaHRtbHx8IiIpK3QucmVuZGVySHRtbChl
KSsiPC9kaXY+PC9maWVsZHNldD4ifX0pfSkscihNdCxbVHRdLGZ1bmN0aW9uKGUpe3JldHVybiBl
LmV4dGVuZCh7aW5pdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGlueW1jZS5hY3RpdmVFZGl0
b3IscjtlLnNwZWxsY2hlY2s9ITEscj1uLnNldHRpbmdzLmZpbGVfYnJvd3Nlcl9jYWxsYmFjayxy
JiYoZS5pY29uPSJicm93c2UiLGUub25hY3Rpb249ZnVuY3Rpb24oKXtyKHQuZ2V0RWwoImlucCIp
LmlkLHQuZ2V0RWwoImlucCIpLnZhbHVlLGUuZmlsZXR5cGUsd2luZG93KX0pLHQuX3N1cGVyKGUp
fX0pfSkscihIdCxbQ3RdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7cmVjYWxjOmZ1bmN0
aW9uKGUpe3ZhciB0PWUubGF5b3V0UmVjdCgpLG49ZS5wYWRkaW5nQm94KCk7ZS5pdGVtcygpLmZp
bHRlcigiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKGUpe2UubGF5b3V0UmVjdCh7eDpuLmxlZnQs
eTpuLnRvcCx3OnQuaW5uZXJXLW4ucmlnaHQtbi5sZWZ0LGg6dC5pbm5lckgtbi50b3Atbi5ib3R0
b219KSxlLnJlY2FsYyYmZS5yZWNhbGMoKX0pfX0pfSkscihQdCxbQ3RdLGZ1bmN0aW9uKGUpe3Jl
dHVybiBlLmV4dGVuZCh7cmVjYWxjOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYSxzLGwsYyx1
LGQsZixwLGgsbSxnLHY9W10seSxiLEMseCx3LF8sTixFLFMsayxULFIsQSxCLEQsTCxNLEgsUCxP
LEksRix6PU1hdGgubWF4LFc9TWF0aC5taW47Zm9yKHI9ZS5pdGVtcygpLmZpbHRlcigiOnZpc2li
bGUiKSxpPWUubGF5b3V0UmVjdCgpLG89ZS5fcGFkZGluZ0JveCxhPWUuc2V0dGluZ3MsZj1lLmlz
UnRsKCk/YS5kaXJlY3Rpb258fCJyb3ctcmV2ZXJzZWQiOmEuZGlyZWN0aW9uLHM9YS5hbGlnbixs
PWUuaXNSdGwoKT9hLnBhY2t8fCJlbmQiOmEucGFjayxjPWEuc3BhY2luZ3x8MCwoInJvdy1yZXZl
cnNlZCI9PWZ8fCJjb2x1bW4tcmV2ZXJzZSI9PWYpJiYocj1yLnNldChyLnRvQXJyYXkoKS5yZXZl
cnNlKCkpLGY9Zi5zcGxpdCgiLSIpWzBdKSwiY29sdW1uIj09Zj8oUz0ieSIsTj0iaCIsRT0ibWlu
SCIsaz0ibWF4SCIsUj0iaW5uZXJIIixUPSJ0b3AiLEE9ImRlbHRhSCIsQj0iY29udGVudEgiLFA9
ImxlZnQiLE09InciLEQ9IngiLEw9ImlubmVyVyIsSD0ibWluVyIsTz0icmlnaHQiLEk9ImRlbHRh
VyIsRj0iY29udGVudFciKTooUz0ieCIsTj0idyIsRT0ibWluVyIsaz0ibWF4VyIsUj0iaW5uZXJX
IixUPSJsZWZ0IixBPSJkZWx0YVciLEI9ImNvbnRlbnRXIixQPSJ0b3AiLE09ImgiLEQ9InkiLEw9
ImlubmVySCIsSD0ibWluSCIsTz0iYm90dG9tIixJPSJkZWx0YUgiLEY9ImNvbnRlbnRIIiksZD1p
W1JdLW9bVF0tb1tUXSxfPXU9MCx0PTAsbj1yLmxlbmd0aDtuPnQ7dCsrKXA9clt0XSxoPXAubGF5
b3V0UmVjdCgpLG09cC5zZXR0aW5ncyxnPW0uZmxleCxkLT1uLTE+dD9jOjAsZz4wJiYodSs9Zyxo
W2tdJiZ2LnB1c2gocCksaC5mbGV4PWcpLGQtPWhbRV0seT1vW1BdK2hbSF0rb1tPXSx5Pl8mJihf
PXkpO2lmKHg9e30seFtFXT0wPmQ/aVtFXS1kK2lbQV06aVtSXS1kK2lbQV0seFtIXT1fK2lbSV0s
eFtCXT1pW1JdLWQseFtGXT1fLHgubWluVz1XKHgubWluVyxpLm1heFcpLHgubWluSD1XKHgubWlu
SCxpLm1heEgpLHgubWluVz16KHgubWluVyxpLnN0YXJ0TWluV2lkdGgpLHgubWluSD16KHgubWlu
SCxpLnN0YXJ0TWluSGVpZ2h0KSwhaS5hdXRvUmVzaXplfHx4Lm1pblc9PWkubWluVyYmeC5taW5I
PT1pLm1pbkgpe2ZvcihDPWQvdSx0PTAsbj12Lmxlbmd0aDtuPnQ7dCsrKXA9dlt0XSxoPXAubGF5
b3V0UmVjdCgpLGI9aFtrXSx5PWhbRV0raC5mbGV4KkMseT5iPyhkLT1oW2tdLWhbRV0sdS09aC5m
bGV4LGguZmxleD0wLGgubWF4RmxleFNpemU9Yik6aC5tYXhGbGV4U2l6ZT0wO2ZvcihDPWQvdSx3
PW9bVF0seD17fSwwPT09dSYmKCJlbmQiPT1sP3c9ZCtvW1RdOiJjZW50ZXIiPT1sPyh3PU1hdGgu
cm91bmQoaVtSXS8yLShpW1JdLWQpLzIpK29bVF0sMD53JiYodz1vW1RdKSk6Imp1c3RpZnkiPT1s
JiYodz1vW1RdLGM9TWF0aC5mbG9vcihkLyhyLmxlbmd0aC0xKSkpKSx4W0RdPW9bUF0sdD0wLG49
ci5sZW5ndGg7bj50O3QrKylwPXJbdF0saD1wLmxheW91dFJlY3QoKSx5PWgubWF4RmxleFNpemV8
fGhbRV0sImNlbnRlciI9PT1zP3hbRF09TWF0aC5yb3VuZChpW0xdLzItaFtNXS8yKToic3RyZXRj
aCI9PT1zPyh4W01dPXooaFtIXXx8MCxpW0xdLW9bUF0tb1tPXSkseFtEXT1vW1BdKToiZW5kIj09
PXMmJih4W0RdPWlbTF0taFtNXS1vLnRvcCksaC5mbGV4PjAmJih5Kz1oLmZsZXgqQykseFtOXT15
LHhbU109dyxwLmxheW91dFJlY3QoeCkscC5yZWNhbGMmJnAucmVjYWxjKCksdys9eStjfWVsc2Ug
aWYoeC53PXgubWluVyx4Lmg9eC5taW5ILGUubGF5b3V0UmVjdCh4KSx0aGlzLnJlY2FsYyhlKSxu
dWxsPT09ZS5fbGFzdFJlY3Qpe3ZhciBWPWUucGFyZW50KCk7ViYmKFYuX2xhc3RSZWN0PW51bGws
Vi5yZWNhbGMoKSl9fX0pfSkscihPdCxbYnRdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7
RGVmYXVsdHM6e2NvbnRhaW5lckNsYXNzOiJmbG93LWxheW91dCIsY29udHJvbENsYXNzOiJmbG93
LWxheW91dC1pdGVtIixlbmRDbGFzczoiYnJlYWsifSxyZWNhbGM6ZnVuY3Rpb24oZSl7ZS5pdGVt
cygpLmZpbHRlcigiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKGUpe2UucmVjYWxjJiZlLnJlY2Fs
YygpfSl9fSl9KSxyKEl0LFskLHd0LGV0LHAsZHQsZ10sZnVuY3Rpb24oZSx0LG4scixpLG8pe2Z1
bmN0aW9uIGEoZSl7ZnVuY3Rpb24gdCh0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXRoaXM7
ZS5vbigibm9kZUNoYW5nZSIsZnVuY3Rpb24oaSl7dmFyIG89ZS5mb3JtYXR0ZXIsYT1udWxsO3Mo
aS5wYXJlbnRzLGZ1bmN0aW9uKGUpe3JldHVybiBzKHQsZnVuY3Rpb24odCl7cmV0dXJuIG4/by5t
YXRjaE5vZGUoZSxuLHt2YWx1ZTp0LnZhbHVlfSkmJihhPXQudmFsdWUpOm8ubWF0Y2hOb2RlKGUs
dC52YWx1ZSkmJihhPXQudmFsdWUpLGE/ITE6dm9pZCAwfSksYT8hMTp2b2lkIDB9KSxyLnZhbHVl
KGEpfSl9fWZ1bmN0aW9uIHIoZSl7ZT1lLnJlcGxhY2UoLzskLywiIikuc3BsaXQoIjsiKTtmb3Io
dmFyIHQ9ZS5sZW5ndGg7dC0tOyllW3RdPWVbdF0uc3BsaXQoIj0iKTtyZXR1cm4gZX1mdW5jdGlv
biBpKCl7ZnVuY3Rpb24gdChlKXt2YXIgbj1bXTtpZihlKXJldHVybiBzKGUsZnVuY3Rpb24oZSl7
dmFyIG89e3RleHQ6ZS50aXRsZSxpY29uOmUuaWNvbn07aWYoZS5pdGVtcylvLm1lbnU9dChlLml0
ZW1zKTtlbHNle3ZhciBhPWUuZm9ybWF0fHwiY3VzdG9tIityKys7ZS5mb3JtYXR8fChlLm5hbWU9
YSxpLnB1c2goZSkpLG8uZm9ybWF0PWF9bi5wdXNoKG8pfSksbn1mdW5jdGlvbiBuKCl7dmFyIG47
cmV0dXJuIG49dChlLnNldHRpbmdzLnN0eWxlX2Zvcm1hdHNfbWVyZ2U/ZS5zZXR0aW5ncy5zdHls
ZV9mb3JtYXRzP28uY29uY2F0KGUuc2V0dGluZ3Muc3R5bGVfZm9ybWF0cyk6bzplLnNldHRpbmdz
LnN0eWxlX2Zvcm1hdHN8fG8pfXZhciByPTAsaT1bXSxvPVt7dGl0bGU6IkhlYWRpbmdzIixpdGVt
czpbe3RpdGxlOiJIZWFkaW5nIDEiLGZvcm1hdDoiaDEifSx7dGl0bGU6IkhlYWRpbmcgMiIsZm9y
bWF0OiJoMiJ9LHt0aXRsZToiSGVhZGluZyAzIixmb3JtYXQ6ImgzIn0se3RpdGxlOiJIZWFkaW5n
IDQiLGZvcm1hdDoiaDQifSx7dGl0bGU6IkhlYWRpbmcgNSIsZm9ybWF0OiJoNSJ9LHt0aXRsZToi
SGVhZGluZyA2Iixmb3JtYXQ6Img2In1dfSx7dGl0bGU6IklubGluZSIsaXRlbXM6W3t0aXRsZToi
Qm9sZCIsaWNvbjoiYm9sZCIsZm9ybWF0OiJib2xkIn0se3RpdGxlOiJJdGFsaWMiLGljb246Iml0
YWxpYyIsZm9ybWF0OiJpdGFsaWMifSx7dGl0bGU6IlVuZGVybGluZSIsaWNvbjoidW5kZXJsaW5l
Iixmb3JtYXQ6InVuZGVybGluZSJ9LHt0aXRsZToiU3RyaWtldGhyb3VnaCIsaWNvbjoic3RyaWtl
dGhyb3VnaCIsZm9ybWF0OiJzdHJpa2V0aHJvdWdoIn0se3RpdGxlOiJTdXBlcnNjcmlwdCIsaWNv
bjoic3VwZXJzY3JpcHQiLGZvcm1hdDoic3VwZXJzY3JpcHQifSx7dGl0bGU6IlN1YnNjcmlwdCIs
aWNvbjoic3Vic2NyaXB0Iixmb3JtYXQ6InN1YnNjcmlwdCJ9LHt0aXRsZToiQ29kZSIsaWNvbjoi
Y29kZSIsZm9ybWF0OiJjb2RlIn1dfSx7dGl0bGU6IkJsb2NrcyIsaXRlbXM6W3t0aXRsZToiUGFy
YWdyYXBoIixmb3JtYXQ6InAifSx7dGl0bGU6IkJsb2NrcXVvdGUiLGZvcm1hdDoiYmxvY2txdW90
ZSJ9LHt0aXRsZToiRGl2Iixmb3JtYXQ6ImRpdiJ9LHt0aXRsZToiUHJlIixmb3JtYXQ6InByZSJ9
XX0se3RpdGxlOiJBbGlnbm1lbnQiLGl0ZW1zOlt7dGl0bGU6IkxlZnQiLGljb246ImFsaWdubGVm
dCIsZm9ybWF0OiJhbGlnbmxlZnQifSx7dGl0bGU6IkNlbnRlciIsaWNvbjoiYWxpZ25jZW50ZXIi
LGZvcm1hdDoiYWxpZ25jZW50ZXIifSx7dGl0bGU6IlJpZ2h0IixpY29uOiJhbGlnbnJpZ2h0Iixm
b3JtYXQ6ImFsaWducmlnaHQifSx7dGl0bGU6Ikp1c3RpZnkiLGljb246ImFsaWduanVzdGlmeSIs
Zm9ybWF0OiJhbGlnbmp1c3RpZnkifV19XTtyZXR1cm4gZS5vbigiaW5pdCIsZnVuY3Rpb24oKXtz
KGksZnVuY3Rpb24odCl7ZS5mb3JtYXR0ZXIucmVnaXN0ZXIodC5uYW1lLHQpfSl9KSx7dHlwZToi
bWVudSIsaXRlbXM6bigpLG9uUG9zdFJlbmRlcjpmdW5jdGlvbih0KXtlLmZpcmUoInJlbmRlckZv
cm1hdHNNZW51Iix7Y29udHJvbDp0LmNvbnRyb2x9KX0saXRlbURlZmF1bHRzOntwcmV2aWV3OiEw
LHRleHRTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdzLmZvcm1hdD9lLmZvcm1h
dHRlci5nZXRDc3NUZXh0KHRoaXMuc2V0dGluZ3MuZm9ybWF0KTp2b2lkIDB9LG9uUG9zdFJlbmRl
cjpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLnNldHRpbmdzLmZvcm1hdDtuJiZ0LnBhcmVu
dCgpLm9uKCJzaG93IixmdW5jdGlvbigpe3QuZGlzYWJsZWQoIWUuZm9ybWF0dGVyLmNhbkFwcGx5
KG4pKSx0LmFjdGl2ZShlLmZvcm1hdHRlci5tYXRjaChuKSl9KX0sb25jbGljazpmdW5jdGlvbigp
e3RoaXMuc2V0dGluZ3MuZm9ybWF0JiZkKHRoaXMuc2V0dGluZ3MuZm9ybWF0KX19fX1mdW5jdGlv
biBvKCl7cmV0dXJuIGUudW5kb01hbmFnZXI/ZS51bmRvTWFuYWdlci5oYXNVbmRvKCk6ITF9ZnVu
Y3Rpb24gYSgpe3JldHVybiBlLnVuZG9NYW5hZ2VyP2UudW5kb01hbmFnZXIuaGFzUmVkbygpOiEx
fWZ1bmN0aW9uIGwoKXt2YXIgdD10aGlzO3QuZGlzYWJsZWQoIW8oKSksZS5vbigiVW5kbyBSZWRv
IEFkZFVuZG8gVHlwaW5nVW5kbyIsZnVuY3Rpb24oKXt0LmRpc2FibGVkKCFvKCkpfSl9ZnVuY3Rp
b24gYygpe3ZhciB0PXRoaXM7dC5kaXNhYmxlZCghYSgpKSxlLm9uKCJVbmRvIFJlZG8gQWRkVW5k
byBUeXBpbmdVbmRvIixmdW5jdGlvbigpe3QuZGlzYWJsZWQoIWEoKSl9KX1mdW5jdGlvbiB1KCl7
dmFyIHQ9dGhpcztlLm9uKCJWaXN1YWxBaWQiLGZ1bmN0aW9uKGUpe3QuYWN0aXZlKGUuaGFzVmlz
dWFsKX0pLHQuYWN0aXZlKGUuaGFzVmlzdWFsKX1mdW5jdGlvbiBkKHQpe3QuY29udHJvbCYmKHQ9
dC5jb250cm9sLnZhbHVlKCkpLHQmJmUuZXhlY0NvbW1hbmQoIm1jZVRvZ2dsZUZvcm1hdCIsITEs
dCl9dmFyIGY7Zj1pKCkscyh7Ym9sZDoiQm9sZCIsaXRhbGljOiJJdGFsaWMiLHVuZGVybGluZToi
VW5kZXJsaW5lIixzdHJpa2V0aHJvdWdoOiJTdHJpa2V0aHJvdWdoIixzdWJzY3JpcHQ6IlN1YnNj
cmlwdCIsc3VwZXJzY3JpcHQ6IlN1cGVyc2NyaXB0In0sZnVuY3Rpb24odCxuKXtlLmFkZEJ1dHRv
bihuLHt0b29sdGlwOnQsb25Qb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztlLmZvcm1h
dHRlcj9lLmZvcm1hdHRlci5mb3JtYXRDaGFuZ2VkKG4sZnVuY3Rpb24oZSl7dC5hY3RpdmUoZSl9
KTplLm9uKCJpbml0IixmdW5jdGlvbigpe2UuZm9ybWF0dGVyLmZvcm1hdENoYW5nZWQobixmdW5j
dGlvbihlKXt0LmFjdGl2ZShlKX0pfSl9LG9uY2xpY2s6ZnVuY3Rpb24oKXtkKG4pfX0pfSkscyh7
b3V0ZGVudDpbIkRlY3JlYXNlIGluZGVudCIsIk91dGRlbnQiXSxpbmRlbnQ6WyJJbmNyZWFzZSBp
bmRlbnQiLCJJbmRlbnQiXSxjdXQ6WyJDdXQiLCJDdXQiXSxjb3B5OlsiQ29weSIsIkNvcHkiXSxw
YXN0ZTpbIlBhc3RlIiwiUGFzdGUiXSxoZWxwOlsiSGVscCIsIm1jZUhlbHAiXSxzZWxlY3RhbGw6
WyJTZWxlY3QgYWxsIiwiU2VsZWN0QWxsIl0saHI6WyJJbnNlcnQgaG9yaXpvbnRhbCBydWxlIiwi
SW5zZXJ0SG9yaXpvbnRhbFJ1bGUiXSxyZW1vdmVmb3JtYXQ6WyJDbGVhciBmb3JtYXR0aW5nIiwi
UmVtb3ZlRm9ybWF0Il0sdmlzdWFsYWlkOlsiVmlzdWFsIGFpZHMiLCJtY2VUb2dnbGVWaXN1YWxB
aWQiXSxuZXdkb2N1bWVudDpbIk5ldyBkb2N1bWVudCIsIm1jZU5ld0RvY3VtZW50Il19LGZ1bmN0
aW9uKHQsbil7ZS5hZGRCdXR0b24obix7dG9vbHRpcDp0WzBdLGNtZDp0WzFdfSl9KSxzKHtibG9j
a3F1b3RlOlsiQmxvY2txdW90ZSIsIm1jZUJsb2NrUXVvdGUiXSxudW1saXN0OlsiTnVtYmVyZWQg
bGlzdCIsIkluc2VydE9yZGVyZWRMaXN0Il0sYnVsbGlzdDpbIkJ1bGxldCBsaXN0IiwiSW5zZXJ0
VW5vcmRlcmVkTGlzdCJdLHN1YnNjcmlwdDpbIlN1YnNjcmlwdCIsIlN1YnNjcmlwdCJdLHN1cGVy
c2NyaXB0OlsiU3VwZXJzY3JpcHQiLCJTdXBlcnNjcmlwdCJdLGFsaWdubGVmdDpbIkFsaWduIGxl
ZnQiLCJKdXN0aWZ5TGVmdCJdLGFsaWduY2VudGVyOlsiQWxpZ24gY2VudGVyIiwiSnVzdGlmeUNl
bnRlciJdLGFsaWducmlnaHQ6WyJBbGlnbiByaWdodCIsIkp1c3RpZnlSaWdodCJdLGFsaWduanVz
dGlmeTpbIkp1c3RpZnkiLCJKdXN0aWZ5RnVsbCJdfSxmdW5jdGlvbih0LG4pe2UuYWRkQnV0dG9u
KG4se3Rvb2x0aXA6dFswXSxjbWQ6dFsxXSxvblBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgdD10
aGlzO2UuZm9ybWF0dGVyP2UuZm9ybWF0dGVyLmZvcm1hdENoYW5nZWQobixmdW5jdGlvbihlKXt0
LmFjdGl2ZShlKX0pOmUub24oImluaXQiLGZ1bmN0aW9uKCl7ZS5mb3JtYXR0ZXIuZm9ybWF0Q2hh
bmdlZChuLGZ1bmN0aW9uKGUpe3QuYWN0aXZlKGUpfSl9KX19KX0pLGUuYWRkQnV0dG9uKCJ1bmRv
Iix7dG9vbHRpcDoiVW5kbyIsb25Qb3N0UmVuZGVyOmwsY21kOiJ1bmRvIn0pLGUuYWRkQnV0dG9u
KCJyZWRvIix7dG9vbHRpcDoiUmVkbyIsb25Qb3N0UmVuZGVyOmMsY21kOiJyZWRvIn0pLGUuYWRk
TWVudUl0ZW0oIm5ld2RvY3VtZW50Iix7dGV4dDoiTmV3IGRvY3VtZW50IixzaG9ydGN1dDoiQ3Ry
bCtOIixpY29uOiJuZXdkb2N1bWVudCIsY21kOiJtY2VOZXdEb2N1bWVudCJ9KSxlLmFkZE1lbnVJ
dGVtKCJ1bmRvIix7dGV4dDoiVW5kbyIsaWNvbjoidW5kbyIsc2hvcnRjdXQ6IkN0cmwrWiIsb25Q
b3N0UmVuZGVyOmwsY21kOiJ1bmRvIn0pLGUuYWRkTWVudUl0ZW0oInJlZG8iLHt0ZXh0OiJSZWRv
IixpY29uOiJyZWRvIixzaG9ydGN1dDoiQ3RybCtZIixvblBvc3RSZW5kZXI6YyxjbWQ6InJlZG8i
fSksZS5hZGRNZW51SXRlbSgidmlzdWFsYWlkIix7dGV4dDoiVmlzdWFsIGFpZHMiLHNlbGVjdGFi
bGU6ITAsb25Qb3N0UmVuZGVyOnUsY21kOiJtY2VUb2dnbGVWaXN1YWxBaWQifSkscyh7Y3V0Olsi
Q3V0IiwiQ3V0IiwiQ3RybCtYIl0sY29weTpbIkNvcHkiLCJDb3B5IiwiQ3RybCtDIl0scGFzdGU6
WyJQYXN0ZSIsIlBhc3RlIiwiQ3RybCtWIl0sc2VsZWN0YWxsOlsiU2VsZWN0IGFsbCIsIlNlbGVj
dEFsbCIsIkN0cmwrQSJdLGJvbGQ6WyJCb2xkIiwiQm9sZCIsIkN0cmwrQiJdLGl0YWxpYzpbIkl0
YWxpYyIsIkl0YWxpYyIsIkN0cmwrSSJdLHVuZGVybGluZTpbIlVuZGVybGluZSIsIlVuZGVybGlu
ZSJdLHN0cmlrZXRocm91Z2g6WyJTdHJpa2V0aHJvdWdoIiwiU3RyaWtldGhyb3VnaCJdLHN1YnNj
cmlwdDpbIlN1YnNjcmlwdCIsIlN1YnNjcmlwdCJdLHN1cGVyc2NyaXB0OlsiU3VwZXJzY3JpcHQi
LCJTdXBlcnNjcmlwdCJdLHJlbW92ZWZvcm1hdDpbIkNsZWFyIGZvcm1hdHRpbmciLCJSZW1vdmVG
b3JtYXQiXX0sZnVuY3Rpb24odCxuKXtlLmFkZE1lbnVJdGVtKG4se3RleHQ6dFswXSxpY29uOm4s
c2hvcnRjdXQ6dFsyXSxjbWQ6dFsxXX0pfSksZS5vbigibW91c2Vkb3duIixmdW5jdGlvbigpe24u
aGlkZUFsbCgpfSksZS5hZGRCdXR0b24oInN0eWxlc2VsZWN0Iix7dHlwZToibWVudWJ1dHRvbiIs
dGV4dDoiRm9ybWF0cyIsbWVudTpmfSksZS5hZGRCdXR0b24oImZvcm1hdHNlbGVjdCIsZnVuY3Rp
b24oKXt2YXIgbj1bXSxpPXIoZS5zZXR0aW5ncy5ibG9ja19mb3JtYXRzfHwiUGFyYWdyYXBoPXA7
QWRkcmVzcz1hZGRyZXNzO1ByZT1wcmU7SGVhZGluZyAxPWgxO0hlYWRpbmcgMj1oMjtIZWFkaW5n
IDM9aDM7SGVhZGluZyA0PWg0O0hlYWRpbmcgNT1oNTtIZWFkaW5nIDY9aDYiKTtyZXR1cm4gcyhp
LGZ1bmN0aW9uKHQpe24ucHVzaCh7dGV4dDp0WzBdLHZhbHVlOnRbMV0sdGV4dFN0eWxlOmZ1bmN0
aW9uKCl7cmV0dXJuIGUuZm9ybWF0dGVyLmdldENzc1RleHQodFsxXSl9fSl9KSx7dHlwZToibGlz
dGJveCIsdGV4dDppWzBdWzBdLHZhbHVlczpuLGZpeGVkV2lkdGg6ITAsb25zZWxlY3Q6ZCxvblBv
c3RSZW5kZXI6dChuKX19KSxlLmFkZEJ1dHRvbigiZm9udHNlbGVjdCIsZnVuY3Rpb24oKXt2YXIg
bj0iQW5kYWxlIE1vbm89YW5kYWxlIG1vbm8sdGltZXM7QXJpYWw9YXJpYWwsaGVsdmV0aWNhLHNh
bnMtc2VyaWY7QXJpYWwgQmxhY2s9YXJpYWwgYmxhY2ssYXZhbnQgZ2FyZGU7Qm9vayBBbnRpcXVh
PWJvb2sgYW50aXF1YSxwYWxhdGlubztDb21pYyBTYW5zIE1TPWNvbWljIHNhbnMgbXMsc2Fucy1z
ZXJpZjtDb3VyaWVyIE5ldz1jb3VyaWVyIG5ldyxjb3VyaWVyO0dlb3JnaWE9Z2VvcmdpYSxwYWxh
dGlubztIZWx2ZXRpY2E9aGVsdmV0aWNhO0ltcGFjdD1pbXBhY3QsY2hpY2FnbztTeW1ib2w9c3lt
Ym9sO1RhaG9tYT10YWhvbWEsYXJpYWwsaGVsdmV0aWNhLHNhbnMtc2VyaWY7VGVybWluYWw9dGVy
bWluYWwsbW9uYWNvO1RpbWVzIE5ldyBSb21hbj10aW1lcyBuZXcgcm9tYW4sdGltZXM7VHJlYnVj
aGV0IE1TPXRyZWJ1Y2hldCBtcyxnZW5ldmE7VmVyZGFuYT12ZXJkYW5hLGdlbmV2YTtXZWJkaW5n
cz13ZWJkaW5ncztXaW5nZGluZ3M9d2luZ2RpbmdzLHphcGYgZGluZ2JhdHMiLGk9W10sbz1yKGUu
c2V0dGluZ3MuZm9udF9mb3JtYXRzfHxuKTtyZXR1cm4gcyhvLGZ1bmN0aW9uKGUpe2kucHVzaCh7
dGV4dDp7cmF3OmVbMF19LHZhbHVlOmVbMV0sdGV4dFN0eWxlOi0xPT1lWzFdLmluZGV4T2YoImRp
bmdzIik/ImZvbnQtZmFtaWx5OiIrZVsxXToiIn0pfSkse3R5cGU6Imxpc3Rib3giLHRleHQ6IkZv
bnQgRmFtaWx5Iix0b29sdGlwOiJGb250IEZhbWlseSIsdmFsdWVzOmksZml4ZWRXaWR0aDohMCxv
blBvc3RSZW5kZXI6dChpLCJmb250bmFtZSIpLG9uc2VsZWN0OmZ1bmN0aW9uKHQpe3QuY29udHJv
bC5zZXR0aW5ncy52YWx1ZSYmZS5leGVjQ29tbWFuZCgiRm9udE5hbWUiLCExLHQuY29udHJvbC5z
ZXR0aW5ncy52YWx1ZSl9fX0pLGUuYWRkQnV0dG9uKCJmb250c2l6ZXNlbGVjdCIsZnVuY3Rpb24o
KXt2YXIgbj1bXSxyPSI4cHQgMTBwdCAxMnB0IDE0cHQgMThwdCAyNHB0IDM2cHQiLGk9ZS5zZXR0
aW5ncy5mb250c2l6ZV9mb3JtYXRzfHxyO3JldHVybiBzKGkuc3BsaXQoIiAiKSxmdW5jdGlvbihl
KXtuLnB1c2goe3RleHQ6ZSx2YWx1ZTplfSl9KSx7dHlwZToibGlzdGJveCIsdGV4dDoiRm9udCBT
aXplcyIsdG9vbHRpcDoiRm9udCBTaXplcyIsdmFsdWVzOm4sZml4ZWRXaWR0aDohMCxvblBvc3RS
ZW5kZXI6dChuLCJmb250c2l6ZSIpLG9uY2xpY2s6ZnVuY3Rpb24odCl7dC5jb250cm9sLnNldHRp
bmdzLnZhbHVlJiZlLmV4ZWNDb21tYW5kKCJGb250U2l6ZSIsITEsdC5jb250cm9sLnNldHRpbmdz
LnZhbHVlKX19fSksZS5hZGRNZW51SXRlbSgiZm9ybWF0cyIse3RleHQ6IkZvcm1hdHMiLG1lbnU6
Zn0pfXZhciBzPXIuZWFjaDtpLm9uKCJBZGRFZGl0b3IiLGZ1bmN0aW9uKHQpe3QuZWRpdG9yLnJ0
bCYmKGUucnRsPSEwKSxhKHQuZWRpdG9yKX0pLGUudHJhbnNsYXRlPWZ1bmN0aW9uKGUpe3JldHVy
biBpLnRyYW5zbGF0ZShlKX0sdC50b29sdGlwcz0hby5pT1N9KSxyKEZ0LFtDdF0sZnVuY3Rpb24o
ZSl7cmV0dXJuIGUuZXh0ZW5kKHtyZWNhbGM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zZXR0aW5ncyxu
LHIsaSxvLGEscyxsLGMsdSxkLGYscCxoLG0sZyx2LHksYixDLHgsdyxfLE49W10sRT1bXSxTLGss
VCxSO2Zvcih0PWUuc2V0dGluZ3MsaT1lLml0ZW1zKCkuZmlsdGVyKCI6dmlzaWJsZSIpLG89ZS5s
YXlvdXRSZWN0KCkscj10LmNvbHVtbnN8fE1hdGguY2VpbChNYXRoLnNxcnQoaS5sZW5ndGgpKSxu
PU1hdGguY2VpbChpLmxlbmd0aC9yKSx5PXQuc3BhY2luZ0h8fHQuc3BhY2luZ3x8MCxiPXQuc3Bh
Y2luZ1Z8fHQuc3BhY2luZ3x8MCxDPXQuYWxpZ25IfHx0LmFsaWduLHg9dC5hbGlnblZ8fHQuYWxp
Z24sZz1lLl9wYWRkaW5nQm94LEMmJiJzdHJpbmciPT10eXBlb2YgQyYmKEM9W0NdKSx4JiYic3Ry
aW5nIj09dHlwZW9mIHgmJih4PVt4XSksZD0wO3I+ZDtkKyspTi5wdXNoKDApO2ZvcihmPTA7bj5m
O2YrKylFLnB1c2goMCk7Zm9yKGY9MDtuPmY7ZisrKWZvcihkPTA7cj5kJiYodT1pW2YqcitkXSx1
KTtkKyspYz11LmxheW91dFJlY3QoKSxTPWMubWluVyxrPWMubWluSCxOW2RdPVM+TltkXT9TOk5b
ZF0sRVtmXT1rPkVbZl0/azpFW2ZdO2ZvcihUPW8uaW5uZXJXLWcubGVmdC1nLnJpZ2h0LHc9MCxk
PTA7cj5kO2QrKyl3Kz1OW2RdKyhkPjA/eTowKSxULT0oZD4wP3k6MCkrTltkXTtmb3IoUj1vLmlu
bmVySC1nLnRvcC1nLmJvdHRvbSxfPTAsZj0wO24+ZjtmKyspXys9RVtmXSsoZj4wP2I6MCksUi09
KGY+MD9iOjApK0VbZl07aWYodys9Zy5sZWZ0K2cucmlnaHQsXys9Zy50b3ArZy5ib3R0b20sbD17
fSxsLm1pblc9dysoby53LW8uaW5uZXJXKSxsLm1pbkg9Xysoby5oLW8uaW5uZXJIKSxsLmNvbnRl
bnRXPWwubWluVy1vLmRlbHRhVyxsLmNvbnRlbnRIPWwubWluSC1vLmRlbHRhSCxsLm1pblc9TWF0
aC5taW4obC5taW5XLG8ubWF4VyksbC5taW5IPU1hdGgubWluKGwubWluSCxvLm1heEgpLGwubWlu
Vz1NYXRoLm1heChsLm1pblcsby5zdGFydE1pbldpZHRoKSxsLm1pbkg9TWF0aC5tYXgobC5taW5I
LG8uc3RhcnRNaW5IZWlnaHQpLCFvLmF1dG9SZXNpemV8fGwubWluVz09by5taW5XJiZsLm1pbkg9
PW8ubWluSCl7by5hdXRvUmVzaXplJiYobD1lLmxheW91dFJlY3QobCksbC5jb250ZW50Vz1sLm1p
blctby5kZWx0YVcsbC5jb250ZW50SD1sLm1pbkgtby5kZWx0YUgpO3ZhciBBO0E9InN0YXJ0Ij09
dC5wYWNrVj8wOlI+MD9NYXRoLmZsb29yKFIvbik6MDt2YXIgQj0wLEQ9dC5mbGV4V2lkdGhzO2lm
KEQpZm9yKGQ9MDtkPEQubGVuZ3RoO2QrKylCKz1EW2RdO2Vsc2UgQj1yO3ZhciBMPVQvQjtmb3Io
ZD0wO3I+ZDtkKyspTltkXSs9RD9EW2RdKkw6TDtmb3IoaD1nLnRvcCxmPTA7bj5mO2YrKyl7Zm9y
KHA9Zy5sZWZ0LHM9RVtmXStBLGQ9MDtyPmQmJih1PWlbZipyK2RdLHUpO2QrKyltPXUuc2V0dGlu
Z3MsYz11LmxheW91dFJlY3QoKSxhPU1hdGgubWF4KE5bZF0sYy5zdGFydE1pbldpZHRoKSxjLng9
cCxjLnk9aCx2PW0uYWxpZ25IfHwoQz9DW2RdfHxDWzBdOm51bGwpLCJjZW50ZXIiPT12P2MueD1w
K2EvMi1jLncvMjoicmlnaHQiPT12P2MueD1wK2EtYy53OiJzdHJldGNoIj09diYmKGMudz1hKSx2
PW0uYWxpZ25WfHwoeD94W2RdfHx4WzBdOm51bGwpLCJjZW50ZXIiPT12P2MueT1oK3MvMi1jLmgv
MjoiYm90dG9tIj09dj9jLnk9aCtzLWMuaDoic3RyZXRjaCI9PXYmJihjLmg9cyksdS5sYXlvdXRS
ZWN0KGMpLHArPWEreSx1LnJlY2FsYyYmdS5yZWNhbGMoKTtoKz1zK2J9fWVsc2UgaWYobC53PWwu
bWluVyxsLmg9bC5taW5ILGUubGF5b3V0UmVjdChsKSx0aGlzLnJlY2FsYyhlKSxudWxsPT09ZS5f
bGFzdFJlY3Qpe3ZhciBNPWUucGFyZW50KCk7TSYmKE0uX2xhc3RSZWN0PW51bGwsTS5yZWNhbGMo
KSl9fX0pfSkscih6dCxbd3RdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7cmVuZGVySHRt
bDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGUuYWRkQ2xhc3MoImlmcmFtZSIpLGUuY2Fu
Rm9jdXM9ITEsJzxpZnJhbWUgaWQ9IicrZS5faWQrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIg
dGFiaW5kZXg9Ii0xIiBzcmM9IicrKGUuc2V0dGluZ3MudXJsfHwiamF2YXNjcmlwdDonJyIpKyci
IGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4nfSxzcmM6ZnVuY3Rpb24oZSl7dGhpcy5nZXRFbCgp
LnNyYz1lfSxodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPXRoaXMuZ2V0RWwoKS5jb250
ZW50V2luZG93LmRvY3VtZW50LmJvZHk7cmV0dXJuIHI/KHIuaW5uZXJIVE1MPWUsdCYmdCgpKTpz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5odG1sKGUpfSwwKSx0aGlzfX0pfSkscihXdCxbd3QscV0s
ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhp
czt0Ll9zdXBlcihlKSx0LmFkZENsYXNzKCJ3aWRnZXQiKSx0LmFkZENsYXNzKCJsYWJlbCIpLHQu
Y2FuRm9jdXM9ITEsZS5tdWx0aWxpbmUmJnQuYWRkQ2xhc3MoImF1dG9zY3JvbGwiKSxlLnN0cm9u
ZyYmdC5hZGRDbGFzcygic3Ryb25nIil9LGluaXRMYXlvdXRSZWN0OmZ1bmN0aW9uKCl7dmFyIGU9
dGhpcyxuPWUuX3N1cGVyKCk7aWYoZS5zZXR0aW5ncy5tdWx0aWxpbmUpe3ZhciByPXQuZ2V0U2l6
ZShlLmdldEVsKCkpO3Iud2lkdGg+bi5tYXhXJiYobi5taW5XPW4ubWF4VyxlLmFkZENsYXNzKCJt
dWx0aWxpbmUiKSksZS5nZXRFbCgpLnN0eWxlLndpZHRoPW4ubWluVysicHgiLG4uc3RhcnRNaW5I
PW4uaD1uLm1pbkg9TWF0aC5taW4obi5tYXhILHQuZ2V0U2l6ZShlLmdldEVsKCkpLmhlaWdodCl9
cmV0dXJuIG59LHJlcGFpbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBlLnNldHRpbmdz
Lm11bHRpbGluZXx8KGUuZ2V0RWwoKS5zdHlsZS5saW5lSGVpZ2h0PWUubGF5b3V0UmVjdCgpLmgr
InB4IiksZS5fc3VwZXIoKX0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0Ll9y
ZW5kZXJlZCYmZSYmdGhpcy5pbm5lckh0bWwodC5lbmNvZGUoZSkpLHQuX3N1cGVyKGUpfSxyZW5k
ZXJIdG1sOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuc2V0dGluZ3MuZm9ySWQ7cmV0dXJuJzxs
YWJlbCBpZD0iJytlLl9pZCsnIiBjbGFzcz0iJytlLmNsYXNzZXMoKSsnIicrKHQ/JyBmb3I9Iicr
dCsnIic6IiIpKyI+IitlLmVuY29kZShlLl90ZXh0KSsiPC9sYWJlbD4ifX0pfSkscihWdCxbR10s
ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7cm9sZToidG9vbGJhciIsbGF5
b3V0OiJmbG93In0saW5pdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3QuX3N1cGVyKGUpLHQuYWRk
Q2xhc3MoInRvb2xiYXIiKX0scG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJu
IGUuaXRlbXMoKS5hZGRDbGFzcygidG9vbGJhci1pdGVtIiksZS5fc3VwZXIoKX19KX0pLHIoVXQs
W1Z0XSxmdW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe0RlZmF1bHRzOntyb2xlOiJtZW51YmFy
Iixjb250YWluZXJDbHM6Im1lbnViYXIiLGFyaWFSb290OiEwLGRlZmF1bHRzOnt0eXBlOiJtZW51
YnV0dG9uIn19fSl9KSxyKHF0LFtfdCxqLFV0XSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihl
LHQpe2Zvcig7ZTspe2lmKHQ9PT1lKXJldHVybiEwO2U9ZS5wYXJlbnROb2RlfXJldHVybiExfXZh
ciBpPWUuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dC5fcmVuZGVyT3Blbj0h
MCx0Ll9zdXBlcihlKSx0LmFkZENsYXNzKCJtZW51YnRuIiksZS5maXhlZFdpZHRoJiZ0LmFkZENs
YXNzKCJmaXhlZC13aWR0aCIpLHQuYXJpYSgiaGFzcG9wdXAiLCEwKSx0Lmhhc1BvcHVwPSEwfSxz
aG93TWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1lLnNldHRpbmdzLHI7cmV0dXJuIGUubWVu
dSYmZS5tZW51LnZpc2libGUoKT9lLmhpZGVNZW51KCk6KGUubWVudXx8KHI9bi5tZW51fHxbXSxy
Lmxlbmd0aD9yPXt0eXBlOiJtZW51IixpdGVtczpyfTpyLnR5cGU9ci50eXBlfHwibWVudSIsZS5t
ZW51PXQuY3JlYXRlKHIpLnBhcmVudChlKS5yZW5kZXJUbygpLGUuZmlyZSgiY3JlYXRlbWVudSIp
LGUubWVudS5yZWZsb3coKSxlLm1lbnUub24oImNhbmNlbCIsZnVuY3Rpb24odCl7dC5jb250cm9s
LnBhcmVudCgpPT09ZS5tZW51JiYodC5zdG9wUHJvcGFnYXRpb24oKSxlLmZvY3VzKCksZS5oaWRl
TWVudSgpKX0pLGUubWVudS5vbigic2VsZWN0IixmdW5jdGlvbigpe2UuZm9jdXMoKX0pLGUubWVu
dS5vbigic2hvdyBoaWRlIixmdW5jdGlvbih0KXt0LmNvbnRyb2w9PWUubWVudSYmZS5hY3RpdmVN
ZW51KCJzaG93Ij09dC50eXBlKSxlLmFyaWEoImV4cGFuZGVkIiwic2hvdyI9PXQudHlwZSl9KS5m
aXJlKCJzaG93IikpLGUubWVudS5zaG93KCksZS5tZW51LmxheW91dFJlY3Qoe3c6ZS5sYXlvdXRS
ZWN0KCkud30pLHZvaWQgZS5tZW51Lm1vdmVSZWwoZS5nZXRFbCgpLGUuaXNSdGwoKT9bImJyLXRy
IiwidHItYnIiXTpbImJsLXRsIiwidGwtYmwiXSkpfSxoaWRlTWVudTpmdW5jdGlvbigpe3ZhciBl
PXRoaXM7ZS5tZW51JiYoZS5tZW51Lml0ZW1zKCkuZWFjaChmdW5jdGlvbihlKXtlLmhpZGVNZW51
JiZlLmhpZGVNZW51KCl9KSxlLm1lbnUuaGlkZSgpKX0sYWN0aXZlTWVudTpmdW5jdGlvbihlKXt0
aGlzLnRvZ2dsZUNsYXNzKCJhY3RpdmUiLGUpfSxyZW5kZXJIdG1sOmZ1bmN0aW9uKCl7dmFyIGU9
dGhpcyx0PWUuX2lkLHI9ZS5jbGFzc1ByZWZpeCxpPWUuc2V0dGluZ3MuaWNvbj9yKyJpY28gIity
KyJpLSIrZS5zZXR0aW5ncy5pY29uOiIiO3JldHVybiBlLmFyaWEoInJvbGUiLGUucGFyZW50KClp
bnN0YW5jZW9mIG4/Im1lbnVpdGVtIjoiYnV0dG9uIiksJzxkaXYgaWQ9IicrdCsnIiBjbGFzcz0i
JytlLmNsYXNzZXMoKSsnIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWxsZWRieT0iJyt0KyciPjxi
dXR0b24gaWQ9IicrdCsnLW9wZW4iIHJvbGU9InByZXNlbnRhdGlvbiIgdHlwZT0iYnV0dG9uIiB0
YWJpbmRleD0iLTEiPicrKGk/JzxpIGNsYXNzPSInK2krJyI+PC9pPic6IiIpKyI8c3Bhbj4iKyhl
Ll90ZXh0PyhpPyJceGEwIjoiIikrZS5lbmNvZGUoZS5fdGV4dCk6IiIpKyc8L3NwYW4+IDxpIGNs
YXNzPSInK3IrJ2NhcmV0Ij48L2k+PC9idXR0b24+PC9kaXY+J30scG9zdFJlbmRlcjpmdW5jdGlv
bigpe3ZhciBlPXRoaXM7cmV0dXJuIGUub24oImNsaWNrIixmdW5jdGlvbih0KXt0LmNvbnRyb2w9
PT1lJiZyKHQudGFyZ2V0LGUuZ2V0RWwoKSkmJihlLnNob3dNZW51KCksdC5hcmlhJiZlLm1lbnUu
aXRlbXMoKVswXS5mb2N1cygpKX0pLGUub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKHQpe3ZhciBu
PXQuY29udHJvbCxyPWUucGFyZW50KCksbztuJiZyJiZuIGluc3RhbmNlb2YgaSYmbi5wYXJlbnQo
KT09ciYmKHIuaXRlbXMoKS5maWx0ZXIoIk1lbnVCdXR0b24iKS5lYWNoKGZ1bmN0aW9uKGUpe2Uu
aGlkZU1lbnUmJmUhPW4mJihlLm1lbnUmJmUubWVudS52aXNpYmxlKCkmJihvPSEwKSxlLmhpZGVN
ZW51KCkpfSksbyYmKG4uZm9jdXMoKSxuLnNob3dNZW51KCkpKX0pLGUuX3N1cGVyKCl9LHRleHQ6
ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuLHI7aWYodC5fcmVuZGVyZWQpZm9yKHI9dC5nZXRFbCgi
b3BlbiIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIiksbj0wO248ci5sZW5ndGg7bisrKXJb
bl0uaW5uZXJIVE1MPSh0LnNldHRpbmdzLmljb24mJmU/Ilx4YTAiOiIiKSt0LmVuY29kZShlKTty
ZXR1cm4gdGhpcy5fc3VwZXIoZSl9LHJlbW92ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyKCksdGhp
cy5tZW51JiZ0aGlzLm1lbnUucmVtb3ZlKCl9fSk7cmV0dXJuIGl9KSxyKCR0LFtxdF0sZnVuY3Rp
b24oZSl7cmV0dXJuIGUuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbixyLGks
byxhO2lmKHQuX3ZhbHVlcz1uPWUudmFsdWVzLG4pe2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspaWYo
aT1uW3JdLnNlbGVjdGVkfHxlLnZhbHVlPT09bltyXS52YWx1ZSl7bz1vfHxuW3JdLnRleHQsdC5f
dmFsdWU9bltyXS52YWx1ZTticmVha30haSYmbi5sZW5ndGg+MCYmKG89blswXS50ZXh0LHQuX3Zh
bHVlPW5bMF0udmFsdWUpLGUubWVudT1ufWUudGV4dD1lLnRleHR8fG98fG5bMF0udGV4dCx0Ll9z
dXBlcihlKSx0LmFkZENsYXNzKCJsaXN0Ym94IiksdC5vbigic2VsZWN0IixmdW5jdGlvbihuKXt2
YXIgcj1uLmNvbnRyb2w7YSYmKG4ubGFzdENvbnRyb2w9YSksZS5tdWx0aXBsZT9yLmFjdGl2ZSgh
ci5hY3RpdmUoKSk6dC52YWx1ZShuLmNvbnRyb2wuc2V0dGluZ3MudmFsdWUpLGE9cn0pfSx2YWx1
ZTpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsbil7ZS5pdGVtcygpLmVhY2goZnVuY3Rpb24oZSl7
cj1lLnZhbHVlKCk9PT1uLHImJihpPWl8fGUudGV4dCgpKSxlLmFjdGl2ZShyKSxlLm1lbnUmJnQo
ZS5tZW51LG4pfSl9dmFyIG49dGhpcyxyLGksbyxhO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZSl7
aWYobi5tZW51KXQobi5tZW51LGUpO2Vsc2UgZm9yKG89bi5zZXR0aW5ncy5tZW51LGE9MDthPG8u
bGVuZ3RoO2ErKylyPW9bYV0udmFsdWU9PWUsciYmKGk9aXx8b1thXS50ZXh0KSxvW2FdLmFjdGl2
ZT1yO24udGV4dChpfHx0aGlzLnNldHRpbmdzLnRleHQpfXJldHVybiBuLl9zdXBlcihlKX19KX0p
LHIoanQsW3d0LGosZ10sZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLmV4dGVuZCh7RGVmYXVsdHM6
e2JvcmRlcjowLHJvbGU6Im1lbnVpdGVtIn0saW5pdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3Qu
aGFzUG9wdXA9ITAsdC5fc3VwZXIoZSksZT10LnNldHRpbmdzLHQuYWRkQ2xhc3MoIm1lbnUtaXRl
bSIpLGUubWVudSYmdC5hZGRDbGFzcygibWVudS1pdGVtLWV4cGFuZCIpLGUucHJldmlldyYmdC5h
ZGRDbGFzcygibWVudS1pdGVtLXByZXZpZXciKSwoIi0iPT09dC5fdGV4dHx8InwiPT09dC5fdGV4
dCkmJih0LmFkZENsYXNzKCJtZW51LWl0ZW0tc2VwIiksdC5hcmlhKCJyb2xlIiwic2VwYXJhdG9y
IiksdC5fdGV4dD0iLSIpLGUuc2VsZWN0YWJsZSYmKHQuYXJpYSgicm9sZSIsIm1lbnVpdGVtY2hl
Y2tib3giKSx0LmFkZENsYXNzKCJtZW51LWl0ZW0tY2hlY2tib3giKSxlLmljb249InNlbGVjdGVk
IiksZS5wcmV2aWV3fHxlLnNlbGVjdGFibGV8fHQuYWRkQ2xhc3MoIm1lbnUtaXRlbS1ub3JtYWwi
KSx0Lm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKX0pLGUubWVu
dSYmIWUuYXJpYUhpZGVNZW51JiZ0LmFyaWEoImhhc3BvcHVwIiwhMCl9LGhhc01lbnVzOmZ1bmN0
aW9uKCl7cmV0dXJuISF0aGlzLnNldHRpbmdzLm1lbnV9LHNob3dNZW51OmZ1bmN0aW9uKCl7dmFy
IGU9dGhpcyxuPWUuc2V0dGluZ3MscixpPWUucGFyZW50KCk7aWYoaS5pdGVtcygpLmVhY2goZnVu
Y3Rpb24odCl7dCE9PWUmJnQuaGlkZU1lbnUoKX0pLG4ubWVudSl7cj1lLm1lbnUscj9yLnNob3co
KToocj1uLm1lbnUsci5sZW5ndGg/cj17dHlwZToibWVudSIsaXRlbXM6cn06ci50eXBlPXIudHlw
ZXx8Im1lbnUiLGkuc2V0dGluZ3MuaXRlbURlZmF1bHRzJiYoci5pdGVtRGVmYXVsdHM9aS5zZXR0
aW5ncy5pdGVtRGVmYXVsdHMpLHI9ZS5tZW51PXQuY3JlYXRlKHIpLnBhcmVudChlKS5yZW5kZXJU
bygpLHIucmVmbG93KCksci5maXJlKCJzaG93Iiksci5vbigiY2FuY2VsIixmdW5jdGlvbih0KXt0
LnN0b3BQcm9wYWdhdGlvbigpLGUuZm9jdXMoKSxyLmhpZGUoKX0pLHIub24oImhpZGUiLGZ1bmN0
aW9uKHQpe3QuY29udHJvbD09PXImJmUucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIil9KSxyLnN1Ym1l
bnU9ITApLHIuX3BhcmVudE1lbnU9aSxyLmFkZENsYXNzKCJtZW51LXN1YiIpO3ZhciBvPXIudGVz
dE1vdmVSZWwoZS5nZXRFbCgpLGUuaXNSdGwoKT9bInRsLXRyIiwiYmwtYnIiLCJ0ci10bCIsImJy
LWJsIl06WyJ0ci10bCIsImJyLWJsIiwidGwtdHIiLCJibC1iciJdKTtyLm1vdmVSZWwoZS5nZXRF
bCgpLG8pLHIucmVsPW8sbz0ibWVudS1zdWItIitvLHIucmVtb3ZlQ2xhc3Moci5fbGFzdFJlbCks
ci5hZGRDbGFzcyhvKSxyLl9sYXN0UmVsPW8sZS5hZGRDbGFzcygic2VsZWN0ZWQiKSxlLmFyaWEo
ImV4cGFuZGVkIiwhMCl9fSxoaWRlTWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGUu
bWVudSYmKGUubWVudS5pdGVtcygpLmVhY2goZnVuY3Rpb24oZSl7ZS5oaWRlTWVudSYmZS5oaWRl
TWVudSgpfSksZS5tZW51LmhpZGUoKSxlLmFyaWEoImV4cGFuZGVkIiwhMSkpLGV9LHJlbmRlckh0
bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5faWQscj1lLnNldHRpbmdzLGk9ZS5jbGFzc1By
ZWZpeCxvPWUuZW5jb2RlKGUuX3RleHQpLGE9ZS5zZXR0aW5ncy5pY29uLHM9IiIsbD1yLnNob3J0
Y3V0O3JldHVybiBhJiZlLnBhcmVudCgpLmFkZENsYXNzKCJtZW51LWhhcy1pY29ucyIpLHIuaW1h
Z2UmJihhPSJub25lIixzPSIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrci5pbWFn
ZSsiJylcIiIpLGwmJm4ubWFjJiYobD1sLnJlcGxhY2UoL2N0cmxcK2FsdFwrL2ksIiYjeDIzMjU7
JiN4MjMxODsiKSxsPWwucmVwbGFjZSgvY3RybFwrL2ksIiYjeDIzMTg7IiksbD1sLnJlcGxhY2Uo
L2FsdFwrL2ksIiYjeDIzMjU7IiksbD1sLnJlcGxhY2UoL3NoaWZ0XCsvaSwiJiN4MjFFNzsiKSks
YT1pKyJpY28gIitpKyJpLSIrKGUuc2V0dGluZ3MuaWNvbnx8Im5vbmUiKSwnPGRpdiBpZD0iJyt0
KyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciIHRhYmluZGV4PSItMSI+JysoIi0iIT09bz8nPGkg
Y2xhc3M9IicrYSsnIicrcysiPjwvaT5ceGEwIjoiIikrKCItIiE9PW8/JzxzcGFuIGlkPSInK3Qr
Jy10ZXh0IiBjbGFzcz0iJytpKyd0ZXh0Ij4nK28rIjwvc3Bhbj4iOiIiKSsobD8nPGRpdiBpZD0i
Jyt0Kyctc2hvcnRjdXQiIGNsYXNzPSInK2krJ21lbnUtc2hvcnRjdXQiPicrbCsiPC9kaXY+Ijoi
IikrKHIubWVudT8nPGRpdiBjbGFzcz0iJytpKydjYXJldCI+PC9kaXY+JzoiIikrIjwvZGl2PiJ9
LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5zZXR0aW5ncyxuPXQudGV4dFN0
eWxlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuJiYobj1uLmNhbGwodGhpcykpLG4pe3ZhciByPWUu
Z2V0RWwoInRleHQiKTtyJiZyLnNldEF0dHJpYnV0ZSgic3R5bGUiLG4pfXJldHVybiBlLm9uKCJt
b3VzZWVudGVyIGNsaWNrIixmdW5jdGlvbihuKXtuLmNvbnRyb2w9PT1lJiYodC5tZW51fHwiY2xp
Y2siIT09bi50eXBlPyhlLnNob3dNZW51KCksbi5hcmlhJiZlLm1lbnUuZm9jdXMoITApKTooZS5m
aXJlKCJzZWxlY3QiKSxlLnBhcmVudCgpLmhpZGVBbGwoKSkpfSksZS5fc3VwZXIoKSxlfSxhY3Rp
dmU6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZ0aGlzLmFyaWEoImNo
ZWNrZWQiLGUpLHRoaXMuX3N1cGVyKGUpfSxyZW1vdmU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlcigp
LHRoaXMubWVudSYmdGhpcy5tZW51LnJlbW92ZSgpfX0pfSkscihLdCxbZXQsanQscF0sZnVuY3Rp
b24oZSx0LG4pe3ZhciByPWUuZXh0ZW5kKHtEZWZhdWx0czp7ZGVmYXVsdFR5cGU6Im1lbnVpdGVt
Iixib3JkZXI6MSxsYXlvdXQ6InN0YWNrIixyb2xlOiJhcHBsaWNhdGlvbiIsYm9keVJvbGU6Im1l
bnUiLGFyaWFSb290OiEwfSxpbml0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYoZS5hdXRvaGlk
ZT0hMCxlLmNvbnN0cmFpblRvVmlld3BvcnQ9ITAsZS5pdGVtRGVmYXVsdHMpZm9yKHZhciByPWUu
aXRlbXMsaT1yLmxlbmd0aDtpLS07KXJbaV09bi5leHRlbmQoe30sZS5pdGVtRGVmYXVsdHMscltp
XSk7dC5fc3VwZXIoZSksdC5hZGRDbGFzcygibWVudSIpfSxyZXBhaW50OmZ1bmN0aW9uKCl7cmV0
dXJuIHRoaXMudG9nZ2xlQ2xhc3MoIm1lbnUtYWxpZ24iLCEwKSx0aGlzLl9zdXBlcigpLHRoaXMu
Z2V0RWwoKS5zdHlsZS5oZWlnaHQ9IiIsdGhpcy5nZXRFbCgiYm9keSIpLnN0eWxlLmhlaWdodD0i
Iix0aGlzfSxjYW5jZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaGlkZUFsbCgpLGUuZmlyZSgi
c2VsZWN0Iil9LGhpZGVBbGw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmZpbmQo
Im1lbnVpdGVtIikuZXhlYygiaGlkZU1lbnUiKSxlLl9zdXBlcigpfSxwcmVSZW5kZXI6ZnVuY3Rp
b24oKXt2YXIgZT10aGlzO3JldHVybiBlLml0ZW1zKCkuZWFjaChmdW5jdGlvbih0KXt2YXIgbj10
LnNldHRpbmdzO3JldHVybiBuLmljb258fG4uc2VsZWN0YWJsZT8oZS5faGFzSWNvbnM9ITAsITEp
OnZvaWQgMH0pLGUuX3N1cGVyKCl9fSk7cmV0dXJuIHJ9KSxyKEd0LFtFdF0sZnVuY3Rpb24oZSl7
cmV0dXJuIGUuZXh0ZW5kKHtEZWZhdWx0czp7Y2xhc3NlczoicmFkaW8iLHJvbGU6InJhZGlvIn19
KX0pLHIoWXQsW3d0LFldLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZXh0ZW5kKHtyZW5kZXJIdG1s
OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWUuY2xhc3NQcmVmaXg7cmV0dXJuIGUuYWRkQ2xhc3Mo
InJlc2l6ZWhhbmRsZSIpLCJib3RoIj09ZS5zZXR0aW5ncy5kaXJlY3Rpb24mJmUuYWRkQ2xhc3Mo
InJlc2l6ZWhhbmRsZS1ib3RoIiksZS5jYW5Gb2N1cz0hMSwnPGRpdiBpZD0iJytlLl9pZCsnIiBj
bGFzcz0iJytlLmNsYXNzZXMoKSsnIj48aSBjbGFzcz0iJyt0KyJpY28gIit0KydpLXJlc2l6ZSI+
PC9pPjwvZGl2Pid9LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuX3N1cGVyKCks
ZS5yZXNpemVEcmFnSGVscGVyPW5ldyB0KHRoaXMuX2lkLHtzdGFydDpmdW5jdGlvbigpe2UuZmly
ZSgiUmVzaXplU3RhcnQiKX0sZHJhZzpmdW5jdGlvbih0KXsiYm90aCIhPWUuc2V0dGluZ3MuZGly
ZWN0aW9uJiYodC5kZWx0YVg9MCksZS5maXJlKCJSZXNpemUiLHQpfSxzdG9wOmZ1bmN0aW9uKCl7
ZS5maXJlKCJSZXNpemVFbmQiKX19KX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVz
aXplRHJhZ0hlbHBlciYmdGhpcy5yZXNpemVEcmFnSGVscGVyLmRlc3Ryb3koKSx0aGlzLl9zdXBl
cigpfX0pfSkscihYdCxbd3RdLGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4dGVuZCh7cmVuZGVySHRt
bDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGUuYWRkQ2xhc3MoInNwYWNlciIpLGUuY2Fu
Rm9jdXM9ITEsJzxkaXYgaWQ9IicrZS5faWQrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyI+PC9k
aXY+J319KX0pLHIoSnQsW3F0LHFdLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZXh0ZW5kKHtEZWZh
dWx0czp7Y2xhc3Nlczoid2lkZ2V0IGJ0biBzcGxpdGJ0biIscm9sZToiYnV0dG9uIn0scmVwYWlu
dDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1lLmdldEVsKCkscj1lLmxheW91dFJlY3QoKSxpLG87
cmV0dXJuIGUuX3N1cGVyKCksaT1uLmZpcnN0Q2hpbGQsbz1uLmxhc3RDaGlsZCx0LmNzcyhpLHt3
aWR0aDpyLnctdC5nZXRTaXplKG8pLndpZHRoLGhlaWdodDpyLmgtMn0pLHQuY3NzKG8se2hlaWdo
dDpyLmgtMn0pLGV9LGFjdGl2ZU1lbnU6ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnRvZ2dsZUNs
YXNzKG4uZ2V0RWwoKS5sYXN0Q2hpbGQsbi5jbGFzc1ByZWZpeCsiYWN0aXZlIixlKX0scmVuZGVy
SHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLl9pZCxuPWUuY2xhc3NQcmVmaXgscj1lLnNl
dHRpbmdzLmljb24/bisiaWNvICIrbisiaS0iK2Uuc2V0dGluZ3MuaWNvbjoiIjtyZXR1cm4nPGRp
diBpZD0iJyt0KyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5k
ZXg9Ii0xIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaGlkZWZvY3VzPSIxIiB0YWJpbmRleD0iLTEi
PicrKHI/JzxpIGNsYXNzPSInK3IrJyI+PC9pPic6IiIpKyhlLl90ZXh0PyhyPyIgIjoiIikrZS5f
dGV4dDoiIikrJzwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iJytuKydvcGVu
IiBoaWRlZm9jdXM9IjEiIHRhYmluZGV4PSItMSI+JysoZS5fbWVudUJ0blRleHQ/KHI/Ilx4YTAi
OiIiKStlLl9tZW51QnRuVGV4dDoiIikrJyA8aSBjbGFzcz0iJytuKydjYXJldCI+PC9pPjwvYnV0
dG9uPjwvZGl2Pid9LHBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5zZXR0aW5n
cy5vbmNsaWNrO3JldHVybiBlLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIG49ZS50YXJnZXQ7
aWYoZS5jb250cm9sPT10aGlzKWZvcig7bjspe2lmKGUuYXJpYSYmImRvd24iIT1lLmFyaWEua2V5
fHwiQlVUVE9OIj09bi5ub2RlTmFtZSYmLTE9PW4uY2xhc3NOYW1lLmluZGV4T2YoIm9wZW4iKSly
ZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx2b2lkIHQuY2FsbCh0aGlzLGUpO249
bi5wYXJlbnROb2RlfX0pLGRlbGV0ZSBlLnNldHRpbmdzLm9uY2xpY2ssZS5fc3VwZXIoKX19KX0p
LHIoUXQsW090XSxmdW5jdGlvbihlKXtyZXR1cm4gZS5leHRlbmQoe0RlZmF1bHRzOntjb250YWlu
ZXJDbGFzczoic3RhY2stbGF5b3V0Iixjb250cm9sQ2xhc3M6InN0YWNrLWxheW91dC1pdGVtIixl
bmRDbGFzczoiYnJlYWsifX0pfSkscihadCxbSixxXSxmdW5jdGlvbihlLHQpe3JldHVybiBlLmV4
dGVuZCh7bGFzdElkeDowLERlZmF1bHRzOntsYXlvdXQ6ImFic29sdXRlIixkZWZhdWx0czp7dHlw
ZToicGFuZWwifX0sYWN0aXZhdGVUYWI6ZnVuY3Rpb24oZSl7dmFyIG47dGhpcy5hY3RpdmVUYWJJ
ZCYmKG49dGhpcy5nZXRFbCh0aGlzLmFjdGl2ZVRhYklkKSx0LnJlbW92ZUNsYXNzKG4sdGhpcy5j
bGFzc1ByZWZpeCsiYWN0aXZlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCJmYWxz
ZSIpKSx0aGlzLmFjdGl2ZVRhYklkPSJ0IitlLG49dGhpcy5nZXRFbCgidCIrZSksbi5zZXRBdHRy
aWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCJ0cnVlIiksdC5hZGRDbGFzcyhuLHRoaXMuY2xhc3NQcmVm
aXgrImFjdGl2ZSIpLGUhPXRoaXMubGFzdElkeCYmKHRoaXMuaXRlbXMoKVt0aGlzLmxhc3RJZHhd
LmhpZGUoKSx0aGlzLmxhc3RJZHg9ZSksdGhpcy5pdGVtcygpW2VdLnNob3coKS5maXJlKCJzaG93
dGFiIiksdGhpcy5yZWZsb3coKX0scmVuZGVySHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1l
Ll9sYXlvdXQsbj0iIixyPWUuY2xhc3NQcmVmaXg7cmV0dXJuIGUucHJlUmVuZGVyKCksdC5wcmVS
ZW5kZXIoZSksZS5pdGVtcygpLmVhY2goZnVuY3Rpb24odCxpKXt2YXIgbz1lLl9pZCsiLXQiK2k7
dC5hcmlhKCJyb2xlIiwidGFicGFuZWwiKSx0LmFyaWEoImxhYmVsbGVkYnkiLG8pLG4rPSc8ZGl2
IGlkPSInK28rJyIgY2xhc3M9IicrcisndGFiIiB1bnNlbGVjdGFibGU9Im9uIiByb2xlPSJ0YWIi
IGFyaWEtY29udHJvbHM9IicrdC5faWQrJyIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIHRhYkluZGV4
PSItMSI+JytlLmVuY29kZSh0LnNldHRpbmdzLnRpdGxlKSsiPC9kaXY+In0pLCc8ZGl2IGlkPSIn
K2UuX2lkKyciIGNsYXNzPSInK2UuY2xhc3NlcygpKyciIGhpZGVmb2N1cz0iMSIgdGFiaW5kZXg9
Ii0xIj48ZGl2IGlkPSInK2UuX2lkKyctaGVhZCIgY2xhc3M9IicrcisndGFicyIgcm9sZT0idGFi
bGlzdCI+JytuKyc8L2Rpdj48ZGl2IGlkPSInK2UuX2lkKyctYm9keSIgY2xhc3M9IicrZS5jbGFz
c2VzKCJib2R5IikrJyI+Jyt0LnJlbmRlckh0bWwoZSkrIjwvZGl2PjwvZGl2PiJ9LHBvc3RSZW5k
ZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuX3N1cGVyKCksZS5zZXR0aW5ncy5hY3RpdmVUYWI9
ZS5zZXR0aW5ncy5hY3RpdmVUYWJ8fDAsZS5hY3RpdmF0ZVRhYihlLnNldHRpbmdzLmFjdGl2ZVRh
YiksdGhpcy5vbigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0LnBhcmVudE5vZGU7
aWYodC50YXJnZXQucGFyZW50Tm9kZS5pZD09ZS5faWQrIi1oZWFkIilmb3IodmFyIHI9bi5jaGls
ZE5vZGVzLmxlbmd0aDtyLS07KW4uY2hpbGROb2Rlc1tyXT09dC50YXJnZXQmJmUuYWN0aXZhdGVU
YWIocil9KX0saW5pdExheW91dFJlY3Q6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG4scixpO3I9dC5n
ZXRTaXplKGUuZ2V0RWwoImhlYWQiKSkud2lkdGgscj0wPnI/MDpyLGk9MCxlLml0ZW1zKCkuZWFj
aChmdW5jdGlvbih0LG4pe3I9TWF0aC5tYXgocix0LmxheW91dFJlY3QoKS5taW5XKSxpPU1hdGgu
bWF4KGksdC5sYXlvdXRSZWN0KCkubWluSCksZS5zZXR0aW5ncy5hY3RpdmVUYWIhPW4mJnQuaGlk
ZSgpfSksZS5pdGVtcygpLmVhY2goZnVuY3Rpb24oZSl7ZS5zZXR0aW5ncy54PTAsZS5zZXR0aW5n
cy55PTAsZS5zZXR0aW5ncy53PXIsZS5zZXR0aW5ncy5oPWksZS5sYXlvdXRSZWN0KHt4OjAseTow
LHc6cixoOml9KX0pO3ZhciBvPXQuZ2V0U2l6ZShlLmdldEVsKCJoZWFkIikpLmhlaWdodDtyZXR1
cm4gZS5zZXR0aW5ncy5taW5XaWR0aD1yLGUuc2V0dGluZ3MubWluSGVpZ2h0PWkrbyxuPWUuX3N1
cGVyKCksbi5kZWx0YUgrPW8sbi5pbm5lckg9bi5oLW4uZGVsdGFILG59fSl9KSxyKGVuLFt3dCxx
XSxmdW5jdGlvbihlLHQpe3JldHVybiBlLmV4dGVuZCh7aW5pdDpmdW5jdGlvbihlKXt2YXIgdD10
aGlzO3QuX3N1cGVyKGUpLHQuX3ZhbHVlPWUudmFsdWV8fCIiLHQuYWRkQ2xhc3MoInRleHRib3gi
KSxlLm11bHRpbGluZT90LmFkZENsYXNzKCJtdWx0aWxpbmUiKTp0Lm9uKCJrZXlkb3duIixmdW5j
dGlvbihlKXsxMz09ZS5rZXlDb2RlJiZ0LnBhcmVudHMoKS5yZXZlcnNlKCkuZWFjaChmdW5jdGlv
bih0KXtyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLHQuaGFzRXZlbnRMaXN0ZW5lcnMoInN1Ym1p
dCIpJiZ0LnRvSlNPTj8odC5maXJlKCJzdWJtaXQiLHtkYXRhOnQudG9KU09OKCl9KSwhMSk6dm9p
ZCAwfSl9KX0sZGlzYWJsZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gdC5fcmVuZGVy
ZWQmJiJ1bmRlZmluZWQiIT10eXBlb2YgZSYmKHQuZ2V0RWwoKS5kaXNhYmxlZD1lKSx0Ll9zdXBl
cihlKX0sdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4idW5kZWZpbmVkIiE9dHlw
ZW9mIGU/KHQuX3ZhbHVlPWUsdC5fcmVuZGVyZWQmJih0LmdldEVsKCkudmFsdWU9ZSksdCk6dC5f
cmVuZGVyZWQ/dC5nZXRFbCgpLnZhbHVlOnQuX3ZhbHVlfSxyZXBhaW50OmZ1bmN0aW9uKCl7dmFy
IGU9dGhpcyx0LG4scixpPTAsbz0wLGE7dD1lLmdldEVsKCkuc3R5bGUsbj1lLl9sYXlvdXRSZWN0
LGE9ZS5fbGFzdFJlcGFpbnRSZWN0fHx7fTt2YXIgcz1kb2N1bWVudDtyZXR1cm4hZS5zZXR0aW5n
cy5tdWx0aWxpbmUmJnMuYWxsJiYoIXMuZG9jdW1lbnRNb2RlfHxzLmRvY3VtZW50TW9kZTw9OCkm
Jih0LmxpbmVIZWlnaHQ9bi5oLW8rInB4Iikscj1lLl9ib3JkZXJCb3gsaT1yLmxlZnQrci5yaWdo
dCs4LG89ci50b3Arci5ib3R0b20rKGUuc2V0dGluZ3MubXVsdGlsaW5lPzg6MCksbi54IT09YS54
JiYodC5sZWZ0PW4ueCsicHgiLGEueD1uLngpLG4ueSE9PWEueSYmKHQudG9wPW4ueSsicHgiLGEu
eT1uLnkpLG4udyE9PWEudyYmKHQud2lkdGg9bi53LWkrInB4IixhLnc9bi53KSxuLmghPT1hLmgm
Jih0LmhlaWdodD1uLmgtbysicHgiLGEuaD1uLmgpLGUuX2xhc3RSZXBhaW50UmVjdD1hLGUuZmly
ZSgicmVwYWludCIse30sITEpLGV9LHJlbmRlckh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9
ZS5faWQsbj1lLnNldHRpbmdzLHI9ZS5lbmNvZGUoZS5fdmFsdWUsITEpLGk9IiI7cmV0dXJuInNw
ZWxsY2hlY2siaW4gbiYmKGkrPScgc3BlbGxjaGVjaz0iJytuLnNwZWxsY2hlY2srJyInKSxuLm1h
eExlbmd0aCYmKGkrPScgbWF4bGVuZ3RoPSInK24ubWF4TGVuZ3RoKyciJyksbi5zaXplJiYoaSs9
JyBzaXplPSInK24uc2l6ZSsnIicpLG4uc3VidHlwZSYmKGkrPScgdHlwZT0iJytuLnN1YnR5cGUr
JyInKSxlLmRpc2FibGVkKCkmJihpKz0nIGRpc2FibGVkPSJkaXNhYmxlZCInKSxuLm11bHRpbGlu
ZT8nPHRleHRhcmVhIGlkPSInK3QrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgJysobi5yb3dz
Pycgcm93cz0iJytuLnJvd3MrJyInOiIiKSsnIGhpZGVmb2N1cz0iMSInK2krIj4iK3IrIjwvdGV4
dGFyZWE+IjonPGlucHV0IGlkPSInK3QrJyIgY2xhc3M9IicrZS5jbGFzc2VzKCkrJyIgdmFsdWU9
IicrcisnIiBoaWRlZm9jdXM9IjEiJytpKyIgLz4ifSxwb3N0UmVuZGVyOmZ1bmN0aW9uKCl7dmFy
IGU9dGhpcztyZXR1cm4gdC5vbihlLmdldEVsKCksImNoYW5nZSIsZnVuY3Rpb24odCl7ZS5maXJl
KCJjaGFuZ2UiLHQpfSksZS5fc3VwZXIoKX0scmVtb3ZlOmZ1bmN0aW9uKCl7dC5vZmYodGhpcy5n
ZXRFbCgpKSx0aGlzLl9zdXBlcigpfX0pfSkscih0bixbcSwkXSxmdW5jdGlvbihlLHQpe3JldHVy
biBmdW5jdGlvbihuLHIpe3ZhciBpPXRoaXMsbyxhPXQuY2xhc3NQcmVmaXg7aS5zaG93PWZ1bmN0
aW9uKHQpe3JldHVybiBpLmhpZGUoKSxvPSEwLHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7
byYmbi5hcHBlbmRDaGlsZChlLmNyZWF0ZUZyYWdtZW50KCc8ZGl2IGNsYXNzPSInK2ErInRocm9i
YmVyIisocj8iICIrYSsidGhyb2JiZXItaW5saW5lIjoiIikrJyI+PC9kaXY+JykpfSx0fHwwKSxp
fSxpLmhpZGU9ZnVuY3Rpb24oKXt2YXIgZT1uLmxhc3RDaGlsZDtyZXR1cm4gZSYmLTEhPWUuY2xh
c3NOYW1lLmluZGV4T2YoInRocm9iYmVyIikmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxv
PSExLGl9fX0pLGEoW2wsYyx1LGQsZixwLGgsbSxnLHYseSxiLEMseCx3LF8sTixFLFMsayxULFIs
QSxCLEQsTCxNLEgsUCxPLEksRix6LFcsVixVLHEsJCxqLEssRyxZLFgsSixRLFosZXQsdHQsbnQs
cnQsaXQsb3QsYXQsc3QsbHQsY3QsdXQsZHQsZnQscHQsaHQsbXQsZ3QsdnQseXQsYnQsQ3QseHQs
d3QsX3QsTnQsRXQsU3Qsa3QsVHQsUnQsQXQsQnQsRHQsTHQsTXQsSHQsUHQsT3QsSXQsRnQsenQs
V3QsVnQsVXQscXQsJHQsanQsS3QsR3QsWXQsWHQsSnQsUXQsWnQsZW4sdG5dKX0odGhpcyk7dGlu
eW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiYWR2bGlzdCIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0
LGUpe3ZhciBuPVtdO3JldHVybiB0aW55bWNlLmVhY2goZS5zcGxpdCgvWyAsXS8pLGZ1bmN0aW9u
KHQpe24ucHVzaCh7dGV4dDp0LnJlcGxhY2UoL1wtL2csIiAiKS5yZXBsYWNlKC9cYlx3L2csZnVu
Y3Rpb24odCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pLGRhdGE6ImRlZmF1bHQiPT10PyIiOnR9
KX0pLG59ZnVuY3Rpb24gbihlLG4pe3ZhciBvLGw9dC5kb20sYT10LnNlbGVjdGlvbjtvPWwuZ2V0
UGFyZW50KGEuZ2V0Tm9kZSgpLCJvbCx1bCIpLG8mJm8ubm9kZU5hbWU9PWUmJm4hPT0hMXx8dC5l
eGVjQ29tbWFuZCgiVUwiPT1lPyJJbnNlcnRVbm9yZGVyZWRMaXN0IjoiSW5zZXJ0T3JkZXJlZExp
c3QiKSxuPW49PT0hMT9pW2VdOm4saVtlXT1uLG89bC5nZXRQYXJlbnQoYS5nZXROb2RlKCksIm9s
LHVsIiksbyYmKGwuc2V0U3R5bGUobywibGlzdFN0eWxlVHlwZSIsbiksby5yZW1vdmVBdHRyaWJ1
dGUoImRhdGEtbWNlLXN0eWxlIikpLHQuZm9jdXMoKX1mdW5jdGlvbiBvKGUpe3ZhciBuPXQuZG9t
LmdldFN0eWxlKHQuZG9tLmdldFBhcmVudCh0LnNlbGVjdGlvbi5nZXROb2RlKCksIm9sLHVsIiks
Imxpc3RTdHlsZVR5cGUiKXx8IiI7ZS5jb250cm9sLml0ZW1zKCkuZWFjaChmdW5jdGlvbih0KXt0
LmFjdGl2ZSh0LnNldHRpbmdzLmRhdGE9PT1uKX0pfXZhciBsLGEsaT17fTtsPWUoIk9MIix0Lmdl
dFBhcmFtKCJhZHZsaXN0X251bWJlcl9zdHlsZXMiLCJkZWZhdWx0LGxvd2VyLWFscGhhLGxvd2Vy
LWdyZWVrLGxvd2VyLXJvbWFuLHVwcGVyLWFscGhhLHVwcGVyLXJvbWFuIikpLGE9ZSgiVUwiLHQu
Z2V0UGFyYW0oImFkdmxpc3RfYnVsbGV0X3N0eWxlcyIsImRlZmF1bHQsY2lyY2xlLGRpc2Msc3F1
YXJlIikpLHQuYWRkQnV0dG9uKCJudW1saXN0Iix7dHlwZToic3BsaXRidXR0b24iLHRvb2x0aXA6
Ik51bWJlcmVkIGxpc3QiLG1lbnU6bCxvbnNob3c6byxvbnNlbGVjdDpmdW5jdGlvbih0KXtuKCJP
TCIsdC5jb250cm9sLnNldHRpbmdzLmRhdGEpfSxvbmNsaWNrOmZ1bmN0aW9uKCl7bigiT0wiLCEx
KX19KSx0LmFkZEJ1dHRvbigiYnVsbGlzdCIse3R5cGU6InNwbGl0YnV0dG9uIix0b29sdGlwOiJC
dWxsZXQgbGlzdCIsbWVudTphLG9uc2hvdzpvLG9uc2VsZWN0OmZ1bmN0aW9uKHQpe24oIlVMIix0
LmNvbnRyb2wuc2V0dGluZ3MuZGF0YSl9LG9uY2xpY2s6ZnVuY3Rpb24oKXtuKCJVTCIsITEpfX0p
fSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiYW5jaG9yIixmdW5jdGlvbihuKXtmdW5jdGlv
biBlKCl7dmFyIGU9bi5zZWxlY3Rpb24uZ2V0Tm9kZSgpO24ud2luZG93TWFuYWdlci5vcGVuKHt0
aXRsZToiQW5jaG9yIixib2R5Ont0eXBlOiJ0ZXh0Ym94IixuYW1lOiJuYW1lIixzaXplOjQwLGxh
YmVsOiJOYW1lIix2YWx1ZTplLm5hbWV8fGUuaWR9LG9uc3VibWl0OmZ1bmN0aW9uKGUpe24uZXhl
Y0NvbW1hbmQoIm1jZUluc2VydENvbnRlbnQiLCExLG4uZG9tLmNyZWF0ZUhUTUwoImEiLHtpZDpl
LmRhdGEubmFtZX0pKX19KX1uLmFkZEJ1dHRvbigiYW5jaG9yIix7aWNvbjoiYW5jaG9yIix0b29s
dGlwOiJBbmNob3IiLG9uY2xpY2s6ZSxzdGF0ZVNlbGVjdG9yOiJhOm5vdChbaHJlZl0pIn0pLG4u
YWRkTWVudUl0ZW0oImFuY2hvciIse2ljb246ImFuY2hvciIsdGV4dDoiQW5jaG9yIixjb250ZXh0
OiJpbnNlcnQiLG9uY2xpY2s6ZX0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiYXV0b2xp
bmsiLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7byh0LC0xLCIoIiwhMCl9ZnVuY3Rpb24gZSh0
KXtvKHQsMCwiIiwhMCl9ZnVuY3Rpb24gaSh0KXtvKHQsLTEsIiIsITEpfWZ1bmN0aW9uIG8odCxu
LGUpe2Z1bmN0aW9uIGkodCxuKXtpZigwPm4mJihuPTApLDM9PXQubm9kZVR5cGUpe3ZhciBlPXQu
ZGF0YS5sZW5ndGg7bj5lJiYobj1lKX1yZXR1cm4gbn1mdW5jdGlvbiBvKHQsbil7Zi5zZXRTdGFy
dCh0LGkodCxuKSl9ZnVuY3Rpb24gcih0LG4pe2Yuc2V0RW5kKHQsaSh0LG4pKX12YXIgZixkLGEs
cyxjLGwsdSxnLGg7aWYoZj10LnNlbGVjdGlvbi5nZXRSbmcoITApLmNsb25lUmFuZ2UoKSxmLnN0
YXJ0T2Zmc2V0PDUpe2lmKGc9Zi5lbmRDb250YWluZXIucHJldmlvdXNTaWJsaW5nLCFnKXtpZigh
Zi5lbmRDb250YWluZXIuZmlyc3RDaGlsZHx8IWYuZW5kQ29udGFpbmVyLmZpcnN0Q2hpbGQubmV4
dFNpYmxpbmcpcmV0dXJuO2c9Zi5lbmRDb250YWluZXIuZmlyc3RDaGlsZC5uZXh0U2libGluZ31p
ZihoPWcubGVuZ3RoLG8oZyxoKSxyKGcsaCksZi5lbmRPZmZzZXQ8NSlyZXR1cm47ZD1mLmVuZE9m
ZnNldCxzPWd9ZWxzZXtpZihzPWYuZW5kQ29udGFpbmVyLDMhPXMubm9kZVR5cGUmJnMuZmlyc3RD
aGlsZCl7Zm9yKDszIT1zLm5vZGVUeXBlJiZzLmZpcnN0Q2hpbGQ7KXM9cy5maXJzdENoaWxkOzM9
PXMubm9kZVR5cGUmJihvKHMsMCkscihzLHMubm9kZVZhbHVlLmxlbmd0aCkpfWQ9MT09Zi5lbmRP
ZmZzZXQ/MjpmLmVuZE9mZnNldC0xLW59YT1kO2RvIG8ocyxkPj0yP2QtMjowKSxyKHMsZD49MT9k
LTE6MCksZC09MTt3aGlsZSgiICIhPWYudG9TdHJpbmcoKSYmIiIhPT1mLnRvU3RyaW5nKCkmJjE2
MCE9Zi50b1N0cmluZygpLmNoYXJDb2RlQXQoMCkmJmQtMj49MCYmZi50b1N0cmluZygpIT1lKTtm
LnRvU3RyaW5nKCk9PWV8fDE2MD09Zi50b1N0cmluZygpLmNoYXJDb2RlQXQoMCk/KG8ocyxkKSxy
KHMsYSksZCs9MSk6MD09PWYuc3RhcnRPZmZzZXQ/KG8ocywwKSxyKHMsYSkpOihvKHMsZCkscihz
LGEpKSxsPWYudG9TdHJpbmcoKSwiLiI9PWwuY2hhckF0KGwubGVuZ3RoLTEpJiZyKHMsYS0xKSxs
PWYudG9TdHJpbmcoKSx1PWwubWF0Y2goL14oaHR0cHM/OlwvXC98c3NoOlwvXC98ZnRwOlwvXC98
ZmlsZTpcL3x3d3dcLnwoPzptYWlsdG86KT9bQS1aMC05Ll8lK1wtXStAKSguKykkL2kpLHUmJigi
d3d3LiI9PXVbMV0/dVsxXT0iaHR0cDovL3d3dy4iOi9AJC8udGVzdCh1WzFdKSYmIS9ebWFpbHRv
Oi8udGVzdCh1WzFdKSYmKHVbMV09Im1haWx0bzoiK3VbMV0pLGM9dC5zZWxlY3Rpb24uZ2V0Qm9v
a21hcmsoKSx0LnNlbGVjdGlvbi5zZXRSbmcoZiksdC5leGVjQ29tbWFuZCgiY3JlYXRlbGluayIs
ITEsdVsxXSt1WzJdKSx0LnNlbGVjdGlvbi5tb3ZlVG9Cb29rbWFyayhjKSx0Lm5vZGVDaGFuZ2Vk
KCkpfXZhciByO3JldHVybiB0Lm9uKCJrZXlkb3duIixmdW5jdGlvbihuKXtyZXR1cm4gMTM9PW4u
a2V5Q29kZT9pKHQpOnZvaWQgMH0pLHRpbnltY2UuRW52LmllP3ZvaWQgdC5vbigiZm9jdXMiLGZ1
bmN0aW9uKCl7aWYoIXIpe3I9ITA7dHJ5e3QuZXhlY0NvbW1hbmQoIkF1dG9VcmxEZXRlY3QiLCEx
LCEwKX1jYXRjaChuKXt9fX0pOih0Lm9uKCJrZXlwcmVzcyIsZnVuY3Rpb24oZSl7cmV0dXJuIDQx
PT1lLmtleUNvZGU/bih0KTp2b2lkIDB9KSx2b2lkIHQub24oImtleXVwIixmdW5jdGlvbihuKXty
ZXR1cm4gMzI9PW4ua2V5Q29kZT9lKHQpOnZvaWQgMH0pKX0pO3RpbnltY2UuUGx1Z2luTWFuYWdl
ci5hZGQoImF1dG9yZXNpemUiLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gZS5wbHVn
aW5zLmZ1bGxzY3JlZW4mJmUucGx1Z2lucy5mdWxsc2NyZWVuLmlzRnVsbHNjcmVlbigpfWZ1bmN0
aW9uIGkobil7dmFyIHMscixnLHUsbCxtLGgsZCxmPXRpbnltY2UuRE9NO2lmKHI9ZS5nZXREb2Mo
KSl7aWYoZz1yLmJvZHksdT1yLmRvY3VtZW50RWxlbWVudCxsPW8uYXV0b3Jlc2l6ZV9taW5faGVp
Z2h0LCFnfHxuJiYic2V0Y29udGVudCI9PT1uLnR5cGUmJm4uaW5pdGlhbHx8dCgpKXJldHVybiB2
b2lkKGcmJnUmJihnLnN0eWxlLm92ZXJmbG93WT0iYXV0byIsdS5zdHlsZS5vdmVyZmxvd1k9ImF1
dG8iKSk7aD1lLmRvbS5nZXRTdHlsZShnLCJtYXJnaW4tdG9wIiwhMCksZD1lLmRvbS5nZXRTdHls
ZShnLCJtYXJnaW4tYm90dG9tIiwhMCksbT1nLm9mZnNldEhlaWdodCtwYXJzZUludChoLDEwKStw
YXJzZUludChkLDEwKSwoaXNOYU4obSl8fDA+PW0pJiYobT10aW55bWNlLkVudi5pZT9nLnNjcm9s
bEhlaWdodDp0aW55bWNlLkVudi53ZWJraXQmJjA9PT1nLmNsaWVudEhlaWdodD8wOmcub2Zmc2V0
SGVpZ2h0KSxtPm8uYXV0b3Jlc2l6ZV9taW5faGVpZ2h0JiYobD1tKSxvLmF1dG9yZXNpemVfbWF4
X2hlaWdodCYmbT5vLmF1dG9yZXNpemVfbWF4X2hlaWdodD8obD1vLmF1dG9yZXNpemVfbWF4X2hl
aWdodCxnLnN0eWxlLm92ZXJmbG93WT0iYXV0byIsdS5zdHlsZS5vdmVyZmxvd1k9ImF1dG8iKToo
Zy5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiIsdS5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiIsZy5z
Y3JvbGxUb3A9MCksbCE9PWEmJihzPWwtYSxmLnNldFN0eWxlKGYuZ2V0KGUuaWQrIl9pZnIiKSwi
aGVpZ2h0IixsKyJweCIpLGE9bCx0aW55bWNlLmlzV2ViS2l0JiYwPnMmJmkobikpfX1mdW5jdGlv
biBuKGUsdCxvKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aSh7fSksZS0tP24oZSx0LG8pOm8mJm8o
KX0sdCl9dmFyIG89ZS5zZXR0aW5ncyxhPTA7ZS5zZXR0aW5ncy5pbmxpbmV8fChvLmF1dG9yZXNp
emVfbWluX2hlaWdodD1wYXJzZUludChlLmdldFBhcmFtKCJhdXRvcmVzaXplX21pbl9oZWlnaHQi
LGUuZ2V0RWxlbWVudCgpLm9mZnNldEhlaWdodCksMTApLG8uYXV0b3Jlc2l6ZV9tYXhfaGVpZ2h0
PXBhcnNlSW50KGUuZ2V0UGFyYW0oImF1dG9yZXNpemVfbWF4X2hlaWdodCIsMCksMTApLGUub24o
ImluaXQiLGZ1bmN0aW9uKCl7dmFyIHQ9ZS5nZXRQYXJhbSgiYXV0b3Jlc2l6ZV9vdmVyZmxvd19w
YWRkaW5nIiwxKTtlLmRvbS5zZXRTdHlsZXMoZS5nZXRCb2R5KCkse3BhZGRpbmdCb3R0b206ZS5n
ZXRQYXJhbSgiYXV0b3Jlc2l6ZV9ib3R0b21fbWFyZ2luIiw1MCkscGFkZGluZ0xlZnQ6dCxwYWRk
aW5nUmlnaHQ6dH0pfSksZS5vbigibm9kZWNoYW5nZSBzZXRjb250ZW50IGtleXVwIEZ1bGxzY3Jl
ZW5TdGF0ZUNoYW5nZWQiLGkpLGUuZ2V0UGFyYW0oImF1dG9yZXNpemVfb25faW5pdCIsITApJiZl
Lm9uKCJpbml0IixmdW5jdGlvbigpe24oMjAsMTAwLGZ1bmN0aW9uKCl7big1LDFlMyl9KX0pLGUu
YWRkQ29tbWFuZCgibWNlQXV0b1Jlc2l6ZSIsaSkpfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFk
ZCgiYXV0b3NhdmUiLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0KXt2YXIgbj17czoxZTMsbTo2
ZTR9O3JldHVybiBlPS9eKFxkKykoW21zXT8pJC8uZXhlYygiIisoZXx8dCkpLChlWzJdP25bZVsy
XV06MSkqcGFyc2VJbnQoZSwxMCl9ZnVuY3Rpb24gbigpe3ZhciBlPXBhcnNlSW50KGwuZ2V0SXRl
bShkKyJ0aW1lIiksMTApfHwwO3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpLWU+di5hdXRvc2F2
ZV9yZXRlbnRpb24/KGEoITEpLCExKTohMH1mdW5jdGlvbiBhKHQpe2wucmVtb3ZlSXRlbShkKyJk
cmFmdCIpLGwucmVtb3ZlSXRlbShkKyJ0aW1lIiksdCE9PSExJiZlLmZpcmUoIlJlbW92ZURyYWZ0
Iil9ZnVuY3Rpb24gcigpeyFjKCkmJmUuaXNEaXJ0eSgpJiYobC5zZXRJdGVtKGQrImRyYWZ0Iixl
LmdldENvbnRlbnQoe2Zvcm1hdDoicmF3Iixub19ldmVudHM6ITB9KSksbC5zZXRJdGVtKGQrInRp
bWUiLChuZXcgRGF0ZSkuZ2V0VGltZSgpKSxlLmZpcmUoIlN0b3JlRHJhZnQiKSl9ZnVuY3Rpb24g
bygpe24oKSYmKGUuc2V0Q29udGVudChsLmdldEl0ZW0oZCsiZHJhZnQiKSx7Zm9ybWF0OiJyYXci
fSksZS5maXJlKCJSZXN0b3JlRHJhZnQiKSl9ZnVuY3Rpb24gaSgpe218fChzZXRJbnRlcnZhbChm
dW5jdGlvbigpe2UucmVtb3ZlZHx8cigpfSx2LmF1dG9zYXZlX2ludGVydmFsKSxtPSEwKX1mdW5j
dGlvbiBzKCl7dmFyIHQ9dGhpczt0LmRpc2FibGVkKCFuKCkpLGUub24oIlN0b3JlRHJhZnQgUmVz
dG9yZURyYWZ0IFJlbW92ZURyYWZ0IixmdW5jdGlvbigpe3QuZGlzYWJsZWQoIW4oKSl9KSxpKCl9
ZnVuY3Rpb24gdSgpe2UudW5kb01hbmFnZXIuYmVmb3JlQ2hhbmdlKCksbygpLGEoKSxlLnVuZG9N
YW5hZ2VyLmFkZCgpfWZ1bmN0aW9uIGYoKXt2YXIgZTtyZXR1cm4gdGlueW1jZS5lYWNoKHRpbnlt
Y2UuZWRpdG9ycyxmdW5jdGlvbih0KXt0LnBsdWdpbnMuYXV0b3NhdmUmJnQucGx1Z2lucy5hdXRv
c2F2ZS5zdG9yZURyYWZ0KCksIWUmJnQuaXNEaXJ0eSgpJiZ0LmdldFBhcmFtKCJhdXRvc2F2ZV9h
c2tfYmVmb3JlX3VubG9hZCIsITApJiYoZT10LnRyYW5zbGF0ZSgiWW91IGhhdmUgdW5zYXZlZCBj
aGFuZ2VzIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBuYXZpZ2F0ZSBhd2F5PyIpKX0pLGV9ZnVu
Y3Rpb24gYyh0KXt2YXIgbj1lLnNldHRpbmdzLmZvcmNlZF9yb290X2Jsb2NrO3JldHVybiB0PXRp
bnltY2UudHJpbSgidW5kZWZpbmVkIj09dHlwZW9mIHQ/ZS5nZXRCb2R5KCkuaW5uZXJIVE1MOnQp
LCIiPT09dHx8bmV3IFJlZ0V4cCgiXjwiK24rIltePl0qPigowqB8Jm5ic3A7fFsgCV18PGJyW14+
XSo+KSs/fCk8LyIrbisiPnw8YnI+JCIsImkiKS50ZXN0KHQpfXZhciBkLG0sdj1lLnNldHRpbmdz
LGw9dGlueW1jZS51dGlsLkxvY2FsU3RvcmFnZTtkPXYuYXV0b3NhdmVfcHJlZml4fHwidGlueW1j
ZS1hdXRvc2F2ZS17cGF0aH17cXVlcnl9LXtpZH0tIixkPWQucmVwbGFjZSgvXHtwYXRoXH0vZyxk
b2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSksZD1kLnJlcGxhY2UoL1x7cXVlcnlcfS9nLGRvY3Vt
ZW50LmxvY2F0aW9uLnNlYXJjaCksZD1kLnJlcGxhY2UoL1x7aWRcfS9nLGUuaWQpLHYuYXV0b3Nh
dmVfaW50ZXJ2YWw9dCh2LmF1dG9zYXZlX2ludGVydmFsLCIzMHMiKSx2LmF1dG9zYXZlX3JldGVu
dGlvbj10KHYuYXV0b3NhdmVfcmV0ZW50aW9uLCIyMG0iKSxlLmFkZEJ1dHRvbigicmVzdG9yZWRy
YWZ0Iix7dGl0bGU6IlJlc3RvcmUgbGFzdCBkcmFmdCIsb25jbGljazp1LG9uUG9zdFJlbmRlcjpz
fSksZS5hZGRNZW51SXRlbSgicmVzdG9yZWRyYWZ0Iix7dGV4dDoiUmVzdG9yZSBsYXN0IGRyYWZ0
IixvbmNsaWNrOnUsb25Qb3N0UmVuZGVyOnMsY29udGV4dDoiZmlsZSJ9KSxlLnNldHRpbmdzLmF1
dG9zYXZlX3Jlc3RvcmVfd2hlbl9lbXB0eSE9PSExJiYoZS5vbigiaW5pdCIsZnVuY3Rpb24oKXtu
KCkmJmMoKSYmbygpfSksZS5vbigic2F2ZUNvbnRlbnQiLGZ1bmN0aW9uKCl7YSgpfSkpLHdpbmRv
dy5vbmJlZm9yZXVubG9hZD1mLHRoaXMuaGFzRHJhZnQ9bix0aGlzLnN0b3JlRHJhZnQ9cix0aGlz
LnJlc3RvcmVEcmFmdD1vLHRoaXMucmVtb3ZlRHJhZnQ9YSx0aGlzLmlzRW1wdHk9Y30pOyFmdW5j
dGlvbigpe3RpbnltY2UuY3JlYXRlKCJ0aW55bWNlLnBsdWdpbnMuQkJDb2RlUGx1Z2luIix7aW5p
dDpmdW5jdGlvbihvKXt2YXIgZT10aGlzLHQ9by5nZXRQYXJhbSgiYmJjb2RlX2RpYWxlY3QiLCJw
dW5iYiIpLnRvTG93ZXJDYXNlKCk7by5vbigiYmVmb3JlU2V0Q29udGVudCIsZnVuY3Rpb24obyl7
by5jb250ZW50PWVbIl8iK3QrIl9iYmNvZGUyaHRtbCJdKG8uY29udGVudCl9KSxvLm9uKCJwb3N0
UHJvY2VzcyIsZnVuY3Rpb24obyl7by5zZXQmJihvLmNvbnRlbnQ9ZVsiXyIrdCsiX2JiY29kZTJo
dG1sIl0oby5jb250ZW50KSksby5nZXQmJihvLmNvbnRlbnQ9ZVsiXyIrdCsiX2h0bWwyYmJjb2Rl
Il0oby5jb250ZW50KSl9KX0sZ2V0SW5mbzpmdW5jdGlvbigpe3JldHVybntsb25nbmFtZToiQkJD
b2RlIFBsdWdpbiIsYXV0aG9yOiJNb3hpZWNvZGUgU3lzdGVtcyBBQiIsYXV0aG9ydXJsOiJodHRw
Oi8vd3d3LnRpbnltY2UuY29tIixpbmZvdXJsOiJodHRwOi8vd3d3LnRpbnltY2UuY29tL3dpa2ku
cGhwL1BsdWdpbjpiYmNvZGUifX0sX3B1bmJiX2h0bWwyYmJjb2RlOmZ1bmN0aW9uKG8pe2Z1bmN0
aW9uIGUoZSx0KXtvPW8ucmVwbGFjZShlLHQpfXJldHVybiBvPXRpbnltY2UudHJpbShvKSxlKC88
YS4qP2hyZWY9XCIoLio/KVwiLio/PiguKj8pPFwvYT4vZ2ksIlt1cmw9JDFdJDJbL3VybF0iKSxl
KC88Zm9udC4qP2NvbG9yPVwiKC4qPylcIi4qP2NsYXNzPVwiY29kZVN0eWxlXCIuKj8+KC4qPyk8
XC9mb250Pi9naSwiW2NvZGVdW2NvbG9yPSQxXSQyWy9jb2xvcl1bL2NvZGVdIiksZSgvPGZvbnQu
Kj9jb2xvcj1cIiguKj8pXCIuKj9jbGFzcz1cInF1b3RlU3R5bGVcIi4qPz4oLio/KTxcL2ZvbnQ+
L2dpLCJbcXVvdGVdW2NvbG9yPSQxXSQyWy9jb2xvcl1bL3F1b3RlXSIpLGUoLzxmb250Lio/Y2xh
c3M9XCJjb2RlU3R5bGVcIi4qP2NvbG9yPVwiKC4qPylcIi4qPz4oLio/KTxcL2ZvbnQ+L2dpLCJb
Y29kZV1bY29sb3I9JDFdJDJbL2NvbG9yXVsvY29kZV0iKSxlKC88Zm9udC4qP2NsYXNzPVwicXVv
dGVTdHlsZVwiLio/Y29sb3I9XCIoLio/KVwiLio/PiguKj8pPFwvZm9udD4vZ2ksIltxdW90ZV1b
Y29sb3I9JDFdJDJbL2NvbG9yXVsvcXVvdGVdIiksZSgvPHNwYW4gc3R5bGU9XCJjb2xvcjogPygu
Kj8pO1wiPiguKj8pPFwvc3Bhbj4vZ2ksIltjb2xvcj0kMV0kMlsvY29sb3JdIiksZSgvPGZvbnQu
Kj9jb2xvcj1cIiguKj8pXCIuKj8+KC4qPyk8XC9mb250Pi9naSwiW2NvbG9yPSQxXSQyWy9jb2xv
cl0iKSxlKC88c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTooLio/KTtcIj4oLio/KTxcL3NwYW4+L2dp
LCJbc2l6ZT0kMV0kMlsvc2l6ZV0iKSxlKC88Zm9udD4oLio/KTxcL2ZvbnQ+L2dpLCIkMSIpLGUo
LzxpbWcuKj9zcmM9XCIoLio/KVwiLio/XC8+L2dpLCJbaW1nXSQxWy9pbWddIiksZSgvPHNwYW4g
Y2xhc3M9XCJjb2RlU3R5bGVcIj4oLio/KTxcL3NwYW4+L2dpLCJbY29kZV0kMVsvY29kZV0iKSxl
KC88c3BhbiBjbGFzcz1cInF1b3RlU3R5bGVcIj4oLio/KTxcL3NwYW4+L2dpLCJbcXVvdGVdJDFb
L3F1b3RlXSIpLGUoLzxzdHJvbmcgY2xhc3M9XCJjb2RlU3R5bGVcIj4oLio/KTxcL3N0cm9uZz4v
Z2ksIltjb2RlXVtiXSQxWy9iXVsvY29kZV0iKSxlKC88c3Ryb25nIGNsYXNzPVwicXVvdGVTdHls
ZVwiPiguKj8pPFwvc3Ryb25nPi9naSwiW3F1b3RlXVtiXSQxWy9iXVsvcXVvdGVdIiksZSgvPGVt
IGNsYXNzPVwiY29kZVN0eWxlXCI+KC4qPyk8XC9lbT4vZ2ksIltjb2RlXVtpXSQxWy9pXVsvY29k
ZV0iKSxlKC88ZW0gY2xhc3M9XCJxdW90ZVN0eWxlXCI+KC4qPyk8XC9lbT4vZ2ksIltxdW90ZV1b
aV0kMVsvaV1bL3F1b3RlXSIpLGUoLzx1IGNsYXNzPVwiY29kZVN0eWxlXCI+KC4qPyk8XC91Pi9n
aSwiW2NvZGVdW3VdJDFbL3VdWy9jb2RlXSIpLGUoLzx1IGNsYXNzPVwicXVvdGVTdHlsZVwiPigu
Kj8pPFwvdT4vZ2ksIltxdW90ZV1bdV0kMVsvdV1bL3F1b3RlXSIpLGUoLzxcLyhzdHJvbmd8Yik+
L2dpLCJbL2JdIiksZSgvPChzdHJvbmd8Yik+L2dpLCJbYl0iKSxlKC88XC8oZW18aSk+L2dpLCJb
L2ldIiksZSgvPChlbXxpKT4vZ2ksIltpXSIpLGUoLzxcL3U+L2dpLCJbL3VdIiksZSgvPHNwYW4g
c3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246ID91bmRlcmxpbmU7XCI+KC4qPyk8XC9zcGFuPi9naSwi
W3VdJDFbL3VdIiksZSgvPHU+L2dpLCJbdV0iKSxlKC88YmxvY2txdW90ZVtePl0qPi9naSwiW3F1
b3RlXSIpLGUoLzxcL2Jsb2NrcXVvdGU+L2dpLCJbL3F1b3RlXSIpLGUoLzxiciBcLz4vZ2ksIlxu
IiksZSgvPGJyXC8+L2dpLCJcbiIpLGUoLzxicj4vZ2ksIlxuIiksZSgvPHA+L2dpLCIiKSxlKC88
XC9wPi9naSwiXG4iKSxlKC8mbmJzcDt8XHUwMGEwL2dpLCIgIiksZSgvJnF1b3Q7L2dpLCciJyks
ZSgvJmx0Oy9naSwiPCIpLGUoLyZndDsvZ2ksIj4iKSxlKC8mYW1wOy9naSwiJiIpLG99LF9wdW5i
Yl9iYmNvZGUyaHRtbDpmdW5jdGlvbihvKXtmdW5jdGlvbiBlKGUsdCl7bz1vLnJlcGxhY2UoZSx0
KX1yZXR1cm4gbz10aW55bWNlLnRyaW0obyksZSgvXG4vZ2ksIjxiciAvPiIpLGUoL1xbYlxdL2dp
LCI8c3Ryb25nPiIpLGUoL1xbXC9iXF0vZ2ksIjwvc3Ryb25nPiIpLGUoL1xbaVxdL2dpLCI8ZW0+
IiksZSgvXFtcL2lcXS9naSwiPC9lbT4iKSxlKC9cW3VcXS9naSwiPHU+IiksZSgvXFtcL3VcXS9n
aSwiPC91PiIpLGUoL1xbdXJsPShbXlxdXSspXF0oLio/KVxbXC91cmxcXS9naSwnPGEgaHJlZj0i
JDEiPiQyPC9hPicpLGUoL1xbdXJsXF0oLio/KVxbXC91cmxcXS9naSwnPGEgaHJlZj0iJDEiPiQx
PC9hPicpLGUoL1xbaW1nXF0oLio/KVxbXC9pbWdcXS9naSwnPGltZyBzcmM9IiQxIiAvPicpLGUo
L1xbY29sb3I9KC4qPylcXSguKj8pXFtcL2NvbG9yXF0vZ2ksJzxmb250IGNvbG9yPSIkMSI+JDI8
L2ZvbnQ+JyksZSgvXFtjb2RlXF0oLio/KVxbXC9jb2RlXF0vZ2ksJzxzcGFuIGNsYXNzPSJjb2Rl
U3R5bGUiPiQxPC9zcGFuPiZuYnNwOycpLGUoL1xbcXVvdGUuKj9cXSguKj8pXFtcL3F1b3RlXF0v
Z2ksJzxzcGFuIGNsYXNzPSJxdW90ZVN0eWxlIj4kMTwvc3Bhbj4mbmJzcDsnKSxvfX0pLHRpbnlt
Y2UuUGx1Z2luTWFuYWdlci5hZGQoImJiY29kZSIsdGlueW1jZS5wbHVnaW5zLkJCQ29kZVBsdWdp
bil9KCk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiY2hhcm1hcCIsZnVuY3Rpb24oZSl7ZnVu
Y3Rpb24gYSgpe2Z1bmN0aW9uIGEoZSl7Zm9yKDtlOyl7aWYoIlREIj09ZS5ub2RlTmFtZSlyZXR1
cm4gZTtlPWUucGFyZW50Tm9kZX19dmFyIHQscixvLG47dD0nPHRhYmxlIHJvbGU9InByZXNlbnRh
dGlvbiIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJtY2UtY2hhcm1hcCI+PHRib2R5Pic7dmFyIGw9
MjU7Zm9yKG89MDsxMD5vO28rKyl7Zm9yKHQrPSI8dHI+IixyPTA7bD5yO3IrKyl7dmFyIHM9aVtv
Kmwrcl07dCs9Jzx0ZCB0aXRsZT0iJytzWzFdKyciPjxkaXYgdGFiaW5kZXg9Ii0xIiB0aXRsZT0i
JytzWzFdKyciIHJvbGU9ImJ1dHRvbiI+Jysocz9TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50
KHNbMF0sMTApKToiJm5ic3A7IikrIjwvZGl2PjwvdGQ+In10Kz0iPC90cj4ifXQrPSI8L3Rib2R5
PjwvdGFibGU+Ijt2YXIgYz17dHlwZToiY29udGFpbmVyIixodG1sOnQsb25jbGljazpmdW5jdGlv
bihhKXt2YXIgaT1hLnRhcmdldDsiVEQiPT1pLnRhZ05hbWUmJihpPWkuZmlyc3RDaGlsZCksIkRJ
ViI9PWkudGFnTmFtZSYmKGUuZXhlY0NvbW1hbmQoIm1jZUluc2VydENvbnRlbnQiLCExLGkuZmly
c3RDaGlsZC5kYXRhKSxhLmN0cmxLZXl8fG4uY2xvc2UoKSl9LG9ubW91c2VvdmVyOmZ1bmN0aW9u
KGUpe3ZhciBpPWEoZS50YXJnZXQpO2kmJm4uZmluZCgiI3ByZXZpZXciKS50ZXh0KGkuZmlyc3RD
aGlsZC5maXJzdENoaWxkLmRhdGEpfX07bj1lLndpbmRvd01hbmFnZXIub3Blbih7dGl0bGU6IlNw
ZWNpYWwgY2hhcmFjdGVyIixzcGFjaW5nOjEwLHBhZGRpbmc6MTAsaXRlbXM6W2Mse3R5cGU6Imxh
YmVsIixuYW1lOiJwcmV2aWV3Iix0ZXh0OiIgIixzdHlsZToiZm9udC1zaXplOiA0MHB4OyB0ZXh0
LWFsaWduOiBjZW50ZXIiLGJvcmRlcjoxLG1pbldpZHRoOjEwMCxtaW5IZWlnaHQ6ODB9XSxidXR0
b25zOlt7dGV4dDoiQ2xvc2UiLG9uY2xpY2s6ZnVuY3Rpb24oKXtuLmNsb3NlKCl9fV19KX12YXIg
aT1bWyIxNjAiLCJuby1icmVhayBzcGFjZSJdLFsiMzgiLCJhbXBlcnNhbmQiXSxbIjM0IiwicXVv
dGF0aW9uIG1hcmsiXSxbIjE2MiIsImNlbnQgc2lnbiJdLFsiODM2NCIsImV1cm8gc2lnbiJdLFsi
MTYzIiwicG91bmQgc2lnbiJdLFsiMTY1IiwieWVuIHNpZ24iXSxbIjE2OSIsImNvcHlyaWdodCBz
aWduIl0sWyIxNzQiLCJyZWdpc3RlcmVkIHNpZ24iXSxbIjg0ODIiLCJ0cmFkZSBtYXJrIHNpZ24i
XSxbIjgyNDAiLCJwZXIgbWlsbGUgc2lnbiJdLFsiMTgxIiwibWljcm8gc2lnbiJdLFsiMTgzIiwi
bWlkZGxlIGRvdCJdLFsiODIyNiIsImJ1bGxldCJdLFsiODIzMCIsInRocmVlIGRvdCBsZWFkZXIi
XSxbIjgyNDIiLCJtaW51dGVzIC8gZmVldCJdLFsiODI0MyIsInNlY29uZHMgLyBpbmNoZXMiXSxb
IjE2NyIsInNlY3Rpb24gc2lnbiJdLFsiMTgyIiwicGFyYWdyYXBoIHNpZ24iXSxbIjIyMyIsInNo
YXJwIHMgLyBlc3MtemVkIl0sWyI4MjQ5Iiwic2luZ2xlIGxlZnQtcG9pbnRpbmcgYW5nbGUgcXVv
dGF0aW9uIG1hcmsiXSxbIjgyNTAiLCJzaW5nbGUgcmlnaHQtcG9pbnRpbmcgYW5nbGUgcXVvdGF0
aW9uIG1hcmsiXSxbIjE3MSIsImxlZnQgcG9pbnRpbmcgZ3VpbGxlbWV0Il0sWyIxODciLCJyaWdo
dCBwb2ludGluZyBndWlsbGVtZXQiXSxbIjgyMTYiLCJsZWZ0IHNpbmdsZSBxdW90YXRpb24gbWFy
ayJdLFsiODIxNyIsInJpZ2h0IHNpbmdsZSBxdW90YXRpb24gbWFyayJdLFsiODIyMCIsImxlZnQg
ZG91YmxlIHF1b3RhdGlvbiBtYXJrIl0sWyI4MjIxIiwicmlnaHQgZG91YmxlIHF1b3RhdGlvbiBt
YXJrIl0sWyI4MjE4Iiwic2luZ2xlIGxvdy05IHF1b3RhdGlvbiBtYXJrIl0sWyI4MjIyIiwiZG91
YmxlIGxvdy05IHF1b3RhdGlvbiBtYXJrIl0sWyI2MCIsImxlc3MtdGhhbiBzaWduIl0sWyI2MiIs
ImdyZWF0ZXItdGhhbiBzaWduIl0sWyI4ODA0IiwibGVzcy10aGFuIG9yIGVxdWFsIHRvIl0sWyI4
ODA1IiwiZ3JlYXRlci10aGFuIG9yIGVxdWFsIHRvIl0sWyI4MjExIiwiZW4gZGFzaCJdLFsiODIx
MiIsImVtIGRhc2giXSxbIjE3NSIsIm1hY3JvbiJdLFsiODI1NCIsIm92ZXJsaW5lIl0sWyIxNjQi
LCJjdXJyZW5jeSBzaWduIl0sWyIxNjYiLCJicm9rZW4gYmFyIl0sWyIxNjgiLCJkaWFlcmVzaXMi
XSxbIjE2MSIsImludmVydGVkIGV4Y2xhbWF0aW9uIG1hcmsiXSxbIjE5MSIsInR1cm5lZCBxdWVz
dGlvbiBtYXJrIl0sWyI3MTAiLCJjaXJjdW1mbGV4IGFjY2VudCJdLFsiNzMyIiwic21hbGwgdGls
ZGUiXSxbIjE3NiIsImRlZ3JlZSBzaWduIl0sWyI4NzIyIiwibWludXMgc2lnbiJdLFsiMTc3Iiwi
cGx1cy1taW51cyBzaWduIl0sWyIyNDciLCJkaXZpc2lvbiBzaWduIl0sWyI4MjYwIiwiZnJhY3Rp
b24gc2xhc2giXSxbIjIxNSIsIm11bHRpcGxpY2F0aW9uIHNpZ24iXSxbIjE4NSIsInN1cGVyc2Ny
aXB0IG9uZSJdLFsiMTc4Iiwic3VwZXJzY3JpcHQgdHdvIl0sWyIxNzkiLCJzdXBlcnNjcmlwdCB0
aHJlZSJdLFsiMTg4IiwiZnJhY3Rpb24gb25lIHF1YXJ0ZXIiXSxbIjE4OSIsImZyYWN0aW9uIG9u
ZSBoYWxmIl0sWyIxOTAiLCJmcmFjdGlvbiB0aHJlZSBxdWFydGVycyJdLFsiNDAyIiwiZnVuY3Rp
b24gLyBmbG9yaW4iXSxbIjg3NDciLCJpbnRlZ3JhbCJdLFsiODcyMSIsIm4tYXJ5IHN1bWF0aW9u
Il0sWyI4NzM0IiwiaW5maW5pdHkiXSxbIjg3MzAiLCJzcXVhcmUgcm9vdCJdLFsiODc2NCIsInNp
bWlsYXIgdG8iXSxbIjg3NzMiLCJhcHByb3hpbWF0ZWx5IGVxdWFsIHRvIl0sWyI4Nzc2IiwiYWxt
b3N0IGVxdWFsIHRvIl0sWyI4ODAwIiwibm90IGVxdWFsIHRvIl0sWyI4ODAxIiwiaWRlbnRpY2Fs
IHRvIl0sWyI4NzEyIiwiZWxlbWVudCBvZiJdLFsiODcxMyIsIm5vdCBhbiBlbGVtZW50IG9mIl0s
WyI4NzE1IiwiY29udGFpbnMgYXMgbWVtYmVyIl0sWyI4NzE5Iiwibi1hcnkgcHJvZHVjdCJdLFsi
ODc0MyIsImxvZ2ljYWwgYW5kIl0sWyI4NzQ0IiwibG9naWNhbCBvciJdLFsiMTcyIiwibm90IHNp
Z24iXSxbIjg3NDUiLCJpbnRlcnNlY3Rpb24iXSxbIjg3NDYiLCJ1bmlvbiJdLFsiODcwNiIsInBh
cnRpYWwgZGlmZmVyZW50aWFsIl0sWyI4NzA0IiwiZm9yIGFsbCJdLFsiODcwNyIsInRoZXJlIGV4
aXN0cyJdLFsiODcwOSIsImRpYW1ldGVyIl0sWyI4NzExIiwiYmFja3dhcmQgZGlmZmVyZW5jZSJd
LFsiODcyNyIsImFzdGVyaXNrIG9wZXJhdG9yIl0sWyI4NzMzIiwicHJvcG9ydGlvbmFsIHRvIl0s
WyI4NzM2IiwiYW5nbGUiXSxbIjE4MCIsImFjdXRlIGFjY2VudCJdLFsiMTg0IiwiY2VkaWxsYSJd
LFsiMTcwIiwiZmVtaW5pbmUgb3JkaW5hbCBpbmRpY2F0b3IiXSxbIjE4NiIsIm1hc2N1bGluZSBv
cmRpbmFsIGluZGljYXRvciJdLFsiODIyNCIsImRhZ2dlciJdLFsiODIyNSIsImRvdWJsZSBkYWdn
ZXIiXSxbIjE5MiIsIkEgLSBncmF2ZSJdLFsiMTkzIiwiQSAtIGFjdXRlIl0sWyIxOTQiLCJBIC0g
Y2lyY3VtZmxleCJdLFsiMTk1IiwiQSAtIHRpbGRlIl0sWyIxOTYiLCJBIC0gZGlhZXJlc2lzIl0s
WyIxOTciLCJBIC0gcmluZyBhYm92ZSJdLFsiMTk4IiwibGlnYXR1cmUgQUUiXSxbIjE5OSIsIkMg
LSBjZWRpbGxhIl0sWyIyMDAiLCJFIC0gZ3JhdmUiXSxbIjIwMSIsIkUgLSBhY3V0ZSJdLFsiMjAy
IiwiRSAtIGNpcmN1bWZsZXgiXSxbIjIwMyIsIkUgLSBkaWFlcmVzaXMiXSxbIjIwNCIsIkkgLSBn
cmF2ZSJdLFsiMjA1IiwiSSAtIGFjdXRlIl0sWyIyMDYiLCJJIC0gY2lyY3VtZmxleCJdLFsiMjA3
IiwiSSAtIGRpYWVyZXNpcyJdLFsiMjA4IiwiRVRIIl0sWyIyMDkiLCJOIC0gdGlsZGUiXSxbIjIx
MCIsIk8gLSBncmF2ZSJdLFsiMjExIiwiTyAtIGFjdXRlIl0sWyIyMTIiLCJPIC0gY2lyY3VtZmxl
eCJdLFsiMjEzIiwiTyAtIHRpbGRlIl0sWyIyMTQiLCJPIC0gZGlhZXJlc2lzIl0sWyIyMTYiLCJP
IC0gc2xhc2giXSxbIjMzOCIsImxpZ2F0dXJlIE9FIl0sWyIzNTIiLCJTIC0gY2Fyb24iXSxbIjIx
NyIsIlUgLSBncmF2ZSJdLFsiMjE4IiwiVSAtIGFjdXRlIl0sWyIyMTkiLCJVIC0gY2lyY3VtZmxl
eCJdLFsiMjIwIiwiVSAtIGRpYWVyZXNpcyJdLFsiMjIxIiwiWSAtIGFjdXRlIl0sWyIzNzYiLCJZ
IC0gZGlhZXJlc2lzIl0sWyIyMjIiLCJUSE9STiJdLFsiMjI0IiwiYSAtIGdyYXZlIl0sWyIyMjUi
LCJhIC0gYWN1dGUiXSxbIjIyNiIsImEgLSBjaXJjdW1mbGV4Il0sWyIyMjciLCJhIC0gdGlsZGUi
XSxbIjIyOCIsImEgLSBkaWFlcmVzaXMiXSxbIjIyOSIsImEgLSByaW5nIGFib3ZlIl0sWyIyMzAi
LCJsaWdhdHVyZSBhZSJdLFsiMjMxIiwiYyAtIGNlZGlsbGEiXSxbIjIzMiIsImUgLSBncmF2ZSJd
LFsiMjMzIiwiZSAtIGFjdXRlIl0sWyIyMzQiLCJlIC0gY2lyY3VtZmxleCJdLFsiMjM1IiwiZSAt
IGRpYWVyZXNpcyJdLFsiMjM2IiwiaSAtIGdyYXZlIl0sWyIyMzciLCJpIC0gYWN1dGUiXSxbIjIz
OCIsImkgLSBjaXJjdW1mbGV4Il0sWyIyMzkiLCJpIC0gZGlhZXJlc2lzIl0sWyIyNDAiLCJldGgi
XSxbIjI0MSIsIm4gLSB0aWxkZSJdLFsiMjQyIiwibyAtIGdyYXZlIl0sWyIyNDMiLCJvIC0gYWN1
dGUiXSxbIjI0NCIsIm8gLSBjaXJjdW1mbGV4Il0sWyIyNDUiLCJvIC0gdGlsZGUiXSxbIjI0NiIs
Im8gLSBkaWFlcmVzaXMiXSxbIjI0OCIsIm8gc2xhc2giXSxbIjMzOSIsImxpZ2F0dXJlIG9lIl0s
WyIzNTMiLCJzIC0gY2Fyb24iXSxbIjI0OSIsInUgLSBncmF2ZSJdLFsiMjUwIiwidSAtIGFjdXRl
Il0sWyIyNTEiLCJ1IC0gY2lyY3VtZmxleCJdLFsiMjUyIiwidSAtIGRpYWVyZXNpcyJdLFsiMjUz
IiwieSAtIGFjdXRlIl0sWyIyNTQiLCJ0aG9ybiJdLFsiMjU1IiwieSAtIGRpYWVyZXNpcyJdLFsi
OTEzIiwiQWxwaGEiXSxbIjkxNCIsIkJldGEiXSxbIjkxNSIsIkdhbW1hIl0sWyI5MTYiLCJEZWx0
YSJdLFsiOTE3IiwiRXBzaWxvbiJdLFsiOTE4IiwiWmV0YSJdLFsiOTE5IiwiRXRhIl0sWyI5MjAi
LCJUaGV0YSJdLFsiOTIxIiwiSW90YSJdLFsiOTIyIiwiS2FwcGEiXSxbIjkyMyIsIkxhbWJkYSJd
LFsiOTI0IiwiTXUiXSxbIjkyNSIsIk51Il0sWyI5MjYiLCJYaSJdLFsiOTI3IiwiT21pY3JvbiJd
LFsiOTI4IiwiUGkiXSxbIjkyOSIsIlJobyJdLFsiOTMxIiwiU2lnbWEiXSxbIjkzMiIsIlRhdSJd
LFsiOTMzIiwiVXBzaWxvbiJdLFsiOTM0IiwiUGhpIl0sWyI5MzUiLCJDaGkiXSxbIjkzNiIsIlBz
aSJdLFsiOTM3IiwiT21lZ2EiXSxbIjk0NSIsImFscGhhIl0sWyI5NDYiLCJiZXRhIl0sWyI5NDci
LCJnYW1tYSJdLFsiOTQ4IiwiZGVsdGEiXSxbIjk0OSIsImVwc2lsb24iXSxbIjk1MCIsInpldGEi
XSxbIjk1MSIsImV0YSJdLFsiOTUyIiwidGhldGEiXSxbIjk1MyIsImlvdGEiXSxbIjk1NCIsImth
cHBhIl0sWyI5NTUiLCJsYW1iZGEiXSxbIjk1NiIsIm11Il0sWyI5NTciLCJudSJdLFsiOTU4Iiwi
eGkiXSxbIjk1OSIsIm9taWNyb24iXSxbIjk2MCIsInBpIl0sWyI5NjEiLCJyaG8iXSxbIjk2MiIs
ImZpbmFsIHNpZ21hIl0sWyI5NjMiLCJzaWdtYSJdLFsiOTY0IiwidGF1Il0sWyI5NjUiLCJ1cHNp
bG9uIl0sWyI5NjYiLCJwaGkiXSxbIjk2NyIsImNoaSJdLFsiOTY4IiwicHNpIl0sWyI5NjkiLCJv
bWVnYSJdLFsiODUwMSIsImFsZWYgc3ltYm9sIl0sWyI5ODIiLCJwaSBzeW1ib2wiXSxbIjg0NzYi
LCJyZWFsIHBhcnQgc3ltYm9sIl0sWyI5NzgiLCJ1cHNpbG9uIC0gaG9vayBzeW1ib2wiXSxbIjg0
NzIiLCJXZWllcnN0cmFzcyBwIl0sWyI4NDY1IiwiaW1hZ2luYXJ5IHBhcnQiXSxbIjg1OTIiLCJs
ZWZ0d2FyZHMgYXJyb3ciXSxbIjg1OTMiLCJ1cHdhcmRzIGFycm93Il0sWyI4NTk0IiwicmlnaHR3
YXJkcyBhcnJvdyJdLFsiODU5NSIsImRvd253YXJkcyBhcnJvdyJdLFsiODU5NiIsImxlZnQgcmln
aHQgYXJyb3ciXSxbIjg2MjkiLCJjYXJyaWFnZSByZXR1cm4iXSxbIjg2NTYiLCJsZWZ0d2FyZHMg
ZG91YmxlIGFycm93Il0sWyI4NjU3IiwidXB3YXJkcyBkb3VibGUgYXJyb3ciXSxbIjg2NTgiLCJy
aWdodHdhcmRzIGRvdWJsZSBhcnJvdyJdLFsiODY1OSIsImRvd253YXJkcyBkb3VibGUgYXJyb3ci
XSxbIjg2NjAiLCJsZWZ0IHJpZ2h0IGRvdWJsZSBhcnJvdyJdLFsiODc1NiIsInRoZXJlZm9yZSJd
LFsiODgzNCIsInN1YnNldCBvZiJdLFsiODgzNSIsInN1cGVyc2V0IG9mIl0sWyI4ODM2Iiwibm90
IGEgc3Vic2V0IG9mIl0sWyI4ODM4Iiwic3Vic2V0IG9mIG9yIGVxdWFsIHRvIl0sWyI4ODM5Iiwi
c3VwZXJzZXQgb2Ygb3IgZXF1YWwgdG8iXSxbIjg4NTMiLCJjaXJjbGVkIHBsdXMiXSxbIjg4NTUi
LCJjaXJjbGVkIHRpbWVzIl0sWyI4ODY5IiwicGVycGVuZGljdWxhciJdLFsiODkwMSIsImRvdCBv
cGVyYXRvciJdLFsiODk2OCIsImxlZnQgY2VpbGluZyJdLFsiODk2OSIsInJpZ2h0IGNlaWxpbmci
XSxbIjg5NzAiLCJsZWZ0IGZsb29yIl0sWyI4OTcxIiwicmlnaHQgZmxvb3IiXSxbIjkwMDEiLCJs
ZWZ0LXBvaW50aW5nIGFuZ2xlIGJyYWNrZXQiXSxbIjkwMDIiLCJyaWdodC1wb2ludGluZyBhbmds
ZSBicmFja2V0Il0sWyI5Njc0IiwibG96ZW5nZSJdLFsiOTgyNCIsImJsYWNrIHNwYWRlIHN1aXQi
XSxbIjk4MjciLCJibGFjayBjbHViIHN1aXQiXSxbIjk4MjkiLCJibGFjayBoZWFydCBzdWl0Il0s
WyI5ODMwIiwiYmxhY2sgZGlhbW9uZCBzdWl0Il0sWyI4MTk0IiwiZW4gc3BhY2UiXSxbIjgxOTUi
LCJlbSBzcGFjZSJdLFsiODIwMSIsInRoaW4gc3BhY2UiXSxbIjgyMDQiLCJ6ZXJvIHdpZHRoIG5v
bi1qb2luZXIiXSxbIjgyMDUiLCJ6ZXJvIHdpZHRoIGpvaW5lciJdLFsiODIwNiIsImxlZnQtdG8t
cmlnaHQgbWFyayJdLFsiODIwNyIsInJpZ2h0LXRvLWxlZnQgbWFyayJdLFsiMTczIiwic29mdCBo
eXBoZW4iXV07ZS5hZGRCdXR0b24oImNoYXJtYXAiLHtpY29uOiJjaGFybWFwIix0b29sdGlwOiJT
cGVjaWFsIGNoYXJhY3RlciIsb25jbGljazphfSksZS5hZGRNZW51SXRlbSgiY2hhcm1hcCIse2lj
b246ImNoYXJtYXAiLHRleHQ6IlNwZWNpYWwgY2hhcmFjdGVyIixvbmNsaWNrOmEsY29udGV4dDoi
aW5zZXJ0In0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiY29kZSIsZnVuY3Rpb24oZSl7
ZnVuY3Rpb24gbygpe2Uud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiU291cmNlIGNvZGUiLGJv
ZHk6e3R5cGU6InRleHRib3giLG5hbWU6ImNvZGUiLG11bHRpbGluZTohMCxtaW5XaWR0aDplLmdl
dFBhcmFtKCJjb2RlX2RpYWxvZ193aWR0aCIsNjAwKSxtaW5IZWlnaHQ6ZS5nZXRQYXJhbSgiY29k
ZV9kaWFsb2dfaGVpZ2h0IixNYXRoLm1pbih0aW55bWNlLkRPTS5nZXRWaWV3UG9ydCgpLmgtMjAw
LDUwMCkpLHZhbHVlOmUuZ2V0Q29udGVudCh7c291cmNlX3ZpZXc6ITB9KSxzcGVsbGNoZWNrOiEx
LHN0eWxlOiJkaXJlY3Rpb246IGx0cjsgdGV4dC1hbGlnbjogbGVmdCJ9LG9uU3VibWl0OmZ1bmN0
aW9uKG8pe2UuZm9jdXMoKSxlLnVuZG9NYW5hZ2VyLnRyYW5zYWN0KGZ1bmN0aW9uKCl7ZS5zZXRD
b250ZW50KG8uZGF0YS5jb2RlKX0pLGUuc2VsZWN0aW9uLnNldEN1cnNvckxvY2F0aW9uKCksZS5u
b2RlQ2hhbmdlZCgpfX0pfWUuYWRkQ29tbWFuZCgibWNlQ29kZUVkaXRvciIsbyksZS5hZGRCdXR0
b24oImNvZGUiLHtpY29uOiJjb2RlIix0b29sdGlwOiJTb3VyY2UgY29kZSIsb25jbGljazpvfSks
ZS5hZGRNZW51SXRlbSgiY29kZSIse2ljb246ImNvZGUiLHRleHQ6IlNvdXJjZSBjb2RlIixjb250
ZXh0OiJ0b29scyIsb25jbGljazpvfSl9KTt0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJjb250
ZXh0bWVudSIsZnVuY3Rpb24oZSl7dmFyIG4sdD1lLnNldHRpbmdzLmNvbnRleHRtZW51X25ldmVy
X3VzZV9uYXRpdmU7ZS5vbigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKGkpe3ZhciBvO2lmKCFpLmN0
cmxLZXl8fHQpe2lmKGkucHJldmVudERlZmF1bHQoKSxvPWUuc2V0dGluZ3MuY29udGV4dG1lbnV8
fCJsaW5rIGltYWdlIGluc2VydHRhYmxlIHwgY2VsbCByb3cgY29sdW1uIGRlbGV0ZXRhYmxlIixu
KW4uc2hvdygpO2Vsc2V7dmFyIGM9W107dGlueW1jZS5lYWNoKG8uc3BsaXQoL1sgLF0vKSxmdW5j
dGlvbihuKXt2YXIgdD1lLm1lbnVJdGVtc1tuXTsifCI9PW4mJih0PXt0ZXh0Om59KSx0JiYodC5z
aG9ydGN1dD0iIixjLnB1c2godCkpfSk7Zm9yKHZhciBhPTA7YTxjLmxlbmd0aDthKyspInwiPT1j
W2FdLnRleHQmJigwPT09YXx8YT09Yy5sZW5ndGgtMSkmJmMuc3BsaWNlKGEsMSk7bj1uZXcgdGlu
eW1jZS51aS5NZW51KHtpdGVtczpjLGNvbnRleHQ6ImNvbnRleHRtZW51In0pLmFkZENsYXNzKCJj
b250ZXh0bWVudSIpLnJlbmRlclRvKCksZS5vbigicmVtb3ZlIixmdW5jdGlvbigpe24ucmVtb3Zl
KCksbj1udWxsfSl9dmFyIGw9e3g6aS5wYWdlWCx5OmkucGFnZVl9O2UuaW5saW5lfHwobD10aW55
bWNlLkRPTS5nZXRQb3MoZS5nZXRDb250ZW50QXJlYUNvbnRhaW5lcigpKSxsLngrPWkuY2xpZW50
WCxsLnkrPWkuY2xpZW50WSksbi5tb3ZlVG8obC54LGwueSl9fSl9KTt0aW55bWNlLlBsdWdpbk1h
bmFnZXIuYWRkKCJkaXJlY3Rpb25hbGl0eSIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIg
aSxuPXQuZG9tLHI9dC5zZWxlY3Rpb24uZ2V0U2VsZWN0ZWRCbG9ja3MoKTtyLmxlbmd0aCYmKGk9
bi5nZXRBdHRyaWIoclswXSwiZGlyIiksdGlueW1jZS5lYWNoKHIsZnVuY3Rpb24odCl7bi5nZXRQ
YXJlbnQodC5wYXJlbnROb2RlLCIqW2Rpcj0nIitlKyInXSIsbi5nZXRSb290KCkpfHwoaSE9ZT9u
LnNldEF0dHJpYih0LCJkaXIiLGUpOm4uc2V0QXR0cmliKHQsImRpciIsbnVsbCkpfSksdC5ub2Rl
Q2hhbmdlZCgpKX1mdW5jdGlvbiBpKHQpe3ZhciBlPVtdO3JldHVybiB0aW55bWNlLmVhY2goImgx
IGgyIGgzIGg0IGg1IGg2IGRpdiBwIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGkpe2UucHVzaChpKyJb
ZGlyPSIrdCsiXSIpfSksZS5qb2luKCIsIil9dC5hZGRDb21tYW5kKCJtY2VEaXJlY3Rpb25MVFIi
LGZ1bmN0aW9uKCl7ZSgibHRyIil9KSx0LmFkZENvbW1hbmQoIm1jZURpcmVjdGlvblJUTCIsZnVu
Y3Rpb24oKXtlKCJydGwiKX0pLHQuYWRkQnV0dG9uKCJsdHIiLHt0aXRsZToiTGVmdCB0byByaWdo
dCIsY21kOiJtY2VEaXJlY3Rpb25MVFIiLHN0YXRlU2VsZWN0b3I6aSgibHRyIil9KSx0LmFkZEJ1
dHRvbigicnRsIix7dGl0bGU6IlJpZ2h0IHRvIGxlZnQiLGNtZDoibWNlRGlyZWN0aW9uUlRMIixz
dGF0ZVNlbGVjdG9yOmkoInJ0bCIpfSl9KTt0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJlbW90
aWNvbnMiLGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gYSgpe3ZhciB0O3JldHVybiB0PSc8dGFibGUg
cm9sZT0ibGlzdCIgY2xhc3M9Im1jZS1ncmlkIj4nLHRpbnltY2UuZWFjaChpLGZ1bmN0aW9uKGEp
e3QrPSI8dHI+Iix0aW55bWNlLmVhY2goYSxmdW5jdGlvbihhKXt2YXIgaT1lKyIvaW1nL3NtaWxl
eS0iK2ErIi5naWYiO3QrPSc8dGQ+PGEgaHJlZj0iIyIgZGF0YS1tY2UtdXJsPSInK2krJyIgZGF0
YS1tY2UtYWx0PSInK2ErJyIgdGFiaW5kZXg9Ii0xIiByb2xlPSJvcHRpb24iIGFyaWEtbGFiZWw9
IicrYSsnIj48aW1nIHNyYz0iJytpKyciIHN0eWxlPSJ3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4
IiByb2xlPSJwcmVzZW50YXRpb24iIC8+PC9hPjwvdGQ+J30pLHQrPSI8L3RyPiJ9KSx0Kz0iPC90
YWJsZT4ifXZhciBpPVtbImNvb2wiLCJjcnkiLCJlbWJhcmFzc2VkIiwiZm9vdC1pbi1tb3V0aCJd
LFsiZnJvd24iLCJpbm5vY2VudCIsImtpc3MiLCJsYXVnaGluZyJdLFsibW9uZXktbW91dGgiLCJz
ZWFsZWQiLCJzbWlsZSIsInN1cnByaXNlZCJdLFsidG9uZ3VlLW91dCIsInVuZGVjaWRlZCIsIndp
bmsiLCJ5ZWxsIl1dO3QuYWRkQnV0dG9uKCJlbW90aWNvbnMiLHt0eXBlOiJwYW5lbGJ1dHRvbiIs
cGFuZWw6e3JvbGU6ImFwcGxpY2F0aW9uIixhdXRvaGlkZTohMCxodG1sOmEsb25jbGljazpmdW5j
dGlvbihlKXt2YXIgYT10LmRvbS5nZXRQYXJlbnQoZS50YXJnZXQsImEiKTthJiYodC5pbnNlcnRD
b250ZW50KCc8aW1nIHNyYz0iJythLmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtdXJsIikrJyIgYWx0
PSInK2EuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1hbHQiKSsnIiAvPicpLHRoaXMuaGlkZSgpKX19
LHRvb2x0aXA6IkVtb3RpY29ucyJ9KX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoImZ1bGxw
YWdlIixmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIHQ9bigpO2Uud2luZG93TWFuYWdlci5v
cGVuKHt0aXRsZToiRG9jdW1lbnQgcHJvcGVydGllcyIsZGF0YTp0LGRlZmF1bHRzOnt0eXBlOiJ0
ZXh0Ym94IixzaXplOjQwfSxib2R5Olt7bmFtZToidGl0bGUiLGxhYmVsOiJUaXRsZSJ9LHtuYW1l
OiJrZXl3b3JkcyIsbGFiZWw6IktleXdvcmRzIn0se25hbWU6ImRlc2NyaXB0aW9uIixsYWJlbDoi
RGVzY3JpcHRpb24ifSx7bmFtZToicm9ib3RzIixsYWJlbDoiUm9ib3RzIn0se25hbWU6ImF1dGhv
ciIsbGFiZWw6IkF1dGhvciJ9LHtuYW1lOiJkb2NlbmNvZGluZyIsbGFiZWw6IkVuY29kaW5nIn1d
LG9uU3VibWl0OmZ1bmN0aW9uKGUpe2wodGlueW1jZS5leHRlbmQodCxlLmRhdGEpKX19KX1mdW5j
dGlvbiBuKCl7ZnVuY3Rpb24gdChlLHQpe3ZhciBuPWUuYXR0cih0KTtyZXR1cm4gbnx8IiJ9dmFy
IG4sbCxhPWkoKSxyPXt9O3JldHVybiByLmZvbnRmYWNlPWUuZ2V0UGFyYW0oImZ1bGxwYWdlX2Rl
ZmF1bHRfZm9udGZhY2UiLCIiKSxyLmZvbnRzaXplPWUuZ2V0UGFyYW0oImZ1bGxwYWdlX2RlZmF1
bHRfZm9udHNpemUiLCIiKSxuPWEuZmlyc3RDaGlsZCw3PT1uLnR5cGUmJihyLnhtbF9waT0hMCxs
PS9lbmNvZGluZz0iKFteIl0rKSIvLmV4ZWMobi52YWx1ZSksbCYmKHIuZG9jZW5jb2Rpbmc9bFsx
XSkpLG49YS5nZXRBbGwoIiNkb2N0eXBlIilbMF0sbiYmKHIuZG9jdHlwZT0iPCFET0NUWVBFIitu
LnZhbHVlKyI+Iiksbj1hLmdldEFsbCgidGl0bGUiKVswXSxuJiZuLmZpcnN0Q2hpbGQmJihyLnRp
dGxlPW4uZmlyc3RDaGlsZC52YWx1ZSkscyhhLmdldEFsbCgibWV0YSIpLGZ1bmN0aW9uKGUpe3Zh
ciB0LG49ZS5hdHRyKCJuYW1lIiksbD1lLmF0dHIoImh0dHAtZXF1aXYiKTtuP3Jbbi50b0xvd2Vy
Q2FzZSgpXT1lLmF0dHIoImNvbnRlbnQiKToiQ29udGVudC1UeXBlIj09bCYmKHQ9L2NoYXJzZXRc
cyo9XHMqKC4qKVxzKi9naS5leGVjKGUuYXR0cigiY29udGVudCIpKSx0JiYoci5kb2NlbmNvZGlu
Zz10WzFdKSl9KSxuPWEuZ2V0QWxsKCJodG1sIilbMF0sbiYmKHIubGFuZ2NvZGU9dChuLCJsYW5n
Iil8fHQobiwieG1sOmxhbmciKSksci5zdHlsZXNoZWV0cz1bXSx0aW55bWNlLmVhY2goYS5nZXRB
bGwoImxpbmsiKSxmdW5jdGlvbihlKXsic3R5bGVzaGVldCI9PWUuYXR0cigicmVsIikmJnIuc3R5
bGVzaGVldHMucHVzaChlLmF0dHIoImhyZWYiKSl9KSxuPWEuZ2V0QWxsKCJib2R5IilbMF0sbiYm
KHIubGFuZ2Rpcj10KG4sImRpciIpLHIuc3R5bGU9dChuLCJzdHlsZSIpLHIudmlzaXRlZF9jb2xv
cj10KG4sInZsaW5rIiksci5saW5rX2NvbG9yPXQobiwibGluayIpLHIuYWN0aXZlX2NvbG9yPXQo
biwiYWxpbmsiKSkscn1mdW5jdGlvbiBsKHQpe2Z1bmN0aW9uIG4oZSx0LG4pe2UuYXR0cih0LG4/
bjp2b2lkIDApfWZ1bmN0aW9uIGwoZSl7ci5maXJzdENoaWxkP3IuaW5zZXJ0KGUsci5maXJzdENo
aWxkKTpyLmFwcGVuZChlKX12YXIgYSxyLG8sYyx1LGY9ZS5kb207YT1pKCkscj1hLmdldEFsbCgi
aGVhZCIpWzBdLHJ8fChjPWEuZ2V0QWxsKCJodG1sIilbMF0scj1uZXcgbSgiaGVhZCIsMSksYy5m
aXJzdENoaWxkP2MuaW5zZXJ0KHIsYy5maXJzdENoaWxkLCEwKTpjLmFwcGVuZChyKSksYz1hLmZp
cnN0Q2hpbGQsdC54bWxfcGk/KHU9J3ZlcnNpb249IjEuMCInLHQuZG9jZW5jb2RpbmcmJih1Kz0n
IGVuY29kaW5nPSInK3QuZG9jZW5jb2RpbmcrJyInKSw3IT1jLnR5cGUmJihjPW5ldyBtKCJ4bWwi
LDcpLGEuaW5zZXJ0KGMsYS5maXJzdENoaWxkLCEwKSksYy52YWx1ZT11KTpjJiY3PT1jLnR5cGUm
JmMucmVtb3ZlKCksYz1hLmdldEFsbCgiI2RvY3R5cGUiKVswXSx0LmRvY3R5cGU/KGN8fChjPW5l
dyBtKCIjZG9jdHlwZSIsMTApLHQueG1sX3BpP2EuaW5zZXJ0KGMsYS5maXJzdENoaWxkKTpsKGMp
KSxjLnZhbHVlPXQuZG9jdHlwZS5zdWJzdHJpbmcoOSx0LmRvY3R5cGUubGVuZ3RoLTEpKTpjJiZj
LnJlbW92ZSgpLGM9bnVsbCxzKGEuZ2V0QWxsKCJtZXRhIiksZnVuY3Rpb24oZSl7IkNvbnRlbnQt
VHlwZSI9PWUuYXR0cigiaHR0cC1lcXVpdiIpJiYoYz1lKX0pLHQuZG9jZW5jb2Rpbmc/KGN8fChj
PW5ldyBtKCJtZXRhIiwxKSxjLmF0dHIoImh0dHAtZXF1aXYiLCJDb250ZW50LVR5cGUiKSxjLnNo
b3J0RW5kZWQ9ITAsbChjKSksYy5hdHRyKCJjb250ZW50IiwidGV4dC9odG1sOyBjaGFyc2V0PSIr
dC5kb2NlbmNvZGluZykpOmMucmVtb3ZlKCksYz1hLmdldEFsbCgidGl0bGUiKVswXSx0LnRpdGxl
PyhjP2MuZW1wdHkoKTooYz1uZXcgbSgidGl0bGUiLDEpLGwoYykpLGMuYXBwZW5kKG5ldyBtKCIj
dGV4dCIsMykpLnZhbHVlPXQudGl0bGUpOmMmJmMucmVtb3ZlKCkscygia2V5d29yZHMsZGVzY3Jp
cHRpb24sYXV0aG9yLGNvcHlyaWdodCxyb2JvdHMiLnNwbGl0KCIsIiksZnVuY3Rpb24oZSl7dmFy
IG4saSxyPWEuZ2V0QWxsKCJtZXRhIiksbz10W2VdO2ZvcihuPTA7bjxyLmxlbmd0aDtuKyspaWYo
aT1yW25dLGkuYXR0cigibmFtZSIpPT1lKXJldHVybiB2b2lkKG8/aS5hdHRyKCJjb250ZW50Iixv
KTppLnJlbW92ZSgpKTtvJiYoYz1uZXcgbSgibWV0YSIsMSksYy5hdHRyKCJuYW1lIixlKSxjLmF0
dHIoImNvbnRlbnQiLG8pLGMuc2hvcnRFbmRlZD0hMCxsKGMpKX0pO3ZhciBnPXt9O3RpbnltY2Uu
ZWFjaChhLmdldEFsbCgibGluayIpLGZ1bmN0aW9uKGUpeyJzdHlsZXNoZWV0Ij09ZS5hdHRyKCJy
ZWwiKSYmKGdbZS5hdHRyKCJocmVmIildPWUpfSksdGlueW1jZS5lYWNoKHQuc3R5bGVzaGVldHMs
ZnVuY3Rpb24oZSl7Z1tlXXx8KGM9bmV3IG0oImxpbmsiLDEpLGMuYXR0cih7cmVsOiJzdHlsZXNo
ZWV0Iix0ZXh0OiJ0ZXh0L2NzcyIsaHJlZjplfSksYy5zaG9ydEVuZGVkPSEwLGwoYykpLGRlbGV0
ZSBnW2VdfSksdGlueW1jZS5lYWNoKGcsZnVuY3Rpb24oZSl7ZS5yZW1vdmUoKX0pLGM9YS5nZXRB
bGwoImJvZHkiKVswXSxjJiYobihjLCJkaXIiLHQubGFuZ2RpciksbihjLCJzdHlsZSIsdC5zdHls
ZSksbihjLCJ2bGluayIsdC52aXNpdGVkX2NvbG9yKSxuKGMsImxpbmsiLHQubGlua19jb2xvciks
bihjLCJhbGluayIsdC5hY3RpdmVfY29sb3IpLGYuc2V0QXR0cmlicyhlLmdldEJvZHkoKSx7c3R5
bGU6dC5zdHlsZSxkaXI6dC5kaXIsdkxpbms6dC52aXNpdGVkX2NvbG9yLGxpbms6dC5saW5rX2Nv
bG9yLGFMaW5rOnQuYWN0aXZlX2NvbG9yfSkpLGM9YS5nZXRBbGwoImh0bWwiKVswXSxjJiYobihj
LCJsYW5nIix0Lmxhbmdjb2RlKSxuKGMsInhtbDpsYW5nIix0Lmxhbmdjb2RlKSksci5maXJzdENo
aWxkfHxyLnJlbW92ZSgpLG89bmV3IHRpbnltY2UuaHRtbC5TZXJpYWxpemVyKHt2YWxpZGF0ZToh
MSxpbmRlbnQ6ITAsYXBwbHlfc291cmNlX2Zvcm1hdHRpbmc6ITAsaW5kZW50X2JlZm9yZToiaGVh
ZCxodG1sLGJvZHksbWV0YSx0aXRsZSxzY3JpcHQsbGluayxzdHlsZSIsaW5kZW50X2FmdGVyOiJo
ZWFkLGh0bWwsYm9keSxtZXRhLHRpdGxlLHNjcmlwdCxsaW5rLHN0eWxlIn0pLnNlcmlhbGl6ZShh
KSxkPW8uc3Vic3RyaW5nKDAsby5pbmRleE9mKCI8L2JvZHk+IikpfWZ1bmN0aW9uIGkoKXtyZXR1
cm4gbmV3IHRpbnltY2UuaHRtbC5Eb21QYXJzZXIoe3ZhbGlkYXRlOiExLHJvb3RfbmFtZToiI2Rv
Y3VtZW50In0pLnBhcnNlKGQpfWZ1bmN0aW9uIGEodCl7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZS5y
ZXBsYWNlKC88XC8/W0EtWl0rL2csZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX0p
fXZhciBsLGEsbyxtLHU9dC5jb250ZW50LGY9IiIsZz1lLmRvbTtpZighdC5zZWxlY3Rpb24mJiEo
InJhdyI9PXQuZm9ybWF0JiZkfHx0LnNvdXJjZV92aWV3JiZlLmdldFBhcmFtKCJmdWxscGFnZV9o
aWRlX2luX3NvdXJjZV92aWV3IikpKXt1PXUucmVwbGFjZSgvPChcLz8pQk9EWS9naSwiPCQxYm9k
eSIpLGw9dS5pbmRleE9mKCI8Ym9keSIpLC0xIT1sPyhsPXUuaW5kZXhPZigiPiIsbCksZD1uKHUu
c3Vic3RyaW5nKDAsbCsxKSksYT11LmluZGV4T2YoIjwvYm9keSIsbCksLTE9PWEmJihhPXUubGVu
Z3RoKSx0LmNvbnRlbnQ9dS5zdWJzdHJpbmcobCsxLGEpLGM9bih1LnN1YnN0cmluZyhhKSkpOihk
PXIoKSxjPSJcbjwvYm9keT5cbjwvaHRtbD4iKSxvPWkoKSxzKG8uZ2V0QWxsKCJzdHlsZSIpLGZ1
bmN0aW9uKGUpe2UuZmlyc3RDaGlsZCYmKGYrPWUuZmlyc3RDaGlsZC52YWx1ZSl9KSxtPW8uZ2V0
QWxsKCJib2R5IilbMF0sbSYmZy5zZXRBdHRyaWJzKGUuZ2V0Qm9keSgpLHtzdHlsZTptLmF0dHIo
InN0eWxlIil8fCIiLGRpcjptLmF0dHIoImRpciIpfHwiIix2TGluazptLmF0dHIoInZsaW5rIil8
fCIiLGxpbms6bS5hdHRyKCJsaW5rIil8fCIiLGFMaW5rOm0uYXR0cigiYWxpbmsiKXx8IiJ9KSxn
LnJlbW92ZSgiZnVsbHBhZ2Vfc3R5bGVzIik7dmFyIHk9ZS5nZXREb2MoKS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiaGVhZCIpWzBdO2YmJihnLmFkZCh5LCJzdHlsZSIse2lkOiJmdWxscGFnZV9zdHls
ZXMifSxmKSxtPWcuZ2V0KCJmdWxscGFnZV9zdHlsZXMiKSxtLnN0eWxlU2hlZXQmJihtLnN0eWxl
U2hlZXQuY3NzVGV4dD1mKSk7dmFyIGg9e307dGlueW1jZS5lYWNoKHkuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImxpbmsiKSxmdW5jdGlvbihlKXsic3R5bGVzaGVldCI9PWUucmVsJiZlLmdldEF0dHJp
YnV0ZSgiZGF0YS1tY2UtZnVsbHBhZ2UiKSYmKGhbZS5ocmVmXT1lKX0pLHRpbnltY2UuZWFjaChv
LmdldEFsbCgibGluayIpLGZ1bmN0aW9uKGUpe3ZhciB0PWUuYXR0cigiaHJlZiIpO2hbdF18fCJz
dHlsZXNoZWV0IiE9ZS5hdHRyKCJyZWwiKXx8Zy5hZGQoeSwibGluayIse3JlbDoic3R5bGVzaGVl
dCIsdGV4dDoidGV4dC9jc3MiLGhyZWY6dCwiZGF0YS1tY2UtZnVsbHBhZ2UiOiIxIn0pLGRlbGV0
ZSBoW3RdfSksdGlueW1jZS5lYWNoKGgsZnVuY3Rpb24oZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGUpfSl9fWZ1bmN0aW9uIHIoKXt2YXIgdCxuPSIiLGw9IiI7cmV0dXJuIGUuZ2V0UGFyYW0o
ImZ1bGxwYWdlX2RlZmF1bHRfeG1sX3BpIikmJihuKz0nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iJytlLmdldFBhcmFtKCJmdWxscGFnZV9kZWZhdWx0X2VuY29kaW5nIiwiSVNPLTg4NTkt
MSIpKyciID8+XG4nKSxuKz1lLmdldFBhcmFtKCJmdWxscGFnZV9kZWZhdWx0X2RvY3R5cGUiLCI8
IURPQ1RZUEUgaHRtbD4iKSxuKz0iXG48aHRtbD5cbjxoZWFkPlxuIiwodD1lLmdldFBhcmFtKCJm
dWxscGFnZV9kZWZhdWx0X3RpdGxlIikpJiYobis9Ijx0aXRsZT4iK3QrIjwvdGl0bGU+XG4iKSwo
dD1lLmdldFBhcmFtKCJmdWxscGFnZV9kZWZhdWx0X2VuY29kaW5nIikpJiYobis9JzxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PScrdCsn
IiAvPlxuJyksKHQ9ZS5nZXRQYXJhbSgiZnVsbHBhZ2VfZGVmYXVsdF9mb250X2ZhbWlseSIpKSYm
KGwrPSJmb250LWZhbWlseTogIit0KyI7IiksKHQ9ZS5nZXRQYXJhbSgiZnVsbHBhZ2VfZGVmYXVs
dF9mb250X3NpemUiKSkmJihsKz0iZm9udC1zaXplOiAiK3QrIjsiKSwodD1lLmdldFBhcmFtKCJm
dWxscGFnZV9kZWZhdWx0X3RleHRfY29sb3IiKSkmJihsKz0iY29sb3I6ICIrdCsiOyIpLG4rPSI8
L2hlYWQ+XG48Ym9keSIrKGw/JyBzdHlsZT0iJytsKyciJzoiIikrIj5cbiJ9ZnVuY3Rpb24gbyh0
KXt0LnNlbGVjdGlvbnx8dC5zb3VyY2VfdmlldyYmZS5nZXRQYXJhbSgiZnVsbHBhZ2VfaGlkZV9p
bl9zb3VyY2VfdmlldyIpfHwodC5jb250ZW50PXRpbnltY2UudHJpbShkKSsiXG4iK3RpbnltY2Uu
dHJpbSh0LmNvbnRlbnQpKyJcbiIrdGlueW1jZS50cmltKGMpKX12YXIgZCxjLHM9dGlueW1jZS5l
YWNoLG09dGlueW1jZS5odG1sLk5vZGU7ZS5hZGRDb21tYW5kKCJtY2VGdWxsUGFnZVByb3BlcnRp
ZXMiLHQpLGUuYWRkQnV0dG9uKCJmdWxscGFnZSIse3RpdGxlOiJEb2N1bWVudCBwcm9wZXJ0aWVz
IixjbWQ6Im1jZUZ1bGxQYWdlUHJvcGVydGllcyJ9KSxlLmFkZE1lbnVJdGVtKCJmdWxscGFnZSIs
e3RleHQ6IkRvY3VtZW50IHByb3BlcnRpZXMiLGNtZDoibWNlRnVsbFBhZ2VQcm9wZXJ0aWVzIixj
b250ZXh0OiJmaWxlIn0pLGUub24oIkJlZm9yZVNldENvbnRlbnQiLGEpLGUub24oIkdldENvbnRl
bnQiLG8pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgiZnVsbHNjcmVlbiIsZnVuY3Rpb24o
ZSl7ZnVuY3Rpb24gdCgpe3ZhciBlLHQsbj13aW5kb3csaT1kb2N1bWVudCxsPWkuYm9keTtyZXR1
cm4gbC5vZmZzZXRXaWR0aCYmKGU9bC5vZmZzZXRXaWR0aCx0PWwub2Zmc2V0SGVpZ2h0KSxuLmlu
bmVyV2lkdGgmJm4uaW5uZXJIZWlnaHQmJihlPW4uaW5uZXJXaWR0aCx0PW4uaW5uZXJIZWlnaHQp
LHt3OmUsaDp0fX1mdW5jdGlvbiBuKCl7ZnVuY3Rpb24gbigpe2Quc2V0U3R5bGUoYSwiaGVpZ2h0
Iix0KCkuaC0oaC5jbGllbnRIZWlnaHQtYS5jbGllbnRIZWlnaHQpKX12YXIgdSxoLGEsZixtPWRv
Y3VtZW50LmJvZHksZz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cz0hcyxoPWUuZ2V0Q29udGFp
bmVyKCksdT1oLnN0eWxlLGE9ZS5nZXRDb250ZW50QXJlYUNvbnRhaW5lcigpLmZpcnN0Q2hpbGQs
Zj1hLnN0eWxlLHM/KGk9Zi53aWR0aCxsPWYuaGVpZ2h0LGYud2lkdGg9Zi5oZWlnaHQ9IjEwMCUi
LGM9dS53aWR0aCxvPXUuaGVpZ2h0LHUud2lkdGg9dS5oZWlnaHQ9IiIsZC5hZGRDbGFzcyhtLCJt
Y2UtZnVsbHNjcmVlbiIpLGQuYWRkQ2xhc3MoZywibWNlLWZ1bGxzY3JlZW4iKSxkLmFkZENsYXNz
KGgsIm1jZS1mdWxsc2NyZWVuIiksZC5iaW5kKHdpbmRvdywicmVzaXplIixuKSxuKCkscj1uKToo
Zi53aWR0aD1pLGYuaGVpZ2h0PWwsYyYmKHUud2lkdGg9YyksbyYmKHUuaGVpZ2h0PW8pLGQucmVt
b3ZlQ2xhc3MobSwibWNlLWZ1bGxzY3JlZW4iKSxkLnJlbW92ZUNsYXNzKGcsIm1jZS1mdWxsc2Ny
ZWVuIiksZC5yZW1vdmVDbGFzcyhoLCJtY2UtZnVsbHNjcmVlbiIpLGQudW5iaW5kKHdpbmRvdywi
cmVzaXplIixyKSksZS5maXJlKCJGdWxsc2NyZWVuU3RhdGVDaGFuZ2VkIix7c3RhdGU6c30pfXZh
ciBpLGwscixjLG8scz0hMSxkPXRpbnltY2UuRE9NO3JldHVybiBlLnNldHRpbmdzLmlubGluZT92
b2lkIDA6KGUub24oImluaXQiLGZ1bmN0aW9uKCl7ZS5hZGRTaG9ydGN1dCgiQ3RybCtBbHQrRiIs
IiIsbil9KSxlLm9uKCJyZW1vdmUiLGZ1bmN0aW9uKCl7ciYmZC51bmJpbmQod2luZG93LCJyZXNp
emUiLHIpfSksZS5hZGRDb21tYW5kKCJtY2VGdWxsU2NyZWVuIixuKSxlLmFkZE1lbnVJdGVtKCJm
dWxsc2NyZWVuIix7dGV4dDoiRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkN0cmwrQWx0K0YiLHNlbGVj
dGFibGU6ITAsb25DbGljazpuLG9uUG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ZS5v
bigiRnVsbHNjcmVlblN0YXRlQ2hhbmdlZCIsZnVuY3Rpb24oZSl7dC5hY3RpdmUoZS5zdGF0ZSl9
KX0sY29udGV4dDoidmlldyJ9KSxlLmFkZEJ1dHRvbigiZnVsbHNjcmVlbiIse3Rvb2x0aXA6IkZ1
bGxzY3JlZW4iLHNob3J0Y3V0OiJDdHJsK0FsdCtGIixvbkNsaWNrOm4sb25Qb3N0UmVuZGVyOmZ1
bmN0aW9uKCl7dmFyIHQ9dGhpcztlLm9uKCJGdWxsc2NyZWVuU3RhdGVDaGFuZ2VkIixmdW5jdGlv
bihlKXt0LmFjdGl2ZShlLnN0YXRlKX0pfX0pLHtpc0Z1bGxzY3JlZW46ZnVuY3Rpb24oKXtyZXR1
cm4gc319KX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoImhyIixmdW5jdGlvbihuKXtuLmFk
ZENvbW1hbmQoIkluc2VydEhvcml6b250YWxSdWxlIixmdW5jdGlvbigpe24uZXhlY0NvbW1hbmQo
Im1jZUluc2VydENvbnRlbnQiLCExLCI8aHIgLz4iKX0pLG4uYWRkQnV0dG9uKCJociIse2ljb246
ImhyIix0b29sdGlwOiJIb3Jpem9udGFsIGxpbmUiLGNtZDoiSW5zZXJ0SG9yaXpvbnRhbFJ1bGUi
fSksbi5hZGRNZW51SXRlbSgiaHIiLHtpY29uOiJociIsdGV4dDoiSG9yaXpvbnRhbCBsaW5lIixj
bWQ6Ikluc2VydEhvcml6b250YWxSdWxlIixjb250ZXh0OiJpbnNlcnQifSl9KTt0aW55bWNlLlBs
dWdpbk1hbmFnZXIuYWRkKCJpbWFnZSIsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlLHQpe2Z1bmN0
aW9uIGkoZSxpKXtuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSx0KHt3
aWR0aDplLGhlaWdodDppfSl9dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7bi5v
bmxvYWQ9ZnVuY3Rpb24oKXtpKG4uY2xpZW50V2lkdGgsbi5jbGllbnRIZWlnaHQpfSxuLm9uZXJy
b3I9ZnVuY3Rpb24oKXtpKCl9O3ZhciBhPW4uc3R5bGU7YS52aXNpYmlsaXR5PSJoaWRkZW4iLGEu
cG9zaXRpb249ImZpeGVkIixhLmJvdHRvbT1hLmxlZnQ9MCxhLndpZHRoPWEuaGVpZ2h0PSJhdXRv
Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLG4uc3JjPWV9ZnVuY3Rpb24gaSh0KXtyZXR1
cm4gdGlueW1jZS5lYWNoKHQsZnVuY3Rpb24odCl7dC50ZXh0U3R5bGU9ZnVuY3Rpb24oKXtyZXR1
cm4gZS5mb3JtYXR0ZXIuZ2V0Q3NzVGV4dCh7aW5saW5lOiJpbWciLGNsYXNzZXM6W3QudmFsdWVd
fSl9fSksdH1mdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWUuc2V0dGluZ3Mu
aW1hZ2VfbGlzdDsic3RyaW5nIj09dHlwZW9mIGk/dGlueW1jZS51dGlsLlhIUi5zZW5kKHt1cmw6
aSxzdWNjZXNzOmZ1bmN0aW9uKGUpe3QodGlueW1jZS51dGlsLkpTT04ucGFyc2UoZSkpfX0pOiJm
dW5jdGlvbiI9PXR5cGVvZiBpP2kodCk6dChpKX19ZnVuY3Rpb24gYShuKXtmdW5jdGlvbiBhKHQs
aSxuKXt2YXIgYSxsPVtdO3JldHVybiB0aW55bWNlLmVhY2goZS5zZXR0aW5nc1t0XXx8bixmdW5j
dGlvbihlKXt2YXIgdD17dGV4dDplLnRleHR8fGUudGl0bGUsdmFsdWU6ZS52YWx1ZX07bC5wdXNo
KHQpLChmW2ldPT09ZS52YWx1ZXx8IWEmJmUuc2VsZWN0ZWQpJiYoYT10KX0pLGEmJiFmW2ldJiYo
ZltpXT1hLnZhbHVlLGEuc2VsZWN0ZWQ9ITApLGx9ZnVuY3Rpb24gbCgpe3ZhciB0PVt7dGV4dDoi
Tm9uZSIsdmFsdWU6IiJ9XTtyZXR1cm4gdGlueW1jZS5lYWNoKG4sZnVuY3Rpb24oaSl7dC5wdXNo
KHt0ZXh0OmkudGV4dHx8aS50aXRsZSx2YWx1ZTplLmNvbnZlcnRVUkwoaS52YWx1ZXx8aS51cmws
InNyYyIpLG1lbnU6aS5tZW51fSl9KSx0fWZ1bmN0aW9uIG8oKXt2YXIgZSx0LGksbjtlPXUuZmlu
ZCgiI3dpZHRoIilbMF0sdD11LmZpbmQoIiNoZWlnaHQiKVswXSxpPWUudmFsdWUoKSxuPXQudmFs
dWUoKSx1LmZpbmQoIiNjb25zdHJhaW4iKVswXS5jaGVja2VkKCkmJmcmJmgmJmkmJm4mJihnIT1p
PyhuPU1hdGgucm91bmQoaS9nKm4pLHQudmFsdWUobikpOihpPU1hdGgucm91bmQobi9oKmkpLGUu
dmFsdWUoaSkpKSxnPWksaD1ufWZ1bmN0aW9uIHMoKXtmdW5jdGlvbiB0KHQpe2Z1bmN0aW9uIGko
KXt0Lm9ubG9hZD10Lm9uZXJyb3I9bnVsbCxlLnNlbGVjdGlvbi5zZWxlY3QodCksZS5ub2RlQ2hh
bmdlZCgpfXQub25sb2FkPWZ1bmN0aW9uKCl7Zi53aWR0aHx8Zi5oZWlnaHR8fHkuc2V0QXR0cmli
cyh0LHt3aWR0aDp0LmNsaWVudFdpZHRoLGhlaWdodDp0LmNsaWVudEhlaWdodH0pLGkoKX0sdC5v
bmVycm9yPWl9ZCgpLG8oKSxmPXRpbnltY2UuZXh0ZW5kKGYsdS50b0pTT04oKSksZi5hbHR8fChm
LmFsdD0iIiksIiI9PT1mLndpZHRoJiYoZi53aWR0aD1udWxsKSwiIj09PWYuaGVpZ2h0JiYoZi5o
ZWlnaHQ9bnVsbCksZi5zdHlsZXx8KGYuc3R5bGU9bnVsbCksZj17c3JjOmYuc3JjLGFsdDpmLmFs
dCx3aWR0aDpmLndpZHRoLGhlaWdodDpmLmhlaWdodCxzdHlsZTpmLnN0eWxlLCJjbGFzcyI6Zlsi
Y2xhc3MiXX0sZlsiY2xhc3MiXXx8ZGVsZXRlIGZbImNsYXNzIl0sZS51bmRvTWFuYWdlci50cmFu
c2FjdChmdW5jdGlvbigpe3JldHVybiBmLnNyYz8odj95LnNldEF0dHJpYnModixmKTooZi5pZD0i
X19tY2VuZXciLGUuZm9jdXMoKSxlLnNlbGVjdGlvbi5zZXRDb250ZW50KHkuY3JlYXRlSFRNTCgi
aW1nIixmKSksdj15LmdldCgiX19tY2VuZXciKSx5LnNldEF0dHJpYih2LCJpZCIsbnVsbCkpLHZv
aWQgdCh2KSk6dm9pZCh2JiYoeS5yZW1vdmUodiksZS5mb2N1cygpLGUubm9kZUNoYW5nZWQoKSkp
fSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSYmKGU9ZS5yZXBsYWNlKC9weCQvLCIiKSksZX1mdW5j
dGlvbiBjKCl7bSYmbS52YWx1ZShlLmNvbnZlcnRVUkwodGhpcy52YWx1ZSgpLCJzcmMiKSksdCh0
aGlzLnZhbHVlKCksZnVuY3Rpb24oZSl7ZS53aWR0aCYmZS5oZWlnaHQmJihnPWUud2lkdGgsaD1l
LmhlaWdodCx1LmZpbmQoIiN3aWR0aCIpLnZhbHVlKGcpLHUuZmluZCgiI2hlaWdodCIpLnZhbHVl
KGgpKX0pfWZ1bmN0aW9uIGQoKXtmdW5jdGlvbiB0KGUpe3JldHVybiBlLmxlbmd0aD4wJiYvXlsw
LTldKyQvLnRlc3QoZSkmJihlKz0icHgiKSxlfWlmKGUuc2V0dGluZ3MuaW1hZ2VfYWR2dGFiKXt2
YXIgaT11LnRvSlNPTigpLG49eS5wYXJzZVN0eWxlKGkuc3R5bGUpO2RlbGV0ZSBuLm1hcmdpbixu
WyJtYXJnaW4tdG9wIl09blsibWFyZ2luLWJvdHRvbSJdPXQoaS52c3BhY2UpLG5bIm1hcmdpbi1s
ZWZ0Il09blsibWFyZ2luLXJpZ2h0Il09dChpLmhzcGFjZSksblsiYm9yZGVyLXdpZHRoIl09dChp
LmJvcmRlciksdS5maW5kKCIjc3R5bGUiKS52YWx1ZSh5LnNlcmlhbGl6ZVN0eWxlKHkucGFyc2VT
dHlsZSh5LnNlcmlhbGl6ZVN0eWxlKG4pKSkpfX12YXIgdSxnLGgsbSxwLGY9e30seT1lLmRvbSx2
PWUuc2VsZWN0aW9uLmdldE5vZGUoKTtnPXkuZ2V0QXR0cmliKHYsIndpZHRoIiksaD15LmdldEF0
dHJpYih2LCJoZWlnaHQiKSwiSU1HIiE9di5ub2RlTmFtZXx8di5nZXRBdHRyaWJ1dGUoImRhdGEt
bWNlLW9iamVjdCIpfHx2LmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtcGxhY2Vob2xkZXIiKT92PW51
bGw6Zj17c3JjOnkuZ2V0QXR0cmliKHYsInNyYyIpLGFsdDp5LmdldEF0dHJpYih2LCJhbHQiKSwi
Y2xhc3MiOnkuZ2V0QXR0cmliKHYsImNsYXNzIiksd2lkdGg6ZyxoZWlnaHQ6aH0sbiYmKG09e3R5
cGU6Imxpc3Rib3giLGxhYmVsOiJJbWFnZSBsaXN0Iix2YWx1ZXM6bCgpLHZhbHVlOmYuc3JjJiZl
LmNvbnZlcnRVUkwoZi5zcmMsInNyYyIpLG9uc2VsZWN0OmZ1bmN0aW9uKGUpe3ZhciB0PXUuZmlu
ZCgiI2FsdCIpOyghdC52YWx1ZSgpfHxlLmxhc3RDb250cm9sJiZ0LnZhbHVlKCk9PWUubGFzdENv
bnRyb2wudGV4dCgpKSYmdC52YWx1ZShlLmNvbnRyb2wudGV4dCgpKSx1LmZpbmQoIiNzcmMiKS52
YWx1ZShlLmNvbnRyb2wudmFsdWUoKSl9LG9uUG9zdFJlbmRlcjpmdW5jdGlvbigpe209dGhpc319
KSxlLnNldHRpbmdzLmltYWdlX2NsYXNzX2xpc3QmJihwPXtuYW1lOiJjbGFzcyIsdHlwZToibGlz
dGJveCIsbGFiZWw6IkNsYXNzIix2YWx1ZXM6aShhKCJpbWFnZV9jbGFzc19saXN0IiwiY2xhc3Mi
KSl9KTt2YXIgYj1be25hbWU6InNyYyIsdHlwZToiZmlsZXBpY2tlciIsZmlsZXR5cGU6ImltYWdl
IixsYWJlbDoiU291cmNlIixhdXRvZm9jdXM6ITAsb25jaGFuZ2U6Y30sbV07ZS5zZXR0aW5ncy5p
bWFnZV9kZXNjcmlwdGlvbiE9PSExJiZiLnB1c2goe25hbWU6ImFsdCIsdHlwZToidGV4dGJveCIs
bGFiZWw6IkltYWdlIGRlc2NyaXB0aW9uIn0pLGUuc2V0dGluZ3MuaW1hZ2VfZGltZW5zaW9ucyE9
PSExJiZiLnB1c2goe3R5cGU6ImNvbnRhaW5lciIsbGFiZWw6IkRpbWVuc2lvbnMiLGxheW91dDoi
ZmxleCIsZGlyZWN0aW9uOiJyb3ciLGFsaWduOiJjZW50ZXIiLHNwYWNpbmc6NSxpdGVtczpbe25h
bWU6IndpZHRoIix0eXBlOiJ0ZXh0Ym94IixtYXhMZW5ndGg6NSxzaXplOjMsb25jaGFuZ2U6byxh
cmlhTGFiZWw6IldpZHRoIn0se3R5cGU6ImxhYmVsIix0ZXh0OiJ4In0se25hbWU6ImhlaWdodCIs
dHlwZToidGV4dGJveCIsbWF4TGVuZ3RoOjUsc2l6ZTozLG9uY2hhbmdlOm8sYXJpYUxhYmVsOiJI
ZWlnaHQifSx7bmFtZToiY29uc3RyYWluIix0eXBlOiJjaGVja2JveCIsY2hlY2tlZDohMCx0ZXh0
OiJDb25zdHJhaW4gcHJvcG9ydGlvbnMifV19KSxiLnB1c2gocCksZS5zZXR0aW5ncy5pbWFnZV9h
ZHZ0YWI/KHYmJihmLmhzcGFjZT1yKHYuc3R5bGUubWFyZ2luTGVmdHx8di5zdHlsZS5tYXJnaW5S
aWdodCksZi52c3BhY2U9cih2LnN0eWxlLm1hcmdpblRvcHx8di5zdHlsZS5tYXJnaW5Cb3R0b20p
LGYuYm9yZGVyPXIodi5zdHlsZS5ib3JkZXJXaWR0aCksZi5zdHlsZT1lLmRvbS5zZXJpYWxpemVT
dHlsZShlLmRvbS5wYXJzZVN0eWxlKGUuZG9tLmdldEF0dHJpYih2LCJzdHlsZSIpKSkpLHU9ZS53
aW5kb3dNYW5hZ2VyLm9wZW4oe3RpdGxlOiJJbnNlcnQvZWRpdCBpbWFnZSIsZGF0YTpmLGJvZHlU
eXBlOiJ0YWJwYW5lbCIsYm9keTpbe3RpdGxlOiJHZW5lcmFsIix0eXBlOiJmb3JtIixpdGVtczpi
fSx7dGl0bGU6IkFkdmFuY2VkIix0eXBlOiJmb3JtIixwYWNrOiJzdGFydCIsaXRlbXM6W3tsYWJl
bDoiU3R5bGUiLG5hbWU6InN0eWxlIix0eXBlOiJ0ZXh0Ym94In0se3R5cGU6ImZvcm0iLGxheW91
dDoiZ3JpZCIscGFja1Y6InN0YXJ0Iixjb2x1bW5zOjIscGFkZGluZzowLGFsaWduSDpbImxlZnQi
LCJyaWdodCJdLGRlZmF1bHRzOnt0eXBlOiJ0ZXh0Ym94IixtYXhXaWR0aDo1MCxvbmNoYW5nZTpk
fSxpdGVtczpbe2xhYmVsOiJWZXJ0aWNhbCBzcGFjZSIsbmFtZToidnNwYWNlIn0se2xhYmVsOiJI
b3Jpem9udGFsIHNwYWNlIixuYW1lOiJoc3BhY2UifSx7bGFiZWw6IkJvcmRlciIsbmFtZToiYm9y
ZGVyIn1dfV19XSxvblN1Ym1pdDpzfSkpOnU9ZS53aW5kb3dNYW5hZ2VyLm9wZW4oe3RpdGxlOiJJ
bnNlcnQvZWRpdCBpbWFnZSIsZGF0YTpmLGJvZHk6YixvblN1Ym1pdDpzfSl9ZS5hZGRCdXR0b24o
ImltYWdlIix7aWNvbjoiaW1hZ2UiLHRvb2x0aXA6Ikluc2VydC9lZGl0IGltYWdlIixvbmNsaWNr
Om4oYSksc3RhdGVTZWxlY3RvcjoiaW1nOm5vdChbZGF0YS1tY2Utb2JqZWN0XSxbZGF0YS1tY2Ut
cGxhY2Vob2xkZXJdKSJ9KSxlLmFkZE1lbnVJdGVtKCJpbWFnZSIse2ljb246ImltYWdlIix0ZXh0
OiJJbnNlcnQgaW1hZ2UiLG9uY2xpY2s6bihhKSxjb250ZXh0OiJpbnNlcnQiLHByZXBlbmRUb0Nv
bnRleHQ6ITB9KX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoImltcG9ydGNzcyIsZnVuY3Rp
b24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/ZnVuY3Rpb24oZSl7
cmV0dXJuLTEhPT1lLmluZGV4T2YodCl9OnQgaW5zdGFuY2VvZiBSZWdFeHA/ZnVuY3Rpb24oZSl7
cmV0dXJuIHQudGVzdChlKX06dH1mdW5jdGlvbiBuKGUsbil7ZnVuY3Rpb24gaSh0LGUpe3ZhciBj
LG89dC5ocmVmO2lmKG8mJm4obyxlKSl7cyh0LmltcG9ydHMsZnVuY3Rpb24odCl7aSh0LCEwKX0p
O3RyeXtjPXQuY3NzUnVsZXN8fHQucnVsZXN9Y2F0Y2goYSl7fXMoYyxmdW5jdGlvbih0KXt0LnN0
eWxlU2hlZXQ/aSh0LnN0eWxlU2hlZXQsITApOnQuc2VsZWN0b3JUZXh0JiZzKHQuc2VsZWN0b3JU
ZXh0LnNwbGl0KCIsIiksZnVuY3Rpb24odCl7ci5wdXNoKHRpbnltY2UudHJpbSh0KSl9KX0pfX12
YXIgcj1bXSxjPXt9O3ModC5jb250ZW50Q1NTLGZ1bmN0aW9uKHQpe2NbdF09ITB9KSxufHwobj1m
dW5jdGlvbih0LGUpe3JldHVybiBlfHxjW3RdfSk7dHJ5e3MoZS5zdHlsZVNoZWV0cyxmdW5jdGlv
bih0KXtpKHQpfSl9Y2F0Y2gobyl7fXJldHVybiByfWZ1bmN0aW9uIGkoZSl7dmFyIG4saT0vXig/
OihbYS16MC05XC1fXSspKT8oXC5bYS16MC05X1wtXC5dKykkL2kuZXhlYyhlKTtpZihpKXt2YXIg
cj1pWzFdLHM9aVsyXS5zdWJzdHIoMSkuc3BsaXQoIi4iKS5qb2luKCIgIiksYz10aW55bWNlLm1h
a2VNYXAoImEsaW1nIik7cmV0dXJuIGlbMV0/KG49e3RpdGxlOmV9LHQuc2NoZW1hLmdldFRleHRC
bG9ja0VsZW1lbnRzKClbcl0/bi5ibG9jaz1yOnQuc2NoZW1hLmdldEJsb2NrRWxlbWVudHMoKVty
XXx8Y1tyLnRvTG93ZXJDYXNlKCldP24uc2VsZWN0b3I9cjpuLmlubGluZT1yKTppWzJdJiYobj17
aW5saW5lOiJzcGFuIix0aXRsZTplLnN1YnN0cigxKSxjbGFzc2VzOnN9KSx0LnNldHRpbmdzLmlt
cG9ydGNzc19tZXJnZV9jbGFzc2VzIT09ITE/bi5jbGFzc2VzPXM6bi5hdHRyaWJ1dGVzPXsiY2xh
c3MiOnN9LG59fXZhciByPXRoaXMscz10aW55bWNlLmVhY2g7dC5vbigicmVuZGVyRm9ybWF0c01l
bnUiLGZ1bmN0aW9uKGMpe3ZhciBvPXQuc2V0dGluZ3MsYT17fSxsPW8uaW1wb3J0Y3NzX3NlbGVj
dG9yX2NvbnZlcnRlcnx8aSxmPWUoby5pbXBvcnRjc3Nfc2VsZWN0b3JfZmlsdGVyKSxtPWMuY29u
dHJvbDt0LnNldHRpbmdzLmltcG9ydGNzc19hcHBlbmR8fG0uaXRlbXMoKS5yZW1vdmUoKTt2YXIg
dT1bXTt0aW55bWNlLmVhY2goby5pbXBvcnRjc3NfZ3JvdXBzLGZ1bmN0aW9uKHQpe3Q9dGlueW1j
ZS5leHRlbmQoe30sdCksdC5maWx0ZXI9ZSh0LmZpbHRlciksdS5wdXNoKHQpfSkscyhuKGMuZG9j
fHx0LmdldERvYygpLGUoby5pbXBvcnRjc3NfZmlsZV9maWx0ZXIpKSxmdW5jdGlvbihlKXtpZigt
MT09PWUuaW5kZXhPZigiLm1jZS0iKSYmIWFbZV0mJighZnx8ZihlKSkpe3ZhciBuLGk9bC5jYWxs
KHIsZSk7aWYoaSl7dmFyIHM9aS5uYW1lfHx0aW55bWNlLkRPTS51bmlxdWVJZCgpO2lmKHUpZm9y
KHZhciBjPTA7Yzx1Lmxlbmd0aDtjKyspaWYoIXVbY10uZmlsdGVyfHx1W2NdLmZpbHRlcihlKSl7
dVtjXS5pdGVtfHwodVtjXS5pdGVtPXt0ZXh0OnVbY10udGl0bGUsbWVudTpbXX0pLG49dVtjXS5p
dGVtLm1lbnU7YnJlYWt9dC5mb3JtYXR0ZXIucmVnaXN0ZXIocyxpKTt2YXIgbz10aW55bWNlLmV4
dGVuZCh7fSxtLnNldHRpbmdzLml0ZW1EZWZhdWx0cyx7dGV4dDppLnRpdGxlLGZvcm1hdDpzfSk7
bj9uLnB1c2gobyk6bS5hZGQobyl9YVtlXT0hMH19KSxzKHUsZnVuY3Rpb24odCl7bS5hZGQodC5p
dGVtKX0pLGMuY29udHJvbC5yZW5kZXJOZXcoKX0pLHIuY29udmVydFNlbGVjdG9yVG9Gb3JtYXQ9
aX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoImluc2VydGRhdGV0aW1lIixmdW5jdGlvbihl
KXtmdW5jdGlvbiB0KHQsYSl7ZnVuY3Rpb24gbihlLHQpe2lmKGU9IiIrZSxlLmxlbmd0aDx0KWZv
cih2YXIgYT0wO2E8dC1lLmxlbmd0aDthKyspZT0iMCIrZTtyZXR1cm4gZX1yZXR1cm4gYT1hfHxu
ZXcgRGF0ZSx0PXQucmVwbGFjZSgiJUQiLCIlbS8lZC8lWSIpLHQ9dC5yZXBsYWNlKCIlciIsIiVJ
OiVNOiVTICVwIiksdD10LnJlcGxhY2UoIiVZIiwiIithLmdldEZ1bGxZZWFyKCkpLHQ9dC5yZXBs
YWNlKCIleSIsIiIrYS5nZXRZZWFyKCkpLHQ9dC5yZXBsYWNlKCIlbSIsbihhLmdldE1vbnRoKCkr
MSwyKSksdD10LnJlcGxhY2UoIiVkIixuKGEuZ2V0RGF0ZSgpLDIpKSx0PXQucmVwbGFjZSgiJUgi
LCIiK24oYS5nZXRIb3VycygpLDIpKSx0PXQucmVwbGFjZSgiJU0iLCIiK24oYS5nZXRNaW51dGVz
KCksMikpLHQ9dC5yZXBsYWNlKCIlUyIsIiIrbihhLmdldFNlY29uZHMoKSwyKSksdD10LnJlcGxh
Y2UoIiVJIiwiIisoKGEuZ2V0SG91cnMoKSsxMSklMTIrMSkpLHQ9dC5yZXBsYWNlKCIlcCIsIiIr
KGEuZ2V0SG91cnMoKTwxMj8iQU0iOiJQTSIpKSx0PXQucmVwbGFjZSgiJUIiLCIiK2UudHJhbnNs
YXRlKG1bYS5nZXRNb250aCgpXSkpLHQ9dC5yZXBsYWNlKCIlYiIsIiIrZS50cmFuc2xhdGUoY1th
LmdldE1vbnRoKCldKSksdD10LnJlcGxhY2UoIiVBIiwiIitlLnRyYW5zbGF0ZShkW2EuZ2V0RGF5
KCldKSksdD10LnJlcGxhY2UoIiVhIiwiIitlLnRyYW5zbGF0ZShpW2EuZ2V0RGF5KCldKSksdD10
LnJlcGxhY2UoIiUlIiwiJSIpfWZ1bmN0aW9uIGEoYSl7dmFyIG49dChhKTtpZihlLnNldHRpbmdz
Lmluc2VydGRhdGV0aW1lX2VsZW1lbnQpe3ZhciByO3I9dCgvJVtITVNJcF0vLnRlc3QoYSk/IiVZ
LSVtLSVkVCVIOiVNIjoiJVktJW0tJWQiKSxuPSc8dGltZSBkYXRldGltZT0iJytyKyciPicrbisi
PC90aW1lPiI7dmFyIGk9ZS5kb20uZ2V0UGFyZW50KGUuc2VsZWN0aW9uLmdldFN0YXJ0KCksInRp
bWUiKTtpZihpKXJldHVybiB2b2lkIGUuZG9tLnNldE91dGVySFRNTChpLG4pfWUuaW5zZXJ0Q29u
dGVudChuKX12YXIgbixyLGk9IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4iLnNwbGl0
KCIgIiksZD0iU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkg
U2F0dXJkYXkgU3VuZGF5Ii5zcGxpdCgiICIpLGM9IkphbiBGZWIgTWFyIEFwciBNYXkgSnVuIEp1
bCBBdWcgU2VwIE9jdCBOb3YgRGVjIi5zcGxpdCgiICIpLG09IkphbnVhcnkgRmVicnVhcnkgTWFy
Y2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIg
RGVjZW1iZXIiLnNwbGl0KCIgIiksdT1bXTtlLmFkZENvbW1hbmQoIm1jZUluc2VydERhdGUiLGZ1
bmN0aW9uKCl7YShlLmdldFBhcmFtKCJpbnNlcnRkYXRldGltZV9kYXRlZm9ybWF0IixlLnRyYW5z
bGF0ZSgiJVktJW0tJWQiKSkpfSksZS5hZGRDb21tYW5kKCJtY2VJbnNlcnRUaW1lIixmdW5jdGlv
bigpe2EoZS5nZXRQYXJhbSgiaW5zZXJ0ZGF0ZXRpbWVfdGltZWZvcm1hdCIsZS50cmFuc2xhdGUo
IiVIOiVNOiVTIikpKX0pLGUuYWRkQnV0dG9uKCJpbnNlcnRkYXRldGltZSIse3R5cGU6InNwbGl0
YnV0dG9uIix0aXRsZToiSW5zZXJ0IGRhdGUvdGltZSIsb25jbGljazpmdW5jdGlvbigpe2Eobnx8
cil9LG1lbnU6dX0pLHRpbnltY2UuZWFjaChlLnNldHRpbmdzLmluc2VydGRhdGV0aW1lX2Zvcm1h
dHN8fFsiJUg6JU06JVMiLCIlWS0lbS0lZCIsIiVJOiVNOiVTICVwIiwiJUQiXSxmdW5jdGlvbihl
KXtyfHwocj1lKSx1LnB1c2goe3RleHQ6dChlKSxvbmNsaWNrOmZ1bmN0aW9uKCl7bj1lLGEoZSl9
fSl9KSxlLmFkZE1lbnVJdGVtKCJpbnNlcnRkYXRldGltZSIse2ljb246ImRhdGUiLHRleHQ6Iklu
c2VydCBkYXRlL3RpbWUiLG1lbnU6dSxjb250ZXh0OiJpbnNlcnQifSl9KTshZnVuY3Rpb24oZSl7
ZS5vbigiQWRkRWRpdG9yIixmdW5jdGlvbihlKXtlLmVkaXRvci5zZXR0aW5ncy5pbmxpbmVfc3R5
bGVzPSExfSksZS5QbHVnaW5NYW5hZ2VyLmFkZCgibGVnYWN5b3V0cHV0IixmdW5jdGlvbih0KXt0
Lm9uKCJpbml0IixmdW5jdGlvbigpe3ZhciBpPSJwLGgxLGgyLGgzLGg0LGg1LGg2LHRkLHRoLGRp
dix1bCxvbCxsaSx0YWJsZSxpbWciLG49ZS5leHBsb2RlKHQuc2V0dGluZ3MuZm9udF9zaXplX3N0
eWxlX3ZhbHVlcyksbD10LnNjaGVtYTt0LmZvcm1hdHRlci5yZWdpc3Rlcih7YWxpZ25sZWZ0Ontz
ZWxlY3RvcjppLGF0dHJpYnV0ZXM6e2FsaWduOiJsZWZ0In19LGFsaWduY2VudGVyOntzZWxlY3Rv
cjppLGF0dHJpYnV0ZXM6e2FsaWduOiJjZW50ZXIifX0sYWxpZ25yaWdodDp7c2VsZWN0b3I6aSxh
dHRyaWJ1dGVzOnthbGlnbjoicmlnaHQifX0sYWxpZ25qdXN0aWZ5OntzZWxlY3RvcjppLGF0dHJp
YnV0ZXM6e2FsaWduOiJqdXN0aWZ5In19LGJvbGQ6W3tpbmxpbmU6ImIiLHJlbW92ZToiYWxsIn0s
e2lubGluZToic3Ryb25nIixyZW1vdmU6ImFsbCJ9LHtpbmxpbmU6InNwYW4iLHN0eWxlczp7Zm9u
dFdlaWdodDoiYm9sZCJ9fV0saXRhbGljOlt7aW5saW5lOiJpIixyZW1vdmU6ImFsbCJ9LHtpbmxp
bmU6ImVtIixyZW1vdmU6ImFsbCJ9LHtpbmxpbmU6InNwYW4iLHN0eWxlczp7Zm9udFN0eWxlOiJp
dGFsaWMifX1dLHVuZGVybGluZTpbe2lubGluZToidSIscmVtb3ZlOiJhbGwifSx7aW5saW5lOiJz
cGFuIixzdHlsZXM6e3RleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSxleGFjdDohMH1dLHN0cmlr
ZXRocm91Z2g6W3tpbmxpbmU6InN0cmlrZSIscmVtb3ZlOiJhbGwifSx7aW5saW5lOiJzcGFuIixz
dHlsZXM6e3RleHREZWNvcmF0aW9uOiJsaW5lLXRocm91Z2gifSxleGFjdDohMH1dLGZvbnRuYW1l
OntpbmxpbmU6ImZvbnQiLGF0dHJpYnV0ZXM6e2ZhY2U6IiV2YWx1ZSJ9fSxmb250c2l6ZTp7aW5s
aW5lOiJmb250IixhdHRyaWJ1dGVzOntzaXplOmZ1bmN0aW9uKHQpe3JldHVybiBlLmluQXJyYXko
bix0LnZhbHVlKSsxfX19LGZvcmVjb2xvcjp7aW5saW5lOiJmb250IixhdHRyaWJ1dGVzOntjb2xv
cjoiJXZhbHVlIn19LGhpbGl0ZWNvbG9yOntpbmxpbmU6ImZvbnQiLHN0eWxlczp7YmFja2dyb3Vu
ZENvbG9yOiIldmFsdWUifX19KSxlLmVhY2goImIsaSx1LHN0cmlrZSIuc3BsaXQoIiwiKSxmdW5j
dGlvbihlKXtsLmFkZFZhbGlkRWxlbWVudHMoZSsiWypdIil9KSxsLmdldEVsZW1lbnRSdWxlKCJm
b250Iil8fGwuYWRkVmFsaWRFbGVtZW50cygiZm9udFtmYWNlfHNpemV8Y29sb3J8c3R5bGVdIiks
ZS5lYWNoKGkuc3BsaXQoIiwiKSxmdW5jdGlvbihlKXt2YXIgdD1sLmdldEVsZW1lbnRSdWxlKGUp
O3QmJih0LmF0dHJpYnV0ZXMuYWxpZ258fCh0LmF0dHJpYnV0ZXMuYWxpZ249e30sdC5hdHRyaWJ1
dGVzT3JkZXIucHVzaCgiYWxpZ24iKSkpfSl9KX0pfSh0aW55bWNlKTt0aW55bWNlLlBsdWdpbk1h
bmFnZXIuYWRkKCJsaW5rIixmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBmdW5jdGlv
bigpe3ZhciBuPXQuc2V0dGluZ3MubGlua19saXN0OyJzdHJpbmciPT10eXBlb2Ygbj90aW55bWNl
LnV0aWwuWEhSLnNlbmQoe3VybDpuLHN1Y2Nlc3M6ZnVuY3Rpb24odCl7ZSh0aW55bWNlLnV0aWwu
SlNPTi5wYXJzZSh0KSl9fSk6ImZ1bmN0aW9uIj09dHlwZW9mIG4/bihlKTplKG4pfX1mdW5jdGlv
biBuKGUpe2Z1bmN0aW9uIG4odCl7dmFyIGU9ZC5maW5kKCIjdGV4dCIpOyghZS52YWx1ZSgpfHx0
Lmxhc3RDb250cm9sJiZlLnZhbHVlKCk9PXQubGFzdENvbnRyb2wudGV4dCgpKSYmZS52YWx1ZSh0
LmNvbnRyb2wudGV4dCgpKSxkLmZpbmQoIiNocmVmIikudmFsdWUodC5jb250cm9sLnZhbHVlKCkp
fWZ1bmN0aW9uIGwoKXt2YXIgbj1be3RleHQ6Ik5vbmUiLHZhbHVlOiIifV07cmV0dXJuIHRpbnlt
Y2UuZWFjaChlLGZ1bmN0aW9uKGUpe24ucHVzaCh7dGV4dDplLnRleHR8fGUudGl0bGUsdmFsdWU6
dC5jb252ZXJ0VVJMKGUudmFsdWV8fGUudXJsLCJocmVmIiksbWVudTplLm1lbnV9KX0pLG59ZnVu
Y3Rpb24gaShlKXtyZXR1cm4gdGlueW1jZS5lYWNoKGUsZnVuY3Rpb24oZSl7ZS50ZXh0U3R5bGU9
ZnVuY3Rpb24oKXtyZXR1cm4gdC5mb3JtYXR0ZXIuZ2V0Q3NzVGV4dCh7aW5saW5lOiJhIixjbGFz
c2VzOltlLnZhbHVlXX0pfX0pLGV9ZnVuY3Rpb24gYShlLG4sbCl7dmFyIGksYT1bXTtyZXR1cm4g
dGlueW1jZS5lYWNoKHQuc2V0dGluZ3NbZV18fGwsZnVuY3Rpb24odCl7dmFyIGU9e3RleHQ6dC50
ZXh0fHx0LnRpdGxlLHZhbHVlOnQudmFsdWV9O2EucHVzaChlKSwoYltuXT09PXQudmFsdWV8fCFp
JiZ0LnNlbGVjdGVkKSYmKGk9ZSl9KSxpJiYhYltuXSYmKGJbbl09aS52YWx1ZSxpLnNlbGVjdGVk
PSEwKSxhfWZ1bmN0aW9uIHIoZSl7dmFyIGw9W107cmV0dXJuIHRpbnltY2UuZWFjaCh0LmRvbS5z
ZWxlY3QoImE6bm90KFtocmVmXSkiKSxmdW5jdGlvbih0KXt2YXIgbj10Lm5hbWV8fHQuaWQ7biYm
bC5wdXNoKHt0ZXh0Om4sdmFsdWU6IiMiK24sc2VsZWN0ZWQ6LTEhPWUuaW5kZXhPZigiIyIrbil9
KX0pLGwubGVuZ3RoPyhsLnVuc2hpZnQoe3RleHQ6Ik5vbmUiLHZhbHVlOiIifSkse25hbWU6ImFu
Y2hvciIsdHlwZToibGlzdGJveCIsbGFiZWw6IkFuY2hvcnMiLHZhbHVlczpsLG9uc2VsZWN0Om59
KTp2b2lkIDB9ZnVuY3Rpb24gbygpe2gmJmgudmFsdWUodC5jb252ZXJ0VVJMKHRoaXMudmFsdWUo
KSwiaHJlZiIpKSwhZiYmMD09PWIudGV4dC5sZW5ndGgmJngmJnRoaXMucGFyZW50KCkucGFyZW50
KCkuZmluZCgiI3RleHQiKVswXS52YWx1ZSh0aGlzLnZhbHVlKCkpfWZ1bmN0aW9uIHModCl7dmFy
IGU9ay5nZXRDb250ZW50KCk7aWYoLzwvLnRlc3QoZSkmJighL148YSBbXj5dKz5bXjxdKzxcL2E+
JC8udGVzdChlKXx8LTE9PWUuaW5kZXhPZigiaHJlZj0iKSkpcmV0dXJuITE7aWYodCl7dmFyIG4s
bD10LmNoaWxkTm9kZXM7aWYoMD09PWwubGVuZ3RoKXJldHVybiExO2ZvcihuPWwubGVuZ3RoLTE7
bj49MDtuLS0paWYoMyE9bFtuXS5ub2RlVHlwZSlyZXR1cm4hMX1yZXR1cm4hMH12YXIgdSxjLGYs
ZCx4LHYsaCxnLG0scCx5LGI9e30saz10LnNlbGVjdGlvbix3PXQuZG9tO3U9ay5nZXROb2RlKCks
Yz13LmdldFBhcmVudCh1LCJhW2hyZWZdIikseD1zKCksYi50ZXh0PWY9Yz9jLmlubmVyVGV4dHx8
Yy50ZXh0Q29udGVudDprLmdldENvbnRlbnQoe2Zvcm1hdDoidGV4dCJ9KSxiLmhyZWY9Yz93Lmdl
dEF0dHJpYihjLCJocmVmIik6IiIsYi50YXJnZXQ9Yz93LmdldEF0dHJpYihjLCJ0YXJnZXQiKTp0
LnNldHRpbmdzLmRlZmF1bHRfbGlua190YXJnZXR8fG51bGwsYi5yZWw9Yz93LmdldEF0dHJpYihj
LCJyZWwiKTpudWxsLGJbImNsYXNzIl09Yz93LmdldEF0dHJpYihjLCJjbGFzcyIpOm51bGwsYi50
aXRsZT1jP3cuZ2V0QXR0cmliKGMsInRpdGxlIik6IiIseCYmKHY9e25hbWU6InRleHQiLHR5cGU6
InRleHRib3giLHNpemU6NDAsbGFiZWw6IlRleHQgdG8gZGlzcGxheSIsb25jaGFuZ2U6ZnVuY3Rp
b24oKXtiLnRleHQ9dGhpcy52YWx1ZSgpfX0pLGUmJihoPXt0eXBlOiJsaXN0Ym94IixsYWJlbDoi
TGluayBsaXN0Iix2YWx1ZXM6bCgpLG9uc2VsZWN0Om4sdmFsdWU6dC5jb252ZXJ0VVJMKGIuaHJl
ZiwiaHJlZiIpLG9uUG9zdFJlbmRlcjpmdW5jdGlvbigpe2g9dGhpc319KSx0LnNldHRpbmdzLnRh
cmdldF9saXN0IT09ITEmJihtPXtuYW1lOiJ0YXJnZXQiLHR5cGU6Imxpc3Rib3giLGxhYmVsOiJU
YXJnZXQiLHZhbHVlczphKCJ0YXJnZXRfbGlzdCIsInRhcmdldCIsW3t0ZXh0OiJOb25lIix2YWx1
ZToiIn0se3RleHQ6Ik5ldyB3aW5kb3ciLHZhbHVlOiJfYmxhbmsifV0pfSksdC5zZXR0aW5ncy5y
ZWxfbGlzdCYmKGc9e25hbWU6InJlbCIsdHlwZToibGlzdGJveCIsbGFiZWw6IlJlbCIsdmFsdWVz
OmEoInJlbF9saXN0IiwicmVsIixbe3RleHQ6Ik5vbmUiLHZhbHVlOiIifV0pfSksdC5zZXR0aW5n
cy5saW5rX2NsYXNzX2xpc3QmJihwPXtuYW1lOiJjbGFzcyIsdHlwZToibGlzdGJveCIsbGFiZWw6
IkNsYXNzIix2YWx1ZXM6aShhKCJsaW5rX2NsYXNzX2xpc3QiLCJjbGFzcyIpKX0pLHQuc2V0dGlu
Z3MubGlua190aXRsZSE9PSExJiYoeT17bmFtZToidGl0bGUiLHR5cGU6InRleHRib3giLGxhYmVs
OiJUaXRsZSIsdmFsdWU6Yi50aXRsZX0pLGQ9dC53aW5kb3dNYW5hZ2VyLm9wZW4oe3RpdGxlOiJJ
bnNlcnQgbGluayIsZGF0YTpiLGJvZHk6W3tuYW1lOiJocmVmIix0eXBlOiJmaWxlcGlja2VyIixm
aWxldHlwZToiZmlsZSIsc2l6ZTo0MCxhdXRvZm9jdXM6ITAsbGFiZWw6IlVybCIsb25jaGFuZ2U6
byxvbmtleXVwOm99LHYseSxyKGIuaHJlZiksaCxnLG0scF0sb25TdWJtaXQ6ZnVuY3Rpb24oZSl7
ZnVuY3Rpb24gbihlLG4pe3ZhciBsPXQuc2VsZWN0aW9uLmdldFJuZygpO3dpbmRvdy5zZXRUaW1l
b3V0KGZ1bmN0aW9uKCl7dC53aW5kb3dNYW5hZ2VyLmNvbmZpcm0oZSxmdW5jdGlvbihlKXt0LnNl
bGVjdGlvbi5zZXRSbmcobCksbihlKX0pfSwwKX1mdW5jdGlvbiBsKCl7dmFyIGU9e2hyZWY6aSx0
YXJnZXQ6Yi50YXJnZXQ/Yi50YXJnZXQ6bnVsbCxyZWw6Yi5yZWw/Yi5yZWw6bnVsbCwiY2xhc3Mi
OmJbImNsYXNzIl0/YlsiY2xhc3MiXTpudWxsLHRpdGxlOmIudGl0bGU/Yi50aXRsZTpudWxsfTtj
Pyh0LmZvY3VzKCkseCYmYi50ZXh0IT1mJiYoImlubmVyVGV4dCJpbiBjP2MuaW5uZXJUZXh0PWIu
dGV4dDpjLnRleHRDb250ZW50PWIudGV4dCksdy5zZXRBdHRyaWJzKGMsZSksay5zZWxlY3QoYyks
dC51bmRvTWFuYWdlci5hZGQoKSk6eD90Lmluc2VydENvbnRlbnQody5jcmVhdGVIVE1MKCJhIixl
LHcuZW5jb2RlKGIudGV4dCkpKTp0LmV4ZWNDb21tYW5kKCJtY2VJbnNlcnRMaW5rIiwhMSxlKX12
YXIgaTtyZXR1cm4gYj10aW55bWNlLmV4dGVuZChiLGUuZGF0YSksKGk9Yi5ocmVmKT9pLmluZGV4
T2YoIkAiKT4wJiYtMT09aS5pbmRleE9mKCIvLyIpJiYtMT09aS5pbmRleE9mKCJtYWlsdG86Iik/
dm9pZCBuKCJUaGUgVVJMIHlvdSBlbnRlcmVkIHNlZW1zIHRvIGJlIGFuIGVtYWlsIGFkZHJlc3Mu
IERvIHlvdSB3YW50IHRvIGFkZCB0aGUgcmVxdWlyZWQgbWFpbHRvOiBwcmVmaXg/IixmdW5jdGlv
bih0KXt0JiYoaT0ibWFpbHRvOiIraSksbCgpfSk6L15ccyp3d3dcLi9pLnRlc3QoaSk/dm9pZCBu
KCJUaGUgVVJMIHlvdSBlbnRlcmVkIHNlZW1zIHRvIGJlIGFuIGV4dGVybmFsIGxpbmsuIERvIHlv
dSB3YW50IHRvIGFkZCB0aGUgcmVxdWlyZWQgaHR0cDovLyBwcmVmaXg/IixmdW5jdGlvbih0KXt0
JiYoaT0iaHR0cDovLyIraSksbCgpfSk6dm9pZCBsKCk6dm9pZCB0LmV4ZWNDb21tYW5kKCJ1bmxp
bmsiKX19KX10LmFkZEJ1dHRvbigibGluayIse2ljb246ImxpbmsiLHRvb2x0aXA6Ikluc2VydC9l
ZGl0IGxpbmsiLHNob3J0Y3V0OiJDdHJsK0siLG9uY2xpY2s6ZShuKSxzdGF0ZVNlbGVjdG9yOiJh
W2hyZWZdIn0pLHQuYWRkQnV0dG9uKCJ1bmxpbmsiLHtpY29uOiJ1bmxpbmsiLHRvb2x0aXA6IlJl
bW92ZSBsaW5rIixjbWQ6InVubGluayIsc3RhdGVTZWxlY3RvcjoiYVtocmVmXSJ9KSx0LmFkZFNo
b3J0Y3V0KCJDdHJsK0siLCIiLGUobikpLHRoaXMuc2hvd0RpYWxvZz1uLHQuYWRkTWVudUl0ZW0o
ImxpbmsiLHtpY29uOiJsaW5rIix0ZXh0OiJJbnNlcnQgbGluayIsc2hvcnRjdXQ6IkN0cmwrSyIs
b25jbGljazplKG4pLHN0YXRlU2VsZWN0b3I6ImFbaHJlZl0iLGNvbnRleHQ6Imluc2VydCIscHJl
cGVuZFRvQ29udGV4dDohMH0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgibGlzdHMiLGZ1
bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuIGUmJi9eKE9MfFVMKSQvLnRlc3QoZS5ub2Rl
TmFtZSl9ZnVuY3Rpb24gbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ9PWV9ZnVu
Y3Rpb24gcihlKXtyZXR1cm4gZS5wYXJlbnROb2RlLmxhc3RDaGlsZD09ZX1mdW5jdGlvbiBvKHQp
e3JldHVybiB0JiYhIWUuc2NoZW1hLmdldFRleHRCbG9ja0VsZW1lbnRzKClbdC5ub2RlTmFtZV19
ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmIlNQQU4iPT09ZS5ub2RlTmFtZSYmImJvb2ttYXJrIj09
PWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS10eXBlIil9dmFyIGE9dGhpcztlLm9uKCJpbml0Iixm
dW5jdGlvbigpe2Z1bmN0aW9uIGQoZSl7ZnVuY3Rpb24gdCh0KXt2YXIgcixvLGk7bz1lW3Q/InN0
YXJ0Q29udGFpbmVyIjoiZW5kQ29udGFpbmVyIl0saT1lW3Q/InN0YXJ0T2Zmc2V0IjoiZW5kT2Zm
c2V0Il0sMT09by5ub2RlVHlwZSYmKHI9Yi5jcmVhdGUoInNwYW4iLHsiZGF0YS1tY2UtdHlwZSI6
ImJvb2ttYXJrIn0pLG8uaGFzQ2hpbGROb2RlcygpPyhpPU1hdGgubWluKGksby5jaGlsZE5vZGVz
Lmxlbmd0aC0xKSx0P28uaW5zZXJ0QmVmb3JlKHIsby5jaGlsZE5vZGVzW2ldKTpiLmluc2VydEFm
dGVyKHIsby5jaGlsZE5vZGVzW2ldKSk6by5hcHBlbmRDaGlsZChyKSxvPXIsaT0wKSxuW3Q/InN0
YXJ0Q29udGFpbmVyIjoiZW5kQ29udGFpbmVyIl09byxuW3Q/InN0YXJ0T2Zmc2V0IjoiZW5kT2Zm
c2V0Il09aX12YXIgbj17fTtyZXR1cm4gdCghMCksZS5jb2xsYXBzZWR8fHQoKSxufWZ1bmN0aW9u
IHMoZSl7ZnVuY3Rpb24gdCh0KXtmdW5jdGlvbiBuKGUpe2Zvcih2YXIgdD1lLnBhcmVudE5vZGUu
Zmlyc3RDaGlsZCxuPTA7dDspe2lmKHQ9PWUpcmV0dXJuIG47KDEhPXQubm9kZVR5cGV8fCJib29r
bWFyayIhPXQuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS10eXBlIikpJiZuKyssdD10Lm5leHRTaWJs
aW5nfXJldHVybi0xfXZhciByLG8saTtyPWk9ZVt0PyJzdGFydENvbnRhaW5lciI6ImVuZENvbnRh
aW5lciJdLG89ZVt0PyJzdGFydE9mZnNldCI6ImVuZE9mZnNldCJdLHImJigxPT1yLm5vZGVUeXBl
JiYobz1uKHIpLHI9ci5wYXJlbnROb2RlLGIucmVtb3ZlKGkpKSxlW3Q/InN0YXJ0Q29udGFpbmVy
IjoiZW5kQ29udGFpbmVyIl09cixlW3Q/InN0YXJ0T2Zmc2V0IjoiZW5kT2Zmc2V0Il09byl9dCgh
MCksdCgpO3ZhciBuPWIuY3JlYXRlUm5nKCk7bi5zZXRTdGFydChlLnN0YXJ0Q29udGFpbmVyLGUu
c3RhcnRPZmZzZXQpLGUuZW5kQ29udGFpbmVyJiZuLnNldEVuZChlLmVuZENvbnRhaW5lcixlLmVu
ZE9mZnNldCksay5zZXRSbmcobil9ZnVuY3Rpb24gZih0LG4pe3ZhciByLG8saSxhPWIuY3JlYXRl
RnJhZ21lbnQoKSxkPWUuc2NoZW1hLmdldEJsb2NrRWxlbWVudHMoKTtpZihlLnNldHRpbmdzLmZv
cmNlZF9yb290X2Jsb2NrJiYobj1ufHxlLnNldHRpbmdzLmZvcmNlZF9yb290X2Jsb2NrKSxuJiYo
bz1iLmNyZWF0ZShuKSxvLnRhZ05hbWU9PT1lLnNldHRpbmdzLmZvcmNlZF9yb290X2Jsb2NrJiZi
LnNldEF0dHJpYnMobyxlLnNldHRpbmdzLmZvcmNlZF9yb290X2Jsb2NrX2F0dHJzKSxhLmFwcGVu
ZENoaWxkKG8pKSx0KWZvcig7cj10LmZpcnN0Q2hpbGQ7KXt2YXIgcz1yLm5vZGVOYW1lO2l8fCJT
UEFOIj09cyYmImJvb2ttYXJrIj09ci5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXR5cGUiKXx8KGk9
ITApLGRbc10/KGEuYXBwZW5kQ2hpbGQociksbz1udWxsKTpuPyhvfHwobz1iLmNyZWF0ZShuKSxh
LmFwcGVuZENoaWxkKG8pKSxvLmFwcGVuZENoaWxkKHIpKTphLmFwcGVuZENoaWxkKHIpfXJldHVy
biBlLnNldHRpbmdzLmZvcmNlZF9yb290X2Jsb2NrP2l8fHRpbnltY2UuRW52LmllJiYhKHRpbnlt
Y2UuRW52LmllPjEwKXx8by5hcHBlbmRDaGlsZChiLmNyZWF0ZSgiYnIiLHsiZGF0YS1tY2UtYm9n
dXMiOiIxIn0pKTphLmFwcGVuZENoaWxkKGIuY3JlYXRlKCJiciIpKSxhfWZ1bmN0aW9uIGwoKXty
ZXR1cm4gdGlueW1jZS5ncmVwKGsuZ2V0U2VsZWN0ZWRCbG9ja3MoKSxmdW5jdGlvbihlKXtyZXR1
cm4iTEkiPT1lLm5vZGVOYW1lfSl9ZnVuY3Rpb24gYyhlLHQsbil7dmFyIHIsbyxpPWIuc2VsZWN0
KCdzcGFuW2RhdGEtbWNlLXR5cGU9ImJvb2ttYXJrIl0nLGUpO249bnx8Zih0KSxyPWIuY3JlYXRl
Um5nKCksci5zZXRTdGFydEFmdGVyKHQpLHIuc2V0RW5kQWZ0ZXIoZSksbz1yLmV4dHJhY3RDb250
ZW50cygpLGIuaXNFbXB0eShvKXx8Yi5pbnNlcnRBZnRlcihvLGUpLGIuaW5zZXJ0QWZ0ZXIobixl
KSxiLmlzRW1wdHkodC5wYXJlbnROb2RlKSYmKHRpbnltY2UuZWFjaChpLGZ1bmN0aW9uKGUpe3Qu
cGFyZW50Tm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHQucGFyZW50Tm9kZSl9KSxiLnJl
bW92ZSh0LnBhcmVudE5vZGUpKSxiLnJlbW92ZSh0KX1mdW5jdGlvbiBwKGUpe3ZhciBuLHI7aWYo
bj1lLm5leHRTaWJsaW5nLG4mJnQobikmJm4ubm9kZU5hbWU9PWUubm9kZU5hbWUpe2Zvcig7cj1u
LmZpcnN0Q2hpbGQ7KWUuYXBwZW5kQ2hpbGQocik7Yi5yZW1vdmUobil9aWYobj1lLnByZXZpb3Vz
U2libGluZyxuJiZ0KG4pJiZuLm5vZGVOYW1lPT1lLm5vZGVOYW1lKXtmb3IoO3I9bi5maXJzdENo
aWxkOyllLmluc2VydEJlZm9yZShyLGUuZmlyc3RDaGlsZCk7Yi5yZW1vdmUobil9fWZ1bmN0aW9u
IHUoZSl7dGlueW1jZS5lYWNoKHRpbnltY2UuZ3JlcChiLnNlbGVjdCgib2wsdWwiLGUpKSxmdW5j
dGlvbihlKXt2YXIgbixyPWUucGFyZW50Tm9kZTsiTEkiPT1yLm5vZGVOYW1lJiZyLmZpcnN0Q2hp
bGQ9PWUmJihuPXIucHJldmlvdXNTaWJsaW5nLG4mJiJMSSI9PW4ubm9kZU5hbWUmJihuLmFwcGVu
ZENoaWxkKGUpLGIuaXNFbXB0eShyKSYmYi5yZW1vdmUocikpKSx0KHIpJiYobj1yLnByZXZpb3Vz
U2libGluZyxuJiYiTEkiPT1uLm5vZGVOYW1lJiZuLmFwcGVuZENoaWxkKGUpKX0pfWZ1bmN0aW9u
IG0oZSl7ZnVuY3Rpb24gbyhlKXtiLmlzRW1wdHkoZSkmJmIucmVtb3ZlKGUpfXZhciBpLGE9ZS5w
YXJlbnROb2RlLGQ9YS5wYXJlbnROb2RlO3JldHVybiBuKGUpJiZyKGUpPygiTEkiPT1kLm5vZGVO
YW1lPyhiLmluc2VydEFmdGVyKGUsZCksbyhkKSxiLnJlbW92ZShhKSk6dChkKT9iLnJlbW92ZShh
LCEwKTooZC5pbnNlcnRCZWZvcmUoZihlKSxhKSxiLnJlbW92ZShhKSksITApOm4oZSk/KCJMSSI9
PWQubm9kZU5hbWU/KGIuaW5zZXJ0QWZ0ZXIoZSxkKSxlLmFwcGVuZENoaWxkKGEpLG8oZCkpOnQo
ZCk/ZC5pbnNlcnRCZWZvcmUoZSxhKTooZC5pbnNlcnRCZWZvcmUoZihlKSxhKSxiLnJlbW92ZShl
KSksITApOnIoZSk/KCJMSSI9PWQubm9kZU5hbWU/Yi5pbnNlcnRBZnRlcihlLGQpOnQoZCk/Yi5p
bnNlcnRBZnRlcihlLGEpOihiLmluc2VydEFmdGVyKGYoZSksYSksYi5yZW1vdmUoZSkpLCEwKToo
IkxJIj09ZC5ub2RlTmFtZT8oYT1kLGk9ZihlLCJMSSIpKTppPXQoZCk/ZihlLCJMSSIpOmYoZSks
YyhhLGUsaSksdShhLnBhcmVudE5vZGUpLCEwKX1mdW5jdGlvbiBoKGUpe2Z1bmN0aW9uIG4obixy
KXt2YXIgbztpZih0KG4pKXtmb3IoO289ZS5sYXN0Q2hpbGQuZmlyc3RDaGlsZDspci5hcHBlbmRD
aGlsZChvKTtiLnJlbW92ZShuKX19dmFyIHIsbztyZXR1cm4gcj1lLnByZXZpb3VzU2libGluZyxy
JiZ0KHIpPyhyLmFwcGVuZENoaWxkKGUpLCEwKTpyJiYiTEkiPT1yLm5vZGVOYW1lJiZ0KHIubGFz
dENoaWxkKT8oci5sYXN0Q2hpbGQuYXBwZW5kQ2hpbGQoZSksbihlLmxhc3RDaGlsZCxyLmxhc3RD
aGlsZCksITApOihyPWUubmV4dFNpYmxpbmcsciYmdChyKT8oci5pbnNlcnRCZWZvcmUoZSxyLmZp
cnN0Q2hpbGQpLCEwKTpyJiYiTEkiPT1yLm5vZGVOYW1lJiZ0KGUubGFzdENoaWxkKT8hMToocj1l
LnByZXZpb3VzU2libGluZyxyJiYiTEkiPT1yLm5vZGVOYW1lPyhvPWIuY3JlYXRlKGUucGFyZW50
Tm9kZS5ub2RlTmFtZSksci5hcHBlbmRDaGlsZChvKSxvLmFwcGVuZENoaWxkKGUpLG4oZS5sYXN0
Q2hpbGQsbyksITApOiExKSl9ZnVuY3Rpb24gdigpe3ZhciB0PWwoKTtpZih0Lmxlbmd0aCl7Zm9y
KHZhciBuPWQoay5nZXRSbmcoITApKSxyPTA7cjx0Lmxlbmd0aCYmKGgodFtyXSl8fDAhPT1yKTty
KyspO3JldHVybiBzKG4pLGUubm9kZUNoYW5nZWQoKSwhMH19ZnVuY3Rpb24gQygpe3ZhciB0PWwo
KTtpZih0Lmxlbmd0aCl7dmFyIG4scixvPWQoay5nZXRSbmcoITApKSxpPWUuZ2V0Qm9keSgpO2Zv
cihuPXQubGVuZ3RoO24tLTspZm9yKHZhciBhPXRbbl0ucGFyZW50Tm9kZTthJiZhIT1pOyl7Zm9y
KHI9dC5sZW5ndGg7ci0tOylpZih0W3JdPT09YSl7dC5zcGxpY2UobiwxKTticmVha31hPWEucGFy
ZW50Tm9kZX1mb3Iobj0wO248dC5sZW5ndGgmJihtKHRbbl0pfHwwIT09bik7bisrKTtyZXR1cm4g
cyhvKSxlLm5vZGVDaGFuZ2VkKCksITB9fWZ1bmN0aW9uIGcobil7ZnVuY3Rpb24gcigpe2Z1bmN0
aW9uIHQoZSl7dmFyIHQsbjtmb3IodD1hW2U/InN0YXJ0Q29udGFpbmVyIjoiZW5kQ29udGFpbmVy
Il0sbj1hW2U/InN0YXJ0T2Zmc2V0IjoiZW5kT2Zmc2V0Il0sMT09dC5ub2RlVHlwZSYmKHQ9dC5j
aGlsZE5vZGVzW01hdGgubWluKG4sdC5jaGlsZE5vZGVzLmxlbmd0aC0xKV18fHQpO3QucGFyZW50
Tm9kZSE9ZDspe2lmKG8odCkpcmV0dXJuIHQ7aWYoL14oVER8VEgpJC8udGVzdCh0LnBhcmVudE5v
ZGUubm9kZU5hbWUpKXJldHVybiB0O3Q9dC5wYXJlbnROb2RlfXJldHVybiB0fWZvcih2YXIgbixy
PVtdLGQ9ZS5nZXRCb2R5KCkscz10KCEwKSxmPXQoKSxsPVtdLGM9cztjJiYobC5wdXNoKGMpLGMh
PWYpO2M9Yy5uZXh0U2libGluZyk7cmV0dXJuIHRpbnltY2UuZWFjaChsLGZ1bmN0aW9uKGUpe2lm
KG8oZSkpcmV0dXJuIHIucHVzaChlKSx2b2lkKG49bnVsbCk7aWYoYi5pc0Jsb2NrKGUpfHwiQlIi
PT1lLm5vZGVOYW1lKXJldHVybiJCUiI9PWUubm9kZU5hbWUmJmIucmVtb3ZlKGUpLHZvaWQobj1u
dWxsKTt2YXIgdD1lLm5leHRTaWJsaW5nO3JldHVybiBpKGUpJiYobyh0KXx8IXQmJmUucGFyZW50
Tm9kZT09ZCk/dm9pZChuPW51bGwpOihufHwobj1iLmNyZWF0ZSgicCIpLGUucGFyZW50Tm9kZS5p
bnNlcnRCZWZvcmUobixlKSxyLnB1c2gobikpLHZvaWQgbi5hcHBlbmRDaGlsZChlKSl9KSxyfXZh
ciBhPWsuZ2V0Um5nKCEwKSxmPWQoYSksbD1yKCk7dGlueW1jZS5lYWNoKGwsZnVuY3Rpb24oZSl7
dmFyIHIsbztvPWUucHJldmlvdXNTaWJsaW5nLG8mJnQobykmJm8ubm9kZU5hbWU9PW4/KHI9byxl
PWIucmVuYW1lKGUsIkxJIiksby5hcHBlbmRDaGlsZChlKSk6KHI9Yi5jcmVhdGUobiksZS5wYXJl
bnROb2RlLmluc2VydEJlZm9yZShyLGUpLHIuYXBwZW5kQ2hpbGQoZSksZT1iLnJlbmFtZShlLCJM
SSIpKSxwKHIpfSkscyhmKX1mdW5jdGlvbiBOKCl7dmFyIG49ZChrLmdldFJuZyghMCkpLHI9ZS5n
ZXRCb2R5KCk7dGlueW1jZS5lYWNoKGwoKSxmdW5jdGlvbihlKXt2YXIgbixvO2lmKGIuaXNFbXB0
eShlKSlyZXR1cm4gdm9pZCBtKGUpO2ZvcihuPWU7biYmbiE9cjtuPW4ucGFyZW50Tm9kZSl0KG4p
JiYobz1uKTtjKG8sZSl9KSxzKG4pfWZ1bmN0aW9uIHkoZSl7dmFyIHQ9Yi5nZXRQYXJlbnQoay5n
ZXRTdGFydCgpLCJPTCxVTCIpO2lmKHQpaWYodC5ub2RlTmFtZT09ZSlOKGUpO2Vsc2V7dmFyIG49
ZChrLmdldFJuZyghMCkpO3AoYi5yZW5hbWUodCxlKSkscyhuKX1lbHNlIGcoZSl9dmFyIGI9ZS5k
b20saz1lLnNlbGVjdGlvbjthLmJhY2tzcGFjZURlbGV0ZT1mdW5jdGlvbihlKXtmdW5jdGlvbiBu
KGUsdCl7dmFyIG49ZS5zdGFydENvbnRhaW5lcixyPWUuc3RhcnRPZmZzZXQ7aWYoMz09bi5ub2Rl
VHlwZSYmKHQ/cjxuLmRhdGEubGVuZ3RoOnI+MCkpcmV0dXJuIG47Zm9yKHZhciBvPW5ldyB0aW55
bWNlLmRvbS5UcmVlV2Fsa2VyKGUuc3RhcnRDb250YWluZXIpO249b1t0PyJuZXh0IjoicHJldiJd
KCk7KWlmKDM9PW4ubm9kZVR5cGUmJm4uZGF0YS5sZW5ndGg+MClyZXR1cm4gbn1mdW5jdGlvbiBy
KGUsbil7dmFyIHIsbyxpPWUucGFyZW50Tm9kZTtmb3IodChuLmxhc3RDaGlsZCkmJihvPW4ubGFz
dENoaWxkKSxyPW4ubGFzdENoaWxkLHImJiJCUiI9PXIubm9kZU5hbWUmJmUuaGFzQ2hpbGROb2Rl
cygpJiZiLnJlbW92ZShyKTtyPWUuZmlyc3RDaGlsZDspbi5hcHBlbmRDaGlsZChyKTtvJiZuLmFw
cGVuZENoaWxkKG8pLGIucmVtb3ZlKGUpLGIuaXNFbXB0eShpKSYmYi5yZW1vdmUoaSl9aWYoay5p
c0NvbGxhcHNlZCgpKXt2YXIgbz1iLmdldFBhcmVudChrLmdldFN0YXJ0KCksIkxJIik7aWYobyl7
dmFyIGk9ay5nZXRSbmcoITApLGE9Yi5nZXRQYXJlbnQobihpLGUpLCJMSSIpO2lmKGEmJmEhPW8p
e3ZhciBmPWQoaSk7cmV0dXJuIGU/cihhLG8pOnIobyxhKSxzKGYpLCEwfWlmKCFhJiYhZSYmTihv
LnBhcmVudE5vZGUubm9kZU5hbWUpKXJldHVybiEwfX19LGUuYWRkQ29tbWFuZCgiSW5kZW50Iixm
dW5jdGlvbigpe3JldHVybiB2KCk/dm9pZCAwOiEwfSksZS5hZGRDb21tYW5kKCJPdXRkZW50Iixm
dW5jdGlvbigpe3JldHVybiBDKCk/dm9pZCAwOiEwfSksZS5hZGRDb21tYW5kKCJJbnNlcnRVbm9y
ZGVyZWRMaXN0IixmdW5jdGlvbigpe3koIlVMIil9KSxlLmFkZENvbW1hbmQoIkluc2VydE9yZGVy
ZWRMaXN0IixmdW5jdGlvbigpe3koIk9MIil9KSxlLm9uKCJrZXlkb3duIixmdW5jdGlvbih0KXs5
PT10LmtleUNvZGUmJmUuZG9tLmdldFBhcmVudChlLnNlbGVjdGlvbi5nZXRTdGFydCgpLCJMSSIp
JiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc2hpZnRLZXk/QygpOnYoKSl9KX0pLGUuYWRkQnV0dG9u
KCJpbmRlbnQiLHtpY29uOiJpbmRlbnQiLHRpdGxlOiJJbmNyZWFzZSBpbmRlbnQiLGNtZDoiSW5k
ZW50IixvblBvc3RSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2Uub24oIm5vZGVjaGFuZ2Ui
LGZ1bmN0aW9uKCl7Zm9yKHZhciByPWUuc2VsZWN0aW9uLmdldFNlbGVjdGVkQmxvY2tzKCksbz0h
MSxpPTAsYT1yLmxlbmd0aDshbyYmYT5pO2krKyl7dmFyIGQ9cltpXS5ub2RlTmFtZTtvPSJMSSI9
PWQmJm4ocltpXSl8fCJVTCI9PWR8fCJPTCI9PWR9dC5kaXNhYmxlZChvKX0pfX0pLGUub24oImtl
eWRvd24iLGZ1bmN0aW9uKGUpe2Uua2V5Q29kZT09dGlueW1jZS51dGlsLlZLLkJBQ0tTUEFDRT9h
LmJhY2tzcGFjZURlbGV0ZSgpJiZlLnByZXZlbnREZWZhdWx0KCk6ZS5rZXlDb2RlPT10aW55bWNl
LnV0aWwuVksuREVMRVRFJiZhLmJhY2tzcGFjZURlbGV0ZSghMCkmJmUucHJldmVudERlZmF1bHQo
KX0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgibWVkaWEiLGZ1bmN0aW9uKGUsdCl7ZnVu
Y3Rpb24gaShlKXtyZXR1cm4tMSE9ZS5pbmRleE9mKCIubXAzIik/ImF1ZGlvL21wZWciOi0xIT1l
LmluZGV4T2YoIi53YXYiKT8iYXVkaW8vd2F2IjotMSE9ZS5pbmRleE9mKCIubXA0Iik/InZpZGVv
L21wNCI6LTEhPWUuaW5kZXhPZigiLndlYm0iKT8idmlkZW8vd2VibSI6LTEhPWUuaW5kZXhPZigi
Lm9nZyIpPyJ2aWRlby9vZ2ciOi0xIT1lLmluZGV4T2YoIi5zd2YiKT8iYXBwbGljYXRpb24veC1z
aG9ja3dhdmUtZmxhc2giOiIifWZ1bmN0aW9uIHIodCl7dmFyIGk9ZS5zZXR0aW5ncy5tZWRpYV9z
Y3JpcHRzO2lmKGkpZm9yKHZhciByPTA7cjxpLmxlbmd0aDtyKyspaWYoLTEhPT10LmluZGV4T2Yo
aVtyXS5maWx0ZXIpKXJldHVybiBpW3JdfWZ1bmN0aW9uIG8oKXtmdW5jdGlvbiB0KGUpe3ZhciB0
LGEsYyxzO3Q9aS5maW5kKCIjd2lkdGgiKVswXSxhPWkuZmluZCgiI2hlaWdodCIpWzBdLGM9dC52
YWx1ZSgpLHM9YS52YWx1ZSgpLGkuZmluZCgiI2NvbnN0cmFpbiIpWzBdLmNoZWNrZWQoKSYmciYm
byYmYyYmcyYmKGUuY29udHJvbD09dD8ocz1NYXRoLnJvdW5kKGMvcipzKSxhLnZhbHVlKHMpKToo
Yz1NYXRoLnJvdW5kKHMvbypjKSx0LnZhbHVlKGMpKSkscj1jLG89c312YXIgaSxyLG8sbSx1PVt7
bmFtZToic291cmNlMSIsdHlwZToiZmlsZXBpY2tlciIsZmlsZXR5cGU6Im1lZGlhIixzaXplOjQw
LGF1dG9mb2N1czohMCxsYWJlbDoiU291cmNlIn1dO2Uuc2V0dGluZ3MubWVkaWFfYWx0X3NvdXJj
ZSE9PSExJiZ1LnB1c2goe25hbWU6InNvdXJjZTIiLHR5cGU6ImZpbGVwaWNrZXIiLGZpbGV0eXBl
OiJtZWRpYSIsc2l6ZTo0MCxsYWJlbDoiQWx0ZXJuYXRpdmUgc291cmNlIn0pLGUuc2V0dGluZ3Mu
bWVkaWFfcG9zdGVyIT09ITEmJnUucHVzaCh7bmFtZToicG9zdGVyIix0eXBlOiJmaWxlcGlja2Vy
IixmaWxldHlwZToiaW1hZ2UiLHNpemU6NDAsbGFiZWw6IlBvc3RlciJ9KSxlLnNldHRpbmdzLm1l
ZGlhX2RpbWVuc2lvbnMhPT0hMSYmdS5wdXNoKHt0eXBlOiJjb250YWluZXIiLGxhYmVsOiJEaW1l
bnNpb25zIixsYXlvdXQ6ImZsZXgiLGFsaWduOiJjZW50ZXIiLHNwYWNpbmc6NSxpdGVtczpbe25h
bWU6IndpZHRoIix0eXBlOiJ0ZXh0Ym94IixtYXhMZW5ndGg6MyxzaXplOjMsb25jaGFuZ2U6dH0s
e3R5cGU6ImxhYmVsIix0ZXh0OiJ4In0se25hbWU6ImhlaWdodCIsdHlwZToidGV4dGJveCIsbWF4
TGVuZ3RoOjMsc2l6ZTozLG9uY2hhbmdlOnR9LHtuYW1lOiJjb25zdHJhaW4iLHR5cGU6ImNoZWNr
Ym94IixjaGVja2VkOiEwLHRleHQ6IkNvbnN0cmFpbiBwcm9wb3J0aW9ucyJ9XX0pLG09bihlLnNl
bGVjdGlvbi5nZXROb2RlKCkpLHI9bS53aWR0aCxvPW0uaGVpZ2h0LGk9ZS53aW5kb3dNYW5hZ2Vy
Lm9wZW4oe3RpdGxlOiJJbnNlcnQvZWRpdCB2aWRlbyIsZGF0YTptLGJvZHlUeXBlOiJ0YWJwYW5l
bCIsYm9keTpbe3RpdGxlOiJHZW5lcmFsIix0eXBlOiJmb3JtIixvblNob3dUYWI6ZnVuY3Rpb24o
KXttPXModGhpcy5uZXh0KCkuZmluZCgiI2VtYmVkIikudmFsdWUoKSksdGhpcy5mcm9tSlNPTiht
KX0saXRlbXM6dX0se3RpdGxlOiJFbWJlZCIsdHlwZToicGFuZWwiLGxheW91dDoiZmxleCIsZGly
ZWN0aW9uOiJjb2x1bW4iLGFsaWduOiJzdHJldGNoIixwYWRkaW5nOjEwLHNwYWNpbmc6MTAsb25T
aG93VGFiOmZ1bmN0aW9uKCl7dGhpcy5maW5kKCIjZW1iZWQiKS52YWx1ZShjKHRoaXMucGFyZW50
KCkudG9KU09OKCkpKX0saXRlbXM6W3t0eXBlOiJsYWJlbCIsdGV4dDoiUGFzdGUgeW91ciBlbWJl
ZCBjb2RlIGJlbG93OiIsZm9ySWQ6Im1jZW1lZGlhc291cmNlIn0se2lkOiJtY2VtZWRpYXNvdXJj
ZSIsdHlwZToidGV4dGJveCIsZmxleDoxLG5hbWU6ImVtYmVkIix2YWx1ZTphKCksbXVsdGlsaW5l
OiEwLGxhYmVsOiJTb3VyY2UifV19XSxvblN1Ym1pdDpmdW5jdGlvbigpe2UuaW5zZXJ0Q29udGVu
dChjKHRoaXMudG9KU09OKCkpKX19KX1mdW5jdGlvbiBhKCl7dmFyIHQ9ZS5zZWxlY3Rpb24uZ2V0
Tm9kZSgpO3JldHVybiB0LmdldEF0dHJpYnV0ZSgiZGF0YS1tY2Utb2JqZWN0Iik/ZS5zZWxlY3Rp
b24uZ2V0Q29udGVudCgpOnZvaWQgMH1mdW5jdGlvbiBjKG8pe3ZhciBhPSIiO2lmKCFvLnNvdXJj
ZTEmJih0aW55bWNlLmV4dGVuZChvLHMoby5lbWJlZCkpLCFvLnNvdXJjZTEpKXJldHVybiIiO2lm
KG8uc291cmNlMnx8KG8uc291cmNlMj0iIiksby5wb3N0ZXJ8fChvLnBvc3Rlcj0iIiksby5zb3Vy
Y2UxPWUuY29udmVydFVSTChvLnNvdXJjZTEsInNvdXJjZSIpLG8uc291cmNlMj1lLmNvbnZlcnRV
Ukwoby5zb3VyY2UyLCJzb3VyY2UiKSxvLnNvdXJjZTFtaW1lPWkoby5zb3VyY2UxKSxvLnNvdXJj
ZTJtaW1lPWkoby5zb3VyY2UyKSxvLnBvc3Rlcj1lLmNvbnZlcnRVUkwoby5wb3N0ZXIsInBvc3Rl
ciIpLG8uZmxhc2hQbGF5ZXJVcmw9ZS5jb252ZXJ0VVJMKHQrIi9tb3hpZXBsYXllci5zd2YiLCJt
b3ZpZSIpLHRpbnltY2UuZWFjaCh1LGZ1bmN0aW9uKGUpe3ZhciB0LGkscjtpZih0PWUucmVnZXgu
ZXhlYyhvLnNvdXJjZTEpKXtmb3Iocj1lLnVybCxpPTA7dFtpXTtpKyspcj1yLnJlcGxhY2UoIiQi
K2ksZnVuY3Rpb24oKXtyZXR1cm4gdFtpXX0pO28uc291cmNlMT1yLG8udHlwZT1lLnR5cGUsby53
aWR0aD1vLndpZHRofHxlLncsby5oZWlnaHQ9by5oZWlnaHR8fGUuaH19KSxvLmVtYmVkKWE9bShv
LmVtYmVkLG8sITApO2Vsc2V7dmFyIGM9cihvLnNvdXJjZTEpO2MmJihvLnR5cGU9InNjcmlwdCIs
by53aWR0aD1jLndpZHRoLG8uaGVpZ2h0PWMuaGVpZ2h0KSxvLndpZHRoPW8ud2lkdGh8fDMwMCxv
LmhlaWdodD1vLmhlaWdodHx8MTUwLHRpbnltY2UuZWFjaChvLGZ1bmN0aW9uKHQsaSl7b1tpXT1l
LmRvbS5lbmNvZGUodCl9KSwiaWZyYW1lIj09by50eXBlP2ErPSc8aWZyYW1lIHNyYz0iJytvLnNv
dXJjZTErJyIgd2lkdGg9Iicrby53aWR0aCsnIiBoZWlnaHQ9Iicrby5oZWlnaHQrJyI+PC9pZnJh
bWU+JzoiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giPT1vLnNvdXJjZTFtaW1lPyhhKz0n
PG9iamVjdCBkYXRhPSInK28uc291cmNlMSsnIiB3aWR0aD0iJytvLndpZHRoKyciIGhlaWdodD0i
JytvLmhlaWdodCsnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCI+JyxvLnBv
c3RlciYmKGErPSc8aW1nIHNyYz0iJytvLnBvc3RlcisnIiB3aWR0aD0iJytvLndpZHRoKyciIGhl
aWdodD0iJytvLmhlaWdodCsnIiAvPicpLGErPSI8L29iamVjdD4iKTotMSE9by5zb3VyY2UxbWlt
ZS5pbmRleE9mKCJhdWRpbyIpP2Uuc2V0dGluZ3MuYXVkaW9fdGVtcGxhdGVfY2FsbGJhY2s/YT1l
LnNldHRpbmdzLmF1ZGlvX3RlbXBsYXRlX2NhbGxiYWNrKG8pOmErPSc8YXVkaW8gY29udHJvbHM9
ImNvbnRyb2xzIiBzcmM9Iicrby5zb3VyY2UxKyciPicrKG8uc291cmNlMj8nXG48c291cmNlIHNy
Yz0iJytvLnNvdXJjZTIrJyInKyhvLnNvdXJjZTJtaW1lPycgdHlwZT0iJytvLnNvdXJjZTJtaW1l
KyciJzoiIikrIiAvPlxuIjoiIikrIjwvYXVkaW8+Ijoic2NyaXB0Ij09by50eXBlP2ErPSc8c2Ny
aXB0IHNyYz0iJytvLnNvdXJjZTErJyI+PC9zY3JpcHQ+JzphPWUuc2V0dGluZ3MudmlkZW9fdGVt
cGxhdGVfY2FsbGJhY2s/ZS5zZXR0aW5ncy52aWRlb190ZW1wbGF0ZV9jYWxsYmFjayhvKTonPHZp
ZGVvIHdpZHRoPSInK28ud2lkdGgrJyIgaGVpZ2h0PSInK28uaGVpZ2h0KyciJysoby5wb3N0ZXI/
JyBwb3N0ZXI9Iicrby5wb3N0ZXIrJyInOiIiKSsnIGNvbnRyb2xzPSJjb250cm9scyI+XG48c291
cmNlIHNyYz0iJytvLnNvdXJjZTErJyInKyhvLnNvdXJjZTFtaW1lPycgdHlwZT0iJytvLnNvdXJj
ZTFtaW1lKyciJzoiIikrIiAvPlxuIisoby5zb3VyY2UyPyc8c291cmNlIHNyYz0iJytvLnNvdXJj
ZTIrJyInKyhvLnNvdXJjZTJtaW1lPycgdHlwZT0iJytvLnNvdXJjZTJtaW1lKyciJzoiIikrIiAv
PlxuIjoiIikrIjwvdmlkZW8+In1yZXR1cm4gYX1mdW5jdGlvbiBzKGUpe3ZhciB0PXt9O3JldHVy
biBuZXcgdGlueW1jZS5odG1sLlNheFBhcnNlcih7dmFsaWRhdGU6ITEsYWxsb3dfY29uZGl0aW9u
YWxfY29tbWVudHM6ITAsc3BlY2lhbDoic2NyaXB0LG5vc2NyaXB0IixzdGFydDpmdW5jdGlvbihl
LGkpe2lmKHQuc291cmNlMXx8InBhcmFtIiE9ZXx8KHQuc291cmNlMT1pLm1hcC5tb3ZpZSksKCJp
ZnJhbWUiPT1lfHwib2JqZWN0Ij09ZXx8ImVtYmVkIj09ZXx8InZpZGVvIj09ZXx8ImF1ZGlvIj09
ZSkmJih0LnR5cGV8fCh0LnR5cGU9ZSksdD10aW55bWNlLmV4dGVuZChpLm1hcCx0KSksInNjcmlw
dCI9PWUpe3ZhciBvPXIoaS5tYXAuc3JjKTtpZighbylyZXR1cm47dD17dHlwZToic2NyaXB0Iixz
b3VyY2UxOmkubWFwLnNyYyx3aWR0aDpvLndpZHRoLGhlaWdodDpvLmhlaWdodH19InNvdXJjZSI9
PWUmJih0LnNvdXJjZTE/dC5zb3VyY2UyfHwodC5zb3VyY2UyPWkubWFwLnNyYyk6dC5zb3VyY2Ux
PWkubWFwLnNyYyksImltZyIhPWV8fHQucG9zdGVyfHwodC5wb3N0ZXI9aS5tYXAuc3JjKX19KS5w
YXJzZShlKSx0LnNvdXJjZTE9dC5zb3VyY2UxfHx0LnNyY3x8dC5kYXRhLHQuc291cmNlMj10LnNv
dXJjZTJ8fCIiLHQucG9zdGVyPXQucG9zdGVyfHwiIix0fWZ1bmN0aW9uIG4odCl7cmV0dXJuIHQu
Z2V0QXR0cmlidXRlKCJkYXRhLW1jZS1vYmplY3QiKT9zKGUuc2VyaWFsaXplci5zZXJpYWxpemUo
dCx7c2VsZWN0aW9uOiEwfSkpOnt9fWZ1bmN0aW9uIG0oZSx0LGkpe2Z1bmN0aW9uIHIoZSx0KXt2
YXIgaSxyLG8sYTtmb3IoaSBpbiB0KWlmKG89IiIrdFtpXSxlLm1hcFtpXSlmb3Iocj1lLmxlbmd0
aDtyLS07KWE9ZVtyXSxhLm5hbWU9PWkmJihvPyhlLm1hcFtpXT1vLGEudmFsdWU9byk6KGRlbGV0
ZSBlLm1hcFtpXSxlLnNwbGljZShyLDEpKSk7ZWxzZSBvJiYoZS5wdXNoKHtuYW1lOmksdmFsdWU6
b30pLGUubWFwW2ldPW8pfXZhciBvLGE9bmV3IHRpbnltY2UuaHRtbC5Xcml0ZXIsYz0wO3JldHVy
biBuZXcgdGlueW1jZS5odG1sLlNheFBhcnNlcih7dmFsaWRhdGU6ITEsYWxsb3dfY29uZGl0aW9u
YWxfY29tbWVudHM6ITAsc3BlY2lhbDoic2NyaXB0LG5vc2NyaXB0Iixjb21tZW50OmZ1bmN0aW9u
KGUpe2EuY29tbWVudChlKX0sY2RhdGE6ZnVuY3Rpb24oZSl7YS5jZGF0YShlKX0sdGV4dDpmdW5j
dGlvbihlLHQpe2EudGV4dChlLHQpfSxzdGFydDpmdW5jdGlvbihlLHMsbil7c3dpdGNoKGUpe2Nh
c2UidmlkZW8iOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpjYXNlImltZyI6Y2FzZSJpZnJhbWUi
OnIocyx7d2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9KX1pZihpKXN3aXRjaChlKXtjYXNl
InZpZGVvIjpyKHMse3Bvc3Rlcjp0LnBvc3RlcixzcmM6IiJ9KSx0LnNvdXJjZTImJnIocyx7c3Jj
OiIifSk7YnJlYWs7Y2FzZSJpZnJhbWUiOnIocyx7c3JjOnQuc291cmNlMX0pO2JyZWFrO2Nhc2Ui
c291cmNlIjppZihjKyssMj49YyYmKHIocyx7c3JjOnRbInNvdXJjZSIrY10sdHlwZTp0WyJzb3Vy
Y2UiK2MrIm1pbWUiXX0pLCF0WyJzb3VyY2UiK2NdKSlyZXR1cm47YnJlYWs7Y2FzZSJpbWciOmlm
KCF0LnBvc3RlcilyZXR1cm47bz0hMH1hLnN0YXJ0KGUscyxuKX0sZW5kOmZ1bmN0aW9uKGUpe2lm
KCJ2aWRlbyI9PWUmJmkpZm9yKHZhciBzPTE7Mj49cztzKyspaWYodFsic291cmNlIitzXSl7dmFy
IG49W107bi5tYXA9e30scz5jJiYocihuLHtzcmM6dFsic291cmNlIitzXSx0eXBlOnRbInNvdXJj
ZSIrcysibWltZSJdfSksYS5zdGFydCgic291cmNlIixuLCEwKSl9aWYodC5wb3N0ZXImJiJvYmpl
Y3QiPT1lJiZpJiYhbyl7dmFyIG09W107bS5tYXA9e30scihtLHtzcmM6dC5wb3N0ZXIsd2lkdGg6
dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9KSxhLnN0YXJ0KCJpbWciLG0sITApfWEuZW5kKGUpfX0s
bmV3IHRpbnltY2UuaHRtbC5TY2hlbWEoe30pKS5wYXJzZShlKSxhLmdldENvbnRlbnQoKX12YXIg
dT1be3JlZ2V4Oi95b3V0dVwuYmVcLyhbXHdcLS5dKykvLHR5cGU6ImlmcmFtZSIsdzo0MjUsaDoz
NTAsdXJsOiIvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8kMSJ9LHtyZWdleDoveW91dHViZVwuY29t
KC4rKXY9KFteJl0rKS8sdHlwZToiaWZyYW1lIix3OjQyNSxoOjM1MCx1cmw6Ii8vd3d3LnlvdXR1
YmUuY29tL2VtYmVkLyQyIn0se3JlZ2V4Oi92aW1lb1wuY29tXC8oWzAtOV0rKS8sdHlwZToiaWZy
YW1lIix3OjQyNSxoOjM1MCx1cmw6Ii8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8kMT90aXRsZT0w
JmJ5bGluZT0wJnBvcnRyYWl0PTAmY29sb3I9OGRjN2RjIn0se3JlZ2V4Oi9tYXBzXC5nb29nbGVc
LihbYS16XXsyLDN9KVwvbWFwc1wvKC4rKW1zaWQ9KC4rKS8sdHlwZToiaWZyYW1lIix3OjQyNSxo
OjM1MCx1cmw6Jy8vbWFwcy5nb29nbGUuY29tL21hcHMvbXM/bXNpZD0kMiZvdXRwdXQ9ZW1iZWQi
J31dO2Uub24oIlJlc29sdmVOYW1lIixmdW5jdGlvbihlKXt2YXIgdDsxPT1lLnRhcmdldC5ub2Rl
VHlwZSYmKHQ9ZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1vYmplY3QiKSkmJihlLm5h
bWU9dCl9KSxlLm9uKCJwcmVJbml0IixmdW5jdGlvbigpe3ZhciB0PWUuc2NoZW1hLmdldFNwZWNp
YWxFbGVtZW50cygpO3RpbnltY2UuZWFjaCgidmlkZW8gYXVkaW8gaWZyYW1lIG9iamVjdCIuc3Bs
aXQoIiAiKSxmdW5jdGlvbihlKXt0W2VdPW5ldyBSZWdFeHAoIjwvIitlKyJbXj5dKj4iLCJnaSIp
fSk7dmFyIGk9ZS5zY2hlbWEuZ2V0Qm9vbEF0dHJzKCk7dGlueW1jZS5lYWNoKCJ3ZWJraXRhbGxv
d2Z1bGxzY3JlZW4gbW96YWxsb3dmdWxsc2NyZWVuIGFsbG93ZnVsbHNjcmVlbiIuc3BsaXQoIiAi
KSxmdW5jdGlvbihlKXtpW2VdPXt9fSksZS5wYXJzZXIuYWRkTm9kZUZpbHRlcigiaWZyYW1lLHZp
ZGVvLGF1ZGlvLG9iamVjdCxlbWJlZCxzY3JpcHQiLGZ1bmN0aW9uKHQsaSl7Zm9yKHZhciBvLGEs
YyxzLG4sbSx1LGQsbD10Lmxlbmd0aDtsLS07KWlmKGE9dFtsXSxhLnBhcmVudCYmKCJzY3JpcHQi
IT1hLm5hbWV8fChkPXIoYS5hdHRyKCJzcmMiKSkpKSl7Zm9yKGM9bmV3IHRpbnltY2UuaHRtbC5O
b2RlKCJpbWciLDEpLGMuc2hvcnRFbmRlZD0hMCxkJiYoZC53aWR0aCYmYS5hdHRyKCJ3aWR0aCIs
ZC53aWR0aC50b1N0cmluZygpKSxkLmhlaWdodCYmYS5hdHRyKCJoZWlnaHQiLGQuaGVpZ2h0LnRv
U3RyaW5nKCkpKSxtPWEuYXR0cmlidXRlcyxvPW0ubGVuZ3RoO28tLTspcz1tW29dLm5hbWUsbj1t
W29dLnZhbHVlLCJ3aWR0aCIhPT1zJiYiaGVpZ2h0IiE9PXMmJiJzdHlsZSIhPT1zJiYoKCJkYXRh
Ij09c3x8InNyYyI9PXMpJiYobj1lLmNvbnZlcnRVUkwobixzKSksYy5hdHRyKCJkYXRhLW1jZS1w
LSIrcyxuKSk7dT1hLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC52YWx1ZSx1JiYoYy5hdHRyKCJk
YXRhLW1jZS1odG1sIixlc2NhcGUodSkpLGMuZmlyc3RDaGlsZD1udWxsKSxjLmF0dHIoe3dpZHRo
OmEuYXR0cigid2lkdGgiKXx8IjMwMCIsaGVpZ2h0OmEuYXR0cigiaGVpZ2h0Iil8fCgiYXVkaW8i
PT1pPyIzMCI6IjE1MCIpLHN0eWxlOmEuYXR0cigic3R5bGUiKSxzcmM6dGlueW1jZS5FbnYudHJh
bnNwYXJlbnRTcmMsImRhdGEtbWNlLW9iamVjdCI6aSwiY2xhc3MiOiJtY2Utb2JqZWN0IG1jZS1v
YmplY3QtIitpfSksYS5yZXBsYWNlKGMpfX0pLGUuc2VyaWFsaXplci5hZGRBdHRyaWJ1dGVGaWx0
ZXIoImRhdGEtbWNlLW9iamVjdCIsZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkscixvLGEsYyxzLG4s
bT1lLmxlbmd0aDttLS07KWlmKGk9ZVttXSxpLnBhcmVudCl7Zm9yKG49aS5hdHRyKHQpLHI9bmV3
IHRpbnltY2UuaHRtbC5Ob2RlKG4sMSksImF1ZGlvIiE9biYmInNjcmlwdCIhPW4mJnIuYXR0cih7
d2lkdGg6aS5hdHRyKCJ3aWR0aCIpLGhlaWdodDppLmF0dHIoImhlaWdodCIpfSksci5hdHRyKHtz
dHlsZTppLmF0dHIoInN0eWxlIil9KSxhPWkuYXR0cmlidXRlcyxvPWEubGVuZ3RoO28tLTspe3Zh
ciB1PWFbb10ubmFtZTswPT09dS5pbmRleE9mKCJkYXRhLW1jZS1wLSIpJiZyLmF0dHIodS5zdWJz
dHIoMTEpLGFbb10udmFsdWUpfSJzY3JpcHQiPT1uJiZyLmF0dHIoInR5cGUiLCJ0ZXh0L2phdmFz
Y3JpcHQiKSxjPWkuYXR0cigiZGF0YS1tY2UtaHRtbCIpLGMmJihzPW5ldyB0aW55bWNlLmh0bWwu
Tm9kZSgiI3RleHQiLDMpLHMucmF3PSEwLHMudmFsdWU9dW5lc2NhcGUoYyksci5hcHBlbmQocykp
LGkucmVwbGFjZShyKX19KX0pLGUub24oIk9iamVjdFNlbGVjdGVkIixmdW5jdGlvbihlKXt2YXIg
dD1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLW9iamVjdCIpOygiYXVkaW8iPT10fHwi
c2NyaXB0Ij09dCkmJmUucHJldmVudERlZmF1bHQoKX0pLGUub24oIm9iamVjdFJlc2l6ZWQiLGZ1
bmN0aW9uKGUpe3ZhciB0LGk9ZS50YXJnZXQ7aS5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLW9iamVj
dCIpJiYodD1pLmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtaHRtbCIpLHQmJih0PXVuZXNjYXBlKHQp
LGkuc2V0QXR0cmlidXRlKCJkYXRhLW1jZS1odG1sIixlc2NhcGUobSh0LHt3aWR0aDplLndpZHRo
LGhlaWdodDplLmhlaWdodH0pKSkpKX0pLGUuYWRkQnV0dG9uKCJtZWRpYSIse3Rvb2x0aXA6Iklu
c2VydC9lZGl0IHZpZGVvIixvbmNsaWNrOm8sc3RhdGVTZWxlY3RvcjpbImltZ1tkYXRhLW1jZS1v
YmplY3Q9dmlkZW9dIiwiaW1nW2RhdGEtbWNlLW9iamVjdD1pZnJhbWVdIl19KSxlLmFkZE1lbnVJ
dGVtKCJtZWRpYSIse2ljb246Im1lZGlhIix0ZXh0OiJJbnNlcnQgdmlkZW8iLG9uY2xpY2s6byxj
b250ZXh0OiJpbnNlcnQiLHByZXBlbmRUb0NvbnRleHQ6ITB9KX0pO3RpbnltY2UuUGx1Z2luTWFu
YWdlci5hZGQoIm5vbmJyZWFraW5nIixmdW5jdGlvbihuKXt2YXIgZT1uLmdldFBhcmFtKCJub25i
cmVha2luZ19mb3JjZV90YWIiKTtpZihuLmFkZENvbW1hbmQoIm1jZU5vbkJyZWFraW5nIixmdW5j
dGlvbigpe24uaW5zZXJ0Q29udGVudChuLnBsdWdpbnMudmlzdWFsY2hhcnMmJm4ucGx1Z2lucy52
aXN1YWxjaGFycy5zdGF0ZT8nPHNwYW4gY2xhc3M9Im1jZS1uYnNwIj4mbmJzcDs8L3NwYW4+Jzoi
Jm5ic3A7Iiksbi5kb20uc2V0QXR0cmliKG4uZG9tLnNlbGVjdCgic3Bhbi5tY2UtbmJzcCIpLCJk
YXRhLW1jZS1ib2d1cyIsIjEiKX0pLG4uYWRkQnV0dG9uKCJub25icmVha2luZyIse3RpdGxlOiJJ
bnNlcnQgbm9uYnJlYWtpbmcgc3BhY2UiLGNtZDoibWNlTm9uQnJlYWtpbmcifSksbi5hZGRNZW51
SXRlbSgibm9uYnJlYWtpbmciLHt0ZXh0OiJOb25icmVha2luZyBzcGFjZSIsY21kOiJtY2VOb25C
cmVha2luZyIsY29udGV4dDoiaW5zZXJ0In0pLGUpe3ZhciBhPStlPjE/K2U6MztuLm9uKCJrZXlk
b3duIixmdW5jdGlvbihlKXtpZig5PT1lLmtleUNvZGUpe2lmKGUuc2hpZnRLZXkpcmV0dXJuO2Uu
cHJldmVudERlZmF1bHQoKTtmb3IodmFyIHQ9MDthPnQ7dCsrKW4uZXhlY0NvbW1hbmQoIm1jZU5v
bkJyZWFraW5nIil9fSl9fSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgibm9uZWRpdGFibGUi
LGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7dmFyIHQ7aWYoMT09PWUubm9kZVR5cGUpe2lmKHQ9
ZS5nZXRBdHRyaWJ1dGUodSksdCYmImluaGVyaXQiIT09dClyZXR1cm4gdDtpZih0PWUuY29udGVu
dEVkaXRhYmxlLCJpbmhlcml0IiE9PXQpcmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbihl
KXtmb3IodmFyIG47ZTspe2lmKG49dChlKSlyZXR1cm4iZmFsc2UiPT09bj9lOm51bGw7ZT1lLnBh
cmVudE5vZGV9fWZ1bmN0aW9uIHIoKXtmdW5jdGlvbiByKGUpe2Zvcig7ZTspe2lmKGUuaWQ9PT1n
KXJldHVybiBlO2U9ZS5wYXJlbnROb2RlfX1mdW5jdGlvbiBhKGUpe3ZhciB0O2lmKGUpZm9yKHQ9
bmV3IGYoZSxlKSxlPXQuY3VycmVudCgpO2U7ZT10Lm5leHQoKSlpZigzPT09ZS5ub2RlVHlwZSly
ZXR1cm4gZX1mdW5jdGlvbiBpKG4scil7dmFyIGEsaTtyZXR1cm4iZmFsc2UiPT09dChuKSYmdS5p
c0Jsb2NrKG4pP3ZvaWQgcy5zZWxlY3Qobik6KGk9dS5jcmVhdGVSbmcoKSwidHJ1ZSI9PT10KG4p
JiYobi5maXJzdENoaWxkfHxuLmFwcGVuZENoaWxkKGUuZ2V0RG9jKCkuY3JlYXRlVGV4dE5vZGUo
IsKgIikpLG49bi5maXJzdENoaWxkLHI9ITApLGE9dS5jcmVhdGUoInNwYW4iLHtpZDpnLCJkYXRh
LW1jZS1ib2d1cyI6ITB9LG0pLHI/bi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG4pOnUuaW5z
ZXJ0QWZ0ZXIoYSxuKSxpLnNldFN0YXJ0KGEuZmlyc3RDaGlsZCwxKSxpLmNvbGxhcHNlKCEwKSxz
LnNldFJuZyhpKSxhKX1mdW5jdGlvbiBvKGUpe3ZhciB0LG4saSxvO2lmKGUpdD1zLmdldFJuZygh
MCksdC5zZXRTdGFydEJlZm9yZShlKSx0LnNldEVuZEJlZm9yZShlKSxuPWEoZSksbiYmbi5ub2Rl
VmFsdWUuY2hhckF0KDApPT1tJiYobj1uLmRlbGV0ZURhdGEoMCwxKSksdS5yZW1vdmUoZSwhMCks
cy5zZXRSbmcodCk7ZWxzZSBmb3IoaT1yKHMuZ2V0U3RhcnQoKSk7KGU9dS5nZXQoZykpJiZlIT09
bzspaSE9PWUmJihuPWEoZSksbiYmbi5ub2RlVmFsdWUuY2hhckF0KDApPT1tJiYobj1uLmRlbGV0
ZURhdGEoMCwxKSksdS5yZW1vdmUoZSwhMCkpLG89ZX1mdW5jdGlvbiBsKCl7ZnVuY3Rpb24gZShl
LG4pe3ZhciByLGEsaSxvLGw7aWYocj1kLnN0YXJ0Q29udGFpbmVyLGE9ZC5zdGFydE9mZnNldCwz
PT1yLm5vZGVUeXBlKXtpZihsPXIubm9kZVZhbHVlLmxlbmd0aCxhPjAmJmw+YXx8KG4/YT09bDow
PT09YSkpcmV0dXJufWVsc2V7aWYoIShhPHIuY2hpbGROb2Rlcy5sZW5ndGgpKXJldHVybiBuP251
bGw6ZTt2YXIgdT0hbiYmYT4wP2EtMTphO3I9ci5jaGlsZE5vZGVzW3VdLHIuaGFzQ2hpbGROb2Rl
cygpJiYocj1yLmZpcnN0Q2hpbGQpfWZvcihpPW5ldyBmKHIsZSk7bz1pW24/InByZXYiOiJuZXh0
Il0oKTspe2lmKDM9PT1vLm5vZGVUeXBlJiZvLm5vZGVWYWx1ZS5sZW5ndGg+MClyZXR1cm47aWYo
InRydWUiPT09dChvKSlyZXR1cm4gb31yZXR1cm4gZX12YXIgcixhLGwsZCx1O28oKSxsPXMuaXND
b2xsYXBzZWQoKSxyPW4ocy5nZXRTdGFydCgpKSxhPW4ocy5nZXRFbmQoKSksKHJ8fGEpJiYoZD1z
LmdldFJuZyghMCksbD8ocj1yfHxhLCh1PWUociwhMCkpP2kodSwhMCk6KHU9ZShyLCExKSk/aSh1
LCExKTpzLnNlbGVjdChyKSk6KGQ9cy5nZXRSbmcoITApLHImJmQuc2V0U3RhcnRCZWZvcmUociks
YSYmZC5zZXRFbmRBZnRlcihhKSxzLnNldFJuZyhkKSkpfWZ1bmN0aW9uIGQoYSl7ZnVuY3Rpb24g
aShlLHQpe2Zvcig7ZT1lW3Q/InByZXZpb3VzU2libGluZyI6Im5leHRTaWJsaW5nIl07KWlmKDMh
PT1lLm5vZGVUeXBlfHxlLm5vZGVWYWx1ZS5sZW5ndGg+MClyZXR1cm4gZX1mdW5jdGlvbiBkKGUs
dCl7cy5zZWxlY3QoZSkscy5jb2xsYXBzZSh0KX1mdW5jdGlvbiBnKGEpe2Z1bmN0aW9uIGkoZSl7
Zm9yKHZhciB0PWQ7dDspe2lmKHQ9PT1lKXJldHVybjt0PXQucGFyZW50Tm9kZX11LnJlbW92ZShl
KSxsKCl9ZnVuY3Rpb24gbygpe3ZhciByLG8sbD1lLnNjaGVtYS5nZXROb25FbXB0eUVsZW1lbnRz
KCk7Zm9yKG89bmV3IHRpbnltY2UuZG9tLlRyZWVXYWxrZXIoZCxlLmdldEJvZHkoKSk7KHI9YT9v
LnByZXYoKTpvLm5leHQoKSkmJiFsW3Iubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0mJiEoMz09PXIu
bm9kZVR5cGUmJnRpbnltY2UudHJpbShyLm5vZGVWYWx1ZSkubGVuZ3RoPjApOylpZigiZmFsc2Ui
PT09dChyKSlyZXR1cm4gaShyKSwhMDtyZXR1cm4gbihyKT8hMDohMX12YXIgZixkLGMsZztpZihz
LmlzQ29sbGFwc2VkKCkpe2lmKGY9cy5nZXRSbmcoITApLGQ9Zi5zdGFydENvbnRhaW5lcixjPWYu
c3RhcnRPZmZzZXQsZD1yKGQpfHxkLGc9bihkKSlyZXR1cm4gaShnKSwhMTtpZigzPT1kLm5vZGVU
eXBlJiYoYT9jPjA6YzxkLm5vZGVWYWx1ZS5sZW5ndGgpKXJldHVybiEwO2lmKDE9PWQubm9kZVR5
cGUmJihkPWQuY2hpbGROb2Rlc1tjXXx8ZCksbygpKXJldHVybiExfXJldHVybiEwfXZhciBtLHAs
dixFLGg9YS5rZXlDb2RlO2lmKHY9cy5nZXRTdGFydCgpLEU9cy5nZXRFbmQoKSxtPW4odil8fG4o
RSksbSYmKDExMj5ofHxoPjEyNCkmJmghPWMuREVMRVRFJiZoIT1jLkJBQ0tTUEFDRSl7aWYoKHRp
bnltY2UuaXNNYWM/YS5tZXRhS2V5OmEuY3RybEtleSkmJig2Nz09aHx8ODg9PWh8fDg2PT1oKSly
ZXR1cm47aWYoYS5wcmV2ZW50RGVmYXVsdCgpLGg9PWMuTEVGVHx8aD09Yy5SSUdIVCl7dmFyIHk9
aD09Yy5MRUZUO2lmKGUuZG9tLmlzQmxvY2sobSkpe3ZhciBUPXk/bS5wcmV2aW91c1NpYmxpbmc6
bS5uZXh0U2libGluZyxDPW5ldyBmKFQsVCksYj15P0MucHJldigpOkMubmV4dCgpO2QoYiwheSl9
ZWxzZSBkKG0seSl9fWVsc2UgaWYoaD09Yy5MRUZUfHxoPT1jLlJJR0hUfHxoPT1jLkJBQ0tTUEFD
RXx8aD09Yy5ERUxFVEUpe2lmKHA9cih2KSl7aWYoaD09Yy5MRUZUfHxoPT1jLkJBQ0tTUEFDRSlp
ZihtPWkocCwhMCksbSYmImZhbHNlIj09PXQobSkpe2lmKGEucHJldmVudERlZmF1bHQoKSxoIT1j
LkxFRlQpcmV0dXJuIHZvaWQgdS5yZW1vdmUobSk7ZChtLCEwKX1lbHNlIG8ocCk7aWYoaD09Yy5S
SUdIVHx8aD09Yy5ERUxFVEUpaWYobT1pKHApLG0mJiJmYWxzZSI9PT10KG0pKXtpZihhLnByZXZl
bnREZWZhdWx0KCksaCE9Yy5SSUdIVClyZXR1cm4gdm9pZCB1LnJlbW92ZShtKTtkKG0sITEpfWVs
c2UgbyhwKX1pZigoaD09Yy5CQUNLU1BBQ0V8fGg9PWMuREVMRVRFKSYmIWcoaD09Yy5CQUNLU1BB
Q0UpKXJldHVybiBhLnByZXZlbnREZWZhdWx0KCksITF9fXZhciB1PWUuZG9tLHM9ZS5zZWxlY3Rp
b24sZz0ibWNlX25vbmVkaXRhYmxlY2FyZXQiLG09Iu+7vyI7ZS5vbigibW91c2Vkb3duIixmdW5j
dGlvbihuKXt2YXIgcj1lLnNlbGVjdGlvbi5nZXROb2RlKCk7ImZhbHNlIj09PXQocikmJnI9PW4u
dGFyZ2V0JiZsKCl9KSxlLm9uKCJtb3VzZXVwIGtleXVwIixsKSxlLm9uKCJrZXlkb3duIixkKX1m
dW5jdGlvbiBhKHQpe3ZhciBuPWwubGVuZ3RoLHI9dC5jb250ZW50LGE9dGlueW1jZS50cmltKG8p
O2lmKCJyYXciIT10LmZvcm1hdCl7Zm9yKDtuLS07KXI9ci5yZXBsYWNlKGxbbl0sZnVuY3Rpb24o
dCl7dmFyIG49YXJndW1lbnRzLGk9bltuLmxlbmd0aC0yXTtyZXR1cm4gaT4wJiYnIic9PXIuY2hh
ckF0KGktMSk/dDonPHNwYW4gY2xhc3M9IicrYSsnIiBkYXRhLW1jZS1jb250ZW50PSInK2UuZG9t
LmVuY29kZShuWzBdKSsnIj4nK2UuZG9tLmVuY29kZSgic3RyaW5nIj09dHlwZW9mIG5bMV0/blsx
XTpuWzBdKSsiPC9zcGFuPiJ9KTt0LmNvbnRlbnQ9cn19dmFyIGksbyxsLGY9dGlueW1jZS5kb20u
VHJlZVdhbGtlcixkPSJjb250ZW50ZWRpdGFibGUiLHU9ImRhdGEtbWNlLSIrZCxjPXRpbnltY2Uu
dXRpbC5WSztpPSIgIit0aW55bWNlLnRyaW0oZS5nZXRQYXJhbSgibm9uZWRpdGFibGVfZWRpdGFi
bGVfY2xhc3MiLCJtY2VFZGl0YWJsZSIpKSsiICIsbz0iICIrdGlueW1jZS50cmltKGUuZ2V0UGFy
YW0oIm5vbmVkaXRhYmxlX25vbmVkaXRhYmxlX2NsYXNzIiwibWNlTm9uRWRpdGFibGUiKSkrIiAi
LGw9ZS5nZXRQYXJhbSgibm9uZWRpdGFibGVfcmVnZXhwIiksbCYmIWwubGVuZ3RoJiYobD1bbF0p
LGUub24oIlByZUluaXQiLGZ1bmN0aW9uKCl7cigpLGwmJmUub24oIkJlZm9yZVNldENvbnRlbnQi
LGEpLGUucGFyc2VyLmFkZEF0dHJpYnV0ZUZpbHRlcigiY2xhc3MiLGZ1bmN0aW9uKGUpe2Zvcih2
YXIgdCxuLHI9ZS5sZW5ndGg7ci0tOyluPWVbcl0sdD0iICIrbi5hdHRyKCJjbGFzcyIpKyIgIiwt
MSE9PXQuaW5kZXhPZihpKT9uLmF0dHIodSwidHJ1ZSIpOi0xIT09dC5pbmRleE9mKG8pJiZuLmF0
dHIodSwiZmFsc2UiKX0pLGUuc2VyaWFsaXplci5hZGRBdHRyaWJ1dGVGaWx0ZXIodSxmdW5jdGlv
bihlKXtmb3IodmFyIHQsbj1lLmxlbmd0aDtuLS07KXQ9ZVtuXSxsJiZ0LmF0dHIoImRhdGEtbWNl
LWNvbnRlbnQiKT8odC5uYW1lPSIjdGV4dCIsdC50eXBlPTMsdC5yYXc9ITAsdC52YWx1ZT10LmF0
dHIoImRhdGEtbWNlLWNvbnRlbnQiKSk6KHQuYXR0cihkLG51bGwpLHQuYXR0cih1LG51bGwpKX0p
LGUucGFyc2VyLmFkZEF0dHJpYnV0ZUZpbHRlcihkLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPWUu
bGVuZ3RoO24tLTspdD1lW25dLHQuYXR0cih1LHQuYXR0cihkKSksdC5hdHRyKGQsbnVsbCl9KX0p
LGUub24oImRyb3AiLGZ1bmN0aW9uKGUpe24oZS50YXJnZXQpJiZlLnByZXZlbnREZWZhdWx0KCl9
KX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoInBhZ2VicmVhayIsZnVuY3Rpb24oZSl7dmFy
IGE9Im1jZS1wYWdlYnJlYWsiLHQ9ZS5nZXRQYXJhbSgicGFnZWJyZWFrX3NlcGFyYXRvciIsIjwh
LS0gcGFnZWJyZWFrIC0tPiIpLG49bmV3IFJlZ0V4cCh0LnJlcGxhY2UoL1tcP1wuXCpcW1xdXChc
KVx7XH1cK1xeXCRcOl0vZyxmdW5jdGlvbihlKXtyZXR1cm4iXFwiK2V9KSwiZ2kiKSxyPSc8aW1n
IHNyYz0iJyt0aW55bWNlLkVudi50cmFuc3BhcmVudFNyYysnIiBjbGFzcz0iJythKyciIGRhdGEt
bWNlLXJlc2l6ZT0iZmFsc2UiIC8+JztlLmFkZENvbW1hbmQoIm1jZVBhZ2VCcmVhayIsZnVuY3Rp
b24oKXtlLmluc2VydENvbnRlbnQoZS5zZXR0aW5ncy5wYWdlYnJlYWtfc3BsaXRfYmxvY2s/Ijxw
PiIrcisiPC9wPiI6cil9KSxlLmFkZEJ1dHRvbigicGFnZWJyZWFrIix7dGl0bGU6IlBhZ2UgYnJl
YWsiLGNtZDoibWNlUGFnZUJyZWFrIn0pLGUuYWRkTWVudUl0ZW0oInBhZ2VicmVhayIse3RleHQ6
IlBhZ2UgYnJlYWsiLGljb246InBhZ2VicmVhayIsY21kOiJtY2VQYWdlQnJlYWsiLGNvbnRleHQ6
Imluc2VydCJ9KSxlLm9uKCJSZXNvbHZlTmFtZSIsZnVuY3Rpb24odCl7IklNRyI9PXQudGFyZ2V0
Lm5vZGVOYW1lJiZlLmRvbS5oYXNDbGFzcyh0LnRhcmdldCxhKSYmKHQubmFtZT0icGFnZWJyZWFr
Iil9KSxlLm9uKCJjbGljayIsZnVuY3Rpb24odCl7dD10LnRhcmdldCwiSU1HIj09PXQubm9kZU5h
bWUmJmUuZG9tLmhhc0NsYXNzKHQsYSkmJmUuc2VsZWN0aW9uLnNlbGVjdCh0KX0pLGUub24oIkJl
Zm9yZVNldENvbnRlbnQiLGZ1bmN0aW9uKGUpe2UuY29udGVudD1lLmNvbnRlbnQucmVwbGFjZShu
LHIpfSksZS5vbigiUHJlSW5pdCIsZnVuY3Rpb24oKXtlLnNlcmlhbGl6ZXIuYWRkTm9kZUZpbHRl
cigiaW1nIixmdW5jdGlvbihhKXtmb3IodmFyIG4scixjPWEubGVuZ3RoO2MtLTspaWYobj1hW2Nd
LHI9bi5hdHRyKCJjbGFzcyIpLHImJi0xIT09ci5pbmRleE9mKCJtY2UtcGFnZWJyZWFrIikpe3Zh
ciBvPW4ucGFyZW50O2lmKGUuc2NoZW1hLmdldEJsb2NrRWxlbWVudHMoKVtvLm5hbWVdJiZlLnNl
dHRpbmdzLnBhZ2VicmVha19zcGxpdF9ibG9jayl7by50eXBlPTMsby52YWx1ZT10LG8ucmF3PSEw
LG4ucmVtb3ZlKCk7Y29udGludWV9bi50eXBlPTMsbi52YWx1ZT10LG4ucmF3PSEwfX0pfSl9KTsh
ZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2Zvcih2YXIgbixpPVtd
LHI9MDtyPGUubGVuZ3RoOysrcil7aWYobj1zW2Vbcl1dfHxvKGVbcl0pLCFuKXRocm93Im1vZHVs
ZSBkZWZpbml0aW9uIGRlcGVuZGVjeSBub3QgZm91bmQ6ICIrZVtyXTtpLnB1c2gobil9dC5hcHBs
eShudWxsLGkpfWZ1bmN0aW9uIGkoZSxpLHIpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyJp
bnZhbGlkIG1vZHVsZSBkZWZpbml0aW9uLCBtb2R1bGUgaWQgbXVzdCBiZSBkZWZpbmVkIGFuZCBi
ZSBhIHN0cmluZyI7aWYoaT09PXQpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlvbiwgZGVw
ZW5kZW5jaWVzIG11c3QgYmUgc3BlY2lmaWVkIjtpZihyPT09dCl0aHJvdyJpbnZhbGlkIG1vZHVs
ZSBkZWZpbml0aW9uLCBkZWZpbml0aW9uIGZ1bmN0aW9uIG11c3QgYmUgc3BlY2lmaWVkIjtuKGks
ZnVuY3Rpb24oKXtzW2VdPXIuYXBwbHkobnVsbCxhcmd1bWVudHMpfSl9ZnVuY3Rpb24gcihlKXty
ZXR1cm4hIXNbZV19ZnVuY3Rpb24gbyh0KXtmb3IodmFyIG49ZSxpPXQuc3BsaXQoL1suXC9dLyks
cj0wO3I8aS5sZW5ndGg7KytyKXtpZighbltpW3JdXSlyZXR1cm47bj1uW2lbcl1dfXJldHVybiBu
fWZ1bmN0aW9uIGEobil7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe2Zvcih2YXIgcj1lLG89
bltpXSxhPW8uc3BsaXQoL1suXC9dLyksbD0wO2w8YS5sZW5ndGgtMTsrK2wpclthW2xdXT09PXQm
JihyW2FbbF1dPXt9KSxyPXJbYVtsXV07clthW2EubGVuZ3RoLTFdXT1zW29dfX12YXIgcz17fSxs
PSJ0aW55bWNlL3Bhc3RlcGx1Z2luL1V0aWxzIixjPSJ0aW55bWNlL3V0aWwvVG9vbHMiLGQ9InRp
bnltY2UvaHRtbC9Eb21QYXJzZXIiLHU9InRpbnltY2UvaHRtbC9TY2hlbWEiLGY9InRpbnltY2Uv
cGFzdGVwbHVnaW4vQ2xpcGJvYXJkIixtPSJ0aW55bWNlL0VudiIscD0idGlueW1jZS91dGlsL1ZL
IixnPSJ0aW55bWNlL3Bhc3RlcGx1Z2luL1dvcmRGaWx0ZXIiLGg9InRpbnltY2UvaHRtbC9TZXJp
YWxpemVyIix2PSJ0aW55bWNlL2h0bWwvTm9kZSIsYj0idGlueW1jZS9wYXN0ZXBsdWdpbi9RdWly
a3MiLHk9InRpbnltY2UvcGFzdGVwbHVnaW4vUGx1Z2luIix4PSJ0aW55bWNlL1BsdWdpbk1hbmFn
ZXIiO2kobCxbYyxkLHVdLGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiBpKHQsbil7cmV0dXJuIGUu
ZWFjaChuLGZ1bmN0aW9uKGUpe3Q9ZS5jb25zdHJ1Y3Rvcj09UmVnRXhwP3QucmVwbGFjZShlLCIi
KTp0LnJlcGxhY2UoZVswXSxlWzFdKX0pLHR9ZnVuY3Rpb24gcihpKXtmdW5jdGlvbiByKGUpe3Zh
ciB0PWUubmFtZSxuPWU7aWYoImJyIj09PXQpcmV0dXJuIHZvaWQocys9IlxuIik7aWYobFt0XSYm
KHMrPSIgIiksY1t0XSlyZXR1cm4gdm9pZChzKz0iICIpO2lmKDM9PWUudHlwZSYmKHMrPWUudmFs
dWUpLCFlLnNob3J0RW5kZWQmJihlPWUuZmlyc3RDaGlsZCkpZG8gcihlKTt3aGlsZShlPWUubmV4
dCk7ZFt0XSYmbi5uZXh0JiYocys9IlxuIiwicCI9PXQmJihzKz0iXG4iKSl9dmFyIG89bmV3IG4s
YT1uZXcgdCh7fSxvKSxzPSIiLGw9by5nZXRTaG9ydEVuZGVkRWxlbWVudHMoKSxjPWUubWFrZU1h
cCgic2NyaXB0IG5vc2NyaXB0IHN0eWxlIHRleHRhcmVhIHZpZGVvIGF1ZGlvIGlmcmFtZSBvYmpl
Y3QiLCIgIiksZD1vLmdldEJsb2NrRWxlbWVudHMoKTtyZXR1cm4gcihhLnBhcnNlKGkpKSxzfXJl
dHVybntmaWx0ZXI6aSxpbm5lclRleHQ6cn19KSxpKGYsW20scCxsXSxmdW5jdGlvbihlLHQsbil7
cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIHIoZSl7dmFyIHQsbj1pLmRvbTtpZih0PWkuZmly
ZSgiQmVmb3JlUGFzdGVQcmVQcm9jZXNzIix7Y29udGVudDplfSksdD1pLmZpcmUoIlBhc3RlUHJl
UHJvY2VzcyIsdCksZT10LmNvbnRlbnQsIXQuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKGkuaGFz
RXZlbnRMaXN0ZW5lcnMoIlBhc3RlUG9zdFByb2Nlc3MiKSYmIXQuaXNEZWZhdWx0UHJldmVudGVk
KCkpe3ZhciByPW4uYWRkKGkuZ2V0Qm9keSgpLCJkaXYiLHtzdHlsZToiZGlzcGxheTpub25lIn0s
ZSk7dD1pLmZpcmUoIlBhc3RlUG9zdFByb2Nlc3MiLHtub2RlOnJ9KSxuLnJlbW92ZShyKSxlPXQu
bm9kZS5pbm5lckhUTUx9dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8aS5pbnNlcnRDb250ZW50KGUp
fX1mdW5jdGlvbiBvKGUpe2U9aS5kb20uZW5jb2RlKGUpLnJlcGxhY2UoL1xyXG4vZywiXG4iKTt2
YXIgdD1pLmRvbS5nZXRQYXJlbnQoaS5zZWxlY3Rpb24uZ2V0U3RhcnQoKSxpLmRvbS5pc0Jsb2Nr
KSxvPWkuc2V0dGluZ3MuZm9yY2VkX3Jvb3RfYmxvY2ssYTtvJiYoYT1pLmRvbS5jcmVhdGVIVE1M
KG8saS5zZXR0aW5ncy5mb3JjZWRfcm9vdF9ibG9ja19hdHRycyksYT1hLnN1YnN0cigwLGEubGVu
Z3RoLTMpKyI+IiksdCYmL14oUFJFfERJVikkLy50ZXN0KHQubm9kZU5hbWUpfHwhbz9lPW4uZmls
dGVyKGUsW1svXG4vZywiPGJyPiJdXSk6KGU9bi5maWx0ZXIoZSxbWy9cblxuL2csIjwvcD4iK2Fd
LFsvXiguKjxcL3A+KSg8cD4pJC8sYSsiJDEiXSxbL1xuL2csIjxiciAvPiJdXSksLTEhPWUuaW5k
ZXhPZigiPHA+IikmJihlPWErZSkpLHIoZSl9ZnVuY3Rpb24gYSgpe3ZhciB0PWkuZG9tLG49aS5n
ZXRCb2R5KCkscj1pLmRvbS5nZXRWaWV3UG9ydChpLmdldFdpbigpKSxvPXIueSxhPTIwLHM7aWYo
dj1pLnNlbGVjdGlvbi5nZXRSbmcoKSxpLmlubGluZSYmKHM9aS5zZWxlY3Rpb24uZ2V0U2Nyb2xs
Q29udGFpbmVyKCkscyYmcy5zY3JvbGxUb3A+MCYmKG89cy5zY3JvbGxUb3ApKSx2LmdldENsaWVu
dFJlY3RzKXt2YXIgbD12LmdldENsaWVudFJlY3RzKCk7aWYobC5sZW5ndGgpYT1vKyhsWzBdLnRv
cC10LmdldFBvcyhuKS55KTtlbHNle2E9bzt2YXIgYz12LnN0YXJ0Q29udGFpbmVyO2MmJigzPT1j
Lm5vZGVUeXBlJiZjLnBhcmVudE5vZGUhPW4mJihjPWMucGFyZW50Tm9kZSksMT09Yy5ub2RlVHlw
ZSYmKGE9dC5nZXRQb3MoYyxzfHxuKS55KSl9fWg9dC5hZGQoaS5nZXRCb2R5KCksImRpdiIse2lk
OiJtY2VwYXN0ZWJpbiIsY29udGVudEVkaXRhYmxlOiEwLCJkYXRhLW1jZS1ib2d1cyI6IjEiLHN0
eWxlOiJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogIithKyJweDt3aWR0aDogMTBweDsgaGVpZ2h0
OiAxMHB4OyBvdmVyZmxvdzogaGlkZGVuOyBvcGFjaXR5OiAwIn0seSksKGUuaWV8fGUuZ2Vja28p
JiZ0LnNldFN0eWxlKGgsImxlZnQiLCJydGwiPT10LmdldFN0eWxlKG4sImRpcmVjdGlvbiIsITAp
PzY1NTM1Oi02NTUzNSksdC5iaW5kKGgsImJlZm9yZWRlYWN0aXZhdGUgZm9jdXNpbiBmb2N1c291
dCIsZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX0pLGguZm9jdXMoKSxpLnNlbGVjdGlv
bi5zZWxlY3QoaCwhMCl9ZnVuY3Rpb24gcygpe2lmKGgpe2Zvcih2YXIgZTtlPWkuZG9tLmdldCgi
bWNlcGFzdGViaW4iKTspaS5kb20ucmVtb3ZlKGUpLGkuZG9tLnVuYmluZChlKTt2JiZpLnNlbGVj
dGlvbi5zZXRSbmcodil9eD0hMSxoPXY9bnVsbH1mdW5jdGlvbiBsKCl7dmFyIGU9eSx0LG47Zm9y
KHQ9aS5kb20uc2VsZWN0KCJkaXZbaWQ9bWNlcGFzdGViaW5dIiksbj10Lmxlbmd0aDtuLS07KXt2
YXIgcj10W25dLmlubmVySFRNTDtlPT15JiYoZT0iIiksci5sZW5ndGg+ZS5sZW5ndGgmJihlPXIp
fXJldHVybiBlfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9e307aWYoZSYmZS50eXBlcyl7dmFyIG49ZS5n
ZXREYXRhKCJUZXh0Iik7biYmbi5sZW5ndGg+MCYmKHRbInRleHQvcGxhaW4iXT1uKTtmb3IodmFy
IGk9MDtpPGUudHlwZXMubGVuZ3RoO2krKyl7dmFyIHI9ZS50eXBlc1tpXTt0W3JdPWUuZ2V0RGF0
YShyKX19cmV0dXJuIHR9ZnVuY3Rpb24gZChlKXtyZXR1cm4gYyhlLmNsaXBib2FyZERhdGF8fGku
Z2V0RG9jKCkuZGF0YVRyYW5zZmVyKX1mdW5jdGlvbiB1KGUsdCl7ZnVuY3Rpb24gbihlKXtpZigi
aW1hZ2UvcG5nIj09b1thXS50eXBlKXt2YXIgdD1uZXcgRmlsZVJlYWRlcjtyZXR1cm4gdC5vbmxv
YWQ9ZnVuY3Rpb24oKXtyKCc8aW1nIHNyYz0iJyt0LnJlc3VsdCsnIj4nKX0sdC5yZWFkQXNEYXRh
VVJMKGUuZ2V0QXNGaWxlKCkpLCEwfX1pZighKCFpLnNldHRpbmdzLnBhc3RlX2RhdGFfaW1hZ2Vz
fHwidGV4dC9odG1sImluIHR8fCJ0ZXh0L3BsYWluImluIHQpJiZlLmNsaXBib2FyZERhdGEpe3Zh
ciBvPWUuY2xpcGJvYXJkRGF0YS5pdGVtcztpZihvKWZvcih2YXIgYT0wO2E8by5sZW5ndGg7YSsr
KWlmKG4ob1thXSkpcmV0dXJuITB9fWZ1bmN0aW9uIGYoZSl7dmFyIHQ9aS5nZXREb2MoKSxuO2lm
KHQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCl7dmFyIHI9dC5jYXJldFBvc2l0aW9uRnJvbVBvaW50
KGUuY2xpZW50WCxlLmNsaWVudFkpO249dC5jcmVhdGVSYW5nZSgpLG4uc2V0U3RhcnQoci5vZmZz
ZXROb2RlLHIub2Zmc2V0KSxuLmNvbGxhcHNlKCEwKX1lbHNlIHQuY2FyZXRSYW5nZUZyb21Qb2lu
dCYmKG49dC5jYXJldFJhbmdlRnJvbVBvaW50KGUuY2xpZW50WCxlLmNsaWVudFkpKTtyZXR1cm4g
bn1mdW5jdGlvbiBtKGUsdCl7cmV0dXJuIHQgaW4gZSYmZVt0XS5sZW5ndGg+MH1mdW5jdGlvbiBw
KCl7aS5vbigia2V5ZG93biIsZnVuY3Rpb24obil7aWYoIW4uaXNEZWZhdWx0UHJldmVudGVkKCkm
Jih0Lm1ldGFLZXlQcmVzc2VkKG4pJiY4Nj09bi5rZXlDb2RlfHxuLnNoaWZ0S2V5JiY0NT09bi5r
ZXlDb2RlKSl7aWYoeD1uLnNoaWZ0S2V5JiY4Nj09bi5rZXlDb2RlLG4uc3RvcEltbWVkaWF0ZVBy
b3BhZ2F0aW9uKCksYj0obmV3IERhdGUpLmdldFRpbWUoKSxlLmllJiZ4KXJldHVybiBuLnByZXZl
bnREZWZhdWx0KCksdm9pZCBpLmZpcmUoInBhc3RlIix7aWVGYWtlOiEwfSk7cygpLGEoKX19KSxp
Lm9uKCJwYXN0ZSIsZnVuY3Rpb24odCl7dmFyIGM9ZCh0KSxmPShuZXcgRGF0ZSkuZ2V0VGltZSgp
LWI8MWUzLHA9InRleHQiPT1nLnBhc3RlRm9ybWF0fHx4O3JldHVybiB0LmlzRGVmYXVsdFByZXZl
bnRlZCgpP3ZvaWQgcygpOnUodCxjKT92b2lkIHMoKTooZnx8dC5wcmV2ZW50RGVmYXVsdCgpLCFl
LmllfHxmJiYhdC5pZUZha2V8fChhKCksaS5kb20uYmluZChoLCJwYXN0ZSIsZnVuY3Rpb24oZSl7
ZS5zdG9wUHJvcGFnYXRpb24oKX0pLGkuZ2V0RG9jKCkuZXhlY0NvbW1hbmQoIlBhc3RlIiwhMSxu
dWxsKSxjWyJ0ZXh0L2h0bWwiXT1sKCkpLHZvaWQgc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBl
PWwoKTtyZXR1cm4gaCYmaC5maXJzdENoaWxkJiYibWNlcGFzdGViaW4iPT09aC5maXJzdENoaWxk
LmlkJiYocD0hMCkscygpLCFwJiZmJiZlJiZlIT15JiYoY1sidGV4dC9odG1sIl09ZSksZSE9eSYm
Znx8KGU9Y1sidGV4dC9odG1sIl18fGNbInRleHQvcGxhaW4iXXx8eSxlIT15KT8oIW0oYywidGV4
dC9odG1sIikmJm0oYywidGV4dC9wbGFpbiIpJiYocD0hMCksdm9pZChwP28oY1sidGV4dC9wbGFp
biJdfHxuLmlubmVyVGV4dChlKSk6cihlKSkpOnZvaWQoZnx8aS53aW5kb3dNYW5hZ2VyLmFsZXJ0
KCJQbGVhc2UgdXNlIEN0cmwrVi9DbWQrViBrZXlib2FyZCBzaG9ydGN1dHMgdG8gcGFzdGUgY29u
dGVudHMuIikpfSwwKSl9KSxpLm9uKCJkcmFnc3RhcnQiLGZ1bmN0aW9uKGUpe2lmKGUuZGF0YVRy
YW5zZmVyLnR5cGVzKXRyeXtlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJtY2UtaW50ZXJuYWwiLGku
c2VsZWN0aW9uLmdldENvbnRlbnQoKSl9Y2F0Y2godCl7fX0pLGkub24oImRyb3AiLGZ1bmN0aW9u
KGUpe3ZhciB0PWYoZSk7aWYodCYmIWUuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBuPWMoZS5k
YXRhVHJhbnNmZXIpLGE9blsibWNlLWludGVybmFsIl18fG5bInRleHQvaHRtbCJdfHxuWyJ0ZXh0
L3BsYWluIl07YSYmKGUucHJldmVudERlZmF1bHQoKSxpLnVuZG9NYW5hZ2VyLnRyYW5zYWN0KGZ1
bmN0aW9uKCl7blsibWNlLWludGVybmFsIl0mJmkuZXhlY0NvbW1hbmQoIkRlbGV0ZSIpLGkuc2Vs
ZWN0aW9uLnNldFJuZyh0KSxuWyJ0ZXh0L2h0bWwiXT9yKGEpOm8oYSl9KSl9fSl9dmFyIGc9dGhp
cyxoLHYsYj0wLHk9IiVNQ0VQQVNURUJJTiUiLHg7Zy5wYXN0ZUh0bWw9cixnLnBhc3RlVGV4dD1v
LGkub24oInByZUluaXQiLGZ1bmN0aW9uKCl7cCgpLGkucGFyc2VyLmFkZE5vZGVGaWx0ZXIoImlt
ZyIsZnVuY3Rpb24odCl7aWYoIWkuc2V0dGluZ3MucGFzdGVfZGF0YV9pbWFnZXMpZm9yKHZhciBu
PXQubGVuZ3RoO24tLTspe3ZhciByPXRbbl0uYXR0cmlidXRlcy5tYXAuc3JjO3ImJjA9PT1yLmlu
ZGV4T2YoImRhdGE6aW1hZ2UiKSYmKHRbbl0uYXR0cigiZGF0YS1tY2Utb2JqZWN0Iil8fHI9PT1l
LnRyYW5zcGFyZW50U3JjfHx0W25dLnJlbW92ZSgpKX19KX0pLGkub24oIlByZVByb2Nlc3MiLGZ1
bmN0aW9uKCl7aS5kb20ucmVtb3ZlKGkuZG9tLmdldCgibWNlcGFzdGViaW4iKSl9KX19KSxpKGcs
W2MsZCx1LGgsdixsXSxmdW5jdGlvbihlLHQsbixpLHIsbyl7ZnVuY3Rpb24gYShlKXtyZXR1cm4v
PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuInxjbGFzcz0iP01zb3xzdHlsZT0iW14iXSpcYm1z
by18c3R5bGU9J1teJyddKlxibXNvLXx3OldvcmREb2N1bWVudC9pLnRlc3QoZSl8fC9jbGFzcz0i
T3V0bGluZUVsZW1lbnQvLnRlc3QoZSl8fC9pZD0iP2RvY3NcLWludGVybmFsXC1ndWlkXC0vLnRl
c3QoZSl9ZnVuY3Rpb24gcyhzKXt2YXIgbD1zLnNldHRpbmdzO3Mub24oIkJlZm9yZVBhc3RlUHJl
UHJvY2VzcyIsZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZChlKXtmdW5jdGlvbiB0KGUsdCxhLHMpe3Zh
ciBsPWUuX2xpc3RMZXZlbHx8bztsIT1vJiYobz5sP24mJihuPW4ucGFyZW50LnBhcmVudCk6KGk9
bixuPW51bGwpKSxuJiZuLm5hbWU9PWE/bi5hcHBlbmQoZSk6KGk9aXx8bixuPW5ldyByKGEsMSks
cz4xJiZuLmF0dHIoInN0YXJ0IiwiIitzKSxlLndyYXAobikpLGUubmFtZT0ibGkiLHQudmFsdWU9
IiI7dmFyIGM9dC5uZXh0O2MmJjM9PWMudHlwZSYmKGMudmFsdWU9Yy52YWx1ZS5yZXBsYWNlKC9e
XHUwMGEwKy8sIiIpKSxsPm8mJmkmJmkubGFzdENoaWxkLmFwcGVuZChuKSxvPWx9Zm9yKHZhciBu
LGksbz0xLGE9ZS5nZXRBbGwoInAiKSxzPTA7czxhLmxlbmd0aDtzKyspaWYoZT1hW3NdLCJwIj09
ZS5uYW1lJiZlLmZpcnN0Q2hpbGQpe2Zvcih2YXIgbD0iIixjPWUuZmlyc3RDaGlsZDtjJiYhKGw9
Yy52YWx1ZSk7KWM9Yy5maXJzdENoaWxkO2lmKC9eXHMqW1x1MjAyMlx1MDBiN1x1MDBhN1x1MDBk
OFx1MjVDRl1ccyokLy50ZXN0KGwpKXt0KGUsYywidWwiKTtjb250aW51ZX1pZigvXlxzKlx3K1wu
JC8udGVzdChsKSl7dmFyIGQ9LyhbMC05XSlcLi8uZXhlYyhsKSx1PTE7ZCYmKHU9cGFyc2VJbnQo
ZFsxXSwxMCkpLHQoZSxjLCJvbCIsdSk7Y29udGludWV9bj1udWxsfX1mdW5jdGlvbiB1KHQsbil7
dmFyIGk9e30sbz1zLmRvbS5wYXJzZVN0eWxlKG4pO2lmKCJwIj09PXQubmFtZSl7dmFyIGE9L21z
by1saXN0Olx3KyBcdysoWzAtOV0rKS8uZXhlYyhuKTthJiYodC5fbGlzdExldmVsPXBhcnNlSW50
KGFbMV0sMTApKX1yZXR1cm4gZS5lYWNoKG8sZnVuY3Rpb24oZSxuKXtzd2l0Y2gobil7Y2FzZSJo
b3Jpei1hbGlnbiI6bj0idGV4dC1hbGlnbiI7YnJlYWs7Y2FzZSJ2ZXJ0LWFsaWduIjpuPSJ2ZXJ0
aWNhbC1hbGlnbiI7YnJlYWs7Y2FzZSJmb250LWNvbG9yIjpjYXNlIm1zby1mb3JlZ3JvdW5kIjpu
PSJjb2xvciI7YnJlYWs7Y2FzZSJtc28tYmFja2dyb3VuZCI6Y2FzZSJtc28taGlnaGxpZ2h0Ijpu
PSJiYWNrZ3JvdW5kIjticmVhaztjYXNlImZvbnQtd2VpZ2h0IjpjYXNlImZvbnQtc3R5bGUiOnJl
dHVybiB2b2lkKCJub3JtYWwiIT1lJiYoaVtuXT1lKSk7Y2FzZSJtc28tZWxlbWVudCI6aWYoL14o
Y29tbWVudHxjb21tZW50LWxpc3QpJC9pLnRlc3QoZSkpcmV0dXJuIHZvaWQgdC5yZW1vdmUoKX1y
ZXR1cm4gMD09PW4uaW5kZXhPZigibXNvLWNvbW1lbnQiKT92b2lkIHQucmVtb3ZlKCk6dm9pZCgw
IT09bi5pbmRleE9mKCJtc28tIikmJigiYWxsIj09bXx8cCYmcFtuXSkmJihpW25dPWUpKX0pLC8o
Ym9sZCkvaS50ZXN0KGlbImZvbnQtd2VpZ2h0Il0pJiYoZGVsZXRlIGlbImZvbnQtd2VpZ2h0Il0s
dC53cmFwKG5ldyByKCJiIiwxKSkpLC8oaXRhbGljKS9pLnRlc3QoaVsiZm9udC1zdHlsZSJdKSYm
KGRlbGV0ZSBpWyJmb250LXN0eWxlIl0sdC53cmFwKG5ldyByKCJpIiwxKSkpLGk9cy5kb20uc2Vy
aWFsaXplU3R5bGUoaSx0Lm5hbWUpLGk/aTpudWxsfXZhciBmPWMuY29udGVudCxtLHA7aWYobT1s
LnBhc3RlX3JldGFpbl9zdHlsZV9wcm9wZXJ0aWVzLG0mJihwPWUubWFrZU1hcChtLnNwbGl0KC9b
LCBdLykpKSxsLnBhc3RlX2VuYWJsZV9kZWZhdWx0X2ZpbHRlcnMhPT0hMSYmYShjLmNvbnRlbnQp
KXtjLndvcmRDb250ZW50PSEwLGY9by5maWx0ZXIoZixbLzwhLS1bXHNcU10rPy0tPi9naSwvPCgh
fHNjcmlwdFtePl0qPi4qPzxcL3NjcmlwdCg/PVs+XHNdKXxcLz8oXD94bWwoOlx3Kyk/fGltZ3xt
ZXRhfGxpbmt8c3R5bGV8XHc6XHcrKSg/PVtcc1wvPl0pKVtePl0qPi9naSxbLzwoXC8/KXM+L2dp
LCI8JDFzdHJpa2U+Il0sWy8mbmJzcDsvZ2ksIlx4YTAiXSxbLzxzcGFuXHMrc3R5bGVccyo9XHMq
IlxzKm1zby1zcGFjZXJ1blxzKjpccyp5ZXNccyo7P1xzKiJccyo+KFtcc1x1MDBhMF0qKTxcL3Nw
YW4+L2dpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubGVuZ3RoPjA/dC5yZXBsYWNlKC8uLywiICIp
LnNsaWNlKE1hdGguZmxvb3IodC5sZW5ndGgvMikpLnNwbGl0KCIiKS5qb2luKCJceGEwIik6IiJ9
XV0pO3ZhciBnPWwucGFzdGVfd29yZF92YWxpZF9lbGVtZW50cztnfHwoZz0iLXN0cm9uZy9iLC1l
bS9pLC1zcGFuLC1wLC1vbCwtdWwsLWxpLC1oMSwtaDIsLWgzLC1oNCwtaDUsLWg2LC1wL2Rpdiwt
dGFibGVbd2lkdGhdLC10ciwtdGRbY29sc3Bhbnxyb3dzcGFufHdpZHRoXSwtdGgsLXRoZWFkLC10
Zm9vdCwtdGJvZHksLWFbaHJlZnxuYW1lXSxzdWIsc3VwLHN0cmlrZSxicixkZWwiKTt2YXIgaD1u
ZXcgbih7dmFsaWRfZWxlbWVudHM6Zyx2YWxpZF9jaGlsZHJlbjoiLWxpW3BdIn0pO2UuZWFjaCho
LmVsZW1lbnRzLGZ1bmN0aW9uKGUpe2UuYXR0cmlidXRlc1siY2xhc3MiXXx8KGUuYXR0cmlidXRl
c1siY2xhc3MiXT17fSxlLmF0dHJpYnV0ZXNPcmRlci5wdXNoKCJjbGFzcyIpKSxlLmF0dHJpYnV0
ZXMuc3R5bGV8fChlLmF0dHJpYnV0ZXMuc3R5bGU9e30sZS5hdHRyaWJ1dGVzT3JkZXIucHVzaCgi
c3R5bGUiKSl9KTt2YXIgdj1uZXcgdCh7fSxoKTt2LmFkZEF0dHJpYnV0ZUZpbHRlcigic3R5bGUi
LGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxuO3QtLTspbj1lW3RdLG4uYXR0cigic3R5
bGUiLHUobixuLmF0dHIoInN0eWxlIikpKSwic3BhbiI9PW4ubmFtZSYmbi5wYXJlbnQmJiFuLmF0
dHJpYnV0ZXMubGVuZ3RoJiZuLnVud3JhcCgpfSksdi5hZGRBdHRyaWJ1dGVGaWx0ZXIoImNsYXNz
IixmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5sZW5ndGgsbixpO3QtLTspbj1lW3RdLGk9bi5hdHRy
KCJjbGFzcyIpLC9eKE1zb0NvbW1lbnRSZWZlcmVuY2V8TXNvQ29tbWVudFRleHR8bXNvRGVsKSQv
aS50ZXN0KGkpJiZuLnJlbW92ZSgpLG4uYXR0cigiY2xhc3MiLG51bGwpfSksdi5hZGROb2RlRmls
dGVyKCJkZWwiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aDt0LS07KWVbdF0ucmVtb3Zl
KCl9KSx2LmFkZE5vZGVGaWx0ZXIoImEiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxu
LGkscjt0LS07KWlmKG49ZVt0XSxpPW4uYXR0cigiaHJlZiIpLHI9bi5hdHRyKCJuYW1lIiksaSYm
LTEhPWkuaW5kZXhPZigiI19tc29jb21fIikpbi5yZW1vdmUoKTtlbHNlIGlmKGkmJjA9PT1pLmlu
ZGV4T2YoImZpbGU6Ly8iKSYmKGk9aS5zcGxpdCgiIyIpWzFdLGkmJihpPSIjIitpKSksaXx8cil7
aWYociYmIS9eXz8oPzp0b2N8ZWRufGZ0bikvaS50ZXN0KHIpKXtuLnVud3JhcCgpO2NvbnRpbnVl
fW4uYXR0cih7aHJlZjppLG5hbWU6cn0pfWVsc2Ugbi51bndyYXAoKX0pO3ZhciBiPXYucGFyc2Uo
Zik7ZChiKSxjLmNvbnRlbnQ9bmV3IGkoe30saCkuc2VyaWFsaXplKGIpfX0pfXJldHVybiBzLmlz
V29yZENvbnRlbnQ9YSxzfSksaShiLFttLGMsZyxsXSxmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4g
ZnVuY3Rpb24ocil7ZnVuY3Rpb24gbyhlKXtyLm9uKCJCZWZvcmVQYXN0ZVByZVByb2Nlc3MiLGZ1
bmN0aW9uKHQpe3QuY29udGVudD1lKHQuY29udGVudCl9KX1mdW5jdGlvbiBhKGUpe3JldHVybiBl
PWkuZmlsdGVyKGUsWy9eW1xzXFNdKjxib2R5W14+XSo+XHMqPCEtLVN0YXJ0RnJhZ21lbnQtLT58
PCEtLUVuZEZyYWdtZW50LS0+XHMqPFwvYm9keVtePl0qPltcc1xTXSokL2csLzwhLS1TdGFydEZy
YWdtZW50LS0+fDwhLS1FbmRGcmFnbWVudC0tPi9nLFsvPHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZl
cnRlZC1zcGFjZSI+XHUwMGEwPFwvc3Bhbj4vZywiXHhhMCJdLC88YnI+JC9pXSl9ZnVuY3Rpb24g
cyhlKXtpZighbi5pc1dvcmRDb250ZW50KGUpKXJldHVybiBlO3ZhciBvPVtdO3QuZWFjaChyLnNj
aGVtYS5nZXRCbG9ja0VsZW1lbnRzKCksZnVuY3Rpb24oZSx0KXtvLnB1c2godCl9KTt2YXIgYT1u
ZXcgUmVnRXhwKCIoPzo8YnI+Jm5ic3A7W1xcc1xcclxcbl0rfDxicj4pKig8XFwvPygiK28uam9p
bigifCIpKyIpW14+XSo+KSg/Ojxicj4mbmJzcDtbXFxzXFxyXFxuXSt8PGJyPikqIiwiZyIpO3Jl
dHVybiBlPWkuZmlsdGVyKGUsW1thLCIkMSJdXSksZT1pLmZpbHRlcihlLFtbLzxicj48YnI+L2cs
IjxCUj48QlI+Il0sWy88YnI+L2csIiAiXSxbLzxCUj48QlI+L2csIjxicj4iXV0pfWZ1bmN0aW9u
IGwoZSl7aWYobi5pc1dvcmRDb250ZW50KGUpKXJldHVybiBlO3ZhciB0PXIuc2V0dGluZ3MucGFz
dGVfd2Via2l0X3N0eWxlcztpZihyLnNldHRpbmdzLnBhc3RlX3JlbW92ZV9zdHlsZXNfaWZfd2Vi
a2l0PT09ITF8fCJhbGwiPT10KXJldHVybiBlO2lmKHQmJih0PXQuc3BsaXQoL1ssIF0vKSksdCl7
dmFyIGk9ci5kb20sbz1yLnNlbGVjdGlvbi5nZXROb2RlKCk7ZT1lLnJlcGxhY2UoLyg8W14+XSsp
IHN0eWxlPSIoW14iXSopIihbXj5dKj4pL2dpLGZ1bmN0aW9uKGUsbixyLGEpe3ZhciBzPWkucGFy
c2VTdHlsZShyLCJzcGFuIiksbD17fTtpZigibm9uZSI9PT10KXJldHVybiBuK2E7Zm9yKHZhciBj
PTA7Yzx0Lmxlbmd0aDtjKyspe3ZhciBkPXNbdFtjXV0sdT1pLmdldFN0eWxlKG8sdFtjXSwhMCk7
L2NvbG9yLy50ZXN0KHRbY10pJiYoZD1pLnRvSGV4KGQpLHU9aS50b0hleCh1KSksdSE9ZCYmKGxb
dFtjXV09ZCl9cmV0dXJuIGw9aS5zZXJpYWxpemVTdHlsZShsLCJzcGFuIiksbD9uKycgc3R5bGU9
IicrbCsnIicrYToiIn0pfWVsc2UgZT1lLnJlcGxhY2UoLyg8W14+XSspIHN0eWxlPSIoW14iXSop
IihbXj5dKj4pL2dpLCIkMSQzIik7cmV0dXJuIGU9ZS5yZXBsYWNlKC8oPFtePl0rKSBkYXRhLW1j
ZS1zdHlsZT0iKFteIl0rKSIoW14+XSo+KS9naSxmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gdCsn
IHN0eWxlPSInK24rJyInK2l9KX1lLndlYmtpdCYmKG8obCksbyhhKSksZS5pZSYmbyhzKX19KSxp
KHksW3gsZixnLGJdLGZ1bmN0aW9uKGUsdCxuLGkpe3ZhciByO2UuYWRkKCJwYXN0ZSIsZnVuY3Rp
b24oZSl7ZnVuY3Rpb24gbygpeyJ0ZXh0Ij09cy5wYXN0ZUZvcm1hdD8odGhpcy5hY3RpdmUoITEp
LHMucGFzdGVGb3JtYXQ9Imh0bWwiKToocy5wYXN0ZUZvcm1hdD0idGV4dCIsdGhpcy5hY3RpdmUo
ITApLHJ8fChlLndpbmRvd01hbmFnZXIuYWxlcnQoIlBhc3RlIGlzIG5vdyBpbiBwbGFpbiB0ZXh0
IG1vZGUuIENvbnRlbnRzIHdpbGwgbm93IGJlIHBhc3RlZCBhcyBwbGFpbiB0ZXh0IHVudGlsIHlv
dSB0b2dnbGUgdGhpcyBvcHRpb24gb2ZmLiIpLHI9ITApKX12YXIgYT10aGlzLHMsbD1lLnNldHRp
bmdzO2EuY2xpcGJvYXJkPXM9bmV3IHQoZSksYS5xdWlya3M9bmV3IGkoZSksYS53b3JkRmlsdGVy
PW5ldyBuKGUpLGUuc2V0dGluZ3MucGFzdGVfYXNfdGV4dCYmKGEuY2xpcGJvYXJkLnBhc3RlRm9y
bWF0PSJ0ZXh0IiksbC5wYXN0ZV9wcmVwcm9jZXNzJiZlLm9uKCJQYXN0ZVByZVByb2Nlc3MiLGZ1
bmN0aW9uKGUpe2wucGFzdGVfcHJlcHJvY2Vzcy5jYWxsKGEsYSxlKX0pLGwucGFzdGVfcG9zdHBy
b2Nlc3MmJmUub24oIlBhc3RlUG9zdFByb2Nlc3MiLGZ1bmN0aW9uKGUpe2wucGFzdGVfcG9zdHBy
b2Nlc3MuY2FsbChhLGEsZSl9KSxlLmFkZENvbW1hbmQoIm1jZUluc2VydENsaXBib2FyZENvbnRl
bnQiLGZ1bmN0aW9uKGUsdCl7dC5jb250ZW50JiZhLmNsaXBib2FyZC5wYXN0ZUh0bWwodC5jb250
ZW50KSx0LnRleHQmJmEuY2xpcGJvYXJkLnBhc3RlVGV4dCh0LnRleHQpfSksZS5wYXN0ZV9ibG9j
a19kcm9wJiZlLm9uKCJkcmFnZW5kIGRyYWdvdmVyIGRyYWdnZXN0dXJlIGRyYWdkcm9wIGRyb3Ag
ZHJhZyIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCl9
KSxlLnNldHRpbmdzLnBhc3RlX2RhdGFfaW1hZ2VzfHxlLm9uKCJkcm9wIixmdW5jdGlvbihlKXt2
YXIgdD1lLmRhdGFUcmFuc2Zlcjt0JiZ0LmZpbGVzJiZ0LmZpbGVzLmxlbmd0aD4wJiZlLnByZXZl
bnREZWZhdWx0KCl9KSxlLmFkZEJ1dHRvbigicGFzdGV0ZXh0Iix7aWNvbjoicGFzdGV0ZXh0Iix0
b29sdGlwOiJQYXN0ZSBhcyB0ZXh0IixvbmNsaWNrOm8sYWN0aXZlOiJ0ZXh0Ij09YS5jbGlwYm9h
cmQucGFzdGVGb3JtYXR9KSxlLmFkZE1lbnVJdGVtKCJwYXN0ZXRleHQiLHt0ZXh0OiJQYXN0ZSBh
cyB0ZXh0IixzZWxlY3RhYmxlOiEwLGFjdGl2ZTpzLnBhc3RlRm9ybWF0LG9uY2xpY2s6b30pfSl9
KSxhKFtsLGYsZyxiLHldKX0odGhpcyk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgicHJldmll
dyIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zZXR0aW5ncyxpPSF0aW55bWNlLkVudi5pZTtlLmFkZENv
bW1hbmQoIm1jZVByZXZpZXciLGZ1bmN0aW9uKCl7ZS53aW5kb3dNYW5hZ2VyLm9wZW4oe3RpdGxl
OiJQcmV2aWV3Iix3aWR0aDpwYXJzZUludChlLmdldFBhcmFtKCJwbHVnaW5fcHJldmlld193aWR0
aCIsIjY1MCIpLDEwKSxoZWlnaHQ6cGFyc2VJbnQoZS5nZXRQYXJhbSgicGx1Z2luX3ByZXZpZXdf
aGVpZ2h0IiwiNTAwIiksMTApLGh0bWw6JzxpZnJhbWUgc3JjPSJqYXZhc2NyaXB0OlwnXCciIGZy
YW1lYm9yZGVyPSIwIicrKGk/JyBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIic6IiIpKyI+PC9pZnJh
bWU+IixidXR0b25zOnt0ZXh0OiJDbG9zZSIsb25jbGljazpmdW5jdGlvbigpe3RoaXMucGFyZW50
KCkucGFyZW50KCkuY2xvc2UoKX19LG9uUG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBuLGE9IiI7
YSs9JzxiYXNlIGhyZWY9IicrZS5kb2N1bWVudEJhc2VVUkkuZ2V0VVJJKCkrJyI+Jyx0aW55bWNl
LmVhY2goZS5jb250ZW50Q1NTLGZ1bmN0aW9uKHQpe2ErPSc8bGluayB0eXBlPSJ0ZXh0L2NzcyIg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSInK2UuZG9jdW1lbnRCYXNlVVJJLnRvQWJzb2x1dGUodCkr
JyI+J30pO3ZhciByPXQuYm9keV9pZHx8InRpbnltY2UiOy0xIT1yLmluZGV4T2YoIj0iKSYmKHI9
ZS5nZXRQYXJhbSgiYm9keV9pZCIsIiIsImhhc2giKSxyPXJbZS5pZF18fHIpO3ZhciBkPXQuYm9k
eV9jbGFzc3x8IiI7LTEhPWQuaW5kZXhPZigiPSIpJiYoZD1lLmdldFBhcmFtKCJib2R5X2NsYXNz
IiwiIiwiaGFzaCIpLGQ9ZFtlLmlkXXx8IiIpO3ZhciBvPWUuc2V0dGluZ3MuZGlyZWN0aW9uYWxp
dHk/JyBkaXI9IicrZS5zZXR0aW5ncy5kaXJlY3Rpb25hbGl0eSsnIic6IiI7aWYobj0iPCFET0NU
WVBFIGh0bWw+PGh0bWw+PGhlYWQ+IithKyc8L2hlYWQ+PGJvZHkgaWQ9IicrcisnIiBjbGFzcz0i
bWNlLWNvbnRlbnQtYm9keSAnK2QrJyInK28rIj4iK2UuZ2V0Q29udGVudCgpKyI8L2JvZHk+PC9o
dG1sPiIsaSl0aGlzLmdldEVsKCJib2R5IikuZmlyc3RDaGlsZC5zcmM9ImRhdGE6dGV4dC9odG1s
O2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQobik7ZWxzZXt2YXIgcz10aGlzLmdl
dEVsKCJib2R5IikuZmlyc3RDaGlsZC5jb250ZW50V2luZG93LmRvY3VtZW50O3Mub3BlbigpLHMu
d3JpdGUobikscy5jbG9zZSgpfX19KX0pLGUuYWRkQnV0dG9uKCJwcmV2aWV3Iix7dGl0bGU6IlBy
ZXZpZXciLGNtZDoibWNlUHJldmlldyJ9KSxlLmFkZE1lbnVJdGVtKCJwcmV2aWV3Iix7dGV4dDoi
UHJldmlldyIsY21kOiJtY2VQcmV2aWV3Iixjb250ZXh0OiJ2aWV3In0pfSk7dGlueW1jZS5QbHVn
aW5NYW5hZ2VyLmFkZCgicHJpbnQiLGZ1bmN0aW9uKHQpe3QuYWRkQ29tbWFuZCgibWNlUHJpbnQi
LGZ1bmN0aW9uKCl7dC5nZXRXaW4oKS5wcmludCgpfSksdC5hZGRCdXR0b24oInByaW50Iix7dGl0
bGU6IlByaW50IixjbWQ6Im1jZVByaW50In0pLHQuYWRkU2hvcnRjdXQoIkN0cmwrUCIsIiIsIm1j
ZVByaW50IiksdC5hZGRNZW51SXRlbSgicHJpbnQiLHt0ZXh0OiJQcmludCIsY21kOiJtY2VQcmlu
dCIsaWNvbjoicHJpbnQiLHNob3J0Y3V0OiJDdHJsK1AiLGNvbnRleHQ6ImZpbGUifSl9KTt0aW55
bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJzYXZlIixmdW5jdGlvbihlKXtmdW5jdGlvbiBhKCl7dmFy
IGE7cmV0dXJuIGE9dGlueW1jZS5ET00uZ2V0UGFyZW50KGUuaWQsImZvcm0iKSwhZS5nZXRQYXJh
bSgic2F2ZV9lbmFibGV3aGVuZGlydHkiLCEwKXx8ZS5pc0RpcnR5KCk/KHRpbnltY2UudHJpZ2dl
clNhdmUoKSxlLmdldFBhcmFtKCJzYXZlX29uc2F2ZWNhbGxiYWNrIik/dm9pZChlLmV4ZWNDYWxs
YmFjaygic2F2ZV9vbnNhdmVjYWxsYmFjayIsZSkmJihlLnN0YXJ0Q29udGVudD10aW55bWNlLnRy
aW0oZS5nZXRDb250ZW50KHtmb3JtYXQ6InJhdyJ9KSksZS5ub2RlQ2hhbmdlZCgpKSk6dm9pZChh
PyhlLmlzTm90RGlydHk9ITAsKCFhLm9uc3VibWl0fHxhLm9uc3VibWl0KCkpJiYoImZ1bmN0aW9u
Ij09dHlwZW9mIGEuc3VibWl0P2Euc3VibWl0KCk6ZS53aW5kb3dNYW5hZ2VyLmFsZXJ0KCJFcnJv
cjogRm9ybSBzdWJtaXQgZmllbGQgY29sbGlzaW9uLiIpKSxlLm5vZGVDaGFuZ2VkKCkpOmUud2lu
ZG93TWFuYWdlci5hbGVydCgiRXJyb3I6IE5vIGZvcm0gZWxlbWVudCBmb3VuZC4iKSkpOnZvaWQg
MH1mdW5jdGlvbiBuKCl7dmFyIGE9dGlueW1jZS50cmltKGUuc3RhcnRDb250ZW50KTtyZXR1cm4g
ZS5nZXRQYXJhbSgic2F2ZV9vbmNhbmNlbGNhbGxiYWNrIik/dm9pZCBlLmV4ZWNDYWxsYmFjaygi
c2F2ZV9vbmNhbmNlbGNhbGxiYWNrIixlKTooZS5zZXRDb250ZW50KGEpLGUudW5kb01hbmFnZXIu
Y2xlYXIoKSx2b2lkIGUubm9kZUNoYW5nZWQoKSl9ZnVuY3Rpb24gdCgpe3ZhciBhPXRoaXM7ZS5v
bigibm9kZUNoYW5nZSIsZnVuY3Rpb24oKXthLmRpc2FibGVkKGUuZ2V0UGFyYW0oInNhdmVfZW5h
Ymxld2hlbmRpcnR5IiwhMCkmJiFlLmlzRGlydHkoKSl9KX1lLmFkZENvbW1hbmQoIm1jZVNhdmUi
LGEpLGUuYWRkQ29tbWFuZCgibWNlQ2FuY2VsIixuKSxlLmFkZEJ1dHRvbigic2F2ZSIse2ljb246
InNhdmUiLHRleHQ6IlNhdmUiLGNtZDoibWNlU2F2ZSIsZGlzYWJsZWQ6ITAsb25Qb3N0UmVuZGVy
OnR9KSxlLmFkZEJ1dHRvbigiY2FuY2VsIix7dGV4dDoiQ2FuY2VsIixpY29uOiExLGNtZDoibWNl
Q2FuY2VsIixkaXNhYmxlZDohMCxvblBvc3RSZW5kZXI6dH0pLGUuYWRkU2hvcnRjdXQoImN0cmwr
cyIsIiIsIm1jZVNhdmUiKX0pOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4sYSxyKXtmdW5j
dGlvbiBpKGUsdCl7aWYodD10fHwwLCFlWzBdKXRocm93ImZpbmRBbmRSZXBsYWNlRE9NVGV4dCBj
YW5ub3QgaGFuZGxlIHplcm8tbGVuZ3RoIG1hdGNoZXMiO3ZhciBuPWUuaW5kZXg7aWYodD4wKXt2
YXIgYT1lW3RdO2lmKCFhKXRocm93IkludmFsaWQgY2FwdHVyZSBncm91cCI7bis9ZVswXS5pbmRl
eE9mKGEpLGVbMF09YX1yZXR1cm5bbixuK2VbMF0ubGVuZ3RoLFtlWzBdXV19ZnVuY3Rpb24gZChl
KXt2YXIgdDtpZigzPT09ZS5ub2RlVHlwZSlyZXR1cm4gZS5kYXRhO2lmKGhbZS5ub2RlTmFtZV0m
JiF1W2Uubm9kZU5hbWVdKXJldHVybiIiO2lmKHQ9IiIsKHVbZS5ub2RlTmFtZV18fG1bZS5ub2Rl
TmFtZV0pJiYodCs9IlxuIiksZT1lLmZpcnN0Q2hpbGQpZG8gdCs9ZChlKTt3aGlsZShlPWUubmV4
dFNpYmxpbmcpO3JldHVybiB0fWZ1bmN0aW9uIG8oZSx0LG4pe3ZhciBhLHIsaSxkLG89W10sbD0w
LGM9ZSxzPXQuc2hpZnQoKSxmPTA7ZTpmb3IoOzspe2lmKCh1W2Mubm9kZU5hbWVdfHxtW2Mubm9k
ZU5hbWVdKSYmbCsrLDM9PT1jLm5vZGVUeXBlJiYoIXImJmMubGVuZ3RoK2w+PXNbMV0/KHI9Yyxk
PXNbMV0tbCk6YSYmby5wdXNoKGMpLCFhJiZjLmxlbmd0aCtsPnNbMF0mJihhPWMsaT1zWzBdLWwp
LGwrPWMubGVuZ3RoKSxhJiZyKXtpZihjPW4oe3N0YXJ0Tm9kZTphLHN0YXJ0Tm9kZUluZGV4Omks
ZW5kTm9kZTpyLGVuZE5vZGVJbmRleDpkLGlubmVyTm9kZXM6byxtYXRjaDpzWzJdLG1hdGNoSW5k
ZXg6Zn0pLGwtPXIubGVuZ3RoLWQsYT1udWxsLHI9bnVsbCxvPVtdLHM9dC5zaGlmdCgpLGYrKywh
cylicmVha31lbHNle2lmKCghaFtjLm5vZGVOYW1lXXx8dVtjLm5vZGVOYW1lXSkmJmMuZmlyc3RD
aGlsZCl7Yz1jLmZpcnN0Q2hpbGQ7Y29udGludWV9aWYoYy5uZXh0U2libGluZyl7Yz1jLm5leHRT
aWJsaW5nO2NvbnRpbnVlfX1mb3IoOzspe2lmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGlu
ZzticmVha31pZihjLnBhcmVudE5vZGU9PT1lKWJyZWFrIGU7Yz1jLnBhcmVudE5vZGV9fX1mdW5j
dGlvbiBsKGUpe3ZhciB0O2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXt2YXIgbj1lLm5vZGVUeXBl
P2U6Zi5jcmVhdGVFbGVtZW50KGUpO3Q9ZnVuY3Rpb24oZSx0KXt2YXIgYT1uLmNsb25lTm9kZSgh
MSk7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJkYXRhLW1jZS1pbmRleCIsdCksZSYmYS5hcHBlbmRD
aGlsZChmLmNyZWF0ZVRleHROb2RlKGUpKSxhfX1lbHNlIHQ9ZTtyZXR1cm4gZnVuY3Rpb24oZSl7
dmFyIG4sYSxyLGk9ZS5zdGFydE5vZGUsZD1lLmVuZE5vZGUsbz1lLm1hdGNoSW5kZXg7aWYoaT09
PWQpe3ZhciBsPWk7cj1sLnBhcmVudE5vZGUsZS5zdGFydE5vZGVJbmRleD4wJiYobj1mLmNyZWF0
ZVRleHROb2RlKGwuZGF0YS5zdWJzdHJpbmcoMCxlLnN0YXJ0Tm9kZUluZGV4KSksci5pbnNlcnRC
ZWZvcmUobixsKSk7dmFyIGM9dChlLm1hdGNoWzBdLG8pO3JldHVybiByLmluc2VydEJlZm9yZShj
LGwpLGUuZW5kTm9kZUluZGV4PGwubGVuZ3RoJiYoYT1mLmNyZWF0ZVRleHROb2RlKGwuZGF0YS5z
dWJzdHJpbmcoZS5lbmROb2RlSW5kZXgpKSxyLmluc2VydEJlZm9yZShhLGwpKSxsLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQobCksY31uPWYuY3JlYXRlVGV4dE5vZGUoaS5kYXRhLnN1YnN0cmluZygw
LGUuc3RhcnROb2RlSW5kZXgpKSxhPWYuY3JlYXRlVGV4dE5vZGUoZC5kYXRhLnN1YnN0cmluZyhl
LmVuZE5vZGVJbmRleCkpO2Zvcih2YXIgcz10KGkuZGF0YS5zdWJzdHJpbmcoZS5zdGFydE5vZGVJ
bmRleCksbyksdT1bXSxoPTAsbT1lLmlubmVyTm9kZXMubGVuZ3RoO20+aDsrK2gpe3ZhciBnPWUu
aW5uZXJOb2Rlc1toXSxwPXQoZy5kYXRhLG8pO2cucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocCxn
KSx1LnB1c2gocCl9dmFyIHg9dChkLmRhdGEuc3Vic3RyaW5nKDAsZS5lbmROb2RlSW5kZXgpLG8p
O3JldHVybiByPWkucGFyZW50Tm9kZSxyLmluc2VydEJlZm9yZShuLGkpLHIuaW5zZXJ0QmVmb3Jl
KHMsaSksci5yZW1vdmVDaGlsZChpKSxyPWQucGFyZW50Tm9kZSxyLmluc2VydEJlZm9yZSh4LGQp
LHIuaW5zZXJ0QmVmb3JlKGEsZCksci5yZW1vdmVDaGlsZChkKSx4fX12YXIgYyxzLGYsdSxoLG0s
Zz1bXSxwPTA7aWYoZj10Lm93bmVyRG9jdW1lbnQsdT1yLmdldEJsb2NrRWxlbWVudHMoKSxoPXIu
Z2V0V2hpdGVTcGFjZUVsZW1lbnRzKCksbT1yLmdldFNob3J0RW5kZWRFbGVtZW50cygpLHM9ZCh0
KSl7aWYoZS5nbG9iYWwpZm9yKDtjPWUuZXhlYyhzKTspZy5wdXNoKGkoYyxhKSk7ZWxzZSBjPXMu
bWF0Y2goZSksZy5wdXNoKGkoYyxhKSk7cmV0dXJuIGcubGVuZ3RoJiYocD1nLmxlbmd0aCxvKHQs
ZyxsKG4pKSkscH19ZnVuY3Rpb24gdCh0KXtmdW5jdGlvbiBuKCl7ZnVuY3Rpb24gZSgpe3Iuc3Rh
dHVzYmFyLmZpbmQoIiNuZXh0IikuZGlzYWJsZWQoIWQocysxKS5sZW5ndGgpLHIuc3RhdHVzYmFy
LmZpbmQoIiNwcmV2IikuZGlzYWJsZWQoIWQocy0xKS5sZW5ndGgpfWZ1bmN0aW9uIG4oKXt0aW55
bWNlLnVpLk1lc3NhZ2VCb3guYWxlcnQoIkNvdWxkIG5vdCBmaW5kIHRoZSBzcGVjaWZpZWQgc3Ry
aW5nLiIsZnVuY3Rpb24oKXtyLmZpbmQoIiNmaW5kIilbMF0uZm9jdXMoKX0pfXZhciBhPXt9LHI9
dGlueW1jZS51aS5GYWN0b3J5LmNyZWF0ZSh7dHlwZToid2luZG93IixsYXlvdXQ6ImZsZXgiLHBh
Y2s6ImNlbnRlciIsYWxpZ246ImNlbnRlciIsb25DbG9zZTpmdW5jdGlvbigpe3QuZm9jdXMoKSxj
LmRvbmUoKX0sb25TdWJtaXQ6ZnVuY3Rpb24odCl7dmFyIGksbyxsLGY7cmV0dXJuIHQucHJldmVu
dERlZmF1bHQoKSxvPXIuZmluZCgiI2Nhc2UiKS5jaGVja2VkKCksZj1yLmZpbmQoIiN3b3JkcyIp
LmNoZWNrZWQoKSxsPXIuZmluZCgiI2ZpbmQiKS52YWx1ZSgpLGwubGVuZ3RoP2EudGV4dD09bCYm
YS5jYXNlU3RhdGU9PW8mJmEud2hvbGVXb3JkPT1mPzA9PT1kKHMrMSkubGVuZ3RoP3ZvaWQgbigp
OihjLm5leHQoKSx2b2lkIGUoKSk6KGk9Yy5maW5kKGwsbyxmKSxpfHxuKCksci5zdGF0dXNiYXIu
aXRlbXMoKS5zbGljZSgxKS5kaXNhYmxlZCgwPT09aSksZSgpLHZvaWQoYT17dGV4dDpsLGNhc2VT
dGF0ZTpvLHdob2xlV29yZDpmfSkpOihjLmRvbmUoITEpLHZvaWQgci5zdGF0dXNiYXIuaXRlbXMo
KS5zbGljZSgxKS5kaXNhYmxlZCghMCkpfSxidXR0b25zOlt7dGV4dDoiRmluZCIsb25jbGljazpm
dW5jdGlvbigpe3Iuc3VibWl0KCl9fSx7dGV4dDoiUmVwbGFjZSIsZGlzYWJsZWQ6ITAsb25jbGlj
azpmdW5jdGlvbigpe2MucmVwbGFjZShyLmZpbmQoIiNyZXBsYWNlIikudmFsdWUoKSl8fChyLnN0
YXR1c2Jhci5pdGVtcygpLnNsaWNlKDEpLmRpc2FibGVkKCEwKSxzPS0xLGE9e30pfX0se3RleHQ6
IlJlcGxhY2UgYWxsIixkaXNhYmxlZDohMCxvbmNsaWNrOmZ1bmN0aW9uKCl7Yy5yZXBsYWNlKHIu
ZmluZCgiI3JlcGxhY2UiKS52YWx1ZSgpLCEwLCEwKSxyLnN0YXR1c2Jhci5pdGVtcygpLnNsaWNl
KDEpLmRpc2FibGVkKCEwKSxhPXt9fX0se3R5cGU6InNwYWNlciIsZmxleDoxfSx7dGV4dDoiUHJl
diIsbmFtZToicHJldiIsZGlzYWJsZWQ6ITAsb25jbGljazpmdW5jdGlvbigpe2MucHJldigpLGUo
KX19LHt0ZXh0OiJOZXh0IixuYW1lOiJuZXh0IixkaXNhYmxlZDohMCxvbmNsaWNrOmZ1bmN0aW9u
KCl7Yy5uZXh0KCksZSgpfX1dLHRpdGxlOiJGaW5kIGFuZCByZXBsYWNlIixpdGVtczp7dHlwZToi
Zm9ybSIscGFkZGluZzoyMCxsYWJlbEdhcDozMCxzcGFjaW5nOjEwLGl0ZW1zOlt7dHlwZToidGV4
dGJveCIsbmFtZToiZmluZCIsc2l6ZTo0MCxsYWJlbDoiRmluZCIsdmFsdWU6dC5zZWxlY3Rpb24u
Z2V0Tm9kZSgpLnNyY30se3R5cGU6InRleHRib3giLG5hbWU6InJlcGxhY2UiLHNpemU6NDAsbGFi
ZWw6IlJlcGxhY2Ugd2l0aCJ9LHt0eXBlOiJjaGVja2JveCIsbmFtZToiY2FzZSIsdGV4dDoiTWF0
Y2ggY2FzZSIsbGFiZWw6IiAifSx7dHlwZToiY2hlY2tib3giLG5hbWU6IndvcmRzIix0ZXh0OiJX
aG9sZSB3b3JkcyIsbGFiZWw6IiAifV19fSkucmVuZGVyVG8oKS5yZWZsb3coKX1mdW5jdGlvbiBh
KGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1pbmRleCIpO3JldHVybiJudW1iZXIi
PT10eXBlb2YgdD8iIit0OnR9ZnVuY3Rpb24gcihuKXt2YXIgYSxyO3JldHVybiByPXQuZG9tLmNy
ZWF0ZSgic3BhbiIseyJkYXRhLW1jZS1ib2d1cyI6MX0pLHIuY2xhc3NOYW1lPSJtY2UtbWF0Y2gt
bWFya2VyIixhPXQuZ2V0Qm9keSgpLGMuZG9uZSghMSksZShuLGEsciwhMSx0LnNjaGVtYSl9ZnVu
Y3Rpb24gaShlKXt2YXIgdD1lLnBhcmVudE5vZGU7ZS5maXJzdENoaWxkJiZ0Lmluc2VydEJlZm9y
ZShlLmZpcnN0Q2hpbGQsZSksZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfWZ1bmN0aW9uIGQo
ZSl7dmFyIG4scj1bXTtpZihuPXRpbnltY2UudG9BcnJheSh0LmdldEJvZHkoKS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgic3BhbiIpKSxuLmxlbmd0aClmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKyl7
dmFyIGQ9YShuW2ldKTtudWxsIT09ZCYmZC5sZW5ndGgmJmQ9PT1lLnRvU3RyaW5nKCkmJnIucHVz
aChuW2ldKX1yZXR1cm4gcn1mdW5jdGlvbiBvKGUpe3ZhciBuPXMsYT10LmRvbTtlPWUhPT0hMSxl
P24rKzpuLS0sYS5yZW1vdmVDbGFzcyhkKHMpLCJtY2UtbWF0Y2gtbWFya2VyLXNlbGVjdGVkIik7
dmFyIHI9ZChuKTtyZXR1cm4gci5sZW5ndGg/KGEuYWRkQ2xhc3MoZChuKSwibWNlLW1hdGNoLW1h
cmtlci1zZWxlY3RlZCIpLHQuc2VsZWN0aW9uLnNjcm9sbEludG9WaWV3KHJbMF0pLG4pOi0xfWZ1
bmN0aW9uIGwoZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfXZhciBjPXRoaXMscz0tMTtj
LmluaXQ9ZnVuY3Rpb24oZSl7ZS5hZGRNZW51SXRlbSgic2VhcmNocmVwbGFjZSIse3RleHQ6IkZp
bmQgYW5kIHJlcGxhY2UiLHNob3J0Y3V0OiJDdHJsK0YiLG9uY2xpY2s6bixzZXBhcmF0b3I6ImJl
Zm9yZSIsY29udGV4dDoiZWRpdCJ9KSxlLmFkZEJ1dHRvbigic2VhcmNocmVwbGFjZSIse3Rvb2x0
aXA6IkZpbmQgYW5kIHJlcGxhY2UiLHNob3J0Y3V0OiJDdHJsK0YiLG9uY2xpY2s6bn0pLGUuYWRk
Q29tbWFuZCgiU2VhcmNoUmVwbGFjZSIsbiksZS5zaG9ydGN1dHMuYWRkKCJDdHJsK0YiLCIiLG4p
fSxjLmZpbmQ9ZnVuY3Rpb24oZSx0LG4pe2U9ZS5yZXBsYWNlKC9bXC1cW1xdXC9ce1x9XChcKVwq
XCtcP1wuXFxcXlwkXHxdL2csIlxcJCYiKSxlPW4/IlxcYiIrZSsiXFxiIjplO3ZhciBhPXIobmV3
IFJlZ0V4cChlLHQ/ImciOiJnaSIpKTtyZXR1cm4gYSYmKHM9LTEscz1vKCEwKSksYX0sYy5uZXh0
PWZ1bmN0aW9uKCl7dmFyIGU9byghMCk7LTEhPT1lJiYocz1lKX0sYy5wcmV2PWZ1bmN0aW9uKCl7
dmFyIGU9byghMSk7LTEhPT1lJiYocz1lKX0sYy5yZXBsYWNlPWZ1bmN0aW9uKGUsbixyKXt2YXIg
byxmLHUsaCxtLGcscD1zO2ZvcihuPW4hPT0hMSx1PXQuZ2V0Qm9keSgpLGY9dGlueW1jZS50b0Fy
cmF5KHUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKSksbz0wO288Zi5sZW5ndGg7bysrKXt2
YXIgeD1hKGZbb10pO2lmKG51bGwhPT14JiZ4Lmxlbmd0aClpZihoPW09cGFyc2VJbnQoeCwxMCks
cnx8aD09PXMpe2ZvcihlLmxlbmd0aD8oZltvXS5maXJzdENoaWxkLm5vZGVWYWx1ZT1lLGkoZltv
XSkpOmwoZltvXSk7ZlsrK29dOylpZihoPWEoZltvXSksbnVsbCE9PXgmJngubGVuZ3RoKXtpZiho
IT09bSl7by0tO2JyZWFrfWwoZltvXSl9biYmcC0tfWVsc2UgbT5zJiZmW29dLnNldEF0dHJpYnV0
ZSgiZGF0YS1tY2UtaW5kZXgiLG0tMSl9cmV0dXJuIHQudW5kb01hbmFnZXIuYWRkKCkscz1wLG4/
KGc9ZChwKzEpLmxlbmd0aD4wLGMubmV4dCgpKTooZz1kKHAtMSkubGVuZ3RoPjAsYy5wcmV2KCkp
LCFyJiZnfSxjLmRvbmU9ZnVuY3Rpb24oZSl7dmFyIG4scixkLG87Zm9yKHI9dGlueW1jZS50b0Fy
cmF5KHQuZ2V0Qm9keSgpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIikpLG49MDtuPHIubGVu
Z3RoO24rKyl7dmFyIGw9YShyW25dKTtudWxsIT09bCYmbC5sZW5ndGgmJihsPT09cy50b1N0cmlu
ZygpJiYoZHx8KGQ9cltuXS5maXJzdENoaWxkKSxvPXJbbl0uZmlyc3RDaGlsZCksaShyW25dKSl9
aWYoZCYmbyl7dmFyIGM9dC5kb20uY3JlYXRlUm5nKCk7cmV0dXJuIGMuc2V0U3RhcnQoZCwwKSxj
LnNldEVuZChvLG8uZGF0YS5sZW5ndGgpLGUhPT0hMSYmdC5zZWxlY3Rpb24uc2V0Um5nKGMpLGN9
fX10aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJzZWFyY2hyZXBsYWNlIix0KX0oKTshZnVuY3Rp
b24oZSx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2Zvcih2YXIgbixvPVtdLHI9MDty
PGUubGVuZ3RoOysrcil7aWYobj1sW2Vbcl1dfHxpKGVbcl0pLCFuKXRocm93Im1vZHVsZSBkZWZp
bml0aW9uIGRlcGVuZGVjeSBub3QgZm91bmQ6ICIrZVtyXTtvLnB1c2gobil9dC5hcHBseShudWxs
LG8pfWZ1bmN0aW9uIG8oZSxvLHIpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyJpbnZhbGlk
IG1vZHVsZSBkZWZpbml0aW9uLCBtb2R1bGUgaWQgbXVzdCBiZSBkZWZpbmVkIGFuZCBiZSBhIHN0
cmluZyI7aWYobz09PXQpdGhyb3ciaW52YWxpZCBtb2R1bGUgZGVmaW5pdGlvbiwgZGVwZW5kZW5j
aWVzIG11c3QgYmUgc3BlY2lmaWVkIjtpZihyPT09dCl0aHJvdyJpbnZhbGlkIG1vZHVsZSBkZWZp
bml0aW9uLCBkZWZpbml0aW9uIGZ1bmN0aW9uIG11c3QgYmUgc3BlY2lmaWVkIjtuKG8sZnVuY3Rp
b24oKXtsW2VdPXIuYXBwbHkobnVsbCxhcmd1bWVudHMpfSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4h
IWxbZV19ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG49ZSxvPXQuc3BsaXQoL1suXC9dLykscj0wO3I8
by5sZW5ndGg7KytyKXtpZighbltvW3JdXSlyZXR1cm47bj1uW29bcl1dfXJldHVybiBufWZ1bmN0
aW9uIGEobil7Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspe2Zvcih2YXIgcj1lLGk9bltvXSxh
PWkuc3BsaXQoL1suXC9dLykscz0wO3M8YS5sZW5ndGgtMTsrK3MpclthW3NdXT09PXQmJihyW2Fb
c11dPXt9KSxyPXJbYVtzXV07clthW2EubGVuZ3RoLTFdXT1sW2ldfX12YXIgbD17fSxzPSJ0aW55
bWNlL3NwZWxsY2hlY2tlcnBsdWdpbi9Eb21UZXh0TWF0Y2hlciIsYz0idGlueW1jZS9zcGVsbGNo
ZWNrZXJwbHVnaW4vUGx1Z2luIixkPSJ0aW55bWNlL1BsdWdpbk1hbmFnZXIiLHU9InRpbnltY2Uv
dXRpbC9Ub29scyIsZj0idGlueW1jZS91aS9NZW51IixtPSJ0aW55bWNlL2RvbS9ET01VdGlscyIs
cD0idGlueW1jZS91dGlsL1hIUiIsZz0idGlueW1jZS91dGlsL1VSSSIsaD0idGlueW1jZS91dGls
L0pTT04iO28ocyxbXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4o
ZSx0KXtpZighZVswXSl0aHJvdyJmaW5kQW5kUmVwbGFjZURPTVRleHQgY2Fubm90IGhhbmRsZSB6
ZXJvLWxlbmd0aCBtYXRjaGVzIjtyZXR1cm57c3RhcnQ6ZS5pbmRleCxlbmQ6ZS5pbmRleCtlWzBd
Lmxlbmd0aCx0ZXh0OmVbMF0sZGF0YTp0fX1mdW5jdGlvbiBvKGUpe3ZhciB0O2lmKDM9PT1lLm5v
ZGVUeXBlKXJldHVybiBlLmRhdGE7aWYoUFtlLm5vZGVOYW1lXSYmIVNbZS5ub2RlTmFtZV0pcmV0
dXJuIiI7aWYodD0iIiwoU1tlLm5vZGVOYW1lXXx8TltlLm5vZGVOYW1lXSkmJih0Kz0iXG4iKSxl
PWUuZmlyc3RDaGlsZClkbyB0Kz1vKGUpO3doaWxlKGU9ZS5uZXh0U2libGluZyk7cmV0dXJuIHR9
ZnVuY3Rpb24gcihlLHQsbil7dmFyIG8scixpLGEsbD1bXSxzPTAsYz1lLGQsdT0wO3Q9dC5zbGlj
ZSgwKSx0LnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5zdGFydC10LnN0YXJ0fSksZD10LnNo
aWZ0KCk7ZTpmb3IoOzspe2lmKChTW2Mubm9kZU5hbWVdfHxOW2Mubm9kZU5hbWVdKSYmcysrLDM9
PT1jLm5vZGVUeXBlJiYoIXImJmMubGVuZ3RoK3M+PWQuZW5kPyhyPWMsYT1kLmVuZC1zKTpvJiZs
LnB1c2goYyksIW8mJmMubGVuZ3RoK3M+ZC5zdGFydCYmKG89YyxpPWQuc3RhcnQtcykscys9Yy5s
ZW5ndGgpLG8mJnIpe2lmKGM9bih7c3RhcnROb2RlOm8sc3RhcnROb2RlSW5kZXg6aSxlbmROb2Rl
OnIsZW5kTm9kZUluZGV4OmEsaW5uZXJOb2RlczpsLG1hdGNoOmQudGV4dCxtYXRjaEluZGV4OnV9
KSxzLT1yLmxlbmd0aC1hLG89bnVsbCxyPW51bGwsbD1bXSxkPXQuc2hpZnQoKSx1KyssIWQpYnJl
YWt9ZWxzZXtpZigoIVBbYy5ub2RlTmFtZV18fFNbYy5ub2RlTmFtZV0pJiZjLmZpcnN0Q2hpbGQp
e2M9Yy5maXJzdENoaWxkO2NvbnRpbnVlfWlmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGlu
Zztjb250aW51ZX19Zm9yKDs7KXtpZihjLm5leHRTaWJsaW5nKXtjPWMubmV4dFNpYmxpbmc7YnJl
YWt9aWYoYy5wYXJlbnROb2RlPT09ZSlicmVhayBlO2M9Yy5wYXJlbnROb2RlfX19ZnVuY3Rpb24g
aShlKXtmdW5jdGlvbiB0KHQsbil7dmFyIG89d1tuXTtvLnN0ZW5jaWx8fChvLnN0ZW5jaWw9ZShv
KSk7dmFyIHI9by5zdGVuY2lsLmNsb25lTm9kZSghMSk7cmV0dXJuIHIuc2V0QXR0cmlidXRlKCJk
YXRhLW1jZS1pbmRleCIsbiksdCYmci5hcHBlbmRDaGlsZChrLmRvYy5jcmVhdGVUZXh0Tm9kZSh0
KSkscn1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4sbyxyLGk9ZS5zdGFydE5vZGUsYT1lLmVuZE5v
ZGUsbD1lLm1hdGNoSW5kZXgscz1rLmRvYztpZihpPT09YSl7dmFyIGM9aTtyPWMucGFyZW50Tm9k
ZSxlLnN0YXJ0Tm9kZUluZGV4PjAmJihuPXMuY3JlYXRlVGV4dE5vZGUoYy5kYXRhLnN1YnN0cmlu
ZygwLGUuc3RhcnROb2RlSW5kZXgpKSxyLmluc2VydEJlZm9yZShuLGMpKTt2YXIgZD10KGUubWF0
Y2gsbCk7cmV0dXJuIHIuaW5zZXJ0QmVmb3JlKGQsYyksZS5lbmROb2RlSW5kZXg8Yy5sZW5ndGgm
JihvPXMuY3JlYXRlVGV4dE5vZGUoYy5kYXRhLnN1YnN0cmluZyhlLmVuZE5vZGVJbmRleCkpLHIu
aW5zZXJ0QmVmb3JlKG8sYykpLGMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKSxkfW49cy5jcmVh
dGVUZXh0Tm9kZShpLmRhdGEuc3Vic3RyaW5nKDAsZS5zdGFydE5vZGVJbmRleCkpLG89cy5jcmVh
dGVUZXh0Tm9kZShhLmRhdGEuc3Vic3RyaW5nKGUuZW5kTm9kZUluZGV4KSk7Zm9yKHZhciB1PXQo
aS5kYXRhLnN1YnN0cmluZyhlLnN0YXJ0Tm9kZUluZGV4KSxsKSxmPVtdLG09MCxwPWUuaW5uZXJO
b2Rlcy5sZW5ndGg7cD5tOysrbSl7dmFyIGc9ZS5pbm5lck5vZGVzW21dLGg9dChnLmRhdGEsbCk7
Zy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChoLGcpLGYucHVzaChoKX12YXIgdj10KGEuZGF0YS5z
dWJzdHJpbmcoMCxlLmVuZE5vZGVJbmRleCksbCk7cmV0dXJuIHI9aS5wYXJlbnROb2RlLHIuaW5z
ZXJ0QmVmb3JlKG4saSksci5pbnNlcnRCZWZvcmUodSxpKSxyLnJlbW92ZUNoaWxkKGkpLHI9YS5w
YXJlbnROb2RlLHIuaW5zZXJ0QmVmb3JlKHYsYSksci5pbnNlcnRCZWZvcmUobyxhKSxyLnJlbW92
ZUNoaWxkKGEpLHZ9fWZ1bmN0aW9uIGEoZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3QuaW5zZXJ0QmVm
b3JlKGUuZmlyc3RDaGlsZCxlKSxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9ZnVuY3Rpb24g
bCh0KXt2YXIgbj1lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksbz1bXTt0PSJudW1iZXIiPT10
eXBlb2YgdD8iIit0Om51bGw7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBpPW5bcl0s
YT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtaW5kZXgiKTtudWxsIT09YSYmYS5sZW5ndGgmJihh
PT09dHx8bnVsbD09PXQpJiZvLnB1c2goaSl9cmV0dXJuIG99ZnVuY3Rpb24gcyhlKXtmb3IodmFy
IHQ9dy5sZW5ndGg7dC0tOylpZih3W3RdPT09ZSlyZXR1cm4gdDtyZXR1cm4tMX1mdW5jdGlvbiBj
KGUpe3ZhciB0PVtdO3JldHVybiBkKGZ1bmN0aW9uKG4sbyl7ZShuLG8pJiZ0LnB1c2gobil9KSx3
PXQsdGhpc31mdW5jdGlvbiBkKGUpe2Zvcih2YXIgdD0wLG49dy5sZW5ndGg7bj50JiZlKHdbdF0s
dCkhPT0hMTt0KyspO3JldHVybiB0aGlzfWZ1bmN0aW9uIHUodCl7cmV0dXJuIHcubGVuZ3RoJiZy
KGUsdyxpKHQpKSx0aGlzfWZ1bmN0aW9uIGYoZSx0KXtpZihDJiZlLmdsb2JhbClmb3IoO3g9ZS5l
eGVjKEMpOyl3LnB1c2gobih4LHQpKTtyZXR1cm4gdGhpc31mdW5jdGlvbiBtKGUpe3ZhciB0LG49
bChlP3MoZSk6bnVsbCk7Zm9yKHQ9bi5sZW5ndGg7dC0tOylhKG5bdF0pO3JldHVybiB0aGlzfWZ1
bmN0aW9uIHAoZSl7cmV0dXJuIHdbZS5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLWluZGV4IildfWZ1
bmN0aW9uIGcoZSl7cmV0dXJuIGwocyhlKSlbMF19ZnVuY3Rpb24gaChlLHQsbil7cmV0dXJuIHcu
cHVzaCh7c3RhcnQ6ZSxlbmQ6ZSt0LHRleHQ6Qy5zdWJzdHIoZSx0KSxkYXRhOm59KSx0aGlzfWZ1
bmN0aW9uIHYoZSl7dmFyIG49bChzKGUpKSxvPXQuZG9tLmNyZWF0ZVJuZygpO3JldHVybiBvLnNl
dFN0YXJ0QmVmb3JlKG5bMF0pLG8uc2V0RW5kQWZ0ZXIobltuLmxlbmd0aC0xXSksb31mdW5jdGlv
biBiKGUsbil7dmFyIG89dihlKTtyZXR1cm4gby5kZWxldGVDb250ZW50cygpLG4ubGVuZ3RoPjAm
Jm8uaW5zZXJ0Tm9kZSh0LmRvbS5kb2MuY3JlYXRlVGV4dE5vZGUobikpLG99ZnVuY3Rpb24geSgp
e3JldHVybiB3LnNwbGljZSgwLHcubGVuZ3RoKSxtKCksdGhpc312YXIgeCx3PVtdLEMsaz10LmRv
bSxTLFAsTjtyZXR1cm4gUz10LnNjaGVtYS5nZXRCbG9ja0VsZW1lbnRzKCksUD10LnNjaGVtYS5n
ZXRXaGl0ZVNwYWNlRWxlbWVudHMoKSxOPXQuc2NoZW1hLmdldFNob3J0RW5kZWRFbGVtZW50cygp
LEM9byhlKSx7dGV4dDpDLG1hdGNoZXM6dyxlYWNoOmQsZmlsdGVyOmMscmVzZXQ6eSxtYXRjaEZy
b21FbGVtZW50OnAsZWxlbWVudEZyb21NYXRjaDpnLGZpbmQ6ZixhZGQ6aCx3cmFwOnUsdW53cmFw
Om0scmVwbGFjZTpiLHJhbmdlRnJvbU1hdGNoOnYsaW5kZXhPZjpzfX19KSxvKGMsW3MsZCx1LGYs
bSxwLGcsaF0sZnVuY3Rpb24oZSx0LG4sbyxyLGksYSxsKXt0LmFkZCgic3BlbGxjaGVja2VyIixm
dW5jdGlvbih0LHMpe2Z1bmN0aW9uIGMoKXtyZXR1cm4gQy50ZXh0TWF0Y2hlcnx8KEMudGV4dE1h
dGNoZXI9bmV3IGUodC5nZXRCb2R5KCksdCkpLEMudGV4dE1hdGNoZXJ9ZnVuY3Rpb24gZChlLHQp
e3ZhciBvPVtdO3JldHVybiBuLmVhY2godCxmdW5jdGlvbihlKXtvLnB1c2goe3NlbGVjdGFibGU6
ITAsdGV4dDplLm5hbWUsZGF0YTplLnZhbHVlfSl9KSxvfWZ1bmN0aW9uIHUoZSl7Zm9yKHZhciB0
IGluIGUpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZihlLGkpe3ZhciBhPVtdLGw9a1tlXTtu
LmVhY2gobCxmdW5jdGlvbihlKXthLnB1c2goe3RleHQ6ZSxvbmNsaWNrOmZ1bmN0aW9uKCl7dC5p
bnNlcnRDb250ZW50KHQuZG9tLmVuY29kZShlKSksdC5kb20ucmVtb3ZlKGkpLGcoKX19KX0pLGEu
cHVzaC5hcHBseShhLFt7dGV4dDoiLSJ9LHt0ZXh0OiJJZ25vcmUiLG9uY2xpY2s6ZnVuY3Rpb24o
KXtoKGUsaSl9fSx7dGV4dDoiSWdub3JlIGFsbCIsb25jbGljazpmdW5jdGlvbigpe2goZSxpLCEw
KX19LHt0ZXh0OiJGaW5pc2giLG9uY2xpY2s6dn1dKSxQPW5ldyBvKHtpdGVtczphLGNvbnRleHQ6
ImNvbnRleHRtZW51IixvbmF1dG9oaWRlOmZ1bmN0aW9uKGUpey0xIT1lLnRhcmdldC5jbGFzc05h
bWUuaW5kZXhPZigic3BlbGxjaGVja2VyIikmJmUucHJldmVudERlZmF1bHQoKX0sb25oaWRlOmZ1
bmN0aW9uKCl7UC5yZW1vdmUoKSxQPW51bGx9fSksUC5yZW5kZXJUbyhkb2N1bWVudC5ib2R5KTt2
YXIgcz1yLkRPTS5nZXRQb3ModC5nZXRDb250ZW50QXJlYUNvbnRhaW5lcigpKSxjPXQuZG9tLmdl
dFBvcyhpWzBdKSxkPXQuZG9tLmdldFJvb3QoKTsiQk9EWSI9PWQubm9kZU5hbWU/KGMueC09ZC5v
d25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHxkLnNjcm9sbExlZnQsYy55
LT1kLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZC5zY3JvbGxUb3Ap
OihjLngtPWQuc2Nyb2xsTGVmdCxjLnktPWQuc2Nyb2xsVG9wKSxzLngrPWMueCxzLnkrPWMueSxQ
Lm1vdmVUbyhzLngscy55K2lbMF0ub2Zmc2V0SGVpZ2h0KX1mdW5jdGlvbiBtKCl7cmV0dXJuIHQu
Z2V0UGFyYW0oInNwZWxsY2hlY2tlcl93b3JkY2hhcl9wYXR0ZXJuIil8fG5ldyBSZWdFeHAoJ1te
XFxzISIjJCUmKCkqKywtLi86Ozw9Pj9AW1xcXV5fe3x9YFx4YTdceGE5XHhhYlx4YWVceGIxXHhi
Nlx4YjdceGI4XHhiYlx4YmNceGJkXHhiZVx4YmZceGQ3XHhmN1x4YTRcdTIwMWRcdTIwMWNcdTIw
MWVdKycsImciKX1mdW5jdGlvbiBwKCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gdC5zZXRQcm9ncmVz
c1N0YXRlKCExKSx1KGUpPyh0LndpbmRvd01hbmFnZXIuYWxlcnQoIk5vIG1pc3NwZWxsaW5ncyBm
b3VuZCIpLHZvaWQoUz0hMSkpOihrPWUsYygpLmZpbmQobSgpKS5maWx0ZXIoZnVuY3Rpb24odCl7
cmV0dXJuISFlW3QudGV4dF19KS53cmFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmRvbS5jcmVhdGUo
InNwYW4iLHsiY2xhc3MiOiJtY2Utc3BlbGxjaGVja2VyLXdvcmQiLCJkYXRhLW1jZS1ib2d1cyI6
MSwiZGF0YS1tY2Utd29yZCI6ZS50ZXh0fSl9KSx2b2lkIHQuZmlyZSgiU3BlbGxjaGVja1N0YXJ0
IikpfWZ1bmN0aW9uIG4oZSl7dC53aW5kb3dNYW5hZ2VyLmFsZXJ0KGUpLHQuc2V0UHJvZ3Jlc3NT
dGF0ZSghMSksdigpfWZ1bmN0aW9uIG8oZSx0LG8pe2kuc2VuZCh7dXJsOm5ldyBhKHMpLnRvQWJz
b2x1dGUoTi5zcGVsbGNoZWNrZXJfcnBjX3VybCksdHlwZToicG9zdCIsY29udGVudF90eXBlOiJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLGRhdGE6InRleHQ9IitlbmNvZGVVUklD
b21wb25lbnQodCkrIiZsYW5nPSIrTi5zcGVsbGNoZWNrZXJfbGFuZ3VhZ2Usc3VjY2VzczpmdW5j
dGlvbihlKXtlPWwucGFyc2UoZSksZT9lLmVycm9yP24oZS5lcnJvcik6byhlLndvcmRzKTpuKCJT
ZXZlciByZXNwb25zZSB3YXNuJ3QgcHJvcGVyIEpTT04uIil9LGVycm9yOmZ1bmN0aW9uKGUsdCl7
bigiU3BlbGxjaGVja2VyIHJlcXVlc3QgZXJyb3I6ICIrdC5zdGF0dXMpfX0pfWlmKFMpcmV0dXJu
IHZvaWQgdigpO3YoKSxTPSEwLHQuc2V0UHJvZ3Jlc3NTdGF0ZSghMCk7dmFyIHI9Ti5zcGVsbGNo
ZWNrZXJfY2FsbGJhY2t8fG87ci5jYWxsKEMsInNwZWxsY2hlY2siLGMoKS50ZXh0LGUsbiksdC5m
b2N1cygpfWZ1bmN0aW9uIGcoKXt0LmRvbS5zZWxlY3QoInNwYW4ubWNlLXNwZWxsY2hlY2tlci13
b3JkIikubGVuZ3RofHx2KCl9ZnVuY3Rpb24gaChlLG8scil7dC5zZWxlY3Rpb24uY29sbGFwc2Uo
KSxyP24uZWFjaCh0LmRvbS5zZWxlY3QoInNwYW4ubWNlLXNwZWxsY2hlY2tlci13b3JkIiksZnVu
Y3Rpb24obil7bi5nZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXdvcmQiKT09ZSYmdC5kb20ucmVtb3Zl
KG4sITApfSk6dC5kb20ucmVtb3ZlKG8sITApLGcoKX1mdW5jdGlvbiB2KCl7YygpLnJlc2V0KCks
Qy50ZXh0TWF0Y2hlcj1udWxsLFMmJihTPSExLHQuZmlyZSgiU3BlbGxjaGVja0VuZCIpKX1mdW5j
dGlvbiBiKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLW1jZS1pbmRleCIpO3JldHVybiJu
dW1iZXIiPT10eXBlb2YgdD8iIit0OnR9ZnVuY3Rpb24geShlKXt2YXIgbyxyPVtdO2lmKG89bi50
b0FycmF5KHQuZ2V0Qm9keSgpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIikpLG8ubGVuZ3Ro
KWZvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1iKG9baV0pO251bGwhPT1hJiZhLmxl
bmd0aCYmYT09PWUudG9TdHJpbmcoKSYmci5wdXNoKG9baV0pfXJldHVybiByfWZ1bmN0aW9uIHgo
ZSl7dmFyIHQ9Ti5zcGVsbGNoZWNrZXJfbGFuZ3VhZ2U7ZS5jb250cm9sLml0ZW1zKCkuZWFjaChm
dW5jdGlvbihlKXtlLmFjdGl2ZShlLnNldHRpbmdzLmRhdGE9PT10KX0pfXZhciB3LEM9dGhpcyxr
LFMsUCxOPXQuc2V0dGluZ3MsUj1OLnNwZWxsY2hlY2tlcl9sYW5ndWFnZXN8fCJFbmdsaXNoPWVu
LERhbmlzaD1kYSxEdXRjaD1ubCxGaW5uaXNoPWZpLEZyZW5jaD1mcl9GUixHZXJtYW49ZGUsSXRh
bGlhbj1pdCxQb2xpc2g9cGwsUG9ydHVndWVzZT1wdF9CUixTcGFuaXNoPWVzLFN3ZWRpc2g9c3Yi
O3c9ZCgiTGFuZ3VhZ2UiLG4ubWFwKFIuc3BsaXQoIiwiKSxmdW5jdGlvbihlKXt2YXIgdD1lLnNw
bGl0KCI9Iik7cmV0dXJue25hbWU6dFswXSx2YWx1ZTp0WzFdfX0pKSx0Lm9uKCJjbGljayIsZnVu
Y3Rpb24oZSl7dmFyIG49ZS50YXJnZXQ7aWYoIm1jZS1zcGVsbGNoZWNrZXItd29yZCI9PW4uY2xh
c3NOYW1lKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG89eShiKG4pKTtpZihvLmxlbmd0aD4wKXt2
YXIgcj10LmRvbS5jcmVhdGVSbmcoKTtyLnNldFN0YXJ0QmVmb3JlKG9bMF0pLHIuc2V0RW5kQWZ0
ZXIob1tvLmxlbmd0aC0xXSksdC5zZWxlY3Rpb24uc2V0Um5nKHIpLGYobi5nZXRBdHRyaWJ1dGUo
ImRhdGEtbWNlLXdvcmQiKSxvKX19fSksdC5hZGRNZW51SXRlbSgic3BlbGxjaGVja2VyIix7dGV4
dDoiU3BlbGxjaGVjayIsY29udGV4dDoidG9vbHMiLG9uY2xpY2s6cCxzZWxlY3RhYmxlOiEwLG9u
UG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5vbigiU3BlbGxjaGVja1N0YXJ0IFNw
ZWxsY2hlY2tFbmQiLGZ1bmN0aW9uKCl7ZS5hY3RpdmUoUyl9KX19KTt2YXIgVD17dG9vbHRpcDoi
U3BlbGxjaGVjayIsb25jbGljazpwLG9uUG9zdFJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7
dC5vbigiU3BlbGxjaGVja1N0YXJ0IFNwZWxsY2hlY2tFbmQiLGZ1bmN0aW9uKCl7ZS5hY3RpdmUo
Uyl9KX19O3cubGVuZ3RoPjEmJihULnR5cGU9InNwbGl0YnV0dG9uIixULm1lbnU9dyxULm9uc2hv
dz14LFQub25zZWxlY3Q9ZnVuY3Rpb24oZSl7Ti5zcGVsbGNoZWNrZXJfbGFuZ3VhZ2U9ZS5jb250
cm9sLnNldHRpbmdzLmRhdGF9KSx0LmFkZEJ1dHRvbigic3BlbGxjaGVja2VyIixUKSx0LmFkZENv
bW1hbmQoIm1jZVNwZWxsQ2hlY2siLHApLHQub24oInJlbW92ZSIsZnVuY3Rpb24oKXtQJiYoUC5y
ZW1vdmUoKSxQPW51bGwpfSksdC5vbigiY2hhbmdlIixnKSx0aGlzLmdldFRleHRNYXRjaGVyPWMs
dGhpcy5nZXRXb3JkQ2hhclBhdHRlcm49bSx0aGlzLmdldExhbmd1YWdlPWZ1bmN0aW9uKCl7cmV0
dXJuIE4uc3BlbGxjaGVja2VyX2xhbmd1YWdlfSxOLnNwZWxsY2hlY2tlcl9sYW5ndWFnZT1OLnNw
ZWxsY2hlY2tlcl9sYW5ndWFnZXx8Ti5sYW5ndWFnZXx8ImVuIn0pfSksYShbcyxjXSl9KHRoaXMp
O3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoInRhYmZvY3VzIixmdW5jdGlvbihlKXtmdW5jdGlv
biBuKGUpezkhPT1lLmtleUNvZGV8fGUuY3RybEtleXx8ZS5hbHRLZXl8fGUubWV0YUtleXx8ZS5w
cmV2ZW50RGVmYXVsdCgpfWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiB0KGUp
e3JldHVybiJCT0RZIj09PWUubm9kZU5hbWV8fCJoaWRkZW4iIT1lLnR5cGUmJiJub25lIiE9ZS5z
dHlsZS5kaXNwbGF5JiYiaGlkZGVuIiE9ZS5zdHlsZS52aXNpYmlsaXR5JiZ0KGUucGFyZW50Tm9k
ZSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gZS50YWJJbmRleHx8IklOUFVUIj09ZS5ub2RlTmFtZXx8
IlRFWFRBUkVBIj09ZS5ub2RlTmFtZX1mdW5jdGlvbiBjKGUpe3JldHVybiFyKGUpJiYiLTEiIT1l
LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSYmdChlKX1pZih1PWkuc2VsZWN0KCI6aW5wdXQ6ZW5h
YmxlZCwqW3RhYmluZGV4XTpub3QoaWZyYW1lKSIpLG8odSxmdW5jdGlvbihuLHQpe3JldHVybiBu
LmlkPT1lLmlkPyhhPXQsITEpOnZvaWQgMH0pLG4+MCl7Zm9yKGQ9YSsxO2Q8dS5sZW5ndGg7ZCsr
KWlmKGModVtkXSkpcmV0dXJuIHVbZF19ZWxzZSBmb3IoZD1hLTE7ZD49MDtkLS0paWYoYyh1W2Rd
KSlyZXR1cm4gdVtkXTtyZXR1cm4gbnVsbH12YXIgYSx1LGMsZDtpZighKDkhPT1uLmtleUNvZGV8
fG4uY3RybEtleXx8bi5hbHRLZXl8fG4ubWV0YUtleSkmJihjPXIoZS5nZXRQYXJhbSgidGFiX2Zv
Y3VzIixlLmdldFBhcmFtKCJ0YWJmb2N1c19lbGVtZW50cyIsIjpwcmV2LDpuZXh0IikpKSwxPT1j
Lmxlbmd0aCYmKGNbMV09Y1swXSxjWzBdPSI6cHJldiIpLHU9bi5zaGlmdEtleT8iOnByZXYiPT1j
WzBdP3QoLTEpOmkuZ2V0KGNbMF0pOiI6bmV4dCI9PWNbMV0/dCgxKTppLmdldChjWzFdKSkpe3Zh
ciB5PXRpbnltY2UuZ2V0KHUuaWR8fHUubmFtZSk7dS5pZCYmeT95LmZvY3VzKCk6d2luZG93LnNl
dFRpbWVvdXQoZnVuY3Rpb24oKXt0aW55bWNlLkVudi53ZWJraXR8fHdpbmRvdy5mb2N1cygpLHUu
Zm9jdXMoKX0sMTApLG4ucHJldmVudERlZmF1bHQoKX19dmFyIGk9dGlueW1jZS5ET00sbz10aW55
bWNlLmVhY2gscj10aW55bWNlLmV4cGxvZGU7ZS5vbigiaW5pdCIsZnVuY3Rpb24oKXtlLmlubGlu
ZSYmdGlueW1jZS5ET00uc2V0QXR0cmliKGUuZ2V0Qm9keSgpLCJ0YWJJbmRleCIsbnVsbCl9KSxl
Lm9uKCJrZXl1cCIsbiksdGlueW1jZS5FbnYuZ2Vja28/ZS5vbigia2V5cHJlc3Mga2V5ZG93biIs
dCk6ZS5vbigia2V5ZG93biIsdCl9KTshZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7ZnVuY3Rp
b24gbihlLHQpe2Zvcih2YXIgbixvPVtdLGk9MDtpPGUubGVuZ3RoOysraSl7aWYobj1sW2VbaV1d
fHxyKGVbaV0pLCFuKXRocm93Im1vZHVsZSBkZWZpbml0aW9uIGRlcGVuZGVjeSBub3QgZm91bmQ6
ICIrZVtpXTtvLnB1c2gobil9dC5hcHBseShudWxsLG8pfWZ1bmN0aW9uIG8oZSxvLGkpe2lmKCJz
dHJpbmciIT10eXBlb2YgZSl0aHJvdyJpbnZhbGlkIG1vZHVsZSBkZWZpbml0aW9uLCBtb2R1bGUg
aWQgbXVzdCBiZSBkZWZpbmVkIGFuZCBiZSBhIHN0cmluZyI7aWYobz09PXQpdGhyb3ciaW52YWxp
ZCBtb2R1bGUgZGVmaW5pdGlvbiwgZGVwZW5kZW5jaWVzIG11c3QgYmUgc3BlY2lmaWVkIjtpZihp
PT09dCl0aHJvdyJpbnZhbGlkIG1vZHVsZSBkZWZpbml0aW9uLCBkZWZpbml0aW9uIGZ1bmN0aW9u
IG11c3QgYmUgc3BlY2lmaWVkIjtuKG8sZnVuY3Rpb24oKXtsW2VdPWkuYXBwbHkobnVsbCxhcmd1
bWVudHMpfSl9ZnVuY3Rpb24gaShlKXtyZXR1cm4hIWxbZV19ZnVuY3Rpb24gcih0KXtmb3IodmFy
IG49ZSxvPXQuc3BsaXQoL1suXC9dLyksaT0wO2k8by5sZW5ndGg7KytpKXtpZighbltvW2ldXSly
ZXR1cm47bj1uW29baV1dfXJldHVybiBufWZ1bmN0aW9uIGEobil7Zm9yKHZhciBvPTA7bzxuLmxl
bmd0aDtvKyspe2Zvcih2YXIgaT1lLHI9bltvXSxhPXIuc3BsaXQoL1suXC9dLykscz0wO3M8YS5s
ZW5ndGgtMTsrK3MpaVthW3NdXT09PXQmJihpW2Fbc11dPXt9KSxpPWlbYVtzXV07aVthW2EubGVu
Z3RoLTFdXT1sW3JdfX12YXIgbD17fSxzPSJ0aW55bWNlL3RhYmxlcGx1Z2luL1RhYmxlR3JpZCIs
Yz0idGlueW1jZS91dGlsL1Rvb2xzIixkPSJ0aW55bWNlL0VudiIsdT0idGlueW1jZS90YWJsZXBs
dWdpbi9RdWlya3MiLGY9InRpbnltY2UvdXRpbC9WSyIsbT0idGlueW1jZS90YWJsZXBsdWdpbi9D
ZWxsU2VsZWN0aW9uIixwPSJ0aW55bWNlL2RvbS9UcmVlV2Fsa2VyIixnPSJ0aW55bWNlL3RhYmxl
cGx1Z2luL1BsdWdpbiIsaD0idGlueW1jZS9QbHVnaW5NYW5hZ2VyIjtvKHMsW2MsZF0sZnVuY3Rp
b24oZSxuKXtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIHBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKHQp
fHwxLDEwKX12YXIgaT1lLmVhY2g7cmV0dXJuIGZ1bmN0aW9uKHIsYSl7ZnVuY3Rpb24gbCgpe3Zh
ciBlPTA7QT1bXSxpKFsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0sZnVuY3Rpb24odCl7dmFyIG49
SS5zZWxlY3QoIj4gIit0KyIgdHIiLGEpO2kobixmdW5jdGlvbihuLHIpe3IrPWUsaShJLnNlbGVj
dCgiPiB0ZCwgPiB0aCIsbiksZnVuY3Rpb24oZSxuKXt2YXIgaSxhLGwscztpZihBW3JdKWZvcig7
QVtyXVtuXTspbisrO2ZvcihsPW8oZSwicm93c3BhbiIpLHM9byhlLCJjb2xzcGFuIiksYT1yO3Ir
bD5hO2ErKylmb3IoQVthXXx8KEFbYV09W10pLGk9bjtuK3M+aTtpKyspQVthXVtpXT17cGFydDp0
LHJlYWw6YT09ciYmaT09bixlbG06ZSxyb3dzcGFuOmwsY29sc3BhbjpzfX0pfSksZSs9bi5sZW5n
dGh9KX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGU9ZS5jbG9uZU5vZGUodCksZS5yZW1vdmVBdHRy
aWJ1dGUoImlkIiksZX1mdW5jdGlvbiBjKGUsdCl7dmFyIG47cmV0dXJuIG49QVt0XSxuP25bZV06
dm9pZCAwfWZ1bmN0aW9uIGQoZSx0LG4pe2UmJihuPXBhcnNlSW50KG4sMTApLDE9PT1uP2UucmVt
b3ZlQXR0cmlidXRlKHQsMSk6ZS5zZXRBdHRyaWJ1dGUodCxuLDEpKX1mdW5jdGlvbiB1KGUpe3Jl
dHVybiBlJiYoSS5oYXNDbGFzcyhlLmVsbSwibWNlLWl0ZW0tc2VsZWN0ZWQiKXx8ZT09TSl9ZnVu
Y3Rpb24gZigpe3ZhciBlPVtdO3JldHVybiBpKGEucm93cyxmdW5jdGlvbih0KXtpKHQuY2VsbHMs
ZnVuY3Rpb24obil7cmV0dXJuIEkuaGFzQ2xhc3MobiwibWNlLWl0ZW0tc2VsZWN0ZWQiKXx8TSYm
bj09TS5lbG0/KGUucHVzaCh0KSwhMSk6dm9pZCAwfSl9KSxlfWZ1bmN0aW9uIG0oKXt2YXIgZT1J
LmNyZWF0ZVJuZygpO2Uuc2V0U3RhcnRBZnRlcihhKSxlLnNldEVuZEFmdGVyKGEpLEUuc2V0Um5n
KGUpLEkucmVtb3ZlKGEpfWZ1bmN0aW9uIHAodCl7dmFyIG8sYT17fTtyZXR1cm4gci5zZXR0aW5n
cy50YWJsZV9jbG9uZV9lbGVtZW50cyE9PSExJiYoYT1lLm1ha2VNYXAoKHIuc2V0dGluZ3MudGFi
bGVfY2xvbmVfZWxlbWVudHN8fCJzdHJvbmcgZW0gYiBpIHNwYW4gZm9udCBoMSBoMiBoMyBoNCBo
NSBoNiBwIGRpdiIpLnRvVXBwZXJDYXNlKCksL1sgLF0vKSksZS53YWxrKHQsZnVuY3Rpb24oZSl7
dmFyIHI7cmV0dXJuIDM9PWUubm9kZVR5cGU/KGkoSS5nZXRQYXJlbnRzKGUucGFyZW50Tm9kZSxu
dWxsLHQpLnJldmVyc2UoKSxmdW5jdGlvbihlKXthW2Uubm9kZU5hbWVdJiYoZT1zKGUsITEpLG8/
ciYmci5hcHBlbmRDaGlsZChlKTpvPXI9ZSxyPWUpfSksciYmKHIuaW5uZXJIVE1MPW4uaWU/IiZu
YnNwOyI6JzxiciBkYXRhLW1jZS1ib2d1cz0iMSIgLz4nKSwhMSk6dm9pZCAwfSwiY2hpbGROb2Rl
cyIpLHQ9cyh0LCExKSxkKHQsInJvd1NwYW4iLDEpLGQodCwiY29sU3BhbiIsMSksbz90LmFwcGVu
ZENoaWxkKG8pOm4uaWV8fCh0LmlubmVySFRNTD0nPGJyIGRhdGEtbWNlLWJvZ3VzPSIxIiAvPicp
LHR9ZnVuY3Rpb24gZygpe3ZhciBlPUkuY3JlYXRlUm5nKCksdDtyZXR1cm4gaShJLnNlbGVjdCgi
dHIiLGEpLGZ1bmN0aW9uKGUpezA9PT1lLmNlbGxzLmxlbmd0aCYmSS5yZW1vdmUoZSl9KSwwPT09
SS5zZWxlY3QoInRyIixhKS5sZW5ndGg/KGUuc2V0U3RhcnRCZWZvcmUoYSksZS5zZXRFbmRCZWZv
cmUoYSksRS5zZXRSbmcoZSksdm9pZCBJLnJlbW92ZShhKSk6KGkoSS5zZWxlY3QoInRoZWFkLHRi
b2R5LHRmb290IixhKSxmdW5jdGlvbihlKXswPT09ZS5yb3dzLmxlbmd0aCYmSS5yZW1vdmUoZSl9
KSxsKCksdm9pZChCJiYodD1BW01hdGgubWluKEEubGVuZ3RoLTEsQi55KV0sdCYmKEUuc2VsZWN0
KHRbTWF0aC5taW4odC5sZW5ndGgtMSxCLngpXS5lbG0sITApLEUuY29sbGFwc2UoITApKSkpKX1m
dW5jdGlvbiBoKGUsdCxuLG8pe3ZhciBpLHIsYSxsLHM7Zm9yKGk9QVt0XVtlXS5lbG0ucGFyZW50
Tm9kZSxhPTE7bj49YTthKyspaWYoaT1JLmdldE5leHQoaSwidHIiKSl7Zm9yKHI9ZTtyPj0wO3It
LSlpZihzPUFbdCthXVtyXS5lbG0scy5wYXJlbnROb2RlPT1pKXtmb3IobD0xO28+PWw7bCsrKUku
aW5zZXJ0QWZ0ZXIocChzKSxzKTticmVha31pZigtMT09cilmb3IobD0xO28+PWw7bCsrKWkuaW5z
ZXJ0QmVmb3JlKHAoaS5jZWxsc1swXSksaS5jZWxsc1swXSl9fWZ1bmN0aW9uIHYoKXtpKEEsZnVu
Y3Rpb24oZSx0KXtpKGUsZnVuY3Rpb24oZSxuKXt2YXIgaSxyLGE7aWYodShlKSYmKGU9ZS5lbG0s
aT1vKGUsImNvbHNwYW4iKSxyPW8oZSwicm93c3BhbiIpLGk+MXx8cj4xKSl7Zm9yKGQoZSwicm93
U3BhbiIsMSksZChlLCJjb2xTcGFuIiwxKSxhPTA7aS0xPmE7YSsrKUkuaW5zZXJ0QWZ0ZXIocChl
KSxlKTtoKG4sdCxyLTEsaSl9fSl9KX1mdW5jdGlvbiBiKHQsbixvKXt2YXIgcixhLHMsZixtLHAs
aCxiLHksdyx4O2lmKHQ/KHI9VCh0KSxhPXIueCxzPXIueSxmPWErKG4tMSksbT1zKyhvLTEpKToo
Qj1EPW51bGwsaShBLGZ1bmN0aW9uKGUsdCl7aShlLGZ1bmN0aW9uKGUsbil7dShlKSYmKEJ8fChC
PXt4Om4seTp0fSksRD17eDpuLHk6dH0pfSl9KSxCJiYoYT1CLngscz1CLnksZj1ELngsbT1ELnkp
KSxiPWMoYSxzKSx5PWMoZixtKSxiJiZ5JiZiLnBhcnQ9PXkucGFydCl7Zm9yKHYoKSxsKCksYj1j
KGEscykuZWxtLGQoYiwiY29sU3BhbiIsZi1hKzEpLGQoYiwicm93U3BhbiIsbS1zKzEpLGg9cztt
Pj1oO2grKylmb3IocD1hO2Y+PXA7cCsrKUFbaF0mJkFbaF1bcF0mJih0PUFbaF1bcF0uZWxtLHQh
PWImJih3PWUuZ3JlcCh0LmNoaWxkTm9kZXMpLGkodyxmdW5jdGlvbihlKXtiLmFwcGVuZENoaWxk
KGUpfSksdy5sZW5ndGgmJih3PWUuZ3JlcChiLmNoaWxkTm9kZXMpLHg9MCxpKHcsZnVuY3Rpb24o
ZSl7IkJSIj09ZS5ub2RlTmFtZSYmSS5nZXRBdHRyaWIoZSwiZGF0YS1tY2UtYm9ndXMiKSYmeCsr
PHcubGVuZ3RoLTEmJmIucmVtb3ZlQ2hpbGQoZSl9KSksSS5yZW1vdmUodCkpKTtnKCl9fWZ1bmN0
aW9uIHkoZSl7dmFyIG4scixhLGwsYyxmLG0sZyxoO2lmKGkoQSxmdW5jdGlvbih0LG8pe3JldHVy
biBpKHQsZnVuY3Rpb24odCl7cmV0dXJuIHUodCkmJih0PXQuZWxtLGM9dC5wYXJlbnROb2RlLGY9
cyhjLCExKSxuPW8sZSk/ITE6dm9pZCAwfSksZT8hbjp2b2lkIDB9KSxuIT09dCl7Zm9yKGw9MDts
PEFbMF0ubGVuZ3RoO2wrKylpZihBW25dW2xdJiYocj1BW25dW2xdLmVsbSxyIT1hKSl7aWYoZSl7
aWYobj4wJiZBW24tMV1bbF0mJihnPUFbbi0xXVtsXS5lbG0saD1vKGcsInJvd1NwYW4iKSxoPjEp
KXtkKGcsInJvd1NwYW4iLGgrMSk7Y29udGludWV9fWVsc2UgaWYoaD1vKHIsInJvd3NwYW4iKSxo
PjEpe2Qociwicm93U3BhbiIsaCsxKTtjb250aW51ZX1tPXAociksZChtLCJjb2xTcGFuIixyLmNv
bFNwYW4pLGYuYXBwZW5kQ2hpbGQobSksYT1yfWYuaGFzQ2hpbGROb2RlcygpJiYoZT9jLnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKGYsYyk6SS5pbnNlcnRBZnRlcihmLGMpKX19ZnVuY3Rpb24gdyhl
KXt2YXIgdCxuO2koQSxmdW5jdGlvbihuKXtyZXR1cm4gaShuLGZ1bmN0aW9uKG4sbyl7cmV0dXJu
IHUobikmJih0PW8sZSk/ITE6dm9pZCAwfSksZT8hdDp2b2lkIDB9KSxpKEEsZnVuY3Rpb24oaSxy
KXt2YXIgYSxsLHM7aVt0XSYmKGE9aVt0XS5lbG0sYSE9biYmKHM9byhhLCJjb2xzcGFuIiksbD1v
KGEsInJvd3NwYW4iKSwxPT1zP2U/KGEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocChhKSxhKSxo
KHQscixsLTEscykpOihJLmluc2VydEFmdGVyKHAoYSksYSksaCh0LHIsbC0xLHMpKTpkKGEsImNv
bFNwYW4iLGEuY29sU3BhbisxKSxuPWEpKX0pfWZ1bmN0aW9uIHgoKXt2YXIgdD1bXTtpKEEsZnVu
Y3Rpb24obil7aShuLGZ1bmN0aW9uKG4scil7dShuKSYmLTE9PT1lLmluQXJyYXkodCxyKSYmKGko
QSxmdW5jdGlvbihlKXt2YXIgdD1lW3JdLmVsbSxuO249byh0LCJjb2xTcGFuIiksbj4xP2QodCwi
Y29sU3BhbiIsbi0xKTpJLnJlbW92ZSh0KX0pLHQucHVzaChyKSl9KX0pLGcoKX1mdW5jdGlvbiBD
KCl7ZnVuY3Rpb24gZShlKXt2YXIgdCxuLHI7dD1JLmdldE5leHQoZSwidHIiKSxpKGUuY2VsbHMs
ZnVuY3Rpb24oZSl7dmFyIHQ9byhlLCJyb3dTcGFuIik7dD4xJiYoZChlLCJyb3dTcGFuIix0LTEp
LG49VChlKSxoKG4ueCxuLnksMSwxKSl9KSxuPVQoZS5jZWxsc1swXSksaShBW24ueV0sZnVuY3Rp
b24oZSl7dmFyIHQ7ZT1lLmVsbSxlIT1yJiYodD1vKGUsInJvd1NwYW4iKSwxPj10P0kucmVtb3Zl
KGUpOmQoZSwicm93U3BhbiIsdC0xKSxyPWUpfSl9dmFyIHQ7dD1mKCksaSh0LnJldmVyc2UoKSxm
dW5jdGlvbih0KXtlKHQpfSksZygpfWZ1bmN0aW9uIFAoKXt2YXIgZT1mKCk7cmV0dXJuIEkucmVt
b3ZlKGUpLGcoKSxlfWZ1bmN0aW9uIFMoKXt2YXIgZT1mKCk7cmV0dXJuIGkoZSxmdW5jdGlvbih0
LG4pe2Vbbl09cyh0LCEwKX0pLGV9ZnVuY3Rpb24gUihlLHQpe3ZhciBuPWYoKSxvPW5bdD8wOm4u
bGVuZ3RoLTFdLHI9by5jZWxscy5sZW5ndGg7ZSYmKGkoQSxmdW5jdGlvbihlKXt2YXIgdDtyZXR1
cm4gcj0wLGkoZSxmdW5jdGlvbihlKXtlLnJlYWwmJihyKz1lLmNvbHNwYW4pLGUuZWxtLnBhcmVu
dE5vZGU9PW8mJih0PTEpfSksdD8hMTp2b2lkIDB9KSx0fHxlLnJldmVyc2UoKSxpKGUsZnVuY3Rp
b24oZSl7dmFyIG4saT1lLmNlbGxzLmxlbmd0aCxhO2ZvcihuPTA7aT5uO24rKylhPWUuY2VsbHNb
bl0sZChhLCJjb2xTcGFuIiwxKSxkKGEsInJvd1NwYW4iLDEpO2ZvcihuPWk7cj5uO24rKyllLmFw
cGVuZENoaWxkKHAoZS5jZWxsc1tpLTFdKSk7Zm9yKG49cjtpPm47bisrKUkucmVtb3ZlKGUuY2Vs
bHNbbl0pO3Q/by5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLG8pOkkuaW5zZXJ0QWZ0ZXIoZSxv
KX0pLEkucmVtb3ZlQ2xhc3MoSS5zZWxlY3QoInRkLm1jZS1pdGVtLXNlbGVjdGVkLHRoLm1jZS1p
dGVtLXNlbGVjdGVkIiksIm1jZS1pdGVtLXNlbGVjdGVkIikpfWZ1bmN0aW9uIFQoZSl7dmFyIHQ7
cmV0dXJuIGkoQSxmdW5jdGlvbihuLG8pe3JldHVybiBpKG4sZnVuY3Rpb24obixpKXtyZXR1cm4g
bi5lbG09PWU/KHQ9e3g6aSx5Om99LCExKTp2b2lkIDB9KSwhdH0pLHR9ZnVuY3Rpb24gayhlKXtC
PVQoZSl9ZnVuY3Rpb24gTigpe3ZhciBlLHQ7cmV0dXJuIGU9dD0wLGkoQSxmdW5jdGlvbihuLG8p
e2kobixmdW5jdGlvbihuLGkpe3ZhciByLGE7dShuKSYmKG49QVtvXVtpXSxpPmUmJihlPWkpLG8+
dCYmKHQ9byksbi5yZWFsJiYocj1uLmNvbHNwYW4tMSxhPW4ucm93c3Bhbi0xLHImJmkrcj5lJiYo
ZT1pK3IpLGEmJm8rYT50JiYodD1vK2EpKSl9KX0pLHt4OmUseTp0fX1mdW5jdGlvbiBfKGUpe3Zh
ciB0LG4sbyxpLHIsYSxsLHMsYyxkO2lmKEQ9VChlKSxCJiZEKXtmb3IodD1NYXRoLm1pbihCLngs
RC54KSxuPU1hdGgubWluKEIueSxELnkpLG89TWF0aC5tYXgoQi54LEQueCksaT1NYXRoLm1heChC
LnksRC55KSxyPW8sYT1pLGQ9bjthPj1kO2QrKyllPUFbZF1bdF0sZS5yZWFsfHx0LShlLmNvbHNw
YW4tMSk8dCYmKHQtPWUuY29sc3Bhbi0xKTtmb3IoYz10O3I+PWM7YysrKWU9QVtuXVtjXSxlLnJl
YWx8fG4tKGUucm93c3Bhbi0xKTxuJiYobi09ZS5yb3dzcGFuLTEpO2ZvcihkPW47aT49ZDtkKysp
Zm9yKGM9dDtvPj1jO2MrKyllPUFbZF1bY10sZS5yZWFsJiYobD1lLmNvbHNwYW4tMSxzPWUucm93
c3Bhbi0xLGwmJmMrbD5yJiYocj1jK2wpLHMmJmQrcz5hJiYoYT1kK3MpKTtmb3IoSS5yZW1vdmVD
bGFzcyhJLnNlbGVjdCgidGQubWNlLWl0ZW0tc2VsZWN0ZWQsdGgubWNlLWl0ZW0tc2VsZWN0ZWQi
KSwibWNlLWl0ZW0tc2VsZWN0ZWQiKSxkPW47YT49ZDtkKyspZm9yKGM9dDtyPj1jO2MrKylBW2Rd
W2NdJiZJLmFkZENsYXNzKEFbZF1bY10uZWxtLCJtY2UtaXRlbS1zZWxlY3RlZCIpfX12YXIgQSxC
LEQsTSxFPXIuc2VsZWN0aW9uLEk9RS5kb207YT1hfHxJLmdldFBhcmVudChFLmdldFN0YXJ0KCks
InRhYmxlIiksbCgpLE09SS5nZXRQYXJlbnQoRS5nZXRTdGFydCgpLCJ0aCx0ZCIpLE0mJihCPVQo
TSksRD1OKCksTT1jKEIueCxCLnkpKSxlLmV4dGVuZCh0aGlzLHtkZWxldGVUYWJsZTptLHNwbGl0
OnYsbWVyZ2U6YixpbnNlcnRSb3c6eSxpbnNlcnRDb2w6dyxkZWxldGVDb2xzOngsZGVsZXRlUm93
czpDLGN1dFJvd3M6UCxjb3B5Um93czpTLHBhc3RlUm93czpSLGdldFBvczpULHNldFN0YXJ0Q2Vs
bDprLHNldEVuZENlbGw6X30pfX0pLG8odSxbZixkLGNdLGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlv
biBvKGUsdCl7cmV0dXJuIHBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKHQpfHwxLDEwKX12YXIgaT1u
LmVhY2g7cmV0dXJuIGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIoKXtmdW5jdGlvbiB0KHQpe2Z1bmN0
aW9uIHIoZSxvKXt2YXIgaT1lPyJwcmV2aW91c1NpYmxpbmciOiJuZXh0U2libGluZyIscj1uLmRv
bS5nZXRQYXJlbnQobywidHIiKSxsPXJbaV07aWYobClyZXR1cm4gaChuLG8sbCxlKSx0LnByZXZl
bnREZWZhdWx0KCksITA7dmFyIGQ9bi5kb20uZ2V0UGFyZW50KHIsInRhYmxlIiksdT1yLnBhcmVu
dE5vZGUsZj11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoInRib2R5Ij09PWZ8fGY9PT0oZT8i
dGZvb3QiOiJ0aGVhZCIpKXt2YXIgbT1hKGUsZCx1LCJ0Ym9keSIpO2lmKG51bGwhPT1tKXJldHVy
biBzKGUsbSxvKX1yZXR1cm4gYyhlLHIsaSxkKX1mdW5jdGlvbiBhKGUsdCxvLGkpe3ZhciByPW4u
ZG9tLnNlbGVjdCgiPiIraSx0KSxhPXIuaW5kZXhPZihvKTtpZihlJiYwPT09YXx8IWUmJmE9PT1y
Lmxlbmd0aC0xKXJldHVybiBsKGUsdCk7aWYoLTE9PT1hKXt2YXIgcz0idGhlYWQiPT09by50YWdO
YW1lLnRvTG93ZXJDYXNlKCk/MDpyLmxlbmd0aC0xO3JldHVybiByW3NdfXJldHVybiByW2ErKGU/
LTE6MSldfWZ1bmN0aW9uIGwoZSx0KXt2YXIgbz1lPyJ0aGVhZCI6InRmb290IixpPW4uZG9tLnNl
bGVjdCgiPiIrbyx0KTtyZXR1cm4gMCE9PWkubGVuZ3RoP2lbMF06bnVsbH1mdW5jdGlvbiBzKGUs
byxpKXt2YXIgcj1kKG8sZSk7cmV0dXJuIHImJmgobixpLHIsZSksdC5wcmV2ZW50RGVmYXVsdCgp
LCEwfWZ1bmN0aW9uIGMoZSxvLGksYSl7dmFyIGw9YVtpXTtpZihsKXJldHVybiB1KGwpLCEwO3Zh
ciBzPW4uZG9tLmdldFBhcmVudChhLCJ0ZCx0aCIpO2lmKHMpcmV0dXJuIHIoZSxzLHQpO3ZhciBj
PWQobywhZSk7cmV0dXJuIHUoYyksdC5wcmV2ZW50RGVmYXVsdCgpLCExfWZ1bmN0aW9uIGQoZSx0
KXt2YXIgbz1lJiZlW3Q/Imxhc3RDaGlsZCI6ImZpcnN0Q2hpbGQiXTtyZXR1cm4gbyYmIkJSIj09
PW8ubm9kZU5hbWU/bi5kb20uZ2V0UGFyZW50KG8sInRkLHRoIik6b31mdW5jdGlvbiB1KGUpe24u
c2VsZWN0aW9uLnNldEN1cnNvckxvY2F0aW9uKGUsMCl9ZnVuY3Rpb24gZigpe3JldHVybiB5PT1l
LlVQfHx5PT1lLkRPV059ZnVuY3Rpb24gbShlKXt2YXIgdD1lLnNlbGVjdGlvbi5nZXROb2RlKCks
bj1lLmRvbS5nZXRQYXJlbnQodCwidHIiKTtyZXR1cm4gbnVsbCE9PW59ZnVuY3Rpb24gcChlKXtm
b3IodmFyIHQ9MCxuPWU7bi5wcmV2aW91c1NpYmxpbmc7KW49bi5wcmV2aW91c1NpYmxpbmcsdCs9
byhuLCJjb2xzcGFuIik7cmV0dXJuIHR9ZnVuY3Rpb24gZyhlLHQpe3ZhciBuPTAscj0wO3JldHVy
biBpKGUuY2hpbGRyZW4sZnVuY3Rpb24oZSxpKXtyZXR1cm4gbis9byhlLCJjb2xzcGFuIikscj1p
LG4+dD8hMTp2b2lkIDB9KSxyfWZ1bmN0aW9uIGgoZSx0LG8saSl7dmFyIHI9cChuLmRvbS5nZXRQ
YXJlbnQodCwidGQsdGgiKSksYT1nKG8sciksbD1vLmNoaWxkTm9kZXNbYV0scz1kKGwsaSk7dShz
fHxsKX1mdW5jdGlvbiB2KGUpe3ZhciB0PW4uc2VsZWN0aW9uLmdldE5vZGUoKSxvPW4uZG9tLmdl
dFBhcmVudCh0LCJ0ZCx0aCIpLGk9bi5kb20uZ2V0UGFyZW50KGUsInRkLHRoIik7cmV0dXJuIG8m
Jm8hPT1pJiZiKG8saSl9ZnVuY3Rpb24gYihlLHQpe3JldHVybiBuLmRvbS5nZXRQYXJlbnQoZSwi
VEFCTEUiKT09PW4uZG9tLmdldFBhcmVudCh0LCJUQUJMRSIpfXZhciB5PXQua2V5Q29kZTtpZihm
KCkmJm0obikpe3ZhciB3PW4uc2VsZWN0aW9uLmdldE5vZGUoKTtzZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7dih3KSYmcighdC5zaGlmdEtleSYmeT09PWUuVVAsdyx0KX0sMCl9fW4ub24oIktleURvd24i
LGZ1bmN0aW9uKGUpe3QoZSl9KX1mdW5jdGlvbiBhKCl7ZnVuY3Rpb24gZShlLHQpe3ZhciBuPXQu
b3duZXJEb2N1bWVudCxvPW4uY3JlYXRlUmFuZ2UoKSxpO3JldHVybiBvLnNldFN0YXJ0QmVmb3Jl
KHQpLG8uc2V0RW5kKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSxpPW4uY3JlYXRlRWxlbWVu
dCgiYm9keSIpLGkuYXBwZW5kQ2hpbGQoby5jbG9uZUNvbnRlbnRzKCkpLDA9PT1pLmlubmVySFRN
TC5yZXBsYWNlKC88KGJyfGltZ3xvYmplY3R8ZW1iZWR8aW5wdXR8dGV4dGFyZWEpW14+XSo+L2dp
LCItIikucmVwbGFjZSgvPFtePl0rPi9nLCIiKS5sZW5ndGh9bi5vbigiS2V5RG93biIsZnVuY3Rp
b24odCl7dmFyIG8saSxyPW4uZG9tOygzNz09dC5rZXlDb2RlfHwzOD09dC5rZXlDb2RlKSYmKG89
bi5zZWxlY3Rpb24uZ2V0Um5nKCksaT1yLmdldFBhcmVudChvLnN0YXJ0Q29udGFpbmVyLCJ0YWJs
ZSIpLGkmJm4uZ2V0Qm9keSgpLmZpcnN0Q2hpbGQ9PWkmJmUobyxpKSYmKG89ci5jcmVhdGVSbmco
KSxvLnNldFN0YXJ0QmVmb3JlKGkpLG8uc2V0RW5kQmVmb3JlKGkpLG4uc2VsZWN0aW9uLnNldFJu
ZyhvKSx0LnByZXZlbnREZWZhdWx0KCkpKX0pfWZ1bmN0aW9uIGwoKXtuLm9uKCJLZXlEb3duIFNl
dENvbnRlbnQgVmlzdWFsQWlkIixmdW5jdGlvbigpe3ZhciBlO2ZvcihlPW4uZ2V0Qm9keSgpLmxh
c3RDaGlsZDtlO2U9ZS5wcmV2aW91c1NpYmxpbmcpaWYoMz09ZS5ub2RlVHlwZSl7aWYoZS5ub2Rl
VmFsdWUubGVuZ3RoPjApYnJlYWt9ZWxzZSBpZigxPT1lLm5vZGVUeXBlJiYhZS5nZXRBdHRyaWJ1
dGUoImRhdGEtbWNlLWJvZ3VzIikpYnJlYWs7ZSYmIlRBQkxFIj09ZS5ub2RlTmFtZSYmKG4uc2V0
dGluZ3MuZm9yY2VkX3Jvb3RfYmxvY2s/bi5kb20uYWRkKG4uZ2V0Qm9keSgpLG4uc2V0dGluZ3Mu
Zm9yY2VkX3Jvb3RfYmxvY2ssbi5zZXR0aW5ncy5mb3JjZWRfcm9vdF9ibG9ja19hdHRycyx0Lmll
JiZ0LmllPDExPyImbmJzcDsiOic8YnIgZGF0YS1tY2UtYm9ndXM9IjEiIC8+Jyk6bi5kb20uYWRk
KG4uZ2V0Qm9keSgpLCJiciIseyJkYXRhLW1jZS1ib2d1cyI6IjEifSkpfSksbi5vbigiUHJlUHJv
Y2VzcyIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlLmxhc3RDaGlsZDt0JiYoIkJSIj09dC5ub2Rl
TmFtZXx8MT09dC5jaGlsZE5vZGVzLmxlbmd0aCYmKCJCUiI9PXQuZmlyc3RDaGlsZC5ub2RlTmFt
ZXx8Ilx4YTAiPT10LmZpcnN0Q2hpbGQubm9kZVZhbHVlKSkmJnQucHJldmlvdXNTaWJsaW5nJiYi
VEFCTEUiPT10LnByZXZpb3VzU2libGluZy5ub2RlTmFtZSYmbi5kb20ucmVtb3ZlKHQpfSl9ZnVu
Y3Rpb24gcygpe2Z1bmN0aW9uIGUoZSx0LG4sbyl7dmFyIGk9MyxyPWUuZG9tLmdldFBhcmVudCh0
LnN0YXJ0Q29udGFpbmVyLCJUQUJMRSIpLGEsbCxzO3JldHVybiByJiYoYT1yLnBhcmVudE5vZGUp
LGw9dC5zdGFydENvbnRhaW5lci5ub2RlVHlwZT09aSYmMD09PXQuc3RhcnRPZmZzZXQmJjA9PT10
LmVuZE9mZnNldCYmbyYmKCJUUiI9PW4ubm9kZU5hbWV8fG49PWEpLHM9KCJURCI9PW4ubm9kZU5h
bWV8fCJUSCI9PW4ubm9kZU5hbWUpJiYhbyxsfHxzfWZ1bmN0aW9uIHQoKXt2YXIgdD1uLnNlbGVj
dGlvbi5nZXRSbmcoKSxvPW4uc2VsZWN0aW9uLmdldE5vZGUoKSxpPW4uZG9tLmdldFBhcmVudCh0
LnN0YXJ0Q29udGFpbmVyLCJURCxUSCIpO2lmKGUobix0LG8saSkpe2l8fChpPW8pO2Zvcih2YXIg
cj1pLmxhc3RDaGlsZDtyLmxhc3RDaGlsZDspcj1yLmxhc3RDaGlsZDt0LnNldEVuZChyLHIubm9k
ZVZhbHVlLmxlbmd0aCksbi5zZWxlY3Rpb24uc2V0Um5nKHQpfX1uLm9uKCJLZXlEb3duIixmdW5j
dGlvbigpe3QoKX0pLG4ub24oIk1vdXNlRG93biIsZnVuY3Rpb24oZSl7MiE9ZS5idXR0b24mJnQo
KX0pfWZ1bmN0aW9uIGMoKXtuLm9uKCJrZXlkb3duIixmdW5jdGlvbih0KXtpZigodC5rZXlDb2Rl
PT1lLkRFTEVURXx8dC5rZXlDb2RlPT1lLkJBQ0tTUEFDRSkmJiF0LmlzRGVmYXVsdFByZXZlbnRl
ZCgpKXt2YXIgbz1uLmRvbS5nZXRQYXJlbnQobi5zZWxlY3Rpb24uZ2V0U3RhcnQoKSwidGFibGUi
KTtpZihvKXtmb3IodmFyIGk9bi5kb20uc2VsZWN0KCJ0ZCx0aCIsbykscj1pLmxlbmd0aDtyLS07
KWlmKCFuLmRvbS5oYXNDbGFzcyhpW3JdLCJtY2UtaXRlbS1zZWxlY3RlZCIpKXJldHVybjt0LnBy
ZXZlbnREZWZhdWx0KCksbi5leGVjQ29tbWFuZCgibWNlVGFibGVEZWxldGUiKX19fSl9YygpLHQu
d2Via2l0JiYocigpLHMoKSksdC5nZWNrbyYmKGEoKSxsKCkpLHQuaWU+MTAmJihhKCksbCgpKX19
KSxvKG0sW3MscCxjXSxmdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0aW9uKG8pe2Z1bmN0aW9u
IGkoKXtvLmdldEJvZHkoKS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSIiLGQmJihvLmRvbS5yZW1v
dmVDbGFzcyhvLmRvbS5zZWxlY3QoInRkLm1jZS1pdGVtLXNlbGVjdGVkLHRoLm1jZS1pdGVtLXNl
bGVjdGVkIiksIm1jZS1pdGVtLXNlbGVjdGVkIiksZD0hMSl9ZnVuY3Rpb24gcih0KXt2YXIgbixp
LHI9dC50YXJnZXQ7aWYocyYmKGx8fHIhPXMpJiYoIlREIj09ci5ub2RlTmFtZXx8IlRIIj09ci5u
b2RlTmFtZSkpe2k9YS5nZXRQYXJlbnQociwidGFibGUiKSxpPT1jJiYobHx8KGw9bmV3IGUobyxp
KSxsLnNldFN0YXJ0Q2VsbChzKSxvLmdldEJvZHkoKS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSJu
b25lIiksbC5zZXRFbmRDZWxsKHIpLGQ9ITApLG49by5zZWxlY3Rpb24uZ2V0U2VsKCk7dHJ5e24u
cmVtb3ZlQWxsUmFuZ2VzP24ucmVtb3ZlQWxsUmFuZ2VzKCk6bi5lbXB0eSgpfWNhdGNoKHUpe310
LnByZXZlbnREZWZhdWx0KCl9fXZhciBhPW8uZG9tLGwscyxjLGQ9ITA7cmV0dXJuIG8ub24oIk1v
dXNlRG93biIsZnVuY3Rpb24oZSl7MiE9ZS5idXR0b24mJihpKCkscz1hLmdldFBhcmVudChlLnRh
cmdldCwidGQsdGgiKSxjPWEuZ2V0UGFyZW50KHMsInRhYmxlIikpfSksby5vbigibW91c2VvdmVy
IixyKSxvLm9uKCJyZW1vdmUiLGZ1bmN0aW9uKCl7YS51bmJpbmQoby5nZXREb2MoKSwibW91c2Vv
dmVyIixyKX0pLG8ub24oIk1vdXNlVXAiLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLG8pe3ZhciBy
PW5ldyB0KGUsZSk7ZG97aWYoMz09ZS5ub2RlVHlwZSYmMCE9PW4udHJpbShlLm5vZGVWYWx1ZSku
bGVuZ3RoKXJldHVybiB2b2lkKG8/aS5zZXRTdGFydChlLDApOmkuc2V0RW5kKGUsZS5ub2RlVmFs
dWUubGVuZ3RoKSk7aWYoIkJSIj09ZS5ub2RlTmFtZSlyZXR1cm4gdm9pZChvP2kuc2V0U3RhcnRC
ZWZvcmUoZSk6aS5zZXRFbmRCZWZvcmUoZSkpfXdoaWxlKGU9bz9yLm5leHQoKTpyLnByZXYoKSl9
dmFyIGkscj1vLnNlbGVjdGlvbixkLHUsZixtLHA7aWYocyl7aWYobCYmKG8uZ2V0Qm9keSgpLnN0
eWxlLndlYmtpdFVzZXJTZWxlY3Q9IiIpLGQ9YS5zZWxlY3QoInRkLm1jZS1pdGVtLXNlbGVjdGVk
LHRoLm1jZS1pdGVtLXNlbGVjdGVkIiksZC5sZW5ndGg+MCl7aT1hLmNyZWF0ZVJuZygpLGY9ZFsw
XSxwPWRbZC5sZW5ndGgtMV0saS5zZXRTdGFydEJlZm9yZShmKSxpLnNldEVuZEFmdGVyKGYpLGUo
ZiwxKSx1PW5ldyB0KGYsYS5nZXRQYXJlbnQoZFswXSwidGFibGUiKSk7ZG8gaWYoIlREIj09Zi5u
b2RlTmFtZXx8IlRIIj09Zi5ub2RlTmFtZSl7aWYoIWEuaGFzQ2xhc3MoZiwibWNlLWl0ZW0tc2Vs
ZWN0ZWQiKSlicmVhazttPWZ9d2hpbGUoZj11Lm5leHQoKSk7ZShtKSxyLnNldFJuZyhpKX1vLm5v
ZGVDaGFuZ2VkKCkscz1sPWM9bnVsbH19KSxvLm9uKCJLZXlVcCBEcm9wIixmdW5jdGlvbigpe2ko
KSxzPWw9Yz1udWxsfSkse2NsZWFyOml9fX0pLG8oZyxbcyx1LG0sYyxwLGQsaF0sZnVuY3Rpb24o
ZSx0LG4sbyxpLHIsYSl7ZnVuY3Rpb24gbChvKXtmdW5jdGlvbiBpKGUpe3JldHVybiBlP2UucmVw
bGFjZSgvcHgkLywiIik6IiJ9ZnVuY3Rpb24gYShlKXtyZXR1cm4vXlswLTldKyQvLnRlc3QoZSkm
JihlKz0icHgiKSxlfWZ1bmN0aW9uIGwoZSl7cygibGVmdCBjZW50ZXIgcmlnaHQiLnNwbGl0KCIg
IiksZnVuY3Rpb24odCl7by5mb3JtYXR0ZXIucmVtb3ZlKCJhbGlnbiIrdCx7fSxlKX0pfWZ1bmN0
aW9uIGMoZSl7cygidG9wIG1pZGRsZSBib3R0b20iLnNwbGl0KCIgIiksZnVuY3Rpb24odCl7by5m
b3JtYXR0ZXIucmVtb3ZlKCJ2YWxpZ24iK3Qse30sZSl9KX1mdW5jdGlvbiBkKCl7dmFyIGU9by5k
b20sdCxuLGMsZDt0PWUuZ2V0UGFyZW50KG8uc2VsZWN0aW9uLmdldFN0YXJ0KCksInRhYmxlIiks
ZD17d2lkdGg6aShlLmdldFN0eWxlKHQsIndpZHRoIil8fGUuZ2V0QXR0cmliKHQsIndpZHRoIikp
LGhlaWdodDppKGUuZ2V0U3R5bGUodCwiaGVpZ2h0Iil8fGUuZ2V0QXR0cmliKHQsImhlaWdodCIp
KSxjZWxsc3BhY2luZzp0P2UuZ2V0QXR0cmliKHQsImNlbGxzcGFjaW5nIik6IiIsY2VsbHBhZGRp
bmc6dD9lLmdldEF0dHJpYih0LCJjZWxscGFkZGluZyIpOiIiLGJvcmRlcjp0P2UuZ2V0QXR0cmli
KHQsImJvcmRlciIpOiIiLGNhcHRpb246ISFlLnNlbGVjdCgiY2FwdGlvbiIsdClbMF19LHMoImxl
ZnQgY2VudGVyIHJpZ2h0Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe28uZm9ybWF0dGVyLm1hdGNo
Tm9kZSh0LCJhbGlnbiIrZSkmJihkLmFsaWduPWUpfSksdHx8KG49e2xhYmVsOiJDb2xzIixuYW1l
OiJjb2xzIn0sYz17bGFiZWw6IlJvd3MiLG5hbWU6InJvd3MifSksby53aW5kb3dNYW5hZ2VyLm9w
ZW4oe3RpdGxlOiJUYWJsZSBwcm9wZXJ0aWVzIixpdGVtczp7dHlwZToiZm9ybSIsbGF5b3V0OiJn
cmlkIixjb2x1bW5zOjIsZGF0YTpkLGRlZmF1bHRzOnt0eXBlOiJ0ZXh0Ym94IixtYXhXaWR0aDo1
MH0saXRlbXM6W24sYyx7bGFiZWw6IldpZHRoIixuYW1lOiJ3aWR0aCJ9LHtsYWJlbDoiSGVpZ2h0
IixuYW1lOiJoZWlnaHQifSx7bGFiZWw6IkNlbGwgc3BhY2luZyIsbmFtZToiY2VsbHNwYWNpbmci
fSx7bGFiZWw6IkNlbGwgcGFkZGluZyIsbmFtZToiY2VsbHBhZGRpbmcifSx7bGFiZWw6IkJvcmRl
ciIsbmFtZToiYm9yZGVyIn0se2xhYmVsOiJDYXB0aW9uIixuYW1lOiJjYXB0aW9uIix0eXBlOiJj
aGVja2JveCJ9LHtsYWJlbDoiQWxpZ25tZW50IixtaW5XaWR0aDo5MCxuYW1lOiJhbGlnbiIsdHlw
ZToibGlzdGJveCIsdGV4dDoiTm9uZSIsbWF4V2lkdGg6bnVsbCx2YWx1ZXM6W3t0ZXh0OiJOb25l
Iix2YWx1ZToiIn0se3RleHQ6IkxlZnQiLHZhbHVlOiJsZWZ0In0se3RleHQ6IkNlbnRlciIsdmFs
dWU6ImNlbnRlciJ9LHt0ZXh0OiJSaWdodCIsdmFsdWU6InJpZ2h0In1dfV19LG9uc3VibWl0OmZ1
bmN0aW9uKCl7dmFyIG49dGhpcy50b0pTT04oKSxpO28udW5kb01hbmFnZXIudHJhbnNhY3QoZnVu
Y3Rpb24oKXt0fHwodD1nKG4uY29sc3x8MSxuLnJvd3N8fDEpKSxvLmRvbS5zZXRBdHRyaWJzKHQs
e2NlbGxzcGFjaW5nOm4uY2VsbHNwYWNpbmcsY2VsbHBhZGRpbmc6bi5jZWxscGFkZGluZyxib3Jk
ZXI6bi5ib3JkZXJ9KSxvLmRvbS5zZXRTdHlsZXModCx7d2lkdGg6YShuLndpZHRoKSxoZWlnaHQ6
YShuLmhlaWdodCl9KSxpPWUuc2VsZWN0KCJjYXB0aW9uIix0KVswXSxpJiYhbi5jYXB0aW9uJiZl
LnJlbW92ZShpKSwhaSYmbi5jYXB0aW9uJiYoaT1lLmNyZWF0ZSgiY2FwdGlvbiIpLGkuaW5uZXJI
VE1MPXIuaWU/Ilx4YTAiOic8YnIgZGF0YS1tY2UtYm9ndXM9IjEiLz4nLHQuaW5zZXJ0QmVmb3Jl
KGksdC5maXJzdENoaWxkKSksbCh0KSxuLmFsaWduJiZvLmZvcm1hdHRlci5hcHBseSgiYWxpZ24i
K24uYWxpZ24se30sdCksby5mb2N1cygpLG8uYWRkVmlzdWFsKCl9KX19KX1mdW5jdGlvbiB1KGUs
dCl7by53aW5kb3dNYW5hZ2VyLm9wZW4oe3RpdGxlOiJNZXJnZSBjZWxscyIsYm9keTpbe2xhYmVs
OiJDb2xzIixuYW1lOiJjb2xzIix0eXBlOiJ0ZXh0Ym94IixzaXplOjEwfSx7bGFiZWw6IlJvd3Mi
LG5hbWU6InJvd3MiLHR5cGU6InRleHRib3giLHNpemU6MTB9XSxvbnN1Ym1pdDpmdW5jdGlvbigp
e3ZhciBuPXRoaXMudG9KU09OKCk7by51bmRvTWFuYWdlci50cmFuc2FjdChmdW5jdGlvbigpe2Uu
bWVyZ2UodCxuLmNvbHMsbi5yb3dzKX0pfX0pfWZ1bmN0aW9uIGYoKXt2YXIgZT1vLmRvbSx0LG4s
cj1bXTtyPW8uZG9tLnNlbGVjdCgidGQubWNlLWl0ZW0tc2VsZWN0ZWQsdGgubWNlLWl0ZW0tc2Vs
ZWN0ZWQiKSx0PW8uZG9tLmdldFBhcmVudChvLnNlbGVjdGlvbi5nZXRTdGFydCgpLCJ0ZCx0aCIp
LCFyLmxlbmd0aCYmdCYmci5wdXNoKHQpLHQ9dHx8clswXSx0JiYobj17d2lkdGg6aShlLmdldFN0
eWxlKHQsIndpZHRoIil8fGUuZ2V0QXR0cmliKHQsIndpZHRoIikpLGhlaWdodDppKGUuZ2V0U3R5
bGUodCwiaGVpZ2h0Iil8fGUuZ2V0QXR0cmliKHQsImhlaWdodCIpKSxzY29wZTplLmdldEF0dHJp
Yih0LCJzY29wZSIpfSxuLnR5cGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHMoImxlZnQgY2Vu
dGVyIHJpZ2h0Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe28uZm9ybWF0dGVyLm1hdGNoTm9kZSh0
LCJhbGlnbiIrZSkmJihuLmFsaWduPWUpfSkscygidG9wIG1pZGRsZSBib3R0b20iLnNwbGl0KCIg
IiksZnVuY3Rpb24oZSl7by5mb3JtYXR0ZXIubWF0Y2hOb2RlKHQsInZhbGlnbiIrZSkmJihuLnZh
bGlnbj1lKX0pLG8ud2luZG93TWFuYWdlci5vcGVuKHt0aXRsZToiQ2VsbCBwcm9wZXJ0aWVzIixp
dGVtczp7dHlwZToiZm9ybSIsZGF0YTpuLGxheW91dDoiZ3JpZCIsY29sdW1uczoyLGRlZmF1bHRz
Ont0eXBlOiJ0ZXh0Ym94IixtYXhXaWR0aDo1MH0saXRlbXM6W3tsYWJlbDoiV2lkdGgiLG5hbWU6
IndpZHRoIn0se2xhYmVsOiJIZWlnaHQiLG5hbWU6ImhlaWdodCJ9LHtsYWJlbDoiQ2VsbCB0eXBl
IixuYW1lOiJ0eXBlIix0eXBlOiJsaXN0Ym94Iix0ZXh0OiJOb25lIixtaW5XaWR0aDo5MCxtYXhX
aWR0aDpudWxsLHZhbHVlczpbe3RleHQ6IkNlbGwiLHZhbHVlOiJ0ZCJ9LHt0ZXh0OiJIZWFkZXIg
Y2VsbCIsdmFsdWU6InRoIn1dfSx7bGFiZWw6IlNjb3BlIixuYW1lOiJzY29wZSIsdHlwZToibGlz
dGJveCIsdGV4dDoiTm9uZSIsbWluV2lkdGg6OTAsbWF4V2lkdGg6bnVsbCx2YWx1ZXM6W3t0ZXh0
OiJOb25lIix2YWx1ZToiIn0se3RleHQ6IlJvdyIsdmFsdWU6InJvdyJ9LHt0ZXh0OiJDb2x1bW4i
LHZhbHVlOiJjb2wifSx7dGV4dDoiUm93IGdyb3VwIix2YWx1ZToicm93Z3JvdXAifSx7dGV4dDoi
Q29sdW1uIGdyb3VwIix2YWx1ZToiY29sZ3JvdXAifV19LHtsYWJlbDoiSCBBbGlnbiIsbmFtZToi
YWxpZ24iLHR5cGU6Imxpc3Rib3giLHRleHQ6Ik5vbmUiLG1pbldpZHRoOjkwLG1heFdpZHRoOm51
bGwsdmFsdWVzOlt7dGV4dDoiTm9uZSIsdmFsdWU6IiJ9LHt0ZXh0OiJMZWZ0Iix2YWx1ZToibGVm
dCJ9LHt0ZXh0OiJDZW50ZXIiLHZhbHVlOiJjZW50ZXIifSx7dGV4dDoiUmlnaHQiLHZhbHVlOiJy
aWdodCJ9XX0se2xhYmVsOiJWIEFsaWduIixuYW1lOiJ2YWxpZ24iLHR5cGU6Imxpc3Rib3giLHRl
eHQ6Ik5vbmUiLG1pbldpZHRoOjkwLG1heFdpZHRoOm51bGwsdmFsdWVzOlt7dGV4dDoiTm9uZSIs
dmFsdWU6IiJ9LHt0ZXh0OiJUb3AiLHZhbHVlOiJ0b3AifSx7dGV4dDoiTWlkZGxlIix2YWx1ZToi
bWlkZGxlIn0se3RleHQ6IkJvdHRvbSIsdmFsdWU6ImJvdHRvbSJ9XX1dfSxvbnN1Ym1pdDpmdW5j
dGlvbigpe3ZhciB0PXRoaXMudG9KU09OKCk7by51bmRvTWFuYWdlci50cmFuc2FjdChmdW5jdGlv
bigpe3MocixmdW5jdGlvbihuKXtvLmRvbS5zZXRBdHRyaWIobiwic2NvcGUiLHQuc2NvcGUpLG8u
ZG9tLnNldFN0eWxlcyhuLHt3aWR0aDphKHQud2lkdGgpLGhlaWdodDphKHQuaGVpZ2h0KX0pLHQu
dHlwZSYmbi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT10LnR5cGUmJihuPWUucmVuYW1lKG4sdC50
eXBlKSksbChuKSx0LmFsaWduJiZvLmZvcm1hdHRlci5hcHBseSgiYWxpZ24iK3QuYWxpZ24se30s
biksYyhuKSx0LnZhbGlnbiYmby5mb3JtYXR0ZXIuYXBwbHkoInZhbGlnbiIrdC52YWxpZ24se30s
bil9KSxvLmZvY3VzKCl9KX19KSl9ZnVuY3Rpb24gbSgpe3ZhciBlPW8uZG9tLHQsbixyLGMsZD1b
XTt0PW8uZG9tLmdldFBhcmVudChvLnNlbGVjdGlvbi5nZXRTdGFydCgpLCJ0YWJsZSIpLG49by5k
b20uZ2V0UGFyZW50KG8uc2VsZWN0aW9uLmdldFN0YXJ0KCksInRkLHRoIikscyh0LnJvd3MsZnVu
Y3Rpb24odCl7cyh0LmNlbGxzLGZ1bmN0aW9uKG8pe3JldHVybiBlLmhhc0NsYXNzKG8sIm1jZS1p
dGVtLXNlbGVjdGVkIil8fG89PW4/KGQucHVzaCh0KSwhMSk6dm9pZCAwfSl9KSxyPWRbMF0sciYm
KGM9e2hlaWdodDppKGUuZ2V0U3R5bGUociwiaGVpZ2h0Iil8fGUuZ2V0QXR0cmliKHIsImhlaWdo
dCIpKSxzY29wZTplLmdldEF0dHJpYihyLCJzY29wZSIpfSxjLnR5cGU9ci5wYXJlbnROb2RlLm5v
ZGVOYW1lLnRvTG93ZXJDYXNlKCkscygibGVmdCBjZW50ZXIgcmlnaHQiLnNwbGl0KCIgIiksZnVu
Y3Rpb24oZSl7by5mb3JtYXR0ZXIubWF0Y2hOb2RlKHIsImFsaWduIitlKSYmKGMuYWxpZ249ZSl9
KSxvLndpbmRvd01hbmFnZXIub3Blbih7dGl0bGU6IlJvdyBwcm9wZXJ0aWVzIixpdGVtczp7dHlw
ZToiZm9ybSIsZGF0YTpjLGNvbHVtbnM6MixkZWZhdWx0czp7dHlwZToidGV4dGJveCJ9LGl0ZW1z
Olt7dHlwZToibGlzdGJveCIsbmFtZToidHlwZSIsbGFiZWw6IlJvdyB0eXBlIix0ZXh0OiJOb25l
IixtYXhXaWR0aDpudWxsLHZhbHVlczpbe3RleHQ6IkhlYWRlciIsdmFsdWU6InRoZWFkIn0se3Rl
eHQ6IkJvZHkiLHZhbHVlOiJ0Ym9keSJ9LHt0ZXh0OiJGb290ZXIiLHZhbHVlOiJ0Zm9vdCJ9XX0s
e3R5cGU6Imxpc3Rib3giLG5hbWU6ImFsaWduIixsYWJlbDoiQWxpZ25tZW50Iix0ZXh0OiJOb25l
IixtYXhXaWR0aDpudWxsLHZhbHVlczpbe3RleHQ6Ik5vbmUiLHZhbHVlOiIifSx7dGV4dDoiTGVm
dCIsdmFsdWU6ImxlZnQifSx7dGV4dDoiQ2VudGVyIix2YWx1ZToiY2VudGVyIn0se3RleHQ6IlJp
Z2h0Iix2YWx1ZToicmlnaHQifV19LHtsYWJlbDoiSGVpZ2h0IixuYW1lOiJoZWlnaHQifV19LG9u
c3VibWl0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b0pTT04oKSxuLGkscjtvLnVuZG9NYW5hZ2Vy
LnRyYW5zYWN0KGZ1bmN0aW9uKCl7dmFyIGM9dC50eXBlO3MoZCxmdW5jdGlvbihzKXtvLmRvbS5z
ZXRBdHRyaWIocywic2NvcGUiLHQuc2NvcGUpLG8uZG9tLnNldFN0eWxlcyhzLHtoZWlnaHQ6YSh0
LmhlaWdodCl9KSxjIT1zLnBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmKG49ZS5n
ZXRQYXJlbnQocywidGFibGUiKSxpPXMucGFyZW50Tm9kZSxyPWUuc2VsZWN0KGMsbilbMF0scnx8
KHI9ZS5jcmVhdGUoYyksbi5maXJzdENoaWxkP24uaW5zZXJ0QmVmb3JlKHIsbi5maXJzdENoaWxk
KTpuLmFwcGVuZENoaWxkKHIpKSxyLmFwcGVuZENoaWxkKHMpLGkuaGFzQ2hpbGROb2RlcygpfHxl
LnJlbW92ZShpKSksbChzKSx0LmFsaWduJiZvLmZvcm1hdHRlci5hcHBseSgiYWxpZ24iK3QuYWxp
Z24se30scyl9KSxvLmZvY3VzKCl9KX19KSl9ZnVuY3Rpb24gcChlKXtyZXR1cm4gZnVuY3Rpb24o
KXtvLmV4ZWNDb21tYW5kKGUpfX1mdW5jdGlvbiBnKGUsdCl7dmFyIG4saSxhO2ZvcihhPSc8dGFi
bGUgaWQ9Il9fbWNlIj48dGJvZHk+JyxuPTA7dD5uO24rKyl7Zm9yKGErPSI8dHI+IixpPTA7ZT5p
O2krKylhKz0iPHRkPiIrKHIuaWU/IiAiOiI8YnI+IikrIjwvdGQ+IjthKz0iPC90cj4ifWErPSI8
L3Rib2R5PjwvdGFibGU+IixvLmluc2VydENvbnRlbnQoYSk7dmFyIGw9by5kb20uZ2V0KCJfX21j
ZSIpO3JldHVybiBvLmRvbS5zZXRBdHRyaWIobCwiaWQiLG51bGwpLGx9ZnVuY3Rpb24gaChlLHQp
e2Z1bmN0aW9uIG4oKXtlLmRpc2FibGVkKCFvLmRvbS5nZXRQYXJlbnQoby5zZWxlY3Rpb24uZ2V0
U3RhcnQoKSx0KSksby5zZWxlY3Rpb24uc2VsZWN0b3JDaGFuZ2VkKHQsZnVuY3Rpb24odCl7ZS5k
aXNhYmxlZCghdCl9KX1vLmluaXRpYWxpemVkP24oKTpvLm9uKCJpbml0IixuKX1mdW5jdGlvbiB2
KCl7aCh0aGlzLCJ0YWJsZSIpfWZ1bmN0aW9uIGIoKXtoKHRoaXMsInRkLHRoIil9ZnVuY3Rpb24g
eSgpe3ZhciBlPSIiO2U9Jzx0YWJsZSByb2xlPSJncmlkIiBjbGFzcz0ibWNlLWdyaWQgbWNlLWdy
aWQtYm9yZGVyIiBhcmlhLXJlYWRvbmx5PSJ0cnVlIj4nO2Zvcih2YXIgdD0wOzEwPnQ7dCsrKXtl
Kz0iPHRyPiI7Zm9yKHZhciBuPTA7MTA+bjtuKyspZSs9Jzx0ZCByb2xlPSJncmlkY2VsbCIgdGFi
aW5kZXg9Ii0xIj48YSBpZD0ibWNlZ3JpZCcrKDEwKnQrbikrJyIgaHJlZj0iIyIgZGF0YS1tY2Ut
eD0iJytuKyciIGRhdGEtbWNlLXk9IicrdCsnIj48L2E+PC90ZD4nO2UrPSI8L3RyPiJ9cmV0dXJu
IGUrPSI8L3RhYmxlPiIsZSs9JzxkaXYgY2xhc3M9Im1jZS10ZXh0LWNlbnRlciIgcm9sZT0icHJl
c2VudGF0aW9uIj4xIHggMTwvZGl2Pid9ZnVuY3Rpb24gdyhlLHQsbil7dmFyIGk9bi5nZXRFbCgp
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0YWJsZSIpWzBdLHIsYSxsLHMsYyxkPW4uaXNSdGwoKXx8
InRsLXRyIj09bi5wYXJlbnQoKS5yZWw7Zm9yKGkubmV4dFNpYmxpbmcuaW5uZXJIVE1MPWUrMSsi
IHggIisodCsxKSxkJiYoZT05LWUpLGE9MDsxMD5hO2ErKylmb3Iocj0wOzEwPnI7cisrKXM9aS5y
b3dzW2FdLmNoaWxkTm9kZXNbcl0uZmlyc3RDaGlsZCxjPShkP3I+PWU6ZT49cikmJnQ+PWEsby5k
b20udG9nZ2xlQ2xhc3MocywibWNlLWFjdGl2ZSIsYyksYyYmKGw9cyk7cmV0dXJuIGwucGFyZW50
Tm9kZX12YXIgeCxDLFA9dGhpcztvLnNldHRpbmdzLnRhYmxlX2dyaWQ9PT0hMT9vLmFkZE1lbnVJ
dGVtKCJpbnNlcnR0YWJsZSIse3RleHQ6Ikluc2VydCB0YWJsZSIsaWNvbjoidGFibGUiLGNvbnRl
eHQ6InRhYmxlIixvbmNsaWNrOmR9KTpvLmFkZE1lbnVJdGVtKCJpbnNlcnR0YWJsZSIse3RleHQ6
Ikluc2VydCB0YWJsZSIsaWNvbjoidGFibGUiLGNvbnRleHQ6InRhYmxlIixhcmlhSGlkZU1lbnU6
ITAsb25jbGljazpmdW5jdGlvbihlKXtlLmFyaWEmJih0aGlzLnBhcmVudCgpLmhpZGVBbGwoKSxl
LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGQoKSl9LG9uc2hvdzpmdW5jdGlvbigpe3coMCww
LHRoaXMubWVudS5pdGVtcygpWzBdKX0sb25oaWRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tZW51
Lml0ZW1zKClbMF0uZ2V0RWwoKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpO28uZG9tLnJlbW92
ZUNsYXNzKGUsIm1jZS1hY3RpdmUiKSxvLmRvbS5hZGRDbGFzcyhlWzBdLCJtY2UtYWN0aXZlIil9
LG1lbnU6W3t0eXBlOiJjb250YWluZXIiLGh0bWw6eSgpLG9uUG9zdFJlbmRlcjpmdW5jdGlvbigp
e3RoaXMubGFzdFg9dGhpcy5sYXN0WT0wfSxvbm1vdXNlbW92ZTpmdW5jdGlvbihlKXt2YXIgdD1l
LnRhcmdldCxuLG87IkEiPT10LnRhZ05hbWUudG9VcHBlckNhc2UoKSYmKG49cGFyc2VJbnQodC5n
ZXRBdHRyaWJ1dGUoImRhdGEtbWNlLXgiKSwxMCksbz1wYXJzZUludCh0LmdldEF0dHJpYnV0ZSgi
ZGF0YS1tY2UteSIpLDEwKSwodGhpcy5pc1J0bCgpfHwidGwtdHIiPT10aGlzLnBhcmVudCgpLnJl
bCkmJihuPTktbiksKG4hPT10aGlzLmxhc3RYfHxvIT09dGhpcy5sYXN0WSkmJih3KG4sbyxlLmNv
bnRyb2wpLHRoaXMubGFzdFg9bix0aGlzLmxhc3RZPW8pKX0sb25rZXlkb3duOmZ1bmN0aW9uKGUp
e3ZhciB0PXRoaXMubGFzdFgsbj10aGlzLmxhc3RZLG87c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSAz
Nzp0PjAmJih0LS0sbz0hMCk7YnJlYWs7Y2FzZSAzOTpvPSEwLDk+dCYmdCsrO2JyZWFrO2Nhc2Ug
Mzg6bz0hMCxuPjAmJm4tLTticmVhaztjYXNlIDQwOm89ITAsOT5uJiZuKyt9byYmKGUucHJldmVu
dERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHcodCxuLGUuY29udHJvbCkuZm9jdXMoKSx0
aGlzLmxhc3RYPXQsdGhpcy5sYXN0WT1uKX0sb25jbGljazpmdW5jdGlvbihlKXsiQSI9PWUudGFy
Z2V0LnRhZ05hbWUudG9VcHBlckNhc2UoKSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9w
YWdhdGlvbigpLHRoaXMucGFyZW50KCkuY2FuY2VsKCksZyh0aGlzLmxhc3RYKzEsdGhpcy5sYXN0
WSsxKSl9fV19KSxvLmFkZE1lbnVJdGVtKCJ0YWJsZXByb3BzIix7dGV4dDoiVGFibGUgcHJvcGVy
dGllcyIsY29udGV4dDoidGFibGUiLG9uUG9zdFJlbmRlcjp2LG9uY2xpY2s6ZH0pLG8uYWRkTWVu
dUl0ZW0oImRlbGV0ZXRhYmxlIix7dGV4dDoiRGVsZXRlIHRhYmxlIixjb250ZXh0OiJ0YWJsZSIs
b25Qb3N0UmVuZGVyOnYsY21kOiJtY2VUYWJsZURlbGV0ZSJ9KSxvLmFkZE1lbnVJdGVtKCJjZWxs
Iix7c2VwYXJhdG9yOiJiZWZvcmUiLHRleHQ6IkNlbGwiLGNvbnRleHQ6InRhYmxlIixtZW51Olt7
dGV4dDoiQ2VsbCBwcm9wZXJ0aWVzIixvbmNsaWNrOnAoIm1jZVRhYmxlQ2VsbFByb3BzIiksb25Q
b3N0UmVuZGVyOmJ9LHt0ZXh0OiJNZXJnZSBjZWxscyIsb25jbGljazpwKCJtY2VUYWJsZU1lcmdl
Q2VsbHMiKSxvblBvc3RSZW5kZXI6Yn0se3RleHQ6IlNwbGl0IGNlbGwiLG9uY2xpY2s6cCgibWNl
VGFibGVTcGxpdENlbGxzIiksb25Qb3N0UmVuZGVyOmJ9XX0pLG8uYWRkTWVudUl0ZW0oInJvdyIs
e3RleHQ6IlJvdyIsY29udGV4dDoidGFibGUiLG1lbnU6W3t0ZXh0OiJJbnNlcnQgcm93IGJlZm9y
ZSIsb25jbGljazpwKCJtY2VUYWJsZUluc2VydFJvd0JlZm9yZSIpLG9uUG9zdFJlbmRlcjpifSx7
dGV4dDoiSW5zZXJ0IHJvdyBhZnRlciIsb25jbGljazpwKCJtY2VUYWJsZUluc2VydFJvd0FmdGVy
Iiksb25Qb3N0UmVuZGVyOmJ9LHt0ZXh0OiJEZWxldGUgcm93IixvbmNsaWNrOnAoIm1jZVRhYmxl
RGVsZXRlUm93Iiksb25Qb3N0UmVuZGVyOmJ9LHt0ZXh0OiJSb3cgcHJvcGVydGllcyIsb25jbGlj
azpwKCJtY2VUYWJsZVJvd1Byb3BzIiksb25Qb3N0UmVuZGVyOmJ9LHt0ZXh0OiItIn0se3RleHQ6
IkN1dCByb3ciLG9uY2xpY2s6cCgibWNlVGFibGVDdXRSb3ciKSxvblBvc3RSZW5kZXI6Yn0se3Rl
eHQ6IkNvcHkgcm93IixvbmNsaWNrOnAoIm1jZVRhYmxlQ29weVJvdyIpLG9uUG9zdFJlbmRlcjpi
fSx7dGV4dDoiUGFzdGUgcm93IGJlZm9yZSIsb25jbGljazpwKCJtY2VUYWJsZVBhc3RlUm93QmVm
b3JlIiksb25Qb3N0UmVuZGVyOmJ9LHt0ZXh0OiJQYXN0ZSByb3cgYWZ0ZXIiLG9uY2xpY2s6cCgi
bWNlVGFibGVQYXN0ZVJvd0FmdGVyIiksb25Qb3N0UmVuZGVyOmJ9XX0pLG8uYWRkTWVudUl0ZW0o
ImNvbHVtbiIse3RleHQ6IkNvbHVtbiIsY29udGV4dDoidGFibGUiLG1lbnU6W3t0ZXh0OiJJbnNl
cnQgY29sdW1uIGJlZm9yZSIsb25jbGljazpwKCJtY2VUYWJsZUluc2VydENvbEJlZm9yZSIpLG9u
UG9zdFJlbmRlcjpifSx7dGV4dDoiSW5zZXJ0IGNvbHVtbiBhZnRlciIsb25jbGljazpwKCJtY2VU
YWJsZUluc2VydENvbEFmdGVyIiksb25Qb3N0UmVuZGVyOmJ9LHt0ZXh0OiJEZWxldGUgY29sdW1u
IixvbmNsaWNrOnAoIm1jZVRhYmxlRGVsZXRlQ29sIiksb25Qb3N0UmVuZGVyOmJ9XX0pO3ZhciBT
PVtdO3MoImluc2VydHRhYmxlIHRhYmxlcHJvcHMgZGVsZXRldGFibGUgfCBjZWxsIHJvdyBjb2x1
bW4iLnNwbGl0KCIgIiksZnVuY3Rpb24oZSl7Uy5wdXNoKCJ8Ij09ZT97dGV4dDoiLSJ9Om8ubWVu
dUl0ZW1zW2VdKX0pLG8uYWRkQnV0dG9uKCJ0YWJsZSIse3R5cGU6Im1lbnVidXR0b24iLHRpdGxl
OiJUYWJsZSIsbWVudTpTfSksci5pc0lFfHxvLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7ZT1lLnRh
cmdldCwiVEFCTEUiPT09ZS5ub2RlTmFtZSYmKG8uc2VsZWN0aW9uLnNlbGVjdChlKSxvLm5vZGVD
aGFuZ2VkKCkpfSksUC5xdWlya3M9bmV3IHQobyksby5vbigiSW5pdCIsZnVuY3Rpb24oKXt4PW8u
d2luZG93TWFuYWdlcixQLmNlbGxTZWxlY3Rpb249bmV3IG4obyl9KSxzKHttY2VUYWJsZVNwbGl0
Q2VsbHM6ZnVuY3Rpb24oZSl7ZS5zcGxpdCgpfSxtY2VUYWJsZU1lcmdlQ2VsbHM6ZnVuY3Rpb24o
ZSl7dmFyIHQsbixpO2k9by5kb20uZ2V0UGFyZW50KG8uc2VsZWN0aW9uLmdldFN0YXJ0KCksInRo
LHRkIiksaSYmKHQ9aS5yb3dTcGFuLG49aS5jb2xTcGFuKSxvLmRvbS5zZWxlY3QoInRkLm1jZS1p
dGVtLXNlbGVjdGVkLHRoLm1jZS1pdGVtLXNlbGVjdGVkIikubGVuZ3RoP2UubWVyZ2UoKTp1KGUs
aSl9LG1jZVRhYmxlSW5zZXJ0Um93QmVmb3JlOmZ1bmN0aW9uKGUpe2UuaW5zZXJ0Um93KCEwKX0s
bWNlVGFibGVJbnNlcnRSb3dBZnRlcjpmdW5jdGlvbihlKXtlLmluc2VydFJvdygpfSxtY2VUYWJs
ZUluc2VydENvbEJlZm9yZTpmdW5jdGlvbihlKXtlLmluc2VydENvbCghMCl9LG1jZVRhYmxlSW5z
ZXJ0Q29sQWZ0ZXI6ZnVuY3Rpb24oZSl7ZS5pbnNlcnRDb2woKX0sbWNlVGFibGVEZWxldGVDb2w6
ZnVuY3Rpb24oZSl7ZS5kZWxldGVDb2xzKCl9LG1jZVRhYmxlRGVsZXRlUm93OmZ1bmN0aW9uKGUp
e2UuZGVsZXRlUm93cygpfSxtY2VUYWJsZUN1dFJvdzpmdW5jdGlvbihlKXtDPWUuY3V0Um93cygp
fSxtY2VUYWJsZUNvcHlSb3c6ZnVuY3Rpb24oZSl7Qz1lLmNvcHlSb3dzKCl9LG1jZVRhYmxlUGFz
dGVSb3dCZWZvcmU6ZnVuY3Rpb24oZSl7ZS5wYXN0ZVJvd3MoQywhMCl9LG1jZVRhYmxlUGFzdGVS
b3dBZnRlcjpmdW5jdGlvbihlKXtlLnBhc3RlUm93cyhDKX0sbWNlVGFibGVEZWxldGU6ZnVuY3Rp
b24oZSl7ZS5kZWxldGVUYWJsZSgpfX0sZnVuY3Rpb24odCxuKXtvLmFkZENvbW1hbmQobixmdW5j
dGlvbigpe3ZhciBuPW5ldyBlKG8pO24mJih0KG4pLG8uZXhlY0NvbW1hbmQoIm1jZVJlcGFpbnQi
KSxQLmNlbGxTZWxlY3Rpb24uY2xlYXIoKSl9KX0pLHMoe21jZUluc2VydFRhYmxlOmZ1bmN0aW9u
KCl7ZCgpfSxtY2VUYWJsZVJvd1Byb3BzOm0sbWNlVGFibGVDZWxsUHJvcHM6Zn0sZnVuY3Rpb24o
ZSx0KXtvLmFkZENvbW1hbmQodCxmdW5jdGlvbih0LG4pe2Uobil9KX0pfXZhciBzPW8uZWFjaDth
LmFkZCgidGFibGUiLGwpfSksYShbcyx1LG0sZ10pfSh0aGlzKTt0aW55bWNlLlBsdWdpbk1hbmFn
ZXIuYWRkKCJ0ZW1wbGF0ZSIsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gZnVuY3Rp
b24oKXt2YXIgYT1lLnNldHRpbmdzLnRlbXBsYXRlczsic3RyaW5nIj09dHlwZW9mIGE/dGlueW1j
ZS51dGlsLlhIUi5zZW5kKHt1cmw6YSxzdWNjZXNzOmZ1bmN0aW9uKGUpe3QodGlueW1jZS51dGls
LkpTT04ucGFyc2UoZSkpfX0pOnQoYSl9fWZ1bmN0aW9uIGEodCl7ZnVuY3Rpb24gYSh0KXtmdW5j
dGlvbiBhKHQpe2lmKC0xPT10LmluZGV4T2YoIjxodG1sPiIpKXt2YXIgYT0iIjt0aW55bWNlLmVh
Y2goZS5jb250ZW50Q1NTLGZ1bmN0aW9uKHQpe2ErPSc8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSInK2UuZG9jdW1lbnRCYXNlVVJJLnRvQWJzb2x1dGUodCkrJyI+
J30pLHQ9IjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPiIrYSsiPC9oZWFkPjxib2R5PiIrdCsi
PC9ib2R5PjwvaHRtbD4ifXQ9cih0LCJ0ZW1wbGF0ZV9wcmV2aWV3X3JlcGxhY2VfdmFsdWVzIik7
dmFyIGw9bi5maW5kKCJpZnJhbWUiKVswXS5nZXRFbCgpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7
bC5vcGVuKCksbC53cml0ZSh0KSxsLmNsb3NlKCl9dmFyIGM9dC5jb250cm9sLnZhbHVlKCk7Yy51
cmw/dGlueW1jZS51dGlsLlhIUi5zZW5kKHt1cmw6Yy51cmwsc3VjY2VzczpmdW5jdGlvbihlKXts
PWUsYShsKX19KToobD1jLmNvbnRlbnQsYShsKSksbi5maW5kKCIjZGVzY3JpcHRpb24iKVswXS50
ZXh0KHQuY29udHJvbC52YWx1ZSgpLmRlc2NyaXB0aW9uKX12YXIgbixsLGk9W107cmV0dXJuIHQm
JjAhPT10Lmxlbmd0aD8odGlueW1jZS5lYWNoKHQsZnVuY3Rpb24oZSl7aS5wdXNoKHtzZWxlY3Rl
ZDohaS5sZW5ndGgsdGV4dDplLnRpdGxlLHZhbHVlOnt1cmw6ZS51cmwsY29udGVudDplLmNvbnRl
bnQsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbn19KX0pLG49ZS53aW5kb3dNYW5hZ2VyLm9wZW4o
e3RpdGxlOiJJbnNlcnQgdGVtcGxhdGUiLGxheW91dDoiZmxleCIsZGlyZWN0aW9uOiJjb2x1bW4i
LGFsaWduOiJzdHJldGNoIixwYWRkaW5nOjE1LHNwYWNpbmc6MTAsaXRlbXM6W3t0eXBlOiJmb3Jt
IixmbGV4OjAscGFkZGluZzowLGl0ZW1zOlt7dHlwZToiY29udGFpbmVyIixsYWJlbDoiVGVtcGxh
dGVzIixpdGVtczp7dHlwZToibGlzdGJveCIsbGFiZWw6IlRlbXBsYXRlcyIsbmFtZToidGVtcGxh
dGUiLHZhbHVlczppLG9uc2VsZWN0OmF9fV19LHt0eXBlOiJsYWJlbCIsbmFtZToiZGVzY3JpcHRp
b24iLGxhYmVsOiJEZXNjcmlwdGlvbiIsdGV4dDoiwqAifSx7dHlwZToiaWZyYW1lIixmbGV4OjEs
Ym9yZGVyOjF9XSxvbnN1Ym1pdDpmdW5jdGlvbigpe2MoITEsbCl9LHdpZHRoOmUuZ2V0UGFyYW0o
InRlbXBsYXRlX3BvcHVwX3dpZHRoIiw2MDApLGhlaWdodDplLmdldFBhcmFtKCJ0ZW1wbGF0ZV9w
b3B1cF9oZWlnaHQiLDUwMCl9KSx2b2lkIG4uZmluZCgibGlzdGJveCIpWzBdLmZpcmUoInNlbGVj
dCIpKTp2b2lkIGUud2luZG93TWFuYWdlci5hbGVydCgiTm8gdGVtcGxhdGVzIGRlZmluZWQiKX1m
dW5jdGlvbiBuKHQsYSl7ZnVuY3Rpb24gbihlLHQpe2lmKGU9IiIrZSxlLmxlbmd0aDx0KWZvcih2
YXIgYT0wO2E8dC1lLmxlbmd0aDthKyspZT0iMCIrZTtyZXR1cm4gZX12YXIgbD0iU3VuIE1vbiBU
dWUgV2VkIFRodSBGcmkgU2F0IFN1biIuc3BsaXQoIiAiKSxyPSJTdW5kYXkgTW9uZGF5IFR1ZXNk
YXkgV2VkbmVzZGF5IFRodXJzZGF5IEZyaWRheSBTYXR1cmRheSBTdW5kYXkiLnNwbGl0KCIgIiks
Yz0iSmFuIEZlYiBNYXIgQXByIE1heSBKdW4gSnVsIEF1ZyBTZXAgT2N0IE5vdiBEZWMiLnNwbGl0
KCIgIiksaT0iSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3Vz
dCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKTtyZXR1cm4g
YT1hfHxuZXcgRGF0ZSx0PXQucmVwbGFjZSgiJUQiLCIlbS8lZC8lWSIpLHQ9dC5yZXBsYWNlKCIl
ciIsIiVJOiVNOiVTICVwIiksdD10LnJlcGxhY2UoIiVZIiwiIithLmdldEZ1bGxZZWFyKCkpLHQ9
dC5yZXBsYWNlKCIleSIsIiIrYS5nZXRZZWFyKCkpLHQ9dC5yZXBsYWNlKCIlbSIsbihhLmdldE1v
bnRoKCkrMSwyKSksdD10LnJlcGxhY2UoIiVkIixuKGEuZ2V0RGF0ZSgpLDIpKSx0PXQucmVwbGFj
ZSgiJUgiLCIiK24oYS5nZXRIb3VycygpLDIpKSx0PXQucmVwbGFjZSgiJU0iLCIiK24oYS5nZXRN
aW51dGVzKCksMikpLHQ9dC5yZXBsYWNlKCIlUyIsIiIrbihhLmdldFNlY29uZHMoKSwyKSksdD10
LnJlcGxhY2UoIiVJIiwiIisoKGEuZ2V0SG91cnMoKSsxMSklMTIrMSkpLHQ9dC5yZXBsYWNlKCIl
cCIsIiIrKGEuZ2V0SG91cnMoKTwxMj8iQU0iOiJQTSIpKSx0PXQucmVwbGFjZSgiJUIiLCIiK2Uu
dHJhbnNsYXRlKGlbYS5nZXRNb250aCgpXSkpLHQ9dC5yZXBsYWNlKCIlYiIsIiIrZS50cmFuc2xh
dGUoY1thLmdldE1vbnRoKCldKSksdD10LnJlcGxhY2UoIiVBIiwiIitlLnRyYW5zbGF0ZShyW2Eu
Z2V0RGF5KCldKSksdD10LnJlcGxhY2UoIiVhIiwiIitlLnRyYW5zbGF0ZShsW2EuZ2V0RGF5KCld
KSksdD10LnJlcGxhY2UoIiUlIiwiJSIpfWZ1bmN0aW9uIGwodCl7dmFyIGE9ZS5kb20sbj1lLmdl
dFBhcmFtKCJ0ZW1wbGF0ZV9yZXBsYWNlX3ZhbHVlcyIpO2koYS5zZWxlY3QoIioiLHQpLGZ1bmN0
aW9uKGUpe2kobixmdW5jdGlvbih0LGwpe2EuaGFzQ2xhc3MoZSxsKSYmImZ1bmN0aW9uIj09dHlw
ZW9mIG5bbF0mJm5bbF0oZSl9KX0pfWZ1bmN0aW9uIHIodCxhKXtyZXR1cm4gaShlLmdldFBhcmFt
KGEpLGZ1bmN0aW9uKGUsYSl7ImZ1bmN0aW9uIiE9dHlwZW9mIGUmJih0PXQucmVwbGFjZShuZXcg
UmVnRXhwKCJcXHtcXCQiK2ErIlxcfSIsImciKSxlKSl9KSx0fWZ1bmN0aW9uIGModCxhKXtmdW5j
dGlvbiBjKGUsdCl7cmV0dXJuIG5ldyBSZWdFeHAoIlxcYiIrdCsiXFxiIiwiZyIpLnRlc3QoZS5j
bGFzc05hbWUpfXZhciBvLHMscD1lLmRvbSxtPWUuc2VsZWN0aW9uLmdldENvbnRlbnQoKTthPXIo
YSwidGVtcGxhdGVfcmVwbGFjZV92YWx1ZXMiKSxvPXAuY3JlYXRlKCJkaXYiLG51bGwsYSkscz1w
LnNlbGVjdCgiLm1jZVRtcGwiLG8pLHMmJnMubGVuZ3RoPjAmJihvPXAuY3JlYXRlKCJkaXYiLG51
bGwpLG8uYXBwZW5kQ2hpbGQoc1swXS5jbG9uZU5vZGUoITApKSksaShwLnNlbGVjdCgiKiIsbyks
ZnVuY3Rpb24odCl7Yyh0LGUuZ2V0UGFyYW0oInRlbXBsYXRlX2NkYXRlX2NsYXNzZXMiLCJjZGF0
ZSIpLnJlcGxhY2UoL1xzKy9nLCJ8IikpJiYodC5pbm5lckhUTUw9bihlLmdldFBhcmFtKCJ0ZW1w
bGF0ZV9jZGF0ZV9mb3JtYXQiLGUuZ2V0TGFuZygidGVtcGxhdGUuY2RhdGVfZm9ybWF0IikpKSks
Yyh0LGUuZ2V0UGFyYW0oInRlbXBsYXRlX21kYXRlX2NsYXNzZXMiLCJtZGF0ZSIpLnJlcGxhY2Uo
L1xzKy9nLCJ8IikpJiYodC5pbm5lckhUTUw9bihlLmdldFBhcmFtKCJ0ZW1wbGF0ZV9tZGF0ZV9m
b3JtYXQiLGUuZ2V0TGFuZygidGVtcGxhdGUubWRhdGVfZm9ybWF0IikpKSksYyh0LGUuZ2V0UGFy
YW0oInRlbXBsYXRlX3NlbGVjdGVkX2NvbnRlbnRfY2xhc3NlcyIsInNlbGNvbnRlbnQiKS5yZXBs
YWNlKC9ccysvZywifCIpKSYmKHQuaW5uZXJIVE1MPW0pfSksbChvKSxlLmV4ZWNDb21tYW5kKCJt
Y2VJbnNlcnRDb250ZW50IiwhMSxvLmlubmVySFRNTCksZS5hZGRWaXN1YWwoKX12YXIgaT10aW55
bWNlLmVhY2g7ZS5hZGRDb21tYW5kKCJtY2VJbnNlcnRUZW1wbGF0ZSIsYyksZS5hZGRCdXR0b24o
InRlbXBsYXRlIix7dGl0bGU6Ikluc2VydCB0ZW1wbGF0ZSIsb25jbGljazp0KGEpfSksZS5hZGRN
ZW51SXRlbSgidGVtcGxhdGUiLHt0ZXh0OiJJbnNlcnQgdGVtcGxhdGUiLG9uY2xpY2s6dChhKSxj
b250ZXh0OiJpbnNlcnQifSksZS5vbigiUHJlUHJvY2VzcyIsZnVuY3Rpb24odCl7dmFyIGE9ZS5k
b207aShhLnNlbGVjdCgiZGl2Iix0Lm5vZGUpLGZ1bmN0aW9uKHQpe2EuaGFzQ2xhc3ModCwibWNl
VG1wbCIpJiYoaShhLnNlbGVjdCgiKiIsdCksZnVuY3Rpb24odCl7YS5oYXNDbGFzcyh0LGUuZ2V0
UGFyYW0oInRlbXBsYXRlX21kYXRlX2NsYXNzZXMiLCJtZGF0ZSIpLnJlcGxhY2UoL1xzKy9nLCJ8
IikpJiYodC5pbm5lckhUTUw9bihlLmdldFBhcmFtKCJ0ZW1wbGF0ZV9tZGF0ZV9mb3JtYXQiLGUu
Z2V0TGFuZygidGVtcGxhdGUubWRhdGVfZm9ybWF0IikpKSl9KSxsKHQpKX0pfSl9KTt0aW55bWNl
LlBsdWdpbk1hbmFnZXIuYWRkKCJ0ZXh0Y29sb3IiLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt2
YXIgdCxvLGw9W107Zm9yKG89ZS5zZXR0aW5ncy50ZXh0Y29sb3JfbWFwfHxbIjAwMDAwMCIsIkJs
YWNrIiwiOTkzMzAwIiwiQnVybnQgb3JhbmdlIiwiMzMzMzAwIiwiRGFyayBvbGl2ZSIsIjAwMzMw
MCIsIkRhcmsgZ3JlZW4iLCIwMDMzNjYiLCJEYXJrIGF6dXJlIiwiMDAwMDgwIiwiTmF2eSBCbHVl
IiwiMzMzMzk5IiwiSW5kaWdvIiwiMzMzMzMzIiwiVmVyeSBkYXJrIGdyYXkiLCI4MDAwMDAiLCJN
YXJvb24iLCJGRjY2MDAiLCJPcmFuZ2UiLCI4MDgwMDAiLCJPbGl2ZSIsIjAwODAwMCIsIkdyZWVu
IiwiMDA4MDgwIiwiVGVhbCIsIjAwMDBGRiIsIkJsdWUiLCI2NjY2OTkiLCJHcmF5aXNoIGJsdWUi
LCI4MDgwODAiLCJHcmF5IiwiRkYwMDAwIiwiUmVkIiwiRkY5OTAwIiwiQW1iZXIiLCI5OUNDMDAi
LCJZZWxsb3cgZ3JlZW4iLCIzMzk5NjYiLCJTZWEgZ3JlZW4iLCIzM0NDQ0MiLCJUdXJxdW9pc2Ui
LCIzMzY2RkYiLCJSb3lhbCBibHVlIiwiODAwMDgwIiwiUHVycGxlIiwiOTk5OTk5IiwiTWVkaXVt
IGdyYXkiLCJGRjAwRkYiLCJNYWdlbnRhIiwiRkZDQzAwIiwiR29sZCIsIkZGRkYwMCIsIlllbGxv
dyIsIjAwRkYwMCIsIkxpbWUiLCIwMEZGRkYiLCJBcXVhIiwiMDBDQ0ZGIiwiU2t5IGJsdWUiLCI5
OTMzNjYiLCJSZWQgdmlvbGV0IiwiQzBDMEMwIiwiU2lsdmVyIiwiRkY5OUNDIiwiUGluayIsIkZG
Q0M5OSIsIlBlYWNoIiwiRkZGRjk5IiwiTGlnaHQgeWVsbG93IiwiQ0NGRkNDIiwiUGFsZSBncmVl
biIsIkNDRkZGRiIsIlBhbGUgY3lhbiIsIjk5Q0NGRiIsIkxpZ2h0IHNreSBibHVlIiwiQ0M5OUZG
IiwiUGx1bSIsIkZGRkZGRiIsIldoaXRlIl0sdD0wO3Q8by5sZW5ndGg7dCs9MilsLnB1c2goe3Rl
eHQ6b1t0KzFdLGNvbG9yOm9bdF19KTtyZXR1cm4gbH1mdW5jdGlvbiBvKCl7dmFyIG8sbCxyLGEs
YyxpLG4sRixkLHM9dGhpcztmb3Iobz10KCkscj0nPHRhYmxlIGNsYXNzPSJtY2UtZ3JpZCBtY2Ut
Z3JpZC1ib3JkZXIgbWNlLWNvbG9yYnV0dG9uLWdyaWQiIHJvbGU9Imxpc3QiIGNlbGxzcGFjaW5n
PSIwIj48dGJvZHk+JyxhPW8ubGVuZ3RoLTEsYz1lLnNldHRpbmdzLnRleHRjb2xvcl9yb3dzfHw1
LGk9ZS5zZXR0aW5ncy50ZXh0Y29sb3JfY29sc3x8OCxGPTA7Yz5GO0YrKyl7Zm9yKHIrPSI8dHI+
IixuPTA7aT5uO24rKylkPUYqaStuLGQ+YT9yKz0iPHRkPjwvdGQ+IjoobD1vW2RdLHIrPSc8dGQ+
PGRpdiBpZD0iJytzLl9pZCsiLSIrZCsnIiBkYXRhLW1jZS1jb2xvcj0iJytsLmNvbG9yKyciIHJv
bGU9Im9wdGlvbiIgdGFiSW5kZXg9Ii0xIiBzdHlsZT0iJysobD8iYmFja2dyb3VuZC1jb2xvcjog
IyIrbC5jb2xvcjoiIikrJyIgdGl0bGU9IicrbC50ZXh0KyciPjwvZGl2PjwvdGQ+Jyk7cis9Ijwv
dHI+In1yZXR1cm4gcis9IjwvdGJvZHk+PC90YWJsZT4ifWZ1bmN0aW9uIGwodCl7dmFyIG8sbD10
aGlzLnBhcmVudCgpOyhvPXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1tY2UtY29sb3IiKSkm
Jih0aGlzLmxhc3RJZCYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5sYXN0SWQpLnNldEF0
dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsITEpLHQudGFyZ2V0LnNldEF0dHJpYnV0ZSgiYXJpYS1z
ZWxlY3RlZCIsITApLHRoaXMubGFzdElkPXQudGFyZ2V0LmlkLGwuaGlkZVBhbmVsKCksbz0iIyIr
byxsLmNvbG9yKG8pLGUuZXhlY0NvbW1hbmQobC5zZXR0aW5ncy5zZWxlY3RjbWQsITEsbykpfWZ1
bmN0aW9uIHIoKXt2YXIgdD10aGlzO3QuX2NvbG9yJiZlLmV4ZWNDb21tYW5kKHQuc2V0dGluZ3Mu
c2VsZWN0Y21kLCExLHQuX2NvbG9yKX1lLmFkZEJ1dHRvbigiZm9yZWNvbG9yIix7dHlwZToiY29s
b3JidXR0b24iLHRvb2x0aXA6IlRleHQgY29sb3IiLHNlbGVjdGNtZDoiRm9yZUNvbG9yIixwYW5l
bDp7cm9sZToiYXBwbGljYXRpb24iLGFyaWFSZW1lbWJlcjohMCxodG1sOm8sb25jbGljazpsfSxv
bmNsaWNrOnJ9KSxlLmFkZEJ1dHRvbigiYmFja2NvbG9yIix7dHlwZToiY29sb3JidXR0b24iLHRv
b2x0aXA6IkJhY2tncm91bmQgY29sb3IiLHNlbGVjdGNtZDoiSGlsaXRlQ29sb3IiLHBhbmVsOnty
b2xlOiJhcHBsaWNhdGlvbiIsYXJpYVJlbWVtYmVyOiEwLGh0bWw6byxvbmNsaWNrOmx9LG9uY2xp
Y2s6cn0pfSk7dGlueW1jZS5QbHVnaW5NYW5hZ2VyLmFkZCgidmlzdWFsYmxvY2tzIixmdW5jdGlv
bihlLHMpe2Z1bmN0aW9uIG8oKXt2YXIgcz10aGlzO3MuYWN0aXZlKGEpLGUub24oIlZpc3VhbEJs
b2NrcyIsZnVuY3Rpb24oKXtzLmFjdGl2ZShlLmRvbS5oYXNDbGFzcyhlLmdldEJvZHkoKSwibWNl
LXZpc3VhbGJsb2NrcyIpKX0pfXZhciBsLHQsYTt3aW5kb3cuTm9kZUxpc3QmJihlLmFkZENvbW1h
bmQoIm1jZVZpc3VhbEJsb2NrcyIsZnVuY3Rpb24oKXt2YXIgbyxjPWUuZG9tO2x8fChsPWMudW5p
cXVlSWQoKSxvPWMuY3JlYXRlKCJsaW5rIix7aWQ6bCxyZWw6InN0eWxlc2hlZXQiLGhyZWY6cysi
L2Nzcy92aXN1YWxibG9ja3MuY3NzIn0pLGUuZ2V0RG9jKCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImhlYWQiKVswXS5hcHBlbmRDaGlsZChvKSksZS5vbigiUHJldmlld0Zvcm1hdHMgQWZ0ZXJQcmV2
aWV3Rm9ybWF0cyIsZnVuY3Rpb24ocyl7YSYmYy50b2dnbGVDbGFzcyhlLmdldEJvZHkoKSwibWNl
LXZpc3VhbGJsb2NrcyIsImFmdGVycHJldmlld2Zvcm1hdHMiPT1zLnR5cGUpfSksYy50b2dnbGVD
bGFzcyhlLmdldEJvZHkoKSwibWNlLXZpc3VhbGJsb2NrcyIpLGE9ZS5kb20uaGFzQ2xhc3MoZS5n
ZXRCb2R5KCksIm1jZS12aXN1YWxibG9ja3MiKSx0JiZ0LmFjdGl2ZShjLmhhc0NsYXNzKGUuZ2V0
Qm9keSgpLCJtY2UtdmlzdWFsYmxvY2tzIikpLGUuZmlyZSgiVmlzdWFsQmxvY2tzIil9KSxlLmFk
ZEJ1dHRvbigidmlzdWFsYmxvY2tzIix7dGl0bGU6IlNob3cgYmxvY2tzIixjbWQ6Im1jZVZpc3Vh
bEJsb2NrcyIsb25Qb3N0UmVuZGVyOm99KSxlLmFkZE1lbnVJdGVtKCJ2aXN1YWxibG9ja3MiLHt0
ZXh0OiJTaG93IGJsb2NrcyIsY21kOiJtY2VWaXN1YWxCbG9ja3MiLG9uUG9zdFJlbmRlcjpvLHNl
bGVjdGFibGU6ITAsY29udGV4dDoidmlldyIscHJlcGVuZFRvQ29udGV4dDohMH0pLGUub24oImlu
aXQiLGZ1bmN0aW9uKCl7ZS5zZXR0aW5ncy52aXN1YWxibG9ja3NfZGVmYXVsdF9zdGF0ZSYmZS5l
eGVjQ29tbWFuZCgibWNlVmlzdWFsQmxvY2tzIiwhMSxudWxsLHtza2lwX2ZvY3VzOiEwfSl9KSxl
Lm9uKCJyZW1vdmUiLGZ1bmN0aW9uKCl7ZS5kb20ucmVtb3ZlQ2xhc3MoZS5nZXRCb2R5KCksIm1j
ZS12aXN1YWxibG9ja3MiKX0pKX0pO3RpbnltY2UuUGx1Z2luTWFuYWdlci5hZGQoInZpc3VhbGNo
YXJzIixmdW5jdGlvbihlKXtmdW5jdGlvbiBhKGEpe3ZhciB0LHMsaSxyLGMsZCxsPWUuZ2V0Qm9k
eSgpLG09ZS5zZWxlY3Rpb247aWYobj0hbixvLnN0YXRlPW4sZS5maXJlKCJWaXN1YWxDaGFycyIs
e3N0YXRlOm59KSxhJiYoZD1tLmdldEJvb2ttYXJrKCkpLG4pZm9yKHM9W10sdGlueW1jZS53YWxr
KGwsZnVuY3Rpb24oZSl7Mz09ZS5ub2RlVHlwZSYmZS5ub2RlVmFsdWUmJi0xIT1lLm5vZGVWYWx1
ZS5pbmRleE9mKCLCoCIpJiZzLnB1c2goZSl9LCJjaGlsZE5vZGVzIiksaT0wO2k8cy5sZW5ndGg7
aSsrKXtmb3Iocj1zW2ldLm5vZGVWYWx1ZSxyPXIucmVwbGFjZSgvKFx1MDBhMCkvZywnPHNwYW4g
ZGF0YS1tY2UtYm9ndXM9IjEiIGNsYXNzPSJtY2UtbmJzcCI+JDE8L3NwYW4+JyksYz1lLmRvbS5j
cmVhdGUoImRpdiIsbnVsbCxyKTt0PWMubGFzdENoaWxkOyllLmRvbS5pbnNlcnRBZnRlcih0LHNb
aV0pO2UuZG9tLnJlbW92ZShzW2ldKX1lbHNlIGZvcihzPWUuZG9tLnNlbGVjdCgic3Bhbi5tY2Ut
bmJzcCIsbCksaT1zLmxlbmd0aC0xO2k+PTA7aS0tKWUuZG9tLnJlbW92ZShzW2ldLDEpO20ubW92
ZVRvQm9va21hcmsoZCl9ZnVuY3Rpb24gdCgpe3ZhciBhPXRoaXM7ZS5vbigiVmlzdWFsQ2hhcnMi
LGZ1bmN0aW9uKGUpe2EuYWN0aXZlKGUuc3RhdGUpfSl9dmFyIG4sbz10aGlzO2UuYWRkQ29tbWFu
ZCgibWNlVmlzdWFsQ2hhcnMiLGEpLGUuYWRkQnV0dG9uKCJ2aXN1YWxjaGFycyIse3RpdGxlOiJT
aG93IGludmlzaWJsZSBjaGFyYWN0ZXJzIixjbWQ6Im1jZVZpc3VhbENoYXJzIixvblBvc3RSZW5k
ZXI6dH0pLGUuYWRkTWVudUl0ZW0oInZpc3VhbGNoYXJzIix7dGV4dDoiU2hvdyBpbnZpc2libGUg
Y2hhcmFjdGVycyIsY21kOiJtY2VWaXN1YWxDaGFycyIsb25Qb3N0UmVuZGVyOnQsc2VsZWN0YWJs
ZTohMCxjb250ZXh0OiJ2aWV3IixwcmVwZW5kVG9Db250ZXh0OiEwfSksZS5vbigiYmVmb3JlZ2V0
Y29udGVudCIsZnVuY3Rpb24oZSl7biYmInJhdyIhPWUuZm9ybWF0JiYhZS5kcmFmdCYmKG49ITAs
YSghMSkpfSl9KTt0aW55bWNlLlBsdWdpbk1hbmFnZXIuYWRkKCJ3b3JkY291bnQiLGZ1bmN0aW9u
KGUpe2Z1bmN0aW9uIHQoKXtlLnRoZW1lLnBhbmVsLmZpbmQoIiN3b3JkY291bnQiKS50ZXh0KFsi
V29yZHM6IHswfSIsYS5nZXRDb3VudCgpXSl9dmFyIG4sbyxhPXRoaXM7bj1lLmdldFBhcmFtKCJ3
b3JkY291bnRfY291bnRyZWdleCIsL1tcd1x1MjAxOVx4MjdcLVx1MDBDMC1cdTFGRkZdKy9nKSxv
PWUuZ2V0UGFyYW0oIndvcmRjb3VudF9jbGVhbnJlZ2V4IiwvWzAtOS4oKSw7OiE/JSMkP1x4Mjdc
eDIyXys9XFxcL1wtXSovZyksZS5vbigiaW5pdCIsZnVuY3Rpb24oKXt2YXIgbj1lLnRoZW1lLnBh
bmVsJiZlLnRoZW1lLnBhbmVsLmZpbmQoIiNzdGF0dXNiYXIiKVswXTtuJiZ3aW5kb3cuc2V0VGlt
ZW91dChmdW5jdGlvbigpe24uaW5zZXJ0KHt0eXBlOiJsYWJlbCIsbmFtZToid29yZGNvdW50Iix0
ZXh0OlsiV29yZHM6IHswfSIsYS5nZXRDb3VudCgpXSxjbGFzc2VzOiJ3b3JkY291bnQiLGRpc2Fi
bGVkOmUuc2V0dGluZ3MucmVhZG9ubHl9LDApLGUub24oInNldGNvbnRlbnQgYmVmb3JlYWRkdW5k
byIsdCksZS5vbigia2V5dXAiLGZ1bmN0aW9uKGUpezMyPT1lLmtleUNvZGUmJnQoKX0pfSwwKX0p
LGEuZ2V0Q291bnQ9ZnVuY3Rpb24oKXt2YXIgdD1lLmdldENvbnRlbnQoe2Zvcm1hdDoicmF3In0p
LGE9MDtpZih0KXt0PXQucmVwbGFjZSgvXC5cLlwuL2csIiAiKSx0PXQucmVwbGFjZSgvPC5bXjw+
XSo/Pi9nLCIgIikucmVwbGFjZSgvJm5ic3A7fCYjMTYwOy9naSwiICIpLHQ9dC5yZXBsYWNlKC8o
XHcrKSgmIz9bYS16MC05XSs7KSsoXHcrKS9pLCIkMSQzIikucmVwbGFjZSgvJi4rPzsvZywiICIp
LHQ9dC5yZXBsYWNlKG8sIiIpO3ZhciByPXQubWF0Y2gobik7ciYmKGE9ci5sZW5ndGgpfXJldHVy
biBhfX0pO3RpbnltY2UuVGhlbWVNYW5hZ2VyLmFkZCgibW9kZXJuIixmdW5jdGlvbihlKXtmdW5j
dGlvbiB0KCl7ZnVuY3Rpb24gdCh0KXt2YXIgbixvPVtdO2lmKHQpcmV0dXJuIGQodC5zcGxpdCgv
WyAsXS8pLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGkoKXt2YXIgaT1lLnNlbGVjdGlvbjsiYnVsbGlz
dCI9PXImJmkuc2VsZWN0b3JDaGFuZ2VkKCJ1bCA+IGxpIixmdW5jdGlvbihlLGkpe2Zvcih2YXIg
bixvPWkucGFyZW50cy5sZW5ndGg7by0tJiYobj1pLnBhcmVudHNbb10ubm9kZU5hbWUsIk9MIiE9
biYmIlVMIiE9bik7KTt0LmFjdGl2ZShlJiYiVUwiPT1uKX0pLCJudW1saXN0Ij09ciYmaS5zZWxl
Y3RvckNoYW5nZWQoIm9sID4gbGkiLGZ1bmN0aW9uKGUsaSl7Zm9yKHZhciBuLG89aS5wYXJlbnRz
Lmxlbmd0aDtvLS0mJihuPWkucGFyZW50c1tvXS5ub2RlTmFtZSwiT0wiIT1uJiYiVUwiIT1uKTsp
O3QuYWN0aXZlKGUmJiJPTCI9PW4pfSksdC5zZXR0aW5ncy5zdGF0ZVNlbGVjdG9yJiZpLnNlbGVj
dG9yQ2hhbmdlZCh0LnNldHRpbmdzLnN0YXRlU2VsZWN0b3IsZnVuY3Rpb24oZSl7dC5hY3RpdmUo
ZSl9LCEwKSx0LnNldHRpbmdzLmRpc2FibGVkU3RhdGVTZWxlY3RvciYmaS5zZWxlY3RvckNoYW5n
ZWQodC5zZXR0aW5ncy5kaXNhYmxlZFN0YXRlU2VsZWN0b3IsZnVuY3Rpb24oZSl7dC5kaXNhYmxl
ZChlKX0pfXZhciByOyJ8Ij09dD9uPW51bGw6Yy5oYXModCk/KHQ9e3R5cGU6dH0sdS50b29sYmFy
X2l0ZW1zX3NpemUmJih0LnNpemU9dS50b29sYmFyX2l0ZW1zX3NpemUpLG8ucHVzaCh0KSxuPW51
bGwpOihufHwobj17dHlwZToiYnV0dG9uZ3JvdXAiLGl0ZW1zOltdfSxvLnB1c2gobikpLGUuYnV0
dG9uc1t0XSYmKHI9dCx0PWUuYnV0dG9uc1tyXSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dCgp
KSx0LnR5cGU9dC50eXBlfHwiYnV0dG9uIix1LnRvb2xiYXJfaXRlbXNfc2l6ZSYmKHQuc2l6ZT11
LnRvb2xiYXJfaXRlbXNfc2l6ZSksdD1jLmNyZWF0ZSh0KSxuLml0ZW1zLnB1c2godCksZS5pbml0
aWFsaXplZD9pKCk6ZS5vbigiaW5pdCIsaSkpKX0pLGkucHVzaCh7dHlwZToidG9vbGJhciIsbGF5
b3V0OiJmbG93IixpdGVtczpvfSksITB9dmFyIGk9W107aWYodGlueW1jZS5pc0FycmF5KHUudG9v
bGJhcikpe2lmKDA9PT11LnRvb2xiYXIubGVuZ3RoKXJldHVybjt0aW55bWNlLmVhY2godS50b29s
YmFyLGZ1bmN0aW9uKGUsdCl7dVsidG9vbGJhciIrKHQrMSldPWV9KSxkZWxldGUgdS50b29sYmFy
fWZvcih2YXIgbj0xOzEwPm4mJnQodVsidG9vbGJhciIrbl0pO24rKyk7cmV0dXJuIGkubGVuZ3Ro
fHx1LnRvb2xiYXI9PT0hMXx8dCh1LnRvb2xiYXJ8fGYpLGkubGVuZ3RoP3t0eXBlOiJwYW5lbCIs
bGF5b3V0OiJzdGFjayIsY2xhc3NlczoidG9vbGJhci1ncnAiLGFyaWFSb290OiEwLGFyaWFSZW1l
bWJlcjohMCxpdGVtczppfTp2b2lkIDB9ZnVuY3Rpb24gaSgpe2Z1bmN0aW9uIHQodCl7dmFyIGk7
cmV0dXJuInwiPT10P3t0ZXh0OiJ8In06aT1lLm1lbnVJdGVtc1t0XX1mdW5jdGlvbiBpKGkpe3Zh
ciBuLG8scixhLHM7aWYocz10aW55bWNlLm1ha2VNYXAoKHUucmVtb3ZlZF9tZW51aXRlbXN8fCIi
KS5zcGxpdCgvWyAsXS8pKSx1Lm1lbnU/KG89dS5tZW51W2ldLGE9ITApOm89aFtpXSxvKXtuPXt0
ZXh0Om8udGl0bGV9LHI9W10sZCgoby5pdGVtc3x8IiIpLnNwbGl0KC9bICxdLyksZnVuY3Rpb24o
ZSl7dmFyIGk9dChlKTtpJiYhc1tlXSYmci5wdXNoKHQoZSkpfSksYXx8ZChlLm1lbnVJdGVtcyxm
dW5jdGlvbihlKXtlLmNvbnRleHQ9PWkmJigiYmVmb3JlIj09ZS5zZXBhcmF0b3ImJnIucHVzaCh7
dGV4dDoifCJ9KSxlLnByZXBlbmRUb0NvbnRleHQ/ci51bnNoaWZ0KGUpOnIucHVzaChlKSwiYWZ0
ZXIiPT1lLnNlcGFyYXRvciYmci5wdXNoKHt0ZXh0OiJ8In0pKX0pO2Zvcih2YXIgbD0wO2w8ci5s
ZW5ndGg7bCsrKSJ8Ij09cltsXS50ZXh0JiYoMD09PWx8fGw9PXIubGVuZ3RoLTEpJiZyLnNwbGlj
ZShsLDEpO2lmKG4ubWVudT1yLCFuLm1lbnUubGVuZ3RoKXJldHVybiBudWxsfXJldHVybiBufXZh
ciBuLG89W10scj1bXTtpZih1Lm1lbnUpZm9yKG4gaW4gdS5tZW51KXIucHVzaChuKTtlbHNlIGZv
cihuIGluIGgpci5wdXNoKG4pO2Zvcih2YXIgYT0ic3RyaW5nIj09dHlwZW9mIHUubWVudWJhcj91
Lm1lbnViYXIuc3BsaXQoL1sgLF0vKTpyLHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFyIGw9YVtzXTts
PWkobCksbCYmby5wdXNoKGwpfXJldHVybiBvfWZ1bmN0aW9uIG4odCl7ZnVuY3Rpb24gaShlKXt2
YXIgaT10LmZpbmQoZSlbMF07aSYmaS5mb2N1cyghMCl9ZS5zaG9ydGN1dHMuYWRkKCJBbHQrRjki
LCIiLGZ1bmN0aW9uKCl7aSgibWVudWJhciIpfSksZS5zaG9ydGN1dHMuYWRkKCJBbHQrRjEwIiwi
IixmdW5jdGlvbigpe2koInRvb2xiYXIiKX0pLGUuc2hvcnRjdXRzLmFkZCgiQWx0K0YxMSIsIiIs
ZnVuY3Rpb24oKXtpKCJlbGVtZW50cGF0aCIpfSksdC5vbigiY2FuY2VsIixmdW5jdGlvbigpe2Uu
Zm9jdXMoKX0pfWZ1bmN0aW9uIG8odCxpKXtmdW5jdGlvbiBuKGUpe3JldHVybnt3aWR0aDplLmNs
aWVudFdpZHRoLGhlaWdodDplLmNsaWVudEhlaWdodH19dmFyIG8scixhLHM7bz1lLmdldENvbnRh
aW5lcigpLHI9ZS5nZXRDb250ZW50QXJlYUNvbnRhaW5lcigpLmZpcnN0Q2hpbGQsYT1uKG8pLHM9
bihyKSxudWxsIT09dCYmKHQ9TWF0aC5tYXgodS5taW5fd2lkdGh8fDEwMCx0KSx0PU1hdGgubWlu
KHUubWF4X3dpZHRofHw2NTUzNSx0KSxtLmNzcyhvLCJ3aWR0aCIsdCsoYS53aWR0aC1zLndpZHRo
KSksbS5jc3Mociwid2lkdGgiLHQpKSxpPU1hdGgubWF4KHUubWluX2hlaWdodHx8MTAwLGkpLGk9
TWF0aC5taW4odS5tYXhfaGVpZ2h0fHw2NTUzNSxpKSxtLmNzcyhyLCJoZWlnaHQiLGkpLGUuZmly
ZSgiUmVzaXplRWRpdG9yIil9ZnVuY3Rpb24gcih0LGkpe3ZhciBuPWUuZ2V0Q29udGVudEFyZWFD
b250YWluZXIoKTtsLnJlc2l6ZVRvKG4uY2xpZW50V2lkdGgrdCxuLmNsaWVudEhlaWdodCtpKX1m
dW5jdGlvbiBhKG8pe2Z1bmN0aW9uIHIoKXtpZihoJiZoLm1vdmVSZWwmJmgudmlzaWJsZSgpJiYh
aC5fZml4ZWQpe3ZhciB0PWUuc2VsZWN0aW9uLmdldFNjcm9sbENvbnRhaW5lcigpLGk9ZS5nZXRC
b2R5KCksbj0wLG89MDtpZih0KXt2YXIgcj1tLmdldFBvcyhpKSxhPW0uZ2V0UG9zKHQpO249TWF0
aC5tYXgoMCxhLngtci54KSxvPU1hdGgubWF4KDAsYS55LXIueSl9aC5maXhlZCghMSkubW92ZVJl
bChpLGUucnRsP1sidHItYnIiLCJici10ciJdOlsidGwtYmwiLCJibC10bCJdKS5tb3ZlQnkobixv
KX19ZnVuY3Rpb24gYSgpe2gmJihoLnNob3coKSxyKCksbS5hZGRDbGFzcyhlLmdldEJvZHkoKSwi
bWNlLWVkaXQtZm9jdXMiKSl9ZnVuY3Rpb24gcygpe2gmJihoLmhpZGUoKSxtLnJlbW92ZUNsYXNz
KGUuZ2V0Qm9keSgpLCJtY2UtZWRpdC1mb2N1cyIpKX1mdW5jdGlvbiBkKCl7cmV0dXJuIGg/dm9p
ZChoLnZpc2libGUoKXx8YSgpKTooaD1sLnBhbmVsPWMuY3JlYXRlKHt0eXBlOmY/InBhbmVsIjoi
ZmxvYXRwYW5lbCIscm9sZToiYXBwbGljYXRpb24iLGNsYXNzZXM6InRpbnltY2UgdGlueW1jZS1p
bmxpbmUiLGxheW91dDoiZmxleCIsZGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduOiJzdHJldGNoIixh
dXRvaGlkZTohMSxhdXRvZml4OiEwLGZpeGVkOiEhZixib3JkZXI6MSxpdGVtczpbdS5tZW51YmFy
PT09ITE/bnVsbDp7dHlwZToibWVudWJhciIsYm9yZGVyOiIwIDAgMSAwIixpdGVtczppKCl9LHQo
KV19KSxlLmZpcmUoIkJlZm9yZVJlbmRlclVJIiksaC5yZW5kZXJUbyhmfHxkb2N1bWVudC5ib2R5
KS5yZWZsb3coKSxuKGgpLGEoKSxlLm9uKCJub2RlQ2hhbmdlIixyKSxlLm9uKCJhY3RpdmF0ZSIs
YSksZS5vbigiZGVhY3RpdmF0ZSIscyksdm9pZCBlLm5vZGVDaGFuZ2VkKCkpfXZhciBoLGY7cmV0
dXJuIHUuZml4ZWRfdG9vbGJhcl9jb250YWluZXImJihmPW0uc2VsZWN0KHUuZml4ZWRfdG9vbGJh
cl9jb250YWluZXIpWzBdKSx1LmNvbnRlbnRfZWRpdGFibGU9ITAsZS5vbigiZm9jdXMiLGZ1bmN0
aW9uKCl7by5za2luVWlDc3M/dGlueW1jZS5ET00uc3R5bGVTaGVldExvYWRlci5sb2FkKG8uc2tp
blVpQ3NzLGQsZCk6ZCgpfSksZS5vbigiYmx1ciBoaWRlIixzKSxlLm9uKCJyZW1vdmUiLGZ1bmN0
aW9uKCl7aCYmKGgucmVtb3ZlKCksaD1udWxsKX0pLG8uc2tpblVpQ3NzJiZ0aW55bWNlLkRPTS5z
dHlsZVNoZWV0TG9hZGVyLmxvYWQoby5za2luVWlDc3MpLHt9fWZ1bmN0aW9uIHMocil7dmFyIGEs
cyxkO3JldHVybiByLnNraW5VaUNzcyYmdGlueW1jZS5ET00ubG9hZENTUyhyLnNraW5VaUNzcyks
YT1sLnBhbmVsPWMuY3JlYXRlKHt0eXBlOiJwYW5lbCIscm9sZToiYXBwbGljYXRpb24iLGNsYXNz
ZXM6InRpbnltY2UiLHN0eWxlOiJ2aXNpYmlsaXR5OiBoaWRkZW4iLGxheW91dDoic3RhY2siLGJv
cmRlcjoxLGl0ZW1zOlt1Lm1lbnViYXI9PT0hMT9udWxsOnt0eXBlOiJtZW51YmFyIixib3JkZXI6
IjAgMCAxIDAiLGl0ZW1zOmkoKX0sdCgpLHt0eXBlOiJwYW5lbCIsbmFtZToiaWZyYW1lIixsYXlv
dXQ6InN0YWNrIixjbGFzc2VzOiJlZGl0LWFyZWEiLGh0bWw6IiIsYm9yZGVyOiIxIDAgMCAwIn1d
fSksdS5yZXNpemUhPT0hMSYmKHM9e3R5cGU6InJlc2l6ZWhhbmRsZSIsZGlyZWN0aW9uOnUucmVz
aXplLG9uUmVzaXplU3RhcnQ6ZnVuY3Rpb24oKXt2YXIgdD1lLmdldENvbnRlbnRBcmVhQ29udGFp
bmVyKCkuZmlyc3RDaGlsZDtkPXt3aWR0aDp0LmNsaWVudFdpZHRoLGhlaWdodDp0LmNsaWVudEhl
aWdodH19LG9uUmVzaXplOmZ1bmN0aW9uKGUpeyJib3RoIj09dS5yZXNpemU/byhkLndpZHRoK2Uu
ZGVsdGFYLGQuaGVpZ2h0K2UuZGVsdGFZKTpvKG51bGwsZC5oZWlnaHQrZS5kZWx0YVkpfX0pLHUu
c3RhdHVzYmFyIT09ITEmJmEuYWRkKHt0eXBlOiJwYW5lbCIsbmFtZToic3RhdHVzYmFyIixjbGFz
c2VzOiJzdGF0dXNiYXIiLGxheW91dDoiZmxvdyIsYm9yZGVyOiIxIDAgMCAwIixhcmlhUm9vdDoh
MCxpdGVtczpbe3R5cGU6ImVsZW1lbnRwYXRoIn0sc119KSx1LnJlYWRvbmx5JiZhLmZpbmQoIioi
KS5kaXNhYmxlZCghMCksZS5maXJlKCJCZWZvcmVSZW5kZXJVSSIpLGEucmVuZGVyQmVmb3JlKHIu
dGFyZ2V0Tm9kZSkucmVmbG93KCksdS53aWR0aCYmdGlueW1jZS5ET00uc2V0U3R5bGUoYS5nZXRF
bCgpLCJ3aWR0aCIsdS53aWR0aCksZS5vbigicmVtb3ZlIixmdW5jdGlvbigpe2EucmVtb3ZlKCks
YT1udWxsfSksbihhKSx7aWZyYW1lQ29udGFpbmVyOmEuZmluZCgiI2lmcmFtZSIpWzBdLmdldEVs
KCksZWRpdG9yQ29udGFpbmVyOmEuZ2V0RWwoKX19dmFyIGw9dGhpcyx1PWUuc2V0dGluZ3MsYz10
aW55bWNlLnVpLkZhY3RvcnksZD10aW55bWNlLmVhY2gsbT10aW55bWNlLkRPTSxoPXtmaWxlOnt0
aXRsZToiRmlsZSIsaXRlbXM6Im5ld2RvY3VtZW50In0sZWRpdDp7dGl0bGU6IkVkaXQiLGl0ZW1z
OiJ1bmRvIHJlZG8gfCBjdXQgY29weSBwYXN0ZSBwYXN0ZXRleHQgfCBzZWxlY3RhbGwifSxpbnNl
cnQ6e3RpdGxlOiJJbnNlcnQiLGl0ZW1zOiJ8In0sdmlldzp7dGl0bGU6IlZpZXciLGl0ZW1zOiJ2
aXN1YWxhaWQgfCJ9LGZvcm1hdDp7dGl0bGU6IkZvcm1hdCIsaXRlbXM6ImJvbGQgaXRhbGljIHVu
ZGVybGluZSBzdHJpa2V0aHJvdWdoIHN1cGVyc2NyaXB0IHN1YnNjcmlwdCB8IGZvcm1hdHMgfCBy
ZW1vdmVmb3JtYXQifSx0YWJsZTp7dGl0bGU6IlRhYmxlIn0sdG9vbHM6e3RpdGxlOiJUb29scyJ9
fSxmPSJ1bmRvIHJlZG8gfCBzdHlsZXNlbGVjdCB8IGJvbGQgaXRhbGljIHwgYWxpZ25sZWZ0IGFs
aWduY2VudGVyIGFsaWducmlnaHQgYWxpZ25qdXN0aWZ5IHwgYnVsbGlzdCBudW1saXN0IG91dGRl
bnQgaW5kZW50IHwgbGluayBpbWFnZSI7bC5yZW5kZXJVST1mdW5jdGlvbih0KXt2YXIgaT11LnNr
aW4hPT0hMT91LnNraW58fCJsaWdodGdyYXkiOiExO2lmKGkpe3ZhciBuPXUuc2tpbl91cmw7bj1u
P2UuZG9jdW1lbnRCYXNlVVJJLnRvQWJzb2x1dGUobik6dGlueW1jZS5iYXNlVVJMKyIvc2tpbnMv
IitpLHQuc2tpblVpQ3NzPXRpbnltY2UuRW52LmRvY3VtZW50TW9kZTw9Nz9uKyIvc2tpbi5pZTcu
bWluLmNzcyI6bisiL3NraW4ubWluLmNzcyIsZS5jb250ZW50Q1NTLnB1c2gobisiL2NvbnRlbnQi
KyhlLmlubGluZT8iLmlubGluZSI6IiIpKyIubWluLmNzcyIpfXJldHVybiBlLm9uKCJQcm9ncmVz
c1N0YXRlIixmdW5jdGlvbihlKXtsLnRocm9iYmVyPWwudGhyb2JiZXJ8fG5ldyB0aW55bWNlLnVp
LlRocm9iYmVyKGwucGFuZWwuZ2V0RWwoImJvZHkiKSksZS5zdGF0ZT9sLnRocm9iYmVyLnNob3co
ZS50aW1lKTpsLnRocm9iYmVyLmhpZGUoKX0pLHUuaW5saW5lP2EodCk6cyh0KX0sbC5yZXNpemVU
bz1vLGwucmVzaXplQnk9cn0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2tleV9s
b2dnZXIuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2tleV9sb2dnZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNjAwODQ5NmViYmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9rZXlfbG9nZ2VyLmh0bWwKQEAgLTAsMCArMSwzNCBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDExL0RURC94aHRt
bDExLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1s
Omxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdGluZyBLZXkgRXZl
bnRzPC90aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAg
IGZ1bmN0aW9uIGFwcGVuZE1lc3NhZ2UobWVzc2FnZSkgeworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFBhcmFncmFwaCcpLmlubmVySFRNTCArPSBtZXNzYWdlICsg
IiAiOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9
InJlc3VsdENvbnRhaW5lciIgaGVpZ2h0PSIzMCI+Jm5ic3A7CisgIDxkaXYgaWQ9InJlc3VsdCIg
c3R5bGU9IndpZHRoOjMwMDtoZWlnaHQ6NjAiPgorICAgIDxwIGlkPSJyZXN1bHRQYXJhZ3JhcGgi
PiZuYnNwOzwvcD4KKyAgPC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCis8ZGl2PgorICA8Zm9ybSBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgaWQ9Im9uLWZv
cm0iPgorICAgIDxpbnB1dCBpZD0idGhld29ya3MiCisgICAgICAgICAgIG9uZm9jdXM9ImFwcGVu
ZE1lc3NhZ2UoJ2ZvY3VzJykiCisgICAgICAgICAgIG9ua2V5ZG93bj0iYXBwZW5kTWVzc2FnZSgn
a2V5ZG93bicpIgorICAgICAgICAgICBvbmtleXByZXNzPSJhcHBlbmRNZXNzYWdlKCdrZXlwcmVz
cycpIgorICAgICAgICAgICBvbmtleXVwPSJhcHBlbmRNZXNzYWdlKCdrZXl1cCcpIgorICAgICAg
ICAgICBvbmJsdXI9ImFwcGVuZE1lc3NhZ2UoJ2JsdXInKSIKKyAgICAgICAgICAgb25jaGFuZ2U9
ImFwcGVuZE1lc3NhZ2UoJ2NoYW5nZScpIgorICAgICAgICAgICAvPgorICA8L2Zvcm0+Cis8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KKworCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9rZXlfdGVzdHMvcmVtb3ZlX29uX2tleXByZXNz
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9r
ZXlfdGVzdHMvcmVtb3ZlX29uX2tleXByZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmMwZjNhYWI0Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIva2V5X3Rlc3RzL3JlbW92ZV9v
bl9rZXlwcmVzcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdj48
aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0iY2hlY2tib3giPlByZXNzaW5nICJhIiB3aGlsZSB0aGlz
IGNoZWNrYm94IGlzCisgIGZvY3VzZWQgd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgRE9NLjwvZGl2
PgorPGRpdj48dGV4dGFyZWEgaWQ9ImxvZyIgc3R5bGU9IndpZHRoOjI1MHB4OyBoZWlnaHQ6MjUw
cHg7Ij48L3RleHRhcmVhPjwvZGl2PgorPGRpdj48YnV0dG9uIGlkPSJjbGVhciI+Q2xlYXIgbG9n
PC9idXR0b24+PC9kaXY+Cis8c2NyaXB0PgorICBmdW5jdGlvbiByZW1vdmVOb2RlKG5vZGUpIHsK
KyAgICBpZiAobm9kZSAmJiBub2RlLnBhcmVudE5vZGUpIHsKKyAgICAgIG5vZGUucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChub2RlKTsKKyAgICB9CisgIH0KKworICBmdW5jdGlvbiBsb2cobXNnKSB7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLnZhbHVlICs9IG1zZyArICdcbic7
CisgIH0KKworICBkb2N1bWVudC5ib2R5Lm9ua2V5dXAgPSBmdW5jdGlvbigpIHsKKyAgICBsb2co
J2tleXVwIChib2R5KScpOworICB9OworCisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGVh
cicpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bG9nJykudmFsdWUgPSAnJzsKKyAgfTsKKworICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldCcpOworICB0YXJnZXQub25rZXlkb3duID0gZnVuY3Rpb24oKSB7IGxv
Zygna2V5ZG93biAodGFyZ2V0KScpOyB9OworICB0YXJnZXQub25rZXlwcmVzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7CisgICAgdmFyIGsgPSBlLmtleUNvZGUg
fHwgZS53aGljaDsKKyAgICBpZiAoayA9PSA5NykgeworICAgICAgbG9nKCdhIHByZXNzZWQ7IHJl
bW92aW5nJyk7CisgICAgICByZW1vdmVOb2RlKHRhcmdldC5wYXJlbnROb2RlKTsKKyAgICB9Cisg
IH07CisgIHRhcmdldC5vbmtleXVwID0gZnVuY3Rpb24oKSB7IGxvZygna2V5dXAgKHRhcmdldCkn
KTsgfTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIva2V5Ym9hcmRfc2hvcnRjdXQuaHRtbCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2tleWJvYXJkX3Nob3J0Y3V0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0MWQ3ZjRiOGNmCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIva2V5Ym9hcmRfc2hvcnRjdXQuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kOiB3aGl0ZSI+Cis8ZGl2IHN0eWxlPSJi
YWNrZ3JvdW5kOiByZWQiPkNUUkwgKyAxOiByZWQ8L2Rpdj4KKzxkaXYgc3R5bGU9ImJhY2tncm91
bmQ6IGdyZWVuIj5TSElGVCArIDE6IGdyZWVuPC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5k
OiB5ZWxsb3ciPkNUUkwgKyBTSElGVCArIDE6IHllbGxvdzwvZGl2PgorPGRpdiBzdHlsZT0iYmFj
a2dyb3VuZDogbGlnaHRibHVlIj5BTFQgKyAxOiBsaWdodGJsdWU8L2Rpdj4KKzxkaXYgc3R5bGU9
ImJhY2tncm91bmQ6IGxpZ2h0Z3JlZW4iPkNUUkwgKyBBTFQgKyAxOiBsaWdodGdyZWVuPC9kaXY+
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBzaWx2ZXIiPlNISUZUICsgQUxUICsgMTogc2lsdmVy
PC9kaXY+Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiBtYWdlbnRhIj5DVFJMICsgU0hJRlQgKyBB
TFQgKyAxOiBtYWdlbnRhPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgY29sb3JzID0ge307CisgIGNv
bG9yc1sweDAwMV0gPSAncmVkJzsKKyAgY29sb3JzWzB4MDEwXSA9ICdncmVlbic7CisgIGNvbG9y
c1sweDAxMV0gPSAneWVsbG93JzsKKyAgY29sb3JzWzB4MTAwXSA9ICdsaWdodGJsdWUnOworICBj
b2xvcnNbMHgxMDFdID0gJ2xpZ2h0Z3JlZW4nOworICBjb2xvcnNbMHgxMTBdID0gJ3NpbHZlcic7
CisgIGNvbG9yc1sweDExMV0gPSAnbWFnZW50YSc7CisKKyAgZG9jdW1lbnQub25rZXlkb3duID0g
ZnVuY3Rpb24oZSkgeworICAgIGlmIChlLmtleUNvZGUgIT0gNDkpIHJldHVybjsKKyAgICB2YXIg
bWFzayA9IDA7CisgICAgaWYgKGUuY3RybEtleSkgbWFzayB8PSAweDAwMTsKKyAgICBpZiAoZS5z
aGlmdEtleSkgbWFzayB8PSAweDAxMDsKKyAgICBpZiAoZS5hbHRLZXkpIG1hc2sgfD0gMHgxMDA7
CisKKyAgICBjb25zb2xlLmxvZyhtYXNrKTsKKyAgICBpZiAobWFzaykgeworICAgICAgZG9jdW1l
bnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcnNbbWFza107CisgICAgfQorCisg
ICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgcmV0
dXJuIGZhbHNlOworICB9OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9saW5rZWRfaW1hZ2UuaHRtbCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2xpbmtlZF9pbWFnZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43YzhkZjAwMzFhMQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL2xpbmtlZF9pbWFnZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxNRVRBIEhUVFAtRVFVSVY9IkNvbnRlbnQtVHlwZSIgQ09O
VEVOVD0idGV4dC9odG1sIj4KKzx0aXRsZT5MaW5raW5nIHdpdGggYW4gaW1hZ2U8L3RpdGxlPgor
PC9oZWFkPgorPGJvZHk+Cis8aW1nIHN0eWxlPSJ3aWR0aDogNjQ0cHg7IGhlaWdodDogNDFweDsi
IGFsdD0iYmFubmVyIiBzcmM9ImJhbm5lci5naWYiPjxicj4KKzxhIGlkPSJsaW5rIiBocmVmPSIu
L3Jlc3VsdFBhZ2UuaHRtbCI+Q2xpY2sgaGVyZSBmb3IgbmV4dCBwYWdlPC9hPjxicj4KKzxhIGlk
PSJsaW5rV2l0aEVuY2xvc2VkSW1hZ2UiIGhyZWY9Ii4vcmVzdWx0UGFnZS5odG1sIj48aW1nIGlk
PSJlbmNsb3NlZEltYWdlIiBzcmM9Ii4vYmFubmVyLmdpZiI+PC9hPjxici8+Cis8YSBpZD0ibGlu
a1RvQW5jaG9yT25UaGlzUGFnZSIgaHJlZj0iI2xpbmsiPmxpbmsgdG8gb3RoZXIgbGluazwvYT48
YnIvPgorPGEgaWQ9Imp1c3Rhbm90aGVyTGluayIgaHJlZj0iLi9yZXN1bHRQYWdlLmh0bWwiPkp1
c3QgYW5vdGhlciBsaW5rLjwvYT48YnIvPgorPGEgaWQ9ImxpbmtXaXRoRXh0cmFFbmNsb3NlZElt
YWdlIiBocmVmPSIuL3Jlc3VsdFBhZ2UuaHRtbCI+PGRpdj48aW1nIGlkPSJleHRyYUVuY2xvc2Vk
SW1hZ2UiIHNyYz0iLi9iYW5uZXIuZ2lmIj48L2Rpdj48L2E+PGJyLz4KKzwvYm9keT4KKworPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvbG9jYXRvcnNfdGVzdHMvYm9vbGVhbl9hdHRyaWJ1dGVfc2VsZWN0ZWQuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2xvY2F0b3Jz
X3Rlc3RzL2Jvb2xlYW5fYXR0cmlidXRlX3NlbGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQyYjA0NDJiMDhiCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbG9jYXRvcnNfdGVz
dHMvYm9vbGVhbl9hdHRyaWJ1dGVfc2VsZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRt
bD4KKzxoZWFkPgorICAgIDx0aXRsZT5Cb29sZWFuIEF0dHJpYnV0ZSBTZWxlY3RlZDwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249IiMiIG5hbWU9Im15
Rm9ybSI+CisgICAgPHNlbGVjdCBuYW1lPSJteURyb3Bkb3duIj4KKyAgICAgICAgPG9wdGlvbiB2
YWx1ZT0ib25lIj5PbmU8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0
ZWQiIHZhbHVlPSJ0d28iPlR3bzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb3Vy
Ij5Gb3VyPC9vcHRpb24+CisgICAgPC9zZWxlY3Q+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9sb2Nh
dG9yc190ZXN0cy9ib29sZWFuX2F0dHJpYnV0ZV9zZWxlY3RlZF9odG1sNC5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbG9jYXRvcnNfdGVzdHMv
Ym9vbGVhbl9hdHRyaWJ1dGVfc2VsZWN0ZWRfaHRtbDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNjBjZDAzMzgxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9sb2NhdG9yc190ZXN0
cy9ib29sZWFuX2F0dHJpYnV0ZV9zZWxlY3RlZF9odG1sNC5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkJvb2xlYW4gQXR0cmlidXRlIFNlbGVjdGVkPC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0iIyIgbmFt
ZT0ibXlGb3JtIj4KKyAgICA8c2VsZWN0IG5hbWU9Im15RHJvcGRvd24iPgorICAgICAgICA8b3B0
aW9uIHZhbHVlPSJvbmUiPk9uZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkIHZh
bHVlPSJ0d28iPlR3bzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb3VyIj5Gb3Vy
PC9vcHRpb24+CisgICAgPC9zZWxlY3Q+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9sb25nQ29udGVu
dFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL2xvbmdDb250ZW50UGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi45OWE0NWU3NzM4NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL2xvbmdDb250ZW50UGFnZS5odG1sCkBAIC0w
LDAgKzEsNTUgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRvdWNoTG9uZ0NvbnRlbnQ8
L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8aDE+VG91Y2ggQVBJPC9oMT4KKyAgICA8
aDI+UGFnZSB3aXRoIGxvbmcgY29udGVudDwvaDI+CisgICAgPHByZT4gICAgICAgICAgICAgICAg
ICAgPGEgaWQ9ImltYWdlc3RhcnQiPjxpbWcgc3JjPSJpY29uLmdpZiI+PC9hPjwvcHJlPjwvYnI+
PC9icj48L2JyPgorICAgIDxwPjxwcmU+TG9uZyB0ZXh0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIHZlcnkg
bG9uZyB0ZXh0IHRvIG1ha2UgdGhlIHNjcmVlbiBob3Jpem9udGFsbHkgbW92YWJsZSwgdG8gdGVz
dCB0aGUgZmxpY2sgZ2VzdHVyZSBhdCBhIGxvbmcgaG9yaXpvbnRhbCBkaXN0YW5jZSA8YSBocmVm
PSJ4aHRtbFRlc3QuaHRtbCIgaWQ9ImxpbmsxIj5Ob3JtYWwgbGluazwvYT4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXQgbm9ybWFsIGFuZCBmYXN0IHNwZWVkcyB0byBzZWUgcmVzdWx0cyBvZiBp
dCA8YSBocmVmPSJ4aHRtbFRlc3QuaHRtbCIgaWQ9ImxpbmsyIj5Ob3JtYWwgbGluayBlbmQ8L2E+
PC9wcmU+PC9wPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+Cisg
ICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICBNaWRkbGUgb2YgdGhlIHNjcmVlbiA8
YSBocmVmPSJ4aHRtbFRlc3QuaHRtbCIgaWQ9ImxpbmszIj5Ob3JtYWwgbGluazwvYT4KKyAgICA8
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+Cisg
ICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgPC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPgorICAgIDwv
YnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj4KKyAg
ICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwv
YnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9i
cj48L2JyPjwvYnI+CisgICAgPC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2Jy
PjwvYnI+PC9icj48L2JyPgorICAgIDwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+
PC9icj48L2JyPjwvYnI+PC9icj4KKyAgICA8L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+PC9icj48
L2JyPjwvYnI+PC9icj48L2JyPjwvYnI+CisgICAgQm90dG9tIG9mIHRoZSBzY3JlZW4gPGEgaHJl
Zj0ieGh0bWxUZXN0Lmh0bWwiIGlkPSJsaW5rNCI+Tm9ybWFsIGxpbms8L2E+PC9icj48L2JyPjwv
YnI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tYWNiZXRoLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tYWNiZXRoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlmYTM5ZDU2NjZhCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWFjYmV0
aC5odG1sCkBAIC0wLDAgKzEsNTI1NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0Mv
L0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVD
LWh0bWw0MC9sb29zZS5kdGQiPgorIDxodG1sPgorIDxoZWFkPgorIDx0aXRsZT5NYWNiZXRoOiBF
bnRpcmUgUGxheQorIDwvdGl0bGU+CisgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+CisgPC9IRUFEPgorIDxib2R5
IGJnY29sb3I9IiNmZmZmZmYiIHRleHQ9IiMwMDAwMDAiPgorCisgPCEtLSBPcmlnaW5hbGx5IGZy
b20gaHR0cDovL3NoYWtlc3BlYXJlLm1pdC5lZHUvbWFjYmV0aC9mdWxsLmh0bWwgLS0+CisKKzxh
IGhyZWY9IiM1LjguODYiPlF1aWNrIGxpbmsgdG8gbGFzdCBzcGVlY2g8L2E+CisKKzxIMz5BQ1Qg
STwvaDM+Cis8aDM+U0NFTkUgSS4gQSBkZXNlcnQgcGxhY2UuPC9oMz4KKzxwPjxibG9ja3F1b3Rl
PgorPGk+VGh1bmRlciBhbmQgbGlnaHRuaW5nLiBFbnRlciB0aHJlZSBXaXRjaGVzPC9pPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+Rmlyc3QgV2l0Y2g8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTEuMS4xPldoZW4gc2hhbGwgd2UgdGhyZWUgbWVldCBhZ2Fpbjwv
QT48YnI+Cis8QSBOQU1FPTEuMS4yPkluIHRodW5kZXIsIGxpZ2h0bmluZywgb3IgaW4gcmFpbj88
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+U2Vjb25kIFdpdGNo
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjEuMz5XaGVuIHRoZSBodXJseWJ1cmx5
J3MgZG9uZSw8L0E+PGJyPgorPEEgTkFNRT0xLjEuND5XaGVuIHRoZSBiYXR0bGUncyBsb3N0IGFu
ZCB3b24uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPlRoaXJk
IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjEuNT5UaGF0IHdpbGwgYmUg
ZXJlIHRoZSBzZXQgb2Ygc3VuLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoND48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4xLjY+
V2hlcmUgdGhlIHBsYWNlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
NT48Yj5TZWNvbmQgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMS43PiAg
ICAgICAgICAgICAgICAgIFVwb24gdGhlIGhlYXRoLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoNj48Yj5UaGlyZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9MS4xLjg+VGhlcmUgdG8gbWVldCB3aXRoIE1hY2JldGguPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0xLjEuOT5JIGNvbWUsIEdyYXltYWxraW4hPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPlNlY29uZCBXaXRjaDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9MS4xLjEwPlBhZGRvY2sgY2FsbHMuPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPlRoaXJkIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0xLjEuMTE+QW5vbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDEwPjxiPkFMTDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4xLjEyPkZh
aXIgaXMgZm91bCwgYW5kIGZvdWwgaXMgZmFpcjo8L0E+PGJyPgorPEEgTkFNRT0xLjEuMTM+SG92
ZXIgdGhyb3VnaCB0aGUgZm9nIGFuZCBmaWx0aHkgYWlyLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8
L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIElJLiBBIGNhbXAgbmVhciBGb3JyZXMu
PC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+QWxhcnVtIHdpdGhpbi4gRW50ZXIgRFVOQ0FOLCBN
QUxDT0xNLCBET05BTEJBSU4sIExFTk5PWCwgd2l0aCBBdHRlbmRhbnRzLCBtZWV0aW5nIGEgYmxl
ZWRpbmcgU2VyZ2VhbnQ8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5E
VU5DQU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi4xPldoYXQgYmxvb2R5IG1h
biBpcyB0aGF0PyBIZSBjYW4gcmVwb3J0LDwvQT48YnI+Cis8QSBOQU1FPTEuMi4yPkFzIHNlZW1l
dGggYnkgaGlzIHBsaWdodCwgb2YgdGhlIHJldm9sdDwvQT48YnI+Cis8QSBOQU1FPTEuMi4zPlRo
ZSBuZXdlc3Qgc3RhdGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gy
PjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi40PiAgICAgICAg
ICAgICAgICAgIFRoaXMgaXMgdGhlIHNlcmdlYW50PC9BPjxicj4KKzxBIE5BTUU9MS4yLjU+V2hv
IGxpa2UgYSBnb29kIGFuZCBoYXJkeSBzb2xkaWVyIGZvdWdodDwvQT48YnI+Cis8QSBOQU1FPTEu
Mi42PidHYWluc3QgbXkgY2FwdGl2aXR5LiBIYWlsLCBicmF2ZSBmcmllbmQhPC9BPjxicj4KKzxB
IE5BTUU9MS4yLjc+U2F5IHRvIHRoZSBraW5nIHRoZSBrbm93bGVkZ2Ugb2YgdGhlIGJyb2lsPC9B
Pjxicj4KKzxBIE5BTUU9MS4yLjg+QXMgdGhvdSBkaWRzdCBsZWF2ZSBpdC48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+U2VyZ2VhbnQ8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTEuMi45PkRvdWJ0ZnVsIGl0IHN0b29kOzwvQT48YnI+Cis8QSBOQU1F
PTEuMi4xMD5BcyB0d28gc3BlbnQgc3dpbW1lcnMsIHRoYXQgZG8gY2xpbmcgdG9nZXRoZXI8L0E+
PGJyPgorPEEgTkFNRT0xLjIuMTE+QW5kIGNob2tlIHRoZWlyIGFydC4gVGhlIG1lcmNpbGVzcyBN
YWNkb253YWxkLS08L0E+PGJyPgorPEEgTkFNRT0xLjIuMTI+V29ydGh5IHRvIGJlIGEgcmViZWws
IGZvciB0byB0aGF0PC9BPjxicj4KKzxBIE5BTUU9MS4yLjEzPlRoZSBtdWx0aXBseWluZyB2aWxs
YW5pZXMgb2YgbmF0dXJlPC9BPjxicj4KKzxBIE5BTUU9MS4yLjE0PkRvIHN3YXJtIHVwb24gaGlt
LS1mcm9tIHRoZSB3ZXN0ZXJuIGlzbGVzPC9BPjxicj4KKzxBIE5BTUU9MS4yLjE1Pk9mIGtlcm5z
IGFuZCBnYWxsb3dnbGFzc2VzIGlzIHN1cHBsaWVkOzwvQT48YnI+Cis8QSBOQU1FPTEuMi4xNj5B
bmQgZm9ydHVuZSwgb24gaGlzIGRhbW5lZCBxdWFycmVsIHNtaWxpbmcsPC9BPjxicj4KKzxBIE5B
TUU9MS4yLjE3PlNob3cnZCBsaWtlIGEgcmViZWwncyB3aG9yZTogYnV0IGFsbCdzIHRvbyB3ZWFr
OjwvQT48YnI+Cis8QSBOQU1FPTEuMi4xOD5Gb3IgYnJhdmUgTWFjYmV0aC0td2VsbCBoZSBkZXNl
cnZlcyB0aGF0IG5hbWUtLTwvQT48YnI+Cis8QSBOQU1FPTEuMi4xOT5EaXNkYWluaW5nIGZvcnR1
bmUsIHdpdGggaGlzIGJyYW5kaXNoJ2Qgc3RlZWwsPC9BPjxicj4KKzxBIE5BTUU9MS4yLjIwPldo
aWNoIHNtb2tlZCB3aXRoIGJsb29keSBleGVjdXRpb24sPC9BPjxicj4KKzxBIE5BTUU9MS4yLjIx
Pkxpa2UgdmFsb3VyJ3MgbWluaW9uIGNhcnZlZCBvdXQgaGlzIHBhc3NhZ2U8L0E+PGJyPgorPEEg
TkFNRT0xLjIuMjI+VGlsbCBoZSBmYWNlZCB0aGUgc2xhdmU7PC9BPjxicj4KKzxBIE5BTUU9MS4y
LjIzPldoaWNoIG5lJ2VyIHNob29rIGhhbmRzLCBub3IgYmFkZSBmYXJld2VsbCB0byBoaW0sPC9B
Pjxicj4KKzxBIE5BTUU9MS4yLjI0PlRpbGwgaGUgdW5zZWFtJ2QgaGltIGZyb20gdGhlIG5hdmUg
dG8gdGhlIGNoYXBzLDwvQT48YnI+Cis8QSBOQU1FPTEuMi4yNT5BbmQgZml4J2QgaGlzIGhlYWQg
dXBvbiBvdXIgYmF0dGxlbWVudHMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2g0PjxiPkRVTkNBTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjI2Pk8g
dmFsaWFudCBjb3VzaW4hIHdvcnRoeSBnZW50bGVtYW4hPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g1PjxiPlNlcmdlYW50PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0xLjIuMjc+QXMgd2hlbmNlIHRoZSBzdW4gJ2dpbnMgaGlzIHJlZmxlY3Rpb248L0E+PGJy
PgorPEEgTkFNRT0xLjIuMjg+U2hpcHdyZWNraW5nIHN0b3JtcyBhbmQgZGlyZWZ1bCB0aHVuZGVy
cyBicmVhayw8L0E+PGJyPgorPEEgTkFNRT0xLjIuMjk+U28gZnJvbSB0aGF0IHNwcmluZyB3aGVu
Y2UgY29tZm9ydCBzZWVtJ2QgdG8gY29tZTwvQT48YnI+Cis8QSBOQU1FPTEuMi4zMD5EaXNjb21m
b3J0IHN3ZWxscy4gTWFyaywga2luZyBvZiBTY290bGFuZCwgbWFyazo8L0E+PGJyPgorPEEgTkFN
RT0xLjIuMzE+Tm8gc29vbmVyIGp1c3RpY2UgaGFkIHdpdGggdmFsb3VyIGFybSdkPC9BPjxicj4K
KzxBIE5BTUU9MS4yLjMyPkNvbXBlbGwnZCB0aGVzZSBza2lwcGluZyBrZXJucyB0byB0cnVzdCB0
aGVpciBoZWVscyw8L0E+PGJyPgorPEEgTkFNRT0xLjIuMzM+QnV0IHRoZSBOb3J3ZXlhbiBsb3Jk
IHN1cnZleWluZyB2YW50YWdlLDwvQT48YnI+Cis8QSBOQU1FPTEuMi4zND5XaXRoIGZ1cmJpc2gn
ZCBhcm1zIGFuZCBuZXcgc3VwcGxpZXMgb2YgbWVuPC9BPjxicj4KKzxBIE5BTUU9MS4yLjM1PkJl
Z2FuIGEgZnJlc2ggYXNzYXVsdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDY+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIuMzY+RGlz
bWF5J2Qgbm90IHRoaXM8L0E+PGJyPgorPEEgTkFNRT0xLjIuMzc+T3VyIGNhcHRhaW5zLCBNYWNi
ZXRoIGFuZCBCYW5xdW8/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3
PjxiPlNlcmdlYW50PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIuMzg+WWVzOzwv
QT48YnI+Cis8QSBOQU1FPTEuMi4zOT5BcyBzcGFycm93cyBlYWdsZXMsIG9yIHRoZSBoYXJlIHRo
ZSBsaW9uLjwvQT48YnI+Cis8QSBOQU1FPTEuMi40MD5JZiBJIHNheSBzb290aCwgSSBtdXN0IHJl
cG9ydCB0aGV5IHdlcmU8L0E+PGJyPgorPEEgTkFNRT0xLjIuNDE+QXMgY2Fubm9ucyBvdmVyY2hh
cmdlZCB3aXRoIGRvdWJsZSBjcmFja3MsIHNvIHRoZXk8L0E+PGJyPgorPEEgTkFNRT0xLjIuNDI+
RG91Ymx5IHJlZG91YmxlZCBzdHJva2VzIHVwb24gdGhlIGZvZTo8L0E+PGJyPgorPEEgTkFNRT0x
LjIuNDM+RXhjZXB0IHRoZXkgbWVhbnQgdG8gYmF0aGUgaW4gcmVla2luZyB3b3VuZHMsPC9BPjxi
cj4KKzxBIE5BTUU9MS4yLjQ0Pk9yIG1lbW9yaXNlIGFub3RoZXIgR29sZ290aGEsPC9BPjxicj4K
KzxBIE5BTUU9MS4yLjQ1PkkgY2Fubm90IHRlbGwuPC9BPjxicj4KKzxBIE5BTUU9MS4yLjQ2PkJ1
dCBJIGFtIGZhaW50LCBteSBnYXNoZXMgY3J5IGZvciBoZWxwLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5EVU5DQU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTEuMi40Nz5TbyB3ZWxsIHRoeSB3b3JkcyBiZWNvbWUgdGhlZSBhcyB0aHkgd291bmRz
OzwvQT48YnI+Cis8QSBOQU1FPTEuMi40OD5UaGV5IHNtYWNrIG9mIGhvbm91ciBib3RoLiBHbyBn
ZXQgaGltIHN1cmdlb25zLjwvQT48YnI+Cis8cD48aT5FeGl0IFNlcmdlYW50LCBhdHRlbmRlZDwv
aT48L3A+Cis8QSBOQU1FPTEuMi40OT5XaG8gY29tZXMgaGVyZT88L0E+PGJyPgorPHA+PGk+RW50
ZXIgUk9TUzwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5NQUxD
T0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIuNTA+ICAgICAgICAgICAgICAg
ICAgVGhlIHdvcnRoeSB0aGFuZSBvZiBSb3NzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMTA+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0x
LjIuNTE+V2hhdCBhIGhhc3RlIGxvb2tzIHRocm91Z2ggaGlzIGV5ZXMhIFNvIHNob3VsZCBoZSBs
b29rPC9BPjxicj4KKzxBIE5BTUU9MS4yLjUyPlRoYXQgc2VlbXMgdG8gc3BlYWsgdGhpbmdzIHN0
cmFuZ2UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5ST1NT
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIuNTM+R29kIHNhdmUgdGhlIGtpbmch
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMj48Yj5EVU5DQU48L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi41ND5XaGVuY2UgY2FtZXN0IHRob3UsIHdv
cnRoeSB0aGFuZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEzPjxi
PlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi41NT5Gcm9tIEZpZmUsIGdy
ZWF0IGtpbmc7PC9BPjxicj4KKzxBIE5BTUU9MS4yLjU2PldoZXJlIHRoZSBOb3J3ZXlhbiBiYW5u
ZXJzIGZsb3V0IHRoZSBza3k8L0E+PGJyPgorPEEgTkFNRT0xLjIuNTc+QW5kIGZhbiBvdXIgcGVv
cGxlIGNvbGQuIE5vcndheSBoaW1zZWxmLDwvQT48YnI+Cis8QSBOQU1FPTEuMi41OD5XaXRoIHRl
cnJpYmxlIG51bWJlcnMsPC9BPjxicj4KKzxBIE5BTUU9MS4yLjU5PkFzc2lzdGVkIGJ5IHRoYXQg
bW9zdCBkaXNsb3lhbCB0cmFpdG9yPC9BPjxicj4KKzxBIE5BTUU9MS4yLjYwPlRoZSB0aGFuZSBv
ZiBDYXdkb3IsIGJlZ2FuIGEgZGlzbWFsIGNvbmZsaWN0OzwvQT48YnI+Cis8QSBOQU1FPTEuMi42
MT5UaWxsIHRoYXQgQmVsbG9uYSdzIGJyaWRlZ3Jvb20sIGxhcHAnZCBpbiBwcm9vZiw8L0E+PGJy
PgorPEEgTkFNRT0xLjIuNjI+Q29uZnJvbnRlZCBoaW0gd2l0aCBzZWxmLWNvbXBhcmlzb25zLDwv
QT48YnI+Cis8QSBOQU1FPTEuMi42Mz5Qb2ludCBhZ2FpbnN0IHBvaW50IHJlYmVsbGlvdXMsIGFy
bSAnZ2FpbnN0IGFybS48L0E+PGJyPgorPEEgTkFNRT0xLjIuNjQ+Q3VyYmluZyBoaXMgbGF2aXNo
IHNwaXJpdDogYW5kLCB0byBjb25jbHVkZSw8L0E+PGJyPgorPEEgTkFNRT0xLjIuNjU+VGhlIHZp
Y3RvcnkgZmVsbCBvbiB1cy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDE0PjxiPkRVTkNBTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjY2PkdyZWF0
IGhhcHBpbmVzcyE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE1Pjxi
PlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMi42Nz5UaGF0IG5vdzwvQT48
YnI+Cis8QSBOQU1FPTEuMi42OD5Td2VubywgdGhlIE5vcndheXMnIGtpbmcsIGNyYXZlcyBjb21w
b3NpdGlvbjo8L0E+PGJyPgorPEEgTkFNRT0xLjIuNjk+Tm9yIHdvdWxkIHdlIGRlaWduIGhpbSBi
dXJpYWwgb2YgaGlzIG1lbjwvQT48YnI+Cis8QSBOQU1FPTEuMi43MD5UaWxsIGhlIGRpc2J1cnNl
ZCBhdCBTYWludCBDb2xtZSdzIGluY2g8L0E+PGJyPgorPEEgTkFNRT0xLjIuNzE+VGVuIHRob3Vz
YW5kIGRvbGxhcnMgdG8gb3VyIGdlbmVyYWwgdXNlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMTY+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0xLjIuNzI+Tm8gbW9yZSB0aGF0IHRoYW5lIG9mIENhd2RvciBzaGFsbCBkZWNlaXZlPC9BPjxi
cj4KKzxBIE5BTUU9MS4yLjczPk91ciBib3NvbSBpbnRlcmVzdDogZ28gcHJvbm91bmNlIGhpcyBw
cmVzZW50IGRlYXRoLDwvQT48YnI+Cis8QSBOQU1FPTEuMi43ND5BbmQgd2l0aCBoaXMgZm9ybWVy
IHRpdGxlIGdyZWV0IE1hY2JldGguPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxNz48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjIuNzU+SSds
bCBzZWUgaXQgZG9uZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE4
PjxiPkRVTkNBTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4yLjc2PldoYXQgaGUg
aGF0aCBsb3N0IG5vYmxlIE1hY2JldGggaGF0aCB3b24uPC9BPjxicj4KKzxwPjxpPkV4ZXVudDwv
aT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgSUlJLiBBIGhlYXRoIG5lYXIgRm9ycmVz
LjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPlRodW5kZXIuIEVudGVyIHRoZSB0aHJlZSBXaXRj
aGVzPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+Rmlyc3QgV2l0Y2g8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xPldoZXJlIGhhc3QgdGhvdSBiZWVu
LCBzaXN0ZXI/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPlNl
Y29uZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjI+S2lsbGluZyBz
d2luZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+VGhpcmQg
V2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4zPlNpc3Rlciwgd2hlcmUg
dGhvdT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+Rmlyc3Qg
V2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy40PkEgc2FpbG9yJ3Mgd2lm
ZSBoYWQgY2hlc3RudXRzIGluIGhlciBsYXAsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjU+QW5kIG11
bmNoJ2QsIGFuZCBtdW5jaCdkLCBhbmQgbXVuY2gnZDotLTwvQT48YnI+Cis8QSBOQU1FPTEuMy42
PidHaXZlIG1lLCcgcXVvdGggSTo8L0E+PGJyPgorPEEgTkFNRT0xLjMuNz4nQXJvaW50IHRoZWUs
IHdpdGNoIScgdGhlIHJ1bXAtZmVkIHJvbnlvbiBjcmllcy48L0E+PGJyPgorPEEgTkFNRT0xLjMu
OD5IZXIgaHVzYmFuZCdzIHRvIEFsZXBwbyBnb25lLCBtYXN0ZXIgbycgdGhlIFRpZ2VyOjwvQT48
YnI+Cis8QSBOQU1FPTEuMy45PkJ1dCBpbiBhIHNpZXZlIEknbGwgdGhpdGhlciBzYWlsLDwvQT48
YnI+Cis8QSBOQU1FPTEuMy4xMD5BbmQsIGxpa2UgYSByYXQgd2l0aG91dCBhIHRhaWwsPC9BPjxi
cj4KKzxBIE5BTUU9MS4zLjExPkknbGwgZG8sIEknbGwgZG8sIGFuZCBJJ2xsIGRvLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5TZWNvbmQgV2l0Y2g8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xMj5JJ2xsIGdpdmUgdGhlZSBhIHdpbmQuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2PjxiPkZpcnN0IFdpdGNoPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTM+VGhvdSdydCBraW5kLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNz48Yj5UaGlyZCBXaXRjaDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjE0PkFuZCBJIGFub3RoZXIuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTU+SSBteXNlbGYgaGF2ZSBhbGwgdGhlIG90aGVyLDwv
QT48YnI+Cis8QSBOQU1FPTEuMy4xNj5BbmQgdGhlIHZlcnkgcG9ydHMgdGhleSBibG93LDwvQT48
YnI+Cis8QSBOQU1FPTEuMy4xNz5BbGwgdGhlIHF1YXJ0ZXJzIHRoYXQgdGhleSBrbm93PC9BPjxi
cj4KKzxBIE5BTUU9MS4zLjE4PkknIHRoZSBzaGlwbWFuJ3MgY2FyZC48L0E+PGJyPgorPEEgTkFN
RT0xLjMuMTk+SSB3aWxsIGRyYWluIGhpbSBkcnkgYXMgaGF5OjwvQT48YnI+Cis8QSBOQU1FPTEu
My4yMD5TbGVlcCBzaGFsbCBuZWl0aGVyIG5pZ2h0IG5vciBkYXk8L0E+PGJyPgorPEEgTkFNRT0x
LjMuMjE+SGFuZyB1cG9uIGhpcyBwZW50LWhvdXNlIGxpZDs8L0E+PGJyPgorPEEgTkFNRT0xLjMu
MjI+SGUgc2hhbGwgbGl2ZSBhIG1hbiBmb3JiaWQ6PC9BPjxicj4KKzxBIE5BTUU9MS4zLjIzPldl
YXJ5IHNlJ25uaWdodHMgbmluZSB0aW1lcyBuaW5lPC9BPjxicj4KKzxBIE5BTUU9MS4zLjI0PlNo
YWxsIGhlIGR3aW5kbGUsIHBlYWsgYW5kIHBpbmU6PC9BPjxicj4KKzxBIE5BTUU9MS4zLjI1PlRo
b3VnaCBoaXMgYmFyayBjYW5ub3QgYmUgbG9zdCw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMjY+WWV0
IGl0IHNoYWxsIGJlIHRlbXBlc3QtdG9zdC48L0E+PGJyPgorPEEgTkFNRT0xLjMuMjc+TG9vayB3
aGF0IEkgaGF2ZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+
U2Vjb25kIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMjg+U2hvdyBt
ZSwgc2hvdyBtZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxi
PkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMjk+SGVyZSBJ
IGhhdmUgYSBwaWxvdCdzIHRodW1iLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4zMD5XcmVjaydkIGFz
IGhvbWV3YXJkIGhlIGRpZCBjb21lLjwvQT48YnI+Cis8cD48aT5EcnVtIHdpdGhpbjwvaT48L3A+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+VGhpcmQgV2l0Y2g8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4zMT5BIGRydW0sIGEgZHJ1bSE8L0E+PGJyPgor
PEEgTkFNRT0xLjMuMzI+TWFjYmV0aCBkb3RoIGNvbWUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxMj48Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTEuMy4zMz5UaGUgd2VpcmQgc2lzdGVycywgaGFuZCBpbiBoYW5kLDwvQT48YnI+Cis8QSBOQU1F
PTEuMy4zND5Qb3N0ZXJzIG9mIHRoZSBzZWEgYW5kIGxhbmQsPC9BPjxicj4KKzxBIE5BTUU9MS4z
LjM1PlRodXMgZG8gZ28gYWJvdXQsIGFib3V0OjwvQT48YnI+Cis8QSBOQU1FPTEuMy4zNj5UaHJp
Y2UgdG8gdGhpbmUgYW5kIHRocmljZSB0byBtaW5lPC9BPjxicj4KKzxBIE5BTUU9MS4zLjM3PkFu
ZCB0aHJpY2UgYWdhaW4sIHRvIG1ha2UgdXAgbmluZS48L0E+PGJyPgorPEEgTkFNRT0xLjMuMzg+
UGVhY2UhIHRoZSBjaGFybSdzIHdvdW5kIHVwLjwvQT48YnI+Cis8cD48aT5FbnRlciBNQUNCRVRI
IGFuZCBCQU5RVU88L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEzPjxi
Pk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4zOT5TbyBmb3VsIGFu
ZCBmYWlyIGEgZGF5IEkgaGF2ZSBub3Qgc2Vlbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDE0PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
MS4zLjQwPkhvdyBmYXIgaXMndCBjYWxsJ2QgdG8gRm9ycmVzPyBXaGF0IGFyZSB0aGVzZTwvQT48
YnI+Cis8QSBOQU1FPTEuMy40MT5TbyB3aXRoZXInZCBhbmQgc28gd2lsZCBpbiB0aGVpciBhdHRp
cmUsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjQyPlRoYXQgbG9vayBub3QgbGlrZSB0aGUgaW5oYWJp
dGFudHMgbycgdGhlIGVhcnRoLDwvQT48YnI+Cis8QSBOQU1FPTEuMy40Mz5BbmQgeWV0IGFyZSBv
bid0PyBMaXZlIHlvdT8gb3IgYXJlIHlvdSBhdWdodDwvQT48YnI+Cis8QSBOQU1FPTEuMy40ND5U
aGF0IG1hbiBtYXkgcXVlc3Rpb24/IFlvdSBzZWVtIHRvIHVuZGVyc3RhbmQgbWUsPC9BPjxicj4K
KzxBIE5BTUU9MS4zLjQ1PkJ5IGVhY2ggYXQgb25jZSBoZXIgY2hhcHB5IGZpbmdlciBsYXlpbmc8
L0E+PGJyPgorPEEgTkFNRT0xLjMuNDY+VXBvbiBoZXIgc2tpbm55IGxpcHM6IHlvdSBzaG91bGQg
YmUgd29tZW4sPC9BPjxicj4KKzxBIE5BTUU9MS4zLjQ3PkFuZCB5ZXQgeW91ciBiZWFyZHMgZm9y
YmlkIG1lIHRvIGludGVycHJldDwvQT48YnI+Cis8QSBOQU1FPTEuMy40OD5UaGF0IHlvdSBhcmUg
c28uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNT48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuNDk+ICAgICAgICAgICAgICAgICAg
U3BlYWssIGlmIHlvdSBjYW46IHdoYXQgYXJlIHlvdT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDE2PjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0xLjMuNTA+QWxsIGhhaWwsIE1hY2JldGghIGhhaWwgdG8gdGhlZSwgdGhhbmUgb2Yg
R2xhbWlzITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+U2Vj
b25kIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuNTE+QWxsIGhhaWws
IE1hY2JldGgsIGhhaWwgdG8gdGhlZSwgdGhhbmUgb2YgQ2F3ZG9yITwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTg+PGI+VGhpcmQgV2l0Y2g8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTEuMy41Mj5BbGwgaGFpbCwgTWFjYmV0aCwgdGhvdSBzaGFsdCBiZSBr
aW5nIGhlcmVhZnRlciE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE5
PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjUzPkdvb2Qgc2ly
LCB3aHkgZG8geW91IHN0YXJ0OyBhbmQgc2VlbSB0byBmZWFyPC9BPjxicj4KKzxBIE5BTUU9MS4z
LjU0PlRoaW5ncyB0aGF0IGRvIHNvdW5kIHNvIGZhaXI/IEknIHRoZSBuYW1lIG9mIHRydXRoLDwv
QT48YnI+Cis8QSBOQU1FPTEuMy41NT5BcmUgeWUgZmFudGFzdGljYWwsIG9yIHRoYXQgaW5kZWVk
PC9BPjxicj4KKzxBIE5BTUU9MS4zLjU2PldoaWNoIG91dHdhcmRseSB5ZSBzaG93PyBNeSBub2Js
ZSBwYXJ0bmVyPC9BPjxicj4KKzxBIE5BTUU9MS4zLjU3PllvdSBncmVldCB3aXRoIHByZXNlbnQg
Z3JhY2UgYW5kIGdyZWF0IHByZWRpY3Rpb248L0E+PGJyPgorPEEgTkFNRT0xLjMuNTg+T2Ygbm9i
bGUgaGF2aW5nIGFuZCBvZiByb3lhbCBob3BlLDwvQT48YnI+Cis8QSBOQU1FPTEuMy41OT5UaGF0
IGhlIHNlZW1zIHJhcHQgd2l0aGFsOiB0byBtZSB5b3Ugc3BlYWsgbm90LjwvQT48YnI+Cis8QSBO
QU1FPTEuMy42MD5JZiB5b3UgY2FuIGxvb2sgaW50byB0aGUgc2VlZHMgb2YgdGltZSw8L0E+PGJy
PgorPEEgTkFNRT0xLjMuNjE+QW5kIHNheSB3aGljaCBncmFpbiB3aWxsIGdyb3cgYW5kIHdoaWNo
IHdpbGwgbm90LDwvQT48YnI+Cis8QSBOQU1FPTEuMy42Mj5TcGVhayB0aGVuIHRvIG1lLCB3aG8g
bmVpdGhlciBiZWcgbm9yIGZlYXI8L0E+PGJyPgorPEEgTkFNRT0xLjMuNjM+WW91ciBmYXZvdXJz
IG5vciB5b3VyIGhhdGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gy
MD48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjY0Pkhh
aWwhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMT48Yj5TZWNvbmQg
V2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy42NT5IYWlsITwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjI+PGI+VGhpcmQgV2l0Y2g8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy42Nj5IYWlsITwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMjM+PGI+Rmlyc3QgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTEuMy42Nz5MZXNzZXIgdGhhbiBNYWNiZXRoLCBhbmQgZ3JlYXRlci48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI0PjxiPlNlY29uZCBXaXRjaDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjY4Pk5vdCBzbyBoYXBweSwgeWV0IG11
Y2ggaGFwcGllci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI1Pjxi
PlRoaXJkIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuNjk+VGhvdSBz
aGFsdCBnZXQga2luZ3MsIHRob3VnaCB0aG91IGJlIG5vbmU6PC9BPjxicj4KKzxBIE5BTUU9MS4z
LjcwPlNvIGFsbCBoYWlsLCBNYWNiZXRoIGFuZCBCYW5xdW8hPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gyNj48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9MS4zLjcxPkJhbnF1byBhbmQgTWFjYmV0aCwgYWxsIGhhaWwhPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuNzI+U3RheSwgeW91IGltcGVyZmVjdCBzcGVha2Vycywg
dGVsbCBtZSBtb3JlOjwvQT48YnI+Cis8QSBOQU1FPTEuMy43Mz5CeSBTaW5lbCdzIGRlYXRoIEkg
a25vdyBJIGFtIHRoYW5lIG9mIEdsYW1pczs8L0E+PGJyPgorPEEgTkFNRT0xLjMuNzQ+QnV0IGhv
dyBvZiBDYXdkb3I/IHRoZSB0aGFuZSBvZiBDYXdkb3IgbGl2ZXMsPC9BPjxicj4KKzxBIE5BTUU9
MS4zLjc1PkEgcHJvc3Blcm91cyBnZW50bGVtYW47IGFuZCB0byBiZSBraW5nPC9BPjxicj4KKzxB
IE5BTUU9MS4zLjc2PlN0YW5kcyBub3Qgd2l0aGluIHRoZSBwcm9zcGVjdCBvZiBiZWxpZWYsPC9B
Pjxicj4KKzxBIE5BTUU9MS4zLjc3Pk5vIG1vcmUgdGhhbiB0byBiZSBDYXdkb3IuIFNheSBmcm9t
IHdoZW5jZTwvQT48YnI+Cis8QSBOQU1FPTEuMy43OD5Zb3Ugb3dlIHRoaXMgc3RyYW5nZSBpbnRl
bGxpZ2VuY2U/IG9yIHdoeTwvQT48YnI+Cis8QSBOQU1FPTEuMy43OT5VcG9uIHRoaXMgYmxhc3Rl
ZCBoZWF0aCB5b3Ugc3RvcCBvdXIgd2F5PC9BPjxicj4KKzxBIE5BTUU9MS4zLjgwPldpdGggc3Vj
aCBwcm9waGV0aWMgZ3JlZXRpbmc/IFNwZWFrLCBJIGNoYXJnZSB5b3UuPC9BPjxicj4KKzxwPjxp
PldpdGNoZXMgdmFuaXNoPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gy
OD48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy44MT5UaGUgZWFy
dGggaGF0aCBidWJibGVzLCBhcyB0aGUgd2F0ZXIgaGFzLDwvQT48YnI+Cis8QSBOQU1FPTEuMy44
Mj5BbmQgdGhlc2UgYXJlIG9mIHRoZW0uIFdoaXRoZXIgYXJlIHRoZXkgdmFuaXNoJ2Q/PC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyOT48Yj5NQUNCRVRIPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuODM+SW50byB0aGUgYWlyOyBhbmQgd2hhdCBzZWVt
J2QgY29ycG9yYWwgbWVsdGVkPC9BPjxicj4KKzxBIE5BTUU9MS4zLjg0PkFzIGJyZWF0aCBpbnRv
IHRoZSB3aW5kLiBXb3VsZCB0aGV5IGhhZCBzdGF5J2QhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gzMD48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTEuMy44NT5XZXJlIHN1Y2ggdGhpbmdzIGhlcmUgYXMgd2UgZG8gc3BlYWsgYWJvdXQ/PC9B
Pjxicj4KKzxBIE5BTUU9MS4zLjg2Pk9yIGhhdmUgd2UgZWF0ZW4gb24gdGhlIGluc2FuZSByb290
PC9BPjxicj4KKzxBIE5BTUU9MS4zLjg3PlRoYXQgdGFrZXMgdGhlIHJlYXNvbiBwcmlzb25lcj88
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMxPjxiPk1BQ0JFVEg8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy44OD5Zb3VyIGNoaWxkcmVuIHNoYWxsIGJl
IGtpbmdzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzI+PGI+QkFO
UVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuODk+WW91IHNoYWxsIGJlIGtp
bmcuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMz48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuOTA+QW5kIHRoYW5lIG9mIENhd2Rv
ciB0b286IHdlbnQgaXQgbm90IHNvPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMzQ+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuOTE+
VG8gdGhlIHNlbGZzYW1lIHR1bmUgYW5kIHdvcmRzLiBXaG8ncyBoZXJlPzwvQT48YnI+Cis8cD48
aT5FbnRlciBST1NTIGFuZCBBTkdVUzwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMzU+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjkyPlRo
ZSBraW5nIGhhdGggaGFwcGlseSByZWNlaXZlZCwgTWFjYmV0aCw8L0E+PGJyPgorPEEgTkFNRT0x
LjMuOTM+VGhlIG5ld3Mgb2YgdGh5IHN1Y2Nlc3M7IGFuZCB3aGVuIGhlIHJlYWRzPC9BPjxicj4K
KzxBIE5BTUU9MS4zLjk0PlRoeSBwZXJzb25hbCB2ZW50dXJlIGluIHRoZSByZWJlbHMnIGZpZ2h0
LDwvQT48YnI+Cis8QSBOQU1FPTEuMy45NT5IaXMgd29uZGVycyBhbmQgaGlzIHByYWlzZXMgZG8g
Y29udGVuZDwvQT48YnI+Cis8QSBOQU1FPTEuMy45Nj5XaGljaCBzaG91bGQgYmUgdGhpbmUgb3Ig
aGlzOiBzaWxlbmNlZCB3aXRoIHRoYXQsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjk3PkluIHZpZXdp
bmcgbydlciB0aGUgcmVzdCBvJyB0aGUgc2VsZnNhbWUgZGF5LDwvQT48YnI+Cis8QSBOQU1FPTEu
My45OD5IZSBmaW5kcyB0aGVlIGluIHRoZSBzdG91dCBOb3J3ZXlhbiByYW5rcyw8L0E+PGJyPgor
PEEgTkFNRT0xLjMuOTk+Tm90aGluZyBhZmVhcmQgb2Ygd2hhdCB0aHlzZWxmIGRpZHN0IG1ha2Us
PC9BPjxicj4KKzxBIE5BTUU9MS4zLjEwMD5TdHJhbmdlIGltYWdlcyBvZiBkZWF0aC4gQXMgdGhp
Y2sgYXMgaGFpbDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMDE+Q2FtZSBwb3N0IHdpdGggcG9zdDsg
YW5kIGV2ZXJ5IG9uZSBkaWQgYmVhcjwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMDI+VGh5IHByYWlz
ZXMgaW4gaGlzIGtpbmdkb20ncyBncmVhdCBkZWZlbmNlLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4x
MDM+QW5kIHBvdXInZCB0aGVtIGRvd24gYmVmb3JlIGhpbS48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDM2PjxiPkFOR1VTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0xLjMuMTA0PldlIGFyZSBzZW50PC9BPjxicj4KKzxBIE5BTUU9MS4zLjEwNT5UbyBnaXZl
IHRoZWUgZnJvbSBvdXIgcm95YWwgbWFzdGVyIHRoYW5rczs8L0E+PGJyPgorPEEgTkFNRT0xLjMu
MTA2Pk9ubHkgdG8gaGVyYWxkIHRoZWUgaW50byBoaXMgc2lnaHQsPC9BPjxicj4KKzxBIE5BTUU9
MS4zLjEwNz5Ob3QgcGF5IHRoZWUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gzNz48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTA4PkFu
ZCwgZm9yIGFuIGVhcm5lc3Qgb2YgYSBncmVhdGVyIGhvbm91ciw8L0E+PGJyPgorPEEgTkFNRT0x
LjMuMTA5PkhlIGJhZGUgbWUsIGZyb20gaGltLCBjYWxsIHRoZWUgdGhhbmUgb2YgQ2F3ZG9yOjwv
QT48YnI+Cis8QSBOQU1FPTEuMy4xMTA+SW4gd2hpY2ggYWRkaXRpb24sIGhhaWwsIG1vc3Qgd29y
dGh5IHRoYW5lITwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMTE+Rm9yIGl0IGlzIHRoaW5lLjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzg+PGI+QkFOUVVPPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTEyPiAgICAgICAgICAgICAgICAgIFdoYXQsIGNh
biB0aGUgZGV2aWwgc3BlYWsgdHJ1ZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDM5PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4x
MTM+VGhlIHRoYW5lIG9mIENhd2RvciBsaXZlczogd2h5IGRvIHlvdSBkcmVzcyBtZTwvQT48YnI+
Cis8QSBOQU1FPTEuMy4xMTQ+SW4gYm9ycm93J2Qgcm9iZXM/PC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2g0MD48Yj5BTkdVUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9MS4zLjExNT4gICAgICAgICAgICAgICAgICBXaG8gd2FzIHRoZSB0aGFuZSBsaXZlcyB5
ZXQ7PC9BPjxicj4KKzxBIE5BTUU9MS4zLjExNj5CdXQgdW5kZXIgaGVhdnkganVkZ21lbnQgYmVh
cnMgdGhhdCBsaWZlPC9BPjxicj4KKzxBIE5BTUU9MS4zLjExNz5XaGljaCBoZSBkZXNlcnZlcyB0
byBsb3NlLiBXaGV0aGVyIGhlIHdhcyBjb21iaW5lZDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMTg+
V2l0aCB0aG9zZSBvZiBOb3J3YXksIG9yIGRpZCBsaW5lIHRoZSByZWJlbDwvQT48YnI+Cis8QSBO
QU1FPTEuMy4xMTk+V2l0aCBoaWRkZW4gaGVscCBhbmQgdmFudGFnZSwgb3IgdGhhdCB3aXRoIGJv
dGg8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTIwPkhlIGxhYm91cidkIGluIGhpcyBjb3VudHJ5J3Mg
d3JlY2ssIEkga25vdyBub3Q7PC9BPjxicj4KKzxBIE5BTUU9MS4zLjEyMT5CdXQgdHJlYXNvbnMg
Y2FwaXRhbCwgY29uZmVzcydkIGFuZCBwcm92ZWQsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjEyMj5I
YXZlIG92ZXJ0aHJvd24gaGltLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoNDE+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjEyMz5b
QXNpZGVdICBHbGFtaXMsIGFuZCB0aGFuZSBvZiBDYXdkb3IhPC9BPjxicj4KKzxBIE5BTUU9MS4z
LjEyND5UaGUgZ3JlYXRlc3QgaXMgYmVoaW5kLjwvQT48YnI+Cis8cD48aT5UbyBST1NTIGFuZCBB
TkdVUzwvaT48L3A+Cis8QSBOQU1FPTEuMy4xMjU+VGhhbmtzIGZvciB5b3VyIHBhaW5zLjwvQT48
YnI+Cis8cD48aT5UbyBCQU5RVU88L2k+PC9wPgorPEEgTkFNRT0xLjMuMTI2PkRvIHlvdSBub3Qg
aG9wZSB5b3VyIGNoaWxkcmVuIHNoYWxsIGJlIGtpbmdzLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4x
Mjc+V2hlbiB0aG9zZSB0aGF0IGdhdmUgdGhlIHRoYW5lIG9mIENhd2RvciB0byBtZTwvQT48YnI+
Cis8QSBOQU1FPTEuMy4xMjg+UHJvbWlzZWQgbm8gbGVzcyB0byB0aGVtPzwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDI+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0xLjMuMTI5PlRoYXQgdHJ1c3RlZCBob21lPC9BPjxicj4KKzxBIE5BTUU9
MS4zLjEzMD5NaWdodCB5ZXQgZW5raW5kbGUgeW91IHVudG8gdGhlIGNyb3duLDwvQT48YnI+Cis8
QSBOQU1FPTEuMy4xMzE+QmVzaWRlcyB0aGUgdGhhbmUgb2YgQ2F3ZG9yLiBCdXQgJ3RpcyBzdHJh
bmdlOjwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMzI+QW5kIG9mdGVudGltZXMsIHRvIHdpbiB1cyB0
byBvdXIgaGFybSw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTMzPlRoZSBpbnN0cnVtZW50cyBvZiBk
YXJrbmVzcyB0ZWxsIHVzIHRydXRocyw8L0E+PGJyPgorPEEgTkFNRT0xLjMuMTM0PldpbiB1cyB3
aXRoIGhvbmVzdCB0cmlmbGVzLCB0byBiZXRyYXknczwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMzU+
SW4gZGVlcGVzdCBjb25zZXF1ZW5jZS48L0E+PGJyPgorPEEgTkFNRT0xLjMuMTM2PkNvdXNpbnMs
IGEgd29yZCwgSSBwcmF5IHlvdS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDQzPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xMzc+
W0FzaWRlXQlUd28gdHJ1dGhzIGFyZSB0b2xkLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xMzg+QXMg
aGFwcHkgcHJvbG9ndWVzIHRvIHRoZSBzd2VsbGluZyBhY3Q8L0E+PGJyPgorPEEgTkFNRT0xLjMu
MTM5Pk9mIHRoZSBpbXBlcmlhbCB0aGVtZS4tLUkgdGhhbmsgeW91LCBnZW50bGVtZW4uPC9BPjxi
cj4KKzxwPjxpPkFzaWRlPC9pPjwvcD4KKzxBIE5BTUU9MS4zLjE0MD5DYW5ub3QgYmUgaWxsLCBj
YW5ub3QgYmUgZ29vZDogaWYgaWxsLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNDE+V2h5IGhhdGgg
aXQgZ2l2ZW4gbWUgZWFybmVzdCBvZiBzdWNjZXNzLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNDI+
Q29tbWVuY2luZyBpbiBhIHRydXRoPyBJIGFtIHRoYW5lIG9mIENhd2Rvcjo8L0E+PGJyPgorPEEg
TkFNRT0xLjMuMTQzPklmIGdvb2QsIHdoeSBkbyBJIHlpZWxkIHRvIHRoYXQgc3VnZ2VzdGlvbjwv
QT48YnI+Cis8QSBOQU1FPTEuMy4xNDQ+V2hvc2UgaG9ycmlkIGltYWdlIGRvdGggdW5maXggbXkg
aGFpcjwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNDU+QW5kIG1ha2UgbXkgc2VhdGVkIGhlYXJ0IGtu
b2NrIGF0IG15IHJpYnMsPC9BPjxicj4KKzxBIE5BTUU9MS4zLjE0Nj5BZ2FpbnN0IHRoZSB1c2Ug
b2YgbmF0dXJlPyBQcmVzZW50IGZlYXJzPC9BPjxicj4KKzxBIE5BTUU9MS4zLjE0Nz5BcmUgbGVz
cyB0aGFuIGhvcnJpYmxlIGltYWdpbmluZ3M6PC9BPjxicj4KKzxBIE5BTUU9MS4zLjE0OD5NeSB0
aG91Z2h0LCB3aG9zZSBtdXJkZXIgeWV0IGlzIGJ1dCBmYW50YXN0aWNhbCw8L0E+PGJyPgorPEEg
TkFNRT0xLjMuMTQ5PlNoYWtlcyBzbyBteSBzaW5nbGUgc3RhdGUgb2YgbWFuIHRoYXQgZnVuY3Rp
b248L0E+PGJyPgorPEEgTkFNRT0xLjMuMTUwPklzIHNtb3RoZXInZCBpbiBzdXJtaXNlLCBhbmQg
bm90aGluZyBpczwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNTE+QnV0IHdoYXQgaXMgbm90LjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDQ+PGI+QkFOUVVPPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTUyPiAgICAgICAgICAgICAgICAgIExvb2ssIGhv
dyBvdXIgcGFydG5lcidzIHJhcHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2g0NT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTUz
PltBc2lkZV0gIElmIGNoYW5jZSB3aWxsIGhhdmUgbWUga2luZywgd2h5LCBjaGFuY2UgbWF5IGNy
b3duIG1lLDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNTQ+V2l0aG91dCBteSBzdGlyLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDY+PGI+QkFOUVVPPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0xLjMuMTU1PiAgICAgICAgICAgICAgICAgIE5ldyBob3Jyb3Jz
IGNvbWUgdXBvbiBoaW0sPC9BPjxicj4KKzxBIE5BTUU9MS4zLjE1Nj5MaWtlIG91ciBzdHJhbmdl
IGdhcm1lbnRzLCBjbGVhdmUgbm90IHRvIHRoZWlyIG1vdWxkPC9BPjxicj4KKzxBIE5BTUU9MS4z
LjE1Nz5CdXQgd2l0aCB0aGUgYWlkIG9mIHVzZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDQ3PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTEuMy4xNTg+W0FzaWRlXSAgICAgICAgICAgICAgICBDb21lIHdoYXQgY29tZSBtYXksPC9BPjxi
cj4KKzxBIE5BTUU9MS4zLjE1OT5UaW1lIGFuZCB0aGUgaG91ciBydW5zIHRocm91Z2ggdGhlIHJv
dWdoZXN0IGRheS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ4Pjxi
PkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjE2MD5Xb3J0aHkgTWFj
YmV0aCwgd2Ugc3RheSB1cG9uIHlvdXIgbGVpc3VyZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDQ5PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTEuMy4xNjE+R2l2ZSBtZSB5b3VyIGZhdm91cjogbXkgZHVsbCBicmFpbiB3YXMgd3JvdWdo
dDwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNjI+V2l0aCB0aGluZ3MgZm9yZ290dGVuLiBLaW5kIGdl
bnRsZW1lbiwgeW91ciBwYWluczwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNjM+QXJlIHJlZ2lzdGVy
J2Qgd2hlcmUgZXZlcnkgZGF5IEkgdHVybjwvQT48YnI+Cis8QSBOQU1FPTEuMy4xNjQ+VGhlIGxl
YWYgdG8gcmVhZCB0aGVtLiBMZXQgdXMgdG93YXJkIHRoZSBraW5nLjwvQT48YnI+Cis8QSBOQU1F
PTEuMy4xNjU+VGhpbmsgdXBvbiB3aGF0IGhhdGggY2hhbmNlZCwgYW5kLCBhdCBtb3JlIHRpbWUs
PC9BPjxicj4KKzxBIE5BTUU9MS4zLjE2Nj5UaGUgaW50ZXJpbSBoYXZpbmcgd2VpZ2gnZCBpdCwg
bGV0IHVzIHNwZWFrPC9BPjxicj4KKzxBIE5BTUU9MS4zLjE2Nz5PdXIgZnJlZSBoZWFydHMgZWFj
aCB0byBvdGhlci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUwPjxi
PkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS4zLjE2OD5WZXJ5IGdsYWRs
eS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUxPjxiPk1BQ0JFVEg8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuMy4xNjk+VGlsbCB0aGVuLCBlbm91Z2gu
IENvbWUsIGZyaWVuZHMuPC9BPjxicj4KKzxwPjxpPkV4ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVv
dGU+Cis8aDM+U0NFTkUgSVYuIEZvcnJlcy4gVGhlIHBhbGFjZS48L2gzPgorPHA+PGJsb2NrcXVv
dGU+Cis8aT5GbG91cmlzaC4gRW50ZXIgRFVOQ0FOLCBNQUxDT0xNLCBET05BTEJBSU4sIExFTk5P
WCwgYW5kIEF0dGVuZGFudHM8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48
Yj5EVU5DQU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNC4xPklzIGV4ZWN1dGlv
biBkb25lIG9uIENhd2Rvcj8gQXJlIG5vdDwvQT48YnI+Cis8QSBOQU1FPTEuNC4yPlRob3NlIGlu
IGNvbW1pc3Npb24geWV0IHJldHVybidkPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMj48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjQu
Mz5NeSBsaWVnZSw8L0E+PGJyPgorPEEgTkFNRT0xLjQuND5UaGV5IGFyZSBub3QgeWV0IGNvbWUg
YmFjay4gQnV0IEkgaGF2ZSBzcG9rZTwvQT48YnI+Cis8QSBOQU1FPTEuNC41PldpdGggb25lIHRo
YXQgc2F3IGhpbSBkaWU6IHdobyBkaWQgcmVwb3J0PC9BPjxicj4KKzxBIE5BTUU9MS40LjY+VGhh
dCB2ZXJ5IGZyYW5rbHkgaGUgY29uZmVzcydkIGhpcyB0cmVhc29ucyw8L0E+PGJyPgorPEEgTkFN
RT0xLjQuNz5JbXBsb3JlZCB5b3VyIGhpZ2huZXNzJyBwYXJkb24gYW5kIHNldCBmb3J0aDwvQT48
YnI+Cis8QSBOQU1FPTEuNC44PkEgZGVlcCByZXBlbnRhbmNlOiBub3RoaW5nIGluIGhpcyBsaWZl
PC9BPjxicj4KKzxBIE5BTUU9MS40Ljk+QmVjYW1lIGhpbSBsaWtlIHRoZSBsZWF2aW5nIGl0OyBo
ZSBkaWVkPC9BPjxicj4KKzxBIE5BTUU9MS40LjEwPkFzIG9uZSB0aGF0IGhhZCBiZWVuIHN0dWRp
ZWQgaW4gaGlzIGRlYXRoPC9BPjxicj4KKzxBIE5BTUU9MS40LjExPlRvIHRocm93IGF3YXkgdGhl
IGRlYXJlc3QgdGhpbmcgaGUgb3dlZCw8L0E+PGJyPgorPEEgTkFNRT0xLjQuMTI+QXMgJ3R3ZXJl
IGEgY2FyZWxlc3MgdHJpZmxlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMz48Yj5EVU5DQU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNC4xMz5UaGVy
ZSdzIG5vIGFydDwvQT48YnI+Cis8QSBOQU1FPTEuNC4xND5UbyBmaW5kIHRoZSBtaW5kJ3MgY29u
c3RydWN0aW9uIGluIHRoZSBmYWNlOjwvQT48YnI+Cis8QSBOQU1FPTEuNC4xNT5IZSB3YXMgYSBn
ZW50bGVtYW4gb24gd2hvbSBJIGJ1aWx0PC9BPjxicj4KKzxBIE5BTUU9MS40LjE2PkFuIGFic29s
dXRlIHRydXN0LjwvQT48YnI+Cis8cD48aT5FbnRlciBNQUNCRVRILCBCQU5RVU8sIFJPU1MsIGFu
ZCBBTkdVUzwvaT48L3A+Cis8QSBOQU1FPTEuNC4xNz5PIHdvcnRoaWVzdCBjb3VzaW4hPC9BPjxi
cj4KKzxBIE5BTUU9MS40LjE4PlRoZSBzaW4gb2YgbXkgaW5ncmF0aXR1ZGUgZXZlbiBub3c8L0E+
PGJyPgorPEEgTkFNRT0xLjQuMTk+V2FzIGhlYXZ5IG9uIG1lOiB0aG91IGFydCBzbyBmYXIgYmVm
b3JlPC9BPjxicj4KKzxBIE5BTUU9MS40LjIwPlRoYXQgc3dpZnRlc3Qgd2luZyBvZiByZWNvbXBl
bnNlIGlzIHNsb3c8L0E+PGJyPgorPEEgTkFNRT0xLjQuMjE+VG8gb3ZlcnRha2UgdGhlZS4gV291
bGQgdGhvdSBoYWRzdCBsZXNzIGRlc2VydmVkLDwvQT48YnI+Cis8QSBOQU1FPTEuNC4yMj5UaGF0
IHRoZSBwcm9wb3J0aW9uIGJvdGggb2YgdGhhbmtzIGFuZCBwYXltZW50PC9BPjxicj4KKzxBIE5B
TUU9MS40LjIzPk1pZ2h0IGhhdmUgYmVlbiBtaW5lISBvbmx5IEkgaGF2ZSBsZWZ0IHRvIHNheSw8
L0E+PGJyPgorPEEgTkFNRT0xLjQuMjQ+TW9yZSBpcyB0aHkgZHVlIHRoYW4gbW9yZSB0aGFuIGFs
bCBjYW4gcGF5LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5N
QUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjQuMjU+VGhlIHNlcnZpY2Ug
YW5kIHRoZSBsb3lhbHR5IEkgb3dlLDwvQT48YnI+Cis8QSBOQU1FPTEuNC4yNj5JbiBkb2luZyBp
dCwgcGF5cyBpdHNlbGYuIFlvdXIgaGlnaG5lc3MnIHBhcnQ8L0E+PGJyPgorPEEgTkFNRT0xLjQu
Mjc+SXMgdG8gcmVjZWl2ZSBvdXIgZHV0aWVzOyBhbmQgb3VyIGR1dGllczwvQT48YnI+Cis8QSBO
QU1FPTEuNC4yOD5BcmUgdG8geW91ciB0aHJvbmUgYW5kIHN0YXRlIGNoaWxkcmVuIGFuZCBzZXJ2
YW50cyw8L0E+PGJyPgorPEEgTkFNRT0xLjQuMjk+V2hpY2ggZG8gYnV0IHdoYXQgdGhleSBzaG91
bGQsIGJ5IGRvaW5nIGV2ZXJ5IHRoaW5nPC9BPjxicj4KKzxBIE5BTUU9MS40LjMwPlNhZmUgdG93
YXJkIHlvdXIgbG92ZSBhbmQgaG9ub3VyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoNT48Yj5EVU5DQU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNC4z
MT5XZWxjb21lIGhpdGhlcjo8L0E+PGJyPgorPEEgTkFNRT0xLjQuMzI+SSBoYXZlIGJlZ3VuIHRv
IHBsYW50IHRoZWUsIGFuZCB3aWxsIGxhYm91cjwvQT48YnI+Cis8QSBOQU1FPTEuNC4zMz5UbyBt
YWtlIHRoZWUgZnVsbCBvZiBncm93aW5nLiBOb2JsZSBCYW5xdW8sPC9BPjxicj4KKzxBIE5BTUU9
MS40LjM0PlRoYXQgaGFzdCBubyBsZXNzIGRlc2VydmVkLCBub3IgbXVzdCBiZSBrbm93bjwvQT48
YnI+Cis8QSBOQU1FPTEuNC4zNT5ObyBsZXNzIHRvIGhhdmUgZG9uZSBzbywgbGV0IG1lIGVuZm9s
ZCB0aGVlPC9BPjxicj4KKzxBIE5BTUU9MS40LjM2PkFuZCBob2xkIHRoZWUgdG8gbXkgaGVhcnQu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2PjxiPkJBTlFVTzwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS40LjM3PlRoZXJlIGlmIEkgZ3Jvdyw8L0E+PGJy
PgorPEEgTkFNRT0xLjQuMzg+VGhlIGhhcnZlc3QgaXMgeW91ciBvd24uPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPkRVTkNBTjwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9MS40LjM5Pk15IHBsZW50ZW91cyBqb3lzLDwvQT48YnI+Cis8QSBOQU1FPTEu
NC40MD5XYW50b24gaW4gZnVsbmVzcywgc2VlayB0byBoaWRlIHRoZW1zZWx2ZXM8L0E+PGJyPgor
PEEgTkFNRT0xLjQuNDE+SW4gZHJvcHMgb2Ygc29ycm93LiBTb25zLCBraW5zbWVuLCB0aGFuZXMs
PC9BPjxicj4KKzxBIE5BTUU9MS40LjQyPkFuZCB5b3Ugd2hvc2UgcGxhY2VzIGFyZSB0aGUgbmVh
cmVzdCwga25vdzwvQT48YnI+Cis8QSBOQU1FPTEuNC40Mz5XZSB3aWxsIGVzdGFibGlzaCBvdXIg
ZXN0YXRlIHVwb248L0E+PGJyPgorPEEgTkFNRT0xLjQuNDQ+T3VyIGVsZGVzdCwgTWFsY29sbSwg
d2hvbSB3ZSBuYW1lIGhlcmVhZnRlcjwvQT48YnI+Cis8QSBOQU1FPTEuNC40NT5UaGUgUHJpbmNl
IG9mIEN1bWJlcmxhbmQ7IHdoaWNoIGhvbm91ciBtdXN0PC9BPjxicj4KKzxBIE5BTUU9MS40LjQ2
Pk5vdCB1bmFjY29tcGFuaWVkIGludmVzdCBoaW0gb25seSw8L0E+PGJyPgorPEEgTkFNRT0xLjQu
NDc+QnV0IHNpZ25zIG9mIG5vYmxlbmVzcywgbGlrZSBzdGFycywgc2hhbGwgc2hpbmU8L0E+PGJy
PgorPEEgTkFNRT0xLjQuNDg+T24gYWxsIGRlc2VydmVycy4gRnJvbSBoZW5jZSB0byBJbnZlcm5l
c3MsPC9BPjxicj4KKzxBIE5BTUU9MS40LjQ5PkFuZCBiaW5kIHVzIGZ1cnRoZXIgdG8geW91Ljwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5NQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjQuNTA+VGhlIHJlc3QgaXMgbGFib3VyLCB3aGlj
aCBpcyBub3QgdXNlZCBmb3IgeW91OjwvQT48YnI+Cis8QSBOQU1FPTEuNC41MT5JJ2xsIGJlIG15
c2VsZiB0aGUgaGFyYmluZ2VyIGFuZCBtYWtlIGpveWZ1bDwvQT48YnI+Cis8QSBOQU1FPTEuNC41
Mj5UaGUgaGVhcmluZyBvZiBteSB3aWZlIHdpdGggeW91ciBhcHByb2FjaDs8L0E+PGJyPgorPEEg
TkFNRT0xLjQuNTM+U28gaHVtYmx5IHRha2UgbXkgbGVhdmUuPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPkRVTkNBTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9MS40LjU0Pk15IHdvcnRoeSBDYXdkb3IhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxMD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0xLjQuNTU+W0FzaWRlXSAgVGhlIFByaW5jZSBvZiBDdW1iZXJsYW5kISB0aGF0IGlzIGEgc3Rl
cDwvQT48YnI+Cis8QSBOQU1FPTEuNC41Nj5PbiB3aGljaCBJIG11c3QgZmFsbCBkb3duLCBvciBl
bHNlIG8nZXJsZWFwLDwvQT48YnI+Cis8QSBOQU1FPTEuNC41Nz5Gb3IgaW4gbXkgd2F5IGl0IGxp
ZXMuIFN0YXJzLCBoaWRlIHlvdXIgZmlyZXM7PC9BPjxicj4KKzxBIE5BTUU9MS40LjU4PkxldCBu
b3QgbGlnaHQgc2VlIG15IGJsYWNrIGFuZCBkZWVwIGRlc2lyZXM6PC9BPjxicj4KKzxBIE5BTUU9
MS40LjU5PlRoZSBleWUgd2luayBhdCB0aGUgaGFuZDsgeWV0IGxldCB0aGF0IGJlLDwvQT48YnI+
Cis8QSBOQU1FPTEuNC42MD5XaGljaCB0aGUgZXllIGZlYXJzLCB3aGVuIGl0IGlzIGRvbmUsIHRv
IHNlZS48L0E+PGJyPgorPHA+PGk+RXhpdDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMTE+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjQu
NjE+VHJ1ZSwgd29ydGh5IEJhbnF1bzsgaGUgaXMgZnVsbCBzbyB2YWxpYW50LDwvQT48YnI+Cis8
QSBOQU1FPTEuNC42Mj5BbmQgaW4gaGlzIGNvbW1lbmRhdGlvbnMgSSBhbSBmZWQ7PC9BPjxicj4K
KzxBIE5BTUU9MS40LjYzPkl0IGlzIGEgYmFucXVldCB0byBtZS4gTGV0J3MgYWZ0ZXIgaGltLDwv
QT48YnI+Cis8QSBOQU1FPTEuNC42ND5XaG9zZSBjYXJlIGlzIGdvbmUgYmVmb3JlIHRvIGJpZCB1
cyB3ZWxjb21lOjwvQT48YnI+Cis8QSBOQU1FPTEuNC42NT5JdCBpcyBhIHBlZXJsZXNzIGtpbnNt
YW4uPC9BPjxicj4KKzxwPjxpPkZsb3VyaXNoLiBFeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3Rl
PgorPGgzPlNDRU5FIFYuIEludmVybmVzcy4gTWFjYmV0aCdzIGNhc3RsZS48L2gzPgorPHA+PGJs
b2NrcXVvdGU+Cis8aT5FbnRlciBMQURZIE1BQ0JFVEgsIHJlYWRpbmcgYSBsZXR0ZXI8L2k+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNS4xPidUaGV5IG1ldCBtZSBpbiB0aGUgZGF5IG9mIHN1
Y2Nlc3M6IGFuZCBJIGhhdmU8L0E+PGJyPgorPEEgTkFNRT0xLjUuMj5sZWFybmVkIGJ5IHRoZSBw
ZXJmZWN0ZXN0IHJlcG9ydCwgdGhleSBoYXZlIG1vcmUgaW48L0E+PGJyPgorPEEgTkFNRT0xLjUu
Mz50aGVtIHRoYW4gbW9ydGFsIGtub3dsZWRnZS4gV2hlbiBJIGJ1cm5lZCBpbiBkZXNpcmU8L0E+
PGJyPgorPEEgTkFNRT0xLjUuND50byBxdWVzdGlvbiB0aGVtIGZ1cnRoZXIsIHRoZXkgbWFkZSB0
aGVtc2VsdmVzIGFpciw8L0E+PGJyPgorPEEgTkFNRT0xLjUuNT5pbnRvIHdoaWNoIHRoZXkgdmFu
aXNoZWQuIFdoaWxlcyBJIHN0b29kIHJhcHQgaW48L0E+PGJyPgorPEEgTkFNRT0xLjUuNj50aGUg
d29uZGVyIG9mIGl0LCBjYW1lIG1pc3NpdmVzIGZyb20gdGhlIGtpbmcsIHdobzwvQT48YnI+Cis8
QSBOQU1FPTEuNS43PmFsbC1oYWlsZWQgbWUgJ1RoYW5lIG9mIENhd2RvcjsnIGJ5IHdoaWNoIHRp
dGxlLDwvQT48YnI+Cis8QSBOQU1FPTEuNS44PmJlZm9yZSwgdGhlc2Ugd2VpcmQgc2lzdGVycyBz
YWx1dGVkIG1lLCBhbmQgcmVmZXJyZWQ8L0E+PGJyPgorPEEgTkFNRT0xLjUuOT5tZSB0byB0aGUg
Y29taW5nIG9uIG9mIHRpbWUsIHdpdGggJ0hhaWwsIGtpbmcgdGhhdDwvQT48YnI+Cis8QSBOQU1F
PTEuNS4xMD5zaGFsdCBiZSEnIFRoaXMgaGF2ZSBJIHRob3VnaHQgZ29vZCB0byBkZWxpdmVyPC9B
Pjxicj4KKzxBIE5BTUU9MS41LjExPnRoZWUsIG15IGRlYXJlc3QgcGFydG5lciBvZiBncmVhdG5l
c3MsIHRoYXQgdGhvdTwvQT48YnI+Cis8QSBOQU1FPTEuNS4xMj5taWdodHN0IG5vdCBsb3NlIHRo
ZSBkdWVzIG9mIHJlam9pY2luZywgYnkgYmVpbmc8L0E+PGJyPgorPEEgTkFNRT0xLjUuMTM+aWdu
b3JhbnQgb2Ygd2hhdCBncmVhdG5lc3MgaXMgcHJvbWlzZWQgdGhlZS4gTGF5IGl0PC9BPjxicj4K
KzxBIE5BTUU9MS41LjE0PnRvIHRoeSBoZWFydCwgYW5kIGZhcmV3ZWxsLic8L0E+PGJyPgorPEEg
TkFNRT0xLjUuMTU+R2xhbWlzIHRob3UgYXJ0LCBhbmQgQ2F3ZG9yOyBhbmQgc2hhbHQgYmU8L0E+
PGJyPgorPEEgTkFNRT0xLjUuMTY+V2hhdCB0aG91IGFydCBwcm9taXNlZDogeWV0IGRvIEkgZmVh
ciB0aHkgbmF0dXJlOzwvQT48YnI+Cis8QSBOQU1FPTEuNS4xNz5JdCBpcyB0b28gZnVsbCBvJyB0
aGUgbWlsayBvZiBodW1hbiBraW5kbmVzczwvQT48YnI+Cis8QSBOQU1FPTEuNS4xOD5UbyBjYXRj
aCB0aGUgbmVhcmVzdCB3YXk6IHRob3Ugd291bGRzdCBiZSBncmVhdDs8L0E+PGJyPgorPEEgTkFN
RT0xLjUuMTk+QXJ0IG5vdCB3aXRob3V0IGFtYml0aW9uLCBidXQgd2l0aG91dDwvQT48YnI+Cis8
QSBOQU1FPTEuNS4yMD5UaGUgaWxsbmVzcyBzaG91bGQgYXR0ZW5kIGl0OiB3aGF0IHRob3Ugd291
bGRzdCBoaWdobHksPC9BPjxicj4KKzxBIE5BTUU9MS41LjIxPlRoYXQgd291bGRzdCB0aG91IGhv
bGlseTsgd291bGRzdCBub3QgcGxheSBmYWxzZSw8L0E+PGJyPgorPEEgTkFNRT0xLjUuMjI+QW5k
IHlldCB3b3VsZHN0IHdyb25nbHkgd2luOiB0aG91J2xkc3QgaGF2ZSwgZ3JlYXQgR2xhbWlzLDwv
QT48YnI+Cis8QSBOQU1FPTEuNS4yMz5UaGF0IHdoaWNoIGNyaWVzICdUaHVzIHRob3UgbXVzdCBk
bywgaWYgdGhvdSBoYXZlIGl0OzwvQT48YnI+Cis8QSBOQU1FPTEuNS4yND5BbmQgdGhhdCB3aGlj
aCByYXRoZXIgdGhvdSBkb3N0IGZlYXIgdG8gZG88L0E+PGJyPgorPEEgTkFNRT0xLjUuMjU+VGhh
biB3aXNoZXN0IHNob3VsZCBiZSB1bmRvbmUuJyBIaWUgdGhlZSBoaXRoZXIsPC9BPjxicj4KKzxB
IE5BTUU9MS41LjI2PlRoYXQgSSBtYXkgcG91ciBteSBzcGlyaXRzIGluIHRoaW5lIGVhcjs8L0E+
PGJyPgorPEEgTkFNRT0xLjUuMjc+QW5kIGNoYXN0aXNlIHdpdGggdGhlIHZhbG91ciBvZiBteSB0
b25ndWU8L0E+PGJyPgorPEEgTkFNRT0xLjUuMjg+QWxsIHRoYXQgaW1wZWRlcyB0aGVlIGZyb20g
dGhlIGdvbGRlbiByb3VuZCw8L0E+PGJyPgorPEEgTkFNRT0xLjUuMjk+V2hpY2ggZmF0ZSBhbmQg
bWV0YXBoeXNpY2FsIGFpZCBkb3RoIHNlZW08L0E+PGJyPgorPEEgTkFNRT0xLjUuMzA+VG8gaGF2
ZSB0aGVlIGNyb3duJ2Qgd2l0aGFsLjwvQT48YnI+Cis8cD48aT5FbnRlciBhIE1lc3Nlbmdlcjwv
aT48L3A+Cis8QSBOQU1FPTEuNS4zMT5XaGF0IGlzIHlvdXIgdGlkaW5ncz88L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+TWVzc2VuZ2VyPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0xLjUuMzI+VGhlIGtpbmcgY29tZXMgaGVyZSB0by1uaWdodC48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+TEFEWSBNQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjUuMzM+VGhvdSdydCBtYWQgdG8gc2F5IGl0
OjwvQT48YnI+Cis8QSBOQU1FPTEuNS4zND5JcyBub3QgdGh5IG1hc3RlciB3aXRoIGhpbT8gd2hv
LCB3ZXJlJ3Qgc28sPC9BPjxicj4KKzxBIE5BTUU9MS41LjM1PldvdWxkIGhhdmUgaW5mb3JtJ2Qg
Zm9yIHByZXBhcmF0aW9uLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
ND48Yj5NZXNzZW5nZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNS4zNj5TbyBw
bGVhc2UgeW91LCBpdCBpcyB0cnVlOiBvdXIgdGhhbmUgaXMgY29taW5nOjwvQT48YnI+Cis8QSBO
QU1FPTEuNS4zNz5PbmUgb2YgbXkgZmVsbG93cyBoYWQgdGhlIHNwZWVkIG9mIGhpbSw8L0E+PGJy
PgorPEEgTkFNRT0xLjUuMzg+V2hvLCBhbG1vc3QgZGVhZCBmb3IgYnJlYXRoLCBoYWQgc2NhcmNl
bHkgbW9yZTwvQT48YnI+Cis8QSBOQU1FPTEuNS4zOT5UaGFuIHdvdWxkIG1ha2UgdXAgaGlzIG1l
c3NhZ2UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPkxBRFkg
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS41LjQwPkdpdmUgaGltIHRl
bmRpbmc7PC9BPjxicj4KKzxBIE5BTUU9MS41LjQxPkhlIGJyaW5ncyBncmVhdCBuZXdzLjwvQT48
YnI+Cis8cD48aT5FeGl0IE1lc3NlbmdlcjwvaT48L3A+Cis8QSBOQU1FPTEuNS40Mj5UaGUgcmF2
ZW4gaGltc2VsZiBpcyBob2Fyc2U8L0E+PGJyPgorPEEgTkFNRT0xLjUuNDM+VGhhdCBjcm9ha3Mg
dGhlIGZhdGFsIGVudHJhbmNlIG9mIER1bmNhbjwvQT48YnI+Cis8QSBOQU1FPTEuNS40ND5VbmRl
ciBteSBiYXR0bGVtZW50cy4gQ29tZSwgeW91IHNwaXJpdHM8L0E+PGJyPgorPEEgTkFNRT0xLjUu
NDU+VGhhdCB0ZW5kIG9uIG1vcnRhbCB0aG91Z2h0cywgdW5zZXggbWUgaGVyZSw8L0E+PGJyPgor
PEEgTkFNRT0xLjUuNDY+QW5kIGZpbGwgbWUgZnJvbSB0aGUgY3Jvd24gdG8gdGhlIHRvZSB0b3At
ZnVsbDwvQT48YnI+Cis8QSBOQU1FPTEuNS40Nz5PZiBkaXJlc3QgY3J1ZWx0eSEgbWFrZSB0aGlj
ayBteSBibG9vZDs8L0E+PGJyPgorPEEgTkFNRT0xLjUuNDg+U3RvcCB1cCB0aGUgYWNjZXNzIGFu
ZCBwYXNzYWdlIHRvIHJlbW9yc2UsPC9BPjxicj4KKzxBIE5BTUU9MS41LjQ5PlRoYXQgbm8gY29t
cHVuY3Rpb3VzIHZpc2l0aW5ncyBvZiBuYXR1cmU8L0E+PGJyPgorPEEgTkFNRT0xLjUuNTA+U2hh
a2UgbXkgZmVsbCBwdXJwb3NlLCBub3Iga2VlcCBwZWFjZSBiZXR3ZWVuPC9BPjxicj4KKzxBIE5B
TUU9MS41LjUxPlRoZSBlZmZlY3QgYW5kIGl0ISBDb21lIHRvIG15IHdvbWFuJ3MgYnJlYXN0cyw8
L0E+PGJyPgorPEEgTkFNRT0xLjUuNTI+QW5kIHRha2UgbXkgbWlsayBmb3IgZ2FsbCwgeW91IG11
cmRlcmluZyBtaW5pc3RlcnMsPC9BPjxicj4KKzxBIE5BTUU9MS41LjUzPldoZXJldmVyIGluIHlv
dXIgc2lnaHRsZXNzIHN1YnN0YW5jZXM8L0E+PGJyPgorPEEgTkFNRT0xLjUuNTQ+WW91IHdhaXQg
b24gbmF0dXJlJ3MgbWlzY2hpZWYhIENvbWUsIHRoaWNrIG5pZ2h0LDwvQT48YnI+Cis8QSBOQU1F
PTEuNS41NT5BbmQgcGFsbCB0aGVlIGluIHRoZSBkdW5uZXN0IHNtb2tlIG9mIGhlbGwsPC9BPjxi
cj4KKzxBIE5BTUU9MS41LjU2PlRoYXQgbXkga2VlbiBrbmlmZSBzZWUgbm90IHRoZSB3b3VuZCBp
dCBtYWtlcyw8L0E+PGJyPgorPEEgTkFNRT0xLjUuNTc+Tm9yIGhlYXZlbiBwZWVwIHRocm91Z2gg
dGhlIGJsYW5rZXQgb2YgdGhlIGRhcmssPC9BPjxicj4KKzxBIE5BTUU9MS41LjU4PlRvIGNyeSAn
SG9sZCwgaG9sZCEnPC9BPjxicj4KKzxwPjxpPkVudGVyIE1BQ0JFVEg8L2k+PC9wPgorPEEgTkFN
RT0xLjUuNTk+R3JlYXQgR2xhbWlzISB3b3J0aHkgQ2F3ZG9yITwvQT48YnI+Cis8QSBOQU1FPTEu
NS42MD5HcmVhdGVyIHRoYW4gYm90aCwgYnkgdGhlIGFsbC1oYWlsIGhlcmVhZnRlciE8L0E+PGJy
PgorPEEgTkFNRT0xLjUuNjE+VGh5IGxldHRlcnMgaGF2ZSB0cmFuc3BvcnRlZCBtZSBiZXlvbmQ8
L0E+PGJyPgorPEEgTkFNRT0xLjUuNjI+VGhpcyBpZ25vcmFudCBwcmVzZW50LCBhbmQgSSBmZWVs
IG5vdzwvQT48YnI+Cis8QSBOQU1FPTEuNS42Mz5UaGUgZnV0dXJlIGluIHRoZSBpbnN0YW50Ljwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5NQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjUuNjQ+TXkgZGVhcmVzdCBsb3ZlLDwvQT48YnI+
Cis8QSBOQU1FPTEuNS42NT5EdW5jYW4gY29tZXMgaGVyZSB0by1uaWdodC48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0xLjUuNjY+QW5kIHdoZW4gZ29lcyBoZW5jZT88L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+TUFDQkVUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9MS41LjY3PlRvLW1vcnJvdywgYXMgaGUgcHVycG9zZXMuPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g5PjxiPkxBRFkgTUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS41LjY4Pk8sIG5ldmVyPC9BPjxicj4KKzxBIE5B
TUU9MS41LjY5PlNoYWxsIHN1biB0aGF0IG1vcnJvdyBzZWUhPC9BPjxicj4KKzxBIE5BTUU9MS41
LjcwPllvdXIgZmFjZSwgbXkgdGhhbmUsIGlzIGFzIGEgYm9vayB3aGVyZSBtZW48L0E+PGJyPgor
PEEgTkFNRT0xLjUuNzE+TWF5IHJlYWQgc3RyYW5nZSBtYXR0ZXJzLiBUbyBiZWd1aWxlIHRoZSB0
aW1lLDwvQT48YnI+Cis8QSBOQU1FPTEuNS43Mj5Mb29rIGxpa2UgdGhlIHRpbWU7IGJlYXIgd2Vs
Y29tZSBpbiB5b3VyIGV5ZSw8L0E+PGJyPgorPEEgTkFNRT0xLjUuNzM+WW91ciBoYW5kLCB5b3Vy
IHRvbmd1ZTogbG9vayBsaWtlIHRoZSBpbm5vY2VudCBmbG93ZXIsPC9BPjxicj4KKzxBIE5BTUU9
MS41Ljc0PkJ1dCBiZSB0aGUgc2VycGVudCB1bmRlcid0LiBIZSB0aGF0J3MgY29taW5nPC9BPjxi
cj4KKzxBIE5BTUU9MS41Ljc1Pk11c3QgYmUgcHJvdmlkZWQgZm9yOiBhbmQgeW91IHNoYWxsIHB1
dDwvQT48YnI+Cis8QSBOQU1FPTEuNS43Nj5UaGlzIG5pZ2h0J3MgZ3JlYXQgYnVzaW5lc3MgaW50
byBteSBkaXNwYXRjaDs8L0E+PGJyPgorPEEgTkFNRT0xLjUuNzc+V2hpY2ggc2hhbGwgdG8gYWxs
IG91ciBuaWdodHMgYW5kIGRheXMgdG8gY29tZTwvQT48YnI+Cis8QSBOQU1FPTEuNS43OD5HaXZl
IHNvbGVseSBzb3ZlcmVpZ24gc3dheSBhbmQgbWFzdGVyZG9tLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9MS41Ljc5PldlIHdpbGwgc3BlYWsgZnVydGhlci48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDExPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9MS41LjgwPk9ubHkgbG9vayB1cCBjbGVhcjs8L0E+PGJyPgorPEEgTkFN
RT0xLjUuODE+VG8gYWx0ZXIgZmF2b3VyIGV2ZXIgaXMgdG8gZmVhcjo8L0E+PGJyPgorPEEgTkFN
RT0xLjUuODI+TGVhdmUgYWxsIHRoZSByZXN0IHRvIG1lLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8
L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIFZJLiBCZWZvcmUgTWFjYmV0aCdzIGNh
c3RsZS48L2gzPgorPHA+PGJsb2NrcXVvdGU+Cis8aT5IYXV0Ym95cyBhbmQgdG9yY2hlcy4gRW50
ZXIgRFVOQ0FOLCBNQUxDT0xNLCAgRE9OQUxCQUlOLCBCQU5RVU8sIExFTk5PWCwgTUFDRFVGRiwg
Uk9TUywgQU5HVVMsIGFuZCBBdHRlbmRhbnRzPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDE+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjYuMT5U
aGlzIGNhc3RsZSBoYXRoIGEgcGxlYXNhbnQgc2VhdDsgdGhlIGFpcjwvQT48YnI+Cis8QSBOQU1F
PTEuNi4yPk5pbWJseSBhbmQgc3dlZXRseSByZWNvbW1lbmRzIGl0c2VsZjwvQT48YnI+Cis8QSBO
QU1FPTEuNi4zPlVudG8gb3VyIGdlbnRsZSBzZW5zZXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gyPjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9MS42LjQ+VGhpcyBndWVzdCBvZiBzdW1tZXIsPC9BPjxicj4KKzxBIE5BTUU9MS42LjU+VGhl
IHRlbXBsZS1oYXVudGluZyBtYXJ0bGV0LCBkb2VzIGFwcHJvdmUsPC9BPjxicj4KKzxBIE5BTUU9
MS42LjY+QnkgaGlzIGxvdmVkIG1hbnNpb25yeSwgdGhhdCB0aGUgaGVhdmVuJ3MgYnJlYXRoPC9B
Pjxicj4KKzxBIE5BTUU9MS42Ljc+U21lbGxzIHdvb2luZ2x5IGhlcmU6IG5vIGp1dHR5LCBmcmll
emUsPC9BPjxicj4KKzxBIE5BTUU9MS42Ljg+QnV0dHJlc3MsIG5vciBjb2lnbiBvZiB2YW50YWdl
LCBidXQgdGhpcyBiaXJkPC9BPjxicj4KKzxBIE5BTUU9MS42Ljk+SGF0aCBtYWRlIGhpcyBwZW5k
ZW50IGJlZCBhbmQgcHJvY3JlYW50IGNyYWRsZTo8L0E+PGJyPgorPEEgTkFNRT0xLjYuMTA+V2hl
cmUgdGhleSBtb3N0IGJyZWVkIGFuZCBoYXVudCwgSSBoYXZlIG9ic2VydmVkLDwvQT48YnI+Cis8
QSBOQU1FPTEuNi4xMT5UaGUgYWlyIGlzIGRlbGljYXRlLjwvQT48YnI+Cis8cD48aT5FbnRlciBM
QURZIE1BQ0JFVEg8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+
RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjYuMTI+U2VlLCBzZWUsIG91
ciBob25vdXInZCBob3N0ZXNzITwvQT48YnI+Cis8QSBOQU1FPTEuNi4xMz5UaGUgbG92ZSB0aGF0
IGZvbGxvd3MgdXMgc29tZXRpbWUgaXMgb3VyIHRyb3VibGUsPC9BPjxicj4KKzxBIE5BTUU9MS42
LjE0PldoaWNoIHN0aWxsIHdlIHRoYW5rIGFzIGxvdmUuIEhlcmVpbiBJIHRlYWNoIHlvdTwvQT48
YnI+Cis8QSBOQU1FPTEuNi4xNT5Ib3cgeW91IHNoYWxsIGJpZCBHb2QgJ2lsZCB1cyBmb3IgeW91
ciBwYWlucyw8L0E+PGJyPgorPEEgTkFNRT0xLjYuMTY+QW5kIHRoYW5rIHVzIGZvciB5b3VyIHRy
b3VibGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPkxBRFkg
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS42LjE3PkFsbCBvdXIgc2Vy
dmljZTwvQT48YnI+Cis8QSBOQU1FPTEuNi4xOD5JbiBldmVyeSBwb2ludCB0d2ljZSBkb25lIGFu
ZCB0aGVuIGRvbmUgZG91YmxlPC9BPjxicj4KKzxBIE5BTUU9MS42LjE5PldlcmUgcG9vciBhbmQg
c2luZ2xlIGJ1c2luZXNzIHRvIGNvbnRlbmQ8L0E+PGJyPgorPEEgTkFNRT0xLjYuMjA+QWdhaW5z
dCB0aG9zZSBob25vdXJzIGRlZXAgYW5kIGJyb2FkIHdoZXJld2l0aDwvQT48YnI+Cis8QSBOQU1F
PTEuNi4yMT5Zb3VyIG1hamVzdHkgbG9hZHMgb3VyIGhvdXNlOiBmb3IgdGhvc2Ugb2Ygb2xkLDwv
QT48YnI+Cis8QSBOQU1FPTEuNi4yMj5BbmQgdGhlIGxhdGUgZGlnbml0aWVzIGhlYXAnZCB1cCB0
byB0aGVtLDwvQT48YnI+Cis8QSBOQU1FPTEuNi4yMz5XZSByZXN0IHlvdXIgaGVybWl0cy48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+RFVOQ0FOPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjYuMjQ+V2hlcmUncyB0aGUgdGhhbmUgb2YgQ2F3ZG9y
PzwvQT48YnI+Cis8QSBOQU1FPTEuNi4yNT5XZSBjb3Vyc2VkIGhpbSBhdCB0aGUgaGVlbHMsIGFu
ZCBoYWQgYSBwdXJwb3NlPC9BPjxicj4KKzxBIE5BTUU9MS42LjI2PlRvIGJlIGhpcyBwdXJ2ZXlv
cjogYnV0IGhlIHJpZGVzIHdlbGw7PC9BPjxicj4KKzxBIE5BTUU9MS42LjI3PkFuZCBoaXMgZ3Jl
YXQgbG92ZSwgc2hhcnAgYXMgaGlzIHNwdXIsIGhhdGggaG9scCBoaW08L0E+PGJyPgorPEEgTkFN
RT0xLjYuMjg+VG8gaGlzIGhvbWUgYmVmb3JlIHVzLiBGYWlyIGFuZCBub2JsZSBob3N0ZXNzLDwv
QT48YnI+Cis8QSBOQU1FPTEuNi4yOT5XZSBhcmUgeW91ciBndWVzdCB0by1uaWdodC48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+TEFEWSBNQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjYuMzA+WW91ciBzZXJ2YW50cyBldmVyPC9BPjxi
cj4KKzxBIE5BTUU9MS42LjMxPkhhdmUgdGhlaXJzLCB0aGVtc2VsdmVzIGFuZCB3aGF0IGlzIHRo
ZWlycywgaW4gY29tcHQsPC9BPjxicj4KKzxBIE5BTUU9MS42LjMyPlRvIG1ha2UgdGhlaXIgYXVk
aXQgYXQgeW91ciBoaWdobmVzcycgcGxlYXN1cmUsPC9BPjxicj4KKzxBIE5BTUU9MS42LjMzPlN0
aWxsIHRvIHJldHVybiB5b3VyIG93bi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDc+PGI+RFVOQ0FOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjYuMzQ+
R2l2ZSBtZSB5b3VyIGhhbmQ7PC9BPjxicj4KKzxBIE5BTUU9MS42LjM1PkNvbmR1Y3QgbWUgdG8g
bWluZSBob3N0OiB3ZSBsb3ZlIGhpbSBoaWdobHksPC9BPjxicj4KKzxBIE5BTUU9MS42LjM2PkFu
ZCBzaGFsbCBjb250aW51ZSBvdXIgZ3JhY2VzIHRvd2FyZHMgaGltLjwvQT48YnI+Cis8QSBOQU1F
PTEuNi4zNz5CeSB5b3VyIGxlYXZlLCBob3N0ZXNzLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+
PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIFZJSS4gTWFjYmV0aCdzIGNhc3RsZS48L2gz
PgorPHA+PGJsb2NrcXVvdGU+Cis8aT5IYXV0Ym95cyBhbmQgdG9yY2hlcy4gRW50ZXIgYSBTZXdl
ciwgYW5kIGRpdmVycyAgU2VydmFudHMgd2l0aCBkaXNoZXMgYW5kIHNlcnZpY2UsIGFuZCBwYXNz
IG92ZXIgdGhlIHN0YWdlLiBUaGVuIGVudGVyIE1BQ0JFVEg8L2k+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0xLjcuMT5JZiBpdCB3ZXJlIGRvbmUgd2hlbiAndGlzIGRvbmUsIHRoZW4gJ3R3ZXJlIHdlbGw8
L0E+PGJyPgorPEEgTkFNRT0xLjcuMj5JdCB3ZXJlIGRvbmUgcXVpY2tseTogaWYgdGhlIGFzc2Fz
c2luYXRpb248L0E+PGJyPgorPEEgTkFNRT0xLjcuMz5Db3VsZCB0cmFtbWVsIHVwIHRoZSBjb25z
ZXF1ZW5jZSwgYW5kIGNhdGNoPC9BPjxicj4KKzxBIE5BTUU9MS43LjQ+V2l0aCBoaXMgc3VyY2Vh
c2Ugc3VjY2VzczsgdGhhdCBidXQgdGhpcyBibG93PC9BPjxicj4KKzxBIE5BTUU9MS43LjU+TWln
aHQgYmUgdGhlIGJlLWFsbCBhbmQgdGhlIGVuZC1hbGwgaGVyZSw8L0E+PGJyPgorPEEgTkFNRT0x
LjcuNj5CdXQgaGVyZSwgdXBvbiB0aGlzIGJhbmsgYW5kIHNob2FsIG9mIHRpbWUsPC9BPjxicj4K
KzxBIE5BTUU9MS43Ljc+V2UnbGQganVtcCB0aGUgbGlmZSB0byBjb21lLiBCdXQgaW4gdGhlc2Ug
Y2FzZXM8L0E+PGJyPgorPEEgTkFNRT0xLjcuOD5XZSBzdGlsbCBoYXZlIGp1ZGdtZW50IGhlcmU7
IHRoYXQgd2UgYnV0IHRlYWNoPC9BPjxicj4KKzxBIE5BTUU9MS43Ljk+Qmxvb2R5IGluc3RydWN0
aW9ucywgd2hpY2gsIGJlaW5nIHRhdWdodCwgcmV0dXJuPC9BPjxicj4KKzxBIE5BTUU9MS43LjEw
PlRvIHBsYWd1ZSB0aGUgaW52ZW50b3I6IHRoaXMgZXZlbi1oYW5kZWQganVzdGljZTwvQT48YnI+
Cis8QSBOQU1FPTEuNy4xMT5Db21tZW5kcyB0aGUgaW5ncmVkaWVudHMgb2Ygb3VyIHBvaXNvbidk
IGNoYWxpY2U8L0E+PGJyPgorPEEgTkFNRT0xLjcuMTI+VG8gb3VyIG93biBsaXBzLiBIZSdzIGhl
cmUgaW4gZG91YmxlIHRydXN0OzwvQT48YnI+Cis8QSBOQU1FPTEuNy4xMz5GaXJzdCwgYXMgSSBh
bSBoaXMga2luc21hbiBhbmQgaGlzIHN1YmplY3QsPC9BPjxicj4KKzxBIE5BTUU9MS43LjE0PlN0
cm9uZyBib3RoIGFnYWluc3QgdGhlIGRlZWQ7IHRoZW4sIGFzIGhpcyBob3N0LDwvQT48YnI+Cis8
QSBOQU1FPTEuNy4xNT5XaG8gc2hvdWxkIGFnYWluc3QgaGlzIG11cmRlcmVyIHNodXQgdGhlIGRv
b3IsPC9BPjxicj4KKzxBIE5BTUU9MS43LjE2Pk5vdCBiZWFyIHRoZSBrbmlmZSBteXNlbGYuIEJl
c2lkZXMsIHRoaXMgRHVuY2FuPC9BPjxicj4KKzxBIE5BTUU9MS43LjE3PkhhdGggYm9ybmUgaGlz
IGZhY3VsdGllcyBzbyBtZWVrLCBoYXRoIGJlZW48L0E+PGJyPgorPEEgTkFNRT0xLjcuMTg+U28g
Y2xlYXIgaW4gaGlzIGdyZWF0IG9mZmljZSwgdGhhdCBoaXMgdmlydHVlczwvQT48YnI+Cis8QSBO
QU1FPTEuNy4xOT5XaWxsIHBsZWFkIGxpa2UgYW5nZWxzLCB0cnVtcGV0LXRvbmd1ZWQsIGFnYWlu
c3Q8L0E+PGJyPgorPEEgTkFNRT0xLjcuMjA+VGhlIGRlZXAgZGFtbmF0aW9uIG9mIGhpcyB0YWtp
bmctb2ZmOzwvQT48YnI+Cis8QSBOQU1FPTEuNy4yMT5BbmQgcGl0eSwgbGlrZSBhIG5ha2VkIG5l
dy1ib3JuIGJhYmUsPC9BPjxicj4KKzxBIE5BTUU9MS43LjIyPlN0cmlkaW5nIHRoZSBibGFzdCwg
b3IgaGVhdmVuJ3MgY2hlcnViaW0sIGhvcnNlZDwvQT48YnI+Cis8QSBOQU1FPTEuNy4yMz5VcG9u
IHRoZSBzaWdodGxlc3MgY291cmllcnMgb2YgdGhlIGFpciw8L0E+PGJyPgorPEEgTkFNRT0xLjcu
MjQ+U2hhbGwgYmxvdyB0aGUgaG9ycmlkIGRlZWQgaW4gZXZlcnkgZXllLDwvQT48YnI+Cis8QSBO
QU1FPTEuNy4yNT5UaGF0IHRlYXJzIHNoYWxsIGRyb3duIHRoZSB3aW5kLiBJIGhhdmUgbm8gc3B1
cjwvQT48YnI+Cis8QSBOQU1FPTEuNy4yNj5UbyBwcmljayB0aGUgc2lkZXMgb2YgbXkgaW50ZW50
LCBidXQgb25seTwvQT48YnI+Cis8QSBOQU1FPTEuNy4yNz5WYXVsdGluZyBhbWJpdGlvbiwgd2hp
Y2ggbydlcmxlYXBzIGl0c2VsZjwvQT48YnI+Cis8QSBOQU1FPTEuNy4yOD5BbmQgZmFsbHMgb24g
dGhlIG90aGVyLjwvQT48YnI+Cis8cD48aT5FbnRlciBMQURZIE1BQ0JFVEg8L2k+PC9wPgorPEEg
TkFNRT0xLjcuMjk+SG93IG5vdyEgd2hhdCBuZXdzPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMj48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTEuNy4zMD5IZSBoYXMgYWxtb3N0IHN1cHAnZDogd2h5IGhhdmUgeW91IGxlZnQgdGhl
IGNoYW1iZXI/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPk1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNy4zMT5IYXRoIGhlIGFzaydk
IGZvciBtZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+TEFE
WSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjcuMzI+S25vdyB5b3Ug
bm90IGhlIGhhcz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS43LjMzPldlIHdpbGwgcHJv
Y2VlZCBubyBmdXJ0aGVyIGluIHRoaXMgYnVzaW5lc3M6PC9BPjxicj4KKzxBIE5BTUU9MS43LjM0
PkhlIGhhdGggaG9ub3VyJ2QgbWUgb2YgbGF0ZTsgYW5kIEkgaGF2ZSBib3VnaHQ8L0E+PGJyPgor
PEEgTkFNRT0xLjcuMzU+R29sZGVuIG9waW5pb25zIGZyb20gYWxsIHNvcnRzIG9mIHBlb3BsZSw8
L0E+PGJyPgorPEEgTkFNRT0xLjcuMzY+V2hpY2ggd291bGQgYmUgd29ybiBub3cgaW4gdGhlaXIg
bmV3ZXN0IGdsb3NzLDwvQT48YnI+Cis8QSBOQU1FPTEuNy4zNz5Ob3QgY2FzdCBhc2lkZSBzbyBz
b29uLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5MQURZIE1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTEuNy4zOD5XYXMgdGhlIGhvcGUg
ZHJ1bms8L0E+PGJyPgorPEEgTkFNRT0xLjcuMzk+V2hlcmVpbiB5b3UgZHJlc3MnZCB5b3Vyc2Vs
Zj8gaGF0aCBpdCBzbGVwdCBzaW5jZT88L0E+PGJyPgorPEEgTkFNRT0xLjcuNDA+QW5kIHdha2Vz
IGl0IG5vdywgdG8gbG9vayBzbyBncmVlbiBhbmQgcGFsZTwvQT48YnI+Cis8QSBOQU1FPTEuNy40
MT5BdCB3aGF0IGl0IGRpZCBzbyBmcmVlbHk/IEZyb20gdGhpcyB0aW1lPC9BPjxicj4KKzxBIE5B
TUU9MS43LjQyPlN1Y2ggSSBhY2NvdW50IHRoeSBsb3ZlLiBBcnQgdGhvdSBhZmVhcmQ8L0E+PGJy
PgorPEEgTkFNRT0xLjcuNDM+VG8gYmUgdGhlIHNhbWUgaW4gdGhpbmUgb3duIGFjdCBhbmQgdmFs
b3VyPC9BPjxicj4KKzxBIE5BTUU9MS43LjQ0PkFzIHRob3UgYXJ0IGluIGRlc2lyZT8gV291bGRz
dCB0aG91IGhhdmUgdGhhdDwvQT48YnI+Cis8QSBOQU1FPTEuNy40NT5XaGljaCB0aG91IGVzdGVl
bSdzdCB0aGUgb3JuYW1lbnQgb2YgbGlmZSw8L0E+PGJyPgorPEEgTkFNRT0xLjcuNDY+QW5kIGxp
dmUgYSBjb3dhcmQgaW4gdGhpbmUgb3duIGVzdGVlbSw8L0E+PGJyPgorPEEgTkFNRT0xLjcuNDc+
TGV0dGluZyAnSSBkYXJlIG5vdCcgd2FpdCB1cG9uICdJIHdvdWxkLCc8L0E+PGJyPgorPEEgTkFN
RT0xLjcuNDg+TGlrZSB0aGUgcG9vciBjYXQgaScgdGhlIGFkYWdlPzwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0xLjcuNDk+UHJpdGhlZSwgcGVhY2U6PC9BPjxicj4KKzxBIE5BTUU9MS43LjUw
PkkgZGFyZSBkbyBhbGwgdGhhdCBtYXkgYmVjb21lIGEgbWFuOzwvQT48YnI+Cis8QSBOQU1FPTEu
Ny41MT5XaG8gZGFyZXMgZG8gbW9yZSBpcyBub25lLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoOD48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTEuNy41Mj5XaGF0IGJlYXN0IHdhcyd0LCB0aGVuLDwvQT48YnI+Cis8QSBOQU1FPTEu
Ny41Mz5UaGF0IG1hZGUgeW91IGJyZWFrIHRoaXMgZW50ZXJwcmlzZSB0byBtZT88L0E+PGJyPgor
PEEgTkFNRT0xLjcuNTQ+V2hlbiB5b3UgZHVyc3QgZG8gaXQsIHRoZW4geW91IHdlcmUgYSBtYW47
PC9BPjxicj4KKzxBIE5BTUU9MS43LjU1PkFuZCwgdG8gYmUgbW9yZSB0aGFuIHdoYXQgeW91IHdl
cmUsIHlvdSB3b3VsZDwvQT48YnI+Cis8QSBOQU1FPTEuNy41Nj5CZSBzbyBtdWNoIG1vcmUgdGhl
IG1hbi4gTm9yIHRpbWUgbm9yIHBsYWNlPC9BPjxicj4KKzxBIE5BTUU9MS43LjU3PkRpZCB0aGVu
IGFkaGVyZSwgYW5kIHlldCB5b3Ugd291bGQgbWFrZSBib3RoOjwvQT48YnI+Cis8QSBOQU1FPTEu
Ny41OD5UaGV5IGhhdmUgbWFkZSB0aGVtc2VsdmVzLCBhbmQgdGhhdCB0aGVpciBmaXRuZXNzIG5v
dzwvQT48YnI+Cis8QSBOQU1FPTEuNy41OT5Eb2VzIHVubWFrZSB5b3UuIEkgaGF2ZSBnaXZlbiBz
dWNrLCBhbmQga25vdzwvQT48YnI+Cis8QSBOQU1FPTEuNy42MD5Ib3cgdGVuZGVyICd0aXMgdG8g
bG92ZSB0aGUgYmFiZSB0aGF0IG1pbGtzIG1lOjwvQT48YnI+Cis8QSBOQU1FPTEuNy42MT5JIHdv
dWxkLCB3aGlsZSBpdCB3YXMgc21pbGluZyBpbiBteSBmYWNlLDwvQT48YnI+Cis8QSBOQU1FPTEu
Ny42Mj5IYXZlIHBsdWNrJ2QgbXkgbmlwcGxlIGZyb20gaGlzIGJvbmVsZXNzIGd1bXMsPC9BPjxi
cj4KKzxBIE5BTUU9MS43LjYzPkFuZCBkYXNoJ2QgdGhlIGJyYWlucyBvdXQsIGhhZCBJIHNvIHN3
b3JuIGFzIHlvdTwvQT48YnI+Cis8QSBOQU1FPTEuNy42ND5IYXZlIGRvbmUgdG8gdGhpcy48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+TUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9MS43LjY1PiAgICAgICAgICAgICAgICAgIElmIHdlIHNo
b3VsZCBmYWlsPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+
TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0xLjcuNjY+V2UgZmFp
bCE8L0E+PGJyPgorPEEgTkFNRT0xLjcuNjc+QnV0IHNjcmV3IHlvdXIgY291cmFnZSB0byB0aGUg
c3RpY2tpbmctcGxhY2UsPC9BPjxicj4KKzxBIE5BTUU9MS43LjY4PkFuZCB3ZSdsbCBub3QgZmFp
bC4gV2hlbiBEdW5jYW4gaXMgYXNsZWVwLS08L0E+PGJyPgorPEEgTkFNRT0xLjcuNjk+V2hlcmV0
byB0aGUgcmF0aGVyIHNoYWxsIGhpcyBkYXkncyBoYXJkIGpvdXJuZXk8L0E+PGJyPgorPEEgTkFN
RT0xLjcuNzA+U291bmRseSBpbnZpdGUgaGltLS1oaXMgdHdvIGNoYW1iZXJsYWluczwvQT48YnI+
Cis8QSBOQU1FPTEuNy43MT5XaWxsIEkgd2l0aCB3aW5lIGFuZCB3YXNzYWlsIHNvIGNvbnZpbmNl
PC9BPjxicj4KKzxBIE5BTUU9MS43LjcyPlRoYXQgbWVtb3J5LCB0aGUgd2FyZGVyIG9mIHRoZSBi
cmFpbiw8L0E+PGJyPgorPEEgTkFNRT0xLjcuNzM+U2hhbGwgYmUgYSBmdW1lLCBhbmQgdGhlIHJl
Y2VpcHQgb2YgcmVhc29uPC9BPjxicj4KKzxBIE5BTUU9MS43Ljc0PkEgbGltYmVjayBvbmx5OiB3
aGVuIGluIHN3aW5pc2ggc2xlZXA8L0E+PGJyPgorPEEgTkFNRT0xLjcuNzU+VGhlaXIgZHJlbmNo
ZWQgbmF0dXJlcyBsaWUgYXMgaW4gYSBkZWF0aCw8L0E+PGJyPgorPEEgTkFNRT0xLjcuNzY+V2hh
dCBjYW5ub3QgeW91IGFuZCBJIHBlcmZvcm0gdXBvbjwvQT48YnI+Cis8QSBOQU1FPTEuNy43Nz5U
aGUgdW5ndWFyZGVkIER1bmNhbj8gd2hhdCBub3QgcHV0IHVwb248L0E+PGJyPgorPEEgTkFNRT0x
LjcuNzg+SGlzIHNwb25neSBvZmZpY2Vycywgd2hvIHNoYWxsIGJlYXIgdGhlIGd1aWx0PC9BPjxi
cj4KKzxBIE5BTUU9MS43Ljc5Pk9mIG91ciBncmVhdCBxdWVsbD88L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDExPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTEuNy44MD5CcmluZyBmb3J0aCBtZW4tY2hpbGRyZW4gb25seTs8L0E+PGJyPgor
PEEgTkFNRT0xLjcuODE+Rm9yIHRoeSB1bmRhdW50ZWQgbWV0dGxlIHNob3VsZCBjb21wb3NlPC9B
Pjxicj4KKzxBIE5BTUU9MS43LjgyPk5vdGhpbmcgYnV0IG1hbGVzLiBXaWxsIGl0IG5vdCBiZSBy
ZWNlaXZlZCw8L0E+PGJyPgorPEEgTkFNRT0xLjcuODM+V2hlbiB3ZSBoYXZlIG1hcmsnZCB3aXRo
IGJsb29kIHRob3NlIHNsZWVweSB0d288L0E+PGJyPgorPEEgTkFNRT0xLjcuODQ+T2YgaGlzIG93
biBjaGFtYmVyIGFuZCB1c2VkIHRoZWlyIHZlcnkgZGFnZ2Vycyw8L0E+PGJyPgorPEEgTkFNRT0x
LjcuODU+VGhhdCB0aGV5IGhhdmUgZG9uZSd0PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMTI+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0xLjcuODY+V2hvIGRhcmVzIHJlY2VpdmUgaXQgb3RoZXIsPC9BPjxicj4KKzxBIE5BTUU9
MS43Ljg3PkFzIHdlIHNoYWxsIG1ha2Ugb3VyIGdyaWVmcyBhbmQgY2xhbW91ciByb2FyPC9BPjxi
cj4KKzxBIE5BTUU9MS43Ljg4PlVwb24gaGlzIGRlYXRoPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9MS43Ljg5PiAgICAgICAgICAgICAgICAgIEkgYW0gc2V0dGxlZCwgYW5kIGJlbmQgdXA8
L0E+PGJyPgorPEEgTkFNRT0xLjcuOTA+RWFjaCBjb3Jwb3JhbCBhZ2VudCB0byB0aGlzIHRlcnJp
YmxlIGZlYXQuPC9BPjxicj4KKzxBIE5BTUU9MS43LjkxPkF3YXksIGFuZCBtb2NrIHRoZSB0aW1l
IHdpdGggZmFpcmVzdCBzaG93OjwvQT48YnI+Cis8QSBOQU1FPTEuNy45Mj5GYWxzZSBmYWNlIG11
c3QgaGlkZSB3aGF0IHRoZSBmYWxzZSBoZWFydCBkb3RoIGtub3cuPC9BPjxicj4KKzxwPjxpPkV4
ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+PHA+Cis8SDM+QUNUIElJPC9oMz4KKzxoMz5TQ0VO
RSBJLiBDb3VydCBvZiBNYWNiZXRoJ3MgY2FzdGxlLjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxp
PkVudGVyIEJBTlFVTywgYW5kIEZMRUFOQ0UgYmVhcmluZyBhIHRvcmNoIGJlZm9yZSBoaW08L2k+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5CQU5RVU88L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4xPkhvdyBnb2VzIHRoZSBuaWdodCwgYm95PzwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5GTEVBTkNFPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0yLjEuMj5UaGUgbW9vbiBpcyBkb3duOyBJIGhhdmUgbm90IGhl
YXJkIHRoZSBjbG9jay48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+
PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjEuMz5BbmQgc2hlIGdv
ZXMgZG93biBhdCB0d2VsdmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g0PjxiPkZMRUFOQ0U8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS40PkkgdGFr
ZSd0LCAndGlzIGxhdGVyLCBzaXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2g1PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4xLjU+SG9s
ZCwgdGFrZSBteSBzd29yZC4gVGhlcmUncyBodXNiYW5kcnkgaW4gaGVhdmVuOzwvQT48YnI+Cis8
QSBOQU1FPTIuMS42PlRoZWlyIGNhbmRsZXMgYXJlIGFsbCBvdXQuIFRha2UgdGhlZSB0aGF0IHRv
by48L0E+PGJyPgorPEEgTkFNRT0yLjEuNz5BIGhlYXZ5IHN1bW1vbnMgbGllcyBsaWtlIGxlYWQg
dXBvbiBtZSw8L0E+PGJyPgorPEEgTkFNRT0yLjEuOD5BbmQgeWV0IEkgd291bGQgbm90IHNsZWVw
OiBtZXJjaWZ1bCBwb3dlcnMsPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjk+UmVzdHJhaW4gaW4gbWUg
dGhlIGN1cnNlZCB0aG91Z2h0cyB0aGF0IG5hdHVyZTwvQT48YnI+Cis8QSBOQU1FPTIuMS4xMD5H
aXZlcyB3YXkgdG8gaW4gcmVwb3NlITwvQT48YnI+Cis8cD48aT5FbnRlciBNQUNCRVRILCBhbmQg
YSBTZXJ2YW50IHdpdGggYSB0b3JjaDwvaT48L3A+Cis8QSBOQU1FPTIuMS4xMT5HaXZlIG1lIG15
IHN3b3JkLjwvQT48YnI+Cis8QSBOQU1FPTIuMS4xMj5XaG8ncyB0aGVyZT88L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9Mi4xLjEzPkEgZnJpZW5kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoNz48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTIuMS4xND5XaGF0LCBzaXIsIG5vdCB5ZXQgYXQgcmVzdD8gVGhlIGtpbmcncyBhLWJlZDo8L0E+
PGJyPgorPEEgTkFNRT0yLjEuMTU+SGUgaGF0aCBiZWVuIGluIHVudXN1YWwgcGxlYXN1cmUsIGFu
ZDwvQT48YnI+Cis8QSBOQU1FPTIuMS4xNj5TZW50IGZvcnRoIGdyZWF0IGxhcmdlc3MgdG8geW91
ciBvZmZpY2VzLjwvQT48YnI+Cis8QSBOQU1FPTIuMS4xNz5UaGlzIGRpYW1vbmQgaGUgZ3JlZXRz
IHlvdXIgd2lmZSB3aXRoYWwsPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjE4PkJ5IHRoZSBuYW1lIG9m
IG1vc3Qga2luZCBob3N0ZXNzOyBhbmQgc2h1dCB1cDwvQT48YnI+Cis8QSBOQU1FPTIuMS4xOT5J
biBtZWFzdXJlbGVzcyBjb250ZW50LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoOD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjEuMjA+
QmVpbmcgdW5wcmVwYXJlZCw8L0E+PGJyPgorPEEgTkFNRT0yLjEuMjE+T3VyIHdpbGwgYmVjYW1l
IHRoZSBzZXJ2YW50IHRvIGRlZmVjdDs8L0E+PGJyPgorPEEgTkFNRT0yLjEuMjI+V2hpY2ggZWxz
ZSBzaG91bGQgZnJlZSBoYXZlIHdyb3VnaHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g5PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4x
LjIzPkFsbCdzIHdlbGwuPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjI0PkkgZHJlYW10IGxhc3Qgbmln
aHQgb2YgdGhlIHRocmVlIHdlaXJkIHNpc3RlcnM6PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjI1PlRv
IHlvdSB0aGV5IGhhdmUgc2hvdydkIHNvbWUgdHJ1dGguPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxMD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0yLjEuMjY+SSB0aGluayBub3Qgb2YgdGhlbTo8L0E+PGJyPgorPEEgTkFNRT0yLjEuMjc+
WWV0LCB3aGVuIHdlIGNhbiBlbnRyZWF0IGFuIGhvdXIgdG8gc2VydmUsPC9BPjxicj4KKzxBIE5B
TUU9Mi4xLjI4PldlIHdvdWxkIHNwZW5kIGl0IGluIHNvbWUgd29yZHMgdXBvbiB0aGF0IGJ1c2lu
ZXNzLDwvQT48YnI+Cis8QSBOQU1FPTIuMS4yOT5JZiB5b3Ugd291bGQgZ3JhbnQgdGhlIHRpbWUu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5CQU5RVU88L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4zMD5BdCB5b3VyIGtpbmQnc3QgbGVpc3Vy
ZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPk1BQ0JFVEg8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4zMT5JZiB5b3Ugc2hhbGwgY2xlYXZl
IHRvIG15IGNvbnNlbnQsIHdoZW4gJ3Rpcyw8L0E+PGJyPgorPEEgTkFNRT0yLjEuMzI+SXQgc2hh
bGwgbWFrZSBob25vdXIgZm9yIHlvdS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDEzPjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4xLjMz
PlNvIEkgbG9zZSBub25lPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjM0PkluIHNlZWtpbmcgdG8gYXVn
bWVudCBpdCwgYnV0IHN0aWxsIGtlZXA8L0E+PGJyPgorPEEgTkFNRT0yLjEuMzU+TXkgYm9zb20g
ZnJhbmNoaXNlZCBhbmQgYWxsZWdpYW5jZSBjbGVhciw8L0E+PGJyPgorPEEgTkFNRT0yLjEuMzY+
SSBzaGFsbCBiZSBjb3Vuc2VsbCdkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMTQ+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4xLjM3
Pkdvb2QgcmVwb3NlIHRoZSB3aGlsZSE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDE1PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4xLjM4
PlRoYW5rcywgc2lyOiB0aGUgbGlrZSB0byB5b3UhPC9BPjxicj4KKzxwPjxpPkV4ZXVudCBCQU5R
VU8gYW5kIEZMRUFOQ0U8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2
PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMS4zOT5HbyBiaWQg
dGh5IG1pc3RyZXNzLCB3aGVuIG15IGRyaW5rIGlzIHJlYWR5LDwvQT48YnI+Cis8QSBOQU1FPTIu
MS40MD5TaGUgc3RyaWtlIHVwb24gdGhlIGJlbGwuIEdldCB0aGVlIHRvIGJlZC48L0E+PGJyPgor
PHA+PGk+RXhpdCBTZXJ2YW50PC9pPjwvcD4KKzxBIE5BTUU9Mi4xLjQxPklzIHRoaXMgYSBkYWdn
ZXIgd2hpY2ggSSBzZWUgYmVmb3JlIG1lLDwvQT48YnI+Cis8QSBOQU1FPTIuMS40Mj5UaGUgaGFu
ZGxlIHRvd2FyZCBteSBoYW5kPyBDb21lLCBsZXQgbWUgY2x1dGNoIHRoZWUuPC9BPjxicj4KKzxB
IE5BTUU9Mi4xLjQzPkkgaGF2ZSB0aGVlIG5vdCwgYW5kIHlldCBJIHNlZSB0aGVlIHN0aWxsLjwv
QT48YnI+Cis8QSBOQU1FPTIuMS40ND5BcnQgdGhvdSBub3QsIGZhdGFsIHZpc2lvbiwgc2Vuc2li
bGU8L0E+PGJyPgorPEEgTkFNRT0yLjEuNDU+VG8gZmVlbGluZyBhcyB0byBzaWdodD8gb3IgYXJ0
IHRob3UgYnV0PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjQ2PkEgZGFnZ2VyIG9mIHRoZSBtaW5kLCBh
IGZhbHNlIGNyZWF0aW9uLDwvQT48YnI+Cis8QSBOQU1FPTIuMS40Nz5Qcm9jZWVkaW5nIGZyb20g
dGhlIGhlYXQtb3BwcmVzc2VkIGJyYWluPzwvQT48YnI+Cis8QSBOQU1FPTIuMS40OD5JIHNlZSB0
aGVlIHlldCwgaW4gZm9ybSBhcyBwYWxwYWJsZTwvQT48YnI+Cis8QSBOQU1FPTIuMS40OT5BcyB0
aGlzIHdoaWNoIG5vdyBJIGRyYXcuPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjUwPlRob3UgbWFyc2hh
bGwnc3QgbWUgdGhlIHdheSB0aGF0IEkgd2FzIGdvaW5nOzwvQT48YnI+Cis8QSBOQU1FPTIuMS41
MT5BbmQgc3VjaCBhbiBpbnN0cnVtZW50IEkgd2FzIHRvIHVzZS48L0E+PGJyPgorPEEgTkFNRT0y
LjEuNTI+TWluZSBleWVzIGFyZSBtYWRlIHRoZSBmb29scyBvJyB0aGUgb3RoZXIgc2Vuc2VzLDwv
QT48YnI+Cis8QSBOQU1FPTIuMS41Mz5PciBlbHNlIHdvcnRoIGFsbCB0aGUgcmVzdDsgSSBzZWUg
dGhlZSBzdGlsbCw8L0E+PGJyPgorPEEgTkFNRT0yLjEuNTQ+QW5kIG9uIHRoeSBibGFkZSBhbmQg
ZHVkZ2VvbiBnb3V0cyBvZiBibG9vZCw8L0E+PGJyPgorPEEgTkFNRT0yLjEuNTU+V2hpY2ggd2Fz
IG5vdCBzbyBiZWZvcmUuIFRoZXJlJ3Mgbm8gc3VjaCB0aGluZzo8L0E+PGJyPgorPEEgTkFNRT0y
LjEuNTY+SXQgaXMgdGhlIGJsb29keSBidXNpbmVzcyB3aGljaCBpbmZvcm1zPC9BPjxicj4KKzxB
IE5BTUU9Mi4xLjU3PlRodXMgdG8gbWluZSBleWVzLiBOb3cgbydlciB0aGUgb25lIGhhbGZ3b3Js
ZDwvQT48YnI+Cis8QSBOQU1FPTIuMS41OD5OYXR1cmUgc2VlbXMgZGVhZCwgYW5kIHdpY2tlZCBk
cmVhbXMgYWJ1c2U8L0E+PGJyPgorPEEgTkFNRT0yLjEuNTk+VGhlIGN1cnRhaW4nZCBzbGVlcDsg
d2l0Y2hjcmFmdCBjZWxlYnJhdGVzPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjYwPlBhbGUgSGVjYXRl
J3Mgb2ZmZXJpbmdzLCBhbmQgd2l0aGVyJ2QgbXVyZGVyLDwvQT48YnI+Cis8QSBOQU1FPTIuMS42
MT5BbGFydW0nZCBieSBoaXMgc2VudGluZWwsIHRoZSB3b2xmLDwvQT48YnI+Cis8QSBOQU1FPTIu
MS42Mj5XaG9zZSBob3dsJ3MgaGlzIHdhdGNoLCB0aHVzIHdpdGggaGlzIHN0ZWFsdGh5IHBhY2Uu
PC9BPjxicj4KKzxBIE5BTUU9Mi4xLjYzPldpdGggVGFycXVpbidzIHJhdmlzaGluZyBzdHJpZGVz
LCB0b3dhcmRzIGhpcyBkZXNpZ248L0E+PGJyPgorPEEgTkFNRT0yLjEuNjQ+TW92ZXMgbGlrZSBh
IGdob3N0LiBUaG91IHN1cmUgYW5kIGZpcm0tc2V0IGVhcnRoLDwvQT48YnI+Cis8QSBOQU1FPTIu
MS42NT5IZWFyIG5vdCBteSBzdGVwcywgd2hpY2ggd2F5IHRoZXkgd2FsaywgZm9yIGZlYXI8L0E+
PGJyPgorPEEgTkFNRT0yLjEuNjY+VGh5IHZlcnkgc3RvbmVzIHByYXRlIG9mIG15IHdoZXJlYWJv
dXQsPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjY3PkFuZCB0YWtlIHRoZSBwcmVzZW50IGhvcnJvciBm
cm9tIHRoZSB0aW1lLDwvQT48YnI+Cis8QSBOQU1FPTIuMS42OD5XaGljaCBub3cgc3VpdHMgd2l0
aCBpdC4gV2hpbGVzIEkgdGhyZWF0LCBoZSBsaXZlczo8L0E+PGJyPgorPEEgTkFNRT0yLjEuNjk+
V29yZHMgdG8gdGhlIGhlYXQgb2YgZGVlZHMgdG9vIGNvbGQgYnJlYXRoIGdpdmVzLjwvQT48YnI+
Cis8cD48aT5BIGJlbGwgcmluZ3M8L2k+PC9wPgorPEEgTkFNRT0yLjEuNzA+SSBnbywgYW5kIGl0
IGlzIGRvbmU7IHRoZSBiZWxsIGludml0ZXMgbWUuPC9BPjxicj4KKzxBIE5BTUU9Mi4xLjcxPkhl
YXIgaXQgbm90LCBEdW5jYW47IGZvciBpdCBpcyBhIGtuZWxsPC9BPjxicj4KKzxBIE5BTUU9Mi4x
LjcyPlRoYXQgc3VtbW9ucyB0aGVlIHRvIGhlYXZlbiBvciB0byBoZWxsLjwvQT48YnI+Cis8cD48
aT5FeGl0PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBJSS4gVGhlIHNhbWUuPC9o
Mz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50ZXIgTEFEWSBNQUNCRVRIPC9pPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0yLjIuMT5UaGF0IHdoaWNoIGhhdGggbWFkZSB0aGVtIGRydW5rIGhhdGgg
bWFkZSBtZSBib2xkOzwvQT48YnI+Cis8QSBOQU1FPTIuMi4yPldoYXQgaGF0aCBxdWVuY2gnZCB0
aGVtIGhhdGggZ2l2ZW4gbWUgZmlyZS48L0E+PGJyPgorPEEgTkFNRT0yLjIuMz5IYXJrISBQZWFj
ZSE8L0E+PGJyPgorPEEgTkFNRT0yLjIuND5JdCB3YXMgdGhlIG93bCB0aGF0IHNocmllaydkLCB0
aGUgZmF0YWwgYmVsbG1hbiw8L0E+PGJyPgorPEEgTkFNRT0yLjIuNT5XaGljaCBnaXZlcyB0aGUg
c3Rlcm4nc3QgZ29vZC1uaWdodC4gSGUgaXMgYWJvdXQgaXQ6PC9BPjxicj4KKzxBIE5BTUU9Mi4y
LjY+VGhlIGRvb3JzIGFyZSBvcGVuOyBhbmQgdGhlIHN1cmZlaXRlZCBncm9vbXM8L0E+PGJyPgor
PEEgTkFNRT0yLjIuNz5EbyBtb2NrIHRoZWlyIGNoYXJnZSB3aXRoIHNub3JlczogSSBoYXZlIGRy
dWdnJ2Q8L0E+PGJyPgorPEEgTkFNRT0yLjIuOD50aGVpciBwb3NzZXRzLDwvQT48YnI+Cis8QSBO
QU1FPTIuMi45PlRoYXQgZGVhdGggYW5kIG5hdHVyZSBkbyBjb250ZW5kIGFib3V0IHRoZW0sPC9B
Pjxicj4KKzxBIE5BTUU9Mi4yLjEwPldoZXRoZXIgdGhleSBsaXZlIG9yIGRpZS48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+TUFDQkVUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9Mi4yLjExPltXaXRoaW5dICBXaG8ncyB0aGVyZT8gd2hhdCwgaG8h
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPkxBRFkgTUFDQkVU
SDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjEyPkFsYWNrLCBJIGFtIGFmcmFp
ZCB0aGV5IGhhdmUgYXdha2VkLDwvQT48YnI+Cis8QSBOQU1FPTIuMi4xMz5BbmQgJ3RpcyBub3Qg
ZG9uZS4gVGhlIGF0dGVtcHQgYW5kIG5vdCB0aGUgZGVlZDwvQT48YnI+Cis8QSBOQU1FPTIuMi4x
ND5Db25mb3VuZHMgdXMuIEhhcmshIEkgbGFpZCB0aGVpciBkYWdnZXJzIHJlYWR5OzwvQT48YnI+
Cis8QSBOQU1FPTIuMi4xNT5IZSBjb3VsZCBub3QgbWlzcyAnZW0uIEhhZCBoZSBub3QgcmVzZW1i
bGVkPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjE2Pk15IGZhdGhlciBhcyBoZSBzbGVwdCwgSSBoYWQg
ZG9uZSd0LjwvQT48YnI+Cis8cD48aT5FbnRlciBNQUNCRVRIPC9pPjwvcD4KKzxBIE5BTUU9Mi4y
LjE3Pk15IGh1c2JhbmQhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0
PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi4xOD5JIGhhdmUg
ZG9uZSB0aGUgZGVlZC4gRGlkc3QgdGhvdSBub3QgaGVhciBhIG5vaXNlPzwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTIuMi4xOT5JIGhlYXJkIHRoZSBvd2wgc2NyZWFtIGFuZCB0aGUg
Y3JpY2tldHMgY3J5LjwvQT48YnI+Cis8QSBOQU1FPTIuMi4yMD5EaWQgbm90IHlvdSBzcGVhaz88
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+TUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjIxPiAgICAgICAgICAgICAgICAgIFdoZW4/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPkxBRFkgTUFDQkVU
SDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjIyPk5vdy48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9Mi4yLjIzPkFzIEkgZGVzY2VuZGVkPzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTIuMi4yND5BeS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDEwPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi4y
NT5IYXJrITwvQT48YnI+Cis8QSBOQU1FPTIuMi4yNj5XaG8gbGllcyBpJyB0aGUgc2Vjb25kIGNo
YW1iZXI/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5MQURZ
IE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi4yNz5Eb25hbGJhaW4u
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMj48Yj5NQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuMjg+VGhpcyBpcyBhIHNvcnJ5IHNpZ2h0
LjwvQT48YnI+Cis8cD48aT5Mb29raW5nIG9uIGhpcyBoYW5kczwvaT48L3A+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0yLjIuMjk+QSBmb29saXNoIHRob3VnaHQsIHRvIHNheSBhIHNvcnJ5IHNp
Z2h0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTQ+PGI+TUFDQkVU
SDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjMwPlRoZXJlJ3Mgb25lIGRpZCBs
YXVnaCBpbidzIHNsZWVwLCBhbmQgb25lIGNyaWVkPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjMxPidN
dXJkZXIhJzwvQT48YnI+Cis8QSBOQU1FPTIuMi4zMj5UaGF0IHRoZXkgZGlkIHdha2UgZWFjaCBv
dGhlcjogSSBzdG9vZCBhbmQgaGVhcmQgdGhlbTo8L0E+PGJyPgorPEEgTkFNRT0yLjIuMzM+QnV0
IHRoZXkgZGlkIHNheSB0aGVpciBwcmF5ZXJzLCBhbmQgYWRkcmVzcydkIHRoZW08L0E+PGJyPgor
PEEgTkFNRT0yLjIuMzQ+QWdhaW4gdG8gc2xlZXAuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxNT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTIuMi4zNT4gICAgICAgICAgICAgICAgICBUaGVyZSBhcmUgdHdvIGxvZGdlZCB0b2dl
dGhlci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2PjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi4zNj5PbmUgY3JpZWQgJ0dvZCBi
bGVzcyB1cyEnIGFuZCAnQW1lbicgdGhlIG90aGVyOzwvQT48YnI+Cis8QSBOQU1FPTIuMi4zNz5B
cyB0aGV5IGhhZCBzZWVuIG1lIHdpdGggdGhlc2UgaGFuZ21hbidzIGhhbmRzLjwvQT48YnI+Cis8
QSBOQU1FPTIuMi4zOD5MaXN0ZW5pbmcgdGhlaXIgZmVhciwgSSBjb3VsZCBub3Qgc2F5ICdBbWVu
LCc8L0E+PGJyPgorPEEgTkFNRT0yLjIuMzk+V2hlbiB0aGV5IGRpZCBzYXkgJ0dvZCBibGVzcyB1
cyEnPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNz48Yj5MQURZIE1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi40MD5Db25zaWRlciBpdCBu
b3Qgc28gZGVlcGx5LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTg+
PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjQxPkJ1dCB3aGVy
ZWZvcmUgY291bGQgbm90IEkgcHJvbm91bmNlICdBbWVuJz88L0E+PGJyPgorPEEgTkFNRT0yLjIu
NDI+SSBoYWQgbW9zdCBuZWVkIG9mIGJsZXNzaW5nLCBhbmQgJ0FtZW4nPC9BPjxicj4KKzxBIE5B
TUU9Mi4yLjQzPlN0dWNrIGluIG15IHRocm9hdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDE5PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9Mi4yLjQ0PlRoZXNlIGRlZWRzIG11c3Qgbm90IGJlIHRob3VnaHQ8L0E+PGJyPgorPEEg
TkFNRT0yLjIuNDU+QWZ0ZXIgdGhlc2Ugd2F5czsgc28sIGl0IHdpbGwgbWFrZSB1cyBtYWQuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMD48Yj5NQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuNDY+TWV0aG91Z2h0IEkgaGVhcmQgYSB2b2lj
ZSBjcnkgJ1NsZWVwIG5vIG1vcmUhPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjQ3Pk1hY2JldGggZG9l
cyBtdXJkZXIgc2xlZXAnLCB0aGUgaW5ub2NlbnQgc2xlZXAsPC9BPjxicj4KKzxBIE5BTUU9Mi4y
LjQ4PlNsZWVwIHRoYXQga25pdHMgdXAgdGhlIHJhdmVsbCdkIHNsZWV2ZSBvZiBjYXJlLDwvQT48
YnI+Cis8QSBOQU1FPTIuMi40OT5UaGUgZGVhdGggb2YgZWFjaCBkYXkncyBsaWZlLCBzb3JlIGxh
Ym91cidzIGJhdGgsPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjUwPkJhbG0gb2YgaHVydCBtaW5kcywg
Z3JlYXQgbmF0dXJlJ3Mgc2Vjb25kIGNvdXJzZSw8L0E+PGJyPgorPEEgTkFNRT0yLjIuNTE+Q2hp
ZWYgbm91cmlzaGVyIGluIGxpZmUncyBmZWFzdCwtLTwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMjE+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0yLjIuNTI+V2hhdCBkbyB5b3UgbWVhbj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDIyPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTIuMi41Mz5TdGlsbCBpdCBjcmllZCAnU2xlZXAgbm8gbW9yZSEnIHRvIGFsbCB0aGUgaG91
c2U6PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjU0PidHbGFtaXMgaGF0aCBtdXJkZXInZCBzbGVlcCwg
YW5kIHRoZXJlZm9yZSBDYXdkb3I8L0E+PGJyPgorPEEgTkFNRT0yLjIuNTU+U2hhbGwgc2xlZXAg
bm8gbW9yZTsgTWFjYmV0aCBzaGFsbCBzbGVlcCBubyBtb3JlLic8L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDIzPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9Mi4yLjU2PldobyB3YXMgaXQgdGhhdCB0aHVzIGNyaWVkPyBXaHksIHdv
cnRoeSB0aGFuZSw8L0E+PGJyPgorPEEgTkFNRT0yLjIuNTc+WW91IGRvIHVuYmVuZCB5b3VyIG5v
YmxlIHN0cmVuZ3RoLCB0byB0aGluazwvQT48YnI+Cis8QSBOQU1FPTIuMi41OD5TbyBicmFpbnNp
Y2tseSBvZiB0aGluZ3MuIEdvIGdldCBzb21lIHdhdGVyLDwvQT48YnI+Cis8QSBOQU1FPTIuMi41
OT5BbmQgd2FzaCB0aGlzIGZpbHRoeSB3aXRuZXNzIGZyb20geW91ciBoYW5kLjwvQT48YnI+Cis8
QSBOQU1FPTIuMi42MD5XaHkgZGlkIHlvdSBicmluZyB0aGVzZSBkYWdnZXJzIGZyb20gdGhlIHBs
YWNlPzwvQT48YnI+Cis8QSBOQU1FPTIuMi42MT5UaGV5IG11c3QgbGllIHRoZXJlOiBnbyBjYXJy
eSB0aGVtOyBhbmQgc21lYXI8L0E+PGJyPgorPEEgTkFNRT0yLjIuNjI+VGhlIHNsZWVweSBncm9v
bXMgd2l0aCBibG9vZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI0
PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMi42Mz5JJ2xsIGdv
IG5vIG1vcmU6PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjY0PkkgYW0gYWZyYWlkIHRvIHRoaW5rIHdo
YXQgSSBoYXZlIGRvbmU7PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjY1Pkxvb2sgb24ndCBhZ2FpbiBJ
IGRhcmUgbm90LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjU+PGI+
TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjIuNjY+SW5maXJt
IG9mIHB1cnBvc2UhPC9BPjxicj4KKzxBIE5BTUU9Mi4yLjY3PkdpdmUgbWUgdGhlIGRhZ2dlcnM6
IHRoZSBzbGVlcGluZyBhbmQgdGhlIGRlYWQ8L0E+PGJyPgorPEEgTkFNRT0yLjIuNjg+QXJlIGJ1
dCBhcyBwaWN0dXJlczogJ3RpcyB0aGUgZXllIG9mIGNoaWxkaG9vZDwvQT48YnI+Cis8QSBOQU1F
PTIuMi42OT5UaGF0IGZlYXJzIGEgcGFpbnRlZCBkZXZpbC4gSWYgaGUgZG8gYmxlZWQsPC9BPjxi
cj4KKzxBIE5BTUU9Mi4yLjcwPkknbGwgZ2lsZCB0aGUgZmFjZXMgb2YgdGhlIGdyb29tcyB3aXRo
YWw7PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjcxPkZvciBpdCBtdXN0IHNlZW0gdGhlaXIgZ3VpbHQu
PC9BPjxicj4KKzxwPjxpPkV4aXQuIEtub2NraW5nIHdpdGhpbjwvaT48L3A+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMjY+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9Mi4yLjcyPldoZW5jZSBpcyB0aGF0IGtub2NraW5nPzwvQT48YnI+Cis8QSBOQU1F
PTIuMi43Mz5Ib3cgaXMndCB3aXRoIG1lLCB3aGVuIGV2ZXJ5IG5vaXNlIGFwcGFscyBtZT88L0E+
PGJyPgorPEEgTkFNRT0yLjIuNzQ+V2hhdCBoYW5kcyBhcmUgaGVyZT8gaGEhIHRoZXkgcGx1Y2sg
b3V0IG1pbmUgZXllcy48L0E+PGJyPgorPEEgTkFNRT0yLjIuNzU+V2lsbCBhbGwgZ3JlYXQgTmVw
dHVuZSdzIG9jZWFuIHdhc2ggdGhpcyBibG9vZDwvQT48YnI+Cis8QSBOQU1FPTIuMi43Nj5DbGVh
biBmcm9tIG15IGhhbmQ/IE5vLCB0aGlzIG15IGhhbmQgd2lsbCByYXRoZXI8L0E+PGJyPgorPEEg
TkFNRT0yLjIuNzc+VGhlIG11bHRpdHVkaW5vdXMgc2VhcyBpbiBpbmNhcm5hZGluZSw8L0E+PGJy
PgorPEEgTkFNRT0yLjIuNzg+TWFraW5nIHRoZSBncmVlbiBvbmUgcmVkLjwvQT48YnI+Cis8cD48
aT5SZS1lbnRlciBMQURZIE1BQ0JFVEg8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDI3PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
Mi4yLjc5Pk15IGhhbmRzIGFyZSBvZiB5b3VyIGNvbG91cjsgYnV0IEkgc2hhbWU8L0E+PGJyPgor
PEEgTkFNRT0yLjIuODA+VG8gd2VhciBhIGhlYXJ0IHNvIHdoaXRlLjwvQT48YnI+Cis8cD48aT5L
bm9ja2luZyB3aXRoaW48L2k+PC9wPgorPEEgTkFNRT0yLjIuODE+SSBoZWFyIGEga25vY2tpbmc8
L0E+PGJyPgorPEEgTkFNRT0yLjIuODI+QXQgdGhlIHNvdXRoIGVudHJ5OiByZXRpcmUgd2UgdG8g
b3VyIGNoYW1iZXI7PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjgzPkEgbGl0dGxlIHdhdGVyIGNsZWFy
cyB1cyBvZiB0aGlzIGRlZWQ6PC9BPjxicj4KKzxBIE5BTUU9Mi4yLjg0PkhvdyBlYXN5IGlzIGl0
LCB0aGVuISBZb3VyIGNvbnN0YW5jeTwvQT48YnI+Cis8QSBOQU1FPTIuMi44NT5IYXRoIGxlZnQg
eW91IHVuYXR0ZW5kZWQuPC9BPjxicj4KKzxwPjxpPktub2NraW5nIHdpdGhpbjwvaT48L3A+Cis8
QSBOQU1FPTIuMi44Nj5IYXJrISBtb3JlIGtub2NraW5nLjwvQT48YnI+Cis8QSBOQU1FPTIuMi44
Nz5HZXQgb24geW91ciBuaWdodGdvd24sIGxlc3Qgb2NjYXNpb24gY2FsbCB1cyw8L0E+PGJyPgor
PEEgTkFNRT0yLjIuODg+QW5kIHNob3cgdXMgdG8gYmUgd2F0Y2hlcnMuIEJlIG5vdCBsb3N0PC9B
Pjxicj4KKzxBIE5BTUU9Mi4yLjg5PlNvIHBvb3JseSBpbiB5b3VyIHRob3VnaHRzLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjg+PGI+TUFDQkVUSDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4yLjkwPlRvIGtub3cgbXkgZGVlZCwgJ3R3ZXJlIGJlc3Qg
bm90IGtub3cgbXlzZWxmLjwvQT48YnI+Cis8cD48aT5Lbm9ja2luZyB3aXRoaW48L2k+PC9wPgor
PEEgTkFNRT0yLjIuOTE+V2FrZSBEdW5jYW4gd2l0aCB0aHkga25vY2tpbmchIEkgd291bGQgdGhv
dSBjb3VsZHN0ITwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgor
PGgzPlNDRU5FIElJSS4gVGhlIHNhbWUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+S25vY2tp
bmcgd2l0aGluLiBFbnRlciBhIFBvcnRlcjwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxPjxiPlBvcnRlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjE+SGVy
ZSdzIGEga25vY2tpbmcgaW5kZWVkISBJZiBhPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjI+bWFuIHdl
cmUgcG9ydGVyIG9mIGhlbGwtZ2F0ZSwgaGUgc2hvdWxkIGhhdmU8L0E+PGJyPgorPEEgTkFNRT0y
LjMuMz5vbGQgdHVybmluZyB0aGUga2V5LjwvQT48YnI+Cis8cD48aT5Lbm9ja2luZyB3aXRoaW48
L2k+PC9wPgorPEEgTkFNRT0yLjMuND5Lbm9jayw8L0E+PGJyPgorPEEgTkFNRT0yLjMuNT5rbm9j
aywga25vY2shIFdobydzIHRoZXJlLCBpJyB0aGUgbmFtZSBvZjwvQT48YnI+Cis8QSBOQU1FPTIu
My42PkJlZWx6ZWJ1Yj8gSGVyZSdzIGEgZmFybWVyLCB0aGF0IGhhbmdlZDwvQT48YnI+Cis8QSBO
QU1FPTIuMy43PmhpbXNlbGYgb24gdGhlIGV4cGVjdGF0aW9uIG9mIHBsZW50eTogY29tZSBpbjwv
QT48YnI+Cis8QSBOQU1FPTIuMy44PnRpbWU7IGhhdmUgbmFwa2lucyBlbm93IGFib3V0IHlvdTsg
aGVyZTwvQT48YnI+Cis8QSBOQU1FPTIuMy45PnlvdSdsbCBzd2VhdCBmb3IndC48L0E+PGJyPgor
PHA+PGk+S25vY2tpbmcgd2l0aGluPC9pPjwvcD4KKzxBIE5BTUU9Mi4zLjEwPktub2NrLDwvQT48
YnI+Cis8QSBOQU1FPTIuMy4xMT5rbm9jayEgV2hvJ3MgdGhlcmUsIGluIHRoZSBvdGhlciBkZXZp
bCdzPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEyPm5hbWU/IEZhaXRoLCBoZXJlJ3MgYW4gZXF1aXZv
Y2F0b3IsIHRoYXQgY291bGQ8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTM+c3dlYXIgaW4gYm90aCB0
aGUgc2NhbGVzIGFnYWluc3QgZWl0aGVyIHNjYWxlOzwvQT48YnI+Cis8QSBOQU1FPTIuMy4xND53
aG8gY29tbWl0dGVkIHRyZWFzb24gZW5vdWdoIGZvciBHb2QncyBzYWtlLDwvQT48YnI+Cis8QSBO
QU1FPTIuMy4xNT55ZXQgY291bGQgbm90IGVxdWl2b2NhdGUgdG8gaGVhdmVuOiBPLCBjb21lPC9B
Pjxicj4KKzxBIE5BTUU9Mi4zLjE2PmluLCBlcXVpdm9jYXRvci48L0E+PGJyPgorPHA+PGk+S25v
Y2tpbmcgd2l0aGluPC9pPjwvcD4KKzxBIE5BTUU9Mi4zLjE3Pktub2NrLDwvQT48YnI+Cis8QSBO
QU1FPTIuMy4xOD5rbm9jaywga25vY2shIFdobydzIHRoZXJlPyBGYWl0aCwgaGVyZSdzIGFuPC9B
Pjxicj4KKzxBIE5BTUU9Mi4zLjE5PkVuZ2xpc2ggdGFpbG9yIGNvbWUgaGl0aGVyLCBmb3Igc3Rl
YWxpbmcgb3V0IG9mPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjIwPmEgRnJlbmNoIGhvc2U6IGNvbWUg
aW4sIHRhaWxvcjsgaGVyZSB5b3UgbWF5PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjIxPnJvYXN0IHlv
dXIgZ29vc2UuPC9BPjxicj4KKzxwPjxpPktub2NraW5nIHdpdGhpbjwvaT48L3A+Cis8QSBOQU1F
PTIuMy4yMj5Lbm9jayw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMjM+a25vY2s7IG5ldmVyIGF0IHF1
aWV0ISBXaGF0IGFyZSB5b3U/IEJ1dDwvQT48YnI+Cis8QSBOQU1FPTIuMy4yND50aGlzIHBsYWNl
IGlzIHRvbyBjb2xkIGZvciBoZWxsLiBJJ2xsIGRldmlsLXBvcnRlcjwvQT48YnI+Cis8QSBOQU1F
PTIuMy4yNT5pdCBubyBmdXJ0aGVyOiBJIGhhZCB0aG91Z2h0IHRvIGhhdmUgbGV0IGluPC9BPjxi
cj4KKzxBIE5BTUU9Mi4zLjI2PnNvbWUgb2YgYWxsIHByb2Zlc3Npb25zIHRoYXQgZ28gdGhlIHBy
aW1yb3NlPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjI3PndheSB0byB0aGUgZXZlcmxhc3RpbmcgYm9u
ZmlyZS48L0E+PGJyPgorPHA+PGk+S25vY2tpbmcgd2l0aGluPC9pPjwvcD4KKzxBIE5BTUU9Mi4z
LjI4PkFub24sIGFub24hIEkgcHJheSB5b3UsIHJlbWVtYmVyIHRoZSBwb3J0ZXIuPC9BPjxicj4K
KzxwPjxpPk9wZW5zIHRoZSBnYXRlPC9pPjwvcD4KKzxwPjxpPkVudGVyIE1BQ0RVRkYgYW5kIExF
Tk5PWDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5NQUNEVUZG
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMjk+V2FzIGl0IHNvIGxhdGUsIGZy
aWVuZCwgZXJlIHlvdSB3ZW50IHRvIGJlZCw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMzA+VGhhdCB5
b3UgZG8gbGllIHNvIGxhdGU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gzPjxiPlBvcnRlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjMxPidGYWl0
aCBzaXIsIHdlIHdlcmUgY2Fyb3VzaW5nIHRpbGwgdGhlPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjMy
PnNlY29uZCBjb2NrOiBhbmQgZHJpbmssIHNpciwgaXMgYSBncmVhdDwvQT48YnI+Cis8QSBOQU1F
PTIuMy4zMz5wcm92b2tlciBvZiB0aHJlZSB0aGluZ3MuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g0PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTIuMy4zND5XaGF0IHRocmVlIHRoaW5ncyBkb2VzIGRyaW5rIGVzcGVjaWFsbHkgcHJvdm9r
ZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+UG9ydGVyPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuMzU+TWFycnksIHNpciwgbm9zZS1wYWlu
dGluZywgc2xlZXAsIGFuZDwvQT48YnI+Cis8QSBOQU1FPTIuMy4zNj51cmluZS4gTGVjaGVyeSwg
c2lyLCBpdCBwcm92b2tlcywgYW5kIHVucHJvdm9rZXM7PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjM3
Pml0IHByb3Zva2VzIHRoZSBkZXNpcmUsIGJ1dCBpdCB0YWtlczwvQT48YnI+Cis8QSBOQU1FPTIu
My4zOD5hd2F5IHRoZSBwZXJmb3JtYW5jZTogdGhlcmVmb3JlLCBtdWNoIGRyaW5rPC9BPjxicj4K
KzxBIE5BTUU9Mi4zLjM5Pm1heSBiZSBzYWlkIHRvIGJlIGFuIGVxdWl2b2NhdG9yIHdpdGggbGVj
aGVyeTo8L0E+PGJyPgorPEEgTkFNRT0yLjMuNDA+aXQgbWFrZXMgaGltLCBhbmQgaXQgbWFycyBo
aW07IGl0IHNldHM8L0E+PGJyPgorPEEgTkFNRT0yLjMuNDE+aGltIG9uLCBhbmQgaXQgdGFrZXMg
aGltIG9mZjsgaXQgcGVyc3VhZGVzIGhpbSw8L0E+PGJyPgorPEEgTkFNRT0yLjMuNDI+YW5kIGRp
c2hlYXJ0ZW5zIGhpbTsgbWFrZXMgaGltIHN0YW5kIHRvLCBhbmQ8L0E+PGJyPgorPEEgTkFNRT0y
LjMuNDM+bm90IHN0YW5kIHRvOyBpbiBjb25jbHVzaW9uLCBlcXVpdm9jYXRlcyBoaW08L0E+PGJy
PgorPEEgTkFNRT0yLjMuNDQ+aW4gYSBzbGVlcCwgYW5kLCBnaXZpbmcgaGltIHRoZSBsaWUsIGxl
YXZlcyBoaW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2PjxiPk1B
Q0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy40NT5JIGJlbGlldmUgZHJp
bmsgZ2F2ZSB0aGVlIHRoZSBsaWUgbGFzdCBuaWdodC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDc+PGI+UG9ydGVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT0yLjMuNDY+VGhhdCBpdCBkaWQsIHNpciwgaScgdGhlIHZlcnkgdGhyb2F0IG9uPC9BPjxicj4K
KzxBIE5BTUU9Mi4zLjQ3Pm1lOiBidXQgSSByZXF1aXRlZCBoaW0gZm9yIGhpcyBsaWU7IGFuZCwg
STwvQT48YnI+Cis8QSBOQU1FPTIuMy40OD50aGluaywgYmVpbmcgdG9vIHN0cm9uZyBmb3IgaGlt
LCB0aG91Z2ggaGUgdG9vazwvQT48YnI+Cis8QSBOQU1FPTIuMy40OT51cCBteSBsZWdzIHNvbWV0
aW1lLCB5ZXQgSSBtYWRlIGEgc2hpZnQgdG8gY2FzdDwvQT48YnI+Cis8QSBOQU1FPTIuMy41MD5o
aW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPk1BQ0RVRkY8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy41MT5JcyB0aHkgbWFzdGVyIHN0aXJy
aW5nPzwvQT48YnI+Cis8cD48aT5FbnRlciBNQUNCRVRIPC9pPjwvcD4KKzxBIE5BTUU9Mi4zLjUy
Pk91ciBrbm9ja2luZyBoYXMgYXdha2VkIGhpbTsgaGVyZSBoZSBjb21lcy48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0yLjMuNTM+R29vZCBtb3Jyb3csIG5vYmxlIHNpci48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTIuMy41ND5Hb29kIG1vcnJvdywgYm90aC48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDExPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTIuMy41NT5JcyB0aGUga2luZyBzdGlycmluZywgd29ydGh5IHRoYW5lPzwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+TUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjU2Pk5vdCB5ZXQuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0yLjMuNTc+SGUgZGlkIGNvbW1hbmQgbWUgdG8gY2FsbCB0aW1lbHkgb24g
aGltOjwvQT48YnI+Cis8QSBOQU1FPTIuMy41OD5JIGhhdmUgYWxtb3N0IHNsaXBwJ2QgdGhlIGhv
dXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxND48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuNTk+SSdsbCBicmluZyB5b3UgdG8g
aGltLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTU+PGI+TUFDRFVG
RjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjYwPkkga25vdyB0aGlzIGlzIGEg
am95ZnVsIHRyb3VibGUgdG8geW91OzwvQT48YnI+Cis8QSBOQU1FPTIuMy42MT5CdXQgeWV0ICd0
aXMgb25lLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTY+PGI+TUFD
QkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjYyPlRoZSBsYWJvdXIgd2Ug
ZGVsaWdodCBpbiBwaHlzaWNzIHBhaW4uPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjYzPlRoaXMgaXMg
dGhlIGRvb3IuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNz48Yj5N
QUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuNjQ+ICAgICAgICAgICAg
ICAgICAgSSdsbCBtYWtlIHNvIGJvbGQgdG8gY2FsbCw8L0E+PGJyPgorPEEgTkFNRT0yLjMuNjU+
Rm9yICd0aXMgbXkgbGltaXRlZCBzZXJ2aWNlLjwvQT48YnI+Cis8cD48aT5FeGl0PC9pPjwvcD4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOD48Yj5MRU5OT1g8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTIuMy42Nj5Hb2VzIHRoZSBraW5nIGhlbmNlIHRvLWRheT88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE5PjxiPk1BQ0JFVEg8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy42Nz5IZSBkb2VzOiBoZSBkaWQgYXBwb2ludCBz
by48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIwPjxiPkxFTk5PWDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjY4PlRoZSBuaWdodCBoYXMgYmVlbiB1
bnJ1bHk6IHdoZXJlIHdlIGxheSw8L0E+PGJyPgorPEEgTkFNRT0yLjMuNjk+T3VyIGNoaW1uZXlz
IHdlcmUgYmxvd24gZG93bjsgYW5kLCBhcyB0aGV5IHNheSw8L0E+PGJyPgorPEEgTkFNRT0yLjMu
NzA+TGFtZW50aW5ncyBoZWFyZCBpJyB0aGUgYWlyOyBzdHJhbmdlIHNjcmVhbXMgb2YgZGVhdGgs
PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjcxPkFuZCBwcm9waGVzeWluZyB3aXRoIGFjY2VudHMgdGVy
cmlibGU8L0E+PGJyPgorPEEgTkFNRT0yLjMuNzI+T2YgZGlyZSBjb21idXN0aW9uIGFuZCBjb25m
dXNlZCBldmVudHM8L0E+PGJyPgorPEEgTkFNRT0yLjMuNzM+TmV3IGhhdGNoJ2QgdG8gdGhlIHdv
ZWZ1bCB0aW1lOiB0aGUgb2JzY3VyZSBiaXJkPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjc0PkNsYW1v
dXInZCB0aGUgbGl2ZWxvbmcgbmlnaHQ6IHNvbWUgc2F5LCB0aGUgZWFydGg8L0E+PGJyPgorPEEg
TkFNRT0yLjMuNzU+V2FzIGZldmVyb3VzIGFuZCBkaWQgc2hha2UuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0yLjMuNzY+J1R3YXMgYSByb3VnaCBuaWdodC48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDIyPjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9Mi4zLjc3Pk15IHlvdW5nIHJlbWVtYnJhbmNlIGNhbm5vdCBwYXJhbGxlbDwvQT48
YnI+Cis8QSBOQU1FPTIuMy43OD5BIGZlbGxvdyB0byBpdC48L0E+PGJyPgorPHA+PGk+UmUtZW50
ZXIgTUFDRFVGRjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjM+PGI+
TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjc5Pk8gaG9ycm9yLCBo
b3Jyb3IsIGhvcnJvciEgVG9uZ3VlIG5vciBoZWFydDwvQT48YnI+Cis8QSBOQU1FPTIuMy44MD5D
YW5ub3QgY29uY2VpdmUgbm9yIG5hbWUgdGhlZSE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDI0PjxiPk1BQ0JFVEg8L2I+PC9hPgorCis8QSBOQU1FPXNwZWVjaDI1Pjxi
PkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjgxPldoYXQncyB0aGUg
bWF0dGVyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjY+PGI+TUFD
RFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjgyPkNvbmZ1c2lvbiBub3cg
aGF0aCBtYWRlIGhpcyBtYXN0ZXJwaWVjZSE8L0E+PGJyPgorPEEgTkFNRT0yLjMuODM+TW9zdCBz
YWNyaWxlZ2lvdXMgbXVyZGVyIGhhdGggYnJva2Ugb3BlPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjg0
PlRoZSBMb3JkJ3MgYW5vaW50ZWQgdGVtcGxlLCBhbmQgc3RvbGUgdGhlbmNlPC9BPjxicj4KKzxB
IE5BTUU9Mi4zLjg1PlRoZSBsaWZlIG8nIHRoZSBidWlsZGluZyE8L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDI3PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTIuMy44Nj5XaGF0IGlzICd0IHlvdSBzYXk/IHRoZSBsaWZlPzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjg+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0yLjMuODc+TWVhbiB5b3UgaGlzIG1hamVzdHk/PC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyOT48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0yLjMuODg+QXBwcm9hY2ggdGhlIGNoYW1iZXIsIGFuZCBkZXN0cm95
IHlvdXIgc2lnaHQ8L0E+PGJyPgorPEEgTkFNRT0yLjMuODk+V2l0aCBhIG5ldyBHb3Jnb246IGRv
IG5vdCBiaWQgbWUgc3BlYWs7PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjkwPlNlZSwgYW5kIHRoZW4g
c3BlYWsgeW91cnNlbHZlcy48L0E+PGJyPgorPHA+PGk+RXhldW50IE1BQ0JFVEggYW5kIExFTk5P
WDwvaT48L3A+Cis8QSBOQU1FPTIuMy45MT5Bd2FrZSwgYXdha2UhPC9BPjxicj4KKzxBIE5BTUU9
Mi4zLjkyPlJpbmcgdGhlIGFsYXJ1bS1iZWxsLiBNdXJkZXIgYW5kIHRyZWFzb24hPC9BPjxicj4K
KzxBIE5BTUU9Mi4zLjkzPkJhbnF1byBhbmQgRG9uYWxiYWluISBNYWxjb2xtISBhd2FrZSE8L0E+
PGJyPgorPEEgTkFNRT0yLjMuOTQ+U2hha2Ugb2ZmIHRoaXMgZG93bnkgc2xlZXAsIGRlYXRoJ3Mg
Y291bnRlcmZlaXQsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjk1PkFuZCBsb29rIG9uIGRlYXRoIGl0
c2VsZiEgdXAsIHVwLCBhbmQgc2VlPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjk2PlRoZSBncmVhdCBk
b29tJ3MgaW1hZ2UhIE1hbGNvbG0hIEJhbnF1byE8L0E+PGJyPgorPEEgTkFNRT0yLjMuOTc+QXMg
ZnJvbSB5b3VyIGdyYXZlcyByaXNlIHVwLCBhbmQgd2FsayBsaWtlIHNwcml0ZXMsPC9BPjxicj4K
KzxBIE5BTUU9Mi4zLjk4PlRvIGNvdW50ZW5hbmNlIHRoaXMgaG9ycm9yISBSaW5nIHRoZSBiZWxs
LjwvQT48YnI+Cis8cD48aT5CZWxsIHJpbmdzPC9pPjwvcD4KKzxwPjxpPkVudGVyIExBRFkgTUFD
QkVUSDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzA+PGI+TEFEWSBN
QUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMuOTk+V2hhdCdzIHRoZSBi
dXNpbmVzcyw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTAwPlRoYXQgc3VjaCBhIGhpZGVvdXMgdHJ1
bXBldCBjYWxscyB0byBwYXJsZXk8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTAxPlRoZSBzbGVlcGVy
cyBvZiB0aGUgaG91c2U/IHNwZWFrLCBzcGVhayE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDMxPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTIuMy4xMDI+TyBnZW50bGUgbGFkeSw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTAzPidUaXMgbm90
IGZvciB5b3UgdG8gaGVhciB3aGF0IEkgY2FuIHNwZWFrOjwvQT48YnI+Cis8QSBOQU1FPTIuMy4x
MDQ+VGhlIHJlcGV0aXRpb24sIGluIGEgd29tYW4ncyBlYXIsPC9BPjxicj4KKzxBIE5BTUU9Mi4z
LjEwNT5Xb3VsZCBtdXJkZXIgYXMgaXQgZmVsbC48L0E+PGJyPgorPHA+PGk+RW50ZXIgQkFOUVVP
PC9pPjwvcD4KKzxBIE5BTUU9Mi4zLjEwNj5PIEJhbnF1bywgQmFucXVvLDwvQT48YnI+Cis8QSBO
QU1FPTIuMy4xMDc+T3VyIHJveWFsIG1hc3RlciAncyBtdXJkZXInZCE8L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMyPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9Mi4zLjEwOD5Xb2UsIGFsYXMhPC9BPjxicj4KKzxBIE5BTUU9Mi4z
LjEwOT5XaGF0LCBpbiBvdXIgaG91c2U/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gzMz48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4x
MTA+VG9vIGNydWVsIGFueSB3aGVyZS48L0E+PGJyPgorPEEgTkFNRT0yLjMuMTExPkRlYXIgRHVm
ZiwgSSBwcml0aGVlLCBjb250cmFkaWN0IHRoeXNlbGYsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEx
Mj5BbmQgc2F5IGl0IGlzIG5vdCBzby48L0E+PGJyPgorPHA+PGk+UmUtZW50ZXIgTUFDQkVUSCBh
bmQgTEVOTk9YLCB3aXRoIFJPU1M8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDM0PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xMTM+
SGFkIEkgYnV0IGRpZWQgYW4gaG91ciBiZWZvcmUgdGhpcyBjaGFuY2UsPC9BPjxicj4KKzxBIE5B
TUU9Mi4zLjExND5JIGhhZCBsaXZlZCBhIGJsZXNzZWQgdGltZTsgZm9yLCBmcm9tIHRoaXMgaW5z
dGFudCw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTE1PlRoZXJlICdzIG5vdGhpbmcgc2VyaW91cyBp
biBtb3J0YWxpdHk6PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjExNj5BbGwgaXMgYnV0IHRveXM6IHJl
bm93biBhbmQgZ3JhY2UgaXMgZGVhZDs8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTE3PlRoZSB3aW5l
IG9mIGxpZmUgaXMgZHJhd24sIGFuZCB0aGUgbWVyZSBsZWVzPC9BPjxicj4KKzxBIE5BTUU9Mi4z
LjExOD5JcyBsZWZ0IHRoaXMgdmF1bHQgdG8gYnJhZyBvZi48L0E+PGJyPgorPHA+PGk+RW50ZXIg
TUFMQ09MTSBhbmQgRE9OQUxCQUlOPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gzNT48Yj5ET05BTEJBSU48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4x
MTk+V2hhdCBpcyBhbWlzcz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDM2PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xMjA+ICAg
ICAgICAgICAgICAgICAgWW91IGFyZSwgYW5kIGRvIG5vdCBrbm93J3Q6PC9BPjxicj4KKzxBIE5B
TUU9Mi4zLjEyMT5UaGUgc3ByaW5nLCB0aGUgaGVhZCwgdGhlIGZvdW50YWluIG9mIHlvdXIgYmxv
b2Q8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTIyPklzIHN0b3BwJ2Q7IHRoZSB2ZXJ5IHNvdXJjZSBv
ZiBpdCBpcyBzdG9wcCdkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
Mzc+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjEyMz5Zb3Vy
IHJveWFsIGZhdGhlciAncyBtdXJkZXInZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDM4PjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIu
My4xMjQ+TywgYnkgd2hvbT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDM5PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjEyNT5UaG9z
ZSBvZiBoaXMgY2hhbWJlciwgYXMgaXQgc2VlbSdkLCBoYWQgZG9uZSAndDo8L0E+PGJyPgorPEEg
TkFNRT0yLjMuMTI2PlRoZWlyIGhhbmRzIGFuZCBmYWNlcyB3ZXJlIGFuIGJhZGdlZCB3aXRoIGJs
b29kOzwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMjc+U28gd2VyZSB0aGVpciBkYWdnZXJzLCB3aGlj
aCB1bndpcGVkIHdlIGZvdW5kPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEyOD5VcG9uIHRoZWlyIHBp
bGxvd3M6PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEyOT5UaGV5IHN0YXJlZCwgYW5kIHdlcmUgZGlz
dHJhY3RlZDsgbm8gbWFuJ3MgbGlmZTwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMzA+V2FzIHRvIGJl
IHRydXN0ZWQgd2l0aCB0aGVtLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoNDA+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjEzMT5P
LCB5ZXQgSSBkbyByZXBlbnQgbWUgb2YgbXkgZnVyeSw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTMy
PlRoYXQgSSBkaWQga2lsbCB0aGVtLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoNDE+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjEz
Mz5XaGVyZWZvcmUgZGlkIHlvdSBzbz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDQyPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4x
MzQ+V2hvIGNhbiBiZSB3aXNlLCBhbWF6ZWQsIHRlbXBlcmF0ZSBhbmQgZnVyaW91cyw8L0E+PGJy
PgorPEEgTkFNRT0yLjMuMTM1PkxveWFsIGFuZCBuZXV0cmFsLCBpbiBhIG1vbWVudD8gTm8gbWFu
OjwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMzY+VGhlIGV4cGVkaXRpb24gbXkgdmlvbGVudCBsb3Zl
PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEzNz5PdXRydW4gdGhlIHBhdXNlciwgcmVhc29uLiBIZXJl
IGxheSBEdW5jYW4sPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjEzOD5IaXMgc2lsdmVyIHNraW4gbGFj
ZWQgd2l0aCBoaXMgZ29sZGVuIGJsb29kOzwvQT48YnI+Cis8QSBOQU1FPTIuMy4xMzk+QW5kIGhp
cyBnYXNoJ2Qgc3RhYnMgbG9vaydkIGxpa2UgYSBicmVhY2ggaW4gbmF0dXJlPC9BPjxicj4KKzxB
IE5BTUU9Mi4zLjE0MD5Gb3IgcnVpbidzIHdhc3RlZnVsIGVudHJhbmNlOiB0aGVyZSwgdGhlIG11
cmRlcmVycyw8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTQxPlN0ZWVwJ2QgaW4gdGhlIGNvbG91cnMg
b2YgdGhlaXIgdHJhZGUsIHRoZWlyIGRhZ2dlcnM8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTQyPlVu
bWFubmVybHkgYnJlZWNoJ2Qgd2l0aCBnb3JlOiB3aG8gY291bGQgcmVmcmFpbiw8L0E+PGJyPgor
PEEgTkFNRT0yLjMuMTQzPlRoYXQgaGFkIGEgaGVhcnQgdG8gbG92ZSwgYW5kIGluIHRoYXQgaGVh
cnQ8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTQ0PkNvdXJhZ2UgdG8gbWFrZSAncyBsb3ZlIGtubyB3
bj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQzPjxiPkxBRFkgTUFD
QkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjE0NT5IZWxwIG1lIGhlbmNl
LCBobyE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ0PjxiPk1BQ0RV
RkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNDY+TG9vayB0byB0aGUgbGFk
eS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ1PjxiPk1BTENPTE08
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNDc+W0FzaWRlIHRvIERPTkFMQkFJ
Tl0gIFdoeSBkbyB3ZSBob2xkIG91ciB0b25ndWVzLDwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNDg+
VGhhdCBtb3N0IG1heSBjbGFpbSB0aGlzIGFyZ3VtZW50IGZvciBvdXJzPzwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDY+PGI+RE9OQUxCQUlOPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0yLjMuMTQ5PltBc2lkZSB0byBNQUxDT0xNXSAgV2hhdCBzaG91bGQg
YmUgc3Bva2VuIGhlcmUsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE1MD53aGVyZSBvdXIgZmF0ZSw8
L0E+PGJyPgorPEEgTkFNRT0yLjMuMTUxPkhpZCBpbiBhbiBhdWdlci1ob2xlLCBtYXkgcnVzaCwg
YW5kIHNlaXplIHVzPzwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNTI+TGV0ICdzIGF3YXk7PC9BPjxi
cj4KKzxBIE5BTUU9Mi4zLjE1Mz5PdXIgdGVhcnMgYXJlIG5vdCB5ZXQgYnJldydkLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDc+PGI+TUFMQ09MTTwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjE1ND5bQXNpZGUgdG8gRE9OQUxCQUlOXSAgICAgICAg
Tm9yIG91ciBzdHJvbmcgc29ycm93PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE1NT5VcG9uIHRoZSBm
b290IG9mIG1vdGlvbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ4
PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi4zLjE1Nj5Mb29rIHRv
IHRoZSBsYWR5OjwvQT48YnI+Cis8cD48aT5MQURZIE1BQ0JFVEggaXMgY2FycmllZCBvdXQ8L2k+
PC9wPgorPEEgTkFNRT0yLjMuMTU3PkFuZCB3aGVuIHdlIGhhdmUgb3VyIG5ha2VkIGZyYWlsdGll
cyBoaWQsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE1OD5UaGF0IHN1ZmZlciBpbiBleHBvc3VyZSwg
bGV0IHVzIG1lZXQsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE1OT5BbmQgcXVlc3Rpb24gdGhpcyBt
b3N0IGJsb29keSBwaWVjZSBvZiB3b3JrLDwvQT48YnI+Cis8QSBOQU1FPTIuMy4xNjA+VG8ga25v
dyBpdCBmdXJ0aGVyLiBGZWFycyBhbmQgc2NydXBsZXMgc2hha2UgdXM6PC9BPjxicj4KKzxBIE5B
TUU9Mi4zLjE2MT5JbiB0aGUgZ3JlYXQgaGFuZCBvZiBHb2QgSSBzdGFuZDsgYW5kIHRoZW5jZTwv
QT48YnI+Cis8QSBOQU1FPTIuMy4xNjI+QWdhaW5zdCB0aGUgdW5kaXZ1bGdlZCBwcmV0ZW5jZSBJ
IGZpZ2h0PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE2Mz5PZiB0cmVhc29ub3VzIG1hbGljZS48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ5PjxiPk1BQ0RVRkY8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNjQ+QW5kIHNvIGRvIEkuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1MD48Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTIuMy4xNjU+U28gYWxsLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoNTE+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
Mi4zLjE2Nj5MZXQncyBicmllZmx5IHB1dCBvbiBtYW5seSByZWFkaW5lc3MsPC9BPjxicj4KKzxB
IE5BTUU9Mi4zLjE2Nz5BbmQgbWVldCBpJyB0aGUgaGFsbCB0b2dldGhlci48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUyPjxiPkFMTDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9Mi4zLjE2OD5XZWxsIGNvbnRlbnRlZC48L0E+PGJyPgorPHA+PGk+RXhldW50
IGFsbCBidXQgTWFsY29sbSBhbmQgRG9uYWxiYWluLjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoNTM+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9Mi4zLjE2OT5XaGF0IHdpbGwgeW91IGRvPyBMZXQncyBub3QgY29uc29ydCB3aXRoIHRoZW06
PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE3MD5UbyBzaG93IGFuIHVuZmVsdCBzb3Jyb3cgaXMgYW4g
b2ZmaWNlPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE3MT5XaGljaCB0aGUgZmFsc2UgbWFuIGRvZXMg
ZWFzeS4gSSdsbCB0byBFbmdsYW5kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoNTQ+PGI+RE9OQUxCQUlOPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjMu
MTcyPlRvIElyZWxhbmQsIEk7IG91ciBzZXBhcmF0ZWQgZm9ydHVuZTwvQT48YnI+Cis8QSBOQU1F
PTIuMy4xNzM+U2hhbGwga2VlcCB1cyBib3RoIHRoZSBzYWZlcjogd2hlcmUgd2UgYXJlLDwvQT48
YnI+Cis8QSBOQU1FPTIuMy4xNzQ+VGhlcmUncyBkYWdnZXJzIGluIG1lbidzIHNtaWxlczogdGhl
IG5lYXIgaW4gYmxvb2QsPC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE3NT5UaGUgbmVhcmVyIGJsb29k
eS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU1PjxiPk1BTENPTE08
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuMy4xNzY+ICAgICAgICAgICAgICAgICAg
VGhpcyBtdXJkZXJvdXMgc2hhZnQgdGhhdCdzIHNob3Q8L0E+PGJyPgorPEEgTkFNRT0yLjMuMTc3
PkhhdGggbm90IHlldCBsaWdodGVkLCBhbmQgb3VyIHNhZmVzdCB3YXk8L0E+PGJyPgorPEEgTkFN
RT0yLjMuMTc4PklzIHRvIGF2b2lkIHRoZSBhaW0uIFRoZXJlZm9yZSwgdG8gaG9yc2U7PC9BPjxi
cj4KKzxBIE5BTUU9Mi4zLjE3OT5BbmQgbGV0IHVzIG5vdCBiZSBkYWludHkgb2YgbGVhdmUtdGFr
aW5nLDwvQT48YnI+Cis8QSBOQU1FPTIuMy4xODA+QnV0IHNoaWZ0IGF3YXk6IHRoZXJlJ3Mgd2Fy
cmFudCBpbiB0aGF0IHRoZWZ0PC9BPjxicj4KKzxBIE5BTUU9Mi4zLjE4MT5XaGljaCBzdGVhbHMg
aXRzZWxmLCB3aGVuIHRoZXJlJ3Mgbm8gbWVyY3kgbGVmdC48L0E+PGJyPgorPHA+PGk+RXhldW50
PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBJVi4gT3V0c2lkZSBNYWNiZXRoJ3Mg
Y2FzdGxlLjwvaDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPkVudGVyIFJPU1MgYW5kIGFuIG9sZCBN
YW48L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5PbGQgTWFuPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjQuMT5UaHJlZXNjb3JlIGFuZCB0ZW4gSSBjYW4g
cmVtZW1iZXIgd2VsbDo8L0E+PGJyPgorPEEgTkFNRT0yLjQuMj5XaXRoaW4gdGhlIHZvbHVtZSBv
ZiB3aGljaCB0aW1lIEkgaGF2ZSBzZWVuPC9BPjxicj4KKzxBIE5BTUU9Mi40LjM+SG91cnMgZHJl
YWRmdWwgYW5kIHRoaW5ncyBzdHJhbmdlOyBidXQgdGhpcyBzb3JlIG5pZ2h0PC9BPjxicj4KKzxB
IE5BTUU9Mi40LjQ+SGF0aCB0cmlmbGVkIGZvcm1lciBrbm93aW5ncy48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9Mi40LjU+QWgsIGdvb2QgZmF0aGVyLDwvQT48YnI+Cis8QSBOQU1FPTIuNC42PlRo
b3Ugc2Vlc3QsIHRoZSBoZWF2ZW5zLCBhcyB0cm91YmxlZCB3aXRoIG1hbidzIGFjdCw8L0E+PGJy
PgorPEEgTkFNRT0yLjQuNz5UaHJlYXRlbiBoaXMgYmxvb2R5IHN0YWdlOiBieSB0aGUgY2xvY2ss
ICd0aXMgZGF5LDwvQT48YnI+Cis8QSBOQU1FPTIuNC44PkFuZCB5ZXQgZGFyayBuaWdodCBzdHJh
bmdsZXMgdGhlIHRyYXZlbGxpbmcgbGFtcDo8L0E+PGJyPgorPEEgTkFNRT0yLjQuOT5Jcyd0IG5p
Z2h0J3MgcHJlZG9taW5hbmNlLCBvciB0aGUgZGF5J3Mgc2hhbWUsPC9BPjxicj4KKzxBIE5BTUU9
Mi40LjEwPlRoYXQgZGFya25lc3MgZG9lcyB0aGUgZmFjZSBvZiBlYXJ0aCBlbnRvbWIsPC9BPjxi
cj4KKzxBIE5BTUU9Mi40LjExPldoZW4gbGl2aW5nIGxpZ2h0IHNob3VsZCBraXNzIGl0PzwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5PbGQgTWFuPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjQuMTI+J1RpcyB1bm5hdHVyYWwsPC9BPjxicj4KKzxB
IE5BTUU9Mi40LjEzPkV2ZW4gbGlrZSB0aGUgZGVlZCB0aGF0J3MgZG9uZS4gT24gVHVlc2RheSBs
YXN0LDwvQT48YnI+Cis8QSBOQU1FPTIuNC4xND5BIGZhbGNvbiwgdG93ZXJpbmcgaW4gaGVyIHBy
aWRlIG9mIHBsYWNlLDwvQT48YnI+Cis8QSBOQU1FPTIuNC4xNT5XYXMgYnkgYSBtb3VzaW5nIG93
bCBoYXdrJ2QgYXQgYW5kIGtpbGwnZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDQ+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjE2PkFu
ZCBEdW5jYW4ncyBob3JzZXMtLWEgdGhpbmcgbW9zdCBzdHJhbmdlIGFuZCBjZXJ0YWluLS08L0E+
PGJyPgorPEEgTkFNRT0yLjQuMTc+QmVhdXRlb3VzIGFuZCBzd2lmdCwgdGhlIG1pbmlvbnMgb2Yg
dGhlaXIgcmFjZSw8L0E+PGJyPgorPEEgTkFNRT0yLjQuMTg+VHVybidkIHdpbGQgaW4gbmF0dXJl
LCBicm9rZSB0aGVpciBzdGFsbHMsIGZsdW5nIG91dCw8L0E+PGJyPgorPEEgTkFNRT0yLjQuMTk+
Q29udGVuZGluZyAnZ2FpbnN0IG9iZWRpZW5jZSwgYXMgdGhleSB3b3VsZCBtYWtlPC9BPjxicj4K
KzxBIE5BTUU9Mi40LjIwPldhciB3aXRoIG1hbmtpbmQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g1PjxiPk9sZCBNYW48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTIuNC4yMT4nVGlzIHNhaWQgdGhleSBlYXQgZWFjaCBvdGhlci48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9Mi40LjIyPlRoZXkgZGlkIHNvLCB0byB0aGUgYW1hemVtZW50IG9mIG1pbmUgZXll
czwvQT48YnI+Cis8QSBOQU1FPTIuNC4yMz5UaGF0IGxvb2snZCB1cG9uJ3QuIEhlcmUgY29tZXMg
dGhlIGdvb2QgTWFjZHVmZi48L0E+PGJyPgorPHA+PGk+RW50ZXIgTUFDRFVGRjwvaT48L3A+Cis8
QSBOQU1FPTIuNC4yND5Ib3cgZ29lcyB0aGUgd29ybGQsIHNpciwgbm93PzwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNz48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0yLjQuMjU+V2h5LCBzZWUgeW91IG5vdD88L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9Mi40LjI2PklzJ3Qga25vd24gd2hvIGRpZCB0aGlzIG1vcmUgdGhhbiBibG9vZHkgZGVl
ZD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+TUFDRFVGRjwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjI3PlRob3NlIHRoYXQgTWFjYmV0aCBo
YXRoIHNsYWluLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+
Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjI4PkFsYXMsIHRoZSBkYXkh
PC9BPjxicj4KKzxBIE5BTUU9Mi40LjI5PldoYXQgZ29vZCBjb3VsZCB0aGV5IHByZXRlbmQ/PC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5NQUNEVUZGPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjQuMzA+VGhleSB3ZXJlIHN1Ym9ybidkOjwvQT48
YnI+Cis8QSBOQU1FPTIuNC4zMT5NYWxjb2xtIGFuZCBEb25hbGJhaW4sIHRoZSBraW5nJ3MgdHdv
IHNvbnMsPC9BPjxicj4KKzxBIE5BTUU9Mi40LjMyPkFyZSBzdG9sJ24gYXdheSBhbmQgZmxlZDsg
d2hpY2ggcHV0cyB1cG9uIHRoZW08L0E+PGJyPgorPEEgTkFNRT0yLjQuMzM+U3VzcGljaW9uIG9m
IHRoZSBkZWVkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+
Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjM0PidHYWluc3QgbmF0dXJl
IHN0aWxsITwvQT48YnI+Cis8QSBOQU1FPTIuNC4zNT5UaHJpZnRsZXNzIGFtYml0aW9uLCB0aGF0
IHdpbHQgcmF2aW4gdXA8L0E+PGJyPgorPEEgTkFNRT0yLjQuMzY+VGhpbmUgb3duIGxpZmUncyBt
ZWFucyEgVGhlbiAndGlzIG1vc3QgbGlrZTwvQT48YnI+Cis8QSBOQU1FPTIuNC4zNz5UaGUgc292
ZXJlaWdudHkgd2lsbCBmYWxsIHVwb24gTWFjYmV0aC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDEzPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTIuNC4zOD5IZSBpcyBhbHJlYWR5IG5hbWVkLCBhbmQgZ29uZSB0byBTY29uZTwvQT48YnI+
Cis8QSBOQU1FPTIuNC4zOT5UbyBiZSBpbnZlc3RlZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDE0PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTIuNC40MD4gICAgICAgICAgICAgICAgICBXaGVyZSBpcyBEdW5jYW4ncyBib2R5PzwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTU+PGI+TUFDRFVGRjwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjQxPkNhcnJpZWQgdG8gQ29sbWVraWxsLDwvQT48YnI+
Cis8QSBOQU1FPTIuNC40Mj5UaGUgc2FjcmVkIHN0b3JlaG91c2Ugb2YgaGlzIHByZWRlY2Vzc29y
cyw8L0E+PGJyPgorPEEgTkFNRT0yLjQuNDM+QW5kIGd1YXJkaWFuIG9mIHRoZWlyIGJvbmVzLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTY+PGI+Uk9TUzwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjQ0PldpbGwgeW91IHRvIFNjb25lPzwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+TUFDRFVGRjwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9Mi40LjQ1Pk5vLCBjb3VzaW4sIEknbGwgdG8gRmlmZS48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE4PjxiPlJPU1M8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuNC40Nj5XZWxsLCBJIHdpbGwgdGhpdGhlci48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE5PjxiPk1BQ0RVRkY8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTIuNC40Nz5XZWxsLCBtYXkgeW91IHNlZSB0aGluZ3Mgd2Vs
bCBkb25lIHRoZXJlOiBhZGlldSE8L0E+PGJyPgorPEEgTkFNRT0yLjQuNDg+TGVzdCBvdXIgb2xk
IHJvYmVzIHNpdCBlYXNpZXIgdGhhbiBvdXIgbmV3ITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMjA+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
Mi40LjQ5PkZhcmV3ZWxsLCBmYXRoZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gyMT48Yj5PbGQgTWFuPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0yLjQu
NTA+R29kJ3MgYmVuaXNvbiBnbyB3aXRoIHlvdTsgYW5kIHdpdGggdGhvc2U8L0E+PGJyPgorPEEg
TkFNRT0yLjQuNTE+VGhhdCB3b3VsZCBtYWtlIGdvb2Qgb2YgYmFkLCBhbmQgZnJpZW5kcyBvZiBm
b2VzITwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPjxwPgorPEgz
PkFDVCBJSUk8L2gzPgorPGgzPlNDRU5FIEkuIEZvcnJlcy4gVGhlIHBhbGFjZS48L2gzPgorPHA+
PGJsb2NrcXVvdGU+Cis8aT5FbnRlciBCQU5RVU88L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMT48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4x
PlRob3UgaGFzdCBpdCBub3c6IGtpbmcsIENhd2RvciwgR2xhbWlzLCBhbGwsPC9BPjxicj4KKzxB
IE5BTUU9My4xLjI+QXMgdGhlIHdlaXJkIHdvbWVuIHByb21pc2VkLCBhbmQsIEkgZmVhciw8L0E+
PGJyPgorPEEgTkFNRT0zLjEuMz5UaG91IHBsYXknZHN0IG1vc3QgZm91bGx5IGZvcid0OiB5ZXQg
aXQgd2FzIHNhaWQ8L0E+PGJyPgorPEEgTkFNRT0zLjEuND5JdCBzaG91bGQgbm90IHN0YW5kIGlu
IHRoeSBwb3N0ZXJpdHksPC9BPjxicj4KKzxBIE5BTUU9My4xLjU+QnV0IHRoYXQgbXlzZWxmIHNo
b3VsZCBiZSB0aGUgcm9vdCBhbmQgZmF0aGVyPC9BPjxicj4KKzxBIE5BTUU9My4xLjY+T2YgbWFu
eSBraW5ncy4gSWYgdGhlcmUgY29tZSB0cnV0aCBmcm9tIHRoZW0tLTwvQT48YnI+Cis8QSBOQU1F
PTMuMS43PkFzIHVwb24gdGhlZSwgTWFjYmV0aCwgdGhlaXIgc3BlZWNoZXMgc2hpbmUtLTwvQT48
YnI+Cis8QSBOQU1FPTMuMS44PldoeSwgYnkgdGhlIHZlcml0aWVzIG9uIHRoZWUgbWFkZSBnb29k
LDwvQT48YnI+Cis8QSBOQU1FPTMuMS45Pk1heSB0aGV5IG5vdCBiZSBteSBvcmFjbGVzIGFzIHdl
bGwsPC9BPjxicj4KKzxBIE5BTUU9My4xLjEwPkFuZCBzZXQgbWUgdXAgaW4gaG9wZT8gQnV0IGh1
c2ghIG5vIG1vcmUuPC9BPjxicj4KKzxwPjxpPlNlbm5ldCBzb3VuZGVkLiBFbnRlciBNQUNCRVRI
LCBhcyBraW5nLCBMQURZICBNQUNCRVRILCBhcyBxdWVlbiwgTEVOTk9YLCBST1NTLCBMb3Jkcywg
TGFkaWVzLCBhbmQgQXR0ZW5kYW50czwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMj48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMTE+
SGVyZSdzIG91ciBjaGllZiBndWVzdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDM+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0z
LjEuMTI+SWYgaGUgaGFkIGJlZW4gZm9yZ290dGVuLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMz5J
dCBoYWQgYmVlbiBhcyBhIGdhcCBpbiBvdXIgZ3JlYXQgZmVhc3QsPC9BPjxicj4KKzxBIE5BTUU9
My4xLjE0PkFuZCBhbGwtdGhpbmcgdW5iZWNvbWluZy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDQ+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9My4xLjE1PlRvLW5pZ2h0IHdlIGhvbGQgYSBzb2xlbW4gc3VwcGVyIHNpciw8L0E+PGJyPgor
PEEgTkFNRT0zLjEuMTY+QW5kIEknbGwgcmVxdWVzdCB5b3VyIHByZXNlbmNlLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTMuMS4xNz5MZXQgeW91ciBoaWdobmVzczwvQT48YnI+Cis8QSBOQU1F
PTMuMS4xOD5Db21tYW5kIHVwb24gbWU7IHRvIHRoZSB3aGljaCBteSBkdXRpZXM8L0E+PGJyPgor
PEEgTkFNRT0zLjEuMTk+QXJlIHdpdGggYSBtb3N0IGluZGlzc29sdWJsZSB0aWU8L0E+PGJyPgor
PEEgTkFNRT0zLjEuMjA+Rm9yIGV2ZXIga25pdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDY+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My4xLjIxPiAgICAgICAgICAgICAgICAgIFJpZGUgeW91IHRoaXMgYWZ0ZXJub29uPzwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNz48Yj5CQU5RVU88L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4yMj5BeSwgbXkgZ29vZCBsb3JkLjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjEuMjM+V2Ugc2hvdWxkIGhhdmUgZWxzZSBkZXNpcmVkIHlvdXIgZ29v
ZCBhZHZpY2UsPC9BPjxicj4KKzxBIE5BTUU9My4xLjI0PldoaWNoIHN0aWxsIGhhdGggYmVlbiBi
b3RoIGdyYXZlIGFuZCBwcm9zcGVyb3VzLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4yNT5JbiB0aGlz
IGRheSdzIGNvdW5jaWw7IGJ1dCB3ZSdsbCB0YWtlIHRvLW1vcnJvdy48L0E+PGJyPgorPEEgTkFN
RT0zLjEuMjY+SXMndCBmYXIgeW91IHJpZGU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g5PjxiPkJBTlFVTzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4x
LjI3PkFzIGZhciwgbXkgbG9yZCwgYXMgd2lsbCBmaWxsIHVwIHRoZSB0aW1lPC9BPjxicj4KKzxB
IE5BTUU9My4xLjI4PidUd2l4dCB0aGlzIGFuZCBzdXBwZXI6IGdvIG5vdCBteSBob3JzZSB0aGUg
YmV0dGVyLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4yOT5JIG11c3QgYmVjb21lIGEgYm9ycm93ZXIg
b2YgdGhlIG5pZ2h0PC9BPjxicj4KKzxBIE5BTUU9My4xLjMwPkZvciBhIGRhcmsgaG91ciBvciB0
d2Fpbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4zMT5GYWlsIG5vdCBvdXIgZmVh
c3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5CQU5RVU88
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4zMj5NeSBsb3JkLCBJIHdpbGwgbm90
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+TUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjMzPldlIGhlYXIsIG91ciBibG9vZHkg
Y291c2lucyBhcmUgYmVzdG93J2Q8L0E+PGJyPgorPEEgTkFNRT0zLjEuMzQ+SW4gRW5nbGFuZCBh
bmQgaW4gSXJlbGFuZCwgbm90IGNvbmZlc3Npbmc8L0E+PGJyPgorPEEgTkFNRT0zLjEuMzU+VGhl
aXIgY3J1ZWwgcGFycmljaWRlLCBmaWxsaW5nIHRoZWlyIGhlYXJlcnM8L0E+PGJyPgorPEEgTkFN
RT0zLjEuMzY+V2l0aCBzdHJhbmdlIGludmVudGlvbjogYnV0IG9mIHRoYXQgdG8tbW9ycm93LDwv
QT48YnI+Cis8QSBOQU1FPTMuMS4zNz5XaGVuIHRoZXJld2l0aGFsIHdlIHNoYWxsIGhhdmUgY2F1
c2Ugb2Ygc3RhdGU8L0E+PGJyPgorPEEgTkFNRT0zLjEuMzg+Q3JhdmluZyB1cyBqb2ludGx5LiBI
aWUgeW91IHRvIGhvcnNlOiBhZGlldSw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMzk+VGlsbCB5b3Ug
cmV0dXJuIGF0IG5pZ2h0LiBHb2VzIEZsZWFuY2Ugd2l0aCB5b3U/PC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTMuMS40MD5BeSwgbXkgZ29vZCBsb3JkOiBvdXIgdGltZSBkb2VzIGNhbGwgdXBv
biAncy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS40MT5JIHdpc2ggeW91ciBob3Jz
ZXMgc3dpZnQgYW5kIHN1cmUgb2YgZm9vdDs8L0E+PGJyPgorPEEgTkFNRT0zLjEuNDI+QW5kIHNv
IEkgZG8gY29tbWVuZCB5b3UgdG8gdGhlaXIgYmFja3MuIEZhcmV3ZWxsLjwvQT48YnI+Cis8cD48
aT5FeGl0IEJBTlFVTzwvaT48L3A+Cis8QSBOQU1FPTMuMS40Mz5MZXQgZXZlcnkgbWFuIGJlIG1h
c3RlciBvZiBoaXMgdGltZTwvQT48YnI+Cis8QSBOQU1FPTMuMS40ND5UaWxsIHNldmVuIGF0IG5p
Z2h0OiB0byBtYWtlIHNvY2lldHk8L0E+PGJyPgorPEEgTkFNRT0zLjEuNDU+VGhlIHN3ZWV0ZXIg
d2VsY29tZSwgd2Ugd2lsbCBrZWVwIG91cnNlbGY8L0E+PGJyPgorPEEgTkFNRT0zLjEuNDY+VGls
bCBzdXBwZXItdGltZSBhbG9uZTogd2hpbGUgdGhlbiwgR29kIGJlIHdpdGggeW91ITwvQT48YnI+
Cis8cD48aT5FeGV1bnQgYWxsIGJ1dCBNQUNCRVRILCBhbmQgYW4gYXR0ZW5kYW50PC9pPjwvcD4K
KzxBIE5BTUU9My4xLjQ3PlNpcnJhaCwgYSB3b3JkIHdpdGggeW91OiBhdHRlbmQgdGhvc2UgbWVu
PC9BPjxicj4KKzxBIE5BTUU9My4xLjQ4Pk91ciBwbGVhc3VyZT88L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDE1PjxiPkFUVEVOREFOVDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9My4xLjQ5PlRoZXkgYXJlLCBteSBsb3JkLCB3aXRob3V0IHRoZSBwYWxhY2Ug
Z2F0ZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2PjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS41MD5CcmluZyB0aGVtIGJlZm9y
ZSB1cy48L0E+PGJyPgorPHA+PGk+RXhpdCBBdHRlbmRhbnQ8L2k+PC9wPgorPEEgTkFNRT0zLjEu
NTE+VG8gYmUgdGh1cyBpcyBub3RoaW5nOzwvQT48YnI+Cis8QSBOQU1FPTMuMS41Mj5CdXQgdG8g
YmUgc2FmZWx5IHRodXMuLS1PdXIgZmVhcnMgaW4gQmFucXVvPC9BPjxicj4KKzxBIE5BTUU9My4x
LjUzPlN0aWNrIGRlZXA7IGFuZCBpbiBoaXMgcm95YWx0eSBvZiBuYXR1cmU8L0E+PGJyPgorPEEg
TkFNRT0zLjEuNTQ+UmVpZ25zIHRoYXQgd2hpY2ggd291bGQgYmUgZmVhcidkOiAndGlzIG11Y2gg
aGUgZGFyZXM7PC9BPjxicj4KKzxBIE5BTUU9My4xLjU1PkFuZCwgdG8gdGhhdCBkYXVudGxlc3Mg
dGVtcGVyIG9mIGhpcyBtaW5kLDwvQT48YnI+Cis8QSBOQU1FPTMuMS41Nj5IZSBoYXRoIGEgd2lz
ZG9tIHRoYXQgZG90aCBndWlkZSBoaXMgdmFsb3VyPC9BPjxicj4KKzxBIE5BTUU9My4xLjU3PlRv
IGFjdCBpbiBzYWZldHkuIFRoZXJlIGlzIG5vbmUgYnV0IGhlPC9BPjxicj4KKzxBIE5BTUU9My4x
LjU4Pldob3NlIGJlaW5nIEkgZG8gZmVhcjogYW5kLCB1bmRlciBoaW0sPC9BPjxicj4KKzxBIE5B
TUU9My4xLjU5Pk15IEdlbml1cyBpcyByZWJ1a2VkOyBhcywgaXQgaXMgc2FpZCw8L0E+PGJyPgor
PEEgTkFNRT0zLjEuNjA+TWFyayBBbnRvbnkncyB3YXMgYnkgQ2Flc2FyLiBIZSBjaGlkIHRoZSBz
aXN0ZXJzPC9BPjxicj4KKzxBIE5BTUU9My4xLjYxPldoZW4gZmlyc3QgdGhleSBwdXQgdGhlIG5h
bWUgb2Yga2luZyB1cG9uIG1lLDwvQT48YnI+Cis8QSBOQU1FPTMuMS42Mj5BbmQgYmFkZSB0aGVt
IHNwZWFrIHRvIGhpbTogdGhlbiBwcm9waGV0LWxpa2U8L0E+PGJyPgorPEEgTkFNRT0zLjEuNjM+
VGhleSBoYWlsJ2QgaGltIGZhdGhlciB0byBhIGxpbmUgb2Yga2luZ3M6PC9BPjxicj4KKzxBIE5B
TUU9My4xLjY0PlVwb24gbXkgaGVhZCB0aGV5IHBsYWNlZCBhIGZydWl0bGVzcyBjcm93biw8L0E+
PGJyPgorPEEgTkFNRT0zLjEuNjU+QW5kIHB1dCBhIGJhcnJlbiBzY2VwdHJlIGluIG15IGdyaXBl
LDwvQT48YnI+Cis8QSBOQU1FPTMuMS42Nj5UaGVuY2UgdG8gYmUgd3JlbmNoJ2Qgd2l0aCBhbiB1
bmxpbmVhbCBoYW5kLDwvQT48YnI+Cis8QSBOQU1FPTMuMS42Nz5ObyBzb24gb2YgbWluZSBzdWNj
ZWVkaW5nLiBJZiAndCBiZSBzbyw8L0E+PGJyPgorPEEgTkFNRT0zLjEuNjg+Rm9yIEJhbnF1bydz
IGlzc3VlIGhhdmUgSSBmaWxlZCBteSBtaW5kOzwvQT48YnI+Cis8QSBOQU1FPTMuMS42OT5Gb3Ig
dGhlbSB0aGUgZ3JhY2lvdXMgRHVuY2FuIGhhdmUgSSBtdXJkZXInZDs8L0E+PGJyPgorPEEgTkFN
RT0zLjEuNzA+UHV0IHJhbmNvdXJzIGluIHRoZSB2ZXNzZWwgb2YgbXkgcGVhY2U8L0E+PGJyPgor
PEEgTkFNRT0zLjEuNzE+T25seSBmb3IgdGhlbTsgYW5kIG1pbmUgZXRlcm5hbCBqZXdlbDwvQT48
YnI+Cis8QSBOQU1FPTMuMS43Mj5HaXZlbiB0byB0aGUgY29tbW9uIGVuZW15IG9mIG1hbiw8L0E+
PGJyPgorPEEgTkFNRT0zLjEuNzM+VG8gbWFrZSB0aGVtIGtpbmdzLCB0aGUgc2VlZCBvZiBCYW5x
dW8ga2luZ3MhPC9BPjxicj4KKzxBIE5BTUU9My4xLjc0PlJhdGhlciB0aGFuIHNvLCBjb21lIGZh
dGUgaW50byB0aGUgbGlzdC48L0E+PGJyPgorPEEgTkFNRT0zLjEuNzU+QW5kIGNoYW1waW9uIG1l
IHRvIHRoZSB1dHRlcmFuY2UhIFdobydzIHRoZXJlITwvQT48YnI+Cis8cD48aT5SZS1lbnRlciBB
dHRlbmRhbnQsIHdpdGggdHdvIE11cmRlcmVyczwvaT48L3A+Cis8QSBOQU1FPTMuMS43Nj5Ob3cg
Z28gdG8gdGhlIGRvb3IsIGFuZCBzdGF5IHRoZXJlIHRpbGwgd2UgY2FsbC48L0E+PGJyPgorPHA+
PGk+RXhpdCBBdHRlbmRhbnQ8L2k+PC9wPgorPEEgTkFNRT0zLjEuNzc+V2FzIGl0IG5vdCB5ZXN0
ZXJkYXkgd2Ugc3Bva2UgdG9nZXRoZXI/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gxNz48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9My4xLjc4Pkl0IHdhcywgc28gcGxlYXNlIHlvdXIgaGlnaG5lc3MuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjEuNzk+V2VsbCB0aGVuLCBub3c8L0E+PGJyPgorPEEgTkFNRT0zLjEu
ODA+SGF2ZSB5b3UgY29uc2lkZXInZCBvZiBteSBzcGVlY2hlcz8gS25vdzwvQT48YnI+Cis8QSBO
QU1FPTMuMS44MT5UaGF0IGl0IHdhcyBoZSBpbiB0aGUgdGltZXMgcGFzdCB3aGljaCBoZWxkIHlv
dTwvQT48YnI+Cis8QSBOQU1FPTMuMS44Mj5TbyB1bmRlciBmb3J0dW5lLCB3aGljaCB5b3UgdGhv
dWdodCBoYWQgYmVlbjwvQT48YnI+Cis8QSBOQU1FPTMuMS44Mz5PdXIgaW5ub2NlbnQgc2VsZjog
dGhpcyBJIG1hZGUgZ29vZCB0byB5b3U8L0E+PGJyPgorPEEgTkFNRT0zLjEuODQ+SW4gb3VyIGxh
c3QgY29uZmVyZW5jZSwgcGFzcydkIGluIHByb2JhdGlvbiB3aXRoIHlvdSw8L0E+PGJyPgorPEEg
TkFNRT0zLjEuODU+SG93IHlvdSB3ZXJlIGJvcm5lIGluIGhhbmQsIGhvdyBjcm9zcydkLDwvQT48
YnI+Cis8QSBOQU1FPTMuMS44Nj50aGUgaW5zdHJ1bWVudHMsPC9BPjxicj4KKzxBIE5BTUU9My4x
Ljg3PldobyB3cm91Z2h0IHdpdGggdGhlbSwgYW5kIGFsbCB0aGluZ3MgZWxzZSB0aGF0IG1pZ2h0
PC9BPjxicj4KKzxBIE5BTUU9My4xLjg4PlRvIGhhbGYgYSBzb3VsIGFuZCB0byBhIG5vdGlvbiBj
cmF6ZWQ8L0E+PGJyPgorPEEgTkFNRT0zLjEuODk+U2F5ICdUaHVzIGRpZCBCYW5xdW8uJzwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTk+PGI+Rmlyc3QgTXVyZGVyZXI8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS45MD5Zb3UgbWFkZSBpdCBrbm93biB0
byB1cy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIwPjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS45MT5JIGRpZCBzbywgYW5kIHdl
bnQgZnVydGhlciwgd2hpY2ggaXMgbm93PC9BPjxicj4KKzxBIE5BTUU9My4xLjkyPk91ciBwb2lu
dCBvZiBzZWNvbmQgbWVldGluZy4gRG8geW91IGZpbmQ8L0E+PGJyPgorPEEgTkFNRT0zLjEuOTM+
WW91ciBwYXRpZW5jZSBzbyBwcmVkb21pbmFudCBpbiB5b3VyIG5hdHVyZTwvQT48YnI+Cis8QSBO
QU1FPTMuMS45ND5UaGF0IHlvdSBjYW4gbGV0IHRoaXMgZ28/IEFyZSB5b3Ugc28gZ29zcGVsbCdk
PC9BPjxicj4KKzxBIE5BTUU9My4xLjk1PlRvIHByYXkgZm9yIHRoaXMgZ29vZCBtYW4gYW5kIGZv
ciBoaXMgaXNzdWUsPC9BPjxicj4KKzxBIE5BTUU9My4xLjk2Pldob3NlIGhlYXZ5IGhhbmQgaGF0
aCBib3cnZCB5b3UgdG8gdGhlIGdyYXZlPC9BPjxicj4KKzxBIE5BTUU9My4xLjk3PkFuZCBiZWdn
YXInZCB5b3VycyBmb3IgZXZlcj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDIxPjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0z
LjEuOTg+V2UgYXJlIG1lbiwgbXkgbGllZ2UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2gyMj48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0z
LjEuOTk+QXksIGluIHRoZSBjYXRhbG9ndWUgeWUgZ28gZm9yIG1lbjs8L0E+PGJyPgorPEEgTkFN
RT0zLjEuMTAwPkFzIGhvdW5kcyBhbmQgZ3JleWhvdW5kcywgbW9uZ3JlbHMsIHNwYW5pZWxzLCBj
dXJzLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMDE+U2hvdWdocywgd2F0ZXItcnVncyBhbmQgZGVt
aS13b2x2ZXMsIGFyZSBjbGVwdDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMDI+QWxsIGJ5IHRoZSBu
YW1lIG9mIGRvZ3M6IHRoZSB2YWx1ZWQgZmlsZTwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMDM+RGlz
dGluZ3Vpc2hlcyB0aGUgc3dpZnQsIHRoZSBzbG93LCB0aGUgc3VidGxlLDwvQT48YnI+Cis8QSBO
QU1FPTMuMS4xMDQ+VGhlIGhvdXNla2VlcGVyLCB0aGUgaHVudGVyLCBldmVyeSBvbmU8L0E+PGJy
PgorPEEgTkFNRT0zLjEuMTA1PkFjY29yZGluZyB0byB0aGUgZ2lmdCB3aGljaCBib3VudGVvdXMg
bmF0dXJlPC9BPjxicj4KKzxBIE5BTUU9My4xLjEwNj5IYXRoIGluIGhpbSBjbG9zZWQ7IHdoZXJl
YnkgaGUgZG9lcyByZWNlaXZlPC9BPjxicj4KKzxBIE5BTUU9My4xLjEwNz5QYXJ0aWN1bGFyIGFk
ZGl0aW9uLiBmcm9tIHRoZSBiaWxsPC9BPjxicj4KKzxBIE5BTUU9My4xLjEwOD5UaGF0IHdyaXRl
cyB0aGVtIGFsbCBhbGlrZTogYW5kIHNvIG9mIG1lbi48L0E+PGJyPgorPEEgTkFNRT0zLjEuMTA5
Pk5vdywgaWYgeW91IGhhdmUgYSBzdGF0aW9uIGluIHRoZSBmaWxlLDwvQT48YnI+Cis8QSBOQU1F
PTMuMS4xMTA+Tm90IGknIHRoZSB3b3JzdCByYW5rIG9mIG1hbmhvb2QsIHNheSAndDs8L0E+PGJy
PgorPEEgTkFNRT0zLjEuMTExPkFuZCBJIHdpbGwgcHV0IHRoYXQgYnVzaW5lc3MgaW4geW91ciBi
b3NvbXMsPC9BPjxicj4KKzxBIE5BTUU9My4xLjExMj5XaG9zZSBleGVjdXRpb24gdGFrZXMgeW91
ciBlbmVteSBvZmYsPC9BPjxicj4KKzxBIE5BTUU9My4xLjExMz5HcmFwcGxlcyB5b3UgdG8gdGhl
IGhlYXJ0IGFuZCBsb3ZlIG9mIHVzLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMTQ+V2hvIHdlYXIg
b3VyIGhlYWx0aCBidXQgc2lja2x5IGluIGhpcyBsaWZlLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4x
MTU+V2hpY2ggaW4gaGlzIGRlYXRoIHdlcmUgcGVyZmVjdC48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDIzPjxiPlNlY29uZCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9My4xLjExNj5JIGFtIG9uZSwgbXkgbGllZ2UsPC9BPjxicj4KKzxBIE5B
TUU9My4xLjExNz5XaG9tIHRoZSB2aWxlIGJsb3dzIGFuZCBidWZmZXRzIG9mIHRoZSB3b3JsZDwv
QT48YnI+Cis8QSBOQU1FPTMuMS4xMTg+SGF2ZSBzbyBpbmNlbnNlZCB0aGF0IEkgYW0gcmVja2xl
c3Mgd2hhdDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMTk+SSBkbyB0byBzcGl0ZSB0aGUgd29ybGQu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyND48Yj5GaXJzdCBNdXJk
ZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4xLjEyMD5BbmQgSSBhbm90aGVy
PC9BPjxicj4KKzxBIE5BTUU9My4xLjEyMT5TbyB3ZWFyeSB3aXRoIGRpc2FzdGVycywgdHVnZydk
IHdpdGggZm9ydHVuZSw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTIyPlRoYXQgSSB3b3VsZCBzZXQg
bXkgbGllIG9uIGFueSBjaGFuY2UsPC9BPjxicj4KKzxBIE5BTUU9My4xLjEyMz5UbyBtZW5kIGl0
LCBvciBiZSByaWQgb24ndC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDI1PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4xMjQ+Qm90
aCBvZiB5b3U8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTI1Pktub3cgQmFucXVvIHdhcyB5b3VyIGVu
ZW15LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjY+PGI+Qm90aCBN
dXJkZXJlcnM8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4xMjY+VHJ1ZSwgbXkg
bG9yZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI3PjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4xMjc+U28gaXMgaGUgbWluZTsg
YW5kIGluIHN1Y2ggYmxvb2R5IGRpc3RhbmNlLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMjg+VGhh
dCBldmVyeSBtaW51dGUgb2YgaGlzIGJlaW5nIHRocnVzdHM8L0E+PGJyPgorPEEgTkFNRT0zLjEu
MTI5PkFnYWluc3QgbXkgbmVhcidzdCBvZiBsaWZlOiBhbmQgdGhvdWdoIEkgY291bGQ8L0E+PGJy
PgorPEEgTkFNRT0zLjEuMTMwPldpdGggYmFyZWZhY2VkIHBvd2VyIHN3ZWVwIGhpbSBmcm9tIG15
IHNpZ2h0PC9BPjxicj4KKzxBIE5BTUU9My4xLjEzMT5BbmQgYmlkIG15IHdpbGwgYXZvdWNoIGl0
LCB5ZXQgSSBtdXN0IG5vdCw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTMyPkZvciBjZXJ0YWluIGZy
aWVuZHMgdGhhdCBhcmUgYm90aCBoaXMgYW5kIG1pbmUsPC9BPjxicj4KKzxBIE5BTUU9My4xLjEz
Mz5XaG9zZSBsb3ZlcyBJIG1heSBub3QgZHJvcCwgYnV0IHdhaWwgaGlzIGZhbGw8L0E+PGJyPgor
PEEgTkFNRT0zLjEuMTM0PldobyBJIG15c2VsZiBzdHJ1Y2sgZG93bjsgYW5kIHRoZW5jZSBpdCBp
cyw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTM1PlRoYXQgSSB0byB5b3VyIGFzc2lzdGFuY2UgZG8g
bWFrZSBsb3ZlLDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMzY+TWFza2luZyB0aGUgYnVzaW5lc3Mg
ZnJvbSB0aGUgY29tbW9uIGV5ZTwvQT48YnI+Cis8QSBOQU1FPTMuMS4xMzc+Rm9yIHN1bmRyeSB3
ZWlnaHR5IHJlYXNvbnMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gy
OD48Yj5TZWNvbmQgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4x
Mzg+V2Ugc2hhbGwsIG15IGxvcmQsPC9BPjxicj4KKzxBIE5BTUU9My4xLjEzOT5QZXJmb3JtIHdo
YXQgeW91IGNvbW1hbmQgdXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gyOT48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4x
LjE0MD5UaG91Z2ggb3VyIGxpdmVzLS08L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDMwPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4x
NDE+WW91ciBzcGlyaXRzIHNoaW5lIHRocm91Z2ggeW91LiBXaXRoaW4gdGhpcyBob3VyIGF0IG1v
c3Q8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTQyPkkgd2lsbCBhZHZpc2UgeW91IHdoZXJlIHRvIHBs
YW50IHlvdXJzZWx2ZXM7PC9BPjxicj4KKzxBIE5BTUU9My4xLjE0Mz5BY3F1YWludCB5b3Ugd2l0
aCB0aGUgcGVyZmVjdCBzcHkgbycgdGhlIHRpbWUsPC9BPjxicj4KKzxBIE5BTUU9My4xLjE0ND5U
aGUgbW9tZW50IG9uJ3Q7IGZvcid0IG11c3QgYmUgZG9uZSB0by1uaWdodCw8L0E+PGJyPgorPEEg
TkFNRT0zLjEuMTQ1PkFuZCBzb21ldGhpbmcgZnJvbSB0aGUgcGFsYWNlOyBhbHdheXMgdGhvdWdo
dDwvQT48YnI+Cis8QSBOQU1FPTMuMS4xNDY+VGhhdCBJIHJlcXVpcmUgYSBjbGVhcm5lc3M6IGFu
ZCB3aXRoIGhpbS0tPC9BPjxicj4KKzxBIE5BTUU9My4xLjE0Nz5UbyBsZWF2ZSBubyBydWJzIG5v
ciBib3RjaGVzIGluIHRoZSB3b3JrLS08L0E+PGJyPgorPEEgTkFNRT0zLjEuMTQ4PkZsZWFuY2Ug
aGlzIHNvbiwgdGhhdCBrZWVwcyBoaW0gY29tcGFueSw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTQ5
Pldob3NlIGFic2VuY2UgaXMgbm8gbGVzcyBtYXRlcmlhbCB0byBtZTwvQT48YnI+Cis8QSBOQU1F
PTMuMS4xNTA+VGhhbiBpcyBoaXMgZmF0aGVyJ3MsIG11c3QgZW1icmFjZSB0aGUgZmF0ZTwvQT48
YnI+Cis8QSBOQU1FPTMuMS4xNTE+T2YgdGhhdCBkYXJrIGhvdXIuIFJlc29sdmUgeW91cnNlbHZl
cyBhcGFydDo8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTUyPkknbGwgY29tZSB0byB5b3UgYW5vbi48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMxPjxiPkJvdGggTXVyZGVy
ZXJzPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjEuMTUzPldlIGFyZSByZXNvbHZl
ZCwgbXkgbG9yZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMyPjxi
Pk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMS4xNTQ+SSdsbCBjYWxs
IHVwb24geW91IHN0cmFpZ2h0OiBhYmlkZSB3aXRoaW4uPC9BPjxicj4KKzxwPjxpPkV4ZXVudCBN
dXJkZXJlcnM8L2k+PC9wPgorPEEgTkFNRT0zLjEuMTU1Pkl0IGlzIGNvbmNsdWRlZC4gQmFucXVv
LCB0aHkgc291bCdzIGZsaWdodCw8L0E+PGJyPgorPEEgTkFNRT0zLjEuMTU2PklmIGl0IGZpbmQg
aGVhdmVuLCBtdXN0IGZpbmQgaXQgb3V0IHRvLW5pZ2h0LjwvQT48YnI+Cis8cD48aT5FeGl0PC9p
PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBJSS4gVGhlIHBhbGFjZS48L2gzPgorPHA+
PGJsb2NrcXVvdGU+Cis8aT5FbnRlciBMQURZIE1BQ0JFVEggYW5kIGEgU2VydmFudDwvaT4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjE+SXMgQmFucXVvIGdvbmUgZnJvbSBjb3VydD88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+U2VydmFudDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjI+QXksIG1hZGFtLCBidXQgcmV0dXJucyBhZ2Fp
biB0by1uaWdodC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+
TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjIuMz5TYXkgdG8g
dGhlIGtpbmcsIEkgd291bGQgYXR0ZW5kIGhpcyBsZWlzdXJlPC9BPjxicj4KKzxBIE5BTUU9My4y
LjQ+Rm9yIGEgZmV3IHdvcmRzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoND48Yj5TZXJ2YW50PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjIuNT4gICAg
ICAgICAgICAgICAgICBNYWRhbSwgSSB3aWxsLjwvQT48YnI+Cis8cD48aT5FeGl0PC9pPjwvcD4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjY+Tm91Z2h0J3MgaGFkLCBhbGwncyBzcGVudCw8
L0E+PGJyPgorPEEgTkFNRT0zLjIuNz5XaGVyZSBvdXIgZGVzaXJlIGlzIGdvdCB3aXRob3V0IGNv
bnRlbnQ6PC9BPjxicj4KKzxBIE5BTUU9My4yLjg+J1RpcyBzYWZlciB0byBiZSB0aGF0IHdoaWNo
IHdlIGRlc3Ryb3k8L0E+PGJyPgorPEEgTkFNRT0zLjIuOT5UaGFuIGJ5IGRlc3RydWN0aW9uIGR3
ZWxsIGluIGRvdWJ0ZnVsIGpveS48L0E+PGJyPgorPHA+PGk+RW50ZXIgTUFDQkVUSDwvaT48L3A+
Cis8QSBOQU1FPTMuMi4xMD5Ib3cgbm93LCBteSBsb3JkISB3aHkgZG8geW91IGtlZXAgYWxvbmUs
PC9BPjxicj4KKzxBIE5BTUU9My4yLjExPk9mIHNvcnJpZXN0IGZhbmNpZXMgeW91ciBjb21wYW5p
b25zIG1ha2luZyw8L0E+PGJyPgorPEEgTkFNRT0zLjIuMTI+VXNpbmcgdGhvc2UgdGhvdWdodHMg
d2hpY2ggc2hvdWxkIGluZGVlZCBoYXZlIGRpZWQ8L0E+PGJyPgorPEEgTkFNRT0zLjIuMTM+V2l0
aCB0aGVtIHRoZXkgdGhpbmsgb24/IFRoaW5ncyB3aXRob3V0IGFsbCByZW1lZHk8L0E+PGJyPgor
PEEgTkFNRT0zLjIuMTQ+U2hvdWxkIGJlIHdpdGhvdXQgcmVnYXJkOiB3aGF0J3MgZG9uZSBpcyBk
b25lLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjIuMTU+V2UgaGF2ZSBzY290Y2gnZCB0
aGUgc25ha2UsIG5vdCBraWxsJ2QgaXQ6PC9BPjxicj4KKzxBIE5BTUU9My4yLjE2PlNoZSdsbCBj
bG9zZSBhbmQgYmUgaGVyc2VsZiwgd2hpbHN0IG91ciBwb29yIG1hbGljZTwvQT48YnI+Cis8QSBO
QU1FPTMuMi4xNz5SZW1haW5zIGluIGRhbmdlciBvZiBoZXIgZm9ybWVyIHRvb3RoLjwvQT48YnI+
Cis8QSBOQU1FPTMuMi4xOD5CdXQgbGV0IHRoZSBmcmFtZSBvZiB0aGluZ3MgZGlzam9pbnQsIGJv
dGggdGhlPC9BPjxicj4KKzxBIE5BTUU9My4yLjE5PndvcmxkcyBzdWZmZXIsPC9BPjxicj4KKzxB
IE5BTUU9My4yLjIwPkVyZSB3ZSB3aWxsIGVhdCBvdXIgbWVhbCBpbiBmZWFyIGFuZCBzbGVlcDwv
QT48YnI+Cis8QSBOQU1FPTMuMi4yMT5JbiB0aGUgYWZmbGljdGlvbiBvZiB0aGVzZSB0ZXJyaWJs
ZSBkcmVhbXM8L0E+PGJyPgorPEEgTkFNRT0zLjIuMjI+VGhhdCBzaGFrZSB1cyBuaWdodGx5OiBi
ZXR0ZXIgYmUgd2l0aCB0aGUgZGVhZCw8L0E+PGJyPgorPEEgTkFNRT0zLjIuMjM+V2hvbSB3ZSwg
dG8gZ2FpbiBvdXIgcGVhY2UsIGhhdmUgc2VudCB0byBwZWFjZSw8L0E+PGJyPgorPEEgTkFNRT0z
LjIuMjQ+VGhhbiBvbiB0aGUgdG9ydHVyZSBvZiB0aGUgbWluZCB0byBsaWU8L0E+PGJyPgorPEEg
TkFNRT0zLjIuMjU+SW4gcmVzdGxlc3MgZWNzdGFzeS4gRHVuY2FuIGlzIGluIGhpcyBncmF2ZTs8
L0E+PGJyPgorPEEgTkFNRT0zLjIuMjY+QWZ0ZXIgbGlmZSdzIGZpdGZ1bCBmZXZlciBoZSBzbGVl
cHMgd2VsbDs8L0E+PGJyPgorPEEgTkFNRT0zLjIuMjc+VHJlYXNvbiBoYXMgZG9uZSBoaXMgd29y
c3Q6IG5vciBzdGVlbCwgbm9yIHBvaXNvbiw8L0E+PGJyPgorPEEgTkFNRT0zLjIuMjg+TWFsaWNl
IGRvbWVzdGljLCBmb3JlaWduIGxldnksIG5vdGhpbmcsPC9BPjxicj4KKzxBIE5BTUU9My4yLjI5
PkNhbiB0b3VjaCBoaW0gZnVydGhlci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDc+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0z
LjIuMzA+Q29tZSBvbjs8L0E+PGJyPgorPEEgTkFNRT0zLjIuMzE+R2VudGxlIG15IGxvcmQsIHNs
ZWVrIG8nZXIgeW91ciBydWdnZWQgbG9va3M7PC9BPjxicj4KKzxBIE5BTUU9My4yLjMyPkJlIGJy
aWdodCBhbmQgam92aWFsIGFtb25nIHlvdXIgZ3Vlc3RzIHRvLW5pZ2h0LjwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjIuMzM+U28gc2hhbGwgSSwgbG92ZTsgYW5kIHNvLCBJIHByYXksIGJl
IHlvdTo8L0E+PGJyPgorPEEgTkFNRT0zLjIuMzQ+TGV0IHlvdXIgcmVtZW1icmFuY2UgYXBwbHkg
dG8gQmFucXVvOzwvQT48YnI+Cis8QSBOQU1FPTMuMi4zNT5QcmVzZW50IGhpbSBlbWluZW5jZSwg
Ym90aCB3aXRoIGV5ZSBhbmQgdG9uZ3VlOjwvQT48YnI+Cis8QSBOQU1FPTMuMi4zNj5VbnNhZmUg
dGhlIHdoaWxlLCB0aGF0IHdlPC9BPjxicj4KKzxBIE5BTUU9My4yLjM3Pk11c3QgbGF2ZSBvdXIg
aG9ub3VycyBpbiB0aGVzZSBmbGF0dGVyaW5nIHN0cmVhbXMsPC9BPjxicj4KKzxBIE5BTUU9My4y
LjM4PkFuZCBtYWtlIG91ciBmYWNlcyB2aXphcmRzIHRvIG91ciBoZWFydHMsPC9BPjxicj4KKzxB
IE5BTUU9My4yLjM5PkRpc2d1aXNpbmcgd2hhdCB0aGV5IGFyZS48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT0zLjIuNDA+WW91IG11c3QgbGVhdmUgdGhpcy48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTMuMi40MT5PLCBmdWxsIG9mIHNjb3JwaW9ucyBpcyBteSBtaW5kLCBkZWFy
IHdpZmUhPC9BPjxicj4KKzxBIE5BTUU9My4yLjQyPlRob3Uga25vdydzdCB0aGF0IEJhbnF1bywg
YW5kIGhpcyBGbGVhbmNlLCBsaXZlcy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDExPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My4yLjQzPkJ1dCBpbiB0aGVtIG5hdHVyZSdzIGNvcHkncyBub3QgZXRlcm5lLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+TUFDQkVUSDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9My4yLjQ0PlRoZXJlJ3MgY29tZm9ydCB5ZXQ7IHRoZXkgYXJlIGFz
c2FpbGFibGU7PC9BPjxicj4KKzxBIE5BTUU9My4yLjQ1PlRoZW4gYmUgdGhvdSBqb2N1bmQ6IGVy
ZSB0aGUgYmF0IGhhdGggZmxvd248L0E+PGJyPgorPEEgTkFNRT0zLjIuNDY+SGlzIGNsb2lzdGVy
J2QgZmxpZ2h0LCBlcmUgdG8gYmxhY2sgSGVjYXRlJ3Mgc3VtbW9uczwvQT48YnI+Cis8QSBOQU1F
PTMuMi40Nz5UaGUgc2hhcmQtYm9ybmUgYmVldGxlIHdpdGggaGlzIGRyb3dzeSBodW1zPC9BPjxi
cj4KKzxBIE5BTUU9My4yLjQ4PkhhdGggcnVuZyBuaWdodCdzIHlhd25pbmcgcGVhbCwgdGhlcmUg
c2hhbGwgYmUgZG9uZTwvQT48YnI+Cis8QSBOQU1FPTMuMi40OT5BIGRlZWQgb2YgZHJlYWRmdWwg
bm90ZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEzPjxiPkxBRFkg
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjUwPldoYXQncyB0byBi
ZSBkb25lPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTQ+PGI+TUFD
QkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4yLjUxPkJlIGlubm9jZW50IG9m
IHRoZSBrbm93bGVkZ2UsIGRlYXJlc3QgY2h1Y2ssPC9BPjxicj4KKzxBIE5BTUU9My4yLjUyPlRp
bGwgdGhvdSBhcHBsYXVkIHRoZSBkZWVkLiBDb21lLCBzZWVsaW5nIG5pZ2h0LDwvQT48YnI+Cis8
QSBOQU1FPTMuMi41Mz5TY2FyZiB1cCB0aGUgdGVuZGVyIGV5ZSBvZiBwaXRpZnVsIGRheTs8L0E+
PGJyPgorPEEgTkFNRT0zLjIuNTQ+QW5kIHdpdGggdGh5IGJsb29keSBhbmQgaW52aXNpYmxlIGhh
bmQ8L0E+PGJyPgorPEEgTkFNRT0zLjIuNTU+Q2FuY2VsIGFuZCB0ZWFyIHRvIHBpZWNlcyB0aGF0
IGdyZWF0IGJvbmQ8L0E+PGJyPgorPEEgTkFNRT0zLjIuNTY+V2hpY2gga2VlcHMgbWUgcGFsZSEg
TGlnaHQgdGhpY2tlbnM7IGFuZCB0aGUgY3JvdzwvQT48YnI+Cis8QSBOQU1FPTMuMi41Nz5NYWtl
cyB3aW5nIHRvIHRoZSByb29reSB3b29kOjwvQT48YnI+Cis8QSBOQU1FPTMuMi41OD5Hb29kIHRo
aW5ncyBvZiBkYXkgYmVnaW4gdG8gZHJvb3AgYW5kIGRyb3dzZTs8L0E+PGJyPgorPEEgTkFNRT0z
LjIuNTk+V2hpbGUgbmlnaHQncyBibGFjayBhZ2VudHMgdG8gdGhlaXIgcHJleXMgZG8gcm91c2Uu
PC9BPjxicj4KKzxBIE5BTUU9My4yLjYwPlRob3UgbWFydmVsbCdzdCBhdCBteSB3b3JkczogYnV0
IGhvbGQgdGhlZSBzdGlsbDs8L0E+PGJyPgorPEEgTkFNRT0zLjIuNjE+VGhpbmdzIGJhZCBiZWd1
biBtYWtlIHN0cm9uZyB0aGVtc2VsdmVzIGJ5IGlsbC48L0E+PGJyPgorPEEgTkFNRT0zLjIuNjI+
U28sIHByaXRoZWUsIGdvIHdpdGggbWUuPC9BPjxicj4KKzxwPjxpPkV4ZXVudDwvaT48L3A+Cis8
L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgSUlJLiBBIHBhcmsgbmVhciB0aGUgcGFsYWNlLjwvaDM+
Cis8cD48YmxvY2txdW90ZT4KKzxpPkVudGVyIHRocmVlIE11cmRlcmVyczwvaT4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gxPjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT0zLjMuMT5CdXQgd2hvIGRpZCBiaWQgdGhlZSBqb2luIHdpdGggdXM/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPlRoaXJkIE11cmRl
cmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjMuMj5NYWNiZXRoLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48Yj5TZWNvbmQgTXVyZGVyZXI8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4zPkhlIG5lZWRzIG5vdCBvdXIgbWlzdHJ1
c3QsIHNpbmNlIGhlIGRlbGl2ZXJzPC9BPjxicj4KKzxBIE5BTUU9My4zLjQ+T3VyIG9mZmljZXMg
YW5kIHdoYXQgd2UgaGF2ZSB0byBkbzwvQT48YnI+Cis8QSBOQU1FPTMuMy41PlRvIHRoZSBkaXJl
Y3Rpb24ganVzdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+
Rmlyc3QgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy42PlRoZW4g
c3RhbmQgd2l0aCB1cy48L0E+PGJyPgorPEEgTkFNRT0zLjMuNz5UaGUgd2VzdCB5ZXQgZ2xpbW1l
cnMgd2l0aCBzb21lIHN0cmVha3Mgb2YgZGF5OjwvQT48YnI+Cis8QSBOQU1FPTMuMy44Pk5vdyBz
cHVycyB0aGUgbGF0ZWQgdHJhdmVsbGVyIGFwYWNlPC9BPjxicj4KKzxBIE5BTUU9My4zLjk+VG8g
Z2FpbiB0aGUgdGltZWx5IGlubjsgYW5kIG5lYXIgYXBwcm9hY2hlczwvQT48YnI+Cis8QSBOQU1F
PTMuMy4xMD5UaGUgc3ViamVjdCBvZiBvdXIgd2F0Y2guPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g1PjxiPlRoaXJkIE11cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0zLjMuMTE+SGFyayEgSSBoZWFyIGhvcnNlcy48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+QkFOUVVPPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0zLjMuMTI+W1dpdGhpbl0gIEdpdmUgdXMgYSBsaWdodCB0aGVyZSwgaG8hPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPlNlY29uZCBNdXJkZXJlcjwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4zLjEzPlRoZW4gJ3RpcyBoZTogdGhlIHJl
c3Q8L0E+PGJyPgorPEEgTkFNRT0zLjMuMTQ+VGhhdCBhcmUgd2l0aGluIHRoZSBub3RlIG9mIGV4
cGVjdGF0aW9uPC9BPjxicj4KKzxBIE5BTUU9My4zLjE1PkFscmVhZHkgYXJlIGknIHRoZSBjb3Vy
dC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+Rmlyc3QgTXVy
ZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4xNj5IaXMgaG9yc2VzIGdv
IGFib3V0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5UaGly
ZCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My4zLjE3PkFsbW9zdCBh
IG1pbGU6IGJ1dCBoZSBkb2VzIHVzdWFsbHksPC9BPjxicj4KKzxBIE5BTUU9My4zLjE4PlNvIGFs
bCBtZW4gZG8sIGZyb20gaGVuY2UgdG8gdGhlIHBhbGFjZSBnYXRlPC9BPjxicj4KKzxBIE5BTUU9
My4zLjE5Pk1ha2UgaXQgdGhlaXIgd2Fsay48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDEwPjxiPlNlY29uZCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My4zLjIwPkEgbGlnaHQsIGEgbGlnaHQhPC9BPjxicj4KKzxwPjxpPkVudGVyIEJBTlFV
TywgYW5kIEZMRUFOQ0Ugd2l0aCBhIHRvcmNoPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2gxMT48Yj5UaGlyZCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My4zLjIxPidUaXMgaGUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxMj48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My4zLjIyPlN0YW5kIHRvJ3QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxMz48Yj5CQU5RVU88L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4yMz5JdCB3
aWxsIGJlIHJhaW4gdG8tbmlnaHQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxND48Yj5GaXJzdCBNdXJkZXJlcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My4zLjI0PkxldCBpdCBjb21lIGRvd24uPC9BPjxicj4KKzxwPjxpPlRoZXkgc2V0IHVwb24gQkFO
UVVPPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNT48Yj5CQU5RVU88
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4yNT5PLCB0cmVhY2hlcnkhIEZseSwg
Z29vZCBGbGVhbmNlLCBmbHksIGZseSwgZmx5ITwvQT48YnI+Cis8QSBOQU1FPTMuMy4yNj5UaG91
IG1heXN0IHJldmVuZ2UuIE8gc2xhdmUhPC9BPjxicj4KKzxwPjxpPkRpZXMuIEZMRUFOQ0UgZXNj
YXBlczwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTY+PGI+VGhpcmQg
TXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuMy4yNz5XaG8gZGlkIHN0
cmlrZSBvdXQgdGhlIGxpZ2h0PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMTc+PGI+Rmlyc3QgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMu
My4yOD5XYXN0IG5vdCB0aGUgd2F5PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMTg+PGI+VGhpcmQgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTMuMy4yOT5UaGVyZSdzIGJ1dCBvbmUgZG93bjsgdGhlIHNvbiBpcyBmbGVkLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTk+PGI+U2Vjb25kIE11cmRlcmVyPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjMuMzA+V2UgaGF2ZSBsb3N0PC9BPjxicj4KKzxB
IE5BTUU9My4zLjMxPkJlc3QgaGFsZiBvZiBvdXIgYWZmYWlyLjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+Rmlyc3QgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTMuMy4zMj5XZWxsLCBsZXQncyBhd2F5LCBhbmQgc2F5IGhvdyBtdWNo
IGlzIGRvbmUuPC9BPjxicj4KKzxwPjxpPkV4ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8
aDM+U0NFTkUgSVYuIFRoZSBzYW1lLiBIYWxsIGluIHRoZSBwYWxhY2UuPC9oMz4KKzxwPjxibG9j
a3F1b3RlPgorPGk+QSBiYW5xdWV0IHByZXBhcmVkLiBFbnRlciBNQUNCRVRILCBMQURZIE1BQ0JF
VEgsIFJPU1MsIExFTk5PWCwgTG9yZHMsIGFuZCBBdHRlbmRhbnRzPC9pPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My40LjE+WW91IGtub3cgeW91ciBvd24gZGVncmVlczsgc2l0IGRvd246IGF0IGZpcnN0
PC9BPjxicj4KKzxBIE5BTUU9My40LjI+QW5kIGxhc3QgdGhlIGhlYXJ0eSB3ZWxjb21lLjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5Mb3JkczwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjM+VGhhbmtzIHRvIHlvdXIgbWFqZXN0eS48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+TUFDQkVUSDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjQ+T3Vyc2VsZiB3aWxsIG1pbmdsZSB3aXRoIHNvY2ll
dHksPC9BPjxicj4KKzxBIE5BTUU9My40LjU+QW5kIHBsYXkgdGhlIGh1bWJsZSBob3N0LjwvQT48
YnI+Cis8QSBOQU1FPTMuNC42Pk91ciBob3N0ZXNzIGtlZXBzIGhlciBzdGF0ZSwgYnV0IGluIGJl
c3QgdGltZTwvQT48YnI+Cis8QSBOQU1FPTMuNC43PldlIHdpbGwgcmVxdWlyZSBoZXIgd2VsY29t
ZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+TEFEWSBNQUNC
RVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuOD5Qcm9ub3VuY2UgaXQgZm9y
IG1lLCBzaXIsIHRvIGFsbCBvdXIgZnJpZW5kczs8L0E+PGJyPgorPEEgTkFNRT0zLjQuOT5Gb3Ig
bXkgaGVhcnQgc3BlYWtzIHRoZXkgYXJlIHdlbGNvbWUuPC9BPjxicj4KKzxwPjxpPkZpcnN0IE11
cmRlcmVyIGFwcGVhcnMgYXQgdGhlIGRvb3I8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDU+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40
LjEwPlNlZSwgdGhleSBlbmNvdW50ZXIgdGhlZSB3aXRoIHRoZWlyIGhlYXJ0cycgdGhhbmtzLjwv
QT48YnI+Cis8QSBOQU1FPTMuNC4xMT5Cb3RoIHNpZGVzIGFyZSBldmVuOiBoZXJlIEknbGwgc2l0
IGknIHRoZSBtaWRzdDo8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTI+QmUgbGFyZ2UgaW4gbWlydGg7
IGFub24gd2UnbGwgZHJpbmsgYSBtZWFzdXJlPC9BPjxicj4KKzxBIE5BTUU9My40LjEzPlRoZSB0
YWJsZSByb3VuZC48L0E+PGJyPgorPHA+PGk+QXBwcm9hY2hpbmcgdGhlIGRvb3I8L2k+PC9wPgor
PEEgTkFNRT0zLjQuMTQ+VGhlcmUncyBibG9vZCBvbiB0aHkgZmFjZS48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+Rmlyc3QgTXVyZGVyZXI8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xNT4nVGlzIEJhbnF1bydzIHRoZW4uPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTMuNC4xNj4nVGlzIGJldHRlciB0aGVlIHdpdGhvdXQgdGhhbiBoZSB3
aXRoaW4uPC9BPjxicj4KKzxBIE5BTUU9My40LjE3PklzIGhlIGRpc3BhdGNoJ2Q/PC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPkZpcnN0IE11cmRlcmVyPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTg+TXkgbG9yZCwgaGlzIHRocm9hdCBpcyBj
dXQ7IHRoYXQgSSBkaWQgZm9yIGhpbS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDk+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjE5
PlRob3UgYXJ0IHRoZSBiZXN0IG8nIHRoZSBjdXQtdGhyb2F0czogeWV0IGhlJ3MgZ29vZDwvQT48
YnI+Cis8QSBOQU1FPTMuNC4yMD5UaGF0IGRpZCB0aGUgbGlrZSBmb3IgRmxlYW5jZTogaWYgdGhv
dSBkaWRzdCBpdCw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMjE+VGhvdSBhcnQgdGhlIG5vbnBhcmVp
bC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPkZpcnN0IE11
cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMjI+TW9zdCByb3lhbCBz
aXIsPC9BPjxicj4KKzxBIE5BTUU9My40LjIzPkZsZWFuY2UgaXMgJ3NjYXBlZC48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDExPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4yND5UaGVuIGNvbWVzIG15IGZpdCBhZ2FpbjogSSBoYWQg
ZWxzZSBiZWVuIHBlcmZlY3QsPC9BPjxicj4KKzxBIE5BTUU9My40LjI1Pldob2xlIGFzIHRoZSBt
YXJibGUsIGZvdW5kZWQgYXMgdGhlIHJvY2ssPC9BPjxicj4KKzxBIE5BTUU9My40LjI2PkFzIGJy
b2FkIGFuZCBnZW5lcmFsIGFzIHRoZSBjYXNpbmcgYWlyOjwvQT48YnI+Cis8QSBOQU1FPTMuNC4y
Nz5CdXQgbm93IEkgYW0gY2FiaW4nZCwgY3JpYmInZCwgY29uZmluZWQsIGJvdW5kIGluPC9BPjxi
cj4KKzxBIE5BTUU9My40LjI4PlRvIHNhdWN5IGRvdWJ0cyBhbmQgZmVhcnMuIEJ1dCBCYW5xdW8n
cyBzYWZlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+Rmly
c3QgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4yOT5BeSwgbXkg
Z29vZCBsb3JkOiBzYWZlIGluIGEgZGl0Y2ggaGUgYmlkZXMsPC9BPjxicj4KKzxBIE5BTUU9My40
LjMwPldpdGggdHdlbnR5IHRyZW5jaGVkIGdhc2hlcyBvbiBoaXMgaGVhZDs8L0E+PGJyPgorPEEg
TkFNRT0zLjQuMzE+VGhlIGxlYXN0IGEgZGVhdGggdG8gbmF0dXJlLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9My40LjMyPlRoYW5rcyBmb3IgdGhhdDo8L0E+PGJyPgorPEEgTkFNRT0zLjQu
MzM+VGhlcmUgdGhlIGdyb3duIHNlcnBlbnQgbGllczsgdGhlIHdvcm0gdGhhdCdzIGZsZWQ8L0E+
PGJyPgorPEEgTkFNRT0zLjQuMzQ+SGF0aCBuYXR1cmUgdGhhdCBpbiB0aW1lIHdpbGwgdmVub20g
YnJlZWQsPC9BPjxicj4KKzxBIE5BTUU9My40LjM1Pk5vIHRlZXRoIGZvciB0aGUgcHJlc2VudC4g
R2V0IHRoZWUgZ29uZTogdG8tbW9ycm93PC9BPjxicj4KKzxBIE5BTUU9My40LjM2PldlJ2xsIGhl
YXIsIG91cnNlbHZlcywgYWdhaW4uPC9BPjxicj4KKzxwPjxpPkV4aXQgTXVyZGVyZXI8L2k+PC9w
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPkxBRFkgTUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjM3Pk15IHJveWFsIGxvcmQsPC9BPjxicj4K
KzxBIE5BTUU9My40LjM4PllvdSBkbyBub3QgZ2l2ZSB0aGUgY2hlZXI6IHRoZSBmZWFzdCBpcyBz
b2xkPC9BPjxicj4KKzxBIE5BTUU9My40LjM5PlRoYXQgaXMgbm90IG9mdGVuIHZvdWNoJ2QsIHdo
aWxlICd0aXMgYS1tYWtpbmcsPC9BPjxicj4KKzxBIE5BTUU9My40LjQwPidUaXMgZ2l2ZW4gd2l0
aCB3ZWxjb21lOiB0byBmZWVkIHdlcmUgYmVzdCBhdCBob21lOzwvQT48YnI+Cis8QSBOQU1FPTMu
NC40MT5Gcm9tIHRoZW5jZSB0aGUgc2F1Y2UgdG8gbWVhdCBpcyBjZXJlbW9ueTs8L0E+PGJyPgor
PEEgTkFNRT0zLjQuNDI+TWVldGluZyB3ZXJlIGJhcmUgd2l0aG91dCBpdC48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE1PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTMuNC40Mz5Td2VldCByZW1lbWJyYW5jZXIhPC9BPjxicj4KKzxBIE5B
TUU9My40LjQ0Pk5vdywgZ29vZCBkaWdlc3Rpb24gd2FpdCBvbiBhcHBldGl0ZSw8L0E+PGJyPgor
PEEgTkFNRT0zLjQuNDU+QW5kIGhlYWx0aCBvbiBib3RoITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMTY+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0zLjQuNDY+TWF5J3QgcGxlYXNlIHlvdXIgaGlnaG5lc3Mgc2l0LjwvQT48YnI+Cis8cD48
aT5UaGUgR0hPU1QgT0YgQkFOUVVPIGVudGVycywgYW5kIHNpdHMgaW4gTUFDQkVUSCdzIHBsYWNl
PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNz48Yj5NQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuNDc+SGVyZSBoYWQgd2Ugbm93IG91ciBj
b3VudHJ5J3MgaG9ub3VyIHJvb2YnZCw8L0E+PGJyPgorPEEgTkFNRT0zLjQuNDg+V2VyZSB0aGUg
Z3JhY2VkIHBlcnNvbiBvZiBvdXIgQmFucXVvIHByZXNlbnQ7PC9BPjxicj4KKzxBIE5BTUU9My40
LjQ5PldobyBtYXkgSSByYXRoZXIgY2hhbGxlbmdlIGZvciB1bmtpbmRuZXNzPC9BPjxicj4KKzxB
IE5BTUU9My40LjUwPlRoYW4gcGl0eSBmb3IgbWlzY2hhbmNlITwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTg+PGI+Uk9TUzwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9My40LjUxPkhpcyBhYnNlbmNlLCBzaXIsPC9BPjxicj4KKzxBIE5BTUU9My40LjUyPkxh
eXMgYmxhbWUgdXBvbiBoaXMgcHJvbWlzZS4gUGxlYXNlJ3QgeW91ciBoaWdobmVzczwvQT48YnI+
Cis8QSBOQU1FPTMuNC41Mz5UbyBncmFjZSB1cyB3aXRoIHlvdXIgcm95YWwgY29tcGFueS48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE5PjxiPk1BQ0JFVEg8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC41ND5UaGUgdGFibGUncyBmdWxsLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+TEVOTk9YPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuNTU+ICAgICAgICAgICAgICAgICAgSGVyZSBpcyBhIHBs
YWNlIHJlc2VydmVkLCBzaXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gyMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuNTY+V2hl
cmU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMj48Yj5MRU5OT1g8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC41Nz5IZXJlLCBteSBnb29kIGxvcmQu
IFdoYXQgaXMndCB0aGF0IG1vdmVzIHlvdXIgaGlnaG5lc3M/PC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gyMz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0zLjQuNTg+V2hpY2ggb2YgeW91IGhhdmUgZG9uZSB0aGlzPzwvQT48YnI+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjQ+PGI+TG9yZHM8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTMuNC41OT5XaGF0LCBteSBnb29kIGxvcmQ/PC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT0zLjQuNjA+VGhvdSBjYW5zdCBub3Qgc2F5IEkgZGlkIGl0OiBuZXZlciBzaGFr
ZTwvQT48YnI+Cis8QSBOQU1FPTMuNC42MT5UaHkgZ29yeSBsb2NrcyBhdCBtZS48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI2PjxiPlJPU1M8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTMuNC42Mj5HZW50bGVtZW4sIHJpc2U6IGhpcyBoaWdobmVzcyBpcyBu
b3Qgd2VsbC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI3PjxiPkxB
RFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40LjYzPlNpdCwgd29y
dGh5IGZyaWVuZHM6IG15IGxvcmQgaXMgb2Z0ZW4gdGh1cyw8L0E+PGJyPgorPEEgTkFNRT0zLjQu
NjQ+QW5kIGhhdGggYmVlbiBmcm9tIGhpcyB5b3V0aDogcHJheSB5b3UsIGtlZXAgc2VhdDs8L0E+
PGJyPgorPEEgTkFNRT0zLjQuNjU+VGhlIGZpdCBpcyBtb21lbnRhcnk7IHVwb24gYSB0aG91Z2h0
PC9BPjxicj4KKzxBIE5BTUU9My40LjY2PkhlIHdpbGwgYWdhaW4gYmUgd2VsbDogaWYgbXVjaCB5
b3Ugbm90ZSBoaW0sPC9BPjxicj4KKzxBIE5BTUU9My40LjY3PllvdSBzaGFsbCBvZmZlbmQgaGlt
IGFuZCBleHRlbmQgaGlzIHBhc3Npb246PC9BPjxicj4KKzxBIE5BTUU9My40LjY4PkZlZWQsIGFu
ZCByZWdhcmQgaGltIG5vdC4gQXJlIHlvdSBhIG1hbj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDI4PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTMuNC42OT5BeSwgYW5kIGEgYm9sZCBvbmUsIHRoYXQgZGFyZSBsb29rIG9uIHRoYXQ8L0E+
PGJyPgorPEEgTkFNRT0zLjQuNzA+V2hpY2ggbWlnaHQgYXBwYWwgdGhlIGRldmlsLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjk+PGI+TEFEWSBNQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuNzE+TyBwcm9wZXIgc3R1ZmYhPC9BPjxicj4K
KzxBIE5BTUU9My40LjcyPlRoaXMgaXMgdGhlIHZlcnkgcGFpbnRpbmcgb2YgeW91ciBmZWFyOjwv
QT48YnI+Cis8QSBOQU1FPTMuNC43Mz5UaGlzIGlzIHRoZSBhaXItZHJhd24gZGFnZ2VyIHdoaWNo
LCB5b3Ugc2FpZCw8L0E+PGJyPgorPEEgTkFNRT0zLjQuNzQ+TGVkIHlvdSB0byBEdW5jYW4uIE8s
IHRoZXNlIGZsYXdzIGFuZCBzdGFydHMsPC9BPjxicj4KKzxBIE5BTUU9My40Ljc1PkltcG9zdG9y
cyB0byB0cnVlIGZlYXIsIHdvdWxkIHdlbGwgYmVjb21lPC9BPjxicj4KKzxBIE5BTUU9My40Ljc2
PkEgd29tYW4ncyBzdG9yeSBhdCBhIHdpbnRlcidzIGZpcmUsPC9BPjxicj4KKzxBIE5BTUU9My40
Ljc3PkF1dGhvcml6ZWQgYnkgaGVyIGdyYW5kYW0uIFNoYW1lIGl0c2VsZiE8L0E+PGJyPgorPEEg
TkFNRT0zLjQuNzg+V2h5IGRvIHlvdSBtYWtlIHN1Y2ggZmFjZXM/IFdoZW4gYWxsJ3MgZG9uZSw8
L0E+PGJyPgorPEEgTkFNRT0zLjQuNzk+WW91IGxvb2sgYnV0IG9uIGEgc3Rvb2wuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMD48Yj5NQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuODA+UHJpdGhlZSwgc2VlIHRoZXJlISBiZWhvbGQhIGxv
b2shIGxvITwvQT48YnI+Cis8QSBOQU1FPTMuNC44MT5ob3cgc2F5IHlvdT88L0E+PGJyPgorPEEg
TkFNRT0zLjQuODI+V2h5LCB3aGF0IGNhcmUgST8gSWYgdGhvdSBjYW5zdCBub2QsIHNwZWFrIHRv
by48L0E+PGJyPgorPEEgTkFNRT0zLjQuODM+SWYgY2hhcm5lbC1ob3VzZXMgYW5kIG91ciBncmF2
ZXMgbXVzdCBzZW5kPC9BPjxicj4KKzxBIE5BTUU9My40Ljg0PlRob3NlIHRoYXQgd2UgYnVyeSBi
YWNrLCBvdXIgbW9udW1lbnRzPC9BPjxicj4KKzxBIE5BTUU9My40Ljg1PlNoYWxsIGJlIHRoZSBt
YXdzIG9mIGtpdGVzLjwvQT48YnI+Cis8cD48aT5HSE9TVCBPRiBCQU5RVU8gdmFuaXNoZXM8L2k+
PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMxPjxiPkxBRFkgTUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40Ljg2PldoYXQsIHF1aXRlIHVubWFubidk
IGluIGZvbGx5PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzI+PGI+
TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40Ljg3PklmIEkgc3RhbmQg
aGVyZSwgSSBzYXcgaGltLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MzM+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuODg+
RmllLCBmb3Igc2hhbWUhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gz
ND48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuODk+Qmxvb2Qg
aGF0aCBiZWVuIHNoZWQgZXJlIG5vdywgaScgdGhlIG9sZGVuIHRpbWUsPC9BPjxicj4KKzxBIE5B
TUU9My40LjkwPkVyZSBodW1hbiBzdGF0dXRlIHB1cmdlZCB0aGUgZ2VudGxlIHdlYWw7PC9BPjxi
cj4KKzxBIE5BTUU9My40LjkxPkF5LCBhbmQgc2luY2UgdG9vLCBtdXJkZXJzIGhhdmUgYmVlbiBw
ZXJmb3JtJ2Q8L0E+PGJyPgorPEEgTkFNRT0zLjQuOTI+VG9vIHRlcnJpYmxlIGZvciB0aGUgZWFy
OiB0aGUgdGltZXMgaGF2ZSBiZWVuLDwvQT48YnI+Cis8QSBOQU1FPTMuNC45Mz5UaGF0LCB3aGVu
IHRoZSBicmFpbnMgd2VyZSBvdXQsIHRoZSBtYW4gd291bGQgZGllLDwvQT48YnI+Cis8QSBOQU1F
PTMuNC45ND5BbmQgdGhlcmUgYW4gZW5kOyBidXQgbm93IHRoZXkgcmlzZSBhZ2Fpbiw8L0E+PGJy
PgorPEEgTkFNRT0zLjQuOTU+V2l0aCB0d2VudHkgbW9ydGFsIG11cmRlcnMgb24gdGhlaXIgY3Jv
d25zLDwvQT48YnI+Cis8QSBOQU1FPTMuNC45Nj5BbmQgcHVzaCB1cyBmcm9tIG91ciBzdG9vbHM6
IHRoaXMgaXMgbW9yZSBzdHJhbmdlPC9BPjxicj4KKzxBIE5BTUU9My40Ljk3PlRoYW4gc3VjaCBh
IG11cmRlciBpcy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM1Pjxi
PkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40Ljk4Pk15IHdv
cnRoeSBsb3JkLDwvQT48YnI+Cis8QSBOQU1FPTMuNC45OT5Zb3VyIG5vYmxlIGZyaWVuZHMgZG8g
bGFjayB5b3UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNj48Yj5N
QUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTAwPkkgZG8gZm9yZ2V0
LjwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMDE+RG8gbm90IG11c2UgYXQgbWUsIG15IG1vc3Qgd29y
dGh5IGZyaWVuZHMsPC9BPjxicj4KKzxBIE5BTUU9My40LjEwMj5JIGhhdmUgYSBzdHJhbmdlIGlu
ZmlybWl0eSwgd2hpY2ggaXMgbm90aGluZzwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMDM+VG8gdGhv
c2UgdGhhdCBrbm93IG1lLiBDb21lLCBsb3ZlIGFuZCBoZWFsdGggdG8gYWxsOzwvQT48YnI+Cis8
QSBOQU1FPTMuNC4xMDQ+VGhlbiBJJ2xsIHNpdCBkb3duLiBHaXZlIG1lIHNvbWUgd2luZTsgZmls
bCBmdWxsLjwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMDU+SSBkcmluayB0byB0aGUgZ2VuZXJhbCBq
b3kgbycgdGhlIHdob2xlIHRhYmxlLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMDY+QW5kIHRvIG91
ciBkZWFyIGZyaWVuZCBCYW5xdW8sIHdob20gd2UgbWlzczs8L0E+PGJyPgorPEEgTkFNRT0zLjQu
MTA3PldvdWxkIGhlIHdlcmUgaGVyZSEgdG8gYWxsLCBhbmQgaGltLCB3ZSB0aGlyc3QsPC9BPjxi
cj4KKzxBIE5BTUU9My40LjEwOD5BbmQgYWxsIHRvIGFsbC48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDM3PjxiPkxvcmRzPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT0zLjQuMTA5PiAgICAgICAgICAgICAgICAgIE91ciBkdXRpZXMsIGFuZCB0aGUgcGxlZGdl
LjwvQT48YnI+Cis8cD48aT5SZS1lbnRlciBHSE9TVCBPRiBCQU5RVU88L2k+PC9wPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM4PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTMuNC4xMTA+QXZhdW50ISBhbmQgcXVpdCBteSBzaWdodCEgbGV0IHRoZSBl
YXJ0aCBoaWRlIHRoZWUhPC9BPjxicj4KKzxBIE5BTUU9My40LjExMT5UaHkgYm9uZXMgYXJlIG1h
cnJvd2xlc3MsIHRoeSBibG9vZCBpcyBjb2xkOzwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMTI+VGhv
dSBoYXN0IG5vIHNwZWN1bGF0aW9uIGluIHRob3NlIGV5ZXM8L0E+PGJyPgorPEEgTkFNRT0zLjQu
MTEzPldoaWNoIHRob3UgZG9zdCBnbGFyZSB3aXRoITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMzk+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0zLjQuMTE0PlRoaW5rIG9mIHRoaXMsIGdvb2QgcGVlcnMsPC9BPjxicj4KKzxBIE5B
TUU9My40LjExNT5CdXQgYXMgYSB0aGluZyBvZiBjdXN0b206ICd0aXMgbm8gb3RoZXI7PC9BPjxi
cj4KKzxBIE5BTUU9My40LjExNj5Pbmx5IGl0IHNwb2lscyB0aGUgcGxlYXN1cmUgb2YgdGhlIHRp
bWUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0MD48Yj5NQUNCRVRI
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTE3PldoYXQgbWFuIGRhcmUsIEkg
ZGFyZTo8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTE4PkFwcHJvYWNoIHRob3UgbGlrZSB0aGUgcnVn
Z2VkIFJ1c3NpYW4gYmVhciw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTE5PlRoZSBhcm0nZCByaGlu
b2Nlcm9zLCBvciB0aGUgSHlyY2FuIHRpZ2VyOzwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMjA+VGFr
ZSBhbnkgc2hhcGUgYnV0IHRoYXQsIGFuZCBteSBmaXJtIG5lcnZlczwvQT48YnI+Cis8QSBOQU1F
PTMuNC4xMjE+U2hhbGwgbmV2ZXIgdHJlbWJsZTogb3IgYmUgYWxpdmUgYWdhaW4sPC9BPjxicj4K
KzxBIE5BTUU9My40LjEyMj5BbmQgZGFyZSBtZSB0byB0aGUgZGVzZXJ0IHdpdGggdGh5IHN3b3Jk
OzwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMjM+SWYgdHJlbWJsaW5nIEkgaW5oYWJpdCB0aGVuLCBw
cm90ZXN0IG1lPC9BPjxicj4KKzxBIE5BTUU9My40LjEyND5UaGUgYmFieSBvZiBhIGdpcmwuIEhl
bmNlLCBob3JyaWJsZSBzaGFkb3chPC9BPjxicj4KKzxBIE5BTUU9My40LjEyNT5VbnJlYWwgbW9j
a2VyeSwgaGVuY2UhPC9BPjxicj4KKzxwPjxpPkdIT1NUIE9GIEJBTlFVTyB2YW5pc2hlczwvaT48
L3A+Cis8QSBOQU1FPTMuNC4xMjY+V2h5LCBzbzogYmVpbmcgZ29uZSw8L0E+PGJyPgorPEEgTkFN
RT0zLjQuMTI3PkkgYW0gYSBtYW4gYWdhaW4uIFByYXkgeW91LCBzaXQgc3RpbGwuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0MT48Yj5MQURZIE1BQ0JFVEg8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xMjg+WW91IGhhdmUgZGlzcGxhY2VkIHRoZSBt
aXJ0aCwgYnJva2UgdGhlIGdvb2QgbWVldGluZyw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTI5Pldp
dGggbW9zdCBhZG1pcmVkIGRpc29yZGVyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoNDI+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My40
LjEzMD5DYW4gc3VjaCB0aGluZ3MgYmUsPC9BPjxicj4KKzxBIE5BTUU9My40LjEzMT5BbmQgb3Zl
cmNvbWUgdXMgbGlrZSBhIHN1bW1lcidzIGNsb3VkLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMzI+
V2l0aG91dCBvdXIgc3BlY2lhbCB3b25kZXI/IFlvdSBtYWtlIG1lIHN0cmFuZ2U8L0E+PGJyPgor
PEEgTkFNRT0zLjQuMTMzPkV2ZW4gdG8gdGhlIGRpc3Bvc2l0aW9uIHRoYXQgSSBvd2UsPC9BPjxi
cj4KKzxBIE5BTUU9My40LjEzND5XaGVuIG5vdyBJIHRoaW5rIHlvdSBjYW4gYmVob2xkIHN1Y2gg
c2lnaHRzLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xMzU+QW5kIGtlZXAgdGhlIG5hdHVyYWwgcnVi
eSBvZiB5b3VyIGNoZWVrcyw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTM2PldoZW4gbWluZSBpcyBi
bGFuY2hlZCB3aXRoIGZlYXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g0Mz48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTM3PldoYXQg
c2lnaHRzLCBteSBsb3JkPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
NDQ+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTM4
PkkgcHJheSB5b3UsIHNwZWFrIG5vdDsgaGUgZ3Jvd3Mgd29yc2UgYW5kIHdvcnNlOzwvQT48YnI+
Cis8QSBOQU1FPTMuNC4xMzk+UXVlc3Rpb24gZW5yYWdlcyBoaW0uIEF0IG9uY2UsIGdvb2Qgbmln
aHQ6PC9BPjxicj4KKzxBIE5BTUU9My40LjE0MD5TdGFuZCBub3QgdXBvbiB0aGUgb3JkZXIgb2Yg
eW91ciBnb2luZyw8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTQxPkJ1dCBnbyBhdCBvbmNlLjwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDU+PGI+TEVOTk9YPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTQyPiAgICAgICAgICAgICAgICAgIEdvb2Qgbmln
aHQ7IGFuZCBiZXR0ZXIgaGVhbHRoPC9BPjxicj4KKzxBIE5BTUU9My40LjE0Mz5BdHRlbmQgaGlz
IG1hamVzdHkhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Nj48Yj5M
QURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xNDQ+QSBraW5k
IGdvb2QgbmlnaHQgdG8gYWxsITwvQT48YnI+Cis8cD48aT5FeGV1bnQgYWxsIGJ1dCBNQUNCRVRI
IGFuZCBMQURZIE1BQ0JFVEg8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDQ3PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xNDU+SXQg
d2lsbCBoYXZlIGJsb29kOyB0aGV5IHNheSwgYmxvb2Qgd2lsbCBoYXZlIGJsb29kOjwvQT48YnI+
Cis8QSBOQU1FPTMuNC4xNDY+U3RvbmVzIGhhdmUgYmVlbiBrbm93biB0byBtb3ZlIGFuZCB0cmVl
cyB0byBzcGVhazs8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTQ3PkF1Z3VycyBhbmQgdW5kZXJzdG9v
ZCByZWxhdGlvbnMgaGF2ZTwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNDg+QnkgbWFnb3QtcGllcyBh
bmQgY2hvdWdocyBhbmQgcm9va3MgYnJvdWdodCBmb3J0aDwvQT48YnI+Cis8QSBOQU1FPTMuNC4x
NDk+VGhlIHNlY3JldCdzdCBtYW4gb2YgYmxvb2QuIFdoYXQgaXMgdGhlIG5pZ2h0PzwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDg+PGI+TEFEWSBNQUNCRVRIPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTUwPkFsbW9zdCBhdCBvZGRzIHdpdGggbW9y
bmluZywgd2hpY2ggaXMgd2hpY2guPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2g0OT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTUx
PkhvdyBzYXknc3QgdGhvdSwgdGhhdCBNYWNkdWZmIGRlbmllcyBoaXMgcGVyc29uPC9BPjxicj4K
KzxBIE5BTUU9My40LjE1Mj5BdCBvdXIgZ3JlYXQgYmlkZGluZz88L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDUwPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9My40LjE1Mz5EaWQgeW91IHNlbmQgdG8gaGltLCBzaXI/PC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1MT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT0zLjQuMTU0PkkgaGVhciBpdCBieSB0aGUgd2F5OyBidXQgSSB3
aWxsIHNlbmQ6PC9BPjxicj4KKzxBIE5BTUU9My40LjE1NT5UaGVyZSdzIG5vdCBhIG9uZSBvZiB0
aGVtIGJ1dCBpbiBoaXMgaG91c2U8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTU2Pkkga2VlcCBhIHNl
cnZhbnQgZmVlJ2QuIEkgd2lsbCB0by1tb3Jyb3csPC9BPjxicj4KKzxBIE5BTUU9My40LjE1Nz5B
bmQgYmV0aW1lcyBJIHdpbGwsIHRvIHRoZSB3ZWlyZCBzaXN0ZXJzOjwvQT48YnI+Cis8QSBOQU1F
PTMuNC4xNTg+TW9yZSBzaGFsbCB0aGV5IHNwZWFrOyBmb3Igbm93IEkgYW0gYmVudCB0byBrbm93
LDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNTk+QnkgdGhlIHdvcnN0IG1lYW5zLCB0aGUgd29yc3Qu
IEZvciBtaW5lIG93biBnb29kLDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNjA+QWxsIGNhdXNlcyBz
aGFsbCBnaXZlIHdheTogSSBhbSBpbiBibG9vZDwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNjE+U3Rl
cHAnZCBpbiBzbyBmYXIgdGhhdCwgc2hvdWxkIEkgd2FkZSBubyBtb3JlLDwvQT48YnI+Cis8QSBO
QU1FPTMuNC4xNjI+UmV0dXJuaW5nIHdlcmUgYXMgdGVkaW91cyBhcyBnbyBvJ2VyOjwvQT48YnI+
Cis8QSBOQU1FPTMuNC4xNjM+U3RyYW5nZSB0aGluZ3MgSSBoYXZlIGluIGhlYWQsIHRoYXQgd2ls
bCB0byBoYW5kOzwvQT48YnI+Cis8QSBOQU1FPTMuNC4xNjQ+V2hpY2ggbXVzdCBiZSBhY3RlZCBl
cmUgdGhleSBtYXkgYmUgc2Nhbm4nZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDUyPjxiPkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
My40LjE2NT5Zb3UgbGFjayB0aGUgc2Vhc29uIG9mIGFsbCBuYXR1cmVzLCBzbGVlcC48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUzPjxiPk1BQ0JFVEg8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNC4xNjY+Q29tZSwgd2UnbGwgdG8gc2xlZXAuIE15IHN0
cmFuZ2UgYW5kIHNlbGYtYWJ1c2U8L0E+PGJyPgorPEEgTkFNRT0zLjQuMTY3PklzIHRoZSBpbml0
aWF0ZSBmZWFyIHRoYXQgd2FudHMgaGFyZCB1c2U6PC9BPjxicj4KKzxBIE5BTUU9My40LjE2OD5X
ZSBhcmUgeWV0IGJ1dCB5b3VuZyBpbiBkZWVkLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9w
PgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIFYuIEEgSGVhdGguPC9oMz4KKzxwPjxibG9ja3F1
b3RlPgorPGk+VGh1bmRlci4gRW50ZXIgdGhlIHRocmVlIFdpdGNoZXMgbWVldGluZyBIRUNBVEU8
L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5GaXJzdCBXaXRjaDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My41LjE+V2h5LCBob3cgbm93LCBIZWNhdGUhIHlv
dSBsb29rIGFuZ2VybHkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gy
PjxiPkhFQ0FURTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My41LjI+SGF2ZSBJIG5v
dCByZWFzb24sIGJlbGRhbXMgYXMgeW91IGFyZSw8L0E+PGJyPgorPEEgTkFNRT0zLjUuMz5TYXVj
eSBhbmQgb3ZlcmJvbGQ/IEhvdyBkaWQgeW91IGRhcmU8L0E+PGJyPgorPEEgTkFNRT0zLjUuND5U
byB0cmFkZSBhbmQgdHJhZmZpYyB3aXRoIE1hY2JldGg8L0E+PGJyPgorPEEgTkFNRT0zLjUuNT5J
biByaWRkbGVzIGFuZCBhZmZhaXJzIG9mIGRlYXRoOzwvQT48YnI+Cis8QSBOQU1FPTMuNS42PkFu
ZCBJLCB0aGUgbWlzdHJlc3Mgb2YgeW91ciBjaGFybXMsPC9BPjxicj4KKzxBIE5BTUU9My41Ljc+
VGhlIGNsb3NlIGNvbnRyaXZlciBvZiBhbGwgaGFybXMsPC9BPjxicj4KKzxBIE5BTUU9My41Ljg+
V2FzIG5ldmVyIGNhbGwnZCB0byBiZWFyIG15IHBhcnQsPC9BPjxicj4KKzxBIE5BTUU9My41Ljk+
T3Igc2hvdyB0aGUgZ2xvcnkgb2Ygb3VyIGFydD88L0E+PGJyPgorPEEgTkFNRT0zLjUuMTA+QW5k
LCB3aGljaCBpcyB3b3JzZSwgYWxsIHlvdSBoYXZlIGRvbmU8L0E+PGJyPgorPEEgTkFNRT0zLjUu
MTE+SGF0aCBiZWVuIGJ1dCBmb3IgYSB3YXl3YXJkIHNvbiw8L0E+PGJyPgorPEEgTkFNRT0zLjUu
MTI+U3BpdGVmdWwgYW5kIHdyYXRoZnVsLCB3aG8sIGFzIG90aGVycyBkbyw8L0E+PGJyPgorPEEg
TkFNRT0zLjUuMTM+TG92ZXMgZm9yIGhpcyBvd24gZW5kcywgbm90IGZvciB5b3UuPC9BPjxicj4K
KzxBIE5BTUU9My41LjE0PkJ1dCBtYWtlIGFtZW5kcyBub3c6IGdldCB5b3UgZ29uZSw8L0E+PGJy
PgorPEEgTkFNRT0zLjUuMTU+QW5kIGF0IHRoZSBwaXQgb2YgQWNoZXJvbjwvQT48YnI+Cis8QSBO
QU1FPTMuNS4xNj5NZWV0IG1lIGknIHRoZSBtb3JuaW5nOiB0aGl0aGVyIGhlPC9BPjxicj4KKzxB
IE5BTUU9My41LjE3PldpbGwgY29tZSB0byBrbm93IGhpcyBkZXN0aW55OjwvQT48YnI+Cis8QSBO
QU1FPTMuNS4xOD5Zb3VyIHZlc3NlbHMgYW5kIHlvdXIgc3BlbGxzIHByb3ZpZGUsPC9BPjxicj4K
KzxBIE5BTUU9My41LjE5PllvdXIgY2hhcm1zIGFuZCBldmVyeSB0aGluZyBiZXNpZGUuPC9BPjxi
cj4KKzxBIE5BTUU9My41LjIwPkkgYW0gZm9yIHRoZSBhaXI7IHRoaXMgbmlnaHQgSSdsbCBzcGVu
ZDwvQT48YnI+Cis8QSBOQU1FPTMuNS4yMT5VbnRvIGEgZGlzbWFsIGFuZCBhIGZhdGFsIGVuZDo8
L0E+PGJyPgorPEEgTkFNRT0zLjUuMjI+R3JlYXQgYnVzaW5lc3MgbXVzdCBiZSB3cm91Z2h0IGVy
ZSBub29uOjwvQT48YnI+Cis8QSBOQU1FPTMuNS4yMz5VcG9uIHRoZSBjb3JuZXIgb2YgdGhlIG1v
b248L0E+PGJyPgorPEEgTkFNRT0zLjUuMjQ+VGhlcmUgaGFuZ3MgYSB2YXBvcm91cyBkcm9wIHBy
b2ZvdW5kOzwvQT48YnI+Cis8QSBOQU1FPTMuNS4yNT5JJ2xsIGNhdGNoIGl0IGVyZSBpdCBjb21l
IHRvIGdyb3VuZDo8L0E+PGJyPgorPEEgTkFNRT0zLjUuMjY+QW5kIHRoYXQgZGlzdGlsbCdkIGJ5
IG1hZ2ljIHNsZWlnaHRzPC9BPjxicj4KKzxBIE5BTUU9My41LjI3PlNoYWxsIHJhaXNlIHN1Y2gg
YXJ0aWZpY2lhbCBzcHJpdGVzPC9BPjxicj4KKzxBIE5BTUU9My41LjI4PkFzIGJ5IHRoZSBzdHJl
bmd0aCBvZiB0aGVpciBpbGx1c2lvbjwvQT48YnI+Cis8QSBOQU1FPTMuNS4yOT5TaGFsbCBkcmF3
IGhpbSBvbiB0byBoaXMgY29uZnVzaW9uOjwvQT48YnI+Cis8QSBOQU1FPTMuNS4zMD5IZSBzaGFs
bCBzcHVybiBmYXRlLCBzY29ybiBkZWF0aCwgYW5kIGJlYXI8L0E+PGJyPgorPEEgTkFNRT0zLjUu
MzE+SGUgaG9wZXMgJ2JvdmUgd2lzZG9tLCBncmFjZSBhbmQgZmVhcjo8L0E+PGJyPgorPEEgTkFN
RT0zLjUuMzI+QW5kIHlvdSBhbGwga25vdywgc2VjdXJpdHk8L0E+PGJyPgorPEEgTkFNRT0zLjUu
MzM+SXMgbW9ydGFscycgY2hpZWZlc3QgZW5lbXkuPC9BPjxicj4KKzxwPjxpPk11c2ljIGFuZCBh
IHNvbmcgd2l0aGluOiAnQ29tZSBhd2F5LCBjb21lIGF3YXksJyAgJiBjPC9pPjwvcD4KKzxBIE5B
TUU9My41LjM0PkhhcmshIEkgYW0gY2FsbCdkOyBteSBsaXR0bGUgc3Bpcml0LCBzZWUsPC9BPjxi
cj4KKzxBIE5BTUU9My41LjM1PlNpdHMgaW4gYSBmb2dneSBjbG91ZCwgYW5kIHN0YXlzIGZvciBt
ZS48L0E+PGJyPgorPHA+PGk+RXhpdDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMz48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My41
LjM2PkNvbWUsIGxldCdzIG1ha2UgaGFzdGU7IHNoZSdsbCBzb29uIGJlIGJhY2sgYWdhaW4uPC9B
Pjxicj4KKzxwPjxpPkV4ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgVkku
IEZvcnJlcy4gVGhlIHBhbGFjZS48L2gzPgorPHA+PGJsb2NrcXVvdGU+Cis8aT5FbnRlciBMRU5O
T1ggYW5kIGFub3RoZXIgTG9yZDwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gx
PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My42LjE+TXkgZm9ybWVy
IHNwZWVjaGVzIGhhdmUgYnV0IGhpdCB5b3VyIHRob3VnaHRzLDwvQT48YnI+Cis8QSBOQU1FPTMu
Ni4yPldoaWNoIGNhbiBpbnRlcnByZXQgZnVydGhlcjogb25seSwgSSBzYXksPC9BPjxicj4KKzxB
IE5BTUU9My42LjM+VGhpbmdzIGhhdmUgYmVlbiBzdHJhbmdlbHkgYm9ybmUuIFRoZTwvQT48YnI+
Cis8QSBOQU1FPTMuNi40PmdyYWNpb3VzIER1bmNhbjwvQT48YnI+Cis8QSBOQU1FPTMuNi41Pldh
cyBwaXRpZWQgb2YgTWFjYmV0aDogbWFycnksIGhlIHdhcyBkZWFkOjwvQT48YnI+Cis8QSBOQU1F
PTMuNi42PkFuZCB0aGUgcmlnaHQtdmFsaWFudCBCYW5xdW8gd2FsaydkIHRvbyBsYXRlOzwvQT48
YnI+Cis8QSBOQU1FPTMuNi43Pldob20sIHlvdSBtYXkgc2F5LCBpZid0IHBsZWFzZSB5b3UsIEZs
ZWFuY2Uga2lsbCdkLDwvQT48YnI+Cis8QSBOQU1FPTMuNi44PkZvciBGbGVhbmNlIGZsZWQ6IG1l
biBtdXN0IG5vdCB3YWxrIHRvbyBsYXRlLjwvQT48YnI+Cis8QSBOQU1FPTMuNi45PldobyBjYW5u
b3Qgd2FudCB0aGUgdGhvdWdodCBob3cgbW9uc3Ryb3VzPC9BPjxicj4KKzxBIE5BTUU9My42LjEw
Pkl0IHdhcyBmb3IgTWFsY29sbSBhbmQgZm9yIERvbmFsYmFpbjwvQT48YnI+Cis8QSBOQU1FPTMu
Ni4xMT5UbyBraWxsIHRoZWlyIGdyYWNpb3VzIGZhdGhlcj8gZGFtbmVkIGZhY3QhPC9BPjxicj4K
KzxBIE5BTUU9My42LjEyPkhvdyBpdCBkaWQgZ3JpZXZlIE1hY2JldGghIGRpZCBoZSBub3Qgc3Ry
YWlnaHQ8L0E+PGJyPgorPEEgTkFNRT0zLjYuMTM+SW4gcGlvdXMgcmFnZSB0aGUgdHdvIGRlbGlu
cXVlbnRzIHRlYXIsPC9BPjxicj4KKzxBIE5BTUU9My42LjE0PlRoYXQgd2VyZSB0aGUgc2xhdmVz
IG9mIGRyaW5rIGFuZCB0aHJhbGxzIG9mIHNsZWVwPzwvQT48YnI+Cis8QSBOQU1FPTMuNi4xNT5X
YXMgbm90IHRoYXQgbm9ibHkgZG9uZT8gQXksIGFuZCB3aXNlbHkgdG9vOzwvQT48YnI+Cis8QSBO
QU1FPTMuNi4xNj5Gb3IgJ3R3b3VsZCBoYXZlIGFuZ2VyJ2QgYW55IGhlYXJ0IGFsaXZlPC9BPjxi
cj4KKzxBIE5BTUU9My42LjE3PlRvIGhlYXIgdGhlIG1lbiBkZW55J3QuIFNvIHRoYXQsIEkgc2F5
LDwvQT48YnI+Cis8QSBOQU1FPTMuNi4xOD5IZSBoYXMgYm9ybmUgYWxsIHRoaW5ncyB3ZWxsOiBh
bmQgSSBkbyB0aGluazwvQT48YnI+Cis8QSBOQU1FPTMuNi4xOT5UaGF0IGhhZCBoZSBEdW5jYW4n
cyBzb25zIHVuZGVyIGhpcyBrZXktLTwvQT48YnI+Cis8QSBOQU1FPTMuNi4yMD5BcywgYW4ndCBw
bGVhc2UgaGVhdmVuLCBoZSBzaGFsbCBub3QtLXRoZXk8L0E+PGJyPgorPEEgTkFNRT0zLjYuMjE+
c2hvdWxkIGZpbmQ8L0E+PGJyPgorPEEgTkFNRT0zLjYuMjI+V2hhdCAndHdlcmUgdG8ga2lsbCBh
IGZhdGhlcjsgc28gc2hvdWxkIEZsZWFuY2UuPC9BPjxicj4KKzxBIE5BTUU9My42LjIzPkJ1dCwg
cGVhY2UhIGZvciBmcm9tIGJyb2FkIHdvcmRzIGFuZCAnY2F1c2UgaGUgZmFpbCdkPC9BPjxicj4K
KzxBIE5BTUU9My42LjI0PkhpcyBwcmVzZW5jZSBhdCB0aGUgdHlyYW50J3MgZmVhc3QsIEkgaGVh
cjwvQT48YnI+Cis8QSBOQU1FPTMuNi4yNT5NYWNkdWZmIGxpdmVzIGluIGRpc2dyYWNlOiBzaXIs
IGNhbiB5b3UgdGVsbDwvQT48YnI+Cis8QSBOQU1FPTMuNi4yNj5XaGVyZSBoZSBiZXN0b3dzIGhp
bXNlbGY/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPkxvcmQ8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTMuNi4yNz5UaGUgc29uIG9mIER1bmNhbiw8
L0E+PGJyPgorPEEgTkFNRT0zLjYuMjg+RnJvbSB3aG9tIHRoaXMgdHlyYW50IGhvbGRzIHRoZSBk
dWUgb2YgYmlydGg8L0E+PGJyPgorPEEgTkFNRT0zLjYuMjk+TGl2ZXMgaW4gdGhlIEVuZ2xpc2gg
Y291cnQsIGFuZCBpcyByZWNlaXZlZDwvQT48YnI+Cis8QSBOQU1FPTMuNi4zMD5PZiB0aGUgbW9z
dCBwaW91cyBFZHdhcmQgd2l0aCBzdWNoIGdyYWNlPC9BPjxicj4KKzxBIE5BTUU9My42LjMxPlRo
YXQgdGhlIG1hbGV2b2xlbmNlIG9mIGZvcnR1bmUgbm90aGluZzwvQT48YnI+Cis8QSBOQU1FPTMu
Ni4zMj5UYWtlcyBmcm9tIGhpcyBoaWdoIHJlc3BlY3Q6IHRoaXRoZXIgTWFjZHVmZjwvQT48YnI+
Cis8QSBOQU1FPTMuNi4zMz5JcyBnb25lIHRvIHByYXkgdGhlIGhvbHkga2luZywgdXBvbiBoaXMg
YWlkPC9BPjxicj4KKzxBIE5BTUU9My42LjM0PlRvIHdha2UgTm9ydGh1bWJlcmxhbmQgYW5kIHdh
cmxpa2UgU2l3YXJkOjwvQT48YnI+Cis8QSBOQU1FPTMuNi4zNT5UaGF0LCBieSB0aGUgaGVscCBv
ZiB0aGVzZS0td2l0aCBIaW0gYWJvdmU8L0E+PGJyPgorPEEgTkFNRT0zLjYuMzY+VG8gcmF0aWZ5
IHRoZSB3b3JrLS13ZSBtYXkgYWdhaW48L0E+PGJyPgorPEEgTkFNRT0zLjYuMzc+R2l2ZSB0byBv
dXIgdGFibGVzIG1lYXQsIHNsZWVwIHRvIG91ciBuaWdodHMsPC9BPjxicj4KKzxBIE5BTUU9My42
LjM4PkZyZWUgZnJvbSBvdXIgZmVhc3RzIGFuZCBiYW5xdWV0cyBibG9vZHkga25pdmVzLDwvQT48
YnI+Cis8QSBOQU1FPTMuNi4zOT5EbyBmYWl0aGZ1bCBob21hZ2UgYW5kIHJlY2VpdmUgZnJlZSBo
b25vdXJzOjwvQT48YnI+Cis8QSBOQU1FPTMuNi40MD5BbGwgd2hpY2ggd2UgcGluZSBmb3Igbm93
OiBhbmQgdGhpcyByZXBvcnQ8L0E+PGJyPgorPEEgTkFNRT0zLjYuNDE+SGF0aCBzbyBleGFzcGVy
YXRlIHRoZSBraW5nIHRoYXQgaGU8L0E+PGJyPgorPEEgTkFNRT0zLjYuNDI+UHJlcGFyZXMgZm9y
IHNvbWUgYXR0ZW1wdCBvZiB3YXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gzPjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My42LjQzPlNl
bnQgaGUgdG8gTWFjZHVmZj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDQ+PGI+TG9yZDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My42LjQ0PkhlIGRpZDog
YW5kIHdpdGggYW4gYWJzb2x1dGUgJ1Npciwgbm90IEksJzwvQT48YnI+Cis8QSBOQU1FPTMuNi40
NT5UaGUgY2xvdWR5IG1lc3NlbmdlciB0dXJucyBtZSBoaXMgYmFjayw8L0E+PGJyPgorPEEgTkFN
RT0zLjYuNDY+QW5kIGh1bXMsIGFzIHdobyBzaG91bGQgc2F5ICdZb3UnbGwgcnVlIHRoZSB0aW1l
PC9BPjxicj4KKzxBIE5BTUU9My42LjQ3PlRoYXQgY2xvZ3MgbWUgd2l0aCB0aGlzIGFuc3dlci4n
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPkxFTk5PWDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9My42LjQ4PkFuZCB0aGF0IHdlbGwgbWlnaHQ8L0E+
PGJyPgorPEEgTkFNRT0zLjYuNDk+QWR2aXNlIGhpbSB0byBhIGNhdXRpb24sIHRvIGhvbGQgd2hh
dCBkaXN0YW5jZTwvQT48YnI+Cis8QSBOQU1FPTMuNi41MD5IaXMgd2lzZG9tIGNhbiBwcm92aWRl
LiBTb21lIGhvbHkgYW5nZWw8L0E+PGJyPgorPEEgTkFNRT0zLjYuNTE+Rmx5IHRvIHRoZSBjb3Vy
dCBvZiBFbmdsYW5kIGFuZCB1bmZvbGQ8L0E+PGJyPgorPEEgTkFNRT0zLjYuNTI+SGlzIG1lc3Nh
Z2UgZXJlIGhlIGNvbWUsIHRoYXQgYSBzd2lmdCBibGVzc2luZzwvQT48YnI+Cis8QSBOQU1FPTMu
Ni41Mz5NYXkgc29vbiByZXR1cm4gdG8gdGhpcyBvdXIgc3VmZmVyaW5nIGNvdW50cnk8L0E+PGJy
PgorPEEgTkFNRT0zLjYuNTQ+VW5kZXIgYSBoYW5kIGFjY3Vyc2VkITwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5Mb3JkPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT0zLjYuNTU+SSdsbCBzZW5kIG15IHByYXllcnMgd2l0aCBoaW0uPC9BPjxicj4KKzxw
PjxpPkV4ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+PHA+Cis8SDM+QUNUIElWPC9oMz4KKzxo
Mz5TQ0VORSBJLiBBIGNhdmVybi4gSW4gdGhlIG1pZGRsZSwgYSBib2lsaW5nIGNhdWxkcm9uLjwv
aDM+Cis8cD48YmxvY2txdW90ZT4KKzxpPlRodW5kZXIuIEVudGVyIHRoZSB0aHJlZSBXaXRjaGVz
PC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+Rmlyc3QgV2l0Y2g8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xPlRocmljZSB0aGUgYnJpbmRlZCBjYXQg
aGF0aCBtZXcnZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+
U2Vjb25kIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMj5UaHJpY2Ug
YW5kIG9uY2UgdGhlIGhlZGdlLXBpZyB3aGluZWQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gzPjxiPlRoaXJkIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjEuMz5IYXJwaWVyIGNyaWVzICdUaXMgdGltZSwgJ3RpcyB0aW1lLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjQ+Um91bmQgYWJvdXQgdGhlIGNhdWxkcm9uIGdvOzwv
QT48YnI+Cis8QSBOQU1FPTQuMS41PkluIHRoZSBwb2lzb24nZCBlbnRyYWlscyB0aHJvdy48L0E+
PGJyPgorPEEgTkFNRT00LjEuNj5Ub2FkLCB0aGF0IHVuZGVyIGNvbGQgc3RvbmU8L0E+PGJyPgor
PEEgTkFNRT00LjEuNz5EYXlzIGFuZCBuaWdodHMgaGFzIHRoaXJ0eS1vbmU8L0E+PGJyPgorPEEg
TkFNRT00LjEuOD5Td2VsdGVyJ2QgdmVub20gc2xlZXBpbmcgZ290LDwvQT48YnI+Cis8QSBOQU1F
PTQuMS45PkJvaWwgdGhvdSBmaXJzdCBpJyB0aGUgY2hhcm1lZCBwb3QuPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPkFMTDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NC4xLjEwPkRvdWJsZSwgZG91YmxlIHRvaWwgYW5kIHRyb3VibGU7PC9BPjxicj4K
KzxBIE5BTUU9NC4xLjExPkZpcmUgYnVybiwgYW5kIGNhdWxkcm9uIGJ1YmJsZS48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+U2Vjb25kIFdpdGNoPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTI+RmlsbGV0IG9mIGEgZmVubnkgc25ha2UsPC9B
Pjxicj4KKzxBIE5BTUU9NC4xLjEzPkluIHRoZSBjYXVsZHJvbiBib2lsIGFuZCBiYWtlOzwvQT48
YnI+Cis8QSBOQU1FPTQuMS4xND5FeWUgb2YgbmV3dCBhbmQgdG9lIG9mIGZyb2csPC9BPjxicj4K
KzxBIE5BTUU9NC4xLjE1Pldvb2wgb2YgYmF0IGFuZCB0b25ndWUgb2YgZG9nLDwvQT48YnI+Cis8
QSBOQU1FPTQuMS4xNj5BZGRlcidzIGZvcmsgYW5kIGJsaW5kLXdvcm0ncyBzdGluZyw8L0E+PGJy
PgorPEEgTkFNRT00LjEuMTc+TGl6YXJkJ3MgbGVnIGFuZCBvd2xldCdzIHdpbmcsPC9BPjxicj4K
KzxBIE5BTUU9NC4xLjE4PkZvciBhIGNoYXJtIG9mIHBvd2VyZnVsIHRyb3VibGUsPC9BPjxicj4K
KzxBIE5BTUU9NC4xLjE5Pkxpa2UgYSBoZWxsLWJyb3RoIGJvaWwgYW5kIGJ1YmJsZS48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+QUxMPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjEuMjA+RG91YmxlLCBkb3VibGUgdG9pbCBhbmQgdHJvdWJsZTs8
L0E+PGJyPgorPEEgTkFNRT00LjEuMjE+RmlyZSBidXJuIGFuZCBjYXVsZHJvbiBidWJibGUuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPlRoaXJkIFdpdGNoPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMjI+U2NhbGUgb2YgZHJhZ29uLCB0b290
aCBvZiB3b2xmLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4yMz5XaXRjaGVzJyBtdW1teSwgbWF3IGFu
ZCBndWxmPC9BPjxicj4KKzxBIE5BTUU9NC4xLjI0Pk9mIHRoZSByYXZpbidkIHNhbHQtc2VhIHNo
YXJrLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4yNT5Sb290IG9mIGhlbWxvY2sgZGlnZydkIGknIHRo
ZSBkYXJrLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4yNj5MaXZlciBvZiBibGFzcGhlbWluZyBKZXcs
PC9BPjxicj4KKzxBIE5BTUU9NC4xLjI3PkdhbGwgb2YgZ29hdCwgYW5kIHNsaXBzIG9mIHlldzwv
QT48YnI+Cis8QSBOQU1FPTQuMS4yOD5TaWx2ZXInZCBpbiB0aGUgbW9vbidzIGVjbGlwc2UsPC9B
Pjxicj4KKzxBIE5BTUU9NC4xLjI5Pk5vc2Ugb2YgVHVyayBhbmQgVGFydGFyJ3MgbGlwcyw8L0E+
PGJyPgorPEEgTkFNRT00LjEuMzA+RmluZ2VyIG9mIGJpcnRoLXN0cmFuZ2xlZCBiYWJlPC9BPjxi
cj4KKzxBIE5BTUU9NC4xLjMxPkRpdGNoLWRlbGl2ZXInZCBieSBhIGRyYWIsPC9BPjxicj4KKzxB
IE5BTUU9NC4xLjMyPk1ha2UgdGhlIGdydWVsIHRoaWNrIGFuZCBzbGFiOjwvQT48YnI+Cis8QSBO
QU1FPTQuMS4zMz5BZGQgdGhlcmV0byBhIHRpZ2VyJ3MgY2hhdWRyb24sPC9BPjxicj4KKzxBIE5B
TUU9NC4xLjM0PkZvciB0aGUgaW5ncmVkaWVudHMgb2Ygb3VyIGNhdWxkcm9uLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTQuMS4zNT5Eb3VibGUsIGRvdWJsZSB0b2lsIGFuZCB0cm91YmxlOzwvQT48
YnI+Cis8QSBOQU1FPTQuMS4zNj5GaXJlIGJ1cm4gYW5kIGNhdWxkcm9uIGJ1YmJsZS48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPlNlY29uZCBXaXRjaDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjM3PkNvb2wgaXQgd2l0aCBhIGJhYm9vbidz
IGJsb29kLDwvQT48YnI+Cis8QSBOQU1FPTQuMS4zOD5UaGVuIHRoZSBjaGFybSBpcyBmaXJtIGFu
ZCBnb29kLjwvQT48YnI+Cis8cD48aT5FbnRlciBIRUNBVEUgdG8gdGhlIG90aGVyIHRocmVlIFdp
dGNoZXM8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDExPjxiPkhFQ0FU
RTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjM5Pk8gd2VsbCBkb25lISBJIGNv
bW1lbmQgeW91ciBwYWluczs8L0E+PGJyPgorPEEgTkFNRT00LjEuNDA+QW5kIGV2ZXJ5IG9uZSBz
aGFsbCBzaGFyZSBpJyB0aGUgZ2FpbnM7PC9BPjxicj4KKzxBIE5BTUU9NC4xLjQxPkFuZCBub3cg
YWJvdXQgdGhlIGNhdWxkcm9uIHNpbmcsPC9BPjxicj4KKzxBIE5BTUU9NC4xLjQyPkxpdmUgZWx2
ZXMgYW5kIGZhaXJpZXMgaW4gYSByaW5nLDwvQT48YnI+Cis8QSBOQU1FPTQuMS40Mz5FbmNoYW50
aW5nIGFsbCB0aGF0IHlvdSBwdXQgaW4uPC9BPjxicj4KKzxwPjxpPk11c2ljIGFuZCBhIHNvbmc6
ICdCbGFjayBzcGlyaXRzLCcgICYgYzwvaT48L3A+Cis8cD48aT5IRUNBVEUgcmV0aXJlczwvaT48
L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+U2Vjb25kIFdpdGNoPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuNDQ+QnkgdGhlIHByaWNraW5nIG9mIG15
IHRodW1icyw8L0E+PGJyPgorPEEgTkFNRT00LjEuNDU+U29tZXRoaW5nIHdpY2tlZCB0aGlzIHdh
eSBjb21lcy48L0E+PGJyPgorPEEgTkFNRT00LjEuNDY+T3BlbiwgbG9ja3MsPC9BPjxicj4KKzxB
IE5BTUU9NC4xLjQ3Pldob2V2ZXIga25vY2tzITwvQT48YnI+Cis8cD48aT5FbnRlciBNQUNCRVRI
PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5NQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuNDg+SG93IG5vdywgeW91IHNlY3JldCwg
YmxhY2ssIGFuZCBtaWRuaWdodCBoYWdzITwvQT48YnI+Cis8QSBOQU1FPTQuMS40OT5XaGF0IGlz
J3QgeW91IGRvPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTQ+PGI+
QUxMPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuNTA+ICAgICAgICAgICAgICAg
ICAgQSBkZWVkIHdpdGhvdXQgYSBuYW1lLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoMTU+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4x
LjUxPkkgY29uanVyZSB5b3UsIGJ5IHRoYXQgd2hpY2ggeW91IHByb2Zlc3MsPC9BPjxicj4KKzxB
IE5BTUU9NC4xLjUyPkhvd2UnZXIgeW91IGNvbWUgdG8ga25vdyBpdCwgYW5zd2VyIG1lOjwvQT48
YnI+Cis8QSBOQU1FPTQuMS41Mz5UaG91Z2ggeW91IHVudGllIHRoZSB3aW5kcyBhbmQgbGV0IHRo
ZW0gZmlnaHQ8L0E+PGJyPgorPEEgTkFNRT00LjEuNTQ+QWdhaW5zdCB0aGUgY2h1cmNoZXM7IHRo
b3VnaCB0aGUgeWVzdHkgd2F2ZXM8L0E+PGJyPgorPEEgTkFNRT00LjEuNTU+Q29uZm91bmQgYW5k
IHN3YWxsb3cgbmF2aWdhdGlvbiB1cDs8L0E+PGJyPgorPEEgTkFNRT00LjEuNTY+VGhvdWdoIGJs
YWRlZCBjb3JuIGJlIGxvZGdlZCBhbmQgdHJlZXMgYmxvd24gZG93bjs8L0E+PGJyPgorPEEgTkFN
RT00LjEuNTc+VGhvdWdoIGNhc3RsZXMgdG9wcGxlIG9uIHRoZWlyIHdhcmRlcnMnIGhlYWRzOzwv
QT48YnI+Cis8QSBOQU1FPTQuMS41OD5UaG91Z2ggcGFsYWNlcyBhbmQgcHlyYW1pZHMgZG8gc2xv
cGU8L0E+PGJyPgorPEEgTkFNRT00LjEuNTk+VGhlaXIgaGVhZHMgdG8gdGhlaXIgZm91bmRhdGlv
bnM7IHRob3VnaCB0aGUgdHJlYXN1cmU8L0E+PGJyPgorPEEgTkFNRT00LjEuNjA+T2YgbmF0dXJl
J3MgZ2VybWVucyB0dW1ibGUgYWxsIHRvZ2V0aGVyLDwvQT48YnI+Cis8QSBOQU1FPTQuMS42MT5F
dmVuIHRpbGwgZGVzdHJ1Y3Rpb24gc2lja2VuOyBhbnN3ZXIgbWU8L0E+PGJyPgorPEEgTkFNRT00
LjEuNjI+VG8gd2hhdCBJIGFzayB5b3UuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2gxNj48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4xLjYzPiAgICAgICAgICAgICAgICAgIFNwZWFrLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMTc+PGI+U2Vjb25kIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjEuNjQ+RGVtYW5kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMTg+PGI+VGhpcmQgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQu
MS42NT5XZSdsbCBhbnN3ZXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxOT48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjY2
PlNheSwgaWYgdGhvdSdkc3QgcmF0aGVyIGhlYXIgaXQgZnJvbSBvdXIgbW91dGhzLDwvQT48YnI+
Cis8QSBOQU1FPTQuMS42Nz5PciBmcm9tIG91ciBtYXN0ZXJzPzwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NC4xLjY4PkNhbGwgJ2VtOyBsZXQgbWUgc2VlICdlbS48L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIxPjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjEuNjk+UG91ciBpbiBzb3cncyBibG9vZCwgdGhhdCBoYXRoIGVh
dGVuPC9BPjxicj4KKzxBIE5BTUU9NC4xLjcwPkhlciBuaW5lIGZhcnJvdzsgZ3JlYXNlIHRoYXQn
cyBzd2VhdGVuPC9BPjxicj4KKzxBIE5BTUU9NC4xLjcxPkZyb20gdGhlIG11cmRlcmVyJ3MgZ2li
YmV0IHRocm93PC9BPjxicj4KKzxBIE5BTUU9NC4xLjcyPkludG8gdGhlIGZsYW1lLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjI+PGI+QUxMPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjEuNzM+ICAgICAgICAgICAgICAgICAgQ29tZSwgaGlnaCBvciBs
b3c7PC9BPjxicj4KKzxBIE5BTUU9NC4xLjc0PlRoeXNlbGYgYW5kIG9mZmljZSBkZWZ0bHkgc2hv
dyE8L0E+PGJyPgorPHA+PGk+VGh1bmRlci4gRmlyc3QgQXBwYXJpdGlvbjogYW4gYXJtZWQgSGVh
ZDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjM+PGI+TUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjc1PlRlbGwgbWUsIHRob3UgdW5rbm93
biBwb3dlciwtLTwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjQ+PGI+
Rmlyc3QgV2l0Y2g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS43Nj5IZSBrbm93
cyB0aHkgdGhvdWdodDo8L0E+PGJyPgorPEEgTkFNRT00LjEuNzc+SGVhciBoaXMgc3BlZWNoLCBi
dXQgc2F5IHRob3Ugbm91Z2h0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMjU+PGI+Rmlyc3QgQXBwYXJpdGlvbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4xLjc4Pk1hY2JldGghIE1hY2JldGghIE1hY2JldGghIGJld2FyZSBNYWNkdWZmOzwvQT48YnI+
Cis8QSBOQU1FPTQuMS43OT5CZXdhcmUgdGhlIHRoYW5lIG9mIEZpZmUuIERpc21pc3MgbWUuIEVu
b3VnaC48L0E+PGJyPgorPHA+PGk+RGVzY2VuZHM8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDI2PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTQuMS44MD5XaGF0ZSdlciB0aG91IGFydCwgZm9yIHRoeSBnb29kIGNhdXRpb24sIHRoYW5rczs8
L0E+PGJyPgorPEEgTkFNRT00LjEuODE+VGhvdSBoYXN0IGhhcnAnZCBteSBmZWFyIGFyaWdodDog
YnV0IG9uZTwvQT48YnI+Cis8QSBOQU1FPTQuMS44Mj53b3JkIG1vcmUsLS08L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI3PjxiPkZpcnN0IFdpdGNoPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjEuODM+SGUgd2lsbCBub3QgYmUgY29tbWFuZGVkOiBoZXJl
J3MgYW5vdGhlciw8L0E+PGJyPgorPEEgTkFNRT00LjEuODQ+TW9yZSBwb3RlbnQgdGhhbiB0aGUg
Zmlyc3QuPC9BPjxicj4KKzxwPjxpPlRodW5kZXIuIFNlY29uZCBBcHBhcml0aW9uOiBBIGJsb29k
eSBDaGlsZDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjg+PGI+U2Vj
b25kIEFwcGFyaXRpb248L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS44NT5NYWNi
ZXRoISBNYWNiZXRoISBNYWNiZXRoITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMjk+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjg2
PkhhZCBJIHRocmVlIGVhcnMsIEknbGQgaGVhciB0aGVlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMzA+PGI+U2Vjb25kIEFwcGFyaXRpb248L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMS44Nz5CZSBibG9vZHksIGJvbGQsIGFuZCByZXNvbHV0ZTsgbGF1
Z2ggdG8gc2Nvcm48L0E+PGJyPgorPEEgTkFNRT00LjEuODg+VGhlIHBvd2VyIG9mIG1hbiwgZm9y
IG5vbmUgb2Ygd29tYW4gYm9ybjwvQT48YnI+Cis8QSBOQU1FPTQuMS44OT5TaGFsbCBoYXJtIE1h
Y2JldGguPC9BPjxicj4KKzxwPjxpPkRlc2NlbmRzPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gzMT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT00LjEuOTA+VGhlbiBsaXZlLCBNYWNkdWZmOiB3aGF0IG5lZWQgSSBmZWFyIG9mIHRoZWU/PC9B
Pjxicj4KKzxBIE5BTUU9NC4xLjkxPkJ1dCB5ZXQgSSdsbCBtYWtlIGFzc3VyYW5jZSBkb3VibGUg
c3VyZSw8L0E+PGJyPgorPEEgTkFNRT00LjEuOTI+QW5kIHRha2UgYSBib25kIG9mIGZhdGU6IHRo
b3Ugc2hhbHQgbm90IGxpdmU7PC9BPjxicj4KKzxBIE5BTUU9NC4xLjkzPlRoYXQgSSBtYXkgdGVs
bCBwYWxlLWhlYXJ0ZWQgZmVhciBpdCBsaWVzLDwvQT48YnI+Cis8QSBOQU1FPTQuMS45ND5BbmQg
c2xlZXAgaW4gc3BpdGUgb2YgdGh1bmRlci48L0E+PGJyPgorPHA+PGk+VGh1bmRlci4gVGhpcmQg
QXBwYXJpdGlvbjogYSBDaGlsZCBjcm93bmVkLCB3aXRoIGEgdHJlZSBpbiBoaXMgaGFuZDwvaT48
L3A+Cis8QSBOQU1FPTQuMS45NT5XaGF0IGlzIHRoaXM8L0E+PGJyPgorPEEgTkFNRT00LjEuOTY+
VGhhdCByaXNlcyBsaWtlIHRoZSBpc3N1ZSBvZiBhIGtpbmcsPC9BPjxicj4KKzxBIE5BTUU9NC4x
Ljk3PkFuZCB3ZWFycyB1cG9uIGhpcyBiYWJ5LWJyb3cgdGhlIHJvdW5kPC9BPjxicj4KKzxBIE5B
TUU9NC4xLjk4PkFuZCB0b3Agb2Ygc292ZXJlaWdudHk/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gzMj48Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTQuMS45OT5MaXN0ZW4sIGJ1dCBzcGVhayBub3QgdG8ndC48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDMzPjxiPlRoaXJkIEFwcGFyaXRpb248L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMS4xMDA+QmUgbGlvbi1tZXR0bGVkLCBwcm91ZDsgYW5kIHRha2Ug
bm8gY2FyZTwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMDE+V2hvIGNoYWZlcywgd2hvIGZyZXRzLCBv
ciB3aGVyZSBjb25zcGlyZXJzIGFyZTo8L0E+PGJyPgorPEEgTkFNRT00LjEuMTAyPk1hY2JldGgg
c2hhbGwgbmV2ZXIgdmFucXVpc2gnZCBiZSB1bnRpbDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMDM+
R3JlYXQgQmlybmFtIHdvb2QgdG8gaGlnaCBEdW5zaW5hbmUgaGlsbDwvQT48YnI+Cis8QSBOQU1F
PTQuMS4xMDQ+U2hhbGwgY29tZSBhZ2FpbnN0IGhpbS48L0E+PGJyPgorPHA+PGk+RGVzY2VuZHM8
L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM0PjxiPk1BQ0JFVEg8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xMDU+VGhhdCB3aWxsIG5ldmVyIGJlPC9B
Pjxicj4KKzxBIE5BTUU9NC4xLjEwNj5XaG8gY2FuIGltcHJlc3MgdGhlIGZvcmVzdCwgYmlkIHRo
ZSB0cmVlPC9BPjxicj4KKzxBIE5BTUU9NC4xLjEwNz5VbmZpeCBoaXMgZWFydGgtYm91bmQgcm9v
dD8gU3dlZXQgYm9kZW1lbnRzISBnb29kITwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMDg+UmViZWxs
aW9uJ3MgaGVhZCwgcmlzZSBuZXZlciB0aWxsIHRoZSB3b29kPC9BPjxicj4KKzxBIE5BTUU9NC4x
LjEwOT5PZiBCaXJuYW0gcmlzZSwgYW5kIG91ciBoaWdoLXBsYWNlZCBNYWNiZXRoPC9BPjxicj4K
KzxBIE5BTUU9NC4xLjExMD5TaGFsbCBsaXZlIHRoZSBsZWFzZSBvZiBuYXR1cmUsIHBheSBoaXMg
YnJlYXRoPC9BPjxicj4KKzxBIE5BTUU9NC4xLjExMT5UbyB0aW1lIGFuZCBtb3J0YWwgY3VzdG9t
LiBZZXQgbXkgaGVhcnQ8L0E+PGJyPgorPEEgTkFNRT00LjEuMTEyPlRocm9icyB0byBrbm93IG9u
ZSB0aGluZzogdGVsbCBtZSwgaWYgeW91ciBhcnQ8L0E+PGJyPgorPEEgTkFNRT00LjEuMTEzPkNh
biB0ZWxsIHNvIG11Y2g6IHNoYWxsIEJhbnF1bydzIGlzc3VlIGV2ZXI8L0E+PGJyPgorPEEgTkFN
RT00LjEuMTE0PlJlaWduIGluIHRoaXMga2luZ2RvbT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDM1PjxiPkFMTDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4xLjExNT5TZWVrIHRvIGtub3cgbm8gbW9yZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDM2PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTQuMS4xMTY+SSB3aWxsIGJlIHNhdGlzZmllZDogZGVueSBtZSB0aGlzLDwvQT48YnI+Cis8QSBO
QU1FPTQuMS4xMTc+QW5kIGFuIGV0ZXJuYWwgY3Vyc2UgZmFsbCBvbiB5b3UhIExldCBtZSBrbm93
LjwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMTg+V2h5IHNpbmtzIHRoYXQgY2F1bGRyb24/IGFuZCB3
aGF0IG5vaXNlIGlzIHRoaXM/PC9BPjxicj4KKzxwPjxpPkhhdXRib3lzPC9pPjwvcD4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNz48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NC4xLjExOT5TaG93ITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMzg+PGI+U2Vjb25kIFdpdGNoPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjEuMTIwPlNob3chPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gzOT48Yj5UaGlyZCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4x
LjEyMT5TaG93ITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDA+PGI+
QUxMPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTIyPlNob3cgaGlzIGV5ZXMs
IGFuZCBncmlldmUgaGlzIGhlYXJ0OzwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMjM+Q29tZSBsaWtl
IHNoYWRvd3MsIHNvIGRlcGFydCE8L0E+PGJyPgorPHA+PGk+QSBzaG93IG9mIEVpZ2h0IEtpbmdz
LCB0aGUgbGFzdCB3aXRoIGEgZ2xhc3MgaW4gaGlzIGhhbmQ7IEdIT1NUIE9GIEJBTlFVTyBmb2xs
b3dpbmc8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQxPjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xMjQ+VGhvdSBhcnQgdG9vIGxp
a2UgdGhlIHNwaXJpdCBvZiBCYW5xdW86IGRvd24hPC9BPjxicj4KKzxBIE5BTUU9NC4xLjEyNT5U
aHkgY3Jvd24gZG9lcyBzZWFyIG1pbmUgZXllLWJhbGxzLiBBbmQgdGh5IGhhaXIsPC9BPjxicj4K
KzxBIE5BTUU9NC4xLjEyNj5UaG91IG90aGVyIGdvbGQtYm91bmQgYnJvdywgaXMgbGlrZSB0aGUg
Zmlyc3QuPC9BPjxicj4KKzxBIE5BTUU9NC4xLjEyNz5BIHRoaXJkIGlzIGxpa2UgdGhlIGZvcm1l
ci4gRmlsdGh5IGhhZ3MhPC9BPjxicj4KKzxBIE5BTUU9NC4xLjEyOD5XaHkgZG8geW91IHNob3cg
bWUgdGhpcz8gQSBmb3VydGghIFN0YXJ0LCBleWVzITwvQT48YnI+Cis8QSBOQU1FPTQuMS4xMjk+
V2hhdCwgd2lsbCB0aGUgbGluZSBzdHJldGNoIG91dCB0byB0aGUgY3JhY2sgb2YgZG9vbT88L0E+
PGJyPgorPEEgTkFNRT00LjEuMTMwPkFub3RoZXIgeWV0ISBBIHNldmVudGghIEknbGwgc2VlIG5v
IG1vcmU6PC9BPjxicj4KKzxBIE5BTUU9NC4xLjEzMT5BbmQgeWV0IHRoZSBlaWdodGggYXBwZWFy
cywgd2hvIGJlYXJzIGEgZ2xhc3M8L0E+PGJyPgorPEEgTkFNRT00LjEuMTMyPldoaWNoIHNob3dz
IG1lIG1hbnkgbW9yZTsgYW5kIHNvbWUgSSBzZWU8L0E+PGJyPgorPEEgTkFNRT00LjEuMTMzPlRo
YXQgdHdvLWZvbGQgYmFsbHMgYW5kIHRyZWJsZSBzY2VwdGVycyBjYXJyeTo8L0E+PGJyPgorPEEg
TkFNRT00LjEuMTM0PkhvcnJpYmxlIHNpZ2h0ISBOb3csIEkgc2VlLCAndGlzIHRydWU7PC9BPjxi
cj4KKzxBIE5BTUU9NC4xLjEzNT5Gb3IgdGhlIGJsb29kLWJvbHRlcidkIEJhbnF1byBzbWlsZXMg
dXBvbiBtZSw8L0E+PGJyPgorPEEgTkFNRT00LjEuMTM2PkFuZCBwb2ludHMgYXQgdGhlbSBmb3Ig
aGlzLjwvQT48YnI+Cis8cD48aT5BcHBhcml0aW9ucyB2YW5pc2g8L2k+PC9wPgorPEEgTkFNRT00
LjEuMTM3PldoYXQsIGlzIHRoaXMgc28/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g0Mj48Yj5GaXJzdCBXaXRjaDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4xLjEzOD5BeSwgc2lyLCBhbGwgdGhpcyBpcyBzbzogYnV0IHdoeTwvQT48YnI+Cis8QSBOQU1F
PTQuMS4xMzk+U3RhbmRzIE1hY2JldGggdGh1cyBhbWF6ZWRseT88L0E+PGJyPgorPEEgTkFNRT00
LjEuMTQwPkNvbWUsIHNpc3RlcnMsIGNoZWVyIHdlIHVwIGhpcyBzcHJpdGVzLDwvQT48YnI+Cis8
QSBOQU1FPTQuMS4xNDE+QW5kIHNob3cgdGhlIGJlc3Qgb2Ygb3VyIGRlbGlnaHRzOjwvQT48YnI+
Cis8QSBOQU1FPTQuMS4xNDI+SSdsbCBjaGFybSB0aGUgYWlyIHRvIGdpdmUgYSBzb3VuZCw8L0E+
PGJyPgorPEEgTkFNRT00LjEuMTQzPldoaWxlIHlvdSBwZXJmb3JtIHlvdXIgYW50aWMgcm91bmQ6
PC9BPjxicj4KKzxBIE5BTUU9NC4xLjE0ND5UaGF0IHRoaXMgZ3JlYXQga2luZyBtYXkga2luZGx5
IHNheSw8L0E+PGJyPgorPEEgTkFNRT00LjEuMTQ1Pk91ciBkdXRpZXMgZGlkIGhpcyB3ZWxjb21l
IHBheS48L0E+PGJyPgorPHA+PGk+TXVzaWMuIFRoZSB3aXRjaGVzIGRhbmNlIGFuZCB0aGVuIHZh
bmlzaCwgd2l0aCBIRUNBVEU8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDQzPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNDY+V2hl
cmUgYXJlIHRoZXk/IEdvbmU/IExldCB0aGlzIHBlcm5pY2lvdXMgaG91cjwvQT48YnI+Cis8QSBO
QU1FPTQuMS4xNDc+U3RhbmQgYXllIGFjY3Vyc2VkIGluIHRoZSBjYWxlbmRhciE8L0E+PGJyPgor
PEEgTkFNRT00LjEuMTQ4PkNvbWUgaW4sIHdpdGhvdXQgdGhlcmUhPC9BPjxicj4KKzxwPjxpPkVu
dGVyIExFTk5PWDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDQ+PGI+
TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjEuMTQ5PldoYXQncyB5b3Vy
IGdyYWNlJ3Mgd2lsbD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ1
PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNTA+U2F3IHlv
dSB0aGUgd2VpcmQgc2lzdGVycz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDQ2PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjE1MT5O
bywgbXkgbG9yZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ3Pjxi
Pk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNTI+Q2FtZSB0aGV5
IG5vdCBieSB5b3U/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0OD48
Yj5MRU5OT1g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNTM+Tm8sIGluZGVl
ZCwgbXkgbG9yZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ5Pjxi
Pk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNTQ+SW5mZWN0ZWQg
YmUgdGhlIGFpciB3aGVyZW9uIHRoZXkgcmlkZTs8L0E+PGJyPgorPEEgTkFNRT00LjEuMTU1PkFu
ZCBkYW1uJ2QgYWxsIHRob3NlIHRoYXQgdHJ1c3QgdGhlbSEgSSBkaWQgaGVhcjwvQT48YnI+Cis8
QSBOQU1FPTQuMS4xNTY+VGhlIGdhbGxvcGluZyBvZiBob3JzZTogd2hvIHdhcyd0IGNhbWUgYnk/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1MD48Yj5MRU5OT1g8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNTc+J1RpcyB0d28gb3IgdGhyZWUsIG15
IGxvcmQsIHRoYXQgYnJpbmcgeW91IHdvcmQ8L0E+PGJyPgorPEEgTkFNRT00LjEuMTU4Pk1hY2R1
ZmYgaXMgZmxlZCB0byBFbmdsYW5kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoNTE+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4xLjE1
OT5GbGVkIHRvIEVuZ2xhbmQhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2g1Mj48Yj5MRU5OT1g8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNjA+QXks
IG15IGdvb2QgbG9yZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUz
PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMS4xNjE+VGltZSwg
dGhvdSBhbnRpY2lwYXRlc3QgbXkgZHJlYWQgZXhwbG9pdHM6PC9BPjxicj4KKzxBIE5BTUU9NC4x
LjE2Mj5UaGUgZmxpZ2h0eSBwdXJwb3NlIG5ldmVyIGlzIG8nZXJ0b29rPC9BPjxicj4KKzxBIE5B
TUU9NC4xLjE2Mz5Vbmxlc3MgdGhlIGRlZWQgZ28gd2l0aCBpdDsgZnJvbSB0aGlzIG1vbWVudDwv
QT48YnI+Cis8QSBOQU1FPTQuMS4xNjQ+VGhlIHZlcnkgZmlyc3RsaW5ncyBvZiBteSBoZWFydCBz
aGFsbCBiZTwvQT48YnI+Cis8QSBOQU1FPTQuMS4xNjU+VGhlIGZpcnN0bGluZ3Mgb2YgbXkgaGFu
ZC4gQW5kIGV2ZW4gbm93LDwvQT48YnI+Cis8QSBOQU1FPTQuMS4xNjY+VG8gY3Jvd24gbXkgdGhv
dWdodHMgd2l0aCBhY3RzLCBiZSBpdCB0aG91Z2h0IGFuZCBkb25lOjwvQT48YnI+Cis8QSBOQU1F
PTQuMS4xNjc+VGhlIGNhc3RsZSBvZiBNYWNkdWZmIEkgd2lsbCBzdXJwcmlzZTs8L0E+PGJyPgor
PEEgTkFNRT00LjEuMTY4PlNlaXplIHVwb24gRmlmZTsgZ2l2ZSB0byB0aGUgZWRnZSBvJyB0aGUg
c3dvcmQ8L0E+PGJyPgorPEEgTkFNRT00LjEuMTY5PkhpcyB3aWZlLCBoaXMgYmFiZXMsIGFuZCBh
bGwgdW5mb3J0dW5hdGUgc291bHM8L0E+PGJyPgorPEEgTkFNRT00LjEuMTcwPlRoYXQgdHJhY2Ug
aGltIGluIGhpcyBsaW5lLiBObyBib2FzdGluZyBsaWtlIGEgZm9vbDs8L0E+PGJyPgorPEEgTkFN
RT00LjEuMTcxPlRoaXMgZGVlZCBJJ2xsIGRvIGJlZm9yZSB0aGlzIHB1cnBvc2UgY29vbC48L0E+
PGJyPgorPEEgTkFNRT00LjEuMTcyPkJ1dCBubyBtb3JlIHNpZ2h0cyEtLVdoZXJlIGFyZSB0aGVz
ZSBnZW50bGVtZW4/PC9BPjxicj4KKzxBIE5BTUU9NC4xLjE3Mz5Db21lLCBicmluZyBtZSB3aGVy
ZSB0aGV5IGFyZS48L0E+PGJyPgorPHA+PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4K
KzxoMz5TQ0VORSBJSS4gRmlmZS4gTWFjZHVmZidzIGNhc3RsZS48L2gzPgorPHA+PGJsb2NrcXVv
dGU+Cis8aT5FbnRlciBMQURZIE1BQ0RVRkYsIGhlciBTb24sIGFuZCBST1NTPC9pPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjIuMT5XaGF0IGhhZCBoZSBkb25lLCB0byBtYWtlIGhpbSBmbHkg
dGhlIGxhbmQ/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPlJP
U1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi4yPllvdSBtdXN0IGhhdmUgcGF0
aWVuY2UsIG1hZGFtLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMz48
Yj5MQURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi4zPkhlIGhh
ZCBub25lOjwvQT48YnI+Cis8QSBOQU1FPTQuMi40PkhpcyBmbGlnaHQgd2FzIG1hZG5lc3M6IHdo
ZW4gb3VyIGFjdGlvbnMgZG8gbm90LDwvQT48YnI+Cis8QSBOQU1FPTQuMi41Pk91ciBmZWFycyBk
byBtYWtlIHVzIHRyYWl0b3JzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoND48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNj5Zb3Uga25v
dyBub3Q8L0E+PGJyPgorPEEgTkFNRT00LjIuNz5XaGV0aGVyIGl0IHdhcyBoaXMgd2lzZG9tIG9y
IGhpcyBmZWFyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5M
QURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi44Pldpc2RvbSEg
dG8gbGVhdmUgaGlzIHdpZmUsIHRvIGxlYXZlIGhpcyBiYWJlcyw8L0E+PGJyPgorPEEgTkFNRT00
LjIuOT5IaXMgbWFuc2lvbiBhbmQgaGlzIHRpdGxlcyBpbiBhIHBsYWNlPC9BPjxicj4KKzxBIE5B
TUU9NC4yLjEwPkZyb20gd2hlbmNlIGhpbXNlbGYgZG9lcyBmbHk/IEhlIGxvdmVzIHVzIG5vdDs8
L0E+PGJyPgorPEEgTkFNRT00LjIuMTE+SGUgd2FudHMgdGhlIG5hdHVyYWwgdG91Y2g6IGZvciB0
aGUgcG9vciB3cmVuLDwvQT48YnI+Cis8QSBOQU1FPTQuMi4xMj5UaGUgbW9zdCBkaW1pbnV0aXZl
IG9mIGJpcmRzLCB3aWxsIGZpZ2h0LDwvQT48YnI+Cis8QSBOQU1FPTQuMi4xMz5IZXIgeW91bmcg
b25lcyBpbiBoZXIgbmVzdCwgYWdhaW5zdCB0aGUgb3dsLjwvQT48YnI+Cis8QSBOQU1FPTQuMi4x
ND5BbGwgaXMgdGhlIGZlYXIgYW5kIG5vdGhpbmcgaXMgdGhlIGxvdmU7PC9BPjxicj4KKzxBIE5B
TUU9NC4yLjE1PkFzIGxpdHRsZSBpcyB0aGUgd2lzZG9tLCB3aGVyZSB0aGUgZmxpZ2h0PC9BPjxi
cj4KKzxBIE5BTUU9NC4yLjE2PlNvIHJ1bnMgYWdhaW5zdCBhbGwgcmVhc29uLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT00LjIuMTc+TXkgZGVhcmVzdCBjb3osPC9BPjxicj4KKzxBIE5BTUU9NC4y
LjE4PkkgcHJheSB5b3UsIHNjaG9vbCB5b3Vyc2VsZjogYnV0IGZvciB5b3VyIGh1c2JhbmQsPC9B
Pjxicj4KKzxBIE5BTUU9NC4yLjE5PkhlIGlzIG5vYmxlLCB3aXNlLCBqdWRpY2lvdXMsIGFuZCBi
ZXN0IGtub3dzPC9BPjxicj4KKzxBIE5BTUU9NC4yLjIwPlRoZSBmaXRzIG8nIHRoZSBzZWFzb24u
IEkgZGFyZSBub3Qgc3BlYWs8L0E+PGJyPgorPEEgTkFNRT00LjIuMjE+bXVjaCBmdXJ0aGVyOzwv
QT48YnI+Cis8QSBOQU1FPTQuMi4yMj5CdXQgY3J1ZWwgYXJlIHRoZSB0aW1lcywgd2hlbiB3ZSBh
cmUgdHJhaXRvcnM8L0E+PGJyPgorPEEgTkFNRT00LjIuMjM+QW5kIGRvIG5vdCBrbm93IG91cnNl
bHZlcywgd2hlbiB3ZSBob2xkIHJ1bW91cjwvQT48YnI+Cis8QSBOQU1FPTQuMi4yND5Gcm9tIHdo
YXQgd2UgZmVhciwgeWV0IGtub3cgbm90IHdoYXQgd2UgZmVhciw8L0E+PGJyPgorPEEgTkFNRT00
LjIuMjU+QnV0IGZsb2F0IHVwb24gYSB3aWxkIGFuZCB2aW9sZW50IHNlYTwvQT48YnI+Cis8QSBO
QU1FPTQuMi4yNj5FYWNoIHdheSBhbmQgbW92ZS4gSSB0YWtlIG15IGxlYXZlIG9mIHlvdTo8L0E+
PGJyPgorPEEgTkFNRT00LjIuMjc+U2hhbGwgbm90IGJlIGxvbmcgYnV0IEknbGwgYmUgaGVyZSBh
Z2Fpbjo8L0E+PGJyPgorPEEgTkFNRT00LjIuMjg+VGhpbmdzIGF0IHRoZSB3b3JzdCB3aWxsIGNl
YXNlLCBvciBlbHNlIGNsaW1iIHVwd2FyZDwvQT48YnI+Cis8QSBOQU1FPTQuMi4yOT5UbyB3aGF0
IHRoZXkgd2VyZSBiZWZvcmUuIE15IHByZXR0eSBjb3VzaW4sPC9BPjxicj4KKzxBIE5BTUU9NC4y
LjMwPkJsZXNzaW5nIHVwb24geW91ITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoNz48Yj5MQURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQu
Mi4zMT5GYXRoZXInZCBoZSBpcywgYW5kIHlldCBoZSdzIGZhdGhlcmxlc3MuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTQuMi4zMj5JIGFtIHNvIG11Y2ggYSBmb29sLCBzaG91bGQgSSBzdGF5IGxv
bmdlciw8L0E+PGJyPgorPEEgTkFNRT00LjIuMzM+SXQgd291bGQgYmUgbXkgZGlzZ3JhY2UgYW5k
IHlvdXIgZGlzY29tZm9ydDo8L0E+PGJyPgorPEEgTkFNRT00LjIuMzQ+SSB0YWtlIG15IGxlYXZl
IGF0IG9uY2UuPC9BPjxicj4KKzxwPjxpPkV4aXQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDk+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjIuMzU+U2lycmFoLCB5b3VyIGZhdGhlcidzIGRlYWQ7PC9BPjxicj4KKzxBIE5BTUU9
NC4yLjM2PkFuZCB3aGF0IHdpbGwgeW91IGRvIG5vdz8gSG93IHdpbGwgeW91IGxpdmU/PC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMD48Yj5Tb248L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTQuMi4zNz5BcyBiaXJkcyBkbywgbW90aGVyLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTE+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuMzg+V2hhdCwgd2l0aCB3b3JtcyBhbmQgZmxpZXM/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMj48Yj5Tb248L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi4zOT5XaXRoIHdoYXQgSSBnZXQsIEkgbWVhbjsg
YW5kIHNvIGRvIHRoZXkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gx
Mz48Yj5MQURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi40MD5Q
b29yIGJpcmQhIHRob3UnbGRzdCBuZXZlciBmZWFyIHRoZSBuZXQgbm9yIGxpbWUsPC9BPjxicj4K
KzxBIE5BTUU9NC4yLjQxPlRoZSBwaXRmYWxsIG5vciB0aGUgZ2luLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTQ+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjIuNDI+V2h5IHNob3VsZCBJLCBtb3RoZXI/IFBvb3IgYmlyZHMgdGhleSBhcmUg
bm90IHNldCBmb3IuPC9BPjxicj4KKzxBIE5BTUU9NC4yLjQzPk15IGZhdGhlciBpcyBub3QgZGVh
ZCwgZm9yIGFsbCB5b3VyIHNheWluZy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDE1PjxiPkxBRFkgTUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NC4yLjQ0PlllcywgaGUgaXMgZGVhZDsgaG93IHdpbHQgdGhvdSBkbyBmb3IgYSBmYXRoZXI/PC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNj48Yj5Tb248L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi40NT5OYXksIGhvdyB3aWxsIHlvdSBkbyBmb3IgYSBo
dXNiYW5kPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+PGI+TEFE
WSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNDY+V2h5LCBJIGNh
biBidXkgbWUgdHdlbnR5IGF0IGFueSBtYXJrZXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxOD48Yj5Tb248L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQu
Mi40Nz5UaGVuIHlvdSdsbCBidXkgJ2VtIHRvIHNlbGwgYWdhaW4uPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOT48Yj5MQURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMi40OD5UaG91IHNwZWFrJ3N0IHdpdGggYWxsIHRoeSB3aXQ6IGFu
ZCB5ZXQsIGknIGZhaXRoLDwvQT48YnI+Cis8QSBOQU1FPTQuMi40OT5XaXRoIHdpdCBlbm91Z2gg
Zm9yIHRoZWUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMD48Yj5T
b248L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi41MD5XYXMgbXkgZmF0aGVyIGEg
dHJhaXRvciwgbW90aGVyPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MjE+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNTE+
QXksIHRoYXQgaGUgd2FzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MjI+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuNTI+V2hhdCBpcyBh
IHRyYWl0b3I/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMz48Yj5M
QURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi41Mz5XaHksIG9u
ZSB0aGF0IHN3ZWFycyBhbmQgbGllcy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDI0PjxiPlNvbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjU0PkFu
ZCBiZSBhbGwgdHJhaXRvcnMgdGhhdCBkbyBzbz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDI1PjxiPkxBRFkgTUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NC4yLjU1PkV2ZXJ5IG9uZSB0aGF0IGRvZXMgc28gaXMgYSB0cmFpdG9yLCBhbmQgbXVz
dCBiZSBoYW5nZWQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyNj48
Yj5Tb248L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi41Nj5BbmQgbXVzdCB0aGV5
IGFsbCBiZSBoYW5nZWQgdGhhdCBzd2VhciBhbmQgbGllPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMjc+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT00LjIuNTc+RXZlcnkgb25lLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMjg+PGI+U29uPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIu
NTg+V2hvIG11c3QgaGFuZyB0aGVtPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9
c3BlZWNoMjk+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00
LjIuNTk+V2h5LCAgdGhlIGhvbmVzdCBtZW4uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2gzMD48Yj5Tb248L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi42
MD5UaGVuIHRoZSBsaWFycyBhbmQgc3dlYXJlcnMgYXJlIGZvb2xzLDwvQT48YnI+Cis8QSBOQU1F
PTQuMi42MT5mb3IgdGhlcmUgYXJlIGxpYXJzIGFuZCBzd2VhcmVycyBlbm93IHRvIGJlYXQ8L0E+
PGJyPgorPEEgTkFNRT00LjIuNjI+dGhlIGhvbmVzdCBtZW4gYW5kIGhhbmcgdXAgdGhlbS48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMxPjxiPkxBRFkgTUFDRFVGRjwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjYzPk5vdywgR29kIGhlbHAgdGhlZSwg
cG9vciBtb25rZXkhPC9BPjxicj4KKzxBIE5BTUU9NC4yLjY0PkJ1dCBob3cgd2lsdCB0aG91IGRv
IGZvciBhIGZhdGhlcj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMy
PjxiPlNvbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjY1PklmIGhlIHdlcmUg
ZGVhZCwgeW91J2xkIHdlZXAgZm9yPC9BPjxicj4KKzxBIE5BTUU9NC4yLjY2PmhpbTogaWYgeW91
IHdvdWxkIG5vdCwgaXQgd2VyZSBhIGdvb2Qgc2lnbjwvQT48YnI+Cis8QSBOQU1FPTQuMi42Nz50
aGF0IEkgc2hvdWxkIHF1aWNrbHkgaGF2ZSBhIG5ldyBmYXRoZXIuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMz48Yj5MQURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMi42OD5Qb29yIHByYXR0bGVyLCBob3cgdGhvdSB0YWxrJ3N0ITwv
QT48YnI+Cis8cD48aT5FbnRlciBhIE1lc3NlbmdlcjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMzQ+PGI+TWVzc2VuZ2VyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT00LjIuNjk+Qmxlc3MgeW91LCBmYWlyIGRhbWUhIEkgYW0gbm90IHRvIHlvdSBrbm93biw8
L0E+PGJyPgorPEEgTkFNRT00LjIuNzA+VGhvdWdoIGluIHlvdXIgc3RhdGUgb2YgaG9ub3VyIEkg
YW0gcGVyZmVjdC48L0E+PGJyPgorPEEgTkFNRT00LjIuNzE+SSBkb3VidCBzb21lIGRhbmdlciBk
b2VzIGFwcHJvYWNoIHlvdSBuZWFybHk6PC9BPjxicj4KKzxBIE5BTUU9NC4yLjcyPklmIHlvdSB3
aWxsIHRha2UgYSBob21lbHkgbWFuJ3MgYWR2aWNlLDwvQT48YnI+Cis8QSBOQU1FPTQuMi43Mz5C
ZSBub3QgZm91bmQgaGVyZTsgaGVuY2UsIHdpdGggeW91ciBsaXR0bGUgb25lcy48L0E+PGJyPgor
PEEgTkFNRT00LjIuNzQ+VG8gZnJpZ2h0IHlvdSB0aHVzLCBtZXRoaW5rcywgSSBhbSB0b28gc2F2
YWdlOzwvQT48YnI+Cis8QSBOQU1FPTQuMi43NT5UbyBkbyB3b3JzZSB0byB5b3Ugd2VyZSBmZWxs
IGNydWVsdHksPC9BPjxicj4KKzxBIE5BTUU9NC4yLjc2PldoaWNoIGlzIHRvbyBuaWdoIHlvdXIg
cGVyc29uLiBIZWF2ZW4gcHJlc2VydmUgeW91ITwvQT48YnI+Cis8QSBOQU1FPTQuMi43Nz5JIGRh
cmUgYWJpZGUgbm8gbG9uZ2VyLjwvQT48YnI+Cis8cD48aT5FeGl0PC9pPjwvcD4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNT48Yj5MQURZIE1BQ0RVRkY8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMi43OD5XaGl0aGVyIHNob3VsZCBJIGZseT88L0E+PGJyPgorPEEg
TkFNRT00LjIuNzk+SSBoYXZlIGRvbmUgbm8gaGFybS4gQnV0IEkgcmVtZW1iZXIgbm93PC9BPjxi
cj4KKzxBIE5BTUU9NC4yLjgwPkkgYW0gaW4gdGhpcyBlYXJ0aGx5IHdvcmxkOyB3aGVyZSB0byBk
byBoYXJtPC9BPjxicj4KKzxBIE5BTUU9NC4yLjgxPklzIG9mdGVuIGxhdWRhYmxlLCB0byBkbyBn
b29kIHNvbWV0aW1lPC9BPjxicj4KKzxBIE5BTUU9NC4yLjgyPkFjY291bnRlZCBkYW5nZXJvdXMg
Zm9sbHk6IHdoeSB0aGVuLCBhbGFzLDwvQT48YnI+Cis8QSBOQU1FPTQuMi44Mz5EbyBJIHB1dCB1
cCB0aGF0IHdvbWFubHkgZGVmZW5jZSw8L0E+PGJyPgorPEEgTkFNRT00LjIuODQ+VG8gc2F5IEkg
aGF2ZSBkb25lIG5vIGhhcm0/PC9BPjxicj4KKzxwPjxpPkVudGVyIE11cmRlcmVyczwvaT48L3A+
Cis8QSBOQU1FPTQuMi44NT5XaGF0IGFyZSB0aGVzZSBmYWNlcz88L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDM2PjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjIuODY+V2hlcmUgaXMgeW91ciBodXNiYW5kPzwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzc+PGI+TEFEWSBNQUNEVUZGPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjIuODc+SSBob3BlLCBpbiBubyBwbGFjZSBzbyB1bnNh
bmN0aWZpZWQ8L0E+PGJyPgorPEEgTkFNRT00LjIuODg+V2hlcmUgc3VjaCBhcyB0aG91IG1heXN0
IGZpbmQgaGltLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzg+PGI+
Rmlyc3QgTXVyZGVyZXI8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMi44OT5IZSdz
IGEgdHJhaXRvci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM5Pjxi
PlNvbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4yLjkwPlRob3UgbGllc3QsIHRo
b3Ugc2hhZy1oYWlyJ2QgdmlsbGFpbiE8L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDQwPjxiPkZpcnN0IE11cmRlcmVyPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT00LjIuOTE+V2hhdCwgeW91IGVnZyE8L0E+PGJyPgorPHA+PGk+U3RhYmJpbmcgaGltPC9pPjwv
cD4KKzxBIE5BTUU9NC4yLjkyPllvdW5nIGZyeSBvZiB0cmVhY2hlcnkhPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0MT48Yj5Tb248L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTQuMi45Mz5IZSBoYXMga2lsbCdkIG1lLCBtb3RoZXI6PC9BPjxicj4KKzxBIE5B
TUU9NC4yLjk0PlJ1biBhd2F5LCBJIHByYXkgeW91ITwvQT48YnI+Cis8cD48aT5EaWVzPC9pPjwv
cD4KKzxwPjxpPkV4aXQgTEFEWSBNQUNEVUZGLCBjcnlpbmcgJ011cmRlciEnIEV4ZXVudCBNdXJk
ZXJlcnMsIGZvbGxvd2luZyBoZXI8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgzPlNDRU5FIElJ
SS4gRW5nbGFuZC4gQmVmb3JlIHRoZSBLaW5nJ3MgcGFsYWNlLjwvaDM+Cis8cD48YmxvY2txdW90
ZT4KKzxpPkVudGVyIE1BTENPTE0gYW5kIE1BQ0RVRkY8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00
LjMuMT5MZXQgdXMgc2VlayBvdXQgc29tZSBkZXNvbGF0ZSBzaGFkZSwgYW5kIHRoZXJlPC9BPjxi
cj4KKzxBIE5BTUU9NC4zLjI+V2VlcCBvdXIgc2FkIGJvc29tcyBlbXB0eS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NC4zLjM+TGV0IHVzIHJhdGhlcjwvQT48YnI+Cis8QSBOQU1FPTQuMy40
PkhvbGQgZmFzdCB0aGUgbW9ydGFsIHN3b3JkLCBhbmQgbGlrZSBnb29kIG1lbjwvQT48YnI+Cis8
QSBOQU1FPTQuMy41PkJlc3RyaWRlIG91ciBkb3duLWZhbGwnbiBiaXJ0aGRvbTogZWFjaCBuZXcg
bW9ybjwvQT48YnI+Cis8QSBOQU1FPTQuMy42Pk5ldyB3aWRvd3MgaG93bCwgbmV3IG9ycGhhbnMg
Y3J5LCBuZXcgc29ycm93czwvQT48YnI+Cis8QSBOQU1FPTQuMy43PlN0cmlrZSBoZWF2ZW4gb24g
dGhlIGZhY2UsIHRoYXQgaXQgcmVzb3VuZHM8L0E+PGJyPgorPEEgTkFNRT00LjMuOD5BcyBpZiBp
dCBmZWx0IHdpdGggU2NvdGxhbmQgYW5kIHllbGwnZCBvdXQ8L0E+PGJyPgorPEEgTkFNRT00LjMu
OT5MaWtlIHN5bGxhYmxlIG9mIGRvbG91ci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDM+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4z
LjEwPldoYXQgSSBiZWxpZXZlIEknbGwgd2FpbCw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTE+V2hh
dCBrbm93IGJlbGlldmUsIGFuZCB3aGF0IEkgY2FuIHJlZHJlc3MsPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjEyPkFzIEkgc2hhbGwgZmluZCB0aGUgdGltZSB0byBmcmllbmQsIEkgd2lsbC48L0E+PGJy
PgorPEEgTkFNRT00LjMuMTM+V2hhdCB5b3UgaGF2ZSBzcG9rZSwgaXQgbWF5IGJlIHNvIHBlcmNo
YW5jZS48L0E+PGJyPgorPEEgTkFNRT00LjMuMTQ+VGhpcyB0eXJhbnQsIHdob3NlIHNvbGUgbmFt
ZSBibGlzdGVycyBvdXIgdG9uZ3Vlcyw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTU+V2FzIG9uY2Ug
dGhvdWdodCBob25lc3Q6IHlvdSBoYXZlIGxvdmVkIGhpbSB3ZWxsLjwvQT48YnI+Cis8QSBOQU1F
PTQuMy4xNj5IZSBoYXRoIG5vdCB0b3VjaCdkIHlvdSB5ZXQuIEkgYW0geW91bmc7PC9BPjxicj4K
KzxBIE5BTUU9NC4zLjE3PmJ1dCBzb21ldGhpbmc8L0E+PGJyPgorPEEgTkFNRT00LjMuMTg+WW91
IG1heSBkZXNlcnZlIG9mIGhpbSB0aHJvdWdoIG1lLCBhbmQgd2lzZG9tPC9BPjxicj4KKzxBIE5B
TUU9NC4zLjE5PlRvIG9mZmVyIHVwIGEgd2VhayBwb29yIGlubm9jZW50IGxhbWI8L0E+PGJyPgor
PEEgTkFNRT00LjMuMjA+VG8gYXBwZWFzZSBhbiBhbmdyeSBnb2QuPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTQuMy4yMT5JIGFtIG5vdCB0cmVhY2hlcm91cy48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NC4zLjIyPkJ1dCBNYWNiZXRoIGlzLjwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMz5B
IGdvb2QgYW5kIHZpcnR1b3VzIG5hdHVyZSBtYXkgcmVjb2lsPC9BPjxicj4KKzxBIE5BTUU9NC4z
LjI0PkluIGFuIGltcGVyaWFsIGNoYXJnZS4gQnV0IEkgc2hhbGwgY3JhdmU8L0E+PGJyPgorPEEg
TkFNRT00LjMuMjU+eW91ciBwYXJkb247PC9BPjxicj4KKzxBIE5BTUU9NC4zLjI2PlRoYXQgd2hp
Y2ggeW91IGFyZSBteSB0aG91Z2h0cyBjYW5ub3QgdHJhbnNwb3NlOjwvQT48YnI+Cis8QSBOQU1F
PTQuMy4yNz5BbmdlbHMgYXJlIGJyaWdodCBzdGlsbCwgdGhvdWdoIHRoZSBicmlnaHRlc3QgZmVs
bDs8L0E+PGJyPgorPEEgTkFNRT00LjMuMjg+VGhvdWdoIGFsbCB0aGluZ3MgZm91bCB3b3VsZCB3
ZWFyIHRoZSBicm93cyBvZiBncmFjZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMjk+WWV0IGdyYWNl
IG11c3Qgc3RpbGwgbG9vayBzby48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDY+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjMwPkkg
aGF2ZSBsb3N0IG15IGhvcGVzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoNz48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMzE+UGVy
Y2hhbmNlIGV2ZW4gdGhlcmUgd2hlcmUgSSBkaWQgZmluZCBteSBkb3VidHMuPC9BPjxicj4KKzxB
IE5BTUU9NC4zLjMyPldoeSBpbiB0aGF0IHJhd25lc3MgbGVmdCB5b3Ugd2lmZSBhbmQgY2hpbGQs
PC9BPjxicj4KKzxBIE5BTUU9NC4zLjMzPlRob3NlIHByZWNpb3VzIG1vdGl2ZXMsIHRob3NlIHN0
cm9uZyBrbm90cyBvZiBsb3ZlLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4zND5XaXRob3V0IGxlYXZl
LXRha2luZz8gSSBwcmF5IHlvdSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMzU+TGV0IG5vdCBteSBq
ZWFsb3VzaWVzIGJlIHlvdXIgZGlzaG9ub3Vycyw8L0E+PGJyPgorPEEgTkFNRT00LjMuMzY+QnV0
IG1pbmUgb3duIHNhZmV0aWVzLiBZb3UgbWF5IGJlIHJpZ2h0bHkganVzdCw8L0E+PGJyPgorPEEg
TkFNRT00LjMuMzc+V2hhdGV2ZXIgSSBzaGFsbCB0aGluay48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDg+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NC4zLjM4PkJsZWVkLCBibGVlZCwgcG9vciBjb3VudHJ5ITwvQT48YnI+Cis8QSBOQU1F
PTQuMy4zOT5HcmVhdCB0eXJhbm55ISBsYXkgdGhvdSB0aHkgYmFzaXMgc3VyZSw8L0E+PGJyPgor
PEEgTkFNRT00LjMuNDA+Rm9yIGdvb2RuZXNzIGRhcmUgbm90IGNoZXF1ZSB0aGVlOiB3ZWFyIHRo
b3U8L0E+PGJyPgorPEEgTkFNRT00LjMuNDE+dGh5IHdyb25nczs8L0E+PGJyPgorPEEgTkFNRT00
LjMuNDI+VGhlIHRpdGxlIGlzIGFmZmVlcidkISBGYXJlIHRoZWUgd2VsbCwgbG9yZDo8L0E+PGJy
PgorPEEgTkFNRT00LjMuNDM+SSB3b3VsZCBub3QgYmUgdGhlIHZpbGxhaW4gdGhhdCB0aG91IHRo
aW5rJ3N0PC9BPjxicj4KKzxBIE5BTUU9NC4zLjQ0PkZvciB0aGUgd2hvbGUgc3BhY2UgdGhhdCdz
IGluIHRoZSB0eXJhbnQncyBncmFzcCw8L0E+PGJyPgorPEEgTkFNRT00LjMuNDU+QW5kIHRoZSBy
aWNoIEVhc3QgdG8gYm9vdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDk+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjQ2PkJlIG5v
dCBvZmZlbmRlZDo8L0E+PGJyPgorPEEgTkFNRT00LjMuNDc+SSBzcGVhayBub3QgYXMgaW4gYWJz
b2x1dGUgZmVhciBvZiB5b3UuPC9BPjxicj4KKzxBIE5BTUU9NC4zLjQ4PkkgdGhpbmsgb3VyIGNv
dW50cnkgc2lua3MgYmVuZWF0aCB0aGUgeW9rZTs8L0E+PGJyPgorPEEgTkFNRT00LjMuNDk+SXQg
d2VlcHMsIGl0IGJsZWVkczsgYW5kIGVhY2ggbmV3IGRheSBhIGdhc2g8L0E+PGJyPgorPEEgTkFN
RT00LjMuNTA+SXMgYWRkZWQgdG8gaGVyIHdvdW5kczogSSB0aGluayB3aXRoYWw8L0E+PGJyPgor
PEEgTkFNRT00LjMuNTE+VGhlcmUgd291bGQgYmUgaGFuZHMgdXBsaWZ0ZWQgaW4gbXkgcmlnaHQ7
PC9BPjxicj4KKzxBIE5BTUU9NC4zLjUyPkFuZCBoZXJlIGZyb20gZ3JhY2lvdXMgRW5nbGFuZCBo
YXZlIEkgb2ZmZXI8L0E+PGJyPgorPEEgTkFNRT00LjMuNTM+T2YgZ29vZGx5IHRob3VzYW5kczog
YnV0LCBmb3IgYWxsIHRoaXMsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjU0PldoZW4gSSBzaGFsbCB0
cmVhZCB1cG9uIHRoZSB0eXJhbnQncyBoZWFkLDwvQT48YnI+Cis8QSBOQU1FPTQuMy41NT5PciB3
ZWFyIGl0IG9uIG15IHN3b3JkLCB5ZXQgbXkgcG9vciBjb3VudHJ5PC9BPjxicj4KKzxBIE5BTUU9
NC4zLjU2PlNoYWxsIGhhdmUgbW9yZSB2aWNlcyB0aGFuIGl0IGhhZCBiZWZvcmUsPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjU3Pk1vcmUgc3VmZmVyIGFuZCBtb3JlIHN1bmRyeSB3YXlzIHRoYW4gZXZl
ciw8L0E+PGJyPgorPEEgTkFNRT00LjMuNTg+QnkgaGltIHRoYXQgc2hhbGwgc3VjY2VlZC48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEwPjxiPk1BQ0RVRkY8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy41OT5XaGF0IHNob3VsZCBoZSBiZT88L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDExPjxiPk1BTENPTE08L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy42MD5JdCBpcyBteXNlbGYgSSBtZWFuOiBpbiB3aG9t
IEkga25vdzwvQT48YnI+Cis8QSBOQU1FPTQuMy42MT5BbGwgdGhlIHBhcnRpY3VsYXJzIG9mIHZp
Y2Ugc28gZ3JhZnRlZDwvQT48YnI+Cis8QSBOQU1FPTQuMy42Mj5UaGF0LCB3aGVuIHRoZXkgc2hh
bGwgYmUgb3BlbidkLCBibGFjayBNYWNiZXRoPC9BPjxicj4KKzxBIE5BTUU9NC4zLjYzPldpbGwg
c2VlbSBhcyBwdXJlIGFzIHNub3csIGFuZCB0aGUgcG9vciBzdGF0ZTwvQT48YnI+Cis8QSBOQU1F
PTQuMy42ND5Fc3RlZW0gaGltIGFzIGEgbGFtYiwgYmVpbmcgY29tcGFyZWQ8L0E+PGJyPgorPEEg
TkFNRT00LjMuNjU+V2l0aCBteSBjb25maW5lbGVzcyBoYXJtcy48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTQuMy42Nj5Ob3QgaW4gdGhlIGxlZ2lvbnM8L0E+PGJyPgorPEEgTkFNRT00LjMu
Njc+T2YgaG9ycmlkIGhlbGwgY2FuIGNvbWUgYSBkZXZpbCBtb3JlIGRhbW4nZDwvQT48YnI+Cis8
QSBOQU1FPTQuMy42OD5JbiBldmlscyB0byB0b3AgTWFjYmV0aC48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDEzPjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTQuMy42OT5JIGdyYW50IGhpbSBibG9vZHksPC9BPjxicj4KKzxBIE5BTUU9NC4z
LjcwPkx1eHVyaW91cywgYXZhcmljaW91cywgZmFsc2UsIGRlY2VpdGZ1bCw8L0E+PGJyPgorPEEg
TkFNRT00LjMuNzE+U3VkZGVuLCBtYWxpY2lvdXMsIHNtYWNraW5nIG9mIGV2ZXJ5IHNpbjwvQT48
YnI+Cis8QSBOQU1FPTQuMy43Mj5UaGF0IGhhcyBhIG5hbWU6IGJ1dCB0aGVyZSdzIG5vIGJvdHRv
bSwgbm9uZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuNzM+SW4gbXkgdm9sdXB0dW91c25lc3M6IHlv
dXIgd2l2ZXMsIHlvdXIgZGF1Z2h0ZXJzLDwvQT48YnI+Cis8QSBOQU1FPTQuMy43ND5Zb3VyIG1h
dHJvbnMgYW5kIHlvdXIgbWFpZHMsIGNvdWxkIG5vdCBmaWxsIHVwPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjc1PlRoZSBjaXN0ZXJuIG9mIG15IGx1c3QsIGFuZCBteSBkZXNpcmU8L0E+PGJyPgorPEEg
TkFNRT00LjMuNzY+QWxsIGNvbnRpbmVudCBpbXBlZGltZW50cyB3b3VsZCBvJ2VyYmVhcjwvQT48
YnI+Cis8QSBOQU1FPTQuMy43Nz5UaGF0IGRpZCBvcHBvc2UgbXkgd2lsbDogYmV0dGVyIE1hY2Jl
dGg8L0E+PGJyPgorPEEgTkFNRT00LjMuNzg+VGhhbiBzdWNoIGFuIG9uZSB0byByZWlnbi48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPk1BQ0RVRkY8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy43OT5Cb3VuZGxlc3MgaW50ZW1wZXJhbmNlPC9B
Pjxicj4KKzxBIE5BTUU9NC4zLjgwPkluIG5hdHVyZSBpcyBhIHR5cmFubnk7IGl0IGhhdGggYmVl
bjwvQT48YnI+Cis8QSBOQU1FPTQuMy44MT5UaGUgdW50aW1lbHkgZW1wdHlpbmcgb2YgdGhlIGhh
cHB5IHRocm9uZTwvQT48YnI+Cis8QSBOQU1FPTQuMy44Mj5BbmQgZmFsbCBvZiBtYW55IGtpbmdz
LiBCdXQgZmVhciBub3QgeWV0PC9BPjxicj4KKzxBIE5BTUU9NC4zLjgzPlRvIHRha2UgdXBvbiB5
b3Ugd2hhdCBpcyB5b3VyczogeW91IG1heTwvQT48YnI+Cis8QSBOQU1FPTQuMy44ND5Db252ZXkg
eW91ciBwbGVhc3VyZXMgaW4gYSBzcGFjaW91cyBwbGVudHksPC9BPjxicj4KKzxBIE5BTUU9NC4z
Ljg1PkFuZCB5ZXQgc2VlbSBjb2xkLCB0aGUgdGltZSB5b3UgbWF5IHNvIGhvb2R3aW5rLjwvQT48
YnI+Cis8QSBOQU1FPTQuMy44Nj5XZSBoYXZlIHdpbGxpbmcgZGFtZXMgZW5vdWdoOiB0aGVyZSBj
YW5ub3QgYmU8L0E+PGJyPgorPEEgTkFNRT00LjMuODc+VGhhdCB2dWx0dXJlIGluIHlvdSwgdG8g
ZGV2b3VyIHNvIG1hbnk8L0E+PGJyPgorPEEgTkFNRT00LjMuODg+QXMgd2lsbCB0byBncmVhdG5l
c3MgZGVkaWNhdGUgdGhlbXNlbHZlcyw8L0E+PGJyPgorPEEgTkFNRT00LjMuODk+RmluZGluZyBp
dCBzbyBpbmNsaW5lZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE1
PjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy45MD5XaXRoIHRo
aXMgdGhlcmUgZ3Jvd3M8L0E+PGJyPgorPEEgTkFNRT00LjMuOTE+SW4gbXkgbW9zdCBpbGwtY29t
cG9zZWQgYWZmZWN0aW9uIHN1Y2g8L0E+PGJyPgorPEEgTkFNRT00LjMuOTI+QSBzdGFuY2hsZXNz
IGF2YXJpY2UgdGhhdCwgd2VyZSBJIGtpbmcsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjkzPkkgc2hv
dWxkIGN1dCBvZmYgdGhlIG5vYmxlcyBmb3IgdGhlaXIgbGFuZHMsPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjk0PkRlc2lyZSBoaXMgamV3ZWxzIGFuZCB0aGlzIG90aGVyJ3MgaG91c2U6PC9BPjxicj4K
KzxBIE5BTUU9NC4zLjk1PkFuZCBteSBtb3JlLWhhdmluZyB3b3VsZCBiZSBhcyBhIHNhdWNlPC9B
Pjxicj4KKzxBIE5BTUU9NC4zLjk2PlRvIG1ha2UgbWUgaHVuZ2VyIG1vcmU7IHRoYXQgSSBzaG91
bGQgZm9yZ2U8L0E+PGJyPgorPEEgTkFNRT00LjMuOTc+UXVhcnJlbHMgdW5qdXN0IGFnYWluc3Qg
dGhlIGdvb2QgYW5kIGxveWFsLDwvQT48YnI+Cis8QSBOQU1FPTQuMy45OD5EZXN0cm95aW5nIHRo
ZW0gZm9yIHdlYWx0aC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE2
PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy45OT5UaGlzIGF2
YXJpY2U8L0E+PGJyPgorPEEgTkFNRT00LjMuMTAwPlN0aWNrcyBkZWVwZXIsIGdyb3dzIHdpdGgg
bW9yZSBwZXJuaWNpb3VzIHJvb3Q8L0E+PGJyPgorPEEgTkFNRT00LjMuMTAxPlRoYW4gc3VtbWVy
LXNlZW1pbmcgbHVzdCwgYW5kIGl0IGhhdGggYmVlbjwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMDI+
VGhlIHN3b3JkIG9mIG91ciBzbGFpbiBraW5nczogeWV0IGRvIG5vdCBmZWFyOzwvQT48YnI+Cis8
QSBOQU1FPTQuMy4xMDM+U2NvdGxhbmQgaGF0aCBmb2lzb25zIHRvIGZpbGwgdXAgeW91ciB3aWxs
LjwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMDQ+T2YgeW91ciBtZXJlIG93bjogYWxsIHRoZXNlIGFy
ZSBwb3J0YWJsZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTA1PldpdGggb3RoZXIgZ3JhY2VzIHdl
aWdoJ2QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNz48Yj5NQUxD
T0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMTA2PkJ1dCBJIGhhdmUgbm9u
ZTogdGhlIGtpbmctYmVjb21pbmcgZ3JhY2VzLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMDc+QXMg
anVzdGljZSwgdmVyaXR5LCB0ZW1wZXJhbmNlLCBzdGFibGVuZXNzLDwvQT48YnI+Cis8QSBOQU1F
PTQuMy4xMDg+Qm91bnR5LCBwZXJzZXZlcmFuY2UsIG1lcmN5LCBsb3dsaW5lc3MsPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjEwOT5EZXZvdGlvbiwgcGF0aWVuY2UsIGNvdXJhZ2UsIGZvcnRpdHVkZSw8
L0E+PGJyPgorPEEgTkFNRT00LjMuMTEwPkkgaGF2ZSBubyByZWxpc2ggb2YgdGhlbSwgYnV0IGFi
b3VuZDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMTE+SW4gdGhlIGRpdmlzaW9uIG9mIGVhY2ggc2V2
ZXJhbCBjcmltZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTEyPkFjdGluZyBpdCBtYW55IHdheXMu
IE5heSwgaGFkIEkgcG93ZXIsIEkgc2hvdWxkPC9BPjxicj4KKzxBIE5BTUU9NC4zLjExMz5Qb3Vy
IHRoZSBzd2VldCBtaWxrIG9mIGNvbmNvcmQgaW50byBoZWxsLDwvQT48YnI+Cis8QSBOQU1FPTQu
My4xMTQ+VXByb2FyIHRoZSB1bml2ZXJzYWwgcGVhY2UsIGNvbmZvdW5kPC9BPjxicj4KKzxBIE5B
TUU9NC4zLjExNT5BbGwgdW5pdHkgb24gZWFydGguPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gxOD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT00LjMuMTE2Pk8gU2NvdGxhbmQsIFNjb3RsYW5kITwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMTk+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NC4zLjExNz5JZiBzdWNoIGEgb25lIGJlIGZpdCB0byBnb3Zlcm4sIHNwZWFrOjwvQT48YnI+
Cis8QSBOQU1FPTQuMy4xMTg+SSBhbSBhcyBJIGhhdmUgc3Bva2VuLjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9NC4zLjExOT5GaXQgdG8gZ292ZXJuITwvQT48YnI+Cis8QSBOQU1FPTQuMy4x
MjA+Tm8sIG5vdCB0byBsaXZlLiBPIG5hdGlvbiBtaXNlcmFibGUsPC9BPjxicj4KKzxBIE5BTUU9
NC4zLjEyMT5XaXRoIGFuIHVudGl0bGVkIHR5cmFudCBibG9vZHktc2NlcHRlcidkLDwvQT48YnI+
Cis8QSBOQU1FPTQuMy4xMjI+V2hlbiBzaGFsdCB0aG91IHNlZSB0aHkgd2hvbGVzb21lIGRheXMg
YWdhaW4sPC9BPjxicj4KKzxBIE5BTUU9NC4zLjEyMz5TaW5jZSB0aGF0IHRoZSB0cnVlc3QgaXNz
dWUgb2YgdGh5IHRocm9uZTwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMjQ+QnkgaGlzIG93biBpbnRl
cmRpY3Rpb24gc3RhbmRzIGFjY3Vyc2VkLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMjU+QW5kIGRv
ZXMgYmxhc3BoZW1lIGhpcyBicmVlZD8gVGh5IHJveWFsIGZhdGhlcjwvQT48YnI+Cis8QSBOQU1F
PTQuMy4xMjY+V2FzIGEgbW9zdCBzYWludGVkIGtpbmc6IHRoZSBxdWVlbiB0aGF0IGJvcmUgdGhl
ZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTI3Pk9mdGVuZXIgdXBvbiBoZXIga25lZXMgdGhhbiBv
biBoZXIgZmVldCw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTI4PkRpZWQgZXZlcnkgZGF5IHNoZSBs
aXZlZC4gRmFyZSB0aGVlIHdlbGwhPC9BPjxicj4KKzxBIE5BTUU9NC4zLjEyOT5UaGVzZSBldmls
cyB0aG91IHJlcGVhdCdzdCB1cG9uIHRoeXNlbGY8L0E+PGJyPgorPEEgTkFNRT00LjMuMTMwPkhh
dmUgYmFuaXNoJ2QgbWUgZnJvbSBTY290bGFuZC4gTyBteSBicmVhc3QsPC9BPjxicj4KKzxBIE5B
TUU9NC4zLjEzMT5UaHkgaG9wZSBlbmRzIGhlcmUhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2gyMT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT00LjMuMTMyPk1hY2R1ZmYsIHRoaXMgbm9ibGUgcGFzc2lvbiw8L0E+PGJyPgorPEEgTkFNRT00
LjMuMTMzPkNoaWxkIG9mIGludGVncml0eSwgaGF0aCBmcm9tIG15IHNvdWw8L0E+PGJyPgorPEEg
TkFNRT00LjMuMTM0PldpcGVkIHRoZSBibGFjayBzY3J1cGxlcywgcmVjb25jaWxlZCBteSB0aG91
Z2h0czwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMzU+VG8gdGh5IGdvb2QgdHJ1dGggYW5kIGhvbm91
ci4gRGV2aWxpc2ggTWFjYmV0aDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xMzY+QnkgbWFueSBvZiB0
aGVzZSB0cmFpbnMgaGF0aCBzb3VnaHQgdG8gd2luIG1lPC9BPjxicj4KKzxBIE5BTUU9NC4zLjEz
Nz5JbnRvIGhpcyBwb3dlciwgYW5kIG1vZGVzdCB3aXNkb20gcGx1Y2tzIG1lPC9BPjxicj4KKzxB
IE5BTUU9NC4zLjEzOD5Gcm9tIG92ZXItY3JlZHVsb3VzIGhhc3RlOiBidXQgR29kIGFib3ZlPC9B
Pjxicj4KKzxBIE5BTUU9NC4zLjEzOT5EZWFsIGJldHdlZW4gdGhlZSBhbmQgbWUhIGZvciBldmVu
IG5vdzwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNDA+SSBwdXQgbXlzZWxmIHRvIHRoeSBkaXJlY3Rp
b24sIGFuZDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNDE+VW5zcGVhayBtaW5lIG93biBkZXRyYWN0
aW9uLCBoZXJlIGFianVyZTwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNDI+VGhlIHRhaW50cyBhbmQg
YmxhbWVzIEkgbGFpZCB1cG9uIG15c2VsZiw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTQzPkZvciBz
dHJhbmdlcnMgdG8gbXkgbmF0dXJlLiBJIGFtIHlldDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNDQ+
VW5rbm93biB0byB3b21hbiwgbmV2ZXIgd2FzIGZvcnN3b3JuLDwvQT48YnI+Cis8QSBOQU1FPTQu
My4xNDU+U2NhcmNlbHkgaGF2ZSBjb3ZldGVkIHdoYXQgd2FzIG1pbmUgb3duLDwvQT48YnI+Cis8
QSBOQU1FPTQuMy4xNDY+QXQgbm8gdGltZSBicm9rZSBteSBmYWl0aCwgd291bGQgbm90IGJldHJh
eTwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNDc+VGhlIGRldmlsIHRvIGhpcyBmZWxsb3cgYW5kIGRl
bGlnaHQ8L0E+PGJyPgorPEEgTkFNRT00LjMuMTQ4Pk5vIGxlc3MgaW4gdHJ1dGggdGhhbiBsaWZl
OiBteSBmaXJzdCBmYWxzZSBzcGVha2luZzwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNDk+V2FzIHRo
aXMgdXBvbiBteXNlbGY6IHdoYXQgSSBhbSB0cnVseSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTUw
PklzIHRoaW5lIGFuZCBteSBwb29yIGNvdW50cnkncyB0byBjb21tYW5kOjwvQT48YnI+Cis8QSBO
QU1FPTQuMy4xNTE+V2hpdGhlciBpbmRlZWQsIGJlZm9yZSB0aHkgaGVyZS1hcHByb2FjaCw8L0E+
PGJyPgorPEEgTkFNRT00LjMuMTUyPk9sZCBTaXdhcmQsIHdpdGggdGVuIHRob3VzYW5kIHdhcmxp
a2UgbWVuLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNTM+QWxyZWFkeSBhdCBhIHBvaW50LCB3YXMg
c2V0dGluZyBmb3J0aC48L0E+PGJyPgorPEEgTkFNRT00LjMuMTU0Pk5vdyB3ZSdsbCB0b2dldGhl
cjsgYW5kIHRoZSBjaGFuY2Ugb2YgZ29vZG5lc3M8L0E+PGJyPgorPEEgTkFNRT00LjMuMTU1PkJl
IGxpa2Ugb3VyIHdhcnJhbnRlZCBxdWFycmVsISBXaHkgYXJlIHlvdSBzaWxlbnQ/PC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMj48Yj5NQUNEVUZGPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMTU2PlN1Y2ggd2VsY29tZSBhbmQgdW53ZWxjb21lIHRo
aW5ncyBhdCBvbmNlPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE1Nz4nVGlzIGhhcmQgdG8gcmVjb25j
aWxlLjwvQT48YnI+Cis8cD48aT5FbnRlciBhIERvY3RvcjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMjM+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NC4zLjE1OD5XZWxsOyBtb3JlIGFub24uLS1Db21lcyB0aGUga2luZyBmb3J0aCwgSSBw
cmF5IHlvdT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI0PjxiPkRv
Y3RvcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjE1OT5BeSwgc2lyOyB0aGVy
ZSBhcmUgYSBjcmV3IG9mIHdyZXRjaGVkIHNvdWxzPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE2MD5U
aGF0IHN0YXkgaGlzIGN1cmU6IHRoZWlyIG1hbGFkeSBjb252aW5jZXM8L0E+PGJyPgorPEEgTkFN
RT00LjMuMTYxPlRoZSBncmVhdCBhc3NheSBvZiBhcnQ7IGJ1dCBhdCBoaXMgdG91Y2gtLTwvQT48
YnI+Cis8QSBOQU1FPTQuMy4xNjI+U3VjaCBzYW5jdGl0eSBoYXRoIGhlYXZlbiBnaXZlbiBoaXMg
aGFuZC0tPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE2Mz5UaGV5IHByZXNlbnRseSBhbWVuZC48L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI1PjxiPk1BTENPTE08L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xNjQ+SSB0aGFuayB5b3UsIGRvY3Rvci48L0E+
PGJyPgorPHA+PGk+RXhpdCBEb2N0b3I8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDI2PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4x
NjU+V2hhdCdzIHRoZSBkaXNlYXNlIGhlIG1lYW5zPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoMjc+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NC4zLjE2Nj4nVGlzIGNhbGwnZCB0aGUgZXZpbDo8L0E+PGJyPgorPEEgTkFNRT00LjMuMTY3
PkEgbW9zdCBtaXJhY3Vsb3VzIHdvcmsgaW4gdGhpcyBnb29kIGtpbmc7PC9BPjxicj4KKzxBIE5B
TUU9NC4zLjE2OD5XaGljaCBvZnRlbiwgc2luY2UgbXkgaGVyZS1yZW1haW4gaW4gRW5nbGFuZCw8
L0E+PGJyPgorPEEgTkFNRT00LjMuMTY5PkkgaGF2ZSBzZWVuIGhpbSBkby4gSG93IGhlIHNvbGlj
aXRzIGhlYXZlbiw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTcwPkhpbXNlbGYgYmVzdCBrbm93czog
YnV0IHN0cmFuZ2VseS12aXNpdGVkIHBlb3BsZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMTcxPkFs
bCBzd29sbiBhbmQgdWxjZXJvdXMsIHBpdGlmdWwgdG8gdGhlIGV5ZSw8L0E+PGJyPgorPEEgTkFN
RT00LjMuMTcyPlRoZSBtZXJlIGRlc3BhaXIgb2Ygc3VyZ2VyeSwgaGUgY3VyZXMsPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjE3Mz5IYW5naW5nIGEgZ29sZGVuIHN0YW1wIGFib3V0IHRoZWlyIG5lY2tz
LDwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNzQ+UHV0IG9uIHdpdGggaG9seSBwcmF5ZXJzOiBhbmQg
J3RpcyBzcG9rZW4sPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE3NT5UbyB0aGUgc3VjY2VlZGluZyBy
b3lhbHR5IGhlIGxlYXZlczwvQT48YnI+Cis8QSBOQU1FPTQuMy4xNzY+VGhlIGhlYWxpbmcgYmVu
ZWRpY3Rpb24uIFdpdGggdGhpcyBzdHJhbmdlIHZpcnR1ZSw8L0E+PGJyPgorPEEgTkFNRT00LjMu
MTc3PkhlIGhhdGggYSBoZWF2ZW5seSBnaWZ0IG9mIHByb3BoZWN5LDwvQT48YnI+Cis8QSBOQU1F
PTQuMy4xNzg+QW5kIHN1bmRyeSBibGVzc2luZ3MgaGFuZyBhYm91dCBoaXMgdGhyb25lLDwvQT48
YnI+Cis8QSBOQU1FPTQuMy4xNzk+VGhhdCBzcGVhayBoaW0gZnVsbCBvZiBncmFjZS48L0E+PGJy
PgorPHA+PGk+RW50ZXIgUk9TUzwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMjg+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjE4MD5T
ZWUsIHdobyBjb21lcyBoZXJlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMjk+PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjE4MT5N
eSBjb3VudHJ5bWFuOyBidXQgeWV0IEkga25vdyBoaW0gbm90LjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMzA+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NC4zLjE4Mj5NeSBldmVyLWdlbnRsZSBjb3VzaW4sIHdlbGNvbWUgaGl0aGVyLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzE+PGI+TUFMQ09MTTwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjE4Mz5JIGtub3cgaGltIG5vdy4gR29vZCBH
b2QsIGJldGltZXMgcmVtb3ZlPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE4ND5UaGUgbWVhbnMgdGhh
dCBtYWtlcyB1cyBzdHJhbmdlcnMhPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gzMj48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMTg1PlNp
ciwgYW1lbi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDMzPjxiPk1B
Q0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xODY+U3RhbmRzIFNjb3Rs
YW5kIHdoZXJlIGl0IGRpZD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDM0PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xODc+QWxhcywg
cG9vciBjb3VudHJ5ITwvQT48YnI+Cis8QSBOQU1FPTQuMy4xODg+QWxtb3N0IGFmcmFpZCB0byBr
bm93IGl0c2VsZi4gSXQgY2Fubm90PC9BPjxicj4KKzxBIE5BTUU9NC4zLjE4OT5CZSBjYWxsJ2Qg
b3VyIG1vdGhlciwgYnV0IG91ciBncmF2ZTsgd2hlcmUgbm90aGluZyw8L0E+PGJyPgorPEEgTkFN
RT00LjMuMTkwPkJ1dCB3aG8ga25vd3Mgbm90aGluZywgaXMgb25jZSBzZWVuIHRvIHNtaWxlOzwv
QT48YnI+Cis8QSBOQU1FPTQuMy4xOTE+V2hlcmUgc2lnaHMgYW5kIGdyb2FucyBhbmQgc2hyaWVr
cyB0aGF0IHJlbmQgdGhlIGFpcjwvQT48YnI+Cis8QSBOQU1FPTQuMy4xOTI+QXJlIG1hZGUsIG5v
dCBtYXJrJ2Q7IHdoZXJlIHZpb2xlbnQgc29ycm93IHNlZW1zPC9BPjxicj4KKzxBIE5BTUU9NC4z
LjE5Mz5BIG1vZGVybiBlY3N0YXN5OyB0aGUgZGVhZCBtYW4ncyBrbmVsbDwvQT48YnI+Cis8QSBO
QU1FPTQuMy4xOTQ+SXMgdGhlcmUgc2NhcmNlIGFzaydkIGZvciB3aG87IGFuZCBnb29kIG1lbidz
IGxpdmVzPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE5NT5FeHBpcmUgYmVmb3JlIHRoZSBmbG93ZXJz
IGluIHRoZWlyIGNhcHMsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjE5Nj5EeWluZyBvciBlcmUgdGhl
eSBzaWNrZW4uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNT48Yj5N
QUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMTk3Pk8sIHJlbGF0aW9u
PC9BPjxicj4KKzxBIE5BTUU9NC4zLjE5OD5Ub28gbmljZSwgYW5kIHlldCB0b28gdHJ1ZSE8L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM2PjxiPk1BTENPTE08L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4xOTk+V2hhdCdzIHRoZSBuZXdlc3QgZ3JpZWY/
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzNz48Yj5ST1NTPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjAwPlRoYXQgb2YgYW4gaG91cidzIGFnZSBk
b3RoIGhpc3MgdGhlIHNwZWFrZXI6PC9BPjxicj4KKzxBIE5BTUU9NC4zLjIwMT5FYWNoIG1pbnV0
ZSB0ZWVtcyBhIG5ldyBvbmUuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gzOD48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjAyPkhv
dyBkb2VzIG15IHdpZmU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gz
OT48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjAzPldoeSwgd2Vs
bC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQwPjxiPk1BQ0RVRkY8
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yMDQ+ICAgICAgICAgQW5kIGFsbCBt
eSBjaGlsZHJlbj88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQxPjxi
PlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yMDU+V2VsbCB0b28uPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Mj48Yj5NQUNEVUZGPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjA2PlRoZSB0eXJhbnQgaGFzIG5vdCBiYXR0
ZXInZCBhdCB0aGVpciBwZWFjZT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDQzPjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yMDc+Tm87
IHRoZXkgd2VyZSB3ZWxsIGF0IHBlYWNlIHdoZW4gSSBkaWQgbGVhdmUgJ2VtLjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNDQ+PGI+TUFDRFVGRjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NC4zLjIwOD5CdXQgbm90IGEgbmlnZ2FyZCBvZiB5b3VyIHNwZWVj
aDogaG93IGdvZXMndD88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ1
PjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yMDk+V2hlbiBJIGNh
bWUgaGl0aGVyIHRvIHRyYW5zcG9ydCB0aGUgdGlkaW5ncyw8L0E+PGJyPgorPEEgTkFNRT00LjMu
MjEwPldoaWNoIEkgaGF2ZSBoZWF2aWx5IGJvcm5lLCB0aGVyZSByYW4gYSBydW1vdXI8L0E+PGJy
PgorPEEgTkFNRT00LjMuMjExPk9mIG1hbnkgd29ydGh5IGZlbGxvd3MgdGhhdCB3ZXJlIG91dDs8
L0E+PGJyPgorPEEgTkFNRT00LjMuMjEyPldoaWNoIHdhcyB0byBteSBiZWxpZWYgd2l0bmVzcydk
IHRoZSByYXRoZXIsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIxMz5Gb3IgdGhhdCBJIHNhdyB0aGUg
dHlyYW50J3MgcG93ZXIgYS1mb290OjwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMTQ+Tm93IGlzIHRo
ZSB0aW1lIG9mIGhlbHA7IHlvdXIgZXllIGluIFNjb3RsYW5kPC9BPjxicj4KKzxBIE5BTUU9NC4z
LjIxNT5Xb3VsZCBjcmVhdGUgc29sZGllcnMsIG1ha2Ugb3VyIHdvbWVuIGZpZ2h0LDwvQT48YnI+
Cis8QSBOQU1FPTQuMy4yMTY+VG8gZG9mZiB0aGVpciBkaXJlIGRpc3RyZXNzZXMuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0Nj48Yj5NQUxDT0xNPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjE3PkJlJ3QgdGhlaXIgY29tZm9ydDwvQT48YnI+Cis8
QSBOQU1FPTQuMy4yMTg+V2UgYXJlIGNvbWluZyB0aGl0aGVyOiBncmFjaW91cyBFbmdsYW5kIGhh
dGg8L0E+PGJyPgorPEEgTkFNRT00LjMuMjE5PkxlbnQgdXMgZ29vZCBTaXdhcmQgYW5kIHRlbiB0
aG91c2FuZCBtZW47PC9BPjxicj4KKzxBIE5BTUU9NC4zLjIyMD5BbiBvbGRlciBhbmQgYSBiZXR0
ZXIgc29sZGllciBub25lPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIyMT5UaGF0IENocmlzdGVuZG9t
IGdpdmVzIG91dC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ3Pjxi
PlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yMjI+V291bGQgSSBjb3Vs
ZCBhbnN3ZXI8L0E+PGJyPgorPEEgTkFNRT00LjMuMjIzPlRoaXMgY29tZm9ydCB3aXRoIHRoZSBs
aWtlISBCdXQgSSBoYXZlIHdvcmRzPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIyND5UaGF0IHdvdWxk
IGJlIGhvd2wnZCBvdXQgaW4gdGhlIGRlc2VydCBhaXIsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIy
NT5XaGVyZSBoZWFyaW5nIHNob3VsZCBub3QgbGF0Y2ggdGhlbS48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ4PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTQuMy4yMjY+V2hhdCBjb25jZXJuIHRoZXk/PC9BPjxicj4KKzxBIE5BTUU9NC4z
LjIyNz5UaGUgZ2VuZXJhbCBjYXVzZT8gb3IgaXMgaXQgYSBmZWUtZ3JpZWY8L0E+PGJyPgorPEEg
TkFNRT00LjMuMjI4PkR1ZSB0byBzb21lIHNpbmdsZSBicmVhc3Q/PC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2g0OT48Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT00LjMuMjI5Pk5vIG1pbmQgdGhhdCdzIGhvbmVzdDwvQT48YnI+Cis8QSBOQU1FPTQu
My4yMzA+QnV0IGluIGl0IHNoYXJlcyBzb21lIHdvZTsgdGhvdWdoIHRoZSBtYWluIHBhcnQ8L0E+
PGJyPgorPEEgTkFNRT00LjMuMjMxPlBlcnRhaW5zIHRvIHlvdSBhbG9uZS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDUwPjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMy4yMzI+SWYgaXQgYmUgbWluZSw8L0E+PGJyPgorPEEgTkFNRT00
LjMuMjMzPktlZXAgaXQgbm90IGZyb20gbWUsIHF1aWNrbHkgbGV0IG1lIGhhdmUgaXQuPC9BPjxi
cj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1MT48Yj5ST1NTPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjM0PkxldCBub3QgeW91ciBlYXJzIGRlc3Bpc2UgbXkg
dG9uZ3VlIGZvciBldmVyLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yMzU+V2hpY2ggc2hhbGwgcG9z
c2VzcyB0aGVtIHdpdGggdGhlIGhlYXZpZXN0IHNvdW5kPC9BPjxicj4KKzxBIE5BTUU9NC4zLjIz
Nj5UaGF0IGV2ZXIgeWV0IHRoZXkgaGVhcmQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g1Mj48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00
LjMuMjM3Pkh1bSEgSSBndWVzcyBhdCBpdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDUzPjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4y
Mzg+WW91ciBjYXN0bGUgaXMgc3VycHJpc2VkOyB5b3VyIHdpZmUgYW5kIGJhYmVzPC9BPjxicj4K
KzxBIE5BTUU9NC4zLjIzOT5TYXZhZ2VseSBzbGF1Z2h0ZXInZDogdG8gcmVsYXRlIHRoZSBtYW5u
ZXIsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI0MD5XZXJlLCBvbiB0aGUgcXVhcnJ5IG9mIHRoZXNl
IG11cmRlcidkIGRlZXIsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI0MT5UbyBhZGQgdGhlIGRlYXRo
IG9mIHlvdS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU0PjxiPk1B
TENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yNDI+TWVyY2lmdWwgaGVh
dmVuITwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNDM+V2hhdCwgbWFuISBuZSdlciBwdWxsIHlvdXIg
aGF0IHVwb24geW91ciBicm93czs8L0E+PGJyPgorPEEgTkFNRT00LjMuMjQ0PkdpdmUgc29ycm93
IHdvcmRzOiB0aGUgZ3JpZWYgdGhhdCBkb2VzIG5vdCBzcGVhazwvQT48YnI+Cis8QSBOQU1FPTQu
My4yNDU+V2hpc3BlcnMgdGhlIG8nZXItZnJhdWdodCBoZWFydCBhbmQgYmlkcyBpdCBicmVhay48
L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU1PjxiPk1BQ0RVRkY8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yNDY+TXkgY2hpbGRyZW4gdG9vPzwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNTY+PGI+Uk9TUzwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjI0Nz4gICAgICAgICAgICAgICAgICBXaWZlLCBjaGls
ZHJlbiwgc2VydmFudHMsIGFsbDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNDg+VGhhdCBjb3VsZCBi
ZSBmb3VuZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU3PjxiPk1B
Q0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yNDk+QW5kIEkgbXVzdCBi
ZSBmcm9tIHRoZW5jZSE8L0E+PGJyPgorPEEgTkFNRT00LjMuMjUwPk15IHdpZmUga2lsbCdkIHRv
bz88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU4PjxiPlJPU1M8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yNTE+SSBoYXZlIHNhaWQuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1OT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjUyPkJlIGNvbWZvcnRlZDo8L0E+PGJyPgorPEEgTkFN
RT00LjMuMjUzPkxldCdzIG1ha2UgdXMgbWVkaWNpbmVzIG9mIG91ciBncmVhdCByZXZlbmdlLDwv
QT48YnI+Cis8QSBOQU1FPTQuMy4yNTQ+VG8gY3VyZSB0aGlzIGRlYWRseSBncmllZi48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDYwPjxiPk1BQ0RVRkY8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTQuMy4yNTU+SGUgaGFzIG5vIGNoaWxkcmVuLiBBbGwgbXkg
cHJldHR5IG9uZXM/PC9BPjxicj4KKzxBIE5BTUU9NC4zLjI1Nj5EaWQgeW91IHNheSBhbGw/IE8g
aGVsbC1raXRlISBBbGw/PC9BPjxicj4KKzxBIE5BTUU9NC4zLjI1Nz5XaGF0LCBhbGwgbXkgcHJl
dHR5IGNoaWNrZW5zIGFuZCB0aGVpciBkYW08L0E+PGJyPgorPEEgTkFNRT00LjMuMjU4PkF0IG9u
ZSBmZWxsIHN3b29wPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNjE+
PGI+TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NC4zLjI1OT5EaXNwdXRl
IGl0IGxpa2UgYSBtYW4uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2
Mj48Yj5NQUNEVUZGPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT00LjMuMjYwPkkgc2hh
bGwgZG8gc287PC9BPjxicj4KKzxBIE5BTUU9NC4zLjI2MT5CdXQgSSBtdXN0IGFsc28gZmVlbCBp
dCBhcyBhIG1hbjo8L0E+PGJyPgorPEEgTkFNRT00LjMuMjYyPkkgY2Fubm90IGJ1dCByZW1lbWJl
ciBzdWNoIHRoaW5ncyB3ZXJlLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNjM+VGhhdCB3ZXJlIG1v
c3QgcHJlY2lvdXMgdG8gbWUuIERpZCBoZWF2ZW4gbG9vayBvbiw8L0E+PGJyPgorPEEgTkFNRT00
LjMuMjY0PkFuZCB3b3VsZCBub3QgdGFrZSB0aGVpciBwYXJ0PyBTaW5mdWwgTWFjZHVmZiw8L0E+
PGJyPgorPEEgTkFNRT00LjMuMjY1PlRoZXkgd2VyZSBhbGwgc3RydWNrIGZvciB0aGVlISBuYXVn
aHQgdGhhdCBJIGFtLDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNjY+Tm90IGZvciB0aGVpciBvd24g
ZGVtZXJpdHMsIGJ1dCBmb3IgbWluZSw8L0E+PGJyPgorPEEgTkFNRT00LjMuMjY3PkZlbGwgc2xh
dWdodGVyIG9uIHRoZWlyIHNvdWxzLiBIZWF2ZW4gcmVzdCB0aGVtIG5vdyE8L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDYzPjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTQuMy4yNjg+QmUgdGhpcyB0aGUgd2hldHN0b25lIG9mIHlvdXIgc3dv
cmQ6IGxldCBncmllZjwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNjk+Q29udmVydCB0byBhbmdlcjsg
Ymx1bnQgbm90IHRoZSBoZWFydCwgZW5yYWdlIGl0LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisK
KzxBIE5BTUU9c3BlZWNoNjQ+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NC4zLjI3MD5PLCBJIGNvdWxkIHBsYXkgdGhlIHdvbWFuIHdpdGggbWluZSBleWVzPC9BPjxi
cj4KKzxBIE5BTUU9NC4zLjI3MT5BbmQgYnJhZ2dhcnQgd2l0aCBteSB0b25ndWUhIEJ1dCwgZ2Vu
dGxlIGhlYXZlbnMsPC9BPjxicj4KKzxBIE5BTUU9NC4zLjI3Mj5DdXQgc2hvcnQgYWxsIGludGVy
bWlzc2lvbjsgZnJvbnQgdG8gZnJvbnQ8L0E+PGJyPgorPEEgTkFNRT00LjMuMjczPkJyaW5nIHRo
b3UgdGhpcyBmaWVuZCBvZiBTY290bGFuZCBhbmQgbXlzZWxmOzwvQT48YnI+Cis8QSBOQU1FPTQu
My4yNzQ+V2l0aGluIG15IHN3b3JkJ3MgbGVuZ3RoIHNldCBoaW07IGlmIGhlICdzY2FwZSw8L0E+
PGJyPgorPEEgTkFNRT00LjMuMjc1PkhlYXZlbiBmb3JnaXZlIGhpbSB0b28hPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g2NT48Yj5NQUxDT0xNPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT00LjMuMjc2PlRoaXMgdHVuZSBnb2VzIG1hbmx5LjwvQT48YnI+Cis8
QSBOQU1FPTQuMy4yNzc+Q29tZSwgZ28gd2UgdG8gdGhlIGtpbmc7IG91ciBwb3dlciBpcyByZWFk
eTs8L0E+PGJyPgorPEEgTkFNRT00LjMuMjc4Pk91ciBsYWNrIGlzIG5vdGhpbmcgYnV0IG91ciBs
ZWF2ZTsgTWFjYmV0aDwvQT48YnI+Cis8QSBOQU1FPTQuMy4yNzk+SXMgcmlwZSBmb3Igc2hha2lu
ZywgYW5kIHRoZSBwb3dlcnMgYWJvdmU8L0E+PGJyPgorPEEgTkFNRT00LjMuMjgwPlB1dCBvbiB0
aGVpciBpbnN0cnVtZW50cy4gUmVjZWl2ZSB3aGF0IGNoZWVyIHlvdSBtYXk6PC9BPjxicj4KKzxB
IE5BTUU9NC4zLjI4MT5UaGUgbmlnaHQgaXMgbG9uZyB0aGF0IG5ldmVyIGZpbmRzIHRoZSBkYXku
PC9BPjxicj4KKzxwPjxpPkV4ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+PHA+Cis8SDM+QUNU
IFY8L2gzPgorPGgzPlNDRU5FIEkuIER1bnNpbmFuZS4gQW50ZS1yb29tIGluIHRoZSBjYXN0bGUu
PC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50ZXIgYSBEb2N0b3Igb2YgUGh5c2ljIGFuZCBh
IFdhaXRpbmctR2VudGxld29tYW48L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MT48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4xPkkgaGF2ZSB0
d28gbmlnaHRzIHdhdGNoZWQgd2l0aCB5b3UsIGJ1dCBjYW4gcGVyY2VpdmU8L0E+PGJyPgorPEEg
TkFNRT01LjEuMj5ubyB0cnV0aCBpbiB5b3VyIHJlcG9ydC4gV2hlbiB3YXMgaXQgc2hlIGxhc3Qg
d2Fsa2VkPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5HZW50
bGV3b21hbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjM+U2luY2UgaGlzIG1h
amVzdHkgd2VudCBpbnRvIHRoZSBmaWVsZCwgSSBoYXZlIHNlZW48L0E+PGJyPgorPEEgTkFNRT01
LjEuND5oZXIgcmlzZSBmcm9tIGhlciBiZWQsIHRocm93IGhlciBuaWdodC1nb3duIHVwb248L0E+
PGJyPgorPEEgTkFNRT01LjEuNT5oZXIsIHVubG9jayBoZXIgY2xvc2V0LCB0YWtlIGZvcnRoIHBh
cGVyLCBmb2xkIGl0LDwvQT48YnI+Cis8QSBOQU1FPTUuMS42PndyaXRlIHVwb24ndCwgcmVhZCBp
dCwgYWZ0ZXJ3YXJkcyBzZWFsIGl0LCBhbmQgYWdhaW48L0E+PGJyPgorPEEgTkFNRT01LjEuNz5y
ZXR1cm4gdG8gYmVkOyB5ZXQgYWxsIHRoaXMgd2hpbGUgaW4gYSBtb3N0IGZhc3Qgc2xlZXAuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPkRvY3RvcjwvYj48L2E+
Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjg+QSBncmVhdCBwZXJ0dXJiYXRpb24gaW4gbmF0
dXJlLCB0byByZWNlaXZlIGF0IG9uY2U8L0E+PGJyPgorPEEgTkFNRT01LjEuOT50aGUgYmVuZWZp
dCBvZiBzbGVlcCwgYW5kIGRvIHRoZSBlZmZlY3RzIG9mPC9BPjxicj4KKzxBIE5BTUU9NS4xLjEw
PndhdGNoaW5nISBJbiB0aGlzIHNsdW1iZXJ5IGFnaXRhdGlvbiwgYmVzaWRlcyBoZXI8L0E+PGJy
PgorPEEgTkFNRT01LjEuMTE+d2Fsa2luZyBhbmQgb3RoZXIgYWN0dWFsIHBlcmZvcm1hbmNlcywg
d2hhdCwgYXQgYW55PC9BPjxicj4KKzxBIE5BTUU9NS4xLjEyPnRpbWUsIGhhdmUgeW91IGhlYXJk
IGhlciBzYXk/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPkdl
bnRsZXdvbWFuPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuMTM+VGhhdCwgc2ly
LCB3aGljaCBJIHdpbGwgbm90IHJlcG9ydCBhZnRlciBoZXIuPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPkRvY3RvcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NS4xLjE0PllvdSBtYXkgdG8gbWU6IGFuZCAndGlzIG1vc3QgbWVldCB5b3Ugc2hvdWxk
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5HZW50bGV3b21h
bjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjE1Pk5laXRoZXIgdG8geW91IG5v
ciBhbnkgb25lOyBoYXZpbmcgbm8gd2l0bmVzcyB0bzwvQT48YnI+Cis8QSBOQU1FPTUuMS4xNj5j
b25maXJtIG15IHNwZWVjaC48L0E+PGJyPgorPHA+PGk+RW50ZXIgTEFEWSBNQUNCRVRILCB3aXRo
IGEgdGFwZXI8L2k+PC9wPgorPEEgTkFNRT01LjEuMTc+TG8geW91LCBoZXJlIHNoZSBjb21lcyEg
VGhpcyBpcyBoZXIgdmVyeSBndWlzZTs8L0E+PGJyPgorPEEgTkFNRT01LjEuMTg+YW5kLCB1cG9u
IG15IGxpZmUsIGZhc3QgYXNsZWVwLiBPYnNlcnZlIGhlcjsgc3RhbmQgY2xvc2UuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPkRvY3RvcjwvYj48L2E+Cis8Ymxv
Y2txdW90ZT4KKzxBIE5BTUU9NS4xLjE5PkhvdyBjYW1lIHNoZSBieSB0aGF0IGxpZ2h0PzwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5HZW50bGV3b21hbjwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjIwPldoeSwgaXQgc3Rvb2QgYnkgaGVyOiBz
aGUgaGFzIGxpZ2h0IGJ5IGhlcjwvQT48YnI+Cis8QSBOQU1FPTUuMS4yMT5jb250aW51YWxseTsg
J3RpcyBoZXIgY29tbWFuZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDk+PGI+RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuMjI+WW91IHNl
ZSwgaGVyIGV5ZXMgYXJlIG9wZW4uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxMD48Yj5HZW50bGV3b21hbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4x
LjIzPkF5LCBidXQgdGhlaXIgc2Vuc2UgaXMgc2h1dC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDExPjxiPkRvY3RvcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5B
TUU9NS4xLjI0PldoYXQgaXMgaXQgc2hlIGRvZXMgbm93PyBMb29rLCBob3cgc2hlIHJ1YnMgaGVy
IGhhbmRzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTI+PGI+R2Vu
dGxld29tYW48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4yNT5JdCBpcyBhbiBh
Y2N1c3RvbWVkIGFjdGlvbiB3aXRoIGhlciwgdG8gc2VlbSB0aHVzPC9BPjxicj4KKzxBIE5BTUU9
NS4xLjI2Pndhc2hpbmcgaGVyIGhhbmRzOiBJIGhhdmUga25vd24gaGVyIGNvbnRpbnVlIGluPC9B
Pjxicj4KKzxBIE5BTUU9NS4xLjI3PnRoaXMgYSBxdWFydGVyIG9mIGFuIGhvdXIuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48Yj5MQURZIE1BQ0JFVEg8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4yOD5ZZXQgaGVyZSdzIGEgc3BvdC48L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE0PjxiPkRvY3RvcjwvYj48L2E+Cis8
YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjI5PkhhcmshIHNoZSBzcGVha3M6IEkgd2lsbCBzZXQg
ZG93biB3aGF0IGNvbWVzIGZyb208L0E+PGJyPgorPEEgTkFNRT01LjEuMzA+aGVyLCB0byBzYXRp
c2Z5IG15IHJlbWVtYnJhbmNlIHRoZSBtb3JlIHN0cm9uZ2x5LjwvQT48YnI+Cis8L2Jsb2NrcXVv
dGU+CisKKzxBIE5BTUU9c3BlZWNoMTU+PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1
b3RlPgorPEEgTkFNRT01LjEuMzE+T3V0LCBkYW1uZWQgc3BvdCEgb3V0LCBJIHNheSEtLU9uZTog
dHdvOiB3aHksPC9BPjxicj4KKzxBIE5BTUU9NS4xLjMyPnRoZW4sICd0aXMgdGltZSB0byBkbyd0
Li0tSGVsbCBpcyBtdXJreSEtLUZpZSwgbXk8L0E+PGJyPgorPEEgTkFNRT01LjEuMzM+bG9yZCwg
ZmllISBhIHNvbGRpZXIsIGFuZCBhZmVhcmQ/IFdoYXQgbmVlZCB3ZTwvQT48YnI+Cis8QSBOQU1F
PTUuMS4zND5mZWFyIHdobyBrbm93cyBpdCwgd2hlbiBub25lIGNhbiBjYWxsIG91ciBwb3dlciB0
bzwvQT48YnI+Cis8QSBOQU1FPTUuMS4zNT5hY2NvdW50Py0tWWV0IHdobyB3b3VsZCBoYXZlIHRo
b3VnaHQgdGhlIG9sZCBtYW48L0E+PGJyPgorPEEgTkFNRT01LjEuMzY+dG8gaGF2ZSBoYWQgc28g
bXVjaCBibG9vZCBpbiBoaW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxNj48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS4zNz5EbyB5
b3UgbWFyayB0aGF0PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTc+
PGI+TEFEWSBNQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuMzg+VGhl
IHRoYW5lIG9mIEZpZmUgaGFkIGEgd2lmZTogd2hlcmUgaXMgc2hlIG5vdz8tLTwvQT48YnI+Cis8
QSBOQU1FPTUuMS4zOT5XaGF0LCB3aWxsIHRoZXNlIGhhbmRzIG5lJ2VyIGJlIGNsZWFuPy0tTm8g
bW9yZSBvJzwvQT48YnI+Cis8QSBOQU1FPTUuMS40MD50aGF0LCBteSBsb3JkLCBubyBtb3JlIG8n
IHRoYXQ6IHlvdSBtYXIgYWxsIHdpdGg8L0E+PGJyPgorPEEgTkFNRT01LjEuNDE+dGhpcyBzdGFy
dGluZy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE4PjxiPkRvY3Rv
cjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjQyPkdvIHRvLCBnbyB0bzsgeW91
IGhhdmUga25vd24gd2hhdCB5b3Ugc2hvdWxkIG5vdC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDE5PjxiPkdlbnRsZXdvbWFuPC9iPjwvYT4KKzxibG9ja3F1b3RlPgor
PEEgTkFNRT01LjEuNDM+U2hlIGhhcyBzcG9rZSB3aGF0IHNoZSBzaG91bGQgbm90LCBJIGFtIHN1
cmUgb2Y8L0E+PGJyPgorPEEgTkFNRT01LjEuNDQ+dGhhdDogaGVhdmVuIGtub3dzIHdoYXQgc2hl
IGhhcyBrbm93bi48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDIwPjxi
PkxBRFkgTUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjQ1PkhlcmUn
cyB0aGUgc21lbGwgb2YgdGhlIGJsb29kIHN0aWxsOiBhbGwgdGhlPC9BPjxicj4KKzxBIE5BTUU9
NS4xLjQ2PnBlcmZ1bWVzIG9mIEFyYWJpYSB3aWxsIG5vdCBzd2VldGVuIHRoaXMgbGl0dGxlPC9B
Pjxicj4KKzxBIE5BTUU9NS4xLjQ3PmhhbmQuIE9oLCBvaCwgb2ghPC9BPjxicj4KKzwvYmxvY2tx
dW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMT48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+
Cis8QSBOQU1FPTUuMS40OD5XaGF0IGEgc2lnaCBpcyB0aGVyZSEgVGhlIGhlYXJ0IGlzIHNvcmVs
eSBjaGFyZ2VkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjI+PGI+
R2VudGxld29tYW48L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS40OT5JIHdvdWxk
IG5vdCBoYXZlIHN1Y2ggYSBoZWFydCBpbiBteSBib3NvbSBmb3IgdGhlPC9BPjxicj4KKzxBIE5B
TUU9NS4xLjUwPmRpZ25pdHkgb2YgdGhlIHdob2xlIGJvZHkuPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gyMz48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTUuMS41MT5XZWxsLCB3ZWxsLCB3ZWxsLC0tPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gyND48Yj5HZW50bGV3b21hbjwvYj48L2E+Cis8YmxvY2txdW90ZT4K
KzxBIE5BTUU9NS4xLjUyPlByYXkgR29kIGl0IGJlLCBzaXIuPC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gyNT48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTUuMS41Mz5UaGlzIGRpc2Vhc2UgaXMgYmV5b25kIG15IHByYWN0aXNlOiB5ZXQgSSBo
YXZlIGtub3duPC9BPjxicj4KKzxBIE5BTUU9NS4xLjU0PnRob3NlIHdoaWNoIGhhdmUgd2Fsa2Vk
IGluIHRoZWlyIHNsZWVwIHdobyBoYXZlIGRpZWQ8L0E+PGJyPgorPEEgTkFNRT01LjEuNTU+aG9s
aWx5IGluIHRoZWlyIGJlZHMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gyNj48Yj5MQURZIE1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMS41
Nj5XYXNoIHlvdXIgaGFuZHMsIHB1dCBvbiB5b3VyIG5pZ2h0Z293bjsgbG9vayBub3Qgc288L0E+
PGJyPgorPEEgTkFNRT01LjEuNTc+cGFsZS4tLUkgdGVsbCB5b3UgeWV0IGFnYWluLCBCYW5xdW8n
cyBidXJpZWQ7IGhlPC9BPjxicj4KKzxBIE5BTUU9NS4xLjU4PmNhbm5vdCBjb21lIG91dCBvbidz
IGdyYXZlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjc+PGI+RG9j
dG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuNTk+RXZlbiBzbz88L0E+PGJy
PgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI4PjxiPkxBRFkgTUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjYwPlRvIGJlZCwgdG8gYmVkISB0aGVyZSdz
IGtub2NraW5nIGF0IHRoZSBnYXRlOjwvQT48YnI+Cis8QSBOQU1FPTUuMS42MT5jb21lLCBjb21l
LCBjb21lLCBjb21lLCBnaXZlIG1lIHlvdXIgaGFuZC4gV2hhdCdzPC9BPjxicj4KKzxBIE5BTUU9
NS4xLjYyPmRvbmUgY2Fubm90IGJlIHVuZG9uZS4tLVRvIGJlZCwgdG8gYmVkLCB0byBiZWQhPC9B
Pjxicj4KKzxwPjxpPkV4aXQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDI5PjxiPkRvY3RvcjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjYzPldpbGwg
c2hlIGdvIG5vdyB0byBiZWQ/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gzMD48Yj5HZW50bGV3b21hbjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjY0
PkRpcmVjdGx5LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMzE+PGI+
RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjEuNjU+Rm91bCB3aGlzcGVy
aW5ncyBhcmUgYWJyb2FkOiB1bm5hdHVyYWwgZGVlZHM8L0E+PGJyPgorPEEgTkFNRT01LjEuNjY+
RG8gYnJlZWQgdW5uYXR1cmFsIHRyb3VibGVzOiBpbmZlY3RlZCBtaW5kczwvQT48YnI+Cis8QSBO
QU1FPTUuMS42Nz5UbyB0aGVpciBkZWFmIHBpbGxvd3Mgd2lsbCBkaXNjaGFyZ2UgdGhlaXIgc2Vj
cmV0czo8L0E+PGJyPgorPEEgTkFNRT01LjEuNjg+TW9yZSBuZWVkcyBzaGUgdGhlIGRpdmluZSB0
aGFuIHRoZSBwaHlzaWNpYW4uPC9BPjxicj4KKzxBIE5BTUU9NS4xLjY5PkdvZCwgR29kIGZvcmdp
dmUgdXMgYWxsISBMb29rIGFmdGVyIGhlcjs8L0E+PGJyPgorPEEgTkFNRT01LjEuNzA+UmVtb3Zl
IGZyb20gaGVyIHRoZSBtZWFucyBvZiBhbGwgYW5ub3lhbmNlLDwvQT48YnI+Cis8QSBOQU1FPTUu
MS43MT5BbmQgc3RpbGwga2VlcCBleWVzIHVwb24gaGVyLiBTbywgZ29vZCBuaWdodDo8L0E+PGJy
PgorPEEgTkFNRT01LjEuNzI+TXkgbWluZCBzaGUgaGFzIG1hdGVkLCBhbmQgYW1hemVkIG15IHNp
Z2h0LjwvQT48YnI+Cis8QSBOQU1FPTUuMS43Mz5JIHRoaW5rLCBidXQgZGFyZSBub3Qgc3BlYWsu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzMj48Yj5HZW50bGV3b21h
bjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4xLjc0Pkdvb2QgbmlnaHQsIGdvb2Qg
ZG9jdG9yLjwvQT48YnI+Cis8cD48aT5FeGV1bnQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorPGgz
PlNDRU5FIElJLiBUaGUgY291bnRyeSBuZWFyIER1bnNpbmFuZS48L2gzPgorPHA+PGJsb2NrcXVv
dGU+Cis8aT5EcnVtIGFuZCBjb2xvdXJzLiBFbnRlciBNRU5URUlUSCwgQ0FJVEhORVNTLCBBTkdV
UywgTEVOTk9YLCBhbmQgU29sZGllcnM8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoMT48Yj5NRU5URUlUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4yLjE+VGhl
IEVuZ2xpc2ggcG93ZXIgaXMgbmVhciwgbGVkIG9uIGJ5IE1hbGNvbG0sPC9BPjxicj4KKzxBIE5B
TUU9NS4yLjI+SGlzIHVuY2xlIFNpd2FyZCBhbmQgdGhlIGdvb2QgTWFjZHVmZjo8L0E+PGJyPgor
PEEgTkFNRT01LjIuMz5SZXZlbmdlcyBidXJuIGluIHRoZW07IGZvciB0aGVpciBkZWFyIGNhdXNl
czwvQT48YnI+Cis8QSBOQU1FPTUuMi40PldvdWxkIHRvIHRoZSBibGVlZGluZyBhbmQgdGhlIGdy
aW0gYWxhcm08L0E+PGJyPgorPEEgTkFNRT01LjIuNT5FeGNpdGUgdGhlIG1vcnRpZmllZCBtYW4u
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPkFOR1VTPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjIuNj5OZWFyIEJpcm5hbSB3b29kPC9BPjxicj4K
KzxBIE5BTUU9NS4yLjc+U2hhbGwgd2Ugd2VsbCBtZWV0IHRoZW07IHRoYXQgd2F5IGFyZSB0aGV5
IGNvbWluZy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+Q0FJ
VEhORVNTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjIuOD5XaG8ga25vd3MgaWYg
RG9uYWxiYWluIGJlIHdpdGggaGlzIGJyb3RoZXI/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2g0PjxiPkxFTk5PWDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NS4yLjk+Rm9yIGNlcnRhaW4sIHNpciwgaGUgaXMgbm90OiBJIGhhdmUgYSBmaWxlPC9BPjxicj4K
KzxBIE5BTUU9NS4yLjEwPk9mIGFsbCB0aGUgZ2VudHJ5OiB0aGVyZSBpcyBTaXdhcmQncyBzb24s
PC9BPjxicj4KKzxBIE5BTUU9NS4yLjExPkFuZCBtYW55IHVucm91Z2ggeW91dGhzIHRoYXQgZXZl
biBub3c8L0E+PGJyPgorPEEgTkFNRT01LjIuMTI+UHJvdGVzdCB0aGVpciBmaXJzdCBvZiBtYW5o
b29kLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNT48Yj5NRU5URUlU
SDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4yLjEzPldoYXQgZG9lcyB0aGUgdHly
YW50PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5DQUlUSE5F
U1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMi4xND5HcmVhdCBEdW5zaW5hbmUg
aGUgc3Ryb25nbHkgZm9ydGlmaWVzOjwvQT48YnI+Cis8QSBOQU1FPTUuMi4xNT5Tb21lIHNheSBo
ZSdzIG1hZDsgb3RoZXJzIHRoYXQgbGVzc2VyIGhhdGUgaGltPC9BPjxicj4KKzxBIE5BTUU9NS4y
LjE2PkRvIGNhbGwgaXQgdmFsaWFudCBmdXJ5OiBidXQsIGZvciBjZXJ0YWluLDwvQT48YnI+Cis8
QSBOQU1FPTUuMi4xNz5IZSBjYW5ub3QgYnVja2xlIGhpcyBkaXN0ZW1wZXInZCBjYXVzZTwvQT48
YnI+Cis8QSBOQU1FPTUuMi4xOD5XaXRoaW4gdGhlIGJlbHQgb2YgcnVsZS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+QU5HVVM8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuMi4xOT5Ob3cgZG9lcyBoZSBmZWVsPC9BPjxicj4KKzxBIE5BTUU9NS4y
LjIwPkhpcyBzZWNyZXQgbXVyZGVycyBzdGlja2luZyBvbiBoaXMgaGFuZHM7PC9BPjxicj4KKzxB
IE5BTUU9NS4yLjIxPk5vdyBtaW51dGVseSByZXZvbHRzIHVwYnJhaWQgaGlzIGZhaXRoLWJyZWFj
aDs8L0E+PGJyPgorPEEgTkFNRT01LjIuMjI+VGhvc2UgaGUgY29tbWFuZHMgbW92ZSBvbmx5IGlu
IGNvbW1hbmQsPC9BPjxicj4KKzxBIE5BTUU9NS4yLjIzPk5vdGhpbmcgaW4gbG92ZTogbm93IGRv
ZXMgaGUgZmVlbCBoaXMgdGl0bGU8L0E+PGJyPgorPEEgTkFNRT01LjIuMjQ+SGFuZyBsb29zZSBh
Ym91dCBoaW0sIGxpa2UgYSBnaWFudCdzIHJvYmU8L0E+PGJyPgorPEEgTkFNRT01LjIuMjU+VXBv
biBhIGR3YXJmaXNoIHRoaWVmLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3Bl
ZWNoOD48Yj5NRU5URUlUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4yLjI2Pldo
byB0aGVuIHNoYWxsIGJsYW1lPC9BPjxicj4KKzxBIE5BTUU9NS4yLjI3PkhpcyBwZXN0ZXInZCBz
ZW5zZXMgdG8gcmVjb2lsIGFuZCBzdGFydCw8L0E+PGJyPgorPEEgTkFNRT01LjIuMjg+V2hlbiBh
bGwgdGhhdCBpcyB3aXRoaW4gaGltIGRvZXMgY29uZGVtbjwvQT48YnI+Cis8QSBOQU1FPTUuMi4y
OT5JdHNlbGYgZm9yIGJlaW5nIHRoZXJlPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5B
TUU9c3BlZWNoOT48Yj5DQUlUSE5FU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUu
Mi4zMD5XZWxsLCBtYXJjaCB3ZSBvbiw8L0E+PGJyPgorPEEgTkFNRT01LjIuMzE+VG8gZ2l2ZSBv
YmVkaWVuY2Ugd2hlcmUgJ3RpcyB0cnVseSBvd2VkOjwvQT48YnI+Cis8QSBOQU1FPTUuMi4zMj5N
ZWV0IHdlIHRoZSBtZWRpY2luZSBvZiB0aGUgc2lja2x5IHdlYWwsPC9BPjxicj4KKzxBIE5BTUU9
NS4yLjMzPkFuZCB3aXRoIGhpbSBwb3VyIHdlIGluIG91ciBjb3VudHJ5J3MgcHVyZ2U8L0E+PGJy
PgorPEEgTkFNRT01LjIuMzQ+RWFjaCBkcm9wIG9mIHVzLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+
CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+TEVOTk9YPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEg
TkFNRT01LjIuMzU+ICAgICAgICAgICAgICAgICAgT3Igc28gbXVjaCBhcyBpdCBuZWVkcyw8L0E+
PGJyPgorPEEgTkFNRT01LjIuMzY+VG8gZGV3IHRoZSBzb3ZlcmVpZ24gZmxvd2VyIGFuZCBkcm93
biB0aGUgd2VlZHMuPC9BPjxicj4KKzxBIE5BTUU9NS4yLjM3Pk1ha2Ugd2Ugb3VyIG1hcmNoIHRv
d2FyZHMgQmlybmFtLjwvQT48YnI+Cis8cD48aT5FeGV1bnQsIG1hcmNoaW5nPC9pPjwvcD4KKzwv
YmxvY2txdW90ZT4KKzxoMz5TQ0VORSBJSUkuIER1bnNpbmFuZS4gQSByb29tIGluIHRoZSBjYXN0
bGUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RW50ZXIgTUFDQkVUSCwgRG9jdG9yLCBhbmQg
QXR0ZW5kYW50czwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxPjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuMy4xPkJyaW5nIG1lIG5vIG1vcmUg
cmVwb3J0czsgbGV0IHRoZW0gZmx5IGFsbDo8L0E+PGJyPgorPEEgTkFNRT01LjMuMj5UaWxsIEJp
cm5hbSB3b29kIHJlbW92ZSB0byBEdW5zaW5hbmUsPC9BPjxicj4KKzxBIE5BTUU9NS4zLjM+SSBj
YW5ub3QgdGFpbnQgd2l0aCBmZWFyLiBXaGF0J3MgdGhlIGJveSBNYWxjb2xtPzwvQT48YnI+Cis8
QSBOQU1FPTUuMy40PldhcyBoZSBub3QgYm9ybiBvZiB3b21hbj8gVGhlIHNwaXJpdHMgdGhhdCBr
bm93PC9BPjxicj4KKzxBIE5BTUU9NS4zLjU+QWxsIG1vcnRhbCBjb25zZXF1ZW5jZXMgaGF2ZSBw
cm9ub3VuY2VkIG1lIHRodXM6PC9BPjxicj4KKzxBIE5BTUU9NS4zLjY+J0ZlYXIgbm90LCBNYWNi
ZXRoOyBubyBtYW4gdGhhdCdzIGJvcm4gb2Ygd29tYW48L0E+PGJyPgorPEEgTkFNRT01LjMuNz5T
aGFsbCBlJ2VyIGhhdmUgcG93ZXIgdXBvbiB0aGVlLicgVGhlbiBmbHksPC9BPjxicj4KKzxBIE5B
TUU9NS4zLjg+ZmFsc2UgdGhhbmVzLDwvQT48YnI+Cis8QSBOQU1FPTUuMy45PkFuZCBtaW5nbGUg
d2l0aCB0aGUgRW5nbGlzaCBlcGljdXJlczo8L0E+PGJyPgorPEEgTkFNRT01LjMuMTA+VGhlIG1p
bmQgSSBzd2F5IGJ5IGFuZCB0aGUgaGVhcnQgSSBiZWFyPC9BPjxicj4KKzxBIE5BTUU9NS4zLjEx
PlNoYWxsIG5ldmVyIHNhZyB3aXRoIGRvdWJ0IG5vciBzaGFrZSB3aXRoIGZlYXIuPC9BPjxicj4K
KzxwPjxpPkVudGVyIGEgU2VydmFudDwvaT48L3A+Cis8QSBOQU1FPTUuMy4xMj5UaGUgZGV2aWwg
ZGFtbiB0aGVlIGJsYWNrLCB0aG91IGNyZWFtLWZhY2VkIGxvb24hPC9BPjxicj4KKzxBIE5BTUU9
NS4zLjEzPldoZXJlIGdvdCdzdCB0aG91IHRoYXQgZ29vc2UgbG9vaz88L0E+PGJyPgorPC9ibG9j
a3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+U2VydmFudDwvYj48L2E+Cis8YmxvY2txdW90
ZT4KKzxBIE5BTUU9NS4zLjE0PlRoZXJlIGlzIHRlbiB0aG91c2FuZC0tPC9BPjxicj4KKzwvYmxv
Y2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuMy4xNT5HZWVzZSwgdmlsbGFpbiE8L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+U2VydmFudDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxB
IE5BTUU9NS4zLjE2PlNvbGRpZXJzLCBzaXIuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g1PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUu
My4xNz5HbyBwcmljayB0aHkgZmFjZSwgYW5kIG92ZXItcmVkIHRoeSBmZWFyLDwvQT48YnI+Cis8
QSBOQU1FPTUuMy4xOD5UaG91IGxpbHktbGl2ZXInZCBib3kuIFdoYXQgc29sZGllcnMsIHBhdGNo
PzwvQT48YnI+Cis8QSBOQU1FPTUuMy4xOT5EZWF0aCBvZiB0aHkgc291bCEgdGhvc2UgbGluZW4g
Y2hlZWtzIG9mIHRoaW5lPC9BPjxicj4KKzxBIE5BTUU9NS4zLjIwPkFyZSBjb3Vuc2VsbG9ycyB0
byBmZWFyLiBXaGF0IHNvbGRpZXJzLCB3aGV5LWZhY2U/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g2PjxiPlNlcnZhbnQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTUuMy4yMT5UaGUgRW5nbGlzaCBmb3JjZSwgc28gcGxlYXNlIHlvdS48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDc+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NS4zLjIyPlRha2UgdGh5IGZhY2UgaGVuY2UuPC9BPjxicj4KKzxwPjxp
PkV4aXQgU2VydmFudDwvaT48L3A+Cis8QSBOQU1FPTUuMy4yMz5TZXl0b24hLS1JIGFtIHNpY2sg
YXQgaGVhcnQsPC9BPjxicj4KKzxBIE5BTUU9NS4zLjI0PldoZW4gSSBiZWhvbGQtLVNleXRvbiwg
SSBzYXkhLS1UaGlzIHB1c2g8L0E+PGJyPgorPEEgTkFNRT01LjMuMjU+V2lsbCBjaGVlciBtZSBl
dmVyLCBvciBkaXNzZWF0IG1lIG5vdy48L0E+PGJyPgorPEEgTkFNRT01LjMuMjY+SSBoYXZlIGxp
dmVkIGxvbmcgZW5vdWdoOiBteSB3YXkgb2YgbGlmZTwvQT48YnI+Cis8QSBOQU1FPTUuMy4yNz5J
cyBmYWxsJ24gaW50byB0aGUgc2VhciwgdGhlIHllbGxvdyBsZWFmOzwvQT48YnI+Cis8QSBOQU1F
PTUuMy4yOD5BbmQgdGhhdCB3aGljaCBzaG91bGQgYWNjb21wYW55IG9sZCBhZ2UsPC9BPjxicj4K
KzxBIE5BTUU9NS4zLjI5PkFzIGhvbm91ciwgbG92ZSwgb2JlZGllbmNlLCB0cm9vcHMgb2YgZnJp
ZW5kcyw8L0E+PGJyPgorPEEgTkFNRT01LjMuMzA+SSBtdXN0IG5vdCBsb29rIHRvIGhhdmU7IGJ1
dCwgaW4gdGhlaXIgc3RlYWQsPC9BPjxicj4KKzxBIE5BTUU9NS4zLjMxPkN1cnNlcywgbm90IGxv
dWQgYnV0IGRlZXAsIG1vdXRoLWhvbm91ciwgYnJlYXRoLDwvQT48YnI+Cis8QSBOQU1FPTUuMy4z
Mj5XaGljaCB0aGUgcG9vciBoZWFydCB3b3VsZCBmYWluIGRlbnksIGFuZCBkYXJlIG5vdC4gU2V5
dG9uITwvQT48YnI+Cis8cD48aT5FbnRlciBTRVlUT048L2k+PC9wPgorPC9ibG9ja3F1b3RlPgor
Cis8QSBOQU1FPXNwZWVjaDg+PGI+U0VZVE9OPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT01LjMuMzM+V2hhdCBpcyB5b3VyIGdyYWNpb3VzIHBsZWFzdXJlPzwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT01LjMuMzQ+V2hhdCBuZXdzIG1vcmU/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxMD48Yj5TRVlUT048L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTUuMy4zNT5BbGwgaXMgY29uZmlybSdkLCBteSBsb3JkLCB3aGljaCB3YXMgcmVwb3J0ZWQu
PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5NQUNCRVRIPC9i
PjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuMzY+SSdsbCBmaWdodCB0aWxsIGZyb20g
bXkgYm9uZXMgbXkgZmxlc2ggYmUgaGFjaydkLjwvQT48YnI+Cis8QSBOQU1FPTUuMy4zNz5HaXZl
IG1lIG15IGFybW91ci48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEy
PjxiPlNFWVRPTjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4zLjM4PidUaXMgbm90
IG5lZWRlZCB5ZXQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMz48
Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuMzk+SSdsbCBwdXQg
aXQgb24uPC9BPjxicj4KKzxBIE5BTUU9NS4zLjQwPlNlbmQgb3V0IG1vcmUgaG9yc2VzOyBza2ly
ciB0aGUgY291bnRyeSByb3VuZDs8L0E+PGJyPgorPEEgTkFNRT01LjMuNDE+SGFuZyB0aG9zZSB0
aGF0IHRhbGsgb2YgZmVhci4gR2l2ZSBtZSBtaW5lIGFybW91ci48L0E+PGJyPgorPEEgTkFNRT01
LjMuNDI+SG93IGRvZXMgeW91ciBwYXRpZW50LCBkb2N0b3I/PC9BPjxicj4KKzwvYmxvY2txdW90
ZT4KKworPEEgTkFNRT1zcGVlY2gxND48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8
QSBOQU1FPTUuMy40Mz5Ob3Qgc28gc2ljaywgbXkgbG9yZCw8L0E+PGJyPgorPEEgTkFNRT01LjMu
NDQ+QXMgc2hlIGlzIHRyb3VibGVkIHdpdGggdGhpY2sgY29taW5nIGZhbmNpZXMsPC9BPjxicj4K
KzxBIE5BTUU9NS4zLjQ1PlRoYXQga2VlcCBoZXIgZnJvbSBoZXIgcmVzdC48L0E+PGJyPgorPC9i
bG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE1PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTUuMy40Nj5DdXJlIGhlciBvZiB0aGF0LjwvQT48YnI+Cis8QSBOQU1F
PTUuMy40Nz5DYW5zdCB0aG91IG5vdCBtaW5pc3RlciB0byBhIG1pbmQgZGlzZWFzZWQsPC9BPjxi
cj4KKzxBIE5BTUU9NS4zLjQ4PlBsdWNrIGZyb20gdGhlIG1lbW9yeSBhIHJvb3RlZCBzb3Jyb3cs
PC9BPjxicj4KKzxBIE5BTUU9NS4zLjQ5PlJhemUgb3V0IHRoZSB3cml0dGVuIHRyb3VibGVzIG9m
IHRoZSBicmFpbjwvQT48YnI+Cis8QSBOQU1FPTUuMy41MD5BbmQgd2l0aCBzb21lIHN3ZWV0IG9i
bGl2aW91cyBhbnRpZG90ZTwvQT48YnI+Cis8QSBOQU1FPTUuMy41MT5DbGVhbnNlIHRoZSBzdHVm
ZidkIGJvc29tIG9mIHRoYXQgcGVyaWxvdXMgc3R1ZmY8L0E+PGJyPgorPEEgTkFNRT01LjMuNTI+
V2hpY2ggd2VpZ2hzIHVwb24gdGhlIGhlYXJ0PzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxB
IE5BTUU9c3BlZWNoMTY+PGI+RG9jdG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01
LjMuNTM+VGhlcmVpbiB0aGUgcGF0aWVudDwvQT48YnI+Cis8QSBOQU1FPTUuMy41ND5NdXN0IG1p
bmlzdGVyIHRvIGhpbXNlbGYuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxNz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuNTU+VGhy
b3cgcGh5c2ljIHRvIHRoZSBkb2dzOyBJJ2xsIG5vbmUgb2YgaXQuPC9BPjxicj4KKzxBIE5BTUU9
NS4zLjU2PkNvbWUsIHB1dCBtaW5lIGFybW91ciBvbjsgZ2l2ZSBtZSBteSBzdGFmZi48L0E+PGJy
PgorPEEgTkFNRT01LjMuNTc+U2V5dG9uLCBzZW5kIG91dC4gRG9jdG9yLCB0aGUgdGhhbmVzIGZs
eSBmcm9tIG1lLjwvQT48YnI+Cis8QSBOQU1FPTUuMy41OD5Db21lLCBzaXIsIGRpc3BhdGNoLiBJ
ZiB0aG91IGNvdWxkc3QsIGRvY3RvciwgY2FzdDwvQT48YnI+Cis8QSBOQU1FPTUuMy41OT5UaGUg
d2F0ZXIgb2YgbXkgbGFuZCwgZmluZCBoZXIgZGlzZWFzZSw8L0E+PGJyPgorPEEgTkFNRT01LjMu
NjA+QW5kIHB1cmdlIGl0IHRvIGEgc291bmQgYW5kIHByaXN0aW5lIGhlYWx0aCw8L0E+PGJyPgor
PEEgTkFNRT01LjMuNjE+SSB3b3VsZCBhcHBsYXVkIHRoZWUgdG8gdGhlIHZlcnkgZWNobyw8L0E+
PGJyPgorPEEgTkFNRT01LjMuNjI+VGhhdCBzaG91bGQgYXBwbGF1ZCBhZ2Fpbi4tLVB1bGwndCBv
ZmYsIEkgc2F5Li0tPC9BPjxicj4KKzxBIE5BTUU9NS4zLjYzPldoYXQgcmh1YmFyYiwgY3ltZSwg
b3Igd2hhdCBwdXJnYXRpdmUgZHJ1Zyw8L0E+PGJyPgorPEEgTkFNRT01LjMuNjQ+V291bGQgc2Nv
dXIgdGhlc2UgRW5nbGlzaCBoZW5jZT8gSGVhcidzdCB0aG91IG9mIHRoZW0/PC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxOD48Yj5Eb2N0b3I8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTUuMy42NT5BeSwgbXkgZ29vZCBsb3JkOyB5b3VyIHJveWFsIHByZXBh
cmF0aW9uPC9BPjxicj4KKzxBIE5BTUU9NS4zLjY2Pk1ha2VzIHVzIGhlYXIgc29tZXRoaW5nLjwv
QT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTk+PGI+TUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS4zLjY3PkJyaW5nIGl0IGFmdGVyIG1lLjwvQT48
YnI+Cis8QSBOQU1FPTUuMy42OD5JIHdpbGwgbm90IGJlIGFmcmFpZCBvZiBkZWF0aCBhbmQgYmFu
ZSw8L0E+PGJyPgorPEEgTkFNRT01LjMuNjk+VGlsbCBCaXJuYW0gZm9yZXN0IGNvbWUgdG8gRHVu
c2luYW5lLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjA+PGI+RG9j
dG9yPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjMuNzA+W0FzaWRlXSAgV2VyZSBJ
IGZyb20gRHVuc2luYW5lIGF3YXkgYW5kIGNsZWFyLDwvQT48YnI+Cis8QSBOQU1FPTUuMy43MT5Q
cm9maXQgYWdhaW4gc2hvdWxkIGhhcmRseSBkcmF3IG1lIGhlcmUuPC9BPjxicj4KKzxwPjxpPkV4
ZXVudDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgSVYuIENvdW50cnkgbmVhciBC
aXJuYW0gd29vZC48L2gzPgorPHA+PGJsb2NrcXVvdGU+Cis8aT5EcnVtIGFuZCBjb2xvdXJzLiBF
bnRlciBNQUxDT0xNLCBTSVdBUkQgYW5kIFlPVU5HICBTSVdBUkQsIE1BQ0RVRkYsIE1FTlRFSVRI
LCBDQUlUSE5FU1MsIEFOR1VTLCBMRU5OT1gsIFJPU1MsIGFuZCBTb2xkaWVycywgbWFyY2hpbmc8
L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5NQUxDT0xNPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjQuMT5Db3VzaW5zLCBJIGhvcGUgdGhlIGRheXMgYXJl
IG5lYXIgYXQgaGFuZDwvQT48YnI+Cis8QSBOQU1FPTUuNC4yPlRoYXQgY2hhbWJlcnMgd2lsbCBi
ZSBzYWZlLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5NRU5U
RUlUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS40LjM+V2UgZG91YnQgaXQgbm90
aGluZy48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+U0lXQVJE
PC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjQuND5XaGF0IHdvb2QgaXMgdGhpcyBi
ZWZvcmUgdXM/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g0PjxiPk1F
TlRFSVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjQuNT5UaGUgd29vZCBvZiBC
aXJuYW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPk1BTENP
TE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNC42PkxldCBldmVyeSBzb2xkaWVy
IGhldyBoaW0gZG93biBhIGJvdWdoPC9BPjxicj4KKzxBIE5BTUU9NS40Ljc+QW5kIGJlYXIndCBi
ZWZvcmUgaGltOiB0aGVyZWJ5IHNoYWxsIHdlIHNoYWRvdzwvQT48YnI+Cis8QSBOQU1FPTUuNC44
PlRoZSBudW1iZXJzIG9mIG91ciBob3N0IGFuZCBtYWtlIGRpc2NvdmVyeTwvQT48YnI+Cis8QSBO
QU1FPTUuNC45PkVyciBpbiByZXBvcnQgb2YgdXMuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2g2PjxiPlNvbGRpZXJzPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFN
RT01LjQuMTA+SXQgc2hhbGwgYmUgZG9uZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBO
QU1FPXNwZWVjaDc+PGI+U0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjQu
MTE+V2UgbGVhcm4gbm8gb3RoZXIgYnV0IHRoZSBjb25maWRlbnQgdHlyYW50PC9BPjxicj4KKzxB
IE5BTUU9NS40LjEyPktlZXBzIHN0aWxsIGluIER1bnNpbmFuZSwgYW5kIHdpbGwgZW5kdXJlPC9B
Pjxicj4KKzxBIE5BTUU9NS40LjEzPk91ciBzZXR0aW5nIGRvd24gYmVmb3JlICd0LjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoOD48Yj5NQUxDT0xNPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT01LjQuMTQ+J1RpcyBoaXMgbWFpbiBob3BlOjwvQT48YnI+Cis8
QSBOQU1FPTUuNC4xNT5Gb3Igd2hlcmUgdGhlcmUgaXMgYWR2YW50YWdlIHRvIGJlIGdpdmVuLDwv
QT48YnI+Cis8QSBOQU1FPTUuNC4xNj5Cb3RoIG1vcmUgYW5kIGxlc3MgaGF2ZSBnaXZlbiBoaW0g
dGhlIHJldm9sdCw8L0E+PGJyPgorPEEgTkFNRT01LjQuMTc+QW5kIG5vbmUgc2VydmUgd2l0aCBo
aW0gYnV0IGNvbnN0cmFpbmVkIHRoaW5nczwvQT48YnI+Cis8QSBOQU1FPTUuNC4xOD5XaG9zZSBo
ZWFydHMgYXJlIGFic2VudCB0b28uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2g5PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNC4xOT5M
ZXQgb3VyIGp1c3QgY2Vuc3VyZXM8L0E+PGJyPgorPEEgTkFNRT01LjQuMjA+QXR0ZW5kIHRoZSB0
cnVlIGV2ZW50LCBhbmQgcHV0IHdlIG9uPC9BPjxicj4KKzxBIE5BTUU9NS40LjIxPkluZHVzdHJp
b3VzIHNvbGRpZXJzaGlwLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
MTA+PGI+U0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjQuMjI+VGhlIHRp
bWUgYXBwcm9hY2hlczwvQT48YnI+Cis8QSBOQU1FPTUuNC4yMz5UaGF0IHdpbGwgd2l0aCBkdWUg
ZGVjaXNpb24gbWFrZSB1cyBrbm93PC9BPjxicj4KKzxBIE5BTUU9NS40LjI0PldoYXQgd2Ugc2hh
bGwgc2F5IHdlIGhhdmUgYW5kIHdoYXQgd2Ugb3dlLjwvQT48YnI+Cis8QSBOQU1FPTUuNC4yNT5U
aG91Z2h0cyBzcGVjdWxhdGl2ZSB0aGVpciB1bnN1cmUgaG9wZXMgcmVsYXRlLDwvQT48YnI+Cis8
QSBOQU1FPTUuNC4yNj5CdXQgY2VydGFpbiBpc3N1ZSBzdHJva2VzIG11c3QgYXJiaXRyYXRlOjwv
QT48YnI+Cis8QSBOQU1FPTUuNC4yNz5Ub3dhcmRzIHdoaWNoIGFkdmFuY2UgdGhlIHdhci48L0E+
PGJyPgorPHA+PGk+RXhldW50LCBtYXJjaGluZzwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+
U0NFTkUgVi4gRHVuc2luYW5lLiBXaXRoaW4gdGhlIGNhc3RsZS48L2gzPgorPHA+PGJsb2NrcXVv
dGU+Cis8aT5FbnRlciBNQUNCRVRILCBTRVlUT04sIGFuZCBTb2xkaWVycywgd2l0aCBkcnVtIGFu
ZCBjb2xvdXJzPC9pPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE+PGI+TUFDQkVU
SDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS41LjE+SGFuZyBvdXQgb3VyIGJhbm5l
cnMgb24gdGhlIG91dHdhcmQgd2FsbHM7PC9BPjxicj4KKzxBIE5BTUU9NS41LjI+VGhlIGNyeSBp
cyBzdGlsbCAnVGhleSBjb21lOicgb3VyIGNhc3RsZSdzIHN0cmVuZ3RoPC9BPjxicj4KKzxBIE5B
TUU9NS41LjM+V2lsbCBsYXVnaCBhIHNpZWdlIHRvIHNjb3JuOiBoZXJlIGxldCB0aGVtIGxpZTwv
QT48YnI+Cis8QSBOQU1FPTUuNS40PlRpbGwgZmFtaW5lIGFuZCB0aGUgYWd1ZSBlYXQgdGhlbSB1
cDo8L0E+PGJyPgorPEEgTkFNRT01LjUuNT5XZXJlIHRoZXkgbm90IGZvcmNlZCB3aXRoIHRob3Nl
IHRoYXQgc2hvdWxkIGJlIG91cnMsPC9BPjxicj4KKzxBIE5BTUU9NS41LjY+V2UgbWlnaHQgaGF2
ZSBtZXQgdGhlbSBkYXJlZnVsLCBiZWFyZCB0byBiZWFyZCw8L0E+PGJyPgorPEEgTkFNRT01LjUu
Nz5BbmQgYmVhdCB0aGVtIGJhY2t3YXJkIGhvbWUuPC9BPjxicj4KKzxwPjxpPkEgY3J5IG9mIHdv
bWVuIHdpdGhpbjwvaT48L3A+Cis8QSBOQU1FPTUuNS44PldoYXQgaXMgdGhhdCBub2lzZT88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDI+PGI+U0VZVE9OPC9iPjwvYT4K
KzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjUuOT5JdCBpcyB0aGUgY3J5IG9mIHdvbWVuLCBteSBn
b29kIGxvcmQuPC9BPjxicj4KKzxwPjxpPkV4aXQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8
QSBOQU1FPXNwZWVjaDM+PGI+TUFDQkVUSDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9
NS41LjEwPkkgaGF2ZSBhbG1vc3QgZm9yZ290IHRoZSB0YXN0ZSBvZiBmZWFyczs8L0E+PGJyPgor
PEEgTkFNRT01LjUuMTE+VGhlIHRpbWUgaGFzIGJlZW4sIG15IHNlbnNlcyB3b3VsZCBoYXZlIGNv
b2wnZDwvQT48YnI+Cis8QSBOQU1FPTUuNS4xMj5UbyBoZWFyIGEgbmlnaHQtc2hyaWVrOyBhbmQg
bXkgZmVsbCBvZiBoYWlyPC9BPjxicj4KKzxBIE5BTUU9NS41LjEzPldvdWxkIGF0IGEgZGlzbWFs
IHRyZWF0aXNlIHJvdXNlIGFuZCBzdGlyPC9BPjxicj4KKzxBIE5BTUU9NS41LjE0PkFzIGxpZmUg
d2VyZSBpbid0OiBJIGhhdmUgc3VwcCdkIGZ1bGwgd2l0aCBob3Jyb3JzOzwvQT48YnI+Cis8QSBO
QU1FPTUuNS4xNT5EaXJlbmVzcywgZmFtaWxpYXIgdG8gbXkgc2xhdWdodGVyb3VzIHRob3VnaHRz
PC9BPjxicj4KKzxBIE5BTUU9NS41LjE2PkNhbm5vdCBvbmNlIHN0YXJ0IG1lLjwvQT48YnI+Cis8
cD48aT5SZS1lbnRlciBTRVlUT048L2k+PC9wPgorPEEgTkFNRT01LjUuMTc+V2hlcmVmb3JlIHdh
cyB0aGF0IGNyeT88L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDQ+PGI+
U0VZVE9OPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjUuMTg+VGhlIHF1ZWVuLCBt
eSBsb3JkLCBpcyBkZWFkLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
NT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjUuMTk+U2hlIHNo
b3VsZCBoYXZlIGRpZWQgaGVyZWFmdGVyOzwvQT48YnI+Cis8QSBOQU1FPTUuNS4yMD5UaGVyZSB3
b3VsZCBoYXZlIGJlZW4gYSB0aW1lIGZvciBzdWNoIGEgd29yZC48L0E+PGJyPgorPEEgTkFNRT01
LjUuMjE+VG8tbW9ycm93LCBhbmQgdG8tbW9ycm93LCBhbmQgdG8tbW9ycm93LDwvQT48YnI+Cis8
QSBOQU1FPTUuNS4yMj5DcmVlcHMgaW4gdGhpcyBwZXR0eSBwYWNlIGZyb20gZGF5IHRvIGRheTwv
QT48YnI+Cis8QSBOQU1FPTUuNS4yMz5UbyB0aGUgbGFzdCBzeWxsYWJsZSBvZiByZWNvcmRlZCB0
aW1lLDwvQT48YnI+Cis8QSBOQU1FPTUuNS4yND5BbmQgYWxsIG91ciB5ZXN0ZXJkYXlzIGhhdmUg
bGlnaHRlZCBmb29sczwvQT48YnI+Cis8QSBOQU1FPTUuNS4yNT5UaGUgd2F5IHRvIGR1c3R5IGRl
YXRoLiBPdXQsIG91dCwgYnJpZWYgY2FuZGxlITwvQT48YnI+Cis8QSBOQU1FPTUuNS4yNj5MaWZl
J3MgYnV0IGEgd2Fsa2luZyBzaGFkb3csIGEgcG9vciBwbGF5ZXI8L0E+PGJyPgorPEEgTkFNRT01
LjUuMjc+VGhhdCBzdHJ1dHMgYW5kIGZyZXRzIGhpcyBob3VyIHVwb24gdGhlIHN0YWdlPC9BPjxi
cj4KKzxBIE5BTUU9NS41LjI4PkFuZCB0aGVuIGlzIGhlYXJkIG5vIG1vcmU6IGl0IGlzIGEgdGFs
ZTwvQT48YnI+Cis8QSBOQU1FPTUuNS4yOT5Ub2xkIGJ5IGFuIGlkaW90LCBmdWxsIG9mIHNvdW5k
IGFuZCBmdXJ5LDwvQT48YnI+Cis8QSBOQU1FPTUuNS4zMD5TaWduaWZ5aW5nIG5vdGhpbmcuPC9B
Pjxicj4KKzxwPjxpPkVudGVyIGEgTWVzc2VuZ2VyPC9pPjwvcD4KKzxBIE5BTUU9NS41LjMxPlRo
b3UgY29tZXN0IHRvIHVzZSB0aHkgdG9uZ3VlOyB0aHkgc3RvcnkgcXVpY2tseS48L0E+PGJyPgor
PC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDY+PGI+TWVzc2VuZ2VyPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT01LjUuMzI+R3JhY2lvdXMgbXkgbG9yZCw8L0E+PGJyPgorPEEg
TkFNRT01LjUuMzM+SSBzaG91bGQgcmVwb3J0IHRoYXQgd2hpY2ggSSBzYXkgSSBzYXcsPC9BPjxi
cj4KKzxBIE5BTUU9NS41LjM0PkJ1dCBrbm93IG5vdCBob3cgdG8gZG8gaXQuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g3PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTUuNS4zNT5XZWxsLCBzYXksIHNpci48L0E+PGJyPgorPC9ibG9ja3F1
b3RlPgorCis8QSBOQU1FPXNwZWVjaDg+PGI+TWVzc2VuZ2VyPC9iPjwvYT4KKzxibG9ja3F1b3Rl
PgorPEEgTkFNRT01LjUuMzY+QXMgSSBkaWQgc3RhbmQgbXkgd2F0Y2ggdXBvbiB0aGUgaGlsbCw8
L0E+PGJyPgorPEEgTkFNRT01LjUuMzc+SSBsb29rJ2QgdG93YXJkIEJpcm5hbSwgYW5kIGFub24s
IG1ldGhvdWdodCw8L0E+PGJyPgorPEEgTkFNRT01LjUuMzg+VGhlIHdvb2QgYmVnYW4gdG8gbW92
ZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDk+PGI+TUFDQkVUSDwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS41LjM5PkxpYXIgYW5kIHNsYXZlITwvQT48
YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+TWVzc2VuZ2VyPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjUuNDA+TGV0IG1lIGVuZHVyZSB5b3VyIHdyYXRo
LCBpZid0IGJlIG5vdCBzbzo8L0E+PGJyPgorPEEgTkFNRT01LjUuNDE+V2l0aGluIHRoaXMgdGhy
ZWUgbWlsZSBtYXkgeW91IHNlZSBpdCBjb21pbmc7PC9BPjxicj4KKzxBIE5BTUU9NS41LjQyPkkg
c2F5LCBhIG1vdmluZyBncm92ZS48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDExPjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNS40Mz5J
ZiB0aG91IHNwZWFrJ3N0IGZhbHNlLDwvQT48YnI+Cis8QSBOQU1FPTUuNS40ND5VcG9uIHRoZSBu
ZXh0IHRyZWUgc2hhbHQgdGhvdSBoYW5nIGFsaXZlLDwvQT48YnI+Cis8QSBOQU1FPTUuNS40NT5U
aWxsIGZhbWluZSBjbGluZyB0aGVlOiBpZiB0aHkgc3BlZWNoIGJlIHNvb3RoLDwvQT48YnI+Cis8
QSBOQU1FPTUuNS40Nj5JIGNhcmUgbm90IGlmIHRob3UgZG9zdCBmb3IgbWUgYXMgbXVjaC48L0E+
PGJyPgorPEEgTkFNRT01LjUuNDc+SSBwdWxsIGluIHJlc29sdXRpb24sIGFuZCBiZWdpbjwvQT48
YnI+Cis8QSBOQU1FPTUuNS40OD5UbyBkb3VidCB0aGUgZXF1aXZvY2F0aW9uIG9mIHRoZSBmaWVu
ZDwvQT48YnI+Cis8QSBOQU1FPTUuNS40OT5UaGF0IGxpZXMgbGlrZSB0cnV0aDogJ0ZlYXIgbm90
LCB0aWxsIEJpcm5hbSB3b29kPC9BPjxicj4KKzxBIE5BTUU9NS41LjUwPkRvIGNvbWUgdG8gRHVu
c2luYW5lOicgIGFuZCBub3cgYSB3b29kPC9BPjxicj4KKzxBIE5BTUU9NS41LjUxPkNvbWVzIHRv
d2FyZCBEdW5zaW5hbmUuIEFybSwgYXJtLCBhbmQgb3V0ITwvQT48YnI+Cis8QSBOQU1FPTUuNS41
Mj5JZiB0aGlzIHdoaWNoIGhlIGF2b3VjaGVzIGRvZXMgYXBwZWFyLDwvQT48YnI+Cis8QSBOQU1F
PTUuNS41Mz5UaGVyZSBpcyBub3IgZmx5aW5nIGhlbmNlIG5vciB0YXJyeWluZyBoZXJlLjwvQT48
YnI+Cis8QSBOQU1FPTUuNS41ND5JIGdpbiB0byBiZSBhd2Vhcnkgb2YgdGhlIHN1biw8L0E+PGJy
PgorPEEgTkFNRT01LjUuNTU+QW5kIHdpc2ggdGhlIGVzdGF0ZSBvJyB0aGUgd29ybGQgd2VyZSBu
b3cgdW5kb25lLjwvQT48YnI+Cis8QSBOQU1FPTUuNS41Nj5SaW5nIHRoZSBhbGFydW0tYmVsbCEg
Qmxvdywgd2luZCEgY29tZSwgd3JhY2shPC9BPjxicj4KKzxBIE5BTUU9NS41LjU3PkF0IGxlYXN0
IHdlJ2xsIGRpZSB3aXRoIGhhcm5lc3Mgb24gb3VyIGJhY2suPC9BPjxicj4KKzxwPjxpPkV4ZXVu
dDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U0NFTkUgVkkuIER1bnNpbmFuZS4gQmVmb3Jl
IHRoZSBjYXN0bGUuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+RHJ1bSBhbmQgY29sb3Vycy4g
RW50ZXIgTUFMQ09MTSwgU0lXQVJELCBNQUNEVUZGLCBhbmQgdGhlaXIgQXJteSwgd2l0aCBib3Vn
aHM8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48Yj5NQUxDT0xNPC9iPjwv
YT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjYuMT5Ob3cgbmVhciBlbm91Z2g6IHlvdXIgbGVh
Znkgc2NyZWVucyB0aHJvdyBkb3duLjwvQT48YnI+Cis8QSBOQU1FPTUuNi4yPkFuZCBzaG93IGxp
a2UgdGhvc2UgeW91IGFyZS4gWW91LCB3b3J0aHkgdW5jbGUsPC9BPjxicj4KKzxBIE5BTUU9NS42
LjM+U2hhbGwsIHdpdGggbXkgY291c2luLCB5b3VyIHJpZ2h0LW5vYmxlIHNvbiw8L0E+PGJyPgor
PEEgTkFNRT01LjYuND5MZWFkIG91ciBmaXJzdCBiYXR0bGU6IHdvcnRoeSBNYWNkdWZmIGFuZCB3
ZTwvQT48YnI+Cis8QSBOQU1FPTUuNi41PlNoYWxsIHRha2UgdXBvbiAncyB3aGF0IGVsc2UgcmVt
YWlucyB0byBkbyw8L0E+PGJyPgorPEEgTkFNRT01LjYuNj5BY2NvcmRpbmcgdG8gb3VyIG9yZGVy
LjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMj48Yj5TSVdBUkQ8L2I+
PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNi43PkZhcmUgeW91IHdlbGwuPC9BPjxicj4K
KzxBIE5BTUU9NS42Ljg+RG8gd2UgYnV0IGZpbmQgdGhlIHR5cmFudCdzIHBvd2VyIHRvLW5pZ2h0
LDwvQT48YnI+Cis8QSBOQU1FPTUuNi45PkxldCB1cyBiZSBiZWF0ZW4sIGlmIHdlIGNhbm5vdCBm
aWdodC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDM+PGI+TUFDRFVG
RjwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS42LjEwPk1ha2UgYWxsIG91ciB0cnVt
cGV0cyBzcGVhazsgZ2l2ZSB0aGVtIGFsbCBicmVhdGgsPC9BPjxicj4KKzxBIE5BTUU9NS42LjEx
PlRob3NlIGNsYW1vcm91cyBoYXJiaW5nZXJzIG9mIGJsb29kIGFuZCBkZWF0aC48L0E+PGJyPgor
PHA+PGk+RXhldW50PC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VORSBWSUkuIEFub3Ro
ZXIgcGFydCBvZiB0aGUgZmllbGQuPC9oMz4KKzxwPjxibG9ja3F1b3RlPgorPGk+QWxhcnVtcy4g
RW50ZXIgTUFDQkVUSDwvaT4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxPjxiPk1B
Q0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNy4xPlRoZXkgaGF2ZSB0aWVk
IG1lIHRvIGEgc3Rha2U7IEkgY2Fubm90IGZseSw8L0E+PGJyPgorPEEgTkFNRT01LjcuMj5CdXQs
IGJlYXItbGlrZSwgSSBtdXN0IGZpZ2h0IHRoZSBjb3Vyc2UuIFdoYXQncyBoZTwvQT48YnI+Cis8
QSBOQU1FPTUuNy4zPlRoYXQgd2FzIG5vdCBib3JuIG9mIHdvbWFuPyBTdWNoIGEgb25lPC9BPjxi
cj4KKzxBIE5BTUU9NS43LjQ+QW0gSSB0byBmZWFyLCBvciBub25lLjwvQT48YnI+Cis8cD48aT5F
bnRlciBZT1VORyBTSVdBUkQ8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDI+PGI+WU9VTkcgU0lXQVJEPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjcuNT5X
aGF0IGlzIHRoeSBuYW1lPzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
Mz48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjcuNj4gICAgICAg
ICAgICAgICAgICBUaG91J2x0IGJlIGFmcmFpZCB0byBoZWFyIGl0LjwvQT48YnI+Cis8L2Jsb2Nr
cXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoND48Yj5ZT1VORyBTSVdBUkQ8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTUuNy43Pk5vOyB0aG91Z2ggdGhvdSBjYWxsJ3N0IHRoeXNlbGYgYSBo
b3R0ZXIgbmFtZTwvQT48YnI+Cis8QSBOQU1FPTUuNy44PlRoYW4gYW55IGlzIGluIGhlbGwuPC9B
Pjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g1PjxiPk1BQ0JFVEg8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNy45Pk15IG5hbWUncyBNYWNiZXRoLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNj48Yj5ZT1VORyBTSVdBUkQ8L2I+PC9h
PgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNy4xMD5UaGUgZGV2aWwgaGltc2VsZiBjb3VsZCBu
b3QgcHJvbm91bmNlIGEgdGl0bGU8L0E+PGJyPgorPEEgTkFNRT01LjcuMTE+TW9yZSBoYXRlZnVs
IHRvIG1pbmUgZWFyLjwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoNz48
Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjcuMTI+Tm8sIG5vciBt
b3JlIGZlYXJmdWwuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4Pjxi
PllPVU5HIFNJV0FSRDwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS43LjEzPlRob3Ug
bGllc3QsIGFiaG9ycmVkIHR5cmFudDsgd2l0aCBteSBzd29yZDwvQT48YnI+Cis8QSBOQU1FPTUu
Ny4xND5JJ2xsIHByb3ZlIHRoZSBsaWUgdGhvdSBzcGVhaydzdC48L0E+PGJyPgorPHA+PGk+VGhl
eSBmaWdodCBhbmQgWU9VTkcgU0lXQVJEIGlzIHNsYWluPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2g5PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTUuNy4xNT5UaG91IHdhc3QgYm9ybiBvZiB3b21hbjwvQT48YnI+Cis8QSBOQU1FPTUuNy4x
Nj5CdXQgc3dvcmRzIEkgc21pbGUgYXQsIHdlYXBvbnMgbGF1Z2ggdG8gc2Nvcm4sPC9BPjxicj4K
KzxBIE5BTUU9NS43LjE3PkJyYW5kaXNoJ2QgYnkgbWFuIHRoYXQncyBvZiBhIHdvbWFuIGJvcm4u
PC9BPjxicj4KKzxwPjxpPkV4aXQ8L2k+PC9wPgorPHA+PGk+QWxhcnVtcy4gRW50ZXIgTUFDRFVG
RjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTA+PGI+TUFDRFVGRjwv
Yj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS43LjE4PlRoYXQgd2F5IHRoZSBub2lzZSBp
cy4gVHlyYW50LCBzaG93IHRoeSBmYWNlITwvQT48YnI+Cis8QSBOQU1FPTUuNy4xOT5JZiB0aG91
IGJlJ3N0IHNsYWluIGFuZCB3aXRoIG5vIHN0cm9rZSBvZiBtaW5lLDwvQT48YnI+Cis8QSBOQU1F
PTUuNy4yMD5NeSB3aWZlIGFuZCBjaGlsZHJlbidzIGdob3N0cyB3aWxsIGhhdW50IG1lIHN0aWxs
LjwvQT48YnI+Cis8QSBOQU1FPTUuNy4yMT5JIGNhbm5vdCBzdHJpa2UgYXQgd3JldGNoZWQga2Vy
bnMsIHdob3NlIGFybXM8L0E+PGJyPgorPEEgTkFNRT01LjcuMjI+QXJlIGhpcmVkIHRvIGJlYXIg
dGhlaXIgc3RhdmVzOiBlaXRoZXIgdGhvdSwgTWFjYmV0aCw8L0E+PGJyPgorPEEgTkFNRT01Ljcu
MjM+T3IgZWxzZSBteSBzd29yZCB3aXRoIGFuIHVuYmF0dGVyJ2QgZWRnZTwvQT48YnI+Cis8QSBO
QU1FPTUuNy4yND5JIHNoZWF0aGUgYWdhaW4gdW5kZWVkZWQuIFRoZXJlIHRob3Ugc2hvdWxkc3Qg
YmU7PC9BPjxicj4KKzxBIE5BTUU9NS43LjI1PkJ5IHRoaXMgZ3JlYXQgY2xhdHRlciwgb25lIG9m
IGdyZWF0ZXN0IG5vdGU8L0E+PGJyPgorPEEgTkFNRT01LjcuMjY+U2VlbXMgYnJ1aXRlZC4gTGV0
IG1lIGZpbmQgaGltLCBmb3J0dW5lITwvQT48YnI+Cis8QSBOQU1FPTUuNy4yNz5BbmQgbW9yZSBJ
IGJlZyBub3QuPC9BPjxicj4KKzxwPjxpPkV4aXQuIEFsYXJ1bXM8L2k+PC9wPgorPHA+PGk+RW50
ZXIgTUFMQ09MTSBhbmQgU0lXQVJEPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gxMT48Yj5TSVdBUkQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNy4yOD5U
aGlzIHdheSwgbXkgbG9yZDsgdGhlIGNhc3RsZSdzIGdlbnRseSByZW5kZXInZDo8L0E+PGJyPgor
PEEgTkFNRT01LjcuMjk+VGhlIHR5cmFudCdzIHBlb3BsZSBvbiBib3RoIHNpZGVzIGRvIGZpZ2h0
OzwvQT48YnI+Cis8QSBOQU1FPTUuNy4zMD5UaGUgbm9ibGUgdGhhbmVzIGRvIGJyYXZlbHkgaW4g
dGhlIHdhcjs8L0E+PGJyPgorPEEgTkFNRT01LjcuMzE+VGhlIGRheSBhbG1vc3QgaXRzZWxmIHBy
b2Zlc3NlcyB5b3Vycyw8L0E+PGJyPgorPEEgTkFNRT01LjcuMzI+QW5kIGxpdHRsZSBpcyB0byBk
by48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDEyPjxiPk1BTENPTE08
L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuNy4zMz5XZSBoYXZlIG1ldCB3aXRoIGZv
ZXM8L0E+PGJyPgorPEEgTkFNRT01LjcuMzQ+VGhhdCBzdHJpa2UgYmVzaWRlIHVzLjwvQT48YnI+
Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTM+PGI+U0lXQVJEPC9iPjwvYT4KKzxi
bG9ja3F1b3RlPgorPEEgTkFNRT01LjcuMzU+RW50ZXIsIHNpciwgdGhlIGNhc3RsZS48L0E+PGJy
PgorPHA+PGk+RXhldW50LiBBbGFydW1zPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TQ0VO
RSBWSUlJLiBBbm90aGVyIHBhcnQgb2YgdGhlIGZpZWxkLjwvaDM+Cis8cD48YmxvY2txdW90ZT4K
KzxpPkVudGVyIE1BQ0JFVEg8L2k+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMT48
Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguMT5XaHkgc2hvdWxk
IEkgcGxheSB0aGUgUm9tYW4gZm9vbCwgYW5kIGRpZTwvQT48YnI+Cis8QSBOQU1FPTUuOC4yPk9u
IG1pbmUgb3duIHN3b3JkPyB3aGlsZXMgSSBzZWUgbGl2ZXMsIHRoZSBnYXNoZXM8L0E+PGJyPgor
PEEgTkFNRT01LjguMz5EbyBiZXR0ZXIgdXBvbiB0aGVtLjwvQT48YnI+Cis8cD48aT5FbnRlciBN
QUNEVUZGPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyPjxiPk1BQ0RV
RkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC40PlR1cm4sIGhlbGwtaG91bmQs
IHR1cm4hPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gzPjxiPk1BQ0JF
VEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC41Pk9mIGFsbCBtZW4gZWxzZSBJ
IGhhdmUgYXZvaWRlZCB0aGVlOjwvQT48YnI+Cis8QSBOQU1FPTUuOC42PkJ1dCBnZXQgdGhlZSBi
YWNrOyBteSBzb3VsIGlzIHRvbyBtdWNoIGNoYXJnZWQ8L0E+PGJyPgorPEEgTkFNRT01LjguNz5X
aXRoIGJsb29kIG9mIHRoaW5lIGFscmVhZHkuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEg
TkFNRT1zcGVlY2g0PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUu
OC44PkkgaGF2ZSBubyB3b3Jkczo8L0E+PGJyPgorPEEgTkFNRT01LjguOT5NeSB2b2ljZSBpcyBp
biBteSBzd29yZDogdGhvdSBibG9vZGllciB2aWxsYWluPC9BPjxicj4KKzxBIE5BTUU9NS44LjEw
PlRoYW4gdGVybXMgY2FuIGdpdmUgdGhlZSBvdXQhPC9BPjxicj4KKzxwPjxpPlRoZXkgZmlnaHQ8
L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDU+PGI+TUFDQkVUSDwvYj48
L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS44LjExPlRob3UgbG9zZXN0IGxhYm91cjo8L0E+
PGJyPgorPEEgTkFNRT01LjguMTI+QXMgZWFzeSBtYXlzdCB0aG91IHRoZSBpbnRyZW5jaGFudCBh
aXI8L0E+PGJyPgorPEEgTkFNRT01LjguMTM+V2l0aCB0aHkga2VlbiBzd29yZCBpbXByZXNzIGFz
IG1ha2UgbWUgYmxlZWQ6PC9BPjxicj4KKzxBIE5BTUU9NS44LjE0PkxldCBmYWxsIHRoeSBibGFk
ZSBvbiB2dWxuZXJhYmxlIGNyZXN0czs8L0E+PGJyPgorPEEgTkFNRT01LjguMTU+SSBiZWFyIGEg
Y2hhcm1lZCBsaWZlLCB3aGljaCBtdXN0IG5vdCB5aWVsZCw8L0E+PGJyPgorPEEgTkFNRT01Ljgu
MTY+VG8gb25lIG9mIHdvbWFuIGJvcm4uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFN
RT1zcGVlY2g2PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC4x
Nz5EZXNwYWlyIHRoeSBjaGFybTs8L0E+PGJyPgorPEEgTkFNRT01LjguMTg+QW5kIGxldCB0aGUg
YW5nZWwgd2hvbSB0aG91IHN0aWxsIGhhc3Qgc2VydmVkPC9BPjxicj4KKzxBIE5BTUU9NS44LjE5
PlRlbGwgdGhlZSwgTWFjZHVmZiB3YXMgZnJvbSBoaXMgbW90aGVyJ3Mgd29tYjwvQT48YnI+Cis8
QSBOQU1FPTUuOC4yMD5VbnRpbWVseSByaXBwJ2QuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKwor
PEEgTkFNRT1zcGVlY2g3PjxiPk1BQ0JFVEg8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1F
PTUuOC4yMT5BY2N1cnNlZCBiZSB0aGF0IHRvbmd1ZSB0aGF0IHRlbGxzIG1lIHNvLDwvQT48YnI+
Cis8QSBOQU1FPTUuOC4yMj5Gb3IgaXQgaGF0aCBjb3cnZCBteSBiZXR0ZXIgcGFydCBvZiBtYW4h
PC9BPjxicj4KKzxBIE5BTUU9NS44LjIzPkFuZCBiZSB0aGVzZSBqdWdnbGluZyBmaWVuZHMgbm8g
bW9yZSBiZWxpZXZlZCw8L0E+PGJyPgorPEEgTkFNRT01LjguMjQ+VGhhdCBwYWx0ZXIgd2l0aCB1
cyBpbiBhIGRvdWJsZSBzZW5zZTs8L0E+PGJyPgorPEEgTkFNRT01LjguMjU+VGhhdCBrZWVwIHRo
ZSB3b3JkIG9mIHByb21pc2UgdG8gb3VyIGVhciw8L0E+PGJyPgorPEEgTkFNRT01LjguMjY+QW5k
IGJyZWFrIGl0IHRvIG91ciBob3BlLiBJJ2xsIG5vdCBmaWdodCB3aXRoIHRoZWUuPC9BPjxicj4K
KzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2g4PjxiPk1BQ0RVRkY8L2I+PC9hPgorPGJs
b2NrcXVvdGU+Cis8QSBOQU1FPTUuOC4yNz5UaGVuIHlpZWxkIHRoZWUsIGNvd2FyZCw8L0E+PGJy
PgorPEEgTkFNRT01LjguMjg+QW5kIGxpdmUgdG8gYmUgdGhlIHNob3cgYW5kIGdhemUgbycgdGhl
IHRpbWU6PC9BPjxicj4KKzxBIE5BTUU9NS44LjI5PldlJ2xsIGhhdmUgdGhlZSwgYXMgb3VyIHJh
cmVyIG1vbnN0ZXJzIGFyZSw8L0E+PGJyPgorPEEgTkFNRT01LjguMzA+UGFpbnRlZCBvbiBhIHBv
bGUsIGFuZCB1bmRlcndyaXQsPC9BPjxicj4KKzxBIE5BTUU9NS44LjMxPidIZXJlIG1heSB5b3Ug
c2VlIHRoZSB0eXJhbnQuJzwvQT48YnI+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNo
OT48Yj5NQUNCRVRIPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguMzI+SSB3aWxs
IG5vdCB5aWVsZCw8L0E+PGJyPgorPEEgTkFNRT01LjguMzM+VG8ga2lzcyB0aGUgZ3JvdW5kIGJl
Zm9yZSB5b3VuZyBNYWxjb2xtJ3MgZmVldCw8L0E+PGJyPgorPEEgTkFNRT01LjguMzQ+QW5kIHRv
IGJlIGJhaXRlZCB3aXRoIHRoZSByYWJibGUncyBjdXJzZS48L0E+PGJyPgorPEEgTkFNRT01Ljgu
MzU+VGhvdWdoIEJpcm5hbSB3b29kIGJlIGNvbWUgdG8gRHVuc2luYW5lLDwvQT48YnI+Cis8QSBO
QU1FPTUuOC4zNj5BbmQgdGhvdSBvcHBvc2VkLCBiZWluZyBvZiBubyB3b21hbiBib3JuLDwvQT48
YnI+Cis8QSBOQU1FPTUuOC4zNz5ZZXQgSSB3aWxsIHRyeSB0aGUgbGFzdC4gQmVmb3JlIG15IGJv
ZHk8L0E+PGJyPgorPEEgTkFNRT01LjguMzg+SSB0aHJvdyBteSB3YXJsaWtlIHNoaWVsZC4gTGF5
IG9uLCBNYWNkdWZmLDwvQT48YnI+Cis8QSBOQU1FPTUuOC4zOT5BbmQgZGFtbidkIGJlIGhpbSB0
aGF0IGZpcnN0IGNyaWVzLCAnSG9sZCwgZW5vdWdoISc8L0E+PGJyPgorPHA+PGk+RXhldW50LCBm
aWdodGluZy4gQWxhcnVtczwvaT48L3A+Cis8cD48aT5SZXRyZWF0LiBGbG91cmlzaC4gRW50ZXIs
IHdpdGggZHJ1bSBhbmQgY29sb3VycywgTUFMQ09MTSwgU0lXQVJELCBST1NTLCB0aGUgb3RoZXIg
VGhhbmVzLCBhbmQgU29sZGllcnM8L2k+PC9wPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNw
ZWVjaDEwPjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC40MD5J
IHdvdWxkIHRoZSBmcmllbmRzIHdlIG1pc3Mgd2VyZSBzYWZlIGFycml2ZWQuPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxMT48Yj5TSVdBUkQ8L2I+PC9hPgorPGJsb2Nr
cXVvdGU+Cis8QSBOQU1FPTUuOC40MT5Tb21lIG11c3QgZ28gb2ZmOiBhbmQgeWV0LCBieSB0aGVz
ZSBJIHNlZSw8L0E+PGJyPgorPEEgTkFNRT01LjguNDI+U28gZ3JlYXQgYSBkYXkgYXMgdGhpcyBp
cyBjaGVhcGx5IGJvdWdodC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVj
aDEyPjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC40Mz5NYWNk
dWZmIGlzIG1pc3NpbmcsIGFuZCB5b3VyIG5vYmxlIHNvbi48L0E+PGJyPgorPC9ibG9ja3F1b3Rl
PgorCis8QSBOQU1FPXNwZWVjaDEzPjxiPlJPU1M8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTUuOC40ND5Zb3VyIHNvbiwgbXkgbG9yZCwgaGFzIHBhaWQgYSBzb2xkaWVyJ3MgZGVidDo8
L0E+PGJyPgorPEEgTkFNRT01LjguNDU+SGUgb25seSBsaXZlZCBidXQgdGlsbCBoZSB3YXMgYSBt
YW47PC9BPjxicj4KKzxBIE5BTUU9NS44LjQ2PlRoZSB3aGljaCBubyBzb29uZXIgaGFkIGhpcyBw
cm93ZXNzIGNvbmZpcm0nZDwvQT48YnI+Cis8QSBOQU1FPTUuOC40Nz5JbiB0aGUgdW5zaHJpbmtp
bmcgc3RhdGlvbiB3aGVyZSBoZSBmb3VnaHQsPC9BPjxicj4KKzxBIE5BTUU9NS44LjQ4PkJ1dCBs
aWtlIGEgbWFuIGhlIGRpZWQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVl
Y2gxND48Yj5TSVdBUkQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC40OT5UaGVu
IGhlIGlzIGRlYWQ/PC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gxNT48
Yj5ST1NTPC9iPjwvYT4KKzxibG9ja3F1b3RlPgorPEEgTkFNRT01LjguNTA+QXksIGFuZCBicm91
Z2h0IG9mZiB0aGUgZmllbGQ6IHlvdXIgY2F1c2Ugb2Ygc29ycm93PC9BPjxicj4KKzxBIE5BTUU9
NS44LjUxPk11c3Qgbm90IGJlIG1lYXN1cmVkIGJ5IGhpcyB3b3J0aCwgZm9yIHRoZW48L0E+PGJy
PgorPEEgTkFNRT01LjguNTI+SXQgaGF0aCBubyBlbmQuPC9BPjxicj4KKzwvYmxvY2txdW90ZT4K
KworPEEgTkFNRT1zcGVlY2gxNj48Yj5TSVdBUkQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBO
QU1FPTUuOC41Mz4gICAgICAgICAgICAgICAgICBIYWQgaGUgaGlzIGh1cnRzIGJlZm9yZT88L0E+
PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1FPXNwZWVjaDE3PjxiPlJPU1M8L2I+PC9hPgor
PGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC41ND5BeSwgb24gdGhlIGZyb250LjwvQT48YnI+Cis8
L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMTg+PGI+U0lXQVJEPC9iPjwvYT4KKzxibG9j
a3F1b3RlPgorPEEgTkFNRT01LjguNTU+ICAgICAgICAgICAgICAgICAgV2h5IHRoZW4sIEdvZCdz
IHNvbGRpZXIgYmUgaGUhPC9BPjxicj4KKzxBIE5BTUU9NS44LjU2PkhhZCBJIGFzIG1hbnkgc29u
cyBhcyBJIGhhdmUgaGFpcnMsPC9BPjxicj4KKzxBIE5BTUU9NS44LjU3Pkkgd291bGQgbm90IHdp
c2ggdGhlbSB0byBhIGZhaXJlciBkZWF0aDo8L0E+PGJyPgorPEEgTkFNRT01LjguNTg+QW5kIHNv
LCBoaXMga25lbGwgaXMga25vbGwnZC48L0E+PGJyPgorPC9ibG9ja3F1b3RlPgorCis8QSBOQU1F
PXNwZWVjaDE5PjxiPk1BTENPTE08L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC41
OT5IZSdzIHdvcnRoIG1vcmUgc29ycm93LDwvQT48YnI+Cis8QSBOQU1FPTUuOC42MD5BbmQgdGhh
dCBJJ2xsIHNwZW5kIGZvciBoaW0uPC9BPjxicj4KKzwvYmxvY2txdW90ZT4KKworPEEgTkFNRT1z
cGVlY2gyMD48Yj5TSVdBUkQ8L2I+PC9hPgorPGJsb2NrcXVvdGU+Cis8QSBOQU1FPTUuOC42MT5I
ZSdzIHdvcnRoIG5vIG1vcmU8L0E+PGJyPgorPEEgTkFNRT01LjguNjI+VGhleSBzYXkgaGUgcGFy
dGVkIHdlbGwsIGFuZCBwYWlkIGhpcyBzY29yZTo8L0E+PGJyPgorPEEgTkFNRT01LjguNjM+QW5k
IHNvLCBHb2QgYmUgd2l0aCBoaW0hIEhlcmUgY29tZXMgbmV3ZXIgY29tZm9ydC48L0E+PGJyPgor
PHA+PGk+UmUtZW50ZXIgTUFDRFVGRiwgd2l0aCBNQUNCRVRIJ3MgaGVhZDwvaT48L3A+Cis8L2Js
b2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjE+PGI+TUFDRFVGRjwvYj48L2E+Cis8YmxvY2tx
dW90ZT4KKzxBIE5BTUU9NS44LjY0PkhhaWwsIGtpbmchIGZvciBzbyB0aG91IGFydDogYmVob2xk
LCB3aGVyZSBzdGFuZHM8L0E+PGJyPgorPEEgTkFNRT01LjguNjU+VGhlIHVzdXJwZXIncyBjdXJz
ZWQgaGVhZDogdGhlIHRpbWUgaXMgZnJlZTo8L0E+PGJyPgorPEEgTkFNRT01LjguNjY+SSBzZWUg
dGhlZSBjb21wYXNzJ2Qgd2l0aCB0aHkga2luZ2RvbSdzIHBlYXJsLDwvQT48YnI+Cis8QSBOQU1F
PTUuOC42Nz5UaGF0IHNwZWFrIG15IHNhbHV0YXRpb24gaW4gdGhlaXIgbWluZHM7PC9BPjxicj4K
KzxBIE5BTUU9NS44LjY4Pldob3NlIHZvaWNlcyBJIGRlc2lyZSBhbG91ZCB3aXRoIG1pbmU6PC9B
Pjxicj4KKzxBIE5BTUU9NS44LjY5PkhhaWwsIEtpbmcgb2YgU2NvdGxhbmQhPC9BPjxicj4KKzwv
YmxvY2txdW90ZT4KKworPEEgTkFNRT1zcGVlY2gyMj48Yj5BTEw8L2I+PC9hPgorPGJsb2NrcXVv
dGU+Cis8QSBOQU1FPTUuOC43MD5IYWlsLCBLaW5nIG9mIFNjb3RsYW5kITwvQT48YnI+Cis8cD48
aT5GbG91cmlzaDwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+CisKKzxBIE5BTUU9c3BlZWNoMjM+PGI+
TUFMQ09MTTwvYj48L2E+Cis8YmxvY2txdW90ZT4KKzxBIE5BTUU9NS44LjcxPldlIHNoYWxsIG5v
dCBzcGVuZCBhIGxhcmdlIGV4cGVuc2Ugb2YgdGltZTwvQT48YnI+Cis8QSBOQU1FPTUuOC43Mj5C
ZWZvcmUgd2UgcmVja29uIHdpdGggeW91ciBzZXZlcmFsIGxvdmVzLDwvQT48YnI+Cis8QSBOQU1F
PTUuOC43Mz5BbmQgbWFrZSB1cyBldmVuIHdpdGggeW91LiBNeSB0aGFuZXMgYW5kIGtpbnNtZW4s
PC9BPjxicj4KKzxBIE5BTUU9NS44Ljc0PkhlbmNlZm9ydGggYmUgZWFybHMsIHRoZSBmaXJzdCB0
aGF0IGV2ZXIgU2NvdGxhbmQ8L0E+PGJyPgorPEEgTkFNRT01LjguNzU+SW4gc3VjaCBhbiBob25v
dXIgbmFtZWQuIFdoYXQncyBtb3JlIHRvIGRvLDwvQT48YnI+Cis8QSBOQU1FPTUuOC43Nj5XaGlj
aCB3b3VsZCBiZSBwbGFudGVkIG5ld2x5IHdpdGggdGhlIHRpbWUsPC9BPjxicj4KKzxBIE5BTUU9
NS44Ljc3PkFzIGNhbGxpbmcgaG9tZSBvdXIgZXhpbGVkIGZyaWVuZHMgYWJyb2FkPC9BPjxicj4K
KzxBIE5BTUU9NS44Ljc4PlRoYXQgZmxlZCB0aGUgc25hcmVzIG9mIHdhdGNoZnVsIHR5cmFubnk7
PC9BPjxicj4KKzxBIE5BTUU9NS44Ljc5PlByb2R1Y2luZyBmb3J0aCB0aGUgY3J1ZWwgbWluaXN0
ZXJzPC9BPjxicj4KKzxBIE5BTUU9NS44LjgwPk9mIHRoaXMgZGVhZCBidXRjaGVyIGFuZCBoaXMg
ZmllbmQtbGlrZSBxdWVlbiw8L0E+PGJyPgorPEEgTkFNRT01LjguODE+V2hvLCBhcyAndGlzIHRo
b3VnaHQsIGJ5IHNlbGYgYW5kIHZpb2xlbnQgaGFuZHM8L0E+PGJyPgorPEEgTkFNRT01LjguODI+
VG9vayBvZmYgaGVyIGxpZmU7IHRoaXMsIGFuZCB3aGF0IG5lZWRmdWwgZWxzZTwvQT48YnI+Cis8
QSBOQU1FPTUuOC44Mz5UaGF0IGNhbGxzIHVwb24gdXMsIGJ5IHRoZSBncmFjZSBvZiBHcmFjZSw8
L0E+PGJyPgorPEEgTkFNRT01LjguODQ+V2Ugd2lsbCBwZXJmb3JtIGluIG1lYXN1cmUsIHRpbWUg
YW5kIHBsYWNlOjwvQT48YnI+Cis8QSBOQU1FPTUuOC44NT5TbywgdGhhbmtzIHRvIGFsbCBhdCBv
bmNlIGFuZCB0byBlYWNoIG9uZSw8L0E+PGJyPgorPEEgTkFNRT01LjguODY+V2hvbSB3ZSBpbnZp
dGUgdG8gc2VlIHVzIGNyb3duJ2QgYXQgU2NvbmUuPC9BPjxicj4KKzxwPjxpPkZsb3VyaXNoLiBF
eGV1bnQ8L2k+PC9wPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tYXAucG5nIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWFwLnBuZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NjNmNTYyNzk5NWY2ZjE3OGU4ZWE3OGUzN2YzMmM4MGIzNWY1ZTJiCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCAyNjIwOQp6Y21XKCtXbUg/OzUpSHZwRy0lTmhUI0NDQzIkYlJ1I29iIW1yTU1G
KT8oU09MaWFXKXZ4ST5Ycit9JlFqSCFKb2gKemNpblQmVHtDPDMtVj81QEQyMGhlZig4SHBGbEQ0
QVF+Pn00OH5BVHU1REArdWxoezUyfDlheWZ0P2RpfHV1fWlgCnpNKGAqU2JwcnFfQE1JKiEpSUZB
dUpLUXNBSENeZF9DcHRiflVtUHc3Z3pkfFc1WChUb00lX3E9SEBLMEc2RX1oWgp6d252UyhPK1V9
OFd8an1UdDc+WjwwZylWWilLTEg2VT5hcXBmU2ZjfWZzRjc+aSglQ2R1VHoxJitkLWMtRXxNWXsK
elZPYnhNZkBFJjQ9VF5KOSUyVk88JDRAdWBtQDc0eUxRNUwlUVBzPV9KbDE8TXNsaSZvQTtlSUNt
UER9alZxS0pnCnpqT35eeFMzUCReIU1gVDlyKlN6e0hnRGZiP25SRzkoeDFsazNwJXFlMUppdDY/
TjhVQStJb0EtXygkaktzNFp+bQp6ej1YOSZDTW1PZWpaME42TmZMeVpHPFBkMD9lK2sjOEUodXpX
eVZHWERrKkRWSCMxZVlsMCFIP2tjdUlzeHQ0P1AKej0teD1xViF3UDspNmFOK2w7XzkkSHt1fGlN
IyoxOXZBNzZFS25jUik7Q088eiNadHwwdFZ1cTlsUjhwZipVZXY5CnpyZDhVZnRQVShSSDVYN3xB
QnRHYEpUfENVPH1IaFEmfE04RylILU8jUWBKVWNBVjRuPWdlQ0BzTGh5XyF6eUQmcwp6TnA+K3pz
bHU7bURAQTRVRWFWI3NDUzl5RW8rTX4xYU5HT3hSXiliV3dfSW58T0BnWGFjYHdrTGt3Sj43TTQx
Ym4KejFFPEUrTzJ1b0tuWTtYUjhiPS1kK0I+X352PnBvR2JpKkkmT2k4a3p0ZS0hSyRFcVB3KXhV
Um5IRTZQKUtRP3F8Cnorc21YaTAjWDQ4MmRNJmsxMGdeRnMyZDFeMFR8SDR0ZFlQKSU2WnFEZmlT
ZTlNOWwoV3QzdGxpY1VWbV5wRlJxYwp6SXhkOUAzKFhoYj8wcGVeRWVwISZ7SWRISlFHUyZrITcm
a3NTUn5LOHJuYW1mKzNMZztReU08fXJwVSgxdmF3TSQKejwrKkgzdDcxZSt8RWQ3UyYoNiorQkM8
WCtsUTZsTFYrYVg2T3duMyVvTFh5SVM/P1UzVjI8WjdWWDQ3MDRTNTY4CnpsSi15Mik8VGoxMTJv
dT41ZGE3e1Z0TH1+QnVPWmhQfUVZeURZT1FaP3ZJKlAoMS1VQVNMYkplbH1vbSFEdzw7VQp6TUBO
YEs8YCM9JXpubmttPktXKXtYSnFKVllnO3p6JGkjemowUFJoTz9tO0dXcSZ0bWhYLWpucTNfT2pn
KmhGY3kKej9JdEI3OEx5ajk4e2B4ZTgkV0d6e3J2b2hMTVBqVjk0QGZXaVVjPSlfTmB2UClgWD96
QlY/QWVBYnM7X2M9ZmImCnpGKylnV3sjMFdPUjFnMyNrUXtgN3IwKU10VC1tYStLXjUoRFh+T199
RmhydEslPS0xIyplJmdiWlRobyZMaml6bwp6b2lNQTUpQHp2ZlVRZzIyPHtWU2s5LVpUODtkISlp
U0YqcjNHQ1pGbFZZdVNDJXN8NzJAc35PbW97LSNwNSFNMDUKej1qNU5EKGMpPmRHSWJKaV41ZXJw
RkE9SUM4SS1zVmJlRDBUe3FjPilhR1duUjNjcU1mKVNUdlBVQ2xFMi08JEJYCnpJdSk8IVRXVmY3
aWZ8aExxeHVFTiQ3ZT9qOz8mU2FCYXRheTk7c0AkN15tNVRRbGlMT1Z7a0s3MHR0Y3pGKnJiIQp6
azs8cXJLbWJzKExEODw2dD50Q0MoQSlmKXcjMjthbWJUfl5GRCl2bilBLU96d29FKmFvcypOM24+
KUNDez1QbVYKejV2QFY4NjdVOGY1ZW9xTUJSfk87NzVxQV5EUSZILSooRCZTWHtnIWwyWXB2MSZw
cC0qcVN+X2wrQ3ErdTs2KXUtCnopakcrPUR9MihBS0coSWBwMHBiaXA5JmtYYHEpOWhOKil1M0pE
O35XSTN7K3ViRDdSXyQ/NEA1SCo4NT9HKUpOfAp6MnRWaWNjSkZ1cGdRN0NRKWJZaUw3Pm1SIylq
XyFjPE9BRTYyaXdZT3BBeSZrOzxIQ1gxSyp7a1VyYDxLZHlVNnwKelVKMTQ2djJOcGBnKUB+bVU/
Q0VLQWF5X303PVI7JmZMdk09emR5MmZuST9+dClBVlR3ND5AaVojcWFzI05fVjVOCno0OUJgflpP
MlZsezswcDBSZmEpPEk/SU1NSj9FJHpHZmBJekVUTkoob1hDfFgmemRzMj4kR0haIV9LaDNEcSVy
Swp6d1dwVX1FRTcqNyEkfn4yU0tMVVd6c1FyWl9OfUo8KGctXlVEP2NgPEpBRW94NUpXcC1ncjdK
NmtCZTReYGE4SCEKeklIdTczMUhhJCQmSW9vIyl5MExnOUJHRGMtI25zSkhYNl9jWT13ZFUpc1hL
RDBMPEU8ME9xNDRqYXZrNWUkeWw3CnomeSh3VkxBYm5NaVJWWVE9MnkmSiU1Q19TU2UpMlRYU2Rn
VDZRWE91Y2deekZEUnRRRjs9V1YwT3IxNEZ1MUdhYwp6blYoRH5RQn0lPVlPRWNGYnw5NVRDVmt3
WiErP1Y5WWk0N2FOTHohYCM+ck1rK2F1JGdBallve0d4MEEjUXNjeFAKejIldCElSWwlJH0hTUoo
diYoI1NrUntQVl9TYXJMI2dBSUZBP0ozXzhKYHRCUzIwbnd0aGhURUB3P3pwUEE0NFhxCno9aiMk
c3NKXj90VCNjVzFKaTs7eSVlWUNXdD5WQTQoNlcjWTk+cmhzbEpsRm9hT0N7Kj93cCNObl9GOTNv
MChCIwp6T31WYEgje2N3RU1QQnF1TTxybnYkdVpFZGElfE5vKndGcmdxdXUrYVNlUT4jZVZ0PmJh
YCo9WEZjRktIaUptV3cKem9DaVZVO3M8e0RNSiFIZj9FZFQ/WkA8eGJGPyN5JEV7YHZBUXhiaDh3
OT5EdFVsVHBzTSkjMyhobGAoK08kKiVPCnpvYnI2dnc2ekctd3JweHlrOEt2aVp4Umx+JmBmMyVL
ODdtJi1vM20oSVhNWGsyPFl0V2JaV15RLUhwYX0jTmh4MQp6TE8+VnktWXQ0M2B9QFJYV0VDM2Fo
PX1OVEExYGxAUzh2REw5IVg+cnh5bTNlV05+aS1CUT87Vns7Ki1OKDVQOFIKelctTTNlPnFWY0po
fGd8TSpPUHNURXk7Pj5xUm5DJXlZfU8/Yzs7c3ozdmtRVSZERnU5czw5RCRSUG41SkNORFg/Cnoh
aS1malAwUTYpVDBOYWNLRXVKdUowY1BpNTtDJSpsYXE7RUM7SW4wWU8/MF9PWShHVE9pNy1lbyh+
VFhvfUx5Pgp6a3UyV1ZeUSVFI3QlIXNtQjdwYG5YdnUzKnpZZzY7dnRJJmtTcExKWjlUcT80Yl8+
fSY0Q290cGtNMDIhUDlXKjAKekpjZSQ3S2oyfnU1bDhCUlpHckNnI0dUNDBhQEphfUk/azNqZzRE
OVN0b2diKTwlcy1QTDlYYXhZSERnfE5aUWNRCnp1dlNZaUNLOEEwQSs9UFEwYlc0aDg8am0wYUNu
bVdJeld5JVIpSHUhNEZvfVlxcTlzaUkwWSFfazY+bj12K2EtOQp6eWo0PC1JPnB1MU57M05AOCEm
YTE9bkY0biRQZ0hTWSt5MmhXeGZ4SnlRaUomekJiYDE1UVFSKj9GWTBhamppU0QKemg5eEYqNV9g
fTZZKmAlbURoQ0QhcktGX1pDJn1WfUlga2EhVm1QPCQtRjBmd1N7MG9WekQreFBqM091XjE5KXMy
CnplTXpsZ01eQzdDUys9K2d7WjJadW9BJTgjJXpseHZKTkJiVTclSHl6Y2wqcnsxWnBXe3N3bDBP
endlSipQenM+Jgp6UEwlX1YxYTslNyVYNVhsdE1FemVKNiFDYHoqbzFvTntXaW5rJiVoQU1RVSND
P35BPGE8YCpLezxoVXJGYnowVkUKekxEQXVoI0shTkJnNDFMc1Jedk5RWHBjPjVgRlZNSGQzZGck
KHZ3emVfVXc2KXAjODZ4O3Qwe0VoO2pXeGhDVkdGCnppKVElSm4wekZ2aExrSGApJTReQEQhbXNV
VVEkak4zRylCXmBKPDQqaTswTnxVeTw2WTEmWXx6KzhUTU5HNSk5Zgp6cWlueHRTcW5FVGdoJntI
b0JXc31FNUFfM1E+R2d7P05kPFhXTWBpb0FOIyFBZmIxNDgoUGhsV0ZTU1VxNlcoR2EKem13eEkw
LVBPc05aTztrUjhqVjYoKDgjbzwjYjIxVks8QkBJTmpaSF9rUktOcFNFPF8rOVVVJDU5VEJFO3M5
TUc/CnpBbjxLe05xNkl0YjtLZShKWG5URTsldih+VU5mNSVwM3tiaGhzUUpjTUUmO2c7bT1KTk1S
fH5NKjJjZFl5Pjx0Xgp6XyU5eFJVak97SyQpK3YmUkZSK3xjZmorcmE8PFhCYyNTSGReV09aaT9L
P2o9Y2YrXkt6aj05aUhvVDhWOGlMK20KenhwO1loI3omS0U8Q1MrfjhUY0FNKTtZJmxSYUtSaEZg
Zm99czN0eyUxMVc7Wm51PGBhdXp+P31oUWU+SD8pJmVYCno9LXAzVWFleTJSRHwrUUIlTURkKTRs
PCt0YD9PekpxcHoxPVVjQE1WayVfZTJGX1RjfnB1SFNXazJYQn5XOT0kKwp6P0JQYF9RPlVaPEZX
VERMX2BxZztpaDEtdlNXSGxDVWpqODcyS1RwLWg1YV9KNkZLKVpEOGllPHZXRTB7P3pBbUIKelQ5
ejViJEY+Q1lDaVMqOXVhZV44KDZGIV5ZUzdtNHQhUSV9NWZzNn48Tjg7V2JCUyV5XmY2QU1ZTUJq
V0N7JnBBCnpXSnBLbEBBPXw2a29CQlNRc2wwWTd3R1RySlomWGNFYH5wdCprRj9tbnozZH1XeCs9
P0g4cktDcmlMZXZtWU00Nwp6Q0Z7VFQ/VWtNMUlHSDduZWBoY01ISFAxOWFkRUxYaSR3dmdTem9z
QlUySjNWKyo+V148cXFUYCZWQz5+TEFyb2UKejhyUEMlaCVTME1uWDZWfHQhMmdQblNoOWxqRXRP
fEJ9c05OaS17NTRoMllCWWIpdSU8PiptelpFcVpqZkd5TU83CnppTF9NbmcpdExINDYyUTN5dSok
eVZiR2pDPGtOT2M5PCF2MzVYVm5sYExvZFdae2U9SWB+WFRpPi10WnZ2YTZgKgp6WGc3Q3YoVU51
ZmtoNjxSRyVse1dHe1cyS1lYVVQ2KFhZLS1qfmN1LWViSEFFU2NtVm9LWm90cW0+cl5ITm9ae3YK
emJgZHt2QF5hOVdfNH5HcCtTViUhT0BBdD5QREVSUnBGS1F9P3h7MUdqaVpKMT8oQ1MrQkBBMkNG
V0stJDxWUXU8CnpWUzRjek85JSQlMEZ9T2FfPSROXlh8ODlfbiFlISUyWElWQnxEdXp5bDs/RkZ1
cEhsMFR6SD1wMEtidys/SHc3Sgp6eyQ8cGVAMHEpNG9uMm94ZE52M0lpZkhQflBrbFN+Wil7dFBo
UXNOWFpQe2NBWEFuPlBLcmZ3bk1vczxFVUY1IWAKekNMPFIrYCZsTVNCMiFVNSF9NE1xPkNMSmJq
JHt3ZDc9UWNxR3hBY2M9azlVMXVgKT0wdEFadzZTPUw2P0RWZHlkCnpXRlBPXnNiekl6QldINHRA
OEA4cz9JTT5jPjtvJjsxOzF6aStYJj5hSGNHPmA2JFRzJjdtUkAqU2ZkJUhrZCh4Mwp6Sn4yZ2lj
NkspV2smZCRhNHNUOGghcn5NZT5kYDJ5PEhwTndyMyZZUW5eX3omMEk4IzV0VDc+NUdLZ3tacU9v
KXUKelI4anBAaXQtfjk+PjI3cVhoTWB9Pz0wYzxYTUtHZ2xXKnJNI3AyZTdOJUYpRnVlKGhJWkps
SkEwUkRqZkheODB4Cnoqa05kPUtWcCFUaU0qMTBTKVRFak1OWXlmTD5nUUNpS3QlKXZYMVNCISs+
SnRmfkIxbDBLd0pAVU0xUlRmKlFYIQp6OHgqc3hTJHZtX3J+Tno8aEQhO094fmk8Jkt4UTdsSmp1
SEYqSGBCa3M7T2FDZ2leTk91WmUqeHNse2FNJlppaTgKelNVKWtIKFBXfnpkbmRNSWVNPHh8IW0r
NFBqS3J4XjlPNHUoTSVmdnNifVp2UVliUEF5QyRQWGdeLVZsJiZOXipSCnp4VFd5I19walkqYzdC
MH5nRiNHU2ZPPjl7TTthPioxTDVxX210Wno4WklBVkRUQW8tbihgdXlZdz49bEcke29uQAp6IzhB
e0RYZnhpVEhEO2p5Znl+eGNFXnxASjx8YitHcH49KVFPenszYyszS0leUz9SNWp2JnNBR0xpYTB0
TGxhcUYKem5GfFRZNVYtKG8wMCFEcEN9VmY5SFJkODBiPD44YXNCO0tJNW87JkE9TH43ejwlRm1P
Xz95bEFJRXlwYiF5OSs2CnpVa0JoZXJrRU4rOCh+KDYtM3JIfj8mNWhSVjsmYVI4QF5uQWswXl94
c049a2FDe2dBZ0goXjtJJmtpYnlOQGVSZQp6SlYqZiZsKTtuP241Qml3eHpfZWg4X2wmQDtrXnFU
b1I8VHFtX0tkKCslJT49aUlTXkJUZEQmeFAhKndNSEhkVCQKek5aczgpTkc8fDJLbSEyQnoob0ZO
MERNU2IrMTZINGpSUHskQ3Q/cCR0UylsMm03SnN8X2RTRip6d24haG5KUiYlCnpYfHFFS09ObHdn
cEctKkZ3OG1jJCVwOTQ9QCZUem1hVWV1PV9WOEZPYGd1QFg0SylPWihrWmNsNXd2NGxlZHptVwp6
P2UrTm5qflgmcC1OK29YSEN7WE9WSGtEMEFEYGMmUFV9c147QDZNcU94QmI8bk9aK0YjdmxMfl8k
dnRiPTN9QHgKek5FYCROREhIVndjSyNpPnZ0QWhkVm1KRUtrTnQoIVhQPzc9Mj1sZ05qNSF6eE1W
YmlVJDJrbV40bz53YjxZVT5YCnoqVm9zZDlBQSg5TE0tQlQ+YWRfc3lVfmU1WUhRT31NNC1taVh1
SFIoM2xOdTxMa149dmlWc2dIQ0FKTyNCdTMqfgp6ZD5vZEQ0VHFxS3EyZSthYH01YzRKVUtsS3Z6
NDhHdndXZlZxZ2llfW9+PGwmIzIpaU9Od3g8cEFWfitQTn5AKWkKenF+S34oWUFffTxuPHM4RF5W
WVElSFQobSgmOz5JZnAmP0xEUVRuNklgVThwczl6YCp7TUVlbyNgfVN7KmR9cXFFCnpgPTdtenZW
X0xxdU9tKXZ3dDJLYmZHaCU0REZCZitLKGc4YHZePEx4SUYlTy1GLUY8ejdqUV88Sk9yVkRJZlFX
UQp6IzNobSZpWWNEZnd7RStCQiN4RndNcFRCLXBFOHs+MWpaYks8RjNRYSZBIz5jOUhWdWYyJG5Y
ZmxZTUwoa0xxdXoKenBtWVFzU0pnM15ITSlqKTNkXmdwZlA+TDRpSDlaUWh3c1FpdS1NOyRLejkt
UmpmOyZmSzBTa253VD0xUjN6ZEsmCnoxI0R1OWRJV1NGcVEwRj5ZX25pdUIqfSpASnl1Ty1MT3px
VUxFKWJWQG9nOUEtcGBtKlV5V0E+QnhnUXY3dXVQMgp6fDU3a0ApLTZkNkxyb0M+Wk5VaStnX1R4
QHImcTNDVHg9R15WMldPODhQfTNhbU41bSNqIVYtOHNVWWJEaHp9emgKeiE4Kk50cDUtPCRlNzlg
JXlLWTlDKlBEZGJ1dSgtJjxRRHZgZiVNKEF7Zl5WcEBeWEtUQTB2Zks8ME15OWQ2a2pXCnpXZj9J
bzM5WmFDJCs2JDFmPSkpdzR+JHVaKkA1OXViMHsoZE8mTE1MVXl9U3VpVHtrRVZjKkFVXmxgclcr
YVEwLQp6S0JlPVZ7Jl5LKlZ4aFFYMTtORVNHOW9ZK2NVQmdhMiNFKkBfdFNgNktQcDxIQi1vZ2Mo
aCo2KkJxfXd5KCk+I3IKemQ0MFhPIyF5YDJuMEw/M1BTVzBoYU0zVH03O3xgNl9AU2wkNTcwKWM3
Z1B9c2AldnxIJEx4WDFyU0oyfU9pcks8Cno7dEJgdkxCcHlkTndMQXVxQEskX1B1Wn1mVyhwJklo
b1czO3w1QjNHPnEhUzVfSj9VPFVDZXEkIVlIJSkqbH5DKAp6MmclPjZBZV8xZ3VgY0laUGtZX1dg
OHkkVU9BT3RxKW4xVEMhdG9ENUNWUFgmOXRTZ31XNG1BMipvRVZILWkkU3YKekloT0VHLUt2dDtD
dX5kWnlnN3xJbDc7bCstM0ZRRiQxVWZaT2ZRU284QiEhTXgmJWhheFJpYWdLJlY4Zl5aZkdqCnpV
UkcxZCspPi19I1B+KmdNe3tCQGEmS2xyTVVYc0YwMTkqcD9FPEhOO05gakdaS3ZuUWVLdFEpX21n
ampqcXhHeAp6amIyNmxaR3A0XjEhKjBiTzdldyE3MCtLLXQlWHJPI3pZb1FYKHNzSkZoNW97IW5D
Wl95cTFJaG5xI0xQbT5zcnEKekM2ciQqQzlgVE5xcXE+ZGZKKCZ4NSY7cVpRTkJBJFV0Yk8jUFFx
THFNYGE5cXFPZ2x8SSVxfGpyNSV+K2FQV2o9CnpXZGV3ZyVUbnJPVTt+MWRNWmNaJmVsJGd0SGVq
KDJ7YlRRRTJlTV9CXjAwZ0g+MTdnRm0odUl9QVUqYjEoYmg9cgp6O2MjJSpeblNWOGZAK1JmJmhJ
ayRIc3RIRWg4ZkBPZlZNc29xa3hWMCthO1cqSWpMMCo5ZG4qUTh7Z1JhWkVkKVgKelRHRSp0NCM2
TDsobz5FRkY2R0RtPH0peXYpdnV9R2VeTFA+am9Dek1peVN1dVJyfklDQUc+R3pVUHAhZWBwSmFI
CnpBRjc4RTJ2dnFzRzlVfEpxTmVFREtOQ08zeXRkdD9ZbF9hYlEyQEZ0SHh5dEopQEFAPjIoQS1R
VWlfJCF6YklFdgp6e2c7VmpLfUAtKyUjcH5vejR3WjNKbCYkciledm92Nj5xdVNzaW9TNiZ6IyhM
Y0JjKlJpWUJ3MD53aUo7e2cqcikKelVUOXY8TSh3O09MNnY4UjBYYlJnQ0dGZDJwRmheeU99PjFs
KHhtVH5uMEdqZGYmbX5IbXxANnppQVQrQWJoNTxuCnpmcHBqWGJ5RWgjUThVUGchYXM/JGhkN3Qw
UTFSTnJucSVFfHFCQ2I1VD5mR3N2ZU1OR3VHYWxHMj5MKSRZYEpYTAp6V1prJXw+VXh6dkBQNld9
azJoNl5rZVctWEJhfDNLNFgkMWIwSDZnYlNGZlVOYyF6Z3Y3VzU0MURralR1KjYrTXIKenRfLWlX
JDtWNk0lQnw5QEBVR29JWHpOO3BNcUNuU1JnXkolbipWeCF8NFY4USNlRCk+NU59IWY1RV9DTGlp
MVNTCnpnYW40cjU3ZnZNd3BCa0k+fVFkbXd8PjRIWCk5N2E/ZTZhMCslJlNjeDZmMWROUkxKfTJH
ZWRLZjd5djsrV3p4MAp6XmRAQjUlZUB1KnhsLUxhY0EhfWA8ZD5CLTx4PDxYcn1jJWRXakVLaTd2
ST4oSENhPjhMJldKNCZUbzUmQENGP18KejM9Ql5XK20xOHFlP0FURk5sfm5xZHRXbzQ9bFgxeDBG
PGZsc2dFZmhTI0ZvRyllU3RDNjcwR0ZmT2xEcmtVJF8lCnpudDgwNzhQWXowUUhITX1kcTZXWF9A
VjEjPmg4QiZZYF4hWWQ7UD19YkJATjArRiQyTHk8YlRVVDJKJTg9UUVJJAp6c3l7c2I3WXEyV15N
JkZGLVMyflN0UF5NfnhrPGklfEw3ZF91fkk/UF9Xc3RvVUoqI1lEZWFeVUxXS1ZORmRCKUgKemY0
QWAzZCRoTGt4WUZmMjlyfFdfdD56SEJka2hncjhOSiE2ZUVoLTJKSTRFISkjRHBvaFBKTT5yZTtj
NU9vQCYoCnpkX2BKQi1ZJDBlMkc0aUk/PXtVTER4NUsoe3kxT1B3MmBUaUM8YHE7NHpZe0JKaTlq
RXpmfmp5K2p9bTBBM2VDbQp6TTxeN25Ce3VLdHQjJiMlP2Q9RDdBeXp1ST07ZzhodEY8NVpBfGJQ
fXJeczAyWCFDZVJSRXlHfTk2flp7UlFMPW8Kemc4KUxoblJvblVQTF9uUW1ePzIoTWZJSWUpYkN5
Mis8MU9VRU9DTkhKTWRgeTBiJjsqI053VEw/Uy04PHpGcnYxCno7SWZ6TD09PSN1OHR7Rz9Makxt
TT9xUmA8R2NEbDZQSU95P0hLb0pxX3xOMm96fX1xWTl4QlFXN1JHZWYoQEs5Twp6YzdlRD11Pjk8
QjlDYVk8RH09VnV7VXlFaS1nKTxZbXxtb0BufTZ4c2wmaTk4dSp7LU4kQEZfPld+JFR9eSV2OTgK
ej8yYmp9UXEtSCl1MTckX04tdHIjWW89a3VUYj1oanQmZUxQWk96WURQRyNLdXtRUjdwKDw+e0Y+
TyU2Mk1UdXlFCnprZClDUlN6MCFCS3tlTFgobkxPPXYrdnEmbChrZ0pIaVc+bjl2bGV9MF9mUCMr
blpHWjx6P19SNk4lZT85a3VQewp6dHBqT2wwNz5gZmBxZmYkYE9ZOXdrP1A0fnJsZTRLZ29RbW1K
WTN2QWFXST94Typ2V0ZhMioodHMlSkoxZlp7Kz0KenJXUyY1a2Y0bFVnN3hlNXtgOWRNTHhESyo+
IXBuQ0ApSXJ6QlVNWG84YXR2SG8zNUtOdUt9aHhAeDBCQU9FflF5CnpvPiR9Y0VSazRqUypieHZx
P0puSWFtMi1rTnVrR3hzP3lDMURYRyt1ck9kNCFWaDY2aEM9PShOMzVoTj54JUc5Pgp6SjdHOVEx
RFckeCtVYyQrZWRxQXBLSGtNVz8mcFlMbkR1Qms+TG5GZm5lcnw8cDNJe2Z6TlcoKWRUd3JSNXN7
T08KeihWUy04Q2xfaF9QYSl6eEA2QXBoPU0wJmptUnxTMHpKfEtgYC02a3dWdHtsbjRLSDl9R21Z
WVlfdnxvZFYoKEpRCnpDVW88XmlVVUFeZUZBOXQ2OStGMWEqRDdlUE85UmdrVjFNPFooRmRSaWo9
bFlFQSMlUUVYITV5NjExTEBTTCtCSwp6TjFuKTxvMHlvYCppXksmSnU+alAyU09OPFdTNEF5RGw7
Njc/JW91LUokKkVzZlM1NlNyaW1YN29YLVUocUNpeC0KemlGZGw1IyhLUSU/KWNXNyNyZGJiMGQ3
eGxWI1VHJWIyREFyUXNjSmlXTEFfRGVnXnlkPWpkaFhPcF9rZEIxX2BGCnpaaE8lbHA3KXw1a1At
Uz08OEJaWGtxWSFNIVVQQ3lkYlFBWC0pKHdZSmglUHZkWiokMns4M1VgbysoT2pQe0NUSwp6QD5K
a0NgfjFYSE4kR1RQYXE7WXwjeXZOQiRlcSpLLVE2OGQzKSFEfnlEeis4YC1OQn1rRWwlNEFfZU8o
TXZkJlQKek5UKVhiKWppJENfQVAhMD51TlpAdnVwT0NGbnBJSW96KFhQN1U9QT1pRnJIfDE9UGck
Uz9NUWhxQHhlcENAbm5PCnpgeFkjNEVqQ3l0RU8yPXw0MzskQntCZEpWUyRXbnl0JGYtI3tnO2Ri
Yilkb2NOK3dXOEg3fUVuO0MwKSU9SnkoLQp6PndCRk4mRzdxJnV5YjwlaE1vfSQ0bUxDbG83e3hY
cTxZfVlXYTVYYz4rdGhOKlRvOFlJIWp9N1cpLSgpQF9udGAKelBxc2BpMTkkaF50Tis1cSYrb05Y
KTtaTDhhYn45OGE7Ny1qeX5GeTI8dDtyK003WHw5RjJRJWxaam4ra0M9JHx5Cno+NGcrVSNgRWVQ
PzRKam87R0B5cnF0SGBhNnwkYWxsIWRMSWIlfnhFIzZ3MCZEYUtJUi11eyRoSU9aRW1FdTJIIwp6
LT92PTkkIT1MS2w5QHxPaE5jSX4xPXlCK0w9YVNfKG4wMlgpO3NLMDd8ZiVCYkcyS0M/Pk56VnZA
TGxCWSFmVVMKem5sTypEanc8MWV4OXhpUzU/N2NQIVRAI2hXfEVlZHJ6ZX4jXy1WaUtBfTRBangz
b3dYb3J6Tj91OH1HK1BhOzRBCnorV2xlUUQwJmYrSFBOIVkjOU9YN2NyWiQxe2ttNFJOO2RkcWZh
U0t5NHs+YShYPV9AeEU/I31iVk1BeT1jNSk5Kwp6c3kmTio3I1pCNygxVU5taiVDVEBeTnchT0Yt
YDVYVmpoOUJPPU05cDRQYGpfdWtAN0hvdCklN2k8bV8odEdvbTYKenc8ZGNzN2dtQzwxZTdZS3hq
aFNTNGNoeXpzY3ReTFZyTD9uJCo0QX1JKihyS0x9X3NMUlBuVj55alN0U1RHJHJTCnpZQENPODVP
e2NhRXc/WEQqNmwwKEB3alJ4bHJzR347ODRZZWgoSEpldWtUQllycllze2NRflNvIylHRm9FZFdB
Pgp6S1IxbyM5UU16e3M4eihARTVlajd7cndVeGRMblRsQChLIWJOezxeVDduYX1VYi1SZzs1WEY1
YmZwX3hkSyROR3kKekU5cEBXOUEkYk53U0NedEI2dzc+YyQ0bT9EYGlgTTwjPjxKKWwoQV41Kzxl
MV9TOHVHYHViTFcrVEpmVTY/ZUo7CnpkJl5HPUFYSDNJSXQ4bDZnKWpSdipJe21CNm1LMT5NPkt9
PDt2c3xZZDtZeH5fcigkXjEwRDBOVHM1dWR0aHReNAp6TihnPXNnbGtxakphWT5SP2lJZGpVP2Qr
T3BPJlZNMW9WTFpQK1VfeVFlOFUlT0NkWDxoO1krSG4maVFrbXotXlcKei1fPiF3QTI8O0piUll5
Qi01KD8oVik3QUw0QlZjJjI3Vm0mMzswQ35RZFpxQXw1fStgJlRHRHFWVVcmKEZEV1NyCnpYRmYt
RkZUeik7aXF1PjUtY2VCU2ItbGlpP2gkMEMkPmRrOGo2SFNNeCgtRyg5IVNnYXV5MCF2djUzMjBe
RiNURwp6bUVUPGlRREJke0Y8STROJEtMYm5yWkEhSjFqa1RzQ3VDc1JfPSpicjxZP0NOezxyP2s5
IXZuSmdLMTB8REI5aWEKeik1dF8kXmN+djE/QWc8U0hucTBZYnkjWF4+eVBKKVV6U3VVeGp1YU9B
U2tIQU9jLTxWUHsyUyFNQVVyc0dAT3p7CnppZFZVMmF0MDJSZU5TIXp7I3VFMlA0VD1QcGklQlIj
LX5AS21UYF94M002T1NeU311e1kxTXdgalJlRnV0ejhPRAp6a31UZ3B6YEUoVWg8OXAlVSg8Nm5m
PFhvVUl3dHozZm07PWlPPWQkREgjcnxVOX03Pm8mS1FTdFdjdmskcH13fVoKenokJS1YXlpWNXZE
TUdecHVgYjJeUnIjMXY+dSttc15MfT9VNGNvZWxtdiMlbkBJRl9URyZhdkM+TSpKYXBGVS0wCnp6
c29AdEkxaTRTWiZmWGU+XlEyTSZvSnpMcWxGe0lKUD0/QyMjZV87RWspcTt0diVsUSt+cmdANHhT
KzxjVmFjSgp6MDEmfjVXUWFVdiNDJmdPbDNCKn4qIUdXKSQ7cnV1OEs/N2c0Jmc7LTxSYF9+THtf
dXkzSXMqdUEleDFHYHNKU3EKel89fnZPSTw7MnI4dylUOU1aNzwrIX5wO1QoczxHPEB8SU1yPnpv
YSViOTF8d2tVXkpjVzFeZWUrdD5iRSpJbXVJCnpHI25nZy1hT00oWGA/RDcxRyVLdHE/cGdPMEBw
ejVfVzRII2gyT2YtTEo8ZjY4TjchYmRUMDw+RWRHYVFBTWR0Pgp6dF9JNGVvbFNtcV5gejl5O1BX
T05qeVVgIU1vUShrKTMoeENhSHRaU2gxbFVWIUF1SDBJeStDeEhPWnFOZT1NOGIKekRFSyZPc2My
IyQlZkQyMmNwIz42N3N2UXZHeXYmMVAlPkRtY3kmNFdSQHhvYmxmQ29VeHcmVSZXfU5GSEhwSWEy
CnpiY256NEQzPldsPUt6JGFOaU1BS0EqaXhiens8VEFlWUwjYj4/eWRlKXlLU2ZDZUtCSTckSHVo
JXZmbkV3QSp+KQp6T2QoWGY1JHxPYEl5fChfeTc1JldpcTY4cDBwPzlTMkVsJUNiPHpoTzM+Y08j
OThNQnQzRCt6THlaQ2QxMVVNdykKemdSPmxNYUUqbClTcTJxVTxBJSo3TCZNZ2MoKHVIZiklWmNC
OzcwS3hBd3dMNSY1Zj8qaWFEITYhY1AoSU0tKW9kCnpadGJxYnRxKmNqaVU8ZjVKI0olQjhmMG9o
Tmw3eiZhTDVtNThWaGNGdiNsT09tTVcrZld0UklEcSVmcnZ3c0BVOwp6R2IwTUEhc0c2aGU5TH0r
dHlue3lpeGYoR3d7UH0yeig8QEk4ekZyQXR2ekpCXlU2fTFnI21veztVK180bmlDaDEKeloqcUFh
RT0kNHJ6dE9DKjthaG4rRV9SLXpfR2hPV0Q0LXVRNWlhVHt3RGNKT3p6VzcmeXhwVlZyLUomKHR+
fFBUCnpHY297dkxLJk5YVDkrS1JIb2pxZCVsN1ohO05iOTNzMEFIUGQtfndMbyVMaldPR1JnZC10
RlNDanNXJS08MzNtcAp6U25oYUBGVyNUPSt3M3lqS21wQEFBUHZBfEsyXnxLa0cyJUhrJHEtTCtI
VWllVT8lK2p5OEY0fks5ZTF4U0xkQEIKelNnNFQoRnNwKyN1YFBAfUYxK3BmRT1eMG40QClGM2pX
flM4ZHo9VCVLcDhrfCh4eS09ISVYeU5ldHNYV3tGU0xJCnpIanR+UWNEZ2lEaEtIfDJYWWA5aUk4
eWFAQk5hfHtabkBtMSVsKCk7TkxNU3lyUzhzKCo4OD8pMWc0QElDP2t3fQp6T0JweWNMZ25gOzI/
RTJxMSNLRXopQDRuaSlucXR6Y29wRGZ8THlsKjNBKj1ee2k8Y04qV1gyMWEzYihmajY/fkMKekYr
Xkk+JURNNmE3WDh8K0VHXzx+bkZnMyl0NT42OV8+O3ZWaHhaSn5ecmZRK3lsdj88Z1YkYWUmRFMm
U2NUTEI5CnpJNT05dE5QMnE7eiEyRldva35afWtBRnxQeWRPVGtebU4je2cqWX5yRWZaMEdKY19K
Jnw5NkBwTGVaPmQ2dXNBUAp6NV96bkJkQU8lc3d7eDVJNFNAWmVyKWZUWXtCTGJMUl40KjdYTVUh
SSVjeUktNGd6NFdvOUhZMzFpdV48VmRVJkEKelR4b0hvP1dDZ2ZJJjZHUiRkdU4wa1Jfa0RwMytG
JUlRSEQmQn5QPkVfTGJgT3BSViFhSmgjR3ZUVUgmR2JnKz0zCnpHYChaQT8rKElxX09IZEB2Yl5t
dzxQUkhidkRMbWYlbjE0WGYhcmFJcW1BLU01TGV2VyZ2bjFIOUNMZ3BpT3tkKQp6Nl8tWFEjbCZ4
UFZ9KExgPUNXRDkycFVrckZFNns+JDhMfHJCSW4mdzAxUVlGKmEzfnFJWCNgUWdfb3lwSkklWEEK
endhamNHMEdBUD8/X3grVXt6QUtWcnxxcW44QlpIcG43TzFmLT02aXhiTUs2cVImfFJ8RXpNNTx7
WFJkbm5HOCZWCnoyMllrWlc4OTNCS0pZSkdUNmk9dG5EMyFmeSYwNGBxdnsxYm90ZiZEJnFhJDZ4
YylOfGBEMjx8KWp8UyZeMXY/RQp6aDsrciQ+Zld0NEU+ZE1taWtgJWJxbWspeXtKZFNfK2opUEpX
NTBJcGZMXnA7RGxfWTMhWXAwNzZLe0pYRWMoXiYKekB5bEdmcCNjZGdJYjNvZUJeQ05gZnRtVVZO
ZWstMGEhKn5aWkd8TUpQREdqYF97fWlAIyhuNUxxWDdRdWZIV15JCno2cmY+KVFHYFdTZHQ3Yy16
alJHJTRhZGJUNm5eeEVVVGtSV3t3NnFjI0Q0fGJtSFIreyhIQXVRPylTMUFJQkhFVAp6LWY0NnFn
OF5KTSRjaDF+OFQ9V3ojQzhOeS1VKkFJVzg0c3ZKWV9BQyQzSVZmVTU4KE8kRj98TWk+Uk05cU5D
NiQKeldCYXZ0S0JIIzQzfl9OZE9ffnlGTmw8Y1dxMyQzQjFQXn5YZGl1S2JoQXhPK1k5dkZfIWty
dWgtMGVXfENMO21gCnpvJU0zRUdGTT8+VjJ+WT85KT8tbU5wSis7b2AmOT0hP0BXNG9RKjI5cT9q
YyhuVSl8Syo5cn1USCkteyNWPn1EIwp6dVROQSo+M0pIPFJDZk5lWUYwI2M5M3xUd0Mld2xmejBO
aHxuWnNzaUElUXVYSHdwWUxkVW5USGE3TkQ2OX0pOz8KelA2bWw3YEBfbzNuNnp3VG9mUmJ2SmBp
aVBVSkF3UDN7a092dzFPenxeOX1APEl8OGR6UzxOfHBeRFR2YUomOGgtCnpRYVdzRU1YTCQlSyo3
a2RMWXQwNSMwWCVQSSh6ZXp6cSsyQ3J3WUhlKVRVcjgyQUcrRjZNXzU/YmZhJFY2IXhOQwp6TVRV
YyQhODxffm51dlVkaHFieShZJXhfRkIrMDMpeiEzVm9mOS1qb21ZXm4kSiRLUEVyS3wzREQtcWgz
Rzwha0wKej1VTXclXnVHP3UyRl95VWgrRDQ0SGZ3X3okYGUwanl+T2N3Z0x4VEdtbHFhV2NlU2p6
PjhTfnpPPjBRPVYhMlF2Cno8XlVkPkdAe2dCeUxFJWg9bSttU3lBQUduOShUKzBtZ0Q8VlhNZDZ9
czk2QHpEbU9VJlBRRDVHR0pQe3tPcTUpPQp6V0t6NGh3cyFvLSlFMnlkKTx6eTJWSmZMSz8rIX5P
TDJ6V3JRfnt7ayFaPD9IM19vT0B4fncmQkRoVShIdT40ZkoKenA9OTh5aFpaXldFdH49YD9teDYm
Jil4bGJQWWMrYHUmM1BBWC1iYTQycXhDLXtBUE9peHRiWHRPLVVxNSMxQTxoCnpwZ2YzJkxwPzlo
Q2wzVlZKMEErX2d1X0JpWCFrb0M4WkgjVFl2KnB+JGBiVyU0dnM2ZFpCPHE9d3E4YFFxY3J6cQp6
TzdVRHA+dVZpdmRPKW5JemkpTVJEemNjdkx+PHtFYkArMjN3dW5mOz89KDYqMTEoPDViazU3KT9H
MyR3MmctO2UKej1VIUFvP35zaio0dnZPcllwRT5+MGFJbEtONX0tJHRMfUNqSWJESkZaQnBzc2g0
YUtJZ3xvNlAhPlomem5EdmAwCnplY0BTbmY1ZVA0TmokSC15dTc0anU8ZjAxOz87MTgyTnh3Zkl1
I0p7TDF1ayEoYVV2fDNjeCZ7KnE5NzZwbipfYgp6Nkx7RzAwVjE1Q3pfTyYtU1VnK15pa0xxeyhE
Q2c5QCNOWGxkanFUMmB3PVhhbDhXUEJpc1JqO0I4YmdHPzx5NyEKemVKJUZoRndQT24teSQrVlAt
cDw/SkJ6cU5naTZiPjl1a0VmTDJiR08lYXx2Q016eFQ3LUktJldOVFJ6RCZeUzJBCnpvallUa3t3
Q3VqdCR1NzFzO3NQKXM8fiYzZ0h5WVhtQTJwU3swajU8PnlvRHpOcVJofGJHbDRhTVpzKDt4b0km
fAp6V0dPMmw8I216TWR9X3lYPGNSXzgjXkREWl9QZGdkX2U3dkFEUVN3WGBCcWdlK1V3aURULU1o
KE9LdjQqSVMmK1oKekdeeUQhWUpWX3dkZGNVP1NtNnliKjVWKCNFPiZteFdwVy1+SDVkbWBXJG9f
eUIhPGs4aXkhRlg+NUdnKmZhZE8wCnp7YGdraGJuSlo2YG9ybUpZIzJyQyZqMURfTFEwX05aKzxH
dWpyZ3whb3lLK2pjRzxFbUlhVkZrUGR9MFpidDtGKwp6TSMzVGZIR3ViVlZZaT5MLTt0NCFjdjhX
bnBXU3h3KWxybjhwaGJpPnRaITh5JlJqdSgrVX1WVyh5T1dSS2dKPTwKenhwQGlKVDh+QFNLUUpL
aVg+SHw4SGFnWlpmVml8enNRb21oLVZwJjxfOVgqdXhieHxNM3dNc3ttY0R1LW9oLUdXCnomMjUl
ckZpKXBoZjEjdGdGdH0lMmlHbkxIdm4wN1pVX2MhSTlfcjRNez92ZipfOyFKUSUoOFdMVzZtPSE+
bHxnewp6JlFMTHtMaTJJcXswNUt2YHV3bEBwRFhMeDM9eTZoYHEpYktTS1I7WSFuOV5AbV8pMT9C
WlRsT3JrVSUhc0pyUXYKemlLaV95ZUVhVXNBfnJoKDt4eEd5JVlWKy12c1gpb2daTTRxPGI3JkA4
YXJ4aXglJHBEKlBsYW9hVCkrYUlpTjByCnpvQCN4dFFQdDFvaXt9N3c1JmN4WislPSZZWUFGSTM9
S3JRMilsNmhyM01fenBKZH0xKElJTHY4b2ZVVDNUTEFjPgp6aHxTNmxmKTxPXkgrKUVsaigmJnBk
cDEzYipmfkhrTj1xPXdQQ2BQZ1FRZXV8KyE7bFRlVVdyYXY0a0szYVIyUXMKejR3dylaaHA/RXpC
d3RPWnFIcVpqT2diY3lzfEQtZmpKPFBYRW5AI2xlX3s0XitwZ3VlQDRhbTZBM19eQz0hQUExCnoy
UiZueDd+dz1feTZ8bm8hT3c5KTQ3aD5uX1EmQ0dJMFNgbjBVb3B2Sj4oTXozNW95e0pra3xUMnRv
RDJJfSN2TAp6UWQpV1kyNmtyWjFxRD9BJV5hflJASnkwRktEcXN+RGUwfXJDSlolcF97O25Ca09o
Rk9fbGZBS1IoQDJhcT91YWgKek9RMER9S3N1LSMxT1M1bGFlQEtFR3lRO1hkNnNXeCVnJEh9N182
PjRJaCp8VWUhT29LVHpAa3ltaHs9YCtHVzMlCnpUUjhzcmpEUnN2YEplOGJVO3NLNTZPeDIrcXF+
OUU9X1hRfkp8b1g7IVJPN0duYV5WOzdGMDJpVWNJcmIxNVIydAp6KV5POVFEKEJnbT9GaXZ6IVNI
UCE8P1NRX3VqX15WZ3EmQDF1VjV7MzdCIzghUVFeOF93KHl0SHFxTEg9fElWRTAKektRcXh5Um9J
cypwLSEzUys+IzEwRzlXdmBTTGxpS0EldmtRNWZETX4mYjswNFpPMmptKWhFXjVLUHx7RWExOUpo
Cno3R1A+QFNiOGJXUUY/SDBSb1doMW9IJnkwRWNydSZ0MUplKTIwMGQpJFJBPGFyKFB6V2pKT290
KmVRMT1lRCN+IQp6OGB2KzNlRmxibjhlIXh0SUxsZyo4SE1gQ1FGQ0x6PEN5Jng2cmZkZS05cTBo
UkAkUkFCYFhvMnZ+bGxFb2AwSD8Kemw3LTRDNlZKYj1uQXppOEQybWlENTtOcFZoSiErQkpTWSlS
eW5abyF3aWRuSFI8PE56RHUoZGo1eHYrfGxCRj1NCnpzODdWe3sxYDJ5bFhEKzxLYjltJkQqPipR
MitrfTdUeipsUSV4Vzw9VUxobiRnN2FDYiVvPER0aDdSV3Y/RFUpawp6NnBgM3A1aHd7T3I8eD1s
VDJQYz43MFFlX1FMXkFVPmM/STtJMVRPOWdWIWxuNWJCSVJ3YSthRHhreGFyXks9NlMKeiszX2tW
Z2ZlKSZlNnk0Y0BRUHBDVGYtJUVwISVWNkROe1p1T2tWSGI7SnNNKD5CVDZpRiY5TVg1Y1A0RDxJ
bjxECnpJPVhAWWUhN2JCNlB2U0F5UitpJiEmbyUlRytDfXdeJXE3KCNgaE9qP2pGbGhtYjlHSnV9
c3EqWDxEezU5U2FZVgp6V35AZXgwenFsMGRMYHVocWwzZjROQXlgIT1JQUwyZTMpLV9iITtLUGF3
ckUzZ3VAT2hAVXZyYE47flpBeENvelEKeilwITAqKlk5MGdFVURMR1JKWV90WE9uI0tKO0Fpe3JJ
UjZ8XzQzfVM8JWx8XlBnXyVvOHw4eCE9ZzI+YzFGKGNMCnpDQnVHVWt4djNsK3plbCQkb04kNkAy
MG5wMUd+P2tBbjhVWCQ1ej96O289ejlfMkpWOSR3cDt2Uj17bX1LaFlTPgp6QUFeNSkmYz5UWT9u
YkdRPG8lfjN1fT52VnA3aVRzTSp5NWYxYzE/QzIya2sqOypVbU1LUXZhLU97fTg3QyFIJEIKejhP
SEV3QyRfdUx7Yn5gb1Nsb0M2Qk5kdVFiZFUzZylQNjx3P31vciZ2WG8yJnJUaWc2QDJuSVJRfU1i
YypwKzQ3CnpobT9YcEUhTmk4ckdJfSVVU3NVaEpOSW13KXgkK2Q3UU8lZzE4YDZBPnA/O09sJktr
bTMhUWIzMyUrPikmOWhkTwp6dnhtb1NEPyU8WEJCVU91TllgSl95Tlc+LXIrSVAkODI7cy1KQWlQ
ajUoMU5QS3g0akxpRmRKMmVXOXVlPUlSNX4KemR3RzZgRihjaTh5O2k8fUNIbCNPaH5jUWNxRnFO
Rk5nMzJTZjVtZnAtST5hY0Z7ZXklbHp2TlhUXzxadFVDeU9NCnp0fVE2MTxiQilFK3dTIy1BPX45
YHUrVWleMHVLWVN3JE9AcUZKRzBNTThkSiNBOEZ8fTFhQ0xqTzYtcmBhfmd8JAp6Yl5McClJMTV9
Tnt6c05iaUJ2c3YpOT45JWdaejdqWkx2fTkrZHFoJEgtTU9+bChKPWxKOUx1Rj5tWlM2NlJUISoK
ek9ZMytoX1goejBVbkd6IVp1eGx0entlZ1YzUzI2PiNOX1lTJEdRcWN5ZCtVPkBlRD1udEZ+WXl4
U1V0TjxrYUdnCnpzfjx4eE11WDg7V18mJGxhQl84QHp4NWdFVCQzUmV1dDtCUD1PeHxvPns9O1hi
Tzl7enBeeHRpKHhiekBYdFlEUQp6JCFhZzN0ZitWOSg2VVVJK3tYOFomRmUmQSNDIWZiWiN6Jjww
RFheelZJYEZxYGpMQHZtTWMhXnhlQ2ZAWF57RnUKejVsbXAoVCQpanVpYXB8aTVDO3t1e3g7M1FT
V1VgY0EmZGM9MENMYmpgY3t1VWA3cUVNNVU+XiFzSmJZbFhqIUIhCnpRM2lndXRlY3V2ZDJANDx5
JE16cCFoeFBXNXM2MXZubWJXUkQwO1Q4WUlSLWc+PF58UDM5IUJjM2AtYitAQkB7bAp6aFZIPjNl
N1MqN1M9ajBCc2p+a3k1RG9KTko0ME5Ta0ZTYDBYRWQkdnEocm9mV0AqMmVSa2FwakdXKkwpRD9i
TEkKelBjXisqZyM/UDFCQ1pPaEVZKko1PHNWdjVZK2J3NmEoV2k3YlE+dm1GR0BLMUhCc1hvTSR5
Qy15TnttRVk/aHsjCnpOd0J2bDtGdWkjKXM1MDt5aHZhNF9VNjJpbC1VPiU/UU1kV2NwPGZHV3JJ
RVA+VUo8VGhMUHA+IWwrZTJMaC1rZQp6Xns3IUQ8WDxmbzQ/eUBLZWlLZF5aVWs2OEFKcShraX5T
Tn0kZmFWSVVePV5yJSlxUzxSb1N8YSU3Y25+bklHKGAKemBwY2dxVX58OWRTPFJaKyhuKHh8ejk/
STckbz8+b0IxQk54Mlh0I3c4QDMzbipPbURNTE85IWN2JnlNVno2PSF8CnpNU2ZaUmNLPlokdVMl
Oy1KdiF8VVJTNzAzIUtxRHlUTFFJSzI5IyRTcWFoJDleXlJvPSY+aWdXIXpwKT5lSmBlUgp6M0lz
ckE2VSpDd0tkRHZINSZVSWJAI3pJOC0+NnNgaXZnJSFtUmJJMCZhNWFFTXYwbz00ODJeVF5ZTlp8
KDc0JHAKempyfnJNUXdCZ2xpS154UEt3dXpxRllgbiMmaz9oM0E4ISMyUEtxR3FxM1hpTV9tciUp
NilXRVApfj8jfW9yRSZuCnp1Z1dDZ0kzSH5iJXZUa2hwI21XdnF9cHslPkteNFRVNiF3Um1SSzgx
VnBLSFo1RFpZI01TQExNRSllUmdOR01weQp6S0R8JGA0a0o7ZkYwTSVUUWszPCVWbFc4KEopd3xA
V242RjFiX1ZLSTRESzwxdVQ8ZTlwPm5tMWUpaFlnIWgxazUKem9TcHw0S15ZQXApfEZAJl5MQShC
eG5vWVglIVNJYjRlfFF+akBJWkFiNmFBaXghYzZsem5UQCFrdEVxKTM3Z2dTCnp4SH0qYTZUdlVz
dVNodGB0dXRtKmN9OXB1VnZVKEMqUyEzZlZfJFklR3klIyg8YGUwM0gkfiMtPiRVOG9kSHBjZQp6
UWhXJGdSTVE3QTMrdn5Zc0g5VnhyNUBWSHkhWGt6an58XmtUST1VMylZQGNAVGRmIUwlTjM3OXp3
N1FgMis3RjwKem5NdCU2QzFfPkVhd1lEYDw+WnJSUWlxOWhnWDhaUyU2N1Y1Snl4fldJfnAyWFU9
KD5KRFlCbSYwZ0J4TXdiOGAkCnpwJG8jKURacmtyTUAwcTE+O3RDbmZzS2s+SWZVbzduXiskVmlN
RkFxYzt6bSpuNHNYUzBRNmtOTVNwUyUyfUAtKAp6V3c5I1hFO2QtakJRLWBGMXorJHsrOFpyeipg
emx9eyM7NClaaTFHVGhSIU9LSW1XVll3MU84IU0/WHMtNiphMjwKejFCcDdCZHA5c0VDPmhfTClK
Z1A0NDs3b0sodjMhfF5wTFdhazwpdC08Kit3alZGUG1jSCpRWFhKKSNjITJhOUVjCnp5UFAlMjF9
OX5lU314ZE1NPXEoMlp7ezhwQThhd2o2SGolSXtiQlY3JktuaDNvNmRxN3h8WXA7RlZvWFgmKnZ7
bgp6YHVnUzdpeHpYVURLaWdGKF59RF8/YDJFe3NAUH43S2RJXlJIV0k4QEhQNlBuY0s3IU5RYnFV
WXUrYVQhe3hxUmUKelROYnN3fDloRX5aTUNoWSM7RWV6PGFeZDxSTGFqeENRQjRvPnQwdmN1d0tQ
MTlEP0FzRlUhWF9qTk5La0AxZVBsCnpqcjwxJUw8e0U8LTVnK1B7Pjl0PSkmZXYrI2NPfE9EQXI8
U3ZQVGhLKyY4aX1IQjtWYV8+SShJJG94bXdtLV9aYwp6ez48UHZMUGk5dGM0eSh9PVpVfm0/O14r
T0clfSZYM0llTExGN0UtfEdSUTM3VDI5TXohMHhzJGdTIy12Qm55YD0KeiZYK30rQk1nRH0lPVZx
X15KLVdxfEJxLUV6NChPOT85d3R6RzU/OXNzfkBhY2tUUG1vVCUoKDBSSTV3cEwwSlReCno+MGFX
WipgaEI1Xn1vZmZsSUJQRldgR1ZRaXJhJTw1PkBsSHBfWkt3XkpsMUNPfDZPO18lUjxIMDtGIX1h
PUpSKgp6dGAjczNnVlc7RGg1fSt5M1ZKTW4pOUQ0dWlNe2VqdmdMWWBFflM2QmpHYl5wT0w+NFcq
RGJROCNDVHBXQis3KUgKemBnMm0mT3c3SnN4SmtOTEFwPVk0aWxOQT8jXyhrNjR7OEx8LTlvOCRo
OSg/TSNkN1FlQDR8WjFxQHJUZz9aO2trCnpxe3o8bC1uVGNQWlVsWkQpR1l3Yit0OXZgTzZxVWJX
UzcxWSNwXj09NiZsfj92c3hvSHBsQlRhZGFadClva25BSwp6bz92RVNKNCQwTEVlK2pJZiZtIVhN
a3xoYCVOPStgeUUqRTV0UXE1LWV+T2FJP2UkbE1OUmF8U3t4I3oydlgjQj4KentaKXJCVWlVOy1p
OEJybmVieHFYdll1RD9OWGlnNnF2aHAhRFhrYUoteTJSWmEmQ0VncCQtbFZENUF4PTRoam4jCnow
TzxjNiM/VlhsTzVGZ3pmQCk/RS19citfUkgmSX4jbERraDhzZ2NmOD1RdlM/WkRAUGxBSz1ab2JM
e0ZsXklkUQp6NUcwanJjemNne3okJHNUJG5uS0B3YmpoOF5HYUBUMmVFNGh8RG5mJUpUQkdpQkI/
Vm1melpzP2BRKXMheGJIbFIKej9FZFV2Wl9kWWxeNStSbEBVTFl9LUZ7KzQpN3A2aVpNVSp8M3pM
ZXQoT3RPcyFEcWp8M1JoUz42MkhUb1BQREopCnpHNkorfTByaHVJZkwhMmo1Sj89cTZXVERqZClq
dzRnSHUrNjI4YHdKU1JuUVVmNHRmOyF2MWhEKUx+Z1ljSER3OQp6am9MX2BhV34+XnVwRlBpPFhv
S1JzcSFFTENRPEhtSmBqSn47VT5mNFEyVmZSWkJhWnxRMX5iRjcqdH5qcGJiR2sKeiUzWDRBTz55
XyRgaEdCKS0xWVNIKlR5fFdmTGJSQUBQPGpVQm9VPVpuR3RDVUV1SDEqUllkKlM/e3BNeStCOXUj
CnpSbnAoTUl9czd4JThVO21DVVFFZHlDbTdPbXd7X2BhNCZMOSExc1VxSl8pODNDOCVQWCNxQEpR
VWRtaCVofnhtRQp6Yk99OC02b1E8fkBwUUdJQllNI3tTPXYoMWBYQDV4PiQ8bkwzVGtoRW1TblF4
UzQ4cSNhKHRgWjFacHdaTSFXRTAKeml+RnxAQD1mX3QxMjJgQSFBPyM2Vz1xUyRoQXV1S3pTVDk3
VkA8ViFxVCV6LStUUkZsY2Jwcz85MENGWUpVb3FYCnpSZGF1VHwwUnlhYSU3QExXfClYV3FyeTFC
QXNzaT9JRD8ob0RCPEBrb1RJc3glfUolN2REfDd0dHJ9KnB8MT9FWQp6Vkx8aG1VSTJJeXtpc194
LS0/PUZoTS0odHokSCVRY0FiSn50biR6PkVLaGU/bX14WllCWTs7Jk9PXkExNS1mPmQKenEhTn0o
SEhFK3d5U2c9QTA/QyhEKUwyP2FNcH1HQllZLTxIajZsJWZyOHYyRnNXZGtsSkclU1JtZ0okT1gq
TW1qCnohayhzYWkmP3ZHelElYjY3ODJ5fGUkO3BTeW00PndOSk54Vy1DNiF6TXlrVjBrZkZ0Q09J
bCghY0Jgaz9fT0FoTQp6IUlwPHheck5EKGwhWHpuenVRSGhiMHc7SnRQQXgyQlRDYiV6PzxDMlEt
QG83RnB8KXkkQnFuaUkkc19OLWt1OCMKelhUIzxfNTZ1PlNvK3BMNWdeMkJ4fDM8XkZYd0NMVjMp
VkVHOGFMWlMlJkItQ2VAdXJmbTR9fDckOTJAbmY8dE83Cnohdn5Tb2NgS2R1PE8yeWVnSCh3YEVG
XkhoQlFCVGpDPj9ESUMkU3FaQ3w4ZClNWWYwQGIwb2lWV3hGYSsjfHB3QQp6SW9zSktxbE5HbERK
bUVJOE0xV3hWS0ZzX0ZEVTRjV0ojcXlHI19heFhJLSY3ZzI7Iyg0JVAqe1ViSChnJiU7bU8Kenhu
KVUjRFFTbURVYGRsNVJKcCgrV3otPl5NMisxQ142UF9xZnUqcilEVEIhSkRsMGx6Tyo0S2JMSkMw
MDJ3amglCnoqa3trZmE8UmxTZygrI3xKdTZ3Jnl1MDU4c1g2Nm8zP05ycmJ0dCRMRzhHdnhmM2F6
SS15KWp6bjNlTlMqaj9fPQp6ZSlXJX12eSNyYXJ7IWJFUmpMXmBvOHt1VWBQOXorcjAqR19ySzxa
a0tSb0dXJjdMSnRrenhvSCE1clJtPHpxUWQKejxvcX5NQiVjSXVpdlleaHBgfUZIaU1pc0pKdXk1
NmtJUTxqP28zNjAxTikzJCl+WkxKVSYxUSptRyttO1JTVFZZCnpJI0R+LXd6MCoxJjYtfWVUJUF2
UyltfmAkSihMb3soTFlXYDJFcyV2UGJzJEBIdTwtN0JNWGwjaFZ3dmloIVFUNgp6Nl4+Z04zQzQ5
PldDYEVKSjx7TDY3IW4rLXtYJDs7Q0ZQMUNjdWBzekUtQ3dxPFFxckQlVS1zVSMjaWRiJXNHcWoK
eihnLSYqXyNQI3RyZWFEbldwZTVRT2ZaX1RFVGxyPXZTfnU2bSYodEBpdU8qMnYmJD9KMHZILXJr
KjlQSm1VMTEpCnphcHQmN2thKGteNkIxN2JmR1B1Zjtsb2A8WTdVWiUwcE47QWdWXkMrX2BoZTRP
NCVfYFFCZShWcjsqR3pOfiV+JAp6Z0xEdTkyb1QpLWAzUm0rRHVeSitCSVV+ZCRAYUsxaDFVTXRI
JXJldTg0PjNxblQ+QlcmJiRXaEF4dEg8dk57cW4KekhZPy1WQ2VMMU0+NHorKWFQITNNP0NqbSRV
SEFZPERnQzJ4YXhSP15fdiRKcTtjOGJ7eXtzfWFSckFQOEhKRjxUCnpCfHdeVUJUTSg7QkJqLUxN
QHFAdWZgPFI7Smt3cTBecm94PmB4cT97dG8kWnshQUVPJFdgQUJDanQhYW92SGpOZAp6SnRyPmEl
TDE7MGdlJExXKlEyQVlLdmVhKWtSWDJDb00qJFZ6alA3PENBK150ZWVCKyZxLSM+dV9fI058c0RU
SE8KeiolOUtpQVM0anY7UVBrYyZQVi0yNT9FXm9TRXMjVlk4STMhOTw3Szkza2opTHZ4X0VXUkcw
dTNZJUpZKHk3UWNhCnpYIUlLcjNHSXdoUERDTEdTV2w2QmBzbiFqTVlvYmR6JXNuQTFTeEp9Q3w5
blYmZEFoKChXNXV2KlpJT1ZvU35pYwp6aUdzbjJhVH1XPkZWQH1jPjE/KURAVWNraiRDeWFpZFpv
QXAwVH1kODhLSnktIT1sUjE7cj5ZQiZ3UTt6QT19dWUKekEmZzYmV3Y8aEEqJkpvYSktLWw0N0Zq
a3p3VD1hUmhSKj9gU1FobXZoSzN1bnZ4eTc0QTVAUzhGNUpPOGktR0EzCno1aiYzPyhBeV8hUFJ9
e3JOQFllJmYzIzIzSFI0OHAwR21wJEVqSSZ2PUFtSXFYPFllT2VqbmhoVzY2NXZyXklONgp6Y1F7
QHhjekp6NjAhMG4oPW5ga291UWVfb2ZKS007NlV3RURFPFglcTlWKGdzMng7TFVjaSlQTDVXcFpO
ZjV6JCkKenhDUipMMkRmMTB7X3wpWjAxX3kqMmBudVB5SzI+TWdYMFllSVQhM0cxNmpnaEVMdEAj
U2ImZmgocUFnNEA7NHFHCnpaZz0oV3g9YVdLe0dRc2k8bkFkbXIoUCM4SDM1cXFaTmpFPXhxaSZI
bXZHIXB3WCNha2RXaihiZj1tK3ZFZCEhewp6WEAxJHR2cGlYYkR8cWs7aWtWYTJCSzJDVyUrJUU4
JV85WlRPTi1sM0lsQC1DSF5nPH11NV8tdmx6N2hSYnFlMTMKentlczV5Rj1OZjtDJGNaa3QkKEdl
RVdOSzx8N3pPVlohYEBPcC0pSiE9MVdHJjMtTUhIeE9ZRE0pRXZWe1lwSmNSCnpKemk7Mmw5Jkg1
N2JVRVNCdyZGMnEwO3B2JTAzckV1cklvWUxsRWVzbkNlcH0zWXslZ05BZVVmeGJGfVpPaX5+Xgp6
MDV1NXRJS1BmZ0A9Vy0lKkFDKUhXJGlPYC1PVS04TFdANEdJczt5eE9pe0N3NHpBUUZHOyRGKVlT
I1okaClTNVMKem0weVBCMlAlc1N6bjVUNT5DMVZebi1EZ3Q5Zzl2fm9jISVoTU4qX0pBb0lFXzht
JSgqUG05KyRlTEM2KTJ1Tm1ACno4NiFpZFd5VDY3P3hYUGRCJDlJcUFBNGQtdyY7cmUrZG8tKm5K
NmVldT9fUE9mZWBwKGlHX2ZNZW4oP2haTzJWewp6Z08xfktZQDgrSyhRUzB+RnZqMndgX0lrLVdy
bk1wbnxFLVc+dUJjV2JrUSlRPT1FJndCbDxlT2R+NDlvJmE7WUoKem1xP09QSThWYz5waWZkU3Fr
a3xoUUVgMk4rWUwxNmUxfXZLJDZhZ0BCITklOWZaeEMyeyMoU2I5JlI2NWZqZ25OCnpzRnJJe2N8
NSQkTmhGeEJ1eFlDT2g+UFR6cXgpPDVDSD1AOzstN3Qke3o0dmwkMWdSIyZsQXRWS2Q0ejcpUzJL
Rwp6bl5xXzdKPzA+QWZ+a3xaMGVVaCooWn1HKl9WM2shayokQSlGNEZBRHljSWQ8OXxZcjFTQGFi
ISsrU0cyQiZCaSEKelFrWElOc3Vuc352eUtYb3FgUHEqPT9CWFZxUyRfJEJCan17KlZqMUAzUX01
bkEwQUloaGxGUnplS05eUTYrbV9qCnp7KCk8NUBHVlVmQG1zb09HJkBHWUsxSG9ESG0kXmY9STQr
fDgwZXFrTFlmOVJfeV8wZit7NSZgdDVyX0khJi1KRwp6NHB8WExwI3I8RDE1emZHbGhmOTc7O01p
YFlEdUxrNWs0R1NQKkFZYTFSdDtUZDktRmR7JnNzOVB2Til5UkwtWEwKeiFGX2JaIU15e18hXyNr
cVM1dm1BLWxsPTAyeyRIZjMzKzRAbkRXfnQkaVFyNkVpZEEyPnZ2N3E7Wl9vMVZQU3JMCnpfKkFO
KiZUblhUdSoha2ZiRFRVfiFlYmhSSWl9ZVhocWo1LWspWWFBRjFYUllMPDJAUzxuYGl4e3w4a0dH
dEJnPwp6ZjZDZ2RedEVLOD94TnxudFB1I3NBdypHdTAxJWpWKFB3THpsKDBkOWlDdkVfdEQwJGsk
MztQdCRnQ2JuJj9xUnAKenY0Rz9PZEpvRkdNKjBHcnhFQnFYbEsjR351cihYcjtXLTM/Zl4kQ3N1
U19YcTFITVo5V35sdk5PPWxTdk43SHJkCnohNm1xYlY4TEMyeUF1S2czbEo9ajtPXzEmMHxiSip5
U3V4KXlTcD5FTHg4WEl5eXcpIy18MV9ueH5qVk8rSDJqXgp6ekR7aF4zSHxsWHEyKVdPRTU3NjBm
ZDhzallQKlZNI2FpYkpncXJjWnd4MG5EQmpDMWUoKCsxJVFLa2RoXkpvXlkKej1ZcX59KU5JeDhk
N3QwO2Z5QCpVdnFpLX5EeWh3ej9RY3NZZStRYz5NfnNERng9QURTcT5CQHxkaXkpK0slTSU9CnpG
UWJ9WTk7WUAkQnp8V1hSI2E0fEdYbXhpN0dgRU42aD8oYClmbWRFZGIzazhleUZkQXE/KiFQeGww
Q3ImLVRpLQp6QEwqNkdIJllYMVY8Wk43PmZ6KG9ncUFPb1cmemhqakM4VSt0WTR7MjJuaGoqWFZ7
cSZ2QUk2MntAIyUjcX1fdkkKejdsLV9sNmUocTRFaWBOJUE0TWBQbkZ4OEFeTlkrS1ZGbntBWVE9
cUdpcmNuNzliUTtQeVVXOGl5TTdFN0pKUGVICnp7PWolT2d9U21CJlcjMl9VZmxGVSQ3fDdMU3hi
QzYxLSl4fVg/eDZYRW1UPjxJS1M8fjNAeiVJcW41dk1Md2cwdgp6RFFUNWRUKWpib3VvfCRVOTZD
T1FaMX4jdD1pNXgmODhfQCYoO1YmRmR9SmQ8bWg5WXRuJXpafVJLSjsxaGcwMzEKejBGJkdsaG57
aUdRZz9nPGNnd2hLMm8oaTBaYkdHU3llRD9iZD93NlApXlQhNndlOTl6JT16eWAqVkdvZ2ZLSjhM
CnomUEhaYSFjQDNXLUt8d19UaWVvKGoqZzBvYkRxd1Q3RF5aeG4zPFV3PDViKUpDRjJhd3I9dFN2
ckR7Vm5HcWFKSwp6IVQ2JGZ4Z0EwNW9Ib0dxXkBxe2dRU34+ant0Xz4xNUQ+ZTwzV2MkSzlDUz5g
MFJtPF9FeCF4QTB2O01RJUxQYjsKekJCbmtKOWI3LSZ6bDZUKUJCLUtfQDU4e3lgX2V0eVpkMzdN
cEB1aTdyTjc0e093N1daSzViKSFkZzEyb3smdkZPCnpqTmwmNXsrRVl7WShQU1k3Y3p0RCl2MDl+
aTBwTks5XmNgM1U9UTxVN2VsZUlDJVUqJj1FJmJwV2oqJmlkaTFUIQp6eD1DK1NzZ2c5RjNZZmkh
Qj53Rjk+e3dkUl4kK2lMNkF0O2FFQXh5OGp0VEMqI2E+KFMhWGFpbmNfaH00MkhzQzsKemR2Pmxh
RSlPUWk7JENFOV9PR0ZFYmt1QVglSnVFTGE+UH49RHd6fjJ6UG8zeWNgK0g9T1Azd0tgWm57bXgh
KGg4CnpwfTMkSHB4RmlaKmV+az1CTkxFMCNXd0F8UHozekd7Nkh1WmgtdUVxXlBmVSRDV1ApKz9J
KFdKTUhTaGpHWGA/eQp6YWNwdEthVHZ4XypRNjdWaEpabSYzT3F9NVpVUl9yWG9rMyNrKEZhcDh1
JnFOKmZFekM/Sj4kdWo2dUJeMXJmXjcKekJPO0oldHJFSXVsKV5ScHVodmdoY2xzXnpvWnR0NGJL
cEMtb3pJSlE4Zll4Q1YjaTxgRk1oQl5Zd1kwO19kYFU2CnpqZ3U2KTZASztGOEA2VDxYeUtgckJ3
WmQjY1hiVSFnQSpUTTtlQTMjNyYzc1REVlA/MUdDYihqc0RoNUNHR3R8cAp6NEByfiYhRj48dFQw
ajIje0kqTX0lSDZuRHtMPEdFRGxNbCsqb35TTVohOzxkZGMxJHREYzIkYTY0VjMpZThhQWwKekt1
U1FeWjVlWHBFZnFuQiVlSlhrV29jYHY4eSVzVDAqJkkzVXAyRyg7IWFafDh2X1p9e3M+UFUob2Ay
OXtlMnAqCnpreTwyXnIwSFRJdFp5MyNLPzZSP2tjPkFsZXZxekUjPVVFSFM2M0c+blpOQFM3PCox
akFKYDxQNkpydm03ZTcheQp6JS1fZ0NpfUxKciMpNXtJKHZHMitQYC0wSmNTS0tEQnRGb0g3bH1l
O3pAfnAme0xePSEoNVRKYCl8RjBEJlc7XzcKeiM7OEhlMFQ7azFYe2ZtR3ROeSZ0eGppWlcoU2NS
JE16NiheRmspPHhAe3JlMUtzcCleQitJWDFWc3t6JlM5RDRHCno9OVhMfWE3anNEbSVnMDUrNFZ0
YyFZQiRjYVpNWnh7WkB7NlpmV2ZxN3h1MEQ0JFhmcHlncVUoTEM1IWdEKEZRRAp6QSopMVQ5MkR3
e2hQc19ILXhzPHFpaXkpdGU7ZDBXNWdXLWZqY0g8QEg4NWt4NTkqJDE2PFYmJj4qKCtYVWZxc3IK
eiRQXnFUV2VWRU5aVTFWPVYmcldydV83KDFUUUN7fmhKVGRBTH4qb1QyLWEqN2EtV1hnYjhhUUhB
WEdCQFVab3ZWCnppPEZOOSpfO35qUl5FRkNVWnApKmByUUp+JTtxIyVxMVpLPzt3XntncDxCPjQ7
SWZyOCF3Iyo1NkA2bUhIdmVRfAp6QFJkYkBPN2AlPkYtUnA0Rj9sPktncWN4I2ZKaGB6aEQ0MGVn
KVc4U2B2cClzckQ3Q05kTVNfOyF5NGsmJUkqWWoKekcoMj4/Ql9IS303Z2x7ZVJYKW4kUGUrck9f
ZSZtT1BKTmktdTF9P14/fVpIVno3WS1QQDFwUGBsbmB+YVhLXkFiCnpubS07VUJ6c0B7ZDUqcVdE
cTB9Km5KeUhSIX1KNHheM0N3WHdJZTVuaXBvalFLPGxYbGUqY0JCY2t5an5MWmJ2OQp6UGpAUFlZ
ZUdPVCE7fitxJmllSmp5TT4/Yit4Vkk8aSF7Kl9ZZkBhTXl2MGJJZ1BhO3p7ZU4zbiZ7XjZWOHlj
S30Kem1rc0Z4dWs/TihfSkVKQ2M8Xj5NSlh4WUc4O2gqTDhqQEpRU2x7U1NNfT4kZnZlJDh+VG40
a2poWk5rXigqZzZZCnowYzVLYkgoeVEzRE9LRF9DKmJ0Uih6aURRPFJ5U2lHYXg5O15IWEleSyRg
e3J2e2NaKzYlcylBJT05QjJnbCFQawp6ZFlhZTFqWSZiRD05P0FHYmxmRHFpJEtSQkdyK1YldH1Z
ZkcpQnBLWk5Wd1V1PHQ2TndHcz9VVlcoUSVPKyR5eV4KemMrQmo+SCsmekU3KjYwMyFtSXdCPEdH
b35PRUxDWiglV2tpdjJoMW9UMXdvamthLSNTQFY/e2lNV018clpPckpvCnpnJWxhQCUkKTstQ3hO
K3pyY2Z8UUZFP0x8aTBEQWc3VGRwdWFGbzFxSmQ/OSFeSl5jK1V5OHcyJkJId0sxSE54YQp6OGs5
TT42Zj5vZzlhMEwwKiZtQj5TXngwVCo0RmxBPWQqY1A0eX15QmhOfHtyNyZAYGVvYkpRWDEkVntY
SSZQLVYKekdsY3RMUmp6NGxYMjcje1VpYztPKiFtVDwmbzsmNmI3T3p+QFUrcUItJHtuLTF1WHlA
XlV0Kz9kM217JGg7WiRZCno2NHZ4Pz8xfn5PWm1vTVVPWEdnRjFOeDl0ODs0eCVWUjFuMlpLVjR1
ZjlEPzQ+NktVRFZQSkRgS0RQPX5XQHk2Vgp6RTROaU87I0lZN3t8KHNSYChyNnpHQlRZVGd1YUJl
VD01cXZgNT9jMSp4QGNLTzwkQ3U1VklNMShWfWFhO1pFYWQKeklHa3ZJekRNUStWZXVhKmspREJf
RCZMeTQyRyFjRnVnIXRqYEpZei1NVlVhfExPMXNWeDd5fntiVG98eW5xZFBuCnpENy1DcytLJUhf
K0RNUllSPVU/d15aWGRNSntANjFfO3l2UWh8YEFiPjR2YzlDWEpXIzwzPjUtJWlTTTE7aXZJTQp6
Tz5aZyUxYWREZXMrNiVpWEs1aj1NKDswIXk8bD9sVyhhWklqeXolRUx7MEhgPFRLVEc/WFBKQDc3
JmVAckI4fGwKelNRNzBuOyZKTU9RRjJ8bXo0TWhKTCR4OGxEK31IWiMkdHtTTVNCcmVsNFBqYEo8
VTBQYG5saDtmaFp6TEtWfUMtCnpxRDZkNG9jSmw7bWh8YFdmTW5wTyk/PiQ7YHBjVjtSR0hJZ2BM
TEZ1OGtNUTlneiQ2ekEjUT55ZUhfM25rZHVgcQp6QCs3X1A0VjNzK3RKcWslbU9SRUp1c3pfbVJE
eXY0JlF4JTRFIUokaSRGQmRCLX0xK3A+fCpuSUdmTm4xJEFiN2MKelkqTiRqUEpsQWZ7VS1YSnFo
O2RjPFljQVFfNC1uRCVUfUVeeTJSU0xrSXJxcl9QWlYmTkpMaXd3KWgodnNtRm9QCnozVjBATExW
JWEmcylPVksjSCNWVyNweT5mLVpEeSsyKVR9Y0lvMF5vSFgtIy0/a1FtPlN2b1RCOzt6OTlGfVRh
MQp6WEN4bitATFpXZmFZYU5nbDN4OyRhNCRTVyhDMHM3Sk0yN24qbmRebUFhdiRwbX1ub2xPPXBP
RzlUXmg1dVd6Pi0Kem9Cc0lMQHdvOTZ3eWI3bCZjWmRFQGkke0VZQCRON3E8ISFGZ05UOVUxYzJV
WE40fC19SktIRUspN30laGh0NEJACnpmaiRHekpEYVJiSG1GY14hP2NYbklkak9rRSgqbCs4PEpp
PG8mYVlZQVlITEYjbSoka3JmQWF9MWYrSD5tbmxDMQp6X25ebGM9V34qNXpoem9eSmllN0BCMmdx
KCNtYn5+bWBsRzA5SH54NEd0Pkh8OyQ2MUFVeWhOc0c+TUROKjF9dW0Kek9Ue2xJK2Z9MXRXVk5P
NVh9I2ltbn1YLWE2OVF3O3E9MnVVaE9JYSE3SH05UCRyQDM0LSZPbD51V0lYa0NVVm14Cno2P1Uj
MiN0aX52NWswVXFJQiQwe2VCd0UtP2ktZX44OT90enBBZURCaFlGYE1WRz9uTkQmOEFJJnYrdiZI
KmM8fQp6dW07RT9kVjFUNU1lcXVwJEtnKyZmOU5EZ14+aiYocjNnWTEhRzdQKm17Zzl0KCQ0TT5Q
Nz4xN0NYNXdtaG59aGkKemd4OzNjR1ZEKFMpYnRWP0RuJTtBNmUmelReYGMwTTtQfCViVURDaFQ8
NFIkSFpQSlBxYlIheHZWRWU+WiY3Oyg3Cnp6MHNxSjd9IV9paFVfVFMlM29EcUkqZ09gaFgkMDMq
fV9pfVFQSkF8YyVFVWNlT2RQcV5rWH40STteNkY+YjFYTgp6V3V2a0RHREJfbF5eU3QhP1ptJiVg
JGNjWm9WKDVtQGB0IyNDUl54QWM7QyVebn08MTA9SD14RE5iRjI+Mi11dFgKekJvVCk5MTY5amV5
WjFkIWRwWV96ZzNMMStiRCZJKTU8YVg8YUFEbXYqfENVZ0dhVmUqRk1TTipxVjtyJnpvWHpGCnpu
dGVnTCN3Z0ZxPiMjJDMrTT0/Q2F5JH4pTGAmNFdTUVJBWC1DYEkwWVF8cE1YfnRHLSY5e2pMNGdq
M1UleUEtSgp6KDduU209a0hGei0xdWplPzZgP29VMEQzQVA9UCllb2tJdTMyJHtFQVpFZkw4fEU8
TnZuWFVtKGJQbk8kejQ8VFkKem8wNTclXkAtLSlqc3Uqd0xrdHNzJmFHc19kbWJiUDl2KilzM1Yy
b0RTR1RzZHk1RkQwZUpMbVFJeXxxZ2AhSml5CnpWVFFeRkJafXErX34yMDNHUXw7TjUweVRUeVps
K2R2NSktVnclcD1QMGVRZyh7dVdpUnE+bVQxO19zaylJVHlKdgp6cDlKO0syTXlTT2lCVlFvMjU9
TXdTZlVjVW9uMX04OSFfZktATlJJcj9Gd0MtN1kpPm5KM3xxaHpkcFNGSSY5Z2oKei03IzJ5ZzB6
PmMrbiU7JDRKaklgOHg+O2JMY15NOG9BYGpwI05AQDF2YSZPWUBVSFQqeC1VJGVEcD9OY3F7Xm9Y
Cnp3UnMlWXBQOFRjRUZ4VyMtYGsoQngzeVJ8Q2tiNyF1R1liN1Z0al84NCotMTxMQlNPN1IyMjJX
aGxVNWd1NChIRgp6b2cjdUF2UG0lRVMhSEQ8d2sxJWlhaXgmN2cpSDh0Q2ktQXJAe34rSEpVazJ4
M0BrcnhmN3tQYVlNTF99OHkkdEwKenc+YDZPZlVVaTBnTUhGSWgkO0dMbnVoWiFpWHpmMEArczBR
YFlJOGA7Y2VLUndQO053TjM2VEs/aW1gdFhXdyE9CnpPX3Y7THppbVRyTkpibF5rUSF5QzF8U2lZ
Y3VkdTttKjFDbUskdComU2hLOSZgfFkqT3tobXdzbiMheztlNmIkKwp6dnBFVkIxIVBrU2pHcjl9
RD10WTReeCluYnsmSlB4fEk2PDlPVzI1PXdBJlZQMlQ/ZTBXcUJERkpSO3RSaT89bnYKeiZXeylB
dkd2IXNLaGIlYlNLRXZ+MHgoJj8wUTdoYzRoTzZQLWM8V0tQME4zIV54WXxnJntiNXtLKVlYbUE8
OGtMCnpnQVg1IUYxI1AzZ2ElP1llZ0dEey0lPV97OCo8UmtGem98ekJhak43UFp3dWE4K04/NFp5
O2YmOCMpaDZ5ZH5pXwp6TDJXIX5RNGJLYCl1d3BNKEB0Y0AzaiskQm90KyheQnF+VX1oNlZ3fj0h
RWk+bXdQb0YjWHtgMz1jVkJCVHgjZUMKemhUflQzVEBlWWRUVyNRbEUmcDdkI1pscDhiQ3piQHVo
YGN4ME4wUCZle1ZveHhPNW1+N1FpU2JEbyNRTTRUM19MCnpHP0g/dV59aDBNLUBEKU4rRTAxY15q
OEAtSipqRVE7JXVZQ2B+R1pnJT08Tjx7Zll8e3Z9UzYxSnIpVjIyZmBxUwp6NH1QZ1FrR2h9OUhR
eD8+eXxyT1A+LTU4aWBsPUgrNlZ8fTdleU1xT2NFX0IxVjY1M2Y8OGxNWFdGI01MVX1hP20Kej80
KlgobncjNGN3aF8pZTJPMzx6TGpKWkFKezRXQ09iIX5+JmsoV0d5IVJAPl98KmtpdF4zKkNkQipZ
TSR3RW8yCno8OWNLM1BhLT8tN01SenI2fnBBe3h0I0xsbjAydylIS04zODxIZkYkNk82c2lmK3pV
VUZmYG9sP0N0SEArMWFvRQp6b08xblkqN1FGNGBDV2xpRk95T2MtIzJzOzF+fnx2cjhBZnIqRGFE
SWNfOS1pbChtfmslJlhmJl5zWktGY3s5MS0KelB5SGBqPF92Y3VvWDxjVjF9c1ZraGd0TiYpWVRn
KCUqUX47TW57TCtNTzFwKnVmcjgqfExUelclcj9Tay0ldEwhCnpeWmU4cDU/QkcqJjtjUylecGhw
ME8xKyhFUWozMEgkdCo+KjAmN3cybSlQJWJUODs4dG9OendKJHJ1N3gxeVg8bwp6MTsjR3t2RlRu
X0g4bk1GY1gzRyE5bTtuLVU/SntwSXtXWVY0KUMqVFRWaGhGKnFBT1NkcjJEKVFCZ1ZmdVhsQXUK
ejE7VGRhREhUMXtMQ085U0s0e0xhN20/Pk1DN3lFNElwaT1QNXc+fjMlajwtPFFTKkczZChSaE9j
X18/NDR+KDhWCnp4alEqSTBjLUprcWJYZC05ZTFeNXp+MHF1ODUjQmhPPV98V2JGen1wV1QjRzdI
NGdWZkZBQGU9elkwYVoqTWh7UAp6PDAkWCEjJlhIUk5rXnlDb2BOVzx6Z3hkSkd6YHBZPG0mNEIt
QDJhQWRMaDB+ZCVvJX1YX3V0QUMjRDRpSXUjNkIKejshTDB5M2FBUnskaz8lRzRpSGx+WjFGQUVs
YENWYjtXWEJgKCtaLTQrVjBpckhzZGNSPDZrczRuc1pidT8zYk9rCnp2QThVJkVzZTJra3ohN0Fl
Y0tZNXB+KmVvUE82MShVV2BkVGYqKmNGPCh0LU5ybHE5YHg/SmN1VDgqIX01VXhNQAp6Y299cilw
KHE5LVdfMz9+O3IxY1JoRFlSVUR3Rj56XmUhNVYlaDhQX0dvNURzdnl3ezRtezM3TUB8eX1IcDFa
cXkKemE4TUE/VDIycjNKPyN4bzNUSV90VV9kfThObGk8JFdJQUlTX2JoUWY8TF9IJGhSWU5+QiVq
MkQ9UzN0KFdXJGdFCnpQRzR2aVo+cXpCN1VEPTRIWFojPmJYLTtFQjReJEhrSnA0dE4zQH1VTyRO
fVpDbnBzRmZNQXVuSztKU2dgUS0xVwp6PD1pOzxGX3lhZmlCWnArayNUJkBrd1lsWnU/UFpHRitm
V1pTME08NWxUcl9tOFhXcE1mJUZEWjh+QWZJPl55Z2AKemVZdlVUcGlSOG0ob3dKRlpafEZNVFZT
UyFzJHcmQjtrcVBTNTdkJTNIQF9ueSg5cUM/SmZYfV9gJkspPS1ANXp9CnolKCp4RTdkR2dmMT9a
PFFvaVRjUWFfOztENXU1ITxPRSZpPilTPmhNUH5rUV5IRHFNbUB4V1FXOHFrdWFyb05xdgp6az1U
TVpaRU5SdzR2dWYxQVB8VHo0MXlFbj1oT1V9JVVoMHl0X1clJi13c0QxTT1ffUdqZXdUZTJOfWw8
QzAxK30Keml1VXYhQDZSWExJPWB3ZTh4UFdDcUVOfV9vVUhaQU5hWkd9SyZUK21maHt7cWlELU4p
bnBVbFhIdjZPV0M1SCklCno9NFR4T25yJG9AWWBnd1l4eTU+SW5uPjFlU1crTFFRQmo0QGtfZnM2
QjVvc1dZJTElKEEhK01CeFYkeFEpdTUpVAp6eF9AeCt7ezghdFRlb1dLQWQ8RGJrRT9saUVYUSRA
ayY3U3xRaFpWfkRqflQ1S095dUhXREE4UUckKlBia31FVSUKelBJQFpBeCZYbGUyTn1UM2Q4UEtV
ZHpMakVDYGdwNG4hQ0MjdkUpdmZoJlVRJi1QeCQhY0ltbE9BSDtMOzwldEFtCnpRWWV6K1hHYUwr
c01Fa34lekg4a0hZVHBNVl58YlBycXJUVUZPfmlwP0NrVk8kb2xtTXMqbDIrTy17M1hYNUY+SAp6
eG9lRFpJUyMmSiozPnBCbmFQZVdpcSUzbmF2VV5aY0FsVWx4fHdEfEVTYyR1UTc5a3A2OV5YViY5
aSRseTdrPmkKelg1N3VyPkRtSlpGfjhJM18mQ1kwMSEpWGVwYVRpKVBBP2IleTM0KG9fUVd3R2Rv
TTM5VjNWNGY3RkMleXY+a3t4CnpBN0p1VUJIcT9wMy17Q3dCT29KZ1o+YX1DQDFfMn0+SGQoaUhf
RyUkMFJNQjtmaWJ7e2Z9RWNOIWh5b0UqIUpiXgp6IVEqN1VXKkdeT2pTZ19CaDQhYVleckIhVk56
PjREaTx9PG8lLVUldm9sTW0hKnQkRGtebFkpVyYrYlR1LStyUlAKemIpNSo5Pj91IzsheW1INTt4
bVN2VFZkO3dReUx2NHJiVXQmbXBLQFQ+OUhYeChfNlNSdXVUclV0ZyYmQ2RnNFpPCnpjWEc9fWU0
Q3d7YGAye19iUDtUOEM3YmNPbH5jRjJjSG12NndOPE5QQSU+RSpmNit+UnxHak5kYWtBVzs+Pzko
egp6NHNoZGIkUTB0KFpYSW1abWZvKjs7K0ZuRCMrO1BgYXVkbmJoPVA2Y1c4a2I9VTBocm9Ga087
NG07K1U7QFg+cDsKek5uXj0qZ0xDMnd2cnQqa1BSb1lLa19sTEFHaVhtcllufjVjcD8ldzE/PTtr
aU4qZi1kS0Qxbz52XmxGP0VzN0BLCnpsaEtTTFZlPDRxMX52MiFlMTJRdz0tRzlTTnxifnlkTkJt
P3tyLWQpaFpjdWNpIVBBMik4fClOJEh3WFJfOF49ZQp6OFZGJTtDJSQjX3c2JGZHbzdzVUdgLUpp
fVorZmF7ME1wQWJYRyZkRFEmVVN6PnAhazJiO1JsVjNrTiZQKk82KTIKelBXKHpyJTFqVWk+YkhQ
Q2ZqajNPOWJ1SCk2SXZpJEEyWU9qe1YwPCt6M158Uyhaezc1Rj5IciRKbnxpQW1kI0kzCnpQcF9g
N2M2V0VMaXRXNT1Vcm08VklES1B4T2grQEBxZjVZbW5UMEF3MTMjMjJScVRVSCMxaGtCQTtybDF4
P3spUAp6Q30zaThIKGc5IVlQYEUmWCUxaj1DN3FSeHdCSSoqcDExXnVAJDFaIW4kS3h6TGsyKV9r
VTQ8PzJmMHRMTzhwLSUKekJkdTN9M04hQj8kUmNJVEN9K3hxZ1clTU9VcnQjYzE9QlVeU2wqYz5g
QEhLP1opQ30welFadzNzWXNtPjQ8TGJjCnoqQGorNjFQaU5uTGB2cHRFIWcjbkBmbDlkMG9iS2hL
TEBVcStsQkAkVyp7OHFBKFN5QHc3fkticlA9ZntidSpySgp6cXxIQ0FuaTNPR21UX1c3JTxOSzRE
RkduQCRIfWpVQ35BUU00a1pIYyVhbG9GMHlUPjt7MXhHUnI/WmdCYWJYTU4Kemx0M3VFQStQR0NU
Vj5ifTZYelJPSDxuUTNWaUd7V2NePlBzO2lpJD5DcGNRUTxhQDx9ZDdXbjRQd1IlMlNEaGEjCnoh
TkZvcEp0V3p9QWJ7XnVxeWktSD1vM1opI2tNe3V1bkJaWUx0ejM7NUNzPW9UVSVmK09fQE00eko2
U1NgOXFBagp6cFRNYVJFQmBLODZWKUUkbzNqQU1XRzBUQDdYdCtZJVZrNSRQVE0te0tJTVJ6aVB5
P2N1QjwjfFRDQiEweXpId2YKelh0Jjh7KiRqS09hYDA7fldgRypseHdWSXdPPyYxMmJUZXUrOzMq
Q3NCci1CaCZObj95d0k2P0V6VHp4JStIaz1sCnpIa3UlSjUtOEh3RTBkZDxefWFQSyVOdzg2RUZp
V1dkKig1R3IlXmdwY2kren5vWFJ7O0U4VXdQVGZkYU0lTlhTZAp6VlhQRi0pWj0wQGpGQk5iOD5a
PSNqWWhKLVFOKStaVG9pVzJ0NVppVz88bEYobm04ODhuVUBLcTR+KyNMdnc5ZmgKelcocntncWhn
R1pSTm9QMSNNaGV6dF9sWD5NYDtmfkY5ZDM3dGJ3WH5oQlNMfm55ektue1dmJU9sIXFAemhRQX5C
Cno7a3NoanRhaF97VFc7Mnw/PX5CaHpUU14qYE1QUXE3eGZpZV4mQFdRUkg1YUEzZ3lGMiU7TFgq
NiFgK3BIT2g5Swp6Y0x7S0M/OC18XyFnJVFvOG50USNLbVFuU0B4YzQ1dC1kbiQ9Jj4jeSlXRXNQ
YjZZe25VZVFEYkZofFhvLT1GdnoKem8+WENVSlZ2TzRLVSh0fXpCQkZyZCZ8Rn53dVZiMVNzSytT
WEIjRmIjI0x2NWxFaV5CRCZnJXxTO0RKanMpfXJjCnpURzNXQ2thR1dWaHd8fCVlOVE5PlVhUyY1
Oy0/RXZVcXVBV1cwMHJUU2hvYXVafTBkcCVkNWBUeigoX3QjPHZOZgp6Q3tMRk0/Mzs9KkAxTiVB
USg7M1NDO1dhaSZQRyUyLURScEpRemtDTCNZK30kIW8mRDJtRTg9RXJaa0s0UmskVGkKenpsJVA5
OW5LQnJge15ncmpnY2Mje2I5KE1EamBhP3crWkVkVTJGNmtEXjJqcF8oUiYoQUU2OUlTeyZwQDUy
MXQrCnpMJChpcD1vRDBmKkREVy0qOGJYREM4Wj9LPHd3VGslN3MoWUZ0SnItUVI9MlI+PTdFdkdS
bVhReldaPkFQJGFDbQp6RmxyckFIQDQjKFhrUntNMC1YQm1IZVgmd0h0NjRGTXNPNjF6LTcldDlm
fH5GVzx6VmhWM0wwWVUwbikpTkp9U2oKelZPRCQ7SlBBN0tWJXZQN0oocVlTNS1waiNUMzNtdG9Z
KHZsX0Y0aWlPfHU5X0ZmfWgmQzZJbHA5SjVBNENvKnBfCnpVPXFgPyYqaz5uMntlZTwlfnt+RVRH
TEpKYChSYnFfJXA5QGswLT0oNzQ3QFVeYkRGNlZOdTFOZ1Fvens4dn1AXgp6OCg2UXV3UFRwQ1J4
RnIySChUKHxKUCRWdSVFd3NMYSE2K2pJaTBSMyRjaSYtJF5zWDhiKm0rcmREVUphWjNQd0IKensk
MUIyXkwteiR2QUsyZUB4bmZuU0k8OTVqck4ycE9nKn0rQVN7dzdxUF5YNTQpVXllTUQqPFJWUn49
ek10QG5YCnp5c2d2PmR3dSRQPnB1Y3BmPj5RR1g0PDI7VG4hfTd5WlQxdEdubj9qUzFyeH45VWI2
d3tBVyE5MzM+PjtkXzQ7Ywp6X24/cHolSl9KXl9NRVh7Z01ROVQzKENXUmZ5elYlRFowPEsmLUsh
NUlIM3paRXZ7LTU3XlhpRE1JQklxaTdxNG0KeihxMyQ3bjE3NVRDZWYrTFEmXzBnblQ9VnhydCtg
VXI1UVA5ZGZISj9FM3kxV0s1dGh0SGlzKWlTUUtgV0tpOH0/Cnp2ZjgoelI9czJhR15xdiQhUk55
eE1sfU5qSiNLMDl3NG5lT2EwMkp2XllXPmA7aFkoITU9fE4tNWFUd0JPUyQ2cgp6ZXlOdTJESjFg
TC04az8wdGBDbTxpd29fIz9WPH1lN3NPPGc/e1A8QUEpYihrKSZefWtndV5WQTFFc0k3Y0IpbHAK
ejx1NnNpb0o/TnpkSHkrJjYheXM2UTZFRkVjUV5CTUhvU01oUDNYOGZNVyRCYClqJmp3diE9TkpM
Vl5UWnlSSXghCnpFbTJAdVlKZWdLTmFocHlGRTRTb08kM0g4cShRVGFJaWp7YmprIUA9bikpd3VV
bG1GSzc4MFAqMGt7TzlRMztVNQp6ME1JWD4hMj0hO15JQzR+RzApY141KDUjTyQ/WUspKWVtbFBR
VEhVaFpSfXFNaEZTaTE7ZXRVY2s0KD0yY3x5Mk4KenNuVl4rRj0+Q1Q9KkM3V1gwS0RZdSVFS19a
Zi0hWksyX3A9OUBgJlledWtqI3ZobEhFWjhuZGlIMlMlZUUrWSFXCnplKENKfGVQV1IkVntvX2tU
X0BMNzZ5Y29+JElrQXJhd35jPTlveld1Qz9vJXcjWSlvXzRxaXs/Rzl+MlQ7OXdlUgp6WUkkWnFt
bDtpRzs5Sllkd2U4Z1Q4KFljXjdMNS1ZM15jTTIoT0tFQDB3SmlPRkF5I2ZnQn51M01zMH18QVFr
JWkKekk2e2JlU3lMODY8YzZybD9uO2xHMEgqcmtwXjFYUjFZaDFfP0wxSlUwWlB7VTRiez44ZlRh
b2ooJH1oalRtNFklCno2dmBvWnUqRzdLLX5wdGhxMFQyejlvKSsmanFUS3JsbjJxbXhzPUt7SjJ8
Oy1yOTY0Q3FXI1hDUHsxd01gYX0tUgp6VGVgWGZMckFUd1lxWEpIYE09MzBiMnFXKFlZLSNkQ0wm
fiprS3w8Qk87bmR+VzJqZGpiUy1NV0VpV0BHVn44NkAKelohSCFeNmw0dSV4ZiFOTXomOTdEeyUh
eyYwYm4lS0o+Nn05eEtATk87QDwhK2UpemtaMWpTS1g8XitEanpgMEstCnorek5NaGp5dUpBIzEy
eGtObENOYGQqS0hGZTRnK3d3VDc2VFBKX0EhNXxGQjFrQHpsdnZ+YVF9SDNLPzNwQStDdQp6X3JR
Pyg5TG9rZVZVZVNCd3JOKytsUlJlRWc9M3VxS2hva3tebE9BRDJDZjR+MVJzR1p2WjRtXi1fQFFY
Y1dKLU8KejF9cT04Y0NuZU0yQWJtfEpIZnMxcUEqbTlyT0pjIXhzLUI+cWZERFJVaCg8SClPZG08
V3NmVzhke05HNz9MQWw+Cnp0bkV1TyFxMlc3aDhfUSNnKjwlMURVRU4jSEItPWJHKzd+cXBKcHYl
ZWlXeERtKlF7eT1DOUVuTWU5WVgxZ3tCNgp6ciNvK2RNazZRV2pZNCVGKkhBbCl3NXFOWDZIMSpU
aEBJIWRQOz9nVFBXUU5vKXQ+RyQjNSh1cThHdE08clh3ci0KejJ9LXh6e0c1KXgxcDQ9KHIzVm1K
UmdERUl8Rz0qNShQcGYxKjk+NDQxfEl0M1AwSUZ5P2chSS14T2xwe0JObHhjCnopcXdSPGp5VkI5
SGpFcHZ2MFZOQ3NWbSNAe2J4Uj1rcjsqRFpaaFI4Qm4zTzw7Q2pBM25NRzM7PzdPd1EqPmxQVAp6
NT4+SHBEO1puLXNeR1c4MHMjNUlWaFp6a3ZJMUB4cXskPjlIM199V0BNS1piUi1WWGwoTU9UNE92
RHRvY3RRKT8KeiF9KSVnJklDN0hgRXxQQ1dMSTVsOCZoSmk/ZVF2Q296ZCtuOGRhP0h6YlFAcUV8
Wmp5I3ghMUkhWi01ensqZS1fCnpCeSZQNHFTQTRIQU1YRHl7QzUySi0jckBSNXtBKSNWdHVaYD13
MVMpem80JkxnTWpUK19QQGBnQDt+QnpvQCk4Xgp6T1ZZdWh0YTJ5ZkYhb3dCVCNYVzBZfGY8VSpV
Ui0xJXlycHFPRWsteE81MSlze0QlPjBCVipaVXN9eTtiPCtKOU4KejdKJX50N318bWV0TipQYkVz
bkM9MmI7WlRtV0tJSCpzUGNfKndxa31uQ3M7UD10OG03aXRVTk5RKGM1LVN7bXJ5Cnp5Q2RBKy07
UV4jTztAVCtXMjd5eHstOUJCKypkYmhHNS1rPE1AMiFnJFc+fEUzaUVJPj19QXY5RG9hYUJkT1V4
Iwp6LWYodDRCRTFPaDBCaDNXYGJeODFpPEhIUjwqQUY5ZCtkeHsyfHZjYWNCUk1rQiZGdjVvbHMt
O0khaVh3WUc0bE0KendNPWcwVTAhJSNzaiFIYj0+dmVuMEcke3BXLVNnc1RsZkhzVTF2RTdnN0Uk
YlYqWlZ7dG05Vj07czxFKGApeylWCnpVeC1ncCMkRHZ7JCN7dlZeKWohb3AqYEUoP0JSaHBWRF9y
Y25kXjF1SUlpdF55NEdeM20pVVp1KFEhV2g9e3xKPgp6dSZAQkMqcEdVUHF4MThQT3l1PXtpPmpP
dWxabEIqQGFCVFRgI1IrQT84U0hmQEM3cHU9TlJOS1ZwPyVWbHNWMCgKelNTVnRTQ0AkY3N5bmw1
cVE9bmoyNVJAYjlxNXxhfWVLcWI2aDwlcFlfQ01fM05+UUpmTEpTRjhvV2hEO2hPZ0RlCnopOCZD
fkY8PWhAWGQzV0UkTiFGK1lyNFh1NDFoP2RLaFdYWDxhSHBmMFROfjUmKkx4KXIma2R6dGQrI2dN
cG50Sgp6Uml5XzYwMWtNOW1KenBTMl9weTZXNGE8Y0dUT2NHVC1fb0pNcGN5SWkzQ2hQT1BpOGh1
UkhhSj84MFMtc21ZOXEKel5YVCRlUzZze3JGUTtwWUorOy1ENjl4dGJ7JmZsNi0ydzlQemxIbH4o
NFFDPjdedk9pPGF1JXpTWWpRbllETkh4Cno2JSl5ZW1CaF5pM1l8fXJnKXFJS0l5RzdgVnA0aWdw
cDM3V05NTClVQTF4M0ZeWkczaE5LQUhPNXJkaitLcXJJdwp6dzR8MUtSZHRPYDU5bCloMDAtYSkw
PmthMXNVMmpvNkpmRHZ6eC1jfF5NWilIS3lGO2lgXihBTW0rSEFAWGVjQmMKemBhcW5AWCVvJnU1
alpJTmFLTCg8c3B6PThKOVY4Q2lkWmI0cSVJLVFNQ09oeFMjNk5VTCRUZURAU3tMc3cmNkQ9Cnpr
UkJmcTFrYEZrc3tUKlIqUUpQUS1VPE9gNjhLakRLcEUhYmJocHslfDFSdlN2IUx3OFQ4e0lDIzMr
YigkfCMmcQp6Qm9DO081RFZqYGVGIWktZX0lamU5WUl7K0c0RThVYl8wK0NucD51aXcmckpiKyQm
U01LTFAxK3o+RFBYPysrQikKemR2PzVgKntFdihaeCVUSThkJlk0REZIPHZzSmVBXnZzNm9uKXVy
eDtXN2lPRlNDIVBRPjduMyFwayspMDN0eElrCnokY08yIzZUIX5udXMlPXt6QnFSRTllUj9fR2hK
czZuY0o7ZUttbHxQY3JBZWI3VnQzMVA5LUVaQnFYaVlXZygpLQp6PTd+N0RlWSpOTD84O1FiYzZq
N3c7K2xVSFpgbHpPVENSbzBSaGNsY1clPlhmcUQ7a1hqQkpyQjRkKFluTjtZdj0KenhZYX1eI0lU
fGBwTWVhZWBvOWROdXFyP2lXbHRKfl94UUl7K0h8cmc8en0yKCktMVJQIXpGPUF1MT9kST0hYmNs
Cnp5QFo1QndPUjA7VFgwcnM0JDRQWlFUIWwpej8/QXdseFRXWWhlTSooT09QUFJgK3JMYHRYbT1n
M140Wi1JcGt1Iwp6di1pNiY7amA+LUl6SkhqblV3Vz54Kyh3aUE4YUUxanUpaXw2fChxbV5MJkZy
WDZIWD5yUmczR3JUYDtncyg8WSsKamNPeV5OY1pLMVJwTTNScG1fRH09d0J1JDYwWW16O3loT1F9
al5GPFE5cDNMMwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWFwX3Zpc2liaWxpdHkuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21hcF92
aXNpYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZj
ZjVmNzYzZWE4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvbWFwX3Zpc2liaWxpdHkuaHRtbApAQCAtMCwwICsxLDggQEAK
KzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5NYXAgdGVzdCBwYWdlPC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDog
MHB4OyB6LWluZGV4OiAxMDY7Ij48aW1nIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDI3MXB4OyB0b3A6IDMyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAzNHB4OyAtbW96LXVzZXIt
c2VsZWN0OiBub25lOyBib3JkZXI6IDBweCBub25lOyBwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4
OyB6LWluZGV4OiAtMTQwMjcwNDk2OyIgc3JjPSJtYXJrZXJUcmFuc3BhcmVudC5wbmciIGNsYXNz
PSJnbW5vcHJpbnQiIHVzZW1hcD0iI2dtaW1hcDAiPjxtYXAgbmFtZT0iZ21pbWFwMCIgaWQ9Imdt
aW1hcDAiPjxhcmVhIGxvZz0ibWl3IiBjb29yZHM9IjksMCw2LDEsNCwyLDIsNCwwLDgsMCwxMiwx
LDE0LDIsMTYsNSwxOSw3LDIzLDgsMjYsOSwzMCw5LDM0LDExLDM0LDExLDMwLDEyLDI2LDEzLDI0
LDE0LDIxLDE2LDE4LDE4LDE2LDIwLDEyLDIwLDgsMTgsNCwxNiwyLDE1LDEsMTMsMCIgc2hhcGU9
InBvbHkiIGFsdD0iIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGlkPSJtdGd0X3VubmFtZWRf
MCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTU5cHg7IHRvcDogMzQycHg7Ij48
L21hcD48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21hcmtlclRyYW5zcGFyZW50LnBuZyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21hcmtlclRy
YW5zcGFyZW50LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDRlNWU3ZjRkNjNmZTEwMzk4M2NmM2JmYTUzNzMz
YTAwODliYTUxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNjAKemNtVitmMHNIPW1QKTxoOzNL
fExrMDAwZTFOSkxUcTAwMHlLMDAxSGcxXkBzNlUjamBOMDAwMDRYRipMdDAwNkpaCnpId0I5NjAw
MDJITmtsPFpOWFBBISE0N35oMnQhTjFlNHA7Y2dXYGJWRytzT3E2U0YtRjZ2UCs8TVZPMjlkPE5r
agp6YzZnVFhPYzVQNDA7Zk98UlFYXjhqMUhSXjYzX3pHUTVpNXh3TmdkfSRtQnh5NSZzVH5JKEYm
e1J+SSVMIXg/YTsKenZ6S2c/P3l9PjZYdysydXFfKE1gNmRIRTI0UjFfflNBMlcpc0VpKChvI3Ql
Z0M8fUYjLW15Z1Rmfnsxc3lSajgzCnokdn4rND9eN1ZVdXI0c3tZeksoU2NQcWY5QU57TXElS30m
aExha3AxRDhZVzxHciRkVFJzR31FK3A1azAwMDAwPApLTU5VTW5MU1RYOystWVAwCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9tZXNzYWdlcy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWVzc2FnZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzRmMWEzN2Y3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tZXNzYWdlcy5o
dG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KKyAgdmFyIG1l
c3NhZ2VzID0gW107CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rp
b24oZSkgeworICAgIHZhciBtZXNzYWdlID0gSlNPTi5zdHJpbmdpZnkoZS5kYXRhKTsKKyAgICBt
ZXNzYWdlcy5wdXNoKG1lc3NhZ2UpOworCisgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3ByZScpOworICAgIHByZS5zdHlsZS5tYXJnaW4gPSAwOworICAgIHByZS5zdHlsZS5w
YWRkaW5nID0gMDsKKyAgICBwcmUudGV4dENvbnRlbnQgPSBtZXNzYWdlOworCisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChwcmUpOworICB9LCB0cnVlKTsKKzwvc2NyaXB0PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21ldGEtcmVkaXJlY3QuaHRtbCBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21ldGEtcmVkaXJlY3QuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWQ5YzJmMGNjOTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9tZXRhLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4K
KyAgICA8dGl0bGU+U29tZSB0ZXN0IHBhZ2U8L3RpdGxlPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9
InJlZnJlc2giIGNvbnRlbnQ9IjA7VVJMPXJlc3VsdFBhZ2UuaHRtbCIvPgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQi
PjwhLS0KK2xvY2F0aW9uLnJlcGxhY2UoInJlc3VsdFBhZ2UuaHRtbCIpOworLy8tLT4gPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWlz
c2VkSnNSZWZlcmVuY2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL21pc3NlZEpzUmVmZXJlbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjYxNjc3NTI3NjU2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbWlzc2VkSnNSZWZlcmVu
Y2UuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgIDx0aXRsZT5FeGFtcGxlIHBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHBhZ2UgY29udGFpbnMgYSBuZXN0ZWQgaWZyYW1lLiBFeGVjdXRlIHNvbWUgSlMgdG8gbG9jYXRl
IGEgcmVmZXJlbmNlIHRvIGFuIGVsZW1lbnQgaW4gdGhpcworICBmcmFtZSBhbmQgcmV0dXJuIGl0
LiBZb3Ugc2hvdWxkIG5lZWQgdG8gc3dpdGNoIHRvIHRoYXQgZnJhbWUgaW4gb3JkZXIgdG8gdXNl
IHRoYXQgZWxlbWVudC48L3A+Cis8aWZyYW1lIHNyYz0ic2ltcGxlVGVzdC5odG1sIiBuYW1lPSJp
bm5lciI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFs
XzEuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L21vZGFsX2RpYWxvZ3MvbW9kYWxfMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi40ZWZmMDFhY2Q2ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vZGFsX2RpYWxvZ3MvbW9kYWxfMS5o
dG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Rmlyc3QgTW9kYWw8
L3RpdGxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gb3Blbk1vZGFsKCkgeworICAgIHdpbmRvdy5z
aG93TW9kYWxEaWFsb2coIm1vZGFsXzIuaHRtbCIsJ2RpYWxvZ1dpZHRoOjI1MHB4O2RpYWxvZ0hl
aWdodDoyMDBweDtyZXNpemFibGU6eWVzJykKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisgCis8
Ym9keT4KKzxwPk1vZGFsIGRpYWxvZyBzYW1wbGU8L3A+CisKKzxpbnB1dCB0eXBlPSJidXR0b24i
IHZhbHVlPSJidG4yIiBvbmNsaWNrPSJvcGVuTW9kYWwoKTsiPgorCis8YSBpZD0ibG5rMiIgaHJl
Zj0iamF2YXNjcmlwdDpvcGVuTW9kYWwoKSI+bG5rMjwvYT4KKzxkaXY+CisKKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vZGFsX2RpYWxv
Z3MvbW9kYWxfMi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvbW9kYWxfZGlhbG9ncy9tb2RhbF8yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmNlYzNmM2YxNGZjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbW9kYWxfZGlhbG9ncy9t
b2RhbF8yLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TZWNv
bmQgTW9kYWw8L3RpdGxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gb3Blbk1vZGFsKCkgeworICAg
IHdpbmRvdy5zaG93TW9kYWxEaWFsb2coIm1vZGFsXzMuaHRtbCIsJ2RpYWxvZ1dpZHRoOjI1MHB4
O2RpYWxvZ0hlaWdodDoyMDBweDtyZXNpemFibGU6eWVzJykKKyAgfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+CisgCis8Ym9keT4KKzxwPk1vZGFsIGRpYWxvZyBzYW1wbGU8L3A+CisKKzxpbnB1dCB0eXBl
PSJidXR0b24iIHZhbHVlPSJidG4zIiBvbmNsaWNrPSJvcGVuTW9kYWwoKTsiPgorCis8YSBpZD0i
bG5rMyIgaHJlZj0iamF2YXNjcmlwdDpvcGVuTW9kYWwoKSI+bG5rMzwvYT4KKzxkaXY+CisKKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21v
ZGFsX2RpYWxvZ3MvbW9kYWxfMy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvbW9kYWxfZGlhbG9ncy9tb2RhbF8zLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjNWViNzIzMWVkCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbW9kYWxf
ZGlhbG9ncy9tb2RhbF8zLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5UaGlyZCBNb2RhbDwvdGl0bGU+CisKKzwvaGVhZD4KKyAKKzxib2R5PgorPHA+TW9kYWwg
ZGlhbG9nIHNhbXBsZTwvcD4KKworCis8ZGl2PgorCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9tb2RhbF9kaWFsb2dzL21vZGFsaW5kZXgu
aHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21v
ZGFsX2RpYWxvZ3MvbW9kYWxpbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4wYTFjNGM5NDE4MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vZGFsX2RpYWxvZ3MvbW9kYWxpbmRl
eC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+TWFpbiB3aW5k
b3c8L3RpdGxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gb3Blbk1vZGFsKCkgeworICAgIHdpbmRv
dy5zaG93TW9kYWxEaWFsb2coIm1vZGFsXzEuaHRtbCIsJ2RpYWxvZ1dpZHRoOjI1MHB4O2RpYWxv
Z0hlaWdodDoyMDBweDtyZXNpemFibGU6eWVzJykKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cisg
Cis8Ym9keT4KKzxwPk1vZGFsIGRpYWxvZyBzYW1wbGU8L3A+CisKKzxpbnB1dCB0eXBlPSJidXR0
b24iIHZhbHVlPSJidG4xIiBvbmNsaWNrPSJvcGVuTW9kYWwoKTsiPgorCis8YSBpZD0ibG5rMSIg
aHJlZj0iamF2YXNjcmlwdDpvcGVuTW9kYWwoKSI+bG5rMTwvYT4KKzxkaXY+CisKKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL21vdXNlT3Zl
ci5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
bW91c2VPdmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0
NzUxYmZkZjcxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvbW91c2VPdmVyLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nOiAwOyI+Cis8ZGl2
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IG92ZXJmbG93OiBoaWRkZW47CisgICAgICAgICAg
ICBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsKKyAgICAgICAg
ICAgIGJhY2tncm91bmQ6IGdyZWVuIgorICAgICBpZD0iZ3JlZW5ib3giPgorICA8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IDc1cHg7IHRvcDogNzVweDsKKyAgICAgICAgICAg
ICAgd2lkdGg6IDc1cHg7IGhlaWdodDogNzVweDsKKyAgICAgICAgICAgICAgYmFja2dyb3VuZDog
Z3JlZW4iCisgICAgICAgaWQ9InJlZGJveCI+CisgIDwvZGl2PgorICA8c2NyaXB0PgorICAgIHZh
ciByZWRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVkYm94Jyk7CisgICAgcmVkYm94
Lm9ubW91c2VvdmVyID0gZnVuY3Rpb24oKSB7IHJlZGJveC5zdHlsZS5iYWNrZ3JvdW5kID0gJ3Jl
ZCc7IH07CisgICAgcmVkYm94Lm9ubW91c2VvdXQgPSBmdW5jdGlvbigpIHsgcmVkYm94LnN0eWxl
LmJhY2tncm91bmQgPSAnZ3JlZW4nOyB9OworICA8L3NjcmlwdD4KKzwvZGl2PgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbW91c2VQ
b3NpdGlvblRyYWNrZXIuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL21vdXNlUG9zaXRpb25UcmFja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM5YTMxY2RhNGY0Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvbW91c2VQb3NpdGlv
blRyYWNrZXIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5zb2xpZGJvcmRlcgorICAgICAgeworICAg
ICAgICBib3JkZXItc3R5bGU6c29saWQ7CisgICAgICAgIGJvcmRlci13aWR0aDoxcHg7CisgICAg
ICB9CisgICAgPC9zdHlsZT4KKworICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJqcy9qcXVlcnktMS40LjQubWluLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ianMvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20ubWluLmpzIj48L3Nj
cmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGpRdWVyeShkb2N1
bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKKyAgICAgICAgJCgnI21vdXNldHJhY2tlcicpLm1vdXNl
bW92ZShmdW5jdGlvbihlKXsKKyAgICAgICAgICB4UG9zID0gZS5wYWdlWCAtIHRoaXMub2Zmc2V0
TGVmdDsKKyAgICAgICAgICB5UG9zID0gZS5wYWdlWSAtIHRoaXMub2Zmc2V0VG9wOworICAgICAg
ICAgICQoJyNzdGF0dXMnKS5odG1sKHhQb3MgKyAnLCAnICsgeVBvcyk7CisgICAgICAgICAgfSk7
CisgICAgICAgIH0pCisKKzwvc2NyaXB0PgorPGJvZHk+CisgIDxiPkRpdiB0cmFja2luZyBtb3Vz
ZSBwb3NpdGlvbi48L2I+CisgIDxicj4KKzxkaXYgaWQ9Im1vdXNldHJhY2tlciIgY2xhc3M9InNv
bGlkYm9yZGVyIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDgw
cHg7IGhlaWdodDogNDAwcHg7IHdpZHRoOiAxMDBweDsgcGFkZGluZzogMHB4OyI+CisgIE1vdmUg
bW91c2UgaGVyZS4KKzwvZGl2PgorPGgyIGlkPSJzdGF0dXMiPgorMCwgMAorPC9oMj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL25lc3RlZEVsZW1lbnRzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9uZXN0ZWRFbGVtZW50cy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44OGVkYTUxZmU2YwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL25l
c3RlZEVsZW1lbnRzLmh0bWwKQEAgLTAsMCArMSwxNjQgQEAKKzxodG1sPgorICA8Ym9keT4KKyAg
PHAgaWQ9InRlc3RfaWQiPm91dHNpZGU8L3A+CisgIDxwIGlkPSJ0ZXN0X2lkX291dCI+b3V0c2lk
ZTwvcD4KKyAgPGRpdiBpZD0idGVzdF9pZF9kaXYiPgorICAJPHAgaWQ9InRlc3RfaWQiPmluc2lk
ZTwvcD4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9InRlc3Rfc3BlY2lhbF9jaGFycyI+CisgICAgPHAg
aWQ9IndoaXRlIHNwYWNlIj5zcGFjZTwvcD4KKyAgICA8cCBpZD0iY3NzIy5jaGFycyI+Y3NzIGVz
Y2FwZXM8L3A+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJ0ZXN0X3NwZWNpYWxfY2hhcnNfMiI+Cisg
ICAgPHAgaWQ9IndoaXRlIHNwYWNlIj5zZWNvbmQgY29weSBmb3IgdGVzdGluZyBwbHVyYWwgZmlu
ZEVsZW1lbnRzPC9wPgorICAgIDxwIGlkPSJjc3MjLmNoYXJzIj5zZWNvbmQgY29weTwvcD4KKyAg
PC9kaXY+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgbmFt
ZT0iZm9ybTEiIHN0eWxlPSJkaXNwbGF5OiBibG9jayI+CisgICAgSGVyZSdzIGEgY2hlY2tib3g6
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNreSIgbmFtZT0iY2hlY2t5IiB2YWx1ZT0i
ZnVycmZ1Ii8+PGJyLz4KKyAgICA8c2VsZWN0IG5hbWU9InNlbGVjdG9tYXRpYyIgaWQ9IjEiPgor
ICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCI+T25lPC9vcHRpb24+CisgICAgICAg
IDxvcHRpb24+VHdvPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+Rm91cjwvb3B0aW9uPgorICAg
ICAgICA8b3B0aW9uPlN0aWxsIGxlYXJuaW5nIGhvdyB0byBjb3VudCwgYXBwYXJlbnRseTwvb3B0
aW9uPgorICAgIDwvc2VsZWN0PgorPC9mb3JtPgorCis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9u
PSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImZvcm0yIiBzdHlsZT0iZGlzcGxheTogYmxvY2siPgor
ICAgIEhlcmUncyBhIGNoZWNrYm94OiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVja3ki
IG5hbWU9ImNoZWNreSIgdmFsdWU9ImZ1cnJmdSIvPjxici8+CisgICAgPHNlbGVjdCBuYW1lPSJz
ZWxlY3RvbWF0aWMiIGlkPSIyIj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQi
Pk9uZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlR3bzwvb3B0aW9uPgorICAgICAgICA8b3B0
aW9uPkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TdGlsbCBsZWFybmluZyBob3cgdG8g
Y291bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKyAgICAgPHNlbGVjdCBu
YW1lPSJzZWxlY3RvbWF0aWMiIGlkPSIyIj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2Vs
ZWN0ZWQiPk9uZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlR3bzwvb3B0aW9uPgorICAgICAg
ICA8b3B0aW9uPkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TdGlsbCBsZWFybmluZyBo
b3cgdG8gY291bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKzwvZm9ybT4K
KworPGEgaHJlZj0iMS5odG1sIj5oZWxsbyB3b3JsZDwvYT4KKzxkaXYgbmFtZT0iZGl2MSI+Cisg
IDxhIGhyZWY9IjIuaHRtbCIgbmFtZT0ibGluazEiPmhlbGxvIHdvcmxkPC9hPgorICA8YSBocmVm
PSIyLmh0bWwiIG5hbWU9ImxpbmsyIj5oZWxsbyB3b3JsZDwvYT4KKzwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgorPGh0bWw+CisgIDxib2R5PgorCis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJy
ZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImZvcm0xIiBzdHlsZT0iZGlzcGxheTogYmxvY2siPgorICAg
IEhlcmUncyBhIGNoZWNrYm94OiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVja3kiIG5h
bWU9ImNoZWNreSIgdmFsdWU9ImZ1cnJmdSIvPjxici8+CisgICAgPHNlbGVjdCBuYW1lPSJzZWxl
Y3RvbWF0aWMiIGlkPSIxIj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiPk9u
ZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlR3bzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9u
PkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TdGlsbCBsZWFybmluZyBob3cgdG8gY291
bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKzwvZm9ybT4KKworPGZvcm0g
bWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIiBuYW1lPSJmb3JtMiIgc3R5bGU9
ImRpc3BsYXk6IGJsb2NrIj4KKyAgICBIZXJlJ3MgYSBjaGVja2JveDogPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBpZD0iY2hlY2t5IiBuYW1lPSJjaGVja3kiIHZhbHVlPSJmdXJyZnUiLz48YnIvPgor
ICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21hdGljIiBpZD0iMiI+CisgICAgICAgIDxvcHRpb24g
c2VsZWN0ZWQ9InNlbGVjdGVkIj5PbmU8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Ud288L29w
dGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3VyPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+U3Rp
bGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVudGx5PC9vcHRpb24+CisgICAgPC9zZWxl
Y3Q+CisgICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21hdGljIiBpZD0iMiI+CisgICAgICAgIDxv
cHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIj5PbmU8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5U
d288L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3VyPC9vcHRpb24+CisgICAgICAgIDxvcHRp
b24+U3RpbGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVudGx5PC9vcHRpb24+CisgICAg
PC9zZWxlY3Q+Cis8L2Zvcm0+CisKKzxhIGhyZWY9IjEuaHRtbCI+aGVsbG8gd29ybGQ8L2E+Cis8
ZGl2IG5hbWU9ImRpdjEiPgorICA8YSBocmVmPSIyLmh0bWwiPmhlbGxvIHdvcmxkPC9hPgorICA8
YSBocmVmPSIyLmh0bWwiPmhlbGxvIHdvcmxkPC9hPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
Cis8aHRtbD4KKyAgPGJvZHk+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc3VsdFBh
Z2UuaHRtbCIgbmFtZT0iZm9ybTEiIHN0eWxlPSJkaXNwbGF5OiBibG9jayI+CisgICAgSGVyZSdz
IGEgY2hlY2tib3g6IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNreSIgbmFtZT0iY2hl
Y2t5IiB2YWx1ZT0iZnVycmZ1Ii8+PGJyLz4KKyAgICA8c2VsZWN0IG5hbWU9InNlbGVjdG9tYXRp
YyIgaWQ9IjEiPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCI+T25lPC9vcHRp
b24+CisgICAgICAgIDxvcHRpb24+VHdvPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+Rm91cjwv
b3B0aW9uPgorICAgICAgICA8b3B0aW9uPlN0aWxsIGxlYXJuaW5nIGhvdyB0byBjb3VudCwgYXBw
YXJlbnRseTwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorPC9mb3JtPgorCis8Zm9ybSBtZXRob2Q9
ImdldCIgYWN0aW9uPSJyZXN1bHRQYWdlLmh0bWwiIG5hbWU9ImZvcm0yIiBzdHlsZT0iZGlzcGxh
eTogYmxvY2siPgorICAgIEhlcmUncyBhIGNoZWNrYm94OiA8aW5wdXQgdHlwZT0iY2hlY2tib3gi
IGlkPSJjaGVja3kiIG5hbWU9ImNoZWNreSIgdmFsdWU9ImZ1cnJmdSIvPjxici8+CisgICAgPHNl
bGVjdCBuYW1lPSJzZWxlY3RvbWF0aWMiIGlkPSIyIj4KKyAgICAgICAgPG9wdGlvbiBzZWxlY3Rl
ZD0ic2VsZWN0ZWQiPk9uZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlR3bzwvb3B0aW9uPgor
ICAgICAgICA8b3B0aW9uPkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TdGlsbCBsZWFy
bmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKyAg
ICAgPHNlbGVjdCBuYW1lPSJzZWxlY3RvbWF0aWMiIGlkPSIyIj4KKyAgICAgICAgPG9wdGlvbiBz
ZWxlY3RlZD0ic2VsZWN0ZWQiPk9uZTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlR3bzwvb3B0
aW9uPgorICAgICAgICA8b3B0aW9uPkZvdXI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5TdGls
bCBsZWFybmluZyBob3cgdG8gY291bnQsIGFwcGFyZW50bHk8L29wdGlvbj4KKyAgICA8L3NlbGVj
dD4KKzwvZm9ybT4KKworPGEgaHJlZj0iMS5odG1sIj5oZWxsbyB3b3JsZDwvYT4KKzxkaXYgbmFt
ZT0iZGl2MSI+CisgIDxhIGhyZWY9IjIuaHRtbCI+aGVsbG8gd29ybGQ8L2E+CisgIDxhIGhyZWY9
IjIuaHRtbCI+aGVsbG8gd29ybGQ8L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKzxodG1s
PgorICA8Ym9keT4KKworPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzdWx0UGFnZS5odG1s
IiBuYW1lPSJmb3JtMSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrIj4KKyAgICBIZXJlJ3MgYSBjaGVj
a2JveDogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2t5IiBuYW1lPSJjaGVja3kiIHZh
bHVlPSJmdXJyZnUiLz48YnIvPgorICAgIDxzZWxlY3QgbmFtZT0ic2VsZWN0b21hdGljIiBpZD0i
MSI+CisgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIj5PbmU8L29wdGlvbj4KKyAg
ICAgICAgPG9wdGlvbj5Ud288L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5Gb3VyPC9vcHRpb24+
CisgICAgICAgIDxvcHRpb24+U3RpbGwgbGVhcm5pbmcgaG93IHRvIGNvdW50LCBhcHBhcmVudGx5
PC9vcHRpb24+CisgICAgPC9zZWxlY3Q+Cis8L2Zvcm0+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBh
Y3Rpb249InJlc3VsdFBhZ2UuaHRtbCIgbmFtZT0iZm9ybTIiIHN0eWxlPSJkaXNwbGF5OiBibG9j
ayI+CisgICAgSGVyZSdzIGEgY2hlY2tib3g6IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNo
ZWNreSIgbmFtZT0iY2hlY2t5IiB2YWx1ZT0iZnVycmZ1Ii8+PGJyLz4KKyAgICA8c2VsZWN0IG5h
bWU9InNlbGVjdG9tYXRpYyIgaWQ9IjIiPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxl
Y3RlZCI+T25lPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+VHdvPC9vcHRpb24+CisgICAgICAg
IDxvcHRpb24+Rm91cjwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlN0aWxsIGxlYXJuaW5nIGhv
dyB0byBjb3VudCwgYXBwYXJlbnRseTwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorICAgICA8c2Vs
ZWN0IG5hbWU9InNlbGVjdG9tYXRpYyIgaWQ9IjIiPgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVk
PSJzZWxlY3RlZCI+T25lPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+VHdvPC9vcHRpb24+Cisg
ICAgICAgIDxvcHRpb24+Rm91cjwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPlN0aWxsIGxlYXJu
aW5nIGhvdyB0byBjb3VudCwgYXBwYXJlbnRseTwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorPC9m
b3JtPgorCis8YSBocmVmPSIxLmh0bWwiPmhlbGxvIHdvcmxkPC9hPgorPGRpdiBuYW1lPSJkaXYx
Ij4KKyAgPGEgaHJlZj0iMi5odG1sIj5oZWxsbyB3b3JsZDwvYT4KKyAgPGEgaHJlZj0iMi5odG1s
Ij5oZWxsbyB3b3JsZDwvYT4KKzwvZGl2PgorCis8c3BhbiBjbGFzcz0ib25lIj5TcGFuIHdpdGgg
Y2xhc3Mgb2Ygb25lPC9zcGFuPgorPGRpdiBuYW1lPSJjbGFzc2VzIj4KKyAgPHNwYW4gY2xhc3M9
Im9uZSI+RmluZCBtZTwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9Im9uZSI+QWxzbyBtZTwvc3Bhbj4K
KyAgPHNwYW4gY2xhc3M9Im9uZW90aGVyIj5CdXQgbm90IG1lPC9zcGFuPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy1ib2R5Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy1ib2R5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJkMjI2NGNlNjRjCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3Zl
cmZsb3ctYm9keS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwg
c3R5bGU9Im92ZXJmbG93OiBhdXRvOyI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGhlIFZpc2liaWxp
dHkgb2YgRXZlcnlkYXkgVGhpbmdzPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJvdmVy
ZmxvdzogaGlkZGVuOyI+Cis8IS0tIFdoZW4gdGhlIHRlc3QgaXMgcnVuLCB0aGUgd2luZG93IGlz
IHJlc2l6ZWQgdG8gbGVzcyB0aGFuIDcwMCBwaXhlbHMgaGlnaCAtLT4KKzxwPlRoaXMgaW1hZ2Ug
aXMgY29weXJpZ2h0IFNpbW9uIFN0ZXdhcnQgYW5kIGRvbmF0ZWQgdG8gdGhlIFNlbGVuaXVtIHBy
b2plY3QgZm9yIHVzZSBpbiBpdHMgdGVzdCBzdWl0ZXMuCis8L3A+Cis8aW1nIHNyYz0iYmVhY2gu
anBnIiBoZWlnaHQ9IjQ4MCIgd2lkdGg9IjY0MCIgYWx0PSJhIG5pY2UgYmVhY2giPgorCis8IS0t
IFNvIHRoaXMgaXMgb2ZmIHNjcmVlbiAtLT4KKzxpZnJhbWUgd2lkdGg9IjEwMCUiIGhlaWdodD0i
MTAwMCIgbmFtZT0icmVzdWx0c0ZyYW1lIiBzcmM9InhodG1sVGVzdC5odG1sIj48L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93L3hfYXV0b195X2F1dG8uaHRtbCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93L3hfYXV0
b195X2F1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2Y4
YTY0NzE5NDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X2F1dG9feV9hdXRvLmh0bWwKQEAgLTAsMCAr
MSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3
aXRoIG92ZXJmbG93PC90aXRsZT4KKyAgPHN0eWxlPgorICAgICNvdmVyIHsKKyAgICAgIHdpZHRo
OjQwMHB4OworICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgIG92ZXJmbG93LXg6IGF1dG87Cisg
ICAgICBvdmVyZmxvdy15OiBhdXRvOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IGlkPSJvdmVyIj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+Cisg
ICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJl
Zj0iIyIgaWQ9InJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmlnaHQt
Y2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayByaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDUwMDBweDsgd2lkdGg6IDUwMDBweDsiPgorICAg
ICAgUmlnaHQgY2xpY2tlZDogPHNwYW4gaWQ9InJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgor
ICAgICAgQm90dG9tIGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tY2xpY2tlZCI+PC9zcGFuPjwv
YnI+CisgICAgICBCb3R0b20tcmlnaHQgY2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1yaWdodC1j
bGlja2VkIj48L3NwYW4+PC9icj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDog
NTAwMHB4OyI+CisgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmln
aHQ7IiA+PGEgaHJlZj0iIyIgaWQ9ImJvdHRvbS1yaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2JvdHRvbS1yaWdodC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNr
IGJvdHRvbS1yaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8YSBocmVmPSIjIiBpZD0i
Ym90dG9tIiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLWNsaWNrZWQn
KS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90dG9tPC9hPgorICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL292ZXJmbG93L3hfYXV0b195X2hpZGRlbi5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9hdXRvX3lfaGlkZGVu
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk2ZmQ3NTBhNmI0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9hdXRvX3lfaGlkZGVuLmh0bWwKQEAgLTAsMCArMSwzMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3aXRoIG92
ZXJmbG93PC90aXRsZT4KKyAgPHN0eWxlPgorICAgICNvdmVyIHsKKyAgICAgIHdpZHRoOjQwMHB4
OworICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgIG92ZXJmbG93LXg6IGF1dG87CisgICAgICBv
dmVyZmxvdy15OiBoaWRkZW47CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
IDxkaXYgaWQ9Im92ZXIiPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAg
IDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIj
IiBpZD0icmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaWdodC1jbGlj
a2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIHJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAwMHB4OyB3aWR0aDogNTAwMHB4OyI+CisgICAgICBS
aWdodCBjbGlja2VkOiA8c3BhbiBpZD0icmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAg
ICBCb3R0b20gY2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1jbGlja2VkIj48L3NwYW4+PC9icj4K
KyAgICAgIEJvdHRvbS1yaWdodCBjbGlja2VkOiA8c3BhbiBpZD0iYm90dG9tLXJpZ2h0LWNsaWNr
ZWQiPjwvc3Bhbj48L2JyPgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAw
cHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsi
ID48YSBocmVmPSIjIiBpZD0iYm90dG9tLXJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYm90dG9tLXJpZ2h0LWNsaWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90
dG9tLXJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9IiMiIGlkPSJib3R0
b20iIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3R0b20tY2xpY2tlZCcpLmlu
bmVyVGV4dD0nb2snIj5DbGljayBib3R0b208L2E+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvb3ZlcmZsb3cveF9hdXRvX3lfc2Nyb2xsLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X2F1dG9feV9zY3JvbGwuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmYxZDkwYjZkZjAKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9vdmVyZmxvdy94X2F1dG9feV9zY3JvbGwuaHRtbApAQCAtMCwwICsxLDMwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5QYWdlIHdpdGggb3ZlcmZs
b3c8L3RpdGxlPgorICA8c3R5bGU+CisgICAgI292ZXIgeworICAgICAgd2lkdGg6NDAwcHg7Cisg
ICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgb3ZlcmZsb3cteDogYXV0bzsKKyAgICAgIG92ZXJm
bG93LXk6IHNjcm9sbDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRp
diBpZD0ib3ZlciI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRp
diBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlk
PSJyaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JpZ2h0LWNsaWNrZWQn
KS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgcmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAg
PGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAwcHg7IHdpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIFJpZ2h0
IGNsaWNrZWQ6IDxzcGFuIGlkPSJyaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJv
dHRvbSBjbGlja2VkOiA8c3BhbiBpZD0iYm90dG9tLWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAg
ICAgQm90dG9tLXJpZ2h0IGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tcmlnaHQtY2xpY2tlZCI+
PC9zcGFuPjwvYnI+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsi
PgorICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxh
IGhyZWY9IiMiIGlkPSJib3R0b20tcmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdib3R0b20tcmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0b20t
cmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGEgaHJlZj0iIyIgaWQ9ImJvdHRvbSIg
b25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1jbGlja2VkJykuaW5uZXJU
ZXh0PSdvayciPkNsaWNrIGJvdHRvbTwvYT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9vdmVyZmxvdy94X2hpZGRlbl95X2F1dG8uaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93L3hfaGlkZGVuX3lfYXV0by5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNGRkMTkyODMwNgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL292ZXJmbG93L3hfaGlkZGVuX3lfYXV0by5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVyZmxvdzwv
dGl0bGU+CisgIDxzdHlsZT4KKyAgICAjb3ZlciB7CisgICAgICB3aWR0aDo0MDBweDsKKyAgICAg
IGhlaWdodDogMzAwcHg7CisgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CisgICAgICBvdmVyZmxv
dy15OiBhdXRvOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlk
PSJvdmVyIj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+CisgICAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJlZj0iIyIgaWQ9InJp
Z2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmlnaHQtY2xpY2tlZCcpLmlu
bmVyVGV4dD0nb2snIj5DbGljayByaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IHN0eWxlPSJoZWlnaHQ6IDUwMDBweDsgd2lkdGg6IDUwMDBweDsiPgorICAgICAgUmlnaHQgY2xp
Y2tlZDogPHNwYW4gaWQ9InJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAgICAgQm90dG9t
IGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAgICBC
b3R0b20tcmlnaHQgY2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1yaWdodC1jbGlja2VkIj48L3Nw
YW4+PC9icj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+Cisg
ICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJl
Zj0iIyIgaWQ9ImJvdHRvbS1yaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2JvdHRvbS1yaWdodC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIGJvdHRvbS1yaWdo
dDwvYT48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8YSBocmVmPSIjIiBpZD0iYm90dG9tIiBvbmNs
aWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLWNsaWNrZWQnKS5pbm5lclRleHQ9
J29rJyI+Q2xpY2sgYm90dG9tPC9hPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292
ZXJmbG93L3hfaGlkZGVuX3lfaGlkZGVuLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X2hpZGRlbl95X2hpZGRlbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYWU1NjY1NzhmMAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL292ZXJmbG93L3hfaGlkZGVuX3lfaGlkZGVuLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3aXRoIG92ZXJmbG93
PC90aXRsZT4KKyAgPHN0eWxlPgorICAgICNvdmVyIHsKKyAgICAgIHdpZHRoOjQwMHB4OworICAg
ICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICAgIG92ZXJm
bG93LXk6IGhpZGRlbjsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRp
diBpZD0ib3ZlciI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRp
diBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlk
PSJyaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JpZ2h0LWNsaWNrZWQn
KS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgcmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAg
PGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAwcHg7IHdpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIFJpZ2h0
IGNsaWNrZWQ6IDxzcGFuIGlkPSJyaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJv
dHRvbSBjbGlja2VkOiA8c3BhbiBpZD0iYm90dG9tLWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAg
ICAgQm90dG9tLXJpZ2h0IGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tcmlnaHQtY2xpY2tlZCI+
PC9zcGFuPjwvYnI+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsi
PgorICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxh
IGhyZWY9IiMiIGlkPSJib3R0b20tcmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdib3R0b20tcmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0b20t
cmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGEgaHJlZj0iIyIgaWQ9ImJvdHRvbSIg
b25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1jbGlja2VkJykuaW5uZXJU
ZXh0PSdvayciPkNsaWNrIGJvdHRvbTwvYT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9vdmVyZmxvdy94X2hpZGRlbl95X3Njcm9sbC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9oaWRkZW5feV9zY3JvbGwuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDRmZmEzOTcwZmIKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9vdmVyZmxvdy94X2hpZGRlbl95X3Njcm9sbC5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVy
ZmxvdzwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICAjb3ZlciB7CisgICAgICB3aWR0aDo0MDBweDsK
KyAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CisgICAgICBv
dmVyZmxvdy15OiBzY3JvbGw7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
IDxkaXYgaWQ9Im92ZXIiPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAg
IDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIj
IiBpZD0icmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaWdodC1jbGlj
a2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIHJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAwMHB4OyB3aWR0aDogNTAwMHB4OyI+CisgICAgICBS
aWdodCBjbGlja2VkOiA8c3BhbiBpZD0icmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAg
ICBCb3R0b20gY2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1jbGlja2VkIj48L3NwYW4+PC9icj4K
KyAgICAgIEJvdHRvbS1yaWdodCBjbGlja2VkOiA8c3BhbiBpZD0iYm90dG9tLXJpZ2h0LWNsaWNr
ZWQiPjwvc3Bhbj48L2JyPgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAw
cHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsi
ID48YSBocmVmPSIjIiBpZD0iYm90dG9tLXJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYm90dG9tLXJpZ2h0LWNsaWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90
dG9tLXJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9IiMiIGlkPSJib3R0
b20iIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3R0b20tY2xpY2tlZCcpLmlu
bmVyVGV4dD0nb2snIj5DbGljayBib3R0b208L2E+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvb3ZlcmZsb3cveF9zY3JvbGxfeV9hdXRvLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9vdmVyZmxvdy94X3Njcm9sbF95X2F1dG8uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDQyNWEyYThhNWUKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9vdmVyZmxvdy94X3Njcm9sbF95X2F1dG8uaHRtbApAQCAtMCwwICsxLDMwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5QYWdlIHdpdGggb3ZlcmZs
b3c8L3RpdGxlPgorICA8c3R5bGU+CisgICAgI292ZXIgeworICAgICAgd2lkdGg6NDAwcHg7Cisg
ICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsOworICAgICAgb3Zl
cmZsb3cteTogYXV0bzsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRp
diBpZD0ib3ZlciI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsiPgorICAgICAgPGRp
diBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxhIGhyZWY9IiMiIGlk
PSJyaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JpZ2h0LWNsaWNrZWQn
KS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgcmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAg
PGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAwcHg7IHdpZHRoOiA1MDAwcHg7Ij4KKyAgICAgIFJpZ2h0
IGNsaWNrZWQ6IDxzcGFuIGlkPSJyaWdodC1jbGlja2VkIj48L3NwYW4+PC9icj4KKyAgICAgIEJv
dHRvbSBjbGlja2VkOiA8c3BhbiBpZD0iYm90dG9tLWNsaWNrZWQiPjwvc3Bhbj48L2JyPgorICAg
ICAgQm90dG9tLXJpZ2h0IGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tcmlnaHQtY2xpY2tlZCI+
PC9zcGFuPjwvYnI+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDUwMDBweDsi
PgorICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyIgPjxh
IGhyZWY9IiMiIGlkPSJib3R0b20tcmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdib3R0b20tcmlnaHQtY2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayBib3R0b20t
cmlnaHQ8L2E+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGEgaHJlZj0iIyIgaWQ9ImJvdHRvbSIg
b25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JvdHRvbS1jbGlja2VkJykuaW5uZXJU
ZXh0PSdvayciPkNsaWNrIGJvdHRvbTwvYT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9vdmVyZmxvdy94X3Njcm9sbF95X2hpZGRlbi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9zY3JvbGxfeV9oaWRkZW4uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGE2ZmY1OTVkM2IKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9vdmVyZmxvdy94X3Njcm9sbF95X2hpZGRlbi5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBvdmVy
ZmxvdzwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICAjb3ZlciB7CisgICAgICB3aWR0aDo0MDBweDsK
KyAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7CisgICAgICBv
dmVyZmxvdy15OiBoaWRkZW47CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
IDxkaXYgaWQ9Im92ZXIiPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAwcHg7Ij4KKyAgICAg
IDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsiID48YSBocmVmPSIj
IiBpZD0icmlnaHQiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaWdodC1jbGlj
a2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNrIHJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAwMHB4OyB3aWR0aDogNTAwMHB4OyI+CisgICAgICBS
aWdodCBjbGlja2VkOiA8c3BhbiBpZD0icmlnaHQtY2xpY2tlZCI+PC9zcGFuPjwvYnI+CisgICAg
ICBCb3R0b20gY2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1jbGlja2VkIj48L3NwYW4+PC9icj4K
KyAgICAgIEJvdHRvbS1yaWdodCBjbGlja2VkOiA8c3BhbiBpZD0iYm90dG9tLXJpZ2h0LWNsaWNr
ZWQiPjwvc3Bhbj48L2JyPgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA1MDAw
cHg7Ij4KKyAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsi
ID48YSBocmVmPSIjIiBpZD0iYm90dG9tLXJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYm90dG9tLXJpZ2h0LWNsaWNrZWQnKS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90
dG9tLXJpZ2h0PC9hPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9IiMiIGlkPSJib3R0
b20iIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3R0b20tY2xpY2tlZCcpLmlu
bmVyVGV4dD0nb2snIj5DbGljayBib3R0b208L2E+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvb3ZlcmZsb3cveF9zY3JvbGxfeV9zY3JvbGwuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL292ZXJmbG93L3hfc2Nyb2xsX3lfc2Nyb2xs
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVmYTgwNzQyYWQ3
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvb3ZlcmZsb3cveF9zY3JvbGxfeV9zY3JvbGwuaHRtbApAQCAtMCwwICsxLDMw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5QYWdlIHdpdGgg
b3ZlcmZsb3c8L3RpdGxlPgorICA8c3R5bGU+CisgICAgI292ZXIgeworICAgICAgd2lkdGg6NDAw
cHg7CisgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsOworICAg
ICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IGlkPSJvdmVyIj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwMHB4OyI+Cisg
ICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IiA+PGEgaHJl
Zj0iIyIgaWQ9InJpZ2h0IiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmlnaHQt
Y2xpY2tlZCcpLmlubmVyVGV4dD0nb2snIj5DbGljayByaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDUwMDBweDsgd2lkdGg6IDUwMDBweDsiPgorICAg
ICAgUmlnaHQgY2xpY2tlZDogPHNwYW4gaWQ9InJpZ2h0LWNsaWNrZWQiPjwvc3Bhbj48L2JyPgor
ICAgICAgQm90dG9tIGNsaWNrZWQ6IDxzcGFuIGlkPSJib3R0b20tY2xpY2tlZCI+PC9zcGFuPjwv
YnI+CisgICAgICBCb3R0b20tcmlnaHQgY2xpY2tlZDogPHNwYW4gaWQ9ImJvdHRvbS1yaWdodC1j
bGlja2VkIj48L3NwYW4+PC9icj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDog
NTAwMHB4OyI+CisgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmln
aHQ7IiA+PGEgaHJlZj0iIyIgaWQ9ImJvdHRvbS1yaWdodCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2JvdHRvbS1yaWdodC1jbGlja2VkJykuaW5uZXJUZXh0PSdvayciPkNsaWNr
IGJvdHRvbS1yaWdodDwvYT48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8YSBocmVmPSIjIiBpZD0i
Ym90dG9tIiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm90dG9tLWNsaWNrZWQn
KS5pbm5lclRleHQ9J29rJyI+Q2xpY2sgYm90dG9tPC9hPgorICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3BhZ2VXaXRoT25CZWZvcmVVbmxvYWRNZXNzYWdlLmh0bWwgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9wYWdlV2l0aE9uQmVmb3JlVW5s
b2FkTWVzc2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j
YjU5NzA3ZWQzYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3BhZ2VXaXRoT25CZWZvcmVVbmxvYWRNZXNzYWdlLmh0bWwK
QEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAg
PCEtLSAKKyAgICBUaGlzIHBhZ2UgZGlmZmVycyBmcm9tIHBhZ2VXaXRoT25VbmxvYWQuaHRtbCBp
biB0aGF0IGl0IHJldHVybnMgYSBzdHJpbmcgaW4gdGhlCisgICAgZXZlbnQgaGFuZGxlciwgd2hp
Y2ggY2F1c2VzIGEgZGlmZmVyZW50IHR5cGUgb2YgYWxlcnQgdG8gYXBwZWFyICh0aGUgIlN0YXkg
b24KKyAgICBwYWdlL0xlYXZlIGN1cnJlbnQgcGFnZSIgYWxlcnQpLgorICAgIC0tPgorICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIGZ1bmN0aW9uIG9uQmVmb3JlVW5s
b2FkSGFuZGxlcigpIHsKKyAgICAgICAgcmV0dXJuICJUaGlzIGlzIGZvciBXZWJEcml2ZXIgd2l0
aCBvbmJlZm9yZXVubG9hZCBldmVudCBoYW5kbGVyLiI7CisgICAgICB9CisgICAgICB3aW5kb3cu
b25iZWZvcmV1bmxvYWQgPSBvbkJlZm9yZVVubG9hZEhhbmRsZXI7CisgICAgPC9zY3JpcHQ+Cisg
ICAgPHRpdGxlPlBhZ2Ugd2l0aCBPbkJlZm9yZVVubG9hZCBoYW5kbGVyPC90aXRsZT4KKyAgPC9o
ZWFkPgorICA8Ym9keT4KKyAgICA8cD5QYWdlIHdpdGggb25iZWZvcmV1bmxvYWQgZXZlbnQgaGFu
ZGxlci4gPGEgaWQ9Im5hdmlnYXRlIiBocmVmPSJhbGVydHMuaHRtbCI+Q2xpY2sgaGVyZSB0byBu
YXZpZ2F0ZSB0byBhbm90aGVyIHBhZ2UuPC9hPjwvcD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
cGFnZVdpdGhPbkxvYWQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3BhZ2VXaXRoT25Mb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjJjNjQ0ZmY5NTkwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcGFnZVdpdGhPbkxvYWQuaHRt
bApAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9
ImphdmFzY3JpcHQ6YWxlcnQoJ29ubG9hZCcpIj4KKzxwPlBhZ2Ugd2l0aCBvbmxvYWQgZXZlbnQg
aGFuZGxlcjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3BhZ2VXaXRoT25VbmxvYWQuaHRtbCBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3BhZ2VXaXRo
T25VbmxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjA3
MDM0MWUyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9wYWdlV2l0aE9uVW5sb2FkLmh0bWwKQEAgLTAsMCArMSw2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25iZWZvcmV1bmxvYWQ9ImFsZXJ0KCdv
bnVubG9hZCcpIj4KKzxwPlBhZ2Ugd2l0aCBvbnVubG9hZCBldmVudCBoYW5kbGVyPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvcGFnZV93aXRoX2xpbmtfdG9fc2xvd19sb2FkaW5nX3BhZ2UuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3BhZ2Vf
d2l0aF9saW5rX3RvX3Nsb3dfbG9hZGluZ19wYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmVhOTRmOGVjMWM0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcGFnZV93aXRoX2xpbmtf
dG9fc2xvd19sb2FkaW5nX3BhZ2UuaHRtbApAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxhIGlkPSJsaW5rLXRvLXNsb3ctbG9hZGluZy1wYWdlIiBocmVm
PSJzbGVlcD90aW1lPTUiPmxvYWQgYSBzbG93IHBhZ2U8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9wbGFpbi50eHQgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9wbGFpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgz
MThjODZiMzU3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvcGxhaW4udHh0CkBAIC0wLDAgKzEgQEAKK1Rlc3QKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9wcm94eS9wYWdlMS5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcHJveHkvcGFnZTEuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTgxMGYxY2RmZGIKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9wcm94eS9wYWdlMS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1V
VEYtOCI+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVk
Z2UiPgorPHRpdGxlPlBhZ2UgMTwvdGl0bGU+Cis8cD5UaGUgPGNvZGU+bmV4dDwvY29kZT4gcXVl
cnkgcGFyYW0gbXVzdCBiZSB0aGUgVVJMIGZvciB0aGUgbmV4dCBwYWdlIHRvCitsaW5rIHRvLgor
PHNjcmlwdD4KKyAgdmFyIG1hdGNoID0gZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoLm1hdGNoKC9u
ZXh0PSguKikvKTsKKyAgaWYgKG1hdGNoICYmIG1hdGNoLmxlbmd0aCA9PSAyKSB7CisgICAgdmFy
IG5leHQgPSBkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbMV0pOworICAgIHZhciBsaW5rID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOworICAgIGxpbmsuaW5uZXJUZXh0ID0gJ05leHQhJzsK
KyAgICBsaW5rLnRleHRDb250ZW50ID0gJ05leHQhJzsKKyAgICBsaW5rLmlkID0gJ25leHQnOwor
ICAgIGxpbmsuaHJlZiA9IG5leHQgKyAnP25leHQ9JyArIGVuY29kZVVSSUNvbXBvbmVudCgKKyAg
ICAgICAgJ2h0dHA6Ly8nICsgZG9jdW1lbnQubG9jYXRpb24uaG9zdCArCisgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoJ3BhZ2UxLmh0bWwnLCAncGFnZTMuaHRtbCcp
KTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspOworICB9Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3Byb3h5L3BhZ2UyLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9wcm94eS9wYWdlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kODI2ZjE3NDJiNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Byb3h5L3BhZ2UyLmh0bWwKQEAg
LTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PVVURi04Ij4KKzxtZXRhIGh0dHAtZXF1
aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+Cis8dGl0bGU+UGFnZSAyPC90
aXRsZT4KK1RoaXMgcGFnZSBpcyBhIG1pZGRsZSBtYW4gZm9yIHJlZmVycmVyIHRlc3RzLgorVGhp
cyBwYWdlIHdpbGwgaW5jbHVkZSBhIGxpbmsgdG8gYSAibmV4dCIgcGFnZSBpZiB0aGUgPGNvZGU+
bmV4dDwvY29kZT4gcXVlcnkKK3BhcmFtZXRlciwgb3IgdGhlIDxjb2RlPmRvY3VtZW50LnJlZmVy
cmVyPC9jb2RlPiBpcyBzZXQuCis8cD48aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0iZm9yd2FyZCIg
dmFsdWU9IkZvcndhcmQiIG9uY2xpY2s9Imhpc3RvcnkuZ28oMSkiLz4KKzxzY3JpcHQ+CisgIHZh
ciBtYXRjaCA9IGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaC5tYXRjaCgvbmV4dD0oLiopLyk7Cisg
IHZhciBuZXh0ID0gZG9jdW1lbnQucmVmZXJyZXIgfHwgJyc7CisgIGlmIChtYXRjaCAmJiBtYXRj
aC5sZW5ndGggPT0gMikgeworICAgIG5leHQgPSBkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbMV0p
OworICB9CisKKyAgaWYgKG5leHQpIHsKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2EnKTsKKyAgICBsaW5rLmlubmVyVGV4dCA9ICdOZXh0ISc7CisgICAgbGluay50ZXh0
Q29udGVudCA9ICdOZXh0ISc7CisgICAgbGluay5pZCA9ICduZXh0JzsKKyAgICBsaW5rLmhyZWYg
PSBuZXh0OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7CisgIH0KKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvcHJveHkvcGFnZTMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3Byb3h5L3BhZ2UzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjI3MDQ4ZjcyOTRkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcHJveHkvcGFnZTMuaHRt
bApAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCI+Cis8bWV0YSBodHRw
LWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgorPHRpdGxlPlBhZ2Ug
MzwvdGl0bGU+Cis8cD48aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0iYmFjayIgdmFsdWU9IkJhY2si
IG9uY2xpY2s9Imhpc3RvcnkuZ28oLTEpIi8+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9yZWFkT25seVBhZ2UuaHRtbCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3JlYWRPbmx5UGFnZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZjI1N2ZkYzcwNgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3JlYWRPbmx5UGFnZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGJv
ZHk+Cis8aW5wdXQgaWQ9IndyaXRhYmxlVGV4dElucHV0IiB0eXBlPSJ0ZXh0IiAgdmFsdWU9IlRl
c3QiLz4KKworPGlucHV0IGlkPSJyZWFkT25seVRleHRJbnB1dCIgdHlwZT0idGV4dCIgcmVhZG9u
bHkgdmFsdWU9IlRlc3QiLz4KKworPGlucHV0IGlkPSJ0ZXh0SW5wdXRub3RlbmFibGVkIiB0eXBl
PSJ0ZXh0IiBkaXNhYmxlZD0idHJ1ZSIgdmFsdWU9IlRlc3QiLz4KKworPHRleHRhcmVhIGlkPSJ3
cml0YWJsZVRleHRBcmVhIiByb3dzPSIyIiBjb2xzPSIyMCI+CitUaGlzIGlzIGEgc2FtcGxlIHRl
eHQgYXJlYSB3aGljaCBpcyBzdXBwb3NlZCB0byBiZSBjbGVhcmVkCis8L3RleHRhcmVhPgorCis8
dGV4dGFyZWEgaWQ9InRleHRBcmVhUmVhZE9ubHkiIHJlYWRvbmx5IHJvd3M9IjUiIGNvbHM9IjIw
Ij4KK3RleHQgYXJlYSB3aGljaCBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgY2xlYXJlZDwvdGV4dGFy
ZWE+CisKKzx0ZXh0YXJlYSByb3dzPSI1IiBpZD0idGV4dEFyZWFOb3RlbmFibGVkIiBkaXNhYmxl
ZD0idHJ1ZSIgY29scz0iMjAiPgordGV4dCBhcmVhIHdoaWNoIGlzIG5vdCBzdXBwb3NlZCB0byBi
ZSBjbGVhcmVkPC90ZXh0YXJlYT4KKworPGRpdiBpZD0iY29udGVudC1lZGl0YWJsZSIgY29udGVu
dEVkaXRhYmxlPSJ0cnVlIj48aDE+VGhpczwvaDE+PGgyPmlzIGE8L2gyPjxwPmNvbnRlbnRFZGl0
YWJsZSBhcmVhPC9wPjwvZGl2PgorCis8ZGl2IGlkPSJjb250ZW50LWVkaXRhYmxlLWJsYW5rIiBj
b250ZW50RWRpdGFibGU9InRydWUiIHN0eWxlPSJoZWlnaHQ6NTBweDsiPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9yZWN0YW5nbGVzLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9yZWN0YW5nbGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhiYTIzMzk4NDk4Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcmVjdGFuZ2xl
cy5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPHRpdGxlPlJlY3RhbmdsZXM8L3RpdGxlPgorICAgIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisgICAgICAgIGRpdiB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICBib3JkZXI6IDA7CisgICAg
ICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICB9CisgICAgICAgICNyMSB7CisgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgbGVmdDogMTBweDsKKyAgICAg
ICAgICAgIHRvcDogMTBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogNTBweDsKKyAgICAgICAgfQorICAgICAgICAjcjIgeworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgbGVmdDogMTAuOXB4OworICAgICAgICAg
ICAgdG9wOiAxMC4xcHg7CisgICAgICAgICAgICB3aWR0aDogNDguNjY2NjY2NjY3cHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDQ5LjMzMzMzMzMzM3B4OworICAgICAgICB9CisgICAgICAgICNyMyB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgICAgICAgICBsZWZ0
OiA2MHB4OworICAgICAgICAgICAgdG9wOiAxMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwcHg7
CisgICAgICAgICAgICBoZWlnaHQ6IDI1cHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJyMSI+cjE8L2Rpdj4KKyAgICAgICAg
PGRpdiBpZD0icjIiPnIyPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InIzIj5yMzwvZGl2PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Jlc3VsdFBhZ2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Jlc3VsdFBhZ2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTRmM2UyNDZlMDUKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9yZXN1
bHRQYWdlLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+
V2UgQXJyaXZlIEhlcmU8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxwIGlkPSJncmVldGlu
ZyI+U3VjY2VzcyE8L3A+CisKKzxkaXY+CisgICAgPGgxPkxpc3Qgb2Ygc3R1ZmY8L2gxPgorICAg
IDxvbD4KKyAgICAgICAgPGxpIGNsYXNzPSJpdGVtcyI+SXRlbSAxPC9saT4KKyAgICAgICAgPGxp
Pkl0ZW0gMjwvbGk+CisgICAgPC9vbD4KKzwvZGl2PgorPGRpdj4KKyAgICA8aDE+QWxtb3N0IGVt
cHR5PC9oMT4KKzwvZGl2PgorCis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhc2NyaXB0Ij4KKyAgICBk
b2N1bWVudC53cml0ZSgiPHA+V2luZG93IG5hbWUgaXM6ICIgKyB3aW5kb3cubmFtZSArICI8L3A+
Iik7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvcmljaF90ZXh0Lmh0bWwgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9yaWNoX3RleHQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTQyZTQzYWFiOTkK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9yaWNoX3RleHQuaHRtbApAQCAtMCwwICsxLDE2MSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAg
ICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVuY3Rpb24gc2V0S2V5cHJlc3NI
YW5kbGVyIChlbCwga2V5SGFuZGxlcikgeworICBpZiAoZWwuYWRkRXZlbnRMaXN0ZW5lcikgewor
ICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywga2V5SGFuZGxlciwgZmFsc2UpOwor
ICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBrZXlIYW5kbGVyLCBmYWxzZSk7Cisg
ICAgZWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBrZXlIYW5kbGVyLCBmYWxzZSk7CisgIH0g
ZWxzZSB7CisgICAgZWwuYXR0YWNoRXZlbnQoJ29ua2V5cHJlc3MnLCBrZXlIYW5kbGVyKTsKKyAg
ICBlbC5hdHRhY2hFdmVudCgnb25rZXlkb3duJywga2V5SGFuZGxlcik7CisgICAgZWwuYXR0YWNo
RXZlbnQoJ29ua2V5dXAnLCBrZXlIYW5kbGVyKTsKKyAgfQorfQorCitmdW5jdGlvbiBvdXRwdXQg
KHRleHQpIHsKKyAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWJ1Z091dHB1
dCcpOworICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOwor
ICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7Cit9CisKK3dp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgIC8vIFN1cGVyIGR1bWIgYnJvd3NlciBkZXRl
Y3Rpb24KKyAgdmFyIGlzSUUgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goJ01T
SUUnKSAhPSAtMQorICAgIHx8IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnNlYXJjaCgnVHJp
ZGVudCcpICE9IC0xOworCisgIHZhciBlZGl0RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZWRpdEZyYW1lJykuY29udGVudFdpbmRvdzsKKyAgc2V0S2V5cHJlc3NIYW5kbGVyKGVkaXRG
cmFtZS5kb2N1bWVudCwgcHJpbnRFdmVudERhdGEpOworICBpZiAoaXNJRSkgeworICAgIGVkaXRG
cmFtZS5kb2N1bWVudC5ib2R5LmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CisgIH0gZWxzZSB7Cisg
ICAgZWRpdEZyYW1lLmRvY3VtZW50LmRlc2lnbk1vZGUgPSAnT24nOworICAgIC8vIEF0dGFjaCBh
IG5hbWUgdG8gdGhlIGNvbnRhaW5pbmcgSFRNTCBlbGVtZW50CisgICAgZWRpdEZyYW1lLmRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF0uaWQgPSAiZnJhbWVIdG1sIjsKKyAg
fQorCisgIHZhciBlZGl0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXREaXYnKTsK
KyAgc2V0S2V5cHJlc3NIYW5kbGVyKGVkaXREaXYsIHByaW50RXZlbnREYXRhKTsKKyAgZWRpdERp
di5jb250ZW50RWRpdGFibGUgPSB0cnVlOworCisgIGVkaXRGcmFtZS5kb2N1bWVudC5ib2R5LnN0
eWxlLm1hcmdpbiA9IDE7CisgIGVkaXRGcmFtZS5kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcg
PSAwOworICBlZGl0RnJhbWUuZG9jdW1lbnQuYm9keS5pZCA9ICd0aGVCb2R5JzsKKworICBlZGl0
RGl2LnN0eWxlLm1hcmdpbiA9IDE7CisgIGVkaXREaXYuc3R5bGUucGFkZGluZyA9IDA7CisKKyAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgdmFyIHByZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3ByZScpOworICAgIGZ1bmN0aW9uIHdyaXRlKHRleHQpIHsKKyAgICAgIHBy
ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CisgICAgICBwcmUu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7CisgICAgfQorCisgICAg
d3JpdGUoJ2ZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZGVzaWduTW9kZTogJyArCisgICAg
ICBlZGl0RnJhbWUuZG9jdW1lbnQuZGVzaWduTW9kZSk7CisgICAgd3JpdGUoJ2ZyYW1lLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQuYm9keS5jb250ZW50RWRpdGFibGU6ICcgKworICAgICAgZWRpdEZy
YW1lLmRvY3VtZW50LmJvZHkuY29udGVudEVkaXRhYmxlKTsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZWRpdEZyYW1lSW5mbycpLmFwcGVuZENoaWxkKHByZSk7CisKKyAgICBwcmUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsKKyAgICB3cml0ZSgnZGl2Lm93bmVyRG9jdW1l
bnQuZGVzaWduTW9kZTogJyArCisgICAgICBlZGl0RGl2Lm93bmVyRG9jdW1lbnQuZGVzaWduTW9k
ZSk7CisgICAgd3JpdGUoJ2Rpdi5vd25lckRvY3VtZW50LmJvZHkuY29udGVudEVkaXRhYmxlOiAn
ICsKKyAgICAgIGVkaXREaXYub3duZXJEb2N1bWVudC5ib2R5LmNvbnRlbnRFZGl0YWJsZSk7Cisg
ICAgd3JpdGUoJ2Rpdi5jb250ZW50RWRpdGFibGU6ICcgKworICAgICAgZWRpdERpdi5jb250ZW50
RWRpdGFibGUpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0RGl2SW5mbycpLmFw
cGVuZENoaWxkKHByZSk7CisgIH0sIDApOworfTsKKworZnVuY3Rpb24gaXNEZWYob2JqLCBwcm9w
KSB7CisgIHJldHVybiB0eXBlb2Ygb2JqW3Byb3BdICE9ICd1bmRlZmluZWQnOworfQorCitmdW5j
dGlvbiBwcmludEV2ZW50RGF0YShlKSB7CisgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDsKKworICBm
dW5jdGlvbiB3cml0ZShpZCwgdGV4dCwgb3B0X2NvbG9yKSB7CisgICAgdmFyIGVsID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgIGVsLmlubmVySFRNTCA9ICdbJyArIHRleHQgKyAn
XSc7CisgICAgZWwuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gb3B0X2NvbG9yIHx8ICd3aGl0ZSc7
CisgIH0KKyAgd3JpdGUoJ3R5cGUnLCBlLnR5cGUpOworICB3cml0ZSgndGFnTmFtZScsIGlzRGVm
KGUsICd0YXJnZXQnKSA/IGUudGFyZ2V0LnRhZ05hbWUgOiBlLnNyY0VsZW1lbnQudGFnTmFtZSk7
CisgIHdyaXRlKCd0YWdJZCcsIGlzRGVmKGUsICd0YXJnZXQnKSA/IGUudGFyZ2V0LmlkIDogZS5z
cmNFbGVtZW50LmlkKTsKKyAgd3JpdGUoJ2tleWlkZW50aWZpZXInLCBpc0RlZihlLCAna2V5SWRl
bnRpZmllcicpID8gZS5rZXlJZGVudGlmaWVyIDogJ24vYScpOworICB3cml0ZSgna2V5bG9jYXRp
b24nLCBpc0RlZihlLCAna2V5TG9jYXRpb24nKSA/IGUua2V5TG9jYXRpb24gOiAnbi9hJyk7Cisg
IHdyaXRlKCdrZXljb2RlJywgZS5rZXlDb2RlKTsKKyAgd3JpdGUoJ2NoYXJjb2RlJywgZS5jaGFy
Q29kZSk7CisgIHdyaXRlKCd3aGljaCcsIGUud2hpY2gpOworICBpZiAoaXNEZWYoZSwgJ2lzVHJ1
c3RlZCcpKSB7CisgICAgd3JpdGUoJ2lzdHJ1c3RlZCcsIGUuaXNUcnVzdGVkLCBlLmlzVHJ1c3Rl
ZCA/ICcjYWZhJyA6ICcjZmFhJyk7CisgIH0gZWxzZSB7CisgICAgd3JpdGUoJ2lzdHJ1c3RlZCcs
ICduL2EnKTsKKyAgfQorICB3cml0ZSgnYWx0JywgZS5hbHRLZXkpOworICB3cml0ZSgnY3RybCcs
IGUuY3RybEtleSk7CisgIHdyaXRlKCdzaGlmdCcsIGUuc2hpZnRLZXkpOworICB3cml0ZSgnbWV0
YScsIGUubWV0YUtleSk7CisKKyAgdmFyIHMgPSAiIjsKKyAgZm9yICh2YXIgaSBpbiBlKSB7Cisg
ICAgcyArPSBpICsgIjogIiArIGVbaV0gKyAiICAgIjsKKyAgfQorICAvL2FsZXJ0KHMpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+CisgIDxkaXYgaWQ9ImJ1dHRlciIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmE7Ij4KKyAgPC9kaXY+CisgIDx0YWJsZSB3aWR0aD0i
MTAwJSI+CisgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICA8dGQgd2lkdGg9IjUwJSI+
CisgICAgICAgICAgPGRpdj5JRlJBTUU8L2Rpdj4KKyAgICAgICAgICA8aWZyYW1lIGlkPSJlZGl0
RnJhbWUiIG5hbWU9ImVkaXRGcmFtZSIgc3JjPSIiIGhlaWdodD0iMjAwcHgiIHdpZHRoPSIzMDBw
eCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPgorICAg
ICAgICAgIDwvaWZyYW1lPgorICAgICAgICAgIDxkaXYgaWQ9ImVkaXRGcmFtZUluZm8iPgorICAg
ICAgICAgIDxwcmU+ZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5kZXNpZ25Nb2RlOiBvbjxi
cj5mcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuY29udGVudEVkaXRhYmxlOiBmYWxz
ZTxicj48L3ByZT48L2Rpdj4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAg
IDxkaXY+RElWPC9kaXY+CisgICAgICAgICAgPGRpdiBpZD0iZWRpdERpdiIgc3R5bGU9ImJvcmRl
ci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20t
d2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29s
aWQ7IGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlk
OyBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IGJsYWNrOyBib3Jk
ZXItcmlnaHQtY29sb3I6IGJsYWNrOyBib3JkZXItYm90dG9tLWNvbG9yOiBibGFjazsgYm9yZGVy
LWxlZnQtY29sb3I6IGJsYWNrOyBoZWlnaHQ6IDIwMHB4OyB3aWR0aDogMzAwcHg7IG92ZXJmbG93
LXg6IGF1dG87IG92ZXJmbG93LXk6IGF1dG87IG1hcmdpbi10b3A6IDFweDsgbWFyZ2luLXJpZ2h0
OiAxcHg7IG1hcmdpbi1ib3R0b206IDFweDsgbWFyZ2luLWxlZnQ6IDFweDsgcGFkZGluZy10b3A6
IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWxl
ZnQ6IDBweDsgIiBjb250ZW50ZWRpdGFibGU9InRydWUiPgorICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgIDxkaXYgaWQ9ImVkaXREaXZJbmZvIj4KKyAgICAgICAgICA8cHJlPmRpdi5vd25lckRv
Y3VtZW50LmRlc2lnbk1vZGU6IG9mZjxicj5kaXYub3duZXJEb2N1bWVudC5ib2R5LmNvbnRlbnRF
ZGl0YWJsZTogZmFsc2U8YnI+ZGl2LmNvbnRlbnRFZGl0YWJsZTogdHJ1ZTxicj48L3ByZT48L2Rp
dj4KKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgIDwvdGFibGU+Cis8L2Rpdj4KKworPEhS
PgorPERJViBzdHlsZT0ibWFyZ2luOiAwcHg7cGFkZGluZzowcHg7cGFkZGluZy1sZWZ0OjEwcHg7
Zm9udC1mYW1pbHk6Q291cmllcjsiPgorICA8VEFCTEUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFj
aW5nPSIwIiB3aWR0aD0iMjAwcHgiIHN0eWxlPSJmb250LXNpemU6OXB0OyI+CisgICAgPFRCT0RZ
PgorICAgICAgPFRSPjxURCB3aWR0aD0iMTEwcHgiPnR5cGU6PC9URD48VEQgaWQ9InR5cGUiIHdp
ZHRoPSI5MHB4Ij5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+dGFnTmFtZTo8L1REPjxURCBp
ZD0idGFnTmFtZSI+W108L1REPjwvVFI+CisgICAgICA8VFI+PFREPmlkOjwvVEQ+PFREIGlkPSJ0
YWdJZCI+W108L1REPjwvVFI+CisgICAgICA8VFI+PFREPmtleUlkZW50aWZpZXI6PC9URD48VEQg
aWQ9ImtleWlkZW50aWZpZXIiPltdPC9URD48L1RSPgorICAgICAgPFRSPjxURD5rZXlMb2NhdGlv
bjo8L1REPjxURCBpZD0ia2V5bG9jYXRpb24iPltdPC9URD48L1RSPgorICAgICAgPFRSPjxURD5r
ZXlDb2RlOjwvVEQ+PFREIGlkPSJrZXljb2RlIj5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+
Y2hhckNvZGU6PC9URD48VEQgaWQ9ImNoYXJjb2RlIj5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48
VEQ+d2hpY2g6PC9URD48VEQgaWQ9IndoaWNoIj5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+
aXNUcnVzdGVkOjwvVEQ+PFREIGlkPSJpc3RydXN0ZWQiPltdPC9URD48L1RSPgorICAgICAgPFRS
PjxURCBjb2xzcGFuPSIyIj4tLS0tLS0tLS0tLS0tLS0tLS0tLS08L1REPjwvVFI+CisgICAgICA8
VFI+PFREIGNvbHNwYW49IjIiPk1vZGlmaWVyczwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+YWx0
OjwvVEQ+PFREIGlkPSJhbHQiPltdPC9URD48L1RSPgorICAgICAgPFRSPjxURD5jdHJsOjwvVEQ+
PFREIGlkPSJjdHJsIj5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+c2hpZnQ6PC9URD48VEQg
aWQ9InNoaWZ0Ij5bXTwvVEQ+PC9UUj4KKyAgICAgIDxUUj48VEQ+bWV0YTo8L1REPjxURCBpZD0i
bWV0YSI+W108L1REPjwvVFI+CisgICAgPC9UQk9EWT4KKyAgPC9UQUJMRT4KKzwvRElWPgorCisK
KworPC9CT0RZPjwvSFRNTD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zYWZhcmkv
ZnJhbWVzX2JlbmNobWFyay5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvc2FmYXJpL2ZyYW1lc19iZW5jaG1hcmsuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGEwNTkyNTU2MWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zYWZhcmkv
ZnJhbWVzX2JlbmNobWFyay5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHNjcmlwdD4KKyAgdmFyIHN0YXJ0OworICB2YXIgZG9tOworCisgIGZ1bmN0aW9uIHJ1bigpIHsK
KyAgICBpZiAoZG9tKSB7CisgICAgICBkb20ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkb20pOwor
ICAgIH0KKworICAgIGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZh
ciByZXN1bHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb20uYXBwZW5k
Q2hpbGQocmVzdWx0KTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbSk7CisKKyAg
ICBzdGFydCA9IERhdGUubm93KCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsr
KSB7CisgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7
CisgICAgICBpZnJhbWUuc3R5bGUud2lkdGggPSAnMjAwcHgnOworICAgICAgaWZyYW1lLnN0eWxl
LmhlaWdodCA9ICczMHB4JzsKKyAgICAgIGRvbS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgICAg
dmFyIGNvbnRlbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgnaGVsbG8sIHdvcmxkJyk7CisgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGNvbnRlbnQpOworICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9j
dW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nOworICAgIH0KKworICAgIHJlc3Vs
dC5pbm5lckhUTUwgPSAnRG9uZSEgJyArIChEYXRlLm5vdygpIC0gc3RhcnQpICsgJyBtcyc7Cisg
IH0KKzwvc2NyaXB0PgorPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IkdvISIgb25jbGljaz0i
cnVuKCkiPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW4uY3Nz
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVu
L3NjcmVlbi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgxNTI2
MTg1MGM1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbi5jc3MKQEAgLTAsMCArMSwxOSBAQAorKiB7
IAorICBtYXJnaW46IDA7IAorfQoraHRtbCwgYm9keSwgI291dHB1dCB7CisgIHdpZHRoOiAxMDAl
OworICBoZWlnaHQ6IDEwMCU7Cit9Cit0YWJsZSB7CisgIGJvcmRlcjogMHB4OworICBib3JkZXIt
Y29sbGFwc2U6IGNvbGxhcHNlOworICBib3JkZXItc3BhY2luZzogMHB4OworICBkaXNwbGF5OiB0
YWJsZTsKK30KK3RhYmxlIHRkIHsKKyAgcGFkZGluZzogMHB4OworfQorLmNlbGwgeworICBjb2xv
cjogYmxhY2s7Cit9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE2NjY2NWRhM2Q5Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Ny
ZWVuL3NjcmVlbi5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
PGhlYWQ+Cis8dGl0bGU+c2NyZWVuIHRlc3Q8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2NyZWVuLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InNjcmVlbi5jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzdHlsZT4KKyNjb250ZW50IHsKKyAgd2lkdGg6IDEwMCU7CisgIGhlaWdodDogMTAwJTsKK30K
Ky5yb3cgeworICBoZWlnaHQ6IDIwcHg7CisgIHdpZHRoOiAxMDAlOworfQorLmNvbHVtbiB7Cisg
IGhlaWdodDogMjAlOworICB3aWR0aDogMjBweDsKK30KKzwvc3R5bGU+Cis8dGFibGUgaWQ9ImNv
bnRlbnQiPgorPHRyIGNsYXNzPSJyb3cgcm93MSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4x
IGNlbGwiIGlkPSJjZWxsMTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4y
IGNlbGwiIGlkPSJjZWxsMTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4z
IGNlbGwiIGlkPSJjZWxsMTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40
IGNlbGwiIGlkPSJjZWxsMTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41
IGNlbGwiIGlkPSJjZWxsMTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93
MiI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMjEiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMjIiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMjMiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMjQiPiZuYnNwOzwv
dGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMjUiPiZuYnNwOzwv
dGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93MyI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4xIGNlbGwiIGlkPSJjZWxsMzEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4yIGNlbGwiIGlkPSJjZWxsMzIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW4zIGNlbGwiIGlkPSJjZWxsMzMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW40IGNlbGwiIGlkPSJjZWxsMzQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1
bW41IGNlbGwiIGlkPSJjZWxsMzUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cg
cm93NCI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNDEiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNDIiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNDMiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNDQiPiZuYnNw
OzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNDUiPiZuYnNw
OzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93NSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4xIGNlbGwiIGlkPSJjZWxsNTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4yIGNlbGwiIGlkPSJjZWxsNTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW4zIGNlbGwiIGlkPSJjZWxsNTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW40IGNlbGwiIGlkPSJjZWxsNTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBj
b2x1bW41IGNlbGwiIGlkPSJjZWxsNTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxz
Y3JpcHQ+Cit2YXIgaW5pdGlhbENvbG9yID0gMHgwRjBGMEY7Cit2YXIgc3RlcENvbG9yID0gMTAw
MDsKK3ZhciBjbnQgPSAxOworZm9yICh2YXIgaSA9IDE7IGkgPCA2OyBpKyspIHsKKyAgZm9yICh2
YXIgaiA9IDE7IGogPCA2OyBqKyspIHsKKyAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjZWxsJyArIGkgKyAnJyArIGopOworICAgIGVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRv
Q29sb3IoaW5pdGlhbENvbG9yICsgKGNudCAqIHN0ZXBDb2xvcikpOworICAgIGNudCsrOworICB9
Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9zY3JlZW4vc2NyZWVuLmpzIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMWQxNjg1OTgwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuLmpz
CkBAIC0wLDAgKzEsNyBAQAorZnVuY3Rpb24gdG9Db2xvcihudW0pIHsKKyAgbnVtID4+Pj0gMDsK
KyAgdmFyIGIgPSBudW0gJiAweEZGLAorICAgIGcgPSAobnVtICYgMHhGRjAwKSA+Pj4gOCwKKyAg
ICByID0gKG51bSAmIDB4RkYwMDAwKSA+Pj4gMTY7CisgIHJldHVybiAicmdiKCIgKyBbciwgZywg
Yl0uam9pbigiLCIpICsgIikiOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nj
cmVlbi9zY3JlZW5fZnJhbWUxLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX2ZyYW1lMS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNWIwM2FlMTMxZgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9z
Y3JlZW5fZnJhbWUxLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD48aGVhZD4KKzx0aXRsZT5zY3JlZW4gZnJhbWUxPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNjcmVlbi5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzY3JlZW4uY3NzIiAvPgorPC9oZWFkPgorPGJv
ZHkgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiPgorPHN0eWxlPgorI2NvbnRl
bnQgeworICB3aWR0aDogMTAwJTsKKyAgaGVpZ2h0OiAxMDAlOworfQorLnJvdyB7CisgIGhlaWdo
dDogMjBweDsKKyAgd2lkdGg6IDEwMCU7Cit9CisuY29sdW1uIHsKKyAgaGVpZ2h0OiAyMHB4Owor
ICB3aWR0aDogMjBweDsKK30KKzwvc3R5bGU+Cis8dGFibGUgaWQ9ImNvbnRlbnQiPgorPHRyIGNs
YXNzPSJyb3cgcm93MSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxs
MTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxs
MTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxs
MTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxs
MTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxs
MTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93MiI+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMjEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMjIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMjMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMjQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMjUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRy
IGNsYXNzPSJyb3cgcm93MyI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJj
ZWxsMzEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJj
ZWxsMzIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJj
ZWxsMzMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJj
ZWxsMzQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJj
ZWxsMzUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93NCI+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNDEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNDIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNDMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNDQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNDUiPiZuYnNwOzwvdGQ+Cis8L3RyPgor
PHRyIGNsYXNzPSJyb3cgcm93NSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlk
PSJjZWxsNTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlk
PSJjZWxsNTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlk
PSJjZWxsNTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlk
PSJjZWxsNTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlk
PSJjZWxsNTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxzY3JpcHQ+Cit2YXIgaW5p
dGlhbENvbG9yID0gMHhERkRGREY7Cit2YXIgc3RlcENvbG9yID0gMTAwMDsKK3ZhciBjbnQgPSAx
OworZm9yICh2YXIgaSA9IDE7IGkgPCA2OyBpKyspIHsKKyAgZm9yICh2YXIgaiA9IDE7IGogPCA2
OyBqKyspIHsKKyAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjZWxsJyArIGkgKyAn
JyArIGopOworICAgIGVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRvQ29sb3IoaW5pdGlhbENv
bG9yICsgKGNudCAqIHN0ZXBDb2xvcikpOworICAgIGNudCsrOworICB9Cit9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4v
c2NyZWVuX2ZyYW1lMi5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl9mcmFtZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uZTZlMTdlNjMwZjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVu
X2ZyYW1lMi5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+PGhl
YWQ+Cis8dGl0bGU+c2NyZWVuIGZyYW1lMjwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJzY3JlZW4uanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic2NyZWVuLmNzcyIgLz4KKzwvaGVhZD4KKzxib2R5IHN0
eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7Ij4KKzxzdHlsZT4KKyNjb250ZW50IHsK
KyAgd2lkdGg6IDEwMCU7CisgIGhlaWdodDogMTAwJTsKK30KKy5yb3cgeworICBoZWlnaHQ6IDIw
cHg7CisgIHdpZHRoOiAxMDAlOworfQorLmNvbHVtbiB7CisgIGhlaWdodDogMjBweDsKKyAgd2lk
dGg6IDIwcHg7Cit9Cis8L3N0eWxlPgorPHRhYmxlIGlkPSJjb250ZW50Ij4KKzx0ciBjbGFzcz0i
cm93IHJvdzEiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDExIj4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDEyIj4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDEzIj4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDE0Ij4m
bmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDE1Ij4m
bmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzIiPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDIxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDIyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDIzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDI0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1
bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDI1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFz
cz0icm93IHJvdzMiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDMx
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDMy
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDMz
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDM0
Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDM1
Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0icm93IHJvdzQiPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2VsbDQxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2VsbDQyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2VsbDQzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2VsbDQ0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJj
b2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2VsbDQ1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzx0ciBj
bGFzcz0icm93IHJvdzUiPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMSBjZWxsIiBpZD0iY2Vs
bDUxIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMiBjZWxsIiBpZD0iY2Vs
bDUyIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uMyBjZWxsIiBpZD0iY2Vs
bDUzIj4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNCBjZWxsIiBpZD0iY2Vs
bDU0Ij4mbmJzcDs8L3RkPgorPHRkIGNsYXNzPSJjb2x1bW4gY29sdW1uNSBjZWxsIiBpZD0iY2Vs
bDU1Ij4mbmJzcDs8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8c2NyaXB0PgordmFyIGluaXRpYWxD
b2xvciA9IDB4MEYwRjBGOwordmFyIHN0ZXBDb2xvciA9IDEwMDA7Cit2YXIgY250ID0gMTsKK2Zv
ciAodmFyIGkgPSAxOyBpIDwgNjsgaSsrKSB7CisgIGZvciAodmFyIGogPSAxOyBqIDwgNjsgaisr
KSB7CisgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2VsbCcgKyBpICsgJycgKyBq
KTsKKyAgICBlbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0b0NvbG9yKGluaXRpYWxDb2xvciAr
IChjbnQgKiBzdGVwQ29sb3IpKTsKKyAgICBjbnQrKzsKKyAgfQorfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVl
bl9mcmFtZXMuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL3NjcmVlbi9zY3JlZW5fZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjQ2ODUyZGNmNTdiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl9mcmFt
ZXMuaHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5zY3Jl
ZW4gdGVzdDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxmcmFtZXNldCBib3JkZXI9IjAiIGZyYW1lYm9y
ZGVyPSIwIiBmcmFtZXNwYWNpbmc9IjAiIGNvbHM9IjUwJSwgKiIgcm93cz0iKiI+CisgICAgPGZy
YW1lIGlkPSJmcmFtZTEiIHNyYz0ic2NyZWVuX2ZyYW1lMS5odG1sIi8+CisgICAgPGZyYW1lIGlk
PSJmcmFtZTIiIHNyYz0ic2NyZWVuX2ZyYW1lMi5odG1sIi8+Cis8L2ZyYW1lc2V0PgorCis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl9pZnJhbWVz
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9z
Y3JlZW4vc2NyZWVuX2lmcmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYWUzZWExZTI0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVuX2lmcmFtZXMuaHRt
bApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPjxoZWFkPgorPHRpdGxl
PlNjcmVlbiB0ZXN0PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHRhYmxlPjx0cj48dGQ+Cis8
aWZyYW1lIHNyYz0ic2NyZWVuX2ZyYW1lMS5odG1sIiBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndp
ZHRoPSIwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIGFsbG93dHJhbnNwYXJlbmN5PSJ0
cnVlIiBmcmFtZWJvcmRlcj0iMCIgaGVpZ2h0PSI1MDAiIHNjcm9sbGluZz0ibm8iIHdpZHRoPSI1
MDAiIGlkPSJpZnJhbWUxIiBuYW1lPSJpZnJhbWUxLW5hbWUiPjwvaWZyYW1lPgorPC90ZD48dGQ+
Cis8aWZyYW1lIHNyYz0ic2NyZWVuX2ZyYW1lMi5odG1sIiBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdp
bndpZHRoPSIwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIGFsbG93dHJhbnNwYXJlbmN5
PSJ0cnVlIiBmcmFtZWJvcmRlcj0iMCIgaGVpZ2h0PSI1MDAiIHNjcm9sbGluZz0ibm8iIHdpZHRo
PSI1MDAiIGlkPSJpZnJhbWUyIiBuYW1lPSJpZnJhbWUyLW5hbWUiPjwvaWZyYW1lPgorPC90ZD48
L3RyPjwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvc2NyZWVuL3NjcmVlbl90b29fbG9uZy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl90b29fbG9uZy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZDAwZjAyNzBkMgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3NjcmVlbi9zY3JlZW5fdG9vX2xvbmcuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPjxoZWFkPgorPHRpdGxlPnNjcmVlbiB0ZXN0PC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNjcmVlbi5qcyI+PC9zY3JpcHQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzY3JlZW4uY3NzIiAvPgor
PC9oZWFkPgorPGJvZHk+Cis8c3R5bGU+CisjY29udGVudCB7CisgIHdpZHRoOiA3MDAwMHB4Owor
ICBoZWlnaHQ6IDcwMDAwcHg7Cit9CisuY29sdW1uIHsKKyAgaGVpZ2h0OiAxNDAwMHB4OworICB3
aWR0aDogMTQwMDBweDsKK30KKzwvc3R5bGU+Cis8dGFibGUgaWQ9ImNvbnRlbnQiPgorPHRyIGNs
YXNzPSJyb3cgcm93MSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxs
MTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxs
MTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxs
MTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxs
MTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxs
MTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93MiI+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsMjEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsMjIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsMjMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsMjQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9
ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsMjUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRy
IGNsYXNzPSJyb3cgcm93MyI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJj
ZWxsMzEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJj
ZWxsMzIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJj
ZWxsMzMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJj
ZWxsMzQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJj
ZWxsMzUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJyb3cgcm93NCI+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlkPSJjZWxsNDEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlkPSJjZWxsNDIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlkPSJjZWxsNDMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlkPSJjZWxsNDQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xh
c3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlkPSJjZWxsNDUiPiZuYnNwOzwvdGQ+Cis8L3RyPgor
PHRyIGNsYXNzPSJyb3cgcm93NSI+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4xIGNlbGwiIGlk
PSJjZWxsNTEiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4yIGNlbGwiIGlk
PSJjZWxsNTIiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW4zIGNlbGwiIGlk
PSJjZWxsNTMiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW40IGNlbGwiIGlk
PSJjZWxsNTQiPiZuYnNwOzwvdGQ+Cis8dGQgY2xhc3M9ImNvbHVtbiBjb2x1bW41IGNlbGwiIGlk
PSJjZWxsNTUiPiZuYnNwOzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxzY3JpcHQ+Cit2YXIgaW5p
dGlhbENvbG9yID0gMHgwRjBGMEY7Cit2YXIgc3RlcENvbG9yID0gMTAwMDsKK3ZhciBjbnQgPSAx
OworZm9yICh2YXIgaSA9IDE7IGkgPCA2OyBpKyspIHsKKyAgZm9yICh2YXIgaiA9IDE7IGogPCA2
OyBqKyspIHsKKyAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjZWxsJyArIGkgKyAn
JyArIGopOworICAgIGVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRvQ29sb3IoaW5pdGlhbENv
bG9yICsgKGNudCAqIHN0ZXBDb2xvcikpOworICAgIGNudCsrOworICB9Cit9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4v
c2NyZWVuX3hfbG9uZy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl94X2xvbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMWE2YTEwMDJmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JlZW4vc2NyZWVu
X3hfbG9uZy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+PGhl
YWQ+Cis8dGl0bGU+c2NyZWVuIHRlc3Q8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2NyZWVuLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9InNjcmVlbi5jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
dHlsZT4KKyNjb250ZW50IHsKKyAgd2lkdGg6IDMwMDBweDsKKyAgaGVpZ2h0OiAxMDAlOworfQor
LnJvdyB7CisgIGhlaWdodDogMjBweDsKKyAgd2lkdGg6IDMwMDBweDsKK30KKy5jb2x1bW4gewor
ICBoZWlnaHQ6IDIwJTsKKyAgd2lkdGg6IDYwMHB4OworfQorPC9zdHlsZT4KKzx0YWJsZSBpZD0i
Y29udGVudCI+Cis8dHIgY2xhc3M9InJvdyByb3cxIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVt
bjEgY2VsbCIgaWQ9ImNlbGwxMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVt
bjIgY2VsbCIgaWQ9ImNlbGwxMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVt
bjMgY2VsbCIgaWQ9ImNlbGwxMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVt
bjQgY2VsbCIgaWQ9ImNlbGwxNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVt
bjUgY2VsbCIgaWQ9ImNlbGwxNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyBy
b3cyIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwyMSI+Jm5ic3A7
PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwyMiI+Jm5ic3A7
PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwyMyI+Jm5ic3A7
PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwyNCI+Jm5ic3A7
PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwyNSI+Jm5ic3A7
PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3czIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNv
bHVtbjEgY2VsbCIgaWQ9ImNlbGwzMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNv
bHVtbjIgY2VsbCIgaWQ9ImNlbGwzMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNv
bHVtbjMgY2VsbCIgaWQ9ImNlbGwzMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNv
bHVtbjQgY2VsbCIgaWQ9ImNlbGwzNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNv
bHVtbjUgY2VsbCIgaWQ9ImNlbGwzNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJv
dyByb3c0Ij4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGw0MSI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGw0MiI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGw0MyI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGw0NCI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGw0NSI+Jm5i
c3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3c1Ij4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGw1MSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGw1MiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGw1MyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGw1NCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGw1NSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgor
PHNjcmlwdD4KK3ZhciBpbml0aWFsQ29sb3IgPSAweDBGMEYwRjsKK3ZhciBzdGVwQ29sb3IgPSAx
MDAwOwordmFyIGNudCA9IDE7Citmb3IgKHZhciBpID0gMTsgaSA8IDY7IGkrKykgeworICBmb3Ig
KHZhciBqID0gMTsgaiA8IDY7IGorKykgeworICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NlbGwnICsgaSArICcnICsgaik7CisgICAgZWwuc3R5bGUuYmFja2dyb3VuZENvbG9yID0g
dG9Db2xvcihpbml0aWFsQ29sb3IgKyAoY250ICogc3RlcENvbG9yKSk7CisgICAgY250Kys7Cisg
IH0KK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5feF90b29fbG9uZy5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl94X3Rvb19sb25n
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNmZWUwMDVkNTk0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl94X3Rvb19sb25nLmh0bWwKQEAgLTAsMCArMSw3MiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD48aGVhZD4KKzx0aXRsZT5zY3JlZW4gdGVzdDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzY3JlZW4uanMiPjwvc2Ny
aXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic2NyZWVu
LmNzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPHN0eWxlPgorI2NvbnRlbnQgeworICB3aWR0aDog
NzAwMDBweDsKKyAgaGVpZ2h0OiAxMDAlOworfQorLnJvdyB7CisgIGhlaWdodDogMjBweDsKKyAg
d2lkdGg6IDcwMDAwcHg7Cit9CisuY29sdW1uIHsKKyAgaGVpZ2h0OiAyMCU7CisgIHdpZHRoOiAx
NDAwMHB4OworfQorPC9zdHlsZT4KKzx0YWJsZSBpZD0iY29udGVudCI+Cis8dHIgY2xhc3M9InJv
dyByb3cxIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwxMSI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwxMiI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwxMyI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwxNCI+Jm5i
c3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwxNSI+Jm5i
c3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3cyIj4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwyMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwyMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwyMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwyNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1u
IGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwyNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9
InJvdyByb3czIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwzMSI+
Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwzMiI+
Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwzMyI+
Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwzNCI+
Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwzNSI+
Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3c0Ij4KKzx0ZCBjbGFzcz0iY29s
dW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGw0MSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29s
dW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGw0MiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29s
dW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGw0MyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29s
dW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGw0NCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29s
dW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGw0NSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xh
c3M9InJvdyByb3c1Ij4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGw1
MSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGw1
MiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGw1
MyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGw1
NCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGw1
NSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPHNjcmlwdD4KK3ZhciBpbml0aWFsQ29s
b3IgPSAweDBGMEYwRjsKK3ZhciBzdGVwQ29sb3IgPSAxMDAwOwordmFyIGNudCA9IDE7Citmb3Ig
KHZhciBpID0gMTsgaSA8IDY7IGkrKykgeworICBmb3IgKHZhciBqID0gMTsgaiA8IDY7IGorKykg
eworICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NlbGwnICsgaSArICcnICsgaik7
CisgICAgZWwuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gdG9Db2xvcihpbml0aWFsQ29sb3IgKyAo
Y250ICogc3RlcENvbG9yKSk7CisgICAgY250Kys7CisgIH0KK30KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5f
eV9sb25nLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9zY3JlZW4vc2NyZWVuX3lfbG9uZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4zMTczM2UwNzNmMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NjcmVlbi9zY3JlZW5feV9sb25n
Lmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD48aGVhZD4KKzx0
aXRsZT5zY3JlZW4gdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJzY3JlZW4uanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0ic2NyZWVuLmNzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPHN0eWxlPgor
I2NvbnRlbnQgeworICB3aWR0aDogMTAwJTsKKyAgaGVpZ2h0OiAzMDAwcHg7Cit9Cisucm93IHsK
KyAgaGVpZ2h0OiA2MDBweDsKKyAgd2lkdGg6IDEwMCU7Cit9CisuY29sdW1uIHsKKyAgaGVpZ2h0
OiAyMCU7CisgIHdpZHRoOiAyMHB4OworfQorPC9zdHlsZT4KKzx0YWJsZSBpZD0iY29udGVudCI+
Cis8dHIgY2xhc3M9InJvdyByb3cxIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIg
aWQ9ImNlbGwxMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIg
aWQ9ImNlbGwxMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIg
aWQ9ImNlbGwxMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIg
aWQ9ImNlbGwxNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIg
aWQ9ImNlbGwxNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3cyIj4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwyMSI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwyMiI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwyMyI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwyNCI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwyNSI+Jm5ic3A7PC90ZD4KKzwv
dHI+Cis8dHIgY2xhc3M9InJvdyByb3czIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2Vs
bCIgaWQ9ImNlbGwzMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2Vs
bCIgaWQ9ImNlbGwzMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2Vs
bCIgaWQ9ImNlbGwzMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2Vs
bCIgaWQ9ImNlbGwzNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2Vs
bCIgaWQ9ImNlbGwzNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3c0Ij4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGw0MSI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGw0MiI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGw0MyI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGw0NCI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGw0NSI+Jm5ic3A7PC90ZD4K
KzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3c1Ij4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEg
Y2VsbCIgaWQ9ImNlbGw1MSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIg
Y2VsbCIgaWQ9ImNlbGw1MiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMg
Y2VsbCIgaWQ9ImNlbGw1MyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQg
Y2VsbCIgaWQ9ImNlbGw1NCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUg
Y2VsbCIgaWQ9ImNlbGw1NSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPHNjcmlwdD4K
K3ZhciBpbml0aWFsQ29sb3IgPSAweDBGMEYwRjsKK3ZhciBzdGVwQ29sb3IgPSAxMDAwOwordmFy
IGNudCA9IDE7Citmb3IgKHZhciBpID0gMTsgaSA8IDY7IGkrKykgeworICBmb3IgKHZhciBqID0g
MTsgaiA8IDY7IGorKykgeworICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NlbGwn
ICsgaSArICcnICsgaik7CisgICAgZWwuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gdG9Db2xvcihp
bml0aWFsQ29sb3IgKyAoY250ICogc3RlcENvbG9yKSk7CisgICAgY250Kys7CisgIH0KK30KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L3NjcmVlbi9zY3JlZW5feV90b29fbG9uZy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2NyZWVuL3NjcmVlbl95X3Rvb19sb25nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRiZWY5MzYxYTQ4Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvc2NyZWVuL3NjcmVlbl95X3Rvb19sb25nLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD48aGVhZD4KKzx0aXRsZT5zY3JlZW4gdGVzdDwvdGl0bGU+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzY3JlZW4uanMiPjwvc2NyaXB0PgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic2NyZWVuLmNzcyIgLz4K
KzwvaGVhZD4KKzxib2R5PgorPHN0eWxlPgorI2NvbnRlbnQgeworICB3aWR0aDogMTAwJTsKKyAg
aGVpZ2h0OiA3MDAwMHB4OworfQorLnJvdyB7CisgIGhlaWdodDogMTQwMDBweDsKKyAgd2lkdGg6
IDEwMCU7Cit9CisuY29sdW1uIHsKKyAgaGVpZ2h0OiAyMCU7CisgIHdpZHRoOiAyMHB4OworfQor
PC9zdHlsZT4KKzx0YWJsZSBpZD0iY29udGVudCI+Cis8dHIgY2xhc3M9InJvdyByb3cxIj4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwxMSI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwxMiI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwxMyI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwxNCI+Jm5ic3A7PC90ZD4KKzx0
ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwxNSI+Jm5ic3A7PC90ZD4KKzwv
dHI+Cis8dHIgY2xhc3M9InJvdyByb3cyIj4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2Vs
bCIgaWQ9ImNlbGwyMSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2Vs
bCIgaWQ9ImNlbGwyMiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2Vs
bCIgaWQ9ImNlbGwyMyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2Vs
bCIgaWQ9ImNlbGwyNCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2Vs
bCIgaWQ9ImNlbGwyNSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3czIj4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGwzMSI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGwzMiI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGwzMyI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGwzNCI+Jm5ic3A7PC90ZD4K
Kzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGwzNSI+Jm5ic3A7PC90ZD4K
KzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3c0Ij4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEg
Y2VsbCIgaWQ9ImNlbGw0MSI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIg
Y2VsbCIgaWQ9ImNlbGw0MiI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMg
Y2VsbCIgaWQ9ImNlbGw0MyI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQg
Y2VsbCIgaWQ9ImNlbGw0NCI+Jm5ic3A7PC90ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUg
Y2VsbCIgaWQ9ImNlbGw0NSI+Jm5ic3A7PC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9InJvdyByb3c1
Ij4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjEgY2VsbCIgaWQ9ImNlbGw1MSI+Jm5ic3A7PC90
ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjIgY2VsbCIgaWQ9ImNlbGw1MiI+Jm5ic3A7PC90
ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjMgY2VsbCIgaWQ9ImNlbGw1MyI+Jm5ic3A7PC90
ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjQgY2VsbCIgaWQ9ImNlbGw1NCI+Jm5ic3A7PC90
ZD4KKzx0ZCBjbGFzcz0iY29sdW1uIGNvbHVtbjUgY2VsbCIgaWQ9ImNlbGw1NSI+Jm5ic3A7PC90
ZD4KKzwvdHI+Cis8L3RhYmxlPgorPHNjcmlwdD4KK3ZhciBpbml0aWFsQ29sb3IgPSAweDBGMEYw
RjsKK3ZhciBzdGVwQ29sb3IgPSAxMDAwOwordmFyIGNudCA9IDE7Citmb3IgKHZhciBpID0gMTsg
aSA8IDY7IGkrKykgeworICBmb3IgKHZhciBqID0gMTsgaiA8IDY7IGorKykgeworICAgIGVsID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NlbGwnICsgaSArICcnICsgaik7CisgICAgZWwuc3R5
bGUuYmFja2dyb3VuZENvbG9yID0gdG9Db2xvcihpbml0aWFsQ29sb3IgKyAoY250ICogc3RlcENv
bG9yKSk7CisgICAgY250Kys7CisgIH0KK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbC5odG1sIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNkNTIxNGYxNWVmCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Ny
b2xsLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGR1bXAoZXZlbnQpIHsKKwl2YXIgZWx0ID0gZXZlbnQudGFy
Z2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7CisJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsaWNr
ZWQnKS5pbm5lckhUTUwgPSBlbHQuaW5uZXJIVE1MOworfQorPC9zY3JpcHQ+Cis8ZGl2IHN0eWxl
PSdoZWlnaHQ6IDE1MHB4Jz48L2Rpdj4KKzx1bCBzdHlsZT0nb3ZlcmZsb3c6IHNjcm9sbDsgd2lk
dGg6IDE1MHB4OyBoZWlnaHQ6IDgwcHg7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdycgb25jbGlj
az0iZHVtcChldmVudCkiPgorPGxpIGlkPSdsaW5lMSc+bGluZTE8L2xpPgorPGxpIGlkPSdsaW5l
Mic+bGluZTI8L2xpPgorPGxpIGlkPSdsaW5lMyc+bGluZTM8L2xpPgorPGxpIGlkPSdsaW5lNCc+
bGluZTQ8L2xpPgorPGxpIGlkPSdsaW5lNSc+bGluZTU8L2xpPgorPGxpIGlkPSdsaW5lNic+bGlu
ZTY8L2xpPgorPGxpIGlkPSdsaW5lNyc+bGluZTc8L2xpPgorPGxpIGlkPSdsaW5lOCc+bGluZTg8
L2xpPgorPGxpIGlkPSdsaW5lOSc+bGluZTk8L2xpPgorPC91bD4KKzxkaXY+CitDbGlja2VkOiA8
c3BhbiBpZD0nY2xpY2tlZCc+PC9zcGFuPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9z
Y3JvbGwyLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9zY3JvbGwyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjBlYTY2ZDM3OGMyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsMi5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzx1bCBzdHlsZT0nb3ZlcmZsb3c6IHNjcm9s
bDsgaGVpZ2h0OiAxMDBweDsnPgorPGxpPjwvbGk+Cis8bGk+PC9saT4KKzxsaSBpZD0iZGVzaXJl
ZCI+VGV4dDwvbGk+Cis8bGk+PC9saT4KKzxsaT48L2xpPgorPGxpPjwvbGk+Cis8bGk+PC9saT4K
KzxsaT48L2xpPgorPGxpPjwvbGk+Cis8bGk+PC9saT4KKzxsaT48L2xpPgorPGxpPjwvbGk+Cis8
bGk+PC9saT4KKzwvdWw+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGwzLmh0bWwgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGwzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFhYTE3MDkyOTIzCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvc2Nyb2xsMy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+Cis8Ym9keT4KKzxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAv
PjwvYnIgLz48YnIgLz4KKzxidXR0b24gaWQ9ImJ1dHRvbjEiPkJ1dHRvbjE8L2J1dHRvbj4KKzxi
ciAvPjxiciAvPjxiciAvPjxiciAvPgorCismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8YnV0
dG9uIGlkPSJidXR0b24yIj5CdXR0b24yPC9idXR0b24+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Cis8YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz48YnIgLz48L2JyIC8+PGJyIC8+PGJyIC8+PC9iciAvPjxiciAvPjxiciAvPjwvYnIgLz48
YnIgLz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGw0Lmh0bWwgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGw0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY1MmE3NzhlYjdhCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvc2Nyb2xsNC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+Cis8Ym9keT4KKyAgPGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+
PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJyIC8+PGJy
IC8+PGJyIC8+PGJyIC8+PGJyIC8+CisgIDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9InJhZGlvIiAv
PgorICA8YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIg
Lz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48
YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIg
Lz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48
YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIg
Lz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48
YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIg
Lz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48
YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIg
Lz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz48
YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9s
bDUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2Vi
L3Njcm9sbDUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjM0
NWE4YzNmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGw1Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+
Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGR1bXAodGV4dCkg
eworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xpY2tlZCcpLmlubmVySFRNTCA9IHRleHQ7
Cit9Cis8L3NjcmlwdD4KKzxkaXYgc3R5bGU9J292ZXJmbG93OiBzY3JvbGw7IHdpZHRoOiAxNTBw
eDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93JyBpZD0ib3V0ZXIiPgor
ICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogNTAwMHB4OyBiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7IiBvbmNsaWNrPSJkdW1wKCdjbGlja2VkJykiIGlkPSJpbm5lciI+CisgIDwvZGl2
PgorPC9kaXY+Cis8ZGl2PgorQ2xpY2tlZDogPHNwYW4gaWQ9J2NsaWNrZWQnPjwvc3Bhbj4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhfaGVp
Z2h0X2Fib3ZlXzIwMC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhfaGVpZ2h0X2Fib3ZlXzIwMC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWIzYmY0N2Q1NQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9mcmFtZV93aXRoX2hlaWdodF9hYm92ZV8yMDAuaHRt
bApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0
aXRsZT5DaGlsZCBmcmFtZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGgxPlRoaXMgaXMg
YSBzY3JvbGxpbmcgZnJhbWUgdGVzdDwvaDE+CisgIDxkaXY+CisgICAgPHRhYmxlPgorICAgICAg
PHRyIGhlaWdodD0iNTBweCI+CisgICAgICAgIDx0ZD5GaXJzdCByb3c8L3RkPgorICAgICAgPC90
cj4KKyAgICAgIDx0ciBoZWlnaHQ9IjUwcHgiPgorICAgICAgICA8dGQ+U2Vjb25kIHJvdzwvdGQ+
CisgICAgICA8L3RyPgorICAgICAgPHRyIGhlaWdodD0iNTBweCI+CisgICAgICAgIDx0ZD5UaGly
ZCByb3c8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0ciBoZWlnaHQ9IjUwcHgiPgorICAgICAg
ICA8dGQ+Rm91cnRoIHJvdzwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwvZGl2
PgorICA8aW5wdXQgdHlwZT0nY2hlY2tib3gnIG5hbWU9J3Njcm9sbF9jaGVja2JveCcgLz4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdf
dGVzdHMvZnJhbWVfd2l0aF9oZWlnaHRfYWJvdmVfMjAwMC5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dp
dGhfaGVpZ2h0X2Fib3ZlXzIwMDAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNjFmZmU4NWRhNTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvZnJhbWVfd2l0
aF9oZWlnaHRfYWJvdmVfMjAwMC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPkNoaWxkIGZyYW1lPC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICA8aDE+VGhpcyBpcyBhIHRhbGwgZnJhbWUgdGVzdDwvaDE+CisgIDxkaXY+Cisg
ICAgPHRhYmxlPgorICAgICAgPHRyIGhlaWdodD0iNTAwcHgiPgorICAgICAgICA8dGQ+Rmlyc3Qg
cm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHIgaGVpZ2h0PSI1MDBweCI+CisgICAgICAg
IDx0ZD5TZWNvbmQgcm93PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHIgaGVpZ2h0PSI1MDBw
eCI+CisgICAgICAgIDx0ZD5UaGlyZCByb3c8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0ciBo
ZWlnaHQ9IjUwMHB4Ij4KKyAgICAgICAgPHRkPkZvdXJ0aCByb3c8L3RkPgorICAgICAgPC90cj4K
KyAgICA8L3RhYmxlPgorICA8L2Rpdj4KKyAgPGlucHV0IHR5cGU9J2NoZWNrYm94JyBuYW1lPSdj
aGVja2JveCcgLz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3Jj
L3dlYi9zY3JvbGxpbmdfdGVzdHMvZnJhbWVfd2l0aF9uZXN0ZWRfc2Nyb2xsaW5nX2ZyYW1lLmh0
bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3Jv
bGxpbmdfdGVzdHMvZnJhbWVfd2l0aF9uZXN0ZWRfc2Nyb2xsaW5nX2ZyYW1lLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1MzAxMzg2OTk1Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
c2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhfbmVzdGVkX3Njcm9sbGluZ19mcmFtZS5odG1sCkBA
IC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxl
PldlbGNvbWUgUGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj4KKyAgICA8aWZy
YW1lIG5hbWU9Im5lc3RlZF9zY3JvbGxpbmdfZnJhbWUiIHNyYz0iZnJhbWVfd2l0aF9oZWlnaHRf
YWJvdmVfMjAwLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iMjAwIiA+PC9pZnJhbWU+CisgIDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhfbmVz
dGVkX3Njcm9sbGluZ19mcmFtZV9vdXRfb2Zfdmlldy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhf
bmVzdGVkX3Njcm9sbGluZ19mcmFtZV9vdXRfb2Zfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NzgxYWViOWZhMAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190
ZXN0cy9mcmFtZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVfb3V0X29mX3ZpZXcuaHRtbApA
QCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRs
ZT5XZWxjb21lIFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9Imhl
aWdodDogNTAwMHB4OyI+UGxhY2Vob2xkZXI8L2Rpdj4KKyAgPGRpdj4KKyAgICA8aWZyYW1lIG5h
bWU9Im5lc3RlZF9zY3JvbGxpbmdfZnJhbWUiIHNyYz0iZnJhbWVfd2l0aF9oZWlnaHRfYWJvdmVf
MjAwLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iMjAwIiA+PC9pZnJhbWU+CisgIDwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL2ZyYW1lX3dpdGhfc21hbGxfaGVp
Z2h0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9zY3JvbGxpbmdfdGVzdHMvZnJhbWVfd2l0aF9zbWFsbF9oZWlnaHQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDQ3ZGUwZjE4MzEKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3Jv
bGxpbmdfdGVzdHMvZnJhbWVfd2l0aF9zbWFsbF9oZWlnaHQuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5DaGlsZCBmcmFtZTwv
dGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGgxPlRoaXMgaXMgYSBub24tc2Nyb2xsaW5nIGZy
YW1lIHRlc3Q8L2gxPgorICA8aW5wdXQgdHlwZT0nY2hlY2tib3gnIG5hbWU9J2NoZWNrYm94JyAv
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9s
bGluZ190ZXN0cy9wYWdlX3dpdGhfZG91YmxlX292ZXJmbG93X2F1dG8uaHRtbCBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9w
YWdlX3dpdGhfZG91YmxlX292ZXJmbG93X2F1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMDFiN2MzMDU4ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMv
cGFnZV93aXRoX2RvdWJsZV9vdmVyZmxvd19hdXRvLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3aXRoIG92ZXJmbG93
OiBhdXRvPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICBodG1sLCBib2R5
IHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxk
aXYgc3R5bGU9ImhlaWdodDogNTAwMHB4OyI+UGxhY2Vob2xkZXI8L2Rpdj4KKyAgPGRpdj4KKyAg
ICA8YSBpZD0ibGluayIgaHJlZj0idGFyZ2V0X3BhZ2UuaHRtbCI+Q2xpY2sgbWUhPC9hPgorICA8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfZnJh
bWVfb3V0X29mX3ZpZXcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfZnJhbWVfb3V0X29mX3ZpZXcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzUzNmU0MWQ3MzcK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX2ZyYW1lX291dF9vZl92aWV3Lmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8
dGl0bGU+V2VsY29tZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxl
PSJoZWlnaHQ6IDUwMDBweDsiPlBsYWNlaG9sZGVyPC9kaXY+CisgIDxkaXY+CisgICAgPGlmcmFt
ZSBuYW1lPSJmcmFtZSIgc3JjPSJmcmFtZV93aXRoX3NtYWxsX2hlaWdodC5odG1sIiB3aWR0aD0i
ODAwIiBoZWlnaHQ9IjIwMCIgPjwvaWZyYW1lPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMv
d2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfbmVzdGVkX3Njcm9sbGluZ19mcmFtZXMuaHRt
bCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9s
bGluZ190ZXN0cy9wYWdlX3dpdGhfbmVzdGVkX3Njcm9sbGluZ19mcmFtZXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTViNzYwMjJiYjQKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9z
Y3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVzLmh0bWwKQEAg
LTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+
V2VsY29tZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PgorICAgIDxpZnJh
bWUgbmFtZT0ic2Nyb2xsaW5nX2ZyYW1lIiBzcmM9ImZyYW1lX3dpdGhfbmVzdGVkX3Njcm9sbGlu
Z19mcmFtZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjE1MCIgPjwvaWZyYW1lPgorICA8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfbmVzdGVk
X3Njcm9sbGluZ19mcmFtZXNfb3V0X29mX3ZpZXcuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfbmVz
dGVkX3Njcm9sbGluZ19mcmFtZXNfb3V0X29mX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uZjc5ZjdjODQ4NmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVz
dHMvcGFnZV93aXRoX25lc3RlZF9zY3JvbGxpbmdfZnJhbWVzX291dF9vZl92aWV3Lmh0bWwKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+
V2VsY29tZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJoZWln
aHQ6IDUwMDBweDsiPlBsYWNlaG9sZGVyPC9kaXY+CisgIDxkaXY+CisgICAgPGlmcmFtZSBuYW1l
PSJzY3JvbGxpbmdfZnJhbWUiIHNyYz0iZnJhbWVfd2l0aF9uZXN0ZWRfc2Nyb2xsaW5nX2ZyYW1l
X291dF9vZl92aWV3Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iMTUwIiA+PC9pZnJhbWU+Cisg
IDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9u
b25fc2Nyb2xsaW5nX2ZyYW1lLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX25vbl9zY3JvbGxpbmdf
ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGE0OTNm
YTVkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX25vbl9zY3JvbGxpbmdf
ZnJhbWUuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgIDx0aXRsZT5XZWxjb21lIFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxk
aXY+CisgICAgPGlmcmFtZSBuYW1lPSJzY3JvbGxpbmdfZnJhbWUiIHNyYz0iZnJhbWVfd2l0aF9o
ZWlnaHRfYWJvdmVfMjAwLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iMjAwIiBzY3JvbGxpbmc9
Im5vIj48L2lmcmFtZT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdf
dGVzdHMvcGFnZV93aXRoX3BhcnRpYWxseV9oaWRkZW5fZWxlbWVudC5odG1sIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3Bh
Z2Vfd2l0aF9wYXJ0aWFsbHlfaGlkZGVuX2VsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uY2E1ZjcxNTEzOTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVz
dHMvcGFnZV93aXRoX3BhcnRpYWxseV9oaWRkZW5fZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhZ2Ugd2l0aCBw
YXJ0aWFsbHkgaGlkZGVuIGVsZW1lbnQ8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYg
c3R5bGU9IndpZHRoOjIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBvdmVyZmxvdzogYXV0bzsiPgorICAg
IDxkaXYgc3R5bGU9ImhlaWdodDogMTc1cHg7IHdpZHRoOiAyNDBweDsiPlBsYWNlaG9sZGVyPC9k
aXY+CisgICAgPGRpdj4KKyAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBzdHlsZT0iaGVpZ2h0
OiA0MHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94IiBpZD0iYnRuIiBvbmNsaWNrPSJ3aW5kb3cu
bG9jYXRpb249J3RhcmdldF9wYWdlLmh0bWwnIj5DbGljayBtZSE8L2J1dHRvbj4KKyAgICA8L2Rp
dj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93
aXRoX3Njcm9sbGluZ19mcmFtZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9zY3JvbGxpbmdfZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2I1ZDUzYTQ0
YmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9j
b21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3Njcm9sbGluZ19mcmFtZS5o
dG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
PHRpdGxlPldlbGNvbWUgUGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj4KKyAg
ICA8aWZyYW1lIG5hbWU9InNjcm9sbGluZ19mcmFtZSIgc3JjPSJmcmFtZV93aXRoX2hlaWdodF9h
Ym92ZV8yMDAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSIyMDAiID48L2lmcmFtZT4KKyAgPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3Njcm9s
bGluZ19mcmFtZV9vdXRfb2Zfdmlldy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9zY3JvbGxpbmdf
ZnJhbWVfb3V0X29mX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uNWRmMTExNWMyNGYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3Nj
cm9sbGluZ19mcmFtZV9vdXRfb2Zfdmlldy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPldlbGNvbWUgUGFnZTwvdGl0bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAwcHg7Ij5QbGFjZWhvbGRl
cjwvZGl2PgorICA8ZGl2PgorICAgIDxpZnJhbWUgbmFtZT0ic2Nyb2xsaW5nX2ZyYW1lIiBzcmM9
ImZyYW1lX3dpdGhfaGVpZ2h0X2Fib3ZlXzIwMC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjIw
MCIgPjwvaWZyYW1lPgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190
ZXN0cy9wYWdlX3dpdGhfdGFsbF9mcmFtZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF90YWxsX2Zy
YW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI3Y2ZhZjVh
M2E5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF90YWxsX2ZyYW1lLmh0bWwK
QEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0
bGU+V2VsY29tZSBQYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PgorICAgIDxp
ZnJhbWUgbmFtZT0idGFsbF9mcmFtZSIgc3JjPSJmcmFtZV93aXRoX2hlaWdodF9hYm92ZV8yMDAw
Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iMjUwMCIgPjwvaWZyYW1lPgorICA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfeV9vdmVyZmxvd19h
dXRvLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9zY3JvbGxpbmdfdGVzdHMvcGFnZV93aXRoX3lfb3ZlcmZsb3dfYXV0by5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNTcxNmU3MzEyYgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nj
cm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfeV9vdmVyZmxvd19hdXRvLmh0bWwKQEAgLTAsMCArMSwx
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+UGFnZSB3aXRo
IG92ZXJmbG93OiBhdXRvPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJ3
aWR0aDoxMDAlOyBoZWlnaHQ6IDUwMHB4OyBvdmVyZmxvdzogaGlkZGVuOyBvdmVyZmxvdy15OiBh
dXRvOyI+CisgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA1MDAwcHg7IHdpZHRoOiA1MDAwcHg7Ij5Q
bGFjZWhvbGRlcjwvZGl2PgorICAgIDxkaXY+CisgICAgICA8YSBpZD0ibGluayIgaHJlZj0idGFy
Z2V0X3BhZ2UuaHRtbCI+Q2xpY2sgbWUhPC9hPgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3Njcm9sbGluZ190ZXN0cy90YXJnZXRfcGFnZS5odG1sIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3Rz
L3RhcmdldF9wYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjA0NTdhODIyZjZjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Nyb2xsaW5nX3Rlc3RzL3RhcmdldF9wYWdlLmh0bWwK
QEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+
Q2xpY2tlZCBTdWNjZXNzZnVsbHkhPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGgxPkNsaWNr
ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvc2VsZWN0UGFnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2VsZWN0UGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iN2IyNWI0YjIzNQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NlbGVjdFBhZ2Uu
aHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
bG9vc2UuZHRkIj4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT5NdWx0
aXBsZSBTZWxlY3Rpb24gdGVzdCBwYWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8c2Vs
ZWN0IGlkPSJzZWxlY3RXaXRob3V0TXVsdGlwbGUiPgorICAgIDxvcHRpb24gdmFsdWU9Im9uZSI+
b25lPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0idHdvIiAvPnR3bzwvb3B0aW9uPgorICA8
L3NlbGVjdD4KKworICA8c2VsZWN0IGlkPSJzZWxlY3RXaXRoTXVsdGlwbGVFcXVhbHNNdWx0aXBs
ZSIgbXVsdGlwbGU9Im11bHRpcGxlIj4KKyAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIg
bGFiZWw9ImVtbWVudGFsIj5FbW1lbnRhbDwvb3B0aW9uPgorICAgIDxvcHRpb24gbGFiZWw9InJv
cXVlZm9ydCI+Um9xdWVmb3J0PC9vcHRpb24+CisgICAgPG9wdGlvbiBsYWJlbD0icGFybWlnaWFu
byI+UGFybWlnaWFubzwvb3B0aW9uPgorICAgIDxvcHRpb24gbGFiZWw9ImNoZWRkYXIiPkNoZWRk
YXI8L29wdGlvbj4KKyAgPC9zZWxlY3Q+CisKKyAgPHNlbGVjdCBpZD0ic2VsZWN0V2l0aEVtcHR5
U3RyaW5nTXVsdGlwbGUiIG11bHRpcGxlPSIiPgorICAgIDxvcHRpb24gdmFsdWU9Im9uZSI+b25l
PC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0idHdvIj50d288L29wdGlvbj4KKyAgPC9zZWxl
Y3Q+CisKKyAgPHNlbGVjdCBpZD0ic2VsZWN0V2l0aE11bHRpcGxlV2l0aG91dFZhbHVlIiBtdWx0
aXBsZT4KKyAgICA8b3B0aW9uIHZhbHVlPSJvbmUiPm9uZTwvb3B0aW9uPgorICAgIDxvcHRpb24g
dmFsdWU9InR3byI+dHdvPC9vcHRpb24+CisgIDwvc2VsZWN0PgorCisgIDxzZWxlY3QgaWQ9InNl
bGVjdFdpdGhSYW5kb21NdWx0aXBsZVZhbHVlIiBtdWx0aXBsZT0ic29tZXRoaW5nRWxzZSI+Cisg
ICAgPG9wdGlvbiB2YWx1ZT0ib25lIj5vbmU8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJ0
d28iPnR3bzwvb3B0aW9uPgorICA8L3NlbGVjdD4KKworICA8c2VsZWN0PgorICAgIDxvcHRncm91
cCBsYWJlbD0iR3JvdXAiPgorICAgICAgPG9wdGlvbiB2YWx1ZT0ib25lIj5vbmU8L29wdGlvbj4K
KyAgICAgIDxvcHRpb24gaWQ9InR3by1pbi1ncm91cCIgdmFsdWU9InR3byI+dHdvPC9vcHRpb24+
CisgICAgPC9vcHRncm91cD4KKyAgPC9zZWxlY3Q+CisKKyAgPHNlbGVjdCBpZD0ic2VsZWN0V2l0
aE11bHRpcGxlTG9uZ0xpc3QiIG11bHRpcGxlPgorICAgIDxvcHRpb24+b25lPC9vcHRpb24+Cisg
ICAgPG9wdGlvbj50d288L29wdGlvbj4KKyAgICA8b3B0aW9uPnRocmVlPC9vcHRpb24+CisgICAg
PG9wdGlvbj5mb3VyPC9vcHRpb24+CisgICAgPG9wdGlvbj5maXZlPC9vcHRpb24+CisgICAgPG9w
dGlvbj5zaXg8L29wdGlvbj4KKyAgPC9zZWxlY3Q+CisKKyAgPHNlbGVjdCBpZD0ibmFycm93IiBz
dHlsZT0id2lkdGg6IDUwcHg7Ij4KKyAgICA8b3B0aW9uIHZhbHVlPSJldmFsb24iPkxhQ2xhcmUg
RmFybXMgRXZhbG9uIHdpdGggQ3VtbWluPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0ic2F2
b3VyaW5lIj5ZYXJyYSBWYWxsZXkgVmludGFnZSBTYXZvdXJpbmU8L29wdGlvbj4KKyAgICA8b3B0
aW9uIHZhbHVlPSJjaGVkZGFyIj5Bdm9ubGVhIENsb3RoYm91bmQgQ2hlZGRhcjwvb3B0aW9uPgor
ICA8L3NlbGVjdD4KKworICA8c2VsZWN0IGlkPSJ2aXNpYmlsaXR5Ij4KKyAgICA8b3B0aW9uIHZh
bHVlPSJyZWd1bGFyIiBjbGFzcz0icmVndWxhciI+UmVndWxhcjwvb3B0aW9uPgorICAgIDxvcHRp
b24gdmFsdWU9ImRpc2FibGVkIiBkaXNhYmxlZD0iZGlzYWJsZWQiIGNsYXNzPSJkaXNhYmxlZCI+
RGlzYWJsZWQ8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJoaWRkZW4iIHN0eWxlPSJ2aXNp
YmlsaXR5OiBoaWRkZW47IiBjbGFzcz0iaGlkZGVuIj5IaWRkZW48L29wdGlvbj4KKyAgICA8b3B0
aW9uIHZhbHVlPSJpbnZpc2libGUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgY2xhc3M9Imludmlz
aWJsZSI+SW52aXNpYmxlPC9vcHRpb24+CisgIDwvc2VsZWN0PgorCisgIDxzZWxlY3QgaWQ9InRy
YW5zcGFyZW50IiBzdHlsZT0ib3BhY2l0eTogMDsiPgorICAgIDxvcHRpb24gdmFsdWU9Im9uZSI+
b25lPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0idHdvIj50d288L29wdGlvbj4KKyAgPC9z
ZWxlY3Q+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NlbGVjdGFibGVJdGVtcy5odG1sIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2VsZWN0YWJsZUl0
ZW1zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5MGIyYWRh
N2MyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvc2VsZWN0YWJsZUl0ZW1zLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKwk8bWV0YSBjaGFyc2V0PSJV
VEYtOCIgLz4KKwk8dGl0bGU+alF1ZXJ5IFVJIFNlbGVjdGFibGUgLSBEZWZhdWx0IGZ1bmN0aW9u
YWxpdHk8L3RpdGxlPgorICAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iY3NzL3Vp
LWxpZ2h0bmVzcy9qcXVlcnktdWktMS44LjEuY3VzdG9tLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiAv
PgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9qcXVlcnkt
MS40LjQubWluLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ianMvanF1ZXJ5LXVpLTEuOC4xMC5jdXN0b20ubWluLmpzIj48L3NjcmlwdD4K
KwkKKwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCSNmZWVkYmFjayB7IGZvbnQtc2l6ZTogMS40
ZW07IH0KKwkjc2VsZWN0YWJsZSAudWktc2VsZWN0aW5nIHsgYmFja2dyb3VuZDogI0ZFQ0E0MDsg
fQorCSNzZWxlY3RhYmxlIC51aS1zZWxlY3RlZCB7IGJhY2tncm91bmQ6ICNGMzk4MTQ7IGNvbG9y
OiB3aGl0ZTsgfQorCSNzZWxlY3RhYmxlIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBtYXJnaW46
IDA7IHBhZGRpbmc6IDA7IHdpZHRoOiA2MCU7IH0KKwkjc2VsZWN0YWJsZSBsaSB7IG1hcmdpbjog
M3B4OyBwYWRkaW5nOiAwLjRlbTsgZm9udC1zaXplOiAxLjRlbTsgaGVpZ2h0OiAxOHB4OyB9CisJ
PC9zdHlsZT4KKwk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisJJChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICQoIiNzZWxlY3RhYmxlIikuc2VsZWN0YWJsZSh7CisgICAgICAgICAg
ICAgIHN0b3A6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciBpbmZvZGl2ID0gJCgi
I2luZm9kaXYiKS5lbXB0eSgpOworICAgICAgICAgICAgICAgICQoIi51aS1zZWxlY3RlZCIsIHRo
aXMpLmVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICB2YXIgdGhhdF9pZCA9IHRo
aXMuaWQ7CisgICAgICAgICAgICAgICAgICBpbmZvZGl2LmFwcGVuZCgnICMnICsgdGhhdF9pZCk7
CisgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICQoImJ1dHRvbiIpLmJ1dHRvbigpOworICAgICAgICAgICAgJCgiYnV0
dG9uIikuY2xpY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHZhciBsaXN0X2Rpc2FibGVk
ID0gJCgiI3NlbGVjdGFibGUiKS5zZWxlY3RhYmxlKCJvcHRpb24iLCAiZGlzYWJsZWQiKTsKKyAg
ICAgICAgICAgICAgJCgiI2luZm9kaXYiKS5maW5kKCdwJykuaHRtbCgnRGlzYWJsZWQ6ICcgKyAh
bGlzdF9kaXNhYmxlZCk7CisgICAgICAgICAgICAgICQoIiNzZWxlY3RhYmxlIikuc2VsZWN0YWJs
ZSgib3B0aW9uIiwgImRpc2FibGVkIiwgIWxpc3RfZGlzYWJsZWQpOworICAgICAgICAgICAgICB9
KTsKKwl9KTsKKwk8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZGVtbyI+
CisKKzxvbCBpZD0ic2VsZWN0YWJsZSI+CisJPGxpIGlkPSJpdGVtMSIgY2xhc3M9InVpLXdpZGdl
dC1jb250ZW50Ij5JdGVtIDE8L2xpPgorCTxsaSBpZD0iaXRlbTIiIGNsYXNzPSJ1aS13aWRnZXQt
Y29udGVudCI+SXRlbSAyPC9saT4KKwk8bGkgaWQ9Iml0ZW0zIiBjbGFzcz0idWktd2lkZ2V0LWNv
bnRlbnQiPkl0ZW0gMzwvbGk+CisJPGxpIGlkPSJpdGVtNCIgY2xhc3M9InVpLXdpZGdldC1jb250
ZW50Ij5JdGVtIDQ8L2xpPgorCTxsaSBpZD0iaXRlbTUiIGNsYXNzPSJ1aS13aWRnZXQtY29udGVu
dCI+SXRlbSA1PC9saT4KKwk8bGkgaWQ9Iml0ZW02IiBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQi
Pkl0ZW0gNjwvbGk+CisJPGxpIGlkPSJpdGVtNyIgY2xhc3M9InVpLXdpZGdldC1jb250ZW50Ij5J
dGVtIDc8L2xpPgorPC9vbD4KKworPC9kaXY+PCEtLSBFbmQgZGVtbyAtLT4KKworPGRpdiBjbGFz
cz0iZGVtby1kZXNjcmlwdGlvbiI+CisKKyAgPHA+RW5hYmxlIGEgRE9NIGVsZW1lbnQgKG9yIGdy
b3VwIG9mIGVsZW1lbnRzKSB0byBiZSBzZWxlY3RhYmxlLiBEcmF3IGEgYm94IHdpdGggeW91ciBj
dXJzb3IgdG8gc2VsZWN0IGl0ZW1zLiBIb2xkIGRvd24gdGhlIEN0cmwga2V5IHRvIG1ha2UgbXVs
dGlwbGUgbm9uLWFkamFjZW50IHNlbGVjdGlvbnMuIDwvcD4KKworICA8YnV0dG9uIHR5cGU9ImJ1
dHRvbiIgaWQ9InNvbWVidXR0b24iPkNsaWNrIHRvIGxvY2s8L2J1dHRvbj4KKworICA8ZGl2IGlk
PSJpbmZvZGl2Ij4KKyAgICA8cD5ubyBpbmZvPC9wPgorICA8L2Rpdj4KKworCis8L2Rpdj48IS0t
IEVuZCBkZW1vLWRlc2NyaXB0aW9uIC0tPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2Vzc2lvbkNv
b2tpZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvc2Vzc2lvbkNvb2tpZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4wYWRhMjRlZDNjYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nlc3Npb25Db29raWUuaHRtbApAQCAtMCwwICsx
LDIxIEBACivvu788IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBU
cmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEt
dHJhbnNpdGlvbmFsLmR0ZCI+CisKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKzxoZWFkPgorICAgIDx0aXRsZT48L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBzZXRjb2xvcih3aGF0KXsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9d2hhdAorICAgICAgICBkb2N1bWVu
dC5jb29raWU9ImJnY29sb3I9Iit3aGF0CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHBvcHVw
b25jbGljaygpIHsKKyAgICAgICAgbXlfd2luZG93ID0gd2luZG93Lm9wZW4oInNlc3Npb25Db29r
aWVEZXN0Lmh0bWwiLCAiY29va2llZGVzdHdpbmRvdyIsICJzdGF0dXM9MSx3aWR0aD0zNTAsaGVp
Z2h0PTE1MCIpOworICAgIH0gIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGlucHV0IGlkPSJzZXRjb2xvcmJ1dHRvbiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iU2V0IEJhY2tn
cm91bmQgQ29sb3IiIG9uY2xpY2s9InNldGNvbG9yKCcjODBGRkZGJykiLz4KKyAgICA8aW5wdXQg
aWQ9Im9wZW53aW5kb3didXR0b24iIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9wZW4gTmV3IFdpbmRv
dyIgb25jbGljaz0icG9wdXBvbmNsaWNrKCkiLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nlc3Np
b25Db29raWVEZXN0Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21t
b24vc3JjL3dlYi9zZXNzaW9uQ29va2llRGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5mNWUyZWYyZTRjZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nlc3Npb25Db29raWVEZXN0
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAor77u/PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv
L0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKyAgICA8dGl0bGU+U2Vzc2lvbiBjb29r
aWUgZGVzdGluYXRpb248L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAvL0dldCBjb29raWUgcm91dGluZSBieSBTaGVsbGV5IFBvd2VycyAKKyAgICBmdW5j
dGlvbiBnZXRfY29va2llKE5hbWUpIHsKKyAgICAgICAgdmFyIHNlYXJjaCA9IE5hbWUgKyAiPSI7
CisgICAgICAgIHZhciByZXR1cm52YWx1ZSA9ICIiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29v
a2llLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG9mZnNldCA9IGRvY3VtZW50LmNvb2tpZS5p
bmRleE9mKHNlYXJjaCk7CisgICAgICAgICAgICAvLyBpZiBjb29raWUgZXhpc3RzCisgICAgICAg
ICAgICBpZiAob2Zmc2V0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHNlYXJj
aC5sZW5ndGg7CisgICAgICAgICAgICAgICAgLy8gc2V0IGluZGV4IG9mIGJlZ2lubmluZyBvZiB2
YWx1ZQorICAgICAgICAgICAgICAgIGVuZCA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCI7Iiwg
b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAvLyBzZXQgaW5kZXggb2YgZW5kIG9mIGNvb2tpZSB2
YWx1ZQorICAgICAgICAgICAgICAgIGlmIChlbmQgPT0gLTEpIGVuZCA9IGRvY3VtZW50LmNvb2tp
ZS5sZW5ndGg7CisgICAgICAgICAgICAgICAgcmV0dXJudmFsdWU9dW5lc2NhcGUoZG9jdW1lbnQu
Y29va2llLnN1YnN0cmluZyhvZmZzZXQsIGVuZCkpCisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHJldHVybnZhbHVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldGNv
bG9yKCl7CisgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZENvbG9yPWdldF9j
b29raWUoImJnY29sb3IiKQorICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0Y29sb3IoKSI+CitUaGlzIGlzIHRoZSBjb29raWUgZGVzdGluYXRpb24gcGFnZS4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NpbXBsZS54bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zaW1wbGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4wMWY0Yzg3Y2NkNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NpbXBsZS54bWwKQEAg
LTAsMCArMSw1IEBACis8eG1sPgorICA8Zm9vPgorICAgIDxiYXI+YmF6PC9iYXI+CisgIDwvZm9v
PgorPC94bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2ltcGxlVGVzdC5odG1s
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2ltcGxl
VGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wN2Y2ZDhi
ZDRkNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3NpbXBsZVRlc3QuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPGh0bWw+
Cis8aGVhZD4KKyAgICA8dGl0bGU+SGVsbG8gV2ViRHJpdmVyPC90aXRsZT4KKzwvaGVhZD4KKzxi
b2R5IHN0eWxlPSIiIG5hbWU9ImJvZHkiPgorPGgxPkhlYWRpbmc8L2gxPgorCis8cCBpZD0ib25l
bGluZSI+QSBzaW5nbGUgbGluZSBvZiB0ZXh0PC9wPgorPHAgaWQ9ImhpZGRlbmxpbmUiIHN0eWxl
PSJ2aXNpYmlsaXR5OiBoaWRkZW4iPkEgaGlkZGVuIGxpbmUgb2YgdGV4dDwvcD4KKworPGRpdiBp
ZD0ibXVsdGlsaW5lIj4KKyAgICA8cD5BIGRpdiBjb250YWluaW5nPC9wPgorICAgIE1vcmUgdGhh
biBvbmUgbGluZSBvZiB0ZXh0PGJyLz4KKworICAgIDxkaXY+YW5kIGJsb2NrIGxldmVsIGVsZW1l
bnRzPC9kaXY+Cis8L2Rpdj4KKworPHNwYW4gaWQ9InNwYW4iPkFuIGlubGluZSBlbGVtZW50PC9z
cGFuPgorCis8cCBpZD0ibG90c29mc3BhY2VzIj5UaGlzIGxpbmUgaGFzIGxvdHMKKworICAgIG9m
IHNwYWNlcy4KKzwvcD4KKworPHAgaWQ9Im5ic3AiPlRoaXMgbGluZSBoYXMgYSZuYnNwO25vbi1i
cmVha2luZyBzcGFjZTwvcD4KKworPHAgaWQ9Im5ic3BhbmRzcGFjZXMiPlRoaXMgbGluZSBoYXMg
YSAmbmJzcDsgbm9uLWJyZWFraW5nIHNwYWNlIGFuZCBzcGFjZXM8L3A+CisKKzxwIGlkPSJtdWx0
aWxpbmVuYnNwIj5UaGVzZSBsaW5lcyAmbmJzcDxiciAvPiZuYnNwIGhhdmUgbGVhZGluZyBhbmQg
dHJhaWxpbmcgTkJTUHMmbmJzcDsmbmJzcDs8L3A+CisKKzxwIGlkPSJpbmxpbmUiPlRoaXMgPHNw
YW4gaWQ9ImlubGluZXNwYW4iPiAgICBsaW5lIGhhcyA8ZW0+dGV4dDwvZW0+CTwvc3Bhbj4gd2l0
aGluIGVsZW1lbnRzIHRoYXQgYXJlIG1lYW50IHRvIGJlIGRpc3BsYXllZAorICAgIDwhLS0gbm90
IGFzIGEgYmxvY2sgYnV0IC0tPiBpbmxpbmU8L3A+CisKKzxkaXYgaWQ9ImRpdi13aXRoLXByZSI+
Cis8cD5iZWZvcmUgcHJlPC9wPgorPHByZSBpZD0icHJlZm9ybWF0dGVkIj4gICBUaGlzIHNlY3Rp
b24gaGFzIGEgcHJlZm9ybWF0dGVkCisgICAgdGV4dCBibG9jayAgICAKKyAgc3BsaXQgaW4gZm91
ciBsaW5lcworICAgICAgICAgPC9wcmU+Cis8cD5hZnRlciBwcmU8L3A+Cis8L2Rpdj4KKworPGRp
diBpZD0idHdvYmxvY2tzIj48cD5Tb21lIHRleHQ8L3A+PHA+U29tZSBtb3JlIHRleHQ8L3A+PC9k
aXY+CisKKzxkaXYgaWQ9Im5lc3RlZGJsb2NrcyI+Q2hlZXNlIDxkaXY+PHA+U29tZSB0ZXh0PC9w
PjxkaXY+PHA+U29tZSBtb3JlIHRleHQ8L3A+PHA+YW5kIGFsc288L3A+PC9kaXY+PC9kaXY+QnJp
ZTwvZGl2PgorCis8ZGl2IGlkPSJjb2xsYXBzaW5ndGV4dCI+PHNwYW4+PC9zcGFuPjxkaXY+SGVs
bG8sIHdvcmxkPC9kaXY+PHNwYW4+PC9zcGFuPjwvZGl2PgorCis8ZGl2IGlkPSJ3aXRoRG9jdW1l
bnRXcml0ZSI+Cis8c2NyaXB0PgorZG9jdW1lbnQud3JpdGUoIndpdGggZG9jdW1lbnQud3JpdGUi
KTsKK2RvY3VtZW50LndyaXRlKCIgYW5kIHdpdGggZG9jdW1lbnQud3JpdGUgYWdhaW4iKTsKKzwv
c2NyaXB0PgorPC9kaXY+CisKKzxmb3JtIGFjdGlvbj0icmVzdWx0UGFnZS5odG1sIj4KKyAgICA8
cD4KKyAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2tib3gxIj4KKyAgICAg
ICAgPGxhYmVsIGlkPSJsYWJlbDEiIGZvcj0iY2hlY2tib3gxIj5mb288YnIgLz5iYXI8L2xhYmVs
PgorICAgIDwvcD4KKzwvZm9ybT4KKworPGRpdiBpZD0ibGlua3MiPgorPGEgaHJlZj0iIj4gICBs
aW5rIHdpdGggbGVhZGluZyBzcGFjZTwvYT4KKzxhIGhyZWY9IiIgaWQ9ImxpbmtXaXRoVHJhaWxp
bmdTcGFjZSI+bGluayB3aXRoIHRyYWlsaW5nIHNwYWNlICAgCQkKKzwvYT4KKzxhIGhyZWY9IiI+
PGI+bGluayB3aXRoIGZvcm1hdHRpbmcgdGFnczwvYj48L2E+Cis8YSBocmVmPSIiIGlkPSJxdW90
ZSI+bGluayB3aXRoICIgKGRvdWJsZSBxdW90ZSk8L2E+Cis8YSBocmVmPSIiIGlkPSJzcXVvdGUi
Pmxpbmsgd2l0aCAnIChzaW5nbGUgcXVvdGUpPC9hPgorPGEgaHJlZj0iIiBpZD0iYmFja3NsYXNo
Ij5saW5rIHdpdGggXCAoYmFja3NsYXNoKTwvYT4KKzwvZGl2PgorCis8ZGl2IHN0eWxlPSJ0ZXh0
LWluZGVudDo4MCUiPjxhIGhyZWY9InJlc3VsdFBhZ2UuaHRtbCIgaWQ9Im11bHRpbGluZWxpbmsi
PnRoaXMgbGluayBzaG91bGQgYnJlYWs8YnIgLz5vbiBtdWx0aXBsZSBsaW5lczwvYT48L2Rpdj4K
KworPGRpdiBuYW1lPSJzb21lRGl2Ij5Ub3AgbGV2ZWw8L2Rpdj4KKzxkaXYgaWQ9ImNvbnRhaW5z
U29tZURpdiI+CisgIDxkaXYgbmFtZT0ic29tZURpdiI+TmVzdGVkPC9kaXY+Cis8L2Rpdj4KKwor
PHRhYmxlIGlkPSJ3cmFwcGluZ3RleHQiPgorICAgIDx0Ym9keT4KKyAgICAgICAgPHRyPjx0ZCBz
dHlsZT0id2lkdGg6IDEwcHg7Ij48c3Bhbj5iZWZvcmVTcGFjZTwvc3Bhbj48c3Bhbj4gPC9zcGFu
PjxzcGFuPmFmdGVyU3BhY2U8L3NwYW4+PC90ZD48L3RyPgorICAgIDwvdGJvZHk+Cis8L3RhYmxl
PgorCis8IS0tIEhlcmUgY29tZXMgYW4gaW52YWxpZCA8aW1nPiB0YWcgd2hpY2ggaGFzIG5vIHNy
YyBhdHRyaWJ1dGUgLi4uIC0tPgorPGltZyBpZD0iaW52YWxpZEltZ1RhZyIgLz4KKworPGltZyBp
ZD0idmFsaWRJbWdUYWciIHNyYz0iaWNvbi5naWYiIC8+Cis8YSBpZD0idmFsaWRBbmNob3JUYWci
IGhyZWY9Imljb24uZ2lmIj5hIGxpbmsgdG8gYW4gaWNvbjwvYT4KKworPHNwYW4gaWQ9InNpbXBs
ZUpzb25UZXh0Ij57YT0iYiIsIGM9MSwgZD10cnVlfTwvc3Bhbj4KKzxzcGFuIGlkPSJjb21wbGV4
SnNvblRleHQiPnthPSJcXGJcXFwiJ1wnIn08L3NwYW4+CisKKzxzcGFuIGlkPSJ0cmltbWVkU3Bh
Y2UiPiAg4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCL4oCM4oCN4oCv4oGf4oGg
44CAdGVzdCAg4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCL4oCM4oCN4oCv4oGf
4oGg44CAPC9zcGFuPgorCis8YnIvPgorPGEgaWQ9ImNhcGl0YWxpemVkIiBzdHlsZT0idGV4dC10
cmFuc2Zvcm06IGNhcGl0YWxpemUiPkhlbGxvLCB3b3JsZCEgYmxhLWJsYS1CTEE8L2E+PGJyLz4K
KzxhIGlkPSJsb3dlcmNhc2VkIiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSI+SGVs
bG8sIHdvcmxkISBibGEtYmxhLUJMQTwvYT48YnIvPgorPGEgaWQ9InVwcGVyY2FzZWQiIHN0eWxl
PSJ0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlIj5IZWxsbywgd29ybGQhIGJsYS1ibGEtQkxBPC9h
Pjxici8+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3NpbmdsZV90ZXh0X2lucHV0Lmh0bWwgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zaW5nbGVfdGV4
dF9pbnB1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjU4
MzAwNTkzZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3NpbmdsZV90ZXh0X2lucHV0Lmh0bWwKQEAgLTAsMCArMSwxMiBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+QmFzaWNLZXlib2FyZEludGVyZmFjZVRlc3Q8
L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8Zm9ybSBhY3Rpb249IiMiPgorICAgIDxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0idGV4dElucHV0IiAvPgorPC9mb3JtPgorPC9ib2R5PgorPC9odG1sPgor
CisKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9z
cmMvd2ViL3Nsb3dMb2FkaW5nQWxlcnQuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nsb3dMb2FkaW5nQWxlcnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTYyMTZlMzc1MjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zbG93TG9h
ZGluZ0FsZXJ0Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPnNsb3dMb2FkaW5nQWxlcnQ8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9k
eSBvbmxvYWQ9IndpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cuYWxlcnQoJ0xv
b2ssIGFuIGFsZXJ0IScpOyB9LCAyMDApOyI+Cis8L2JvZHk+CisKKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9zbG93TG9hZGluZ1Jlc291cmNlUGFnZS5odG1sIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc2xvd0xvYWRpbmdS
ZXNvdXJjZVBhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MDI3OTZjMzRhZTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9jb21tb24vc3JjL3dlYi9zbG93TG9hZGluZ1Jlc291cmNlUGFnZS5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRoaXMgcGFnZSBsb2FkcyBz
b21ldGhpbmcgc2xvd2x5PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8cCBpZD0icGVhcyI+
U2ltdWxhdGUgdGhlIHNpdHVhdGlvbiB3aGVyZSBhIHdlYi1idWcgb3IgYW5hbHl0aWNzIHNjcmlw
dCB0YWtlcyB3YWFheQorICB0b28gbG9uZyB0byByZXNwb25kLiBOb3JtYWxseSB0aGVzZSB0aGlu
Z3MgYXJlIGxvYWRlZCBpbiBhbiBpZnJhbWUsIHdoaWNoIGlzCisgICAgICB3aGF0IHdlJ3JlIGRv
aW5nIGhlcmUuPC9wPgorCisgIDxpbWcgc3JjPSJzbGVlcD90aW1lPTciPjwvaW1nPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvc2xvd19sb2FkaW5nX2lmcmFtZXMuaHRtbCBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Nsb3dfbG9hZGluZ19pZnJhbWVzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwMDcyNDhlMmYzCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvc2xvd19sb2FkaW5nX2lmcmFtZXMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VO
IgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDx0aXRsZT5QYWdlIHdpdGggc2xvdyBsb2FkaW5nIGlGcmFtZXM8L3RpdGxl
PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDwhLS0gVGFrZXMgMyBzZWNvbmRzIHRvIGxvYWQg
LS0+CisgICAgPGlmcmFtZSBzcmM9Ii9jb21tb24vc2xlZXA/dGltZT0zIj48L2lmcmFtZT4KKwor
ICAgIDwhLS0gSW1wb3J0YW50OiBkbyBub3QgYWRkIGEgc3JjIGF0dHJpYnV0ZSEgLS0+CisgICAg
PGlmcmFtZSBpZD0ibm9TcmMiPjwvaWZyYW1lPgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc3R5bGVkUGFnZS5odG1sIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc3R5bGVkUGFnZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMDgxMGYwOTEzNAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3N0
eWxlZFBhZ2UuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgIDx0aXRsZT5TdHlsZWQgUGFnZTwvdGl0bGU+CisgIDxzY3JpcHQ+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cn
KS5pbm5lckhUTUwgPSAiPHA+IiArIG1lc3NhZ2UgKyAiPC9wPiIKKyAgICB9CisgIDwvc2NyaXB0
PgorCis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHgiPjwvZGl2Pgor
Cis8Zm9ybSBhY3Rpb249IiMiIG1ldGhvZD0iZ2V0IiBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlOyI+
CisgIDxpbnB1dCBuYW1lPSJzZWFyY2hCb3giPgorICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1l
PSJidG4iIHN0eWxlPSJwYWRkaW5nLXRvcDogNHB4OyBwYWRkaW5nLWJvdHRvbTogNHB4IiB2YWx1
ZT0iU2VhcmNoIiBvbmNsaWNrPSJsb2coJ2NsaWNrJyk7Ij4KKzwvZm9ybT4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKworPGRpdiBzdHlsZT0iaGVpZ2h0OiA0MDAwcHgiPkNvbnRlbnQ8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KKworCisKKwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc3ZnUGllY2hhcnQueGh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zdmdQaWVjaGFydC54aHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmYwNjBmZGVkYTMKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi9zdmdQaWVjaGFydC54aHRtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgCisgICAgICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorICAgICAgImh0dHA6Ly93d3cudzMu
b3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCisgICAgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIgorICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGxpbmsiPgorPGhlYWQ+CisgIDx0aXRsZT5QaWUgQ2hhcnQgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgZnVuY3Rpb24gbWFy
a0NsaWNrKGlucHV0KSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0Jyk7CisgICAgZWxlbWVudC5pbm5lckhUTUwgPSBpbnB1dDsKKyAgfQorPC9zY3Jp
cHQ+CisgIDxkaXYgaWQ9InNvbWVUZXh0Ij4KKyAgICBTb21lIHRleHQgZm9yIHRoZSBjaGFydC4K
KyAgPC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdCI+Tm90aGluZy48L2Rpdj4KKyAgPGRpdiBpZD0i
Y2hhcnRfY29udGFpbmVyIiBzdHlsZT0id2lkdGg6IDQwMHB4OyBoZWlnaHQ6IDIyMHB4OyBib3Jk
ZXI6IDFweCBzb2xpZCAjODA4MDgwOyI+Cis8c3ZnOnN2ZyBpZD0iY2hhcnRfY29udGFpbmVyIiBo
ZWlnaHQ9IjIyMCIgd2lkdGg9IjQwMCI+CisgICAgPHN2ZzpkZWZzIGlkPSJkZWZzIj48L3N2Zzpk
ZWZzPgorICAgIDxzdmc6Zz4KKyAgICA8c3ZnOnJlY3QgZmlsbD0id2hpdGUiIGhlaWdodD0iMjIw
IiB3aWR0aD0iNDAwIiB5PSIwIiB4PSIwIj48L3N2ZzpyZWN0PgorICAgIDxzdmc6dGV4dCBmaWxs
PSJibGFjayIgZm9udC13ZWlnaHQ9ImJvbGQiIGZvbnQtc2l6ZT0iMTAiIGZvbnQtZmFtaWx5PSJB
cmlhbCIgeT0iMTYiIHg9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+VGVzdCBDaGFydDwvc3Zn
OnRleHQ+CisgICAgPHN2ZzpyZWN0IGZpbGw9IndoaXRlIiBoZWlnaHQ9IjgzIiB3aWR0aD0iOTci
IHk9Ijc3IiB4PSIyOTYiPjwvc3ZnOnJlY3Q+CisgICAgPHN2ZzpyZWN0IGZpbGw9InJlZCIgc3Ry
b2tlPSJub25lIiBoZWlnaHQ9IjEyIiB3aWR0aD0iMTIiIHk9Ijg0IiB4PSIzMDMiPjwvc3ZnOnJl
Y3Q+CisgICAgPHN2Zzp0ZXh0IGZpbGw9ImJsYWNrIiBmb250LXNpemU9IjEyIiBmb250LWZhbWls
eT0iQXJpYWwiIHk9Ijk0IiB4PSIzMTgiIG9uY2xpY2s9Im1hcmtDbGljaygndGV4dF9hcHBsZScp
Ij5BcHBsZTwvc3ZnOnRleHQ+CisgICAgPHN2ZzpyZWN0IGZpbGw9ImdyZWVuIiBzdHJva2U9Im5v
bmUiIGhlaWdodD0iMTIiIHdpZHRoPSIxMiIgeT0iMTAzIiB4PSIzMDMiPjwvc3ZnOnJlY3Q+Cisg
ICAgPHN2Zzp0ZXh0IGZpbGw9ImJsYWNrIiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iQXJp
YWwiIHk9IjExMyIgeD0iMzE4Ij5PcmFuZ2U8L3N2Zzp0ZXh0PgorICAgIDxzdmc6cmVjdCBmaWxs
PSIjODA4MDgwIiBzdHJva2U9Im5vbmUiIGhlaWdodD0iMTIiIHdpZHRoPSIxMiIgeT0iMTIyIiB4
PSIzMDMiPjwvc3ZnOnJlY3Q+CisgICAgPHN2Zzp0ZXh0IGZpbGw9ImJsYWNrIiBmb250LXNpemU9
IjEyIiBmb250LWZhbWlseT0iQXJpYWwiIHk9IjEzMiIgeD0iMzE4Ij5CYW5hbmE8L3N2Zzp0ZXh0
PgorICAgIDxzdmc6cmVjdCBmaWxsPSJncmVlbiIgc3Ryb2tlPSJub25lIiBoZWlnaHQ9IjEyIiB3
aWR0aD0iMTIiIHk9IjE0MSIgeD0iMzAzIj48L3N2ZzpyZWN0PgorICAgIDxzdmc6dGV4dCBmaWxs
PSJibGFjayIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IkFyaWFsIiB5PSIxNTEiIHg9IjMx
OCI+T3JhbmdlPC9zdmc6dGV4dD4KKyAgICA8c3ZnOmcgb25jbGljaz0ibWFya0NsaWNrKCdzbGlj
ZV9yZWQnKSI+PHN2ZzpwYXRoIGZpbGw9InJlZCIgc3Ryb2tlPSJub25lIiBkPSJNMTQ4LDExOUwx
NDgsNDNBNzYsNzYsMCwwLDEsMTk4LDYxLjc3WiI+PC9zdmc6cGF0aD48L3N2ZzpnPgorICAgIDxz
dmc6ZyBvbmNsaWNrPSJtYXJrQ2xpY2soJ3NsaWNlX2dyZWVuJykiPjxzdmc6cGF0aCBmaWxsPSJn
cmVlbiIgc3Ryb2tlPSJub25lIiBkPSJNMTQ4LDExOUwxOTgsNjEuNzdBNzYsNzYsMCwwLDEsMjAy
LjkzLDE3MS41MloiPjwvc3ZnOnBhdGg+PC9zdmc6Zz4KKyAgICA8c3ZnOmc+PHN2ZzpwYXRoIGZp
bGw9IiM4MDgwODAiIHN0cm9rZT0ibm9uZSIgZD0iTTE0OCwxMTlMMjAyLjkzLDE3MS41MkE3Niw3
NiwwLDAsMSw3Mi4wOCwxMjIuNDFaIj48L3N2ZzpwYXRoPjwvc3ZnOmc+CisgICAgPHN2ZzpnPjxz
dmc6cGF0aCBmaWxsPSJncmVlbiIgc3Ryb2tlPSJub25lIiBkPSJNMTQ4LDExOUw3Mi4wOCwxMjIu
NDFBNzYsNzYsMCwwLDEsMTQ4LDQzWiI+PC9zdmc6cGF0aD48L3N2ZzpnPgorICAgIDwvc3ZnOmc+
Cis8L3N2Zzpzdmc+Cis8c3ZnOnN2ZyB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMTIwcHgiPgorICA8
c3ZnOmRlc2M+RXhhbXBsZSBSb3RhdGVTY2FsZSAtIFJvdGF0ZSBhbmQgc2NhbGUgdHJhbnNmb3Jt
czwvc3ZnOmRlc2M+CisgIDxzdmc6ZyBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Ut
d2lkdGg9IjMiID4KKyAgICA8IS0tIERyYXcgdGhlIGF4ZXMgb2YgdGhlIG9yaWdpbmFsIGNvb3Jk
aW5hdGUgc3lzdGVtIC0tPgorICAgIDxzdmc6bGluZSB4MT0iMCIgeTE9IjEuNSIgeDI9IjQwMCIg
eTI9IjEuNSIgLz4KKyAgICA8c3ZnOmxpbmUgeDE9IjEuNSIgeTE9IjAiIHgyPSIxLjUiIHkyPSIx
MjAiIC8+CisgIDwvc3ZnOmc+CisgIDwhLS0gRXN0YWJsaXNoIGEgbmV3IGNvb3JkaW5hdGUgc3lz
dGVtIHdob3NlIG9yaWdpbiBpcyBhdCAoNTAsMzApCisgICAgICAgaW4gdGhlIGluaXRpYWwgY29v
cmQuIHN5c3RlbSBhbmQgd2hpY2ggaXMgcm90YXRlZCBieSAzMCBkZWdyZWVzLiAtLT4KKyAgPHN2
ZzpnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwLDMwKSI+CisgICAgPHN2ZzpnIHRyYW5zZm9ybT0i
cm90YXRlKDMwKSIgaWQ9InJvdGF0ZSI+CisgICAgICA8c3ZnOmcgZmlsbD0ibm9uZSIgc3Ryb2tl
PSJyZWQiIHN0cm9rZS13aWR0aD0iMyIgPgorICAgICAgICA8c3ZnOmxpbmUgeDE9IjAiIHkxPSIw
IiB4Mj0iNTAiIHkyPSIwIiAvPgorICAgICAgICA8c3ZnOmxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0i
MCIgeTI9IjUwIiAvPgorICAgICAgPC9zdmc6Zz4KKyAgICAgIDxzdmc6dGV4dCB4PSIwIiB5PSIw
IiBmb250LXNpemU9IjIwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0iYmx1ZSIgPgorICAg
ICAgICBBQkMgKHJvdGF0ZSkKKyAgICAgIDwvc3ZnOnRleHQ+CisgICAgPC9zdmc6Zz4KKyAgPC9z
dmc6Zz4KKyAgPCEtLSBFc3RhYmxpc2ggYSBuZXcgY29vcmRpbmF0ZSBzeXN0ZW0gd2hvc2Ugb3Jp
Z2luIGlzIGF0ICgyMDAsNDApCisgICAgICAgaW4gdGhlIGluaXRpYWwgY29vcmQuIHN5c3RlbSBh
bmQgd2hpY2ggaXMgc2NhbGVkIGJ5IDEuNS4gLS0+CisgIDxzdmc6ZyB0cmFuc2Zvcm09InRyYW5z
bGF0ZSgyMDAsNDApIj4KKyAgICA8c3ZnOmcgdHJhbnNmb3JtPSJzY2FsZSgxLjUpIj4KKyAgICAg
IDxzdmc6ZyBmaWxsPSJub25lIiBzdHJva2U9InJlZCIgc3Ryb2tlLXdpZHRoPSIzIiA+CisgICAg
ICAgIDxzdmc6bGluZSB4MT0iMCIgeTE9IjAiIHgyPSI1MCIgeTI9IjAiIC8+CisgICAgICAgIDxz
dmc6bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNTAiIC8+CisgICAgICA8L3N2ZzpnPgor
ICAgICAgPHN2Zzp0ZXh0IHg9IjAiIHk9IjAiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtZmFtaWx5PSJW
ZXJkYW5hIiBmaWxsPSJibHVlIiA+CisgICAgICAgIEFCQyAoc2NhbGUpCisgICAgICA8L3N2Zzp0
ZXh0PgorICAgIDwvc3ZnOmc+CisgIDwvc3ZnOmc+Cis8L3N2Zzpzdmc+CisgICAgICAgIDxkaXYg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgdG9wOiAyMzBw
eDsgbGVmdDogNDEwcHg7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB4OyBkaXNw
bGF5OiBub25lOyAiPldPcmFuZ2U8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9ImRpc3Bs
YXk6IG5vbmU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAyMzBweDsgbGVmdDogNDEwcHg7IHdo
aXRlLXNwYWNlOiBub3dyYXA7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB4OyI+
V09yYW5nZTwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvc3ZnVGVzdC5zdmcgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi9zdmdUZXN0LnN2ZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzZjYzI4MzkwZDgKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dl
Yi9zdmdUZXN0LnN2ZwpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVy
c2lvbj0iMS4xIiBiYXNlUHJvZmlsZT0iZnVsbCIgd2lkdGg9IjEwMHB4IiBoZWlnaHQ9IjEwMHB4
IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+CisgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iNTAiIGhl
aWdodD0iNTAiIGZpbGw9ImJsdWUiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZWN0Jykuc2V0QXR0cmlidXRlKCdmaWxsJywgJ2dyZWVuJykiIC8+Cis8L3N2Zz4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3RhYmxl
cy5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIv
dGFibGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEyYmM5
NTdiODg4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vY29tbW9uL3NyYy93ZWIvdGFibGVzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAg
ICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzxodG1sPgorPGhlYWQ+
CisgIDx0aXRsZT5IZXJlIGJlIHRhYmxlczwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHRh
YmxlIGlkPSJiYXNlIj4KKyAgPHRyPgorICAgIDx0ZD5IZWxsbzwvdGQ+CisgICAgPHRkPldvcmxk
PC90ZD4KKyAgICA8dGQ+KENoZWVzZSEpPC90ZD4KKyAgPC90cj4KKzwvdGFibGU+CisKKzx0YWJs
ZT4KKyAgPHRyIGlkPSJoaWRkZW5fdGV4dCI+CisgICAgPHRkPnNvbWUgdGV4dAorICAgICAgPGRp
diBzdHlsZT0iZGlzcGxheTogbm9uZTsiPnNvbWUgbW9yZSB0ZXh0PC9kaXY+CisgICAgPC90ZD4K
KyAgPC90cj4KKzwvdGFibGU+CisKKzx0YWJsZT4KKyAgPHRyPgorICAgIDx0aCBjb2xzcGFuPSIz
IiBpZD0idGgxIj5IZWFkaW5nPC90aD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZCBpZD0idGQx
Ij5EYXRhIDE8L3RkPgorICAgIDx0ZCBjb2xzcGFuPSIyIiBpZD0idGQyIj5EYXRhIDI8L3RkPgor
ICA8L3RyPgorPC90YWJsZT4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3RpbnltY2UuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3RpbnltY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMDY3YjY2Y2Q4ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90aW55bWNlLmh0bWwKQEAgLTAs
MCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGlu
eU1DRTwvdGl0bGU+CisgIDxzY3JpcHQgc3JjPSJqcy90aW55bWNlLm1pbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRpbnltY2UuaW5pdCh7c2VsZWN0b3I6J3RleHRhcmVh
J30pIj4KKzx0ZXh0YXJlYT5Jbml0aWFsIGNvbnRlbnQ8L3RleHRhcmVhPgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3RyYW5zZm9ybWFibGUueG1sIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdHJhbnNmb3Jt
YWJsZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBiN2U3ZmQ1
ODRhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
Y29tbW9uL3NyYy93ZWIvdHJhbnNmb3JtYWJsZS54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzw/eG1sLXN0eWxlc2hlZXQgdHlwZT0i
dGV4dC94c2wiIGhyZWY9InRyYW5zZm9ybWFibGUueHNsIj8+Cis8IURPQ1RZUEUgaHRtbCBbIDwh
RU5USVRZIG5ic3AgIiYjMTYwOyI+IF0+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCIgeG1sbnM6aHRtbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1s
bnM6dWk9Imh0dHA6Ly9kdW1teS5jb20vbXluYW1lc3BhY2UiPgorICA8Ym9keSBpZD0nYm9keSc+
CisgICAgPHA+Q2xpY2sgdGhlIGJ1dHRvbi48L3A+CisgICAgPHVpOmFwcCB1cmw9InhodG1sVGVz
dC5odG1sIj4KKyAgICAgIDx1aTpzb21lQnV0dG9uIGlkPSJ4IiBuYW1lPSJ5Ij5HbyB0byBhbm90
aGVyIHBhZ2U8L3VpOnNvbWVCdXR0b24+CisgICAgPC91aTphcHA+CisgIDwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90cmFuc2Zvcm1hYmxlLnhzbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3RyYW5zZm9ybWFi
bGUueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41M2RiOWZkZWQ5
OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3RyYW5zZm9ybWFibGUueHNsCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZl
cnNpb249IjEuMCI/PgorCis8eHNsOnN0eWxlc2hlZXQgCisgICAgeG1sbnM6eHNsPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIAorICAgIHhtbG5zOnVpPSJodHRwOi8vZHVt
bXkuY29tL215bmFtZXNwYWNlIgorCSAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiIAorCSAgeG1sbnM6aHRtbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIKKyAgICB2
ZXJzaW9uPSIxLjAiPgorCisgIDx4c2w6b3V0cHV0IG1ldGhvZD0iaHRtbCIgCisgICAgICBkb2N0
eXBlLXN5c3RlbT0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0
LmR0ZCIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0
Ly9FTiIgaW5kZW50PSJ5ZXMiLz4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ1aTphcHAiPgor
ICAgIDxmb3JtPgorICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iYWN0aW9uIj4KKyAgICAgICAg
PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB1cmwiIC8+CisgICAgICA8L3hzbDphdHRyaWJ1dGU+Cisg
ICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4vKiIgLz4KKyAgICA8L2Zvcm0+Cisg
IDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InVpOnNvbWVCdXR0b24i
PgorICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiPgorICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0i
aWQiPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGlkIiAvPgorICAgICAgPC94c2w6
YXR0cmlidXRlPgorICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICAgIDx4
c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIgLz4KKyAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAg
ICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9InZhbHVlIj4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBz
ZWxlY3Q9Im5vcm1hbGl6ZS1zcGFjZSguKSIvPgorICAgICAgPC94c2w6YXR0cmlidXRlPgorICAg
IDwvaW5wdXQ+CisgIDwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3RyYW5zcGFyZW50VXBsb2FkLmh0bWwgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi90cmFuc3BhcmVudFVwbG9h
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44N2IwMmJmYmM1
OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2Nv
bW1vbi9zcmMvd2ViL3RyYW5zcGFyZW50VXBsb2FkLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VXBsb2FkIEZvcm08L3RpdGxl
PgorICA8c3R5bGU+CisgICAgLmZpbGVVcGxvYWQgeworICAgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgIG1hcmdpbjogMTBweDsKKwkgIGJhY2tn
cm91bmQtY29sb3I6ICNGRkZGRkY7CisgICAgICB3aWR0aDogNTBweDsKKyAgICAgIHRleHQtYWxp
Z246IGNlbnRlcjsKKyAgICB9CisgICAgLmZpbGVVcGxvYWQgaW5wdXQudXBsb2FkIHsKKyAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogMDsKKyAgICAgIHJpZ2h0OiAwOworICAg
ICAgbWFyZ2luOiAwOworICAgICAgcGFkZGluZzogMDsKKyAgICAgIGZvbnQtc2l6ZTogMjBweDsK
KyAgICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICAgIG9wYWNpdHk6IDA7CisgICAgICBmaWx0ZXI6
IGFscGhhKG9wYWNpdHk9MCk7CisgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0PgorICAgICAgdmFyIGludGVy
dmFsSWQ7CisgICAgICBmdW5jdGlvbiBvblRpY2soKSB7CisgICAgICAgICAgdmFyIGxhYmVsID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZF9sYWJlbCcpOworICAgICAgICAgIGxhYmVs
LmlubmVySFRNTCArPSAnLic7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIG9uVXBsb2FkU3Vi
bWl0KCkgeworICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRfdGFyZ2V0
JykuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LgorICAgICAgICAgIGlubmVySFRNTCA9ICcn
OworICAgICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRf
bGFiZWwnKTsKKyAgICAgICAgICBsYWJlbC5pbm5lckhUTUwgPSAnVXBsb2FkaW5nICInICsgZG9j
dW1lbnQuZm9ybXNbMF0udXBsb2FkLnZhbHVlICsgJyInOworICAgICAgICAgIGxhYmVsLnN0eWxl
LmRpc3BsYXkgPSAnJzsKKyAgICAgICAgICBpbnRlcnZhbElkID0gd2luZG93LnNldEludGVydmFs
KG9uVGljaywgNTAwKTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKworICAgICAg
ZnVuY3Rpb24gb25VcGxvYWREb25lKCkgeworICAgICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRfbGFiZWwnKTsKKyAgICAgICAgICBsYWJlbC5zdHlsZS5k
aXNwbGF5ID0gJ25vbmUnOworICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGludGVydmFs
SWQpOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGZvcm0gYWN0aW9uPSIvY29tbW9uL3VwbG9hZCIgbWV0aG9kPSJwb3N0IiBu
YW1lPSJ1cGxvYWRfZm9ybSIKKyAgICAgIHRhcmdldD0idXBsb2FkX3RhcmdldCIgZW5jdHlwZT0i
bXVsdGlwYXJ0L2Zvcm0tZGF0YSIKKyAgICAgIG9uc3VibWl0PSJvblVwbG9hZFN1Ym1pdCgpOyI+
CisgIDxkaXY+CisgICAgPGRpdiBjbGFzcz0iZmlsZVVwbG9hZCI+CisgICAgICA8c3Bhbj5VcGxv
YWQ8L3NwYW4+CisgICAgICA8aW5wdXQgaWQ9InVwbG9hZCIgbmFtZT0idXBsb2FkIiB0eXBlPSJm
aWxlIiBjbGFzcz0idXBsb2FkIiAvPgorICAgIDwvZGl2PgorICAgIDxkaXY+PGlucHV0IGlkPSJn
byIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28hIi8+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGlk
PSJ1cGxvYWRfbGFiZWwiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2PgorICA8aWZyYW1lIHNy
Yz0iIiBpZD0idXBsb2FkX3RhcmdldCIgbmFtZT0idXBsb2FkX3RhcmdldCIKKyAgICAgICAgICBz
dHlsZT0id2lkdGg6MzAwcHg7aGVpZ2h0OjIwMHB4Ij4KKyAgPC9pZnJhbWU+Cis8L2Zvcm0+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9jb21tb24vc3JjL3dlYi91bmRlcnNjb3JlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91bmRlcnNjb3JlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwNGE0NDQxZmIwCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdW5kZXJz
Y29yZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KK18gPSBbMSwgMiwgM107Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Vu
aWNvZGVfbHRyLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24v
c3JjL3dlYi91bmljb2RlX2x0ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4yNDVhY2M3NGVjZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3VuaWNvZGVfbHRyLmh0bWwKQEAgLTAsMCAr
MSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8
Ym9keSBkaXI9Imx0ciIgY2xhc3M9IkR3Ij4KKyAgICA8ZGl2IGlkPSJFSCI+PG5vYnIgY2xhc3M9
IiI+4oCOU29tZSBub3Rlc+KAjjwvbm9icj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Vw
bG9hZC5odG1sIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93
ZWIvdXBsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFj
YTM5OGFiNzQzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vY29tbW9uL3NyYy93ZWIvdXBsb2FkLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VXBsb2FkIEZvcm08L3RpdGxlPgor
ICA8c2NyaXB0PgorICAgIHZhciBpbnRlcnZhbElkOworICAgIGZ1bmN0aW9uIG9uVGljaygpIHsK
KyAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRfbGFiZWwn
KTsKKyAgICAgIGxhYmVsLmlubmVySFRNTCArPSAnLic7CisgICAgfQorCisgICAgZnVuY3Rpb24g
b25VcGxvYWRTdWJtaXQoKSB7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2Fk
X3RhcmdldCcpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS4KKyAgICAgICAgICBpbm5lckhU
TUwgPSAnJzsKKyAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxv
YWRfbGFiZWwnKTsKKyAgICAgIGxhYmVsLmlubmVySFRNTCA9ICdVcGxvYWRpbmcgIicgKyBkb2N1
bWVudC5mb3Jtc1swXS51cGxvYWQudmFsdWUgKyAnIic7CisgICAgICBsYWJlbC5zdHlsZS5kaXNw
bGF5ID0gJyc7CisgICAgICBpbnRlcnZhbElkID0gd2luZG93LnNldEludGVydmFsKG9uVGljaywg
NTAwKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uVXBsb2Fk
RG9uZSgpIHsKKyAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxv
YWRfbGFiZWwnKTsKKyAgICAgIGxhYmVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICB3
aW5kb3cuY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTsKKyAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxmb3JtIGFjdGlvbj0iL2NvbW1vbi91
cGxvYWQiIG1ldGhvZD0icG9zdCIgbmFtZT0idXBsb2FkX2Zvcm0iCisgICAgICB0YXJnZXQ9InVw
bG9hZF90YXJnZXQiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiCisgICAgICBvbnN1Ym1p
dD0ib25VcGxvYWRTdWJtaXQoKTsiPgorICA8ZGl2PgorICAgIEVudGVyIGEgZmlsZSB0byB1cGxv
YWQ6CisgICAgPGRpdj48aW5wdXQgaWQ9InVwbG9hZCIgbmFtZT0idXBsb2FkIiB0eXBlPSJmaWxl
Ii8+PC9kaXY+CisgICAgPGRpdj48aW5wdXQgaWQ9ImdvIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJH
byEiLz48L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9InVwbG9hZF9sYWJlbCIgc3R5bGU9ImRp
c3BsYXk6bm9uZSI+PC9kaXY+CisgIDxpZnJhbWUgc3JjPSIiIGlkPSJ1cGxvYWRfdGFyZ2V0IiBu
YW1lPSJ1cGxvYWRfdGFyZ2V0IgorICAgICAgICAgIHN0eWxlPSJ3aWR0aDozMDBweDtoZWlnaHQ6
MjAwcHgiPgorICA8L2lmcmFtZT4KKzwvZm9ybT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3VwbG9h
ZF9pbnZpc2libGUuaHRtbCBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3VwbG9hZF9pbnZpc2libGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZmYxMDkzMTExODgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91cGxvYWRfaW52aXNpYmxlLmh0
bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8
dGl0bGU+VXBsb2FkIEZvcm08L3RpdGxlPgorICA8c2NyaXB0PgorICAgIHZhciBpbnRlcnZhbElk
OworICAgIGZ1bmN0aW9uIG9uVGljaygpIHsKKyAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd1cGxvYWRfbGFiZWwnKTsKKyAgICAgIGxhYmVsLmlubmVySFRNTCArPSAn
Lic7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25VcGxvYWRTdWJtaXQoKSB7CisgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkX3RhcmdldCcpLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQuYm9keS4KKyAgICAgICAgICBpbm5lckhUTUwgPSAnJzsKKyAgICAgIHZhciBsYWJlbCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRfbGFiZWwnKTsKKyAgICAgIGxhYmVsLmlubmVy
SFRNTCA9ICdVcGxvYWRpbmcgIicgKyBkb2N1bWVudC5mb3Jtc1swXS51cGxvYWQudmFsdWUgKyAn
Iic7CisgICAgICBsYWJlbC5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICBpbnRlcnZhbElkID0g
d2luZG93LnNldEludGVydmFsKG9uVGljaywgNTAwKTsKKyAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGZ1bmN0aW9uIG9uVXBsb2FkRG9uZSgpIHsKKyAgICAgIHZhciBsYWJlbCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRfbGFiZWwnKTsKKyAgICAgIGxhYmVsLnN0eWxl
LmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChpbnRlcnZhbElk
KTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxmb3JtIGFjdGlvbj0iL2NvbW1vbi91cGxvYWQiIG1ldGhvZD0icG9zdCIgbmFtZT0idXBs
b2FkX2Zvcm0iCisgICAgICB0YXJnZXQ9InVwbG9hZF90YXJnZXQiIGVuY3R5cGU9Im11bHRpcGFy
dC9mb3JtLWRhdGEiCisgICAgICBvbnN1Ym1pdD0ib25VcGxvYWRTdWJtaXQoKTsiPgorICA8ZGl2
IHN0eWxlPSdoZWlnaHQ6IDA7IHdpZHRoOiAwOyBvdmVyZmxvdzogaGlkZGVuOyc+CisgICAgPGRp
dj48aW5wdXQgaWQ9InVwbG9hZCIgbmFtZT0idXBsb2FkIiB0eXBlPSJmaWxlIi8+PC9kaXY+Cisg
IDwvZGl2PgorICA8bGFiZWwgaWQ9InZpc2libGVfbGFiZWwiIGZvcj0idXBsb2FkIj5VcGxvYWQ8
L2xhYmVsPgorICA8ZGl2PjxpbnB1dCBpZD0iZ28iIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvISIv
PjwvZGl2PgorICA8ZGl2IGlkPSJ1cGxvYWRfbGFiZWwiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwv
ZGl2PgorICA8aWZyYW1lIHNyYz0iIiBpZD0idXBsb2FkX3RhcmdldCIgbmFtZT0idXBsb2FkX3Rh
cmdldCIKKyAgICAgICAgICBzdHlsZT0id2lkdGg6MzAwcHg7aGVpZ2h0OjIwMHB4Ij4KKyAgPC9p
ZnJhbWU+Cis8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91c2VyRGVmaW5lZFByb3BlcnR5
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi91
c2VyRGVmaW5lZFByb3BlcnR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjI0NTNlNjkyMWIxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdXNlckRlZmluZWRQcm9wZXJ0eS5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9ImQiPjwvZGl2PgorPHNjcmlw
dD4KK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkIikuZHluYW1pY1Byb3BlcnR5ID0gJ3NhbXBs
ZVZhbHVlJzsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdmVyeUxhcmdlQ2FudmFz
Lmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi92
ZXJ5TGFyZ2VDYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNTRhMmFiYTQ2ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi92ZXJ5TGFyZ2VDYW52YXMuaHRtbApAQCAtMCwwICsx
LDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8dGl0
bGU+UmVjdGFuZ2xlczwvdGl0bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICBmdW5jdGlvbiBhcHBlbmRNZXNzYWdlKG1lc3NhZ2UpIHsKKyAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgKz0gbWVzc2FnZQorICAgICAgICArICIg
IjsKKyAgICB9CisgIDwvc2NyaXB0PgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICNy
MSB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBs
aWdodGJsdWU7CisgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgIHRvcDogMTAwcHg7CisgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgICNyMiB7CisgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAg
ICBsZWZ0OiAyNTAwcHg7CisgICAgICB0b3A6IDUwcHg7CisgICAgICB3aWR0aDogODBweDsKKyAg
ICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgI3IzIHsKKyAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgIGxlZnQ6IDYwcHg7
CisgICAgICB0b3A6IDE1MDBweDsKKyAgICAgIHdpZHRoOiA4MHB4OworICAgICAgaGVpZ2h0OiA1
MHB4OworICAgIH0KKyAgICAjcjQgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
YmFja2dyb3VuZC1jb2xvcjogY3lhbjsKKyAgICAgIGxlZnQ6IDIyMHB4OworICAgICAgdG9wOiAx
ODBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIGhlaWdodDogNTBweDsKKyAgICB9Cisg
ICAgI3I1IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7CisgICAgICBsZWZ0OiA2MHB4OworICAgICAgdG9wOiAxNjAwcHg7CisgICAgICB3
aWR0aDogODBweDsKKyAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgI3I2IHsKKyAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
ICAgbGVmdDogMjU4MXB4OworICAgICAgdG9wOiA1MHB4OworICAgICAgd2lkdGg6IDgwcHg7Cisg
ICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgICNyZXN1bHQgeworICAgICAgYm9yZGVyOiAx
MDsKKyAgICAgIHBhZGRpbmc6IDU7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OworICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMzBw
eDsKKyAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgIGhlaWdodDogMjBweDsKKyAgICB9CisgICAg
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorICA8
ZGl2IGlkPSJyMSIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgnRmlyc3QnKSI+Rmlyc3QgVGFyZ2V0
PC9kaXY+CisgIDxkaXYgaWQ9InIyIiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdTZWNvbmQnKSI+
U2Vjb25kIFRhcmdldDwvZGl2PgorICA8ZGl2IGlkPSJyMyIgb25jbGljaz0iYXBwZW5kTWVzc2Fn
ZSgnVGhpcmQnKSI+VGhpcmQgVGFyZ2V0PC9kaXY+CisgIDxkaXYgaWQ9InI0IiBvbmNsaWNrPSJh
cHBlbmRNZXNzYWdlKCdGb3VydGgnKSI+Rm91cnRoIFRhcmdldDwvZGl2PgorICA8ZGl2IGlkPSJy
NSIgb25jbGljaz0iYXBwZW5kTWVzc2FnZSgnT09QUzInKSI+Tm90IGEgVGFyZ2V0PC9kaXY+Cisg
IDxkaXYgaWQ9InI2IiBvbmNsaWNrPSJhcHBlbmRNZXNzYWdlKCdPT1BTJykiPk5vdCBhIFRhcmdl
dDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvdmlzaWJpbGl0eS1jc3MuaHRtbCBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3Zpc2liaWxpdHktY3Nz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgwY2M2NDljZThk
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29t
bW9uL3NyYy93ZWIvdmlzaWJpbGl0eS1jc3MuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgLz4KKzx0aXRsZT5WaXNpYmlsaXR5
IHRlc3QgdmlhIENTUzwvdGl0bGU+Cis8c3R5bGU+CisKKy5ib3gtcG9wdXAgeworICBib3JkZXIg
OiAxcHg7CisgIG1pbi13aWR0aCA6IDE1MHB4OworfQorYm9keSB7CisgIG92ZXJmbG93IDogaGlk
ZGVuOworfQorPC9zdHlsZT48L2hlYWQ+PGJvZHk+Cis8ZGl2IHN0eWxlPSJsZWZ0OiAzMHB4OyB0
b3A6IDEwcHg7IHZpc2liaWxpdHk6IHZpc2libGU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgb3ZlcmZs
b3c6IHZpc2libGU7IgorICAgICBjbGFzcz0iYm94LXBvcHVwIiBpZD0ic3VnZ2VzdCI+CisgICAg
PHA+SGVsbG8gd29ybGQuIEkgbGlrZSBjaGVlc2UuPC9wPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvd2luMzJmcmFtZXNldC5odG1sIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvd2luMzJmcmFt
ZXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xMDhiODBm
OGMyMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L2NvbW1vbi9zcmMvd2ViL3dpbjMyZnJhbWVzZXQuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1s
PgorPGhlYWQ+PC9oZWFkPgorPGZyYW1lc2V0IGNvbHM9IiosICosICoiPgorICAgIDxmcmFtZSBu
YW1lPSJmaXJzdCIgc3JjPSJwYWdlLzEiLz4KKyAgICA8ZnJhbWUgbmFtZT0ic2Vjb25kIiBzcmM9
InBhZ2UvMj90aXRsZT1GaXNoIi8+CisgICAgPGZyYW1lIG5hbWU9InRoaXJkIiBzcmM9ImZvcm1Q
YWdlLmh0bWwiLz4KKzwvZnJhbWVzZXQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9u
L3NyYy93ZWIvd2luZG93X3N3aXRjaGluZ190ZXN0cy9wYWdlX3dpdGhfZnJhbWUuaHRtbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3dpbmRvd19zd2l0
Y2hpbmdfdGVzdHMvcGFnZV93aXRoX2ZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmI5NDczM2I1Y2YwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3NyYy93ZWIvd2luZG93X3N3aXRjaGluZ190
ZXN0cy9wYWdlX3dpdGhfZnJhbWUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0IHBhZ2UgZm9yIFdpbmRvd1N3aXRjaGlu
Z1Rlc3QudGVzdFNob3VsZEZvY3VzT25UaGVUb3BNb3N0RnJhbWVBZnRlclN3aXRjaGluZ1RvQVdp
bmRvdzwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHA+PGEgaWQ9ImEtbGluay10aGF0LW9w
ZW5zLWEtbmV3LXdpbmRvdyIgdGFyZ2V0PSJuZXdXaW5kb3ciIGhyZWY9InNpbXBsZV9wYWdlLmh0
bWwiPk9wZW4gbmV3IHdpbmRvdzwvYT48L3A+CisgIDxkaXY+CisgICAgPGlmcmFtZSBuYW1lPSJt
eWZyYW1lIiBzcmM9InNpbXBsZV9wYWdlLmh0bWwiIHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIj48
L2lmcmFtZT4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi93aW5kb3dfc3dpdGNoaW5n
X3Rlc3RzL3NpbXBsZV9wYWdlLmh0bWwgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9jb21tb24vc3JjL3dlYi93aW5kb3dfc3dpdGNoaW5nX3Rlc3RzL3NpbXBsZV9wYWdlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUyYzE2M2NiZjhjCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vY29tbW9uL3Ny
Yy93ZWIvd2luZG93X3N3aXRjaGluZ190ZXN0cy9zaW1wbGVfcGFnZS5odG1sCkBAIC0wLDAgKzEs
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+U2ltcGxlIFBh
Z2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+U2ltcGxlIHBhZ2Ugd2l0aCBzaW1w
bGUgdGVzdC48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3hodG1sRm9ybVBhZ2UueGh0bWwg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94aHRtbEZv
cm1QYWdlLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hY2E1
M2QzNDM5MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL2NvbW1vbi9zcmMvd2ViL3hodG1sRm9ybVBhZ2UueGh0bWwKQEAgLTAsMCArMSwxNyBAQAor
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
KyAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0
ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4K
KyAgPHRpdGxlPlhIVE1MPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorCisgIDxmb3JtIG1ldGhv
ZD0iUE9TVCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CisgICAgPGlucHV0IG5hbWU9
ImZpbGUiIGlkPSJmaWxlIiB0eXBlPSJmaWxlIiAvPgorICAgIDxpbnB1dCBuYW1lPSJzdWJtaXQi
IGlkPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgLz4KKyAgPC9mb3JtPgorCis8cCBpZD0ic2VsZi1j
bG9zZWQiIC8+SGVyZSBpcyBzb21lIGNvbnRlbnQgdGhhdCBzaG91bGQgbm90IGJlIGluIHRoZSBw
cmV2aW91cyBwIHRhZworCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9jb21tb24vc3JjL3dlYi94aHRtbFRlc3QuaHRtbCBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1vbi9zcmMvd2ViL3hodG1sVGVzdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMmYzYTVkYTg0Ygot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL2NvbW1v
bi9zcmMvd2ViL3hodG1sVGVzdC5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCI/PgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDps
YW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlhIVE1MIFRlc3QgUGFnZTwv
dGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9Im5hdmlnYXRpb24iPgorICAgIDxw
PjxhIGhyZWY9InJlc3VsdFBhZ2UuaHRtbCIgdGFyZ2V0PSJyZXN1bHQiIG5hbWU9IndpbmRvd09u
ZSI+T3BlbiBuZXcgd2luZG93PC9hPjwvcD4KKyAgICA8cD48YSBocmVmPSJpZnJhbWVzLmh0bWwi
IHRhcmdldD0iX2JsYW5rIiBuYW1lPSJ3aW5kb3dUd28iPkNyZWF0ZSBhIG5ldyBhbm9ueW1vdXMg
d2luZG93PC9hPjwvcD4KKyAgICA8cD48YSBocmVmPSJpZnJhbWVzLmh0bWwiIG5hbWU9InNhbWVX
aW5kb3ciPk9wZW4gcGFnZSB3aXRoIGlmcmFtZXMgaW4gc2FtZSB3aW5kb3c8L2E+PC9wPgorICAg
IDxwPjxhIGhyZWY9ImphdmFzY3JpcHRQYWdlLmh0bWwiIHRhcmdldD0icmVzdWx0IiBuYW1lPSJ3
aW5kb3dUaHJlZSI+T3BlbiBhIHdpbmRvdyB3aXRoIGEgY2xvc2UgYnV0dG9uPC9hPjwvcD4KKzwv
ZGl2PgorCis8YSBuYW1lPSJub3RleHQiPjxiPjwvYj48L2E+CisKKzxkaXYgY2xhc3M9ImNvbnRl
bnQiPgorICAgIDxoMSBjbGFzcz0iaGVhZGVyIj5YSFRNTCBNaWdodCBCZSBUaGUgRnV0dXJlPC9o
MT4KKworICAgIDxwPklmIHlvdSdkIGxpa2UgdG8gZ28gZWxzZXdoZXJlIHRoZW4gPGEgaHJlZj0i
cmVzdWx0UGFnZS5odG1sIj5jbGljayBtZTwvYT4uPC9wPgorCisgICAgPHA+QWx0ZXJuYXRpdmVs
eSwgPGEgaHJlZj0icmVzdWx0UGFnZS5odG1sIiBpZD0ibGlua0lkIj50aGlzIGdvZXMgdG8gdGhl
IHNhbWUgcGxhY2U8L2E+LjwvcD4KKworICAgIDxmb3JtIG5hbWU9InNvbWVGb3JtIj4KKyAgICAg
ICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgdmFsdWU9ImNoYW5nZSIvPgorICAg
IDwvZm9ybT4KKworICAgIFRoaXMgbGluayBoYXMgdGhlIHNhbWUgdGV4dCBhcyBhbm90aGVyIGxp
bms6IDxhIGhyZWY9InJlc3VsdFBhZ2UuaHRtbCI+Y2xpY2sgbWU8L2E+LgorPC9kaXY+CisKKzxk
aXYgY2xhc3M9ImV4dHJhRGl2Ij5Bbm90aGVyIGRpdiBzdGFydHMgaGVyZS48cC8+CisgICAgPGgy
IGNsYXNzPSJuYW1lQSBuYW1lQm5vaXNlICAgbmFtZUMiPkFuIEgyIHRpdGxlPC9oMj4KKyAgICA8
cCBjbGFzcz0ibmFtZUMiPlNvbWUgbW9yZSB0ZXh0PC9wPgorPC9kaXY+CisKKzxkaXY+CisgIDxh
IGlkPSJpZDEiIGhyZWY9IiMiPkZvbzwvYT4KKyAgPHVsIGlkPSJpZDIiIC8+CisgIDxzcGFuIGlk
PSJpZDMiLz4KKzwvZGl2PgorCis8ZGl2PgorICA8dGFibGUgaWQ9InRhYmxlIiA+PC90YWJsZT4K
KzwvZGl2PgorCis8c3BhbiBpZD0iYW1hemluZyI+Cis8ZGl2PgorICAgIDxkaXY+CisgICAgICAg
IDxkaXY+CisgICAgICAgICAgICA8c3Bhbi8+CisgICAgICAgICAgICA8YT5JIGhhdmUgd2lkdGg8
L2E+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L3NwYW4+CisKKzxhIG5h
bWU9InRleHQiIC8+Cis8cCBpZD0ic3BhY2VzIj4gICAgIDwvcD4KKzxwIGlkPSJlbXB0eSI+PC9w
PgorPGEgaHJlZj0iZm9vIiBpZD0ibGlua1dpdGhFcXVhbHNTaWduIj5MaW5rPWVxdWFsc3NpZ248
L2E+CisKKzxwIGNsYXNzPSIgc3BhY2VBcm91bmQgIj5TcGFjZWQgb3V0PC9wPgorCis8c3BhbiBp
ZD0ibXlfc3BhbiI+CisgIDxkaXY+Zmlyc3RfZGl2PC9kaXY+CisgIDxkaXY+c2Vjb25kX2Rpdjwv
ZGl2PgorICA8c3Bhbj5maXJzdF9zcGFuPC9zcGFuPgorICA8c3Bhbj5zZWNvbmRfc3Bhbjwvc3Bh
bj4KKzwvc3Bhbj4KKworPGRpdiBpZD0icGFyZW50Ij5JJ20gYSBwYXJlbnQKKyAgPGRpdiBpZD0i
Y2hpbGQiPkknbSBhIGNoaWxkPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0ib25seS1leGlzdHMt
b24teGh0bWx0ZXN0Ij5Xb28gd29vPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9pbXBvcnRlci5qc29uIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vaW1wb3J0ZXIuanNvbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWM1ZjU2MmUwMDMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9pbXBvcnRlci5qc29uCkBAIC0wLDAgKzEs
MjcgQEAKK3sKKyAgICAicmVwb3NpdG9yeSI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW1I
US9zZWxlbml1bS5naXQiLAorICAgICJyZXZpc2lvbiI6ICI1N2ZlMDAzNDZkMWM0ZDZkM2Y4ZTMz
YWU0ZDc0MjY5NDBlNzk1YTMwIiwKKyAgICAicGF0aHNfdG9faW1wb3J0IjogWworICAgICAgICAi
Y29tbW9uIiwKKyAgICAgICAgInB5L2NvbmZ0ZXN0LnB5IiwKKyAgICAgICAgInB5L3NldHVwLmNm
ZyIsCisgICAgICAgICJweS9zZWxlbml1bSIsCisgICAgICAgICJweS90ZXN0IgorICAgIF0sCisg
ICAgInBhdGhzX3RvX3NraXAiOiBbCisgICAgICAgICJweS9zZWxlbml1bS93ZWJkcml2ZXIvYW5k
cm9pZCIsCisgICAgICAgICJweS9zZWxlbml1bS93ZWJkcml2ZXIvYmxhY2tiZXJyeSIsCisgICAg
ICAgICJweS9zZWxlbml1bS93ZWJkcml2ZXIvY2hyb21lIiwKKyAgICAgICAgInB5L3NlbGVuaXVt
L3dlYmRyaXZlci9lZGdlIiwKKyAgICAgICAgInB5L3NlbGVuaXVtL3dlYmRyaXZlci9maXJlZm94
IiwKKyAgICAgICAgInB5L3NlbGVuaXVtL3dlYmRyaXZlci9pZSIsCisgICAgICAgICJweS9zZWxl
bml1bS93ZWJkcml2ZXIvb3BlcmEiLAorICAgICAgICAicHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Bo
YW50b21qcyIsCisgICAgICAgICJweS90ZXN0L3VuaXQiLAorICAgICAgICAicHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY2hyb21lIiwKKyAgICAgICAgInB5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJp
dmVyL2ZpcmVmb3giLAorICAgICAgICAicHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvaWUiLAor
ICAgICAgICAicHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvbWFyaW9uZXR0ZSIsCisgICAgICAg
ICJweS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9waGFudG9tanMiCisgICAgXQorfQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvY29uZnRlc3QucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmViOTc3NWVhZDEKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9jb25mdGVzdC5weQpAQCAt
MCwwICsxLDIwNCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2
YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVl
bWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3Jr
IGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJz
aGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFj
aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3
LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5
IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0
cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMi
IEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwg
ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNw
ZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMg
dW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBvcworaW1wb3J0IHNvY2tldAoraW1wb3J0IHN1
YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCisKK2ltcG9ydCBweXRlc3QKK2Zyb20g
X3B5dGVzdC5za2lwcGluZyBpbXBvcnQgTWFya0V2YWx1YXRvcgorCitmcm9tIHNlbGVuaXVtIGlt
cG9ydCB3ZWJkcml2ZXIKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2Fw
YWJpbGl0aWVzCitmcm9tIHRlc3Quc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi53ZWJzZXJ2ZXIg
aW1wb3J0IFNpbXBsZVdlYlNlcnZlcgorZnJvbSB0ZXN0LnNlbGVuaXVtLndlYmRyaXZlci5jb21t
b24ubmV0d29yayBpbXBvcnQgZ2V0X2xhbl9pcAorCitpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09
IDM6CisgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgorZWxzZToKKyAgICBm
cm9tIHVybGxpYiBpbXBvcnQgdXJsb3BlbgorCitkcml2ZXJzID0gKAorICAgICdCbGFja0JlcnJ5
JywKKyAgICAnQ2hyb21lJywKKyAgICAnRWRnZScsCisgICAgJ0ZpcmVmb3gnLAorICAgICdJZScs
CisgICAgJ01hcmlvbmV0dGUnLAorICAgICdQaGFudG9tSlMnLAorICAgICdSZW1vdGUnLAorICAg
ICdTYWZhcmknLAorICAgICdXZWJLaXRHVEsnLAorKQorCisKK2RlZiBweXRlc3RfYWRkb3B0aW9u
KHBhcnNlcik6CisgICAgcGFyc2VyLmFkZG9wdGlvbigKKyAgICAgICAgJy0tZHJpdmVyJywKKyAg
ICAgICAgYWN0aW9uPSdhcHBlbmQnLAorICAgICAgICBjaG9pY2VzPWRyaXZlcnMsCisgICAgICAg
IGRlc3Q9J2RyaXZlcnMnLAorICAgICAgICBtZXRhdmFyPSdEUklWRVInLAorICAgICAgICBoZWxw
PSdkcml2ZXIgdG8gcnVuIHRlc3RzIGFnYWluc3QgKHswfSknLmZvcm1hdCgnLCAnLmpvaW4oZHJp
dmVycykpKQorCisKK2RlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKToKKyAg
ICBfZHJpdmVycyA9IHNldChkcml2ZXJzKS5kaWZmZXJlbmNlKGNvbmZpZy5nZXRvcHRpb24oJ2Ry
aXZlcnMnKSBvciBkcml2ZXJzKQorICAgIHBhcnRzID0gcGF0aC5kaXJuYW1lLnNwbGl0KG9zLnBh
dGguc2VwKQorICAgIHJldHVybiBsZW4oW2QgZm9yIGQgaW4gX2RyaXZlcnMgaWYgZC5sb3dlcigp
IGluIHBhcnRzXSkgPiAwCisKKworZHJpdmVyX2luc3RhbmNlID0gTm9uZQorCisKK0BweXRlc3Qu
eWllbGRfZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQorZGVmIGRyaXZlcihyZXF1ZXN0KToKKyAg
ICBrd2FyZ3MgPSB7fQorCisgICAgdHJ5OgorICAgICAgICBkcml2ZXJfY2xhc3MgPSByZXF1ZXN0
LnBhcmFtCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ1RoaXMgdGVzdCByZXF1aXJlcyBhIC0tZHJpdmVyIHRvIGJlIHNwZWNpZmllZC4nKQorCisg
ICAgIyBjb25kaXRpb25hbGx5IG1hcmsgdGVzdHMgYXMgZXhwZWN0ZWQgdG8gZmFpbCBiYXNlZCBv
biBkcml2ZXIKKyAgICByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbCA9IHJlcXVlc3Qubm9kZS5fZXZh
bHhmYWlsIG9yIE1hcmtFdmFsdWF0b3IoCisgICAgICAgIHJlcXVlc3Qubm9kZSwgJ3hmYWlsX3sw
fScuZm9ybWF0KGRyaXZlcl9jbGFzcy5sb3dlcigpKSkKKyAgICBpZiByZXF1ZXN0Lm5vZGUuX2V2
YWx4ZmFpbC5pc3RydWUoKToKKyAgICAgICAgZGVmIGZpbigpOgorICAgICAgICAgICAgZ2xvYmFs
IGRyaXZlcl9pbnN0YW5jZQorICAgICAgICAgICAgaWYgZHJpdmVyX2luc3RhbmNlIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIGRyaXZlcl9pbnN0YW5jZS5xdWl0KCkKKyAgICAgICAgICAg
IGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmlu
KQorCisgICAgIyBza2lwIGRyaXZlciBpbnN0YW50aWF0aW9uIGlmIHhmYWlsKHJ1bj1GYWxzZSkK
KyAgICBpZiBub3QgcmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCdydW54ZmFpbCcpOgorICAgICAg
ICBpZiByZXF1ZXN0Lm5vZGUuX2V2YWx4ZmFpbC5pc3RydWUoKToKKyAgICAgICAgICAgIGlmIHJl
cXVlc3Qubm9kZS5fZXZhbHhmYWlsLmdldCgncnVuJykgaXMgRmFsc2U6CisgICAgICAgICAgICAg
ICAgeWllbGQKKyAgICAgICAgICAgICAgICByZXR1cm4KKworICAgIGdsb2JhbCBkcml2ZXJfaW5z
dGFuY2UKKyAgICBpZiBkcml2ZXJfaW5zdGFuY2UgaXMgTm9uZToKKyAgICAgICAgaWYgZHJpdmVy
X2NsYXNzID09ICdCbGFja0JlcnJ5JzoKKyAgICAgICAgICAgIGt3YXJncy51cGRhdGUoeydkZXZp
Y2VfcGFzc3dvcmQnOiAncGFzc3dvcmQnfSkKKyAgICAgICAgaWYgZHJpdmVyX2NsYXNzID09ICdG
aXJlZm94JzoKKyAgICAgICAgICAgIGt3YXJncy51cGRhdGUoeydjYXBhYmlsaXRpZXMnOiB7J21h
cmlvbmV0dGUnOiBGYWxzZX19KQorICAgICAgICBpZiBkcml2ZXJfY2xhc3MgPT0gJ01hcmlvbmV0
dGUnOgorICAgICAgICAgICAgZHJpdmVyX2NsYXNzID0gJ0ZpcmVmb3gnCisgICAgICAgIGlmIGRy
aXZlcl9jbGFzcyA9PSAnUmVtb3RlJzoKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IERlc2ly
ZWRDYXBhYmlsaXRpZXMuRklSRUZPWC5jb3B5KCkKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1sn
bWFyaW9uZXR0ZSddID0gRmFsc2UKKyAgICAgICAgICAgIGt3YXJncy51cGRhdGUoeydkZXNpcmVk
X2NhcGFiaWxpdGllcyc6IGNhcGFiaWxpdGllc30pCisgICAgICAgIGlmIGRyaXZlcl9jbGFzcyA9
PSAnV2ViS2l0R1RLJzoKKyAgICAgICAgICAgIGFkZGl0aW9uYWxfYXJncyA9IHt9CisgICAgICAg
ICAgICBvcHRpb25zID0gd2ViZHJpdmVyLldlYktpdEdUS09wdGlvbnMoKQorICAgICAgICAgICAg
b3B0aW9ucy5vdmVybGF5X3Njcm9sbGJhcnNfZW5hYmxlZCA9IEZhbHNlCisgICAgICAgICAgICBi
cm93c2VyX3BhdGggPSBvcy5lbnZpcm9uLmdldCgnV0RfQlJPV1NFUl9QQVRIJykKKyAgICAgICAg
ICAgIGlmIGJyb3dzZXJfcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBvcHRpb25z
LmJyb3dzZXJfZXhlY3V0YWJsZV9wYXRoID0gYnJvd3Nlcl9wYXRoCisgICAgICAgICAgICBicm93
c2VyX2FyZ3MgPSBvcy5lbnZpcm9uLmdldCgnV0RfQlJPV1NFUl9BUkdTJykKKyAgICAgICAgICAg
IGlmIGJyb3dzZXJfYXJncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBmb3IgYXJnIGlu
IGJyb3dzZXJfYXJncy5zcGxpdCgpOgorICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmFkZF9i
cm93c2VyX2FyZ3VtZW50KGFyZykKKyAgICAgICAgICAgIGFkZGl0aW9uYWxfYXJnc1snb3B0aW9u
cyddID0gb3B0aW9ucworICAgICAgICAgICAgZHJpdmVyX3BhdGggPSBvcy5lbnZpcm9uLmdldCgn
V0RfRFJJVkVSX1BBVEgnKQorICAgICAgICAgICAgaWYgZHJpdmVyX3BhdGggaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9hcmdzWydleGVjdXRhYmxlX3BhdGgnXSA9IGRy
aXZlcl9wYXRoCisgICAgICAgICAgICBrd2FyZ3MudXBkYXRlKGFkZGl0aW9uYWxfYXJncykKKyAg
ICAgICAgZHJpdmVyX2luc3RhbmNlID0gZ2V0YXR0cih3ZWJkcml2ZXIsIGRyaXZlcl9jbGFzcyko
Kiprd2FyZ3MpCisgICAgeWllbGQgZHJpdmVyX2luc3RhbmNlCisgICAgaWYgTWFya0V2YWx1YXRv
cihyZXF1ZXN0Lm5vZGUsICdub19kcml2ZXJfYWZ0ZXJfdGVzdCcpLmlzdHJ1ZSgpOgorICAgICAg
ICBkcml2ZXJfaW5zdGFuY2UgPSBOb25lCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNz
aW9uJywgYXV0b3VzZT1UcnVlKQorZGVmIHN0b3BfZHJpdmVyKHJlcXVlc3QpOgorICAgIGRlZiBm
aW4oKToKKyAgICAgICAgZ2xvYmFsIGRyaXZlcl9pbnN0YW5jZQorICAgICAgICBpZiBkcml2ZXJf
aW5zdGFuY2UgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBkcml2ZXJfaW5zdGFuY2UucXVpdCgp
CisgICAgICAgIGRyaXZlcl9pbnN0YW5jZSA9IE5vbmUKKyAgICByZXF1ZXN0LmFkZGZpbmFsaXpl
cihmaW4pCisKKworZGVmIHB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9kZSwgY2FsbCwgcmVw
b3J0KToKKyAgICBpZiByZXBvcnQuZmFpbGVkOgorICAgICAgICBnbG9iYWwgZHJpdmVyX2luc3Rh
bmNlCisgICAgICAgIGlmIGRyaXZlcl9pbnN0YW5jZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGRyaXZlcl9pbnN0YW5jZS5xdWl0KCkKKyAgICAgICAgZHJpdmVyX2luc3RhbmNlID0gTm9uZQor
CisKK0BweXRlc3QuZml4dHVyZQorZGVmIHBhZ2VzKGRyaXZlciwgd2Vic2VydmVyKToKKyAgICBj
bGFzcyBQYWdlcyhvYmplY3QpOgorICAgICAgICBkZWYgdXJsKHNlbGYsIG5hbWUpOgorICAgICAg
ICAgICAgcmV0dXJuIHdlYnNlcnZlci53aGVyZV9pcyhuYW1lKQorCisgICAgICAgIGRlZiBsb2Fk
KHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgZHJpdmVyLmdldChzZWxmLnVybChuYW1lKSkKKyAg
ICByZXR1cm4gUGFnZXMoKQorCisKK0BweXRlc3QueWllbGRfZml4dHVyZShhdXRvdXNlPVRydWUs
IHNjb3BlPSdzZXNzaW9uJykKK2RlZiBzZXJ2ZXIocmVxdWVzdCk6CisgICAgZHJpdmVycyA9IHJl
cXVlc3QuY29uZmlnLmdldG9wdGlvbignZHJpdmVycycpCisgICAgaWYgZHJpdmVycyBpcyBOb25l
IG9yICdSZW1vdGUnIG5vdCBpbiBkcml2ZXJzOgorICAgICAgICB5aWVsZCBOb25lCisgICAgICAg
IHJldHVybgorCisgICAgX2hvc3QgPSAnbG9jYWxob3N0JworICAgIF9wb3J0ID0gNDQ0NAorICAg
IF9wYXRoID0gJy4uL2J1Y2stb3V0L2dlbi9qYXZhL3NlcnZlci9zcmMvb3JnL29wZW5xYS9ncmlk
L3NlbGVuaXVtL3NlbGVuaXVtLmphcicKKworICAgIGRlZiB3YWl0X2Zvcl9zZXJ2ZXIodXJsLCB0
aW1lb3V0KToKKyAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorICAgICAgICB3aGlsZSB0aW1l
LnRpbWUoKSAtIHN0YXJ0IDwgdGltZW91dDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICB1cmxvcGVuKHVybCkKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAgICAg
ZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjIpCisgICAgICAg
IHJldHVybiAwCisKKyAgICBfc29ja2V0ID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwg
c29ja2V0LlNPQ0tfU1RSRUFNKQorICAgIHVybCA9ICdodHRwOi8ve306e30vd2QvaHViJy5mb3Jt
YXQoX2hvc3QsIF9wb3J0KQorICAgIHRyeToKKyAgICAgICAgX3NvY2tldC5jb25uZWN0KChfaG9z
dCwgX3BvcnQpKQorICAgICAgICBwcmludCgnVGhlIHJlbW90ZSBkcml2ZXIgc2VydmVyIGlzIGFs
cmVhZHkgcnVubmluZyBvciBzb21ldGhpbmcgZWxzZScKKyAgICAgICAgICAgICAgJ2lzIHVzaW5n
IHBvcnQge30sIGNvbnRpbnVpbmcuLi4nLmZvcm1hdChfcG9ydCkpCisgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgcHJpbnQoJ1N0YXJ0aW5nIHRoZSBTZWxlbml1bSBzZXJ2ZXInKQorICAg
ICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbJ2phdmEnLCAnLWphcicsIF9wYXRoXSkK
KyAgICAgICAgcHJpbnQoJ1NlbGVuaXVtIHNlcnZlciBydW5uaW5nIGFzIHByb2Nlc3M6IHt9Jy5m
b3JtYXQocHJvY2Vzcy5waWQpKQorICAgICAgICBhc3NlcnQgd2FpdF9mb3Jfc2VydmVyKHVybCwg
MTApLCAnVGltZWQgb3V0IHdhaXRpbmcgZm9yIFNlbGVuaXVtIHNlcnZlciBhdCB7fScuZm9ybWF0
KHVybCkKKyAgICAgICAgcHJpbnQoJ1NlbGVuaXVtIHNlcnZlciBpcyByZWFkeScpCisgICAgICAg
IHlpZWxkIHByb2Nlc3MKKyAgICAgICAgcHJvY2Vzcy50ZXJtaW5hdGUoKQorICAgICAgICBwcm9j
ZXNzLndhaXQoKQorICAgICAgICBwcmludCgnU2VsZW5pdW0gc2VydmVyIGhhcyBiZWVuIHRlcm1p
bmF0ZWQnKQorCisKK0BweXRlc3QueWllbGRfZml4dHVyZShhdXRvdXNlPVRydWUsIHNjb3BlPSdz
ZXNzaW9uJykKK2RlZiB3ZWJzZXJ2ZXIoKToKKyAgICB3ZWJzZXJ2ZXIgPSBTaW1wbGVXZWJTZXJ2
ZXIoaG9zdD1nZXRfbGFuX2lwKCkpCisgICAgd2Vic2VydmVyLnN0YXJ0KCkKKyAgICB5aWVsZCB3
ZWJzZXJ2ZXIKKyAgICB3ZWJzZXJ2ZXIuc3RvcCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lM2U3Mzg2MzUxMgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL19faW5pdF9f
LnB5CkBAIC0wLDAgKzEsMTkgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20g
Q29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5z
ZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0
IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNl
bnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdh
cmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMg
IkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisj
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo
ZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRp
b25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK19fdmVyc2lvbl9fID0gIjMuOC4wIgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29t
bW9uL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vY29tbW9uL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lYTcxMzE5YTZlNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9fX2luaXRfXy5weQpAQCAtMCwwICsx
LDE4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChT
RkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4g
IFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBU
aGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNl
bnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMs
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0
aGUgTGljZW5zZS4KKworZnJvbSAuIGltcG9ydCBleGNlcHRpb25zICAjIG5vcWEKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL2NvbW1vbi9l
eGNlcHRpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjFhMDZkNzFjM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vY29tbW9uL2V4Y2VwdGlvbnMucHkKQEAgLTAsMCAr
MSwzMjQgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kg
KFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRz
LiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3Ig
YWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4g
IFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJ
UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVy
IHRoZSBMaWNlbnNlLgorCisiIiIKK0V4Y2VwdGlvbnMgdGhhdCBtYXkgaGFwcGVuIGluIGFsbCB0
aGUgd2ViZHJpdmVyIGNvZGUuCisiIiIKKworCitjbGFzcyBXZWJEcml2ZXJFeGNlcHRpb24oRXhj
ZXB0aW9uKToKKyAgICAiIiIKKyAgICBCYXNlIHdlYmRyaXZlciBleGNlcHRpb24uCisgICAgIiIi
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnPU5vbmUsIHNjcmVlbj1Ob25lLCBzdGFja3Ry
YWNlPU5vbmUpOgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBzZWxmLnNjcmVlbiA9
IHNjcmVlbgorICAgICAgICBzZWxmLnN0YWNrdHJhY2UgPSBzdGFja3RyYWNlCisKKyAgICBkZWYg
X19zdHJfXyhzZWxmKToKKyAgICAgICAgZXhjZXB0aW9uX21zZyA9ICJNZXNzYWdlOiAlc1xuIiAl
IHNlbGYubXNnCisgICAgICAgIGlmIHNlbGYuc2NyZWVuIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgZXhjZXB0aW9uX21zZyArPSAiU2NyZWVuc2hvdDogYXZhaWxhYmxlIHZpYSBzY3JlZW5cbiIK
KyAgICAgICAgaWYgc2VsZi5zdGFja3RyYWNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3Rh
Y2t0cmFjZSA9ICJcbiIuam9pbihzZWxmLnN0YWNrdHJhY2UpCisgICAgICAgICAgICBleGNlcHRp
b25fbXNnICs9ICJTdGFja3RyYWNlOlxuJXMiICUgc3RhY2t0cmFjZQorICAgICAgICByZXR1cm4g
ZXhjZXB0aW9uX21zZworCisKK2NsYXNzIEVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbihXZWJEcml2
ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIGFuIGVycm9yIGhhcyBvY2N1
cnJlZCBvbiB0aGUgc2VydmVyIHNpZGUuCisKKyAgICBUaGlzIG1heSBoYXBwZW4gd2hlbiBjb21t
dW5pY2F0aW5nIHdpdGggdGhlIGZpcmVmb3ggZXh0ZW5zaW9uCisgICAgb3IgdGhlIHJlbW90ZSBk
cml2ZXIgc2VydmVyLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXNwb25zZSwg
bXNnKToKKyAgICAgICAgV2ViRHJpdmVyRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1zZykKKyAg
ICAgICAgc2VsZi5yZXNwb25zZSA9IHJlc3BvbnNlCisKKworY2xhc3MgSW52YWxpZFN3aXRjaFRv
VGFyZ2V0RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhyb3du
IHdoZW4gZnJhbWUgb3Igd2luZG93IHRhcmdldCB0byBiZSBzd2l0Y2hlZCBkb2Vzbid0IGV4aXN0
LgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBOb1N1Y2hGcmFtZUV4Y2VwdGlvbihJbnZh
bGlkU3dpdGNoVG9UYXJnZXRFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIGZy
YW1lIHRhcmdldCB0byBiZSBzd2l0Y2hlZCBkb2Vzbid0IGV4aXN0LgorICAgICIiIgorICAgIHBh
c3MKKworCitjbGFzcyBOb1N1Y2hXaW5kb3dFeGNlcHRpb24oSW52YWxpZFN3aXRjaFRvVGFyZ2V0
RXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBUaHJvd24gd2hlbiB3aW5kb3cgdGFyZ2V0IHRvIGJl
IHN3aXRjaGVkIGRvZXNuJ3QgZXhpc3QuCisKKyAgICBUbyBmaW5kIHRoZSBjdXJyZW50IHNldCBv
ZiBhY3RpdmUgd2luZG93IGhhbmRsZXMsIHlvdSBjYW4gZ2V0IGEgbGlzdAorICAgIG9mIHRoZSBh
Y3RpdmUgd2luZG93IGhhbmRsZXMgaW4gdGhlIGZvbGxvd2luZyB3YXk6OgorCisgICAgICAgIHBy
aW50IGRyaXZlci53aW5kb3dfaGFuZGxlcworCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNz
IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAg
ICBUaHJvd24gd2hlbiBlbGVtZW50IGNvdWxkIG5vdCBiZSBmb3VuZC4KKworICAgIElmIHlvdSBl
bmNvdW50ZXIgdGhpcyBleGNlcHRpb24sIHlvdSBtYXkgd2FudCB0byBjaGVjayB0aGUgZm9sbG93
aW5nOgorICAgICAgICAqIENoZWNrIHlvdXIgc2VsZWN0b3IgdXNlZCBpbiB5b3VyIGZpbmRfYnku
Li4KKyAgICAgICAgKiBFbGVtZW50IG1heSBub3QgeWV0IGJlIG9uIHRoZSBzY3JlZW4gYXQgdGhl
IHRpbWUgb2YgdGhlIGZpbmQgb3BlcmF0aW9uLAorICAgICAgICAgICh3ZWJwYWdlIGlzIHN0aWxs
IGxvYWRpbmcpIHNlZSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0LldlYkRyaXZlcldh
aXQoKQorICAgICAgICAgIGZvciBob3cgdG8gd3JpdGUgYSB3YWl0IHdyYXBwZXIgdG8gd2FpdCBm
b3IgYW4gZWxlbWVudCB0byBhcHBlYXIuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIE5v
U3VjaEF0dHJpYnV0ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAg
IFRocm93biB3aGVuIHRoZSBhdHRyaWJ1dGUgb2YgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQu
CisKKyAgICBZb3UgbWF5IHdhbnQgdG8gY2hlY2sgaWYgdGhlIGF0dHJpYnV0ZSBleGlzdHMgaW4g
dGhlIHBhcnRpY3VsYXIgYnJvd3NlciB5b3UgYXJlCisgICAgdGVzdGluZyBhZ2FpbnN0LiAgU29t
ZSBicm93c2VycyBtYXkgaGF2ZSBkaWZmZXJlbnQgcHJvcGVydHkgbmFtZXMgZm9yIHRoZSBzYW1l
CisgICAgcHJvcGVydHkuICAoSUU4J3MgLmlubmVyVGV4dCB2cy4gRmlyZWZveCAudGV4dENvbnRl
bnQpCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4
Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIGEg
cmVmZXJlbmNlIHRvIGFuIGVsZW1lbnQgaXMgbm93ICJzdGFsZSIuCisKKyAgICBTdGFsZSBtZWFu
cyB0aGUgZWxlbWVudCBubyBsb25nZXIgYXBwZWFycyBvbiB0aGUgRE9NIG9mIHRoZSBwYWdlLgor
CisKKyAgICBQb3NzaWJsZSBjYXVzZXMgb2YgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9u
IGluY2x1ZGUsIGJ1dCBub3QgbGltaXRlZCB0bzoKKyAgICAgICAgKiBZb3UgYXJlIG5vIGxvbmdl
ciBvbiB0aGUgc2FtZSBwYWdlLCBvciB0aGUgcGFnZSBtYXkgaGF2ZSByZWZyZXNoZWQgc2luY2Ug
dGhlIGVsZW1lbnQKKyAgICAgICAgICB3YXMgbG9jYXRlZC4KKyAgICAgICAgKiBUaGUgZWxlbWVu
dCBtYXkgaGF2ZSBiZWVuIHJlbW92ZWQgYW5kIHJlLWFkZGVkIHRvIHRoZSBzY3JlZW4sIHNpbmNl
IGl0IHdhcyBsb2NhdGVkLgorICAgICAgICAgIFN1Y2ggYXMgYW4gZWxlbWVudCBiZWluZyByZWxv
Y2F0ZWQuCisgICAgICAgICAgVGhpcyBjYW4gaGFwcGVuIHR5cGljYWxseSB3aXRoIGEgamF2YXNj
cmlwdCBmcmFtZXdvcmsgd2hlbiB2YWx1ZXMgYXJlIHVwZGF0ZWQgYW5kIHRoZQorICAgICAgICAg
IG5vZGUgaXMgcmVidWlsdC4KKyAgICAgICAgKiBFbGVtZW50IG1heSBoYXZlIGJlZW4gaW5zaWRl
IGFuIGlmcmFtZSBvciBhbm90aGVyIGNvbnRleHQgd2hpY2ggd2FzIHJlZnJlc2hlZC4KKyAgICAi
IiIKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbihXZWJE
cml2ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBV
bmV4cGVjdGVkQWxlcnRQcmVzZW50RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAg
IiIiCisgICAgVGhyb3duIHdoZW4gYW4gdW5leHBlY3RlZCBhbGVydCBpcyBhcHBlYXJlZC4KKwor
ICAgIFVzdWFsbHkgcmFpc2VkIHdoZW4gd2hlbiBhbiBleHBlY3RlZCBtb2RhbCBpcyBibG9ja2lu
ZyB3ZWJkcml2ZXIgZm9ybSBleGVjdXRpbmcgYW55CisgICAgbW9yZSBjb21tYW5kcy4KKyAgICAi
IiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnPU5vbmUsIHNjcmVlbj1Ob25lLCBzdGFja3Ry
YWNlPU5vbmUsIGFsZXJ0X3RleHQ9Tm9uZSk6CisgICAgICAgIHN1cGVyKFVuZXhwZWN0ZWRBbGVy
dFByZXNlbnRFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG1zZywgc2NyZWVuLCBzdGFja3RyYWNl
KQorICAgICAgICBzZWxmLmFsZXJ0X3RleHQgPSBhbGVydF90ZXh0CisKKyAgICBkZWYgX19zdHJf
XyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJBbGVydCBUZXh0OiAlc1xuJXMiICUgKHNlbGYuYWxl
cnRfdGV4dCwgc3VwZXIoVW5leHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2VwdGlvbiwgc2VsZikuX19z
dHJfXygpKQorCisKK2NsYXNzIE5vQWxlcnRQcmVzZW50RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2Vw
dGlvbik6CisgICAgIiIiCisgICAgVGhyb3duIHdoZW4gc3dpdGNoaW5nIHRvIG5vIHByZXNlbnRl
ZCBhbGVydC4KKworICAgIFRoaXMgY2FuIGJlIGNhdXNlZCBieSBjYWxsaW5nIGFuIG9wZXJhdGlv
biBvbiB0aGUgQWxlcnQoKSBjbGFzcyB3aGVuIGFuIGFsZXJ0IGlzCisgICAgbm90IHlldCBvbiB0
aGUgc2NyZWVuLgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBFbGVtZW50Tm90VmlzaWJs
ZUV4Y2VwdGlvbihJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBU
aHJvd24gd2hlbiBhbiBlbGVtZW50IGlzIHByZXNlbnQgb24gdGhlIERPTSwgYnV0CisgICAgaXQg
aXMgbm90IHZpc2libGUsIGFuZCBzbyBpcyBub3QgYWJsZSB0byBiZSBpbnRlcmFjdGVkIHdpdGgu
CisKKyAgICBNb3N0IGNvbW1vbmx5IGVuY291bnRlcmVkIHdoZW4gdHJ5aW5nIHRvIGNsaWNrIG9y
IHJlYWQgdGV4dAorICAgIG9mIGFuIGVsZW1lbnQgdGhhdCBpcyBoaWRkZW4gZnJvbSB2aWV3Lgor
ICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBFbGVtZW50Tm90SW50ZXJhY3RhYmxlRXhjZXB0
aW9uKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3
aGVuIGFuIGVsZW1lbnQgaXMgcHJlc2VudCBpbiB0aGUgRE9NIGJ1dCBpbnRlcmFjdGlvbnMKKyAg
ICB3aXRoIHRoYXQgZWxlbWVudCB3aWxsIGhpdCBhbm90aGVyIGVsZW1lbnQgZG8gdG8gcGFpbnQg
b3JkZXIKKyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgRWxlbWVudE5vdFNlbGVjdGFibGVF
eGNlcHRpb24oSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhy
b3duIHdoZW4gdHJ5aW5nIHRvIHNlbGVjdCBhbiB1bnNlbGVjdGFibGUgZWxlbWVudC4KKworICAg
IEZvciBleGFtcGxlLCBzZWxlY3RpbmcgYSAnc2NyaXB0JyBlbGVtZW50LgorICAgICIiIgorICAg
IHBhc3MKKworCitjbGFzcyBJbnZhbGlkQ29va2llRG9tYWluRXhjZXB0aW9uKFdlYkRyaXZlckV4
Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBhZGQgYSBj
b29raWUgdW5kZXIgYSBkaWZmZXJlbnQgZG9tYWluCisgICAgdGhhbiB0aGUgY3VycmVudCBVUkwu
CisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIFVuYWJsZVRvU2V0Q29va2llRXhjZXB0aW9u
KFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhyb3duIHdoZW4gYSBkcml2ZXIg
ZmFpbHMgdG8gc2V0IGEgY29va2llLgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBSZW1v
dGVEcml2ZXJTZXJ2ZXJFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAg
ICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgVGltZW91dEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNl
cHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIGEgY29tbWFuZCBkb2VzIG5vdCBjb21w
bGV0ZSBpbiBlbm91Z2ggdGltZS4KKyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgTW92ZVRh
cmdldE91dE9mQm91bmRzRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisg
ICAgVGhyb3duIHdoZW4gdGhlIHRhcmdldCBwcm92aWRlZCB0byB0aGUgYEFjdGlvbnNDaGFpbnNg
IG1vdmUoKQorICAgIG1ldGhvZCBpcyBpbnZhbGlkLCBpLmUuIG91dCBvZiBkb2N1bWVudC4KKyAg
ICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgVW5leHBlY3RlZFRhZ05hbWVFeGNlcHRpb24oV2Vi
RHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBUaHJvd24gd2hlbiBhIHN1cHBvcnQgY2xh
c3MgZGlkIG5vdCBnZXQgYW4gZXhwZWN0ZWQgd2ViIGVsZW1lbnQuCisgICAgIiIiCisgICAgcGFz
cworCisKK2NsYXNzIEludmFsaWRTZWxlY3RvckV4Y2VwdGlvbihOb1N1Y2hFbGVtZW50RXhjZXB0
aW9uKToKKyAgICAiIiIKKyAgICBUaHJvd24gd2hlbiB0aGUgc2VsZWN0b3Igd2hpY2ggaXMgdXNl
ZCB0byBmaW5kIGFuIGVsZW1lbnQgZG9lcyBub3QgcmV0dXJuCisgICAgYSBXZWJFbGVtZW50LiBD
dXJyZW50bHkgdGhpcyBvbmx5IGhhcHBlbnMgd2hlbiB0aGUgc2VsZWN0b3IgaXMgYW4geHBhdGgK
KyAgICBleHByZXNzaW9uIGFuZCBpdCBpcyBlaXRoZXIgc3ludGFjdGljYWxseSBpbnZhbGlkIChp
LmUuIGl0IGlzIG5vdCBhCisgICAgeHBhdGggZXhwcmVzc2lvbikgb3IgdGhlIGV4cHJlc3Npb24g
ZG9lcyBub3Qgc2VsZWN0IFdlYkVsZW1lbnRzCisgICAgKGUuZy4gImNvdW50KC8vaW5wdXQpIiku
CisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIEltZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbihX
ZWJEcml2ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAgIFRocm93biB3aGVuIElNRSBzdXBwb3J0
IGlzIG5vdCBhdmFpbGFibGUuIFRoaXMgZXhjZXB0aW9uIGlzIHRocm93biBmb3IgZXZlcnkgSU1F
LXJlbGF0ZWQKKyAgICBtZXRob2QgY2FsbCBpZiBJTUUgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxl
IG9uIHRoZSBtYWNoaW5lLgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBJbWVBY3RpdmF0
aW9uRmFpbGVkRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgVGhy
b3duIHdoZW4gYWN0aXZhdGluZyBhbiBJTUUgZW5naW5lIGhhcyBmYWlsZWQuCisgICAgIiIiCisg
ICAgcGFzcworCisKK2NsYXNzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNl
cHRpb24pOgorICAgICIiIgorICAgIFRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIGEgY29tbWFuZCBh
cmUgZWl0aGVyIGludmFsaWQgb3IgbWFsZm9ybWVkLgorICAgICIiIgorICAgIHBhc3MKKworCitj
bGFzcyBKYXZhc2NyaXB0RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisg
ICAgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZXhlY3V0aW5nIEphdmFTY3JpcHQgc3VwcGxpZWQg
YnkgdGhlIHVzZXIuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNzIE5vU3VjaENvb2tpZUV4
Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAgIE5vIGNvb2tpZSBtYXRj
aGluZyB0aGUgZ2l2ZW4gcGF0aCBuYW1lIHdhcyBmb3VuZCBhbW9uZ3N0IHRoZSBhc3NvY2lhdGVk
IGNvb2tpZXMgb2YgdGhlCisgICAgY3VycmVudCBicm93c2luZyBjb250ZXh0J3MgYWN0aXZlIGRv
Y3VtZW50LgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBTY3JlZW5zaG90RXhjZXB0aW9u
KFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgQSBzY3JlZW4gY2FwdHVyZSB3YXMg
bWFkZSBpbXBvc3NpYmxlLgorICAgICIiIgorICAgIHBhc3MKKworCitjbGFzcyBFbGVtZW50Q2xp
Y2tJbnRlcmNlcHRlZEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgICIiIgorICAg
IFRoZSBFbGVtZW50IENsaWNrIGNvbW1hbmQgY291bGQgbm90IGJlIGNvbXBsZXRlZCBiZWNhdXNl
IHRoZSBlbGVtZW50IHJlY2VpdmluZyB0aGUgZXZlbnRzCisgICAgaXMgb2JzY3VyaW5nIHRoZSBl
bGVtZW50IHRoYXQgd2FzIHJlcXVlc3RlZCBjbGlja2VkLgorICAgICIiIgorICAgIHBhc3MKKwor
CitjbGFzcyBJbnNlY3VyZUNlcnRpZmljYXRlRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6
CisgICAgIiIiCisgICAgTmF2aWdhdGlvbiBjYXVzZWQgdGhlIHVzZXIgYWdlbnQgdG8gaGl0IGEg
Y2VydGlmaWNhdGUgd2FybmluZywgd2hpY2ggaXMgdXN1YWxseSB0aGUgcmVzdWx0CisgICAgb2Yg
YW4gZXhwaXJlZCBvciBpbnZhbGlkIFRMUyBjZXJ0aWZpY2F0ZS4KKyAgICAiIiIKKyAgICBwYXNz
CisKKworY2xhc3MgSW52YWxpZENvb3JkaW5hdGVzRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlv
bik6CisgICAgIiIiCisgICAgVGhlIGNvb3JkaW5hdGVzIHByb3ZpZGVkIHRvIGFuIGludGVyYWN0
aW9ucyBvcGVyYXRpb24gYXJlIGludmFsaWQuCisgICAgIiIiCisgICAgcGFzcworCisKK2NsYXNz
IEludmFsaWRTZXNzaW9uSWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAiIiIK
KyAgICBPY2N1cnMgaWYgdGhlIGdpdmVuIHNlc3Npb24gaWQgaXMgbm90IGluIHRoZSBsaXN0IG9m
IGFjdGl2ZSBzZXNzaW9ucywgbWVhbmluZyB0aGUgc2Vzc2lvbgorICAgIGVpdGhlciBkb2VzIG5v
dCBleGlzdCBvciB0aGF0IGl0J3Mgbm90IGFjdGl2ZS4KKyAgICAiIiIKKyAgICBwYXNzCisKKwor
Y2xhc3MgU2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAg
ICAiIiIKKyAgICBBIG5ldyBzZXNzaW9uIGNvdWxkIG5vdCBiZSBjcmVhdGVkLgorICAgICIiIgor
ICAgIHBhc3MKKworCitjbGFzcyBVbmtub3duTWV0aG9kRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2Vw
dGlvbik6CisgICAgIiIiCisgICAgVGhlIHJlcXVlc3RlZCBjb21tYW5kIG1hdGNoZWQgYSBrbm93
biBVUkwgYnV0IGRpZCBub3QgbWF0Y2ggYW4gbWV0aG9kIGZvciB0aGF0IFVSTC4KKyAgICAiIiIK
KyAgICBwYXNzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvX19pbml0X18ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhZGE1MGE1OWNjCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIC5zYWZhcmkud2ViZHJp
dmVyIGltcG9ydCBXZWJEcml2ZXIgYXMgU2FmYXJpICAjIG5vcWEKK2Zyb20gLndlYmtpdGd0ay53
ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBXZWJLaXRHVEsgIyBub3FhCitmcm9tIC53ZWJr
aXRndGsub3B0aW9ucyBpbXBvcnQgT3B0aW9ucyBhcyBXZWJLaXRHVEtPcHRpb25zICMgbm9xYQor
ZnJvbSAucmVtb3RlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFJlbW90ZSAgIyBub3Fh
Citmcm9tIC5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IERlc2lyZWRDYXBhYmls
aXRpZXMgICMgbm9xYQorZnJvbSAuY29tbW9uLmFjdGlvbl9jaGFpbnMgaW1wb3J0IEFjdGlvbkNo
YWlucyAgIyBub3FhCitmcm9tIC5jb21tb24udG91Y2hfYWN0aW9ucyBpbXBvcnQgVG91Y2hBY3Rp
b25zICAjIG5vcWEKK2Zyb20gLmNvbW1vbi5wcm94eSBpbXBvcnQgUHJveHkgICMgbm9xYQorCitf
X3ZlcnNpb25fXyA9ICczLjguMCcKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vX19pbml0X18ucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIx
ZTZmODVhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vX19pbml0X18ucHkKQEAgLTAsMCArMSwx
NiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZD
KSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBT
ZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRp
dGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhl
IFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z
ZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBm
aWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9i
dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5v
cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2Fi
bGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1
bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBX
SVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4
cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxh
bmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhl
IExpY2Vuc2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbl9jaGFpbnMucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlv
bl9jaGFpbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5ZDRh
YzFlZjRiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25fY2hhaW5zLnB5CkBAIC0wLDAg
KzEsMzc4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5
IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50
cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9y
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAu
ICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0
aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBt
YXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBh
Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBw
bGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFT
SVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lm
aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRl
ciB0aGUgTGljZW5zZS4KKworIiIiCitUaGUgQWN0aW9uQ2hhaW5zIGltcGxlbWVudGF0aW9uLAor
IiIiCisKK2ltcG9ydCB0aW1lCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS5jb21t
YW5kIGltcG9ydCBDb21tYW5kCisKK2Zyb20gLnV0aWxzIGltcG9ydCBrZXlzX3RvX3R5cGluZwor
ZnJvbSAuYWN0aW9ucy5hY3Rpb25fYnVpbGRlciBpbXBvcnQgQWN0aW9uQnVpbGRlcgorCisKK2Ns
YXNzIEFjdGlvbkNoYWlucyhvYmplY3QpOgorICAgICIiIgorICAgIEFjdGlvbkNoYWlucyBhcmUg
YSB3YXkgdG8gYXV0b21hdGUgbG93IGxldmVsIGludGVyYWN0aW9ucyBzdWNoIGFzCisgICAgbW91
c2UgbW92ZW1lbnRzLCBtb3VzZSBidXR0b24gYWN0aW9ucywga2V5IHByZXNzLCBhbmQgY29udGV4
dCBtZW51IGludGVyYWN0aW9ucy4KKyAgICBUaGlzIGlzIHVzZWZ1bCBmb3IgZG9pbmcgbW9yZSBj
b21wbGV4IGFjdGlvbnMgbGlrZSBob3ZlciBvdmVyIGFuZCBkcmFnIGFuZCBkcm9wLgorCisgICAg
R2VuZXJhdGUgdXNlciBhY3Rpb25zLgorICAgICAgIFdoZW4geW91IGNhbGwgbWV0aG9kcyBmb3Ig
YWN0aW9ucyBvbiB0aGUgQWN0aW9uQ2hhaW5zIG9iamVjdCwKKyAgICAgICB0aGUgYWN0aW9ucyBh
cmUgc3RvcmVkIGluIGEgcXVldWUgaW4gdGhlIEFjdGlvbkNoYWlucyBvYmplY3QuCisgICAgICAg
V2hlbiB5b3UgY2FsbCBwZXJmb3JtKCksIHRoZSBldmVudHMgYXJlIGZpcmVkIGluIHRoZSBvcmRl
ciB0aGV5CisgICAgICAgYXJlIHF1ZXVlZCB1cC4KKworICAgIEFjdGlvbkNoYWlucyBjYW4gYmUg
dXNlZCBpbiBhIGNoYWluIHBhdHRlcm46OgorCisgICAgICAgIG1lbnUgPSBkcml2ZXIuZmluZF9l
bGVtZW50X2J5X2Nzc19zZWxlY3RvcigiLm5hdiIpCisgICAgICAgIGhpZGRlbl9zdWJtZW51ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3IoIi5uYXYgI3N1Ym1lbnUxIikKKwor
ICAgICAgICBBY3Rpb25DaGFpbnMoZHJpdmVyKS5tb3ZlX3RvX2VsZW1lbnQobWVudSkuY2xpY2so
aGlkZGVuX3N1Ym1lbnUpLnBlcmZvcm0oKQorCisgICAgT3IgYWN0aW9ucyBjYW4gYmUgcXVldWVk
IHVwIG9uZSBieSBvbmUsIHRoZW4gcGVyZm9ybWVkLjo6CisKKyAgICAgICAgbWVudSA9IGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfY3NzX3NlbGVjdG9yKCIubmF2IikKKyAgICAgICAgaGlkZGVuX3N1
Ym1lbnUgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcigiLm5hdiAjc3VibWVu
dTEiKQorCisgICAgICAgIGFjdGlvbnMgPSBBY3Rpb25DaGFpbnMoZHJpdmVyKQorICAgICAgICBh
Y3Rpb25zLm1vdmVfdG9fZWxlbWVudChtZW51KQorICAgICAgICBhY3Rpb25zLmNsaWNrKGhpZGRl
bl9zdWJtZW51KQorICAgICAgICBhY3Rpb25zLnBlcmZvcm0oKQorCisgICAgRWl0aGVyIHdheSwg
dGhlIGFjdGlvbnMgYXJlIHBlcmZvcm1lZCBpbiB0aGUgb3JkZXIgdGhleSBhcmUgY2FsbGVkLCBv
bmUgYWZ0ZXIKKyAgICBhbm90aGVyLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGRyaXZlcik6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IEFjdGlvbkNoYWlu
cy4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZHJpdmVyOiBUaGUgV2ViRHJpdmVyIGlu
c3RhbmNlIHdoaWNoIHBlcmZvcm1zIHVzZXIgYWN0aW9ucy4KKyAgICAgICAgIiIiCisgICAgICAg
IHNlbGYuX2RyaXZlciA9IGRyaXZlcgorICAgICAgICBzZWxmLl9hY3Rpb25zID0gW10KKyAgICAg
ICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMgPSBB
Y3Rpb25CdWlsZGVyKGRyaXZlcikKKworICAgIGRlZiBwZXJmb3JtKHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgUGVyZm9ybXMgYWxsIHN0b3JlZCBhY3Rpb25zLgorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMu
cGVyZm9ybSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmb3IgYWN0aW9uIGluIHNlbGYu
X2FjdGlvbnM6CisgICAgICAgICAgICAgICAgYWN0aW9uKCkKKworICAgIGRlZiByZXNldF9hY3Rp
b25zKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIENsZWFycyBhY3Rpb25zIHRoYXQg
YXJlIGFscmVhZHkgc3RvcmVkIG9uIHRoZSByZW1vdGUgZW5kLgorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYuX2RyaXZlci5leGVjdXRl
KENvbW1hbmQuVzNDX0NMRUFSX0FDVElPTlMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBz
ZWxmLl9hY3Rpb25zID0gW10KKworICAgIGRlZiBjbGljayhzZWxmLCBvbl9lbGVtZW50PU5vbmUp
OgorICAgICAgICAiIiIKKyAgICAgICAgQ2xpY2tzIGFuIGVsZW1lbnQuCisKKyAgICAgICAgOkFy
Z3M6CisgICAgICAgICAtIG9uX2VsZW1lbnQ6IFRoZSBlbGVtZW50IHRvIGNsaWNrLgorICAgICAg
ICAgICBJZiBOb25lLCBjbGlja3Mgb24gY3VycmVudCBtb3VzZSBwb3NpdGlvbi4KKyAgICAgICAg
IiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAgICAgICAgICBzZWxmLnczY19h
Y3Rpb25zLnBvaW50ZXJfYWN0aW9uLmNsaWNrKG9uX2VsZW1lbnQpCisgICAgICAgICAgICBzZWxm
LnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2UoKQorICAgICAgICAgICAgc2VsZi53M2NfYWN0
aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG9u
X2VsZW1lbnQ6CisgICAgICAgICAgICAgICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQob25fZWxlbWVu
dCkKKyAgICAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVy
LmV4ZWN1dGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kLkNMSUNL
LCB7J2J1dHRvbic6IDB9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBjbGlja19h
bmRfaG9sZChzZWxmLCBvbl9lbGVtZW50PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgSG9s
ZHMgZG93biB0aGUgbGVmdCBtb3VzZSBidXR0b24gb24gYW4gZWxlbWVudC4KKworICAgICAgICA6
QXJnczoKKyAgICAgICAgIC0gb25fZWxlbWVudDogVGhlIGVsZW1lbnQgdG8gbW91c2UgZG93bi4K
KyAgICAgICAgICAgSWYgTm9uZSwgY2xpY2tzIG9uIGN1cnJlbnQgbW91c2UgcG9zaXRpb24uCisg
ICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2Vs
Zi53M2NfYWN0aW9ucy5wb2ludGVyX2FjdGlvbi5jbGlja19hbmRfaG9sZChvbl9lbGVtZW50KQor
ICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAg
ICAgIGlmIG9uX2VsZW1lbnQ6CisgICAgICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlf
YWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG9uX2VsZW1lbnQ6
CisgICAgICAgICAgICAgICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQob25fZWxlbWVudCkKKyAgICAg
ICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kLk1PVVNFX0RPV04sIHt9
KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBjb250ZXh0X2NsaWNrKHNlbGYsIG9u
X2VsZW1lbnQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBQZXJmb3JtcyBhIGNvbnRleHQt
Y2xpY2sgKHJpZ2h0IGNsaWNrKSBvbiBhbiBlbGVtZW50LgorCisgICAgICAgIDpBcmdzOgorICAg
ICAgICAgLSBvbl9lbGVtZW50OiBUaGUgZWxlbWVudCB0byBjb250ZXh0LWNsaWNrLgorICAgICAg
ICAgICBJZiBOb25lLCBjbGlja3Mgb24gY3VycmVudCBtb3VzZSBwb3NpdGlvbi4KKyAgICAgICAg
IiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAgICAgICAgICBzZWxmLnczY19h
Y3Rpb25zLnBvaW50ZXJfYWN0aW9uLmNvbnRleHRfY2xpY2sob25fZWxlbWVudCkKKyAgICAgICAg
ICAgIHNlbGYudzNjX2FjdGlvbnMua2V5X2FjdGlvbi5wYXVzZSgpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBpZiBvbl9lbGVtZW50OgorICAgICAgICAgICAgICAgIHNlbGYubW92ZV90b19l
bGVtZW50KG9uX2VsZW1lbnQpCisgICAgICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1i
ZGE6IHNlbGYuX2RyaXZlci5leGVjdXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ29tbWFuZC5DTElDSywgeydidXR0b24nOiAyfSkpCisgICAgICAgIHJldHVybiBzZWxmCisK
KyAgICBkZWYgZG91YmxlX2NsaWNrKHNlbGYsIG9uX2VsZW1lbnQ9Tm9uZSk6CisgICAgICAgICIi
IgorICAgICAgICBEb3VibGUtY2xpY2tzIGFuIGVsZW1lbnQuCisKKyAgICAgICAgOkFyZ3M6Cisg
ICAgICAgICAtIG9uX2VsZW1lbnQ6IFRoZSBlbGVtZW50IHRvIGRvdWJsZS1jbGljay4KKyAgICAg
ICAgICAgSWYgTm9uZSwgY2xpY2tzIG9uIGN1cnJlbnQgbW91c2UgcG9zaXRpb24uCisgICAgICAg
ICIiIgorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgc2VsZi53M2Nf
YWN0aW9ucy5wb2ludGVyX2FjdGlvbi5kb3VibGVfY2xpY2sob25fZWxlbWVudCkKKyAgICAgICAg
ICAgIGZvciBfIGluIHJhbmdlKDQpOgorICAgICAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMu
a2V5X2FjdGlvbi5wYXVzZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBvbl9lbGVt
ZW50OgorICAgICAgICAgICAgICAgIHNlbGYubW92ZV90b19lbGVtZW50KG9uX2VsZW1lbnQpCisg
ICAgICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1iZGE6IHNlbGYuX2RyaXZlci5leGVj
dXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZC5ET1VCTEVfQ0xJ
Q0ssIHt9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBkcmFnX2FuZF9kcm9wKHNl
bGYsIHNvdXJjZSwgdGFyZ2V0KToKKyAgICAgICAgIiIiCisgICAgICAgIEhvbGRzIGRvd24gdGhl
IGxlZnQgbW91c2UgYnV0dG9uIG9uIHRoZSBzb3VyY2UgZWxlbWVudCwKKyAgICAgICAgICAgdGhl
biBtb3ZlcyB0byB0aGUgdGFyZ2V0IGVsZW1lbnQgYW5kIHJlbGVhc2VzIHRoZSBtb3VzZSBidXR0
b24uCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHNvdXJjZTogVGhlIGVsZW1lbnQgdG8g
bW91c2UgZG93bi4KKyAgICAgICAgIC0gdGFyZ2V0OiBUaGUgZWxlbWVudCB0byBtb3VzZSB1cC4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAgICAgICAgICBz
ZWxmLnczY19hY3Rpb25zLnBvaW50ZXJfYWN0aW9uLmNsaWNrX2FuZF9ob2xkKHNvdXJjZSkgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tb3ZlX3RvKHRhcmdl
dCkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZWxlYXNl
KCkKKyAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKDMpOgorICAgICAgICAgICAgICAgIHNlbGYu
dzNjX2FjdGlvbnMua2V5X2FjdGlvbi5wYXVzZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzZWxmLmNsaWNrX2FuZF9ob2xkKHNvdXJjZSkKKyAgICAgICAgICAgIHNlbGYucmVsZWFzZSh0
YXJnZXQpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgZHJhZ19hbmRfZHJvcF9ieV9v
ZmZzZXQoc2VsZiwgc291cmNlLCB4b2Zmc2V0LCB5b2Zmc2V0KToKKyAgICAgICAgIiIiCisgICAg
ICAgIEhvbGRzIGRvd24gdGhlIGxlZnQgbW91c2UgYnV0dG9uIG9uIHRoZSBzb3VyY2UgZWxlbWVu
dCwKKyAgICAgICAgICAgdGhlbiBtb3ZlcyB0byB0aGUgdGFyZ2V0IG9mZnNldCBhbmQgcmVsZWFz
ZXMgdGhlIG1vdXNlIGJ1dHRvbi4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gc291cmNl
OiBUaGUgZWxlbWVudCB0byBtb3VzZSBkb3duLgorICAgICAgICAgLSB4b2Zmc2V0OiBYIG9mZnNl
dCB0byBtb3ZlIHRvLgorICAgICAgICAgLSB5b2Zmc2V0OiBZIG9mZnNldCB0byBtb3ZlIHRvLgor
ICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNl
bGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24uY2xpY2tfYW5kX2hvbGQoc291cmNlKSBcCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1vdmVfdG9fbG9jYXRp
b24oeG9mZnNldCwgeW9mZnNldCkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5yZWxlYXNlKCkKKyAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKDMpOgorICAg
ICAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMua2V5X2FjdGlvbi5wYXVzZSgpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBzZWxmLmNsaWNrX2FuZF9ob2xkKHNvdXJjZSkKKyAgICAgICAg
ICAgIHNlbGYubW92ZV9ieV9vZmZzZXQoeG9mZnNldCwgeW9mZnNldCkKKyAgICAgICAgICAgIHNl
bGYucmVsZWFzZSgpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYga2V5X2Rvd24oc2Vs
ZiwgdmFsdWUsIGVsZW1lbnQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBTZW5kcyBhIGtl
eSBwcmVzcyBvbmx5LCB3aXRob3V0IHJlbGVhc2luZyBpdC4KKyAgICAgICAgICAgU2hvdWxkIG9u
bHkgYmUgdXNlZCB3aXRoIG1vZGlmaWVyIGtleXMgKENvbnRyb2wsIEFsdCBhbmQgU2hpZnQpLgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTogVGhlIG1vZGlmaWVyIGtleSB0byBz
ZW5kLiBWYWx1ZXMgYXJlIGRlZmluZWQgaW4gYEtleXNgIGNsYXNzLgorICAgICAgICAgLSBlbGVt
ZW50OiBUaGUgZWxlbWVudCB0byBzZW5kIGtleXMuCisgICAgICAgICAgIElmIE5vbmUsIHNlbmRz
IGEga2V5IHRvIGN1cnJlbnQgZm9jdXNlZCBlbGVtZW50LgorCisgICAgICAgIEV4YW1wbGUsIHBy
ZXNzaW5nIGN0cmwrYzo6CisKKyAgICAgICAgICAgIEFjdGlvbkNoYWlucyhkcml2ZXIpLmtleV9k
b3duKEtleXMuQ09OVFJPTCkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMuQ09OVFJPTCkucGVy
Zm9ybSgpCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGVsZW1lbnQ6CisgICAgICAgICAgICBz
ZWxmLmNsaWNrKGVsZW1lbnQpCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAgICAg
ICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24ua2V5X2Rvd24odmFsdWUpCisgICAgICAg
ICAgICBzZWxmLnczY19hY3Rpb25zLnBvaW50ZXJfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVy
LmV4ZWN1dGUoCisgICAgICAgICAgICAgICAgQ29tbWFuZC5TRU5EX0tFWVNfVE9fQUNUSVZFX0VM
RU1FTlQsCisgICAgICAgICAgICAgICAgeyJ2YWx1ZSI6IGtleXNfdG9fdHlwaW5nKHZhbHVlKX0p
KQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGtleV91cChzZWxmLCB2YWx1ZSwgZWxl
bWVudD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlbGVhc2VzIGEgbW9kaWZpZXIga2V5
LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB2YWx1ZTogVGhlIG1vZGlmaWVyIGtleSB0
byBzZW5kLiBWYWx1ZXMgYXJlIGRlZmluZWQgaW4gS2V5cyBjbGFzcy4KKyAgICAgICAgIC0gZWxl
bWVudDogVGhlIGVsZW1lbnQgdG8gc2VuZCBrZXlzLgorICAgICAgICAgICBJZiBOb25lLCBzZW5k
cyBhIGtleSB0byBjdXJyZW50IGZvY3VzZWQgZWxlbWVudC4KKworICAgICAgICBFeGFtcGxlLCBw
cmVzc2luZyBjdHJsK2M6OgorCisgICAgICAgICAgICBBY3Rpb25DaGFpbnMoZHJpdmVyKS5rZXlf
ZG93bihLZXlzLkNPTlRST0wpLnNlbmRfa2V5cygnYycpLmtleV91cChLZXlzLkNPTlRST0wpLnBl
cmZvcm0oKQorCisgICAgICAgICIiIgorICAgICAgICBpZiBlbGVtZW50OgorICAgICAgICAgICAg
c2VsZi5jbGljayhlbGVtZW50KQorICAgICAgICBpZiBzZWxmLl9kcml2ZXIudzNjOgorICAgICAg
ICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLmtleV91cCh2YWx1ZSkKKyAgICAgICAg
ICAgIHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24ucGF1c2UoKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIu
ZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZU19UT19BQ1RJVkVfRUxF
TUVOVCwKKyAgICAgICAgICAgICAgICB7InZhbHVlIjoga2V5c190b190eXBpbmcodmFsdWUpfSkp
CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgbW92ZV9ieV9vZmZzZXQoc2VsZiwgeG9m
ZnNldCwgeW9mZnNldCk6CisgICAgICAgICIiIgorICAgICAgICBNb3ZpbmcgdGhlIG1vdXNlIHRv
IGFuIG9mZnNldCBmcm9tIGN1cnJlbnQgbW91c2UgcG9zaXRpb24uCisKKyAgICAgICAgOkFyZ3M6
CisgICAgICAgICAtIHhvZmZzZXQ6IFggb2Zmc2V0IHRvIG1vdmUgdG8sIGFzIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgaW50ZWdlci4KKyAgICAgICAgIC0geW9mZnNldDogWSBvZmZzZXQgdG8gbW92
ZSB0bywgYXMgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBpbnRlZ2VyLgorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMu
cG9pbnRlcl9hY3Rpb24ubW92ZV9ieSh4b2Zmc2V0LCB5b2Zmc2V0KQorICAgICAgICAgICAgc2Vs
Zi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUoCisg
ICAgICAgICAgICAgICAgQ29tbWFuZC5NT1ZFX1RPLCB7CisgICAgICAgICAgICAgICAgICAgICd4
b2Zmc2V0JzogaW50KHhvZmZzZXQpLAorICAgICAgICAgICAgICAgICAgICAneW9mZnNldCc6IGlu
dCh5b2Zmc2V0KX0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG1vdmVfdG9fZWxl
bWVudChzZWxmLCB0b19lbGVtZW50KToKKyAgICAgICAgIiIiCisgICAgICAgIE1vdmluZyB0aGUg
bW91c2UgdG8gdGhlIG1pZGRsZSBvZiBhbiBlbGVtZW50LgorCisgICAgICAgIDpBcmdzOgorICAg
ICAgICAgLSB0b19lbGVtZW50OiBUaGUgV2ViRWxlbWVudCB0byBtb3ZlIHRvLgorICAgICAgICAi
IiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2Fj
dGlvbnMucG9pbnRlcl9hY3Rpb24ubW92ZV90byh0b19lbGVtZW50KQorICAgICAgICAgICAgc2Vs
Zi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUoCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kLk1PVkVfVE8sIHsnZWxlbWVu
dCc6IHRvX2VsZW1lbnQuaWR9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBtb3Zl
X3RvX2VsZW1lbnRfd2l0aF9vZmZzZXQoc2VsZiwgdG9fZWxlbWVudCwgeG9mZnNldCwgeW9mZnNl
dCk6CisgICAgICAgICIiIgorICAgICAgICBNb3ZlIHRoZSBtb3VzZSBieSBhbiBvZmZzZXQgb2Yg
dGhlIHNwZWNpZmllZCBlbGVtZW50LgorICAgICAgICAgICBPZmZzZXRzIGFyZSByZWxhdGl2ZSB0
byB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBlbGVtZW50LgorCisgICAgICAgIDpBcmdzOgor
ICAgICAgICAgLSB0b19lbGVtZW50OiBUaGUgV2ViRWxlbWVudCB0byBtb3ZlIHRvLgorICAgICAg
ICAgLSB4b2Zmc2V0OiBYIG9mZnNldCB0byBtb3ZlIHRvLgorICAgICAgICAgLSB5b2Zmc2V0OiBZ
IG9mZnNldCB0byBtb3ZlIHRvLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZHJpdmVy
LnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlvbnMucG9pbnRlcl9hY3Rpb24ubW92ZV90
byh0b19lbGVtZW50LCB4b2Zmc2V0LCB5b2Zmc2V0KQorICAgICAgICAgICAgc2VsZi53M2NfYWN0
aW9ucy5rZXlfYWN0aW9uLnBhdXNlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYu
X2FjdGlvbnMuYXBwZW5kKAorICAgICAgICAgICAgICAgIGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4
ZWN1dGUoQ29tbWFuZC5NT1ZFX1RPLCB7CisgICAgICAgICAgICAgICAgICAgICdlbGVtZW50Jzog
dG9fZWxlbWVudC5pZCwKKyAgICAgICAgICAgICAgICAgICAgJ3hvZmZzZXQnOiBpbnQoeG9mZnNl
dCksCisgICAgICAgICAgICAgICAgICAgICd5b2Zmc2V0JzogaW50KHlvZmZzZXQpfSkpCisgICAg
ICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgcGF1c2Uoc2VsZiwgc2Vjb25kcyk6CisgICAgICAg
ICIiIiBQYXVzZSBhbGwgaW5wdXRzIGZvciB0aGUgc3BlY2lmaWVkIGR1cmF0aW9uIGluIHNlY29u
ZHMgIiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAgICAgICAgICBzZWxmLncz
Y19hY3Rpb25zLnBvaW50ZXJfYWN0aW9uLnBhdXNlKHNlY29uZHMpCisgICAgICAgICAgICBzZWxm
LnczY19hY3Rpb25zLmtleV9hY3Rpb24ucGF1c2Uoc2Vjb25kcykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogdGltZS5zbGVlcChzZWNvbmRz
KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiByZWxlYXNlKHNlbGYsIG9uX2VsZW1l
bnQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBSZWxlYXNpbmcgYSBoZWxkIG1vdXNlIGJ1
dHRvbiBvbiBhbiBlbGVtZW50LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBvbl9lbGVt
ZW50OiBUaGUgZWxlbWVudCB0byBtb3VzZSB1cC4KKyAgICAgICAgICAgSWYgTm9uZSwgcmVsZWFz
ZXMgb24gY3VycmVudCBtb3VzZSBwb3NpdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNl
bGYuX2RyaXZlci53M2M6CisgICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLnBvaW50ZXJfYWN0
aW9uLnJlbGVhc2UoKQorICAgICAgICAgICAgc2VsZi53M2NfYWN0aW9ucy5rZXlfYWN0aW9uLnBh
dXNlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG9uX2VsZW1lbnQ6CisgICAgICAg
ICAgICAgICAgc2VsZi5tb3ZlX3RvX2VsZW1lbnQob25fZWxlbWVudCkKKyAgICAgICAgICAgIHNl
bGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5N
T1VTRV9VUCwge30pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHNlbmRfa2V5cyhz
ZWxmLCAqa2V5c190b19zZW5kKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmRzIGtleXMgdG8g
Y3VycmVudCBmb2N1c2VkIGVsZW1lbnQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGtl
eXNfdG9fc2VuZDogVGhlIGtleXMgdG8gc2VuZC4gIE1vZGlmaWVyIGtleXMgY29uc3RhbnRzIGNh
biBiZSBmb3VuZCBpbiB0aGUKKyAgICAgICAgICAgJ0tleXMnIGNsYXNzLgorICAgICAgICAiIiIK
KyAgICAgICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYudzNjX2FjdGlv
bnMua2V5X2FjdGlvbi5zZW5kX2tleXMoa2V5c190b19zZW5kKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0
ZSgKKyAgICAgICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZU19UT19BQ1RJVkVfRUxFTUVOVCwg
eyd2YWx1ZSc6IGtleXNfdG9fdHlwaW5nKGtleXNfdG9fc2VuZCl9KSkKKyAgICAgICAgcmV0dXJu
IHNlbGYKKworICAgIGRlZiBzZW5kX2tleXNfdG9fZWxlbWVudChzZWxmLCBlbGVtZW50LCAqa2V5
c190b19zZW5kKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmRzIGtleXMgdG8gYW4gZWxlbWVu
dC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZWxlbWVudDogVGhlIGVsZW1lbnQgdG8g
c2VuZCBrZXlzLgorICAgICAgICAgLSBrZXlzX3RvX3NlbmQ6IFRoZSBrZXlzIHRvIHNlbmQuICBN
b2RpZmllciBrZXlzIGNvbnN0YW50cyBjYW4gYmUgZm91bmQgaW4gdGhlCisgICAgICAgICAgICdL
ZXlzJyBjbGFzcy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6Cisg
ICAgICAgICAgICBzZWxmLnczY19hY3Rpb25zLmtleV9hY3Rpb24uc2VuZF9rZXlzKGtleXNfdG9f
c2VuZCwgZWxlbWVudD1lbGVtZW50KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5f
YWN0aW9ucy5hcHBlbmQobGFtYmRhOiBlbGVtZW50LnNlbmRfa2V5cygqa2V5c190b19zZW5kKSkK
KyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgICMgQ29udGV4dCBtYW5hZ2VyIHNvIEFjdGlvbkNo
YWlucyBjYW4gYmUgdXNlZCBpbiBhICd3aXRoIC4uIGFzJyBzdGF0ZW1lbnRzLgorICAgIGRlZiBf
X2VudGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmICAjIFJldHVybiBjcmVhdGVkIGlu
c3RhbmNlIG9mIHNlbGYuCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgX3R5cGUsIF92YWx1ZSwg
X3RyYWNlYmFjayk6CisgICAgICAgIHBhc3MgICMgRG8gbm90aGluZywgZG9lcyBub3QgcmVxdWly
ZSBhZGRpdGlvbmFsIGNsZWFudXAuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvX19pbml0X18u
cHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2FjdGlvbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25z
L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rp
b25zL2FjdGlvbl9idWlsZGVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2FjdGlvbl9idWlsZGVyLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xOGIyZGVlNGNkOAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9hY3Rpb25fYnVpbGRlci5weQpAQCAtMCwwICsxLDgy
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLmNvbW1hbmQgaW1wb3J0
IENvbW1hbmQKK2Zyb20gLiBpbXBvcnQgaW50ZXJhY3Rpb24KK2Zyb20gLmtleV9hY3Rpb25zIGlt
cG9ydCBLZXlBY3Rpb25zCitmcm9tIC5rZXlfaW5wdXQgaW1wb3J0IEtleUlucHV0Citmcm9tIC5w
b2ludGVyX2FjdGlvbnMgaW1wb3J0IFBvaW50ZXJBY3Rpb25zCitmcm9tIC5wb2ludGVyX2lucHV0
IGltcG9ydCBQb2ludGVySW5wdXQKKworCitjbGFzcyBBY3Rpb25CdWlsZGVyKG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlciwgbW91c2U9Tm9uZSwga2V5Ym9hcmQ9Tm9uZSk6
CisgICAgICAgIGlmIG1vdXNlIGlzIE5vbmU6CisgICAgICAgICAgICBtb3VzZSA9IFBvaW50ZXJJ
bnB1dChpbnRlcmFjdGlvbi5QT0lOVEVSLCAibW91c2UiKQorICAgICAgICBpZiBrZXlib2FyZCBp
cyBOb25lOgorICAgICAgICAgICAga2V5Ym9hcmQgPSBLZXlJbnB1dChpbnRlcmFjdGlvbi5LRVkp
CisgICAgICAgIHNlbGYuZGV2aWNlcyA9IFttb3VzZSwga2V5Ym9hcmRdCisgICAgICAgIHNlbGYu
X2tleV9hY3Rpb24gPSBLZXlBY3Rpb25zKGtleWJvYXJkKQorICAgICAgICBzZWxmLl9wb2ludGVy
X2FjdGlvbiA9IFBvaW50ZXJBY3Rpb25zKG1vdXNlKQorICAgICAgICBzZWxmLmRyaXZlciA9IGRy
aXZlcgorCisgICAgZGVmIGdldF9kZXZpY2Vfd2l0aChzZWxmLCBuYW1lKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgaWR4ID0gc2VsZi5kZXZpY2VzLmluZGV4KG5hbWUpCisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5kZXZpY2VzW2lkeF0KKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAg
cGFzcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBvaW50ZXJfaW5wdXRzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gW2RldmljZSBmb3IgZGV2aWNlIGluIHNlbGYuZGV2aWNlcyBpZiBkZXZpY2Uu
dHlwZSA9PSBpbnRlcmFjdGlvbi5QT0lOVEVSXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGtl
eV9pbnB1dHMoc2VsZik6CisgICAgICAgIHJldHVybiBbZGV2aWNlIGZvciBkZXZpY2UgaW4gc2Vs
Zi5kZXZpY2VzIGlmIGRldmljZS50eXBlID09IGludGVyYWN0aW9uLktFWV0KKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBrZXlfYWN0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fa2V5
X2FjdGlvbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBvaW50ZXJfYWN0aW9uKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fcG9pbnRlcl9hY3Rpb24KKworICAgIGRlZiBhZGRfa2V5X2lu
cHV0KHNlbGYsIG5hbWUpOgorICAgICAgICBuZXdfaW5wdXQgPSBLZXlJbnB1dChuYW1lKQorICAg
ICAgICBzZWxmLl9hZGRfaW5wdXQobmV3X2lucHV0KQorICAgICAgICByZXR1cm4gbmV3X2lucHV0
CisKKyAgICBkZWYgYWRkX3BvaW50ZXJfaW5wdXQoc2VsZiwgdHlwZV8sIG5hbWUpOgorICAgICAg
ICBuZXdfaW5wdXQgPSBQb2ludGVySW5wdXQodHlwZV8sIG5hbWUpCisgICAgICAgIHNlbGYuX2Fk
ZF9pbnB1dChuZXdfaW5wdXQpCisgICAgICAgIHJldHVybiBuZXdfaW5wdXQKKworICAgIGRlZiBw
ZXJmb3JtKHNlbGYpOgorICAgICAgICBlbmMgPSB7ImFjdGlvbnMiOiBbXX0KKyAgICAgICAgZm9y
IGRldmljZSBpbiBzZWxmLmRldmljZXM6CisgICAgICAgICAgICBlbmNvZGVkID0gZGV2aWNlLmVu
Y29kZSgpCisgICAgICAgICAgICBpZiBlbmNvZGVkWydhY3Rpb25zJ106CisgICAgICAgICAgICAg
ICAgZW5jWyJhY3Rpb25zIl0uYXBwZW5kKGVuY29kZWQpCisgICAgICAgIHNlbGYuZHJpdmVyLmV4
ZWN1dGUoQ29tbWFuZC5XM0NfQUNUSU9OUywgZW5jKQorCisgICAgZGVmIGNsZWFyX2FjdGlvbnMo
c2VsZik6CisgICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfQ0xFQVJfQUNU
SU9OUykKKworICAgIGRlZiBfYWRkX2lucHV0KHNlbGYsIGlucHV0KToKKyAgICAgICAgc2VsZi5k
ZXZpY2VzLmFwcGVuZChpbnB1dCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9pbnB1dF9kZXZp
Y2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL2FjdGlvbnMvaW5wdXRfZGV2aWNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi45ODRlZjMxMDA5ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
YWN0aW9ucy9pbnB1dF9kZXZpY2UucHkKQEAgLTAsMCArMSw0MyBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCB1
dWlkCisKKworY2xhc3MgSW5wdXREZXZpY2Uob2JqZWN0KToKKyAgICAiIiIKKyAgICAgICAgRGVz
Y3JpYmVzIHRoZSBpbnB1dCBkZXZpY2UgYmVpbmcgdXNlZCBmb3IgdGhlIGFjdGlvbi4KKyAgICAi
IiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgaWYgbmFtZSBp
cyBOb25lOgorICAgICAgICAgICAgc2VsZi5uYW1lID0gdXVpZC51dWlkNCgpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisKKyAgICAgICAgc2VsZi5hY3Rpb25z
ID0gW10KKworICAgIGRlZiBhZGRfYWN0aW9uKHNlbGYsIGFjdGlvbik6CisgICAgICAgICIiIgor
CisgICAgICAgICIiIgorICAgICAgICBzZWxmLmFjdGlvbnMuYXBwZW5kKGFjdGlvbikKKworICAg
IGRlZiBjbGVhcl9hY3Rpb25zKHNlbGYpOgorICAgICAgICBzZWxmLmFjdGlvbnMgPSBbXQorCisg
ICAgZGVmIGNyZWF0ZV9wYXVzZShzZWxmLCBkdXJhdG9uPTApOgorICAgICAgICBwYXNzCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL2FjdGlvbnMvaW50ZXJhY3Rpb24ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvaW50ZXJh
Y3Rpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNjODA4OTQx
YzJhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2ludGVyYWN0aW9uLnB5CkBAIC0w
LDAgKzEsNDMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFu
Y3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1l
bnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBm
b3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hp
cC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hl
IExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNl
IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91
IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5h
cGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBh
cHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBC
QVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVu
ZGVyIHRoZSBMaWNlbnNlLgorCisKK0tFWSA9ICJrZXkiCitQT0lOVEVSID0gInBvaW50ZXIiCitO
T05FID0gIm5vbmUiCitTT1VSQ0VfVFlQRVMgPSBzZXQoW0tFWSwgUE9JTlRFUiwgTk9ORV0pCisK
KworY2xhc3MgSW50ZXJhY3Rpb24ob2JqZWN0KToKKworICAgIFBBVVNFID0gInBhdXNlIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZSk6CisgICAgICAgIHNlbGYuc291cmNlID0gc291
cmNlCisKKworY2xhc3MgUGF1c2UoSW50ZXJhY3Rpb24pOgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHNvdXJjZSwgZHVyYXRpb249MCk6CisgICAgICAgIHN1cGVyKEludGVyYWN0aW9uLCBzZWxm
KS5fX2luaXRfXygpCisgICAgICAgIHNlbGYuc291cmNlID0gc291cmNlCisgICAgICAgIHNlbGYu
ZHVyYXRpb24gPSBkdXJhdGlvbgorCisgICAgZGVmIGVuY29kZShzZWxmKToKKyAgICAgICAgb3V0
cHV0ID0geyJ0eXBlIjogc2VsZi5QQVVTRX0KKyAgICAgICAgb3V0cHV0WyJkdXJhdGlvbiJdID0g
c2VsZi5kdXJhdGlvbiAqIDEwMDAKKyAgICAgICAgcmV0dXJuIG91dHB1dApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9hY3Rpb25zL2tleV9hY3Rpb25zLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2tleV9hY3Rpb25zLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMGM3NDkyODM4MwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9rZXlfYWN0aW9ucy5weQpAQCAtMCwwICsxLDUy
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KK2Zyb20gLmludGVyYWN0aW9uIGltcG9ydCBJbnRlcmFjdGlvbgorZnJvbSAua2V5
X2lucHV0IGltcG9ydCBLZXlJbnB1dAorZnJvbSAuLnV0aWxzIGltcG9ydCBrZXlzX3RvX3R5cGlu
ZworCisKK2NsYXNzIEtleUFjdGlvbnMoSW50ZXJhY3Rpb24pOgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHNvdXJjZT1Ob25lKToKKyAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6CisgICAgICAg
ICAgICBzb3VyY2UgPSBLZXlJbnB1dCgpCisgICAgICAgIHNlbGYuc291cmNlID0gc291cmNlCisg
ICAgICAgIHN1cGVyKEtleUFjdGlvbnMsIHNlbGYpLl9faW5pdF9fKHNvdXJjZSkKKworICAgIGRl
ZiBrZXlfZG93bihzZWxmLCBsZXR0ZXIsIGVsZW1lbnQ9Tm9uZSk6CisgICAgICAgIHJldHVybiBz
ZWxmLl9rZXlfYWN0aW9uKCJjcmVhdGVfa2V5X2Rvd24iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXR0ZXIsIGVsZW1lbnQpCisKKyAgICBkZWYga2V5X3VwKHNlbGYsIGxldHRl
ciwgZWxlbWVudD1Ob25lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2tleV9hY3Rpb24oImNyZWF0
ZV9rZXlfdXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXIsIGVsZW1l
bnQpCisKKyAgICBkZWYgcGF1c2Uoc2VsZiwgZHVyYXRpb249MCk6CisgICAgICAgIHJldHVybiBz
ZWxmLl9rZXlfYWN0aW9uKCJjcmVhdGVfcGF1c2UiLCBkdXJhdGlvbikKKworICAgIGRlZiBzZW5k
X2tleXMoc2VsZiwgdGV4dCwgZWxlbWVudD1Ob25lKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2UodGV4dCwgbGlzdCk6CisgICAgICAgICAgICB0ZXh0ID0ga2V5c190b190eXBpbmcodGV4dCkK
KyAgICAgICAgZm9yIGxldHRlciBpbiB0ZXh0OgorICAgICAgICAgICAgc2VsZi5rZXlfZG93bihs
ZXR0ZXIsIGVsZW1lbnQpCisgICAgICAgICAgICBzZWxmLmtleV91cChsZXR0ZXIsIGVsZW1lbnQp
CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX2tleV9hY3Rpb24oc2VsZiwgYWN0aW9u
LCBsZXR0ZXIsIGVsZW1lbnQ9Tm9uZSk6CisgICAgICAgIG1ldGggPSBnZXRhdHRyKHNlbGYuc291
cmNlLCBhY3Rpb24pCisgICAgICAgIG1ldGgobGV0dGVyKQorICAgICAgICByZXR1cm4gc2VsZgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2tleV9pbnB1dC5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9ucy9rZXlf
aW5wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYzOTJjNmJj
NmQwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL2tleV9pbnB1dC5weQpAQCAtMCww
ICsxLDUxIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5
IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50
cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9y
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAu
ICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0
aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBt
YXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBh
Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBw
bGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFT
SVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lm
aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRl
ciB0aGUgTGljZW5zZS4KK2Zyb20gLiBpbXBvcnQgaW50ZXJhY3Rpb24KKworZnJvbSAuaW5wdXRf
ZGV2aWNlIGltcG9ydCBJbnB1dERldmljZQorZnJvbSAuaW50ZXJhY3Rpb24gaW1wb3J0IChJbnRl
cmFjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUGF1c2UpCisKKworY2xhc3MgS2V5
SW5wdXQoSW5wdXREZXZpY2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKKyAgICAg
ICAgc3VwZXIoS2V5SW5wdXQsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5uYW1lID0g
bmFtZQorICAgICAgICBzZWxmLnR5cGUgPSBpbnRlcmFjdGlvbi5LRVkKKworICAgIGRlZiBlbmNv
ZGUoc2VsZik6CisgICAgICAgIHJldHVybiB7InR5cGUiOiBzZWxmLnR5cGUsICJpZCI6IHNlbGYu
bmFtZSwgImFjdGlvbnMiOiBbYWN0cy5lbmNvZGUoKSBmb3IgYWN0cyBpbiBzZWxmLmFjdGlvbnNd
fQorCisgICAgZGVmIGNyZWF0ZV9rZXlfZG93bihzZWxmLCBrZXkpOgorICAgICAgICBzZWxmLmFk
ZF9hY3Rpb24oVHlwaW5nSW50ZXJhY3Rpb24oc2VsZiwgImtleURvd24iLCBrZXkpKQorCisgICAg
ZGVmIGNyZWF0ZV9rZXlfdXAoc2VsZiwga2V5KToKKyAgICAgICAgc2VsZi5hZGRfYWN0aW9uKFR5
cGluZ0ludGVyYWN0aW9uKHNlbGYsICJrZXlVcCIsIGtleSkpCisKKyAgICBkZWYgY3JlYXRlX3Bh
dXNlKHNlbGYsIHBhdXNlX2R1cmF0aW9uPTApOgorICAgICAgICBzZWxmLmFkZF9hY3Rpb24oUGF1
c2Uoc2VsZiwgcGF1c2VfZHVyYXRpb24pKQorCisKK2NsYXNzIFR5cGluZ0ludGVyYWN0aW9uKElu
dGVyYWN0aW9uKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2UsIHR5cGVfLCBrZXkp
OgorICAgICAgICBzdXBlcihUeXBpbmdJbnRlcmFjdGlvbiwgc2VsZikuX19pbml0X18oc291cmNl
KQorICAgICAgICBzZWxmLnR5cGUgPSB0eXBlXworICAgICAgICBzZWxmLmtleSA9IGtleQorCisg
ICAgZGVmIGVuY29kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHsidHlwZSI6IHNlbGYudHlwZSwg
InZhbHVlIjogc2VsZi5rZXl9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvbW91c2VfYnV0dG9u
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9hY3Rpb25zL21vdXNlX2J1dHRvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNzI2MWZkODIxODYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Fj
dGlvbnMvbW91c2VfYnV0dG9uLnB5CkBAIC0wLDAgKzEsNSBAQAorY2xhc3MgTW91c2VCdXR0b24o
b2JqZWN0KToKKworICAgIExFRlQgPSAwCisgICAgTUlERExFID0gMQorICAgIFJJR0hUID0gMgpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL3BvaW50ZXJfYWN0aW9ucy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYWN0aW9u
cy9wb2ludGVyX2FjdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmQzY2ExOWJlNjlkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hY3Rpb25zL3BvaW50ZXJf
YWN0aW9ucy5weQpAQCAtMCwwICsxLDEwMCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUg
RnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRv
ciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVk
IHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBj
b3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIp
OyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGgg
dGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMK
KyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5s
ZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAor
IyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv
biBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBP
RiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5z
ZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQg
bGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCitmcm9tIC4gaW1wb3J0IGludGVyYWN0
aW9uCisKK2Zyb20gLmludGVyYWN0aW9uIGltcG9ydCBJbnRlcmFjdGlvbgorZnJvbSAubW91c2Vf
YnV0dG9uIGltcG9ydCBNb3VzZUJ1dHRvbgorZnJvbSAucG9pbnRlcl9pbnB1dCBpbXBvcnQgUG9p
bnRlcklucHV0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJlbGVtZW50IGlt
cG9ydCBXZWJFbGVtZW50CisKKworY2xhc3MgUG9pbnRlckFjdGlvbnMoSW50ZXJhY3Rpb24pOgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZT1Ob25lKToKKyAgICAgICAgaWYgc291cmNl
IGlzIE5vbmU6CisgICAgICAgICAgICBzb3VyY2UgPSBQb2ludGVySW5wdXQoaW50ZXJhY3Rpb24u
UE9JTlRFUiwgIm1vdXNlIikKKyAgICAgICAgc2VsZi5zb3VyY2UgPSBzb3VyY2UKKyAgICAgICAg
c3VwZXIoUG9pbnRlckFjdGlvbnMsIHNlbGYpLl9faW5pdF9fKHNvdXJjZSkKKworICAgIGRlZiBw
b2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPU1vdXNlQnV0dG9uLkxFRlQpOgorICAgICAgICBzZWxm
Ll9idXR0b25fYWN0aW9uKCJjcmVhdGVfcG9pbnRlcl9kb3duIiwgYnV0dG9uPWJ1dHRvbikKKwor
ICAgIGRlZiBwb2ludGVyX3VwKHNlbGYsIGJ1dHRvbj1Nb3VzZUJ1dHRvbi5MRUZUKToKKyAgICAg
ICAgc2VsZi5fYnV0dG9uX2FjdGlvbigiY3JlYXRlX3BvaW50ZXJfdXAiLCBidXR0b249YnV0dG9u
KQorCisgICAgZGVmIG1vdmVfdG8oc2VsZiwgZWxlbWVudCwgeD1Ob25lLCB5PU5vbmUpOgorICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShlbGVtZW50LCBXZWJFbGVtZW50KToKKyAgICAgICAgICAg
IHJhaXNlIEF0dHJpYnV0ZUVycm9yKCJtb3ZlX3RvIHJlcXVpcmVzIGEgV2ViRWxlbWVudCIpCisg
ICAgICAgIGlmIHggaXMgbm90IE5vbmUgb3IgeSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGVs
X3JlY3QgPSBlbGVtZW50LnJlY3QKKyAgICAgICAgICAgIGxlZnRfb2Zmc2V0ID0gZWxfcmVjdFsn
d2lkdGgnXSAvIDIKKyAgICAgICAgICAgIHRvcF9vZmZzZXQgPSBlbF9yZWN0WydoZWlnaHQnXSAv
IDIKKyAgICAgICAgICAgIGxlZnQgPSAtbGVmdF9vZmZzZXQgKyAoeCBvciAwKQorICAgICAgICAg
ICAgdG9wID0gLXRvcF9vZmZzZXQgKyAoeSBvciAwKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgbGVmdCA9IDAKKyAgICAgICAgICAgIHRvcCA9IDAKKyAgICAgICAgc2VsZi5zb3VyY2UuY3Jl
YXRlX3BvaW50ZXJfbW92ZShvcmlnaW49ZWxlbWVudCwgeD1pbnQobGVmdCksIHk9aW50KHRvcCkp
CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgbW92ZV9ieShzZWxmLCB4LCB5KToKKyAg
ICAgICAgc2VsZi5zb3VyY2UuY3JlYXRlX3BvaW50ZXJfbW92ZShvcmlnaW49aW50ZXJhY3Rpb24u
UE9JTlRFUiwgeD1pbnQoeCksIHk9aW50KHkpKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAg
ZGVmIG1vdmVfdG9fbG9jYXRpb24oc2VsZiwgeCwgeSk6CisgICAgICAgIHNlbGYuc291cmNlLmNy
ZWF0ZV9wb2ludGVyX21vdmUob3JpZ2luPSd2aWV3cG9ydCcsIHg9aW50KHgpLCB5PWludCh5KSkK
KyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBjbGljayhzZWxmLCBlbGVtZW50PU5vbmUp
OgorICAgICAgICBpZiBlbGVtZW50OgorICAgICAgICAgICAgc2VsZi5tb3ZlX3RvKGVsZW1lbnQp
CisgICAgICAgIHNlbGYucG9pbnRlcl9kb3duKE1vdXNlQnV0dG9uLkxFRlQpCisgICAgICAgIHNl
bGYucG9pbnRlcl91cChNb3VzZUJ1dHRvbi5MRUZUKQorICAgICAgICByZXR1cm4gc2VsZgorCisg
ICAgZGVmIGNvbnRleHRfY2xpY2soc2VsZiwgZWxlbWVudD1Ob25lKToKKyAgICAgICAgaWYgZWxl
bWVudDoKKyAgICAgICAgICAgIHNlbGYubW92ZV90byhlbGVtZW50KQorICAgICAgICBzZWxmLnBv
aW50ZXJfZG93bihNb3VzZUJ1dHRvbi5SSUdIVCkKKyAgICAgICAgc2VsZi5wb2ludGVyX3VwKE1v
dXNlQnV0dG9uLlJJR0hUKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGNsaWNrX2Fu
ZF9ob2xkKHNlbGYsIGVsZW1lbnQ9Tm9uZSk6CisgICAgICAgIGlmIGVsZW1lbnQ6CisgICAgICAg
ICAgICBzZWxmLm1vdmVfdG8oZWxlbWVudCkKKyAgICAgICAgc2VsZi5wb2ludGVyX2Rvd24oKQor
ICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHJlbGVhc2Uoc2VsZik6CisgICAgICAgIHNl
bGYucG9pbnRlcl91cCgpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgZG91YmxlX2Ns
aWNrKHNlbGYsIGVsZW1lbnQ9Tm9uZSk6CisgICAgICAgIGlmIGVsZW1lbnQ6CisgICAgICAgICAg
ICBzZWxmLm1vdmVfdG8oZWxlbWVudCkKKyAgICAgICAgc2VsZi5jbGljaygpCisgICAgICAgIHNl
bGYuY2xpY2soKQorCisgICAgZGVmIHBhdXNlKHNlbGYsIGR1cmF0aW9uPTApOgorICAgICAgICBz
ZWxmLnNvdXJjZS5jcmVhdGVfcGF1c2UoZHVyYXRpb24pCisgICAgICAgIHJldHVybiBzZWxmCisK
KyAgICBkZWYgX2J1dHRvbl9hY3Rpb24oc2VsZiwgYWN0aW9uLCBidXR0b249TW91c2VCdXR0b24u
TEVGVCk6CisgICAgICAgIG1ldGggPSBnZXRhdHRyKHNlbGYuc291cmNlLCBhY3Rpb24pCisgICAg
ICAgIG1ldGgoYnV0dG9uKQorICAgICAgICByZXR1cm4gc2VsZgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9h
Y3Rpb25zL3BvaW50ZXJfaW5wdXQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvcG9pbnRlcl9pbnB1dC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzI0ZWU1YTRlZDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL2FjdGlvbnMvcG9pbnRlcl9pbnB1dC5weQpAQCAtMCwwICsxLDU4
IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMp
IHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNl
ZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUg
U0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y
Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJ
VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUg
TGljZW5zZS4KK2Zyb20gLmlucHV0X2RldmljZSBpbXBvcnQgSW5wdXREZXZpY2UKKworZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmVsZW1lbnQgaW1wb3J0IFdlYkVsZW1lbnQKKwor
CitjbGFzcyBQb2ludGVySW5wdXQoSW5wdXREZXZpY2UpOgorCisgICAgREVGQVVMVF9NT1ZFX0RV
UkFUSU9OID0gMjUwCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdHlwZV8sIG5hbWUpOgorICAg
ICAgICBzdXBlcihQb2ludGVySW5wdXQsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi50
eXBlID0gdHlwZV8KKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorCisgICAgZGVmIGNyZWF0ZV9w
b2ludGVyX21vdmUoc2VsZiwgZHVyYXRpb249REVGQVVMVF9NT1ZFX0RVUkFUSU9OLCB4PU5vbmUs
IHk9Tm9uZSwgb3JpZ2luPU5vbmUpOgorICAgICAgICBhY3Rpb24gPSBkaWN0KHR5cGU9InBvaW50
ZXJNb3ZlIiwgZHVyYXRpb249ZHVyYXRpb24pCisgICAgICAgIGFjdGlvblsieCJdID0geAorICAg
ICAgICBhY3Rpb25bInkiXSA9IHkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvcmlnaW4sIFdlYkVs
ZW1lbnQpOgorICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IHsiZWxlbWVudC02MDY2LTEx
ZTQtYTUyZS00ZjczNTQ2NmNlY2YiOiBvcmlnaW4uaWR9CisgICAgICAgIGVsaWYgb3JpZ2luIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IG9yaWdpbgorCisgICAg
ICAgIHNlbGYuYWRkX2FjdGlvbihhY3Rpb24pCisKKyAgICBkZWYgY3JlYXRlX3BvaW50ZXJfZG93
bihzZWxmLCBidXR0b24pOgorICAgICAgICBzZWxmLmFkZF9hY3Rpb24oeyJ0eXBlIjogInBvaW50
ZXJEb3duIiwgImR1cmF0aW9uIjogMCwgImJ1dHRvbiI6IGJ1dHRvbn0pCisKKyAgICBkZWYgY3Jl
YXRlX3BvaW50ZXJfdXAoc2VsZiwgYnV0dG9uKToKKyAgICAgICAgc2VsZi5hZGRfYWN0aW9uKHsi
dHlwZSI6ICJwb2ludGVyVXAiLCAiZHVyYXRpb24iOiAwLCAiYnV0dG9uIjogYnV0dG9ufSkKKwor
ICAgIGRlZiBjcmVhdGVfcG9pbnRlcl9jYW5jZWwoc2VsZik6CisgICAgICAgIHNlbGYuYWRkX2Fj
dGlvbih7InR5cGUiOiAicG9pbnRlckNhbmNlbCJ9KQorCisgICAgZGVmIGNyZWF0ZV9wYXVzZShz
ZWxmLCBwYXVzZV9kdXJhdGlvbik6CisgICAgICAgIHNlbGYuYWRkX2FjdGlvbih7InR5cGUiOiAi
cGF1c2UiLCAiZHVyYXRpb24iOiBwYXVzZV9kdXJhdGlvbiAqIDEwMDB9KQorCisgICAgZGVmIGVu
Y29kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHsidHlwZSI6IHNlbGYudHlwZSwKKyAgICAgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IHsicG9pbnRlclR5cGUiOiBzZWxmLm5hbWV9LAorICAgICAg
ICAgICAgICAgICJpZCI6IHNlbGYubmFtZSwKKyAgICAgICAgICAgICAgICAiYWN0aW9ucyI6IFth
Y3RzIGZvciBhY3RzIGluIHNlbGYuYWN0aW9uc119CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FsZXJ0LnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9hbGVydC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YzM3ZmRlZTdkOTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FsZXJ0LnB5CkBAIC0wLDAgKzEs
MTIyIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChT
RkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4g
IFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBU
aGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNl
bnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMs
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0
aGUgTGljZW5zZS4KKworIiIiCitUaGUgQWxlcnQgaW1wbGVtZW50YXRpb24uCisiIiIKKworZnJv
bSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLnV0aWxzIGltcG9ydCBrZXlzX3RvX3R5cGluZwor
ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLmNvbW1hbmQgaW1wb3J0IENvbW1hbmQKKwor
CitjbGFzcyBBbGVydChvYmplY3QpOgorICAgICIiIgorICAgIEFsbG93cyB0byB3b3JrIHdpdGgg
YWxlcnRzLgorCisgICAgVXNlIHRoaXMgY2xhc3MgdG8gaW50ZXJhY3Qgd2l0aCBhbGVydCBwcm9t
cHRzLiAgSXQgY29udGFpbnMgbWV0aG9kcyBmb3IgZGlzbWlzc2luZywKKyAgICBhY2NlcHRpbmcs
IGlucHV0dGluZywgYW5kIGdldHRpbmcgdGV4dCBmcm9tIGFsZXJ0IHByb21wdHMuCisKKyAgICBB
Y2NlcHRpbmcgLyBEaXNtaXNzaW5nIGFsZXJ0IHByb21wdHM6OgorCisgICAgICAgIEFsZXJ0KGRy
aXZlcikuYWNjZXB0KCkKKyAgICAgICAgQWxlcnQoZHJpdmVyKS5kaXNtaXNzKCkKKworICAgIElu
cHV0dGluZyBhIHZhbHVlIGludG8gYW4gYWxlcnQgcHJvbXB0OgorCisgICAgICAgIG5hbWVfcHJv
bXB0ID0gQWxlcnQoZHJpdmVyKQorICAgICAgICBuYW1lX3Byb21wdC5zZW5kX2tleXMoIldpbGxp
YW4gU2hha2VzcGhlcmUiKQorICAgICAgICBuYW1lX3Byb21wdC5hY2NlcHQoKQorCisKKyAgICBS
ZWFkaW5nIGEgdGhlIHRleHQgb2YgYSBwcm9tcHQgZm9yIHZlcmlmaWNhdGlvbjoKKworICAgICAg
ICBhbGVydF90ZXh0ID0gQWxlcnQoZHJpdmVyKS50ZXh0CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoIkRvIHlvdSB3aXNoIHRvIHF1aXQ/IiwgYWxlcnRfdGV4dCkKKworICAgICIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVz
IGEgbmV3IEFsZXJ0LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBkcml2ZXI6IFRoZSBX
ZWJEcml2ZXIgaW5zdGFuY2Ugd2hpY2ggcGVyZm9ybXMgdXNlciBhY3Rpb25zLgorICAgICAgICAi
IiIKKyAgICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiB0ZXh0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyB0aGUgdGV4dCBvZiB0aGUg
QWxlcnQuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLmRyaXZlci53M2M6CisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlczQ19HRVRfQUxFUlRfVEVY
VClbInZhbHVlIl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmRyaXZl
ci5leGVjdXRlKENvbW1hbmQuR0VUX0FMRVJUX1RFWFQpWyJ2YWx1ZSJdCisKKyAgICBkZWYgZGlz
bWlzcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIERpc21pc3NlcyB0aGUgYWxlcnQgYXZh
aWxhYmxlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5kcml2ZXIudzNjOgorICAgICAg
ICAgICAgc2VsZi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlczQ19ESVNNSVNTX0FMRVJUKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLkRJU01J
U1NfQUxFUlQpCisKKyAgICBkZWYgYWNjZXB0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg
QWNjZXB0cyB0aGUgYWxlcnQgYXZhaWxhYmxlLgorCisgICAgICAgIFVzYWdlOjoKKyAgICAgICAg
QWxlcnQoZHJpdmVyKS5hY2NlcHQoKSAjIENvbmZpcm0gYSBhbGVydCBkaWFsb2cuCisgICAgICAg
ICIiIgorICAgICAgICBpZiBzZWxmLmRyaXZlci53M2M6CisgICAgICAgICAgICBzZWxmLmRyaXZl
ci5leGVjdXRlKENvbW1hbmQuVzNDX0FDQ0VQVF9BTEVSVCkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5BQ0NFUFRfQUxFUlQpCisKKyAgICBk
ZWYgc2VuZF9rZXlzKHNlbGYsIGtleXNUb1NlbmQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2Vu
ZCBLZXlzIHRvIHRoZSBBbGVydC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0ga2V5c1Rv
U2VuZDogVGhlIHRleHQgdG8gYmUgc2VudCB0byBBbGVydC4KKworCisgICAgICAgICIiIgorICAg
ICAgICBpZiBzZWxmLmRyaXZlci53M2M6CisgICAgICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRl
KENvbW1hbmQuVzNDX1NFVF9BTEVSVF9WQUxVRSwgeyd2YWx1ZSc6IGtleXNfdG9fdHlwaW5nKGtl
eXNUb1NlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAndGV4dCc6IGtleXNUb1NlbmR9KQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi5kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlNFVF9BTEVSVF9WQUxVRSwgeyd0
ZXh0Jzoga2V5c1RvU2VuZH0pCisKKyAgICBkZWYgYXV0aGVudGljYXRlKHNlbGYsIHVzZXJuYW1l
LCBwYXNzd29yZCk6CisgICAgICAgICIiIgorICAgICAgICBTZW5kIHRoZSB1c2VybmFtZSAvIHBh
c3N3b3JkIHRvIGFuIEF1dGhlbnRpY2F0ZWQgZGlhbG9nIChsaWtlIHdpdGggQmFzaWMgSFRUUCBB
dXRoKS4KKyAgICAgICAgSW1wbGljaXRseSAnY2xpY2tzIG9rJworCisgICAgICAgIFVzYWdlOjoK
KyAgICAgICAgZHJpdmVyLnN3aXRjaF90by5hbGVydC5hdXRoZW50aWNhdGUoJ2NoZWVzZScsICdz
ZWNyZXRHb3VkYScpCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtdXNlcm5hbWU6IHN0cmlu
ZyB0byBiZSBzZXQgaW4gdGhlIHVzZXJuYW1lIHNlY3Rpb24gb2YgdGhlIGRpYWxvZworICAgICAg
ICAgLXBhc3N3b3JkOiBzdHJpbmcgdG8gYmUgc2V0IGluIHRoZSBwYXNzd29yZCBzZWN0aW9uIG9m
IHRoZSBkaWFsb2cKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGUoCisg
ICAgICAgICAgICBDb21tYW5kLlNFVF9BTEVSVF9DUkVERU5USUFMUywKKyAgICAgICAgICAgIHsn
dXNlcm5hbWUnOiB1c2VybmFtZSwgJ3Bhc3N3b3JkJzogcGFzc3dvcmR9KQorICAgICAgICBzZWxm
LmFjY2VwdCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2J5LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9ieS5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2IxMjI4ZDJhOGYKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2J5LnB5CkBAIC0wLDAgKzEsMzUgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3
YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJp
YnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmli
dXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRp
bmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRv
IHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vu
c2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3
aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisj
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
ZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg
YW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiIKK1RoZSBCeSBpbXBs
ZW1lbnRhdGlvbi4KKyIiIgorCisKK2NsYXNzIEJ5KG9iamVjdCk6CisgICAgIiIiCisgICAgU2V0
IG9mIHN1cHBvcnRlZCBsb2NhdG9yIHN0cmF0ZWdpZXMuCisgICAgIiIiCisKKyAgICBJRCA9ICJp
ZCIKKyAgICBYUEFUSCA9ICJ4cGF0aCIKKyAgICBMSU5LX1RFWFQgPSAibGluayB0ZXh0IgorICAg
IFBBUlRJQUxfTElOS19URVhUID0gInBhcnRpYWwgbGluayB0ZXh0IgorICAgIE5BTUUgPSAibmFt
ZSIKKyAgICBUQUdfTkFNRSA9ICJ0YWcgbmFtZSIKKyAgICBDTEFTU19OQU1FID0gImNsYXNzIG5h
bWUiCisgICAgQ1NTX1NFTEVDVE9SID0gImNzcyBzZWxlY3RvciIKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
ZGVzaXJlZF9jYXBhYmlsaXRpZXMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Rlc2lyZWRfY2FwYWJpbGl0aWVzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMWQwOWE1NTdlNwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vZGVzaXJlZF9jYXBhYmlsaXRpZXMucHkKQEAgLTAsMCArMSwxMjgg
QEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykg
dW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl
IHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBT
RkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lU
SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBM
aWNlbnNlLgorCisiIiIKK1RoZSBEZXNpcmVkIENhcGFiaWxpdGllcyBpbXBsZW1lbnRhdGlvbi4K
KyIiIgorCisKK2NsYXNzIERlc2lyZWRDYXBhYmlsaXRpZXMob2JqZWN0KToKKyAgICAiIiIKKyAg
ICBTZXQgb2YgZGVmYXVsdCBzdXBwb3J0ZWQgZGVzaXJlZCBjYXBhYmlsaXRpZXMuCisKKyAgICBV
c2UgdGhpcyBhcyBhIHN0YXJ0aW5nIHBvaW50IGZvciBjcmVhdGluZyBhIGRlc2lyZWQgY2FwYWJp
bGl0aWVzIG9iamVjdCBmb3IKKyAgICByZXF1ZXN0aW5nIHJlbW90ZSB3ZWJkcml2ZXJzIGZvciBj
b25uZWN0aW5nIHRvIHNlbGVuaXVtIHNlcnZlciBvciBzZWxlbml1bSBncmlkLgorCisgICAgVXNh
Z2UgRXhhbXBsZTo6CisKKyAgICAgICAgZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCisK
KyAgICAgICAgc2VsZW5pdW1fZ3JpZF91cmwgPSAiaHR0cDovLzE5OC4wLjAuMTo0NDQ0L3dkL2h1
YiIKKworICAgICAgICAjIENyZWF0ZSBhIGRlc2lyZWQgY2FwYWJpbGl0aWVzIG9iamVjdCBhcyBh
IHN0YXJ0aW5nIHBvaW50LgorICAgICAgICBjYXBhYmlsaXRpZXMgPSBEZXNpcmVkQ2FwYWJpbGl0
aWVzLkZJUkVGT1guY29weSgpCisgICAgICAgIGNhcGFiaWxpdGllc1sncGxhdGZvcm0nXSA9ICJX
SU5ET1dTIgorICAgICAgICBjYXBhYmlsaXRpZXNbJ3ZlcnNpb24nXSA9ICIxMCIKKworICAgICAg
ICAjIEluc3RhbnRpYXRlIGFuIGluc3RhbmNlIG9mIFJlbW90ZSBXZWJEcml2ZXIgd2l0aCB0aGUg
ZGVzaXJlZCBjYXBhYmlsaXRpZXMuCisgICAgICAgIGRyaXZlciA9IHdlYmRyaXZlci5SZW1vdGUo
ZGVzaXJlZF9jYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbW1hbmRfZXhlY3V0b3I9c2VsZW5pdW1fZ3JpZF91cmwpCisKKyAgICBO
b3RlOiBBbHdheXMgdXNlICcuY29weSgpJyBvbiB0aGUgRGVzaXJlZENhcGFiaWxpdGllcyBvYmpl
Y3QgdG8gYXZvaWQgdGhlIHNpZGUKKyAgICBlZmZlY3RzIG9mIGFsdGVyaW5nIHRoZSBHbG9iYWwg
Y2xhc3MgaW5zdGFuY2UuCisKKyAgICAiIiIKKworICAgIEZJUkVGT1ggPSB7CisgICAgICAgICJi
cm93c2VyTmFtZSI6ICJmaXJlZm94IiwKKyAgICAgICAgIm1hcmlvbmV0dGUiOiBUcnVlLAorICAg
ICAgICAiYWNjZXB0SW5zZWN1cmVDZXJ0cyI6IFRydWUsCisgICAgfQorCisgICAgSU5URVJORVRF
WFBMT1JFUiA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogImludGVybmV0IGV4cGxvcmVyIiwK
KyAgICAgICAgInZlcnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIldJTkRPV1MiLAor
ICAgIH0KKworICAgIEVER0UgPSB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJNaWNyb3NvZnRF
ZGdlIiwKKyAgICAgICAgInZlcnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIldJTkRP
V1MiCisgICAgfQorCisgICAgQ0hST01FID0geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiY2hy
b21lIiwKKyAgICAgICAgInZlcnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIkFOWSIs
CisgICAgfQorCisgICAgT1BFUkEgPSB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJvcGVyYSIs
CisgICAgICAgICJ2ZXJzaW9uIjogIiIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJBTlkiLAorICAg
IH0KKworICAgIFNBRkFSSSA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogInNhZmFyaSIsCisg
ICAgICAgICJ2ZXJzaW9uIjogIiIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJNQUMiLAorICAgIH0K
KworICAgIEhUTUxVTklUID0geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiaHRtbHVuaXQiLAor
ICAgICAgICAidmVyc2lvbiI6ICIiLAorICAgICAgICAicGxhdGZvcm0iOiAiQU5ZIiwKKyAgICB9
CisKKyAgICBIVE1MVU5JVFdJVEhKUyA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogImh0bWx1
bml0IiwKKyAgICAgICAgInZlcnNpb24iOiAiZmlyZWZveCIsCisgICAgICAgICJwbGF0Zm9ybSI6
ICJBTlkiLAorICAgICAgICAiamF2YXNjcmlwdEVuYWJsZWQiOiBUcnVlLAorICAgIH0KKworICAg
IElQSE9ORSA9IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogImlQaG9uZSIsCisgICAgICAgICJ2
ZXJzaW9uIjogIiIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJNQUMiLAorICAgIH0KKworICAgIElQ
QUQgPSB7CisgICAgICAgICJicm93c2VyTmFtZSI6ICJpUGFkIiwKKyAgICAgICAgInZlcnNpb24i
OiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIk1BQyIsCisgICAgfQorCisgICAgQU5EUk9JRCA9
IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogImFuZHJvaWQiLAorICAgICAgICAidmVyc2lvbiI6
ICIiLAorICAgICAgICAicGxhdGZvcm0iOiAiQU5EUk9JRCIsCisgICAgfQorCisgICAgUEhBTlRP
TUpTID0geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAicGhhbnRvbWpzIiwKKyAgICAgICAgInZl
cnNpb24iOiAiIiwKKyAgICAgICAgInBsYXRmb3JtIjogIkFOWSIsCisgICAgICAgICJqYXZhc2Ny
aXB0RW5hYmxlZCI6IFRydWUsCisgICAgfQorCisgICAgV0VCS0lUR1RLID0geworICAgICAgICAi
YnJvd3Nlck5hbWUiOiAiTWluaUJyb3dzZXIiLAorICAgICAgICAidmVyc2lvbiI6ICIiLAorICAg
ICAgICAicGxhdGZvcm0iOiAiQU5ZIiwKKyAgICB9CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2h0bWw1L19f
aW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9odG1sNS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2h0
bWw1L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3
YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJp
YnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmli
dXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRp
bmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRv
IHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vu
c2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3
aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisj
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
ZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg
YW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9o
dG1sNS9hcHBsaWNhdGlvbl9jYWNoZS5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vaHRtbDUvYXBwbGljYXRpb25fY2FjaGUu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVjZmU1ZTEwZDUxCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9odG1sNS9hcHBsaWNhdGlvbl9jYWNoZS5weQpAQCAtMCww
ICsxLDQ4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5
IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50
cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9y
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAu
ICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0
aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBt
YXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBh
Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBw
bGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFT
SVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lm
aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRl
ciB0aGUgTGljZW5zZS4KKworIiIiCitUaGUgQXBwbGljYXRpb25DYWNoZSBpbXBsZW1lbnRhaW9u
LgorIiIiCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS5jb21tYW5kIGltcG9ydCBD
b21tYW5kCisKKworY2xhc3MgQXBwbGljYXRpb25DYWNoZShvYmplY3QpOgorCisgICAgVU5DQUNI
RUQgPSAwCisgICAgSURMRSA9IDEKKyAgICBDSEVDS0lORyA9IDIKKyAgICBET1dOTE9BRElORyA9
IDMKKyAgICBVUERBVEVfUkVBRFkgPSA0CisgICAgT0JTT0xFVEUgPSA1CisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSBuZXcg
QXBsaWNhdGlvbiBDYWNoZS4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZHJpdmVyOiBU
aGUgV2ViRHJpdmVyIGluc3RhbmNlIHdoaWNoIHBlcmZvcm1zIHVzZXIgYWN0aW9ucy4KKyAgICAg
ICAgIiIiCisgICAgICAgIHNlbGYuZHJpdmVyID0gZHJpdmVyCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgc3RhdHVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhIGN1cnJl
bnQgc3RhdHVzIG9mIGFwcGxpY2F0aW9uIGNhY2hlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0
dXJuIHNlbGYuZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5HRVRfQVBQX0NBQ0hFX1NUQVRVUylbJ3Zh
bHVlJ10KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24va2V5cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24va2V5cy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2QzYmI3NmM3YTEKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2tleXMucHkKQEAgLTAsMCArMSw5NiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29m
dHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250
cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3Ry
aWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2Fy
ZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMg
dG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGlj
ZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisj
IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2Ug
YXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMK
KyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmli
dXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU
SU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUg
TGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIgorVGhlIEtleXMg
aW1wbGVtZW50YXRpb24uCisiIiIKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xp
dGVyYWxzCisKKworY2xhc3MgS2V5cyhvYmplY3QpOgorICAgICIiIgorICAgIFNldCBvZiBzcGVj
aWFsIGtleXMgY29kZXMuCisgICAgIiIiCisKKyAgICBOVUxMID0gJ1x1ZTAwMCcKKyAgICBDQU5D
RUwgPSAnXHVlMDAxJyAgIyBeYnJlYWsKKyAgICBIRUxQID0gJ1x1ZTAwMicKKyAgICBCQUNLU1BB
Q0UgPSAnXHVlMDAzJworICAgIEJBQ0tfU1BBQ0UgPSBCQUNLU1BBQ0UKKyAgICBUQUIgPSAnXHVl
MDA0JworICAgIENMRUFSID0gJ1x1ZTAwNScKKyAgICBSRVRVUk4gPSAnXHVlMDA2JworICAgIEVO
VEVSID0gJ1x1ZTAwNycKKyAgICBTSElGVCA9ICdcdWUwMDgnCisgICAgTEVGVF9TSElGVCA9IFNI
SUZUCisgICAgQ09OVFJPTCA9ICdcdWUwMDknCisgICAgTEVGVF9DT05UUk9MID0gQ09OVFJPTAor
ICAgIEFMVCA9ICdcdWUwMGEnCisgICAgTEVGVF9BTFQgPSBBTFQKKyAgICBQQVVTRSA9ICdcdWUw
MGInCisgICAgRVNDQVBFID0gJ1x1ZTAwYycKKyAgICBTUEFDRSA9ICdcdWUwMGQnCisgICAgUEFH
RV9VUCA9ICdcdWUwMGUnCisgICAgUEFHRV9ET1dOID0gJ1x1ZTAwZicKKyAgICBFTkQgPSAnXHVl
MDEwJworICAgIEhPTUUgPSAnXHVlMDExJworICAgIExFRlQgPSAnXHVlMDEyJworICAgIEFSUk9X
X0xFRlQgPSBMRUZUCisgICAgVVAgPSAnXHVlMDEzJworICAgIEFSUk9XX1VQID0gVVAKKyAgICBS
SUdIVCA9ICdcdWUwMTQnCisgICAgQVJST1dfUklHSFQgPSBSSUdIVAorICAgIERPV04gPSAnXHVl
MDE1JworICAgIEFSUk9XX0RPV04gPSBET1dOCisgICAgSU5TRVJUID0gJ1x1ZTAxNicKKyAgICBE
RUxFVEUgPSAnXHVlMDE3JworICAgIFNFTUlDT0xPTiA9ICdcdWUwMTgnCisgICAgRVFVQUxTID0g
J1x1ZTAxOScKKworICAgIE5VTVBBRDAgPSAnXHVlMDFhJyAgIyBudW1iZXIgcGFkIGtleXMKKyAg
ICBOVU1QQUQxID0gJ1x1ZTAxYicKKyAgICBOVU1QQUQyID0gJ1x1ZTAxYycKKyAgICBOVU1QQUQz
ID0gJ1x1ZTAxZCcKKyAgICBOVU1QQUQ0ID0gJ1x1ZTAxZScKKyAgICBOVU1QQUQ1ID0gJ1x1ZTAx
ZicKKyAgICBOVU1QQUQ2ID0gJ1x1ZTAyMCcKKyAgICBOVU1QQUQ3ID0gJ1x1ZTAyMScKKyAgICBO
VU1QQUQ4ID0gJ1x1ZTAyMicKKyAgICBOVU1QQUQ5ID0gJ1x1ZTAyMycKKyAgICBNVUxUSVBMWSA9
ICdcdWUwMjQnCisgICAgQUREID0gJ1x1ZTAyNScKKyAgICBTRVBBUkFUT1IgPSAnXHVlMDI2Jwor
ICAgIFNVQlRSQUNUID0gJ1x1ZTAyNycKKyAgICBERUNJTUFMID0gJ1x1ZTAyOCcKKyAgICBESVZJ
REUgPSAnXHVlMDI5JworCisgICAgRjEgPSAnXHVlMDMxJyAgIyBmdW5jdGlvbiAga2V5cworICAg
IEYyID0gJ1x1ZTAzMicKKyAgICBGMyA9ICdcdWUwMzMnCisgICAgRjQgPSAnXHVlMDM0JworICAg
IEY1ID0gJ1x1ZTAzNScKKyAgICBGNiA9ICdcdWUwMzYnCisgICAgRjcgPSAnXHVlMDM3JworICAg
IEY4ID0gJ1x1ZTAzOCcKKyAgICBGOSA9ICdcdWUwMzknCisgICAgRjEwID0gJ1x1ZTAzYScKKyAg
ICBGMTEgPSAnXHVlMDNiJworICAgIEYxMiA9ICdcdWUwM2MnCisKKyAgICBNRVRBID0gJ1x1ZTAz
ZCcKKyAgICBDT01NQU5EID0gJ1x1ZTAzZCcKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcHJveHkucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3Byb3h5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jY2Qz
NjJhZjYyNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcHJveHkucHkKQEAgLTAsMCArMSwzMzQg
QEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykg
dW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl
IHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBT
RkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lU
SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBM
aWNlbnNlLgorCisiIiIKK1RoZSBQcm94eSBpbXBsZW1lbnRhdGlvbi4KKyIiIgorCisKK2NsYXNz
IFByb3h5VHlwZUZhY3Rvcnk6CisgICAgIiIiCisgICAgRmFjdG9yeSBmb3IgcHJveHkgdHlwZXMu
CisgICAgIiIiCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIG1ha2UoZmZfdmFsdWUsIHN0
cmluZyk6CisgICAgICAgIHJldHVybiB7J2ZmX3ZhbHVlJzogZmZfdmFsdWUsICdzdHJpbmcnOiBz
dHJpbmd9CisKKworY2xhc3MgUHJveHlUeXBlOgorICAgICIiIgorICAgIFNldCBvZiBwb3NzaWJs
ZSB0eXBlcyBvZiBwcm94eS4KKworICAgIEVhY2ggcHJveHkgdHlwZSBoYXMgMiBwcm9wZXJ0aWVz
OgorICAgICAgICdmZl92YWx1ZScgaXMgdmFsdWUgb2YgRmlyZWZveCBwcm9maWxlIHByZWZlcmVu
Y2UsCisgICAgICAgJ3N0cmluZycgaXMgaWQgb2YgcHJveHkgdHlwZS4KKyAgICAiIiIKKworICAg
IERJUkVDVCA9IFByb3h5VHlwZUZhY3RvcnkubWFrZSgwLCAnRElSRUNUJykgICMgRGlyZWN0IGNv
bm5lY3Rpb24sIG5vIHByb3h5IChkZWZhdWx0IG9uIFdpbmRvd3MpLgorICAgIE1BTlVBTCA9IFBy
b3h5VHlwZUZhY3RvcnkubWFrZSgxLCAnTUFOVUFMJykgICMgTWFudWFsIHByb3h5IHNldHRpbmdz
IChlLmcuLCBmb3IgaHR0cFByb3h5KS4KKyAgICBQQUMgPSBQcm94eVR5cGVGYWN0b3J5Lm1ha2Uo
MiwgJ1BBQycpICAjIFByb3h5IGF1dG9jb25maWd1cmF0aW9uIGZyb20gVVJMLgorICAgIFJFU0VS
VkVEXzEgPSBQcm94eVR5cGVGYWN0b3J5Lm1ha2UoMywgJ1JFU0VSVkVEMScpICAjIE5ldmVyIHVz
ZWQuCisgICAgQVVUT0RFVEVDVCA9IFByb3h5VHlwZUZhY3RvcnkubWFrZSg0LCAnQVVUT0RFVEVD
VCcpICAjIFByb3h5IGF1dG9kZXRlY3Rpb24gKHByZXN1bWFibHkgd2l0aCBXUEFEKS4KKyAgICBT
WVNURU0gPSBQcm94eVR5cGVGYWN0b3J5Lm1ha2UoNSwgJ1NZU1RFTScpICAjIFVzZSBzeXN0ZW0g
c2V0dGluZ3MgKGRlZmF1bHQgb24gTGludXgpLgorICAgIFVOU1BFQ0lGSUVEID0gUHJveHlUeXBl
RmFjdG9yeS5tYWtlKDYsICdVTlNQRUNJRklFRCcpICAjIE5vdCBpbml0aWFsaXplZCAoZm9yIGlu
dGVybmFsIHVzZSkuCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZChjbHMsIHZhbHVl
KToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCkgYW5kICdzdHJpbmcnIGluIHZh
bHVlOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVsnc3RyaW5nJ10KKyAgICAgICAgdmFsdWUg
PSBzdHIodmFsdWUpLnVwcGVyKCkKKyAgICAgICAgZm9yIGF0dHIgaW4gZGlyKGNscyk6CisgICAg
ICAgICAgICBhdHRyX3ZhbHVlID0gZ2V0YXR0cihjbHMsIGF0dHIpCisgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKGF0dHJfdmFsdWUsIGRpY3QpIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICdz
dHJpbmcnIGluIGF0dHJfdmFsdWUgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgYXR0cl92YWx1
ZVsnc3RyaW5nJ10gaXMgbm90IE5vbmUgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgYXR0cl92
YWx1ZVsnc3RyaW5nJ10gPT0gdmFsdWU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJfdmFs
dWUKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBwcm94eSB0eXBlIGlzIGZvdW5kIGZvciAl
cyIgJSAodmFsdWUpKQorCisKK2NsYXNzIFByb3h5KG9iamVjdCk6CisgICAgIiIiCisgICAgUHJv
eHkgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcHJveHkgdHlwZSBhbmQgbmVjZXNzYXJ5IHBy
b3h5IHNldHRpbmdzLgorICAgICIiIgorCisgICAgcHJveHlUeXBlID0gUHJveHlUeXBlLlVOU1BF
Q0lGSUVECisgICAgYXV0b2RldGVjdCA9IEZhbHNlCisgICAgZnRwUHJveHkgPSAnJworICAgIGh0
dHBQcm94eSA9ICcnCisgICAgbm9Qcm94eSA9ICcnCisgICAgcHJveHlBdXRvY29uZmlnVXJsID0g
JycKKyAgICBzc2xQcm94eSA9ICcnCisgICAgc29ja3NQcm94eSA9ICcnCisgICAgc29ja3NVc2Vy
bmFtZSA9ICcnCisgICAgc29ja3NQYXNzd29yZCA9ICcnCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmF3PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIG5ldyBQcm94eS4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gcmF3OiByYXcgcHJveHkgZGF0YS4gSWYgTm9u
ZSwgZGVmYXVsdCBjbGFzcyB2YWx1ZXMgYXJlIHVzZWQuCisgICAgICAgICIiIgorICAgICAgICBp
ZiByYXcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiAncHJveHlUeXBlJyBpbiByYXcgYW5k
IHJhd1sncHJveHlUeXBlJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5wcm94
eV90eXBlID0gUHJveHlUeXBlLmxvYWQocmF3Wydwcm94eVR5cGUnXSkKKyAgICAgICAgICAgIGlm
ICdmdHBQcm94eScgaW4gcmF3IGFuZCByYXdbJ2Z0cFByb3h5J10gaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICAgICAgc2VsZi5mdHBfcHJveHkgPSByYXdbJ2Z0cFByb3h5J10KKyAgICAgICAgICAg
IGlmICdodHRwUHJveHknIGluIHJhdyBhbmQgcmF3WydodHRwUHJveHknXSBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICAgICBzZWxmLmh0dHBfcHJveHkgPSByYXdbJ2h0dHBQcm94eSddCisgICAg
ICAgICAgICBpZiAnbm9Qcm94eScgaW4gcmF3IGFuZCByYXdbJ25vUHJveHknXSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICAgICBzZWxmLm5vX3Byb3h5ID0gcmF3Wydub1Byb3h5J10KKyAgICAg
ICAgICAgIGlmICdwcm94eUF1dG9jb25maWdVcmwnIGluIHJhdyBhbmQgcmF3Wydwcm94eUF1dG9j
b25maWdVcmwnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLnByb3h5X2F1dG9j
b25maWdfdXJsID0gcmF3Wydwcm94eUF1dG9jb25maWdVcmwnXQorICAgICAgICAgICAgaWYgJ3Nz
bFByb3h5JyBpbiByYXcgYW5kIHJhd1snc3NsUHJveHknXSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICBzZWxmLnNzbFByb3h5ID0gcmF3Wydzc2xQcm94eSddCisgICAgICAgICAgICBpZiAn
YXV0b2RldGVjdCcgaW4gcmF3IGFuZCByYXdbJ2F1dG9kZXRlY3QnXSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgICAgICBzZWxmLmF1dG9fZGV0ZWN0ID0gcmF3WydhdXRvZGV0ZWN0J10KKyAgICAg
ICAgICAgIGlmICdzb2Nrc1Byb3h5JyBpbiByYXcgYW5kIHJhd1snc29ja3NQcm94eSddIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuc29ja3NfcHJveHkgPSByYXdbJ3NvY2tzUHJv
eHknXQorICAgICAgICAgICAgaWYgJ3NvY2tzVXNlcm5hbWUnIGluIHJhdyBhbmQgcmF3Wydzb2Nr
c1VzZXJuYW1lJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5zb2Nrc191c2Vy
bmFtZSA9IHJhd1snc29ja3NVc2VybmFtZSddCisgICAgICAgICAgICBpZiAnc29ja3NQYXNzd29y
ZCcgaW4gcmF3IGFuZCByYXdbJ3NvY2tzUGFzc3dvcmQnXSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICBzZWxmLnNvY2tzX3Bhc3N3b3JkID0gcmF3Wydzb2Nrc1Bhc3N3b3JkJ10KKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBwcm94eV90eXBlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg
ICAgUmV0dXJucyBwcm94eSB0eXBlIGFzIGBQcm94eVR5cGVgLgorICAgICAgICAiIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYucHJveHlUeXBlCisKKyAgICBAcHJveHlfdHlwZS5zZXR0ZXIKKyAgICBk
ZWYgcHJveHlfdHlwZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHBy
b3h5IHR5cGUuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHZhbHVlOiBUaGUgcHJveHkg
dHlwZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBh
dGliaWxpdHkodmFsdWUpCisgICAgICAgIHNlbGYucHJveHlUeXBlID0gdmFsdWUKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBhdXRvX2RldGVjdChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IFJldHVybnMgYXV0b2RldGVjdCBzZXR0aW5nLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu
IHNlbGYuYXV0b2RldGVjdAorCisgICAgQGF1dG9fZGV0ZWN0LnNldHRlcgorICAgIGRlZiBhdXRv
X2RldGVjdChzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIGF1dG9kZXRl
Y3Qgc2V0dGluZy4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWU6IFRoZSBhdXRv
ZGV0ZWN0IHZhbHVlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwg
Ym9vbCk6CisgICAgICAgICAgICBpZiBzZWxmLmF1dG9kZXRlY3QgaXMgbm90IHZhbHVlOgorICAg
ICAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBhdGliaWxpdHkoUHJveHlU
eXBlLkFVVE9ERVRFQ1QpCisgICAgICAgICAgICAgICAgc2VsZi5wcm94eVR5cGUgPSBQcm94eVR5
cGUuQVVUT0RFVEVDVAorICAgICAgICAgICAgICAgIHNlbGYuYXV0b2RldGVjdCA9IHZhbHVlCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBdXRvZGV0ZWN0IHBy
b3h5IHZhbHVlIG5lZWRzIHRvIGJlIGEgYm9vbGVhbiIpCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgZnRwX3Byb3h5KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBmdHAgcHJv
eHkgc2V0dGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZ0cFByb3h5CisK
KyAgICBAZnRwX3Byb3h5LnNldHRlcgorICAgIGRlZiBmdHBfcHJveHkoc2VsZiwgdmFsdWUpOgor
ICAgICAgICAiIiIKKyAgICAgICAgU2V0cyBmdHAgcHJveHkgc2V0dGluZy4KKworICAgICAgICA6
QXJnczoKKyAgICAgICAgIC0gdmFsdWU6IFRoZSBmdHAgcHJveHkgdmFsdWUuCisgICAgICAgICIi
IgorICAgICAgICBzZWxmLl92ZXJpZnlfcHJveHlfdHlwZV9jb21wYXRpYmlsaXR5KFByb3h5VHlw
ZS5NQU5VQUwpCisgICAgICAgIHNlbGYucHJveHlUeXBlID0gUHJveHlUeXBlLk1BTlVBTAorICAg
ICAgICBzZWxmLmZ0cFByb3h5ID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBodHRw
X3Byb3h5KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBodHRwIHByb3h5IHNl
dHRpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5odHRwUHJveHkKKworICAg
IEBodHRwX3Byb3h5LnNldHRlcgorICAgIGRlZiBodHRwX3Byb3h5KHNlbGYsIHZhbHVlKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFNldHMgaHR0cCBwcm94eSBzZXR0aW5nLgorCisgICAgICAgIDpB
cmdzOgorICAgICAgICAgLSB2YWx1ZTogVGhlIGh0dHAgcHJveHkgdmFsdWUuCisgICAgICAgICIi
IgorICAgICAgICBzZWxmLl92ZXJpZnlfcHJveHlfdHlwZV9jb21wYXRpYmlsaXR5KFByb3h5VHlw
ZS5NQU5VQUwpCisgICAgICAgIHNlbGYucHJveHlUeXBlID0gUHJveHlUeXBlLk1BTlVBTAorICAg
ICAgICBzZWxmLmh0dHBQcm94eSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9f
cHJveHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIG5vcHJveHkgc2V0dGlu
Zy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLm5vUHJveHkKKworICAgIEBub19w
cm94eS5zZXR0ZXIKKyAgICBkZWYgbm9fcHJveHkoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIK
KyAgICAgICAgU2V0cyBub3Byb3h5IHNldHRpbmcuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAg
ICAtIHZhbHVlOiBUaGUgbm9wcm94eSB2YWx1ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYu
X3ZlcmlmeV9wcm94eV90eXBlX2NvbXBhdGliaWxpdHkoUHJveHlUeXBlLk1BTlVBTCkKKyAgICAg
ICAgc2VsZi5wcm94eVR5cGUgPSBQcm94eVR5cGUuTUFOVUFMCisgICAgICAgIHNlbGYubm9Qcm94
eSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJveHlfYXV0b2NvbmZpZ191cmwo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHByb3h5IGF1dG9jb25maWcgdXJs
IHNldHRpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5wcm94eUF1dG9jb25m
aWdVcmwKKworICAgIEBwcm94eV9hdXRvY29uZmlnX3VybC5zZXR0ZXIKKyAgICBkZWYgcHJveHlf
YXV0b2NvbmZpZ191cmwoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyBw
cm94eSBhdXRvY29uZmlnIHVybCBzZXR0aW5nLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSB2YWx1ZTogVGhlIHByb3h5IGF1dG9jb25maWcgdXJsIHZhbHVlLgorICAgICAgICAiIiIKKyAg
ICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0aWJpbGl0eShQcm94eVR5cGUuUEFD
KQorICAgICAgICBzZWxmLnByb3h5VHlwZSA9IFByb3h5VHlwZS5QQUMKKyAgICAgICAgc2VsZi5w
cm94eUF1dG9jb25maWdVcmwgPSB2YWx1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNzbF9w
cm94eShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgaHR0cHMgcHJveHkgc2V0
dGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLnNzbFByb3h5CisKKyAgICBA
c3NsX3Byb3h5LnNldHRlcgorICAgIGRlZiBzc2xfcHJveHkoc2VsZiwgdmFsdWUpOgorICAgICAg
ICAiIiIKKyAgICAgICAgU2V0cyBodHRwcyBwcm94eSBzZXR0aW5nLgorCisgICAgICAgIDpBcmdz
OgorICAgICAgICAgLSB2YWx1ZTogVGhlIGh0dHBzIHByb3h5IHZhbHVlLgorICAgICAgICAiIiIK
KyAgICAgICAgc2VsZi5fdmVyaWZ5X3Byb3h5X3R5cGVfY29tcGF0aWJpbGl0eShQcm94eVR5cGUu
TUFOVUFMKQorICAgICAgICBzZWxmLnByb3h5VHlwZSA9IFByb3h5VHlwZS5NQU5VQUwKKyAgICAg
ICAgc2VsZi5zc2xQcm94eSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc29ja3Nf
cHJveHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHNvY2tzIHByb3h5IHNl
dHRpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5zb2Nrc1Byb3h5CisKKyAg
ICBAc29ja3NfcHJveHkuc2V0dGVyCisgICAgZGVmIHNvY2tzX3Byb3h5KHNlbGYsIHZhbHVlKToK
KyAgICAgICAgIiIiCisgICAgICAgIFNldHMgc29ja3MgcHJveHkgc2V0dGluZy4KKworICAgICAg
ICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWU6IFRoZSBzb2NrcyBwcm94eSB2YWx1ZS4KKyAgICAg
ICAgIiIiCisgICAgICAgIHNlbGYuX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBhdGliaWxpdHkoUHJv
eHlUeXBlLk1BTlVBTCkKKyAgICAgICAgc2VsZi5wcm94eVR5cGUgPSBQcm94eVR5cGUuTUFOVUFM
CisgICAgICAgIHNlbGYuc29ja3NQcm94eSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgc29ja3NfdXNlcm5hbWUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHNv
Y2tzIHByb3h5IHVzZXJuYW1lIHNldHRpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5zb2Nrc1VzZXJuYW1lCisKKyAgICBAc29ja3NfdXNlcm5hbWUuc2V0dGVyCisgICAgZGVm
IHNvY2tzX3VzZXJuYW1lKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMg
c29ja3MgcHJveHkgdXNlcm5hbWUgc2V0dGluZy4KKworICAgICAgICA6QXJnczoKKyAgICAgICAg
IC0gdmFsdWU6IFRoZSBzb2NrcyBwcm94eSB1c2VybmFtZSB2YWx1ZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYuX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBhdGliaWxpdHkoUHJveHlUeXBlLk1B
TlVBTCkKKyAgICAgICAgc2VsZi5wcm94eVR5cGUgPSBQcm94eVR5cGUuTUFOVUFMCisgICAgICAg
IHNlbGYuc29ja3NVc2VybmFtZSA9IHZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc29j
a3NfcGFzc3dvcmQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHNvY2tzIHBy
b3h5IHBhc3N3b3JkIHNldHRpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5z
b2Nrc1Bhc3N3b3JkCisKKyAgICBAc29ja3NfcGFzc3dvcmQuc2V0dGVyCisgICAgZGVmIHNvY2tz
X3Bhc3N3b3JkKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgc29ja3Mg
cHJveHkgcGFzc3dvcmQgc2V0dGluZy4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFs
dWU6IFRoZSBzb2NrcyBwcm94eSBwYXNzd29yZCB2YWx1ZS4KKyAgICAgICAgIiIiCisgICAgICAg
IHNlbGYuX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBhdGliaWxpdHkoUHJveHlUeXBlLk1BTlVBTCkK
KyAgICAgICAgc2VsZi5wcm94eVR5cGUgPSBQcm94eVR5cGUuTUFOVUFMCisgICAgICAgIHNlbGYu
c29ja3NQYXNzd29yZCA9IHZhbHVlCisKKyAgICBkZWYgX3ZlcmlmeV9wcm94eV90eXBlX2NvbXBh
dGliaWxpdHkoc2VsZiwgY29tcGF0aWJsZVByb3h5KToKKyAgICAgICAgaWYgc2VsZi5wcm94eVR5
cGUgIT0gUHJveHlUeXBlLlVOU1BFQ0lGSUVEIGFuZCBzZWxmLnByb3h5VHlwZSAhPSBjb21wYXRp
YmxlUHJveHk6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIiBTcGVjaWZpZWQgcHJveHkg
dHlwZSAoJXMpIG5vdCBjb21wYXRpYmxlIHdpdGggY3VycmVudCBzZXR0aW5nICglcykiICUgKGNv
bXBhdGlibGVQcm94eSwgc2VsZi5wcm94eVR5cGUpKQorCisgICAgZGVmIGFkZF90b19jYXBhYmls
aXRpZXMoc2VsZiwgY2FwYWJpbGl0aWVzKToKKyAgICAgICAgIiIiCisgICAgICAgIEFkZHMgcHJv
eHkgaW5mb3JtYXRpb24gYXMgY2FwYWJpbGl0eSBpbiBzcGVjaWZpZWQgY2FwYWJpbGl0aWVzLgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBjYXBhYmlsaXRpZXM6IFRoZSBjYXBhYmlsaXRp
ZXMgdG8gd2hpY2ggcHJveHkgd2lsbCBiZSBhZGRlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHBy
b3h5X2NhcHMgPSB7fQorICAgICAgICBwcm94eV9jYXBzWydwcm94eVR5cGUnXSA9IHNlbGYucHJv
eHlUeXBlWydzdHJpbmcnXQorICAgICAgICBpZiBzZWxmLmF1dG9kZXRlY3Q6CisgICAgICAgICAg
ICBwcm94eV9jYXBzWydhdXRvZGV0ZWN0J10gPSBzZWxmLmF1dG9kZXRlY3QKKyAgICAgICAgaWYg
c2VsZi5mdHBQcm94eToKKyAgICAgICAgICAgIHByb3h5X2NhcHNbJ2Z0cFByb3h5J10gPSBzZWxm
LmZ0cFByb3h5CisgICAgICAgIGlmIHNlbGYuaHR0cFByb3h5OgorICAgICAgICAgICAgcHJveHlf
Y2Fwc1snaHR0cFByb3h5J10gPSBzZWxmLmh0dHBQcm94eQorICAgICAgICBpZiBzZWxmLnByb3h5
QXV0b2NvbmZpZ1VybDoKKyAgICAgICAgICAgIHByb3h5X2NhcHNbJ3Byb3h5QXV0b2NvbmZpZ1Vy
bCddID0gc2VsZi5wcm94eUF1dG9jb25maWdVcmwKKyAgICAgICAgaWYgc2VsZi5zc2xQcm94eToK
KyAgICAgICAgICAgIHByb3h5X2NhcHNbJ3NzbFByb3h5J10gPSBzZWxmLnNzbFByb3h5CisgICAg
ICAgIGlmIHNlbGYubm9Qcm94eToKKyAgICAgICAgICAgIHByb3h5X2NhcHNbJ25vUHJveHknXSA9
IHNlbGYubm9Qcm94eQorICAgICAgICBpZiBzZWxmLnNvY2tzUHJveHk6CisgICAgICAgICAgICBw
cm94eV9jYXBzWydzb2Nrc1Byb3h5J10gPSBzZWxmLnNvY2tzUHJveHkKKyAgICAgICAgaWYgc2Vs
Zi5zb2Nrc1VzZXJuYW1lOgorICAgICAgICAgICAgcHJveHlfY2Fwc1snc29ja3NVc2VybmFtZSdd
ID0gc2VsZi5zb2Nrc1VzZXJuYW1lCisgICAgICAgIGlmIHNlbGYuc29ja3NQYXNzd29yZDoKKyAg
ICAgICAgICAgIHByb3h5X2NhcHNbJ3NvY2tzUGFzc3dvcmQnXSA9IHNlbGYuc29ja3NQYXNzd29y
ZAorICAgICAgICBjYXBhYmlsaXRpZXNbJ3Byb3h5J10gPSBwcm94eV9jYXBzCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL3NlcnZpY2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlcnZpY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjg5ODRmNWYwYTJiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9z
ZXJ2aWNlLnB5CkBAIC0wLDAgKzEsMTc2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGVycm5vCitpbXBvcnQg
b3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20gc3VicHJvY2VzcyBp
bXBvcnQgUElQRQoraW1wb3J0IHRpbWUKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMg
aW1wb3J0IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9u
IGltcG9ydCB1dGlscworCit0cnk6CisgICAgZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBERVZOVUxM
CisgICAgX0hBU19OQVRJVkVfREVWTlVMTCA9IFRydWUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAg
ICBERVZOVUxMID0gLTMKKyAgICBfSEFTX05BVElWRV9ERVZOVUxMID0gRmFsc2UKKworCitjbGFz
cyBTZXJ2aWNlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZSwg
cG9ydD0wLCBsb2dfZmlsZT1ERVZOVUxMLCBlbnY9Tm9uZSwgc3RhcnRfZXJyb3JfbWVzc2FnZT0i
Iik6CisgICAgICAgIHNlbGYucGF0aCA9IGV4ZWN1dGFibGUKKworICAgICAgICBzZWxmLnBvcnQg
PSBwb3J0CisgICAgICAgIGlmIHNlbGYucG9ydCA9PSAwOgorICAgICAgICAgICAgc2VsZi5wb3J0
ID0gdXRpbHMuZnJlZV9wb3J0KCkKKworICAgICAgICBpZiBub3QgX0hBU19OQVRJVkVfREVWTlVM
TCBhbmQgbG9nX2ZpbGUgPT0gREVWTlVMTDoKKyAgICAgICAgICAgIGxvZ19maWxlID0gb3Blbihv
cy5kZXZudWxsLCAnd2InKQorCisgICAgICAgIHNlbGYuc3RhcnRfZXJyb3JfbWVzc2FnZSA9IHN0
YXJ0X2Vycm9yX21lc3NhZ2UKKyAgICAgICAgc2VsZi5sb2dfZmlsZSA9IGxvZ19maWxlCisgICAg
ICAgIHNlbGYuZW52ID0gZW52IG9yIG9zLmVudmlyb24KKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBzZXJ2aWNlX3VybChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldHMgdGhlIHVybCBv
ZiB0aGUgU2VydmljZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuICJodHRwOi8vJXMiICUg
dXRpbHMuam9pbl9ob3N0X3BvcnQoJ2xvY2FsaG9zdCcsIHNlbGYucG9ydCkKKworICAgIGRlZiBj
b21tYW5kX2xpbmVfYXJncyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWQoIlRo
aXMgbWV0aG9kIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkIGluIGEgc3ViIGNsYXNzIikKKworICAg
IGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFN0YXJ0cyB0aGUgU2Vydmlj
ZS4KKworICAgICAgICA6RXhjZXB0aW9uczoKKyAgICAgICAgIC0gV2ViRHJpdmVyRXhjZXB0aW9u
IDogUmFpc2VkIGVpdGhlciB3aGVuIGl0IGNhbid0IHN0YXJ0IHRoZSBzZXJ2aWNlCisgICAgICAg
ICAgIG9yIHdoZW4gaXQgY2FuJ3QgY29ubmVjdCB0byB0aGUgc2VydmljZQorICAgICAgICAiIiIK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY21kID0gW3NlbGYucGF0aF0KKyAgICAgICAgICAg
IGNtZC5leHRlbmQoc2VsZi5jb21tYW5kX2xpbmVfYXJncygpKQorICAgICAgICAgICAgc2VsZi5w
cm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIGVudj1zZWxmLmVudiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXBsYXRmb3JtLnN5c3Rl
bSgpICE9ICdXaW5kb3dzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PXNlbGYubG9nX2ZpbGUsIHN0ZGVycj1zZWxmLmxvZ19maWxlKQorICAgICAg
ICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IE9T
RXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgaWYgZXJyLmVycm5vID09IGVycm5vLkVOT0VOVDoK
KyAgICAgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAg
ICAgICAgICInJXMnIGV4ZWN1dGFibGUgbmVlZHMgdG8gYmUgaW4gUEFUSC4gJXMiICUgKAorICAg
ICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5iYXNlbmFtZShzZWxmLnBhdGgpLCBzZWxmLnN0
YXJ0X2Vycm9yX21lc3NhZ2UpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxpZiBl
cnIuZXJybm8gPT0gZXJybm8uRUFDQ0VTOgorICAgICAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZl
ckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIiclcycgZXhlY3V0YWJsZSBtYXkgaGF2
ZSB3cm9uZyBwZXJtaXNzaW9ucy4gJXMiICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgb3Mu
cGF0aC5iYXNlbmFtZShzZWxmLnBhdGgpLCBzZWxmLnN0YXJ0X2Vycm9yX21lc3NhZ2UpCisgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2
ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIlRoZSBleGVjdXRhYmxlICVzIG5lZWRzIHRv
IGJlIGF2YWlsYWJsZSBpbiB0aGUgcGF0aC4gJXNcbiVzIiAlCisgICAgICAgICAgICAgICAgKG9z
LnBhdGguYmFzZW5hbWUoc2VsZi5wYXRoKSwgc2VsZi5zdGFydF9lcnJvcl9tZXNzYWdlLCBzdHIo
ZSkpKQorICAgICAgICBjb3VudCA9IDAKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0X3Byb2Nlc3Nfc3RpbGxfcnVubmluZygpCisgICAgICAgICAgICBpZiBzZWxm
LmlzX2Nvbm5lY3RhYmxlKCk6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGNv
dW50ICs9IDEKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgICAgIGlmIGNvdW50
ID09IDMwOgorICAgICAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiQ2FuIG5v
dCBjb25uZWN0IHRvIHRoZSBTZXJ2aWNlICVzIiAlIHNlbGYucGF0aCkKKworICAgIGRlZiBhc3Nl
cnRfcHJvY2Vzc19zdGlsbF9ydW5uaW5nKHNlbGYpOgorICAgICAgICByZXR1cm5fY29kZSA9IHNl
bGYucHJvY2Vzcy5wb2xsKCkKKyAgICAgICAgaWYgcmV0dXJuX2NvZGUgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1Nl
cnZpY2UgJXMgdW5leHBlY3RlZGx5IGV4aXRlZC4gU3RhdHVzIGNvZGUgd2FzOiAlcycKKyAgICAg
ICAgICAgICAgICAlIChzZWxmLnBhdGgsIHJldHVybl9jb2RlKQorICAgICAgICAgICAgKQorCisg
ICAgZGVmIGlzX2Nvbm5lY3RhYmxlKHNlbGYpOgorICAgICAgICByZXR1cm4gdXRpbHMuaXNfY29u
bmVjdGFibGUoc2VsZi5wb3J0KQorCisgICAgZGVmIHNlbmRfcmVtb3RlX3NodXRkb3duX2NvbW1h
bmQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZyb20gdXJsbGliIGltcG9ydCBy
ZXF1ZXN0IGFzIHVybF9yZXF1ZXN0CisgICAgICAgICAgICBVUkxFcnJvciA9IHVybF9yZXF1ZXN0
LlVSTEVycm9yCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIGltcG9y
dCB1cmxsaWIyIGFzIHVybF9yZXF1ZXN0CisgICAgICAgICAgICBpbXBvcnQgdXJsbGliMgorICAg
ICAgICAgICAgVVJMRXJyb3IgPSB1cmxsaWIyLlVSTEVycm9yCisKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgdXJsX3JlcXVlc3QudXJsb3BlbigiJXMvc2h1dGRvd24iICUgc2VsZi5zZXJ2aWNl
X3VybCkKKyAgICAgICAgZXhjZXB0IFVSTEVycm9yOgorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICAgICAgZm9yIHggaW4gcmFuZ2UoMzApOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfY29u
bmVjdGFibGUoKToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICB0aW1lLnNsZWVwKDEpCisKKyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFN0b3BzIHRoZSBzZXJ2aWNlLgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgc2VsZi5sb2dfZmlsZSAhPSBQSVBFIGFuZCBub3QgKHNlbGYubG9nX2ZpbGUgPT0gREVWTlVM
TCBhbmQgX0hBU19OQVRJVkVfREVWTlVMTCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgc2VsZi5sb2dfZmlsZS5jbG9zZSgpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiBzZWxmLnByb2Nlc3MgaXMgTm9u
ZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYu
c2VuZF9yZW1vdGVfc2h1dGRvd25fY29tbWFuZCgpCisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6
CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgc2VsZi5w
cm9jZXNzOgorICAgICAgICAgICAgICAgIGZvciBzdHJlYW0gaW4gW3NlbGYucHJvY2Vzcy5zdGRp
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb2Nlc3Muc3Rkb3V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvY2Vzcy5zdGRlcnJdOgorICAg
ICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uY2xv
c2UoKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgc2VsZi5wcm9jZXNzLnRlcm1p
bmF0ZSgpCisgICAgICAgICAgICAgICAgc2VsZi5wcm9jZXNzLndhaXQoKQorICAgICAgICAgICAg
ICAgIHNlbGYucHJvY2Vzcy5raWxsKCkKKyAgICAgICAgICAgICAgICBzZWxmLnByb2Nlc3MgPSBO
b25lCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgcGFzcworCisgICAgZGVm
IF9fZGVsX18oc2VsZik6CisgICAgICAgICMgYHN1YnByb2Nlc3MuUG9wZW5gIGRvZXNuJ3Qgc2Vu
ZCBzaWduYWwgb24gYF9fZGVsX19gOworICAgICAgICAjIHNvIHdlIGF0dGVtcHQgdG8gY2xvc2Ug
dGhlIGxhdW5jaGVkIHByb2Nlc3Mgd2hlbiBgX19kZWxfX2AKKyAgICAgICAgIyBpcyB0cmlnZ2Vy
ZWQuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuc3RvcCgpCisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3RvdWNoX2Fj
dGlvbnMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3RvdWNoX2FjdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjg5YjI1MjkwZWYxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90b3Vj
aF9hY3Rpb25zLnB5CkBAIC0wLDAgKzEsMTkyIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2Fy
ZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1
dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0
ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5n
IGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5
b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNl
Iik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0
aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor
IworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBV
bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs
CisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk
IG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T
IE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNl
bnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFu
ZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworIiIiCitUaGUgVG91Y2ggQWN0
aW9ucyBpbXBsZW1lbnRhdGlvbgorIiIiCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90
ZS5jb21tYW5kIGltcG9ydCBDb21tYW5kCisKKworY2xhc3MgVG91Y2hBY3Rpb25zKG9iamVjdCk6
CisgICAgIiIiCisgICAgR2VuZXJhdGUgdG91Y2ggYWN0aW9ucy4gV29ya3MgbGlrZSBBY3Rpb25D
aGFpbnM7IGFjdGlvbnMgYXJlIHN0b3JlZCBpbiB0aGUKKyAgICBUb3VjaEFjdGlvbnMgb2JqZWN0
IGFuZCBhcmUgZmlyZWQgd2l0aCBwZXJmb3JtKCkuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSBuZXcgVG91
Y2hBY3Rpb25zIG9iamVjdC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZHJpdmVyOiBU
aGUgV2ViRHJpdmVyIGluc3RhbmNlIHdoaWNoIHBlcmZvcm1zIHVzZXIgYWN0aW9ucy4KKyAgICAg
ICAgICAgSXQgc2hvdWxkIGJlIHdpdGggdG91Y2hzY3JlZW4gZW5hYmxlZC4KKyAgICAgICAgIiIi
CisgICAgICAgIHNlbGYuX2RyaXZlciA9IGRyaXZlcgorICAgICAgICBzZWxmLl9hY3Rpb25zID0g
W10KKworICAgIGRlZiBwZXJmb3JtKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUGVyZm9y
bXMgYWxsIHN0b3JlZCBhY3Rpb25zLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGFjdGlvbiBp
biBzZWxmLl9hY3Rpb25zOgorICAgICAgICAgICAgYWN0aW9uKCkKKworICAgIGRlZiB0YXAoc2Vs
Ziwgb25fZWxlbWVudCk6CisgICAgICAgICIiIgorICAgICAgICBUYXBzIG9uIGEgZ2l2ZW4gZWxl
bWVudC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gb25fZWxlbWVudDogVGhlIGVsZW1l
bnQgdG8gdGFwLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQobGFt
YmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1hbmQuU0lOR0xFX1RB
UCwgeydlbGVtZW50Jzogb25fZWxlbWVudC5pZH0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisg
ICAgZGVmIGRvdWJsZV90YXAoc2VsZiwgb25fZWxlbWVudCk6CisgICAgICAgICIiIgorICAgICAg
ICBEb3VibGUgdGFwcyBvbiBhIGdpdmVuIGVsZW1lbnQuCisKKyAgICAgICAgOkFyZ3M6CisgICAg
ICAgICAtIG9uX2VsZW1lbnQ6IFRoZSBlbGVtZW50IHRvIHRhcC4KKyAgICAgICAgIiIiCisgICAg
ICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUoCisg
ICAgICAgICAgICBDb21tYW5kLkRPVUJMRV9UQVAsIHsnZWxlbWVudCc6IG9uX2VsZW1lbnQuaWR9
KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiB0YXBfYW5kX2hvbGQoc2VsZiwgeGNv
b3JkLCB5Y29vcmQpOgorICAgICAgICAiIiIKKyAgICAgICAgVG91Y2ggZG93biBhdCBnaXZlbiBj
b29yZGluYXRlcy4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0geGNvb3JkOiBYIENvb3Jk
aW5hdGUgdG8gdG91Y2ggZG93bi4KKyAgICAgICAgIC0geWNvb3JkOiBZIENvb3JkaW5hdGUgdG8g
dG91Y2ggZG93bi4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxh
bWJkYTogc2VsZi5fZHJpdmVyLmV4ZWN1dGUoCisgICAgICAgICAgICBDb21tYW5kLlRPVUNIX0RP
V04sIHsKKyAgICAgICAgICAgICAgICAneCc6IGludCh4Y29vcmQpLAorICAgICAgICAgICAgICAg
ICd5JzogaW50KHljb29yZCl9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBtb3Zl
KHNlbGYsIHhjb29yZCwgeWNvb3JkKToKKyAgICAgICAgIiIiCisgICAgICAgIE1vdmUgaGVsZCB0
YXAgdG8gc3BlY2lmaWVkIGxvY2F0aW9uLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB4
Y29vcmQ6IFggQ29vcmRpbmF0ZSB0byBtb3ZlLgorICAgICAgICAgLSB5Y29vcmQ6IFkgQ29vcmRp
bmF0ZSB0byBtb3ZlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQo
bGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1hbmQuVE9VQ0hf
TU9WRSwgeworICAgICAgICAgICAgICAgICd4JzogaW50KHhjb29yZCksCisgICAgICAgICAgICAg
ICAgJ3knOiBpbnQoeWNvb3JkKX0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHJl
bGVhc2Uoc2VsZiwgeGNvb3JkLCB5Y29vcmQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVsZWFz
ZSBwcmV2aW91c2x5IGlzc3VlZCB0YXAgJ2FuZCBob2xkJyBjb21tYW5kIGF0IHNwZWNpZmllZCBs
b2NhdGlvbi4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0geGNvb3JkOiBYIENvb3JkaW5h
dGUgdG8gcmVsZWFzZS4KKyAgICAgICAgIC0geWNvb3JkOiBZIENvb3JkaW5hdGUgdG8gcmVsZWFz
ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2Vs
Zi5fZHJpdmVyLmV4ZWN1dGUoCisgICAgICAgICAgICBDb21tYW5kLlRPVUNIX1VQLCB7CisgICAg
ICAgICAgICAgICAgJ3gnOiBpbnQoeGNvb3JkKSwKKyAgICAgICAgICAgICAgICAneSc6IGludCh5
Y29vcmQpfSkpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgc2Nyb2xsKHNlbGYsIHhv
ZmZzZXQsIHlvZmZzZXQpOgorICAgICAgICAiIiIKKyAgICAgICAgVG91Y2ggYW5kIHNjcm9sbCwg
bW92aW5nIGJ5IHhvZmZzZXQgYW5kIHlvZmZzZXQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAg
ICAtIHhvZmZzZXQ6IFggb2Zmc2V0IHRvIHNjcm9sbCB0by4KKyAgICAgICAgIC0geW9mZnNldDog
WSBvZmZzZXQgdG8gc2Nyb2xsIHRvLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9u
cy5hcHBlbmQobGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1h
bmQuVE9VQ0hfU0NST0xMLCB7CisgICAgICAgICAgICAgICAgJ3hvZmZzZXQnOiBpbnQoeG9mZnNl
dCksCisgICAgICAgICAgICAgICAgJ3lvZmZzZXQnOiBpbnQoeW9mZnNldCl9KSkKKyAgICAgICAg
cmV0dXJuIHNlbGYKKworICAgIGRlZiBzY3JvbGxfZnJvbV9lbGVtZW50KHNlbGYsIG9uX2VsZW1l
bnQsIHhvZmZzZXQsIHlvZmZzZXQpOgorICAgICAgICAiIiIKKyAgICAgICAgVG91Y2ggYW5kIHNj
cm9sbCBzdGFydGluZyBhdCBvbl9lbGVtZW50LCBtb3ZpbmcgYnkgeG9mZnNldCBhbmQgeW9mZnNl
dC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gb25fZWxlbWVudDogVGhlIGVsZW1lbnQg
d2hlcmUgc2Nyb2xsIHN0YXJ0cy4KKyAgICAgICAgIC0geG9mZnNldDogWCBvZmZzZXQgdG8gc2Ny
b2xsIHRvLgorICAgICAgICAgLSB5b2Zmc2V0OiBZIG9mZnNldCB0byBzY3JvbGwgdG8uCisgICAg
ICAgICIiIgorICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1iZGE6IHNlbGYuX2RyaXZl
ci5leGVjdXRlKAorICAgICAgICAgICAgQ29tbWFuZC5UT1VDSF9TQ1JPTEwsIHsKKyAgICAgICAg
ICAgICAgICAnZWxlbWVudCc6IG9uX2VsZW1lbnQuaWQsCisgICAgICAgICAgICAgICAgJ3hvZmZz
ZXQnOiBpbnQoeG9mZnNldCksCisgICAgICAgICAgICAgICAgJ3lvZmZzZXQnOiBpbnQoeW9mZnNl
dCl9KSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBsb25nX3ByZXNzKHNlbGYsIG9u
X2VsZW1lbnQpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9uZyBwcmVzcyBvbiBhbiBlbGVtZW50
LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBvbl9lbGVtZW50OiBUaGUgZWxlbWVudCB0
byBsb25nIHByZXNzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQo
bGFtYmRhOiBzZWxmLl9kcml2ZXIuZXhlY3V0ZSgKKyAgICAgICAgICAgIENvbW1hbmQuTE9OR19Q
UkVTUywgeydlbGVtZW50Jzogb25fZWxlbWVudC5pZH0pKQorICAgICAgICByZXR1cm4gc2VsZgor
CisgICAgZGVmIGZsaWNrKHNlbGYsIHhzcGVlZCwgeXNwZWVkKToKKyAgICAgICAgIiIiCisgICAg
ICAgIEZsaWNrcywgc3RhcnRpbmcgYW55d2hlcmUgb24gdGhlIHNjcmVlbi4KKworICAgICAgICA6
QXJnczoKKyAgICAgICAgIC0geHNwZWVkOiBUaGUgWCBzcGVlZCBpbiBwaXhlbHMgcGVyIHNlY29u
ZC4KKyAgICAgICAgIC0geXNwZWVkOiBUaGUgWSBzcGVlZCBpbiBwaXhlbHMgcGVyIHNlY29uZC4K
KyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGxhbWJkYTogc2VsZi5f
ZHJpdmVyLmV4ZWN1dGUoCisgICAgICAgICAgICBDb21tYW5kLkZMSUNLLCB7CisgICAgICAgICAg
ICAgICAgJ3hzcGVlZCc6IGludCh4c3BlZWQpLAorICAgICAgICAgICAgICAgICd5c3BlZWQnOiBp
bnQoeXNwZWVkKX0pKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGZsaWNrX2VsZW1l
bnQoc2VsZiwgb25fZWxlbWVudCwgeG9mZnNldCwgeW9mZnNldCwgc3BlZWQpOgorICAgICAgICAi
IiIKKyAgICAgICAgRmxpY2sgc3RhcnRpbmcgYXQgb25fZWxlbWVudCwgYW5kIG1vdmluZyBieSB0
aGUgeG9mZnNldCBhbmQgeW9mZnNldAorICAgICAgICB3aXRoIHNwZWNpZmllZCBzcGVlZC4KKwor
ICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gb25fZWxlbWVudDogRmxpY2sgd2lsbCBzdGFydCBh
dCBjZW50ZXIgb2YgZWxlbWVudC4KKyAgICAgICAgIC0geG9mZnNldDogWCBvZmZzZXQgdG8gZmxp
Y2sgdG8uCisgICAgICAgICAtIHlvZmZzZXQ6IFkgb2Zmc2V0IHRvIGZsaWNrIHRvLgorICAgICAg
ICAgLSBzcGVlZDogUGl4ZWxzIHBlciBzZWNvbmQgdG8gZmxpY2suCisgICAgICAgICIiIgorICAg
ICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChsYW1iZGE6IHNlbGYuX2RyaXZlci5leGVjdXRlKAor
ICAgICAgICAgICAgQ29tbWFuZC5GTElDSywgeworICAgICAgICAgICAgICAgICdlbGVtZW50Jzog
b25fZWxlbWVudC5pZCwKKyAgICAgICAgICAgICAgICAneG9mZnNldCc6IGludCh4b2Zmc2V0KSwK
KyAgICAgICAgICAgICAgICAneW9mZnNldCc6IGludCh5b2Zmc2V0KSwKKyAgICAgICAgICAgICAg
ICAnc3BlZWQnOiBpbnQoc3BlZWQpfSkpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAjIENv
bnRleHQgbWFuYWdlciBzbyBUb3VjaEFjdGlvbnMgY2FuIGJlIHVzZWQgaW4gYSAnd2l0aCAuLiBh
cycgc3RhdGVtZW50cy4KKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZiAgIyBSZXR1cm4gY3JlYXRlZCBpbnN0YW5jZSBvZiBzZWxmLgorCisgICAgZGVmIF9fZXhp
dF9fKHNlbGYsIF90eXBlLCBfdmFsdWUsIF90cmFjZWJhY2spOgorICAgICAgICBwYXNzICAjIERv
IG5vdGhpbmcsIGRvZXMgbm90IHJlcXVpcmUgYWRkaXRpb25hbCBjbGVhbnVwLgpkaWZmIC0tZ2l0
IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi91dGlscy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjNiNDQzZGEyYTVhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91dGls
cy5weQpAQCAtMCwwICsxLDE1MiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIgorVGhlIFV0aWxzIG1ldGhvZHMuCisi
IiIKK2ltcG9ydCBzb2NrZXQKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzIGlt
cG9ydCBLZXlzCisKK3RyeToKKyAgICBiYXNlc3RyaW5nCitleGNlcHQgTmFtZUVycm9yOgorICAg
ICMgUHl0aG9uIDMKKyAgICBiYXNlc3RyaW5nID0gc3RyCisKKworZGVmIGZyZWVfcG9ydCgpOgor
ICAgICIiIgorICAgIERldGVybWluZXMgYSBmcmVlIHBvcnQgdXNpbmcgc29ja2V0cy4KKyAgICAi
IiIKKyAgICBmcmVlX3NvY2tldCA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tl
dC5TT0NLX1NUUkVBTSkKKyAgICBmcmVlX3NvY2tldC5iaW5kKCgnMC4wLjAuMCcsIDApKQorICAg
IGZyZWVfc29ja2V0Lmxpc3Rlbig1KQorICAgIHBvcnQgPSBmcmVlX3NvY2tldC5nZXRzb2NrbmFt
ZSgpWzFdCisgICAgZnJlZV9zb2NrZXQuY2xvc2UoKQorICAgIHJldHVybiBwb3J0CisKKworZGVm
IGZpbmRfY29ubmVjdGFibGVfaXAoaG9zdCwgcG9ydD1Ob25lKToKKyAgICAiIiJSZXNvbHZlIGEg
aG9zdG5hbWUgdG8gYW4gSVAsIHByZWZlcnJpbmcgSVB2NCBhZGRyZXNzZXMuCisKKyAgICBXZSBw
cmVmZXIgSVB2NCBzbyB0aGF0IHdlIGRvbid0IGNoYW5nZSBiZWhhdmlvciBmcm9tIHByZXZpb3Vz
IElQdjQtb25seQorICAgIGltcGxlbWVudGF0aW9ucywgYW5kIGJlY2F1c2Ugc29tZSBkcml2ZXJz
IChlLmcuLCBGaXJlZm94RHJpdmVyKSBkbyBub3QKKyAgICBzdXBwb3J0IElQdjYgY29ubmVjdGlv
bnMuCisKKyAgICBJZiB0aGUgb3B0aW9uYWwgcG9ydCBudW1iZXIgaXMgcHJvdmlkZWQsIG9ubHkg
SVBzIHRoYXQgbGlzdGVuIG9uIHRoZSBnaXZlbgorICAgIHBvcnQgYXJlIGNvbnNpZGVyZWQuCisK
KyAgICA6QXJnczoKKyAgICAgICAgLSBob3N0IC0gQSBob3N0bmFtZS4KKyAgICAgICAgLSBwb3J0
IC0gT3B0aW9uYWwgcG9ydCBudW1iZXIuCisKKyAgICA6UmV0dXJuczoKKyAgICAgICAgQSBzaW5n
bGUgSVAgYWRkcmVzcywgYXMgYSBzdHJpbmcuIElmIGFueSBJUHY0IGFkZHJlc3MgaXMgZm91bmQs
IG9uZSBpcworICAgICAgICByZXR1cm5lZC4gT3RoZXJ3aXNlLCBpZiBhbnkgSVB2NiBhZGRyZXNz
IGlzIGZvdW5kLCBvbmUgaXMgcmV0dXJuZWQuIElmCisgICAgICAgIG5laXRoZXIsIHRoZW4gTm9u
ZSBpcyByZXR1cm5lZC4KKworICAgICIiIgorICAgIHRyeToKKyAgICAgICAgYWRkcmluZm9zID0g
c29ja2V0LmdldGFkZHJpbmZvKGhvc3QsIE5vbmUpCisgICAgZXhjZXB0IHNvY2tldC5nYWllcnJv
cjoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGlwID0gTm9uZQorICAgIGZvciBmYW1pbHks
IF8sIF8sIF8sIHNvY2thZGRyIGluIGFkZHJpbmZvczoKKyAgICAgICAgY29ubmVjdGFibGUgPSBU
cnVlCisgICAgICAgIGlmIHBvcnQ6CisgICAgICAgICAgICBjb25uZWN0YWJsZSA9IGlzX2Nvbm5l
Y3RhYmxlKHBvcnQsIHNvY2thZGRyWzBdKQorCisgICAgICAgIGlmIGNvbm5lY3RhYmxlIGFuZCBm
YW1pbHkgPT0gc29ja2V0LkFGX0lORVQ6CisgICAgICAgICAgICByZXR1cm4gc29ja2FkZHJbMF0K
KyAgICAgICAgaWYgY29ubmVjdGFibGUgYW5kIG5vdCBpcCBhbmQgZmFtaWx5ID09IHNvY2tldC5B
Rl9JTkVUNjoKKyAgICAgICAgICAgIGlwID0gc29ja2FkZHJbMF0KKyAgICByZXR1cm4gaXAKKwor
CitkZWYgam9pbl9ob3N0X3BvcnQoaG9zdCwgcG9ydCk6CisgICAgIiIiSm9pbnMgYSBob3N0bmFt
ZSBhbmQgcG9ydCB0b2dldGhlci4KKworICAgIFRoaXMgaXMgYSBtaW5pbWFsIGltcGxlbWVudGF0
aW9uIGludGVuZGVkIHRvIGNvcGUgd2l0aCBJUHY2IGxpdGVyYWxzLiBGb3IKKyAgICBleGFtcGxl
LCBfam9pbl9ob3N0X3BvcnQoJzo6MScsIDgwKSA9PSAnWzo6MV06ODAnLgorCisgICAgOkFyZ3M6
CisgICAgICAgIC0gaG9zdCAtIEEgaG9zdG5hbWUuCisgICAgICAgIC0gcG9ydCAtIEFuIGludGVn
ZXIgcG9ydC4KKworICAgICIiIgorICAgIGlmICc6JyBpbiBob3N0IGFuZCBub3QgaG9zdC5zdGFy
dHN3aXRoKCdbJyk6CisgICAgICAgIHJldHVybiAnWyVzXTolZCcgJSAoaG9zdCwgcG9ydCkKKyAg
ICByZXR1cm4gJyVzOiVkJyAlIChob3N0LCBwb3J0KQorCisKK2RlZiBpc19jb25uZWN0YWJsZShw
b3J0LCBob3N0PSJsb2NhbGhvc3QiKToKKyAgICAiIiIKKyAgICBUcmllcyB0byBjb25uZWN0IHRv
IHRoZSBzZXJ2ZXIgYXQgcG9ydCB0byBzZWUgaWYgaXQgaXMgcnVubmluZy4KKworICAgIDpBcmdz
OgorICAgICAtIHBvcnQgLSBUaGUgcG9ydCB0byBjb25uZWN0LgorICAgICIiIgorICAgIHNvY2tl
dF8gPSBOb25lCisgICAgdHJ5OgorICAgICAgICBzb2NrZXRfID0gc29ja2V0LmNyZWF0ZV9jb25u
ZWN0aW9uKChob3N0LCBwb3J0KSwgMSkKKyAgICAgICAgcmVzdWx0ID0gVHJ1ZQorICAgIGV4Y2Vw
dCBzb2NrZXQuZXJyb3I6CisgICAgICAgIHJlc3VsdCA9IEZhbHNlCisgICAgZmluYWxseToKKyAg
ICAgICAgaWYgc29ja2V0XzoKKyAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoKQorICAgIHJldHVy
biByZXN1bHQKKworCitkZWYgaXNfdXJsX2Nvbm5lY3RhYmxlKHBvcnQpOgorICAgICIiIgorICAg
IFRyaWVzIHRvIGNvbm5lY3QgdG8gdGhlIEhUVFAgc2VydmVyIGF0IC9zdGF0dXMgcGF0aAorICAg
IGFuZCBzcGVjaWZpZWQgcG9ydCB0byBzZWUgaWYgaXQgcmVzcG9uZHMgc3VjY2Vzc2Z1bGx5Lgor
CisgICAgOkFyZ3M6CisgICAgIC0gcG9ydCAtIFRoZSBwb3J0IHRvIGNvbm5lY3QuCisgICAgIiIi
CisgICAgdHJ5OgorICAgICAgICBmcm9tIHVybGxpYiBpbXBvcnQgcmVxdWVzdCBhcyB1cmxfcmVx
dWVzdAorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgaW1wb3J0IHVybGxpYjIgYXMg
dXJsX3JlcXVlc3QKKworICAgIHRyeToKKyAgICAgICAgcmVzID0gdXJsX3JlcXVlc3QudXJsb3Bl
bigiaHR0cDovLzEyNy4wLjAuMTolcy9zdGF0dXMiICUgcG9ydCkKKyAgICAgICAgaWYgcmVzLmdl
dGNvZGUoKSA9PSAyMDA6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg
cmV0dXJuIEZhbHNlCisKKworZGVmIGtleXNfdG9fdHlwaW5nKHZhbHVlKToKKyAgICAiIiJQcm9j
ZXNzZXMgdGhlIHZhbHVlcyB0aGF0IHdpbGwgYmUgdHlwZWQgaW4gdGhlIGVsZW1lbnQuIiIiCisg
ICAgdHlwaW5nID0gW10KKyAgICBmb3IgdmFsIGluIHZhbHVlOgorICAgICAgICBpZiBpc2luc3Rh
bmNlKHZhbCwgS2V5cyk6CisgICAgICAgICAgICB0eXBpbmcuYXBwZW5kKHZhbCkKKyAgICAgICAg
ZWxpZiBpc2luc3RhbmNlKHZhbCwgaW50KToKKyAgICAgICAgICAgIHZhbCA9IHN0cih2YWwpCisg
ICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4odmFsKSk6CisgICAgICAgICAgICAgICAgdHlw
aW5nLmFwcGVuZCh2YWxbaV0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmb3IgaSBpbiBy
YW5nZShsZW4odmFsKSk6CisgICAgICAgICAgICAgICAgdHlwaW5nLmFwcGVuZCh2YWxbaV0pCisg
ICAgcmV0dXJuIHR5cGluZwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9fX2luaXRfXy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvX19p
bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4
NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBA
CisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVu
ZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0
aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZD
IGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu
IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhP
VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3Vh
Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGlj
ZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Nl
bGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvY29tbWFuZC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvY29tbWFuZC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTJmN2VkYmRiYzQKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvcmVtb3RlL2NvbW1hbmQucHkKQEAgLTAsMCArMSwxNzQgQEAKKyMgTGljZW5zZWQg
dG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9y
IG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmls
ZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlv
bgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhp
cyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0
aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQg
dG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug
aXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVT
IE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2Ns
YXNzIENvbW1hbmQob2JqZWN0KToKKyAgICAiIiIKKyAgICBEZWZpbmVzIGNvbnN0YW50cyBmb3Ig
dGhlIHN0YW5kYXJkIFdlYkRyaXZlciBjb21tYW5kcy4KKworICAgIFdoaWxlIHRoZXNlIGNvbnN0
YW50cyBoYXZlIG5vIG1lYW5pbmcgaW4gYW5kIG9mIHRoZW1zZWx2ZXMsIHRoZXkgYXJlCisgICAg
dXNlZCB0byBtYXJzaGFsIGNvbW1hbmRzIHRocm91Z2ggYSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50
cyBXZWJEcml2ZXIncworICAgIHJlbW90ZSB3aXJlIHByb3RvY29sOgorCisgICAgICAgIGh0dHBz
Oi8vZ2l0aHViLmNvbS9TZWxlbml1bUhRL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbAor
CisgICAgIiIiCisKKyAgICAjIEtlZXAgaW4gc3luYyB3aXRoIG9yZy5vcGVucWEuc2VsZW5pdW0u
cmVtb3RlLkRyaXZlckNvbW1hbmQKKworICAgIFNUQVRVUyA9ICJzdGF0dXMiCisgICAgTkVXX1NF
U1NJT04gPSAibmV3U2Vzc2lvbiIKKyAgICBHRVRfQUxMX1NFU1NJT05TID0gImdldEFsbFNlc3Np
b25zIgorICAgIERFTEVURV9TRVNTSU9OID0gImRlbGV0ZVNlc3Npb24iCisgICAgQ0xPU0UgPSAi
Y2xvc2UiCisgICAgUVVJVCA9ICJxdWl0IgorICAgIEdFVCA9ICJnZXQiCisgICAgR09fQkFDSyA9
ICJnb0JhY2siCisgICAgR09fRk9SV0FSRCA9ICJnb0ZvcndhcmQiCisgICAgUkVGUkVTSCA9ICJy
ZWZyZXNoIgorICAgIEFERF9DT09LSUUgPSAiYWRkQ29va2llIgorICAgIEdFVF9DT09LSUUgPSAi
Z2V0Q29va2llIgorICAgIEdFVF9BTExfQ09PS0lFUyA9ICJnZXRDb29raWVzIgorICAgIERFTEVU
RV9DT09LSUUgPSAiZGVsZXRlQ29va2llIgorICAgIERFTEVURV9BTExfQ09PS0lFUyA9ICJkZWxl
dGVBbGxDb29raWVzIgorICAgIEZJTkRfRUxFTUVOVCA9ICJmaW5kRWxlbWVudCIKKyAgICBGSU5E
X0VMRU1FTlRTID0gImZpbmRFbGVtZW50cyIKKyAgICBGSU5EX0NISUxEX0VMRU1FTlQgPSAiZmlu
ZENoaWxkRWxlbWVudCIKKyAgICBGSU5EX0NISUxEX0VMRU1FTlRTID0gImZpbmRDaGlsZEVsZW1l
bnRzIgorICAgIENMRUFSX0VMRU1FTlQgPSAiY2xlYXJFbGVtZW50IgorICAgIENMSUNLX0VMRU1F
TlQgPSAiY2xpY2tFbGVtZW50IgorICAgIFNFTkRfS0VZU19UT19FTEVNRU5UID0gInNlbmRLZXlz
VG9FbGVtZW50IgorICAgIFNFTkRfS0VZU19UT19BQ1RJVkVfRUxFTUVOVCA9ICJzZW5kS2V5c1Rv
QWN0aXZlRWxlbWVudCIKKyAgICBTVUJNSVRfRUxFTUVOVCA9ICJzdWJtaXRFbGVtZW50IgorICAg
IFVQTE9BRF9GSUxFID0gInVwbG9hZEZpbGUiCisgICAgR0VUX0NVUlJFTlRfV0lORE9XX0hBTkRM
RSA9ICJnZXRDdXJyZW50V2luZG93SGFuZGxlIgorICAgIFczQ19HRVRfQ1VSUkVOVF9XSU5ET1df
SEFORExFID0gInczY0dldEN1cnJlbnRXaW5kb3dIYW5kbGUiCisgICAgR0VUX1dJTkRPV19IQU5E
TEVTID0gImdldFdpbmRvd0hhbmRsZXMiCisgICAgVzNDX0dFVF9XSU5ET1dfSEFORExFUyA9ICJ3
M2NHZXRXaW5kb3dIYW5kbGVzIgorICAgIEdFVF9XSU5ET1dfU0laRSA9ICJnZXRXaW5kb3dTaXpl
IgorICAgIFczQ19HRVRfV0lORE9XX1NJWkUgPSAidzNjR2V0V2luZG93U2l6ZSIKKyAgICBXM0Nf
R0VUX1dJTkRPV19QT1NJVElPTiA9ICJ3M2NHZXRXaW5kb3dQb3NpdGlvbiIKKyAgICBHRVRfV0lO
RE9XX1BPU0lUSU9OID0gImdldFdpbmRvd1Bvc2l0aW9uIgorICAgIFNFVF9XSU5ET1dfU0laRSA9
ICJzZXRXaW5kb3dTaXplIgorICAgIFczQ19TRVRfV0lORE9XX1NJWkUgPSAidzNjU2V0V2luZG93
U2l6ZSIKKyAgICBTRVRfV0lORE9XX1JFQ1QgPSAic2V0V2luZG93UmVjdCIKKyAgICBHRVRfV0lO
RE9XX1JFQ1QgPSAiZ2V0V2luZG93UmVjdCIKKyAgICBTRVRfV0lORE9XX1BPU0lUSU9OID0gInNl
dFdpbmRvd1Bvc2l0aW9uIgorICAgIFczQ19TRVRfV0lORE9XX1BPU0lUSU9OID0gInczY1NldFdp
bmRvd1Bvc2l0aW9uIgorICAgIFNXSVRDSF9UT19XSU5ET1cgPSAic3dpdGNoVG9XaW5kb3ciCisg
ICAgU1dJVENIX1RPX0ZSQU1FID0gInN3aXRjaFRvRnJhbWUiCisgICAgU1dJVENIX1RPX1BBUkVO
VF9GUkFNRSA9ICJzd2l0Y2hUb1BhcmVudEZyYW1lIgorICAgIEdFVF9BQ1RJVkVfRUxFTUVOVCA9
ICJnZXRBY3RpdmVFbGVtZW50IgorICAgIFczQ19HRVRfQUNUSVZFX0VMRU1FTlQgPSAidzNjR2V0
QWN0aXZlRWxlbWVudCIKKyAgICBHRVRfQ1VSUkVOVF9VUkwgPSAiZ2V0Q3VycmVudFVybCIKKyAg
ICBHRVRfUEFHRV9TT1VSQ0UgPSAiZ2V0UGFnZVNvdXJjZSIKKyAgICBHRVRfVElUTEUgPSAiZ2V0
VGl0bGUiCisgICAgRVhFQ1VURV9TQ1JJUFQgPSAiZXhlY3V0ZVNjcmlwdCIKKyAgICBXM0NfRVhF
Q1VURV9TQ1JJUFQgPSAidzNjRXhlY3V0ZVNjcmlwdCIKKyAgICBXM0NfRVhFQ1VURV9TQ1JJUFRf
QVNZTkMgPSAidzNjRXhlY3V0ZVNjcmlwdEFzeW5jIgorICAgIEdFVF9FTEVNRU5UX1RFWFQgPSAi
Z2V0RWxlbWVudFRleHQiCisgICAgR0VUX0VMRU1FTlRfVkFMVUUgPSAiZ2V0RWxlbWVudFZhbHVl
IgorICAgIEdFVF9FTEVNRU5UX1RBR19OQU1FID0gImdldEVsZW1lbnRUYWdOYW1lIgorICAgIFNF
VF9FTEVNRU5UX1NFTEVDVEVEID0gInNldEVsZW1lbnRTZWxlY3RlZCIKKyAgICBJU19FTEVNRU5U
X1NFTEVDVEVEID0gImlzRWxlbWVudFNlbGVjdGVkIgorICAgIElTX0VMRU1FTlRfRU5BQkxFRCA9
ICJpc0VsZW1lbnRFbmFibGVkIgorICAgIElTX0VMRU1FTlRfRElTUExBWUVEID0gImlzRWxlbWVu
dERpc3BsYXllZCIKKyAgICBHRVRfRUxFTUVOVF9MT0NBVElPTiA9ICJnZXRFbGVtZW50TG9jYXRp
b24iCisgICAgR0VUX0VMRU1FTlRfTE9DQVRJT05fT05DRV9TQ1JPTExFRF9JTlRPX1ZJRVcgPSAi
Z2V0RWxlbWVudExvY2F0aW9uT25jZVNjcm9sbGVkSW50b1ZpZXciCisgICAgR0VUX0VMRU1FTlRf
U0laRSA9ICJnZXRFbGVtZW50U2l6ZSIKKyAgICBHRVRfRUxFTUVOVF9SRUNUID0gImdldEVsZW1l
bnRSZWN0IgorICAgIEdFVF9FTEVNRU5UX0FUVFJJQlVURSA9ICJnZXRFbGVtZW50QXR0cmlidXRl
IgorICAgIEdFVF9FTEVNRU5UX1BST1BFUlRZID0gImdldEVsZW1lbnRQcm9wZXJ0eSIKKyAgICBH
RVRfRUxFTUVOVF9WQUxVRV9PRl9DU1NfUFJPUEVSVFkgPSAiZ2V0RWxlbWVudFZhbHVlT2ZDc3NQ
cm9wZXJ0eSIKKyAgICBFTEVNRU5UX0VRVUFMUyA9ICJlbGVtZW50RXF1YWxzIgorICAgIFNDUkVF
TlNIT1QgPSAic2NyZWVuc2hvdCIKKyAgICBFTEVNRU5UX1NDUkVFTlNIT1QgPSAiZWxlbWVudFNj
cmVlbnNob3QiCisgICAgSU1QTElDSVRfV0FJVCA9ICJpbXBsaWNpdGx5V2FpdCIKKyAgICBFWEVD
VVRFX0FTWU5DX1NDUklQVCA9ICJleGVjdXRlQXN5bmNTY3JpcHQiCisgICAgU0VUX1NDUklQVF9U
SU1FT1VUID0gInNldFNjcmlwdFRpbWVvdXQiCisgICAgU0VUX1RJTUVPVVRTID0gInNldFRpbWVv
dXRzIgorICAgIE1BWElNSVpFX1dJTkRPVyA9ICJ3aW5kb3dNYXhpbWl6ZSIKKyAgICBXM0NfTUFY
SU1JWkVfV0lORE9XID0gInczY01heGltaXplV2luZG93IgorICAgIEdFVF9MT0cgPSAiZ2V0TG9n
IgorICAgIEdFVF9BVkFJTEFCTEVfTE9HX1RZUEVTID0gImdldEF2YWlsYWJsZUxvZ1R5cGVzIgor
ICAgIEZVTExTQ1JFRU5fV0lORE9XID0gImZ1bGxzY3JlZW5XaW5kb3ciCisgICAgTUlOSU1JWkVf
V0lORE9XID0gIm1pbmltaXplV2luZG93IgorCisgICAgIyBBbGVydHMKKyAgICBESVNNSVNTX0FM
RVJUID0gImRpc21pc3NBbGVydCIKKyAgICBXM0NfRElTTUlTU19BTEVSVCA9ICJ3M2NEaXNtaXNz
QWxlcnQiCisgICAgQUNDRVBUX0FMRVJUID0gImFjY2VwdEFsZXJ0IgorICAgIFczQ19BQ0NFUFRf
QUxFUlQgPSAidzNjQWNjZXB0QWxlcnQiCisgICAgU0VUX0FMRVJUX1ZBTFVFID0gInNldEFsZXJ0
VmFsdWUiCisgICAgVzNDX1NFVF9BTEVSVF9WQUxVRSA9ICJ3M2NTZXRBbGVydFZhbHVlIgorICAg
IEdFVF9BTEVSVF9URVhUID0gImdldEFsZXJ0VGV4dCIKKyAgICBXM0NfR0VUX0FMRVJUX1RFWFQg
PSAidzNjR2V0QWxlcnRUZXh0IgorICAgIFNFVF9BTEVSVF9DUkVERU5USUFMUyA9ICJzZXRBbGVy
dENyZWRlbnRpYWxzIgorCisgICAgIyBBZHZhbmNlZCB1c2VyIGludGVyYWN0aW9ucworICAgIFcz
Q19BQ1RJT05TID0gImFjdGlvbnMiCisgICAgVzNDX0NMRUFSX0FDVElPTlMgPSAiY2xlYXJBY3Rp
b25TdGF0ZSIKKyAgICBDTElDSyA9ICJtb3VzZUNsaWNrIgorICAgIERPVUJMRV9DTElDSyA9ICJt
b3VzZURvdWJsZUNsaWNrIgorICAgIE1PVVNFX0RPV04gPSAibW91c2VCdXR0b25Eb3duIgorICAg
IE1PVVNFX1VQID0gIm1vdXNlQnV0dG9uVXAiCisgICAgTU9WRV9UTyA9ICJtb3VzZU1vdmVUbyIK
KworICAgICMgU2NyZWVuIE9yaWVudGF0aW9uCisgICAgU0VUX1NDUkVFTl9PUklFTlRBVElPTiA9
ICJzZXRTY3JlZW5PcmllbnRhdGlvbiIKKyAgICBHRVRfU0NSRUVOX09SSUVOVEFUSU9OID0gImdl
dFNjcmVlbk9yaWVudGF0aW9uIgorCisgICAgIyBUb3VjaCBBY3Rpb25zCisgICAgU0lOR0xFX1RB
UCA9ICJ0b3VjaFNpbmdsZVRhcCIKKyAgICBUT1VDSF9ET1dOID0gInRvdWNoRG93biIKKyAgICBU
T1VDSF9VUCA9ICJ0b3VjaFVwIgorICAgIFRPVUNIX01PVkUgPSAidG91Y2hNb3ZlIgorICAgIFRP
VUNIX1NDUk9MTCA9ICJ0b3VjaFNjcm9sbCIKKyAgICBET1VCTEVfVEFQID0gInRvdWNoRG91Ymxl
VGFwIgorICAgIExPTkdfUFJFU1MgPSAidG91Y2hMb25nUHJlc3MiCisgICAgRkxJQ0sgPSAidG91
Y2hGbGljayIKKworICAgICMgSFRNTCA1CisgICAgRVhFQ1VURV9TUUwgPSAiZXhlY3V0ZVNxbCIK
KworICAgIEdFVF9MT0NBVElPTiA9ICJnZXRMb2NhdGlvbiIKKyAgICBTRVRfTE9DQVRJT04gPSAi
c2V0TG9jYXRpb24iCisKKyAgICBHRVRfQVBQX0NBQ0hFID0gImdldEFwcENhY2hlIgorICAgIEdF
VF9BUFBfQ0FDSEVfU1RBVFVTID0gImdldEFwcENhY2hlU3RhdHVzIgorICAgIENMRUFSX0FQUF9D
QUNIRSA9ICJjbGVhckFwcENhY2hlIgorCisgICAgR0VUX0xPQ0FMX1NUT1JBR0VfSVRFTSA9ICJn
ZXRMb2NhbFN0b3JhZ2VJdGVtIgorICAgIFJFTU9WRV9MT0NBTF9TVE9SQUdFX0lURU0gPSAicmVt
b3ZlTG9jYWxTdG9yYWdlSXRlbSIKKyAgICBHRVRfTE9DQUxfU1RPUkFHRV9LRVlTID0gImdldExv
Y2FsU3RvcmFnZUtleXMiCisgICAgU0VUX0xPQ0FMX1NUT1JBR0VfSVRFTSA9ICJzZXRMb2NhbFN0
b3JhZ2VJdGVtIgorICAgIENMRUFSX0xPQ0FMX1NUT1JBR0UgPSAiY2xlYXJMb2NhbFN0b3JhZ2Ui
CisgICAgR0VUX0xPQ0FMX1NUT1JBR0VfU0laRSA9ICJnZXRMb2NhbFN0b3JhZ2VTaXplIgorCisg
ICAgR0VUX1NFU1NJT05fU1RPUkFHRV9JVEVNID0gImdldFNlc3Npb25TdG9yYWdlSXRlbSIKKyAg
ICBSRU1PVkVfU0VTU0lPTl9TVE9SQUdFX0lURU0gPSAicmVtb3ZlU2Vzc2lvblN0b3JhZ2VJdGVt
IgorICAgIEdFVF9TRVNTSU9OX1NUT1JBR0VfS0VZUyA9ICJnZXRTZXNzaW9uU3RvcmFnZUtleXMi
CisgICAgU0VUX1NFU1NJT05fU1RPUkFHRV9JVEVNID0gInNldFNlc3Npb25TdG9yYWdlSXRlbSIK
KyAgICBDTEVBUl9TRVNTSU9OX1NUT1JBR0UgPSAiY2xlYXJTZXNzaW9uU3RvcmFnZSIKKyAgICBH
RVRfU0VTU0lPTl9TVE9SQUdFX1NJWkUgPSAiZ2V0U2Vzc2lvblN0b3JhZ2VTaXplIgorCisgICAg
IyBNb2JpbGUKKyAgICBHRVRfTkVUV09SS19DT05ORUNUSU9OID0gImdldE5ldHdvcmtDb25uZWN0
aW9uIgorICAgIFNFVF9ORVRXT1JLX0NPTk5FQ1RJT04gPSAic2V0TmV0d29ya0Nvbm5lY3Rpb24i
CisgICAgQ1VSUkVOVF9DT05URVhUX0hBTkRMRSA9ICJnZXRDdXJyZW50Q29udGV4dEhhbmRsZSIK
KyAgICBDT05URVhUX0hBTkRMRVMgPSAiZ2V0Q29udGV4dEhhbmRsZXMiCisgICAgU1dJVENIX1RP
X0NPTlRFWFQgPSAic3dpdGNoVG9Db250ZXh0IgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9lcnJvcmhhbmRs
ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvcmVtb3RlL2Vycm9yaGFuZGxlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZjAwOGU3YWUzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2Vycm9yaGFu
ZGxlci5weQpAQCAtMCwwICsxLDI0MCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJl
ZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBs
aWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdp
dGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5
cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVu
ZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5
b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhl
IExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMg
ICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNz
IHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBz
b2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBh
bgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBB
TlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBm
b3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGlt
aXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4
Y2VwdGlvbnMgaW1wb3J0IChFbGVtZW50Q2xpY2tJbnRlcmNlcHRlZEV4Y2VwdGlvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbGVtZW50Tm90SW50ZXJhY3RhYmxl
RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1l
bnROb3RTZWxlY3RhYmxlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnNlY3VyZUNlcnRpZmljYXRlRXhjZXB0
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludmFsaWRDb29y
ZGluYXRlc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEludmFsaWRTZXNzaW9uSWRFeGNlcHRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltZU5vdEF2YWlsYWJsZUV4Y2Vw
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWVBY3RpdmF0
aW9uRmFpbGVkRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJbnZhbGlkQ29va2llRG9tYWluRXhjZXB0aW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEphdmFzY3JpcHRFeGNlcHRpb24sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92ZVRhcmdldE91dE9mQm91bmRzRXhj
ZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vU3VjaENv
b2tpZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
b1N1Y2hFbGVtZW50RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5vU3VjaEZyYW1lRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOb0FsZXJ0UHJlc2VudEV4Y2VwdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JlZW5zaG90RXhjZXB0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWxlRWxlbWVu
dFJlZmVyZW5jZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBUaW1lb3V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuYWJsZVRvU2V0Q29va2llRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVuZXhwZWN0ZWRBbGVydFByZXNlbnRFeGNlcHRpb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5rbm93bk1ldGhvZEV4Y2VwdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJFeGNl
cHRpb24pCisKK3RyeToKKyAgICBiYXNlc3RyaW5nCitleGNlcHQgTmFtZUVycm9yOiAgIyBQeXRo
b24gMy54CisgICAgYmFzZXN0cmluZyA9IHN0cgorCisKK2NsYXNzIEVycm9yQ29kZShvYmplY3Qp
OgorICAgICIiIgorICAgIEVycm9yIGNvZGVzIGRlZmluZWQgaW4gdGhlIFdlYkRyaXZlciB3aXJl
IHByb3RvY29sLgorICAgICIiIgorICAgICMgS2VlcCBpbiBzeW5jIHdpdGggb3JnLm9wZW5xYS5z
ZWxlbml1bS5yZW1vdGUuRXJyb3JDb2RlcyBhbmQgZXJyb3Jjb2Rlcy5oCisgICAgU1VDQ0VTUyA9
IDAKKyAgICBOT19TVUNIX0VMRU1FTlQgPSBbNywgJ25vIHN1Y2ggZWxlbWVudCddCisgICAgTk9f
U1VDSF9GUkFNRSA9IFs4LCAnbm8gc3VjaCBmcmFtZSddCisgICAgVU5LTk9XTl9DT01NQU5EID0g
WzksICd1bmtub3duIGNvbW1hbmQnXQorICAgIFNUQUxFX0VMRU1FTlRfUkVGRVJFTkNFID0gWzEw
LCAnc3RhbGUgZWxlbWVudCByZWZlcmVuY2UnXQorICAgIEVMRU1FTlRfTk9UX1ZJU0lCTEUgPSBb
MTEsICdlbGVtZW50IG5vdCB2aXNpYmxlJ10KKyAgICBJTlZBTElEX0VMRU1FTlRfU1RBVEUgPSBb
MTIsICdpbnZhbGlkIGVsZW1lbnQgc3RhdGUnXQorICAgIFVOS05PV05fRVJST1IgPSBbMTMsICd1
bmtub3duIGVycm9yJ10KKyAgICBFTEVNRU5UX0lTX05PVF9TRUxFQ1RBQkxFID0gWzE1LCAnZWxl
bWVudCBub3Qgc2VsZWN0YWJsZSddCisgICAgSkFWQVNDUklQVF9FUlJPUiA9IFsxNywgJ2phdmFz
Y3JpcHQgZXJyb3InXQorICAgIFhQQVRIX0xPT0tVUF9FUlJPUiA9IFsxOSwgJ2ludmFsaWQgc2Vs
ZWN0b3InXQorICAgIFRJTUVPVVQgPSBbMjEsICd0aW1lb3V0J10KKyAgICBOT19TVUNIX1dJTkRP
VyA9IFsyMywgJ25vIHN1Y2ggd2luZG93J10KKyAgICBJTlZBTElEX0NPT0tJRV9ET01BSU4gPSBb
MjQsICdpbnZhbGlkIGNvb2tpZSBkb21haW4nXQorICAgIFVOQUJMRV9UT19TRVRfQ09PS0lFID0g
WzI1LCAndW5hYmxlIHRvIHNldCBjb29raWUnXQorICAgIFVORVhQRUNURURfQUxFUlRfT1BFTiA9
IFsyNiwgJ3VuZXhwZWN0ZWQgYWxlcnQgb3BlbiddCisgICAgTk9fQUxFUlRfT1BFTiA9IFsyNywg
J25vIHN1Y2ggYWxlcnQnXQorICAgIFNDUklQVF9USU1FT1VUID0gWzI4LCAnc2NyaXB0IHRpbWVv
dXQnXQorICAgIElOVkFMSURfRUxFTUVOVF9DT09SRElOQVRFUyA9IFsyOSwgJ2ludmFsaWQgZWxl
bWVudCBjb29yZGluYXRlcyddCisgICAgSU1FX05PVF9BVkFJTEFCTEUgPSBbMzAsICdpbWUgbm90
IGF2YWlsYWJsZSddCisgICAgSU1FX0VOR0lORV9BQ1RJVkFUSU9OX0ZBSUxFRCA9IFszMSwgJ2lt
ZSBlbmdpbmUgYWN0aXZhdGlvbiBmYWlsZWQnXQorICAgIElOVkFMSURfU0VMRUNUT1IgPSBbMzIs
ICdpbnZhbGlkIHNlbGVjdG9yJ10KKyAgICBTRVNTSU9OX05PVF9DUkVBVEVEID0gWzMzLCAnc2Vz
c2lvbiBub3QgY3JlYXRlZCddCisgICAgTU9WRV9UQVJHRVRfT1VUX09GX0JPVU5EUyA9IFszNCwg
J21vdmUgdGFyZ2V0IG91dCBvZiBib3VuZHMnXQorICAgIElOVkFMSURfWFBBVEhfU0VMRUNUT1Ig
PSBbNTEsICdpbnZhbGlkIHNlbGVjdG9yJ10KKyAgICBJTlZBTElEX1hQQVRIX1NFTEVDVE9SX1JF
VFVSTl9UWVBFUiA9IFs1MiwgJ2ludmFsaWQgc2VsZWN0b3InXQorCisgICAgRUxFTUVOVF9OT1Rf
SU5URVJBQ1RBQkxFID0gWzYwLCAnZWxlbWVudCBub3QgaW50ZXJhY3RhYmxlJ10KKyAgICBJTlNF
Q1VSRV9DRVJUSUZJQ0FURSA9IFsnaW5zZWN1cmUgY2VydGlmaWNhdGUnXQorICAgIElOVkFMSURf
QVJHVU1FTlQgPSBbNjEsICdpbnZhbGlkIGFyZ3VtZW50J10KKyAgICBJTlZBTElEX0NPT1JESU5B
VEVTID0gWydpbnZhbGlkIGNvb3JkaW5hdGVzJ10KKyAgICBJTlZBTElEX1NFU1NJT05fSUQgPSBb
J2ludmFsaWQgc2Vzc2lvbiBpZCddCisgICAgTk9fU1VDSF9DT09LSUUgPSBbNjIsICdubyBzdWNo
IGNvb2tpZSddCisgICAgVU5BQkxFX1RPX0NBUFRVUkVfU0NSRUVOID0gWzYzLCAndW5hYmxlIHRv
IGNhcHR1cmUgc2NyZWVuJ10KKyAgICBFTEVNRU5UX0NMSUNLX0lOVEVSQ0VQVEVEID0gWzY0LCAn
ZWxlbWVudCBjbGljayBpbnRlcmNlcHRlZCddCisgICAgVU5LTk9XTl9NRVRIT0QgPSBbJ3Vua25v
d24gbWV0aG9kIGV4Y2VwdGlvbiddCisKKyAgICBNRVRIT0RfTk9UX0FMTE9XRUQgPSBbNDA1LCAn
dW5zdXBwb3J0ZWQgb3BlcmF0aW9uJ10KKworCitjbGFzcyBFcnJvckhhbmRsZXIob2JqZWN0KToK
KyAgICAiIiIKKyAgICBIYW5kbGVzIGVycm9ycyByZXR1cm5lZCBieSB0aGUgV2ViRHJpdmVyIHNl
cnZlci4KKyAgICAiIiIKKyAgICBkZWYgY2hlY2tfcmVzcG9uc2Uoc2VsZiwgcmVzcG9uc2UpOgor
ICAgICAgICAiIiIKKyAgICAgICAgQ2hlY2tzIHRoYXQgYSBKU09OIHJlc3BvbnNlIGZyb20gdGhl
IFdlYkRyaXZlciBkb2VzIG5vdCBoYXZlIGFuIGVycm9yLgorCisgICAgICAgIDpBcmdzOgorICAg
ICAgICAgLSByZXNwb25zZSAtIFRoZSBKU09OIHJlc3BvbnNlIGZyb20gdGhlIFdlYkRyaXZlciBz
ZXJ2ZXIgYXMgYSBkaWN0aW9uYXJ5CisgICAgICAgICAgIG9iamVjdC4KKworICAgICAgICA6UmFp
c2VzOiBJZiB0aGUgcmVzcG9uc2UgY29udGFpbnMgYW4gZXJyb3IgbWVzc2FnZS4KKyAgICAgICAg
IiIiCisgICAgICAgIHN0YXR1cyA9IHJlc3BvbnNlLmdldCgnc3RhdHVzJywgTm9uZSkKKyAgICAg
ICAgaWYgc3RhdHVzIGlzIE5vbmUgb3Igc3RhdHVzID09IEVycm9yQ29kZS5TVUNDRVNTOgorICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgIHZhbHVlID0gTm9uZQorICAgICAgICBtZXNzYWdlID0g
cmVzcG9uc2UuZ2V0KCJtZXNzYWdlIiwgIiIpCisgICAgICAgIHNjcmVlbiA9IHJlc3BvbnNlLmdl
dCgic2NyZWVuIiwgIiIpCisgICAgICAgIHN0YWNrdHJhY2UgPSBOb25lCisgICAgICAgIGlmIGlz
aW5zdGFuY2Uoc3RhdHVzLCBpbnQpOgorICAgICAgICAgICAgdmFsdWVfanNvbiA9IHJlc3BvbnNl
LmdldCgndmFsdWUnLCBOb25lKQorICAgICAgICAgICAgaWYgdmFsdWVfanNvbiBhbmQgaXNpbnN0
YW5jZSh2YWx1ZV9qc29uLCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgICAgICBpbXBvcnQganNv
bgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBqc29u
LmxvYWRzKHZhbHVlX2pzb24pCisgICAgICAgICAgICAgICAgICAgIGlmIGxlbih2YWx1ZS5rZXlz
KCkpID09IDE6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWyd2YWx1ZSdd
CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHZhbHVlLmdldCgnZXJyb3InLCBOb25lKQor
ICAgICAgICAgICAgICAgICAgICBpZiBzdGF0dXMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1cyA9IHZhbHVlWyJzdGF0dXMiXQorICAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZSA9IHZhbHVlWyJ2YWx1ZSJdCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3Qg
aXNpbnN0YW5jZShtZXNzYWdlLCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
ID0gbWVzc2FnZS5nZXQoJ21lc3NhZ2UnKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHZhbHVlLmdldCgnbWVzc2FnZScsIE5vbmUp
CisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAg
IHBhc3MKKworICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBFcnJvckluUmVzcG9uc2VFeGNlcHRp
b24KKyAgICAgICAgaWYgc3RhdHVzIGluIEVycm9yQ29kZS5OT19TVUNIX0VMRU1FTlQ6CisgICAg
ICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCisgICAgICAg
IGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5OT19TVUNIX0ZSQU1FOgorICAgICAgICAgICAgZXhj
ZXB0aW9uX2NsYXNzID0gTm9TdWNoRnJhbWVFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMg
aW4gRXJyb3JDb2RlLk5PX1NVQ0hfV0lORE9XOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNz
ID0gTm9TdWNoV2luZG93RXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29k
ZS5TVEFMRV9FTEVNRU5UX1JFRkVSRU5DRToKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9
IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBF
cnJvckNvZGUuRUxFTUVOVF9OT1RfVklTSUJMRToKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFz
cyA9IEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVy
cm9yQ29kZS5JTlZBTElEX0VMRU1FTlRfU1RBVEU6CisgICAgICAgICAgICBleGNlcHRpb25fY2xh
c3MgPSBJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGlu
IEVycm9yQ29kZS5JTlZBTElEX1NFTEVDVE9SIFwKKyAgICAgICAgICAgICAgICBvciBzdGF0dXMg
aW4gRXJyb3JDb2RlLklOVkFMSURfWFBBVEhfU0VMRUNUT1IgXAorICAgICAgICAgICAgICAgIG9y
IHN0YXR1cyBpbiBFcnJvckNvZGUuSU5WQUxJRF9YUEFUSF9TRUxFQ1RPUl9SRVRVUk5fVFlQRVI6
CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24K
KyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLkVMRU1FTlRfSVNfTk9UX1NFTEVDVEFC
TEU6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBFbGVtZW50Tm90U2VsZWN0YWJsZUV4
Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuRUxFTUVOVF9OT1RfSU5U
RVJBQ1RBQkxFOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gRWxlbWVudE5vdEludGVy
YWN0YWJsZUV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU5WQUxJ
RF9DT09LSUVfRE9NQUlOOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gSW52YWxpZENv
b2tpZURvbWFpbkV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuVU5B
QkxFX1RPX1NFVF9DT09LSUU6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBVbmFibGVU
b1NldENvb2tpZUV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuVElN
RU9VVDoKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IFRpbWVvdXRFeGNlcHRpb24KKyAg
ICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLlNDUklQVF9USU1FT1VUOgorICAgICAgICAg
ICAgZXhjZXB0aW9uX2NsYXNzID0gVGltZW91dEV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1
cyBpbiBFcnJvckNvZGUuVU5LTk9XTl9FUlJPUjoKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFz
cyA9IFdlYkRyaXZlckV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUu
VU5FWFBFQ1RFRF9BTEVSVF9PUEVOOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gVW5l
eHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJv
ckNvZGUuTk9fQUxFUlRfT1BFTjoKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IE5vQWxl
cnRQcmVzZW50RXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5JTUVf
Tk9UX0FWQUlMQUJMRToKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IEltZU5vdEF2YWls
YWJsZUV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU1FX0VOR0lO
RV9BQ1RJVkFUSU9OX0ZBSUxFRDoKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IEltZUFj
dGl2YXRpb25GYWlsZWRFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2Rl
Lk1PVkVfVEFSR0VUX09VVF9PRl9CT1VORFM6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3Mg
PSBNb3ZlVGFyZ2V0T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4g
RXJyb3JDb2RlLkpBVkFTQ1JJUFRfRVJST1I6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3Mg
PSBKYXZhc2NyaXB0RXhjZXB0aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5T
RVNTSU9OX05PVF9DUkVBVEVEOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gU2Vzc2lv
bk5vdENyZWF0ZWRFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLklO
VkFMSURfQVJHVU1FTlQ6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLk5PX1NVQ0hf
Q09PS0lFOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gTm9TdWNoQ29va2llRXhjZXB0
aW9uCisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5VTkFCTEVfVE9fQ0FQVFVSRV9T
Q1JFRU46CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBTY3JlZW5zaG90RXhjZXB0aW9u
CisgICAgICAgIGVsaWYgc3RhdHVzIGluIEVycm9yQ29kZS5FTEVNRU5UX0NMSUNLX0lOVEVSQ0VQ
VEVEOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gRWxlbWVudENsaWNrSW50ZXJjZXB0
ZWRFeGNlcHRpb24KKyAgICAgICAgZWxpZiBzdGF0dXMgaW4gRXJyb3JDb2RlLklOU0VDVVJFX0NF
UlRJRklDQVRFOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gSW5zZWN1cmVDZXJ0aWZp
Y2F0ZUV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU5WQUxJRF9D
T09SRElOQVRFUzoKKyAgICAgICAgICAgIGV4Y2VwdGlvbl9jbGFzcyA9IEludmFsaWRDb29yZGlu
YXRlc0V4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuSU5WQUxJRF9T
RVNTSU9OX0lEOgorICAgICAgICAgICAgZXhjZXB0aW9uX2NsYXNzID0gSW52YWxpZFNlc3Npb25J
ZEV4Y2VwdGlvbgorICAgICAgICBlbGlmIHN0YXR1cyBpbiBFcnJvckNvZGUuVU5LTk9XTl9NRVRI
T0Q6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBVbmtub3duTWV0aG9kRXhjZXB0aW9u
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleGNlcHRpb25fY2xhc3MgPSBXZWJEcml2ZXJF
eGNlcHRpb24KKyAgICAgICAgaWYgdmFsdWUgPT0gJycgb3IgdmFsdWUgaXMgTm9uZToKKyAgICAg
ICAgICAgIHZhbHVlID0gcmVzcG9uc2VbJ3ZhbHVlJ10KKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2
YWx1ZSwgYmFzZXN0cmluZyk6CisgICAgICAgICAgICBpZiBleGNlcHRpb25fY2xhc3MgPT0gRXJy
b3JJblJlc3BvbnNlRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHJhaXNlIGV4Y2VwdGlvbl9j
bGFzcyhyZXNwb25zZSwgdmFsdWUpCisgICAgICAgICAgICByYWlzZSBleGNlcHRpb25fY2xhc3Mo
dmFsdWUpCisgICAgICAgIGlmIG1lc3NhZ2UgPT0gIiIgYW5kICdtZXNzYWdlJyBpbiB2YWx1ZToK
KyAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWx1ZVsnbWVzc2FnZSddCisKKyAgICAgICAgc2NyZWVu
ID0gTm9uZQorICAgICAgICBpZiAnc2NyZWVuJyBpbiB2YWx1ZToKKyAgICAgICAgICAgIHNjcmVl
biA9IHZhbHVlWydzY3JlZW4nXQorCisgICAgICAgIHN0YWNrdHJhY2UgPSBOb25lCisgICAgICAg
IGlmICdzdGFja1RyYWNlJyBpbiB2YWx1ZSBhbmQgdmFsdWVbJ3N0YWNrVHJhY2UnXToKKyAgICAg
ICAgICAgIHN0YWNrdHJhY2UgPSBbXQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IGZvciBmcmFtZSBpbiB2YWx1ZVsnc3RhY2tUcmFjZSddOgorICAgICAgICAgICAgICAgICAgICBs
aW5lID0gc2VsZi5fdmFsdWVfb3JfZGVmYXVsdChmcmFtZSwgJ2xpbmVOdW1iZXInLCAnJykKKyAg
ICAgICAgICAgICAgICAgICAgZmlsZSA9IHNlbGYuX3ZhbHVlX29yX2RlZmF1bHQoZnJhbWUsICdm
aWxlTmFtZScsICc8YW5vbnltb3VzPicpCisgICAgICAgICAgICAgICAgICAgIGlmIGxpbmU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0gIiVzOiVzIiAlIChmaWxlLCBsaW5lKQorICAg
ICAgICAgICAgICAgICAgICBtZXRoID0gc2VsZi5fdmFsdWVfb3JfZGVmYXVsdChmcmFtZSwgJ21l
dGhvZE5hbWUnLCAnPGFub255bW91cz4nKQorICAgICAgICAgICAgICAgICAgICBpZiAnY2xhc3NO
YW1lJyBpbiBmcmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ldGggPSAiJXMuJXMiICUg
KGZyYW1lWydjbGFzc05hbWUnXSwgbWV0aCkKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gIiAg
ICBhdCAlcyAoJXMpIgorICAgICAgICAgICAgICAgICAgICBtc2cgPSBtc2cgJSAobWV0aCwgZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgc3RhY2t0cmFjZS5hcHBlbmQobXNnKQorICAgICAgICAg
ICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIGV4
Y2VwdGlvbl9jbGFzcyA9PSBFcnJvckluUmVzcG9uc2VFeGNlcHRpb246CisgICAgICAgICAgICBy
YWlzZSBleGNlcHRpb25fY2xhc3MocmVzcG9uc2UsIG1lc3NhZ2UpCisgICAgICAgIGVsaWYgZXhj
ZXB0aW9uX2NsYXNzID09IFVuZXhwZWN0ZWRBbGVydFByZXNlbnRFeGNlcHRpb24gYW5kICdhbGVy
dCcgaW4gdmFsdWU6CisgICAgICAgICAgICByYWlzZSBleGNlcHRpb25fY2xhc3MobWVzc2FnZSwg
c2NyZWVuLCBzdGFja3RyYWNlLCB2YWx1ZVsnYWxlcnQnXS5nZXQoJ3RleHQnKSkKKyAgICAgICAg
cmFpc2UgZXhjZXB0aW9uX2NsYXNzKG1lc3NhZ2UsIHNjcmVlbiwgc3RhY2t0cmFjZSkKKworICAg
IGRlZiBfdmFsdWVfb3JfZGVmYXVsdChzZWxmLCBvYmosIGtleSwgZGVmYXVsdCk6CisgICAgICAg
IHJldHVybiBvYmpba2V5XSBpZiBrZXkgaW4gb2JqIGVsc2UgZGVmYXVsdApkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3Jl
bW90ZS9maWxlX2RldGVjdG9yLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9maWxlX2RldGVjdG9yLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYWVjOWMzMGZiYwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9yZW1vdGUvZmlsZV9kZXRlY3Rvci5weQpAQCAtMCwwICsxLDU4IEBACisjIExpY2Vuc2VkIHRv
IHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBt
b3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUK
KyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24K
KyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMg
ZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
CisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUg
TGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNF
LTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRv
IGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBP
UiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAg
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBl
cm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0
IGFiYworaW1wb3J0IG9zCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24udXRpbHMgaW1w
b3J0IGtleXNfdG9fdHlwaW5nCisKKworY2xhc3MgRmlsZURldGVjdG9yKG9iamVjdCk6CisgICAg
IiIiCisgICAgVXNlZCBmb3IgaWRlbnRpZnlpbmcgd2hldGhlciBhIHNlcXVlbmNlIG9mIGNoYXJz
IHJlcHJlc2VudHMgdGhlIHBhdGggdG8gYQorICAgIGZpbGUuCisgICAgIiIiCisgICAgX19tZXRh
Y2xhc3NfXyA9IGFiYy5BQkNNZXRhCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVm
IGlzX2xvY2FsX2ZpbGUoc2VsZiwgKmtleXMpOgorICAgICAgICByZXR1cm4KKworCitjbGFzcyBV
c2VsZXNzRmlsZURldGVjdG9yKEZpbGVEZXRlY3Rvcik6CisgICAgIiIiCisgICAgQSBmaWxlIGRl
dGVjdG9yIHRoYXQgbmV2ZXIgZmluZHMgYW55dGhpbmcuCisgICAgIiIiCisgICAgZGVmIGlzX2xv
Y2FsX2ZpbGUoc2VsZiwgKmtleXMpOgorICAgICAgICByZXR1cm4gTm9uZQorCisKK2NsYXNzIExv
Y2FsRmlsZURldGVjdG9yKEZpbGVEZXRlY3Rvcik6CisgICAgIiIiCisgICAgRGV0ZWN0cyBmaWxl
cyBvbiB0aGUgbG9jYWwgZGlzay4KKyAgICAiIiIKKyAgICBkZWYgaXNfbG9jYWxfZmlsZShzZWxm
LCAqa2V5cyk6CisgICAgICAgIGZpbGVfcGF0aCA9ICcnLmpvaW4oa2V5c190b190eXBpbmcoa2V5
cykpCisKKyAgICAgICAgaWYgbm90IGZpbGVfcGF0aDoKKyAgICAgICAgICAgIHJldHVybiBOb25l
CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZmlsZV9wYXRo
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlsZV9wYXRoCisgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQg
YS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIv
cmVtb3RlL2dldEF0dHJpYnV0ZS5qcyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvZ2V0QXR0cmlidXRlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYTM2MWIxODE0MwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9yZW1vdGUvZ2V0QXR0cmlidXRlLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24oKXtyZXR1
cm4gZnVuY3Rpb24oKXt2YXIgZD10aGlzO2Z1bmN0aW9uIGYoYSl7cmV0dXJuInN0cmluZyI9PXR5
cGVvZiBhfTtmdW5jdGlvbiBoKGEsYil7dGhpcy5jb2RlPWE7dGhpcy5hPWxbYV18fG07dGhpcy5t
ZXNzYWdlPWJ8fCIiO2E9dGhpcy5hLnJlcGxhY2UoLygoPzpefFxzKylbYS16XSkvZyxmdW5jdGlv
bihhKXtyZXR1cm4gYS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoL15bXHNceGEwXSsvZywiIil9KTti
PWEubGVuZ3RoLTU7aWYoMD5ifHxhLmluZGV4T2YoIkVycm9yIixiKSE9YilhKz0iRXJyb3IiO3Ro
aXMubmFtZT1hO2E9RXJyb3IodGhpcy5tZXNzYWdlKTthLm5hbWU9dGhpcy5uYW1lO3RoaXMuc3Rh
Y2s9YS5zdGFja3x8IiJ9CisoZnVuY3Rpb24oKXt2YXIgYT1FcnJvcjtmdW5jdGlvbiBiKCl7fWIu
cHJvdG90eXBlPWEucHJvdG90eXBlO2guYj1hLnByb3RvdHlwZTtoLnByb3RvdHlwZT1uZXcgYjto
LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oO2guYT1mdW5jdGlvbihiLGMsZyl7Zm9yKHZhciBlPUFy
cmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaz0yO2s8YXJndW1lbnRzLmxlbmd0aDtrKyspZVtrLTJd
PWFyZ3VtZW50c1trXTtyZXR1cm4gYS5wcm90b3R5cGVbY10uYXBwbHkoYixlKX19KSgpO3ZhciBt
PSJ1bmtub3duIGVycm9yIixsPXsxNToiZWxlbWVudCBub3Qgc2VsZWN0YWJsZSIsMTE6ImVsZW1l
bnQgbm90IHZpc2libGUifTtsWzMxXT1tO2xbMzBdPW07bFsyNF09ImludmFsaWQgY29va2llIGRv
bWFpbiI7bFsyOV09ImludmFsaWQgZWxlbWVudCBjb29yZGluYXRlcyI7bFsxMl09ImludmFsaWQg
ZWxlbWVudCBzdGF0ZSI7bFszMl09ImludmFsaWQgc2VsZWN0b3IiO2xbNTFdPSJpbnZhbGlkIHNl
bGVjdG9yIjsKK2xbNTJdPSJpbnZhbGlkIHNlbGVjdG9yIjtsWzE3XT0iamF2YXNjcmlwdCBlcnJv
ciI7bFs0MDVdPSJ1bnN1cHBvcnRlZCBvcGVyYXRpb24iO2xbMzRdPSJtb3ZlIHRhcmdldCBvdXQg
b2YgYm91bmRzIjtsWzI3XT0ibm8gc3VjaCBhbGVydCI7bFs3XT0ibm8gc3VjaCBlbGVtZW50Ijts
WzhdPSJubyBzdWNoIGZyYW1lIjtsWzIzXT0ibm8gc3VjaCB3aW5kb3ciO2xbMjhdPSJzY3JpcHQg
dGltZW91dCI7bFszM109InNlc3Npb24gbm90IGNyZWF0ZWQiO2xbMTBdPSJzdGFsZSBlbGVtZW50
IHJlZmVyZW5jZSI7bFsyMV09InRpbWVvdXQiO2xbMjVdPSJ1bmFibGUgdG8gc2V0IGNvb2tpZSI7
bFsyNl09InVuZXhwZWN0ZWQgYWxlcnQgb3BlbiI7bFsxM109bTtsWzldPSJ1bmtub3duIGNvbW1h
bmQiO2gucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSsiOiAi
K3RoaXMubWVzc2FnZX07dmFyIG47YTp7dmFyIHA9ZC5uYXZpZ2F0b3I7aWYocCl7dmFyIHE9cC51
c2VyQWdlbnQ7aWYocSl7bj1xO2JyZWFrIGF9fW49IiJ9ZnVuY3Rpb24gcihhKXtyZXR1cm4tMSE9
bi5pbmRleE9mKGEpfTtmdW5jdGlvbiB0KGEsYil7Zm9yKHZhciBlPWEubGVuZ3RoLGM9ZihhKT9h
LnNwbGl0KCIiKTphLGc9MDtnPGU7ZysrKWcgaW4gYyYmYi5jYWxsKHZvaWQgMCxjW2ddLGcsYSl9
O2Z1bmN0aW9uIHYoKXtyZXR1cm4gcigiaVBob25lIikmJiFyKCJpUG9kIikmJiFyKCJpUGFkIil9
O2Z1bmN0aW9uIHcoKXtyZXR1cm4ocigiQ2hyb21lIil8fHIoIkNyaU9TIikpJiYhcigiRWRnZSIp
fTt2YXIgeD1yKCJPcGVyYSIpLHk9cigiVHJpZGVudCIpfHxyKCJNU0lFIiksej1yKCJFZGdlIiks
QT1yKCJHZWNrbyIpJiYhKC0xIT1uLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikmJiFy
KCJFZGdlIikpJiYhKHIoIlRyaWRlbnQiKXx8cigiTVNJRSIpKSYmIXIoIkVkZ2UiKSxhYT0tMSE9
bi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpJiYhcigiRWRnZSIpO2Z1bmN0aW9uIEIo
KXt2YXIgYT1kLmRvY3VtZW50O3JldHVybiBhP2EuZG9jdW1lbnRNb2RlOnZvaWQgMH12YXIgQzsK
K2E6e3ZhciBEPSIiLEU9ZnVuY3Rpb24oKXt2YXIgYT1uO2lmKEEpcmV0dXJuL3J2XDooW15cKTtd
KykoXCl8OykvLmV4ZWMoYSk7aWYoeilyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lm
KHkpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKGFh
KXJldHVybi9XZWJLaXRcLyhcUyspLy5leGVjKGEpO2lmKHgpcmV0dXJuLyg/OlZlcnNpb24pWyBc
L10/KFxTKykvLmV4ZWMoYSl9KCk7RSYmKEQ9RT9FWzFdOiIiKTtpZih5KXt2YXIgRj1CKCk7aWYo
bnVsbCE9RiYmRj5wYXJzZUZsb2F0KEQpKXtDPVN0cmluZyhGKTticmVhayBhfX1DPUR9dmFyIEc7
dmFyIEg9ZC5kb2N1bWVudDtHPUgmJnk/QigpfHwoIkNTUzFDb21wYXQiPT1ILmNvbXBhdE1vZGU/
cGFyc2VJbnQoQywxMCk6NSk6dm9pZCAwO3ZhciBiYT1yKCJGaXJlZm94IiksY2E9digpfHxyKCJp
UG9kIiksZGE9cigiaVBhZCIpLEk9cigiQW5kcm9pZCIpJiYhKHcoKXx8cigiRmlyZWZveCIpfHxy
KCJPcGVyYSIpfHxyKCJTaWxrIikpLGVhPXcoKSxKPXIoIlNhZmFyaSIpJiYhKHcoKXx8cigiQ29h
c3QiKXx8cigiT3BlcmEiKXx8cigiRWRnZSIpfHxyKCJTaWxrIil8fHIoIkFuZHJvaWQiKSkmJiEo
digpfHxyKCJpUGFkIil8fHIoImlQb2QiKSk7ZnVuY3Rpb24gSyhhKXtyZXR1cm4oYT1hLmV4ZWMo
bikpP2FbMV06IiJ9KGZ1bmN0aW9uKCl7aWYoYmEpcmV0dXJuIEsoL0ZpcmVmb3hcLyhbMC05Ll0r
KS8pO2lmKHl8fHp8fHgpcmV0dXJuIEM7aWYoZWEpcmV0dXJuIHYoKXx8cigiaVBhZCIpfHxyKCJp
UG9kIik/SygvQ3JpT1NcLyhbMC05Ll0rKS8pOksoL0Nocm9tZVwvKFswLTkuXSspLyk7aWYoSiYm
ISh2KCl8fHIoImlQYWQiKXx8cigiaVBvZCIpKSlyZXR1cm4gSygvVmVyc2lvblwvKFswLTkuXSsp
Lyk7aWYoY2F8fGRhKXt2YXIgYT0vVmVyc2lvblwvKFxTKykuKk1vYmlsZVwvKFxTKykvLmV4ZWMo
bik7aWYoYSlyZXR1cm4gYVsxXSsiLiIrYVsyXX1lbHNlIGlmKEkpcmV0dXJuKGE9SygvQW5kcm9p
ZFxzKyhbMC05Ll0rKS8pKT9hOksoL1ZlcnNpb25cLyhbMC05Ll0rKS8pO3JldHVybiIifSkoKTt2
YXIgTCxNPWZ1bmN0aW9uKCl7aWYoIUEpcmV0dXJuITE7dmFyIGE9ZC5Db21wb25lbnRzO2lmKCFh
KXJldHVybiExO3RyeXtpZighYS5jbGFzc2VzKXJldHVybiExfWNhdGNoKGcpe3JldHVybiExfXZh
ciBiPWEuY2xhc3NlcyxhPWEuaW50ZXJmYWNlcyxlPWJbIkBtb3ppbGxhLm9yZy94cGNvbS92ZXJz
aW9uLWNvbXBhcmF0b3I7MSJdLmdldFNlcnZpY2UoYS5uc0lWZXJzaW9uQ29tcGFyYXRvciksYz1i
WyJAbW96aWxsYS5vcmcveHJlL2FwcC1pbmZvOzEiXS5nZXRTZXJ2aWNlKGEubnNJWFVMQXBwSW5m
bykudmVyc2lvbjtMPWZ1bmN0aW9uKGEpe2UuY29tcGFyZShjLCIiK2EpfTtyZXR1cm4hMH0oKSxO
PXkmJiEoODw9TnVtYmVyKEcpKSxmYT15JiYhKDk8PU51bWJlcihHKSk7SSYmTSYmTCgyLjMpO0km
Jk0mJkwoNCk7SiYmTSYmTCg2KTt2YXIgZ2E9e1NDUklQVDoxLFNUWUxFOjEsSEVBRDoxLElGUkFN
RToxLE9CSkVDVDoxfSxPPXtJTUc6IiAiLEJSOiJcbiJ9O2Z1bmN0aW9uIFAoYSxiLGUpe2lmKCEo
YS5ub2RlTmFtZSBpbiBnYSkpaWYoMz09YS5ub2RlVHlwZSllP2IucHVzaChTdHJpbmcoYS5ub2Rl
VmFsdWUpLnJlcGxhY2UoLyhcclxufFxyfFxuKS9nLCIiKSk6Yi5wdXNoKGEubm9kZVZhbHVlKTtl
bHNlIGlmKGEubm9kZU5hbWUgaW4gTyliLnB1c2goT1thLm5vZGVOYW1lXSk7ZWxzZSBmb3IoYT1h
LmZpcnN0Q2hpbGQ7YTspUChhLGIsZSksYT1hLm5leHRTaWJsaW5nfTtmdW5jdGlvbiBRKGEsYil7
Yj1iLnRvTG93ZXJDYXNlKCk7cmV0dXJuInN0eWxlIj09Yj9oYShhLnN0eWxlLmNzc1RleHQpOk4m
JiJ2YWx1ZSI9PWImJlIoYSwiSU5QVVQiKT9hLnZhbHVlOmZhJiYhMD09PWFbYl0/U3RyaW5nKGEu
Z2V0QXR0cmlidXRlKGIpKTooYT1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZhLnNwZWNpZmllZD9h
LnZhbHVlOm51bGx9dmFyIGlhPS9bO10rKD89KD86KD86W14iXSoiKXsyfSkqW14iXSokKSg/PSg/
Oig/OlteJ10qJyl7Mn0pKlteJ10qJCkoPz0oPzpbXigpXSpcKFteKCldKlwpKSpbXigpXSokKS87
CitmdW5jdGlvbiBoYShhKXt2YXIgYj1bXTt0KGEuc3BsaXQoaWEpLGZ1bmN0aW9uKGEpe3ZhciBj
PWEuaW5kZXhPZigiOiIpOzA8YyYmKGE9W2Euc2xpY2UoMCxjKSxhLnNsaWNlKGMrMSldLDI9PWEu
bGVuZ3RoJiZiLnB1c2goYVswXS50b0xvd2VyQ2FzZSgpLCI6IixhWzFdLCI7IikpfSk7Yj1iLmpv
aW4oIiIpO3JldHVybiBiPSI7Ij09Yi5jaGFyQXQoYi5sZW5ndGgtMSk/YjpiKyI7In1mdW5jdGlv
biBTKGEsYil7TiYmInZhbHVlIj09YiYmUihhLCJPUFRJT04iKSYmbnVsbD09PVEoYSwidmFsdWUi
KT8oYj1bXSxQKGEsYiwhMSksYT1iLmpvaW4oIiIpKTphPWFbYl07cmV0dXJuIGF9ZnVuY3Rpb24g
UihhLGIpe2ImJiJzdHJpbmciIT09dHlwZW9mIGImJihiPWIudG9TdHJpbmcoKSk7cmV0dXJuISFh
JiYxPT1hLm5vZGVUeXBlJiYoIWJ8fGEudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT1iKX0KK2Z1bmN0
aW9uIFQoYSl7cmV0dXJuIFIoYSwiT1BUSU9OIik/ITA6UihhLCJJTlBVVCIpPyhhPWEudHlwZS50
b0xvd2VyQ2FzZSgpLCJjaGVja2JveCI9PWF8fCJyYWRpbyI9PWEpOiExfTt2YXIgamE9eyJjbGFz
cyI6ImNsYXNzTmFtZSIscmVhZG9ubHk6InJlYWRPbmx5In0sVT0iYXN5bmMgYXV0b2ZvY3VzIGF1
dG9wbGF5IGNoZWNrZWQgY29tcGFjdCBjb21wbGV0ZSBjb250cm9scyBkZWNsYXJlIGRlZmF1bHRj
aGVja2VkIGRlZmF1bHRzZWxlY3RlZCBkZWZlciBkaXNhYmxlZCBkcmFnZ2FibGUgZW5kZWQgZm9y
bW5vdmFsaWRhdGUgaGlkZGVuIGluZGV0ZXJtaW5hdGUgaXNjb250ZW50ZWRpdGFibGUgaXNtYXAg
aXRlbXNjb3BlIGxvb3AgbXVsdGlwbGUgbXV0ZWQgbm9ocmVmIG5vcmVzaXplIG5vc2hhZGUgbm92
YWxpZGF0ZSBub3dyYXAgb3BlbiBwYXVzZWQgcHViZGF0ZSByZWFkb25seSByZXF1aXJlZCByZXZl
cnNlZCBzY29wZWQgc2VhbWxlc3Mgc2Vla2luZyBzZWxlY3RlZCBzcGVsbGNoZWNrIHRydWVzcGVl
ZCB3aWxsdmFsaWRhdGUiLnNwbGl0KCIgIik7ZnVuY3Rpb24gVihhLGIpe3ZhciBlPW51bGwsYz1i
LnRvTG93ZXJDYXNlKCk7aWYoInN0eWxlIj09YylyZXR1cm4oZT1hLnN0eWxlKSYmIWYoZSkmJihl
PWUuY3NzVGV4dCksZTtpZigoInNlbGVjdGVkIj09Y3x8ImNoZWNrZWQiPT1jKSYmVChhKSl7aWYo
IVQoYSkpdGhyb3cgbmV3IGgoMTUsIkVsZW1lbnQgaXMgbm90IHNlbGVjdGFibGUiKTtiPSJzZWxl
Y3RlZCI7ZT1hLnR5cGUmJmEudHlwZS50b0xvd2VyQ2FzZSgpO2lmKCJjaGVja2JveCI9PWV8fCJy
YWRpbyI9PWUpYj0iY2hlY2tlZCI7cmV0dXJuIFMoYSxiKT8idHJ1ZSI6bnVsbH12YXIgZz1SKGEs
IkEiKTtpZihSKGEsIklNRyIpJiYic3JjIj09Y3x8ZyYmImhyZWYiPT1jKXJldHVybihlPVEoYSxj
KSkmJihlPVMoYSxjKSksZTtpZigic3BlbGxjaGVjayI9PWMpe2U9UShhLGMpO2lmKG51bGwhPT1l
KXtpZigiZmFsc2UiPT1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuImZhbHNlIjtpZigidHJ1ZSI9PWUu
dG9Mb3dlckNhc2UoKSlyZXR1cm4idHJ1ZSJ9cmV0dXJuIFMoYSwKK2MpKyIifWc9amFbYl18fGI7
YTppZihmKFUpKWM9ZihjKSYmMT09Yy5sZW5ndGg/VS5pbmRleE9mKGMsMCk6LTE7ZWxzZXtmb3Io
dmFyIHU9MDt1PFUubGVuZ3RoO3UrKylpZih1IGluIFUmJlVbdV09PT1jKXtjPXU7YnJlYWsgYX1j
PS0xfWlmKDA8PWMpcmV0dXJuKGU9bnVsbCE9PVEoYSxiKXx8UyhhLGcpKT8idHJ1ZSI6bnVsbDt0
cnl7dmFyIGs9UyhhLGcpfWNhdGNoKGthKXt9KGM9bnVsbD09ayl8fChjPXR5cGVvZiBrLGM9Im9i
amVjdCI9PWMmJm51bGwhPWt8fCJmdW5jdGlvbiI9PWMpO2M/ZT1RKGEsYik6ZT1rO3JldHVybiBu
dWxsIT1lP2UudG9TdHJpbmcoKTpudWxsfXZhciBXPVsiXyJdLFg9ZDtXWzBdaW4gWHx8IVguZXhl
Y1NjcmlwdHx8WC5leGVjU2NyaXB0KCJ2YXIgIitXWzBdKTsKK2Zvcih2YXIgWTtXLmxlbmd0aCYm
KFk9Vy5zaGlmdCgpKTspe3ZhciBaO2lmKFo9IVcubGVuZ3RoKVo9dm9pZCAwIT09VjtaP1hbWV09
VjpYW1ldJiZYW1ldIT09T2JqZWN0LnByb3RvdHlwZVtZXT9YPVhbWV06WD1YW1ldPXt9fTs7IHJl
dHVybiB0aGlzLl8uYXBwbHkobnVsbCxhcmd1bWVudHMpO30uYXBwbHkoe25hdmlnYXRvcjp0eXBl
b2Ygd2luZG93IT0ndW5kZWZpbmVkJz93aW5kb3cubmF2aWdhdG9yOm51bGwsZG9jdW1lbnQ6dHlw
ZW9mIHdpbmRvdyE9J3VuZGVmaW5lZCc/d2luZG93LmRvY3VtZW50Om51bGx9LCBhcmd1bWVudHMp
O30KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9yZW1vdGUvaXNEaXNwbGF5ZWQuanMgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL2lzRGlzcGxheWVkLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45YjZmMWMxMGEwZQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9yZW1vdGUvaXNEaXNwbGF5ZWQuanMKQEAgLTAsMCArMSwxMDEgQEAKK2Z1
bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGs9dGhpcztmdW5jdGlvbiBsKGEpe3JldHVy
biB2b2lkIDAhPT1hfWZ1bmN0aW9uIG0oYSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhfWZ1bmN0
aW9uIGFhKGEsYil7YT1hLnNwbGl0KCIuIik7dmFyIGM9azthWzBdaW4gY3x8IWMuZXhlY1Njcmlw
dHx8Yy5leGVjU2NyaXB0KCJ2YXIgIithWzBdKTtmb3IodmFyIGQ7YS5sZW5ndGgmJihkPWEuc2hp
ZnQoKSk7KSFhLmxlbmd0aCYmbChiKT9jW2RdPWI6Y1tkXSYmY1tkXSE9PU9iamVjdC5wcm90b3R5
cGVbZF0/Yz1jW2RdOmM9Y1tkXT17fX0KK2Z1bmN0aW9uIGJhKGEpe3ZhciBiPXR5cGVvZiBhO2lm
KCJvYmplY3QiPT1iKWlmKGEpe2lmKGEgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYXJyYXkiO2lm
KGEgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIGI7dmFyIGM9T2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5jYWxsKGEpO2lmKCJbb2JqZWN0IFdpbmRvd10iPT1jKXJldHVybiJvYmplY3QiO2lmKCJb
b2JqZWN0IEFycmF5XSI9PWN8fCJudW1iZXIiPT10eXBlb2YgYS5sZW5ndGgmJiJ1bmRlZmluZWQi
IT10eXBlb2YgYS5zcGxpY2UmJiJ1bmRlZmluZWQiIT10eXBlb2YgYS5wcm9wZXJ0eUlzRW51bWVy
YWJsZSYmIWEucHJvcGVydHlJc0VudW1lcmFibGUoInNwbGljZSIpKXJldHVybiJhcnJheSI7aWYo
IltvYmplY3QgRnVuY3Rpb25dIj09Y3x8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNhbGwmJiJ1bmRl
ZmluZWQiIT10eXBlb2YgYS5wcm9wZXJ0eUlzRW51bWVyYWJsZSYmIWEucHJvcGVydHlJc0VudW1l
cmFibGUoImNhbGwiKSlyZXR1cm4iZnVuY3Rpb24ifWVsc2UgcmV0dXJuIm51bGwiOworZWxzZSBp
ZigiZnVuY3Rpb24iPT1iJiYidW5kZWZpbmVkIj09dHlwZW9mIGEuY2FsbClyZXR1cm4ib2JqZWN0
IjtyZXR1cm4gYn1mdW5jdGlvbiBjYShhLGIsYyl7cmV0dXJuIGEuY2FsbC5hcHBseShhLmJpbmQs
YXJndW1lbnRzKX1mdW5jdGlvbiBkYShhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZigyPGFy
Z3VtZW50cy5sZW5ndGgpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50
cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChh
cmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGMsZCk7cmV0dXJuIGEuYXBw
bHkoYixjKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0K
K2Z1bmN0aW9uIGVhKGEsYixjKXtGdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmLTEhPUZ1bmN0aW9u
LnByb3RvdHlwZS5iaW5kLnRvU3RyaW5nKCkuaW5kZXhPZigibmF0aXZlIGNvZGUiKT9lYT1jYTpl
YT1kYTtyZXR1cm4gZWEuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGZhKGEsYil7dmFy
IGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlv
bigpe3ZhciBiPWMuc2xpY2UoKTtiLnB1c2guYXBwbHkoYixhcmd1bWVudHMpO3JldHVybiBhLmFw
cGx5KHRoaXMsYil9fQorZnVuY3Rpb24gcChhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9
Yi5wcm90b3R5cGU7YS5MPWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBl
LmNvbnN0cnVjdG9yPWE7YS5LPWZ1bmN0aW9uKGEsYyxmKXtmb3IodmFyIGQ9QXJyYXkoYXJndW1l
bnRzLmxlbmd0aC0yKSxlPTI7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylkW2UtMl09YXJndW1lbnRz
W2VdO3JldHVybiBiLnByb3RvdHlwZVtjXS5hcHBseShhLGQpfX07ZnVuY3Rpb24gZ2EoYSxiKXt0
aGlzLmNvZGU9YTt0aGlzLmE9cVthXXx8aGE7dGhpcy5tZXNzYWdlPWJ8fCIiO2E9dGhpcy5hLnJl
cGxhY2UoLygoPzpefFxzKylbYS16XSkvZyxmdW5jdGlvbihhKXtyZXR1cm4gYS50b1VwcGVyQ2Fz
ZSgpLnJlcGxhY2UoL15bXHNceGEwXSsvZywiIil9KTtiPWEubGVuZ3RoLTU7aWYoMD5ifHxhLmlu
ZGV4T2YoIkVycm9yIixiKSE9YilhKz0iRXJyb3IiO3RoaXMubmFtZT1hO2E9RXJyb3IodGhpcy5t
ZXNzYWdlKTthLm5hbWU9dGhpcy5uYW1lO3RoaXMuc3RhY2s9YS5zdGFja3x8IiJ9cChnYSxFcnJv
cik7dmFyIGhhPSJ1bmtub3duIGVycm9yIixxPXsxNToiZWxlbWVudCBub3Qgc2VsZWN0YWJsZSIs
MTE6ImVsZW1lbnQgbm90IHZpc2libGUifTtxWzMxXT1oYTtxWzMwXT1oYTtxWzI0XT0iaW52YWxp
ZCBjb29raWUgZG9tYWluIjtxWzI5XT0iaW52YWxpZCBlbGVtZW50IGNvb3JkaW5hdGVzIjtxWzEy
XT0iaW52YWxpZCBlbGVtZW50IHN0YXRlIjsKK3FbMzJdPSJpbnZhbGlkIHNlbGVjdG9yIjtxWzUx
XT0iaW52YWxpZCBzZWxlY3RvciI7cVs1Ml09ImludmFsaWQgc2VsZWN0b3IiO3FbMTddPSJqYXZh
c2NyaXB0IGVycm9yIjtxWzQwNV09InVuc3VwcG9ydGVkIG9wZXJhdGlvbiI7cVszNF09Im1vdmUg
dGFyZ2V0IG91dCBvZiBib3VuZHMiO3FbMjddPSJubyBzdWNoIGFsZXJ0IjtxWzddPSJubyBzdWNo
IGVsZW1lbnQiO3FbOF09Im5vIHN1Y2ggZnJhbWUiO3FbMjNdPSJubyBzdWNoIHdpbmRvdyI7cVsy
OF09InNjcmlwdCB0aW1lb3V0IjtxWzMzXT0ic2Vzc2lvbiBub3QgY3JlYXRlZCI7cVsxMF09InN0
YWxlIGVsZW1lbnQgcmVmZXJlbmNlIjtxWzIxXT0idGltZW91dCI7cVsyNV09InVuYWJsZSB0byBz
ZXQgY29va2llIjtxWzI2XT0idW5leHBlY3RlZCBhbGVydCBvcGVuIjtxWzEzXT1oYTtxWzldPSJ1
bmtub3duIGNvbW1hbmQiO2dhLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0
aGlzLm5hbWUrIjogIit0aGlzLm1lc3NhZ2V9O3ZhciBpYT17YWxpY2VibHVlOiIjZjBmOGZmIixh
bnRpcXVld2hpdGU6IiNmYWViZDciLGFxdWE6IiMwMGZmZmYiLGFxdWFtYXJpbmU6IiM3ZmZmZDQi
LGF6dXJlOiIjZjBmZmZmIixiZWlnZToiI2Y1ZjVkYyIsYmlzcXVlOiIjZmZlNGM0IixibGFjazoi
IzAwMDAwMCIsYmxhbmNoZWRhbG1vbmQ6IiNmZmViY2QiLGJsdWU6IiMwMDAwZmYiLGJsdWV2aW9s
ZXQ6IiM4YTJiZTIiLGJyb3duOiIjYTUyYTJhIixidXJseXdvb2Q6IiNkZWI4ODciLGNhZGV0Ymx1
ZToiIzVmOWVhMCIsY2hhcnRyZXVzZToiIzdmZmYwMCIsY2hvY29sYXRlOiIjZDI2OTFlIixjb3Jh
bDoiI2ZmN2Y1MCIsY29ybmZsb3dlcmJsdWU6IiM2NDk1ZWQiLGNvcm5zaWxrOiIjZmZmOGRjIixj
cmltc29uOiIjZGMxNDNjIixjeWFuOiIjMDBmZmZmIixkYXJrYmx1ZToiIzAwMDA4YiIsZGFya2N5
YW46IiMwMDhiOGIiLGRhcmtnb2xkZW5yb2Q6IiNiODg2MGIiLGRhcmtncmF5OiIjYTlhOWE5Iixk
YXJrZ3JlZW46IiMwMDY0MDAiLAorZGFya2dyZXk6IiNhOWE5YTkiLGRhcmtraGFraToiI2JkYjc2
YiIsZGFya21hZ2VudGE6IiM4YjAwOGIiLGRhcmtvbGl2ZWdyZWVuOiIjNTU2YjJmIixkYXJrb3Jh
bmdlOiIjZmY4YzAwIixkYXJrb3JjaGlkOiIjOTkzMmNjIixkYXJrcmVkOiIjOGIwMDAwIixkYXJr
c2FsbW9uOiIjZTk5NjdhIixkYXJrc2VhZ3JlZW46IiM4ZmJjOGYiLGRhcmtzbGF0ZWJsdWU6IiM0
ODNkOGIiLGRhcmtzbGF0ZWdyYXk6IiMyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IiMyZjRmNGYiLGRh
cmt0dXJxdW9pc2U6IiMwMGNlZDEiLGRhcmt2aW9sZXQ6IiM5NDAwZDMiLGRlZXBwaW5rOiIjZmYx
NDkzIixkZWVwc2t5Ymx1ZToiIzAwYmZmZiIsZGltZ3JheToiIzY5Njk2OSIsZGltZ3JleToiIzY5
Njk2OSIsZG9kZ2VyYmx1ZToiIzFlOTBmZiIsZmlyZWJyaWNrOiIjYjIyMjIyIixmbG9yYWx3aGl0
ZToiI2ZmZmFmMCIsZm9yZXN0Z3JlZW46IiMyMjhiMjIiLGZ1Y2hzaWE6IiNmZjAwZmYiLGdhaW5z
Ym9ybzoiI2RjZGNkYyIsCitnaG9zdHdoaXRlOiIjZjhmOGZmIixnb2xkOiIjZmZkNzAwIixnb2xk
ZW5yb2Q6IiNkYWE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxv
dzoiI2FkZmYyZiIsZ3JleToiIzgwODA4MCIsaG9uZXlkZXc6IiNmMGZmZjAiLGhvdHBpbms6IiNm
ZjY5YjQiLGluZGlhbnJlZDoiI2NkNWM1YyIsaW5kaWdvOiIjNGIwMDgyIixpdm9yeToiI2ZmZmZm
MCIsa2hha2k6IiNmMGU2OGMiLGxhdmVuZGVyOiIjZTZlNmZhIixsYXZlbmRlcmJsdXNoOiIjZmZm
MGY1IixsYXduZ3JlZW46IiM3Y2ZjMDAiLGxlbW9uY2hpZmZvbjoiI2ZmZmFjZCIsbGlnaHRibHVl
OiIjYWRkOGU2IixsaWdodGNvcmFsOiIjZjA4MDgwIixsaWdodGN5YW46IiNlMGZmZmYiLGxpZ2h0
Z29sZGVucm9keWVsbG93OiIjZmFmYWQyIixsaWdodGdyYXk6IiNkM2QzZDMiLGxpZ2h0Z3JlZW46
IiM5MGVlOTAiLGxpZ2h0Z3JleToiI2QzZDNkMyIsbGlnaHRwaW5rOiIjZmZiNmMxIixsaWdodHNh
bG1vbjoiI2ZmYTA3YSIsCitsaWdodHNlYWdyZWVuOiIjMjBiMmFhIixsaWdodHNreWJsdWU6IiM4
N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHNsYXRlZ3JleToiIzc3ODg5OSIs
bGlnaHRzdGVlbGJsdWU6IiNiMGM0ZGUiLGxpZ2h0eWVsbG93OiIjZmZmZmUwIixsaW1lOiIjMDBm
ZjAwIixsaW1lZ3JlZW46IiMzMmNkMzIiLGxpbmVuOiIjZmFmMGU2IixtYWdlbnRhOiIjZmYwMGZm
IixtYXJvb246IiM4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IiM2NmNkYWEiLG1lZGl1bWJsdWU6
IiMwMDAwY2QiLG1lZGl1bW9yY2hpZDoiI2JhNTVkMyIsbWVkaXVtcHVycGxlOiIjOTM3MGRiIixt
ZWRpdW1zZWFncmVlbjoiIzNjYjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN2I2OGVlIixtZWRpdW1z
cHJpbmdncmVlbjoiIzAwZmE5YSIsbWVkaXVtdHVycXVvaXNlOiIjNDhkMWNjIixtZWRpdW12aW9s
ZXRyZWQ6IiNjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjZjVmZmZh
IixtaXN0eXJvc2U6IiNmZmU0ZTEiLAorbW9jY2FzaW46IiNmZmU0YjUiLG5hdmFqb3doaXRlOiIj
ZmZkZWFkIixuYXZ5OiIjMDAwMDgwIixvbGRsYWNlOiIjZmRmNWU2IixvbGl2ZToiIzgwODAwMCIs
b2xpdmVkcmFiOiIjNmI4ZTIzIixvcmFuZ2U6IiNmZmE1MDAiLG9yYW5nZXJlZDoiI2ZmNDUwMCIs
b3JjaGlkOiIjZGE3MGQ2IixwYWxlZ29sZGVucm9kOiIjZWVlOGFhIixwYWxlZ3JlZW46IiM5OGZi
OTgiLHBhbGV0dXJxdW9pc2U6IiNhZmVlZWUiLHBhbGV2aW9sZXRyZWQ6IiNkYjcwOTMiLHBhcGF5
YXdoaXA6IiNmZmVmZDUiLHBlYWNocHVmZjoiI2ZmZGFiOSIscGVydToiI2NkODUzZiIscGluazoi
I2ZmYzBjYiIscGx1bToiI2RkYTBkZCIscG93ZGVyYmx1ZToiI2IwZTBlNiIscHVycGxlOiIjODAw
MDgwIixyZWQ6IiNmZjAwMDAiLHJvc3licm93bjoiI2JjOGY4ZiIscm95YWxibHVlOiIjNDE2OWUx
IixzYWRkbGVicm93bjoiIzhiNDUxMyIsc2FsbW9uOiIjZmE4MDcyIixzYW5keWJyb3duOiIjZjRh
NDYwIixzZWFncmVlbjoiIzJlOGI1NyIsCitzZWFzaGVsbDoiI2ZmZjVlZSIsc2llbm5hOiIjYTA1
MjJkIixzaWx2ZXI6IiNjMGMwYzAiLHNreWJsdWU6IiM4N2NlZWIiLHNsYXRlYmx1ZToiIzZhNWFj
ZCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbGF0ZWdyZXk6IiM3MDgwOTAiLHNub3c6IiNmZmZhZmEi
LHNwcmluZ2dyZWVuOiIjMDBmZjdmIixzdGVlbGJsdWU6IiM0NjgyYjQiLHRhbjoiI2QyYjQ4YyIs
dGVhbDoiIzAwODA4MCIsdGhpc3RsZToiI2Q4YmZkOCIsdG9tYXRvOiIjZmY2MzQ3Iix0dXJxdW9p
c2U6IiM0MGUwZDAiLHZpb2xldDoiI2VlODJlZSIsd2hlYXQ6IiNmNWRlYjMiLHdoaXRlOiIjZmZm
ZmZmIix3aGl0ZXNtb2tlOiIjZjVmNWY1Iix5ZWxsb3c6IiNmZmZmMDAiLHllbGxvd2dyZWVuOiIj
OWFjZDMyIn07ZnVuY3Rpb24gamEoYSxiKXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yn1qYS5w
cm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iKCIrdGhpcy53aWR0aCsiIHggIit0
aGlzLmhlaWdodCsiKSJ9O2phLnByb3RvdHlwZS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1N
YXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTty
ZXR1cm4gdGhpc307amEucHJvdG90eXBlLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRo
LmZsb29yKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3Jl
dHVybiB0aGlzfTtqYS5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGgu
cm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0
dXJuIHRoaXN9O2Z1bmN0aW9uIGthKGEsYil7dmFyIGM9bGE7cmV0dXJuIE9iamVjdC5wcm90b3R5
cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGEpP2NbYV06Y1thXT1iKGEpfTt2YXIgbWE9U3RyaW5n
LnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7
cmV0dXJuIGEucmVwbGFjZSgvXltcc1x4YTBdK3xbXHNceGEwXSskL2csIiIpfTtmdW5jdGlvbiBu
YShhLGIpe3JldHVybiBhPGI/LTE6YT5iPzE6MH1mdW5jdGlvbiBvYShhKXtyZXR1cm4gU3RyaW5n
KGEpLnJlcGxhY2UoL1wtKFthLXpdKS9nLGZ1bmN0aW9uKGEsYyl7cmV0dXJuIGMudG9VcHBlckNh
c2UoKX0pfTsvKgorCisgVGhlIE1JVCBMaWNlbnNlCisKKyBDb3B5cmlnaHQgKGMpIDIwMDcgQ3li
b3p1IExhYnMsIEluYy4KKyBDb3B5cmlnaHQgKGMpIDIwMTIgR29vZ2xlIEluYy4KKworIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhIGNvcHkKKyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorIHJp
Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vcgorIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
IGluCisgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu
CisKKyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB
SU0sIERBTUFHRVMgT1IgT1RIRVIKKyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworIEZST00sIE9VVCBPRiBPUiBJ
TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MKKyBJTiBUSEUgU09GVFdBUkUuCisqLworZnVuY3Rpb24gcGEoYSxiLGMpe3RoaXMuYT1hO3Ro
aXMuYj1ifHwxO3RoaXMuZj1jfHwxfTtmdW5jdGlvbiBxYShhKXt0aGlzLmI9YTt0aGlzLmE9MH1m
dW5jdGlvbiByYShhKXthPWEubWF0Y2goc2EpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXRh
LnRlc3QoYVtiXSkmJmEuc3BsaWNlKGIsMSk7cmV0dXJuIG5ldyBxYShhKX12YXIgc2E9L1wkPyg/
Oig/IVswLTktXC5dKSg/OlwqfFtcdy1cLl0rKTopPyg/IVswLTktXC5dKSg/OlwqfFtcdy1cLl0r
KXxcL1wvfFwuXC58Ojp8XGQrKD86XC5cZCopP3xcLlxkK3wiW14iXSoifCdbXiddKid8WyE8Pl09
fFxzK3wuL2csdGE9L15ccy87ZnVuY3Rpb24gdChhLGIpe3JldHVybiBhLmJbYS5hKyhifHwwKV19
ZnVuY3Rpb24gdShhKXtyZXR1cm4gYS5iW2EuYSsrXX1mdW5jdGlvbiB1YShhKXtyZXR1cm4gYS5i
Lmxlbmd0aDw9YS5hfTt2YXIgdjthOnt2YXIgdmE9ay5uYXZpZ2F0b3I7aWYodmEpe3ZhciB3YT12
YS51c2VyQWdlbnQ7aWYod2Epe3Y9d2E7YnJlYWsgYX19dj0iIn1mdW5jdGlvbiB4KGEpe3JldHVy
bi0xIT12LmluZGV4T2YoYSl9O2Z1bmN0aW9uIHkoYSxiKXt0aGlzLmg9YTt0aGlzLmM9bChiKT9i
Om51bGw7dGhpcy5iPW51bGw7c3dpdGNoKGEpe2Nhc2UgImNvbW1lbnQiOnRoaXMuYj04O2JyZWFr
O2Nhc2UgInRleHQiOnRoaXMuYj0zO2JyZWFrO2Nhc2UgInByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24i
OnRoaXMuYj03O2JyZWFrO2Nhc2UgIm5vZGUiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVu
ZXhwZWN0ZWQgYXJndW1lbnQiKTt9fWZ1bmN0aW9uIHhhKGEpe3JldHVybiJjb21tZW50Ij09YXx8
InRleHQiPT1hfHwicHJvY2Vzc2luZy1pbnN0cnVjdGlvbiI9PWF8fCJub2RlIj09YX15LnByb3Rv
dHlwZS5hPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09dGhpcy5ifHx0aGlzLmI9PWEubm9kZVR5
cGV9O3kucHJvdG90eXBlLmY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ofTsKK3kucHJvdG90eXBl
LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9IktpbmQgVGVzdDogIit0aGlzLmg7bnVsbD09PXRo
aXMuY3x8KGErPXoodGhpcy5jKSk7cmV0dXJuIGF9O2Z1bmN0aW9uIHlhKGEsYil7dGhpcy5qPWEu
dG9Mb3dlckNhc2UoKTthPSIqIj09dGhpcy5qPyIqIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI7dGhpcy5jPWI/Yi50b0xvd2VyQ2FzZSgpOmF9eWEucHJvdG90eXBlLmE9ZnVuY3Rpb24o
YSl7dmFyIGI9YS5ub2RlVHlwZTtpZigxIT1iJiYyIT1iKXJldHVybiExO2I9bChhLmxvY2FsTmFt
ZSk/YS5sb2NhbE5hbWU6YS5ub2RlTmFtZTtyZXR1cm4iKiIhPXRoaXMuaiYmdGhpcy5qIT1iLnRv
TG93ZXJDYXNlKCk/ITE6IioiPT10aGlzLmM/ITA6dGhpcy5jPT0oYS5uYW1lc3BhY2VVUkk/YS5u
YW1lc3BhY2VVUkkudG9Mb3dlckNhc2UoKToiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIp
fTt5YS5wcm90b3R5cGUuZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9OworeWEucHJvdG90eXBl
LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIk5hbWUgVGVzdDogIisoImh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPT10aGlzLmM/IiI6dGhpcy5jKyI6IikrdGhpcy5qfTtmdW5jdGlvbiB6
YShhKXtzd2l0Y2goYS5ub2RlVHlwZSl7Y2FzZSAxOnJldHVybiBmYShBYSxhKTtjYXNlIDk6cmV0
dXJuIHphKGEuZG9jdW1lbnRFbGVtZW50KTtjYXNlIDExOmNhc2UgMTA6Y2FzZSA2OmNhc2UgMTI6
cmV0dXJuIEJhO2RlZmF1bHQ6cmV0dXJuIGEucGFyZW50Tm9kZT96YShhLnBhcmVudE5vZGUpOkJh
fX1mdW5jdGlvbiBCYSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIEFhKGEsYil7aWYoYS5wcmVmaXg9
PWIpcmV0dXJuIGEubmFtZXNwYWNlVVJJfHwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7
dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2RlKCJ4bWxuczoiK2IpO3JldHVybiBjJiZjLnNwZWNpZmll
ZD9jLnZhbHVlfHxudWxsOmEucGFyZW50Tm9kZSYmOSE9YS5wYXJlbnROb2RlLm5vZGVUeXBlP0Fh
KGEucGFyZW50Tm9kZSxiKTpudWxsfTtmdW5jdGlvbiBDYShhLGIpe2lmKG0oYSkpcmV0dXJuIG0o
YikmJjE9PWIubGVuZ3RoP2EuaW5kZXhPZihiLDApOi0xO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7
YysrKWlmKGMgaW4gYSYmYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9ZnVuY3Rpb24gQShhLGIp
e2Zvcih2YXIgYz1hLmxlbmd0aCxkPW0oYSk/YS5zcGxpdCgiIik6YSxlPTA7ZTxjO2UrKyllIGlu
IGQmJmIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpfWZ1bmN0aW9uIERhKGEsYil7Zm9yKHZhciBjPWEu
bGVuZ3RoLGQ9W10sZT0wLGY9bShhKT9hLnNwbGl0KCIiKTphLGc9MDtnPGM7ZysrKWlmKGcgaW4g
Zil7dmFyIGg9ZltnXTtiLmNhbGwodm9pZCAwLGgsZyxhKSYmKGRbZSsrXT1oKX1yZXR1cm4gZH1m
dW5jdGlvbiBFYShhLGIsYyl7dmFyIGQ9YztBKGEsZnVuY3Rpb24oYyxmKXtkPWIuY2FsbCh2b2lk
IDAsZCxjLGYsYSl9KTtyZXR1cm4gZH0KK2Z1bmN0aW9uIEZhKGEsYil7Zm9yKHZhciBjPWEubGVu
Z3RoLGQ9bShhKT9hLnNwbGl0KCIiKTphLGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmYi5jYWxsKHZv
aWQgMCxkW2VdLGUsYSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gR2EoYSxiKXtmb3IodmFy
IGM9YS5sZW5ndGgsZD1tKGEpP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspaWYoZSBpbiBkJiYh
Yi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gSGEoYSxi
KXthOntmb3IodmFyIGM9YS5sZW5ndGgsZD1tKGEpP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKysp
aWYoZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKSl7Yj1lO2JyZWFrIGF9Yj0tMX1yZXR1
cm4gMD5iP251bGw6bShhKT9hLmNoYXJBdChiKTphW2JdfWZ1bmN0aW9uIElhKGEpe3JldHVybiBB
cnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGFyZ3VtZW50cyl9CitmdW5jdGlvbiBKYShh
LGIsYyl7cmV0dXJuIDI+PWFyZ3VtZW50cy5sZW5ndGg/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNh
bGwoYSxiKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLGIsYyl9O2Z1bmN0aW9uIEthKCl7
cmV0dXJuIHgoImlQaG9uZSIpJiYheCgiaVBvZCIpJiYheCgiaVBhZCIpfTt2YXIgTGE9ImJhY2tn
cm91bmRDb2xvciBib3JkZXJUb3BDb2xvciBib3JkZXJSaWdodENvbG9yIGJvcmRlckJvdHRvbUNv
bG9yIGJvcmRlckxlZnRDb2xvciBjb2xvciBvdXRsaW5lQ29sb3IiLnNwbGl0KCIgIiksTWE9LyMo
WzAtOWEtZkEtRl0pKFswLTlhLWZBLUZdKShbMC05YS1mQS1GXSkvLE5hPS9eIyg/OlswLTlhLWZd
ezN9KXsxLDJ9JC9pLE9hPS9eKD86cmdiYSk/XCgoXGR7MSwzfSksXHM/KFxkezEsM30pLFxzPyhc
ZHsxLDN9KSxccz8oMHwxfDBcLlxkKilcKSQvaSxQYT0vXig/OnJnYik/XCgoMHxbMS05XVxkezAs
Mn0pLFxzPygwfFsxLTldXGR7MCwyfSksXHM/KDB8WzEtOV1cZHswLDJ9KVwpJC9pO2Z1bmN0aW9u
IFFhKCl7cmV0dXJuKHgoIkNocm9tZSIpfHx4KCJDcmlPUyIpKSYmIXgoIkVkZ2UiKX07ZnVuY3Rp
b24gUmEoYSxiKXt0aGlzLng9bChhKT9hOjA7dGhpcy55PWwoYik/YjowfVJhLnByb3RvdHlwZS50
b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIoIit0aGlzLngrIiwgIit0aGlzLnkrIikifTtSYS5w
cm90b3R5cGUuY2VpbD1mdW5jdGlvbigpe3RoaXMueD1NYXRoLmNlaWwodGhpcy54KTt0aGlzLnk9
TWF0aC5jZWlsKHRoaXMueSk7cmV0dXJuIHRoaXN9O1JhLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlv
bigpe3RoaXMueD1NYXRoLmZsb29yKHRoaXMueCk7dGhpcy55PU1hdGguZmxvb3IodGhpcy55KTty
ZXR1cm4gdGhpc307UmEucHJvdG90eXBlLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGgucm91
bmQodGhpcy54KTt0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpO3JldHVybiB0aGlzfTt2YXIgU2E9
eCgiT3BlcmEiKSxDPXgoIlRyaWRlbnQiKXx8eCgiTVNJRSIpLFRhPXgoIkVkZ2UiKSxVYT14KCJH
ZWNrbyIpJiYhKC0xIT12LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikmJiF4KCJFZGdl
IikpJiYhKHgoIlRyaWRlbnQiKXx8eCgiTVNJRSIpKSYmIXgoIkVkZ2UiKSxWYT0tMSE9di50b0xv
d2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpJiYheCgiRWRnZSIpO2Z1bmN0aW9uIFdhKCl7dmFy
IGE9ay5kb2N1bWVudDtyZXR1cm4gYT9hLmRvY3VtZW50TW9kZTp2b2lkIDB9dmFyIFhhOworYTp7
dmFyIFlhPSIiLFphPWZ1bmN0aW9uKCl7dmFyIGE9djtpZihVYSlyZXR1cm4vcnZcOihbXlwpO10r
KShcKXw7KS8uZXhlYyhhKTtpZihUYSlyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lm
KEMpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKFZh
KXJldHVybi9XZWJLaXRcLyhcUyspLy5leGVjKGEpO2lmKFNhKXJldHVybi8oPzpWZXJzaW9uKVsg
XC9dPyhcUyspLy5leGVjKGEpfSgpO1phJiYoWWE9WmE/WmFbMV06IiIpO2lmKEMpe3ZhciAkYT1X
YSgpO2lmKG51bGwhPSRhJiYkYT5wYXJzZUZsb2F0KFlhKSl7WGE9U3RyaW5nKCRhKTticmVhayBh
fX1YYT1ZYX12YXIgbGE9e307CitmdW5jdGlvbiBhYihhKXtyZXR1cm4ga2EoYSxmdW5jdGlvbigp
e2Zvcih2YXIgYj0wLGM9bWEoU3RyaW5nKFhhKSkuc3BsaXQoIi4iKSxkPW1hKFN0cmluZyhhKSku
c3BsaXQoIi4iKSxlPU1hdGgubWF4KGMubGVuZ3RoLGQubGVuZ3RoKSxmPTA7IWImJmY8ZTtmKysp
e3ZhciBnPWNbZl18fCIiLGg9ZFtmXXx8IiI7ZG97Zz0vKFxkKikoXEQqKSguKikvLmV4ZWMoZyl8
fFsiIiwiIiwiIiwiIl07aD0vKFxkKikoXEQqKSguKikvLmV4ZWMoaCl8fFsiIiwiIiwiIiwiIl07
aWYoMD09Z1swXS5sZW5ndGgmJjA9PWhbMF0ubGVuZ3RoKWJyZWFrO2I9bmEoMD09Z1sxXS5sZW5n
dGg/MDpwYXJzZUludChnWzFdLDEwKSwwPT1oWzFdLmxlbmd0aD8wOnBhcnNlSW50KGhbMV0sMTAp
KXx8bmEoMD09Z1syXS5sZW5ndGgsMD09aFsyXS5sZW5ndGgpfHxuYShnWzJdLGhbMl0pO2c9Z1sz
XTtoPWhbM119d2hpbGUoIWIpfXJldHVybiAwPD1ifSl9dmFyIGJiO3ZhciBjYj1rLmRvY3VtZW50
OworYmI9Y2ImJkM/V2EoKXx8KCJDU1MxQ29tcGF0Ij09Y2IuY29tcGF0TW9kZT9wYXJzZUludChY
YSwxMCk6NSk6dm9pZCAwO2Z1bmN0aW9uIGRiKGEsYixjLGQpe3RoaXMuYz1hO3RoaXMuYT1iO3Ro
aXMuYj1jO3RoaXMuZj1kfWRiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIo
Iit0aGlzLmMrInQsICIrdGhpcy5hKyJyLCAiK3RoaXMuYisiYiwgIit0aGlzLmYrImwpIn07ZGIu
cHJvdG90eXBlLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLmM9TWF0aC5jZWlsKHRoaXMuYyk7dGhpcy5h
PU1hdGguY2VpbCh0aGlzLmEpO3RoaXMuYj1NYXRoLmNlaWwodGhpcy5iKTt0aGlzLmY9TWF0aC5j
ZWlsKHRoaXMuZik7cmV0dXJuIHRoaXN9O2RiLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3Ro
aXMuYz1NYXRoLmZsb29yKHRoaXMuYyk7dGhpcy5hPU1hdGguZmxvb3IodGhpcy5hKTt0aGlzLmI9
TWF0aC5mbG9vcih0aGlzLmIpO3RoaXMuZj1NYXRoLmZsb29yKHRoaXMuZik7cmV0dXJuIHRoaXN9
OworZGIucHJvdG90eXBlLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy5jPU1hdGgucm91bmQodGhpcy5j
KTt0aGlzLmE9TWF0aC5yb3VuZCh0aGlzLmEpO3RoaXMuYj1NYXRoLnJvdW5kKHRoaXMuYik7dGhp
cy5mPU1hdGgucm91bmQodGhpcy5mKTtyZXR1cm4gdGhpc307dmFyIGViPXgoIkZpcmVmb3giKSxm
Yj1LYSgpfHx4KCJpUG9kIiksZ2I9eCgiaVBhZCIpLGhiPXgoIkFuZHJvaWQiKSYmIShRYSgpfHx4
KCJGaXJlZm94Iil8fHgoIk9wZXJhIil8fHgoIlNpbGsiKSksaWI9UWEoKSxqYj14KCJTYWZhcmki
KSYmIShRYSgpfHx4KCJDb2FzdCIpfHx4KCJPcGVyYSIpfHx4KCJFZGdlIil8fHgoIlNpbGsiKXx8
eCgiQW5kcm9pZCIpKSYmIShLYSgpfHx4KCJpUGFkIil8fHgoImlQb2QiKSk7dmFyIEQ9QyYmISg5
PD1OdW1iZXIoYmIpKSxrYj1DJiYhKDg8PU51bWJlcihiYikpO2Z1bmN0aW9uIEUoYSxiLGMsZCl7
dGhpcy5hPWE7dGhpcy5iPWI7dGhpcy53aWR0aD1jO3RoaXMuaGVpZ2h0PWR9RS5wcm90b3R5cGUu
dG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iKCIrdGhpcy5hKyIsICIrdGhpcy5iKyIgLSAiK3Ro
aXMud2lkdGgrIncgeCAiK3RoaXMuaGVpZ2h0KyJoKSJ9O0UucHJvdG90eXBlLmNlaWw9ZnVuY3Rp
b24oKXt0aGlzLmE9TWF0aC5jZWlsKHRoaXMuYSk7dGhpcy5iPU1hdGguY2VpbCh0aGlzLmIpO3Ro
aXMud2lkdGg9TWF0aC5jZWlsKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguY2VpbCh0aGlz
LmhlaWdodCk7cmV0dXJuIHRoaXN9O0UucHJvdG90eXBlLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy5h
PU1hdGguZmxvb3IodGhpcy5hKTt0aGlzLmI9TWF0aC5mbG9vcih0aGlzLmIpO3RoaXMud2lkdGg9
TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0
KTtyZXR1cm4gdGhpc307CitFLnByb3RvdHlwZS5yb3VuZD1mdW5jdGlvbigpe3RoaXMuYT1NYXRo
LnJvdW5kKHRoaXMuYSk7dGhpcy5iPU1hdGgucm91bmQodGhpcy5iKTt0aGlzLndpZHRoPU1hdGgu
cm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0
dXJuIHRoaXN9O2Z1bmN0aW9uIGxiKGEpe3JldHVybihhPWEuZXhlYyh2KSk/YVsxXToiIn0oZnVu
Y3Rpb24oKXtpZihlYilyZXR1cm4gbGIoL0ZpcmVmb3hcLyhbMC05Ll0rKS8pO2lmKEN8fFRhfHxT
YSlyZXR1cm4gWGE7aWYoaWIpcmV0dXJuIEthKCl8fHgoImlQYWQiKXx8eCgiaVBvZCIpP2xiKC9D
cmlPU1wvKFswLTkuXSspLyk6bGIoL0Nocm9tZVwvKFswLTkuXSspLyk7aWYoamImJiEoS2EoKXx8
eCgiaVBhZCIpfHx4KCJpUG9kIikpKXJldHVybiBsYigvVmVyc2lvblwvKFswLTkuXSspLyk7aWYo
ZmJ8fGdiKXt2YXIgYT0vVmVyc2lvblwvKFxTKykuKk1vYmlsZVwvKFxTKykvLmV4ZWModik7aWYo
YSlyZXR1cm4gYVsxXSsiLiIrYVsyXX1lbHNlIGlmKGhiKXJldHVybihhPWxiKC9BbmRyb2lkXHMr
KFswLTkuXSspLykpP2E6bGIoL1ZlcnNpb25cLyhbMC05Ll0rKS8pO3JldHVybiIifSkoKTtmdW5j
dGlvbiBtYihhLGIsYyxkKXt0aGlzLmE9YTt0aGlzLm5vZGVOYW1lPWM7dGhpcy5ub2RlVmFsdWU9
ZDt0aGlzLm5vZGVUeXBlPTI7dGhpcy5wYXJlbnROb2RlPXRoaXMub3duZXJFbGVtZW50PWJ9ZnVu
Y3Rpb24gbmIoYSxiKXt2YXIgYz1rYiYmImhyZWYiPT1iLm5vZGVOYW1lP2EuZ2V0QXR0cmlidXRl
KGIubm9kZU5hbWUsMik6Yi5ub2RlVmFsdWU7cmV0dXJuIG5ldyBtYihiLGEsYi5ub2RlTmFtZSxj
KX07dmFyIG9iLHBiPWZ1bmN0aW9uKCl7aWYoIVVhKXJldHVybiExO3ZhciBhPWsuQ29tcG9uZW50
cztpZighYSlyZXR1cm4hMTt0cnl7aWYoIWEuY2xhc3NlcylyZXR1cm4hMX1jYXRjaChlKXtyZXR1
cm4hMX12YXIgYj1hLmNsYXNzZXMsYT1hLmludGVyZmFjZXMsYz1iWyJAbW96aWxsYS5vcmcveHBj
b20vdmVyc2lvbi1jb21wYXJhdG9yOzEiXS5nZXRTZXJ2aWNlKGEubnNJVmVyc2lvbkNvbXBhcmF0
b3IpLGQ9YlsiQG1vemlsbGEub3JnL3hyZS9hcHAtaW5mbzsxIl0uZ2V0U2VydmljZShhLm5zSVhV
TEFwcEluZm8pLnZlcnNpb247b2I9ZnVuY3Rpb24oYSl7Yy5jb21wYXJlKGQsIiIrYSl9O3JldHVy
biEwfSgpLHFiPUMmJiEoOTw9TnVtYmVyKGJiKSk7aGImJnBiJiZvYigyLjMpO2hiJiZwYiYmb2Io
NCk7amImJnBiJiZvYig2KTtmdW5jdGlvbiByYihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihh
LmNvbnRhaW5zJiYxPT1iLm5vZGVUeXBlKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKCJ1
bmRlZmluZWQiIT10eXBlb2YgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbilyZXR1cm4gYT09Ynx8
ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFy
ZW50Tm9kZTtyZXR1cm4gYj09YX0KK2Z1bmN0aW9uIHNiKGEsYil7aWYoYT09YilyZXR1cm4gMDtp
ZihhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXJldHVybiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGIpJjI/MTotMTtpZihDJiYhKDk8PU51bWJlcihiYikpKXtpZig5PT1hLm5vZGVUeXBlKXJl
dHVybi0xO2lmKDk9PWIubm9kZVR5cGUpcmV0dXJuIDF9aWYoInNvdXJjZUluZGV4ImluIGF8fGEu
cGFyZW50Tm9kZSYmInNvdXJjZUluZGV4ImluIGEucGFyZW50Tm9kZSl7dmFyIGM9MT09YS5ub2Rl
VHlwZSxkPTE9PWIubm9kZVR5cGU7aWYoYyYmZClyZXR1cm4gYS5zb3VyY2VJbmRleC1iLnNvdXJj
ZUluZGV4O3ZhciBlPWEucGFyZW50Tm9kZSxmPWIucGFyZW50Tm9kZTtyZXR1cm4gZT09Zj90Yihh
LGIpOiFjJiZyYihlLGIpPy0xKnViKGEsYik6IWQmJnJiKGYsYSk/dWIoYixhKTooYz9hLnNvdXJj
ZUluZGV4OmUuc291cmNlSW5kZXgpLShkP2Iuc291cmNlSW5kZXg6Zi5zb3VyY2VJbmRleCl9ZD1G
KGEpO2M9ZC5jcmVhdGVSYW5nZSgpOworYy5zZWxlY3ROb2RlKGEpO2MuY29sbGFwc2UoITApO2E9
ZC5jcmVhdGVSYW5nZSgpO2Euc2VsZWN0Tm9kZShiKTthLmNvbGxhcHNlKCEwKTtyZXR1cm4gYy5j
b21wYXJlQm91bmRhcnlQb2ludHMoay5SYW5nZS5TVEFSVF9UT19FTkQsYSl9ZnVuY3Rpb24gdWIo
YSxiKXt2YXIgYz1hLnBhcmVudE5vZGU7aWYoYz09YilyZXR1cm4tMTtmb3IoO2IucGFyZW50Tm9k
ZSE9YzspYj1iLnBhcmVudE5vZGU7cmV0dXJuIHRiKGIsYSl9ZnVuY3Rpb24gdGIoYSxiKXtmb3Io
O2I9Yi5wcmV2aW91c1NpYmxpbmc7KWlmKGI9PWEpcmV0dXJuLTE7cmV0dXJuIDF9ZnVuY3Rpb24g
RihhKXtyZXR1cm4gOT09YS5ub2RlVHlwZT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH1m
dW5jdGlvbiB2YihhLGIpe2EmJihhPWEucGFyZW50Tm9kZSk7Zm9yKHZhciBjPTA7YTspe2lmKGIo
YSkpcmV0dXJuIGE7YT1hLnBhcmVudE5vZGU7YysrfXJldHVybiBudWxsfQorZnVuY3Rpb24gd2Io
YSl7dGhpcy5hPWF8fGsuZG9jdW1lbnR8fGRvY3VtZW50fXdiLnByb3RvdHlwZS5nZXRFbGVtZW50
c0J5VGFnTmFtZT1mdW5jdGlvbihhLGIpe3JldHVybihifHx0aGlzLmEpLmdldEVsZW1lbnRzQnlU
YWdOYW1lKFN0cmluZyhhKSl9O2Z1bmN0aW9uIEcoYSl7dmFyIGI9bnVsbCxjPWEubm9kZVR5cGU7
MT09YyYmKGI9YS50ZXh0Q29udGVudCxiPXZvaWQgMD09Ynx8bnVsbD09Yj9hLmlubmVyVGV4dDpi
LGI9dm9pZCAwPT1ifHxudWxsPT1iPyIiOmIpO2lmKCJzdHJpbmciIT10eXBlb2YgYilpZihEJiYi
dGl0bGUiPT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJjE9PWMpYj1hLnRleHQ7ZWxzZSBpZig5
PT1jfHwxPT1jKXthPTk9PWM/YS5kb2N1bWVudEVsZW1lbnQ6YS5maXJzdENoaWxkO2Zvcih2YXIg
Yz0wLGQ9W10sYj0iIjthOyl7ZG8gMSE9YS5ub2RlVHlwZSYmKGIrPWEubm9kZVZhbHVlKSxEJiYi
dGl0bGUiPT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJihiKz1hLnRleHQpLGRbYysrXT1hO3do
aWxlKGE9YS5maXJzdENoaWxkKTtmb3IoO2MmJiEoYT1kWy0tY10ubmV4dFNpYmxpbmcpOyk7fX1l
bHNlIGI9YS5ub2RlVmFsdWU7cmV0dXJuIiIrYn0KK2Z1bmN0aW9uIEgoYSxiLGMpe2lmKG51bGw9
PT1iKXJldHVybiEwO3RyeXtpZighYS5nZXRBdHRyaWJ1dGUpcmV0dXJuITF9Y2F0Y2goZCl7cmV0
dXJuITF9a2ImJiJjbGFzcyI9PWImJihiPSJjbGFzc05hbWUiKTtyZXR1cm4gbnVsbD09Yz8hIWEu
Z2V0QXR0cmlidXRlKGIpOmEuZ2V0QXR0cmlidXRlKGIsMik9PWN9ZnVuY3Rpb24geGIoYSxiLGMs
ZCxlKXtyZXR1cm4oRD95Yjp6YikuY2FsbChudWxsLGEsYixtKGMpP2M6bnVsbCxtKGQpP2Q6bnVs
bCxlfHxuZXcgSSl9CitmdW5jdGlvbiB5YihhLGIsYyxkLGUpe2lmKGEgaW5zdGFuY2VvZiB5YXx8
OD09YS5ifHxjJiZudWxsPT09YS5iKXt2YXIgZj1iLmFsbDtpZighZilyZXR1cm4gZTt2YXIgZz1B
YihhKTtpZigiKiIhPWcmJihmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZyksIWYpKXJldHVybiBl
O2lmKGMpe3ZhciBoPVtdO2ZvcihhPTA7Yj1mW2ErK107KUgoYixjLGQpJiZoLnB1c2goYik7Zj1o
fWZvcihhPTA7Yj1mW2ErK107KSIqIj09ZyYmIiEiPT1iLnRhZ05hbWV8fEooZSxiKTtyZXR1cm4g
ZX1CYihhLGIsYyxkLGUpO3JldHVybiBlfQorZnVuY3Rpb24gemIoYSxiLGMsZCxlKXtiLmdldEVs
ZW1lbnRzQnlOYW1lJiZkJiYibmFtZSI9PWMmJiFDPyhiPWIuZ2V0RWxlbWVudHNCeU5hbWUoZCks
QShiLGZ1bmN0aW9uKGIpe2EuYShiKSYmSihlLGIpfSkpOmIuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSYmZCYmImNsYXNzIj09Yz8oYj1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZCksQShiLGZ1bmN0
aW9uKGIpe2IuY2xhc3NOYW1lPT1kJiZhLmEoYikmJkooZSxiKX0pKTphIGluc3RhbmNlb2YgeT9C
YihhLGIsYyxkLGUpOmIuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJihiPWIuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoYS5mKCkpLEEoYixmdW5jdGlvbihhKXtIKGEsYyxkKSYmSihlLGEpfSkpO3JldHVybiBl
fQorZnVuY3Rpb24gQ2IoYSxiLGMsZCxlKXt2YXIgZjtpZigoYSBpbnN0YW5jZW9mIHlhfHw4PT1h
LmJ8fGMmJm51bGw9PT1hLmIpJiYoZj1iLmNoaWxkTm9kZXMpKXt2YXIgZz1BYihhKTtpZigiKiIh
PWcmJihmPURhKGYsZnVuY3Rpb24oYSl7cmV0dXJuIGEudGFnTmFtZSYmYS50YWdOYW1lLnRvTG93
ZXJDYXNlKCk9PWd9KSwhZikpcmV0dXJuIGU7YyYmKGY9RGEoZixmdW5jdGlvbihhKXtyZXR1cm4g
SChhLGMsZCl9KSk7QShmLGZ1bmN0aW9uKGEpeyIqIj09ZyYmKCIhIj09YS50YWdOYW1lfHwiKiI9
PWcmJjEhPWEubm9kZVR5cGUpfHxKKGUsYSl9KTtyZXR1cm4gZX1yZXR1cm4gRGIoYSxiLGMsZCxl
KX1mdW5jdGlvbiBEYihhLGIsYyxkLGUpe2ZvcihiPWIuZmlyc3RDaGlsZDtiO2I9Yi5uZXh0U2li
bGluZylIKGIsYyxkKSYmYS5hKGIpJiZKKGUsYik7cmV0dXJuIGV9CitmdW5jdGlvbiBCYihhLGIs
YyxkLGUpe2ZvcihiPWIuZmlyc3RDaGlsZDtiO2I9Yi5uZXh0U2libGluZylIKGIsYyxkKSYmYS5h
KGIpJiZKKGUsYiksQmIoYSxiLGMsZCxlKX1mdW5jdGlvbiBBYihhKXtpZihhIGluc3RhbmNlb2Yg
eSl7aWYoOD09YS5iKXJldHVybiIhIjtpZihudWxsPT09YS5iKXJldHVybiIqIn1yZXR1cm4gYS5m
KCl9O2Z1bmN0aW9uIEsoYSxiKXtiJiYic3RyaW5nIiE9PXR5cGVvZiBiJiYoYj1iLnRvU3RyaW5n
KCkpO3JldHVybiEhYSYmMT09YS5ub2RlVHlwZSYmKCFifHxhLnRhZ05hbWUudG9VcHBlckNhc2Uo
KT09Yil9O2Z1bmN0aW9uIEkoKXt0aGlzLmI9dGhpcy5hPW51bGw7dGhpcy5sPTB9ZnVuY3Rpb24g
RWIoYSl7dGhpcy5ub2RlPWE7dGhpcy5hPXRoaXMuYj1udWxsfWZ1bmN0aW9uIEZiKGEsYil7aWYo
IWEuYSlyZXR1cm4gYjtpZighYi5hKXJldHVybiBhO3ZhciBjPWEuYTtiPWIuYTtmb3IodmFyIGQ9
bnVsbCxlLGY9MDtjJiZiOyl7ZT1jLm5vZGU7dmFyIGc9Yi5ub2RlO2U9PWd8fGUgaW5zdGFuY2Vv
ZiBtYiYmZyBpbnN0YW5jZW9mIG1iJiZlLmE9PWcuYT8oZT1jLGM9Yy5hLGI9Yi5hKTowPHNiKGMu
bm9kZSxiLm5vZGUpPyhlPWIsYj1iLmEpOihlPWMsYz1jLmEpOyhlLmI9ZCk/ZC5hPWU6YS5hPWU7
ZD1lO2YrK31mb3IoZT1jfHxiO2U7KWUuYj1kLGQ9ZC5hPWUsZisrLGU9ZS5hO2EuYj1kO2EubD1m
O3JldHVybiBhfWZ1bmN0aW9uIEdiKGEsYil7Yj1uZXcgRWIoYik7Yi5hPWEuYTthLmI/YS5hLmI9
YjphLmE9YS5iPWI7YS5hPWI7YS5sKyt9CitmdW5jdGlvbiBKKGEsYil7Yj1uZXcgRWIoYik7Yi5i
PWEuYjthLmE/YS5iLmE9YjphLmE9YS5iPWI7YS5iPWI7YS5sKyt9ZnVuY3Rpb24gSGIoYSl7cmV0
dXJuKGE9YS5hKT9hLm5vZGU6bnVsbH1mdW5jdGlvbiBJYihhKXtyZXR1cm4oYT1IYihhKSk/Ryhh
KToiIn1mdW5jdGlvbiBMKGEsYil7cmV0dXJuIG5ldyBKYihhLCEhYil9ZnVuY3Rpb24gSmIoYSxi
KXt0aGlzLmY9YTt0aGlzLmI9KHRoaXMucz1iKT9hLmI6YS5hO3RoaXMuYT1udWxsfWZ1bmN0aW9u
IE4oYSl7dmFyIGI9YS5iO2lmKGIpe3ZhciBjPWEuYT1iO2EuYj1hLnM/Yi5iOmIuYTtyZXR1cm4g
Yy5ub2RlfXJldHVybiBudWxsfTtmdW5jdGlvbiBPKGEpe3RoaXMuaT1hO3RoaXMuYj10aGlzLmc9
ITE7dGhpcy5mPW51bGx9ZnVuY3Rpb24geihhKXtyZXR1cm4iXG4gICIrYS50b1N0cmluZygpLnNw
bGl0KCJcbiIpLmpvaW4oIlxuICAiKX1mdW5jdGlvbiBLYihhLGIpe2EuZz1ifWZ1bmN0aW9uIExi
KGEsYil7YS5iPWJ9ZnVuY3Rpb24gUShhLGIpe2E9YS5hKGIpO3JldHVybiBhIGluc3RhbmNlb2Yg
ST8rSWIoYSk6K2F9ZnVuY3Rpb24gUihhLGIpe2E9YS5hKGIpO3JldHVybiBhIGluc3RhbmNlb2Yg
ST9JYihhKToiIithfWZ1bmN0aW9uIE1iKGEsYil7YT1hLmEoYik7cmV0dXJuIGEgaW5zdGFuY2Vv
ZiBJPyEhYS5sOiEhYX07ZnVuY3Rpb24gTmIoYSxiLGMpe08uY2FsbCh0aGlzLGEuaSk7dGhpcy5j
PWE7dGhpcy5oPWI7dGhpcy5vPWM7dGhpcy5nPWIuZ3x8Yy5nO3RoaXMuYj1iLmJ8fGMuYjt0aGlz
LmM9PU9iJiYoYy5ifHxjLmd8fDQ9PWMuaXx8MD09Yy5pfHwhYi5mP2IuYnx8Yi5nfHw0PT1iLml8
fDA9PWIuaXx8IWMuZnx8KHRoaXMuZj17bmFtZTpjLmYubmFtZSx1OmJ9KTp0aGlzLmY9e25hbWU6
Yi5mLm5hbWUsdTpjfSl9cChOYixPKTsKK2Z1bmN0aW9uIFBiKGEsYixjLGQsZSl7Yj1iLmEoZCk7
Yz1jLmEoZCk7dmFyIGY7aWYoYiBpbnN0YW5jZW9mIEkmJmMgaW5zdGFuY2VvZiBJKXtiPUwoYik7
Zm9yKGQ9TihiKTtkO2Q9TihiKSlmb3IoZT1MKGMpLGY9TihlKTtmO2Y9TihlKSlpZihhKEcoZCks
RyhmKSkpcmV0dXJuITA7cmV0dXJuITF9aWYoYiBpbnN0YW5jZW9mIEl8fGMgaW5zdGFuY2VvZiBJ
KXtiIGluc3RhbmNlb2YgST8oZT1iLGQ9Yyk6KGU9YyxkPWIpO2Y9TChlKTtmb3IodmFyIGc9dHlw
ZW9mIGQsaD1OKGYpO2g7aD1OKGYpKXtzd2l0Y2goZyl7Y2FzZSAibnVtYmVyIjpoPStHKGgpO2Jy
ZWFrO2Nhc2UgImJvb2xlYW4iOmg9ISFHKGgpO2JyZWFrO2Nhc2UgInN0cmluZyI6aD1HKGgpO2Jy
ZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIklsbGVnYWwgcHJpbWl0aXZlIHR5cGUgZm9yIGNvbXBh
cmlzb24uIik7fWlmKGU9PWImJmEoaCxkKXx8ZT09YyYmYShkLGgpKXJldHVybiEwfXJldHVybiEx
fXJldHVybiBlPyJib29sZWFuIj09Cit0eXBlb2YgYnx8ImJvb2xlYW4iPT10eXBlb2YgYz9hKCEh
YiwhIWMpOiJudW1iZXIiPT10eXBlb2YgYnx8Im51bWJlciI9PXR5cGVvZiBjP2EoK2IsK2MpOmEo
YixjKTphKCtiLCtjKX1OYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5jLm0o
dGhpcy5oLHRoaXMubyxhKX07TmIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9
IkJpbmFyeSBFeHByZXNzaW9uOiAiK3RoaXMuYyxhPWEreih0aGlzLmgpO3JldHVybiBhKz16KHRo
aXMubyl9O2Z1bmN0aW9uIFFiKGEsYixjLGQpe3RoaXMuST1hO3RoaXMuRD1iO3RoaXMuaT1jO3Ro
aXMubT1kfVFiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkl9O3Zh
ciBSYj17fTsKK2Z1bmN0aW9uIFMoYSxiLGMsZCl7aWYoUmIuaGFzT3duUHJvcGVydHkoYSkpdGhy
b3cgRXJyb3IoIkJpbmFyeSBvcGVyYXRvciBhbHJlYWR5IGNyZWF0ZWQ6ICIrYSk7YT1uZXcgUWIo
YSxiLGMsZCk7cmV0dXJuIFJiW2EudG9TdHJpbmcoKV09YX1TKCJkaXYiLDYsMSxmdW5jdGlvbihh
LGIsYyl7cmV0dXJuIFEoYSxjKS9RKGIsYyl9KTtTKCJtb2QiLDYsMSxmdW5jdGlvbihhLGIsYyl7
cmV0dXJuIFEoYSxjKSVRKGIsYyl9KTtTKCIqIiw2LDEsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBR
KGEsYykqUShiLGMpfSk7UygiKyIsNSwxLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUShhLGMpK1Eo
YixjKX0pO1MoIi0iLDUsMSxmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxjKS1RKGIsYyl9KTtT
KCI8Iiw0LDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBQYihmdW5jdGlvbihhLGIpe3JldHVybiBh
PGJ9LGEsYixjKX0pOworUygiPiIsNCwyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUGIoZnVuY3Rp
b24oYSxiKXtyZXR1cm4gYT5ifSxhLGIsYyl9KTtTKCI8PSIsNCwyLGZ1bmN0aW9uKGEsYixjKXty
ZXR1cm4gUGIoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYTw9Yn0sYSxiLGMpfSk7UygiPj0iLDQsMixm
dW5jdGlvbihhLGIsYyl7cmV0dXJuIFBiKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGE+PWJ9LGEsYixj
KX0pO3ZhciBPYj1TKCI9IiwzLDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBQYihmdW5jdGlvbihh
LGIpe3JldHVybiBhPT1ifSxhLGIsYywhMCl9KTtTKCIhPSIsMywyLGZ1bmN0aW9uKGEsYixjKXty
ZXR1cm4gUGIoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9Yn0sYSxiLGMsITApfSk7UygiYW5kIiwy
LDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBNYihhLGMpJiZNYihiLGMpfSk7Uygib3IiLDEsMixm
dW5jdGlvbihhLGIsYyl7cmV0dXJuIE1iKGEsYyl8fE1iKGIsYyl9KTtmdW5jdGlvbiBTYihhLGIp
e2lmKGIuYS5sZW5ndGgmJjQhPWEuaSl0aHJvdyBFcnJvcigiUHJpbWFyeSBleHByZXNzaW9uIG11
c3QgZXZhbHVhdGUgdG8gbm9kZXNldCBpZiBmaWx0ZXIgaGFzIHByZWRpY2F0ZShzKS4iKTtPLmNh
bGwodGhpcyxhLmkpO3RoaXMuYz1hO3RoaXMuaD1iO3RoaXMuZz1hLmc7dGhpcy5iPWEuYn1wKFNi
LE8pO1NiLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe2E9dGhpcy5jLmEoYSk7cmV0dXJuIFRiKHRo
aXMuaCxhKX07U2IucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9IkZpbHRlcjoi
K3oodGhpcy5jKTtyZXR1cm4gYSs9eih0aGlzLmgpfTtmdW5jdGlvbiBVYihhLGIpe2lmKGIubGVu
Z3RoPGEuQyl0aHJvdyBFcnJvcigiRnVuY3Rpb24gIithLmorIiBleHBlY3RzIGF0IGxlYXN0Iith
LkMrIiBhcmd1bWVudHMsICIrYi5sZW5ndGgrIiBnaXZlbiIpO2lmKG51bGwhPT1hLkEmJmIubGVu
Z3RoPmEuQSl0aHJvdyBFcnJvcigiRnVuY3Rpb24gIithLmorIiBleHBlY3RzIGF0IG1vc3QgIith
LkErIiBhcmd1bWVudHMsICIrYi5sZW5ndGgrIiBnaXZlbiIpO2EuSCYmQShiLGZ1bmN0aW9uKGIs
ZCl7aWYoNCE9Yi5pKXRocm93IEVycm9yKCJBcmd1bWVudCAiK2QrIiB0byBmdW5jdGlvbiAiK2Eu
aisiIGlzIG5vdCBvZiB0eXBlIE5vZGVzZXQ6ICIrYik7fSk7Ty5jYWxsKHRoaXMsYS5pKTt0aGlz
LnY9YTt0aGlzLmM9YjtLYih0aGlzLGEuZ3x8RmEoYixmdW5jdGlvbihhKXtyZXR1cm4gYS5nfSkp
O0xiKHRoaXMsYS5HJiYhYi5sZW5ndGh8fGEuRiYmISFiLmxlbmd0aHx8RmEoYixmdW5jdGlvbihh
KXtyZXR1cm4gYS5ifSkpfQorcChVYixPKTtVYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXtyZXR1
cm4gdGhpcy52Lm0uYXBwbHkobnVsbCxJYShhLHRoaXMuYykpfTtVYi5wcm90b3R5cGUudG9TdHJp
bmc9ZnVuY3Rpb24oKXt2YXIgYT0iRnVuY3Rpb246ICIrdGhpcy52O2lmKHRoaXMuYy5sZW5ndGgp
dmFyIGI9RWEodGhpcy5jLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEreihiKX0sIkFyZ3VtZW50czoi
KSxhPWEreihiKTtyZXR1cm4gYX07ZnVuY3Rpb24gVmIoYSxiLGMsZCxlLGYsZyxoLHIpe3RoaXMu
aj1hO3RoaXMuaT1iO3RoaXMuZz1jO3RoaXMuRz1kO3RoaXMuRj1lO3RoaXMubT1mO3RoaXMuQz1n
O3RoaXMuQT1sKGgpP2g6Zzt0aGlzLkg9ISFyfVZiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlv
bigpe3JldHVybiB0aGlzLmp9O3ZhciBXYj17fTsKK2Z1bmN0aW9uIFQoYSxiLGMsZCxlLGYsZyxo
KXtpZihXYi5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiRnVuY3Rpb24gYWxyZWFkeSBj
cmVhdGVkOiAiK2ErIi4iKTtXYlthXT1uZXcgVmIoYSxiLGMsZCwhMSxlLGYsZyxoKX1UKCJib29s
ZWFuIiwyLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIE1iKGIsYSl9LDEpO1QoImNlaWxpbmci
LDEsITEsITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gTWF0aC5jZWlsKFEoYixhKSl9LDEpO1QoImNv
bmNhdCIsMywhMSwhMSxmdW5jdGlvbihhLGIpe3JldHVybiBFYShKYShhcmd1bWVudHMsMSksZnVu
Y3Rpb24oYixkKXtyZXR1cm4gYitSKGQsYSl9LCIiKX0sMixudWxsKTtUKCJjb250YWlucyIsMiwh
MSwhMSxmdW5jdGlvbihhLGIsYyl7Yj1SKGIsYSk7YT1SKGMsYSk7cmV0dXJuLTEhPWIuaW5kZXhP
ZihhKX0sMik7VCgiY291bnQiLDEsITEsITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5hKGEpLmx9
LDEsMSwhMCk7CitUKCJmYWxzZSIsMiwhMSwhMSxmdW5jdGlvbigpe3JldHVybiExfSwwKTtUKCJm
bG9vciIsMSwhMSwhMSxmdW5jdGlvbihhLGIpe3JldHVybiBNYXRoLmZsb29yKFEoYixhKSl9LDEp
O1QoImlkIiw0LCExLCExLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXtpZihEKXt2YXIgYj1l
LmFsbFthXTtpZihiKXtpZihiLm5vZGVUeXBlJiZhPT1iLmlkKXJldHVybiBiO2lmKGIubGVuZ3Ro
KXJldHVybiBIYShiLGZ1bmN0aW9uKGIpe3JldHVybiBhPT1iLmlkfSl9cmV0dXJuIG51bGx9cmV0
dXJuIGUuZ2V0RWxlbWVudEJ5SWQoYSl9dmFyIGQ9YS5hLGU9OT09ZC5ub2RlVHlwZT9kOmQub3du
ZXJEb2N1bWVudDthPVIoYixhKS5zcGxpdCgvXHMrLyk7dmFyIGY9W107QShhLGZ1bmN0aW9uKGEp
e2E9YyhhKTshYXx8MDw9Q2EoZixhKXx8Zi5wdXNoKGEpfSk7Zi5zb3J0KHNiKTt2YXIgZz1uZXcg
STtBKGYsZnVuY3Rpb24oYSl7SihnLGEpfSk7cmV0dXJuIGd9LDEpOworVCgibGFuZyIsMiwhMSwh
MSxmdW5jdGlvbigpe3JldHVybiExfSwxKTtUKCJsYXN0IiwxLCEwLCExLGZ1bmN0aW9uKGEpe2lm
KDEhPWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgRXJyb3IoIkZ1bmN0aW9uIGxhc3QgZXhwZWN0cyAo
KSIpO3JldHVybiBhLmZ9LDApO1QoImxvY2FsLW5hbWUiLDMsITEsITAsZnVuY3Rpb24oYSxiKXty
ZXR1cm4oYT1iP0hiKGIuYShhKSk6YS5hKT9hLmxvY2FsTmFtZXx8YS5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpOiIifSwwLDEsITApO1QoIm5hbWUiLDMsITEsITAsZnVuY3Rpb24oYSxiKXtyZXR1cm4o
YT1iP0hiKGIuYShhKSk6YS5hKT9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk6IiJ9LDAsMSwhMCk7
VCgibmFtZXNwYWNlLXVyaSIsMywhMCwhMSxmdW5jdGlvbigpe3JldHVybiIifSwwLDEsITApOwor
VCgibm9ybWFsaXplLXNwYWNlIiwzLCExLCEwLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGI/UihiLGEp
OkcoYS5hKSkucmVwbGFjZSgvW1xzXHhhMF0rL2csIiAiKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywi
Iil9LDAsMSk7VCgibm90IiwyLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIU1iKGIsYSl9LDEp
O1QoIm51bWJlciIsMSwhMSwhMCxmdW5jdGlvbihhLGIpe3JldHVybiBiP1EoYixhKTorRyhhLmEp
fSwwLDEpO1QoInBvc2l0aW9uIiwxLCEwLCExLGZ1bmN0aW9uKGEpe3JldHVybiBhLmJ9LDApO1Qo
InJvdW5kIiwxLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIE1hdGgucm91bmQoUShiLGEpKX0s
MSk7VCgic3RhcnRzLXdpdGgiLDIsITEsITEsZnVuY3Rpb24oYSxiLGMpe2I9UihiLGEpO2E9Uihj
LGEpO3JldHVybiFiLmxhc3RJbmRleE9mKGEsMCl9LDIpO1QoInN0cmluZyIsMywhMSwhMCxmdW5j
dGlvbihhLGIpe3JldHVybiBiP1IoYixhKTpHKGEuYSl9LDAsMSk7CitUKCJzdHJpbmctbGVuZ3Ro
IiwxLCExLCEwLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGI/UihiLGEpOkcoYS5hKSkubGVuZ3RofSww
LDEpO1QoInN1YnN0cmluZyIsMywhMSwhMSxmdW5jdGlvbihhLGIsYyxkKXtjPVEoYyxhKTtpZihp
c05hTihjKXx8SW5maW5pdHk9PWN8fC1JbmZpbml0eT09YylyZXR1cm4iIjtkPWQ/UShkLGEpOklu
ZmluaXR5O2lmKGlzTmFOKGQpfHwtSW5maW5pdHk9PT1kKXJldHVybiIiO2M9TWF0aC5yb3VuZChj
KS0xO3ZhciBlPU1hdGgubWF4KGMsMCk7YT1SKGIsYSk7cmV0dXJuIEluZmluaXR5PT1kP2Euc3Vi
c3RyaW5nKGUpOmEuc3Vic3RyaW5nKGUsYytNYXRoLnJvdW5kKGQpKX0sMiwzKTtUKCJzdWJzdHJp
bmctYWZ0ZXIiLDMsITEsITEsZnVuY3Rpb24oYSxiLGMpe2I9UihiLGEpO2E9UihjLGEpO2M9Yi5p
bmRleE9mKGEpO3JldHVybi0xPT1jPyIiOmIuc3Vic3RyaW5nKGMrYS5sZW5ndGgpfSwyKTsKK1Qo
InN1YnN0cmluZy1iZWZvcmUiLDMsITEsITEsZnVuY3Rpb24oYSxiLGMpe2I9UihiLGEpO2E9Uihj
LGEpO2E9Yi5pbmRleE9mKGEpO3JldHVybi0xPT1hPyIiOmIuc3Vic3RyaW5nKDAsYSl9LDIpO1Qo
InN1bSIsMSwhMSwhMSxmdW5jdGlvbihhLGIpe2E9TChiLmEoYSkpO2I9MDtmb3IodmFyIGM9Tihh
KTtjO2M9TihhKSliKz0rRyhjKTtyZXR1cm4gYn0sMSwxLCEwKTtUKCJ0cmFuc2xhdGUiLDMsITEs
ITEsZnVuY3Rpb24oYSxiLGMsZCl7Yj1SKGIsYSk7Yz1SKGMsYSk7dmFyIGU9UihkLGEpO2Q9e307
Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspYT1jLmNoYXJBdChmKSxhIGluIGR8fChkW2FdPWUu
Y2hhckF0KGYpKTtjPSIiO2ZvcihmPTA7ZjxiLmxlbmd0aDtmKyspYT1iLmNoYXJBdChmKSxjKz1h
IGluIGQ/ZFthXTphO3JldHVybiBjfSwzKTtUKCJ0cnVlIiwyLCExLCExLGZ1bmN0aW9uKCl7cmV0
dXJuITB9LDApO2Z1bmN0aW9uIFhiKGEpe08uY2FsbCh0aGlzLDMpO3RoaXMuYz1hLnN1YnN0cmlu
ZygxLGEubGVuZ3RoLTEpfXAoWGIsTyk7WGIucHJvdG90eXBlLmE9ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5jfTtYYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iTGl0ZXJhbDog
Iit0aGlzLmN9O2Z1bmN0aW9uIFliKGEpe08uY2FsbCh0aGlzLDEpO3RoaXMuYz1hfXAoWWIsTyk7
WWIucHJvdG90eXBlLmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfTtZYi5wcm90b3R5cGUudG9T
dHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iTnVtYmVyOiAiK3RoaXMuY307ZnVuY3Rpb24gWmIoYSxi
KXtPLmNhbGwodGhpcyxhLmkpO3RoaXMuaD1hO3RoaXMuYz1iO3RoaXMuZz1hLmc7dGhpcy5iPWEu
YjsxPT10aGlzLmMubGVuZ3RoJiYoYT10aGlzLmNbMF0sYS53fHxhLmMhPSRifHwoYT1hLm8sIioi
IT1hLmYoKSYmKHRoaXMuZj17bmFtZTphLmYoKSx1Om51bGx9KSkpfXAoWmIsTyk7ZnVuY3Rpb24g
YWMoKXtPLmNhbGwodGhpcyw0KX1wKGFjLE8pO2FjLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3Zh
ciBiPW5ldyBJO2E9YS5hOzk9PWEubm9kZVR5cGU/SihiLGEpOkooYixhLm93bmVyRG9jdW1lbnQp
O3JldHVybiBifTthYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iUm9vdCBI
ZWxwZXIgRXhwcmVzc2lvbiJ9O2Z1bmN0aW9uIGJjKCl7Ty5jYWxsKHRoaXMsNCl9cChiYyxPKTti
Yy5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgSTtKKGIsYS5hKTtyZXR1cm4gYn07
YmMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNvbnRleHQgSGVscGVyIEV4
cHJlc3Npb24ifTsKK2Z1bmN0aW9uIGNjKGEpe3JldHVybiIvIj09YXx8Ii8vIj09YX1aYi5wcm90
b3R5cGUuYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmguYShhKTtpZighKGIgaW5zdGFuY2VvZiBJ
KSl0aHJvdyBFcnJvcigiRmlsdGVyIGV4cHJlc3Npb24gbXVzdCBldmFsdWF0ZSB0byBub2Rlc2V0
LiIpO2E9dGhpcy5jO2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7YzxkJiZiLmw7YysrKXt2YXIgZT1h
W2NdLGY9TChiLGUuYy5zKTtpZihlLmd8fGUuYyE9ZGMpaWYoZS5nfHxlLmMhPWVjKXt2YXIgZz1O
KGYpO2ZvcihiPWUuYShuZXcgcGEoZykpO2c9TihmKTspZz1lLmEobmV3IHBhKGcpKSxiPUZiKGIs
Zyl9ZWxzZSBnPU4oZiksYj1lLmEobmV3IHBhKGcpKTtlbHNle2ZvcihnPU4oZik7KGI9TihmKSkm
JighZy5jb250YWluc3x8Zy5jb250YWlucyhiKSkmJmIuY29tcGFyZURvY3VtZW50UG9zaXRpb24o
ZykmODtnPWIpO2I9ZS5hKG5ldyBwYShnKSl9fXJldHVybiBifTsKK1piLnByb3RvdHlwZS50b1N0
cmluZz1mdW5jdGlvbigpe3ZhciBhPSJQYXRoIEV4cHJlc3Npb246Iit6KHRoaXMuaCk7aWYodGhp
cy5jLmxlbmd0aCl7dmFyIGI9RWEodGhpcy5jLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEreihiKX0s
IlN0ZXBzOiIpO2ErPXooYil9cmV0dXJuIGF9O2Z1bmN0aW9uIGZjKGEsYil7dGhpcy5hPWE7dGhp
cy5zPSEhYn0KK2Z1bmN0aW9uIFRiKGEsYixjKXtmb3IoYz1jfHwwO2M8YS5hLmxlbmd0aDtjKysp
Zm9yKHZhciBkPWEuYVtjXSxlPUwoYiksZj1iLmwsZyxoPTA7Zz1OKGUpO2grKyl7dmFyIHI9YS5z
P2YtaDpoKzE7Zz1kLmEobmV3IHBhKGcscixmKSk7aWYoIm51bWJlciI9PXR5cGVvZiBnKXI9cj09
ZztlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZ3x8ImJvb2xlYW4iPT10eXBlb2YgZylyPSEhZztl
bHNlIGlmKGcgaW5zdGFuY2VvZiBJKXI9MDxnLmw7ZWxzZSB0aHJvdyBFcnJvcigiUHJlZGljYXRl
LmV2YWx1YXRlIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgdHlwZS4iKTtpZighcil7cj1lO2c9ci5m
O3ZhciB3PXIuYTtpZighdyl0aHJvdyBFcnJvcigiTmV4dCBtdXN0IGJlIGNhbGxlZCBhdCBsZWFz
dCBvbmNlIGJlZm9yZSByZW1vdmUuIik7dmFyIG49dy5iLHc9dy5hO24/bi5hPXc6Zy5hPXc7dz93
LmI9bjpnLmI9bjtnLmwtLTtyLmE9bnVsbH19cmV0dXJuIGJ9CitmYy5wcm90b3R5cGUudG9TdHJp
bmc9ZnVuY3Rpb24oKXtyZXR1cm4gRWEodGhpcy5hLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEreihi
KX0sIlByZWRpY2F0ZXM6Iil9O2Z1bmN0aW9uIGdjKGEpe08uY2FsbCh0aGlzLDEpO3RoaXMuYz1h
O3RoaXMuZz1hLmc7dGhpcy5iPWEuYn1wKGdjLE8pO2djLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEp
e3JldHVybi1RKHRoaXMuYyxhKX07Z2MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0
dXJuIlVuYXJ5IEV4cHJlc3Npb246IC0iK3oodGhpcy5jKX07ZnVuY3Rpb24gaGMoYSl7Ty5jYWxs
KHRoaXMsNCk7dGhpcy5jPWE7S2IodGhpcyxGYSh0aGlzLmMsZnVuY3Rpb24oYSl7cmV0dXJuIGEu
Z30pKTtMYih0aGlzLEZhKHRoaXMuYyxmdW5jdGlvbihhKXtyZXR1cm4gYS5ifSkpfXAoaGMsTyk7
aGMucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEk7QSh0aGlzLmMsZnVuY3Rpb24o
Yyl7Yz1jLmEoYSk7aWYoIShjIGluc3RhbmNlb2YgSSkpdGhyb3cgRXJyb3IoIlBhdGggZXhwcmVz
c2lvbiBtdXN0IGV2YWx1YXRlIHRvIE5vZGVTZXQuIik7Yj1GYihiLGMpfSk7cmV0dXJuIGJ9O2hj
LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBFYSh0aGlzLmMsZnVuY3Rpb24o
YSxiKXtyZXR1cm4gYSt6KGIpfSwiVW5pb24gRXhwcmVzc2lvbjoiKX07ZnVuY3Rpb24gVShhLGIs
YyxkKXtPLmNhbGwodGhpcyw0KTt0aGlzLmM9YTt0aGlzLm89Yjt0aGlzLmg9Y3x8bmV3IGZjKFtd
KTt0aGlzLnc9ISFkO2I9dGhpcy5oO2I9MDxiLmEubGVuZ3RoP2IuYVswXS5mOm51bGw7YS5KJiZi
JiYoYT1iLm5hbWUsYT1EP2EudG9Mb3dlckNhc2UoKTphLHRoaXMuZj17bmFtZTphLHU6Yi51fSk7
YTp7YT10aGlzLmg7Zm9yKGI9MDtiPGEuYS5sZW5ndGg7YisrKWlmKGM9YS5hW2JdLGMuZ3x8MT09
Yy5pfHwwPT1jLmkpe2E9ITA7YnJlYWsgYX1hPSExfXRoaXMuZz1hfXAoVSxPKTsKK1UucHJvdG90
eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5hLGM9dGhpcy5mLGQ9bnVsbCxlPW51bGwsZj0wO2Mm
JihkPWMubmFtZSxlPWMudT9SKGMudSxhKTpudWxsLGY9MSk7aWYodGhpcy53KWlmKHRoaXMuZ3x8
dGhpcy5jIT1pYylpZihiPUwoKG5ldyBVKGpjLG5ldyB5KCJub2RlIikpKS5hKGEpKSxjPU4oYikp
Zm9yKGE9dGhpcy5tKGMsZCxlLGYpO2M9TihiKTspYT1GYihhLHRoaXMubShjLGQsZSxmKSk7ZWxz
ZSBhPW5ldyBJO2Vsc2UgYT14Yih0aGlzLm8sYixkLGUpLGE9VGIodGhpcy5oLGEsZik7ZWxzZSBh
PXRoaXMubShhLmEsZCxlLGYpO3JldHVybiBhfTtVLnByb3RvdHlwZS5tPWZ1bmN0aW9uKGEsYixj
LGQpe2E9dGhpcy5jLnYodGhpcy5vLGEsYixjKTtyZXR1cm4gYT1UYih0aGlzLmgsYSxkKX07CitV
LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBhPSJTdGVwOiIreigiT3BlcmF0b3I6
ICIrKHRoaXMudz8iLy8iOiIvIikpO3RoaXMuYy5qJiYoYSs9eigiQXhpczogIit0aGlzLmMpKTth
Kz16KHRoaXMubyk7aWYodGhpcy5oLmEubGVuZ3RoKXt2YXIgYj1FYSh0aGlzLmguYSxmdW5jdGlv
bihhLGIpe3JldHVybiBhK3ooYil9LCJQcmVkaWNhdGVzOiIpO2ErPXooYil9cmV0dXJuIGF9O2Z1
bmN0aW9uIGtjKGEsYixjLGQpe3RoaXMuaj1hO3RoaXMudj1iO3RoaXMucz1jO3RoaXMuSj1kfWtj
LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9O3ZhciBsYz17fTtm
dW5jdGlvbiBWKGEsYixjLGQpe2lmKGxjLmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJB
eGlzIGFscmVhZHkgY3JlYXRlZDogIithKTtiPW5ldyBrYyhhLGIsYywhIWQpO3JldHVybiBsY1th
XT1ifQorVigiYW5jZXN0b3IiLGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBJO2I9Yi5wYXJl
bnROb2RlOylhLmEoYikmJkdiKGMsYik7cmV0dXJuIGN9LCEwKTtWKCJhbmNlc3Rvci1vci1zZWxm
IixmdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBJO2RvIGEuYShiKSYmR2IoYyxiKTt3aGlsZShiPWIu
cGFyZW50Tm9kZSk7cmV0dXJuIGN9LCEwKTsKK3ZhciAkYj1WKCJhdHRyaWJ1dGUiLGZ1bmN0aW9u
KGEsYil7dmFyIGM9bmV3IEksZD1hLmYoKTtpZigic3R5bGUiPT1kJiZEJiZiLnN0eWxlKXJldHVy
biBKKGMsbmV3IG1iKGIuc3R5bGUsYiwic3R5bGUiLGIuc3R5bGUuY3NzVGV4dCkpLGM7dmFyIGU9
Yi5hdHRyaWJ1dGVzO2lmKGUpaWYoYSBpbnN0YW5jZW9mIHkmJm51bGw9PT1hLmJ8fCIqIj09ZClm
b3IoZD0wO2E9ZVtkXTtkKyspRD9hLm5vZGVWYWx1ZSYmSihjLG5iKGIsYSkpOkooYyxhKTtlbHNl
KGE9ZS5nZXROYW1lZEl0ZW0oZCkpJiYoRD9hLm5vZGVWYWx1ZSYmSihjLG5iKGIsYSkpOkooYyxh
KSk7cmV0dXJuIGN9LCExKSxpYz1WKCJjaGlsZCIsZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4o
RD9DYjpEYikuY2FsbChudWxsLGEsYixtKGMpP2M6bnVsbCxtKGQpP2Q6bnVsbCxlfHxuZXcgSSl9
LCExLCEwKTtWKCJkZXNjZW5kYW50Iix4YiwhMSwhMCk7Cit2YXIgamM9VigiZGVzY2VuZGFudC1v
ci1zZWxmIixmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uZXcgSTtIKGIsYyxkKSYmYS5hKGIpJiZK
KGUsYik7cmV0dXJuIHhiKGEsYixjLGQsZSl9LCExLCEwKSxkYz1WKCJmb2xsb3dpbmciLGZ1bmN0
aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJO2RvIGZvcih2YXIgZj1iO2Y9Zi5uZXh0U2libGluZzsp
SChmLGMsZCkmJmEuYShmKSYmSihlLGYpLGU9eGIoYSxmLGMsZCxlKTt3aGlsZShiPWIucGFyZW50
Tm9kZSk7cmV0dXJuIGV9LCExLCEwKTtWKCJmb2xsb3dpbmctc2libGluZyIsZnVuY3Rpb24oYSxi
KXtmb3IodmFyIGM9bmV3IEk7Yj1iLm5leHRTaWJsaW5nOylhLmEoYikmJkooYyxiKTtyZXR1cm4g
Y30sITEpO1YoIm5hbWVzcGFjZSIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEl9LCExKTsKK3ZhciBt
Yz1WKCJwYXJlbnQiLGZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IEk7aWYoOT09Yi5ub2RlVHlwZSly
ZXR1cm4gYztpZigyPT1iLm5vZGVUeXBlKXJldHVybiBKKGMsYi5vd25lckVsZW1lbnQpLGM7Yj1i
LnBhcmVudE5vZGU7YS5hKGIpJiZKKGMsYik7cmV0dXJuIGN9LCExKSxlYz1WKCJwcmVjZWRpbmci
LGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJLGY9W107ZG8gZi51bnNoaWZ0KGIpO3doaWxl
KGI9Yi5wYXJlbnROb2RlKTtmb3IodmFyIGc9MSxoPWYubGVuZ3RoO2c8aDtnKyspe3ZhciByPVtd
O2ZvcihiPWZbZ107Yj1iLnByZXZpb3VzU2libGluZzspci51bnNoaWZ0KGIpO2Zvcih2YXIgdz0w
LG49ci5sZW5ndGg7dzxuO3crKyliPXJbd10sSChiLGMsZCkmJmEuYShiKSYmSihlLGIpLGU9eGIo
YSxiLGMsZCxlKX1yZXR1cm4gZX0sITAsITApOworVigicHJlY2VkaW5nLXNpYmxpbmciLGZ1bmN0
aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBJO2I9Yi5wcmV2aW91c1NpYmxpbmc7KWEuYShiKSYmR2Io
YyxiKTtyZXR1cm4gY30sITApO3ZhciBuYz1WKCJzZWxmIixmdW5jdGlvbihhLGIpe3ZhciBjPW5l
dyBJO2EuYShiKSYmSihjLGIpO3JldHVybiBjfSwhMSk7ZnVuY3Rpb24gb2MoYSxiKXt0aGlzLmE9
YTt0aGlzLmI9Yn1mdW5jdGlvbiBwYyhhKXtmb3IodmFyIGIsYz1bXTs7KXtXKGEsIk1pc3Npbmcg
cmlnaHQgaGFuZCBzaWRlIG9mIGJpbmFyeSBleHByZXNzaW9uLiIpO2I9cWMoYSk7dmFyIGQ9dShh
LmEpO2lmKCFkKWJyZWFrO3ZhciBlPShkPVJiW2RdfHxudWxsKSYmZC5EO2lmKCFlKXthLmEuYS0t
O2JyZWFrfWZvcig7Yy5sZW5ndGgmJmU8PWNbYy5sZW5ndGgtMV0uRDspYj1uZXcgTmIoYy5wb3Ao
KSxjLnBvcCgpLGIpO2MucHVzaChiLGQpfWZvcig7Yy5sZW5ndGg7KWI9bmV3IE5iKGMucG9wKCks
Yy5wb3AoKSxiKTtyZXR1cm4gYn1mdW5jdGlvbiBXKGEsYil7aWYodWEoYS5hKSl0aHJvdyBFcnJv
cihiKTt9ZnVuY3Rpb24gcmMoYSxiKXthPXUoYS5hKTtpZihhIT1iKXRocm93IEVycm9yKCJCYWQg
dG9rZW4sIGV4cGVjdGVkOiAiK2IrIiBnb3Q6ICIrYSk7fQorZnVuY3Rpb24gc2MoYSl7YT11KGEu
YSk7aWYoIikiIT1hKXRocm93IEVycm9yKCJCYWQgdG9rZW46ICIrYSk7fWZ1bmN0aW9uIHRjKGEp
e2E9dShhLmEpO2lmKDI+YS5sZW5ndGgpdGhyb3cgRXJyb3IoIlVuY2xvc2VkIGxpdGVyYWwgc3Ry
aW5nIik7cmV0dXJuIG5ldyBYYihhKX0KK2Z1bmN0aW9uIHVjKGEpe3ZhciBiPVtdO2lmKGNjKHQo
YS5hKSkpe3ZhciBjPXUoYS5hKTt2YXIgZD10KGEuYSk7aWYoIi8iPT1jJiYodWEoYS5hKXx8Ii4i
IT1kJiYiLi4iIT1kJiYiQCIhPWQmJiIqIiE9ZCYmIS8oPyFbMC05XSlbXHddLy50ZXN0KGQpKSly
ZXR1cm4gbmV3IGFjO2Q9bmV3IGFjO1coYSwiTWlzc2luZyBuZXh0IGxvY2F0aW9uIHN0ZXAuIik7
Yz12YyhhLGMpO2IucHVzaChjKX1lbHNle2E6e2M9dChhLmEpO2Q9Yy5jaGFyQXQoMCk7c3dpdGNo
KGQpe2Nhc2UgIiQiOnRocm93IEVycm9yKCJWYXJpYWJsZSByZWZlcmVuY2Ugbm90IGFsbG93ZWQg
aW4gSFRNTCBYUGF0aCIpO2Nhc2UgIigiOnUoYS5hKTtjPXBjKGEpO1coYSwndW5jbG9zZWQgIigi
Jyk7cmMoYSwiKSIpO2JyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmM9dGMoYSk7YnJlYWs7ZGVmYXVs
dDppZihpc05hTigrYykpaWYoIXhhKGMpJiYvKD8hWzAtOV0pW1x3XS8udGVzdChkKSYmIigiPT10
KGEuYSwxKSl7Yz11KGEuYSk7CitjPVdiW2NdfHxudWxsO3UoYS5hKTtmb3IoZD1bXTsiKSIhPXQo
YS5hKTspe1coYSwiTWlzc2luZyBmdW5jdGlvbiBhcmd1bWVudCBsaXN0LiIpO2QucHVzaChwYyhh
KSk7aWYoIiwiIT10KGEuYSkpYnJlYWs7dShhLmEpfVcoYSwiVW5jbG9zZWQgZnVuY3Rpb24gYXJn
dW1lbnQgbGlzdC4iKTtzYyhhKTtjPW5ldyBVYihjLGQpfWVsc2V7Yz1udWxsO2JyZWFrIGF9ZWxz
ZSBjPW5ldyBZYigrdShhLmEpKX0iWyI9PXQoYS5hKSYmKGQ9bmV3IGZjKHdjKGEpKSxjPW5ldyBT
YihjLGQpKX1pZihjKWlmKGNjKHQoYS5hKSkpZD1jO2Vsc2UgcmV0dXJuIGM7ZWxzZSBjPXZjKGEs
Ii8iKSxkPW5ldyBiYyxiLnB1c2goYyl9Zm9yKDtjYyh0KGEuYSkpOyljPXUoYS5hKSxXKGEsIk1p
c3NpbmcgbmV4dCBsb2NhdGlvbiBzdGVwLiIpLGM9dmMoYSxjKSxiLnB1c2goYyk7cmV0dXJuIG5l
dyBaYihkLGIpfQorZnVuY3Rpb24gdmMoYSxiKXtpZigiLyIhPWImJiIvLyIhPWIpdGhyb3cgRXJy
b3IoJ1N0ZXAgb3Agc2hvdWxkIGJlICIvIiBvciAiLy8iJyk7aWYoIi4iPT10KGEuYSkpe3ZhciBj
PW5ldyBVKG5jLG5ldyB5KCJub2RlIikpO3UoYS5hKTtyZXR1cm4gY31pZigiLi4iPT10KGEuYSkp
cmV0dXJuIGM9bmV3IFUobWMsbmV3IHkoIm5vZGUiKSksdShhLmEpLGM7aWYoIkAiPT10KGEuYSkp
e3ZhciBkPSRiO3UoYS5hKTtXKGEsIk1pc3NpbmcgYXR0cmlidXRlIG5hbWUiKX1lbHNlIGlmKCI6
OiI9PXQoYS5hLDEpKXtpZighLyg/IVswLTldKVtcd10vLnRlc3QodChhLmEpLmNoYXJBdCgwKSkp
dGhyb3cgRXJyb3IoIkJhZCB0b2tlbjogIit1KGEuYSkpO3ZhciBlPXUoYS5hKTtkPWxjW2VdfHxu
dWxsO2lmKCFkKXRocm93IEVycm9yKCJObyBheGlzIHdpdGggbmFtZTogIitlKTt1KGEuYSk7Vyhh
LCJNaXNzaW5nIG5vZGUgbmFtZSIpfWVsc2UgZD1pYztlPXQoYS5hKTtpZigvKD8hWzAtOV0pW1x3
XCpdLy50ZXN0KGUuY2hhckF0KDApKSlpZigiKCI9PQordChhLmEsMSkpe2lmKCF4YShlKSl0aHJv
dyBFcnJvcigiSW52YWxpZCBub2RlIHR5cGU6ICIrZSk7ZT11KGEuYSk7aWYoIXhhKGUpKXRocm93
IEVycm9yKCJJbnZhbGlkIHR5cGUgbmFtZTogIitlKTtyYyhhLCIoIik7VyhhLCJCYWQgbm9kZXR5
cGUiKTt2YXIgZj10KGEuYSkuY2hhckF0KDApLGc9bnVsbDtpZignIic9PWZ8fCInIj09ZilnPXRj
KGEpO1coYSwiQmFkIG5vZGV0eXBlIik7c2MoYSk7ZT1uZXcgeShlLGcpfWVsc2UgaWYoZT11KGEu
YSksZj1lLmluZGV4T2YoIjoiKSwtMT09ZillPW5ldyB5YShlKTtlbHNle3ZhciBnPWUuc3Vic3Ry
aW5nKDAsZik7aWYoIioiPT1nKXZhciBoPSIqIjtlbHNlIGlmKGg9YS5iKGcpLCFoKXRocm93IEVy
cm9yKCJOYW1lc3BhY2UgcHJlZml4IG5vdCBkZWNsYXJlZDogIitnKTtlPWUuc3Vic3RyKGYrMSk7
ZT1uZXcgeWEoZSxoKX1lbHNlIHRocm93IEVycm9yKCJCYWQgdG9rZW46ICIrdShhLmEpKTthPW5l
dyBmYyh3YyhhKSxkLnMpO3JldHVybiBjfHwKK25ldyBVKGQsZSxhLCIvLyI9PWIpfWZ1bmN0aW9u
IHdjKGEpe2Zvcih2YXIgYj1bXTsiWyI9PXQoYS5hKTspe3UoYS5hKTtXKGEsIk1pc3NpbmcgcHJl
ZGljYXRlIGV4cHJlc3Npb24uIik7dmFyIGM9cGMoYSk7Yi5wdXNoKGMpO1coYSwiVW5jbG9zZWQg
cHJlZGljYXRlIGV4cHJlc3Npb24uIik7cmMoYSwiXSIpfXJldHVybiBifWZ1bmN0aW9uIHFjKGEp
e2lmKCItIj09dChhLmEpKXJldHVybiB1KGEuYSksbmV3IGdjKHFjKGEpKTt2YXIgYj11YyhhKTtp
ZigifCIhPXQoYS5hKSlhPWI7ZWxzZXtmb3IoYj1bYl07InwiPT11KGEuYSk7KVcoYSwiTWlzc2lu
ZyBuZXh0IHVuaW9uIGxvY2F0aW9uIHBhdGguIiksYi5wdXNoKHVjKGEpKTthLmEuYS0tO2E9bmV3
IGhjKGIpfXJldHVybiBhfTtmdW5jdGlvbiB4YyhhLGIpe2lmKCFhLmxlbmd0aCl0aHJvdyBFcnJv
cigiRW1wdHkgWFBhdGggZXhwcmVzc2lvbi4iKTthPXJhKGEpO2lmKHVhKGEpKXRocm93IEVycm9y
KCJJbnZhbGlkIFhQYXRoIGV4cHJlc3Npb24uIik7Yj8iZnVuY3Rpb24iPT1iYShiKXx8KGI9ZWEo
Yi5sb29rdXBOYW1lc3BhY2VVUkksYikpOmI9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dmFyIGM9
cGMobmV3IG9jKGEsYikpO2lmKCF1YShhKSl0aHJvdyBFcnJvcigiQmFkIHRva2VuOiAiK3UoYSkp
O3RoaXMuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXthPWMuYShuZXcgcGEoYSkpO3JldHVybiBuZXcg
WChhLGIpfX0KK2Z1bmN0aW9uIFgoYSxiKXtpZighYilpZihhIGluc3RhbmNlb2YgSSliPTQ7ZWxz
ZSBpZigic3RyaW5nIj09dHlwZW9mIGEpYj0yO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBhKWI9
MTtlbHNlIGlmKCJib29sZWFuIj09dHlwZW9mIGEpYj0zO2Vsc2UgdGhyb3cgRXJyb3IoIlVuZXhw
ZWN0ZWQgZXZhbHVhdGlvbiByZXN1bHQuIik7aWYoMiE9YiYmMSE9YiYmMyE9YiYmIShhIGluc3Rh
bmNlb2YgSSkpdGhyb3cgRXJyb3IoInZhbHVlIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gdGhl
IHNwZWNpZmllZCB0eXBlIik7dGhpcy5yZXN1bHRUeXBlPWI7c3dpdGNoKGIpe2Nhc2UgMjp0aGlz
LnN0cmluZ1ZhbHVlPWEgaW5zdGFuY2VvZiBJP0liKGEpOiIiK2E7YnJlYWs7Y2FzZSAxOnRoaXMu
bnVtYmVyVmFsdWU9YSBpbnN0YW5jZW9mIEk/K0liKGEpOithO2JyZWFrO2Nhc2UgMzp0aGlzLmJv
b2xlYW5WYWx1ZT1hIGluc3RhbmNlb2YgST8wPGEubDohIWE7YnJlYWs7Y2FzZSA0OmNhc2UgNTpj
YXNlIDY6Y2FzZSA3OnZhciBjPQorTChhKTt2YXIgZD1bXTtmb3IodmFyIGU9TihjKTtlO2U9Tihj
KSlkLnB1c2goZSBpbnN0YW5jZW9mIG1iP2UuYTplKTt0aGlzLnNuYXBzaG90TGVuZ3RoPWEubDt0
aGlzLmludmFsaWRJdGVyYXRvclN0YXRlPSExO2JyZWFrO2Nhc2UgODpjYXNlIDk6YT1IYihhKTt0
aGlzLnNpbmdsZU5vZGVWYWx1ZT1hIGluc3RhbmNlb2YgbWI/YS5hOmE7YnJlYWs7ZGVmYXVsdDp0
aHJvdyBFcnJvcigiVW5rbm93biBYUGF0aFJlc3VsdCB0eXBlLiIpO312YXIgZj0wO3RoaXMuaXRl
cmF0ZU5leHQ9ZnVuY3Rpb24oKXtpZig0IT1iJiY1IT1iKXRocm93IEVycm9yKCJpdGVyYXRlTmV4
dCBjYWxsZWQgd2l0aCB3cm9uZyByZXN1bHQgdHlwZSIpO3JldHVybiBmPj1kLmxlbmd0aD9udWxs
OmRbZisrXX07dGhpcy5zbmFwc2hvdEl0ZW09ZnVuY3Rpb24oYSl7aWYoNiE9YiYmNyE9Yil0aHJv
dyBFcnJvcigic25hcHNob3RJdGVtIGNhbGxlZCB3aXRoIHdyb25nIHJlc3VsdCB0eXBlIik7cmV0
dXJuIGE+PWQubGVuZ3RofHwKKzA+YT9udWxsOmRbYV19fVguQU5ZX1RZUEU9MDtYLk5VTUJFUl9U
WVBFPTE7WC5TVFJJTkdfVFlQRT0yO1guQk9PTEVBTl9UWVBFPTM7WC5VTk9SREVSRURfTk9ERV9J
VEVSQVRPUl9UWVBFPTQ7WC5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRT01O1guVU5PUkRFUkVE
X05PREVfU05BUFNIT1RfVFlQRT02O1guT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU9NztYLkFO
WV9VTk9SREVSRURfTk9ERV9UWVBFPTg7WC5GSVJTVF9PUkRFUkVEX05PREVfVFlQRT05O2Z1bmN0
aW9uIHljKGEpe3RoaXMubG9va3VwTmFtZXNwYWNlVVJJPXphKGEpfQorZnVuY3Rpb24gemMoYSxi
KXthPWF8fGs7dmFyIGM9YS5Eb2N1bWVudCYmYS5Eb2N1bWVudC5wcm90b3R5cGV8fGEuZG9jdW1l
bnQ7aWYoIWMuZXZhbHVhdGV8fGIpYS5YUGF0aFJlc3VsdD1YLGMuZXZhbHVhdGU9ZnVuY3Rpb24o
YSxiLGMsZyl7cmV0dXJuKG5ldyB4YyhhLGMpKS5ldmFsdWF0ZShiLGcpfSxjLmNyZWF0ZUV4cHJl
c3Npb249ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IHhjKGEsYil9LGMuY3JlYXRlTlNSZXNvbHZl
cj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHljKGEpfX1hYSgid2d4cGF0aC5pbnN0YWxsIix6Yyk7
dmFyIEFjPWZ1bmN0aW9uKCl7dmFyIGE9e006Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn07
cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybiBhW2JdfHxudWxsfX0oKTsKK2Z1bmN0aW9uIEJjKGEs
Yil7dmFyIGM9RihhKTtpZighYy5kb2N1bWVudEVsZW1lbnQpcmV0dXJuIG51bGw7KEN8fGhiKSYm
emMoYz9jLnBhcmVudFdpbmRvd3x8Yy5kZWZhdWx0Vmlldzp3aW5kb3cpO3RyeXt2YXIgZD1jLmNy
ZWF0ZU5TUmVzb2x2ZXI/Yy5jcmVhdGVOU1Jlc29sdmVyKGMuZG9jdW1lbnRFbGVtZW50KTpBYztp
ZihDJiYhYWIoNykpcmV0dXJuIGMuZXZhbHVhdGUuY2FsbChjLGIsYSxkLDksbnVsbCk7aWYoIUN8
fDk8PU51bWJlcihiYikpe2Zvcih2YXIgZT17fSxmPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioi
KSxnPTA7ZzxmLmxlbmd0aDsrK2cpe3ZhciBoPWZbZ10scj1oLm5hbWVzcGFjZVVSSTtpZihyJiYh
ZVtyXSl7dmFyIHc9aC5sb29rdXBQcmVmaXgocik7aWYoIXcpdmFyIG49ci5tYXRjaCgiLiovKFxc
dyspLz8kIiksdz1uP25bMV06InhodG1sIjtlW3JdPXd9fXZhciBCPXt9LE07Zm9yKE0gaW4gZSlC
W2VbTV1dPU07ZD1mdW5jdGlvbihhKXtyZXR1cm4gQlthXXx8CitudWxsfX10cnl7cmV0dXJuIGMu
ZXZhbHVhdGUoYixhLGQsOSxudWxsKX1jYXRjaChQKXtpZigiVHlwZUVycm9yIj09PVAubmFtZSly
ZXR1cm4gZD1jLmNyZWF0ZU5TUmVzb2x2ZXI/Yy5jcmVhdGVOU1Jlc29sdmVyKGMuZG9jdW1lbnRF
bGVtZW50KTpBYyxjLmV2YWx1YXRlKGIsYSxkLDksbnVsbCk7dGhyb3cgUDt9fWNhdGNoKFApe2lm
KCFVYXx8Ik5TX0VSUk9SX0lMTEVHQUxfVkFMVUUiIT1QLm5hbWUpdGhyb3cgbmV3IGdhKDMyLCJV
bmFibGUgdG8gbG9jYXRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgeHBhdGggZXhwcmVzc2lvbiAiK2Ir
IiBiZWNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXJyb3I6XG4iK1ApO319CitmdW5jdGlvbiBDYyhh
LGIpe3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGM9QmMoYixhKTtyZXR1cm4gYz9jLnNpbmdsZU5vZGVW
YWx1ZXx8bnVsbDpiLnNlbGVjdFNpbmdsZU5vZGU/KGM9RihiKSxjLnNldFByb3BlcnR5JiZjLnNl
dFByb3BlcnR5KCJTZWxlY3Rpb25MYW5ndWFnZSIsIlhQYXRoIiksYi5zZWxlY3RTaW5nbGVOb2Rl
KGEpKTpudWxsfSgpO2lmKG51bGwhPT1jJiYoIWN8fDEhPWMubm9kZVR5cGUpKXRocm93IG5ldyBn
YSgzMiwnVGhlIHJlc3VsdCBvZiB0aGUgeHBhdGggZXhwcmVzc2lvbiAiJythKyciIGlzOiAnK2Mr
Ii4gSXQgc2hvdWxkIGJlIGFuIGVsZW1lbnQuIik7cmV0dXJuIGN9O3ZhciBEYz0iZnVuY3Rpb24i
PT09dHlwZW9mIFNoYWRvd1Jvb3Q7ZnVuY3Rpb24gRWMoYSl7Zm9yKGE9YS5wYXJlbnROb2RlO2Em
JjEhPWEubm9kZVR5cGUmJjkhPWEubm9kZVR5cGUmJjExIT1hLm5vZGVUeXBlOylhPWEucGFyZW50
Tm9kZTtyZXR1cm4gSyhhKT9hOm51bGx9CitmdW5jdGlvbiBZKGEsYil7Yj1vYShiKTtpZigiZmxv
YXQiPT1ifHwiY3NzRmxvYXQiPT1ifHwic3R5bGVGbG9hdCI9PWIpYj1xYj8ic3R5bGVGbG9hdCI6
ImNzc0Zsb2F0IjthOnt2YXIgYz1iO3ZhciBkPUYoYSk7aWYoZC5kZWZhdWx0VmlldyYmZC5kZWZh
dWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYoZD1kLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUoYSxudWxsKSkpe2M9ZFtjXXx8ZC5nZXRQcm9wZXJ0eVZhbHVlKGMpfHwiIjticmVhayBhfWM9
IiJ9YT1jfHxGYyhhLGIpO2lmKG51bGw9PT1hKWE9bnVsbDtlbHNlIGlmKDA8PUNhKExhLGIpKXti
Ont2YXIgZT1hLm1hdGNoKE9hKTtpZihlJiYoYj1OdW1iZXIoZVsxXSksYz1OdW1iZXIoZVsyXSks
ZD1OdW1iZXIoZVszXSksZT1OdW1iZXIoZVs0XSksMDw9YiYmMjU1Pj1iJiYwPD1jJiYyNTU+PWMm
JjA8PWQmJjI1NT49ZCYmMDw9ZSYmMT49ZSkpe2I9W2IsYyxkLGVdO2JyZWFrIGJ9Yj1udWxsfWlm
KCFiKWI6e2lmKGQ9YS5tYXRjaChQYSkpaWYoYj0KK051bWJlcihkWzFdKSxjPU51bWJlcihkWzJd
KSxkPU51bWJlcihkWzNdKSwwPD1iJiYyNTU+PWImJjA8PWMmJjI1NT49YyYmMDw9ZCYmMjU1Pj1k
KXtiPVtiLGMsZCwxXTticmVhayBifWI9bnVsbH1pZighYiliOntiPWEudG9Mb3dlckNhc2UoKTtj
PWlhW2IudG9Mb3dlckNhc2UoKV07aWYoIWMmJihjPSIjIj09Yi5jaGFyQXQoMCk/YjoiIyIrYiw0
PT1jLmxlbmd0aCYmKGM9Yy5yZXBsYWNlKE1hLCIjJDEkMSQyJDIkMyQzIikpLCFOYS50ZXN0KGMp
KSl7Yj1udWxsO2JyZWFrIGJ9Yj1bcGFyc2VJbnQoYy5zdWJzdHIoMSwyKSwxNikscGFyc2VJbnQo
Yy5zdWJzdHIoMywyKSwxNikscGFyc2VJbnQoYy5zdWJzdHIoNSwyKSwxNiksMV19YT1iPyJyZ2Jh
KCIrYi5qb2luKCIsICIpKyIpIjphfXJldHVybiBhfQorZnVuY3Rpb24gRmMoYSxiKXt2YXIgYz1h
LmN1cnJlbnRTdHlsZXx8YS5zdHlsZSxkPWNbYl07IWwoZCkmJiJmdW5jdGlvbiI9PWJhKGMuZ2V0
UHJvcGVydHlWYWx1ZSkmJihkPWMuZ2V0UHJvcGVydHlWYWx1ZShiKSk7cmV0dXJuImluaGVyaXQi
IT1kP2woZCk/ZDpudWxsOihhPUVjKGEpKT9GYyhhLGIpOm51bGx9CitmdW5jdGlvbiBHYyhhLGIs
Yyl7ZnVuY3Rpb24gZChhKXt2YXIgYj1IYyhhKTtyZXR1cm4gMDxiLmhlaWdodCYmMDxiLndpZHRo
PyEwOksoYSwiUEFUSCIpJiYoMDxiLmhlaWdodHx8MDxiLndpZHRoKT8oYT1ZKGEsInN0cm9rZS13
aWR0aCIpLCEhYSYmMDxwYXJzZUludChhLDEwKSk6ImhpZGRlbiIhPVkoYSwib3ZlcmZsb3ciKSYm
RmEoYS5jaGlsZE5vZGVzLGZ1bmN0aW9uKGEpe3JldHVybiAzPT1hLm5vZGVUeXBlfHxLKGEpJiZk
KGEpfSl9ZnVuY3Rpb24gZShhKXtyZXR1cm4gSWMoYSk9PVomJkdhKGEuY2hpbGROb2RlcyxmdW5j
dGlvbihhKXtyZXR1cm4hSyhhKXx8ZShhKXx8IWQoYSl9KX1pZighSyhhKSl0aHJvdyBFcnJvcigi
QXJndW1lbnQgdG8gaXNTaG93biBtdXN0IGJlIG9mIHR5cGUgRWxlbWVudCIpO2lmKEsoYSwiQk9E
WSIpKXJldHVybiEwO2lmKEsoYSwiT1BUSU9OIil8fEsoYSwiT1BUR1JPVVAiKSlyZXR1cm4gYT12
YihhLGZ1bmN0aW9uKGEpe3JldHVybiBLKGEsIlNFTEVDVCIpfSksCishIWEmJkdjKGEsITAsYyk7
dmFyIGY9SmMoYSk7aWYoZilyZXR1cm4hIWYuQiYmMDxmLnJlY3Qud2lkdGgmJjA8Zi5yZWN0Lmhl
aWdodCYmR2MoZi5CLGIsYyk7aWYoSyhhLCJJTlBVVCIpJiYiaGlkZGVuIj09YS50eXBlLnRvTG93
ZXJDYXNlKCl8fEsoYSwiTk9TQ1JJUFQiKSlyZXR1cm4hMTtmPVkoYSwidmlzaWJpbGl0eSIpO3Jl
dHVybiJjb2xsYXBzZSIhPWYmJiJoaWRkZW4iIT1mJiZjKGEpJiYoYnx8S2MoYSkpJiZkKGEpPyFl
KGEpOiExfXZhciBaPSJoaWRkZW4iOworZnVuY3Rpb24gSWMoYSl7ZnVuY3Rpb24gYihhKXtmdW5j
dGlvbiBiKGEpe3JldHVybiBhPT1nPyEwOiFZKGEsImRpc3BsYXkiKS5sYXN0SW5kZXhPZigiaW5s
aW5lIiwwKXx8ImFic29sdXRlIj09YyYmInN0YXRpYyI9PVkoYSwicG9zaXRpb24iKT8hMTohMH12
YXIgYz1ZKGEsInBvc2l0aW9uIik7aWYoImZpeGVkIj09YylyZXR1cm4gdz0hMCxhPT1nP251bGw6
Zztmb3IoYT1FYyhhKTthJiYhYihhKTspYT1FYyhhKTtyZXR1cm4gYX1mdW5jdGlvbiBjKGEpe3Zh
ciBiPWE7aWYoInZpc2libGUiPT1yKWlmKGE9PWcmJmgpYj1oO2Vsc2UgaWYoYT09aClyZXR1cm57
eDoidmlzaWJsZSIseToidmlzaWJsZSJ9O2I9e3g6WShiLCJvdmVyZmxvdy14IikseTpZKGIsIm92
ZXJmbG93LXkiKX07YT09ZyYmKGIueD0idmlzaWJsZSI9PWIueD8iYXV0byI6Yi54LGIueT0idmlz
aWJsZSI9PWIueT8iYXV0byI6Yi55KTtyZXR1cm4gYn1mdW5jdGlvbiBkKGEpe2lmKGE9PWcpe3Zh
ciBiPShuZXcgd2IoZikpLmE7CithPWIuc2Nyb2xsaW5nRWxlbWVudD9iLnNjcm9sbGluZ0VsZW1l
bnQ6VmF8fCJDU1MxQ29tcGF0IiE9Yi5jb21wYXRNb2RlP2IuYm9keXx8Yi5kb2N1bWVudEVsZW1l
bnQ6Yi5kb2N1bWVudEVsZW1lbnQ7Yj1iLnBhcmVudFdpbmRvd3x8Yi5kZWZhdWx0VmlldzthPUMm
JmFiKCIxMCIpJiZiLnBhZ2VZT2Zmc2V0IT1hLnNjcm9sbFRvcD9uZXcgUmEoYS5zY3JvbGxMZWZ0
LGEuc2Nyb2xsVG9wKTpuZXcgUmEoYi5wYWdlWE9mZnNldHx8YS5zY3JvbGxMZWZ0LGIucGFnZVlP
ZmZzZXR8fGEuc2Nyb2xsVG9wKX1lbHNlIGE9bmV3IFJhKGEuc2Nyb2xsTGVmdCxhLnNjcm9sbFRv
cCk7cmV0dXJuIGF9dmFyIGU9TGMoYSk7dmFyIGY9RihhKSxnPWYuZG9jdW1lbnRFbGVtZW50LGg9
Zi5ib2R5LHI9WShnLCJvdmVyZmxvdyIpLHc7Zm9yKGE9YihhKTthO2E9YihhKSl7dmFyIG49Yyhh
KTtpZigidmlzaWJsZSIhPW4ueHx8InZpc2libGUiIT1uLnkpe3ZhciBCPUhjKGEpO2lmKCFCLndp
ZHRofHwhQi5oZWlnaHQpcmV0dXJuIFo7Cit2YXIgTT1lLmE8Qi5hLFA9ZS5iPEIuYjtpZihNJiYi
aGlkZGVuIj09bi54fHxQJiYiaGlkZGVuIj09bi55KXJldHVybiBaO2lmKE0mJiJ2aXNpYmxlIiE9
bi54fHxQJiYidmlzaWJsZSIhPW4ueSl7TT1kKGEpO1A9ZS5iPEIuYi1NLnk7aWYoZS5hPEIuYS1N
LngmJiJ2aXNpYmxlIiE9bi54fHxQJiYidmlzaWJsZSIhPW4ueClyZXR1cm4gWjtlPUljKGEpO3Jl
dHVybiBlPT1aP1o6InNjcm9sbCJ9TT1lLmY+PUIuYStCLndpZHRoO0I9ZS5jPj1CLmIrQi5oZWln
aHQ7aWYoTSYmImhpZGRlbiI9PW4ueHx8QiYmImhpZGRlbiI9PW4ueSlyZXR1cm4gWjtpZihNJiYi
dmlzaWJsZSIhPW4ueHx8QiYmInZpc2libGUiIT1uLnkpe2lmKHcmJihuPWQoYSksZS5mPj1nLnNj
cm9sbFdpZHRoLW4ueHx8ZS5hPj1nLnNjcm9sbEhlaWdodC1uLnkpKXJldHVybiBaO2U9SWMoYSk7
cmV0dXJuIGU9PVo/Wjoic2Nyb2xsIn19fXJldHVybiJub25lIn0KK2Z1bmN0aW9uIEhjKGEpe3Zh
ciBiPUpjKGEpO2lmKGIpcmV0dXJuIGIucmVjdDtpZihLKGEsIkhUTUwiKSlyZXR1cm4gYT1GKGEp
LGE9KChhP2EucGFyZW50V2luZG93fHxhLmRlZmF1bHRWaWV3OndpbmRvdyl8fHdpbmRvdykuZG9j
dW1lbnQsYT0iQ1NTMUNvbXBhdCI9PWEuY29tcGF0TW9kZT9hLmRvY3VtZW50RWxlbWVudDphLmJv
ZHksYT1uZXcgamEoYS5jbGllbnRXaWR0aCxhLmNsaWVudEhlaWdodCksbmV3IEUoMCwwLGEud2lk
dGgsYS5oZWlnaHQpO3RyeXt2YXIgYz1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKGQp
e3JldHVybiBuZXcgRSgwLDAsMCwwKX1iPW5ldyBFKGMubGVmdCxjLnRvcCxjLnJpZ2h0LWMubGVm
dCxjLmJvdHRvbS1jLnRvcCk7QyYmYS5vd25lckRvY3VtZW50LmJvZHkmJihhPUYoYSksYi5hLT1h
LmRvY3VtZW50RWxlbWVudC5jbGllbnRMZWZ0K2EuYm9keS5jbGllbnRMZWZ0LGIuYi09YS5kb2N1
bWVudEVsZW1lbnQuY2xpZW50VG9wK2EuYm9keS5jbGllbnRUb3ApOworcmV0dXJuIGJ9ZnVuY3Rp
b24gSmMoYSl7dmFyIGI9SyhhLCJNQVAiKTtpZighYiYmIUsoYSwiQVJFQSIpKXJldHVybiBudWxs
O3ZhciBjPWI/YTpLKGEucGFyZW50Tm9kZSwiTUFQIik/YS5wYXJlbnROb2RlOm51bGwsZD1udWxs
LGU9bnVsbDtjJiZjLm5hbWUmJihkPUNjKCcvZGVzY2VuZGFudDo6KltAdXNlbWFwID0gIiMnK2Mu
bmFtZSsnIl0nLEYoYykpKSYmKGU9SGMoZCksYnx8ImRlZmF1bHQiPT1hLnNoYXBlLnRvTG93ZXJD
YXNlKCl8fChhPU1jKGEpLGI9TWF0aC5taW4oTWF0aC5tYXgoYS5hLDApLGUud2lkdGgpLGM9TWF0
aC5taW4oTWF0aC5tYXgoYS5iLDApLGUuaGVpZ2h0KSxlPW5ldyBFKGIrZS5hLGMrZS5iLE1hdGgu
bWluKGEud2lkdGgsZS53aWR0aC1iKSxNYXRoLm1pbihhLmhlaWdodCxlLmhlaWdodC1jKSkpKTty
ZXR1cm57QjpkLHJlY3Q6ZXx8bmV3IEUoMCwwLDAsMCl9fQorZnVuY3Rpb24gTWMoYSl7dmFyIGI9
YS5zaGFwZS50b0xvd2VyQ2FzZSgpO2E9YS5jb29yZHMuc3BsaXQoIiwiKTtpZigicmVjdCI9PWIm
JjQ9PWEubGVuZ3RoKXt2YXIgYj1hWzBdLGM9YVsxXTtyZXR1cm4gbmV3IEUoYixjLGFbMl0tYixh
WzNdLWMpfWlmKCJjaXJjbGUiPT1iJiYzPT1hLmxlbmd0aClyZXR1cm4gYj1hWzJdLG5ldyBFKGFb
MF0tYixhWzFdLWIsMipiLDIqYik7aWYoInBvbHkiPT1iJiYyPGEubGVuZ3RoKXtmb3IodmFyIGI9
YVswXSxjPWFbMV0sZD1iLGU9YyxmPTI7ZisxPGEubGVuZ3RoO2YrPTIpYj1NYXRoLm1pbihiLGFb
Zl0pLGQ9TWF0aC5tYXgoZCxhW2ZdKSxjPU1hdGgubWluKGMsYVtmKzFdKSxlPU1hdGgubWF4KGUs
YVtmKzFdKTtyZXR1cm4gbmV3IEUoYixjLGQtYixlLWMpfXJldHVybiBuZXcgRSgwLDAsMCwwKX1m
dW5jdGlvbiBMYyhhKXthPUhjKGEpO3JldHVybiBuZXcgZGIoYS5iLGEuYSthLndpZHRoLGEuYith
LmhlaWdodCxhLmEpfQorZnVuY3Rpb24gS2MoYSl7aWYocWIpe2lmKCJyZWxhdGl2ZSI9PVkoYSwi
cG9zaXRpb24iKSlyZXR1cm4gMTthPVkoYSwiZmlsdGVyIik7cmV0dXJuKGE9YS5tYXRjaCgvXmFs
cGhhXChvcGFjaXR5PShcZCopXCkvKXx8YS5tYXRjaCgvXnByb2dpZDpEWEltYWdlVHJhbnNmb3Jt
Lk1pY3Jvc29mdC5BbHBoYVwoT3BhY2l0eT0oXGQqKVwpLykpP051bWJlcihhWzFdKS8xMDA6MX1y
ZXR1cm4gTmMoYSl9ZnVuY3Rpb24gTmMoYSl7dmFyIGI9MSxjPVkoYSwib3BhY2l0eSIpO2MmJihi
PU51bWJlcihjKSk7KGE9RWMoYSkpJiYoYio9TmMoYSkpO3JldHVybiBifTthYSgiXyIsZnVuY3Rp
b24oYSxiKXt2YXIgYz1EYz9mdW5jdGlvbihiKXtpZigibm9uZSI9PVkoYiwiZGlzcGxheSIpKXJl
dHVybiExO2Rve3ZhciBkPWIucGFyZW50Tm9kZTtpZihiLmdldERlc3RpbmF0aW9uSW5zZXJ0aW9u
UG9pbnRzKXt2YXIgZj1iLmdldERlc3RpbmF0aW9uSW5zZXJ0aW9uUG9pbnRzKCk7MDxmLmxlbmd0
aCYmKGQ9ZltmLmxlbmd0aC0xXSl9aWYoZCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Qpe2lmKGQuaG9z
dC5zaGFkb3dSb290IT1kKXJldHVybiExO2Q9ZC5ob3N0fWVsc2UhZHx8OSE9ZC5ub2RlVHlwZSYm
MTEhPWQubm9kZVR5cGV8fChkPW51bGwpfXdoaWxlKGEmJjEhPWEubm9kZVR5cGUpO3JldHVybiFk
fHxjKGQpfTpmdW5jdGlvbihhKXtpZigibm9uZSI9PVkoYSwiZGlzcGxheSIpKXJldHVybiExO2E9
RWMoYSk7cmV0dXJuIWF8fGMoYSl9O3JldHVybiBHYyhhLCEhYixjKX0pOzsgcmV0dXJuIHRoaXMu
Xy5hcHBseShudWxsLGFyZ3VtZW50cyk7fS5hcHBseSh7bmF2aWdhdG9yOnR5cGVvZiB3aW5kb3ch
PSd1bmRlZmluZWQnP3dpbmRvdy5uYXZpZ2F0b3I6bnVsbCxkb2N1bWVudDp0eXBlb2Ygd2luZG93
IT0ndW5kZWZpbmVkJz93aW5kb3cuZG9jdW1lbnQ6bnVsbH0sIGFyZ3VtZW50cyk7fQpkaWZmIC0t
Z2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3JlbW90ZS9tb2JpbGUucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL21vYmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uYTBkYTI0OTgxYjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3Rl
L21vYmlsZS5weQpAQCAtMCwwICsxLDg1IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSAuY29tbWFuZCBpbXBvcnQg
Q29tbWFuZAorCisKK2NsYXNzIE1vYmlsZShvYmplY3QpOgorCisgICAgY2xhc3MgQ29ubmVjdGlv
blR5cGUob2JqZWN0KToKKworICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgbWFzayk6CisgICAg
ICAgICAgICBzZWxmLm1hc2sgPSBtYXNrCisKKyAgICAgICAgQHByb3BlcnR5CisgICAgICAgIGRl
ZiBhaXJwbGFuZV9tb2RlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubWFzayAlIDIg
PT0gMQorCisgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICBkZWYgd2lmaShzZWxmKToKKyAgICAg
ICAgICAgIHJldHVybiAoc2VsZi5tYXNrIC8gMikgJSAyID09IDEKKworICAgICAgICBAcHJvcGVy
dHkKKyAgICAgICAgZGVmIGRhdGEoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gKHNlbGYubWFz
ayAvIDQpID4gMAorCisgICAgQUxMX05FVFdPUksgPSBDb25uZWN0aW9uVHlwZSg2KQorICAgIFdJ
RklfTkVUV09SSyA9IENvbm5lY3Rpb25UeXBlKDIpCisgICAgREFUQV9ORVRXT1JLID0gQ29ubmVj
dGlvblR5cGUoNCkKKyAgICBBSVJQTEFORV9NT0RFID0gQ29ubmVjdGlvblR5cGUoMSkKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICBzZWxmLl9kcml2ZXIgPSBkcml2
ZXIKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuZXR3b3JrX2Nvbm5lY3Rpb24oc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLkNvbm5lY3Rpb25UeXBlKHNlbGYuX2RyaXZlci5leGVjdXRlKENv
bW1hbmQuR0VUX05FVFdPUktfQ09OTkVDVElPTilbJ3ZhbHVlJ10pCisKKyAgICBkZWYgc2V0X25l
dHdvcmtfY29ubmVjdGlvbihzZWxmLCBuZXR3b3JrKToKKyAgICAgICAgIiIiCisgICAgICAgIFNl
dCB0aGUgbmV0d29yayBjb25uZWN0aW9uIGZvciB0aGUgcmVtb3RlIGRldmljZS4KKworICAgICAg
ICBFeGFtcGxlIG9mIHNldHRpbmcgYWlycGxhbmUgbW9kZTo6CisKKyAgICAgICAgICAgIGRyaXZl
ci5tb2JpbGUuc2V0X25ldHdvcmtfY29ubmVjdGlvbihkcml2ZXIubW9iaWxlLkFJUlBMQU5FX01P
REUpCisgICAgICAgICIiIgorICAgICAgICBtb2RlID0gbmV0d29yay5tYXNrIGlmIGlzaW5zdGFu
Y2UobmV0d29yaywgc2VsZi5Db25uZWN0aW9uVHlwZSkgZWxzZSBuZXR3b3JrCisgICAgICAgIHJl
dHVybiBzZWxmLkNvbm5lY3Rpb25UeXBlKHNlbGYuX2RyaXZlci5leGVjdXRlKAorICAgICAgICAg
ICAgQ29tbWFuZC5TRVRfTkVUV09SS19DT05ORUNUSU9OLCB7CisgICAgICAgICAgICAgICAgJ25h
bWUnOiAnbmV0d29ya19jb25uZWN0aW9uJywKKyAgICAgICAgICAgICAgICAncGFyYW1ldGVycyc6
IHsndHlwZSc6IG1vZGV9fSlbJ3ZhbHVlJ10pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY29u
dGV4dChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybnMgdGhlIGN1cnJlbnQgY29u
dGV4dCAoTmF0aXZlIG9yIFdlYlZpZXcpLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2RyaXZlci5leGVjdXRlKENvbW1hbmQuQ1VSUkVOVF9DT05URVhUX0hBTkRMRSkKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBjb250ZXh0cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IHJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSBjb250ZXh0cworICAgICAgICAiIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2RyaXZlci5leGVjdXRlKENvbW1hbmQuQ09OVEVYVF9IQU5ETEVTKQor
CisgICAgQGNvbnRleHQuc2V0dGVyCisgICAgZGVmIGNvbnRleHQoc2VsZiwgbmV3X2NvbnRleHQp
OgorICAgICAgICAiIiIKKyAgICAgICAgc2V0cyB0aGUgY3VycmVudCBjb250ZXh0CisgICAgICAg
ICIiIgorICAgICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9UT19DT05U
RVhULCB7Im5hbWUiOiBuZXdfY29udGV4dH0pCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3JlbW90ZV9jb25u
ZWN0aW9uLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVfY29ubmVjdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uOWYxOTQyM2Y4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3Rl
L3JlbW90ZV9jb25uZWN0aW9uLnB5CkBAIC0wLDAgKzEsNTYyIEBACisjIExpY2Vuc2VkIHRvIHRo
ZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3Jl
IGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMg
ZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMg
cmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmls
ZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisj
ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IGxv
Z2dpbmcKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBzdHJpbmcKK2ltcG9ydCBiYXNlNjQKKwordHJ5
OgorICAgIGltcG9ydCBodHRwLmNsaWVudCBhcyBodHRwbGliCisgICAgZnJvbSB1cmxsaWIgaW1w
b3J0IHJlcXVlc3QgYXMgdXJsX3JlcXVlc3QKKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgcGFyc2UK
K2V4Y2VwdCBJbXBvcnRFcnJvcjogICMgYWJvdmUgaXMgYXZhaWxhYmxlIGluIHB5MyssIGJlbG93
IGlzIHB5Mi43CisgICAgaW1wb3J0IGh0dHBsaWIgYXMgaHR0cGxpYgorICAgIGltcG9ydCB1cmxs
aWIyIGFzIHVybF9yZXF1ZXN0CisgICAgaW1wb3J0IHVybHBhcnNlIGFzIHBhcnNlCisKK2Zyb20g
c2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbiBpbXBvcnQgdXRpbHMgYXMgY29tbW9uX3V0aWxzCitm
cm9tIC5jb21tYW5kIGltcG9ydCBDb21tYW5kCitmcm9tIC5lcnJvcmhhbmRsZXIgaW1wb3J0IEVy
cm9yQ29kZQorZnJvbSAuIGltcG9ydCB1dGlscworCitMT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dl
cihfX25hbWVfXykKKworCitjbGFzcyBSZXF1ZXN0KHVybF9yZXF1ZXN0LlJlcXVlc3QpOgorICAg
ICIiIgorICAgIEV4dGVuZHMgdGhlIHVybF9yZXF1ZXN0LlJlcXVlc3QgdG8gc3VwcG9ydCBhbGwg
SFRUUCByZXF1ZXN0IHR5cGVzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVy
bCwgZGF0YT1Ob25lLCBtZXRob2Q9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBJbml0aWFs
aXNlIGEgbmV3IEhUVFAgcmVxdWVzdC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0g
dXJsIC0gU3RyaW5nIGZvciB0aGUgVVJMIHRvIHNlbmQgdGhlIHJlcXVlc3QgdG8uCisgICAgICAg
ICAgICAtIGRhdGEgLSBEYXRhIHRvIHNlbmQgd2l0aCB0aGUgcmVxdWVzdC4KKyAgICAgICAgIiIi
CisgICAgICAgIGlmIG1ldGhvZCBpcyBOb25lOgorICAgICAgICAgICAgbWV0aG9kID0gZGF0YSBp
cyBub3QgTm9uZSBhbmQgJ1BPU1QnIG9yICdHRVQnCisgICAgICAgIGVsaWYgbWV0aG9kICE9ICdQ
T1NUJyBhbmQgbWV0aG9kICE9ICdQVVQnOgorICAgICAgICAgICAgZGF0YSA9IE5vbmUKKyAgICAg
ICAgc2VsZi5fbWV0aG9kID0gbWV0aG9kCisgICAgICAgIHVybF9yZXF1ZXN0LlJlcXVlc3QuX19p
bml0X18oc2VsZiwgdXJsLCBkYXRhPWRhdGEpCisKKyAgICBkZWYgZ2V0X21ldGhvZChzZWxmKToK
KyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIEhUVFAgbWV0aG9kIHVzZWQgYnkgdGhp
cyByZXF1ZXN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ldGhvZAorCisK
K2NsYXNzIFJlc3BvbnNlKG9iamVjdCk6CisgICAgIiIiCisgICAgUmVwcmVzZW50cyBhbiBIVFRQ
IHJlc3BvbnNlLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZwLCBjb2RlLCBo
ZWFkZXJzLCB1cmwpOgorICAgICAgICAiIiIKKyAgICAgICAgSW5pdGlhbGlzZSBhIG5ldyBSZXNw
b25zZS4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0gZnAgLSBUaGUgcmVzcG9uc2Ug
Ym9keSBmaWxlIG9iamVjdC4KKyAgICAgICAgICAgIC0gY29kZSAtIFRoZSBIVFRQIHN0YXR1cyBj
b2RlIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIuCisgICAgICAgICAgICAtIGhlYWRlcnMgLSBBIGRp
Y3Rpb25hcnkgb2YgaGVhZGVycyByZXR1cm5lZCBieSB0aGUgc2VydmVyLgorICAgICAgICAgICAg
LSB1cmwgLSBVUkwgb2YgdGhlIHJldHJpZXZlZCByZXNvdXJjZSByZXByZXNlbnRlZCBieSB0aGlz
IFJlc3BvbnNlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5mcCA9IGZwCisgICAgICAgIHNl
bGYucmVhZCA9IGZwLnJlYWQKKyAgICAgICAgc2VsZi5jb2RlID0gY29kZQorICAgICAgICBzZWxm
LmhlYWRlcnMgPSBoZWFkZXJzCisgICAgICAgIHNlbGYudXJsID0gdXJsCisKKyAgICBkZWYgY2xv
c2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDbG9zZSB0aGUgcmVzcG9uc2UgYm9keSBm
aWxlIG9iamVjdC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYucmVhZCA9IE5vbmUKKyAgICAg
ICAgc2VsZi5mcCA9IE5vbmUKKworICAgIGRlZiBpbmZvKHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgUmV0dXJucyB0aGUgcmVzcG9uc2UgaGVhZGVycy4KKyAgICAgICAgIiIiCisgICAgICAg
IHJldHVybiBzZWxmLmhlYWRlcnMKKworICAgIGRlZiBnZXR1cmwoc2VsZik6CisgICAgICAgICIi
IgorICAgICAgICBSZXR1cm5zIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZSByZXR1cm5lZCBpbiB0
aGlzIHJlc3BvbnNlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYudXJsCisKKwor
Y2xhc3MgSHR0cEVycm9ySGFuZGxlcih1cmxfcmVxdWVzdC5IVFRQRGVmYXVsdEVycm9ySGFuZGxl
cik6CisgICAgIiIiCisgICAgQSBjdXN0b20gSFRUUCBlcnJvciBoYW5kbGVyLgorCisgICAgVXNl
ZCB0byByZXR1cm4gUmVzcG9uc2Ugb2JqZWN0cyBpbnN0ZWFkIG9mIHJhaXNpbmcgYW4gSFRUUEVy
cm9yIGV4Y2VwdGlvbi4KKyAgICAiIiIKKworICAgIGRlZiBodHRwX2Vycm9yX2RlZmF1bHQoc2Vs
ZiwgcmVxLCBmcCwgY29kZSwgbXNnLCBoZWFkZXJzKToKKyAgICAgICAgIiIiCisgICAgICAgIERl
ZmF1bHQgSFRUUCBlcnJvciBoYW5kbGVyLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAg
LSByZXEgLSBUaGUgb3JpZ2luYWwgUmVxdWVzdCBvYmplY3QuCisgICAgICAgICAgICAtIGZwIC0g
VGhlIHJlc3BvbnNlIGJvZHkgZmlsZSBvYmplY3QuCisgICAgICAgICAgICAtIGNvZGUgLSBUaGUg
SFRUUCBzdGF0dXMgY29kZSByZXR1cm5lZCBieSB0aGUgc2VydmVyLgorICAgICAgICAgICAgLSBt
c2cgLSBUaGUgSFRUUCBzdGF0dXMgbWVzc2FnZSByZXR1cm5lZCBieSB0aGUgc2VydmVyLgorICAg
ICAgICAgICAgLSBoZWFkZXJzIC0gVGhlIHJlc3BvbnNlIGhlYWRlcnMuCisKKyAgICAgICAgOlJl
dHVybnM6CisgICAgICAgICAgICBBIG5ldyBSZXNwb25zZSBvYmplY3QuCisgICAgICAgICIiIgor
ICAgICAgICByZXR1cm4gUmVzcG9uc2UoZnAsIGNvZGUsIGhlYWRlcnMsIHJlcS5nZXRfZnVsbF91
cmwoKSkKKworCitjbGFzcyBSZW1vdGVDb25uZWN0aW9uKG9iamVjdCk6CisgICAgIiIiQSBjb25u
ZWN0aW9uIHdpdGggdGhlIFJlbW90ZSBXZWJEcml2ZXIgc2VydmVyLgorCisgICAgQ29tbXVuaWNh
dGVzIHdpdGggdGhlIHNlcnZlciB1c2luZyB0aGUgV2ViRHJpdmVyIHdpcmUgcHJvdG9jb2w6Cisg
ICAgaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2VsZW5pdW0vd2lraS9Kc29uV2lyZVBy
b3RvY29sIiIiCisKKyAgICBfdGltZW91dCA9IHNvY2tldC5fR0xPQkFMX0RFRkFVTFRfVElNRU9V
VAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGdldF90aW1lb3V0KGNscyk6CisgICAgICAg
ICIiIgorICAgICAgICA6UmV0dXJuczoKKyAgICAgICAgICAgIFRpbWVvdXQgdmFsdWUgaW4gc2Vj
b25kcyBmb3IgYWxsIGh0dHAgcmVxdWVzdHMgbWFkZSB0byB0aGUgUmVtb3RlIENvbm5lY3Rpb24K
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBOb25lIGlmIGNscy5fdGltZW91dCA9PSBzb2Nr
ZXQuX0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQgZWxzZSBjbHMuX3RpbWVvdXQKKworICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiBzZXRfdGltZW91dChjbHMsIHRpbWVvdXQpOgorICAgICAgICAiIiIK
KyAgICAgICAgT3ZlcnJpZGUgdGhlIGRlZmF1bHQgdGltZW91dAorCisgICAgICAgIDpBcmdzOgor
ICAgICAgICAgICAgLSB0aW1lb3V0IC0gdGltZW91dCB2YWx1ZSBmb3IgaHR0cCByZXF1ZXN0cyBp
biBzZWNvbmRzCisgICAgICAgICIiIgorICAgICAgICBjbHMuX3RpbWVvdXQgPSB0aW1lb3V0CisK
KyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcmVzZXRfdGltZW91dChjbHMpOgorICAgICAgICAi
IiIKKyAgICAgICAgUmVzZXQgdGhlIGh0dHAgcmVxdWVzdCB0aW1lb3V0IHRvIHNvY2tldC5fR0xP
QkFMX0RFRkFVTFRfVElNRU9VVAorICAgICAgICAiIiIKKyAgICAgICAgY2xzLl90aW1lb3V0ID0g
c29ja2V0Ll9HTE9CQUxfREVGQVVMVF9USU1FT1VUCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgZ2V0X3JlbW90ZV9jb25uZWN0aW9uX2hlYWRlcnMoY2xzLCBwYXJzZWRfdXJsLCBrZWVwX2Fs
aXZlPUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldCBoZWFkZXJzIGZvciByZW1vdGUg
cmVxdWVzdC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gcGFyc2VkX3VybCAtIFRoZSBw
YXJzZWQgdXJsCisgICAgICAgICAtIGtlZXBfYWxpdmUgKEJvb2xlYW4pIC0gSXMgdGhpcyBhIGtl
ZXAtYWxpdmUgY29ubmVjdGlvbiAoZGVmYXVsdDogRmFsc2UpCisgICAgICAgICIiIgorCisgICAg
ICAgIGhlYWRlcnMgPSB7CisgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24n
LAorICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9
VVRGLTgnLAorICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnUHl0aG9uIGh0dHAgYXV0aCcKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIHBhcnNlZF91cmwudXNlcm5hbWU6CisgICAgICAgICAgICBi
YXNlNjRzdHJpbmcgPSBiYXNlNjQuYjY0ZW5jb2RlKCd7MC51c2VybmFtZX06ezAucGFzc3dvcmR9
Jy5mb3JtYXQocGFyc2VkX3VybCkuZW5jb2RlKCkpCisgICAgICAgICAgICBoZWFkZXJzLnVwZGF0
ZSh7CisgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmFzaWMge30nLmZvcm1hdChi
YXNlNjRzdHJpbmcuZGVjb2RlKCkpCisgICAgICAgICAgICB9KQorCisgICAgICAgIGlmIGtlZXBf
YWxpdmU6CisgICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZSh7CisgICAgICAgICAgICAgICAgJ0Nv
bm5lY3Rpb24nOiAna2VlcC1hbGl2ZScKKyAgICAgICAgICAgIH0pCisKKyAgICAgICAgcmV0dXJu
IGhlYWRlcnMKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZW1vdGVfc2VydmVyX2FkZHIsIGtl
ZXBfYWxpdmU9RmFsc2UsIHJlc29sdmVfaXA9VHJ1ZSk6CisgICAgICAgICMgQXR0ZW1wdCB0byBy
ZXNvbHZlIHRoZSBob3N0bmFtZSBhbmQgZ2V0IGFuIElQIGFkZHJlc3MuCisgICAgICAgIHNlbGYu
a2VlcF9hbGl2ZSA9IGtlZXBfYWxpdmUKKyAgICAgICAgcGFyc2VkX3VybCA9IHBhcnNlLnVybHBh
cnNlKHJlbW90ZV9zZXJ2ZXJfYWRkcikKKyAgICAgICAgYWRkciA9IHBhcnNlZF91cmwuaG9zdG5h
bWUKKyAgICAgICAgaWYgcGFyc2VkX3VybC5ob3N0bmFtZSBhbmQgcmVzb2x2ZV9pcDoKKyAgICAg
ICAgICAgIHBvcnQgPSBwYXJzZWRfdXJsLnBvcnQgb3IgTm9uZQorICAgICAgICAgICAgaWYgcGFy
c2VkX3VybC5zY2hlbWUgPT0gImh0dHBzIjoKKyAgICAgICAgICAgICAgICBpcCA9IHBhcnNlZF91
cmwuaG9zdG5hbWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaXAgPSBjb21t
b25fdXRpbHMuZmluZF9jb25uZWN0YWJsZV9pcChwYXJzZWRfdXJsLmhvc3RuYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0
KQorICAgICAgICAgICAgaWYgaXA6CisgICAgICAgICAgICAgICAgbmV0bG9jID0gaXAKKyAgICAg
ICAgICAgICAgICBhZGRyID0gbmV0bG9jCisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3VybC5w
b3J0OgorICAgICAgICAgICAgICAgICAgICBuZXRsb2MgPSBjb21tb25fdXRpbHMuam9pbl9ob3N0
X3BvcnQobmV0bG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyc2VkX3VybC5wb3J0KQorICAgICAgICAgICAgICAgIGlmIHBhcnNl
ZF91cmwudXNlcm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGF1dGggPSBwYXJzZWRfdXJsLnVz
ZXJuYW1lCisgICAgICAgICAgICAgICAgICAgIGlmIHBhcnNlZF91cmwucGFzc3dvcmQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRoICs9ICc6JXMnICUgcGFyc2VkX3VybC5wYXNzd29yZAor
ICAgICAgICAgICAgICAgICAgICBuZXRsb2MgPSAnJXNAJXMnICUgKGF1dGgsIG5ldGxvYykKKyAg
ICAgICAgICAgICAgICByZW1vdGVfc2VydmVyX2FkZHIgPSBwYXJzZS51cmx1bnBhcnNlKAorICAg
ICAgICAgICAgICAgICAgICAocGFyc2VkX3VybC5zY2hlbWUsIG5ldGxvYywgcGFyc2VkX3VybC5w
YXRoLAorICAgICAgICAgICAgICAgICAgICAgcGFyc2VkX3VybC5wYXJhbXMsIHBhcnNlZF91cmwu
cXVlcnksIHBhcnNlZF91cmwuZnJhZ21lbnQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBMT0dHRVIuaW5mbygnQ291bGQgbm90IGdldCBJUCBhZGRyZXNzIGZvciBob3N0OiAl
cycgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmwuaG9zdG5hbWUpCisK
KyAgICAgICAgc2VsZi5fdXJsID0gcmVtb3RlX3NlcnZlcl9hZGRyCisgICAgICAgIGlmIGtlZXBf
YWxpdmU6CisgICAgICAgICAgICBzZWxmLl9jb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbigK
KyAgICAgICAgICAgICAgICBzdHIoYWRkciksIHN0cihwYXJzZWRfdXJsLnBvcnQpLCB0aW1lb3V0
PXNlbGYuX3RpbWVvdXQpCisKKyAgICAgICAgc2VsZi5fY29tbWFuZHMgPSB7CisgICAgICAgICAg
ICBDb21tYW5kLlNUQVRVUzogKCdHRVQnLCAnL3N0YXR1cycpLAorICAgICAgICAgICAgQ29tbWFu
ZC5ORVdfU0VTU0lPTjogKCdQT1NUJywgJy9zZXNzaW9uJyksCisgICAgICAgICAgICBDb21tYW5k
LkdFVF9BTExfU0VTU0lPTlM6ICgnR0VUJywgJy9zZXNzaW9ucycpLAorICAgICAgICAgICAgQ29t
bWFuZC5RVUlUOiAoJ0RFTEVURScsICcvc2Vzc2lvbi8kc2Vzc2lvbklkJyksCisgICAgICAgICAg
ICBDb21tYW5kLkdFVF9DVVJSRU5UX1dJTkRPV19IQU5ETEU6CisgICAgICAgICAgICAgICAgKCdH
RVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3dfaGFuZGxlJyksCisgICAgICAgICAgICBD
b21tYW5kLlczQ19HRVRfQ1VSUkVOVF9XSU5ET1dfSEFORExFOgorICAgICAgICAgICAgICAgICgn
R0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvd2luZG93JyksCisgICAgICAgICAgICBDb21tYW5k
LkdFVF9XSU5ET1dfSEFORExFUzoKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8k
c2Vzc2lvbklkL3dpbmRvd19oYW5kbGVzJyksCisgICAgICAgICAgICBDb21tYW5kLlczQ19HRVRf
V0lORE9XX0hBTkRMRVM6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC93aW5kb3cvaGFuZGxlcycpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVQ6ICgnUE9TVCcs
ICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3VybCcpLAorICAgICAgICAgICAgQ29tbWFuZC5HT19GT1JX
QVJEOiAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9mb3J3YXJkJyksCisgICAgICAgICAg
ICBDb21tYW5kLkdPX0JBQ0s6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2JhY2snKSwK
KyAgICAgICAgICAgIENvbW1hbmQuUkVGUkVTSDogKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9u
SWQvcmVmcmVzaCcpLAorICAgICAgICAgICAgQ29tbWFuZC5FWEVDVVRFX1NDUklQVDogKCdQT1NU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZXhlY3V0ZScpLAorICAgICAgICAgICAgQ29tbWFuZC5X
M0NfRVhFQ1VURV9TQ1JJUFQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRz
ZXNzaW9uSWQvZXhlY3V0ZS9zeW5jJyksCisgICAgICAgICAgICBDb21tYW5kLlczQ19FWEVDVVRF
X1NDUklQVF9BU1lOQzoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC9leGVjdXRlL2FzeW5jJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9DVVJSRU5UX1VS
TDogKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC91cmwnKSwKKyAgICAgICAgICAgIENvbW1h
bmQuR0VUX1RJVExFOiAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3RpdGxlJyksCisgICAg
ICAgICAgICBDb21tYW5kLkdFVF9QQUdFX1NPVVJDRTogKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC9zb3VyY2UnKSwKKyAgICAgICAgICAgIENvbW1hbmQuU0NSRUVOU0hPVDogKCdHRVQnLCAn
L3Nlc3Npb24vJHNlc3Npb25JZC9zY3JlZW5zaG90JyksCisgICAgICAgICAgICBDb21tYW5kLkVM
RU1FTlRfU0NSRUVOU0hPVDogKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRp
ZC9zY3JlZW5zaG90JyksCisgICAgICAgICAgICBDb21tYW5kLkZJTkRfRUxFTUVOVDogKCdQT1NU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudCcpLAorICAgICAgICAgICAgQ29tbWFuZC5G
SU5EX0VMRU1FTlRTOiAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50cycpLAor
ICAgICAgICAgICAgQ29tbWFuZC5XM0NfR0VUX0FDVElWRV9FTEVNRU5UOiAoJ0dFVCcsICcvc2Vz
c2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvYWN0aXZlJyksCisgICAgICAgICAgICBDb21tYW5kLkdF
VF9BQ1RJVkVfRUxFTUVOVDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNl
c3Npb25JZC9lbGVtZW50L2FjdGl2ZScpLAorICAgICAgICAgICAgQ29tbWFuZC5GSU5EX0NISUxE
X0VMRU1FTlQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQv
ZWxlbWVudC8kaWQvZWxlbWVudCcpLAorICAgICAgICAgICAgQ29tbWFuZC5GSU5EX0NISUxEX0VM
RU1FTlRTOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Vs
ZW1lbnQvJGlkL2VsZW1lbnRzJyksCisgICAgICAgICAgICBDb21tYW5kLkNMSUNLX0VMRU1FTlQ6
ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2VsZW1lbnQvJGlkL2NsaWNrJyksCisgICAg
ICAgICAgICBDb21tYW5kLkNMRUFSX0VMRU1FTlQ6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL2VsZW1lbnQvJGlkL2NsZWFyJyksCisgICAgICAgICAgICBDb21tYW5kLlNVQk1JVF9FTEVN
RU5UOiAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9zdWJtaXQnKSwK
KyAgICAgICAgICAgIENvbW1hbmQuR0VUX0VMRU1FTlRfVEVYVDogKCdHRVQnLCAnL3Nlc3Npb24v
JHNlc3Npb25JZC9lbGVtZW50LyRpZC90ZXh0JyksCisgICAgICAgICAgICBDb21tYW5kLlNFTkRf
S0VZU19UT19FTEVNRU5UOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vz
c2lvbklkL2VsZW1lbnQvJGlkL3ZhbHVlJyksCisgICAgICAgICAgICBDb21tYW5kLlNFTkRfS0VZ
U19UT19BQ1RJVkVfRUxFTUVOVDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24v
JHNlc3Npb25JZC9rZXlzJyksCisgICAgICAgICAgICBDb21tYW5kLlVQTE9BRF9GSUxFOiAoJ1BP
U1QnLCAiL3Nlc3Npb24vJHNlc3Npb25JZC9maWxlIiksCisgICAgICAgICAgICBDb21tYW5kLkdF
VF9FTEVNRU5UX1ZBTFVFOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNz
aW9uSWQvZWxlbWVudC8kaWQvdmFsdWUnKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0VMRU1F
TlRfVEFHX05BTUU6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25J
ZC9lbGVtZW50LyRpZC9uYW1lJyksCisgICAgICAgICAgICBDb21tYW5kLklTX0VMRU1FTlRfU0VM
RUNURUQ6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVt
ZW50LyRpZC9zZWxlY3RlZCcpLAorICAgICAgICAgICAgQ29tbWFuZC5TRVRfRUxFTUVOVF9TRUxF
Q1RFRDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVt
ZW50LyRpZC9zZWxlY3RlZCcpLAorICAgICAgICAgICAgQ29tbWFuZC5JU19FTEVNRU5UX0VOQUJM
RUQ6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9lbGVtZW50
LyRpZC9lbmFibGVkJyksCisgICAgICAgICAgICBDb21tYW5kLklTX0VMRU1FTlRfRElTUExBWUVE
OgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8k
aWQvZGlzcGxheWVkJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX0xPQ0FUSU9O
OgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8k
aWQvbG9jYXRpb24nKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0VMRU1FTlRfTE9DQVRJT05f
T05DRV9TQ1JPTExFRF9JTlRPX1ZJRVc6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Np
b24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9sb2NhdGlvbl9pbl92aWV3JyksCisgICAgICAgICAg
ICBDb21tYW5kLkdFVF9FTEVNRU5UX1NJWkU6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nl
c3Npb24vJHNlc3Npb25JZC9lbGVtZW50LyRpZC9zaXplJyksCisgICAgICAgICAgICBDb21tYW5k
LkdFVF9FTEVNRU5UX1JFQ1Q6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNl
c3Npb25JZC9lbGVtZW50LyRpZC9yZWN0JyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVN
RU5UX0FUVFJJQlVURToKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL2VsZW1lbnQvJGlkL2F0dHJpYnV0ZS8kbmFtZScpLAorICAgICAgICAgICAgQ29tbWFuZC5H
RVRfRUxFTUVOVF9QUk9QRVJUWToKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8k
c2Vzc2lvbklkL2VsZW1lbnQvJGlkL3Byb3BlcnR5LyRuYW1lJyksCisgICAgICAgICAgICBDb21t
YW5kLkVMRU1FTlRfRVFVQUxTOgorICAgICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRz
ZXNzaW9uSWQvZWxlbWVudC8kaWQvZXF1YWxzLyRvdGhlcicpLAorICAgICAgICAgICAgQ29tbWFu
ZC5HRVRfQUxMX0NPT0tJRVM6ICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvY29va2llJyks
CisgICAgICAgICAgICBDb21tYW5kLkFERF9DT09LSUU6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vz
c2lvbklkL2Nvb2tpZScpLAorICAgICAgICAgICAgQ29tbWFuZC5ERUxFVEVfQUxMX0NPT0tJRVM6
CisgICAgICAgICAgICAgICAgKCdERUxFVEUnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9jb29raWUn
KSwKKyAgICAgICAgICAgIENvbW1hbmQuREVMRVRFX0NPT0tJRToKKyAgICAgICAgICAgICAgICAo
J0RFTEVURScsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Nvb2tpZS8kbmFtZScpLAorICAgICAgICAg
ICAgQ29tbWFuZC5TV0lUQ0hfVE9fRlJBTUU6ICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklk
L2ZyYW1lJyksCisgICAgICAgICAgICBDb21tYW5kLlNXSVRDSF9UT19QQVJFTlRfRlJBTUU6ICgn
UE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2ZyYW1lL3BhcmVudCcpLAorICAgICAgICAgICAg
Q29tbWFuZC5TV0lUQ0hfVE9fV0lORE9XOiAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93
aW5kb3cnKSwKKyAgICAgICAgICAgIENvbW1hbmQuQ0xPU0U6ICgnREVMRVRFJywgJy9zZXNzaW9u
LyRzZXNzaW9uSWQvd2luZG93JyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9FTEVNRU5UX1ZB
TFVFX09GX0NTU19QUk9QRVJUWToKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8k
c2Vzc2lvbklkL2VsZW1lbnQvJGlkL2Nzcy8kcHJvcGVydHlOYW1lJyksCisgICAgICAgICAgICBD
b21tYW5kLklNUExJQ0lUX1dBSVQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9u
LyRzZXNzaW9uSWQvdGltZW91dHMvaW1wbGljaXRfd2FpdCcpLAorICAgICAgICAgICAgQ29tbWFu
ZC5FWEVDVVRFX0FTWU5DX1NDUklQVDogKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvZXhl
Y3V0ZV9hc3luYycpLAorICAgICAgICAgICAgQ29tbWFuZC5TRVRfU0NSSVBUX1RJTUVPVVQ6Cisg
ICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvdGltZW91dHMvYXN5
bmNfc2NyaXB0JyksCisgICAgICAgICAgICBDb21tYW5kLlNFVF9USU1FT1VUUzoKKyAgICAgICAg
ICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90aW1lb3V0cycpLAorICAgICAg
ICAgICAgQ29tbWFuZC5ESVNNSVNTX0FMRVJUOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcv
c2Vzc2lvbi8kc2Vzc2lvbklkL2Rpc21pc3NfYWxlcnQnKSwKKyAgICAgICAgICAgIENvbW1hbmQu
VzNDX0RJU01JU1NfQUxFUlQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRz
ZXNzaW9uSWQvYWxlcnQvZGlzbWlzcycpLAorICAgICAgICAgICAgQ29tbWFuZC5BQ0NFUFRfQUxF
UlQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWNjZXB0
X2FsZXJ0JyksCisgICAgICAgICAgICBDb21tYW5kLlczQ19BQ0NFUFRfQUxFUlQ6CisgICAgICAg
ICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWxlcnQvYWNjZXB0JyksCisg
ICAgICAgICAgICBDb21tYW5kLlNFVF9BTEVSVF9WQUxVRToKKyAgICAgICAgICAgICAgICAoJ1BP
U1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9hbGVydF90ZXh0JyksCisgICAgICAgICAgICBDb21t
YW5kLlczQ19TRVRfQUxFUlRfVkFMVUU6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNz
aW9uLyRzZXNzaW9uSWQvYWxlcnQvdGV4dCcpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfQUxF
UlRfVEVYVDoKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Fs
ZXJ0X3RleHQnKSwKKyAgICAgICAgICAgIENvbW1hbmQuVzNDX0dFVF9BTEVSVF9URVhUOgorICAg
ICAgICAgICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWxlcnQvdGV4dCcpLAor
ICAgICAgICAgICAgQ29tbWFuZC5TRVRfQUxFUlRfQ1JFREVOVElBTFM6CisgICAgICAgICAgICAg
ICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWxlcnQvY3JlZGVudGlhbHMnKSwKKyAg
ICAgICAgICAgIENvbW1hbmQuQ0xJQ0s6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNz
aW9uLyRzZXNzaW9uSWQvY2xpY2snKSwKKyAgICAgICAgICAgIENvbW1hbmQuVzNDX0FDVElPTlM6
CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYWN0aW9ucycp
LAorICAgICAgICAgICAgQ29tbWFuZC5XM0NfQ0xFQVJfQUNUSU9OUzoKKyAgICAgICAgICAgICAg
ICAoJ0RFTEVURScsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2FjdGlvbnMnKSwKKyAgICAgICAgICAg
IENvbW1hbmQuRE9VQkxFX0NMSUNLOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lv
bi8kc2Vzc2lvbklkL2RvdWJsZWNsaWNrJyksCisgICAgICAgICAgICBDb21tYW5kLk1PVVNFX0RP
V046CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvYnV0dG9u
ZG93bicpLAorICAgICAgICAgICAgQ29tbWFuZC5NT1VTRV9VUDoKKyAgICAgICAgICAgICAgICAo
J1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9idXR0b251cCcpLAorICAgICAgICAgICAgQ29t
bWFuZC5NT1ZFX1RPOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lv
bklkL21vdmV0bycpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfV0lORE9XX1NJWkU6CisgICAg
ICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvJHdpbmRvd0hh
bmRsZS9zaXplJyksCisgICAgICAgICAgICBDb21tYW5kLlNFVF9XSU5ET1dfU0laRToKKyAgICAg
ICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvJHdpbmRvd0hh
bmRsZS9zaXplJyksCisgICAgICAgICAgICBDb21tYW5kLkdFVF9XSU5ET1dfUE9TSVRJT046Cisg
ICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvJHdpbmRv
d0hhbmRsZS9wb3NpdGlvbicpLAorICAgICAgICAgICAgQ29tbWFuZC5TRVRfV0lORE9XX1BPU0lU
SU9OOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3dpbmRv
dy8kd2luZG93SGFuZGxlL3Bvc2l0aW9uJyksCisgICAgICAgICAgICBDb21tYW5kLlNFVF9XSU5E
T1dfUkVDVDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93
aW5kb3cvcmVjdCcpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfV0lORE9XX1JFQ1Q6CisgICAg
ICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvcmVjdCcpLAor
ICAgICAgICAgICAgQ29tbWFuZC5NQVhJTUlaRV9XSU5ET1c6CisgICAgICAgICAgICAgICAgKCdQ
T1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvd2luZG93LyR3aW5kb3dIYW5kbGUvbWF4aW1pemUn
KSwKKyAgICAgICAgICAgIENvbW1hbmQuVzNDX01BWElNSVpFX1dJTkRPVzoKKyAgICAgICAgICAg
ICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvbWF4aW1pemUnKSwKKyAg
ICAgICAgICAgIENvbW1hbmQuU0VUX1NDUkVFTl9PUklFTlRBVElPTjoKKyAgICAgICAgICAgICAg
ICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9vcmllbnRhdGlvbicpLAorICAgICAgICAg
ICAgQ29tbWFuZC5HRVRfU0NSRUVOX09SSUVOVEFUSU9OOgorICAgICAgICAgICAgICAgICgnR0VU
JywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvb3JpZW50YXRpb24nKSwKKyAgICAgICAgICAgIENvbW1h
bmQuU0lOR0xFX1RBUDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC90b3VjaC9jbGljaycpLAorICAgICAgICAgICAgQ29tbWFuZC5UT1VDSF9ET1dOOgorICAg
ICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3RvdWNoL2Rvd24nKSwK
KyAgICAgICAgICAgIENvbW1hbmQuVE9VQ0hfVVA6CisgICAgICAgICAgICAgICAgKCdQT1NUJywg
Jy9zZXNzaW9uLyRzZXNzaW9uSWQvdG91Y2gvdXAnKSwKKyAgICAgICAgICAgIENvbW1hbmQuVE9V
Q0hfTU9WRToKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90
b3VjaC9tb3ZlJyksCisgICAgICAgICAgICBDb21tYW5kLlRPVUNIX1NDUk9MTDoKKyAgICAgICAg
ICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90b3VjaC9zY3JvbGwnKSwKKyAg
ICAgICAgICAgIENvbW1hbmQuRE9VQkxFX1RBUDoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAn
L3Nlc3Npb24vJHNlc3Npb25JZC90b3VjaC9kb3VibGVjbGljaycpLAorICAgICAgICAgICAgQ29t
bWFuZC5MT05HX1BSRVNTOgorICAgICAgICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vz
c2lvbklkL3RvdWNoL2xvbmdjbGljaycpLAorICAgICAgICAgICAgQ29tbWFuZC5GTElDSzoKKyAg
ICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC90b3VjaC9mbGljaycp
LAorICAgICAgICAgICAgQ29tbWFuZC5FWEVDVVRFX1NRTDoKKyAgICAgICAgICAgICAgICAoJ1BP
U1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9leGVjdXRlX3NxbCcpLAorICAgICAgICAgICAgQ29t
bWFuZC5HRVRfTE9DQVRJT046CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNl
c3Npb25JZC9sb2NhdGlvbicpLAorICAgICAgICAgICAgQ29tbWFuZC5TRVRfTE9DQVRJT046Cisg
ICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvbG9jYXRpb24nKSwK
KyAgICAgICAgICAgIENvbW1hbmQuR0VUX0FQUF9DQUNIRToKKyAgICAgICAgICAgICAgICAoJ0dF
VCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2FwcGxpY2F0aW9uX2NhY2hlJyksCisgICAgICAgICAg
ICBDb21tYW5kLkdFVF9BUFBfQ0FDSEVfU1RBVFVTOgorICAgICAgICAgICAgICAgICgnR0VUJywg
Jy9zZXNzaW9uLyRzZXNzaW9uSWQvYXBwbGljYXRpb25fY2FjaGUvc3RhdHVzJyksCisgICAgICAg
ICAgICBDb21tYW5kLkNMRUFSX0FQUF9DQUNIRToKKyAgICAgICAgICAgICAgICAoJ0RFTEVURScs
ICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2FwcGxpY2F0aW9uX2NhY2hlL2NsZWFyJyksCisgICAgICAg
ICAgICBDb21tYW5kLkdFVF9ORVRXT1JLX0NPTk5FQ1RJT046CisgICAgICAgICAgICAgICAgKCdH
RVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9uZXR3b3JrX2Nvbm5lY3Rpb24nKSwKKyAgICAgICAg
ICAgIENvbW1hbmQuU0VUX05FVFdPUktfQ09OTkVDVElPTjoKKyAgICAgICAgICAgICAgICAoJ1BP
U1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9uZXR3b3JrX2Nvbm5lY3Rpb24nKSwKKyAgICAgICAg
ICAgIENvbW1hbmQuR0VUX0xPQ0FMX1NUT1JBR0VfSVRFTToKKyAgICAgICAgICAgICAgICAoJ0dF
VCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2Uva2V5LyRrZXknKSwKKyAgICAg
ICAgICAgIENvbW1hbmQuUkVNT1ZFX0xPQ0FMX1NUT1JBR0VfSVRFTToKKyAgICAgICAgICAgICAg
ICAoJ0RFTEVURScsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2Uva2V5LyRrZXkn
KSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0xPQ0FMX1NUT1JBR0VfS0VZUzoKKyAgICAgICAg
ICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2UnKSwKKyAg
ICAgICAgICAgIENvbW1hbmQuU0VUX0xPQ0FMX1NUT1JBR0VfSVRFTToKKyAgICAgICAgICAgICAg
ICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9sb2NhbF9zdG9yYWdlJyksCisgICAgICAg
ICAgICBDb21tYW5kLkNMRUFSX0xPQ0FMX1NUT1JBR0U6CisgICAgICAgICAgICAgICAgKCdERUxF
VEUnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9sb2NhbF9zdG9yYWdlJyksCisgICAgICAgICAgICBD
b21tYW5kLkdFVF9MT0NBTF9TVE9SQUdFX1NJWkU6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAn
L3Nlc3Npb24vJHNlc3Npb25JZC9sb2NhbF9zdG9yYWdlL3NpemUnKSwKKyAgICAgICAgICAgIENv
bW1hbmQuR0VUX1NFU1NJT05fU1RPUkFHRV9JVEVNOgorICAgICAgICAgICAgICAgICgnR0VUJywg
Jy9zZXNzaW9uLyRzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL2tleS8ka2V5JyksCisgICAgICAg
ICAgICBDb21tYW5kLlJFTU9WRV9TRVNTSU9OX1NUT1JBR0VfSVRFTToKKyAgICAgICAgICAgICAg
ICAoJ0RFTEVURScsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZS9rZXkvJGtl
eScpLAorICAgICAgICAgICAgQ29tbWFuZC5HRVRfU0VTU0lPTl9TVE9SQUdFX0tFWVM6CisgICAg
ICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9zZXNzaW9uX3N0b3JhZ2Un
KSwKKyAgICAgICAgICAgIENvbW1hbmQuU0VUX1NFU1NJT05fU1RPUkFHRV9JVEVNOgorICAgICAg
ICAgICAgICAgICgnUE9TVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZScp
LAorICAgICAgICAgICAgQ29tbWFuZC5DTEVBUl9TRVNTSU9OX1NUT1JBR0U6CisgICAgICAgICAg
ICAgICAgKCdERUxFVEUnLCAnL3Nlc3Npb24vJHNlc3Npb25JZC9zZXNzaW9uX3N0b3JhZ2UnKSwK
KyAgICAgICAgICAgIENvbW1hbmQuR0VUX1NFU1NJT05fU1RPUkFHRV9TSVpFOgorICAgICAgICAg
ICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL3NpemUn
KSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0xPRzoKKyAgICAgICAgICAgICAgICAoJ1BPU1Qn
LCAnL3Nlc3Npb24vJHNlc3Npb25JZC9sb2cnKSwKKyAgICAgICAgICAgIENvbW1hbmQuR0VUX0FW
QUlMQUJMRV9MT0dfVFlQRVM6CisgICAgICAgICAgICAgICAgKCdHRVQnLCAnL3Nlc3Npb24vJHNl
c3Npb25JZC9sb2cvdHlwZXMnKSwKKyAgICAgICAgICAgIENvbW1hbmQuQ1VSUkVOVF9DT05URVhU
X0hBTkRMRToKKyAgICAgICAgICAgICAgICAoJ0dFVCcsICcvc2Vzc2lvbi8kc2Vzc2lvbklkL2Nv
bnRleHQnKSwKKyAgICAgICAgICAgIENvbW1hbmQuQ09OVEVYVF9IQU5ETEVTOgorICAgICAgICAg
ICAgICAgICgnR0VUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvY29udGV4dHMnKSwKKyAgICAgICAg
ICAgIENvbW1hbmQuU1dJVENIX1RPX0NPTlRFWFQ6CisgICAgICAgICAgICAgICAgKCdQT1NUJywg
Jy9zZXNzaW9uLyRzZXNzaW9uSWQvY29udGV4dCcpLAorICAgICAgICAgICAgQ29tbWFuZC5GVUxM
U0NSRUVOX1dJTkRPVzoKKyAgICAgICAgICAgICAgICAoJ1BPU1QnLCAnL3Nlc3Npb24vJHNlc3Np
b25JZC93aW5kb3cvZnVsbHNjcmVlbicpLAorICAgICAgICAgICAgQ29tbWFuZC5NSU5JTUlaRV9X
SU5ET1c6CisgICAgICAgICAgICAgICAgKCdQT1NUJywgJy9zZXNzaW9uLyRzZXNzaW9uSWQvd2lu
ZG93L21pbmltaXplJykKKyAgICAgICAgfQorCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29tbWFu
ZCwgcGFyYW1zKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgYSBjb21tYW5kIHRvIHRoZSBy
ZW1vdGUgc2VydmVyLgorCisgICAgICAgIEFueSBwYXRoIHN1YnRpdHV0aW9ucyByZXF1aXJlZCBm
b3IgdGhlIFVSTCBtYXBwZWQgdG8gdGhlIGNvbW1hbmQgc2hvdWxkIGJlCisgICAgICAgIGluY2x1
ZGVkIGluIHRoZSBjb21tYW5kIHBhcmFtZXRlcnMuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAg
ICAtIGNvbW1hbmQgLSBBIHN0cmluZyBzcGVjaWZ5aW5nIHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUu
CisgICAgICAgICAtIHBhcmFtcyAtIEEgZGljdGlvbmFyeSBvZiBuYW1lZCBwYXJhbWV0ZXJzIHRv
IHNlbmQgd2l0aCB0aGUgY29tbWFuZCBhcworICAgICAgICAgICBpdHMgSlNPTiBwYXlsb2FkLgor
ICAgICAgICAiIiIKKyAgICAgICAgY29tbWFuZF9pbmZvID0gc2VsZi5fY29tbWFuZHNbY29tbWFu
ZF0KKyAgICAgICAgYXNzZXJ0IGNvbW1hbmRfaW5mbyBpcyBub3QgTm9uZSwgJ1VucmVjb2duaXNl
ZCBjb21tYW5kICVzJyAlIGNvbW1hbmQKKyAgICAgICAgZGF0YSA9IHV0aWxzLmR1bXBfanNvbihw
YXJhbXMpCisgICAgICAgIHBhdGggPSBzdHJpbmcuVGVtcGxhdGUoY29tbWFuZF9pbmZvWzFdKS5z
dWJzdGl0dXRlKHBhcmFtcykKKyAgICAgICAgdXJsID0gJyVzJXMnICUgKHNlbGYuX3VybCwgcGF0
aCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3QoY29tbWFuZF9pbmZvWzBdLCB1cmwsIGJv
ZHk9ZGF0YSkKKworICAgIGRlZiBfcmVxdWVzdChzZWxmLCBtZXRob2QsIHVybCwgYm9keT1Ob25l
KToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgYW4gSFRUUCByZXF1ZXN0IHRvIHRoZSByZW1v
dGUgc2VydmVyLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBtZXRob2QgLSBBIHN0cmlu
ZyBmb3IgdGhlIEhUVFAgbWV0aG9kIHRvIHNlbmQgdGhlIHJlcXVlc3Qgd2l0aC4KKyAgICAgICAg
IC0gdXJsIC0gQSBzdHJpbmcgZm9yIHRoZSBVUkwgdG8gc2VuZCB0aGUgcmVxdWVzdCB0by4KKyAg
ICAgICAgIC0gYm9keSAtIEEgc3RyaW5nIGZvciByZXF1ZXN0IGJvZHkuIElnbm9yZWQgdW5sZXNz
IG1ldGhvZCBpcyBQT1NUIG9yIFBVVC4KKworICAgICAgICA6UmV0dXJuczoKKyAgICAgICAgICBB
IGRpY3Rpb25hcnkgd2l0aCB0aGUgc2VydmVyJ3MgcGFyc2VkIEpTT04gcmVzcG9uc2UuCisgICAg
ICAgICIiIgorICAgICAgICBMT0dHRVIuZGVidWcoJyVzICVzICVzJyAlIChtZXRob2QsIHVybCwg
Ym9keSkpCisKKyAgICAgICAgcGFyc2VkX3VybCA9IHBhcnNlLnVybHBhcnNlKHVybCkKKyAgICAg
ICAgaGVhZGVycyA9IHNlbGYuZ2V0X3JlbW90ZV9jb25uZWN0aW9uX2hlYWRlcnMocGFyc2VkX3Vy
bCwgc2VsZi5rZWVwX2FsaXZlKQorCisgICAgICAgIGlmIHNlbGYua2VlcF9hbGl2ZToKKyAgICAg
ICAgICAgIGlmIGJvZHkgYW5kIG1ldGhvZCAhPSAnUE9TVCcgYW5kIG1ldGhvZCAhPSAnUFVUJzoK
KyAgICAgICAgICAgICAgICBib2R5ID0gTm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHNlbGYuX2Nvbm4ucmVxdWVzdChtZXRob2QsIHBhcnNlZF91cmwucGF0aCwgYm9keSwg
aGVhZGVycykKKyAgICAgICAgICAgICAgICByZXNwID0gc2VsZi5fY29ubi5nZXRyZXNwb25zZSgp
CisgICAgICAgICAgICBleGNlcHQgKGh0dHBsaWIuSFRUUEV4Y2VwdGlvbiwgc29ja2V0LmVycm9y
KToKKyAgICAgICAgICAgICAgICBzZWxmLl9jb25uLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBy
YWlzZQorCisgICAgICAgICAgICBzdGF0dXNjb2RlID0gcmVzcC5zdGF0dXMKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHBhc3N3b3JkX21hbmFnZXIgPSBOb25lCisgICAgICAgICAgICBpZiBw
YXJzZWRfdXJsLnVzZXJuYW1lOgorICAgICAgICAgICAgICAgIG5ldGxvYyA9IHBhcnNlZF91cmwu
aG9zdG5hbWUKKyAgICAgICAgICAgICAgICBpZiBwYXJzZWRfdXJsLnBvcnQ6CisgICAgICAgICAg
ICAgICAgICAgIG5ldGxvYyArPSAiOiVzIiAlIHBhcnNlZF91cmwucG9ydAorICAgICAgICAgICAg
ICAgIGNsZWFuZWRfdXJsID0gcGFyc2UudXJsdW5wYXJzZSgoCisgICAgICAgICAgICAgICAgICAg
IHBhcnNlZF91cmwuc2NoZW1lLAorICAgICAgICAgICAgICAgICAgICBuZXRsb2MsCisgICAgICAg
ICAgICAgICAgICAgIHBhcnNlZF91cmwucGF0aCwKKyAgICAgICAgICAgICAgICAgICAgcGFyc2Vk
X3VybC5wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmwucXVlcnksCisgICAg
ICAgICAgICAgICAgICAgIHBhcnNlZF91cmwuZnJhZ21lbnQpKQorICAgICAgICAgICAgICAgIHBh
c3N3b3JkX21hbmFnZXIgPSB1cmxfcmVxdWVzdC5IVFRQUGFzc3dvcmRNZ3JXaXRoRGVmYXVsdFJl
YWxtKCkKKyAgICAgICAgICAgICAgICBwYXNzd29yZF9tYW5hZ2VyLmFkZF9wYXNzd29yZChOb25l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlczovLyVz
IiAlIChwYXJzZWRfdXJsLnNjaGVtZSwgbmV0bG9jKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRfdXJsLnVzZXJuYW1lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZF91cmwucGFzc3dvcmQpCisg
ICAgICAgICAgICAgICAgcmVxdWVzdCA9IFJlcXVlc3QoY2xlYW5lZF91cmwsIGRhdGE9Ym9keS5l
bmNvZGUoJ3V0Zi04JyksIG1ldGhvZD1tZXRob2QpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHJlcXVlc3QgPSBSZXF1ZXN0KHVybCwgZGF0YT1ib2R5LmVuY29kZSgndXRmLTgn
KSwgbWV0aG9kPW1ldGhvZCkKKworICAgICAgICAgICAgZm9yIGtleSwgdmFsIGluIGhlYWRlcnMu
aXRlbXMoKToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZF9oZWFkZXIoa2V5LCB2YWwpCisK
KyAgICAgICAgICAgIGlmIHBhc3N3b3JkX21hbmFnZXI6CisgICAgICAgICAgICAgICAgb3BlbmVy
ID0gdXJsX3JlcXVlc3QuYnVpbGRfb3BlbmVyKHVybF9yZXF1ZXN0LkhUVFBSZWRpcmVjdEhhbmRs
ZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SHR0cEVycm9ySGFuZGxlcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1cmxfcmVxdWVzdC5IVFRQQmFzaWNBdXRoSGFuZGxlcihwYXNzd29yZF9t
YW5hZ2VyKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgb3BlbmVyID0gdXJs
X3JlcXVlc3QuYnVpbGRfb3BlbmVyKHVybF9yZXF1ZXN0LkhUVFBSZWRpcmVjdEhhbmRsZXIoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cEVy
cm9ySGFuZGxlcigpKQorICAgICAgICAgICAgcmVzcCA9IG9wZW5lci5vcGVuKHJlcXVlc3QsIHRp
bWVvdXQ9c2VsZi5fdGltZW91dCkKKyAgICAgICAgICAgIHN0YXR1c2NvZGUgPSByZXNwLmNvZGUK
KyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHJlc3AsICdnZXRoZWFkZXInKToKKyAgICAgICAg
ICAgICAgICBpZiBoYXNhdHRyKHJlc3AuaGVhZGVycywgJ2dldGhlYWRlcicpOgorICAgICAgICAg
ICAgICAgICAgICByZXNwLmdldGhlYWRlciA9IGxhbWJkYSB4OiByZXNwLmhlYWRlcnMuZ2V0aGVh
ZGVyKHgpCisgICAgICAgICAgICAgICAgZWxpZiBoYXNhdHRyKHJlc3AuaGVhZGVycywgJ2dldCcp
OgorICAgICAgICAgICAgICAgICAgICByZXNwLmdldGhlYWRlciA9IGxhbWJkYSB4OiByZXNwLmhl
YWRlcnMuZ2V0KHgpCisKKyAgICAgICAgZGF0YSA9IHJlc3AucmVhZCgpCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGlmIDMwMCA8PSBzdGF0dXNjb2RlIDwgMzA0OgorICAgICAgICAgICAgICAg
IHJldHVybiBzZWxmLl9yZXF1ZXN0KCdHRVQnLCByZXNwLmdldGhlYWRlcignbG9jYXRpb24nKSkK
KyAgICAgICAgICAgIGJvZHkgPSBkYXRhLmRlY29kZSgndXRmLTgnKS5yZXBsYWNlKCdceDAwJywg
JycpLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIDM5OSA8IHN0YXR1c2NvZGUgPD0gNTAwOgorICAg
ICAgICAgICAgICAgIHJldHVybiB7J3N0YXR1cyc6IHN0YXR1c2NvZGUsICd2YWx1ZSc6IGJvZHl9
CisgICAgICAgICAgICBjb250ZW50X3R5cGUgPSBbXQorICAgICAgICAgICAgaWYgcmVzcC5nZXRo
ZWFkZXIoJ0NvbnRlbnQtVHlwZScpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRl
bnRfdHlwZSA9IHJlc3AuZ2V0aGVhZGVyKCdDb250ZW50LVR5cGUnKS5zcGxpdCgnOycpCisgICAg
ICAgICAgICBpZiBub3QgYW55KFt4LnN0YXJ0c3dpdGgoJ2ltYWdlL3BuZycpIGZvciB4IGluIGNv
bnRlbnRfdHlwZV0pOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
ZGF0YSA9IHV0aWxzLmxvYWRfanNvbihib2R5LnN0cmlwKCkpCisgICAgICAgICAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGlmIDE5OSA8IHN0YXR1c2NvZGUg
PCAzMDA6CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBFcnJvckNvZGUuU1VDQ0VT
UworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dHVzID0gRXJyb3JDb2RlLlVOS05PV05fRVJST1IKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHsnc3RhdHVzJzogc3RhdHVzLCAndmFsdWUnOiBib2R5LnN0cmlwKCl9CisKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgdHlwZShkYXRhKSBpcyBkaWN0LCAoCisgICAgICAgICAgICAgICAgICAgICdJ
bnZhbGlkIHNlcnZlciByZXNwb25zZSBib2R5OiAlcycgJSBib2R5KQorICAgICAgICAgICAgICAg
ICMgU29tZSBvZiB0aGUgZHJpdmVycyBpbmNvcnJlY3RseSByZXR1cm4gYSByZXNwb25zZQorICAg
ICAgICAgICAgICAgICMgd2l0aCBubyAndmFsdWUnIGZpZWxkIHdoZW4gdGhleSBzaG91bGQgcmV0
dXJuIG51bGwuCisgICAgICAgICAgICAgICAgaWYgJ3ZhbHVlJyBub3QgaW4gZGF0YToKKyAgICAg
ICAgICAgICAgICAgICAgZGF0YVsndmFsdWUnXSA9IE5vbmUKKyAgICAgICAgICAgICAgICByZXR1
cm4gZGF0YQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkYXRhID0geydzdGF0
dXMnOiAwLCAndmFsdWUnOiBib2R5LnN0cmlwKCl9CisgICAgICAgICAgICAgICAgcmV0dXJuIGRh
dGEKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIExPR0dFUi5kZWJ1ZygiRmluaXNoZWQg
UmVxdWVzdCIpCisgICAgICAgICAgICByZXNwLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvc3dp
dGNoX3RvLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3JlbW90ZS9zd2l0Y2hfdG8ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjQzZjU3MDg0NmYzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9zd2l0Y2hf
dG8ucHkKQEAgLTAsMCArMSwxMzIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVk
b20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGlj
ZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRo
IHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJp
Z2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRl
ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91
IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBM
aWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAg
aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyBy
ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29m
dHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4K
KyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z
CisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9y
IHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0
YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIC5jb21tYW5kIGltcG9ydCBDb21t
YW5kCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYWxlcnQgaW1wb3J0IEFsZXJ0Citm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVt
LmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLCBOb1N1Y2hG
cmFtZUV4Y2VwdGlvbiwgTm9TdWNoV2luZG93RXhjZXB0aW9uCisKK3RyeToKKyAgICBiYXNlc3Ry
aW5nCitleGNlcHQgTmFtZUVycm9yOgorICAgIGJhc2VzdHJpbmcgPSBzdHIKKworCitjbGFzcyBT
d2l0Y2hUbzoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgc2VsZi5f
ZHJpdmVyID0gZHJpdmVyCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYWN0aXZlX2VsZW1lbnQo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBlbGVtZW50IHdpdGggZm9j
dXMsIG9yIEJPRFkgaWYgbm90aGluZyBoYXMgZm9jdXMuCisKKyAgICAgICAgOlVzYWdlOgorICAg
ICAgICAgICAgZWxlbWVudCA9IGRyaXZlci5zd2l0Y2hfdG8uYWN0aXZlX2VsZW1lbnQKKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2RyaXZlci53M2M6CisgICAgICAgICAgICByZXR1cm4g
c2VsZi5fZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfR0VUX0FDVElWRV9FTEVNRU5UKVsndmFs
dWUnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5leGVj
dXRlKENvbW1hbmQuR0VUX0FDVElWRV9FTEVNRU5UKVsndmFsdWUnXQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIGFsZXJ0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3dpdGNoZXMgZm9j
dXMgdG8gYW4gYWxlcnQgb24gdGhlIHBhZ2UuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAg
ICAgYWxlcnQgPSBkcml2ZXIuc3dpdGNoX3RvLmFsZXJ0CisgICAgICAgICIiIgorICAgICAgICBy
ZXR1cm4gQWxlcnQoc2VsZi5fZHJpdmVyKQorCisgICAgZGVmIGRlZmF1bHRfY29udGVudChzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgIFN3aXRjaCBmb2N1cyB0byB0aGUgZGVmYXVsdCBmcmFt
ZS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1
bHRfY29udGVudCgpCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0ZShD
b21tYW5kLlNXSVRDSF9UT19GUkFNRSwgeydpZCc6IE5vbmV9KQorCisgICAgZGVmIGZyYW1lKHNl
bGYsIGZyYW1lX3JlZmVyZW5jZSk6CisgICAgICAgICIiIgorICAgICAgICBTd2l0Y2hlcyBmb2N1
cyB0byB0aGUgc3BlY2lmaWVkIGZyYW1lLCBieSBpbmRleCwgbmFtZSwgb3Igd2ViZWxlbWVudC4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gZnJhbWVfcmVmZXJlbmNlOiBUaGUgbmFtZSBv
ZiB0aGUgd2luZG93IHRvIHN3aXRjaCB0bywgYW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIGlu
ZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGEgd2ViZWxlbWVudCB0aGF0IGlz
IGFuIChpKWZyYW1lIHRvIHN3aXRjaCB0by4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAg
ICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKCdmcmFtZV9uYW1lJykKKyAgICAgICAgICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoMSkKKyAgICAgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUo
ZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoImlmcmFtZSIpWzBdKQorICAgICAgICAi
IiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShmcmFtZV9yZWZlcmVuY2UsIGJhc2VzdHJpbmcpIGFu
ZCBzZWxmLl9kcml2ZXIudzNjOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZy
YW1lX3JlZmVyZW5jZSA9IHNlbGYuX2RyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsIGZyYW1lX3Jl
ZmVyZW5jZSkKKyAgICAgICAgICAgIGV4Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uOgorICAg
ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVfcmVmZXJlbmNlID0g
c2VsZi5fZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBmcmFtZV9yZWZlcmVuY2UpCisgICAg
ICAgICAgICAgICAgZXhjZXB0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb246CisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlIE5vU3VjaEZyYW1lRXhjZXB0aW9uKGZyYW1lX3JlZmVyZW5jZSkKKworICAg
ICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9UT19GUkFNRSwgeydpZCc6
IGZyYW1lX3JlZmVyZW5jZX0pCisKKyAgICBkZWYgcGFyZW50X2ZyYW1lKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgU3dpdGNoZXMgZm9jdXMgdG8gdGhlIHBhcmVudCBjb250ZXh0LiBJZiB0
aGUgY3VycmVudCBjb250ZXh0IGlzIHRoZSB0b3AKKyAgICAgICAgbGV2ZWwgYnJvd3NpbmcgY29u
dGV4dCwgdGhlIGNvbnRleHQgcmVtYWlucyB1bmNoYW5nZWQuCisKKyAgICAgICAgOlVzYWdlOgor
ICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5wYXJlbnRfZnJhbWUoKQorICAgICAgICAiIiIK
KyAgICAgICAgc2VsZi5fZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5TV0lUQ0hfVE9fUEFSRU5UX0ZS
QU1FKQorCisgICAgZGVmIHdpbmRvdyhzZWxmLCB3aW5kb3dfbmFtZSk6CisgICAgICAgICIiIgor
ICAgICAgICBTd2l0Y2hlcyBmb2N1cyB0byB0aGUgc3BlY2lmaWVkIHdpbmRvdy4KKworICAgICAg
ICA6QXJnczoKKyAgICAgICAgIC0gd2luZG93X25hbWU6IFRoZSBuYW1lIG9yIHdpbmRvdyBoYW5k
bGUgb2YgdGhlIHdpbmRvdyB0byBzd2l0Y2ggdG8uCisKKyAgICAgICAgOlVzYWdlOgorICAgICAg
ICAgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coJ21haW4nKQorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgc2VsZi5fZHJpdmVyLnczYzoKKyAgICAgICAgICAgIHNlbGYuX3czY193aW5kb3cod2lu
ZG93X25hbWUpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZGF0YSA9IHsnbmFtZSc6IHdp
bmRvd19uYW1lfQorICAgICAgICBzZWxmLl9kcml2ZXIuZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9U
T19XSU5ET1csIGRhdGEpCisKKyAgICBkZWYgX3czY193aW5kb3coc2VsZiwgd2luZG93X25hbWUp
OgorICAgICAgICBkZWYgc2VuZF9oYW5kbGUoaCk6CisgICAgICAgICAgICBzZWxmLl9kcml2ZXIu
ZXhlY3V0ZShDb21tYW5kLlNXSVRDSF9UT19XSU5ET1csIHsnaGFuZGxlJzogaH0pCisKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgIyBUcnkgdXNpbmcgaXQgYXMgYSBoYW5kbGUgZmlyc3QuCisg
ICAgICAgICAgICBzZW5kX2hhbmRsZSh3aW5kb3dfbmFtZSkKKyAgICAgICAgZXhjZXB0IE5vU3Vj
aFdpbmRvd0V4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgIyBDaGVjayBldmVyeSB3aW5kb3cg
dG8gdHJ5IHRvIGZpbmQgdGhlIGdpdmVuIHdpbmRvdyBuYW1lLgorICAgICAgICAgICAgb3JpZ2lu
YWxfaGFuZGxlID0gc2VsZi5fZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgICAgICAg
ICAgaGFuZGxlcyA9IHNlbGYuX2RyaXZlci53aW5kb3dfaGFuZGxlcworICAgICAgICAgICAgZm9y
IGhhbmRsZSBpbiBoYW5kbGVzOgorICAgICAgICAgICAgICAgIHNlbmRfaGFuZGxlKGhhbmRsZSkK
KyAgICAgICAgICAgICAgICBjdXJyZW50X25hbWUgPSBzZWxmLl9kcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoJ3JldHVybiB3aW5kb3cubmFtZScpCisgICAgICAgICAgICAgICAgaWYgd2luZG93X25hbWUg
PT0gY3VycmVudF9uYW1lOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAg
IHNlbmRfaGFuZGxlKG9yaWdpbmFsX2hhbmRsZSkKKyAgICAgICAgICAgIHJhaXNlIGUKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRy
aXZlci9yZW1vdGUvdXRpbHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41NTA3ZWE1YTRjNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUv
dXRpbHMucHkKQEAgLTAsMCArMSwxMTMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZy
ZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3Ig
bGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3
aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29w
eXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1
bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsg
eW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRo
ZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisj
ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVz
cyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMg
c29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24g
YW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0Yg
QU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2Ug
Zm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxp
bWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQganNvbgoraW1wb3J0IGxv
Z2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgemlwZmlsZQorCitmcm9t
IHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9u
CisKK0xPR0dFUiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2RlZiBmb3JtYXRf
anNvbihqc29uX3N0cnVjdCk6CisgICAgcmV0dXJuIGpzb24uZHVtcHMoanNvbl9zdHJ1Y3QsIGlu
ZGVudD00KQorCisKK2RlZiBkdW1wX2pzb24oanNvbl9zdHJ1Y3QpOgorICAgIHJldHVybiBqc29u
LmR1bXBzKGpzb25fc3RydWN0KQorCisKK2RlZiBsb2FkX2pzb24ocyk6CisgICAgcmV0dXJuIGpz
b24ubG9hZHMocykKKworCitkZWYgaGFuZGxlX2ZpbmRfZWxlbWVudF9leGNlcHRpb24oZSk6Cisg
ICAgaWYgKCJVbmFibGUgdG8gZmluZCIgaW4gZS5yZXNwb25zZVsidmFsdWUiXVsibWVzc2FnZSJd
IG9yICJVbmFibGUgdG8gbG9jYXRlIiBpbiBlLnJlc3BvbnNlWyJ2YWx1ZSJdWyJtZXNzYWdlIl0p
OgorICAgICAgICByYWlzZSBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCJVbmFibGUgdG8gbG9jYXRl
IGVsZW1lbnQ6IikKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBlCisKKworZGVmIHJldHVybl92
YWx1ZV9pZl9leGlzdHMocmVzcCk6CisgICAgaWYgcmVzcCBhbmQgInZhbHVlIiBpbiByZXNwOgor
ICAgICAgICByZXR1cm4gcmVzcFsidmFsdWUiXQorCisKK2RlZiBnZXRfcm9vdF9wYXJlbnQoZWxl
bSk6CisgICAgcGFyZW50ID0gZWxlbS5wYXJlbnQKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICBwYXJlbnQucGFyZW50CisgICAgICAgICAgICBwYXJlbnQgPSBwYXJl
bnQucGFyZW50CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJl
dHVybiBwYXJlbnQKKworCitkZWYgdW56aXBfdG9fdGVtcF9kaXIoemlwX2ZpbGVfbmFtZSk6Cisg
ICAgIiIiVW56aXAgemlwZmlsZSB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkuCisKKyAgICBUaGUg
ZGlyZWN0b3J5IG9mIHRoZSB1bnppcHBlZCBmaWxlcyBpcyByZXR1cm5lZCBpZiBzdWNjZXNzLAor
ICAgIG90aGVyd2lzZSBOb25lIGlzIHJldHVybmVkLiAiIiIKKyAgICBpZiBub3QgemlwX2ZpbGVf
bmFtZSBvciBub3Qgb3MucGF0aC5leGlzdHMoemlwX2ZpbGVfbmFtZSk6CisgICAgICAgIHJldHVy
biBOb25lCisKKyAgICB6ZiA9IHppcGZpbGUuWmlwRmlsZSh6aXBfZmlsZV9uYW1lKQorCisgICAg
aWYgemYudGVzdHppcCgpIGlzIG5vdCBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
IyBVbnppcCB0aGUgZmlsZXMgaW50byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICBMT0dHRVIu
aW5mbygiRXh0cmFjdGluZyB6aXBwZWQgZmlsZTogJXMiICUgemlwX2ZpbGVfbmFtZSkKKyAgICB0
ZW1wZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCisKKyAgICB0cnk6CisgICAgICAgICMgQ3JlYXRl
IGRpcmVjdG9yaWVzIHRoYXQgZG9uJ3QgZXhpc3QKKyAgICAgICAgZm9yIHppcF9uYW1lIGluIHpm
Lm5hbWVsaXN0KCk6CisgICAgICAgICAgICAjIFdlIGhhdmUgbm8ga25vd2xlZGdlIG9uIHRoZSBv
cyB3aGVyZSB0aGUgemlwcGVkIGZpbGUgd2FzCisgICAgICAgICAgICAjIGNyZWF0ZWQsIHNvIHdl
IHJlc3RyaWN0IHRvIHppcCBmaWxlcyB3aXRoIHBhdGhzIHdpdGhvdXQKKyAgICAgICAgICAgICMg
Y2hhcmFjdG9yICJcIiBhbmQgIi8iLgorICAgICAgICAgICAgbmFtZSA9ICh6aXBfbmFtZS5yZXBs
YWNlKCJcXCIsIG9zLnBhdGguc2VwKS4KKyAgICAgICAgICAgICAgICAgICAgcmVwbGFjZSgiLyIs
IG9zLnBhdGguc2VwKSkKKyAgICAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4odGVtcGRpciwg
bmFtZSkKKyAgICAgICAgICAgIGlmIChuYW1lLmVuZHN3aXRoKG9zLnBhdGguc2VwKSBhbmQgbm90
IG9zLnBhdGguZXhpc3RzKGRlc3QpKToKKyAgICAgICAgICAgICAgICBvcy5ta2RpcihkZXN0KQor
ICAgICAgICAgICAgICAgIExPR0dFUi5kZWJ1ZygiRGlyZWN0b3J5ICVzIGNyZWF0ZWQuIiAlIGRl
c3QpCisKKyAgICAgICAgIyBDb3B5IGZpbGVzCisgICAgICAgIGZvciB6aXBfbmFtZSBpbiB6Zi5u
YW1lbGlzdCgpOgorICAgICAgICAgICAgIyBXZSBoYXZlIG5vIGtub3dsZWRnZSBvbiB0aGUgb3Mg
d2hlcmUgdGhlIHppcHBlZCBmaWxlIHdhcworICAgICAgICAgICAgIyBjcmVhdGVkLCBzbyB3ZSBy
ZXN0cmljdCB0byB6aXAgZmlsZXMgd2l0aCBwYXRocyB3aXRob3V0CisgICAgICAgICAgICAjIGNo
YXJhY3RvciAiXCIgYW5kICIvIi4KKyAgICAgICAgICAgIG5hbWUgPSAoemlwX25hbWUucmVwbGFj
ZSgiXFwiLCBvcy5wYXRoLnNlcCkuCisgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UoIi8iLCBv
cy5wYXRoLnNlcCkpCisgICAgICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKHRlbXBkaXIsIG5h
bWUpCisgICAgICAgICAgICBpZiBub3QgKG5hbWUuZW5kc3dpdGgob3MucGF0aC5zZXApKToKKyAg
ICAgICAgICAgICAgICBMT0dHRVIuZGVidWcoIkNvcHlpbmcgZmlsZSAlcy4uLi4uLiIgJSBkZXN0
KQorICAgICAgICAgICAgICAgIG91dGZpbGUgPSBvcGVuKGRlc3QsICd3YicpCisgICAgICAgICAg
ICAgICAgb3V0ZmlsZS53cml0ZSh6Zi5yZWFkKHppcF9uYW1lKSkKKyAgICAgICAgICAgICAgICBv
dXRmaWxlLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBMT0dHRVIuZGVidWcoIkZpbGUgJXMgY29w
aWVkLiIgJSBkZXN0KQorCisgICAgICAgIExPR0dFUi5pbmZvKCJVbnppcHBlZCBmaWxlIGNhbiBi
ZSBmb3VuZCBhdCAlcyIgJSB0ZW1wZGlyKQorICAgICAgICByZXR1cm4gdGVtcGRpcgorCisgICAg
ZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgICAgICBMT0dHRVIuZXJyb3IoIkVycm9yIGluIGV4
dHJhY3Rpbmcgd2ViZHJpdmVyLnhwaTogJXMiICUgZXJyKQorICAgICAgICByZXR1cm4gTm9uZQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3JlbW90ZS93ZWJkcml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmRyaXZlci5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTFlYTVhMzE1NWUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvcmVtb3RlL3dlYmRyaXZlci5weQpAQCAtMCwwICsxLDExNDEgQEAKKyMgTGljZW5zZWQg
dG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9y
IG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmls
ZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlv
bgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhp
cyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0
aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQg
dG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug
aXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVT
IE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
ICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiJU
aGUgV2ViRHJpdmVyIGltcGxlbWVudGF0aW9uLiIiIgorCitpbXBvcnQgYmFzZTY0CitpbXBvcnQg
Y29weQoraW1wb3J0IHdhcm5pbmdzCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5h
Z2VyCisKK2Zyb20gLmNvbW1hbmQgaW1wb3J0IENvbW1hbmQKK2Zyb20gLndlYmVsZW1lbnQgaW1w
b3J0IFdlYkVsZW1lbnQKK2Zyb20gLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBSZW1vdGVDb25u
ZWN0aW9uCitmcm9tIC5lcnJvcmhhbmRsZXIgaW1wb3J0IEVycm9ySGFuZGxlcgorZnJvbSAuc3dp
dGNoX3RvIGltcG9ydCBTd2l0Y2hUbworZnJvbSAubW9iaWxlIGltcG9ydCBNb2JpbGUKK2Zyb20g
LmZpbGVfZGV0ZWN0b3IgaW1wb3J0IEZpbGVEZXRlY3RvciwgTG9jYWxGaWxlRGV0ZWN0b3IKK2Zy
b20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IChJbnZhbGlkQXJndW1lbnRFeGNl
cHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVy
RXhjZXB0aW9uKQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQor
ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmh0bWw1LmFwcGxpY2F0aW9uX2NhY2hlIGlt
cG9ydCBBcHBsaWNhdGlvbkNhY2hlCisKK3RyeToKKyAgICBzdHIgPSBiYXNlc3RyaW5nCitleGNl
cHQgTmFtZUVycm9yOgorICAgIHBhc3MKKworCitfVzNDX0NBUEFCSUxJVFlfTkFNRVMgPSBmcm96
ZW5zZXQoWworICAgICdhY2NlcHRJbnNlY3VyZUNlcnRzJywKKyAgICAnYnJvd3Nlck5hbWUnLAor
ICAgICdicm93c2VyVmVyc2lvbicsCisgICAgJ3BsYXRmb3JtTmFtZScsCisgICAgJ3BhZ2VMb2Fk
U3RyYXRlZ3knLAorICAgICdwcm94eScsCisgICAgJ3NldFdpbmRvd1JlY3QnLAorICAgICd0aW1l
b3V0cycsCisgICAgJ3VuaGFuZGxlZFByb21wdEJlaGF2aW9yJywKK10pCisKK19PU1NfVzNDX0NP
TlZFUlNJT04gPSB7CisgICAgJ2FjY2VwdFNzbENlcnRzJzogJ2FjY2VwdEluc2VjdXJlQ2VydHMn
LAorICAgICd2ZXJzaW9uJzogJ2Jyb3dzZXJWZXJzaW9uJywKKyAgICAncGxhdGZvcm0nOiAncGxh
dGZvcm1OYW1lJworfQorCisKK2RlZiBfbWFrZV93M2NfY2FwcyhjYXBzKToKKyAgICAiIiJNYWtl
cyBhIFczQyBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMgb2JqZWN0LgorCisgICAgRmlsdGVycyBv
dXQgY2FwYWJpbGl0eSBuYW1lcyB0aGF0IGFyZSBub3QgaW4gdGhlIFczQyBzcGVjLiBTcGVjLWNv
bXBsaWFudAorICAgIGRyaXZlcnMgd2lsbCByZWplY3QgcmVxdWVzdHMgY29udGFpbmluZyB1bmtu
b3duIGNhcGFiaWxpdHkgbmFtZXMuCisKKyAgICBNb3ZlcyB0aGUgRmlyZWZveCBwcm9maWxlLCBp
ZiBwcmVzZW50LCBmcm9tIHRoZSBvbGQgbG9jYXRpb24gdG8gdGhlIG5ldyBGaXJlZm94CisgICAg
b3B0aW9ucyBvYmplY3QuCisKKyAgICA6QXJnczoKKyAgICAgLSBjYXBzIC0gQSBkaWN0aW9uYXJ5
IG9mIGNhcGFiaWxpdGllcyByZXF1ZXN0ZWQgYnkgdGhlIGNhbGxlci4KKyAgICAiIiIKKyAgICBj
YXBzID0gY29weS5kZWVwY29weShjYXBzKQorICAgIHByb2ZpbGUgPSBjYXBzLmdldCgnZmlyZWZv
eF9wcm9maWxlJykKKyAgICBhbHdheXNfbWF0Y2ggPSB7fQorICAgIGlmIGNhcHMuZ2V0KCdwcm94
eScpIGFuZCBjYXBzWydwcm94eSddLmdldCgncHJveHlUeXBlJyk6CisgICAgICAgIGNhcHNbJ3By
b3h5J11bJ3Byb3h5VHlwZSddID0gY2Fwc1sncHJveHknXVsncHJveHlUeXBlJ10ubG93ZXIoKQor
ICAgIGZvciBrLCB2IGluIGNhcHMuaXRlbXMoKToKKyAgICAgICAgaWYgdiBhbmQgayBpbiBfT1NT
X1czQ19DT05WRVJTSU9OOgorICAgICAgICAgICAgYWx3YXlzX21hdGNoW19PU1NfVzNDX0NPTlZF
UlNJT05ba11dID0gdi5sb3dlcigpIGlmIGsgPT0gJ3BsYXRmb3JtJyBlbHNlIHYKKyAgICAgICAg
aWYgayBpbiBfVzNDX0NBUEFCSUxJVFlfTkFNRVMgb3IgJzonIGluIGs6CisgICAgICAgICAgICBh
bHdheXNfbWF0Y2hba10gPSB2CisgICAgaWYgcHJvZmlsZToKKyAgICAgICAgbW96X29wdHMgPSBh
bHdheXNfbWF0Y2guZ2V0KCdtb3o6ZmlyZWZveE9wdGlvbnMnLCB7fSkKKyAgICAgICAgIyBJZiBp
dCdzIGFscmVhZHkgcHJlc2VudCwgYXNzdW1lIHRoZSBjYWxsZXIgZGlkIHRoYXQgaW50ZW50aW9u
YWxseS4KKyAgICAgICAgaWYgJ3Byb2ZpbGUnIG5vdCBpbiBtb3pfb3B0czoKKyAgICAgICAgICAg
ICMgRG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBjYXBhYmlsaXRpZXMuCisgICAgICAgICAgICBu
ZXdfb3B0cyA9IGNvcHkuZGVlcGNvcHkobW96X29wdHMpCisgICAgICAgICAgICBuZXdfb3B0c1sn
cHJvZmlsZSddID0gcHJvZmlsZQorICAgICAgICAgICAgYWx3YXlzX21hdGNoWydtb3o6ZmlyZWZv
eE9wdGlvbnMnXSA9IG5ld19vcHRzCisgICAgcmV0dXJuIHsiZmlyc3RNYXRjaCI6IFt7fV0sICJh
bHdheXNNYXRjaCI6IGFsd2F5c19tYXRjaH0KKworCitjbGFzcyBXZWJEcml2ZXIob2JqZWN0KToK
KyAgICAiIiIKKyAgICBDb250cm9scyBhIGJyb3dzZXIgYnkgc2VuZGluZyBjb21tYW5kcyB0byBh
IHJlbW90ZSBzZXJ2ZXIuCisgICAgVGhpcyBzZXJ2ZXIgaXMgZXhwZWN0ZWQgdG8gYmUgcnVubmlu
ZyB0aGUgV2ViRHJpdmVyIHdpcmUgcHJvdG9jb2wKKyAgICBhcyBkZWZpbmVkIGF0CisgICAgaHR0
cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2VsZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29s
CisKKyAgICA6QXR0cmlidXRlczoKKyAgICAgLSBzZXNzaW9uX2lkIC0gU3RyaW5nIElEIG9mIHRo
ZSBicm93c2VyIHNlc3Npb24gc3RhcnRlZCBhbmQgY29udHJvbGxlZCBieSB0aGlzIFdlYkRyaXZl
ci4KKyAgICAgLSBjYXBhYmlsaXRpZXMgLSBEaWN0aW9uYXR5IG9mIGVmZmVjdGl2ZSBjYXBhYmls
aXRpZXMgb2YgdGhpcyBicm93c2VyIHNlc3Npb24gYXMgcmV0dXJuZWQKKyAgICAgICAgIGJ5IHRo
ZSByZW1vdGUgc2VydmVyLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtSFEvc2VsZW5p
dW0vd2lraS9EZXNpcmVkQ2FwYWJpbGl0aWVzCisgICAgIC0gY29tbWFuZF9leGVjdXRvciAtIHJl
bW90ZV9jb25uZWN0aW9uLlJlbW90ZUNvbm5lY3Rpb24gb2JqZWN0IHVzZWQgdG8gZXhlY3V0ZSBj
b21tYW5kcy4KKyAgICAgLSBlcnJvcl9oYW5kbGVyIC0gZXJyb3JoYW5kbGVyLkVycm9ySGFuZGxl
ciBvYmplY3QgdXNlZCB0byBoYW5kbGUgZXJyb3JzLgorICAgICIiIgorCisgICAgX3dlYl9lbGVt
ZW50X2NscyA9IFdlYkVsZW1lbnQKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21tYW5kX2V4
ZWN1dG9yPSdodHRwOi8vMTI3LjAuMC4xOjQ0NDQvd2QvaHViJywKKyAgICAgICAgICAgICAgICAg
ZGVzaXJlZF9jYXBhYmlsaXRpZXM9Tm9uZSwgYnJvd3Nlcl9wcm9maWxlPU5vbmUsIHByb3h5PU5v
bmUsCisgICAgICAgICAgICAgICAgIGtlZXBfYWxpdmU9RmFsc2UsIGZpbGVfZGV0ZWN0b3I9Tm9u
ZSwgb3B0aW9ucz1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZSBhIG5ldyBkcml2
ZXIgdGhhdCB3aWxsIGlzc3VlIGNvbW1hbmRzIHVzaW5nIHRoZSB3aXJlIHByb3RvY29sLgorCisg
ICAgICAgIDpBcmdzOgorICAgICAgICAgLSBjb21tYW5kX2V4ZWN1dG9yIC0gRWl0aGVyIGEgc3Ry
aW5nIHJlcHJlc2VudGluZyBVUkwgb2YgdGhlIHJlbW90ZSBzZXJ2ZXIgb3IgYSBjdXN0b20KKyAg
ICAgICAgICAgICByZW1vdGVfY29ubmVjdGlvbi5SZW1vdGVDb25uZWN0aW9uIG9iamVjdC4gRGVm
YXVsdHMgdG8gJ2h0dHA6Ly8xMjcuMC4wLjE6NDQ0NC93ZC9odWInLgorICAgICAgICAgLSBkZXNp
cmVkX2NhcGFiaWxpdGllcyAtIEEgZGljdGlvbmFyeSBvZiBjYXBhYmlsaXRpZXMgdG8gcmVxdWVz
dCB3aGVuCisgICAgICAgICAgICAgc3RhcnRpbmcgdGhlIGJyb3dzZXIgc2Vzc2lvbi4gUmVxdWly
ZWQgcGFyYW1ldGVyLgorICAgICAgICAgLSBicm93c2VyX3Byb2ZpbGUgLSBBIHNlbGVuaXVtLndl
YmRyaXZlci5maXJlZm94LmZpcmVmb3hfcHJvZmlsZS5GaXJlZm94UHJvZmlsZSBvYmplY3QuCisg
ICAgICAgICAgICAgT25seSB1c2VkIGlmIEZpcmVmb3ggaXMgcmVxdWVzdGVkLiBPcHRpb25hbC4K
KyAgICAgICAgIC0gcHJveHkgLSBBIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJveHkuUHJv
eHkgb2JqZWN0LiBUaGUgYnJvd3NlciBzZXNzaW9uIHdpbGwKKyAgICAgICAgICAgICBiZSBzdGFy
dGVkIHdpdGggZ2l2ZW4gcHJveHkgc2V0dGluZ3MsIGlmIHBvc3NpYmxlLiBPcHRpb25hbC4KKyAg
ICAgICAgIC0ga2VlcF9hbGl2ZSAtIFdoZXRoZXIgdG8gY29uZmlndXJlIHJlbW90ZV9jb25uZWN0
aW9uLlJlbW90ZUNvbm5lY3Rpb24gdG8gdXNlCisgICAgICAgICAgICAgSFRUUCBrZWVwLWFsaXZl
LiBEZWZhdWx0cyB0byBGYWxzZS4KKyAgICAgICAgIC0gZmlsZV9kZXRlY3RvciAtIFBhc3MgY3Vz
dG9tIGZpbGUgZGV0ZWN0b3Igb2JqZWN0IGR1cmluZyBpbnN0YW50aWF0aW9uLiBJZiBOb25lLAor
ICAgICAgICAgICAgIHRoZW4gZGVmYXVsdCBMb2NhbEZpbGVEZXRlY3RvcigpIHdpbGwgYmUgdXNl
ZC4KKyAgICAgICAgIC0gb3B0aW9ucyAtIGluc3RhbmNlIG9mIGEgZHJpdmVyIG9wdGlvbnMuT3B0
aW9ucyBjbGFzcworICAgICAgICAiIiIKKyAgICAgICAgaWYgZGVzaXJlZF9jYXBhYmlsaXRpZXMg
aXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRGVzaXJlZCBD
YXBhYmlsaXRpZXMgY2FuJ3QgYmUgTm9uZSIpCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRl
c2lyZWRfY2FwYWJpbGl0aWVzLCBkaWN0KToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4
Y2VwdGlvbigiRGVzaXJlZCBDYXBhYmlsaXRpZXMgbXVzdCBiZSBhIGRpY3Rpb25hcnkiKQorICAg
ICAgICBpZiBwcm94eSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIlBs
ZWFzZSB1c2UgRmlyZWZveE9wdGlvbnMgdG8gc2V0IHByb3h5IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgcHJveHkuYWRkX3RvX2Nh
cGFiaWxpdGllcyhkZXNpcmVkX2NhcGFiaWxpdGllcykKKyAgICAgICAgaWYgb3B0aW9ucyBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzLnVwZGF0ZShvcHRpb25z
LnRvX2NhcGFiaWxpdGllcygpKQorICAgICAgICBzZWxmLmNvbW1hbmRfZXhlY3V0b3IgPSBjb21t
YW5kX2V4ZWN1dG9yCisgICAgICAgIGlmIHR5cGUoc2VsZi5jb21tYW5kX2V4ZWN1dG9yKSBpcyBi
eXRlcyBvciBpc2luc3RhbmNlKHNlbGYuY29tbWFuZF9leGVjdXRvciwgc3RyKToKKyAgICAgICAg
ICAgIHNlbGYuY29tbWFuZF9leGVjdXRvciA9IFJlbW90ZUNvbm5lY3Rpb24oY29tbWFuZF9leGVj
dXRvciwga2VlcF9hbGl2ZT1rZWVwX2FsaXZlKQorICAgICAgICBzZWxmLl9pc19yZW1vdGUgPSBU
cnVlCisgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUKKyAgICAgICAgc2VsZi5jYXBhYmls
aXRpZXMgPSB7fQorICAgICAgICBzZWxmLmVycm9yX2hhbmRsZXIgPSBFcnJvckhhbmRsZXIoKQor
ICAgICAgICBzZWxmLnN0YXJ0X2NsaWVudCgpCisgICAgICAgIGlmIGJyb3dzZXJfcHJvZmlsZSBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIlBsZWFzZSB1c2UgRmlyZWZv
eE9wdGlvbnMgdG8gc2V0IGJyb3dzZXIgcHJvZmlsZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgc2VsZi5zdGFydF9zZXNzaW9uKGRlc2ly
ZWRfY2FwYWJpbGl0aWVzLCBicm93c2VyX3Byb2ZpbGUpCisgICAgICAgIHNlbGYuX3N3aXRjaF90
byA9IFN3aXRjaFRvKHNlbGYpCisgICAgICAgIHNlbGYuX21vYmlsZSA9IE1vYmlsZShzZWxmKQor
ICAgICAgICBzZWxmLmZpbGVfZGV0ZWN0b3IgPSBmaWxlX2RldGVjdG9yIG9yIExvY2FsRmlsZURl
dGVjdG9yKCkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8ezAu
X19tb2R1bGVfX30uezAuX19uYW1lX199IChzZXNzaW9uPSJ7MX0iKT4nLmZvcm1hdCgKKyAgICAg
ICAgICAgIHR5cGUoc2VsZiksIHNlbGYuc2Vzc2lvbl9pZCkKKworICAgIEBjb250ZXh0bWFuYWdl
cgorICAgIGRlZiBmaWxlX2RldGVjdG9yX2NvbnRleHQoc2VsZiwgZmlsZV9kZXRlY3Rvcl9jbGFz
cywgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRlcyB0aGUg
Y3VycmVudCBmaWxlIGRldGVjdG9yIChpZiBuZWNlc3NhcnkpIGluIGxpbWl0ZWQgY29udGV4dC4K
KyAgICAgICAgRW5zdXJlcyB0aGUgb3JpZ2luYWwgZmlsZSBkZXRlY3RvciBpcyBzZXQgYWZ0ZXJ3
YXJkcy4KKworICAgICAgICBFeGFtcGxlOgorCisgICAgICAgIHdpdGggd2ViZHJpdmVyLmZpbGVf
ZGV0ZWN0b3JfY29udGV4dChVc2VsZXNzRmlsZURldGVjdG9yKToKKyAgICAgICAgICAgIHNvbWVp
bnB1dC5zZW5kX2tleXMoJy9ldGMvaG9zdHMnKQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBmaWxlX2RldGVjdG9yX2NsYXNzIC0gQ2xhc3Mgb2YgdGhlIGRlc2lyZWQgZmlsZSBkZXRlY3Rv
ci4gSWYgdGhlIGNsYXNzIGlzIGRpZmZlcmVudAorICAgICAgICAgICAgIGZyb20gdGhlIGN1cnJl
bnQgZmlsZV9kZXRlY3RvciwgdGhlbiB0aGUgY2xhc3MgaXMgaW5zdGFudGlhdGVkIHdpdGggYXJn
cyBhbmQga3dhcmdzCisgICAgICAgICAgICAgYW5kIHVzZWQgYXMgYSBmaWxlIGRldGVjdG9yIGR1
cmluZyB0aGUgZHVyYXRpb24gb2YgdGhlIGNvbnRleHQgbWFuYWdlci4KKyAgICAgICAgIC0gYXJn
cyAtIE9wdGlvbmFsIGFyZ3VtZW50cyB0aGF0IGdldCBwYXNzZWQgdG8gdGhlIGZpbGUgZGV0ZWN0
b3IgY2xhc3MgZHVyaW5nCisgICAgICAgICAgICAgaW5zdGFudGlhdGlvbi4KKyAgICAgICAgIC0g
a3dhcmdzIC0gS2V5d29yZCBhcmd1bWVudHMsIHBhc3NlZCB0aGUgc2FtZSB3YXkgYXMgYXJncy4K
KyAgICAgICAgIiIiCisgICAgICAgIGxhc3RfZGV0ZWN0b3IgPSBOb25lCisgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKHNlbGYuZmlsZV9kZXRlY3RvciwgZmlsZV9kZXRlY3Rvcl9jbGFzcyk6Cisg
ICAgICAgICAgICBsYXN0X2RldGVjdG9yID0gc2VsZi5maWxlX2RldGVjdG9yCisgICAgICAgICAg
ICBzZWxmLmZpbGVfZGV0ZWN0b3IgPSBmaWxlX2RldGVjdG9yX2NsYXNzKCphcmdzLCAqKmt3YXJn
cykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgeWllbGQKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIGlmIGxhc3RfZGV0ZWN0b3IgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAg
c2VsZi5maWxlX2RldGVjdG9yID0gbGFzdF9kZXRlY3RvcgorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIG1vYmlsZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21vYmlsZQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIG5hbWUg
b2YgdGhlIHVuZGVybHlpbmcgYnJvd3NlciBmb3IgdGhpcyBpbnN0YW5jZS4KKworICAgICAgICA6
VXNhZ2U6CisgICAgICAgICAtIGRyaXZlci5uYW1lCisgICAgICAgICIiIgorICAgICAgICBpZiAn
YnJvd3Nlck5hbWUnIGluIHNlbGYuY2FwYWJpbGl0aWVzOgorICAgICAgICAgICAgcmV0dXJuIHNl
bGYuY2FwYWJpbGl0aWVzWydicm93c2VyTmFtZSddCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByYWlzZSBLZXlFcnJvcignYnJvd3Nlck5hbWUgbm90IHNwZWNpZmllZCBpbiBzZXNzaW9uIGNh
cGFiaWxpdGllcycpCisKKyAgICBkZWYgc3RhcnRfY2xpZW50KHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgQ2FsbGVkIGJlZm9yZSBzdGFydGluZyBhIG5ldyBzZXNzaW9uLiBUaGlzIG1ldGhv
ZCBtYXkgYmUgb3ZlcnJpZGRlbgorICAgICAgICB0byBkZWZpbmUgY3VzdG9tIHN0YXJ0dXAgYmVo
YXZpb3IuCisgICAgICAgICIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgc3RvcF9jbGllbnQo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDYWxsZWQgYWZ0ZXIgZXhlY3V0aW5nIGEgcXVp
dCBjb21tYW5kLiBUaGlzIG1ldGhvZCBtYXkgYmUgb3ZlcnJpZGRlbgorICAgICAgICB0byBkZWZp
bmUgY3VzdG9tIHNodXRkb3duIGJlaGF2aW9yLgorICAgICAgICAiIiIKKyAgICAgICAgcGFzcwor
CisgICAgZGVmIHN0YXJ0X3Nlc3Npb24oc2VsZiwgY2FwYWJpbGl0aWVzLCBicm93c2VyX3Byb2Zp
bGU9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IHNlc3Npb24gd2l0
aCB0aGUgZGVzaXJlZCBjYXBhYmlsaXRpZXMuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAt
IGJyb3dzZXJfbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBicm93c2VyIHRvIHJlcXVlc3QuCisgICAg
ICAgICAtIHZlcnNpb24gLSBXaGljaCBicm93c2VyIHZlcnNpb24gdG8gcmVxdWVzdC4KKyAgICAg
ICAgIC0gcGxhdGZvcm0gLSBXaGljaCBwbGF0Zm9ybSB0byByZXF1ZXN0IHRoZSBicm93c2VyIG9u
LgorICAgICAgICAgLSBqYXZhc2NyaXB0X2VuYWJsZWQgLSBXaGV0aGVyIHRoZSBuZXcgc2Vzc2lv
biBzaG91bGQgc3VwcG9ydCBKYXZhU2NyaXB0LgorICAgICAgICAgLSBicm93c2VyX3Byb2ZpbGUg
LSBBIHNlbGVuaXVtLndlYmRyaXZlci5maXJlZm94LmZpcmVmb3hfcHJvZmlsZS5GaXJlZm94UHJv
ZmlsZSBvYmplY3QuIE9ubHkgdXNlZCBpZiBGaXJlZm94IGlzIHJlcXVlc3RlZC4KKyAgICAgICAg
IiIiCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNhcGFiaWxpdGllcywgZGljdCk6CisgICAg
ICAgICAgICByYWlzZSBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIkNhcGFiaWxpdGllcyBtdXN0
IGJlIGEgZGljdGlvbmFyeSIpCisgICAgICAgIGlmIGJyb3dzZXJfcHJvZmlsZToKKyAgICAgICAg
ICAgIGlmICJtb3o6ZmlyZWZveE9wdGlvbnMiIGluIGNhcGFiaWxpdGllczoKKyAgICAgICAgICAg
ICAgICBjYXBhYmlsaXRpZXNbIm1vejpmaXJlZm94T3B0aW9ucyJdWyJwcm9maWxlIl0gPSBicm93
c2VyX3Byb2ZpbGUuZW5jb2RlZAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBj
YXBhYmlsaXRpZXMudXBkYXRlKHsnZmlyZWZveF9wcm9maWxlJzogYnJvd3Nlcl9wcm9maWxlLmVu
Y29kZWR9KQorICAgICAgICB3M2NfY2FwcyA9IF9tYWtlX3czY19jYXBzKGNhcGFiaWxpdGllcykK
KyAgICAgICAgcGFyYW1ldGVycyA9IHsiY2FwYWJpbGl0aWVzIjogdzNjX2NhcHMsCisgICAgICAg
ICAgICAgICAgICAgICAgImRlc2lyZWRDYXBhYmlsaXRpZXMiOiBjYXBhYmlsaXRpZXN9CisgICAg
ICAgIHJlc3BvbnNlID0gc2VsZi5leGVjdXRlKENvbW1hbmQuTkVXX1NFU1NJT04sIHBhcmFtZXRl
cnMpCisgICAgICAgIGlmICdzZXNzaW9uSWQnIG5vdCBpbiByZXNwb25zZToKKyAgICAgICAgICAg
IHJlc3BvbnNlID0gcmVzcG9uc2VbJ3ZhbHVlJ10KKyAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0g
cmVzcG9uc2VbJ3Nlc3Npb25JZCddCisgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gcmVzcG9u
c2UuZ2V0KCd2YWx1ZScpCisKKyAgICAgICAgIyBpZiBjYXBhYmlsaXRpZXMgaXMgbm9uZSB3ZSBh
cmUgcHJvYmFibHkgc3BlYWtpbmcgdG8KKyAgICAgICAgIyBhIFczQyBlbmRwb2ludAorICAgICAg
ICBpZiBzZWxmLmNhcGFiaWxpdGllcyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5jYXBhYmls
aXRpZXMgPSByZXNwb25zZS5nZXQoJ2NhcGFiaWxpdGllcycpCisKKyAgICAgICAgIyBEb3VibGUg
Y2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYSBXM0MgQ29tcGxpYW50IGJyb3dzZXIKKyAgICAgICAg
c2VsZi53M2MgPSByZXNwb25zZS5nZXQoJ3N0YXR1cycpIGlzIE5vbmUKKworICAgIGRlZiBfd3Jh
cF92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGRpY3Qp
OgorICAgICAgICAgICAgY29udmVydGVkID0ge30KKyAgICAgICAgICAgIGZvciBrZXksIHZhbCBp
biB2YWx1ZS5pdGVtcygpOgorICAgICAgICAgICAgICAgIGNvbnZlcnRlZFtrZXldID0gc2VsZi5f
d3JhcF92YWx1ZSh2YWwpCisgICAgICAgICAgICByZXR1cm4gY29udmVydGVkCisgICAgICAgIGVs
aWYgaXNpbnN0YW5jZSh2YWx1ZSwgc2VsZi5fd2ViX2VsZW1lbnRfY2xzKToKKyAgICAgICAgICAg
IHJldHVybiB7J0VMRU1FTlQnOiB2YWx1ZS5pZCwgJ2VsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3
MzU0NjZjZWNmJzogdmFsdWUuaWR9CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgbGlz
dCk6CisgICAgICAgICAgICByZXR1cm4gbGlzdChzZWxmLl93cmFwX3ZhbHVlKGl0ZW0pIGZvciBp
dGVtIGluIHZhbHVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisK
KyAgICBkZWYgY3JlYXRlX3dlYl9lbGVtZW50KHNlbGYsIGVsZW1lbnRfaWQpOgorICAgICAgICAi
IiJDcmVhdGVzIGEgd2ViIGVsZW1lbnQgd2l0aCB0aGUgc3BlY2lmaWVkIGBlbGVtZW50X2lkYC4i
IiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3dlYl9lbGVtZW50X2NscyhzZWxmLCBlbGVtZW50X2lk
LCB3M2M9c2VsZi53M2MpCisKKyAgICBkZWYgX3Vud3JhcF92YWx1ZShzZWxmLCB2YWx1ZSk6Cisg
ICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpOgorICAgICAgICAgICAgaWYgJ0VMRU1F
TlQnIGluIHZhbHVlIG9yICdlbGVtZW50LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZicgaW4g
dmFsdWU6CisgICAgICAgICAgICAgICAgd3JhcHBlZF9pZCA9IHZhbHVlLmdldCgnRUxFTUVOVCcs
IE5vbmUpCisgICAgICAgICAgICAgICAgaWYgd3JhcHBlZF9pZDoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuY3JlYXRlX3dlYl9lbGVtZW50KHZhbHVlWydFTEVNRU5UJ10pCisgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY3JlYXRl
X3dlYl9lbGVtZW50KHZhbHVlWydlbGVtZW50LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZidd
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWwgaW4gdmFs
dWUuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVba2V5XSA9IHNlbGYuX3Vud3Jh
cF92YWx1ZSh2YWwpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIGVsaWYg
aXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCk6CisgICAgICAgICAgICByZXR1cm4gbGlzdChzZWxmLl91
bndyYXBfdmFsdWUoaXRlbSkgZm9yIGl0ZW0gaW4gdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiBleGVjdXRlKHNlbGYsIGRyaXZlcl9jb21t
YW5kLCBwYXJhbXM9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBTZW5kcyBhIGNvbW1hbmQg
dG8gYmUgZXhlY3V0ZWQgYnkgYSBjb21tYW5kLkNvbW1hbmRFeGVjdXRvci4KKworICAgICAgICA6
QXJnczoKKyAgICAgICAgIC0gZHJpdmVyX2NvbW1hbmQ6IFRoZSBuYW1lIG9mIHRoZSBjb21tYW5k
IHRvIGV4ZWN1dGUgYXMgYSBzdHJpbmcuCisgICAgICAgICAtIHBhcmFtczogQSBkaWN0aW9uYXJ5
IG9mIG5hbWVkIHBhcmFtZXRlcnMgdG8gc2VuZCB3aXRoIHRoZSBjb21tYW5kLgorCisgICAgICAg
IDpSZXR1cm5zOgorICAgICAgICAgIFRoZSBjb21tYW5kJ3MgSlNPTiByZXNwb25zZSBsb2FkZWQg
aW50byBhIGRpY3Rpb25hcnkgb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5z
ZXNzaW9uX2lkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgbm90IHBhcmFtczoKKyAgICAg
ICAgICAgICAgICBwYXJhbXMgPSB7J3Nlc3Npb25JZCc6IHNlbGYuc2Vzc2lvbl9pZH0KKyAgICAg
ICAgICAgIGVsaWYgJ3Nlc3Npb25JZCcgbm90IGluIHBhcmFtczoKKyAgICAgICAgICAgICAgICBw
YXJhbXNbJ3Nlc3Npb25JZCddID0gc2VsZi5zZXNzaW9uX2lkCisKKyAgICAgICAgcGFyYW1zID0g
c2VsZi5fd3JhcF92YWx1ZShwYXJhbXMpCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jb21tYW5k
X2V4ZWN1dG9yLmV4ZWN1dGUoZHJpdmVyX2NvbW1hbmQsIHBhcmFtcykKKyAgICAgICAgaWYgcmVz
cG9uc2U6CisgICAgICAgICAgICBzZWxmLmVycm9yX2hhbmRsZXIuY2hlY2tfcmVzcG9uc2UocmVz
cG9uc2UpCisgICAgICAgICAgICByZXNwb25zZVsndmFsdWUnXSA9IHNlbGYuX3Vud3JhcF92YWx1
ZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZS5nZXQoJ3ZhbHVlJywgTm9uZSkpCisgICAgICAg
ICAgICByZXR1cm4gcmVzcG9uc2UKKyAgICAgICAgIyBJZiB0aGUgc2VydmVyIGRvZXNuJ3Qgc2Vu
ZCBhIHJlc3BvbnNlLCBhc3N1bWUgdGhlIGNvbW1hbmQgd2FzCisgICAgICAgICMgYSBzdWNjZXNz
CisgICAgICAgIHJldHVybiB7J3N1Y2Nlc3MnOiAwLCAndmFsdWUnOiBOb25lLCAnc2Vzc2lvbklk
Jzogc2VsZi5zZXNzaW9uX2lkfQorCisgICAgZGVmIGdldChzZWxmLCB1cmwpOgorICAgICAgICAi
IiIKKyAgICAgICAgTG9hZHMgYSB3ZWIgcGFnZSBpbiB0aGUgY3VycmVudCBicm93c2VyIHNlc3Np
b24uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVQsIHsndXJs
JzogdXJsfSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0aXRsZShzZWxmKToKKyAgICAgICAg
IiIiUmV0dXJucyB0aGUgdGl0bGUgb2YgdGhlIGN1cnJlbnQgcGFnZS4KKworICAgICAgICA6VXNh
Z2U6CisgICAgICAgICAgICBkcml2ZXIudGl0bGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3Ag
PSBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfVElUTEUpCisgICAgICAgIHJldHVybiByZXNwWyd2
YWx1ZSddIGlmIHJlc3BbJ3ZhbHVlJ10gaXMgbm90IE5vbmUgZWxzZSAiIgorCisgICAgZGVmIGZp
bmRfZWxlbWVudF9ieV9pZChzZWxmLCBpZF8pOgorICAgICAgICAiIiJGaW5kcyBhbiBlbGVtZW50
IGJ5IGlkLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBpZFxfIC0gVGhlIGlkIG9mIHRo
ZSBlbGVtZW50IHRvIGJlIGZvdW5kLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfaWQoJ2ZvbycpCisgICAgICAgICIiIgorICAgICAgICByZXR1
cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPWlkXykKKworICAgIGRlZiBmaW5k
X2VsZW1lbnRzX2J5X2lkKHNlbGYsIGlkXyk6CisgICAgICAgICIiIgorICAgICAgICBGaW5kcyBt
dWx0aXBsZSBlbGVtZW50cyBieSBpZC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gaWRc
XyAtIFRoZSBpZCBvZiB0aGUgZWxlbWVudHMgdG8gYmUgZm91bmQuCisKKyAgICAgICAgOlVzYWdl
OgorICAgICAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfaWQoJ2ZvbycpCisgICAgICAg
ICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LklELCB2YWx1ZT1p
ZF8pCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X3hwYXRoKHNlbGYsIHhwYXRoKToKKyAgICAg
ICAgIiIiCisgICAgICAgIEZpbmRzIGFuIGVsZW1lbnQgYnkgeHBhdGguCisKKyAgICAgICAgOkFy
Z3M6CisgICAgICAgICAtIHhwYXRoIC0gVGhlIHhwYXRoIGxvY2F0b3Igb2YgdGhlIGVsZW1lbnQg
dG8gZmluZC4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X3hwYXRoKCcvL2Rpdi90ZFsxXScpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuWFBBVEgsIHZhbHVlPXhwYXRoKQorCisgICAgZGVmIGZp
bmRfZWxlbWVudHNfYnlfeHBhdGgoc2VsZiwgeHBhdGgpOgorICAgICAgICAiIiIKKyAgICAgICAg
RmluZHMgbXVsdGlwbGUgZWxlbWVudHMgYnkgeHBhdGguCisKKyAgICAgICAgOkFyZ3M6CisgICAg
ICAgICAtIHhwYXRoIC0gVGhlIHhwYXRoIGxvY2F0b3Igb2YgdGhlIGVsZW1lbnRzIHRvIGJlIGZv
dW5kLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRz
X2J5X3hwYXRoKCIvL2Rpdltjb250YWlucyhAY2xhc3MsICdmb28nKV0iKQorICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5YUEFUSCwgdmFsdWU9eHBh
dGgpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQp
OgorICAgICAgICAiIiIKKyAgICAgICAgRmluZHMgYW4gZWxlbWVudCBieSBsaW5rIHRleHQuCisK
KyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGxpbmtfdGV4dDogVGhlIHRleHQgb2YgdGhlIGVs
ZW1lbnQgdG8gYmUgZm91bmQuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoJ1NpZ24gSW4nKQorICAgICAgICAiIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LkxJTktfVEVYVCwgdmFsdWU9bGlua190
ZXh0KQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfbGlua190ZXh0KHNlbGYsIHRleHQpOgor
ICAgICAgICAiIiIKKyAgICAgICAgRmluZHMgZWxlbWVudHMgYnkgbGluayB0ZXh0LgorCisgICAg
ICAgIDpBcmdzOgorICAgICAgICAgLSBsaW5rX3RleHQ6IFRoZSB0ZXh0IG9mIHRoZSBlbGVtZW50
cyB0byBiZSBmb3VuZC4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50c19ieV9saW5rX3RleHQoJ1NpZ24gSW4nKQorICAgICAgICAiIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5MSU5LX1RFWFQsIHZhbHVlPXRleHQpCisK
KyAgICBkZWYgZmluZF9lbGVtZW50X2J5X3BhcnRpYWxfbGlua190ZXh0KHNlbGYsIGxpbmtfdGV4
dCk6CisgICAgICAgICIiIgorICAgICAgICBGaW5kcyBhbiBlbGVtZW50IGJ5IGEgcGFydGlhbCBt
YXRjaCBvZiBpdHMgbGluayB0ZXh0LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBsaW5r
X3RleHQ6IFRoZSB0ZXh0IG9mIHRoZSBlbGVtZW50IHRvIHBhcnRpYWxseSBtYXRjaCBvbi4KKwor
ICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3BhcnRp
YWxfbGlua190ZXh0KCdTaWduJykKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZp
bmRfZWxlbWVudChieT1CeS5QQVJUSUFMX0xJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0KQorCisg
ICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfcGFydGlhbF9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0
KToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmRzIGVsZW1lbnRzIGJ5IGEgcGFydGlhbCBtYXRj
aCBvZiB0aGVpciBsaW5rIHRleHQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIGxpbmtf
dGV4dDogVGhlIHRleHQgb2YgdGhlIGVsZW1lbnQgdG8gcGFydGlhbCBtYXRjaCBvbi4KKworICAg
ICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3BhcnRpYWxf
bGlua190ZXh0KCdTaWduJykKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRf
ZWxlbWVudHMoYnk9QnkuUEFSVElBTF9MSU5LX1RFWFQsIHZhbHVlPWxpbmtfdGV4dCkKKworICAg
IGRlZiBmaW5kX2VsZW1lbnRfYnlfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAg
ICAgIEZpbmRzIGFuIGVsZW1lbnQgYnkgbmFtZS4KKworICAgICAgICA6QXJnczoKKyAgICAgICAg
IC0gbmFtZTogVGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQgdG8gZmluZC4KKworICAgICAgICA6VXNh
Z2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoJ2ZvbycpCisgICAg
ICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuTkFNRSwgdmFs
dWU9bmFtZSkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRzX2J5X25hbWUoc2VsZiwgbmFtZSk6Cisg
ICAgICAgICIiIgorICAgICAgICBGaW5kcyBlbGVtZW50cyBieSBuYW1lLgorCisgICAgICAgIDpB
cmdzOgorICAgICAgICAgLSBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZWxlbWVudHMgdG8gZmluZC4K
KworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50c19ieV9u
YW1lKCdmb28nKQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50
cyhieT1CeS5OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV90YWdf
bmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmRzIGFuIGVsZW1lbnQg
YnkgdGFnIG5hbWUuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIG5hbWU6IFRoZSB0YWcg
bmFtZSBvZiB0aGUgZWxlbWVudCB0byBmaW5kLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAg
ICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoJ2ZvbycpCisgICAgICAgICIiIgor
ICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuVEFHX05BTUUsIHZhbHVlPW5h
bWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV90YWdfbmFtZShzZWxmLCBuYW1lKToKKyAg
ICAgICAgIiIiCisgICAgICAgIEZpbmRzIGVsZW1lbnRzIGJ5IHRhZyBuYW1lLgorCisgICAgICAg
IDpBcmdzOgorICAgICAgICAgLSBuYW1lOiBUaGUgdGFnIG5hbWUgdGhlIHVzZSB3aGVuIGZpbmRp
bmcgZWxlbWVudHMuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmZpbmRf
ZWxlbWVudHNfYnlfdGFnX25hbWUoJ2ZvbycpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LlRBR19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVm
IGZpbmRfZWxlbWVudF9ieV9jbGFzc19uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIKKyAg
ICAgICAgRmluZHMgYW4gZWxlbWVudCBieSBjbGFzcyBuYW1lLgorCisgICAgICAgIDpBcmdzOgor
ICAgICAgICAgLSBuYW1lOiBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgZWxlbWVudCB0byBmaW5kLgor
CisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfY2xh
c3NfbmFtZSgnZm9vJykKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxl
bWVudChieT1CeS5DTEFTU19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVu
dHNfYnlfY2xhc3NfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmRz
IGVsZW1lbnRzIGJ5IGNsYXNzIG5hbWUuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIG5h
bWU6IFRoZSBjbGFzcyBuYW1lIG9mIHRoZSBlbGVtZW50cyB0byBmaW5kLgorCisgICAgICAgIDpV
c2FnZToKKyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X2NsYXNzX25hbWUoJ2Zv
bycpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5
LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2Nzc19z
ZWxlY3RvcihzZWxmLCBjc3Nfc2VsZWN0b3IpOgorICAgICAgICAiIiIKKyAgICAgICAgRmluZHMg
YW4gZWxlbWVudCBieSBjc3Mgc2VsZWN0b3IuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAt
IGNzc19zZWxlY3RvcjogVGhlIGNzcyBzZWxlY3RvciB0byB1c2Ugd2hlbiBmaW5kaW5nIGVsZW1l
bnRzLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfY3NzX3NlbGVjdG9yKCcjZm9vJykKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxm
LmZpbmRfZWxlbWVudChieT1CeS5DU1NfU0VMRUNUT1IsIHZhbHVlPWNzc19zZWxlY3RvcikKKwor
ICAgIGRlZiBmaW5kX2VsZW1lbnRzX2J5X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nfc2VsZWN0b3Ip
OgorICAgICAgICAiIiIKKyAgICAgICAgRmluZHMgZWxlbWVudHMgYnkgY3NzIHNlbGVjdG9yLgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBjc3Nfc2VsZWN0b3I6IFRoZSBjc3Mgc2VsZWN0
b3IgdG8gdXNlIHdoZW4gZmluZGluZyBlbGVtZW50cy4KKworICAgICAgICA6VXNhZ2U6CisgICAg
ICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50c19ieV9jc3Nfc2VsZWN0b3IoJy5mb28nKQorICAg
ICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5DU1NfU0VM
RUNUT1IsIHZhbHVlPWNzc19zZWxlY3RvcikKKworICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxm
LCBzY3JpcHQsICphcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIFN5bmNocm9ub3VzbHkgRXhl
Y3V0ZXMgSmF2YVNjcmlwdCBpbiB0aGUgY3VycmVudCB3aW5kb3cvZnJhbWUuCisKKyAgICAgICAg
OkFyZ3M6CisgICAgICAgICAtIHNjcmlwdDogVGhlIEphdmFTY3JpcHQgdG8gZXhlY3V0ZS4KKyAg
ICAgICAgIC0gXCphcmdzOiBBbnkgYXBwbGljYWJsZSBhcmd1bWVudHMgZm9yIHlvdXIgSmF2YVNj
cmlwdC4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoJ2RvY3VtZW50LnRpdGxlJykKKyAgICAgICAgIiIiCisgICAgICAgIGNvbnZlcnRlZF9hcmdz
ID0gbGlzdChhcmdzKQorICAgICAgICBjb21tYW5kID0gTm9uZQorICAgICAgICBpZiBzZWxmLncz
YzoKKyAgICAgICAgICAgIGNvbW1hbmQgPSBDb21tYW5kLlczQ19FWEVDVVRFX1NDUklQVAorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgY29tbWFuZCA9IENvbW1hbmQuRVhFQ1VURV9TQ1JJUFQK
KworICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKGNvbW1hbmQsIHsKKyAgICAgICAgICAgICdz
Y3JpcHQnOiBzY3JpcHQsCisgICAgICAgICAgICAnYXJncyc6IGNvbnZlcnRlZF9hcmdzfSlbJ3Zh
bHVlJ10KKworICAgIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZWxmLCBzY3JpcHQsICphcmdz
KToKKyAgICAgICAgIiIiCisgICAgICAgIEFzeW5jaHJvbm91c2x5IEV4ZWN1dGVzIEphdmFTY3Jp
cHQgaW4gdGhlIGN1cnJlbnQgd2luZG93L2ZyYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAg
ICAgLSBzY3JpcHQ6IFRoZSBKYXZhU2NyaXB0IHRvIGV4ZWN1dGUuCisgICAgICAgICAtIFwqYXJn
czogQW55IGFwcGxpY2FibGUgYXJndW1lbnRzIGZvciB5b3VyIEphdmFTY3JpcHQuCisKKyAgICAg
ICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCdkb2N1
bWVudC50aXRsZScpCisgICAgICAgICIiIgorICAgICAgICBjb252ZXJ0ZWRfYXJncyA9IGxpc3Qo
YXJncykKKyAgICAgICAgaWYgc2VsZi53M2M6CisgICAgICAgICAgICBjb21tYW5kID0gQ29tbWFu
ZC5XM0NfRVhFQ1VURV9TQ1JJUFRfQVNZTkMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNv
bW1hbmQgPSBDb21tYW5kLkVYRUNVVEVfQVNZTkNfU0NSSVBUCisKKyAgICAgICAgcmV0dXJuIHNl
bGYuZXhlY3V0ZShjb21tYW5kLCB7CisgICAgICAgICAgICAnc2NyaXB0Jzogc2NyaXB0LAorICAg
ICAgICAgICAgJ2FyZ3MnOiBjb252ZXJ0ZWRfYXJnc30pWyd2YWx1ZSddCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgY3VycmVudF91cmwoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRz
IHRoZSBVUkwgb2YgdGhlIGN1cnJlbnQgcGFnZS4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAg
ICAgICBkcml2ZXIuY3VycmVudF91cmwKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxm
LmV4ZWN1dGUoQ29tbWFuZC5HRVRfQ1VSUkVOVF9VUkwpWyd2YWx1ZSddCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgcGFnZV9zb3VyY2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRz
IHRoZSBzb3VyY2Ugb2YgdGhlIGN1cnJlbnQgcGFnZS4KKworICAgICAgICA6VXNhZ2U6CisgICAg
ICAgICAgICBkcml2ZXIucGFnZV9zb3VyY2UKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBz
ZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfUEFHRV9TT1VSQ0UpWyd2YWx1ZSddCisKKyAgICBkZWYg
Y2xvc2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDbG9zZXMgdGhlIGN1cnJlbnQgd2lu
ZG93LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5jbG9zZSgpCisgICAg
ICAgICIiIgorICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5DTE9TRSkKKworICAgIGRlZiBx
dWl0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUXVpdHMgdGhlIGRyaXZlciBhbmQgY2xv
c2VzIGV2ZXJ5IGFzc29jaWF0ZWQgd2luZG93LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAg
ICAgIGRyaXZlci5xdWl0KCkKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNlbGYuZXhlY3V0ZShDb21tYW5kLlFVSVQpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICBzZWxmLnN0b3BfY2xpZW50KCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjdXJyZW50X3dp
bmRvd19oYW5kbGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBoYW5k
bGUgb2YgdGhlIGN1cnJlbnQgd2luZG93LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAg
IGRyaXZlci5jdXJyZW50X3dpbmRvd19oYW5kbGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNl
bGYudzNjOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLlczQ19HRVRf
Q1VSUkVOVF9XSU5ET1dfSEFORExFKVsndmFsdWUnXQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLkdFVF9DVVJSRU5UX1dJTkRPV19IQU5ETEUp
Wyd2YWx1ZSddCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgd2luZG93X2hhbmRsZXMoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBoYW5kbGVzIG9mIGFsbCB3aW5kb3dz
IHdpdGhpbiB0aGUgY3VycmVudCBzZXNzaW9uLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAg
ICAgIGRyaXZlci53aW5kb3dfaGFuZGxlcworICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi53
M2M6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuVzNDX0dFVF9XSU5E
T1dfSEFORExFUylbJ3ZhbHVlJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfV0lORE9XX0hBTkRMRVMpWyd2YWx1ZSddCisKKyAgICBk
ZWYgbWF4aW1pemVfd2luZG93KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTWF4aW1pemVz
IHRoZSBjdXJyZW50IHdpbmRvdyB0aGF0IHdlYmRyaXZlciBpcyB1c2luZworICAgICAgICAiIiIK
KyAgICAgICAgY29tbWFuZCA9IENvbW1hbmQuTUFYSU1JWkVfV0lORE9XCisgICAgICAgIGlmIHNl
bGYudzNjOgorICAgICAgICAgICAgY29tbWFuZCA9IENvbW1hbmQuVzNDX01BWElNSVpFX1dJTkRP
VworICAgICAgICBzZWxmLmV4ZWN1dGUoY29tbWFuZCwgeyJ3aW5kb3dIYW5kbGUiOiAiY3VycmVu
dCJ9KQorCisgICAgZGVmIGZ1bGxzY3JlZW5fd2luZG93KHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgSW52b2tlcyB0aGUgd2luZG93IG1hbmFnZXItc3BlY2lmaWMgJ2Z1bGwgc2NyZWVuJyBv
cGVyYXRpb24KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLkZVTExT
Q1JFRU5fV0lORE9XKQorCisgICAgZGVmIG1pbmltaXplX3dpbmRvdyhzZWxmKToKKyAgICAgICAg
IiIiCisgICAgICAgIEludm9rZXMgdGhlIHdpbmRvdyBtYW5hZ2VyLXNwZWNpZmljICdtaW5pbWl6
ZScgb3BlcmF0aW9uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5N
SU5JTUlaRV9XSU5ET1cpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc3dpdGNoX3RvKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5fc3dpdGNoX3RvCisKKyAgICAjIFRhcmdldCBMb2NhdG9y
cworICAgIGRlZiBzd2l0Y2hfdG9fYWN0aXZlX2VsZW1lbnQoc2VsZik6CisgICAgICAgICIiIiBE
ZXByZWNhdGVkIHVzZSBkcml2ZXIuc3dpdGNoX3RvLmFjdGl2ZV9lbGVtZW50CisgICAgICAgICIi
IgorICAgICAgICB3YXJuaW5ncy53YXJuKCJ1c2UgZHJpdmVyLnN3aXRjaF90by5hY3RpdmVfZWxl
bWVudCBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICByZXR1cm4gc2VsZi5f
c3dpdGNoX3RvLmFjdGl2ZV9lbGVtZW50CisKKyAgICBkZWYgc3dpdGNoX3RvX3dpbmRvdyhzZWxm
LCB3aW5kb3dfbmFtZSk6CisgICAgICAgICIiIiBEZXByZWNhdGVkIHVzZSBkcml2ZXIuc3dpdGNo
X3RvLndpbmRvdworICAgICAgICAiIiIKKyAgICAgICAgd2FybmluZ3Mud2FybigidXNlIGRyaXZl
ci5zd2l0Y2hfdG8ud2luZG93IGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAg
IHNlbGYuX3N3aXRjaF90by53aW5kb3cod2luZG93X25hbWUpCisKKyAgICBkZWYgc3dpdGNoX3Rv
X2ZyYW1lKHNlbGYsIGZyYW1lX3JlZmVyZW5jZSk6CisgICAgICAgICIiIiBEZXByZWNhdGVkIHVz
ZSBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lCisgICAgICAgICIiIgorICAgICAgICB3YXJuaW5ncy53
YXJuKCJ1c2UgZHJpdmVyLnN3aXRjaF90by5mcmFtZSBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJu
aW5nKQorICAgICAgICBzZWxmLl9zd2l0Y2hfdG8uZnJhbWUoZnJhbWVfcmVmZXJlbmNlKQorCisg
ICAgZGVmIHN3aXRjaF90b19kZWZhdWx0X2NvbnRlbnQoc2VsZik6CisgICAgICAgICIiIiBEZXBy
ZWNhdGVkIHVzZSBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudAorICAgICAgICAiIiIK
KyAgICAgICAgd2FybmluZ3Mud2FybigidXNlIGRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250
ZW50IGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgIHNlbGYuX3N3aXRjaF90
by5kZWZhdWx0X2NvbnRlbnQoKQorCisgICAgZGVmIHN3aXRjaF90b19hbGVydChzZWxmKToKKyAg
ICAgICAgIiIiIERlcHJlY2F0ZWQgdXNlIGRyaXZlci5zd2l0Y2hfdG8uYWxlcnQKKyAgICAgICAg
IiIiCisgICAgICAgIHdhcm5pbmdzLndhcm4oInVzZSBkcml2ZXIuc3dpdGNoX3RvLmFsZXJ0IGlu
c3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgIHJldHVybiBzZWxmLl9zd2l0Y2hf
dG8uYWxlcnQKKworICAgICMgTmF2aWdhdGlvbgorICAgIGRlZiBiYWNrKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgR29lcyBvbmUgc3RlcCBiYWNrd2FyZCBpbiB0aGUgYnJvd3NlciBoaXN0
b3J5LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5iYWNrKCkKKyAgICAg
ICAgIiIiCisgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLkdPX0JBQ0spCisKKyAgICBkZWYg
Zm9yd2FyZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdvZXMgb25lIHN0ZXAgZm9yd2Fy
ZCBpbiB0aGUgYnJvd3NlciBoaXN0b3J5LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAg
IGRyaXZlci5mb3J3YXJkKCkKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXhlY3V0ZShDb21t
YW5kLkdPX0ZPUldBUkQpCisKKyAgICBkZWYgcmVmcmVzaChzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFJlZnJlc2hlcyB0aGUgY3VycmVudCBwYWdlLgorCisgICAgICAgIDpVc2FnZToKKyAg
ICAgICAgICAgIGRyaXZlci5yZWZyZXNoKCkKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZXhl
Y3V0ZShDb21tYW5kLlJFRlJFU0gpCisKKyAgICAjIE9wdGlvbnMKKyAgICBkZWYgZ2V0X2Nvb2tp
ZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgc2V0IG9mIGRpY3Rpb25h
cmllcywgY29ycmVzcG9uZGluZyB0byBjb29raWVzIHZpc2libGUgaW4gdGhlIGN1cnJlbnQgc2Vz
c2lvbi4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZ2V0X2Nvb2tpZXMo
KQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLkdFVF9B
TExfQ09PS0lFUylbJ3ZhbHVlJ10KKworICAgIGRlZiBnZXRfY29va2llKHNlbGYsIG5hbWUpOgor
ICAgICAgICAiIiIKKyAgICAgICAgR2V0IGEgc2luZ2xlIGNvb2tpZSBieSBuYW1lLiBSZXR1cm5z
IHRoZSBjb29raWUgaWYgZm91bmQsIE5vbmUgaWYgbm90LgorCisgICAgICAgIDpVc2FnZToKKyAg
ICAgICAgICAgIGRyaXZlci5nZXRfY29va2llKCdteV9jb29raWUnKQorICAgICAgICAiIiIKKyAg
ICAgICAgY29va2llcyA9IHNlbGYuZ2V0X2Nvb2tpZXMoKQorICAgICAgICBmb3IgY29va2llIGlu
IGNvb2tpZXM6CisgICAgICAgICAgICBpZiBjb29raWVbJ25hbWUnXSA9PSBuYW1lOgorICAgICAg
ICAgICAgICAgIHJldHVybiBjb29raWUKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBk
ZWxldGVfY29va2llKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgRGVsZXRlcyBh
IHNpbmdsZSBjb29raWUgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KKworICAgICAgICA6VXNhZ2U6Cisg
ICAgICAgICAgICBkcml2ZXIuZGVsZXRlX2Nvb2tpZSgnbXlfY29va2llJykKKyAgICAgICAgIiIi
CisgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLkRFTEVURV9DT09LSUUsIHsnbmFtZSc6IG5h
bWV9KQorCisgICAgZGVmIGRlbGV0ZV9hbGxfY29va2llcyhzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIERlbGV0ZSBhbGwgY29va2llcyBpbiB0aGUgc2NvcGUgb2YgdGhlIHNlc3Npb24uCisK
KyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmRlbGV0ZV9hbGxfY29va2llcygp
CisgICAgICAgICIiIgorICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5ERUxFVEVfQUxMX0NP
T0tJRVMpCisKKyAgICBkZWYgYWRkX2Nvb2tpZShzZWxmLCBjb29raWVfZGljdCk6CisgICAgICAg
ICIiIgorICAgICAgICBBZGRzIGEgY29va2llIHRvIHlvdXIgY3VycmVudCBzZXNzaW9uLgorCisg
ICAgICAgIDpBcmdzOgorICAgICAgICAgLSBjb29raWVfZGljdDogQSBkaWN0aW9uYXJ5IG9iamVj
dCwgd2l0aCByZXF1aXJlZCBrZXlzIC0gIm5hbWUiIGFuZCAidmFsdWUiOworICAgICAgICAgICAg
b3B0aW9uYWwga2V5cyAtICJwYXRoIiwgImRvbWFpbiIsICJzZWN1cmUiLCAiZXhwaXJ5IgorCisg
ICAgICAgIFVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLmFkZF9jb29raWUoeyduYW1lJyA6ICdm
b28nLCAndmFsdWUnIDogJ2Jhcid9KQorICAgICAgICAgICAgZHJpdmVyLmFkZF9jb29raWUoeydu
YW1lJyA6ICdmb28nLCAndmFsdWUnIDogJ2JhcicsICdwYXRoJyA6ICcvJ30pCisgICAgICAgICAg
ICBkcml2ZXIuYWRkX2Nvb2tpZSh7J25hbWUnIDogJ2ZvbycsICd2YWx1ZScgOiAnYmFyJywgJ3Bh
dGgnIDogJy8nLCAnc2VjdXJlJzpUcnVlfSkKKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5l
eGVjdXRlKENvbW1hbmQuQUREX0NPT0tJRSwgeydjb29raWUnOiBjb29raWVfZGljdH0pCisKKyAg
ICAjIFRpbWVvdXRzCisgICAgZGVmIGltcGxpY2l0bHlfd2FpdChzZWxmLCB0aW1lX3RvX3dhaXQp
OgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyBhIHN0aWNreSB0aW1lb3V0IHRvIGltcGxpY2l0
bHkgd2FpdCBmb3IgYW4gZWxlbWVudCB0byBiZSBmb3VuZCwKKyAgICAgICAgICAgb3IgYSBjb21t
YW5kIHRvIGNvbXBsZXRlLiBUaGlzIG1ldGhvZCBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmUK
KyAgICAgICAgICAgdGltZSBwZXIgc2Vzc2lvbi4gVG8gc2V0IHRoZSB0aW1lb3V0IGZvciBjYWxs
cyB0bworICAgICAgICAgICBleGVjdXRlX2FzeW5jX3NjcmlwdCwgc2VlIHNldF9zY3JpcHRfdGlt
ZW91dC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdGltZV90b193YWl0OiBBbW91bnQg
b2YgdGltZSB0byB3YWl0IChpbiBzZWNvbmRzKQorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAg
ICAgIGRyaXZlci5pbXBsaWNpdGx5X3dhaXQoMzApCisgICAgICAgICIiIgorICAgICAgICBpZiBz
ZWxmLnczYzoKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlNFVF9USU1FT1VUUywg
eworICAgICAgICAgICAgICAgICdpbXBsaWNpdCc6IGludChmbG9hdCh0aW1lX3RvX3dhaXQpICog
MTAwMCl9KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQu
SU1QTElDSVRfV0FJVCwgeworICAgICAgICAgICAgICAgICdtcyc6IGZsb2F0KHRpbWVfdG9fd2Fp
dCkgKiAxMDAwfSkKKworICAgIGRlZiBzZXRfc2NyaXB0X3RpbWVvdXQoc2VsZiwgdGltZV90b193
YWl0KToKKyAgICAgICAgIiIiCisgICAgICAgIFNldCB0aGUgYW1vdW50IG9mIHRpbWUgdGhhdCB0
aGUgc2NyaXB0IHNob3VsZCB3YWl0IGR1cmluZyBhbgorICAgICAgICAgICBleGVjdXRlX2FzeW5j
X3NjcmlwdCBjYWxsIGJlZm9yZSB0aHJvd2luZyBhbiBlcnJvci4KKworICAgICAgICA6QXJnczoK
KyAgICAgICAgIC0gdGltZV90b193YWl0OiBUaGUgYW1vdW50IG9mIHRpbWUgdG8gd2FpdCAoaW4g
c2Vjb25kcykKKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuc2V0X3Njcmlw
dF90aW1lb3V0KDMwKQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi53M2M6CisgICAgICAg
ICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5TRVRfVElNRU9VVFMsIHsKKyAgICAgICAgICAgICAg
ICAnc2NyaXB0JzogaW50KGZsb2F0KHRpbWVfdG9fd2FpdCkgKiAxMDAwKX0pCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5TRVRfU0NSSVBUX1RJTUVPVVQs
IHsKKyAgICAgICAgICAgICAgICAnbXMnOiBmbG9hdCh0aW1lX3RvX3dhaXQpICogMTAwMH0pCisK
KyAgICBkZWYgc2V0X3BhZ2VfbG9hZF90aW1lb3V0KHNlbGYsIHRpbWVfdG9fd2FpdCk6CisgICAg
ICAgICIiIgorICAgICAgICBTZXQgdGhlIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgZm9yIGEgcGFn
ZSBsb2FkIHRvIGNvbXBsZXRlCisgICAgICAgICAgIGJlZm9yZSB0aHJvd2luZyBhbiBlcnJvci4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdGltZV90b193YWl0OiBUaGUgYW1vdW50IG9m
IHRpbWUgdG8gd2FpdAorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5zZXRf
cGFnZV9sb2FkX3RpbWVvdXQoMzApCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5TRVRfVElNRU9VVFMsIHsKKyAgICAgICAgICAgICAg
ICAncGFnZUxvYWQnOiBpbnQoZmxvYXQodGltZV90b193YWl0KSAqIDEwMDApfSkKKyAgICAgICAg
ZXhjZXB0IFdlYkRyaXZlckV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21t
YW5kLlNFVF9USU1FT1VUUywgeworICAgICAgICAgICAgICAgICdtcyc6IGZsb2F0KHRpbWVfdG9f
d2FpdCkgKiAxMDAwLAorICAgICAgICAgICAgICAgICd0eXBlJzogJ3BhZ2UgbG9hZCd9KQorCisg
ICAgZGVmIGZpbmRfZWxlbWVudChzZWxmLCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6CisgICAgICAg
ICIiIgorICAgICAgICAnUHJpdmF0ZScgbWV0aG9kIHVzZWQgYnkgdGhlIGZpbmRfZWxlbWVudF9i
eV8qIG1ldGhvZHMuCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgVXNlIHRoZSBjb3Jy
ZXNwb25kaW5nIGZpbmRfZWxlbWVudF9ieV8qIGluc3RlYWQgb2YgdGhpcy4KKworICAgICAgICA6
cnR5cGU6IFdlYkVsZW1lbnQKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYudzNjOgorICAg
ICAgICAgICAgaWYgYnkgPT0gQnkuSUQ6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VM
RUNUT1IKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICdbaWQ9IiVzIl0nICUgdmFsdWUKKyAgICAg
ICAgICAgIGVsaWYgYnkgPT0gQnkuVEFHX05BTUU6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5D
U1NfU0VMRUNUT1IKKyAgICAgICAgICAgIGVsaWYgYnkgPT0gQnkuQ0xBU1NfTkFNRToKKyAgICAg
ICAgICAgICAgICBieSA9IEJ5LkNTU19TRUxFQ1RPUgorICAgICAgICAgICAgICAgIHZhbHVlID0g
Ii4lcyIgJSB2YWx1ZQorICAgICAgICAgICAgZWxpZiBieSA9PSBCeS5OQU1FOgorICAgICAgICAg
ICAgICAgIGJ5ID0gQnkuQ1NTX1NFTEVDVE9SCisgICAgICAgICAgICAgICAgdmFsdWUgPSAnW25h
bWU9IiVzIl0nICUgdmFsdWUKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0ZShDb21tYW5kLkZJ
TkRfRUxFTUVOVCwgeworICAgICAgICAgICAgJ3VzaW5nJzogYnksCisgICAgICAgICAgICAndmFs
dWUnOiB2YWx1ZX0pWyd2YWx1ZSddCisKKyAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBieT1C
eS5JRCwgdmFsdWU9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICAnUHJpdmF0ZScgbWV0aG9k
IHVzZWQgYnkgdGhlIGZpbmRfZWxlbWVudHNfYnlfKiBtZXRob2RzLgorCisgICAgICAgIDpVc2Fn
ZToKKyAgICAgICAgICAgIFVzZSB0aGUgY29ycmVzcG9uZGluZyBmaW5kX2VsZW1lbnRzX2J5Xyog
aW5zdGVhZCBvZiB0aGlzLgorCisgICAgICAgIDpydHlwZTogbGlzdCBvZiBXZWJFbGVtZW50Cisg
ICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLnczYzoKKyAgICAgICAgICAgIGlmIGJ5ID09IEJ5
LklEOgorICAgICAgICAgICAgICAgIGJ5ID0gQnkuQ1NTX1NFTEVDVE9SCisgICAgICAgICAgICAg
ICAgdmFsdWUgPSAnW2lkPSIlcyJdJyAlIHZhbHVlCisgICAgICAgICAgICBlbGlmIGJ5ID09IEJ5
LlRBR19OQU1FOgorICAgICAgICAgICAgICAgIGJ5ID0gQnkuQ1NTX1NFTEVDVE9SCisgICAgICAg
ICAgICBlbGlmIGJ5ID09IEJ5LkNMQVNTX05BTUU6CisgICAgICAgICAgICAgICAgYnkgPSBCeS5D
U1NfU0VMRUNUT1IKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICIuJXMiICUgdmFsdWUKKyAgICAg
ICAgICAgIGVsaWYgYnkgPT0gQnkuTkFNRToKKyAgICAgICAgICAgICAgICBieSA9IEJ5LkNTU19T
RUxFQ1RPUgorICAgICAgICAgICAgICAgIHZhbHVlID0gJ1tuYW1lPSIlcyJdJyAlIHZhbHVlCisK
KyAgICAgICAgIyBSZXR1cm4gZW1wdHkgbGlzdCBpZiBkcml2ZXIgcmV0dXJucyBudWxsCisgICAg
ICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bUhRL3NlbGVuaXVtL2lzc3Vlcy80
NTU1CisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5GSU5EX0VMRU1FTlRTLCB7
CisgICAgICAgICAgICAndXNpbmcnOiBieSwKKyAgICAgICAgICAgICd2YWx1ZSc6IHZhbHVlfSlb
J3ZhbHVlJ10gb3IgW10KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkZXNpcmVkX2NhcGFiaWxp
dGllcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybnMgdGhlIGRyaXZlcnMgY3Vy
cmVudCBkZXNpcmVkIGNhcGFiaWxpdGllcyBiZWluZyB1c2VkCisgICAgICAgICIiIgorICAgICAg
ICByZXR1cm4gc2VsZi5jYXBhYmlsaXRpZXMKKworICAgIGRlZiBnZXRfc2NyZWVuc2hvdF9hc19m
aWxlKHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIFNhdmVzIGEgc2NyZWVu
c2hvdCBvZiB0aGUgY3VycmVudCB3aW5kb3cgdG8gYSBQTkcgaW1hZ2UgZmlsZS4gUmV0dXJucwor
ICAgICAgICAgICBGYWxzZSBpZiB0aGVyZSBpcyBhbnkgSU9FcnJvciwgZWxzZSByZXR1cm5zIFRy
dWUuIFVzZSBmdWxsIHBhdGhzIGluCisgICAgICAgICAgIHlvdXIgZmlsZW5hbWUuCisKKyAgICAg
ICAgOkFyZ3M6CisgICAgICAgICAtIGZpbGVuYW1lOiBUaGUgZnVsbCBwYXRoIHlvdSB3aXNoIHRv
IHNhdmUgeW91ciBzY3JlZW5zaG90IHRvLiBUaGlzCisgICAgICAgICAgIHNob3VsZCBlbmQgd2l0
aCBhIGAucG5nYCBleHRlbnNpb24uCisKKyAgICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZHJp
dmVyLmdldF9zY3JlZW5zaG90X2FzX2ZpbGUoJy9TY3JlZW5zaG90cy9mb28ucG5nJykKKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIG5vdCBmaWxlbmFtZS5sb3dlcigpLmVuZHN3aXRoKCcucG5nJyk6
CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJuYW1lIHVzZWQgZm9yIHNhdmVkIHNjcmVlbnNo
b3QgZG9lcyBub3QgbWF0Y2ggZmlsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBl
LiBJdCBzaG91bGQgZW5kIHdpdGggYSBgLnBuZ2AgZXh0ZW5zaW9uIiwgVXNlcldhcm5pbmcpCisg
ICAgICAgIHBuZyA9IHNlbGYuZ2V0X3NjcmVlbnNob3RfYXNfcG5nKCkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAnd2InKSBhcyBmOgorICAgICAgICAgICAg
ICAgIGYud3JpdGUocG5nKQorICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZGVsIHBuZworICAgICAg
ICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHNhdmVfc2NyZWVuc2hvdChzZWxmLCBmaWxlbmFtZSk6
CisgICAgICAgICIiIgorICAgICAgICBTYXZlcyBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQg
d2luZG93IHRvIGEgUE5HIGltYWdlIGZpbGUuIFJldHVybnMKKyAgICAgICAgICAgRmFsc2UgaWYg
dGhlcmUgaXMgYW55IElPRXJyb3IsIGVsc2UgcmV0dXJucyBUcnVlLiBVc2UgZnVsbCBwYXRocyBp
bgorICAgICAgICAgICB5b3VyIGZpbGVuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
LSBmaWxlbmFtZTogVGhlIGZ1bGwgcGF0aCB5b3Ugd2lzaCB0byBzYXZlIHlvdXIgc2NyZWVuc2hv
dCB0by4gVGhpcworICAgICAgICAgICBzaG91bGQgZW5kIHdpdGggYSBgLnBuZ2AgZXh0ZW5zaW9u
LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5zYXZlX3NjcmVlbnNob3Qo
Jy9TY3JlZW5zaG90cy9mb28ucG5nJykKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxm
LmdldF9zY3JlZW5zaG90X2FzX2ZpbGUoZmlsZW5hbWUpCisKKyAgICBkZWYgZ2V0X3NjcmVlbnNo
b3RfYXNfcG5nKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyB0aGUgc2NyZWVuc2hv
dCBvZiB0aGUgY3VycmVudCB3aW5kb3cgYXMgYSBiaW5hcnkgZGF0YS4KKworICAgICAgICA6VXNh
Z2U6CisgICAgICAgICAgICBkcml2ZXIuZ2V0X3NjcmVlbnNob3RfYXNfcG5nKCkKKyAgICAgICAg
IiIiCisgICAgICAgIHJldHVybiBiYXNlNjQuYjY0ZGVjb2RlKHNlbGYuZ2V0X3NjcmVlbnNob3Rf
YXNfYmFzZTY0KCkuZW5jb2RlKCdhc2NpaScpKQorCisgICAgZGVmIGdldF9zY3JlZW5zaG90X2Fz
X2Jhc2U2NChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldHMgdGhlIHNjcmVlbnNob3Qg
b2YgdGhlIGN1cnJlbnQgd2luZG93IGFzIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nCisgICAgICAg
ICAgIHdoaWNoIGlzIHVzZWZ1bCBpbiBlbWJlZGRlZCBpbWFnZXMgaW4gSFRNTC4KKworICAgICAg
ICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIuZ2V0X3NjcmVlbnNob3RfYXNfYmFzZTY0KCkK
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5TQ1JFRU5T
SE9UKVsndmFsdWUnXQorCisgICAgZGVmIHNldF93aW5kb3dfc2l6ZShzZWxmLCB3aWR0aCwgaGVp
Z2h0LCB3aW5kb3dIYW5kbGU9J2N1cnJlbnQnKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMg
dGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIGN1cnJlbnQgd2luZG93LiAod2luZG93LnJlc2l6
ZVRvKQorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSB3aWR0aDogdGhlIHdpZHRoIGluIHBp
eGVscyB0byBzZXQgdGhlIHdpbmRvdyB0bworICAgICAgICAgLSBoZWlnaHQ6IHRoZSBoZWlnaHQg
aW4gcGl4ZWxzIHRvIHNldCB0aGUgd2luZG93IHRvCisKKyAgICAgICAgOlVzYWdlOgorICAgICAg
ICAgICAgZHJpdmVyLnNldF93aW5kb3dfc2l6ZSg4MDAsNjAwKQorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgc2VsZi53M2M6CisgICAgICAgICAgICBpZiB3aW5kb3dIYW5kbGUgIT0gJ2N1cnJlbnQn
OgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIk9ubHkgJ2N1cnJlbnQnIHdpbmRvdyBp
cyBzdXBwb3J0ZWQgZm9yIFczQyBjb21wYXRpYmlsZSBicm93c2Vycy4iKQorICAgICAgICAgICAg
c2VsZi5zZXRfd2luZG93X3JlY3Qod2lkdGg9aW50KHdpZHRoKSwgaGVpZ2h0PWludChoZWlnaHQp
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5leGVjdXRlKENvbW1hbmQuU0VUX1dJ
TkRPV19TSVpFLCB7CisgICAgICAgICAgICAgICAgJ3dpZHRoJzogaW50KHdpZHRoKSwKKyAgICAg
ICAgICAgICAgICAnaGVpZ2h0JzogaW50KGhlaWdodCksCisgICAgICAgICAgICAgICAgJ3dpbmRv
d0hhbmRsZSc6IHdpbmRvd0hhbmRsZX0pCisKKyAgICBkZWYgZ2V0X3dpbmRvd19zaXplKHNlbGYs
IHdpbmRvd0hhbmRsZT0nY3VycmVudCcpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyB0aGUg
d2lkdGggYW5kIGhlaWdodCBvZiB0aGUgY3VycmVudCB3aW5kb3cuCisKKyAgICAgICAgOlVzYWdl
OgorICAgICAgICAgICAgZHJpdmVyLmdldF93aW5kb3dfc2l6ZSgpCisgICAgICAgICIiIgorICAg
ICAgICBjb21tYW5kID0gQ29tbWFuZC5HRVRfV0lORE9XX1NJWkUKKyAgICAgICAgaWYgc2VsZi53
M2M6CisgICAgICAgICAgICBpZiB3aW5kb3dIYW5kbGUgIT0gJ2N1cnJlbnQnOgorICAgICAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oIk9ubHkgJ2N1cnJlbnQnIHdpbmRvdyBpcyBzdXBwb3J0ZWQg
Zm9yIFczQyBjb21wYXRpYmlsZSBicm93c2Vycy4iKQorICAgICAgICAgICAgc2l6ZSA9IHNlbGYu
Z2V0X3dpbmRvd19yZWN0KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNpemUgPSBzZWxm
LmV4ZWN1dGUoY29tbWFuZCwgeyd3aW5kb3dIYW5kbGUnOiB3aW5kb3dIYW5kbGV9KQorCisgICAg
ICAgIGlmIHNpemUuZ2V0KCd2YWx1ZScsIE5vbmUpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
c2l6ZSA9IHNpemVbJ3ZhbHVlJ10KKworICAgICAgICByZXR1cm4ge2s6IHNpemVba10gZm9yIGsg
aW4gKCd3aWR0aCcsICdoZWlnaHQnKX0KKworICAgIGRlZiBzZXRfd2luZG93X3Bvc2l0aW9uKHNl
bGYsIHgsIHksIHdpbmRvd0hhbmRsZT0nY3VycmVudCcpOgorICAgICAgICAiIiIKKyAgICAgICAg
U2V0cyB0aGUgeCx5IHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHdpbmRvdy4gKHdpbmRvdy5tb3Zl
VG8pCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAtIHg6IHRoZSB4LWNvb3JkaW5hdGUgaW4g
cGl4ZWxzIHRvIHNldCB0aGUgd2luZG93IHBvc2l0aW9uCisgICAgICAgICAtIHk6IHRoZSB5LWNv
b3JkaW5hdGUgaW4gcGl4ZWxzIHRvIHNldCB0aGUgd2luZG93IHBvc2l0aW9uCisKKyAgICAgICAg
OlVzYWdlOgorICAgICAgICAgICAgZHJpdmVyLnNldF93aW5kb3dfcG9zaXRpb24oMCwwKQorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi53M2M6CisgICAgICAgICAgICBpZiB3aW5kb3dIYW5k
bGUgIT0gJ2N1cnJlbnQnOgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIk9ubHkgJ2N1
cnJlbnQnIHdpbmRvdyBpcyBzdXBwb3J0ZWQgZm9yIFczQyBjb21wYXRpYmlsZSBicm93c2Vycy4i
KQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2V0X3dpbmRvd19yZWN0KHg9aW50KHgpLCB5PWlu
dCh5KSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0ZShDb21tYW5kLlNF
VF9XSU5ET1dfUE9TSVRJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAneCc6IGludCh4KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3knOiBpbnQoeSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aW5kb3dI
YW5kbGUnOiB3aW5kb3dIYW5kbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICB9KQorCisgICAg
ZGVmIGdldF93aW5kb3dfcG9zaXRpb24oc2VsZiwgd2luZG93SGFuZGxlPSdjdXJyZW50Jyk6Cisg
ICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSB4LHkgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQg
d2luZG93LgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAgIGRyaXZlci5nZXRfd2luZG93
X3Bvc2l0aW9uKCkKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYudzNjOgorICAgICAgICAg
ICAgaWYgd2luZG93SGFuZGxlICE9ICdjdXJyZW50JzoKKyAgICAgICAgICAgICAgICB3YXJuaW5n
cy53YXJuKCJPbmx5ICdjdXJyZW50JyB3aW5kb3cgaXMgc3VwcG9ydGVkIGZvciBXM0MgY29tcGF0
aWJpbGUgYnJvd3NlcnMuIikKKyAgICAgICAgICAgIHBvc2l0aW9uID0gc2VsZi5nZXRfd2luZG93
X3JlY3QoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcG9zaXRpb24gPSBzZWxmLmV4ZWN1
dGUoQ29tbWFuZC5HRVRfV0lORE9XX1BPU0lUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyd3aW5kb3dIYW5kbGUnOiB3aW5kb3dIYW5kbGV9KVsndmFsdWUnXQorCisg
ICAgICAgIHJldHVybiB7azogcG9zaXRpb25ba10gZm9yIGsgaW4gKCd4JywgJ3knKX0KKworICAg
IGRlZiBnZXRfd2luZG93X3JlY3Qoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRo
ZSB4LCB5IGNvb3JkaW5hdGVzIG9mIHRoZSB3aW5kb3cgYXMgd2VsbCBhcyBoZWlnaHQgYW5kIHdp
ZHRoIG9mCisgICAgICAgIHRoZSBjdXJyZW50IHdpbmRvdy4KKworICAgICAgICA6VXNhZ2U6Cisg
ICAgICAgICAgICBkcml2ZXIuZ2V0X3dpbmRvd19yZWN0KCkKKyAgICAgICAgIiIiCisgICAgICAg
IHJldHVybiBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfV0lORE9XX1JFQ1QpWyd2YWx1ZSddCisK
KyAgICBkZWYgc2V0X3dpbmRvd19yZWN0KHNlbGYsIHg9Tm9uZSwgeT1Ob25lLCB3aWR0aD1Ob25l
LCBoZWlnaHQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSB4LCB5IGNvb3Jk
aW5hdGVzIG9mIHRoZSB3aW5kb3cgYXMgd2VsbCBhcyBoZWlnaHQgYW5kIHdpZHRoIG9mCisgICAg
ICAgIHRoZSBjdXJyZW50IHdpbmRvdy4KKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBk
cml2ZXIuc2V0X3dpbmRvd19yZWN0KHg9MTAsIHk9MTApCisgICAgICAgICAgICBkcml2ZXIuc2V0
X3dpbmRvd19yZWN0KHdpZHRoPTEwMCwgaGVpZ2h0PTIwMCkKKyAgICAgICAgICAgIGRyaXZlci5z
ZXRfd2luZG93X3JlY3QoeD0xMCwgeT0xMCwgd2lkdGg9MTAwLCBoZWlnaHQ9MjAwKQorICAgICAg
ICAiIiIKKyAgICAgICAgaWYgKHggaXMgTm9uZSBhbmQgeSBpcyBOb25lKSBhbmQgKGhlaWdodCBp
cyBOb25lIGFuZCB3aWR0aCBpcyBOb25lKToKKyAgICAgICAgICAgIHJhaXNlIEludmFsaWRBcmd1
bWVudEV4Y2VwdGlvbigieCBhbmQgeSBvciBoZWlnaHQgYW5kIHdpZHRoIG5lZWQgdmFsdWVzIikK
KworICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuU0VUX1dJTkRPV19SRUNULCB7
IngiOiB4LCAieSI6IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAid2lkdGgiOiB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWlnaHQiOiBoZWlnaHR9KVsndmFsdWUnXQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGZpbGVfZGV0ZWN0b3Ioc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl9maWxlX2RldGVjdG9yCisKKyAgICBAZmlsZV9kZXRlY3Rvci5zZXR0ZXIKKyAg
ICBkZWYgZmlsZV9kZXRlY3RvcihzZWxmLCBkZXRlY3Rvcik6CisgICAgICAgICIiIgorICAgICAg
ICBTZXQgdGhlIGZpbGUgZGV0ZWN0b3IgdG8gYmUgdXNlZCB3aGVuIHNlbmRpbmcga2V5Ym9hcmQg
aW5wdXQuCisgICAgICAgIEJ5IGRlZmF1bHQsIHRoaXMgaXMgc2V0IHRvIGEgZmlsZSBkZXRlY3Rv
ciB0aGF0IGRvZXMgbm90aGluZy4KKworICAgICAgICBzZWUgRmlsZURldGVjdG9yCisgICAgICAg
IHNlZSBMb2NhbEZpbGVEZXRlY3RvcgorICAgICAgICBzZWUgVXNlbGVzc0ZpbGVEZXRlY3Rvcgor
CisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBkZXRlY3RvcjogVGhlIGRldGVjdG9yIHRvIHVz
ZS4gTXVzdCBub3QgYmUgTm9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGRldGVjdG9yIGlz
IE5vbmU6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJFeGNlcHRpb24oIllvdSBtYXkgbm90
IHNldCBhIGZpbGUgZGV0ZWN0b3IgdGhhdCBpcyBudWxsIikKKyAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2UoZGV0ZWN0b3IsIEZpbGVEZXRlY3Rvcik6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2
ZXJFeGNlcHRpb24oIkRldGVjdG9yIGhhcyB0byBiZSBpbnN0YW5jZSBvZiBGaWxlRGV0ZWN0b3Ii
KQorICAgICAgICBzZWxmLl9maWxlX2RldGVjdG9yID0gZGV0ZWN0b3IKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBvcmllbnRhdGlvbihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldHMg
dGhlIGN1cnJlbnQgb3JpZW50YXRpb24gb2YgdGhlIGRldmljZQorCisgICAgICAgIDpVc2FnZToK
KyAgICAgICAgICAgIG9yaWVudGF0aW9uID0gZHJpdmVyLm9yaWVudGF0aW9uCisgICAgICAgICIi
IgorICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuR0VUX1NDUkVFTl9PUklFTlRB
VElPTilbJ3ZhbHVlJ10KKworICAgIEBvcmllbnRhdGlvbi5zZXR0ZXIKKyAgICBkZWYgb3JpZW50
YXRpb24oc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgY3VycmVu
dCBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAt
IHZhbHVlOiBvcmllbnRhdGlvbiB0byBzZXQgaXQgdG8uCisKKyAgICAgICAgOlVzYWdlOgorICAg
ICAgICAgICAgZHJpdmVyLm9yaWVudGF0aW9uID0gJ2xhbmRzY2FwZScKKyAgICAgICAgIiIiCisg
ICAgICAgIGFsbG93ZWRfdmFsdWVzID0gWydMQU5EU0NBUEUnLCAnUE9SVFJBSVQnXQorICAgICAg
ICBpZiB2YWx1ZS51cHBlcigpIGluIGFsbG93ZWRfdmFsdWVzOgorICAgICAgICAgICAgc2VsZi5l
eGVjdXRlKENvbW1hbmQuU0VUX1NDUkVFTl9PUklFTlRBVElPTiwgeydvcmllbnRhdGlvbic6IHZh
bHVlfSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlv
bigiWW91IGNhbiBvbmx5IHNldCB0aGUgb3JpZW50YXRpb24gdG8gJ0xBTkRTQ0FQRScgYW5kICdQ
T1JUUkFJVCciKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFwcGxpY2F0aW9uX2NhY2hlKHNl
bGYpOgorICAgICAgICAiIiIgUmV0dXJucyBhIEFwcGxpY2F0aW9uQ2FjaGUgT2JqZWN0IHRvIGlu
dGVyYWN0IHdpdGggdGhlIGJyb3dzZXIgYXBwIGNhY2hlIiIiCisgICAgICAgIHJldHVybiBBcHBs
aWNhdGlvbkNhY2hlKHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9nX3R5cGVzKHNl
bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyBhIGxpc3Qgb2YgdGhlIGF2YWlsYWJsZSBs
b2cgdHlwZXMKKworICAgICAgICA6VXNhZ2U6CisgICAgICAgICAgICBkcml2ZXIubG9nX3R5cGVz
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRlKENvbW1hbmQuR0VUX0FW
QUlMQUJMRV9MT0dfVFlQRVMpWyd2YWx1ZSddCisKKyAgICBkZWYgZ2V0X2xvZyhzZWxmLCBsb2df
dHlwZSk6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBsb2cgZm9yIGEgZ2l2ZW4gbG9n
IHR5cGUKKworICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gbG9nX3R5cGU6IHR5cGUgb2YgbG9n
IHRoYXQgd2hpY2ggd2lsbCBiZSByZXR1cm5lZAorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAg
ICAgIGRyaXZlci5nZXRfbG9nKCdicm93c2VyJykKKyAgICAgICAgICAgIGRyaXZlci5nZXRfbG9n
KCdkcml2ZXInKQorICAgICAgICAgICAgZHJpdmVyLmdldF9sb2coJ2NsaWVudCcpCisgICAgICAg
ICAgICBkcml2ZXIuZ2V0X2xvZygnc2VydmVyJykKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy
biBzZWxmLmV4ZWN1dGUoQ29tbWFuZC5HRVRfTE9HLCB7J3R5cGUnOiBsb2dfdHlwZX0pWyd2YWx1
ZSddCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxl
bml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVsZW1lbnQucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvcmVtb3RlL3dlYmVsZW1lbnQucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4N2NjNTAwMTY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5p
dW0vd2ViZHJpdmVyL3JlbW90ZS93ZWJlbGVtZW50LnB5CkBAIC0wLDAgKzEsNTU4IEBACisjIExp
Y2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9u
ZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9U
SUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5m
b3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vu
c2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0
IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29w
eSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl
cy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3Ig
YWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM
aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FS
UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp
bXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4K
KworaW1wb3J0IGJhc2U2NAoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBvcworaW1wb3J0IHBrZ3V0
aWwKK2ltcG9ydCB3YXJuaW5ncworaW1wb3J0IHppcGZpbGUKKworZnJvbSBzZWxlbml1bS5jb21t
b24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21t
b24udXRpbHMgaW1wb3J0IGtleXNfdG9fdHlwaW5nCitmcm9tIC5jb21tYW5kIGltcG9ydCBDb21t
YW5kCisKKyMgUHl0aG9uIDMgaW1wb3J0cwordHJ5OgorICAgIHN0ciA9IGJhc2VzdHJpbmcKK2V4
Y2VwdCBOYW1lRXJyb3I6CisgICAgcGFzcworCit0cnk6CisgICAgZnJvbSBTdHJpbmdJTyBpbXBv
cnQgU3RyaW5nSU8gYXMgSU9TdHJlYW0KK2V4Y2VwdCBJbXBvcnRFcnJvcjogICMgMysKKyAgICBm
cm9tIGlvIGltcG9ydCBCeXRlc0lPIGFzIElPU3RyZWFtCisKKyMgbm90IHJlbHlpbmcgb24gX19w
YWNrYWdlX18gaGVyZSBhcyBpdCBjYW4gYmUgYE5vbmVgIGluIHNvbWUgc2l0dWF0aW9ucyAoc2Vl
ICM0NTU4KQorX3BrZyA9ICcuJy5qb2luKF9fbmFtZV9fLnNwbGl0KCcuJylbOi0xXSkKK2dldEF0
dHJpYnV0ZV9qcyA9IHBrZ3V0aWwuZ2V0X2RhdGEoX3BrZywgJ2dldEF0dHJpYnV0ZS5qcycpLmRl
Y29kZSgndXRmOCcpCitpc0Rpc3BsYXllZF9qcyA9IHBrZ3V0aWwuZ2V0X2RhdGEoX3BrZywgJ2lz
RGlzcGxheWVkLmpzJykuZGVjb2RlKCd1dGY4JykKKworCitjbGFzcyBXZWJFbGVtZW50KG9iamVj
dCk6CisgICAgIiIiUmVwcmVzZW50cyBhIERPTSBlbGVtZW50LgorCisgICAgR2VuZXJhbGx5LCBh
bGwgaW50ZXJlc3Rpbmcgb3BlcmF0aW9ucyB0aGF0IGludGVyYWN0IHdpdGggYSBkb2N1bWVudCB3
aWxsIGJlCisgICAgcGVyZm9ybWVkIHRocm91Z2ggdGhpcyBpbnRlcmZhY2UuCisKKyAgICBBbGwg
bWV0aG9kIGNhbGxzIHdpbGwgZG8gYSBmcmVzaG5lc3MgY2hlY2sgdG8gZW5zdXJlIHRoYXQgdGhl
IGVsZW1lbnQKKyAgICByZWZlcmVuY2UgaXMgc3RpbGwgdmFsaWQuICBUaGlzIGVzc2VudGlhbGx5
IGRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhlCisgICAgZWxlbWVudCBpcyBzdGlsbCBhdHRh
Y2hlZCB0byB0aGUgRE9NLiAgSWYgdGhpcyB0ZXN0IGZhaWxzLCB0aGVuIGFuCisgICAgYGBTdGFs
ZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb25gYCBpcyB0aHJvd24sIGFuZCBhbGwgZnV0dXJlIGNh
bGxzIHRvIHRoaXMKKyAgICBpbnN0YW5jZSB3aWxsIGZhaWwuIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgcGFyZW50LCBpZF8sIHczYz1GYWxzZSk6CisgICAgICAgIHNlbGYuX3BhcmVudCA9
IHBhcmVudAorICAgICAgICBzZWxmLl9pZCA9IGlkXworICAgICAgICBzZWxmLl93M2MgPSB3M2MK
KworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8ezAuX19tb2R1bGVf
X30uezAuX19uYW1lX199IChzZXNzaW9uPSJ7MX0iLCBlbGVtZW50PSJ7Mn0iKT4nLmZvcm1hdCgK
KyAgICAgICAgICAgIHR5cGUoc2VsZiksIHNlbGYuX3BhcmVudC5zZXNzaW9uX2lkLCBzZWxmLl9p
ZCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0YWdfbmFtZShzZWxmKToKKyAgICAgICAgIiIi
VGhpcyBlbGVtZW50J3MgYGB0YWdOYW1lYGAgcHJvcGVydHkuIiIiCisgICAgICAgIHJldHVybiBz
ZWxmLl9leGVjdXRlKENvbW1hbmQuR0VUX0VMRU1FTlRfVEFHX05BTUUpWyd2YWx1ZSddCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgdGV4dChzZWxmKToKKyAgICAgICAgIiIiVGhlIHRleHQgb2Yg
dGhlIGVsZW1lbnQuIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1hbmQuR0VU
X0VMRU1FTlRfVEVYVClbJ3ZhbHVlJ10KKworICAgIGRlZiBjbGljayhzZWxmKToKKyAgICAgICAg
IiIiQ2xpY2tzIHRoZSBlbGVtZW50LiIiIgorICAgICAgICBzZWxmLl9leGVjdXRlKENvbW1hbmQu
Q0xJQ0tfRUxFTUVOVCkKKworICAgIGRlZiBzdWJtaXQoc2VsZik6CisgICAgICAgICIiIlN1Ym1p
dHMgYSBmb3JtLiIiIgorICAgICAgICBpZiBzZWxmLl93M2M6CisgICAgICAgICAgICBmb3JtID0g
c2VsZi5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIuL2FuY2VzdG9yLW9yLXNlbGY6OmZvcm0iKQor
ICAgICAgICAgICAgc2VsZi5fcGFyZW50LmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAg
ICJ2YXIgZSA9IGFyZ3VtZW50c1swXS5vd25lckRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcp
OyIKKyAgICAgICAgICAgICAgICAiZS5pbml0RXZlbnQoJ3N1Ym1pdCcsIHRydWUsIHRydWUpOyIK
KyAgICAgICAgICAgICAgICAiaWYgKGFyZ3VtZW50c1swXS5kaXNwYXRjaEV2ZW50KGUpKSB7IGFy
Z3VtZW50c1swXS5zdWJtaXQoKSB9IiwgZm9ybSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5TVUJNSVRfRUxFTUVOVCkKKworICAgIGRlZiBjbGVhcihz
ZWxmKToKKyAgICAgICAgIiIiQ2xlYXJzIHRoZSB0ZXh0IGlmIGl0J3MgYSB0ZXh0IGVudHJ5IGVs
ZW1lbnQuIiIiCisgICAgICAgIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5DTEVBUl9FTEVNRU5UKQor
CisgICAgZGVmIGdldF9wcm9wZXJ0eShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAg
IEdldHMgdGhlIGdpdmVuIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50LgorCisgICAgICAgIDpBcmdz
OgorICAgICAgICAgICAgLSBuYW1lIC0gTmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmUu
CisKKyAgICAgICAgRXhhbXBsZTo6CisKKyAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlICJhY3Rp
dmUiIENTUyBjbGFzcyBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQuCisgICAgICAgICAgICB0ZXh0
X2xlbmd0aCA9IHRhcmdldF9lbGVtZW50LmdldF9wcm9wZXJ0eSgidGV4dF9sZW5ndGgiKQorICAg
ICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGUo
Q29tbWFuZC5HRVRfRUxFTUVOVF9QUk9QRVJUWSwgeyJuYW1lIjogbmFtZX0pWyJ2YWx1ZSJdCisg
ICAgICAgIGV4Y2VwdCBXZWJEcml2ZXJFeGNlcHRpb246CisgICAgICAgICAgICAjIGlmIHdlIGhp
dCBhbiBlbmQgcG9pbnQgdGhhdCBkb2VzbnQgdW5kZXJzdGFuZCBnZXRFbGVtZW50UHJvcGVydHkg
bGV0cyBmYWtlIGl0CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQuZXhlY3V0ZV9zY3Jp
cHQoJ3JldHVybiBhcmd1bWVudHNbMF1bYXJndW1lbnRzWzFdXScsIHNlbGYsIG5hbWUpCisKKyAg
ICBkZWYgZ2V0X2F0dHJpYnV0ZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiR2V0cyB0aGUgZ2l2
ZW4gYXR0cmlidXRlIG9yIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50LgorCisgICAgICAgIFRoaXMg
bWV0aG9kIHdpbGwgZmlyc3QgdHJ5IHRvIHJldHVybiB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSB3
aXRoIHRoZQorICAgICAgICBnaXZlbiBuYW1lLiBJZiBhIHByb3BlcnR5IHdpdGggdGhhdCBuYW1l
IGRvZXNuJ3QgZXhpc3QsIGl0IHJldHVybnMgdGhlCisgICAgICAgIHZhbHVlIG9mIHRoZSBhdHRy
aWJ1dGUgd2l0aCB0aGUgc2FtZSBuYW1lLiBJZiB0aGVyZSdzIG5vIGF0dHJpYnV0ZSB3aXRoCisg
ICAgICAgIHRoYXQgbmFtZSwgYGBOb25lYGAgaXMgcmV0dXJuZWQuCisKKyAgICAgICAgVmFsdWVz
IHdoaWNoIGFyZSBjb25zaWRlcmVkIHRydXRoeSwgdGhhdCBpcyBlcXVhbHMgInRydWUiIG9yICJm
YWxzZSIsCisgICAgICAgIGFyZSByZXR1cm5lZCBhcyBib29sZWFucy4gIEFsbCBvdGhlciBub24t
YGBOb25lYGAgdmFsdWVzIGFyZSByZXR1cm5lZAorICAgICAgICBhcyBzdHJpbmdzLiAgRm9yIGF0
dHJpYnV0ZXMgb3IgcHJvcGVydGllcyB3aGljaCBkbyBub3QgZXhpc3QsIGBgTm9uZWBgCisgICAg
ICAgIGlzIHJldHVybmVkLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSBuYW1lIC0g
TmFtZSBvZiB0aGUgYXR0cmlidXRlL3Byb3BlcnR5IHRvIHJldHJpZXZlLgorCisgICAgICAgIEV4
YW1wbGU6OgorCisgICAgICAgICAgICAjIENoZWNrIGlmIHRoZSAiYWN0aXZlIiBDU1MgY2xhc3Mg
aXMgYXBwbGllZCB0byBhbiBlbGVtZW50LgorICAgICAgICAgICAgaXNfYWN0aXZlID0gImFjdGl2
ZSIgaW4gdGFyZ2V0X2VsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgiY2xhc3MiKQorCisgICAgICAgICIi
IgorCisgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gJycKKyAgICAgICAgaWYgc2VsZi5fdzNjOgor
ICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPSBzZWxmLnBhcmVudC5leGVjdXRlX3NjcmlwdCgK
KyAgICAgICAgICAgICAgICAicmV0dXJuICglcykuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsiICUg
Z2V0QXR0cmlidXRlX2pzLAorICAgICAgICAgICAgICAgIHNlbGYsIG5hbWUpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXNwID0gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5U
X0FUVFJJQlVURSwgeyduYW1lJzogbmFtZX0pCisgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9
IHJlc3AuZ2V0KCd2YWx1ZScpCisgICAgICAgICAgICBpZiBhdHRyaWJ1dGVWYWx1ZSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICBpZiBuYW1lICE9ICd2YWx1ZScgYW5kIGF0dHJpYnV0ZVZh
bHVlLmxvd2VyKCkgaW4gKCd0cnVlJywgJ2ZhbHNlJyk6CisgICAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRlVmFsdWUubG93ZXIoKQorICAgICAgICByZXR1cm4gYXR0
cmlidXRlVmFsdWUKKworICAgIGRlZiBpc19zZWxlY3RlZChzZWxmKToKKyAgICAgICAgIiIiUmV0
dXJucyB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkLgorCisgICAgICAgIENhbiBiZSB1
c2VkIHRvIGNoZWNrIGlmIGEgY2hlY2tib3ggb3IgcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLgor
ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5JU19FTEVN
RU5UX1NFTEVDVEVEKVsndmFsdWUnXQorCisgICAgZGVmIGlzX2VuYWJsZWQoc2VsZik6CisgICAg
ICAgICIiIlJldHVybnMgd2hldGhlciB0aGUgZWxlbWVudCBpcyBlbmFibGVkLiIiIgorICAgICAg
ICByZXR1cm4gc2VsZi5fZXhlY3V0ZShDb21tYW5kLklTX0VMRU1FTlRfRU5BQkxFRClbJ3ZhbHVl
J10KKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfaWQoc2VsZiwgaWRfKToKKyAgICAgICAgIiIi
RmluZHMgZWxlbWVudCB3aXRoaW4gdGhpcyBlbGVtZW50J3MgY2hpbGRyZW4gYnkgSUQuCisKKyAg
ICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGlkXF8gLSBJRCBvZiBjaGlsZCBlbGVtZW50IHRv
IGxvY2F0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9aWRfKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfaWQoc2VsZiwg
aWRfKToKKyAgICAgICAgIiIiRmluZHMgYSBsaXN0IG9mIGVsZW1lbnRzIHdpdGhpbiB0aGlzIGVs
ZW1lbnQncyBjaGlsZHJlbiBieSBJRC4KKworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0g
aWRcXyAtIElkIG9mIGNoaWxkIGVsZW1lbnQgdG8gZmluZC4KKyAgICAgICAgIiIiCisgICAgICAg
IHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuSUQsIHZhbHVlPWlkXykKKworICAgIGRl
ZiBmaW5kX2VsZW1lbnRfYnlfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiRmluZHMgZWxl
bWVudCB3aXRoaW4gdGhpcyBlbGVtZW50J3MgY2hpbGRyZW4gYnkgbmFtZS4KKworICAgICAgICA6
QXJnczoKKyAgICAgICAgICAgIC0gbmFtZSAtIG5hbWUgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQg
dG8gZmluZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChi
eT1CeS5OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfbmFtZShz
ZWxmLCBuYW1lKToKKyAgICAgICAgIiIiRmluZHMgYSBsaXN0IG9mIGVsZW1lbnRzIHdpdGhpbiB0
aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBieSBuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAg
ICAgICAgLSBuYW1lIC0gbmFtZSBwcm9wZXJ0eSB0byBzZWFyY2ggZm9yLgorICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5OQU1FLCB2YWx1ZT1uYW1l
KQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToK
KyAgICAgICAgIiIiRmluZHMgZWxlbWVudCB3aXRoaW4gdGhpcyBlbGVtZW50J3MgY2hpbGRyZW4g
YnkgdmlzaWJsZSBsaW5rIHRleHQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGxp
bmtfdGV4dCAtIExpbmsgdGV4dCBzdHJpbmcgdG8gc2VhcmNoIGZvci4KKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5MSU5LX1RFWFQsIHZhbHVlPWxp
bmtfdGV4dCkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRzX2J5X2xpbmtfdGV4dChzZWxmLCBsaW5r
X3RleHQpOgorICAgICAgICAiIiJGaW5kcyBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0aGluIHRoaXMg
ZWxlbWVudCdzIGNoaWxkcmVuIGJ5IHZpc2libGUgbGluayB0ZXh0LgorCisgICAgICAgIDpBcmdz
OgorICAgICAgICAgICAgLSBsaW5rX3RleHQgLSBMaW5rIHRleHQgc3RyaW5nIHRvIHNlYXJjaCBm
b3IuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5
LkxJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0KQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9w
YXJ0aWFsX2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgorICAgICAgICAiIiJGaW5kcyBlbGVt
ZW50IHdpdGhpbiB0aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBieSBwYXJ0aWFsbHkgdmlzaWJsZSBs
aW5rIHRleHQuCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGxpbmtfdGV4dCAtIExp
bmsgdGV4dCBzdHJpbmcgdG8gc2VhcmNoIGZvci4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy
biBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5QQVJUSUFMX0xJTktfVEVYVCwgdmFsdWU9bGlua190
ZXh0KQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfcGFydGlhbF9saW5rX3RleHQoc2VsZiwg
bGlua190ZXh0KToKKyAgICAgICAgIiIiRmluZHMgYSBsaXN0IG9mIGVsZW1lbnRzIHdpdGhpbiB0
aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBieSBsaW5rIHRleHQuCisKKyAgICAgICAgOkFyZ3M6Cisg
ICAgICAgICAgICAtIGxpbmtfdGV4dCAtIExpbmsgdGV4dCBzdHJpbmcgdG8gc2VhcmNoIGZvci4K
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuUEFS
VElBTF9MSU5LX1RFWFQsIHZhbHVlPWxpbmtfdGV4dCkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRf
YnlfdGFnX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIkZpbmRzIGVsZW1lbnQgd2l0aGlu
IHRoaXMgZWxlbWVudCdzIGNoaWxkcmVuIGJ5IHRhZyBuYW1lLgorCisgICAgICAgIDpBcmdzOgor
ICAgICAgICAgICAgLSBuYW1lIC0gbmFtZSBvZiBodG1sIHRhZyAoZWc6IGgxLCBhLCBzcGFuKQor
ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LlRBR19O
QU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoc2Vs
ZiwgbmFtZSk6CisgICAgICAgICIiIkZpbmRzIGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoaW4gdGhp
cyBlbGVtZW50J3MgY2hpbGRyZW4gYnkgdGFnIG5hbWUuCisKKyAgICAgICAgOkFyZ3M6CisgICAg
ICAgICAgICAtIG5hbWUgLSBuYW1lIG9mIGh0bWwgdGFnIChlZzogaDEsIGEsIHNwYW4pCisgICAg
ICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LlRBR19OQU1F
LCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV94cGF0aChzZWxmLCB4cGF0
aCk6CisgICAgICAgICIiIkZpbmRzIGVsZW1lbnQgYnkgeHBhdGguCisKKyAgICAgICAgOkFyZ3M6
CisgICAgICAgICAgICB4cGF0aCAtIHhwYXRoIG9mIGVsZW1lbnQgdG8gbG9jYXRlLiAgIi8vaW5w
dXRbQGNsYXNzPSdteWVsZW1lbnQnXSIKKworICAgICAgICBOb3RlOiBUaGUgYmFzZSBwYXRoIHdp
bGwgYmUgcmVsYXRpdmUgdG8gdGhpcyBlbGVtZW50J3MgbG9jYXRpb24uCisKKyAgICAgICAgVGhp
cyB3aWxsIHNlbGVjdCB0aGUgZmlyc3QgbGluayB1bmRlciB0aGlzIGVsZW1lbnQuCisKKyAgICAg
ICAgOjoKKworICAgICAgICAgICAgbXllbGVtZW50LmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoIi4v
L2EiKQorCisgICAgICAgIEhvd2V2ZXIsIHRoaXMgd2lsbCBzZWxlY3QgdGhlIGZpcnN0IGxpbmsg
b24gdGhlIHBhZ2UuCisKKyAgICAgICAgOjoKKworICAgICAgICAgICAgbXllbGVtZW50LmZpbmRf
ZWxlbWVudHNfYnlfeHBhdGgoIi8vYSIpCisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBz
ZWxmLmZpbmRfZWxlbWVudChieT1CeS5YUEFUSCwgdmFsdWU9eHBhdGgpCisKKyAgICBkZWYgZmlu
ZF9lbGVtZW50c19ieV94cGF0aChzZWxmLCB4cGF0aCk6CisgICAgICAgICIiIkZpbmRzIGVsZW1l
bnRzIHdpdGhpbiB0aGUgZWxlbWVudCBieSB4cGF0aC4KKworICAgICAgICA6QXJnczoKKyAgICAg
ICAgICAgIC0geHBhdGggLSB4cGF0aCBsb2NhdG9yIHN0cmluZy4KKworICAgICAgICBOb3RlOiBU
aGUgYmFzZSBwYXRoIHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhpcyBlbGVtZW50J3MgbG9jYXRpb24u
CisKKyAgICAgICAgVGhpcyB3aWxsIHNlbGVjdCBhbGwgbGlua3MgdW5kZXIgdGhpcyBlbGVtZW50
LgorCisgICAgICAgIDo6CisKKyAgICAgICAgICAgIG15ZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5
X3hwYXRoKCIuLy9hIikKKworICAgICAgICBIb3dldmVyLCB0aGlzIHdpbGwgc2VsZWN0IGFsbCBs
aW5rcyBpbiB0aGUgcGFnZSBpdHNlbGYuCisKKyAgICAgICAgOjoKKworICAgICAgICAgICAgbXll
bGVtZW50LmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoIi8vYSIpCisKKyAgICAgICAgIiIiCisgICAg
ICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuWFBBVEgsIHZhbHVlPXhwYXRoKQor
CisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9jbGFzc19uYW1lKHNlbGYsIG5hbWUpOgorICAgICAg
ICAiIiJGaW5kcyBlbGVtZW50IHdpdGhpbiB0aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBieSBjbGFz
cyBuYW1lLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSBuYW1lIC0gY2xhc3MgbmFt
ZSB0byBzZWFyY2ggZm9yLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9l
bGVtZW50KGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVt
ZW50c19ieV9jbGFzc19uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiJGaW5kcyBhIGxpc3Qg
b2YgZWxlbWVudHMgd2l0aGluIHRoaXMgZWxlbWVudCdzIGNoaWxkcmVuIGJ5IGNsYXNzIG5hbWUu
CisKKyAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIG5hbWUgLSBjbGFzcyBuYW1lIHRvIHNl
YXJjaCBmb3IuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRz
KGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5
X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nfc2VsZWN0b3IpOgorICAgICAgICAiIiJGaW5kcyBlbGVt
ZW50IHdpdGhpbiB0aGlzIGVsZW1lbnQncyBjaGlsZHJlbiBieSBDU1Mgc2VsZWN0b3IuCisKKyAg
ICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGNzc19zZWxlY3RvciAtIENTUyBzZWxjdG9yIHN0
cmluZywgZXg6ICdhLm5hdiNob21lJworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
ZmluZF9lbGVtZW50KGJ5PUJ5LkNTU19TRUxFQ1RPUiwgdmFsdWU9Y3NzX3NlbGVjdG9yKQorCisg
ICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKHNlbGYsIGNzc19zZWxlY3Rvcik6
CisgICAgICAgICIiIkZpbmRzIGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoaW4gdGhpcyBlbGVtZW50
J3MgY2hpbGRyZW4gYnkgQ1NTIHNlbGVjdG9yLgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAg
ICAgLSBjc3Nfc2VsZWN0b3IgLSBDU1Mgc2VsY3RvciBzdHJpbmcsIGV4OiAnYS5uYXYjaG9tZScK
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuQ1NT
X1NFTEVDVE9SLCB2YWx1ZT1jc3Nfc2VsZWN0b3IpCisKKyAgICBkZWYgc2VuZF9rZXlzKHNlbGYs
ICp2YWx1ZSk6CisgICAgICAgICIiIlNpbXVsYXRlcyB0eXBpbmcgaW50byB0aGUgZWxlbWVudC4K
KworICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0gdmFsdWUgLSBBIHN0cmluZyBmb3IgdHlw
aW5nLCBvciBzZXR0aW5nIGZvcm0gZmllbGRzLiAgRm9yIHNldHRpbmcKKyAgICAgICAgICAgICAg
ZmlsZSBpbnB1dHMsIHRoaXMgY291bGQgYmUgYSBsb2NhbCBmaWxlIHBhdGguCisKKyAgICAgICAg
VXNlIHRoaXMgdG8gc2VuZCBzaW1wbGUga2V5IGV2ZW50cyBvciB0byBmaWxsIG91dCBmb3JtIGZp
ZWxkczo6CisKKyAgICAgICAgICAgIGZvcm1fdGV4dGZpZWxkID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9uYW1lKCd1c2VybmFtZScpCisgICAgICAgICAgICBmb3JtX3RleHRmaWVsZC5zZW5kX2tl
eXMoImFkbWluIikKKworICAgICAgICBUaGlzIGNhbiBhbHNvIGJlIHVzZWQgdG8gc2V0IGZpbGUg
aW5wdXRzLgorCisgICAgICAgIDo6CisKKyAgICAgICAgICAgIGZpbGVfaW5wdXQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X25hbWUoJ3Byb2ZpbGVQaWMnKQorICAgICAgICAgICAgZmlsZV9pbnB1
dC5zZW5kX2tleXMoInBhdGgvdG8vcHJvZmlsZXBpYy5naWYiKQorICAgICAgICAgICAgIyBHZW5l
cmFsbHkgaXQncyBiZXR0ZXIgdG8gd3JhcCB0aGUgZmlsZSBwYXRoIGluIG9uZSBvZiB0aGUgbWV0
aG9kcworICAgICAgICAgICAgIyBpbiBvcy5wYXRoIHRvIHJldHVybiB0aGUgYWN0dWFsIHBhdGgg
dG8gc3VwcG9ydCBjcm9zcyBPUyB0ZXN0aW5nLgorICAgICAgICAgICAgIyBmaWxlX2lucHV0LnNl
bmRfa2V5cyhvcy5wYXRoLmFic3BhdGgoInBhdGgvdG8vcHJvZmlsZXBpYy5naWYiKSkKKworICAg
ICAgICAiIiIKKyAgICAgICAgIyB0cmFuc2ZlciBmaWxlIHRvIGFub3RoZXIgbWFjaGluZSBvbmx5
IGlmIHJlbW90ZSBkcml2ZXIgaXMgdXNlZAorICAgICAgICAjIHRoZSBzYW1lIGJlaGF2aW91ciBh
cyBmb3IgamF2YSBiaW5kaW5nCisgICAgICAgIGlmIHNlbGYucGFyZW50Ll9pc19yZW1vdGU6Cisg
ICAgICAgICAgICBsb2NhbF9maWxlID0gc2VsZi5wYXJlbnQuZmlsZV9kZXRlY3Rvci5pc19sb2Nh
bF9maWxlKCp2YWx1ZSkKKyAgICAgICAgICAgIGlmIGxvY2FsX2ZpbGUgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAgICAgdmFsdWUgPSBzZWxmLl91cGxvYWQobG9jYWxfZmlsZSkKKworICAgICAg
ICBzZWxmLl9leGVjdXRlKENvbW1hbmQuU0VORF9LRVlTX1RPX0VMRU1FTlQsCisgICAgICAgICAg
ICAgICAgICAgICAgeyd0ZXh0JzogIiIuam9pbihrZXlzX3RvX3R5cGluZyh2YWx1ZSkpLAorICAg
ICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiBrZXlzX3RvX3R5cGluZyh2YWx1ZSl9KQorCisg
ICAgIyBSZW5kZXJlZFdlYkVsZW1lbnQgSXRlbXMKKyAgICBkZWYgaXNfZGlzcGxheWVkKHNlbGYp
OgorICAgICAgICAiIiJXaGV0aGVyIHRoZSBlbGVtZW50IGlzIHZpc2libGUgdG8gYSB1c2VyLiIi
IgorICAgICAgICAjIE9ubHkgZ28gaW50byB0aGlzIGNvbmRpdGlvbmFsIGZvciBicm93c2VycyB0
aGF0IGRvbid0IHVzZSB0aGUgYXRvbSB0aGVtc2VsdmVzCisgICAgICAgIGlmIHNlbGYuX3czYyBh
bmQgc2VsZi5wYXJlbnQuY2FwYWJpbGl0aWVzWydicm93c2VyTmFtZSddID09ICdzYWZhcmknOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50LmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAg
ICAgICAgICJyZXR1cm4gKCVzKS5hcHBseShudWxsLCBhcmd1bWVudHMpOyIgJSBpc0Rpc3BsYXll
ZF9qcywKKyAgICAgICAgICAgICAgICBzZWxmKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5JU19FTEVNRU5UX0RJU1BMQVlFRClbJ3ZhbHVl
J10KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2NhdGlvbl9vbmNlX3Njcm9sbGVkX2ludG9f
dmlldyhzZWxmKToKKyAgICAgICAgIiIiVEhJUyBQUk9QRVJUWSBNQVkgQ0hBTkdFIFdJVEhPVVQg
V0FSTklORy4gVXNlIHRoaXMgdG8gZGlzY292ZXIKKyAgICAgICAgd2hlcmUgb24gdGhlIHNjcmVl
biBhbiBlbGVtZW50IGlzIHNvIHRoYXQgd2UgY2FuIGNsaWNrIGl0LiBUaGlzIG1ldGhvZAorICAg
ICAgICBzaG91bGQgY2F1c2UgdGhlIGVsZW1lbnQgdG8gYmUgc2Nyb2xsZWQgaW50byB2aWV3Lgor
CisgICAgICAgIFJldHVybnMgdGhlIHRvcCBsZWZ0aGFuZCBjb3JuZXIgbG9jYXRpb24gb24gdGhl
IHNjcmVlbiwgb3IgYGBOb25lYGAgaWYKKyAgICAgICAgdGhlIGVsZW1lbnQgaXMgbm90IHZpc2li
bGUuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX3czYzoKKyAgICAgICAgICAgIG9s
ZF9sb2MgPSBzZWxmLl9leGVjdXRlKENvbW1hbmQuVzNDX0VYRUNVVEVfU0NSSVBULCB7CisgICAg
ICAgICAgICAgICAgJ3NjcmlwdCc6ICJhcmd1bWVudHNbMF0uc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7
IHJldHVybiBhcmd1bWVudHNbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkiLAorICAgICAgICAg
ICAgICAgICdhcmdzJzogW3NlbGZdfSlbJ3ZhbHVlJ10KKyAgICAgICAgICAgIHJldHVybiB7Ingi
OiByb3VuZChvbGRfbG9jWyd4J10pLAorICAgICAgICAgICAgICAgICAgICAieSI6IHJvdW5kKG9s
ZF9sb2NbJ3knXSl9CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZXhl
Y3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX0xPQ0FUSU9OX09OQ0VfU0NST0xMRURfSU5UT19WSUVX
KVsndmFsdWUnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNpemUoc2VsZik6CisgICAgICAg
ICIiIlRoZSBzaXplIG9mIHRoZSBlbGVtZW50LiIiIgorICAgICAgICBzaXplID0ge30KKyAgICAg
ICAgaWYgc2VsZi5fdzNjOgorICAgICAgICAgICAgc2l6ZSA9IHNlbGYuX2V4ZWN1dGUoQ29tbWFu
ZC5HRVRfRUxFTUVOVF9SRUNUKVsndmFsdWUnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
c2l6ZSA9IHNlbGYuX2V4ZWN1dGUoQ29tbWFuZC5HRVRfRUxFTUVOVF9TSVpFKVsndmFsdWUnXQor
ICAgICAgICBuZXdfc2l6ZSA9IHsiaGVpZ2h0Ijogc2l6ZVsiaGVpZ2h0Il0sCisgICAgICAgICAg
ICAgICAgICAgICJ3aWR0aCI6IHNpemVbIndpZHRoIl19CisgICAgICAgIHJldHVybiBuZXdfc2l6
ZQorCisgICAgZGVmIHZhbHVlX29mX2Nzc19wcm9wZXJ0eShzZWxmLCBwcm9wZXJ0eV9uYW1lKToK
KyAgICAgICAgIiIiVGhlIHZhbHVlIG9mIGEgQ1NTIHByb3BlcnR5LiIiIgorICAgICAgICByZXR1
cm4gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX1ZBTFVFX09GX0NTU19QUk9QRVJU
WSwgeworICAgICAgICAgICAgJ3Byb3BlcnR5TmFtZSc6IHByb3BlcnR5X25hbWV9KVsndmFsdWUn
XQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxvY2F0aW9uKHNlbGYpOgorICAgICAgICAiIiJU
aGUgbG9jYXRpb24gb2YgdGhlIGVsZW1lbnQgaW4gdGhlIHJlbmRlcmFibGUgY2FudmFzLiIiIgor
ICAgICAgICBpZiBzZWxmLl93M2M6CisgICAgICAgICAgICBvbGRfbG9jID0gc2VsZi5fZXhlY3V0
ZShDb21tYW5kLkdFVF9FTEVNRU5UX1JFQ1QpWyd2YWx1ZSddCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBvbGRfbG9jID0gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVNRU5UX0xPQ0FU
SU9OKVsndmFsdWUnXQorICAgICAgICBuZXdfbG9jID0geyJ4Ijogcm91bmQob2xkX2xvY1sneCdd
KSwKKyAgICAgICAgICAgICAgICAgICAieSI6IHJvdW5kKG9sZF9sb2NbJ3knXSl9CisgICAgICAg
IHJldHVybiBuZXdfbG9jCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVjdChzZWxmKToKKyAg
ICAgICAgIiIiQSBkaWN0aW9uYXJ5IHdpdGggdGhlIHNpemUgYW5kIGxvY2F0aW9uIG9mIHRoZSBl
bGVtZW50LiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0ZShDb21tYW5kLkdFVF9FTEVN
RU5UX1JFQ1QpWyd2YWx1ZSddCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyZWVuc2hvdF9h
c19iYXNlNjQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIHRoZSBzY3JlZW5zaG90
IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQgYXMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcuCisKKyAg
ICAgICAgOlVzYWdlOgorICAgICAgICAgICAgaW1nX2I2NCA9IGVsZW1lbnQuc2NyZWVuc2hvdF9h
c19iYXNlNjQKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1h
bmQuRUxFTUVOVF9TQ1JFRU5TSE9UKVsndmFsdWUnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IHNjcmVlbnNob3RfYXNfcG5nKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0cyB0aGUg
c2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGFzIGEgYmluYXJ5IGRhdGEuCisKKyAg
ICAgICAgOlVzYWdlOgorICAgICAgICAgICAgZWxlbWVudF9wbmcgPSBlbGVtZW50LnNjcmVlbnNo
b3RfYXNfcG5nCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gYmFzZTY0LmI2NGRlY29kZShz
ZWxmLnNjcmVlbnNob3RfYXNfYmFzZTY0LmVuY29kZSgnYXNjaWknKSkKKworICAgIGRlZiBzY3Jl
ZW5zaG90KHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIFNhdmVzIGEgc2Ny
ZWVuc2hvdCBvZiB0aGUgY3VycmVudCBlbGVtZW50IHRvIGEgUE5HIGltYWdlIGZpbGUuIFJldHVy
bnMKKyAgICAgICAgICAgRmFsc2UgaWYgdGhlcmUgaXMgYW55IElPRXJyb3IsIGVsc2UgcmV0dXJu
cyBUcnVlLiBVc2UgZnVsbCBwYXRocyBpbgorICAgICAgICAgICB5b3VyIGZpbGVuYW1lLgorCisg
ICAgICAgIDpBcmdzOgorICAgICAgICAgLSBmaWxlbmFtZTogVGhlIGZ1bGwgcGF0aCB5b3Ugd2lz
aCB0byBzYXZlIHlvdXIgc2NyZWVuc2hvdCB0by4gVGhpcworICAgICAgICAgICBzaG91bGQgZW5k
IHdpdGggYSBgLnBuZ2AgZXh0ZW5zaW9uLgorCisgICAgICAgIDpVc2FnZToKKyAgICAgICAgICAg
IGVsZW1lbnQuc2NyZWVuc2hvdCgnL1NjcmVlbnNob3RzL2Zvby5wbmcnKQorICAgICAgICAiIiIK
KyAgICAgICAgaWYgbm90IGZpbGVuYW1lLmxvd2VyKCkuZW5kc3dpdGgoJy5wbmcnKToKKyAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oIm5hbWUgdXNlZCBmb3Igc2F2ZWQgc2NyZWVuc2hvdCBkb2Vz
IG5vdCBtYXRjaCBmaWxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUuIEl0IHNo
b3VsZCBlbmQgd2l0aCBhIGAucG5nYCBleHRlbnNpb24iLCBVc2VyV2FybmluZykKKyAgICAgICAg
cG5nID0gc2VsZi5zY3JlZW5zaG90X2FzX3BuZworICAgICAgICB0cnk6CisgICAgICAgICAgICB3
aXRoIG9wZW4oZmlsZW5hbWUsICd3YicpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZShw
bmcpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBkZWwgcG5nCisgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFyZW50KHNlbGYpOgorICAgICAgICAiIiJJbnRl
cm5hbCByZWZlcmVuY2UgdG8gdGhlIFdlYkRyaXZlciBpbnN0YW5jZSB0aGlzIGVsZW1lbnQgd2Fz
IGZvdW5kIGZyb20uIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgIiIiSW50ZXJuYWwgSUQgdXNlZCBieSBz
ZWxlbml1bS4KKworICAgICAgICBUaGlzIGlzIG1haW5seSBmb3IgaW50ZXJuYWwgdXNlLiBTaW1w
bGUgdXNlIGNhc2VzIHN1Y2ggYXMgY2hlY2tpbmcgaWYgMgorICAgICAgICB3ZWJlbGVtZW50cyBy
ZWZlciB0byB0aGUgc2FtZSBlbGVtZW50LCBjYW4gYmUgZG9uZSB1c2luZyBgYD09YGA6OgorCisg
ICAgICAgICAgICBpZiBlbGVtZW50MSA9PSBlbGVtZW50MjoKKyAgICAgICAgICAgICAgICBwcmlu
dCgiVGhlc2UgMiBhcmUgZXF1YWwiKQorCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5faWQKKworICAgIGRlZiBfX2VxX18oc2VsZiwgZWxlbWVudCk6CisgICAgICAgIHJldHVybiBo
YXNhdHRyKGVsZW1lbnQsICdpZCcpIGFuZCBzZWxmLl9pZCA9PSBlbGVtZW50LmlkCisKKyAgICBk
ZWYgX19uZV9fKHNlbGYsIGVsZW1lbnQpOgorICAgICAgICByZXR1cm4gbm90IHNlbGYuX19lcV9f
KGVsZW1lbnQpCisKKyAgICAjIFByaXZhdGUgTWV0aG9kcworICAgIGRlZiBfZXhlY3V0ZShzZWxm
LCBjb21tYW5kLCBwYXJhbXM9Tm9uZSk6CisgICAgICAgICIiIkV4ZWN1dGVzIGEgY29tbWFuZCBh
Z2FpbnN0IHRoZSB1bmRlcmx5aW5nIEhUTUwgZWxlbWVudC4KKworICAgICAgICBBcmdzOgorICAg
ICAgICAgIGNvbW1hbmQ6IFRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIHRvIF9leGVjdXRlIGFzIGEg
c3RyaW5nLgorICAgICAgICAgIHBhcmFtczogQSBkaWN0aW9uYXJ5IG9mIG5hbWVkIHBhcmFtZXRl
cnMgdG8gc2VuZCB3aXRoIHRoZSBjb21tYW5kLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAg
ICAgVGhlIGNvbW1hbmQncyBKU09OIHJlc3BvbnNlIGxvYWRlZCBpbnRvIGEgZGljdGlvbmFyeSBv
YmplY3QuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgcGFyYW1zOgorICAgICAgICAgICAg
cGFyYW1zID0ge30KKyAgICAgICAgcGFyYW1zWydpZCddID0gc2VsZi5faWQKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3BhcmVudC5leGVjdXRlKGNvbW1hbmQsIHBhcmFtcykKKworICAgIGRlZiBmaW5k
X2VsZW1lbnQoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5vbmUpOgorICAgICAgICBpZiBzZWxmLl93
M2M6CisgICAgICAgICAgICBpZiBieSA9PSBCeS5JRDoKKyAgICAgICAgICAgICAgICBieSA9IEJ5
LkNTU19TRUxFQ1RPUgorICAgICAgICAgICAgICAgIHZhbHVlID0gJ1tpZD0iJXMiXScgJSB2YWx1
ZQorICAgICAgICAgICAgZWxpZiBieSA9PSBCeS5UQUdfTkFNRToKKyAgICAgICAgICAgICAgICBi
eSA9IEJ5LkNTU19TRUxFQ1RPUgorICAgICAgICAgICAgZWxpZiBieSA9PSBCeS5DTEFTU19OQU1F
OgorICAgICAgICAgICAgICAgIGJ5ID0gQnkuQ1NTX1NFTEVDVE9SCisgICAgICAgICAgICAgICAg
dmFsdWUgPSAiLiVzIiAlIHZhbHVlCisgICAgICAgICAgICBlbGlmIGJ5ID09IEJ5Lk5BTUU6Cisg
ICAgICAgICAgICAgICAgYnkgPSBCeS5DU1NfU0VMRUNUT1IKKyAgICAgICAgICAgICAgICB2YWx1
ZSA9ICdbbmFtZT0iJXMiXScgJSB2YWx1ZQorCisgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRl
KENvbW1hbmQuRklORF9DSElMRF9FTEVNRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7InVzaW5nIjogYnksICJ2YWx1ZSI6IHZhbHVlfSlbJ3ZhbHVlJ10KKworICAgIGRlZiBmaW5k
X2VsZW1lbnRzKHNlbGYsIGJ5PUJ5LklELCB2YWx1ZT1Ob25lKToKKyAgICAgICAgaWYgc2VsZi5f
dzNjOgorICAgICAgICAgICAgaWYgYnkgPT0gQnkuSUQ6CisgICAgICAgICAgICAgICAgYnkgPSBC
eS5DU1NfU0VMRUNUT1IKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICdbaWQ9IiVzIl0nICUgdmFs
dWUKKyAgICAgICAgICAgIGVsaWYgYnkgPT0gQnkuVEFHX05BTUU6CisgICAgICAgICAgICAgICAg
YnkgPSBCeS5DU1NfU0VMRUNUT1IKKyAgICAgICAgICAgIGVsaWYgYnkgPT0gQnkuQ0xBU1NfTkFN
RToKKyAgICAgICAgICAgICAgICBieSA9IEJ5LkNTU19TRUxFQ1RPUgorICAgICAgICAgICAgICAg
IHZhbHVlID0gIi4lcyIgJSB2YWx1ZQorICAgICAgICAgICAgZWxpZiBieSA9PSBCeS5OQU1FOgor
ICAgICAgICAgICAgICAgIGJ5ID0gQnkuQ1NTX1NFTEVDVE9SCisgICAgICAgICAgICAgICAgdmFs
dWUgPSAnW25hbWU9IiVzIl0nICUgdmFsdWUKKworICAgICAgICByZXR1cm4gc2VsZi5fZXhlY3V0
ZShDb21tYW5kLkZJTkRfQ0hJTERfRUxFTUVOVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsidXNpbmciOiBieSwgInZhbHVlIjogdmFsdWV9KVsndmFsdWUnXQorCisgICAgZGVmIF9f
aGFzaF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gaW50KGhhc2hsaWIubWQ1KHNlbGYuX2lkLmVu
Y29kZSgndXRmLTgnKSkuaGV4ZGlnZXN0KCksIDE2KQorCisgICAgZGVmIF91cGxvYWQoc2VsZiwg
ZmlsZW5hbWUpOgorICAgICAgICBmcCA9IElPU3RyZWFtKCkKKyAgICAgICAgemlwcGVkID0gemlw
ZmlsZS5aaXBGaWxlKGZwLCAndycsIHppcGZpbGUuWklQX0RFRkxBVEVEKQorICAgICAgICB6aXBw
ZWQud3JpdGUoZmlsZW5hbWUsIG9zLnBhdGguc3BsaXQoZmlsZW5hbWUpWzFdKQorICAgICAgICB6
aXBwZWQuY2xvc2UoKQorICAgICAgICBjb250ZW50ID0gYmFzZTY0LmVuY29kZXN0cmluZyhmcC5n
ZXR2YWx1ZSgpKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb250ZW50LCBzdHIpOgorICAg
ICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZGVjb2RlKCd1dGYtOCcpCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRlKENvbW1hbmQuVVBMT0FEX0ZJTEUsIHsn
ZmlsZSc6IGNvbnRlbnR9KVsndmFsdWUnXQorICAgICAgICBleGNlcHQgV2ViRHJpdmVyRXhjZXB0
aW9uIGFzIGU6CisgICAgICAgICAgICBpZiAiVW5yZWNvZ25pemVkIGNvbW1hbmQ6IFBPU1QiIGlu
IGUuX19zdHJfXygpOgorICAgICAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZQorICAgICAgICAg
ICAgZWxpZiAiQ29tbWFuZCBub3QgZm91bmQ6IFBPU1QgIiBpbiBlLl9fc3RyX18oKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmlsZW5hbWUKKyAgICAgICAgICAgIGVsaWYgJ3sic3RhdHVzIjo0
MDUsInZhbHVlIjpbIkdFVCIsIkhFQUQiLCJERUxFVEUiXX0nIGluIGUuX19zdHJfXygpOgorICAg
ICAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICByYWlzZSBlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL19faW5pdF9fLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9fX2lu
aXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1
YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAK
KyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5k
ZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRo
ZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMg
bGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl
cnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBl
eGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4g
YSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp
Y2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh
dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNz
IG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNl
bnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2Vs
ZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9zZXJ2aWNlLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0
ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9zZXJ2aWNlLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hOGZkMDg0ZTUzYQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dl
YmRyaXZlci9zYWZhcmkvc2VydmljZS5weQpAQCAtMCwwICsxLDU2IEBACisjIExpY2Vuc2VkIHRv
IHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBt
b3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUK
KyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24K
KyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMg
ZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
CisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUg
TGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNF
LTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRv
IGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBP
UiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAg
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBl
cm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0
IG9zCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24gaW1wb3J0IHNlcnZpY2UsIHV0aWxz
Citmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IFBJUEUKKworCitjbGFzcyBTZXJ2aWNlKHNlcnZpY2Uu
U2VydmljZSk6CisgICAgIiIiCisgICAgT2JqZWN0IHRoYXQgbWFuYWdlcyB0aGUgc3RhcnRpbmcg
YW5kIHN0b3BwaW5nIG9mIHRoZSBTYWZhcmlEcml2ZXIKKyAgICAiIiIKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQ9MCwgcXVpZXQ9RmFsc2UpOgorICAgICAg
ICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgU2VydmljZQorCisg
ICAgICAgIDpBcmdzOgorICAgICAgICAgLSBleGVjdXRhYmxlX3BhdGggOiBQYXRoIHRvIHRoZSBT
YWZhcmlEcml2ZXIKKyAgICAgICAgIC0gcG9ydCA6IFBvcnQgdGhlIHNlcnZpY2UgaXMgcnVubmlu
ZyBvbiAiIiIKKworICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZXhlY3V0YWJsZV9wYXRo
KToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2FmYXJpRHJpdmVyIHJlcXVpcmVzIFNh
ZmFyaSAxMCBvbiBPU1ggRWwgQ2FwaXRhbiBvciBncmVhdGVyIikKKworICAgICAgICBpZiBwb3J0
ID09IDA6CisgICAgICAgICAgICBwb3J0ID0gdXRpbHMuZnJlZV9wb3J0KCkKKworICAgICAgICBz
ZWxmLnF1aWV0ID0gcXVpZXQKKyAgICAgICAgbG9nID0gUElQRQorICAgICAgICBpZiBxdWlldDoK
KyAgICAgICAgICAgIGxvZyA9IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKQorICAgICAgICBzZXJ2aWNl
LlNlcnZpY2UuX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9wYXRoLCBwb3J0LCBsb2cpCisKKyAg
ICBkZWYgY29tbWFuZF9saW5lX2FyZ3Moc2VsZik6CisgICAgICAgIHJldHVybiBbIi1wIiwgIiVz
IiAlIHNlbGYucG9ydF0KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzZXJ2aWNlX3VybChzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgIEdldHMgdGhlIHVybCBvZiB0aGUgU2FmYXJpRHJpdmVy
IFNlcnZpY2UKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiAiaHR0cDovL2xvY2FsaG9zdDol
ZCIgJSBzZWxmLnBvcnQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvd2ViZHJpdmVyLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS93ZWJk
cml2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjNTU5ZTZi
M2NlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvc2VsZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS93ZWJkcml2ZXIucHkKQEAgLTAsMCArMSw2NSBA
QAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1
bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUg
dGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlv
bmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNG
QyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg
VmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxl
IGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFp
biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcv
bGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg
bGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRI
T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJl
c3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1
YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExp
Y2Vuc2UuCisKK3RyeToKKyAgICBpbXBvcnQgaHR0cC5jbGllbnQgYXMgaHR0cF9jbGllbnQKK2V4
Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBpbXBvcnQgaHR0cGxpYiBhcyBodHRwX2NsaWVudAorCitm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0
IERlc2lyZWRDYXBhYmlsaXRpZXMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS53ZWJk
cml2ZXIgaW1wb3J0IFdlYkRyaXZlciBhcyBSZW1vdGVXZWJEcml2ZXIKK2Zyb20gLnNlcnZpY2Ug
aW1wb3J0IFNlcnZpY2UKKworCitjbGFzcyBXZWJEcml2ZXIoUmVtb3RlV2ViRHJpdmVyKToKKyAg
ICAiIiIKKyAgICBDb250cm9scyB0aGUgU2FmYXJpRHJpdmVyIGFuZCBhbGxvd3MgeW91IHRvIGRy
aXZlIHRoZSBicm93c2VyLgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dD0wLCBleGVjdXRhYmxlX3BhdGg9Ii91c3IvYmluL3NhZmFyaWRyaXZlciIsCisgICAgICAgICAg
ICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPURlc2lyZWRDYXBhYmlsaXRpZXMuU0FGQVJJLCBx
dWlldD1GYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3IGluc3RhbmNl
IG9mIHRoZSBTYWZhcmkgZHJpdmVyLgorCisgICAgICAgIFN0YXJ0cyB0aGUgc2VydmljZSBhbmQg
dGhlbiBjcmVhdGVzIG5ldyBpbnN0YW5jZSBvZiBTYWZhcmkgRHJpdmVyLgorCisgICAgICAgIDpB
cmdzOgorICAgICAgICAgLSBwb3J0IC0gcG9ydCB5b3Ugd291bGQgbGlrZSB0aGUgc2VydmljZSB0
byBydW4sIGlmIGxlZnQgYXMgMCwgYSBmcmVlIHBvcnQgd2lsbCBiZSBmb3VuZC4KKyAgICAgICAg
IC0gZGVzaXJlZF9jYXBhYmlsaXRpZXM6IERpY3Rpb25hcnkgb2JqZWN0IHdpdGggZGVzaXJlZCBj
YXBhYmlsaXRpZXMgKENhbiBiZSB1c2VkIHRvIHByb3ZpZGUgdmFyaW91cyBTYWZhcmkgc3dpdGNo
ZXMpLgorICAgICAgICAgLSBxdWlldCAtIHNldCB0byBUcnVlIHRvIHN1cHByZXNzIHN0ZG91dCBh
bmQgc3RkZXJyIG9mIHRoZSBkcml2ZXIKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuc2Vydmlj
ZSA9IFNlcnZpY2UoZXhlY3V0YWJsZV9wYXRoLCBwb3J0PXBvcnQsIHF1aWV0PXF1aWV0KQorICAg
ICAgICBzZWxmLnNlcnZpY2Uuc3RhcnQoKQorCisgICAgICAgIFJlbW90ZVdlYkRyaXZlci5fX2lu
aXRfXygKKyAgICAgICAgICAgIHNlbGYsCisgICAgICAgICAgICBjb21tYW5kX2V4ZWN1dG9yPXNl
bGYuc2VydmljZS5zZXJ2aWNlX3VybCwKKyAgICAgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVz
PWRlc2lyZWRfY2FwYWJpbGl0aWVzKQorICAgICAgICBzZWxmLl9pc19yZW1vdGUgPSBGYWxzZQor
CisgICAgZGVmIHF1aXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDbG9zZXMgdGhlIGJy
b3dzZXIgYW5kIHNodXRzIGRvd24gdGhlIFNhZmFyaURyaXZlciBleGVjdXRhYmxlCisgICAgICAg
IHRoYXQgaXMgc3RhcnRlZCB3aGVuIHN0YXJ0aW5nIHRoZSBTYWZhcmlEcml2ZXIKKyAgICAgICAg
IiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFJlbW90ZVdlYkRyaXZlci5xdWl0KHNlbGYp
CisgICAgICAgIGV4Y2VwdCBodHRwX2NsaWVudC5CYWRTdGF0dXNMaW5lOgorICAgICAgICAgICAg
cGFzcworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5zZXJ2aWNlLnN0b3AoKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0v
d2ViZHJpdmVyL3N1cHBvcnQvX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9fX2luaXRfXy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvc3VwcG9ydC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRv
IHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBt
b3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUK
KyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24K
KyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMg
ZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
CisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUg
TGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNF
LTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRv
IGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBP
UiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAg
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBl
cm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9zdXBwb3J0L2Fic3RyYWN0X2V2ZW50X2xpc3RlbmVyLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvYWJzdHJhY3RfZXZl
bnRfbGlzdGVuZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdk
ZDE2NmI3N2FjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvYWJzdHJhY3RfZXZlbnRfbGlzdGVu
ZXIucHkKQEAgLTAsMCArMSw3OSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworY2xhc3MgQWJzdHJhY3RFdmVudExpc3Rl
bmVyKG9iamVjdCk6CisgICAgIiIiCisgICAgRXZlbnQgbGlzdGVuZXIgbXVzdCBzdWJjbGFzcyBh
bmQgaW1wbGVtZW50IHRoaXMgZnVsbHkgb3IgcGFydGlhbGx5CisgICAgIiIiCisKKyAgICBkZWYg
YmVmb3JlX25hdmlnYXRlX3RvKHNlbGYsIHVybCwgZHJpdmVyKToKKyAgICAgICAgcGFzcworCisg
ICAgZGVmIGFmdGVyX25hdmlnYXRlX3RvKHNlbGYsIHVybCwgZHJpdmVyKToKKyAgICAgICAgcGFz
cworCisgICAgZGVmIGJlZm9yZV9uYXZpZ2F0ZV9iYWNrKHNlbGYsIGRyaXZlcik6CisgICAgICAg
IHBhc3MKKworICAgIGRlZiBhZnRlcl9uYXZpZ2F0ZV9iYWNrKHNlbGYsIGRyaXZlcik6CisgICAg
ICAgIHBhc3MKKworICAgIGRlZiBiZWZvcmVfbmF2aWdhdGVfZm9yd2FyZChzZWxmLCBkcml2ZXIp
OgorICAgICAgICBwYXNzCisKKyAgICBkZWYgYWZ0ZXJfbmF2aWdhdGVfZm9yd2FyZChzZWxmLCBk
cml2ZXIpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgYmVmb3JlX2ZpbmQoc2VsZiwgYnksIHZh
bHVlLCBkcml2ZXIpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgYWZ0ZXJfZmluZChzZWxmLCBi
eSwgdmFsdWUsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBiZWZvcmVfY2xpY2so
c2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGFmdGVyX2Ns
aWNrKHNlbGYsIGVsZW1lbnQsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBiZWZv
cmVfY2hhbmdlX3ZhbHVlX29mKHNlbGYsIGVsZW1lbnQsIGRyaXZlcik6CisgICAgICAgIHBhc3MK
KworICAgIGRlZiBhZnRlcl9jaGFuZ2VfdmFsdWVfb2Yoc2VsZiwgZWxlbWVudCwgZHJpdmVyKToK
KyAgICAgICAgcGFzcworCisgICAgZGVmIGJlZm9yZV9leGVjdXRlX3NjcmlwdChzZWxmLCBzY3Jp
cHQsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBhZnRlcl9leGVjdXRlX3Njcmlw
dChzZWxmLCBzY3JpcHQsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBiZWZvcmVf
Y2xvc2Uoc2VsZiwgZHJpdmVyKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGFmdGVyX2Nsb3Nl
KHNlbGYsIGRyaXZlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBiZWZvcmVfcXVpdChzZWxm
LCBkcml2ZXIpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgYWZ0ZXJfcXVpdChzZWxmLCBkcml2
ZXIpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgb25fZXhjZXB0aW9uKHNlbGYsIGV4Y2VwdGlv
biwgZHJpdmVyKToKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvY29sb3IucHkgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3Vw
cG9ydC9jb2xvci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzlm
ZDMyNDExYzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9jb2xvci5weQpAQCAtMCwwICsxLDMx
MCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZD
KSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBT
ZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRp
dGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhl
IFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z
ZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBm
aWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9i
dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5v
cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2Fi
bGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1
bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBX
SVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4
cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxh
bmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhl
IExpY2Vuc2UuCisKK1JHQl9QQVRURVJOID0gciJeXHMqcmdiXChccyooXGR7MSwzfSlccyosXHMq
KFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKlwpXHMqJCIKK1JHQl9QQ1RfUEFUVEVSTiA9IHIi
XlxzKnJnYlwoXHMqKFxkezEsM318XGR7MSwyfVwuXGQrKSVccyosXHMqKFxkezEsM318XGR7MSwy
fVwuXGQrKSVccyosXHMqKFxkezEsM318XGR7MSwyfVwuXGQrKSVccypcKVxzKiQiCitSR0JBX1BB
VFRFUk4gPSByIl5ccypyZ2JhXChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihc
ZHsxLDN9KVxzKixccyooMHwxfDBcLlxkKylccypcKVxzKiQiCitSR0JBX1BDVF9QQVRURVJOID0g
ciJeXHMqcmdiYVwoXHMqKFxkezEsM318XGR7MSwyfVwuXGQrKSVccyosXHMqKFxkezEsM318XGR7
MSwyfVwuXGQrKSVccyosXHMqKFxkezEsM318XGR7MSwyfVwuXGQrKSVccyosXHMqKDB8MXwwXC5c
ZCspXHMqXClccyokIgorSEVYX1BBVFRFUk4gPSByIiMoW0EtRmEtZjAtOV17Mn0pKFtBLUZhLWYw
LTldezJ9KShbQS1GYS1mMC05XXsyfSkiCitIRVgzX1BBVFRFUk4gPSByIiMoW0EtRmEtZjAtOV0p
KFtBLUZhLWYwLTldKShbQS1GYS1mMC05XSkiCitIU0xfUEFUVEVSTiA9IHIiXlxzKmhzbFwoXHMq
KFxkezEsM30pXHMqLFxzKihcZHsxLDN9KSVccyosXHMqKFxkezEsM30pJVxzKlwpXHMqJCIKK0hT
TEFfUEFUVEVSTiA9IHIiXlxzKmhzbGFcKFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSklXHMq
LFxzKihcZHsxLDN9KSVccyosXHMqKDB8MXwwXC5cZCspXHMqXClccyokIgorCisKK2NsYXNzIENv
bG9yKG9iamVjdCk6CisgICAgIiIiCisgICAgQ29sb3IgY29udmVyc2lvbiBzdXBwb3J0IGNsYXNz
CisKKyAgICBFeGFtcGxlOgorCisgICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICAg
IGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuY29sb3IgaW1wb3J0IENvbG9yCisKKyAg
ICAgICAgcHJpbnQoQ29sb3IuZnJvbV9zdHJpbmcoJyMwMGZmMzMnKS5yZ2JhKQorICAgICAgICBw
cmludChDb2xvci5mcm9tX3N0cmluZygncmdiKDEsIDI1NSwgMyknKS5oZXgpCisgICAgICAgIHBy
aW50KENvbG9yLmZyb21fc3RyaW5nKCdibHVlJykucmdiYSkKKyAgICAiIiIKKworICAgIEBzdGF0
aWNtZXRob2QKKyAgICBkZWYgZnJvbV9zdHJpbmcoc3RyXyk6CisgICAgICAgIGltcG9ydCByZQor
CisgICAgICAgIGNsYXNzIE1hdGNoZXIob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLm1hdGNoX29iaiA9IE5vbmUKKworICAgICAg
ICAgICAgZGVmIG1hdGNoKHNlbGYsIHBhdHRlcm4sIHN0cl8pOgorICAgICAgICAgICAgICAgIHNl
bGYubWF0Y2hfb2JqID0gcmUubWF0Y2gocGF0dGVybiwgc3RyXykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5tYXRjaF9vYmoKKworICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAg
ICBkZWYgZ3JvdXBzKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAoKSBpZiBzZWxmLm1h
dGNoX29iaiBpcyBOb25lIGVsc2Ugc2VsZi5tYXRjaF9vYmouZ3JvdXBzKCkKKworICAgICAgICBt
ID0gTWF0Y2hlcigpCisKKyAgICAgICAgaWYgbS5tYXRjaChSR0JfUEFUVEVSTiwgc3RyXyk6Cisg
ICAgICAgICAgICByZXR1cm4gQ29sb3IoKm0uZ3JvdXBzKQorICAgICAgICBlbGlmIG0ubWF0Y2go
UkdCX1BDVF9QQVRURVJOLCBzdHJfKToKKyAgICAgICAgICAgIHJnYiA9IHR1cGxlKFtmbG9hdChl
YWNoKSAvIDEwMCAqIDI1NSBmb3IgZWFjaCBpbiBtLmdyb3Vwc10pCisgICAgICAgICAgICByZXR1
cm4gQ29sb3IoKnJnYikKKyAgICAgICAgZWxpZiBtLm1hdGNoKFJHQkFfUEFUVEVSTiwgc3RyXyk6
CisgICAgICAgICAgICByZXR1cm4gQ29sb3IoKm0uZ3JvdXBzKQorICAgICAgICBlbGlmIG0ubWF0
Y2goUkdCQV9QQ1RfUEFUVEVSTiwgc3RyXyk6CisgICAgICAgICAgICByZ2JhID0gdHVwbGUoW2Zs
b2F0KGVhY2gpIC8gMTAwICogMjU1IGZvciBlYWNoIGluIG0uZ3JvdXBzWzozXV0gKyBbbS5ncm91
cHNbM11dKQorICAgICAgICAgICAgcmV0dXJuIENvbG9yKCpyZ2JhKQorICAgICAgICBlbGlmIG0u
bWF0Y2goSEVYX1BBVFRFUk4sIHN0cl8pOgorICAgICAgICAgICAgcmdiID0gdHVwbGUoW2ludChl
YWNoLCAxNikgZm9yIGVhY2ggaW4gbS5ncm91cHNdKQorICAgICAgICAgICAgcmV0dXJuIENvbG9y
KCpyZ2IpCisgICAgICAgIGVsaWYgbS5tYXRjaChIRVgzX1BBVFRFUk4sIHN0cl8pOgorICAgICAg
ICAgICAgcmdiID0gdHVwbGUoW2ludChlYWNoICogMiwgMTYpIGZvciBlYWNoIGluIG0uZ3JvdXBz
XSkKKyAgICAgICAgICAgIHJldHVybiBDb2xvcigqcmdiKQorICAgICAgICBlbGlmIG0ubWF0Y2go
SFNMX1BBVFRFUk4sIHN0cl8pIG9yIG0ubWF0Y2goSFNMQV9QQVRURVJOLCBzdHJfKToKKyAgICAg
ICAgICAgIHJldHVybiBDb2xvci5fZnJvbV9oc2woKm0uZ3JvdXBzKQorICAgICAgICBlbGlmIHN0
cl8udXBwZXIoKSBpbiBDb2xvcnMua2V5cygpOgorICAgICAgICAgICAgcmV0dXJuIENvbG9yc1tz
dHJfLnVwcGVyKCldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJDb3VsZCBub3QgY29udmVydCAlcyBpbnRvIGNvbG9yIiAlIHN0cl8pCisKKyAgICBAc3RhdGlj
bWV0aG9kCisgICAgZGVmIF9mcm9tX2hzbChoLCBzLCBsLCBhPTEpOgorICAgICAgICBoID0gZmxv
YXQoaCkgLyAzNjAKKyAgICAgICAgcyA9IGZsb2F0KHMpIC8gMTAwCisgICAgICAgIGwgPSBmbG9h
dChsKSAvIDEwMAorCisgICAgICAgIGlmIHMgPT0gMDoKKyAgICAgICAgICAgIHIgPSBsCisgICAg
ICAgICAgICBnID0gcgorICAgICAgICAgICAgYiA9IHIKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGx1bWlub2NpdHkyID0gbCAqICgxICsgcykgaWYgbCA8IDAuNSBlbHNlIGwgKyBzIC0gbCAq
IHMKKyAgICAgICAgICAgIGx1bWlub2NpdHkxID0gMiAqIGwgLSBsdW1pbm9jaXR5MgorCisgICAg
ICAgICAgICBkZWYgaHVlX3RvX3JnYihsdW0xLCBsdW0yLCBodWUpOgorICAgICAgICAgICAgICAg
IGlmIGh1ZSA8IDAuMDoKKyAgICAgICAgICAgICAgICAgICAgaHVlICs9IDEKKyAgICAgICAgICAg
ICAgICBpZiBodWUgPiAxLjA6CisgICAgICAgICAgICAgICAgICAgIGh1ZSAtPSAxCisKKyAgICAg
ICAgICAgICAgICBpZiBodWUgPCAxLjAgLyA2LjA6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biAobHVtMSArIChsdW0yIC0gbHVtMSkgKiA2LjAgKiBodWUpCisgICAgICAgICAgICAgICAgZWxp
ZiBodWUgPCAxLjAgLyAyLjA6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsdW0yCisgICAg
ICAgICAgICAgICAgZWxpZiBodWUgPCAyLjAgLyAzLjA6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBsdW0xICsgKGx1bTIgLSBsdW0xKSAqICgoMi4wIC8gMy4wKSAtIGh1ZSkgKiA2LjAKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbHVtMQorCisg
ICAgICAgICAgICByID0gaHVlX3RvX3JnYihsdW1pbm9jaXR5MSwgbHVtaW5vY2l0eTIsIGggKyAx
LjAgLyAzLjApCisgICAgICAgICAgICBnID0gaHVlX3RvX3JnYihsdW1pbm9jaXR5MSwgbHVtaW5v
Y2l0eTIsIGgpCisgICAgICAgICAgICBiID0gaHVlX3RvX3JnYihsdW1pbm9jaXR5MSwgbHVtaW5v
Y2l0eTIsIGggLSAxLjAgLyAzLjApCisKKyAgICAgICAgcmV0dXJuIENvbG9yKHJvdW5kKHIgKiAy
NTUpLCByb3VuZChnICogMjU1KSwgcm91bmQoYiAqIDI1NSksIGEpCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE9MSk6CisgICAgICAgIHNlbGYucmVkID0g
aW50KHJlZCkKKyAgICAgICAgc2VsZi5ncmVlbiA9IGludChncmVlbikKKyAgICAgICAgc2VsZi5i
bHVlID0gaW50KGJsdWUpCisgICAgICAgIHNlbGYuYWxwaGEgPSAiMSIgaWYgZmxvYXQoYWxwaGEp
ID09IDEgZWxzZSBzdHIoZmxvYXQoYWxwaGEpIG9yIDApCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgcmdiKHNlbGYpOgorICAgICAgICByZXR1cm4gInJnYiglZCwgJWQsICVkKSIgJSAoc2VsZi5y
ZWQsIHNlbGYuZ3JlZW4sIHNlbGYuYmx1ZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZ2Jh
KHNlbGYpOgorICAgICAgICByZXR1cm4gInJnYmEoJWQsICVkLCAlZCwgJXMpIiAlIChzZWxmLnJl
ZCwgc2VsZi5ncmVlbiwgc2VsZi5ibHVlLCBzZWxmLmFscGhhKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGhleChzZWxmKToKKyAgICAgICAgcmV0dXJuICIjJTAyeCUwMnglMDJ4IiAlIChzZWxm
LnJlZCwgc2VsZi5ncmVlbiwgc2VsZi5ibHVlKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhl
cik6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIENvbG9yKToKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLnJnYmEgPT0gb3RoZXIucmdiYQorICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50
ZWQKKworICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXN1bHQgPSBzZWxm
Ll9fZXFfXyhvdGhlcikKKyAgICAgICAgaWYgcmVzdWx0IGlzIE5vdEltcGxlbWVudGVkOgorICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICByZXR1cm4gbm90IHJlc3VsdAorCisgICAg
ZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzaCgoc2VsZi5yZWQsIHNlbGYu
Z3JlZW4sIHNlbGYuYmx1ZSwgc2VsZi5hbHBoYSkpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6
CisgICAgICAgIHJldHVybiAiQ29sb3IocmVkPSVkLCBncmVlbj0lZCwgYmx1ZT0lZCwgYWxwaGE9
JXMpIiAlIChzZWxmLnJlZCwgc2VsZi5ncmVlbiwgc2VsZi5ibHVlLCBzZWxmLmFscGhhKQorCisg
ICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAiQ29sb3I6ICVzIiAlIHNlbGYu
cmdiYQorCisKKyMgQmFzaWMsIGV4dGVuZGVkIGFuZCB0cmFuc3BhcmVudCBjb2xvdXIga2V5d29y
ZHMgYXMgZGVmaW5lZCBieSB0aGUgVzNDIEhUTUw0IHNwZWMKKyMgU2VlIGh0dHA6Ly93d3cudzMu
b3JnL1RSL2NzczMtY29sb3IvI2h0bWw0CitDb2xvcnMgPSB7CisgICAgIlRSQU5TUEFSRU5UIjog
Q29sb3IoMCwgMCwgMCwgMCksCisgICAgIkFMSUNFQkxVRSI6IENvbG9yKDI0MCwgMjQ4LCAyNTUp
LAorICAgICJBTlRJUVVFV0hJVEUiOiBDb2xvcigyNTAsIDIzNSwgMjE1KSwKKyAgICAiQVFVQSI6
IENvbG9yKDAsIDI1NSwgMjU1KSwKKyAgICAiQVFVQU1BUklORSI6IENvbG9yKDEyNywgMjU1LCAy
MTIpLAorICAgICJBWlVSRSI6IENvbG9yKDI0MCwgMjU1LCAyNTUpLAorICAgICJCRUlHRSI6IENv
bG9yKDI0NSwgMjQ1LCAyMjApLAorICAgICJCSVNRVUUiOiBDb2xvcigyNTUsIDIyOCwgMTk2KSwK
KyAgICAiQkxBQ0siOiBDb2xvcigwLCAwLCAwKSwKKyAgICAiQkxBTkNIRURBTE1PTkQiOiBDb2xv
cigyNTUsIDIzNSwgMjA1KSwKKyAgICAiQkxVRSI6IENvbG9yKDAsIDAsIDI1NSksCisgICAgIkJM
VUVWSU9MRVQiOiBDb2xvcigxMzgsIDQzLCAyMjYpLAorICAgICJCUk9XTiI6IENvbG9yKDE2NSwg
NDIsIDQyKSwKKyAgICAiQlVSTFlXT09EIjogQ29sb3IoMjIyLCAxODQsIDEzNSksCisgICAgIkNB
REVUQkxVRSI6IENvbG9yKDk1LCAxNTgsIDE2MCksCisgICAgIkNIQVJUUkVVU0UiOiBDb2xvcigx
MjcsIDI1NSwgMCksCisgICAgIkNIT0NPTEFURSI6IENvbG9yKDIxMCwgMTA1LCAzMCksCisgICAg
IkNPUkFMIjogQ29sb3IoMjU1LCAxMjcsIDgwKSwKKyAgICAiQ09STkZMT1dFUkJMVUUiOiBDb2xv
cigxMDAsIDE0OSwgMjM3KSwKKyAgICAiQ09STlNJTEsiOiBDb2xvcigyNTUsIDI0OCwgMjIwKSwK
KyAgICAiQ1JJTVNPTiI6IENvbG9yKDIyMCwgMjAsIDYwKSwKKyAgICAiQ1lBTiI6IENvbG9yKDAs
IDI1NSwgMjU1KSwKKyAgICAiREFSS0JMVUUiOiBDb2xvcigwLCAwLCAxMzkpLAorICAgICJEQVJL
Q1lBTiI6IENvbG9yKDAsIDEzOSwgMTM5KSwKKyAgICAiREFSS0dPTERFTlJPRCI6IENvbG9yKDE4
NCwgMTM0LCAxMSksCisgICAgIkRBUktHUkFZIjogQ29sb3IoMTY5LCAxNjksIDE2OSksCisgICAg
IkRBUktHUkVFTiI6IENvbG9yKDAsIDEwMCwgMCksCisgICAgIkRBUktHUkVZIjogQ29sb3IoMTY5
LCAxNjksIDE2OSksCisgICAgIkRBUktLSEFLSSI6IENvbG9yKDE4OSwgMTgzLCAxMDcpLAorICAg
ICJEQVJLTUFHRU5UQSI6IENvbG9yKDEzOSwgMCwgMTM5KSwKKyAgICAiREFSS09MSVZFR1JFRU4i
OiBDb2xvcig4NSwgMTA3LCA0NyksCisgICAgIkRBUktPUkFOR0UiOiBDb2xvcigyNTUsIDE0MCwg
MCksCisgICAgIkRBUktPUkNISUQiOiBDb2xvcigxNTMsIDUwLCAyMDQpLAorICAgICJEQVJLUkVE
IjogQ29sb3IoMTM5LCAwLCAwKSwKKyAgICAiREFSS1NBTE1PTiI6IENvbG9yKDIzMywgMTUwLCAx
MjIpLAorICAgICJEQVJLU0VBR1JFRU4iOiBDb2xvcigxNDMsIDE4OCwgMTQzKSwKKyAgICAiREFS
S1NMQVRFQkxVRSI6IENvbG9yKDcyLCA2MSwgMTM5KSwKKyAgICAiREFSS1NMQVRFR1JBWSI6IENv
bG9yKDQ3LCA3OSwgNzkpLAorICAgICJEQVJLU0xBVEVHUkVZIjogQ29sb3IoNDcsIDc5LCA3OSks
CisgICAgIkRBUktUVVJRVU9JU0UiOiBDb2xvcigwLCAyMDYsIDIwOSksCisgICAgIkRBUktWSU9M
RVQiOiBDb2xvcigxNDgsIDAsIDIxMSksCisgICAgIkRFRVBQSU5LIjogQ29sb3IoMjU1LCAyMCwg
MTQ3KSwKKyAgICAiREVFUFNLWUJMVUUiOiBDb2xvcigwLCAxOTEsIDI1NSksCisgICAgIkRJTUdS
QVkiOiBDb2xvcigxMDUsIDEwNSwgMTA1KSwKKyAgICAiRElNR1JFWSI6IENvbG9yKDEwNSwgMTA1
LCAxMDUpLAorICAgICJET0RHRVJCTFVFIjogQ29sb3IoMzAsIDE0NCwgMjU1KSwKKyAgICAiRklS
RUJSSUNLIjogQ29sb3IoMTc4LCAzNCwgMzQpLAorICAgICJGTE9SQUxXSElURSI6IENvbG9yKDI1
NSwgMjUwLCAyNDApLAorICAgICJGT1JFU1RHUkVFTiI6IENvbG9yKDM0LCAxMzksIDM0KSwKKyAg
ICAiRlVDSFNJQSI6IENvbG9yKDI1NSwgMCwgMjU1KSwKKyAgICAiR0FJTlNCT1JPIjogQ29sb3Io
MjIwLCAyMjAsIDIyMCksCisgICAgIkdIT1NUV0hJVEUiOiBDb2xvcigyNDgsIDI0OCwgMjU1KSwK
KyAgICAiR09MRCI6IENvbG9yKDI1NSwgMjE1LCAwKSwKKyAgICAiR09MREVOUk9EIjogQ29sb3Io
MjE4LCAxNjUsIDMyKSwKKyAgICAiR1JBWSI6IENvbG9yKDEyOCwgMTI4LCAxMjgpLAorICAgICJH
UkVZIjogQ29sb3IoMTI4LCAxMjgsIDEyOCksCisgICAgIkdSRUVOIjogQ29sb3IoMCwgMTI4LCAw
KSwKKyAgICAiR1JFRU5ZRUxMT1ciOiBDb2xvcigxNzMsIDI1NSwgNDcpLAorICAgICJIT05FWURF
VyI6IENvbG9yKDI0MCwgMjU1LCAyNDApLAorICAgICJIT1RQSU5LIjogQ29sb3IoMjU1LCAxMDUs
IDE4MCksCisgICAgIklORElBTlJFRCI6IENvbG9yKDIwNSwgOTIsIDkyKSwKKyAgICAiSU5ESUdP
IjogQ29sb3IoNzUsIDAsIDEzMCksCisgICAgIklWT1JZIjogQ29sb3IoMjU1LCAyNTUsIDI0MCks
CisgICAgIktIQUtJIjogQ29sb3IoMjQwLCAyMzAsIDE0MCksCisgICAgIkxBVkVOREVSIjogQ29s
b3IoMjMwLCAyMzAsIDI1MCksCisgICAgIkxBVkVOREVSQkxVU0giOiBDb2xvcigyNTUsIDI0MCwg
MjQ1KSwKKyAgICAiTEFXTkdSRUVOIjogQ29sb3IoMTI0LCAyNTIsIDApLAorICAgICJMRU1PTkNI
SUZGT04iOiBDb2xvcigyNTUsIDI1MCwgMjA1KSwKKyAgICAiTElHSFRCTFVFIjogQ29sb3IoMTcz
LCAyMTYsIDIzMCksCisgICAgIkxJR0hUQ09SQUwiOiBDb2xvcigyNDAsIDEyOCwgMTI4KSwKKyAg
ICAiTElHSFRDWUFOIjogQ29sb3IoMjI0LCAyNTUsIDI1NSksCisgICAgIkxJR0hUR09MREVOUk9E
WUVMTE9XIjogQ29sb3IoMjUwLCAyNTAsIDIxMCksCisgICAgIkxJR0hUR1JBWSI6IENvbG9yKDIx
MSwgMjExLCAyMTEpLAorICAgICJMSUdIVEdSRUVOIjogQ29sb3IoMTQ0LCAyMzgsIDE0NCksCisg
ICAgIkxJR0hUR1JFWSI6IENvbG9yKDIxMSwgMjExLCAyMTEpLAorICAgICJMSUdIVFBJTksiOiBD
b2xvcigyNTUsIDE4MiwgMTkzKSwKKyAgICAiTElHSFRTQUxNT04iOiBDb2xvcigyNTUsIDE2MCwg
MTIyKSwKKyAgICAiTElHSFRTRUFHUkVFTiI6IENvbG9yKDMyLCAxNzgsIDE3MCksCisgICAgIkxJ
R0hUU0tZQkxVRSI6IENvbG9yKDEzNSwgMjA2LCAyNTApLAorICAgICJMSUdIVFNMQVRFR1JBWSI6
IENvbG9yKDExOSwgMTM2LCAxNTMpLAorICAgICJMSUdIVFNMQVRFR1JFWSI6IENvbG9yKDExOSwg
MTM2LCAxNTMpLAorICAgICJMSUdIVFNURUVMQkxVRSI6IENvbG9yKDE3NiwgMTk2LCAyMjIpLAor
ICAgICJMSUdIVFlFTExPVyI6IENvbG9yKDI1NSwgMjU1LCAyMjQpLAorICAgICJMSU1FIjogQ29s
b3IoMCwgMjU1LCAwKSwKKyAgICAiTElNRUdSRUVOIjogQ29sb3IoNTAsIDIwNSwgNTApLAorICAg
ICJMSU5FTiI6IENvbG9yKDI1MCwgMjQwLCAyMzApLAorICAgICJNQUdFTlRBIjogQ29sb3IoMjU1
LCAwLCAyNTUpLAorICAgICJNQVJPT04iOiBDb2xvcigxMjgsIDAsIDApLAorICAgICJNRURJVU1B
UVVBTUFSSU5FIjogQ29sb3IoMTAyLCAyMDUsIDE3MCksCisgICAgIk1FRElVTUJMVUUiOiBDb2xv
cigwLCAwLCAyMDUpLAorICAgICJNRURJVU1PUkNISUQiOiBDb2xvcigxODYsIDg1LCAyMTEpLAor
ICAgICJNRURJVU1QVVJQTEUiOiBDb2xvcigxNDcsIDExMiwgMjE5KSwKKyAgICAiTUVESVVNU0VB
R1JFRU4iOiBDb2xvcig2MCwgMTc5LCAxMTMpLAorICAgICJNRURJVU1TTEFURUJMVUUiOiBDb2xv
cigxMjMsIDEwNCwgMjM4KSwKKyAgICAiTUVESVVNU1BSSU5HR1JFRU4iOiBDb2xvcigwLCAyNTAs
IDE1NCksCisgICAgIk1FRElVTVRVUlFVT0lTRSI6IENvbG9yKDcyLCAyMDksIDIwNCksCisgICAg
Ik1FRElVTVZJT0xFVFJFRCI6IENvbG9yKDE5OSwgMjEsIDEzMyksCisgICAgIk1JRE5JR0hUQkxV
RSI6IENvbG9yKDI1LCAyNSwgMTEyKSwKKyAgICAiTUlOVENSRUFNIjogQ29sb3IoMjQ1LCAyNTUs
IDI1MCksCisgICAgIk1JU1RZUk9TRSI6IENvbG9yKDI1NSwgMjI4LCAyMjUpLAorICAgICJNT0ND
QVNJTiI6IENvbG9yKDI1NSwgMjI4LCAxODEpLAorICAgICJOQVZBSk9XSElURSI6IENvbG9yKDI1
NSwgMjIyLCAxNzMpLAorICAgICJOQVZZIjogQ29sb3IoMCwgMCwgMTI4KSwKKyAgICAiT0xETEFD
RSI6IENvbG9yKDI1MywgMjQ1LCAyMzApLAorICAgICJPTElWRSI6IENvbG9yKDEyOCwgMTI4LCAw
KSwKKyAgICAiT0xJVkVEUkFCIjogQ29sb3IoMTA3LCAxNDIsIDM1KSwKKyAgICAiT1JBTkdFIjog
Q29sb3IoMjU1LCAxNjUsIDApLAorICAgICJPUkFOR0VSRUQiOiBDb2xvcigyNTUsIDY5LCAwKSwK
KyAgICAiT1JDSElEIjogQ29sb3IoMjE4LCAxMTIsIDIxNCksCisgICAgIlBBTEVHT0xERU5ST0Qi
OiBDb2xvcigyMzgsIDIzMiwgMTcwKSwKKyAgICAiUEFMRUdSRUVOIjogQ29sb3IoMTUyLCAyNTEs
IDE1MiksCisgICAgIlBBTEVUVVJRVU9JU0UiOiBDb2xvcigxNzUsIDIzOCwgMjM4KSwKKyAgICAi
UEFMRVZJT0xFVFJFRCI6IENvbG9yKDIxOSwgMTEyLCAxNDcpLAorICAgICJQQVBBWUFXSElQIjog
Q29sb3IoMjU1LCAyMzksIDIxMyksCisgICAgIlBFQUNIUFVGRiI6IENvbG9yKDI1NSwgMjE4LCAx
ODUpLAorICAgICJQRVJVIjogQ29sb3IoMjA1LCAxMzMsIDYzKSwKKyAgICAiUElOSyI6IENvbG9y
KDI1NSwgMTkyLCAyMDMpLAorICAgICJQTFVNIjogQ29sb3IoMjIxLCAxNjAsIDIyMSksCisgICAg
IlBPV0RFUkJMVUUiOiBDb2xvcigxNzYsIDIyNCwgMjMwKSwKKyAgICAiUFVSUExFIjogQ29sb3Io
MTI4LCAwLCAxMjgpLAorICAgICJSRUJFQ0NBUFVSUExFIjogQ29sb3IoMTI4LCA1MSwgMTUzKSwK
KyAgICAiUkVEIjogQ29sb3IoMjU1LCAwLCAwKSwKKyAgICAiUk9TWUJST1dOIjogQ29sb3IoMTg4
LCAxNDMsIDE0MyksCisgICAgIlJPWUFMQkxVRSI6IENvbG9yKDY1LCAxMDUsIDIyNSksCisgICAg
IlNBRERMRUJST1dOIjogQ29sb3IoMTM5LCA2OSwgMTkpLAorICAgICJTQUxNT04iOiBDb2xvcigy
NTAsIDEyOCwgMTE0KSwKKyAgICAiU0FORFlCUk9XTiI6IENvbG9yKDI0NCwgMTY0LCA5NiksCisg
ICAgIlNFQUdSRUVOIjogQ29sb3IoNDYsIDEzOSwgODcpLAorICAgICJTRUFTSEVMTCI6IENvbG9y
KDI1NSwgMjQ1LCAyMzgpLAorICAgICJTSUVOTkEiOiBDb2xvcigxNjAsIDgyLCA0NSksCisgICAg
IlNJTFZFUiI6IENvbG9yKDE5MiwgMTkyLCAxOTIpLAorICAgICJTS1lCTFVFIjogQ29sb3IoMTM1
LCAyMDYsIDIzNSksCisgICAgIlNMQVRFQkxVRSI6IENvbG9yKDEwNiwgOTAsIDIwNSksCisgICAg
IlNMQVRFR1JBWSI6IENvbG9yKDExMiwgMTI4LCAxNDQpLAorICAgICJTTEFURUdSRVkiOiBDb2xv
cigxMTIsIDEyOCwgMTQ0KSwKKyAgICAiU05PVyI6IENvbG9yKDI1NSwgMjUwLCAyNTApLAorICAg
ICJTUFJJTkdHUkVFTiI6IENvbG9yKDAsIDI1NSwgMTI3KSwKKyAgICAiU1RFRUxCTFVFIjogQ29s
b3IoNzAsIDEzMCwgMTgwKSwKKyAgICAiVEFOIjogQ29sb3IoMjEwLCAxODAsIDE0MCksCisgICAg
IlRFQUwiOiBDb2xvcigwLCAxMjgsIDEyOCksCisgICAgIlRISVNUTEUiOiBDb2xvcigyMTYsIDE5
MSwgMjE2KSwKKyAgICAiVE9NQVRPIjogQ29sb3IoMjU1LCA5OSwgNzEpLAorICAgICJUVVJRVU9J
U0UiOiBDb2xvcig2NCwgMjI0LCAyMDgpLAorICAgICJWSU9MRVQiOiBDb2xvcigyMzgsIDEzMCwg
MjM4KSwKKyAgICAiV0hFQVQiOiBDb2xvcigyNDUsIDIyMiwgMTc5KSwKKyAgICAiV0hJVEUiOiBD
b2xvcigyNTUsIDI1NSwgMjU1KSwKKyAgICAiV0hJVEVTTU9LRSI6IENvbG9yKDI0NSwgMjQ1LCAy
NDUpLAorICAgICJZRUxMT1ciOiBDb2xvcigyNTUsIDI1NSwgMCksCisgICAgIllFTExPV0dSRUVO
IjogQ29sb3IoMTU0LCAyMDUsIDUwKQorfQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1w
b3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5n
X3dlYmRyaXZlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVu
aXVtL3dlYmRyaXZlci9zdXBwb3J0L2V2ZW50X2ZpcmluZ193ZWJkcml2ZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjczYzQ0OGE3ZDg1Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dlYmRyaXZlci5weQpAQCAtMCwwICsxLDMyMiBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4
Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJv
bSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyCitm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5yZW1vdGUud2ViZWxlbWVudCBpbXBvcnQgV2ViRWxlbWVu
dAorZnJvbSAuYWJzdHJhY3RfZXZlbnRfbGlzdGVuZXIgaW1wb3J0IEFic3RyYWN0RXZlbnRMaXN0
ZW5lcgorCisKK2RlZiBfd3JhcF9lbGVtZW50cyhyZXN1bHQsIGVmX2RyaXZlcik6CisgICAgaWYg
aXNpbnN0YW5jZShyZXN1bHQsIFdlYkVsZW1lbnQpOgorICAgICAgICByZXR1cm4gRXZlbnRGaXJp
bmdXZWJFbGVtZW50KHJlc3VsdCwgZWZfZHJpdmVyKQorICAgIGVsaWYgaXNpbnN0YW5jZShyZXN1
bHQsIGxpc3QpOgorICAgICAgICByZXR1cm4gW193cmFwX2VsZW1lbnRzKGl0ZW0sIGVmX2RyaXZl
cikgZm9yIGl0ZW0gaW4gcmVzdWx0XQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiByZXN1bHQK
KworCitjbGFzcyBFdmVudEZpcmluZ1dlYkRyaXZlcihvYmplY3QpOgorICAgICIiIgorICAgIEEg
d3JhcHBlciBhcm91bmQgYW4gYXJiaXRyYXJ5IFdlYkRyaXZlciBpbnN0YW5jZSB3aGljaCBzdXBw
b3J0cyBmaXJpbmcgZXZlbnRzCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZHJp
dmVyLCBldmVudF9saXN0ZW5lcik6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3
IGluc3RhbmNlIG9mIHRoZSBFdmVudEZpcmluZ1dlYkRyaXZlcgorCisgICAgICAgIDpBcmdzOgor
ICAgICAgICAgLSBkcml2ZXIgOiBBIFdlYkRyaXZlciBpbnN0YW5jZQorICAgICAgICAgLSBldmVu
dF9saXN0ZW5lciA6IEluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBzdWJjbGFzc2VzIEFic3RyYWN0
RXZlbnRMaXN0ZW5lciBhbmQgaW1wbGVtZW50cyBpdCBmdWxseSBvciBwYXJ0aWFsbHkKKworICAg
ICAgICBFeGFtcGxlOgorCisgICAgICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAg
ICAgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IEZpcmVmb3gKKyAgICAgICAgICAg
IGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQuZXZlbnRzIGltcG9ydCBFdmVudEZpcmlu
Z1dlYkRyaXZlciwgQWJzdHJhY3RFdmVudExpc3RlbmVyCisKKyAgICAgICAgICAgIGNsYXNzIE15
TGlzdGVuZXIoQWJzdHJhY3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgICAgICAgICBkZWYgYmVm
b3JlX25hdmlnYXRlX3RvKHNlbGYsIHVybCwgZHJpdmVyKToKKyAgICAgICAgICAgICAgICAgICAg
cHJpbnQoIkJlZm9yZSBuYXZpZ2F0ZSB0byAlcyIgJSB1cmwpCisgICAgICAgICAgICAgICAgZGVm
IGFmdGVyX25hdmlnYXRlX3RvKHNlbGYsIHVybCwgZHJpdmVyKToKKyAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoIkFmdGVyIG5hdmlnYXRlIHRvICVzIiAlIHVybCkKKworICAgICAgICAgICAgZHJp
dmVyID0gRmlyZWZveCgpCisgICAgICAgICAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmluZ1dlYkRy
aXZlcihkcml2ZXIsIE15TGlzdGVuZXIoKSkKKyAgICAgICAgICAgIGVmX2RyaXZlci5nZXQoImh0
dHA6Ly93d3cuZ29vZ2xlLmNvLmluLyIpCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShkcml2ZXIsIFdlYkRyaXZlcik6CisgICAgICAgICAgICByYWlzZSBXZWJEcml2ZXJF
eGNlcHRpb24oIkEgV2ViRHJpdmVyIGluc3RhbmNlIG11c3QgYmUgc3VwcGxpZWQiKQorICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShldmVudF9saXN0ZW5lciwgQWJzdHJhY3RFdmVudExpc3RlbmVy
KToKKyAgICAgICAgICAgIHJhaXNlIFdlYkRyaXZlckV4Y2VwdGlvbigiRXZlbnQgbGlzdGVuZXIg
bXVzdCBiZSBhIHN1YmNsYXNzIG9mIEFic3RyYWN0RXZlbnRMaXN0ZW5lciIpCisgICAgICAgIHNl
bGYuX2RyaXZlciA9IGRyaXZlcgorICAgICAgICBzZWxmLl9kcml2ZXIuX3dyYXBfdmFsdWUgPSBz
ZWxmLl93cmFwX3ZhbHVlCisgICAgICAgIHNlbGYuX2xpc3RlbmVyID0gZXZlbnRfbGlzdGVuZXIK
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB3cmFwcGVkX2RyaXZlcihzZWxmKToKKyAgICAgICAg
IiIiUmV0dXJucyB0aGUgV2ViRHJpdmVyIGluc3RhbmNlIHdyYXBwZWQgYnkgdGhpcyBFdmVudHNG
aXJpbmdXZWJEcml2ZXIiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlcgorCisgICAgZGVm
IGdldChzZWxmLCB1cmwpOgorICAgICAgICBzZWxmLl9kaXNwYXRjaCgibmF2aWdhdGVfdG8iLCAo
dXJsLCBzZWxmLl9kcml2ZXIpLCAiZ2V0IiwgKHVybCwgKSkKKworICAgIGRlZiBiYWNrKHNlbGYp
OgorICAgICAgICBzZWxmLl9kaXNwYXRjaCgibmF2aWdhdGVfYmFjayIsIChzZWxmLl9kcml2ZXIs
KSwgImJhY2siLCAoKSkKKworICAgIGRlZiBmb3J3YXJkKHNlbGYpOgorICAgICAgICBzZWxmLl9k
aXNwYXRjaCgibmF2aWdhdGVfZm9yd2FyZCIsIChzZWxmLl9kcml2ZXIsKSwgImZvcndhcmQiLCAo
KSkKKworICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsICphcmdzKToKKyAgICAg
ICAgdW53cmFwcGVkX2FyZ3MgPSAoc2NyaXB0LCkgKyBzZWxmLl91bndyYXBfZWxlbWVudF9hcmdz
KGFyZ3MpCisgICAgICAgIHJldHVybiBzZWxmLl9kaXNwYXRjaCgiZXhlY3V0ZV9zY3JpcHQiLCAo
c2NyaXB0LCBzZWxmLl9kcml2ZXIpLCAiZXhlY3V0ZV9zY3JpcHQiLCB1bndyYXBwZWRfYXJncykK
KworICAgIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZWxmLCBzY3JpcHQsICphcmdzKToKKyAg
ICAgICAgdW53cmFwcGVkX2FyZ3MgPSAoc2NyaXB0LCkgKyBzZWxmLl91bndyYXBfZWxlbWVudF9h
cmdzKGFyZ3MpCisgICAgICAgIHJldHVybiBzZWxmLl9kaXNwYXRjaCgiZXhlY3V0ZV9zY3JpcHQi
LCAoc2NyaXB0LCBzZWxmLl9kcml2ZXIpLCAiZXhlY3V0ZV9hc3luY19zY3JpcHQiLCB1bndyYXBw
ZWRfYXJncykKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgc2VsZi5fZGlzcGF0Y2go
ImNsb3NlIiwgKHNlbGYuX2RyaXZlciwpLCAiY2xvc2UiLCAoKSkKKworICAgIGRlZiBxdWl0KHNl
bGYpOgorICAgICAgICBzZWxmLl9kaXNwYXRjaCgicXVpdCIsIChzZWxmLl9kcml2ZXIsKSwgInF1
aXQiLCAoKSkKKworICAgIGRlZiBmaW5kX2VsZW1lbnQoc2VsZiwgYnk9QnkuSUQsIHZhbHVlPU5v
bmUpOgorICAgICAgICByZXR1cm4gc2VsZi5fZGlzcGF0Y2goImZpbmQiLCAoYnksIHZhbHVlLCBz
ZWxmLl9kcml2ZXIpLCAiZmluZF9lbGVtZW50IiwgKGJ5LCB2YWx1ZSkpCisKKyAgICBkZWYgZmlu
ZF9lbGVtZW50cyhzZWxmLCBieT1CeS5JRCwgdmFsdWU9Tm9uZSk6CisgICAgICAgIHJldHVybiBz
ZWxmLl9kaXNwYXRjaCgiZmluZCIsIChieSwgdmFsdWUsIHNlbGYuX2RyaXZlciksICJmaW5kX2Vs
ZW1lbnRzIiwgKGJ5LCB2YWx1ZSkpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2lkKHNlbGYs
IGlkXyk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9
aWRfKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfaWQoc2VsZiwgaWRfKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5JRCwgdmFsdWU9aWRfKQorCisgICAgZGVm
IGZpbmRfZWxlbWVudF9ieV94cGF0aChzZWxmLCB4cGF0aCk6CisgICAgICAgIHJldHVybiBzZWxm
LmZpbmRfZWxlbWVudChieT1CeS5YUEFUSCwgdmFsdWU9eHBhdGgpCisKKyAgICBkZWYgZmluZF9l
bGVtZW50c19ieV94cGF0aChzZWxmLCB4cGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRf
ZWxlbWVudHMoYnk9QnkuWFBBVEgsIHZhbHVlPXhwYXRoKQorCisgICAgZGVmIGZpbmRfZWxlbWVu
dF9ieV9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmlu
ZF9lbGVtZW50KGJ5PUJ5LkxJTktfVEVYVCwgdmFsdWU9bGlua190ZXh0KQorCisgICAgZGVmIGZp
bmRfZWxlbWVudHNfYnlfbGlua190ZXh0KHNlbGYsIHRleHQpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkxJTktfVEVYVCwgdmFsdWU9dGV4dCkKKworICAgIGRlZiBm
aW5kX2VsZW1lbnRfYnlfcGFydGlhbF9saW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LlBBUlRJQUxfTElOS19URVhULCB2YWx1
ZT1saW5rX3RleHQpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9wYXJ0aWFsX2xpbmtfdGV4
dChzZWxmLCBsaW5rX3RleHQpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5
PUJ5LlBBUlRJQUxfTElOS19URVhULCB2YWx1ZT1saW5rX3RleHQpCisKKyAgICBkZWYgZmluZF9l
bGVtZW50X2J5X25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxl
bWVudChieT1CeS5OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlf
bmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1C
eS5OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV90YWdfbmFtZShz
ZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LlRBR19O
QU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoc2Vs
ZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuVEFHX05B
TUUsIHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoc2Vs
ZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudChieT1CeS5DTEFTU19O
QU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZShz
ZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5DTEFT
U19OQU1FLCB2YWx1ZT1uYW1lKQorCisgICAgZGVmIGZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0
b3Ioc2VsZiwgY3NzX3NlbGVjdG9yKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50
KGJ5PUJ5LkNTU19TRUxFQ1RPUiwgdmFsdWU9Y3NzX3NlbGVjdG9yKQorCisgICAgZGVmIGZpbmRf
ZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKHNlbGYsIGNzc19zZWxlY3Rvcik6CisgICAgICAgIHJl
dHVybiBzZWxmLmZpbmRfZWxlbWVudHMoYnk9QnkuQ1NTX1NFTEVDVE9SLCB2YWx1ZT1jc3Nfc2Vs
ZWN0b3IpCisKKyAgICBkZWYgX2Rpc3BhdGNoKHNlbGYsIGxfY2FsbCwgbF9hcmdzLCBkX2NhbGws
IGRfYXJncyk6CisgICAgICAgIGdldGF0dHIoc2VsZi5fbGlzdGVuZXIsICJiZWZvcmVfJXMiICUg
bF9jYWxsKSgqbF9hcmdzKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBnZXRh
dHRyKHNlbGYuX2RyaXZlciwgZF9jYWxsKSgqZF9hcmdzKQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6CisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5vbl9leGNlcHRpb24oZSwgc2Vs
Zi5fZHJpdmVyKQorICAgICAgICAgICAgcmFpc2UgZQorICAgICAgICBnZXRhdHRyKHNlbGYuX2xp
c3RlbmVyLCAiYWZ0ZXJfJXMiICUgbF9jYWxsKSgqbF9hcmdzKQorICAgICAgICByZXR1cm4gX3dy
YXBfZWxlbWVudHMocmVzdWx0LCBzZWxmKQorCisgICAgZGVmIF91bndyYXBfZWxlbWVudF9hcmdz
KHNlbGYsIGFyZ3MpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGFyZ3MsIEV2ZW50RmlyaW5nV2Vi
RWxlbWVudCk6CisgICAgICAgICAgICByZXR1cm4gYXJncy53cmFwcGVkX2VsZW1lbnQKKyAgICAg
ICAgZWxpZiBpc2luc3RhbmNlKGFyZ3MsIHR1cGxlKToKKyAgICAgICAgICAgIHJldHVybiB0dXBs
ZShbc2VsZi5fdW53cmFwX2VsZW1lbnRfYXJncyhpdGVtKSBmb3IgaXRlbSBpbiBhcmdzXSkKKyAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKGFyZ3MsIGxpc3QpOgorICAgICAgICAgICAgcmV0dXJuIFtz
ZWxmLl91bndyYXBfZWxlbWVudF9hcmdzKGl0ZW0pIGZvciBpdGVtIGluIGFyZ3NdCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICByZXR1cm4gYXJncworCisgICAgZGVmIF93cmFwX3ZhbHVlKHNl
bGYsIHZhbHVlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgRXZlbnRGaXJpbmdXZWJF
bGVtZW50KToKKyAgICAgICAgICAgIHJldHVybiBXZWJEcml2ZXIuX3dyYXBfdmFsdWUoc2VsZi5f
ZHJpdmVyLCB2YWx1ZS53cmFwcGVkX2VsZW1lbnQpCisgICAgICAgIHJldHVybiBXZWJEcml2ZXIu
X3dyYXBfdmFsdWUoc2VsZi5fZHJpdmVyLCB2YWx1ZSkKKworICAgIGRlZiBfX3NldGF0dHJfXyhz
ZWxmLCBpdGVtLCB2YWx1ZSk6CisgICAgICAgIGlmIGl0ZW0uc3RhcnRzd2l0aCgiXyIpIG9yIG5v
dCBoYXNhdHRyKHNlbGYuX2RyaXZlciwgaXRlbSk6CisgICAgICAgICAgICBvYmplY3QuX19zZXRh
dHRyX18oc2VsZiwgaXRlbSwgdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYuX2RyaXZlciwgaXRlbSwg
dmFsdWUpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAg
ICAgc2VsZi5fbGlzdGVuZXIub25fZXhjZXB0aW9uKGUsIHNlbGYuX2RyaXZlcikKKyAgICAgICAg
ICAgICAgICByYWlzZSBlCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAg
ICAgIGRlZiBfd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IGF0dHJpYigqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIF93cmFwX2VsZW1lbnRzKHJlc3VsdCwgc2VsZikKKyAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5vbl9leGNl
cHRpb24oZSwgc2VsZi5fZHJpdmVyKQorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgYXR0cmliID0gZ2V0YXR0cihzZWxmLl9kcml2ZXIsIG5hbWUpCisg
ICAgICAgICAgICByZXR1cm4gX3dyYXAgaWYgY2FsbGFibGUoYXR0cmliKSBlbHNlIGF0dHJpYgor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBzZWxmLl9saXN0ZW5l
ci5vbl9leGNlcHRpb24oZSwgc2VsZi5fZHJpdmVyKQorICAgICAgICAgICAgcmFpc2UKKworCitj
bGFzcyBFdmVudEZpcmluZ1dlYkVsZW1lbnQob2JqZWN0KToKKyAgICAiIiIiCisgICAgQSB3cmFw
cGVyIGFyb3VuZCBXZWJFbGVtZW50IGluc3RhbmNlIHdoaWNoIHN1cHBvcnRzIGZpcmluZyBldmVu
dHMKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3ZWJlbGVtZW50LCBlZl9kcml2
ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUg
RXZlbnRGaXJpbmdXZWJFbGVtZW50CisgICAgICAgICIiIgorICAgICAgICBzZWxmLl93ZWJlbGVt
ZW50ID0gd2ViZWxlbWVudAorICAgICAgICBzZWxmLl9lZl9kcml2ZXIgPSBlZl9kcml2ZXIKKyAg
ICAgICAgc2VsZi5fZHJpdmVyID0gZWZfZHJpdmVyLndyYXBwZWRfZHJpdmVyCisgICAgICAgIHNl
bGYuX2xpc3RlbmVyID0gZWZfZHJpdmVyLl9saXN0ZW5lcgorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIHdyYXBwZWRfZWxlbWVudChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgV2ViRWxl
bWVudCB3cmFwcGVkIGJ5IHRoaXMgRXZlbnRGaXJpbmdXZWJFbGVtZW50IGluc3RhbmNlIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLl93ZWJlbGVtZW50CisKKyAgICBkZWYgY2xpY2soc2VsZik6Cisg
ICAgICAgIHNlbGYuX2Rpc3BhdGNoKCJjbGljayIsIChzZWxmLl93ZWJlbGVtZW50LCBzZWxmLl9k
cml2ZXIpLCAiY2xpY2siLCAoKSkKKworICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgc2Vs
Zi5fZGlzcGF0Y2goImNoYW5nZV92YWx1ZV9vZiIsIChzZWxmLl93ZWJlbGVtZW50LCBzZWxmLl9k
cml2ZXIpLCAiY2xlYXIiLCAoKSkKKworICAgIGRlZiBzZW5kX2tleXMoc2VsZiwgKnZhbHVlKToK
KyAgICAgICAgc2VsZi5fZGlzcGF0Y2goImNoYW5nZV92YWx1ZV9vZiIsIChzZWxmLl93ZWJlbGVt
ZW50LCBzZWxmLl9kcml2ZXIpLCAic2VuZF9rZXlzIiwgdmFsdWUpCisKKyAgICBkZWYgZmluZF9l
bGVtZW50KHNlbGYsIGJ5PUJ5LklELCB2YWx1ZT1Ob25lKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2Rpc3BhdGNoKCJmaW5kIiwgKGJ5LCB2YWx1ZSwgc2VsZi5fZHJpdmVyKSwgImZpbmRfZWxlbWVu
dCIsIChieSwgdmFsdWUpKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHMoc2VsZiwgYnk9QnkuSUQs
IHZhbHVlPU5vbmUpOgorICAgICAgICByZXR1cm4gc2VsZi5fZGlzcGF0Y2goImZpbmQiLCAoYnks
IHZhbHVlLCBzZWxmLl9kcml2ZXIpLCAiZmluZF9lbGVtZW50cyIsIChieSwgdmFsdWUpKQorCisg
ICAgZGVmIGZpbmRfZWxlbWVudF9ieV9pZChzZWxmLCBpZF8pOgorICAgICAgICByZXR1cm4gc2Vs
Zi5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPWlkXykKKworICAgIGRlZiBmaW5kX2VsZW1l
bnRzX2J5X2lkKHNlbGYsIGlkXyk6CisgICAgICAgIHJldHVybiBzZWxmLmZpbmRfZWxlbWVudHMo
Ynk9QnkuSUQsIHZhbHVlPWlkXykKKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfbmFtZShzZWxm
LCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5Lk5BTUUsIHZh
bHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9uYW1lKHNlbGYsIG5hbWUpOgor
ICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5Lk5BTUUsIHZhbHVlPW5hbWUp
CisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgor
ICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuTElOS19URVhULCB2YWx1ZT1s
aW5rX3RleHQpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9saW5rX3RleHQoc2VsZiwgbGlu
a190ZXh0KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5MSU5LX1RF
WFQsIHZhbHVlPWxpbmtfdGV4dCkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfcGFydGlhbF9s
aW5rX3RleHQoc2VsZiwgbGlua190ZXh0KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVt
ZW50KGJ5PUJ5LlBBUlRJQUxfTElOS19URVhULCB2YWx1ZT1saW5rX3RleHQpCisKKyAgICBkZWYg
ZmluZF9lbGVtZW50c19ieV9wYXJ0aWFsX2xpbmtfdGV4dChzZWxmLCBsaW5rX3RleHQpOgorICAg
ICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LlBBUlRJQUxfTElOS19URVhULCB2
YWx1ZT1saW5rX3RleHQpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKHNlbGYs
IG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuVEFHX05BTUUs
IHZhbHVlPW5hbWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV90YWdfbmFtZShzZWxmLCBu
YW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50cyhieT1CeS5UQUdfTkFNRSwg
dmFsdWU9bmFtZSkKKworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfeHBhdGgoc2VsZiwgeHBhdGgp
OgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuWFBBVEgsIHZhbHVlPXhw
YXRoKQorCisgICAgZGVmIGZpbmRfZWxlbWVudHNfYnlfeHBhdGgoc2VsZiwgeHBhdGgpOgorICAg
ICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LlhQQVRILCB2YWx1ZT14cGF0aCkK
KworICAgIGRlZiBmaW5kX2VsZW1lbnRfYnlfY2xhc3NfbmFtZShzZWxmLCBuYW1lKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZmluZF9lbGVtZW50KGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5hbWUp
CisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9jbGFzc19uYW1lKHNlbGYsIG5hbWUpOgorICAg
ICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnRzKGJ5PUJ5LkNMQVNTX05BTUUsIHZhbHVlPW5h
bWUpCisKKyAgICBkZWYgZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcihzZWxmLCBjc3Nfc2Vs
ZWN0b3IpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2VsZW1lbnQoYnk9QnkuQ1NTX1NFTEVD
VE9SLCB2YWx1ZT1jc3Nfc2VsZWN0b3IpCisKKyAgICBkZWYgZmluZF9lbGVtZW50c19ieV9jc3Nf
c2VsZWN0b3Ioc2VsZiwgY3NzX3NlbGVjdG9yKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9l
bGVtZW50cyhieT1CeS5DU1NfU0VMRUNUT1IsIHZhbHVlPWNzc19zZWxlY3RvcikKKworICAgIGRl
ZiBfZGlzcGF0Y2goc2VsZiwgbF9jYWxsLCBsX2FyZ3MsIGRfY2FsbCwgZF9hcmdzKToKKyAgICAg
ICAgZ2V0YXR0cihzZWxmLl9saXN0ZW5lciwgImJlZm9yZV8lcyIgJSBsX2NhbGwpKCpsX2FyZ3Mp
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldGF0dHIoc2VsZi5fd2ViZWxl
bWVudCwgZF9jYWxsKSgqZF9hcmdzKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg
ICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5vbl9leGNlcHRpb24oZSwgc2VsZi5fZHJpdmVyKQor
ICAgICAgICAgICAgcmFpc2UgZQorICAgICAgICBnZXRhdHRyKHNlbGYuX2xpc3RlbmVyLCAiYWZ0
ZXJfJXMiICUgbF9jYWxsKSgqbF9hcmdzKQorICAgICAgICByZXR1cm4gX3dyYXBfZWxlbWVudHMo
cmVzdWx0LCBzZWxmLl9lZl9kcml2ZXIpCisKKyAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgaXRl
bSwgdmFsdWUpOgorICAgICAgICBpZiBpdGVtLnN0YXJ0c3dpdGgoIl8iKSBvciBub3QgaGFzYXR0
cihzZWxmLl93ZWJlbGVtZW50LCBpdGVtKToKKyAgICAgICAgICAgIG9iamVjdC5fX3NldGF0dHJf
XyhzZWxmLCBpdGVtLCB2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZi5fd2ViZWxlbWVudCwgaXRlbSwg
dmFsdWUpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAg
ICAgc2VsZi5fbGlzdGVuZXIub25fZXhjZXB0aW9uKGUsIHNlbGYuX2RyaXZlcikKKyAgICAgICAg
ICAgICAgICByYWlzZSBlCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAg
ICAgIGRlZiBfd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IGF0dHJpYigqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIF93cmFwX2VsZW1lbnRzKHJlc3VsdCwgc2VsZi5fZWZfZHJpdmVyKQorICAgICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIHNlbGYuX2xpc3Rl
bmVyLm9uX2V4Y2VwdGlvbihlLCBzZWxmLl9kcml2ZXIpCisgICAgICAgICAgICAgICAgcmFpc2UK
KworICAgICAgICB0cnk6CisgICAgICAgICAgICBhdHRyaWIgPSBnZXRhdHRyKHNlbGYuX3dlYmVs
ZW1lbnQsIG5hbWUpCisgICAgICAgICAgICByZXR1cm4gX3dyYXAgaWYgY2FsbGFibGUoYXR0cmli
KSBlbHNlIGF0dHJpYgorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg
ICBzZWxmLl9saXN0ZW5lci5vbl9leGNlcHRpb24oZSwgc2VsZi5fZHJpdmVyKQorICAgICAgICAg
ICAgcmFpc2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2V2ZW50cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2V2ZW50cy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzc1ZDAwYTY2NWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1
bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVudHMucHkKQEAgLTAsMCArMSwxOSBAQAorIyBMaWNlbnNl
ZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMg
b3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBm
aWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0
aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0
aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAg
KHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBj
b21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2Yg
dGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElD
RU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVl
ZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z
ZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJ
RVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGll
ZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmlu
ZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zy
b20gLmFic3RyYWN0X2V2ZW50X2xpc3RlbmVyIGltcG9ydCBBYnN0cmFjdEV2ZW50TGlzdGVuZXIg
ICMgbm9xYQorZnJvbSAuZXZlbnRfZmlyaW5nX3dlYmRyaXZlciBpbXBvcnQgRXZlbnRGaXJpbmdX
ZWJEcml2ZXIgICMgbm9xYQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXhwZWN0ZWRfY29uZGl0aW9ucy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZl
ci9zdXBwb3J0L2V4cGVjdGVkX2NvbmRpdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjc5MjE1NTI3YjFkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXhw
ZWN0ZWRfY29uZGl0aW9ucy5weQpAQCAtMCwwICsxLDQwOSBAQAorIyBMaWNlbnNlZCB0byB0aGUg
U29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBj
b250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRp
c3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJl
Z2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUK
KyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAi
TGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
CisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vu
c2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK
KyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0
cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09O
RElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz
aW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gc2VsZW5p
dW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KK2Zyb20g
c2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEZyYW1lRXhjZXB0aW9uCitm
cm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBTdGFsZUVsZW1lbnRSZWZlcmVu
Y2VFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRy
aXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgTm9B
bGVydFByZXNlbnRFeGNlcHRpb24KKworIiIiCisgKiBDYW5uZWQgIkV4cGVjdGVkIENvbmRpdGlv
bnMiIHdoaWNoIGFyZSBnZW5lcmFsbHkgdXNlZnVsIHdpdGhpbiB3ZWJkcml2ZXIKKyAqIHRlc3Rz
LgorIiIiCisKKworY2xhc3MgdGl0bGVfaXMob2JqZWN0KToKKyAgICAiIiJBbiBleHBlY3RhdGlv
biBmb3IgY2hlY2tpbmcgdGhlIHRpdGxlIG9mIGEgcGFnZS4KKyAgICB0aXRsZSBpcyB0aGUgZXhw
ZWN0ZWQgdGl0bGUsIHdoaWNoIG11c3QgYmUgYW4gZXhhY3QgbWF0Y2gKKyAgICByZXR1cm5zIFRy
dWUgaWYgdGhlIHRpdGxlIG1hdGNoZXMsIGZhbHNlIG90aGVyd2lzZS4iIiIKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgdGl0bGUpOgorICAgICAgICBzZWxmLnRpdGxlID0gdGl0bGUKKworICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICByZXR1cm4gc2VsZi50aXRsZSA9PSBk
cml2ZXIudGl0bGUKKworCitjbGFzcyB0aXRsZV9jb250YWlucyhvYmplY3QpOgorICAgICIiIiBB
biBleHBlY3RhdGlvbiBmb3IgY2hlY2tpbmcgdGhhdCB0aGUgdGl0bGUgY29udGFpbnMgYSBjYXNl
LXNlbnNpdGl2ZQorICAgIHN1YnN0cmluZy4gdGl0bGUgaXMgdGhlIGZyYWdtZW50IG9mIHRpdGxl
IGV4cGVjdGVkCisgICAgcmV0dXJucyBUcnVlIHdoZW4gdGhlIHRpdGxlIG1hdGNoZXMsIEZhbHNl
IG90aGVyd2lzZQorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0aXRsZSk6CisgICAg
ICAgIHNlbGYudGl0bGUgPSB0aXRsZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6
CisgICAgICAgIHJldHVybiBzZWxmLnRpdGxlIGluIGRyaXZlci50aXRsZQorCisKK2NsYXNzIHBy
ZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRlZChvYmplY3QpOgorICAgICIiIiBBbiBleHBlY3RhdGlv
biBmb3IgY2hlY2tpbmcgdGhhdCBhbiBlbGVtZW50IGlzIHByZXNlbnQgb24gdGhlIERPTQorICAg
IG9mIGEgcGFnZS4gVGhpcyBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFuIHRoYXQgdGhlIGVsZW1l
bnQgaXMgdmlzaWJsZS4KKyAgICBsb2NhdG9yIC0gdXNlZCB0byBmaW5kIHRoZSBlbGVtZW50Cisg
ICAgcmV0dXJucyB0aGUgV2ViRWxlbWVudCBvbmNlIGl0IGlzIGxvY2F0ZWQKKyAgICAiIiIKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvcik6CisgICAgICAgIHNlbGYubG9jYXRvciA9IGxv
Y2F0b3IKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICByZXR1cm4g
X2ZpbmRfZWxlbWVudChkcml2ZXIsIHNlbGYubG9jYXRvcikKKworCitjbGFzcyB1cmxfY29udGFp
bnMob2JqZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoYXQgdGhl
IGN1cnJlbnQgdXJsIGNvbnRhaW5zIGEKKyAgICBjYXNlLXNlbnNpdGl2ZSBzdWJzdHJpbmcuCisg
ICAgdXJsIGlzIHRoZSBmcmFnbWVudCBvZiB1cmwgZXhwZWN0ZWQsCisgICAgcmV0dXJucyBUcnVl
IHdoZW4gdGhlIHRpdGxlIG1hdGNoZXMsIEZhbHNlIG90aGVyd2lzZQorICAgICIiIgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB1cmwpOgorICAgICAgICBzZWxmLnVybCA9IHVybAorCisgICAgZGVm
IF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHJldHVybiBzZWxmLnVybCBpbiBkcml2
ZXIuY3VycmVudF91cmwKKworCitjbGFzcyB1cmxfbWF0Y2hlcyhvYmplY3QpOgorICAgICIiIkFu
IGV4cGVjdGF0aW9uIGZvciBjaGVja2luZyB0aGUgY3VycmVudCB1cmwuCisgICAgcGF0dGVybiBp
cyB0aGUgZXhwZWN0ZWQgcGF0dGVybiwgd2hpY2ggbXVzdCBiZSBhbiBleGFjdCBtYXRjaAorICAg
IHJldHVybnMgVHJ1ZSBpZiB0aGUgdGl0bGUgbWF0Y2hlcywgZmFsc2Ugb3RoZXJ3aXNlLiIiIgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXR0ZXJuKToKKyAgICAgICAgc2VsZi5wYXR0ZXJuID0g
cGF0dGVybgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIGltcG9y
dCByZQorICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChzZWxmLnBhdHRlcm4sIGRyaXZlci5jdXJy
ZW50X3VybCkKKworICAgICAgICByZXR1cm4gbWF0Y2ggaXMgbm90IE5vbmUKKworCitjbGFzcyB1
cmxfdG9fYmUob2JqZWN0KToKKyAgICAiIiJBbiBleHBlY3RhdGlvbiBmb3IgY2hlY2tpbmcgdGhl
IGN1cnJlbnQgdXJsLgorICAgIHVybCBpcyB0aGUgZXhwZWN0ZWQgdXJsLCB3aGljaCBtdXN0IGJl
IGFuIGV4YWN0IG1hdGNoCisgICAgcmV0dXJucyBUcnVlIGlmIHRoZSB0aXRsZSBtYXRjaGVzLCBm
YWxzZSBvdGhlcndpc2UuIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybCk6CisgICAgICAg
IHNlbGYudXJsID0gdXJsCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZHJpdmVyKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYudXJsID09IGRyaXZlci5jdXJyZW50X3VybAorCisKK2NsYXNzIHVybF9j
aGFuZ2VzKG9iamVjdCk6CisgICAgIiIiQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoZSBj
dXJyZW50IHVybC4KKyAgICB1cmwgaXMgdGhlIGV4cGVjdGVkIHVybCwgd2hpY2ggbXVzdCBub3Qg
YmUgYW4gZXhhY3QgbWF0Y2gKKyAgICByZXR1cm5zIFRydWUgaWYgdGhlIHVybCBpcyBkaWZmZXJl
bnQsIGZhbHNlIG90aGVyd2lzZS4iIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsKToKKyAg
ICAgICAgc2VsZi51cmwgPSB1cmwKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgor
ICAgICAgICByZXR1cm4gc2VsZi51cmwgIT0gZHJpdmVyLmN1cnJlbnRfdXJsCisKKworY2xhc3Mg
dmlzaWJpbGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQob2JqZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0
YXRpb24gZm9yIGNoZWNraW5nIHRoYXQgYW4gZWxlbWVudCBpcyBwcmVzZW50IG9uIHRoZSBET00g
b2YgYQorICAgIHBhZ2UgYW5kIHZpc2libGUuIFZpc2liaWxpdHkgbWVhbnMgdGhhdCB0aGUgZWxl
bWVudCBpcyBub3Qgb25seSBkaXNwbGF5ZWQKKyAgICBidXQgYWxzbyBoYXMgYSBoZWlnaHQgYW5k
IHdpZHRoIHRoYXQgaXMgZ3JlYXRlciB0aGFuIDAuCisgICAgbG9jYXRvciAtIHVzZWQgdG8gZmlu
ZCB0aGUgZWxlbWVudAorICAgIHJldHVybnMgdGhlIFdlYkVsZW1lbnQgb25jZSBpdCBpcyBsb2Nh
dGVkIGFuZCB2aXNpYmxlCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvY2F0b3Ip
OgorICAgICAgICBzZWxmLmxvY2F0b3IgPSBsb2NhdG9yCisKKyAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgZHJpdmVyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIF9lbGVtZW50X2lm
X3Zpc2libGUoX2ZpbmRfZWxlbWVudChkcml2ZXIsIHNlbGYubG9jYXRvcikpCisgICAgICAgIGV4
Y2VwdCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworCitjbGFzcyB2aXNpYmlsaXR5X29mKG9iamVjdCk6CisgICAgIiIiIEFuIGV4cGVj
dGF0aW9uIGZvciBjaGVja2luZyB0aGF0IGFuIGVsZW1lbnQsIGtub3duIHRvIGJlIHByZXNlbnQg
b24gdGhlCisgICAgRE9NIG9mIGEgcGFnZSwgaXMgdmlzaWJsZS4gVmlzaWJpbGl0eSBtZWFucyB0
aGF0IHRoZSBlbGVtZW50IGlzIG5vdCBvbmx5CisgICAgZGlzcGxheWVkIGJ1dCBhbHNvIGhhcyBh
IGhlaWdodCBhbmQgd2lkdGggdGhhdCBpcyBncmVhdGVyIHRoYW4gMC4KKyAgICBlbGVtZW50IGlz
IHRoZSBXZWJFbGVtZW50CisgICAgcmV0dXJucyB0aGUgKHNhbWUpIFdlYkVsZW1lbnQgb25jZSBp
dCBpcyB2aXNpYmxlCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVsZW1lbnQpOgor
ICAgICAgICBzZWxmLmVsZW1lbnQgPSBlbGVtZW50CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwg
aWdub3JlZCk6CisgICAgICAgIHJldHVybiBfZWxlbWVudF9pZl92aXNpYmxlKHNlbGYuZWxlbWVu
dCkKKworCitkZWYgX2VsZW1lbnRfaWZfdmlzaWJsZShlbGVtZW50LCB2aXNpYmlsaXR5PVRydWUp
OgorICAgIHJldHVybiBlbGVtZW50IGlmIGVsZW1lbnQuaXNfZGlzcGxheWVkKCkgPT0gdmlzaWJp
bGl0eSBlbHNlIEZhbHNlCisKKworY2xhc3MgcHJlc2VuY2Vfb2ZfYWxsX2VsZW1lbnRzX2xvY2F0
ZWQob2JqZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5nIHRoYXQgdGhl
cmUgaXMgYXQgbGVhc3Qgb25lIGVsZW1lbnQgcHJlc2VudAorICAgIG9uIGEgd2ViIHBhZ2UuCisg
ICAgbG9jYXRvciBpcyB1c2VkIHRvIGZpbmQgdGhlIGVsZW1lbnQKKyAgICByZXR1cm5zIHRoZSBs
aXN0IG9mIFdlYkVsZW1lbnRzIG9uY2UgdGhleSBhcmUgbG9jYXRlZAorICAgICIiIgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAgc2VsZi5sb2NhdG9yID0gbG9jYXRv
cgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHJldHVybiBfZmlu
ZF9lbGVtZW50cyhkcml2ZXIsIHNlbGYubG9jYXRvcikKKworCitjbGFzcyB2aXNpYmlsaXR5X29m
X2FueV9lbGVtZW50c19sb2NhdGVkKG9iamVjdCk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIGZv
ciBjaGVja2luZyB0aGF0IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBlbGVtZW50IHZpc2libGUKKyAg
ICBvbiBhIHdlYiBwYWdlLgorICAgIGxvY2F0b3IgaXMgdXNlZCB0byBmaW5kIHRoZSBlbGVtZW50
CisgICAgcmV0dXJucyB0aGUgbGlzdCBvZiBXZWJFbGVtZW50cyBvbmNlIHRoZXkgYXJlIGxvY2F0
ZWQKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvcik6CisgICAgICAgIHNl
bGYubG9jYXRvciA9IGxvY2F0b3IKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgor
ICAgICAgICByZXR1cm4gW2VsZW1lbnQgZm9yIGVsZW1lbnQgaW4gX2ZpbmRfZWxlbWVudHMoZHJp
dmVyLCBzZWxmLmxvY2F0b3IpIGlmIF9lbGVtZW50X2lmX3Zpc2libGUoZWxlbWVudCldCisKKwor
Y2xhc3MgdmlzaWJpbGl0eV9vZl9hbGxfZWxlbWVudHNfbG9jYXRlZChvYmplY3QpOgorICAgICIi
IiBBbiBleHBlY3RhdGlvbiBmb3IgY2hlY2tpbmcgdGhhdCBhbGwgZWxlbWVudHMgYXJlIHByZXNl
bnQgb24gdGhlIERPTSBvZiBhCisgICAgcGFnZSBhbmQgdmlzaWJsZS4gVmlzaWJpbGl0eSBtZWFu
cyB0aGF0IHRoZSBlbGVtZW50cyBhcmUgbm90IG9ubHkgZGlzcGxheWVkCisgICAgYnV0IGFsc28g
aGFzIGEgaGVpZ2h0IGFuZCB3aWR0aCB0aGF0IGlzIGdyZWF0ZXIgdGhhbiAwLgorICAgIGxvY2F0
b3IgLSB1c2VkIHRvIGZpbmQgdGhlIGVsZW1lbnRzCisgICAgcmV0dXJucyB0aGUgbGlzdCBvZiBX
ZWJFbGVtZW50cyBvbmNlIHRoZXkgYXJlIGxvY2F0ZWQgYW5kIHZpc2libGUKKyAgICAiIiIKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvcik6CisgICAgICAgIHNlbGYubG9jYXRvciA9IGxv
Y2F0b3IKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBlbGVtZW50cyA9IF9maW5kX2VsZW1lbnRzKGRyaXZlciwgc2VsZi5sb2NhdG9y
KQorICAgICAgICAgICAgZm9yIGVsZW1lbnQgaW4gZWxlbWVudHM6CisgICAgICAgICAgICAgICAg
aWYgX2VsZW1lbnRfaWZfdmlzaWJsZShlbGVtZW50LCB2aXNpYmlsaXR5PUZhbHNlKToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMK
KyAgICAgICAgZXhjZXB0IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbjoKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIHRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVtZW50
KG9iamVjdCk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIGZvciBjaGVja2luZyBpZiB0aGUgZ2l2
ZW4gdGV4dCBpcyBwcmVzZW50IGluIHRoZQorICAgIHNwZWNpZmllZCBlbGVtZW50LgorICAgIGxv
Y2F0b3IsIHRleHQKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvciwgdGV4
dF8pOgorICAgICAgICBzZWxmLmxvY2F0b3IgPSBsb2NhdG9yCisgICAgICAgIHNlbGYudGV4dCA9
IHRleHRfCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgZWxlbWVudF90ZXh0ID0gX2ZpbmRfZWxlbWVudChkcml2ZXIsIHNlbGYubG9j
YXRvcikudGV4dAorICAgICAgICAgICAgcmV0dXJuIHNlbGYudGV4dCBpbiBlbGVtZW50X3RleHQK
KyAgICAgICAgZXhjZXB0IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbjoKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIHRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVtZW50
X3ZhbHVlKG9iamVjdCk6CisgICAgIiIiCisgICAgQW4gZXhwZWN0YXRpb24gZm9yIGNoZWNraW5n
IGlmIHRoZSBnaXZlbiB0ZXh0IGlzIHByZXNlbnQgaW4gdGhlIGVsZW1lbnQncworICAgIGxvY2F0
b3IsIHRleHQKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvciwgdGV4dF8p
OgorICAgICAgICBzZWxmLmxvY2F0b3IgPSBsb2NhdG9yCisgICAgICAgIHNlbGYudGV4dCA9IHRl
eHRfCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZHJpdmVyKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgZWxlbWVudF90ZXh0ID0gX2ZpbmRfZWxlbWVudChkcml2ZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9jYXRvcikuZ2V0X2F0dHJpYnV0
ZSgidmFsdWUiKQorICAgICAgICAgICAgaWYgZWxlbWVudF90ZXh0OgorICAgICAgICAgICAgICAg
IHJldHVybiBzZWxmLnRleHQgaW4gZWxlbWVudF90ZXh0CisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgU3RhbGVFbGVtZW50UmVm
ZXJlbmNlRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNz
IGZyYW1lX3RvX2JlX2F2YWlsYWJsZV9hbmRfc3dpdGNoX3RvX2l0KG9iamVjdCk6CisgICAgIiIi
IEFuIGV4cGVjdGF0aW9uIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBnaXZlbiBmcmFtZSBpcyBh
dmFpbGFibGUgdG8KKyAgICBzd2l0Y2ggdG8uICBJZiB0aGUgZnJhbWUgaXMgYXZhaWxhYmxlIGl0
IHN3aXRjaGVzIHRoZSBnaXZlbiBkcml2ZXIgdG8gdGhlCisgICAgc3BlY2lmaWVkIGZyYW1lLgor
ICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAgc2VsZi5m
cmFtZV9sb2NhdG9yID0gbG9jYXRvcgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5mcmFtZV9sb2Nh
dG9yLCB0dXBsZSk6CisgICAgICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShfZmlu
ZF9lbGVtZW50KGRyaXZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5mcmFtZV9sb2NhdG9yKSkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShzZWxmLmZyYW1lX2xvY2F0b3Ip
CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBleGNlcHQgTm9TdWNoRnJhbWVFeGNl
cHRpb246CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworCitjbGFzcyBpbnZpc2liaWxpdHlf
b2ZfZWxlbWVudF9sb2NhdGVkKG9iamVjdCk6CisgICAgIiIiIEFuIEV4cGVjdGF0aW9uIGZvciBj
aGVja2luZyB0aGF0IGFuIGVsZW1lbnQgaXMgZWl0aGVyIGludmlzaWJsZSBvciBub3QKKyAgICBw
cmVzZW50IG9uIHRoZSBET00uCisKKyAgICBsb2NhdG9yIHVzZWQgdG8gZmluZCB0aGUgZWxlbWVu
dAorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAgc2Vs
Zi5sb2NhdG9yID0gbG9jYXRvcgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6Cisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBfZWxlbWVudF9pZl92aXNpYmxlKF9maW5k
X2VsZW1lbnQoZHJpdmVyLCBzZWxmLmxvY2F0b3IpLCBGYWxzZSkKKyAgICAgICAgZXhjZXB0IChO
b1N1Y2hFbGVtZW50RXhjZXB0aW9uLCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pOgor
ICAgICAgICAgICAgIyBJbiB0aGUgY2FzZSBvZiBOb1N1Y2hFbGVtZW50LCByZXR1cm5zIHRydWUg
YmVjYXVzZSB0aGUgZWxlbWVudCBpcworICAgICAgICAgICAgIyBub3QgcHJlc2VudCBpbiBET00u
IFRoZSB0cnkgYmxvY2sgY2hlY2tzIGlmIHRoZSBlbGVtZW50IGlzIHByZXNlbnQKKyAgICAgICAg
ICAgICMgYnV0IGlzIGludmlzaWJsZS4KKyAgICAgICAgICAgICMgSW4gdGhlIGNhc2Ugb2YgU3Rh
bGVFbGVtZW50UmVmZXJlbmNlLCByZXR1cm5zIHRydWUgYmVjYXVzZSBzdGFsZQorICAgICAgICAg
ICAgIyBlbGVtZW50IHJlZmVyZW5jZSBpbXBsaWVzIHRoYXQgZWxlbWVudCBpcyBubyBsb25nZXIg
dmlzaWJsZS4KKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKworY2xhc3MgZWxlbWVudF90b19i
ZV9jbGlja2FibGUob2JqZWN0KToKKyAgICAiIiIgQW4gRXhwZWN0YXRpb24gZm9yIGNoZWNraW5n
IGFuIGVsZW1lbnQgaXMgdmlzaWJsZSBhbmQgZW5hYmxlZCBzdWNoIHRoYXQKKyAgICB5b3UgY2Fu
IGNsaWNrIGl0LiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAg
c2VsZi5sb2NhdG9yID0gbG9jYXRvcgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6
CisgICAgICAgIGVsZW1lbnQgPSB2aXNpYmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZChzZWxmLmxv
Y2F0b3IpKGRyaXZlcikKKyAgICAgICAgaWYgZWxlbWVudCBhbmQgZWxlbWVudC5pc19lbmFibGVk
KCk6CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudAorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKworY2xhc3Mgc3RhbGVuZXNzX29mKG9iamVjdCk6CisgICAgIiIi
IFdhaXQgdW50aWwgYW4gZWxlbWVudCBpcyBubyBsb25nZXIgYXR0YWNoZWQgdG8gdGhlIERPTS4K
KyAgICBlbGVtZW50IGlzIHRoZSBlbGVtZW50IHRvIHdhaXQgZm9yLgorICAgIHJldHVybnMgRmFs
c2UgaWYgdGhlIGVsZW1lbnQgaXMgc3RpbGwgYXR0YWNoZWQgdG8gdGhlIERPTSwgdHJ1ZSBvdGhl
cndpc2UuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVsZW1lbnQpOgorICAgICAg
ICBzZWxmLmVsZW1lbnQgPSBlbGVtZW50CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgaWdub3Jl
ZCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgQ2FsbGluZyBhbnkgbWV0aG9kIGZvcmNl
cyBhIHN0YWxlbmVzcyBjaGVjaworICAgICAgICAgICAgc2VsZi5lbGVtZW50LmlzX2VuYWJsZWQo
KQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBTdGFsZUVsZW1lbnRS
ZWZlcmVuY2VFeGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisKK2NsYXNzIGVs
ZW1lbnRfdG9fYmVfc2VsZWN0ZWQob2JqZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9y
IGNoZWNraW5nIHRoZSBzZWxlY3Rpb24gaXMgc2VsZWN0ZWQuCisgICAgZWxlbWVudCBpcyBXZWJF
bGVtZW50IG9iamVjdAorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbGVtZW50KToK
KyAgICAgICAgc2VsZi5lbGVtZW50ID0gZWxlbWVudAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYs
IGlnbm9yZWQpOgorICAgICAgICByZXR1cm4gc2VsZi5lbGVtZW50LmlzX3NlbGVjdGVkKCkKKwor
CitjbGFzcyBlbGVtZW50X2xvY2F0ZWRfdG9fYmVfc2VsZWN0ZWQob2JqZWN0KToKKyAgICAiIiJB
biBleHBlY3RhdGlvbiBmb3IgdGhlIGVsZW1lbnQgdG8gYmUgbG9jYXRlZCBpcyBzZWxlY3RlZC4K
KyAgICBsb2NhdG9yIGlzIGEgdHVwbGUgb2YgKGJ5LCBwYXRoKSIiIgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2NhdG9yKToKKyAgICAgICAgc2VsZi5sb2NhdG9yID0gbG9jYXRvcgorCisgICAg
ZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHJldHVybiBfZmluZF9lbGVtZW50
KGRyaXZlciwgc2VsZi5sb2NhdG9yKS5pc19zZWxlY3RlZCgpCisKKworY2xhc3MgZWxlbWVudF9z
ZWxlY3Rpb25fc3RhdGVfdG9fYmUob2JqZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9y
IGNoZWNraW5nIGlmIHRoZSBnaXZlbiBlbGVtZW50IGlzIHNlbGVjdGVkLgorICAgIGVsZW1lbnQg
aXMgV2ViRWxlbWVudCBvYmplY3QKKyAgICBpc19zZWxlY3RlZCBpcyBhIEJvb2xlYW4uIgorICAg
ICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbGVtZW50LCBpc19zZWxlY3RlZCk6CisgICAg
ICAgIHNlbGYuZWxlbWVudCA9IGVsZW1lbnQKKyAgICAgICAgc2VsZi5pc19zZWxlY3RlZCA9IGlz
X3NlbGVjdGVkCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgaWdub3JlZCk6CisgICAgICAgIHJl
dHVybiBzZWxmLmVsZW1lbnQuaXNfc2VsZWN0ZWQoKSA9PSBzZWxmLmlzX3NlbGVjdGVkCisKKwor
Y2xhc3MgZWxlbWVudF9sb2NhdGVkX3NlbGVjdGlvbl9zdGF0ZV90b19iZShvYmplY3QpOgorICAg
ICIiIiBBbiBleHBlY3RhdGlvbiB0byBsb2NhdGUgYW4gZWxlbWVudCBhbmQgY2hlY2sgaWYgdGhl
IHNlbGVjdGlvbiBzdGF0ZQorICAgIHNwZWNpZmllZCBpcyBpbiB0aGF0IHN0YXRlLgorICAgIGxv
Y2F0b3IgaXMgYSB0dXBsZSBvZiAoYnksIHBhdGgpCisgICAgaXNfc2VsZWN0ZWQgaXMgYSBib29s
ZWFuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvY2F0b3IsIGlzX3NlbGVjdGVk
KToKKyAgICAgICAgc2VsZi5sb2NhdG9yID0gbG9jYXRvcgorICAgICAgICBzZWxmLmlzX3NlbGVj
dGVkID0gaXNfc2VsZWN0ZWQKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBlbGVtZW50ID0gX2ZpbmRfZWxlbWVudChkcml2ZXIsIHNl
bGYubG9jYXRvcikKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmlzX3NlbGVjdGVkKCkgPT0g
c2VsZi5pc19zZWxlY3RlZAorICAgICAgICBleGNlcHQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhj
ZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKworY2xhc3MgbnVtYmVyX29mX3dp
bmRvd3NfdG9fYmUob2JqZWN0KToKKyAgICAiIiIgQW4gZXhwZWN0YXRpb24gZm9yIHRoZSBudW1i
ZXIgb2Ygd2luZG93cyB0byBiZSBhIGNlcnRhaW4gdmFsdWUuIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbnVtX3dpbmRvd3MpOgorICAgICAgICBzZWxmLm51bV93aW5kb3dzID0gbnVtX3dp
bmRvd3MKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAgICAgICByZXR1cm4g
bGVuKGRyaXZlci53aW5kb3dfaGFuZGxlcykgPT0gc2VsZi5udW1fd2luZG93cworCisKK2NsYXNz
IG5ld193aW5kb3dfaXNfb3BlbmVkKG9iamVjdCk6CisgICAgIiIiIEFuIGV4cGVjdGF0aW9uIHRo
YXQgYSBuZXcgd2luZG93IHdpbGwgYmUgb3BlbmVkIGFuZCBoYXZlIHRoZSBudW1iZXIgb2YKKyAg
ICB3aW5kb3dzIGhhbmRsZXMgaW5jcmVhc2UiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBj
dXJyZW50X2hhbmRsZXMpOgorICAgICAgICBzZWxmLmN1cnJlbnRfaGFuZGxlcyA9IGN1cnJlbnRf
aGFuZGxlcworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHJldHVy
biBsZW4oZHJpdmVyLndpbmRvd19oYW5kbGVzKSA+IGxlbihzZWxmLmN1cnJlbnRfaGFuZGxlcykK
KworCitjbGFzcyBhbGVydF9pc19wcmVzZW50KG9iamVjdCk6CisgICAgIiIiIEV4cGVjdCBhbiBh
bGVydCB0byBiZSBwcmVzZW50LiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAg
cGFzcworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGFsZXJ0ID0gZHJpdmVyLnN3aXRjaF90by5hbGVydAorICAgICAgICAgICAgYWxl
cnQudGV4dAorICAgICAgICAgICAgcmV0dXJuIGFsZXJ0CisgICAgICAgIGV4Y2VwdCBOb0FsZXJ0
UHJlc2VudEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2RlZiBfZmlu
ZF9lbGVtZW50KGRyaXZlciwgYnkpOgorICAgICIiIkxvb2tzIHVwIGFuIGVsZW1lbnQuIExvZ3Mg
YW5kIHJlLXJhaXNlcyBgYFdlYkRyaXZlckV4Y2VwdGlvbmBgCisgICAgaWYgdGhyb3duLiIiIgor
ICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGRyaXZlci5maW5kX2VsZW1lbnQoKmJ5KQorICAgIGV4
Y2VwdCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIGFzIGU6CisgICAgICAgIHJhaXNlIGUKKyAgICBl
eGNlcHQgV2ViRHJpdmVyRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIHJhaXNlIGUKKworCitkZWYg
X2ZpbmRfZWxlbWVudHMoZHJpdmVyLCBieSk6CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gZHJp
dmVyLmZpbmRfZWxlbWVudHMoKmJ5KQorICAgIGV4Y2VwdCBXZWJEcml2ZXJFeGNlcHRpb24gYXMg
ZToKKyAgICAgICAgcmFpc2UgZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvc2VsZWN0LnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQv
c2VsZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMzQzODM0
Y2Y3OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L3NlbGVjdC5weQpAQCAtMCwwICsxLDI0MSBA
QAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1
bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUg
dGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlv
bmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNG
QyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg
VmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxl
IGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFp
biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcv
bGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg
bGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRI
T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJl
c3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1
YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExp
Y2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKK2Zy
b20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRp
b24sIFVuZXhwZWN0ZWRUYWdOYW1lRXhjZXB0aW9uCisKKworY2xhc3MgU2VsZWN0KG9iamVjdCk6
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgd2ViZWxlbWVudCk6CisgICAgICAgICIiIgorICAg
ICAgICBDb25zdHJ1Y3Rvci4gQSBjaGVjayBpcyBtYWRlIHRoYXQgdGhlIGdpdmVuIGVsZW1lbnQg
aXMsIGluZGVlZCwgYSBTRUxFQ1QgdGFnLiBJZiBpdCBpcyBub3QsCisgICAgICAgIHRoZW4gYW4g
VW5leHBlY3RlZFRhZ05hbWVFeGNlcHRpb24gaXMgdGhyb3duLgorCisgICAgICAgIDpBcmdzOgor
ICAgICAgICAgLSB3ZWJlbGVtZW50IC0gZWxlbWVudCBTRUxFQ1QgZWxlbWVudCB0byB3cmFwCisK
KyAgICAgICAgRXhhbXBsZToKKyAgICAgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1
cHBvcnQudWkgaW1wb3J0IFNlbGVjdCBcbgorICAgICAgICAgICAgU2VsZWN0KGRyaXZlci5maW5k
X2VsZW1lbnRfYnlfdGFnX25hbWUoInNlbGVjdCIpKS5zZWxlY3RfYnlfaW5kZXgoMikKKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIHdlYmVsZW1lbnQudGFnX25hbWUubG93ZXIoKSAhPSAic2VsZWN0
IjoKKyAgICAgICAgICAgIHJhaXNlIFVuZXhwZWN0ZWRUYWdOYW1lRXhjZXB0aW9uKAorICAgICAg
ICAgICAgICAgICJTZWxlY3Qgb25seSB3b3JrcyBvbiA8c2VsZWN0PiBlbGVtZW50cywgbm90IG9u
IDwlcz4iICUKKyAgICAgICAgICAgICAgICB3ZWJlbGVtZW50LnRhZ19uYW1lKQorICAgICAgICBz
ZWxmLl9lbCA9IHdlYmVsZW1lbnQKKyAgICAgICAgbXVsdGkgPSBzZWxmLl9lbC5nZXRfYXR0cmli
dXRlKCJtdWx0aXBsZSIpCisgICAgICAgIHNlbGYuaXNfbXVsdGlwbGUgPSBtdWx0aSBhbmQgbXVs
dGkgIT0gImZhbHNlIgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG9wdGlvbnMoc2VsZik6Cisg
ICAgICAgICIiIlJldHVybnMgYSBsaXN0IG9mIGFsbCBvcHRpb25zIGJlbG9uZ2luZyB0byB0aGlz
IHNlbGVjdCB0YWciIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2VsLmZpbmRfZWxlbWVudHMoQnku
VEFHX05BTUUsICdvcHRpb24nKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9zZWxlY3Rl
ZF9vcHRpb25zKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIGEgbGlzdCBvZiBhbGwgc2VsZWN0
ZWQgb3B0aW9ucyBiZWxvbmdpbmcgdG8gdGhpcyBzZWxlY3QgdGFnIiIiCisgICAgICAgIHJldCA9
IFtdCisgICAgICAgIGZvciBvcHQgaW4gc2VsZi5vcHRpb25zOgorICAgICAgICAgICAgaWYgb3B0
LmlzX3NlbGVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0LmFwcGVuZChvcHQpCisgICAgICAg
IHJldHVybiByZXQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmaXJzdF9zZWxlY3RlZF9vcHRp
b24oc2VsZik6CisgICAgICAgICIiIlRoZSBmaXJzdCBzZWxlY3RlZCBvcHRpb24gaW4gdGhpcyBz
ZWxlY3QgdGFnIChvciB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG9wdGlvbiBpbiBhCisgICAgICAg
IG5vcm1hbCBzZWxlY3QpIiIiCisgICAgICAgIGZvciBvcHQgaW4gc2VsZi5vcHRpb25zOgorICAg
ICAgICAgICAgaWYgb3B0LmlzX3NlbGVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9w
dAorICAgICAgICByYWlzZSBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCJObyBvcHRpb25zIGFyZSBz
ZWxlY3RlZCIpCisKKyAgICBkZWYgc2VsZWN0X2J5X3ZhbHVlKHNlbGYsIHZhbHVlKToKKyAgICAg
ICAgIiIiU2VsZWN0IGFsbCBvcHRpb25zIHRoYXQgaGF2ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBh
cmd1bWVudC4gVGhhdCBpcywgd2hlbiBnaXZlbiAiZm9vIiB0aGlzCisgICAgICAgICAgIHdvdWxk
IHNlbGVjdCBhbiBvcHRpb24gbGlrZToKKworICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJmb28i
PkJhcjwvb3B0aW9uPgorCisgICAgICAgICAgIDpBcmdzOgorICAgICAgICAgICAgLSB2YWx1ZSAt
IFRoZSB2YWx1ZSB0byBtYXRjaCBhZ2FpbnN0CisKKyAgICAgICAgICAgdGhyb3dzIE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24gSWYgdGhlcmUgaXMgbm8gb3B0aW9uIHdpdGggc3BlY2lzaWVkIHZhbHVl
IGluIFNFTEVDVAorICAgICAgICAgICAiIiIKKyAgICAgICAgY3NzID0gIm9wdGlvblt2YWx1ZSA9
JXNdIiAlIHNlbGYuX2VzY2FwZVN0cmluZyh2YWx1ZSkKKyAgICAgICAgb3B0cyA9IHNlbGYuX2Vs
LmZpbmRfZWxlbWVudHMoQnkuQ1NTX1NFTEVDVE9SLCBjc3MpCisgICAgICAgIG1hdGNoZWQgPSBG
YWxzZQorICAgICAgICBmb3Igb3B0IGluIG9wdHM6CisgICAgICAgICAgICBzZWxmLl9zZXRTZWxl
Y3RlZChvcHQpCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19tdWx0aXBsZToKKyAgICAgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIG1hdGNoZWQgPSBUcnVlCisgICAgICAgIGlmIG5v
dCBtYXRjaGVkOgorICAgICAgICAgICAgcmFpc2UgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigiQ2Fu
bm90IGxvY2F0ZSBvcHRpb24gd2l0aCB2YWx1ZTogJXMiICUgdmFsdWUpCisKKyAgICBkZWYgc2Vs
ZWN0X2J5X2luZGV4KHNlbGYsIGluZGV4KToKKyAgICAgICAgIiIiU2VsZWN0IHRoZSBvcHRpb24g
YXQgdGhlIGdpdmVuIGluZGV4LiBUaGlzIGlzIGRvbmUgYnkgZXhhbWluZyB0aGUgImluZGV4IiBh
dHRyaWJ1dGUgb2YgYW4KKyAgICAgICAgICAgZWxlbWVudCwgYW5kIG5vdCBtZXJlbHkgYnkgY291
bnRpbmcuCisKKyAgICAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGluZGV4IC0gVGhlIG9w
dGlvbiBhdCB0aGlzIGluZGV4IHdpbGwgYmUgc2VsZWN0ZWQKKworICAgICAgICAgICB0aHJvd3Mg
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBJZiB0aGVyZSBpcyBubyBvcHRpb24gd2l0aCBzcGVjaXNp
ZWQgaW5kZXggaW4gU0VMRUNUCisgICAgICAgICAgICIiIgorICAgICAgICBtYXRjaCA9IHN0cihp
bmRleCkKKyAgICAgICAgZm9yIG9wdCBpbiBzZWxmLm9wdGlvbnM6CisgICAgICAgICAgICBpZiBv
cHQuZ2V0X2F0dHJpYnV0ZSgiaW5kZXgiKSA9PSBtYXRjaDoKKyAgICAgICAgICAgICAgICBzZWxm
Ll9zZXRTZWxlY3RlZChvcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJhaXNl
IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2NhdGUgZWxlbWVudCB3aXRoIGlu
ZGV4ICVkIiAlIGluZGV4KQorCisgICAgZGVmIHNlbGVjdF9ieV92aXNpYmxlX3RleHQoc2VsZiwg
dGV4dCk6CisgICAgICAgICIiIlNlbGVjdCBhbGwgb3B0aW9ucyB0aGF0IGRpc3BsYXkgdGV4dCBt
YXRjaGluZyB0aGUgYXJndW1lbnQuIFRoYXQgaXMsIHdoZW4gZ2l2ZW4gIkJhciIgdGhpcworICAg
ICAgICAgICB3b3VsZCBzZWxlY3QgYW4gb3B0aW9uIGxpa2U6CisKKyAgICAgICAgICAgIDxvcHRp
b24gdmFsdWU9ImZvbyI+QmFyPC9vcHRpb24+CisKKyAgICAgICAgICAgOkFyZ3M6CisgICAgICAg
ICAgICAtIHRleHQgLSBUaGUgdmlzaWJsZSB0ZXh0IHRvIG1hdGNoIGFnYWluc3QKKworICAgICAg
ICAgICAgdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gSWYgdGhlcmUgaXMgbm8gb3B0aW9u
IHdpdGggc3BlY2lzaWVkIHRleHQgaW4gU0VMRUNUCisgICAgICAgICAgICIiIgorICAgICAgICB4
cGF0aCA9ICIuLy9vcHRpb25bbm9ybWFsaXplLXNwYWNlKC4pID0gJXNdIiAlIHNlbGYuX2VzY2Fw
ZVN0cmluZyh0ZXh0KQorICAgICAgICBvcHRzID0gc2VsZi5fZWwuZmluZF9lbGVtZW50cyhCeS5Y
UEFUSCwgeHBhdGgpCisgICAgICAgIG1hdGNoZWQgPSBGYWxzZQorICAgICAgICBmb3Igb3B0IGlu
IG9wdHM6CisgICAgICAgICAgICBzZWxmLl9zZXRTZWxlY3RlZChvcHQpCisgICAgICAgICAgICBp
ZiBub3Qgc2VsZi5pc19tdWx0aXBsZToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg
ICAgIG1hdGNoZWQgPSBUcnVlCisKKyAgICAgICAgaWYgbGVuKG9wdHMpID09IDAgYW5kICIgIiBp
biB0ZXh0OgorICAgICAgICAgICAgc3ViU3RyaW5nV2l0aG91dFNwYWNlID0gc2VsZi5fZ2V0X2xv
bmdlc3RfdG9rZW4odGV4dCkKKyAgICAgICAgICAgIGlmIHN1YlN0cmluZ1dpdGhvdXRTcGFjZSA9
PSAiIjoKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVzID0gc2VsZi5vcHRpb25zCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHhwYXRoID0gIi4vL29wdGlvbltjb250YWlucygu
LCVzKV0iICUgc2VsZi5fZXNjYXBlU3RyaW5nKHN1YlN0cmluZ1dpdGhvdXRTcGFjZSkKKyAgICAg
ICAgICAgICAgICBjYW5kaWRhdGVzID0gc2VsZi5fZWwuZmluZF9lbGVtZW50cyhCeS5YUEFUSCwg
eHBhdGgpCisgICAgICAgICAgICBmb3IgY2FuZGlkYXRlIGluIGNhbmRpZGF0ZXM6CisgICAgICAg
ICAgICAgICAgaWYgdGV4dCA9PSBjYW5kaWRhdGUudGV4dDoKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5fc2V0U2VsZWN0ZWQoY2FuZGlkYXRlKQorICAgICAgICAgICAgICAgICAgICBpZiBub3Qg
c2VsZi5pc19tdWx0aXBsZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAg
ICAgICAgICAgICAgICBtYXRjaGVkID0gVHJ1ZQorCisgICAgICAgIGlmIG5vdCBtYXRjaGVkOgor
ICAgICAgICAgICAgcmFpc2UgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigiQ291bGQgbm90IGxvY2F0
ZSBlbGVtZW50IHdpdGggdmlzaWJsZSB0ZXh0OiAlcyIgJSB0ZXh0KQorCisgICAgZGVmIGRlc2Vs
ZWN0X2FsbChzZWxmKToKKyAgICAgICAgIiIiQ2xlYXIgYWxsIHNlbGVjdGVkIGVudHJpZXMuIFRo
aXMgaXMgb25seSB2YWxpZCB3aGVuIHRoZSBTRUxFQ1Qgc3VwcG9ydHMgbXVsdGlwbGUgc2VsZWN0
aW9ucy4KKyAgICAgICAgICAgdGhyb3dzIE5vdEltcGxlbWVudGVkRXJyb3IgSWYgdGhlIFNFTEVD
VCBkb2VzIG5vdCBzdXBwb3J0IG11bHRpcGxlIHNlbGVjdGlvbnMKKyAgICAgICAgIiIiCisgICAg
ICAgIGlmIG5vdCBzZWxmLmlzX211bHRpcGxlOgorICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcigiWW91IG1heSBvbmx5IGRlc2VsZWN0IGFsbCBvcHRpb25zIG9mIGEgbXVsdGkt
c2VsZWN0IikKKyAgICAgICAgZm9yIG9wdCBpbiBzZWxmLm9wdGlvbnM6CisgICAgICAgICAgICBz
ZWxmLl91bnNldFNlbGVjdGVkKG9wdCkKKworICAgIGRlZiBkZXNlbGVjdF9ieV92YWx1ZShzZWxm
LCB2YWx1ZSk6CisgICAgICAgICIiIkRlc2VsZWN0IGFsbCBvcHRpb25zIHRoYXQgaGF2ZSBhIHZh
bHVlIG1hdGNoaW5nIHRoZSBhcmd1bWVudC4gVGhhdCBpcywgd2hlbiBnaXZlbiAiZm9vIiB0aGlz
CisgICAgICAgICAgIHdvdWxkIGRlc2VsZWN0IGFuIG9wdGlvbiBsaWtlOgorCisgICAgICAgICAg
ICA8b3B0aW9uIHZhbHVlPSJmb28iPkJhcjwvb3B0aW9uPgorCisgICAgICAgICAgIDpBcmdzOgor
ICAgICAgICAgICAgLSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBtYXRjaCBhZ2FpbnN0CisKKyAgICAg
ICAgICAgIHRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIElmIHRoZXJlIGlzIG5vIG9wdGlv
biB3aXRoIHNwZWNpc2llZCB2YWx1ZSBpbiBTRUxFQ1QKKyAgICAgICAgIiIiCisgICAgICAgIGlm
IG5vdCBzZWxmLmlzX211bHRpcGxlOgorICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcigiWW91IG1heSBvbmx5IGRlc2VsZWN0IG9wdGlvbnMgb2YgYSBtdWx0aS1zZWxlY3QiKQor
ICAgICAgICBtYXRjaGVkID0gRmFsc2UKKyAgICAgICAgY3NzID0gIm9wdGlvblt2YWx1ZSA9ICVz
XSIgJSBzZWxmLl9lc2NhcGVTdHJpbmcodmFsdWUpCisgICAgICAgIG9wdHMgPSBzZWxmLl9lbC5m
aW5kX2VsZW1lbnRzKEJ5LkNTU19TRUxFQ1RPUiwgY3NzKQorICAgICAgICBmb3Igb3B0IGluIG9w
dHM6CisgICAgICAgICAgICBzZWxmLl91bnNldFNlbGVjdGVkKG9wdCkKKyAgICAgICAgICAgIG1h
dGNoZWQgPSBUcnVlCisgICAgICAgIGlmIG5vdCBtYXRjaGVkOgorICAgICAgICAgICAgcmFpc2Ug
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbigiQ291bGQgbm90IGxvY2F0ZSBlbGVtZW50IHdpdGggdmFs
dWU6ICVzIiAlIHZhbHVlKQorCisgICAgZGVmIGRlc2VsZWN0X2J5X2luZGV4KHNlbGYsIGluZGV4
KToKKyAgICAgICAgIiIiRGVzZWxlY3QgdGhlIG9wdGlvbiBhdCB0aGUgZ2l2ZW4gaW5kZXguIFRo
aXMgaXMgZG9uZSBieSBleGFtaW5nIHRoZSAiaW5kZXgiIGF0dHJpYnV0ZSBvZiBhbgorICAgICAg
ICAgICBlbGVtZW50LCBhbmQgbm90IG1lcmVseSBieSBjb3VudGluZy4KKworICAgICAgICAgICA6
QXJnczoKKyAgICAgICAgICAgIC0gaW5kZXggLSBUaGUgb3B0aW9uIGF0IHRoaXMgaW5kZXggd2ls
bCBiZSBkZXNlbGVjdGVkCisKKyAgICAgICAgICAgIHRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0
aW9uIElmIHRoZXJlIGlzIG5vIG9wdGlvbiB3aXRoIHNwZWNpc2llZCBpbmRleCBpbiBTRUxFQ1QK
KyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmlzX211bHRpcGxlOgorICAgICAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiWW91IG1heSBvbmx5IGRlc2VsZWN0IG9wdGlv
bnMgb2YgYSBtdWx0aS1zZWxlY3QiKQorICAgICAgICBmb3Igb3B0IGluIHNlbGYub3B0aW9uczoK
KyAgICAgICAgICAgIGlmIG9wdC5nZXRfYXR0cmlidXRlKCJpbmRleCIpID09IHN0cihpbmRleCk6
CisgICAgICAgICAgICAgICAgc2VsZi5fdW5zZXRTZWxlY3RlZChvcHQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgIHJhaXNlIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIkNvdWxkIG5v
dCBsb2NhdGUgZWxlbWVudCB3aXRoIGluZGV4ICVkIiAlIGluZGV4KQorCisgICAgZGVmIGRlc2Vs
ZWN0X2J5X3Zpc2libGVfdGV4dChzZWxmLCB0ZXh0KToKKyAgICAgICAgIiIiRGVzZWxlY3QgYWxs
IG9wdGlvbnMgdGhhdCBkaXNwbGF5IHRleHQgbWF0Y2hpbmcgdGhlIGFyZ3VtZW50LiBUaGF0IGlz
LCB3aGVuIGdpdmVuICJCYXIiIHRoaXMKKyAgICAgICAgICAgd291bGQgZGVzZWxlY3QgYW4gb3B0
aW9uIGxpa2U6CisKKyAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZm9vIj5CYXI8L29wdGlvbj4K
KworICAgICAgICAgICA6QXJnczoKKyAgICAgICAgICAgIC0gdGV4dCAtIFRoZSB2aXNpYmxlIHRl
eHQgdG8gbWF0Y2ggYWdhaW5zdAorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuaXNf
bXVsdGlwbGU6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJZb3UgbWF5
IG9ubHkgZGVzZWxlY3Qgb3B0aW9ucyBvZiBhIG11bHRpLXNlbGVjdCIpCisgICAgICAgIG1hdGNo
ZWQgPSBGYWxzZQorICAgICAgICB4cGF0aCA9ICIuLy9vcHRpb25bbm9ybWFsaXplLXNwYWNlKC4p
ID0gJXNdIiAlIHNlbGYuX2VzY2FwZVN0cmluZyh0ZXh0KQorICAgICAgICBvcHRzID0gc2VsZi5f
ZWwuZmluZF9lbGVtZW50cyhCeS5YUEFUSCwgeHBhdGgpCisgICAgICAgIGZvciBvcHQgaW4gb3B0
czoKKyAgICAgICAgICAgIHNlbGYuX3Vuc2V0U2VsZWN0ZWQob3B0KQorICAgICAgICAgICAgbWF0
Y2hlZCA9IFRydWUKKyAgICAgICAgaWYgbm90IG1hdGNoZWQ6CisgICAgICAgICAgICByYWlzZSBO
b1N1Y2hFbGVtZW50RXhjZXB0aW9uKCJDb3VsZCBub3QgbG9jYXRlIGVsZW1lbnQgd2l0aCB2aXNp
YmxlIHRleHQ6ICVzIiAlIHRleHQpCisKKyAgICBkZWYgX3NldFNlbGVjdGVkKHNlbGYsIG9wdGlv
bik6CisgICAgICAgIGlmIG5vdCBvcHRpb24uaXNfc2VsZWN0ZWQoKToKKyAgICAgICAgICAgIG9w
dGlvbi5jbGljaygpCisKKyAgICBkZWYgX3Vuc2V0U2VsZWN0ZWQoc2VsZiwgb3B0aW9uKToKKyAg
ICAgICAgaWYgb3B0aW9uLmlzX3NlbGVjdGVkKCk6CisgICAgICAgICAgICBvcHRpb24uY2xpY2so
KQorCisgICAgZGVmIF9lc2NhcGVTdHJpbmcoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiAnIicg
aW4gdmFsdWUgYW5kICInIiBpbiB2YWx1ZToKKyAgICAgICAgICAgIHN1YnN0cmluZ3MgPSB2YWx1
ZS5zcGxpdCgiXCIiKQorICAgICAgICAgICAgcmVzdWx0ID0gWyJjb25jYXQoIl0KKyAgICAgICAg
ICAgIGZvciBzdWJzdHJpbmcgaW4gc3Vic3RyaW5nczoKKyAgICAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCJcIiVzXCIiICUgc3Vic3RyaW5nKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoIiwgJ1wiJywgIikKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdFswOi0xXQorICAgICAg
ICAgICAgaWYgdmFsdWUuZW5kc3dpdGgoJyInKToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCIsICdcIiciKQorICAgICAgICAgICAgcmV0dXJuICIiLmpvaW4ocmVzdWx0KSArICIpIgor
CisgICAgICAgIGlmICciJyBpbiB2YWx1ZToKKyAgICAgICAgICAgIHJldHVybiAiJyVzJyIgJSB2
YWx1ZQorCisgICAgICAgIHJldHVybiAiXCIlc1wiIiAlIHZhbHVlCisKKyAgICBkZWYgX2dldF9s
b25nZXN0X3Rva2VuKHNlbGYsIHZhbHVlKToKKyAgICAgICAgaXRlbXMgPSB2YWx1ZS5zcGxpdCgi
ICIpCisgICAgICAgIGxvbmdlc3QgPSAiIgorICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAg
ICAgICAgICAgIGlmIGxlbihpdGVtKSA+IGxlbihsb25nZXN0KToKKyAgICAgICAgICAgICAgICBs
b25nZXN0ID0gaXRlbQorICAgICAgICByZXR1cm4gbG9uZ2VzdApkaWZmIC0tZ2l0IGEvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQv
dWkucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJk
cml2ZXIvc3VwcG9ydC91aS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uZWUzYjJiNjViYTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC91aS5weQpAQCAtMCwwICsx
LDE5IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChT
RkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4g
IFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBU
aGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNl
bnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMs
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0
aGUgTGljZW5zZS4KKworZnJvbSAuc2VsZWN0IGltcG9ydCBTZWxlY3QgICMgbm9xYQorZnJvbSAu
d2FpdCBpbXBvcnQgV2ViRHJpdmVyV2FpdCAgIyBub3FhCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC93YWl0
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJp
dmVyL3N1cHBvcnQvd2FpdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNDNmMjhhMTFmMTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC93YWl0LnB5CkBAIC0wLDAg
KzEsOTYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kg
KFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRz
LiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3Ig
YWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4g
IFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJ
UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVy
IHRoZSBMaWNlbnNlLgorCitpbXBvcnQgdGltZQorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0
aW9ucyBpbXBvcnQgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS5jb21tb24u
ZXhjZXB0aW9ucyBpbXBvcnQgVGltZW91dEV4Y2VwdGlvbgorCitQT0xMX0ZSRVFVRU5DWSA9IDAu
NSAgIyBIb3cgbG9uZyB0byBzbGVlcCBpbmJldHdlZW4gY2FsbHMgdG8gdGhlIG1ldGhvZAorSUdO
T1JFRF9FWENFUFRJT05TID0gKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sKSAgIyBleGNlcHRpb25z
IGlnbm9yZWQgZHVyaW5nIGNhbGxzIHRvIHRoZSBtZXRob2QKKworCitjbGFzcyBXZWJEcml2ZXJX
YWl0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyaXZlciwgdGltZW91dCwgcG9s
bF9mcmVxdWVuY3k9UE9MTF9GUkVRVUVOQ1ksIGlnbm9yZWRfZXhjZXB0aW9ucz1Ob25lKToKKyAg
ICAgICAgIiIiQ29uc3RydWN0b3IsIHRha2VzIGEgV2ViRHJpdmVyIGluc3RhbmNlIGFuZCB0aW1l
b3V0IGluIHNlY29uZHMuCisKKyAgICAgICAgICAgOkFyZ3M6CisgICAgICAgICAgICAtIGRyaXZl
ciAtIEluc3RhbmNlIG9mIFdlYkRyaXZlciAoSWUsIEZpcmVmb3gsIENocm9tZSBvciBSZW1vdGUp
CisgICAgICAgICAgICAtIHRpbWVvdXQgLSBOdW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGltaW5n
IG91dAorICAgICAgICAgICAgLSBwb2xsX2ZyZXF1ZW5jeSAtIHNsZWVwIGludGVydmFsIGJldHdl
ZW4gY2FsbHMKKyAgICAgICAgICAgICAgQnkgZGVmYXVsdCwgaXQgaXMgMC41IHNlY29uZC4KKyAg
ICAgICAgICAgIC0gaWdub3JlZF9leGNlcHRpb25zIC0gaXRlcmFibGUgc3RydWN0dXJlIG9mIGV4
Y2VwdGlvbiBjbGFzc2VzIGlnbm9yZWQgZHVyaW5nIGNhbGxzLgorICAgICAgICAgICAgICBCeSBk
ZWZhdWx0LCBpdCBjb250YWlucyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIG9ubHkuCisKKyAgICAg
ICAgICAgRXhhbXBsZToKKyAgICAgICAgICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBv
cnQudWkgaW1wb3J0IFdlYkRyaXZlcldhaXQgXG4KKyAgICAgICAgICAgIGVsZW1lbnQgPSBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMTApLnVudGlsKGxhbWJkYSB4OiB4LmZpbmRfZWxlbWVudF9ieV9p
ZCgic29tZUlkIikpIFxuCisgICAgICAgICAgICBpc19kaXNhcHBlYXJlZCA9IFdlYkRyaXZlcldh
aXQoZHJpdmVyLCAzMCwgMSwgKEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uKSkuXCBcbgorICAg
ICAgICAgICAgICAgICAgICAgICAgdW50aWxfbm90KGxhbWJkYSB4OiB4LmZpbmRfZWxlbWVudF9i
eV9pZCgic29tZUlkIikuaXNfZGlzcGxheWVkKCkpCisgICAgICAgICIiIgorICAgICAgICBzZWxm
Ll9kcml2ZXIgPSBkcml2ZXIKKyAgICAgICAgc2VsZi5fdGltZW91dCA9IHRpbWVvdXQKKyAgICAg
ICAgc2VsZi5fcG9sbCA9IHBvbGxfZnJlcXVlbmN5CisgICAgICAgICMgYXZvaWQgdGhlIGRpdmlk
ZSBieSB6ZXJvCisgICAgICAgIGlmIHNlbGYuX3BvbGwgPT0gMDoKKyAgICAgICAgICAgIHNlbGYu
X3BvbGwgPSBQT0xMX0ZSRVFVRU5DWQorICAgICAgICBleGNlcHRpb25zID0gbGlzdChJR05PUkVE
X0VYQ0VQVElPTlMpCisgICAgICAgIGlmIGlnbm9yZWRfZXhjZXB0aW9ucyBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBleGNlcHRpb25zLmV4dGVuZChpdGVy
KGlnbm9yZWRfZXhjZXB0aW9ucykpCisgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOiAgIyBp
Z25vcmVkX2V4Y2VwdGlvbnMgaXMgbm90IGl0ZXJhYmxlCisgICAgICAgICAgICAgICAgZXhjZXB0
aW9ucy5hcHBlbmQoaWdub3JlZF9leGNlcHRpb25zKQorICAgICAgICBzZWxmLl9pZ25vcmVkX2V4
Y2VwdGlvbnMgPSB0dXBsZShleGNlcHRpb25zKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgor
ICAgICAgICByZXR1cm4gJzx7MC5fX21vZHVsZV9ffS57MC5fX25hbWVfX30gKHNlc3Npb249Insx
fSIpPicuZm9ybWF0KAorICAgICAgICAgICAgdHlwZShzZWxmKSwgc2VsZi5fZHJpdmVyLnNlc3Np
b25faWQpCisKKyAgICBkZWYgdW50aWwoc2VsZiwgbWV0aG9kLCBtZXNzYWdlPScnKToKKyAgICAg
ICAgIiIiQ2FsbHMgdGhlIG1ldGhvZCBwcm92aWRlZCB3aXRoIHRoZSBkcml2ZXIgYXMgYW4gYXJn
dW1lbnQgdW50aWwgdGhlIFwKKyAgICAgICAgcmV0dXJuIHZhbHVlIGlzIG5vdCBGYWxzZS4iIiIK
KyAgICAgICAgc2NyZWVuID0gTm9uZQorICAgICAgICBzdGFja3RyYWNlID0gTm9uZQorCisgICAg
ICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkgKyBzZWxmLl90aW1lb3V0CisgICAgICAgIHdoaWxl
IFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBtZXRob2Qo
c2VsZi5fZHJpdmVyKQorICAgICAgICAgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgICAgIGV4Y2VwdCBzZWxmLl9pZ25vcmVkX2V4Y2Vw
dGlvbnMgYXMgZXhjOgorICAgICAgICAgICAgICAgIHNjcmVlbiA9IGdldGF0dHIoZXhjLCAnc2Ny
ZWVuJywgTm9uZSkKKyAgICAgICAgICAgICAgICBzdGFja3RyYWNlID0gZ2V0YXR0cihleGMsICdz
dGFja3RyYWNlJywgTm9uZSkKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoc2VsZi5fcG9sbCkKKyAg
ICAgICAgICAgIGlmIHRpbWUudGltZSgpID4gZW5kX3RpbWU6CisgICAgICAgICAgICAgICAgYnJl
YWsKKyAgICAgICAgcmFpc2UgVGltZW91dEV4Y2VwdGlvbihtZXNzYWdlLCBzY3JlZW4sIHN0YWNr
dHJhY2UpCisKKyAgICBkZWYgdW50aWxfbm90KHNlbGYsIG1ldGhvZCwgbWVzc2FnZT0nJyk6Cisg
ICAgICAgICIiIkNhbGxzIHRoZSBtZXRob2QgcHJvdmlkZWQgd2l0aCB0aGUgZHJpdmVyIGFzIGFu
IGFyZ3VtZW50IHVudGlsIHRoZSBcCisgICAgICAgIHJldHVybiB2YWx1ZSBpcyBGYWxzZS4iIiIK
KyAgICAgICAgZW5kX3RpbWUgPSB0aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQKKyAgICAgICAg
d2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG1l
dGhvZChzZWxmLl9kcml2ZXIpCisgICAgICAgICAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgICAgIGV4Y2VwdCBzZWxmLl9pZ25v
cmVkX2V4Y2VwdGlvbnM6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAg
IHRpbWUuc2xlZXAoc2VsZi5fcG9sbCkKKyAgICAgICAgICAgIGlmIHRpbWUudGltZSgpID4gZW5k
X3RpbWU6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcmFpc2UgVGltZW91dEV4Y2Vw
dGlvbihtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay9fX2luaXRfXy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsv
X19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFl
NmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay9fX2luaXRfXy5weQpAQCAtMCwwICsx
LDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChT
RkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4g
IFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBU
aGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNl
bnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMs
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0
aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvb3B0aW9ucy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3NlbGVuaXVtL3dlYmRyaXZlci93ZWJraXRndGsvb3B0
aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGI3OWZjM2Q1
ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9w
eS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL29wdGlvbnMucHkKQEAgLTAsMCArMSw5OCBA
QAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1
bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUg
dGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlv
bmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNG
QyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg
VmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxl
IGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFp
biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcv
bGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg
bGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRI
T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJl
c3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1
YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExp
Y2Vuc2UuCisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5kZXNpcmVkX2NhcGFiaWxp
dGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcworCisKK2NsYXNzIE9wdGlvbnMob2JqZWN0
KToKKyAgICBLRVkgPSAnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zJworCisgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgorICAgICAgICBzZWxmLl9icm93c2VyX2V4ZWN1dGFibGVfcGF0aCA9ICcnCisg
ICAgICAgIHNlbGYuX2Jyb3dzZXJfYXJndW1lbnRzID0gW10KKyAgICAgICAgc2VsZi5fb3Zlcmxh
eV9zY3JvbGxiYXJzX2VuYWJsZWQgPSBUcnVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYnJv
d3Nlcl9leGVjdXRhYmxlX3BhdGgoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5z
IHRoZSBsb2NhdGlvbiBvZiB0aGUgYnJvd3NlciBiaW5hcnkgb3RoZXJ3aXNlIGFuIGVtcHR5IHN0
cmluZworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Jyb3dzZXJfZXhlY3V0YWJs
ZV9wYXRoCisKKyAgICBAYnJvd3Nlcl9leGVjdXRhYmxlX3BhdGguc2V0dGVyCisgICAgZGVmIGJy
b3dzZXJfZXhlY3V0YWJsZV9wYXRoKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAg
IEFsbG93cyB5b3UgdG8gc2V0IHRoZSBicm93c2VyIGJpbmFyeSB0byBsYXVuY2gKKworICAgICAg
ICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWUgOiBwYXRoIHRvIHRoZSBicm93c2VyIGJpbmFyeQor
ICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYnJvd3Nlcl9leGVjdXRhYmxlX3BhdGggPSB2YWx1
ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJyb3dzZXJfYXJndW1lbnRzKHNlbGYpOgorICAg
ICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgYXJndW1lbnRzIG5lZWRlZCBmb3Ig
dGhlIGJyb3dzZXIKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9icm93c2VyX2Fy
Z3VtZW50cworCisgICAgZGVmIGFkZF9icm93c2VyX2FyZ3VtZW50KHNlbGYsIGFyZ3VtZW50KToK
KyAgICAgICAgIiIiCisgICAgICAgIEFkZHMgYW4gYXJndW1lbnQgdG8gdGhlIGxpc3QKKworICAg
ICAgICA6QXJnczoKKyAgICAgICAgIC0gU2V0cyB0aGUgYXJndW1lbnRzCisgICAgICAgICIiIgor
ICAgICAgICBpZiBhcmd1bWVudDoKKyAgICAgICAgICAgIHNlbGYuX2Jyb3dzZXJfYXJndW1lbnRz
LmFwcGVuZChhcmd1bWVudCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoImFyZ3VtZW50IGNhbiBub3QgYmUgbnVsbCIpCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgb3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJsZWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBSZXR1cm5zIHdoZXRoZXIgb3ZlcmxheSBzY3JvbGxiYXJzIHNob3VsZCBiZSBlbmFibGVkCisg
ICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fb3ZlcmxheV9zY3JvbGxiYXJzX2VuYWJs
ZWQKKworICAgIEBvdmVybGF5X3Njcm9sbGJhcnNfZW5hYmxlZC5zZXR0ZXIKKyAgICBkZWYgb3Zl
cmxheV9zY3JvbGxiYXJzX2VuYWJsZWQoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAg
ICAgQWxsb3dzIHlvdSB0byBlbmFibGUgb3IgZGlzYWJsZSBvdmVybGF5IHNjcm9sbGJhcnMKKwor
ICAgICAgICA6QXJnczoKKyAgICAgICAgIC0gdmFsdWUgOiBUcnVlIG9yIEZhbHNlCisgICAgICAg
ICIiIgorICAgICAgICBzZWxmLl9vdmVybGF5X3Njcm9sbGJhcnNfZW5hYmxlZCA9IHZhbHVlCisK
KyAgICBkZWYgdG9fY2FwYWJpbGl0aWVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3Jl
YXRlcyBhIGNhcGFiaWxpdGllcyB3aXRoIGFsbCB0aGUgb3B0aW9ucyB0aGF0IGhhdmUgYmVlbiBz
ZXQgYW5kCisgICAgICAgIHJldHVybnMgYSBkaWN0aW9uYXJ5IHdpdGggZXZlcnl0aGluZworICAg
ICAgICAiIiIKKyAgICAgICAgd2Via2l0Z3RrID0gRGVzaXJlZENhcGFiaWxpdGllcy5XRUJLSVRH
VEsuY29weSgpCisKKyAgICAgICAgYnJvd3Nlcl9vcHRpb25zID0ge30KKyAgICAgICAgaWYgc2Vs
Zi5icm93c2VyX2V4ZWN1dGFibGVfcGF0aDoKKyAgICAgICAgICAgIGJyb3dzZXJfb3B0aW9uc1si
YmluYXJ5Il0gPSBzZWxmLmJyb3dzZXJfZXhlY3V0YWJsZV9wYXRoCisgICAgICAgIGlmIHNlbGYu
YnJvd3Nlcl9hcmd1bWVudHM6CisgICAgICAgICAgICBicm93c2VyX29wdGlvbnNbImFyZ3MiXSA9
IHNlbGYuYnJvd3Nlcl9hcmd1bWVudHMKKyAgICAgICAgYnJvd3Nlcl9vcHRpb25zWyJ1c2VPdmVy
bGF5U2Nyb2xsYmFycyJdID0gc2VsZi5vdmVybGF5X3Njcm9sbGJhcnNfZW5hYmxlZAorCisgICAg
ICAgIHdlYmtpdGd0a1tPcHRpb25zLktFWV0gPSBicm93c2VyX29wdGlvbnMKKworICAgICAgICBy
ZXR1cm4gd2Via2l0Z3RrCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL3NlcnZpY2UucHkgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0Z3Rr
L3NlcnZpY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI2ZGFk
NzQxMjkzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay9zZXJ2aWNlLnB5CkBAIC0wLDAgKzEs
NDIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNG
QykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAg
U2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRk
aXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRo
ZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBv
YnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUu
b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh
YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywg
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRo
ZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24gaW1wb3J0IHNlcnZp
Y2UKKworCitjbGFzcyBTZXJ2aWNlKHNlcnZpY2UuU2VydmljZSk6CisgICAgIiIiCisgICAgT2Jq
ZWN0IHRoYXQgbWFuYWdlcyB0aGUgc3RhcnRpbmcgYW5kIHN0b3BwaW5nIG9mIHRoZSBXZWJLaXRH
VEtEcml2ZXIKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3Bh
dGgsIHBvcnQ9MCwgbG9nX3BhdGg9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVz
IGEgbmV3IGluc3RhbmNlIG9mIHRoZSBTZXJ2aWNlCisKKyAgICAgICAgOkFyZ3M6CisgICAgICAg
ICAtIGV4ZWN1dGFibGVfcGF0aCA6IFBhdGggdG8gdGhlIFdlYktpdEdUS0RyaXZlcgorICAgICAg
ICAgLSBwb3J0IDogUG9ydCB0aGUgc2VydmljZSBpcyBydW5uaW5nIG9uCisgICAgICAgICAtIGxv
Z19wYXRoIDogUGF0aCBmb3IgdGhlIFdlYktpdEdUS0RyaXZlciBzZXJ2aWNlIHRvIGxvZyB0bwor
ICAgICAgICAiIiIKKyAgICAgICAgbG9nX2ZpbGUgPSBvcGVuKGxvZ19wYXRoLCAid2IiKSBpZiBs
b2dfcGF0aCBpcyBub3QgTm9uZSBhbmQgbG9nX3BhdGggIT0gIiIgZWxzZSBOb25lCisgICAgICAg
IHNlcnZpY2UuU2VydmljZS5fX2luaXRfXyhzZWxmLCBleGVjdXRhYmxlX3BhdGgsIHBvcnQsIGxv
Z19maWxlKQorCisgICAgZGVmIGNvbW1hbmRfbGluZV9hcmdzKHNlbGYpOgorICAgICAgICByZXR1
cm4gWyItcCIsICIlZCIgJSBzZWxmLnBvcnRdCisKKyAgICBkZWYgc2VuZF9yZW1vdGVfc2h1dGRv
d25fY29tbWFuZChzZWxmKToKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvc2VsZW5pdW0vd2ViZHJpdmVyL3dlYmtpdGd0ay93ZWJk
cml2ZXIucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93
ZWJkcml2ZXIvd2Via2l0Z3RrL3dlYmRyaXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNzAwOWNlMmFkODIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZWxlbml1bS93ZWJkcml2ZXIvd2Via2l0Z3RrL3dl
YmRyaXZlci5weQpAQCAtMCwwICsxLDcyIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKwordHJ5OgorICAgIGltcG9ydCBodHRw
LmNsaWVudCBhcyBodHRwX2NsaWVudAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBo
dHRwbGliIGFzIGh0dHBfY2xpZW50CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5k
ZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcworZnJvbSBzZWxl
bml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmRyaXZlciBpbXBvcnQgV2ViRHJpdmVyIGFzIFJlbW90
ZVdlYkRyaXZlcgorZnJvbSAuc2VydmljZSBpbXBvcnQgU2VydmljZQorCisKK2NsYXNzIFdlYkRy
aXZlcihSZW1vdGVXZWJEcml2ZXIpOgorICAgICIiIgorICAgIENvbnRyb2xzIHRoZSBXZWJLaXRH
VEtEcml2ZXIgYW5kIGFsbG93cyB5b3UgdG8gZHJpdmUgdGhlIGJyb3dzZXIuCisgICAgIiIiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0YWJsZV9wYXRoPSJXZWJLaXRXZWJEcml2ZXIi
LCBwb3J0PTAsIG9wdGlvbnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmls
aXRpZXM9RGVzaXJlZENhcGFiaWxpdGllcy5XRUJLSVRHVEssCisgICAgICAgICAgICAgICAgIHNl
cnZpY2VfbG9nX3BhdGg9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgbmV3
IGluc3RhbmNlIG9mIHRoZSBXZWJLaXRHVEsgZHJpdmVyLgorCisgICAgICAgIFN0YXJ0cyB0aGUg
c2VydmljZSBhbmQgdGhlbiBjcmVhdGVzIG5ldyBpbnN0YW5jZSBvZiBXZWJLaXRHVEsgRHJpdmVy
LgorCisgICAgICAgIDpBcmdzOgorICAgICAgICAgLSBleGVjdXRhYmxlX3BhdGggOiBwYXRoIHRv
IHRoZSBleGVjdXRhYmxlLiBJZiB0aGUgZGVmYXVsdCBpcyB1c2VkIGl0IGFzc3VtZXMgdGhlIGV4
ZWN1dGFibGUgaXMgaW4gdGhlICRQQVRILgorICAgICAgICAgLSBwb3J0IDogcG9ydCB5b3Ugd291
bGQgbGlrZSB0aGUgc2VydmljZSB0byBydW4sIGlmIGxlZnQgYXMgMCwgYSBmcmVlIHBvcnQgd2ls
bCBiZSBmb3VuZC4KKyAgICAgICAgIC0gb3B0aW9ucyA6IGFuIGluc3RhbmNlIG9mIFdlYktpdEdU
S09wdGlvbnMKKyAgICAgICAgIC0gZGVzaXJlZF9jYXBhYmlsaXRpZXMgOiBEaWN0aW9uYXJ5IG9i
amVjdCB3aXRoIGRlc2lyZWQgY2FwYWJpbGl0aWVzCisgICAgICAgICAtIHNlcnZpY2VfbG9nX3Bh
dGggOiBQYXRoIHRvIHdyaXRlIHNlcnZpY2Ugc3Rkb3V0IGFuZCBzdGRlcnIgb3V0cHV0LgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgb3B0aW9ucyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNh
cGFiaWxpdGllcyA9IG9wdGlvbnMudG9fY2FwYWJpbGl0aWVzKCkKKyAgICAgICAgICAgIGNhcGFi
aWxpdGllcy51cGRhdGUoZGVzaXJlZF9jYXBhYmlsaXRpZXMpCisgICAgICAgICAgICBkZXNpcmVk
X2NhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworCisgICAgICAgIHNlbGYuc2VydmljZSA9IFNl
cnZpY2UoZXhlY3V0YWJsZV9wYXRoLCBwb3J0PXBvcnQsIGxvZ19wYXRoPXNlcnZpY2VfbG9nX3Bh
dGgpCisgICAgICAgIHNlbGYuc2VydmljZS5zdGFydCgpCisKKyAgICAgICAgUmVtb3RlV2ViRHJp
dmVyLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwKKyAgICAgICAgICAgIGNvbW1hbmRfZXhl
Y3V0b3I9c2VsZi5zZXJ2aWNlLnNlcnZpY2VfdXJsLAorICAgICAgICAgICAgZGVzaXJlZF9jYXBh
YmlsaXRpZXM9ZGVzaXJlZF9jYXBhYmlsaXRpZXMpCisgICAgICAgIHNlbGYuX2lzX3JlbW90ZSA9
IEZhbHNlCisKKyAgICBkZWYgcXVpdChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIENsb3Nl
cyB0aGUgYnJvd3NlciBhbmQgc2h1dHMgZG93biB0aGUgV2ViS2l0R1RLRHJpdmVyIGV4ZWN1dGFi
bGUKKyAgICAgICAgdGhhdCBpcyBzdGFydGVkIHdoZW4gc3RhcnRpbmcgdGhlIFdlYktpdEdUS0Ry
aXZlcgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgUmVtb3RlV2ViRHJp
dmVyLnF1aXQoc2VsZikKKyAgICAgICAgZXhjZXB0IGh0dHBfY2xpZW50LkJhZFN0YXR1c0xpbmU6
CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLnNl
cnZpY2Uuc3RvcCgpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS9zZXR1cC5jZmcgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS9zZXR1
cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhjOTg2YmIwNzg0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
c2V0dXAuY2ZnCkBAIC0wLDAgKzEsMTEgQEAKK1tiZGlzdF93aGVlbF0KK3VuaXZlcnNhbCA9IDEK
KworW2ZsYWtlOF0KK2V4Y2x1ZGUgPSAudG94LGRvY3Mvc291cmNlL2NvbmYucHkKK2lnbm9yZSA9
IEU1MDEKKworW3B5dGVzdF0KK2FkZG9wdHMgPSAtcj1hCitweXRob25fZmlsZXMgPSB0ZXN0Xyou
cHkgKl90ZXN0cy5weQordGVzdHBhdGhzID0gdGVzdApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9fX2luaXRfXy5weSBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3QvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9fX2luaXRfXy5weQpAQCAtMCww
ICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5
IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50
cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9y
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAu
ICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0
aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBt
YXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBh
Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBw
bGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFT
SVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lm
aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRl
ciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vX19pbml0X18ucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIxZTZmODVhMAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vX19pbml0X18u
cHkKQEAgLTAsMCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9fX2luaXRfXy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIx
ZTZmODVhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYg
QEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykg
dW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl
IHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBT
RkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lU
SE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBM
aWNlbnNlLgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL19faW5pdF9fLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL19f
aW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNWIxZTZm
ODVhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9fX2luaXRfXy5weQpAQCAtMCwwICsx
LDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChT
RkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4g
IFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBU
aGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNl
bnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMs
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMg
bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0
aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVt
L3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hbGVydHNfdGVzdHMucHkgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vYWxlcnRzX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5jYzQ5NmMzNjNkNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hbGVydHNfdGVz
dHMucHkKQEAgLTAsMCArMSw0MjYgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVk
b20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGlj
ZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRo
IHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJp
Z2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRl
ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91
IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBM
aWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAg
aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyBy
ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29m
dHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4K
KyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z
CisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9y
IHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0
YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgc3lzCisKK2ltcG9ydCBweXRl
c3QKKworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBhcyBF
QworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJX
YWl0Citmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCAoCisgICAgSW52YWxp
ZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbiwKKyAgICBOb0FsZXJ0UHJlc2VudEV4Y2VwdGlvbiwKKyAg
ICBVbmV4cGVjdGVkQWxlcnRQcmVzZW50RXhjZXB0aW9uLAorICAgIFdlYkRyaXZlckV4Y2VwdGlv
bikKKworCitAcHl0ZXN0LnlpZWxkX2ZpeHR1cmUoYXV0b3VzZT1UcnVlKQorZGVmIGNsb3NlX2Fs
ZXJ0KGRyaXZlcik6CisgICAgeWllbGQKKyAgICB0cnk6CisgICAgICAgIGRyaXZlci5zd2l0Y2hf
dG8uYWxlcnQuZGlzbWlzcygpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcGFzcwor
CisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3Mu
Y2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTUwMCcpCitkZWYg
dGVzdFNob3VsZEJlQWJsZVRvT3ZlcnJpZGVUaGVXaW5kb3dBbGVydE1ldGhvZChkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRtbCIpCisgICAgZHJpdmVyLmV4ZWN1dGVf
c2NyaXB0KAorICAgICAgICAid2luZG93LmFsZXJ0ID0gZnVuY3Rpb24obXNnKSB7IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXh0JykuaW5uZXJIVE1MID0gbXNnOyB9IikKKyAgICBkcml2ZXIu
ZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iYWxlcnQiKS5jbGljaygpCisgICAgdHJ5Ogor
ICAgICAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgndGV4dCcpLnRleHQgPT0g
ImNoZWVzZSIKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICMgaWYgd2UncmUg
aGVyZSwgbGlrZWx5IHRoZSBhbGVydCBpcyBkaXNwbGF5ZWQKKyAgICAgICAgIyBub3QgZGlzbWlz
c2luZyBpdCB3aWxsIGFmZmVjdCBvdGhlciB0ZXN0cworICAgICAgICB0cnk6CisgICAgICAgICAg
ICBfd2FpdEZvckFsZXJ0KGRyaXZlcikuZGlzbWlzcygpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b246CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJhaXNlIGUKKworCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2do
b3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0Bw
eXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21p
dW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTUwMCcpCitkZWYgdGVzdFNo
b3VsZEFsbG93VXNlcnNUb0FjY2VwdEFuQWxlcnRNYW51YWxseShkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJhbGVydHMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5JRCwgdmFsdWU9ImFsZXJ0IikuY2xpY2soKQorICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVydChk
cml2ZXIpCisgICAgYWxlcnQuYWNjZXB0KCkKKyAgICAjICBJZiB3ZSBjYW4gcGVyZm9ybSBhbnkg
YWN0aW9uLCB3ZSdyZSBnb29kIHRvIGdvCisgICAgYXNzZXJ0ICJUZXN0aW5nIEFsZXJ0cyIgPT0g
ZHJpdmVyLnRpdGxlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFz
b249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAg
IHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAor
ICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1
ZXMvZGV0YWlsP2lkPTE1MDAnKQorZGVmIHRlc3RTaG91bGRBbGxvd1VzZXJzVG9BY2NlcHRBbkFs
ZXJ0V2l0aE5vVGV4dE1hbnVhbGx5KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFs
ZXJ0cy5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiZW1wdHktYWxlcnQi
KS5jbGljaygpCisgICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5h
Y2NlcHQoKQorCisgICAgIyAgSWYgd2UgY2FuIHBlcmZvcm0gYW55IGFjdGlvbiwgd2UncmUgZ29v
ZCB0byBnbworICAgIGFzc2VydCAiVGVzdGluZyBBbGVydHMiID09IGRyaXZlci50aXRsZQorCisK
K0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1
Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBz
Oi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xNTAw
JykKK2RlZiB0ZXN0U2hvdWxkR2V0VGV4dE9mQWxlcnRPcGVuZWRJblNldFRpbWVvdXQoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5k
X2VsZW1lbnRfYnlfaWQoInNsb3ctYWxlcnQiKS5jbGljaygpCisKKyAgICAjIERPIE5PVCBXQUlU
IE9SIFNMRUVQIEhFUkUKKyAgICAjIFRoaXMgaXMgYSByZWdyZXNzaW9uIHRlc3QgZm9yIGEgYnVn
IHdoZXJlIG9ubHkgdGhlIGZpcnN0IHN3aXRjaFRvIGNhbGwgd291bGQgdGhyb3csCisgICAgIyBh
bmQgb25seSBpZiBpdCBoYXBwZW5zIGJlZm9yZSB0aGUgYWxlcnQgYWN0dWFsbHkgbG9hZHMuCisK
KyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIHRyeToKKyAgICAgICAgYXNz
ZXJ0ICJTbG93IiA9PSBhbGVydC50ZXh0CisgICAgZmluYWxseToKKyAgICAgICAgYWxlcnQuYWNj
ZXB0KCkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6
Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTI2IGFu
ZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/
aWQ9MTUwMCcsCisgICAgcnVuPUZhbHNlKQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygK
KyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMv
MjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitkZWYgdGVzdFNob3VsZEFsbG93
VXNlcnNUb0Rpc21pc3NBbkFsZXJ0TWFudWFsbHkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZh
bHVlPSJhbGVydCIpLmNsaWNrKCkKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQor
ICAgIGFsZXJ0LmRpc21pc3MoKQorICAgICMgIElmIHdlIGNhbiBwZXJmb3JtIGFueSBhY3Rpb24s
IHdlJ3JlIGdvb2QgdG8gZ28KKyAgICBhc3NlcnQgIlRlc3RpbmcgQWxlcnRzIiA9PSBkcml2ZXIu
dGl0bGUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0
cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2Vz
PVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisgICAgcmVh
c29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRh
aWw/aWQ9MTUwMCcpCitkZWYgdGVzdFNob3VsZEFsbG93QVVzZXJUb0FjY2VwdEFQcm9tcHQoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5m
aW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJwcm9tcHQiKS5jbGljaygpCisgICAgYWxlcnQg
PSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5hY2NlcHQoKQorCisgICAgIyAgSWYg
d2UgY2FuIHBlcmZvcm0gYW55IGFjdGlvbiwgd2UncmUgZ29vZCB0byBnbworICAgIGFzc2VydCAi
VGVzdGluZyBBbGVydHMiID09IGRyaXZlci50aXRsZQorCisKK0BweXRlc3QubWFyay54ZmFpbF9w
aGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2
ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVzdC5t
YXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcv
cC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xNTAwJykKK2RlZiB0ZXN0U2hvdWxkQWxs
b3dBVXNlclRvRGlzbWlzc0FQcm9tcHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
YWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJw
cm9tcHQiKS5jbGljaygpCisgICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBh
bGVydC5kaXNtaXNzKCkKKworICAgICMgIElmIHdlIGNhbiBwZXJmb3JtIGFueSBhY3Rpb24sIHdl
J3JlIGdvb2QgdG8gZ28KKyAgICBhc3NlcnQgIlRlc3RpbmcgQWxlcnRzIiA9PSBkcml2ZXIudGl0
bGUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9i
dWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQor
QHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHVi
LmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24pCitkZWYgdGVzdFNob3VsZEFsbG93QVVzZXJUb1NldFRoZVZhbHVlT2ZBUHJvbXB0
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBkcml2
ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0icHJvbXB0IikuY2xpY2soKQorICAgIGFs
ZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgYWxlcnQuc2VuZF9rZXlzKCJjaGVlc2Ui
KQorICAgIGFsZXJ0LmFjY2VwdCgpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVtZW50
KGJ5PUJ5LklELCB2YWx1ZT0idGV4dCIpLnRleHQKKyAgICBhc3NlcnQgImNoZWVzZSIgPT0gcmVz
dWx0CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBzOi8v
YnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xMzUzJykK
K0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1
Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uKQorZGVmIHRlc3RTZXR0aW5nVGhlVmFsdWVPZkFuQWxlcnRUaHJvd3MoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuSUQsICJhbGVydCIpLmNsaWNrKCkKKworICAgIGFsZXJ0ID0gX3dhaXRGb3JB
bGVydChkcml2ZXIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRFbGVtZW50U3RhdGVF
eGNlcHRpb24pOgorICAgICAgICBhbGVydC5zZW5kX2tleXMoImNoZWVzZSIpCisgICAgYWxlcnQu
YWNjZXB0KCkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIGNvbmRpdGlvbj1z
eXMucGxhdGZvcm0gPT0gJ2RhcndpbicsCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21p
dW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MjYnLAorICAgIHJ1bj1GYWxz
ZSkKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dp
dGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJp
dmVyRXhjZXB0aW9uKQorZGVmIHRlc3RBbGVydFNob3VsZE5vdEFsbG93QWRkaXRpb25hbENvbW1h
bmRzSWZEaW1pc3NlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRt
bCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImFsZXJ0IikuY2xpY2soKQorCisg
ICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5kaXNtaXNzKCkKKwor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb0FsZXJ0UHJlc2VudEV4Y2VwdGlvbik6CisgICAgICAg
IGFsZXJ0LnRleHQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNv
bj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAg
cmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisg
ICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vl
cy9kZXRhaWw/aWQ9MTUwMCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZShyZWFzb249
J0ZhaWxzIG9uIHRyYXZpcycpCitkZWYgdGVzdFNob3VsZEFsbG93VXNlcnNUb0FjY2VwdEFuQWxl
cnRJbkFGcmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRtbCIp
CisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUs
ICJpZnJhbWVXaXRoQWxlcnQiKSkKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJhbGVy
dEluRnJhbWUiKS5jbGljaygpCisKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQor
ICAgIGFsZXJ0LmFjY2VwdCgpCisKKyAgICBhc3NlcnQgIlRlc3RpbmcgQWxlcnRzIiA9PSBkcml2
ZXIudGl0bGUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0n
aHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFp
c2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisgICAg
cmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9k
ZXRhaWw/aWQ9MTUwMCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZShyZWFzb249J0Zh
aWxzIG9uIHRyYXZpcycpCitkZWYgdGVzdFNob3VsZEFsbG93VXNlcnNUb0FjY2VwdEFuQWxlcnRJ
bkFOZXN0ZWRGcmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRt
bCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5B
TUUsICJpZnJhbWVXaXRoSWZyYW1lIikpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2
ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZnJhbWVXaXRoQWxlcnQiKSkKKworICAgIGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfaWQoImFsZXJ0SW5GcmFtZSIpLmNsaWNrKCkKKworICAgIGFsZXJ0
ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgYWxlcnQuYWNjZXB0KCkKKworICAgIGFzc2Vy
dCAiVGVzdGluZyBBbGVydHMiID09IGRyaXZlci50aXRsZQorCisKK2RlZiB0ZXN0U2hvdWxkVGhy
b3dBbkV4Y2VwdGlvbklmQW5BbGVydEhhc05vdEJlZW5EZWFsdFdpdGhBbmREaXNtaXNzVGhlQWxl
cnQoKToKKyAgICBwYXNzCisgICAgIyAvL1RPRE8oRGF2aWQpIENvbXBsZXRlIHRoaXMgdGVzdAor
CisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dp
dGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJp
dmVyRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0
dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0x
NTAwJykKK2RlZiB0ZXN0UHJvbXB0U2hvdWxkVXNlRGVmYXVsdFZhbHVlSWZOb0tleXNTZW50KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5LklELCAicHJvbXB0LXdpdGgtZGVmYXVsdCIpLmNsaWNrKCkKKworICAg
IGFsZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgYWxlcnQuYWNjZXB0KCkKKworICAg
IHR4dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJ0ZXh0IikudGV4dAorICAgIGFzc2Vy
dCAiVGhpcyBpcyBhIGRlZmF1bHQgdmFsdWUiID09IHR4dAorCisKK0BweXRlc3QubWFyay54ZmFp
bF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rk
cml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVz
dC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVncy5jaHJvbWl1bS5v
cmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xNTAwJykKK2RlZiB0ZXN0UHJvbXB0
U2hvdWxkSGF2ZU51bGxWYWx1ZUlmRGlzbWlzc2VkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAicHJv
bXB0LXdpdGgtZGVmYXVsdCIpLmNsaWNrKCkKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxlcnQoZHJp
dmVyKQorICAgIGFsZXJ0LmRpc21pc3MoKQorCisgICAgYXNzZXJ0ICJudWxsIiA9PSBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5LklELCAidGV4dCIpLnRleHQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxf
cGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJp
dmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3Qu
bWFyay54ZmFpbF9jaHJvbWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3Jn
L3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTUwMCcpCitkZWYgdGVzdEhhbmRsZXNU
d29BbGVydHNGcm9tT25lSW50ZXJhY3Rpb24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiYWxlcnRzLmh0bWwiKQorCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImRvdWJs
ZS1wcm9tcHQiKS5jbGljaygpCisKKyAgICBhbGVydDEgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikK
KyAgICBhbGVydDEuc2VuZF9rZXlzKCJicmllIikKKyAgICBhbGVydDEuYWNjZXB0KCkKKworICAg
IGFsZXJ0MiA9IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIGFsZXJ0Mi5zZW5kX2tleXMoImNo
ZWRkYXIiKQorICAgIGFsZXJ0Mi5hY2NlcHQoKQorCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuSUQsICJ0ZXh0MSIpLnRleHQgPT0gImJyaWUiCisgICAgYXNzZXJ0IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuSUQsICJ0ZXh0MiIpLnRleHQgPT0gImNoZWRkYXIiCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9k
ZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRp
b24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdz
LmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQorZGVm
IHRlc3RTaG91bGRIYW5kbGVBbGVydE9uUGFnZUxvYWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiYWxlcnRzLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJv
cGVuLXBhZ2Utd2l0aC1vbmxvYWQtYWxlcnQiKS5jbGljaygpCisgICAgYWxlcnQgPSBfd2FpdEZv
ckFsZXJ0KGRyaXZlcikKKyAgICB2YWx1ZSA9IGFsZXJ0LnRleHQKKyAgICBhbGVydC5hY2NlcHQo
KQorICAgIGFzc2VydCAib25sb2FkIiA9PSB2YWx1ZQorCisKK0BweXRlc3QubWFyay54ZmFpbF9w
aGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vZGV0cm8vZ2hvc3Rkcml2
ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RT
aG91bGRIYW5kbGVBbGVydE9uUGFnZUxvYWRVc2luZ0dldChkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJwYWdlV2l0aE9uTG9hZC5odG1sIikKKyAgICBhbGVydCA9IF93YWl0Rm9yQWxl
cnQoZHJpdmVyKQorICAgIHZhbHVlID0gYWxlcnQudGV4dAorICAgIGFsZXJ0LmFjY2VwdCgpCisK
KyAgICBhc3NlcnQgIm9ubG9hZCIgPT0gdmFsdWUKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwg
MykudW50aWwoRUMudGV4dF90b19iZV9wcmVzZW50X2luX2VsZW1lbnQoKEJ5LlRBR19OQU1FLCAi
cCIpLCAiUGFnZSB3aXRoIG9ubG9hZCBldmVudCBoYW5kbGVyIikpCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRyby9n
aG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitA
cHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9t
aXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAnKQorZGVmIHRlc3RT
aG91bGRIYW5kbGVBbGVydE9uUGFnZUJlZm9yZVVubG9hZChkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJwYWdlV2l0aE9uQmVmb3JlVW5sb2FkTWVzc2FnZS5odG1sIikKKworICAgIGVs
ZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAibmF2aWdhdGUiKQorICAgIGVsZW1l
bnQuY2xpY2soKQorCisgICAgYWxlcnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVy
dC5kaXNtaXNzKCkKKyAgICBhc3NlcnQgInBhZ2VXaXRoT25CZWZvcmVVbmxvYWRNZXNzYWdlLmh0
bWwiIGluIGRyaXZlci5jdXJyZW50X3VybAorCisgICAgZWxlbWVudC5jbGljaygpCisgICAgYWxl
cnQgPSBfd2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICBhbGVydC5hY2NlcHQoKQorICAgIFdlYkRy
aXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiVGVzdGluZyBBbGVydHMiKSkK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9n
aXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2VzPVdlYkRy
aXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUoCisgICAgcmVhc29uPSdo
dHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9
MTUwMCcpCitkZWYgX3Rlc3RTaG91bGRIYW5kbGVBbGVydE9uUGFnZUJlZm9yZVVubG9hZEF0UXVp
dChkcml2ZXIsIHBhZ2VzKToKKyAgICAjIFRPRE86IEFkZCB0aGUgYWJpbGl0eSB0byBnZXQgYSBu
ZXcgc2Vzc2lvbgorICAgIHBhZ2VzLmxvYWQoInBhZ2VXaXRoT25CZWZvcmVVbmxvYWRNZXNzYWdl
Lmh0bWwiKQorCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJuYXZp
Z2F0ZSIpCisgICAgZWxlbWVudC5jbGljaygpCisKKyAgICBfd2FpdEZvckFsZXJ0KGRyaXZlcikK
KworICAgIGRyaXZlci5xdWl0KCkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAor
ICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0ZHJpdmVyL2lzc3Vlcy8y
MCcsCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9j
aHJvbWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJp
dmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTUwMCcpCitkZWYgdGVzdFNob3VsZEFsbG93VGhlVXNlclRv
R2V0VGhlVGV4dE9mQW5BbGVydChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVy
dHMuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImFsZXJ0
IikuY2xpY2soKQorICAgIGFsZXJ0ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgdmFsdWUg
PSBhbGVydC50ZXh0CisgICAgYWxlcnQuYWNjZXB0KCkKKyAgICBhc3NlcnQgImNoZWVzZSIgPT0g
dmFsdWUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6
Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1MDAn
KQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0
aHViLmNvbS9kZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2
ZXJFeGNlcHRpb24pCitkZWYgdGVzdFNob3VsZEFsbG93VGhlVXNlclRvR2V0VGhlVGV4dE9mQVBy
b21wdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhbGVydHMuaHRtbCIpCisgICAg
ZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInByb21wdCIpLmNsaWNrKCkKKworICAgIGFsZXJ0
ID0gX3dhaXRGb3JBbGVydChkcml2ZXIpCisgICAgdmFsdWUgPSBhbGVydC50ZXh0CisgICAgYWxl
cnQuYWNjZXB0KCkKKworICAgIGFzc2VydCAiRW50ZXIgc29tZXRoaW5nIiA9PSB2YWx1ZQorCisK
K0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1
Yi5jb20vZGV0cm8vZ2hvc3Rkcml2ZXIvaXNzdWVzLzIwJywKKyAgICByYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBz
Oi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xNTAw
JykKK2RlZiB0ZXN0QWxlcnRTaG91bGROb3RBbGxvd0FkZGl0aW9uYWxDb21tYW5kc0lmRGlzbWlz
c2VkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYWxlcnQiKS5jbGljaygpCisKKyAgICBhbGVydCA9
IF93YWl0Rm9yQWxlcnQoZHJpdmVyKQorICAgIGFsZXJ0LmFjY2VwdCgpCisKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoTm9BbGVydFByZXNlbnRFeGNlcHRpb24pOgorICAgICAgICBhbGVydC50ZXh0
CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVn
cy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xNTM3JykKK0Bw
eXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWd6aWxs
YS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3OTIxMScpCitAcHl0ZXN0Lm1hcmsueGZh
aWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL2RldHJvL2dob3N0
ZHJpdmVyL2lzc3Vlcy8yMCcsCisgICAgcmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0
ZXN0VW5leHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2VwdGlvbkNvbnRhaW5zQWxlcnRUZXh0KGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFsZXJ0cy5odG1sIikKKyAgICBkcml2ZXIuZmlu
ZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iYWxlcnQiKS5jbGljaygpCisgICAgYWxlcnQgPSBf
d2FpdEZvckFsZXJ0KGRyaXZlcikKKyAgICB2YWx1ZSA9IGFsZXJ0LnRleHQKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoVW5leHBlY3RlZEFsZXJ0UHJlc2VudEV4Y2VwdGlvbikgYXMgZToKKyAgICAg
ICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBhc3NlcnQgdmFsdWUgPT0gZS52
YWx1ZS5hbGVydF90ZXh0CisgICAgYXNzZXJ0ICJBbGVydCBUZXh0OiB7fSIuZm9ybWF0KHZhbHVl
KSBpbiBzdHIoZSkKKworCitkZWYgX3dhaXRGb3JBbGVydChkcml2ZXIpOgorICAgIHJldHVybiBX
ZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMuYWxlcnRfaXNfcHJlc2VudCgpKQpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9leGFtcGxlX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2FwaV9l
eGFtcGxlX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42
NWVkMTIwZDM3ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hcGlfZXhhbXBsZV90ZXN0
cy5weQpAQCAtMCwwICsxLDMwMyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyMgQ29weXJpZ2h0IDIwMDgtMjAwOSBXZWJE
cml2ZXIgY29tbWl0dGVycworIyBDb3B5cmlnaHQgMjAwOC0yMDA5IEdvb2dsZSBJbmMuCisjCisj
IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGlj
ZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
IHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5z
ZSBhdAorIworIyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w
CisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4g
d3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlz
dHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP
TkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QK
KworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgKAorICAgIE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24sCisgICAgTm9TdWNoV2luZG93RXhjZXB0aW9uLAorICAgIFRpbWVvdXRF
eGNlcHRpb24sCisgICAgV2ViRHJpdmVyRXhjZXB0aW9uKQorZnJvbSBzZWxlbml1bS53ZWJkcml2
ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0Citmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCisKKworZGVmIHRl
c3RHZXRUaXRsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0
bWwiKQorICAgIHRpdGxlID0gZHJpdmVyLnRpdGxlCisgICAgYXNzZXJ0ICJIZWxsbyBXZWJEcml2
ZXIiID09IHRpdGxlCisKKworZGVmIHRlc3RHZXRDdXJyZW50VXJsKGRyaXZlciwgcGFnZXMsIHdl
YnNlcnZlcik6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICB1cmwgPSBk
cml2ZXIuY3VycmVudF91cmwKKyAgICBhc3NlcnQgd2Vic2VydmVyLndoZXJlX2lzKCdzaW1wbGVU
ZXN0Lmh0bWwnKSA9PSB1cmwKKworCitkZWYgdGVzdEZpbmRFbGVtZW50c0J5WFBhdGgoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBlbGVtID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiLy9oMSIpCisgICAgYXNzZXJ0ICJIZWFkaW5n
IiA9PSBlbGVtLnRleHQKKworCitkZWYgdGVzdEZpbmRFbGVtZW50QnlYcGF0aFRocm93Tm9TdWNo
RWxlbWVudEV4Y2VwdGlvbihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVU
ZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9u
KToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiLy9oNCIpCisKKworZGVm
IHRlc3RGaW5kRWxlbWVudHNCeVhwYXRoKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
Im5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW1zID0gZHJpdmVyLmZpbmRfZWxlbWVudHNf
YnlfeHBhdGgoIi8vb3B0aW9uIikKKyAgICBhc3NlcnQgNDggPT0gbGVuKGVsZW1zKQorICAgIGFz
c2VydCAiT25lIiA9PSBlbGVtc1swXS5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisKKworZGVmIHRl
c3RGaW5kRWxlbWVudHNCeU5hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0
bWxUZXN0Lmh0bWwiKQorICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoIndp
bmRvd09uZSIpCisgICAgYXNzZXJ0ICJPcGVuIG5ldyB3aW5kb3ciID09IGVsZW0udGV4dAorCisK
K2RlZiB0ZXN0RmluZEVsZW1lbnRzQnlOYW1lSW5FbGVtZW50Q29udGV4dChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtID0gZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJmb3JtMiIpCisgICAgc3ViX2VsZW0gPSBlbGVtLmZp
bmRfZWxlbWVudF9ieV9uYW1lKCJzZWxlY3RvbWF0aWMiKQorICAgIGFzc2VydCAiMiIgPT0gc3Vi
X2VsZW0uZ2V0X2F0dHJpYnV0ZSgiaWQiKQorCisKK2RlZiB0ZXN0RmluZEVsZW1lbnRzQnlMaW5r
VGV4dEluRWxlbWVudENvbnRleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVz
dGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFt
ZSgiZGl2MSIpCisgICAgc3ViX2VsZW0gPSBlbGVtLmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQo
ImhlbGxvIHdvcmxkIikKKyAgICBhc3NlcnQgImxpbmsxIiA9PSBzdWJfZWxlbS5nZXRfYXR0cmli
dXRlKCJuYW1lIikKKworCitkZWYgdGVzdEZpbmRFbGVtZW50QnlJZEluRWxlbWVudENvbnRleHQo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisg
ICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9ybTIiKQorICAgIHN1Yl9l
bGVtID0gZWxlbS5maW5kX2VsZW1lbnRfYnlfaWQoIjIiKQorICAgIGFzc2VydCAic2VsZWN0b21h
dGljIiA9PSBzdWJfZWxlbS5nZXRfYXR0cmlidXRlKCJuYW1lIikKKworCitkZWYgdGVzdEZpbmRF
bGVtZW50QnlYcGF0aEluRWxlbWVudENvbnRleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfbmFtZSgiZm9ybTIiKQorICAgIHN1Yl9lbGVtID0gZWxlbS5maW5kX2VsZW1lbnRfYnlf
eHBhdGgoInNlbGVjdCIpCisgICAgYXNzZXJ0ICIyIiA9PSBzdWJfZWxlbS5nZXRfYXR0cmlidXRl
KCJpZCIpCisKKworZGVmIHRlc3RGaW5kRWxlbWVudEJ5WHBhdGhJbkVsZW1lbnRDb250ZXh0Tm90
Rm91bmQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRt
bCIpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9ybTIiKQorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZWxl
bS5maW5kX2VsZW1lbnRfYnlfeHBhdGgoImRpdiIpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVU
b0VudGVyRGF0YUludG9Gb3JtRmllbGRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
InhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0
aCgiLy9mb3JtW0BuYW1lPSdzb21lRm9ybSddL2lucHV0W0BpZD0ndXNlcm5hbWUnXSIpCisgICAg
ZWxlbS5jbGVhcigpCisgICAgZWxlbS5zZW5kX2tleXMoInNvbWUgdGV4dCIpCisgICAgZWxlbSA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vZm9ybVtAbmFtZT0nc29tZUZvcm0nXS9p
bnB1dFtAaWQ9J3VzZXJuYW1lJ10iKQorICAgIGFzc2VydCAic29tZSB0ZXh0IiA9PSBlbGVtLmdl
dF9hdHRyaWJ1dGUoInZhbHVlIikKKworCitkZWYgdGVzdEZpbmRFbGVtZW50QnlUYWdOYW1lKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZWxl
bXMgPSBkcml2ZXIuZmluZF9lbGVtZW50c19ieV90YWdfbmFtZSgiZGl2IikKKyAgICBudW1fYnlf
eHBhdGggPSBsZW4oZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoIi8vZGl2IikpCisgICAg
YXNzZXJ0IG51bV9ieV94cGF0aCA9PSBsZW4oZWxlbXMpCisgICAgZWxlbXMgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50c19ieV90YWdfbmFtZSgiaWZyYW1lIikKKyAgICBhc3NlcnQgMCA9PSBsZW4oZWxl
bXMpCisKKworZGVmIHRlc3RGaW5kRWxlbWVudEJ5VGFnTmFtZVdpdGhpbkVsZW1lbnQoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBkaXYgPSBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJtdWx0aWxpbmUiKQorICAgIGVsZW1zID0gZGl2LmZp
bmRfZWxlbWVudHNfYnlfdGFnX25hbWUoInAiKQorICAgIGFzc2VydCBsZW4oZWxlbXMpID09IDEK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAgICByZWFzb249IlczQyBpbXBs
ZW1lbnRhdGlvbnMgY2FuJ3Qgc3dpdGNoIHRvIGEgd2luZG93IGJ5IG5hbWUiLAorICAgIHJhaXNl
cz1UaW1lb3V0RXhjZXB0aW9uLAorICAgIHJ1bj1GYWxzZSkKK2RlZiB0ZXN0U3dpdGNoVG9XaW5k
b3coZHJpdmVyLCBwYWdlcyk6CisgICAgdGl0bGVfMSA9ICJYSFRNTCBUZXN0IFBhZ2UiCisgICAg
dGl0bGVfMiA9ICJXZSBBcnJpdmUgSGVyZSIKKyAgICBzd2l0Y2hfdG9fd2luZG93X3RpbWVvdXQg
PSA1CisgICAgd2FpdCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCBzd2l0Y2hfdG9fd2luZG93X3Rp
bWVvdXQsIGlnbm9yZWRfZXhjZXB0aW9ucz1bTm9TdWNoV2luZG93RXhjZXB0aW9uXSkKKyAgICBw
YWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9s
aW5rX3RleHQoIk9wZW4gbmV3IHdpbmRvdyIpLmNsaWNrKCkKKyAgICBhc3NlcnQgdGl0bGVfMSA9
PSBkcml2ZXIudGl0bGUKKyAgICB3YWl0LnVudGlsKGxhbWJkYSBkcjogZHIuc3dpdGNoX3RvLndp
bmRvdygicmVzdWx0IikgaXMgTm9uZSkKKyAgICBhc3NlcnQgdGl0bGVfMiA9PSBkcml2ZXIudGl0
bGUKKworCitkZWYgdGVzdFN3aXRjaEZyYW1lQnlOYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJ0aGlyZCIpKQorICAgIGNoZWNrYm94ID0gZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV9pZCgiY2hlY2t5IikKKyAgICBjaGVja2JveC5jbGljaygpCisgICAg
Y2hlY2tib3guc3VibWl0KCkKKworCitkZWYgdGVzdElzRW5hYmxlZChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV94cGF0aCgiLy9pbnB1dFtAaWQ9J3dvcmtpbmcnXSIpCisgICAgYXNzZXJ0IGVs
ZW0uaXNfZW5hYmxlZCgpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgo
Ii8vaW5wdXRbQGlkPSdub3RXb3JraW5nJ10iKQorICAgIGFzc2VydCBub3QgZWxlbS5pc19lbmFi
bGVkKCkKKworCitkZWYgdGVzdElzU2VsZWN0ZWRBbmRUb2dnbGUoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbSA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoIm11bHRpIikKKyAgICBvcHRpb25fZWxlbXMgPSBlbGVtLmZpbmRfZWxlbWVu
dHNfYnlfeHBhdGgoIm9wdGlvbiIpCisgICAgYXNzZXJ0IG9wdGlvbl9lbGVtc1swXS5pc19zZWxl
Y3RlZCgpCisgICAgb3B0aW9uX2VsZW1zWzBdLmNsaWNrKCkKKyAgICBhc3NlcnQgbm90IG9wdGlv
bl9lbGVtc1swXS5pc19zZWxlY3RlZCgpCisgICAgb3B0aW9uX2VsZW1zWzBdLmNsaWNrKCkKKyAg
ICBhc3NlcnQgb3B0aW9uX2VsZW1zWzBdLmlzX3NlbGVjdGVkKCkKKyAgICBhc3NlcnQgb3B0aW9u
X2VsZW1zWzJdLmlzX3NlbGVjdGVkKCkKKworCitkZWYgdGVzdE5hdmlnYXRlKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyAgICBXZWJEcml2ZXJXYWl0KGRy
aXZlciwgMykudW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisgICAgZHJpdmVy
LmJhY2soKQorICAgIGFzc2VydCAiV2UgTGVhdmUgRnJvbSBIZXJlIiA9PSBkcml2ZXIudGl0bGUK
KyAgICBkcml2ZXIuZm9yd2FyZCgpCisgICAgYXNzZXJ0ICJXZSBBcnJpdmUgSGVyZSIgPT0gZHJp
dmVyLnRpdGxlCisKKworZGVmIHRlc3RHZXRBdHRyaWJ1dGUoZHJpdmVyLCBwYWdlcyk6CisgICAg
dXJsID0gcGFnZXMudXJsKCd4aHRtbFRlc3QuaHRtbCcpCisgICAgZHJpdmVyLmdldCh1cmwpCisg
ICAgZWxlbSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImlkMSIpCisgICAgYXR0ciA9IGVs
ZW0uZ2V0X2F0dHJpYnV0ZSgiaHJlZiIpCisgICAgYXNzZXJ0ICd7MH0jJy5mb3JtYXQodXJsKSA9
PSBhdHRyCisKKworZGVmIHRlc3RHZXRJbXBsaWNpdEF0dHJpYnV0ZShkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtcyA9IGRyaXZl
ci5maW5kX2VsZW1lbnRzX2J5X3hwYXRoKCIvL29wdGlvbiIpCisgICAgYXNzZXJ0IGxlbihlbGVt
cykgPj0gMworICAgIGZvciBpLCBlbGVtIGluIGVudW1lcmF0ZShlbGVtc1s6M10pOgorICAgICAg
ICBhc3NlcnQgaSA9PSBpbnQoZWxlbS5nZXRfYXR0cmlidXRlKCJpbmRleCIpKQorCisKK2RlZiB0
ZXN0RXhlY3V0ZVNpbXBsZVNjcmlwdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4
aHRtbFRlc3QuaHRtbCIpCisgICAgdGl0bGUgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBkb2N1bWVudC50aXRsZTsiKQorICAgIGFzc2VydCAiWEhUTUwgVGVzdCBQYWdlIiA9PSB0aXRs
ZQorCisKK2RlZiB0ZXN0RXhlY3V0ZVNjcmlwdEFuZFJldHVybkVsZW1lbnQoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW0gPSBkcml2ZXIu
ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWQxJyk7IikK
KyAgICBhc3NlcnQgIldlYkVsZW1lbnQiIGluIHN0cih0eXBlKGVsZW0pKQorCisKK2RlZiB0ZXN0
RXhlY3V0ZVNjcmlwdFdpdGhBcmdzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInho
dG1sVGVzdC5odG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVy
biBhcmd1bWVudHNbMF0gPT0gJ2Zpc2gnID8gJ2Zpc2gnIDogJ25vdCBmaXNoJzsiLCAiZmlzaCIp
CisgICAgYXNzZXJ0ICJmaXNoIiA9PSByZXN1bHQKKworCitkZWYgdGVzdEV4ZWN1dGVTY3JpcHRX
aXRoTXVsdGlwbGVBcmdzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVz
dC5odG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICJy
ZXR1cm4gYXJndW1lbnRzWzBdICsgYXJndW1lbnRzWzFdIiwgMSwgMikKKyAgICBhc3NlcnQgMyA9
PSByZXN1bHQKKworCitkZWYgdGVzdEV4ZWN1dGVTY3JpcHRXaXRoRWxlbWVudEFyZ3MoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgYnV0
dG9uID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicGxhaW5CdXR0b24iKQorICAgIHJlc3Vs
dCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgiYXJndW1lbnRzWzBdWydmbGliYmxlJ10gPSBhcmd1
bWVudHNbMF0uZ2V0QXR0cmlidXRlKCdpZCcpOyByZXR1cm4gYXJndW1lbnRzWzBdWydmbGliYmxl
J107IiwgYnV0dG9uKQorICAgIGFzc2VydCAicGxhaW5CdXR0b24iID09IHJlc3VsdAorCisKK2Rl
ZiB0ZXN0RmluZEVsZW1lbnRzQnlQYXJ0aWFsTGlua1RleHQoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X3BhcnRpYWxfbGlua190ZXh0KCJuZXcgd2luZG93IikKKyAgICBlbGVtLmNsaWNrKCkK
KworCitkZWYgdGVzdElzRWxlbWVudERpc3BsYXllZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICB2aXNpYmxlID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9pZCgiZGlzcGxheWVkIikuaXNfZGlzcGxheWVkKCkKKyAgICBub3RfdmlzaWJs
ZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImhpZGRlbiIpLmlzX2Rpc3BsYXllZCgpCisg
ICAgYXNzZXJ0IHZpc2libGUKKyAgICBhc3NlcnQgbm90IG5vdF92aXNpYmxlCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9k
ZXRyby9naG9zdGRyaXZlci9pc3N1ZXMvNDY2JykKK2RlZiB0ZXN0TW92ZVdpbmRvd1Bvc2l0aW9u
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImJsYW5rLmh0bWwiKQorICAgIGxvYyA9
IGRyaXZlci5nZXRfd2luZG93X3Bvc2l0aW9uKCkKKyAgICAjIG5vdGUgY2FuJ3QgdGVzdCAwLDAg
c2luY2Ugc29tZSBPUydzIGRvbnQgYWxsb3cgdGhhdCBsb2NhdGlvbgorICAgICMgYmVjYXVzZSBv
ZiBzeXN0ZW0gdG9vbGJhcnMKKyAgICBuZXdfeCA9IDUwCisgICAgbmV3X3kgPSA1MAorICAgIGlm
IGxvY1sneCddID09IG5ld194OgorICAgICAgICBuZXdfeCArPSAxMAorICAgIGlmIGxvY1sneSdd
ID09IG5ld195OgorICAgICAgICBuZXdfeSArPSAxMAorICAgIGRyaXZlci5zZXRfd2luZG93X3Bv
c2l0aW9uKG5ld194LCBuZXdfeSkKKyAgICBsb2MgPSBkcml2ZXIuZ2V0X3dpbmRvd19wb3NpdGlv
bigpCisgICAgYXNzZXJ0IGxvY1sneCddID09IG5ld194CisgICAgYXNzZXJ0IGxvY1sneSddID09
IG5ld195CisKKworZGVmIHRlc3RDaGFuZ2VXaW5kb3dTaXplKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoImJsYW5rLmh0bWwiKQorICAgIHNpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19z
aXplKCkKKyAgICBuZXdTaXplID0gWzYwMCwgNjAwXQorICAgIGlmIHNpemVbJ3dpZHRoJ10gPT0g
NjAwOgorICAgICAgICBuZXdTaXplWzBdID0gNTAwCisgICAgaWYgc2l6ZVsnaGVpZ2h0J10gPT0g
NjAwOgorICAgICAgICBuZXdTaXplWzFdID0gNTAwCisgICAgZHJpdmVyLnNldF93aW5kb3dfc2l6
ZShuZXdTaXplWzBdLCBuZXdTaXplWzFdKQorICAgIHNpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19z
aXplKCkKKyAgICBhc3NlcnQgc2l6ZVsnd2lkdGgnXSA9PSBuZXdTaXplWzBdCisgICAgYXNzZXJ0
IHNpemVbJ2hlaWdodCddID09IG5ld1NpemVbMV0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFy
aW9uZXR0ZSgKKyAgICByYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RHZXRMb2dU
eXBlcyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJibGFuay5odG1sIikKKyAgICBh
c3NlcnQgaXNpbnN0YW5jZShkcml2ZXIubG9nX3R5cGVzLCBsaXN0KQorCisKK0BweXRlc3QubWFy
ay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24pCitkZWYg
dGVzdEdldExvZyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJibGFuay5odG1sIikK
KyAgICBmb3IgbG9nX3R5cGUgaW4gZHJpdmVyLmxvZ190eXBlczoKKyAgICAgICAgbG9nID0gZHJp
dmVyLmdldF9sb2cobG9nX3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxvZywgbGlz
dCkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9hcHBjYWNoZV90ZXN0cy5weSBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9h
cHBjYWNoZV90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZmY0MTg1Y2E0NDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vYXBwY2FjaGVfdGVzdHMu
cHkKQEAgLTAsMCArMSwzNyBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxlbml1
bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCitmcm9tIHNlbGVu
aXVtLndlYmRyaXZlci5jb21tb24uaHRtbDUuYXBwbGljYXRpb25fY2FjaGUgaW1wb3J0IEFwcGxp
Y2F0aW9uQ2FjaGUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsu
eGZhaWxfbWFyaW9uZXR0ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJr
LnhmYWlsX3BoYW50b21qcyhyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJr
LnhmYWlsX3JlbW90ZQorZGVmIHRlc3RXZUNhbkdldFRoZVN0YXR1c09mVGhlQXBwQ2FjaGUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgnaHRtbDVQYWdlJykKKyAgICBkcml2ZXIuaW1w
bGljaXRseV93YWl0KDIpCisgICAgYXBwX2NhY2hlID0gZHJpdmVyLmFwcGxpY2F0aW9uX2NhY2hl
CisKKyAgICBzdGF0dXMgPSBhcHBfY2FjaGUuc3RhdHVzCisgICAgd2hpbGUgc3RhdHVzID09IEFw
cGxpY2F0aW9uQ2FjaGUuRE9XTkxPQURJTkc6CisgICAgICAgIHN0YXR1cyA9IGFwcF9jYWNoZS5z
dGF0dXMKKworICAgIGFzc2VydCBBcHBsaWNhdGlvbkNhY2hlLlVOQ0FDSEVEID09IGFwcF9jYWNo
ZS5zdGF0dXMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jaGlsZHJlbl9maW5kaW5nX3Rlc3RzLnB5
IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJk
cml2ZXIvY29tbW9uL2NoaWxkcmVuX2ZpbmRpbmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ3YTI0NGJmZDhiCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
Y29tbW9uL2NoaWxkcmVuX2ZpbmRpbmdfdGVzdHMucHkKQEAgLTAsMCArMSwxODMgQEAKKyMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
CisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgor
CitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0
ICgKKyAgICBXZWJEcml2ZXJFeGNlcHRpb24sCisgICAgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbikK
KworCitkZWYgdGVzdF9zaG91bGRfZmluZF9lbGVtZW50X2J5X3hwYXRoKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZvcm0yIikKKyAgICBjaGlsZCA9IGVsZW1lbnQu
ZmluZF9lbGVtZW50X2J5X3hwYXRoKCJzZWxlY3QiKQorICAgIGFzc2VydCBjaGlsZC5nZXRfYXR0
cmlidXRlKCJpZCIpID09ICIyIgorCisKK2RlZiB0ZXN0X3Nob3VsZF9ub3RfZmluZF9lbGVtZW50
X2J5X3hwYXRoKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRz
Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZvcm0y
IikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAg
ICAgIGVsZW1lbnQuZmluZF9lbGVtZW50X2J5X3hwYXRoKCJzZWxlY3QveCIpCisKKworZGVmIHRl
c3RfZmluZGluZ19kb3Rfc2xhc2hfZWxlbWVudHNfb25fZWxlbWVudF9ieV94cGF0aF9zaG91bGRf
ZmluZF9ub3RfdG9wX2xldmVsX2VsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgcGFyZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9pZCgibXVsdGlsaW5lIikKKyAgICBjaGlsZHJlbiA9IHBhcmVudC5maW5kX2VsZW1lbnRzX2J5
X3hwYXRoKCIuL3AiKQorICAgIGFzc2VydCAxID09IGxlbihjaGlsZHJlbikKKyAgICBhc3NlcnQg
IkEgZGl2IGNvbnRhaW5pbmciID09IGNoaWxkcmVuWzBdLnRleHQKKworCitkZWYgdGVzdF9zaG91
bGRfZmluZF9lbGVtZW50c19ieV94cGF0aChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9uYW1lKCJmb3JtMiIpCisgICAgY2hpbGRyZW4gPSBlbGVtZW50LmZpbmRfZWxlbWVudHNf
YnlfeHBhdGgoInNlbGVjdC9vcHRpb24iKQorICAgIGFzc2VydCBsZW4oY2hpbGRyZW4pID09IDgK
KyAgICBhc3NlcnQgY2hpbGRyZW5bMF0udGV4dCA9PSAiT25lIgorICAgIGFzc2VydCBjaGlsZHJl
blsxXS50ZXh0ID09ICJUd28iCisKKworZGVmIHRlc3Rfc2hvdWxkX25vdF9maW5kX2VsZW1lbnRz
X2J5X3hwYXRoKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRz
Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZvcm0y
IikKKyAgICBjaGlsZHJlbiA9IGVsZW1lbnQuZmluZF9lbGVtZW50c19ieV94cGF0aCgic2VsZWN0
L3giKQorICAgIGFzc2VydCBsZW4oY2hpbGRyZW4pID09IDAKKworCitkZWYgdGVzdF9maW5kaW5n
X2VsZW1lbnRzX29uX2VsZW1lbnRfYnlfeHBhdGhfc2hvdWxkX2ZpbmRfdG9wX2xldmVsX2VsZW1l
bnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisg
ICAgcGFyZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibXVsdGlsaW5lIikKKyAgICBh
bGxfcGFyYV9lbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X3hwYXRoKCIvL3AiKQor
ICAgIGNoaWxkcmVuID0gcGFyZW50LmZpbmRfZWxlbWVudHNfYnlfeHBhdGgoIi8vcCIpCisgICAg
YXNzZXJ0IGxlbihhbGxfcGFyYV9lbGVtZW50cykgPT0gbGVuKGNoaWxkcmVuKQorCisKK2RlZiB0
ZXN0X3Nob3VsZF9maW5kX2VsZW1lbnRfYnlfbmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudF9ieV9uYW1lKCJmb3JtMiIpCisgICAgY2hpbGQgPSBlbGVtZW50LmZpbmRfZWxlbWVu
dF9ieV9uYW1lKCJzZWxlY3RvbWF0aWMiKQorICAgIGFzc2VydCBjaGlsZC5nZXRfYXR0cmlidXRl
KCJpZCIpID09ICIyIgorCisKK2RlZiB0ZXN0X3Nob3VsZF9maW5kX2VsZW1lbnRzX2J5X25hbWUo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisg
ICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9ybTIiKQorICAgIGNo
aWxkcmVuID0gZWxlbWVudC5maW5kX2VsZW1lbnRzX2J5X25hbWUoInNlbGVjdG9tYXRpYyIpCisg
ICAgYXNzZXJ0IGxlbihjaGlsZHJlbikgPT0gMgorCisKK2RlZiB0ZXN0X3Nob3VsZF9maW5kX2Vs
ZW1lbnRfYnlfaWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVu
dHMuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9y
bTIiKQorICAgIGNoaWxkID0gZWxlbWVudC5maW5kX2VsZW1lbnRfYnlfaWQoIjIiKQorICAgIGFz
c2VydCBjaGlsZC5nZXRfYXR0cmlidXRlKCJuYW1lIikgPT0gInNlbGVjdG9tYXRpYyIKKworCitk
ZWYgdGVzdF9zaG91bGRfZmluZF9lbGVtZW50c19ieV9pZChkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9uYW1lKCJmb3JtMiIpCisgICAgY2hpbGQgPSBlbGVtZW50LmZpbmRfZWxl
bWVudHNfYnlfaWQoIjIiKQorICAgIGFzc2VydCBsZW4oY2hpbGQpID09IDIKKworCitkZWYgdGVz
dF9zaG91bGRfZmluZF9lbGVtZW50X2J5X2lkX3doZW5fbXVsdGlwbGVfbWF0Y2hlc19leGlzdChk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAg
ICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgidGVzdF9pZF9kaXYiKQorICAg
IGNoaWxkID0gZWxlbWVudC5maW5kX2VsZW1lbnRfYnlfaWQoInRlc3RfaWQiKQorICAgIGFzc2Vy
dCBjaGlsZC50ZXh0ID09ICJpbnNpZGUiCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVu
dF9ieV9pZF93aGVuX25vX21hdGNoX2luX2NvbnRleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5k
X2VsZW1lbnRfYnlfaWQoInRlc3RfaWRfZGl2IikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9T
dWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGVsZW1lbnQuZmluZF9lbGVtZW50X2J5X2lk
KCJ0ZXN0X2lkX291dCIpCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRfZWxlbWVudF9ieV9saW5r
X3RleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRt
bCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZGl2MSIpCisg
ICAgY2hpbGQgPSBlbGVtZW50LmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoImhlbGxvIHdvcmxk
IikKKyAgICBhc3NlcnQgY2hpbGQuZ2V0X2F0dHJpYnV0ZSgibmFtZSIpID09ICJsaW5rMSIKKwor
CitkZWYgdGVzdF9zaG91bGRfZmluZF9lbGVtZW50c19ieV9saW5rX3RleHQoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbWVudCA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZGl2MSIpCisgICAgY2hpbGRyZW4gPSBlbGVt
ZW50LmZpbmRfZWxlbWVudHNfYnlfbGlua190ZXh0KCJoZWxsbyB3b3JsZCIpCisgICAgYXNzZXJ0
IGxlbihjaGlsZHJlbikgPT0gMgorICAgIGFzc2VydCAibGluazEiID09IGNoaWxkcmVuWzBdLmdl
dF9hdHRyaWJ1dGUoIm5hbWUiKQorICAgIGFzc2VydCAibGluazIiID09IGNoaWxkcmVuWzFdLmdl
dF9hdHRyaWJ1dGUoIm5hbWUiKQorCisKK2RlZiB0ZXN0X3Nob3VsZF9maW5kX2VsZW1lbnRfYnlf
Y2xhc3NfbmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50
cy5odG1sIikKKyAgICBwYXJlbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImNsYXNz
ZXMiKQorICAgIGVsZW1lbnQgPSBwYXJlbnQuZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoIm9u
ZSIpCisgICAgYXNzZXJ0ICJGaW5kIG1lIiA9PSBlbGVtZW50LnRleHQKKworCitkZWYgdGVzdF9z
aG91bGRfZmluZF9lbGVtZW50c19ieV9jbGFzc19uYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIHBhcmVudCA9IGRyaXZlci5maW5k
X2VsZW1lbnRfYnlfbmFtZSgiY2xhc3NlcyIpCisgICAgZWxlbWVudHMgPSBwYXJlbnQuZmluZF9l
bGVtZW50c19ieV9jbGFzc19uYW1lKCJvbmUiKQorICAgIGFzc2VydCAyID09IGxlbihlbGVtZW50
cykKKworCitkZWYgdGVzdF9zaG91bGRfZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIHBhcmVu
dCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZGl2MSIpCisgICAgZWxlbWVudCA9IHBh
cmVudC5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImEiKQorICAgIGFzc2VydCAibGluazEiID09
IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgibmFtZSIpCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpbmRf
ZWxlbWVudHNfYnlfdGFnX25hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVz
dGVkRWxlbWVudHMuaHRtbCIpCisgICAgcGFyZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9u
YW1lKCJkaXYxIikKKyAgICBlbGVtZW50cyA9IHBhcmVudC5maW5kX2VsZW1lbnRzX2J5X3RhZ19u
YW1lKCJhIikKKyAgICBhc3NlcnQgMiA9PSBsZW4oZWxlbWVudHMpCisKKworZGVmIHRlc3Rfc2hv
dWxkX2JlX2FibGVfdG9fZmluZF9hbl9lbGVtZW50X2J5X2Nzc19zZWxlY3Rvcihkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBwYXJlbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZvcm0yIikKKyAgICBlbGVtZW50ID0gcGFy
ZW50LmZpbmRfZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3IoJypbbmFtZT0ic2VsZWN0b21hdGljIl0n
KQorICAgIGFzc2VydCAiMiIgPT0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJpZCIpCisKKworZGVm
IHRlc3Rfc2hvdWxkX2JlX2FibGVfdG9fZmluZF9tdWx0aXBsZV9lbGVtZW50c19ieV9jc3Nfc2Vs
ZWN0b3IoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRt
bCIpCisgICAgcGFyZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJmb3JtMiIpCisg
ICAgZWxlbWVudHMgPSBwYXJlbnQuZmluZF9lbGVtZW50c19ieV9jc3Nfc2VsZWN0b3IoCisgICAg
ICAgICcqW25hbWU9InNlbGVjdG9tYXRpYyJdJykKKyAgICBhc3NlcnQgMiA9PSBsZW4oZWxlbWVu
dHMpCisKKworZGVmIHRlc3Rfc2hvdWxkX3Rocm93X2FuX2Vycm9yX2lmX3VzZXJfcGFzc2VzX2lu
X2ludmFsaWRfYnkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVu
dHMuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZm9y
bTIiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgICAg
ICBlbGVtZW50LmZpbmRfZWxlbWVudCgiZm9vIiwgImJhciIpCisKKworZGVmIHRlc3Rfc2hvdWxk
X3Rocm93X2FuX2Vycm9yX2lmX3VzZXJfcGFzc2VzX2luX2ludmFsaWRfYnlfd2hlbl9maW5kX2Vs
ZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0
bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZvcm0yIikK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAgICAgZWxl
bWVudC5maW5kX2VsZW1lbnRzKCJmb28iLCAiYmFyIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9j
bGVhcl90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGVhcl90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjY1MGYxN2I3NWMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZl
ci9jb21tb24vY2xlYXJfdGVzdHMucHkKQEAgLTAsMCArMSw3MCBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBw
eXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgSW52YWxpZEVs
ZW1lbnRTdGF0ZUV4Y2VwdGlvbgorCisKK2RlZiB0ZXN0V3JpdGFibGVUZXh0SW5wdXRTaG91bGRD
bGVhcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJyZWFkT25seVBhZ2UuaHRtbCIp
CisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIndyaXRhYmxlVGV4dElu
cHV0IikKKyAgICBlbGVtZW50LmNsZWFyKCkKKyAgICBhc3NlcnQgIiIgPT0gZWxlbWVudC5nZXRf
YXR0cmlidXRlKCJ2YWx1ZSIpCisKKworZGVmIHRlc3RUZXh0SW5wdXRTaG91bGROb3RDbGVhcldo
ZW5EaXNhYmxlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJyZWFkT25seVBhZ2Uu
aHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInRleHRJbnB1
dG5vdGVuYWJsZWQiKQorICAgIGFzc2VydCBub3QgZWxlbWVudC5pc19lbmFibGVkKCkKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbik6CisgICAgICAg
IGVsZW1lbnQuY2xlYXIoKQorCisKK2RlZiB0ZXN0VGV4dElucHV0U2hvdWxkTm90Q2xlYXJXaGVu
UmVhZE9ubHkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgicmVhZE9ubHlQYWdlLmh0
bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJyZWFkT25seVRl
eHRJbnB1dCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRFbGVtZW50U3RhdGVFeGNl
cHRpb24pOgorICAgICAgICBlbGVtZW50LmNsZWFyKCkKKworCitkZWYgdGVzdFdyaXRhYmxlVGV4
dEFyZWFTaG91bGRDbGVhcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJyZWFkT25s
eVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIndy
aXRhYmxlVGV4dEFyZWEiKQorICAgIGVsZW1lbnQuY2xlYXIoKQorICAgIGFzc2VydCAiIiA9PSBl
bGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKworCitkZWYgdGVzdFRleHRBcmVhU2hvdWxk
Tm90Q2xlYXJXaGVuRGlzYWJsZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgicmVh
ZE9ubHlQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lk
KCJ0ZXh0QXJlYU5vdGVuYWJsZWQiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkRWxl
bWVudFN0YXRlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbWVudC5jbGVhcigpCisKKworZGVmIHRl
c3RUZXh0QXJlYVNob3VsZE5vdENsZWFyV2hlblJlYWRPbmx5KGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoInJlYWRPbmx5UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgidGV4dEFyZWFSZWFkT25seSIpCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pOgorICAgICAgICBlbGVtZW50LmNsZWFy
KCkKKworCitkZWYgdGVzdENvbnRlbnRFZGl0YWJsZUFyZWFTaG91bGRDbGVhcihkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJyZWFkT25seVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNvbnRlbnQtZWRpdGFibGUiKQorICAgIGVsZW1l
bnQuY2xlYXIoKQorICAgIGFzc2VydCAiIiA9PSBlbGVtZW50LnRleHQKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vY2xpY2tfc2Nyb2xs
aW5nX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNmQ4
Zjg4MTYxYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja19zY3JvbGxpbmdfdGVz
dHMucHkKQEAgLTAsMCArMSwxOTIgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVk
b20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGlj
ZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRo
IHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJp
Z2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRl
ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91
IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBM
aWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAg
aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyBy
ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29m
dHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4K
KyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z
CisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9y
IHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0
YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2Vs
ZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0ICgKKyAgICBFbGVtZW50Tm90SW50ZXJhY3Rh
YmxlRXhjZXB0aW9uLAorICAgIE1vdmVUYXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbiwKKyAgICBX
ZWJEcml2ZXJFeGNlcHRpb24pCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1w
b3J0IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9j
b25kaXRpb25zIGFzIEVDCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9y
dCBXZWJEcml2ZXJXYWl0CisKKworZGVmIHRlc3RDbGlja2luZ09uQW5jaG9yU2Nyb2xsc1BhZ2Uo
ZHJpdmVyLCBwYWdlcyk6CisgICAgc2Nyb2xsU2NyaXB0ID0gIiIidmFyIHBhZ2VZOworICAgIGlm
ICh0eXBlb2Yod2luZG93LnBhZ2VZT2Zmc2V0KSA9PSAnbnVtYmVyJykgeworICAgICAgcGFnZVkg
PSB3aW5kb3cucGFnZVlPZmZzZXQ7CisgICAgfSBlbHNlIHsKKyAgICAgIHBhZ2VZID0gZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKKyAgICB9CisgICAgcmV0dXJuIHBhZ2VZOyIi
IgorCisgICAgcGFnZXMubG9hZCgibWFjYmV0aC5odG1sIikKKworICAgIGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuUEFSVElBTF9MSU5LX1RFWFQsICJsYXN0IHNwZWVjaCIpLmNsaWNrKCkKKworICAg
IHlPZmZzZXQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoc2Nyb2xsU2NyaXB0KQorCisgICAgIyBG
b2N1c2luZyBvbiB0byBjbGljaywgYnV0IG5vdCBhY3R1YWxseSBmb2xsb3dpbmcsCisgICAgIyB0
aGUgbGluayB3aWxsIHNjcm9sbCBpdCBpbiB0byB2aWV3LCB3aGljaCBpcyBhIGZldyBwaXhlbHMg
ZnVydGhlciB0aGFuIDAKKyAgICBhc3NlcnQgeU9mZnNldCA+IDMwMAorCisKK2RlZiB0ZXN0U2hv
dWxkU2Nyb2xsVG9DbGlja09uQW5FbGVtZW50SGlkZGVuQnlPdmVyZmxvdyhkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJjbGlja19vdXRfb2ZfYm91bmRzX292ZXJmbG93Lmh0bWwiKQor
CisgICAgbGluayA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJsaW5rIikKKyAgICB0cnk6
CisgICAgICAgIGxpbmsuY2xpY2soKQorICAgIGV4Y2VwdCBNb3ZlVGFyZ2V0T3V0T2ZCb3VuZHNF
eGNlcHRpb24gYXMgZToKKyAgICAgICAgQXNzZXJ0aW9uRXJyb3IoIlNob3VsZCBub3QgYmUgb3V0
IG9mIGJvdW5kczogJXMiICUgZS5tc2cpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0
dGUoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMv
NDA4JykKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja09uQW5FbGVtZW50SGlkZGVuQnlPdmVy
Zmxvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzY3JvbGwuaHRtbCIpCisKKyAg
ICBsaW5rID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImxpbmU4IikKKyAgICAjIFRoaXMg
dXNlZCB0byB0aHJvdyBhIE1vdmVUYXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbiAtIHdlIGRvbid0
IGV4cGVjdCBpdCB0bworICAgIGxpbmsuY2xpY2soKQorICAgIGFzc2VydCAibGluZTgiID09IGRy
aXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJjbGlja2VkIikudGV4dAorCisKK0BweXRlc3QubWFy
ay54ZmFpbF9jaHJvbWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3Av
Y2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MTUzNicsCisgICAgcmFpc2VzPVdlYkRyaXZl
ckV4Y2VwdGlvbikKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja09uQW5FbGVtZW50SGlkZGVu
QnlEb3VibGVPdmVyZmxvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzY3JvbGxp
bmdfdGVzdHMvcGFnZV93aXRoX2RvdWJsZV9vdmVyZmxvd19hdXRvLmh0bWwiKQorCisgICAgZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImxpbmsiKS5jbGljaygpCisgICAgV2ViRHJpdmVyV2Fp
dChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJDbGlja2VkIFN1Y2Nlc3NmdWxseSEiKSkK
KworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tPbkFuRWxlbWVudEhpZGRlbkJ5WU92ZXJm
bG93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbGluZ190ZXN0cy9wYWdl
X3dpdGhfeV9vdmVyZmxvd19hdXRvLmh0bWwiKQorCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5JRCwgImxpbmsiKS5jbGljaygpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGls
KEVDLnRpdGxlX2lzKCJDbGlja2VkIFN1Y2Nlc3NmdWxseSEiKSkKKworCitkZWYgdGVzdFNob3Vs
ZE5vdFNjcm9sbE92ZXJmbG93RWxlbWVudHNXaGljaEFyZVZpc2libGUoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgic2Nyb2xsMi5odG1sIikKKyAgICBsaXN0ID0gZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5UQUdfTkFNRSwgInVsIikKKyAgICBpdGVtID0gbGlzdC5maW5kX2VsZW1lbnQo
QnkuSUQsICJkZXNpcmVkIikKKyAgICBpdGVtLmNsaWNrKCkKKyAgICB5T2Zmc2V0ID0gZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdLnNjcm9sbFRvcCIsIGxpc3QpCisg
ICAgYXNzZXJ0IDAgPT0geU9mZnNldCwgIlNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCIKKworCitA
cHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lKAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWdzLmNocm9t
aXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWlsP2lkPTE1NDInKQorQHB5dGVzdC5t
YXJrLnhmYWlsX21hcmlvbmV0dGUKK2RlZiB0ZXN0U2hvdWxkTm90U2Nyb2xsSWZBbHJlYWR5U2Ny
b2xsZWRBbmRFbGVtZW50SXNJblZpZXcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
c2Nyb2xsMy5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYnV0dG9uMSIp
LmNsaWNrKCkKKyAgICBzY3JvbGxUb3AgPSBnZXRTY3JvbGxUb3AoZHJpdmVyKQorICAgIGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuSUQsICJidXR0b24yIikuY2xpY2soKQorICAgIGFzc2VydCBzY3Jv
bGxUb3AgPT0gZ2V0U2Nyb2xsVG9wKGRyaXZlcikKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRv
Q2xpY2tSYWRpb0J1dHRvblNjcm9sbGVkSW50b1ZpZXcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgic2Nyb2xsNC5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAi
cmFkaW8iKS5jbGljaygpCisgICAgIyBJZiB3ZSBkb24ndCB0aHJvdywgd2UncmUgZ29vZAorCisK
K0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcsCisgICAgcmFpc2VzPUVsZW1lbnROb3RJ
bnRlcmFjdGFibGVFeGNlcHRpb24pCitkZWYgdGVzdFNob3VsZFNjcm9sbE92ZXJmbG93RWxlbWVu
dHNJZkNsaWNrUG9pbnRJc091dE9mVmlld0J1dEVsZW1lbnRJc0luVmlldyhkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJzY3JvbGw1Lmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1l
bnQoQnkuSUQsICJpbm5lciIpLmNsaWNrKCkKKyAgICBhc3NlcnQgImNsaWNrZWQiID09IGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuSUQsICJjbGlja2VkIikudGV4dAorCisKK0BweXRlc3QubWFyay54
ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJk
cml2ZXIvaXNzdWVzLzQwOCcpCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tFbGVtZW50SW5B
RnJhbWVUaGF0SXNPdXRPZlZpZXcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2Ny
b2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9mcmFtZV9vdXRfb2Zfdmlldy5odG1sIikKKyAgICBkcml2
ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZnJhbWUiKSkK
KyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAiY2hlY2tib3giKQor
ICAgIGVsZW1lbnQuY2xpY2soKQorICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkKKwor
CitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tFbGVtZW50VGhhdElzT3V0T2ZWaWV3SW5BRnJh
bWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vf
d2l0aF9zY3JvbGxpbmdfZnJhbWUuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShk
cml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInNjcm9sbGluZ19mcmFtZSIpKQorICAgIGVsZW1l
bnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJzY3JvbGxfY2hlY2tib3giKQorICAg
IGVsZW1lbnQuY2xpY2soKQorICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkKKworCitk
ZWYgdGVzdFNob3VsZE5vdEJlQWJsZVRvQ2xpY2tFbGVtZW50VGhhdElzT3V0T2ZWaWV3SW5BTm9u
U2Nyb2xsYWJsZUZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNjcm9sbGlu
Z190ZXN0cy9wYWdlX3dpdGhfbm9uX3Njcm9sbGluZ19mcmFtZS5odG1sIikKKyAgICBkcml2ZXIu
c3dpdGNoX3RvLmZyYW1lKCJzY3JvbGxpbmdfZnJhbWUiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJzY3JvbGxfY2hlY2tib3giKQorICAgIGVsZW1lbnQuY2xp
Y2soKQorICAgICMgVE9ETyB3ZSBzaG91bGQgYXNzZXJ0IHRoYXQgdGhlIGNsaWNrIHdhcyB1bnN1
Y2Nlc3NmdWwKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tFbGVtZW50VGhhdElzT3V0
T2ZWaWV3SW5BRnJhbWVUaGF0SXNPdXRPZlZpZXcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9zY3JvbGxpbmdfZnJhbWVfb3V0X29mX3Zp
ZXcuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50
X2J5X25hbWUoInNjcm9sbGluZ19mcmFtZSIpKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5Lk5BTUUsICJzY3JvbGxfY2hlY2tib3giKQorICAgIGVsZW1lbnQuY2xpY2soKQor
ICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkKKworCitkZWYgdGVzdFNob3VsZEJlQWJs
ZVRvQ2xpY2tFbGVtZW50VGhhdElzT3V0T2ZWaWV3SW5BTmVzdGVkRnJhbWUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgic2Nyb2xsaW5nX3Rlc3RzL3BhZ2Vfd2l0aF9uZXN0ZWRfc2Ny
b2xsaW5nX2ZyYW1lcy5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfbmFtZSgic2Nyb2xsaW5nX2ZyYW1lIikpCisgICAgZHJpdmVyLnN3aXRj
aF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoIm5lc3RlZF9zY3JvbGxpbmdf
ZnJhbWUiKSkKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAic2Ny
b2xsX2NoZWNrYm94IikKKyAgICBlbGVtZW50LmNsaWNrKCkKKyAgICBhc3NlcnQgZWxlbWVudC5p
c19zZWxlY3RlZCgpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrRWxlbWVudFRoYXRJ
c091dE9mVmlld0luQU5lc3RlZEZyYW1lVGhhdElzT3V0T2ZWaWV3KGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoInNjcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfbmVzdGVkX3Njcm9sbGlu
Z19mcmFtZXNfb3V0X29mX3ZpZXcuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShk
cml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInNjcm9sbGluZ19mcmFtZSIpKQorICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJuZXN0ZWRfc2Ny
b2xsaW5nX2ZyYW1lIikpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFN
RSwgInNjcm9sbF9jaGVja2JveCIpCisgICAgZWxlbWVudC5jbGljaygpCisgICAgYXNzZXJ0IGVs
ZW1lbnQuaXNfc2VsZWN0ZWQoKQorCisKK2RlZiB0ZXN0U2hvdWxkTm90U2Nyb2xsV2hlbkdldHRp
bmdFbGVtZW50U2l6ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzY3JvbGwzLmh0
bWwiKQorICAgIHNjcm9sbFRvcCA9IGdldFNjcm9sbFRvcChkcml2ZXIpCisgICAgZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5JRCwgImJ1dHRvbjEiKS5zaXplCisgICAgYXNzZXJ0IHNjcm9sbFRvcCA9
PSBnZXRTY3JvbGxUb3AoZHJpdmVyKQorCisKK2RlZiBnZXRTY3JvbGxUb3AoZHJpdmVyKToKKyAg
ICByZXR1cm4gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuYm9keS5zY3Jv
bGxUb3AiKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJlYXNvbj0n
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzQwOCcpCitkZWYgdGVzdFNo
b3VsZEJlQWJsZVRvQ2xpY2tFbGVtZW50SW5BVGFsbEZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoInNjcm9sbGluZ190ZXN0cy9wYWdlX3dpdGhfdGFsbF9mcmFtZS5odG1sIikK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgi
dGFsbF9mcmFtZSIpKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUs
ICJjaGVja2JveCIpCisgICAgZWxlbWVudC5jbGljaygpCisgICAgYXNzZXJ0IGVsZW1lbnQuaXNf
c2VsZWN0ZWQoKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NsaWNrX3Rlc3RzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2NsaWNrX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li41ZjQ0NThmZDQ2NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jbGlja190ZXN0cy5w
eQpAQCAtMCwwICsxLDM3IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENv
bnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2Ug
YWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlz
IHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBv
d25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5z
ZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWly
ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJl
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJB
UyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBL
SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUK
KyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9u
cworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVt
LndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5z
dXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCitmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5zdXBwb3J0LndhaXQgaW1wb3J0IFdlYkRyaXZlcldhaXQKKworCitAcHl0ZXN0LmZp
eHR1cmUoYXV0b3VzZT1UcnVlKQorZGVmIGxvYWRQYWdlKHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJjbGlja3MuaHRtbCIpCisKKworZGVmIHRlc3RDYW5DbGlja09uQUxpbmtUaGF0T3ZlcmZsb3dz
QW5kRm9sbG93SXQoZHJpdmVyKToKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAib3Zl
cmZsb3dMaW5rIikuY2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChF
Qy50aXRsZV9pcygiWEhUTUwgVGVzdCBQYWdlIikpCisKKworZGVmIHRlc3RDbGlja2luZ0FMaW5r
TWFkZVVwT2ZOdW1iZXJzSXNIYW5kbGVkQ29ycmVjdGx5KGRyaXZlcik6CisgICAgZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5MSU5LX1RFWFQsICIzMzMzMzMiKS5jbGljaygpCisgICAgV2ViRHJpdmVy
V2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJYSFRNTCBUZXN0IFBhZ2UiKSkKZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9jb25mdGVzdC5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVk
L3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jb25mdGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzU2NzA5MjdlMzEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vY29uZnRlc3QucHkKQEAgLTAsMCArMSwyMSBAQAorIyBM
aWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBv
bmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5P
VElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGlu
Zm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNl
bnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv
biAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNv
cHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z
ZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y
IGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUg
TGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3Ig
aW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdv
dmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2Uu
CisKKworZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgaWYgJ2RyaXZl
cicgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzIGFuZCBtZXRhZnVuYy5jb25maWcub3B0aW9uLmRy
aXZlcnM6CisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCdkcml2ZXInLCBtZXRhZnVuYy5j
b25maWcub3B0aW9uLmRyaXZlcnMsIGluZGlyZWN0PVRydWUpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vY29va2llX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Nvb2tpZV90ZXN0cy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTA4ZGNiMzMwNzQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vY29va2llX3Rlc3RzLnB5CkBAIC0wLDAgKzEsOTYgQEAKKyMgTGljZW5z
ZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisj
IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0Ug
ZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1h
dGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMg
dGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w
ICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4g
Y29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9m
IHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ
Q0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3Jl
ZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vu
c2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5U
SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxp
ZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5p
bmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitp
bXBvcnQgY2FsZW5kYXIKK2ltcG9ydCB0aW1lCitpbXBvcnQgcmFuZG9tCisKK2ltcG9ydCBweXRl
c3QKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjb29raWUod2Vic2VydmVyKToKKyAgICBjb29r
aWUgPSB7CisgICAgICAgICduYW1lJzogJ2ZvbycsCisgICAgICAgICd2YWx1ZSc6ICdiYXInLAor
ICAgICAgICAnZG9tYWluJzogd2Vic2VydmVyLmhvc3QsCisgICAgICAgICdwYXRoJzogJy8nLAor
ICAgICAgICAnc2VjdXJlJzogRmFsc2V9CisgICAgcmV0dXJuIGNvb2tpZQorCisKK0BweXRlc3Qu
eWllbGRfZml4dHVyZShhdXRvdXNlPVRydWUpCitkZWYgcGFnZXMocmVxdWVzdCwgZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgnc2ltcGxlVGVzdC5odG1sJykKKyAgICB5aWVsZCBwYWdl
cworICAgIGRyaXZlci5kZWxldGVfYWxsX2Nvb2tpZXMoKQorCisKK2RlZiB0ZXN0QWRkQ29va2ll
KGNvb2tpZSwgZHJpdmVyKToKKyAgICBkcml2ZXIuYWRkX2Nvb2tpZShjb29raWUpCisgICAgcmV0
dXJuZWQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiBkb2N1bWVudC5jb29raWUnKQor
ICAgIGFzc2VydCBjb29raWVbJ25hbWUnXSBpbiByZXR1cm5lZAorCisKK0BweXRlc3QubWFyay54
ZmFpbF9pZQorZGVmIHRlc3RBZGRpbmdBQ29va2llVGhhdEV4cGlyZWRJblRoZVBhc3QoY29va2ll
LCBkcml2ZXIpOgorICAgIGV4cGlyZWQgPSBjb29raWUuY29weSgpCisgICAgZXhwaXJlZFsnZXhw
aXJ5J10gPSBjYWxlbmRhci50aW1lZ20odGltZS5nbXRpbWUoKSkgLSAxCisgICAgZHJpdmVyLmFk
ZF9jb29raWUoZXhwaXJlZCkKKyAgICBhc3NlcnQgMCA9PSBsZW4oZHJpdmVyLmdldF9jb29raWVz
KCkpCisKKworZGVmIHRlc3REZWxldGVBbGxDb29raWUoY29va2llLCBkcml2ZXIpOgorICAgIGRy
aXZlci5hZGRfY29va2llKGNvb2tpZSkKKyAgICBkcml2ZXIuZGVsZXRlX2FsbF9jb29raWVzKCkK
KyAgICBhc3NlcnQgbm90IGRyaXZlci5nZXRfY29va2llcygpCisKKworZGVmIHRlc3REZWxldGVD
b29raWUoY29va2llLCBkcml2ZXIpOgorICAgIGRyaXZlci5hZGRfY29va2llKGNvb2tpZSkKKyAg
ICBkcml2ZXIuZGVsZXRlX2Nvb2tpZSgnZm9vJykKKyAgICBhc3NlcnQgbm90IGRyaXZlci5nZXRf
Y29va2llcygpCisKKworZGVmIHRlc3RTaG91bGRHZXRDb29raWVCeU5hbWUoZHJpdmVyKToKKyAg
ICBrZXkgPSAna2V5X3t9Jy5mb3JtYXQoaW50KHJhbmRvbS5yYW5kb20oKSAqIDEwMDAwMDAwKSkK
KyAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoImRvY3VtZW50LmNvb2tpZSA9IGFyZ3VtZW50c1sw
XSArICc9c2V0JzsiLCBrZXkpCisgICAgY29va2llID0gZHJpdmVyLmdldF9jb29raWUoa2V5KQor
ICAgIGFzc2VydCAnc2V0JyA9PSBjb29raWVbJ3ZhbHVlJ10KKworCitkZWYgdGVzdEdldEFsbENv
b2tpZXMoY29va2llLCBkcml2ZXIsIHBhZ2VzLCB3ZWJzZXJ2ZXIpOgorICAgIGNvb2tpZXMgPSBk
cml2ZXIuZ2V0X2Nvb2tpZXMoKQorICAgIGNvdW50ID0gbGVuKGNvb2tpZXMpCisKKyAgICBmb3Ig
aSBpbiByYW5nZSgyKToKKyAgICAgICAgY29va2llWyduYW1lJ10gPSAna2V5X3t9Jy5mb3JtYXQo
aW50KHJhbmRvbS5yYW5kb20oKSAqIDEwMDAwMDAwKSkKKyAgICAgICAgZHJpdmVyLmFkZF9jb29r
aWUoY29va2llKQorCisgICAgcGFnZXMubG9hZCgnc2ltcGxlVGVzdC5odG1sJykKKyAgICBhc3Nl
cnQgY291bnQgKyAyID09IGxlbihkcml2ZXIuZ2V0X2Nvb2tpZXMoKSkKKworCitkZWYgdGVzdFNo
b3VsZE5vdERlbGV0ZUNvb2tpZXNXaXRoQVNpbWlsYXJOYW1lKGNvb2tpZSwgZHJpdmVyLCB3ZWJz
ZXJ2ZXIpOgorICAgIGNvb2tpZTIgPSBjb29raWUuY29weSgpCisgICAgY29va2llMlsnbmFtZSdd
ID0gJ3t9eCcuZm9ybWF0KGNvb2tpZVsnbmFtZSddKQorICAgIGRyaXZlci5hZGRfY29va2llKGNv
b2tpZSkKKyAgICBkcml2ZXIuYWRkX2Nvb2tpZShjb29raWUyKQorICAgIGRyaXZlci5kZWxldGVf
Y29va2llKGNvb2tpZVsnbmFtZSddKQorICAgIGNvb2tpZXMgPSBkcml2ZXIuZ2V0X2Nvb2tpZXMo
KQorICAgIGFzc2VydCBjb29raWVbJ25hbWUnXSAhPSBjb29raWVzWzBdWyduYW1lJ10KKyAgICBh
c3NlcnQgY29va2llMlsnbmFtZSddID09IGNvb2tpZXNbMF1bJ25hbWUnXQpkaWZmIC0tZ2l0IGEv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL2NvcnJlY3RfZXZlbnRfZmlyaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2NvcnJl
Y3RfZXZlbnRfZmlyaW5nX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4xYTZhZjM3OGEzMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9jb3JyZWN0
X2V2ZW50X2ZpcmluZ190ZXN0cy5weQpAQCAtMCwwICsxLDEyMyBAQAorIyBMaWNlbnNlZCB0byB0
aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9y
ZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisj
IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisj
IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZp
bGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQor
IyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlh
bmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExp
Y2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp
biB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBk
aXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig
Q09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNl
ZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworZGVmIHRl
c3RTaG91bGRGaXJlQ2xpY2tFdmVudFdoZW5DbGlja2luZyhkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBfY2xpY2tPbkVsZW1lbnRXaGlj
aFJlY29yZHNFdmVudHMoZHJpdmVyKQorICAgIF9hc3NlcnRFdmVudEZpcmVkKGRyaXZlciwgImNs
aWNrIikKKworCitkZWYgdGVzdFNob3VsZEZpcmVNb3VzZURvd25FdmVudFdoZW5DbGlja2luZyhk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAg
ICBfY2xpY2tPbkVsZW1lbnRXaGljaFJlY29yZHNFdmVudHMoZHJpdmVyKQorICAgIF9hc3NlcnRF
dmVudEZpcmVkKGRyaXZlciwgIm1vdXNlZG93biIpCisKKworZGVmIHRlc3RTaG91bGRGaXJlTW91
c2VVcEV2ZW50V2hlbkNsaWNraW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImph
dmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIF9jbGlja09uRWxlbWVudFdoaWNoUmVjb3Jkc0V2ZW50
cyhkcml2ZXIpCisgICAgX2Fzc2VydEV2ZW50RmlyZWQoZHJpdmVyLCAibW91c2V1cCIpCisKKwor
ZGVmIHRlc3RTaG91bGRJc3N1ZU1vdXNlRG93bkV2ZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJtb3VzZWRvd24iKS5jbGljaygpCisgICAgcmVzdWx0ID0gZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9pZCgicmVzdWx0IikudGV4dAorICAgIGFzc2VydCByZXN1bHQgPT0gIm1vdXNlIGRv
d24iCisKKworZGVmIHRlc3RTaG91bGRJc3N1ZUNsaWNrRXZlbnRzKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoIm1vdXNlY2xpY2siKS5jbGljaygpCisgICAgcmVzdWx0ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgicmVzdWx0IikudGV4dAorICAgIGFzc2VydCByZXN1bHQgPT0gIm1v
dXNlIGNsaWNrIgorCisKK2RlZiB0ZXN0U2hvdWxkSXNzdWVNb3VzZVVwRXZlbnRzKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfaWQoIm1vdXNldXAiKS5jbGljaygpCisgICAgcmVzdWx0ID0gZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicmVzdWx0IikudGV4dAorICAgIGFzc2VydCByZXN1bHQg
PT0gIm1vdXNlIHVwIgorCisKK2RlZiB0ZXN0TW91c2VFdmVudHNTaG91bGRCdWJibGVVcFRvQ29u
dGFpbmluZ0VsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3Jp
cHRQYWdlLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNoaWxkIikuY2xp
Y2soKQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpLnRl
eHQKKyAgICBhc3NlcnQgcmVzdWx0ID09ICJtb3VzZSBkb3duIgorCisKK2RlZiB0ZXN0U2hvdWxk
RW1pdE9uQ2hhbmdlRXZlbnRzV2hlblNlbGVjdGluZ0VsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHNlbGVjdCA9IGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfaWQoJ3NlbGVjdG9yJykKKyAgICBvcHRpb25zID0gc2VsZWN0LmZp
bmRfZWxlbWVudHNfYnlfdGFnX25hbWUoJ29wdGlvbicpCisgICAgaW5pdGlhbFRleHRWYWx1ZSA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpLnRleHQKKworICAgIHNlbGVjdC5j
bGljaygpCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpLnRl
eHQgPT0gaW5pdGlhbFRleHRWYWx1ZQorICAgIG9wdGlvbnNbMV0uY2xpY2soKQorICAgIGFzc2Vy
dCBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJyZXN1bHQiKS50ZXh0ID09ICJiYXIiCisKKwor
ZGVmIHRlc3RTaG91bGRFbWl0T25DaGFuZ2VFdmVudHNXaGVuQ2hhbmdpbmdUaGVTdGF0ZU9mQUNo
ZWNrYm94KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIGNoZWNrYm94ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2hlY2tib3gi
KQorICAgIGNoZWNrYm94LmNsaWNrKCkKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9pZCgicmVzdWx0IikudGV4dCA9PSAiY2hlY2tib3ggdGhpbmciCisKKworZGVmIHRlc3RTaG91
bGRFbWl0Q2xpY2tFdmVudFdoZW5DbGlja2luZ09uQVRleHRJbnB1dEVsZW1lbnQoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgY2xpY2tl
ciA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNsaWNrRmllbGQiKQorICAgIGNsaWNrZXIu
Y2xpY2soKQorCisgICAgYXNzZXJ0IGNsaWNrZXIuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAi
Q2xpY2tlZCIKKworCitkZWYgdGVzdENsZWFyaW5nQW5FbGVtZW50U2hvdWxkQ2F1c2VUaGVPbkNo
YW5nZUhhbmRsZXJUb0ZpcmUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNj
cmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
ImNsZWFyTWUiKQorICAgIGVsZW1lbnQuY2xlYXIoKQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5k
X2VsZW1lbnRfYnlfaWQoInJlc3VsdCIpCisgICAgYXNzZXJ0IHJlc3VsdC50ZXh0ID09ICJDbGVh
cmVkIgorCisjIFRPRE8gQ3VycmVudGx5IEZhaWxpbmcgYW5kIG5lZWRzIGZpeGluZworIyBkZWYg
dGVzdFNlbmRpbmdLZXlzVG9Bbm90aGVyRWxlbWVudFNob3VsZENhdXNlVGhlQmx1ckV2ZW50VG9G
aXJlKGRyaXZlciwgcGFnZXMpOgorIyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1s
IikKKyMgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInRoZXdvcmtzIikK
KyMgICAgZWxlbWVudC5zZW5kX2tleXMoImZvbyIpCisjICAgIGVsZW1lbnQyID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgiY2hhbmdlYWJsZSIpCisjICAgIGVsZW1lbnQyLnNlbmRfa2V5cygi
YmFyIikKKyMgICAgX2Fzc2VydEV2ZW50RmlyZWQoZHJpdmVyLCAiYmx1ciIpCisKKyMgVE9ETyBD
dXJyZW50bHkgRmFpbGluZyBhbmQgbmVlZHMgZml4aW5nCisjIGRlZiB0ZXN0U2VuZGluZ0tleXNU
b0FuRWxlbWVudFNob3VsZENhdXNlVGhlRm9jdXNFdmVudFRvRmlyZShkcml2ZXIsIHBhZ2VzKToK
KyMgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisjICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJ0aGV3b3JrcyIpCisjICAgIGVsZW1lbnQuc2VuZF9r
ZXlzKCJmb28iKQorIyAgICBfYXNzZXJ0RXZlbnRGaXJlZChkcml2ZXIsICJmb2N1cyIpCisKKwor
ZGVmIF9jbGlja09uRWxlbWVudFdoaWNoUmVjb3Jkc0V2ZW50cyhkcml2ZXIpOgorICAgIGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfaWQoInBsYWluQnV0dG9uIikuY2xpY2soKQorCisKK2RlZiBfYXNz
ZXJ0RXZlbnRGaXJlZChkcml2ZXIsIGV2ZW50TmFtZSk6CisgICAgcmVzdWx0ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgicmVzdWx0IikKKyAgICB0ZXh0ID0gcmVzdWx0LnRleHQKKyAgICBh
c3NlcnQgZXZlbnROYW1lIGluIHRleHQsICJObyAiICsgZXZlbnROYW1lICsgIiBmaXJlZDogIiAr
IHRleHQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rl
c3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9kcml2ZXJfZWxlbWVudF9maW5kaW5nX3Rlc3Rz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2ZpbmRpbmdfdGVzdHMucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZGMyYmQzODU3Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL2RyaXZlcl9lbGVtZW50X2ZpbmRpbmdfdGVzdHMucHkKQEAgLTAsMCAr
MSw2NDkgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kg
KFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRz
LiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3Ig
YWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4g
IFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJ
UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVy
IHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVy
LmNvbW1vbi5ieSBpbXBvcnQgQnkKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1w
b3J0ICgKKyAgICBJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uLAorICAgIEludmFsaWRTZWxl
Y3RvckV4Y2VwdGlvbiwKKyAgICBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLAorICAgIE5vU3VjaFdp
bmRvd0V4Y2VwdGlvbiwKKyAgICBXZWJEcml2ZXJFeGNlcHRpb24pCisKKyMgQnkuaWQgcG9zaXRp
dmUKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0FTaW5nbGVfRWxlbWVudF9C
eV9JZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisg
ICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJsaW5rSWQiKQorICAgIGFz
c2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoImlkIikgPT0gImxpbmtJZCIKKworCitkZWYgdGVz
dF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0FTaW5nbGVfRWxlbWVudF9CeV9OdW1lcmljX0lkKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAg
IGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiMiIpCisgICAgYXNzZXJ0IGVs
ZW1lbnQuZ2V0X2F0dHJpYnV0ZSgiaWQiKSA9PSAiMiIKKworCitkZWYgdGVzdF9zaG91bGRfYmVf
YWJsZV90b19maW5kX2FuX2VsZW1lbnRfd2l0aF9jc3NfZXNjYXBlKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImlkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuSUQsICJ3aXRoLmRvdHMiKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9h
dHRyaWJ1dGUoImlkIikgPT0gIndpdGguZG90cyIKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJs
ZV9Ub19GaW5kX011bHRpcGxlX0VsZW1lbnRzX0J5X0lkKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoIm5lc3RlZEVsZW1lbnRzLmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZp
bmRfZWxlbWVudHMoQnkuSUQsICJ0ZXN0X2lkIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9
PSAyCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9NdWx0aXBsZV9FbGVtZW50
c19CeV9OdW1lcmljX0lkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm5lc3RlZEVs
ZW1lbnRzLmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuSUQs
ICIyIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSA4CisKKyMgQnkuaWQgbmVnYXRpdmUK
KworCitkZWYgdGVzdF9TaG91bGRfTm90X0JlX0FibGVfVG9fTG9jYXRlX0J5X0lkX0FTaW5nbGVf
RWxlbWVudF9UaGF0X0RvZXNfTm90X0V4aXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50
RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgIm5vbl9FeGlz
dGVudF9CdXR0b24iKQorCisKK2RlZiB0ZXN0X1Nob3VsZF9Ob3RfQmVfQWJsZV9Ub19Mb2NhdGVf
QnlfSWRfTXVsdGlwbGVfRWxlbWVudHNfVGhhdF9Eb19Ob3RfRXhpc3QoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIu
ZmluZF9lbGVtZW50cyhCeS5JRCwgIm5vbl9FeGlzdGVudF9CdXR0b24iKQorICAgIGFzc2VydCBs
ZW4oZWxlbWVudHMpID09IDAKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNl
cz1Ob1N1Y2hXaW5kb3dFeGNlcHRpb24pCitkZWYgdGVzdF9GaW5kaW5nX0FTaW5nbGVfRWxlbWVu
dF9CeV9FbXB0eV9JZF9TaG91bGRfVGhyb3coZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRF
eGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiIikKKworCitA
cHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9u
KQorZGVmIHRlc3RfRmluZGluZ19NdWx0aXBsZV9FbGVtZW50c19CeV9FbXB0eV9JZF9TaG91bGRf
UmV0dXJuX0VtcHR5X0xpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBh
Z2UuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5JRCwgIiIp
CisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykgPT0gMAorCisKK2RlZiB0ZXN0X0ZpbmRpbmdfQVNp
bmdsZV9FbGVtZW50X0J5X0lkX1dpdGhfU3BhY2VfU2hvdWxkX1Rocm93KGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5JRCwgIm5vbmV4aXN0ZW50IGJ1dHRvbiIpCisKKworZGVmIHRlc3RfRmluZGluZ19NdWx0aXBs
ZV9FbGVtZW50c19CeV9JZF9XaXRoX1NwYWNlX1Nob3VsZF9SZXR1cm5fRW1wdHlfTGlzdChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50
cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LklELCAibm9uZXhpc3RlbnQgYnV0dG9uIikKKyAg
ICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAwCisKKyMgQnkubmFtZSBwb3NpdGl2ZQorCisKK2Rl
ZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfQVNpbmdsZV9FbGVtZW50X0J5X05hbWUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVu
dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgImNoZWNreSIpCisgICAgYXNzZXJ0IGVs
ZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiZnVycmZ1IgorCisKK2RlZiB0ZXN0X1No
b3VsZF9CZV9BYmxlX1RvX0ZpbmRfTXVsdGlwbGVfRWxlbWVudHNfQnlfTmFtZShkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJuZXN0ZWRFbGVtZW50cy5odG1sIikKKyAgICBlbGVtZW50
cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5Lk5BTUUsICJjaGVja3kiKQorICAgIGFzc2VydCBs
ZW4oZWxlbWVudHMpID4gMQorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfQW5f
RWxlbWVudF9UaGF0X0RvZXNfTm90X1N1cHBvcnRfVGhlX05hbWVfUHJvcGVydHkoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbWVu
dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgImRpdjEiKQorICAgIGFzc2VydCBlbGVt
ZW50LmdldF9hdHRyaWJ1dGUoIm5hbWUiKSA9PSAiZGl2MSIKKworIyBCeS5uYW1lIG5lZ2F0aXZl
CisKKworZGVmIHRlc3RfU2hvdWxkX05vdF9CZV9BYmxlX1RvX0xvY2F0ZV9CeV9OYW1lX0FTaW5n
bGVfRWxlbWVudF9UaGF0X0RvZXNfTm90X0V4aXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVt
ZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAibm9u
X0V4aXN0ZW50X0J1dHRvbiIpCisKKworZGVmIHRlc3RfU2hvdWxkX05vdF9CZV9BYmxlX1RvX0xv
Y2F0ZV9CeV9OYW1lX011bHRpcGxlX0VsZW1lbnRzX1RoYXRfRG9fTm90X0V4aXN0KGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnRzID0g
ZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuTkFNRSwgIm5vbl9FeGlzdGVudF9CdXR0b24iKQorICAg
IGFzc2VydCBsZW4oZWxlbWVudHMpID09IDAKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRv
bWpzKHJhaXNlcz1Ob1N1Y2hXaW5kb3dFeGNlcHRpb24pCitkZWYgdGVzdF9GaW5kaW5nX0FTaW5n
bGVfRWxlbWVudF9CeV9FbXB0eV9OYW1lX1Nob3VsZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9T
dWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFN
RSwgIiIpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9Tm9TdWNoRWxl
bWVudEV4Y2VwdGlvbikKK2RlZiB0ZXN0X0ZpbmRpbmdfTXVsdGlwbGVfRWxlbWVudHNfQnlfRW1w
dHlfTmFtZV9TaG91bGRfUmV0dXJuX0VtcHR5X0xpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVt
ZW50cyhCeS5OQU1FLCAiIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAwCisKKworZGVm
IHRlc3RfRmluZGluZ19BU2luZ2xlX0VsZW1lbnRfQnlfTmFtZV9XaXRoX1NwYWNlX1Nob3VsZF9U
aHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRy
aXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgIm5vbmV4aXN0ZW50IGJ1dHRvbiIpCisKKworZGVm
IHRlc3RfRmluZGluZ19NdWx0aXBsZV9FbGVtZW50c19CeV9OYW1lX1dpdGhfU3BhY2VfU2hvdWxk
X1JldHVybl9FbXB0eV9MaXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1Q
YWdlLmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuTkFNRSwg
Im5vbmV4aXN0ZW50IGJ1dHRvbiIpCisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykgPT0gMAorCisj
IEJ5LnRhZ19OYW1lIHBvc2l0aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmlu
ZF9BU2luZ2xlX0VsZW1lbnRfQnlfVGFnX05hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuVEFHX05BTUUsICJpbnB1dCIpCisgICAgYXNzZXJ0IGVsZW1lbnQudGFnX25hbWUubG93ZXIo
KSA9PSAiaW5wdXQiCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9NdWx0aXBs
ZV9FbGVtZW50c19CeV9UYWdfTmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LlRB
R19OQU1FLCAiaW5wdXQiKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID4gMQorCisjIEJ5LnRh
Z19OYW1lIG5lZ2F0aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX05vdF9CZV9BYmxlX1RvX0xvY2F0
ZV9CeV9UYWdfTmFtZV9BU2luZ2xlX0VsZW1lbnRfVGhhdF9Eb2VzX05vdF9FeGlzdChkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuVEFHX05BTUUsICJub25fRXhpc3RlbnRfQnV0dG9uIikKKworCitkZWYgdGVzdF9T
aG91bGRfTm90X0JlX0FibGVfVG9fTG9jYXRlX0J5X1RhZ19OYW1lX011bHRpcGxlX0VsZW1lbnRz
X1RoYXRfRG9fTm90X0V4aXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1Q
YWdlLmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuVEFHX05B
TUUsICJub25fRXhpc3RlbnRfQnV0dG9uIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAw
CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVn
cy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xNTQxJykKK0Bw
eXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK2RlZiB0ZXN0X0ZpbmRpbmdfQVNpbmdsZV9FbGVt
ZW50X0J5X0VtcHR5X1RhZ19OYW1lX1Nob3VsZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxp
ZFNlbGVjdG9yRXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdf
TkFNRSwgIiIpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J2h0
dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0x
NTQxJykKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK2RlZiB0ZXN0X0ZpbmRpbmdfTXVs
dGlwbGVfRWxlbWVudHNfQnlfRW1wdHlfVGFnX05hbWVfU2hvdWxkX1Rocm93KGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVt
ZW50cyhCeS5UQUdfTkFNRSwgIiIpCisKKworZGVmIHRlc3RfRmluZGluZ19BU2luZ2xlX0VsZW1l
bnRfQnlfVGFnX05hbWVfV2l0aF9TcGFjZV9TaG91bGRfVGhyb3coZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5v
U3VjaEVsZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRB
R19OQU1FLCAibm9uZXhpc3RlbnQgYnV0dG9uIikKKworCitkZWYgdGVzdF9GaW5kaW5nX011bHRp
cGxlX0VsZW1lbnRzX0J5X1RhZ19OYW1lX1dpdGhfU3BhY2VfU2hvdWxkX1JldHVybl9FbXB0eV9M
aXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAg
IGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuVEFHX05BTUUsICJub25leGlzdGVu
dCBidXR0b24iKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID09IDAKKworIyBCeS5jbGFzc19O
YW1lIHBvc2l0aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9BU2luZ2xl
X0VsZW1lbnRfQnlfQ2xhc3MoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxU
ZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNMQVNTX05B
TUUsICJleHRyYURpdiIpCisgICAgYXNzZXJ0ICJBbm90aGVyIGRpdiBzdGFydHMgaGVyZS4iIGlu
IGVsZW1lbnQudGV4dAorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfTXVsdGlw
bGVfRWxlbWVudHNfQnlfQ2xhc3NfTmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhC
eS5DTEFTU19OQU1FLCAibmFtZUMiKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID4gMQorCisK
K2RlZiB0ZXN0X1Nob3VsZF9GaW5kX0VsZW1lbnRfQnlfQ2xhc3NfV2hlbl9JdF9Jc19UaGVfRmly
c3RfTmFtZV9BbW9uZ19NYW55KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1s
VGVzdC5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5DTEFTU19O
QU1FLCAibmFtZUEiKQorICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gIkFuIEgyIHRpdGxlIgor
CisKK2RlZiB0ZXN0X1Nob3VsZF9GaW5kX0VsZW1lbnRfQnlfQ2xhc3NfV2hlbl9JdF9Jc19UaGVf
TGFzdF9OYW1lX0Ftb25nX01hbnkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0
bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNMQVNT
X05BTUUsICJuYW1lQyIpCisgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSAiQW4gSDIgdGl0bGUi
CisKKworZGVmIHRlc3RfU2hvdWxkX0ZpbmRfRWxlbWVudF9CeV9DbGFzc19XaGVuX0l0X0lzX0lu
X1RoZV9NaWRkbGVfQW1vbmdfTWFueShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4
aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuQ0xB
U1NfTkFNRSwgIm5hbWVCbm9pc2UiKQorICAgIGFzc2VydCBlbGVtZW50LnRleHQgPT0gIkFuIEgy
IHRpdGxlIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9GaW5kX0VsZW1lbnRfQnlfQ2xhc3NfV2hlbl9J
dHNfTmFtZV9Jc19TdXJyb3VuZGVkX0J5X1doaXRlc3BhY2UoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LkNMQVNTX05BTUUsICJzcGFjZUFyb3VuZCIpCisgICAgYXNzZXJ0IGVsZW1lbnQu
dGV4dCA9PSAiU3BhY2VkIG91dCIKKworCitkZWYgdGVzdF9TaG91bGRfRmluZF9FbGVtZW50c19C
eV9DbGFzc19XaGVuX0l0c19OYW1lX0lzX1N1cnJvdW5kZWRfQnlfV2hpdGVzcGFjZShkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudHMg
PSBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5DTEFTU19OQU1FLCAic3BhY2VBcm91bmQiKQorICAg
IGFzc2VydCBsZW4oZWxlbWVudHMpID09IDEKKyAgICBhc3NlcnQgZWxlbWVudHNbMF0udGV4dCA9
PSAiU3BhY2VkIG91dCIKKworIyBCeS5jbGFzc19OYW1lIG5lZ2F0aXZlCisKKworZGVmIHRlc3Rf
U2hvdWxkX05vdF9GaW5kX0VsZW1lbnRfQnlfQ2xhc3NfV2hlbl9UaGVfTmFtZV9RdWVyaWVkX0lz
X1Nob3J0ZXJfVGhhbl9DYW5kaWRhdGVfTmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1l
bnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNMQVNTX05BTUUs
ICJuYW1lX0IiKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2VzPU5vU3Vj
aFdpbmRvd0V4Y2VwdGlvbikKK2RlZiB0ZXN0X0ZpbmRpbmdfQVNpbmdsZV9FbGVtZW50X0J5X0Vt
cHR5X0NsYXNzX05hbWVfU2hvdWxkX1Rocm93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVu
dEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuQ0xBU1NfTkFNRSwg
IiIpCisKKworZGVmIHRlc3RfRmluZGluZ19NdWx0aXBsZV9FbGVtZW50c19CeV9FbXB0eV9DbGFz
c19OYW1lX1Nob3VsZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRt
bFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRp
b24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5DTEFTU19OQU1FLCAiIikKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24p
CitkZWYgdGVzdF9GaW5kaW5nX0FTaW5nbGVfRWxlbWVudF9CeV9Db21wb3VuZF9DbGFzc19OYW1l
X1Nob3VsZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3Qu
aHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgor
ICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNMQVNTX05BTUUsICJhIGIiKQorCisKK0Bw
eXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2VzPUludmFsaWRFbGVtZW50U3RhdGVFeGNl
cHRpb24pCitkZWYgdGVzdF9GaW5kaW5nX0FTaW5nbGVfRWxlbWVudF9CeV9JbnZhbGlkX0NsYXNz
X05hbWVfU2hvdWxkX1Rocm93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1s
VGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlv
bik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuQ0xBU1NfTkFNRSwgIiFAIyQlXiYq
IikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1JbnZhbGlkRWxlbWVu
dFN0YXRlRXhjZXB0aW9uKQorZGVmIHRlc3RfRmluZGluZ19NdWx0aXBsZV9FbGVtZW50c19CeV9J
bnZhbGlkX0NsYXNzX05hbWVfU2hvdWxkX1Rocm93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxl
bWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LkNMQVNTX05B
TUUsICIhQCMkJV4mKiIpCisKKyMgQnkueHBhdGggcG9zaXRpdmUKKworCitkZWYgdGVzdF9TaG91
bGRfQmVfQWJsZV9Ub19GaW5kX0FTaW5nbGVfRWxlbWVudF9CeV9YUGF0aChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL2gxIikKKyAgICBhc3NlcnQgZWxlbWVudC50ZXh0
ID09ICJYSFRNTCBNaWdodCBCZSBUaGUgRnV0dXJlIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9B
YmxlX1RvX0ZpbmRfTXVsdGlwbGVfRWxlbWVudHNfQnlfWFBhdGgoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZp
bmRfZWxlbWVudHMoQnkuWFBBVEgsICIvL2RpdiIpCisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykg
PT0gMTMKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX01hbnlfRWxlbWVudHNf
UmVwZWF0ZWRseV9CeV9YUGF0aChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRt
bFRlc3QuaHRtbCIpCisgICAgeHBhdGggPSAiLy9ub2RlKClbY29udGFpbnMoQGlkLCdpZCcpXSIK
KyAgICBhc3NlcnQgbGVuKGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LlhQQVRILCB4cGF0aCkpID09
IDMKKworICAgIHhwYXRoID0gIi8vbm9kZSgpW2NvbnRhaW5zKEBpZCwnbm9wZScpXSIKKyAgICBh
c3NlcnQgbGVuKGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LlhQQVRILCB4cGF0aCkpID09IDAKKwor
CitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19JZGVudGlmeV9FbGVtZW50c19CeV9DbGFzcyhk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgaGVh
ZGVyID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8vaDFbQGNsYXNzPSdoZWFkZXIn
XSIpCisgICAgYXNzZXJ0IGhlYWRlci50ZXh0ID09ICJYSFRNTCBNaWdodCBCZSBUaGUgRnV0dXJl
IgorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfQW5fRWxlbWVudF9CeV9YUGF0
aF9XaXRoX011bHRpcGxlX0F0dHJpYnV0ZXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoCisg
ICAgICAgIEJ5LlhQQVRILCAiLy9mb3JtW0BuYW1lPSdvcHRpb25hbCddL2lucHV0W0B0eXBlPSdz
dWJtaXQnIGFuZCBAdmFsdWU9J0NsaWNrISddIikKKyAgICBhc3NlcnQgZWxlbWVudC50YWdfbmFt
ZS5sb3dlcigpID09ICJpbnB1dCIKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2
YWx1ZSIpID09ICJDbGljayEiCisKKworZGVmIHRlc3RfRmluZGluZ19BTGlua19CeV9YcGF0aF9T
aG91bGRfTG9jYXRlX0FuX0VsZW1lbnRfV2l0aF9UaGVfR2l2ZW5fVGV4dChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL2FbdGV4dCgpPSdjbGljayBtZSddIikKKyAgICBh
c3NlcnQgZWxlbWVudC50ZXh0ID09ICJjbGljayBtZSIKKworCitkZWYgdGVzdF9GaW5kaW5nX0FM
aW5rX0J5X1hwYXRoX1VzaW5nX0NvbnRhaW5zX0tleXdvcmRfU2hvdWxkX1dvcmsoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgZWxlbWVu
dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIvL2FbY29udGFpbnMoLiwnaGVsbG8g
d29ybGQnKV0iKQorICAgIGFzc2VydCAiaGVsbG8gd29ybGQiIGluIGVsZW1lbnQudGV4dAorCisK
K0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPUludmFsaWRTZWxlY3RvckV4Y2VwdGlv
bikKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JFeGNl
cHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1JbnZhbGlkU2VsZWN0b3JF
eGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZShyYWlzZXM9V2ViRHJpdmVy
RXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9SW52YWxpZFNl
bGVjdG9yRXhjZXB0aW9uKQorQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9Tm9TdWNo
RWxlbWVudEV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF93ZWJraXRndGsocmFpc2VzPUlu
dmFsaWRTZWxlY3RvckV4Y2VwdGlvbikKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRf
RWxlbWVudF9CeV9YUGF0aF9XaXRoX05hbWVzcGFjZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJzdmdQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
KEJ5LlhQQVRILCAiLy9zdmc6c3ZnLy9zdmc6dGV4dCIpCisgICAgYXNzZXJ0IGVsZW1lbnQudGV4
dCA9PSAiVGVzdCBDaGFydCIKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0Vs
ZW1lbnRfQnlfWFBhdGhfSW5fWG1sX0RvY3VtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInNpbXBsZS54bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LlhQQVRILCAiLy9mb28iKQorICAgIGFzc2VydCAiYmF6IiBpbiBlbGVtZW50LnRleHQKKworIyBC
eS54cGF0aCBuZWdhdGl2ZQorCisKK2RlZiB0ZXN0X1Nob3VsZF9UaHJvd19Bbl9FeGNlcHRpb25f
V2hlbl9UaGVyZV9Jc19Ob19MaW5rX1RvX0NsaWNrKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxl
bWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICIv
L2FbQGlkPSdOb3QgaGVyZSddIikKKworCitkZWYgdGVzdF9TaG91bGRfVGhyb3dfSW52YWxpZFNl
bGVjdG9yRXhjZXB0aW9uX1doZW5fWFBhdGhfSXNfU3ludGFjdGljYWxseV9JbnZhbGlkX0luX0Ry
aXZlcl9GaW5kX0VsZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBh
Z2UuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRTZWxlY3RvckV4Y2VwdGlv
bik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuWFBBVEgsICJ0aGlzXVtpc25vdF1b
dmFsaWQiKQorCisKK2RlZiB0ZXN0X1Nob3VsZF9UaHJvd19JbnZhbGlkU2VsZWN0b3JFeGNlcHRp
b25fV2hlbl9YUGF0aF9Jc19TeW50YWN0aWNhbGx5X0ludmFsaWRfSW5fRHJpdmVyX0ZpbmRfRWxl
bWVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRTZWxlY3RvckV4Y2VwdGlvbik6CisgICAgICAg
IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LlhQQVRILCAidGhpc11baXNub3RdW3ZhbGlkIikKKwor
CitkZWYgdGVzdF9TaG91bGRfVGhyb3dfSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uX1doZW5fWFBh
dGhfSXNfU3ludGFjdGljYWxseV9JbnZhbGlkX0luX0VsZW1lbnRfRmluZF9FbGVtZW50KGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGJvZHkgPSBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5LlRBR19OQU1FLCAiYm9keSIpCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKEludmFsaWRTZWxlY3RvckV4Y2VwdGlvbik6CisgICAgICAgIGJvZHkuZmluZF9lbGVt
ZW50KEJ5LlhQQVRILCAidGhpc11baXNub3RdW3ZhbGlkIikKKworCitkZWYgdGVzdF9TaG91bGRf
VGhyb3dfSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uX1doZW5fWFBhdGhfSXNfU3ludGFjdGljYWxs
eV9JbnZhbGlkX0luX0VsZW1lbnRfRmluZF9FbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dChCeS5UQUdfTkFNRSwgImJvZHkiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkU2Vs
ZWN0b3JFeGNlcHRpb24pOgorICAgICAgICBib2R5LmZpbmRfZWxlbWVudHMoQnkuWFBBVEgsICJ0
aGlzXVtpc25vdF1bdmFsaWQiKQorCisKK2RlZiB0ZXN0X1Nob3VsZF9UaHJvd19JbnZhbGlkU2Vs
ZWN0b3JFeGNlcHRpb25fV2hlbl9YUGF0aF9SZXR1cm5zX1dyb25nX1R5cGVfSW5fRHJpdmVyX0Zp
bmRfRWxlbWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1s
IikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uKToKKyAg
ICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgImNvdW50KC8vaW5wdXQpIikKKwor
CitkZWYgdGVzdF9TaG91bGRfVGhyb3dfSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uX1doZW5fWFBh
dGhfUmV0dXJuc19Xcm9uZ19UeXBlX0luX0RyaXZlcl9GaW5kX0VsZW1lbnRzKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVt
ZW50cyhCeS5YUEFUSCwgImNvdW50KC8vaW5wdXQpIikKKworCitkZWYgdGVzdF9TaG91bGRfVGhy
b3dfSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uX1doZW5fWFBhdGhfUmV0dXJuc19Xcm9uZ19UeXBl
X0luX0VsZW1lbnRfRmluZF9FbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
ImZvcm1QYWdlLmh0bWwiKQorICAgIGJvZHkgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRBR19O
QU1FLCAiYm9keSIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRTZWxlY3RvckV4Y2Vw
dGlvbik6CisgICAgICAgIGJvZHkuZmluZF9lbGVtZW50KEJ5LlhQQVRILCAiY291bnQoLy9pbnB1
dCkiKQorCisKK2RlZiB0ZXN0X1Nob3VsZF9UaHJvd19JbnZhbGlkU2VsZWN0b3JFeGNlcHRpb25f
V2hlbl9YUGF0aF9SZXR1cm5zX1dyb25nX1R5cGVfSW5fRWxlbWVudF9GaW5kX0VsZW1lbnRzKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGJvZHkg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRBR19OQU1FLCAiYm9keSIpCisgICAgd2l0aCBweXRl
c3QucmFpc2VzKEludmFsaWRTZWxlY3RvckV4Y2VwdGlvbik6CisgICAgICAgIGJvZHkuZmluZF9l
bGVtZW50cyhCeS5YUEFUSCwgImNvdW50KC8vaW5wdXQpIikKKworIyBCeS5jc3NfU2VsZWN0b3Ig
cG9zaXRpdmUKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0FTaW5nbGVfRWxl
bWVudF9CeV9Dc3NfU2VsZWN0b3IoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0
bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNTU19T
RUxFQ1RPUiwgImRpdi5jb250ZW50IikKKyAgICBhc3NlcnQgZWxlbWVudC50YWdfbmFtZS5sb3dl
cigpID09ICJkaXYiCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgiY2xhc3MiKSA9
PSAiY29udGVudCIKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX011bHRpcGxl
X0VsZW1lbnRzX0J5X0Nzc19TZWxlY3Rvcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhC
eS5DU1NfU0VMRUNUT1IsICJwIikKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA+IDEKKworCitk
ZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0FTaW5nbGVfRWxlbWVudF9CeV9Db21wb3Vu
ZF9Dc3NfU2VsZWN0b3IoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0
Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNTU19TRUxFQ1RP
UiwgImRpdi5leHRyYURpdiwgZGl2LmNvbnRlbnQiKQorICAgIGFzc2VydCBlbGVtZW50LnRhZ19u
YW1lLmxvd2VyKCkgPT0gImRpdiIKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJj
bGFzcyIpID09ICJjb250ZW50IgorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRf
TXVsdGlwbGVfRWxlbWVudHNfQnlfQ29tcG91bmRfQ3NzX1NlbGVjdG9yKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVtZW50cyA9IGRyaXZl
ci5maW5kX2VsZW1lbnRzKEJ5LkNTU19TRUxFQ1RPUiwgImRpdi5leHRyYURpdiwgZGl2LmNvbnRl
bnQiKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID4gMQorICAgIGFzc2VydCBlbGVtZW50c1sw
XS5nZXRfYXR0cmlidXRlKCJjbGFzcyIpID09ICJjb250ZW50IgorICAgIGFzc2VydCBlbGVtZW50
c1sxXS5nZXRfYXR0cmlidXRlKCJjbGFzcyIpID09ICJleHRyYURpdiIKKworCitkZWYgdGVzdF9T
aG91bGRfQmVfQWJsZV9Ub19GaW5kX0FuX0VsZW1lbnRfQnlfQm9vbGVhbl9BdHRyaWJ1dGVfVXNp
bmdfQ3NzX1NlbGVjdG9yKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImxvY2F0b3Jz
X3Rlc3RzL2Jvb2xlYW5fYXR0cmlidXRlX3NlbGVjdGVkLmh0bWwiKQorICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5LkNTU19TRUxFQ1RPUiwgIm9wdGlvbltzZWxlY3RlZD0nc2Vs
ZWN0ZWQnXSIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAi
dHdvIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfQW5fRWxlbWVudF9CeV9C
b29sZWFuX0F0dHJpYnV0ZV9Vc2luZ19TaG9ydF9Dc3NfU2VsZWN0b3IoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgibG9jYXRvcnNfdGVzdHMvYm9vbGVhbl9hdHRyaWJ1dGVfc2VsZWN0
ZWQuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuQ1NTX1NFTEVD
VE9SLCAib3B0aW9uW3NlbGVjdGVkXSIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0
ZSgidmFsdWUiKSA9PSAidHdvIgorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRf
QW5fRWxlbWVudF9CeV9Cb29sZWFuX0F0dHJpYnV0ZV9Vc2luZ19TaG9ydF9Dc3NfU2VsZWN0b3Jf
T25fSHRtbDRQYWdlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImxvY2F0b3JzX3Rl
c3RzL2Jvb2xlYW5fYXR0cmlidXRlX3NlbGVjdGVkX2h0bWw0Lmh0bWwiKQorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkNTU19TRUxFQ1RPUiwgIm9wdGlvbltzZWxlY3RlZF0i
KQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gInR3byIKKwor
IyBCeS5jc3NfU2VsZWN0b3IgbmVnYXRpdmUKKworCitkZWYgdGVzdF9TaG91bGRfTm90X0ZpbmRf
RWxlbWVudF9CeV9Dc3NfU2VsZWN0b3JfV2hlbl9UaGVyZV9Jc19Ob19TdWNoX0VsZW1lbnQoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5DU1NfU0VMRUNUT1IsICIudGhlcmUtaXMtbm8tc3VjaC1jbGFzcyIpCisK
KworZGVmIHRlc3RfU2hvdWxkX05vdF9GaW5kX0VsZW1lbnRzX0J5X0Nzc19TZWxlY3Rvcl9XaGVu
X1RoZXJlX0lzX05vX1N1Y2hfRWxlbWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhC
eS5DU1NfU0VMRUNUT1IsICIudGhlcmUtaXMtbm8tc3VjaC1jbGFzcyIpCisgICAgYXNzZXJ0IGxl
bihlbGVtZW50cykgPT0gMAorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2Vz
PU5vU3VjaFdpbmRvd0V4Y2VwdGlvbikKK2RlZiB0ZXN0X0ZpbmRpbmdfQVNpbmdsZV9FbGVtZW50
X0J5X0VtcHR5X0Nzc19TZWxlY3Rvcl9TaG91bGRfVGhyb3coZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1
Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5DU1Nf
U0VMRUNUT1IsICIiKQorCisKK2RlZiB0ZXN0X0ZpbmRpbmdfTXVsdGlwbGVfRWxlbWVudHNfQnlf
RW1wdHlfQ3NzX1NlbGVjdG9yX1Nob3VsZF9UaHJvdyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVs
ZW1lbnRFeGNlcHRpb24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5DU1NfU0VM
RUNUT1IsICIiKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMocmFpc2VzPUludmFs
aWRFbGVtZW50U3RhdGVFeGNlcHRpb24pCitkZWYgdGVzdF9GaW5kaW5nX0FTaW5nbGVfRWxlbWVu
dF9CeV9JbnZhbGlkX0Nzc19TZWxlY3Rvcl9TaG91bGRfVGhyb3coZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhO
b1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5D
U1NfU0VMRUNUT1IsICIvL2EvYi9jW0BpZD0nMSddIikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxf
cGhhbnRvbWpzKHJhaXNlcz1JbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKQorZGVmIHRlc3Rf
RmluZGluZ19NdWx0aXBsZV9FbGVtZW50c19CeV9JbnZhbGlkX0Nzc19TZWxlY3Rvcl9TaG91bGRf
VGhyb3coZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAg
ZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuQ1NTX1NFTEVDVE9SLCAiLy9hL2IvY1tAaWQ9JzEnXSIp
CisKKyMgQnkubGlua19UZXh0IHBvc2l0aXZlCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVf
VG9fRmluZF9BTGlua19CeV9UZXh0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInho
dG1sVGVzdC5odG1sIikKKyAgICBsaW5rID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5MSU5LX1RF
WFQsICJjbGljayBtZSIpCisgICAgYXNzZXJ0IGxpbmsudGV4dCA9PSAiY2xpY2sgbWUiCisKKwor
ZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmluZF9NdWx0aXBsZV9MaW5rc19CeV9UZXh0KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBlbGVt
ZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzKEJ5LkxJTktfVEVYVCwgImNsaWNrIG1lIikKKyAg
ICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9PSAyCisKKworZGVmIHRlc3RfU2hvdWxkX0ZpbmRfRWxl
bWVudF9CeV9MaW5rX1RleHRfQ29udGFpbmluZ19FcXVhbHNfU2lnbihkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuTElOS19URVhULCAiTGluaz1lcXVhbHNzaWduIikKKyAgICBhc3NlcnQg
ZWxlbWVudC5nZXRfYXR0cmlidXRlKCJpZCIpID09ICJsaW5rV2l0aEVxdWFsc1NpZ24iCisKKwor
ZGVmIHRlc3RfU2hvdWxkX0ZpbmRfTXVsdGlwbGVfRWxlbWVudHNfQnlfTGlua19UZXh0X0NvbnRh
aW5pbmdfRXF1YWxzX1NpZ24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxU
ZXN0Lmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuTElOS19U
RVhULCAiTGluaz1lcXVhbHNzaWduIikKKyAgICBhc3NlcnQgMSA9PSBsZW4oZWxlbWVudHMpCisg
ICAgYXNzZXJ0IGVsZW1lbnRzWzBdLmdldF9hdHRyaWJ1dGUoImlkIikgPT0gImxpbmtXaXRoRXF1
YWxzU2lnbiIKKworCitkZWYgdGVzdF9maW5kc19CeV9MaW5rX1RleHRfT25fWGh0bWxfUGFnZShk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhY3R1YWxYaHRtbFBhZ2UueGh0bWwiKQor
ICAgIGxpbmtfVGV4dCA9ICJGb28iCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuTElOS19URVhULCBsaW5rX1RleHQpCisgICAgYXNzZXJ0IGVsZW1lbnQudGV4dCA9PSBsaW5r
X1RleHQKKworCitkZWYgdGVzdF9MaW5rX1dpdGhfRm9ybWF0dGluZ19UYWdzKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZWxlbSA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuSUQsICJsaW5rcyIpCisKKyAgICByZXMgPSBlbGVtLmZpbmRfZWxl
bWVudChCeS5QQVJUSUFMX0xJTktfVEVYVCwgImxpbmsgd2l0aCBmb3JtYXR0aW5nIHRhZ3MiKQor
ICAgIGFzc2VydCByZXMudGV4dCA9PSAibGluayB3aXRoIGZvcm1hdHRpbmcgdGFncyIKKworCitk
ZWYgdGVzdF9Ecml2ZXJfQ2FuX0dldF9MaW5rX0J5X0xpbmtfVGVzdF9JZ25vcmluZ19UcmFpbGlu
Z19XaGl0ZXNwYWNlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3Qu
aHRtbCIpCisgICAgbGluayA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTElOS19URVhULCAibGlu
ayB3aXRoIHRyYWlsaW5nIHNwYWNlIikKKyAgICBhc3NlcnQgbGluay5nZXRfYXR0cmlidXRlKCJp
ZCIpID09ICJsaW5rV2l0aFRyYWlsaW5nU3BhY2UiCisgICAgYXNzZXJ0IGxpbmsudGV4dCA9PSAi
bGluayB3aXRoIHRyYWlsaW5nIHNwYWNlIgorCisjIEJ5LmxpbmtfVGV4dCBuZWdhdGl2ZQorCisK
K2RlZiB0ZXN0X1Nob3VsZF9Ob3RfQmVfQWJsZV9Ub19Mb2NhdGVfQnlfTGlua19UZXh0X0FTaW5n
bGVfRWxlbWVudF9UaGF0X0RvZXNfTm90X0V4aXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxl
bWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTElOS19URVhU
LCAiTm90IGhlcmUgZWl0aGVyIikKKworCitkZWYgdGVzdF9TaG91bGRfTm90X0JlX0FibGVfVG9f
TG9jYXRlX0J5X0xpbmtfVGV4dF9NdWx0aXBsZV9FbGVtZW50c19UaGF0X0RvX05vdF9FeGlzdChk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxl
bWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50cyhCeS5MSU5LX1RFWFQsICJOb3QgaGVyZSBlaXRo
ZXIiKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID09IDAKKworIyBCeS5wYXJ0aWFsX0xpbmtf
VGV4dCBwb3NpdGl2ZQorCisKK2RlZiB0ZXN0X1Nob3VsZF9CZV9BYmxlX1RvX0ZpbmRfTXVsdGlw
bGVfRWxlbWVudHNfQnlfUGFydGlhbF9MaW5rX1RleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxl
bWVudHMoQnkuUEFSVElBTF9MSU5LX1RFWFQsICJpY2sgbWUiKQorICAgIGFzc2VydCBsZW4oZWxl
bWVudHMpID09IDIKKworCitkZWYgdGVzdF9TaG91bGRfQmVfQWJsZV9Ub19GaW5kX0FTaW5nbGVf
RWxlbWVudF9CeV9QYXJ0aWFsX0xpbmtfVGV4dChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuUEFSVElBTF9MSU5LX1RFWFQsICJhbm9uIikKKyAgICBhc3NlcnQgImFub24iIGluIGVsZW1l
bnQudGV4dAorCisKK2RlZiB0ZXN0X1Nob3VsZF9GaW5kX0VsZW1lbnRfQnlfUGFydGlhbF9MaW5r
X1RleHRfQ29udGFpbmluZ19FcXVhbHNfU2lnbihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuUEFSVElBTF9MSU5LX1RFWFQsICJMaW5rPSIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0
dHJpYnV0ZSgiaWQiKSA9PSAibGlua1dpdGhFcXVhbHNTaWduIgorCisKK2RlZiB0ZXN0X1Nob3Vs
ZF9GaW5kX011bHRpcGxlX0VsZW1lbnRzX0J5X1BhcnRpYWxfTGlua19UZXh0X0NvbnRhaW5pbmdf
RXF1YWxzX1NpZ24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0
bWwiKQorICAgIGVsZW1lbnRzID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuUEFSVElBTF9MSU5L
X1RFWFQsICJMaW5rPSIpCisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykgPT0gMQorICAgIGFzc2Vy
dCBlbGVtZW50c1swXS5nZXRfYXR0cmlidXRlKCJpZCIpID09ICJsaW5rV2l0aEVxdWFsc1NpZ24i
CisKKyMgTWlzYyB0ZXN0cworCisKK2RlZiB0ZXN0X0RyaXZlcl9TaG91bGRfQmVfQWJsZV9Ub19G
aW5kX0VsZW1lbnRzX0FmdGVyX0xvYWRpbmdfTW9yZV9UaGFuX09uZV9QYWdlX0F0X0FUaW1lKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHBhZ2Vz
LmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBsaW5rID0gZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5MSU5LX1RFWFQsICJjbGljayBtZSIpCisgICAgYXNzZXJ0IGxpbmsudGV4dCA9PSAiY2xpY2sg
bWUiCisKKyMgWW91IGRvbid0IHdhbnQgdG8gYXNrIHdoeSB0aGlzIGlzIGhlcmUKKworCitkZWYg
dGVzdF9XaGVuX0ZpbmRpbmdfQnlfTmFtZV9TaG91bGRfTm90X1JldHVybl9CeV9JZChkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsICJpZC1uYW1lMSIpCisgICAgYXNzZXJ0IGVs
ZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAibmFtZSIKKworICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWQtbmFtZTEiKQorICAgIGFzc2VydCBlbGVtZW50
LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImlkIgorCisgICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoQnkuTkFNRSwgImlkLW5hbWUyIikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRf
YXR0cmlidXRlKCJ2YWx1ZSIpID09ICJuYW1lIgorCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuSUQsICJpZC1uYW1lMiIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJp
YnV0ZSgidmFsdWUiKSA9PSAiaWQiCisKKworZGVmIHRlc3RfU2hvdWxkX0JlX0FibGVfVG9fRmlu
ZF9BSGlkZGVuX0VsZW1lbnRzX0J5X05hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnku
TkFNRSwgImhpZGRlbiIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgibmFtZSIp
ID09ICJoaWRkZW4iCisKKworZGVmIHRlc3RfU2hvdWxkX05vdF9CZV9BYmxlX1RvX0ZpbmRfQW5f
RWxlbWVudF9Pbl9BQmxhbmtfUGFnZShkcml2ZXIsIHBhZ2VzKToKKyAgICBkcml2ZXIuZ2V0KCJh
Ym91dDpibGFuayIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRp
b24pOgorICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRBR19OQU1FLCAiYSIpCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vZWxlbWVudF9hdHRyaWJ1dGVfdGVzdHMucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
ZWxlbWVudF9hdHRyaWJ1dGVfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjQ2M2UwMmE3Yzk0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2VsZW1l
bnRfYXR0cmlidXRlX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMjc0IEBACisjIExpY2Vuc2VkIHRvIHRo
ZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3Jl
IGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMg
ZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMg
cmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmls
ZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisj
ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5
dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBXZWJEcml2ZXJF
eGNlcHRpb24KKworCitkZWYgdGVzdFNob3VsZFJldHVybk51bGxXaGVuR2V0dGluZ1RoZVZhbHVl
T2ZBbkF0dHJpYnV0ZVRoYXRJc05vdExpc3RlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGhlYWQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X3hwYXRoKCIvaHRtbCIpCisgICAgYXR0cmlidXRlID0gaGVhZC5nZXRfYXR0cmlidXRlKCJjaGVl
c2UiKQorICAgIGFzc2VydCBhdHRyaWJ1dGUgaXMgTm9uZQorCisKK2RlZiB0ZXN0U2hvdWxkUmV0
dXJuTnVsbFdoZW5HZXR0aW5nU3JjQXR0cmlidXRlT2ZJbnZhbGlkSW1nVGFnKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgaW1nID0gZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV9pZCgiaW52YWxpZEltZ1RhZyIpCisgICAgaW1nX2F0dHIgPSBpbWcu
Z2V0X2F0dHJpYnV0ZSgic3JjIikKKyAgICBhc3NlcnQgaW1nX2F0dHIgaXMgTm9uZQorCisKK2Rl
ZiB0ZXN0U2hvdWxkUmV0dXJuQW5BYnNvbHV0ZVVybFdoZW5HZXR0aW5nU3JjQXR0cmlidXRlT2ZB
VmFsaWRJbWdUYWcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5o
dG1sIikKKyAgICBpbWcgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJ2YWxpZEltZ1RhZyIp
CisgICAgaW1nX2F0dHIgPSBpbWcuZ2V0X2F0dHJpYnV0ZSgic3JjIikKKyAgICBhc3NlcnQgImlj
b24uZ2lmIiBpbiBpbWdfYXR0cgorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuQW5BYnNvbHV0ZVVy
bFdoZW5HZXR0aW5nSHJlZkF0dHJpYnV0ZU9mQVZhbGlkQW5jaG9yVGFnKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgaW1nID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgidmFsaWRBbmNob3JUYWciKQorICAgIGltZ19hdHRyID0gaW1nLmdl
dF9hdHRyaWJ1dGUoImhyZWYiKQorICAgIGFzc2VydCAiaWNvbi5naWYiIGluIGltZ19hdHRyCisK
KworZGVmIHRlc3RTaG91bGRSZXR1cm5FbXB0eUF0dHJpYnV0ZVZhbHVlc1doZW5QcmVzZW50QW5k
VGhlVmFsdWVJc0FjdHVhbGx5RW1wdHkoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
c2ltcGxlVGVzdC5odG1sIikKKyAgICBib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0
aCgiLy9ib2R5IikKKyAgICBhc3NlcnQgIiIgPT0gYm9keS5nZXRfYXR0cmlidXRlKCJzdHlsZSIp
CisKKworZGVmIHRlc3RTaG91bGRSZXR1cm5UaGVWYWx1ZU9mVGhlRGlzYWJsZWRBdHRyaWJ1dGVB
c0ZhbHNlSWZOb3RTZXQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2Uu
aHRtbCIpCisgICAgaW5wdXRFbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgi
Ly9pbnB1dFtAaWQ9J3dvcmtpbmcnXSIpCisgICAgYXNzZXJ0IGlucHV0RWxlbWVudC5nZXRfYXR0
cmlidXRlKCJkaXNhYmxlZCIpIGlzIE5vbmUKKyAgICBhc3NlcnQgaW5wdXRFbGVtZW50LmlzX2Vu
YWJsZWQoKQorCisgICAgcEVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJwZWFz
IikKKyAgICBhc3NlcnQgcEVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgiZGlzYWJsZWQiKSBpcyBOb25l
CisgICAgYXNzZXJ0IHBFbGVtZW50LmlzX2VuYWJsZWQoKQorCisKK2RlZiB0ZXN0U2hvdWxkUmV0
dXJuVGhlVmFsdWVPZlRoZUluZGV4QXR0cmJ1dGVFdmVuSWZJdElzTWlzc2luZyhkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBtdWx0aVNlbGVjdCA9
IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIm11bHRpIikKKyAgICBvcHRpb25zID0gbXVsdGlT
ZWxlY3QuZmluZF9lbGVtZW50c19ieV90YWdfbmFtZSgib3B0aW9uIikKKyAgICBhc3NlcnQgIjEi
ID09IG9wdGlvbnNbMV0uZ2V0X2F0dHJpYnV0ZSgiaW5kZXgiKQorCisKK2RlZiB0ZXN0U2hvdWxk
SW5kaWNhdGVUaGVFbGVtZW50c1RoYXRBcmVEaXNhYmxlZEFyZU5vdGlzX2VuYWJsZWQoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgaW5wdXRFbGVt
ZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiLy9pbnB1dFtAaWQ9J25vdFdvcmtp
bmcnXSIpCisgICAgYXNzZXJ0IG5vdCBpbnB1dEVsZW1lbnQuaXNfZW5hYmxlZCgpCisKKyAgICBp
bnB1dEVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2lucHV0W0BpZD0n
d29ya2luZyddIikKKyAgICBhc3NlcnQgaW5wdXRFbGVtZW50LmlzX2VuYWJsZWQoKQorCisKK2Rl
ZiB0ZXN0RWxlbWVudHNTaG91bGRCZURpc2FibGVkSWZUaGV5QXJlRGlzYWJsZWRVc2luZ1JhbmRv
bURpc2FibGVkU3RyaW5ncyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKyAgICBkaXNhYmxlZFRleHRFbGVtZW50MSA9IGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoImRpc2FibGVkVGV4dEVsZW1lbnQxIikKKyAgICBhc3NlcnQgbm90IGRpc2FibGVkVGV4
dEVsZW1lbnQxLmlzX2VuYWJsZWQoKQorCisgICAgZGlzYWJsZWRUZXh0RWxlbWVudDIgPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkaXNhYmxlZFRleHRFbGVtZW50MiIpCisgICAgYXNzZXJ0
IG5vdCBkaXNhYmxlZFRleHRFbGVtZW50Mi5pc19lbmFibGVkKCkKKworICAgIGRpc2FibGVkU3Vi
bWl0RWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRpc2FibGVkU3VibWl0RWxl
bWVudCIpCisgICAgYXNzZXJ0IG5vdCBkaXNhYmxlZFN1Ym1pdEVsZW1lbnQuaXNfZW5hYmxlZCgp
CisKKworZGVmIHRlc3RTaG91bGRJbmRpY2F0ZVdoZW5BVGV4dEFyZWFJc0Rpc2FibGVkKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHRleHRBcmVh
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiLy90ZXh0YXJlYVtAaWQ9J25vdFdvcmtp
bmdBcmVhJ10iKQorICAgIGFzc2VydCBub3QgdGV4dEFyZWEuaXNfZW5hYmxlZCgpCisKKworQHB5
dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxh
Lm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5MjM0JykKK2RlZiB0ZXN0U2hvdWxkVGhy
b3dFeGNlcHRpb25JZlNlbmRpbmdLZXlzVG9FbGVtZW50RGlzYWJsZWRVc2luZ1JhbmRvbURpc2Fi
bGVkU3RyaW5ncyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1s
IikKKyAgICBkaXNhYmxlZFRleHRFbGVtZW50MSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
ImRpc2FibGVkVGV4dEVsZW1lbnQxIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoV2ViRHJpdmVy
RXhjZXB0aW9uKToKKyAgICAgICAgZGlzYWJsZWRUZXh0RWxlbWVudDEuc2VuZF9rZXlzKCJmb28i
KQorICAgIGFzc2VydCAiIiA9PSBkaXNhYmxlZFRleHRFbGVtZW50MS50ZXh0CisKKyAgICBkaXNh
YmxlZFRleHRFbGVtZW50MiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRpc2FibGVkVGV4
dEVsZW1lbnQyIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoV2ViRHJpdmVyRXhjZXB0aW9uKToK
KyAgICAgICAgZGlzYWJsZWRUZXh0RWxlbWVudDIuc2VuZF9rZXlzKCJiYXIiKQorICAgIGFzc2Vy
dCAiIiA9PSBkaXNhYmxlZFRleHRFbGVtZW50Mi50ZXh0CisKKworZGVmIHRlc3RTaG91bGRJbmRp
Y2F0ZVdoZW5BU2VsZWN0SXNEaXNhYmxlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJmb3JtUGFnZS5odG1sIikKKyAgICBlbmFibGVkID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9u
YW1lKCJzZWxlY3RvbWF0aWMiKQorICAgIGRpc2FibGVkID0gZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9uYW1lKCJuby1zZWxlY3QiKQorCisgICAgYXNzZXJ0IGVuYWJsZWQuaXNfZW5hYmxlZCgpCisg
ICAgYXNzZXJ0IG5vdCBkaXNhYmxlZC5pc19lbmFibGVkKCkKKworCitkZWYgdGVzdFNob3VsZFJl
dHVyblRoZVZhbHVlT2ZDaGVja2VkRm9yQUNoZWNrYm94RXZlbklmSXRMYWNrc1RoYXRBdHRyaWJ1
dGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAg
Y2hlY2tib3ggPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2lucHV0W0BpZD0nY2hl
Y2t5J10iKQorICAgIGFzc2VydCBjaGVja2JveC5nZXRfYXR0cmlidXRlKCJjaGVja2VkIikgaXMg
Tm9uZQorICAgIGNoZWNrYm94LmNsaWNrKCkKKyAgICBhc3NlcnQgInRydWUiID09IGNoZWNrYm94
LmdldF9hdHRyaWJ1dGUoImNoZWNrZWQiKQorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuVGhlVmFs
dWVPZlNlbGVjdGVkRm9yUmFkaW9CdXR0b25zRXZlbklmVGhleUxhY2tUaGF0QXR0cmlidXRlKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIG5ldmVy
U2VsZWN0ZWQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjaGVlc2UiKQorICAgIGluaXRp
YWxseU5vdFNlbGVjdGVkID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicGVhcyIpCisgICAg
aW5pdGlhbGx5U2VsZWN0ZWQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjaGVlc2VfYW5k
X3BlYXMiKQorCisgICAgYXNzZXJ0IG5ldmVyU2VsZWN0ZWQuZ2V0X2F0dHJpYnV0ZSgiY2hlY2tl
ZCIpIGlzIE5vbmUKKyAgICBhc3NlcnQgaW5pdGlhbGx5Tm90U2VsZWN0ZWQuZ2V0X2F0dHJpYnV0
ZSgiY2hlY2tlZCIpIGlzIE5vbmUKKyAgICBhc3NlcnQgInRydWUiID09IGluaXRpYWxseVNlbGVj
dGVkLmdldF9hdHRyaWJ1dGUoImNoZWNrZWQiKQorCisgICAgaW5pdGlhbGx5Tm90U2VsZWN0ZWQu
Y2xpY2soKQorICAgIGFzc2VydCBuZXZlclNlbGVjdGVkLmdldF9hdHRyaWJ1dGUoInNlbGVjdGVk
IikgaXMgTm9uZQorICAgIGFzc2VydCAidHJ1ZSIgPT0gaW5pdGlhbGx5Tm90U2VsZWN0ZWQuZ2V0
X2F0dHJpYnV0ZSgiY2hlY2tlZCIpCisgICAgYXNzZXJ0IGluaXRpYWxseVNlbGVjdGVkLmdldF9h
dHRyaWJ1dGUoImNoZWNrZWQiKSBpcyBOb25lCisKKworZGVmIHRlc3RTaG91bGRSZXR1cm5UaGVW
YWx1ZU9mU2VsZWN0ZWRGb3JPcHRpb25zSW5TZWxlY3RzRXZlbklmVGhleUxhY2tUaGF0QXR0cmli
dXRlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAg
IHNlbGVjdEJveCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfeHBhdGgoIi8vc2VsZWN0W0BuYW1l
PSdzZWxlY3RvbWF0aWMnXSIpCisgICAgb3B0aW9ucyA9IHNlbGVjdEJveC5maW5kX2VsZW1lbnRz
X2J5X3RhZ19uYW1lKCJvcHRpb24iKQorICAgIG9uZSA9IG9wdGlvbnNbMF0KKyAgICB0d28gPSBv
cHRpb25zWzFdCisgICAgYXNzZXJ0IG9uZS5pc19zZWxlY3RlZCgpCisgICAgYXNzZXJ0IG5vdCB0
d28uaXNfc2VsZWN0ZWQoKQorICAgIGFzc2VydCAidHJ1ZSIgPT0gb25lLmdldF9hdHRyaWJ1dGUo
InNlbGVjdGVkIikKKyAgICBhc3NlcnQgdHdvLmdldF9hdHRyaWJ1dGUoInNlbGVjdGVkIikgaXMg
Tm9uZQorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuVmFsdWVPZkNsYXNzQXR0cmlidXRlT2ZBbkVs
ZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQor
ICAgIGhlYWRpbmcgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X3hwYXRoKCIvL2gxIikKKyAgICBj
bGFzc25hbWUgPSBoZWFkaW5nLmdldF9hdHRyaWJ1dGUoImNsYXNzIikKKyAgICBhc3NlcnQgImhl
YWRlciIgPT0gY2xhc3NuYW1lCisKKyMgRGlzYWJsZWQgZHVlIHRvIGlzc3VlcyB3aXRoIEZyYW1l
cworIyBkZWYgdGVzdFNob3VsZFJldHVyblZhbHVlT2ZDbGFzc0F0dHJpYnV0ZU9mQW5FbGVtZW50
QWZ0ZXJTd2l0Y2hpbmdJRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisjICAgIHBhZ2VzLmxvYWQoImlm
cmFtZXMuaHRtbCIpCisjICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoImlmcmFtZTEiKQorIwor
IyAgICB3YWxsYWNlID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiLy9kaXZbQGlkPSd3
YWxsYWNlJ10iKQorIyAgICBjbGFzc25hbWUgPSB3YWxsYWNlLmdldF9hdHRyaWJ1dGUoImNsYXNz
IikKKyMgICAgYXNzZXJ0ICJncm9taXQiID09IGNsYXNzbmFtZQorCisKK2RlZiB0ZXN0U2hvdWxk
UmV0dXJuVGhlQ29udGVudHNPZkFUZXh0QXJlYUFzSXRzVmFsdWUoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgdmFsdWUgPSBkcml2ZXIuZmluZF9l
bGVtZW50X2J5X2lkKCJ3aXRoVGV4dCIpLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKyAgICBhc3Nl
cnQgIkV4YW1wbGUgdGV4dCIgPT0gdmFsdWUKKworCitkZWYgdGVzdFNob3VsZFJldHVyblRoZUNv
bnRlbnRzT2ZBVGV4dEFyZWFBc0l0c1ZhbHVlV2hlblNldFRvTm9uTm9ybWluYWxUcnVlKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGUgPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJ3aXRoVGV4dCIpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2Ny
aXB0KCJhcmd1bWVudHNbMF0udmFsdWUgPSAndFJ1RSciLCBlKQorICAgIHZhbHVlID0gZS5nZXRf
YXR0cmlidXRlKCJ2YWx1ZSIpCisgICAgYXNzZXJ0ICJ0UnVFIiA9PSB2YWx1ZQorCisKK2RlZiB0
ZXN0U2hvdWxkVHJlYXRSZWFkb25seUFzQVZhbHVlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X25hbWUoInJlYWRvbmx5IikKKyAgICByZWFkT25seUF0dHJpYnV0ZSA9IGVsZW1lbnQuZ2V0
X2F0dHJpYnV0ZSgicmVhZG9ubHkiKQorCisgICAgdGV4dElucHV0ID0gZHJpdmVyLmZpbmRfZWxl
bWVudF9ieV9uYW1lKCJ4IikKKyAgICBub3RSZWFkT25seSA9IHRleHRJbnB1dC5nZXRfYXR0cmli
dXRlKCJyZWFkb25seSIpCisKKyAgICBhc3NlcnQgcmVhZE9ubHlBdHRyaWJ1dGUgIT0gbm90UmVh
ZE9ubHkKKworCitkZWYgdGVzdFNob3VsZEdldE51bWVyaWNBdHJpYnV0ZShkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV9pZCgid2l0aFRleHQiKQorICAgIGFzc2VydCAiNSIgPT0gZWxlbWVu
dC5nZXRfYXR0cmlidXRlKCJyb3dzIikKKworCitkZWYgdGVzdENhblJldHVybkFUZXh0QXBwcm94
aW1hdGlvbk9mVGhlU3R5bGVBdHRyaWJ1dGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgc3R5bGUgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJyZWQtaXRlbSIpLmdldF9hdHRyaWJ1dGUoInN0eWxlIikKKyAgICBhc3NlcnQgImJh
Y2tncm91bmQtY29sb3IiIGluIHN0eWxlLmxvd2VyKCkKKworCitkZWYgdGVzdFNob3VsZENvcnJl
Y3RseVJlcG9ydFZhbHVlT2ZDb2xzcGFuKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
InRhYmxlcy5odG1sIikKKworICAgIHRoMSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInRo
MSIpCisgICAgdGQyID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgidGQyIikKKworICAgIGFz
c2VydCAidGgxIiA9PSB0aDEuZ2V0X2F0dHJpYnV0ZSgiaWQiKQorICAgIGFzc2VydCAiMyIgPT0g
dGgxLmdldF9hdHRyaWJ1dGUoImNvbHNwYW4iKQorCisgICAgYXNzZXJ0ICJ0ZDIiID09IHRkMi5n
ZXRfYXR0cmlidXRlKCJpZCIpCisgICAgYXNzZXJ0ICIyIiA9PSB0ZDIuZ2V0X2F0dHJpYnV0ZSgi
Y29sc3BhbiIpCisKKworZGVmIHRlc3RDYW5SZXRyaWV2ZVRoZUN1cnJlbnRWYWx1ZU9mQVRleHRG
b3JtRmllbGRfdGV4dElucHV0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1Q
YWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJ3b3Jr
aW5nIikKKyAgICBhc3NlcnQgIiIgPT0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisg
ICAgZWxlbWVudC5zZW5kX2tleXMoImhlbGxvIHdvcmxkIikKKyAgICBhc3NlcnQgImhlbGxvIHdv
cmxkIiA9PSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKworCitkZWYgdGVzdENhblJl
dHJpZXZlVGhlQ3VycmVudFZhbHVlT2ZBVGV4dEZvcm1GaWVsZF9lbWFpbElucHV0KGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJlbWFpbCIpCisgICAgYXNzZXJ0ICIiID09IGVsZW1l
bnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJoZWxsb0Bl
eGFtcGxlLmNvbSIpCisgICAgYXNzZXJ0ICJoZWxsb0BleGFtcGxlLmNvbSIgPT0gZWxlbWVudC5n
ZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisKKworZGVmIHRlc3RDYW5SZXRyaWV2ZVRoZUN1cnJlbnRW
YWx1ZU9mQVRleHRGb3JtRmllbGRfdGV4dEFyZWEoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoImVtcHR5VGV4dEFyZWEiKQorICAgIGFzc2VydCAiIiA9PSBlbGVtZW50LmdldF9hdHRy
aWJ1dGUoInZhbHVlIikKKyAgICBlbGVtZW50LnNlbmRfa2V5cygiaGVsbG8gd29ybGQiKQorICAg
IGFzc2VydCAiaGVsbG8gd29ybGQiID09IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQor
CisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuTnVsbEZvck5vblByZXNlbnRCb29sZWFuQXR0cmlidXRl
cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJib29sZWFuQXR0cmlidXRlcy5odG1s
IikKKyAgICBlbGVtZW50MSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIndvcmtpbmciKQor
ICAgIGFzc2VydCBlbGVtZW50MS5nZXRfYXR0cmlidXRlKCJyZXF1aXJlZCIpIGlzIE5vbmUKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuVHJ1ZUZvclByZXNl
bnRCb29sZWFuQXR0cmlidXRlcyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJib29s
ZWFuQXR0cmlidXRlcy5odG1sIikKKyAgICBlbGVtZW50MSA9IGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfaWQoImVtYWlsUmVxdWlyZWQiKQorICAgIGFzc2VydCAidHJ1ZSIgPT0gZWxlbWVudDEuZ2V0
X2F0dHJpYnV0ZSgicmVxdWlyZWQiKQorICAgIGVsZW1lbnQyID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9pZCgiZW1wdHlUZXh0QXJlYVJlcXVpcmVkIikKKyAgICBhc3NlcnQgInRydWUiID09IGVs
ZW1lbnQyLmdldF9hdHRyaWJ1dGUoInJlcXVpcmVkIikKKyAgICBlbGVtZW50MyA9IGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoImlucHV0UmVxdWlyZWQiKQorICAgIGFzc2VydCAidHJ1ZSIgPT0g
ZWxlbWVudDMuZ2V0X2F0dHJpYnV0ZSgicmVxdWlyZWQiKQorICAgIGVsZW1lbnQ0ID0gZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV9pZCgidGV4dEFyZWFSZXF1aXJlZCIpCisgICAgYXNzZXJ0ICJ0cnVl
IiA9PSBlbGVtZW50NC5nZXRfYXR0cmlidXRlKCJyZXF1aXJlZCIpCisKKworZGVmIHRlc1Nob3Vs
ZEdldFVuaWNvZGVDaGFyc0Zyb21BdHRyaWJ1dGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMu
bG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgdGl0bGUgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X2lkKCJ2c2VhcmNoR2FkZ2V0IikuZ2V0X2F0dHJpYnV0ZSgidGl0bGUiKQorICAgIGFzc2VydCAn
SHZhZCBzXHhmOGdlciBkdT8nID09IHRpdGxlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZWxlbWVu
dF9lcXVhbGl0eV90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5
L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9lbGVtZW50X2VxdWFsaXR5X3Rlc3RzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYThiMzM0Mzc1MgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9lbGVtZW50X2VxdWFsaXR5X3Rlc3RzLnB5CkBAIC0w
LDAgKzEsNDMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFu
Y3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1l
bnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBm
b3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hp
cC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hl
IExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNl
IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91
IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5h
cGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBh
cHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBC
QVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVu
ZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1w
b3J0IEJ5CisKKworZGVmIHRlc3RTYW1lRWxlbWVudExvb2tlZFVwRGlmZmVyZW50V2F5c1Nob3Vs
ZEJlRXF1YWwoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1s
IikKKyAgICBib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImJvZHkiKQor
ICAgIHhib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVudHMoQnkuWFBBVEgsICIvL2JvZHkiKVswXQor
CisgICAgYXNzZXJ0IGJvZHkgPT0geGJvZHkKKworCitkZWYgdGVzdERpZmZlcmVudEVsZW1lbnRz
QXJlTm90RXF1YWwoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5o
dG1sIikKKyAgICBib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImJvZHki
KQorICAgIGRpdiA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICJkaXYiKQorCisg
ICAgYXNzZXJ0IGJvZHkgIT0gZGl2CisKKworZGVmIHRlc3RTYW1lRWxlbWVudHNGb3VuZERpZmZl
cmVudFdheXNTaG91bGROb3RCZUR1cGxpY2F0ZWRJbkFTZXQoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBib2R5ID0gZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5UQUdfTkFNRSwgImJvZHkiKQorICAgIHhib2R5ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dHMoQnkuWFBBVEgsICIvL2JvZHkiKQorICAgIHMgPSBzZXQoeGJvZHkpCisgICAgcy5hZGQoYm9k
eSkKKyAgICBhc3NlcnQgMSA9PSBsZW4ocykKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9leGFtcGxl
Mi5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9leGFtcGxlMi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMzNiNTNkZDMzOGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZXhh
bXBsZTIucHkKQEAgLTAsMCArMSwyOCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJl
ZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBs
aWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdp
dGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5
cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVu
ZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5
b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhl
IExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMg
ICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNz
IHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBz
b2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBh
bgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBB
TlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBm
b3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGlt
aXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2Zyb20gZ29vZ2xlX29uZV9ib3ggaW1w
b3J0IEdvb2dsZU9uZUJveAorCisKK2RlZiB0ZXN0U2VhcmNoKGRyaXZlcik6CisgICAgIiIiVGhp
cyBleGFtcGxlIHNob3dzIGhvdyB0byB1c2UgdGhlIHBhZ2Ugb2JqZWN0IHBhdHRlcm4uCisKKyAg
ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIHBhdHRlcm4sIHNlZToKKyAgICBodHRw
czovL2dpdGh1Yi5jb20vU2VsZW5pdW1IUS9zZWxlbml1bS93aWtpL1BhZ2VPYmplY3RzIiIiCisg
ICAgZ29vZ2xlID0gR29vZ2xlT25lQm94KGRyaXZlciwgImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSIp
CisgICAgcmVzID0gZ29vZ2xlLnNlYXJjaF9mb3IoImNoZWVzZSIpCisgICAgYXNzZXJ0IHJlcy5s
aW5rX2NvbnRhaW5zX21hdGNoX2ZvcigiV2lraXBlZGlhIikKZGlmZiAtLWdpdCBhL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1v
bi9leGVjdXRpbmdfYXN5bmNfamF2YXNjcmlwdF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9leGVjdXRp
bmdfYXN5bmNfamF2YXNjcmlwdF90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNWNlNmE2NjMyYzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZXhl
Y3V0aW5nX2FzeW5jX2phdmFzY3JpcHRfdGVzdHMucHkKQEAgLTAsMCArMSwyMDYgQEAKKyMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
CisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgor
CitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBv
cnQgQnkKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZlckV4
Y2VwdGlvbgorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgVGltZW91dEV4
Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmVsZW1lbnQgaW1wb3J0
IFdlYkVsZW1lbnQKKworCitkZWYgdGVzdFNob3VsZE5vdFRpbWVvdXRJZkNhbGxiYWNrSW52b2tl
ZEltbWVkaWF0ZWx5KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFqYXh5X3BhZ2Uu
aHRtbCIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJhcmd1bWVu
dHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdKDEyMyk7IikKKyAgICBhc3NlcnQgdHlwZShyZXN1bHQp
ID09IGludAorICAgIGFzc2VydCAxMjMgPT0gcmVzdWx0CisKKworZGVmIHRlc3RTaG91bGRCZUFi
bGVUb1JldHVybkphdmFzY3JpcHRQcmltaXRpdmVzRnJvbUFzeW5jU2NyaXB0c19OZWl0aGVyTm9u
ZU5vclVuZGVmaW5lZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhamF4eV9wYWdl
Lmh0bWwiKQorICAgIGFzc2VydCAxMjMgPT0gZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJh
cmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdKDEyMyk7IikKKyAgICBhc3NlcnQgImFiYyIg
PT0gZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0
aCAtIDFdKCdhYmMnKTsiKQorICAgIGFzc2VydCBub3QgYm9vbChkcml2ZXIuZXhlY3V0ZV9hc3lu
Y19zY3JpcHQoImFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0oZmFsc2UpOyIpKQorICAg
IGFzc2VydCBib29sKGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgiYXJndW1lbnRzW2FyZ3Vt
ZW50cy5sZW5ndGggLSAxXSh0cnVlKTsiKSkKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvUmV0
dXJuSmF2YXNjcmlwdFByaW1pdGl2ZXNGcm9tQXN5bmNTY3JpcHRzX051bGxBbmRVbmRlZmluZWQo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1sIikKKyAgICBh
c3NlcnQgZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJhcmd1bWVudHNbYXJndW1lbnRzLmxl
bmd0aCAtIDFdKG51bGwpIikgaXMgTm9uZQorICAgIGFzc2VydCBkcml2ZXIuZXhlY3V0ZV9hc3lu
Y19zY3JpcHQoImFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0oKSIpIGlzIE5vbmUKKwor
CitkZWYgdGVzdFNob3VsZEJlQWJsZVRvUmV0dXJuQW5BcnJheUxpdGVyYWxGcm9tQW5Bc3luY1Nj
cmlwdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhamF4eV9wYWdlLmh0bWwiKQor
ICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgiYXJndW1lbnRzW2FyZ3Vt
ZW50cy5sZW5ndGggLSAxXShbXSk7IikKKyAgICBhc3NlcnQgIkV4cGVjdGVkIG5vdCB0byBiZSBu
dWxsISIsIHJlc3VsdCBpcyBub3QgTm9uZQorICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gbGlz
dAorICAgIGFzc2VydCBsZW4ocmVzdWx0KSA9PSAwCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVU
b1JldHVybkFuQXJyYXlPYmplY3RGcm9tQW5Bc3luY1NjcmlwdChkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJhamF4eV9wYWdlLmh0bWwiKQorICAgIHJlc3VsdCA9IGRyaXZlci5leGVj
dXRlX2FzeW5jX3NjcmlwdCgiYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXShuZXcgQXJy
YXkoKSk7IikKKyAgICBhc3NlcnQgIkV4cGVjdGVkIG5vdCB0byBiZSBudWxsISIsIHJlc3VsdCBp
cyBub3QgTm9uZQorICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gbGlzdAorICAgIGFzc2VydCBs
ZW4ocmVzdWx0KSA9PSAwCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1JldHVybkFycmF5c09m
UHJpbWl0aXZlc0Zyb21Bc3luY1NjcmlwdHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiYWpheHlfcGFnZS5odG1sIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX2FzeW5j
X3NjcmlwdCgKKyAgICAgICAgImFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0oW251bGws
IDEyMywgJ2FiYycsIHRydWUsIGZhbHNlXSk7IikKKworICAgIGFzc2VydCByZXN1bHQgaXMgbm90
IE5vbmUKKyAgICBhc3NlcnQgdHlwZShyZXN1bHQpID09IGxpc3QKKyAgICBhc3NlcnQgbm90IGJv
b2wocmVzdWx0LnBvcCgpKQorICAgIGFzc2VydCBib29sKHJlc3VsdC5wb3AoKSkKKyAgICBhc3Nl
cnQgImFiYyIgPT0gcmVzdWx0LnBvcCgpCisgICAgYXNzZXJ0IDEyMyA9PSByZXN1bHQucG9wKCkK
KyAgICBhc3NlcnQgcmVzdWx0LnBvcCgpIGlzIE5vbmUKKyAgICBhc3NlcnQgbGVuKHJlc3VsdCkg
PT0gMAorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9SZXR1cm5XZWJFbGVtZW50c0Zyb21Bc3lu
Y1NjcmlwdHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1s
IikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgiYXJndW1lbnRz
W2FyZ3VtZW50cy5sZW5ndGggLSAxXShkb2N1bWVudC5ib2R5KTsiKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKHJlc3VsdCwgV2ViRWxlbWVudCkKKyAgICBhc3NlcnQgImJvZHkiID09IHJlc3VsdC50
YWdfbmFtZS5sb3dlcigpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1JldHVybkFycmF5c09m
V2ViRWxlbWVudHNGcm9tQXN5bmNTY3JpcHRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImFqYXh5X3BhZ2UuaHRtbCIpCisKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9hc3lu
Y19zY3JpcHQoCisgICAgICAgICJhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdKFtkb2N1
bWVudC5ib2R5LCBkb2N1bWVudC5ib2R5XSk7IikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIG5vdCBO
b25lCisgICAgYXNzZXJ0IHR5cGUocmVzdWx0KSA9PSBsaXN0CisKKyAgICBsaXN0XyA9IHJlc3Vs
dAorICAgIGFzc2VydCAyID09IGxlbihsaXN0XykKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShsaXN0
X1swXSwgV2ViRWxlbWVudCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShsaXN0X1sxXSwgV2ViRWxl
bWVudCkKKyAgICBhc3NlcnQgImJvZHkiID09IGxpc3RfWzBdLnRhZ19uYW1lCisgICAgIyBhc3Nl
cnQgbGlzdF9bMF0gPT0gbGlzdF9bMV0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpz
KHJ1bj1GYWxzZSkKK2RlZiB0ZXN0U2hvdWxkVGltZW91dElmU2NyaXB0RG9lc05vdEludm9rZUNh
bGxiYWNrKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFqYXh5X3BhZ2UuaHRtbCIp
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICAjIFNj
cmlwdCBpcyBleHBlY3RlZCB0byBiZSBhc3luYyBhbmQgZXhwbGljaXRseSBjYWxsYmFjaywgc28g
dGhpcyBzaG91bGQgdGltZW91dC4KKyAgICAgICAgZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0
KCJyZXR1cm4gMSArIDI7IikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJ1bj1G
YWxzZSkKK2RlZiB0ZXN0U2hvdWxkVGltZW91dElmU2NyaXB0RG9lc05vdEludm9rZUNhbGxiYWNr
V2l0aEFaZXJvVGltZW91dChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJhamF4eV9w
YWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAg
ICAgICAgZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJ3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpIHt9LCAwKTsiKQorCisKK2RlZiB0ZXN0U2hvdWxkTm90VGltZW91dElmU2NyaXB0Q2Fs
bHNiYWNrSW5zaWRlQVplcm9UaW1lb3V0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
ImFqYXh5X3BhZ2UuaHRtbCIpCisgICAgZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KAorICAg
ICAgICAiIiJ2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwor
ICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2soMTIzKTsgfSwg
MCkiIiIpCisKKworZGVmIHRlc3RTaG91bGRUaW1lb3V0SWZTY3JpcHREb2VzTm90SW52b2tlQ2Fs
bGJhY2tXaXRoTG9uZ1RpbWVvdXQoZHJpdmVyLCBwYWdlcyk6CisgICAgZHJpdmVyLnNldF9zY3Jp
cHRfdGltZW91dCgwLjUpCisgICAgcGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1sIikKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5leGVj
dXRlX2FzeW5jX3NjcmlwdCgKKyAgICAgICAgICAgICIiInZhciBjYWxsYmFjayA9IGFyZ3VtZW50
c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CisgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChj
YWxsYmFjaywgMTUwMCk7IiIiKQorCisKK2RlZiB0ZXN0U2hvdWxkRGV0ZWN0UGFnZUxvYWRzV2hp
bGVXYWl0aW5nT25BbkFzeW5jU2NyaXB0QW5kUmV0dXJuQW5FcnJvcihkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJhamF4eV9wYWdlLmh0bWwiKQorICAgIGRyaXZlci5zZXRfc2NyaXB0
X3RpbWVvdXQoMC4xKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhXZWJEcml2ZXJFeGNlcHRpb24p
OgorICAgICAgICB1cmwgPSBwYWdlcy51cmwoImR5bmFtaWMuaHRtbCIpCisgICAgICAgIGRyaXZl
ci5leGVjdXRlX2FzeW5jX3NjcmlwdCgid2luZG93LmxvY2F0aW9uID0gJ3swfSc7Ii5mb3JtYXQo
dXJsKSkKKworCitkZWYgdGVzdFNob3VsZENhdGNoRXJyb3JzV2hlbkV4ZWN1dGluZ0luaXRpYWxT
Y3JpcHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWpheHlfcGFnZS5odG1sIikK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICAgICAgZHJp
dmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCJ0aHJvdyBFcnJvcigneW91IHNob3VsZCBjYXRjaCB0
aGlzIScpOyIpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVBc3luY2hyb25vdXNT
Y3JpcHRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImFqYXh5X3BhZ2UuaHRtbCIp
CisKKyAgICB0eXBlciA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuTkFNRSwgdmFsdWU9InR5
cGVyIikKKyAgICB0eXBlci5zZW5kX2tleXMoImJvYiIpCisgICAgYXNzZXJ0ICJib2IiID09IHR5
cGVyLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKworICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9
QnkuSUQsIHZhbHVlPSJyZWQiKS5jbGljaygpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5OQU1FLCB2YWx1ZT0ic3VibWl0IikuY2xpY2soKQorCisgICAgYXNzZXJ0IDEgPT0gbGVuKGRy
aXZlci5maW5kX2VsZW1lbnRzKGJ5PUJ5LlRBR19OQU1FLCB2YWx1ZT0nZGl2JykpLCBcCisgICAg
ICAgICJUaGVyZSBzaG91bGQgb25seSBiZSAxIERJViBhdCB0aGlzIHBvaW50LCB3aGljaCBpcyB1
c2VkIGZvciB0aGUgYnV0dGVyIG1lc3NhZ2UiCisgICAgZHJpdmVyLnNldF9zY3JpcHRfdGltZW91
dCgxMCkKKyAgICB0ZXh0ID0gZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KAorICAgICAgICAi
IiJ2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOworICAgICAg
ICB3aW5kb3cucmVnaXN0ZXJMaXN0ZW5lcihhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFd
KTsiIiIpCisgICAgYXNzZXJ0ICJib2IiID09IHRleHQKKyAgICBhc3NlcnQgIiIgPT0gdHlwZXIu
Z2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorCisgICAgYXNzZXJ0IDIgPT0gbGVuKGRyaXZlci5maW5k
X2VsZW1lbnRzKGJ5PUJ5LlRBR19OQU1FLCB2YWx1ZT0nZGl2JykpLCBcCisgICAgICAgICJUaGVy
ZSBzaG91bGQgYmUgMSBESVYgKGZvciB0aGUgYnV0dGVyIG1lc3NhZ2UpICsgMSBESVYgKGZvciB0
aGUgbmV3IGxhYmVsKSIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvUGFzc011bHRpcGxlQXJn
dW1lbnRzVG9Bc3luY1NjcmlwdHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYWph
eHlfcGFnZS5odG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQo
IiIiCisgICAgICAgIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0oYXJndW1lbnRzWzBd
ICsgYXJndW1lbnRzWzFdKTsiIiIsIDEsIDIpCisgICAgYXNzZXJ0IDMgPT0gcmVzdWx0CisKKyMg
VE9ETyBEYXZpZEJ1cm5zIERpc2FibGVkIHRpbGwgSmF2YSBXZWJTZXJ2ZXIgaXMgdXNlZAorIyBk
ZWYgdGVzdFNob3VsZEJlQWJsZVRvTWFrZVhNTEh0dHBSZXF1ZXN0c0FuZFdhaXRGb3JUaGVSZXNw
b25zZShkcml2ZXIsIHBhZ2VzKToKKyMgICAgc2NyaXB0ID0gIiIiCisjICAgICAgICB2YXIgdXJs
ID0gYXJndW1lbnRzWzBdOworIyAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzW2FyZ3Vt
ZW50cy5sZW5ndGggLSAxXTsKKyMgICAgICAgIC8vIEFkYXB0ZWQgZnJvbSBodHRwOi8vd3d3LnF1
aXJrc21vZGUub3JnL2pzL3htbGh0dHAuaHRtbAorIyAgICAgICAgdmFyIFhNTEh0dHBGYWN0b3Jp
ZXMgPSBbCisjICAgICAgICAgIGZ1bmN0aW9uICgpIHJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3Qo
KSwKKyMgICAgICAgICAgZnVuY3Rpb24gKCkgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3ht
bDIuWE1MSFRUUCcpLAorIyAgICAgICAgICBmdW5jdGlvbiAoKSByZXR1cm4gbmV3IEFjdGl2ZVhP
YmplY3QoJ01zeG1sMy5YTUxIVFRQJyksCisjICAgICAgICAgIGZ1bmN0aW9uICgpIHJldHVybiBu
ZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKQorIyAgICAgICAgXTsKKyMgICAg
ICAgIHZhciB4aHIgPSBmYWxzZTsKKyMgICAgICAgIHdoaWxlICgheGhyICYmIFhNTEh0dHBGYWN0
b3JpZXMubGVuZ3RoKQorIyAgICAgICAgICB0cnl7CisjICAgICAgICAgICAgeGhyID0gWE1MSHR0
cEZhY3Rvcmllcy5zaGlmdCgpLmNhbGwoKTsKKyMgICAgICAgICAgIH1jYXRjaCAoZSkKKyMKKyMg
ICAgICAgIGlmICgheGhyKSB0aHJvdyBFcnJvcigndW5hYmxlIHRvIGNyZWF0ZSBYSFIgb2JqZWN0
Jyk7CisjICAgICAgICB4aHIub3BlbignR0VUJywgdXJsLCB0cnVlKTsKKyMgICAgICAgIHhoci5v
bnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpCisjICAgICAgICAgIGlmICh4aHIucmVhZHlT
dGF0ZSA9PSA0KSBjYWxsYmFjayh4aHIucmVzcG9uc2VUZXh0KTsKKyMKKyMgICAgICAgIHhoci5z
ZW5kKCcnKTsiIiIgIyBlbXB0eSBzdHJpbmcgdG8gc3RvcCBmaXJlZm94IDMgZnJvbSBjaG9raW5n
CisjCisjICAgIHBhZ2VzLmxvYWQoImFqYXh5X3BhZ2UuaHRtbCIpCisjICAgIGRyaXZlci5zZXRf
c2NyaXB0X3RpbWVvdXQoMykKKyMgICAgcmVzcG9uc2UgPSBkcml2ZXIuZXhlY3V0ZV9hc3luY19z
Y3JpcHQoc2NyaXB0LCBwYWdlcy5zbGVlcGluZ1BhZ2UgKyAiP3RpbWU9MiIpCisjICAgIGh0bSA9
ICI8aHRtbD48aGVhZD48dGl0bGU+RG9uZTwvdGl0bGU+PC9oZWFkPjxib2R5PlNsZXB0IGZvciAy
czwvYm9keT48L2h0bWw+IgorIyAgICBhc3NlcnQgcmVzcG9uc2Uuc3RyaXAoKSA9PSBodG0KZGlm
ZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9leGVjdXRpbmdfamF2YXNjcmlwdF90ZXN0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9leGVjdXRpbmdfamF2YXNjcmlwdF90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYWExOTE4M2Q2NGEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vZXhlY3V0aW5nX2phdmFzY3JpcHRfdGVzdHMucHkKQEAgLTAsMCArMSwyODIgQEAKKyMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
CisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgor
CitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0
IFdlYkRyaXZlckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLndlYmVs
ZW1lbnQgaW1wb3J0IFdlYkVsZW1lbnQKKwordHJ5OgorICAgIHN0ciA9IHVuaWNvZGUKK2V4Y2Vw
dCBOYW1lRXJyb3I6CisgICAgcGFzcworCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9FeGVjdXRl
U2ltcGxlSmF2YXNjcmlwdEFuZFJldHVybkFTdHJpbmcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQudGl0bGUiKQorCisgICAgYXNzZXJ0IHR5cGUocmVzdWx0
KSA9PSBzdHIsICJUaGUgdHlwZSBvZiB0aGUgcmVzdWx0IGlzICVzIiAlIHR5cGUocmVzdWx0KQor
ICAgIGFzc2VydCAiWEhUTUwgVGVzdCBQYWdlIiA9PSByZXN1bHQKKworCitkZWYgdGVzdFNob3Vs
ZEJlQWJsZVRvRXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1cm5BbkludGVnZXIoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgibmVzdGVkRWxlbWVudHMuaHRtbCIpCisgICAgcmVz
dWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eU5hbWUoJ2NoZWNreScpLmxlbmd0aCIpCisKKyAgICBhc3NlcnQgdHlwZShyZXN1bHQpID09IGlu
dAorICAgIGFzc2VydCBpbnQocmVzdWx0KSA+IDEKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRv
RXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1cm5BV2ViRWxlbWVudChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisKKyAgICByZXN1bHQgPSBkcml2
ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWQxJyki
KQorCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBub3QgTm9uZQorICAgIGFzc2VydCBpc2luc3RhbmNl
KHJlc3VsdCwgV2ViRWxlbWVudCkKKyAgICBhc3NlcnQgImEiID09IHJlc3VsdC50YWdfbmFtZS5s
b3dlcigpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVTaW1wbGVKYXZhc2NyaXB0
QW5kUmV0dXJuQUxpc3RPZldlYkVsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3Njcmlw
dCgicmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rpdi5uYXZpZ2F0aW9uIGEnKSIp
CisKKyAgICBhc3NlcnQgcmVzdWx0IGlzIG5vdCBOb25lCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
cmVzdWx0LCBsaXN0KQorICAgIGFzc2VydCBhbGwoaXNpbnN0YW5jZShpdGVtLCBXZWJFbGVtZW50
KSBmb3IgaXRlbSBpbiByZXN1bHQpCisgICAgYXNzZXJ0IGFsbCgnYScgPT0gaXRlbS50YWdfbmFt
ZS5sb3dlcigpIGZvciBpdGVtIGluIHJlc3VsdCkKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRv
RXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1cm5XZWJFbGVtZW50c0luc2lkZUFMaXN0KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHJl
c3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFtkb2N1bWVudC5ib2R5XSIpCisK
KyAgICBhc3NlcnQgcmVzdWx0IGlzIG5vdCBOb25lCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVz
dWx0LCBsaXN0KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdFswXSwgV2ViRWxlbWVudCkK
KworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvRXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1
cm5XZWJFbGVtZW50c0luc2lkZUFOZXN0ZWRMaXN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3Nj
cmlwdCgicmV0dXJuIFtkb2N1bWVudC5ib2R5LCBbZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lk
MScpXV0iKQorCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBub3QgTm9uZQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRbMF0sIFdl
YkVsZW1lbnQpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzFdWzBdLCBXZWJFbGVtZW50
KQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9FeGVjdXRlU2ltcGxlSmF2YXNjcmlwdEFuZFJl
dHVybldlYkVsZW1lbnRzSW5zaWRlQURpY3QoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgieGh0bWxUZXN0Lmh0bWwiKQorCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0
KCJyZXR1cm4ge2VsMTogZG9jdW1lbnQuYm9keX0iKQorCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBu
b3QgTm9uZQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgZGljdCkKKyAgICBhc3NlcnQg
aXNpbnN0YW5jZShyZXN1bHQuZ2V0KCdlbDEnKSwgV2ViRWxlbWVudCkKKworCitkZWYgdGVzdFNo
b3VsZEJlQWJsZVRvRXhlY3V0ZVNpbXBsZUphdmFzY3JpcHRBbmRSZXR1cm5XZWJFbGVtZW50c0lu
c2lkZUFOZXN0ZWREaWN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVz
dC5odG1sIikKKworICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHtl
bDE6IGRvY3VtZW50LmJvZHksICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im5lc3RlZDoge2VsMjogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkMScpfX0iKQorCisgICAg
YXNzZXJ0IHJlc3VsdCBpcyBub3QgTm9uZQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwg
ZGljdCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQuZ2V0KCdlbDEnKSwgV2ViRWxlbWVu
dCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQuZ2V0KCduZXN0ZWQnKS5nZXQoJ2VsMicp
LCBXZWJFbGVtZW50KQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9FeGVjdXRlU2ltcGxlSmF2
YXNjcmlwdEFuZFJldHVybldlYkVsZW1lbnRzSW5zaWRlQUxpc3RJbnNpZGVBRGljdChkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisKKyAgICByZXN1bHQg
PSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiB7ZWwxOiBbZG9jdW1lbnQuYm9keV19IikK
KworICAgIGFzc2VydCByZXN1bHQgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShy
ZXN1bHQsIGRpY3QpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LmdldCgnZWwxJyksIGxp
c3QpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LmdldCgnZWwxJylbMF0sIFdlYkVsZW1l
bnQpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVTaW1wbGVKYXZhc2NyaXB0QW5k
UmV0dXJuQUJvb2xlYW4oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0
Lmh0bWwiKQorCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gdHJ1
ZSIpCisKKyAgICBhc3NlcnQgcmVzdWx0IGlzIG5vdCBOb25lCisgICAgYXNzZXJ0IHR5cGUocmVz
dWx0KSA9PSBib29sCisgICAgYXNzZXJ0IGJvb2wocmVzdWx0KQorCisKK2RlZiB0ZXN0U2hvdWxk
QmVBYmxlVG9FeGVjdXRlU2ltcGxlSmF2YXNjcmlwdEFuZEFTdHJpbmdzQXJyYXkoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZXhwZWN0
ZWRSZXN1bHQgPSBbXQorICAgIGV4cGVjdGVkUmVzdWx0LmFwcGVuZCgiemVybyIpCisgICAgZXhw
ZWN0ZWRSZXN1bHQuYXBwZW5kKCJvbmUiKQorICAgIGV4cGVjdGVkUmVzdWx0LmFwcGVuZCgidHdv
IikKKyAgICByZXN1bHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICJyZXR1cm4g
Wyd6ZXJvJywgJ29uZScsICd0d28nXSIpCisKKyAgICBhc3NlcnQgZXhwZWN0ZWRSZXN1bHQgPT0g
cmVzdWx0CisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0V4ZWN1dGVTaW1wbGVKYXZhc2NyaXB0
QW5kUmV0dXJuQW5BcnJheShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2Ny
aXB0UGFnZS5odG1sIikKKyAgICBleHBlY3RlZFJlc3VsdCA9IFtdCisgICAgZXhwZWN0ZWRSZXN1
bHQuYXBwZW5kKCJ6ZXJvIikKKyAgICBzdWJMaXN0ID0gW10KKyAgICBzdWJMaXN0LmFwcGVuZChU
cnVlKQorICAgIHN1Ykxpc3QuYXBwZW5kKEZhbHNlKQorICAgIGV4cGVjdGVkUmVzdWx0LmFwcGVu
ZChzdWJMaXN0KQorICAgIHJlc3VsdCA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFsn
emVybycsIFt0cnVlLCBmYWxzZV1dIikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIG5vdCBOb25lCisg
ICAgYXNzZXJ0IHR5cGUocmVzdWx0KSA9PSBsaXN0CisgICAgYXNzZXJ0IGV4cGVjdGVkUmVzdWx0
ID09IHJlc3VsdAorCisKK2RlZiB0ZXN0UGFzc2luZ0FuZFJldHVybmluZ0FuSW50U2hvdWxkUmV0
dXJuQVdob2xlTnVtYmVyKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3Jp
cHRQYWdlLmh0bWwiKQorICAgIGV4cGVjdGVkUmVzdWx0ID0gMQorICAgIHJlc3VsdCA9IGRyaXZl
ci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXSIsIGV4cGVjdGVkUmVzdWx0KQor
ICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gaW50CisgICAgYXNzZXJ0IGV4cGVjdGVkUmVzdWx0
ID09IHJlc3VsdAorCisKK2RlZiB0ZXN0UGFzc2luZ0FuZFJldHVybmluZ0FEb3VibGVTaG91bGRS
ZXR1cm5BRGVjaW1hbChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0
UGFnZS5odG1sIikKKyAgICBleHBlY3RlZFJlc3VsdCA9IDEuMgorICAgIHJlc3VsdCA9IGRyaXZl
ci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXSIsIGV4cGVjdGVkUmVzdWx0KQor
ICAgIGFzc2VydCB0eXBlKHJlc3VsdCkgPT0gZmxvYXQKKyAgICBhc3NlcnQgZXhwZWN0ZWRSZXN1
bHQgPT0gcmVzdWx0CisKKworZGVmIHRlc3RTaG91bGRUaHJvd0FuRXhjZXB0aW9uV2hlblRoZUph
dmFzY3JpcHRJc0JhZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3Qu
aHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAg
ICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHNxdWlnZ2xlKCkiKQorCisKK2RlZiB0
ZXN0U2hvdWxkQmVBYmxlVG9DYWxsRnVuY3Rpb25zRGVmaW5lZE9uVGhlUGFnZShkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBkcml2ZXIu
ZXhlY3V0ZV9zY3JpcHQoImRpc3BsYXlNZXNzYWdlKCdJIGxpa2UgY2hlZXNlJykiKQorICAgIHRl
eHQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJyZXN1bHQiKS50ZXh0CisgICAgYXNzZXJ0
ICJJIGxpa2UgY2hlZXNlIiA9PSB0ZXh0LnN0cmlwKCkKKworCitkZWYgdGVzdFNob3VsZEJlQWJs
ZVRvUGFzc0FTdHJpbmdBbkFzQXJndW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgdmFsdWUgPSBkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoCisgICAgICAgICJyZXR1cm4gYXJndW1lbnRzWzBdID09ICdmaXNoJyA/ICdmaXNoJyA6ICdu
b3QgZmlzaCciLCAiZmlzaCIpCisgICAgYXNzZXJ0ICJmaXNoIiA9PSB2YWx1ZQorCisKK2RlZiB0
ZXN0U2hvdWxkQmVBYmxlVG9QYXNzQUJvb2xlYW5BbkFzQXJndW1lbnQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgdmFsdWUgPSBib29s
KGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXSA9PSB0cnVlIiwgVHJ1
ZSkpCisgICAgYXNzZXJ0IHZhbHVlCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1Bhc3NBTnVt
YmVyQW5Bc0FyZ3VtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3Jp
cHRQYWdlLmh0bWwiKQorICAgIHZhbHVlID0gYm9vbChkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiBhcmd1bWVudHNbMF0gPT0gMSA/IHRydWUgOiBmYWxzZSIsIDEpKQorICAgIGFzc2VydCB2
YWx1ZQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9QYXNzQVdlYkVsZW1lbnRBc0FyZ3VtZW50
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQor
ICAgIGJ1dHRvbiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInBsYWluQnV0dG9uIikKKyAg
ICB2YWx1ZSA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgImFyZ3VtZW50c1swXVsn
ZmxpYmJsZSddID0gYXJndW1lbnRzWzBdLmdldEF0dHJpYnV0ZSgnaWQnKTsgcmV0dXJuIGFyZ3Vt
ZW50c1swXVsnZmxpYmJsZSddIiwKKyAgICAgICAgYnV0dG9uKQorICAgIGFzc2VydCAicGxhaW5C
dXR0b24iID09IHZhbHVlCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1Bhc3NBbkFycmF5QXNB
cmd1bWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5o
dG1sIikKKyAgICBhcnJheSA9IFsiemVybyIsIDEsIFRydWUsIDMuMTQxNTldCisgICAgbGVuZ3Ro
ID0gaW50KGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIGFyZ3VtZW50c1swXS5sZW5ndGgi
LCBhcnJheSkpCisgICAgYXNzZXJ0IGxlbihhcnJheSkgPT0gbGVuZ3RoCisKKworZGVmIHRlc3RT
aG91bGRCZUFibGVUb1Bhc3NBQ29sbGVjdGlvbkFzQXJndW1lbnQoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgY29sbGVjdGlvbiA9IFtd
CisgICAgY29sbGVjdGlvbi5hcHBlbmQoIkNoZWRkYXIiKQorICAgIGNvbGxlY3Rpb24uYXBwZW5k
KCJCcmllIikKKyAgICBjb2xsZWN0aW9uLmFwcGVuZCg3KQorICAgIGxlbmd0aCA9IGludChkcml2
ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0ubGVuZ3RoIiwgY29sbGVjdGlv
bikpCisgICAgYXNzZXJ0IGxlbihjb2xsZWN0aW9uKSA9PSBsZW5ndGgKKworICAgIGNvbGxlY3Rp
b24gPSBbXQorICAgIGNvbGxlY3Rpb24uYXBwZW5kKCJHb3VkYSIpCisgICAgY29sbGVjdGlvbi5h
cHBlbmQoIlN0aWx0b24iKQorICAgIGNvbGxlY3Rpb24uYXBwZW5kKCJTdGlsdG9uIikKKyAgICBj
b2xsZWN0aW9uLmFwcGVuZChUcnVlKQorICAgIGxlbmd0aCA9IGludChkcml2ZXIuZXhlY3V0ZV9z
Y3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0ubGVuZ3RoIiwgY29sbGVjdGlvbikpCisgICAgYXNz
ZXJ0IGxlbihjb2xsZWN0aW9uKSA9PSBsZW5ndGgKKworCitkZWYgdGVzdFNob3VsZFRocm93QW5F
eGNlcHRpb25JZkFuQXJndW1lbnRJc05vdFZhbGlkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhFeGNl
cHRpb24pOgorICAgICAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBhcmd1bWVudHNb
MF0iLCBkcml2ZXIpCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1Bhc3NJbk1vcmVUaGFuT25l
QXJndW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2Uu
aHRtbCIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gYXJndW1l
bnRzWzBdICsgYXJndW1lbnRzWzFdIiwgIm9uZSIsICJ0d28iKQorICAgIGFzc2VydCAib25ldHdv
IiA9PSByZXN1bHQKKworCitkZWYgdGVzdEphdmFzY3JpcHRTdHJpbmdIYW5kbGluZ1Nob3VsZFdv
cmtBc0V4cGVjdGVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQ
YWdlLmh0bWwiKQorICAgIHZhbHVlID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gJyci
KQorICAgIGFzc2VydCAiIiA9PSB2YWx1ZQorCisgICAgdmFsdWUgPSBkcml2ZXIuZXhlY3V0ZV9z
Y3JpcHQoInJldHVybiB1bmRlZmluZWQiKQorICAgIGFzc2VydCB2YWx1ZSBpcyBOb25lCisKKyAg
ICB2YWx1ZSA9IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuICcgJyIpCisgICAgYXNzZXJ0
ICIgIiA9PSB2YWx1ZQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DcmVhdGVBUGVyc2lzdGVu
dFZhbHVlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQor
ICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgiZG9jdW1lbnQuYWxlcnRzID0gW10iKQorICAgIGRy
aXZlci5leGVjdXRlX3NjcmlwdCgiZG9jdW1lbnQuYWxlcnRzLnB1c2goJ2hlbGxvIHdvcmxkJyki
KQorICAgIHRleHQgPSBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiBkb2N1bWVudC5hbGVy
dHMuc2hpZnQoKSIpCisgICAgYXNzZXJ0ICJoZWxsbyB3b3JsZCIgPT0gdGV4dAorCisKK2RlZiB0
ZXN0Q2FuUGFzc0FEaWN0aW9uYXJ5QXNBUGFyYW1ldGVyKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgbnVtcyA9IFsxLCAyXQorICAgIGFyZ3Mg
PSB7ImJhciI6ICJ0ZXN0IiwgImZvbyI6IG51bXN9CisgICAgcmVzID0gZHJpdmVyLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gYXJndW1lbnRzWzBdWydmb28nXVsxXSIsIGFyZ3MpCisgICAgYXNzZXJ0
IDIgPT0gcmVzCisKKworZGVmIHRlc3RDYW5QYXNzQU5vbmUoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICByZXMgPSBkcml2ZXIuZXhlY3V0ZV9z
Y3JpcHQoInJldHVybiBhcmd1bWVudHNbMF0gPT09IG51bGwiLCBOb25lKQorICAgIGFzc2VydCBy
ZXMKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9mb3JtX2hhbmRsaW5nX3Rlc3RzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL2Zvcm1faGFuZGxpbmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmRlZWFjYjljMzk3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2Zvcm1f
aGFuZGxpbmdfdGVzdHMucHkKQEAgLTAsMCArMSwyMzUgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNv
ZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29u
dHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0
cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdh
cmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisj
IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxp
Y2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQor
IyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl
IGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisj
CisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp
dGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp
YnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJ
VElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhl
IExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0
CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEVsZW1lbnRF
eGNlcHRpb24KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFdlYkRyaXZl
ckV4Y2VwdGlvbgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0
ZWRfY29uZGl0aW9ucyBhcyBFQworZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBp
bXBvcnQgV2ViRHJpdmVyV2FpdAorCisKK2RlZiB0ZXN0U2hvdWxkQ2xpY2tPblN1Ym1pdElucHV0
RWxlbWVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgic3VibWl0QnV0dG9uIikuY2xpY2soKQor
ICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2UgQXJyaXZl
IEhlcmUiKSkKKworCitkZWYgdGVzdENsaWNraW5nT25VbmNsaWNrYWJsZUVsZW1lbnRzRG9lc05v
dGhpbmcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisg
ICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiLy9ib2R5IikuY2xpY2soKQorCisKK2Rl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGlja0ltYWdlQnV0dG9ucyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X2lkKCJpbWFnZUJ1dHRvbiIpLmNsaWNrKCkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMyku
dW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisKKworZGVmIHRlc3RTaG91bGRC
ZUFibGVUb1N1Ym1pdEZvcm1zKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1Q
YWdlLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgibG9naW4iKS5zdWJt
aXQoKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy50aXRsZV9pcygiV2Ug
QXJyaXZlIEhlcmUiKSkKKworCitkZWYgdGVzdFNob3VsZFN1Ym1pdEFGb3JtV2hlbkFueUlucHV0
RWxlbWVudFdpdGhpblRoYXRGb3JtSXNTdWJtaXR0ZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgi
Y2hlY2t5Iikuc3VibWl0KCkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMu
dGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisKKworZGVmIHRlc3RTaG91bGRTdWJtaXRBRm9y
bVdoZW5BbnlFbGVtZW50V2loaW5UaGF0Rm9ybUlzU3VibWl0dGVkKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRf
YnlfeHBhdGgoIi8vZm9ybS9wIikuc3VibWl0KCkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwg
NSkudW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisKKworZGVmIHRlc3RTaG91
bGROb3RCZUFibGVUb1N1Ym1pdEFGb3JtVGhhdERvZXNOb3RFeGlzdChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
Tm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
bmFtZSgidGhlcmUgaXMgbm8gc3Bvb24iKS5zdWJtaXQoKQorCisKK2RlZiB0ZXN0U2hvdWxkQmVB
YmxlVG9FbnRlclRleHRJbnRvQVRleHRBcmVhQnlTZXR0aW5nSXRzVmFsdWUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgdGV4dGFyZWEg
PSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJrZXlVcEFyZWEiKQorICAgIGNoZWVzZXkgPSAi
QnJpZSBhbmQgY2hlZGRhciIKKyAgICB0ZXh0YXJlYS5zZW5kX2tleXMoY2hlZXNleSkKKyAgICBh
c3NlcnQgdGV4dGFyZWEuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSBjaGVlc2V5CisKKworZGVm
IHRlc3RTaG91bGRFbnRlckRhdGFJbnRvRm9ybUZpZWxkcyhkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfeHBhdGgoIi8vZm9ybVtAbmFtZT0nc29tZUZvcm0nXS9pbnB1dFtAaWQ9J3VzZXJu
YW1lJ10iKQorICAgIG9yaWdpbmFsVmFsdWUgPSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVl
IikKKyAgICBhc3NlcnQgb3JpZ2luYWxWYWx1ZSA9PSAiY2hhbmdlIgorCisgICAgZWxlbWVudC5j
bGVhcigpCisgICAgZWxlbWVudC5zZW5kX2tleXMoInNvbWUgdGV4dCIpCisKKyAgICBlbGVtZW50
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgiLy9mb3JtW0BuYW1lPSdzb21lRm9ybSdd
L2lucHV0W0BpZD0ndXNlcm5hbWUnXSIpCisgICAgbmV3Rm9ybVZhbHVlID0gZWxlbWVudC5nZXRf
YXR0cmlidXRlKCJ2YWx1ZSIpCisgICAgYXNzZXJ0IG5ld0Zvcm1WYWx1ZSA9PSAic29tZSB0ZXh0
IgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9TZWxlY3RBQ2hlY2tCb3goZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgY2hlY2tib3ggPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjaGVja3kiKQorICAgIGFzc2VydCBjaGVja2JveC5pc19z
ZWxlY3RlZCgpIGlzIEZhbHNlCisgICAgY2hlY2tib3guY2xpY2soKQorICAgIGFzc2VydCBjaGVj
a2JveC5pc19zZWxlY3RlZCgpIGlzIFRydWUKKyAgICBjaGVja2JveC5jbGljaygpCisgICAgYXNz
ZXJ0IGNoZWNrYm94LmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKworCitkZWYgdGVzdFNob3VsZFRv
Z2dsZVRoZUNoZWNrZWRTdGF0ZU9mQUNoZWNrYm94KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGNoZWNrYm94ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9pZCgiY2hlY2t5IikKKyAgICBhc3NlcnQgY2hlY2tib3guaXNfc2VsZWN0ZWQoKSBpcyBG
YWxzZQorICAgIGNoZWNrYm94LmNsaWNrKCkKKyAgICBhc3NlcnQgY2hlY2tib3guaXNfc2VsZWN0
ZWQoKSBpcyBUcnVlCisgICAgY2hlY2tib3guY2xpY2soKQorICAgIGFzc2VydCBjaGVja2JveC5p
c19zZWxlY3RlZCgpIGlzIEZhbHNlCisKKworZGVmIHRlc3RUb2dnbGluZ0FDaGVja2JveFNob3Vs
ZFJldHVybkl0c0N1cnJlbnRTdGF0ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKyAgICBjaGVja2JveCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
ImNoZWNreSIpCisgICAgYXNzZXJ0IGNoZWNrYm94LmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKyAg
ICBjaGVja2JveC5jbGljaygpCisgICAgYXNzZXJ0IGNoZWNrYm94LmlzX3NlbGVjdGVkKCkgaXMg
VHJ1ZQorICAgIGNoZWNrYm94LmNsaWNrKCkKKyAgICBhc3NlcnQgY2hlY2tib3guaXNfc2VsZWN0
ZWQoKSBpcyBGYWxzZQorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9TZWxlY3RBUmFkaW9CdXR0
b24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAg
cmFkaW9CdXR0b24gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJwZWFzIikKKyAgICBhc3Nl
cnQgcmFkaW9CdXR0b24uaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorICAgIHJhZGlvQnV0dG9uLmNs
aWNrKCkKKyAgICBhc3NlcnQgcmFkaW9CdXR0b24uaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisKKwor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb1NlbGVjdEFSYWRpb0J1dHRvbkJ5Q2xpY2tpbmdPbkl0KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIHJhZGlv
QnV0dG9uID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicGVhcyIpCisgICAgYXNzZXJ0IHJh
ZGlvQnV0dG9uLmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKyAgICByYWRpb0J1dHRvbi5jbGljaygp
CisgICAgYXNzZXJ0IHJhZGlvQnV0dG9uLmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQorCisKK2RlZiB0
ZXN0U2hvdWxkUmV0dXJuU3RhdGVPZlJhZGlvQnV0dG9uc0JlZm9yZUludGVyYXRpb24oZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgcmFkaW9CdXR0
b24gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjaGVlc2VfYW5kX3BlYXMiKQorICAgIGFz
c2VydCByYWRpb0J1dHRvbi5pc19zZWxlY3RlZCgpIGlzIFRydWUKKworICAgIHJhZGlvQnV0dG9u
ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2hlZXNlIikKKyAgICBhc3NlcnQgcmFkaW9C
dXR0b24uaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorCisjIFtFeHBlY3RlZEV4Y2VwdGlvbih0eXBl
b2YoTm90SW1wbGVtZW50ZWRFeGNlcHRpb24pKV0KKyMgZGVmIHRlc3RTaG91bGRUaHJvd0FuRXhj
ZXB0aW9uV2hlblRvZ2dsaW5nVGhlU3RhdGVPZkFSYWRpb0J1dHRvbihkcml2ZXIsIHBhZ2VzKToK
KyMgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisjICAgIHJhZGlvQnV0dG9uID0gZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2hlZXNlIikpCisjICAgIHJhZGlvQnV0dG9uLmNsaWNr
KCkKKworIyBbSWdub3JlQnJvd3NlcihCcm93c2VyLklFLCAiSUUgYWxsb3dzIHRvZ2dsaW5nIG9m
IGFuIG9wdGlvbiBub3QgaW4gYSBtdWx0aXNlbGVjdCIpXQorIyBbRXhwZWN0ZWRFeGNlcHRpb24o
dHlwZW9mKE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKSldCisjIGRlZiB0ZXN0VG9nZ2xpbmdBbk9w
dGlvblNob3VsZFRocm93QW5FeGNlcHRpb25JZlRoZU9wdGlvbklzTm90SW5BTXVsdGlTZWxlY3Qo
ZHJpdmVyLCBwYWdlcyk6CisjICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorIyAgICBz
ZWxlY3QgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInNlbGVjdG9tYXRpYyIpKQorIyAg
ICBvcHRpb24gPSBzZWxlY3QuZmluZF9lbGVtZW50c19ieV90YWdfbmFtZSgib3B0aW9uIikpWzBd
CisjICAgIG9wdGlvbi5jbGljaygpCisKKworZGVmIHRlc3RUb2dnbGluZ0FuT3B0aW9uU2hvdWxk
VG9nZ2xlT3B0aW9uc0luQU11bHRpU2VsZWN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImZvcm1QYWdlLmh0bWwiKQorCisgICAgc2VsZWN0ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9uYW1lKCJtdWx0aSIpCisgICAgb3B0aW9uID0gc2VsZWN0LmZpbmRfZWxlbWVudHNfYnlfdGFn
X25hbWUoIm9wdGlvbiIpWzBdCisKKyAgICBzZWxlY3RlZCA9IG9wdGlvbi5pc19zZWxlY3RlZCgp
CisgICAgb3B0aW9uLmNsaWNrKCkKKyAgICBhc3NlcnQgbm90IHNlbGVjdGVkID09IG9wdGlvbi5p
c19zZWxlY3RlZCgpCisKKyAgICBvcHRpb24uY2xpY2soKQorICAgIGFzc2VydCBzZWxlY3RlZCA9
PSBvcHRpb24uaXNfc2VsZWN0ZWQoKQorCisKK2RlZiB0ZXN0U2hvdWxkVGhyb3dBbkV4Y2VwdGlv
bldoZW5TZWxlY3RpbmdBblVuc2VsZWN0YWJsZUVsZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfeHBhdGgoIi8vdGl0bGUiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhXZWJEcml2
ZXJFeGNlcHRpb24pOgorICAgICAgICBlbGVtZW50LmNsaWNrKCkKKworCitkZWYgdGVzdFNlbmRp
bmdLZXlib2FyZEV2ZW50c1Nob3VsZEFwcGVuZFRleHRJbklucHV0cyhkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgid29ya2luZyIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoIlNvbWUi
KQorICAgIHZhbHVlID0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisgICAgYXNzZXJ0
IHZhbHVlID09ICJTb21lIgorCisgICAgZWxlbWVudC5zZW5kX2tleXMoIiB0ZXh0IikKKyAgICB2
YWx1ZSA9IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGFzc2VydCB2YWx1ZSA9
PSAiU29tZSB0ZXh0IgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9DbGVhclRleHRGcm9tSW5w
dXRFbGVtZW50cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1s
IikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgid29ya2luZyIpCisg
ICAgZWxlbWVudC5zZW5kX2tleXMoIlNvbWUgdGV4dCIpCisgICAgdmFsdWUgPSBlbGVtZW50Lmdl
dF9hdHRyaWJ1dGUoInZhbHVlIikKKyAgICBhc3NlcnQgbGVuKHZhbHVlKSA+IDAKKworICAgIGVs
ZW1lbnQuY2xlYXIoKQorICAgIHZhbHVlID0gZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIp
CisgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gMAorCisKK2RlZiB0ZXN0RW1wdHlUZXh0Qm94ZXNT
aG91bGRSZXR1cm5BbkVtcHR5U3RyaW5nTm90TnVsbChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbXB0eVRleHRCb3ggPSBkcml2ZXIuZmluZF9l
bGVtZW50X2J5X2lkKCJ3b3JraW5nIikKKyAgICBhc3NlcnQgZW1wdHlUZXh0Qm94LmdldF9hdHRy
aWJ1dGUoInZhbHVlIikgPT0gIiIKKworICAgIGVtcHR5VGV4dEFyZWEgPSBkcml2ZXIuZmluZF9l
bGVtZW50X2J5X2lkKCJlbXB0eVRleHRBcmVhIikKKyAgICBhc3NlcnQgZW1wdHlUZXh0QXJlYS5n
ZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICIiCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0Ns
ZWFyVGV4dEZyb21UZXh0QXJlYXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9y
bVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIndp
dGhUZXh0IikKKyAgICBlbGVtZW50LnNlbmRfa2V5cygiU29tZSB0ZXh0IikKKyAgICB2YWx1ZSA9
IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGFzc2VydCBsZW4odmFsdWUpID4g
MAorCisgICAgZWxlbWVudC5jbGVhcigpCisgICAgdmFsdWUgPSBlbGVtZW50LmdldF9hdHRyaWJ1
dGUoInZhbHVlIikKKyAgICBhc3NlcnQgbGVuKHZhbHVlKSA9PSAwCisKKworZGVmIHRlc3RSYWRp
b1Nob3VsZE5vdEJlU2VsZWN0ZWRBZnRlclNlbGVjdGluZ1NpYmxpbmcoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgY2hlZXNlID0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgiY2hlZXNlIikKKyAgICBwZWFzID0gZHJpdmVyLmZpbmRfZWxlbWVu
dF9ieV9pZCgicGVhcyIpCisKKyAgICBjaGVlc2UuY2xpY2soKQorICAgIGFzc2VydCBjaGVlc2Uu
aXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisgICAgYXNzZXJ0IHBlYXMuaXNfc2VsZWN0ZWQoKSBpcyBG
YWxzZQorCisgICAgcGVhcy5jbGljaygpCisgICAgYXNzZXJ0IGNoZWVzZS5pc19zZWxlY3RlZCgp
IGlzIEZhbHNlCisgICAgYXNzZXJ0IHBlYXMuaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCmRpZmYgLS1n
aXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dl
YmRyaXZlci9jb21tb24vZnJhbWVfc3dpdGNoaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ZyYW1l
X3N3aXRjaGluZ190ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNzhlMjRiZDFhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZnJhbWVfc3dpdGNo
aW5nX3Rlc3RzLnB5CkBAIC0wLDAgKzEsNDQwIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2Fy
ZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1
dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0
ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5n
IGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5
b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNl
Iik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0
aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor
IworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBV
bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs
CisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk
IG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T
IE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNl
bnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFu
ZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKwordHJ5OgorICAgIGZyb20gaHR0
cC5jbGllbnQgaW1wb3J0IEJhZFN0YXR1c0xpbmUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBm
cm9tIGh0dHBsaWIgaW1wb3J0IEJhZFN0YXR1c0xpbmUKKworaW1wb3J0IHB5dGVzdAorCitmcm9t
IHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCAoCisgICAgTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbiwKKyAgICBOb1N1Y2hGcmFtZUV4Y2VwdGlvbiwKKyAgICBXZWJEcml2ZXJFeGNlcHRp
b24pCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBXZWJEcml2ZXJXYWl0Citmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVD
CisKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCisjIFRlc3Rz
IHRoYXQgV2ViRHJpdmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgZmlzaHkgd2hlbiBpdCBuYXZpZ2F0
ZXMgdG8gYSBwYWdlIHdpdGggZnJhbWVzLgorIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKworQHB5dGVzdC55aWVsZF9maXh0dXJlKGF1dG91c2U9VHJ1ZSkKK2Rl
ZiByZXN0b3JlX2RlZmF1bHRfY29udGV4dChkcml2ZXIpOgorICAgIHlpZWxkCisgICAgZHJpdmVy
LnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorCisKK2RlZiB0ZXN0U2hvdWxkQWx3YXlzRm9j
dXNPblRoZVRvcE1vc3RGcmFtZUFmdGVyQU5hdmlnYXRpb25FdmVudChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50
KEJ5LlRBR19OQU1FLCAiZnJhbWVzZXQiKSAgIyBUZXN0IHBhc3NlcyBpZiB0aGlzIGRvZXMgbm90
IHRocm93LgorCisKK2RlZiB0ZXN0U2hvdWxkTm90QXV0b21hdGljYWxseVN3aXRjaEZvY3VzVG9B
bklGcmFtZVdoZW5BUGFnZUNvbnRhaW5pbmdUaGVtSXNMb2FkZWQoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiaWZyYW1lcy5odG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LklELCAiaWZyYW1lX3BhZ2VfaGVhZGluZyIpCisKKworZGVmIHRlc3RTaG91bGRPcGVuUGFnZVdp
dGhCcm9rZW5GcmFtZXNldChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNl
dFBhZ2UzLmh0bWwiKQorCisgICAgZnJhbWUxID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwg
ImZpcnN0IikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGZyYW1lMSkKKyAgICBkcml2ZXIu
c3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisKKyAgICBmcmFtZTIgPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LklELCAic2Vjb25kIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGZyYW1l
MikgICMgSUU5IGNhbiBub3Qgc3dpdGNoIHRvIHRoaXMgYnJva2VuIGZyYW1lIC0gaXQgaGFzIG5v
IHdpbmRvdy4KKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCisj
IFRlc3RzIHRoYXQgV2ViRHJpdmVyIGNhbiBzd2l0Y2ggdG8gZnJhbWVzIGFzIGV4cGVjdGVkLgor
IworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworZGVmIHRlc3RT
aG91bGRCZUFibGVUb1N3aXRjaFRvQUZyYW1lQnlJdHNJbmRleChkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJmcmFtZXNldC5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1l
KDEpCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJwYWdlTnVtYmVyIiku
dGV4dCA9PSAiMiIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvU3dpdGNoVG9BbklmcmFtZUJ5
SXRzSW5kZXgoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaWZyYW1lcy5odG1sIikK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKDApCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2Vs
ZW1lbnQoQnkuTkFNRSwgImlkLW5hbWUxIikuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAibmFt
ZSIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvU3dpdGNoVG9BRnJhbWVCeUl0c05hbWUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgZHJpdmVy
LnN3aXRjaF90by5mcmFtZSgiZm91cnRoIikKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVu
dChCeS5UQUdfTkFNRSwgImZyYW1lIikuZ2V0X2F0dHJpYnV0ZSgibmFtZSIpID09ICJjaGlsZDEi
CisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRjaFRvQW5JZnJhbWVCeUl0c05hbWUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaWZyYW1lcy5odG1sIikKKyAgICBkcml2ZXIu
c3dpdGNoX3RvLmZyYW1lKCJpZnJhbWUxLW5hbWUiKQorICAgIGFzc2VydCBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5Lk5BTUUsICJpZC1uYW1lMSIpLmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIm5h
bWUiCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRjaFRvQUZyYW1lQnlJdHNJRChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5odG1sIikKKyAgICBkcml2ZXIu
c3dpdGNoX3RvLmZyYW1lKCJmaWZ0aCIpCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuTkFNRSwgIndpbmRvd09uZSIpLnRleHQgPT0gIk9wZW4gbmV3IHdpbmRvdyIKKworCitkZWYg
dGVzdFNob3VsZEJlQWJsZVRvU3dpdGNoVG9BbklmcmFtZUJ5SXRzSUQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiaWZyYW1lcy5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZy
YW1lKCJpZnJhbWUxIikKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCAi
aWQtbmFtZTEiKS5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJuYW1lIgorCisKK2RlZiB0ZXN0
U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb0ZyYW1lV2l0aE5hbWVDb250YWluaW5nRG90KGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0
Y2hfdG8uZnJhbWUoInNpeHRoLmlmcmFtZTEiKQorICAgIGFzc2VydCAiUGFnZSBudW1iZXIgMyIg
aW4gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImJvZHkiKS50ZXh0CisKKworZGVm
IHRlc3RTaG91bGRCZUFibGVUb1N3aXRjaFRvQUZyYW1lVXNpbmdBUHJldmlvdXNseUxvY2F0ZWRX
ZWJFbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwi
KQorICAgIGZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5UQUdfTkFNRSwgImZyYW1lIikK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGZyYW1lKQorICAgIGFzc2VydCBkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5LklELCAicGFnZU51bWJlciIpLnRleHQgPT0gIjEiCisKKworZGVmIHRlc3RT
aG91bGRCZUFibGVUb1N3aXRjaFRvQW5JRnJhbWVVc2luZ0FQcmV2aW91c2x5TG9jYXRlZFdlYkVs
ZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaWZyYW1lcy5odG1sIikKKyAg
ICBmcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuVEFHX05BTUUsICJpZnJhbWUiKQorICAg
IGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZnJhbWUpCisKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5OQU1FLCAiaWQtbmFtZTEiKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9h
dHRyaWJ1dGUoInZhbHVlIikgPT0gIm5hbWUiCisKKworZGVmIHRlc3RTaG91bGRFbnN1cmVFbGVt
ZW50SXNBRnJhbWVCZWZvcmVTd2l0Y2hpbmcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgZnJhbWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LlRB
R19OQU1FLCAiZnJhbWVzZXQiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hGcmFtZUV4
Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZnJhbWUpCisKKworZGVm
IHRlc3RGcmFtZVNlYXJjaGVzU2hvdWxkQmVSZWxhdGl2ZVRvVGhlQ3VycmVudGx5U2VsZWN0ZWRG
cmFtZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5odG1sIikKKyAg
ICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKCJzZWNvbmQiKQorICAgIGFzc2VydCBkcml2ZXIuZmlu
ZF9lbGVtZW50KEJ5LklELCAicGFnZU51bWJlciIpLnRleHQgPT0gIjIiCisKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5zd2l0
Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJ0aGlyZCIpKQorCisgICAg
ZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorICAgIGRyaXZlci5zd2l0Y2hfdG8u
ZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJ0aGlyZCIpKQorCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKE5vU3VjaEZyYW1lRXhjZXB0aW9uKToKKyAgICAgICAgZHJpdmVyLnN3aXRj
aF90by5mcmFtZSgic2Vjb25kIikKKworICAgIGRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250
ZW50KCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
bmFtZSgic2Vjb25kIikpCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJw
YWdlTnVtYmVyIikudGV4dCA9PSAiMiIKKworCitkZWYgdGVzdFNob3VsZFNlbGVjdENoaWxkRnJh
bWVzQnlDaGFpbmVkQ2FsbHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZnJhbWVz
ZXQuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50
X2J5X25hbWUoImZvdXJ0aCIpKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9uYW1lKCJjaGlsZDIiKSkKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5JRCwgInBhZ2VOdW1iZXIiKS50ZXh0ID09ICIxMSIKKworCitkZWYgdGVzdFNob3Vs
ZFRocm93RnJhbWVOb3RGb3VuZEV4Y2VwdGlvbkxvb2tpbmdVcFN1YkZyYW1lc1dpdGhTdXBlckZy
YW1lTmFtZXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIp
CisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUo
ImZvdXJ0aCIpKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9u
KToKKyAgICAgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5
X25hbWUoInNlY29uZCIpKQorCisKK2RlZiB0ZXN0U2hvdWxkVGhyb3dBbkV4Y2VwdGlvbldoZW5B
RnJhbWVDYW5ub3RCZUZvdW5kKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1s
VGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlv
bik6CisgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9uYW1lKCJOb3RoaW5nIGhlcmUiKSkKKworCitkZWYgdGVzdFNob3VsZFRocm93QW5FeGNlcHRp
b25XaGVuQUZyYW1lQ2Fubm90QmVGb3VuZEJ5SW5kZXgoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hG
cmFtZUV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoMjcpCisKKwor
QHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRjaFRvUGFyZW50RnJhbWUoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5m
cmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoImZvdXJ0aCIpKQorICAgIGRyaXZlci5z
d2l0Y2hfdG8ucGFyZW50X2ZyYW1lKCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZl
ci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiZmlyc3QiKSkKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5JRCwgInBhZ2VOdW1iZXIiKS50ZXh0ID09ICIxIgorCisKK0BweXRlc3QubWFy
ay54ZmFpbF9waGFudG9tanMocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0ZXN0U2hv
dWxkQmVBYmxlVG9Td2l0Y2hUb1BhcmVudEZyYW1lRnJvbUFTZWNvbmRMZXZlbEZyYW1lKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRyaXZlci5z
d2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJmb3VydGgiKSkKKyAg
ICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgiY2hp
bGQxIikpCisgICAgZHJpdmVyLnN3aXRjaF90by5wYXJlbnRfZnJhbWUoKQorICAgIGRyaXZlci5z
d2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJjaGlsZDIiKSkKKyAg
ICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInBhZ2VOdW1iZXIiKS50ZXh0ID09
ICIxMSIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24pCitkZWYgdGVzdFN3aXRjaGluZ1RvUGFyZW50RnJhbWVGcm9tRGVmYXVsdENvbnRl
eHRJc05vT3AoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwi
KQorICAgIGRyaXZlci5zd2l0Y2hfdG8ucGFyZW50X2ZyYW1lKCkKKyAgICBhc3NlcnQgZHJpdmVy
LnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50
b21qcyhyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3
aXRjaFRvUGFyZW50RnJvbUFuSWZyYW1lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
ImlmcmFtZXMuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgwKQorICAgIGRyaXZl
ci5zd2l0Y2hfdG8ucGFyZW50X2ZyYW1lKCkKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklE
LCAiaWZyYW1lX3BhZ2VfaGVhZGluZyIpCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorIworIyBHZW5lcmFsIGZyYW1lIGhhbmRsaW5nIGJlaGF2aW9yIHRlc3RzCisj
CisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitkZWYgdGVzdFNo
b3VsZENvbnRpbnVlVG9SZWZlclRvVGhlU2FtZUZyYW1lT25jZUl0SGFzQmVlblNlbGVjdGVkKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoMikKKyAgICBjaGVja2JveCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuWFBBVEgsICIvL2lucHV0W0BuYW1lPSdjaGVja3knXSIpCisgICAgY2hlY2tib3guY2xpY2so
KQorICAgIGNoZWNrYm94LnN1Ym1pdCgpCisKKyAgICAjIFRPRE8oc2ltb24pOiB0aGlzIHNob3Vs
ZCBub3QgYmUgbmVlZGVkLCBhbmQgaXMgb25seSBoZXJlIGJlY2F1c2UgSUUncyBzdWJtaXQgcmV0
dXJucyB0b28KKyAgICAjIHNvb24uCisKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50
aWwoRUMudGV4dF90b19iZV9wcmVzZW50X2luX2VsZW1lbnQoKEJ5LlhQQVRILCAnLy9wJyksICdT
dWNjZXNzIScpKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJhaXNlcz1XZWJE
cml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J2h0
dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82MTAnKQorZGVmIHRl
c3RTaG91bGRGb2N1c09uVGhlUmVwbGFjZW1lbnRXaGVuQUZyYW1lRm9sbG93c0FMaW5rVG9BX1Rv
cFRhcmdldGVkUGFnZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmcmFtZXNldC5o
dG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKDApCisgICAgZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5MSU5LX1RFWFQsICJ0b3AiKS5jbGljaygpCisKKyAgICBleHBlY3RlZFRpdGxlID0g
IlhIVE1MIFRlc3QgUGFnZSIKKworICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChF
Qy50aXRsZV9pcyhleHBlY3RlZFRpdGxlKSkKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMyku
dW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgIm9ubHktZXhpc3Rz
LW9uLXhodG1sdGVzdCIpKSkKKworCitkZWYgdGVzdFNob3VsZEFsbG93QVVzZXJUb1N3aXRjaEZy
b21BbklmcmFtZUJhY2tUb1RoZU1haW5Db250ZW50T2ZUaGVQYWdlKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImlmcmFtZXMuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFt
ZSgwKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKyAgICBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lX3BhZ2VfaGVhZGluZyIpCisKKworZGVmIHRlc3RT
aG91bGRBbGxvd1RoZVVzZXJUb1N3aXRjaFRvQW5JRnJhbWVBbmRSZW1haW5Gb2N1c2VkT25JdChk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJpZnJhbWVzLmh0bWwiKQorICAgIGRyaXZl
ci5zd2l0Y2hfdG8uZnJhbWUoMCkKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAic3Vi
bWl0QnV0dG9uIikuY2xpY2soKQorICAgIGFzc2VydCBnZXRUZXh0T2ZHcmVldGluZ0VsZW1lbnQo
ZHJpdmVyKSA9PSAiU3VjY2VzcyEiCisKKworZGVmIGdldFRleHRPZkdyZWV0aW5nRWxlbWVudChk
cml2ZXIpOgorICAgIHJldHVybiBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMucHJl
c2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgImdyZWV0aW5nIikpKS50ZXh0CisKKwor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrSW5BRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZSgi
dGhpcmQiKQorCisgICAgIyBUaGlzIHNob3VsZCByZXBsYWNlIGZyYW1lICJ0aGlyZCIgLi4uCisg
ICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInN1Ym1pdEJ1dHRvbiIpLmNsaWNrKCkKKyAg
ICAjIGRyaXZlciBzaG91bGQgc3RpbGwgYmUgZm9jdXNlZCBvbiBmcmFtZSAidGhpcmQiIC4uLgor
ICAgIGFzc2VydCBnZXRUZXh0T2ZHcmVldGluZ0VsZW1lbnQoZHJpdmVyKSA9PSAiU3VjY2VzcyEi
CisgICAgIyBNYWtlIHN1cmUgaXQgd2FzIHJlYWxseSBmcmFtZSAidGhpcmQiIHdoaWNoIHdhcyBy
ZXBsYWNlZCAuLi4KKyAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisgICAg
ZHJpdmVyLnN3aXRjaF90by5mcmFtZSgidGhpcmQiKQorICAgIGFzc2VydCBnZXRUZXh0T2ZHcmVl
dGluZ0VsZW1lbnQoZHJpdmVyKSA9PSAiU3VjY2VzcyEiCisKKworZGVmIHRlc3RTaG91bGRCZUFi
bGVUb0NsaWNrSW5BRnJhbWVUaGF0UmV3cml0ZXNUb3BXaW5kb3dMb2NhdGlvbihkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJjbGlja190ZXN0cy9pc3N1ZTUyMzcuaHRtbCIpCisgICAg
ZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJzZWFyY2gi
KSkKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAic3VibWl0IikuY2xpY2soKQorICAg
IGRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKyAgICBXZWJEcml2ZXJXYWl0KGRy
aXZlciwgMykudW50aWwoRUMudGl0bGVfaXMoIlRhcmdldCBwYWdlIGZvciBpc3N1ZSA1MjM3Iikp
CisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0NsaWNrSW5BU3ViRnJhbWUoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90
by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJzaXh0aCIpKQorICAgIGRyaXZlci5z
d2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiaWZyYW1lMSIpKQorCisg
ICAgIyBUaGlzIHNob3VsZCByZXBsYWNlIGZyYW1lICJpZnJhbWUxIiBpbnNpZGUgZnJhbWUgInNp
eHRoIiAuLi4KKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAic3VibWl0QnV0dG9uIiku
Y2xpY2soKQorICAgICMgZHJpdmVyIHNob3VsZCBzdGlsbCBiZSBmb2N1c2VkIG9uIGZyYW1lICJp
ZnJhbWUxIiBpbnNpZGUgZnJhbWUgInNpeHRoIiAuLi4KKyAgICBhc3NlcnQgZ2V0VGV4dE9mR3Jl
ZXRpbmdFbGVtZW50KGRyaXZlciksICJTdWNjZXNzISIKKyAgICAjIE1ha2Ugc3VyZSBpdCB3YXMg
cmVhbGx5IGZyYW1lICJpZnJhbWUxIiBpbnNpZGUgZnJhbWUgInNpeHRoIiB3aGljaCB3YXMgcmVw
bGFjZWQgLi4uCisgICAgZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorICAgIGRy
aXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgic2l4dGgiKSkK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImlm
cmFtZTEiKSkKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImdyZWV0aW5n
IikudGV4dCA9PSAiU3VjY2VzcyEiCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0ZpbmRFbGVt
ZW50c0luSWZyYW1lc0J5WFBhdGgoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaWZy
YW1lcy5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoImlmcmFtZTEiKSkKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5YUEFUSCwgIi8vKltAaWQgPSAnY2hhbmdlbWUnXSIpCisgICAgYXNzZXJ0IGVsZW1lbnQgaXMg
bm90IE5vbmUKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVzdEdldEN1
cnJlbnRVcmxSZXR1cm5zVG9wTGV2ZWxCcm93c2luZ0NvbnRleHRVcmwoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgYXNzZXJ0ICJmcmFtZXNldC5o
dG1sIiBpbiBkcml2ZXIuY3VycmVudF91cmwKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmZyYW1lKGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgic2Vjb25kIikpCisgICAgYXNzZXJ0ICJmcmFtZXNl
dC5odG1sIiBpbiBkcml2ZXIuY3VycmVudF91cmwKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhh
bnRvbWpzCitkZWYgdGVzdEdldEN1cnJlbnRVcmxSZXR1cm5zVG9wTGV2ZWxCcm93c2luZ0NvbnRl
eHRVcmxGb3JJZnJhbWVzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImlmcmFtZXMu
aHRtbCIpCisgICAgYXNzZXJ0ICJpZnJhbWVzLmh0bWwiIGluIGRyaXZlci5jdXJyZW50X3VybAor
ICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiaWZy
YW1lMSIpKQorICAgIGFzc2VydCAiaWZyYW1lcy5odG1sIiBpbiBkcml2ZXIuY3VycmVudF91cmwK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1CYWRTdGF0dXNMaW5lKQor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRjaFRvVGhlVG9wSWZUaGVGcmFtZUlzRGVsZXRlZEZy
b21VbmRlclVzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lX3N3aXRjaGlu
Z190ZXN0cy9kZWxldGluZ0ZyYW1lLmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUo
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiaWZyYW1lMSIpKQorCisgICAga2lsbElmcmFtZSA9
IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1lIikKKyAgICBraWxsSWZyYW1l
LmNsaWNrKCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisgICAgV2Vi
RHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsX25vdCgKKyAgICAgICAgRUMucHJlc2VuY2Vfb2Zf
ZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgImlmcmFtZTEiKSkpCisKKyAgICBhZGRJRnJhbWUgPSBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYWRkQmFja0ZyYW1lIikKKyAgICBhZGRJRnJhbWUu
Y2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5wcmVzZW5jZV9v
Zl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAiaWZyYW1lMSIpKSkKKyAgICBkcml2ZXIuc3dpdGNo
X3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImlmcmFtZTEiKSkKKyAgICBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVk
KChCeS5JRCwgInN1Y2Nlc3MiKSkpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhy
YWlzZXM9QmFkU3RhdHVzTGluZSkKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9Td2l0Y2hUb1RoZVRv
cElmVGhlRnJhbWVJc0RlbGV0ZWRGcm9tVW5kZXJVc1dpdGhGcmFtZUluZGV4KGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lX3N3aXRjaGluZ190ZXN0cy9kZWxldGluZ0ZyYW1l
Lmh0bWwiKQorICAgIGlmcmFtZSA9IDAKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50
aWwoRUMuZnJhbWVfdG9fYmVfYXZhaWxhYmxlX2FuZF9zd2l0Y2hfdG9faXQoaWZyYW1lKSkKKyAg
ICAjIHdlIHNob3VsZCBiZSBpbiB0aGUgZnJhbWUgbm93CisgICAga2lsbElmcmFtZSA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoQnkuSUQsICJraWxsSWZyYW1lIikKKyAgICBraWxsSWZyYW1lLmNsaWNr
KCkKKyAgICBkcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisKKyAgICBhZGRJRnJh
bWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYWRkQmFja0ZyYW1lIikKKyAgICBhZGRJ
RnJhbWUuY2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5mcmFt
ZV90b19iZV9hdmFpbGFibGVfYW5kX3N3aXRjaF90b19pdChpZnJhbWUpKQorICAgIFdlYkRyaXZl
cldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5
LklELCAic3VjY2VzcyIpKSkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNl
cz1CYWRTdGF0dXNMaW5lKQorZGVmIHRlc3RTaG91bGRCZUFibGVUb1N3aXRjaFRvVGhlVG9wSWZU
aGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzV2l0aFdlYmVsZW1lbnQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2RlbGV0aW5nRnJhbWUuaHRt
bCIpCisgICAgaWZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImlmcmFtZTEiKQor
ICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5mcmFtZV90b19iZV9hdmFpbGFi
bGVfYW5kX3N3aXRjaF90b19pdChpZnJhbWUpKQorICAgICMgd2Ugc2hvdWxkIGJlIGluIHRoZSBm
cmFtZSBub3cKKyAgICBraWxsSWZyYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImtp
bGxJZnJhbWUiKQorICAgIGtpbGxJZnJhbWUuY2xpY2soKQorICAgIGRyaXZlci5zd2l0Y2hfdG8u
ZGVmYXVsdF9jb250ZW50KCkKKworICAgIGFkZElGcmFtZSA9IGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuSUQsICJhZGRCYWNrRnJhbWUiKQorICAgIGFkZElGcmFtZS5jbGljaygpCisKKyAgICBpZnJh
bWUgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIpCisgICAgV2ViRHJpdmVy
V2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLmZyYW1lX3RvX2JlX2F2YWlsYWJsZV9hbmRfc3dpdGNo
X3RvX2l0KGlmcmFtZSkpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnBy
ZXNlbmNlX29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICJzdWNjZXNzIikpKQorCisKK0BweXRl
c3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPU5vU3VjaEVsZW1lbnRFeGNlcHRpb24pCitAcHl0
ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKHJhaXNlcz1CYWRTdGF0dXNMaW5lKQorQHB5dGVzdC5t
YXJrLnhmYWlsX21hcmlvbmV0dGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEv
Z2Vja29kcml2ZXIvaXNzdWVzLzYxNCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfd2Via2l0Z3RrKHJh
aXNlcz1Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKQorZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb0Rv
QW55dGhpbmdUaGVGcmFtZUlzRGVsZXRlZEZyb21VbmRlclVzKGRyaXZlciwgcGFnZXMpOgorICAg
IGlmIGRyaXZlci5uYW1lID09ICdmaXJlZm94JyBhbmQgZHJpdmVyLnczYzoKKyAgICAgICAgcHl0
ZXN0LnNraXAoJ1N0YWxscyB0ZXN0cywgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQxMDc5OScpCisgICAgcGFnZXMubG9hZCgiZnJhbWVfc3dpdGNoaW5nX3Rl
c3RzL2RlbGV0aW5nRnJhbWUuaHRtbCIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJpZnJhbWUxIikpCisKKyAgICBraWxsSWZyYW1lID0gZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImtpbGxJZnJhbWUiKQorICAgIGtpbGxJZnJhbWUuY2xp
Y2soKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEZyYW1lRXhjZXB0aW9uKToKKyAg
ICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImtpbGxJZnJhbWUiKS5jbGljaygpCisK
KworZGVmIHRlc3RTaG91bGRSZXR1cm5XaW5kb3dUaXRsZUluQUZyYW1lc2V0KGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lc2V0Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hf
dG8uZnJhbWUoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9uYW1lKCJ0aGlyZCIpKQorICAgIGFzc2Vy
dCAiVW5pcXVlIHRpdGxlIiA9PSBkcml2ZXIudGl0bGUKKworCitkZWYgdGVzdEphdmFTY3JpcHRT
aG91bGRFeGVjdXRlSW5UaGVDb250ZXh0T2ZUaGVDdXJyZW50RnJhbWUoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZnJhbWVzZXQuaHRtbCIpCisgICAgYXNzZXJ0IGRyaXZlci5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdyA9PSB3aW5kb3cudG9wIikKKyAgICBkcml2ZXIuc3dp
dGNoX3RvLmZyYW1lKGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgInRoaXJkIikpCisgICAg
YXNzZXJ0IGRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvdyAhPSB3aW5kb3cudG9w
IikKKworCitkZWYgdGVzdFNob3VsZE5vdFN3aXRjaE1hZ2ljYWxseVRvVGhlVG9wV2luZG93KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZyYW1lX3N3aXRjaGluZ190ZXN0cy9idWc0
ODc2Lmh0bWwiKQorICAgIGRyaXZlci5zd2l0Y2hfdG8uZnJhbWUoMCkKKyAgICBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMykudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5J
RCwgImlucHV0VGV4dCIpKSkKKworICAgIGZvciBpIGluIHJhbmdlKDIwKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgaW5wdXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMu
cHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgImlucHV0VGV4dCIpKSkKKyAgICAg
ICAgICAgIHN1Ym1pdCA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCAzKS51bnRpbChFQy5wcmVzZW5j
ZV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAic3VibWl0QnV0dG9uIikpKQorICAgICAgICAg
ICAgaW5wdXQuY2xlYXIoKQorICAgICAgICAgICAgaW1wb3J0IHJhbmRvbQorICAgICAgICAgICAg
aW5wdXQuc2VuZF9rZXlzKCJyYW5kJXMiICUgaW50KHJhbmRvbS5yYW5kb20oKSkpCisgICAgICAg
ICAgICBzdWJtaXQuY2xpY2soKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdXJsID0g
ZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYiKQorICAg
ICAgICAjIElFNiBhbmQgQ2hyb21lIGFkZCAiPyItc3ltYm9sIHRvIHRoZSBlbmQgb2YgdGhlIFVS
TAorICAgIGlmICh1cmwuZW5kc3dpdGgoIj8iKSk6CisgICAgICAgIHVybCA9IHVybFs6bGVuKHVy
bCkgLSAxXQorCisgICAgYXNzZXJ0IHBhZ2VzLnVybCgiZnJhbWVfc3dpdGNoaW5nX3Rlc3RzL2J1
ZzQ4NzZfaWZyYW1lLmh0bWwiKSA9PSB1cmwKKworCitkZWYgdGVzdEdldFNob3VsZFN3aXRjaFRv
RGVmYXVsdENvbnRleHQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaWZyYW1lcy5o
dG1sIikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIpCisgICAgZHJp
dmVyLnN3aXRjaF90by5mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIp
KQorICAgIGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJjaGVlc2UiKSAgIyBGb3VuZCBvbiBm
b3JtUGFnZS5odG1sIGJ1dCBub3Qgb24gaWZyYW1lcy5odG1sLgorICAgIHBhZ2VzLmxvYWQoImlm
cmFtZXMuaHRtbCIpICAjIFRoaXMgbXVzdCBlZmZlY3RpdmVseSBzd2l0Y2hfdG8uZGVmYXVsdF9j
b250ZW50KCksIHRvby4KKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIp
CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vZ29vZ2xlX29uZV9ib3gucHkgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vZ29v
Z2xlX29uZV9ib3gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZl
NTdhMTg0YzA2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2dvb2dsZV9vbmVfYm94LnB5
CkBAIC0wLDAgKzEsNDUgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29u
c2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBh
Z3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMg
d29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93
bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25z
IGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCitmcm9tIHJlc3VsdHNfcGFnZSBpbXBvcnQg
UmVzdWx0c1BhZ2UKK2Zyb20gcGFnZV9sb2FkZXIgaW1wb3J0IHJlcXVpcmVfbG9hZGVkCisKKwor
Y2xhc3MgR29vZ2xlT25lQm94KG9iamVjdCk6CisgICAgIiIiVGhpcyBjbGFzcyBtb2RlbHMgYSBw
YWdlIHRoYXQgaGFzIGEgZ29vZ2xlIHNlYXJjaCBiYXIuIiIiCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgZHJpdmVyLCB1cmwpOgorICAgICAgICBzZWxmLl9kcml2ZXIgPSBkcml2ZXIKKyAgICAg
ICAgc2VsZi5fdXJsID0gdXJsCisKKyAgICBkZWYgaXNfbG9hZGVkKHNlbGYpOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICBzZWxmLl9kcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoInEiKQor
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZXhjZXB0IE5vU3VjaEVsZW1lbnRFeGNl
cHRpb246CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBsb2FkKHNlbGYpOgor
ICAgICAgICBzZWxmLl9kcml2ZXIuZ2V0KHNlbGYuX3VybCkKKworICAgIEByZXF1aXJlX2xvYWRl
ZAorICAgIGRlZiBzZWFyY2hfZm9yKHNlbGYsIHNlYXJjaF90ZXJtKToKKyAgICAgICAgZWxlbWVu
dCA9IHNlbGYuX2RyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgicSIpCisgICAgICAgIGVsZW1l
bnQuc2VuZF9rZXlzKHNlYXJjaF90ZXJtKQorICAgICAgICBlbGVtZW50LnN1Ym1pdCgpCisgICAg
ICAgIHJldHVybiBSZXN1bHRzUGFnZShzZWxmLl9kcml2ZXIpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vaW1wbGljaXRfd2FpdHNfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vaW1wbGljaXRfd2FpdHNfdGVz
dHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlMzA1MjUyNTE0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ltcGxpY2l0X3dhaXRzX3Rlc3RzLnB5CkBA
IC0wLDAgKzEsNzMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2Vy
dmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3Jl
ZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29y
ayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVy
c2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3Qg
dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAg
WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3
dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElT
IiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQs
IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisj
IHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29t
bW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KKworCitkZWYgdGVz
dFNob3VsZEltcGxpY2l0bHlXYWl0Rm9yQVNpbmdsZUVsZW1lbnQoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiZHluYW1pYy5odG1sIikKKyAgICBhZGQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJhZGRlciIpCisgICAgZHJpdmVyLmltcGxpY2l0bHlfd2FpdCgzKQorICAgIGFk
ZC5jbGljaygpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiYm94MCIpICAjIEFsbCBp
cyB3ZWxsIGlmIHRoaXMgZG9lc24ndCB0aHJvdy4KKworCitkZWYgdGVzdFNob3VsZFN0aWxsRmFp
bFRvRmluZEFuRWxlbWVudFdoZW5JbXBsaWNpdFdhaXRzQXJlRW5hYmxlZChkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJkeW5hbWljLmh0bWwiKQorICAgIGRyaXZlci5pbXBsaWNpdGx5
X3dhaXQoMC41KQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9u
KToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiYm94MCIpCisKKworZGVmIHRl
c3RTaG91bGRSZXR1cm5BZnRlckZpcnN0QXR0ZW1wdFRvRmluZE9uZUFmdGVyRGlzYWJsaW5nSW1w
bGljaXRXYWl0cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJkeW5hbWljLmh0bWwi
KQorICAgIGRyaXZlci5pbXBsaWNpdGx5X3dhaXQoMykKKyAgICBkcml2ZXIuaW1wbGljaXRseV93
YWl0KDApCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaEVsZW1lbnRFeGNlcHRpb24pOgor
ICAgICAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJib3gwIikKKworCitkZWYgdGVzdFNo
b3VsZEltcGxpY2l0bHlXYWl0VW50aWxBdExlYXN0T25lRWxlbWVudElzRm91bmRXaGVuU2VhcmNo
aW5nRm9yTWFueShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJkeW5hbWljLmh0bWwi
KQorICAgIGFkZCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImFkZGVyIikKKworICAgIGRy
aXZlci5pbXBsaWNpdGx5X3dhaXQoMikKKyAgICBhZGQuY2xpY2soKQorICAgIGFkZC5jbGljaygp
CisKKyAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2VsZW1lbnRzX2J5X2NsYXNzX25hbWUoInJl
ZGJveCIpCisgICAgYXNzZXJ0IGxlbihlbGVtZW50cykgPj0gMQorCisKK2RlZiB0ZXN0U2hvdWxk
U3RpbGxGYWlsVG9GaW5kQW5FbGVtZW5zdFdoZW5JbXBsaWNpdFdhaXRzQXJlRW5hYmxlZChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJkeW5hbWljLmh0bWwiKQorCisgICAgZHJpdmVy
LmltcGxpY2l0bHlfd2FpdCgwLjUpCisgICAgZWxlbWVudHMgPSBkcml2ZXIuZmluZF9lbGVtZW50
c19ieV9jbGFzc19uYW1lKCJyZWRib3giKQorICAgIGFzc2VydCAwID09IGxlbihlbGVtZW50cykK
KworCitkZWYgdGVzdFNob3VsZFJldHVybkFmdGVyRmlyc3RBdHRlbXB0VG9GaW5kTWFueUFmdGVy
RGlzYWJsaW5nSW1wbGljaXRXYWl0cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJk
eW5hbWljLmh0bWwiKQorICAgIGFkZCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImFkZGVy
IikKKyAgICBkcml2ZXIuaW1wbGljaXRseV93YWl0KDEuMSkKKyAgICBkcml2ZXIuaW1wbGljaXRs
eV93YWl0KDApCisgICAgYWRkLmNsaWNrKCkKKyAgICBlbGVtZW50cyA9IGRyaXZlci5maW5kX2Vs
ZW1lbnRzX2J5X2NsYXNzX25hbWUoInJlZGJveCIpCisgICAgYXNzZXJ0IDAgPT0gbGVuKGVsZW1l
bnRzKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ludGVyYWN0aW9uc190ZXN0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9pbnRlcmFjdGlvbnNfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmQwMmQzMTYxNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL2ludGVy
YWN0aW9uc190ZXN0cy5weQpAQCAtMCwwICsxLDIzNSBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29m
dHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250
cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3Ry
aWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2Fy
ZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMg
dG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGlj
ZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisj
IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2Ug
YXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMK
KyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmli
dXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU
SU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUg
TGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9u
cyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIlRlc3RzIGZvciBh
ZHZhbmNlZCB1c2VyIGludGVyYWN0aW9ucy4iIiIKK2ltcG9ydCBweXRlc3QKKworZnJvbSBzZWxl
bml1bS53ZWJkcml2ZXIuY29tbW9uLmtleXMgaW1wb3J0IEtleXMKK2Zyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyLmNvbW1vbi5hY3Rpb25fY2hhaW5zIGltcG9ydCBBY3Rpb25DaGFpbnMKK2Zyb20gc2Vs
ZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZlcldhaXQKKworCitkZWYg
cGVyZm9ybURyYWdBbmREcm9wV2l0aE1vdXNlKGRyaXZlciwgcGFnZXMpOgorICAgICIiIkNvcGll
ZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5pdW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01vdXNlSW50
ZXJmYWNlLiIiIgorICAgIHBhZ2VzLmxvYWQoImRyYWdnYWJsZUxpc3RzLmh0bWwiKQorICAgIGRy
YWdSZXBvcnRlciA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRyYWdnaW5nX3JlcG9ydHMi
KQorICAgIHRvRHJhZyA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJpZ2h0aXRlbS0zIikK
KyAgICBkcmFnSW50byA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInNvcnRhYmxlMSIpCisK
KyAgICBob2xkSXRlbSA9IEFjdGlvbkNoYWlucyhkcml2ZXIpLmNsaWNrX2FuZF9ob2xkKHRvRHJh
ZykKKyAgICBtb3ZlVG9TcGVjaWZpY0l0ZW0gPSBBY3Rpb25DaGFpbnMoZHJpdmVyKSBcCisgICAg
ICAgIC5tb3ZlX3RvX2VsZW1lbnQoZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibGVmdGl0ZW0t
NCIpKQorICAgIG1vdmVUb090aGVyTGlzdCA9IEFjdGlvbkNoYWlucyhkcml2ZXIpLm1vdmVfdG9f
ZWxlbWVudChkcmFnSW50bykKKyAgICBkcm9wID0gQWN0aW9uQ2hhaW5zKGRyaXZlcikucmVsZWFz
ZShkcmFnSW50bykKKyAgICBhc3NlcnQgIk5vdGhpbmcgaGFwcGVuZWQuIiA9PSBkcmFnUmVwb3J0
ZXIudGV4dAorCisgICAgaG9sZEl0ZW0ucGVyZm9ybSgpCisgICAgbW92ZVRvU3BlY2lmaWNJdGVt
LnBlcmZvcm0oKQorICAgIG1vdmVUb090aGVyTGlzdC5wZXJmb3JtKCkKKyAgICBhc3NlcnQgIk5v
dGhpbmcgaGFwcGVuZWQuIERyYWdPdXQiID09IGRyYWdSZXBvcnRlci50ZXh0CisKKyAgICBkcm9w
LnBlcmZvcm0oKQorCisKK2RlZiB0ZXN0RHJhZ2dpbmdFbGVtZW50V2l0aE1vdXNlTW92ZXNJdFRv
QW5vdGhlckxpc3QoZHJpdmVyLCBwYWdlcyk6CisgICAgIiIiQ29waWVkIGZyb20gb3JnLm9wZW5x
YS5zZWxlbml1bS5pbnRlcmFjdGlvbnMuVGVzdEJhc2ljTW91c2VJbnRlcmZhY2UuIiIiCisgICAg
cGVyZm9ybURyYWdBbmREcm9wV2l0aE1vdXNlKGRyaXZlciwgcGFnZXMpCisgICAgZHJhZ0ludG8g
PSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJzb3J0YWJsZTEiKQorICAgIGFzc2VydCA2ID09
IGxlbihkcmFnSW50by5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJsaSIpKQorCisKK2RlZiB0
ZXN0RHJhZ2dpbmdFbGVtZW50V2l0aE1vdXNlRmlyZXNFdmVudHMoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgIiIiQ29waWVkIGZyb20gb3JnLm9wZW5xYS5zZWxlbml1bS5pbnRlcmFjdGlvbnMuVGVzdEJh
c2ljTW91c2VJbnRlcmZhY2UuIiIiCisgICAgcGVyZm9ybURyYWdBbmREcm9wV2l0aE1vdXNlKGRy
aXZlciwgcGFnZXMpCisgICAgZHJhZ1JlcG9ydGVyID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9p
ZCgiZHJhZ2dpbmdfcmVwb3J0cyIpCisgICAgYXNzZXJ0ICJOb3RoaW5nIGhhcHBlbmVkLiBEcmFn
T3V0IERyb3BJbiBSaWdodEl0ZW0gMyIgPT0gZHJhZ1JlcG9ydGVyLnRleHQKKworCitkZWYgX2lz
RWxlbWVudEF2YWlsYWJsZShkcml2ZXIsIGlkKToKKyAgICAiIiJDb3BpZWQgZnJvbSBvcmcub3Bl
bnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUludGVyZmFjZS4iIiIKKyAg
ICB0cnk6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoaWQpCisgICAgICAgIHJl
dHVybiBUcnVlCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisK
KworZGVmIHRlc3REcmFnQW5kRHJvcChkcml2ZXIsIHBhZ2VzKToKKyAgICAiIiJDb3BpZWQgZnJv
bSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUludGVyZmFj
ZS4iIiIKKyAgICBlbGVtZW50X2F2YWlsYWJsZV90aW1lb3V0ID0gMTUKKyAgICB3YWl0ID0gV2Vi
RHJpdmVyV2FpdChkcml2ZXIsIGVsZW1lbnRfYXZhaWxhYmxlX3RpbWVvdXQpCisgICAgcGFnZXMu
bG9hZCgiZHJvcHBhYmxlSXRlbXMuaHRtbCIpCisgICAgd2FpdC51bnRpbChsYW1iZGEgZHI6IF9p
c0VsZW1lbnRBdmFpbGFibGUoZHJpdmVyLCAiZHJhZ2dhYmxlIikpCisKKyAgICBpZiBub3QgX2lz
RWxlbWVudEF2YWlsYWJsZShkcml2ZXIsICJkcmFnZ2FibGUiKToKKyAgICAgICAgcmFpc2UgQXNz
ZXJ0aW9uRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGRyYWdnYWJsZSBlbGVtZW50IGFmdGVyIDE1IHNl
Y29uZHMuIikKKworICAgIHRvRHJhZyA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRyYWdn
YWJsZSIpCisgICAgZHJvcEludG8gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkcm9wcGFi
bGUiKQorCisgICAgaG9sZERyYWcgPSBBY3Rpb25DaGFpbnMoZHJpdmVyKSBcCisgICAgICAgIC5j
bGlja19hbmRfaG9sZCh0b0RyYWcpCisgICAgbW92ZSA9IEFjdGlvbkNoYWlucyhkcml2ZXIpIFwK
KyAgICAgICAgLm1vdmVfdG9fZWxlbWVudChkcm9wSW50bykKKyAgICBkcm9wID0gQWN0aW9uQ2hh
aW5zKGRyaXZlcikucmVsZWFzZShkcm9wSW50bykKKworICAgIGhvbGREcmFnLnBlcmZvcm0oKQor
ICAgIG1vdmUucGVyZm9ybSgpCisgICAgZHJvcC5wZXJmb3JtKCkKKworICAgIGRyb3BJbnRvID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZHJvcHBhYmxlIikKKyAgICB0ZXh0ID0gZHJvcElu
dG8uZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJwIikudGV4dAorICAgIGFzc2VydCAiRHJvcHBl
ZCEiID09IHRleHQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAgICByZWFz
b249J2h0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82NjEnKQor
ZGVmIHRlc3REb3VibGVDbGljayhkcml2ZXIsIHBhZ2VzKToKKyAgICAiIiJDb3BpZWQgZnJvbSBv
cmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9ucy5UZXN0QmFzaWNNb3VzZUludGVyZmFjZS4i
IiIKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICB0b0RvdWJsZUNs
aWNrID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZG91YmxlQ2xpY2tGaWVsZCIpCisKKyAg
ICBkYmxDbGljayA9IEFjdGlvbkNoYWlucyhkcml2ZXIpIFwKKyAgICAgICAgLmRvdWJsZV9jbGlj
ayh0b0RvdWJsZUNsaWNrKQorCisgICAgZGJsQ2xpY2sucGVyZm9ybSgpCisgICAgYXNzZXJ0ICJE
b3VibGVDbGlja2VkIiA9PSB0b0RvdWJsZUNsaWNrLmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0naHR0cHM6Ly9naXRo
dWIuY29tL2FyaXlhL3BoYW50b21qcy9pc3N1ZXMvMTQwMDUnKQorZGVmIHRlc3RDb250ZXh0Q2xp
Y2soZHJpdmVyLCBwYWdlcyk6CisgICAgIiIiQ29waWVkIGZyb20gb3JnLm9wZW5xYS5zZWxlbml1
bS5pbnRlcmFjdGlvbnMuVGVzdEJhc2ljTW91c2VJbnRlcmZhY2UuIiIiCisgICAgcGFnZXMubG9h
ZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgdG9Db250ZXh0Q2xpY2sgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X2lkKCJkb3VibGVDbGlja0ZpZWxkIikKKworICAgIGNvbnRleHRDbGljayA9
IEFjdGlvbkNoYWlucyhkcml2ZXIpIFwKKyAgICAgICAgLmNvbnRleHRfY2xpY2sodG9Db250ZXh0
Q2xpY2spCisKKyAgICBjb250ZXh0Q2xpY2sucGVyZm9ybSgpCisgICAgYXNzZXJ0ICJDb250ZXh0
Q2xpY2tlZCIgPT0gdG9Db250ZXh0Q2xpY2suZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQorCisKK2Rl
ZiB0ZXN0TW92ZUFuZENsaWNrKGRyaXZlciwgcGFnZXMpOgorICAgICIiIkNvcGllZCBmcm9tIG9y
Zy5vcGVucWEuc2VsZW5pdW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01vdXNlSW50ZXJmYWNlLiIi
IgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHRvQ2xpY2sgPSBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJjbGlja0ZpZWxkIikKKworICAgIGNsaWNrID0gQWN0
aW9uQ2hhaW5zKGRyaXZlcikgXAorICAgICAgICAubW92ZV90b19lbGVtZW50KHRvQ2xpY2spIFwK
KyAgICAgICAgLmNsaWNrKCkKKworICAgIGNsaWNrLnBlcmZvcm0oKQorICAgIGFzc2VydCAiQ2xp
Y2tlZCIgPT0gdG9DbGljay5nZXRfYXR0cmlidXRlKCd2YWx1ZScpCisKKworZGVmIHRlc3RDYW5u
b3RNb3ZlVG9BTnVsbExvY2F0b3IoZHJpdmVyLCBwYWdlcyk6CisgICAgIiIiQ29waWVkIGZyb20g
b3JnLm9wZW5xYS5zZWxlbml1bS5pbnRlcmFjdGlvbnMuVGVzdEJhc2ljTW91c2VJbnRlcmZhY2Uu
IiIiCisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICBtb3ZlID0gQWN0aW9uQ2hhaW5z
KGRyaXZlcikgXAorICAgICAgICAgICAgLm1vdmVfdG9fZWxlbWVudChOb25lKQorICAgICAgICBt
b3ZlLnBlcmZvcm0oKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAgIHJl
YXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MjE3
OCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmly
ZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorZGVmIHRlc3RDbGlja2luZ09uRm9ybUVs
ZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgICIiIkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2Vs
ZW5pdW0uaW50ZXJhY3Rpb25zLkNvbWJpbmVkSW5wdXRBY3Rpb25zVGVzdC4iIiIKKyAgICBwYWdl
cy5sb2FkKCJmb3JtU2VsZWN0aW9uUGFnZS5odG1sIikKKyAgICBvcHRpb25zID0gZHJpdmVyLmZp
bmRfZWxlbWVudHNfYnlfdGFnX25hbWUoIm9wdGlvbiIpCisgICAgc2VsZWN0VGhyZWVPcHRpb25z
ID0gQWN0aW9uQ2hhaW5zKGRyaXZlcikgXAorICAgICAgICAuY2xpY2sob3B0aW9uc1sxXSkgXAor
ICAgICAgICAua2V5X2Rvd24oS2V5cy5TSElGVCkgXAorICAgICAgICAuY2xpY2sob3B0aW9uc1sy
XSkgXAorICAgICAgICAuY2xpY2sob3B0aW9uc1szXSkgXAorICAgICAgICAua2V5X3VwKEtleXMu
U0hJRlQpCisgICAgc2VsZWN0VGhyZWVPcHRpb25zLnBlcmZvcm0oKQorCisgICAgc2hvd0J1dHRv
biA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgic2hvd3NlbGVjdGVkIikKKyAgICBzaG93
QnV0dG9uLmNsaWNrKCkKKworICAgIHJlc3VsdEVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJyZXN1bHQiKQorICAgIGFzc2VydCAicm9xdWVmb3J0IHBhcm1pZ2lhbm8gY2hlZGRh
ciIgPT0gcmVzdWx0RWxlbWVudC50ZXh0CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0
dGUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjkyMTc4JykKK2RlZiB0ZXN0U2VsZWN0aW5nTXVsdGlwbGVJdGVtcyhkcml2ZXIsIHBh
Z2VzKToKKyAgICAiIiJDb3BpZWQgZnJvbSBvcmcub3BlbnFhLnNlbGVuaXVtLmludGVyYWN0aW9u
cy5Db21iaW5lZElucHV0QWN0aW9uc1Rlc3QuIiIiCisgICAgcGFnZXMubG9hZCgic2VsZWN0YWJs
ZUl0ZW1zLmh0bWwiKQorICAgIHJlcG9ydGluZ0VsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
X2J5X2lkKCJpbmZvZGl2IikKKyAgICBhc3NlcnQgIm5vIGluZm8iID09IHJlcG9ydGluZ0VsZW1l
bnQudGV4dAorCisgICAgbGlzdEl0ZW1zID0gZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfdGFnX25h
bWUoImxpIikKKyAgICBzZWxlY3RUaHJlZUl0ZW1zID0gQWN0aW9uQ2hhaW5zKGRyaXZlcikgXAor
ICAgICAgICAua2V5X2Rvd24oS2V5cy5DT05UUk9MKSBcCisgICAgICAgIC5jbGljayhsaXN0SXRl
bXNbMV0pIFwKKyAgICAgICAgLmNsaWNrKGxpc3RJdGVtc1szXSkgXAorICAgICAgICAuY2xpY2so
bGlzdEl0ZW1zWzVdKSBcCisgICAgICAgIC5rZXlfdXAoS2V5cy5DT05UUk9MKQorICAgIHNlbGVj
dFRocmVlSXRlbXMucGVyZm9ybSgpCisKKyAgICBhc3NlcnQgIiNpdGVtMiAjaXRlbTQgI2l0ZW02
IiA9PSByZXBvcnRpbmdFbGVtZW50LnRleHQKKworICAgICMgTm93IGNsaWNrIG9uIGFub3RoZXIg
ZWxlbWVudCwgbWFrZSBzdXJlIHRoYXQncyB0aGUgb25seSBvbmUgc2VsZWN0ZWQuCisgICAgYWN0
aW9uc0J1aWxkZXIgPSBBY3Rpb25DaGFpbnMoZHJpdmVyKQorICAgIGFjdGlvbnNCdWlsZGVyLmNs
aWNrKGxpc3RJdGVtc1s2XSkucGVyZm9ybSgpCisgICAgYXNzZXJ0ICIjaXRlbTciID09IHJlcG9y
dGluZ0VsZW1lbnQudGV4dAorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKAorICAg
IHJlYXNvbj0naHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIvaXNzdWVzLzY0
NicpCitkZWYgdGVzdFNlbmRpbmdLZXlzVG9BY3RpdmVFbGVtZW50V2l0aE1vZGlmaWVyKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGUgPSBkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJ3b3JraW5nIikKKyAgICBlLmNsaWNrKCkKKworICAgIEFj
dGlvbkNoYWlucyhkcml2ZXIpIFwKKyAgICAgICAgLmtleV9kb3duKEtleXMuU0hJRlQpIFwKKyAg
ICAgICAgLnNlbmRfa2V5cygiYWJjIikgXAorICAgICAgICAua2V5X3VwKEtleXMuU0hJRlQpIFwK
KyAgICAgICAgLnBlcmZvcm0oKQorCisgICAgYXNzZXJ0ICJBQkMiID09IGUuZ2V0X2F0dHJpYnV0
ZSgndmFsdWUnKQorCisKK2RlZiB0ZXN0X2Nhbl9yZXNldF9pbnRlcmFjdGlvbnMoZHJpdmVyLCBw
YWdlcyk6CisgICAgQWN0aW9uQ2hhaW5zKGRyaXZlcikucmVzZXRfYWN0aW9ucygpCisKKworZGVm
IHRlc3RfY2FuX3BhdXNlKGRyaXZlciwgcGFnZXMpOgorICAgIGZyb20gdGltZSBpbXBvcnQgdGlt
ZQorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorCisgICAgcGF1c2VfdGlt
ZSA9IDIKKyAgICB0b0NsaWNrID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2xpY2tGaWVs
ZCIpCisgICAgdG9Eb3VibGVDbGljayA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRvdWJs
ZUNsaWNrRmllbGQiKQorCisgICAgcGF1c2UgPSBBY3Rpb25DaGFpbnMoZHJpdmVyKS5jbGljayh0
b0NsaWNrKS5wYXVzZShwYXVzZV90aW1lKS5jbGljayh0b0RvdWJsZUNsaWNrKQorCisgICAgc3Rh
cnQgPSB0aW1lKCkKKyAgICBwYXVzZS5wZXJmb3JtKCkKKyAgICBlbmQgPSB0aW1lKCkKKworICAg
IGFzc2VydCBwYXVzZV90aW1lIDwgZW5kIC0gc3RhcnQKKyAgICBhc3NlcnQgIkNsaWNrZWQiID09
IHRvQ2xpY2suZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQorICAgIGFzc2VydCAiQ2xpY2tlZCIgPT0g
dG9Eb3VibGVDbGljay5nZXRfYXR0cmlidXRlKCd2YWx1ZScpCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vbmV0d29yay5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9uZXR3b3JrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5iMzZkZWI1NzAwZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9uZXR3b3JrLnB5CkBAIC0wLDAgKzEsNTUgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3
YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJp
YnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmli
dXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRp
bmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRv
IHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vu
c2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3
aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisj
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
ZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg
YW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisjIG1vZHVsZSBmb3IgZ2V0
dGluZyB0aGUgbGFuIGlwIGFkZHJlc3Mgb2YgdGhlIGNvbXB1dGVyCitpbXBvcnQgb3MKK2ltcG9y
dCBzb2NrZXQKKworaWYgb3MubmFtZSAhPSAibnQiOgorICAgIGltcG9ydCBmY250bAorICAgIGlt
cG9ydCBzdHJ1Y3QKKworICAgIGRlZiBnZXRfaW50ZXJmYWNlX2lwKGlmbmFtZSk6CisgICAgICAg
IGRlZiBfYnl0ZXModmFsdWUsIGVuY29kaW5nKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gYnl0ZXModmFsdWUsIGVuY29kaW5nKSAgIyBQeXRob24gMworICAgICAg
ICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgICMg
UHl0aG9uIDIKKworICAgICAgICBzY2t0ID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwg
c29ja2V0LlNPQ0tfREdSQU0pCisgICAgICAgIHJldHVybiBzb2NrZXQuaW5ldF9udG9hKGZjbnRs
LmlvY3RsKAorICAgICAgICAgICAgc2NrdC5maWxlbm8oKSwKKyAgICAgICAgICAgIDB4ODkxNSwg
ICMgU0lPQ0dJRkFERFIKKyAgICAgICAgICAgIHN0cnVjdC5wYWNrKCcyNTZzJywgX2J5dGVzKGlm
bmFtZVs6MTVdLCAndXRmLTgnKSkKKyAgICAgICAgKVsyMDoyNF0pCisKKworZGVmIGdldF9sYW5f
aXAoKToKKyAgICB0cnk6CisgICAgICAgIGlwID0gc29ja2V0LmdldGhvc3RieW5hbWUoc29ja2V0
LmdldGhvc3RuYW1lKCkpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuICcw
LjAuMC4wJworICAgIGlmIGlwLnN0YXJ0c3dpdGgoIjEyNy4iKSBhbmQgb3MubmFtZSAhPSAibnQi
OgorICAgICAgICBpbnRlcmZhY2VzID0gWyJldGgwIiwgImV0aDEiLCAiZXRoMiIsICJlbjAiLCAi
ZW4xIiwgImVuMiIsICJlbjMiLAorICAgICAgICAgICAgICAgICAgICAgICJlbjQiLCAid2xhbjAi
LCAid2xhbjEiLCAid2lmaTAiLCAiYXRoMCIsICJhdGgxIiwgInBwcDAiXQorICAgICAgICBmb3Ig
aWZuYW1lIGluIGludGVyZmFjZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
aXAgPSBnZXRfaW50ZXJmYWNlX2lwKGlmbmFtZSkKKyAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgIHJldHVy
biBpcApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL29wYWNpdHlfdGVzdHMucHkgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
b3BhY2l0eV90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MTU5M2U4ZDY3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vb3BhY2l0eV90ZXN0cy5w
eQpAQCAtMCwwICsxLDQ3IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENv
bnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2Ug
YWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlz
IHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBv
d25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5z
ZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWly
ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJl
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJB
UyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBL
SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUK
KyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9u
cworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVt
LndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2ll
CitkZWYgdGVzdFNob3VsZEJlQWJsZVRvQ2xpY2tPbkVsZW1lbnRzV2l0aE9wYWNpdHlaZXJvKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImNsaWNrX2phY2tlci5odG1sIikKKyAgICBl
bGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImNsaWNrSmFja2VyIikKKyAgICBh
c3NlcnQgJzAnID09IGVsZW1lbnQudmFsdWVfb2ZfY3NzX3Byb3BlcnR5KCJvcGFjaXR5IiksIFwK
KyAgICAgICAgIlByZWNvbmRpdGlvbiBmYWlsZWQ6IGNsaWNrSmFja2VyIHNob3VsZCBiZSB0cmFu
c3BhcmVudC5cCisgICAgICAgIFZhbHVlIHdhcyAlcyIgJSBlbGVtZW50LnZhbHVlX29mX2Nzc19w
cm9wZXJ0eSgib3BhY2l0eSIpCisgICAgZWxlbWVudC5jbGljaygpCisgICAgYXNzZXJ0ICcxJyA9
PSBlbGVtZW50LnZhbHVlX29mX2Nzc19wcm9wZXJ0eSgib3BhY2l0eSIpCisKKworQHB5dGVzdC5t
YXJrLnhmYWlsX2llCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvU2VsZWN0T3B0aW9uc0Zyb21Bbklu
dmlzaWJsZVNlbGVjdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5o
dG1sIikKKyAgICBzZWxlY3QgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaW52aXNpX3Nl
bGVjdCIpCisgICAgb3B0aW9ucyA9IHNlbGVjdC5maW5kX2VsZW1lbnRzKEJ5LlRBR19OQU1FLCAi
b3B0aW9uIikKKyAgICBhcHBsZXMgPSBvcHRpb25zWzBdCisgICAgb3JhbmdlcyA9IG9wdGlvbnNb
MV0KKworICAgIGFzc2VydCBhcHBsZXMuaXNfc2VsZWN0ZWQoKQorICAgIGFzc2VydCBub3Qgb3Jh
bmdlcy5pc19zZWxlY3RlZCgpCisKKyAgICBvcmFuZ2VzLmNsaWNrKCkKKyAgICBhc3NlcnQgbm90
IGFwcGxlcy5pc19zZWxlY3RlZCgpCisgICAgYXNzZXJ0IG9yYW5nZXMuaXNfc2VsZWN0ZWQoKQpk
aWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZF90aW1lb3V0X3Rlc3RzLnB5IGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3BhZ2VfbG9hZF90aW1lb3V0X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5iMWUzNzUwMjY1MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9w
YWdlX2xvYWRfdGltZW91dF90ZXN0cy5weQpAQCAtMCwwICsxLDQzIEBACisjIExpY2Vuc2VkIHRv
IHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBt
b3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUK
KyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24K
KyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMg
ZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
CisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUg
TGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNF
LTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRv
IGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBP
UiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAg
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBl
cm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0
IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBUaW1lb3V0
RXhjZXB0aW9uCisKKworQHB5dGVzdC55aWVsZF9maXh0dXJlKGF1dG91c2U9VHJ1ZSkKK2RlZiBy
ZXNldF90aW1lb3V0cyhkcml2ZXIpOgorICAgIHlpZWxkCisgICAgZHJpdmVyLnNldF9wYWdlX2xv
YWRfdGltZW91dCgzMDApCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICBy
ZWFzb249J1BoYW50b21KUyBkb2VzIG5vdCBpbXBsZW1lbnQgcGFnZSBsb2FkIHRpbWVvdXRzJykK
K2RlZiB0ZXN0U2hvdWxkVGltZW91dE9uUGFnZUxvYWRUYWtpbmdUb29Mb25nKGRyaXZlciwgcGFn
ZXMpOgorICAgIGRyaXZlci5zZXRfcGFnZV9sb2FkX3RpbWVvdXQoMC4wMSkKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIHBhZ2VzLmxvYWQoInNpbXBs
ZVRlc3QuaHRtbCIpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFz
b249J1BoYW50b21KUyBkb2VzIG5vdCBpbXBsZW1lbnQgcGFnZSBsb2FkIHRpbWVvdXRzJykKK2Rl
ZiB0ZXN0Q2xpY2tTaG91bGRUaW1lb3V0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
InNpbXBsZVRlc3QuaHRtbCIpCisgICAgZHJpdmVyLnNldF9wYWdlX2xvYWRfdGltZW91dCgwLjAx
KQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9pZCgibXVsdGlsaW5lbGluayIpLmNsaWNrKCkKZGlmZiAtLWdp
dCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRlci5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9wYWdlX2xvYWRlci5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGFmOGZjYWM0YzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3Nl
bGVuaXVtL3dlYmRyaXZlci9jb21tb24vcGFnZV9sb2FkZXIucHkKQEAgLTAsMCArMSwzMiBAQAor
IyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRl
ciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhl
IE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBs
aWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVy
c2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4
Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBh
IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj
ZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3
IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vu
c2UuCisKKyIiIlRoaXMgbW9kdWxlIGNvbnRhaW5zIHNvbWUgZGVjb3JhdG9ycyB0aGF0IGNhbiBi
ZSB1c2VkIHRvIHN1cHBvcnQKK3RoZSBwYWdlIG1vZGVscy4gRm9yIGV4YW1wbGUgZm9yIGFuIGFj
dGlvbiB0aGF0IG5lZWRzIGEgcGFnZSB0byBiZSBmdWxseQorbG9hZGVkLCB0aGUgQHJlcXVpcmVf
bG9hZGVkIGRlY29yYXRvciB3aWxsIG1ha2Ugc3VyZSB0aGUgcGFnZSBpcyBsb2FkZWQKK2JlZm9y
ZSB0aGUgY2FsbCBpcyBpbnZva2VkLgorVGhpcyBwYXR0ZXJuIGlzIGFsc28gdXNlZnVsIGZvciB3
YWl0aW5nIGZvciBjZXJ0YWluIGFzeW5jaHJvbm91cyBldmVudHMKK3RvIGhhcHBlbiBiZWZvcmUg
ZXhjdXRpbmcgY2VydGFpbiBhY3Rpb25zLiIiIgorCisKK2RlZiByZXF1aXJlX2xvYWRlZChmdW5j
KToKKyAgICBkZWYgbG9hZF9wYWdlKHBhZ2UsICpwYXJhbXMsICoqa3dkcyk6CisgICAgICAgIGlm
IG5vdCBwYWdlLmlzX2xvYWRlZCgpOgorICAgICAgICAgICAgcGFnZS5sb2FkKCkKKyAgICAgICAg
YXNzZXJ0IHBhZ2UuaXNfbG9hZGVkKCksICJwYWdlIHNob3VsZCBiZSBsb2FkZWQgYnkgbm93Igor
ICAgICAgICByZXR1cm4gZnVuYyhwYWdlLCAqcGFyYW1zLCAqKmt3ZHMpCisgICAgcmV0dXJuIGxv
YWRfcGFnZQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3BhZ2VfbG9hZGluZ190ZXN0cy5weSBiL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9wYWdlX2xvYWRpbmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjQ4NTMzMGIzZDhjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Bh
Z2VfbG9hZGluZ190ZXN0cy5weQpAQCAtMCwwICsxLDEyOCBAQAorIyBMaWNlbnNlZCB0byB0aGUg
U29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBj
b250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRp
c3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJl
Z2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUK
KyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAi
TGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl
CisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vu
c2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK
KyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0
cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09O
RElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0
aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz
aW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9ydCBweXRl
c3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhj
ZXB0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQgaW1wb3J0IFdlYkRyaXZlcldhaXQKK2Zy
b20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMg
YXMgRUMKKworCitkZWYgdGVzdFNob3VsZFdhaXRGb3JEb2N1bWVudFRvQmVMb2FkZWQoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBhc3NlcnQg
ZHJpdmVyLnRpdGxlID09ICJIZWxsbyBXZWJEcml2ZXIiCisKKworIyBEaXNhYmxlZCB0aWxsIEph
dmEgV2ViU2VydmVyIGlzIHVzZWQKKyMgZGVmIHRlc3RTaG91bGRGb2xsb3dSZWRpcmVjdHNTZW50
SW5UaGVIdHRwUmVzcG9uc2VIZWFkZXJzKGRyaXZlciwgcGFnZXMpOgorIyAgICBwYWdlcy5sb2Fk
KCJyZWRpcmVjdC5odG1sIikKKyMgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZl
IEhlcmUiCisKKworIyBEaXNhYmxlZCB0aWxsIHRoZSBKYXZhIFdlYlNlcnZlciBpcyB1c2VkCisj
IGRlZiB0ZXN0U2hvdWxkRm9sbG93TWV0YVJlZGlyZWN0cyhkcml2ZXIsIHBhZ2VzKToKKyMgICAg
cGFnZXMubG9hZCgibWV0YVJlZGlyZWN0Lmh0bWwiKQorIyAgICBhc3NlcnQgZHJpdmVyLnRpdGxl
ID09ICJXZSBBcnJpdmUgSGVyZSIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvR2V0QUZyYWdt
ZW50T25UaGVDdXJyZW50UGFnZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRt
bFRlc3QuaHRtbCIpCisgICAgbG9jYXRpb24gPSBkcml2ZXIuY3VycmVudF91cmwKKyAgICBkcml2
ZXIuZ2V0KGxvY2F0aW9uICsgIiN0ZXh0IikKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5
LklELCB2YWx1ZT0iaWQxIikKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZShyYWlz
ZXM9V2ViRHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RTaG91bGRSZXR1cm5XaGVuR2V0dGluZ0FV
cmxUaGF0RG9lc05vdFJlc29sdmUoZHJpdmVyKToKKyAgICAjICBPZiBjb3Vyc2UsIHdlJ3JlIHVw
IHRoZSBjcmVlayBpZiB0aGlzIGV2ZXIgZG9lcyBnZXQgcmVnaXN0ZXJlZAorICAgIGRyaXZlci5n
ZXQoImh0dHA6Ly93d3cudGhpc3VybGRvZXNub3RleGlzdC5jb214LyIpCisKKworQHB5dGVzdC5t
YXJrLnhmYWlsX21hcmlvbmV0dGUocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbikKK2RlZiB0ZXN0
U2hvdWxkUmV0dXJuV2hlbkdldHRpbmdBVXJsVGhhdERvZXNOb3RDb25uZWN0KGRyaXZlcik6Cisg
ICAgIyAgSGVyZSdzIGhvcGluZyB0aGF0IHRoZXJlJ3Mgbm90aGluZyBoZXJlLiBUaGVyZSBzaG91
bGRuJ3QgYmUKKyAgICBkcml2ZXIuZ2V0KCJodHRwOi8vbG9jYWxob3N0OjMwMDEiKQorCisjIGRl
ZiB0ZXN0U2hvdWxkQmVBYmxlVG9Mb2FkQVBhZ2VXaXRoRnJhbWVzZXRzQW5kV2FpdFVudGlsQWxs
RnJhbWVzQXJlTG9hZGVkKCkgeworIyAgICAgZHJpdmVyLmdldChwYWdlcy5mcmFtZXNldFBhZ2Up
CisjCisjICAgICBkcml2ZXIuc3dpdGNoVG8oKS5mcmFtZSgwKQorIyAgICAgV2ViRWxlbWVudCBw
YWdlTnVtYmVyID0gZHJpdmVyLmZpbmRFbGVtZW50KEJ5LnhwYXRoKCIjc3BhbltAaWQ9J3BhZ2VO
dW1iZXInXSIpKQorIyAgICAgc2VsZi5hc3NlcnRFcXVhbCgocGFnZU51bWJlci5nZXRUZXh0KCku
dHJpbSgpLCBlcXVhbFRvKCIxIikpCisjCisjICAgICBkcml2ZXIuc3dpdGNoVG8oKS5kZWZhdWx0
Q29udGVudCgpLnN3aXRjaFRvKCkuZnJhbWUoMSkKKyMgICAgIHBhZ2VOdW1iZXIgPSBkcml2ZXIu
ZmluZEVsZW1lbnQoQnkueHBhdGgoIiNzcGFuW0BpZD0ncGFnZU51bWJlciddIikpCisjICAgICBz
ZWxmLmFzc2VydEVxdWFsKChwYWdlTnVtYmVyLmdldFRleHQoKS50cmltKCksIGVxdWFsVG8oIjIi
KSkKKworIyBOZWVkIHRvIGltcGxlbWVudCB0aGlzIGRlY29yYXRvcgorIyBATmVlZHNGcmVzaERy
aXZlcgorIyBkZWYgdGVzdFNvdWxkRG9Ob3RoaW5nSWZUaGVyZUlzTm90aGluZ1RvR29CYWNrVG8o
KSB7CisjICAgICBvcmlnaW5hbFRpdGxlID0gZHJpdmVyLmdldFRpdGxlKCk7CisjICAgICBkcml2
ZXIuZ2V0KHBhZ2VzLmZvcm1QYWdlKTsKKyMgICAgIGRyaXZlci5iYWNrKCk7CisjICAgICAjIFdl
IG1heSBoYXZlIHJldHVybmVkIHRvIHRoZSBicm93c2VyJ3MgaG9tZSBwYWdlCisjICAgICBzZWxm
LmFzc2VydEVxdWFsKGRyaXZlci50aXRsZSwgYW55T2YoZXF1YWxUbyhvcmlnaW5hbFRpdGxlKSwg
ZXF1YWxUbygiV2UgTGVhdmUgRnJvbSBIZXJlIikpKTsKKworCitkZWYgdGVzdFNob3VsZEJlQWJs
ZVRvTmF2aWdhdGVCYWNrSW5UaGVCcm93c2VySGlzdG9yeShkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworICAgIGRyaXZlci5maW5kX2VsZW1lbnQoYnk9
QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCisgICAgV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDMpLnVudGlsKEVDLnRpdGxlX2lzKCJXZSBBcnJpdmUgSGVyZSIpKQorCisgICAgZHJp
dmVyLmJhY2soKQorICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIExlYXZlIEZyb20gSGVy
ZSIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvTmF2aWdhdGVCYWNrSW5UaGVCcm93c2VySGlz
dG9yeUluUHJlc2VuY2VPZklmcmFtZXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
eGh0bWxUZXN0Lmh0bWwiKQorCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5OQU1FLCB2
YWx1ZT0ic2FtZVdpbmRvdyIpLmNsaWNrKCkKKworICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0g
IlRoaXMgcGFnZSBoYXMgaWZyYW1lcyIKKworICAgIGRyaXZlci5iYWNrKCkKKyAgICBhc3NlcnQg
ZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCisKKworZGVmIHRlc3RTaG91bGRCZUFi
bGVUb05hdmlnYXRlRm9yd2FyZHNJblRoZUJyb3dzZXJIaXN0b3J5KGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorCisgICAgZHJpdmVyLmZpbmRfZWxlbWVu
dChieT1CeS5JRCwgdmFsdWU9ImltYWdlQnV0dG9uIikuc3VibWl0KCkKKyAgICBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMykudW50aWwoRUMudGl0bGVfaXMoIldlIEFycml2ZSBIZXJlIikpCisKKyAg
ICBkcml2ZXIuYmFjaygpCisgICAgYXNzZXJ0IGRyaXZlci50aXRsZSA9PSAiV2UgTGVhdmUgRnJv
bSBIZXJlIgorCisgICAgZHJpdmVyLmZvcndhcmQoKQorICAgIGFzc2VydCBkcml2ZXIudGl0bGUg
PT0gIldlIEFycml2ZSBIZXJlIgorCisKK0BweXRlc3QubWFyay54ZmFpbF9pZQorQHB5dGVzdC5t
YXJrLnhmYWlsX21hcmlvbmV0dGUocnVuPUZhbHNlKQorZGVmIHRlc3RTaG91bGROb3RIYW5naWZE
b2N1bWVudE9wZW5DYWxsSXNOZXZlckZvbGxvd2VkQnlEb2N1bWVudENsb3NlQ2FsbChkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJkb2N1bWVudF93cml0ZV9pbl9vbmxvYWQuaHRtbCIp
CisgICAgZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwgIi8vYm9keSIpCisKKworZGVmIHRl
c3RTaG91bGRCZUFibGVUb1JlZnJlc2hBUGFnZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisKKyAgICBkcml2ZXIucmVmcmVzaCgpCisKKyAgICBhc3Nl
cnQgZHJpdmVyLnRpdGxlID09ICJYSFRNTCBUZXN0IFBhZ2UiCmRpZmYgLS1naXQgYS9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vcG9zaXRpb25fYW5kX3NpemVfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcG9zaXRpb25fYW5kX3Np
emVfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVkOGJh
NDYyZjg1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Bvc2l0aW9uX2FuZF9zaXplX3Rl
c3RzLnB5CkBAIC0wLDAgKzEsMTA4IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVl
ZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxp
Y2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0
aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHly
aWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5k
ZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlv
dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUg
TGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAg
IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3Mg
cmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNv
ZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFu
CisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFO
WQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZv
ciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1p
dGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5CisKKworZGVmIHRlc3RTaG91bGRC
ZUFibGVUb0RldGVybWluZVRoZUxvY2F0aW9uT2ZBbkVsZW1lbnQoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGxvY2F0aW9uID0gZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5JRCwgInVzZXJuYW1lIikubG9jYXRpb25fb25jZV9zY3JvbGxlZF9pbnRv
X3ZpZXcKKyAgICBhc3NlcnQgbG9jYXRpb25bIngiXSA+IDAKKyAgICBhc3NlcnQgbG9jYXRpb25b
InkiXSA+IDAKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3BhZ2UnLCAoCisgICAgJ2Nv
b3JkaW5hdGVzX3Rlc3RzL3NpbXBsZV9wYWdlLmh0bWwnLAorICAgICdjb29yZGluYXRlc190ZXN0
cy9wYWdlX3dpdGhfZW1wdHlfZWxlbWVudC5odG1sJywKKyAgICAnY29vcmRpbmF0ZXNfdGVzdHMv
cGFnZV93aXRoX3RyYW5zcGFyZW50X2VsZW1lbnQuaHRtbCcsCisgICAgJ2Nvb3JkaW5hdGVzX3Rl
c3RzL3BhZ2Vfd2l0aF9oaWRkZW5fZWxlbWVudC5odG1sJyksCisgICAgaWRzPSgnYmFzaWMnLCAn
ZW1wdHknLCAndHJhbnNwYXJlbnQnLCAnaGlkZGVuJykpCitkZWYgdGVzdFNob3VsZEdldENvb3Jk
aW5hdGVzT2ZBbkVsZW1lbnQocGFnZSwgZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZChw
YWdlKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYm94IikKKyAg
ICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5sb2NhdGlvbl9vbmNlX3Njcm9sbGVkX2ludG9fdmll
dywgeD0xMCwgeT0xMCkKKyAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5sb2NhdGlvbiwgeD0x
MCwgeT0xMCkKKworCitkZWYgdGVzdFNob3VsZEdldENvb3JkaW5hdGVzT2ZBbkludmlzaWJsZUVs
ZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiY29vcmRpbmF0ZXNfdGVzdHMv
cGFnZV93aXRoX2ludmlzaWJsZV9lbGVtZW50Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5LklELCAiYm94IikKKyAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5s
b2NhdGlvbl9vbmNlX3Njcm9sbGVkX2ludG9fdmlldywgeD0wLCB5PTApCisgICAgX2NoZWNrX2xv
Y2F0aW9uKGVsZW1lbnQubG9jYXRpb24sIHg9MCwgeT0wKQorCisKK2RlZiB0ZXN0U2hvdWxkU2Ny
b2xsUGFnZUFuZEdldENvb3JkaW5hdGVzT2ZBbkVsZW1lbnRUaGF0SXNPdXRPZlZpZXdQb3J0KGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImNvb3JkaW5hdGVzX3Rlc3RzL3BhZ2Vfd2l0
aF9lbGVtZW50X291dF9vZl92aWV3Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LklELCAiYm94IikKKyAgICB3aW5kb3dIZWlnaHQgPSBkcml2ZXIuZ2V0X3dpbmRv
d19zaXplKClbImhlaWdodCJdCisgICAgX2NoZWNrX2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb25f
b25jZV9zY3JvbGxlZF9pbnRvX3ZpZXcsIHg9MTApCisgICAgYXNzZXJ0IDAgPD0gZWxlbWVudC5s
b2NhdGlvbl9vbmNlX3Njcm9sbGVkX2ludG9fdmlld1sieSJdIDw9ICh3aW5kb3dIZWlnaHQgLSAx
MDApCisgICAgX2NoZWNrX2xvY2F0aW9uKGVsZW1lbnQubG9jYXRpb24sIHg9MTAsIHk9NTAxMCkK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3Bo
YW50b21qcworZGVmIHRlc3RTaG91bGRHZXRDb29yZGluYXRlc09mQW5FbGVtZW50SW5BRnJhbWUo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiY29vcmRpbmF0ZXNfdGVzdHMvZWxlbWVu
dF9pbl9mcmFtZS5odG1sIikKKyAgICBkcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuTkFNRSwgImlmciIpKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50KEJ5LklELCAiYm94IikKKyAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5sb2NhdGlvbl9v
bmNlX3Njcm9sbGVkX2ludG9fdmlldywgeD0yNSwgeT0yNSkKKyAgICBfY2hlY2tfbG9jYXRpb24o
ZWxlbWVudC5sb2NhdGlvbiwgeD0xMCwgeT0xMCkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFy
aW9uZXR0ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcworZGVmIHRlc3RTaG91bGRHZXRD
b29yZGluYXRlc09mQW5FbGVtZW50SW5BTmVzdGVkRnJhbWUoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiY29vcmRpbmF0ZXNfdGVzdHMvZWxlbWVudF9pbl9uZXN0ZWRfZnJhbWUuaHRt
bCIpCisgICAgZHJpdmVyLnN3aXRjaF90b19mcmFtZShkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5B
TUUsICJpZnIiKSkKKyAgICBkcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKGRyaXZlci5maW5kX2VsZW1l
bnQoQnkuTkFNRSwgImlmciIpKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5
LklELCAiYm94IikKKyAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVudC5sb2NhdGlvbl9vbmNlX3Nj
cm9sbGVkX2ludG9fdmlldywgeD00MCwgeT00MCkKKyAgICBfY2hlY2tfbG9jYXRpb24oZWxlbWVu
dC5sb2NhdGlvbiwgeD0xMCwgeT0xMCkKKworCitkZWYgdGVzdFNob3VsZEdldENvb3JkaW5hdGVz
T2ZBbkVsZW1lbnRXaXRoRml4ZWRQb3NpdGlvbihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJjb29yZGluYXRlc190ZXN0cy9wYWdlX3dpdGhfZml4ZWRfZWxlbWVudC5odG1sIikKKyAg
ICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImZpeGVkIikKKyAgICBfY2hl
Y2tfbG9jYXRpb24oZWxlbWVudC5sb2NhdGlvbl9vbmNlX3Njcm9sbGVkX2ludG9fdmlldywgeT0w
KQorICAgIF9jaGVja19sb2NhdGlvbihlbGVtZW50LmxvY2F0aW9uLCB5PTApCisKKyAgICBkcml2
ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYm90dG9tIikuY2xpY2soKQorICAgIF9jaGVja19sb2Nh
dGlvbihlbGVtZW50LmxvY2F0aW9uX29uY2Vfc2Nyb2xsZWRfaW50b192aWV3LCB5PTApCisgICAg
YXNzZXJ0IGVsZW1lbnQubG9jYXRpb25bInkiXSA+IDAKKworCitkZWYgdGVzdFNob3VsZENvcnJl
Y3RseUlkZW50aWZ5VGhhdEFuRWxlbWVudEhhc1dpZHRoQW5kSGVpZ2h0KGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICBzaHJpbmtvID0gZHJpdmVy
LmZpbmRfZWxlbWVudChCeS5JRCwgImxpbmtJZCIpCisgICAgc2l6ZSA9IHNocmlua28uc2l6ZQor
ICAgIGFzc2VydCBzaXplWyJ3aWR0aCJdID4gMAorICAgIGFzc2VydCBzaXplWyJoZWlnaHQiXSA+
IDAKKworCitkZWYgX2NoZWNrX2xvY2F0aW9uKGxvY2F0aW9uLCAqKmt3YXJncyk6CisgICAgdHJ5
OgorICAgICAgICAjIHB5dGhvbiAyLngKKyAgICAgICAgZXhwZWN0ZWQgPSBrd2FyZ3Mudmlld2l0
ZW1zKCkKKyAgICAgICAgYWN0dWFsID0gbG9jYXRpb24udmlld2l0ZW1zKCkKKyAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6CisgICAgICAgICMgcHl0aG9uIDMueAorICAgICAgICBleHBlY3RlZCA9
IGt3YXJncy5pdGVtcygpCisgICAgICAgIGFjdHVhbCA9IGxvY2F0aW9uLml0ZW1zKCkKKyAgICBh
c3NlcnQgZXhwZWN0ZWQgPD0gYWN0dWFsCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcHJveHlfdGVz
dHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vcHJveHlfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjY1NzM2YzllYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L3Byb3h5X3Rlc3RzLnB5CkBAIC0wLDAgKzEsMTQxIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAor
Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ucHJveHkgaW1wb3J0IFByb3h5LCBQcm94
eVR5cGUKKworCitNQU5VQUxfUFJPWFkgPSB7CisgICAgJ2h0dHBQcm94eSc6ICdzb21lLnVybDox
MjM0JywKKyAgICAnZnRwUHJveHknOiAnZnRwLnByb3h5JywKKyAgICAnbm9Qcm94eSc6ICdsb2Nh
bGhvc3QsIGZvby5sb2NhbGhvc3QnLAorICAgICdzc2xQcm94eSc6ICdzc2wucHJveHk6MTIzNCcs
CisgICAgJ3NvY2tzUHJveHknOiAnc29ja3MucHJveHk6NjU1NTUnLAorICAgICdzb2Nrc1VzZXJu
YW1lJzogJ3Rlc3QnLAorICAgICdzb2Nrc1Bhc3N3b3JkJzogJ3Rlc3QnLAorfQorCitQQUNfUFJP
WFkgPSB7CisgICAgJ3Byb3h5QXV0b2NvbmZpZ1VybCc6ICdodHRwOi8vcGFjLnVybDoxMjM0JywK
K30KKworQVVUT0RFVEVDVF9QUk9YWSA9IHsKKyAgICAnYXV0b2RldGVjdCc6IFRydWUsCit9CisK
KworZGVmIHRlc3RDYW5BZGRNYW51YWxQcm94eVRvRGVzaXJlZENhcGFiaWxpdGllcygpOgorICAg
IHByb3h5ID0gUHJveHkoKQorICAgIHByb3h5Lmh0dHBfcHJveHkgPSBNQU5VQUxfUFJPWFlbJ2h0
dHBQcm94eSddCisgICAgcHJveHkuZnRwX3Byb3h5ID0gTUFOVUFMX1BST1hZWydmdHBQcm94eSdd
CisgICAgcHJveHkubm9fcHJveHkgPSBNQU5VQUxfUFJPWFlbJ25vUHJveHknXQorICAgIHByb3h5
LnNzbFByb3h5ID0gTUFOVUFMX1BST1hZWydzc2xQcm94eSddCisgICAgcHJveHkuc29ja3NQcm94
eSA9IE1BTlVBTF9QUk9YWVsnc29ja3NQcm94eSddCisgICAgcHJveHkuc29ja3NVc2VybmFtZSA9
IE1BTlVBTF9QUk9YWVsnc29ja3NVc2VybmFtZSddCisgICAgcHJveHkuc29ja3NQYXNzd29yZCA9
IE1BTlVBTF9QUk9YWVsnc29ja3NQYXNzd29yZCddCisKKyAgICBkZXNpcmVkX2NhcGFiaWxpdGll
cyA9IHt9CisgICAgcHJveHkuYWRkX3RvX2NhcGFiaWxpdGllcyhkZXNpcmVkX2NhcGFiaWxpdGll
cykKKworICAgIHByb3h5X2NhcGFiaWxpdGllcyA9IE1BTlVBTF9QUk9YWS5jb3B5KCkKKyAgICBw
cm94eV9jYXBhYmlsaXRpZXNbJ3Byb3h5VHlwZSddID0gJ01BTlVBTCcKKyAgICBleHBlY3RlZF9j
YXBhYmlsaXRpZXMgPSB7J3Byb3h5JzogcHJveHlfY2FwYWJpbGl0aWVzfQorICAgIGFzc2VydCBl
eHBlY3RlZF9jYXBhYmlsaXRpZXMgPT0gZGVzaXJlZF9jYXBhYmlsaXRpZXMKKworCitkZWYgdGVz
dENhbkFkZEF1dG9kZXRlY3RQcm94eVRvRGVzaXJlZENhcGFiaWxpdGllcygpOgorICAgIHByb3h5
ID0gUHJveHkoKQorICAgIHByb3h5LmF1dG9fZGV0ZWN0ID0gQVVUT0RFVEVDVF9QUk9YWVsnYXV0
b2RldGVjdCddCisKKyAgICBkZXNpcmVkX2NhcGFiaWxpdGllcyA9IHt9CisgICAgcHJveHkuYWRk
X3RvX2NhcGFiaWxpdGllcyhkZXNpcmVkX2NhcGFiaWxpdGllcykKKworICAgIHByb3h5X2NhcGFi
aWxpdGllcyA9IEFVVE9ERVRFQ1RfUFJPWFkuY29weSgpCisgICAgcHJveHlfY2FwYWJpbGl0aWVz
Wydwcm94eVR5cGUnXSA9ICdBVVRPREVURUNUJworICAgIGV4cGVjdGVkX2NhcGFiaWxpdGllcyA9
IHsncHJveHknOiBwcm94eV9jYXBhYmlsaXRpZXN9CisgICAgYXNzZXJ0IGV4cGVjdGVkX2NhcGFi
aWxpdGllcyA9PSBkZXNpcmVkX2NhcGFiaWxpdGllcworCisKK2RlZiB0ZXN0Q2FuQWRkUEFDUHJv
eHlUb0Rlc2lyZWRDYXBhYmlsaXRpZXMoKToKKyAgICBwcm94eSA9IFByb3h5KCkKKyAgICBwcm94
eS5wcm94eV9hdXRvY29uZmlnX3VybCA9IFBBQ19QUk9YWVsncHJveHlBdXRvY29uZmlnVXJsJ10K
KworICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzID0ge30KKyAgICBwcm94eS5hZGRfdG9fY2FwYWJp
bGl0aWVzKGRlc2lyZWRfY2FwYWJpbGl0aWVzKQorCisgICAgcHJveHlfY2FwYWJpbGl0aWVzID0g
UEFDX1BST1hZLmNvcHkoKQorICAgIHByb3h5X2NhcGFiaWxpdGllc1sncHJveHlUeXBlJ10gPSAn
UEFDJworICAgIGV4cGVjdGVkX2NhcGFiaWxpdGllcyA9IHsncHJveHknOiBwcm94eV9jYXBhYmls
aXRpZXN9CisgICAgYXNzZXJ0IGV4cGVjdGVkX2NhcGFiaWxpdGllcyA9PSBkZXNpcmVkX2NhcGFi
aWxpdGllcworCisKK2RlZiB0ZXN0Q2FuTm90Q2hhbmdlSW5pdGlhbGl6ZWRQcm94eVR5cGUoKToK
KyAgICBwcm94eSA9IFByb3h5KHJhdz17J3Byb3h5VHlwZSc6ICdkaXJlY3QnfSkKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uKToKKyAgICAgICAgcHJveHkucHJveHlfdHlwZSA9IFBy
b3h5VHlwZS5TWVNURU0KKworICAgIHByb3h5ID0gUHJveHkocmF3PXsncHJveHlUeXBlJzogUHJv
eHlUeXBlLkRJUkVDVH0pCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbik6CisgICAg
ICAgIHByb3h5LnByb3h5X3R5cGUgPSBQcm94eVR5cGUuU1lTVEVNCisKKworZGVmIHRlc3RDYW5J
bml0TWFudWFsUHJveHkoKToKKyAgICBwcm94eSA9IFByb3h5KHJhdz1NQU5VQUxfUFJPWFkpCisK
KyAgICBhc3NlcnQgUHJveHlUeXBlLk1BTlVBTCA9PSBwcm94eS5wcm94eV90eXBlCisgICAgYXNz
ZXJ0IE1BTlVBTF9QUk9YWVsnaHR0cFByb3h5J10gPT0gcHJveHkuaHR0cF9wcm94eQorICAgIGFz
c2VydCBNQU5VQUxfUFJPWFlbJ2Z0cFByb3h5J10gPT0gcHJveHkuZnRwX3Byb3h5CisgICAgYXNz
ZXJ0IE1BTlVBTF9QUk9YWVsnbm9Qcm94eSddID09IHByb3h5Lm5vX3Byb3h5CisgICAgYXNzZXJ0
IE1BTlVBTF9QUk9YWVsnc3NsUHJveHknXSA9PSBwcm94eS5zc2xQcm94eQorICAgIGFzc2VydCBN
QU5VQUxfUFJPWFlbJ3NvY2tzUHJveHknXSA9PSBwcm94eS5zb2Nrc1Byb3h5CisgICAgYXNzZXJ0
IE1BTlVBTF9QUk9YWVsnc29ja3NVc2VybmFtZSddID09IHByb3h5LnNvY2tzVXNlcm5hbWUKKyAg
ICBhc3NlcnQgTUFOVUFMX1BST1hZWydzb2Nrc1Bhc3N3b3JkJ10gPT0gcHJveHkuc29ja3NQYXNz
d29yZAorCisKK2RlZiB0ZXN0Q2FuSW5pdEF1dG9kZXRlY3RQcm94eSgpOgorICAgIHByb3h5ID0g
UHJveHkocmF3PUFVVE9ERVRFQ1RfUFJPWFkpCisgICAgYXNzZXJ0IFByb3h5VHlwZS5BVVRPREVU
RUNUID09IHByb3h5LnByb3h5X3R5cGUKKyAgICBhc3NlcnQgQVVUT0RFVEVDVF9QUk9YWVsnYXV0
b2RldGVjdCddID09IHByb3h5LmF1dG9fZGV0ZWN0CisKKworZGVmIHRlc3RDYW5Jbml0UEFDUHJv
eHkoKToKKyAgICBwcm94eSA9IFByb3h5KHJhdz1QQUNfUFJPWFkpCisgICAgYXNzZXJ0IFByb3h5
VHlwZS5QQUMgPT0gcHJveHkucHJveHlfdHlwZQorICAgIGFzc2VydCBQQUNfUFJPWFlbJ3Byb3h5
QXV0b2NvbmZpZ1VybCddID09IHByb3h5LnByb3h5X2F1dG9jb25maWdfdXJsCisKKworZGVmIHRl
c3RDYW5Jbml0RW1wdHlQcm94eSgpOgorICAgIHByb3h5ID0gUHJveHkoKQorICAgIGFzc2VydCBQ
cm94eVR5cGUuVU5TUEVDSUZJRUQgPT0gcHJveHkucHJveHlfdHlwZQorICAgIGFzc2VydCAnJyA9
PSBwcm94eS5odHRwX3Byb3h5CisgICAgYXNzZXJ0ICcnID09IHByb3h5LmZ0cF9wcm94eQorICAg
IGFzc2VydCAnJyA9PSBwcm94eS5ub19wcm94eQorICAgIGFzc2VydCAnJyA9PSBwcm94eS5zc2xQ
cm94eQorICAgIGFzc2VydCAnJyA9PSBwcm94eS5zb2Nrc1Byb3h5CisgICAgYXNzZXJ0ICcnID09
IHByb3h5LnNvY2tzVXNlcm5hbWUKKyAgICBhc3NlcnQgJycgPT0gcHJveHkuc29ja3NQYXNzd29y
ZAorICAgIGFzc2VydCBwcm94eS5hdXRvX2RldGVjdCBpcyBGYWxzZQorICAgIGFzc2VydCAnJyA9
PSBwcm94eS5wcm94eV9hdXRvY29uZmlnX3VybAorCisgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXMg
PSB7fQorICAgIHByb3h5LmFkZF90b19jYXBhYmlsaXRpZXMoZGVzaXJlZF9jYXBhYmlsaXRpZXMp
CisKKyAgICBwcm94eV9jYXBhYmlsaXRpZXMgPSB7fQorICAgIHByb3h5X2NhcGFiaWxpdGllc1sn
cHJveHlUeXBlJ10gPSAnVU5TUEVDSUZJRUQnCisgICAgZXhwZWN0ZWRfY2FwYWJpbGl0aWVzID0g
eydwcm94eSc6IHByb3h5X2NhcGFiaWxpdGllc30KKyAgICBhc3NlcnQgZXhwZWN0ZWRfY2FwYWJp
bGl0aWVzID09IGRlc2lyZWRfY2FwYWJpbGl0aWVzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcXVp
dF90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2Vs
ZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9xdWl0X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4yZmFhYzQyNTk4MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi9xdWl0X3Rlc3RzLnB5CkBAIC0wLDAgKzEsMjUgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNv
ZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29u
dHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0
cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdh
cmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisj
IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxp
Y2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQor
IyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl
IGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisj
CisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp
dGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp
YnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJ
VElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhl
IExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0
CisKKworQHB5dGVzdC5tYXJrLm5vX2RyaXZlcl9hZnRlcl90ZXN0CitkZWYgdGVzdF9xdWl0KGRy
aXZlciwgcGFnZXMpOgorICAgIGRyaXZlci5xdWl0KCkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
RXhjZXB0aW9uKToKKyAgICAgICAgcGFnZXMubG9hZCgnc2ltcGxlVGVzdC5odG1sJykKZGlmZiAt
LWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0v
d2ViZHJpdmVyL2NvbW1vbi9yZW5kZXJlZF93ZWJlbGVtZW50X3Rlc3RzLnB5IGIvV2ViRHJpdmVy
VGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9u
L3JlbmRlcmVkX3dlYmVsZW1lbnRfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjBlY2I1ZGU2MDcyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3Jl
bmRlcmVkX3dlYmVsZW1lbnRfdGVzdHMucHkKQEAgLTAsMCArMSw3MiBAQAorIyBMaWNlbnNlZCB0
byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3Ig
bW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxl
CisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9u
CisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlz
IGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRo
ZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T
RS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0
byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBp
cyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMg
T1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4g
IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBw
ZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ltcG9y
dCBweXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJp
dmVyRXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5
CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYmRyaXZlci9pc3N1ZXMvNDE3JykKK2RlZiB0ZXN0U2hvdWxkUGlj
a1VwU3R5bGVPZkFuRWxlbWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZh
c2NyaXB0UGFnZS5odG1sIikKKworICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5
PUJ5LklELCB2YWx1ZT0iZ3JlZW4tcGFyZW50IikKKyAgICBiYWNrZ3JvdW5kQ29sb3VyID0gZWxl
bWVudC52YWx1ZV9vZl9jc3NfcHJvcGVydHkoImJhY2tncm91bmQtY29sb3IiKQorICAgIGFzc2Vy
dCAicmdiYSgwLCAxMjgsIDAsIDEpIiA9PSBiYWNrZ3JvdW5kQ29sb3VyCisKKyAgICBlbGVtZW50
ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InJlZC1pdGVtIikKKyAgICBi
YWNrZ3JvdW5kQ29sb3VyID0gZWxlbWVudC52YWx1ZV9vZl9jc3NfcHJvcGVydHkoImJhY2tncm91
bmQtY29sb3IiKQorICAgIGFzc2VydCAicmdiYSgyNTUsIDAsIDAsIDEpIiA9PSBiYWNrZ3JvdW5k
Q29sb3VyCisKKworZGVmIHRlc3RTaG91bGRBbGxvd0luaGVyaXRlZFN0eWxlc1RvQmVVc2VkKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAg
IGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iZ3JlZW4taXRl
bSIpCisgICAgYmFja2dyb3VuZENvbG91ciA9IGVsZW1lbnQudmFsdWVfb2ZfY3NzX3Byb3BlcnR5
KCJiYWNrZ3JvdW5kLWNvbG9yIikKKyAgICBhc3NlcnQgYmFja2dyb3VuZENvbG91ciBpbiAoInJn
YmEoMCwgMCwgMCwgMCkiLCAidHJhbnNwYXJlbnQiKQorCisKK2RlZiB0ZXN0U2hvdWxkQ29ycmVj
dGx5SWRlbnRpZnlUaGF0QW5FbGVtZW50SGFzV2lkdGgoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorCisgICAgc2hyaW5rbyA9IGRyaXZlci5maW5kX2Vs
ZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJsaW5rSWQiKQorICAgIHNpemUgPSBzaHJpbmtvLnNpemUK
KyAgICBhc3NlcnQgc2l6ZVsid2lkdGgiXSA+IDAKKyAgICBhc3NlcnQgc2l6ZVsiaGVpZ2h0Il0g
PiAwCisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZSgKKyAgICByZWFzb249J0dldCBFbGVt
ZW50IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJF
eGNlcHRpb24pCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzKAorICAgIHJlYXNvbj0nR2V0
IEVsZW1lbnQgUmVjdCBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcsCisgICAgcmFpc2VzPVdlYkRy
aXZlckV4Y2VwdGlvbikKK0BweXRlc3QubWFyay54ZmFpbF9zYWZhcmkoCisgICAgcmVhc29uPSdH
ZXQgRWxlbWVudCBSZWN0IGNvbW1hbmQgbm90IGltcGxlbWVudGVkJywKKyAgICByYWlzZXM9V2Vi
RHJpdmVyRXhjZXB0aW9uKQorZGVmIHRlc3RTaG91bGRCZUFibGVUb0RldGVybWluZVRoZVJlY3RP
ZkFuRWxlbWVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRt
bCIpCisKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgInVzZXJuYW1l
IikKKyAgICByZWN0ID0gZWxlbWVudC5yZWN0CisKKyAgICBhc3NlcnQgcmVjdFsieCJdID4gMAor
ICAgIGFzc2VydCByZWN0WyJ5Il0gPiAwCisgICAgYXNzZXJ0IHJlY3RbIndpZHRoIl0gPiAwCisg
ICAgYXNzZXJ0IHJlY3RbImhlaWdodCJdID4gMApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMv
aW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3JlcHJf
dGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVu
aXVtL3dlYmRyaXZlci9jb21tb24vcmVwcl90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uN2M4MzBhODY5MjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2
ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21t
b24vcmVwcl90ZXN0cy5weQpAQCAtMCwwICsxLDQwIEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGltcG9ydCBXZWJEcml2ZXJXYWl0CisKKworZGVmIHRlc3RT
aG91bGRJbXBsZW1lbnRSZXByRm9yV2ViRHJpdmVyKGRyaXZlcik6CisgICAgZHJpdmVyX3JlcHIg
PSByZXByKGRyaXZlcikKKyAgICBhc3NlcnQgdHlwZShkcml2ZXIpLl9fbmFtZV9fIGluIGRyaXZl
cl9yZXByCisgICAgYXNzZXJ0IGRyaXZlci5zZXNzaW9uX2lkIGluIGRyaXZlcl9yZXByCisKKwor
ZGVmIHRlc3RTaG91bGRJbXBsZW1lbnRSZXByRm9yV2ViRWxlbWVudChkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCdzaW1wbGVUZXN0Lmh0bWwnKQorICAgIGVsZW0gPSBkcml2ZXIuZmlu
ZF9lbGVtZW50X2J5X2lkKCJ2YWxpZEltZ1RhZyIpCisgICAgZWxlbV9yZXByID0gcmVwcihlbGVt
KQorICAgIGFzc2VydCB0eXBlKGVsZW0pLl9fbmFtZV9fIGluIGVsZW1fcmVwcgorICAgIGFzc2Vy
dCBkcml2ZXIuc2Vzc2lvbl9pZCBpbiBlbGVtX3JlcHIKKyAgICBhc3NlcnQgZWxlbS5faWQgaW4g
ZWxlbV9yZXByCisKKworZGVmIHRlc3RTaG91bGRJbXBsZW1lbnRSZXByRm9yV2FpdChkcml2ZXIp
OgorICAgIHdhaXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMzApCisgICAgd2FpdF9yZXByID0g
cmVwcih3YWl0KQorICAgIGFzc2VydCB0eXBlKHdhaXQpLl9fbmFtZV9fIGluIHdhaXRfcmVwcgor
ICAgIGFzc2VydCBkcml2ZXIuc2Vzc2lvbl9pZCBpbiB3YWl0X3JlcHIKZGlmZiAtLWdpdCBhL1dl
YkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVy
L2NvbW1vbi9yZXN1bHRzX3BhZ2UucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1
bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vcmVzdWx0c19wYWdlLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YzRkZDBjODY3MAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi9yZXN1bHRzX3BhZ2UucHkKQEAgLTAsMCArMSwzNyBAQAorIyBM
aWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBv
bmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5P
VElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGlu
Zm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNl
bnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv
biAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNv
cHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z
ZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y
IGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUg
TGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3Ig
aW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdv
dmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2Uu
CisKKworY2xhc3MgUmVzdWx0c1BhZ2Uob2JqZWN0KToKKyAgICAiIiJUaGlzIGNsYXNzIG1vZGVs
cyBhIGdvb2dsZSBzZWFyY2ggcmVzdWx0IHBhZ2UuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZHJpdmVyKToKKyAgICAgICAgc2VsZi5fZHJpdmVyID0gZHJpdmVyCisKKyAgICBkZWYgaXNf
bG9hZGVkKHNlbGYpOgorICAgICAgICByZXR1cm4gIi9zZWFyY2giIGluIHNlbGYuX2RyaXZlci5n
ZXRfY3VycmVudF91cmwoKQorCisgICAgZGVmIGxvYWQoc2VsZik6CisgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbigiVGhpcyBwYWdlIHNob3VsZG4ndCBiZSBsb2FkZWQgZGlyZWN0bHkiKQorCisgICAg
ZGVmIGxpbmtfY29udGFpbnNfbWF0Y2hfZm9yKHNlbGYsIHRlcm0pOgorICAgICAgICByZXN1bHRf
c2VjdGlvbiA9IHNlbGYuX2RyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInJlcyIpCisgICAgICAg
IGVsZW1lbnRzID0gcmVzdWx0X3NlY3Rpb24uZmluZF9lbGVtZW50c19ieV94cGF0aCgiLi8vKltA
Y2xhc3M9J2wnXSIpCisgICAgICAgIGZvciBlIGluIGVsZW1lbnRzOgorICAgICAgICAgICAgaWYg
dGVybSBpbiBlLmdldF90ZXh0KCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxl
bml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vc2VsZWN0X2NsYXNzX3Rlc3Rz
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9jbGFzc190ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMmE5YTFlN2U0N2MKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJE
cml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9j
b21tb24vc2VsZWN0X2NsYXNzX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMzE0IEBACisjIExpY2Vuc2Vk
IHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBv
ciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZp
bGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRo
aXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElF
UyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1w
b3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCAoCisg
ICAgRWxlbWVudE5vdFNlbGVjdGFibGVFeGNlcHRpb24sCisgICAgTm9TdWNoRWxlbWVudEV4Y2Vw
dGlvbiwKKyAgICBVbmV4cGVjdGVkVGFnTmFtZUV4Y2VwdGlvbikKK2Zyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFNlbGVjdAorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
Y29tbW9uLmJ5IGltcG9ydCBCeQorCitkaXNhYmxlZFNlbGVjdCA9IHsnbmFtZSc6ICduby1zZWxl
Y3QnLCAndmFsdWVzJzogWydGb28nXX0KK3NpbmdsZVNlbGVjdFZhbHVlczEgPSB7J25hbWUnOiAn
c2VsZWN0b21hdGljJywgJ3ZhbHVlcyc6IFsnT25lJywgJ1R3bycsICdGb3VyJywgJ1N0aWxsIGxl
YXJuaW5nIGhvdyB0byBjb3VudCwgYXBwYXJlbnRseSddfQorc2luZ2xlU2VsZWN0VmFsdWVzMiA9
IHsnbmFtZSc6ICdyZWRpcmVjdCcsICd2YWx1ZXMnOiBbJ09uZScsICdUd28nXX0KK3NpbmdsZVNl
bGVjdFZhbHVlc1dpdGhTcGFjZXMgPSB7J25hbWUnOiAnc2VsZWN0X3dpdGhfc3BhY2VzJywgJ3Zh
bHVlcyc6IFsnT25lJywgJ1R3bycsICdGb3VyJywgJ1N0aWxsIGxlYXJuaW5nIGhvdyB0byBjb3Vu
dCwgYXBwYXJlbnRseSddfQorbXVsdGlTZWxlY3RWYWx1ZXMxID0geyduYW1lJzogJ211bHRpJywg
J3ZhbHVlcyc6IFsnRWdncycsICdIYW0nLCAnU2F1c2FnZXMnLCAnT25pb24gZ3JhdnknXX0KK211
bHRpU2VsZWN0VmFsdWVzMiA9IHsnbmFtZSc6ICdzZWxlY3RfZW1wdHlfbXVsdGlwbGUnLCAndmFs
dWVzJzogWydzZWxlY3RfMScsICdzZWxlY3RfMicsICdzZWxlY3RfMycsICdzZWxlY3RfNCddfQor
CisKK2RlZiB0ZXN0U2VsZWN0QnlJbmRleFNpbmdsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworICAgIGZvciBzZWxlY3QgaW4gW3NpbmdsZVNlbGVj
dFZhbHVlczFdOgorICAgICAgICBzZWwgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5O
QU1FLCBzZWxlY3RbJ25hbWUnXSkpCisgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3Rb
J3ZhbHVlcyddKSk6CisgICAgICAgICAgICBzZWwuc2VsZWN0X2J5X2luZGV4KHgpCisgICAgICAg
ICAgICBhc3NlcnQgc2VsLmZpcnN0X3NlbGVjdGVkX29wdGlvbi50ZXh0ID09IHNlbGVjdFsndmFs
dWVzJ11beF0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZh
aWxfZmlyZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWls
X21hcmlvbmV0dGUKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK0BweXRlc3QubWFyay54
ZmFpbF9zYWZhcmkKK2RlZiB0ZXN0U2VsZWN0RGlzYWJsZWRCeUluZGV4U2hvdWxkVGhyb3dFeGNl
cHRpb24oZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisg
ICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgZGlzYWJsZWRTZWxl
Y3RbJ25hbWUnXSkpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEVsZW1lbnROb3RTZWxlY3RhYmxl
RXhjZXB0aW9uKToKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9pbmRleCgxKQorCisKK2RlZiB0ZXN0
U2VsZWN0QnlWYWx1ZVNpbmdsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKworICAgIGZvciBzZWxlY3QgaW4gW3NpbmdsZVNlbGVjdFZhbHVlczFdOgor
ICAgICAgICBzZWwgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3Rb
J25hbWUnXSkpCisgICAgICAgIGZvciB4IGluIHJhbmdlKGxlbihzZWxlY3RbJ3ZhbHVlcyddKSk6
CisgICAgICAgICAgICBzZWwuc2VsZWN0X2J5X3ZhbHVlKHNlbGVjdFsndmFsdWVzJ11beF0ubG93
ZXIoKSkKKyAgICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rfc2VsZWN0ZWRfb3B0aW9uLnRleHQg
PT0gc2VsZWN0Wyd2YWx1ZXMnXVt4XQorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKK0Bw
eXRlc3QubWFyay54ZmFpbF9maXJlZm94CitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCitAcHl0
ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcwor
QHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorZGVmIHRlc3RTZWxlY3REaXNhYmxlZEJ5VmFsdWVT
aG91bGRUaHJvd0V4Y2VwdGlvbihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKyAgICBzZWwgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1F
LCBkaXNhYmxlZFNlbGVjdFsnbmFtZSddKSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRWxlbWVu
dE5vdFNlbGVjdGFibGVFeGNlcHRpb24pOgorICAgICAgICBzZWwuc2VsZWN0X2J5X3ZhbHVlKCdi
YXInKQorCisKK2RlZiB0ZXN0U2VsZWN0QnlWaXNpYmxlVGV4dFNpbmdsZShkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworICAgIGZvciBzZWxlY3QgaW4g
W3NpbmdsZVNlbGVjdFZhbHVlczFdOgorICAgICAgICBzZWwgPSBTZWxlY3QoZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpCisgICAgICAgIGZvciB4IGluIHJhbmdl
KGxlbihzZWxlY3RbJ3ZhbHVlcyddKSk6CisgICAgICAgICAgICBwcmludChzZWxlY3RbJ3ZhbHVl
cyddW3hdKQorICAgICAgICAgICAgc2VsLnNlbGVjdF9ieV92aXNpYmxlX3RleHQoc2VsZWN0Wyd2
YWx1ZXMnXVt4XSkKKyAgICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rfc2VsZWN0ZWRfb3B0aW9u
LnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVt4XQorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJv
bWUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21lZHJpdmVy
L2lzc3Vlcy9kZXRhaWw/aWQ9ODIyJykKK0BweXRlc3QubWFyay54ZmFpbF9waGFudG9tanMKK2Rl
ZiB0ZXN0U2VsZWN0QnlWaXNpYmxlVGV4dFNob3VsZE5vcm1hbGl6ZVNwYWNlcyhkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKworICAgIGZvciBzZWxlY3Qg
aW4gW3NpbmdsZVNlbGVjdFZhbHVlc1dpdGhTcGFjZXNdOgorICAgICAgICBzZWwgPSBTZWxlY3Qo
ZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpCisgICAgICAgIGZv
ciB4IGluIHJhbmdlKGxlbihzZWxlY3RbJ3ZhbHVlcyddKSk6CisgICAgICAgICAgICBwcmludChz
ZWxlY3RbJ3ZhbHVlcyddW3hdKQorICAgICAgICAgICAgc2VsLnNlbGVjdF9ieV92aXNpYmxlX3Rl
eHQoc2VsZWN0Wyd2YWx1ZXMnXVt4XSkKKyAgICAgICAgICAgIGFzc2VydCBzZWwuZmlyc3Rfc2Vs
ZWN0ZWRfb3B0aW9uLnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVt4XQorCisKK0BweXRlc3QubWFy
ay54ZmFpbF9jaHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94CitAcHl0ZXN0Lm1hcmsu
eGZhaWxfcmVtb3RlCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZQorQHB5dGVzdC5tYXJr
LnhmYWlsX3BoYW50b21qcworQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaQorZGVmIHRlc3RTZWxl
Y3REaXNhYmxlZEJ5VmlzaWJsZVRleHRTaG91bGRUaHJvd0V4Y2VwdGlvbihkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBzZWwgPSBTZWxlY3QoZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBkaXNhYmxlZFNlbGVjdFsnbmFtZSddKSkKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoRWxlbWVudE5vdFNlbGVjdGFibGVFeGNlcHRpb24pOgorICAgICAg
ICBzZWwuc2VsZWN0X2J5X3Zpc2libGVfdGV4dCgnQmFyJykKKworCitkZWYgdGVzdFNlbGVjdEJ5
SW5kZXhNdWx0aXBsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5o
dG1sIikKKworICAgIGZvciBzZWxlY3QgaW4gW211bHRpU2VsZWN0VmFsdWVzMSwgbXVsdGlTZWxl
Y3RWYWx1ZXMyXToKKyAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnku
TkFNRSwgc2VsZWN0WyduYW1lJ10pKQorICAgICAgICBzZWwuZGVzZWxlY3RfYWxsKCkKKyAgICAg
ICAgZm9yIHggaW4gcmFuZ2UobGVuKHNlbGVjdFsndmFsdWVzJ10pKToKKyAgICAgICAgICAgIHNl
bC5zZWxlY3RfYnlfaW5kZXgoeCkKKyAgICAgICAgICAgIHNlbGVjdGVkID0gc2VsLmFsbF9zZWxl
Y3RlZF9vcHRpb25zCisgICAgICAgICAgICBhc3NlcnQgbGVuKHNlbGVjdGVkKSA9PSB4ICsgMQor
ICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2UobGVuKHNlbGVjdGVkKSk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IHNlbGVjdGVkW2pdLnRleHQgPT0gc2VsZWN0Wyd2YWx1ZXMnXVtqXQorCisKK2Rl
ZiB0ZXN0U2VsZWN0QnlWYWx1ZU11bHRpcGxlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImZvcm1QYWdlLmh0bWwiKQorCisgICAgZm9yIHNlbGVjdCBpbiBbbXVsdGlTZWxlY3RWYWx1
ZXMxLCBtdWx0aVNlbGVjdFZhbHVlczJdOgorICAgICAgICBzZWwgPSBTZWxlY3QoZHJpdmVyLmZp
bmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpCisgICAgICAgIHNlbC5kZXNlbGVj
dF9hbGwoKQorICAgICAgICBmb3IgeCBpbiByYW5nZShsZW4oc2VsZWN0Wyd2YWx1ZXMnXSkpOgor
ICAgICAgICAgICAgc2VsLnNlbGVjdF9ieV92YWx1ZShzZWxlY3RbJ3ZhbHVlcyddW3hdLmxvd2Vy
KCkpCisgICAgICAgICAgICBzZWxlY3RlZCA9IHNlbC5hbGxfc2VsZWN0ZWRfb3B0aW9ucworICAg
ICAgICAgICAgYXNzZXJ0IGxlbihzZWxlY3RlZCkgPT0geCArIDEKKyAgICAgICAgICAgIGZvciBq
IGluIHJhbmdlKGxlbihzZWxlY3RlZCkpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxlY3Rl
ZFtqXS50ZXh0ID09IHNlbGVjdFsndmFsdWVzJ11bal0KKworCitkZWYgdGVzdFNlbGVjdEJ5Vmlz
aWJsZVRleHRNdWx0aXBsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFn
ZS5odG1sIikKKworICAgIGZvciBzZWxlY3QgaW4gW211bHRpU2VsZWN0VmFsdWVzMSwgbXVsdGlT
ZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQo
QnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKQorICAgICAgICBzZWwuZGVzZWxlY3RfYWxsKCkKKyAg
ICAgICAgZm9yIHggaW4gcmFuZ2UobGVuKHNlbGVjdFsndmFsdWVzJ10pKToKKyAgICAgICAgICAg
IHNlbC5zZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11beF0pCisgICAgICAg
ICAgICBzZWxlY3RlZCA9IHNlbC5hbGxfc2VsZWN0ZWRfb3B0aW9ucworICAgICAgICAgICAgYXNz
ZXJ0IGxlbihzZWxlY3RlZCkgPT0geCArIDEKKyAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKGxl
bihzZWxlY3RlZCkpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxlY3RlZFtqXS50ZXh0ID09
IHNlbGVjdFsndmFsdWVzJ11bal0KKworCitkZWYgdGVzdERlc2VsZWN0QWxsU2luZ2xlKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGZvciBzZWxl
Y3QgaW4gW3NpbmdsZVNlbGVjdFZhbHVlczEsIHNpbmdsZVNlbGVjdFZhbHVlczJdOgorICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvcik6CisgICAgICAgICAgICBT
ZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpLmRlc2Vs
ZWN0X2FsbCgpCisKKworZGVmIHRlc3REZXNlbGVjdEFsbE11bHRpcGxlKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGZvciBzZWxlY3QgaW4gW211
bHRpU2VsZWN0VmFsdWVzMSwgbXVsdGlTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgc2VsID0gU2Vs
ZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKQorICAgICAg
ICBzZWwuZGVzZWxlY3RfYWxsKCkKKyAgICAgICAgYXNzZXJ0IGxlbihzZWwuYWxsX3NlbGVjdGVk
X29wdGlvbnMpID09IDAKKworCitkZWYgdGVzdERlc2VsZWN0QnlJbmRleFNpbmdsZShkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBmb3Igc2VsZWN0
IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxLCBzaW5nbGVTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IpOgorICAgICAgICAgICAgU2Vs
ZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKS5kZXNlbGVj
dF9ieV9pbmRleCgwKQorCisKK2RlZiB0ZXN0RGVzZWxlY3RCeVZhbHVlU2luZ2xlKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGZvciBzZWxlY3Qg
aW4gW3NpbmdsZVNlbGVjdFZhbHVlczEsIHNpbmdsZVNlbGVjdFZhbHVlczJdOgorICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvcik6CisgICAgICAgICAgICBTZWxl
Y3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpLmRlc2VsZWN0
X2J5X3ZhbHVlKHNlbGVjdFsndmFsdWVzJ11bMF0ubG93ZXIoKSkKKworCitkZWYgdGVzdERlc2Vs
ZWN0QnlWaXNpYmxlVGV4dFNpbmdsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKyAgICBmb3Igc2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxLCBz
aW5nbGVTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vdEltcGxl
bWVudGVkRXJyb3IpOgorICAgICAgICAgICAgU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnku
TkFNRSwgc2VsZWN0WyduYW1lJ10pKS5kZXNlbGVjdF9ieV92aXNpYmxlX3RleHQoc2VsZWN0Wyd2
YWx1ZXMnXVswXSkKKworCitkZWYgdGVzdERlc2VsZWN0QnlJbmRleE11bHRpcGxlKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGZvciBzZWxlY3Qg
aW4gW211bHRpU2VsZWN0VmFsdWVzMSwgbXVsdGlTZWxlY3RWYWx1ZXMyXToKKyAgICAgICAgc2Vs
ID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKQor
ICAgICAgICBzZWwuZGVzZWxlY3RfYWxsKCkKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9pbmRleCgw
KQorICAgICAgICBzZWwuc2VsZWN0X2J5X2luZGV4KDEpCisgICAgICAgIHNlbC5zZWxlY3RfYnlf
aW5kZXgoMikKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9pbmRleCgzKQorICAgICAgICBzZWwuZGVz
ZWxlY3RfYnlfaW5kZXgoMSkKKyAgICAgICAgc2VsLmRlc2VsZWN0X2J5X2luZGV4KDMpCisgICAg
ICAgIHNlbGVjdGVkID0gc2VsLmFsbF9zZWxlY3RlZF9vcHRpb25zCisgICAgICAgIGFzc2VydCBs
ZW4oc2VsZWN0ZWQpID09IDIKKyAgICAgICAgYXNzZXJ0IHNlbGVjdGVkWzBdLnRleHQgPT0gc2Vs
ZWN0Wyd2YWx1ZXMnXVswXQorICAgICAgICBhc3NlcnQgc2VsZWN0ZWRbMV0udGV4dCA9PSBzZWxl
Y3RbJ3ZhbHVlcyddWzJdCisKKworZGVmIHRlc3REZXNlbGVjdEJ5VmFsdWVNdWx0aXBsZShkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBmb3Igc2Vs
ZWN0IGluIFttdWx0aVNlbGVjdFZhbHVlczEsIG11bHRpU2VsZWN0VmFsdWVzMl06CisgICAgICAg
IHNlbCA9IFNlbGVjdChkcml2ZXIuZmluZF9lbGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSdd
KSkKKyAgICAgICAgc2VsLmRlc2VsZWN0X2FsbCgpCisgICAgICAgIHNlbC5zZWxlY3RfYnlfaW5k
ZXgoMCkKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9pbmRleCgxKQorICAgICAgICBzZWwuc2VsZWN0
X2J5X2luZGV4KDIpCisgICAgICAgIHNlbC5zZWxlY3RfYnlfaW5kZXgoMykKKyAgICAgICAgc2Vs
LmRlc2VsZWN0X2J5X3ZhbHVlKHNlbGVjdFsndmFsdWVzJ11bMV0ubG93ZXIoKSkKKyAgICAgICAg
c2VsLmRlc2VsZWN0X2J5X3ZhbHVlKHNlbGVjdFsndmFsdWVzJ11bM10ubG93ZXIoKSkKKyAgICAg
ICAgc2VsZWN0ZWQgPSBzZWwuYWxsX3NlbGVjdGVkX29wdGlvbnMKKyAgICAgICAgYXNzZXJ0IGxl
bihzZWxlY3RlZCkgPT0gMgorICAgICAgICBhc3NlcnQgc2VsZWN0ZWRbMF0udGV4dCA9PSBzZWxl
Y3RbJ3ZhbHVlcyddWzBdCisgICAgICAgIGFzc2VydCBzZWxlY3RlZFsxXS50ZXh0ID09IHNlbGVj
dFsndmFsdWVzJ11bMl0KKworCitkZWYgdGVzdERlc2VsZWN0QnlWaXNpYmxlVGV4dE11bHRpcGxl
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGZv
ciBzZWxlY3QgaW4gW211bHRpU2VsZWN0VmFsdWVzMSwgbXVsdGlTZWxlY3RWYWx1ZXMyXToKKyAg
ICAgICAgc2VsID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0Wydu
YW1lJ10pKQorICAgICAgICBzZWwuZGVzZWxlY3RfYWxsKCkKKyAgICAgICAgc2VsLnNlbGVjdF9i
eV9pbmRleCgwKQorICAgICAgICBzZWwuc2VsZWN0X2J5X2luZGV4KDEpCisgICAgICAgIHNlbC5z
ZWxlY3RfYnlfaW5kZXgoMikKKyAgICAgICAgc2VsLnNlbGVjdF9ieV9pbmRleCgzKQorICAgICAg
ICBzZWwuZGVzZWxlY3RfYnlfdmlzaWJsZV90ZXh0KHNlbGVjdFsndmFsdWVzJ11bMV0pCisgICAg
ICAgIHNlbC5kZXNlbGVjdF9ieV92aXNpYmxlX3RleHQoc2VsZWN0Wyd2YWx1ZXMnXVszXSkKKyAg
ICAgICAgc2VsZWN0ZWQgPSBzZWwuYWxsX3NlbGVjdGVkX29wdGlvbnMKKyAgICAgICAgYXNzZXJ0
IGxlbihzZWxlY3RlZCkgPT0gMgorICAgICAgICBhc3NlcnQgc2VsZWN0ZWRbMF0udGV4dCA9PSBz
ZWxlY3RbJ3ZhbHVlcyddWzBdCisgICAgICAgIGFzc2VydCBzZWxlY3RlZFsxXS50ZXh0ID09IHNl
bGVjdFsndmFsdWVzJ11bMl0KKworCitkZWYgdGVzdEdldE9wdGlvbnMoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZm9yIHNlbGVjdCBpbiBbc2lu
Z2xlU2VsZWN0VmFsdWVzMSwgc2luZ2xlU2VsZWN0VmFsdWVzMiwgbXVsdGlTZWxlY3RWYWx1ZXMx
LCBtdWx0aVNlbGVjdFZhbHVlczJdOgorICAgICAgICBvcHRzID0gU2VsZWN0KGRyaXZlci5maW5k
X2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0WyduYW1lJ10pKS5vcHRpb25zCisgICAgICAgIGFzc2Vy
dCBsZW4ob3B0cykgPT0gbGVuKHNlbGVjdFsndmFsdWVzJ10pCisgICAgICAgIGZvciBpIGluIHJh
bmdlKGxlbihvcHRzKSk6CisgICAgICAgICAgICBhc3NlcnQgb3B0c1tpXS50ZXh0ID09IHNlbGVj
dFsndmFsdWVzJ11baV0KKworCitkZWYgdGVzdEdldEFsbFNlbGVjdGVkT3B0aW9uc1NpbmdsZShk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBmb3Ig
c2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxLCBzaW5nbGVTZWxlY3RWYWx1ZXMyLCBkaXNh
YmxlZFNlbGVjdF06CisgICAgICAgIG9wdHMgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChC
eS5OQU1FLCBzZWxlY3RbJ25hbWUnXSkpLmFsbF9zZWxlY3RlZF9vcHRpb25zCisgICAgICAgIGFz
c2VydCBsZW4ob3B0cykgPT0gMQorICAgICAgICBhc3NlcnQgb3B0c1swXS50ZXh0ID09IHNlbGVj
dFsndmFsdWVzJ11bMF0KKworCitkZWYgdGVzdEdldEFsbFNlbGVjdGVkT3B0aW9uc011bHRpcGxl
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIG9w
dHMgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBtdWx0aVNlbGVjdFZhbHVl
czFbJ25hbWUnXSkpLmFsbF9zZWxlY3RlZF9vcHRpb25zCisgICAgYXNzZXJ0IGxlbihvcHRzKSA9
PSAyCisgICAgYXNzZXJ0IG9wdHNbMF0udGV4dCwgbXVsdGlTZWxlY3RWYWx1ZXMxWyd2YWx1ZXMn
XVswXQorICAgIGFzc2VydCBvcHRzWzFdLnRleHQsIG11bHRpU2VsZWN0VmFsdWVzMVsndmFsdWVz
J11bMl0KKyAgICBvcHRzID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgbXVs
dGlTZWxlY3RWYWx1ZXMyWyduYW1lJ10pKS5hbGxfc2VsZWN0ZWRfb3B0aW9ucworICAgIGFzc2Vy
dCBsZW4ob3B0cykgPT0gMAorCisKK2RlZiB0ZXN0R2V0Rmlyc3RTZWxlY3RlZE9wdGlvblNpbmds
ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBm
b3Igc2VsZWN0IGluIFtzaW5nbGVTZWxlY3RWYWx1ZXMxLCBzaW5nbGVTZWxlY3RWYWx1ZXMyXToK
KyAgICAgICAgb3B0ID0gU2VsZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgc2VsZWN0
WyduYW1lJ10pKS5maXJzdF9zZWxlY3RlZF9vcHRpb24KKyAgICAgICAgYXNzZXJ0IG9wdC50ZXh0
ID09IHNlbGVjdFsndmFsdWVzJ11bMF0KKworCitkZWYgdGVzdEdldEZpcnN0U2VsZWN0ZWRPcHRp
b25NdWx0aXBsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1s
IikKKyAgICBvcHQgPSBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBtdWx0aVNl
bGVjdFZhbHVlczFbJ25hbWUnXSkpLmZpcnN0X3NlbGVjdGVkX29wdGlvbgorICAgIGFzc2VydCBv
cHQudGV4dCA9PSBtdWx0aVNlbGVjdFZhbHVlczFbJ3ZhbHVlcyddWzBdCisgICAgb3B0ID0gU2Vs
ZWN0KGRyaXZlci5maW5kX2VsZW1lbnQoQnkuTkFNRSwgbXVsdGlTZWxlY3RWYWx1ZXMyWyduYW1l
J10pKS5hbGxfc2VsZWN0ZWRfb3B0aW9ucworICAgIGFzc2VydCBsZW4ob3B0KSA9PSAwCisKKwor
ZGVmIHRlc3RSYWlzZXNFeGNlcHRpb25Gb3JJbnZhbGlkVGFnTmFtZShkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
VW5leHBlY3RlZFRhZ05hbWVFeGNlcHRpb24pOgorICAgICAgICBTZWxlY3QoZHJpdmVyLmZpbmRf
ZWxlbWVudChCeS5UQUdfTkFNRSwgImRpdiIpKQorCisKK2RlZiB0ZXN0RGVzZWxlY3RCeUluZGV4
Tm9uRXhpc3RlbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRt
bCIpCisgICAgZm9yIHNlbGVjdCBpbiBbbXVsdGlTZWxlY3RWYWx1ZXMxLCBtdWx0aVNlbGVjdFZh
bHVlczJdOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4Y2VwdGlv
bik6CisgICAgICAgICAgICBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1FLCBzZWxl
Y3RbJ25hbWUnXSkpLmRlc2VsZWN0X2J5X2luZGV4KDEwKQorCisKK2RlZiB0ZXN0RGVzZWxlY3RC
eVZhbHVlTm9uRXhpc3RlbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBh
Z2UuaHRtbCIpCisgICAgZm9yIHNlbGVjdCBpbiBbbXVsdGlTZWxlY3RWYWx1ZXMxLCBtdWx0aVNl
bGVjdFZhbHVlczJdOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm9TdWNoRWxlbWVudEV4
Y2VwdGlvbik6CisgICAgICAgICAgICBTZWxlY3QoZHJpdmVyLmZpbmRfZWxlbWVudChCeS5OQU1F
LCBzZWxlY3RbJ25hbWUnXSkpLmRlc2VsZWN0X2J5X3ZhbHVlKCdub3QgdGhlcmUnKQorCisKK2Rl
ZiB0ZXN0RGVzZWxlY3RCeVRleHROb25FeGlzdGVudChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBmb3Igc2VsZWN0IGluIFttdWx0aVNlbGVjdFZh
bHVlczEsIG11bHRpU2VsZWN0VmFsdWVzMl06CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhO
b1N1Y2hFbGVtZW50RXhjZXB0aW9uKToKKyAgICAgICAgICAgIFNlbGVjdChkcml2ZXIuZmluZF9l
bGVtZW50KEJ5Lk5BTUUsIHNlbGVjdFsnbmFtZSddKSkuZGVzZWxlY3RfYnlfdmlzaWJsZV90ZXh0
KCdub3QgdGhlcmUnKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9lbGVtZW50X2hhbmRs
aW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3NlbGVjdF9lbGVtZW50X2hhbmRsaW5nX3Rlc3RzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NDg0NTY5YTZiYwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi9zZWxlY3RfZWxlbWVudF9oYW5kbGluZ190ZXN0cy5w
eQpAQCAtMCwwICsxLDk3IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENv
bnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2Ug
YWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlz
IHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBv
d25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIikgeW91IG1heSBu
b3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNl
LiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDov
L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFT
IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJ
TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQor
IyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25z
CisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24u
YnkgaW1wb3J0IEJ5CisKKworZGVmIHRlc3RTaG91bGRCZVBvc3NpYmxlVG9EZXNlbGVjdEFTaW5n
bGVPcHRpb25Gcm9tQVNlbGVjdFdoaWNoQWxsb3dzTXVsdGlwbGVDaG9pY2UoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgbXVsdGlTZWxlY3QgPSBk
cml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAibXVsdGkiKQorICAgIG9wdGlvbnMgPSBtdWx0aVNl
bGVjdC5maW5kX2VsZW1lbnRzKEJ5LlRBR19OQU1FLCAib3B0aW9uIikKKworICAgIG9wdGlvbiA9
IG9wdGlvbnNbMF0KKyAgICBhc3NlcnQgb3B0aW9uLmlzX3NlbGVjdGVkKCkgaXMgVHJ1ZQorICAg
IG9wdGlvbi5jbGljaygpCisgICAgYXNzZXJ0IG9wdGlvbi5pc19zZWxlY3RlZCgpIGlzIEZhbHNl
CisgICAgb3B0aW9uLmNsaWNrKCkKKyAgICBhc3NlcnQgb3B0aW9uLmlzX3NlbGVjdGVkKCkgaXMg
VHJ1ZQorCisgICAgb3B0aW9uID0gb3B0aW9uc1syXQorICAgIGFzc2VydCBvcHRpb24uaXNfc2Vs
ZWN0ZWQoKSBpcyBUcnVlCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb0NoYW5nZVRoZVNlbGVj
dGVkT3B0aW9uSW5BU2VsZWMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBh
Z2UuaHRtbCIpCisgICAgc2VsZWN0Qm94ID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5YUEFUSCwg
Ii8vc2VsZWN0W0BuYW1lPSdzZWxlY3RvbWF0aWMnXSIpCisgICAgb3B0aW9ucyA9IHNlbGVjdEJv
eC5maW5kX2VsZW1lbnRzKEJ5LlRBR19OQU1FLCAib3B0aW9uIikKKyAgICBvbmUgPSBvcHRpb25z
WzBdCisgICAgdHdvID0gb3B0aW9uc1sxXQorICAgIGFzc2VydCBvbmUuaXNfc2VsZWN0ZWQoKSBp
cyBUcnVlCisgICAgYXNzZXJ0IHR3by5pc19zZWxlY3RlZCgpIGlzIEZhbHNlCisKKyAgICB0d28u
Y2xpY2soKQorICAgIGFzc2VydCBvbmUuaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorICAgIGFzc2Vy
dCB0d28uaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1Nl
bGVjdE1vcmVUaGFuT25lT3B0aW9uRnJvbUFTZWxlY3RXaGljaEFsbG93c011bHRpcGxlQ2hvaWNl
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorCisgICAg
bXVsdGlTZWxlY3QgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAibXVsdGkiKQorICAgIG9w
dGlvbnMgPSBtdWx0aVNlbGVjdC5maW5kX2VsZW1lbnRzKEJ5LlRBR19OQU1FLCAib3B0aW9uIikK
KyAgICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6CisgICAgICAgIGlmIG5vdCBvcHRpb24uaXNfc2Vs
ZWN0ZWQoKToKKyAgICAgICAgICAgIG9wdGlvbi5jbGljaygpCisKKyAgICBmb3IgaSBpbiByYW5n
ZShsZW4ob3B0aW9ucykpOgorICAgICAgICBvcHRpb24gPSBvcHRpb25zW2ldCisgICAgICAgIGFz
c2VydCBvcHRpb24uaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisKKworZGVmIHRlc3RTaG91bGRTZWxl
Y3RGaXJzdE9wdGlvbmF1bHRJZk5vbmVJc1NlbGVjdGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgc2VsZWN0Qm94ID0gZHJpdmVyLmZpbmRfZWxl
bWVudChCeS5YUEFUSCwgIi8vc2VsZWN0W0BuYW1lPSdzZWxlY3QtZGVmYXVsdCddIikKKyAgICBv
cHRpb25zID0gc2VsZWN0Qm94LmZpbmRfZWxlbWVudHMoQnkuVEFHX05BTUUsICJvcHRpb24iKQor
ICAgIG9uZSA9IG9wdGlvbnNbMF0KKyAgICB0d28gPSBvcHRpb25zWzFdCisgICAgYXNzZXJ0IG9u
ZS5pc19zZWxlY3RlZCgpIGlzIFRydWUKKyAgICBhc3NlcnQgdHdvLmlzX3NlbGVjdGVkKCkgaXMg
RmFsc2UKKworICAgIHR3by5jbGljaygpCisgICAgYXNzZXJ0IG9uZS5pc19zZWxlY3RlZCgpIGlz
IEZhbHNlCisgICAgYXNzZXJ0IHR3by5pc19zZWxlY3RlZCgpIGlzIFRydWUKKworCitkZWYgdGVz
dENhblNlbGVjdEVsZW1lbnRzSW5PcHRHcm91cChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5s
b2FkKCJzZWxlY3RQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50
KEJ5LklELCAidHdvLWluLWdyb3VwIikKKyAgICBlbGVtZW50LmNsaWNrKCkKKyAgICBhc3NlcnQg
ZWxlbWVudC5pc19zZWxlY3RlZCgpIGlzIFRydWUKKworCitkZWYgdGVzdENhbkdldFZhbHVlRnJv
bU9wdGlvblZpYUF0dHJpYnV0ZVdoZW5BdHRyaWJ1dGVEb2VzbnRFeGlzKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIu
ZmluZF9lbGVtZW50KEJ5LkNTU19TRUxFQ1RPUiwgInNlbGVjdFtuYW1lPSdzZWxlY3QtZGVmYXVs
dCddIG9wdGlvbiIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9
PSAiT25lIgorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiYmxhbmtP
cHRpb24iKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIiIK
KworCitkZWYgdGVzdENhbkdldFZhbHVlRnJvbU9wdGlvblZpYUF0dHJpYnV0ZVdoZW5BdHRyaWJ1
dGVJc0VtcHR5U3RyaW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdl
Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LklELCAib3B0aW9u
RW1wdHlWYWx1ZVNldCIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUi
KSA9PSAiIgpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3N0YWxlX3JlZmVyZW5jZV90ZXN0cy5weSBi
L1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJp
dmVyL2NvbW1vbi9zdGFsZV9yZWZlcmVuY2VfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjQzMzEwMDdlM2E0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJp
dmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29t
bW9uL3N0YWxlX3JlZmVyZW5jZV90ZXN0cy5weQpAQCAtMCwwICsxLDQ3IEBACisjIExpY2Vuc2Vk
IHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBv
ciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZp
bGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRo
aXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElF
UyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1w
b3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5
Citmcm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBTdGFsZUVsZW1lbnRSZWZl
cmVuY2VFeGNlcHRpb24KKworCitkZWYgdGVzdE9sZFBhZ2UoZHJpdmVyLCBwYWdlcyk6CisgICAg
aWYgZHJpdmVyLm5hbWUgPT0gJ2ZpcmVmb3gnIGFuZCBkcml2ZXIudzNjOgorICAgICAgICBweXRl
c3Quc2tpcCgnU3RhbGxzIHRlc3RzLCBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDEwNzk5JykKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQor
ICAgIGVsZW0gPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ibGlua3MiKQor
ICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
U3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgZWxlbS5jbGljaygpCisK
KworZGVmIHRlc3RTaG91bGROb3RDcmFzaFdoZW5DYWxsaW5nR2V0U2l6ZU9uQW5PYnNvbGV0ZUVs
ZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikK
KyAgICBlbGVtID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImxpbmtzIikK
KyAgICBwYWdlcy5sb2FkKCJ4aHRtbFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbik6CisgICAgICAgIGVsZW0uc2l6ZQorCisK
K2RlZiB0ZXN0U2hvdWxkTm90Q3Jhc2hXaGVuUXVlcnlpbmdUaGVBdHRyaWJ1dGVPZkFTdGFsZUVs
ZW1lbnQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQor
ICAgIGhlYWRpbmcgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LlhQQVRILCB2YWx1ZT0iLy9o
MSIpCisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKToKKyAgICAgICAgaGVhZGluZy5n
ZXRfYXR0cmlidXRlKCJjbGFzcyIpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRl
ZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdGFrZXNfc2NyZWVu
c2hvdHNfdGVzdHMucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0
L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdGFrZXNfc2NyZWVuc2hvdHNfdGVzdHMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY0YzAzMDBmMDc5Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL3Rha2VzX3NjcmVlbnNob3RzX3Rlc3RzLnB5CkBAIC0wLDAg
KzEsNDMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kg
KFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRz
LiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3Ig
YWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4g
IFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJ
UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVy
IHRoZSBMaWNlbnNlLgorCitpbXBvcnQgYmFzZTY0CitpbXBvcnQgaW1naGRyCisKK2ltcG9ydCBw
eXRlc3QKKworCitkZWYgdGVzdF9nZXRfc2NyZWVuc2hvdF9hc19iYXNlNjQoZHJpdmVyLCBwYWdl
cyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICByZXN1bHQgPSBiYXNl
NjQuYjY0ZGVjb2RlKGRyaXZlci5nZXRfc2NyZWVuc2hvdF9hc19iYXNlNjQoKSkKKyAgICBhc3Nl
cnQgaW1naGRyLndoYXQoJycsIHJlc3VsdCkgPT0gJ3BuZycKKworCitkZWYgdGVzdF9nZXRfc2Ny
ZWVuc2hvdF9hc19wbmcoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVz
dC5odG1sIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZ2V0X3NjcmVlbnNob3RfYXNfcG5nKCkKKyAg
ICBhc3NlcnQgaW1naGRyLndoYXQoJycsIHJlc3VsdCkgPT0gJ3BuZycKKworCitAcHl0ZXN0Lm1h
cmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVzdC5tYXJr
LnhmYWlsX3JlbW90ZQorZGVmIHRlc3RfZ2V0X2VsZW1lbnRfc2NyZWVuc2hvdChkcml2ZXIsIHBh
Z2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwiKQorICAgIGVsZW1lbnQgPSBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJtdWx0aWxpbmUiKQorICAgIHJlc3VsdCA9IGJhc2U2
NC5iNjRkZWNvZGUoZWxlbWVudC5zY3JlZW5zaG90X2FzX2Jhc2U2NCkKKyAgICBhc3NlcnQgaW1n
aGRyLndoYXQoJycsIHJlc3VsdCkgPT0gJ3BuZycKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi90ZXh0
X2hhbmRsaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkv
dGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3RleHRfaGFuZGxpbmdfdGVzdHMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljOTcwY2VmNjI1Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvY29tbW9uL3RleHRfaGFuZGxpbmdfdGVzdHMucHkKQEAgLTAsMCArMSwy
MDMgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNG
QykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAg
U2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRk
aXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRo
ZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBv
YnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUu
b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh
YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywg
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRo
ZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNv
bW1vbi5ieSBpbXBvcnQgQnkKKworCituZXdMaW5lID0gIlxuIgorCisKK2RlZiB0ZXN0U2hvdWxk
UmV0dXJuVGhlVGV4dENvbnRlbnRPZkFTaW5nbGVFbGVtZW50V2l0aE5vQ2hpbGRyZW4oZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBzZWxlY3RU
ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9Im9uZWxpbmUiKS50ZXh0
CisgICAgYXNzZXJ0IHNlbGVjdFRleHQgPT0gIkEgc2luZ2xlIGxpbmUgb2YgdGV4dCIKKworICAg
IGdldFRleHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ib25lbGluZSIp
LnRleHQKKyAgICBhc3NlcnQgZ2V0VGV4dCA9PSAiQSBzaW5nbGUgbGluZSBvZiB0ZXh0IgorCisK
K2RlZiB0ZXN0U2hvdWxkUmV0dXJuVGhlRW50aXJlVGV4dENvbnRlbnRPZkNoaWxkRWxlbWVudHMo
ZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICB0
ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9Im11bHRpbGluZSIpLnRl
eHQKKworICAgIGFzc2VydCAiQSBkaXYgY29udGFpbmluZyIgaW4gdGV4dAorICAgIGFzc2VydCAi
TW9yZSB0aGFuIG9uZSBsaW5lIG9mIHRleHQiIGluIHRleHQKKyAgICBhc3NlcnQgImFuZCBibG9j
ayBsZXZlbCBlbGVtZW50cyIgaW4gdGV4dAorCisKK2RlZiB0ZXN0U2hvdWxkSWdub3JlU2NyaXB0
RWxlbWVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdEVuaGFu
Y2VkRm9ybS5odG1sIikKKyAgICBsYWJlbEZvclVzZXJuYW1lID0gZHJpdmVyLmZpbmRfZWxlbWVu
dChieT1CeS5JRCwgdmFsdWU9ImxhYmVsZm9ydXNlcm5hbWUiKQorICAgIHRleHQgPSBsYWJlbEZv
clVzZXJuYW1lLnRleHQKKworICAgIGFzc2VydCBsZW4obGFiZWxGb3JVc2VybmFtZS5maW5kX2Vs
ZW1lbnRzKGJ5PUJ5LlRBR19OQU1FLCB2YWx1ZT0ic2NyaXB0IikpID09IDEKKyAgICBhc3NlcnQg
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkIiBub3QgaW4gdGV4dAorICAgIGFzc2VydCB0ZXh0ID09
ICJVc2VybmFtZToiCisKKworZGVmIHRlc3RTaG91bGRSZXByZXNlbnRBQmxvY2tMZXZlbEVsZW1l
bnRBc0FOZXdsaW5lKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3Qu
aHRtbCIpCisgICAgdGV4dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJt
dWx0aWxpbmUiKS50ZXh0CisKKyAgICBhc3NlcnQgdGV4dC5zdGFydHN3aXRoKCJBIGRpdiBjb250
YWluaW5nIiArIG5ld0xpbmUpCisgICAgYXNzZXJ0ICJNb3JlIHRoYW4gb25lIGxpbmUgb2YgdGV4
dCIgKyBuZXdMaW5lIGluIHRleHQKKyAgICBhc3NlcnQgdGV4dC5lbmRzd2l0aCgiYW5kIGJsb2Nr
IGxldmVsIGVsZW1lbnRzIikKKworCitkZWYgdGVzdFNob3VsZENvbGxhcHNlTXVsdGlwbGVXaGl0
ZXNwYWNlQ2hhcmFjdGVyc0ludG9BU2luZ2xlU3BhY2UoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICB0ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dChieT1CeS5JRCwgdmFsdWU9ImxvdHNvZnNwYWNlcyIpLnRleHQKKworICAgIGFzc2VydCB0ZXh0
ID09ICJUaGlzIGxpbmUgaGFzIGxvdHMgb2Ygc3BhY2VzLiIKKworCitkZWYgdGVzdFNob3VsZFRy
aW1UZXh0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIp
CisgICAgdGV4dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJtdWx0aWxp
bmUiKS50ZXh0CisKKyAgICBhc3NlcnQgdGV4dC5zdGFydHN3aXRoKCJBIGRpdiBjb250YWluaW5n
IikKKyAgICBhc3NlcnQgdGV4dC5lbmRzd2l0aCgiYmxvY2sgbGV2ZWwgZWxlbWVudHMiKQorCisK
K2RlZiB0ZXN0U2hvdWxkQ29udmVydEFOb25CcmVha2luZ1NwYWNlSW50b0FOb3JtYWxTcGFjZUNo
YXJhY3Rlcihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJzaW1wbGVUZXN0Lmh0bWwi
KQorICAgIHRleHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ibmJzcCIp
LnRleHQKKworICAgIGFzc2VydCB0ZXh0ID09ICJUaGlzIGxpbmUgaGFzIGEgbm9uLWJyZWFraW5n
IHNwYWNlIgorCisKK2RlZiB0ZXN0U2hvdWxkVHJlYXRBTm9uQnJlYWtpbmdTcGFjZUFzQW55T3Ro
ZXJXaGl0ZXNwYWNlQ2hhcmFjdGVyV2hlbkNvbGxhcHNpbmdXaGl0ZXNwYWNlKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJuYnNwYW5kc3BhY2VzIikKKyAgICB0
ZXh0ID0gZWxlbWVudC50ZXh0CisKKyAgICBhc3NlcnQgdGV4dCA9PSAiVGhpcyBsaW5lIGhhcyBh
ICAgbm9uLWJyZWFraW5nIHNwYWNlIGFuZCBzcGFjZXMiCisKKworZGVmIHRlc3RIYXZpbmdJbmxp
bmVFbGVtZW50c1Nob3VsZE5vdEFmZmVjdEhvd1RleHRJc1JldHVybmVkKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisgICAgdGV4dCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJpbmxpbmUiKS50ZXh0CisKKyAgICBhc3NlcnQg
dGV4dCA9PSAiVGhpcyBsaW5lIGhhcyB0ZXh0IHdpdGhpbiBlbGVtZW50cyB0aGF0IGFyZSBtZWFu
dCB0byBiZSBkaXNwbGF5ZWQgaW5saW5lIgorCisKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuVGhlRW50
aXJlVGV4dE9mSW5saW5lRWxlbWVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgi
c2ltcGxlVGVzdC5odG1sIikKKyAgICB0ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5J
RCwgdmFsdWU9InNwYW4iKS50ZXh0CisKKyAgICBhc3NlcnQgdGV4dCA9PSAiQW4gaW5saW5lIGVs
ZW1lbnQiCisKKworZGVmIHRlc3RTaG91bGRCZUFibGVUb1NldE1vcmVUaGFuT25lTGluZU9mVGV4
dEluQVRleHRBcmVhKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImZvcm1QYWdlLmh0
bWwiKQorICAgIHRleHRhcmVhID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9
IndpdGhUZXh0IikKKyAgICB0ZXh0YXJlYS5jbGVhcigpCisKKyAgICBleHBlY3RlZFRleHQgPSAi
SSBsaWtlIGNoZWVzZSIgKyBuZXdMaW5lICsgbmV3TGluZSArICJJdCdzIHJlYWxseSBuaWNlIgor
CisgICAgdGV4dGFyZWEuc2VuZF9rZXlzKGV4cGVjdGVkVGV4dCkKKworICAgIHNlZW5UZXh0ID0g
dGV4dGFyZWEuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorICAgIGFzc2VydCBzZWVuVGV4dCA9PSBl
eHBlY3RlZFRleHQKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvRW50ZXJEYXRlc0FmdGVyRmls
bGluZ0luT3RoZXJWYWx1ZXNGaXJzdChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJm
b3JtUGFnZS5odG1sIikKKyAgICBpbnB1dF8gPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklE
LCB2YWx1ZT0id29ya2luZyIpCisgICAgZXhwZWN0ZWRWYWx1ZSA9ICIxMC8wMy8yMDA3IHRvIDMw
LzA3LzE5OTMiCisgICAgaW5wdXRfLnNlbmRfa2V5cyhleHBlY3RlZFZhbHVlKQorICAgIHNlZW5W
YWx1ZSA9IGlucHV0Xy5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisKKyAgICBhc3NlcnQgc2VlblZh
bHVlID09IGV4cGVjdGVkVmFsdWUKKworCitkZWYgdGVzdFNob3VsZFJldHVybkVtcHR5U3RyaW5n
V2hlblRleHRJc09ubHlTcGFjZXMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0
bWxUZXN0Lmh0bWwiKQorCisgICAgdGV4dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQs
IHZhbHVlPSJzcGFjZXMiKS50ZXh0CisgICAgYXNzZXJ0IHRleHQgPT0gIiIKKworCitkZWYgdGVz
dFNob3VsZFJldHVybkVtcHR5U3RyaW5nV2hlblRleHRJc0VtcHR5KGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1sIikKKworICAgIHRleHQgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iZW1wdHkiKS50ZXh0CisgICAgYXNzZXJ0IHRleHQg
PT0gIiIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwKK2RlZiB0ZXN0U2hvdWxkUmV0dXJuRW1wdHlT
dHJpbmdXaGVuVGFnSXNTZWxmQ2xvc2luZyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJ4aHRtbEZvcm1QYWdlLnhodG1sIikKKworICAgIHRleHQgPSBkcml2ZXIuZmluZF9lbGVtZW50
KGJ5PUJ5LklELCB2YWx1ZT0ic2VsZi1jbG9zZWQiKS50ZXh0CisgICAgYXNzZXJ0IHRleHQgPT0g
IiIKKworCitkZWYgdGVzdFNob3VsZEhhbmRsZVNpYmxpbmdCbG9ja0xldmVsRWxlbWVudHMoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKworICAgIHRl
eHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0idHdvYmxvY2tzIikudGV4
dAorICAgIGFzc2VydCB0ZXh0ID09ICJTb21lIHRleHQiICsgbmV3TGluZSArICJTb21lIG1vcmUg
dGV4dCIKKworCitkZWYgdGVzdFNob3VsZEhhbmRsZVdoaXRlc3BhY2VJbklubGluZUVsZW1lbnRz
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNpbXBsZVRlc3QuaHRtbCIpCisKKyAg
ICB0ZXh0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImlubGluZXNwYW4i
KS50ZXh0CisgICAgYXNzZXJ0IHRleHQgPT0gImxpbmUgaGFzIHRleHQiCisKKworZGVmIHRlc3RS
ZWFkQUxhcmdlQW1vdW50T2ZEYXRhKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoIm1h
Y2JldGguaHRtbCIpCisgICAgc291cmNlID0gZHJpdmVyLnBhZ2Vfc291cmNlLnN0cmlwKCkubG93
ZXIoKQorCisgICAgYXNzZXJ0IHNvdXJjZS5lbmRzd2l0aCgiPC9odG1sPiIpCisKKworZGVmIHRl
c3RTaG91bGRPbmx5SW5jbHVkZVZpc2libGVUZXh0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorCisgICAgZW1wdHkgPSBkcml2ZXIuZmluZF9l
bGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ic3VwcHJlc3NlZFBhcmFncmFwaCIpLnRleHQKKyAgICBl
eHBsaWNpdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJvdXRlciIpLnRl
eHQKKworICAgIGFzc2VydCAiIiA9PSBlbXB0eQorICAgIGFzc2VydCAic3ViLWVsZW1lbnQgdGhh
dCBpcyBleHBsaWNpdGx5IHZpc2libGUiID09IGV4cGxpY2l0CisKKworZGVmIHRlc3RTaG91bGRH
ZXRUZXh0RnJvbVRhYmxlQ2VsbHMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgidGFi
bGVzLmh0bWwiKQorCisgICAgdHIgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1
ZT0iaGlkZGVuX3RleHQiKQorICAgIHRleHQgPSB0ci50ZXh0CisKKyAgICBhc3NlcnQgInNvbWUg
dGV4dCIgaW4gdGV4dAorICAgIGFzc2VydCAic29tZSBtb3JlIHRleHQiIG5vdCBpbiB0ZXh0CisK
KworZGVmIHRlc3RTaG91bGRHZXRUZXh0V2hpY2hJc0FWYWxpZEpTT05PYmplY3QoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgic2ltcGxlVGVzdC5odG1sIikKKyAgICBlbGVtZW50ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InNpbXBsZUpzb25UZXh0IikKKyAg
ICBhc3NlcnQgInthPVwiYlwiLCBjPTEsIGQ9dHJ1ZX0iID09IGVsZW1lbnQudGV4dAorICAgICMg
YXNzZXJ0ICJ7YT1cImJcIiwgXCJjXCI9ZCwgZT10cnVlLCBmPVxcMTIzXFxcXGdcXFxcXCJcIlwi
XFxcJ30iLCBlbGVtZW50LnRleHQpCisKKworZGVmIHRlc3RTaG91bGRHZXRUZXh0V2hpY2hJc0FW
YWxpZENvbXBsZXhKU09OT2JqZWN0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInNp
bXBsZVRlc3QuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9Qnku
SUQsIHZhbHVlPSJjb21wbGV4SnNvblRleHQiKQorICAgIGFzc2VydCAiIiJ7YT1cIlxcXFxiXFxc
XFxcXCJcJ1xcXCdcIn0iIiIgPT0gZWxlbWVudC50ZXh0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24v
dHlwaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVz
dC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3R5cGluZ190ZXN0cy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzIwOWQ1NTBmOWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9jb21tb24vdHlwaW5nX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMzI1IEBACisjIExpY2Vuc2Vk
IHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBv
ciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZp
bGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRo
aXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0
aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElF
UyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworZnJv
bSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIuY29tbW9uLmtleXMgaW1wb3J0IEtleXMKKworaW1wb3J0IHB5dGVzdAorCisKK2Rl
ZiB0ZXN0U2hvdWxkRmlyZUtleVByZXNzRXZlbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGtleVJlcG9ydGVyID0gZHJpdmVyLmZp
bmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBrZXlSZXBvcnRl
ci5zZW5kX2tleXMoImEiKQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9Qnku
SUQsIHZhbHVlPSJyZXN1bHQiKQorICAgIGFzc2VydCAicHJlc3M6IiBpbiByZXN1bHQudGV4dAor
CisKK2RlZiB0ZXN0U2hvdWxkRmlyZUtleURvd25FdmVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAga2V5UmVwb3J0ZXIgPSBkcml2
ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIiKQorICAgIGtleVJl
cG9ydGVyLnNlbmRfa2V5cygiSSIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9InJlc3VsdCIpCisgICAgYXNzZXJ0ICJkb3duIiBpbiByZXN1bHQudGV4
dAorCisKK2RlZiB0ZXN0U2hvdWxkRmlyZUtleVVwRXZlbnRzKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGtleVJlcG9ydGVyID0gZHJp
dmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBrZXlS
ZXBvcnRlci5zZW5kX2tleXMoImEiKQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnQo
Ynk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQorICAgIGFzc2VydCAidXA6IiBpbiByZXN1bHQudGV4
dAorCisKK2RlZiB0ZXN0U2hvdWxkVHlwZUxvd2VyQ2FzZUxldHRlcnMoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAga2V5UmVwb3J0ZXIg
PSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIiKQorICAg
IGtleVJlcG9ydGVyLnNlbmRfa2V5cygiYWJjIGRlZiIpCisgICAgYXNzZXJ0IGtleVJlcG9ydGVy
LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImFiYyBkZWYiCisKKworZGVmIHRlc3RTaG91bGRC
ZUFibGVUb1R5cGVDYXBpdGFsTGV0dGVycyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2Fk
KCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBrZXlSZXBvcnRlciA9IGRyaXZlci5maW5kX2Vs
ZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAga2V5UmVwb3J0ZXIuc2Vu
ZF9rZXlzKCJBQkMgREVGIikKKyAgICBhc3NlcnQga2V5UmVwb3J0ZXIuZ2V0X2F0dHJpYnV0ZSgi
dmFsdWUiKSA9PSAiQUJDIERFRiIKKworCitkZWYgdGVzdFNob3VsZEJlQWJsZVRvVHlwZVF1b3Rl
TWFya3MoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRt
bCIpCisgICAga2V5UmVwb3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1
ZT0ia2V5UmVwb3J0ZXIiKQorICAgIGtleVJlcG9ydGVyLnNlbmRfa2V5cygiXCIiKQorICAgIGFz
c2VydCBrZXlSZXBvcnRlci5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJcIiIKKworCitkZWYg
dGVzdFNob3VsZEJlQWJsZVRvVHlwZVRoZUF0Q2hhcmFjdGVyKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGtleVJlcG9ydGVyID0gZHJp
dmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBrZXlS
ZXBvcnRlci5zZW5kX2tleXMoIkAiKQorICAgIGFzc2VydCBrZXlSZXBvcnRlci5nZXRfYXR0cmli
dXRlKCJ2YWx1ZSIpID09ICJAIgorCisKK2RlZiB0ZXN0U2hvdWxkQmVBYmxlVG9NaXhVcHBlckFu
ZExvd2VyQ2FzZUxldHRlcnMoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNj
cmlwdFBhZ2UuaHRtbCIpCisgICAga2V5UmVwb3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5
PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIiKQorICAgIGtleVJlcG9ydGVyLnNlbmRfa2V5cygi
bWVAZVhhbXBsZS5jb20iKQorICAgIGFzc2VydCBrZXlSZXBvcnRlci5nZXRfYXR0cmlidXRlKCJ2
YWx1ZSIpID09ICJtZUBlWGFtcGxlLmNvbSIKKworCitkZWYgdGVzdEFycm93S2V5c1Nob3VsZE5v
dEJlUHJpbnRhYmxlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQ
YWdlLmh0bWwiKQorICAgIGtleVJlcG9ydGVyID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5J
RCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBrZXlSZXBvcnRlci5zZW5kX2tleXMoS2V5cy5B
UlJPV19MRUZUKQorICAgIGFzc2VydCBrZXlSZXBvcnRlci5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIp
ID09ICIiCisKKworZGVmIHRlc3RMaXN0T2ZBcnJvd0tleXNTaG91bGROb3RCZVByaW50YWJsZShk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAg
ICBrZXlSZXBvcnRlciA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlS
ZXBvcnRlciIpCisgICAga2V5UmVwb3J0ZXIuc2VuZF9rZXlzKFtLZXlzLkFSUk9XX0xFRlRdKQor
ICAgIGFzc2VydCBrZXlSZXBvcnRlci5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICIiCisKKwor
ZGVmIHRlc3RTaG91bGRCZUFibGVUb1VzZUFycm93S2V5cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBw
YWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBrZXlSZXBvcnRlciA9IGRyaXZl
ci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAga2V5UmVw
b3J0ZXIuc2VuZF9rZXlzKCJUZXQiLCBLZXlzLkFSUk9XX0xFRlQsICJzIikKKyAgICBhc3NlcnQg
a2V5UmVwb3J0ZXIuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiVGVzdCIKKworCitkZWYgdGVz
dFdpbGxTaW11bGF0ZUFLZXlVcFdoZW5FbnRlcmluZ1RleHRJbnRvSW5wdXRFbGVtZW50cyhkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBl
bGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVVwIikKKyAg
ICBlbGVtZW50LnNlbmRfa2V5cygiSSBsaWtlIGNoZWVzZSIpCisgICAgcmVzdWx0ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InJlc3VsdCIpCisgICAgYXNzZXJ0IHJlc3Vs
dC50ZXh0ID09ICJJIGxpa2UgY2hlZXNlIgorCisKK2RlZiB0ZXN0V2lsbFNpbXVsYXRlQUtleURv
d25XaGVuRW50ZXJpbmdUZXh0SW50b0lucHV0RWxlbWVudHMoZHJpdmVyLCBwYWdlcyk6CisgICAg
cGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlEb3duIikKKyAgICBlbGVtZW50LnNlbmRf
a2V5cygiSSBsaWtlIGNoZWVzZSIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChi
eT1CeS5JRCwgdmFsdWU9InJlc3VsdCIpCisgICAgIyAgQmVjYXVzZSB0aGUga2V5IGRvd24gZ2V0
cyB0aGUgcmVzdWx0IGJlZm9yZSB0aGUgaW5wdXQgZWxlbWVudCBpcworICAgICMgIGZpbGxlZCwg
d2UncmUgYSBsZXR0ZXIgc2hvcnQgaGVyZQorICAgIGFzc2VydCByZXN1bHQudGV4dCA9PSAiSSBs
aWtlIGNoZWVzIgorCisKK2RlZiB0ZXN0V2lsbFNpbXVsYXRlQUtleVByZXNzV2hlbkVudGVyaW5n
VGV4dEludG9JbnB1dEVsZW1lbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImph
dmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5
PUJ5LklELCB2YWx1ZT0ia2V5UHJlc3MiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJJIGxpa2Ug
Y2hlZXNlIikKKyAgICByZXN1bHQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1
ZT0icmVzdWx0IikKKyAgICAjICBCZWNhdXNlIHRoZSBrZXkgZG93biBnZXRzIHRoZSByZXN1bHQg
YmVmb3JlIHRoZSBpbnB1dCBlbGVtZW50IGlzCisgICAgIyAgZmlsbGVkLCB3ZSdyZSBhIGxldHRl
ciBzaG9ydCBoZXJlCisgICAgYXNzZXJ0IHJlc3VsdC50ZXh0ID09ICJJIGxpa2UgY2hlZXMiCisK
KworZGVmIHRlc3RXaWxsU2ltdWxhdGVBS2V5VXBXaGVuRW50ZXJpbmdUZXh0SW50b1RleHRBcmVh
cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikK
KyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVVw
QXJlYSIpCisgICAgZWxlbWVudC5zZW5kX2tleXMoIkkgbGlrZSBjaGVlc2UiKQorICAgIHJlc3Vs
dCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQorICAgIGFz
c2VydCByZXN1bHQudGV4dCA9PSAiSSBsaWtlIGNoZWVzZSIKKworCitkZWYgdGVzdFdpbGxTaW11
bGF0ZUFLZXlEb3duV2hlbkVudGVyaW5nVGV4dEludG9UZXh0QXJlYXMoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlEb3duQXJlYSIpCisgICAgZWxl
bWVudC5zZW5kX2tleXMoIkkgbGlrZSBjaGVlc2UiKQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5k
X2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQorICAgICMgIEJlY2F1c2UgdGhlIGtl
eSBkb3duIGdldHMgdGhlIHJlc3VsdCBiZWZvcmUgdGhlIGlucHV0IGVsZW1lbnQgaXMKKyAgICAj
ICBmaWxsZWQsIHdlJ3JlIGEgbGV0dGVyIHNob3J0IGhlcmUKKyAgICBhc3NlcnQgcmVzdWx0LnRl
eHQgPT0gIkkgbGlrZSBjaGVlcyIKKworCitkZWYgdGVzdFdpbGxTaW11bGF0ZUFLZXlQcmVzc1do
ZW5FbnRlcmluZ1RleHRJbnRvVGV4dEFyZWFzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVt
ZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UHJlc3NBcmVhIikKKyAgICBlbGVtZW50LnNlbmRfa2V5
cygiSSBsaWtlIGNoZWVzZSIpCisgICAgcmVzdWx0ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5JRCwgdmFsdWU9InJlc3VsdCIpCisgICAgIyAgQmVjYXVzZSB0aGUga2V5IGRvd24gZ2V0cyB0
aGUgcmVzdWx0IGJlZm9yZSB0aGUgaW5wdXQgZWxlbWVudCBpcworICAgICMgIGZpbGxlZCwgd2Un
cmUgYSBsZXR0ZXIgc2hvcnQgaGVyZQorICAgIGFzc2VydCByZXN1bHQudGV4dCA9PSAiSSBsaWtl
IGNoZWVzIgorCisKK2RlZiB0ZXN0U2hvdWxkUmVwb3J0S2V5Q29kZU9mQXJyb3dLZXlzVXBEb3du
RXZlbnRzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJy
ZXN1bHQiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1
ZT0ia2V5UmVwb3J0ZXIiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKEtleXMuQVJST1dfRE9XTikK
KyAgICBhc3NlcnQgImRvd246IDQwIiBpbiByZXN1bHQudGV4dC5zdHJpcCgpCisgICAgYXNzZXJ0
ICJ1cDogNDAiIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKworICAgIGVsZW1lbnQuc2VuZF9rZXlz
KEtleXMuQVJST1dfVVApCisgICAgYXNzZXJ0ICJkb3duOiAzOCIgaW4gcmVzdWx0LnRleHQuc3Ry
aXAoKQorICAgIGFzc2VydCAidXA6IDM4IiBpbiByZXN1bHQudGV4dC5zdHJpcCgpCisKKyAgICBl
bGVtZW50LnNlbmRfa2V5cyhLZXlzLkFSUk9XX0xFRlQpCisgICAgYXNzZXJ0ICJkb3duOiAzNyIg
aW4gcmVzdWx0LnRleHQuc3RyaXAoKQorICAgIGFzc2VydCAidXA6IDM3IiBpbiByZXN1bHQudGV4
dC5zdHJpcCgpCisKKyAgICBlbGVtZW50LnNlbmRfa2V5cyhLZXlzLkFSUk9XX1JJR0hUKQorICAg
IGFzc2VydCAiZG93bjogMzkiIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKyAgICBhc3NlcnQgInVw
OiAzOSIgaW4gcmVzdWx0LnRleHQuc3RyaXAoKQorCisgICAgIyAgQW5kIGxlYXZlIG5vIHJ1YmJp
c2gvcHJpbnRhYmxlIGtleXMgaW4gdGhlICJrZXlSZXBvcnRlciIKKyAgICBhc3NlcnQgZWxlbWVu
dC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICIiCisKKworZGVmIHRlc3ROdW1lcmljTm9uU2hp
ZnRLZXlzKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0
bWwiKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0i
a2V5UmVwb3J0ZXIiKQorICAgIG51bWVyaWNMaW5lQ2hhcnNOb25TaGlmdGVkID0gImAxMjM0NTY3
ODkwLT1bXVxcLC4nLzQyIgorICAgIGVsZW1lbnQuc2VuZF9rZXlzKG51bWVyaWNMaW5lQ2hhcnNO
b25TaGlmdGVkKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0g
bnVtZXJpY0xpbmVDaGFyc05vblNoaWZ0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9u
ZXR0ZSgKKyAgICByZWFzb249J2h0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNTUyNTgnKQorZGVmIHRlc3ROdW1lcmljU2hpZnRLZXlzKGRyaXZlciwgcGFnZXMp
OgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHJlc3VsdCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIiKQorICAg
IG51bWVyaWNTaGlmdHNFdGMgPSAifiFAIyQlXiYqKClfK3t9OmlcIjw+P3xFTkR+IgorICAgIGVs
ZW1lbnQuc2VuZF9rZXlzKG51bWVyaWNTaGlmdHNFdGMpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0
X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSBudW1lcmljU2hpZnRzRXRjCisgICAgYXNzZXJ0ICJ1cDog
MTYiIGluIHJlc3VsdC50ZXh0LnN0cmlwKCkKKworCitkZWYgdGVzdExvd2VyQ2FzZUFscGhhS2V5
cyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikK
KyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJl
cG9ydGVyIikKKyAgICBsb3dlckFscGhhcyA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIK
KyAgICBlbGVtZW50LnNlbmRfa2V5cyhsb3dlckFscGhhcykKKyAgICBhc3NlcnQgZWxlbWVudC5n
ZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09IGxvd2VyQWxwaGFzCisKKworQHB5dGVzdC5tYXJrLnhm
YWlsX21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjU1MjU4JykKK2RlZiB0ZXN0VXBwZXJjYXNlQWxwaGFLZXlzKGRy
aXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAg
IHJlc3VsdCA9IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJyZXN1bHQiKQor
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVw
b3J0ZXIiKQorICAgIHVwcGVyQWxwaGFzID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgor
ICAgIGVsZW1lbnQuc2VuZF9rZXlzKHVwcGVyQWxwaGFzKQorICAgIGFzc2VydCBlbGVtZW50Lmdl
dF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gdXBwZXJBbHBoYXMKKyAgICBhc3NlcnQgInVwOiAxNiIg
aW4gcmVzdWx0LnRleHQuc3RyaXAoKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRl
KAorICAgIHJlYXNvbj0naHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI1NTI1OCcpCitkZWYgdGVzdEFsbFByaW50YWJsZUtleXMoZHJpdmVyLCBwYWdlcyk6Cisg
ICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgcmVzdWx0ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InJlc3VsdCIpCisgICAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAgYWxs
UHJpbnRhYmxlID0gIiFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojw9Pj9AIEFCQ0RFRkdISUpL
TE1OT1BRUlNUVVZXWFlaIFtcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX4iCisg
ICAgZWxlbWVudC5zZW5kX2tleXMoYWxsUHJpbnRhYmxlKQorCisgICAgYXNzZXJ0IGVsZW1lbnQu
Z2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSBhbGxQcmludGFibGUKKyAgICBhc3NlcnQgInVwOiAx
NiIgaW4gcmVzdWx0LnRleHQuc3RyaXAoKQorCisKK2RlZiB0ZXN0QXJyb3dLZXlzQW5kUGFnZVVw
QW5kRG93bihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5o
dG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9
ImtleVJlcG9ydGVyIikKKyAgICBlbGVtZW50LnNlbmRfa2V5cygKKyAgICAgICAgImEiICsgS2V5
cy5MRUZUICsgImIiICsgS2V5cy5SSUdIVCArCisgICAgICAgIEtleXMuVVAgKyBLZXlzLkRPV04g
KyBLZXlzLlBBR0VfVVAgKyBLZXlzLlBBR0VfRE9XTiArICIxIikKKyAgICBhc3NlcnQgZWxlbWVu
dC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpID09ICJiYTEiCisKKworIyBkZWYgdGVzdEhvbWVBbmRF
bmRBbmRQYWdlVXBBbmRQYWdlRG93bktleXMoZHJpdmVyLCBwYWdlcyk6CisjICAvLyBGSVhNRTog
bWFjcyBkb24ndCBoYXZlIEhPTUUga2V5cywgd291bGQgUEdVUCB3b3JrPworIyAgaWYgKFBsYXRm
b3JtLmdldEN1cnJlbnQoKS5pcyhQbGF0Zm9ybS5NQUMpKSB7CisjICAgIHJldHVybgorIyAgfQor
CisjICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKworIyAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisKKyMgIGVs
ZW1lbnQuc2VuZF9rZXlzKCJhYmMiICsgS2V5cy5IT01FICsgIjAiICsgS2V5cy5MRUZUICsgS2V5
cy5SSUdIVCArCisjICAgICAgICAgICAgICAgICAgIEtleXMuUEFHRV9VUCArIEtleXMuUEFHRV9E
T1dOICsgS2V5cy5FTkQgKyAiMSIgKyBLZXlzLkhPTUUgKworIyAgICAgICAgICAgICAgICAgICAi
MCIgKyBLZXlzLlBBR0VfVVAgKyBLZXlzLkVORCArICIxMTEiICsgS2V5cy5IT01FICsgIjAwIikK
KyMgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIjAwMDBhYmMxMTEx
IgorCisKK2RlZiB0ZXN0RGVsZXRlQW5kQmFja3NwYWNlS2V5cyhkcml2ZXIsIHBhZ2VzKToKKyAg
ICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVy
LmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikKKyAgICBlbGVtZW50
LnNlbmRfa2V5cygiYWJjZGVmZ2hpIikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRl
KCJ2YWx1ZSIpID09ICJhYmNkZWZnaGkiCisKKyAgICBlbGVtZW50LnNlbmRfa2V5cyhLZXlzLkxF
RlQsIEtleXMuTEVGVCwgS2V5cy5ERUxFVEUpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJp
YnV0ZSgidmFsdWUiKSA9PSAiYWJjZGVmZ2kiCisKKyAgICBlbGVtZW50LnNlbmRfa2V5cyhLZXlz
LkxFRlQsIEtleXMuTEVGVCwgS2V5cy5CQUNLX1NQQUNFKQorICAgIGFzc2VydCBlbGVtZW50Lmdl
dF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImFiY2RmZ2kiCisKKworQHB5dGVzdC5tYXJrLnhmYWls
X21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjU1MjU4JykKK2RlZiB0ZXN0U3BlY2lhbFNwYWNlS2V5cyhkcml2ZXIs
IHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVt
ZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImtleVJlcG9ydGVyIikK
KyAgICBlbGVtZW50LnNlbmRfa2V5cygiYWJjZCIgKyBLZXlzLlNQQUNFICsgImZnaCIgKyBLZXlz
LlNQQUNFICsgImlqIikKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIp
ID09ICJhYmNkIGZnaCBpaiIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAg
ICByZWFzb249J2h0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NTUyNTgnKQorZGVmIHRlc3ROdW1iZXJwYWRBbmRGdW5jdGlvbktleXMoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRy
aXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJrZXlSZXBvcnRlciIpCisgICAgZWxl
bWVudC5zZW5kX2tleXMoCisgICAgICAgICJhYmNkIiArIEtleXMuTVVMVElQTFkgKyBLZXlzLlNV
QlRSQUNUICsgS2V5cy5BREQgKworICAgICAgICBLZXlzLkRFQ0lNQUwgKyBLZXlzLlNFUEFSQVRP
UiArIEtleXMuTlVNUEFEMCArIEtleXMuTlVNUEFEOSArCisgICAgICAgIEtleXMuQUREICsgS2V5
cy5TRU1JQ09MT04gKyBLZXlzLkVRVUFMUyArIEtleXMuRElWSURFICsKKyAgICAgICAgS2V5cy5O
VU1QQUQzICsgImFiY2QiKQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVl
IikgPT0gImFiY2QqLSsuLDA5Kzs9LzNhYmNkIgorCisgICAgZWxlbWVudC5jbGVhcigpCisgICAg
ZWxlbWVudC5zZW5kX2tleXMoIkZVTkNUSU9OIiArIEtleXMuRjIgKyAiLUtFWVMiICsgS2V5cy5G
MikKKyAgICBlbGVtZW50LnNlbmRfa2V5cygiIiArIEtleXMuRjIgKyAiLVRPTyIgKyBLZXlzLkYy
KQorICAgIGFzc2VydCBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gIkZVTkNUSU9O
LUtFWVMtVE9PIgorCisKK2RlZiB0ZXN0U2hpZnRTZWxlY3Rpb25EZWxldGVzKGRyaXZlciwgcGFn
ZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGVsZW1lbnQg
PSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIiKQorCisg
ICAgZWxlbWVudC5zZW5kX2tleXMoImFiY2QgZWZnaCIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0
X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiYWJjZCBlZmdoIgorCisgICAgZWxlbWVudC5zZW5kX2tl
eXMoS2V5cy5TSElGVCwgS2V5cy5MRUZULCBLZXlzLkxFRlQsIEtleXMuTEVGVCkKKyAgICBlbGVt
ZW50LnNlbmRfa2V5cyhLZXlzLkRFTEVURSkKKyAgICBhc3NlcnQgZWxlbWVudC5nZXRfYXR0cmli
dXRlKCJ2YWx1ZSIpID09ICJhYmNkIGUiCisKKworZGVmIHRlc3RTaG91bGRUeXBlSW50b0lucHV0
RWxlbWVudHNUaGF0SGF2ZU5vVHlwZUF0dHJpYnV0ZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJmb3JtUGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVu
dChieT1CeS5JRCwgdmFsdWU9Im5vLXR5cGUiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJTaG91
bGQgU2F5IENoZWVzZSIpCisgICAgYXNzZXJ0IGVsZW1lbnQuZ2V0X2F0dHJpYnV0ZSgidmFsdWUi
KSA9PSAiU2hvdWxkIFNheSBDaGVlc2UiCisKKworZGVmIHRlc3RTaG91bGRUeXBlQW5JbnRlZ2Vy
KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQor
ICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVw
b3J0ZXIiKQorICAgIGVsZW1lbnQuc2VuZF9rZXlzKDEyMzQpCisgICAgYXNzZXJ0IGVsZW1lbnQu
Z2V0X2F0dHJpYnV0ZSgidmFsdWUiKSA9PSAiMTIzNCIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRl
c3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi91
dGlscy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5p
dW0vd2ViZHJpdmVyL2NvbW1vbi91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uODYzYjQyNTY1NWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdXRp
bHMucHkKQEAgLTAsMCArMSwyNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworZGVmIGNvbnZlcnRfY29va2llX3RvX2pz
b24oY29va2llKToKKyAgICBjb29raWVfZGljdCA9IHt9CisgICAgZm9yIGtleSwgdmFsdWUgaW4g
Y29va2llLml0ZW1zKCk6CisgICAgICAgIGlmIGtleSA9PSAiZXhwaXJlcyI6CisgICAgICAgICAg
ICBjb29raWVfZGljdFsiZXhwaXJ5Il0gPSBpbnQodmFsdWUpICogMTAwMAorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgY29va2llX2RpY3Rba2V5XSA9IHZhbHVlCisgICAgcmV0dXJuIGNvb2tp
ZV9kaWN0CmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90
ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdmlzaWJpbGl0eV90ZXN0cy5weSBiL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi92aXNpYmlsaXR5X3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi45ODc2M2E3ZGM2YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2lt
cG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi92aXNpYmls
aXR5X3Rlc3RzLnB5CkBAIC0wLDAgKzEsMTQ3IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2Fy
ZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1
dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0
ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5n
IGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5
b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNl
Iik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0
aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor
IworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBV
bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs
CisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk
IG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T
IE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNl
bnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFu
ZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAorCitm
cm9tIHNlbGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCAoCisgICAgRWxlbWVudE5vdFZp
c2libGVFeGNlcHRpb24sCisgICAgRWxlbWVudE5vdEludGVyYWN0YWJsZUV4Y2VwdGlvbiwKKyAg
ICBJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uKQorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIu
Y29tbW9uLmJ5IGltcG9ydCBCeQorCisKK2RlZiB0ZXN0U2hvdWxkQWxsb3dUaGVVc2VyVG9UZWxs
SWZBbkVsZW1lbnRJc0Rpc3BsYXllZE9yTm90KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorCisgICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1l
bnQoYnk9QnkuSUQsIHZhbHVlPSJkaXNwbGF5ZWQiKS5pc19kaXNwbGF5ZWQoKSBpcyBUcnVlCisg
ICAgYXNzZXJ0IGRyaXZlci5maW5kX2VsZW1lbnQoYnk9QnkuSUQsIHZhbHVlPSJub25lIikuaXNf
ZGlzcGxheWVkKCkgaXMgRmFsc2UKKyAgICBhc3NlcnQgZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5JRCwgdmFsdWU9InN1cHByZXNzZWRQYXJhZ3JhcGgiKS5pc19kaXNwbGF5ZWQoKSBpcyBGYWxz
ZQorICAgIGFzc2VydCBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaGlkZGVu
IikuaXNfZGlzcGxheWVkKCkgaXMgRmFsc2UKKworCitkZWYgdGVzdFZpc2liaWxpdHlTaG91bGRU
YWtlSW50b0FjY291bnRQYXJlbnRWaXNpYmlsaXR5KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorCisgICAgY2hpbGREaXYgPSBkcml2ZXIuZmlu
ZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaGlkZGVuY2hpbGQiKQorICAgIGhpZGRlbkxpbmsg
PSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0iaGlkZGVubGluayIpCisKKyAg
ICBhc3NlcnQgY2hpbGREaXYuaXNfZGlzcGxheWVkKCkgaXMgRmFsc2UKKyAgICBhc3NlcnQgaGlk
ZGVuTGluay5pc19kaXNwbGF5ZWQoKSBpcyBGYWxzZQorCisKK2RlZiB0ZXN0U2hvdWxkQ291bnRF
bGVtZW50c0FzVmlzaWJsZUlmU3R5bGVQcm9wZXJ0eUhhc0JlZW5TZXQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgc2hvd24gPSBkcml2
ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0idmlzaWJsZVN1YkVsZW1lbnQiKQorICAg
IGFzc2VydCBzaG93bi5pc19kaXNwbGF5ZWQoKSBpcyBUcnVlCisKKworZGVmIHRlc3RTaG91bGRN
b2RpZnlUaGVWaXNpYmlsaXR5T2ZBbkVsZW1lbnREeW5hbWljYWxseShkcml2ZXIsIHBhZ2VzKToK
KyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJp
dmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9ImhpZGVNZSIpCisgICAgYXNzZXJ0IGVs
ZW1lbnQuaXNfZGlzcGxheWVkKCkgaXMgVHJ1ZQorICAgIGVsZW1lbnQuY2xpY2soKQorICAgIGFz
c2VydCBlbGVtZW50LmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCisKKworZGVmIHRlc3RIaWRkZW5J
bnB1dEVsZW1lbnRzQXJlTmV2ZXJWaXNpYmxlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorCisgICAgc2hvd24gPSBkcml2ZXIuZmluZF9lbGVt
ZW50KGJ5PUJ5Lk5BTUUsIHZhbHVlPSJoaWRkZW4iKQorCisgICAgYXNzZXJ0IHNob3duLmlzX2Rp
c3BsYXllZCgpIGlzIEZhbHNlCisKKworZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb0NsaWNrT25B
bkVsZW1lbnRUaGF0SXNOb3REaXNwbGF5ZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1l
bnQoYnk9QnkuSUQsIHZhbHVlPSJ1bmNsaWNrYWJsZSIpCisgICAgdHJ5OgorICAgICAgICBlbGVt
ZW50LmNsaWNrKCkKKyAgICAgICAgYXNzZXJ0IDEgPT0gMCwgInNob3VsZCBoYXZlIHRocm93biBh
biBleGNlcHRpb24iCisgICAgZXhjZXB0IChFbGVtZW50Tm90VmlzaWJsZUV4Y2VwdGlvbiwgRWxl
bWVudE5vdEludGVyYWN0YWJsZUV4Y2VwdGlvbik6CisgICAgICAgIHBhc3MKKworCitkZWYgdGVz
dFNob3VsZE5vdEJlQWJsZVRvVG9nZ2xlQW5FbGVtZW50VGhhdElzTm90RGlzcGxheWVkKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGVs
ZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0idW50b2dnbGFibGUi
KQorICAgIHRyeToKKyAgICAgICAgZWxlbWVudC5jbGljaygpCisgICAgICAgIGFzc2VydCAxID09
IDAsICJzaG91bGQgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uIgorICAgIGV4Y2VwdCAoRWxlbWVu
dE5vdFZpc2libGVFeGNlcHRpb24sIEVsZW1lbnROb3RJbnRlcmFjdGFibGVFeGNlcHRpb24pOgor
ICAgICAgICBwYXNzCisKKworZGVmIHRlc3RTaG91bGROb3RCZUFibGVUb1NlbGVjdEFuRWxlbWVu
dFRoYXRJc05vdERpc3BsYXllZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZh
c2NyaXB0UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1C
eS5JRCwgdmFsdWU9InVudG9nZ2xhYmxlIikKKyAgICB0cnk6CisgICAgICAgIGVsZW1lbnQuY2xp
Y2soKQorICAgICAgICBhc3NlcnQgMSA9PSAwLCAic2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2Vw
dGlvbiIKKyAgICBleGNlcHQgKEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uLCBFbGVtZW50Tm90
SW50ZXJhY3RhYmxlRXhjZXB0aW9uKToKKyAgICAgICAgcGFzcworCisKK0BweXRlc3QubWFyay54
ZmFpbF9waGFudG9tanMocmFpc2VzPUludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24pCitkZWYg
dGVzdFNob3VsZE5vdEJlQWJsZVRvVHlwZUFuRWxlbWVudFRoYXRJc05vdERpc3BsYXllZChkcml2
ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAgICBl
bGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudChieT1CeS5JRCwgdmFsdWU9InVuY2xpY2thYmxl
IikKKyAgICB0cnk6CisgICAgICAgIGVsZW1lbnQuc2VuZF9rZXlzKCJZb3UgZG9uJ3Qgc2VlIG1l
IikKKyAgICAgICAgYXNzZXJ0IDEgPT0gMCwgInNob3VsZCBoYXZlIHRocm93biBhbiBleGNlcHRp
b24iCisgICAgZXhjZXB0IChFbGVtZW50Tm90VmlzaWJsZUV4Y2VwdGlvbiwgRWxlbWVudE5vdElu
dGVyYWN0YWJsZUV4Y2VwdGlvbik6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgZWxlbWVudC5n
ZXRfYXR0cmlidXRlKCJ2YWx1ZSIpICE9ICJZb3UgZG9uJ3Qgc2VlIG1lIgorCisKK2RlZiB0ZXN0
U2hvdWxkU2F5RWxlbWVudHNXaXRoTmVnYXRpdmVUcmFuc2Zvcm1BcmVOb3REaXNwbGF5ZWQoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgnY3NzVHJhbnNmb3JtLmh0bWwnKQorICAgIGVs
ZW1lbnRYID0gZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgdmFsdWU9J3BhcmVudFgnKQorICAg
IGFzc2VydCBlbGVtZW50WC5pc19kaXNwbGF5ZWQoKSBpcyBGYWxzZQorICAgIGVsZW1lbnRZID0g
ZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgdmFsdWU9J3BhcmVudFknKQorICAgIGFzc2VydCBl
bGVtZW50WS5pc19kaXNwbGF5ZWQoKSBpcyBGYWxzZQorCisKK2RlZiB0ZXN0U2hvdWxkU2F5RWxl
bWVudHNXaXRoUGFyZW50V2l0aE5lZ2F0aXZlVHJhbnNmb3JtQXJlTm90RGlzcGxheWVkKGRyaXZl
ciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ2Nzc1RyYW5zZm9ybS5odG1sJykKKyAgICBlbGVt
ZW50WCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsIHZhbHVlPSdjaGlsZFgnKQorICAgIGFz
c2VydCBlbGVtZW50WC5pc19kaXNwbGF5ZWQoKSBpcyBGYWxzZQorICAgIGVsZW1lbnRZID0gZHJp
dmVyLmZpbmRfZWxlbWVudChCeS5JRCwgdmFsdWU9J2NoaWxkWScpCisgICAgYXNzZXJ0IGVsZW1l
bnRZLmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCisKKworZGVmIHRlc3RTaG91bGRTYXlFbGVtZW50
V2l0aFplcm9UcmFuc2Zvcm1Jc1Zpc2libGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9h
ZCgnY3NzVHJhbnNmb3JtLmh0bWwnKQorICAgIHplcm9fdHJhbmZvcm0gPSBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LklELCAnemVyby10cmFuZm9ybScpCisgICAgYXNzZXJ0IHplcm9fdHJhbmZvcm0u
aXNfZGlzcGxheWVkKCkgaXMgVHJ1ZQorCisKK2RlZiB0ZXN0U2hvdWxkU2F5RWxlbWVudElzVmlz
aWJsZVdoZW5JdEhhc05lZ2F0aXZlVHJhbnNmb3JtQnV0RWxlbWVudGlzbnRJbkFOZWdhdGl2ZVNw
YWNlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ2Nzc1RyYW5zZm9ybTIuaHRtbCcp
CisgICAgemVyb190cmFuZm9ybSA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICduZWdhdGl2
ZS1wZXJjZW50YWdlLXRyYW5zZm9ybVknKQorICAgIGFzc2VydCB6ZXJvX3RyYW5mb3JtLmlzX2Rp
c3BsYXllZCgpIGlzIFRydWUKKworCitkZWYgdGVzdFNob3VsZFNob3dFbGVtZW50Tm90VmlzaWJs
ZVdpdGhIaWRkZW5BdHRyaWJ1dGUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgnaGlk
ZGVuLmh0bWwnKQorICAgIHNpbmdsZUhpZGRlbiA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICdzaW5nbGVIaWRkZW4nKQorICAgIGFzc2VydCBzaW5nbGVIaWRkZW4uaXNfZGlzcGxheWVkKCkg
aXMgRmFsc2UKKworCitkZWYgdGVzdFNob3VsZFNob3dFbGVtZW50Tm90VmlzaWJsZVdoZW5QYXJl
bnRFbGVtZW50SGFzSGlkZGVuQXR0cmlidXRlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxv
YWQoJ2hpZGRlbi5odG1sJykKKyAgICBjaGlsZCA9IGRyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQs
ICdjaGlsZCcpCisgICAgYXNzZXJ0IGNoaWxkLmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9jb21tb24vdzNjX2ludGVyYWN0aW9uX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3cz
Y19pbnRlcmFjdGlvbl90ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uOTQ0NDBhZDY1YjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vdzNjX2ludGVy
YWN0aW9uX3Rlc3RzLnB5CkBAIC0wLDAgKzEsMjM5IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0
d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRy
aWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJp
YnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJk
aW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0
byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNl
bnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMg
d2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBh
dAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIwor
IyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRp
bmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworaW1wb3J0IHB5dGVzdAor
Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ua2V5cyBpbXBvcnQgS2V5cworZnJvbSBz
ZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmFjdGlvbnMuYWN0aW9uX2J1aWxkZXIgaW1wb3J0IEFj
dGlvbkJ1aWxkZXIKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdl
YkRyaXZlcldhaXQKKworCitkZWYgdGVzdF9zaG91bGRfYmVfYWJsZV90b19nZXRfcG9pbnRlcl9h
bmRfa2V5Ym9hcmRfaW5wdXRzKGRyaXZlciwgcGFnZXMpOgorICAgIGFjdGlvbnMgPSBBY3Rpb25C
dWlsZGVyKGRyaXZlcikKKyAgICBwb2ludGVycyA9IGFjdGlvbnMucG9pbnRlcl9pbnB1dHMKKyAg
ICBrZXlib2FyZHMgPSBhY3Rpb25zLmtleV9pbnB1dHMKKworICAgIGFzc2VydCBwb2ludGVycyBp
cyBub3QgTm9uZQorICAgIGFzc2VydCBrZXlib2FyZHMgaXMgbm90IE5vbmUKKworCitAcHl0ZXN0
Lm1hcmsueGZhaWxfY2hyb21lCitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVzdC5t
YXJrLnhmYWlsX3JlbW90ZQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcworQHB5dGVzdC5t
YXJrLnhmYWlsX21hcmlvbmV0dGUoCisgICAgcmVhc29uPSdodHRwczovL2dpdGh1Yi5jb20vbW96
aWxsYS9nZWNrb2RyaXZlci9pc3N1ZXMvNjQ2JykKK2RlZiB0ZXN0U2VuZGluZ0tleXNUb0FjdGl2
ZUVsZW1lbnRXaXRoTW9kaWZpZXIoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9y
bVBhZ2UuaHRtbCIpCisgICAgZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoIndvcmtpbmci
KQorICAgIGUuY2xpY2soKQorCisgICAgYWN0aW9ucyA9IEFjdGlvbkJ1aWxkZXIoZHJpdmVyKQor
ICAgIGtleV9hY3Rpb24gPSBhY3Rpb25zLmtleV9hY3Rpb24KKyAgICBrZXlfYWN0aW9uLmtleV9k
b3duKEtleXMuU0hJRlQpIFwKKyAgICAgICAgLnNlbmRfa2V5cygiYWJjIikgXAorICAgICAgICAu
a2V5X3VwKEtleXMuU0hJRlQpCisKKyAgICBhY3Rpb25zLnBlcmZvcm0oKQorCisgICAgYXNzZXJ0
ICJBQkMiID09IGUuZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQorCisKK0BweXRlc3QubWFyay54ZmFp
bF9jaHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94CitAcHl0ZXN0Lm1hcmsueGZhaWxf
cmVtb3RlCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVzdF9jYW5fY3JlYXRl
X3BhdXNlX2FjdGlvbl9vbl9rZXlib2FyZChkcml2ZXIsIHBhZ2VzKToKKyAgICAjIElmIHdlIGRv
bid0IGdldCBhbiBlcnJvciBhbmQgdGFrZXMgbGVzcyB0aGFuIDMgc2Vjb25kcyB0byBydW4sIHdl
IGFyZSBnb29kCisgICAgaW1wb3J0IGRhdGV0aW1lCisgICAgc3RhcnQgPSBkYXRldGltZS5kYXRl
dGltZS5ub3coKQorICAgIGFjdGlvbnMxID0gQWN0aW9uQnVpbGRlcihkcml2ZXIpCisgICAga2V5
X2FjdGlvbnMgPSBhY3Rpb25zMS5rZXlfYWN0aW9uCisgICAga2V5X2FjdGlvbnMucGF1c2UoMSkK
KyAgICBhY3Rpb25zMS5wZXJmb3JtKCkKKyAgICBmaW5pc2ggPSBkYXRldGltZS5kYXRldGltZS5u
b3coKQorICAgIGFzc2VydCAoZmluaXNoIC0gc3RhcnQpLnNlY29uZHMgPD0gMworCisgICAgIyBB
ZGQgYSBmaWxsZXIgc3RlcAorICAgIGFjdGlvbnMyID0gQWN0aW9uQnVpbGRlcihkcml2ZXIpCisg
ICAga2V5X2FjdGlvbiA9IGFjdGlvbnMyLmtleV9hY3Rpb24KKyAgICBrZXlfYWN0aW9uLnBhdXNl
KCkKKyAgICBhY3Rpb25zMi5wZXJmb3JtKCkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21l
CitAcHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQor
QHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcworZGVmIHRlc3RfY2FuX2NyZWF0ZV9wYXVzZV9h
Y3Rpb25fb25fcG9pbnRlcihkcml2ZXIsIHBhZ2VzKToKKyAgICAjIElmIHdlIGRvbid0IGdldCBh
biBlcnJvciBhbmQgdGFrZXMgbGVzcyB0aGFuIDMgc2Vjb25kcyB0byBydW4sIHdlIGFyZSBnb29k
CisgICAgaW1wb3J0IGRhdGV0aW1lCisgICAgc3RhcnQgPSBkYXRldGltZS5kYXRldGltZS5ub3co
KQorICAgIGFjdGlvbnMxID0gQWN0aW9uQnVpbGRlcihkcml2ZXIpCisgICAga2V5X2FjdGlvbnMg
PSBhY3Rpb25zMS5wb2ludGVyX2FjdGlvbgorICAgIGtleV9hY3Rpb25zLnBhdXNlKDEpCisgICAg
YWN0aW9uczEucGVyZm9ybSgpCisgICAgZmluaXNoID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkK
KyAgICBhc3NlcnQgKGZpbmlzaCAtIHN0YXJ0KS5zZWNvbmRzIDw9IDMKKworICAgICMgQWRkIGEg
ZmlsbGVyIHN0ZXAKKyAgICBhY3Rpb25zMiA9IEFjdGlvbkJ1aWxkZXIoZHJpdmVyKQorICAgIGtl
eV9hY3Rpb24gPSBhY3Rpb25zMi5wb2ludGVyX2FjdGlvbgorICAgIGtleV9hY3Rpb24ucGF1c2Uo
KQorICAgIGFjdGlvbnMyLnBlcmZvcm0oKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUK
K0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94CitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCitA
cHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVzdF9jYW5fY2xlYXJfYWN0aW9ucyhk
cml2ZXIsIHBhZ2VzKToKKyAgICBhY3Rpb25zID0gQWN0aW9uQnVpbGRlcihkcml2ZXIpCisgICAg
YWN0aW9ucy5jbGVhcl9hY3Rpb25zKCkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitA
cHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5
dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcworZGVmIHRlc3RfbW92ZV9hbmRfY2xpY2soZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgdG9D
bGljayA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNsaWNrRmllbGQiKQorCisgICAgYWN0
aW9ucyA9IEFjdGlvbkJ1aWxkZXIoZHJpdmVyKQorICAgIHBvaW50ZXIgPSBhY3Rpb25zLnBvaW50
ZXJfYWN0aW9uCisKKyAgICBwb2ludGVyLm1vdmVfdG8odG9DbGljaykgXAorICAgICAgICAgICAu
Y2xpY2soKQorCisgICAgYWN0aW9ucy5wZXJmb3JtKCkKKyAgICBhc3NlcnQgIkNsaWNrZWQiID09
IHRvQ2xpY2suZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9j
aHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94CitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVt
b3RlCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVzdERyYWdBbmREcm9wKGRy
aXZlciwgcGFnZXMpOgorICAgICIiIkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5pdW0uaW50
ZXJhY3Rpb25zLlRlc3RCYXNpY01vdXNlSW50ZXJmYWNlLiIiIgorICAgIGVsZW1lbnRfYXZhaWxh
YmxlX3RpbWVvdXQgPSAxNQorICAgIHdhaXQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgZWxlbWVu
dF9hdmFpbGFibGVfdGltZW91dCkKKyAgICBwYWdlcy5sb2FkKCJkcm9wcGFibGVJdGVtcy5odG1s
IikKKyAgICB3YWl0LnVudGlsKGxhbWJkYSBkcjogX2lzRWxlbWVudEF2YWlsYWJsZShkcml2ZXIs
ICJkcmFnZ2FibGUiKSkKKworICAgIGlmIG5vdCBfaXNFbGVtZW50QXZhaWxhYmxlKGRyaXZlciwg
ImRyYWdnYWJsZSIpOgorICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiQ291bGQgbm90IGZp
bmQgZHJhZ2dhYmxlIGVsZW1lbnQgYWZ0ZXIgMTUgc2Vjb25kcy4iKQorCisgICAgdG9EcmFnID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiZHJhZ2dhYmxlIikKKyAgICBkcm9wSW50byA9IGRy
aXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImRyb3BwYWJsZSIpCisgICAgYWN0aW9ucyA9IEFjdGlv
bkJ1aWxkZXIoZHJpdmVyKQorICAgIHBvaW50ZXIgPSBhY3Rpb25zLnBvaW50ZXJfYWN0aW9uCisg
ICAgcG9pbnRlci5jbGlja19hbmRfaG9sZCh0b0RyYWcpIFwKKyAgICAgICAgICAgLm1vdmVfdG8o
ZHJvcEludG8pXAorICAgICAgICAgICAucmVsZWFzZSgpCisKKyAgICBhY3Rpb25zLnBlcmZvcm0o
KQorCisgICAgZHJvcEludG8gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkcm9wcGFibGUi
KQorICAgIHRleHQgPSBkcm9wSW50by5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoInAiKS50ZXh0
CisgICAgYXNzZXJ0ICJEcm9wcGVkISIgPT0gdGV4dAorCisKK0BweXRlc3QubWFyay54ZmFpbF9j
aHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94CitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVt
b3RlCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVzdF9jb250ZXh0X2NsaWNr
KGRyaXZlciwgcGFnZXMpOgorCisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIp
CisgICAgdG9Db250ZXh0Q2xpY2sgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkb3VibGVD
bGlja0ZpZWxkIikKKworICAgIGFjdGlvbnMgPSBBY3Rpb25CdWlsZGVyKGRyaXZlcikKKyAgICBw
b2ludGVyID0gYWN0aW9ucy5wb2ludGVyX2FjdGlvbgorICAgIHBvaW50ZXIuY29udGV4dF9jbGlj
ayh0b0NvbnRleHRDbGljaykKKworICAgIGFjdGlvbnMucGVyZm9ybSgpCisgICAgYXNzZXJ0ICJD
b250ZXh0Q2xpY2tlZCIgPT0gdG9Db250ZXh0Q2xpY2suZ2V0X2F0dHJpYnV0ZSgndmFsdWUnKQor
CisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94
CitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpz
CitAcHl0ZXN0Lm1hcmsueGZhaWxfbWFyaW9uZXR0ZSgKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0
aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyL2lzc3Vlcy82NjEnKQorZGVmIHRlc3RfZG91Ymxl
X2NsaWNrKGRyaXZlciwgcGFnZXMpOgorICAgICIiIkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2Vs
ZW5pdW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01vdXNlSW50ZXJmYWNlLiIiIgorICAgIHBhZ2Vz
LmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHRvRG91YmxlQ2xpY2sgPSBkcml2ZXIu
ZmluZF9lbGVtZW50X2J5X2lkKCJkb3VibGVDbGlja0ZpZWxkIikKKworICAgIGFjdGlvbnMgPSBB
Y3Rpb25CdWlsZGVyKGRyaXZlcikKKyAgICBwb2ludGVyID0gYWN0aW9ucy5wb2ludGVyX2FjdGlv
bgorCisgICAgcG9pbnRlci5kb3VibGVfY2xpY2sodG9Eb3VibGVDbGljaykKKworICAgIGFjdGlv
bnMucGVyZm9ybSgpCisgICAgYXNzZXJ0ICJEb3VibGVDbGlja2VkIiA9PSB0b0RvdWJsZUNsaWNr
LmdldF9hdHRyaWJ1dGUoJ3ZhbHVlJykKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfY2hyb21lCitA
cHl0ZXN0Lm1hcmsueGZhaWxfZmlyZWZveAorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZQorQHB5
dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcworZGVmIHRlc3RfZHJhZ2dpbmdfZWxlbWVudF93aXRo
X21vdXNlX21vdmVzX2l0X3RvX2Fub3RoZXJfbGlzdChkcml2ZXIsIHBhZ2VzKToKKyAgICBfcGVy
Zm9ybURyYWdBbmREcm9wV2l0aE1vdXNlKGRyaXZlciwgcGFnZXMpCisgICAgZHJhZ0ludG8gPSBk
cml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJzb3J0YWJsZTEiKQorICAgIGFzc2VydCA2ID09IGxl
bihkcmFnSW50by5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCJsaSIpKQorCisKK0BweXRlc3Qu
bWFyay54ZmFpbF9jaHJvbWUKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94CitAcHl0ZXN0Lm1h
cmsueGZhaWxfcmVtb3RlCitAcHl0ZXN0Lm1hcmsueGZhaWxfcGhhbnRvbWpzCitkZWYgdGVzdF9k
cmFnZ2luZ19lbGVtZW50X3dpdGhfbW91c2VfZmlyZXNfZXZlbnRzKGRyaXZlciwgcGFnZXMpOgor
ICAgIF9wZXJmb3JtRHJhZ0FuZERyb3BXaXRoTW91c2UoZHJpdmVyLCBwYWdlcykKKyAgICBkcmFn
UmVwb3J0ZXIgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJkcmFnZ2luZ19yZXBvcnRzIikK
KyAgICBhc3NlcnQgIk5vdGhpbmcgaGFwcGVuZWQuIERyYWdPdXQgRHJvcEluIFJpZ2h0SXRlbSAz
IiA9PSBkcmFnUmVwb3J0ZXIudGV4dAorCisKK2RlZiBfcGVyZm9ybURyYWdBbmREcm9wV2l0aE1v
dXNlKGRyaXZlciwgcGFnZXMpOgorICAgICIiIkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5p
dW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01vdXNlSW50ZXJmYWNlLiIiIgorICAgIHBhZ2VzLmxv
YWQoImRyYWdnYWJsZUxpc3RzLmh0bWwiKQorICAgIGRyYWdSZXBvcnRlciA9IGRyaXZlci5maW5k
X2VsZW1lbnRfYnlfaWQoImRyYWdnaW5nX3JlcG9ydHMiKQorICAgIHRvRHJhZyA9IGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoInJpZ2h0aXRlbS0zIikKKyAgICBkcmFnSW50byA9IGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoInNvcnRhYmxlMSIpCisKKyAgICBhY3Rpb25zID0gQWN0aW9uQnVp
bGRlcihkcml2ZXIpCisgICAgcG9pbnRlciA9IGFjdGlvbnMucG9pbnRlcl9hY3Rpb24KKyAgICBw
b2ludGVyLmNsaWNrX2FuZF9ob2xkKHRvRHJhZykgXAorICAgICAgICAgICAubW92ZV90byhkcml2
ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJsZWZ0aXRlbS00IikpIFwKKyAgICAgICAgICAgLm1vdmVf
dG8oZHJhZ0ludG8pIFwKKyAgICAgICAgICAgLnJlbGVhc2UoKQorCisgICAgYXNzZXJ0ICJOb3Ro
aW5nIGhhcHBlbmVkLiIgPT0gZHJhZ1JlcG9ydGVyLnRleHQKKworICAgIGFjdGlvbnMucGVyZm9y
bSgpCisgICAgYXNzZXJ0ICJOb3RoaW5nIGhhcHBlbmVkLiBEcmFnT3V0IiBpbiBkcmFnUmVwb3J0
ZXIudGV4dAorCisKK2RlZiBfaXNFbGVtZW50QXZhaWxhYmxlKGRyaXZlciwgaWQpOgorICAgICIi
IkNvcGllZCBmcm9tIG9yZy5vcGVucWEuc2VsZW5pdW0uaW50ZXJhY3Rpb25zLlRlc3RCYXNpY01v
dXNlSW50ZXJmYWNlLiIiIgorICAgIHRyeToKKyAgICAgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9pZChpZCkKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAg
ICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2NvbW1vbi93ZWJkcml2ZXJ3YWl0X3Rl
c3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvY29tbW9uL3dlYmRyaXZlcndhaXRfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjYyMmIzZDE1Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2
ZXIvY29tbW9uL3dlYmRyaXZlcndhaXRfdGVzdHMucHkKQEAgLTAsMCArMSwzMTUgQEAKKyMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
CisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgor
CitpbXBvcnQgdGltZQorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4
Y2VwdGlvbnMgaW1wb3J0IFRpbWVvdXRFeGNlcHRpb24KK2Zyb20gc2VsZW5pdW0uY29tbW9uLmV4
Y2VwdGlvbnMgaW1wb3J0IFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlvbgorZnJvbSBzZWxl
bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCitmcm9tIHNl
bGVuaXVtLmNvbW1vbi5leGNlcHRpb25zIGltcG9ydCBJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0
aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNl
bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVD
Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBXZWJEcml2ZXJXYWl0
CisKKworZGVmIHRocm93U0VSRShkcml2ZXIpOgorICAgIHJhaXNlIFN0YWxlRWxlbWVudFJlZmVy
ZW5jZUV4Y2VwdGlvbigidGVzdCIpCisKKworZGVmIHRlc3RTaG91bGRFeHBsaWNpdGx5V2FpdEZv
ckFTaW5nbGVFbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImR5bmFtaWMu
aHRtbCIpCisgICAgYWRkID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiYWRkZXIiKQorICAg
IGFkZC5jbGljaygpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLnByZXNl
bmNlX29mX2VsZW1lbnRfbG9jYXRlZCgoQnkuSUQsICJib3gwIikpKSAgIyBBbGwgaXMgd2VsbCBp
ZiB0aGlzIGRvZXNuJ3QgdGhyb3cuCisKKworZGVmIHRlc3RTaG91bGRTdGlsbEZhaWxUb0ZpbmRB
bkVsZW1lbnRXaXRoRXhwbGljaXRXYWl0KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQo
ImR5bmFtaWMuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24p
OgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5wcmVzZW5jZV9v
Zl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAiYm94MCIpKSkKKworCitkZWYgdGVzdFNob3VsZEV4
cGxpY2l0bHlXYWl0dW50aWxBdExlYXN0T25lRWxlbWVudElzRm91bmRXaGVuU2VhcmNoaW5nRm9y
TWFueShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJkeW5hbWljLmh0bWwiKQorICAg
IGFkZCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImFkZGVyIikKKworICAgIGFkZC5jbGlj
aygpCisgICAgYWRkLmNsaWNrKCkKKworICAgIGVsZW1lbnRzID0gV2ViRHJpdmVyV2FpdChkcml2
ZXIsIDIpLnVudGlsKEVDLnByZXNlbmNlX29mX2FsbF9lbGVtZW50c19sb2NhdGVkKChCeS5DTEFT
U19OQU1FLCAicmVkYm94IikpKQorICAgIGFzc2VydCBsZW4oZWxlbWVudHMpID49IDEKKworCitk
ZWYgdGVzdFNob3VsZEZhaWxUb0ZpbmRFbGVtZW50c1doZW5FeHBsaWNpdFdhaXRpbmcoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZHluYW1pYy5odG1sIikKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVy
LCAwLjcpLnVudGlsKEVDLnByZXNlbmNlX29mX2FsbF9lbGVtZW50c19sb2NhdGVkKChCeS5DTEFT
U19OQU1FLCAicmVkYm94IikpKQorCisKK2RlZiB0ZXN0U2hvdWxkV2FpdFVudGlsQXRMZWFzdE9u
ZVZpc2libGVFbGVtZW50c0lzRm91bmRXaGVuU2VhcmNoaW5nRm9yTWFueShkcml2ZXIsIHBhZ2Vz
KToKKyAgICBwYWdlcy5sb2FkKCJoaWRkZW5fcGFydGlhbGx5Lmh0bWwiKQorICAgIGFkZF92aXNp
YmxlID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiYWRkVmlzaWJsZSIpCisgICAgYWRkX2hp
ZGRlbiA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImFkZEhpZGRlbiIpCisKKyAgICBhZGRf
dmlzaWJsZS5jbGljaygpCisgICAgYWRkX3Zpc2libGUuY2xpY2soKQorICAgIGFkZF9oaWRkZW4u
Y2xpY2soKQorCisgICAgY2xhc3Mgd2FpdF9mb3JfdHdvX2VsZW1lbnRzKG9iamVjdCk6CisKKyAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvY2F0b3IpOgorICAgICAgICAgICAgc2VsZi5sb2Nh
dG9yID0gbG9jYXRvcgorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkcml2ZXIpOgorICAg
ICAgICAgICAgZWxlbWVudHMgPSBbZWxlbWVudCBmb3IgZWxlbWVudCBpbiBFQy5fZmluZF9lbGVt
ZW50cyhkcml2ZXIsIHNlbGYubG9jYXRvcikgaWYgRUMuX2VsZW1lbnRfaWZfdmlzaWJsZShlbGVt
ZW50KV0KKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50cyBpZiBsZW4oZWxlbWVudHMpID09IDIg
ZWxzZSBGYWxzZQorCisgICAgZWxlbWVudHMgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMikudW50
aWwod2FpdF9mb3JfdHdvX2VsZW1lbnRzKChCeS5DTEFTU19OQU1FLCAicmVkYm94IikpKQorICAg
IGFzc2VydCBsZW4oZWxlbWVudHMpID09IDIKKworCitkZWYgdGVzdFNob3VsZEZhaWxUb0ZpbmRW
aXNpYmxlRWxlbWVudHNXaGVuRXhwbGljaXRXYWl0aW5nKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoImhpZGRlbl9wYXJ0aWFsbHkuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51
bnRpbChFQy52aXNpYmlsaXR5X29mX2FueV9lbGVtZW50c19sb2NhdGVkKChCeS5DTEFTU19OQU1F
LCAicmVkYm94IikpKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9tYXJpb25ldHRlKHJlYXNvbj0n
RmFpbHMgb24gdHJhdmlzJykKK2RlZiB0ZXN0U2hvdWxkV2FpdFVudGlsQWxsVmlzaWJsZUVsZW1l
bnRzQXJlRm91bmRXaGVuU2VhcmNoaW5nRm9yTWFueShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdl
cy5sb2FkKCJoaWRkZW5fcGFydGlhbGx5Lmh0bWwiKQorICAgIGFkZF92aXNpYmxlID0gZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV9pZCgiYWRkVmlzaWJsZSIpCisKKyAgICBhZGRfdmlzaWJsZS5jbGlj
aygpCisgICAgYWRkX3Zpc2libGUuY2xpY2soKQorCisgICAgZWxlbWVudHMgPSBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMikudW50aWwoRUMudmlzaWJpbGl0eV9vZl9hbGxfZWxlbWVudHNfbG9jYXRl
ZCgoQnkuQ0xBU1NfTkFNRSwgInJlZGJveCIpKSkKKyAgICBhc3NlcnQgbGVuKGVsZW1lbnRzKSA9
PSAyCisKKworZGVmIHRlc3RTaG91bGRGYWlsSWZOb3RBbGxFbGVtZW50c0FyZVZpc2libGUoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiaGlkZGVuX3BhcnRpYWxseS5odG1sIikKKyAg
ICBhZGRfdmlzaWJsZSA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImFkZFZpc2libGUiKQor
ICAgIGFkZF9oaWRkZW4gPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJhZGRIaWRkZW4iKQor
CisgICAgYWRkX3Zpc2libGUuY2xpY2soKQorICAgIGFkZF9oaWRkZW4uY2xpY2soKQorICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2Fp
dChkcml2ZXIsIDAuNykudW50aWwoRUMudmlzaWJpbGl0eV9vZl9hbGxfZWxlbWVudHNfbG9jYXRl
ZCgoQnkuQ0xBU1NfTkFNRSwgInJlZGJveCIpKSkKKworCitkZWYgdGVzdFNob3VsZFdhaXRPbmx5
QXNMb25nQXNUaW1lb3V0U3BlY2lmaWVkV2hlbkltcGxpY2l0V2FpdHNBcmVTZXQoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgiZHluYW1pYy5odG1sIikKKyAgICBkcml2ZXIuaW1wbGlj
aXRseV93YWl0KDAuNSkKKyAgICBzdGFydCA9IHRpbWUudGltZSgpCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwg
MSkudW50aWwoRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgImJveDAiKSkp
CisgICAgICAgIGFzc2VydCB0aW1lLnRpbWUoKSAtIHN0YXJ0IDwgMS41CisKKworZGVmIHRlc3RT
aG91bGRXYWl0QXRMZWFzdE9uY2UoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgic2lt
cGxlVGVzdC5odG1sIikKKyAgICBlbGVtZW50cyA9IFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwKS51
bnRpbChsYW1iZGEgZDogZC5maW5kX2VsZW1lbnRzX2J5X3RhZ19uYW1lKCdoMScpKQorICAgIGFz
c2VydCBsZW4oZWxlbWVudHMpID49IDEKKworCitkZWYgdGVzdFdhaXRVbnRpbE5vdFJldHVybnNJ
ZkV2YWx1YXRlc1RvRmFsc2UoZHJpdmVyLCBwYWdlcyk6CisgICAgYXNzZXJ0IFdlYkRyaXZlcldh
aXQoZHJpdmVyLCAxKS51bnRpbF9ub3QobGFtYmRhIGQ6IEZhbHNlKSBpcyBGYWxzZQorCisKK2Rl
ZiB0ZXN0V2FpdFNob3VsZFN0aWxsRmFpbElmUHJvZHVjZUlnbm9yZWRFeGNlcHRpb24oZHJpdmVy
LCBwYWdlcyk6CisgICAgaWdub3JlZCA9IChJbnZhbGlkRWxlbWVudFN0YXRlRXhjZXB0aW9uLCBT
dGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb24pCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRp
bWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMSwgMC43LCBp
Z25vcmVkX2V4Y2VwdGlvbnM9aWdub3JlZCkudW50aWwodGhyb3dTRVJFKQorCisKK2RlZiB0ZXN0
V2FpdFNob3VsZFN0aWxsRmFpbElmUHJvZHVjZUNoaWxkT2ZJZ25vcmVkRXhjZXB0aW9uKGRyaXZl
ciwgcGFnZXMpOgorICAgIGlnbm9yZWQgPSAoV2ViRHJpdmVyRXhjZXB0aW9uKQorICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDEsIDAuNywgaWdub3JlZF9leGNlcHRpb25zPWlnbm9yZWQpLnVudGlsKHRocm93U0VS
RSkKKworCitkZWYgdGVzdFdhaXRVbnRpbE5vdFNob3VsZE5vdEZhaWxJZlByb2R1Y2VJZ25vcmVk
RXhjZXB0aW9uKGRyaXZlciwgcGFnZXMpOgorICAgIGlnbm9yZWQgPSAoSW52YWxpZEVsZW1lbnRT
dGF0ZUV4Y2VwdGlvbiwgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKQorICAgIGFzc2Vy
dCBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMSwgMC43LCBpZ25vcmVkX2V4Y2VwdGlvbnM9aWdub3Jl
ZCkudW50aWxfbm90KHRocm93U0VSRSkKKworCitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9uVGl0
bGVJcyhkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJibGFuay5odG1sIikKKyAgICBX
ZWJEcml2ZXJXYWl0KGRyaXZlciwgMSkudW50aWwoRUMudGl0bGVfaXMoImJsYW5rIikpCisgICAg
ZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQudGl0
bGU9J25vdCBibGFuayd9LCAyMDApIikKKyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMSkudW50
aWwoRUMudGl0bGVfaXMoIm5vdCBibGFuayIpKQorICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0g
J25vdCBibGFuaycKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6Cisg
ICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLnRpdGxlX2lzKCJibGFu
ayIpKQorCisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25UaXRsZUNvbnRhaW5zKGRyaXZlciwg
cGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoImJsYW5rLmh0bWwiKQorICAgIGRyaXZlci5leGVjdXRl
X3NjcmlwdCgic2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LnRpdGxlPSdub3QgYmxhbmsn
fSwgMjAwKSIpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVDLnRpdGxlX2Nv
bnRhaW5zKCJub3QiKSkKKyAgICBhc3NlcnQgZHJpdmVyLnRpdGxlID09ICdub3QgYmxhbmsnCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2
ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy50aXRsZV9jb250YWlucygiYmxhbmtldCIpKQor
CisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25WaXNpYmlsaXR5T2ZFbGVtZW50TG9jYXRlZChk
cml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJqYXZhc2NyaXB0UGFnZS5odG1sIikKKyAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRyaXZl
cldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVk
KChCeS5JRCwgJ2NsaWNrVG9IaWRlJykpKQorICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
J2NsaWNrVG9TaG93JykuY2xpY2soKQorICAgIGVsZW1lbnQgPSBXZWJEcml2ZXJXYWl0KGRyaXZl
ciwgNSkudW50aWwoRUMudmlzaWJpbGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAnY2xp
Y2tUb0hpZGUnKSkpCisgICAgYXNzZXJ0IGVsZW1lbnQuaXNfZGlzcGxheWVkKCkgaXMgVHJ1ZQor
CisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25WaXNpYmlsaXR5T2YoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgiamF2YXNjcmlwdFBhZ2UuaHRtbCIpCisgICAgaGlkZGVuID0gZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9pZCgnY2xpY2tUb0hpZGUnKQorICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAu
NykudW50aWwoRUMudmlzaWJpbGl0eV9vZihoaWRkZW4pKQorICAgIGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoJ2NsaWNrVG9TaG93JykuY2xpY2soKQorICAgIGVsZW1lbnQgPSBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgNSkudW50aWwoRUMudmlzaWJpbGl0eV9vZihoaWRkZW4pKQorICAgIGFzc2Vy
dCBlbGVtZW50LmlzX2Rpc3BsYXllZCgpIGlzIFRydWUKKworCitkZWYgdGVzdEV4cGVjdGVkQ29u
ZGl0aW9uVGV4dFRvQmVQcmVzZW50SW5FbGVtZW50KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2Vz
LmxvYWQoJ2Jvb2xlYW5BdHRyaWJ1dGVzLmh0bWwnKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhU
aW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50
aWwoRUMudGV4dF90b19iZV9wcmVzZW50X2luX2VsZW1lbnQoKEJ5LklELCAndW53cmFwcGFibGUn
KSwgJ0V4cGVjdGVkJykpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCl7dmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vud3JhcHBhYmxlJyk7
IGVsLnRleHRDb250ZW50ID0gZWwuaW5uZXJUZXh0ID0gJ1Vud3JhcHBhYmxlIEV4cGVjdGVkIHRl
eHQnfSwgMjAwKSIpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVDLnRleHRf
dG9fYmVfcHJlc2VudF9pbl9lbGVtZW50KChCeS5JRCwgJ3Vud3JhcHBhYmxlJyksICdFeHBlY3Rl
ZCcpKQorICAgIGFzc2VydCAnVW53cmFwcGFibGUgRXhwZWN0ZWQgdGV4dCcgPT0gZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgndW53cmFwcGFibGUnKS50ZXh0CisKKworZGVmIHRlc3RFeHBlY3Rl
ZENvbmRpdGlvblRleHRUb0JlUHJlc2VudEluRWxlbWVudFZhbHVlKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoJ2Jvb2xlYW5BdHRyaWJ1dGVzLmh0bWwnKQorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIs
IDEpLnVudGlsKEVDLnRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVtZW50X3ZhbHVlKChCeS5JRCwg
J2lucHV0UmVxdWlyZWQnKSwgJ0V4cGVjdGVkJykpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0
KCJzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0UmVx
dWlyZWQnKS52YWx1ZSA9ICdFeGFtcGxlIEV4cGVjdGVkIHRleHQnfSwgMjAwKSIpCisgICAgV2Vi
RHJpdmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVDLnRleHRfdG9fYmVfcHJlc2VudF9pbl9lbGVt
ZW50X3ZhbHVlKChCeS5JRCwgJ2lucHV0UmVxdWlyZWQnKSwgJ0V4cGVjdGVkJykpCisgICAgYXNz
ZXJ0ICdFeGFtcGxlIEV4cGVjdGVkIHRleHQnID09IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQo
J2lucHV0UmVxdWlyZWQnKS5nZXRfYXR0cmlidXRlKCd2YWx1ZScpCisKKworZGVmIHRlc3RFeHBl
Y3RlZENvbmRpdGlvbkZyYW1lVG9CZUF2YWlsYWJsZUFuZFN3aXRjaFRvSXRCeU5hbWUoZHJpdmVy
LCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiYmxhbmsuaHRtbCIpCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwg
MSkudW50aWwoRUMuZnJhbWVfdG9fYmVfYXZhaWxhYmxlX2FuZF9zd2l0Y2hfdG9faXQoJ215RnJh
bWUnKSkKKyAgICBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInNldFRpbWVvdXQoZnVuY3Rpb24oKXt2
YXIgZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOyBmLmlkPSdteUZyYW1lJzsg
Zi5zcmMgPSAnIiArIHBhZ2VzLnVybCgnaWZyYW1lV2l0aEFsZXJ0Lmh0bWwnKSArICInOyBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpfSwgMjAwKSIpCisgICAgV2ViRHJpdmVyV2FpdChkcml2
ZXIsIDEpLnVudGlsKEVDLmZyYW1lX3RvX2JlX2F2YWlsYWJsZV9hbmRfc3dpdGNoX3RvX2l0KCdt
eUZyYW1lJykpCisgICAgYXNzZXJ0ICdjbGljayBtZScgPT0gZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9pZCgnYWxlcnRJbkZyYW1lJykudGV4dAorCisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25G
cmFtZVRvQmVBdmFpbGFibGVBbmRTd2l0Y2hUb0l0QnlMb2NhdG9yKGRyaXZlciwgcGFnZXMpOgor
ICAgIHBhZ2VzLmxvYWQoImJsYW5rLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUaW1l
b3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDEpLnVudGlsKEVD
LmZyYW1lX3RvX2JlX2F2YWlsYWJsZV9hbmRfc3dpdGNoX3RvX2l0KChCeS5JRCwgJ215RnJhbWUn
KSkpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFy
IGYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsgZi5pZD0nbXlGcmFtZSc7IGYu
c3JjID0gJyIgKyBwYWdlcy51cmwoJ2lmcmFtZVdpdGhBbGVydC5odG1sJykgKyAiJzsgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChmKX0sIDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVy
LCAxKS51bnRpbChFQy5mcmFtZV90b19iZV9hdmFpbGFibGVfYW5kX3N3aXRjaF90b19pdCgoQnku
SUQsICdteUZyYW1lJykpKQorICAgIGFzc2VydCAnY2xpY2sgbWUnID09IGRyaXZlci5maW5kX2Vs
ZW1lbnRfYnlfaWQoJ2FsZXJ0SW5GcmFtZScpLnRleHQKKworCitkZWYgdGVzdEV4cGVjdGVkQ29u
ZGl0aW9uSW52aXNpYmxpdHlPZkVsZW1lbnRMb2NhdGVkKGRyaXZlciwgcGFnZXMpOgorICAgIHBh
Z2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIGRyaXZlci5leGVjdXRlX3Njcmlw
dCgiZGVsYXllZFNob3dIaWRlKDAsIHRydWUpIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGlt
ZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGls
KEVDLmludmlzaWJpbGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQoKEJ5LklELCAnY2xpY2tUb0hpZGUn
KSkpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJkZWxheWVkU2hvd0hpZGUoMjAwLCBmYWxz
ZSkiKQorICAgIGVsZW1lbnQgPSBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5p
bnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKChCeS5JRCwgJ2NsaWNrVG9IaWRlJykpKQor
ICAgIGFzc2VydCBlbGVtZW50LmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCisKKworZGVmIHRlc3RF
eHBlY3RlZENvbmRpdGlvbkVsZW1lbnRUb0JlQ2xpY2thYmxlKGRyaXZlciwgcGFnZXMpOgorICAg
IHBhZ2VzLmxvYWQoImphdmFzY3JpcHRQYWdlLmh0bWwiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNyku
dW50aWwoRUMuZWxlbWVudF90b19iZV9jbGlja2FibGUoKEJ5LklELCAnY2xpY2tUb0hpZGUnKSkp
CisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJkZWxheWVkU2hvd0hpZGUoMjAwLCB0cnVlKSIp
CisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMuZWxlbWVudF90b19iZV9j
bGlja2FibGUoKEJ5LklELCAnY2xpY2tUb0hpZGUnKSkpCisgICAgZWxlbWVudCA9IGRyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoJ2NsaWNrVG9IaWRlJykKKyAgICBlbGVtZW50LmNsaWNrKCkKKyAg
ICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMy41KS51bnRpbChFQy5pbnZpc2liaWxpdHlfb2ZfZWxl
bWVudF9sb2NhdGVkKChCeS5JRCwgJ2NsaWNrVG9IaWRlJykpKQorICAgIGFzc2VydCBlbGVtZW50
LmlzX2Rpc3BsYXllZCgpIGlzIEZhbHNlCisKKworZGVmIHRlc3RFeHBlY3RlZENvbmRpdGlvblN0
YWxlbmVzc09mKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoJ2R5bmFtaWNhbGx5TW9k
aWZpZWRQYWdlLmh0bWwnKQorICAgIGVsZW1lbnQgPSBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2lk
KCdlbGVtZW50LXRvLXJlbW92ZScpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNl
cHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5zdGFs
ZW5lc3Nfb2YoZWxlbWVudCkpCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgnYnV0dG9u
RGVsZXRlJykuY2xpY2soKQorICAgIGFzc2VydCAnZWxlbWVudCcgPT0gZWxlbWVudC50ZXh0Cisg
ICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMuc3RhbGVuZXNzX29mKGVsZW1l
bnQpKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRp
b24pOgorICAgICAgICBlbGVtZW50LnRleHQKKworCitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9u
RWxlbWVudFRvQmVTZWxlY3RlZChkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3Jt
UGFnZS5odG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgnY2hl
Y2t5JykKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAg
IFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLmVsZW1lbnRfdG9fYmVfc2VsZWN0
ZWQoZWxlbWVudCkpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJzZXRUaW1lb3V0KGZ1bmN0
aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoZWNreScpLmNoZWNrZWQgPSB0cnVlfSwg
MjAwKSIpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMuZWxlbWVudF90
b19iZV9zZWxlY3RlZChlbGVtZW50KSkKKyAgICBhc3NlcnQgZWxlbWVudC5pc19zZWxlY3RlZCgp
IGlzIFRydWUKKworCitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9uRWxlbWVudExvY2F0ZWRUb0Jl
U2VsZWN0ZWQoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIp
CisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoJ2NoZWNreScpCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJX
YWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5lbGVtZW50X2xvY2F0ZWRfdG9fYmVfc2VsZWN0ZWQo
KEJ5LklELCAnY2hlY2t5JykpKQorICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgic2V0VGltZW91
dChmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGVja3knKS5jaGVja2VkID0g
dHJ1ZX0sIDIwMCkiKQorICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLmVs
ZW1lbnRfbG9jYXRlZF90b19iZV9zZWxlY3RlZCgoQnkuSUQsICdjaGVja3knKSkpCisgICAgYXNz
ZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisKKworZGVmIHRlc3RFeHBlY3RlZENv
bmRpdGlvbkVsZW1lbnRTZWxlY3Rpb25TdGF0ZVRvQmUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFn
ZXMubG9hZCgiZm9ybVBhZ2UuaHRtbCIpCisgICAgZWxlbWVudCA9IGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoJ2NoZWNreScpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwo
RUMuZWxlbWVudF9zZWxlY3Rpb25fc3RhdGVfdG9fYmUoZWxlbWVudCwgRmFsc2UpKQorICAgIGFz
c2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkgaXMgRmFsc2UKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoVGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAwLjcp
LnVudGlsKEVDLmVsZW1lbnRfc2VsZWN0aW9uX3N0YXRlX3RvX2JlKGVsZW1lbnQsIFRydWUpKQor
ICAgIGRyaXZlci5leGVjdXRlX3NjcmlwdCgic2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjaGVja3knKS5jaGVja2VkID0gdHJ1ZX0sIDIwMCkiKQorICAgIFdl
YkRyaXZlcldhaXQoZHJpdmVyLCAwLjcpLnVudGlsKEVDLmVsZW1lbnRfc2VsZWN0aW9uX3N0YXRl
X3RvX2JlKGVsZW1lbnQsIFRydWUpKQorICAgIGFzc2VydCBlbGVtZW50LmlzX3NlbGVjdGVkKCkg
aXMgVHJ1ZQorCisKK2RlZiB0ZXN0RXhwZWN0ZWRDb25kaXRpb25FbGVtZW50TG9jYXRlZFNlbGVj
dGlvblN0YXRlVG9CZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJmb3JtUGFnZS5o
dG1sIikKKyAgICBlbGVtZW50ID0gZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgnY2hlY2t5JykK
KyAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRpbChFQy5lbGVtZW50X2xvY2F0ZWRf
c2VsZWN0aW9uX3N0YXRlX3RvX2JlKChCeS5JRCwgJ2NoZWNreScpLCBGYWxzZSkpCisgICAgYXNz
ZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKSBpcyBGYWxzZQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNyku
dW50aWwoRUMuZWxlbWVudF9sb2NhdGVkX3NlbGVjdGlvbl9zdGF0ZV90b19iZSgoQnkuSUQsICdj
aGVja3knKSwgVHJ1ZSkpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoZWNreScpLmNoZWNrZWQgPSB0cnVl
fSwgMjAwKSIpCisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMuZWxlbWVu
dF9sb2NhdGVkX3NlbGVjdGlvbl9zdGF0ZV90b19iZSgoQnkuSUQsICdjaGVja3knKSwgVHJ1ZSkp
CisgICAgYXNzZXJ0IGVsZW1lbnQuaXNfc2VsZWN0ZWQoKSBpcyBUcnVlCisKKworQHB5dGVzdC5t
YXJrLnhmYWlsX3BoYW50b21qcygKKyAgICByZWFzb249J2h0dHBzOi8vZ2l0aHViLmNvbS9kZXRy
by9naG9zdGRyaXZlci9pc3N1ZXMvMjAnLAorICAgIHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24p
CitkZWYgdGVzdEV4cGVjdGVkQ29uZGl0aW9uQWxlcnRJc1ByZXNlbnQoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgnYmxhbmsuaHRtbCcpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRp
bWVvdXRFeGNlcHRpb24pOgorICAgICAgICBXZWJEcml2ZXJXYWl0KGRyaXZlciwgMC43KS51bnRp
bChFQy5hbGVydF9pc19wcmVzZW50KCkpCisgICAgZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCl7YWxlcnQoJ2FsZXJ0eScpfSwgMjAwKSIpCisgICAgV2ViRHJpdmVy
V2FpdChkcml2ZXIsIDAuNykudW50aWwoRUMuYWxlcnRfaXNfcHJlc2VudCgpKQorICAgIGFsZXJ0
ID0gZHJpdmVyLnN3aXRjaF90by5hbGVydAorICAgIGFzc2VydCAnYWxlcnR5JyA9PSBhbGVydC50
ZXh0CisgICAgYWxlcnQuZGlzbWlzcygpCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBv
cnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2Vic2VydmVy
LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93
ZWJkcml2ZXIvY29tbW9uL3dlYnNlcnZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZGY5MTYzOTllZjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0
cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9jb21tb24vd2Vi
c2VydmVyLnB5CkBAIC0wLDAgKzEsMTU5IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBG
cmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9y
IGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQg
d2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNv
cHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3Ug
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0
aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIwor
IyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisj
IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G
IEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNl
IGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBs
aW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGljZW5zZS4KKworIiIiQSBzaW1wbGUgd2ViIHNlcnZl
ciBmb3IgdGVzdGluZyBwdXJwb3NlLgorSXQgc2VydmVzIHRoZSB0ZXN0aW5nIGh0bWwgcGFnZXMg
dGhhdCBhcmUgbmVlZGVkIGJ5IHRoZSB3ZWJkcml2ZXIgdW5pdCB0ZXN0cy4iIiIKKworaW1wb3J0
IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHNvY2tldAoraW1wb3J0IHRocmVhZGluZworZnJv
bSBpbyBpbXBvcnQgb3BlbgordHJ5OgorICAgIGZyb20gdXJsbGliIGltcG9ydCByZXF1ZXN0IGFz
IHVybGxpYl9yZXF1ZXN0CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IHVybGxpYiBh
cyB1cmxsaWJfcmVxdWVzdAordHJ5OgorICAgIGZyb20gaHR0cC5zZXJ2ZXIgaW1wb3J0IEJhc2VI
VFRQUmVxdWVzdEhhbmRsZXIsIEhUVFBTZXJ2ZXIKKyAgICBmcm9tIHNvY2tldHNlcnZlciBpbXBv
cnQgVGhyZWFkaW5nTWl4SW4KK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIEJhc2VIVFRQ
U2VydmVyIGltcG9ydCBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLCBIVFRQU2VydmVyCisgICAgZnJv
bSBTb2NrZXRTZXJ2ZXIgaW1wb3J0IFRocmVhZGluZ01peEluCisKKworZGVmIHVwZGlyKCk6Cisg
ICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZQorICAgIHJldHVybiBkaXJuYW1lKGRpcm5hbWUo
X19maWxlX18pKQorCisKK0xPR0dFUiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorV0VC
RFJJVkVSID0gb3MuZW52aXJvbi5nZXQoIldFQkRSSVZFUiIsIHVwZGlyKCkpCitIVE1MX1JPT1Qg
PSBvcy5wYXRoLmpvaW4oV0VCRFJJVkVSLCAiLi4vLi4vLi4vLi4vY29tbW9uL3NyYy93ZWIiKQor
aWYgbm90IG9zLnBhdGguaXNkaXIoSFRNTF9ST09UKToKKyAgICBtZXNzYWdlID0gKCJDYW4ndCBm
aW5kICdjb21tb25fd2ViJyBkaXJlY3RvcnksIHRyeSBzZXR0aW5nIFdFQkRSSVZFUiIKKyAgICAg
ICAgICAgICAgICIgZW52aXJvbm1lbnQgdmFyaWFibGUgV0VCRFJJVkVSOiIgKyBXRUJEUklWRVIg
KyAiICBIVE1MX1JPT1Q6IiArIEhUTUxfUk9PVCkKKyAgICBMT0dHRVIuZXJyb3IobWVzc2FnZSkK
KyAgICBhc3NlcnQgMCwgbWVzc2FnZQorCitERUZBVUxUX0hPU1QgPSAiMTI3LjAuMC4xIgorREVG
QVVMVF9QT1JUID0gODAwMAorCisKK2NsYXNzIEh0bWxPbmx5SGFuZGxlcihCYXNlSFRUUFJlcXVl
c3RIYW5kbGVyKToKKyAgICAiIiJIdHRwIGhhbmRsZXIuIiIiCisgICAgZGVmIGRvX0dFVChzZWxm
KToKKyAgICAgICAgIiIiR0VUIG1ldGhvZCBoYW5kbGVyLiIiIgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBwYXRoID0gc2VsZi5wYXRoWzE6XS5zcGxpdCgnPycpWzBdCisgICAgICAgICAgICBp
ZiBwYXRoWzo1XSA9PSAicGFnZS8iOgorICAgICAgICAgICAgICAgIGh0bWwgPSAiIiI8aHRtbD48
aGVhZD48dGl0bGU+UGFnZXtwYWdlX251bWJlcn08L3RpdGxlPjwvaGVhZD4KKyAgICAgICAgICAg
ICAgICA8Ym9keT5QYWdlIG51bWJlciA8c3BhbiBpZD1cInBhZ2VOdW1iZXJcIj57cGFnZV9udW1i
ZXJ9PC9zcGFuPgorICAgICAgICAgICAgICAgIDxwPjxhIGhyZWY9XCIuLi94aHRtbFRlc3QuaHRt
bFwiIHRhcmdldD1cIl90b3BcIj50b3A8L2E+CisgICAgICAgICAgICAgICAgPC9ib2R5PjwvaHRt
bD4iIiIuZm9ybWF0KHBhZ2VfbnVtYmVyPXBhdGhbNTpdKQorICAgICAgICAgICAgICAgIGh0bWwg
PSBodG1sLmVuY29kZSgndXRmLTgnKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKEhUTUxfUk9PVCwgcGF0aCksICdyJywgZW5jb2Rpbmc9
J2xhdGluLTEnKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICBodG1sID0gZi5yZWFkKCkuZW5j
b2RlKCd1dGYtOCcpCisgICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQorICAgICAg
ICAgICAgc2VsZi5zZW5kX2hlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpCisgICAg
ICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKKyAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUo
aHRtbCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBzZWxmLnNlbmRfZXJy
b3IoNDA0LCAnRmlsZSBOb3QgRm91bmQ6ICVzJyAlIHBhdGgpCisKKyAgICBkZWYgbG9nX21lc3Nh
Z2Uoc2VsZiwgZm9ybWF0LCAqYXJncyk6CisgICAgICAgICIiIk92ZXJyaWRlIGRlZmF1bHQgdG8g
YXZvaWQgdHJhc2hpbmcgc3RkZXJyIiIiCisgICAgICAgIHBhc3MKKworCitjbGFzcyBUaHJlYWRl
ZEhUVFBTZXJ2ZXIoVGhyZWFkaW5nTWl4SW4sIEhUVFBTZXJ2ZXIpOgorICAgIHBhc3MKKworCitj
bGFzcyBTaW1wbGVXZWJTZXJ2ZXIob2JqZWN0KToKKyAgICAiIiJBIHZlcnkgYmFzaWMgd2ViIHNl
cnZlci4iIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD1ERUZBVUxUX0hPU1QsIHBvcnQ9
REVGQVVMVF9QT1JUKToKKyAgICAgICAgc2VsZi5zdG9wX3NlcnZpbmcgPSBGYWxzZQorICAgICAg
ICBob3N0ID0gaG9zdAorICAgICAgICBwb3J0ID0gcG9ydAorICAgICAgICB3aGlsZSBUcnVlOgor
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyID0gVGhyZWFkZWRI
VFRQU2VydmVyKChob3N0LCBwb3J0KSwgSHRtbE9ubHlIYW5kbGVyKQorICAgICAgICAgICAgICAg
IHNlbGYuaG9zdCA9IGhvc3QKKyAgICAgICAgICAgICAgICBzZWxmLnBvcnQgPSBwb3J0CisgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAg
ICAgICAgICAgICAgTE9HR0VSLmRlYnVnKCJwb3J0ICVkIGlzIGluIHVzZSwgdHJ5aW5nIHRvIG5l
eHQgb25lIiAlIHBvcnQpCisgICAgICAgICAgICAgICAgcG9ydCArPSAxCisKKyAgICAgICAgc2Vs
Zi50aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLl9ydW5fd2ViX3NlcnZlcikK
KworICAgIGRlZiBfcnVuX3dlYl9zZXJ2ZXIoc2VsZik6CisgICAgICAgICIiIlJ1bnMgdGhlIHNl
cnZlciBsb29wLiIiIgorICAgICAgICBMT0dHRVIuZGVidWcoIndlYiBzZXJ2ZXIgc3RhcnRlZCIp
CisgICAgICAgIHdoaWxlIG5vdCBzZWxmLnN0b3Bfc2VydmluZzoKKyAgICAgICAgICAgIHNlbGYu
c2VydmVyLmhhbmRsZV9yZXF1ZXN0KCkKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc2VydmVyX2Nsb3Nl
KCkKKworICAgIGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgIiIiU3RhcnRzIHRoZSBzZXJ2ZXIu
IiIiCisgICAgICAgIHNlbGYudGhyZWFkLnN0YXJ0KCkKKworICAgIGRlZiBzdG9wKHNlbGYpOgor
ICAgICAgICAiIiJTdG9wcyB0aGUgc2VydmVyLiIiIgorICAgICAgICBzZWxmLnN0b3Bfc2Vydmlu
ZyA9IFRydWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBUaGlzIGlzIHRvIGZvcmNlIHN0
b3AgdGhlIHNlcnZlciBsb29wCisgICAgICAgICAgICB1cmxsaWJfcmVxdWVzdC5VUkxvcGVuZXIo
KS5vcGVuKCJodHRwOi8vJXM6JWQiICUgKHNlbGYuaG9zdCwgc2VsZi5wb3J0KSkKKyAgICAgICAg
ZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIExPR0dFUi5pbmZvKCJT
aHV0dGluZyBkb3duIHRoZSB3ZWJzZXJ2ZXIiKQorICAgICAgICBzZWxmLnRocmVhZC5qb2luKCkK
KworICAgIGRlZiB3aGVyZV9pcyhzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0dXJuICJodHRwOi8v
JXM6JWQvJXMiICUgKHNlbGYuaG9zdCwgc2VsZi5wb3J0LCBwYXRoKQorCisKK2RlZiBtYWluKGFy
Z3Y9Tm9uZSk6CisgICAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCisgICAgZnJv
bSB0aW1lIGltcG9ydCBzbGVlcAorCisgICAgaWYgYXJndiBpcyBOb25lOgorICAgICAgICBpbXBv
cnQgc3lzCisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorCisgICAgcGFyc2VyID0gT3B0aW9uUGFy
c2VyKCIlcHJvZyBbb3B0aW9uc10iKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCItcCIsICItLXBv
cnQiLCBkZXN0PSJwb3J0IiwgdHlwZT0iaW50IiwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJwb3J0IHRvIGxpc3RlbiAoZGVmYXVsdDogJXMpIiAlIERFRkFVTFRfUE9SVCwKKyAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PURFRkFVTFRfUE9SVCkKKworICAgIG9wdHMsIGFyZ3MgPSBw
YXJzZXIucGFyc2VfYXJncyhhcmd2WzE6XSkKKyAgICBpZiBhcmdzOgorICAgICAgICBwYXJzZXIu
ZXJyb3IoIndyb25nIG51bWJlciBvZiBhcmd1bWVudHMiKSAgIyBXaWxsIGV4aXQKKworICAgIHNl
cnZlciA9IFNpbXBsZVdlYlNlcnZlcihvcHRzLnBvcnQpCisgICAgc2VydmVyLnN0YXJ0KCkKKyAg
ICBwcmludCgiU2VydmVyIHN0YXJ0ZWQgb24gcG9ydCAlcywgaGl0IENUUkwtQyB0byBxdWl0IiAl
IG9wdHMucG9ydCkKKyAgICB0cnk6CisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBzbGVl
cCgwLjEpCisgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICBwYXNzCisKKwor
aWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL1dlYkRy
aXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL2Nv
bW1vbi93aW5kb3dfc3dpdGNoaW5nX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd19zd2l0Y2hp
bmdfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFjYmUz
ODU1ZGNhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd19zd2l0Y2hpbmdfdGVz
dHMucHkKQEAgLTAsMCArMSwxOTEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVk
b20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGlj
ZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRo
IHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJp
Z2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRl
ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91
IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBM
aWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAg
aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyBy
ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29m
dHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4K
KyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z
CisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9y
IHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0
YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2Vs
ZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaFdpbmRvd0V4Y2VwdGlvbgorZnJv
bSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVyRXhjZXB0aW9uCitm
cm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVt
LndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCitmcm9t
IHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBXZWJEcml2ZXJXYWl0CisKKwor
QHB5dGVzdC55aWVsZF9maXh0dXJlKGF1dG91c2U9VHJ1ZSkKK2RlZiBjbG9zZV93aW5kb3dzKGRy
aXZlcik6CisgICAgbWFpbl93aW5kb3dzX2hhbmRsZSA9IGRyaXZlci5jdXJyZW50X3dpbmRvd19o
YW5kbGUKKyAgICB5aWVsZAorICAgIHRyeToKKyAgICAgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHJl
cXVlc3QgYXMgdXJsX3JlcXVlc3QKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIGlt
cG9ydCB1cmxsaWIyIGFzIHVybF9yZXF1ZXN0CisgICAgVVJMRXJyb3IgPSB1cmxfcmVxdWVzdC5V
UkxFcnJvcgorCisgICAgdHJ5OgorICAgICAgICB3aW5kb3dfaGFuZGxlcyA9IGRyaXZlci53aW5k
b3dfaGFuZGxlcworICAgIGV4Y2VwdCBVUkxFcnJvcjoKKyAgICAgICAgcmV0dXJuCisgICAgZm9y
IGhhbmRsZSBpbiB3aW5kb3dfaGFuZGxlczoKKyAgICAgICAgaWYgaGFuZGxlICE9IG1haW5fd2lu
ZG93c19oYW5kbGU6CisgICAgICAgICAgICBkcml2ZXIuc3dpdGNoX3RvLndpbmRvdyhoYW5kbGUp
CisgICAgICAgICAgICBkcml2ZXIuY2xvc2UoKQorICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93
KG1haW5fd2luZG93c19oYW5kbGUpCisKKworZGVmIHRlc3RTaG91bGRTd2l0Y2hGb2N1c1RvQU5l
d1dpbmRvd1doZW5JdElzT3BlbmVkQW5kTm90U3RvcEZ1dHVyZU9wZXJhdGlvbnMoZHJpdmVyLCBw
YWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGN1cnJlbnQgPSBk
cml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50X2J5
X2xpbmtfdGV4dCgiT3BlbiBuZXcgd2luZG93IikuY2xpY2soKQorICAgIGFzc2VydCBkcml2ZXIu
dGl0bGUgPT0gIlhIVE1MIFRlc3QgUGFnZSIKKyAgICBoYW5kbGVzID0gZHJpdmVyLndpbmRvd19o
YW5kbGVzCisgICAgaGFuZGxlcy5yZW1vdmUoY3VycmVudCkKKyAgICBkcml2ZXIuc3dpdGNoX3Rv
LndpbmRvdyhoYW5kbGVzWzBdKQorICAgIGFzc2VydCBkcml2ZXIudGl0bGUgPT0gIldlIEFycml2
ZSBIZXJlIgorCisgICAgcGFnZXMubG9hZCgiaWZyYW1lcy5odG1sIikKKyAgICBoYW5kbGUgPSBk
cml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9p
ZCgiaWZyYW1lX3BhZ2VfaGVhZGluZyIpCisgICAgZHJpdmVyLnN3aXRjaF90by5mcmFtZShkcml2
ZXIuZmluZF9lbGVtZW50KEJ5LklELCAiaWZyYW1lMSIpKQorICAgIGFzc2VydCBkcml2ZXIuY3Vy
cmVudF93aW5kb3dfaGFuZGxlID09IGhhbmRsZQorCisKK2RlZiB0ZXN0Q2FuU3dpdGNoVG9XaW5k
b3dCeU5hbWUoZHJpdmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwi
KQorICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LkxJTktfVEVYVCwgIk9wZW4gbmV3IHdpbmRvdyIpLmNsaWNrKCkKKyAgICBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMubmV3X3dpbmRvd19pc19vcGVuZWQoaGFuZGxl
cykpCisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coInJlc3VsdCIpCisgICAgYXNzZXJ0IGRy
aXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisKKworZGVmIHRlc3RTaG91bGRUaHJvd05v
U3VjaFdpbmRvd0V4Y2VwdGlvbihkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4aHRt
bFRlc3QuaHRtbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaFdpbmRvd0V4Y2VwdGlv
bik6CisgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KCJpbnZhbGlkIG5hbWUiKQorCisK
K2RlZiB0ZXN0U2hvdWxkVGhyb3dOb1N1Y2hXaW5kb3dFeGNlcHRpb25PbkFuQXR0ZW1wdFRvR2V0
SXRzSGFuZGxlKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1s
IikKKyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgIGhhbmRs
ZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkxJ
TktfVEVYVCwgIk9wZW4gbmV3IHdpbmRvdyIpLmNsaWNrKCkKKyAgICBXZWJEcml2ZXJXYWl0KGRy
aXZlciwgMykudW50aWwoRUMubmV3X3dpbmRvd19pc19vcGVuZWQoaGFuZGxlcykpCisgICAgaGFu
ZGxlcyA9IGRyaXZlci53aW5kb3dfaGFuZGxlcworICAgIGhhbmRsZXMucmVtb3ZlKGN1cnJlbnQp
CisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coaGFuZGxlc1swXSkKKyAgICBkcml2ZXIuY2xv
c2UoKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaFdpbmRvd0V4Y2VwdGlvbik6Cisg
ICAgICAgIGRyaXZlci5jdXJyZW50X3dpbmRvd19oYW5kbGUKKworCitAcHl0ZXN0Lm1hcmsueGZh
aWxfaWUKK2RlZiB0ZXN0U2hvdWxkVGhyb3dOb1N1Y2hXaW5kb3dFeGNlcHRpb25PbkFueU9wZXJh
dGlvbklmQVdpbmRvd0lzQ2xvc2VkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInho
dG1sVGVzdC5odG1sIikKKyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRs
ZQorICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBkcml2ZXIuZmluZF9l
bGVtZW50KEJ5LkxJTktfVEVYVCwgIk9wZW4gbmV3IHdpbmRvdyIpLmNsaWNrKCkKKyAgICBXZWJE
cml2ZXJXYWl0KGRyaXZlciwgMykudW50aWwoRUMubmV3X3dpbmRvd19pc19vcGVuZWQoaGFuZGxl
cykpCisgICAgaGFuZGxlcyA9IGRyaXZlci53aW5kb3dfaGFuZGxlcworICAgIGhhbmRsZXMucmVt
b3ZlKGN1cnJlbnQpCisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coaGFuZGxlc1swXSkKKyAg
ICBkcml2ZXIuY2xvc2UoKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKE5vU3VjaFdpbmRvd0V4
Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci50aXRsZQorCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KE5vU3VjaFdpbmRvd0V4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlf
dGFnX25hbWUoImJvZHkiKQorCisKK0BweXRlc3QubWFyay54ZmFpbF9pZQorZGVmIHRlc3RTaG91
bGRUaHJvd05vU3VjaFdpbmRvd0V4Y2VwdGlvbk9uQW55RWxlbWVudE9wZXJhdGlvbklmQVdpbmRv
d0lzQ2xvc2VkKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1sVGVzdC5odG1s
IikKKyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgIGhhbmRs
ZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBkcml2ZXIuZmluZF9lbGVtZW50KEJ5LkxJ
TktfVEVYVCwgIk9wZW4gbmV3IHdpbmRvdyIpLmNsaWNrKCkKKyAgICBXZWJEcml2ZXJXYWl0KGRy
aXZlciwgMykudW50aWwoRUMubmV3X3dpbmRvd19pc19vcGVuZWQoaGFuZGxlcykpCisgICAgaGFu
ZGxlcyA9IGRyaXZlci53aW5kb3dfaGFuZGxlcworICAgIGhhbmRsZXMucmVtb3ZlKGN1cnJlbnQp
CisgICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coaGFuZGxlc1swXSkKKyAgICBlbGVtZW50ID0g
ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiYm9keSIpCisgICAgZHJpdmVyLmNsb3Nl
KCkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hXaW5kb3dFeGNlcHRpb24pOgorICAg
ICAgICBlbGVtZW50LnRleHQKKworCitkZWYgdGVzdENsaWNraW5nT25BQnV0dG9uVGhhdENsb3Nl
c0FuT3BlbldpbmRvd0RvZXNOb3RDYXVzZVRoZUJyb3dzZXJUb0hhbmcoZHJpdmVyLCBwYWdlcyk6
CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGN1cnJlbnQgPSBkcml2ZXIu
Y3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgaGFuZGxlcyA9IGRyaXZlci53aW5kb3dfaGFuZGxl
cworICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfbmFtZSgid2luZG93VGhyZWUiKS5jbGljaygp
CisgICAgV2ViRHJpdmVyV2FpdChkcml2ZXIsIDMpLnVudGlsKEVDLm5ld193aW5kb3dfaXNfb3Bl
bmVkKGhhbmRsZXMpKQorICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBo
YW5kbGVzLnJlbW92ZShjdXJyZW50KQorICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93KGhhbmRs
ZXNbMF0pCisgICAgZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9pZCgiY2xvc2UiKS5jbGljaygpCisg
ICAgZHJpdmVyLnN3aXRjaF90by53aW5kb3coY3VycmVudCkKKyAgICBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X2lkKCJsaW5rSWQiKQorCisKK2RlZiB0ZXN0Q2FuQ2FsbEdldFdpbmRvd0hhbmRsZXNB
ZnRlckNsb3NpbmdBV2luZG93KGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1s
VGVzdC5odG1sIikKKyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQor
ICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X25hbWUoIndpbmRvd1RocmVlIikuY2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJp
dmVyLCAzKS51bnRpbChFQy5uZXdfd2luZG93X2lzX29wZW5lZChoYW5kbGVzKSkKKyAgICBoYW5k
bGVzID0gZHJpdmVyLndpbmRvd19oYW5kbGVzCisgICAgaGFuZGxlcy5yZW1vdmUoY3VycmVudCkK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLndpbmRvdyhoYW5kbGVzWzBdKQorCisgICAgZHJpdmVyLmZp
bmRfZWxlbWVudF9ieV9pZCgiY2xvc2UiKS5jbGljaygpCisgICAgV2ViRHJpdmVyV2FpdChkcml2
ZXIsIDMpLnVudGlsKEVDLm51bWJlcl9vZl93aW5kb3dzX3RvX2JlKDEpKQorCisKK2RlZiB0ZXN0
Q2FuT2J0YWluQVdpbmRvd0hhbmRsZShkcml2ZXIsIHBhZ2VzKToKKyAgICBwYWdlcy5sb2FkKCJ4
aHRtbFRlc3QuaHRtbCIpCisgICAgY3VycmVudEhhbmRsZSA9IGRyaXZlci5jdXJyZW50X3dpbmRv
d19oYW5kbGUKKyAgICBhc3NlcnQgY3VycmVudEhhbmRsZSBpcyBub3QgTm9uZQorCisKK2RlZiB0
ZXN0RmFpbGluZ1RvU3dpdGNoVG9BV2luZG93TGVhdmVzVGhlQ3VycmVudFdpbmRvd0FzSXMoZHJp
dmVyLCBwYWdlcyk6CisgICAgcGFnZXMubG9hZCgieGh0bWxUZXN0Lmh0bWwiKQorICAgIGN1cnJl
bnQgPSBkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgd2l0aCBweXRlc3QucmFpc2Vz
KE5vU3VjaFdpbmRvd0V4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5zd2l0Y2hfdG8ud2luZG93
KCJJIHdpbGwgbmV2ZXIgZXhpc3QiKQorICAgIG5ld19oYW5kbGUgPSBkcml2ZXIuY3VycmVudF93
aW5kb3dfaGFuZGxlCisgICAgYXNzZXJ0IGN1cnJlbnQgPT0gbmV3X2hhbmRsZQorCisKK0BweXRl
c3QubWFyay54ZmFpbF9jaHJvbWUocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorZGVmIHRlc3RU
aGF0QWNjZXNzaW5nRmluZGluZ0FuRWxlbWVudEFmdGVyV2luZG93SXNDbG9zZWRBbmRIYXZlbnRz
d2l0Y2hlZERvZXNudENyYXNoKGRyaXZlciwgcGFnZXMpOgorICAgIHBhZ2VzLmxvYWQoInhodG1s
VGVzdC5odG1sIikKKyAgICBjdXJyZW50ID0gZHJpdmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQor
ICAgIGhhbmRsZXMgPSBkcml2ZXIud2luZG93X2hhbmRsZXMKKyAgICBkcml2ZXIuZmluZF9lbGVt
ZW50X2J5X25hbWUoIndpbmRvd1RocmVlIikuY2xpY2soKQorICAgIFdlYkRyaXZlcldhaXQoZHJp
dmVyLCAzKS51bnRpbChFQy5uZXdfd2luZG93X2lzX29wZW5lZChoYW5kbGVzKSkKKyAgICBoYW5k
bGVzID0gZHJpdmVyLndpbmRvd19oYW5kbGVzCisgICAgaGFuZGxlcy5yZW1vdmUoY3VycmVudCkK
KyAgICBkcml2ZXIuc3dpdGNoX3RvLndpbmRvdyhoYW5kbGVzWzBdKQorCisgICAgd2l0aCBweXRl
c3QucmFpc2VzKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgICAgIGRyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoImNsb3NlIikuY2xpY2soKQorICAgICAgICBhbGxfaGFuZGxlcyA9IGRyaXZlci53
aW5kb3dfaGFuZGxlcworICAgICAgICBhc3NlcnQgMSA9PSBsZW4oYWxsX2hhbmRsZXMpCisgICAg
ICAgIGRyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoImNsb3NlIikKKyAgICBkcml2ZXIuc3dpdGNo
X3RvLndpbmRvdyhjdXJyZW50KQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQv
c2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dpbmRvd190ZXN0cy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL2NvbW1vbi93aW5kb3dfdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmIyOWE4ZWUyNjA2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVz
dHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvY29tbW9uL3dp
bmRvd190ZXN0cy5weQpAQCAtMCwwICsxLDE4MCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdh
cmUgRnJlZWRvbSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmli
dXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1
dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGlu
ZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8g
eW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5z
ZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdp
dGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
KyMKKyMgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMg
VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n
LAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCitpbXBvcnQgb3MKK2ltcG9ydCBw
eXRlc3QKKworZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgV2ViRHJpdmVy
RXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LndhaXQgaW1wb3J0IFdl
YkRyaXZlcldhaXQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWxfaWUKK0BweXRlc3QubWFyay54ZmFp
bF9jaHJvbWUocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorQHB5dGVzdC5tYXJrLnhmYWlsX21h
cmlvbmV0dGUocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorQHB5dGVzdC5tYXJrLnhmYWlsX2Zp
cmVmb3gocmVhc29uPSJGYWlscyBvbiBUcmF2aXMiKQorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90
ZShyZWFzb249IkZhaWxzIG9uIFRyYXZpcyIpCitkZWYgdGVzdFNob3VsZE1heGltaXplVGhlV2lu
ZG93KGRyaXZlcik6CisgICAgcmVzaXplX3RpbWVvdXQgPSA1CisgICAgd2FpdCA9IFdlYkRyaXZl
cldhaXQoZHJpdmVyLCByZXNpemVfdGltZW91dCkKKyAgICBvbGRfc2l6ZSA9IGRyaXZlci5nZXRf
d2luZG93X3NpemUoKQorICAgIGRyaXZlci5zZXRfd2luZG93X3NpemUoMjAwLCAyMDApCisgICAg
d2FpdC51bnRpbCgKKyAgICAgICAgbGFtYmRhIGRyOiBkci5nZXRfd2luZG93X3NpemUoKSAhPSBv
bGRfc2l6ZSBpZiBvbGRfc2l6ZVsid2lkdGgiXSAhPSAyMDAgYW5kIG9sZF9zaXplWyJoZWlnaHQi
XSAhPSAyMDAgZWxzZSBUcnVlKQorICAgIHNpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkK
KyAgICBkcml2ZXIubWF4aW1pemVfd2luZG93KCkKKyAgICB3YWl0LnVudGlsKGxhbWJkYSBkcjog
ZHIuZ2V0X3dpbmRvd19zaXplKCkgIT0gc2l6ZSkKKyAgICBuZXdfc2l6ZSA9IGRyaXZlci5nZXRf
d2luZG93X3NpemUoKQorICAgIGFzc2VydCBuZXdfc2l6ZVsid2lkdGgiXSA+IHNpemVbIndpZHRo
Il0KKyAgICBhc3NlcnQgbmV3X3NpemVbImhlaWdodCJdID4gc2l6ZVsiaGVpZ2h0Il0KKworCitk
ZWYgdGVzdF9zaG91bGRfZ2V0X3RoZV9zaXplX29mX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIp
OgorICAgIHNpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKyAgICBhc3NlcnQgc2l6ZS5n
ZXQoJ3dpZHRoJykgPiAwCisgICAgYXNzZXJ0IHNpemUuZ2V0KCdoZWlnaHQnKSA+IDAKKworCitk
ZWYgdGVzdF9zaG91bGRfc2V0X3RoZV9zaXplX29mX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIp
OgorICAgIHNpemUgPSBkcml2ZXIuZ2V0X3dpbmRvd19zaXplKCkKKworICAgIHRhcmdldF93aWR0
aCA9IHNpemUuZ2V0KCd3aWR0aCcpIC0gMjAKKyAgICB0YXJnZXRfaGVpZ2h0ID0gc2l6ZS5nZXQo
J2hlaWdodCcpIC0gMjAKKyAgICBkcml2ZXIuc2V0X3dpbmRvd19zaXplKHdpZHRoPXRhcmdldF93
aWR0aCwgaGVpZ2h0PXRhcmdldF9oZWlnaHQpCisKKyAgICBuZXdfc2l6ZSA9IGRyaXZlci5nZXRf
d2luZG93X3NpemUoKQorICAgIGFzc2VydCBuZXdfc2l6ZS5nZXQoJ3dpZHRoJykgPT0gdGFyZ2V0
X3dpZHRoCisgICAgYXNzZXJ0IG5ld19zaXplLmdldCgnaGVpZ2h0JykgPT0gdGFyZ2V0X2hlaWdo
dAorCisKK2RlZiB0ZXN0X3Nob3VsZF9nZXRfdGhlX3Bvc2l0aW9uX29mX3RoZV9jdXJyZW50X3dp
bmRvdyhkcml2ZXIpOgorICAgIHBvc2l0aW9uID0gZHJpdmVyLmdldF93aW5kb3dfcG9zaXRpb24o
KQorICAgIGFzc2VydCBwb3NpdGlvbi5nZXQoJ3gnKSA+PSAwCisgICAgYXNzZXJ0IHBvc2l0aW9u
LmdldCgneScpID49IDAKKworCitkZWYgdGVzdF9zaG91bGRfc2V0X3RoZV9wb3NpdGlvbl9vZl90
aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToKKyAgICBwb3NpdGlvbiA9IGRyaXZlci5nZXRfd2lu
ZG93X3Bvc2l0aW9uKCkKKworICAgIHRhcmdldF94ID0gcG9zaXRpb24uZ2V0KCd4JykgKyAxMAor
ICAgIHRhcmdldF95ID0gcG9zaXRpb24uZ2V0KCd5JykgKyAxMAorICAgIGRyaXZlci5zZXRfd2lu
ZG93X3Bvc2l0aW9uKHg9dGFyZ2V0X3gsIHk9dGFyZ2V0X3kpCisKKyAgICBXZWJEcml2ZXJXYWl0
KGRyaXZlciwgMikudW50aWwobGFtYmRhIGQ6IGQuZ2V0X3dpbmRvd19wb3NpdGlvbigpWyd4J10g
IT0gcG9zaXRpb25bJ3gnXSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZC5nZXRfd2luZG93X3Bvc2l0aW9uKClbJ3knXSAhPSBwb3NpdGlvblsneSddKQorCisgICAgbmV3
X3Bvc2l0aW9uID0gZHJpdmVyLmdldF93aW5kb3dfcG9zaXRpb24oKQorICAgIGFzc2VydCBuZXdf
cG9zaXRpb24uZ2V0KCd4JykgPT0gdGFyZ2V0X3gKKyAgICBhc3NlcnQgbmV3X3Bvc2l0aW9uLmdl
dCgneScpID09IHRhcmdldF95CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShyYWlzZXM9
V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J0dl
dCBXaW5kb3cgUmVjdCBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsueGZh
aWxfZmlyZWZveChyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSdHZXQgV2luZG93IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQn
KQorQHB5dGVzdC5tYXJrLnhmYWlsX3BoYW50b21qcyhyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J0dldCBXaW5kb3cgUmVjdCBj
b21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNl
cz1XZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0n
R2V0IFdpbmRvdyBSZWN0IGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54
ZmFpbF9zYWZhcmkocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSdHZXQgV2luZG93IFJlY3QgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQn
KQorZGVmIHRlc3Rfc2hvdWxkX2dldF90aGVfcmVjdF9vZl90aGVfY3VycmVudF93aW5kb3coZHJp
dmVyKToKKyAgICByZWN0ID0gZHJpdmVyLmdldF93aW5kb3dfcmVjdCgpCisgICAgYXNzZXJ0IHJl
Y3QuZ2V0KCd4JykgPj0gMAorICAgIGFzc2VydCByZWN0LmdldCgneScpID49IDAKKyAgICBhc3Nl
cnQgcmVjdC5nZXQoJ3dpZHRoJykgPj0gMAorICAgIGFzc2VydCByZWN0LmdldCgnaGVpZ2h0Jykg
Pj0gMAorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPVdlYkRyaXZlckV4Y2Vw
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdHZXQgV2luZG93IFJlY3Qg
Y29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQorQHB5dGVzdC5tYXJrLnhmYWlsX2ZpcmVmb3gocmFp
c2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNv
bj0nR2V0IFdpbmRvdyBSZWN0IGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFy
ay54ZmFpbF9waGFudG9tanMocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSdHZXQgV2luZG93IFJlY3QgY29tbWFuZCBub3QgaW1w
bGVtZW50ZWQnKQorQHB5dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhj
ZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J0dldCBXaW5kb3cgUmVj
dCBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0Lm1hcmsueGZhaWxfc2FmYXJpKHJh
aXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNv
bj0nR2V0IFdpbmRvdyBSZWN0IGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK2RlZiB0ZXN0X3No
b3VsZF9zZXRfdGhlX3JlY3Rfb2ZfdGhlX2N1cnJlbnRfd2luZG93KGRyaXZlcik6CisgICAgcmVj
dCA9IGRyaXZlci5nZXRfd2luZG93X3JlY3QoKQorCisgICAgdGFyZ2V0X3ggPSByZWN0LmdldCgn
eCcpICsgMTAKKyAgICB0YXJnZXRfeSA9IHJlY3QuZ2V0KCd5JykgKyAxMAorICAgIHRhcmdldF93
aWR0aCA9IHJlY3QuZ2V0KCd3aWR0aCcpICsgMTAKKyAgICB0YXJnZXRfaGVpZ2h0ID0gcmVjdC5n
ZXQoJ2hlaWdodCcpICsgMTAKKworICAgIGRyaXZlci5zZXRfd2luZG93X3JlY3QoeD10YXJnZXRf
eCwgeT10YXJnZXRfeSwgd2lkdGg9dGFyZ2V0X3dpZHRoLCBoZWlnaHQ9dGFyZ2V0X2hlaWdodCkK
KworICAgIFdlYkRyaXZlcldhaXQoZHJpdmVyLCAyKS51bnRpbChsYW1iZGEgZDogZC5nZXRfd2lu
ZG93X3Bvc2l0aW9uKClbJ3gnXSAhPSByZWN0Wyd4J10gYW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGQuZ2V0X3dpbmRvd19wb3NpdGlvbigpWyd5J10gIT0gcmVjdFsneSdd
KQorCisgICAgbmV3X3JlY3QgPSBkcml2ZXIuZ2V0X3dpbmRvd19yZWN0KCkKKworICAgIGFzc2Vy
dCBuZXdfcmVjdC5nZXQoJ3gnKSA9PSB0YXJnZXRfeAorICAgIGFzc2VydCBuZXdfcmVjdC5nZXQo
J3knKSA9PSB0YXJnZXRfeQorICAgIGFzc2VydCBuZXdfcmVjdC5nZXQoJ3dpZHRoJykgPT0gdGFy
Z2V0X3dpZHRoCisgICAgYXNzZXJ0IG5ld19yZWN0LmdldCgnaGVpZ2h0JykgPT0gdGFyZ2V0X2hl
aWdodAorCisKK0BweXRlc3QubWFyay54ZmFpbF9jaHJvbWUocmFpc2VzPVdlYkRyaXZlckV4Y2Vw
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdGdWxsc2NyZWVuIGNvbW1h
bmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1X
ZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J0Z1
bGxzY3JlZW4gY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQorQHB5dGVzdC5tYXJrLnhmYWlsX3Bo
YW50b21qcyhyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBub3QgaW1wbGVtZW50ZWQnKQorQHB5
dGVzdC5tYXJrLnhmYWlsX3JlbW90ZShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFuZCBub3QgaW1wbGVt
ZW50ZWQnKQorQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J0Z1bGxzY3JlZW4gY29tbWFu
ZCBub3QgaW1wbGVtZW50ZWQnKQorQHB5dGVzdC5tYXJrLnNraXBpZihvcy5lbnZpcm9uLmdldCgn
Q0knKSA9PSAndHJ1ZScsCisgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nRnVsbHNjcmVlbiBj
b21tYW5kIGNhdXNlcyBUcmF2aXMgdG8gaGFuZycpCitkZWYgdGVzdF9zaG91bGRfZnVsbHNjcmVl
bl90aGVfY3VycmVudF93aW5kb3coZHJpdmVyKToKKyAgICBzdGFydF93aWR0aCA9IGRyaXZlci5l
eGVjdXRlX3NjcmlwdCgncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoOycpCisgICAgc3RhcnRfaGVp
Z2h0ID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0Oycp
CisKKyAgICBkcml2ZXIuZnVsbHNjcmVlbl93aW5kb3coKQorCisgICAgV2ViRHJpdmVyV2FpdChk
cml2ZXIsIDIpLnVudGlsKGxhbWJkYSBkOiBkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoJ3JldHVybiB3
aW5kb3cuaW5uZXJXaWR0aDsnKSA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0X3dpZHRoKQorCisgICAgZW5kX3dpZHRoID0gZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCdy
ZXR1cm4gd2luZG93LmlubmVyV2lkdGg7JykKKyAgICBlbmRfaGVpZ2h0ID0gZHJpdmVyLmV4ZWN1
dGVfc2NyaXB0KCdyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0OycpCisKKyAgICBkcml2ZXIuZnVs
bHNjcmVlbl93aW5kb3coKSAgIyBSZXN0b3JlIHRvIG9yaWdpbmFsIHNpemUKKworICAgIGFzc2Vy
dCBlbmRfd2lkdGggPiBzdGFydF93aWR0aAorICAgIGFzc2VydCBlbmRfaGVpZ2h0ID4gc3RhcnRf
aGVpZ2h0CisKKworQHB5dGVzdC5tYXJrLnhmYWlsX2Nocm9tZShyYWlzZXM9V2ViRHJpdmVyRXhj
ZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1h
bmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9maXJlZm94KHJhaXNlcz1X
ZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01p
bmltaXplIGNvbW1hbmQgbm90IGltcGxlbWVudGVkJykKK0BweXRlc3QubWFyay54ZmFpbF9waGFu
dG9tanMocmFpc2VzPVdlYkRyaXZlckV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVhc29uPSdNaW5pbWl6ZSBjb21tYW5kIG5vdCBpbXBsZW1lbnRlZCcpCitAcHl0ZXN0
Lm1hcmsueGZhaWxfcmVtb3RlKHJhaXNlcz1XZWJEcml2ZXJFeGNlcHRpb24sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0nTWluaW1pemUgY29tbWFuZCBub3QgaW1wbGVtZW50ZWQn
KQorQHB5dGVzdC5tYXJrLnhmYWlsX3NhZmFyaShyYWlzZXM9V2ViRHJpdmVyRXhjZXB0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1hbmQgbm90IGlt
cGxlbWVudGVkJykKK0BweXRlc3QubWFyay5za2lwaWYob3MuZW52aXJvbi5nZXQoJ0NJJykgPT0g
J3RydWUnLAorICAgICAgICAgICAgICAgICAgICByZWFzb249J01pbmltaXplIGNvbW1hbmQgY2F1
c2VzIFRyYXZpcyB0byBoYW5nJykKK0BweXRlc3QubWFyay5ub19kcml2ZXJfYWZ0ZXJfdGVzdAor
ZGVmIHRlc3Rfc2hvdWxkX21pbmltaXplX3RoZV9jdXJyZW50X3dpbmRvdyhkcml2ZXIpOgorICAg
IGRyaXZlci5taW5pbWl6ZV93aW5kb3coKQorICAgIG1pbmltaXplZCA9IGRyaXZlci5leGVjdXRl
X3NjcmlwdCgncmV0dXJuIGRvY3VtZW50LmhpZGRlbjsnKQorICAgIGRyaXZlci5xdWl0KCkgICMg
S2lsbCBkcml2ZXIgc28gd2UgYXJlbid0IHJ1bm5pbmcgbWluaW1pemVkIGFmdGVyCisKKyAgICBh
c3NlcnQgbWluaW1pemVkIGlzIFRydWUKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9y
dGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9fX2luaXRfXy5w
eSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2Vi
ZHJpdmVyL3JlbW90ZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYTViMWU2Zjg1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvX19pbml0
X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRv
bSBDb25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNl
bnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGgg
dGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmln
aHQgb3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExp
Y2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBo
dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0
d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgor
IyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkK
KyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRh
dGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9yZW1vdGUvcmVtb3Rl
X2ZpcmVmb3hfcHJvZmlsZV90ZXN0cy5weSBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVfZmlyZWZveF9wcm9m
aWxlX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mN2Q2
ODI5MTliMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVu
aXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3JlbW90ZS9yZW1vdGVfZmlyZWZveF9wcm9m
aWxlX3Rlc3RzLnB5CkBAIC0wLDAgKzEsNDggQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbXBvcnQgcHl0ZXN0Citmcm9t
IHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1v
bi5kZXNpcmVkX2NhcGFiaWxpdGllcyBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcworCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIGNhcGFiaWxpdGllcygpOgorICAgIGNhcGFiaWxpdGllcyA9IERl
c2lyZWRDYXBhYmlsaXRpZXMuRklSRUZPWC5jb3B5KCkKKyAgICBjYXBhYmlsaXRpZXNbJ21hcmlv
bmV0dGUnXSA9IEZhbHNlCisgICAgcmV0dXJuIGNhcGFiaWxpdGllcworCisKK0BweXRlc3QuZml4
dHVyZQorZGVmIGRyaXZlcihjYXBhYmlsaXRpZXMsIHByb2ZpbGUpOgorICAgIGRyaXZlciA9IHdl
YmRyaXZlci5SZW1vdGUoCisgICAgICAgIGRlc2lyZWRfY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGll
cywKKyAgICAgICAgYnJvd3Nlcl9wcm9maWxlPXByb2ZpbGUpCisgICAgeWllbGQgZHJpdmVyCisg
ICAgZHJpdmVyLnF1aXQoKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIHByb2ZpbGUoKToKKyAg
ICBwcm9maWxlID0gd2ViZHJpdmVyLkZpcmVmb3hQcm9maWxlKCkKKyAgICBwcm9maWxlLnNldF9w
cmVmZXJlbmNlKCdicm93c2VyLnN0YXJ0dXAuaG9tZXBhZ2UnLCAnYWJvdXQ6JykKKyAgICBwcm9m
aWxlLnVwZGF0ZV9wcmVmZXJlbmNlcygpCisgICAgcmV0dXJuIHByb2ZpbGUKKworCitkZWYgdGVz
dF9wcm9maWxlX2lzX3VzZWQoZHJpdmVyKToKKyAgICBhc3NlcnQgJ2Fib3V0OmJsYW5rJyA9PSBk
cml2ZXIuY3VycmVudF91cmwgb3IgJ2Fib3V0OicgPT0gZHJpdmVyLmN1cnJlbnRfdXJsCmRpZmYg
LS1naXQgYS9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVt
L3dlYmRyaXZlci9zYWZhcmkvY29uZnRlc3QucHkgYi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9z
ZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zYWZhcmkvY29uZnRlc3QucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFhZDRlNTAyYTc4Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxl
bml1bS93ZWJkcml2ZXIvc2FmYXJpL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMzcgQEAKKyMgTGlj
ZW5zZWQgdG8gdGhlIFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25l
CisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJ
Q0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5z
ZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExp
Y2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJS
QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGlt
cGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zl
cm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgor
CitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBTYWZhcmkK
KworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBkcml2ZXJfY2xhc3MoKToKKyAgICByZXR1cm4gU2Fm
YXJpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgZHJpdmVyX2t3YXJncygpOgorICAgIHJldHVy
biB7fQorCisKK0BweXRlc3QueWllbGRfZml4dHVyZQorZGVmIGRyaXZlcihkcml2ZXJfY2xhc3Ms
IGRyaXZlcl9rd2FyZ3MpOgorICAgIGRyaXZlciA9IGRyaXZlcl9jbGFzcygqKmRyaXZlcl9rd2Fy
Z3MpCisgICAgeWllbGQgZHJpdmVyCisgICAgZHJpdmVyLnF1aXQoKQpkaWZmIC0tZ2l0IGEvV2Vi
RHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIv
c2FmYXJpL2xhdW5jaGVyX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc2FmYXJpL2xhdW5jaGVyX3Rlc3RzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NDI3MjVmM2E0ZQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2Vs
ZW5pdW0vd2ViZHJpdmVyL3NhZmFyaS9sYXVuY2hlcl90ZXN0cy5weQpAQCAtMCwwICsxLDQ0IEBA
CisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZhbmN5IChTRkMpIHVu
ZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0
aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgU0ZD
IGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWlu
IGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhP
VVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBlaXRoZXIgZXhwcmVz
cyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3BlY2lmaWMgbGFuZ3Vh
Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1bmRlciB0aGUgTGlj
ZW5zZS4KKworaW1wb3J0IG9zCisKK2ltcG9ydCBweXRlc3QKKworCitkZWYgdGVzdF9sYXVuY2go
ZHJpdmVyKToKKyAgICBhc3NlcnQgZHJpdmVyLmNhcGFiaWxpdGllc1snYnJvd3Nlck5hbWUnXSA9
PSAnc2FmYXJpJworCisKK2RlZiB0ZXN0X2xhdW5jaF93aXRoX2ludmFsaWRfZXhlY3V0YWJsZV9w
YXRoX3JhaXNlc19leGNlcHRpb24oZHJpdmVyX2NsYXNzKToKKyAgICBwYXRoID0gJy90aGlzL3Bh
dGgvc2hvdWxkL25ldmVyL2V4aXN0JworICAgIGFzc2VydCBub3Qgb3MucGF0aC5leGlzdHMocGF0
aCkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uKSBhcyBlOgorICAgICAgICBkcml2
ZXJfY2xhc3MoZXhlY3V0YWJsZV9wYXRoPXBhdGgpCisgICAgYXNzZXJ0ICdTYWZhcmlEcml2ZXIg
cmVxdWlyZXMgU2FmYXJpIDEwIG9uIE9TWCBFbCBDYXBpdGFuJyBpbiBzdHIoZSkKKworCitjbGFz
cyBUZXN0VGVjaG5vbG9neVByZXZpZXcob2JqZWN0KToKKworICAgIEBweXRlc3QuZml4dHVyZQor
ICAgIGRlZiBkcml2ZXJfa3dhcmdzKHNlbGYpOgorICAgICAgICBwYXRoID0gJy9BcHBsaWNhdGlv
bnMvU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldy5hcHAvQ29udGVudHMvTWFjT1Mvc2FmYXJpZHJp
dmVyJworICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMocGF0aCksICdTYWZhcmkgVGVjaG5v
bG9neSBQcmV2aWV3IHJlcXVpcmVkISBEb3dubG9hZCBpdCBmcm9tIGh0dHBzOi8vZGV2ZWxvcGVy
LmFwcGxlLmNvbS9zYWZhcmkvdGVjaG5vbG9neS1wcmV2aWV3LycKKyAgICAgICAgcmV0dXJuIHsn
ZXhlY3V0YWJsZV9wYXRoJzogcGF0aH0KKworICAgIGRlZiB0ZXN0X2xhdW5jaChzZWxmLCBkcml2
ZXIpOgorICAgICAgICBhc3NlcnQgZHJpdmVyLmNhcGFiaWxpdGllc1snYnJvd3Nlck5hbWUnXSA9
PSAnc2FmYXJpJwpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0v
cHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9fX2luaXRfXy5weSBiL1dlYkRyaXZl
clRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBv
cnQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1
YjFlNmY4NWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2Vs
ZW5pdW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9fX2luaXRfXy5weQpAQCAt
MCwwICsxLDE2IEBACisjIExpY2Vuc2VkIHRvIHRoZSBTb2Z0d2FyZSBGcmVlZG9tIENvbnNlcnZh
bmN5IChTRkMpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVt
ZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsg
Zm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNo
aXAuICBUaGUgU0ZDIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVz
ZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlv
dSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgIGh0dHA6Ly93d3cu
YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkg
YXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIg
QkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorIyBLSU5ELCBl
aXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyMgc3Bl
Y2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworIyB1
bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3Nl
bGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvY29sb3JfdGVzdHMucHkg
Yi9XZWJEcml2ZXJUZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRy
aXZlci9zdXBwb3J0L2NvbG9yX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xZjM2YWVjNTkyMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3Rz
L2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qvc2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvY29s
b3JfdGVzdHMucHkKQEAgLTAsMCArMSwxMjEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitmcm9tIHNlbGVuaXVtLndlYmRy
aXZlci5zdXBwb3J0LmNvbG9yIGltcG9ydCBDb2xvcgorCisKK2RlZiB0ZXN0X3JnYl90b19yZ2Io
KToKKyAgICByZ2IgPSAicmdiKDEsIDIsIDMpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmlu
ZyhyZ2IpLnJnYiA9PSByZ2IKKworCitkZWYgdGVzdF9yZ2JfdG9fcmdiYSgpOgorICAgIHJnYiA9
ICJyZ2IoMSwgMiwgMykiCisgICAgYXNzZXJ0IENvbG9yLmZyb21fc3RyaW5nKHJnYikucmdiYSA9
PSAicmdiYSgxLCAyLCAzLCAxKSIKKworCitkZWYgdGVzdF9yZ2JfcGN0X3RvX3JnYmEoKToKKyAg
ICByZ2IgPSAicmdiKDEwJSwgMjAlLCAzMCUpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmlu
ZyhyZ2IpLnJnYmEgPT0gInJnYmEoMjUsIDUxLCA3NiwgMSkiCisKKworZGVmIHRlc3RfcmdiX2Fs
bG93c193aGl0ZXNwYWNlKCk6CisgICAgcmdiID0gInJnYihcdDEsICAgMiAgICAsIDMpIgorICAg
IGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyhyZ2IpLnJnYiA9PSAicmdiKDEsIDIsIDMpIgorCisK
K2RlZiB0ZXN0X3JnYmFfdG9fcmdiYSgpOgorICAgIHJnYmEgPSAicmdiYSgxLCAyLCAzLCAwLjUp
IgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyhyZ2JhKS5yZ2JhID09IHJnYmEKKworCitk
ZWYgdGVzdF9yZ2JhX3BjdF90b19yZ2JhKCk6CisgICAgcmdiYSA9ICJyZ2JhKDEwJSwgMjAlLCAz
MCUsIDAuNSkiCisgICAgYXNzZXJ0IENvbG9yLmZyb21fc3RyaW5nKHJnYmEpLnJnYmEgPT0gInJn
YmEoMjUsIDUxLCA3NiwgMC41KSIKKworCitkZWYgdGVzdF9oZXhfdG9faGV4KCk6CisgICAgaGV4
XyA9ICIjZmYwMGEwIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyhoZXhfKS5oZXggPT0g
aGV4XworCisKK2RlZiB0ZXN0X2hleF90b19yZ2IoKToKKyAgICBoZXhfID0gIiMwMUZmMDMiCisg
ICAgcmdiID0gInJnYigxLCAyNTUsIDMpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyho
ZXhfKS5yZ2IgPT0gcmdiCisKKworZGVmIHRlc3RfaGV4X3RvX3JnYmEoKToKKyAgICBoZXhfID0g
IiMwMUZmMDMiCisgICAgcmdiYSA9ICJyZ2JhKDEsIDI1NSwgMywgMSkiCisgICAgYXNzZXJ0IENv
bG9yLmZyb21fc3RyaW5nKGhleF8pLnJnYmEgPT0gcmdiYQorCisgICAgaGV4XyA9ICIjMDBmZjMz
IgorICAgIHJnYmEgPSAicmdiYSgwLCAyNTUsIDUxLCAxKSIKKyAgICBhc3NlcnQgQ29sb3IuZnJv
bV9zdHJpbmcoaGV4XykucmdiYSA9PSByZ2JhCisKKworZGVmIHRlc3RfcmdiX3RvX2hleCgpOgor
ICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZygicmdiKDEsIDI1NSwgMykiKS5oZXggPT0gIiMw
MWZmMDMiCisKKworZGVmIHRlc3RfaGV4M190b19yZ2JhKCk6CisgICAgYXNzZXJ0IENvbG9yLmZy
b21fc3RyaW5nKCIjMGYzIikucmdiYSA9PSAicmdiYSgwLCAyNTUsIDUxLCAxKSIKKworCitkZWYg
dGVzdF9oc2xfdG9fcmdiYSgpOgorICAgIGhzbCA9ICJoc2woMTIwLCAxMDAlLCAyNSUpIgorICAg
IHJnYmEgPSAicmdiYSgwLCAxMjgsIDAsIDEpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmlu
Zyhoc2wpLnJnYmEgPT0gcmdiYQorCisgICAgaHNsID0gImhzbCgxMDAsIDAlLCA1MCUpIgorICAg
IHJnYmEgPSAicmdiYSgxMjgsIDEyOCwgMTI4LCAxKSIKKyAgICBhc3NlcnQgQ29sb3IuZnJvbV9z
dHJpbmcoaHNsKS5yZ2JhID09IHJnYmEKKworCitkZWYgdGVzdF9oc2xhX3RvX3JnYmEoKToKKyAg
ICBoc2xhID0gImhzbGEoMTIwLCAxMDAlLCAyNSUsIDEpIgorICAgIHJnYmEgPSAicmdiYSgwLCAx
MjgsIDAsIDEpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZyhoc2xhKS5yZ2JhID09IHJn
YmEKKworICAgIGhzbGEgPSAiaHNsYSgxMDAsIDAlLCA1MCUsIDAuNSkiCisgICAgcmdiYSA9ICJy
Z2JhKDEyOCwgMTI4LCAxMjgsIDAuNSkiCisgICAgYXNzZXJ0IENvbG9yLmZyb21fc3RyaW5nKGhz
bGEpLnJnYmEgPT0gcmdiYQorCisKK2RlZiB0ZXN0X25hbWVkX2NvbG9yKCk6CisgICAgYXNzZXJ0
IENvbG9yLmZyb21fc3RyaW5nKCJncmVlbiIpLnJnYmEgPT0gInJnYmEoMCwgMTI4LCAwLCAxKSIK
KyAgICBhc3NlcnQgQ29sb3IuZnJvbV9zdHJpbmcoImdyYXkiKS5yZ2JhID09ICJyZ2JhKDEyOCwg
MTI4LCAxMjgsIDEpIgorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZygiYXF1YSIpLmhleCA9
PSAiIzAwZmZmZiIKKyAgICBhc3NlcnQgQ29sb3IuZnJvbV9zdHJpbmcoInRyYW5zcGFyZW50Iiku
cmdiYSA9PSAicmdiYSgwLCAwLCAwLCAwKSIKKworCitkZWYgdGVzdF9lcXVhbHMoKToKKyAgICBh
c3NlcnQgQ29sb3IuZnJvbV9zdHJpbmcoIiNmMDAiKSA9PSBDb2xvci5mcm9tX3N0cmluZygicmdi
KDI1NSwgMCwgMCkiKQorICAgIGFzc2VydCBDb2xvci5mcm9tX3N0cmluZygicmdiYSgzMCwgMzAs
IDMwLCAwLjIpIikgIT0gQ29sb3IuZnJvbV9zdHJpbmcoInJnYmEoMzAsIDMwLCAzMCwgMSkiKQor
CisKK2RlZiB0ZXN0X2hhc2goKToKKyAgICBoYXNoMSA9IGhhc2goQ29sb3IuZnJvbV9zdHJpbmco
IiNmMDAiKSkKKyAgICBoYXNoMiA9IGhhc2goQ29sb3IuZnJvbV9zdHJpbmcoInJnYigyNTUsIDAs
IDApIikpCisgICAgYXNzZXJ0IGhhc2gxID09IGhhc2gyCisKKworZGVmIHRlc3Rfc3RyaW5nX3Jl
cHJlc2VudGF0aW9ucygpOgorICAgIGhleF8gPSAiIzAxRmYwMyIKKyAgICBhc3NlcnQgc3RyKENv
bG9yLmZyb21fc3RyaW5nKGhleF8pKSA9PSAiQ29sb3I6IHJnYmEoMSwgMjU1LCAzLCAxKSIKKyAg
ICBhc3NlcnQgcmVwcihDb2xvci5mcm9tX3N0cmluZyhoZXhfKSkgPT0gIkNvbG9yKHJlZD0xLCBn
cmVlbj0yNTUsIGJsdWU9MywgYWxwaGE9MSkiCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9p
bXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0L2NvbmZ0
ZXN0LnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9zZWxlbml1
bS93ZWJkcml2ZXIvc3VwcG9ydC9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNzU2NzA5MjdlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJEcml2ZXJU
ZXN0cy9pbXBvcnRlZC9zZWxlbml1bS9weS90ZXN0L3NlbGVuaXVtL3dlYmRyaXZlci9zdXBwb3J0
L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMjEgQEAKKyMgTGljZW5zZWQgdG8gdGhlIFNvZnR3YXJl
IEZyZWVkb20gQ29uc2VydmFuY3kgKFNGQykgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0
b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRl
ZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcg
Y29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBTRkMgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlv
dSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2Ui
KTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRo
IHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Cisj
CisjICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywK
KyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
IGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK2RlZiBweXRlc3RfZ2VuZXJh
dGVfdGVzdHMobWV0YWZ1bmMpOgorICAgIGlmICdkcml2ZXInIGluIG1ldGFmdW5jLmZpeHR1cmVu
YW1lcyBhbmQgbWV0YWZ1bmMuY29uZmlnLm9wdGlvbi5kcml2ZXJzOgorICAgICAgICBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgnZHJpdmVyJywgbWV0YWZ1bmMuY29uZmlnLm9wdGlvbi5kcml2ZXJzLCBp
bmRpcmVjdD1UcnVlKQpkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5p
dW0vcHkvdGVzdC9zZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVudF9maXJpbmdfd2ViZHJp
dmVyX3Rlc3RzLnB5IGIvV2ViRHJpdmVyVGVzdHMvaW1wb3J0ZWQvc2VsZW5pdW0vcHkvdGVzdC9z
ZWxlbml1bS93ZWJkcml2ZXIvc3VwcG9ydC9ldmVudF9maXJpbmdfd2ViZHJpdmVyX3Rlc3RzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNDM3YTQ0Njg2MwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkRyaXZlclRlc3RzL2ltcG9ydGVkL3NlbGVuaXVtL3B5L3Rlc3Qv
c2VsZW5pdW0vd2ViZHJpdmVyL3N1cHBvcnQvZXZlbnRfZmlyaW5nX3dlYmRyaXZlcl90ZXN0cy5w
eQpAQCAtMCwwICsxLDIxOCBAQAorIyBMaWNlbnNlZCB0byB0aGUgU29mdHdhcmUgRnJlZWRvbSBD
b25zZXJ2YW5jeSAoU0ZDKSB1bmRlciBvbmUKKyMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisjIGRpc3RyaWJ1dGVkIHdpdGggdGhp
cyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisjIHJlZ2FyZGluZyBjb3B5cmlnaHQg
b3duZXJzaGlwLiAgVGhlIFNGQyBsaWNlbnNlcyB0aGlzIGZpbGUKKyMgdG8geW91IHVuZGVyIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisjIHdpdGggdGhlIExpY2Vu
c2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVp
cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2Fy
ZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAi
QVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
CisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlv
bnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK3RyeToKKyAgICBmcm9tIGlvIGltcG9ydCBCeXRl
c0lPCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmlu
Z0lPIGFzIEJ5dGVzSU8KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHNlbGVuaXVtLmNvbW1vbi5l
eGNlcHRpb25zIGltcG9ydCBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCitmcm9tIHNlbGVuaXVtLndl
YmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBw
b3J0LmV2ZW50cyBpbXBvcnQgRXZlbnRGaXJpbmdXZWJEcml2ZXIsIEFic3RyYWN0RXZlbnRMaXN0
ZW5lcgorZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBvcnQgV2ViRHJpdmVy
V2FpdAorCisKK0BweXRlc3QueWllbGRfZml4dHVyZQorZGVmIGxvZygpOgorICAgIGxvZyA9IEJ5
dGVzSU8oKQorICAgIHlpZWxkIGxvZworICAgIGxvZy5jbG9zZSgpCisKKworZGVmIHRlc3Rfc2hv
dWxkX2ZpcmVfbmF2aWdhdGlvbl9ldmVudHMoZHJpdmVyLCBsb2csIHBhZ2VzKToKKworICAgIGNs
YXNzIEV2ZW50TGlzdGVuZXIoQWJzdHJhY3RFdmVudExpc3RlbmVyKToKKworICAgICAgICBkZWYg
YmVmb3JlX25hdmlnYXRlX3RvKHNlbGYsIHVybCwgZHJpdmVyKToKKyAgICAgICAgICAgIGxvZy53
cml0ZSgoImJlZm9yZV9uYXZpZ2F0ZV90byAlcyIgJSB1cmwuc3BsaXQoIi8iKVstMV0pLmVuY29k
ZSgpKQorCisgICAgICAgIGRlZiBhZnRlcl9uYXZpZ2F0ZV90byhzZWxmLCB1cmwsIGRyaXZlcik6
CisgICAgICAgICAgICBsb2cud3JpdGUoKCJhZnRlcl9uYXZpZ2F0ZV90byAlcyIgJSB1cmwuc3Bs
aXQoIi8iKVstMV0pLmVuY29kZSgpKQorCisgICAgICAgIGRlZiBiZWZvcmVfbmF2aWdhdGVfYmFj
ayhzZWxmLCBkcml2ZXIpOgorICAgICAgICAgICAgbG9nLndyaXRlKGIiYmVmb3JlX25hdmlnYXRl
X2JhY2siKQorCisgICAgICAgIGRlZiBhZnRlcl9uYXZpZ2F0ZV9iYWNrKHNlbGYsIGRyaXZlcik6
CisgICAgICAgICAgICBsb2cud3JpdGUoYiJhZnRlcl9uYXZpZ2F0ZV9iYWNrIikKKworICAgICAg
ICBkZWYgYmVmb3JlX25hdmlnYXRlX2ZvcndhcmQoc2VsZiwgZHJpdmVyKToKKyAgICAgICAgICAg
IGxvZy53cml0ZShiImJlZm9yZV9uYXZpZ2F0ZV9mb3J3YXJkIikKKworICAgICAgICBkZWYgYWZ0
ZXJfbmF2aWdhdGVfZm9yd2FyZChzZWxmLCBkcml2ZXIpOgorICAgICAgICAgICAgbG9nLndyaXRl
KGIiYWZ0ZXJfbmF2aWdhdGVfZm9yd2FyZCIpCisKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmlu
Z1dlYkRyaXZlcihkcml2ZXIsIEV2ZW50TGlzdGVuZXIoKSkKKyAgICBlZl9kcml2ZXIuZ2V0KHBh
Z2VzLnVybCgiZm9ybVBhZ2UuaHRtbCIpKQorICAgIGVmX2RyaXZlci5maW5kX2VsZW1lbnQoYnk9
QnkuSUQsIHZhbHVlPSJpbWFnZUJ1dHRvbiIpLnN1Ym1pdCgpCisgICAgV2ViRHJpdmVyV2FpdChl
Zl9kcml2ZXIsIDUpLnVudGlsKGxhbWJkYSBkOiBkLnRpdGxlID09ICJXZSBBcnJpdmUgSGVyZSIp
CisgICAgYXNzZXJ0IGVmX2RyaXZlci50aXRsZSA9PSAiV2UgQXJyaXZlIEhlcmUiCisKKyAgICBl
Zl9kcml2ZXIuYmFjaygpCisgICAgYXNzZXJ0IGVmX2RyaXZlci50aXRsZSA9PSAiV2UgTGVhdmUg
RnJvbSBIZXJlIgorCisgICAgZWZfZHJpdmVyLmZvcndhcmQoKQorICAgIGFzc2VydCBlZl9kcml2
ZXIudGl0bGUgPT0gIldlIEFycml2ZSBIZXJlIgorCisgICAgYXNzZXJ0IChiImJlZm9yZV9uYXZp
Z2F0ZV90byBmb3JtUGFnZS5odG1sIgorICAgICAgICAgICAgYiJhZnRlcl9uYXZpZ2F0ZV90byBm
b3JtUGFnZS5odG1sIgorICAgICAgICAgICAgYiJiZWZvcmVfbmF2aWdhdGVfYmFjayIKKyAgICAg
ICAgICAgIGIiYWZ0ZXJfbmF2aWdhdGVfYmFjayIKKyAgICAgICAgICAgIGIiYmVmb3JlX25hdmln
YXRlX2ZvcndhcmQiCisgICAgICAgICAgICBiImFmdGVyX25hdmlnYXRlX2ZvcndhcmQiKSA9PSBs
b2cuZ2V0dmFsdWUoKQorCisKK2RlZiB0ZXN0X3Nob3VsZF9maXJlX2NsaWNrX2V2ZW50KGRyaXZl
ciwgbG9nLCBwYWdlcyk6CisKKyAgICBjbGFzcyBFdmVudExpc3RlbmVyKEFic3RyYWN0RXZlbnRM
aXN0ZW5lcik6CisKKyAgICAgICAgZGVmIGJlZm9yZV9jbGljayhzZWxmLCBlbGVtZW50LCBkcml2
ZXIpOgorICAgICAgICAgICAgbG9nLndyaXRlKGIiYmVmb3JlX2NsaWNrIikKKworICAgICAgICBk
ZWYgYWZ0ZXJfY2xpY2soc2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgICAgIGxvZy53
cml0ZShiImFmdGVyX2NsaWNrIikKKworICAgIGVmX2RyaXZlciA9IEV2ZW50RmlyaW5nV2ViRHJp
dmVyKGRyaXZlciwgRXZlbnRMaXN0ZW5lcigpKQorICAgIGVmX2RyaXZlci5nZXQocGFnZXMudXJs
KCJjbGlja3MuaHRtbCIpKQorICAgIGVmX2RyaXZlci5maW5kX2VsZW1lbnQoQnkuSUQsICJvdmVy
Zmxvd0xpbmsiKS5jbGljaygpCisgICAgYXNzZXJ0IGVmX2RyaXZlci50aXRsZSA9PSAiWEhUTUwg
VGVzdCBQYWdlIgorCisgICAgYXNzZXJ0IGIiYmVmb3JlX2NsaWNrIiArIGIiYWZ0ZXJfY2xpY2si
ID09IGxvZy5nZXR2YWx1ZSgpCisKKworZGVmIHRlc3Rfc2hvdWxkX2ZpcmVfY2hhbmdlX3ZhbHVl
X2V2ZW50KGRyaXZlciwgbG9nLCBwYWdlcyk6CisKKyAgICBjbGFzcyBFdmVudExpc3RlbmVyKEFi
c3RyYWN0RXZlbnRMaXN0ZW5lcik6CisKKyAgICAgICAgZGVmIGJlZm9yZV9jaGFuZ2VfdmFsdWVf
b2Yoc2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgICAgIGxvZy53cml0ZShiImJlZm9y
ZV9jaGFuZ2VfdmFsdWVfb2YiKQorCisgICAgICAgIGRlZiBhZnRlcl9jaGFuZ2VfdmFsdWVfb2Yo
c2VsZiwgZWxlbWVudCwgZHJpdmVyKToKKyAgICAgICAgICAgIGxvZy53cml0ZShiImFmdGVyX2No
YW5nZV92YWx1ZV9vZiIpCisKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmluZ1dlYkRyaXZlcihk
cml2ZXIsIEV2ZW50TGlzdGVuZXIoKSkKKyAgICBlZl9kcml2ZXIuZ2V0KHBhZ2VzLnVybCgicmVh
ZE9ubHlQYWdlLmh0bWwiKSkKKyAgICBlbGVtZW50ID0gZWZfZHJpdmVyLmZpbmRfZWxlbWVudF9i
eV9pZCgid3JpdGFibGVUZXh0SW5wdXQiKQorICAgIGVsZW1lbnQuY2xlYXIoKQorICAgIGFzc2Vy
dCAiIiA9PSBlbGVtZW50LmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKworICAgIGVmX2RyaXZlci5n
ZXQocGFnZXMudXJsKCJqYXZhc2NyaXB0UGFnZS5odG1sIikpCisgICAga2V5UmVwb3J0ZXIgPSBl
Zl9kcml2ZXIuZmluZF9lbGVtZW50KGJ5PUJ5LklELCB2YWx1ZT0ia2V5UmVwb3J0ZXIiKQorICAg
IGtleVJlcG9ydGVyLnNlbmRfa2V5cygiYWJjIGRlZiIpCisgICAgYXNzZXJ0IGtleVJlcG9ydGVy
LmdldF9hdHRyaWJ1dGUoInZhbHVlIikgPT0gImFiYyBkZWYiCisKKyAgICBhc3NlcnQgKGIiYmVm
b3JlX2NoYW5nZV92YWx1ZV9vZiIKKyAgICAgICAgICAgIGIiYWZ0ZXJfY2hhbmdlX3ZhbHVlX29m
IgorICAgICAgICAgICAgYiJiZWZvcmVfY2hhbmdlX3ZhbHVlX29mIgorICAgICAgICAgICAgYiJh
ZnRlcl9jaGFuZ2VfdmFsdWVfb2YiKSA9PSBsb2cuZ2V0dmFsdWUoKQorCisKK2RlZiB0ZXN0X3No
b3VsZF9maXJlX2ZpbmRfZXZlbnQoZHJpdmVyLCBsb2csIHBhZ2VzKToKKworICAgIGNsYXNzIEV2
ZW50TGlzdGVuZXIoQWJzdHJhY3RFdmVudExpc3RlbmVyKToKKworICAgICAgICBkZWYgYmVmb3Jl
X2ZpbmQoc2VsZiwgYnksIHZhbHVlLCBkcml2ZXIpOgorICAgICAgICAgICAgbG9nLndyaXRlKCgi
YmVmb3JlX2ZpbmQgYnkgJXMgJXMiICUgKGJ5LCB2YWx1ZSkpLmVuY29kZSgpKQorCisgICAgICAg
IGRlZiBhZnRlcl9maW5kKHNlbGYsIGJ5LCB2YWx1ZSwgZHJpdmVyKToKKyAgICAgICAgICAgIGxv
Zy53cml0ZSgoImFmdGVyX2ZpbmQgYnkgJXMgJXMiICUgKGJ5LCB2YWx1ZSkpLmVuY29kZSgpKQor
CisgICAgZWZfZHJpdmVyID0gRXZlbnRGaXJpbmdXZWJEcml2ZXIoZHJpdmVyLCBFdmVudExpc3Rl
bmVyKCkpCisgICAgZWZfZHJpdmVyLmdldChwYWdlcy51cmwoInNpbXBsZVRlc3QuaHRtbCIpKQor
ICAgIGUgPSBlZl9kcml2ZXIuZmluZF9lbGVtZW50X2J5X2lkKCJvbmVsaW5lIikKKyAgICBhc3Nl
cnQgIkEgc2luZ2xlIGxpbmUgb2YgdGV4dCIgPT0gZS50ZXh0CisKKyAgICBlID0gZWZfZHJpdmVy
LmZpbmRfZWxlbWVudF9ieV94cGF0aCgiL2h0bWwvYm9keS9wWzFdIikKKyAgICBhc3NlcnQgIkEg
c2luZ2xlIGxpbmUgb2YgdGV4dCIgPT0gZS50ZXh0CisKKyAgICBlZl9kcml2ZXIuZ2V0KHBhZ2Vz
LnVybCgiZnJhbWVzZXQuaHRtbCIpKQorICAgIGVsZW1lbnRzID0gZWZfZHJpdmVyLmZpbmRfZWxl
bWVudHNfYnlfY3NzX3NlbGVjdG9yKCJmcmFtZSNzaXh0aCIpCisgICAgYXNzZXJ0IDEgPT0gbGVu
KGVsZW1lbnRzKQorICAgIGFzc2VydCAiZnJhbWUiID09IGVsZW1lbnRzWzBdLnRhZ19uYW1lLmxv
d2VyKCkKKyAgICBhc3NlcnQgInNpeHRoIiA9PSBlbGVtZW50c1swXS5nZXRfYXR0cmlidXRlKCJp
ZCIpCisKKyAgICBhc3NlcnQgKGIiYmVmb3JlX2ZpbmQgYnkgaWQgb25lbGluZSIKKyAgICAgICAg
ICAgIGIiYWZ0ZXJfZmluZCBieSBpZCBvbmVsaW5lIgorICAgICAgICAgICAgYiJiZWZvcmVfZmlu
ZCBieSB4cGF0aCAvaHRtbC9ib2R5L3BbMV0iCisgICAgICAgICAgICBiImFmdGVyX2ZpbmQgYnkg
eHBhdGggL2h0bWwvYm9keS9wWzFdIgorICAgICAgICAgICAgYiJiZWZvcmVfZmluZCBieSBjc3Mg
c2VsZWN0b3IgZnJhbWUjc2l4dGgiCisgICAgICAgICAgICBiImFmdGVyX2ZpbmQgYnkgY3NzIHNl
bGVjdG9yIGZyYW1lI3NpeHRoIikgPT0gbG9nLmdldHZhbHVlKCkKKworCitkZWYgdGVzdF9zaG91
bGRfY2FsbF9saXN0ZW5lcl93aGVuX2FuX2V4Y2VwdGlvbl9pc190aHJvd24oZHJpdmVyLCBsb2cs
IHBhZ2VzKToKKworICAgIGNsYXNzIEV2ZW50TGlzdGVuZXIoQWJzdHJhY3RFdmVudExpc3RlbmVy
KToKKyAgICAgICAgZGVmIG9uX2V4Y2VwdGlvbihzZWxmLCBleGNlcHRpb24sIGRyaXZlcik6Cisg
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4Y2VwdGlvbiwgTm9TdWNoRWxlbWVudEV4Y2VwdGlv
bik6CisgICAgICAgICAgICAgICAgbG9nLndyaXRlKGIiTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBp
cyB0aHJvd24iKQorCisgICAgZWZfZHJpdmVyID0gRXZlbnRGaXJpbmdXZWJEcml2ZXIoZHJpdmVy
LCBFdmVudExpc3RlbmVyKCkpCisgICAgZWZfZHJpdmVyLmdldChwYWdlcy51cmwoInNpbXBsZVRl
c3QuaHRtbCIpKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb1N1Y2hFbGVtZW50RXhjZXB0aW9u
KToKKyAgICAgICAgZWZfZHJpdmVyLmZpbmRfZWxlbWVudChCeS5JRCwgImZvbyIpCisgICAgYXNz
ZXJ0IGIiTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpcyB0aHJvd24iID09IGxvZy5nZXR2YWx1ZSgp
CisKKworZGVmIHRlc3Rfc2hvdWxkX3Vud3JhcF9lbGVtZW50X2FyZ3Nfd2hlbl9jYWxsaW5nX3Nj
cmlwdHMoZHJpdmVyLCBsb2csIHBhZ2VzKToKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmluZ1dl
YkRyaXZlcihkcml2ZXIsIEFic3RyYWN0RXZlbnRMaXN0ZW5lcigpKQorICAgIGVmX2RyaXZlci5n
ZXQocGFnZXMudXJsKCJqYXZhc2NyaXB0UGFnZS5odG1sIikpCisgICAgYnV0dG9uID0gZWZfZHJp
dmVyLmZpbmRfZWxlbWVudF9ieV9pZCgicGxhaW5CdXR0b24iKQorICAgIHZhbHVlID0gZWZfZHJp
dmVyLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAiYXJndW1lbnRzWzBdWydmbGliYmxlJ10gPSBh
cmd1bWVudHNbMF0uZ2V0QXR0cmlidXRlKCdpZCcpOyByZXR1cm4gYXJndW1lbnRzWzBdWydmbGli
YmxlJ10iLAorICAgICAgICBidXR0b24pCisgICAgYXNzZXJ0ICJwbGFpbkJ1dHRvbiIgPT0gdmFs
dWUKKworCitkZWYgdGVzdF9zaG91bGRfdW53cmFwX2VsZW1lbnRfYXJnc193aGVuX3N3aXRjaGlu
Z19mcmFtZXMoZHJpdmVyLCBsb2csIHBhZ2VzKToKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmlu
Z1dlYkRyaXZlcihkcml2ZXIsIEFic3RyYWN0RXZlbnRMaXN0ZW5lcigpKQorICAgIGVmX2RyaXZl
ci5nZXQocGFnZXMudXJsKCJpZnJhbWVzLmh0bWwiKSkKKyAgICBmcmFtZSA9IGVmX2RyaXZlci5m
aW5kX2VsZW1lbnRfYnlfaWQoImlmcmFtZTEiKQorICAgIGVmX2RyaXZlci5zd2l0Y2hfdG8uZnJh
bWUoZnJhbWUpCisgICAgYXNzZXJ0ICJjbGljayBtZSEiID09IGVmX2RyaXZlci5maW5kX2VsZW1l
bnRfYnlfaWQoImltYWdlQnV0dG9uIikuZ2V0X2F0dHJpYnV0ZSgiYWx0IikKKworCitkZWYgdGVz
dF9zaG91bGRfYmVfYWJsZV90b19hY2Nlc3Nfd3JhcHBlZF9pbnN0YW5jZV9mcm9tX2V2ZW50X2Nh
bGxzKGRyaXZlcik6CisKKyAgICBjbGFzcyBFdmVudExpc3RlbmVyKEFic3RyYWN0RXZlbnRMaXN0
ZW5lcik6CisgICAgICAgIGRlZiBiZWZvcmVfbmF2aWdhdGVfdG8odXJsLCBkKToKKyAgICAgICAg
ICAgIGFzc2VydCBkcml2ZXIgaXMgZAorCisgICAgZWZfZHJpdmVyID0gRXZlbnRGaXJpbmdXZWJE
cml2ZXIoZHJpdmVyLCBFdmVudExpc3RlbmVyKCkpCisgICAgd3JhcHBlZF9kcml2ZXIgPSBlZl9k
cml2ZXIud3JhcHBlZF9kcml2ZXIKKyAgICBhc3NlcnQgZHJpdmVyIGlzIHdyYXBwZWRfZHJpdmVy
CisKKworZGVmIHRlc3RfdXNpbmdfa3dhcmdzKGRyaXZlciwgcGFnZXMpOgorICAgIGVmX2RyaXZl
ciA9IEV2ZW50RmlyaW5nV2ViRHJpdmVyKGRyaXZlciwgQWJzdHJhY3RFdmVudExpc3RlbmVyKCkp
CisgICAgZWZfZHJpdmVyLmdldChwYWdlcy51cmwoImphdmFzY3JpcHRQYWdlLmh0bWwiKSkKKyAg
ICBlZl9kcml2ZXIuZ2V0X2Nvb2tpZShuYW1lPSJjb29raWVfbmFtZSIpCisgICAgZWxlbWVudCA9
IGVmX2RyaXZlci5maW5kX2VsZW1lbnRfYnlfaWQoInBsYWluQnV0dG9uIikKKyAgICBlbGVtZW50
LmdldF9hdHRyaWJ1dGUobmFtZT0iaWQiKQorCisKK2RlZiB0ZXN0X21pc3NpbmdfYXR0cmlidXRl
c19yYWlzZV9lcnJvcihkcml2ZXIsIHBhZ2VzKToKKyAgICBlZl9kcml2ZXIgPSBFdmVudEZpcmlu
Z1dlYkRyaXZlcihkcml2ZXIsIEFic3RyYWN0RXZlbnRMaXN0ZW5lcigpKQorCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgZWZfZHJpdmVyLmF0dHJpYnV0
ZV9zaG91bGRfbm90X2V4aXN0CisKKyAgICBlZl9kcml2ZXIuZ2V0KHBhZ2VzLnVybCgicmVhZE9u
bHlQYWdlLmh0bWwiKSkKKyAgICBlbGVtZW50ID0gZWZfZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9p
ZCgid3JpdGFibGVUZXh0SW5wdXQiKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0
ZUVycm9yKToKKyAgICAgICAgZWxlbWVudC5hdHRyaWJ1dGVfc2hvdWxkX25vdF9leGlzdAo=
</data>
<flag name="review"
          id="347156"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>