<?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>130951</bug_id>
          
          <creation_ts>2014-03-30 20:10:06 -0700</creation_ts>
          <short_desc>Move slow JSRegress tests out of the way so that they don&apos;t show up in run-jsc-benchmarks runs and also skip tests that are extremely long-running</short_desc>
          <delta_ts>2014-04-07 11:46:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995720</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-30 20:10:06 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995721</commentid>
    <comment_count>1</comment_count>
      <attachid>228139</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-30 20:11:47 -0700</bug_when>
    <thetext>Created attachment 228139
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995828</commentid>
    <comment_count>2</comment_count>
      <attachid>228139</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-03-31 04:07:28 -0700</bug_when>
    <thetext>Comment on attachment 228139
the patch

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

&gt; Tools/ChangeLog:3
&gt; +        Move slow JSRegress tests out of the way so that they don&apos;t show up in run-jsc-benchmarks runs and also skip tests that are extremely long-running

I haven&apos;t find this run-jsc-benchmarks script in WebKit trunk and any test skipping 
in this patch. Referencing to an Apple internal script in the changelog is confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996476</commentid>
    <comment_count>3</comment_count>
      <attachid>228139</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-04-01 15:12:52 -0700</bug_when>
    <thetext>Comment on attachment 228139
the patch

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

&gt;&gt; Tools/ChangeLog:3
&gt;&gt; +        Move slow JSRegress tests out of the way so that they don&apos;t show up in run-jsc-benchmarks runs and also skip tests that are extremely long-running
&gt; 
&gt; I haven&apos;t find this run-jsc-benchmarks script in WebKit trunk and any test skipping 
&gt; in this patch. Referencing to an Apple internal script in the changelog is confusing.

&quot;//@ skip&quot; skips a test.

I wonder, why isn&apos;t the run-jsc-benchmarks script open source?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996485</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-04-01 15:36:36 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 228139 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228139&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/ChangeLog:3
&gt; &gt;&gt; +        Move slow JSRegress tests out of the way so that they don&apos;t show up in run-jsc-benchmarks runs and also skip tests that are extremely long-running
&gt; &gt; 
&gt; &gt; I haven&apos;t find this run-jsc-benchmarks script in WebKit trunk and any test skipping 
&gt; &gt; in this patch. Referencing to an Apple internal script in the changelog is confusing.
&gt; 
&gt; &quot;//@ skip&quot; skips a test.
&gt; 
&gt; I wonder, why isn&apos;t the run-jsc-benchmarks script open source?

It&apos;s sort of open source.  See Tools/Scripts/bencher.  run-jsc-benchmarks is a customized version of this script that directly references tests that can&apos;t be landed in the WebKit repository despite being otherwise publicly available, like Kraken and JSBench.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998193</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-04-07 11:46:15 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/166877</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228139</attachid>
            <date>2014-03-30 20:11:47 -0700</date>
            <delta_ts>2014-04-01 15:12:51 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>698803</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NjQ3MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDE0LTAzLTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgTW92ZSBzbG93IEpTUmVncmVzcyB0ZXN0cyBvdXQgb2YgdGhlIHdheSBzbyB0aGF0
IHRoZXkgZG9uJ3Qgc2hvdyB1cCBpbiBydW4tanNjLWJlbmNobWFya3MgcnVucyBhbmQgYWxzbyBz
a2lwIHRlc3RzIHRoYXQgYXJlIGV4dHJlbWVseSBsb25nLXJ1bm5pbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tamF2YXNjcmlw
dGNvcmUtdGVzdHM6CisKIDIwMTQtMDMtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCB0d28gZmFpbGluZyBsYXlvdXQgdGVzdHMgb24gTW91bnRhaW4gTGlv
biBhZnRlciByMTY2NDY2LgpJbmRleDogVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUt
dGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHMJKHJldmlzaW9uIDE2NjQ2OSkKKysrIFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3Jl
LXRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksNiArMjM5LDcgQEAgaWYgKCRydW5KU0NTdHJl
c3MpIHsKICAgICAgICAgIlBlcmZvcm1hbmNlVGVzdHMvU3VuU3BpZGVyL3Rlc3RzL3N1bnNwaWRl
ci0xLjAiLAogICAgICAgICAiUGVyZm9ybWFuY2VUZXN0cy9TdW5TcGlkZXIvbm8tYXJjaGl0ZWN0
dXJlLXNwZWNpZmljLW9wdGltaXphdGlvbnMueWFtbCIsCiAgICAgICAgICJQZXJmb3JtYW5jZVRl
c3RzL1N1blNwaWRlci90ZXN0cy92OC12NiIsCisgICAgICAgICJMYXlvdXRUZXN0cy9qcy9zbG93
LXN0cmVzcy9zY3JpcHQtdGVzdHMiLAogICAgICAgICAiU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vemlsbGEvbW96aWxsYS10ZXN0cy55YW1sIiwKICAgICAgICAgIlNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MiLAogICAgICAgICAiTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMiLApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTY2NDcwKQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMwIEBACisyMDE0LTAzLTMwICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBzbG93IEpTUmVn
cmVzcyB0ZXN0cyBvdXQgb2YgdGhlIHdheSBzbyB0aGF0IHRoZXkgZG9uJ3Qgc2hvdyB1cCBpbiBy
dW4tanNjLWJlbmNobWFya3MgcnVucyBhbmQgYWxzbyBza2lwIHRlc3RzIHRoYXQgYXJlIGV4dHJl
bWVseSBsb25nLXJ1bm5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICoganMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1s
b25nLWxpdmVkLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmll
dy1hbGxvYy1sb25nLWxpdmVkLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9BcnJheUJ1ZmZl
ci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL0FycmF5
QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1
Z2UtbG9uZy1saXZlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvQXJyYXlC
dWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZnJhZ21lbnRlZC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJy
YXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1s
aXZlZC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFs
bG9jLWxvbmctbGl2ZWQtYnVmZmVyLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9BcnJheUJ1
ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLmh0bWw6CisgICAgICAgICoganMvcmVncmVz
cy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGllcy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
RmxvYXQzMkFycmF5LW1hdHJpeC1tdWx0Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9GbG9h
dDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
RmxvYXQ2NEFycmF5LWFsbG9jLWxvbmctbGl2ZWQuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNz
L0Zsb2F0NjRBcnJheS10by1JbnQxNkFycmF5LXNldC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUta2V5cy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL0hh
c2hNYXAtc3RyaW5nLXB1dC1nZXQtaXRlcmF0ZS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
SW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9J
bnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aC5odG1sOgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvSW50MTZBcnJheS1idWJibGUtc29ydC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvSW50MTZBcnJheS1sb2FkLWludC1tdWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL0lu
dDE2QXJyYXktdG8tSW50MzJBcnJheS1zZXQuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL0lu
dDMyQXJyYXktSW50OEFycmF5LXZpZXctYWxsb2MuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNz
L0ludDMyQXJyYXktYWxsb2MtaHVnZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
anMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9u
Zy1saXZlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvSW50MzJBcnJheS1h
bGxvYy1odWdlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9JbnQzMkFycmF5
LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLmh0bWw6Cisg
ICAgICAgICoganMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQuaHRtbDoKKyAg
ICAgICAgKiBqcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MuaHRtbDoKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL0ludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLmh0bWw6CisgICAgICAgICoganMvcmVn
cmVzcy9JbnQ4QXJyYXktbG9hZC13aXRoLWJ5dGVMZW5ndGguaHRtbDoKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL0ludDhBcnJheS1sb2FkLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9hZGFwdC10
by1kb3VibGUtZGl2aWRlLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9hbGlhc2VkLWFyZ3Vt
ZW50cy1nZXRieXZhbC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYWxsb2NhdGUtYmlnLW9i
amVjdC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYXJpdHktbWlzbWF0Y2gtaW5saW5pbmcu
aHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2FycmF5LWFjY2Vzcy1wb2x5bW9ycGhpYy1zdHJ1
Y3R1cmUuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2FycmF5LW5vbmFycmF5LXBvbHltb3Jo
cGljLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYXJyYXktbm9uYXJyYXktcG9s
eW1vcnBoaWMtYWNjZXNzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9hcnJheS1wcm90b3R5
cGUtZXZlcnkuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2FycmF5LXByb3RvdHlwZS1maWx0
ZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYXJyYXktcHJv
dG90eXBlLWZpbHRlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYXJyYXkt
cHJvdG90eXBlLWZvckVhY2guaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2FycmF5LXByb3Rv
dHlwZS1tYXAuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2FycmF5LXByb3RvdHlwZS1zb21l
Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9hcnJheS13aXRoLWRvdWJsZS1hZGQuaHRtbDoK
KyAgICAgICAgKiBqcy9yZWdyZXNzL2FycmF5LXdpdGgtZG91YmxlLWluY3JlbWVudC5odG1sOgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvYXJyYXktd2l0aC1kb3VibGUtbXVsLWFkZC5odG1sOgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvYXJyYXktd2l0aC1kb3VibGUtc3VtLmh0bWw6CisgICAgICAgICog
anMvcmVncmVzcy9hcnJheS13aXRoLWludDMyLWFkZC1zdWIuaHRtbDoKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2FycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bS5odG1sOgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvYXNtanNfYm9vbF9idWcuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2Fzc2ln
bi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9h
c3NpZ24tY3VzdG9tLXNldHRlci5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYmFzaWMtc2V0
Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9iaWctaW50LW11bC5odG1sOgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvYm9vbGVhbi10ZXN0Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9icmFu
Y2gtZm9sZC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYnktdmFsLWdlbmVyaWMuaHRtbDoK
KyAgICAgICAgKiBqcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWFwcGx5Lmh0bWw6CisgICAgICAgICog
anMvcmVncmVzcy9jYWxsLXNwcmVhZC1jYWxsLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9j
YWxsLXNwcmVhZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9j
YWxsLXNwcmVhZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvY2FwdHVyZWQt
YXNzaWdubWVudHMuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2Nhc3QtaW50LXRvLWRvdWJs
ZS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvY2VsbC1hcmd1bWVudC5odG1sOgorICAgICAg
ICAqIGpzL3JlZ3Jlc3MvY2ZnLXNpbXBsaWZ5Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9j
aGFpbi1jdXN0b20tZ2V0dGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2NoYWluLWN1c3RvbS1nZXR0ZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2NoYWluLWdldHRlci1hY2Nlc3MuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2Nt
cGVxLW9iai10by1vYmotb3RoZXIuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2NvbnN0YW50
LXRlc3QuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2RlbGF5LXRlYXItb2ZmLWFyZ3VtZW50
cy1zdHJpY3Rtb2RlLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9kZXN0cnVjdHVyaW5nLWFy
Z3VtZW50cy1sZW5ndGgtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMtbGVuZ3RoLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy5odG1sOgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZGVzdHJ1Y3R1cmluZy1zd2FwLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9k
aXJlY3QtYXJndW1lbnRzLWdldGJ5dmFsLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9kb3Vi
bGUtZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9k
b3VibGUtcG9sbHV0aW9uLWdldGJ5dmFsLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9kb3Vi
bGUtcG9sbHV0aW9uLXB1dGJ5b2Zmc2V0Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9kb3Vi
bGUtdG8taW50MzItdHlwZWQtYXJyYXktbm8taW5saW5lLmh0bWw6CisgICAgICAgICoganMvcmVn
cmVzcy9kb3VibGUtdG8taW50MzItdHlwZWQtYXJyYXkuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdy
ZXNzL2RvdWJsZS10by11aW50MzItdHlwZWQtYXJyYXktbm8taW5saW5lLmh0bWw6CisgICAgICAg
ICoganMvcmVncmVzcy9kb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5Lmh0bWw6CisgICAgICAg
ICoganMvcmVncmVzcy9lbXB0eS1zdHJpbmctcGx1cy1pbnQuaHRtbDoKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2Vtc2NyaXB0ZW4tY3ViZTJoYXNoLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9l
bXNjcmlwdGVuLW1lbW9wcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVn
cmVzcy9lbXNjcmlwdGVuLW1lbW9wcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZXh0ZXJuYWwtYXJndW1lbnRzLWdldGJ5dmFsLmh0bWw6CisgICAgICAgICoganMvcmVncmVz
cy9leHRlcm5hbC1hcmd1bWVudHMtcHV0Ynl2YWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNz
L2ZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UtdmFyLWluZGV4Lmh0bWw6CisgICAgICAgICoganMv
cmVncmVzcy9maXhlZC10eXBlZC1hcnJheS1zdG9yYWdlLmh0bWw6CisgICAgICAgICoganMvcmVn
cmVzcy9mb2xkLWRvdWJsZS10by1pbnQuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2ZvbGQt
c3RyaWN0LWVxLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2Zv
bGQtc3RyaWN0LWVxLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9mb3Itb2Yt
aXRlcmF0ZS1hcnJheS1lbnRyaWVzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9mb3Itb2Yt
aXRlcmF0ZS1hcnJheS1rZXlzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9mb3Itb2YtaXRl
cmF0ZS1hcnJheS12YWx1ZXMuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2Z1bmN0aW9uLWRv
dC1hcHBseS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZnVuY3Rpb24tdGVzdC5odG1sOgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvZnVuY3Rpb24td2l0aC1ldmFsLmh0bWw6CisgICAgICAgICog
anMvcmVncmVzcy9nZXQtYnktaWQtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbDoKKyAgICAgICAg
KiBqcy9yZWdyZXNzL2dldC1ieS1pZC1wcm90by1vci1zZWxmLmh0bWw6CisgICAgICAgICoganMv
cmVncmVzcy9nZXQtYnktaWQtc2VsZi1vci1wcm90by5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9n
ZXRfY2FsbGVlX21vbm9tb3JwaGljLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9nZXRfY2Fs
bGVlX3BvbHltb3JwaGljLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9nZXR0ZXIuaHRtbDoK
KyAgICAgICAgKiBqcy9yZWdyZXNzL2dsb2JhbC12YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9w
dC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2xvYmFsLXZhci1jb25zdC1pbmZlci5odG1s
OgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW11bC1kb3VibGUtb25seS5odG1sOgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvaW11bC1pbnQtb25seS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW11
bC1taXhlZC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW4tZm91ci1jYXNlcy5odG1sOgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvaW4tb25lLWNhc2UtZmFsc2UuaHRtbDoKKyAgICAgICAgKiBq
cy9yZWdyZXNzL2luLW9uZS1jYXNlLXRydWUuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2lu
LXR3by1jYXNlcy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5kZXhlZC1wcm9wZXJ0aWVz
LWluLW9iamVjdHMuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2luZmVyLWNsb3N1cmUtY29u
c3QtdGhlbi1tb3Ytbm8taW5saW5lLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbmZlci1j
bG9zdXJlLWNvbnN0LXRoZW4tbW92Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbmZlci1j
bG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGluZS5odG1sOgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXB1dC10by1zY29wZS5odG1sOgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXJlZW50ZXItbm8t
aW5saW5lLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbmZlci1jbG9zdXJlLWNvbnN0LXRo
ZW4tcmVlbnRlci5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5mZXItb25lLXRpbWUtY2xv
c3VyZS10ZW4tdmFycy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5mZXItb25lLXRpbWUt
Y2xvc3VyZS10d28tdmFycy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5mZXItb25lLXRp
bWUtY2xvc3VyZS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5mZXItb25lLXRpbWUtZGVl
cC1jbG9zdXJlLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbmxpbmUtYXJndW1lbnRzLWFj
Y2Vzcy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5saW5lLWFyZ3VtZW50cy1hbGlhc2Vk
LWFjY2Vzcy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5saW5lLWFyZ3VtZW50cy1sb2Nh
bC1lc2NhcGUuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2lubGluZS1nZXQtc2NvcGVkLXZh
ci5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5saW5lZC1wdXQtYnktaWQtdHJhbnNpdGlv
bi5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1i
eS12YWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2ludC1vci1vdGhlci1hYnMtemVyby10
aGVuLWdldC1ieS12YWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2ludC1vci1vdGhlci1h
ZGQtdGhlbi1nZXQtYnktdmFsLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbnQtb3Itb3Ro
ZXItYWRkLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbnQtb3Itb3RoZXItZGl2LXRoZW4t
Z2V0LWJ5LXZhbC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLW1heC10
aGVuLWdldC1ieS12YWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2ludC1vci1vdGhlci1t
aW4tdGhlbi1nZXQtYnktdmFsLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbnQtb3Itb3Ro
ZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW50LW9y
LW90aGVyLW11bC10aGVuLWdldC1ieS12YWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2lu
dC1vci1vdGhlci1uZWctdGhlbi1nZXQtYnktdmFsLmh0bWw6CisgICAgICAgICoganMvcmVncmVz
cy9pbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnktdmFsLmh0bWw6CisgICAgICAgICog
anMvcmVncmVzcy9pbnQtb3Itb3RoZXItc3ViLXRoZW4tZ2V0LWJ5LXZhbC5odG1sOgorICAgICAg
ICAqIGpzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLXN1Yi5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvaW50LW92ZXJmbG93LWxvY2FsLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9pbnQ1Mi1z
cGlsbC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW50ZWdlci1kaXZpZGUuaHRtbDoKKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2ludGVnZXItbW9kdWxvLmh0bWw6CisgICAgICAgICoganMvcmVn
cmVzcy9sYXJnZS1pbnQtY2FwdHVyZWQuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2xhcmdl
LWludC1uZWcuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL2xhcmdlLWludC5odG1sOgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvbG9naWNhbC1ub3QuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNz
L2xvdHMtb2YtZmllbGRzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9tYWtlLWluZGV4ZWQt
c3RvcmFnZS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbWFrZS1yb3BlLWNzZS5odG1sOgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvbWFyc2FnbGlhLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL21hcnNhZ2xpYS1sYXJnZXItaW50cy5odG1sOgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvbWFyc2FnbGlhLW9zci1lbnRyeS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvbWFyc2FnbGlhLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9tZXRob2Qt
b24tbnVtYmVyLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9taXNjLXN0cmljdC1lcS5odG1s
OgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbmVnYXRpdmUtemVyby1kaXZpZGUuaHRtbDoKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL25lZ2F0aXZlLXplcm8tbW9kdWxvLmh0bWw6CisgICAgICAgICoganMv
cmVncmVzcy9uZWdhdGl2ZS16ZXJvLW5lZ2F0ZS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
bmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9tLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcuaHRt
bDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL25ldy1hcnJheS1idWZmZXItZGVhZC5odG1sOgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvbmV3LWFycmF5LWJ1ZmZlci1wdXNoLmh0bWw6CisgICAgICAgICog
anMvcmVncmVzcy9uZXctYXJyYXktZGVhZC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbmV3
LWFycmF5LXB1c2guaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL25ldy1zcHJlYWQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbmV3LXNwcmVhZC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbnVtYmVyLXRlc3QuaHRtbDoKKyAgICAgICAg
KiBqcy9yZWdyZXNzL29iamVjdC1jbG9zdXJlLWNhbGwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdy
ZXNzL29iamVjdC10ZXN0Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9wb2x5LXN0cmljdGVx
Lmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9wb2x5bW9ycGhpYy1nZXQtYnktaWQuaHRtbDoK
KyAgICAgICAgKiBqcy9yZWdyZXNzL3BvbHltb3JwaGljLXB1dC1ieS1pZC5odG1sOgorICAgICAg
ICAqIGpzL3JlZ3Jlc3MvcG9seW1vcnBoaWMtc3RydWN0dXJlLmh0bWw6CisgICAgICAgICoganMv
cmVncmVzcy9wb2x5dmFyaWFudC1tb25vbW9ycGhpYy1nZXQtYnktaWQuaHRtbDoKKyAgICAgICAg
KiBqcy9yZWdyZXNzL3Byb3RvLWN1c3RvbS1nZXR0ZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvcHJvdG8tY3VzdG9tLWdldHRlci5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvcHJvdG8tZ2V0dGVyLWFjY2Vzcy5odG1sOgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvcHV0LWJ5LWlkLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9wdXQtYnkt
dmFsLWxhcmdlLWluZGV4LWJsYW5rLWluZGV4aW5nLXR5cGUuaHRtbDoKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3B1dC1ieS12YWwtbWFjaGluZS1pbnQuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNz
L3JhcmUtb3NyLWV4aXQtb24tbG9jYWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3JlZ2lz
dGVyLXByZXNzdXJlLWZyb20tb3NyLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuanM6IFJl
bW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZnJhZ21lbnRlZC5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9u
Zy1saXZlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9J
bnQzMkFycmF5LWFsbG9jLWh1Z2UuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2FycmF5LXByb3RvdHlwZS1maWx0
ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvY2FsbC1z
cHJlYWQuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvY2hh
aW4tY3VzdG9tLWdldHRlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGguanM6IFJlbW92ZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZW1zY3JpcHRlbi1tZW1vcHMuanM6IFJlbW92
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZm9sZC1zdHJpY3QtZXEuanM6
IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbWFyc2FnbGlhLmpz
OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25lc3RlZC1mdW5j
dGlvbi1wYXJzaW5nLXJhbmRvbS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9uZXctc3ByZWFkLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL3Byb3RvLWN1c3RvbS1nZXR0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc2ltcGxlLWN1c3RvbS1nZXR0ZXIuanM6IFJlbW92ZWQu
CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdmFyaWFkaWMtY2xvc3VyZS1jYWxs
LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2ltcGxlLWFjdGl2YXRpb24tZGVt
by5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2ltcGxlLWN1c3RvbS1nZXR0ZXItZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2ltcGxlLWN1c3RvbS1nZXR0
ZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NpbXBsZS1nZXR0ZXItYWNj
ZXNzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9zbG93LWFycmF5LXByb2ZpbGUtY29udmVy
Z2VuY2UuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nsb3ctY29udmVyZ2VuY2UuaHRtbDoK
KyAgICAgICAgKiBqcy9yZWdyZXNzL3NwYXJzZS1jb25kaXRpb25hbC5odG1sOgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc3BsaWNlLXRvLXJlbW92ZS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c3RyaW5nLWNoYXItY29kZS1hdC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3RyaW5nLWNv
bmNhdC1vYmplY3QuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0cmluZy1jb25jYXQtcGFp
ci1vYmplY3QuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0cmluZy1jb25jYXQtcGFpci1z
aW1wbGUuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0cmluZy1jb25jYXQtc2ltcGxlLmh0
bWw6CisgICAgICAgICoganMvcmVncmVzcy9zdHJpbmctY29ucy1yZXBlYXQuaHRtbDoKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3N0cmluZy1jb25zLXRvd2VyLmh0bWw6CisgICAgICAgICoganMvcmVn
cmVzcy9zdHJpbmctZXF1YWxpdHkuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0cmluZy1n
ZXQtYnktdmFsLWJpZy1jaGFyLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9zdHJpbmctZ2V0
LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWluc2FuZS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc3RyaW5nLWdldC1ieS12YWwuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0cmluZy1o
YXNoLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9zdHJpbmctbG9uZy1pZGVudC1lcXVhbGl0
eS5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3RyaW5nLXJlcGVhdC1hcml0aC5odG1sOgor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3RyaW5nLXN1Yi5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc3RyaW5nLXRlc3QuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0cmluZy12YXItZXF1
YWxpdHkuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0cnVjdHVyZS1ob2lzdC1vdmVyLXRy
YW5zaXRpb25zLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9zd2l0Y2gtY2hhci1jb25zdGFu
dC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3dpdGNoLWNoYXIuaHRtbDoKKyAgICAgICAg
KiBqcy9yZWdyZXNzL3N3aXRjaC1jb25zdGFudC5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c3dpdGNoLXN0cmluZy1iYXNpYy1iaWctdmFyLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy9z
d2l0Y2gtc3RyaW5nLWJhc2ljLWJpZy5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3dpdGNo
LXN0cmluZy1iYXNpYy12YXIuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N3aXRjaC1zdHJp
bmctYmFzaWMuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctYmlnLWxl
bmd0aC10b3dlci12YXIuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmct
bGVuZ3RoLXRvd2VyLXZhci5odG1sOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3dpdGNoLXN0cmlu
Zy1sZW5ndGgtdG93ZXIuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmct
c2hvcnQuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N3aXRjaC5odG1sOgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvdGVhci1vZmYtYXJndW1lbnRzLXNpbXBsZS5odG1sOgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvdGVhci1vZmYtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICoganMvcmVncmVzcy90
ZW1wb3JhbC1zdHJ1Y3R1cmUuaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3RvLWludDMyLWJv
b2xlYW4uaHRtbDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3VuZGVmaW5lZC10ZXN0Lmh0bWw6Cisg
ICAgICAgICoganMvcmVncmVzcy91bnByb2ZpbGVkLWxpY20uaHRtbDoKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICoganMvcmVncmVzcy92YXJpYWRpYy1jbG9zdXJlLWNhbGwuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3dlaXJkLWlubGluaW5nLWNvbnN0LXByb3AuaHRtbDoKKyAgICAg
ICAgKiBqcy9zbG93LXN0cmVzczogQWRkZWQuCisgICAgICAgICoganMvc2xvdy1zdHJlc3MvQXJy
YXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFs
bG9jLWh1Z2UtbG9uZy1saXZlZC1leHBlY3RlZC50eHQuCisgICAgICAgICoganMvc2xvdy1zdHJl
c3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5odG1sOiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxv
Yy1odWdlLWxvbmctbGl2ZWQuaHRtbC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9BcnJheUJ1
ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLWV4cGVjdGVk
LnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1JbnQ4
QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBqcy9zbG93LXN0cmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2Ut
bG9uZy1saXZlZC1mcmFnbWVudGVkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZnJhZ21l
bnRlZC5odG1sLgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL0ludDMyQXJyYXktYWxsb2MtaHVn
ZS1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJB
cnJheS1hbGxvYy1odWdlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9J
bnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL0ludDMyQXJyYXktYWxsb2Mt
aHVnZS1sb25nLWxpdmVkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
SW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuaHRtbC4KKyAgICAgICAgKiBqcy9zbG93
LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UuaHRtbC4KKyAgICAgICAgKiBqcy9z
bG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtbGFy
Z2UtbG9uZy1saXZlZC1leHBlY3RlZC50eHQuCisgICAgICAgICoganMvc2xvdy1zdHJlc3MvSW50
MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWwuCisg
ICAgICAgICoganMvc2xvdy1zdHJlc3MvYXJyYXktcHJvdG90eXBlLWZpbHRlci1leHBlY3RlZC50
eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktcHJvdG90eXBlLWZp
bHRlci1leHBlY3RlZC50eHQuCisgICAgICAgICoganMvc2xvdy1zdHJlc3MvYXJyYXktcHJvdG90
eXBlLWZpbHRlci5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5
LXByb3RvdHlwZS1maWx0ZXIuaHRtbC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9jYWxsLXNw
cmVhZC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2Fs
bC1zcHJlYWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL2NhbGwtc3By
ZWFkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2FsbC1zcHJlYWQu
aHRtbC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9jaGFpbi1jdXN0b20tZ2V0dGVyLWV4cGVj
dGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jaGFpbi1jdXN0b20t
Z2V0dGVyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9jaGFpbi1jdXN0
b20tZ2V0dGVyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2hhaW4t
Y3VzdG9tLWdldHRlci5odG1sLgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL2Rlc3RydWN0dXJp
bmctYXJndW1lbnRzLWxlbmd0aC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMtbGVuZ3RoLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGgu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kZXN0cnVjdHVyaW5nLWFy
Z3VtZW50cy1sZW5ndGguaHRtbC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9lbXNjcmlwdGVu
LW1lbW9wcy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
ZW1zY3JpcHRlbi1tZW1vcHMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNz
L2Vtc2NyaXB0ZW4tbWVtb3BzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZW1zY3JpcHRlbi1tZW1vcHMuaHRtbC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9mb2xk
LXN0cmljdC1lcS1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZm9sZC1zdHJpY3QtZXEtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNz
L2ZvbGQtc3RyaWN0LWVxLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Zm9sZC1zdHJpY3QtZXEuaHRtbC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9tYXJzYWdsaWEt
ZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21hcnNhZ2xp
YS1leHBlY3RlZC50eHQuCisgICAgICAgICoganMvc2xvdy1zdHJlc3MvbWFyc2FnbGlhLmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbWFyc2FnbGlhLmh0bWwuCisgICAg
ICAgICoganMvc2xvdy1zdHJlc3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9tLWV4cGVj
dGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rp
b24tcGFyc2luZy1yYW5kb20tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNz
L25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5odG1sLgorICAg
ICAgICAqIGpzL3Nsb3ctc3RyZXNzL25ldy1zcHJlYWQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL25ldy1zcHJlYWQtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGpzL3Nsb3ctc3RyZXNzL25ldy1zcHJlYWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9uZXctc3ByZWFkLmh0bWwuCisgICAgICAgICoganMvc2xvdy1zdHJlc3Mv
cHJvdG8tY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvcHJvdG8tY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQuCisgICAgICAgICog
anMvc2xvdy1zdHJlc3MvcHJvdG8tY3VzdG9tLWdldHRlci5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3Byb3RvLWN1c3RvbS1nZXR0ZXIuaHRtbC4KKyAgICAgICAgKiBq
cy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHM6IEFkZGVkLgorICAgICAgICAqIGpzL3Nsb3ctc3Ry
ZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxp
dmVkLmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9B
cnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmpzLgorICAgICAgICAq
IGpzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2Mt
bGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2Ut
bG9uZy1saXZlZC1mcmFnbWVudGVkLmpzLgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL3Njcmlw
dC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5qczogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdl
LWxvbmctbGl2ZWQuanMuCisgICAgICAgICoganMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL0lu
dDMyQXJyYXktYWxsb2MtaHVnZS5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdlLmpzLgorICAgICAgICAqIGpzL3Ns
b3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQu
anM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0ludDMy
QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qcy4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVz
cy9zY3JpcHQtdGVzdHMvYXJyYXktcHJvdG90eXBlLWZpbHRlci5qczogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYXJyYXktcHJvdG90eXBlLWZpbHRlci5q
cy4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQuanM6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2NhbGwtc3By
ZWFkLmpzLgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9jaGFpbi1jdXN0
b20tZ2V0dGVyLmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9jaGFpbi1jdXN0b20tZ2V0dGVyLmpzLgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL3Nj
cmlwdC10ZXN0cy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGguanM6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Rlc3RydWN0dXJpbmctYXJndW1l
bnRzLWxlbmd0aC5qcy4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvZW1z
Y3JpcHRlbi1tZW1vcHMuanM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2Vtc2NyaXB0ZW4tbWVtb3BzLmpzLgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNz
L3NjcmlwdC10ZXN0cy9mb2xkLXN0cmljdC1lcS5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZm9sZC1zdHJpY3QtZXEuanMuCisgICAgICAgICoganMv
c2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL21hcnNhZ2xpYS5qczogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbWFyc2FnbGlhLmpzLgorICAgICAgICAqIGpz
L3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy1yYW5kb20u
anM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25lc3Rl
ZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5qcy4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy9z
Y3JpcHQtdGVzdHMvbmV3LXNwcmVhZC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvbmV3LXNwcmVhZC5qcy4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVz
cy9zY3JpcHQtdGVzdHMvcHJvdG8tY3VzdG9tLWdldHRlci5qczogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcHJvdG8tY3VzdG9tLWdldHRlci5qcy4KKyAg
ICAgICAgKiBqcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvc2ltcGxlLWN1c3RvbS1nZXR0ZXIu
anM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3NpbXBs
ZS1jdXN0b20tZ2V0dGVyLmpzLgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0
cy92YXJpYWRpYy1jbG9zdXJlLWNhbGwuanM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5qcy4KKyAgICAgICAgKiBq
cy9zbG93LXN0cmVzcy9zaW1wbGUtY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQ6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2ltcGxlLWN1c3RvbS1nZXR0ZXItZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGpzL3Nsb3ctc3RyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2ltcGxlLWN1c3RvbS1nZXR0ZXIu
aHRtbC4KKyAgICAgICAgKiBqcy9zbG93LXN0cmVzcy92YXJpYWRpYy1jbG9zdXJlLWNhbGwtZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3ZhcmlhZGljLWNs
b3N1cmUtY2FsbC1leHBlY3RlZC50eHQuCisgICAgICAgICoganMvc2xvdy1zdHJlc3MvdmFyaWFk
aWMtY2xvc3VyZS1jYWxsLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
dmFyaWFkaWMtY2xvc3VyZS1jYWxsLmh0bWwuCisgICAgICAgICogcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzLgorICAgICAgICAqIHJlc291cmNlcy9yZWdyZXNzLXByZS5qczogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMuCisK
IDIwMTQtMDMtMzAgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgYSBuZXcgbGF5b3V0IHRlc3QgZm9yIGJldHRlciBjb3Zl
cmFnZSBvZiBhY2Nlc3NpYmlsaXR5ICJmb2N1c2VkIiBpbiBpbnNwZWN0b3ItcHJvdG9jb2wgRE9N
LmdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZQpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmll
dy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbGFyZ2UtbG9uZy1s
aXZlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmct
bGl2ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1s
b25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0Fy
cmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXkt
YWxsb2MtaHVnZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2
ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9BcnJheUJ1ZmZl
ci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1h
bGxvYy1odWdlLWxvbmctbGl2ZWQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2Ut
bG9uZy1saXZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWZy
YWdtZW50ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZnJhZ21lbnRl
ZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZnJhZ21lbnRl
ZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNz
L0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQK
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93
bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxh
cmdlLWxvbmctbGl2ZWQtZnJhZ21lbnRlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQt
ZnJhZ21lbnRlZC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWZyYWdtZW50
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFy
Z2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdl
LWxvbmctbGl2ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0Fy
cmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9u
IDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5
LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJy
YXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25n
LWxpdmVkLWJ1ZmZlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
QXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyLmh0bWwJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFy
cmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSAr
NCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9j
LWxvbmctbGl2ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0Fy
cmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2
OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9j
LWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9u
Zy1saXZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLmh0bWwJKHJl
dmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJy
YXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQuaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1J
bnQzMkFycmF5LWJ5dGVPZmZzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAK
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgog
PC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQzMkFycmF5
LWJ5dGVPZmZzZXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGllcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvRGF0YVZpZXctY3VzdG9tLXByb3BlcnRpZXMuaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9EYXRhVmlldy1jdXN0
b20tcHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0RhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvRmxv
YXQzMkFycmF5LW1hdHJpeC1tdWx0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9GbG9hdDMyQXJyYXktbWF0cml4LW11bHQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQor
KysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9GbG9hdDMyQXJyYXktbWF0cml4LW11bHQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9GbG9hdDMyQXJyYXktbWF0cml4LW11bHQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9GbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFy
cmF5LXNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvRmxvYXQz
MkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9GbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL0Zsb2F0MzJBcnJheS10by1GbG9hdDY0QXJyYXktc2V0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvRmxvYXQ2NEFycmF5LWFs
bG9jLWxvbmctbGl2ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L0Zsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvRmxvYXQ2NEFycmF5LWFsbG9jLWxvbmctbGl2ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9GbG9hdDY0QXJyYXktYWxsb2MtbG9uZy1saXZlZC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0Zsb2F0NjRBcnJheS10by1J
bnQxNkFycmF5LXNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
RmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSGFzaE1hcC1wdXQtZ2V0
LWl0ZXJhdGUta2V5cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
SGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUta2V5cy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL0hhc2hNYXAtcHV0LWdldC1pdGVyYXRlLWtleXMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9IYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1rZXlzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSGFzaE1hcC1wdXQtZ2V0LWl0ZXJh
dGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0hhc2hNYXAtcHV0
LWdldC1pdGVyYXRlLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5
ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9IYXNoTWFwLXB1dC1n
ZXQtaXRlcmF0ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL0hhc2hNYXAtc3RyaW5nLXB1dC1nZXQtaXRlcmF0ZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSGFzaE1hcC1zdHJpbmctcHV0LWdldC1pdGVyYXRl
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSGFzaE1h
cC1zdHJpbmctcHV0LWdldC1pdGVyYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5
IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvSGFzaE1hcC1zdHJpbmctcHV0
LWdldC1pdGVyYXRlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLmh0bWwJ
KHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50OEFycmF5LWFs
bG9jLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0lu
dDhBcnJheS1sb2FkLXdpdGgtYnl0ZUxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvSW50OEFycmF5LWxvYWQtd2l0aC1ieXRlTGVuZ3RoLmh0bWwJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50OEFycmF5LWxvYWQtd2l0
aC1ieXRlTGVuZ3RoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvSW50OEFycmF5LWxvYWQtd2l0aC1ieXRlTGVuZ3Ro
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
SW50OEFycmF5LWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L0ludDhBcnJheS1sb2FkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvSW50OEFycmF5LWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9JbnQ4QXJyYXktbG9hZC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDE2
QXJyYXktYWxsb2MtbG9uZy1saXZlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2
OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MTZBcnJheS1idWJi
bGUtc29ydC13aXRoLWJ5dGVMZW5ndGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL0ludDE2QXJyYXktYnViYmxlLXNvcnQtd2l0aC1ieXRlTGVuZ3RoLmh0bWwJKHJl
dmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MTZBcnJheS1idWJi
bGUtc29ydC13aXRoLWJ5dGVMZW5ndGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9JbnQxNkFycmF5LWJ1YmJsZS1z
b3J0LXdpdGgtYnl0ZUxlbmd0aC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL0ludDE2QXJyYXktYnViYmxlLXNvcnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDE2QXJyYXktYnViYmxlLXNvcnQuaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9JbnQxNkFycmF5LWJ1
YmJsZS1zb3J0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxi
b2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvSW50MTZBcnJheS1idWJibGUtc29ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDE2QXJyYXkt
bG9hZC1pbnQtbXVsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9J
bnQxNkFycmF5LWxvYWQtaW50LW11bC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL0ludDE2QXJyYXktbG9hZC1pbnQtbXVsLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvSW50
MTZBcnJheS1sb2FkLWludC1tdWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9JbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9JbnQxNkFycmF5LXRvLUludDMyQXJy
YXktc2V0Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
SW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkg
KzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0ludDE2QXJyYXktdG8t
SW50MzJBcnJheS1zZXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9JbnQzMkFycmF5LUludDhBcnJheS12aWV3LWFsbG9jLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9JbnQzMkFycmF5LUludDhBcnJheS12aWV3
LWFsbG9jLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
SW50MzJBcnJheS1JbnQ4QXJyYXktdmlldy1hbGxvYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0ludDMyQXJyYXkt
SW50OEFycmF5LXZpZXctYWxsb2MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1odWdl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDEwICswLDAgQEAKLUpTUmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UKLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxv
Yy1odWdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvSW50MzJB
cnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50
MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmh0bWwJKHJl
dmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxv
Yy1odWdlLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9j
LWh1Z2UtbG9uZy1saXZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtaHVnZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1odWdlLmh0bWwJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1o
dWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJh
eS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50
MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25n
LWxpdmVkCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2Ut
bG9uZy1saXZlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50
MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVk
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
SW50MzJBcnJheS1hbGxvYy1sYXJnZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJnZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1sb25nLWxpdmVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9j
LWxvbmctbGl2ZWQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9JbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9JbnQzMkFycmF5
LWFsbG9jLWxvbmctbGl2ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLmh0bWwJKHJldmlzaW9uIDE2NjQ2
OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL0ludDMyQXJyYXktYWxsb2MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9hZGFwdC10by1kb3VibGUtZGl2aWRlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hZGFwdC10by1kb3VibGUtZGl2aWRlLmh0bWwJ
KHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYWRhcHQtdG8tZG91
YmxlLWRpdmlkZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FkYXB0LXRvLWRvdWJsZS1kaXZpZGUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hbGlhc2VkLWFy
Z3VtZW50cy1nZXRieXZhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9hbGlhc2VkLWFyZ3VtZW50cy1nZXRieXZhbC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2FsaWFzZWQtYXJndW1lbnRzLWdldGJ5dmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYWxsb2NhdGUtYmlnLW9iamVjdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYWxsb2NhdGUtYmlnLW9iamVj
dC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FsbG9j
YXRlLWJpZy1vYmplY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hbGxvY2F0ZS1iaWctb2JqZWN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJpdHktbWlz
bWF0Y2gtaW5saW5pbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2FyaXR5LW1pc21hdGNoLWlubGluaW5nLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvYXJpdHktbWlzbWF0Y2gtaW5saW5pbmcuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9h
cml0eS1taXNtYXRjaC1pbmxpbmluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LWFjY2Vzcy1wb2x5bW9ycGhpYy1zdHJ1Y3R1cmUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LWFjY2Vzcy1w
b2x5bW9ycGhpYy1zdHJ1Y3R1cmUuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9hcnJheS1hY2Nlc3MtcG9seW1vcnBoaWMtc3RydWN0dXJlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvYXJyYXktYWNjZXNzLXBvbHltb3JwaGljLXN0cnVjdHVyZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LW5vbmFycmF5LXBv
bHltb3JocGljLWFjY2Vzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvYXJyYXktbm9uYXJyYXktcG9seW1vcmhwaWMtYWNjZXNzLmh0bWwJKHJldmlzaW9uIDE2NjQ2
OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktbm9uYXJyYXktcG9seW1vcmhwaWMt
YWNjZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktbm9uYXJyYXktcG9seW1vcmhwaWMtYWNjZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJy
YXktbm9uYXJyYXktcG9seW1vcnBoaWMtYWNjZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9hcnJheS1ub25hcnJheS1wb2x5bW9ycGhpYy1hY2Nlc3MuaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hcnJheS1ub25hcnJh
eS1wb2x5bW9ycGhpYy1hY2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAK
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgog
PC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1ub25hcnJheS1wb2x5bW9y
cGhpYy1hY2Nlc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9hcnJheS1wcm90b3R5cGUtZXZlcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXByb3RvdHlwZS1ldmVyeS5odG1sCShyZXZpc2lvbiAx
NjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXByb3RvdHlwZS1ldmVyeS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2FycmF5LXByb3RvdHlwZS1ldmVyeS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXByb3RvdHlwZS1maWx0ZXIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXkt
cHJvdG90eXBlLWZpbHRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktcHJvdG90eXBlLWZpbHRlci1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2FycmF5LXByb3RvdHlwZS1m
aWx0ZXIKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktcHJvdG90eXBlLWZpbHRlci5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktcHJvdG90eXBl
LWZpbHRlci5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2FycmF5LXByb3RvdHlwZS1maWx0ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCww
IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1wcm90
b3R5cGUtZmlsdGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvYXJyYXktcHJvdG90eXBlLWZvckVhY2guaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXByb3RvdHlwZS1mb3JFYWNoLmh0bWwJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktcHJvdG90eXBlLWZv
ckVhY2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1wcm90b3R5cGUtZm9yRWFjaC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXByb3RvdHlw
ZS1tYXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXBy
b3RvdHlwZS1tYXAuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9hcnJheS1wcm90b3R5cGUtbWFwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5
IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktcHJvdG90eXBlLW1h
cC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2FycmF5LXByb3RvdHlwZS1zb21lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9hcnJheS1wcm90b3R5cGUtc29tZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXByb3RvdHlwZS1zb21lLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJyYXktcHJvdG90eXBlLXNvbWUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9hcnJheS13aXRoLWRvdWJsZS1hZGQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXdpdGgtZG91YmxlLWFkZC5odG1sCShy
ZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXdpdGgtZG91
YmxlLWFkZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXdpdGgtZG91YmxlLWFkZC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXdpdGgtZG91
YmxlLWluY3JlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
YXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktd2l0aC1kb3VibGUtbXVsLWFk
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktd2l0aC1k
b3VibGUtbXVsLWFkZC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2FycmF5LXdpdGgtZG91YmxlLW11bC1hZGQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS13aXRo
LWRvdWJsZS1tdWwtYWRkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYXJyYXktd2l0aC1kb3VibGUtc3VtLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9hcnJheS13aXRoLWRvdWJsZS1zdW0uaHRtbAkocmV2aXNp
b24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hcnJheS13aXRoLWRvdWJsZS1z
dW0uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9hcnJheS13aXRoLWRvdWJsZS1zdW0uanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hcnJheS13aXRoLWludDMyLWFk
ZC1zdWIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2FycmF5LXdp
dGgtaW50MzItYWRkLXN1Yi5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2FycmF5LXdpdGgtaW50MzItYWRkLXN1Yi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXdp
dGgtaW50MzItYWRkLXN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2FycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktd2l0aC1pbnQzMi1vci1kb3Vi
bGUtc3VtLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
YXJyYXktd2l0aC1pbnQzMi1vci1kb3VibGUtc3VtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktd2l0aC1p
bnQzMi1vci1kb3VibGUtc3VtLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvYXNtanNfYm9vbF9idWcuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2FzbWpzX2Jvb2xfYnVnLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXNtanNfYm9vbF9idWcuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9h
c21qc19ib29sX2J1Zy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5
bW9ycGhpYy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXNzaWduLWN1
c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9hc3NpZ24tY3VzdG9tLXNldHRlci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hc3NpZ24tY3VzdG9t
LXNldHRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmFzaWMtc2V0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iYXNpYy1zZXQuaHRtbAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iYXNpYy1zZXQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9iYXNpYy1zZXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9iaWctaW50LW11bC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYmlnLWludC1tdWwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9iaWctaW50LW11bC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZy1pbnQtbXVs
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Ym9vbGVhbi10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9i
b29sZWFuLXRlc3QuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9ib29sZWFuLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9o
ZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9ib29sZWFuLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9icmFuY2gtZm9sZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYnJhbmNoLWZvbGQuaHRt
bAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9icmFuY2gtZm9s
ZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2JyYW5jaC1mb2xkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYnktdmFsLWdlbmVyaWMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2J5LXZhbC1nZW5lcmljLmh0bWwJKHJldmlzaW9u
IDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYnktdmFsLWdlbmVyaWMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9ieS12YWwtZ2VuZXJpYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWFwcGx5Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYWxsLXNwcmVhZC1hcHBseS5odG1sCShyZXZpc2lv
biAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWFwcGx5Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQtY2FsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWNhbGwuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWNhbGwuaHRtbAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYWxsLXNwcmVhZC1jYWxs
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQtY2FsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYWxsLXNw
cmVhZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdy
ZXNzL2NhbGwtc3ByZWFkCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5v
IGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYWxsLXNwcmVhZC5odG1s
CShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYXB0dXJlZC1hc3NpZ25tZW50cy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2FwdHVyZWQtYXNzaWdu
bWVudHMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9j
YXB0dXJlZC1hc3NpZ25tZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2NhcHR1cmVkLWFzc2lnbm1lbnRzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2Fz
dC1pbnQtdG8tZG91YmxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9jYXN0LWludC10by1kb3VibGUuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9jYXN0LWludC10by1kb3VibGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jYXN0LWludC10
by1kb3VibGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9jZWxsLWFyZ3VtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9jZWxsLWFyZ3VtZW50Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvY2VsbC1hcmd1bWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkg
KzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2NlbGwtYXJndW1lbnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9j
Zmctc2ltcGxpZnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Nm
Zy1zaW1wbGlmeS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2NmZy1zaW1wbGlmeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2NmZy1zaW1wbGlmeS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NoYWluLWN1c3RvbS1n
ZXR0ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Y2hhaW4tY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2hhaW4tY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2NoYWluLWN1c3RvbS1nZXR0
ZXIKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2hhaW4tY3VzdG9tLWdldHRlci5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2hhaW4tY3VzdG9tLWdldHRlci5o
dG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NoYWluLWN1
c3RvbS1nZXR0ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jaGFpbi1jdXN0b20tZ2V0dGVyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY2hh
aW4tZ2V0dGVyLWFjY2Vzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvY2hhaW4tZ2V0dGVyLWFjY2Vzcy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2NoYWluLWdldHRlci1hY2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jaGFpbi1n
ZXR0ZXItYWNjZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvY21wZXEtb2JqLXRvLW9iai1vdGhlci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvY21wZXEtb2JqLXRvLW9iai1vdGhlci5odG1sCShyZXZpc2lv
biAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NtcGVxLW9iai10by1vYmotb3Ro
ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9jbXBlcS1vYmotdG8tb2JqLW90aGVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY29uc3RhbnQtdGVzdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvY29uc3RhbnQtdGVzdC5odG1s
CShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NvbnN0YW50LXRl
c3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9jb25zdGFudC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZGVsYXktdGVhci1vZmYtYXJndW1lbnRzLXN0
cmljdG1vZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RlbGF5
LXRlYXItb2ZmLWFyZ3VtZW50cy1zdHJpY3Rtb2RlLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZGVsYXktdGVhci1vZmYtYXJndW1lbnRzLXN0cmljdG1v
ZGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9kZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Rlc3Ry
dWN0dXJpbmctYXJndW1lbnRzLWxlbmd0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGgtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Rlc3Ry
dWN0dXJpbmctYXJndW1lbnRzLWxlbmd0aC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2Rlc3RydWN0dXJpbmctYXJndW1lbnRzLWxlbmd0aAot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3du
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRl
eDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGgu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Rlc3RydWN0dXJpbmct
YXJndW1lbnRzLWxlbmd0aC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2Rlc3RydWN0dXJpbmctYXJndW1lbnRzLWxlbmd0aC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2Rlc3RydWN0dXJpbmctYXJndW1lbnRzLWxlbmd0aC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Rlc3RydWN0dXJpbmctYXJndW1l
bnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kZXN0cnVjdHVy
aW5nLWFyZ3VtZW50cy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2Rlc3RydWN0dXJpbmctYXJndW1lbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGVzdHJ1Y3R1cmlu
Zy1hcmd1bWVudHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9kZXN0cnVjdHVyaW5nLXN3YXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2Rlc3RydWN0dXJpbmctc3dhcC5odG1sCShyZXZpc2lvbiAxNjY0Njkp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Rlc3RydWN0dXJpbmctc3dhcC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2Rlc3RydWN0dXJpbmctc3dhcC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2
YWwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kaXJl
Y3QtYXJndW1lbnRzLWdldGJ5dmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGlyZWN0LWFyZ3VtZW50cy1nZXRi
eXZhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2RvdWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RvdWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMuaHRt
bAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kb3VibGUtZ2V0
LWJ5LXZhbC1vdXQtb2YtYm91bmRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG91YmxlLWdldC1ieS12YWwtb3V0
LW9mLWJvdW5kcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2RvdWJsZS1wb2xsdXRpb24tZ2V0Ynl2YWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RvdWJsZS1wb2xsdXRpb24tZ2V0Ynl2YWwuaHRtbAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kb3VibGUtcG9sbHV0aW9u
LWdldGJ5dmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxi
b2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RvdWJsZS1w
b2xsdXRpb24tcHV0YnlvZmZzZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2RvdWJsZS1wb2xsdXRpb24tcHV0YnlvZmZzZXQuaHRtbAkocmV2aXNpb24gMTY2NDY5
KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kb3VibGUtcG9sbHV0aW9uLXB1dGJ5b2Zmc2V0
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZG91YmxlLXBvbGx1dGlvbi1wdXRieW9mZnNldC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RvdWJsZS10by1pbnQz
Mi10eXBlZC1hcnJheS1uby1pbmxpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2RvdWJsZS10by1pbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUuaHRtbAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9kb3VibGUtdG8taW50MzIt
dHlwZWQtYXJyYXktbm8taW5saW5lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG91YmxlLXRvLWludDMyLXR5cGVk
LWFycmF5LW5vLWlubGluZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2RvdWJsZS10by1pbnQzMi10eXBlZC1hcnJheS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZG91Ymxl
LXRvLWludDMyLXR5cGVkLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG91YmxlLXRvLWludDMyLXR5cGVk
LWFycmF5LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZG91YmxlLXRvLXVpbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RvdWJsZS10by11aW50MzItdHlwZWQtYXJy
YXktbm8taW5saW5lLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZG91YmxlLXRvLXVpbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9kb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2RvdWJsZS10by11aW50MzIt
dHlwZWQtYXJyYXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Rv
dWJsZS10by11aW50MzItdHlwZWQtYXJyYXkuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9kb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvZG91YmxlLXRvLXVpbnQzMi10eXBlZC1hcnJheS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2VtcHR5LXN0cmluZy1wbHVzLWludC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZW1wdHktc3RyaW5nLXBs
dXMtaW50Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
ZW1wdHktc3RyaW5nLXBsdXMtaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZW1wdHktc3RyaW5nLXBsdXMtaW50
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
ZW1zY3JpcHRlbi1jdWJlMmhhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2Vtc2NyaXB0ZW4tY3ViZTJoYXNoLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZW1zY3JpcHRlbi1jdWJlMmhhc2guaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9l
bXNjcmlwdGVuLWN1YmUyaGFzaC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9lbXNjcmlw
dGVuLW1lbW9wcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAot
SlNSZWdyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Vt
c2NyaXB0ZW4tbWVtb3BzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9lbXNjcmlwdGVuLW1lbW9wcy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZW1z
Y3JpcHRlbi1tZW1vcHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9leHRlcm5hbC1hcmd1bWVudHMtZ2V0Ynl2YWwuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2V4dGVybmFsLWFyZ3VtZW50cy1nZXRieXZhbC5o
dG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2V4dGVybmFs
LWFyZ3VtZW50cy1nZXRieXZhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2V4dGVybmFsLWFyZ3VtZW50cy1nZXRi
eXZhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2V4dGVybmFsLWFyZ3VtZW50cy1wdXRieXZhbC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZXh0ZXJuYWwtYXJndW1lbnRzLXB1dGJ5dmFsLmh0bWwJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZXh0ZXJuYWwtYXJndW1lbnRz
LXB1dGJ5dmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxi
b2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZXh0ZXJuYWwtYXJndW1lbnRzLXB1dGJ5dmFsLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZml4ZWQt
dHlwZWQtYXJyYXktc3RvcmFnZS12YXItaW5kZXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2ZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UtdmFyLWluZGV4Lmh0bWwJ
KHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZml4ZWQtdHlwZWQt
YXJyYXktc3RvcmFnZS12YXItaW5kZXguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9maXhlZC10eXBlZC1hcnJheS1z
dG9yYWdlLXZhci1pbmRleC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2ZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UuaHRt
bAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9maXhlZC10eXBl
ZC1hcnJheS1zdG9yYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZml4ZWQtdHlwZWQtYXJyYXktc3RvcmFnZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Zv
bGQtZG91YmxlLXRvLWludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZm9sZC1kb3VibGUtdG8taW50Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZm9sZC1kb3VibGUtdG8taW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZm9sZC1kb3Vi
bGUtdG8taW50LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZm9sZC1zdHJpY3QtZXEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZm9sZC1zdHJpY3QtZXEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
NjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ZvbGQtc3RyaWN0LWVxLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZm9sZC1zdHJp
Y3QtZXEKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZm9sZC1zdHJpY3QtZXEuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ZvbGQtc3RyaWN0LWVxLmh0bWwJKHJl
dmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZm9sZC1zdHJpY3QtZXEu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9mb2xkLXN0cmljdC1lcS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Zvci1vZi1pdGVyYXRlLWFycmF5
LWVudHJpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Zvci1v
Zi1pdGVyYXRlLWFycmF5LWVudHJpZXMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9mb3Itb2YtaXRlcmF0ZS1hcnJheS1lbnRyaWVzLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZm9yLW9mLWl0ZXJhdGUtYXJyYXktZW50cmllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Zvci1vZi1pdGVyYXRlLWFycmF5LWtleXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Zvci1vZi1pdGVyYXRl
LWFycmF5LWtleXMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9mb3Itb2YtaXRlcmF0ZS1hcnJheS1rZXlzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZm9yLW9mLWl0ZXJh
dGUtYXJyYXkta2V5cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2Zvci1vZi1pdGVyYXRlLWFycmF5LXZhbHVlcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZm9yLW9mLWl0ZXJhdGUtYXJyYXktdmFsdWVzLmh0
bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZm9yLW9mLWl0
ZXJhdGUtYXJyYXktdmFsdWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZm9yLW9mLWl0ZXJhdGUtYXJyYXktdmFs
dWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZnVuY3Rpb24tZG90LWFwcGx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9mdW5jdGlvbi1kb3QtYXBwbHkuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9mdW5jdGlvbi1kb3QtYXBwbHkuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9mdW5j
dGlvbi1kb3QtYXBwbHkuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9mdW5jdGlvbi10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9mdW5jdGlvbi10ZXN0Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZnVuY3Rpb24tdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Z1bmN0aW9u
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9mdW5jdGlvbi13aXRoLWV2YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2Z1bmN0aW9uLXdpdGgtZXZhbC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Z1bmN0aW9uLXdpdGgtZXZhbC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Z1
bmN0aW9uLXdpdGgtZXZhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS1pZC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LWlkLWNo
YWluLWZyb20tdHJ5LWJsb2NrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LWlkLXByb3RvLW9yLXNlbGYuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS1pZC1wcm90by1vci1zZWxmLmh0bWwJ
KHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LWlkLXBy
b3RvLW9yLXNlbGYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktaWQtcHJvdG8tb3Itc2VsZi5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS1p
ZC1zZWxmLW9yLXByb3RvLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktaWQtc2VsZi1vci1wcm90by5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS1pZC1zZWxmLW9yLXByb3RvLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Z2V0LWJ5LWlkLXNlbGYtb3ItcHJvdG8uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtb3V0LW9mLWJvdW5k
cy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtb3V0LW9mLWJvdW5kcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtb3V0LW9mLWJvdW5k
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldF9jYWxsZWVfbW9ub21vcnBoaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldF9jYWxsZWVfbW9ub21vcnBoaWMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQor
KysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXRfY2FsbGVlX21vbm9tb3JwaGljLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvZ2V0X2NhbGxlZV9tb25vbW9ycGhpYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldF9jYWxsZWVfcG9seW1vcnBoaWMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldF9jYWxsZWVfcG9seW1vcnBo
aWMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXRf
Y2FsbGVlX3BvbHltb3JwaGljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0X2NhbGxlZV9wb2x5bW9ycGhpYy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dHRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0dGVyLmh0
bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0dGVyLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZ2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2xvYmFsLXZhci1jb25zdC1pbmZlci1maXJlLWZyb20tb3B0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nbG9iYWwtdmFyLWNvbnN0
LWluZmVyLWZpcmUtZnJvbS1vcHQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nbG9iYWwtdmFyLWNvbnN0LWluZmVyLWZpcmUtZnJvbS1vcHQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9nbG9iYWwtdmFyLWNvbnN0LWluZmVyLWZpcmUtZnJvbS1vcHQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nbG9iYWwtdmFyLWNv
bnN0LWluZmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nbG9i
YWwtdmFyLWNvbnN0LWluZmVyLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2xvYmFsLXZhci1jb25zdC1pbmZlci5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dsb2JhbC12
YXItY29uc3QtaW5mZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9pbXVsLWRvdWJsZS1vbmx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9pbXVsLWRvdWJsZS1vbmx5Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW11bC1kb3VibGUtb25seS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2ltdWwtZG91YmxlLW9ubHkuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9pbXVsLWludC1vbmx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9pbXVsLWludC1vbmx5Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW11bC1pbnQtb25seS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2ltdWwt
aW50LW9ubHkuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9pbXVsLW1peGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9pbXVsLW1peGVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvaW11bC1taXhlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2ltdWwtbWl4ZWQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbi1mb3VyLWNhc2Vz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbi1mb3VyLWNhc2Vz
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW4tZm91
ci1jYXNlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luLWZvdXItY2FzZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbi1vbmUtY2FzZS1mYWxzZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW4tb25lLWNhc2UtZmFsc2Uu
aHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbi1vbmUt
Y2FzZS1mYWxzZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luLW9uZS1jYXNlLWZhbHNlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW4tb25lLWNhc2UtdHJ1
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW4tb25lLWNhc2Ut
dHJ1ZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2lu
LW9uZS1jYXNlLXRydWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbi1vbmUtY2FzZS10cnVlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW4tdHdvLWNhc2Vz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbi10d28tY2FzZXMu
aHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbi10d28t
Y2FzZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9pbi10d28tY2FzZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmRleGVkLXByb3BlcnRpZXMtaW4tb2Jq
ZWN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5kZXhlZC1w
cm9wZXJ0aWVzLWluLW9iamVjdHMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9pbmRleGVkLXByb3BlcnRpZXMtaW4tb2JqZWN0cy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2luZGV4ZWQtcHJvcGVydGllcy1pbi1vYmplY3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1v
di1uby1pbmxpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2lu
ZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3Ytbm8taW5saW5lLmh0bWwJKHJldmlzaW9uIDE2NjQ2
OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1v
di1uby1pbmxpbmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tbW92LW5v
LWlubGluZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2luZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3YuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3YuaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmZlci1jbG9zdXJl
LWNvbnN0LXRoZW4tbW92Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1v
di5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2luZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2NvcGUtbm8taW5saW5lLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmZlci1jbG9zdXJlLWNvbnN0LXRo
ZW4tcHV0LXRvLXNjb3BlLW5vLWlubGluZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2luZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2NvcGUt
bm8taW5saW5lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxi
b2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXB1dC10by1z
Y29wZS1uby1pbmxpbmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9pbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmZlci1jbG9zdXJlLWNvbnN0
LXRoZW4tcHV0LXRvLXNjb3BlLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXB1dC10by1zY29wZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2luZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2NvcGUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmZlci1jbG9zdXJl
LWNvbnN0LXRoZW4tcmVlbnRlci1uby1pbmxpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2luZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1yZWVudGVyLW5vLWlubGlu
ZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luZmVy
LWNsb3N1cmUtY29uc3QtdGhlbi1yZWVudGVyLW5vLWlubGluZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luZmVy
LWNsb3N1cmUtY29uc3QtdGhlbi1yZWVudGVyLW5vLWlubGluZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luZmVyLWNsb3N1cmUtY29uc3Qt
dGhlbi1yZWVudGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9p
bmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcmVlbnRlci5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1yZWVudGVy
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXJlZW50ZXIuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmZlci1vbmUt
dGltZS1jbG9zdXJlLXRlbi12YXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9pbmZlci1vbmUtdGltZS1jbG9zdXJlLXRlbi12YXJzLmh0bWwJKHJldmlzaW9uIDE2
NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5mZXItb25lLXRpbWUtY2xvc3VyZS10
ZW4tdmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luZmVyLW9uZS10aW1lLWNsb3N1cmUtdGVuLXZhcnMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmZl
ci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9pbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzLmh0bWwJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5mZXItb25lLXRpbWUtY2xv
c3VyZS10d28tdmFycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luZmVyLW9uZS10aW1lLWNsb3N1cmUtdHdvLXZh
cnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9pbmZlci1vbmUtdGltZS1jbG9zdXJlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9pbmZlci1vbmUtdGltZS1jbG9zdXJlLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5mZXItb25lLXRpbWUtY2xvc3VyZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2luZmVyLW9uZS10aW1lLWNsb3N1cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmZlci1vbmUtdGltZS1kZWVwLWNsb3N1cmUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luZmVyLW9uZS10aW1l
LWRlZXAtY2xvc3VyZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2luZmVyLW9uZS10aW1lLWRlZXAtY2xvc3VyZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luZmVyLW9u
ZS10aW1lLWRlZXAtY2xvc3VyZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2lubGluZS1hcmd1bWVudHMtYWNjZXNzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmxpbmUtYXJndW1lbnRzLWFjY2Vzcy5odG1s
CShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2lubGluZS1hcmd1
bWVudHMtYWNjZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5saW5lLWFyZ3VtZW50cy1hY2Nlc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmxpbmUt
YXJndW1lbnRzLWFsaWFzZWQtYWNjZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9pbmxpbmUtYXJndW1lbnRzLWFsaWFzZWQtYWNjZXNzLmh0bWwJKHJldmlzaW9u
IDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5saW5lLWFyZ3VtZW50cy1hbGlh
c2VkLWFjY2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lubGluZS1hcmd1bWVudHMtYWxpYXNlZC1hY2Nlc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9p
bmxpbmUtYXJndW1lbnRzLWxvY2FsLWVzY2FwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvaW5saW5lLWFyZ3VtZW50cy1sb2NhbC1lc2NhcGUuaHRtbAkocmV2aXNp
b24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmxpbmUtYXJndW1lbnRzLWxv
Y2FsLWVzY2FwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lubGluZS1hcmd1bWVudHMtbG9jYWwtZXNjYXBlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5s
aW5lLWdldC1zY29wZWQtdmFyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9pbmxpbmUtZ2V0LXNjb3BlZC12YXIuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9pbmxpbmUtZ2V0LXNjb3BlZC12YXIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9p
bmxpbmUtZ2V0LXNjb3BlZC12YXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9pbmxpbmVkLXB1dC1ieS1pZC10cmFuc2l0aW9uLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbmxpbmVkLXB1dC1ieS1pZC10cmFu
c2l0aW9uLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
aW5saW5lZC1wdXQtYnktaWQtdHJhbnNpdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkg
KzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lubGluZWQtcHV0LWJ5
LWlkLXRyYW5zaXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9pbnQ1Mi1zcGlsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvaW50NTItc3BpbGwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9pbnQ1Mi1zcGlsbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkg
KzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2ludDUyLXNwaWxsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50
LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1hYnMtdGhlbi1nZXQtYnktdmFsLmh0bWwJKHJl
dmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLWFi
cy10aGVuLWdldC1ieS12YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9o
ZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnQtb3Itb3RoZXItYWJzLXRoZW4tZ2V0
LWJ5LXZhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2ludC1vci1vdGhlci1hYnMtemVyby10aGVuLWdldC1ieS12YWwuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1hYnMtemVyby10aGVu
LWdldC1ieS12YWwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9pbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
aW50LW9yLW90aGVyLWFicy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1hZGQtdGhl
bi1nZXQtYnktdmFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9p
bnQtb3Itb3RoZXItYWRkLXRoZW4tZ2V0LWJ5LXZhbC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFs
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvaW50LW9yLW90aGVyLWFkZC10aGVuLWdldC1ieS12YWwuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3Itb3Ro
ZXItYWRkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3It
b3RoZXItYWRkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvaW50LW9yLW90aGVyLWFkZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2ludC1vci1vdGhlci1hZGQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3It
b3RoZXItZGl2LXRoZW4tZ2V0LWJ5LXZhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLWRpdi10aGVuLWdldC1ieS12YWwuaHRtbAkocmV2aXNp
b24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3Itb3RoZXItZGl2LXRo
ZW4tZ2V0LWJ5LXZhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2ludC1vci1vdGhlci1kaXYtdGhlbi1nZXQtYnkt
dmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvaW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12YWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1tYXgtdGhlbi1nZXQtYnktdmFsLmh0
bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90
aGVyLW1heC10aGVuLWdldC1ieS12YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnQtb3Itb3RoZXItbWF4LXRo
ZW4tZ2V0LWJ5LXZhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1taW4tdGhlbi1nZXQtYnktdmFsLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3Itb3RoZXItbWluLXRoZW4tZ2V0
LWJ5LXZhbC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2ludC1vci1vdGhlci1taW4tdGhlbi1nZXQtYnktdmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW50LW9yLW90
aGVyLW1pbi10aGVuLWdldC1ieS12YWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3Itb3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLW1v
ZC10aGVuLWdldC1ieS12YWwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9pbnQtb3Itb3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2ludC1vci1vdGhlci1tb2QtdGhlbi1nZXQtYnktdmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLW11bC10aGVuLWdl
dC1ieS12YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1v
ci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLW11bC10aGVuLWdldC1ieS12YWwuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9pbnQtb3Itb3RoZXItbXVsLXRoZW4tZ2V0LWJ5LXZhbC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1u
ZWctdGhlbi1nZXQtYnktdmFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9pbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbC5odG1sCShyZXZpc2lvbiAxNjY0
NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1vci1vdGhlci1uZWctdGhlbi1nZXQt
YnktdmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvaW50LW9yLW90aGVyLW5lZy10aGVuLWdldC1ieS12YWwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQt
b3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnktdmFsLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnktdmFs
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9y
LW90aGVyLW5lZy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2ludC1vci1vdGhl
ci1uZWctemVyby10aGVuLWdldC1ieS12YWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3Itb3RoZXItc3ViLXRoZW4tZ2V0LWJ5LXZh
bC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVy
LXN1Yi10aGVuLWdldC1ieS12YWwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9pbnQtb3Itb3RoZXItc3ViLXRoZW4tZ2V0LWJ5LXZhbC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2ludC1vci1vdGhlci1zdWItdGhlbi1nZXQtYnktdmFsLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLXN1Yi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW9yLW90aGVyLXN1Yi5o
dG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludC1vci1v
dGhlci1zdWIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnQtb3Itb3RoZXItc3ViLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50LW92ZXJmbG93LWxvY2Fs
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnQtb3ZlcmZsb3ct
bG9jYWwuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9p
bnQtb3ZlcmZsb3ctbG9jYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9o
ZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnQtb3ZlcmZsb3ctbG9jYWwuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnRlZ2Vy
LWRpdmlkZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50ZWdl
ci1kaXZpZGUuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9pbnRlZ2VyLWRpdmlkZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2ludGVnZXItZGl2aWRlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50ZWdlci1tb2R1
bG8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2ludGVnZXItbW9k
dWxvLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW50
ZWdlci1tb2R1bG8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnRlZ2VyLW1vZHVsby5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC1jYXB0dXJl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2UtaW50LWNh
cHR1cmVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
bGFyZ2UtaW50LWNhcHR1cmVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbGFyZ2UtaW50LWNhcHR1cmVkLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2Ut
aW50LW5lZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2Ut
aW50LW5lZy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2xhcmdlLWludC1uZWcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9sYXJnZS1pbnQtbmVnLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2UtaW50Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQuaHRtbAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9sYXJnZS1pbnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9sb2dpY2FsLW5vdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvbG9naWNhbC1ub3QuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9sb2dpY2FsLW5vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2xvZ2ljYWwtbm90
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
bG90cy1vZi1maWVsZHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2xvdHMtb2YtZmllbGRzLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvbG90cy1vZi1maWVsZHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9sb3RzLW9mLWZpZWxkcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21ha2Ut
aW5kZXhlZC1zdG9yYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9tYWtlLWluZGV4ZWQtc3RvcmFnZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL21ha2UtaW5kZXhlZC1zdG9yYWdlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbWFrZS1p
bmRleGVkLXN0b3JhZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9tYWtlLXJvcGUtY3NlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9tYWtlLXJvcGUtY3NlLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvbWFrZS1yb3BlLWNzZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL21ha2Utcm9w
ZS1jc2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9tYXJzYWdsaWEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvbWFyc2FnbGlhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9tYXJzYWdsaWEKLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvbWFyc2FnbGlhLWxhcmdlci1pbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtbGFyZ2VyLWludHMuaHRtbAkocmV2aXNpb24gMTY2
NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtbGFyZ2VyLWludHMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9tYXJzYWdsaWEtbGFyZ2VyLWludHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtb3NyLWVudHJ5Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtb3NyLWVudHJ5
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbWFyc2Fn
bGlhLW9zci1lbnRyeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL21hcnNhZ2xpYS1vc3ItZW50cnkuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21hcnNhZ2xpYS5odG1s
CShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21hcnNhZ2xpYS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL21hcnNhZ2xpYS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21ldGhvZC1vbi1udW1iZXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21ldGhvZC1vbi1udW1iZXIuaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tZXRob2Qtb24tbnVt
YmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvbWV0aG9kLW9uLW51bWJlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21pc2Mtc3RyaWN0LWVxLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9taXNjLXN0cmljdC1lcS5odG1sCShy
ZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21pc2Mtc3RyaWN0LWVx
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvbWlzYy1zdHJpY3QtZXEuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZWdhdGl2ZS16ZXJvLWRpdmlkZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmVnYXRpdmUtemVyby1kaXZpZGUu
aHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZWdhdGl2
ZS16ZXJvLWRpdmlkZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL25lZ2F0aXZlLXplcm8tZGl2aWRlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmVnYXRpdmUt
emVyby1tb2R1bG8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL25l
Z2F0aXZlLXplcm8tbW9kdWxvLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvbmVnYXRpdmUtemVyby1tb2R1bG8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9uZWdhdGl2ZS16
ZXJvLW1vZHVsby5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL25lZ2F0aXZlLXplcm8tbmVnYXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9uZWdhdGl2ZS16ZXJvLW5lZ2F0ZS5odG1sCShyZXZpc2lvbiAxNjY0
NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL25lZ2F0aXZlLXplcm8tbmVnYXRlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvbmVnYXRpdmUtemVyby1uZWdhdGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy1yYW5k
b20tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmVz
dGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9tLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5
KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy1yYW5k
b20tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVz
cy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy1yYW5kb20KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9tLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy1yYW5kb20uaHRtbAko
cmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rp
b24tcGFyc2luZy1yYW5kb20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9uZXN0ZWQtZnVuY3Rpb24t
cGFyc2luZy1yYW5kb20uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcuaHRtbAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24t
cGFyc2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmV3LWFycmF5LWJ1
ZmZlci1kZWFkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXct
YXJyYXktYnVmZmVyLWRlYWQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9uZXctYXJyYXktYnVmZmVyLWRlYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9uZXctYXJyYXkt
YnVmZmVyLWRlYWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9uZXctYXJyYXktYnVmZmVyLXB1c2guaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL25ldy1hcnJheS1idWZmZXItcHVzaC5odG1sCShyZXZpc2lvbiAx
NjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL25ldy1hcnJheS1idWZmZXItcHVzaC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL25ldy1hcnJheS1idWZmZXItcHVzaC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL25ldy1hcnJheS1kZWFkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctYXJyYXktZGVhZC5odG1sCShy
ZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL25ldy1hcnJheS1kZWFk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvbmV3LWFycmF5LWRlYWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctYXJyYXktcHVzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmV3LWFycmF5LXB1c2guaHRtbAkocmV2aXNp
b24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctYXJyYXktcHVzaC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL25ldy1hcnJheS1wdXNoLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmV3LXNwcmVhZC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctc3ByZWFkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctc3ByZWFkLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvbmV3LXNw
cmVhZAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24g
dGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctc3ByZWFkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctc3ByZWFkLmh0bWwJKHJldmlzaW9uIDE2
NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmV3LXNwcmVhZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL25ldy1zcHJlYWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9udW1iZXItdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvbnVtYmVyLXRlc3QuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9udW1iZXItdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL251bWJlci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvb2JqZWN0LWNsb3N1cmUtY2FsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvb2JqZWN0LWNsb3N1cmUtY2FsbC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1jbG9zdXJlLWNhbGwuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9v
YmplY3QtY2xvc3VyZS1jYWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL29iamVjdC10ZXN0Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9vYmplY3QtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3BvbHktc3RyaWN0ZXEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3BvbHktc3RyaWN0ZXEuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9wb2x5LXN0cmljdGVxLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9seS1zdHJpY3RlcS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3BvbHltb3Jw
aGljLWdldC1ieS1pZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
cG9seW1vcnBoaWMtZ2V0LWJ5LWlkLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvcG9seW1vcnBoaWMtZ2V0LWJ5LWlkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9seW1v
cnBoaWMtZ2V0LWJ5LWlkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvcG9seW1vcnBoaWMtcHV0LWJ5LWlkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9wb2x5bW9ycGhpYy1wdXQtYnktaWQuaHRtbAkocmV2aXNp
b24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wb2x5bW9ycGhpYy1wdXQtYnkt
aWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9wb2x5bW9ycGhpYy1wdXQtYnktaWQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wb2x5bW9ycGhpYy1zdHJ1Y3R1
cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3BvbHltb3JwaGlj
LXN0cnVjdHVyZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3BvbHltb3JwaGljLXN0cnVjdHVyZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQs
OSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BvbHltb3JwaGljLXN0cnVj
dHVyZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3BvbHl2YXJpYW50LW1vbm9tb3JwaGljLWdldC1ieS1pZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcG9seXZhcmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlk
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcG9seXZh
cmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSAr
NCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9seXZhcmlhbnQtbW9u
b21vcnBoaWMtZ2V0LWJ5LWlkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvcHJvdG8tY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wcm90by1jdXN0b20tZ2V0dGVyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wcm90
by1jdXN0b20tZ2V0dGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCww
IEBACi1KU1JlZ3Jlc3MvcHJvdG8tY3VzdG9tLWdldHRlcgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9wcm90by1jdXN0b20tZ2V0dGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9wcm90by1jdXN0b20tZ2V0dGVyLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcHJvdG8tY3VzdG9tLWdldHRlci5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3Byb3RvLWN1c3RvbS1nZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wcm90by1nZXR0ZXItYWNjZXNzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wcm90by1nZXR0ZXItYWNjZXNzLmh0
bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcHJvdG8tZ2V0
dGVyLWFjY2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2NoYWluLWdldHRlci1hY2Nlc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wdXQtYnktaWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3B1dC1ieS1pZC5odG1sCShy
ZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3B1dC1ieS1pZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3B1dC1ieS1pZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3B1dC1ieS12YWwtbGFyZ2UtaW5kZXgtYmxhbmstaW5kZXhpbmct
dHlwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcHV0LWJ5LXZh
bC1sYXJnZS1pbmRleC1ibGFuay1pbmRleGluZy10eXBlLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcHV0LWJ5LXZhbC1sYXJnZS1pbmRleC1ibGFuay1p
bmRleGluZy10eXBlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcHV0LWJ5LXZhbC1sYXJnZS1pbmRleC1ibGFuay1p
bmRleGluZy10eXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvcHV0LWJ5LXZhbC1tYWNoaW5lLWludC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvcHV0LWJ5LXZhbC1tYWNoaW5lLWludC5odG1sCShyZXZpc2lv
biAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3B1dC1ieS12YWwtbWFjaGluZS1p
bnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9wdXQtYnktdmFsLW1hY2hpbmUtaW50LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmFyZS1vc3ItZXhpdC1vbi1s
b2NhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmFyZS1vc3It
ZXhpdC1vbi1sb2NhbC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3JhcmUtb3NyLWV4aXQtb24tbG9jYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5
ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yYXJlLW9zci1leGl0
LW9uLWxvY2FsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvcmVnaXN0ZXItcHJlc3N1cmUtZnJvbS1vc3IuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2lzdGVyLXByZXNzdXJlLWZyb20tb3NyLmh0bWwJKHJl
dmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnaXN0ZXItcHJlc3N1
cmUtZnJvbS1vc3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9zci5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NpbXBs
ZS1hY3RpdmF0aW9uLWRlbW8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NpbXBsZS1hY3RpdmF0aW9uLWRlbW8uaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zaW1wbGUtYWN0aXZhdGlvbi1kZW1vLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
c2ltcGxlLWFjdGl2YXRpb24tZGVtby5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVy
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zaW1wbGUtY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTAgKzAsMCBAQAotSlNSZWdyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zaW1wbGUtY3VzdG9tLWdldHRlci5odG1sCShyZXZpc2lvbiAx
NjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvc2ltcGxlLWN1c3RvbS1nZXR0ZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zaW1wbGUtZ2V0dGVyLWFj
Y2Vzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2ltcGxlLWdl
dHRlci1hY2Nlc3MuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zaW1wbGUtZ2V0dGVyLWFjY2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQs
OSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2NoYWluLWdldHRlci1hY2Nl
c3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zbG93LWFycmF5LXByb2ZpbGUtY29udmVyZ2VuY2UuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3Nsb3ctYXJyYXktcHJvZmlsZS1jb252ZXJnZW5jZS5odG1sCShy
ZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nsb3ctYXJyYXktcHJv
ZmlsZS1jb252ZXJnZW5jZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Nsb3ctYXJyYXktcHJvZmlsZS1jb252ZXJn
ZW5jZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3Nsb3ctY29udmVyZ2VuY2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3Nsb3ctY29udmVyZ2VuY2UuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zbG93LWNvbnZlcmdlbmNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc2xvdy1jb252
ZXJnZW5jZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NwYXJzZS1jb25kaXRpb25hbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc3BhcnNlLWNvbmRpdGlvbmFsLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3BhcnNlLWNvbmRpdGlvbmFsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
c3BhcnNlLWNvbmRpdGlvbmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc3BsaWNlLXRvLXJlbW92ZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3BsaWNlLXRvLXJlbW92ZS5odG1sCShyZXZpc2lvbiAxNjY0
NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NwbGljZS10by1yZW1vdmUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9zcGxpY2UtdG8tcmVtb3ZlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWNoYXItY29kZS1hdC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWNoYXItY29kZS1hdC5odG1sCShyZXZp
c2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1jaGFyLWNvZGUt
YXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9zdHJpbmctY2hhci1jb2RlLWF0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWNvbmNhdC1vYmplY3Qu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1jb25jYXQt
b2JqZWN0Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c3RyaW5nLWNvbmNhdC1vYmplY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAK
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgog
PC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctY29uY2F0LW9iamVjdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0
cmluZy1jb25jYXQtcGFpci1vYmplY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3N0cmluZy1jb25jYXQtcGFpci1vYmplY3QuaHRtbAkocmV2aXNpb24gMTY2NDY5
KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctY29uY2F0LXBhaXItb2JqZWN0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvc3RyaW5nLWNvbmNhdC1wYWlyLW9iamVjdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1jb25jYXQtcGFpci1z
aW1wbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1j
b25jYXQtcGFpci1zaW1wbGUuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zdHJpbmctY29uY2F0LXBhaXItc2ltcGxlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5n
LWNvbmNhdC1wYWlyLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1jb25jYXQtc2ltcGxlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctY29uY2F0LXNpbXBsZS5odG1sCShyZXZp
c2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1jb25jYXQtc2lt
cGxlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLWNvbmNhdC1zaW1wbGUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctY29ucy1yZXBlYXQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1jb25zLXJl
cGVhdC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0
cmluZy1jb25zLXJlcGVhdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0cmluZy1jb25zLXJlcGVhdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1j
b25zLXRvd2VyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJp
bmctY29ucy10b3dlci5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3N0cmluZy1jb25zLXRvd2VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5
IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLWNvbnMtdG93ZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
dHJpbmctZXF1YWxpdHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3N0cmluZy1lcXVhbGl0eS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3N0cmluZy1lcXVhbGl0eS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQs
OSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0cmluZy1lcXVhbGl0eS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0
cmluZy1nZXQtYnktdmFsLWJpZy1jaGFyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zdHJpbmctZ2V0LWJ5LXZhbC1iaWctY2hhci5odG1sCShyZXZpc2lvbiAxNjY0
NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1nZXQtYnktdmFsLWJpZy1jaGFy
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvc3RyaW5nLWdldC1ieS12YWwtYmlnLWNoYXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctZ2V0LWJ5LXZh
bC1vdXQtb2YtYm91bmRzLWluc2FuZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcy1pbnNhbmUuaHRtbAkocmV2
aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctZ2V0LWJ5LXZh
bC1vdXQtb2YtYm91bmRzLWluc2FuZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBA
QAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0cmluZy1nZXQtYnktdmFsLW91
dC1vZi1ib3VuZHMtaW5zYW5lLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWdldC1ieS12YWwtb3V0
LW9mLWJvdW5kcy5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3N0cmluZy1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmct
Z2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWdldC1ieS12YWwuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1nZXQtYnktdmFsLmh0bWwJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWdldC1ieS12YWwu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9zdHJpbmctZ2V0LWJ5LXZhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1oYXNoLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctaGFzaC5odG1sCShyZXZpc2lvbiAx
NjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1oYXNoLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvc3RyaW5nLWhhc2guanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zdHJpbmctbG9uZy1pZGVudC1lcXVhbGl0eS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxpdHkuaHRt
bAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctbG9u
Zy1pZGVudC1lcXVhbGl0eS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0cmluZy1sb25nLWlkZW50LWVxdWFsaXR5
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c3RyaW5nLXJlcGVhdC1hcml0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc3RyaW5nLXJlcGVhdC1hcml0aC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1yZXBlYXQtYXJpdGguaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJp
bmctcmVwZWF0LWFyaXRoLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXN1Yi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc3RyaW5nLXN1Yi5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1zdWIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0
LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctc3ViLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5n
LXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy10
ZXN0Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3Ry
aW5nLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy12YXItZXF1YWxpdHkuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy12YXItZXF1YWxp
dHkuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJp
bmctdmFyLWVxdWFsaXR5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXZhci1lcXVhbGl0eS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cnVjdHVy
ZS1ob2lzdC1vdmVyLXRyYW5zaXRpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zdHJ1Y3R1cmUtaG9pc3Qtb3Zlci10cmFuc2l0aW9ucy5odG1sCShyZXZpc2lv
biAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cnVjdHVyZS1ob2lzdC1vdmVy
LXRyYW5zaXRpb25zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RydWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlv
bnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zd2l0Y2gtY2hhci1jb25zdGFudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3dpdGNoLWNoYXItY29uc3RhbnQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zd2l0Y2gtY2hhci1jb25zdGFudC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L3N3aXRjaC1jaGFyLWNvbnN0YW50LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLWNoYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC1jaGFyLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLWNoYXIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zd2l0Y2gt
Y2hhci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3N3aXRjaC1jb25zdGFudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc3dpdGNoLWNvbnN0YW50Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLWNvbnN0YW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3dpdGNoLWNvbnN0
YW50LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc3dpdGNoLXN0cmluZy1iYXNpYy1iaWctdmFyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZy12YXIuaHRtbAkocmV2aXNp
b24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zd2l0Y2gtc3RyaW5nLWJhc2lj
LWJpZy12YXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZy12YXIuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zd2l0Y2gt
c3RyaW5nLWJhc2ljLWJpZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc3dpdGNoLXN0cmluZy1iYXNpYy1iaWcuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L3N3aXRjaC1zdHJpbmctYmFzaWMtYmlnLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLXN0cmluZy1iYXNpYy12YXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctYmFzaWMtdmFy
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNo
LXN0cmluZy1iYXNpYy12YXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9o
ZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zd2l0Y2gtc3RyaW5nLWJhc2ljLXZhci5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N3
aXRjaC1zdHJpbmctYmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3N3aXRjaC1zdHJpbmctYmFzaWMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zd2l0Y2gtc3RyaW5nLWJhc2ljLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3dpdGNo
LXN0cmluZy1iYXNpYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctYmlnLWxlbmd0aC10b3dlci12YXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctYmlnLWxlbmd0
aC10b3dlci12YXIuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zd2l0Y2gtc3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3dp
dGNoLXN0cmluZy1iaWctbGVuZ3RoLXRvd2VyLXZhci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2Vy
LXZhci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLXN0
cmluZy1sZW5ndGgtdG93ZXItdmFyLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93ZXItdmFyLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93ZXItdmFyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93
ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJp
bmctbGVuZ3RoLXRvd2VyLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93ZXIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zd2l0Y2gt
c3RyaW5nLWxlbmd0aC10b3dlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctc2hvcnQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctc2hvcnQuaHRtbAkocmV2aXNp
b24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zd2l0Y2gtc3RyaW5nLXNob3J0
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvc3dpdGNoLXN0cmluZy1zaG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N3aXRjaC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3dpdGNoLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdGVh
ci1vZmYtYXJndW1lbnRzLXNpbXBsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvdGVhci1vZmYtYXJndW1lbnRzLXNpbXBsZS5odG1sCShyZXZpc2lvbiAxNjY0Njkp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RlYXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy90ZWFyLW9mZi1hcmd1bWVudHMtc2ltcGxlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdGVhci1vZmYtYXJndW1lbnRzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy90ZWFyLW9mZi1hcmd1bWVu
dHMuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy90ZWFy
LW9mZi1hcmd1bWVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90ZWFyLW9mZi1hcmd1bWVudHMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy90ZW1wb3JhbC1z
dHJ1Y3R1cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RlbXBv
cmFsLXN0cnVjdHVyZS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3RlbXBvcmFsLXN0cnVjdHVyZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQs
OSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RlbXBvcmFsLXN0cnVjdHVy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3RvLWludDMyLWJvb2xlYW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3RvLWludDMyLWJvb2xlYW4uaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy90by1pbnQzMi1ib29sZWFuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdG8taW50MzItYm9v
bGVhbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3VuZGVmaW5lZC10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy91bmRlZmluZWQtdGVzdC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3VuZGVmaW5lZC10ZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSAr
NCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdW5kZWZpbmVkLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy91
bnByb2ZpbGVkLWxpY20uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3VucHJvZmlsZWQtbGljbS5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3VucHJvZmlsZWQtbGljbS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQs
OSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3VucHJvZmlsZWQtbGljbS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Zh
cmlhZGljLWNsb3N1cmUtY2FsbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy92YXJpYWRpYy1jbG9zdXJlLWNhbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3ZhcmlhZGljLWNsb3N1cmUtY2Fs
bC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNz
L3ZhcmlhZGljLWNsb3N1cmUtY2FsbAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy92YXJpYWRp
Yy1jbG9zdXJlLWNhbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3dlaXJkLWlubGluaW5nLWNvbnN0LXByb3AuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3dlaXJkLWlubGluaW5nLWNvbnN0
LXByb3AuaHRtbAkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy93
ZWlyZC1pbmxpbmluZy1jb25zdC1wcm9wLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5
IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvd2VpcmQtaW5saW5pbmctY29u
c3QtcHJvcC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzCShyZXZpc2lvbiAxNjY0Njkp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMJKHdv
cmtpbmcgY29weSkKQEAgLTEsMiArMCwwIEBACi1pZiAoX0pTUmVncmVzc19kaWRTdWNjZWVkKQot
ICAgIGRlYnVnKCJQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24iKTsKSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzCShyZXZpc2lvbiAxNjY0
NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi1kZXNjcmlwdGlvbigiSlNSZWdyZXNzLyIg
KyAoIiIgKyB3aW5kb3cubG9jYXRpb24pLnNwbGl0KCcvJykucG9wKCkuc3BsaXQoJy4nKVswXSk7
Ci1fSlNSZWdyZXNzX2RpZFN1Y2NlZWQgPSB0cnVlOwotX0pTUmVncmVzc19vbGRPbkVycm9yID0g
d2luZG93Lm9uZXJyb3I7Ci13aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAg
ICBkZWJ1ZygiRkFJTCBjYXVnaHQgZXhjZXB0aW9uOiAiICsgbWVzc2FnZSk7Ci0gICAgX0pTUmVn
cmVzc19kaWRTdWNjZWVkID0gZmFsc2U7Ci0gICAgX0pTUmVncmVzc19vbGRPbkVycm9yLmFwcGx5
KHRoaXMsIGFyZ3VtZW50cyk7Ci19Ci0KLWlmICh0eXBlb2Ygbm9JbmxpbmUgPT0gInVuZGVmaW5l
ZCIpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIG5vSW5saW5lID13aW5k
b3cudGVzdFJ1bm5lci5uZXZlcklubGluZUZ1bmN0aW9uIHx8IGZ1bmN0aW9uKCl7fTsKLSAgICBl
bHNlCi0gICAgICAgIG5vSW5saW5lID0gZnVuY3Rpb24oKXt9Ci19Ci0KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1o
dWdlLWxvbmctbGl2ZWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5q
cwkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi0vL0Agc2tpcAotCi12YXIgYXJyYXkgPSBuZXcgQXJy
YXkoMTAwMCk7Ci0KLXZhciBuID0gMTAwMDA7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytp
KSB7Ci0gICAgYXJyYXlbKGkgLyAobiAvIGFycmF5Lmxlbmd0aCkpIHwgMF0gPSBuZXcgSW50OEFy
cmF5KG5ldyBBcnJheUJ1ZmZlcigxMDAwMDApKTsKLX0KLQotZm9yICh2YXIgaSA9IDA7IGkgPCBh
cnJheS5sZW5ndGg7ICsraSkgewotICAgIGlmIChhcnJheVtpXS5sZW5ndGggIT0gMTAwMDAwKQot
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJheSBsZW5ndGg6ICIgKyBhcnJheVtpXS5sZW5n
dGg7Ci0gICAgaWYgKGFycmF5W2ldLmJ1ZmZlci5ieXRlTGVuZ3RoICE9IDEwMDAwMCkKLSAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXkgYnVmZmVyIGxlbmd0aDogIiArIGFycmF5W2ldLmJ1
ZmZlci5ieXRlTGVuZ3RoOwotfQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZnJhZ21l
bnRlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVk
LmpzCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVu
dGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICswLDAgQEAKLS8vQCBza2lwCi0KLXZhciBh
cnJheSA9IG5ldyBBcnJheSgxMDAwMCk7Ci0KLXZhciBmcmFnbWVudGVkQXJyYXkgPSBbXTsKLQot
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewotICAgIHZhciBuZXdBcnJheSA9IG5l
dyBJbnQ4QXJyYXkobmV3IEFycmF5QnVmZmVyKDEwMDApKTsKLSAgICBpZiAoaSAlIDEwID09PSAw
KQotICAgICAgICBuZXdBcnJheS5jdXN0b21Qcm9wZXJ0eSA9ICJmb28iOwotICAgIGZvciAodmFy
IGogPSAwOyBqIDwgMTA7IGorKykKLSAgICAgICAgZnJhZ21lbnRlZEFycmF5ID0gbmV3IEFycmF5
KDEwKTsKLSAgICBhcnJheVtpICUgYXJyYXkubGVuZ3RoXSA9IG5ld0FycmF5OwotfQotCi1mb3Ig
KHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7Ci0gICAgaWYgKGFycmF5W2ldLmxl
bmd0aCAhPSAxMDAwKQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBsZW5ndGg6ICIgKyBhcnJh
eVtpXS5sZW5ndGg7Ci0gICAgaWYgKGFycmF5W2ldLmJ1ZmZlci5ieXRlTGVuZ3RoICE9IDEwMDAp
Ci0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIGJ1ZmZlci5ieXRlTGVuZ3RoOiAiICsgYXJyYXlb
aV0uYnVmZmVyLmJ5dGVMZW5ndGg7Ci19CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9j
LWh1Z2UtbG9uZy1saXZlZC5qcwkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotLy9AIHNraXAKLQotdmFyIGFycmF5ID0g
bmV3IEFycmF5KDEwMDApOwotCi12YXIgbiA9IDEwMDAwOwotCi1mb3IgKHZhciBpID0gMDsgaSA8
IG47ICsraSkgewotICAgIGFycmF5WyhpIC8gKG4gLyBhcnJheS5sZW5ndGgpKSB8IDBdID0gbmV3
IEludDMyQXJyYXkoMTAwMDAwKTsKLX0KLQotZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5n
dGg7ICsraSkgewotICAgIGlmIChhcnJheVtpXS5sZW5ndGggIT0gMTAwMDAwKQotICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCBhcnJheSBsZW5ndGg6ICIgKyBhcnJheVtpXS5sZW5ndGg7Ci19Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9j
LWh1Z2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvSW50MzJBcnJheS1hbGxvYy1odWdlLmpzCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UuanMJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMCwwIEBACi0vL0Agc2tpcAotCi1mb3IgKHZhciBpID0gMDsg
aSA8IDEwMDA7ICsraSkKLSAgICBuZXcgSW50MzJBcnJheSgxMDAwMDAwKTsKLQpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1s
b25nLWxpdmVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qcwkocmV2aXNpb24gMTY2
NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1h
bGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICswLDAgQEAK
LS8vQCBza2lwCi0KLXZhciBhcnJheSA9IG5ldyBBcnJheSgxMDAwMCk7Ci0KLWZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwMDsgKytpKQotICAgIGFycmF5W2kgJSBhcnJheS5sZW5ndGhdID0gbmV3
IEludDMyQXJyYXkoMTAwMCk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyAr
K2kpIHsKLSAgICBpZiAoYXJyYXlbaV0ubGVuZ3RoICE9IDEwMDApCi0gICAgICAgIHRocm93ICJF
cnJvcjogYmFkIGFycmF5IGxlbmd0aDogIiArIGFycmF5W2ldLmxlbmd0aDsKLX0KSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2FycmF5LXByb3RvdHlwZS1maWx0ZXIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYXJy
YXktcHJvdG90eXBlLWZpbHRlci5qcwkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYXJyYXktcHJvdG90eXBlLWZpbHRlci5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi12YXIgcmVzdWx0ID0gMDsKLWZ1bmN0aW9uIHRlc3Qx
KGEpIHsKLSAgICByZXN1bHQgPDwgMTsKLSAgICByZXN1bHQrKzsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLWZ1bmN0aW9uIHRlc3QyKGEsYikgewotICAgIHJlc3VsdCBePSAzOwotICAgIHJlc3VsdCAq
PSAzOwotICAgIHJldHVybiAocmVzdWx0ICYgMSkgPT0gMDsKLX0KLWZ1bmN0aW9uIHRlc3QzKGEs
YixjKSB7Ci0gICAgcmVzdWx0IF49IHJlc3VsdCA+PiAxOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci12YXIgcmVzdWx0ID0gMDsKLXZhciBhcnJheSA9IFtdCi1mb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKQotICAgIGFycmF5W2ldID0gMTsKLQotdmFyIHRvdGFsTGVuZ3RoID0gMAotZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgdG90YWxMZW5ndGggKz0gYXJyYXkuZmls
dGVyKHRlc3QxKS5sZW5ndGg7Ci0gICAgdG90YWxMZW5ndGggKz0gYXJyYXkuZmlsdGVyKHRlc3Qy
KS5sZW5ndGg7Ci0gICAgdG90YWxMZW5ndGggKz0gYXJyYXkuZmlsdGVyKHRlc3QzKS5sZW5ndGg7
Ci19Ci0KLWlmIChyZXN1bHQgIT0gMTQyODgxMDQ5NikKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Ci0KLWlmICh0b3RhbExlbmd0aCAhPSAyNTAwMDAwKQotICAgIHRo
cm93ICJFcnJvcjogYmFkIGxlbmd0aDogIiArIHRvdGFsTGVuZ3RoOwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Nh
bGwtc3ByZWFkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2NhbGwtc3ByZWFkLmpzCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9jYWxsLXNwcmVhZC5qcwkod29ya2luZyBjb3B5KQpAQCAt
MSwzNCArMCwwIEBACi0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihhLCBiKQotewotICAgICJ1c2Ug
c3RyaWN0IgotICAgIHJlc3VsdCB8PSAwOwotICAgIHJldHVybiBhICogMTAwMCArIGIgKiAxMDAg
KyBhcmd1bWVudHNbMl0gKiAxMCArIGFyZ3VtZW50cy5sZW5ndGggXiAocmVzdWx0ICYgMTAyNCk7
Ci19Ci0KLXZhciBhcnJheUFyZ3VtZW50cyA9IFsyLCAzLCA0XQotdmFyIHJlc3VsdCA9IDA7Ci1m
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykKLSAgICByZXN1bHQgKz0gdGVzdEZ1bmN0
aW9uKC4uLmFycmF5QXJndW1lbnRzKTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyBp
KyspCi0gICAgcmVzdWx0ICs9IHRlc3RGdW5jdGlvbiguLi5bMSwgMiwgcmVzdWx0LCA0XSk7Ci0K
LWZ1bmN0aW9uIHRlc3QyKCkgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsr
KQotICAgICAgICByZXN1bHQgKz0gdGVzdEZ1bmN0aW9uKC4uLmFyZ3VtZW50cyk7Ci19Ci0KLXRl
c3QyKDEsMiwzLDQpCi0KLQotZnVuY3Rpb24gdGVzdDMoKSB7Ci0gICAgYWxpYXNlZEFyZ3VtZW50
cyA9IGFyZ3VtZW50czsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykKLSAg
ICAgICAgcmVzdWx0ICs9IHRlc3RGdW5jdGlvbiguLi5hbGlhc2VkQXJndW1lbnRzKTsKLX0KLQot
dGVzdDMoMSwyLHJlc3VsdCw0KQotCi1pZiAocmVzdWx0ICE9IC04NTY0NDQ2MTk3NzkyNjQpCi0g
ICAgdGhyb3cgIlJlc3VsdCB3YXMgIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgLTg1NjQ0NDYxOTc3
OTI2NCI7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvY2hhaW4tY3VzdG9tLWdldHRlci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9jaGFpbi1jdXN0b20tZ2V0dGVy
LmpzCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9jaGFpbi1jdXN0b20tZ2V0dGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICswLDAg
QEAKLQotdmFyIGN5Y2xlcyA9IDYwMDA7Ci12YXIgbnVtYmVyT2JqZWN0ID0geyBfX3Byb3RvX186
IE51bWJlcn0KLW51bWJlck9iamVjdCA9e19fcHJvdG9fXzogbnVtYmVyT2JqZWN0fQotCi1mdW5j
dGlvbiBmb28oKSB7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgdmFyIGlubmVyQ3ljbGVzID0g
Y3ljbGVzOwotICAgIHZhciBOdW1iZXIgPSBudW1iZXJPYmplY3Q7Ci0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBpbm5lckN5Y2xlczsgKytpKQotICAgICAgICByZXN1bHQgKz0gMCB8IGlzTmFOKE51
bWJlci5OYU4pOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotbm9JbmxpbmUoZm9vKTsKLXZh
ciByZXN1bHQgPSAwOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAwOyBpKyspCi0gICAgcmVzdWx0
ICs9IGZvbygpOwotaWYgKHJlc3VsdCAhPSBpICogY3ljbGVzKQotICAgIHRocm93ICJGYWlsZWQs
IHJlc3VsdCB3YXMgIiArIChyZXN1bHQpICsgIiBzaG91bGQgYmUgIiArIChpICogY3ljbGVzKTsK
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Rlc3RydWN0dXJpbmct
YXJndW1lbnRzLWxlbmd0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGguanMJKHJldmlzaW9u
IDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Rlc3RydWN0
dXJpbmctYXJndW1lbnRzLWxlbmd0aC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBA
Ci0vL0AgcnVuRGVmYXVsdAotCi1mdW5jdGlvbiBmb28oKSB7Ci0gICAgdmFyIHswOiBpLCAxOiBq
LCBsZW5ndGh9ID0gYXJndW1lbnRzOwotICAgIHJldHVybiBpICsgaiArIGxlbmd0aDsKLX0KLQot
dmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkKLSAgICBy
ZXN1bHQgKz0gZm9vKGksIDEpOwotCi1pZiAocmVzdWx0ICE9IDUwMDAwMjUwMDAwMCkKLSAgICB0
aHJvdyAiQmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2Vtc2NyaXB0ZW4tbWVtb3BzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Vtc2NyaXB0ZW4tbWVtb3BzLmpzCShyZXZp
c2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9lbXNj
cmlwdGVuLW1lbW9wcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw2MzE0ICswLDAgQEAKLS8vIEln
bm9yZSB0aGlzIHRlc3QgaW4gcnVuLWpzYy1zdHJlc3MtdGVzdHMKLS8vQCBza2lwCi0KLS8vIE5v
dGU6IEZvciBtYXhpbXVtLXNwZWVkIGNvZGUsIHNlZSAiT3B0aW1pemluZyBDb2RlIiBvbiB0aGUg
RW1zY3JpcHRlbiB3aWtpLCBodHRwczovL2dpdGh1Yi5jb20va3JpcGtlbi9lbXNjcmlwdGVuL3dp
a2kvT3B0aW1pemluZy1Db2RlCi0vLyBOb3RlOiBTb21lIEVtc2NyaXB0ZW4gc2V0dGluZ3MgbWF5
IGxpbWl0IHRoZSBzcGVlZCBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUuCi0vLyBUaGUgTW9kdWxlIG9i
amVjdDogT3VyIGludGVyZmFjZSB0byB0aGUgb3V0c2lkZSB3b3JsZC4gV2UgaW1wb3J0Ci0vLyBh
bmQgZXhwb3J0IHZhbHVlcyBvbiBpdCwgYW5kIGRvIHRoZSB3b3JrIHRvIGdldCB0aGF0IHRocm91
Z2gKLS8vIGNsb3N1cmUgY29tcGlsZXIgaWYgbmVjZXNzYXJ5LiBUaGVyZSBhcmUgdmFyaW91cyB3
YXlzIE1vZHVsZSBjYW4gYmUgdXNlZDoKLS8vIDEuIE5vdCBkZWZpbmVkLiBXZSBjcmVhdGUgaXQg
aGVyZQotLy8gMi4gQSBmdW5jdGlvbiBwYXJhbWV0ZXIsIGZ1bmN0aW9uKE1vZHVsZSkgeyAuLmdl
bmVyYXRlZCBjb2RlLi4gfQotLy8gMy4gcHJlLXJ1biBhcHBlbmRlZCBpdCwgdmFyIE1vZHVsZSA9
IHt9OyAuLmdlbmVyYXRlZCBjb2RlLi4KLS8vIDQuIEV4dGVybmFsIHNjcmlwdCB0YWcgZGVmaW5l
cyB2YXIgTW9kdWxlLgotLy8gV2UgbmVlZCB0byBkbyBhbiBldmFsIGluIG9yZGVyIHRvIGhhbmRs
ZSB0aGUgY2xvc3VyZSBjb21waWxlcgotLy8gY2FzZSwgd2hlcmUgdGhpcyBjb2RlIGhlcmUgaXMg
bWluaWZpZWQgYnV0IE1vZHVsZSB3YXMgZGVmaW5lZAotLy8gZWxzZXdoZXJlIChlLmcuIGNhc2Ug
NCBhYm92ZSkuIFdlIGFsc28gbmVlZCB0byBjaGVjayBpZiBNb2R1bGUKLS8vIGFscmVhZHkgZXhp
c3RzIChlLmcuIGNhc2UgMyBhYm92ZSkuCi0vLyBOb3RlIHRoYXQgaWYgeW91IHdhbnQgdG8gcnVu
IGNsb3N1cmUsIGFuZCBhbHNvIHRvIHVzZSBNb2R1bGUKLS8vIGFmdGVyIHRoZSBnZW5lcmF0ZWQg
Y29kZSwgeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgICB2YXIgTW9kdWxlID0ge307Ci0vLyBiZWZv
cmUgdGhlIGNvZGUuIFRoZW4gdGhhdCBvYmplY3Qgd2lsbCBiZSB1c2VkIGluIHRoZSBjb2RlLCBh
bmQgeW91Ci0vLyBjYW4gY29udGludWUgdG8gdXNlIE1vZHVsZSBhZnRlcndhcmRzIGFzIHdlbGwu
Ci12YXIgTW9kdWxlOwotaWYgKCFNb2R1bGUpIE1vZHVsZSA9IGV2YWwoJyhmdW5jdGlvbigpIHsg
dHJ5IHsgcmV0dXJuIE1vZHVsZSB8fCB7fSB9IGNhdGNoKGUpIHsgcmV0dXJuIHt9IH0gfSkoKScp
OwotLy8gU29tZXRpbWVzIGFuIGV4aXN0aW5nIE1vZHVsZSBvYmplY3QgZXhpc3RzIHdpdGggcHJv
cGVydGllcwotLy8gbWVhbnQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IG1vZHVsZSBmdW5jdGlv
bmFsaXR5LiBIZXJlCi0vLyB3ZSBjb2xsZWN0IHRob3NlIHByb3BlcnRpZXMgYW5kIHJlYXBwbHkg
X2FmdGVyXyB3ZSBjb25maWd1cmUKLS8vIHRoZSBjdXJyZW50IGVudmlyb25tZW50J3MgZGVmYXVs
dHMgdG8gYXZvaWQgaGF2aW5nIHRvIGJlIHNvCi0vLyBkZWZlbnNpdmUgZHVyaW5nIGluaXRpYWxp
emF0aW9uLgotdmFyIG1vZHVsZU92ZXJyaWRlcyA9IHt9OwotZm9yICh2YXIga2V5IGluIE1vZHVs
ZSkgewotICBpZiAoTW9kdWxlLmhhc093blByb3BlcnR5KGtleSkpIHsKLSAgICBtb2R1bGVPdmVy
cmlkZXNba2V5XSA9IE1vZHVsZVtrZXldOwotICB9Ci19Ci0vLyBUaGUgZW52aXJvbm1lbnQgc2V0
dXAgY29kZSBiZWxvdyBpcyBjdXN0b21pemVkIHRvIHVzZSBNb2R1bGUuCi0vLyAqKiogRW52aXJv
bm1lbnQgc2V0dXAgY29kZSAqKioKLXZhciBFTlZJUk9OTUVOVF9JU19OT0RFID0gdHlwZW9mIHBy
b2Nlc3MgPT09ICdvYmplY3QnICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nOwotdmFy
IEVOVklST05NRU5UX0lTX1dFQiA9IHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnOwotdmFyIEVO
VklST05NRU5UX0lTX1dPUktFUiA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzID09PSAnZnVuY3Rpb24n
OwotdmFyIEVOVklST05NRU5UX0lTX1NIRUxMID0gIUVOVklST05NRU5UX0lTX1dFQiAmJiAhRU5W
SVJPTk1FTlRfSVNfTk9ERSAmJiAhRU5WSVJPTk1FTlRfSVNfV09SS0VSOwotdmFyIEpTUmVncmVz
c19vdXRwdXRCdWZmZXIgPSAiIjsKLWlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7Ci0gIC8vIEV4
cG9zZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBzYW1lIHNpbXBsZSB3YXkgdGhhdCB0aGUgc2hlbGxz
IHdvcmsKLSAgLy8gTm90ZSB0aGF0IHdlIHBvbGx1dGUgdGhlIGdsb2JhbCBuYW1lc3BhY2UgaGVy
ZSwgb3RoZXJ3aXNlIHdlIGJyZWFrIGluIG5vZGUKLSAgTW9kdWxlWydwcmludCddID0gZnVuY3Rp
b24oeCkgewotICAgIHByb2Nlc3NbJ3N0ZG91dCddLndyaXRlKHggKyAnXG4nKTsKLSAgfTsKLSAg
TW9kdWxlWydwcmludEVyciddID0gZnVuY3Rpb24oeCkgewotICAgIHByb2Nlc3NbJ3N0ZGVycidd
LndyaXRlKHggKyAnXG4nKTsKLSAgfTsKLSAgdmFyIG5vZGVGUyA9IHJlcXVpcmUoJ2ZzJyk7Ci0g
IHZhciBub2RlUGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTsKLSAgTW9kdWxlWydyZWFkJ10gPSBmdW5j
dGlvbihmaWxlbmFtZSwgYmluYXJ5KSB7Ci0gICAgZmlsZW5hbWUgPSBub2RlUGF0aFsnbm9ybWFs
aXplJ10oZmlsZW5hbWUpOwotICAgIHZhciByZXQgPSBub2RlRlNbJ3JlYWRGaWxlU3luYyddKGZp
bGVuYW1lKTsKLSAgICAvLyBUaGUgcGF0aCBpcyBhYnNvbHV0ZSBpZiB0aGUgbm9ybWFsaXplZCB2
ZXJzaW9uIGlzIHRoZSBzYW1lIGFzIHRoZSByZXNvbHZlZC4KLSAgICBpZiAoIXJldCAmJiBmaWxl
bmFtZSAhPSBub2RlUGF0aFsncmVzb2x2ZSddKGZpbGVuYW1lKSkgewotICAgICAgZmlsZW5hbWUg
PSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnc3JjJywgZmlsZW5hbWUpOwotICAgICAgcmV0
ID0gbm9kZUZTWydyZWFkRmlsZVN5bmMnXShmaWxlbmFtZSk7Ci0gICAgfQotICAgIGlmIChyZXQg
JiYgIWJpbmFyeSkgcmV0ID0gcmV0LnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHJldDsKLSAgfTsK
LSAgTW9kdWxlWydyZWFkQmluYXJ5J10gPSBmdW5jdGlvbihmaWxlbmFtZSkgeyByZXR1cm4gTW9k
dWxlWydyZWFkJ10oZmlsZW5hbWUsIHRydWUpIH07Ci0gIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rp
b24oZikgewotICAgIGdsb2JhbEV2YWwocmVhZChmKSk7Ci0gIH07Ci0gIE1vZHVsZVsnYXJndW1l
bnRzJ10gPSBwcm9jZXNzWydhcmd2J10uc2xpY2UoMik7Ci0gIG1vZHVsZS5leHBvcnRzID0gTW9k
dWxlOwotfQotZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfU0hFTEwpIHsKLSAgTW9kdWxlWydwcmlu
dCddID0gZnVuY3Rpb24oKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgIGlmIChpKQotICAgICAgICAgICAgICBKU1JlZ3Jlc3Nf
b3V0cHV0QnVmZmVyICs9ICIgIjsKLSAgICAgICAgICBKU1JlZ3Jlc3Nfb3V0cHV0QnVmZmVyICs9
IGFyZ3VtZW50c1tpXTsKLSAgICAgIH0KLSAgICAgIEpTUmVncmVzc19vdXRwdXRCdWZmZXIgKz0g
IlxuIjsKLSAgfTsKLSAgaWYgKHR5cGVvZiBwcmludEVyciAhPSAndW5kZWZpbmVkJykgTW9kdWxl
WydwcmludEVyciddID0gcHJpbnRFcnI7IC8vIG5vdCBwcmVzZW50IGluIHY4IG9yIG9sZGVyIHNt
Ci0gIGlmICh0eXBlb2YgcmVhZCAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsncmVhZCdd
ID0gcmVhZDsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKCkgeyB0
aHJvdyAnbm8gcmVhZCgpIGF2YWlsYWJsZSAoanNjPyknIH07Ci0gIH0KLSAgTW9kdWxlWydyZWFk
QmluYXJ5J10gPSBmdW5jdGlvbihmKSB7Ci0gICAgcmV0dXJuIHJlYWQoZiwgJ2JpbmFyeScpOwot
ICB9OwotICBpZiAodHlwZW9mIHNjcmlwdEFyZ3MgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBNb2R1
bGVbJ2FyZ3VtZW50cyddID0gc2NyaXB0QXJnczsKLSAgfSBlbHNlIGlmICh0eXBlb2YgYXJndW1l
bnRzICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50
czsKLSAgfQotICB0aGlzWydNb2R1bGUnXSA9IE1vZHVsZTsKLX0KLWVsc2UgaWYgKEVOVklST05N
RU5UX0lTX1dFQiB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHsKLSAgTW9kdWxlWydyZWFkJ10g
PSBmdW5jdGlvbih1cmwpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0g
ICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOwotICAgIHhoci5zZW5kKG51bGwpOwotICAg
IHJldHVybiB4aHIucmVzcG9uc2VUZXh0OwotICB9OwotICBpZiAodHlwZW9mIGFyZ3VtZW50cyAh
PSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBhcmd1bWVudHM7Ci0g
IH0KLSAgaWYgKEVOVklST05NRU5UX0lTX1dFQikgewotICAgIE1vZHVsZVsncHJpbnQnXSA9IGZ1
bmN0aW9uKHgpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsg
KytpKSB7Ci0gICAgICAgICAgaWYgKGkpCi0gICAgICAgICAgICAgIEpTUmVncmVzc19vdXRwdXRC
dWZmZXIgKz0gIiAiOwotICAgICAgICAgIEpTUmVncmVzc19vdXRwdXRCdWZmZXIgKz0gYXJndW1l
bnRzW2ldOwotICAgICAgfQotICAgICAgSlNSZWdyZXNzX291dHB1dEJ1ZmZlciArPSAiXG4iOwot
ICAgIH07Ci0gICAgTW9kdWxlWydwcmludEVyciddID0gZnVuY3Rpb24oeCkgewotICAgICAgY29u
c29sZS5sb2coeCk7Ci0gICAgfTsKLSAgICB0aGlzWydNb2R1bGUnXSA9IE1vZHVsZTsKLSAgfSBl
bHNlIGlmIChFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHsKLSAgICAvLyBXZSBjYW4gZG8gdmVyeSBs
aXR0bGUgaGVyZS4uLgotICAgIHZhciBUUllfVVNFX0RVTVAgPSBmYWxzZTsKLSAgICBNb2R1bGVb
J3ByaW50J10gPSAoVFJZX1VTRV9EVU1QICYmICh0eXBlb2YoZHVtcCkgIT09ICJ1bmRlZmluZWQi
KSA/IChmdW5jdGlvbih4KSB7Ci0gICAgICBkdW1wKHgpOwotICAgIH0pIDogKGZ1bmN0aW9uKHgp
IHsKLSAgICAgIC8vIHNlbGYucG9zdE1lc3NhZ2UoeCk7IC8vIGVuYWJsZSB0aGlzIGlmIHlvdSB3
YW50IHN0ZG91dCB0byBiZSBzZW50IGFzIG1lc3NhZ2VzCi0gICAgfSkpOwotICAgIE1vZHVsZVsn
bG9hZCddID0gaW1wb3J0U2NyaXB0czsKLSAgfQotfQotZWxzZSB7Ci0gIC8vIFVucmVhY2hhYmxl
IGJlY2F1c2UgU0hFTEwgaXMgZGVwZW5kYW50IG9uIHRoZSBvdGhlcnMKLSAgdGhyb3cgJ1Vua25v
d24gcnVudGltZSBlbnZpcm9ubWVudC4gV2hlcmUgYXJlIHdlPyc7Ci19Ci1mdW5jdGlvbiBnbG9i
YWxFdmFsKHgpIHsKLSAgZXZhbC5jYWxsKG51bGwsIHgpOwotfQotaWYgKCFNb2R1bGVbJ2xvYWQn
XSA9PSAndW5kZWZpbmVkJyAmJiBNb2R1bGVbJ3JlYWQnXSkgewotICBNb2R1bGVbJ2xvYWQnXSA9
IGZ1bmN0aW9uKGYpIHsKLSAgICBnbG9iYWxFdmFsKE1vZHVsZVsncmVhZCddKGYpKTsKLSAgfTsK
LX0KLWlmICghTW9kdWxlWydwcmludCddKSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9u
KCl7fTsKLX0KLWlmICghTW9kdWxlWydwcmludEVyciddKSB7Ci0gIE1vZHVsZVsncHJpbnRFcnIn
XSA9IE1vZHVsZVsncHJpbnQnXTsKLX0KLWlmICghTW9kdWxlWydhcmd1bWVudHMnXSkgewotICBN
b2R1bGVbJ2FyZ3VtZW50cyddID0gW107Ci19Ci0vLyAqKiogRW52aXJvbm1lbnQgc2V0dXAgY29k
ZSAqKioKLS8vIENsb3N1cmUgaGVscGVycwotTW9kdWxlLnByaW50ID0gTW9kdWxlWydwcmludCdd
OwotTW9kdWxlLnByaW50RXJyID0gTW9kdWxlWydwcmludEVyciddOwotLy8gQ2FsbGJhY2tzCi1N
b2R1bGVbJ3ByZVJ1biddID0gW107Ci1Nb2R1bGVbJ3Bvc3RSdW4nXSA9IFtdOwotLy8gTWVyZ2Ug
YmFjayBpbiB0aGUgb3ZlcnJpZGVzCi1mb3IgKHZhciBrZXkgaW4gbW9kdWxlT3ZlcnJpZGVzKSB7
Ci0gIGlmIChtb2R1bGVPdmVycmlkZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgewotICAgIE1vZHVs
ZVtrZXldID0gbW9kdWxlT3ZlcnJpZGVzW2tleV07Ci0gIH0KLX0KLS8vID09PSBBdXRvLWdlbmVy
YXRlZCBwcmVhbWJsZSBsaWJyYXJ5IHN0dWZmID09PQotLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0vLyBSdW50aW1lIGNvZGUgc2hhcmVkIHdpdGggY29tcGlsZXIK
LS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotdmFyIFJ1bnRpbWUg
PSB7Ci0gIHN0YWNrU2F2ZTogZnVuY3Rpb24gKCkgewotICAgIHJldHVybiBTVEFDS1RPUDsKLSAg
fSwKLSAgc3RhY2tSZXN0b3JlOiBmdW5jdGlvbiAoc3RhY2tUb3ApIHsKLSAgICBTVEFDS1RPUCA9
IHN0YWNrVG9wOwotICB9LAotICBmb3JjZUFsaWduOiBmdW5jdGlvbiAodGFyZ2V0LCBxdWFudHVt
KSB7Ci0gICAgcXVhbnR1bSA9IHF1YW50dW0gfHwgNDsKLSAgICBpZiAocXVhbnR1bSA9PSAxKSBy
ZXR1cm4gdGFyZ2V0OwotICAgIGlmIChpc051bWJlcih0YXJnZXQpICYmIGlzTnVtYmVyKHF1YW50
dW0pKSB7Ci0gICAgICByZXR1cm4gTWF0aC5jZWlsKHRhcmdldC9xdWFudHVtKSpxdWFudHVtOwot
ICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIocXVhbnR1bSkgJiYgaXNQb3dlck9mVHdvKHF1YW50dW0p
KSB7Ci0gICAgICB2YXIgbG9nZyA9IGxvZzIocXVhbnR1bSk7Ci0gICAgICByZXR1cm4gJygoKCgn
ICt0YXJnZXQgKyAnKSsnICsgKHF1YW50dW0tMSkgKyAnKT4+JyArIGxvZ2cgKyAnKTw8JyArIGxv
Z2cgKyAnKSc7Ci0gICAgfQotICAgIHJldHVybiAnTWF0aC5jZWlsKCgnICsgdGFyZ2V0ICsgJykv
JyArIHF1YW50dW0gKyAnKSonICsgcXVhbnR1bTsKLSAgfSwKLSAgaXNOdW1iZXJUeXBlOiBmdW5j
dGlvbiAodHlwZSkgewotICAgIHJldHVybiB0eXBlIGluIFJ1bnRpbWUuSU5UX1RZUEVTIHx8IHR5
cGUgaW4gUnVudGltZS5GTE9BVF9UWVBFUzsKLSAgfSwKLSAgaXNQb2ludGVyVHlwZTogZnVuY3Rp
b24gaXNQb2ludGVyVHlwZSh0eXBlKSB7Ci0gIHJldHVybiB0eXBlW3R5cGUubGVuZ3RoLTFdID09
ICcqJzsKLX0sCi0gIGlzU3RydWN0VHlwZTogZnVuY3Rpb24gaXNTdHJ1Y3RUeXBlKHR5cGUpIHsK
LSAgaWYgKGlzUG9pbnRlclR5cGUodHlwZSkpIHJldHVybiBmYWxzZTsKLSAgaWYgKGlzQXJyYXlU
eXBlKHR5cGUpKSByZXR1cm4gdHJ1ZTsKLSAgaWYgKC88P3sgP1tefV0qID99Pj8vLnRlc3QodHlw
ZSkpIHJldHVybiB0cnVlOyAvLyB7IGkzMiwgaTggfSBldGMuIC0gYW5vbnltb3VzIHN0cnVjdCB0
eXBlcwotICAvLyBTZWUgY29tbWVudCBpbiBpc1N0cnVjdFBvaW50ZXJUeXBlKCkKLSAgcmV0dXJu
IHR5cGVbMF0gPT0gJyUnOwotfSwKLSAgSU5UX1RZUEVTOiB7ImkxIjowLCJpOCI6MCwiaTE2Ijow
LCJpMzIiOjAsImk2NCI6MH0sCi0gIEZMT0FUX1RZUEVTOiB7ImZsb2F0IjowLCJkb3VibGUiOjB9
LAotICBvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZhciBsID0gKHggfCAwKSB8ICh5IHwg
MCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5NDk2NzI5NikgfCBNYXRoLnJvdW5k
KHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAgIHJldHVybiBsICsgaDsKLSAgfSwK
LSAgYW5kNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAgdmFyIGwgPSAoeCB8IDApICYgKHkgfCAw
KTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0Mjk0OTY3Mjk2KSAmIE1hdGgucm91bmQo
eSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0gICAgcmV0dXJuIGwgKyBoOwotICB9LAot
ICB4b3I2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2YXIgbCA9ICh4IHwgMCkgXiAoeSB8IDAp
OwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQyOTQ5NjcyOTYpIF4gTWF0aC5yb3VuZCh5
IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAgICByZXR1cm4gbCArIGg7Ci0gIH0sCi0g
IGdldE5hdGl2ZVR5cGVTaXplOiBmdW5jdGlvbiAodHlwZSwgcXVhbnR1bVNpemUpIHsKLSAgICBp
ZiAoUnVudGltZS5RVUFOVFVNX1NJWkUgPT0gMSkgcmV0dXJuIDE7Ci0gICAgdmFyIHNpemUgPSB7
Ci0gICAgICAnJWkxJzogMSwKLSAgICAgICclaTgnOiAxLAotICAgICAgJyVpMTYnOiAyLAotICAg
ICAgJyVpMzInOiA0LAotICAgICAgJyVpNjQnOiA4LAotICAgICAgIiVmbG9hdCI6IDQsCi0gICAg
ICAiJWRvdWJsZSI6IDgKLSAgICB9WyclJyt0eXBlXTsgLy8gYWRkICclJyBzaW5jZSBmbG9hdCBh
bmQgZG91YmxlIGNvbmZ1c2UgQ2xvc3VyZSBjb21waWxlciBhcyBrZXlzLCBhbmQgYWxzbyBzcGlk
ZXJtb25rZXkgYXMgYSBjb21waWxlciB3aWxsIHJlbW92ZSAncyBmcm9tICdfaTgnIGV0YwotICAg
IGlmICghc2l6ZSkgewotICAgICAgaWYgKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpID09ICcq
JykgewotICAgICAgICBzaXplID0gUnVudGltZS5RVUFOVFVNX1NJWkU7IC8vIEEgcG9pbnRlcgot
ICAgICAgfSBlbHNlIGlmICh0eXBlWzBdID09ICdpJykgewotICAgICAgICB2YXIgYml0cyA9IHBh
cnNlSW50KHR5cGUuc3Vic3RyKDEpKTsKLSAgICAgICAgYXNzZXJ0KGJpdHMgJSA4ID09IDApOwot
ICAgICAgICBzaXplID0gYml0cy84OwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gc2l6ZTsK
LSAgfSwKLSAgZ2V0TmF0aXZlRmllbGRTaXplOiBmdW5jdGlvbiAodHlwZSkgewotICAgIHJldHVy
biBNYXRoLm1heChSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpLCBSdW50aW1lLlFVQU5U
VU1fU0laRSk7Ci0gIH0sCi0gIGRlZHVwOiBmdW5jdGlvbiBkZWR1cChpdGVtcywgaWRlbnQpIHsK
LSAgdmFyIHNlZW4gPSB7fTsKLSAgaWYgKGlkZW50KSB7Ci0gICAgcmV0dXJuIGl0ZW1zLmZpbHRl
cihmdW5jdGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2VlbltpdGVtW2lkZW50XV0pIHJldHVybiBm
YWxzZTsKLSAgICAgIHNlZW5baXRlbVtpZGVudF1dID0gdHJ1ZTsKLSAgICAgIHJldHVybiB0cnVl
OwotICAgIH0pOwotICB9IGVsc2UgewotICAgIHJldHVybiBpdGVtcy5maWx0ZXIoZnVuY3Rpb24o
aXRlbSkgewotICAgICAgaWYgKHNlZW5baXRlbV0pIHJldHVybiBmYWxzZTsKLSAgICAgIHNlZW5b
aXRlbV0gPSB0cnVlOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSk7Ci0gIH0KLX0sCi0gIHNl
dDogZnVuY3Rpb24gc2V0KCkgewotICB2YXIgYXJncyA9IHR5cGVvZiBhcmd1bWVudHNbMF0gPT09
ICdvYmplY3QnID8gYXJndW1lbnRzWzBdIDogYXJndW1lbnRzOwotICB2YXIgcmV0ID0ge307Ci0g
IGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgewotICAgIHJldFthcmdzW2ld
XSA9IDA7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0sCi0gIFNUQUNLX0FMSUdOOiA4LAotICBnZXRB
bGlnblNpemU6IGZ1bmN0aW9uICh0eXBlLCBzaXplLCB2YXJhcmcpIHsKLSAgICAvLyB3ZSBhbGln
biBpNjRzIGFuZCBkb3VibGVzIG9uIDY0LWJpdCBib3VuZGFyaWVzLCB1bmxpa2UgeDg2Ci0gICAg
aWYgKHR5cGUgPT0gJ2k2NCcgfHwgdHlwZSA9PSAnZG91YmxlJyB8fCB2YXJhcmcpIHJldHVybiA4
OwotICAgIGlmICghdHlwZSkgcmV0dXJuIE1hdGgubWluKHNpemUsIDgpOyAvLyBhbGlnbiBzdHJ1
Y3R1cmVzIGludGVybmFsbHkgdG8gNjQgYml0cwotICAgIHJldHVybiBNYXRoLm1pbihzaXplIHx8
ICh0eXBlID8gUnVudGltZS5nZXROYXRpdmVGaWVsZFNpemUodHlwZSkgOiAwKSwgUnVudGltZS5R
VUFOVFVNX1NJWkUpOwotICB9LAotICBjYWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQ6IGZ1bmN0aW9u
IGNhbGN1bGF0ZVN0cnVjdEFsaWdubWVudCh0eXBlKSB7Ci0gICAgdHlwZS5mbGF0U2l6ZSA9IDA7
Ci0gICAgdHlwZS5hbGlnblNpemUgPSAwOwotICAgIHZhciBkaWZmcyA9IFtdOwotICAgIHZhciBw
cmV2ID0gLTE7Ci0gICAgdmFyIGluZGV4ID0gMDsKLSAgICB0eXBlLmZsYXRJbmRleGVzID0gdHlw
ZS5maWVsZHMubWFwKGZ1bmN0aW9uKGZpZWxkKSB7Ci0gICAgICBpbmRleCsrOwotICAgICAgdmFy
IHNpemUsIGFsaWduU2l6ZTsKLSAgICAgIGlmIChSdW50aW1lLmlzTnVtYmVyVHlwZShmaWVsZCkg
fHwgUnVudGltZS5pc1BvaW50ZXJUeXBlKGZpZWxkKSkgewotICAgICAgICBzaXplID0gUnVudGlt
ZS5nZXROYXRpdmVUeXBlU2l6ZShmaWVsZCk7IC8vIHBhY2sgY2hhcjsgY2hhcjsgaW4gc3RydWN0
cywgYWxzbyBjaGFyW1hdcy4KLSAgICAgICAgYWxpZ25TaXplID0gUnVudGltZS5nZXRBbGlnblNp
emUoZmllbGQsIHNpemUpOwotICAgICAgfSBlbHNlIGlmIChSdW50aW1lLmlzU3RydWN0VHlwZShm
aWVsZCkpIHsKLSAgICAgICAgaWYgKGZpZWxkWzFdID09PSAnMCcpIHsKLSAgICAgICAgICAvLyB0
aGlzIGlzIFswIHggc29tZXRoaW5nXS4gV2hlbiBpbnNpZGUgYW5vdGhlciBzdHJ1Y3R1cmUgbGlr
ZSBoZXJlLCBpdCBtdXN0IGJlIGF0IHRoZSBlbmQsCi0gICAgICAgICAgLy8gYW5kIGl0IGFkZHMg
bm8gc2l6ZQotICAgICAgICAgIC8vIFhYWCB0aGlzIGhhcHBlbnMgaW4gamF2YS1uYm9keSBmb3Ig
ZXhhbXBsZS4uLiBhc3NlcnQoaW5kZXggPT09IHR5cGUuZmllbGRzLmxlbmd0aCwgJ3plcm8tbGVu
Z3RoIGluIHRoZSBtaWRkbGUhJyk7Ci0gICAgICAgICAgc2l6ZSA9IDA7Ci0gICAgICAgICAgYWxp
Z25TaXplID0gdHlwZS5hbGlnblNpemUgfHwgUVVBTlRVTV9TSVpFOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIHNpemUgPSBUeXBlcy50eXBlc1tmaWVsZF0uZmxhdFNpemU7Ci0gICAgICAg
ICAgYWxpZ25TaXplID0gUnVudGltZS5nZXRBbGlnblNpemUobnVsbCwgVHlwZXMudHlwZXNbZmll
bGRdLmFsaWduU2l6ZSk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZmllbGRbMF0gPT0g
J2InKSB7Ci0gICAgICAgIC8vIGJOLCBsYXJnZSBudW1iZXIgZmllbGQsIGxpa2UgYSBbTiB4IGk4
XQotICAgICAgICBzaXplID0gZmllbGQuc3Vic3RyKDEpfDA7Ci0gICAgICAgIGFsaWduU2l6ZSA9
IDE7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aHJvdyAnVW5jbGVhciB0eXBlIGluIHN0cnVj
dDogJyArIGZpZWxkICsgJywgaW4gJyArIHR5cGUubmFtZV8gKyAnIDo6ICcgKyBkdW1wKFR5cGVz
LnR5cGVzW3R5cGUubmFtZV9dKTsKLSAgICAgIH0KLSAgICAgIGlmICh0eXBlLnBhY2tlZCkgYWxp
Z25TaXplID0gMTsKLSAgICAgIHR5cGUuYWxpZ25TaXplID0gTWF0aC5tYXgodHlwZS5hbGlnblNp
emUsIGFsaWduU2l6ZSk7Ci0gICAgICB2YXIgY3VyciA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkodHlw
ZS5mbGF0U2l6ZSwgYWxpZ25TaXplKTsgLy8gaWYgbmVjZXNzYXJ5LCBwbGFjZSB0aGlzIG9uIGFs
aWduZWQgbWVtb3J5Ci0gICAgICB0eXBlLmZsYXRTaXplID0gY3VyciArIHNpemU7Ci0gICAgICBp
ZiAocHJldiA+PSAwKSB7Ci0gICAgICAgIGRpZmZzLnB1c2goY3Vyci1wcmV2KTsKLSAgICAgIH0K
LSAgICAgIHByZXYgPSBjdXJyOwotICAgICAgcmV0dXJuIGN1cnI7Ci0gICAgfSk7Ci0gICAgdHlw
ZS5mbGF0U2l6ZSA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkodHlwZS5mbGF0U2l6ZSwgdHlwZS5hbGln
blNpemUpOwotICAgIGlmIChkaWZmcy5sZW5ndGggPT0gMCkgewotICAgICAgdHlwZS5mbGF0RmFj
dG9yID0gdHlwZS5mbGF0U2l6ZTsKLSAgICB9IGVsc2UgaWYgKFJ1bnRpbWUuZGVkdXAoZGlmZnMp
Lmxlbmd0aCA9PSAxKSB7Ci0gICAgICB0eXBlLmZsYXRGYWN0b3IgPSBkaWZmc1swXTsKLSAgICB9
Ci0gICAgdHlwZS5uZWVkc0ZsYXR0ZW5pbmcgPSAodHlwZS5mbGF0RmFjdG9yICE9IDEpOwotICAg
IHJldHVybiB0eXBlLmZsYXRJbmRleGVzOwotICB9LAotICBnZW5lcmF0ZVN0cnVjdEluZm86IGZ1
bmN0aW9uIChzdHJ1Y3QsIHR5cGVOYW1lLCBvZmZzZXQpIHsKLSAgICB2YXIgdHlwZSwgYWxpZ25t
ZW50OwotICAgIGlmICh0eXBlTmFtZSkgewotICAgICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDA7Ci0g
ICAgICB0eXBlID0gKHR5cGVvZiBUeXBlcyA9PT0gJ3VuZGVmaW5lZCcgPyBSdW50aW1lLnR5cGVJ
bmZvIDogVHlwZXMudHlwZXMpW3R5cGVOYW1lXTsKLSAgICAgIGlmICghdHlwZSkgcmV0dXJuIG51
bGw7Ci0gICAgICBpZiAodHlwZS5maWVsZHMubGVuZ3RoICE9IHN0cnVjdC5sZW5ndGgpIHsKLSAg
ICAgICAgcHJpbnRFcnIoJ051bWJlciBvZiBuYW1lZCBmaWVsZHMgbXVzdCBtYXRjaCB0aGUgdHlw
ZSBmb3IgJyArIHR5cGVOYW1lICsgJzogcG9zc2libHkgZHVwbGljYXRlIHN0cnVjdCBuYW1lcy4g
Q2Fubm90IHJldHVybiBzdHJ1Y3RJbmZvJyk7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgICAg
fQotICAgICAgYWxpZ25tZW50ID0gdHlwZS5mbGF0SW5kZXhlczsKLSAgICB9IGVsc2UgewotICAg
ICAgdmFyIHR5cGUgPSB7IGZpZWxkczogc3RydWN0Lm1hcChmdW5jdGlvbihpdGVtKSB7IHJldHVy
biBpdGVtWzBdIH0pIH07Ci0gICAgICBhbGlnbm1lbnQgPSBSdW50aW1lLmNhbGN1bGF0ZVN0cnVj
dEFsaWdubWVudCh0eXBlKTsKLSAgICB9Ci0gICAgdmFyIHJldCA9IHsKLSAgICAgIF9fc2l6ZV9f
OiB0eXBlLmZsYXRTaXplCi0gICAgfTsKLSAgICBpZiAodHlwZU5hbWUpIHsKLSAgICAgIHN0cnVj
dC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGkpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09
PSAnc3RyaW5nJykgewotICAgICAgICAgIHJldFtpdGVtXSA9IGFsaWdubWVudFtpXSArIG9mZnNl
dDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyBlbWJlZGRlZCBzdHJ1Y3QKLSAgICAg
ICAgICB2YXIga2V5OwotICAgICAgICAgIGZvciAodmFyIGsgaW4gaXRlbSkga2V5ID0gazsKLSAg
ICAgICAgICByZXRba2V5XSA9IFJ1bnRpbWUuZ2VuZXJhdGVTdHJ1Y3RJbmZvKGl0ZW1ba2V5XSwg
dHlwZS5maWVsZHNbaV0sIGFsaWdubWVudFtpXSk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotICAg
IH0gZWxzZSB7Ci0gICAgICBzdHJ1Y3QuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpKSB7Ci0gICAg
ICAgIHJldFtpdGVtWzFdXSA9IGFsaWdubWVudFtpXTsKLSAgICAgIH0pOwotICAgIH0KLSAgICBy
ZXR1cm4gcmV0OwotICB9LAotICBkeW5DYWxsOiBmdW5jdGlvbiAoc2lnLCBwdHIsIGFyZ3MpIHsK
LSAgICBpZiAoYXJncyAmJiBhcmdzLmxlbmd0aCkgewotICAgICAgaWYgKCFhcmdzLnNwbGljZSkg
YXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpOwotICAgICAgYXJncy5zcGxp
Y2UoMCwgMCwgcHRyKTsKLSAgICAgIHJldHVybiBNb2R1bGVbJ2R5bkNhbGxfJyArIHNpZ10uYXBw
bHkobnVsbCwgYXJncyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBNb2R1bGVbJ2R5bkNh
bGxfJyArIHNpZ10uY2FsbChudWxsLCBwdHIpOwotICAgIH0KLSAgfSwKLSAgZnVuY3Rpb25Qb2lu
dGVyczogW10sCi0gIGFkZEZ1bmN0aW9uOiBmdW5jdGlvbiAoZnVuYykgewotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgUnVudGltZS5mdW5jdGlvblBvaW50ZXJzLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICBpZiAoIVJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tpXSkgewotICAgICAgICBSdW50aW1lLmZ1
bmN0aW9uUG9pbnRlcnNbaV0gPSBmdW5jOwotICAgICAgICByZXR1cm4gMiArIDIqaTsKLSAgICAg
IH0KLSAgICB9Ci0gICAgdGhyb3cgJ0ZpbmlzaGVkIHVwIGFsbCByZXNlcnZlZCBmdW5jdGlvbiBw
b2ludGVycy4gVXNlIGEgaGlnaGVyIHZhbHVlIGZvciBSRVNFUlZFRF9GVU5DVElPTl9QT0lOVEVS
Uy4nOwotICB9LAotICByZW1vdmVGdW5jdGlvbjogZnVuY3Rpb24gKGluZGV4KSB7Ci0gICAgUnVu
dGltZS5mdW5jdGlvblBvaW50ZXJzWyhpbmRleC0yKS8yXSA9IG51bGw7Ci0gIH0sCi0gIHdhcm5P
bmNlOiBmdW5jdGlvbiAodGV4dCkgewotICAgIGlmICghUnVudGltZS53YXJuT25jZS5zaG93bikg
UnVudGltZS53YXJuT25jZS5zaG93biA9IHt9OwotICAgIGlmICghUnVudGltZS53YXJuT25jZS5z
aG93blt0ZXh0XSkgewotICAgICAgUnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XSA9IDE7Ci0g
ICAgICBNb2R1bGUucHJpbnRFcnIodGV4dCk7Ci0gICAgfQotICB9LAotICBmdW5jV3JhcHBlcnM6
IHt9LAotICBnZXRGdW5jV3JhcHBlcjogZnVuY3Rpb24gKGZ1bmMsIHNpZykgewotICAgIGFzc2Vy
dChzaWcpOwotICAgIGlmICghUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10pIHsKLSAgICAgIFJ1
bnRpbWUuZnVuY1dyYXBwZXJzW2Z1bmNdID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiBS
dW50aW1lLmR5bkNhbGwoc2lnLCBmdW5jLCBhcmd1bWVudHMpOwotICAgICAgfTsKLSAgICB9Ci0g
ICAgcmV0dXJuIFJ1bnRpbWUuZnVuY1dyYXBwZXJzW2Z1bmNdOwotICB9LAotICBVVEY4UHJvY2Vz
c29yOiBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGJ1ZmZlciA9IFtdOwotICAgIHZhciBuZWVkZWQg
PSAwOwotICAgIHRoaXMucHJvY2Vzc0NDaGFyID0gZnVuY3Rpb24gKGNvZGUpIHsKLSAgICAgIGNv
ZGUgPSBjb2RlICYgMHhmZjsKLSAgICAgIGlmIChuZWVkZWQpIHsKLSAgICAgICAgYnVmZmVyLnB1
c2goY29kZSk7Ci0gICAgICAgIG5lZWRlZC0tOwotICAgICAgfQotICAgICAgaWYgKGJ1ZmZlci5s
ZW5ndGggPT0gMCkgewotICAgICAgICBpZiAoY29kZSA8IDEyOCkgcmV0dXJuIFN0cmluZy5mcm9t
Q2hhckNvZGUoY29kZSk7Ci0gICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBpZiAo
Y29kZSA+IDE5MSAmJiBjb2RlIDwgMjI0KSB7Ci0gICAgICAgICAgbmVlZGVkID0gMTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICBuZWVkZWQgPSAyOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiAnJzsKLSAgICAgIH0KLSAgICAgIGlmIChuZWVkZWQgPiAwKSByZXR1cm4gJyc7Ci0gICAg
ICB2YXIgYzEgPSBidWZmZXJbMF07Ci0gICAgICB2YXIgYzIgPSBidWZmZXJbMV07Ci0gICAgICB2
YXIgYzMgPSBidWZmZXJbMl07Ci0gICAgICB2YXIgcmV0OwotICAgICAgaWYgKGMxID4gMTkxICYm
IGMxIDwgMjI0KSB7Ci0gICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjMSAmIDMx
KSA8PCA2KSB8IChjMiAmIDYzKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXQgPSBTdHJp
bmcuZnJvbUNoYXJDb2RlKCgoYzEgJiAxNSkgPDwgMTIpIHwgKChjMiAmIDYzKSA8PCA2KSB8IChj
MyAmIDYzKSk7Ci0gICAgICB9Ci0gICAgICBidWZmZXIubGVuZ3RoID0gMDsKLSAgICAgIHJldHVy
biByZXQ7Ci0gICAgfQotICAgIHRoaXMucHJvY2Vzc0pTU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5n
KSB7Ci0gICAgICBzdHJpbmcgPSB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoc3RyaW5nKSk7
Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5s
ZW5ndGg7IGkrKykgewotICAgICAgICByZXQucHVzaChzdHJpbmcuY2hhckNvZGVBdChpKSk7Ci0g
ICAgICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgfSwKLSAgc3RhY2tBbGxvYzogZnVu
Y3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IFNUQUNLVE9QO1NUQUNLVE9QID0gKFNUQUNLVE9QICsg
c2l6ZSl8MDtTVEFDS1RPUCA9ICgoKChTVEFDS1RPUCkrNyk+PjMpPDwzKTsgcmV0dXJuIHJldDsg
fSwKLSAgc3RhdGljQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBTVEFUSUNUT1A7
U1RBVElDVE9QID0gKFNUQVRJQ1RPUCArIHNpemUpfDA7U1RBVElDVE9QID0gKCgoKFNUQVRJQ1RP
UCkrNyk+PjMpPDwzKTsgcmV0dXJuIHJldDsgfSwKLSAgZHluYW1pY0FsbG9jOiBmdW5jdGlvbiAo
c2l6ZSkgeyB2YXIgcmV0ID0gRFlOQU1JQ1RPUDtEWU5BTUlDVE9QID0gKERZTkFNSUNUT1AgKyBz
aXplKXwwO0RZTkFNSUNUT1AgPSAoKCgoRFlOQU1JQ1RPUCkrNyk+PjMpPDwzKTsgaWYgKERZTkFN
SUNUT1AgPj0gVE9UQUxfTUVNT1JZKSBlbmxhcmdlTWVtb3J5KCk7OyByZXR1cm4gcmV0OyB9LAot
ICBhbGlnbk1lbW9yeTogZnVuY3Rpb24gKHNpemUscXVhbnR1bSkgeyB2YXIgcmV0ID0gc2l6ZSA9
IE1hdGguY2VpbCgoc2l6ZSkvKHF1YW50dW0gPyBxdWFudHVtIDogOCkpKihxdWFudHVtID8gcXVh
bnR1bSA6IDgpOyByZXR1cm4gcmV0OyB9LAotICBtYWtlQmlnSW50OiBmdW5jdGlvbiAobG93LGhp
Z2gsdW5zaWduZWQpIHsgdmFyIHJldCA9ICh1bnNpZ25lZCA/ICgoKygoKGxvdyk+Pj4oMCkpKSkr
KCgrKCgoaGlnaCk+Pj4oMCkpKSkqKCsoNDI5NDk2NzI5NikpKSkgOiAoKCsoKChsb3cpPj4+KDAp
KSkpKygoKygoKGhpZ2gpfCgwKSkpKSooKyg0Mjk0OTY3Mjk2KSkpKSk7IHJldHVybiByZXQ7IH0s
Ci0gIEdMT0JBTF9CQVNFOiA4LAotICBRVUFOVFVNX1NJWkU6IDQsCi0gIF9fZHVtbXlfXzogMAot
fQotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBSdW50aW1l
IGVzc2VudGlhbHMKLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
dmFyIF9fVEhSRVdfXyA9IDA7IC8vIFVzZWQgaW4gY2hlY2tpbmcgZm9yIHRocm93biBleGNlcHRp
b25zLgotdmFyIEFCT1JUID0gZmFsc2U7IC8vIHdoZXRoZXIgd2UgYXJlIHF1aXR0aW5nIHRoZSBh
cHBsaWNhdGlvbi4gbm8gY29kZSBzaG91bGQgcnVuIGFmdGVyIHRoaXMuIHNldCBpbiBleGl0KCkg
YW5kIGFib3J0KCkKLXZhciBFWElUU1RBVFVTID0gMDsKLXZhciB1bmRlZiA9IDA7Ci0vLyB0ZW1w
SW50IGlzIHVzZWQgZm9yIDMyLWJpdCBzaWduZWQgdmFsdWVzIG9yIHNtYWxsZXIuIHRlbXBCaWdJ
bnQgaXMgdXNlZAotLy8gZm9yIDMyLWJpdCB1bnNpZ25lZCB2YWx1ZXMgb3IgbW9yZSB0aGFuIDMy
IGJpdHMuIFRPRE86IGF1ZGl0IGFsbCB1c2VzIG9mIHRlbXBJbnQKLXZhciB0ZW1wVmFsdWUsIHRl
bXBJbnQsIHRlbXBCaWdJbnQsIHRlbXBJbnQyLCB0ZW1wQmlnSW50MiwgdGVtcFBhaXIsIHRlbXBC
aWdJbnRJLCB0ZW1wQmlnSW50UiwgdGVtcEJpZ0ludFMsIHRlbXBCaWdJbnRQLCB0ZW1wQmlnSW50
RDsKLXZhciB0ZW1wSTY0LCB0ZW1wSTY0YjsKLXZhciB0ZW1wUmV0MCwgdGVtcFJldDEsIHRlbXBS
ZXQyLCB0ZW1wUmV0MywgdGVtcFJldDQsIHRlbXBSZXQ1LCB0ZW1wUmV0NiwgdGVtcFJldDcsIHRl
bXBSZXQ4LCB0ZW1wUmV0OTsKLWZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24sIHRleHQpIHsKLSAg
aWYgKCFjb25kaXRpb24pIHsKLSAgICBhYm9ydCgnQXNzZXJ0aW9uIGZhaWxlZDogJyArIHRleHQp
OwotICB9Ci19Ci12YXIgZ2xvYmFsU2NvcGUgPSB0aGlzOwotLy8gQyBjYWxsaW5nIGludGVyZmFj
ZS4gQSBjb252ZW5pZW50IHdheSB0byBjYWxsIEMgZnVuY3Rpb25zIChpbiBDIGZpbGVzLCBvcgot
Ly8gZGVmaW5lZCB3aXRoIGV4dGVybiAiQyIpLgotLy8KLS8vIE5vdGU6IExMVk0gb3B0aW1pemF0
aW9ucyBjYW4gaW5saW5lIGFuZCByZW1vdmUgZnVuY3Rpb25zLCBhZnRlciB3aGljaCB5b3Ugd2ls
bCBub3QgYmUKLS8vICAgICAgIGFibGUgdG8gY2FsbCB0aGVtLiBDbG9zdXJlIGNhbiBhbHNvIGRv
IHNvLiBUbyBhdm9pZCB0aGF0LCBhZGQgeW91ciBmdW5jdGlvbiB0bwotLy8gICAgICAgdGhlIGV4
cG9ydHMgdXNpbmcgc29tZXRoaW5nIGxpa2UKLS8vCi0vLyAgICAgICAgIC1zIEVYUE9SVEVEX0ZV
TkNUSU9OUz0nWyJfbWFpbiIsICJfbXlmdW5jIl0nCi0vLwotLy8gQHBhcmFtIGlkZW50ICAgICAg
VGhlIG5hbWUgb2YgdGhlIEMgZnVuY3Rpb24gKG5vdGUgdGhhdCBDKysgZnVuY3Rpb25zIHdpbGwg
YmUgbmFtZS1tYW5nbGVkIC0gdXNlIGV4dGVybiAiQyIpCi0vLyBAcGFyYW0gcmV0dXJuVHlwZSBU
aGUgcmV0dXJuIHR5cGUgb2YgdGhlIGZ1bmN0aW9uLCBvbmUgb2YgdGhlIEpTIHR5cGVzICdudW1i
ZXInLCAnc3RyaW5nJyBvciAnYXJyYXknICh1c2UgJ251bWJlcicgZm9yIGFueSBDIHBvaW50ZXIs
IGFuZAotLy8gICAgICAgICAgICAgICAgICAgJ2FycmF5JyBmb3IgSmF2YVNjcmlwdCBhcnJheXMg
YW5kIHR5cGVkIGFycmF5czsgbm90ZSB0aGF0IGFycmF5cyBhcmUgOC1iaXQpLgotLy8gQHBhcmFt
IGFyZ1R5cGVzICAgQW4gYXJyYXkgb2YgdGhlIHR5cGVzIG9mIGFyZ3VtZW50cyBmb3IgdGhlIGZ1
bmN0aW9uIChpZiB0aGVyZSBhcmUgbm8gYXJndW1lbnRzLCB0aGlzIGNhbiBiZSBvbW1pdHRlZCku
IFR5cGVzIGFyZSBhcyBpbiByZXR1cm5UeXBlLAotLy8gICAgICAgICAgICAgICAgICAgZXhjZXB0
IHRoYXQgJ2FycmF5JyBpcyBub3QgcG9zc2libGUgKHRoZXJlIGlzIG5vIHdheSBmb3IgdXMgdG8g
a25vdyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSkKLS8vIEBwYXJhbSBhcmdzICAgICAgIEFuIGFy
cmF5IG9mIHRoZSBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0aW9uLCBhcyBuYXRpdmUgSlMgdmFsdWVz
IChhcyBpbiByZXR1cm5UeXBlKQotLy8gICAgICAgICAgICAgICAgICAgTm90ZSB0aGF0IHN0cmlu
ZyBhcmd1bWVudHMgd2lsbCBiZSBzdG9yZWQgb24gdGhlIHN0YWNrICh0aGUgSlMgc3RyaW5nIHdp
bGwgYmVjb21lIGEgQyBzdHJpbmcgb24gdGhlIHN0YWNrKS4KLS8vIEByZXR1cm4gICAgICAgICAg
IFRoZSByZXR1cm4gdmFsdWUsIGFzIGEgbmF0aXZlIEpTIHZhbHVlIChhcyBpbiByZXR1cm5UeXBl
KQotZnVuY3Rpb24gY2NhbGwoaWRlbnQsIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBhcmdzKSB7Ci0g
IHJldHVybiBjY2FsbEZ1bmMoZ2V0Q0Z1bmMoaWRlbnQpLCByZXR1cm5UeXBlLCBhcmdUeXBlcywg
YXJncyk7Ci19Ci1Nb2R1bGVbImNjYWxsIl0gPSBjY2FsbDsKLS8vIFJldHVybnMgdGhlIEMgZnVu
Y3Rpb24gd2l0aCBhIHNwZWNpZmllZCBpZGVudGlmaWVyIChmb3IgQysrLCB5b3UgbmVlZCB0byBk
byBtYW51YWwgbmFtZSBtYW5nbGluZykKLWZ1bmN0aW9uIGdldENGdW5jKGlkZW50KSB7Ci0gIHRy
eSB7Ci0gICAgdmFyIGZ1bmMgPSBNb2R1bGVbJ18nICsgaWRlbnRdOyAvLyBjbG9zdXJlIGV4cG9y
dGVkIGZ1bmN0aW9uCi0gICAgaWYgKCFmdW5jKSBmdW5jID0gZXZhbCgnXycgKyBpZGVudCk7IC8v
IGV4cGxpY2l0IGxvb2t1cAotICB9IGNhdGNoKGUpIHsKLSAgfQotICBhc3NlcnQoZnVuYywgJ0Nh
bm5vdCBjYWxsIHVua25vd24gZnVuY3Rpb24gJyArIGlkZW50ICsgJyAocGVyaGFwcyBMTFZNIG9w
dGltaXphdGlvbnMgb3IgY2xvc3VyZSByZW1vdmVkIGl0PyknKTsKLSAgcmV0dXJuIGZ1bmM7Ci19
Ci0vLyBJbnRlcm5hbCBmdW5jdGlvbiB0aGF0IGRvZXMgYSBDIGNhbGwgdXNpbmcgYSBmdW5jdGlv
biwgbm90IGFuIGlkZW50aWZpZXIKLWZ1bmN0aW9uIGNjYWxsRnVuYyhmdW5jLCByZXR1cm5UeXBl
LCBhcmdUeXBlcywgYXJncykgewotICB2YXIgc3RhY2sgPSAwOwotICBmdW5jdGlvbiB0b0ModmFs
dWUsIHR5cGUpIHsKLSAgICBpZiAodHlwZSA9PSAnc3RyaW5nJykgewotICAgICAgaWYgKHZhbHVl
ID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IDApIHJldHVybiAw
OyAvLyBudWxsIHN0cmluZwotICAgICAgaWYgKCFzdGFjaykgc3RhY2sgPSBSdW50aW1lLnN0YWNr
U2F2ZSgpOwotICAgICAgdmFyIHJldCA9IFJ1bnRpbWUuc3RhY2tBbGxvYyh2YWx1ZS5sZW5ndGgr
MSk7Ci0gICAgICB3cml0ZVN0cmluZ1RvTWVtb3J5KHZhbHVlLCByZXQpOwotICAgICAgcmV0dXJu
IHJldDsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2FycmF5JykgewotICAgICAgaWYgKCFzdGFj
aykgc3RhY2sgPSBSdW50aW1lLnN0YWNrU2F2ZSgpOwotICAgICAgdmFyIHJldCA9IFJ1bnRpbWUu
c3RhY2tBbGxvYyh2YWx1ZS5sZW5ndGgpOwotICAgICAgd3JpdGVBcnJheVRvTWVtb3J5KHZhbHVl
LCByZXQpOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9
Ci0gIGZ1bmN0aW9uIGZyb21DKHZhbHVlLCB0eXBlKSB7Ci0gICAgaWYgKHR5cGUgPT0gJ3N0cmlu
ZycpIHsKLSAgICAgIHJldHVybiBQb2ludGVyX3N0cmluZ2lmeSh2YWx1ZSk7Ci0gICAgfQotICAg
IGFzc2VydCh0eXBlICE9ICdhcnJheScpOwotICAgIHJldHVybiB2YWx1ZTsKLSAgfQotICB2YXIg
aSA9IDA7Ci0gIHZhciBjQXJncyA9IGFyZ3MgPyBhcmdzLm1hcChmdW5jdGlvbihhcmcpIHsKLSAg
ICByZXR1cm4gdG9DKGFyZywgYXJnVHlwZXNbaSsrXSk7Ci0gIH0pIDogW107Ci0gIHZhciByZXQg
PSBmcm9tQyhmdW5jLmFwcGx5KG51bGwsIGNBcmdzKSwgcmV0dXJuVHlwZSk7Ci0gIGlmIChzdGFj
aykgUnVudGltZS5zdGFja1Jlc3RvcmUoc3RhY2spOwotICByZXR1cm4gcmV0OwotfQotLy8gUmV0
dXJucyBhIG5hdGl2ZSBKUyB3cmFwcGVyIGZvciBhIEMgZnVuY3Rpb24uIFRoaXMgaXMgc2ltaWxh
ciB0byBjY2FsbCwgYnV0Ci0vLyByZXR1cm5zIGEgZnVuY3Rpb24geW91IGNhbiBjYWxsIHJlcGVh
dGVkbHkgaW4gYSBub3JtYWwgd2F5LiBGb3IgZXhhbXBsZToKLS8vCi0vLyAgIHZhciBteV9mdW5j
dGlvbiA9IGN3cmFwKCdteV9jX2Z1bmN0aW9uJywgJ251bWJlcicsIFsnbnVtYmVyJywgJ251bWJl
ciddKTsKLS8vICAgYWxlcnQobXlfZnVuY3Rpb24oNSwgMjIpKTsKLS8vICAgYWxlcnQobXlfZnVu
Y3Rpb24oOTksIDEyKSk7Ci0vLwotZnVuY3Rpb24gY3dyYXAoaWRlbnQsIHJldHVyblR5cGUsIGFy
Z1R5cGVzKSB7Ci0gIHZhciBmdW5jID0gZ2V0Q0Z1bmMoaWRlbnQpOwotICByZXR1cm4gZnVuY3Rp
b24oKSB7Ci0gICAgcmV0dXJuIGNjYWxsRnVuYyhmdW5jLCByZXR1cm5UeXBlLCBhcmdUeXBlcywg
QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7Ci0gIH0KLX0KLU1vZHVsZVsi
Y3dyYXAiXSA9IGN3cmFwOwotLy8gU2V0cyBhIHZhbHVlIGluIG1lbW9yeSBpbiBhIGR5bmFtaWMg
d2F5IGF0IHJ1bi10aW1lLiBVc2VzIHRoZQotLy8gdHlwZSBkYXRhLiBUaGlzIGlzIHRoZSBzYW1l
IGFzIG1ha2VTZXRWYWx1ZSwgZXhjZXB0IHRoYXQKLS8vIG1ha2VTZXRWYWx1ZSBpcyBkb25lIGF0
IGNvbXBpbGUtdGltZSBhbmQgZ2VuZXJhdGVzIHRoZSBuZWVkZWQKLS8vIGNvZGUgdGhlbiwgd2hl
cmVhcyB0aGlzIGZ1bmN0aW9uIHBpY2tzIHRoZSByaWdodCBjb2RlIGF0Ci0vLyBydW4tdGltZS4K
LS8vIE5vdGUgdGhhdCBzZXRWYWx1ZSBhbmQgZ2V0VmFsdWUgb25seSBkbyAqYWxpZ25lZCogd3Jp
dGVzIGFuZCByZWFkcyEKLS8vIE5vdGUgdGhhdCBjY2FsbCB1c2VzIEpTIHR5cGVzIGFzIGZvciBk
ZWZpbmluZyB0eXBlcywgd2hpbGUgc2V0VmFsdWUgYW5kCi0vLyBnZXRWYWx1ZSBuZWVkIExMVk0g
dHlwZXMgKCdpOCcsICdpMzInKSAtIHRoaXMgaXMgYSBsb3dlci1sZXZlbCBvcGVyYXRpb24KLWZ1
bmN0aW9uIHNldFZhbHVlKHB0ciwgdmFsdWUsIHR5cGUsIG5vU2FmZSkgewotICB0eXBlID0gdHlw
ZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQodHlwZS5sZW5ndGgtMSkgPT09ICcqJykgdHlw
ZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzItYml0Ci0gICAgc3dpdGNoKHR5cGUpIHsKLSAg
ICAgIGNhc2UgJ2kxJzogSEVBUDhbKHB0cildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2k4
JzogSEVBUDhbKHB0cildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2kxNic6IEhFQVAxNlso
KHB0cik+PjEpXT12YWx1ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdpMzInOiBIRUFQMzJbKChwdHIp
Pj4yKV09dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnaTY0JzogKHRlbXBJNjQgPSBbdmFsdWU+
Pj4wLCgoTWF0aC5taW4oKCsoTWF0aC5mbG9vcigodmFsdWUpLygrKDQyOTQ5NjcyOTYpKSkpKSwg
KCsoNDI5NDk2NzI5NSkpKSl8MCk+Pj4wXSxIRUFQMzJbKChwdHIpPj4yKV09dGVtcEk2NFswXSxI
RUFQMzJbKCgocHRyKSsoNCkpPj4yKV09dGVtcEk2NFsxXSk7IGJyZWFrOwotICAgICAgY2FzZSAn
ZmxvYXQnOiBIRUFQRjMyWygocHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2Rv
dWJsZSc6IEhFQVBGNjRbKChwdHIpPj4zKV09dmFsdWU7IGJyZWFrOwotICAgICAgZGVmYXVsdDog
YWJvcnQoJ2ludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICcgKyB0eXBlKTsKLSAgICB9Ci19Ci1N
b2R1bGVbJ3NldFZhbHVlJ10gPSBzZXRWYWx1ZTsKLS8vIFBhcmFsbGVsIHRvIHNldFZhbHVlLgot
ZnVuY3Rpb24gZ2V0VmFsdWUocHRyLCB0eXBlLCBub1NhZmUpIHsKLSAgdHlwZSA9IHR5cGUgfHwg
J2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAn
aTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJpdAotICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICBj
YXNlICdpMSc6IHJldHVybiBIRUFQOFsocHRyKV07Ci0gICAgICBjYXNlICdpOCc6IHJldHVybiBI
RUFQOFsocHRyKV07Ci0gICAgICBjYXNlICdpMTYnOiByZXR1cm4gSEVBUDE2WygocHRyKT4+MSld
OwotICAgICAgY2FzZSAnaTMyJzogcmV0dXJuIEhFQVAzMlsoKHB0cik+PjIpXTsKLSAgICAgIGNh
c2UgJ2k2NCc6IHJldHVybiBIRUFQMzJbKChwdHIpPj4yKV07Ci0gICAgICBjYXNlICdmbG9hdCc6
IHJldHVybiBIRUFQRjMyWygocHRyKT4+MildOwotICAgICAgY2FzZSAnZG91YmxlJzogcmV0dXJu
IEhFQVBGNjRbKChwdHIpPj4zKV07Ci0gICAgICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBl
IGZvciBzZXRWYWx1ZTogJyArIHR5cGUpOwotICAgIH0KLSAgcmV0dXJuIG51bGw7Ci19Ci1Nb2R1
bGVbJ2dldFZhbHVlJ10gPSBnZXRWYWx1ZTsKLXZhciBBTExPQ19OT1JNQUwgPSAwOyAvLyBUcmll
cyB0byB1c2UgX21hbGxvYygpCi12YXIgQUxMT0NfU1RBQ0sgPSAxOyAvLyBMaXZlcyBmb3IgdGhl
IGR1cmF0aW9uIG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGNhbGwKLXZhciBBTExPQ19TVEFUSUMg
PSAyOyAvLyBDYW5ub3QgYmUgZnJlZWQKLXZhciBBTExPQ19EWU5BTUlDID0gMzsgLy8gQ2Fubm90
IGJlIGZyZWVkIGV4Y2VwdCB0aHJvdWdoIHNicmsKLXZhciBBTExPQ19OT05FID0gNDsgLy8gRG8g
bm90IGFsbG9jYXRlCi1Nb2R1bGVbJ0FMTE9DX05PUk1BTCddID0gQUxMT0NfTk9STUFMOwotTW9k
dWxlWydBTExPQ19TVEFDSyddID0gQUxMT0NfU1RBQ0s7Ci1Nb2R1bGVbJ0FMTE9DX1NUQVRJQydd
ID0gQUxMT0NfU1RBVElDOwotTW9kdWxlWydBTExPQ19EWU5BTUlDJ10gPSBBTExPQ19EWU5BTUlD
OwotTW9kdWxlWydBTExPQ19OT05FJ10gPSBBTExPQ19OT05FOwotLy8gYWxsb2NhdGUoKTogVGhp
cyBpcyBmb3IgaW50ZXJuYWwgdXNlLiBZb3UgY2FuIHVzZSBpdCB5b3Vyc2VsZiBhcyB3ZWxsLCBi
dXQgdGhlIGludGVyZmFjZQotLy8gICAgICAgICAgICAgaXMgYSBsaXR0bGUgdHJpY2t5IChzZWUg
ZG9jcyByaWdodCBiZWxvdykuIFRoZSByZWFzb24gaXMgdGhhdCBpdCBpcyBvcHRpbWl6ZWQKLS8v
ICAgICAgICAgICAgIGZvciBtdWx0aXBsZSBzeW50YXhlcyB0byBzYXZlIHNwYWNlIGluIGdlbmVy
YXRlZCBjb2RlLiBTbyB5b3Ugc2hvdWxkCi0vLyAgICAgICAgICAgICBub3JtYWxseSBub3QgdXNl
IGFsbG9jYXRlKCksIGFuZCBpbnN0ZWFkIGFsbG9jYXRlIG1lbW9yeSB1c2luZyBfbWFsbG9jKCks
Ci0vLyAgICAgICAgICAgICBpbml0aWFsaXplIGl0IHdpdGggc2V0VmFsdWUoKSwgYW5kIHNvIGZv
cnRoLgotLy8gQHNsYWI6IEFuIGFycmF5IG9mIGRhdGEsIG9yIGEgbnVtYmVyLiBJZiBhIG51bWJl
ciwgdGhlbiB0aGUgc2l6ZSBvZiB0aGUgYmxvY2sgdG8gYWxsb2NhdGUsCi0vLyAgICAgICAgaW4g
KmJ5dGVzKiAobm90ZSB0aGF0IHRoaXMgaXMgc29tZXRpbWVzIGNvbmZ1c2luZzogdGhlIG5leHQg
cGFyYW1ldGVyIGRvZXMgbm90Ci0vLyAgICAgICAgYWZmZWN0IHRoaXMhKQotLy8gQHR5cGVzOiBF
aXRoZXIgYW4gYXJyYXkgb2YgdHlwZXMsIG9uZSBmb3IgZWFjaCBieXRlIChvciAwIGlmIG5vIHR5
cGUgYXQgdGhhdCBwb3NpdGlvbiksCi0vLyAgICAgICAgIG9yIGEgc2luZ2xlIHR5cGUgd2hpY2gg
aXMgdXNlZCBmb3IgdGhlIGVudGlyZSBibG9jay4gVGhpcyBvbmx5IG1hdHRlcnMgaWYgdGhlcmUK
LS8vICAgICAgICAgaXMgaW5pdGlhbCBkYXRhIC0gaWYgQHNsYWIgaXMgYSBudW1iZXIsIHRoZW4g
dGhpcyBkb2VzIG5vdCBtYXR0ZXIgYXQgYWxsIGFuZCBpcwotLy8gICAgICAgICBpZ25vcmVkLgot
Ly8gQGFsbG9jYXRvcjogSG93IHRvIGFsbG9jYXRlIG1lbW9yeSwgc2VlIEFMTE9DXyoKLWZ1bmN0
aW9uIGFsbG9jYXRlKHNsYWIsIHR5cGVzLCBhbGxvY2F0b3IsIHB0cikgewotICB2YXIgemVyb2lu
aXQsIHNpemU7Ci0gIGlmICh0eXBlb2Ygc2xhYiA9PT0gJ251bWJlcicpIHsKLSAgICB6ZXJvaW5p
dCA9IHRydWU7Ci0gICAgc2l6ZSA9IHNsYWI7Ci0gIH0gZWxzZSB7Ci0gICAgemVyb2luaXQgPSBm
YWxzZTsKLSAgICBzaXplID0gc2xhYi5sZW5ndGg7Ci0gIH0KLSAgdmFyIHNpbmdsZVR5cGUgPSB0
eXBlb2YgdHlwZXMgPT09ICdzdHJpbmcnID8gdHlwZXMgOiBudWxsOwotICB2YXIgcmV0OwotICBp
ZiAoYWxsb2NhdG9yID09IEFMTE9DX05PTkUpIHsKLSAgICByZXQgPSBwdHI7Ci0gIH0gZWxzZSB7
Ci0gICAgcmV0ID0gW19tYWxsb2MsIFJ1bnRpbWUuc3RhY2tBbGxvYywgUnVudGltZS5zdGF0aWNB
bGxvYywgUnVudGltZS5keW5hbWljQWxsb2NdW2FsbG9jYXRvciA9PT0gdW5kZWZpbmVkID8gQUxM
T0NfU1RBVElDIDogYWxsb2NhdG9yXShNYXRoLm1heChzaXplLCBzaW5nbGVUeXBlID8gMSA6IHR5
cGVzLmxlbmd0aCkpOwotICB9Ci0gIGlmICh6ZXJvaW5pdCkgewotICAgIHZhciBwdHIgPSByZXQs
IHN0b3A7Ci0gICAgYXNzZXJ0KChyZXQgJiAzKSA9PSAwKTsKLSAgICBzdG9wID0gcmV0ICsgKHNp
emUgJiB+Myk7Ci0gICAgZm9yICg7IHB0ciA8IHN0b3A7IHB0ciArPSA0KSB7Ci0gICAgICBIRUFQ
MzJbKChwdHIpPj4yKV09MDsKLSAgICB9Ci0gICAgc3RvcCA9IHJldCArIHNpemU7Ci0gICAgd2hp
bGUgKHB0ciA8IHN0b3ApIHsKLSAgICAgIEhFQVA4WygocHRyKyspfDApXT0wOwotICAgIH0KLSAg
ICByZXR1cm4gcmV0OwotICB9Ci0gIGlmIChzaW5nbGVUeXBlID09PSAnaTgnKSB7Ci0gICAgaWYg
KHNsYWIuc3ViYXJyYXkgfHwgc2xhYi5zbGljZSkgewotICAgICAgSEVBUFU4LnNldChzbGFiLCBy
ZXQpOwotICAgIH0gZWxzZSB7Ci0gICAgICBIRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHNsYWIp
LCByZXQpOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9Ci0gIHZhciBpID0gMCwgdHlwZSwg
dHlwZVNpemUsIHByZXZpb3VzVHlwZTsKLSAgd2hpbGUgKGkgPCBzaXplKSB7Ci0gICAgdmFyIGN1
cnIgPSBzbGFiW2ldOwotICAgIGlmICh0eXBlb2YgY3VyciA9PT0gJ2Z1bmN0aW9uJykgewotICAg
ICAgY3VyciA9IFJ1bnRpbWUuZ2V0RnVuY3Rpb25JbmRleChjdXJyKTsKLSAgICB9Ci0gICAgdHlw
ZSA9IHNpbmdsZVR5cGUgfHwgdHlwZXNbaV07Ci0gICAgaWYgKHR5cGUgPT09IDApIHsKLSAgICAg
IGkrKzsKLSAgICAgIGNvbnRpbnVlOwotICAgIH0KLSAgICBpZiAodHlwZSA9PSAnaTY0JykgdHlw
ZSA9ICdpMzInOyAvLyBzcGVjaWFsIGNhc2U6IHdlIGhhdmUgb25lIGkzMiBoZXJlLCBhbmQgb25l
IGkzMiBsYXRlcgotICAgIHNldFZhbHVlKHJldCtpLCBjdXJyLCB0eXBlKTsKLSAgICAvLyBubyBu
ZWVkIHRvIGxvb2sgdXAgc2l6ZSB1bmxlc3MgdHlwZSBjaGFuZ2VzLCBzbyBjYWNoZSBpdAotICAg
IGlmIChwcmV2aW91c1R5cGUgIT09IHR5cGUpIHsKLSAgICAgIHR5cGVTaXplID0gUnVudGltZS5n
ZXROYXRpdmVUeXBlU2l6ZSh0eXBlKTsKLSAgICAgIHByZXZpb3VzVHlwZSA9IHR5cGU7Ci0gICAg
fQotICAgIGkgKz0gdHlwZVNpemU7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsnYWxs
b2NhdGUnXSA9IGFsbG9jYXRlOwotZnVuY3Rpb24gUG9pbnRlcl9zdHJpbmdpZnkocHRyLCAvKiBv
cHRpb25hbCAqLyBsZW5ndGgpIHsKLSAgLy8gRmluZCB0aGUgbGVuZ3RoLCBhbmQgY2hlY2sgZm9y
IFVURiB3aGlsZSBkb2luZyBzbwotICB2YXIgaGFzVXRmID0gZmFsc2U7Ci0gIHZhciB0OwotICB2
YXIgaSA9IDA7Ci0gIHdoaWxlICgxKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCld
OwotICAgIGlmICh0ID49IDEyOCkgaGFzVXRmID0gdHJ1ZTsKLSAgICBlbHNlIGlmICh0ID09IDAg
JiYgIWxlbmd0aCkgYnJlYWs7Ci0gICAgaSsrOwotICAgIGlmIChsZW5ndGggJiYgaSA9PSBsZW5n
dGgpIGJyZWFrOwotICB9Ci0gIGlmICghbGVuZ3RoKSBsZW5ndGggPSBpOwotICB2YXIgcmV0ID0g
Jyc7Ci0gIGlmICghaGFzVXRmKSB7Ci0gICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7IC8vIHNwbGl0
IHVwIGludG8gY2h1bmtzLCBiZWNhdXNlIC5hcHBseSBvbiBhIGh1Z2Ugc3RyaW5nIGNhbiBvdmVy
ZmxvdyB0aGUgc3RhY2sKLSAgICB2YXIgY3VycjsKLSAgICB3aGlsZSAobGVuZ3RoID4gMCkgewot
ICAgICAgY3VyciA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3Vi
YXJyYXkocHRyLCBwdHIgKyBNYXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKLSAgICAgIHJl
dCA9IHJldCA/IHJldCArIGN1cnIgOiBjdXJyOwotICAgICAgcHRyICs9IE1BWF9DSFVOSzsKLSAg
ICAgIGxlbmd0aCAtPSBNQVhfQ0hVTks7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAg
dmFyIHV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gIGZvciAoaSA9IDA7IGkg
PCBsZW5ndGg7IGkrKykgewotICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKLSAgICBy
ZXQgKz0gdXRmOC5wcm9jZXNzQ0NoYXIodCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVs
ZVsnUG9pbnRlcl9zdHJpbmdpZnknXSA9IFBvaW50ZXJfc3RyaW5naWZ5OwotLy8gTWVtb3J5IG1h
bmFnZW1lbnQKLXZhciBQQUdFX1NJWkUgPSA0MDk2OwotZnVuY3Rpb24gYWxpZ25NZW1vcnlQYWdl
KHgpIHsKLSAgcmV0dXJuICgoeCs0MDk1KT4+MTIpPDwxMjsKLX0KLXZhciBIRUFQOwotdmFyIEhF
QVA4LCBIRUFQVTgsIEhFQVAxNiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBI
RUFQRjY0OwotdmFyIFNUQVRJQ19CQVNFID0gMCwgU1RBVElDVE9QID0gMCwgc3RhdGljU2VhbGVk
ID0gZmFsc2U7IC8vIHN0YXRpYyBhcmVhCi12YXIgU1RBQ0tfQkFTRSA9IDAsIFNUQUNLVE9QID0g
MCwgU1RBQ0tfTUFYID0gMDsgLy8gc3RhY2sgYXJlYQotdmFyIERZTkFNSUNfQkFTRSA9IDAsIERZ
TkFNSUNUT1AgPSAwOyAvLyBkeW5hbWljIGFyZWEgaGFuZGxlZCBieSBzYnJrCi1mdW5jdGlvbiBl
bmxhcmdlTWVtb3J5KCkgewotICBhYm9ydCgnQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cyBp
biBhc20uanMuIEVpdGhlciAoMSkgY29tcGlsZSB3aXRoIC1zIFRPVEFMX01FTU9SWT1YIHdpdGgg
WCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSwgb3IgKDIpIHNldCBNb2R1bGUuVE9UQUxf
TUVNT1JZIGJlZm9yZSB0aGUgcHJvZ3JhbSBydW5zLicpOwotfQotdmFyIFRPVEFMX1NUQUNLID0g
TW9kdWxlWydUT1RBTF9TVEFDSyddIHx8IDUyNDI4ODA7Ci12YXIgVE9UQUxfTUVNT1JZID0gTW9k
dWxlWydUT1RBTF9NRU1PUlknXSB8fCAxMzQyMTc3Mjg7Ci12YXIgRkFTVF9NRU1PUlkgPSBNb2R1
bGVbJ0ZBU1RfTUVNT1JZJ10gfHwgMjA5NzE1MjsKLS8vIEluaXRpYWxpemUgdGhlIHJ1bnRpbWUn
cyBtZW1vcnkKLS8vIGNoZWNrIGZvciBmdWxsIGVuZ2luZSBzdXBwb3J0ICh1c2Ugc3RyaW5nICdz
dWJhcnJheScgdG8gYXZvaWQgY2xvc3VyZSBjb21waWxlciBjb25mdXNpb24pCi1hc3NlcnQoISFJ
bnQzMkFycmF5ICYmICEhRmxvYXQ2NEFycmF5ICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzdWJh
cnJheSddKSAmJiAhIShuZXcgSW50MzJBcnJheSgxKVsnc2V0J10pLAotICAgICAgICdDYW5ub3Qg
ZmFsbGJhY2sgdG8gbm9uLXR5cGVkIGFycmF5IGNhc2U6IENvZGUgaXMgdG9vIHNwZWNpYWxpemVk
Jyk7Ci12YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKFRPVEFMX01FTU9SWSk7Ci1IRUFQOCA9
IG5ldyBJbnQ4QXJyYXkoYnVmZmVyKTsKLUhFQVAxNiA9IG5ldyBJbnQxNkFycmF5KGJ1ZmZlcik7
Ci1IRUFQMzIgPSBuZXcgSW50MzJBcnJheShidWZmZXIpOwotSEVBUFU4ID0gbmV3IFVpbnQ4QXJy
YXkoYnVmZmVyKTsKLUhFQVBVMTYgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsKLUhFQVBVMzIg
PSBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTsKLUhFQVBGMzIgPSBuZXcgRmxvYXQzMkFycmF5KGJ1
ZmZlcik7Ci1IRUFQRjY0ID0gbmV3IEZsb2F0NjRBcnJheShidWZmZXIpOwotLy8gRW5kaWFubmVz
cyBjaGVjayAobm90ZTogYXNzdW1lcyBjb21waWxlciBhcmNoIHdhcyBsaXR0bGUtZW5kaWFuKQot
SEVBUDMyWzBdID0gMjU1OwotYXNzZXJ0KEhFQVBVOFswXSA9PT0gMjU1ICYmIEhFQVBVOFszXSA9
PT0gMCwgJ1R5cGVkIGFycmF5cyAyIG11c3QgYmUgcnVuIG9uIGEgbGl0dGxlLWVuZGlhbiBzeXN0
ZW0nKTsKLU1vZHVsZVsnSEVBUCddID0gSEVBUDsKLU1vZHVsZVsnSEVBUDgnXSA9IEhFQVA4Owot
TW9kdWxlWydIRUFQMTYnXSA9IEhFQVAxNjsKLU1vZHVsZVsnSEVBUDMyJ10gPSBIRUFQMzI7Ci1N
b2R1bGVbJ0hFQVBVOCddID0gSEVBUFU4OwotTW9kdWxlWydIRUFQVTE2J10gPSBIRUFQVTE2Owot
TW9kdWxlWydIRUFQVTMyJ10gPSBIRUFQVTMyOwotTW9kdWxlWydIRUFQRjMyJ10gPSBIRUFQRjMy
OwotTW9kdWxlWydIRUFQRjY0J10gPSBIRUFQRjY0OwotZnVuY3Rpb24gY2FsbFJ1bnRpbWVDYWxs
YmFja3MoY2FsbGJhY2tzKSB7Ci0gIHdoaWxlKGNhbGxiYWNrcy5sZW5ndGggPiAwKSB7Ci0gICAg
dmFyIGNhbGxiYWNrID0gY2FsbGJhY2tzLnNoaWZ0KCk7Ci0gICAgaWYgKHR5cGVvZiBjYWxsYmFj
ayA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICBjYWxsYmFjaygpOwotICAgICAgY29udGludWU7Ci0g
ICAgfQotICAgIHZhciBmdW5jID0gY2FsbGJhY2suZnVuYzsKLSAgICBpZiAodHlwZW9mIGZ1bmMg
PT09ICdudW1iZXInKSB7Ci0gICAgICBpZiAoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQpIHsK
LSAgICAgICAgUnVudGltZS5keW5DYWxsKCd2JywgZnVuYyk7Ci0gICAgICB9IGVsc2UgewotICAg
ICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZnVuYywgW2NhbGxiYWNrLmFyZ10pOwotICAgICAg
fQotICAgIH0gZWxzZSB7Ci0gICAgICBmdW5jKGNhbGxiYWNrLmFyZyA9PT0gdW5kZWZpbmVkID8g
bnVsbCA6IGNhbGxiYWNrLmFyZyk7Ci0gICAgfQotICB9Ci19Ci12YXIgX19BVFBSRVJVTl9fICA9
IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGJlZm9yZSB0aGUgcnVudGltZSBpcyBpbml0aWFsaXpl
ZAotdmFyIF9fQVRJTklUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBkdXJpbmcgc3Rh
cnR1cAotdmFyIF9fQVRNQUlOX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCB3aGVuIG1h
aW4oKSBpcyB0byBiZSBydW4KLXZhciBfX0FURVhJVF9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBj
YWxsZWQgZHVyaW5nIHNodXRkb3duCi12YXIgX19BVFBPU1RSVU5fXyA9IFtdOyAvLyBmdW5jdGlv
bnMgY2FsbGVkIGFmdGVyIHRoZSBydW50aW1lIGhhcyBleGl0ZWQKLXZhciBydW50aW1lSW5pdGlh
bGl6ZWQgPSBmYWxzZTsKLWZ1bmN0aW9uIHByZVJ1bigpIHsKLSAgLy8gY29tcGF0aWJpbGl0eSAt
IG1lcmdlIGluIGFueXRoaW5nIGZyb20gTW9kdWxlWydwcmVSdW4nXSBhdCB0aGlzIHRpbWUKLSAg
aWYgKE1vZHVsZVsncHJlUnVuJ10pIHsKLSAgICBpZiAodHlwZW9mIE1vZHVsZVsncHJlUnVuJ10g
PT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVSdW4nXSA9IFtNb2R1bGVbJ3ByZVJ1biddXTsKLSAg
ICB3aGlsZSAoTW9kdWxlWydwcmVSdW4nXS5sZW5ndGgpIHsKLSAgICAgIGFkZE9uUHJlUnVuKE1v
ZHVsZVsncHJlUnVuJ10uc2hpZnQoKSk7Ci0gICAgfQotICB9Ci0gIGNhbGxSdW50aW1lQ2FsbGJh
Y2tzKF9fQVRQUkVSVU5fXyk7Ci19Ci1mdW5jdGlvbiBlbnN1cmVJbml0UnVudGltZSgpIHsKLSAg
aWYgKHJ1bnRpbWVJbml0aWFsaXplZCkgcmV0dXJuOwotICBydW50aW1lSW5pdGlhbGl6ZWQgPSB0
cnVlOwotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKTsKLX0KLWZ1bmN0aW9uIHBy
ZU1haW4oKSB7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRNQUlOX18pOwotfQotZnVuY3Rp
b24gZXhpdFJ1bnRpbWUoKSB7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRFWElUX18pOwot
fQotZnVuY3Rpb24gcG9zdFJ1bigpIHsKLSAgLy8gY29tcGF0aWJpbGl0eSAtIG1lcmdlIGluIGFu
eXRoaW5nIGZyb20gTW9kdWxlWydwb3N0UnVuJ10gYXQgdGhpcyB0aW1lCi0gIGlmIChNb2R1bGVb
J3Bvc3RSdW4nXSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwb3N0UnVuJ10gPT0gJ2Z1bmN0
aW9uJykgTW9kdWxlWydwb3N0UnVuJ10gPSBbTW9kdWxlWydwb3N0UnVuJ11dOwotICAgIHdoaWxl
IChNb2R1bGVbJ3Bvc3RSdW4nXS5sZW5ndGgpIHsKLSAgICAgIGFkZE9uUG9zdFJ1bihNb2R1bGVb
J3Bvc3RSdW4nXS5zaGlmdCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3Mo
X19BVFBPU1RSVU5fXyk7Ci19Ci1mdW5jdGlvbiBhZGRPblByZVJ1bihjYikgewotICBfX0FUUFJF
UlVOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUHJlUnVuJ10gPSBNb2R1bGUuYWRk
T25QcmVSdW4gPSBhZGRPblByZVJ1bjsKLWZ1bmN0aW9uIGFkZE9uSW5pdChjYikgewotICBfX0FU
SU5JVF9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPbkluaXQnXSA9IE1vZHVsZS5hZGRP
bkluaXQgPSBhZGRPbkluaXQ7Ci1mdW5jdGlvbiBhZGRPblByZU1haW4oY2IpIHsKLSAgX19BVE1B
SU5fXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25QcmVNYWluJ10gPSBNb2R1bGUuYWRk
T25QcmVNYWluID0gYWRkT25QcmVNYWluOwotZnVuY3Rpb24gYWRkT25FeGl0KGNiKSB7Ci0gIF9f
QVRFWElUX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uRXhpdCddID0gTW9kdWxlLmFk
ZE9uRXhpdCA9IGFkZE9uRXhpdDsKLWZ1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYikgewotICBfX0FU
UE9TVFJVTl9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblBvc3RSdW4nXSA9IE1vZHVs
ZS5hZGRPblBvc3RSdW4gPSBhZGRPblBvc3RSdW47Ci0vLyBUb29scwotLy8gVGhpcyBwcm9jZXNz
ZXMgYSBKUyBzdHJpbmcgaW50byBhIEMtbGluZSBhcnJheSBvZiBudW1iZXJzLCAwLXRlcm1pbmF0
ZWQuCi0vLyBGb3IgTExWTS1vcmlnaW5hdGluZyBzdHJpbmdzLCBzZWUgcGFyc2VyLmpzOnBhcnNl
TExWTVN0cmluZyBmdW5jdGlvbgotZnVuY3Rpb24gaW50QXJyYXlGcm9tU3RyaW5nKHN0cmluZ3ks
IGRvbnRBZGROdWxsLCBsZW5ndGggLyogb3B0aW9uYWwgKi8pIHsKLSAgdmFyIHJldCA9IChuZXcg
UnVudGltZS5VVEY4UHJvY2Vzc29yKCkpLnByb2Nlc3NKU1N0cmluZyhzdHJpbmd5KTsKLSAgaWYg
KGxlbmd0aCkgewotICAgIHJldC5sZW5ndGggPSBsZW5ndGg7Ci0gIH0KLSAgaWYgKCFkb250QWRk
TnVsbCkgewotICAgIHJldC5wdXNoKDApOwotICB9Ci0gIHJldHVybiByZXQ7Ci19Ci1Nb2R1bGVb
J2ludEFycmF5RnJvbVN0cmluZyddID0gaW50QXJyYXlGcm9tU3RyaW5nOwotZnVuY3Rpb24gaW50
QXJyYXlUb1N0cmluZyhhcnJheSkgewotICB2YXIgcmV0ID0gW107Ci0gIGZvciAodmFyIGkgPSAw
OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICB2YXIgY2hyID0gYXJyYXlbaV07Ci0gICAg
aWYgKGNociA+IDB4RkYpIHsKLSAgICAgIGNociAmPSAweEZGOwotICAgIH0KLSAgICByZXQucHVz
aChTdHJpbmcuZnJvbUNoYXJDb2RlKGNocikpOwotICB9Ci0gIHJldHVybiByZXQuam9pbignJyk7
Ci19Ci1Nb2R1bGVbJ2ludEFycmF5VG9TdHJpbmcnXSA9IGludEFycmF5VG9TdHJpbmc7Ci0vLyBX
cml0ZSBhIEphdmFzY3JpcHQgYXJyYXkgdG8gc29tZXdoZXJlIGluIHRoZSBoZWFwCi1mdW5jdGlv
biB3cml0ZVN0cmluZ1RvTWVtb3J5KHN0cmluZywgYnVmZmVyLCBkb250QWRkTnVsbCkgewotICB2
YXIgYXJyYXkgPSBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5nLCBkb250QWRkTnVsbCk7Ci0gIHZh
ciBpID0gMDsKLSAgd2hpbGUgKGkgPCBhcnJheS5sZW5ndGgpIHsKLSAgICB2YXIgY2hyID0gYXJy
YXlbaV07Ci0gICAgSEVBUDhbKCgoYnVmZmVyKSsoaSkpfDApXT1jaHIKLSAgICBpID0gaSArIDE7
Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVTdHJpbmdUb01lbW9yeSddID0gd3JpdGVTdHJpbmdUb01l
bW9yeTsKLWZ1bmN0aW9uIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheSwgYnVmZmVyKSB7Ci0gIGZv
ciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICBIRUFQOFsoKChidWZm
ZXIpKyhpKSl8MCldPWFycmF5W2ldOwotICB9Ci19Ci1Nb2R1bGVbJ3dyaXRlQXJyYXlUb01lbW9y
eSddID0gd3JpdGVBcnJheVRvTWVtb3J5OwotZnVuY3Rpb24gdW5TaWduKHZhbHVlLCBiaXRzLCBp
Z25vcmUsIHNpZykgewotICBpZiAodmFsdWUgPj0gMCkgewotICAgIHJldHVybiB2YWx1ZTsKLSAg
fQotICByZXR1cm4gYml0cyA8PSAzMiA/IDIqTWF0aC5hYnMoMSA8PCAoYml0cy0xKSkgKyB2YWx1
ZSAvLyBOZWVkIHNvbWUgdHJpY2tlcnksIHNpbmNlIGlmIGJpdHMgPT0gMzIsIHdlIGFyZSByaWdo
dCBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNlcyBpbiBiaXRzaGlmdHMKLSAgICAgICAg
ICAgICAgICAgICAgOiBNYXRoLnBvdygyLCBiaXRzKSAgICAgICAgICsgdmFsdWU7Ci19Ci1mdW5j
dGlvbiByZVNpZ24odmFsdWUsIGJpdHMsIGlnbm9yZSwgc2lnKSB7Ci0gIGlmICh2YWx1ZSA8PSAw
KSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0gIHZhciBoYWxmID0gYml0cyA8PSAzMiA/IE1h
dGguYWJzKDEgPDwgKGJpdHMtMSkpIC8vIGFicyBpcyBuZWVkZWQgaWYgYml0cyA9PSAzMgotICAg
ICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLnBvdygyLCBiaXRzLTEpOwotICBpZiAodmFsdWUg
Pj0gaGFsZiAmJiAoYml0cyA8PSAzMiB8fCB2YWx1ZSA+IGhhbGYpKSB7IC8vIGZvciBodWdlIHZh
bHVlcywgd2UgY2FuIGhpdCB0aGUgcHJlY2lzaW9uIGxpbWl0IGFuZCBhbHdheXMgZ2V0IHRydWUg
aGVyZS4gc28gZG9uJ3QgZG8gdGhhdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCwgaW4gZ2VuZXJhbCB0aGVyZSBpcyBubyBwZXJm
ZWN0IHNvbHV0aW9uIGhlcmUuIFdpdGggNjQtYml0IGludHMsIHdlIGdldCByb3VuZGluZyBhbmQg
ZXJyb3JzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gVE9ETzogSW4gaTY0IG1vZGUgMSwgcmVzaWduIHRoZSB0d28gcGFydHMgc2VwYXJh
dGVseSBhbmQgc2FmZWx5Ci0gICAgdmFsdWUgPSAtMipoYWxmICsgdmFsdWU7IC8vIENhbm5vdCBi
aXRzaGlmdCBoYWxmLCBhcyBpdCBtYXkgYmUgYXQgdGhlIGxpbWl0IG9mIHRoZSBiaXRzIEpTIHVz
ZXMgaW4gYml0c2hpZnRzCi0gIH0KLSAgcmV0dXJuIHZhbHVlOwotfQotaWYgKCFNYXRoWydpbXVs
J10pIE1hdGhbJ2ltdWwnXSA9IGZ1bmN0aW9uKGEsIGIpIHsKLSAgdmFyIGFoICA9IGEgPj4+IDE2
OwotICB2YXIgYWwgPSBhICYgMHhmZmZmOwotICB2YXIgYmggID0gYiA+Pj4gMTY7Ci0gIHZhciBi
bCA9IGIgJiAweGZmZmY7Ci0gIHJldHVybiAoYWwqYmwgKyAoKGFoKmJsICsgYWwqYmgpIDw8IDE2
KSl8MDsKLX07Ci1NYXRoLmltdWwgPSBNYXRoWydpbXVsJ107Ci0vLyBBIGNvdW50ZXIgb2YgZGVw
ZW5kZW5jaWVzIGZvciBjYWxsaW5nIHJ1bigpLiBJZiB3ZSBuZWVkIHRvCi0vLyBkbyBhc3luY2hy
b25vdXMgd29yayBiZWZvcmUgcnVubmluZywgaW5jcmVtZW50IHRoaXMgYW5kCi0vLyBkZWNyZW1l
bnQgaXQuIEluY3JlbWVudGluZyBtdXN0IGhhcHBlbiBpbiBhIHBsYWNlIGxpa2UKLS8vIFBSRV9S
VU5fQURESVRJT05TICh1c2VkIGJ5IGVtY2MgdG8gYWRkIGZpbGUgcHJlbG9hZGluZykuCi0vLyBO
b3RlIHRoYXQgeW91IGNhbiBhZGQgZGVwZW5kZW5jaWVzIGluIHByZVJ1biwgZXZlbiB0aG91Z2gK
LS8vIGl0IGhhcHBlbnMgcmlnaHQgYmVmb3JlIHJ1biAtIHJ1biB3aWxsIGJlIHBvc3Rwb25lZCB1
bnRpbAotLy8gdGhlIGRlcGVuZGVuY2llcyBhcmUgbWV0LgotdmFyIHJ1bkRlcGVuZGVuY2llcyA9
IDA7Ci12YXIgcnVuRGVwZW5kZW5jeVRyYWNraW5nID0ge307Ci12YXIgY2FsbGVkSW5pdCA9IGZh
bHNlLCBjYWxsZWRSdW4gPSBmYWxzZTsKLXZhciBydW5EZXBlbmRlbmN5V2F0Y2hlciA9IG51bGw7
Ci1mdW5jdGlvbiBhZGRSdW5EZXBlbmRlbmN5KGlkKSB7Ci0gIHJ1bkRlcGVuZGVuY2llcysrOwot
ICBpZiAoTW9kdWxlWydtb25pdG9yUnVuRGVwZW5kZW5jaWVzJ10pIHsKLSAgICBNb2R1bGVbJ21v
bml0b3JSdW5EZXBlbmRlbmNpZXMnXShydW5EZXBlbmRlbmNpZXMpOwotICB9Ci0gIGlmIChpZCkg
ewotICAgIGFzc2VydCghcnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAgcnVuRGVwZW5k
ZW5jeVRyYWNraW5nW2lkXSA9IDE7Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3
YXJuaW5nOiBydW4gZGVwZW5kZW5jeSBhZGRlZCB3aXRob3V0IElEJyk7Ci0gIH0KLX0KLU1vZHVs
ZVsnYWRkUnVuRGVwZW5kZW5jeSddID0gYWRkUnVuRGVwZW5kZW5jeTsKLWZ1bmN0aW9uIHJlbW92
ZVJ1bkRlcGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzLS07Ci0gIGlmIChNb2R1bGVb
J21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9uaXRvclJ1bkRlcGVu
ZGVuY2llcyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7Ci0gICAgYXNzZXJ0
KHJ1bkRlcGVuZGVuY3lUcmFja2luZ1tpZF0pOwotICAgIGRlbGV0ZSBydW5EZXBlbmRlbmN5VHJh
Y2tpbmdbaWRdOwotICB9IGVsc2UgewotICAgIE1vZHVsZS5wcmludEVycignd2FybmluZzogcnVu
IGRlcGVuZGVuY3kgcmVtb3ZlZCB3aXRob3V0IElEJyk7Ci0gIH0KLSAgaWYgKHJ1bkRlcGVuZGVu
Y2llcyA9PSAwKSB7Ci0gICAgaWYgKHJ1bkRlcGVuZGVuY3lXYXRjaGVyICE9PSBudWxsKSB7Ci0g
ICAgICBjbGVhckludGVydmFsKHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTsKLSAgICAgIHJ1bkRlcGVu
ZGVuY3lXYXRjaGVyID0gbnVsbDsKLSAgICB9IAotICAgIC8vIElmIHJ1biBoYXMgbmV2ZXIgYmVl
biBjYWxsZWQsIGFuZCB3ZSBzaG91bGQgY2FsbCBydW4gKElOVk9LRV9SVU4gaXMgdHJ1ZSwgYW5k
IE1vZHVsZS5ub0luaXRpYWxSdW4gaXMgbm90IGZhbHNlKQotICAgIGlmICghY2FsbGVkUnVuICYm
IHNob3VsZFJ1bk5vdykgcnVuKFtdLmNvbmNhdChNb2R1bGVbImFyZ3VtZW50cyJdKSk7Ci0gIH0K
LX0KLU1vZHVsZVsncmVtb3ZlUnVuRGVwZW5kZW5jeSddID0gcmVtb3ZlUnVuRGVwZW5kZW5jeTsK
LU1vZHVsZVsicHJlbG9hZGVkSW1hZ2VzIl0gPSB7fTsgLy8gbWFwcyB1cmwgdG8gaW1hZ2UgZGF0
YQotTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXSA9IHt9OyAvLyBtYXBzIHVybCB0byBhdWRpbyBk
YXRhCi1mdW5jdGlvbiBsb2FkTWVtb3J5SW5pdGlhbGl6ZXIoZmlsZW5hbWUpIHsKLSAgZnVuY3Rp
b24gYXBwbHlEYXRhKGRhdGEpIHsKLSAgICBIRUFQVTguc2V0KGRhdGEsIFNUQVRJQ19CQVNFKTsK
LSAgfQotICAvLyBhbHdheXMgZG8gdGhpcyBhc3luY2hyb25vdXNseSwgdG8ga2VlcCBzaGVsbCBh
bmQgd2ViIGFzIHNpbWlsYXIgYXMgcG9zc2libGUKLSAgYWRkT25QcmVSdW4oZnVuY3Rpb24oKSB7
Ci0gICAgaWYgKEVOVklST05NRU5UX0lTX05PREUgfHwgRU5WSVJPTk1FTlRfSVNfU0hFTEwpIHsK
LSAgICAgIGFwcGx5RGF0YShNb2R1bGVbJ3JlYWRCaW5hcnknXShmaWxlbmFtZSkpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBCcm93c2VyLmFzeW5jTG9hZChmaWxlbmFtZSwgZnVuY3Rpb24oZGF0YSkg
ewotICAgICAgICBhcHBseURhdGEoZGF0YSk7Ci0gICAgICB9LCBmdW5jdGlvbihkYXRhKSB7Ci0g
ICAgICAgIHRocm93ICdjb3VsZCBub3QgbG9hZCBtZW1vcnkgaW5pdGlhbGl6ZXIgJyArIGZpbGVu
YW1lOwotICAgICAgfSk7Ci0gICAgfQotICB9KTsKLX0KLS8vID09PSBCb2R5ID09PQotU1RBVElD
X0JBU0UgPSA4OwotU1RBVElDVE9QID0gU1RBVElDX0JBU0UgKyA1Mjg7Ci0vKiBnbG9iYWwgaW5p
dGlhbGl6ZXJzICovIF9fQVRJTklUX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBydW5Qb3N0
U2V0cygpIH0gfSk7Ci0vKiBtZW1vcnkgaW5pdGlhbGl6ZXIgKi8gYWxsb2NhdGUoWzEwMiwxMDUs
MTEwLDk3LDEwOCw1OCwzMiwzNywxMDAsNDYsMTAsMCwwLDAsMCwwLDEwMSwxMTQsMTE0LDExMSwx
MTQsNTgsMzIsMzcsMTAwLDEwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfTk9ORSwgUnVudGlt
ZS5HTE9CQUxfQkFTRSkKLXZhciB0ZW1wRG91YmxlUHRyID0gUnVudGltZS5hbGlnbk1lbW9yeShh
bGxvY2F0ZSgxMiwgImk4IiwgQUxMT0NfU1RBVElDKSwgOCk7Ci1hc3NlcnQodGVtcERvdWJsZVB0
ciAlIDggPT0gMCk7Ci1mdW5jdGlvbiBjb3B5VGVtcEZsb2F0KHB0cikgeyAvLyBmdW5jdGlvbnMs
IGJlY2F1c2UgaW5saW5pbmcgdGhpcyBjb2RlIGluY3JlYXNlcyBjb2RlIHNpemUgdG9vIG11Y2gK
LSAgSEVBUDhbdGVtcERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1wRG91Ymxl
UHRyKzFdID0gSEVBUDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0gSEVBUDhb
cHRyKzJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwotfQotZnVu
Y3Rpb24gY29weVRlbXBEb3VibGUocHRyKSB7Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHJdID0gSEVB
UDhbcHRyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisxXSA9IEhFQVA4W3B0cisxXTsKLSAgSEVB
UDhbdGVtcERvdWJsZVB0cisyXSA9IEhFQVA4W3B0cisyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0
ciszXSA9IEhFQVA4W3B0ciszXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis0XSA9IEhFQVA4W3B0
cis0XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis1XSA9IEhFQVA4W3B0cis1XTsKLSAgSEVBUDhb
dGVtcERvdWJsZVB0cis2XSA9IEhFQVA4W3B0cis2XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis3
XSA9IEhFQVA4W3B0cis3XTsKLX0KLSAgdmFyIEVSUk5PX0NPREVTPXtFUEVSTToxLEVOT0VOVDoy
LEVTUkNIOjMsRUlOVFI6NCxFSU86NSxFTlhJTzo2LEUyQklHOjcsRU5PRVhFQzo4LEVCQURGOjks
RUNISUxEOjEwLEVBR0FJTjoxMSxFV09VTERCTE9DSzoxMSxFTk9NRU06MTIsRUFDQ0VTOjEzLEVG
QVVMVDoxNCxFTk9UQkxLOjE1LEVCVVNZOjE2LEVFWElTVDoxNyxFWERFVjoxOCxFTk9ERVY6MTks
RU5PVERJUjoyMCxFSVNESVI6MjEsRUlOVkFMOjIyLEVORklMRToyMyxFTUZJTEU6MjQsRU5PVFRZ
OjI1LEVUWFRCU1k6MjYsRUZCSUc6MjcsRU5PU1BDOjI4LEVTUElQRToyOSxFUk9GUzozMCxFTUxJ
Tks6MzEsRVBJUEU6MzIsRURPTTozMyxFUkFOR0U6MzQsRU5PTVNHOjM1LEVJRFJNOjM2LEVDSFJO
RzozNyxFTDJOU1lOQzozOCxFTDNITFQ6MzksRUwzUlNUOjQwLEVMTlJORzo0MSxFVU5BVENIOjQy
LEVOT0NTSTo0MyxFTDJITFQ6NDQsRURFQURMSzo0NSxFTk9MQ0s6NDYsRUJBREU6NTAsRUJBRFI6
NTEsRVhGVUxMOjUyLEVOT0FOTzo1MyxFQkFEUlFDOjU0LEVCQURTTFQ6NTUsRURFQURMT0NLOjU2
LEVCRk9OVDo1NyxFTk9TVFI6NjAsRU5PREFUQTo2MSxFVElNRTo2MixFTk9TUjo2MyxFTk9ORVQ6
NjQsRU5PUEtHOjY1LEVSRU1PVEU6NjYsRU5PTElOSzo2NyxFQURWOjY4LEVTUk1OVDo2OSxFQ09N
TTo3MCxFUFJPVE86NzEsRU1VTFRJSE9QOjc0LEVET1RET1Q6NzYsRUJBRE1TRzo3NyxFTk9UVU5J
UTo4MCxFQkFERkQ6ODEsRVJFTUNIRzo4MixFTElCQUNDOjgzLEVMSUJCQUQ6ODQsRUxJQlNDTjo4
NSxFTElCTUFYOjg2LEVMSUJFWEVDOjg3LEVOT1NZUzo4OCxFTk9URU1QVFk6OTAsRU5BTUVUT09M
T05HOjkxLEVMT09QOjkyLEVPUE5PVFNVUFA6OTUsRVBGTk9TVVBQT1JUOjk2LEVDT05OUkVTRVQ6
MTA0LEVOT0JVRlM6MTA1LEVBRk5PU1VQUE9SVDoxMDYsRVBST1RPVFlQRToxMDcsRU5PVFNPQ0s6
MTA4LEVOT1BST1RPT1BUOjEwOSxFU0hVVERPV046MTEwLEVDT05OUkVGVVNFRDoxMTEsRUFERFJJ
TlVTRToxMTIsRUNPTk5BQk9SVEVEOjExMyxFTkVUVU5SRUFDSDoxMTQsRU5FVERPV046MTE1LEVU
SU1FRE9VVDoxMTYsRUhPU1RET1dOOjExNyxFSE9TVFVOUkVBQ0g6MTE4LEVJTlBST0dSRVNTOjEx
OSxFQUxSRUFEWToxMjAsRURFU1RBRERSUkVROjEyMSxFTVNHU0laRToxMjIsRVBST1RPTk9TVVBQ
T1JUOjEyMyxFU09DS1ROT1NVUFBPUlQ6MTI0LEVBRERSTk9UQVZBSUw6MTI1LEVORVRSRVNFVDox
MjYsRUlTQ09OTjoxMjcsRU5PVENPTk46MTI4LEVUT09NQU5ZUkVGUzoxMjksRVVTRVJTOjEzMSxF
RFFVT1Q6MTMyLEVTVEFMRToxMzMsRU5PVFNVUDoxMzQsRU5PTUVESVVNOjEzNSxFSUxTRVE6MTM4
LEVPVkVSRkxPVzoxMzksRUNBTkNFTEVEOjE0MCxFTk9UUkVDT1ZFUkFCTEU6MTQxLEVPV05FUkRF
QUQ6MTQyLEVTVFJQSVBFOjE0M307Ci0gIHZhciBFUlJOT19NRVNTQUdFUz17MDoiU3VjY2VzcyIs
MToiTm90IHN1cGVyLXVzZXIiLDI6Ik5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiLDM6Ik5vIHN1
Y2ggcHJvY2VzcyIsNDoiSW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwiLDU6IkkvTyBlcnJvciIsNjoi
Tm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcyIsNzoiQXJnIGxpc3QgdG9vIGxvbmciLDg6IkV4ZWMg
Zm9ybWF0IGVycm9yIiw5OiJCYWQgZmlsZSBudW1iZXIiLDEwOiJObyBjaGlsZHJlbiIsMTE6Ik5v
IG1vcmUgcHJvY2Vzc2VzIiwxMjoiTm90IGVub3VnaCBjb3JlIiwxMzoiUGVybWlzc2lvbiBkZW5p
ZWQiLDE0OiJCYWQgYWRkcmVzcyIsMTU6IkJsb2NrIGRldmljZSByZXF1aXJlZCIsMTY6Ik1vdW50
IGRldmljZSBidXN5IiwxNzoiRmlsZSBleGlzdHMiLDE4OiJDcm9zcy1kZXZpY2UgbGluayIsMTk6
Ik5vIHN1Y2ggZGV2aWNlIiwyMDoiTm90IGEgZGlyZWN0b3J5IiwyMToiSXMgYSBkaXJlY3Rvcnki
LDIyOiJJbnZhbGlkIGFyZ3VtZW50IiwyMzoiVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0i
LDI0OiJUb28gbWFueSBvcGVuIGZpbGVzIiwyNToiTm90IGEgdHlwZXdyaXRlciIsMjY6IlRleHQg
ZmlsZSBidXN5IiwyNzoiRmlsZSB0b28gbGFyZ2UiLDI4OiJObyBzcGFjZSBsZWZ0IG9uIGRldmlj
ZSIsMjk6IklsbGVnYWwgc2VlayIsMzA6IlJlYWQgb25seSBmaWxlIHN5c3RlbSIsMzE6IlRvbyBt
YW55IGxpbmtzIiwzMjoiQnJva2VuIHBpcGUiLDMzOiJNYXRoIGFyZyBvdXQgb2YgZG9tYWluIG9m
IGZ1bmMiLDM0OiJNYXRoIHJlc3VsdCBub3QgcmVwcmVzZW50YWJsZSIsMzU6Ik5vIG1lc3NhZ2Ug
b2YgZGVzaXJlZCB0eXBlIiwzNjoiSWRlbnRpZmllciByZW1vdmVkIiwzNzoiQ2hhbm5lbCBudW1i
ZXIgb3V0IG9mIHJhbmdlIiwzODoiTGV2ZWwgMiBub3Qgc3luY2hyb25pemVkIiwzOToiTGV2ZWwg
MyBoYWx0ZWQiLDQwOiJMZXZlbCAzIHJlc2V0Iiw0MToiTGluayBudW1iZXIgb3V0IG9mIHJhbmdl
Iiw0MjoiUHJvdG9jb2wgZHJpdmVyIG5vdCBhdHRhY2hlZCIsNDM6Ik5vIENTSSBzdHJ1Y3R1cmUg
YXZhaWxhYmxlIiw0NDoiTGV2ZWwgMiBoYWx0ZWQiLDQ1OiJEZWFkbG9jayBjb25kaXRpb24iLDQ2
OiJObyByZWNvcmQgbG9ja3MgYXZhaWxhYmxlIiw1MDoiSW52YWxpZCBleGNoYW5nZSIsNTE6Iklu
dmFsaWQgcmVxdWVzdCBkZXNjcmlwdG9yIiw1MjoiRXhjaGFuZ2UgZnVsbCIsNTM6Ik5vIGFub2Rl
Iiw1NDoiSW52YWxpZCByZXF1ZXN0IGNvZGUiLDU1OiJJbnZhbGlkIHNsb3QiLDU2OiJGaWxlIGxv
Y2tpbmcgZGVhZGxvY2sgZXJyb3IiLDU3OiJCYWQgZm9udCBmaWxlIGZtdCIsNjA6IkRldmljZSBu
b3QgYSBzdHJlYW0iLDYxOiJObyBkYXRhIChmb3Igbm8gZGVsYXkgaW8pIiw2MjoiVGltZXIgZXhw
aXJlZCIsNjM6Ik91dCBvZiBzdHJlYW1zIHJlc291cmNlcyIsNjQ6Ik1hY2hpbmUgaXMgbm90IG9u
IHRoZSBuZXR3b3JrIiw2NToiUGFja2FnZSBub3QgaW5zdGFsbGVkIiw2NjoiVGhlIG9iamVjdCBp
cyByZW1vdGUiLDY3OiJUaGUgbGluayBoYXMgYmVlbiBzZXZlcmVkIiw2ODoiQWR2ZXJ0aXNlIGVy
cm9yIiw2OToiU3Jtb3VudCBlcnJvciIsNzA6IkNvbW11bmljYXRpb24gZXJyb3Igb24gc2VuZCIs
NzE6IlByb3RvY29sIGVycm9yIiw3NDoiTXVsdGlob3AgYXR0ZW1wdGVkIiw3NjoiQ3Jvc3MgbW91
bnQgcG9pbnQgKG5vdCByZWFsbHkgZXJyb3IpIiw3NzoiVHJ5aW5nIHRvIHJlYWQgdW5yZWFkYWJs
ZSBtZXNzYWdlIiw4MDoiR2l2ZW4gbG9nLiBuYW1lIG5vdCB1bmlxdWUiLDgxOiJmLmQuIGludmFs
aWQgZm9yIHRoaXMgb3BlcmF0aW9uIiw4MjoiUmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsODM6IkNh
biAgIGFjY2VzcyBhIG5lZWRlZCBzaGFyZWQgbGliIiw4NDoiQWNjZXNzaW5nIGEgY29ycnVwdGVk
IHNoYXJlZCBsaWIiLDg1OiIubGliIHNlY3Rpb24gaW4gYS5vdXQgY29ycnVwdGVkIiw4NjoiQXR0
ZW1wdGluZyB0byBsaW5rIGluIHRvbyBtYW55IGxpYnMiLDg3OiJBdHRlbXB0aW5nIHRvIGV4ZWMg
YSBzaGFyZWQgbGlicmFyeSIsODg6IkZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCIsOTA6IkRpcmVj
dG9yeSBub3QgZW1wdHkiLDkxOiJGaWxlIG9yIHBhdGggbmFtZSB0b28gbG9uZyIsOTI6IlRvbyBt
YW55IHN5bWJvbGljIGxpbmtzIiw5NToiT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNw
b3J0IGVuZHBvaW50Iiw5NjoiUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQiLDEwNDoiQ29u
bmVjdGlvbiByZXNldCBieSBwZWVyIiwxMDU6Ik5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUiLDEw
NjoiQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbCBmYW1pbHkiLDEwNzoi
UHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0IiwxMDg6IlNvY2tldCBvcGVyYXRpb24gb24g
bm9uLXNvY2tldCIsMTA5OiJQcm90b2NvbCBub3QgYXZhaWxhYmxlIiwxMTA6IkNhbid0IHNlbmQg
YWZ0ZXIgc29ja2V0IHNodXRkb3duIiwxMTE6IkNvbm5lY3Rpb24gcmVmdXNlZCIsMTEyOiJBZGRy
ZXNzIGFscmVhZHkgaW4gdXNlIiwxMTM6IkNvbm5lY3Rpb24gYWJvcnRlZCIsMTE0OiJOZXR3b3Jr
IGlzIHVucmVhY2hhYmxlIiwxMTU6Ik5ldHdvcmsgaW50ZXJmYWNlIGlzIG5vdCBjb25maWd1cmVk
IiwxMTY6IkNvbm5lY3Rpb24gdGltZWQgb3V0IiwxMTc6Ikhvc3QgaXMgZG93biIsMTE4OiJIb3N0
IGlzIHVucmVhY2hhYmxlIiwxMTk6IkNvbm5lY3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcyIsMTIw
OiJTb2NrZXQgYWxyZWFkeSBjb25uZWN0ZWQiLDEyMToiRGVzdGluYXRpb24gYWRkcmVzcyByZXF1
aXJlZCIsMTIyOiJNZXNzYWdlIHRvbyBsb25nIiwxMjM6IlVua25vd24gcHJvdG9jb2wiLDEyNDoi
U29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZCIsMTI1OiJBZGRyZXNzIG5vdCBhdmFpbGFibGUiLDEy
NjoiQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrIiwxMjc6IlNvY2tldCBpcyBhbHJlYWR5IGNv
bm5lY3RlZCIsMTI4OiJTb2NrZXQgaXMgbm90IGNvbm5lY3RlZCIsMTI5OiJUb28gbWFueSByZWZl
cmVuY2VzIiwxMzE6IlRvbyBtYW55IHVzZXJzIiwxMzI6IlF1b3RhIGV4Y2VlZGVkIiwxMzM6IlN0
YWxlIGZpbGUgaGFuZGxlIiwxMzQ6Ik5vdCBzdXBwb3J0ZWQiLDEzNToiTm8gbWVkaXVtIChpbiB0
YXBlIGRyaXZlKSIsMTM4OiJJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UiLDEzOToiVmFsdWUgdG9vIGxh
cmdlIGZvciBkZWZpbmVkIGRhdGEgdHlwZSIsMTQwOiJPcGVyYXRpb24gY2FuY2VsZWQiLDE0MToi
U3RhdGUgbm90IHJlY292ZXJhYmxlIiwxNDI6IlByZXZpb3VzIG93bmVyIGRpZWQiLDE0MzoiU3Ry
ZWFtcyBwaXBlIGVycm9yIn07Ci0gIHZhciBfX19lcnJub19zdGF0ZT0wO2Z1bmN0aW9uIF9fX3Nl
dEVyck5vKHZhbHVlKSB7Ci0gICAgICAvLyBGb3IgY29udmVuaWVudCBzZXR0aW5nIGFuZCByZXR1
cm5pbmcgb2YgZXJybm8uCi0gICAgICBIRUFQMzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT12YWx1
ZQotICAgICAgcmV0dXJuIHZhbHVlOwotICAgIH0KLSAgdmFyIFZGUz11bmRlZmluZWQ7Ci0gIHZh
ciBQQVRIPXtzcGxpdFBhdGg6ZnVuY3Rpb24gKGZpbGVuYW1lKSB7Ci0gICAgICAgIHZhciBzcGxp
dFBhdGhSZSA9IC9eKFwvP3wpKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwv
XSp8KSkoPzpbXC9dKikkLzsKLSAgICAgICAgcmV0dXJuIHNwbGl0UGF0aFJlLmV4ZWMoZmlsZW5h
bWUpLnNsaWNlKDEpOwotICAgICAgfSxub3JtYWxpemVBcnJheTpmdW5jdGlvbiAocGFydHMsIGFs
bG93QWJvdmVSb290KSB7Ci0gICAgICAgIC8vIGlmIHRoZSBwYXRoIHRyaWVzIHRvIGdvIGFib3Zl
IHRoZSByb290LCBgdXBgIGVuZHMgdXAgPiAwCi0gICAgICAgIHZhciB1cCA9IDA7Ci0gICAgICAg
IGZvciAodmFyIGkgPSBwYXJ0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewotICAgICAgICAg
IHZhciBsYXN0ID0gcGFydHNbaV07Ci0gICAgICAgICAgaWYgKGxhc3QgPT09ICcuJykgewotICAg
ICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAgICAgIH0gZWxzZSBpZiAobGFzdCA9
PT0gJy4uJykgewotICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAg
dXArKzsKLSAgICAgICAgICB9IGVsc2UgaWYgKHVwKSB7Ci0gICAgICAgICAgICBwYXJ0cy5zcGxp
Y2UoaSwgMSk7Ci0gICAgICAgICAgICB1cC0tOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICAvLyBpZiB0aGUgcGF0aCBpcyBhbGxvd2VkIHRvIGdvIGFib3ZlIHRoZSByb290LCByZXN0
b3JlIGxlYWRpbmcgLi5zCi0gICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkgewotICAgICAgICAg
IGZvciAoOyB1cC0tOyB1cCkgewotICAgICAgICAgICAgcGFydHMudW5zaGlmdCgnLi4nKTsKLSAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcnRzOwotICAgICAgfSxub3Jt
YWxpemU6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGlzQWJzb2x1dGUgPSBwYXRoLmNo
YXJBdCgwKSA9PT0gJy8nLAotICAgICAgICAgICAgdHJhaWxpbmdTbGFzaCA9IHBhdGguc3Vic3Ry
KC0xKSA9PT0gJy8nOwotICAgICAgICAvLyBOb3JtYWxpemUgdGhlIHBhdGgKLSAgICAgICAgcGF0
aCA9IFBBVEgubm9ybWFsaXplQXJyYXkocGF0aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihw
KSB7Ci0gICAgICAgICAgcmV0dXJuICEhcDsKLSAgICAgICAgfSksICFpc0Fic29sdXRlKS5qb2lu
KCcvJyk7Ci0gICAgICAgIGlmICghcGF0aCAmJiAhaXNBYnNvbHV0ZSkgewotICAgICAgICAgIHBh
dGggPSAnLic7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHBhdGggJiYgdHJhaWxpbmdTbGFzaCkg
ewotICAgICAgICAgIHBhdGggKz0gJy8nOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoaXNB
YnNvbHV0ZSA/ICcvJyA6ICcnKSArIHBhdGg7Ci0gICAgICB9LGRpcm5hbWU6ZnVuY3Rpb24gKHBh
dGgpIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IFBBVEguc3BsaXRQYXRoKHBhdGgpLAotICAgICAg
ICAgICAgcm9vdCA9IHJlc3VsdFswXSwKLSAgICAgICAgICAgIGRpciA9IHJlc3VsdFsxXTsKLSAg
ICAgICAgaWYgKCFyb290ICYmICFkaXIpIHsKLSAgICAgICAgICAvLyBObyBkaXJuYW1lIHdoYXRz
b2V2ZXIKLSAgICAgICAgICByZXR1cm4gJy4nOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkaXIp
IHsKLSAgICAgICAgICAvLyBJdCBoYXMgYSBkaXJuYW1lLCBzdHJpcCB0cmFpbGluZyBzbGFzaAot
ICAgICAgICAgIGRpciA9IGRpci5zdWJzdHIoMCwgZGlyLmxlbmd0aCAtIDEpOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiByb290ICsgZGlyOwotICAgICAgfSxiYXNlbmFtZTpmdW5jdGlvbiAo
cGF0aCwgZXh0KSB7Ci0gICAgICAgIC8vIEVNU0NSSVBURU4gcmV0dXJuICcvJycgZm9yICcvJywg
bm90IGFuIGVtcHR5IHN0cmluZwotICAgICAgICBpZiAocGF0aCA9PT0gJy8nKSByZXR1cm4gJy8n
OwotICAgICAgICB2YXIgZiA9IFBBVEguc3BsaXRQYXRoKHBhdGgpWzJdOwotICAgICAgICBpZiAo
ZXh0ICYmIGYuc3Vic3RyKC0xICogZXh0Lmxlbmd0aCkgPT09IGV4dCkgewotICAgICAgICAgIGYg
PSBmLnN1YnN0cigwLCBmLmxlbmd0aCAtIGV4dC5sZW5ndGgpOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBmOwotICAgICAgfSxqb2luOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHBhdGhz
ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTsKLSAgICAgICAgcmV0
dXJuIFBBVEgubm9ybWFsaXplKHBhdGhzLmZpbHRlcihmdW5jdGlvbihwLCBpbmRleCkgewotICAg
ICAgICAgIGlmICh0eXBlb2YgcCAhPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHRocm93IG5l
dyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzJyk7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBwOwotICAgICAgICB9KS5qb2luKCcvJykpOwot
ICAgICAgfSxyZXNvbHZlOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHJlc29sdmVkUGF0aCA9
ICcnLAotICAgICAgICAgIHJlc29sdmVkQWJzb2x1dGUgPSBmYWxzZTsKLSAgICAgICAgZm9yICh2
YXIgaSA9IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpID49IC0xICYmICFyZXNvbHZlZEFic29sdXRl
OyBpLS0pIHsKLSAgICAgICAgICB2YXIgcGF0aCA9IChpID49IDApID8gYXJndW1lbnRzW2ldIDog
RlMuY3dkKCk7Ci0gICAgICAgICAgLy8gU2tpcCBlbXB0eSBhbmQgaW52YWxpZCBlbnRyaWVzCi0g
ICAgICAgICAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykgewotICAgICAgICAgICAgdGhy
b3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmlu
Z3MnKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKCFwYXRoKSB7Ci0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcGF0aCArICcvJyArIHJl
c29sdmVkUGF0aDsKLSAgICAgICAgICByZXNvbHZlZEFic29sdXRlID0gcGF0aC5jaGFyQXQoMCkg
PT09ICcvJzsKLSAgICAgICAgfQotICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBwYXRoIHNo
b3VsZCBiZSByZXNvbHZlZCB0byBhIGZ1bGwgYWJzb2x1dGUgcGF0aCwgYnV0Ci0gICAgICAgIC8v
IGhhbmRsZSByZWxhdGl2ZSBwYXRocyB0byBiZSBzYWZlIChtaWdodCBoYXBwZW4gd2hlbiBwcm9j
ZXNzLmN3ZCgpIGZhaWxzKQotICAgICAgICByZXNvbHZlZFBhdGggPSBQQVRILm5vcm1hbGl6ZUFy
cmF5KHJlc29sdmVkUGF0aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihwKSB7Ci0gICAgICAg
ICAgcmV0dXJuICEhcDsKLSAgICAgICAgfSksICFyZXNvbHZlZEFic29sdXRlKS5qb2luKCcvJyk7
Ci0gICAgICAgIHJldHVybiAoKHJlc29sdmVkQWJzb2x1dGUgPyAnLycgOiAnJykgKyByZXNvbHZl
ZFBhdGgpIHx8ICcuJzsKLSAgICAgIH0scmVsYXRpdmU6ZnVuY3Rpb24gKGZyb20sIHRvKSB7Ci0g
ICAgICAgIGZyb20gPSBQQVRILnJlc29sdmUoZnJvbSkuc3Vic3RyKDEpOwotICAgICAgICB0byA9
IFBBVEgucmVzb2x2ZSh0bykuc3Vic3RyKDEpOwotICAgICAgICBmdW5jdGlvbiB0cmltKGFycikg
ewotICAgICAgICAgIHZhciBzdGFydCA9IDA7Ci0gICAgICAgICAgZm9yICg7IHN0YXJ0IDwgYXJy
Lmxlbmd0aDsgc3RhcnQrKykgewotICAgICAgICAgICAgaWYgKGFycltzdGFydF0gIT09ICcnKSBi
cmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGVuZCA9IGFyci5sZW5ndGggLSAxOwot
ICAgICAgICAgIGZvciAoOyBlbmQgPj0gMDsgZW5kLS0pIHsKLSAgICAgICAgICAgIGlmIChhcnJb
ZW5kXSAhPT0gJycpIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoc3RhcnQgPiBl
bmQpIHJldHVybiBbXTsKLSAgICAgICAgICByZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LCBlbmQgLSBz
dGFydCArIDEpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBmcm9tUGFydHMgPSB0cmltKGZyb20u
c3BsaXQoJy8nKSk7Ci0gICAgICAgIHZhciB0b1BhcnRzID0gdHJpbSh0by5zcGxpdCgnLycpKTsK
LSAgICAgICAgdmFyIGxlbmd0aCA9IE1hdGgubWluKGZyb21QYXJ0cy5sZW5ndGgsIHRvUGFydHMu
bGVuZ3RoKTsKLSAgICAgICAgdmFyIHNhbWVQYXJ0c0xlbmd0aCA9IGxlbmd0aDsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgIGlmIChmcm9tUGFy
dHNbaV0gIT09IHRvUGFydHNbaV0pIHsKLSAgICAgICAgICAgIHNhbWVQYXJ0c0xlbmd0aCA9IGk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IG91dHB1dFBhcnRzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSBzYW1lUGFydHNMZW5ndGg7
IGkgPCBmcm9tUGFydHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBvdXRwdXRQYXJ0cy5wdXNo
KCcuLicpOwotICAgICAgICB9Ci0gICAgICAgIG91dHB1dFBhcnRzID0gb3V0cHV0UGFydHMuY29u
Y2F0KHRvUGFydHMuc2xpY2Uoc2FtZVBhcnRzTGVuZ3RoKSk7Ci0gICAgICAgIHJldHVybiBvdXRw
dXRQYXJ0cy5qb2luKCcvJyk7Ci0gICAgICB9fTsKLSAgdmFyIFRUWT17dHR5czpbXSxyZWdpc3Rl
cjpmdW5jdGlvbiAoZGV2LCBvcHMpIHsKLSAgICAgICAgVFRZLnR0eXNbZGV2XSA9IHsgaW5wdXQ6
IFtdLCBvdXRwdXQ6IFtdLCBvcHM6IG9wcyB9OwotICAgICAgICBGUy5yZWdpc3RlckRldmljZShk
ZXYsIFRUWS5zdHJlYW1fb3BzKTsKLSAgICAgIH0sc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAo
c3RyZWFtKSB7Ci0gICAgICAgICAgLy8gdGhpcyB3b3VsZG4ndCBiZSByZXF1aXJlZCBpZiB0aGUg
bGlicmFyeSB3YXNuJ3QgZXZhbCdkIGF0IGZpcnN0Li4uCi0gICAgICAgICAgaWYgKCFUVFkudXRm
OCkgewotICAgICAgICAgICAgVFRZLnV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciB0dHkgPSBUVFkudHR5c1tzdHJlYW0ubm9kZS5y
ZGV2XTsKLSAgICAgICAgICBpZiAoIXR0eSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgc3Ry
ZWFtLnR0eSA9IHR0eTsKLSAgICAgICAgICBzdHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKLSAgICAg
ICAgfSxjbG9zZTpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAgICAgLy8gZmx1c2ggYW55IHBl
bmRpbmcgbGluZSBkYXRhCi0gICAgICAgICAgaWYgKHN0cmVhbS50dHkub3V0cHV0Lmxlbmd0aCkg
ewotICAgICAgICAgICAgc3RyZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0eSwgMTApOwot
ICAgICAgICAgIH0KLSAgICAgICAgfSxyZWFkOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zm
c2V0LCBsZW5ndGgsIHBvcyAvKiBpZ25vcmVkICovKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0u
dHR5IHx8ICFzdHJlYW0udHR5Lm9wcy5nZXRfY2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAg
ICB2YXIgYnl0ZXNSZWFkID0gMDsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0OwotICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgcmVzdWx0ID0gc3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIoc3RyZWFtLnR0eSk7
Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAocmVzdWx0ID09PSB1bmRlZmluZWQgJiYgYnl0ZXNSZWFkID09PSAwKSB7Ci0gICAgICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5k
ZWZpbmVkKSBicmVhazsKLSAgICAgICAgICAgIGJ5dGVzUmVhZCsrOwotICAgICAgICAgICAgYnVm
ZmVyW29mZnNldCtpXSA9IHJlc3VsdDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ5dGVz
UmVhZCkgewotICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKLSAgICAgICAgfSx3cml0
ZTpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MpIHsKLSAgICAg
ICAgICBpZiAoIXN0cmVhbS50dHkgfHwgIXN0cmVhbS50dHkub3BzLnB1dF9jaGFyKSB7Ci0gICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTlhJTyk7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAg
ICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHN0cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0
cmVhbS50dHksIGJ1ZmZlcltvZmZzZXQraV0pOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwot
ICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAobGVuZ3RoKSB7Ci0gICAg
ICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgIH0K
LSAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgfX0sZGVmYXVsdF90dHlfb3BzOntnZXRfY2hh
cjpmdW5jdGlvbiAodHR5KSB7Ci0gICAgICAgICAgaWYgKCF0dHkuaW5wdXQubGVuZ3RoKSB7Ci0g
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIGlmIChFTlZJUk9OTUVO
VF9JU19OT0RFKSB7Ci0gICAgICAgICAgICAgIGlmIChwcm9jZXNzLnN0ZGluLmRlc3Ryb3llZCkg
ewotICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgcmVzdWx0ID0gcHJvY2Vzcy5zdGRpbi5yZWFkKCk7Ci0gICAgICAgICAgICB9
IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYKLSAgICAgICAgICAgICAg
dHlwZW9mIHdpbmRvdy5wcm9tcHQgPT0gJ2Z1bmN0aW9uJykgewotICAgICAgICAgICAgICAvLyBC
cm93c2VyLgotICAgICAgICAgICAgICByZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdJbnB1dDogJyk7
ICAvLyByZXR1cm5zIG51bGwgb24gY2FuY2VsCi0gICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09
IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ1xuJzsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVhZGxpbmUgPT0gJ2Z1bmN0aW9uJykg
ewotICAgICAgICAgICAgICAvLyBDb21tYW5kIGxpbmUuCi0gICAgICAgICAgICAgIHJlc3VsdCA9
IHJlYWRsaW5lKCk7Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgICByZXN1bHQgKz0gJ1xuJzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIG51bGw7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0dHkuaW5wdXQgPSBpbnRBcnJheUZyb21TdHJp
bmcocmVzdWx0LCB0cnVlKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHR0eS5pbnB1
dC5zaGlmdCgpOwotICAgICAgICB9LHB1dF9jaGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgewotICAg
ICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSAxMCkgewotICAgICAgICAgICAgTW9k
dWxlWydwcmludCddKHR0eS5vdXRwdXQuam9pbignJykpOwotICAgICAgICAgICAgdHR5Lm91dHB1
dCA9IFtdOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0dHkub3V0cHV0LnB1c2go
VFRZLnV0ZjgucHJvY2Vzc0NDaGFyKHZhbCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfX0sZGVm
YXVsdF90dHkxX29wczp7cHV0X2NoYXI6ZnVuY3Rpb24gKHR0eSwgdmFsKSB7Ci0gICAgICAgICAg
aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IDEwKSB7Ci0gICAgICAgICAgICBNb2R1bGVbJ3By
aW50RXJyJ10odHR5Lm91dHB1dC5qb2luKCcnKSk7Ci0gICAgICAgICAgICB0dHkub3V0cHV0ID0g
W107Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQucHVzaChUVFku
dXRmOC5wcm9jZXNzQ0NoYXIodmFsKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9fX07Ci0gIHZh
ciBNRU1GUz17bW91bnQ6ZnVuY3Rpb24gKG1vdW50KSB7Ci0gICAgICAgIHJldHVybiBNRU1GUy5j
cmVhdGVfbm9kZShudWxsLCAnLycsIDAwNDAwMDAgfCAwNzc3LCAwKTsKLSAgICAgIH0sY3JlYXRl
X25vZGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7Ci0gICAgICAgIGlmIChG
Uy5pc0Jsa2Rldihtb2RlKSB8fCBGUy5pc0ZJRk8obW9kZSkpIHsKLSAgICAgICAgICAvLyBubyBz
dXBwb3J0ZWQKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
UEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVOb2RlKHBhcmVu
dCwgbmFtZSwgbW9kZSwgZGV2KTsKLSAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsK
LSAgICAgICAgICBub2RlLm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMu
bm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNl
dGF0dHIsCi0gICAgICAgICAgICBsb29rdXA6IE1FTUZTLm5vZGVfb3BzLmxvb2t1cCwKLSAgICAg
ICAgICAgIG1rbm9kOiBNRU1GUy5ub2RlX29wcy5ta25vZCwKLSAgICAgICAgICAgIG1rbm9kOiBN
RU1GUy5ub2RlX29wcy5ta25vZCwKLSAgICAgICAgICAgIHJlbmFtZTogTUVNRlMubm9kZV9vcHMu
cmVuYW1lLAotICAgICAgICAgICAgdW5saW5rOiBNRU1GUy5ub2RlX29wcy51bmxpbmssCi0gICAg
ICAgICAgICBybWRpcjogTUVNRlMubm9kZV9vcHMucm1kaXIsCi0gICAgICAgICAgICByZWFkZGly
OiBNRU1GUy5ub2RlX29wcy5yZWFkZGlyLAotICAgICAgICAgICAgc3ltbGluazogTUVNRlMubm9k
ZV9vcHMuc3ltbGluawotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0g
ewotICAgICAgICAgICAgbGxzZWVrOiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlawotICAgICAgICAg
IH07Ci0gICAgICAgICAgbm9kZS5jb250ZW50cyA9IHt9OwotICAgICAgICB9IGVsc2UgaWYgKEZT
LmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAg
ICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCi0gICAgICAgICAgICBzZXRh
dHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2Rl
LnN0cmVhbV9vcHMgPSB7Ci0gICAgICAgICAgICBsbHNlZWs6IE1FTUZTLnN0cmVhbV9vcHMubGxz
ZWVrLAotICAgICAgICAgICAgcmVhZDogTUVNRlMuc3RyZWFtX29wcy5yZWFkLAotICAgICAgICAg
ICAgd3JpdGU6IE1FTUZTLnN0cmVhbV9vcHMud3JpdGUsCi0gICAgICAgICAgICBhbGxvY2F0ZTog
TUVNRlMuc3RyZWFtX29wcy5hbGxvY2F0ZSwKLSAgICAgICAgICAgIG1tYXA6IE1FTUZTLnN0cmVh
bV9vcHMubW1hcAotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5jb250ZW50cyA9IFtdOwot
ICAgICAgICB9IGVsc2UgaWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9k
ZS5ub2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0
dHIsCi0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAg
ICAgICAgcmVhZGxpbms6IE1FTUZTLm5vZGVfb3BzLnJlYWRsaW5rCi0gICAgICAgICAgfTsKLSAg
ICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSB7fTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0No
cmRldihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAgICAg
ICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCi0gICAgICAgICAgICBzZXRhdHRy
OiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0
cmVhbV9vcHMgPSBGUy5jaHJkZXZfc3RyZWFtX29wczsKLSAgICAgICAgfQotICAgICAgICBub2Rl
LnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgIC8vIGFkZCB0aGUgbmV3IG5vZGUgdG8g
dGhlIHBhcmVudAotICAgICAgICBpZiAocGFyZW50KSB7Ci0gICAgICAgICAgcGFyZW50LmNvbnRl
bnRzW25hbWVdID0gbm9kZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAg
IH0sbm9kZV9vcHM6e2dldGF0dHI6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgICB2YXIgYXR0
ciA9IHt9OwotICAgICAgICAgIC8vIGRldmljZSBudW1iZXJzIHJldXNlIGlub2RlIG51bWJlcnMu
Ci0gICAgICAgICAgYXR0ci5kZXYgPSBGUy5pc0NocmRldihub2RlLm1vZGUpID8gbm9kZS5pZCA6
IDE7Ci0gICAgICAgICAgYXR0ci5pbm8gPSBub2RlLmlkOwotICAgICAgICAgIGF0dHIubW9kZSA9
IG5vZGUubW9kZTsKLSAgICAgICAgICBhdHRyLm5saW5rID0gMTsKLSAgICAgICAgICBhdHRyLnVp
ZCA9IDA7Ci0gICAgICAgICAgYXR0ci5naWQgPSAwOwotICAgICAgICAgIGF0dHIucmRldiA9IG5v
ZGUucmRldjsKLSAgICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAg
ICAgYXR0ci5zaXplID0gNDA5NjsKLSAgICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShub2Rl
Lm1vZGUpKSB7Ci0gICAgICAgICAgICBhdHRyLnNpemUgPSBub2RlLmNvbnRlbnRzLmxlbmd0aDsK
LSAgICAgICAgICB9IGVsc2UgaWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAg
ICBhdHRyLnNpemUgPSBub2RlLmxpbmsubGVuZ3RoOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBhdHRyLnNpemUgPSAwOwotICAgICAgICAgIH0KLSAgICAgICAgICBhdHRyLmF0aW1l
ID0gbmV3IERhdGUobm9kZS50aW1lc3RhbXApOwotICAgICAgICAgIGF0dHIubXRpbWUgPSBuZXcg
RGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0gICAgICAgICAgYXR0ci5jdGltZSA9IG5ldyBEYXRlKG5v
ZGUudGltZXN0YW1wKTsKLSAgICAgICAgICAvLyBOT1RFOiBJbiBvdXIgaW1wbGVtZW50YXRpb24s
IHN0X2Jsb2NrcyA9IE1hdGguY2VpbChzdF9zaXplL3N0X2Jsa3NpemUpLAotICAgICAgICAgIC8v
ICAgICAgIGJ1dCB0aGlzIGlzIG5vdCByZXF1aXJlZCBieSB0aGUgc3RhbmRhcmQuCi0gICAgICAg
ICAgYXR0ci5ibGtzaXplID0gNDA5NjsKLSAgICAgICAgICBhdHRyLmJsb2NrcyA9IE1hdGguY2Vp
bChhdHRyLnNpemUgLyBhdHRyLmJsa3NpemUpOwotICAgICAgICAgIHJldHVybiBhdHRyOwotICAg
ICAgICB9LHNldGF0dHI6ZnVuY3Rpb24gKG5vZGUsIGF0dHIpIHsKLSAgICAgICAgICBpZiAoYXR0
ci5tb2RlICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIG5vZGUubW9kZSA9IGF0dHIubW9k
ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGF0dHIudGltZXN0YW1wICE9PSB1bmRlZmlu
ZWQpIHsKLSAgICAgICAgICAgIG5vZGUudGltZXN0YW1wID0gYXR0ci50aW1lc3RhbXA7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIGlmIChhdHRyLnNpemUgIT09IHVuZGVmaW5lZCkgewotICAgICAg
ICAgICAgdmFyIGNvbnRlbnRzID0gbm9kZS5jb250ZW50czsKLSAgICAgICAgICAgIGlmIChhdHRy
LnNpemUgPCBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLmxlbmd0aCA9IGF0dHIuc2l6ZTsKLSAg
ICAgICAgICAgIGVsc2Ugd2hpbGUgKGF0dHIuc2l6ZSA+IGNvbnRlbnRzLmxlbmd0aCkgY29udGVu
dHMucHVzaCgwKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FTk9FTlQpOwotICAgICAgICB9LG1rbm9kOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIG1vZGUs
IGRldikgewotICAgICAgICAgIHJldHVybiBNRU1GUy5jcmVhdGVfbm9kZShwYXJlbnQsIG5hbWUs
IG1vZGUsIGRldik7Ci0gICAgICAgIH0scmVuYW1lOmZ1bmN0aW9uIChvbGRfbm9kZSwgbmV3X2Rp
ciwgbmV3X25hbWUpIHsKLSAgICAgICAgICAvLyBpZiB3ZSdyZSBvdmVyd3JpdGluZyBhIGRpcmVj
dG9yeSBhdCBuZXdfbmFtZSwgbWFrZSBzdXJlIGl0J3MgZW1wdHkuCi0gICAgICAgICAgaWYgKEZT
LmlzRGlyKG9sZF9ub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICB2YXIgbmV3X25vZGU7Ci0gICAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxvb2t1cE5vZGUobmV3
X2RpciwgbmV3X25hbWUpOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKG5ld19ub2RlKSB7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkg
aW4gbmV3X25vZGUuY29udGVudHMpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGRvIHRoZSBpbnRlcm5hbCByZXdpcmlu
ZwotICAgICAgICAgIGRlbGV0ZSBvbGRfbm9kZS5wYXJlbnQuY29udGVudHNbb2xkX25vZGUubmFt
ZV07Ci0gICAgICAgICAgb2xkX25vZGUubmFtZSA9IG5ld19uYW1lOwotICAgICAgICAgIG5ld19k
aXIuY29udGVudHNbbmV3X25hbWVdID0gb2xkX25vZGU7Ci0gICAgICAgIH0sdW5saW5rOmZ1bmN0
aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRlbnRzW25h
bWVdOwotICAgICAgICB9LHJtZGlyOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAgICAgICAg
ICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUocGFyZW50LCBuYW1lKTsKLSAgICAgICAgICBmb3Ig
KHZhciBpIGluIG5vZGUuY29udGVudHMpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVOT1RFTVBUWSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGRl
bGV0ZSBwYXJlbnQuY29udGVudHNbbmFtZV07Ci0gICAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAo
bm9kZSkgewotICAgICAgICAgIHZhciBlbnRyaWVzID0gWycuJywgJy4uJ10KLSAgICAgICAgICBm
b3IgKHZhciBrZXkgaW4gbm9kZS5jb250ZW50cykgewotICAgICAgICAgICAgaWYgKCFub2RlLmNv
bnRlbnRzLmhhc093blByb3BlcnR5KGtleSkpIHsKLSAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbnRyaWVzLnB1c2goa2V5KTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgcmV0dXJuIGVudHJpZXM7Ci0gICAgICAgIH0sc3ltbGluazpmdW5jdGlvbiAo
cGFyZW50LCBuZXduYW1lLCBvbGRwYXRoKSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBNRU1GUy5j
cmVhdGVfbm9kZShwYXJlbnQsIG5ld25hbWUsIDA3NzcgfCAwMTIwMDAwLCAwKTsKLSAgICAgICAg
ICBub2RlLmxpbmsgPSBvbGRwYXRoOwotICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9
LHJlYWRsaW5rOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0xpbmsobm9k
ZS5tb2RlKSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRUlOVkFMKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIG5vZGUubGluazsKLSAg
ICAgICAgfX0sc3RyZWFtX29wczp7cmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNl
dCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5u
b2RlLmNvbnRlbnRzOwotICAgICAgICAgIHZhciBzaXplID0gTWF0aC5taW4oY29udGVudHMubGVu
Z3RoIC0gcG9zaXRpb24sIGxlbmd0aCk7Ci0gICAgICAgICAgaWYgKGNvbnRlbnRzLnN1YmFycmF5
KSB7IC8vIHR5cGVkIGFycmF5Ci0gICAgICAgICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLnN1YmFy
cmF5KHBvc2l0aW9uLCBwb3NpdGlvbiArIHNpemUpLCBvZmZzZXQpOwotICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsr
KSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNvbnRlbnRzW3Bvc2l0aW9u
ICsgaV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBzaXpl
OwotICAgICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29u
dGVudHM7Ci0gICAgICAgICAgd2hpbGUgKGNvbnRlbnRzLmxlbmd0aCA8IHBvc2l0aW9uKSBjb250
ZW50cy5wdXNoKDApOwotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICAgIGNvbnRlbnRzW3Bvc2l0aW9uICsgaV0gPSBidWZmZXJbb2Zmc2V0ICsg
aV07Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUu
bm93KCk7Ci0gICAgICAgICAgcmV0dXJuIGxlbmd0aDsKLSAgICAgICAgfSxsbHNlZWs6ZnVuY3Rp
b24gKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKLSAgICAgICAgICB2YXIgcG9zaXRpb24gPSBv
ZmZzZXQ7Ci0gICAgICAgICAgaWYgKHdoZW5jZSA9PT0gMSkgeyAgLy8gU0VFS19DVVIuCi0gICAg
ICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ucG9zaXRpb247Ci0gICAgICAgICAgfSBlbHNlIGlm
ICh3aGVuY2UgPT09IDIpIHsgIC8vIFNFRUtfRU5ELgotICAgICAgICAgICAgaWYgKEZTLmlzRmls
ZShzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0u
bm9kZS5jb250ZW50cy5sZW5ndGg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGlmIChwb3NpdGlvbiA8IDApIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS51
bmdvdHRlbiA9IFtdOwotICAgICAgICAgIHN0cmVhbS5wb3NpdGlvbiA9IHBvc2l0aW9uOwotICAg
ICAgICAgIHJldHVybiBwb3NpdGlvbjsKLSAgICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3Ry
ZWFtLCBvZmZzZXQsIGxlbmd0aCkgewotICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5u
b2RlLmNvbnRlbnRzOwotICAgICAgICAgIHZhciBsaW1pdCA9IG9mZnNldCArIGxlbmd0aDsKLSAg
ICAgICAgICB3aGlsZSAobGltaXQgPiBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7
Ci0gICAgICAgIH0sbW1hcDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3Ro
LCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsKLSAgICAgICAgICBpZiAoIUZTLmlzRmlsZShzdHJl
YW0ubm9kZS5tb2RlKSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRU5PREVWKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIHB0cjsKLSAgICAg
ICAgICB2YXIgYWxsb2NhdGVkOwotICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2Rl
LmNvbnRlbnRzOwotICAgICAgICAgIC8vIE9ubHkgbWFrZSBhIG5ldyBjb3B5IHdoZW4gTUFQX1BS
SVZBVEUgaXMgc3BlY2lmaWVkLgotICAgICAgICAgIGlmICghKGZsYWdzICYgMHgwMikpIHsKLSAg
ICAgICAgICAgIC8vIFdlIGNhbid0IGVtdWxhdGUgTUFQX1NIQVJFRCB3aGVuIHRoZSBmaWxlIGlz
IG5vdCBiYWNrZWQgYnkgdGhlIGJ1ZmZlcgotICAgICAgICAgICAgLy8gd2UncmUgbWFwcGluZyB0
byAoZS5nLiB0aGUgSEVBUCBidWZmZXIpLgotICAgICAgICAgICAgYXNzZXJ0KGNvbnRlbnRzLmJ1
ZmZlciA9PT0gYnVmZmVyIHx8IGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVyLmJ1ZmZlcik7Ci0g
ICAgICAgICAgICBhbGxvY2F0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHB0ciA9IGNvbnRlbnRz
LmJ5dGVPZmZzZXQ7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFRyeSB0byBh
dm9pZCB1bm5lY2Vzc2FyeSBzbGljZXMuCi0gICAgICAgICAgICBpZiAocG9zaXRpb24gPiAwIHx8
IHBvc2l0aW9uICsgbGVuZ3RoIDwgY29udGVudHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIGlm
IChjb250ZW50cy5zdWJhcnJheSkgewotICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gY29udGVu
dHMuc3ViYXJyYXkocG9zaXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBjb250ZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGlj
ZS5jYWxsKGNvbnRlbnRzLCBwb3NpdGlvbiwgcG9zaXRpb24gKyBsZW5ndGgpOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhbGxvY2F0ZWQgPSB0cnVlOwotICAg
ICAgICAgICAgcHRyID0gX21hbGxvYyhsZW5ndGgpOwotICAgICAgICAgICAgaWYgKCFwdHIpIHsK
LSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PTUVN
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJ1ZmZlci5zZXQoY29udGVudHMsIHB0cik7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiB7IHB0cjogcHRyLCBhbGxvY2F0ZWQ6IGFs
bG9jYXRlZCB9OwotICAgICAgICB9fX07Ci0gIHZhciBfc3RkaW49YWxsb2NhdGUoMSwgImkzMioi
LCBBTExPQ19TVEFUSUMpOwotICB2YXIgX3N0ZG91dD1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9D
X1NUQVRJQyk7Ci0gIHZhciBfc3RkZXJyPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElD
KTsKLSAgZnVuY3Rpb24gX2ZmbHVzaChzdHJlYW0pIHsKLSAgICAgIC8vIGludCBmZmx1c2goRklM
RSAqc3RyZWFtKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVi
cy8wMDAwOTUzOTkvZnVuY3Rpb25zL2ZmbHVzaC5odG1sCi0gICAgICAvLyB3ZSBkb24ndCBjdXJy
ZW50bHkgcGVyZm9ybSBhbnkgdXNlci1zcGFjZSBidWZmZXJpbmcgb2YgZGF0YQotICAgIH12YXIg
RlM9e3Jvb3Q6bnVsbCxub2RlczpbbnVsbF0sZGV2aWNlczpbbnVsbF0sc3RyZWFtczpbbnVsbF0s
bmV4dElub2RlOjEsbmFtZV90YWJsZTpudWxsLGN1cnJlbnRQYXRoOiIvIixpbml0aWFsaXplZDpm
YWxzZSxpZ25vcmVQZXJtaXNzaW9uczp0cnVlLEVycm5vRXJyb3I6ZnVuY3Rpb24gRXJybm9FcnJv
cihlcnJubykgewotICAgICAgICAgIHRoaXMuZXJybm8gPSBlcnJubzsKLSAgICAgICAgICBmb3Ig
KHZhciBrZXkgaW4gRVJSTk9fQ09ERVMpIHsKLSAgICAgICAgICAgIGlmIChFUlJOT19DT0RFU1tr
ZXldID09PSBlcnJubykgewotICAgICAgICAgICAgICB0aGlzLmNvZGUgPSBrZXk7Ci0gICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICB0aGlz
Lm1lc3NhZ2UgPSBFUlJOT19NRVNTQUdFU1tlcnJub107Ci0gICAgICAgIH0saGFuZGxlRlNFcnJv
cjpmdW5jdGlvbiAoZSkgewotICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJv
cikpIHRocm93IGUgKyAnIDogJyArIG5ldyBFcnJvcigpLnN0YWNrOwotICAgICAgICByZXR1cm4g
X19fc2V0RXJyTm8oZS5lcnJubyk7Ci0gICAgICB9LGhhc2hOYW1lOmZ1bmN0aW9uIChwYXJlbnRp
ZCwgbmFtZSkgewotICAgICAgICB2YXIgaGFzaCA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbmFtZS5sZW5ndGg7IGkrKykgewotICAgICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkg
LSBoYXNoICsgbmFtZS5jaGFyQ29kZUF0KGkpKSB8IDA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuICgocGFyZW50aWQgKyBoYXNoKSA+Pj4gMCkgJSBGUy5uYW1lX3RhYmxlLmxlbmd0aDsKLSAg
ICAgIH0saGFzaEFkZE5vZGU6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIGhhc2ggPSBG
Uy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKLSAgICAgICAgbm9kZS5uYW1l
X25leHQgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOwotICAgICAgICBGUy5uYW1lX3RhYmxlW2hhc2hd
ID0gbm9kZTsKLSAgICAgIH0saGFzaFJlbW92ZU5vZGU6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAg
ICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKLSAg
ICAgICAgaWYgKEZTLm5hbWVfdGFibGVbaGFzaF0gPT09IG5vZGUpIHsKLSAgICAgICAgICBGUy5u
YW1lX3RhYmxlW2hhc2hdID0gbm9kZS5uYW1lX25leHQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgdmFyIGN1cnJlbnQgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOwotICAgICAgICAgIHdoaWxl
IChjdXJyZW50KSB7Ci0gICAgICAgICAgICBpZiAoY3VycmVudC5uYW1lX25leHQgPT09IG5vZGUp
IHsKLSAgICAgICAgICAgICAgY3VycmVudC5uYW1lX25leHQgPSBub2RlLm5hbWVfbmV4dDsKLSAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjdXJyZW50ID0g
Y3VycmVudC5uYW1lX25leHQ7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9LGxvb2t1
cE5vZGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkgewotICAgICAgICB2YXIgZXJyID0gRlMubWF5
TG9va3VwKHBhcmVudCk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFz
aE5hbWUocGFyZW50LmlkLCBuYW1lKTsKLSAgICAgICAgZm9yICh2YXIgbm9kZSA9IEZTLm5hbWVf
dGFibGVbaGFzaF07IG5vZGU7IG5vZGUgPSBub2RlLm5hbWVfbmV4dCkgewotICAgICAgICAgIGlm
IChub2RlLnBhcmVudC5pZCA9PT0gcGFyZW50LmlkICYmIG5vZGUubmFtZSA9PT0gbmFtZSkgewot
ICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IC8vIGlmIHdlIGZhaWxlZCB0byBmaW5kIGl0IGluIHRoZSBjYWNoZSwgY2FsbCBpbnRvIHRoZSBW
RlMKLSAgICAgICAgcmV0dXJuIEZTLmxvb2t1cChwYXJlbnQsIG5hbWUpOwotICAgICAgfSxjcmVh
dGVOb2RlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIG1vZGUsIHJkZXYpIHsKLSAgICAgICAgdmFy
IG5vZGUgPSB7Ci0gICAgICAgICAgaWQ6IEZTLm5leHRJbm9kZSsrLAotICAgICAgICAgIG5hbWU6
IG5hbWUsCi0gICAgICAgICAgbW9kZTogbW9kZSwKLSAgICAgICAgICBub2RlX29wczoge30sCi0g
ICAgICAgICAgc3RyZWFtX29wczoge30sCi0gICAgICAgICAgcmRldjogcmRldiwKLSAgICAgICAg
ICBwYXJlbnQ6IG51bGwsCi0gICAgICAgICAgbW91bnQ6IG51bGwKLSAgICAgICAgfTsKLSAgICAg
ICAgaWYgKCFwYXJlbnQpIHsKLSAgICAgICAgICBwYXJlbnQgPSBub2RlOyAgLy8gcm9vdCBub2Rl
IHNldHMgcGFyZW50IHRvIGl0c2VsZgotICAgICAgICB9Ci0gICAgICAgIG5vZGUucGFyZW50ID0g
cGFyZW50OwotICAgICAgICBub2RlLm1vdW50ID0gcGFyZW50Lm1vdW50OwotICAgICAgICAvLyBj
b21wYXRpYmlsaXR5Ci0gICAgICAgIHZhciByZWFkTW9kZSA9IDI5MiB8IDczOwotICAgICAgICB2
YXIgd3JpdGVNb2RlID0gMTQ2OwotICAgICAgICAvLyBOT1RFIHdlIG11c3QgdXNlIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0aWVzIGluc3RlYWQgb2YgaW5kaXZpZHVhbCBjYWxscyB0bwotICAgICAgICAv
LyBPYmplY3QuZGVmaW5lUHJvcGVydHkgaW4gb3JkZXIgdG8gbWFrZSBjbG9zdXJlIGNvbXBpbGVy
IGhhcHB5Ci0gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5vZGUsIHsKLSAgICAgICAg
ICByZWFkOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKG5vZGUubW9k
ZSAmIHJlYWRNb2RlKSA9PT0gcmVhZE1vZGU7IH0sCi0gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9u
KHZhbCkgeyB2YWwgPyBub2RlLm1vZGUgfD0gcmVhZE1vZGUgOiBub2RlLm1vZGUgJj0gfnJlYWRN
b2RlOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3cml0ZTogewotICAgICAgICAgICAgZ2V0
OiBmdW5jdGlvbigpIHsgcmV0dXJuIChub2RlLm1vZGUgJiB3cml0ZU1vZGUpID09PSB3cml0ZU1v
ZGU7IH0sCi0gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyB2YWwgPyBub2RlLm1vZGUg
fD0gd3JpdGVNb2RlIDogbm9kZS5tb2RlICY9IH53cml0ZU1vZGU7IH0KLSAgICAgICAgICB9LAot
ICAgICAgICAgIGlzRm9sZGVyOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1
cm4gRlMuaXNEaXIobm9kZS5tb2RlKTsgfSwKLSAgICAgICAgICB9LAotICAgICAgICAgIGlzRGV2
aWNlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gRlMuaXNDaHJkZXYo
bm9kZS5tb2RlKTsgfSwKLSAgICAgICAgICB9LAotICAgICAgICB9KTsKLSAgICAgICAgRlMuaGFz
aEFkZE5vZGUobm9kZSk7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfSxkZXN0cm95Tm9k
ZTpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICBGUy5oYXNoUmVtb3ZlTm9kZShub2RlKTsKLSAg
ICAgIH0saXNSb290OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHJldHVybiBub2RlID09PSBu
b2RlLnBhcmVudDsKLSAgICAgIH0saXNNb3VudHBvaW50OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAg
ICAgIHJldHVybiBub2RlLm1vdW50ZWQ7Ci0gICAgICB9LGlzRmlsZTpmdW5jdGlvbiAobW9kZSkg
ewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDEwMDAwMDsKLSAgICAgIH0s
aXNEaXI6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkg
PT09IDAwNDAwMDA7Ci0gICAgICB9LGlzTGluazpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBy
ZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDEyMDAwMDsKLSAgICAgIH0saXNDaHJkZXY6ZnVu
Y3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwMjAw
MDA7Ci0gICAgICB9LGlzQmxrZGV2OmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAo
bW9kZSAmIDAxNzAwMDApID09PSAwMDYwMDAwOwotICAgICAgfSxpc0ZJRk86ZnVuY3Rpb24gKG1v
ZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwMTAwMDA7Ci0gICAg
ICB9LGN3ZDpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiBGUy5jdXJyZW50UGF0aDsKLSAg
ICAgIH0sbG9va3VwUGF0aDpmdW5jdGlvbiAocGF0aCwgb3B0cykgewotICAgICAgICBwYXRoID0g
UEFUSC5yZXNvbHZlKEZTLmN1cnJlbnRQYXRoLCBwYXRoKTsKLSAgICAgICAgb3B0cyA9IG9wdHMg
fHwgeyByZWN1cnNlX2NvdW50OiAwIH07Ci0gICAgICAgIGlmIChvcHRzLnJlY3Vyc2VfY291bnQg
PiA4KSB7ICAvLyBtYXggcmVjdXJzaXZlIGxvb2t1cCBvZiA4Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUxPT1ApOwotICAgICAgICB9Ci0gICAgICAgIC8v
IHNwbGl0IHRoZSBwYXRoCi0gICAgICAgIHZhciBwYXJ0cyA9IFBBVEgubm9ybWFsaXplQXJyYXko
cGF0aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihwKSB7Ci0gICAgICAgICAgcmV0dXJuICEh
cDsKLSAgICAgICAgfSksIGZhbHNlKTsKLSAgICAgICAgLy8gc3RhcnQgYXQgdGhlIHJvb3QKLSAg
ICAgICAgdmFyIGN1cnJlbnQgPSBGUy5yb290OwotICAgICAgICB2YXIgY3VycmVudF9wYXRoID0g
Jy8nOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgICAgdmFyIGlzbGFzdCA9IChpID09PSBwYXJ0cy5sZW5ndGgtMSk7Ci0gICAgICAgICAg
aWYgKGlzbGFzdCAmJiBvcHRzLnBhcmVudCkgewotICAgICAgICAgICAgLy8gc3RvcCByZXNvbHZp
bmcKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgICBjdXJyZW50ID0g
RlMubG9va3VwTm9kZShjdXJyZW50LCBwYXJ0c1tpXSk7Ci0gICAgICAgICAgY3VycmVudF9wYXRo
ID0gUEFUSC5qb2luKGN1cnJlbnRfcGF0aCwgcGFydHNbaV0pOwotICAgICAgICAgIC8vIGp1bXAg
dG8gdGhlIG1vdW50J3Mgcm9vdCBub2RlIGlmIHRoaXMgaXMgYSBtb3VudHBvaW50Ci0gICAgICAg
ICAgaWYgKEZTLmlzTW91bnRwb2ludChjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9
IGN1cnJlbnQubW91bnQucm9vdDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gZm9sbG93IHN5
bWxpbmtzCi0gICAgICAgICAgLy8gYnkgZGVmYXVsdCwgbG9va3VwUGF0aCB3aWxsIG5vdCBmb2xs
b3cgYSBzeW1saW5rIGlmIGl0IGlzIHRoZSBmaW5hbCBwYXRoIGNvbXBvbmVudC4KLSAgICAgICAg
ICAvLyBzZXR0aW5nIG9wdHMuZm9sbG93ID0gdHJ1ZSB3aWxsIG92ZXJyaWRlIHRoaXMgYmVoYXZp
b3IuCi0gICAgICAgICAgaWYgKCFpc2xhc3QgfHwgb3B0cy5mb2xsb3cpIHsKLSAgICAgICAgICAg
IHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAgICB3aGlsZSAoRlMuaXNMaW5rKGN1cnJlbnQubW9k
ZSkpIHsKLSAgICAgICAgICAgICAgdmFyIGxpbmsgPSBGUy5yZWFkbGluayhjdXJyZW50X3BhdGgp
OwotICAgICAgICAgICAgICBjdXJyZW50X3BhdGggPSBQQVRILnJlc29sdmUoUEFUSC5kaXJuYW1l
KGN1cnJlbnRfcGF0aCksIGxpbmspOwotICAgICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9v
a3VwUGF0aChjdXJyZW50X3BhdGgsIHsgcmVjdXJzZV9jb3VudDogb3B0cy5yZWN1cnNlX2NvdW50
IH0pOwotICAgICAgICAgICAgICBjdXJyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgICAg
IGlmIChjb3VudCsrID4gNDApIHsgIC8vIGxpbWl0IG1heCBjb25zZWN1dGl2ZSBzeW1saW5rcyB0
byA0MCAoU1lNTE9PUF9NQVgpLgotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVMT09QKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4geyBwYXRoOiBjdXJyZW50X3Bh
dGgsIG5vZGU6IGN1cnJlbnQgfTsKLSAgICAgIH0sZ2V0UGF0aDpmdW5jdGlvbiAobm9kZSkgewot
ICAgICAgICB2YXIgcGF0aDsKLSAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICBpZiAo
RlMuaXNSb290KG5vZGUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gcGF0aCA/IFBBVEguam9pbihu
b2RlLm1vdW50Lm1vdW50cG9pbnQsIHBhdGgpIDogbm9kZS5tb3VudC5tb3VudHBvaW50OwotICAg
ICAgICAgIH0KLSAgICAgICAgICBwYXRoID0gcGF0aCA/IFBBVEguam9pbihub2RlLm5hbWUsIHBh
dGgpIDogbm9kZS5uYW1lOwotICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudDsKLSAgICAgICAg
fQotICAgICAgfSxmbGFnTW9kZXM6eyJyIjowLCJycyI6ODE5MiwicisiOjIsInciOjE1MzcsInd4
IjozNTg1LCJ4dyI6MzU4NSwidysiOjE1MzgsInd4KyI6MzU4NiwieHcrIjozNTg2LCJhIjo1MjEs
ImF4IjoyNTY5LCJ4YSI6MjU2OSwiYSsiOjUyMiwiYXgrIjoyNTcwLCJ4YSsiOjI1NzB9LG1vZGVT
dHJpbmdUb0ZsYWdzOmZ1bmN0aW9uIChzdHIpIHsKLSAgICAgICAgdmFyIGZsYWdzID0gRlMuZmxh
Z01vZGVzW3N0cl07Ci0gICAgICAgIGlmICh0eXBlb2YgZmxhZ3MgPT09ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGZpbGUgb3BlbiBtb2RlOiAnICsg
c3RyKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmxhZ3M7Ci0gICAgICB9LGZsYWdzVG9Q
ZXJtaXNzaW9uU3RyaW5nOmZ1bmN0aW9uIChmbGFnKSB7Ci0gICAgICAgIHZhciBhY2Ntb2RlID0g
ZmxhZyAmIDM7Ci0gICAgICAgIHZhciBwZXJtcyA9IFsncicsICd3JywgJ3J3J11bYWNjbW9kZV07
Ci0gICAgICAgIGlmICgoZmxhZyAmIDEwMjQpKSB7Ci0gICAgICAgICAgcGVybXMgKz0gJ3cnOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwZXJtczsKLSAgICAgIH0sbm9kZVBlcm1pc3Npb25z
OmZ1bmN0aW9uIChub2RlLCBwZXJtcykgewotICAgICAgICBpZiAoRlMuaWdub3JlUGVybWlzc2lv
bnMpIHsKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgICAvLyByZXR1cm4g
MCBpZiBhbnkgdXNlciwgZ3JvdXAgb3Igb3duZXIgYml0cyBhcmUgc2V0LgotICAgICAgICBpZiAo
cGVybXMuaW5kZXhPZigncicpICE9PSAtMSAmJiAhKG5vZGUubW9kZSAmIDI5MikpIHsKLSAgICAg
ICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUFDQ0VTOwotICAgICAgICB9IGVsc2UgaWYgKHBlcm1z
LmluZGV4T2YoJ3cnKSAhPT0gLTEgJiYgIShub2RlLm1vZGUgJiAxNDYpKSB7Ci0gICAgICAgICAg
cmV0dXJuIEVSUk5PX0NPREVTLkVBQ0NFUzsKLSAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRl
eE9mKCd4JykgIT09IC0xICYmICEobm9kZS5tb2RlICYgNzMpKSB7Ci0gICAgICAgICAgcmV0dXJu
IEVSUk5PX0NPREVTLkVBQ0NFUzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICAg
IH0sbWF5TG9va3VwOmZ1bmN0aW9uIChkaXIpIHsKLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJt
aXNzaW9ucyhkaXIsICd4Jyk7Ci0gICAgICB9LG1heU1rbm9kOmZ1bmN0aW9uIChtb2RlKSB7Ci0g
ICAgICAgIHN3aXRjaCAobW9kZSAmIDAxNzAwMDApIHsKLSAgICAgICAgICBjYXNlIDAxMDAwMDA6
Ci0gICAgICAgICAgY2FzZSAwMDIwMDAwOgotICAgICAgICAgIGNhc2UgMDA2MDAwMDoKLSAgICAg
ICAgICBjYXNlIDAwMTAwMDA6Ci0gICAgICAgICAgY2FzZSAwMTQwMDAwOgotICAgICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19D
T0RFUy5FSU5WQUw7Ci0gICAgICAgIH0KLSAgICAgIH0sbWF5Q3JlYXRlOmZ1bmN0aW9uIChkaXIs
IG5hbWUpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5v
ZGUoZGlyLCBuYW1lKTsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUVYSVNUOwotICAg
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJt
aXNzaW9ucyhkaXIsICd3eCcpOwotICAgICAgfSxtYXlEZWxldGU6ZnVuY3Rpb24gKGRpciwgbmFt
ZSwgaXNkaXIpIHsKLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAg
bm9kZSA9IEZTLmxvb2t1cE5vZGUoZGlyLCBuYW1lKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgIHJldHVybiBlLmVycm5vOwotICAgICAgICB9Ci0gICAgICAgIHZhciBlcnIgPSBG
Uy5ub2RlUGVybWlzc2lvbnMoZGlyLCAnd3gnKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAg
ICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzZGlyKSB7Ci0gICAgICAg
ICAgaWYgKCFGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9f
Q09ERVMuRU5PVERJUjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2Rl
KSB8fCBGUy5nZXRQYXRoKG5vZGUpID09PSBGUy5jdXJyZW50UGF0aCkgewotICAgICAgICAgICAg
cmV0dXJuIEVSUk5PX0NPREVTLkVCVVNZOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgcmV0dXJu
IEVSUk5PX0NPREVTLkVJU0RJUjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgICB9LG1heU9wZW46ZnVuY3Rpb24gKG5vZGUsIGZsYWdzKSB7Ci0gICAgICAg
IGlmICghbm9kZSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FTk9FTlQ7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgcmV0
dXJuIEVSUk5PX0NPREVTLkVMT09QOwotICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRGlyKG5vZGUu
bW9kZSkpIHsKLSAgICAgICAgICBpZiAoKGZsYWdzICYgMykgIT09IDAgfHwgIC8vIG9wZW5pbmcg
Zm9yIHdyaXRlCi0gICAgICAgICAgICAgIChmbGFncyAmIDEwMjQpKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gRVJSTk9fQ09ERVMuRUlTRElSOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25zKG5vZGUsIEZTLmZsYWdzVG9QZXJtaXNzaW9uU3Ry
aW5nKGZsYWdzKSk7Ci0gICAgICB9LGNocmRldl9zdHJlYW1fb3BzOntvcGVuOmZ1bmN0aW9uIChz
dHJlYW0pIHsKLSAgICAgICAgICB2YXIgZGV2aWNlID0gRlMuZ2V0RGV2aWNlKHN0cmVhbS5ub2Rl
LnJkZXYpOwotICAgICAgICAgIC8vIG92ZXJyaWRlIG5vZGUncyBzdHJlYW0gb3BzIHdpdGggdGhl
IGRldmljZSdzCi0gICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMgPSBkZXZpY2Uuc3RyZWFtX29w
czsKLSAgICAgICAgICAvLyBmb3J3YXJkIHRoZSBvcGVuIGNhbGwKLSAgICAgICAgICBpZiAoc3Ry
ZWFtLnN0cmVhbV9vcHMub3BlbikgewotICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMub3Bl
bihzdHJlYW0pOwotICAgICAgICAgIH0KLSAgICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKCkgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7Ci0g
ICAgICAgIH19LG1ham9yOmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSA+
PiA4KTsKLSAgICAgIH0sbWlub3I6ZnVuY3Rpb24gKGRldikgewotICAgICAgICByZXR1cm4gKChk
ZXYpICYgMHhmZik7Ci0gICAgICB9LG1ha2VkZXY6ZnVuY3Rpb24gKG1hLCBtaSkgewotICAgICAg
ICByZXR1cm4gKChtYSkgPDwgOCB8IChtaSkpOwotICAgICAgfSxyZWdpc3RlckRldmljZTpmdW5j
dGlvbiAoZGV2LCBvcHMpIHsKLSAgICAgICAgRlMuZGV2aWNlc1tkZXZdID0geyBzdHJlYW1fb3Bz
OiBvcHMgfTsKLSAgICAgIH0sZ2V0RGV2aWNlOmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0
dXJuIEZTLmRldmljZXNbZGV2XTsKLSAgICAgIH0sTUFYX09QRU5fRkRTOjQwOTYsbmV4dGZkOmZ1
bmN0aW9uIChmZF9zdGFydCwgZmRfZW5kKSB7Ci0gICAgICAgIGZkX3N0YXJ0ID0gZmRfc3RhcnQg
fHwgMTsKLSAgICAgICAgZmRfZW5kID0gZmRfZW5kIHx8IEZTLk1BWF9PUEVOX0ZEUzsKLSAgICAg
ICAgZm9yICh2YXIgZmQgPSBmZF9zdGFydDsgZmQgPD0gZmRfZW5kOyBmZCsrKSB7Ci0gICAgICAg
ICAgaWYgKCFGUy5zdHJlYW1zW2ZkXSkgewotICAgICAgICAgICAgcmV0dXJuIGZkOwotICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FTUZJTEUpOwotICAgICAgfSxnZXRTdHJlYW06ZnVuY3Rpb24gKGZkKSB7Ci0gICAgICAg
IHJldHVybiBGUy5zdHJlYW1zW2ZkXTsKLSAgICAgIH0sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uIChz
dHJlYW0sIGZkX3N0YXJ0LCBmZF9lbmQpIHsKLSAgICAgICAgdmFyIGZkID0gRlMubmV4dGZkKGZk
X3N0YXJ0LCBmZF9lbmQpOwotICAgICAgICBzdHJlYW0uZmQgPSBmZDsKLSAgICAgICAgLy8gY29t
cGF0aWJpbGl0eQotICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzdHJlYW0sIHsKLSAg
ICAgICAgICBvYmplY3Q6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBz
dHJlYW0ubm9kZTsgfSwKLSAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsKSB7IHN0cmVhbS5u
b2RlID0gdmFsOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc1JlYWQ6IHsKLSAgICAgICAg
ICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAoc3RyZWFtLmZsYWdzICYgMykgIT09IDE7IH0K
LSAgICAgICAgICB9LAotICAgICAgICAgIGlzV3JpdGU6IHsKLSAgICAgICAgICAgIGdldDogZnVu
Y3Rpb24oKSB7IHJldHVybiAoc3RyZWFtLmZsYWdzICYgMykgIT09IDA7IH0KLSAgICAgICAgICB9
LAotICAgICAgICAgIGlzQXBwZW5kOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gKHN0cmVhbS5mbGFncyAmIDgpOyB9Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAg
ICAgICAgRlMuc3RyZWFtc1tmZF0gPSBzdHJlYW07Ci0gICAgICAgIHJldHVybiBzdHJlYW07Ci0g
ICAgICB9LGNsb3NlU3RyZWFtOmZ1bmN0aW9uIChmZCkgewotICAgICAgICBGUy5zdHJlYW1zW2Zk
XSA9IG51bGw7Ci0gICAgICB9LGdldE1vZGU6ZnVuY3Rpb24gKGNhblJlYWQsIGNhbldyaXRlKSB7
Ci0gICAgICAgIHZhciBtb2RlID0gMDsKLSAgICAgICAgaWYgKGNhblJlYWQpIG1vZGUgfD0gMjky
IHwgNzM7Ci0gICAgICAgIGlmIChjYW5Xcml0ZSkgbW9kZSB8PSAxNDY7Ci0gICAgICAgIHJldHVy
biBtb2RlOwotICAgICAgfSxqb2luUGF0aDpmdW5jdGlvbiAocGFydHMsIGZvcmNlUmVsYXRpdmUp
IHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4uYXBwbHkobnVsbCwgcGFydHMpOwotICAg
ICAgICBpZiAoZm9yY2VSZWxhdGl2ZSAmJiBwYXRoWzBdID09ICcvJykgcGF0aCA9IHBhdGguc3Vi
c3RyKDEpOwotICAgICAgICByZXR1cm4gcGF0aDsKLSAgICAgIH0sYWJzb2x1dGVQYXRoOmZ1bmN0
aW9uIChyZWxhdGl2ZSwgYmFzZSkgewotICAgICAgICByZXR1cm4gUEFUSC5yZXNvbHZlKGJhc2Us
IHJlbGF0aXZlKTsKLSAgICAgIH0sc3RhbmRhcmRpemVQYXRoOmZ1bmN0aW9uIChwYXRoKSB7Ci0g
ICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6ZShwYXRoKTsKLSAgICAgIH0sZmluZE9iamVjdDpm
dW5jdGlvbiAocGF0aCwgZG9udFJlc29sdmVMYXN0TGluaykgewotICAgICAgICB2YXIgcmV0ID0g
RlMuYW5hbHl6ZVBhdGgocGF0aCwgZG9udFJlc29sdmVMYXN0TGluayk7Ci0gICAgICAgIGlmIChy
ZXQuZXhpc3RzKSB7Ci0gICAgICAgICAgcmV0dXJuIHJldC5vYmplY3Q7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgX19fc2V0RXJyTm8ocmV0LmVycm9yKTsKLSAgICAgICAgICByZXR1cm4g
bnVsbDsKLSAgICAgICAgfQotICAgICAgfSxhbmFseXplUGF0aDpmdW5jdGlvbiAocGF0aCwgZG9u
dFJlc29sdmVMYXN0TGluaykgewotICAgICAgICAvLyBvcGVyYXRlIGZyb20gd2l0aGluIHRoZSBj
b250ZXh0IG9mIHRoZSBzeW1saW5rJ3MgdGFyZ2V0Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAg
dmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxh
c3RMaW5rIH0pOwotICAgICAgICAgIHBhdGggPSBsb29rdXAucGF0aDsKLSAgICAgICAgfSBjYXRj
aCAoZSkgewotICAgICAgICB9Ci0gICAgICAgIHZhciByZXQgPSB7Ci0gICAgICAgICAgaXNSb290
OiBmYWxzZSwgZXhpc3RzOiBmYWxzZSwgZXJyb3I6IDAsIG5hbWU6IG51bGwsIHBhdGg6IG51bGws
IG9iamVjdDogbnVsbCwKLSAgICAgICAgICBwYXJlbnRFeGlzdHM6IGZhbHNlLCBwYXJlbnRQYXRo
OiBudWxsLCBwYXJlbnRPYmplY3Q6IG51bGwKLSAgICAgICAgfTsKLSAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9
KTsKLSAgICAgICAgICByZXQucGFyZW50RXhpc3RzID0gdHJ1ZTsKLSAgICAgICAgICByZXQucGFy
ZW50UGF0aCA9IGxvb2t1cC5wYXRoOwotICAgICAgICAgIHJldC5wYXJlbnRPYmplY3QgPSBsb29r
dXAubm9kZTsKLSAgICAgICAgICByZXQubmFtZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7Ci0gICAg
ICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRSZXNvbHZl
TGFzdExpbmsgfSk7Ci0gICAgICAgICAgcmV0LmV4aXN0cyA9IHRydWU7Ci0gICAgICAgICAgcmV0
LnBhdGggPSBsb29rdXAucGF0aDsKLSAgICAgICAgICByZXQub2JqZWN0ID0gbG9va3VwLm5vZGU7
Ci0gICAgICAgICAgcmV0Lm5hbWUgPSBsb29rdXAubm9kZS5uYW1lOwotICAgICAgICAgIHJldC5p
c1Jvb3QgPSBsb29rdXAucGF0aCA9PT0gJy8nOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgICAgcmV0LmVycm9yID0gZS5lcnJubzsKLSAgICAgICAgfTsKLSAgICAgICAgcmV0dXJuIHJl
dDsKLSAgICAgIH0sY3JlYXRlRm9sZGVyOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGNhblJlYWQs
IGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQg
PT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAg
ICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgcmV0
dXJuIEZTLm1rZGlyKHBhdGgsIG1vZGUpOwotICAgICAgfSxjcmVhdGVQYXRoOmZ1bmN0aW9uIChw
YXJlbnQsIHBhdGgsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHBhcmVudCA9IHR5cGVv
ZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpOwotICAg
ICAgICB2YXIgcGFydHMgPSBwYXRoLnNwbGl0KCcvJykucmV2ZXJzZSgpOwotICAgICAgICB3aGls
ZSAocGFydHMubGVuZ3RoKSB7Ci0gICAgICAgICAgdmFyIHBhcnQgPSBwYXJ0cy5wb3AoKTsKLSAg
ICAgICAgICBpZiAoIXBhcnQpIGNvbnRpbnVlOwotICAgICAgICAgIHZhciBjdXJyZW50ID0gUEFU
SC5qb2luKHBhcmVudCwgcGFydCk7Ci0gICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIEZTLm1r
ZGlyKGN1cnJlbnQsIDA3NzcpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAg
IC8vIGlnbm9yZSBFRVhJU1QKLSAgICAgICAgICB9Ci0gICAgICAgICAgcGFyZW50ID0gY3VycmVu
dDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gY3VycmVudDsKLSAgICAgIH0sY3JlYXRlRmls
ZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBwcm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSkg
ewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5n
JyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2Rl
ID0gRlMuZ2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5jcmVh
dGUocGF0aCwgbW9kZSk7Ci0gICAgICB9LGNyZWF0ZURhdGFGaWxlOmZ1bmN0aW9uIChwYXJlbnQs
IG5hbWUsIGRhdGEsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFU
SC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChw
YXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNh
bldyaXRlKTsKLSAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGUocGF0aCwgbW9kZSk7Ci0gICAg
ICAgIGlmIChkYXRhKSB7Ci0gICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykg
ewotICAgICAgICAgICAgdmFyIGFyciA9IG5ldyBBcnJheShkYXRhLmxlbmd0aCk7Ci0gICAgICAg
ICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZGF0YS5sZW5ndGg7IGkgPCBsZW47ICsraSkgYXJy
W2ldID0gZGF0YS5jaGFyQ29kZUF0KGkpOwotICAgICAgICAgICAgZGF0YSA9IGFycjsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGNhbiB3cml0ZSB0byB0aGUgZmlsZQot
ICAgICAgICAgIEZTLmNobW9kKHBhdGgsIG1vZGUgfCAxNDYpOwotICAgICAgICAgIHZhciBzdHJl
YW0gPSBGUy5vcGVuKHBhdGgsICd3Jyk7Ci0gICAgICAgICAgRlMud3JpdGUoc3RyZWFtLCBkYXRh
LCAwLCBkYXRhLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgRlMuY2xvc2Uoc3RyZWFtKTsKLSAgICAg
ICAgICBGUy5jaG1vZChwYXRoLCBtb2RlKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9k
ZTsKLSAgICAgIH0sY3JlYXRlRGV2aWNlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGlucHV0LCBv
dXRwdXQpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0g
J3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2
YXIgbW9kZSA9IGlucHV0ICYmIG91dHB1dCA/IDA3NzcgOiAoaW5wdXQgPyAwMzMzIDogMDU1NSk7
Ci0gICAgICAgIGlmICghRlMuY3JlYXRlRGV2aWNlLm1ham9yKSBGUy5jcmVhdGVEZXZpY2UubWFq
b3IgPSA2NDsKLSAgICAgICAgdmFyIGRldiA9IEZTLm1ha2VkZXYoRlMuY3JlYXRlRGV2aWNlLm1h
am9yKyssIDApOwotICAgICAgICAvLyBDcmVhdGUgYSBmYWtlIGRldmljZSB0aGF0IGEgc2V0IG9m
IHN0cmVhbSBvcHMgdG8gZW11bGF0ZQotICAgICAgICAvLyB0aGUgb2xkIGJlaGF2aW9yLgotICAg
ICAgICBGUy5yZWdpc3RlckRldmljZShkZXYsIHsKLSAgICAgICAgICBvcGVuOiBmdW5jdGlvbihz
dHJlYW0pIHsKLSAgICAgICAgICAgIHN0cmVhbS5zZWVrYWJsZSA9IGZhbHNlOwotICAgICAgICAg
IH0sCi0gICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKHN0cmVhbSkgewotICAgICAgICAgICAgLy8g
Zmx1c2ggYW55IHBlbmRpbmcgbGluZSBkYXRhCi0gICAgICAgICAgICBpZiAob3V0cHV0ICYmIG91
dHB1dC5idWZmZXIgJiYgb3V0cHV0LmJ1ZmZlci5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgb3V0
cHV0KDEwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAgIHJlYWQ6IGZ1
bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zIC8qIGlnbm9yZWQgKi8p
IHsKLSAgICAgICAgICAgIHZhciBieXRlc1JlYWQgPSAwOwotICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICB2YXIgcmVzdWx0OwotICAg
ICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlucHV0KCk7Ci0gICAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAmJiBieXRlc1JlYWQgPT09IDApIHsKLSAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0
ID09PSB1bmRlZmluZWQpIGJyZWFrOwotICAgICAgICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAg
ICAgICAgICAgYnVmZmVyW29mZnNldCtpXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGlmIChieXRlc1JlYWQpIHsKLSAgICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0
YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBieXRl
c1JlYWQ7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oc3RyZWFtLCBi
dWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MpIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICBvdXRwdXQoYnVmZmVyW29mZnNldCtpXSk7Ci0gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8p
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobGVuZ3Ro
KSB7Ci0gICAgICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0pOwotICAgICAgICByZXR1cm4gRlMubWtkZXYocGF0aCwgbW9kZSwgZGV2KTsKLSAgICAgIH0s
Y3JlYXRlTGluazpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCB0YXJnZXQsIGNhblJlYWQsIGNhbldy
aXRlKSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdz
dHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgcmV0
dXJuIEZTLnN5bWxpbmsodGFyZ2V0LCBwYXRoKTsKLSAgICAgIH0sZm9yY2VMb2FkRmlsZTpmdW5j
dGlvbiAob2JqKSB7Ci0gICAgICAgIGlmIChvYmouaXNEZXZpY2UgfHwgb2JqLmlzRm9sZGVyIHx8
IG9iai5saW5rIHx8IG9iai5jb250ZW50cykgcmV0dXJuIHRydWU7Ci0gICAgICAgIHZhciBzdWNj
ZXNzID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxhenkgbG9hZGluZyBzaG91bGQg
aGF2ZSBiZWVuIHBlcmZvcm1lZCAoY29udGVudHMgc2V0KSBpbiBjcmVhdGVMYXp5RmlsZSwgYnV0
IGl0IHdhcyBub3QuIExhenkgbG9hZGluZyBvbmx5IHdvcmtzIGluIHdlYiB3b3JrZXJzLiBVc2Ug
LS1lbWJlZC1maWxlIG9yIC0tcHJlbG9hZC1maWxlIGluIGVtY2Mgb24gdGhlIG1haW4gdGhyZWFk
LiIpOwotICAgICAgICB9IGVsc2UgaWYgKE1vZHVsZVsncmVhZCddKSB7Ci0gICAgICAgICAgLy8g
Q29tbWFuZC1saW5lLgotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAvLyBXQVJOSU5HOiBD
YW4ndCByZWFkIGJpbmFyeSBmaWxlcyBpbiBWOCdzIGQ4IG9yIHRyYWNlbW9ua2V5J3MganMsIGFz
Ci0gICAgICAgICAgICAvLyAgICAgICAgICByZWFkKCkgd2lsbCB0cnkgdG8gcGFyc2UgVVRGOC4K
LSAgICAgICAgICAgIG9iai5jb250ZW50cyA9IGludEFycmF5RnJvbVN0cmluZyhNb2R1bGVbJ3Jl
YWQnXShvYmoudXJsKSwgdHJ1ZSk7Ci0gICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAg
ICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0
dHBSZXF1ZXN0LicpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3VjY2VzcykgX19fc2V0RXJy
Tm8oRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7Ci0gICAgICB9LGNy
ZWF0ZUxhenlGaWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIHVybCwgY2FuUmVhZCwgY2FuV3Jp
dGUpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgICBpZiAoIUVOVklST05NRU5UX0lTX1dPUktFUikgdGhyb3cgJ0Nhbm5vdCBk
byBzeW5jaHJvbm91cyBiaW5hcnkgWEhScyBvdXRzaWRlIHdlYndvcmtlcnMgaW4gbW9kZXJuIGJy
b3dzZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9yIC0tcHJlbG9hZC1maWxlIGluIGVtY2MnOwotICAg
ICAgICAgIC8vIExhenkgY2h1bmtlZCBVaW50OEFycmF5IChpbXBsZW1lbnRzIGdldCBhbmQgbGVu
Z3RoIGZyb20gVWludDhBcnJheSkuIEFjdHVhbCBnZXR0aW5nIGlzIGFic3RyYWN0ZWQgYXdheSBm
b3IgZXZlbnR1YWwgcmV1c2UuCi0gICAgICAgICAgdmFyIExhenlVaW50OEFycmF5ID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICB0aGlzLmxlbmd0aEtub3duID0gZmFsc2U7Ci0gICAgICAgICAg
ICB0aGlzLmNodW5rcyA9IFtdOyAvLyBMb2FkZWQgY2h1bmtzLiBJbmRleCBpcyB0aGUgY2h1bmsg
bnVtYmVyCi0gICAgICAgICAgfQotICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5n
ZXQgPSBmdW5jdGlvbihpZHgpIHsKLSAgICAgICAgICAgIGlmIChpZHggPiB0aGlzLmxlbmd0aC0x
IHx8IGlkeCA8IDApIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHZhciBjaHVua09mZnNldCA9IGlkeCAlIHRoaXMuY2h1bmtTaXpl
OwotICAgICAgICAgICAgdmFyIGNodW5rTnVtID0gTWF0aC5mbG9vcihpZHggLyB0aGlzLmNodW5r
U2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXR0ZXIoY2h1bmtOdW0pW2NodW5rT2Zm
c2V0XTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLnNl
dERhdGFHZXR0ZXIgPSBmdW5jdGlvbihnZXR0ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuZ2V0dGVy
ID0gZ2V0dGVyOwotICAgICAgICAgIH0KLSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5
cGUuY2FjaGVMZW5ndGggPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgLy8gRmluZCBsZW5n
dGgKLSAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAg
ICAgICAgICB4aHIub3BlbignSEVBRCcsIHVybCwgZmFsc2UpOwotICAgICAgICAgICAgICB4aHIu
c2VuZChudWxsKTsKLSAgICAgICAgICAgICAgaWYgKCEoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhy
LnN0YXR1cyA8IDMwMCB8fCB4aHIuc3RhdHVzID09PSAzMDQpKSB0aHJvdyBuZXcgRXJyb3IoIkNv
dWxkbid0IGxvYWQgIiArIHVybCArICIuIFN0YXR1czogIiArIHhoci5zdGF0dXMpOwotICAgICAg
ICAgICAgICB2YXIgZGF0YWxlbmd0aCA9IE51bWJlcih4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNv
bnRlbnQtbGVuZ3RoIikpOwotICAgICAgICAgICAgICB2YXIgaGVhZGVyOwotICAgICAgICAgICAg
ICB2YXIgaGFzQnl0ZVNlcnZpbmcgPSAoaGVhZGVyID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCJB
Y2NlcHQtUmFuZ2VzIikpICYmIGhlYWRlciA9PT0gImJ5dGVzIjsKLSAgICAgICAgICAgICAgdmFy
IGNodW5rU2l6ZSA9IDEwMjQqMTAyNDsgLy8gQ2h1bmsgc2l6ZSBpbiBieXRlcwotICAgICAgICAg
ICAgICBpZiAoIWhhc0J5dGVTZXJ2aW5nKSBjaHVua1NpemUgPSBkYXRhbGVuZ3RoOwotICAgICAg
ICAgICAgICAvLyBGdW5jdGlvbiB0byBnZXQgYSByYW5nZSBmcm9tIHRoZSByZW1vdGUgVVJMLgot
ICAgICAgICAgICAgICB2YXIgZG9YSFIgPSAoZnVuY3Rpb24oZnJvbSwgdG8pIHsKLSAgICAgICAg
ICAgICAgICBpZiAoZnJvbSA+IHRvKSB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcmFuZ2UgKCIg
KyBmcm9tICsgIiwgIiArIHRvICsgIikgb3Igbm8gYnl0ZXMgcmVxdWVzdGVkISIpOwotICAgICAg
ICAgICAgICAgIGlmICh0byA+IGRhdGFsZW5ndGgtMSkgdGhyb3cgbmV3IEVycm9yKCJvbmx5ICIg
KyBkYXRhbGVuZ3RoICsgIiBieXRlcyBhdmFpbGFibGUhIHByb2dyYW1tZXIgZXJyb3IhIik7Ci0g
ICAgICAgICAgICAgICAgLy8gVE9ETzogVXNlIG1velJlc3BvbnNlQXJyYXlCdWZmZXIsIHJlc3Bv
bnNlU3RyZWFtLCBldGMuIGlmIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAgICB2YXIgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVy
bCwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGlmIChkYXRhbGVuZ3RoICE9PSBjaHVua1NpemUp
IHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJSYW5nZSIsICJieXRlcz0iICsgZnJvbSArICItIiArIHRv
KTsKLSAgICAgICAgICAgICAgICAvLyBTb21lIGhpbnRzIHRvIHRoZSBicm93c2VyIHRoYXQgd2Ug
d2FudCBiaW5hcnkgZGF0YS4KLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkg
IT0gJ3VuZGVmaW5lZCcpIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAgICAg
ICAgICAgICAgIGlmICh4aHIub3ZlcnJpZGVNaW1lVHlwZSkgewotICAgICAgICAgICAgICAgICAg
eGhyLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQn
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCEoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMw
MCB8fCB4aHIuc3RhdHVzID09PSAzMDQpKSB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQg
IiArIHVybCArICIuIFN0YXR1czogIiArIHhoci5zdGF0dXMpOwotICAgICAgICAgICAgICAgIGlm
ICh4aHIucmVzcG9uc2UgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZSB8fCBbXSk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRBcnJheUZyb21TdHJpbmcoeGhyLnJl
c3BvbnNlVGV4dCB8fCAnJywgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgdmFyIGxhenlBcnJheSA9IHRoaXM7Ci0gICAgICAgICAgICAg
IGxhenlBcnJheS5zZXREYXRhR2V0dGVyKGZ1bmN0aW9uKGNodW5rTnVtKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHN0YXJ0ID0gY2h1bmtOdW0gKiBjaHVua1NpemU7Ci0gICAgICAgICAgICAgICAg
dmFyIGVuZCA9IChjaHVua051bSsxKSAqIGNodW5rU2l6ZSAtIDE7IC8vIGluY2x1ZGluZyB0aGlz
IGJ5dGUKLSAgICAgICAgICAgICAgICBlbmQgPSBNYXRoLm1pbihlbmQsIGRhdGFsZW5ndGgtMSk7
IC8vIGlmIGRhdGFsZW5ndGgtMSBpcyBzZWxlY3RlZCwgdGhpcyBpcyB0aGUgbGFzdCBibG9jawot
ICAgICAgICAgICAgICAgIGlmICh0eXBlb2YobGF6eUFycmF5LmNodW5rc1tjaHVua051bV0pID09
PSAidW5kZWZpbmVkIikgewotICAgICAgICAgICAgICAgICAgbGF6eUFycmF5LmNodW5rc1tjaHVu
a051bV0gPSBkb1hIUihzdGFydCwgZW5kKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgaWYgKHR5cGVvZihsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSkgPT09ICJ1bmRlZmlu
ZWQiKSB0aHJvdyBuZXcgRXJyb3IoImRvWEhSIGZhaWxlZCEiKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbGF6eUFycmF5LmNodW5rc1tjaHVua051bV07Ci0gICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICB0aGlzLl9sZW5ndGggPSBkYXRhbGVuZ3RoOwotICAgICAgICAgICAgICB0aGlz
Ll9jaHVua1NpemUgPSBjaHVua1NpemU7Ci0gICAgICAgICAgICAgIHRoaXMubGVuZ3RoS25vd24g
PSB0cnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbGF6eUFycmF5ID0gbmV3IExhenlV
aW50OEFycmF5KCk7Ci0gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlBcnJheSwg
Imxlbmd0aCIsIHsKLSAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICAgIGlmKCF0aGlzLmxlbmd0aEtub3duKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgdGhp
cy5jYWNoZUxlbmd0aCgpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2xlbmd0aDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAg
ICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5QXJyYXksICJjaHVua1NpemUiLCB7Ci0g
ICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhp
cy5sZW5ndGhLbm93bikgewotICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgo
KTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9j
aHVua1NpemU7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICB2YXIg
cHJvcGVydGllcyA9IHsgaXNEZXZpY2U6IGZhbHNlLCBjb250ZW50czogbGF6eUFycmF5IH07Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlzRGV2aWNlOiBm
YWxzZSwgdXJsOiB1cmwgfTsKLSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0
ZUZpbGUocGFyZW50LCBuYW1lLCBwcm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAg
ICAgIC8vIFRoaXMgaXMgYSB0b3RhbCBoYWNrLCBidXQgSSB3YW50IHRvIGdldCB0aGlzIGxhenkg
ZmlsZSBjb2RlIG91dCBvZiB0aGUKLSAgICAgICAgLy8gY29yZSBvZiBNRU1GUy4gSWYgd2Ugd2Fu
dCB0byBrZWVwIHRoaXMgbGF6eSBmaWxlIGNvbmNlcHQgSSBmZWVsIGl0IHNob3VsZAotICAgICAg
ICAvLyBiZSBpdHMgb3duIHRoaW4gTEFaWUZTIHByb3h5aW5nIGNhbGxzIHRvIE1FTUZTLgotICAg
ICAgICBpZiAocHJvcGVydGllcy5jb250ZW50cykgewotICAgICAgICAgIG5vZGUuY29udGVudHMg
PSBwcm9wZXJ0aWVzLmNvbnRlbnRzOwotICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnRpZXMudXJs
KSB7Ci0gICAgICAgICAgbm9kZS5jb250ZW50cyA9IG51bGw7Ci0gICAgICAgICAgbm9kZS51cmwg
PSBwcm9wZXJ0aWVzLnVybDsKLSAgICAgICAgfQotICAgICAgICAvLyBvdmVycmlkZSBlYWNoIHN0
cmVhbSBvcCB3aXRoIG9uZSB0aGF0IHRyaWVzIHRvIGZvcmNlIGxvYWQgdGhlIGxhenkgZmlsZSBm
aXJzdAotICAgICAgICB2YXIgc3RyZWFtX29wcyA9IHt9OwotICAgICAgICB2YXIga2V5cyA9IE9i
amVjdC5rZXlzKG5vZGUuc3RyZWFtX29wcyk7Ci0gICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlv
bihrZXkpIHsKLSAgICAgICAgICB2YXIgZm4gPSBub2RlLnN0cmVhbV9vcHNba2V5XTsKLSAgICAg
ICAgICBzdHJlYW1fb3BzW2tleV0gPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGlmICghRlMu
Zm9yY2VMb2FkRmlsZShub2RlKSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJu
IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7Ci0gICAgICAgICAgfTsKLSAgICAgICAgfSk7Ci0g
ICAgICAgIC8vIHVzZSBhIGN1c3RvbSByZWFkIGZ1bmN0aW9uCi0gICAgICAgIHN0cmVhbV9vcHMu
cmVhZCA9IGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24p
IHsKLSAgICAgICAgICBpZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9kZSkpIHsKLSAgICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAg
IHZhciBzaXplID0gTWF0aC5taW4oY29udGVudHMubGVuZ3RoIC0gcG9zaXRpb24sIGxlbmd0aCk7
Ci0gICAgICAgICAgaWYgKGNvbnRlbnRzLnNsaWNlKSB7IC8vIG5vcm1hbCBhcnJheQotICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgICAgICAgYnVm
ZmVyW29mZnNldCArIGldID0gY29udGVudHNbcG9zaXRpb24gKyBpXTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXpl
OyBpKyspIHsgLy8gTGF6eVVpbnQ4QXJyYXkgZnJvbSBzeW5jIGJpbmFyeSBYSFIKLSAgICAgICAg
ICAgICAgYnVmZmVyW29mZnNldCArIGldID0gY29udGVudHMuZ2V0KHBvc2l0aW9uICsgaSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBzaXplOwotICAgICAg
ICB9OwotICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSBzdHJlYW1fb3BzOwotICAgICAgICByZXR1
cm4gbm9kZTsKLSAgICAgIH0sY3JlYXRlUHJlbG9hZGVkRmlsZTpmdW5jdGlvbiAocGFyZW50LCBu
YW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRlLCBvbmxvYWQsIG9uZXJyb3IsIGRvbnRDcmVhdGVG
aWxlKSB7Ci0gICAgICAgIEJyb3dzZXIuaW5pdCgpOwotICAgICAgICAvLyBUT0RPIHdlIHNob3Vs
ZCBhbGxvdyBwZW9wbGUgdG8ganVzdCBwYXNzIGluIGEgY29tcGxldGUgZmlsZW5hbWUgaW5zdGVh
ZAotICAgICAgICAvLyBvZiBwYXJlbnQgYW5kIG5hbWUgYmVpbmcgdGhhdCB3ZSBqdXN0IGpvaW4g
dGhlbSBhbnl3YXlzCi0gICAgICAgIHZhciBmdWxsbmFtZSA9IFBBVEgucmVzb2x2ZShQQVRILmpv
aW4ocGFyZW50LCBuYW1lKSk7Ci0gICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NEYXRhKGJ5dGVBcnJh
eSkgewotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChieXRlQXJyYXkpIHsKLSAgICAgICAgICAg
IGlmICghZG9udENyZWF0ZUZpbGUpIHsKLSAgICAgICAgICAgICAgRlMuY3JlYXRlRGF0YUZpbGUo
cGFyZW50LCBuYW1lLCBieXRlQXJyYXksIGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmIChvbmxvYWQpIG9ubG9hZCgpOwotICAgICAgICAgICAgcmVtb3Zl
UnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAg
dmFyIGhhbmRsZWQgPSBmYWxzZTsKLSAgICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10u
Zm9yRWFjaChmdW5jdGlvbihwbHVnaW4pIHsKLSAgICAgICAgICAgIGlmIChoYW5kbGVkKSByZXR1
cm47Ci0gICAgICAgICAgICBpZiAocGx1Z2luWydjYW5IYW5kbGUnXShmdWxsbmFtZSkpIHsKLSAg
ICAgICAgICAgICAgcGx1Z2luWydoYW5kbGUnXShieXRlQXJyYXksIGZ1bGxuYW1lLCBmaW5pc2gs
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0g
ICAgICAgICAgICAgICAgcmVtb3ZlUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKLSAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgIH0pOwotICAgICAgICAgIGlmICghaGFuZGxlZCkgZmluaXNoKGJ5dGVB
cnJheSk7Ci0gICAgICAgIH0KLSAgICAgICAgYWRkUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxu
YW1lKTsKLSAgICAgICAgaWYgKHR5cGVvZiB1cmwgPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICBC
cm93c2VyLmFzeW5jTG9hZCh1cmwsIGZ1bmN0aW9uKGJ5dGVBcnJheSkgewotICAgICAgICAgICAg
cHJvY2Vzc0RhdGEoYnl0ZUFycmF5KTsKLSAgICAgICAgICB9LCBvbmVycm9yKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICBwcm9jZXNzRGF0YSh1cmwpOwotICAgICAgICB9Ci0gICAgICB9
LGNyZWF0ZURlZmF1bHREaXJlY3RvcmllczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEZTLm1rZGly
KCcvdG1wJywgMDc3Nyk7Ci0gICAgICB9LGNyZWF0ZURlZmF1bHREZXZpY2VzOmZ1bmN0aW9uICgp
IHsKLSAgICAgICAgLy8gY3JlYXRlIC9kZXYKLSAgICAgICAgRlMubWtkaXIoJy9kZXYnLCAwNzc3
KTsKLSAgICAgICAgLy8gc2V0dXAgL2Rldi9udWxsCi0gICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNl
KEZTLm1ha2VkZXYoMSwgMyksIHsKLSAgICAgICAgICByZWFkOiBmdW5jdGlvbigpIHsgcmV0dXJu
IDA7IH0sCi0gICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfQotICAgICAg
ICB9KTsKLSAgICAgICAgRlMubWtkZXYoJy9kZXYvbnVsbCcsIDA2NjYsIEZTLm1ha2VkZXYoMSwg
MykpOwotICAgICAgICAvLyBzZXR1cCAvZGV2L3R0eSBhbmQgL2Rldi90dHkxCi0gICAgICAgIC8v
IHN0ZGVyciBuZWVkcyB0byBwcmludCBvdXRwdXQgdXNpbmcgTW9kdWxlWydwcmludEVyciddCi0g
ICAgICAgIC8vIHNvIHdlIHJlZ2lzdGVyIGEgc2Vjb25kIHR0eSBqdXN0IGZvciBpdC4KLSAgICAg
ICAgVFRZLnJlZ2lzdGVyKEZTLm1ha2VkZXYoNSwgMCksIFRUWS5kZWZhdWx0X3R0eV9vcHMpOwot
ICAgICAgICBUVFkucmVnaXN0ZXIoRlMubWFrZWRldig2LCAwKSwgVFRZLmRlZmF1bHRfdHR5MV9v
cHMpOwotICAgICAgICBGUy5ta2RldignL2Rldi90dHknLCAwNjY2LCBGUy5tYWtlZGV2KDUsIDAp
KTsKLSAgICAgICAgRlMubWtkZXYoJy9kZXYvdHR5MScsIDA2NjYsIEZTLm1ha2VkZXYoNiwgMCkp
OwotICAgICAgICAvLyB3ZSdyZSBub3QgZ29pbmcgdG8gZW11bGF0ZSB0aGUgYWN0dWFsIHNobSBk
ZXZpY2UsCi0gICAgICAgIC8vIGp1c3QgY3JlYXRlIHRoZSB0bXAgZGlycyB0aGF0IHJlc2lkZSBp
biBpdCBjb21tb25seQotICAgICAgICBGUy5ta2RpcignL2Rldi9zaG0nLCAwNzc3KTsKLSAgICAg
ICAgRlMubWtkaXIoJy9kZXYvc2htL3RtcCcsIDA3NzcpOwotICAgICAgfSxjcmVhdGVTdGFuZGFy
ZFN0cmVhbXM6ZnVuY3Rpb24gKCkgewotICAgICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGUgb2xk
IGZ1bmN0aW9uYWxpdHkgb2YgYSBzaW5nbGUKLSAgICAgICAgLy8gaW5wdXQgLyBvdXRwdXQgY2Fs
bGJhY2sgYW5kIHRoYXQgdXRpbGl6ZXMgRlMuY3JlYXRlRGV2aWNlCi0gICAgICAgIC8vIGFuZCBp
bnN0ZWFkIHJlcXVpcmUgYSB1bmlxdWUgc2V0IG9mIHN0cmVhbSBvcHMKLSAgICAgICAgLy8gYnkg
ZGVmYXVsdCwgd2Ugc3ltbGluayB0aGUgc3RhbmRhcmQgc3RyZWFtcyB0byB0aGUKLSAgICAgICAg
Ly8gZGVmYXVsdCB0dHkgZGV2aWNlcy4gaG93ZXZlciwgaWYgdGhlIHN0YW5kYXJkIHN0cmVhbXMK
LSAgICAgICAgLy8gaGF2ZSBiZWVuIG92ZXJ3cml0dGVuIHdlIGNyZWF0ZSBhIHVuaXF1ZSBkZXZp
Y2UgZm9yCi0gICAgICAgIC8vIHRoZW0gaW5zdGVhZC4KLSAgICAgICAgaWYgKE1vZHVsZVsnc3Rk
aW4nXSkgewotICAgICAgICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRpbicsIE1vZHVs
ZVsnc3RkaW4nXSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgRlMuc3ltbGluaygnL2Rl
di90dHknLCAnL2Rldi9zdGRpbicpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0
ZG91dCddKSB7Ci0gICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZG91dCcsIG51
bGwsIE1vZHVsZVsnc3Rkb3V0J10pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5
bWxpbmsoJy9kZXYvdHR5JywgJy9kZXYvc3Rkb3V0Jyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KE1vZHVsZVsnc3RkZXJyJ10pIHsKLSAgICAgICAgICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAn
c3RkZXJyJywgbnVsbCwgTW9kdWxlWydzdGRlcnInXSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgRlMuc3ltbGluaygnL2Rldi90dHkxJywgJy9kZXYvc3RkZXJyJyk7Ci0gICAgICAgIH0K
LSAgICAgICAgLy8gb3BlbiBkZWZhdWx0IHN0cmVhbXMgZm9yIHRoZSBzdGRpbiwgc3Rkb3V0IGFu
ZCBzdGRlcnIgZGV2aWNlcwotICAgICAgICB2YXIgc3RkaW4gPSBGUy5vcGVuKCcvZGV2L3N0ZGlu
JywgJ3InKTsKLSAgICAgICAgSEVBUDMyWygoX3N0ZGluKT4+MildPXN0ZGluLmZkOwotICAgICAg
ICBhc3NlcnQoc3RkaW4uZmQgPT09IDEsICdpbnZhbGlkIGhhbmRsZSBmb3Igc3RkaW4gKCcgKyBz
dGRpbi5mZCArICcpJyk7Ci0gICAgICAgIHZhciBzdGRvdXQgPSBGUy5vcGVuKCcvZGV2L3N0ZG91
dCcsICd3Jyk7Ci0gICAgICAgIEhFQVAzMlsoKF9zdGRvdXQpPj4yKV09c3Rkb3V0LmZkOwotICAg
ICAgICBhc3NlcnQoc3Rkb3V0LmZkID09PSAyLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZG91dCAo
JyArIHN0ZG91dC5mZCArICcpJyk7Ci0gICAgICAgIHZhciBzdGRlcnIgPSBGUy5vcGVuKCcvZGV2
L3N0ZGVycicsICd3Jyk7Ci0gICAgICAgIEhFQVAzMlsoKF9zdGRlcnIpPj4yKV09c3RkZXJyLmZk
OwotICAgICAgICBhc3NlcnQoc3RkZXJyLmZkID09PSAzLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0
ZGVyciAoJyArIHN0ZGVyci5mZCArICcpJyk7Ci0gICAgICB9LHN0YXRpY0luaXQ6ZnVuY3Rpb24g
KCkgewotICAgICAgICBGUy5uYW1lX3RhYmxlID0gbmV3IEFycmF5KDQwOTYpOwotICAgICAgICBG
Uy5yb290ID0gRlMuY3JlYXRlTm9kZShudWxsLCAnLycsIDAwNDAwMDAgfCAwNzc3LCAwKTsKLSAg
ICAgICAgRlMubW91bnQoTUVNRlMsIHt9LCAnLycpOwotICAgICAgICBGUy5jcmVhdGVEZWZhdWx0
RGlyZWN0b3JpZXMoKTsKLSAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERldmljZXMoKTsKLSAgICAg
IH0saW5pdDpmdW5jdGlvbiAoaW5wdXQsIG91dHB1dCwgZXJyb3IpIHsKLSAgICAgICAgYXNzZXJ0
KCFGUy5pbml0LmluaXRpYWxpemVkLCAnRlMuaW5pdCB3YXMgcHJldmlvdXNseSBjYWxsZWQuIElm
IHlvdSB3YW50IHRvIGluaXRpYWxpemUgbGF0ZXIgd2l0aCBjdXN0b20gcGFyYW1ldGVycywgcmVt
b3ZlIGFueSBlYXJsaWVyIGNhbGxzIChub3RlIHRoYXQgb25lIGlzIGF1dG9tYXRpY2FsbHkgYWRk
ZWQgdG8gdGhlIGdlbmVyYXRlZCBjb2RlKScpOwotICAgICAgICBGUy5pbml0LmluaXRpYWxpemVk
ID0gdHJ1ZTsKLSAgICAgICAgLy8gQWxsb3cgTW9kdWxlLnN0ZGluIGV0Yy4gdG8gcHJvdmlkZSBk
ZWZhdWx0cywgaWYgbm9uZSBleHBsaWNpdGx5IHBhc3NlZCB0byB1cyBoZXJlCi0gICAgICAgIE1v
ZHVsZVsnc3RkaW4nXSA9IGlucHV0IHx8IE1vZHVsZVsnc3RkaW4nXTsKLSAgICAgICAgTW9kdWxl
WydzdGRvdXQnXSA9IG91dHB1dCB8fCBNb2R1bGVbJ3N0ZG91dCddOwotICAgICAgICBNb2R1bGVb
J3N0ZGVyciddID0gZXJyb3IgfHwgTW9kdWxlWydzdGRlcnInXTsKLSAgICAgICAgRlMuY3JlYXRl
U3RhbmRhcmRTdHJlYW1zKCk7Ci0gICAgICB9LHF1aXQ6ZnVuY3Rpb24gKCkgewotICAgICAgICBG
Uy5pbml0LmluaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
RlMuc3RyZWFtcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5zdHJl
YW1zW2ldOwotICAgICAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgRlMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgfQotICAg
ICAgfSxtb3VudDpmdW5jdGlvbiAodHlwZSwgb3B0cywgbW91bnRwb2ludCkgewotICAgICAgICB2
YXIgbW91bnQgPSB7Ci0gICAgICAgICAgdHlwZTogdHlwZSwKLSAgICAgICAgICBvcHRzOiBvcHRz
LAotICAgICAgICAgIG1vdW50cG9pbnQ6IG1vdW50cG9pbnQsCi0gICAgICAgICAgcm9vdDogbnVs
bAotICAgICAgICB9OwotICAgICAgICB2YXIgbG9va3VwOwotICAgICAgICBpZiAobW91bnRwb2lu
dCkgewotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobW91bnRwb2ludCwgeyBmb2xs
b3c6IGZhbHNlIH0pOwotICAgICAgICB9Ci0gICAgICAgIC8vIGNyZWF0ZSBhIHJvb3Qgbm9kZSBm
b3IgdGhlIGZzCi0gICAgICAgIHZhciByb290ID0gdHlwZS5tb3VudChtb3VudCk7Ci0gICAgICAg
IHJvb3QubW91bnQgPSBtb3VudDsKLSAgICAgICAgbW91bnQucm9vdCA9IHJvb3Q7Ci0gICAgICAg
IC8vIGFzc2lnbiB0aGUgbW91bnQgaW5mbyB0byB0aGUgbW91bnRwb2ludCdzIG5vZGUKLSAgICAg
ICAgaWYgKGxvb2t1cCkgewotICAgICAgICAgIGxvb2t1cC5ub2RlLm1vdW50ID0gbW91bnQ7Ci0g
ICAgICAgICAgbG9va3VwLm5vZGUubW91bnRlZCA9IHRydWU7Ci0gICAgICAgICAgLy8gY29tcGF0
aWJpbGl0eSB1cGRhdGUgRlMucm9vdCBpZiB3ZSBtb3VudCB0byAvCi0gICAgICAgICAgaWYgKG1v
dW50cG9pbnQgPT09ICcvJykgewotICAgICAgICAgICAgRlMucm9vdCA9IG1vdW50LnJvb3Q7Ci0g
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByb290OwotICAgICAgfSxsb29r
dXA6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkgewotICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVf
b3BzLmxvb2t1cChwYXJlbnQsIG5hbWUpOwotICAgICAgfSxta25vZDpmdW5jdGlvbiAocGF0aCwg
bW9kZSwgZGV2KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsg
cGFyZW50OiB0cnVlIH0pOwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAg
ICAgIHZhciBuYW1lID0gUEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgdmFyIGVyciA9IEZT
Lm1heUNyZWF0ZShwYXJlbnQsIG5hbWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBh
cmVudC5ub2RlX29wcy5ta25vZCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGFyZW50Lm5v
ZGVfb3BzLm1rbm9kKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KTsKLSAgICAgIH0sY3JlYXRlOmZ1
bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIG1vZGUgJj0gNDA5NTsKLSAgICAgICAgbW9k
ZSB8PSAwMTAwMDAwOwotICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9kZSwgMCk7Ci0g
ICAgICB9LG1rZGlyOmZ1bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIG1vZGUgJj0gNTEx
IHwgMDAwMTAwMDsKLSAgICAgICAgbW9kZSB8PSAwMDQwMDAwOwotICAgICAgICByZXR1cm4gRlMu
bWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAgICB9LG1rZGV2OmZ1bmN0aW9uIChwYXRoLCBtb2Rl
LCBkZXYpIHsKLSAgICAgICAgbW9kZSB8PSAwMDIwMDAwOwotICAgICAgICByZXR1cm4gRlMubWtu
b2QocGF0aCwgbW9kZSwgZGV2KTsKLSAgICAgIH0sc3ltbGluazpmdW5jdGlvbiAob2xkcGF0aCwg
bmV3cGF0aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChuZXdwYXRoLCB7
IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAg
ICAgICB2YXIgbmV3bmFtZSA9IFBBVEguYmFzZW5hbWUobmV3cGF0aCk7Ci0gICAgICAgIHZhciBl
cnIgPSBGUy5tYXlDcmVhdGUocGFyZW50LCBuZXduYW1lKTsKLSAgICAgICAgaWYgKGVycikgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKCFwYXJlbnQubm9kZV9vcHMuc3ltbGluaykgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcGFyZW50Lm5vZGVfb3BzLnN5bWxpbmsocGFyZW50LCBuZXduYW1lLCBvbGRwYXRoKTsKLSAg
ICAgIH0scmVuYW1lOmZ1bmN0aW9uIChvbGRfcGF0aCwgbmV3X3BhdGgpIHsKLSAgICAgICAgdmFy
IG9sZF9kaXJuYW1lID0gUEFUSC5kaXJuYW1lKG9sZF9wYXRoKTsKLSAgICAgICAgdmFyIG5ld19k
aXJuYW1lID0gUEFUSC5kaXJuYW1lKG5ld19wYXRoKTsKLSAgICAgICAgdmFyIG9sZF9uYW1lID0g
UEFUSC5iYXNlbmFtZShvbGRfcGF0aCk7Ci0gICAgICAgIHZhciBuZXdfbmFtZSA9IFBBVEguYmFz
ZW5hbWUobmV3X3BhdGgpOwotICAgICAgICAvLyBwYXJlbnRzIG11c3QgZXhpc3QKLSAgICAgICAg
dmFyIGxvb2t1cCwgb2xkX2RpciwgbmV3X2RpcjsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBs
b29rdXAgPSBGUy5sb29rdXBQYXRoKG9sZF9wYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAg
ICAgICBvbGRfZGlyID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3Vw
UGF0aChuZXdfcGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgbmV3X2RpciA9IGxv
b2t1cC5ub2RlOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG5l
ZWQgdG8gYmUgcGFydCBvZiB0aGUgc2FtZSBtb3VudAotICAgICAgICBpZiAob2xkX2Rpci5tb3Vu
dCAhPT0gbmV3X2Rpci5tb3VudCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVYREVWKTsKLSAgICAgICAgfQotICAgICAgICAvLyBzb3VyY2UgbXVzdCBl
eGlzdAotICAgICAgICB2YXIgb2xkX25vZGUgPSBGUy5sb29rdXBOb2RlKG9sZF9kaXIsIG9sZF9u
YW1lKTsKLSAgICAgICAgLy8gb2xkIHBhdGggc2hvdWxkIG5vdCBiZSBhbiBhbmNlc3RvciBvZiB0
aGUgbmV3IHBhdGgKLSAgICAgICAgdmFyIHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShvbGRfcGF0
aCwgbmV3X2Rpcm5hbWUpOwotICAgICAgICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAnLicp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwp
OwotICAgICAgICB9Ci0gICAgICAgIC8vIG5ldyBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0
b3Igb2YgdGhlIG9sZCBwYXRoCi0gICAgICAgIHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShuZXdf
cGF0aCwgb2xkX2Rpcm5hbWUpOwotICAgICAgICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAn
LicpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9U
RU1QVFkpOwotICAgICAgICB9Ci0gICAgICAgIC8vIHNlZSBpZiB0aGUgbmV3IHBhdGggYWxyZWFk
eSBleGlzdHMKLSAgICAgICAgdmFyIG5ld19ub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAg
IG5ld19ub2RlID0gRlMubG9va3VwTm9kZShuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgICAvLyBub3QgZmF0YWwKLSAgICAgICAgfQotICAgICAgICAv
LyBlYXJseSBvdXQgaWYgbm90aGluZyBuZWVkcyB0byBjaGFuZ2UKLSAgICAgICAgaWYgKG9sZF9u
b2RlID09PSBuZXdfbm9kZSkgewotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAg
ICAvLyB3ZSdsbCBuZWVkIHRvIGRlbGV0ZSB0aGUgb2xkIGVudHJ5Ci0gICAgICAgIHZhciBpc2Rp
ciA9IEZTLmlzRGlyKG9sZF9ub2RlLm1vZGUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVs
ZXRlKG9sZF9kaXIsIG9sZF9uYW1lLCBpc2Rpcik7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIC8v
IG5lZWQgZGVsZXRlIHBlcm1pc3Npb25zIGlmIHdlJ2xsIGJlIG92ZXJ3cml0aW5nLgotICAgICAg
ICAvLyBuZWVkIGNyZWF0ZSBwZXJtaXNzaW9ucyBpZiBuZXcgZG9lc24ndCBhbHJlYWR5IGV4aXN0
LgotICAgICAgICBlcnIgPSBuZXdfbm9kZSA/Ci0gICAgICAgICAgRlMubWF5RGVsZXRlKG5ld19k
aXIsIG5ld19uYW1lLCBpc2RpcikgOgotICAgICAgICAgIEZTLm1heUNyZWF0ZShuZXdfZGlyLCBu
ZXdfbmFtZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghb2xkX2Rpci5ub2RlX29wcy5y
ZW5hbWUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
UEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChvbGRfbm9kZSkg
fHwgKG5ld19ub2RlICYmIEZTLmlzTW91bnRwb2ludChuZXdfbm9kZSkpKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIGlmIHdlIGFyZSBnb2luZyB0byBjaGFuZ2UgdGhlIHBhcmVudCwgY2hlY2sgd3Jp
dGUgcGVybWlzc2lvbnMKLSAgICAgICAgaWYgKG5ld19kaXIgIT09IG9sZF9kaXIpIHsKLSAgICAg
ICAgICBlcnIgPSBGUy5ub2RlUGVybWlzc2lvbnMob2xkX2RpciwgJ3cnKTsKLSAgICAgICAgICBp
ZiAoZXJyKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyByZW1vdmUgdGhlIG5vZGUgZnJvbSB0aGUg
bG9va3VwIGhhc2gKLSAgICAgICAgRlMuaGFzaFJlbW92ZU5vZGUob2xkX25vZGUpOwotICAgICAg
ICAvLyBkbyB0aGUgdW5kZXJseWluZyBmcyByZW5hbWUKLSAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICBvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZShvbGRfbm9kZSwgbmV3X2RpciwgbmV3X25hbWUpOwot
ICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgfSBmaW5h
bGx5IHsKLSAgICAgICAgICAvLyBhZGQgdGhlIG5vZGUgYmFjayB0byB0aGUgaGFzaCAoaW4gY2Fz
ZSBub2RlX29wcy5yZW5hbWUKLSAgICAgICAgICAvLyBjaGFuZ2VkIGl0cyBuYW1lKQotICAgICAg
ICAgIEZTLmhhc2hBZGROb2RlKG9sZF9ub2RlKTsKLSAgICAgICAgfQotICAgICAgfSxybWRpcjpm
dW5jdGlvbiAocGF0aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRo
LCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwot
ICAgICAgICB2YXIgbmFtZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBub2Rl
ID0gRlMubG9va3VwTm9kZShwYXJlbnQsIG5hbWUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5
RGVsZXRlKHBhcmVudCwgbmFtZSwgdHJ1ZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgh
cGFyZW50Lm5vZGVfb3BzLnJtZGlyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50
cG9pbnQobm9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnJtZGlyKHBh
cmVudCwgbmFtZSk7Ci0gICAgICAgIEZTLmRlc3Ryb3lOb2RlKG5vZGUpOwotICAgICAgfSxyZWFk
ZGlyOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRo
KHBhdGgsIHsgZm9sbG93OiB0cnVlIH0pOwotICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2Rl
OwotICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMucmVhZGRpcikgewotICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RESVIpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBub2RlLm5vZGVfb3BzLnJlYWRkaXIobm9kZSk7Ci0gICAgICB9LHVubGluazpm
dW5jdGlvbiAocGF0aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRo
LCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwot
ICAgICAgICB2YXIgbmFtZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBub2Rl
ID0gRlMubG9va3VwTm9kZShwYXJlbnQsIG5hbWUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5
RGVsZXRlKHBhcmVudCwgbmFtZSwgZmFsc2UpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAg
ICAgLy8gUE9TSVggc2F5cyB1bmxpbmsgc2hvdWxkIHNldCBFUEVSTSwgbm90IEVJU0RJUgotICAg
ICAgICAgIGlmIChlcnIgPT09IEVSUk5PX0NPREVTLkVJU0RJUikgZXJyID0gRVJSTk9fQ09ERVMu
RVBFUk07Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy51bmxpbmspIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKEZTLmlzTW91bnRwb2ludChub2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICBwYXJlbnQu
bm9kZV9vcHMudW5saW5rKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIEZTLmRlc3Ryb3lOb2RlKG5v
ZGUpOwotICAgICAgfSxyZWFkbGluazpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogZmFsc2UgfSk7Ci0gICAgICAgIHZh
ciBsaW5rID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIGlmICghbGluay5ub2RlX29wcy5yZWFkbGlu
aykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZB
TCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGxpbmsubm9kZV9vcHMucmVhZGxpbmsobGlu
ayk7Ci0gICAgICB9LHN0YXQ6ZnVuY3Rpb24gKHBhdGgsIGRvbnRGb2xsb3cpIHsKLSAgICAgICAg
dmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250Rm9sbG93IH0p
OwotICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICBpZiAoIW5vZGUubm9k
ZV9vcHMuZ2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5ub2RlX29wcy5n
ZXRhdHRyKG5vZGUpOwotICAgICAgfSxsc3RhdDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICBy
ZXR1cm4gRlMuc3RhdChwYXRoLCB0cnVlKTsKLSAgICAgIH0sY2htb2Q6ZnVuY3Rpb24gKHBhdGgs
IG1vZGUsIGRvbnRGb2xsb3cpIHsKLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIGlmICh0eXBl
b2YgcGF0aCA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3Vw
UGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRGb2xsb3cgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxv
b2t1cC5ub2RlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0g
ICAgICAgIG5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgbW9kZTogKG1v
ZGUgJiA0MDk1KSB8IChub2RlLm1vZGUgJiB+NDA5NSksCi0gICAgICAgICAgdGltZXN0YW1wOiBE
YXRlLm5vdygpCi0gICAgICAgIH0pOwotICAgICAgfSxsY2htb2Q6ZnVuY3Rpb24gKHBhdGgsIG1v
ZGUpIHsKLSAgICAgICAgRlMuY2htb2QocGF0aCwgbW9kZSwgdHJ1ZSk7Ci0gICAgICB9LGZjaG1v
ZDpmdW5jdGlvbiAoZmQsIG1vZGUpIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVh
bShmZCk7Ci0gICAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIEZTLmNobW9k
KHN0cmVhbS5ub2RlLCBtb2RlKTsKLSAgICAgIH0sY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwg
Z2lkLCBkb250Rm9sbG93KSB7Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9m
IHBhdGggPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBh
dGgocGF0aCwgeyBmb2xsb3c6ICFkb250Rm9sbG93IH0pOwotICAgICAgICAgIG5vZGUgPSBsb29r
dXAubm9kZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAg
ICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIHRpbWVzdGFtcDog
RGF0ZS5ub3coKQotICAgICAgICAgIC8vIHdlIGlnbm9yZSB0aGUgdWlkIC8gZ2lkIGZvciBub3cK
LSAgICAgICAgfSk7Ci0gICAgICB9LGxjaG93bjpmdW5jdGlvbiAocGF0aCwgdWlkLCBnaWQpIHsK
LSAgICAgICAgRlMuY2hvd24ocGF0aCwgdWlkLCBnaWQsIHRydWUpOwotICAgICAgfSxmY2hvd246
ZnVuY3Rpb24gKGZkLCB1aWQsIGdpZCkgewotICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3Ry
ZWFtKGZkKTsKLSAgICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgRlMuY2hv
d24oc3RyZWFtLm5vZGUsIHVpZCwgZ2lkKTsKLSAgICAgIH0sdHJ1bmNhdGU6ZnVuY3Rpb24gKHBh
dGgsIGxlbikgewotICAgICAgICBpZiAobGVuIDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IG5vZGU7Ci0gICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAg
ICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1ZSB9KTsKLSAg
ICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
bm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnNldGF0
dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVS
TSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOwotICAgICAg
ICB9Ci0gICAgICAgIGlmICghRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAg
ICAgIHZhciBlcnIgPSBGUy5ub2RlUGVybWlzc2lvbnMobm9kZSwgJ3cnKTsKLSAgICAgICAgaWYg
KGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAg
IH0KLSAgICAgICAgbm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICBzaXpl
OiBsZW4sCi0gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCi0gICAgICAgIH0pOwotICAg
ICAgfSxmdHJ1bmNhdGU6ZnVuY3Rpb24gKGZkLCBsZW4pIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9
IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIEZT
LnRydW5jYXRlKHN0cmVhbS5ub2RlLCBsZW4pOwotICAgICAgfSx1dGltZTpmdW5jdGlvbiAocGF0
aCwgYXRpbWUsIG10aW1lKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBh
dGgsIHsgZm9sbG93OiB0cnVlIH0pOwotICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwot
ICAgICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIHRpbWVzdGFt
cDogTWF0aC5tYXgoYXRpbWUsIG10aW1lKQotICAgICAgICB9KTsKLSAgICAgIH0sb3BlbjpmdW5j
dGlvbiAocGF0aCwgZmxhZ3MsIG1vZGUsIGZkX3N0YXJ0LCBmZF9lbmQpIHsKLSAgICAgICAgcGF0
aCA9IFBBVEgubm9ybWFsaXplKHBhdGgpOwotICAgICAgICBmbGFncyA9IHR5cGVvZiBmbGFncyA9
PT0gJ3N0cmluZycgPyBGUy5tb2RlU3RyaW5nVG9GbGFncyhmbGFncykgOiBmbGFnczsKLSAgICAg
ICAgbW9kZSA9IHR5cGVvZiBtb2RlID09PSAndW5kZWZpbmVkJyA/IDA2NjYgOiBtb2RlOwotICAg
ICAgICBpZiAoKGZsYWdzICYgNTEyKSkgewotICAgICAgICAgIG1vZGUgPSAobW9kZSAmIDQwOTUp
IHwgMDEwMDAwMDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBtb2RlID0gMDsKLSAgICAg
ICAgfQotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7Ci0gICAgICAgICAgICBmb2xsb3c6ICEoZmxhZ3Mg
JiAwMjAwMDAwKQotICAgICAgICAgIH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsK
LSAgICAgICAgICBwYXRoID0gbG9va3VwLnBhdGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgICAgICAvLyBpZ25vcmUKLSAgICAgICAgfQotICAgICAgICAvLyBwZXJoYXBzIHdlIG5lZWQg
dG8gY3JlYXRlIHRoZSBub2RlCi0gICAgICAgIGlmICgoZmxhZ3MgJiA1MTIpKSB7Ci0gICAgICAg
ICAgaWYgKG5vZGUpIHsKLSAgICAgICAgICAgIC8vIGlmIE9fQ1JFQVQgYW5kIE9fRVhDTCBhcmUg
c2V0LCBlcnJvciBvdXQgaWYgdGhlIG5vZGUgYWxyZWFkeSBleGlzdHMKLSAgICAgICAgICAgIGlm
ICgoZmxhZ3MgJiAyMDQ4KSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FRVhJU1QpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAvLyBub2RlIGRvZXNuJ3QgZXhpc3QsIHRyeSB0byBjcmVhdGUgaXQKLSAg
ICAgICAgICAgIG5vZGUgPSBGUy5ta25vZChwYXRoLCBtb2RlLCAwKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCFub2RlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKTsKLSAgICAgICAgfQotICAgICAgICAvLyBjYW4n
dCB0cnVuY2F0ZSBhIGRldmljZQotICAgICAgICBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkg
ewotICAgICAgICAgIGZsYWdzICY9IH4xMDI0OwotICAgICAgICB9Ci0gICAgICAgIC8vIGNoZWNr
IHBlcm1pc3Npb25zCi0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlPcGVuKG5vZGUsIGZsYWdzKTsK
LSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVy
cik7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gZG8gdHJ1bmNhdGlvbiBpZiBuZWNlc3NhcnkKLSAg
ICAgICAgaWYgKChmbGFncyAmIDEwMjQpKSB7Ci0gICAgICAgICAgRlMudHJ1bmNhdGUobm9kZSwg
MCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIHN0cmVhbSB3aXRoIHRoZSBm
aWxlc3lzdGVtCi0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5jcmVhdGVTdHJlYW0oewotICAgICAg
ICAgIHBhdGg6IHBhdGgsCi0gICAgICAgICAgbm9kZTogbm9kZSwKLSAgICAgICAgICBmbGFnczog
ZmxhZ3MsCi0gICAgICAgICAgc2Vla2FibGU6IHRydWUsCi0gICAgICAgICAgcG9zaXRpb246IDAs
Ci0gICAgICAgICAgc3RyZWFtX29wczogbm9kZS5zdHJlYW1fb3BzLAotICAgICAgICAgIC8vIHVz
ZWQgYnkgdGhlIGZpbGUgZmFtaWx5IGxpYmMgY2FsbHMgKGZvcGVuLCBmd3JpdGUsIGZlcnJvciwg
ZXRjLikKLSAgICAgICAgICB1bmdvdHRlbjogW10sCi0gICAgICAgICAgZXJyb3I6IGZhbHNlCi0g
ICAgICAgIH0sIGZkX3N0YXJ0LCBmZF9lbmQpOwotICAgICAgICAvLyBjYWxsIHRoZSBuZXcgc3Ry
ZWFtJ3Mgb3BlbiBmdW5jdGlvbgotICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMub3Blbikg
ewotICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gc3RyZWFtOwotICAgICAgfSxjbG9zZTpmdW5jdGlvbiAoc3RyZWFtKSB7
Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKSB7
Ci0gICAgICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5jbG9zZShzdHJlYW0pOwotICAgICAgICAg
IH0KLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0g
ZmluYWxseSB7Ci0gICAgICAgICAgRlMuY2xvc2VTdHJlYW0oc3RyZWFtLmZkKTsKLSAgICAgICAg
fQotICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKLSAg
ICAgICAgaWYgKCFzdHJlYW0uc2Vla2FibGUgfHwgIXN0cmVhbS5zdHJlYW1fb3BzLmxsc2Vlaykg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlayhzdHJl
YW0sIG9mZnNldCwgd2hlbmNlKTsKLSAgICAgIH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAgICAgICBpZiAobGVuZ3RoIDwgMCB8
fCBwb3NpdGlvbiA8IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYg
MykgPT09IDEpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1v
ZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlT
RElSKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLnJlYWQpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwot
ICAgICAgICB9Ci0gICAgICAgIHZhciBzZWVraW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVv
ZiBwb3NpdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVh
bS5wb3NpdGlvbjsKLSAgICAgICAgICBzZWVraW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoIXN0cmVhbS5zZWVrYWJsZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGJ5dGVzUmVhZCA9
IHN0cmVhbS5zdHJlYW1fb3BzLnJlYWQoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBw
b3NpdGlvbik7Ci0gICAgICAgIGlmICghc2Vla2luZykgc3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVz
UmVhZDsKLSAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKLSAgICAgIH0sd3JpdGU6ZnVuY3Rpb24g
KHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKLSAgICAgICAgaWYg
KGxlbmd0aCA8IDAgfHwgcG9zaXRpb24gPCAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0
cmVhbS5mbGFncyAmIDMpID09PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc0Rpcihz
dHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFt
X29wcy53cml0ZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHNlZWtpbmcgPSB0cnVlOwotICAg
ICAgICBpZiAodHlwZW9mIHBvc2l0aW9uID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHBv
c2l0aW9uID0gc3RyZWFtLnBvc2l0aW9uOwotICAgICAgICAgIHNlZWtpbmcgPSBmYWxzZTsKLSAg
ICAgICAgfSBlbHNlIGlmICghc3RyZWFtLnNlZWthYmxlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoc3RyZWFtLmZsYWdzICYgOCkgewotICAgICAgICAgIC8vIHNlZWsgdG8gdGhlIGVuZCBiZWZv
cmUgd3JpdGluZyBpbiBhcHBlbmQgbW9kZQotICAgICAgICAgIEZTLmxsc2VlayhzdHJlYW0sIDAs
IDIpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBieXRlc1dyaXR0ZW4gPSBzdHJlYW0uc3RyZWFt
X29wcy53cml0ZShzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKTsKLSAg
ICAgICAgaWYgKCFzZWVraW5nKSBzdHJlYW0ucG9zaXRpb24gKz0gYnl0ZXNXcml0dGVuOwotICAg
ICAgICByZXR1cm4gYnl0ZXNXcml0dGVuOwotICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3Ry
ZWFtLCBvZmZzZXQsIGxlbmd0aCkgewotICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBsZW5ndGgg
PD0gMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJ
TlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMCkg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSAmJiAh
RlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVOT0RFVik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdHJlYW0uc3Ry
ZWFtX29wcy5hbGxvY2F0ZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVPUE5PVFNVUFApOwotICAgICAgICB9Ci0gICAgICAgIHN0cmVhbS5zdHJlYW1f
b3BzLmFsbG9jYXRlKHN0cmVhbSwgb2Zmc2V0LCBsZW5ndGgpOwotICAgICAgfSxtbWFwOmZ1bmN0
aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90LCBmbGFn
cykgewotICAgICAgICAvLyBUT0RPIGlmIFBST1QgaXMgUFJPVF9XUklURSwgbWFrZSBzdXJlIHdl
IGhhdmUgd3JpdGUgYWNjZXNzCi0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDEp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUNDRVMp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMubW1hcCkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5lcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLm1tYXAoc3RyZWFtLCBidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpOwotICAgICAgfX07Ci0g
IGZ1bmN0aW9uIF9zZW5kKGZkLCBidWYsIGxlbiwgZmxhZ3MpIHsKLSAgICAgIHZhciBpbmZvID0g
RlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgIGlmICghaW5mbykgewotICAgICAgICBfX19zZXRFcnJO
byhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAg
IGlmIChpbmZvLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0lORyB8fCBpbmZv
LnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0VEKSB7Ci0gICAgICAgIF9fX3Nl
dEVyck5vKEVSUk5PX0NPREVTLkVOT1RDT05OKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
fSBlbHNlIGlmIChpbmZvLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ09OTkVDVElO
RykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICBy
ZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpbmZvLnNlbmRlcihIRUFQVTguc3ViYXJyYXkoYnVm
LCBidWYrbGVuKSk7Ci0gICAgICByZXR1cm4gbGVuOwotICAgIH0KLSAgZnVuY3Rpb24gX3B3cml0
ZShmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNldCkgewotICAgICAgLy8gc3NpemVfdCBwd3JpdGUo
aW50IGZpbGRlcywgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUsIG9mZl90IG9mZnNldCk7
Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5
L2Z1bmN0aW9ucy93cml0ZS5odG1sCi0gICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZp
bGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19D
T0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0g
ICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy53cml0ZShzdHJlYW0s
IHNsYWIsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9
ZnVuY3Rpb24gX3dyaXRlKGZpbGRlcywgYnVmLCBuYnl0ZSkgewotICAgICAgLy8gc3NpemVfdCB3
cml0ZShpbnQgZmlsZGVzLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSk7Ci0gICAgICAv
LyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9u
cy93cml0ZS5odG1sCi0gICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0g
ICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFE
Rik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmIChzdHJlYW0gJiYgKCdz
b2NrZXQnIGluIHN0cmVhbSkpIHsKLSAgICAgICAgcmV0dXJuIF9zZW5kKGZpbGRlcywgYnVmLCBu
Ynl0ZSwgMCk7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhFQVA4
OwotICAgICAgICByZXR1cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlKTsKLSAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAgICAg
cmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfZndyaXRlKHB0ciwgc2l6ZSwgbml0
ZW1zLCBzdHJlYW0pIHsKLSAgICAgIC8vIHNpemVfdCBmd3JpdGUoY29uc3Qgdm9pZCAqcmVzdHJp
Y3QgcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5pdGVtcywgRklMRSAqcmVzdHJpY3Qgc3RyZWFt
KTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUz
OTkvZnVuY3Rpb25zL2Z3cml0ZS5odG1sCi0gICAgICB2YXIgYnl0ZXNUb1dyaXRlID0gbml0ZW1z
ICogc2l6ZTsKLSAgICAgIGlmIChieXRlc1RvV3JpdGUgPT0gMCkgcmV0dXJuIDA7Ci0gICAgICB2
YXIgYnl0ZXNXcml0dGVuID0gX3dyaXRlKHN0cmVhbSwgcHRyLCBieXRlc1RvV3JpdGUpOwotICAg
ICAgaWYgKGJ5dGVzV3JpdHRlbiA9PSAtMSkgewotICAgICAgICB2YXIgc3RyZWFtT2JqID0gRlMu
Z2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICAgIGlmIChzdHJlYW1PYmopIHN0cmVhbU9iai5lcnJv
ciA9IHRydWU7Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0
dXJuIE1hdGguZmxvb3IoYnl0ZXNXcml0dGVuIC8gc2l6ZSk7Ci0gICAgICB9Ci0gICAgfQotICBN
b2R1bGVbIl9zdHJsZW4iXSA9IF9zdHJsZW47Ci0gIGZ1bmN0aW9uIF9fcmVhbGx5TmVnYXRpdmUo
eCkgewotICAgICAgcmV0dXJuIHggPCAwIHx8ICh4ID09PSAwICYmICgxL3gpID09PSAtSW5maW5p
dHkpOwotICAgIH1mdW5jdGlvbiBfX2Zvcm1hdFN0cmluZyhmb3JtYXQsIHZhcmFyZ3MpIHsKLSAg
ICAgIHZhciB0ZXh0SW5kZXggPSBmb3JtYXQ7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAg
ICAgZnVuY3Rpb24gZ2V0TmV4dEFyZyh0eXBlKSB7Ci0gICAgICAgIC8vIE5PVEU6IEV4cGxpY2l0
bHkgaWdub3JpbmcgdHlwZSBzYWZldHkuIE90aGVyd2lzZSB0aGlzIGZhaWxzOgotICAgICAgICAv
LyAgICAgICBpbnQgeCA9IDQ7IHByaW50ZigiJWNcbiIsIChjaGFyKXgpOwotICAgICAgICB2YXIg
cmV0OwotICAgICAgICBpZiAodHlwZSA9PT0gJ2RvdWJsZScpIHsKLSAgICAgICAgICByZXQgPSBI
RUFQRjY0WygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4zKV07Ci0gICAgICAgIH0gZWxzZSBpZiAo
dHlwZSA9PSAnaTY0JykgewotICAgICAgICAgIHJldCA9IFtIRUFQMzJbKCgodmFyYXJncykrKGFy
Z0luZGV4KSk+PjIpXSwKLSAgICAgICAgICAgICAgICAgSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJ
bmRleCs4KSk+PjIpXV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gODsgLy8gZWFjaCAzMi1iaXQg
Y2h1bmsgaXMgaW4gYSA2NC1iaXQgYmxvY2sKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0
eXBlID0gJ2kzMic7IC8vIHZhcmFyZ3MgYXJlIGFsd2F5cyBpMzIsIGk2NCwgb3IgZG91YmxlCi0g
ICAgICAgICAgcmV0ID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAg
ICAgIH0KLSAgICAgICAgYXJnSW5kZXggKz0gTWF0aC5tYXgoUnVudGltZS5nZXROYXRpdmVGaWVs
ZFNpemUodHlwZSksIFJ1bnRpbWUuZ2V0QWxpZ25TaXplKHR5cGUsIG51bGwsIHRydWUpKTsKLSAg
ICAgICAgcmV0dXJuIHJldDsKLSAgICAgIH0KLSAgICAgIHZhciByZXQgPSBbXTsKLSAgICAgIHZh
ciBjdXJyLCBuZXh0LCBjdXJyQXJnOwotICAgICAgd2hpbGUoMSkgewotICAgICAgICB2YXIgc3Rh
cnRUZXh0SW5kZXggPSB0ZXh0SW5kZXg7Ci0gICAgICAgIGN1cnIgPSBIRUFQOFsodGV4dEluZGV4
KV07Ci0gICAgICAgIGlmIChjdXJyID09PSAwKSBicmVhazsKLSAgICAgICAgbmV4dCA9IEhFQVA4
WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgaWYgKGN1cnIgPT0gMzcpIHsKLSAgICAgICAg
ICAvLyBIYW5kbGUgZmxhZ3MuCi0gICAgICAgICAgdmFyIGZsYWdBbHdheXNTaWduZWQgPSBmYWxz
ZTsKLSAgICAgICAgICB2YXIgZmxhZ0xlZnRBbGlnbiA9IGZhbHNlOwotICAgICAgICAgIHZhciBm
bGFnQWx0ZXJuYXRpdmUgPSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ1plcm9QYWQgPSBmYWxz
ZTsKLSAgICAgICAgICBmbGFnc0xvb3A6IHdoaWxlICgxKSB7Ci0gICAgICAgICAgICBzd2l0Y2gg
KG5leHQpIHsKLSAgICAgICAgICAgICAgY2FzZSA0MzoKLSAgICAgICAgICAgICAgICBmbGFnQWx3
YXlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
Y2FzZSA0NToKLSAgICAgICAgICAgICAgICBmbGFnTGVmdEFsaWduID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSAzNToKLSAgICAgICAgICAgICAgICBm
bGFnQWx0ZXJuYXRpdmUgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICBjYXNlIDQ4OgotICAgICAgICAgICAgICAgIGlmIChmbGFnWmVyb1BhZCkgewotICAgICAg
ICAgICAgICAgICAgYnJlYWsgZmxhZ3NMb29wOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICAgICAgYnJlYWsgZmxhZ3NMb29wOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGV4
dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwot
ICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgd2lkdGguCi0gICAgICAgICAgdmFyIHdp
ZHRoID0gMDsKLSAgICAgICAgICBpZiAobmV4dCA9PSA0MikgewotICAgICAgICAgICAgd2lkdGgg
PSBnZXROZXh0QXJnKCdpMzInKTsKLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAg
ICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgd2hpbGUgKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NykgewotICAgICAgICAg
ICAgICB3aWR0aCA9IHdpZHRoICogMTAgKyAobmV4dCAtIDQ4KTsKLSAgICAgICAgICAgICAgdGV4
dEluZGV4Kys7Ci0gICAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIEhhbmRsZSBwcmVjaXNp
b24uCi0gICAgICAgICAgdmFyIHByZWNpc2lvblNldCA9IGZhbHNlOwotICAgICAgICAgIGlmIChu
ZXh0ID09IDQ2KSB7Ci0gICAgICAgICAgICB2YXIgcHJlY2lzaW9uID0gMDsKLSAgICAgICAgICAg
IHByZWNpc2lvblNldCA9IHRydWU7Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAg
ICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgICBpZiAobmV4
dCA9PSA0MikgewotICAgICAgICAgICAgICBwcmVjaXNpb24gPSBnZXROZXh0QXJnKCdpMzInKTsK
LSAgICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICB3aGlsZSgxKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHByZWNpc2lvbkNociA9IEhF
QVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uQ2hy
IDwgNDggfHwKLSAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uQ2hyID4gNTcpIGJyZWFrOwot
ICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiAqIDEwICsgKHByZWNpc2lvbkNo
ciAtIDQ4KTsKLSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDAp
XTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDY7IC8v
IFN0YW5kYXJkIGRlZmF1bHQuCi0gICAgICAgICAgfQotICAgICAgICAgIC8vIEhhbmRsZSBpbnRl
Z2VyIHNpemVzLiBXQVJOSU5HOiBUaGVzZSBhc3N1bWUgYSAzMi1iaXQgYXJjaGl0ZWN0dXJlIQot
ICAgICAgICAgIHZhciBhcmdTaXplOwotICAgICAgICAgIHN3aXRjaCAoU3RyaW5nLmZyb21DaGFy
Q29kZShuZXh0KSkgewotICAgICAgICAgICAgY2FzZSAnaCc6Ci0gICAgICAgICAgICAgIHZhciBu
ZXh0TmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzIpfDApXTsKLSAgICAgICAgICAgICAgaWYgKG5l
eHROZXh0ID09IDEwNCkgewotICAgICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAg
ICAgICAgIGFyZ1NpemUgPSAxOyAvLyBjaGFyIChhY3R1YWxseSBpMzIgaW4gdmFyYXJncykKLSAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0gMjsgLy8gc2hv
cnQgKGFjdHVhbGx5IGkzMiBpbiB2YXJhcmdzKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAnbCc6Ci0gICAgICAgICAgICAgIHZhciBuZXh0
TmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzIpfDApXTsKLSAgICAgICAgICAgICAgaWYgKG5leHRO
ZXh0ID09IDEwOCkgewotICAgICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAg
ICAgIGFyZ1NpemUgPSA4OyAvLyBsb25nIGxvbmcKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBhcmdTaXplID0gNDsgLy8gbG9uZwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAnTCc6IC8vIGxvbmcgbG9uZwotICAg
ICAgICAgICAgY2FzZSAncSc6IC8vIGludDY0X3QKLSAgICAgICAgICAgIGNhc2UgJ2onOiAvLyBp
bnRtYXhfdAotICAgICAgICAgICAgICBhcmdTaXplID0gODsKLSAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlICd6JzogLy8gc2l6ZV90Ci0gICAgICAgICAgICBjYXNlICd0Jzog
Ly8gcHRyZGlmZl90Ci0gICAgICAgICAgICBjYXNlICdJJzogLy8gc2lnbmVkIHB0cmRpZmZfdCBv
ciB1bnNpZ25lZCBzaXplX3QKLSAgICAgICAgICAgICAgYXJnU2l6ZSA9IDQ7Ci0gICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgYXJnU2l6ZSA9
IG51bGw7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChhcmdTaXplKSB0ZXh0SW5kZXgrKzsK
LSAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIC8v
IEhhbmRsZSB0eXBlIHNwZWNpZmllci4KLSAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hh
ckNvZGUobmV4dCkpIHsKLSAgICAgICAgICAgIGNhc2UgJ2QnOiBjYXNlICdpJzogY2FzZSAndSc6
IGNhc2UgJ28nOiBjYXNlICd4JzogY2FzZSAnWCc6IGNhc2UgJ3AnOiB7Ci0gICAgICAgICAgICAg
IC8vIEludGVnZXIuCi0gICAgICAgICAgICAgIHZhciBzaWduZWQgPSBuZXh0ID09IDEwMCB8fCBu
ZXh0ID09IDEwNTsKLSAgICAgICAgICAgICAgYXJnU2l6ZSA9IGFyZ1NpemUgfHwgNDsKLSAgICAg
ICAgICAgICAgdmFyIGN1cnJBcmcgPSBnZXROZXh0QXJnKCdpJyArIChhcmdTaXplICogOCkpOwot
ICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsKLSAgICAgICAgICAgICAgLy8gRmxhdHRlbiBpNjQt
MSBbbG93LCBoaWdoXSBpbnRvIGEgKHNsaWdodGx5IHJvdW5kZWQpIGRvdWJsZQotICAgICAgICAg
ICAgICBpZiAoYXJnU2l6ZSA9PSA4KSB7Ci0gICAgICAgICAgICAgICAgY3VyckFyZyA9IFJ1bnRp
bWUubWFrZUJpZ0ludChjdXJyQXJnWzBdLCBjdXJyQXJnWzFdLCBuZXh0ID09IDExNyk7Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gVHJ1bmNhdGUgdG8gcmVxdWVzdGVkIHNpemUu
Ci0gICAgICAgICAgICAgIGlmIChhcmdTaXplIDw9IDQpIHsKLSAgICAgICAgICAgICAgICB2YXIg
bGltaXQgPSBNYXRoLnBvdygyNTYsIGFyZ1NpemUpIC0gMTsKLSAgICAgICAgICAgICAgICBjdXJy
QXJnID0gKHNpZ25lZCA/IHJlU2lnbiA6IHVuU2lnbikoY3VyckFyZyAmIGxpbWl0LCBhcmdTaXpl
ICogOCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gRm9ybWF0IHRoZSBudW1i
ZXIuCi0gICAgICAgICAgICAgIHZhciBjdXJyQWJzQXJnID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0g
ICAgICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAgICAgICAgICAgICAgaWYgKG5leHQgPT0g
MTAwIHx8IG5leHQgPT0gMTA1KSB7Ci0gICAgICAgICAgICAgICAgYXJnVGV4dCA9IHJlU2lnbihj
dXJyQXJnLCA4ICogYXJnU2l6ZSwgMSkudG9TdHJpbmcoMTApOwotICAgICAgICAgICAgICB9IGVs
c2UgaWYgKG5leHQgPT0gMTE3KSB7Ci0gICAgICAgICAgICAgICAgYXJnVGV4dCA9IHVuU2lnbihj
dXJyQXJnLCA4ICogYXJnU2l6ZSwgMSkudG9TdHJpbmcoMTApOwotICAgICAgICAgICAgICAgIGN1
cnJBcmcgPSBNYXRoLmFicyhjdXJyQXJnKTsKLSAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0
ID09IDExMSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoZmxhZ0FsdGVybmF0aXZlID8g
JzAnIDogJycpICsgY3VyckFic0FyZy50b1N0cmluZyg4KTsKLSAgICAgICAgICAgICAgfSBlbHNl
IGlmIChuZXh0ID09IDEyMCB8fCBuZXh0ID09IDg4KSB7Ci0gICAgICAgICAgICAgICAgcHJlZml4
ID0gKGZsYWdBbHRlcm5hdGl2ZSAmJiBjdXJyQXJnICE9IDApID8gJzB4JyA6ICcnOwotICAgICAg
ICAgICAgICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAgICAgLy8gUmVwcmVz
ZW50IG5lZ2F0aXZlIG51bWJlcnMgaW4gaGV4IGFzIDIncyBjb21wbGVtZW50LgotICAgICAgICAg
ICAgICAgICAgY3VyckFyZyA9IC1jdXJyQXJnOwotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9
IChjdXJyQWJzQXJnIC0gMSkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgdmFyIGJ1
ZmZlciA9IFtdOwotICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdUZXh0
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKCgweEYgLSBw
YXJzZUludChhcmdUZXh0W2ldLCAxNikpLnRvU3RyaW5nKDE2KSk7Ci0gICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4oJycpOwotICAgICAg
ICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgYXJnU2l6ZSAqIDIpIGFyZ1RleHQg
PSAnZicgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNik7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDg4KSB7Ci0gICAgICAgICAgICAgICAgICBw
cmVmaXggPSBwcmVmaXgudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQg
PSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKG5leHQgPT0gMTEyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJBYnNB
cmcgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKG5pbCknOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXggPSAnMHgnOwotICAg
ICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmcoMTYpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAocHJlY2lzaW9u
U2V0KSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgcHJlY2lzaW9u
KSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4dDsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRkIHNpZ24gaWYg
bmVlZGVkCi0gICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXggPSAnLScg
KyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHBy
ZWZpeCA9ICcrJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAgIHdoaWxlIChwcmVm
aXgubGVuZ3RoICsgYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlm
IChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFk
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdUZXh0OwotICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gJyAnICsg
cHJlZml4OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBpbnRvIHRoZSBidWZm
ZXIuCi0gICAgICAgICAgICAgIGFyZ1RleHQgPSBwcmVmaXggKyBhcmdUZXh0OwotICAgICAgICAg
ICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikgewotICAgICAgICAg
ICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnZic6
IGNhc2UgJ0YnOiBjYXNlICdlJzogY2FzZSAnRSc6IGNhc2UgJ2cnOiBjYXNlICdHJzogewotICAg
ICAgICAgICAgICAvLyBGbG9hdC4KLSAgICAgICAgICAgICAgdmFyIGN1cnJBcmcgPSBnZXROZXh0
QXJnKCdkb3VibGUnKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0gICAgICAgICAgICAg
IGlmIChpc05hTihjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnbmFuJzsK
LSAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVs
c2UgaWYgKCFpc0Zpbml0ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAo
Y3VyckFyZyA8IDAgPyAnLScgOiAnJykgKyAnaW5mJzsKLSAgICAgICAgICAgICAgICBmbGFnWmVy
b1BhZCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHZh
ciBpc0dlbmVyYWwgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB2YXIgZWZmZWN0aXZlUHJlY2lz
aW9uID0gTWF0aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAgICAgLy8gQ29udmVy
dCBnL0cgdG8gZi9GIG9yIGUvRSwgYXMgcGVyOgotICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly9w
dWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0aW9ucy9wcmludGYu
aHRtbAotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMyB8fCBuZXh0ID09IDcxKSB7Ci0g
ICAgICAgICAgICAgICAgICBpc0dlbmVyYWwgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgcHJl
Y2lzaW9uID0gcHJlY2lzaW9uIHx8IDE7Ci0gICAgICAgICAgICAgICAgICB2YXIgZXhwb25lbnQg
PSBwYXJzZUludChjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJlY2lzaW9uKS5zcGxp
dCgnZScpWzFdLCAxMCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uID4gZXhwb25l
bnQgJiYgZXhwb25lbnQgPj0gLTQpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4
dCA9PSAxMDMpID8gJ2YnIDogJ0YnKS5jaGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAg
ICBwcmVjaXNpb24gLT0gZXhwb25lbnQgKyAxOwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2UnIDogJ0UnKS5j
aGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24tLTsKLSAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVByZWNpc2lvbiA9IE1hdGgu
bWluKHByZWNpc2lvbiwgMjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBp
ZiAobmV4dCA9PSAxMDEgfHwgbmV4dCA9PSA2OSkgewotICAgICAgICAgICAgICAgICAgYXJnVGV4
dCA9IGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24pOwotICAgICAgICAg
ICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHBvbmVudCBoYXMgYXQgbGVhc3QgMiBkaWdpdHMu
Ci0gICAgICAgICAgICAgICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFyZ1RleHQpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnNsaWNlKDAsIC0xKSArICcwJyAr
IGFyZ1RleHQuc2xpY2UoLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAobmV4dCA9PSAxMDIgfHwgbmV4dCA9PSA3MCkgewotICAgICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IGN1cnJBcmcudG9GaXhlZChlZmZlY3RpdmVQcmVjaXNpb24pOwotICAgICAg
ICAgICAgICAgICAgaWYgKGN1cnJBcmcgPT09IDAgJiYgX19yZWFsbHlOZWdhdGl2ZShjdXJyQXJn
KSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJy0nICsgYXJnVGV4dDsKLSAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIHBh
cnRzID0gYXJnVGV4dC5zcGxpdCgnZScpOwotICAgICAgICAgICAgICAgIGlmIChpc0dlbmVyYWwg
JiYgIWZsYWdBbHRlcm5hdGl2ZSkgewotICAgICAgICAgICAgICAgICAgLy8gRGlzY2FyZCB0cmFp
bGluZyB6ZXJvcyBhbmQgcGVyaW9kcy4KLSAgICAgICAgICAgICAgICAgIHdoaWxlIChwYXJ0c1sw
XS5sZW5ndGggPiAxICYmIHBhcnRzWzBdLmluZGV4T2YoJy4nKSAhPSAtMSAmJgotICAgICAgICAg
ICAgICAgICAgICAgICAgIChwYXJ0c1swXS5zbGljZSgtMSkgPT0gJzAnIHx8IHBhcnRzWzBdLnNs
aWNlKC0xKSA9PSAnLicpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNb
MF0uc2xpY2UoMCwgLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBhIHBlcmlvZCBp
biBhbHRlcm5hdGl2ZSBtb2RlLgotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdBbHRlcm5hdGl2
ZSAmJiBhcmdUZXh0LmluZGV4T2YoJy4nKSA9PSAtMSkgcGFydHNbMF0gKz0gJy4nOwotICAgICAg
ICAgICAgICAgICAgLy8gWmVybyBwYWQgdW50aWwgcmVxdWlyZWQgcHJlY2lzaW9uLgotICAgICAg
ICAgICAgICAgICAgd2hpbGUgKHByZWNpc2lvbiA+IGVmZmVjdGl2ZVByZWNpc2lvbisrKSBwYXJ0
c1swXSArPSAnMCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFyZ1RleHQg
PSBwYXJ0c1swXSArIChwYXJ0cy5sZW5ndGggPiAxID8gJ2UnICsgcGFydHNbMV0gOiAnJyk7Ci0g
ICAgICAgICAgICAgICAgLy8gQ2FwaXRhbGl6ZSAnRScgaWYgbmVlZGVkLgotICAgICAgICAgICAg
ICAgIGlmIChuZXh0ID09IDY5KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVyQ2FzZSgpOwotICAg
ICAgICAgICAgICAgIC8vIEFkZCBzaWduLgotICAgICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlz
U2lnbmVkICYmIGN1cnJBcmcgPj0gMCkgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcr
JyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAgICB3aGlsZSAoYXJnVGV4dC5sZW5n
dGggPCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAg
ICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0WzBdID09ICctJyB8
fCBhcmdUZXh0WzBdID09ICcrJykpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGFy
Z1RleHRbMF0gKyAnMCcgKyBhcmdUZXh0LnNsaWNlKDEpOwotICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVyb1BhZCA/ICcwJyA6
ICcgJykgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGp1c3QgY2FzZS4KLSAgICAgICAg
ICAgICAgaWYgKG5leHQgPCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKTsKLSAg
ICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVmZmVyLgotICAgICAg
ICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikgewotICAgICAg
ICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAn
cyc6IHsKLSAgICAgICAgICAgICAgLy8gU3RyaW5nLgotICAgICAgICAgICAgICB2YXIgYXJnID0g
Z2V0TmV4dEFyZygnaTgqJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdMZW5ndGggPSBhcmcgPyBf
c3RybGVuKGFyZykgOiAnKG51bGwpJy5sZW5ndGg7Ci0gICAgICAgICAgICAgIGlmIChwcmVjaXNp
b25TZXQpIGFyZ0xlbmd0aCA9IE1hdGgubWluKGFyZ0xlbmd0aCwgcHJlY2lzaW9uKTsKLSAgICAg
ICAgICAgICAgaWYgKCFmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFy
Z0xlbmd0aCA8IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKGFyZykg
ewotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVuZ3RoOyBpKyspIHsK
LSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVBVOFsoKGFyZysrKXwwKV0pOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXQg
PSByZXQuY29uY2F0KGludEFycmF5RnJvbVN0cmluZygnKG51bGwpJy5zdWJzdHIoMCwgYXJnTGVu
Z3RoKSwgdHJ1ZSkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChmbGFnTGVm
dEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsK
LSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBjYXNlICdjJzogewotICAgICAgICAgICAgICAvLyBDaGFyYWN0ZXIuCi0gICAgICAgICAg
ICAgIGlmIChmbGFnTGVmdEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdpOCcpKTsKLSAgICAg
ICAgICAgICAgd2hpbGUgKC0td2lkdGggPiAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0LnB1c2go
MzIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICghZmxhZ0xlZnRBbGlnbikg
cmV0LnB1c2goZ2V0TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgY2FzZSAnbic6IHsKLSAgICAgICAgICAgICAgLy8gV3JpdGUg
dGhlIGxlbmd0aCB3cml0dGVuIHNvIGZhciB0byB0aGUgbmV4dCBwYXJhbWV0ZXIuCi0gICAgICAg
ICAgICAgIHZhciBwdHIgPSBnZXROZXh0QXJnKCdpMzIqJyk7Ci0gICAgICAgICAgICAgIEhFQVAz
MlsoKHB0cik+PjIpXT1yZXQubGVuZ3RoCi0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgY2FzZSAnJSc6IHsKLSAgICAgICAgICAgICAgLy8gTGl0ZXJhbCBw
ZXJjZW50IHNpZ24uCi0gICAgICAgICAgICAgIHJldC5wdXNoKGN1cnIpOwotICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQ6IHsKLSAgICAgICAg
ICAgICAgLy8gVW5rbm93biBzcGVjaWZpZXJzIHJlbWFpbiB1bnRvdWNoZWQuCi0gICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSBzdGFydFRleHRJbmRleDsgaSA8IHRleHRJbmRleCArIDI7IGkrKykg
ewotICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVA4WyhpKV0pOwotICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRleHRJbmRleCArPSAyOwot
ICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgYS9BIChoZXggZmxvYXQpIGFuZCBtIChsYXN0IGVy
cm9yKSBzcGVjaWZpZXJzLgotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgJTEke3NwZWNpZmll
cn0gZm9yIGFyZyBzZWxlY3Rpb24uCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmV0LnB1
c2goY3Vycik7Ci0gICAgICAgICAgdGV4dEluZGV4ICs9IDE7Ci0gICAgICAgIH0KLSAgICAgIH0K
LSAgICAgIHJldHVybiByZXQ7Ci0gICAgfWZ1bmN0aW9uIF9mcHJpbnRmKHN0cmVhbSwgZm9ybWF0
LCB2YXJhcmdzKSB7Ci0gICAgICAvLyBpbnQgZnByaW50ZihGSUxFICpyZXN0cmljdCBzdHJlYW0s
IGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJz
Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5odG1s
Ci0gICAgICB2YXIgcmVzdWx0ID0gX19mb3JtYXRTdHJpbmcoZm9ybWF0LCB2YXJhcmdzKTsKLSAg
ICAgIHZhciBzdGFjayA9IFJ1bnRpbWUuc3RhY2tTYXZlKCk7Ci0gICAgICB2YXIgcmV0ID0gX2Z3
cml0ZShhbGxvY2F0ZShyZXN1bHQsICdpOCcsIEFMTE9DX1NUQUNLKSwgMSwgcmVzdWx0Lmxlbmd0
aCwgc3RyZWFtKTsKLSAgICAgIFJ1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKTsKLSAgICAgIHJl
dHVybiByZXQ7Ci0gICAgfWZ1bmN0aW9uIF9wcmludGYoZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAg
ICAvLyBpbnQgcHJpbnRmKGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAg
IC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rp
b25zL3ByaW50Zi5odG1sCi0gICAgICB2YXIgc3Rkb3V0ID0gSEVBUDMyWygoX3N0ZG91dCk+PjIp
XTsKLSAgICAgIHJldHVybiBfZnByaW50ZihzdGRvdXQsIGZvcm1hdCwgdmFyYXJncyk7Ci0gICAg
fQotICBmdW5jdGlvbiBfYWJvcnQoKSB7Ci0gICAgICBNb2R1bGVbJ2Fib3J0J10oKTsKLSAgICB9
Ci0gIGZ1bmN0aW9uIF9fX2Vycm5vX2xvY2F0aW9uKCkgewotICAgICAgcmV0dXJuIF9fX2Vycm5v
X3N0YXRlOwotICAgIH12YXIgX19fZXJybm89X19fZXJybm9fbG9jYXRpb247Ci0gIE1vZHVsZVsi
X21lbWNweSJdID0gX21lbWNweTt2YXIgX2xsdm1fbWVtY3B5X3AwaThfcDBpOF9pMzI9X21lbWNw
eTsKLSAgZnVuY3Rpb24gX3NicmsoYnl0ZXMpIHsKLSAgICAgIC8vIEltcGxlbWVudCBhIExpbnV4
LWxpa2UgJ21lbW9yeSBhcmVhJyBmb3Igb3VyICdwcm9jZXNzJy4KLSAgICAgIC8vIENoYW5nZXMg
dGhlIHNpemUgb2YgdGhlIG1lbW9yeSBhcmVhIGJ5IHxieXRlc3w7IHJldHVybnMgdGhlCi0gICAg
ICAvLyBhZGRyZXNzIG9mIHRoZSBwcmV2aW91cyB0b3AgKCdicmVhaycpIG9mIHRoZSBtZW1vcnkg
YXJlYQotICAgICAgLy8gV2UgY29udHJvbCB0aGUgImR5bmFtaWMiIG1lbW9yeSAtIERZTkFNSUNf
QkFTRSB0byBEWU5BTUlDVE9QCi0gICAgICB2YXIgc2VsZiA9IF9zYnJrOwotICAgICAgaWYgKCFz
ZWxmLmNhbGxlZCkgewotICAgICAgICBEWU5BTUlDVE9QID0gYWxpZ25NZW1vcnlQYWdlKERZTkFN
SUNUT1ApOyAvLyBtYWtlIHN1cmUgd2Ugc3RhcnQgb3V0IGFsaWduZWQKLSAgICAgICAgc2VsZi5j
YWxsZWQgPSB0cnVlOwotICAgICAgICBhc3NlcnQoUnVudGltZS5keW5hbWljQWxsb2MpOwotICAg
ICAgICBzZWxmLmFsbG9jID0gUnVudGltZS5keW5hbWljQWxsb2M7Ci0gICAgICAgIFJ1bnRpbWUu
ZHluYW1pY0FsbG9jID0gZnVuY3Rpb24oKSB7IGFib3J0KCdjYW5ub3QgZHluYW1pY2FsbHkgYWxs
b2NhdGUsIHNicmsgbm93IGhhcyBjb250cm9sJykgfTsKLSAgICAgIH0KLSAgICAgIHZhciByZXQg
PSBEWU5BTUlDVE9QOwotICAgICAgaWYgKGJ5dGVzICE9IDApIHNlbGYuYWxsb2MoYnl0ZXMpOwot
ICAgICAgcmV0dXJuIHJldDsgIC8vIFByZXZpb3VzIGJyZWFrIGxvY2F0aW9uLgotICAgIH0KLSAg
ZnVuY3Rpb24gX3N5c2NvbmYobmFtZSkgewotICAgICAgLy8gbG9uZyBzeXNjb25mKGludCBuYW1l
KTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUz
OTkvZnVuY3Rpb25zL3N5c2NvbmYuaHRtbAotICAgICAgc3dpdGNoKG5hbWUpIHsKLSAgICAgICAg
Y2FzZSA4OiByZXR1cm4gUEFHRV9TSVpFOwotICAgICAgICBjYXNlIDU0OgotICAgICAgICBjYXNl
IDU2OgotICAgICAgICBjYXNlIDIxOgotICAgICAgICBjYXNlIDYxOgotICAgICAgICBjYXNlIDYz
OgotICAgICAgICBjYXNlIDIyOgotICAgICAgICBjYXNlIDY3OgotICAgICAgICBjYXNlIDIzOgot
ICAgICAgICBjYXNlIDI0OgotICAgICAgICBjYXNlIDI1OgotICAgICAgICBjYXNlIDI2OgotICAg
ICAgICBjYXNlIDI3OgotICAgICAgICBjYXNlIDY5OgotICAgICAgICBjYXNlIDI4OgotICAgICAg
ICBjYXNlIDEwMToKLSAgICAgICAgY2FzZSA3MDoKLSAgICAgICAgY2FzZSA3MToKLSAgICAgICAg
Y2FzZSAyOToKLSAgICAgICAgY2FzZSAzMDoKLSAgICAgICAgY2FzZSAxOTk6Ci0gICAgICAgIGNh
c2UgNzU6Ci0gICAgICAgIGNhc2UgNzY6Ci0gICAgICAgIGNhc2UgMzI6Ci0gICAgICAgIGNhc2Ug
NDM6Ci0gICAgICAgIGNhc2UgNDQ6Ci0gICAgICAgIGNhc2UgODA6Ci0gICAgICAgIGNhc2UgNDY6
Ci0gICAgICAgIGNhc2UgNDc6Ci0gICAgICAgIGNhc2UgNDU6Ci0gICAgICAgIGNhc2UgNDg6Ci0g
ICAgICAgIGNhc2UgNDk6Ci0gICAgICAgIGNhc2UgNDI6Ci0gICAgICAgIGNhc2UgODI6Ci0gICAg
ICAgIGNhc2UgMzM6Ci0gICAgICAgIGNhc2UgNzoKLSAgICAgICAgY2FzZSAxMDg6Ci0gICAgICAg
IGNhc2UgMTA5OgotICAgICAgICBjYXNlIDEwNzoKLSAgICAgICAgY2FzZSAxMTI6Ci0gICAgICAg
IGNhc2UgMTE5OgotICAgICAgICBjYXNlIDEyMToKLSAgICAgICAgICByZXR1cm4gMjAwODA5Owot
ICAgICAgICBjYXNlIDEzOgotICAgICAgICBjYXNlIDEwNDoKLSAgICAgICAgY2FzZSA5NDoKLSAg
ICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAzNDoKLSAgICAgICAgY2FzZSAzNToKLSAgICAg
ICAgY2FzZSA3NzoKLSAgICAgICAgY2FzZSA4MToKLSAgICAgICAgY2FzZSA4MzoKLSAgICAgICAg
Y2FzZSA4NDoKLSAgICAgICAgY2FzZSA4NToKLSAgICAgICAgY2FzZSA4NjoKLSAgICAgICAgY2Fz
ZSA4NzoKLSAgICAgICAgY2FzZSA4ODoKLSAgICAgICAgY2FzZSA4OToKLSAgICAgICAgY2FzZSA5
MDoKLSAgICAgICAgY2FzZSA5MToKLSAgICAgICAgY2FzZSA5NDoKLSAgICAgICAgY2FzZSA5NToK
LSAgICAgICAgY2FzZSAxMTA6Ci0gICAgICAgIGNhc2UgMTExOgotICAgICAgICBjYXNlIDExMzoK
LSAgICAgICAgY2FzZSAxMTQ6Ci0gICAgICAgIGNhc2UgMTE1OgotICAgICAgICBjYXNlIDExNjoK
LSAgICAgICAgY2FzZSAxMTc6Ci0gICAgICAgIGNhc2UgMTE4OgotICAgICAgICBjYXNlIDEyMDoK
LSAgICAgICAgY2FzZSA0MDoKLSAgICAgICAgY2FzZSAxNjoKLSAgICAgICAgY2FzZSA3OToKLSAg
ICAgICAgY2FzZSAxOToKLSAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGNhc2UgOTI6Ci0g
ICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgNToKLSAgICAgICAgY2FzZSA3MjoKLSAgICAg
ICAgY2FzZSA2OgotICAgICAgICBjYXNlIDc0OgotICAgICAgICBjYXNlIDkyOgotICAgICAgICBj
YXNlIDkzOgotICAgICAgICBjYXNlIDk2OgotICAgICAgICBjYXNlIDk3OgotICAgICAgICBjYXNl
IDk4OgotICAgICAgICBjYXNlIDk5OgotICAgICAgICBjYXNlIDEwMjoKLSAgICAgICAgY2FzZSAx
MDM6Ci0gICAgICAgIGNhc2UgMTA1OgotICAgICAgICAgIHJldHVybiAxOwotICAgICAgICBjYXNl
IDM4OgotICAgICAgICBjYXNlIDY2OgotICAgICAgICBjYXNlIDUwOgotICAgICAgICBjYXNlIDUx
OgotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgcmV0dXJuIDEwMjQ7Ci0gICAgICAgIGNhc2Ug
MTU6Ci0gICAgICAgIGNhc2UgNjQ6Ci0gICAgICAgIGNhc2UgNDE6Ci0gICAgICAgICAgcmV0dXJu
IDMyOwotICAgICAgICBjYXNlIDU1OgotICAgICAgICBjYXNlIDM3OgotICAgICAgICBjYXNlIDE3
OgotICAgICAgICAgIHJldHVybiAyMTQ3NDgzNjQ3OwotICAgICAgICBjYXNlIDE4OgotICAgICAg
ICBjYXNlIDE6Ci0gICAgICAgICAgcmV0dXJuIDQ3ODM5OwotICAgICAgICBjYXNlIDU5OgotICAg
ICAgICBjYXNlIDU3OgotICAgICAgICAgIHJldHVybiA5OTsKLSAgICAgICAgY2FzZSA2ODoKLSAg
ICAgICAgY2FzZSA1ODoKLSAgICAgICAgICByZXR1cm4gMjA0ODsKLSAgICAgICAgY2FzZSAwOiBy
ZXR1cm4gMjA5NzE1MjsKLSAgICAgICAgY2FzZSAzOiByZXR1cm4gNjU1MzY7Ci0gICAgICAgIGNh
c2UgMTQ6IHJldHVybiAzMjc2ODsKLSAgICAgICAgY2FzZSA3MzogcmV0dXJuIDMyNzY3OwotICAg
ICAgICBjYXNlIDM5OiByZXR1cm4gMTYzODQ7Ci0gICAgICAgIGNhc2UgNjA6IHJldHVybiAxMDAw
OwotICAgICAgICBjYXNlIDEwNjogcmV0dXJuIDcwMDsKLSAgICAgICAgY2FzZSA1MjogcmV0dXJu
IDI1NjsKLSAgICAgICAgY2FzZSA2MjogcmV0dXJuIDI1NTsKLSAgICAgICAgY2FzZSAyOiByZXR1
cm4gMTAwOwotICAgICAgICBjYXNlIDY1OiByZXR1cm4gNjQ7Ci0gICAgICAgIGNhc2UgMzY6IHJl
dHVybiAyMDsKLSAgICAgICAgY2FzZSAxMDA6IHJldHVybiAxNjsKLSAgICAgICAgY2FzZSAyMDog
cmV0dXJuIDY7Ci0gICAgICAgIGNhc2UgNTM6IHJldHVybiA0OwotICAgICAgICBjYXNlIDEwOiBy
ZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7
Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICBmdW5jdGlvbiBfdGltZShwdHIpIHsKLSAgICAg
IHZhciByZXQgPSBNYXRoLmZsb29yKERhdGUubm93KCkvMTAwMCk7Ci0gICAgICBpZiAocHRyKSB7
Ci0gICAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT1yZXQKLSAgICAgIH0KLSAgICAgIHJldHVybiBy
ZXQ7Ci0gICAgfQotICBNb2R1bGVbIl9tZW1zZXQiXSA9IF9tZW1zZXQ7Ci0gIHZhciBCcm93c2Vy
PXttYWluTG9vcDp7c2NoZWR1bGVyOm51bGwsc2hvdWxkUGF1c2U6ZmFsc2UscGF1c2VkOmZhbHNl
LHF1ZXVlOltdLHBhdXNlOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBCcm93c2VyLm1haW5Mb29w
LnNob3VsZFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgfSxyZXN1bWU6ZnVuY3Rpb24gKCkgewotICAg
ICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLnBhdXNlZCkgewotICAgICAgICAgICAgQnJvd3Nl
ci5tYWluTG9vcC5wYXVzZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3Au
c2NoZWR1bGVyKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2hv
dWxkUGF1c2UgPSBmYWxzZTsKLSAgICAgICAgfSx1cGRhdGVTdGF0dXM6ZnVuY3Rpb24gKCkgewot
ICAgICAgICAgIGlmIChNb2R1bGVbJ3NldFN0YXR1cyddKSB7Ci0gICAgICAgICAgICB2YXIgbWVz
c2FnZSA9IE1vZHVsZVsnc3RhdHVzTWVzc2FnZSddIHx8ICdQbGVhc2Ugd2FpdC4uLic7Ci0gICAg
ICAgICAgICB2YXIgcmVtYWluaW5nID0gQnJvd3Nlci5tYWluTG9vcC5yZW1haW5pbmdCbG9ja2Vy
czsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IEJyb3dzZXIubWFpbkxvb3AuZXhwZWN0ZWRC
bG9ja2VyczsKLSAgICAgICAgICAgIGlmIChyZW1haW5pbmcpIHsKLSAgICAgICAgICAgICAgaWYg
KHJlbWFpbmluZyA8IGV4cGVjdGVkKSB7Ci0gICAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0
dXMnXShtZXNzYWdlICsgJyAoJyArIChleHBlY3RlZCAtIHJlbWFpbmluZykgKyAnLycgKyBleHBl
Y3RlZCArICcpJyk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgTW9k
dWxlWydzZXRTdGF0dXMnXShtZXNzYWdlKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXSgnJyk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9fSxpc0Z1bGxTY3JlZW46ZmFsc2UscG9pbnRl
ckxvY2s6ZmFsc2UsbW9kdWxlQ29udGV4dENyZWF0ZWRDYWxsYmFja3M6W10sd29ya2VyczpbXSxp
bml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgaWYgKCFNb2R1bGVbInByZWxvYWRQbHVnaW5zIl0p
IE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXSA9IFtdOyAvLyBuZWVkcyB0byBleGlzdCBldmVuIGlu
IHdvcmtlcnMKLSAgICAgICAgaWYgKEJyb3dzZXIuaW5pdHRlZCB8fCBFTlZJUk9OTUVOVF9JU19X
T1JLRVIpIHJldHVybjsKLSAgICAgICAgQnJvd3Nlci5pbml0dGVkID0gdHJ1ZTsKLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICBuZXcgQmxvYigpOwotICAgICAgICAgIEJyb3dzZXIuaGFzQmxvYkNv
bnN0cnVjdG9yID0gdHJ1ZTsKLSAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgQnJvd3Nl
ci5oYXNCbG9iQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAgICAgICAgICBjb25zb2xlLmxvZygid2Fy
bmluZzogbm8gYmxvYiBjb25zdHJ1Y3RvciwgY2Fubm90IGNyZWF0ZSBibG9icyB3aXRoIG1pbWV0
eXBlcyIpOwotICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIuQmxvYkJ1aWxkZXIgPSB0eXBlb2Yg
TW96QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBNb3pCbG9iQnVpbGRlciA6ICh0eXBlb2Yg
V2ViS2l0QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBXZWJLaXRCbG9iQnVpbGRlciA6ICgh
QnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPyBjb25zb2xlLmxvZygid2FybmluZzogbm8gQmxv
YkJ1aWxkZXIiKSA6IG51bGwpKTsKLSAgICAgICAgQnJvd3Nlci5VUkxPYmplY3QgPSB0eXBlb2Yg
d2luZG93ICE9ICJ1bmRlZmluZWQiID8gKHdpbmRvdy5VUkwgPyB3aW5kb3cuVVJMIDogd2luZG93
LndlYmtpdFVSTCkgOiB1bmRlZmluZWQ7Ci0gICAgICAgIGlmICghTW9kdWxlLm5vSW1hZ2VEZWNv
ZGluZyAmJiB0eXBlb2YgQnJvd3Nlci5VUkxPYmplY3QgPT09ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IEJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBjcmVh
dGluZyBvYmplY3QgVVJMcy4gQnVpbHQtaW4gYnJvd3NlciBpbWFnZSBkZWNvZGluZyB3aWxsIG5v
dCBiZSBhdmFpbGFibGUuIik7Ci0gICAgICAgICAgTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyA9IHRy
dWU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU3VwcG9ydCBmb3IgcGx1Z2lucyB0aGF0IGNhbiBw
cm9jZXNzIHByZWxvYWRlZCBmaWxlcy4gWW91IGNhbiBhZGQgbW9yZSBvZiB0aGVzZSB0bwotICAg
ICAgICAvLyB5b3VyIGFwcCBieSBjcmVhdGluZyBhbmQgYXBwZW5kaW5nIHRvIE1vZHVsZS5wcmVs
b2FkUGx1Z2lucy4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gRWFjaCBwbHVnaW4gaXMgYXNrZWQg
aWYgaXQgY2FuIGhhbmRsZSBhIGZpbGUgYmFzZWQgb24gdGhlIGZpbGUncyBuYW1lLiBJZiBpdCBj
YW4sCi0gICAgICAgIC8vIGl0IGlzIGdpdmVuIHRoZSBmaWxlJ3MgcmF3IGRhdGEuIFdoZW4gaXQg
aXMgZG9uZSwgaXQgY2FsbHMgYSBjYWxsYmFjayB3aXRoIHRoZSBmaWxlJ3MKLSAgICAgICAgLy8g
KHBvc3NpYmx5IG1vZGlmaWVkKSBkYXRhLiBGb3IgZXhhbXBsZSwgYSBwbHVnaW4gbWlnaHQgZGVj
b21wcmVzcyBhIGZpbGUsIG9yIGl0Ci0gICAgICAgIC8vIG1pZ2h0IGNyZWF0ZSBzb21lIHNpZGUg
ZGF0YSBzdHJ1Y3R1cmUgZm9yIHVzZSBsYXRlciAobGlrZSBhbiBJbWFnZSBlbGVtZW50LCBldGMu
KS4KLSAgICAgICAgdmFyIGltYWdlUGx1Z2luID0ge307Ci0gICAgICAgIGltYWdlUGx1Z2luWydj
YW5IYW5kbGUnXSA9IGZ1bmN0aW9uKG5hbWUpIHsKLSAgICAgICAgICByZXR1cm4gIU1vZHVsZS5u
b0ltYWdlRGVjb2RpbmcgJiYgL1wuKGpwZ3xqcGVnfHBuZ3xibXApJC9pLnRlc3QobmFtZSk7Ci0g
ICAgICAgIH07Ci0gICAgICAgIGltYWdlUGx1Z2luWydoYW5kbGUnXSA9IGZ1bmN0aW9uKGJ5dGVB
cnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAgICAgdmFyIGIgPSBudWxsOwot
ICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvcikgewotICAgICAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IEJy
b3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0gICAgICAgICAgICAgIGlmIChiLnNpemUgIT09
IGJ5dGVBcnJheS5sZW5ndGgpIHsgLy8gU2FmYXJpIGJ1ZyAjMTE4NjMwCi0gICAgICAgICAgICAg
ICAgLy8gU2FmYXJpJ3MgQmxvYiBjYW4gb25seSB0YWtlIGFuIEFycmF5QnVmZmVyCi0gICAgICAg
ICAgICAgICAgYiA9IG5ldyBCbG9iKFsobmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVy
XSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwotICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgUnVudGltZS53YXJuT25j
ZSgnQmxvYiBjb25zdHJ1Y3RvciBwcmVzZW50IGJ1dCBmYWlsczogJyArIGUgKyAnOyBmYWxsaW5n
IGJhY2sgdG8gYmxvYiBidWlsZGVyJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICAgIGlmICghYikgewotICAgICAgICAgICAgdmFyIGJiID0gbmV3IEJyb3dzZXIuQmxvYkJ1
aWxkZXIoKTsKLSAgICAgICAgICAgIGJiLmFwcGVuZCgobmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5
KSkuYnVmZmVyKTsgLy8gd2UgbmVlZCB0byBwYXNzIGEgYnVmZmVyLCBhbmQgbXVzdCBjb3B5IHRo
ZSBhcnJheSB0byBnZXQgdGhlIHJpZ2h0IGRhdGEgcmFuZ2UKLSAgICAgICAgICAgIGIgPSBiYi5n
ZXRCbG9iKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciB1cmwgPSBCcm93c2VyLlVSTE9i
amVjdC5jcmVhdGVPYmplY3RVUkwoYik7Ci0gICAgICAgICAgdmFyIGltZyA9IG5ldyBJbWFnZSgp
OwotICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFzc2Vy
dChpbWcuY29tcGxldGUsICdJbWFnZSAnICsgbmFtZSArICcgY291bGQgbm90IGJlIGRlY29kZWQn
KTsKLSAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52
YXMnKTsKLSAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IGltZy53aWR0aDsKLSAgICAgICAgICAg
IGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0OwotICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZh
cy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAp
OwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXVtuYW1lXSA9IGNhbnZhczsK
LSAgICAgICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0LnJldm9rZU9iamVjdFVSTCh1cmwpOwotICAg
ICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7Ci0gICAgICAgICAgfTsKLSAg
ICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICBjb25z
b2xlLmxvZygnSW1hZ2UgJyArIHVybCArICcgY291bGQgbm90IGJlIGRlY29kZWQnKTsKLSAgICAg
ICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0gICAgICAgICAgfTsKLSAgICAgICAgICBp
bWcuc3JjID0gdXJsOwotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5z
J10ucHVzaChpbWFnZVBsdWdpbik7Ci0gICAgICAgIHZhciBhdWRpb1BsdWdpbiA9IHt9OwotICAg
ICAgICBhdWRpb1BsdWdpblsnY2FuSGFuZGxlJ10gPSBmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAg
ICAgcmV0dXJuICFNb2R1bGUubm9BdWRpb0RlY29kaW5nICYmIG5hbWUuc3Vic3RyKC00KSBpbiB7
ICcub2dnJzogMSwgJy53YXYnOiAxLCAnLm1wMyc6IDEgfTsKLSAgICAgICAgfTsKLSAgICAgICAg
YXVkaW9QbHVnaW5bJ2hhbmRsZSddID0gZnVuY3Rpb24oYnl0ZUFycmF5LCBuYW1lLCBvbmxvYWQs
IG9uZXJyb3IpIHsKLSAgICAgICAgICB2YXIgZG9uZSA9IGZhbHNlOwotICAgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaChhdWRpbykgewotICAgICAgICAgICAgaWYgKGRvbmUpIHJldHVybjsKLSAgICAg
ICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3Mi
XVtuYW1lXSA9IGF1ZGlvOwotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJh
eSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoKSB7Ci0gICAgICAgICAg
ICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgICAgICAg
ICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVdID0gbmV3IEF1ZGlvKCk7IC8vIGVtcHR5
IHNoaW0KLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvcikgewotICAgICAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgICAgdmFyIGIgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBl
OiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwotICAgICAgICAgICAgfSBjYXRjaChlKSB7
Ci0gICAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3JlYXRlT2JqZWN0VVJMKGIpOyAvLyBYWFgg
d2UgbmV2ZXIgcmV2b2tlIHRoaXMhCi0gICAgICAgICAgICB2YXIgYXVkaW8gPSBuZXcgQXVkaW8o
KTsKLSAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlzdGVuZXIoJ2NhbnBsYXl0aHJvdWdoJywg
ZnVuY3Rpb24oKSB7IGZpbmlzaChhdWRpbykgfSwgZmFsc2UpOyAvLyB1c2UgYWRkRXZlbnRMaXN0
ZW5lciBkdWUgdG8gY2hyb21pdW0gYnVnIDEyNDkyNgotICAgICAgICAgICAgYXVkaW8ub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm47Ci0g
ICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YXJuaW5nOiBicm93c2VyIGNvdWxkIG5vdCBmdWxs
eSBkZWNvZGUgYXVkaW8gJyArIG5hbWUgKyAnLCB0cnlpbmcgc2xvd2VyIGJhc2U2NCBhcHByb2Fj
aCcpOwotICAgICAgICAgICAgICBmdW5jdGlvbiBlbmNvZGU2NChkYXRhKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIEJBU0UgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7Ci0gICAgICAgICAgICAgICAgdmFyIFBBRCA9ICc9
JzsKLSAgICAgICAgICAgICAgICB2YXIgcmV0ID0gJyc7Ci0gICAgICAgICAgICAgICAgdmFyIGxl
ZnRjaGFyID0gMDsKLSAgICAgICAgICAgICAgICB2YXIgbGVmdGJpdHMgPSAwOwotICAgICAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgICAgICAgbGVmdGNoYXIgPSAobGVmdGNoYXIgPDwgOCkgfCBkYXRhW2ldOwotICAgICAgICAg
ICAgICAgICAgbGVmdGJpdHMgKz0gODsKLSAgICAgICAgICAgICAgICAgIHdoaWxlIChsZWZ0Yml0
cyA+PSA2KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjdXJyID0gKGxlZnRjaGFyID4+IChs
ZWZ0Yml0cy02KSkgJiAweDNmOwotICAgICAgICAgICAgICAgICAgICBsZWZ0Yml0cyAtPSA2Owot
ICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVtjdXJyXTsKLSAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGxlZnRiaXRzID09IDIp
IHsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNFWyhsZWZ0Y2hhciYzKSA8PCA0XTsKLSAg
ICAgICAgICAgICAgICAgIHJldCArPSBQQUQgKyBQQUQ7Ci0gICAgICAgICAgICAgICAgfSBlbHNl
IGlmIChsZWZ0Yml0cyA9PSA0KSB7Ci0gICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVsobGVm
dGNoYXImMHhmKSA8PCAyXTsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQ7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgYXVkaW8uc3JjID0gJ2RhdGE6YXVkaW8veC0nICsgbmFtZS5zdWJzdHIo
LTMpICsgJztiYXNlNjQsJyArIGVuY29kZTY0KGJ5dGVBcnJheSk7Ci0gICAgICAgICAgICAgIGZp
bmlzaChhdWRpbyk7IC8vIHdlIGRvbid0IHdhaXQgZm9yIGNvbmZpcm1hdGlvbiB0aGlzIHdvcmtl
ZCAtIGJ1dCBpdCdzIHdvcnRoIHRyeWluZwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGF1
ZGlvLnNyYyA9IHVybDsKLSAgICAgICAgICAgIC8vIHdvcmthcm91bmQgZm9yIGNocm9tZSBidWcg
MTI0OTI2IC0gd2UgZG8gbm90IGFsd2F5cyBnZXQgb25jYW5wbGF5dGhyb3VnaCBvciBvbmVycm9y
Ci0gICAgICAgICAgICBCcm93c2VyLnNhZmVTZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB0cnkgdG8gdXNlIGl0IGV2ZW4gdGhvdWdoIGl0IGlz
IG5vdCBuZWNlc3NhcmlseSByZWFkeSB0byBwbGF5Ci0gICAgICAgICAgICB9LCAxMDAwMCk7Ci0g
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0gICAgICAgICAg
fQotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVzaChhdWRp
b1BsdWdpbik7Ci0gICAgICAgIC8vIENhbnZhcyBldmVudCBzZXR1cAotICAgICAgICB2YXIgY2Fu
dmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9j
ayA9IGNhbnZhc1sncmVxdWVzdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbnZhc1snbW96UmVxdWVzdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snd2Via2l0UmVxdWVzdFBvaW50
ZXJMb2NrJ107Ci0gICAgICAgIGNhbnZhcy5leGl0UG9pbnRlckxvY2sgPSBkb2N1bWVudFsnZXhp
dFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50Wydtb3pFeGl0UG9pbnRlckxvY2snXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnRbJ3dlYmtpdEV4aXRQb2ludGVyTG9jayddIHx8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpe307IC8vIG5vLW9wIGlmIGZ1bmN0aW9uIGRv
ZXMgbm90IGV4aXN0Ci0gICAgICAgIGNhbnZhcy5leGl0UG9pbnRlckxvY2sgPSBjYW52YXMuZXhp
dFBvaW50ZXJMb2NrLmJpbmQoZG9jdW1lbnQpOwotICAgICAgICBmdW5jdGlvbiBwb2ludGVyTG9j
a0NoYW5nZSgpIHsKLSAgICAgICAgICBCcm93c2VyLnBvaW50ZXJMb2NrID0gZG9jdW1lbnRbJ3Bv
aW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnRbJ21velBvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdFBvaW50ZXJM
b2NrRWxlbWVudCddID09PSBjYW52YXM7Ci0gICAgICAgIH0KLSAgICAgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigncG9pbnRlcmxvY2tjaGFuZ2UnLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFs
c2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3pwb2ludGVybG9ja2No
YW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoJ3dlYmtpdHBvaW50ZXJsb2NrY2hhbmdlJywgcG9pbnRlckxvY2tDaGFuZ2Us
IGZhbHNlKTsKLSAgICAgICAgaWYgKE1vZHVsZVsnZWxlbWVudFBvaW50ZXJMb2NrJ10pIHsKLSAg
ICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldikgewot
ICAgICAgICAgICAgaWYgKCFCcm93c2VyLnBvaW50ZXJMb2NrICYmIGNhbnZhcy5yZXF1ZXN0UG9p
bnRlckxvY2spIHsKLSAgICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jaygpOwot
ICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgIH0sIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgfSxjcmVhdGVDb250ZXh0OmZ1bmN0aW9u
IChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkgewotICAgICAgICB2YXIgY3R4OwotICAg
ICAgICB0cnkgewotICAgICAgICAgIGlmICh1c2VXZWJHTCkgewotICAgICAgICAgICAgY3R4ID0g
Y2FudmFzLmdldENvbnRleHQoJ2V4cGVyaW1lbnRhbC13ZWJnbCcsIHsKLSAgICAgICAgICAgICAg
YWxwaGE6IGZhbHNlCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGlmICghY3R4KSB0aHJvdyAnOignOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgTW9kdWxlLnByaW50KCdDb3VsZCBub3QgY3JlYXRlIGNhbnZhcyAtICcgKyBlKTsKLSAgICAg
ICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBpZiAodXNlV2ViR0wpIHsKLSAg
ICAgICAgICAvLyBTZXQgdGhlIGJhY2tncm91bmQgb2YgdGhlIFdlYkdMIGNhbnZhcyB0byBibGFj
awotICAgICAgICAgIGNhbnZhcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiYmxhY2siOwotICAg
ICAgICAgIC8vIFdhcm4gb24gY29udGV4dCBsb3NzCi0gICAgICAgICAgY2FudmFzLmFkZEV2ZW50
TGlzdGVuZXIoJ3dlYmdsY29udGV4dGxvc3QnLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAg
ICAgYWxlcnQoJ1dlYkdMIGNvbnRleHQgbG9zdC4gWW91IHdpbGwgbmVlZCB0byByZWxvYWQgdGhl
IHBhZ2UuJyk7Ci0gICAgICAgICAgfSwgZmFsc2UpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChz
ZXRJbk1vZHVsZSkgewotICAgICAgICAgIE1vZHVsZS5jdHggPSBjdHg7Ci0gICAgICAgICAgTW9k
dWxlLnVzZVdlYkdMID0gdXNlV2ViR0w7Ci0gICAgICAgICAgQnJvd3Nlci5tb2R1bGVDb250ZXh0
Q3JlYXRlZENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKGNhbGxiYWNrKSB7IGNhbGxiYWNrKCkg
fSk7Ci0gICAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IGN0eDsKLSAgICAgIH0sZGVzdHJveUNvbnRleHQ6ZnVuY3Rpb24gKGNhbnZhcywgdXNlV2ViR0ws
IHNldEluTW9kdWxlKSB7fSxmdWxsU2NyZWVuSGFuZGxlcnNJbnN0YWxsZWQ6ZmFsc2UsbG9ja1Bv
aW50ZXI6dW5kZWZpbmVkLHJlc2l6ZUNhbnZhczp1bmRlZmluZWQscmVxdWVzdEZ1bGxTY3JlZW46
ZnVuY3Rpb24gKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsKLSAgICAgICAgQnJvd3Nlci5s
b2NrUG9pbnRlciA9IGxvY2tQb2ludGVyOwotICAgICAgICBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9
IHJlc2l6ZUNhbnZhczsKLSAgICAgICAgaWYgKHR5cGVvZiBCcm93c2VyLmxvY2tQb2ludGVyID09
PSAndW5kZWZpbmVkJykgQnJvd3Nlci5sb2NrUG9pbnRlciA9IHRydWU7Ci0gICAgICAgIGlmICh0
eXBlb2YgQnJvd3Nlci5yZXNpemVDYW52YXMgPT09ICd1bmRlZmluZWQnKSBCcm93c2VyLnJlc2l6
ZUNhbnZhcyA9IGZhbHNlOwotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsK
LSAgICAgICAgZnVuY3Rpb24gZnVsbFNjcmVlbkNoYW5nZSgpIHsKLSAgICAgICAgICBCcm93c2Vy
LmlzRnVsbFNjcmVlbiA9IGZhbHNlOwotICAgICAgICAgIGlmICgoZG9jdW1lbnRbJ3dlYmtpdEZ1
bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ3dlYmtpdEZ1bGxzY3JlZW5FbGVtZW50J10g
fHwKLSAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pGdWxsU2NyZWVuRWxlbWVudCddIHx8IGRv
Y3VtZW50Wydtb3pGdWxsc2NyZWVuRWxlbWVudCddIHx8Ci0gICAgICAgICAgICAgICBkb2N1bWVu
dFsnZnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVudFsnZnVsbHNjcmVlbkVsZW1lbnQnXSkg
PT09IGNhbnZhcykgewotICAgICAgICAgICAgY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4gPSBkb2N1
bWVudFsnY2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50Wydtb3pDYW5jZWxGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdENhbmNlbEZ1bGxTY3Jl
ZW4nXTsKLSAgICAgICAgICAgIGNhbnZhcy5jYW5jZWxGdWxsU2NyZWVuID0gY2FudmFzLmNhbmNl
bEZ1bGxTY3JlZW4uYmluZChkb2N1bWVudCk7Ci0gICAgICAgICAgICBpZiAoQnJvd3Nlci5sb2Nr
UG9pbnRlcikgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jaygpOwotICAgICAgICAgICAgQnJvd3Nl
ci5pc0Z1bGxTY3JlZW4gPSB0cnVlOwotICAgICAgICAgICAgaWYgKEJyb3dzZXIucmVzaXplQ2Fu
dmFzKSBCcm93c2VyLnNldEZ1bGxTY3JlZW5DYW52YXNTaXplKCk7Ci0gICAgICAgICAgfSBlbHNl
IGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcyl7Ci0gICAgICAgICAgICBCcm93c2VyLnNldFdpbmRv
d2VkQ2FudmFzU2l6ZSgpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoTW9kdWxlWydvbkZ1
bGxTY3JlZW4nXSkgTW9kdWxlWydvbkZ1bGxTY3JlZW4nXShCcm93c2VyLmlzRnVsbFNjcmVlbik7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFCcm93c2VyLmZ1bGxTY3JlZW5IYW5kbGVyc0luc3Rh
bGxlZCkgewotICAgICAgICAgIEJyb3dzZXIuZnVsbFNjcmVlbkhhbmRsZXJzSW5zdGFsbGVkID0g
dHJ1ZTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmdWxsc2NyZWVuY2hh
bmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwotICAgICAgICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoJ21vemZ1bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxz
ZSk7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZnVsbHNjcmVl
bmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgICBj
YW52YXMucmVxdWVzdEZ1bGxTY3JlZW4gPSBjYW52YXNbJ3JlcXVlc3RGdWxsU2NyZWVuJ10gfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzWydtb3pSZXF1ZXN0RnVs
bFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW52YXNb
J3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10gPyBmdW5jdGlvbigpIHsgY2FudmFzWyd3ZWJraXRS
ZXF1ZXN0RnVsbFNjcmVlbiddKEVsZW1lbnRbJ0FMTE9XX0tFWUJPQVJEX0lOUFVUJ10pIH0gOiBu
dWxsKTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxsU2NyZWVuKCk7Ci0gICAgICB9LHJlcXVl
c3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICBpZiAoIXdpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHsKLSAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlv
bkZyYW1lID0gd2luZG93WydyZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ21velJlcXVlc3RBbmltYXRpb25G
cmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
d1snd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2luZG93Wydtc1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snb1JlcXVl
c3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvd1snc2V0VGltZW91dCddOwotICAgICAgICB9Ci0gICAgICAgIHdpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYyk7Ci0gICAgICB9LHNhZmVDYWxsYmFjazpmdW5jdGlv
biAoZnVuYykgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFB
Qk9SVCkgcmV0dXJuIGZ1bmMuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKLSAgICAgICAgfTsKLSAg
ICAgIH0sc2FmZVJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykgewotICAgICAg
ICByZXR1cm4gQnJvd3Nlci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAgICB9KTsKLSAgICAgIH0sc2FmZVNldFRp
bWVvdXQ6ZnVuY3Rpb24gKGZ1bmMsIHRpbWVvdXQpIHsKLSAgICAgICAgcmV0dXJuIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAgICB9
LCB0aW1lb3V0KTsKLSAgICAgIH0sc2FmZVNldEludGVydmFsOmZ1bmN0aW9uIChmdW5jLCB0aW1l
b3V0KSB7Ci0gICAgICAgIHJldHVybiBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKLSAgICAgICAg
ICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0sIHRpbWVvdXQpOwotICAgICAgfSxnZXRN
aW1ldHlwZTpmdW5jdGlvbiAobmFtZSkgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICdq
cGcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ2pwZWcnOiAnaW1hZ2UvanBlZycsCi0gICAg
ICAgICAgJ3BuZyc6ICdpbWFnZS9wbmcnLAotICAgICAgICAgICdibXAnOiAnaW1hZ2UvYm1wJywK
LSAgICAgICAgICAnb2dnJzogJ2F1ZGlvL29nZycsCi0gICAgICAgICAgJ3dhdic6ICdhdWRpby93
YXYnLAotICAgICAgICAgICdtcDMnOiAnYXVkaW8vbXBlZycKLSAgICAgICAgfVtuYW1lLnN1YnN0
cihuYW1lLmxhc3RJbmRleE9mKCcuJykrMSldOwotICAgICAgfSxnZXRVc2VyTWVkaWE6ZnVuY3Rp
b24gKGZ1bmMpIHsKLSAgICAgICAgaWYoIXdpbmRvdy5nZXRVc2VyTWVkaWEpIHsKLSAgICAgICAg
ICB3aW5kb3cuZ2V0VXNlck1lZGlhID0gbmF2aWdhdG9yWydnZXRVc2VyTWVkaWEnXSB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3JbJ21vekdldFVzZXJNZWRpYSdd
OwotICAgICAgICB9Ci0gICAgICAgIHdpbmRvdy5nZXRVc2VyTWVkaWEoZnVuYyk7Ci0gICAgICB9
LGdldE1vdmVtZW50WDpmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgcmV0dXJuIGV2ZW50Wydt
b3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ21vek1vdmVtZW50WCddIHx8Ci0g
ICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1lbnRYJ10gfHwKLSAgICAgICAgICAgICAg
IDA7Ci0gICAgICB9LGdldE1vdmVtZW50WTpmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgcmV0
dXJuIGV2ZW50Wydtb3ZlbWVudFknXSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ21vek1vdmVt
ZW50WSddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1lbnRZJ10gfHwKLSAg
ICAgICAgICAgICAgIDA7Ci0gICAgICB9LG1vdXNlWDowLG1vdXNlWTowLG1vdXNlTW92ZW1lbnRY
OjAsbW91c2VNb3ZlbWVudFk6MCxjYWxjdWxhdGVNb3VzZUV2ZW50OmZ1bmN0aW9uIChldmVudCkg
eyAvLyBldmVudCBzaG91bGQgYmUgbW91c2Vtb3ZlLCBtb3VzZWRvd24gb3IgbW91c2V1cAotICAg
ICAgICBpZiAoQnJvd3Nlci5wb2ludGVyTG9jaykgewotICAgICAgICAgIC8vIFdoZW4gdGhlIHBv
aW50ZXIgaXMgbG9ja2VkLCBjYWxjdWxhdGUgdGhlIGNvb3JkaW5hdGVzCi0gICAgICAgICAgLy8g
YmFzZWQgb24gdGhlIG1vdmVtZW50IG9mIHRoZSBtb3VzZS4KLSAgICAgICAgICAvLyBXb3JrYXJv
dW5kIGZvciBGaXJlZm94IGJ1ZyA3NjQ0OTgKLSAgICAgICAgICBpZiAoZXZlbnQudHlwZSAhPSAn
bW91c2Vtb3ZlJyAmJgotICAgICAgICAgICAgICAoJ21vek1vdmVtZW50WCcgaW4gZXZlbnQpKSB7
Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRYID0gQnJvd3Nlci5tb3VzZU1vdmVt
ZW50WSA9IDA7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEJyb3dzZXIubW91c2VN
b3ZlbWVudFggPSBCcm93c2VyLmdldE1vdmVtZW50WChldmVudCk7Ci0gICAgICAgICAgICBCcm93
c2VyLm1vdXNlTW92ZW1lbnRZID0gQnJvd3Nlci5nZXRNb3ZlbWVudFkoZXZlbnQpOwotICAgICAg
ICAgIH0KLSAgICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlCi0gICAgICAgICAg
aWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAJQnJvd3Nlci5tb3Vz
ZVggPSBTREwubW91c2VYICsgQnJvd3Nlci5tb3VzZU1vdmVtZW50WDsKLSAgICAgICAgICAJQnJv
d3Nlci5tb3VzZVkgPSBTREwubW91c2VZICsgQnJvd3Nlci5tb3VzZU1vdmVtZW50WTsKLSAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIAkvLyBqdXN0IGFkZCB0aGUgbW91c2UgZGVsdGEgdG8g
dGhlIGN1cnJlbnQgYWJzb2x1dCBtb3VzZSBwb3NpdGlvbgotICAgICAgICAgIAkvLyBGSVhNRTog
aWRlYWxseSB0aGlzIHNob3VsZCBiZSBjbGFtcGVkIGFnYWluc3QgdGhlIGNhbnZhcyBzaXplIGFu
ZCB6ZXJvCi0gICAgICAgICAgCUJyb3dzZXIubW91c2VYICs9IEJyb3dzZXIubW91c2VNb3ZlbWVu
dFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZICs9IEJyb3dzZXIubW91c2VNb3ZlbWVudFk7
Ci0gICAgICAgICAgfSAgICAgICAgCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gT3Ro
ZXJ3aXNlLCBjYWxjdWxhdGUgdGhlIG1vdmVtZW50IGJhc2VkIG9uIHRoZSBjaGFuZ2VzCi0gICAg
ICAgICAgLy8gaW4gdGhlIGNvb3JkaW5hdGVzLgotICAgICAgICAgIHZhciByZWN0ID0gTW9kdWxl
WyJjYW52YXMiXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICB2YXIgeCA9IGV2
ZW50LnBhZ2VYIC0gKHdpbmRvdy5zY3JvbGxYICsgcmVjdC5sZWZ0KTsKLSAgICAgICAgICB2YXIg
eSA9IGV2ZW50LnBhZ2VZIC0gKHdpbmRvdy5zY3JvbGxZICsgcmVjdC50b3ApOwotICAgICAgICAg
IC8vIHRoZSBjYW52YXMgbWlnaHQgYmUgQ1NTLXNjYWxlZCBjb21wYXJlZCB0byBpdHMgYmFja2J1
ZmZlcjsKLSAgICAgICAgICAvLyBTREwtdXNpbmcgY29udGVudCB3aWxsIHdhbnQgbW91c2UgY29v
cmRpbmF0ZXMgaW4gdGVybXMKLSAgICAgICAgICAvLyBvZiBiYWNrYnVmZmVyIHVuaXRzLgotICAg
ICAgICAgIHZhciBjdyA9IE1vZHVsZVsiY2FudmFzIl0ud2lkdGg7Ci0gICAgICAgICAgdmFyIGNo
ID0gTW9kdWxlWyJjYW52YXMiXS5oZWlnaHQ7Ci0gICAgICAgICAgeCA9IHggKiAoY3cgLyByZWN0
LndpZHRoKTsKLSAgICAgICAgICB5ID0geSAqIChjaCAvIHJlY3QuaGVpZ2h0KTsKLSAgICAgICAg
ICBCcm93c2VyLm1vdXNlTW92ZW1lbnRYID0geCAtIEJyb3dzZXIubW91c2VYOwotICAgICAgICAg
IEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSB5IC0gQnJvd3Nlci5tb3VzZVk7Ci0gICAgICAgICAg
QnJvd3Nlci5tb3VzZVggPSB4OwotICAgICAgICAgIEJyb3dzZXIubW91c2VZID0geTsKLSAgICAg
ICAgfQotICAgICAgfSx4aHJMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJvcikgewot
ICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgIHhoci5vcGVu
KCdHRVQnLCB1cmwsIHRydWUpOwotICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVm
ZmVyJzsKLSAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICh4
aHIuc3RhdHVzID09IDIwMCB8fCAoeGhyLnN0YXR1cyA9PSAwICYmIHhoci5yZXNwb25zZSkpIHsg
Ly8gZmlsZSBVUkxzIGNhbiByZXR1cm4gMAotICAgICAgICAgICAgb25sb2FkKHhoci5yZXNwb25z
ZSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG9uZXJyb3IoKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH07Ci0gICAgICAgIHhoci5vbmVycm9yID0gb25lcnJvcjsKLSAgICAgICAg
eGhyLnNlbmQobnVsbCk7Ci0gICAgICB9LGFzeW5jTG9hZDpmdW5jdGlvbiAodXJsLCBvbmxvYWQs
IG9uZXJyb3IsIG5vUnVuRGVwKSB7Ci0gICAgICAgIEJyb3dzZXIueGhyTG9hZCh1cmwsIGZ1bmN0
aW9uKGFycmF5QnVmZmVyKSB7Ci0gICAgICAgICAgYXNzZXJ0KGFycmF5QnVmZmVyLCAnTG9hZGlu
ZyBkYXRhIGZpbGUgIicgKyB1cmwgKyAnIiBmYWlsZWQgKG5vIGFycmF5QnVmZmVyKS4nKTsKLSAg
ICAgICAgICBvbmxvYWQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTsKLSAgICAgICAgICBp
ZiAoIW5vUnVuRGVwKSByZW1vdmVSdW5EZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsKLSAgICAgICAg
fSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICBpZiAob25lcnJvcikgewotICAgICAgICAg
ICAgb25lcnJvcigpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aHJvdyAnTG9h
ZGluZyBkYXRhIGZpbGUgIicgKyB1cmwgKyAnIiBmYWlsZWQuJzsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0pOwotICAgICAgICBpZiAoIW5vUnVuRGVwKSBhZGRSdW5EZXBlbmRlbmN5KCdhbCAnICsg
dXJsKTsKLSAgICAgIH0scmVzaXplTGlzdGVuZXJzOltdLHVwZGF0ZVJlc2l6ZUxpc3RlbmVyczpm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAg
ICAgICBCcm93c2VyLnJlc2l6ZUxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7
Ci0gICAgICAgICAgbGlzdGVuZXIoY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLSAgICAg
ICAgfSk7Ci0gICAgICB9LHNldENhbnZhc1NpemU6ZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIG5v
VXBkYXRlcykgewotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAg
ICAgY2FudmFzLndpZHRoID0gd2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7
Ci0gICAgICAgIGlmICghbm9VcGRhdGVzKSBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygp
OwotICAgICAgfSx3aW5kb3dlZFdpZHRoOjAsd2luZG93ZWRIZWlnaHQ6MCxzZXRGdWxsU2NyZWVu
Q2FudmFzU2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2Nh
bnZhcyddOwotICAgICAgICB0aGlzLndpbmRvd2VkV2lkdGggPSBjYW52YXMud2lkdGg7Ci0gICAg
ICAgIHRoaXMud2luZG93ZWRIZWlnaHQgPSBjYW52YXMuaGVpZ2h0OwotICAgICAgICBjYW52YXMu
d2lkdGggPSBzY3JlZW4ud2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY3JlZW4uaGVp
Z2h0OwotICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgCi0gICAgICAgIGlm
ICh0eXBlb2YgU0RMICE9ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgIAl2YXIgZmxhZ3MgPSBIRUFQ
VTMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildOwotICAgICAgICAJ
ZmxhZ3MgPSBmbGFncyB8IDB4MDA4MDAwMDA7IC8vIHNldCBTRExfRlVMTFNDUkVFTiBmbGFnCi0g
ICAgICAgIAlIRUFQMzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV09
ZmxhZ3MKLSAgICAgICAgfQotICAgICAgICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygp
OwotICAgICAgfSxzZXRXaW5kb3dlZENhbnZhc1NpemU6ZnVuY3Rpb24gKCkgewotICAgICAgICB2
YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2FudmFzLndpZHRoID0gdGhp
cy53aW5kb3dlZFdpZHRoOwotICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy53aW5kb3dlZEhl
aWdodDsKLSAgICAgICAgLy8gY2hlY2sgaWYgU0RMIGlzIGF2YWlsYWJsZSAgICAgICAKLSAgICAg
ICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9
IEhFQVBVMzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAg
ICAgIAlmbGFncyA9IGZsYWdzICYgfjB4MDA4MDAwMDA7IC8vIGNsZWFyIFNETF9GVUxMU0NSRUVO
IGZsYWcKLSAgICAgICAgCUhFQVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUq
MCk+PjIpXT1mbGFncwotICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlz
dGVuZXJzKCk7Ci0gICAgICB9fTsKLUZTLnN0YXRpY0luaXQoKTtfX0FUSU5JVF9fLnVuc2hpZnQo
eyBmdW5jOiBmdW5jdGlvbigpIHsgaWYgKCFNb2R1bGVbIm5vRlNJbml0Il0gJiYgIUZTLmluaXQu
aW5pdGlhbGl6ZWQpIEZTLmluaXQoKSB9IH0pO19fQVRNQUlOX18ucHVzaCh7IGZ1bmM6IGZ1bmN0
aW9uKCkgeyBGUy5pZ25vcmVQZXJtaXNzaW9ucyA9IGZhbHNlIH0gfSk7X19BVEVYSVRfXy5wdXNo
KHsgZnVuYzogZnVuY3Rpb24oKSB7IEZTLnF1aXQoKSB9IH0pO01vZHVsZVsiRlNfY3JlYXRlRm9s
ZGVyIl0gPSBGUy5jcmVhdGVGb2xkZXI7TW9kdWxlWyJGU19jcmVhdGVQYXRoIl0gPSBGUy5jcmVh
dGVQYXRoO01vZHVsZVsiRlNfY3JlYXRlRGF0YUZpbGUiXSA9IEZTLmNyZWF0ZURhdGFGaWxlO01v
ZHVsZVsiRlNfY3JlYXRlUHJlbG9hZGVkRmlsZSJdID0gRlMuY3JlYXRlUHJlbG9hZGVkRmlsZTtN
b2R1bGVbIkZTX2NyZWF0ZUxhenlGaWxlIl0gPSBGUy5jcmVhdGVMYXp5RmlsZTtNb2R1bGVbIkZT
X2NyZWF0ZUxpbmsiXSA9IEZTLmNyZWF0ZUxpbms7TW9kdWxlWyJGU19jcmVhdGVEZXZpY2UiXSA9
IEZTLmNyZWF0ZURldmljZTsKLV9fX2Vycm5vX3N0YXRlID0gUnVudGltZS5zdGF0aWNBbGxvYyg0
KTsgSEVBUDMyWygoX19fZXJybm9fc3RhdGUpPj4yKV09MDsKLU1vZHVsZVsicmVxdWVzdEZ1bGxT
Y3JlZW4iXSA9IGZ1bmN0aW9uKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsgQnJvd3Nlci5y
ZXF1ZXN0RnVsbFNjcmVlbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB9OwotICBNb2R1bGVb
InJlcXVlc3RBbmltYXRpb25GcmFtZSJdID0gZnVuY3Rpb24oZnVuYykgeyBCcm93c2VyLnJlcXVl
c3RBbmltYXRpb25GcmFtZShmdW5jKSB9OwotICBNb2R1bGVbInNldENhbnZhc1NpemUiXSA9IGZ1
bmN0aW9uKHdpZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykgeyBCcm93c2VyLnNldENhbnZhc1NpemUo
d2lkdGgsIGhlaWdodCwgbm9VcGRhdGVzKSB9OwotICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9
IGZ1bmN0aW9uKCkgeyBCcm93c2VyLm1haW5Mb29wLnBhdXNlKCkgfTsKLSAgTW9kdWxlWyJyZXN1
bWVNYWluTG9vcCJdID0gZnVuY3Rpb24oKSB7IEJyb3dzZXIubWFpbkxvb3AucmVzdW1lKCkgfTsK
LSAgTW9kdWxlWyJnZXRVc2VyTWVkaWEiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLmdldFVzZXJN
ZWRpYSgpIH0KLVNUQUNLX0JBU0UgPSBTVEFDS1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RB
VElDVE9QKTsKLXN0YXRpY1NlYWxlZCA9IHRydWU7IC8vIHNlYWwgdGhlIHN0YXRpYyBwb3J0aW9u
IG9mIG1lbW9yeQotU1RBQ0tfTUFYID0gU1RBQ0tfQkFTRSArIDUyNDI4ODA7Ci1EWU5BTUlDX0JB
U0UgPSBEWU5BTUlDVE9QID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFDS19NQVgpOwotYXNzZXJ0
KERZTkFNSUNfQkFTRSA8IFRPVEFMX01FTU9SWSk7IC8vIFN0YWNrIG11c3QgZml0IGluIFRPVEFM
X01FTU9SWTsgYWxsb2NhdGlvbnMgZnJvbSBoZXJlIG9uIG1heSBlbmxhcmdlIFRPVEFMX01FTU9S
WQotdmFyIE1hdGhfbWluID0gTWF0aC5taW47Ci1mdW5jdGlvbiBpbnZva2VfaWkoaW5kZXgsYTEp
IHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpIl0oaW5kZXgsYTEpOwot
ICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICds
b25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1
bmN0aW9uIGludm9rZV92KGluZGV4KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3Yi
XShpbmRleCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaShpbmRleCxhMSxhMikgewotICB0cnkgewotICAg
IHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpIl0oaW5kZXgsYTEsYTIpOwotICB9IGNhdGNoKGUp
IHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhy
b3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9r
ZV92aShpbmRleCxhMSkgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aSJdKGluZGV4
LGExKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBl
ICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9
Ci19Ci1mdW5jdGlvbiBhc21QcmludEludCh4LCB5KSB7Ci0gIE1vZHVsZS5wcmludCgnaW50ICcg
KyB4ICsgJywnICsgeSk7Ly8gKyAnICcgKyBuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1mdW5jdGlv
biBhc21QcmludEZsb2F0KHgsIHkpIHsKLSAgTW9kdWxlLnByaW50KCdmbG9hdCAnICsgeCArICcs
JyArIHkpOy8vICsgJyAnICsgbmV3IEVycm9yKCkuc3RhY2spOwotfQotLy8gRU1TQ1JJUFRFTl9T
VEFSVF9BU00KLXZhciBhc20gPSAoZnVuY3Rpb24oZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewotICAn
dXNlIGFzbSc7Ci0gIHZhciBIRUFQOCA9IG5ldyBnbG9iYWwuSW50OEFycmF5KGJ1ZmZlcik7Ci0g
IHZhciBIRUFQMTYgPSBuZXcgZ2xvYmFsLkludDE2QXJyYXkoYnVmZmVyKTsKLSAgdmFyIEhFQVAz
MiA9IG5ldyBnbG9iYWwuSW50MzJBcnJheShidWZmZXIpOwotICB2YXIgSEVBUFU4ID0gbmV3IGds
b2JhbC5VaW50OEFycmF5KGJ1ZmZlcik7Ci0gIHZhciBIRUFQVTE2ID0gbmV3IGdsb2JhbC5VaW50
MTZBcnJheShidWZmZXIpOwotICB2YXIgSEVBUFUzMiA9IG5ldyBnbG9iYWwuVWludDMyQXJyYXko
YnVmZmVyKTsKLSAgdmFyIEhFQVBGMzIgPSBuZXcgZ2xvYmFsLkZsb2F0MzJBcnJheShidWZmZXIp
OwotICB2YXIgSEVBUEY2NCA9IG5ldyBnbG9iYWwuRmxvYXQ2NEFycmF5KGJ1ZmZlcik7Ci0gIHZh
ciBTVEFDS1RPUD1lbnYuU1RBQ0tUT1B8MDsKLSAgdmFyIFNUQUNLX01BWD1lbnYuU1RBQ0tfTUFY
fDA7Ci0gIHZhciB0ZW1wRG91YmxlUHRyPWVudi50ZW1wRG91YmxlUHRyfDA7Ci0gIHZhciBBQk9S
VD1lbnYuQUJPUlR8MDsKLSAgdmFyIE5hTj0rZW52Lk5hTjsKLSAgdmFyIEluZmluaXR5PStlbnYu
SW5maW5pdHk7Ci0gIHZhciBfX1RIUkVXX18gPSAwOwotICB2YXIgdGhyZXdWYWx1ZSA9IDA7Ci0g
IHZhciBzZXRqbXBJZCA9IDA7Ci0gIHZhciB1bmRlZiA9IDA7Ci0gIHZhciB0ZW1wSW50ID0gMCwg
dGVtcEJpZ0ludCA9IDAsIHRlbXBCaWdJbnRQID0gMCwgdGVtcEJpZ0ludFMgPSAwLCB0ZW1wQmln
SW50UiA9IDAuMCwgdGVtcEJpZ0ludEkgPSAwLCB0ZW1wQmlnSW50RCA9IDAsIHRlbXBWYWx1ZSA9
IDAsIHRlbXBEb3VibGUgPSAwLjA7Ci0gIHZhciB0ZW1wUmV0MCA9IDA7Ci0gIHZhciB0ZW1wUmV0
MSA9IDA7Ci0gIHZhciB0ZW1wUmV0MiA9IDA7Ci0gIHZhciB0ZW1wUmV0MyA9IDA7Ci0gIHZhciB0
ZW1wUmV0NCA9IDA7Ci0gIHZhciB0ZW1wUmV0NSA9IDA7Ci0gIHZhciB0ZW1wUmV0NiA9IDA7Ci0g
IHZhciB0ZW1wUmV0NyA9IDA7Ci0gIHZhciB0ZW1wUmV0OCA9IDA7Ci0gIHZhciB0ZW1wUmV0OSA9
IDA7Ci0gIHZhciBNYXRoX2Zsb29yPWdsb2JhbC5NYXRoLmZsb29yOwotICB2YXIgTWF0aF9hYnM9
Z2xvYmFsLk1hdGguYWJzOwotICB2YXIgTWF0aF9zcXJ0PWdsb2JhbC5NYXRoLnNxcnQ7Ci0gIHZh
ciBNYXRoX3Bvdz1nbG9iYWwuTWF0aC5wb3c7Ci0gIHZhciBNYXRoX2Nvcz1nbG9iYWwuTWF0aC5j
b3M7Ci0gIHZhciBNYXRoX3Npbj1nbG9iYWwuTWF0aC5zaW47Ci0gIHZhciBNYXRoX3Rhbj1nbG9i
YWwuTWF0aC50YW47Ci0gIHZhciBNYXRoX2Fjb3M9Z2xvYmFsLk1hdGguYWNvczsKLSAgdmFyIE1h
dGhfYXNpbj1nbG9iYWwuTWF0aC5hc2luOwotICB2YXIgTWF0aF9hdGFuPWdsb2JhbC5NYXRoLmF0
YW47Ci0gIHZhciBNYXRoX2F0YW4yPWdsb2JhbC5NYXRoLmF0YW4yOwotICB2YXIgTWF0aF9leHA9
Z2xvYmFsLk1hdGguZXhwOwotICB2YXIgTWF0aF9sb2c9Z2xvYmFsLk1hdGgubG9nOwotICB2YXIg
TWF0aF9jZWlsPWdsb2JhbC5NYXRoLmNlaWw7Ci0gIHZhciBNYXRoX2ltdWw9Z2xvYmFsLk1hdGgu
aW11bDsKLSAgdmFyIGFib3J0PWVudi5hYm9ydDsKLSAgdmFyIGFzc2VydD1lbnYuYXNzZXJ0Owot
ICB2YXIgYXNtUHJpbnRJbnQ9ZW52LmFzbVByaW50SW50OwotICB2YXIgYXNtUHJpbnRGbG9hdD1l
bnYuYXNtUHJpbnRGbG9hdDsKLSAgdmFyIE1hdGhfbWluPWVudi5taW47Ci0gIHZhciBpbnZva2Vf
aWk9ZW52Lmludm9rZV9paTsKLSAgdmFyIGludm9rZV92PWVudi5pbnZva2VfdjsKLSAgdmFyIGlu
dm9rZV9paWk9ZW52Lmludm9rZV9paWk7Ci0gIHZhciBpbnZva2Vfdmk9ZW52Lmludm9rZV92aTsK
LSAgdmFyIF9wd3JpdGU9ZW52Ll9wd3JpdGU7Ci0gIHZhciBfc3lzY29uZj1lbnYuX3N5c2NvbmY7
Ci0gIHZhciBfc2Jyaz1lbnYuX3Nicms7Ci0gIHZhciBfX19zZXRFcnJObz1lbnYuX19fc2V0RXJy
Tm87Ci0gIHZhciBfZndyaXRlPWVudi5fZndyaXRlOwotICB2YXIgX19yZWFsbHlOZWdhdGl2ZT1l
bnYuX19yZWFsbHlOZWdhdGl2ZTsKLSAgdmFyIF90aW1lPWVudi5fdGltZTsKLSAgdmFyIF9fZm9y
bWF0U3RyaW5nPWVudi5fX2Zvcm1hdFN0cmluZzsKLSAgdmFyIF9zZW5kPWVudi5fc2VuZDsKLSAg
dmFyIF93cml0ZT1lbnYuX3dyaXRlOwotICB2YXIgX2Fib3J0PWVudi5fYWJvcnQ7Ci0gIHZhciBf
ZnByaW50Zj1lbnYuX2ZwcmludGY7Ci0gIHZhciBfcHJpbnRmPWVudi5fcHJpbnRmOwotICB2YXIg
X19fZXJybm9fbG9jYXRpb249ZW52Ll9fX2Vycm5vX2xvY2F0aW9uOwotICB2YXIgX2ZmbHVzaD1l
bnYuX2ZmbHVzaDsKLS8vIEVNU0NSSVBURU5fU1RBUlRfRlVOQ1MKLWZ1bmN0aW9uIHN0YWNrQWxs
b2MoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB2YXIgaTIgPSAwOwotIGkyID0gU1RBQ0tUT1A7Ci0g
U1RBQ0tUT1AgPSBTVEFDS1RPUCArIGkxIHwgMDsKLSBTVEFDS1RPUCA9IFNUQUNLVE9QICsgNyA+
PiAzIDw8IDM7Ci0gcmV0dXJuIGkyIHwgMDsKLX0KLWZ1bmN0aW9uIHN0YWNrU2F2ZSgpIHsKLSBy
ZXR1cm4gU1RBQ0tUT1AgfCAwOwotfQotZnVuY3Rpb24gc3RhY2tSZXN0b3JlKGkxKSB7Ci0gaTEg
PSBpMSB8IDA7Ci0gU1RBQ0tUT1AgPSBpMTsKLX0KLWZ1bmN0aW9uIHNldFRocmV3KGkxLCBpMikg
ewotIGkxID0gaTEgfCAwOwotIGkyID0gaTIgfCAwOwotIGlmICgoX19USFJFV19fIHwgMCkgPT0g
MCkgewotICBfX1RIUkVXX18gPSBpMTsKLSAgdGhyZXdWYWx1ZSA9IGkyOwotIH0KLX0KLWZ1bmN0
aW9uIGNvcHlUZW1wRmxvYXQoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSBIRUFQOFt0ZW1wRG91Ymxl
UHRyXSA9IEhFQVA4W2kxXTsKLSBIRUFQOFt0ZW1wRG91YmxlUHRyICsgMSB8IDBdID0gSEVBUDhb
aTEgKyAxIHwgMF07Ci0gSEVBUDhbdGVtcERvdWJsZVB0ciArIDIgfCAwXSA9IEhFQVA4W2kxICsg
MiB8IDBdOwotIEhFQVA4W3RlbXBEb3VibGVQdHIgKyAzIHwgMF0gPSBIRUFQOFtpMSArIDMgfCAw
XTsKLX0KLWZ1bmN0aW9uIGNvcHlUZW1wRG91YmxlKGkxKSB7Ci0gaTEgPSBpMSB8IDA7Ci0gSEVB
UDhbdGVtcERvdWJsZVB0cl0gPSBIRUFQOFtpMV07Ci0gSEVBUDhbdGVtcERvdWJsZVB0ciArIDEg
fCAwXSA9IEhFQVA4W2kxICsgMSB8IDBdOwotIEhFQVA4W3RlbXBEb3VibGVQdHIgKyAyIHwgMF0g
PSBIRUFQOFtpMSArIDIgfCAwXTsKLSBIRUFQOFt0ZW1wRG91YmxlUHRyICsgMyB8IDBdID0gSEVB
UDhbaTEgKyAzIHwgMF07Ci0gSEVBUDhbdGVtcERvdWJsZVB0ciArIDQgfCAwXSA9IEhFQVA4W2kx
ICsgNCB8IDBdOwotIEhFQVA4W3RlbXBEb3VibGVQdHIgKyA1IHwgMF0gPSBIRUFQOFtpMSArIDUg
fCAwXTsKLSBIRUFQOFt0ZW1wRG91YmxlUHRyICsgNiB8IDBdID0gSEVBUDhbaTEgKyA2IHwgMF07
Ci0gSEVBUDhbdGVtcERvdWJsZVB0ciArIDcgfCAwXSA9IEhFQVA4W2kxICsgNyB8IDBdOwotfQot
ZnVuY3Rpb24gc2V0VGVtcFJldDAoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB0ZW1wUmV0MCA9IGkx
OwotfQotZnVuY3Rpb24gc2V0VGVtcFJldDEoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB0ZW1wUmV0
MSA9IGkxOwotfQotZnVuY3Rpb24gc2V0VGVtcFJldDIoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB0
ZW1wUmV0MiA9IGkxOwotfQotZnVuY3Rpb24gc2V0VGVtcFJldDMoaTEpIHsKLSBpMSA9IGkxIHwg
MDsKLSB0ZW1wUmV0MyA9IGkxOwotfQotZnVuY3Rpb24gc2V0VGVtcFJldDQoaTEpIHsKLSBpMSA9
IGkxIHwgMDsKLSB0ZW1wUmV0NCA9IGkxOwotfQotZnVuY3Rpb24gc2V0VGVtcFJldDUoaTEpIHsK
LSBpMSA9IGkxIHwgMDsKLSB0ZW1wUmV0NSA9IGkxOwotfQotZnVuY3Rpb24gc2V0VGVtcFJldDYo
aTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB0ZW1wUmV0NiA9IGkxOwotfQotZnVuY3Rpb24gc2V0VGVt
cFJldDcoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB0ZW1wUmV0NyA9IGkxOwotfQotZnVuY3Rpb24g
c2V0VGVtcFJldDgoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB0ZW1wUmV0OCA9IGkxOwotfQotZnVu
Y3Rpb24gc2V0VGVtcFJldDkoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSB0ZW1wUmV0OSA9IGkxOwot
fQotZnVuY3Rpb24gcnVuUG9zdFNldHMoKSB7Ci19Ci1mdW5jdGlvbiBfbWFpbihpMSwgaTIpIHsK
LSBpMSA9IGkxIHwgMDsKLSBpMiA9IGkyIHwgMDsKLSB2YXIgaTMgPSAwLCBpNCA9IDAsIGk1ID0g
MCwgaTYgPSAwLCBpNyA9IDAsIGk4ID0gMCwgaTkgPSAwLCBpMTAgPSAwLCBpMTEgPSAwOwotIGkz
ID0gU1RBQ0tUT1A7Ci0gZG8gewotICBpZiAoKGkxIHwgMCkgPiAxKSB7Ci0gICBpNCA9IEhFQVA4
W0hFQVAzMltpMiArIDQgPj4gMl0gfCAwXSB8IDA7Ci0gICBpZiAoKGk0IHwgMCkgPT0gNTApIHsK
LSAgICBpNSA9IDQwMDsKLSAgICBicmVhazsKLSAgIH0gZWxzZSBpZiAoKGk0IHwgMCkgPT0gNTEp
IHsKLSAgICBpNiA9IDQ7Ci0gICAgYnJlYWs7Ci0gICB9IGVsc2UgaWYgKChpNCB8IDApID09IDUy
KSB7Ci0gICAgaTUgPSA0ZTM7Ci0gICAgYnJlYWs7Ci0gICB9IGVsc2UgaWYgKChpNCB8IDApID09
IDUzKSB7Ci0gICAgaTUgPSA4ZTM7Ci0gICAgYnJlYWs7Ci0gICB9IGVsc2UgaWYgKChpNCB8IDAp
ID09IDQ5KSB7Ci0gICAgaTUgPSA1NTsKLSAgICBicmVhazsKLSAgIH0gZWxzZSBpZiAoKGk0IHwg
MCkgPT0gNDgpIHsKLSAgICBpNyA9IDA7Ci0gICAgU1RBQ0tUT1AgPSBpMzsKLSAgICByZXR1cm4g
aTcgfCAwOwotICAgfSBlbHNlIHsKLSAgICBfcHJpbnRmKDI0LCAoaTggPSBTVEFDS1RPUCwgU1RB
Q0tUT1AgPSBTVEFDS1RPUCArIDggfCAwLCBIRUFQMzJbaTggPj4gMl0gPSBpNCAtIDQ4LCBpOCkg
fCAwKSB8IDA7Ci0gICAgU1RBQ0tUT1AgPSBpODsKLSAgICBpNyA9IC0xOwotICAgIFNUQUNLVE9Q
ID0gaTM7Ci0gICAgcmV0dXJuIGk3IHwgMDsKLSAgIH0KLSAgfSBlbHNlIHsKLSAgIGk2ID0gNDsK
LSAgfQotIH0gd2hpbGUgKDApOwotIGlmICgoaTYgfCAwKSA9PSA0KSB7Ci0gIGk1ID0gODAwOwot
IH0KLSBpNiA9IF9tYWxsb2MoMTA0ODU3NikgfCAwOwotIGkyID0gMDsKLSBpMSA9IDA7Ci0gZG8g
ewotICBpNCA9IDA7Ci0gIHdoaWxlICgxKSB7Ci0gICBIRUFQOFtpNiArIGk0IHwgMF0gPSBpNCAr
IGkyICYgMjU1OwotICAgaTkgPSBpNCArIDEgfCAwOwotICAgaWYgKChpOSB8IDApIDwgMTA0ODU3
NikgewotICAgIGk0ID0gaTk7Ci0gICB9IGVsc2UgewotICAgIGkxMCA9IGkyOwotICAgIGkxMSA9
IDA7Ci0gICAgYnJlYWs7Ci0gICB9Ci0gIH0KLSAgZG8gewotICAgaTEwID0gKEhFQVA4W2k2ICsg
aTExIHwgMF0gJiAxKSArIGkxMCB8IDA7Ci0gICBpMTEgPSBpMTEgKyAxIHwgMDsKLSAgfSB3aGls
ZSAoKGkxMSB8IDApIDwgMTA0ODU3Nik7Ci0gIGkyID0gKGkxMCB8IDApICUgMWUzIHwgMDsKLSAg
aTEgPSBpMSArIDEgfCAwOwotIH0gd2hpbGUgKChpMSB8IDApIDwgKGk1IHwgMCkpOwotIF9wcmlu
dGYoOCwgKGk4ID0gU1RBQ0tUT1AsIFNUQUNLVE9QID0gU1RBQ0tUT1AgKyA4IHwgMCwgSEVBUDMy
W2k4ID4+IDJdID0gaTIsIGk4KSB8IDApIHwgMDsKLSBTVEFDS1RPUCA9IGk4OwotIGk3ID0gMDsK
LSBTVEFDS1RPUCA9IGkzOwotIHJldHVybiBpNyB8IDA7Ci19Ci1mdW5jdGlvbiBfbWFsbG9jKGkx
KSB7Ci0gaTEgPSBpMSB8IDA7Ci0gdmFyIGkyID0gMCwgaTMgPSAwLCBpNCA9IDAsIGk1ID0gMCwg
aTYgPSAwLCBpNyA9IDAsIGk4ID0gMCwgaTkgPSAwLCBpMTAgPSAwLCBpMTEgPSAwLCBpMTIgPSAw
LCBpMTMgPSAwLCBpMTQgPSAwLCBpMTUgPSAwLCBpMTYgPSAwLCBpMTcgPSAwLCBpMTggPSAwLCBp
MTkgPSAwLCBpMjAgPSAwLCBpMjEgPSAwLCBpMjIgPSAwLCBpMjMgPSAwLCBpMjQgPSAwLCBpMjUg
PSAwLCBpMjYgPSAwLCBpMjcgPSAwLCBpMjggPSAwLCBpMjkgPSAwLCBpMzAgPSAwLCBpMzEgPSAw
LCBpMzIgPSAwLCBpMzMgPSAwLCBpMzQgPSAwLCBpMzUgPSAwLCBpMzYgPSAwLCBpMzcgPSAwLCBp
MzggPSAwLCBpMzkgPSAwLCBpNDAgPSAwLCBpNDEgPSAwLCBpNDIgPSAwLCBpNDMgPSAwLCBpNDQg
PSAwLCBpNDUgPSAwLCBpNDYgPSAwLCBpNDcgPSAwLCBpNDggPSAwLCBpNDkgPSAwLCBpNTAgPSAw
LCBpNTEgPSAwLCBpNTIgPSAwLCBpNTMgPSAwLCBpNTQgPSAwLCBpNTUgPSAwLCBpNTYgPSAwLCBp
NTcgPSAwLCBpNTggPSAwLCBpNTkgPSAwLCBpNjAgPSAwLCBpNjEgPSAwLCBpNjIgPSAwLCBpNjMg
PSAwLCBpNjQgPSAwLCBpNjUgPSAwLCBpNjYgPSAwLCBpNjcgPSAwLCBpNjggPSAwLCBpNjkgPSAw
LCBpNzAgPSAwLCBpNzEgPSAwLCBpNzIgPSAwLCBpNzMgPSAwLCBpNzQgPSAwLCBpNzUgPSAwLCBp
NzYgPSAwLCBpNzcgPSAwLCBpNzggPSAwLCBpNzkgPSAwLCBpODAgPSAwLCBpODEgPSAwLCBpODIg
PSAwLCBpODMgPSAwLCBpODQgPSAwLCBpODUgPSAwLCBpODYgPSAwOwotIGRvIHsKLSAgaWYgKGkx
ID4+PiAwIDwgMjQ1KSB7Ci0gICBpZiAoaTEgPj4+IDAgPCAxMSkgewotICAgIGkyID0gMTY7Ci0g
ICB9IGVsc2UgewotICAgIGkyID0gaTEgKyAxMSAmIC04OwotICAgfQotICAgaTMgPSBpMiA+Pj4g
MzsKLSAgIGk0ID0gSEVBUDMyWzE2XSB8IDA7Ci0gICBpNSA9IGk0ID4+PiAoaTMgPj4+IDApOwot
ICAgaWYgKChpNSAmIDMgfCAwKSAhPSAwKSB7Ci0gICAgaTYgPSAoaTUgJiAxIF4gMSkgKyBpMyB8
IDA7Ci0gICAgaTcgPSBpNiA8PCAxOwotICAgIGk4ID0gMTA0ICsgKGk3IDw8IDIpIHwgMDsKLSAg
ICBpOSA9IDEwNCArIChpNyArIDIgPDwgMikgfCAwOwotICAgIGk3ID0gSEVBUDMyW2k5ID4+IDJd
IHwgMDsKLSAgICBpMTAgPSBpNyArIDggfCAwOwotICAgIGkxMSA9IEhFQVAzMltpMTAgPj4gMl0g
fCAwOwotICAgIGRvIHsKLSAgICAgaWYgKChpOCB8IDApID09IChpMTEgfCAwKSkgewotICAgICAg
SEVBUDMyWzE2XSA9IGk0ICYgfigxIDw8IGk2KTsKLSAgICAgfSBlbHNlIHsKLSAgICAgIGlmIChp
MTEgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7Ci0gICAgICAgX2Fib3J0KCk7Ci0g
ICAgICAgcmV0dXJuIDA7Ci0gICAgICB9Ci0gICAgICBpMTIgPSBpMTEgKyAxMiB8IDA7Ci0gICAg
ICBpZiAoKEhFQVAzMltpMTIgPj4gMl0gfCAwKSA9PSAoaTcgfCAwKSkgewotICAgICAgIEhFQVAz
MltpMTIgPj4gMl0gPSBpODsKLSAgICAgICBIRUFQMzJbaTkgPj4gMl0gPSBpMTE7Ci0gICAgICAg
YnJlYWs7Ci0gICAgICB9IGVsc2UgewotICAgICAgIF9hYm9ydCgpOwotICAgICAgIHJldHVybiAw
OwotICAgICAgfQotICAgICB9Ci0gICAgfSB3aGlsZSAoMCk7Ci0gICAgaTExID0gaTYgPDwgMzsK
LSAgICBIRUFQMzJbaTcgKyA0ID4+IDJdID0gaTExIHwgMzsKLSAgICBpOSA9IGk3ICsgKGkxMSB8
IDQpIHwgMDsKLSAgICBIRUFQMzJbaTkgPj4gMl0gPSBIRUFQMzJbaTkgPj4gMl0gfCAxOwotICAg
IGkxMyA9IGkxMDsKLSAgICByZXR1cm4gaTEzIHwgMDsKLSAgIH0KLSAgIGlmIChpMiA+Pj4gMCA8
PSAoSEVBUDMyWzE4XSB8IDApID4+PiAwKSB7Ci0gICAgaTE0ID0gaTI7Ci0gICAgYnJlYWs7Ci0g
ICB9Ci0gICBpZiAoKGk1IHwgMCkgIT0gMCkgewotICAgIGk5ID0gMiA8PCBpMzsKLSAgICBpMTEg
PSBpNSA8PCBpMyAmIChpOSB8IC1pOSk7Ci0gICAgaTkgPSAoaTExICYgLWkxMSkgLSAxIHwgMDsK
LSAgICBpMTEgPSBpOSA+Pj4gMTIgJiAxNjsKLSAgICBpOCA9IGk5ID4+PiAoaTExID4+PiAwKTsK
LSAgICBpOSA9IGk4ID4+PiA1ICYgODsKLSAgICBpMTIgPSBpOCA+Pj4gKGk5ID4+PiAwKTsKLSAg
ICBpOCA9IGkxMiA+Pj4gMiAmIDQ7Ci0gICAgaTE1ID0gaTEyID4+PiAoaTggPj4+IDApOwotICAg
IGkxMiA9IGkxNSA+Pj4gMSAmIDI7Ci0gICAgaTE2ID0gaTE1ID4+PiAoaTEyID4+PiAwKTsKLSAg
ICBpMTUgPSBpMTYgPj4+IDEgJiAxOwotICAgIGkxNyA9IChpOSB8IGkxMSB8IGk4IHwgaTEyIHwg
aTE1KSArIChpMTYgPj4+IChpMTUgPj4+IDApKSB8IDA7Ci0gICAgaTE1ID0gaTE3IDw8IDE7Ci0g
ICAgaTE2ID0gMTA0ICsgKGkxNSA8PCAyKSB8IDA7Ci0gICAgaTEyID0gMTA0ICsgKGkxNSArIDIg
PDwgMikgfCAwOwotICAgIGkxNSA9IEhFQVAzMltpMTIgPj4gMl0gfCAwOwotICAgIGk4ID0gaTE1
ICsgOCB8IDA7Ci0gICAgaTExID0gSEVBUDMyW2k4ID4+IDJdIHwgMDsKLSAgICBkbyB7Ci0gICAg
IGlmICgoaTE2IHwgMCkgPT0gKGkxMSB8IDApKSB7Ci0gICAgICBIRUFQMzJbMTZdID0gaTQgJiB+
KDEgPDwgaTE3KTsKLSAgICAgfSBlbHNlIHsKLSAgICAgIGlmIChpMTEgPj4+IDAgPCAoSEVBUDMy
WzIwXSB8IDApID4+PiAwKSB7Ci0gICAgICAgX2Fib3J0KCk7Ci0gICAgICAgcmV0dXJuIDA7Ci0g
ICAgICB9Ci0gICAgICBpOSA9IGkxMSArIDEyIHwgMDsKLSAgICAgIGlmICgoSEVBUDMyW2k5ID4+
IDJdIHwgMCkgPT0gKGkxNSB8IDApKSB7Ci0gICAgICAgSEVBUDMyW2k5ID4+IDJdID0gaTE2Owot
ICAgICAgIEhFQVAzMltpMTIgPj4gMl0gPSBpMTE7Ci0gICAgICAgYnJlYWs7Ci0gICAgICB9IGVs
c2UgewotICAgICAgIF9hYm9ydCgpOwotICAgICAgIHJldHVybiAwOwotICAgICAgfQotICAgICB9
Ci0gICAgfSB3aGlsZSAoMCk7Ci0gICAgaTExID0gaTE3IDw8IDM7Ci0gICAgaTEyID0gaTExIC0g
aTIgfCAwOwotICAgIEhFQVAzMltpMTUgKyA0ID4+IDJdID0gaTIgfCAzOwotICAgIGkxNiA9IGkx
NTsKLSAgICBpNCA9IGkxNiArIGkyIHwgMDsKLSAgICBIRUFQMzJbaTE2ICsgKGkyIHwgNCkgPj4g
Ml0gPSBpMTIgfCAxOwotICAgIEhFQVAzMltpMTYgKyBpMTEgPj4gMl0gPSBpMTI7Ci0gICAgaTEx
ID0gSEVBUDMyWzE4XSB8IDA7Ci0gICAgaWYgKChpMTEgfCAwKSAhPSAwKSB7Ci0gICAgIGkxNiA9
IEhFQVAzMlsyMV0gfCAwOwotICAgICBpMyA9IGkxMSA+Pj4gMzsKLSAgICAgaTExID0gaTMgPDwg
MTsKLSAgICAgaTUgPSAxMDQgKyAoaTExIDw8IDIpIHwgMDsKLSAgICAgaTEwID0gSEVBUDMyWzE2
XSB8IDA7Ci0gICAgIGk3ID0gMSA8PCBpMzsKLSAgICAgZG8gewotICAgICAgaWYgKChpMTAgJiBp
NyB8IDApID09IDApIHsKLSAgICAgICBIRUFQMzJbMTZdID0gaTEwIHwgaTc7Ci0gICAgICAgaTE4
ID0gaTU7Ci0gICAgICAgaTE5ID0gMTA0ICsgKGkxMSArIDIgPDwgMikgfCAwOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICBpMyA9IDEwNCArIChpMTEgKyAyIDw8IDIpIHwgMDsKLSAgICAgICBpNiA9
IEhFQVAzMltpMyA+PiAyXSB8IDA7Ci0gICAgICAgaWYgKGk2ID4+PiAwID49IChIRUFQMzJbMjBd
IHwgMCkgPj4+IDApIHsKLSAgICAgICAgaTE4ID0gaTY7Ci0gICAgICAgIGkxOSA9IGkzOwotICAg
ICAgICBicmVhazsKLSAgICAgICB9Ci0gICAgICAgX2Fib3J0KCk7Ci0gICAgICAgcmV0dXJuIDA7
Ci0gICAgICB9Ci0gICAgIH0gd2hpbGUgKDApOwotICAgICBIRUFQMzJbaTE5ID4+IDJdID0gaTE2
OwotICAgICBIRUFQMzJbaTE4ICsgMTIgPj4gMl0gPSBpMTY7Ci0gICAgIEhFQVAzMltpMTYgKyA4
ID4+IDJdID0gaTE4OwotICAgICBIRUFQMzJbaTE2ICsgMTIgPj4gMl0gPSBpNTsKLSAgICB9Ci0g
ICAgSEVBUDMyWzE4XSA9IGkxMjsKLSAgICBIRUFQMzJbMjFdID0gaTQ7Ci0gICAgaTEzID0gaTg7
Ci0gICAgcmV0dXJuIGkxMyB8IDA7Ci0gICB9Ci0gICBpMTEgPSBIRUFQMzJbMTddIHwgMDsKLSAg
IGlmICgoaTExIHwgMCkgPT0gMCkgewotICAgIGkxNCA9IGkyOwotICAgIGJyZWFrOwotICAgfQot
ICAgaTcgPSAoaTExICYgLWkxMSkgLSAxIHwgMDsKLSAgIGkxMSA9IGk3ID4+PiAxMiAmIDE2Owot
ICAgaTEwID0gaTcgPj4+IChpMTEgPj4+IDApOwotICAgaTcgPSBpMTAgPj4+IDUgJiA4OwotICAg
aTE1ID0gaTEwID4+PiAoaTcgPj4+IDApOwotICAgaTEwID0gaTE1ID4+PiAyICYgNDsKLSAgIGkx
NyA9IGkxNSA+Pj4gKGkxMCA+Pj4gMCk7Ci0gICBpMTUgPSBpMTcgPj4+IDEgJiAyOwotICAgaTMg
PSBpMTcgPj4+IChpMTUgPj4+IDApOwotICAgaTE3ID0gaTMgPj4+IDEgJiAxOwotICAgaTYgPSBI
RUFQMzJbMzY4ICsgKChpNyB8IGkxMSB8IGkxMCB8IGkxNSB8IGkxNykgKyAoaTMgPj4+IChpMTcg
Pj4+IDApKSA8PCAyKSA+PiAyXSB8IDA7Ci0gICBpMTcgPSBpNjsKLSAgIGkzID0gaTY7Ci0gICBp
MTUgPSAoSEVBUDMyW2k2ICsgNCA+PiAyXSAmIC04KSAtIGkyIHwgMDsKLSAgIHdoaWxlICgxKSB7
Ci0gICAgaTYgPSBIRUFQMzJbaTE3ICsgMTYgPj4gMl0gfCAwOwotICAgIGlmICgoaTYgfCAwKSA9
PSAwKSB7Ci0gICAgIGkxMCA9IEhFQVAzMltpMTcgKyAyMCA+PiAyXSB8IDA7Ci0gICAgIGlmICgo
aTEwIHwgMCkgPT0gMCkgewotICAgICAgYnJlYWs7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICBpMjAg
PSBpMTA7Ci0gICAgIH0KLSAgICB9IGVsc2UgewotICAgICBpMjAgPSBpNjsKLSAgICB9Ci0gICAg
aTYgPSAoSEVBUDMyW2kyMCArIDQgPj4gMl0gJiAtOCkgLSBpMiB8IDA7Ci0gICAgaTEwID0gaTYg
Pj4+IDAgPCBpMTUgPj4+IDA7Ci0gICAgaTE3ID0gaTIwOwotICAgIGkzID0gaTEwID8gaTIwIDog
aTM7Ci0gICAgaTE1ID0gaTEwID8gaTYgOiBpMTU7Ci0gICB9Ci0gICBpMTcgPSBpMzsKLSAgIGk4
ID0gSEVBUDMyWzIwXSB8IDA7Ci0gICBpZiAoaTE3ID4+PiAwIDwgaTggPj4+IDApIHsKLSAgICBf
YWJvcnQoKTsKLSAgICByZXR1cm4gMDsKLSAgIH0KLSAgIGk0ID0gaTE3ICsgaTIgfCAwOwotICAg
aTEyID0gaTQ7Ci0gICBpZiAoaTE3ID4+PiAwID49IGk0ID4+PiAwKSB7Ci0gICAgX2Fib3J0KCk7
Ci0gICAgcmV0dXJuIDA7Ci0gICB9Ci0gICBpNCA9IEhFQVAzMltpMyArIDI0ID4+IDJdIHwgMDsK
LSAgIGk1ID0gSEVBUDMyW2kzICsgMTIgPj4gMl0gfCAwOwotICAgZG8gewotICAgIGlmICgoaTUg
fCAwKSA9PSAoaTMgfCAwKSkgewotICAgICBpMTYgPSBpMyArIDIwIHwgMDsKLSAgICAgaTYgPSBI
RUFQMzJbaTE2ID4+IDJdIHwgMDsKLSAgICAgaWYgKChpNiB8IDApID09IDApIHsKLSAgICAgIGkx
MCA9IGkzICsgMTYgfCAwOwotICAgICAgaTExID0gSEVBUDMyW2kxMCA+PiAyXSB8IDA7Ci0gICAg
ICBpZiAoKGkxMSB8IDApID09IDApIHsKLSAgICAgICBpMjEgPSAwOwotICAgICAgIGJyZWFrOwot
ICAgICAgfSBlbHNlIHsKLSAgICAgICBpMjIgPSBpMTE7Ci0gICAgICAgaTIzID0gaTEwOwotICAg
ICAgfQotICAgICB9IGVsc2UgewotICAgICAgaTIyID0gaTY7Ci0gICAgICBpMjMgPSBpMTY7Ci0g
ICAgIH0KLSAgICAgd2hpbGUgKDEpIHsKLSAgICAgIGkxNiA9IGkyMiArIDIwIHwgMDsKLSAgICAg
IGk2ID0gSEVBUDMyW2kxNiA+PiAyXSB8IDA7Ci0gICAgICBpZiAoKGk2IHwgMCkgIT0gMCkgewot
ICAgICAgIGkyMiA9IGk2OwotICAgICAgIGkyMyA9IGkxNjsKLSAgICAgICBjb250aW51ZTsKLSAg
ICAgIH0KLSAgICAgIGkxNiA9IGkyMiArIDE2IHwgMDsKLSAgICAgIGk2ID0gSEVBUDMyW2kxNiA+
PiAyXSB8IDA7Ci0gICAgICBpZiAoKGk2IHwgMCkgPT0gMCkgewotICAgICAgIGJyZWFrOwotICAg
ICAgfSBlbHNlIHsKLSAgICAgICBpMjIgPSBpNjsKLSAgICAgICBpMjMgPSBpMTY7Ci0gICAgICB9
Ci0gICAgIH0KLSAgICAgaWYgKGkyMyA+Pj4gMCA8IGk4ID4+PiAwKSB7Ci0gICAgICBfYWJvcnQo
KTsKLSAgICAgIHJldHVybiAwOwotICAgICB9IGVsc2UgewotICAgICAgSEVBUDMyW2kyMyA+PiAy
XSA9IDA7Ci0gICAgICBpMjEgPSBpMjI7Ci0gICAgICBicmVhazsKLSAgICAgfQotICAgIH0gZWxz
ZSB7Ci0gICAgIGkxNiA9IEhFQVAzMltpMyArIDggPj4gMl0gfCAwOwotICAgICBpZiAoaTE2ID4+
PiAwIDwgaTggPj4+IDApIHsKLSAgICAgIF9hYm9ydCgpOwotICAgICAgcmV0dXJuIDA7Ci0gICAg
IH0KLSAgICAgaTYgPSBpMTYgKyAxMiB8IDA7Ci0gICAgIGlmICgoSEVBUDMyW2k2ID4+IDJdIHwg
MCkgIT0gKGkzIHwgMCkpIHsKLSAgICAgIF9hYm9ydCgpOwotICAgICAgcmV0dXJuIDA7Ci0gICAg
IH0KLSAgICAgaTEwID0gaTUgKyA4IHwgMDsKLSAgICAgaWYgKChIRUFQMzJbaTEwID4+IDJdIHwg
MCkgPT0gKGkzIHwgMCkpIHsKLSAgICAgIEhFQVAzMltpNiA+PiAyXSA9IGk1OwotICAgICAgSEVB
UDMyW2kxMCA+PiAyXSA9IGkxNjsKLSAgICAgIGkyMSA9IGk1OwotICAgICAgYnJlYWs7Ci0gICAg
IH0gZWxzZSB7Ci0gICAgICBfYWJvcnQoKTsKLSAgICAgIHJldHVybiAwOwotICAgICB9Ci0gICAg
fQotICAgfSB3aGlsZSAoMCk7Ci0gICBMMTAwIDogZG8gewotICAgIGlmICgoaTQgfCAwKSAhPSAw
KSB7Ci0gICAgIGk1ID0gaTMgKyAyOCB8IDA7Ci0gICAgIGk4ID0gMzY4ICsgKEhFQVAzMltpNSA+
PiAyXSA8PCAyKSB8IDA7Ci0gICAgIGRvIHsKLSAgICAgIGlmICgoaTMgfCAwKSA9PSAoSEVBUDMy
W2k4ID4+IDJdIHwgMCkpIHsKLSAgICAgICBIRUFQMzJbaTggPj4gMl0gPSBpMjE7Ci0gICAgICAg
aWYgKChpMjEgfCAwKSAhPSAwKSB7Ci0gICAgICAgIGJyZWFrOwotICAgICAgIH0KLSAgICAgICBI
RUFQMzJbMTddID0gSEVBUDMyWzE3XSAmIH4oMSA8PCBIRUFQMzJbaTUgPj4gMl0pOwotICAgICAg
IGJyZWFrIEwxMDA7Ci0gICAgICB9IGVsc2UgewotICAgICAgIGlmIChpNCA+Pj4gMCA8IChIRUFQ
MzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAgIHJldHVybiAw
OwotICAgICAgIH0KLSAgICAgICBpMTYgPSBpNCArIDE2IHwgMDsKLSAgICAgICBpZiAoKEhFQVAz
MltpMTYgPj4gMl0gfCAwKSA9PSAoaTMgfCAwKSkgewotICAgICAgICBIRUFQMzJbaTE2ID4+IDJd
ID0gaTIxOwotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgIEhFQVAzMltpNCArIDIwID4+IDJdID0g
aTIxOwotICAgICAgIH0KLSAgICAgICBpZiAoKGkyMSB8IDApID09IDApIHsKLSAgICAgICAgYnJl
YWsgTDEwMDsKLSAgICAgICB9Ci0gICAgICB9Ci0gICAgIH0gd2hpbGUgKDApOwotICAgICBpZiAo
aTIxID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgewotICAgICAgX2Fib3J0KCk7Ci0g
ICAgICByZXR1cm4gMDsKLSAgICAgfQotICAgICBIRUFQMzJbaTIxICsgMjQgPj4gMl0gPSBpNDsK
LSAgICAgaTUgPSBIRUFQMzJbaTMgKyAxNiA+PiAyXSB8IDA7Ci0gICAgIGRvIHsKLSAgICAgIGlm
ICgoaTUgfCAwKSAhPSAwKSB7Ci0gICAgICAgaWYgKGk1ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAw
KSA+Pj4gMCkgewotICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg
fSBlbHNlIHsKLSAgICAgICAgSEVBUDMyW2kyMSArIDE2ID4+IDJdID0gaTU7Ci0gICAgICAgIEhF
QVAzMltpNSArIDI0ID4+IDJdID0gaTIxOwotICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gICAg
ICB9Ci0gICAgIH0gd2hpbGUgKDApOwotICAgICBpNSA9IEhFQVAzMltpMyArIDIwID4+IDJdIHwg
MDsKLSAgICAgaWYgKChpNSB8IDApID09IDApIHsKLSAgICAgIGJyZWFrOwotICAgICB9Ci0gICAg
IGlmIChpNSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgIF9hYm9ydCgp
OwotICAgICAgcmV0dXJuIDA7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICBIRUFQMzJbaTIxICsgMjAg
Pj4gMl0gPSBpNTsKLSAgICAgIEhFQVAzMltpNSArIDI0ID4+IDJdID0gaTIxOwotICAgICAgYnJl
YWs7Ci0gICAgIH0KLSAgICB9Ci0gICB9IHdoaWxlICgwKTsKLSAgIGlmIChpMTUgPj4+IDAgPCAx
NikgewotICAgIGk0ID0gaTE1ICsgaTIgfCAwOwotICAgIEhFQVAzMltpMyArIDQgPj4gMl0gPSBp
NCB8IDM7Ci0gICAgaTUgPSBpMTcgKyAoaTQgKyA0KSB8IDA7Ci0gICAgSEVBUDMyW2k1ID4+IDJd
ID0gSEVBUDMyW2k1ID4+IDJdIHwgMTsKLSAgIH0gZWxzZSB7Ci0gICAgSEVBUDMyW2kzICsgNCA+
PiAyXSA9IGkyIHwgMzsKLSAgICBIRUFQMzJbaTE3ICsgKGkyIHwgNCkgPj4gMl0gPSBpMTUgfCAx
OwotICAgIEhFQVAzMltpMTcgKyAoaTE1ICsgaTIpID4+IDJdID0gaTE1OwotICAgIGk1ID0gSEVB
UDMyWzE4XSB8IDA7Ci0gICAgaWYgKChpNSB8IDApICE9IDApIHsKLSAgICAgaTQgPSBIRUFQMzJb
MjFdIHwgMDsKLSAgICAgaTggPSBpNSA+Pj4gMzsKLSAgICAgaTUgPSBpOCA8PCAxOwotICAgICBp
MTYgPSAxMDQgKyAoaTUgPDwgMikgfCAwOwotICAgICBpMTAgPSBIRUFQMzJbMTZdIHwgMDsKLSAg
ICAgaTYgPSAxIDw8IGk4OwotICAgICBkbyB7Ci0gICAgICBpZiAoKGkxMCAmIGk2IHwgMCkgPT0g
MCkgewotICAgICAgIEhFQVAzMlsxNl0gPSBpMTAgfCBpNjsKLSAgICAgICBpMjQgPSBpMTY7Ci0g
ICAgICAgaTI1ID0gMTA0ICsgKGk1ICsgMiA8PCAyKSB8IDA7Ci0gICAgICB9IGVsc2UgewotICAg
ICAgIGk4ID0gMTA0ICsgKGk1ICsgMiA8PCAyKSB8IDA7Ci0gICAgICAgaTExID0gSEVBUDMyW2k4
ID4+IDJdIHwgMDsKLSAgICAgICBpZiAoaTExID4+PiAwID49IChIRUFQMzJbMjBdIHwgMCkgPj4+
IDApIHsKLSAgICAgICAgaTI0ID0gaTExOwotICAgICAgICBpMjUgPSBpODsKLSAgICAgICAgYnJl
YWs7Ci0gICAgICAgfQotICAgICAgIF9hYm9ydCgpOwotICAgICAgIHJldHVybiAwOwotICAgICAg
fQotICAgICB9IHdoaWxlICgwKTsKLSAgICAgSEVBUDMyW2kyNSA+PiAyXSA9IGk0OwotICAgICBI
RUFQMzJbaTI0ICsgMTIgPj4gMl0gPSBpNDsKLSAgICAgSEVBUDMyW2k0ICsgOCA+PiAyXSA9IGky
NDsKLSAgICAgSEVBUDMyW2k0ICsgMTIgPj4gMl0gPSBpMTY7Ci0gICAgfQotICAgIEhFQVAzMlsx
OF0gPSBpMTU7Ci0gICAgSEVBUDMyWzIxXSA9IGkxMjsKLSAgIH0KLSAgIGk1ID0gaTMgKyA4IHwg
MDsKLSAgIGlmICgoaTUgfCAwKSA9PSAwKSB7Ci0gICAgaTE0ID0gaTI7Ci0gICAgYnJlYWs7Ci0g
ICB9IGVsc2UgewotICAgIGkxMyA9IGk1OwotICAgfQotICAgcmV0dXJuIGkxMyB8IDA7Ci0gIH0g
ZWxzZSB7Ci0gICBpZiAoaTEgPj4+IDAgPiA0Mjk0OTY3MjMxKSB7Ci0gICAgaTE0ID0gLTE7Ci0g
ICAgYnJlYWs7Ci0gICB9Ci0gICBpNSA9IGkxICsgMTEgfCAwOwotICAgaTYgPSBpNSAmIC04Owot
ICAgaTEwID0gSEVBUDMyWzE3XSB8IDA7Ci0gICBpZiAoKGkxMCB8IDApID09IDApIHsKLSAgICBp
MTQgPSBpNjsKLSAgICBicmVhazsKLSAgIH0KLSAgIGkxNyA9IC1pNiB8IDA7Ci0gICBpOCA9IGk1
ID4+PiA4OwotICAgZG8gewotICAgIGlmICgoaTggfCAwKSA9PSAwKSB7Ci0gICAgIGkyNiA9IDA7
Ci0gICAgfSBlbHNlIHsKLSAgICAgaWYgKGk2ID4+PiAwID4gMTY3NzcyMTUpIHsKLSAgICAgIGky
NiA9IDMxOwotICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgaTUgPSAoaTggKyAxMDQ4MzIwIHwg
MCkgPj4+IDE2ICYgODsKLSAgICAgaTExID0gaTggPDwgaTU7Ci0gICAgIGk3ID0gKGkxMSArIDUy
MDE5MiB8IDApID4+PiAxNiAmIDQ7Ci0gICAgIGk5ID0gaTExIDw8IGk3OwotICAgICBpMTEgPSAo
aTkgKyAyNDU3NjAgfCAwKSA+Pj4gMTYgJiAyOwotICAgICBpMjcgPSAxNCAtIChpNyB8IGk1IHwg
aTExKSArIChpOSA8PCBpMTEgPj4+IDE1KSB8IDA7Ci0gICAgIGkyNiA9IGk2ID4+PiAoKGkyNyAr
IDcgfCAwKSA+Pj4gMCkgJiAxIHwgaTI3IDw8IDE7Ci0gICAgfQotICAgfSB3aGlsZSAoMCk7Ci0g
ICBpOCA9IEhFQVAzMlszNjggKyAoaTI2IDw8IDIpID4+IDJdIHwgMDsKLSAgIEwxNDggOiBkbyB7
Ci0gICAgaWYgKChpOCB8IDApID09IDApIHsKLSAgICAgaTI4ID0gMDsKLSAgICAgaTI5ID0gaTE3
OwotICAgICBpMzAgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgIGlmICgoaTI2IHwgMCkgPT0gMzEp
IHsKLSAgICAgIGkzMSA9IDA7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICBpMzEgPSAyNSAtIChpMjYg
Pj4+IDEpIHwgMDsKLSAgICAgfQotICAgICBpMyA9IDA7Ci0gICAgIGkxMiA9IGkxNzsKLSAgICAg
aTE1ID0gaTg7Ci0gICAgIGkxNiA9IGk2IDw8IGkzMTsKLSAgICAgaTQgPSAwOwotICAgICB3aGls
ZSAoMSkgewotICAgICAgaTI3ID0gSEVBUDMyW2kxNSArIDQgPj4gMl0gJiAtODsKLSAgICAgIGkx
MSA9IGkyNyAtIGk2IHwgMDsKLSAgICAgIGlmIChpMTEgPj4+IDAgPCBpMTIgPj4+IDApIHsKLSAg
ICAgICBpZiAoKGkyNyB8IDApID09IChpNiB8IDApKSB7Ci0gICAgICAgIGkyOCA9IGkxNTsKLSAg
ICAgICAgaTI5ID0gaTExOwotICAgICAgICBpMzAgPSBpMTU7Ci0gICAgICAgIGJyZWFrIEwxNDg7
Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgaTMyID0gaTE1OwotICAgICAgICBpMzMgPSBpMTE7
Ci0gICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICBpMzIgPSBpMzsKLSAgICAgICBpMzMg
PSBpMTI7Ci0gICAgICB9Ci0gICAgICBpMTEgPSBIRUFQMzJbaTE1ICsgMjAgPj4gMl0gfCAwOwot
ICAgICAgaTI3ID0gSEVBUDMyW2kxNSArIDE2ICsgKGkxNiA+Pj4gMzEgPDwgMikgPj4gMl0gfCAw
OwotICAgICAgaTkgPSAoaTExIHwgMCkgPT0gMCB8IChpMTEgfCAwKSA9PSAoaTI3IHwgMCkgPyBp
NCA6IGkxMTsKLSAgICAgIGlmICgoaTI3IHwgMCkgPT0gMCkgewotICAgICAgIGkyOCA9IGkzMjsK
LSAgICAgICBpMjkgPSBpMzM7Ci0gICAgICAgaTMwID0gaTk7Ci0gICAgICAgYnJlYWs7Ci0gICAg
ICB9IGVsc2UgewotICAgICAgIGkzID0gaTMyOwotICAgICAgIGkxMiA9IGkzMzsKLSAgICAgICBp
MTUgPSBpMjc7Ci0gICAgICAgaTE2ID0gaTE2IDw8IDE7Ci0gICAgICAgaTQgPSBpOTsKLSAgICAg
IH0KLSAgICAgfQotICAgIH0KLSAgIH0gd2hpbGUgKDApOwotICAgaWYgKChpMzAgfCAwKSA9PSAw
ICYgKGkyOCB8IDApID09IDApIHsKLSAgICBpOCA9IDIgPDwgaTI2OwotICAgIGkxNyA9IChpOCB8
IC1pOCkgJiBpMTA7Ci0gICAgaWYgKChpMTcgfCAwKSA9PSAwKSB7Ci0gICAgIGkxNCA9IGk2Owot
ICAgICBicmVhazsKLSAgICB9Ci0gICAgaTggPSAoaTE3ICYgLWkxNykgLSAxIHwgMDsKLSAgICBp
MTcgPSBpOCA+Pj4gMTIgJiAxNjsKLSAgICBpNCA9IGk4ID4+PiAoaTE3ID4+PiAwKTsKLSAgICBp
OCA9IGk0ID4+PiA1ICYgODsKLSAgICBpMTYgPSBpNCA+Pj4gKGk4ID4+PiAwKTsKLSAgICBpNCA9
IGkxNiA+Pj4gMiAmIDQ7Ci0gICAgaTE1ID0gaTE2ID4+PiAoaTQgPj4+IDApOwotICAgIGkxNiA9
IGkxNSA+Pj4gMSAmIDI7Ci0gICAgaTEyID0gaTE1ID4+PiAoaTE2ID4+PiAwKTsKLSAgICBpMTUg
PSBpMTIgPj4+IDEgJiAxOwotICAgIGkzNCA9IEhFQVAzMlszNjggKyAoKGk4IHwgaTE3IHwgaTQg
fCBpMTYgfCBpMTUpICsgKGkxMiA+Pj4gKGkxNSA+Pj4gMCkpIDw8IDIpID4+IDJdIHwgMDsKLSAg
IH0gZWxzZSB7Ci0gICAgaTM0ID0gaTMwOwotICAgfQotICAgaWYgKChpMzQgfCAwKSA9PSAwKSB7
Ci0gICAgaTM1ID0gaTI5OwotICAgIGkzNiA9IGkyODsKLSAgIH0gZWxzZSB7Ci0gICAgaTE1ID0g
aTM0OwotICAgIGkxMiA9IGkyOTsKLSAgICBpMTYgPSBpMjg7Ci0gICAgd2hpbGUgKDEpIHsKLSAg
ICAgaTQgPSAoSEVBUDMyW2kxNSArIDQgPj4gMl0gJiAtOCkgLSBpNiB8IDA7Ci0gICAgIGkxNyA9
IGk0ID4+PiAwIDwgaTEyID4+PiAwOwotICAgICBpOCA9IGkxNyA/IGk0IDogaTEyOwotICAgICBp
NCA9IGkxNyA/IGkxNSA6IGkxNjsKLSAgICAgaTE3ID0gSEVBUDMyW2kxNSArIDE2ID4+IDJdIHwg
MDsKLSAgICAgaWYgKChpMTcgfCAwKSAhPSAwKSB7Ci0gICAgICBpMTUgPSBpMTc7Ci0gICAgICBp
MTIgPSBpODsKLSAgICAgIGkxNiA9IGk0OwotICAgICAgY29udGludWU7Ci0gICAgIH0KLSAgICAg
aTE3ID0gSEVBUDMyW2kxNSArIDIwID4+IDJdIHwgMDsKLSAgICAgaWYgKChpMTcgfCAwKSA9PSAw
KSB7Ci0gICAgICBpMzUgPSBpODsKLSAgICAgIGkzNiA9IGk0OwotICAgICAgYnJlYWs7Ci0gICAg
IH0gZWxzZSB7Ci0gICAgICBpMTUgPSBpMTc7Ci0gICAgICBpMTIgPSBpODsKLSAgICAgIGkxNiA9
IGk0OwotICAgICB9Ci0gICAgfQotICAgfQotICAgaWYgKChpMzYgfCAwKSA9PSAwKSB7Ci0gICAg
aTE0ID0gaTY7Ci0gICAgYnJlYWs7Ci0gICB9Ci0gICBpZiAoaTM1ID4+PiAwID49ICgoSEVBUDMy
WzE4XSB8IDApIC0gaTYgfCAwKSA+Pj4gMCkgewotICAgIGkxNCA9IGk2OwotICAgIGJyZWFrOwot
ICAgfQotICAgaTE2ID0gaTM2OwotICAgaTEyID0gSEVBUDMyWzIwXSB8IDA7Ci0gICBpZiAoaTE2
ID4+PiAwIDwgaTEyID4+PiAwKSB7Ci0gICAgX2Fib3J0KCk7Ci0gICAgcmV0dXJuIDA7Ci0gICB9
Ci0gICBpMTUgPSBpMTYgKyBpNiB8IDA7Ci0gICBpMTAgPSBpMTU7Ci0gICBpZiAoaTE2ID4+PiAw
ID49IGkxNSA+Pj4gMCkgewotICAgIF9hYm9ydCgpOwotICAgIHJldHVybiAwOwotICAgfQotICAg
aTQgPSBIRUFQMzJbaTM2ICsgMjQgPj4gMl0gfCAwOwotICAgaTggPSBIRUFQMzJbaTM2ICsgMTIg
Pj4gMl0gfCAwOwotICAgZG8gewotICAgIGlmICgoaTggfCAwKSA9PSAoaTM2IHwgMCkpIHsKLSAg
ICAgaTE3ID0gaTM2ICsgMjAgfCAwOwotICAgICBpMyA9IEhFQVAzMltpMTcgPj4gMl0gfCAwOwot
ICAgICBpZiAoKGkzIHwgMCkgPT0gMCkgewotICAgICAgaTkgPSBpMzYgKyAxNiB8IDA7Ci0gICAg
ICBpMjcgPSBIRUFQMzJbaTkgPj4gMl0gfCAwOwotICAgICAgaWYgKChpMjcgfCAwKSA9PSAwKSB7
Ci0gICAgICAgaTM3ID0gMDsKLSAgICAgICBicmVhazsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAg
aTM4ID0gaTI3OwotICAgICAgIGkzOSA9IGk5OwotICAgICAgfQotICAgICB9IGVsc2UgewotICAg
ICAgaTM4ID0gaTM7Ci0gICAgICBpMzkgPSBpMTc7Ci0gICAgIH0KLSAgICAgd2hpbGUgKDEpIHsK
LSAgICAgIGkxNyA9IGkzOCArIDIwIHwgMDsKLSAgICAgIGkzID0gSEVBUDMyW2kxNyA+PiAyXSB8
IDA7Ci0gICAgICBpZiAoKGkzIHwgMCkgIT0gMCkgewotICAgICAgIGkzOCA9IGkzOwotICAgICAg
IGkzOSA9IGkxNzsKLSAgICAgICBjb250aW51ZTsKLSAgICAgIH0KLSAgICAgIGkxNyA9IGkzOCAr
IDE2IHwgMDsKLSAgICAgIGkzID0gSEVBUDMyW2kxNyA+PiAyXSB8IDA7Ci0gICAgICBpZiAoKGkz
IHwgMCkgPT0gMCkgewotICAgICAgIGJyZWFrOwotICAgICAgfSBlbHNlIHsKLSAgICAgICBpMzgg
PSBpMzsKLSAgICAgICBpMzkgPSBpMTc7Ci0gICAgICB9Ci0gICAgIH0KLSAgICAgaWYgKGkzOSA+
Pj4gMCA8IGkxMiA+Pj4gMCkgewotICAgICAgX2Fib3J0KCk7Ci0gICAgICByZXR1cm4gMDsKLSAg
ICAgfSBlbHNlIHsKLSAgICAgIEhFQVAzMltpMzkgPj4gMl0gPSAwOwotICAgICAgaTM3ID0gaTM4
OwotICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICB9IGVsc2UgewotICAgICBpMTcgPSBIRUFQMzJb
aTM2ICsgOCA+PiAyXSB8IDA7Ci0gICAgIGlmIChpMTcgPj4+IDAgPCBpMTIgPj4+IDApIHsKLSAg
ICAgIF9hYm9ydCgpOwotICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAgICAgaTMgPSBpMTcgKyAx
MiB8IDA7Ci0gICAgIGlmICgoSEVBUDMyW2kzID4+IDJdIHwgMCkgIT0gKGkzNiB8IDApKSB7Ci0g
ICAgICBfYWJvcnQoKTsKLSAgICAgIHJldHVybiAwOwotICAgICB9Ci0gICAgIGk5ID0gaTggKyA4
IHwgMDsKLSAgICAgaWYgKChIRUFQMzJbaTkgPj4gMl0gfCAwKSA9PSAoaTM2IHwgMCkpIHsKLSAg
ICAgIEhFQVAzMltpMyA+PiAyXSA9IGk4OwotICAgICAgSEVBUDMyW2k5ID4+IDJdID0gaTE3Owot
ICAgICAgaTM3ID0gaTg7Ci0gICAgICBicmVhazsKLSAgICAgfSBlbHNlIHsKLSAgICAgIF9hYm9y
dCgpOwotICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAgICB9Ci0gICB9IHdoaWxlICgwKTsKLSAg
IEwxOTggOiBkbyB7Ci0gICAgaWYgKChpNCB8IDApICE9IDApIHsKLSAgICAgaTggPSBpMzYgKyAy
OCB8IDA7Ci0gICAgIGkxMiA9IDM2OCArIChIRUFQMzJbaTggPj4gMl0gPDwgMikgfCAwOwotICAg
ICBkbyB7Ci0gICAgICBpZiAoKGkzNiB8IDApID09IChIRUFQMzJbaTEyID4+IDJdIHwgMCkpIHsK
LSAgICAgICBIRUFQMzJbaTEyID4+IDJdID0gaTM3OwotICAgICAgIGlmICgoaTM3IHwgMCkgIT0g
MCkgewotICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gICAgICAgSEVBUDMyWzE3XSA9IEhFQVAz
MlsxN10gJiB+KDEgPDwgSEVBUDMyW2k4ID4+IDJdKTsKLSAgICAgICBicmVhayBMMTk4OwotICAg
ICAgfSBlbHNlIHsKLSAgICAgICBpZiAoaTQgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAw
KSB7Ci0gICAgICAgIF9hYm9ydCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICAgICB9Ci0gICAg
ICAgaTE3ID0gaTQgKyAxNiB8IDA7Ci0gICAgICAgaWYgKChIRUFQMzJbaTE3ID4+IDJdIHwgMCkg
PT0gKGkzNiB8IDApKSB7Ci0gICAgICAgIEhFQVAzMltpMTcgPj4gMl0gPSBpMzc7Ci0gICAgICAg
fSBlbHNlIHsKLSAgICAgICAgSEVBUDMyW2k0ICsgMjAgPj4gMl0gPSBpMzc7Ci0gICAgICAgfQot
ICAgICAgIGlmICgoaTM3IHwgMCkgPT0gMCkgewotICAgICAgICBicmVhayBMMTk4OwotICAgICAg
IH0KLSAgICAgIH0KLSAgICAgfSB3aGlsZSAoMCk7Ci0gICAgIGlmIChpMzcgPj4+IDAgPCAoSEVB
UDMyWzIwXSB8IDApID4+PiAwKSB7Ci0gICAgICBfYWJvcnQoKTsKLSAgICAgIHJldHVybiAwOwot
ICAgICB9Ci0gICAgIEhFQVAzMltpMzcgKyAyNCA+PiAyXSA9IGk0OwotICAgICBpOCA9IEhFQVAz
MltpMzYgKyAxNiA+PiAyXSB8IDA7Ci0gICAgIGRvIHsKLSAgICAgIGlmICgoaTggfCAwKSAhPSAw
KSB7Ci0gICAgICAgaWYgKGk4ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgewotICAg
ICAgICBfYWJvcnQoKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgSEVBUDMyW2kzNyArIDE2ID4+IDJdID0gaTg7Ci0gICAgICAgIEhFQVAzMltpOCArIDI0ID4+
IDJdID0gaTM3OwotICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gICAgICB9Ci0gICAgIH0gd2hp
bGUgKDApOwotICAgICBpOCA9IEhFQVAzMltpMzYgKyAyMCA+PiAyXSB8IDA7Ci0gICAgIGlmICgo
aTggfCAwKSA9PSAwKSB7Ci0gICAgICBicmVhazsKLSAgICAgfQotICAgICBpZiAoaTggPj4+IDAg
PCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7Ci0gICAgICBfYWJvcnQoKTsKLSAgICAgIHJldHVy
biAwOwotICAgICB9IGVsc2UgewotICAgICAgSEVBUDMyW2kzNyArIDIwID4+IDJdID0gaTg7Ci0g
ICAgICBIRUFQMzJbaTggKyAyNCA+PiAyXSA9IGkzNzsKLSAgICAgIGJyZWFrOwotICAgICB9Ci0g
ICAgfQotICAgfSB3aGlsZSAoMCk7Ci0gICBkbyB7Ci0gICAgaWYgKGkzNSA+Pj4gMCA8IDE2KSB7
Ci0gICAgIGk0ID0gaTM1ICsgaTYgfCAwOwotICAgICBIRUFQMzJbaTM2ICsgNCA+PiAyXSA9IGk0
IHwgMzsKLSAgICAgaTggPSBpMTYgKyAoaTQgKyA0KSB8IDA7Ci0gICAgIEhFQVAzMltpOCA+PiAy
XSA9IEhFQVAzMltpOCA+PiAyXSB8IDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgSEVBUDMyW2kzNiAr
IDQgPj4gMl0gPSBpNiB8IDM7Ci0gICAgIEhFQVAzMltpMTYgKyAoaTYgfCA0KSA+PiAyXSA9IGkz
NSB8IDE7Ci0gICAgIEhFQVAzMltpMTYgKyAoaTM1ICsgaTYpID4+IDJdID0gaTM1OwotICAgICBp
OCA9IGkzNSA+Pj4gMzsKLSAgICAgaWYgKGkzNSA+Pj4gMCA8IDI1NikgewotICAgICAgaTQgPSBp
OCA8PCAxOwotICAgICAgaTEyID0gMTA0ICsgKGk0IDw8IDIpIHwgMDsKLSAgICAgIGkxNyA9IEhF
QVAzMlsxNl0gfCAwOwotICAgICAgaTkgPSAxIDw8IGk4OwotICAgICAgZG8gewotICAgICAgIGlm
ICgoaTE3ICYgaTkgfCAwKSA9PSAwKSB7Ci0gICAgICAgIEhFQVAzMlsxNl0gPSBpMTcgfCBpOTsK
LSAgICAgICAgaTQwID0gaTEyOwotICAgICAgICBpNDEgPSAxMDQgKyAoaTQgKyAyIDw8IDIpIHwg
MDsKLSAgICAgICB9IGVsc2UgewotICAgICAgICBpOCA9IDEwNCArIChpNCArIDIgPDwgMikgfCAw
OwotICAgICAgICBpMyA9IEhFQVAzMltpOCA+PiAyXSB8IDA7Ci0gICAgICAgIGlmIChpMyA+Pj4g
MCA+PSAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7Ci0gICAgICAgICBpNDAgPSBpMzsKLSAgICAg
ICAgIGk0MSA9IGk4OwotICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgX2Fib3J0
KCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgIH0KLSAgICAgIH0gd2hpbGUgKDApOwotICAg
ICAgSEVBUDMyW2k0MSA+PiAyXSA9IGkxMDsKLSAgICAgIEhFQVAzMltpNDAgKyAxMiA+PiAyXSA9
IGkxMDsKLSAgICAgIEhFQVAzMltpMTYgKyAoaTYgKyA4KSA+PiAyXSA9IGk0MDsKLSAgICAgIEhF
QVAzMltpMTYgKyAoaTYgKyAxMikgPj4gMl0gPSBpMTI7Ci0gICAgICBicmVhazsKLSAgICAgfQot
ICAgICBpNCA9IGkxNTsKLSAgICAgaTkgPSBpMzUgPj4+IDg7Ci0gICAgIGRvIHsKLSAgICAgIGlm
ICgoaTkgfCAwKSA9PSAwKSB7Ci0gICAgICAgaTQyID0gMDsKLSAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgaWYgKGkzNSA+Pj4gMCA+IDE2Nzc3MjE1KSB7Ci0gICAgICAgIGk0MiA9IDMxOwotICAgICAg
ICBicmVhazsKLSAgICAgICB9Ci0gICAgICAgaTE3ID0gKGk5ICsgMTA0ODMyMCB8IDApID4+PiAx
NiAmIDg7Ci0gICAgICAgaTggPSBpOSA8PCBpMTc7Ci0gICAgICAgaTMgPSAoaTggKyA1MjAxOTIg
fCAwKSA+Pj4gMTYgJiA0OwotICAgICAgIGkyNyA9IGk4IDw8IGkzOwotICAgICAgIGk4ID0gKGky
NyArIDI0NTc2MCB8IDApID4+PiAxNiAmIDI7Ci0gICAgICAgaTExID0gMTQgLSAoaTMgfCBpMTcg
fCBpOCkgKyAoaTI3IDw8IGk4ID4+PiAxNSkgfCAwOwotICAgICAgIGk0MiA9IGkzNSA+Pj4gKChp
MTEgKyA3IHwgMCkgPj4+IDApICYgMSB8IGkxMSA8PCAxOwotICAgICAgfQotICAgICB9IHdoaWxl
ICgwKTsKLSAgICAgaTkgPSAzNjggKyAoaTQyIDw8IDIpIHwgMDsKLSAgICAgSEVBUDMyW2kxNiAr
IChpNiArIDI4KSA+PiAyXSA9IGk0MjsKLSAgICAgSEVBUDMyW2kxNiArIChpNiArIDIwKSA+PiAy
XSA9IDA7Ci0gICAgIEhFQVAzMltpMTYgKyAoaTYgKyAxNikgPj4gMl0gPSAwOwotICAgICBpMTIg
PSBIRUFQMzJbMTddIHwgMDsKLSAgICAgaTExID0gMSA8PCBpNDI7Ci0gICAgIGlmICgoaTEyICYg
aTExIHwgMCkgPT0gMCkgewotICAgICAgSEVBUDMyWzE3XSA9IGkxMiB8IGkxMTsKLSAgICAgIEhF
QVAzMltpOSA+PiAyXSA9IGk0OwotICAgICAgSEVBUDMyW2kxNiArIChpNiArIDI0KSA+PiAyXSA9
IGk5OwotICAgICAgSEVBUDMyW2kxNiArIChpNiArIDEyKSA+PiAyXSA9IGk0OwotICAgICAgSEVB
UDMyW2kxNiArIChpNiArIDgpID4+IDJdID0gaTQ7Ci0gICAgICBicmVhazsKLSAgICAgfQotICAg
ICBpZiAoKGk0MiB8IDApID09IDMxKSB7Ci0gICAgICBpNDMgPSAwOwotICAgICB9IGVsc2Ugewot
ICAgICAgaTQzID0gMjUgLSAoaTQyID4+PiAxKSB8IDA7Ci0gICAgIH0KLSAgICAgaTExID0gaTM1
IDw8IGk0MzsKLSAgICAgaTEyID0gSEVBUDMyW2k5ID4+IDJdIHwgMDsKLSAgICAgd2hpbGUgKDEp
IHsKLSAgICAgIGlmICgoSEVBUDMyW2kxMiArIDQgPj4gMl0gJiAtOCB8IDApID09IChpMzUgfCAw
KSkgewotICAgICAgIGJyZWFrOwotICAgICAgfQotICAgICAgaTQ0ID0gaTEyICsgMTYgKyAoaTEx
ID4+PiAzMSA8PCAyKSB8IDA7Ci0gICAgICBpOSA9IEhFQVAzMltpNDQgPj4gMl0gfCAwOwotICAg
ICAgaWYgKChpOSB8IDApID09IDApIHsKLSAgICAgICBpNDUgPSAxNjg7Ci0gICAgICAgYnJlYWs7
Ci0gICAgICB9IGVsc2UgewotICAgICAgIGkxMSA9IGkxMSA8PCAxOwotICAgICAgIGkxMiA9IGk5
OwotICAgICAgfQotICAgICB9Ci0gICAgIGlmICgoaTQ1IHwgMCkgPT0gMTY4KSB7Ci0gICAgICBp
ZiAoaTQ0ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgewotICAgICAgIF9hYm9ydCgp
OwotICAgICAgIHJldHVybiAwOwotICAgICAgfSBlbHNlIHsKLSAgICAgICBIRUFQMzJbaTQ0ID4+
IDJdID0gaTQ7Ci0gICAgICAgSEVBUDMyW2kxNiArIChpNiArIDI0KSA+PiAyXSA9IGkxMjsKLSAg
ICAgICBIRUFQMzJbaTE2ICsgKGk2ICsgMTIpID4+IDJdID0gaTQ7Ci0gICAgICAgSEVBUDMyW2kx
NiArIChpNiArIDgpID4+IDJdID0gaTQ7Ci0gICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgIH0K
LSAgICAgaTExID0gaTEyICsgOCB8IDA7Ci0gICAgIGk5ID0gSEVBUDMyW2kxMSA+PiAyXSB8IDA7
Ci0gICAgIGk4ID0gSEVBUDMyWzIwXSB8IDA7Ci0gICAgIGlmIChpMTIgPj4+IDAgPCBpOCA+Pj4g
MCkgewotICAgICAgX2Fib3J0KCk7Ci0gICAgICByZXR1cm4gMDsKLSAgICAgfQotICAgICBpZiAo
aTkgPj4+IDAgPCBpOCA+Pj4gMCkgewotICAgICAgX2Fib3J0KCk7Ci0gICAgICByZXR1cm4gMDsK
LSAgICAgfSBlbHNlIHsKLSAgICAgIEhFQVAzMltpOSArIDEyID4+IDJdID0gaTQ7Ci0gICAgICBI
RUFQMzJbaTExID4+IDJdID0gaTQ7Ci0gICAgICBIRUFQMzJbaTE2ICsgKGk2ICsgOCkgPj4gMl0g
PSBpOTsKLSAgICAgIEhFQVAzMltpMTYgKyAoaTYgKyAxMikgPj4gMl0gPSBpMTI7Ci0gICAgICBI
RUFQMzJbaTE2ICsgKGk2ICsgMjQpID4+IDJdID0gMDsKLSAgICAgIGJyZWFrOwotICAgICB9Ci0g
ICAgfQotICAgfSB3aGlsZSAoMCk7Ci0gICBpMTYgPSBpMzYgKyA4IHwgMDsKLSAgIGlmICgoaTE2
IHwgMCkgPT0gMCkgewotICAgIGkxNCA9IGk2OwotICAgIGJyZWFrOwotICAgfSBlbHNlIHsKLSAg
ICBpMTMgPSBpMTY7Ci0gICB9Ci0gICByZXR1cm4gaTEzIHwgMDsKLSAgfQotIH0gd2hpbGUgKDAp
OwotIGkzNiA9IEhFQVAzMlsxOF0gfCAwOwotIGlmIChpMTQgPj4+IDAgPD0gaTM2ID4+PiAwKSB7
Ci0gIGk0NCA9IGkzNiAtIGkxNCB8IDA7Ci0gIGkzNSA9IEhFQVAzMlsyMV0gfCAwOwotICBpZiAo
aTQ0ID4+PiAwID4gMTUpIHsKLSAgIGk0MyA9IGkzNTsKLSAgIEhFQVAzMlsyMV0gPSBpNDMgKyBp
MTQ7Ci0gICBIRUFQMzJbMThdID0gaTQ0OwotICAgSEVBUDMyW2k0MyArIChpMTQgKyA0KSA+PiAy
XSA9IGk0NCB8IDE7Ci0gICBIRUFQMzJbaTQzICsgaTM2ID4+IDJdID0gaTQ0OwotICAgSEVBUDMy
W2kzNSArIDQgPj4gMl0gPSBpMTQgfCAzOwotICB9IGVsc2UgewotICAgSEVBUDMyWzE4XSA9IDA7
Ci0gICBIRUFQMzJbMjFdID0gMDsKLSAgIEhFQVAzMltpMzUgKyA0ID4+IDJdID0gaTM2IHwgMzsK
LSAgIGk0NCA9IGkzNSArIChpMzYgKyA0KSB8IDA7Ci0gICBIRUFQMzJbaTQ0ID4+IDJdID0gSEVB
UDMyW2k0NCA+PiAyXSB8IDE7Ci0gIH0KLSAgaTEzID0gaTM1ICsgOCB8IDA7Ci0gIHJldHVybiBp
MTMgfCAwOwotIH0KLSBpMzUgPSBIRUFQMzJbMTldIHwgMDsKLSBpZiAoaTE0ID4+PiAwIDwgaTM1
ID4+PiAwKSB7Ci0gIGk0NCA9IGkzNSAtIGkxNCB8IDA7Ci0gIEhFQVAzMlsxOV0gPSBpNDQ7Ci0g
IGkzNSA9IEhFQVAzMlsyMl0gfCAwOwotICBpMzYgPSBpMzU7Ci0gIEhFQVAzMlsyMl0gPSBpMzYg
KyBpMTQ7Ci0gIEhFQVAzMltpMzYgKyAoaTE0ICsgNCkgPj4gMl0gPSBpNDQgfCAxOwotICBIRUFQ
MzJbaTM1ICsgNCA+PiAyXSA9IGkxNCB8IDM7Ci0gIGkxMyA9IGkzNSArIDggfCAwOwotICByZXR1
cm4gaTEzIHwgMDsKLSB9Ci0gZG8gewotICBpZiAoKEhFQVAzMlsxMF0gfCAwKSA9PSAwKSB7Ci0g
ICBpMzUgPSBfc3lzY29uZig4KSB8IDA7Ci0gICBpZiAoKGkzNSAtIDEgJiBpMzUgfCAwKSA9PSAw
KSB7Ci0gICAgSEVBUDMyWzEyXSA9IGkzNTsKLSAgICBIRUFQMzJbMTFdID0gaTM1OwotICAgIEhF
QVAzMlsxM10gPSAtMTsKLSAgICBIRUFQMzJbMTRdID0gLTE7Ci0gICAgSEVBUDMyWzE1XSA9IDA7
Ci0gICAgSEVBUDMyWzEyN10gPSAwOwotICAgIEhFQVAzMlsxMF0gPSAoX3RpbWUoMCkgfCAwKSAm
IC0xNiBeIDE0MzE2NTU3Njg7Ci0gICAgYnJlYWs7Ci0gICB9IGVsc2UgewotICAgIF9hYm9ydCgp
OwotICAgIHJldHVybiAwOwotICAgfQotICB9Ci0gfSB3aGlsZSAoMCk7Ci0gaTM1ID0gaTE0ICsg
NDggfCAwOwotIGk0NCA9IEhFQVAzMlsxMl0gfCAwOwotIGkzNiA9IGkxNCArIDQ3IHwgMDsKLSBp
NDMgPSBpNDQgKyBpMzYgfCAwOwotIGk0MiA9IC1pNDQgfCAwOwotIGk0NCA9IGk0MyAmIGk0MjsK
LSBpZiAoaTQ0ID4+PiAwIDw9IGkxNCA+Pj4gMCkgewotICBpMTMgPSAwOwotICByZXR1cm4gaTEz
IHwgMDsKLSB9Ci0gaTQwID0gSEVBUDMyWzEyNl0gfCAwOwotIGRvIHsKLSAgaWYgKChpNDAgfCAw
KSAhPSAwKSB7Ci0gICBpNDEgPSBIRUFQMzJbMTI0XSB8IDA7Ci0gICBpMzcgPSBpNDEgKyBpNDQg
fCAwOwotICAgaWYgKGkzNyA+Pj4gMCA8PSBpNDEgPj4+IDAgfCBpMzcgPj4+IDAgPiBpNDAgPj4+
IDApIHsKLSAgICBpMTMgPSAwOwotICAgfSBlbHNlIHsKLSAgICBicmVhazsKLSAgIH0KLSAgIHJl
dHVybiBpMTMgfCAwOwotICB9Ci0gfSB3aGlsZSAoMCk7Ci0gTDI5MCA6IGRvIHsKLSAgaWYgKChI
RUFQMzJbMTI3XSAmIDQgfCAwKSA9PSAwKSB7Ci0gICBpNDAgPSBIRUFQMzJbMjJdIHwgMDsKLSAg
IEwyOTIgOiBkbyB7Ci0gICAgaWYgKChpNDAgfCAwKSA9PSAwKSB7Ci0gICAgIGk0NSA9IDE5ODsK
LSAgICB9IGVsc2UgewotICAgICBpMzcgPSBpNDA7Ci0gICAgIGk0MSA9IDUxMjsKLSAgICAgd2hp
bGUgKDEpIHsKLSAgICAgIGk0NiA9IGk0MSB8IDA7Ci0gICAgICBpMzggPSBIRUFQMzJbaTQ2ID4+
IDJdIHwgMDsKLSAgICAgIGlmIChpMzggPj4+IDAgPD0gaTM3ID4+PiAwKSB7Ci0gICAgICAgaTQ3
ID0gaTQxICsgNCB8IDA7Ci0gICAgICAgaWYgKChpMzggKyAoSEVBUDMyW2k0NyA+PiAyXSB8IDAp
IHwgMCkgPj4+IDAgPiBpMzcgPj4+IDApIHsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgfQotICAg
ICAgfQotICAgICAgaTM4ID0gSEVBUDMyW2k0MSArIDggPj4gMl0gfCAwOwotICAgICAgaWYgKChp
MzggfCAwKSA9PSAwKSB7Ci0gICAgICAgaTQ1ID0gMTk4OwotICAgICAgIGJyZWFrIEwyOTI7Ci0g
ICAgICB9IGVsc2UgewotICAgICAgIGk0MSA9IGkzODsKLSAgICAgIH0KLSAgICAgfQotICAgICBp
ZiAoKGk0MSB8IDApID09IDApIHsKLSAgICAgIGk0NSA9IDE5ODsKLSAgICAgIGJyZWFrOwotICAg
ICB9Ci0gICAgIGkzNyA9IGk0MyAtIChIRUFQMzJbMTldIHwgMCkgJiBpNDI7Ci0gICAgIGlmIChp
MzcgPj4+IDAgPj0gMjE0NzQ4MzY0NykgewotICAgICAgaTQ4ID0gMDsKLSAgICAgIGJyZWFrOwot
ICAgICB9Ci0gICAgIGkxMiA9IF9zYnJrKGkzNyB8IDApIHwgMDsKLSAgICAgaTQgPSAoaTEyIHwg
MCkgPT0gKChIRUFQMzJbaTQ2ID4+IDJdIHwgMCkgKyAoSEVBUDMyW2k0NyA+PiAyXSB8IDApIHwg
MCk7Ci0gICAgIGk0OSA9IGk0ID8gaTEyIDogLTE7Ci0gICAgIGk1MCA9IGk0ID8gaTM3IDogMDsK
LSAgICAgaTUxID0gaTEyOwotICAgICBpNTIgPSBpMzc7Ci0gICAgIGk0NSA9IDIwNzsKLSAgICB9
Ci0gICB9IHdoaWxlICgwKTsKLSAgIGRvIHsKLSAgICBpZiAoKGk0NSB8IDApID09IDE5OCkgewot
ICAgICBpNDAgPSBfc2JyaygwKSB8IDA7Ci0gICAgIGlmICgoaTQwIHwgMCkgPT0gLTEpIHsKLSAg
ICAgIGk0OCA9IDA7Ci0gICAgICBicmVhazsKLSAgICAgfQotICAgICBpNiA9IGk0MDsKLSAgICAg
aTM3ID0gSEVBUDMyWzExXSB8IDA7Ci0gICAgIGkxMiA9IGkzNyAtIDEgfCAwOwotICAgICBpZiAo
KGkxMiAmIGk2IHwgMCkgPT0gMCkgewotICAgICAgaTUzID0gaTQ0OwotICAgICB9IGVsc2Ugewot
ICAgICAgaTUzID0gaTQ0IC0gaTYgKyAoaTEyICsgaTYgJiAtaTM3KSB8IDA7Ci0gICAgIH0KLSAg
ICAgaTM3ID0gSEVBUDMyWzEyNF0gfCAwOwotICAgICBpNiA9IGkzNyArIGk1MyB8IDA7Ci0gICAg
IGlmICghKGk1MyA+Pj4gMCA+IGkxNCA+Pj4gMCAmIGk1MyA+Pj4gMCA8IDIxNDc0ODM2NDcpKSB7
Ci0gICAgICBpNDggPSAwOwotICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgaTEyID0gSEVBUDMy
WzEyNl0gfCAwOwotICAgICBpZiAoKGkxMiB8IDApICE9IDApIHsKLSAgICAgIGlmIChpNiA+Pj4g
MCA8PSBpMzcgPj4+IDAgfCBpNiA+Pj4gMCA+IGkxMiA+Pj4gMCkgewotICAgICAgIGk0OCA9IDA7
Ci0gICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgIH0KLSAgICAgaTEyID0gX3NicmsoaTUzIHwg
MCkgfCAwOwotICAgICBpNiA9IChpMTIgfCAwKSA9PSAoaTQwIHwgMCk7Ci0gICAgIGk0OSA9IGk2
ID8gaTQwIDogLTE7Ci0gICAgIGk1MCA9IGk2ID8gaTUzIDogMDsKLSAgICAgaTUxID0gaTEyOwot
ICAgICBpNTIgPSBpNTM7Ci0gICAgIGk0NSA9IDIwNzsKLSAgICB9Ci0gICB9IHdoaWxlICgwKTsK
LSAgIEwzMTIgOiBkbyB7Ci0gICAgaWYgKChpNDUgfCAwKSA9PSAyMDcpIHsKLSAgICAgaTEyID0g
LWk1MiB8IDA7Ci0gICAgIGlmICgoaTQ5IHwgMCkgIT0gLTEpIHsKLSAgICAgIGk1NCA9IGk1MDsK
LSAgICAgIGk1NSA9IGk0OTsKLSAgICAgIGk0NSA9IDIxODsKLSAgICAgIGJyZWFrIEwyOTA7Ci0g
ICAgIH0KLSAgICAgZG8gewotICAgICAgaWYgKChpNTEgfCAwKSAhPSAtMSAmIGk1MiA+Pj4gMCA8
IDIxNDc0ODM2NDcgJiBpNTIgPj4+IDAgPCBpMzUgPj4+IDApIHsKLSAgICAgICBpNiA9IEhFQVAz
MlsxMl0gfCAwOwotICAgICAgIGk0MCA9IGkzNiAtIGk1MiArIGk2ICYgLWk2OwotICAgICAgIGlm
IChpNDAgPj4+IDAgPj0gMjE0NzQ4MzY0NykgewotICAgICAgICBpNTYgPSBpNTI7Ci0gICAgICAg
IGJyZWFrOwotICAgICAgIH0KLSAgICAgICBpZiAoKF9zYnJrKGk0MCB8IDApIHwgMCkgPT0gLTEp
IHsKLSAgICAgICAgX3NicmsoaTEyIHwgMCkgfCAwOwotICAgICAgICBpNDggPSBpNTA7Ci0gICAg
ICAgIGJyZWFrIEwzMTI7Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgaTU2ID0gaTQwICsgaTUy
IHwgMDsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICBp
NTYgPSBpNTI7Ci0gICAgICB9Ci0gICAgIH0gd2hpbGUgKDApOwotICAgICBpZiAoKGk1MSB8IDAp
ID09IC0xKSB7Ci0gICAgICBpNDggPSBpNTA7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICBpNTQgPSBp
NTY7Ci0gICAgICBpNTUgPSBpNTE7Ci0gICAgICBpNDUgPSAyMTg7Ci0gICAgICBicmVhayBMMjkw
OwotICAgICB9Ci0gICAgfQotICAgfSB3aGlsZSAoMCk7Ci0gICBIRUFQMzJbMTI3XSA9IEhFQVAz
MlsxMjddIHwgNDsKLSAgIGk1NyA9IGk0ODsKLSAgIGk0NSA9IDIxNTsKLSAgfSBlbHNlIHsKLSAg
IGk1NyA9IDA7Ci0gICBpNDUgPSAyMTU7Ci0gIH0KLSB9IHdoaWxlICgwKTsKLSBkbyB7Ci0gIGlm
ICgoaTQ1IHwgMCkgPT0gMjE1KSB7Ci0gICBpZiAoaTQ0ID4+PiAwID49IDIxNDc0ODM2NDcpIHsK
LSAgICBicmVhazsKLSAgIH0KLSAgIGk0OCA9IF9zYnJrKGk0NCB8IDApIHwgMDsKLSAgIGk1MSA9
IF9zYnJrKDApIHwgMDsKLSAgIGlmICghKChpNTEgfCAwKSAhPSAtMSAmIChpNDggfCAwKSAhPSAt
MSAmIGk0OCA+Pj4gMCA8IGk1MSA+Pj4gMCkpIHsKLSAgICBicmVhazsKLSAgIH0KLSAgIGk1NiA9
IGk1MSAtIGk0OCB8IDA7Ci0gICBpNTEgPSBpNTYgPj4+IDAgPiAoaTE0ICsgNDAgfCAwKSA+Pj4g
MDsKLSAgIGk1MCA9IGk1MSA/IGk0OCA6IC0xOwotICAgaWYgKChpNTAgfCAwKSAhPSAtMSkgewot
ICAgIGk1NCA9IGk1MSA/IGk1NiA6IGk1NzsKLSAgICBpNTUgPSBpNTA7Ci0gICAgaTQ1ID0gMjE4
OwotICAgfQotICB9Ci0gfSB3aGlsZSAoMCk7Ci0gZG8gewotICBpZiAoKGk0NSB8IDApID09IDIx
OCkgewotICAgaTU3ID0gKEhFQVAzMlsxMjRdIHwgMCkgKyBpNTQgfCAwOwotICAgSEVBUDMyWzEy
NF0gPSBpNTc7Ci0gICBpZiAoaTU3ID4+PiAwID4gKEhFQVAzMlsxMjVdIHwgMCkgPj4+IDApIHsK
LSAgICBIRUFQMzJbMTI1XSA9IGk1NzsKLSAgIH0KLSAgIGk1NyA9IEhFQVAzMlsyMl0gfCAwOwot
ICAgTDMzMiA6IGRvIHsKLSAgICBpZiAoKGk1NyB8IDApID09IDApIHsKLSAgICAgaTQ0ID0gSEVB
UDMyWzIwXSB8IDA7Ci0gICAgIGlmICgoaTQ0IHwgMCkgPT0gMCB8IGk1NSA+Pj4gMCA8IGk0NCA+
Pj4gMCkgewotICAgICAgSEVBUDMyWzIwXSA9IGk1NTsKLSAgICAgfQotICAgICBIRUFQMzJbMTI4
XSA9IGk1NTsKLSAgICAgSEVBUDMyWzEyOV0gPSBpNTQ7Ci0gICAgIEhFQVAzMlsxMzFdID0gMDsK
LSAgICAgSEVBUDMyWzI1XSA9IEhFQVAzMlsxMF07Ci0gICAgIEhFQVAzMlsyNF0gPSAtMTsKLSAg
ICAgaTQ0ID0gMDsKLSAgICAgZG8gewotICAgICAgaTUwID0gaTQ0IDw8IDE7Ci0gICAgICBpNTYg
PSAxMDQgKyAoaTUwIDw8IDIpIHwgMDsKLSAgICAgIEhFQVAzMlsxMDQgKyAoaTUwICsgMyA8PCAy
KSA+PiAyXSA9IGk1NjsKLSAgICAgIEhFQVAzMlsxMDQgKyAoaTUwICsgMiA8PCAyKSA+PiAyXSA9
IGk1NjsKLSAgICAgIGk0NCA9IGk0NCArIDEgfCAwOwotICAgICB9IHdoaWxlIChpNDQgPj4+IDAg
PCAzMik7Ci0gICAgIGk0NCA9IGk1NSArIDggfCAwOwotICAgICBpZiAoKGk0NCAmIDcgfCAwKSA9
PSAwKSB7Ci0gICAgICBpNTggPSAwOwotICAgICB9IGVsc2UgewotICAgICAgaTU4ID0gLWk0NCAm
IDc7Ci0gICAgIH0KLSAgICAgaTQ0ID0gaTU0IC0gNDAgLSBpNTggfCAwOwotICAgICBIRUFQMzJb
MjJdID0gaTU1ICsgaTU4OwotICAgICBIRUFQMzJbMTldID0gaTQ0OwotICAgICBIRUFQMzJbaTU1
ICsgKGk1OCArIDQpID4+IDJdID0gaTQ0IHwgMTsKLSAgICAgSEVBUDMyW2k1NSArIChpNTQgLSAz
NikgPj4gMl0gPSA0MDsKLSAgICAgSEVBUDMyWzIzXSA9IEhFQVAzMlsxNF07Ci0gICAgfSBlbHNl
IHsKLSAgICAgaTQ0ID0gNTEyOwotICAgICB3aGlsZSAoMSkgewotICAgICAgaTU5ID0gSEVBUDMy
W2k0NCA+PiAyXSB8IDA7Ci0gICAgICBpNjAgPSBpNDQgKyA0IHwgMDsKLSAgICAgIGk2MSA9IEhF
QVAzMltpNjAgPj4gMl0gfCAwOwotICAgICAgaWYgKChpNTUgfCAwKSA9PSAoaTU5ICsgaTYxIHwg
MCkpIHsKLSAgICAgICBpNDUgPSAyMzA7Ci0gICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgICBp
NTYgPSBIRUFQMzJbaTQ0ICsgOCA+PiAyXSB8IDA7Ci0gICAgICBpZiAoKGk1NiB8IDApID09IDAp
IHsKLSAgICAgICBicmVhazsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgaTQ0ID0gaTU2OwotICAg
ICAgfQotICAgICB9Ci0gICAgIGRvIHsKLSAgICAgIGlmICgoaTQ1IHwgMCkgPT0gMjMwKSB7Ci0g
ICAgICAgaWYgKChIRUFQMzJbaTQ0ICsgMTIgPj4gMl0gJiA4IHwgMCkgIT0gMCkgewotICAgICAg
ICBicmVhazsKLSAgICAgICB9Ci0gICAgICAgaTU2ID0gaTU3OwotICAgICAgIGlmICghKGk1NiA+
Pj4gMCA+PSBpNTkgPj4+IDAgJiBpNTYgPj4+IDAgPCBpNTUgPj4+IDApKSB7Ci0gICAgICAgIGJy
ZWFrOwotICAgICAgIH0KLSAgICAgICBIRUFQMzJbaTYwID4+IDJdID0gaTYxICsgaTU0OwotICAg
ICAgIGk1NiA9IEhFQVAzMlsyMl0gfCAwOwotICAgICAgIGk1MCA9IChIRUFQMzJbMTldIHwgMCkg
KyBpNTQgfCAwOwotICAgICAgIGk1MSA9IGk1NjsKLSAgICAgICBpNDggPSBpNTYgKyA4IHwgMDsK
LSAgICAgICBpZiAoKGk0OCAmIDcgfCAwKSA9PSAwKSB7Ci0gICAgICAgIGk2MiA9IDA7Ci0gICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgaTYyID0gLWk0OCAmIDc7Ci0gICAgICAgfQotICAgICAgIGk0
OCA9IGk1MCAtIGk2MiB8IDA7Ci0gICAgICAgSEVBUDMyWzIyXSA9IGk1MSArIGk2MjsKLSAgICAg
ICBIRUFQMzJbMTldID0gaTQ4OwotICAgICAgIEhFQVAzMltpNTEgKyAoaTYyICsgNCkgPj4gMl0g
PSBpNDggfCAxOwotICAgICAgIEhFQVAzMltpNTEgKyAoaTUwICsgNCkgPj4gMl0gPSA0MDsKLSAg
ICAgICBIRUFQMzJbMjNdID0gSEVBUDMyWzE0XTsKLSAgICAgICBicmVhayBMMzMyOwotICAgICAg
fQotICAgICB9IHdoaWxlICgwKTsKLSAgICAgaWYgKGk1NSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwg
MCkgPj4+IDApIHsKLSAgICAgIEhFQVAzMlsyMF0gPSBpNTU7Ci0gICAgIH0KLSAgICAgaTQ0ID0g
aTU1ICsgaTU0IHwgMDsKLSAgICAgaTUwID0gNTEyOwotICAgICB3aGlsZSAoMSkgewotICAgICAg
aTYzID0gaTUwIHwgMDsKLSAgICAgIGlmICgoSEVBUDMyW2k2MyA+PiAyXSB8IDApID09IChpNDQg
fCAwKSkgewotICAgICAgIGk0NSA9IDI0MDsKLSAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICAg
IGk1MSA9IEhFQVAzMltpNTAgKyA4ID4+IDJdIHwgMDsKLSAgICAgIGlmICgoaTUxIHwgMCkgPT0g
MCkgewotICAgICAgIGJyZWFrOwotICAgICAgfSBlbHNlIHsKLSAgICAgICBpNTAgPSBpNTE7Ci0g
ICAgICB9Ci0gICAgIH0KLSAgICAgZG8gewotICAgICAgaWYgKChpNDUgfCAwKSA9PSAyNDApIHsK
LSAgICAgICBpZiAoKEhFQVAzMltpNTAgKyAxMiA+PiAyXSAmIDggfCAwKSAhPSAwKSB7Ci0gICAg
ICAgIGJyZWFrOwotICAgICAgIH0KLSAgICAgICBIRUFQMzJbaTYzID4+IDJdID0gaTU1OwotICAg
ICAgIGk0NCA9IGk1MCArIDQgfCAwOwotICAgICAgIEhFQVAzMltpNDQgPj4gMl0gPSAoSEVBUDMy
W2k0NCA+PiAyXSB8IDApICsgaTU0OwotICAgICAgIGk0NCA9IGk1NSArIDggfCAwOwotICAgICAg
IGlmICgoaTQ0ICYgNyB8IDApID09IDApIHsKLSAgICAgICAgaTY0ID0gMDsKLSAgICAgICB9IGVs
c2UgewotICAgICAgICBpNjQgPSAtaTQ0ICYgNzsKLSAgICAgICB9Ci0gICAgICAgaTQ0ID0gaTU1
ICsgKGk1NCArIDgpIHwgMDsKLSAgICAgICBpZiAoKGk0NCAmIDcgfCAwKSA9PSAwKSB7Ci0gICAg
ICAgIGk2NSA9IDA7Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgaTY1ID0gLWk0NCAmIDc7Ci0g
ICAgICAgfQotICAgICAgIGk0NCA9IGk1NSArIChpNjUgKyBpNTQpIHwgMDsKLSAgICAgICBpNTEg
PSBpNDQ7Ci0gICAgICAgaTQ4ID0gaTY0ICsgaTE0IHwgMDsKLSAgICAgICBpNTYgPSBpNTUgKyBp
NDggfCAwOwotICAgICAgIGk1MiA9IGk1NjsKLSAgICAgICBpMzYgPSBpNDQgLSAoaTU1ICsgaTY0
KSAtIGkxNCB8IDA7Ci0gICAgICAgSEVBUDMyW2k1NSArIChpNjQgKyA0KSA+PiAyXSA9IGkxNCB8
IDM7Ci0gICAgICAgZG8gewotICAgICAgICBpZiAoKGk1MSB8IDApID09IChIRUFQMzJbMjJdIHwg
MCkpIHsKLSAgICAgICAgIGkzNSA9IChIRUFQMzJbMTldIHwgMCkgKyBpMzYgfCAwOwotICAgICAg
ICAgSEVBUDMyWzE5XSA9IGkzNTsKLSAgICAgICAgIEhFQVAzMlsyMl0gPSBpNTI7Ci0gICAgICAg
ICBIRUFQMzJbaTU1ICsgKGk0OCArIDQpID4+IDJdID0gaTM1IHwgMTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgIGlmICgoaTUxIHwgMCkgPT0gKEhFQVAzMlsyMV0gfCAwKSkgewotICAgICAg
ICAgIGkzNSA9IChIRUFQMzJbMThdIHwgMCkgKyBpMzYgfCAwOwotICAgICAgICAgIEhFQVAzMlsx
OF0gPSBpMzU7Ci0gICAgICAgICAgSEVBUDMyWzIxXSA9IGk1MjsKLSAgICAgICAgICBIRUFQMzJb
aTU1ICsgKGk0OCArIDQpID4+IDJdID0gaTM1IHwgMTsKLSAgICAgICAgICBIRUFQMzJbaTU1ICsg
KGkzNSArIGk0OCkgPj4gMl0gPSBpMzU7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0g
ICAgICAgICBpMzUgPSBpNTQgKyA0IHwgMDsKLSAgICAgICAgIGk0OSA9IEhFQVAzMltpNTUgKyAo
aTY1ICsgaTM1KSA+PiAyXSB8IDA7Ci0gICAgICAgICBpZiAoKGk0OSAmIDMgfCAwKSA9PSAxKSB7
Ci0gICAgICAgICAgaTUzID0gaTQ5ICYgLTg7Ci0gICAgICAgICAgaTQ3ID0gaTQ5ID4+PiAzOwot
ICAgICAgICAgIEwzNzcgOiBkbyB7Ci0gICAgICAgICAgIGlmIChpNDkgPj4+IDAgPCAyNTYpIHsK
LSAgICAgICAgICAgIGk0NiA9IEhFQVAzMltpNTUgKyAoKGk2NSB8IDgpICsgaTU0KSA+PiAyXSB8
IDA7Ci0gICAgICAgICAgICBpNDIgPSBIRUFQMzJbaTU1ICsgKGk1NCArIDEyICsgaTY1KSA+PiAy
XSB8IDA7Ci0gICAgICAgICAgICBpNDMgPSAxMDQgKyAoaTQ3IDw8IDEgPDwgMikgfCAwOwotICAg
ICAgICAgICAgZG8gewotICAgICAgICAgICAgIGlmICgoaTQ2IHwgMCkgIT0gKGk0MyB8IDApKSB7
Ci0gICAgICAgICAgICAgIGlmIChpNDYgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7
Ci0gICAgICAgICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAgICAgICAgIHJldHVybiAwOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICgoSEVBUDMyW2k0NiArIDEyID4+IDJdIHwg
MCkgPT0gKGk1MSB8IDApKSB7Ci0gICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSB3aGlsZSAoMCk7Ci0gICAgICAgICAgICBpZiAoKGk0
MiB8IDApID09IChpNDYgfCAwKSkgewotICAgICAgICAgICAgIEhFQVAzMlsxNl0gPSBIRUFQMzJb
MTZdICYgfigxIDw8IGk0Nyk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgaWYgKChpNDIgfCAwKSA9PSAoaTQzIHwgMCkp
IHsKLSAgICAgICAgICAgICAgaTY2ID0gaTQyICsgOCB8IDA7Ci0gICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgaWYgKGk0MiA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDAp
IHsKLSAgICAgICAgICAgICAgIF9hYm9ydCgpOwotICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaTEyID0gaTQyICsgOCB8IDA7Ci0gICAgICAg
ICAgICAgIGlmICgoSEVBUDMyW2kxMiA+PiAyXSB8IDApID09IChpNTEgfCAwKSkgewotICAgICAg
ICAgICAgICAgaTY2ID0gaTEyOwotICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAgICAgICAgIHJldHVybiAwOwotICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gd2hpbGUgKDApOwotICAgICAgICAgICAgSEVBUDMy
W2k0NiArIDEyID4+IDJdID0gaTQyOwotICAgICAgICAgICAgSEVBUDMyW2k2NiA+PiAyXSA9IGk0
NjsKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGk0MyA9IGk0NDsKLSAgICAgICAg
ICAgIGkxMiA9IEhFQVAzMltpNTUgKyAoKGk2NSB8IDI0KSArIGk1NCkgPj4gMl0gfCAwOwotICAg
ICAgICAgICAgaTQxID0gSEVBUDMyW2k1NSArIChpNTQgKyAxMiArIGk2NSkgPj4gMl0gfCAwOwot
ICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgIGlmICgoaTQxIHwgMCkgPT0gKGk0MyB8IDAp
KSB7Ci0gICAgICAgICAgICAgIGk0MCA9IGk2NSB8IDE2OwotICAgICAgICAgICAgICBpNiA9IGk1
NSArIChpNDAgKyBpMzUpIHwgMDsKLSAgICAgICAgICAgICAgaTM3ID0gSEVBUDMyW2k2ID4+IDJd
IHwgMDsKLSAgICAgICAgICAgICAgaWYgKChpMzcgfCAwKSA9PSAwKSB7Ci0gICAgICAgICAgICAg
ICBpNCA9IGk1NSArIChpNDAgKyBpNTQpIHwgMDsKLSAgICAgICAgICAgICAgIGk0MCA9IEhFQVAz
MltpNCA+PiAyXSB8IDA7Ci0gICAgICAgICAgICAgICBpZiAoKGk0MCB8IDApID09IDApIHsKLSAg
ICAgICAgICAgICAgICBpNjcgPSAwOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpNjggPSBpNDA7Ci0gICAgICAgICAgICAg
ICAgaTY5ID0gaTQ7Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICBpNjggPSBpMzc7Ci0gICAgICAgICAgICAgICBpNjkgPSBpNjsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICB3aGlsZSAoMSkgewotICAgICAgICAgICAgICAgaTYg
PSBpNjggKyAyMCB8IDA7Ci0gICAgICAgICAgICAgICBpMzcgPSBIRUFQMzJbaTYgPj4gMl0gfCAw
OwotICAgICAgICAgICAgICAgaWYgKChpMzcgfCAwKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAg
aTY4ID0gaTM3OwotICAgICAgICAgICAgICAgIGk2OSA9IGk2OwotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgaTYgPSBpNjggKyAxNiB8
IDA7Ci0gICAgICAgICAgICAgICBpMzcgPSBIRUFQMzJbaTYgPj4gMl0gfCAwOwotICAgICAgICAg
ICAgICAgaWYgKChpMzcgfCAwKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGk2OCA9IGkzNzsKLSAgICAgICAg
ICAgICAgICBpNjkgPSBpNjsKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICBpZiAoaTY5ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgewotICAg
ICAgICAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIEhFQVAzMltpNjkgPj4gMl0gPSAwOwotICAg
ICAgICAgICAgICAgaTY3ID0gaTY4OwotICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBpNiA9IEhFQVAzMltp
NTUgKyAoKGk2NSB8IDgpICsgaTU0KSA+PiAyXSB8IDA7Ci0gICAgICAgICAgICAgIGlmIChpNiA+
Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICAgICAgICAgIF9hYm9ydCgp
OwotICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgaTM3ID0gaTYgKyAxMiB8IDA7Ci0gICAgICAgICAgICAgIGlmICgoSEVBUDMyW2kzNyA+PiAy
XSB8IDApICE9IChpNDMgfCAwKSkgewotICAgICAgICAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAg
ICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpNCA9IGk0
MSArIDggfCAwOwotICAgICAgICAgICAgICBpZiAoKEhFQVAzMltpNCA+PiAyXSB8IDApID09IChp
NDMgfCAwKSkgewotICAgICAgICAgICAgICAgSEVBUDMyW2kzNyA+PiAyXSA9IGk0MTsKLSAgICAg
ICAgICAgICAgIEhFQVAzMltpNCA+PiAyXSA9IGk2OwotICAgICAgICAgICAgICAgaTY3ID0gaTQx
OwotICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgfSB3aGlsZSAoMCk7Ci0gICAgICAgICAg
ICBpZiAoKGkxMiB8IDApID09IDApIHsKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGk0MSA9IGk1NSArIChpNTQgKyAyOCArIGk2NSkgfCAwOwotICAgICAg
ICAgICAgaTQ2ID0gMzY4ICsgKEhFQVAzMltpNDEgPj4gMl0gPDwgMikgfCAwOwotICAgICAgICAg
ICAgZG8gewotICAgICAgICAgICAgIGlmICgoaTQzIHwgMCkgPT0gKEhFQVAzMltpNDYgPj4gMl0g
fCAwKSkgewotICAgICAgICAgICAgICBIRUFQMzJbaTQ2ID4+IDJdID0gaTY3OwotICAgICAgICAg
ICAgICBpZiAoKGk2NyB8IDApICE9IDApIHsKLSAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIEhFQVAzMlsxN10gPSBIRUFQMzJbMTddICYgfigxIDw8
IEhFQVAzMltpNDEgPj4gMl0pOwotICAgICAgICAgICAgICBicmVhayBMMzc3OwotICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGlmIChpMTIgPj4+IDAgPCAoSEVBUDMyWzIwXSB8
IDApID4+PiAwKSB7Ci0gICAgICAgICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGk0MiA9IGkxMiArIDE2IHwg
MDsKLSAgICAgICAgICAgICAgaWYgKChIRUFQMzJbaTQyID4+IDJdIHwgMCkgPT0gKGk0MyB8IDAp
KSB7Ci0gICAgICAgICAgICAgICBIRUFQMzJbaTQyID4+IDJdID0gaTY3OwotICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgSEVBUDMyW2kxMiArIDIwID4+IDJdID0gaTY3Owot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICgoaTY3IHwgMCkgPT0gMCkgewotICAg
ICAgICAgICAgICAgYnJlYWsgTDM3NzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0gd2hpbGUgKDApOwotICAgICAgICAgICAgaWYgKGk2NyA+Pj4gMCA8IChI
RUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAg
ICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEhFQVAzMltpNjcgKyAy
NCA+PiAyXSA9IGkxMjsKLSAgICAgICAgICAgIGk0MyA9IGk2NSB8IDE2OwotICAgICAgICAgICAg
aTQxID0gSEVBUDMyW2k1NSArIChpNDMgKyBpNTQpID4+IDJdIHwgMDsKLSAgICAgICAgICAgIGRv
IHsKLSAgICAgICAgICAgICBpZiAoKGk0MSB8IDApICE9IDApIHsKLSAgICAgICAgICAgICAgaWYg
KGk0MSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICAgICAgICAgIF9h
Ym9ydCgpOwotICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICBIRUFQMzJbaTY3ICsgMTYgPj4gMl0gPSBpNDE7Ci0gICAgICAgICAg
ICAgICBIRUFQMzJbaTQxICsgMjQgPj4gMl0gPSBpNjc7Ci0gICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gd2hpbGUgKDAp
OwotICAgICAgICAgICAgaTQxID0gSEVBUDMyW2k1NSArIChpNDMgKyBpMzUpID4+IDJdIHwgMDsK
LSAgICAgICAgICAgIGlmICgoaTQxIHwgMCkgPT0gMCkgewotICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGk0MSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwg
MCkgPj4+IDApIHsKLSAgICAgICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAgICAgICByZXR1cm4g
MDsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgSEVBUDMyW2k2NyArIDIwID4+
IDJdID0gaTQxOwotICAgICAgICAgICAgIEhFQVAzMltpNDEgKyAyNCA+PiAyXSA9IGk2NzsKLSAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAg
IH0gd2hpbGUgKDApOwotICAgICAgICAgIGk3MCA9IGk1NSArICgoaTUzIHwgaTY1KSArIGk1NCkg
fCAwOwotICAgICAgICAgIGk3MSA9IGk1MyArIGkzNiB8IDA7Ci0gICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgIGk3MCA9IGk1MTsKLSAgICAgICAgICBpNzEgPSBpMzY7Ci0gICAgICAgICB9Ci0g
ICAgICAgICBpMzUgPSBpNzAgKyA0IHwgMDsKLSAgICAgICAgIEhFQVAzMltpMzUgPj4gMl0gPSBI
RUFQMzJbaTM1ID4+IDJdICYgLTI7Ci0gICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDQpID4+
IDJdID0gaTcxIHwgMTsKLSAgICAgICAgIEhFQVAzMltpNTUgKyAoaTcxICsgaTQ4KSA+PiAyXSA9
IGk3MTsKLSAgICAgICAgIGkzNSA9IGk3MSA+Pj4gMzsKLSAgICAgICAgIGlmIChpNzEgPj4+IDAg
PCAyNTYpIHsKLSAgICAgICAgICBpNDcgPSBpMzUgPDwgMTsKLSAgICAgICAgICBpNDkgPSAxMDQg
KyAoaTQ3IDw8IDIpIHwgMDsKLSAgICAgICAgICBpNDEgPSBIRUFQMzJbMTZdIHwgMDsKLSAgICAg
ICAgICBpMTIgPSAxIDw8IGkzNTsKLSAgICAgICAgICBkbyB7Ci0gICAgICAgICAgIGlmICgoaTQx
ICYgaTEyIHwgMCkgPT0gMCkgewotICAgICAgICAgICAgSEVBUDMyWzE2XSA9IGk0MSB8IGkxMjsK
LSAgICAgICAgICAgIGk3MiA9IGk0OTsKLSAgICAgICAgICAgIGk3MyA9IDEwNCArIChpNDcgKyAy
IDw8IDIpIHwgMDsKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGkzNSA9IDEwNCAr
IChpNDcgKyAyIDw8IDIpIHwgMDsKLSAgICAgICAgICAgIGk0NiA9IEhFQVAzMltpMzUgPj4gMl0g
fCAwOwotICAgICAgICAgICAgaWYgKGk0NiA+Pj4gMCA+PSAoSEVBUDMyWzIwXSB8IDApID4+PiAw
KSB7Ci0gICAgICAgICAgICAgaTcyID0gaTQ2OwotICAgICAgICAgICAgIGk3MyA9IGkzNTsKLSAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF9hYm9ydCgpOwot
ICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICB9IHdoaWxlICgw
KTsKLSAgICAgICAgICBIRUFQMzJbaTczID4+IDJdID0gaTUyOwotICAgICAgICAgIEhFQVAzMltp
NzIgKyAxMiA+PiAyXSA9IGk1MjsKLSAgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDgpID4+
IDJdID0gaTcyOwotICAgICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgMTIpID4+IDJdID0gaTQ5
OwotICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotICAgICAgICAgaTQ3ID0gaTU2OwotICAg
ICAgICAgaTEyID0gaTcxID4+PiA4OwotICAgICAgICAgZG8gewotICAgICAgICAgIGlmICgoaTEy
IHwgMCkgPT0gMCkgewotICAgICAgICAgICBpNzQgPSAwOwotICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgIGlmIChpNzEgPj4+IDAgPiAxNjc3NzIxNSkgewotICAgICAgICAgICAgaTc0ID0g
MzE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotICAgICAgICAgICBpNDEgPSAo
aTEyICsgMTA0ODMyMCB8IDApID4+PiAxNiAmIDg7Ci0gICAgICAgICAgIGk1MyA9IGkxMiA8PCBp
NDE7Ci0gICAgICAgICAgIGkzNSA9IChpNTMgKyA1MjAxOTIgfCAwKSA+Pj4gMTYgJiA0OwotICAg
ICAgICAgICBpNDYgPSBpNTMgPDwgaTM1OwotICAgICAgICAgICBpNTMgPSAoaTQ2ICsgMjQ1NzYw
IHwgMCkgPj4+IDE2ICYgMjsKLSAgICAgICAgICAgaTQyID0gMTQgLSAoaTM1IHwgaTQxIHwgaTUz
KSArIChpNDYgPDwgaTUzID4+PiAxNSkgfCAwOwotICAgICAgICAgICBpNzQgPSBpNzEgPj4+ICgo
aTQyICsgNyB8IDApID4+PiAwKSAmIDEgfCBpNDIgPDwgMTsKLSAgICAgICAgICB9Ci0gICAgICAg
ICB9IHdoaWxlICgwKTsKLSAgICAgICAgIGkxMiA9IDM2OCArIChpNzQgPDwgMikgfCAwOwotICAg
ICAgICAgSEVBUDMyW2k1NSArIChpNDggKyAyOCkgPj4gMl0gPSBpNzQ7Ci0gICAgICAgICBIRUFQ
MzJbaTU1ICsgKGk0OCArIDIwKSA+PiAyXSA9IDA7Ci0gICAgICAgICBIRUFQMzJbaTU1ICsgKGk0
OCArIDE2KSA+PiAyXSA9IDA7Ci0gICAgICAgICBpNDkgPSBIRUFQMzJbMTddIHwgMDsKLSAgICAg
ICAgIGk0MiA9IDEgPDwgaTc0OwotICAgICAgICAgaWYgKChpNDkgJiBpNDIgfCAwKSA9PSAwKSB7
Ci0gICAgICAgICAgSEVBUDMyWzE3XSA9IGk0OSB8IGk0MjsKLSAgICAgICAgICBIRUFQMzJbaTEy
ID4+IDJdID0gaTQ3OwotICAgICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgMjQpID4+IDJdID0g
aTEyOwotICAgICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgMTIpID4+IDJdID0gaTQ3OwotICAg
ICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgOCkgPj4gMl0gPSBpNDc7Ci0gICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAoKGk3NCB8IDApID09IDMxKSB7Ci0gICAgICAg
ICAgaTc1ID0gMDsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaTc1ID0gMjUgLSAoaTc0
ID4+PiAxKSB8IDA7Ci0gICAgICAgICB9Ci0gICAgICAgICBpNDIgPSBpNzEgPDwgaTc1OwotICAg
ICAgICAgaTQ5ID0gSEVBUDMyW2kxMiA+PiAyXSB8IDA7Ci0gICAgICAgICB3aGlsZSAoMSkgewot
ICAgICAgICAgIGlmICgoSEVBUDMyW2k0OSArIDQgPj4gMl0gJiAtOCB8IDApID09IChpNzEgfCAw
KSkgewotICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaTc2ID0gaTQ5
ICsgMTYgKyAoaTQyID4+PiAzMSA8PCAyKSB8IDA7Ci0gICAgICAgICAgaTEyID0gSEVBUDMyW2k3
NiA+PiAyXSB8IDA7Ci0gICAgICAgICAgaWYgKChpMTIgfCAwKSA9PSAwKSB7Ci0gICAgICAgICAg
IGk0NSA9IDMxMzsKLSAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgaTQyID0gaTQyIDw8IDE7Ci0gICAgICAgICAgIGk0OSA9IGkxMjsKLSAgICAgICAgICB9
Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAoKGk0NSB8IDApID09IDMxMykgewotICAgICAgICAg
IGlmIChpNzYgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7Ci0gICAgICAgICAgIF9h
Ym9ydCgpOwotICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICBIRUFQMzJbaTc2ID4+IDJdID0gaTQ3OwotICAgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0
OCArIDI0KSA+PiAyXSA9IGk0OTsKLSAgICAgICAgICAgSEVBUDMyW2k1NSArIChpNDggKyAxMikg
Pj4gMl0gPSBpNDc7Ci0gICAgICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgOCkgPj4gMl0gPSBp
NDc7Ci0gICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAg
IGk0MiA9IGk0OSArIDggfCAwOwotICAgICAgICAgaTEyID0gSEVBUDMyW2k0MiA+PiAyXSB8IDA7
Ci0gICAgICAgICBpNTMgPSBIRUFQMzJbMjBdIHwgMDsKLSAgICAgICAgIGlmIChpNDkgPj4+IDAg
PCBpNTMgPj4+IDApIHsKLSAgICAgICAgICBfYWJvcnQoKTsKLSAgICAgICAgICByZXR1cm4gMDsK
LSAgICAgICAgIH0KLSAgICAgICAgIGlmIChpMTIgPj4+IDAgPCBpNTMgPj4+IDApIHsKLSAgICAg
ICAgICBfYWJvcnQoKTsKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgSEVBUDMyW2kxMiArIDEyID4+IDJdID0gaTQ3OwotICAgICAgICAgIEhFQVAzMltp
NDIgPj4gMl0gPSBpNDc7Ci0gICAgICAgICAgSEVBUDMyW2k1NSArIChpNDggKyA4KSA+PiAyXSA9
IGkxMjsKLSAgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDEyKSA+PiAyXSA9IGk0OTsKLSAg
ICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDI0KSA+PiAyXSA9IDA7Ci0gICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICB9IHdoaWxlICgwKTsKLSAgICAgICBp
MTMgPSBpNTUgKyAoaTY0IHwgOCkgfCAwOwotICAgICAgIHJldHVybiBpMTMgfCAwOwotICAgICAg
fQotICAgICB9IHdoaWxlICgwKTsKLSAgICAgaTUwID0gaTU3OwotICAgICBpNDggPSA1MTI7Ci0g
ICAgIHdoaWxlICgxKSB7Ci0gICAgICBpNzcgPSBIRUFQMzJbaTQ4ID4+IDJdIHwgMDsKLSAgICAg
IGlmIChpNzcgPj4+IDAgPD0gaTUwID4+PiAwKSB7Ci0gICAgICAgaTc4ID0gSEVBUDMyW2k0OCAr
IDQgPj4gMl0gfCAwOwotICAgICAgIGk3OSA9IGk3NyArIGk3OCB8IDA7Ci0gICAgICAgaWYgKGk3
OSA+Pj4gMCA+IGk1MCA+Pj4gMCkgewotICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gICAgICB9
Ci0gICAgICBpNDggPSBIRUFQMzJbaTQ4ICsgOCA+PiAyXSB8IDA7Ci0gICAgIH0KLSAgICAgaTQ4
ID0gaTc3ICsgKGk3OCAtIDM5KSB8IDA7Ci0gICAgIGlmICgoaTQ4ICYgNyB8IDApID09IDApIHsK
LSAgICAgIGk4MCA9IDA7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICBpODAgPSAtaTQ4ICYgNzsKLSAg
ICAgfQotICAgICBpNDggPSBpNzcgKyAoaTc4IC0gNDcgKyBpODApIHwgMDsKLSAgICAgaTU2ID0g
aTQ4ID4+PiAwIDwgKGk1NyArIDE2IHwgMCkgPj4+IDAgPyBpNTAgOiBpNDg7Ci0gICAgIGk0OCA9
IGk1NiArIDggfCAwOwotICAgICBpNTIgPSBpNTUgKyA4IHwgMDsKLSAgICAgaWYgKChpNTIgJiA3
IHwgMCkgPT0gMCkgewotICAgICAgaTgxID0gMDsKLSAgICAgfSBlbHNlIHsKLSAgICAgIGk4MSA9
IC1pNTIgJiA3OwotICAgICB9Ci0gICAgIGk1MiA9IGk1NCAtIDQwIC0gaTgxIHwgMDsKLSAgICAg
SEVBUDMyWzIyXSA9IGk1NSArIGk4MTsKLSAgICAgSEVBUDMyWzE5XSA9IGk1MjsKLSAgICAgSEVB
UDMyW2k1NSArIChpODEgKyA0KSA+PiAyXSA9IGk1MiB8IDE7Ci0gICAgIEhFQVAzMltpNTUgKyAo
aTU0IC0gMzYpID4+IDJdID0gNDA7Ci0gICAgIEhFQVAzMlsyM10gPSBIRUFQMzJbMTRdOwotICAg
ICBIRUFQMzJbaTU2ICsgNCA+PiAyXSA9IDI3OwotICAgICBIRUFQMzJbaTQ4ID4+IDJdID0gSEVB
UDMyWzEyOF07Ci0gICAgIEhFQVAzMltpNDggKyA0ID4+IDJdID0gSEVBUDMyWzUxNiA+PiAyXTsK
LSAgICAgSEVBUDMyW2k0OCArIDggPj4gMl0gPSBIRUFQMzJbNTIwID4+IDJdOwotICAgICBIRUFQ
MzJbaTQ4ICsgMTIgPj4gMl0gPSBIRUFQMzJbNTI0ID4+IDJdOwotICAgICBIRUFQMzJbMTI4XSA9
IGk1NTsKLSAgICAgSEVBUDMyWzEyOV0gPSBpNTQ7Ci0gICAgIEhFQVAzMlsxMzFdID0gMDsKLSAg
ICAgSEVBUDMyWzEzMF0gPSBpNDg7Ci0gICAgIGk0OCA9IGk1NiArIDI4IHwgMDsKLSAgICAgSEVB
UDMyW2k0OCA+PiAyXSA9IDc7Ci0gICAgIGlmICgoaTU2ICsgMzIgfCAwKSA+Pj4gMCA8IGk3OSA+
Pj4gMCkgewotICAgICAgaTUyID0gaTQ4OwotICAgICAgd2hpbGUgKDEpIHsKLSAgICAgICBpNDgg
PSBpNTIgKyA0IHwgMDsKLSAgICAgICBIRUFQMzJbaTQ4ID4+IDJdID0gNzsKLSAgICAgICBpZiAo
KGk1MiArIDggfCAwKSA+Pj4gMCA8IGk3OSA+Pj4gMCkgewotICAgICAgICBpNTIgPSBpNDg7Ci0g
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgfQotICAgICAgfQotICAgICB9
Ci0gICAgIGlmICgoaTU2IHwgMCkgPT0gKGk1MCB8IDApKSB7Ci0gICAgICBicmVhazsKLSAgICAg
fQotICAgICBpNTIgPSBpNTYgLSBpNTcgfCAwOwotICAgICBpNDggPSBpNTAgKyAoaTUyICsgNCkg
fCAwOwotICAgICBIRUFQMzJbaTQ4ID4+IDJdID0gSEVBUDMyW2k0OCA+PiAyXSAmIC0yOwotICAg
ICBIRUFQMzJbaTU3ICsgNCA+PiAyXSA9IGk1MiB8IDE7Ci0gICAgIEhFQVAzMltpNTAgKyBpNTIg
Pj4gMl0gPSBpNTI7Ci0gICAgIGk0OCA9IGk1MiA+Pj4gMzsKLSAgICAgaWYgKGk1MiA+Pj4gMCA8
IDI1NikgewotICAgICAgaTM2ID0gaTQ4IDw8IDE7Ci0gICAgICBpNTEgPSAxMDQgKyAoaTM2IDw8
IDIpIHwgMDsKLSAgICAgIGk0NCA9IEhFQVAzMlsxNl0gfCAwOwotICAgICAgaTEyID0gMSA8PCBp
NDg7Ci0gICAgICBkbyB7Ci0gICAgICAgaWYgKChpNDQgJiBpMTIgfCAwKSA9PSAwKSB7Ci0gICAg
ICAgIEhFQVAzMlsxNl0gPSBpNDQgfCBpMTI7Ci0gICAgICAgIGk4MiA9IGk1MTsKLSAgICAgICAg
aTgzID0gMTA0ICsgKGkzNiArIDIgPDwgMikgfCAwOwotICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
IGk0OCA9IDEwNCArIChpMzYgKyAyIDw8IDIpIHwgMDsKLSAgICAgICAgaTQyID0gSEVBUDMyW2k0
OCA+PiAyXSB8IDA7Ci0gICAgICAgIGlmIChpNDIgPj4+IDAgPj0gKEhFQVAzMlsyMF0gfCAwKSA+
Pj4gMCkgewotICAgICAgICAgaTgyID0gaTQyOwotICAgICAgICAgaTgzID0gaTQ4OwotICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAgIHJldHVybiAw
OwotICAgICAgIH0KLSAgICAgIH0gd2hpbGUgKDApOwotICAgICAgSEVBUDMyW2k4MyA+PiAyXSA9
IGk1NzsKLSAgICAgIEhFQVAzMltpODIgKyAxMiA+PiAyXSA9IGk1NzsKLSAgICAgIEhFQVAzMltp
NTcgKyA4ID4+IDJdID0gaTgyOwotICAgICAgSEVBUDMyW2k1NyArIDEyID4+IDJdID0gaTUxOwot
ICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgaTM2ID0gaTU3OwotICAgICBpMTIgPSBpNTIgPj4+
IDg7Ci0gICAgIGRvIHsKLSAgICAgIGlmICgoaTEyIHwgMCkgPT0gMCkgewotICAgICAgIGk4NCA9
IDA7Ci0gICAgICB9IGVsc2UgewotICAgICAgIGlmIChpNTIgPj4+IDAgPiAxNjc3NzIxNSkgewot
ICAgICAgICBpODQgPSAzMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgfQotICAgICAgIGk0NCA9
IChpMTIgKyAxMDQ4MzIwIHwgMCkgPj4+IDE2ICYgODsKLSAgICAgICBpNTAgPSBpMTIgPDwgaTQ0
OwotICAgICAgIGk1NiA9IChpNTAgKyA1MjAxOTIgfCAwKSA+Pj4gMTYgJiA0OwotICAgICAgIGk0
OCA9IGk1MCA8PCBpNTY7Ci0gICAgICAgaTUwID0gKGk0OCArIDI0NTc2MCB8IDApID4+PiAxNiAm
IDI7Ci0gICAgICAgaTQyID0gMTQgLSAoaTU2IHwgaTQ0IHwgaTUwKSArIChpNDggPDwgaTUwID4+
PiAxNSkgfCAwOwotICAgICAgIGk4NCA9IGk1MiA+Pj4gKChpNDIgKyA3IHwgMCkgPj4+IDApICYg
MSB8IGk0MiA8PCAxOwotICAgICAgfQotICAgICB9IHdoaWxlICgwKTsKLSAgICAgaTEyID0gMzY4
ICsgKGk4NCA8PCAyKSB8IDA7Ci0gICAgIEhFQVAzMltpNTcgKyAyOCA+PiAyXSA9IGk4NDsKLSAg
ICAgSEVBUDMyW2k1NyArIDIwID4+IDJdID0gMDsKLSAgICAgSEVBUDMyW2k1NyArIDE2ID4+IDJd
ID0gMDsKLSAgICAgaTUxID0gSEVBUDMyWzE3XSB8IDA7Ci0gICAgIGk0MiA9IDEgPDwgaTg0Owot
ICAgICBpZiAoKGk1MSAmIGk0MiB8IDApID09IDApIHsKLSAgICAgIEhFQVAzMlsxN10gPSBpNTEg
fCBpNDI7Ci0gICAgICBIRUFQMzJbaTEyID4+IDJdID0gaTM2OwotICAgICAgSEVBUDMyW2k1NyAr
IDI0ID4+IDJdID0gaTEyOwotICAgICAgSEVBUDMyW2k1NyArIDEyID4+IDJdID0gaTU3OwotICAg
ICAgSEVBUDMyW2k1NyArIDggPj4gMl0gPSBpNTc7Ci0gICAgICBicmVhazsKLSAgICAgfQotICAg
ICBpZiAoKGk4NCB8IDApID09IDMxKSB7Ci0gICAgICBpODUgPSAwOwotICAgICB9IGVsc2Ugewot
ICAgICAgaTg1ID0gMjUgLSAoaTg0ID4+PiAxKSB8IDA7Ci0gICAgIH0KLSAgICAgaTQyID0gaTUy
IDw8IGk4NTsKLSAgICAgaTUxID0gSEVBUDMyW2kxMiA+PiAyXSB8IDA7Ci0gICAgIHdoaWxlICgx
KSB7Ci0gICAgICBpZiAoKEhFQVAzMltpNTEgKyA0ID4+IDJdICYgLTggfCAwKSA9PSAoaTUyIHwg
MCkpIHsKLSAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICAgIGk4NiA9IGk1MSArIDE2ICsgKGk0
MiA+Pj4gMzEgPDwgMikgfCAwOwotICAgICAgaTEyID0gSEVBUDMyW2k4NiA+PiAyXSB8IDA7Ci0g
ICAgICBpZiAoKGkxMiB8IDApID09IDApIHsKLSAgICAgICBpNDUgPSAzNDg7Ci0gICAgICAgYnJl
YWs7Ci0gICAgICB9IGVsc2UgewotICAgICAgIGk0MiA9IGk0MiA8PCAxOwotICAgICAgIGk1MSA9
IGkxMjsKLSAgICAgIH0KLSAgICAgfQotICAgICBpZiAoKGk0NSB8IDApID09IDM0OCkgewotICAg
ICAgaWYgKGk4NiA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICBfYWJv
cnQoKTsKLSAgICAgICByZXR1cm4gMDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgSEVBUDMyW2k4
NiA+PiAyXSA9IGkzNjsKLSAgICAgICBIRUFQMzJbaTU3ICsgMjQgPj4gMl0gPSBpNTE7Ci0gICAg
ICAgSEVBUDMyW2k1NyArIDEyID4+IDJdID0gaTU3OwotICAgICAgIEhFQVAzMltpNTcgKyA4ID4+
IDJdID0gaTU3OwotICAgICAgIGJyZWFrOwotICAgICAgfQotICAgICB9Ci0gICAgIGk0MiA9IGk1
MSArIDggfCAwOwotICAgICBpNTIgPSBIRUFQMzJbaTQyID4+IDJdIHwgMDsKLSAgICAgaTEyID0g
SEVBUDMyWzIwXSB8IDA7Ci0gICAgIGlmIChpNTEgPj4+IDAgPCBpMTIgPj4+IDApIHsKLSAgICAg
IF9hYm9ydCgpOwotICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAgICAgaWYgKGk1MiA+Pj4gMCA8
IGkxMiA+Pj4gMCkgewotICAgICAgX2Fib3J0KCk7Ci0gICAgICByZXR1cm4gMDsKLSAgICAgfSBl
bHNlIHsKLSAgICAgIEhFQVAzMltpNTIgKyAxMiA+PiAyXSA9IGkzNjsKLSAgICAgIEhFQVAzMltp
NDIgPj4gMl0gPSBpMzY7Ci0gICAgICBIRUFQMzJbaTU3ICsgOCA+PiAyXSA9IGk1MjsKLSAgICAg
IEhFQVAzMltpNTcgKyAxMiA+PiAyXSA9IGk1MTsKLSAgICAgIEhFQVAzMltpNTcgKyAyNCA+PiAy
XSA9IDA7Ci0gICAgICBicmVhazsKLSAgICAgfQotICAgIH0KLSAgIH0gd2hpbGUgKDApOwotICAg
aTU3ID0gSEVBUDMyWzE5XSB8IDA7Ci0gICBpZiAoaTU3ID4+PiAwIDw9IGkxNCA+Pj4gMCkgewot
ICAgIGJyZWFrOwotICAgfQotICAgaTUyID0gaTU3IC0gaTE0IHwgMDsKLSAgIEhFQVAzMlsxOV0g
PSBpNTI7Ci0gICBpNTcgPSBIRUFQMzJbMjJdIHwgMDsKLSAgIGk0MiA9IGk1NzsKLSAgIEhFQVAz
MlsyMl0gPSBpNDIgKyBpMTQ7Ci0gICBIRUFQMzJbaTQyICsgKGkxNCArIDQpID4+IDJdID0gaTUy
IHwgMTsKLSAgIEhFQVAzMltpNTcgKyA0ID4+IDJdID0gaTE0IHwgMzsKLSAgIGkxMyA9IGk1NyAr
IDggfCAwOwotICAgcmV0dXJuIGkxMyB8IDA7Ci0gIH0KLSB9IHdoaWxlICgwKTsKLSBIRUFQMzJb
KF9fX2Vycm5vX2xvY2F0aW9uKCkgfCAwKSA+PiAyXSA9IDEyOwotIGkxMyA9IDA7Ci0gcmV0dXJu
IGkxMyB8IDA7Ci19Ci1mdW5jdGlvbiBfZnJlZShpMSkgewotIGkxID0gaTEgfCAwOwotIHZhciBp
MiA9IDAsIGkzID0gMCwgaTQgPSAwLCBpNSA9IDAsIGk2ID0gMCwgaTcgPSAwLCBpOCA9IDAsIGk5
ID0gMCwgaTEwID0gMCwgaTExID0gMCwgaTEyID0gMCwgaTEzID0gMCwgaTE0ID0gMCwgaTE1ID0g
MCwgaTE2ID0gMCwgaTE3ID0gMCwgaTE4ID0gMCwgaTE5ID0gMCwgaTIwID0gMCwgaTIxID0gMCwg
aTIyID0gMCwgaTIzID0gMCwgaTI0ID0gMCwgaTI1ID0gMCwgaTI2ID0gMCwgaTI3ID0gMCwgaTI4
ID0gMCwgaTI5ID0gMCwgaTMwID0gMCwgaTMxID0gMCwgaTMyID0gMCwgaTMzID0gMCwgaTM0ID0g
MCwgaTM1ID0gMCwgaTM2ID0gMCwgaTM3ID0gMCwgaTM4ID0gMCwgaTM5ID0gMCwgaTQwID0gMDsK
LSBpZiAoKGkxIHwgMCkgPT0gMCkgewotICByZXR1cm47Ci0gfQotIGkyID0gaTEgLSA4IHwgMDsK
LSBpMyA9IGkyOwotIGk0ID0gSEVBUDMyWzIwXSB8IDA7Ci0gaWYgKGkyID4+PiAwIDwgaTQgPj4+
IDApIHsKLSAgX2Fib3J0KCk7Ci0gfQotIGk1ID0gSEVBUDMyW2kxIC0gNCA+PiAyXSB8IDA7Ci0g
aTYgPSBpNSAmIDM7Ci0gaWYgKChpNiB8IDApID09IDEpIHsKLSAgX2Fib3J0KCk7Ci0gfQotIGk3
ID0gaTUgJiAtODsKLSBpOCA9IGkxICsgKGk3IC0gOCkgfCAwOwotIGk5ID0gaTg7Ci0gTDU0OSA6
IGRvIHsKLSAgaWYgKChpNSAmIDEgfCAwKSA9PSAwKSB7Ci0gICBpMTAgPSBIRUFQMzJbaTIgPj4g
Ml0gfCAwOwotICAgaWYgKChpNiB8IDApID09IDApIHsKLSAgICByZXR1cm47Ci0gICB9Ci0gICBp
MTEgPSAtOCAtIGkxMCB8IDA7Ci0gICBpMTIgPSBpMSArIGkxMSB8IDA7Ci0gICBpMTMgPSBpMTI7
Ci0gICBpMTQgPSBpMTAgKyBpNyB8IDA7Ci0gICBpZiAoaTEyID4+PiAwIDwgaTQgPj4+IDApIHsK
LSAgICBfYWJvcnQoKTsKLSAgIH0KLSAgIGlmICgoaTEzIHwgMCkgPT0gKEhFQVAzMlsyMV0gfCAw
KSkgewotICAgIGkxNSA9IGkxICsgKGk3IC0gNCkgfCAwOwotICAgIGlmICgoSEVBUDMyW2kxNSA+
PiAyXSAmIDMgfCAwKSAhPSAzKSB7Ci0gICAgIGkxNiA9IGkxMzsKLSAgICAgaTE3ID0gaTE0Owot
ICAgICBicmVhazsKLSAgICB9Ci0gICAgSEVBUDMyWzE4XSA9IGkxNDsKLSAgICBIRUFQMzJbaTE1
ID4+IDJdID0gSEVBUDMyW2kxNSA+PiAyXSAmIC0yOwotICAgIEhFQVAzMltpMSArIChpMTEgKyA0
KSA+PiAyXSA9IGkxNCB8IDE7Ci0gICAgSEVBUDMyW2k4ID4+IDJdID0gaTE0OwotICAgIHJldHVy
bjsKLSAgIH0KLSAgIGkxNSA9IGkxMCA+Pj4gMzsKLSAgIGlmIChpMTAgPj4+IDAgPCAyNTYpIHsK
LSAgICBpMTAgPSBIRUFQMzJbaTEgKyAoaTExICsgOCkgPj4gMl0gfCAwOwotICAgIGkxOCA9IEhF
QVAzMltpMSArIChpMTEgKyAxMikgPj4gMl0gfCAwOwotICAgIGkxOSA9IDEwNCArIChpMTUgPDwg
MSA8PCAyKSB8IDA7Ci0gICAgZG8gewotICAgICBpZiAoKGkxMCB8IDApICE9IChpMTkgfCAwKSkg
ewotICAgICAgaWYgKGkxMCA+Pj4gMCA8IGk0ID4+PiAwKSB7Ci0gICAgICAgX2Fib3J0KCk7Ci0g
ICAgICB9Ci0gICAgICBpZiAoKEhFQVAzMltpMTAgKyAxMiA+PiAyXSB8IDApID09IChpMTMgfCAw
KSkgewotICAgICAgIGJyZWFrOwotICAgICAgfQotICAgICAgX2Fib3J0KCk7Ci0gICAgIH0KLSAg
ICB9IHdoaWxlICgwKTsKLSAgICBpZiAoKGkxOCB8IDApID09IChpMTAgfCAwKSkgewotICAgICBI
RUFQMzJbMTZdID0gSEVBUDMyWzE2XSAmIH4oMSA8PCBpMTUpOwotICAgICBpMTYgPSBpMTM7Ci0g
ICAgIGkxNyA9IGkxNDsKLSAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRvIHsKLSAgICAgaWYgKChp
MTggfCAwKSA9PSAoaTE5IHwgMCkpIHsKLSAgICAgIGkyMCA9IGkxOCArIDggfCAwOwotICAgICB9
IGVsc2UgewotICAgICAgaWYgKGkxOCA+Pj4gMCA8IGk0ID4+PiAwKSB7Ci0gICAgICAgX2Fib3J0
KCk7Ci0gICAgICB9Ci0gICAgICBpMjEgPSBpMTggKyA4IHwgMDsKLSAgICAgIGlmICgoSEVBUDMy
W2kyMSA+PiAyXSB8IDApID09IChpMTMgfCAwKSkgewotICAgICAgIGkyMCA9IGkyMTsKLSAgICAg
ICBicmVhazsKLSAgICAgIH0KLSAgICAgIF9hYm9ydCgpOwotICAgICB9Ci0gICAgfSB3aGlsZSAo
MCk7Ci0gICAgSEVBUDMyW2kxMCArIDEyID4+IDJdID0gaTE4OwotICAgIEhFQVAzMltpMjAgPj4g
Ml0gPSBpMTA7Ci0gICAgaTE2ID0gaTEzOwotICAgIGkxNyA9IGkxNDsKLSAgICBicmVhazsKLSAg
IH0KLSAgIGkxOSA9IGkxMjsKLSAgIGkxNSA9IEhFQVAzMltpMSArIChpMTEgKyAyNCkgPj4gMl0g
fCAwOwotICAgaTIxID0gSEVBUDMyW2kxICsgKGkxMSArIDEyKSA+PiAyXSB8IDA7Ci0gICBkbyB7
Ci0gICAgaWYgKChpMjEgfCAwKSA9PSAoaTE5IHwgMCkpIHsKLSAgICAgaTIyID0gaTEgKyAoaTEx
ICsgMjApIHwgMDsKLSAgICAgaTIzID0gSEVBUDMyW2kyMiA+PiAyXSB8IDA7Ci0gICAgIGlmICgo
aTIzIHwgMCkgPT0gMCkgewotICAgICAgaTI0ID0gaTEgKyAoaTExICsgMTYpIHwgMDsKLSAgICAg
IGkyNSA9IEhFQVAzMltpMjQgPj4gMl0gfCAwOwotICAgICAgaWYgKChpMjUgfCAwKSA9PSAwKSB7
Ci0gICAgICAgaTI2ID0gMDsKLSAgICAgICBicmVhazsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAg
aTI3ID0gaTI1OwotICAgICAgIGkyOCA9IGkyNDsKLSAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAg
ICAgIGkyNyA9IGkyMzsKLSAgICAgIGkyOCA9IGkyMjsKLSAgICAgfQotICAgICB3aGlsZSAoMSkg
ewotICAgICAgaTIyID0gaTI3ICsgMjAgfCAwOwotICAgICAgaTIzID0gSEVBUDMyW2kyMiA+PiAy
XSB8IDA7Ci0gICAgICBpZiAoKGkyMyB8IDApICE9IDApIHsKLSAgICAgICBpMjcgPSBpMjM7Ci0g
ICAgICAgaTI4ID0gaTIyOwotICAgICAgIGNvbnRpbnVlOwotICAgICAgfQotICAgICAgaTIyID0g
aTI3ICsgMTYgfCAwOwotICAgICAgaTIzID0gSEVBUDMyW2kyMiA+PiAyXSB8IDA7Ci0gICAgICBp
ZiAoKGkyMyB8IDApID09IDApIHsKLSAgICAgICBicmVhazsKLSAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgaTI3ID0gaTIzOwotICAgICAgIGkyOCA9IGkyMjsKLSAgICAgIH0KLSAgICAgfQotICAgICBp
ZiAoaTI4ID4+PiAwIDwgaTQgPj4+IDApIHsKLSAgICAgIF9hYm9ydCgpOwotICAgICB9IGVsc2Ug
ewotICAgICAgSEVBUDMyW2kyOCA+PiAyXSA9IDA7Ci0gICAgICBpMjYgPSBpMjc7Ci0gICAgICBi
cmVhazsKLSAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgIGkyMiA9IEhFQVAzMltpMSArIChpMTEg
KyA4KSA+PiAyXSB8IDA7Ci0gICAgIGlmIChpMjIgPj4+IDAgPCBpNCA+Pj4gMCkgewotICAgICAg
X2Fib3J0KCk7Ci0gICAgIH0KLSAgICAgaTIzID0gaTIyICsgMTIgfCAwOwotICAgICBpZiAoKEhF
QVAzMltpMjMgPj4gMl0gfCAwKSAhPSAoaTE5IHwgMCkpIHsKLSAgICAgIF9hYm9ydCgpOwotICAg
ICB9Ci0gICAgIGkyNCA9IGkyMSArIDggfCAwOwotICAgICBpZiAoKEhFQVAzMltpMjQgPj4gMl0g
fCAwKSA9PSAoaTE5IHwgMCkpIHsKLSAgICAgIEhFQVAzMltpMjMgPj4gMl0gPSBpMjE7Ci0gICAg
ICBIRUFQMzJbaTI0ID4+IDJdID0gaTIyOwotICAgICAgaTI2ID0gaTIxOwotICAgICAgYnJlYWs7
Ci0gICAgIH0gZWxzZSB7Ci0gICAgICBfYWJvcnQoKTsKLSAgICAgfQotICAgIH0KLSAgIH0gd2hp
bGUgKDApOwotICAgaWYgKChpMTUgfCAwKSA9PSAwKSB7Ci0gICAgaTE2ID0gaTEzOwotICAgIGkx
NyA9IGkxNDsKLSAgICBicmVhazsKLSAgIH0KLSAgIGkyMSA9IGkxICsgKGkxMSArIDI4KSB8IDA7
Ci0gICBpMTIgPSAzNjggKyAoSEVBUDMyW2kyMSA+PiAyXSA8PCAyKSB8IDA7Ci0gICBkbyB7Ci0g
ICAgaWYgKChpMTkgfCAwKSA9PSAoSEVBUDMyW2kxMiA+PiAyXSB8IDApKSB7Ci0gICAgIEhFQVAz
MltpMTIgPj4gMl0gPSBpMjY7Ci0gICAgIGlmICgoaTI2IHwgMCkgIT0gMCkgewotICAgICAgYnJl
YWs7Ci0gICAgIH0KLSAgICAgSEVBUDMyWzE3XSA9IEhFQVAzMlsxN10gJiB+KDEgPDwgSEVBUDMy
W2kyMSA+PiAyXSk7Ci0gICAgIGkxNiA9IGkxMzsKLSAgICAgaTE3ID0gaTE0OwotICAgICBicmVh
ayBMNTQ5OwotICAgIH0gZWxzZSB7Ci0gICAgIGlmIChpMTUgPj4+IDAgPCAoSEVBUDMyWzIwXSB8
IDApID4+PiAwKSB7Ci0gICAgICBfYWJvcnQoKTsKLSAgICAgfQotICAgICBpMTAgPSBpMTUgKyAx
NiB8IDA7Ci0gICAgIGlmICgoSEVBUDMyW2kxMCA+PiAyXSB8IDApID09IChpMTkgfCAwKSkgewot
ICAgICAgSEVBUDMyW2kxMCA+PiAyXSA9IGkyNjsKLSAgICAgfSBlbHNlIHsKLSAgICAgIEhFQVAz
MltpMTUgKyAyMCA+PiAyXSA9IGkyNjsKLSAgICAgfQotICAgICBpZiAoKGkyNiB8IDApID09IDAp
IHsKLSAgICAgIGkxNiA9IGkxMzsKLSAgICAgIGkxNyA9IGkxNDsKLSAgICAgIGJyZWFrIEw1NDk7
Ci0gICAgIH0KLSAgICB9Ci0gICB9IHdoaWxlICgwKTsKLSAgIGlmIChpMjYgPj4+IDAgPCAoSEVB
UDMyWzIwXSB8IDApID4+PiAwKSB7Ci0gICAgX2Fib3J0KCk7Ci0gICB9Ci0gICBIRUFQMzJbaTI2
ICsgMjQgPj4gMl0gPSBpMTU7Ci0gICBpMTkgPSBIRUFQMzJbaTEgKyAoaTExICsgMTYpID4+IDJd
IHwgMDsKLSAgIGRvIHsKLSAgICBpZiAoKGkxOSB8IDApICE9IDApIHsKLSAgICAgaWYgKGkxOSA+
Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgIF9hYm9ydCgpOwotICAgICB9
IGVsc2UgewotICAgICAgSEVBUDMyW2kyNiArIDE2ID4+IDJdID0gaTE5OwotICAgICAgSEVBUDMy
W2kxOSArIDI0ID4+IDJdID0gaTI2OwotICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICB9Ci0gICB9
IHdoaWxlICgwKTsKLSAgIGkxOSA9IEhFQVAzMltpMSArIChpMTEgKyAyMCkgPj4gMl0gfCAwOwot
ICAgaWYgKChpMTkgfCAwKSA9PSAwKSB7Ci0gICAgaTE2ID0gaTEzOwotICAgIGkxNyA9IGkxNDsK
LSAgICBicmVhazsKLSAgIH0KLSAgIGlmIChpMTkgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+
PiAwKSB7Ci0gICAgX2Fib3J0KCk7Ci0gICB9IGVsc2UgewotICAgIEhFQVAzMltpMjYgKyAyMCA+
PiAyXSA9IGkxOTsKLSAgICBIRUFQMzJbaTE5ICsgMjQgPj4gMl0gPSBpMjY7Ci0gICAgaTE2ID0g
aTEzOwotICAgIGkxNyA9IGkxNDsKLSAgICBicmVhazsKLSAgIH0KLSAgfSBlbHNlIHsKLSAgIGkx
NiA9IGkzOwotICAgaTE3ID0gaTc7Ci0gIH0KLSB9IHdoaWxlICgwKTsKLSBpMyA9IGkxNjsKLSBp
ZiAoaTMgPj4+IDAgPj0gaTggPj4+IDApIHsKLSAgX2Fib3J0KCk7Ci0gfQotIGkyNiA9IGkxICsg
KGk3IC0gNCkgfCAwOwotIGk0ID0gSEVBUDMyW2kyNiA+PiAyXSB8IDA7Ci0gaWYgKChpNCAmIDEg
fCAwKSA9PSAwKSB7Ci0gIF9hYm9ydCgpOwotIH0KLSBkbyB7Ci0gIGlmICgoaTQgJiAyIHwgMCkg
PT0gMCkgewotICAgaWYgKChpOSB8IDApID09IChIRUFQMzJbMjJdIHwgMCkpIHsKLSAgICBpMjcg
PSAoSEVBUDMyWzE5XSB8IDApICsgaTE3IHwgMDsKLSAgICBIRUFQMzJbMTldID0gaTI3OwotICAg
IEhFQVAzMlsyMl0gPSBpMTY7Ci0gICAgSEVBUDMyW2kxNiArIDQgPj4gMl0gPSBpMjcgfCAxOwot
ICAgIGlmICgoaTE2IHwgMCkgIT0gKEhFQVAzMlsyMV0gfCAwKSkgewotICAgICByZXR1cm47Ci0g
ICAgfQotICAgIEhFQVAzMlsyMV0gPSAwOwotICAgIEhFQVAzMlsxOF0gPSAwOwotICAgIHJldHVy
bjsKLSAgIH0KLSAgIGlmICgoaTkgfCAwKSA9PSAoSEVBUDMyWzIxXSB8IDApKSB7Ci0gICAgaTI3
ID0gKEhFQVAzMlsxOF0gfCAwKSArIGkxNyB8IDA7Ci0gICAgSEVBUDMyWzE4XSA9IGkyNzsKLSAg
ICBIRUFQMzJbMjFdID0gaTE2OwotICAgIEhFQVAzMltpMTYgKyA0ID4+IDJdID0gaTI3IHwgMTsK
LSAgICBIRUFQMzJbaTMgKyBpMjcgPj4gMl0gPSBpMjc7Ci0gICAgcmV0dXJuOwotICAgfQotICAg
aTI3ID0gKGk0ICYgLTgpICsgaTE3IHwgMDsKLSAgIGkyOCA9IGk0ID4+PiAzOwotICAgTDY1MiA6
IGRvIHsKLSAgICBpZiAoaTQgPj4+IDAgPCAyNTYpIHsKLSAgICAgaTIwID0gSEVBUDMyW2kxICsg
aTcgPj4gMl0gfCAwOwotICAgICBpNiA9IEhFQVAzMltpMSArIChpNyB8IDQpID4+IDJdIHwgMDsK
LSAgICAgaTIgPSAxMDQgKyAoaTI4IDw8IDEgPDwgMikgfCAwOwotICAgICBkbyB7Ci0gICAgICBp
ZiAoKGkyMCB8IDApICE9IChpMiB8IDApKSB7Ci0gICAgICAgaWYgKGkyMCA+Pj4gMCA8IChIRUFQ
MzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAgfQotICAgICAg
IGlmICgoSEVBUDMyW2kyMCArIDEyID4+IDJdIHwgMCkgPT0gKGk5IHwgMCkpIHsKLSAgICAgICAg
YnJlYWs7Ci0gICAgICAgfQotICAgICAgIF9hYm9ydCgpOwotICAgICAgfQotICAgICB9IHdoaWxl
ICgwKTsKLSAgICAgaWYgKChpNiB8IDApID09IChpMjAgfCAwKSkgewotICAgICAgSEVBUDMyWzE2
XSA9IEhFQVAzMlsxNl0gJiB+KDEgPDwgaTI4KTsKLSAgICAgIGJyZWFrOwotICAgICB9Ci0gICAg
IGRvIHsKLSAgICAgIGlmICgoaTYgfCAwKSA9PSAoaTIgfCAwKSkgewotICAgICAgIGkyOSA9IGk2
ICsgOCB8IDA7Ci0gICAgICB9IGVsc2UgewotICAgICAgIGlmIChpNiA+Pj4gMCA8IChIRUFQMzJb
MjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAgfQotICAgICAgIGk1
ID0gaTYgKyA4IHwgMDsKLSAgICAgICBpZiAoKEhFQVAzMltpNSA+PiAyXSB8IDApID09IChpOSB8
IDApKSB7Ci0gICAgICAgIGkyOSA9IGk1OwotICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gICAg
ICAgX2Fib3J0KCk7Ci0gICAgICB9Ci0gICAgIH0gd2hpbGUgKDApOwotICAgICBIRUFQMzJbaTIw
ICsgMTIgPj4gMl0gPSBpNjsKLSAgICAgSEVBUDMyW2kyOSA+PiAyXSA9IGkyMDsKLSAgICB9IGVs
c2UgewotICAgICBpMiA9IGk4OwotICAgICBpNSA9IEhFQVAzMltpMSArIChpNyArIDE2KSA+PiAy
XSB8IDA7Ci0gICAgIGkxOSA9IEhFQVAzMltpMSArIChpNyB8IDQpID4+IDJdIHwgMDsKLSAgICAg
ZG8gewotICAgICAgaWYgKChpMTkgfCAwKSA9PSAoaTIgfCAwKSkgewotICAgICAgIGkxNSA9IGkx
ICsgKGk3ICsgMTIpIHwgMDsKLSAgICAgICBpMjEgPSBIRUFQMzJbaTE1ID4+IDJdIHwgMDsKLSAg
ICAgICBpZiAoKGkyMSB8IDApID09IDApIHsKLSAgICAgICAgaTEyID0gaTEgKyAoaTcgKyA4KSB8
IDA7Ci0gICAgICAgIGkxMCA9IEhFQVAzMltpMTIgPj4gMl0gfCAwOwotICAgICAgICBpZiAoKGkx
MCB8IDApID09IDApIHsKLSAgICAgICAgIGkzMCA9IDA7Ci0gICAgICAgICBicmVhazsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgIGkzMSA9IGkxMDsKLSAgICAgICAgIGkzMiA9IGkxMjsKLSAg
ICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGkzMSA9IGkyMTsKLSAgICAgICAgaTMy
ID0gaTE1OwotICAgICAgIH0KLSAgICAgICB3aGlsZSAoMSkgewotICAgICAgICBpMTUgPSBpMzEg
KyAyMCB8IDA7Ci0gICAgICAgIGkyMSA9IEhFQVAzMltpMTUgPj4gMl0gfCAwOwotICAgICAgICBp
ZiAoKGkyMSB8IDApICE9IDApIHsKLSAgICAgICAgIGkzMSA9IGkyMTsKLSAgICAgICAgIGkzMiA9
IGkxNTsKLSAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGkxNSA9IGkzMSAr
IDE2IHwgMDsKLSAgICAgICAgaTIxID0gSEVBUDMyW2kxNSA+PiAyXSB8IDA7Ci0gICAgICAgIGlm
ICgoaTIxIHwgMCkgPT0gMCkgewotICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICBpMzEgPSBpMjE7Ci0gICAgICAgICBpMzIgPSBpMTU7Ci0gICAgICAgIH0KLSAgICAg
ICB9Ci0gICAgICAgaWYgKGkzMiA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAg
ICAgICAgX2Fib3J0KCk7Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgSEVBUDMyW2kzMiA+PiAy
XSA9IDA7Ci0gICAgICAgIGkzMCA9IGkzMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgfQotICAg
ICAgfSBlbHNlIHsKLSAgICAgICBpMTUgPSBIRUFQMzJbaTEgKyBpNyA+PiAyXSB8IDA7Ci0gICAg
ICAgaWYgKGkxNSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgICAgX2Fi
b3J0KCk7Ci0gICAgICAgfQotICAgICAgIGkyMSA9IGkxNSArIDEyIHwgMDsKLSAgICAgICBpZiAo
KEhFQVAzMltpMjEgPj4gMl0gfCAwKSAhPSAoaTIgfCAwKSkgewotICAgICAgICBfYWJvcnQoKTsK
LSAgICAgICB9Ci0gICAgICAgaTEyID0gaTE5ICsgOCB8IDA7Ci0gICAgICAgaWYgKChIRUFQMzJb
aTEyID4+IDJdIHwgMCkgPT0gKGkyIHwgMCkpIHsKLSAgICAgICAgSEVBUDMyW2kyMSA+PiAyXSA9
IGkxOTsKLSAgICAgICAgSEVBUDMyW2kxMiA+PiAyXSA9IGkxNTsKLSAgICAgICAgaTMwID0gaTE5
OwotICAgICAgICBicmVhazsKLSAgICAgICB9IGVsc2UgewotICAgICAgICBfYWJvcnQoKTsKLSAg
ICAgICB9Ci0gICAgICB9Ci0gICAgIH0gd2hpbGUgKDApOwotICAgICBpZiAoKGk1IHwgMCkgPT0g
MCkgewotICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgaTE5ID0gaTEgKyAoaTcgKyAyMCkgfCAw
OwotICAgICBpMjAgPSAzNjggKyAoSEVBUDMyW2kxOSA+PiAyXSA8PCAyKSB8IDA7Ci0gICAgIGRv
IHsKLSAgICAgIGlmICgoaTIgfCAwKSA9PSAoSEVBUDMyW2kyMCA+PiAyXSB8IDApKSB7Ci0gICAg
ICAgSEVBUDMyW2kyMCA+PiAyXSA9IGkzMDsKLSAgICAgICBpZiAoKGkzMCB8IDApICE9IDApIHsK
LSAgICAgICAgYnJlYWs7Ci0gICAgICAgfQotICAgICAgIEhFQVAzMlsxN10gPSBIRUFQMzJbMTdd
ICYgfigxIDw8IEhFQVAzMltpMTkgPj4gMl0pOwotICAgICAgIGJyZWFrIEw2NTI7Ci0gICAgICB9
IGVsc2UgewotICAgICAgIGlmIChpNSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsK
LSAgICAgICAgX2Fib3J0KCk7Ci0gICAgICAgfQotICAgICAgIGk2ID0gaTUgKyAxNiB8IDA7Ci0g
ICAgICAgaWYgKChIRUFQMzJbaTYgPj4gMl0gfCAwKSA9PSAoaTIgfCAwKSkgewotICAgICAgICBI
RUFQMzJbaTYgPj4gMl0gPSBpMzA7Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgSEVBUDMyW2k1
ICsgMjAgPj4gMl0gPSBpMzA7Ci0gICAgICAgfQotICAgICAgIGlmICgoaTMwIHwgMCkgPT0gMCkg
ewotICAgICAgICBicmVhayBMNjUyOwotICAgICAgIH0KLSAgICAgIH0KLSAgICAgfSB3aGlsZSAo
MCk7Ci0gICAgIGlmIChpMzAgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7Ci0gICAg
ICBfYWJvcnQoKTsKLSAgICAgfQotICAgICBIRUFQMzJbaTMwICsgMjQgPj4gMl0gPSBpNTsKLSAg
ICAgaTIgPSBIRUFQMzJbaTEgKyAoaTcgKyA4KSA+PiAyXSB8IDA7Ci0gICAgIGRvIHsKLSAgICAg
IGlmICgoaTIgfCAwKSAhPSAwKSB7Ci0gICAgICAgaWYgKGkyID4+PiAwIDwgKEhFQVAzMlsyMF0g
fCAwKSA+Pj4gMCkgewotICAgICAgICBfYWJvcnQoKTsKLSAgICAgICB9IGVsc2UgewotICAgICAg
ICBIRUFQMzJbaTMwICsgMTYgPj4gMl0gPSBpMjsKLSAgICAgICAgSEVBUDMyW2kyICsgMjQgPj4g
Ml0gPSBpMzA7Ci0gICAgICAgIGJyZWFrOwotICAgICAgIH0KLSAgICAgIH0KLSAgICAgfSB3aGls
ZSAoMCk7Ci0gICAgIGkyID0gSEVBUDMyW2kxICsgKGk3ICsgMTIpID4+IDJdIHwgMDsKLSAgICAg
aWYgKChpMiB8IDApID09IDApIHsKLSAgICAgIGJyZWFrOwotICAgICB9Ci0gICAgIGlmIChpMiA+
Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKLSAgICAgIF9hYm9ydCgpOwotICAgICB9
IGVsc2UgewotICAgICAgSEVBUDMyW2kzMCArIDIwID4+IDJdID0gaTI7Ci0gICAgICBIRUFQMzJb
aTIgKyAyNCA+PiAyXSA9IGkzMDsKLSAgICAgIGJyZWFrOwotICAgICB9Ci0gICAgfQotICAgfSB3
aGlsZSAoMCk7Ci0gICBIRUFQMzJbaTE2ICsgNCA+PiAyXSA9IGkyNyB8IDE7Ci0gICBIRUFQMzJb
aTMgKyBpMjcgPj4gMl0gPSBpMjc7Ci0gICBpZiAoKGkxNiB8IDApICE9IChIRUFQMzJbMjFdIHwg
MCkpIHsKLSAgICBpMzMgPSBpMjc7Ci0gICAgYnJlYWs7Ci0gICB9Ci0gICBIRUFQMzJbMThdID0g
aTI3OwotICAgcmV0dXJuOwotICB9IGVsc2UgewotICAgSEVBUDMyW2kyNiA+PiAyXSA9IGk0ICYg
LTI7Ci0gICBIRUFQMzJbaTE2ICsgNCA+PiAyXSA9IGkxNyB8IDE7Ci0gICBIRUFQMzJbaTMgKyBp
MTcgPj4gMl0gPSBpMTc7Ci0gICBpMzMgPSBpMTc7Ci0gIH0KLSB9IHdoaWxlICgwKTsKLSBpMTcg
PSBpMzMgPj4+IDM7Ci0gaWYgKGkzMyA+Pj4gMCA8IDI1NikgewotICBpMyA9IGkxNyA8PCAxOwot
ICBpNCA9IDEwNCArIChpMyA8PCAyKSB8IDA7Ci0gIGkyNiA9IEhFQVAzMlsxNl0gfCAwOwotICBp
MzAgPSAxIDw8IGkxNzsKLSAgZG8gewotICAgaWYgKChpMjYgJiBpMzAgfCAwKSA9PSAwKSB7Ci0g
ICAgSEVBUDMyWzE2XSA9IGkyNiB8IGkzMDsKLSAgICBpMzQgPSBpNDsKLSAgICBpMzUgPSAxMDQg
KyAoaTMgKyAyIDw8IDIpIHwgMDsKLSAgIH0gZWxzZSB7Ci0gICAgaTE3ID0gMTA0ICsgKGkzICsg
MiA8PCAyKSB8IDA7Ci0gICAgaTcgPSBIRUFQMzJbaTE3ID4+IDJdIHwgMDsKLSAgICBpZiAoaTcg
Pj4+IDAgPj0gKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgewotICAgICBpMzQgPSBpNzsKLSAgICAg
aTM1ID0gaTE3OwotICAgICBicmVhazsKLSAgICB9Ci0gICAgX2Fib3J0KCk7Ci0gICB9Ci0gIH0g
d2hpbGUgKDApOwotICBIRUFQMzJbaTM1ID4+IDJdID0gaTE2OwotICBIRUFQMzJbaTM0ICsgMTIg
Pj4gMl0gPSBpMTY7Ci0gIEhFQVAzMltpMTYgKyA4ID4+IDJdID0gaTM0OwotICBIRUFQMzJbaTE2
ICsgMTIgPj4gMl0gPSBpNDsKLSAgcmV0dXJuOwotIH0KLSBpNCA9IGkxNjsKLSBpMzQgPSBpMzMg
Pj4+IDg7Ci0gZG8gewotICBpZiAoKGkzNCB8IDApID09IDApIHsKLSAgIGkzNiA9IDA7Ci0gIH0g
ZWxzZSB7Ci0gICBpZiAoaTMzID4+PiAwID4gMTY3NzcyMTUpIHsKLSAgICBpMzYgPSAzMTsKLSAg
ICBicmVhazsKLSAgIH0KLSAgIGkzNSA9IChpMzQgKyAxMDQ4MzIwIHwgMCkgPj4+IDE2ICYgODsK
LSAgIGkzID0gaTM0IDw8IGkzNTsKLSAgIGkzMCA9IChpMyArIDUyMDE5MiB8IDApID4+PiAxNiAm
IDQ7Ci0gICBpMjYgPSBpMyA8PCBpMzA7Ci0gICBpMyA9IChpMjYgKyAyNDU3NjAgfCAwKSA+Pj4g
MTYgJiAyOwotICAgaTE3ID0gMTQgLSAoaTMwIHwgaTM1IHwgaTMpICsgKGkyNiA8PCBpMyA+Pj4g
MTUpIHwgMDsKLSAgIGkzNiA9IGkzMyA+Pj4gKChpMTcgKyA3IHwgMCkgPj4+IDApICYgMSB8IGkx
NyA8PCAxOwotICB9Ci0gfSB3aGlsZSAoMCk7Ci0gaTM0ID0gMzY4ICsgKGkzNiA8PCAyKSB8IDA7
Ci0gSEVBUDMyW2kxNiArIDI4ID4+IDJdID0gaTM2OwotIEhFQVAzMltpMTYgKyAyMCA+PiAyXSA9
IDA7Ci0gSEVBUDMyW2kxNiArIDE2ID4+IDJdID0gMDsKLSBpMTcgPSBIRUFQMzJbMTddIHwgMDsK
LSBpMyA9IDEgPDwgaTM2OwotIGRvIHsKLSAgaWYgKChpMTcgJiBpMyB8IDApID09IDApIHsKLSAg
IEhFQVAzMlsxN10gPSBpMTcgfCBpMzsKLSAgIEhFQVAzMltpMzQgPj4gMl0gPSBpNDsKLSAgIEhF
QVAzMltpMTYgKyAyNCA+PiAyXSA9IGkzNDsKLSAgIEhFQVAzMltpMTYgKyAxMiA+PiAyXSA9IGkx
NjsKLSAgIEhFQVAzMltpMTYgKyA4ID4+IDJdID0gaTE2OwotICB9IGVsc2UgewotICAgaWYgKChp
MzYgfCAwKSA9PSAzMSkgewotICAgIGkzNyA9IDA7Ci0gICB9IGVsc2UgewotICAgIGkzNyA9IDI1
IC0gKGkzNiA+Pj4gMSkgfCAwOwotICAgfQotICAgaTI2ID0gaTMzIDw8IGkzNzsKLSAgIGkzNSA9
IEhFQVAzMltpMzQgPj4gMl0gfCAwOwotICAgd2hpbGUgKDEpIHsKLSAgICBpZiAoKEhFQVAzMltp
MzUgKyA0ID4+IDJdICYgLTggfCAwKSA9PSAoaTMzIHwgMCkpIHsKLSAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGkzOCA9IGkzNSArIDE2ICsgKGkyNiA+Pj4gMzEgPDwgMikgfCAwOwotICAgIGkzMCA9
IEhFQVAzMltpMzggPj4gMl0gfCAwOwotICAgIGlmICgoaTMwIHwgMCkgPT0gMCkgewotICAgICBp
MzkgPSA1MjU7Ci0gICAgIGJyZWFrOwotICAgIH0gZWxzZSB7Ci0gICAgIGkyNiA9IGkyNiA8PCAx
OwotICAgICBpMzUgPSBpMzA7Ci0gICAgfQotICAgfQotICAgaWYgKChpMzkgfCAwKSA9PSA1MjUp
IHsKLSAgICBpZiAoaTM4ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgewotICAgICBf
YWJvcnQoKTsKLSAgICB9IGVsc2UgewotICAgICBIRUFQMzJbaTM4ID4+IDJdID0gaTQ7Ci0gICAg
IEhFQVAzMltpMTYgKyAyNCA+PiAyXSA9IGkzNTsKLSAgICAgSEVBUDMyW2kxNiArIDEyID4+IDJd
ID0gaTE2OwotICAgICBIRUFQMzJbaTE2ICsgOCA+PiAyXSA9IGkxNjsKLSAgICAgYnJlYWs7Ci0g
ICAgfQotICAgfQotICAgaTI2ID0gaTM1ICsgOCB8IDA7Ci0gICBpMjcgPSBIRUFQMzJbaTI2ID4+
IDJdIHwgMDsKLSAgIGkzMCA9IEhFQVAzMlsyMF0gfCAwOwotICAgaWYgKGkzNSA+Pj4gMCA8IGkz
MCA+Pj4gMCkgewotICAgIF9hYm9ydCgpOwotICAgfQotICAgaWYgKGkyNyA+Pj4gMCA8IGkzMCA+
Pj4gMCkgewotICAgIF9hYm9ydCgpOwotICAgfSBlbHNlIHsKLSAgICBIRUFQMzJbaTI3ICsgMTIg
Pj4gMl0gPSBpNDsKLSAgICBIRUFQMzJbaTI2ID4+IDJdID0gaTQ7Ci0gICAgSEVBUDMyW2kxNiAr
IDggPj4gMl0gPSBpMjc7Ci0gICAgSEVBUDMyW2kxNiArIDEyID4+IDJdID0gaTM1OwotICAgIEhF
QVAzMltpMTYgKyAyNCA+PiAyXSA9IDA7Ci0gICAgYnJlYWs7Ci0gICB9Ci0gIH0KLSB9IHdoaWxl
ICgwKTsKLSBpMTYgPSAoSEVBUDMyWzI0XSB8IDApIC0gMSB8IDA7Ci0gSEVBUDMyWzI0XSA9IGkx
NjsKLSBpZiAoKGkxNiB8IDApID09IDApIHsKLSAgaTQwID0gNTIwOwotIH0gZWxzZSB7Ci0gIHJl
dHVybjsKLSB9Ci0gd2hpbGUgKDEpIHsKLSAgaTE2ID0gSEVBUDMyW2k0MCA+PiAyXSB8IDA7Ci0g
IGlmICgoaTE2IHwgMCkgPT0gMCkgewotICAgYnJlYWs7Ci0gIH0gZWxzZSB7Ci0gICBpNDAgPSBp
MTYgKyA4IHwgMDsKLSAgfQotIH0KLSBIRUFQMzJbMjRdID0gLTE7Ci0gcmV0dXJuOwotfQotZnVu
Y3Rpb24gX3N0cmxlbihpMSkgewotIGkxID0gaTEgfCAwOwotIHZhciBpMiA9IDA7Ci0gaTIgPSBp
MTsKLSB3aGlsZSAoSEVBUDhbaTJdIHwgMCkgewotICBpMiA9IGkyICsgMSB8IDA7Ci0gfQotIHJl
dHVybiBpMiAtIGkxIHwgMDsKLX0KLWZ1bmN0aW9uIF9tZW1jcHkoaTEsIGkyLCBpMykgewotIGkx
ID0gaTEgfCAwOwotIGkyID0gaTIgfCAwOwotIGkzID0gaTMgfCAwOwotIHZhciBpNCA9IDA7Ci0g
aTQgPSBpMSB8IDA7Ci0gaWYgKChpMSAmIDMpID09IChpMiAmIDMpKSB7Ci0gIHdoaWxlIChpMSAm
IDMpIHsKLSAgIGlmICgoaTMgfCAwKSA9PSAwKSByZXR1cm4gaTQgfCAwOwotICAgSEVBUDhbaTFd
ID0gSEVBUDhbaTJdIHwgMDsKLSAgIGkxID0gaTEgKyAxIHwgMDsKLSAgIGkyID0gaTIgKyAxIHwg
MDsKLSAgIGkzID0gaTMgLSAxIHwgMDsKLSAgfQotICB3aGlsZSAoKGkzIHwgMCkgPj0gNCkgewot
ICAgSEVBUDMyW2kxID4+IDJdID0gSEVBUDMyW2kyID4+IDJdOwotICAgaTEgPSBpMSArIDQgfCAw
OwotICAgaTIgPSBpMiArIDQgfCAwOwotICAgaTMgPSBpMyAtIDQgfCAwOwotICB9Ci0gfQotIHdo
aWxlICgoaTMgfCAwKSA+IDApIHsKLSAgSEVBUDhbaTFdID0gSEVBUDhbaTJdIHwgMDsKLSAgaTEg
PSBpMSArIDEgfCAwOwotICBpMiA9IGkyICsgMSB8IDA7Ci0gIGkzID0gaTMgLSAxIHwgMDsKLSB9
Ci0gcmV0dXJuIGk0IHwgMDsKLX0KLWZ1bmN0aW9uIF9tZW1zZXQoaTEsIGkyLCBpMykgewotIGkx
ID0gaTEgfCAwOwotIGkyID0gaTIgfCAwOwotIGkzID0gaTMgfCAwOwotIHZhciBpNCA9IDAsIGk1
ID0gMCwgaTYgPSAwOwotIGk0ID0gaTEgKyBpMyB8IDA7Ci0gaWYgKChpMyB8IDApID49IDIwKSB7
Ci0gIGkyID0gaTIgJiAyNTU7Ci0gIGkzID0gaTEgJiAzOwotICBpNSA9IGkyIHwgaTIgPDwgOCB8
IGkyIDw8IDE2IHwgaTIgPDwgMjQ7Ci0gIGk2ID0gaTQgJiB+MzsKLSAgaWYgKGkzKSB7Ci0gICBp
MyA9IGkxICsgNCAtIGkzIHwgMDsKLSAgIHdoaWxlICgoaTEgfCAwKSA8IChpMyB8IDApKSB7Ci0g
ICAgSEVBUDhbaTFdID0gaTI7Ci0gICAgaTEgPSBpMSArIDEgfCAwOwotICAgfQotICB9Ci0gIHdo
aWxlICgoaTEgfCAwKSA8IChpNiB8IDApKSB7Ci0gICBIRUFQMzJbaTEgPj4gMl0gPSBpNTsKLSAg
IGkxID0gaTEgKyA0IHwgMDsKLSAgfQotIH0KLSB3aGlsZSAoKGkxIHwgMCkgPCAoaTQgfCAwKSkg
ewotICBIRUFQOFtpMV0gPSBpMjsKLSAgaTEgPSBpMSArIDEgfCAwOwotIH0KLX0KLWZ1bmN0aW9u
IGR5bkNhbGxfaWkoaTEsIGkyKSB7Ci0gaTEgPSBpMSB8IDA7Ci0gaTIgPSBpMiB8IDA7Ci0gcmV0
dXJuIEZVTkNUSU9OX1RBQkxFX2lpW2kxICYgMV0oaTIgfCAwKSB8IDA7Ci19Ci1mdW5jdGlvbiBk
eW5DYWxsX3YoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSBGVU5DVElPTl9UQUJMRV92W2kxICYgMV0o
KTsKLX0KLWZ1bmN0aW9uIGR5bkNhbGxfaWlpKGkxLCBpMiwgaTMpIHsKLSBpMSA9IGkxIHwgMDsK
LSBpMiA9IGkyIHwgMDsKLSBpMyA9IGkzIHwgMDsKLSByZXR1cm4gRlVOQ1RJT05fVEFCTEVfaWlp
W2kxICYgMV0oaTIgfCAwLCBpMyB8IDApIHwgMDsKLX0KLWZ1bmN0aW9uIGR5bkNhbGxfdmkoaTEs
IGkyKSB7Ci0gaTEgPSBpMSB8IDA7Ci0gaTIgPSBpMiB8IDA7Ci0gRlVOQ1RJT05fVEFCTEVfdmlb
aTEgJiAxXShpMiB8IDApOwotfQotZnVuY3Rpb24gYjAoaTEpIHsKLSBpMSA9IGkxIHwgMDsKLSBh
Ym9ydCgwKTsKLSByZXR1cm4gMDsKLX0KLWZ1bmN0aW9uIGIxKCkgewotIGFib3J0KDEpOwotfQot
ZnVuY3Rpb24gYjIoaTEsIGkyKSB7Ci0gaTEgPSBpMSB8IDA7Ci0gaTIgPSBpMiB8IDA7Ci0gYWJv
cnQoMik7Ci0gcmV0dXJuIDA7Ci19Ci1mdW5jdGlvbiBiMyhpMSkgewotIGkxID0gaTEgfCAwOwot
IGFib3J0KDMpOwotfQotLy8gRU1TQ1JJUFRFTl9FTkRfRlVOQ1MKLSAgdmFyIEZVTkNUSU9OX1RB
QkxFX2lpID0gW2IwLGIwXTsKLSAgdmFyIEZVTkNUSU9OX1RBQkxFX3YgPSBbYjEsYjFdOwotICB2
YXIgRlVOQ1RJT05fVEFCTEVfaWlpID0gW2IyLGIyXTsKLSAgdmFyIEZVTkNUSU9OX1RBQkxFX3Zp
ID0gW2IzLGIzXTsKLSAgcmV0dXJuIHsgX3N0cmxlbjogX3N0cmxlbiwgX2ZyZWU6IF9mcmVlLCBf
bWFpbjogX21haW4sIF9tZW1zZXQ6IF9tZW1zZXQsIF9tYWxsb2M6IF9tYWxsb2MsIF9tZW1jcHk6
IF9tZW1jcHksIHJ1blBvc3RTZXRzOiBydW5Qb3N0U2V0cywgc3RhY2tBbGxvYzogc3RhY2tBbGxv
Yywgc3RhY2tTYXZlOiBzdGFja1NhdmUsIHN0YWNrUmVzdG9yZTogc3RhY2tSZXN0b3JlLCBzZXRU
aHJldzogc2V0VGhyZXcsIHNldFRlbXBSZXQwOiBzZXRUZW1wUmV0MCwgc2V0VGVtcFJldDE6IHNl
dFRlbXBSZXQxLCBzZXRUZW1wUmV0Mjogc2V0VGVtcFJldDIsIHNldFRlbXBSZXQzOiBzZXRUZW1w
UmV0Mywgc2V0VGVtcFJldDQ6IHNldFRlbXBSZXQ0LCBzZXRUZW1wUmV0NTogc2V0VGVtcFJldDUs
IHNldFRlbXBSZXQ2OiBzZXRUZW1wUmV0Niwgc2V0VGVtcFJldDc6IHNldFRlbXBSZXQ3LCBzZXRU
ZW1wUmV0ODogc2V0VGVtcFJldDgsIHNldFRlbXBSZXQ5OiBzZXRUZW1wUmV0OSwgZHluQ2FsbF9p
aTogZHluQ2FsbF9paSwgZHluQ2FsbF92OiBkeW5DYWxsX3YsIGR5bkNhbGxfaWlpOiBkeW5DYWxs
X2lpaSwgZHluQ2FsbF92aTogZHluQ2FsbF92aSB9OwotfSkKLS8vIEVNU0NSSVBURU5fRU5EX0FT
TQotKHsgIk1hdGgiOiBNYXRoLCAiSW50OEFycmF5IjogSW50OEFycmF5LCAiSW50MTZBcnJheSI6
IEludDE2QXJyYXksICJJbnQzMkFycmF5IjogSW50MzJBcnJheSwgIlVpbnQ4QXJyYXkiOiBVaW50
OEFycmF5LCAiVWludDE2QXJyYXkiOiBVaW50MTZBcnJheSwgIlVpbnQzMkFycmF5IjogVWludDMy
QXJyYXksICJGbG9hdDMyQXJyYXkiOiBGbG9hdDMyQXJyYXksICJGbG9hdDY0QXJyYXkiOiBGbG9h
dDY0QXJyYXkgfSwgeyAiYWJvcnQiOiBhYm9ydCwgImFzc2VydCI6IGFzc2VydCwgImFzbVByaW50
SW50IjogYXNtUHJpbnRJbnQsICJhc21QcmludEZsb2F0IjogYXNtUHJpbnRGbG9hdCwgIm1pbiI6
IE1hdGhfbWluLCAiaW52b2tlX2lpIjogaW52b2tlX2lpLCAiaW52b2tlX3YiOiBpbnZva2Vfdiwg
Imludm9rZV9paWkiOiBpbnZva2VfaWlpLCAiaW52b2tlX3ZpIjogaW52b2tlX3ZpLCAiX3B3cml0
ZSI6IF9wd3JpdGUsICJfc3lzY29uZiI6IF9zeXNjb25mLCAiX3NicmsiOiBfc2JyaywgIl9fX3Nl
dEVyck5vIjogX19fc2V0RXJyTm8sICJfZndyaXRlIjogX2Z3cml0ZSwgIl9fcmVhbGx5TmVnYXRp
dmUiOiBfX3JlYWxseU5lZ2F0aXZlLCAiX3RpbWUiOiBfdGltZSwgIl9fZm9ybWF0U3RyaW5nIjog
X19mb3JtYXRTdHJpbmcsICJfc2VuZCI6IF9zZW5kLCAiX3dyaXRlIjogX3dyaXRlLCAiX2Fib3J0
IjogX2Fib3J0LCAiX2ZwcmludGYiOiBfZnByaW50ZiwgIl9wcmludGYiOiBfcHJpbnRmLCAiX19f
ZXJybm9fbG9jYXRpb24iOiBfX19lcnJub19sb2NhdGlvbiwgIl9mZmx1c2giOiBfZmZsdXNoLCAi
U1RBQ0tUT1AiOiBTVEFDS1RPUCwgIlNUQUNLX01BWCI6IFNUQUNLX01BWCwgInRlbXBEb3VibGVQ
dHIiOiB0ZW1wRG91YmxlUHRyLCAiQUJPUlQiOiBBQk9SVCwgIk5hTiI6IE5hTiwgIkluZmluaXR5
IjogSW5maW5pdHkgfSwgYnVmZmVyKTsKLXZhciBfc3RybGVuID0gTW9kdWxlWyJfc3RybGVuIl0g
PSBhc21bIl9zdHJsZW4iXTsKLXZhciBfZnJlZSA9IE1vZHVsZVsiX2ZyZWUiXSA9IGFzbVsiX2Zy
ZWUiXTsKLXZhciBfbWFpbiA9IE1vZHVsZVsiX21haW4iXSA9IGFzbVsiX21haW4iXTsKLXZhciBf
bWVtc2V0ID0gTW9kdWxlWyJfbWVtc2V0Il0gPSBhc21bIl9tZW1zZXQiXTsKLXZhciBfbWFsbG9j
ID0gTW9kdWxlWyJfbWFsbG9jIl0gPSBhc21bIl9tYWxsb2MiXTsKLXZhciBfbWVtY3B5ID0gTW9k
dWxlWyJfbWVtY3B5Il0gPSBhc21bIl9tZW1jcHkiXTsKLXZhciBydW5Qb3N0U2V0cyA9IE1vZHVs
ZVsicnVuUG9zdFNldHMiXSA9IGFzbVsicnVuUG9zdFNldHMiXTsKLXZhciBkeW5DYWxsX2lpID0g
TW9kdWxlWyJkeW5DYWxsX2lpIl0gPSBhc21bImR5bkNhbGxfaWkiXTsKLXZhciBkeW5DYWxsX3Yg
PSBNb2R1bGVbImR5bkNhbGxfdiJdID0gYXNtWyJkeW5DYWxsX3YiXTsKLXZhciBkeW5DYWxsX2lp
aSA9IE1vZHVsZVsiZHluQ2FsbF9paWkiXSA9IGFzbVsiZHluQ2FsbF9paWkiXTsKLXZhciBkeW5D
YWxsX3ZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpIl0gPSBhc21bImR5bkNhbGxfdmkiXTsKLVJ1bnRp
bWUuc3RhY2tBbGxvYyA9IGZ1bmN0aW9uKHNpemUpIHsgcmV0dXJuIGFzbVsnc3RhY2tBbGxvYydd
KHNpemUpIH07Ci1SdW50aW1lLnN0YWNrU2F2ZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gYXNtWydz
dGFja1NhdmUnXSgpIH07Ci1SdW50aW1lLnN0YWNrUmVzdG9yZSA9IGZ1bmN0aW9uKHRvcCkgeyBh
c21bJ3N0YWNrUmVzdG9yZSddKHRvcCkgfTsKLS8vIFdhcm5pbmc6IHByaW50aW5nIG9mIGk2NCB2
YWx1ZXMgbWF5IGJlIHNsaWdodGx5IHJvdW5kZWQhIE5vIGRlZXAgaTY0IG1hdGggdXNlZCwgc28g
cHJlY2lzZSBpNjQgY29kZSBub3QgaW5jbHVkZWQKLXZhciBpNjRNYXRoID0gbnVsbDsKLS8vID09
PSBBdXRvLWdlbmVyYXRlZCBwb3N0YW1ibGUgc2V0dXAgZW50cnkgc3R1ZmYgPT09Ci1mdW5jdGlv
biBFeGl0U3RhdHVzKHN0YXR1cykgewotICB0aGlzLm5hbWUgPSAiRXhpdFN0YXR1cyI7Ci0gIHRo
aXMubWVzc2FnZSA9ICJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIgKyBzdGF0dXMgKyAi
KSI7Ci0gIHRoaXMuc3RhdHVzID0gc3RhdHVzOwotfTsKLUV4aXRTdGF0dXMucHJvdG90eXBlID0g
bmV3IEVycm9yKCk7Ci1FeGl0U3RhdHVzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEV4aXRTdGF0
dXM7Ci12YXIgaW5pdGlhbFN0YWNrVG9wOwotdmFyIHByZWxvYWRTdGFydFRpbWUgPSBudWxsOwot
TW9kdWxlWydjYWxsTWFpbiddID0gTW9kdWxlLmNhbGxNYWluID0gZnVuY3Rpb24gY2FsbE1haW4o
YXJncykgewotICBhc3NlcnQocnVuRGVwZW5kZW5jaWVzID09IDAsICdjYW5ub3QgY2FsbCBtYWlu
IHdoZW4gYXN5bmMgZGVwZW5kZW5jaWVzIHJlbWFpbiEgKGxpc3RlbiBvbiBfX0FUTUFJTl9fKScp
OwotICBhc3NlcnQoX19BVFBSRVJVTl9fLmxlbmd0aCA9PSAwLCAnY2Fubm90IGNhbGwgbWFpbiB3
aGVuIHByZVJ1biBmdW5jdGlvbnMgcmVtYWluIHRvIGJlIGNhbGxlZCcpOwotICBhcmdzID0gYXJn
cyB8fCBbXTsKLSAgaWYgKEVOVklST05NRU5UX0lTX1dFQiAmJiBwcmVsb2FkU3RhcnRUaW1lICE9
PSBudWxsKSB7Ci0gICAgLy9Nb2R1bGUucHJpbnRFcnIoJ3ByZWxvYWQgdGltZTogJyArIChEYXRl
Lm5vdygpIC0gcHJlbG9hZFN0YXJ0VGltZSkgKyAnIG1zJyk7Ci0gIH0KLSAgZW5zdXJlSW5pdFJ1
bnRpbWUoKTsKLSAgdmFyIGFyZ2MgPSBhcmdzLmxlbmd0aCsxOwotICBmdW5jdGlvbiBwYWQoKSB7
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0LTE7IGkrKykgewotICAgICAgYXJndi5wdXNoKDAp
OwotICAgIH0KLSAgfQotICB2YXIgYXJndiA9IFthbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmco
Ii9iaW4vdGhpcy5wcm9ncmFtIiksICdpOCcsIEFMTE9DX05PUk1BTCkgXTsKLSAgcGFkKCk7Ci0g
IGZvciAodmFyIGkgPSAwOyBpIDwgYXJnYy0xOyBpID0gaSArIDEpIHsKLSAgICBhcmd2LnB1c2go
YWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKGFyZ3NbaV0pLCAnaTgnLCBBTExPQ19OT1JNQUwp
KTsKLSAgICBwYWQoKTsKLSAgfQotICBhcmd2LnB1c2goMCk7Ci0gIGFyZ3YgPSBhbGxvY2F0ZShh
cmd2LCAnaTMyJywgQUxMT0NfTk9STUFMKTsKLSAgaW5pdGlhbFN0YWNrVG9wID0gU1RBQ0tUT1A7
Ci0gIHRyeSB7Ci0gICAgdmFyIHJldCA9IE1vZHVsZVsnX21haW4nXShhcmdjLCBhcmd2LCAwKTsK
LSAgICAvLyBpZiB3ZSdyZSBub3QgcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgaXQncyB0
aW1lIHRvIGV4aXQKLSAgICBpZiAoIU1vZHVsZVsnbm9FeGl0UnVudGltZSddKSB7Ci0gICAgICBl
eGl0KHJldCk7Ci0gICAgfQotICB9Ci0gIGNhdGNoKGUpIHsKLSAgICBpZiAoZSBpbnN0YW5jZW9m
IEV4aXRTdGF0dXMpIHsKLSAgICAgIC8vIGV4aXQoKSB0aHJvd3MgdGhpcyBvbmNlIGl0J3MgZG9u
ZSB0byBtYWtlIHN1cmUgZXhlY3V0aW9uCi0gICAgICAvLyBoYXMgYmVlbiBzdG9wcGVkIGNvbXBs
ZXRlbHkKLSAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKGUgPT0gJ1NpbXVsYXRlSW5maW5p
dGVMb29wJykgewotICAgICAgLy8gcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgZG9uJ3Qg
aW1tZWRpYXRlbHkgZXhpdAotICAgICAgTW9kdWxlWydub0V4aXRSdW50aW1lJ10gPSB0cnVlOwot
ICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aHJvdyBlOwotICAgIH0KLSAgfQot
fQotZnVuY3Rpb24gcnVuKGFyZ3MpIHsKLSAgYXJncyA9IGFyZ3MgfHwgTW9kdWxlWydhcmd1bWVu
dHMnXTsKLSAgaWYgKHByZWxvYWRTdGFydFRpbWUgPT09IG51bGwpIHByZWxvYWRTdGFydFRpbWUg
PSBEYXRlLm5vdygpOwotICBpZiAocnVuRGVwZW5kZW5jaWVzID4gMCkgewotICAgIE1vZHVsZS5w
cmludEVycigncnVuKCkgY2FsbGVkLCBidXQgZGVwZW5kZW5jaWVzIHJlbWFpbiwgc28gbm90IHJ1
bm5pbmcnKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgcHJlUnVuKCk7Ci0gIGlmIChydW5EZXBlbmRl
bmNpZXMgPiAwKSB7Ci0gICAgLy8gYSBwcmVSdW4gYWRkZWQgYSBkZXBlbmRlbmN5LCBydW4gd2ls
bCBiZSBjYWxsZWQgbGF0ZXIKLSAgICByZXR1cm47Ci0gIH0KLSAgZnVuY3Rpb24gZG9SdW4oKSB7
Ci0gICAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsKLSAgICBwcmVNYWluKCk7Ci0gICAgY2FsbGVkUnVu
ID0gdHJ1ZTsKLSAgICBpZiAoTW9kdWxlWydfbWFpbiddICYmIHNob3VsZFJ1bk5vdykgewotICAg
ICAgTW9kdWxlWydjYWxsTWFpbiddKGFyZ3MpOwotICAgIH0KLSAgICBwb3N0UnVuKCk7Ci0gIH0K
LSAgaWYgKE1vZHVsZVsnc2V0U3RhdHVzJ10pIHsKLSAgICBNb2R1bGVbJ3NldFN0YXR1cyddKCdS
dW5uaW5nLi4uJyk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwotICAgICAg
fSwgMSk7Ci0gICAgICBpZiAoIUFCT1JUKSBkb1J1bigpOwotICAgIH0sIDEpOwotICB9IGVsc2Ug
ewotICAgIGRvUnVuKCk7Ci0gIH0KLX0KLU1vZHVsZVsncnVuJ10gPSBNb2R1bGUucnVuID0gcnVu
OwotZnVuY3Rpb24gZXhpdChzdGF0dXMpIHsKLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVT
ID0gc3RhdHVzOwotICBTVEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKLSAgLy8gZXhpdCB0aGUg
cnVudGltZQotICBleGl0UnVudGltZSgpOwotICAvLyB0aHJvdyBhbiBleGNlcHRpb24gdG8gaGFs
dCB0aGUgY3VycmVudCBleGVjdXRpb24KLSAgdGhyb3cgbmV3IEV4aXRTdGF0dXMoc3RhdHVzKTsK
LX0KLU1vZHVsZVsnZXhpdCddID0gTW9kdWxlLmV4aXQgPSBleGl0OwotZnVuY3Rpb24gYWJvcnQo
dGV4dCkgewotICBpZiAodGV4dCkgewotICAgIE1vZHVsZS5wcmludCh0ZXh0KTsKLSAgICBNb2R1
bGUucHJpbnRFcnIodGV4dCk7Ci0gIH0KLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVTID0g
MTsKLSAgdGhyb3cgJ2Fib3J0KCkgYXQgJyArIChuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1Nb2R1
bGVbJ2Fib3J0J10gPSBNb2R1bGUuYWJvcnQgPSBhYm9ydDsKLS8vIHt7UFJFX1JVTl9BRERJVElP
TlN9fQotaWYgKE1vZHVsZVsncHJlSW5pdCddKSB7Ci0gIGlmICh0eXBlb2YgTW9kdWxlWydwcmVJ
bml0J10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVJbml0J10gPSBbTW9kdWxlWydwcmVJbml0
J11dOwotICB3aGlsZSAoTW9kdWxlWydwcmVJbml0J10ubGVuZ3RoID4gMCkgewotICAgIE1vZHVs
ZVsncHJlSW5pdCddLnBvcCgpKCk7Ci0gIH0KLX0KLS8vIHNob3VsZFJ1bk5vdyByZWZlcnMgdG8g
Y2FsbGluZyBtYWluKCksIG5vdCBydW4oKS4KLXZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOwotaWYg
KE1vZHVsZVsnbm9Jbml0aWFsUnVuJ10pIHsKLSAgc2hvdWxkUnVuTm93ID0gZmFsc2U7Ci19Ci1y
dW4oW10uY29uY2F0KE1vZHVsZVsiYXJndW1lbnRzIl0pKTsKLWlmIChKU1JlZ3Jlc3Nfb3V0cHV0
QnVmZmVyICE9ICJmaW5hbDogNDAwLlxuIikKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyBKU1JlZ3Jlc3Nfb3V0cHV0QnVmZmVyOwotLy8ge3tQT1NUX1JVTl9BRERJVElPTlN9fQot
Ly8ge3tNT0RVTEVfQURESVRJT05TfX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mb2xkLXN0cmljdC1lcS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mb2xkLXN0
cmljdC1lcS5qcwkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZm9sZC1zdHJpY3QtZXEuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAs
MCBAQAotZnVuY3Rpb24gZm9vKGEsIGIpIHsKLSAgICByZXR1cm4gYSA9PT0gYjsKLX0KLQotZnVu
Y3Rpb24gdGVzdChhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHJlc3VsdDogIiArIGFjdHVhbCk7Ci19
Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDA7ICsraSkgewotICAgIHRlc3QoZm9vKHRy
dWUsIG51bGwpLCBmYWxzZSk7Ci0gICAgdGVzdChmb28odHJ1ZSwgZmFsc2UpLCBmYWxzZSk7Ci0g
ICAgdGVzdChmb28odHJ1ZSwgdHJ1ZSksIHRydWUpOwotICAgIHRlc3QoZm9vKDUsICJoZWxsbyIp
LCBmYWxzZSk7Ci0gICAgdGVzdChmb28odm9pZCAwLCBuZXcgT2JqZWN0KCkpLCBmYWxzZSk7Ci19
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9tYXJzYWdsaWEuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbWFyc2Fn
bGlhLmpzCShyZXZpc2lvbiAxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9tYXJzYWdsaWEuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotZnVu
Y3Rpb24gbWFyc2FnbGlhKG1feiwgbV93LCBuKSB7Ci0gICAgdmFyIHJlc3VsdDsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG47ICsraSkgewotICAgICAgICBtX3ogPSAoMzY5NjkgKiAobV96ICYg
NjU1MzUpICsgKG1feiA+PiAxNikpIHwgMDsKLSAgICAgICAgbV93ID0gKDE4MDAwICogKG1fdyAm
IDY1NTM1KSArIChtX3cgPj4gMTYpKSB8IDA7Ci0gICAgICAgIHJlc3VsdCA9ICgobV96IDw8IDE2
KSArIG1fdykgfCAwOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12YXIgcmVzdWx0
ID0gMDsKLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCi0gICAgcmVzdWx0ICs9IG1hcnNh
Z2xpYShpLCBpICsgMSwgMTAwMDAwMCk7Ci0KLWlmIChyZXN1bHQgIT0gODIxNjM4NjI0MykKLSAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci0KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRv
bS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9u
ZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy1yYW5kb20uanMJKHJldmlzaW9uIDE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5n
LXJhbmRvbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi0vL0Agc2tpcAotCi1m
dW5jdGlvbiByYW5kb21JZGVudChwcmVmaXgpCi17Ci0gICAgdmFyIHJhbmRvbSA9IE1hdGgucmFu
ZG9tKCk7Ci0gICAgdmFyIHRydW5jYXRlZCA9IE1hdGguZmxvb3IocmFuZG9tICogMTAwMDAwMDAw
MCk7Ci0gICAgcmV0dXJuIFN0cmluZyhwcmVmaXgpICsgU3RyaW5nKHRydW5jYXRlZCk7Ci19Ci0K
LShmdW5jdGlvbigpIHsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLQotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwOyArK2kpIHsKLSAgICAgICAgdmFyIHByb2dyYW0gPSAiKGZ1bmN0aW9uICIgKyBy
YW5kb21JZGVudCgiZiIpICsgIigpIHtcbiI7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
MTAwMDsgKytqKSB7Ci0gICAgICAgICAgICBwcm9ncmFtICs9ICJmdW5jdGlvbiAiICsgcmFuZG9t
SWRlbnQoImciKSArICIoKSB7IHJldHVybiAwICYmIDEgJiYgMiAmJiAzICYmIDQgJiYgNSAmJiA2
ICYmIDcgJiYgOCAmJiA5ICYmIDEwOyB9XG4iOwotICAgICAgICB9Ci0gICAgICAgIHByb2dyYW0g
Kz0gIn0pKCk7XG4iOwotICAgICAgICBwcm9ncmFtICs9ICJyZXR1cm4gMDtcbiI7Ci0KLSAgICAg
ICAgcmVzdWx0ICs9IG5ldyBGdW5jdGlvbihwcm9ncmFtKSgpOwotICAgIH0KLQotICAgIGlmIChy
ZXN1bHQgIT0gMCkgewotICAgICAgICBwcmludCgiQmFkIHJlc3VsdDogIiArIHJlc3VsdCk7Ci0g
ICAgICAgIHRocm93ICJFcnJvciI7Ci0gICAgfQotfSkoKTsKSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25ldy1zcHJlYWQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmV3LXNwcmVhZC5qcwkocmV2aXNpb24gMTY2
NDY5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmV3LXNwcmVhZC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMSwzNCArMCwwIEBACi0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlv
bihhLCBiKQotewotICAgICJ1c2Ugc3RyaWN0IgotICAgIHJlc3VsdCB8PSAwOwotICAgIHJlc3Vs
dCArPSBhICogMTAwMCArIGIgKiAxMDAgKyBhcmd1bWVudHNbMl0gKiAxMCArIGFyZ3VtZW50cy5s
ZW5ndGggXiAocmVzdWx0ICYgMTAyNCk7Ci19Ci0KLXZhciBhcnJheUFyZ3VtZW50cyA9IFsyLCAz
LCA0XQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykK
LSAgICBuZXcgdGVzdEZ1bmN0aW9uKC4uLmFycmF5QXJndW1lbnRzKTsKLQotZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDAwOyBpKyspCi0gICAgbmV3IHRlc3RGdW5jdGlvbiguLi5bMSwgMiwgcmVz
dWx0LCA0XSk7Ci0KLWZ1bmN0aW9uIHRlc3QyKCkgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwMDsgaSsrKQotICAgICAgICBuZXcgdGVzdEZ1bmN0aW9uKC4uLmFyZ3VtZW50cyk7Ci19
Ci0KLXRlc3QyKDEsMiwzLDQpCi0KLQotZnVuY3Rpb24gdGVzdDMoKSB7Ci0gICAgYWxpYXNlZEFy
Z3VtZW50cyA9IGFyZ3VtZW50czsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkr
KykKLSAgICAgICAgbmV3IHRlc3RGdW5jdGlvbiguLi5hbGlhc2VkQXJndW1lbnRzKTsKLX0KLQot
dGVzdDMoMSwyLHJlc3VsdCw0KQotCi1pZiAocmVzdWx0ICE9IC0yMzcxMTUzMDg4KQotICAgIHRo
cm93ICJSZXN1bHQgd2FzICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIC0yMzcxMTUzMDg4IjsKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9wcm90by1jdXN0b20tZ2V0dGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3Byb3RvLWN1c3RvbS1nZXR0ZXIuanMJKHJldmlz
aW9uIDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3Byb3Rv
LWN1c3RvbS1nZXR0ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotdmFyIGN5
Y2xlcyA9IDYwMDAKLXZhciBudW1iZXJPYmplY3QgPSB7IF9fcHJvdG9fXzogTnVtYmVyfQotZnVu
Y3Rpb24gZm9vKCkgewotICAgIHZhciByZXN1bHQgPSAwOwotICAgIHZhciBpbm5lckN5Y2xlcyA9
IGN5Y2xlczsKLSAgICB2YXIgTnVtYmVyID0gbnVtYmVyT2JqZWN0OwotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaW5uZXJDeWNsZXM7ICsraSkKLSAgICAgICAgcmVzdWx0ICs9IDAgfCBpc05hTihO
dW1iZXIuTmFOKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci1ub0lubGluZShmb28pOwotdmFy
IHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDE1MDA7IGkrKykKLSAgICByZXN1bHQg
Kz0gZm9vKCk7Ci1pZiAocmVzdWx0ICE9IGkgKiBjeWNsZXMpCi0gICAgdGhyb3cgIkZhaWxlZCwg
cmVzdWx0IHdhcyAiICsgKHJlc3VsdCkgKyAiIHNob3VsZCBiZSAiICsgKGkgKiBjeWNsZXMpCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zaW1wbGUtY3VzdG9tLWdl
dHRlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9zaW1wbGUtY3VzdG9tLWdldHRlci5qcwkocmV2aXNpb24gMTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc2ltcGxlLWN1c3RvbS1nZXR0ZXIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotdmFyIGN5Y2xlcyA9IDIwMDAwCi12YXIgbnVtYmVy
T2JqZWN0ID0gTnVtYmVyCi1mdW5jdGlvbiBmb28oKSB7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0g
ICAgdmFyIGlubmVyQ3ljbGVzID0gY3ljbGVzOwotICAgIHZhciBOdW1iZXIgPSBudW1iZXJPYmpl
Y3Q7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbm5lckN5Y2xlczsgKytpKQotICAgICAgICBy
ZXN1bHQgKz0gMCB8IGlzTmFOKE51bWJlci5OYU4pOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LW5vSW5saW5lKGZvbyk7Ci12YXIgcmVzdWx0ID0gMDsKLWZvciAodmFyIGkgPSAwOyBpIDwgMTUw
MDsgaSsrKQotICAgIHJlc3VsdCArPSBmb28oKTsKLWlmIChyZXN1bHQgIT0gaSAqIGN5Y2xlcykK
LSAgICB0aHJvdyAiRmFpbGVkLCByZXN1bHQgd2FzICIgKyAocmVzdWx0KSArICIgc2hvdWxkIGJl
ICIgKyAoaSAqIGN5Y2xlcykKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy92YXJpYWRpYy1jbG9zdXJlLWNhbGwuanMJKHJldmlzaW9u
IDE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3ZhcmlhZGlj
LWNsb3N1cmUtY2FsbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi1mdW5jdGlv
biBmb28oYSkgewotICAgIHZhciB4ID0gNDIgKyBhOwotICAgIGZ1bmN0aW9uIGJhcihhLCBiLCBj
KSB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBhICsgYiArIGM7Ci0gICAgICAgIGZvciAodmFyIGkg
PSAzOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgcmVzdWx0ID0gYXJn
dW1lbnRzW2ldICogeDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgcmV0dXJu
IGJhci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwotfQotCi0vLyBXYXJtIGV2ZXJ5dGhpbmcgdXAg
d2l0aCB2YXJpYWRpYyBjYWxscyB0aGF0IGRvbid0IGZhaWwgYXJpdHkgY2hlY2tzLgotZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewotICAgIHZhciBhcmdzID0gW107Ci0gICAgdmFy
IG4gPSAoaSAlIDgpICsgODsKLSAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikKLSAgICAg
ICAgYXJncy5wdXNoKGopOwotICAgIHZhciByZXN1bHQgPSBmb28uYXBwbHkobnVsbCwgYXJncyk7
Ci0gICAgaWYgKCgiIiArIHJlc3VsdCkgIT0gKCIiICsgWzI5NCwgMzM2LCAzNzgsIDQyMCwgNDYy
LCA1MDQsIDU0NiwgNTg4XVtuIC0gOF0pKQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQgZm9yIGkgPSAiICsgaSArICI6ICIgKyByZXN1bHQ7Ci19Ci0KLS8vIFN0YXJ0IGZhaWxpbmcg
c29tZSBhcml0eSBjaGVja3MuCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7Ci0g
ICAgdmFyIGFyZ3MgPSBbXTsKLSAgICB2YXIgbiA9IGkgJSAxNjsKLSAgICBmb3IgKHZhciBqID0g
MDsgaiA8IG47ICsraikKLSAgICAgICAgYXJncy5wdXNoKGopOwotICAgIHZhciByZXN1bHQgPSBm
b28uYXBwbHkobnVsbCwgYXJncyk7Ci0gICAgaWYgKCgiIiArIHJlc3VsdCkgIT0gKCIiICsgWzAv
MCwgMC8wLCAwLzAsIDMsIDEyNiwgMTY4LCAyMTAsIDI1MiwgMjk0LCAzMzYsIDM3OCwgNDIwLCA0
NjIsIDUwNCwgNTQ2LCA1ODhdW25dKSkKLSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
IGZvciBpID0gIiArIGkgKyAiOiAiICsgcmVzdWx0OwotfQotCkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9zbG93LXN0cmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9B
cnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0FycmF5QnVmZmVy
LUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0OjE2NjQ2OSkKKysr
IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1o
dWdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVk
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJv
d24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxs
b2MtaHVnZS1sb25nLWxpdmVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xv
dy1zdHJlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5odG1s
CShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZm
ZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5odG1sOjE2NjQ2OSkKKysrIExheW91
dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxv
bmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxs
b2MtaHVnZS1sb25nLWxpdmVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxv
bmctbGl2ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9B
cnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVmZmVyLUludDhBcnJh
eS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJy
YXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1s
YXJnZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJn
ZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY0NjkpCShm
cm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxh
cmdlLWxvbmctbGl2ZWQtZnJhZ21lbnRlZC1leHBlY3RlZC50eHQ6MTY2NDY5KQorKysgTGF5b3V0
VGVzdHMvanMvc2xvdy1zdHJlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxv
bmctbGl2ZWQtZnJhZ21lbnRlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMCBAQAorSlNSZWdyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25n
LWxpdmVkLWZyYWdtZW50ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVm
ZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJy
YXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLmh0bWwJKHJldmlzaW9uIDE2NjQ2
OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxs
b2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLmh0bWw6MTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvc2xvdy1zdHJlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmct
bGl2ZWQtZnJhZ21lbnRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhB
cnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZnJhZ21lbnRlZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxv
Yy1sYXJnZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5
b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdl
LWxvbmctbGl2ZWQtZnJhZ21lbnRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBA
QAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJh
eS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvSW50MzJBcnJheS1hbGxvYy1o
dWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVz
cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY0NjkpCShm
cm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1odWdlLWV4cGVjdGVk
LnR4dDoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFs
bG9jLWh1Z2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pT
UmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3Ry
ZXNzL0ludDMyQXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2Ut
bG9uZy1saXZlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC1leHBlY3RlZC50
eHQ6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvSW50MzJBcnJheS1hbGxv
Yy1odWdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5
LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuaHRtbDox
NjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1
Z2UtbG9uZy1saXZlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0ludDMyQXJyYXktYWxsb2MtaHVn
ZS1sb25nLWxpdmVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3Nsb3ctc3RyZXNzL0ludDMyQXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvSW50MzJBcnJheS1hbGxvYy1o
dWdlLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvanMvc2xv
dy1zdHJlc3MvSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9J
bnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2Uu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5
LWFsbG9jLWh1Z2UuaHRtbAkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtaHVnZS5odG1sOjE2NjQ2OSkKKysrIExheW91dFRlc3Rz
L2pzL3Nsb3ctc3RyZXNzL0ludDMyQXJyYXktYWxsb2MtaHVnZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL0ludDMyQXJyYXktYWxsb2MtaHVnZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9j
LWh1Z2UuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mv
SW50MzJBcnJheS1hbGxvYy1odWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3Ry
ZXNzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJn
ZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1leHBlY3Rl
ZC50eHQ6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvSW50MzJBcnJheS1h
bGxvYy1sYXJnZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEwIEBACitKU1JlZ3Jlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLWxvbmct
bGl2ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQz
MkFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuaHRtbAkocmV2aXNpb24gMTY2NDY5KQkoZnJv
bSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZl
ZC5odG1sOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL0ludDMyQXJyYXkt
YWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0ludDMyQXJyYXkt
YWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9JbnQzMkFy
cmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0
VGVzdHMvanMvc2xvdy1zdHJlc3MvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2FycmF5LXBy
b3RvdHlwZS1maWx0ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3Nsb3ctc3RyZXNzL2FycmF5LXByb3RvdHlwZS1maWx0ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXJyYXktcHJvdG90eXBlLWZp
bHRlci1leHBlY3RlZC50eHQ6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mv
YXJyYXktcHJvdG90eXBlLWZpbHRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorSlNSZWdyZXNzL2FycmF5LXByb3RvdHlwZS1maWx0ZXIKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2pzL3Nsb3ctc3RyZXNzL2FycmF5LXByb3RvdHlwZS1maWx0ZXIuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9hcnJheS1wcm90b3R5cGUtZmlsdGVyLmh0
bWwJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hcnJheS1w
cm90b3R5cGUtZmlsdGVyLmh0bWw6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJl
c3MvYXJyYXktcHJvdG90eXBlLWZpbHRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXBy
b3RvdHlwZS1maWx0ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvc2xvdy1zdHJlc3MvYXJyYXktcHJvdG90eXBlLWZpbHRlci5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2FycmF5LXByb3RvdHlwZS1maWx0ZXIuaHRt
bAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvYXJyYXktcHJv
dG90eXBlLWZpbHRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXByb3RvdHlwZS1maWx0ZXIuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvY2Fs
bC1zcHJlYWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ct
c3RyZXNzL2NhbGwtc3ByZWFkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLWV4cGVjdGVkLnR4dDoxNjY0NjkpCisr
KyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9jYWxsLXNwcmVhZC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2NhbGwtc3ByZWFkCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9jYWxsLXNwcmVhZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2NhbGwtc3ByZWFkLmh0bWwJKHJldmlzaW9uIDE2
NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYWxsLXNwcmVhZC5odG1sOjE2NjQ2
OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2NhbGwtc3ByZWFkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvY2FsbC1zcHJlYWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9jYWxsLXNwcmVhZC5odG1sCSh3b3JraW5nIGNv
cHkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9jYWxsLXNwcmVhZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2NhbGwtc3ByZWFkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2pzL3Nsb3ctc3RyZXNzL2NoYWluLWN1c3RvbS1nZXR0ZXItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2NoYWluLWN1c3RvbS1nZXR0ZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvY2hhaW4tY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQ6MTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvc2xvdy1zdHJlc3MvY2hhaW4tY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2NoYWluLWN1c3RvbS1nZXR0ZXIK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93
bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2NoYWluLWN1c3RvbS1nZXR0ZXIuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9jaGFpbi1jdXN0b20tZ2V0
dGVyLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9j
aGFpbi1jdXN0b20tZ2V0dGVyLmh0bWw6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1z
dHJlc3MvY2hhaW4tY3VzdG9tLWdldHRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2NoYWluLWN1
c3RvbS1nZXR0ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvc2xvdy1zdHJlc3MvY2hhaW4tY3VzdG9tLWdldHRlci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2NoYWluLWN1c3RvbS1nZXR0ZXIuaHRtbAkod29ya2lu
ZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvY2hhaW4tY3VzdG9tLWdldHRl
ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2NoYWluLWN1c3RvbS1nZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hcmd1
bWVudHMtbGVuZ3RoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9z
bG93LXN0cmVzcy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGgtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZGVzdHJ1Y3R1cmlu
Zy1hcmd1bWVudHMtbGVuZ3RoLWV4cGVjdGVkLnR4dDoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9q
cy9zbG93LXN0cmVzcy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGgtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9kZXN0cnVjdHVyaW5n
LWFyZ3VtZW50cy1sZW5ndGgKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2Rlc3RydWN0
dXJpbmctYXJndW1lbnRzLWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3Nsb3ctc3RyZXNzL2Rlc3RydWN0dXJpbmctYXJndW1lbnRzLWxlbmd0aC5odG1sCShyZXZpc2lv
biAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZGVzdHJ1Y3R1cmluZy1hcmd1
bWVudHMtbGVuZ3RoLmh0bWw6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mv
ZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMtbGVuZ3RoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGVz
dHJ1Y3R1cmluZy1hcmd1bWVudHMtbGVuZ3RoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2Rlc3RydWN0dXJpbmctYXJndW1lbnRzLWxl
bmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2Rlc3Ry
dWN0dXJpbmctYXJndW1lbnRzLWxlbmd0aC5odG1sCSh3b3JraW5nIGNvcHkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9zbG93LXN0cmVzcy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGguaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGguanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvZW1zY3JpcHRlbi1tZW1v
cHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNz
L2Vtc2NyaXB0ZW4tbWVtb3BzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzLWV4cGVjdGVkLnR4dDoxNjY0
NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9lbXNjcmlwdGVuLW1lbW9wcy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2Vtc2Ny
aXB0ZW4tbWVtb3BzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4
Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9lbXNjcmlwdGVuLW1l
bW9wcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2Vtc2Ny
aXB0ZW4tbWVtb3BzLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9lbXNjcmlwdGVuLW1lbW9wcy5odG1sOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pz
L3Nsb3ctc3RyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZW1z
Y3JpcHRlbi1tZW1vcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvc2xvdy1zdHJlc3MvZW1zY3JpcHRlbi1tZW1vcHMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9lbXNjcmlwdGVuLW1lbW9wcy5odG1sCSh3b3JraW5n
IGNvcHkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9lbXNjcmlwdGVuLW1lbW9wcy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2Vtc2NyaXB0ZW4tbWVtb3BzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2ZvbGQtc3RyaWN0LWVxLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9mb2xkLXN0cmlj
dC1lcS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9mb2xkLXN0cmljdC1lcS1leHBlY3RlZC50eHQ6MTY2NDY5KQorKysgTGF5b3V0VGVz
dHMvanMvc2xvdy1zdHJlc3MvZm9sZC1zdHJpY3QtZXEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9mb2xkLXN0cmljdC1lcQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvanMvc2xvdy1zdHJlc3MvZm9sZC1zdHJpY3QtZXEuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9mb2xkLXN0cmljdC1lcS5odG1sCShyZXZpc2lvbiAx
NjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZm9sZC1zdHJpY3QtZXEuaHRtbDox
NjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9mb2xkLXN0cmljdC1lcS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL2ZvbGQtc3RyaWN0LWVxLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL2ZvbGQtc3RyaWN0LWVxLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvZm9sZC1zdHJpY3QtZXEu
aHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvZm9sZC1z
dHJpY3QtZXEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9mb2xkLXN0cmljdC1lcS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9tYXJzYWdsaWEtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL21hcnNhZ2xp
YS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9tYXJzYWdsaWEtZXhwZWN0ZWQudHh0OjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Ns
b3ctc3RyZXNzL21hcnNhZ2xpYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMCBAQAorSlNSZWdyZXNzL21hcnNhZ2xpYQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJl
c3MvbWFyc2FnbGlhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJl
c3MvbWFyc2FnbGlhLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9tYXJzYWdsaWEuaHRtbDoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0
cmVzcy9tYXJzYWdsaWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9tYXJzYWdsaWEuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvbWFyc2Fn
bGlhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvbWFyc2Fn
bGlhLmh0bWwJKHdvcmtpbmcgY29weSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL21h
cnNhZ2xpYS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL21hcnNhZ2xpYS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2lu
Zy1yYW5kb20tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ct
c3RyZXNzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24t
cGFyc2luZy1yYW5kb20tZXhwZWN0ZWQudHh0OjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Ns
b3ctc3RyZXNzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL25lc3RlZC1mdW5jdGlvbi1w
YXJzaW5nLXJhbmRvbQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBl
eGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvbmVzdGVkLWZ1bmN0
aW9uLXBhcnNpbmctcmFuZG9tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xv
dy1zdHJlc3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9tLmh0bWwJKHJldmlzaW9uIDE2
NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2lu
Zy1yYW5kb20uaHRtbDoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9uZXN0
ZWQtZnVuY3Rpb24tcGFyc2luZy1yYW5kb20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9uZXN0ZWQt
ZnVuY3Rpb24tcGFyc2luZy1yYW5kb20uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9t
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvbmVzdGVkLWZ1
bmN0aW9uLXBhcnNpbmctcmFuZG9tLmh0bWwJKHdvcmtpbmcgY29weSkKKysrIExheW91dFRlc3Rz
L2pzL3Nsb3ctc3RyZXNzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9uZXctc3ByZWFkLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9uZXctc3ByZWFk
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL25ldy1zcHJlYWQtZXhwZWN0ZWQudHh0OjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Ns
b3ctc3RyZXNzL25ldy1zcHJlYWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTAgQEAKK0pTUmVncmVzcy9uZXctc3ByZWFkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0
cmVzcy9uZXctc3ByZWFkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1z
dHJlc3MvbmV3LXNwcmVhZC5odG1sCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvbmV3LXNwcmVhZC5odG1sOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Ns
b3ctc3RyZXNzL25ldy1zcHJlYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9uZXctc3ByZWFkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNz
L25ldy1zcHJlYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVz
cy9uZXctc3ByZWFkLmh0bWwJKHdvcmtpbmcgY29weSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ct
c3RyZXNzL25ldy1zcHJlYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9o
ZWFkPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9uZXctc3ByZWFkLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3Byb3RvLWN1c3Rv
bS1nZXR0ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ct
c3RyZXNzL3Byb3RvLWN1c3RvbS1nZXR0ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjY0Njkp
CShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcHJvdG8tY3VzdG9tLWdldHRlci1leHBlY3Rl
ZC50eHQ6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvcHJvdG8tY3VzdG9t
LWdldHRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNS
ZWdyZXNzL3Byb3RvLWN1c3RvbS1nZXR0ZXIKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNz
L3Byb3RvLWN1c3RvbS1nZXR0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9z
bG93LXN0cmVzcy9wcm90by1jdXN0b20tZ2V0dGVyLmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkJKGZy
b20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9wcm90by1jdXN0b20tZ2V0dGVyLmh0bWw6MTY2NDY5
KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvcHJvdG8tY3VzdG9tLWdldHRlci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3Byb3RvLWN1c3RvbS1nZXR0ZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvcHJvdG8tY3VzdG9tLWdl
dHRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3Byb3Rv
LWN1c3RvbS1nZXR0ZXIuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvanMvc2xv
dy1zdHJlc3MvcHJvdG8tY3VzdG9tLWdldHRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkg
KzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Byb3RvLWN1c3RvbS1n
ZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xv
dy1zdHJlc3Mvc2ltcGxlLWN1c3RvbS1nZXR0ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NpbXBs
ZS1jdXN0b20tZ2V0dGVyLWV4cGVjdGVkLnR4dDoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9z
bG93LXN0cmVzcy9zaW1wbGUtY3VzdG9tLWdldHRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zaW1wbGUtY3VzdG9tLWdldHRlci5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVy
Lmh0bWwJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zaW1w
bGUtY3VzdG9tLWdldHRlci5odG1sOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3Ry
ZXNzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc2ltcGxlLWN1
c3RvbS1nZXR0ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvc2xvdy1zdHJlc3Mvc2ltcGxlLWN1c3RvbS1nZXR0ZXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zaW1wbGUtY3VzdG9tLWdldHRlci5odG1sCSh3b3Jr
aW5nIGNvcHkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zaW1wbGUtY3VzdG9tLWdl
dHRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3ZhcmlhZGljLWNsb3N1
cmUtY2FsbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1z
dHJlc3MvdmFyaWFkaWMtY2xvc3VyZS1jYWxsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTY2NDY5
KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC1leHBl
Y3RlZC50eHQ6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvdmFyaWFkaWMt
Y2xvc3VyZS1jYWxsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBA
CitKU1JlZ3Jlc3MvdmFyaWFkaWMtY2xvc3VyZS1jYWxsCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93
LXN0cmVzcy92YXJpYWRpYy1jbG9zdXJlLWNhbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9zbG93LXN0cmVzcy92YXJpYWRpYy1jbG9zdXJlLWNhbGwuaHRtbAkocmV2aXNpb24g
MTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3ZhcmlhZGljLWNsb3N1cmUtY2Fs
bC5odG1sOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3ZhcmlhZGljLWNs
b3N1cmUtY2FsbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVz
cy92YXJpYWRpYy1jbG9zdXJlLWNhbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9zbG93LXN0cmVzcy92YXJpYWRpYy1jbG9zdXJlLWNhbGwuaHRtbAkod29ya2luZyBjb3B5KQor
KysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3MvdmFyaWFkaWMtY2xvc3VyZS1jYWxsLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvdmFyaWFkaWMtY2xvc3VyZS1jYWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZl
ci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXkt
YWxsb2MtaHVnZS1sb25nLWxpdmVkLmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1o
dWdlLWxvbmctbGl2ZWQuanM6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mv
c2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorLy9AIHNraXAKKwordmFyIGFycmF5
ID0gbmV3IEFycmF5KDEwMDApOworCit2YXIgbiA9IDEwMDAwOworCitmb3IgKHZhciBpID0gMDsg
aSA8IG47ICsraSkgeworICAgIGFycmF5WyhpIC8gKG4gLyBhcnJheS5sZW5ndGgpKSB8IDBdID0g
bmV3IEludDhBcnJheShuZXcgQXJyYXlCdWZmZXIoMTAwMDAwKSk7Cit9CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICBpZiAoYXJyYXlbaV0ubGVuZ3RoICE9
IDEwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXkgbGVuZ3RoOiAiICsgYXJy
YXlbaV0ubGVuZ3RoOworICAgIGlmIChhcnJheVtpXS5idWZmZXIuYnl0ZUxlbmd0aCAhPSAxMDAw
MDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGFycmF5IGJ1ZmZlciBsZW5ndGg6ICIgKyBh
cnJheVtpXS5idWZmZXIuYnl0ZUxlbmd0aDsKK30KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ct
c3RyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9u
Zy1saXZlZC1mcmFnbWVudGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ct
c3RyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9u
Zy1saXZlZC1mcmFnbWVudGVkLmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJn
ZS1sb25nLWxpdmVkLWZyYWdtZW50ZWQuanM6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xv
dy1zdHJlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1s
b25nLWxpdmVkLWZyYWdtZW50ZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAor
Ly9AIHNraXAKKwordmFyIGFycmF5ID0gbmV3IEFycmF5KDEwMDAwKTsKKwordmFyIGZyYWdtZW50
ZWRBcnJheSA9IFtdOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dmFyIG5ld0FycmF5ID0gbmV3IEludDhBcnJheShuZXcgQXJyYXlCdWZmZXIoMTAwMCkpOworICAg
IGlmIChpICUgMTAgPT09IDApCisgICAgICAgIG5ld0FycmF5LmN1c3RvbVByb3BlcnR5ID0gImZv
byI7CisgICAgZm9yICh2YXIgaiA9IDA7IGogPCAxMDsgaisrKQorICAgICAgICBmcmFnbWVudGVk
QXJyYXkgPSBuZXcgQXJyYXkoMTApOworICAgIGFycmF5W2kgJSBhcnJheS5sZW5ndGhdID0gbmV3
QXJyYXk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAg
ICBpZiAoYXJyYXlbaV0ubGVuZ3RoICE9IDEwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IGxlbmd0aDogIiArIGFycmF5W2ldLmxlbmd0aDsKKyAgICBpZiAoYXJyYXlbaV0uYnVmZmVyLmJ5
dGVMZW5ndGggIT0gMTAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYnVmZmVyLmJ5dGVM
ZW5ndGg6ICIgKyBhcnJheVtpXS5idWZmZXIuYnl0ZUxlbmd0aDsKK30KSW5kZXg6IExheW91dFRl
c3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9u
Zy1saXZlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3Jp
cHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuanMJKHJldmlzaW9uIDE2
NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJh
eS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuanM6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xv
dy1zdHJlc3Mvc2NyaXB0LXRlc3RzL0ludDMyQXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQgQEAKKy8vQCBza2lwCisKK3ZhciBhcnJheSA9
IG5ldyBBcnJheSgxMDAwKTsKKwordmFyIG4gPSAxMDAwMDsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCBuOyArK2kpIHsKKyAgICBhcnJheVsoaSAvIChuIC8gYXJyYXkubGVuZ3RoKSkgfCAwXSA9IG5l
dyBJbnQzMkFycmF5KDEwMDAwMCk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVu
Z3RoOyArK2kpIHsKKyAgICBpZiAoYXJyYXlbaV0ubGVuZ3RoICE9IDEwMDAwMCkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgYXJyYXkgbGVuZ3RoOiAiICsgYXJyYXlbaV0ubGVuZ3RoOworfQpJ
bmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL0ludDMyQXJyYXkt
YWxsb2MtaHVnZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9z
Y3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdlLmpzCShyZXZpc2lvbiAxNjY0NjkpCShm
cm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0ludDMyQXJyYXktYWxsb2Mt
aHVnZS5qczoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVz
dHMvSW50MzJBcnJheS1hbGxvYy1odWdlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBA
QAorLy9AIHNraXAKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgbmV3IElu
dDMyQXJyYXkoMTAwMDAwMCk7CisKSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3Nj
cmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL0ludDMyQXJyYXkt
YWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qcwkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLWxvbmct
bGl2ZWQuanM6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRl
c3RzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDExIEBACisvL0Agc2tpcAorCit2YXIgYXJyYXkgPSBuZXcgQXJyYXkoMTAwMDAp
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkKKyAgICBhcnJheVtpICUgYXJy
YXkubGVuZ3RoXSA9IG5ldyBJbnQzMkFycmF5KDEwMDApOworCitmb3IgKHZhciBpID0gMDsgaSA8
IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgaWYgKGFycmF5W2ldLmxlbmd0aCAhPSAxMDAwKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJheSBsZW5ndGg6ICIgKyBhcnJheVtpXS5sZW5n
dGg7Cit9CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvYXJy
YXktcHJvdG90eXBlLWZpbHRlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93
LXN0cmVzcy9zY3JpcHQtdGVzdHMvYXJyYXktcHJvdG90eXBlLWZpbHRlci5qcwkocmV2aXNpb24g
MTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9hcnJheS1w
cm90b3R5cGUtZmlsdGVyLmpzOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNz
L3NjcmlwdC10ZXN0cy9hcnJheS1wcm90b3R5cGUtZmlsdGVyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzMgQEAKK3ZhciByZXN1bHQgPSAwOworZnVuY3Rpb24gdGVzdDEoYSkgeworICAg
IHJlc3VsdCA8PCAxOworICAgIHJlc3VsdCsrOworICAgIHJldHVybiB0cnVlOworfQorZnVuY3Rp
b24gdGVzdDIoYSxiKSB7CisgICAgcmVzdWx0IF49IDM7CisgICAgcmVzdWx0ICo9IDM7CisgICAg
cmV0dXJuIChyZXN1bHQgJiAxKSA9PSAwOworfQorZnVuY3Rpb24gdGVzdDMoYSxiLGMpIHsKKyAg
ICByZXN1bHQgXj0gcmVzdWx0ID4+IDE7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZhciByZXN1
bHQgPSAwOwordmFyIGFycmF5ID0gW10KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
CisgICAgYXJyYXlbaV0gPSAxOworCit2YXIgdG90YWxMZW5ndGggPSAwCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwOyBpKyspIHsKKyAgICB0b3RhbExlbmd0aCArPSBhcnJheS5maWx0ZXIodGVzdDEp
Lmxlbmd0aDsKKyAgICB0b3RhbExlbmd0aCArPSBhcnJheS5maWx0ZXIodGVzdDIpLmxlbmd0aDsK
KyAgICB0b3RhbExlbmd0aCArPSBhcnJheS5maWx0ZXIodGVzdDMpLmxlbmd0aDsKK30KKworaWYg
KHJlc3VsdCAhPSAxNDI4ODEwNDk2KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKKworaWYgKHRvdGFsTGVuZ3RoICE9IDI1MDAwMDApCisgICAgdGhyb3cgIkVycm9y
OiBiYWQgbGVuZ3RoOiAiICsgdG90YWxMZW5ndGg7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL2NhbGwtc3By
ZWFkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10
ZXN0cy9jYWxsLXNwcmVhZC5qcwkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9jYWxsLXNwcmVhZC5qczoxNjY0NjkpCisrKyBMYXlvdXRU
ZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNCBAQAorCitmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oYSwgYikKK3sK
KyAgICAidXNlIHN0cmljdCIKKyAgICByZXN1bHQgfD0gMDsKKyAgICByZXR1cm4gYSAqIDEwMDAg
KyBiICogMTAwICsgYXJndW1lbnRzWzJdICogMTAgKyBhcmd1bWVudHMubGVuZ3RoIF4gKHJlc3Vs
dCAmIDEwMjQpOworfQorCit2YXIgYXJyYXlBcmd1bWVudHMgPSBbMiwgMywgNF0KK3ZhciByZXN1
bHQgPSAwOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspCisgICAgcmVzdWx0ICs9
IHRlc3RGdW5jdGlvbiguLi5hcnJheUFyZ3VtZW50cyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwMDsgaSsrKQorICAgIHJlc3VsdCArPSB0ZXN0RnVuY3Rpb24oLi4uWzEsIDIsIHJlc3Vs
dCwgNF0pOworCitmdW5jdGlvbiB0ZXN0MigpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0ICs9IHRlc3RGdW5jdGlvbiguLi5hcmd1bWVudHMp
OworfQorCit0ZXN0MigxLDIsMyw0KQorCisKK2Z1bmN0aW9uIHRlc3QzKCkgeworICAgIGFsaWFz
ZWRBcmd1bWVudHMgPSBhcmd1bWVudHM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAw
OyBpKyspCisgICAgICAgIHJlc3VsdCArPSB0ZXN0RnVuY3Rpb24oLi4uYWxpYXNlZEFyZ3VtZW50
cyk7Cit9CisKK3Rlc3QzKDEsMixyZXN1bHQsNCkKKworaWYgKHJlc3VsdCAhPSAtODU2NDQ0NjE5
Nzc5MjY0KQorICAgIHRocm93ICJSZXN1bHQgd2FzICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIC04
NTY0NDQ2MTk3NzkyNjQiOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9jYWxsLXNwcmVhZC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvY2FsbC1zcHJl
YWQuanMJKHdvcmtpbmcgY29weSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3Njcmlw
dC10ZXN0cy9jYWxsLXNwcmVhZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQgQEAKKy8v
QCBza2lwCiAKIGZ1bmN0aW9uIHRlc3RGdW5jdGlvbihhLCBiKQogewpJbmRleDogTGF5b3V0VGVz
dHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL2NoYWluLWN1c3RvbS1nZXR0ZXIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL2NoYWlu
LWN1c3RvbS1nZXR0ZXIuanMJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvY2hhaW4tY3VzdG9tLWdldHRlci5qczoxNjY0NjkpCisrKyBM
YXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvY2hhaW4tY3VzdG9tLWdldHRl
ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBACisKK3ZhciBjeWNsZXMgPSA2MDAw
OwordmFyIG51bWJlck9iamVjdCA9IHsgX19wcm90b19fOiBOdW1iZXJ9CitudW1iZXJPYmplY3Qg
PXtfX3Byb3RvX186IG51bWJlck9iamVjdH0KKworZnVuY3Rpb24gZm9vKCkgeworICAgIHZhciBy
ZXN1bHQgPSAwOworICAgIHZhciBpbm5lckN5Y2xlcyA9IGN5Y2xlczsKKyAgICB2YXIgTnVtYmVy
ID0gbnVtYmVyT2JqZWN0OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5uZXJDeWNsZXM7ICsr
aSkKKyAgICAgICAgcmVzdWx0ICs9IDAgfCBpc05hTihOdW1iZXIuTmFOKTsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK25vSW5saW5lKGZvbyk7Cit2YXIgcmVzdWx0ID0gMDsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTUwMDsgaSsrKQorICAgIHJlc3VsdCArPSBmb28oKTsKK2lmIChyZXN1bHQg
IT0gaSAqIGN5Y2xlcykKKyAgICB0aHJvdyAiRmFpbGVkLCByZXN1bHQgd2FzICIgKyAocmVzdWx0
KSArICIgc2hvdWxkIGJlICIgKyAoaSAqIGN5Y2xlcyk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9z
bG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMtbGVuZ3RoLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9k
ZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGguanMJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZGVzdHJ1Y3R1cmluZy1hcmd1bWVu
dHMtbGVuZ3RoLmpzOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3Njcmlw
dC10ZXN0cy9kZXN0cnVjdHVyaW5nLWFyZ3VtZW50cy1sZW5ndGguanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMyBAQAorLy9AIHJ1bkRlZmF1bHQKKworZnVuY3Rpb24gZm9vKCkgeworICAg
IHZhciB7MDogaSwgMTogaiwgbGVuZ3RofSA9IGFyZ3VtZW50czsKKyAgICByZXR1cm4gaSArIGog
KyBsZW5ndGg7Cit9CisKK3ZhciByZXN1bHQgPSAwOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDAwOyArK2kpCisgICAgcmVzdWx0ICs9IGZvbyhpLCAxKTsKKworaWYgKHJlc3VsdCAhPSA1MDAw
MDI1MDAwMDApCisgICAgdGhyb3cgIkJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvZW1zY3JpcHRlbi1tZW1vcHMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL2Vt
c2NyaXB0ZW4tbWVtb3BzLmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Vtc2NyaXB0ZW4tbWVtb3BzLmpzOjE2NjQ2OSkKKysrIExh
eW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9lbXNjcmlwdGVuLW1lbW9wcy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYzMTQgQEAKKy8vIElnbm9yZSB0aGlzIHRlc3Qg
aW4gcnVuLWpzYy1zdHJlc3MtdGVzdHMKKy8vQCBza2lwCisKKy8vIE5vdGU6IEZvciBtYXhpbXVt
LXNwZWVkIGNvZGUsIHNlZSAiT3B0aW1pemluZyBDb2RlIiBvbiB0aGUgRW1zY3JpcHRlbiB3aWtp
LCBodHRwczovL2dpdGh1Yi5jb20va3JpcGtlbi9lbXNjcmlwdGVuL3dpa2kvT3B0aW1pemluZy1D
b2RlCisvLyBOb3RlOiBTb21lIEVtc2NyaXB0ZW4gc2V0dGluZ3MgbWF5IGxpbWl0IHRoZSBzcGVl
ZCBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUuCisvLyBUaGUgTW9kdWxlIG9iamVjdDogT3VyIGludGVy
ZmFjZSB0byB0aGUgb3V0c2lkZSB3b3JsZC4gV2UgaW1wb3J0CisvLyBhbmQgZXhwb3J0IHZhbHVl
cyBvbiBpdCwgYW5kIGRvIHRoZSB3b3JrIHRvIGdldCB0aGF0IHRocm91Z2gKKy8vIGNsb3N1cmUg
Y29tcGlsZXIgaWYgbmVjZXNzYXJ5LiBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIE1vZHVsZSBjYW4g
YmUgdXNlZDoKKy8vIDEuIE5vdCBkZWZpbmVkLiBXZSBjcmVhdGUgaXQgaGVyZQorLy8gMi4gQSBm
dW5jdGlvbiBwYXJhbWV0ZXIsIGZ1bmN0aW9uKE1vZHVsZSkgeyAuLmdlbmVyYXRlZCBjb2RlLi4g
fQorLy8gMy4gcHJlLXJ1biBhcHBlbmRlZCBpdCwgdmFyIE1vZHVsZSA9IHt9OyAuLmdlbmVyYXRl
ZCBjb2RlLi4KKy8vIDQuIEV4dGVybmFsIHNjcmlwdCB0YWcgZGVmaW5lcyB2YXIgTW9kdWxlLgor
Ly8gV2UgbmVlZCB0byBkbyBhbiBldmFsIGluIG9yZGVyIHRvIGhhbmRsZSB0aGUgY2xvc3VyZSBj
b21waWxlcgorLy8gY2FzZSwgd2hlcmUgdGhpcyBjb2RlIGhlcmUgaXMgbWluaWZpZWQgYnV0IE1v
ZHVsZSB3YXMgZGVmaW5lZAorLy8gZWxzZXdoZXJlIChlLmcuIGNhc2UgNCBhYm92ZSkuIFdlIGFs
c28gbmVlZCB0byBjaGVjayBpZiBNb2R1bGUKKy8vIGFscmVhZHkgZXhpc3RzIChlLmcuIGNhc2Ug
MyBhYm92ZSkuCisvLyBOb3RlIHRoYXQgaWYgeW91IHdhbnQgdG8gcnVuIGNsb3N1cmUsIGFuZCBh
bHNvIHRvIHVzZSBNb2R1bGUKKy8vIGFmdGVyIHRoZSBnZW5lcmF0ZWQgY29kZSwgeW91IHdpbGwg
bmVlZCB0byBkZWZpbmUgICB2YXIgTW9kdWxlID0ge307CisvLyBiZWZvcmUgdGhlIGNvZGUuIFRo
ZW4gdGhhdCBvYmplY3Qgd2lsbCBiZSB1c2VkIGluIHRoZSBjb2RlLCBhbmQgeW91CisvLyBjYW4g
Y29udGludWUgdG8gdXNlIE1vZHVsZSBhZnRlcndhcmRzIGFzIHdlbGwuCit2YXIgTW9kdWxlOwor
aWYgKCFNb2R1bGUpIE1vZHVsZSA9IGV2YWwoJyhmdW5jdGlvbigpIHsgdHJ5IHsgcmV0dXJuIE1v
ZHVsZSB8fCB7fSB9IGNhdGNoKGUpIHsgcmV0dXJuIHt9IH0gfSkoKScpOworLy8gU29tZXRpbWVz
IGFuIGV4aXN0aW5nIE1vZHVsZSBvYmplY3QgZXhpc3RzIHdpdGggcHJvcGVydGllcworLy8gbWVh
bnQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IG1vZHVsZSBmdW5jdGlvbmFsaXR5LiBIZXJlCisv
LyB3ZSBjb2xsZWN0IHRob3NlIHByb3BlcnRpZXMgYW5kIHJlYXBwbHkgX2FmdGVyXyB3ZSBjb25m
aWd1cmUKKy8vIHRoZSBjdXJyZW50IGVudmlyb25tZW50J3MgZGVmYXVsdHMgdG8gYXZvaWQgaGF2
aW5nIHRvIGJlIHNvCisvLyBkZWZlbnNpdmUgZHVyaW5nIGluaXRpYWxpemF0aW9uLgordmFyIG1v
ZHVsZU92ZXJyaWRlcyA9IHt9OworZm9yICh2YXIga2V5IGluIE1vZHVsZSkgeworICBpZiAoTW9k
dWxlLmhhc093blByb3BlcnR5KGtleSkpIHsKKyAgICBtb2R1bGVPdmVycmlkZXNba2V5XSA9IE1v
ZHVsZVtrZXldOworICB9Cit9CisvLyBUaGUgZW52aXJvbm1lbnQgc2V0dXAgY29kZSBiZWxvdyBp
cyBjdXN0b21pemVkIHRvIHVzZSBNb2R1bGUuCisvLyAqKiogRW52aXJvbm1lbnQgc2V0dXAgY29k
ZSAqKioKK3ZhciBFTlZJUk9OTUVOVF9JU19OT0RFID0gdHlwZW9mIHByb2Nlc3MgPT09ICdvYmpl
Y3QnICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nOwordmFyIEVOVklST05NRU5UX0lT
X1dFQiA9IHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnOwordmFyIEVOVklST05NRU5UX0lTX1dP
UktFUiA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzID09PSAnZnVuY3Rpb24nOwordmFyIEVOVklST05N
RU5UX0lTX1NIRUxMID0gIUVOVklST05NRU5UX0lTX1dFQiAmJiAhRU5WSVJPTk1FTlRfSVNfTk9E
RSAmJiAhRU5WSVJPTk1FTlRfSVNfV09SS0VSOwordmFyIEpTUmVncmVzc19vdXRwdXRCdWZmZXIg
PSAiIjsKK2lmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7CisgIC8vIEV4cG9zZSBmdW5jdGlvbmFs
aXR5IGluIHRoZSBzYW1lIHNpbXBsZSB3YXkgdGhhdCB0aGUgc2hlbGxzIHdvcmsKKyAgLy8gTm90
ZSB0aGF0IHdlIHBvbGx1dGUgdGhlIGdsb2JhbCBuYW1lc3BhY2UgaGVyZSwgb3RoZXJ3aXNlIHdl
IGJyZWFrIGluIG5vZGUKKyAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgeworICAgIHBy
b2Nlc3NbJ3N0ZG91dCddLndyaXRlKHggKyAnXG4nKTsKKyAgfTsKKyAgTW9kdWxlWydwcmludEVy
ciddID0gZnVuY3Rpb24oeCkgeworICAgIHByb2Nlc3NbJ3N0ZGVyciddLndyaXRlKHggKyAnXG4n
KTsKKyAgfTsKKyAgdmFyIG5vZGVGUyA9IHJlcXVpcmUoJ2ZzJyk7CisgIHZhciBub2RlUGF0aCA9
IHJlcXVpcmUoJ3BhdGgnKTsKKyAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbihmaWxlbmFtZSwg
YmluYXJ5KSB7CisgICAgZmlsZW5hbWUgPSBub2RlUGF0aFsnbm9ybWFsaXplJ10oZmlsZW5hbWUp
OworICAgIHZhciByZXQgPSBub2RlRlNbJ3JlYWRGaWxlU3luYyddKGZpbGVuYW1lKTsKKyAgICAv
LyBUaGUgcGF0aCBpcyBhYnNvbHV0ZSBpZiB0aGUgbm9ybWFsaXplZCB2ZXJzaW9uIGlzIHRoZSBz
YW1lIGFzIHRoZSByZXNvbHZlZC4KKyAgICBpZiAoIXJldCAmJiBmaWxlbmFtZSAhPSBub2RlUGF0
aFsncmVzb2x2ZSddKGZpbGVuYW1lKSkgeworICAgICAgZmlsZW5hbWUgPSBwYXRoLmpvaW4oX19k
aXJuYW1lLCAnLi4nLCAnc3JjJywgZmlsZW5hbWUpOworICAgICAgcmV0ID0gbm9kZUZTWydyZWFk
RmlsZVN5bmMnXShmaWxlbmFtZSk7CisgICAgfQorICAgIGlmIChyZXQgJiYgIWJpbmFyeSkgcmV0
ID0gcmV0LnRvU3RyaW5nKCk7CisgICAgcmV0dXJuIHJldDsKKyAgfTsKKyAgTW9kdWxlWydyZWFk
QmluYXJ5J10gPSBmdW5jdGlvbihmaWxlbmFtZSkgeyByZXR1cm4gTW9kdWxlWydyZWFkJ10oZmls
ZW5hbWUsIHRydWUpIH07CisgIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rpb24oZikgeworICAgIGds
b2JhbEV2YWwocmVhZChmKSk7CisgIH07CisgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBwcm9jZXNz
Wydhcmd2J10uc2xpY2UoMik7CisgIG1vZHVsZS5leHBvcnRzID0gTW9kdWxlOworfQorZWxzZSBp
ZiAoRU5WSVJPTk1FTlRfSVNfU0hFTEwpIHsKKyAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24o
KSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgIGlmIChpKQorICAgICAgICAgICAgICBKU1JlZ3Jlc3Nfb3V0cHV0QnVmZmVyICs9
ICIgIjsKKyAgICAgICAgICBKU1JlZ3Jlc3Nfb3V0cHV0QnVmZmVyICs9IGFyZ3VtZW50c1tpXTsK
KyAgICAgIH0KKyAgICAgIEpTUmVncmVzc19vdXRwdXRCdWZmZXIgKz0gIlxuIjsKKyAgfTsKKyAg
aWYgKHR5cGVvZiBwcmludEVyciAhPSAndW5kZWZpbmVkJykgTW9kdWxlWydwcmludEVyciddID0g
cHJpbnRFcnI7IC8vIG5vdCBwcmVzZW50IGluIHY4IG9yIG9sZGVyIHNtCisgIGlmICh0eXBlb2Yg
cmVhZCAhPSAndW5kZWZpbmVkJykgeworICAgIE1vZHVsZVsncmVhZCddID0gcmVhZDsKKyAgfSBl
bHNlIHsKKyAgICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKCkgeyB0aHJvdyAnbm8gcmVhZCgp
IGF2YWlsYWJsZSAoanNjPyknIH07CisgIH0KKyAgTW9kdWxlWydyZWFkQmluYXJ5J10gPSBmdW5j
dGlvbihmKSB7CisgICAgcmV0dXJuIHJlYWQoZiwgJ2JpbmFyeScpOworICB9OworICBpZiAodHlw
ZW9mIHNjcmlwdEFyZ3MgIT0gJ3VuZGVmaW5lZCcpIHsKKyAgICBNb2R1bGVbJ2FyZ3VtZW50cydd
ID0gc2NyaXB0QXJnczsKKyAgfSBlbHNlIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRlZmlu
ZWQnKSB7CisgICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsKKyAgfQorICB0aGlz
WydNb2R1bGUnXSA9IE1vZHVsZTsKK30KK2Vsc2UgaWYgKEVOVklST05NRU5UX0lTX1dFQiB8fCBF
TlZJUk9OTUVOVF9JU19XT1JLRVIpIHsKKyAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbih1cmwp
IHsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oJ0dF
VCcsIHVybCwgZmFsc2UpOworICAgIHhoci5zZW5kKG51bGwpOworICAgIHJldHVybiB4aHIucmVz
cG9uc2VUZXh0OworICB9OworICBpZiAodHlwZW9mIGFyZ3VtZW50cyAhPSAndW5kZWZpbmVkJykg
eworICAgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBhcmd1bWVudHM7CisgIH0KKyAgaWYgKEVOVklS
T05NRU5UX0lTX1dFQikgeworICAgIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsKKyAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
ICAgaWYgKGkpCisgICAgICAgICAgICAgIEpTUmVncmVzc19vdXRwdXRCdWZmZXIgKz0gIiAiOwor
ICAgICAgICAgIEpTUmVncmVzc19vdXRwdXRCdWZmZXIgKz0gYXJndW1lbnRzW2ldOworICAgICAg
fQorICAgICAgSlNSZWdyZXNzX291dHB1dEJ1ZmZlciArPSAiXG4iOworICAgIH07CisgICAgTW9k
dWxlWydwcmludEVyciddID0gZnVuY3Rpb24oeCkgeworICAgICAgY29uc29sZS5sb2coeCk7Cisg
ICAgfTsKKyAgICB0aGlzWydNb2R1bGUnXSA9IE1vZHVsZTsKKyAgfSBlbHNlIGlmIChFTlZJUk9O
TUVOVF9JU19XT1JLRVIpIHsKKyAgICAvLyBXZSBjYW4gZG8gdmVyeSBsaXR0bGUgaGVyZS4uLgor
ICAgIHZhciBUUllfVVNFX0RVTVAgPSBmYWxzZTsKKyAgICBNb2R1bGVbJ3ByaW50J10gPSAoVFJZ
X1VTRV9EVU1QICYmICh0eXBlb2YoZHVtcCkgIT09ICJ1bmRlZmluZWQiKSA/IChmdW5jdGlvbih4
KSB7CisgICAgICBkdW1wKHgpOworICAgIH0pIDogKGZ1bmN0aW9uKHgpIHsKKyAgICAgIC8vIHNl
bGYucG9zdE1lc3NhZ2UoeCk7IC8vIGVuYWJsZSB0aGlzIGlmIHlvdSB3YW50IHN0ZG91dCB0byBi
ZSBzZW50IGFzIG1lc3NhZ2VzCisgICAgfSkpOworICAgIE1vZHVsZVsnbG9hZCddID0gaW1wb3J0
U2NyaXB0czsKKyAgfQorfQorZWxzZSB7CisgIC8vIFVucmVhY2hhYmxlIGJlY2F1c2UgU0hFTEwg
aXMgZGVwZW5kYW50IG9uIHRoZSBvdGhlcnMKKyAgdGhyb3cgJ1Vua25vd24gcnVudGltZSBlbnZp
cm9ubWVudC4gV2hlcmUgYXJlIHdlPyc7Cit9CitmdW5jdGlvbiBnbG9iYWxFdmFsKHgpIHsKKyAg
ZXZhbC5jYWxsKG51bGwsIHgpOworfQoraWYgKCFNb2R1bGVbJ2xvYWQnXSA9PSAndW5kZWZpbmVk
JyAmJiBNb2R1bGVbJ3JlYWQnXSkgeworICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsK
KyAgICBnbG9iYWxFdmFsKE1vZHVsZVsncmVhZCddKGYpKTsKKyAgfTsKK30KK2lmICghTW9kdWxl
WydwcmludCddKSB7CisgIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKCl7fTsKK30KK2lmICgh
TW9kdWxlWydwcmludEVyciddKSB7CisgIE1vZHVsZVsncHJpbnRFcnInXSA9IE1vZHVsZVsncHJp
bnQnXTsKK30KK2lmICghTW9kdWxlWydhcmd1bWVudHMnXSkgeworICBNb2R1bGVbJ2FyZ3VtZW50
cyddID0gW107Cit9CisvLyAqKiogRW52aXJvbm1lbnQgc2V0dXAgY29kZSAqKioKKy8vIENsb3N1
cmUgaGVscGVycworTW9kdWxlLnByaW50ID0gTW9kdWxlWydwcmludCddOworTW9kdWxlLnByaW50
RXJyID0gTW9kdWxlWydwcmludEVyciddOworLy8gQ2FsbGJhY2tzCitNb2R1bGVbJ3ByZVJ1bidd
ID0gW107CitNb2R1bGVbJ3Bvc3RSdW4nXSA9IFtdOworLy8gTWVyZ2UgYmFjayBpbiB0aGUgb3Zl
cnJpZGVzCitmb3IgKHZhciBrZXkgaW4gbW9kdWxlT3ZlcnJpZGVzKSB7CisgIGlmIChtb2R1bGVP
dmVycmlkZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgeworICAgIE1vZHVsZVtrZXldID0gbW9kdWxl
T3ZlcnJpZGVzW2tleV07CisgIH0KK30KKy8vID09PSBBdXRvLWdlbmVyYXRlZCBwcmVhbWJsZSBs
aWJyYXJ5IHN0dWZmID09PQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisvLyBSdW50aW1lIGNvZGUgc2hhcmVkIHdpdGggY29tcGlsZXIKKy8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQordmFyIFJ1bnRpbWUgPSB7CisgIHN0YWNrU2F2
ZTogZnVuY3Rpb24gKCkgeworICAgIHJldHVybiBTVEFDS1RPUDsKKyAgfSwKKyAgc3RhY2tSZXN0
b3JlOiBmdW5jdGlvbiAoc3RhY2tUb3ApIHsKKyAgICBTVEFDS1RPUCA9IHN0YWNrVG9wOworICB9
LAorICBmb3JjZUFsaWduOiBmdW5jdGlvbiAodGFyZ2V0LCBxdWFudHVtKSB7CisgICAgcXVhbnR1
bSA9IHF1YW50dW0gfHwgNDsKKyAgICBpZiAocXVhbnR1bSA9PSAxKSByZXR1cm4gdGFyZ2V0Owor
ICAgIGlmIChpc051bWJlcih0YXJnZXQpICYmIGlzTnVtYmVyKHF1YW50dW0pKSB7CisgICAgICBy
ZXR1cm4gTWF0aC5jZWlsKHRhcmdldC9xdWFudHVtKSpxdWFudHVtOworICAgIH0gZWxzZSBpZiAo
aXNOdW1iZXIocXVhbnR1bSkgJiYgaXNQb3dlck9mVHdvKHF1YW50dW0pKSB7CisgICAgICB2YXIg
bG9nZyA9IGxvZzIocXVhbnR1bSk7CisgICAgICByZXR1cm4gJygoKCgnICt0YXJnZXQgKyAnKSsn
ICsgKHF1YW50dW0tMSkgKyAnKT4+JyArIGxvZ2cgKyAnKTw8JyArIGxvZ2cgKyAnKSc7CisgICAg
fQorICAgIHJldHVybiAnTWF0aC5jZWlsKCgnICsgdGFyZ2V0ICsgJykvJyArIHF1YW50dW0gKyAn
KSonICsgcXVhbnR1bTsKKyAgfSwKKyAgaXNOdW1iZXJUeXBlOiBmdW5jdGlvbiAodHlwZSkgewor
ICAgIHJldHVybiB0eXBlIGluIFJ1bnRpbWUuSU5UX1RZUEVTIHx8IHR5cGUgaW4gUnVudGltZS5G
TE9BVF9UWVBFUzsKKyAgfSwKKyAgaXNQb2ludGVyVHlwZTogZnVuY3Rpb24gaXNQb2ludGVyVHlw
ZSh0eXBlKSB7CisgIHJldHVybiB0eXBlW3R5cGUubGVuZ3RoLTFdID09ICcqJzsKK30sCisgIGlz
U3RydWN0VHlwZTogZnVuY3Rpb24gaXNTdHJ1Y3RUeXBlKHR5cGUpIHsKKyAgaWYgKGlzUG9pbnRl
clR5cGUodHlwZSkpIHJldHVybiBmYWxzZTsKKyAgaWYgKGlzQXJyYXlUeXBlKHR5cGUpKSByZXR1
cm4gdHJ1ZTsKKyAgaWYgKC88P3sgP1tefV0qID99Pj8vLnRlc3QodHlwZSkpIHJldHVybiB0cnVl
OyAvLyB7IGkzMiwgaTggfSBldGMuIC0gYW5vbnltb3VzIHN0cnVjdCB0eXBlcworICAvLyBTZWUg
Y29tbWVudCBpbiBpc1N0cnVjdFBvaW50ZXJUeXBlKCkKKyAgcmV0dXJuIHR5cGVbMF0gPT0gJyUn
OworfSwKKyAgSU5UX1RZUEVTOiB7ImkxIjowLCJpOCI6MCwiaTE2IjowLCJpMzIiOjAsImk2NCI6
MH0sCisgIEZMT0FUX1RZUEVTOiB7ImZsb2F0IjowLCJkb3VibGUiOjB9LAorICBvcjY0OiBmdW5j
dGlvbiAoeCwgeSkgeworICAgIHZhciBsID0gKHggfCAwKSB8ICh5IHwgMCk7CisgICAgdmFyIGgg
PSAoTWF0aC5yb3VuZCh4IC8gNDI5NDk2NzI5NikgfCBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2
KSkgKiA0Mjk0OTY3Mjk2OworICAgIHJldHVybiBsICsgaDsKKyAgfSwKKyAgYW5kNjQ6IGZ1bmN0
aW9uICh4LCB5KSB7CisgICAgdmFyIGwgPSAoeCB8IDApICYgKHkgfCAwKTsKKyAgICB2YXIgaCA9
IChNYXRoLnJvdW5kKHggLyA0Mjk0OTY3Mjk2KSAmIE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYp
KSAqIDQyOTQ5NjcyOTY7CisgICAgcmV0dXJuIGwgKyBoOworICB9LAorICB4b3I2NDogZnVuY3Rp
b24gKHgsIHkpIHsKKyAgICB2YXIgbCA9ICh4IHwgMCkgXiAoeSB8IDApOworICAgIHZhciBoID0g
KE1hdGgucm91bmQoeCAvIDQyOTQ5NjcyOTYpIF4gTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5Nikp
ICogNDI5NDk2NzI5NjsKKyAgICByZXR1cm4gbCArIGg7CisgIH0sCisgIGdldE5hdGl2ZVR5cGVT
aXplOiBmdW5jdGlvbiAodHlwZSwgcXVhbnR1bVNpemUpIHsKKyAgICBpZiAoUnVudGltZS5RVUFO
VFVNX1NJWkUgPT0gMSkgcmV0dXJuIDE7CisgICAgdmFyIHNpemUgPSB7CisgICAgICAnJWkxJzog
MSwKKyAgICAgICclaTgnOiAxLAorICAgICAgJyVpMTYnOiAyLAorICAgICAgJyVpMzInOiA0LAor
ICAgICAgJyVpNjQnOiA4LAorICAgICAgIiVmbG9hdCI6IDQsCisgICAgICAiJWRvdWJsZSI6IDgK
KyAgICB9WyclJyt0eXBlXTsgLy8gYWRkICclJyBzaW5jZSBmbG9hdCBhbmQgZG91YmxlIGNvbmZ1
c2UgQ2xvc3VyZSBjb21waWxlciBhcyBrZXlzLCBhbmQgYWxzbyBzcGlkZXJtb25rZXkgYXMgYSBj
b21waWxlciB3aWxsIHJlbW92ZSAncyBmcm9tICdfaTgnIGV0YworICAgIGlmICghc2l6ZSkgewor
ICAgICAgaWYgKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpID09ICcqJykgeworICAgICAgICBz
aXplID0gUnVudGltZS5RVUFOVFVNX1NJWkU7IC8vIEEgcG9pbnRlcgorICAgICAgfSBlbHNlIGlm
ICh0eXBlWzBdID09ICdpJykgeworICAgICAgICB2YXIgYml0cyA9IHBhcnNlSW50KHR5cGUuc3Vi
c3RyKDEpKTsKKyAgICAgICAgYXNzZXJ0KGJpdHMgJSA4ID09IDApOworICAgICAgICBzaXplID0g
Yml0cy84OworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc2l6ZTsKKyAgfSwKKyAgZ2V0TmF0
aXZlRmllbGRTaXplOiBmdW5jdGlvbiAodHlwZSkgeworICAgIHJldHVybiBNYXRoLm1heChSdW50
aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpLCBSdW50aW1lLlFVQU5UVU1fU0laRSk7CisgIH0s
CisgIGRlZHVwOiBmdW5jdGlvbiBkZWR1cChpdGVtcywgaWRlbnQpIHsKKyAgdmFyIHNlZW4gPSB7
fTsKKyAgaWYgKGlkZW50KSB7CisgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVt
KSB7CisgICAgICBpZiAoc2VlbltpdGVtW2lkZW50XV0pIHJldHVybiBmYWxzZTsKKyAgICAgIHNl
ZW5baXRlbVtpZGVudF1dID0gdHJ1ZTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0pOworICB9
IGVsc2UgeworICAgIHJldHVybiBpdGVtcy5maWx0ZXIoZnVuY3Rpb24oaXRlbSkgeworICAgICAg
aWYgKHNlZW5baXRlbV0pIHJldHVybiBmYWxzZTsKKyAgICAgIHNlZW5baXRlbV0gPSB0cnVlOwor
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7CisgIH0KK30sCisgIHNldDogZnVuY3Rpb24gc2V0
KCkgeworICB2YXIgYXJncyA9IHR5cGVvZiBhcmd1bWVudHNbMF0gPT09ICdvYmplY3QnID8gYXJn
dW1lbnRzWzBdIDogYXJndW1lbnRzOworICB2YXIgcmV0ID0ge307CisgIGZvciAodmFyIGkgPSAw
OyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworICAgIHJldFthcmdzW2ldXSA9IDA7CisgIH0KKyAg
cmV0dXJuIHJldDsKK30sCisgIFNUQUNLX0FMSUdOOiA4LAorICBnZXRBbGlnblNpemU6IGZ1bmN0
aW9uICh0eXBlLCBzaXplLCB2YXJhcmcpIHsKKyAgICAvLyB3ZSBhbGlnbiBpNjRzIGFuZCBkb3Vi
bGVzIG9uIDY0LWJpdCBib3VuZGFyaWVzLCB1bmxpa2UgeDg2CisgICAgaWYgKHR5cGUgPT0gJ2k2
NCcgfHwgdHlwZSA9PSAnZG91YmxlJyB8fCB2YXJhcmcpIHJldHVybiA4OworICAgIGlmICghdHlw
ZSkgcmV0dXJuIE1hdGgubWluKHNpemUsIDgpOyAvLyBhbGlnbiBzdHJ1Y3R1cmVzIGludGVybmFs
bHkgdG8gNjQgYml0cworICAgIHJldHVybiBNYXRoLm1pbihzaXplIHx8ICh0eXBlID8gUnVudGlt
ZS5nZXROYXRpdmVGaWVsZFNpemUodHlwZSkgOiAwKSwgUnVudGltZS5RVUFOVFVNX1NJWkUpOwor
ICB9LAorICBjYWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQ6IGZ1bmN0aW9uIGNhbGN1bGF0ZVN0cnVj
dEFsaWdubWVudCh0eXBlKSB7CisgICAgdHlwZS5mbGF0U2l6ZSA9IDA7CisgICAgdHlwZS5hbGln
blNpemUgPSAwOworICAgIHZhciBkaWZmcyA9IFtdOworICAgIHZhciBwcmV2ID0gLTE7CisgICAg
dmFyIGluZGV4ID0gMDsKKyAgICB0eXBlLmZsYXRJbmRleGVzID0gdHlwZS5maWVsZHMubWFwKGZ1
bmN0aW9uKGZpZWxkKSB7CisgICAgICBpbmRleCsrOworICAgICAgdmFyIHNpemUsIGFsaWduU2l6
ZTsKKyAgICAgIGlmIChSdW50aW1lLmlzTnVtYmVyVHlwZShmaWVsZCkgfHwgUnVudGltZS5pc1Bv
aW50ZXJUeXBlKGZpZWxkKSkgeworICAgICAgICBzaXplID0gUnVudGltZS5nZXROYXRpdmVUeXBl
U2l6ZShmaWVsZCk7IC8vIHBhY2sgY2hhcjsgY2hhcjsgaW4gc3RydWN0cywgYWxzbyBjaGFyW1hd
cy4KKyAgICAgICAgYWxpZ25TaXplID0gUnVudGltZS5nZXRBbGlnblNpemUoZmllbGQsIHNpemUp
OworICAgICAgfSBlbHNlIGlmIChSdW50aW1lLmlzU3RydWN0VHlwZShmaWVsZCkpIHsKKyAgICAg
ICAgaWYgKGZpZWxkWzFdID09PSAnMCcpIHsKKyAgICAgICAgICAvLyB0aGlzIGlzIFswIHggc29t
ZXRoaW5nXS4gV2hlbiBpbnNpZGUgYW5vdGhlciBzdHJ1Y3R1cmUgbGlrZSBoZXJlLCBpdCBtdXN0
IGJlIGF0IHRoZSBlbmQsCisgICAgICAgICAgLy8gYW5kIGl0IGFkZHMgbm8gc2l6ZQorICAgICAg
ICAgIC8vIFhYWCB0aGlzIGhhcHBlbnMgaW4gamF2YS1uYm9keSBmb3IgZXhhbXBsZS4uLiBhc3Nl
cnQoaW5kZXggPT09IHR5cGUuZmllbGRzLmxlbmd0aCwgJ3plcm8tbGVuZ3RoIGluIHRoZSBtaWRk
bGUhJyk7CisgICAgICAgICAgc2l6ZSA9IDA7CisgICAgICAgICAgYWxpZ25TaXplID0gdHlwZS5h
bGlnblNpemUgfHwgUVVBTlRVTV9TSVpFOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHNp
emUgPSBUeXBlcy50eXBlc1tmaWVsZF0uZmxhdFNpemU7CisgICAgICAgICAgYWxpZ25TaXplID0g
UnVudGltZS5nZXRBbGlnblNpemUobnVsbCwgVHlwZXMudHlwZXNbZmllbGRdLmFsaWduU2l6ZSk7
CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSBpZiAoZmllbGRbMF0gPT0gJ2InKSB7CisgICAgICAg
IC8vIGJOLCBsYXJnZSBudW1iZXIgZmllbGQsIGxpa2UgYSBbTiB4IGk4XQorICAgICAgICBzaXpl
ID0gZmllbGQuc3Vic3RyKDEpfDA7CisgICAgICAgIGFsaWduU2l6ZSA9IDE7CisgICAgICB9IGVs
c2UgeworICAgICAgICB0aHJvdyAnVW5jbGVhciB0eXBlIGluIHN0cnVjdDogJyArIGZpZWxkICsg
JywgaW4gJyArIHR5cGUubmFtZV8gKyAnIDo6ICcgKyBkdW1wKFR5cGVzLnR5cGVzW3R5cGUubmFt
ZV9dKTsKKyAgICAgIH0KKyAgICAgIGlmICh0eXBlLnBhY2tlZCkgYWxpZ25TaXplID0gMTsKKyAg
ICAgIHR5cGUuYWxpZ25TaXplID0gTWF0aC5tYXgodHlwZS5hbGlnblNpemUsIGFsaWduU2l6ZSk7
CisgICAgICB2YXIgY3VyciA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkodHlwZS5mbGF0U2l6ZSwgYWxp
Z25TaXplKTsgLy8gaWYgbmVjZXNzYXJ5LCBwbGFjZSB0aGlzIG9uIGFsaWduZWQgbWVtb3J5Cisg
ICAgICB0eXBlLmZsYXRTaXplID0gY3VyciArIHNpemU7CisgICAgICBpZiAocHJldiA+PSAwKSB7
CisgICAgICAgIGRpZmZzLnB1c2goY3Vyci1wcmV2KTsKKyAgICAgIH0KKyAgICAgIHByZXYgPSBj
dXJyOworICAgICAgcmV0dXJuIGN1cnI7CisgICAgfSk7CisgICAgdHlwZS5mbGF0U2l6ZSA9IFJ1
bnRpbWUuYWxpZ25NZW1vcnkodHlwZS5mbGF0U2l6ZSwgdHlwZS5hbGlnblNpemUpOworICAgIGlm
IChkaWZmcy5sZW5ndGggPT0gMCkgeworICAgICAgdHlwZS5mbGF0RmFjdG9yID0gdHlwZS5mbGF0
U2l6ZTsKKyAgICB9IGVsc2UgaWYgKFJ1bnRpbWUuZGVkdXAoZGlmZnMpLmxlbmd0aCA9PSAxKSB7
CisgICAgICB0eXBlLmZsYXRGYWN0b3IgPSBkaWZmc1swXTsKKyAgICB9CisgICAgdHlwZS5uZWVk
c0ZsYXR0ZW5pbmcgPSAodHlwZS5mbGF0RmFjdG9yICE9IDEpOworICAgIHJldHVybiB0eXBlLmZs
YXRJbmRleGVzOworICB9LAorICBnZW5lcmF0ZVN0cnVjdEluZm86IGZ1bmN0aW9uIChzdHJ1Y3Qs
IHR5cGVOYW1lLCBvZmZzZXQpIHsKKyAgICB2YXIgdHlwZSwgYWxpZ25tZW50OworICAgIGlmICh0
eXBlTmFtZSkgeworICAgICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDA7CisgICAgICB0eXBlID0gKHR5
cGVvZiBUeXBlcyA9PT0gJ3VuZGVmaW5lZCcgPyBSdW50aW1lLnR5cGVJbmZvIDogVHlwZXMudHlw
ZXMpW3R5cGVOYW1lXTsKKyAgICAgIGlmICghdHlwZSkgcmV0dXJuIG51bGw7CisgICAgICBpZiAo
dHlwZS5maWVsZHMubGVuZ3RoICE9IHN0cnVjdC5sZW5ndGgpIHsKKyAgICAgICAgcHJpbnRFcnIo
J051bWJlciBvZiBuYW1lZCBmaWVsZHMgbXVzdCBtYXRjaCB0aGUgdHlwZSBmb3IgJyArIHR5cGVO
YW1lICsgJzogcG9zc2libHkgZHVwbGljYXRlIHN0cnVjdCBuYW1lcy4gQ2Fubm90IHJldHVybiBz
dHJ1Y3RJbmZvJyk7CisgICAgICAgIHJldHVybiBudWxsOworICAgICAgfQorICAgICAgYWxpZ25t
ZW50ID0gdHlwZS5mbGF0SW5kZXhlczsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHR5cGUgPSB7
IGZpZWxkczogc3RydWN0Lm1hcChmdW5jdGlvbihpdGVtKSB7IHJldHVybiBpdGVtWzBdIH0pIH07
CisgICAgICBhbGlnbm1lbnQgPSBSdW50aW1lLmNhbGN1bGF0ZVN0cnVjdEFsaWdubWVudCh0eXBl
KTsKKyAgICB9CisgICAgdmFyIHJldCA9IHsKKyAgICAgIF9fc2l6ZV9fOiB0eXBlLmZsYXRTaXpl
CisgICAgfTsKKyAgICBpZiAodHlwZU5hbWUpIHsKKyAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1bmN0
aW9uKGl0ZW0sIGkpIHsKKyAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykgewor
ICAgICAgICAgIHJldFtpdGVtXSA9IGFsaWdubWVudFtpXSArIG9mZnNldDsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAvLyBlbWJlZGRlZCBzdHJ1Y3QKKyAgICAgICAgICB2YXIga2V5Owor
ICAgICAgICAgIGZvciAodmFyIGsgaW4gaXRlbSkga2V5ID0gazsKKyAgICAgICAgICByZXRba2V5
XSA9IFJ1bnRpbWUuZ2VuZXJhdGVTdHJ1Y3RJbmZvKGl0ZW1ba2V5XSwgdHlwZS5maWVsZHNbaV0s
IGFsaWdubWVudFtpXSk7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAg
ICBzdHJ1Y3QuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpKSB7CisgICAgICAgIHJldFtpdGVtWzFd
XSA9IGFsaWdubWVudFtpXTsKKyAgICAgIH0pOworICAgIH0KKyAgICByZXR1cm4gcmV0OworICB9
LAorICBkeW5DYWxsOiBmdW5jdGlvbiAoc2lnLCBwdHIsIGFyZ3MpIHsKKyAgICBpZiAoYXJncyAm
JiBhcmdzLmxlbmd0aCkgeworICAgICAgaWYgKCFhcmdzLnNwbGljZSkgYXJncyA9IEFycmF5LnBy
b3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpOworICAgICAgYXJncy5zcGxpY2UoMCwgMCwgcHRyKTsK
KyAgICAgIHJldHVybiBNb2R1bGVbJ2R5bkNhbGxfJyArIHNpZ10uYXBwbHkobnVsbCwgYXJncyk7
CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBNb2R1bGVbJ2R5bkNhbGxfJyArIHNpZ10uY2Fs
bChudWxsLCBwdHIpOworICAgIH0KKyAgfSwKKyAgZnVuY3Rpb25Qb2ludGVyczogW10sCisgIGFk
ZEZ1bmN0aW9uOiBmdW5jdGlvbiAoZnVuYykgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUnVu
dGltZS5mdW5jdGlvblBvaW50ZXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICBpZiAoIVJ1bnRpbWUu
ZnVuY3Rpb25Qb2ludGVyc1tpXSkgeworICAgICAgICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNb
aV0gPSBmdW5jOworICAgICAgICByZXR1cm4gMiArIDIqaTsKKyAgICAgIH0KKyAgICB9CisgICAg
dGhyb3cgJ0ZpbmlzaGVkIHVwIGFsbCByZXNlcnZlZCBmdW5jdGlvbiBwb2ludGVycy4gVXNlIGEg
aGlnaGVyIHZhbHVlIGZvciBSRVNFUlZFRF9GVU5DVElPTl9QT0lOVEVSUy4nOworICB9LAorICBy
ZW1vdmVGdW5jdGlvbjogZnVuY3Rpb24gKGluZGV4KSB7CisgICAgUnVudGltZS5mdW5jdGlvblBv
aW50ZXJzWyhpbmRleC0yKS8yXSA9IG51bGw7CisgIH0sCisgIHdhcm5PbmNlOiBmdW5jdGlvbiAo
dGV4dCkgeworICAgIGlmICghUnVudGltZS53YXJuT25jZS5zaG93bikgUnVudGltZS53YXJuT25j
ZS5zaG93biA9IHt9OworICAgIGlmICghUnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XSkgewor
ICAgICAgUnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XSA9IDE7CisgICAgICBNb2R1bGUucHJp
bnRFcnIodGV4dCk7CisgICAgfQorICB9LAorICBmdW5jV3JhcHBlcnM6IHt9LAorICBnZXRGdW5j
V3JhcHBlcjogZnVuY3Rpb24gKGZ1bmMsIHNpZykgeworICAgIGFzc2VydChzaWcpOworICAgIGlm
ICghUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10pIHsKKyAgICAgIFJ1bnRpbWUuZnVuY1dyYXBw
ZXJzW2Z1bmNdID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiBSdW50aW1lLmR5bkNhbGwo
c2lnLCBmdW5jLCBhcmd1bWVudHMpOworICAgICAgfTsKKyAgICB9CisgICAgcmV0dXJuIFJ1bnRp
bWUuZnVuY1dyYXBwZXJzW2Z1bmNdOworICB9LAorICBVVEY4UHJvY2Vzc29yOiBmdW5jdGlvbiAo
KSB7CisgICAgdmFyIGJ1ZmZlciA9IFtdOworICAgIHZhciBuZWVkZWQgPSAwOworICAgIHRoaXMu
cHJvY2Vzc0NDaGFyID0gZnVuY3Rpb24gKGNvZGUpIHsKKyAgICAgIGNvZGUgPSBjb2RlICYgMHhm
ZjsKKyAgICAgIGlmIChuZWVkZWQpIHsKKyAgICAgICAgYnVmZmVyLnB1c2goY29kZSk7CisgICAg
ICAgIG5lZWRlZC0tOworICAgICAgfQorICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPT0gMCkgewor
ICAgICAgICBpZiAoY29kZSA8IDEyOCkgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7
CisgICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOworICAgICAgICBpZiAoY29kZSA+IDE5MSAmJiBj
b2RlIDwgMjI0KSB7CisgICAgICAgICAgbmVlZGVkID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICBuZWVkZWQgPSAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAnJzsKKyAgICAg
IH0KKyAgICAgIGlmIChuZWVkZWQgPiAwKSByZXR1cm4gJyc7CisgICAgICB2YXIgYzEgPSBidWZm
ZXJbMF07CisgICAgICB2YXIgYzIgPSBidWZmZXJbMV07CisgICAgICB2YXIgYzMgPSBidWZmZXJb
Ml07CisgICAgICB2YXIgcmV0OworICAgICAgaWYgKGMxID4gMTkxICYmIGMxIDwgMjI0KSB7Cisg
ICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjMSAmIDMxKSA8PCA2KSB8IChjMiAm
IDYzKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICByZXQgPSBTdHJpbmcuZnJvbUNoYXJDb2Rl
KCgoYzEgJiAxNSkgPDwgMTIpIHwgKChjMiAmIDYzKSA8PCA2KSB8IChjMyAmIDYzKSk7CisgICAg
ICB9CisgICAgICBidWZmZXIubGVuZ3RoID0gMDsKKyAgICAgIHJldHVybiByZXQ7CisgICAgfQor
ICAgIHRoaXMucHJvY2Vzc0pTU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nKSB7CisgICAgICBzdHJp
bmcgPSB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoc3RyaW5nKSk7CisgICAgICB2YXIgcmV0
ID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykgewor
ICAgICAgICByZXQucHVzaChzdHJpbmcuY2hhckNvZGVBdChpKSk7CisgICAgICB9CisgICAgICBy
ZXR1cm4gcmV0OworICAgIH0KKyAgfSwKKyAgc3RhY2tBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsg
dmFyIHJldCA9IFNUQUNLVE9QO1NUQUNLVE9QID0gKFNUQUNLVE9QICsgc2l6ZSl8MDtTVEFDS1RP
UCA9ICgoKChTVEFDS1RPUCkrNyk+PjMpPDwzKTsgcmV0dXJuIHJldDsgfSwKKyAgc3RhdGljQWxs
b2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBTVEFUSUNUT1A7U1RBVElDVE9QID0gKFNU
QVRJQ1RPUCArIHNpemUpfDA7U1RBVElDVE9QID0gKCgoKFNUQVRJQ1RPUCkrNyk+PjMpPDwzKTsg
cmV0dXJuIHJldDsgfSwKKyAgZHluYW1pY0FsbG9jOiBmdW5jdGlvbiAoc2l6ZSkgeyB2YXIgcmV0
ID0gRFlOQU1JQ1RPUDtEWU5BTUlDVE9QID0gKERZTkFNSUNUT1AgKyBzaXplKXwwO0RZTkFNSUNU
T1AgPSAoKCgoRFlOQU1JQ1RPUCkrNyk+PjMpPDwzKTsgaWYgKERZTkFNSUNUT1AgPj0gVE9UQUxf
TUVNT1JZKSBlbmxhcmdlTWVtb3J5KCk7OyByZXR1cm4gcmV0OyB9LAorICBhbGlnbk1lbW9yeTog
ZnVuY3Rpb24gKHNpemUscXVhbnR1bSkgeyB2YXIgcmV0ID0gc2l6ZSA9IE1hdGguY2VpbCgoc2l6
ZSkvKHF1YW50dW0gPyBxdWFudHVtIDogOCkpKihxdWFudHVtID8gcXVhbnR1bSA6IDgpOyByZXR1
cm4gcmV0OyB9LAorICBtYWtlQmlnSW50OiBmdW5jdGlvbiAobG93LGhpZ2gsdW5zaWduZWQpIHsg
dmFyIHJldCA9ICh1bnNpZ25lZCA/ICgoKygoKGxvdyk+Pj4oMCkpKSkrKCgrKCgoaGlnaCk+Pj4o
MCkpKSkqKCsoNDI5NDk2NzI5NikpKSkgOiAoKCsoKChsb3cpPj4+KDApKSkpKygoKygoKGhpZ2gp
fCgwKSkpKSooKyg0Mjk0OTY3Mjk2KSkpKSk7IHJldHVybiByZXQ7IH0sCisgIEdMT0JBTF9CQVNF
OiA4LAorICBRVUFOVFVNX1NJWkU6IDQsCisgIF9fZHVtbXlfXzogMAorfQorLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBSdW50aW1lIGVzc2VudGlhbHMKKy8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQordmFyIF9fVEhSRVdfXyA9
IDA7IC8vIFVzZWQgaW4gY2hlY2tpbmcgZm9yIHRocm93biBleGNlcHRpb25zLgordmFyIEFCT1JU
ID0gZmFsc2U7IC8vIHdoZXRoZXIgd2UgYXJlIHF1aXR0aW5nIHRoZSBhcHBsaWNhdGlvbi4gbm8g
Y29kZSBzaG91bGQgcnVuIGFmdGVyIHRoaXMuIHNldCBpbiBleGl0KCkgYW5kIGFib3J0KCkKK3Zh
ciBFWElUU1RBVFVTID0gMDsKK3ZhciB1bmRlZiA9IDA7CisvLyB0ZW1wSW50IGlzIHVzZWQgZm9y
IDMyLWJpdCBzaWduZWQgdmFsdWVzIG9yIHNtYWxsZXIuIHRlbXBCaWdJbnQgaXMgdXNlZAorLy8g
Zm9yIDMyLWJpdCB1bnNpZ25lZCB2YWx1ZXMgb3IgbW9yZSB0aGFuIDMyIGJpdHMuIFRPRE86IGF1
ZGl0IGFsbCB1c2VzIG9mIHRlbXBJbnQKK3ZhciB0ZW1wVmFsdWUsIHRlbXBJbnQsIHRlbXBCaWdJ
bnQsIHRlbXBJbnQyLCB0ZW1wQmlnSW50MiwgdGVtcFBhaXIsIHRlbXBCaWdJbnRJLCB0ZW1wQmln
SW50UiwgdGVtcEJpZ0ludFMsIHRlbXBCaWdJbnRQLCB0ZW1wQmlnSW50RDsKK3ZhciB0ZW1wSTY0
LCB0ZW1wSTY0YjsKK3ZhciB0ZW1wUmV0MCwgdGVtcFJldDEsIHRlbXBSZXQyLCB0ZW1wUmV0Mywg
dGVtcFJldDQsIHRlbXBSZXQ1LCB0ZW1wUmV0NiwgdGVtcFJldDcsIHRlbXBSZXQ4LCB0ZW1wUmV0
OTsKK2Z1bmN0aW9uIGFzc2VydChjb25kaXRpb24sIHRleHQpIHsKKyAgaWYgKCFjb25kaXRpb24p
IHsKKyAgICBhYm9ydCgnQXNzZXJ0aW9uIGZhaWxlZDogJyArIHRleHQpOworICB9Cit9Cit2YXIg
Z2xvYmFsU2NvcGUgPSB0aGlzOworLy8gQyBjYWxsaW5nIGludGVyZmFjZS4gQSBjb252ZW5pZW50
IHdheSB0byBjYWxsIEMgZnVuY3Rpb25zIChpbiBDIGZpbGVzLCBvcgorLy8gZGVmaW5lZCB3aXRo
IGV4dGVybiAiQyIpLgorLy8KKy8vIE5vdGU6IExMVk0gb3B0aW1pemF0aW9ucyBjYW4gaW5saW5l
IGFuZCByZW1vdmUgZnVuY3Rpb25zLCBhZnRlciB3aGljaCB5b3Ugd2lsbCBub3QgYmUKKy8vICAg
ICAgIGFibGUgdG8gY2FsbCB0aGVtLiBDbG9zdXJlIGNhbiBhbHNvIGRvIHNvLiBUbyBhdm9pZCB0
aGF0LCBhZGQgeW91ciBmdW5jdGlvbiB0bworLy8gICAgICAgdGhlIGV4cG9ydHMgdXNpbmcgc29t
ZXRoaW5nIGxpa2UKKy8vCisvLyAgICAgICAgIC1zIEVYUE9SVEVEX0ZVTkNUSU9OUz0nWyJfbWFp
biIsICJfbXlmdW5jIl0nCisvLworLy8gQHBhcmFtIGlkZW50ICAgICAgVGhlIG5hbWUgb2YgdGhl
IEMgZnVuY3Rpb24gKG5vdGUgdGhhdCBDKysgZnVuY3Rpb25zIHdpbGwgYmUgbmFtZS1tYW5nbGVk
IC0gdXNlIGV4dGVybiAiQyIpCisvLyBAcGFyYW0gcmV0dXJuVHlwZSBUaGUgcmV0dXJuIHR5cGUg
b2YgdGhlIGZ1bmN0aW9uLCBvbmUgb2YgdGhlIEpTIHR5cGVzICdudW1iZXInLCAnc3RyaW5nJyBv
ciAnYXJyYXknICh1c2UgJ251bWJlcicgZm9yIGFueSBDIHBvaW50ZXIsIGFuZAorLy8gICAgICAg
ICAgICAgICAgICAgJ2FycmF5JyBmb3IgSmF2YVNjcmlwdCBhcnJheXMgYW5kIHR5cGVkIGFycmF5
czsgbm90ZSB0aGF0IGFycmF5cyBhcmUgOC1iaXQpLgorLy8gQHBhcmFtIGFyZ1R5cGVzICAgQW4g
YXJyYXkgb2YgdGhlIHR5cGVzIG9mIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIChpZiB0aGVy
ZSBhcmUgbm8gYXJndW1lbnRzLCB0aGlzIGNhbiBiZSBvbW1pdHRlZCkuIFR5cGVzIGFyZSBhcyBp
biByZXR1cm5UeXBlLAorLy8gICAgICAgICAgICAgICAgICAgZXhjZXB0IHRoYXQgJ2FycmF5JyBp
cyBub3QgcG9zc2libGUgKHRoZXJlIGlzIG5vIHdheSBmb3IgdXMgdG8ga25vdyB0aGUgbGVuZ3Ro
IG9mIHRoZSBhcnJheSkKKy8vIEBwYXJhbSBhcmdzICAgICAgIEFuIGFycmF5IG9mIHRoZSBhcmd1
bWVudHMgdG8gdGhlIGZ1bmN0aW9uLCBhcyBuYXRpdmUgSlMgdmFsdWVzIChhcyBpbiByZXR1cm5U
eXBlKQorLy8gICAgICAgICAgICAgICAgICAgTm90ZSB0aGF0IHN0cmluZyBhcmd1bWVudHMgd2ls
bCBiZSBzdG9yZWQgb24gdGhlIHN0YWNrICh0aGUgSlMgc3RyaW5nIHdpbGwgYmVjb21lIGEgQyBz
dHJpbmcgb24gdGhlIHN0YWNrKS4KKy8vIEByZXR1cm4gICAgICAgICAgIFRoZSByZXR1cm4gdmFs
dWUsIGFzIGEgbmF0aXZlIEpTIHZhbHVlIChhcyBpbiByZXR1cm5UeXBlKQorZnVuY3Rpb24gY2Nh
bGwoaWRlbnQsIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBhcmdzKSB7CisgIHJldHVybiBjY2FsbEZ1
bmMoZ2V0Q0Z1bmMoaWRlbnQpLCByZXR1cm5UeXBlLCBhcmdUeXBlcywgYXJncyk7Cit9CitNb2R1
bGVbImNjYWxsIl0gPSBjY2FsbDsKKy8vIFJldHVybnMgdGhlIEMgZnVuY3Rpb24gd2l0aCBhIHNw
ZWNpZmllZCBpZGVudGlmaWVyIChmb3IgQysrLCB5b3UgbmVlZCB0byBkbyBtYW51YWwgbmFtZSBt
YW5nbGluZykKK2Z1bmN0aW9uIGdldENGdW5jKGlkZW50KSB7CisgIHRyeSB7CisgICAgdmFyIGZ1
bmMgPSBNb2R1bGVbJ18nICsgaWRlbnRdOyAvLyBjbG9zdXJlIGV4cG9ydGVkIGZ1bmN0aW9uCisg
ICAgaWYgKCFmdW5jKSBmdW5jID0gZXZhbCgnXycgKyBpZGVudCk7IC8vIGV4cGxpY2l0IGxvb2t1
cAorICB9IGNhdGNoKGUpIHsKKyAgfQorICBhc3NlcnQoZnVuYywgJ0Nhbm5vdCBjYWxsIHVua25v
d24gZnVuY3Rpb24gJyArIGlkZW50ICsgJyAocGVyaGFwcyBMTFZNIG9wdGltaXphdGlvbnMgb3Ig
Y2xvc3VyZSByZW1vdmVkIGl0PyknKTsKKyAgcmV0dXJuIGZ1bmM7Cit9CisvLyBJbnRlcm5hbCBm
dW5jdGlvbiB0aGF0IGRvZXMgYSBDIGNhbGwgdXNpbmcgYSBmdW5jdGlvbiwgbm90IGFuIGlkZW50
aWZpZXIKK2Z1bmN0aW9uIGNjYWxsRnVuYyhmdW5jLCByZXR1cm5UeXBlLCBhcmdUeXBlcywgYXJn
cykgeworICB2YXIgc3RhY2sgPSAwOworICBmdW5jdGlvbiB0b0ModmFsdWUsIHR5cGUpIHsKKyAg
ICBpZiAodHlwZSA9PSAnc3RyaW5nJykgeworICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZh
bHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IDApIHJldHVybiAwOyAvLyBudWxsIHN0cmlu
ZworICAgICAgaWYgKCFzdGFjaykgc3RhY2sgPSBSdW50aW1lLnN0YWNrU2F2ZSgpOworICAgICAg
dmFyIHJldCA9IFJ1bnRpbWUuc3RhY2tBbGxvYyh2YWx1ZS5sZW5ndGgrMSk7CisgICAgICB3cml0
ZVN0cmluZ1RvTWVtb3J5KHZhbHVlLCByZXQpOworICAgICAgcmV0dXJuIHJldDsKKyAgICB9IGVs
c2UgaWYgKHR5cGUgPT0gJ2FycmF5JykgeworICAgICAgaWYgKCFzdGFjaykgc3RhY2sgPSBSdW50
aW1lLnN0YWNrU2F2ZSgpOworICAgICAgdmFyIHJldCA9IFJ1bnRpbWUuc3RhY2tBbGxvYyh2YWx1
ZS5sZW5ndGgpOworICAgICAgd3JpdGVBcnJheVRvTWVtb3J5KHZhbHVlLCByZXQpOworICAgICAg
cmV0dXJuIHJldDsKKyAgICB9CisgICAgcmV0dXJuIHZhbHVlOworICB9CisgIGZ1bmN0aW9uIGZy
b21DKHZhbHVlLCB0eXBlKSB7CisgICAgaWYgKHR5cGUgPT0gJ3N0cmluZycpIHsKKyAgICAgIHJl
dHVybiBQb2ludGVyX3N0cmluZ2lmeSh2YWx1ZSk7CisgICAgfQorICAgIGFzc2VydCh0eXBlICE9
ICdhcnJheScpOworICAgIHJldHVybiB2YWx1ZTsKKyAgfQorICB2YXIgaSA9IDA7CisgIHZhciBj
QXJncyA9IGFyZ3MgPyBhcmdzLm1hcChmdW5jdGlvbihhcmcpIHsKKyAgICByZXR1cm4gdG9DKGFy
ZywgYXJnVHlwZXNbaSsrXSk7CisgIH0pIDogW107CisgIHZhciByZXQgPSBmcm9tQyhmdW5jLmFw
cGx5KG51bGwsIGNBcmdzKSwgcmV0dXJuVHlwZSk7CisgIGlmIChzdGFjaykgUnVudGltZS5zdGFj
a1Jlc3RvcmUoc3RhY2spOworICByZXR1cm4gcmV0OworfQorLy8gUmV0dXJucyBhIG5hdGl2ZSBK
UyB3cmFwcGVyIGZvciBhIEMgZnVuY3Rpb24uIFRoaXMgaXMgc2ltaWxhciB0byBjY2FsbCwgYnV0
CisvLyByZXR1cm5zIGEgZnVuY3Rpb24geW91IGNhbiBjYWxsIHJlcGVhdGVkbHkgaW4gYSBub3Jt
YWwgd2F5LiBGb3IgZXhhbXBsZToKKy8vCisvLyAgIHZhciBteV9mdW5jdGlvbiA9IGN3cmFwKCdt
eV9jX2Z1bmN0aW9uJywgJ251bWJlcicsIFsnbnVtYmVyJywgJ251bWJlciddKTsKKy8vICAgYWxl
cnQobXlfZnVuY3Rpb24oNSwgMjIpKTsKKy8vICAgYWxlcnQobXlfZnVuY3Rpb24oOTksIDEyKSk7
CisvLworZnVuY3Rpb24gY3dyYXAoaWRlbnQsIHJldHVyblR5cGUsIGFyZ1R5cGVzKSB7CisgIHZh
ciBmdW5jID0gZ2V0Q0Z1bmMoaWRlbnQpOworICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgcmV0
dXJuIGNjYWxsRnVuYyhmdW5jLCByZXR1cm5UeXBlLCBhcmdUeXBlcywgQXJyYXkucHJvdG90eXBl
LnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7CisgIH0KK30KK01vZHVsZVsiY3dyYXAiXSA9IGN3cmFw
OworLy8gU2V0cyBhIHZhbHVlIGluIG1lbW9yeSBpbiBhIGR5bmFtaWMgd2F5IGF0IHJ1bi10aW1l
LiBVc2VzIHRoZQorLy8gdHlwZSBkYXRhLiBUaGlzIGlzIHRoZSBzYW1lIGFzIG1ha2VTZXRWYWx1
ZSwgZXhjZXB0IHRoYXQKKy8vIG1ha2VTZXRWYWx1ZSBpcyBkb25lIGF0IGNvbXBpbGUtdGltZSBh
bmQgZ2VuZXJhdGVzIHRoZSBuZWVkZWQKKy8vIGNvZGUgdGhlbiwgd2hlcmVhcyB0aGlzIGZ1bmN0
aW9uIHBpY2tzIHRoZSByaWdodCBjb2RlIGF0CisvLyBydW4tdGltZS4KKy8vIE5vdGUgdGhhdCBz
ZXRWYWx1ZSBhbmQgZ2V0VmFsdWUgb25seSBkbyAqYWxpZ25lZCogd3JpdGVzIGFuZCByZWFkcyEK
Ky8vIE5vdGUgdGhhdCBjY2FsbCB1c2VzIEpTIHR5cGVzIGFzIGZvciBkZWZpbmluZyB0eXBlcywg
d2hpbGUgc2V0VmFsdWUgYW5kCisvLyBnZXRWYWx1ZSBuZWVkIExMVk0gdHlwZXMgKCdpOCcsICdp
MzInKSAtIHRoaXMgaXMgYSBsb3dlci1sZXZlbCBvcGVyYXRpb24KK2Z1bmN0aW9uIHNldFZhbHVl
KHB0ciwgdmFsdWUsIHR5cGUsIG5vU2FmZSkgeworICB0eXBlID0gdHlwZSB8fCAnaTgnOworICBp
ZiAodHlwZS5jaGFyQXQodHlwZS5sZW5ndGgtMSkgPT09ICcqJykgdHlwZSA9ICdpMzInOyAvLyBw
b2ludGVycyBhcmUgMzItYml0CisgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgIGNhc2UgJ2kxJzog
SEVBUDhbKHB0cildPXZhbHVlOyBicmVhazsKKyAgICAgIGNhc2UgJ2k4JzogSEVBUDhbKHB0cild
PXZhbHVlOyBicmVhazsKKyAgICAgIGNhc2UgJ2kxNic6IEhFQVAxNlsoKHB0cik+PjEpXT12YWx1
ZTsgYnJlYWs7CisgICAgICBjYXNlICdpMzInOiBIRUFQMzJbKChwdHIpPj4yKV09dmFsdWU7IGJy
ZWFrOworICAgICAgY2FzZSAnaTY0JzogKHRlbXBJNjQgPSBbdmFsdWU+Pj4wLCgoTWF0aC5taW4o
KCsoTWF0aC5mbG9vcigodmFsdWUpLygrKDQyOTQ5NjcyOTYpKSkpKSwgKCsoNDI5NDk2NzI5NSkp
KSl8MCk+Pj4wXSxIRUFQMzJbKChwdHIpPj4yKV09dGVtcEk2NFswXSxIRUFQMzJbKCgocHRyKSso
NCkpPj4yKV09dGVtcEk2NFsxXSk7IGJyZWFrOworICAgICAgY2FzZSAnZmxvYXQnOiBIRUFQRjMy
WygocHRyKT4+MildPXZhbHVlOyBicmVhazsKKyAgICAgIGNhc2UgJ2RvdWJsZSc6IEhFQVBGNjRb
KChwdHIpPj4zKV09dmFsdWU7IGJyZWFrOworICAgICAgZGVmYXVsdDogYWJvcnQoJ2ludmFsaWQg
dHlwZSBmb3Igc2V0VmFsdWU6ICcgKyB0eXBlKTsKKyAgICB9Cit9CitNb2R1bGVbJ3NldFZhbHVl
J10gPSBzZXRWYWx1ZTsKKy8vIFBhcmFsbGVsIHRvIHNldFZhbHVlLgorZnVuY3Rpb24gZ2V0VmFs
dWUocHRyLCB0eXBlLCBub1NhZmUpIHsKKyAgdHlwZSA9IHR5cGUgfHwgJ2k4JzsKKyAgaWYgKHR5
cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRl
cnMgYXJlIDMyLWJpdAorICAgIHN3aXRjaCh0eXBlKSB7CisgICAgICBjYXNlICdpMSc6IHJldHVy
biBIRUFQOFsocHRyKV07CisgICAgICBjYXNlICdpOCc6IHJldHVybiBIRUFQOFsocHRyKV07Cisg
ICAgICBjYXNlICdpMTYnOiByZXR1cm4gSEVBUDE2WygocHRyKT4+MSldOworICAgICAgY2FzZSAn
aTMyJzogcmV0dXJuIEhFQVAzMlsoKHB0cik+PjIpXTsKKyAgICAgIGNhc2UgJ2k2NCc6IHJldHVy
biBIRUFQMzJbKChwdHIpPj4yKV07CisgICAgICBjYXNlICdmbG9hdCc6IHJldHVybiBIRUFQRjMy
WygocHRyKT4+MildOworICAgICAgY2FzZSAnZG91YmxlJzogcmV0dXJuIEhFQVBGNjRbKChwdHIp
Pj4zKV07CisgICAgICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTog
JyArIHR5cGUpOworICAgIH0KKyAgcmV0dXJuIG51bGw7Cit9CitNb2R1bGVbJ2dldFZhbHVlJ10g
PSBnZXRWYWx1ZTsKK3ZhciBBTExPQ19OT1JNQUwgPSAwOyAvLyBUcmllcyB0byB1c2UgX21hbGxv
YygpCit2YXIgQUxMT0NfU1RBQ0sgPSAxOyAvLyBMaXZlcyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRo
ZSBjdXJyZW50IGZ1bmN0aW9uIGNhbGwKK3ZhciBBTExPQ19TVEFUSUMgPSAyOyAvLyBDYW5ub3Qg
YmUgZnJlZWQKK3ZhciBBTExPQ19EWU5BTUlDID0gMzsgLy8gQ2Fubm90IGJlIGZyZWVkIGV4Y2Vw
dCB0aHJvdWdoIHNicmsKK3ZhciBBTExPQ19OT05FID0gNDsgLy8gRG8gbm90IGFsbG9jYXRlCitN
b2R1bGVbJ0FMTE9DX05PUk1BTCddID0gQUxMT0NfTk9STUFMOworTW9kdWxlWydBTExPQ19TVEFD
SyddID0gQUxMT0NfU1RBQ0s7CitNb2R1bGVbJ0FMTE9DX1NUQVRJQyddID0gQUxMT0NfU1RBVElD
OworTW9kdWxlWydBTExPQ19EWU5BTUlDJ10gPSBBTExPQ19EWU5BTUlDOworTW9kdWxlWydBTExP
Q19OT05FJ10gPSBBTExPQ19OT05FOworLy8gYWxsb2NhdGUoKTogVGhpcyBpcyBmb3IgaW50ZXJu
YWwgdXNlLiBZb3UgY2FuIHVzZSBpdCB5b3Vyc2VsZiBhcyB3ZWxsLCBidXQgdGhlIGludGVyZmFj
ZQorLy8gICAgICAgICAgICAgaXMgYSBsaXR0bGUgdHJpY2t5IChzZWUgZG9jcyByaWdodCBiZWxv
dykuIFRoZSByZWFzb24gaXMgdGhhdCBpdCBpcyBvcHRpbWl6ZWQKKy8vICAgICAgICAgICAgIGZv
ciBtdWx0aXBsZSBzeW50YXhlcyB0byBzYXZlIHNwYWNlIGluIGdlbmVyYXRlZCBjb2RlLiBTbyB5
b3Ugc2hvdWxkCisvLyAgICAgICAgICAgICBub3JtYWxseSBub3QgdXNlIGFsbG9jYXRlKCksIGFu
ZCBpbnN0ZWFkIGFsbG9jYXRlIG1lbW9yeSB1c2luZyBfbWFsbG9jKCksCisvLyAgICAgICAgICAg
ICBpbml0aWFsaXplIGl0IHdpdGggc2V0VmFsdWUoKSwgYW5kIHNvIGZvcnRoLgorLy8gQHNsYWI6
IEFuIGFycmF5IG9mIGRhdGEsIG9yIGEgbnVtYmVyLiBJZiBhIG51bWJlciwgdGhlbiB0aGUgc2l6
ZSBvZiB0aGUgYmxvY2sgdG8gYWxsb2NhdGUsCisvLyAgICAgICAgaW4gKmJ5dGVzKiAobm90ZSB0
aGF0IHRoaXMgaXMgc29tZXRpbWVzIGNvbmZ1c2luZzogdGhlIG5leHQgcGFyYW1ldGVyIGRvZXMg
bm90CisvLyAgICAgICAgYWZmZWN0IHRoaXMhKQorLy8gQHR5cGVzOiBFaXRoZXIgYW4gYXJyYXkg
b2YgdHlwZXMsIG9uZSBmb3IgZWFjaCBieXRlIChvciAwIGlmIG5vIHR5cGUgYXQgdGhhdCBwb3Np
dGlvbiksCisvLyAgICAgICAgIG9yIGEgc2luZ2xlIHR5cGUgd2hpY2ggaXMgdXNlZCBmb3IgdGhl
IGVudGlyZSBibG9jay4gVGhpcyBvbmx5IG1hdHRlcnMgaWYgdGhlcmUKKy8vICAgICAgICAgaXMg
aW5pdGlhbCBkYXRhIC0gaWYgQHNsYWIgaXMgYSBudW1iZXIsIHRoZW4gdGhpcyBkb2VzIG5vdCBt
YXR0ZXIgYXQgYWxsIGFuZCBpcworLy8gICAgICAgICBpZ25vcmVkLgorLy8gQGFsbG9jYXRvcjog
SG93IHRvIGFsbG9jYXRlIG1lbW9yeSwgc2VlIEFMTE9DXyoKK2Z1bmN0aW9uIGFsbG9jYXRlKHNs
YWIsIHR5cGVzLCBhbGxvY2F0b3IsIHB0cikgeworICB2YXIgemVyb2luaXQsIHNpemU7CisgIGlm
ICh0eXBlb2Ygc2xhYiA9PT0gJ251bWJlcicpIHsKKyAgICB6ZXJvaW5pdCA9IHRydWU7CisgICAg
c2l6ZSA9IHNsYWI7CisgIH0gZWxzZSB7CisgICAgemVyb2luaXQgPSBmYWxzZTsKKyAgICBzaXpl
ID0gc2xhYi5sZW5ndGg7CisgIH0KKyAgdmFyIHNpbmdsZVR5cGUgPSB0eXBlb2YgdHlwZXMgPT09
ICdzdHJpbmcnID8gdHlwZXMgOiBudWxsOworICB2YXIgcmV0OworICBpZiAoYWxsb2NhdG9yID09
IEFMTE9DX05PTkUpIHsKKyAgICByZXQgPSBwdHI7CisgIH0gZWxzZSB7CisgICAgcmV0ID0gW19t
YWxsb2MsIFJ1bnRpbWUuc3RhY2tBbGxvYywgUnVudGltZS5zdGF0aWNBbGxvYywgUnVudGltZS5k
eW5hbWljQWxsb2NdW2FsbG9jYXRvciA9PT0gdW5kZWZpbmVkID8gQUxMT0NfU1RBVElDIDogYWxs
b2NhdG9yXShNYXRoLm1heChzaXplLCBzaW5nbGVUeXBlID8gMSA6IHR5cGVzLmxlbmd0aCkpOwor
ICB9CisgIGlmICh6ZXJvaW5pdCkgeworICAgIHZhciBwdHIgPSByZXQsIHN0b3A7CisgICAgYXNz
ZXJ0KChyZXQgJiAzKSA9PSAwKTsKKyAgICBzdG9wID0gcmV0ICsgKHNpemUgJiB+Myk7CisgICAg
Zm9yICg7IHB0ciA8IHN0b3A7IHB0ciArPSA0KSB7CisgICAgICBIRUFQMzJbKChwdHIpPj4yKV09
MDsKKyAgICB9CisgICAgc3RvcCA9IHJldCArIHNpemU7CisgICAgd2hpbGUgKHB0ciA8IHN0b3Ap
IHsKKyAgICAgIEhFQVA4WygocHRyKyspfDApXT0wOworICAgIH0KKyAgICByZXR1cm4gcmV0Owor
ICB9CisgIGlmIChzaW5nbGVUeXBlID09PSAnaTgnKSB7CisgICAgaWYgKHNsYWIuc3ViYXJyYXkg
fHwgc2xhYi5zbGljZSkgeworICAgICAgSEVBUFU4LnNldChzbGFiLCByZXQpOworICAgIH0gZWxz
ZSB7CisgICAgICBIRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHNsYWIpLCByZXQpOworICAgIH0K
KyAgICByZXR1cm4gcmV0OworICB9CisgIHZhciBpID0gMCwgdHlwZSwgdHlwZVNpemUsIHByZXZp
b3VzVHlwZTsKKyAgd2hpbGUgKGkgPCBzaXplKSB7CisgICAgdmFyIGN1cnIgPSBzbGFiW2ldOwor
ICAgIGlmICh0eXBlb2YgY3VyciA9PT0gJ2Z1bmN0aW9uJykgeworICAgICAgY3VyciA9IFJ1bnRp
bWUuZ2V0RnVuY3Rpb25JbmRleChjdXJyKTsKKyAgICB9CisgICAgdHlwZSA9IHNpbmdsZVR5cGUg
fHwgdHlwZXNbaV07CisgICAgaWYgKHR5cGUgPT09IDApIHsKKyAgICAgIGkrKzsKKyAgICAgIGNv
bnRpbnVlOworICAgIH0KKyAgICBpZiAodHlwZSA9PSAnaTY0JykgdHlwZSA9ICdpMzInOyAvLyBz
cGVjaWFsIGNhc2U6IHdlIGhhdmUgb25lIGkzMiBoZXJlLCBhbmQgb25lIGkzMiBsYXRlcgorICAg
IHNldFZhbHVlKHJldCtpLCBjdXJyLCB0eXBlKTsKKyAgICAvLyBubyBuZWVkIHRvIGxvb2sgdXAg
c2l6ZSB1bmxlc3MgdHlwZSBjaGFuZ2VzLCBzbyBjYWNoZSBpdAorICAgIGlmIChwcmV2aW91c1R5
cGUgIT09IHR5cGUpIHsKKyAgICAgIHR5cGVTaXplID0gUnVudGltZS5nZXROYXRpdmVUeXBlU2l6
ZSh0eXBlKTsKKyAgICAgIHByZXZpb3VzVHlwZSA9IHR5cGU7CisgICAgfQorICAgIGkgKz0gdHlw
ZVNpemU7CisgIH0KKyAgcmV0dXJuIHJldDsKK30KK01vZHVsZVsnYWxsb2NhdGUnXSA9IGFsbG9j
YXRlOworZnVuY3Rpb24gUG9pbnRlcl9zdHJpbmdpZnkocHRyLCAvKiBvcHRpb25hbCAqLyBsZW5n
dGgpIHsKKyAgLy8gRmluZCB0aGUgbGVuZ3RoLCBhbmQgY2hlY2sgZm9yIFVURiB3aGlsZSBkb2lu
ZyBzbworICB2YXIgaGFzVXRmID0gZmFsc2U7CisgIHZhciB0OworICB2YXIgaSA9IDA7CisgIHdo
aWxlICgxKSB7CisgICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCldOworICAgIGlmICh0ID49
IDEyOCkgaGFzVXRmID0gdHJ1ZTsKKyAgICBlbHNlIGlmICh0ID09IDAgJiYgIWxlbmd0aCkgYnJl
YWs7CisgICAgaSsrOworICAgIGlmIChsZW5ndGggJiYgaSA9PSBsZW5ndGgpIGJyZWFrOworICB9
CisgIGlmICghbGVuZ3RoKSBsZW5ndGggPSBpOworICB2YXIgcmV0ID0gJyc7CisgIGlmICghaGFz
VXRmKSB7CisgICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7IC8vIHNwbGl0IHVwIGludG8gY2h1bmtz
LCBiZWNhdXNlIC5hcHBseSBvbiBhIGh1Z2Ugc3RyaW5nIGNhbiBvdmVyZmxvdyB0aGUgc3RhY2sK
KyAgICB2YXIgY3VycjsKKyAgICB3aGlsZSAobGVuZ3RoID4gMCkgeworICAgICAgY3VyciA9IFN0
cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3ViYXJyYXkocHRyLCBwdHIg
KyBNYXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKKyAgICAgIHJldCA9IHJldCA/IHJldCAr
IGN1cnIgOiBjdXJyOworICAgICAgcHRyICs9IE1BWF9DSFVOSzsKKyAgICAgIGxlbmd0aCAtPSBN
QVhfQ0hVTks7CisgICAgfQorICAgIHJldHVybiByZXQ7CisgIH0KKyAgdmFyIHV0ZjggPSBuZXcg
UnVudGltZS5VVEY4UHJvY2Vzc29yKCk7CisgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykg
eworICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKKyAgICByZXQgKz0gdXRmOC5wcm9j
ZXNzQ0NoYXIodCk7CisgIH0KKyAgcmV0dXJuIHJldDsKK30KK01vZHVsZVsnUG9pbnRlcl9zdHJp
bmdpZnknXSA9IFBvaW50ZXJfc3RyaW5naWZ5OworLy8gTWVtb3J5IG1hbmFnZW1lbnQKK3ZhciBQ
QUdFX1NJWkUgPSA0MDk2OworZnVuY3Rpb24gYWxpZ25NZW1vcnlQYWdlKHgpIHsKKyAgcmV0dXJu
ICgoeCs0MDk1KT4+MTIpPDwxMjsKK30KK3ZhciBIRUFQOwordmFyIEhFQVA4LCBIRUFQVTgsIEhF
QVAxNiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBIRUFQRjY0OwordmFyIFNU
QVRJQ19CQVNFID0gMCwgU1RBVElDVE9QID0gMCwgc3RhdGljU2VhbGVkID0gZmFsc2U7IC8vIHN0
YXRpYyBhcmVhCit2YXIgU1RBQ0tfQkFTRSA9IDAsIFNUQUNLVE9QID0gMCwgU1RBQ0tfTUFYID0g
MDsgLy8gc3RhY2sgYXJlYQordmFyIERZTkFNSUNfQkFTRSA9IDAsIERZTkFNSUNUT1AgPSAwOyAv
LyBkeW5hbWljIGFyZWEgaGFuZGxlZCBieSBzYnJrCitmdW5jdGlvbiBlbmxhcmdlTWVtb3J5KCkg
eworICBhYm9ydCgnQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cyBpbiBhc20uanMuIEVpdGhl
ciAoMSkgY29tcGlsZSB3aXRoIC1zIFRPVEFMX01FTU9SWT1YIHdpdGggWCBoaWdoZXIgdGhhbiB0
aGUgY3VycmVudCB2YWx1ZSwgb3IgKDIpIHNldCBNb2R1bGUuVE9UQUxfTUVNT1JZIGJlZm9yZSB0
aGUgcHJvZ3JhbSBydW5zLicpOworfQordmFyIFRPVEFMX1NUQUNLID0gTW9kdWxlWydUT1RBTF9T
VEFDSyddIHx8IDUyNDI4ODA7Cit2YXIgVE9UQUxfTUVNT1JZID0gTW9kdWxlWydUT1RBTF9NRU1P
UlknXSB8fCAxMzQyMTc3Mjg7Cit2YXIgRkFTVF9NRU1PUlkgPSBNb2R1bGVbJ0ZBU1RfTUVNT1JZ
J10gfHwgMjA5NzE1MjsKKy8vIEluaXRpYWxpemUgdGhlIHJ1bnRpbWUncyBtZW1vcnkKKy8vIGNo
ZWNrIGZvciBmdWxsIGVuZ2luZSBzdXBwb3J0ICh1c2Ugc3RyaW5nICdzdWJhcnJheScgdG8gYXZv
aWQgY2xvc3VyZSBjb21waWxlciBjb25mdXNpb24pCithc3NlcnQoISFJbnQzMkFycmF5ICYmICEh
RmxvYXQ2NEFycmF5ICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzdWJhcnJheSddKSAmJiAhIShu
ZXcgSW50MzJBcnJheSgxKVsnc2V0J10pLAorICAgICAgICdDYW5ub3QgZmFsbGJhY2sgdG8gbm9u
LXR5cGVkIGFycmF5IGNhc2U6IENvZGUgaXMgdG9vIHNwZWNpYWxpemVkJyk7Cit2YXIgYnVmZmVy
ID0gbmV3IEFycmF5QnVmZmVyKFRPVEFMX01FTU9SWSk7CitIRUFQOCA9IG5ldyBJbnQ4QXJyYXko
YnVmZmVyKTsKK0hFQVAxNiA9IG5ldyBJbnQxNkFycmF5KGJ1ZmZlcik7CitIRUFQMzIgPSBuZXcg
SW50MzJBcnJheShidWZmZXIpOworSEVBUFU4ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKK0hF
QVBVMTYgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsKK0hFQVBVMzIgPSBuZXcgVWludDMyQXJy
YXkoYnVmZmVyKTsKK0hFQVBGMzIgPSBuZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7CitIRUFQRjY0
ID0gbmV3IEZsb2F0NjRBcnJheShidWZmZXIpOworLy8gRW5kaWFubmVzcyBjaGVjayAobm90ZTog
YXNzdW1lcyBjb21waWxlciBhcmNoIHdhcyBsaXR0bGUtZW5kaWFuKQorSEVBUDMyWzBdID0gMjU1
OworYXNzZXJ0KEhFQVBVOFswXSA9PT0gMjU1ICYmIEhFQVBVOFszXSA9PT0gMCwgJ1R5cGVkIGFy
cmF5cyAyIG11c3QgYmUgcnVuIG9uIGEgbGl0dGxlLWVuZGlhbiBzeXN0ZW0nKTsKK01vZHVsZVsn
SEVBUCddID0gSEVBUDsKK01vZHVsZVsnSEVBUDgnXSA9IEhFQVA4OworTW9kdWxlWydIRUFQMTYn
XSA9IEhFQVAxNjsKK01vZHVsZVsnSEVBUDMyJ10gPSBIRUFQMzI7CitNb2R1bGVbJ0hFQVBVOCdd
ID0gSEVBUFU4OworTW9kdWxlWydIRUFQVTE2J10gPSBIRUFQVTE2OworTW9kdWxlWydIRUFQVTMy
J10gPSBIRUFQVTMyOworTW9kdWxlWydIRUFQRjMyJ10gPSBIRUFQRjMyOworTW9kdWxlWydIRUFQ
RjY0J10gPSBIRUFQRjY0OworZnVuY3Rpb24gY2FsbFJ1bnRpbWVDYWxsYmFja3MoY2FsbGJhY2tz
KSB7CisgIHdoaWxlKGNhbGxiYWNrcy5sZW5ndGggPiAwKSB7CisgICAgdmFyIGNhbGxiYWNrID0g
Y2FsbGJhY2tzLnNoaWZ0KCk7CisgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24n
KSB7CisgICAgICBjYWxsYmFjaygpOworICAgICAgY29udGludWU7CisgICAgfQorICAgIHZhciBm
dW5jID0gY2FsbGJhY2suZnVuYzsKKyAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdudW1iZXInKSB7
CisgICAgICBpZiAoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgUnVudGlt
ZS5keW5DYWxsKCd2JywgZnVuYyk7CisgICAgICB9IGVsc2UgeworICAgICAgICBSdW50aW1lLmR5
bkNhbGwoJ3ZpJywgZnVuYywgW2NhbGxiYWNrLmFyZ10pOworICAgICAgfQorICAgIH0gZWxzZSB7
CisgICAgICBmdW5jKGNhbGxiYWNrLmFyZyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNhbGxiYWNr
LmFyZyk7CisgICAgfQorICB9Cit9Cit2YXIgX19BVFBSRVJVTl9fICA9IFtdOyAvLyBmdW5jdGlv
bnMgY2FsbGVkIGJlZm9yZSB0aGUgcnVudGltZSBpcyBpbml0aWFsaXplZAordmFyIF9fQVRJTklU
X18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBkdXJpbmcgc3RhcnR1cAordmFyIF9fQVRN
QUlOX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCB3aGVuIG1haW4oKSBpcyB0byBiZSBy
dW4KK3ZhciBfX0FURVhJVF9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgZHVyaW5nIHNo
dXRkb3duCit2YXIgX19BVFBPU1RSVU5fXyA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGFmdGVy
IHRoZSBydW50aW1lIGhhcyBleGl0ZWQKK3ZhciBydW50aW1lSW5pdGlhbGl6ZWQgPSBmYWxzZTsK
K2Z1bmN0aW9uIHByZVJ1bigpIHsKKyAgLy8gY29tcGF0aWJpbGl0eSAtIG1lcmdlIGluIGFueXRo
aW5nIGZyb20gTW9kdWxlWydwcmVSdW4nXSBhdCB0aGlzIHRpbWUKKyAgaWYgKE1vZHVsZVsncHJl
UnVuJ10pIHsKKyAgICBpZiAodHlwZW9mIE1vZHVsZVsncHJlUnVuJ10gPT0gJ2Z1bmN0aW9uJykg
TW9kdWxlWydwcmVSdW4nXSA9IFtNb2R1bGVbJ3ByZVJ1biddXTsKKyAgICB3aGlsZSAoTW9kdWxl
WydwcmVSdW4nXS5sZW5ndGgpIHsKKyAgICAgIGFkZE9uUHJlUnVuKE1vZHVsZVsncHJlUnVuJ10u
c2hpZnQoKSk7CisgICAgfQorICB9CisgIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5f
Xyk7Cit9CitmdW5jdGlvbiBlbnN1cmVJbml0UnVudGltZSgpIHsKKyAgaWYgKHJ1bnRpbWVJbml0
aWFsaXplZCkgcmV0dXJuOworICBydW50aW1lSW5pdGlhbGl6ZWQgPSB0cnVlOworICBjYWxsUnVu
dGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKTsKK30KK2Z1bmN0aW9uIHByZU1haW4oKSB7CisgIGNh
bGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRNQUlOX18pOworfQorZnVuY3Rpb24gZXhpdFJ1bnRpbWUo
KSB7CisgIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRFWElUX18pOworfQorZnVuY3Rpb24gcG9z
dFJ1bigpIHsKKyAgLy8gY29tcGF0aWJpbGl0eSAtIG1lcmdlIGluIGFueXRoaW5nIGZyb20gTW9k
dWxlWydwb3N0UnVuJ10gYXQgdGhpcyB0aW1lCisgIGlmIChNb2R1bGVbJ3Bvc3RSdW4nXSkgewor
ICAgIGlmICh0eXBlb2YgTW9kdWxlWydwb3N0UnVuJ10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydw
b3N0UnVuJ10gPSBbTW9kdWxlWydwb3N0UnVuJ11dOworICAgIHdoaWxlIChNb2R1bGVbJ3Bvc3RS
dW4nXS5sZW5ndGgpIHsKKyAgICAgIGFkZE9uUG9zdFJ1bihNb2R1bGVbJ3Bvc3RSdW4nXS5zaGlm
dCgpKTsKKyAgICB9CisgIH0KKyAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBPU1RSVU5fXyk7
Cit9CitmdW5jdGlvbiBhZGRPblByZVJ1bihjYikgeworICBfX0FUUFJFUlVOX18udW5zaGlmdChj
Yik7Cit9CitNb2R1bGVbJ2FkZE9uUHJlUnVuJ10gPSBNb2R1bGUuYWRkT25QcmVSdW4gPSBhZGRP
blByZVJ1bjsKK2Z1bmN0aW9uIGFkZE9uSW5pdChjYikgeworICBfX0FUSU5JVF9fLnVuc2hpZnQo
Y2IpOworfQorTW9kdWxlWydhZGRPbkluaXQnXSA9IE1vZHVsZS5hZGRPbkluaXQgPSBhZGRPbklu
aXQ7CitmdW5jdGlvbiBhZGRPblByZU1haW4oY2IpIHsKKyAgX19BVE1BSU5fXy51bnNoaWZ0KGNi
KTsKK30KK01vZHVsZVsnYWRkT25QcmVNYWluJ10gPSBNb2R1bGUuYWRkT25QcmVNYWluID0gYWRk
T25QcmVNYWluOworZnVuY3Rpb24gYWRkT25FeGl0KGNiKSB7CisgIF9fQVRFWElUX18udW5zaGlm
dChjYik7Cit9CitNb2R1bGVbJ2FkZE9uRXhpdCddID0gTW9kdWxlLmFkZE9uRXhpdCA9IGFkZE9u
RXhpdDsKK2Z1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYikgeworICBfX0FUUE9TVFJVTl9fLnVuc2hp
ZnQoY2IpOworfQorTW9kdWxlWydhZGRPblBvc3RSdW4nXSA9IE1vZHVsZS5hZGRPblBvc3RSdW4g
PSBhZGRPblBvc3RSdW47CisvLyBUb29scworLy8gVGhpcyBwcm9jZXNzZXMgYSBKUyBzdHJpbmcg
aW50byBhIEMtbGluZSBhcnJheSBvZiBudW1iZXJzLCAwLXRlcm1pbmF0ZWQuCisvLyBGb3IgTExW
TS1vcmlnaW5hdGluZyBzdHJpbmdzLCBzZWUgcGFyc2VyLmpzOnBhcnNlTExWTVN0cmluZyBmdW5j
dGlvbgorZnVuY3Rpb24gaW50QXJyYXlGcm9tU3RyaW5nKHN0cmluZ3ksIGRvbnRBZGROdWxsLCBs
ZW5ndGggLyogb3B0aW9uYWwgKi8pIHsKKyAgdmFyIHJldCA9IChuZXcgUnVudGltZS5VVEY4UHJv
Y2Vzc29yKCkpLnByb2Nlc3NKU1N0cmluZyhzdHJpbmd5KTsKKyAgaWYgKGxlbmd0aCkgeworICAg
IHJldC5sZW5ndGggPSBsZW5ndGg7CisgIH0KKyAgaWYgKCFkb250QWRkTnVsbCkgeworICAgIHJl
dC5wdXNoKDApOworICB9CisgIHJldHVybiByZXQ7Cit9CitNb2R1bGVbJ2ludEFycmF5RnJvbVN0
cmluZyddID0gaW50QXJyYXlGcm9tU3RyaW5nOworZnVuY3Rpb24gaW50QXJyYXlUb1N0cmluZyhh
cnJheSkgeworICB2YXIgcmV0ID0gW107CisgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVu
Z3RoOyBpKyspIHsKKyAgICB2YXIgY2hyID0gYXJyYXlbaV07CisgICAgaWYgKGNociA+IDB4RkYp
IHsKKyAgICAgIGNociAmPSAweEZGOworICAgIH0KKyAgICByZXQucHVzaChTdHJpbmcuZnJvbUNo
YXJDb2RlKGNocikpOworICB9CisgIHJldHVybiByZXQuam9pbignJyk7Cit9CitNb2R1bGVbJ2lu
dEFycmF5VG9TdHJpbmcnXSA9IGludEFycmF5VG9TdHJpbmc7CisvLyBXcml0ZSBhIEphdmFzY3Jp
cHQgYXJyYXkgdG8gc29tZXdoZXJlIGluIHRoZSBoZWFwCitmdW5jdGlvbiB3cml0ZVN0cmluZ1Rv
TWVtb3J5KHN0cmluZywgYnVmZmVyLCBkb250QWRkTnVsbCkgeworICB2YXIgYXJyYXkgPSBpbnRB
cnJheUZyb21TdHJpbmcoc3RyaW5nLCBkb250QWRkTnVsbCk7CisgIHZhciBpID0gMDsKKyAgd2hp
bGUgKGkgPCBhcnJheS5sZW5ndGgpIHsKKyAgICB2YXIgY2hyID0gYXJyYXlbaV07CisgICAgSEVB
UDhbKCgoYnVmZmVyKSsoaSkpfDApXT1jaHIKKyAgICBpID0gaSArIDE7CisgIH0KK30KK01vZHVs
ZVsnd3JpdGVTdHJpbmdUb01lbW9yeSddID0gd3JpdGVTdHJpbmdUb01lbW9yeTsKK2Z1bmN0aW9u
IHdyaXRlQXJyYXlUb01lbW9yeShhcnJheSwgYnVmZmVyKSB7CisgIGZvciAodmFyIGkgPSAwOyBp
IDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICBIRUFQOFsoKChidWZmZXIpKyhpKSl8MCldPWFy
cmF5W2ldOworICB9Cit9CitNb2R1bGVbJ3dyaXRlQXJyYXlUb01lbW9yeSddID0gd3JpdGVBcnJh
eVRvTWVtb3J5OworZnVuY3Rpb24gdW5TaWduKHZhbHVlLCBiaXRzLCBpZ25vcmUsIHNpZykgewor
ICBpZiAodmFsdWUgPj0gMCkgeworICAgIHJldHVybiB2YWx1ZTsKKyAgfQorICByZXR1cm4gYml0
cyA8PSAzMiA/IDIqTWF0aC5hYnMoMSA8PCAoYml0cy0xKSkgKyB2YWx1ZSAvLyBOZWVkIHNvbWUg
dHJpY2tlcnksIHNpbmNlIGlmIGJpdHMgPT0gMzIsIHdlIGFyZSByaWdodCBhdCB0aGUgbGltaXQg
b2YgdGhlIGJpdHMgSlMgdXNlcyBpbiBiaXRzaGlmdHMKKyAgICAgICAgICAgICAgICAgICAgOiBN
YXRoLnBvdygyLCBiaXRzKSAgICAgICAgICsgdmFsdWU7Cit9CitmdW5jdGlvbiByZVNpZ24odmFs
dWUsIGJpdHMsIGlnbm9yZSwgc2lnKSB7CisgIGlmICh2YWx1ZSA8PSAwKSB7CisgICAgcmV0dXJu
IHZhbHVlOworICB9CisgIHZhciBoYWxmID0gYml0cyA8PSAzMiA/IE1hdGguYWJzKDEgPDwgKGJp
dHMtMSkpIC8vIGFicyBpcyBuZWVkZWQgaWYgYml0cyA9PSAzMgorICAgICAgICAgICAgICAgICAg
ICAgICAgOiBNYXRoLnBvdygyLCBiaXRzLTEpOworICBpZiAodmFsdWUgPj0gaGFsZiAmJiAoYml0
cyA8PSAzMiB8fCB2YWx1ZSA+IGhhbGYpKSB7IC8vIGZvciBodWdlIHZhbHVlcywgd2UgY2FuIGhp
dCB0aGUgcHJlY2lzaW9uIGxpbWl0IGFuZCBhbHdheXMgZ2V0IHRydWUgaGVyZS4gc28gZG9uJ3Qg
ZG8gdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIGJ1dCwgaW4gZ2VuZXJhbCB0aGVyZSBpcyBubyBwZXJmZWN0IHNvbHV0aW9uIGhl
cmUuIFdpdGggNjQtYml0IGludHMsIHdlIGdldCByb3VuZGluZyBhbmQgZXJyb3JzCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzog
SW4gaTY0IG1vZGUgMSwgcmVzaWduIHRoZSB0d28gcGFydHMgc2VwYXJhdGVseSBhbmQgc2FmZWx5
CisgICAgdmFsdWUgPSAtMipoYWxmICsgdmFsdWU7IC8vIENhbm5vdCBiaXRzaGlmdCBoYWxmLCBh
cyBpdCBtYXkgYmUgYXQgdGhlIGxpbWl0IG9mIHRoZSBiaXRzIEpTIHVzZXMgaW4gYml0c2hpZnRz
CisgIH0KKyAgcmV0dXJuIHZhbHVlOworfQoraWYgKCFNYXRoWydpbXVsJ10pIE1hdGhbJ2ltdWwn
XSA9IGZ1bmN0aW9uKGEsIGIpIHsKKyAgdmFyIGFoICA9IGEgPj4+IDE2OworICB2YXIgYWwgPSBh
ICYgMHhmZmZmOworICB2YXIgYmggID0gYiA+Pj4gMTY7CisgIHZhciBibCA9IGIgJiAweGZmZmY7
CisgIHJldHVybiAoYWwqYmwgKyAoKGFoKmJsICsgYWwqYmgpIDw8IDE2KSl8MDsKK307CitNYXRo
LmltdWwgPSBNYXRoWydpbXVsJ107CisvLyBBIGNvdW50ZXIgb2YgZGVwZW5kZW5jaWVzIGZvciBj
YWxsaW5nIHJ1bigpLiBJZiB3ZSBuZWVkIHRvCisvLyBkbyBhc3luY2hyb25vdXMgd29yayBiZWZv
cmUgcnVubmluZywgaW5jcmVtZW50IHRoaXMgYW5kCisvLyBkZWNyZW1lbnQgaXQuIEluY3JlbWVu
dGluZyBtdXN0IGhhcHBlbiBpbiBhIHBsYWNlIGxpa2UKKy8vIFBSRV9SVU5fQURESVRJT05TICh1
c2VkIGJ5IGVtY2MgdG8gYWRkIGZpbGUgcHJlbG9hZGluZykuCisvLyBOb3RlIHRoYXQgeW91IGNh
biBhZGQgZGVwZW5kZW5jaWVzIGluIHByZVJ1biwgZXZlbiB0aG91Z2gKKy8vIGl0IGhhcHBlbnMg
cmlnaHQgYmVmb3JlIHJ1biAtIHJ1biB3aWxsIGJlIHBvc3Rwb25lZCB1bnRpbAorLy8gdGhlIGRl
cGVuZGVuY2llcyBhcmUgbWV0LgordmFyIHJ1bkRlcGVuZGVuY2llcyA9IDA7Cit2YXIgcnVuRGVw
ZW5kZW5jeVRyYWNraW5nID0ge307Cit2YXIgY2FsbGVkSW5pdCA9IGZhbHNlLCBjYWxsZWRSdW4g
PSBmYWxzZTsKK3ZhciBydW5EZXBlbmRlbmN5V2F0Y2hlciA9IG51bGw7CitmdW5jdGlvbiBhZGRS
dW5EZXBlbmRlbmN5KGlkKSB7CisgIHJ1bkRlcGVuZGVuY2llcysrOworICBpZiAoTW9kdWxlWydt
b25pdG9yUnVuRGVwZW5kZW5jaWVzJ10pIHsKKyAgICBNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRl
bmNpZXMnXShydW5EZXBlbmRlbmNpZXMpOworICB9CisgIGlmIChpZCkgeworICAgIGFzc2VydCgh
cnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7CisgICAgcnVuRGVwZW5kZW5jeVRyYWNraW5nW2lk
XSA9IDE7CisgIH0gZWxzZSB7CisgICAgTW9kdWxlLnByaW50RXJyKCd3YXJuaW5nOiBydW4gZGVw
ZW5kZW5jeSBhZGRlZCB3aXRob3V0IElEJyk7CisgIH0KK30KK01vZHVsZVsnYWRkUnVuRGVwZW5k
ZW5jeSddID0gYWRkUnVuRGVwZW5kZW5jeTsKK2Z1bmN0aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3ko
aWQpIHsKKyAgcnVuRGVwZW5kZW5jaWVzLS07CisgIGlmIChNb2R1bGVbJ21vbml0b3JSdW5EZXBl
bmRlbmNpZXMnXSkgeworICAgIE1vZHVsZVsnbW9uaXRvclJ1bkRlcGVuZGVuY2llcyddKHJ1bkRl
cGVuZGVuY2llcyk7CisgIH0KKyAgaWYgKGlkKSB7CisgICAgYXNzZXJ0KHJ1bkRlcGVuZGVuY3lU
cmFja2luZ1tpZF0pOworICAgIGRlbGV0ZSBydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdOworICB9
IGVsc2UgeworICAgIE1vZHVsZS5wcmludEVycignd2FybmluZzogcnVuIGRlcGVuZGVuY3kgcmVt
b3ZlZCB3aXRob3V0IElEJyk7CisgIH0KKyAgaWYgKHJ1bkRlcGVuZGVuY2llcyA9PSAwKSB7Cisg
ICAgaWYgKHJ1bkRlcGVuZGVuY3lXYXRjaGVyICE9PSBudWxsKSB7CisgICAgICBjbGVhckludGVy
dmFsKHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTsKKyAgICAgIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0g
bnVsbDsKKyAgICB9IAorICAgIC8vIElmIHJ1biBoYXMgbmV2ZXIgYmVlbiBjYWxsZWQsIGFuZCB3
ZSBzaG91bGQgY2FsbCBydW4gKElOVk9LRV9SVU4gaXMgdHJ1ZSwgYW5kIE1vZHVsZS5ub0luaXRp
YWxSdW4gaXMgbm90IGZhbHNlKQorICAgIGlmICghY2FsbGVkUnVuICYmIHNob3VsZFJ1bk5vdykg
cnVuKFtdLmNvbmNhdChNb2R1bGVbImFyZ3VtZW50cyJdKSk7CisgIH0KK30KK01vZHVsZVsncmVt
b3ZlUnVuRGVwZW5kZW5jeSddID0gcmVtb3ZlUnVuRGVwZW5kZW5jeTsKK01vZHVsZVsicHJlbG9h
ZGVkSW1hZ2VzIl0gPSB7fTsgLy8gbWFwcyB1cmwgdG8gaW1hZ2UgZGF0YQorTW9kdWxlWyJwcmVs
b2FkZWRBdWRpb3MiXSA9IHt9OyAvLyBtYXBzIHVybCB0byBhdWRpbyBkYXRhCitmdW5jdGlvbiBs
b2FkTWVtb3J5SW5pdGlhbGl6ZXIoZmlsZW5hbWUpIHsKKyAgZnVuY3Rpb24gYXBwbHlEYXRhKGRh
dGEpIHsKKyAgICBIRUFQVTguc2V0KGRhdGEsIFNUQVRJQ19CQVNFKTsKKyAgfQorICAvLyBhbHdh
eXMgZG8gdGhpcyBhc3luY2hyb25vdXNseSwgdG8ga2VlcCBzaGVsbCBhbmQgd2ViIGFzIHNpbWls
YXIgYXMgcG9zc2libGUKKyAgYWRkT25QcmVSdW4oZnVuY3Rpb24oKSB7CisgICAgaWYgKEVOVklS
T05NRU5UX0lTX05PREUgfHwgRU5WSVJPTk1FTlRfSVNfU0hFTEwpIHsKKyAgICAgIGFwcGx5RGF0
YShNb2R1bGVbJ3JlYWRCaW5hcnknXShmaWxlbmFtZSkpOworICAgIH0gZWxzZSB7CisgICAgICBC
cm93c2VyLmFzeW5jTG9hZChmaWxlbmFtZSwgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICBhcHBs
eURhdGEoZGF0YSk7CisgICAgICB9LCBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgIHRocm93ICdj
b3VsZCBub3QgbG9hZCBtZW1vcnkgaW5pdGlhbGl6ZXIgJyArIGZpbGVuYW1lOworICAgICAgfSk7
CisgICAgfQorICB9KTsKK30KKy8vID09PSBCb2R5ID09PQorU1RBVElDX0JBU0UgPSA4OworU1RB
VElDVE9QID0gU1RBVElDX0JBU0UgKyA1Mjg7CisvKiBnbG9iYWwgaW5pdGlhbGl6ZXJzICovIF9f
QVRJTklUX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBydW5Qb3N0U2V0cygpIH0gfSk7Cisv
KiBtZW1vcnkgaW5pdGlhbGl6ZXIgKi8gYWxsb2NhdGUoWzEwMiwxMDUsMTEwLDk3LDEwOCw1OCwz
MiwzNywxMDAsNDYsMTAsMCwwLDAsMCwwLDEwMSwxMTQsMTE0LDExMSwxMTQsNTgsMzIsMzcsMTAw
LDEwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfTk9ORSwgUnVudGltZS5HTE9CQUxfQkFTRSkK
K3ZhciB0ZW1wRG91YmxlUHRyID0gUnVudGltZS5hbGlnbk1lbW9yeShhbGxvY2F0ZSgxMiwgImk4
IiwgQUxMT0NfU1RBVElDKSwgOCk7Cithc3NlcnQodGVtcERvdWJsZVB0ciAlIDggPT0gMCk7Citm
dW5jdGlvbiBjb3B5VGVtcEZsb2F0KHB0cikgeyAvLyBmdW5jdGlvbnMsIGJlY2F1c2UgaW5saW5p
bmcgdGhpcyBjb2RlIGluY3JlYXNlcyBjb2RlIHNpemUgdG9vIG11Y2gKKyAgSEVBUDhbdGVtcERv
dWJsZVB0cl0gPSBIRUFQOFtwdHJdOworICBIRUFQOFt0ZW1wRG91YmxlUHRyKzFdID0gSEVBUDhb
cHRyKzFdOworICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0gSEVBUDhbcHRyKzJdOworICBIRUFQ
OFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOworfQorZnVuY3Rpb24gY29weVRlbXBE
b3VibGUocHRyKSB7CisgIEhFQVA4W3RlbXBEb3VibGVQdHJdID0gSEVBUDhbcHRyXTsKKyAgSEVB
UDhbdGVtcERvdWJsZVB0cisxXSA9IEhFQVA4W3B0cisxXTsKKyAgSEVBUDhbdGVtcERvdWJsZVB0
cisyXSA9IEhFQVA4W3B0cisyXTsKKyAgSEVBUDhbdGVtcERvdWJsZVB0ciszXSA9IEhFQVA4W3B0
ciszXTsKKyAgSEVBUDhbdGVtcERvdWJsZVB0cis0XSA9IEhFQVA4W3B0cis0XTsKKyAgSEVBUDhb
dGVtcERvdWJsZVB0cis1XSA9IEhFQVA4W3B0cis1XTsKKyAgSEVBUDhbdGVtcERvdWJsZVB0cis2
XSA9IEhFQVA4W3B0cis2XTsKKyAgSEVBUDhbdGVtcERvdWJsZVB0cis3XSA9IEhFQVA4W3B0cis3
XTsKK30KKyAgdmFyIEVSUk5PX0NPREVTPXtFUEVSTToxLEVOT0VOVDoyLEVTUkNIOjMsRUlOVFI6
NCxFSU86NSxFTlhJTzo2LEUyQklHOjcsRU5PRVhFQzo4LEVCQURGOjksRUNISUxEOjEwLEVBR0FJ
TjoxMSxFV09VTERCTE9DSzoxMSxFTk9NRU06MTIsRUFDQ0VTOjEzLEVGQVVMVDoxNCxFTk9UQkxL
OjE1LEVCVVNZOjE2LEVFWElTVDoxNyxFWERFVjoxOCxFTk9ERVY6MTksRU5PVERJUjoyMCxFSVNE
SVI6MjEsRUlOVkFMOjIyLEVORklMRToyMyxFTUZJTEU6MjQsRU5PVFRZOjI1LEVUWFRCU1k6MjYs
RUZCSUc6MjcsRU5PU1BDOjI4LEVTUElQRToyOSxFUk9GUzozMCxFTUxJTks6MzEsRVBJUEU6MzIs
RURPTTozMyxFUkFOR0U6MzQsRU5PTVNHOjM1LEVJRFJNOjM2LEVDSFJORzozNyxFTDJOU1lOQzoz
OCxFTDNITFQ6MzksRUwzUlNUOjQwLEVMTlJORzo0MSxFVU5BVENIOjQyLEVOT0NTSTo0MyxFTDJI
TFQ6NDQsRURFQURMSzo0NSxFTk9MQ0s6NDYsRUJBREU6NTAsRUJBRFI6NTEsRVhGVUxMOjUyLEVO
T0FOTzo1MyxFQkFEUlFDOjU0LEVCQURTTFQ6NTUsRURFQURMT0NLOjU2LEVCRk9OVDo1NyxFTk9T
VFI6NjAsRU5PREFUQTo2MSxFVElNRTo2MixFTk9TUjo2MyxFTk9ORVQ6NjQsRU5PUEtHOjY1LEVS
RU1PVEU6NjYsRU5PTElOSzo2NyxFQURWOjY4LEVTUk1OVDo2OSxFQ09NTTo3MCxFUFJPVE86NzEs
RU1VTFRJSE9QOjc0LEVET1RET1Q6NzYsRUJBRE1TRzo3NyxFTk9UVU5JUTo4MCxFQkFERkQ6ODEs
RVJFTUNIRzo4MixFTElCQUNDOjgzLEVMSUJCQUQ6ODQsRUxJQlNDTjo4NSxFTElCTUFYOjg2LEVM
SUJFWEVDOjg3LEVOT1NZUzo4OCxFTk9URU1QVFk6OTAsRU5BTUVUT09MT05HOjkxLEVMT09QOjky
LEVPUE5PVFNVUFA6OTUsRVBGTk9TVVBQT1JUOjk2LEVDT05OUkVTRVQ6MTA0LEVOT0JVRlM6MTA1
LEVBRk5PU1VQUE9SVDoxMDYsRVBST1RPVFlQRToxMDcsRU5PVFNPQ0s6MTA4LEVOT1BST1RPT1BU
OjEwOSxFU0hVVERPV046MTEwLEVDT05OUkVGVVNFRDoxMTEsRUFERFJJTlVTRToxMTIsRUNPTk5B
Qk9SVEVEOjExMyxFTkVUVU5SRUFDSDoxMTQsRU5FVERPV046MTE1LEVUSU1FRE9VVDoxMTYsRUhP
U1RET1dOOjExNyxFSE9TVFVOUkVBQ0g6MTE4LEVJTlBST0dSRVNTOjExOSxFQUxSRUFEWToxMjAs
RURFU1RBRERSUkVROjEyMSxFTVNHU0laRToxMjIsRVBST1RPTk9TVVBQT1JUOjEyMyxFU09DS1RO
T1NVUFBPUlQ6MTI0LEVBRERSTk9UQVZBSUw6MTI1LEVORVRSRVNFVDoxMjYsRUlTQ09OTjoxMjcs
RU5PVENPTk46MTI4LEVUT09NQU5ZUkVGUzoxMjksRVVTRVJTOjEzMSxFRFFVT1Q6MTMyLEVTVEFM
RToxMzMsRU5PVFNVUDoxMzQsRU5PTUVESVVNOjEzNSxFSUxTRVE6MTM4LEVPVkVSRkxPVzoxMzks
RUNBTkNFTEVEOjE0MCxFTk9UUkVDT1ZFUkFCTEU6MTQxLEVPV05FUkRFQUQ6MTQyLEVTVFJQSVBF
OjE0M307CisgIHZhciBFUlJOT19NRVNTQUdFUz17MDoiU3VjY2VzcyIsMToiTm90IHN1cGVyLXVz
ZXIiLDI6Ik5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiLDM6Ik5vIHN1Y2ggcHJvY2VzcyIsNDoi
SW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwiLDU6IkkvTyBlcnJvciIsNjoiTm8gc3VjaCBkZXZpY2Ug
b3IgYWRkcmVzcyIsNzoiQXJnIGxpc3QgdG9vIGxvbmciLDg6IkV4ZWMgZm9ybWF0IGVycm9yIiw5
OiJCYWQgZmlsZSBudW1iZXIiLDEwOiJObyBjaGlsZHJlbiIsMTE6Ik5vIG1vcmUgcHJvY2Vzc2Vz
IiwxMjoiTm90IGVub3VnaCBjb3JlIiwxMzoiUGVybWlzc2lvbiBkZW5pZWQiLDE0OiJCYWQgYWRk
cmVzcyIsMTU6IkJsb2NrIGRldmljZSByZXF1aXJlZCIsMTY6Ik1vdW50IGRldmljZSBidXN5Iiwx
NzoiRmlsZSBleGlzdHMiLDE4OiJDcm9zcy1kZXZpY2UgbGluayIsMTk6Ik5vIHN1Y2ggZGV2aWNl
IiwyMDoiTm90IGEgZGlyZWN0b3J5IiwyMToiSXMgYSBkaXJlY3RvcnkiLDIyOiJJbnZhbGlkIGFy
Z3VtZW50IiwyMzoiVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0iLDI0OiJUb28gbWFueSBv
cGVuIGZpbGVzIiwyNToiTm90IGEgdHlwZXdyaXRlciIsMjY6IlRleHQgZmlsZSBidXN5IiwyNzoi
RmlsZSB0b28gbGFyZ2UiLDI4OiJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsMjk6IklsbGVnYWwg
c2VlayIsMzA6IlJlYWQgb25seSBmaWxlIHN5c3RlbSIsMzE6IlRvbyBtYW55IGxpbmtzIiwzMjoi
QnJva2VuIHBpcGUiLDMzOiJNYXRoIGFyZyBvdXQgb2YgZG9tYWluIG9mIGZ1bmMiLDM0OiJNYXRo
IHJlc3VsdCBub3QgcmVwcmVzZW50YWJsZSIsMzU6Ik5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBl
IiwzNjoiSWRlbnRpZmllciByZW1vdmVkIiwzNzoiQ2hhbm5lbCBudW1iZXIgb3V0IG9mIHJhbmdl
IiwzODoiTGV2ZWwgMiBub3Qgc3luY2hyb25pemVkIiwzOToiTGV2ZWwgMyBoYWx0ZWQiLDQwOiJM
ZXZlbCAzIHJlc2V0Iiw0MToiTGluayBudW1iZXIgb3V0IG9mIHJhbmdlIiw0MjoiUHJvdG9jb2wg
ZHJpdmVyIG5vdCBhdHRhY2hlZCIsNDM6Ik5vIENTSSBzdHJ1Y3R1cmUgYXZhaWxhYmxlIiw0NDoi
TGV2ZWwgMiBoYWx0ZWQiLDQ1OiJEZWFkbG9jayBjb25kaXRpb24iLDQ2OiJObyByZWNvcmQgbG9j
a3MgYXZhaWxhYmxlIiw1MDoiSW52YWxpZCBleGNoYW5nZSIsNTE6IkludmFsaWQgcmVxdWVzdCBk
ZXNjcmlwdG9yIiw1MjoiRXhjaGFuZ2UgZnVsbCIsNTM6Ik5vIGFub2RlIiw1NDoiSW52YWxpZCBy
ZXF1ZXN0IGNvZGUiLDU1OiJJbnZhbGlkIHNsb3QiLDU2OiJGaWxlIGxvY2tpbmcgZGVhZGxvY2sg
ZXJyb3IiLDU3OiJCYWQgZm9udCBmaWxlIGZtdCIsNjA6IkRldmljZSBub3QgYSBzdHJlYW0iLDYx
OiJObyBkYXRhIChmb3Igbm8gZGVsYXkgaW8pIiw2MjoiVGltZXIgZXhwaXJlZCIsNjM6Ik91dCBv
ZiBzdHJlYW1zIHJlc291cmNlcyIsNjQ6Ik1hY2hpbmUgaXMgbm90IG9uIHRoZSBuZXR3b3JrIiw2
NToiUGFja2FnZSBub3QgaW5zdGFsbGVkIiw2NjoiVGhlIG9iamVjdCBpcyByZW1vdGUiLDY3OiJU
aGUgbGluayBoYXMgYmVlbiBzZXZlcmVkIiw2ODoiQWR2ZXJ0aXNlIGVycm9yIiw2OToiU3Jtb3Vu
dCBlcnJvciIsNzA6IkNvbW11bmljYXRpb24gZXJyb3Igb24gc2VuZCIsNzE6IlByb3RvY29sIGVy
cm9yIiw3NDoiTXVsdGlob3AgYXR0ZW1wdGVkIiw3NjoiQ3Jvc3MgbW91bnQgcG9pbnQgKG5vdCBy
ZWFsbHkgZXJyb3IpIiw3NzoiVHJ5aW5nIHRvIHJlYWQgdW5yZWFkYWJsZSBtZXNzYWdlIiw4MDoi
R2l2ZW4gbG9nLiBuYW1lIG5vdCB1bmlxdWUiLDgxOiJmLmQuIGludmFsaWQgZm9yIHRoaXMgb3Bl
cmF0aW9uIiw4MjoiUmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsODM6IkNhbiAgIGFjY2VzcyBhIG5l
ZWRlZCBzaGFyZWQgbGliIiw4NDoiQWNjZXNzaW5nIGEgY29ycnVwdGVkIHNoYXJlZCBsaWIiLDg1
OiIubGliIHNlY3Rpb24gaW4gYS5vdXQgY29ycnVwdGVkIiw4NjoiQXR0ZW1wdGluZyB0byBsaW5r
IGluIHRvbyBtYW55IGxpYnMiLDg3OiJBdHRlbXB0aW5nIHRvIGV4ZWMgYSBzaGFyZWQgbGlicmFy
eSIsODg6IkZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCIsOTA6IkRpcmVjdG9yeSBub3QgZW1wdHki
LDkxOiJGaWxlIG9yIHBhdGggbmFtZSB0b28gbG9uZyIsOTI6IlRvbyBtYW55IHN5bWJvbGljIGxp
bmtzIiw5NToiT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNwb3J0IGVuZHBvaW50Iiw5
NjoiUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQiLDEwNDoiQ29ubmVjdGlvbiByZXNldCBi
eSBwZWVyIiwxMDU6Ik5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUiLDEwNjoiQWRkcmVzcyBmYW1p
bHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbCBmYW1pbHkiLDEwNzoiUHJvdG9jb2wgd3Jvbmcg
dHlwZSBmb3Igc29ja2V0IiwxMDg6IlNvY2tldCBvcGVyYXRpb24gb24gbm9uLXNvY2tldCIsMTA5
OiJQcm90b2NvbCBub3QgYXZhaWxhYmxlIiwxMTA6IkNhbid0IHNlbmQgYWZ0ZXIgc29ja2V0IHNo
dXRkb3duIiwxMTE6IkNvbm5lY3Rpb24gcmVmdXNlZCIsMTEyOiJBZGRyZXNzIGFscmVhZHkgaW4g
dXNlIiwxMTM6IkNvbm5lY3Rpb24gYWJvcnRlZCIsMTE0OiJOZXR3b3JrIGlzIHVucmVhY2hhYmxl
IiwxMTU6Ik5ldHdvcmsgaW50ZXJmYWNlIGlzIG5vdCBjb25maWd1cmVkIiwxMTY6IkNvbm5lY3Rp
b24gdGltZWQgb3V0IiwxMTc6Ikhvc3QgaXMgZG93biIsMTE4OiJIb3N0IGlzIHVucmVhY2hhYmxl
IiwxMTk6IkNvbm5lY3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcyIsMTIwOiJTb2NrZXQgYWxyZWFk
eSBjb25uZWN0ZWQiLDEyMToiRGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZCIsMTIyOiJNZXNz
YWdlIHRvbyBsb25nIiwxMjM6IlVua25vd24gcHJvdG9jb2wiLDEyNDoiU29ja2V0IHR5cGUgbm90
IHN1cHBvcnRlZCIsMTI1OiJBZGRyZXNzIG5vdCBhdmFpbGFibGUiLDEyNjoiQ29ubmVjdGlvbiBy
ZXNldCBieSBuZXR3b3JrIiwxMjc6IlNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZCIsMTI4OiJT
b2NrZXQgaXMgbm90IGNvbm5lY3RlZCIsMTI5OiJUb28gbWFueSByZWZlcmVuY2VzIiwxMzE6IlRv
byBtYW55IHVzZXJzIiwxMzI6IlF1b3RhIGV4Y2VlZGVkIiwxMzM6IlN0YWxlIGZpbGUgaGFuZGxl
IiwxMzQ6Ik5vdCBzdXBwb3J0ZWQiLDEzNToiTm8gbWVkaXVtIChpbiB0YXBlIGRyaXZlKSIsMTM4
OiJJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UiLDEzOToiVmFsdWUgdG9vIGxhcmdlIGZvciBkZWZpbmVk
IGRhdGEgdHlwZSIsMTQwOiJPcGVyYXRpb24gY2FuY2VsZWQiLDE0MToiU3RhdGUgbm90IHJlY292
ZXJhYmxlIiwxNDI6IlByZXZpb3VzIG93bmVyIGRpZWQiLDE0MzoiU3RyZWFtcyBwaXBlIGVycm9y
In07CisgIHZhciBfX19lcnJub19zdGF0ZT0wO2Z1bmN0aW9uIF9fX3NldEVyck5vKHZhbHVlKSB7
CisgICAgICAvLyBGb3IgY29udmVuaWVudCBzZXR0aW5nIGFuZCByZXR1cm5pbmcgb2YgZXJybm8u
CisgICAgICBIRUFQMzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT12YWx1ZQorICAgICAgcmV0dXJu
IHZhbHVlOworICAgIH0KKyAgdmFyIFZGUz11bmRlZmluZWQ7CisgIHZhciBQQVRIPXtzcGxpdFBh
dGg6ZnVuY3Rpb24gKGZpbGVuYW1lKSB7CisgICAgICAgIHZhciBzcGxpdFBhdGhSZSA9IC9eKFwv
P3wpKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikk
LzsKKyAgICAgICAgcmV0dXJuIHNwbGl0UGF0aFJlLmV4ZWMoZmlsZW5hbWUpLnNsaWNlKDEpOwor
ICAgICAgfSxub3JtYWxpemVBcnJheTpmdW5jdGlvbiAocGFydHMsIGFsbG93QWJvdmVSb290KSB7
CisgICAgICAgIC8vIGlmIHRoZSBwYXRoIHRyaWVzIHRvIGdvIGFib3ZlIHRoZSByb290LCBgdXBg
IGVuZHMgdXAgPiAwCisgICAgICAgIHZhciB1cCA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSBw
YXJ0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgIHZhciBsYXN0ID0gcGFy
dHNbaV07CisgICAgICAgICAgaWYgKGxhc3QgPT09ICcuJykgeworICAgICAgICAgICAgcGFydHMu
c3BsaWNlKGksIDEpOworICAgICAgICAgIH0gZWxzZSBpZiAobGFzdCA9PT0gJy4uJykgeworICAg
ICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOworICAgICAgICAgICAgdXArKzsKKyAgICAgICAg
ICB9IGVsc2UgaWYgKHVwKSB7CisgICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7CisgICAg
ICAgICAgICB1cC0tOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBpZiB0aGUg
cGF0aCBpcyBhbGxvd2VkIHRvIGdvIGFib3ZlIHRoZSByb290LCByZXN0b3JlIGxlYWRpbmcgLi5z
CisgICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkgeworICAgICAgICAgIGZvciAoOyB1cC0tOyB1
cCkgeworICAgICAgICAgICAgcGFydHMudW5zaGlmdCgnLi4nKTsKKyAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIHBhcnRzOworICAgICAgfSxub3JtYWxpemU6ZnVuY3Rpb24g
KHBhdGgpIHsKKyAgICAgICAgdmFyIGlzQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8n
LAorICAgICAgICAgICAgdHJhaWxpbmdTbGFzaCA9IHBhdGguc3Vic3RyKC0xKSA9PT0gJy8nOwor
ICAgICAgICAvLyBOb3JtYWxpemUgdGhlIHBhdGgKKyAgICAgICAgcGF0aCA9IFBBVEgubm9ybWFs
aXplQXJyYXkocGF0aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihwKSB7CisgICAgICAgICAg
cmV0dXJuICEhcDsKKyAgICAgICAgfSksICFpc0Fic29sdXRlKS5qb2luKCcvJyk7CisgICAgICAg
IGlmICghcGF0aCAmJiAhaXNBYnNvbHV0ZSkgeworICAgICAgICAgIHBhdGggPSAnLic7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKHBhdGggJiYgdHJhaWxpbmdTbGFzaCkgeworICAgICAgICAgIHBh
dGggKz0gJy8nOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoaXNBYnNvbHV0ZSA/ICcvJyA6
ICcnKSArIHBhdGg7CisgICAgICB9LGRpcm5hbWU6ZnVuY3Rpb24gKHBhdGgpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IFBBVEguc3BsaXRQYXRoKHBhdGgpLAorICAgICAgICAgICAgcm9vdCA9IHJl
c3VsdFswXSwKKyAgICAgICAgICAgIGRpciA9IHJlc3VsdFsxXTsKKyAgICAgICAgaWYgKCFyb290
ICYmICFkaXIpIHsKKyAgICAgICAgICAvLyBObyBkaXJuYW1lIHdoYXRzb2V2ZXIKKyAgICAgICAg
ICByZXR1cm4gJy4nOworICAgICAgICB9CisgICAgICAgIGlmIChkaXIpIHsKKyAgICAgICAgICAv
LyBJdCBoYXMgYSBkaXJuYW1lLCBzdHJpcCB0cmFpbGluZyBzbGFzaAorICAgICAgICAgIGRpciA9
IGRpci5zdWJzdHIoMCwgZGlyLmxlbmd0aCAtIDEpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biByb290ICsgZGlyOworICAgICAgfSxiYXNlbmFtZTpmdW5jdGlvbiAocGF0aCwgZXh0KSB7Cisg
ICAgICAgIC8vIEVNU0NSSVBURU4gcmV0dXJuICcvJycgZm9yICcvJywgbm90IGFuIGVtcHR5IHN0
cmluZworICAgICAgICBpZiAocGF0aCA9PT0gJy8nKSByZXR1cm4gJy8nOworICAgICAgICB2YXIg
ZiA9IFBBVEguc3BsaXRQYXRoKHBhdGgpWzJdOworICAgICAgICBpZiAoZXh0ICYmIGYuc3Vic3Ry
KC0xICogZXh0Lmxlbmd0aCkgPT09IGV4dCkgeworICAgICAgICAgIGYgPSBmLnN1YnN0cigwLCBm
Lmxlbmd0aCAtIGV4dC5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmOworICAg
ICAgfSxqb2luOmZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHBhdGhzID0gQXJyYXkucHJvdG90
eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTsKKyAgICAgICAgcmV0dXJuIFBBVEgubm9ybWFs
aXplKHBhdGhzLmZpbHRlcihmdW5jdGlvbihwLCBpbmRleCkgeworICAgICAgICAgIGlmICh0eXBl
b2YgcCAhPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Fy
Z3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzJyk7CisgICAgICAgICAgfQorICAg
ICAgICAgIHJldHVybiBwOworICAgICAgICB9KS5qb2luKCcvJykpOworICAgICAgfSxyZXNvbHZl
OmZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHJlc29sdmVkUGF0aCA9ICcnLAorICAgICAgICAg
IHJlc29sdmVkQWJzb2x1dGUgPSBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IGFyZ3VtZW50
cy5sZW5ndGggLSAxOyBpID49IC0xICYmICFyZXNvbHZlZEFic29sdXRlOyBpLS0pIHsKKyAgICAg
ICAgICB2YXIgcGF0aCA9IChpID49IDApID8gYXJndW1lbnRzW2ldIDogRlMuY3dkKCk7CisgICAg
ICAgICAgLy8gU2tpcCBlbXB0eSBhbmQgaW52YWxpZCBlbnRyaWVzCisgICAgICAgICAgaWYgKHR5
cGVvZiBwYXRoICE9PSAnc3RyaW5nJykgeworICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJv
cignQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MnKTsKKyAgICAgICAg
ICB9IGVsc2UgaWYgKCFwYXRoKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9
CisgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcGF0aCArICcvJyArIHJlc29sdmVkUGF0aDsKKyAg
ICAgICAgICByZXNvbHZlZEFic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJzsKKyAgICAg
ICAgfQorICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBwYXRoIHNob3VsZCBiZSByZXNvbHZl
ZCB0byBhIGZ1bGwgYWJzb2x1dGUgcGF0aCwgYnV0CisgICAgICAgIC8vIGhhbmRsZSByZWxhdGl2
ZSBwYXRocyB0byBiZSBzYWZlIChtaWdodCBoYXBwZW4gd2hlbiBwcm9jZXNzLmN3ZCgpIGZhaWxz
KQorICAgICAgICByZXNvbHZlZFBhdGggPSBQQVRILm5vcm1hbGl6ZUFycmF5KHJlc29sdmVkUGF0
aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihwKSB7CisgICAgICAgICAgcmV0dXJuICEhcDsK
KyAgICAgICAgfSksICFyZXNvbHZlZEFic29sdXRlKS5qb2luKCcvJyk7CisgICAgICAgIHJldHVy
biAoKHJlc29sdmVkQWJzb2x1dGUgPyAnLycgOiAnJykgKyByZXNvbHZlZFBhdGgpIHx8ICcuJzsK
KyAgICAgIH0scmVsYXRpdmU6ZnVuY3Rpb24gKGZyb20sIHRvKSB7CisgICAgICAgIGZyb20gPSBQ
QVRILnJlc29sdmUoZnJvbSkuc3Vic3RyKDEpOworICAgICAgICB0byA9IFBBVEgucmVzb2x2ZSh0
bykuc3Vic3RyKDEpOworICAgICAgICBmdW5jdGlvbiB0cmltKGFycikgeworICAgICAgICAgIHZh
ciBzdGFydCA9IDA7CisgICAgICAgICAgZm9yICg7IHN0YXJ0IDwgYXJyLmxlbmd0aDsgc3RhcnQr
KykgeworICAgICAgICAgICAgaWYgKGFycltzdGFydF0gIT09ICcnKSBicmVhazsKKyAgICAgICAg
ICB9CisgICAgICAgICAgdmFyIGVuZCA9IGFyci5sZW5ndGggLSAxOworICAgICAgICAgIGZvciAo
OyBlbmQgPj0gMDsgZW5kLS0pIHsKKyAgICAgICAgICAgIGlmIChhcnJbZW5kXSAhPT0gJycpIGJy
ZWFrOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoc3RhcnQgPiBlbmQpIHJldHVybiBbXTsK
KyAgICAgICAgICByZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LCBlbmQgLSBzdGFydCArIDEpOworICAg
ICAgICB9CisgICAgICAgIHZhciBmcm9tUGFydHMgPSB0cmltKGZyb20uc3BsaXQoJy8nKSk7Cisg
ICAgICAgIHZhciB0b1BhcnRzID0gdHJpbSh0by5zcGxpdCgnLycpKTsKKyAgICAgICAgdmFyIGxl
bmd0aCA9IE1hdGgubWluKGZyb21QYXJ0cy5sZW5ndGgsIHRvUGFydHMubGVuZ3RoKTsKKyAgICAg
ICAgdmFyIHNhbWVQYXJ0c0xlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgIGlmIChmcm9tUGFydHNbaV0gIT09IHRvUGFy
dHNbaV0pIHsKKyAgICAgICAgICAgIHNhbWVQYXJ0c0xlbmd0aCA9IGk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIG91dHB1dFBhcnRzID0g
W107CisgICAgICAgIGZvciAodmFyIGkgPSBzYW1lUGFydHNMZW5ndGg7IGkgPCBmcm9tUGFydHMu
bGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICBvdXRwdXRQYXJ0cy5wdXNoKCcuLicpOworICAgICAg
ICB9CisgICAgICAgIG91dHB1dFBhcnRzID0gb3V0cHV0UGFydHMuY29uY2F0KHRvUGFydHMuc2xp
Y2Uoc2FtZVBhcnRzTGVuZ3RoKSk7CisgICAgICAgIHJldHVybiBvdXRwdXRQYXJ0cy5qb2luKCcv
Jyk7CisgICAgICB9fTsKKyAgdmFyIFRUWT17dHR5czpbXSxyZWdpc3RlcjpmdW5jdGlvbiAoZGV2
LCBvcHMpIHsKKyAgICAgICAgVFRZLnR0eXNbZGV2XSA9IHsgaW5wdXQ6IFtdLCBvdXRwdXQ6IFtd
LCBvcHM6IG9wcyB9OworICAgICAgICBGUy5yZWdpc3RlckRldmljZShkZXYsIFRUWS5zdHJlYW1f
b3BzKTsKKyAgICAgIH0sc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7CisgICAg
ICAgICAgLy8gdGhpcyB3b3VsZG4ndCBiZSByZXF1aXJlZCBpZiB0aGUgbGlicmFyeSB3YXNuJ3Qg
ZXZhbCdkIGF0IGZpcnN0Li4uCisgICAgICAgICAgaWYgKCFUVFkudXRmOCkgeworICAgICAgICAg
ICAgVFRZLnV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7CisgICAgICAgICAgfQor
ICAgICAgICAgIHZhciB0dHkgPSBUVFkudHR5c1tzdHJlYW0ubm9kZS5yZGV2XTsKKyAgICAgICAg
ICBpZiAoIXR0eSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRU5PREVWKTsKKyAgICAgICAgICB9CisgICAgICAgICAgc3RyZWFtLnR0eSA9IHR0eTsK
KyAgICAgICAgICBzdHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKKyAgICAgICAgfSxjbG9zZTpmdW5j
dGlvbiAoc3RyZWFtKSB7CisgICAgICAgICAgLy8gZmx1c2ggYW55IHBlbmRpbmcgbGluZSBkYXRh
CisgICAgICAgICAgaWYgKHN0cmVhbS50dHkub3V0cHV0Lmxlbmd0aCkgeworICAgICAgICAgICAg
c3RyZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0eSwgMTApOworICAgICAgICAgIH0KKyAg
ICAgICAgfSxyZWFkOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBv
cyAvKiBpZ25vcmVkICovKSB7CisgICAgICAgICAgaWYgKCFzdHJlYW0udHR5IHx8ICFzdHJlYW0u
dHR5Lm9wcy5nZXRfY2hhcikgeworICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRU5YSU8pOworICAgICAgICAgIH0KKyAgICAgICAgICB2YXIgYnl0ZXNSZWFk
ID0gMDsKKyAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICB2YXIgcmVzdWx0OworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgcmVz
dWx0ID0gc3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIoc3RyZWFtLnR0eSk7CisgICAgICAgICAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVJTyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1
bmRlZmluZWQgJiYgYnl0ZXNSZWFkID09PSAwKSB7CisgICAgICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTik7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBicmVhazsK
KyAgICAgICAgICAgIGJ5dGVzUmVhZCsrOworICAgICAgICAgICAgYnVmZmVyW29mZnNldCtpXSA9
IHJlc3VsdDsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGJ5dGVzUmVhZCkgeworICAgICAg
ICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKKyAgICAgICAgfSx3cml0ZTpmdW5jdGlvbiAoc3Ry
ZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MpIHsKKyAgICAgICAgICBpZiAoIXN0cmVh
bS50dHkgfHwgIXN0cmVhbS50dHkub3BzLnB1dF9jaGFyKSB7CisgICAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTlhJTyk7CisgICAgICAgICAgfQorICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRyeSB7
CisgICAgICAgICAgICAgIHN0cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksIGJ1ZmZl
cltvZmZzZXQraV0pOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOworICAgICAgICAgICAgfQor
ICAgICAgICAgIH0KKyAgICAgICAgICBpZiAobGVuZ3RoKSB7CisgICAgICAgICAgICBzdHJlYW0u
bm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1
cm4gaTsKKyAgICAgICAgfX0sZGVmYXVsdF90dHlfb3BzOntnZXRfY2hhcjpmdW5jdGlvbiAodHR5
KSB7CisgICAgICAgICAgaWYgKCF0dHkuaW5wdXQubGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7Cisg
ICAgICAgICAgICAgIGlmIChwcm9jZXNzLnN0ZGluLmRlc3Ryb3llZCkgeworICAgICAgICAgICAg
ICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgcmVz
dWx0ID0gcHJvY2Vzcy5zdGRpbi5yZWFkKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVv
ZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYKKyAgICAgICAgICAgICAgdHlwZW9mIHdpbmRvdy5w
cm9tcHQgPT0gJ2Z1bmN0aW9uJykgeworICAgICAgICAgICAgICAvLyBCcm93c2VyLgorICAgICAg
ICAgICAgICByZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdJbnB1dDogJyk7ICAvLyByZXR1cm5zIG51
bGwgb24gY2FuY2VsCisgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgKz0gJ1xuJzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNlIGlmICh0eXBlb2YgcmVhZGxpbmUgPT0gJ2Z1bmN0aW9uJykgeworICAgICAgICAgICAg
ICAvLyBDb21tYW5kIGxpbmUuCisgICAgICAgICAgICAgIHJlc3VsdCA9IHJlYWRsaW5lKCk7Cisg
ICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1
bHQgKz0gJ1xuJzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAg
aWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB0dHkuaW5wdXQgPSBpbnRBcnJheUZyb21TdHJpbmcocmVzdWx0LCB0cnVl
KTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIHR0eS5pbnB1dC5zaGlmdCgpOworICAg
ICAgICB9LHB1dF9jaGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgeworICAgICAgICAgIGlmICh2YWwg
PT09IG51bGwgfHwgdmFsID09PSAxMCkgeworICAgICAgICAgICAgTW9kdWxlWydwcmludCddKHR0
eS5vdXRwdXQuam9pbignJykpOworICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOworICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vz
c0NDaGFyKHZhbCkpOworICAgICAgICAgIH0KKyAgICAgICAgfX0sZGVmYXVsdF90dHkxX29wczp7
cHV0X2NoYXI6ZnVuY3Rpb24gKHR0eSwgdmFsKSB7CisgICAgICAgICAgaWYgKHZhbCA9PT0gbnVs
bCB8fCB2YWwgPT09IDEwKSB7CisgICAgICAgICAgICBNb2R1bGVbJ3ByaW50RXJyJ10odHR5Lm91
dHB1dC5qb2luKCcnKSk7CisgICAgICAgICAgICB0dHkub3V0cHV0ID0gW107CisgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHR0eS5vdXRwdXQucHVzaChUVFkudXRmOC5wcm9jZXNzQ0No
YXIodmFsKSk7CisgICAgICAgICAgfQorICAgICAgICB9fX07CisgIHZhciBNRU1GUz17bW91bnQ6
ZnVuY3Rpb24gKG1vdW50KSB7CisgICAgICAgIHJldHVybiBNRU1GUy5jcmVhdGVfbm9kZShudWxs
LCAnLycsIDAwNDAwMDAgfCAwNzc3LCAwKTsKKyAgICAgIH0sY3JlYXRlX25vZGU6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7CisgICAgICAgIGlmIChGUy5pc0Jsa2Rldihtb2Rl
KSB8fCBGUy5pc0ZJRk8obW9kZSkpIHsKKyAgICAgICAgICAvLyBubyBzdXBwb3J0ZWQKKyAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7CisgICAgICAg
IH0KKyAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVOb2RlKHBhcmVudCwgbmFtZSwgbW9kZSwg
ZGV2KTsKKyAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKKyAgICAgICAgICBub2Rl
Lm5vZGVfb3BzID0geworICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0
ciwKKyAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIsCisgICAgICAg
ICAgICBsb29rdXA6IE1FTUZTLm5vZGVfb3BzLmxvb2t1cCwKKyAgICAgICAgICAgIG1rbm9kOiBN
RU1GUy5ub2RlX29wcy5ta25vZCwKKyAgICAgICAgICAgIG1rbm9kOiBNRU1GUy5ub2RlX29wcy5t
a25vZCwKKyAgICAgICAgICAgIHJlbmFtZTogTUVNRlMubm9kZV9vcHMucmVuYW1lLAorICAgICAg
ICAgICAgdW5saW5rOiBNRU1GUy5ub2RlX29wcy51bmxpbmssCisgICAgICAgICAgICBybWRpcjog
TUVNRlMubm9kZV9vcHMucm1kaXIsCisgICAgICAgICAgICByZWFkZGlyOiBNRU1GUy5ub2RlX29w
cy5yZWFkZGlyLAorICAgICAgICAgICAgc3ltbGluazogTUVNRlMubm9kZV9vcHMuc3ltbGluawor
ICAgICAgICAgIH07CisgICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0geworICAgICAgICAgICAg
bGxzZWVrOiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlaworICAgICAgICAgIH07CisgICAgICAgICAg
bm9kZS5jb250ZW50cyA9IHt9OworICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShub2RlLm1v
ZGUpKSB7CisgICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKKyAgICAgICAgICAgIGdldGF0dHI6
IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCisgICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2Rl
X29wcy5zZXRhdHRyCisgICAgICAgICAgfTsKKyAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSB7
CisgICAgICAgICAgICBsbHNlZWs6IE1FTUZTLnN0cmVhbV9vcHMubGxzZWVrLAorICAgICAgICAg
ICAgcmVhZDogTUVNRlMuc3RyZWFtX29wcy5yZWFkLAorICAgICAgICAgICAgd3JpdGU6IE1FTUZT
LnN0cmVhbV9vcHMud3JpdGUsCisgICAgICAgICAgICBhbGxvY2F0ZTogTUVNRlMuc3RyZWFtX29w
cy5hbGxvY2F0ZSwKKyAgICAgICAgICAgIG1tYXA6IE1FTUZTLnN0cmVhbV9vcHMubW1hcAorICAg
ICAgICAgIH07CisgICAgICAgICAgbm9kZS5jb250ZW50cyA9IFtdOworICAgICAgICB9IGVsc2Ug
aWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7CisgICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsK
KyAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCisgICAgICAgICAg
ICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAorICAgICAgICAgICAgcmVhZGxpbms6
IE1FTUZTLm5vZGVfb3BzLnJlYWRsaW5rCisgICAgICAgICAgfTsKKyAgICAgICAgICBub2RlLnN0
cmVhbV9vcHMgPSB7fTsKKyAgICAgICAgfSBlbHNlIGlmIChGUy5pc0NocmRldihub2RlLm1vZGUp
KSB7CisgICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKKyAgICAgICAgICAgIGdldGF0dHI6IE1F
TUZTLm5vZGVfb3BzLmdldGF0dHIsCisgICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29w
cy5zZXRhdHRyCisgICAgICAgICAgfTsKKyAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSBGUy5j
aHJkZXZfc3RyZWFtX29wczsKKyAgICAgICAgfQorICAgICAgICBub2RlLnRpbWVzdGFtcCA9IERh
dGUubm93KCk7CisgICAgICAgIC8vIGFkZCB0aGUgbmV3IG5vZGUgdG8gdGhlIHBhcmVudAorICAg
ICAgICBpZiAocGFyZW50KSB7CisgICAgICAgICAgcGFyZW50LmNvbnRlbnRzW25hbWVdID0gbm9k
ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgIH0sbm9kZV9vcHM6e2dl
dGF0dHI6ZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgICB2YXIgYXR0ciA9IHt9OworICAgICAg
ICAgIC8vIGRldmljZSBudW1iZXJzIHJldXNlIGlub2RlIG51bWJlcnMuCisgICAgICAgICAgYXR0
ci5kZXYgPSBGUy5pc0NocmRldihub2RlLm1vZGUpID8gbm9kZS5pZCA6IDE7CisgICAgICAgICAg
YXR0ci5pbm8gPSBub2RlLmlkOworICAgICAgICAgIGF0dHIubW9kZSA9IG5vZGUubW9kZTsKKyAg
ICAgICAgICBhdHRyLm5saW5rID0gMTsKKyAgICAgICAgICBhdHRyLnVpZCA9IDA7CisgICAgICAg
ICAgYXR0ci5naWQgPSAwOworICAgICAgICAgIGF0dHIucmRldiA9IG5vZGUucmRldjsKKyAgICAg
ICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgeworICAgICAgICAgICAgYXR0ci5zaXplID0g
NDA5NjsKKyAgICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShub2RlLm1vZGUpKSB7CisgICAg
ICAgICAgICBhdHRyLnNpemUgPSBub2RlLmNvbnRlbnRzLmxlbmd0aDsKKyAgICAgICAgICB9IGVs
c2UgaWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7CisgICAgICAgICAgICBhdHRyLnNpemUgPSBu
b2RlLmxpbmsubGVuZ3RoOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdHRyLnNp
emUgPSAwOworICAgICAgICAgIH0KKyAgICAgICAgICBhdHRyLmF0aW1lID0gbmV3IERhdGUobm9k
ZS50aW1lc3RhbXApOworICAgICAgICAgIGF0dHIubXRpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVz
dGFtcCk7CisgICAgICAgICAgYXR0ci5jdGltZSA9IG5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTsK
KyAgICAgICAgICAvLyBOT1RFOiBJbiBvdXIgaW1wbGVtZW50YXRpb24sIHN0X2Jsb2NrcyA9IE1h
dGguY2VpbChzdF9zaXplL3N0X2Jsa3NpemUpLAorICAgICAgICAgIC8vICAgICAgIGJ1dCB0aGlz
IGlzIG5vdCByZXF1aXJlZCBieSB0aGUgc3RhbmRhcmQuCisgICAgICAgICAgYXR0ci5ibGtzaXpl
ID0gNDA5NjsKKyAgICAgICAgICBhdHRyLmJsb2NrcyA9IE1hdGguY2VpbChhdHRyLnNpemUgLyBh
dHRyLmJsa3NpemUpOworICAgICAgICAgIHJldHVybiBhdHRyOworICAgICAgICB9LHNldGF0dHI6
ZnVuY3Rpb24gKG5vZGUsIGF0dHIpIHsKKyAgICAgICAgICBpZiAoYXR0ci5tb2RlICE9PSB1bmRl
ZmluZWQpIHsKKyAgICAgICAgICAgIG5vZGUubW9kZSA9IGF0dHIubW9kZTsKKyAgICAgICAgICB9
CisgICAgICAgICAgaWYgKGF0dHIudGltZXN0YW1wICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAg
ICAgIG5vZGUudGltZXN0YW1wID0gYXR0ci50aW1lc3RhbXA7CisgICAgICAgICAgfQorICAgICAg
ICAgIGlmIChhdHRyLnNpemUgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgdmFyIGNvbnRl
bnRzID0gbm9kZS5jb250ZW50czsKKyAgICAgICAgICAgIGlmIChhdHRyLnNpemUgPCBjb250ZW50
cy5sZW5ndGgpIGNvbnRlbnRzLmxlbmd0aCA9IGF0dHIuc2l6ZTsKKyAgICAgICAgICAgIGVsc2Ug
d2hpbGUgKGF0dHIuc2l6ZSA+IGNvbnRlbnRzLmxlbmd0aCkgY29udGVudHMucHVzaCgwKTsKKyAg
ICAgICAgICB9CisgICAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKKyAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpOworICAg
ICAgICB9LG1rbm9kOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIG1vZGUsIGRldikgeworICAgICAg
ICAgIHJldHVybiBNRU1GUy5jcmVhdGVfbm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRldik7Cisg
ICAgICAgIH0scmVuYW1lOmZ1bmN0aW9uIChvbGRfbm9kZSwgbmV3X2RpciwgbmV3X25hbWUpIHsK
KyAgICAgICAgICAvLyBpZiB3ZSdyZSBvdmVyd3JpdGluZyBhIGRpcmVjdG9yeSBhdCBuZXdfbmFt
ZSwgbWFrZSBzdXJlIGl0J3MgZW1wdHkuCisgICAgICAgICAgaWYgKEZTLmlzRGlyKG9sZF9ub2Rl
Lm1vZGUpKSB7CisgICAgICAgICAgICB2YXIgbmV3X25vZGU7CisgICAgICAgICAgICB0cnkgewor
ICAgICAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxvb2t1cE5vZGUobmV3X2RpciwgbmV3X25hbWUp
OworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAg
aWYgKG5ld19ub2RlKSB7CisgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gbmV3X25vZGUuY29u
dGVudHMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FTk9URU1QVFkpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgfQorICAgICAgICAgIC8vIGRvIHRoZSBpbnRlcm5hbCByZXdpcmluZworICAgICAgICAgIGRl
bGV0ZSBvbGRfbm9kZS5wYXJlbnQuY29udGVudHNbb2xkX25vZGUubmFtZV07CisgICAgICAgICAg
b2xkX25vZGUubmFtZSA9IG5ld19uYW1lOworICAgICAgICAgIG5ld19kaXIuY29udGVudHNbbmV3
X25hbWVdID0gb2xkX25vZGU7CisgICAgICAgIH0sdW5saW5rOmZ1bmN0aW9uIChwYXJlbnQsIG5h
bWUpIHsKKyAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdOworICAgICAgICB9
LHJtZGlyOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKKyAgICAgICAgICB2YXIgbm9kZSA9IEZT
Lmxvb2t1cE5vZGUocGFyZW50LCBuYW1lKTsKKyAgICAgICAgICBmb3IgKHZhciBpIGluIG5vZGUu
Y29udGVudHMpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT1RFTVBUWSk7CisgICAgICAgICAgfQorICAgICAgICAgIGRlbGV0ZSBwYXJlbnQuY29u
dGVudHNbbmFtZV07CisgICAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAobm9kZSkgeworICAgICAg
ICAgIHZhciBlbnRyaWVzID0gWycuJywgJy4uJ10KKyAgICAgICAgICBmb3IgKHZhciBrZXkgaW4g
bm9kZS5jb250ZW50cykgeworICAgICAgICAgICAgaWYgKCFub2RlLmNvbnRlbnRzLmhhc093blBy
b3BlcnR5KGtleSkpIHsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBlbnRyaWVzLnB1c2goa2V5KTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0
dXJuIGVudHJpZXM7CisgICAgICAgIH0sc3ltbGluazpmdW5jdGlvbiAocGFyZW50LCBuZXduYW1l
LCBvbGRwYXRoKSB7CisgICAgICAgICAgdmFyIG5vZGUgPSBNRU1GUy5jcmVhdGVfbm9kZShwYXJl
bnQsIG5ld25hbWUsIDA3NzcgfCAwMTIwMDAwLCAwKTsKKyAgICAgICAgICBub2RlLmxpbmsgPSBv
bGRwYXRoOworICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICB9LHJlYWRsaW5rOmZ1bmN0
aW9uIChub2RlKSB7CisgICAgICAgICAgaWYgKCFGUy5pc0xpbmsobm9kZS5tb2RlKSkgeworICAg
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKKyAg
ICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIG5vZGUubGluazsKKyAgICAgICAgfX0sc3RyZWFt
X29wczp7cmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3Np
dGlvbikgeworICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwor
ICAgICAgICAgIHZhciBzaXplID0gTWF0aC5taW4oY29udGVudHMubGVuZ3RoIC0gcG9zaXRpb24s
IGxlbmd0aCk7CisgICAgICAgICAgaWYgKGNvbnRlbnRzLnN1YmFycmF5KSB7IC8vIHR5cGVkIGFy
cmF5CisgICAgICAgICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9uLCBw
b3NpdGlvbiArIHNpemUpLCBvZmZzZXQpOworICAgICAgICAgIH0gZWxzZQorICAgICAgICAgIHsK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAg
ICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV07CisgICAgICAg
ICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBzaXplOworICAgICAgICB9LHdy
aXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7
CisgICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7CisgICAgICAg
ICAgd2hpbGUgKGNvbnRlbnRzLmxlbmd0aCA8IHBvc2l0aW9uKSBjb250ZW50cy5wdXNoKDApOwor
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAg
IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV0gPSBidWZmZXJbb2Zmc2V0ICsgaV07CisgICAgICAgICAg
fQorICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7CisgICAgICAg
ICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zm
c2V0LCB3aGVuY2UpIHsKKyAgICAgICAgICB2YXIgcG9zaXRpb24gPSBvZmZzZXQ7CisgICAgICAg
ICAgaWYgKHdoZW5jZSA9PT0gMSkgeyAgLy8gU0VFS19DVVIuCisgICAgICAgICAgICBwb3NpdGlv
biArPSBzdHJlYW0ucG9zaXRpb247CisgICAgICAgICAgfSBlbHNlIGlmICh3aGVuY2UgPT09IDIp
IHsgIC8vIFNFRUtfRU5ELgorICAgICAgICAgICAgaWYgKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5t
b2RlKSkgeworICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ubm9kZS5jb250ZW50cy5s
ZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChwb3NpdGlv
biA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVJTlZBTCk7CisgICAgICAgICAgfQorICAgICAgICAgIHN0cmVhbS51bmdvdHRlbiA9IFtdOwor
ICAgICAgICAgIHN0cmVhbS5wb3NpdGlvbiA9IHBvc2l0aW9uOworICAgICAgICAgIHJldHVybiBw
b3NpdGlvbjsKKyAgICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIGxl
bmd0aCkgeworICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwor
ICAgICAgICAgIHZhciBsaW1pdCA9IG9mZnNldCArIGxlbmd0aDsKKyAgICAgICAgICB3aGlsZSAo
bGltaXQgPiBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7CisgICAgICAgIH0sbW1h
cDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJv
dCwgZmxhZ3MpIHsKKyAgICAgICAgICBpZiAoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSkg
eworICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVW
KTsKKyAgICAgICAgICB9CisgICAgICAgICAgdmFyIHB0cjsKKyAgICAgICAgICB2YXIgYWxsb2Nh
dGVkOworICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOworICAg
ICAgICAgIC8vIE9ubHkgbWFrZSBhIG5ldyBjb3B5IHdoZW4gTUFQX1BSSVZBVEUgaXMgc3BlY2lm
aWVkLgorICAgICAgICAgIGlmICghKGZsYWdzICYgMHgwMikpIHsKKyAgICAgICAgICAgIC8vIFdl
IGNhbid0IGVtdWxhdGUgTUFQX1NIQVJFRCB3aGVuIHRoZSBmaWxlIGlzIG5vdCBiYWNrZWQgYnkg
dGhlIGJ1ZmZlcgorICAgICAgICAgICAgLy8gd2UncmUgbWFwcGluZyB0byAoZS5nLiB0aGUgSEVB
UCBidWZmZXIpLgorICAgICAgICAgICAgYXNzZXJ0KGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVy
IHx8IGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVyLmJ1ZmZlcik7CisgICAgICAgICAgICBhbGxv
Y2F0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHB0ciA9IGNvbnRlbnRzLmJ5dGVPZmZzZXQ7Cisg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRyeSB0byBhdm9pZCB1bm5lY2Vzc2Fy
eSBzbGljZXMuCisgICAgICAgICAgICBpZiAocG9zaXRpb24gPiAwIHx8IHBvc2l0aW9uICsgbGVu
Z3RoIDwgY29udGVudHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgIGlmIChjb250ZW50cy5zdWJh
cnJheSkgeworICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gY29udGVudHMuc3ViYXJyYXkocG9z
aXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBjb250ZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNvbnRlbnRz
LCBwb3NpdGlvbiwgcG9zaXRpb24gKyBsZW5ndGgpOworICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBhbGxvY2F0ZWQgPSB0cnVlOworICAgICAgICAgICAgcHRyID0g
X21hbGxvYyhsZW5ndGgpOworICAgICAgICAgICAgaWYgKCFwdHIpIHsKKyAgICAgICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PTUVNKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJ1ZmZlci5zZXQoY29udGVudHMsIHB0cik7CisgICAgICAgICAgfQor
ICAgICAgICAgIHJldHVybiB7IHB0cjogcHRyLCBhbGxvY2F0ZWQ6IGFsbG9jYXRlZCB9OworICAg
ICAgICB9fX07CisgIHZhciBfc3RkaW49YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMp
OworICB2YXIgX3N0ZG91dD1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7CisgIHZh
ciBfc3RkZXJyPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsKKyAgZnVuY3Rpb24g
X2ZmbHVzaChzdHJlYW0pIHsKKyAgICAgIC8vIGludCBmZmx1c2goRklMRSAqc3RyZWFtKTsKKyAg
ICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVu
Y3Rpb25zL2ZmbHVzaC5odG1sCisgICAgICAvLyB3ZSBkb24ndCBjdXJyZW50bHkgcGVyZm9ybSBh
bnkgdXNlci1zcGFjZSBidWZmZXJpbmcgb2YgZGF0YQorICAgIH12YXIgRlM9e3Jvb3Q6bnVsbCxu
b2RlczpbbnVsbF0sZGV2aWNlczpbbnVsbF0sc3RyZWFtczpbbnVsbF0sbmV4dElub2RlOjEsbmFt
ZV90YWJsZTpudWxsLGN1cnJlbnRQYXRoOiIvIixpbml0aWFsaXplZDpmYWxzZSxpZ25vcmVQZXJt
aXNzaW9uczp0cnVlLEVycm5vRXJyb3I6ZnVuY3Rpb24gRXJybm9FcnJvcihlcnJubykgeworICAg
ICAgICAgIHRoaXMuZXJybm8gPSBlcnJubzsKKyAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gRVJS
Tk9fQ09ERVMpIHsKKyAgICAgICAgICAgIGlmIChFUlJOT19DT0RFU1trZXldID09PSBlcnJubykg
eworICAgICAgICAgICAgICB0aGlzLmNvZGUgPSBrZXk7CisgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBFUlJO
T19NRVNTQUdFU1tlcnJub107CisgICAgICAgIH0saGFuZGxlRlNFcnJvcjpmdW5jdGlvbiAoZSkg
eworICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIHRocm93IGUgKyAn
IDogJyArIG5ldyBFcnJvcigpLnN0YWNrOworICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oZS5l
cnJubyk7CisgICAgICB9LGhhc2hOYW1lOmZ1bmN0aW9uIChwYXJlbnRpZCwgbmFtZSkgeworICAg
ICAgICB2YXIgaGFzaCA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5n
dGg7IGkrKykgeworICAgICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoICsgbmFtZS5j
aGFyQ29kZUF0KGkpKSB8IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICgocGFyZW50aWQg
KyBoYXNoKSA+Pj4gMCkgJSBGUy5uYW1lX3RhYmxlLmxlbmd0aDsKKyAgICAgIH0saGFzaEFkZE5v
ZGU6ZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShub2Rl
LnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKKyAgICAgICAgbm9kZS5uYW1lX25leHQgPSBGUy5uYW1l
X3RhYmxlW2hhc2hdOworICAgICAgICBGUy5uYW1lX3RhYmxlW2hhc2hdID0gbm9kZTsKKyAgICAg
IH0saGFzaFJlbW92ZU5vZGU6ZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgdmFyIGhhc2ggPSBG
Uy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKKyAgICAgICAgaWYgKEZTLm5h
bWVfdGFibGVbaGFzaF0gPT09IG5vZGUpIHsKKyAgICAgICAgICBGUy5uYW1lX3RhYmxlW2hhc2hd
ID0gbm9kZS5uYW1lX25leHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdmFyIGN1cnJl
bnQgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOworICAgICAgICAgIHdoaWxlIChjdXJyZW50KSB7Cisg
ICAgICAgICAgICBpZiAoY3VycmVudC5uYW1lX25leHQgPT09IG5vZGUpIHsKKyAgICAgICAgICAg
ICAgY3VycmVudC5uYW1lX25leHQgPSBub2RlLm5hbWVfbmV4dDsKKyAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uYW1lX25l
eHQ7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9LGxvb2t1cE5vZGU6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSkgeworICAgICAgICB2YXIgZXJyID0gRlMubWF5TG9va3VwKHBhcmVudCk7
CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihl
cnIpOworICAgICAgICB9CisgICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUocGFyZW50Lmlk
LCBuYW1lKTsKKyAgICAgICAgZm9yICh2YXIgbm9kZSA9IEZTLm5hbWVfdGFibGVbaGFzaF07IG5v
ZGU7IG5vZGUgPSBub2RlLm5hbWVfbmV4dCkgeworICAgICAgICAgIGlmIChub2RlLnBhcmVudC5p
ZCA9PT0gcGFyZW50LmlkICYmIG5vZGUubmFtZSA9PT0gbmFtZSkgeworICAgICAgICAgICAgcmV0
dXJuIG5vZGU7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGlmIHdlIGZhaWxl
ZCB0byBmaW5kIGl0IGluIHRoZSBjYWNoZSwgY2FsbCBpbnRvIHRoZSBWRlMKKyAgICAgICAgcmV0
dXJuIEZTLmxvb2t1cChwYXJlbnQsIG5hbWUpOworICAgICAgfSxjcmVhdGVOb2RlOmZ1bmN0aW9u
IChwYXJlbnQsIG5hbWUsIG1vZGUsIHJkZXYpIHsKKyAgICAgICAgdmFyIG5vZGUgPSB7CisgICAg
ICAgICAgaWQ6IEZTLm5leHRJbm9kZSsrLAorICAgICAgICAgIG5hbWU6IG5hbWUsCisgICAgICAg
ICAgbW9kZTogbW9kZSwKKyAgICAgICAgICBub2RlX29wczoge30sCisgICAgICAgICAgc3RyZWFt
X29wczoge30sCisgICAgICAgICAgcmRldjogcmRldiwKKyAgICAgICAgICBwYXJlbnQ6IG51bGws
CisgICAgICAgICAgbW91bnQ6IG51bGwKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKCFwYXJlbnQp
IHsKKyAgICAgICAgICBwYXJlbnQgPSBub2RlOyAgLy8gcm9vdCBub2RlIHNldHMgcGFyZW50IHRv
IGl0c2VsZgorICAgICAgICB9CisgICAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50OworICAgICAg
ICBub2RlLm1vdW50ID0gcGFyZW50Lm1vdW50OworICAgICAgICAvLyBjb21wYXRpYmlsaXR5Cisg
ICAgICAgIHZhciByZWFkTW9kZSA9IDI5MiB8IDczOworICAgICAgICB2YXIgd3JpdGVNb2RlID0g
MTQ2OworICAgICAgICAvLyBOT1RFIHdlIG11c3QgdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVz
IGluc3RlYWQgb2YgaW5kaXZpZHVhbCBjYWxscyB0bworICAgICAgICAvLyBPYmplY3QuZGVmaW5l
UHJvcGVydHkgaW4gb3JkZXIgdG8gbWFrZSBjbG9zdXJlIGNvbXBpbGVyIGhhcHB5CisgICAgICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5vZGUsIHsKKyAgICAgICAgICByZWFkOiB7CisgICAg
ICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKG5vZGUubW9kZSAmIHJlYWRNb2RlKSA9
PT0gcmVhZE1vZGU7IH0sCisgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyB2YWwgPyBu
b2RlLm1vZGUgfD0gcmVhZE1vZGUgOiBub2RlLm1vZGUgJj0gfnJlYWRNb2RlOyB9CisgICAgICAg
ICAgfSwKKyAgICAgICAgICB3cml0ZTogeworICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIChub2RlLm1vZGUgJiB3cml0ZU1vZGUpID09PSB3cml0ZU1vZGU7IH0sCisgICAgICAg
ICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyB2YWwgPyBub2RlLm1vZGUgfD0gd3JpdGVNb2RlIDog
bm9kZS5tb2RlICY9IH53cml0ZU1vZGU7IH0KKyAgICAgICAgICB9LAorICAgICAgICAgIGlzRm9s
ZGVyOiB7CisgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gRlMuaXNEaXIobm9k
ZS5tb2RlKTsgfSwKKyAgICAgICAgICB9LAorICAgICAgICAgIGlzRGV2aWNlOiB7CisgICAgICAg
ICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gRlMuaXNDaHJkZXYobm9kZS5tb2RlKTsgfSwK
KyAgICAgICAgICB9LAorICAgICAgICB9KTsKKyAgICAgICAgRlMuaGFzaEFkZE5vZGUobm9kZSk7
CisgICAgICAgIHJldHVybiBub2RlOworICAgICAgfSxkZXN0cm95Tm9kZTpmdW5jdGlvbiAobm9k
ZSkgeworICAgICAgICBGUy5oYXNoUmVtb3ZlTm9kZShub2RlKTsKKyAgICAgIH0saXNSb290OmZ1
bmN0aW9uIChub2RlKSB7CisgICAgICAgIHJldHVybiBub2RlID09PSBub2RlLnBhcmVudDsKKyAg
ICAgIH0saXNNb3VudHBvaW50OmZ1bmN0aW9uIChub2RlKSB7CisgICAgICAgIHJldHVybiBub2Rl
Lm1vdW50ZWQ7CisgICAgICB9LGlzRmlsZTpmdW5jdGlvbiAobW9kZSkgeworICAgICAgICByZXR1
cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDEwMDAwMDsKKyAgICAgIH0saXNEaXI6ZnVuY3Rpb24g
KG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwNDAwMDA7Cisg
ICAgICB9LGlzTGluazpmdW5jdGlvbiAobW9kZSkgeworICAgICAgICByZXR1cm4gKG1vZGUgJiAw
MTcwMDAwKSA9PT0gMDEyMDAwMDsKKyAgICAgIH0saXNDaHJkZXY6ZnVuY3Rpb24gKG1vZGUpIHsK
KyAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwMjAwMDA7CisgICAgICB9LGlz
QmxrZGV2OmZ1bmN0aW9uIChtb2RlKSB7CisgICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDAp
ID09PSAwMDYwMDAwOworICAgICAgfSxpc0ZJRk86ZnVuY3Rpb24gKG1vZGUpIHsKKyAgICAgICAg
cmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwMTAwMDA7CisgICAgICB9LGN3ZDpmdW5jdGlv
biAoKSB7CisgICAgICAgIHJldHVybiBGUy5jdXJyZW50UGF0aDsKKyAgICAgIH0sbG9va3VwUGF0
aDpmdW5jdGlvbiAocGF0aCwgb3B0cykgeworICAgICAgICBwYXRoID0gUEFUSC5yZXNvbHZlKEZT
LmN1cnJlbnRQYXRoLCBwYXRoKTsKKyAgICAgICAgb3B0cyA9IG9wdHMgfHwgeyByZWN1cnNlX2Nv
dW50OiAwIH07CisgICAgICAgIGlmIChvcHRzLnJlY3Vyc2VfY291bnQgPiA4KSB7ICAvLyBtYXgg
cmVjdXJzaXZlIGxvb2t1cCBvZiA4CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRUxPT1ApOworICAgICAgICB9CisgICAgICAgIC8vIHNwbGl0IHRoZSBwYXRo
CisgICAgICAgIHZhciBwYXJ0cyA9IFBBVEgubm9ybWFsaXplQXJyYXkocGF0aC5zcGxpdCgnLycp
LmZpbHRlcihmdW5jdGlvbihwKSB7CisgICAgICAgICAgcmV0dXJuICEhcDsKKyAgICAgICAgfSks
IGZhbHNlKTsKKyAgICAgICAgLy8gc3RhcnQgYXQgdGhlIHJvb3QKKyAgICAgICAgdmFyIGN1cnJl
bnQgPSBGUy5yb290OworICAgICAgICB2YXIgY3VycmVudF9wYXRoID0gJy8nOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIGlz
bGFzdCA9IChpID09PSBwYXJ0cy5sZW5ndGgtMSk7CisgICAgICAgICAgaWYgKGlzbGFzdCAmJiBv
cHRzLnBhcmVudCkgeworICAgICAgICAgICAgLy8gc3RvcCByZXNvbHZpbmcKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgICBjdXJyZW50ID0gRlMubG9va3VwTm9kZShj
dXJyZW50LCBwYXJ0c1tpXSk7CisgICAgICAgICAgY3VycmVudF9wYXRoID0gUEFUSC5qb2luKGN1
cnJlbnRfcGF0aCwgcGFydHNbaV0pOworICAgICAgICAgIC8vIGp1bXAgdG8gdGhlIG1vdW50J3Mg
cm9vdCBub2RlIGlmIHRoaXMgaXMgYSBtb3VudHBvaW50CisgICAgICAgICAgaWYgKEZTLmlzTW91
bnRwb2ludChjdXJyZW50KSkgeworICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubW91bnQu
cm9vdDsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gZm9sbG93IHN5bWxpbmtzCisgICAgICAg
ICAgLy8gYnkgZGVmYXVsdCwgbG9va3VwUGF0aCB3aWxsIG5vdCBmb2xsb3cgYSBzeW1saW5rIGlm
IGl0IGlzIHRoZSBmaW5hbCBwYXRoIGNvbXBvbmVudC4KKyAgICAgICAgICAvLyBzZXR0aW5nIG9w
dHMuZm9sbG93ID0gdHJ1ZSB3aWxsIG92ZXJyaWRlIHRoaXMgYmVoYXZpb3IuCisgICAgICAgICAg
aWYgKCFpc2xhc3QgfHwgb3B0cy5mb2xsb3cpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7
CisgICAgICAgICAgICB3aGlsZSAoRlMuaXNMaW5rKGN1cnJlbnQubW9kZSkpIHsKKyAgICAgICAg
ICAgICAgdmFyIGxpbmsgPSBGUy5yZWFkbGluayhjdXJyZW50X3BhdGgpOworICAgICAgICAgICAg
ICBjdXJyZW50X3BhdGggPSBQQVRILnJlc29sdmUoUEFUSC5kaXJuYW1lKGN1cnJlbnRfcGF0aCks
IGxpbmspOworICAgICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChjdXJyZW50
X3BhdGgsIHsgcmVjdXJzZV9jb3VudDogb3B0cy5yZWN1cnNlX2NvdW50IH0pOworICAgICAgICAg
ICAgICBjdXJyZW50ID0gbG9va3VwLm5vZGU7CisgICAgICAgICAgICAgIGlmIChjb3VudCsrID4g
NDApIHsgIC8vIGxpbWl0IG1heCBjb25zZWN1dGl2ZSBzeW1saW5rcyB0byA0MCAoU1lNTE9PUF9N
QVgpLgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVMT09QKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4geyBwYXRoOiBjdXJyZW50X3BhdGgsIG5vZGU6IGN1cnJl
bnQgfTsKKyAgICAgIH0sZ2V0UGF0aDpmdW5jdGlvbiAobm9kZSkgeworICAgICAgICB2YXIgcGF0
aDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICBpZiAoRlMuaXNSb290KG5vZGUp
KSB7CisgICAgICAgICAgICByZXR1cm4gcGF0aCA/IFBBVEguam9pbihub2RlLm1vdW50Lm1vdW50
cG9pbnQsIHBhdGgpIDogbm9kZS5tb3VudC5tb3VudHBvaW50OworICAgICAgICAgIH0KKyAgICAg
ICAgICBwYXRoID0gcGF0aCA/IFBBVEguam9pbihub2RlLm5hbWUsIHBhdGgpIDogbm9kZS5uYW1l
OworICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudDsKKyAgICAgICAgfQorICAgICAgfSxmbGFn
TW9kZXM6eyJyIjowLCJycyI6ODE5MiwicisiOjIsInciOjE1MzcsInd4IjozNTg1LCJ4dyI6MzU4
NSwidysiOjE1MzgsInd4KyI6MzU4NiwieHcrIjozNTg2LCJhIjo1MjEsImF4IjoyNTY5LCJ4YSI6
MjU2OSwiYSsiOjUyMiwiYXgrIjoyNTcwLCJ4YSsiOjI1NzB9LG1vZGVTdHJpbmdUb0ZsYWdzOmZ1
bmN0aW9uIChzdHIpIHsKKyAgICAgICAgdmFyIGZsYWdzID0gRlMuZmxhZ01vZGVzW3N0cl07Cisg
ICAgICAgIGlmICh0eXBlb2YgZmxhZ3MgPT09ICd1bmRlZmluZWQnKSB7CisgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCdVbmtub3duIGZpbGUgb3BlbiBtb2RlOiAnICsgc3RyKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gZmxhZ3M7CisgICAgICB9LGZsYWdzVG9QZXJtaXNzaW9uU3RyaW5n
OmZ1bmN0aW9uIChmbGFnKSB7CisgICAgICAgIHZhciBhY2Ntb2RlID0gZmxhZyAmIDM7CisgICAg
ICAgIHZhciBwZXJtcyA9IFsncicsICd3JywgJ3J3J11bYWNjbW9kZV07CisgICAgICAgIGlmICgo
ZmxhZyAmIDEwMjQpKSB7CisgICAgICAgICAgcGVybXMgKz0gJ3cnOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBwZXJtczsKKyAgICAgIH0sbm9kZVBlcm1pc3Npb25zOmZ1bmN0aW9uIChub2Rl
LCBwZXJtcykgeworICAgICAgICBpZiAoRlMuaWdub3JlUGVybWlzc2lvbnMpIHsKKyAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvLyByZXR1cm4gMCBpZiBhbnkgdXNlciwg
Z3JvdXAgb3Igb3duZXIgYml0cyBhcmUgc2V0LgorICAgICAgICBpZiAocGVybXMuaW5kZXhPZign
cicpICE9PSAtMSAmJiAhKG5vZGUubW9kZSAmIDI5MikpIHsKKyAgICAgICAgICByZXR1cm4gRVJS
Tk9fQ09ERVMuRUFDQ0VTOworICAgICAgICB9IGVsc2UgaWYgKHBlcm1zLmluZGV4T2YoJ3cnKSAh
PT0gLTEgJiYgIShub2RlLm1vZGUgJiAxNDYpKSB7CisgICAgICAgICAgcmV0dXJuIEVSUk5PX0NP
REVTLkVBQ0NFUzsKKyAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd4JykgIT09IC0x
ICYmICEobm9kZS5tb2RlICYgNzMpKSB7CisgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVB
Q0NFUzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICAgIH0sbWF5TG9va3VwOmZ1
bmN0aW9uIChkaXIpIHsKKyAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICd4
Jyk7CisgICAgICB9LG1heU1rbm9kOmZ1bmN0aW9uIChtb2RlKSB7CisgICAgICAgIHN3aXRjaCAo
bW9kZSAmIDAxNzAwMDApIHsKKyAgICAgICAgICBjYXNlIDAxMDAwMDA6CisgICAgICAgICAgY2Fz
ZSAwMDIwMDAwOgorICAgICAgICAgIGNhc2UgMDA2MDAwMDoKKyAgICAgICAgICBjYXNlIDAwMTAw
MDA6CisgICAgICAgICAgY2FzZSAwMTQwMDAwOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSU5WQUw7Cisg
ICAgICAgIH0KKyAgICAgIH0sbWF5Q3JlYXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUpIHsKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUoZGlyLCBuYW1lKTsK
KyAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUVYSVNUOworICAgICAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICd3
eCcpOworICAgICAgfSxtYXlEZWxldGU6ZnVuY3Rpb24gKGRpciwgbmFtZSwgaXNkaXIpIHsKKyAg
ICAgICAgdmFyIG5vZGU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgbm9kZSA9IEZTLmxvb2t1
cE5vZGUoZGlyLCBuYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIHJldHVy
biBlLmVycm5vOworICAgICAgICB9CisgICAgICAgIHZhciBlcnIgPSBGUy5ub2RlUGVybWlzc2lv
bnMoZGlyLCAnd3gnKTsKKyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgIHJldHVybiBlcnI7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzZGlyKSB7CisgICAgICAgICAgaWYgKCFGUy5pc0Rp
cihub2RlLm1vZGUpKSB7CisgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PVERJUjsK
KyAgICAgICAgICB9CisgICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSB8fCBGUy5nZXRQYXRo
KG5vZGUpID09PSBGUy5jdXJyZW50UGF0aCkgeworICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NP
REVTLkVCVVNZOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBpZiAo
RlMuaXNEaXIobm9kZS5tb2RlKSkgeworICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJ
U0RJUjsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgICB9
LG1heU9wZW46ZnVuY3Rpb24gKG5vZGUsIGZsYWdzKSB7CisgICAgICAgIGlmICghbm9kZSkgewor
ICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FTk9FTlQ7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7CisgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVT
LkVMT09QOworICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKKyAgICAg
ICAgICBpZiAoKGZsYWdzICYgMykgIT09IDAgfHwgIC8vIG9wZW5pbmcgZm9yIHdyaXRlCisgICAg
ICAgICAgICAgIChmbGFncyAmIDEwMjQpKSB7CisgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09E
RVMuRUlTRElSOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRlMubm9k
ZVBlcm1pc3Npb25zKG5vZGUsIEZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGZsYWdzKSk7Cisg
ICAgICB9LGNocmRldl9zdHJlYW1fb3BzOntvcGVuOmZ1bmN0aW9uIChzdHJlYW0pIHsKKyAgICAg
ICAgICB2YXIgZGV2aWNlID0gRlMuZ2V0RGV2aWNlKHN0cmVhbS5ub2RlLnJkZXYpOworICAgICAg
ICAgIC8vIG92ZXJyaWRlIG5vZGUncyBzdHJlYW0gb3BzIHdpdGggdGhlIGRldmljZSdzCisgICAg
ICAgICAgc3RyZWFtLnN0cmVhbV9vcHMgPSBkZXZpY2Uuc3RyZWFtX29wczsKKyAgICAgICAgICAv
LyBmb3J3YXJkIHRoZSBvcGVuIGNhbGwKKyAgICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMu
b3BlbikgeworICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pOworICAg
ICAgICAgIH0KKyAgICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKCkgeworICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7CisgICAgICAgIH19LG1ham9y
OmZ1bmN0aW9uIChkZXYpIHsKKyAgICAgICAgcmV0dXJuICgoZGV2KSA+PiA4KTsKKyAgICAgIH0s
bWlub3I6ZnVuY3Rpb24gKGRldikgeworICAgICAgICByZXR1cm4gKChkZXYpICYgMHhmZik7Cisg
ICAgICB9LG1ha2VkZXY6ZnVuY3Rpb24gKG1hLCBtaSkgeworICAgICAgICByZXR1cm4gKChtYSkg
PDwgOCB8IChtaSkpOworICAgICAgfSxyZWdpc3RlckRldmljZTpmdW5jdGlvbiAoZGV2LCBvcHMp
IHsKKyAgICAgICAgRlMuZGV2aWNlc1tkZXZdID0geyBzdHJlYW1fb3BzOiBvcHMgfTsKKyAgICAg
IH0sZ2V0RGV2aWNlOmZ1bmN0aW9uIChkZXYpIHsKKyAgICAgICAgcmV0dXJuIEZTLmRldmljZXNb
ZGV2XTsKKyAgICAgIH0sTUFYX09QRU5fRkRTOjQwOTYsbmV4dGZkOmZ1bmN0aW9uIChmZF9zdGFy
dCwgZmRfZW5kKSB7CisgICAgICAgIGZkX3N0YXJ0ID0gZmRfc3RhcnQgfHwgMTsKKyAgICAgICAg
ZmRfZW5kID0gZmRfZW5kIHx8IEZTLk1BWF9PUEVOX0ZEUzsKKyAgICAgICAgZm9yICh2YXIgZmQg
PSBmZF9zdGFydDsgZmQgPD0gZmRfZW5kOyBmZCsrKSB7CisgICAgICAgICAgaWYgKCFGUy5zdHJl
YW1zW2ZkXSkgeworICAgICAgICAgICAgcmV0dXJuIGZkOworICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTUZJTEUpOwor
ICAgICAgfSxnZXRTdHJlYW06ZnVuY3Rpb24gKGZkKSB7CisgICAgICAgIHJldHVybiBGUy5zdHJl
YW1zW2ZkXTsKKyAgICAgIH0sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uIChzdHJlYW0sIGZkX3N0YXJ0
LCBmZF9lbmQpIHsKKyAgICAgICAgdmFyIGZkID0gRlMubmV4dGZkKGZkX3N0YXJ0LCBmZF9lbmQp
OworICAgICAgICBzdHJlYW0uZmQgPSBmZDsKKyAgICAgICAgLy8gY29tcGF0aWJpbGl0eQorICAg
ICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzdHJlYW0sIHsKKyAgICAgICAgICBvYmplY3Q6
IHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBzdHJlYW0ubm9kZTsgfSwK
KyAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsKSB7IHN0cmVhbS5ub2RlID0gdmFsOyB9Cisg
ICAgICAgICAgfSwKKyAgICAgICAgICBpc1JlYWQ6IHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rp
b24oKSB7IHJldHVybiAoc3RyZWFtLmZsYWdzICYgMykgIT09IDE7IH0KKyAgICAgICAgICB9LAor
ICAgICAgICAgIGlzV3JpdGU6IHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVy
biAoc3RyZWFtLmZsYWdzICYgMykgIT09IDA7IH0KKyAgICAgICAgICB9LAorICAgICAgICAgIGlz
QXBwZW5kOiB7CisgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKHN0cmVhbS5m
bGFncyAmIDgpOyB9CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgRlMuc3RyZWFt
c1tmZF0gPSBzdHJlYW07CisgICAgICAgIHJldHVybiBzdHJlYW07CisgICAgICB9LGNsb3NlU3Ry
ZWFtOmZ1bmN0aW9uIChmZCkgeworICAgICAgICBGUy5zdHJlYW1zW2ZkXSA9IG51bGw7CisgICAg
ICB9LGdldE1vZGU6ZnVuY3Rpb24gKGNhblJlYWQsIGNhbldyaXRlKSB7CisgICAgICAgIHZhciBt
b2RlID0gMDsKKyAgICAgICAgaWYgKGNhblJlYWQpIG1vZGUgfD0gMjkyIHwgNzM7CisgICAgICAg
IGlmIChjYW5Xcml0ZSkgbW9kZSB8PSAxNDY7CisgICAgICAgIHJldHVybiBtb2RlOworICAgICAg
fSxqb2luUGF0aDpmdW5jdGlvbiAocGFydHMsIGZvcmNlUmVsYXRpdmUpIHsKKyAgICAgICAgdmFy
IHBhdGggPSBQQVRILmpvaW4uYXBwbHkobnVsbCwgcGFydHMpOworICAgICAgICBpZiAoZm9yY2VS
ZWxhdGl2ZSAmJiBwYXRoWzBdID09ICcvJykgcGF0aCA9IHBhdGguc3Vic3RyKDEpOworICAgICAg
ICByZXR1cm4gcGF0aDsKKyAgICAgIH0sYWJzb2x1dGVQYXRoOmZ1bmN0aW9uIChyZWxhdGl2ZSwg
YmFzZSkgeworICAgICAgICByZXR1cm4gUEFUSC5yZXNvbHZlKGJhc2UsIHJlbGF0aXZlKTsKKyAg
ICAgIH0sc3RhbmRhcmRpemVQYXRoOmZ1bmN0aW9uIChwYXRoKSB7CisgICAgICAgIHJldHVybiBQ
QVRILm5vcm1hbGl6ZShwYXRoKTsKKyAgICAgIH0sZmluZE9iamVjdDpmdW5jdGlvbiAocGF0aCwg
ZG9udFJlc29sdmVMYXN0TGluaykgeworICAgICAgICB2YXIgcmV0ID0gRlMuYW5hbHl6ZVBhdGgo
cGF0aCwgZG9udFJlc29sdmVMYXN0TGluayk7CisgICAgICAgIGlmIChyZXQuZXhpc3RzKSB7Cisg
ICAgICAgICAgcmV0dXJuIHJldC5vYmplY3Q7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
X19fc2V0RXJyTm8ocmV0LmVycm9yKTsKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAg
fQorICAgICAgfSxhbmFseXplUGF0aDpmdW5jdGlvbiAocGF0aCwgZG9udFJlc29sdmVMYXN0TGlu
aykgeworICAgICAgICAvLyBvcGVyYXRlIGZyb20gd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBz
eW1saW5rJ3MgdGFyZ2V0CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOworICAg
ICAgICAgIHBhdGggPSBsb29rdXAucGF0aDsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICB9CisgICAgICAgIHZhciByZXQgPSB7CisgICAgICAgICAgaXNSb290OiBmYWxzZSwgZXhpc3Rz
OiBmYWxzZSwgZXJyb3I6IDAsIG5hbWU6IG51bGwsIHBhdGg6IG51bGwsIG9iamVjdDogbnVsbCwK
KyAgICAgICAgICBwYXJlbnRFeGlzdHM6IGZhbHNlLCBwYXJlbnRQYXRoOiBudWxsLCBwYXJlbnRP
YmplY3Q6IG51bGwKKyAgICAgICAgfTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKKyAgICAgICAgICBy
ZXQucGFyZW50RXhpc3RzID0gdHJ1ZTsKKyAgICAgICAgICByZXQucGFyZW50UGF0aCA9IGxvb2t1
cC5wYXRoOworICAgICAgICAgIHJldC5wYXJlbnRPYmplY3QgPSBsb29rdXAubm9kZTsKKyAgICAg
ICAgICByZXQubmFtZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7CisgICAgICAgICAgbG9va3VwID0g
RlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRSZXNvbHZlTGFzdExpbmsgfSk7Cisg
ICAgICAgICAgcmV0LmV4aXN0cyA9IHRydWU7CisgICAgICAgICAgcmV0LnBhdGggPSBsb29rdXAu
cGF0aDsKKyAgICAgICAgICByZXQub2JqZWN0ID0gbG9va3VwLm5vZGU7CisgICAgICAgICAgcmV0
Lm5hbWUgPSBsb29rdXAubm9kZS5uYW1lOworICAgICAgICAgIHJldC5pc1Jvb3QgPSBsb29rdXAu
cGF0aCA9PT0gJy8nOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgcmV0LmVycm9y
ID0gZS5lcnJubzsKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgIH0sY3Jl
YXRlRm9sZGVyOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGNhblJlYWQsIGNhbldyaXRlKSB7Cisg
ICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8g
cGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKKyAgICAgICAgdmFyIG1vZGUgPSBG
Uy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKKyAgICAgICAgcmV0dXJuIEZTLm1rZGlyKHBh
dGgsIG1vZGUpOworICAgICAgfSxjcmVhdGVQYXRoOmZ1bmN0aW9uIChwYXJlbnQsIHBhdGgsIGNh
blJlYWQsIGNhbldyaXRlKSB7CisgICAgICAgIHBhcmVudCA9IHR5cGVvZiBwYXJlbnQgPT09ICdz
dHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpOworICAgICAgICB2YXIgcGFydHMg
PSBwYXRoLnNwbGl0KCcvJykucmV2ZXJzZSgpOworICAgICAgICB3aGlsZSAocGFydHMubGVuZ3Ro
KSB7CisgICAgICAgICAgdmFyIHBhcnQgPSBwYXJ0cy5wb3AoKTsKKyAgICAgICAgICBpZiAoIXBh
cnQpIGNvbnRpbnVlOworICAgICAgICAgIHZhciBjdXJyZW50ID0gUEFUSC5qb2luKHBhcmVudCwg
cGFydCk7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZTLm1rZGlyKGN1cnJlbnQsIDA3
NzcpOworICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIC8vIGlnbm9yZSBFRVhJ
U1QKKyAgICAgICAgICB9CisgICAgICAgICAgcGFyZW50ID0gY3VycmVudDsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gY3VycmVudDsKKyAgICAgIH0sY3JlYXRlRmlsZTpmdW5jdGlvbiAocGFy
ZW50LCBuYW1lLCBwcm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSkgeworICAgICAgICB2YXIg
cGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZT
LmdldFBhdGgocGFyZW50KSwgbmFtZSk7CisgICAgICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShj
YW5SZWFkLCBjYW5Xcml0ZSk7CisgICAgICAgIHJldHVybiBGUy5jcmVhdGUocGF0aCwgbW9kZSk7
CisgICAgICB9LGNyZWF0ZURhdGFGaWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGRhdGEsIGNh
blJlYWQsIGNhbldyaXRlKSB7CisgICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBw
YXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsK
KyAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKKyAgICAg
ICAgdmFyIG5vZGUgPSBGUy5jcmVhdGUocGF0aCwgbW9kZSk7CisgICAgICAgIGlmIChkYXRhKSB7
CisgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgeworICAgICAgICAgICAg
dmFyIGFyciA9IG5ldyBBcnJheShkYXRhLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMCwgbGVuID0gZGF0YS5sZW5ndGg7IGkgPCBsZW47ICsraSkgYXJyW2ldID0gZGF0YS5jaGFy
Q29kZUF0KGkpOworICAgICAgICAgICAgZGF0YSA9IGFycjsKKyAgICAgICAgICB9CisgICAgICAg
ICAgLy8gbWFrZSBzdXJlIHdlIGNhbiB3cml0ZSB0byB0aGUgZmlsZQorICAgICAgICAgIEZTLmNo
bW9kKHBhdGgsIG1vZGUgfCAxNDYpOworICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5vcGVuKHBh
dGgsICd3Jyk7CisgICAgICAgICAgRlMud3JpdGUoc3RyZWFtLCBkYXRhLCAwLCBkYXRhLmxlbmd0
aCwgMCk7CisgICAgICAgICAgRlMuY2xvc2Uoc3RyZWFtKTsKKyAgICAgICAgICBGUy5jaG1vZChw
YXRoLCBtb2RlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgIH0sY3Jl
YXRlRGV2aWNlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGlucHV0LCBvdXRwdXQpIHsKKyAgICAg
ICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJl
bnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOworICAgICAgICB2YXIgbW9kZSA9IGlucHV0
ICYmIG91dHB1dCA/IDA3NzcgOiAoaW5wdXQgPyAwMzMzIDogMDU1NSk7CisgICAgICAgIGlmICgh
RlMuY3JlYXRlRGV2aWNlLm1ham9yKSBGUy5jcmVhdGVEZXZpY2UubWFqb3IgPSA2NDsKKyAgICAg
ICAgdmFyIGRldiA9IEZTLm1ha2VkZXYoRlMuY3JlYXRlRGV2aWNlLm1ham9yKyssIDApOworICAg
ICAgICAvLyBDcmVhdGUgYSBmYWtlIGRldmljZSB0aGF0IGEgc2V0IG9mIHN0cmVhbSBvcHMgdG8g
ZW11bGF0ZQorICAgICAgICAvLyB0aGUgb2xkIGJlaGF2aW9yLgorICAgICAgICBGUy5yZWdpc3Rl
ckRldmljZShkZXYsIHsKKyAgICAgICAgICBvcGVuOiBmdW5jdGlvbihzdHJlYW0pIHsKKyAgICAg
ICAgICAgIHN0cmVhbS5zZWVrYWJsZSA9IGZhbHNlOworICAgICAgICAgIH0sCisgICAgICAgICAg
Y2xvc2U6IGZ1bmN0aW9uKHN0cmVhbSkgeworICAgICAgICAgICAgLy8gZmx1c2ggYW55IHBlbmRp
bmcgbGluZSBkYXRhCisgICAgICAgICAgICBpZiAob3V0cHV0ICYmIG91dHB1dC5idWZmZXIgJiYg
b3V0cHV0LmJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgb3V0cHV0KDEwKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICB9LAorICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKHN0cmVhbSwg
YnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zIC8qIGlnbm9yZWQgKi8pIHsKKyAgICAgICAgICAg
IHZhciBieXRlc1JlYWQgPSAwOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5n
dGg7IGkrKykgeworICAgICAgICAgICAgICB2YXIgcmVzdWx0OworICAgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlucHV0KCk7CisgICAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU8pOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09
IHVuZGVmaW5lZCAmJiBieXRlc1JlYWQgPT09IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQp
IGJyZWFrOworICAgICAgICAgICAgICBieXRlc1JlYWQrKzsKKyAgICAgICAgICAgICAgYnVmZmVy
W29mZnNldCtpXSA9IHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChieXRl
c1JlYWQpIHsKKyAgICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3co
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBieXRlc1JlYWQ7CisgICAgICAg
ICAgfSwKKyAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwg
bGVuZ3RoLCBwb3MpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvdXRwdXQoYnVmZmVy
W29mZnNldCtpXSk7CisgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOworICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVuZ3RoKSB7CisgICAgICAgICAg
ICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBy
ZXR1cm4gRlMubWtkZXYocGF0aCwgbW9kZSwgZGV2KTsKKyAgICAgIH0sY3JlYXRlTGluazpmdW5j
dGlvbiAocGFyZW50LCBuYW1lLCB0YXJnZXQsIGNhblJlYWQsIGNhbldyaXRlKSB7CisgICAgICAg
IHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50
IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKKyAgICAgICAgcmV0dXJuIEZTLnN5bWxpbmso
dGFyZ2V0LCBwYXRoKTsKKyAgICAgIH0sZm9yY2VMb2FkRmlsZTpmdW5jdGlvbiAob2JqKSB7Cisg
ICAgICAgIGlmIChvYmouaXNEZXZpY2UgfHwgb2JqLmlzRm9sZGVyIHx8IG9iai5saW5rIHx8IG9i
ai5jb250ZW50cykgcmV0dXJuIHRydWU7CisgICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKKyAg
ICAgICAgaWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkxhenkgbG9hZGluZyBzaG91bGQgaGF2ZSBiZWVuIHBlcmZv
cm1lZCAoY29udGVudHMgc2V0KSBpbiBjcmVhdGVMYXp5RmlsZSwgYnV0IGl0IHdhcyBub3QuIExh
enkgbG9hZGluZyBvbmx5IHdvcmtzIGluIHdlYiB3b3JrZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9y
IC0tcHJlbG9hZC1maWxlIGluIGVtY2Mgb24gdGhlIG1haW4gdGhyZWFkLiIpOworICAgICAgICB9
IGVsc2UgaWYgKE1vZHVsZVsncmVhZCddKSB7CisgICAgICAgICAgLy8gQ29tbWFuZC1saW5lLgor
ICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBXQVJOSU5HOiBDYW4ndCByZWFkIGJpbmFy
eSBmaWxlcyBpbiBWOCdzIGQ4IG9yIHRyYWNlbW9ua2V5J3MganMsIGFzCisgICAgICAgICAgICAv
LyAgICAgICAgICByZWFkKCkgd2lsbCB0cnkgdG8gcGFyc2UgVVRGOC4KKyAgICAgICAgICAgIG9i
ai5jb250ZW50cyA9IGludEFycmF5RnJvbVN0cmluZyhNb2R1bGVbJ3JlYWQnXShvYmoudXJsKSwg
dHJ1ZSk7CisgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgc3VjY2VzcyA9IGZh
bHNlOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ0Nhbm5vdCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0dHBSZXF1ZXN0LicpOwor
ICAgICAgICB9CisgICAgICAgIGlmICghc3VjY2VzcykgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMu
RUlPKTsKKyAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CisgICAgICB9LGNyZWF0ZUxhenlGaWxlOmZ1
bmN0aW9uIChwYXJlbnQsIG5hbWUsIHVybCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKKyAgICAgICAg
aWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAgICAgICBp
ZiAoIUVOVklST05NRU5UX0lTX1dPUktFUikgdGhyb3cgJ0Nhbm5vdCBkbyBzeW5jaHJvbm91cyBi
aW5hcnkgWEhScyBvdXRzaWRlIHdlYndvcmtlcnMgaW4gbW9kZXJuIGJyb3dzZXJzLiBVc2UgLS1l
bWJlZC1maWxlIG9yIC0tcHJlbG9hZC1maWxlIGluIGVtY2MnOworICAgICAgICAgIC8vIExhenkg
Y2h1bmtlZCBVaW50OEFycmF5IChpbXBsZW1lbnRzIGdldCBhbmQgbGVuZ3RoIGZyb20gVWludDhB
cnJheSkuIEFjdHVhbCBnZXR0aW5nIGlzIGFic3RyYWN0ZWQgYXdheSBmb3IgZXZlbnR1YWwgcmV1
c2UuCisgICAgICAgICAgdmFyIExhenlVaW50OEFycmF5ID0gZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB0aGlzLmxlbmd0aEtub3duID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLmNodW5rcyA9
IFtdOyAvLyBMb2FkZWQgY2h1bmtzLiBJbmRleCBpcyB0aGUgY2h1bmsgbnVtYmVyCisgICAgICAg
ICAgfQorICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihp
ZHgpIHsKKyAgICAgICAgICAgIGlmIChpZHggPiB0aGlzLmxlbmd0aC0xIHx8IGlkeCA8IDApIHsK
KyAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHZhciBjaHVua09mZnNldCA9IGlkeCAlIHRoaXMuY2h1bmtTaXplOworICAgICAgICAgICAg
dmFyIGNodW5rTnVtID0gTWF0aC5mbG9vcihpZHggLyB0aGlzLmNodW5rU2l6ZSk7CisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5nZXR0ZXIoY2h1bmtOdW0pW2NodW5rT2Zmc2V0XTsKKyAgICAgICAg
ICB9CisgICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLnNldERhdGFHZXR0ZXIgPSBm
dW5jdGlvbihnZXR0ZXIpIHsKKyAgICAgICAgICAgIHRoaXMuZ2V0dGVyID0gZ2V0dGVyOworICAg
ICAgICAgIH0KKyAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuY2FjaGVMZW5ndGgg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgLy8gRmluZCBsZW5ndGgKKyAgICAgICAgICAg
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICAgICAgICB4aHIub3Bl
bignSEVBRCcsIHVybCwgZmFsc2UpOworICAgICAgICAgICAgICB4aHIuc2VuZChudWxsKTsKKyAg
ICAgICAgICAgICAgaWYgKCEoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCB8
fCB4aHIuc3RhdHVzID09PSAzMDQpKSB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIiAr
IHVybCArICIuIFN0YXR1czogIiArIHhoci5zdGF0dXMpOworICAgICAgICAgICAgICB2YXIgZGF0
YWxlbmd0aCA9IE51bWJlcih4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIikp
OworICAgICAgICAgICAgICB2YXIgaGVhZGVyOworICAgICAgICAgICAgICB2YXIgaGFzQnl0ZVNl
cnZpbmcgPSAoaGVhZGVyID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCJBY2NlcHQtUmFuZ2VzIikp
ICYmIGhlYWRlciA9PT0gImJ5dGVzIjsKKyAgICAgICAgICAgICAgdmFyIGNodW5rU2l6ZSA9IDEw
MjQqMTAyNDsgLy8gQ2h1bmsgc2l6ZSBpbiBieXRlcworICAgICAgICAgICAgICBpZiAoIWhhc0J5
dGVTZXJ2aW5nKSBjaHVua1NpemUgPSBkYXRhbGVuZ3RoOworICAgICAgICAgICAgICAvLyBGdW5j
dGlvbiB0byBnZXQgYSByYW5nZSBmcm9tIHRoZSByZW1vdGUgVVJMLgorICAgICAgICAgICAgICB2
YXIgZG9YSFIgPSAoZnVuY3Rpb24oZnJvbSwgdG8pIHsKKyAgICAgICAgICAgICAgICBpZiAoZnJv
bSA+IHRvKSB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcmFuZ2UgKCIgKyBmcm9tICsgIiwgIiAr
IHRvICsgIikgb3Igbm8gYnl0ZXMgcmVxdWVzdGVkISIpOworICAgICAgICAgICAgICAgIGlmICh0
byA+IGRhdGFsZW5ndGgtMSkgdGhyb3cgbmV3IEVycm9yKCJvbmx5ICIgKyBkYXRhbGVuZ3RoICsg
IiBieXRlcyBhdmFpbGFibGUhIHByb2dyYW1tZXIgZXJyb3IhIik7CisgICAgICAgICAgICAgICAg
Ly8gVE9ETzogVXNlIG1velJlc3BvbnNlQXJyYXlCdWZmZXIsIHJlc3BvbnNlU3RyZWFtLCBldGMu
IGlmIGF2YWlsYWJsZS4KKyAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7CisgICAgICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOworICAg
ICAgICAgICAgICAgIGlmIChkYXRhbGVuZ3RoICE9PSBjaHVua1NpemUpIHhoci5zZXRSZXF1ZXN0
SGVhZGVyKCJSYW5nZSIsICJieXRlcz0iICsgZnJvbSArICItIiArIHRvKTsKKyAgICAgICAgICAg
ICAgICAvLyBTb21lIGhpbnRzIHRvIHRoZSBicm93c2VyIHRoYXQgd2Ugd2FudCBiaW5hcnkgZGF0
YS4KKyAgICAgICAgICAgICAgICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkgIT0gJ3VuZGVmaW5lZCcp
IHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOworICAgICAgICAgICAgICAgIGlmICh4
aHIub3ZlcnJpZGVNaW1lVHlwZSkgeworICAgICAgICAgICAgICAgICAgeGhyLm92ZXJyaWRlTWlt
ZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQnKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgICAgICAgICAgICAg
aWYgKCEoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCB8fCB4aHIuc3RhdHVz
ID09PSAzMDQpKSB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIiArIHVybCArICIuIFN0
YXR1czogIiArIHhoci5zdGF0dXMpOworICAgICAgICAgICAgICAgIGlmICh4aHIucmVzcG9uc2Ug
IT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5
KHhoci5yZXNwb25zZSB8fCBbXSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgIHJldHVybiBpbnRBcnJheUZyb21TdHJpbmcoeGhyLnJlc3BvbnNlVGV4dCB8fCAn
JywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgdmFyIGxhenlBcnJheSA9IHRoaXM7CisgICAgICAgICAgICAgIGxhenlBcnJheS5zZXRE
YXRhR2V0dGVyKGZ1bmN0aW9uKGNodW5rTnVtKSB7CisgICAgICAgICAgICAgICAgdmFyIHN0YXJ0
ID0gY2h1bmtOdW0gKiBjaHVua1NpemU7CisgICAgICAgICAgICAgICAgdmFyIGVuZCA9IChjaHVu
a051bSsxKSAqIGNodW5rU2l6ZSAtIDE7IC8vIGluY2x1ZGluZyB0aGlzIGJ5dGUKKyAgICAgICAg
ICAgICAgICBlbmQgPSBNYXRoLm1pbihlbmQsIGRhdGFsZW5ndGgtMSk7IC8vIGlmIGRhdGFsZW5n
dGgtMSBpcyBzZWxlY3RlZCwgdGhpcyBpcyB0aGUgbGFzdCBibG9jaworICAgICAgICAgICAgICAg
IGlmICh0eXBlb2YobGF6eUFycmF5LmNodW5rc1tjaHVua051bV0pID09PSAidW5kZWZpbmVkIikg
eworICAgICAgICAgICAgICAgICAgbGF6eUFycmF5LmNodW5rc1tjaHVua051bV0gPSBkb1hIUihz
dGFydCwgZW5kKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHR5cGVv
ZihsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSkgPT09ICJ1bmRlZmluZWQiKSB0aHJvdyBuZXcg
RXJyb3IoImRvWEhSIGZhaWxlZCEiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGF6eUFycmF5
LmNodW5rc1tjaHVua051bV07CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICB0aGlz
Ll9sZW5ndGggPSBkYXRhbGVuZ3RoOworICAgICAgICAgICAgICB0aGlzLl9jaHVua1NpemUgPSBj
aHVua1NpemU7CisgICAgICAgICAgICAgIHRoaXMubGVuZ3RoS25vd24gPSB0cnVlOworICAgICAg
ICAgIH0KKyAgICAgICAgICB2YXIgbGF6eUFycmF5ID0gbmV3IExhenlVaW50OEFycmF5KCk7Cisg
ICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlBcnJheSwgImxlbmd0aCIsIHsKKyAg
ICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgIGlmKCF0aGlz
Lmxlbmd0aEtub3duKSB7CisgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxlbmd0aCgp
OworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xl
bmd0aDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgICAgICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShsYXp5QXJyYXksICJjaHVua1NpemUiLCB7CisgICAgICAgICAgICAgIGdl
dDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICBpZighdGhpcy5sZW5ndGhLbm93bikg
eworICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsKKyAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jaHVua1NpemU7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICB9KTsKKyAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHsg
aXNEZXZpY2U6IGZhbHNlLCBjb250ZW50czogbGF6eUFycmF5IH07CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlzRGV2aWNlOiBmYWxzZSwgdXJsOiB1cmwg
fTsKKyAgICAgICAgfQorICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZUZpbGUocGFyZW50LCBu
YW1lLCBwcm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSk7CisgICAgICAgIC8vIFRoaXMgaXMg
YSB0b3RhbCBoYWNrLCBidXQgSSB3YW50IHRvIGdldCB0aGlzIGxhenkgZmlsZSBjb2RlIG91dCBv
ZiB0aGUKKyAgICAgICAgLy8gY29yZSBvZiBNRU1GUy4gSWYgd2Ugd2FudCB0byBrZWVwIHRoaXMg
bGF6eSBmaWxlIGNvbmNlcHQgSSBmZWVsIGl0IHNob3VsZAorICAgICAgICAvLyBiZSBpdHMgb3du
IHRoaW4gTEFaWUZTIHByb3h5aW5nIGNhbGxzIHRvIE1FTUZTLgorICAgICAgICBpZiAocHJvcGVy
dGllcy5jb250ZW50cykgeworICAgICAgICAgIG5vZGUuY29udGVudHMgPSBwcm9wZXJ0aWVzLmNv
bnRlbnRzOworICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnRpZXMudXJsKSB7CisgICAgICAgICAg
bm9kZS5jb250ZW50cyA9IG51bGw7CisgICAgICAgICAgbm9kZS51cmwgPSBwcm9wZXJ0aWVzLnVy
bDsKKyAgICAgICAgfQorICAgICAgICAvLyBvdmVycmlkZSBlYWNoIHN0cmVhbSBvcCB3aXRoIG9u
ZSB0aGF0IHRyaWVzIHRvIGZvcmNlIGxvYWQgdGhlIGxhenkgZmlsZSBmaXJzdAorICAgICAgICB2
YXIgc3RyZWFtX29wcyA9IHt9OworICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG5vZGUu
c3RyZWFtX29wcyk7CisgICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKKyAgICAg
ICAgICB2YXIgZm4gPSBub2RlLnN0cmVhbV9vcHNba2V5XTsKKyAgICAgICAgICBzdHJlYW1fb3Bz
W2tleV0gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghRlMuZm9yY2VMb2FkRmlsZShu
b2RlKSkgeworICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FSU8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGws
IGFyZ3VtZW50cyk7CisgICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIC8vIHVzZSBh
IGN1c3RvbSByZWFkIGZ1bmN0aW9uCisgICAgICAgIHN0cmVhbV9vcHMucmVhZCA9IGZ1bmN0aW9u
KHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKKyAgICAgICAgICBp
ZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9kZSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7CisgICAgICAgICAgfQorICAgICAgICAgIHZhciBj
b250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOworICAgICAgICAgIHZhciBzaXplID0gTWF0
aC5taW4oY29udGVudHMubGVuZ3RoIC0gcG9zaXRpb24sIGxlbmd0aCk7CisgICAgICAgICAgaWYg
KGNvbnRlbnRzLnNsaWNlKSB7IC8vIG5vcm1hbCBhcnJheQorICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIGld
ID0gY29udGVudHNbcG9zaXRpb24gKyBpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsgLy8gTGF6
eVVpbnQ4QXJyYXkgZnJvbSBzeW5jIGJpbmFyeSBYSFIKKyAgICAgICAgICAgICAgYnVmZmVyW29m
ZnNldCArIGldID0gY29udGVudHMuZ2V0KHBvc2l0aW9uICsgaSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBzaXplOworICAgICAgICB9OworICAgICAgICBu
b2RlLnN0cmVhbV9vcHMgPSBzdHJlYW1fb3BzOworICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAg
IH0sY3JlYXRlUHJlbG9hZGVkRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCB1cmwsIGNhblJl
YWQsIGNhbldyaXRlLCBvbmxvYWQsIG9uZXJyb3IsIGRvbnRDcmVhdGVGaWxlKSB7CisgICAgICAg
IEJyb3dzZXIuaW5pdCgpOworICAgICAgICAvLyBUT0RPIHdlIHNob3VsZCBhbGxvdyBwZW9wbGUg
dG8ganVzdCBwYXNzIGluIGEgY29tcGxldGUgZmlsZW5hbWUgaW5zdGVhZAorICAgICAgICAvLyBv
ZiBwYXJlbnQgYW5kIG5hbWUgYmVpbmcgdGhhdCB3ZSBqdXN0IGpvaW4gdGhlbSBhbnl3YXlzCisg
ICAgICAgIHZhciBmdWxsbmFtZSA9IFBBVEgucmVzb2x2ZShQQVRILmpvaW4ocGFyZW50LCBuYW1l
KSk7CisgICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NEYXRhKGJ5dGVBcnJheSkgeworICAgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaChieXRlQXJyYXkpIHsKKyAgICAgICAgICAgIGlmICghZG9udENyZWF0
ZUZpbGUpIHsKKyAgICAgICAgICAgICAgRlMuY3JlYXRlRGF0YUZpbGUocGFyZW50LCBuYW1lLCBi
eXRlQXJyYXksIGNhblJlYWQsIGNhbldyaXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChvbmxvYWQpIG9ubG9hZCgpOworICAgICAgICAgICAgcmVtb3ZlUnVuRGVwZW5kZW5jeSgn
Y3AgJyArIGZ1bGxuYW1lKTsKKyAgICAgICAgICB9CisgICAgICAgICAgdmFyIGhhbmRsZWQgPSBm
YWxzZTsKKyAgICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10uZm9yRWFjaChmdW5jdGlv
bihwbHVnaW4pIHsKKyAgICAgICAgICAgIGlmIChoYW5kbGVkKSByZXR1cm47CisgICAgICAgICAg
ICBpZiAocGx1Z2luWydjYW5IYW5kbGUnXShmdWxsbmFtZSkpIHsKKyAgICAgICAgICAgICAgcGx1
Z2luWydoYW5kbGUnXShieXRlQXJyYXksIGZ1bGxuYW1lLCBmaW5pc2gsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7CisgICAgICAgICAgICAgICAg
cmVtb3ZlUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKKyAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAg
IH0pOworICAgICAgICAgIGlmICghaGFuZGxlZCkgZmluaXNoKGJ5dGVBcnJheSk7CisgICAgICAg
IH0KKyAgICAgICAgYWRkUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKKyAgICAgICAg
aWYgKHR5cGVvZiB1cmwgPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICBCcm93c2VyLmFzeW5jTG9h
ZCh1cmwsIGZ1bmN0aW9uKGJ5dGVBcnJheSkgeworICAgICAgICAgICAgcHJvY2Vzc0RhdGEoYnl0
ZUFycmF5KTsKKyAgICAgICAgICB9LCBvbmVycm9yKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICBwcm9jZXNzRGF0YSh1cmwpOworICAgICAgICB9CisgICAgICB9LGNyZWF0ZURlZmF1bHRE
aXJlY3RvcmllczpmdW5jdGlvbiAoKSB7CisgICAgICAgIEZTLm1rZGlyKCcvdG1wJywgMDc3Nyk7
CisgICAgICB9LGNyZWF0ZURlZmF1bHREZXZpY2VzOmZ1bmN0aW9uICgpIHsKKyAgICAgICAgLy8g
Y3JlYXRlIC9kZXYKKyAgICAgICAgRlMubWtkaXIoJy9kZXYnLCAwNzc3KTsKKyAgICAgICAgLy8g
c2V0dXAgL2Rldi9udWxsCisgICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNlKEZTLm1ha2VkZXYoMSwg
MyksIHsKKyAgICAgICAgICByZWFkOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0sCisgICAgICAg
ICAgd3JpdGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfQorICAgICAgICB9KTsKKyAgICAgICAg
RlMubWtkZXYoJy9kZXYvbnVsbCcsIDA2NjYsIEZTLm1ha2VkZXYoMSwgMykpOworICAgICAgICAv
LyBzZXR1cCAvZGV2L3R0eSBhbmQgL2Rldi90dHkxCisgICAgICAgIC8vIHN0ZGVyciBuZWVkcyB0
byBwcmludCBvdXRwdXQgdXNpbmcgTW9kdWxlWydwcmludEVyciddCisgICAgICAgIC8vIHNvIHdl
IHJlZ2lzdGVyIGEgc2Vjb25kIHR0eSBqdXN0IGZvciBpdC4KKyAgICAgICAgVFRZLnJlZ2lzdGVy
KEZTLm1ha2VkZXYoNSwgMCksIFRUWS5kZWZhdWx0X3R0eV9vcHMpOworICAgICAgICBUVFkucmVn
aXN0ZXIoRlMubWFrZWRldig2LCAwKSwgVFRZLmRlZmF1bHRfdHR5MV9vcHMpOworICAgICAgICBG
Uy5ta2RldignL2Rldi90dHknLCAwNjY2LCBGUy5tYWtlZGV2KDUsIDApKTsKKyAgICAgICAgRlMu
bWtkZXYoJy9kZXYvdHR5MScsIDA2NjYsIEZTLm1ha2VkZXYoNiwgMCkpOworICAgICAgICAvLyB3
ZSdyZSBub3QgZ29pbmcgdG8gZW11bGF0ZSB0aGUgYWN0dWFsIHNobSBkZXZpY2UsCisgICAgICAg
IC8vIGp1c3QgY3JlYXRlIHRoZSB0bXAgZGlycyB0aGF0IHJlc2lkZSBpbiBpdCBjb21tb25seQor
ICAgICAgICBGUy5ta2RpcignL2Rldi9zaG0nLCAwNzc3KTsKKyAgICAgICAgRlMubWtkaXIoJy9k
ZXYvc2htL3RtcCcsIDA3NzcpOworICAgICAgfSxjcmVhdGVTdGFuZGFyZFN0cmVhbXM6ZnVuY3Rp
b24gKCkgeworICAgICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGUgb2xkIGZ1bmN0aW9uYWxpdHkg
b2YgYSBzaW5nbGUKKyAgICAgICAgLy8gaW5wdXQgLyBvdXRwdXQgY2FsbGJhY2sgYW5kIHRoYXQg
dXRpbGl6ZXMgRlMuY3JlYXRlRGV2aWNlCisgICAgICAgIC8vIGFuZCBpbnN0ZWFkIHJlcXVpcmUg
YSB1bmlxdWUgc2V0IG9mIHN0cmVhbSBvcHMKKyAgICAgICAgLy8gYnkgZGVmYXVsdCwgd2Ugc3lt
bGluayB0aGUgc3RhbmRhcmQgc3RyZWFtcyB0byB0aGUKKyAgICAgICAgLy8gZGVmYXVsdCB0dHkg
ZGV2aWNlcy4gaG93ZXZlciwgaWYgdGhlIHN0YW5kYXJkIHN0cmVhbXMKKyAgICAgICAgLy8gaGF2
ZSBiZWVuIG92ZXJ3cml0dGVuIHdlIGNyZWF0ZSBhIHVuaXF1ZSBkZXZpY2UgZm9yCisgICAgICAg
IC8vIHRoZW0gaW5zdGVhZC4KKyAgICAgICAgaWYgKE1vZHVsZVsnc3RkaW4nXSkgeworICAgICAg
ICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRpbicsIE1vZHVsZVsnc3RkaW4nXSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgRlMuc3ltbGluaygnL2Rldi90dHknLCAnL2Rldi9z
dGRpbicpOworICAgICAgICB9CisgICAgICAgIGlmIChNb2R1bGVbJ3N0ZG91dCddKSB7CisgICAg
ICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZG91dCcsIG51bGwsIE1vZHVsZVsnc3Rk
b3V0J10pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5
JywgJy9kZXYvc3Rkb3V0Jyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKE1vZHVsZVsnc3RkZXJy
J10pIHsKKyAgICAgICAgICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3RkZXJyJywgbnVsbCwg
TW9kdWxlWydzdGRlcnInXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgRlMuc3ltbGlu
aygnL2Rldi90dHkxJywgJy9kZXYvc3RkZXJyJyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gb3Bl
biBkZWZhdWx0IHN0cmVhbXMgZm9yIHRoZSBzdGRpbiwgc3Rkb3V0IGFuZCBzdGRlcnIgZGV2aWNl
cworICAgICAgICB2YXIgc3RkaW4gPSBGUy5vcGVuKCcvZGV2L3N0ZGluJywgJ3InKTsKKyAgICAg
ICAgSEVBUDMyWygoX3N0ZGluKT4+MildPXN0ZGluLmZkOworICAgICAgICBhc3NlcnQoc3RkaW4u
ZmQgPT09IDEsICdpbnZhbGlkIGhhbmRsZSBmb3Igc3RkaW4gKCcgKyBzdGRpbi5mZCArICcpJyk7
CisgICAgICAgIHZhciBzdGRvdXQgPSBGUy5vcGVuKCcvZGV2L3N0ZG91dCcsICd3Jyk7CisgICAg
ICAgIEhFQVAzMlsoKF9zdGRvdXQpPj4yKV09c3Rkb3V0LmZkOworICAgICAgICBhc3NlcnQoc3Rk
b3V0LmZkID09PSAyLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZG91dCAoJyArIHN0ZG91dC5mZCAr
ICcpJyk7CisgICAgICAgIHZhciBzdGRlcnIgPSBGUy5vcGVuKCcvZGV2L3N0ZGVycicsICd3Jyk7
CisgICAgICAgIEhFQVAzMlsoKF9zdGRlcnIpPj4yKV09c3RkZXJyLmZkOworICAgICAgICBhc3Nl
cnQoc3RkZXJyLmZkID09PSAzLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGVyciAoJyArIHN0ZGVy
ci5mZCArICcpJyk7CisgICAgICB9LHN0YXRpY0luaXQ6ZnVuY3Rpb24gKCkgeworICAgICAgICBG
Uy5uYW1lX3RhYmxlID0gbmV3IEFycmF5KDQwOTYpOworICAgICAgICBGUy5yb290ID0gRlMuY3Jl
YXRlTm9kZShudWxsLCAnLycsIDAwNDAwMDAgfCAwNzc3LCAwKTsKKyAgICAgICAgRlMubW91bnQo
TUVNRlMsIHt9LCAnLycpOworICAgICAgICBGUy5jcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKTsK
KyAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERldmljZXMoKTsKKyAgICAgIH0saW5pdDpmdW5jdGlv
biAoaW5wdXQsIG91dHB1dCwgZXJyb3IpIHsKKyAgICAgICAgYXNzZXJ0KCFGUy5pbml0LmluaXRp
YWxpemVkLCAnRlMuaW5pdCB3YXMgcHJldmlvdXNseSBjYWxsZWQuIElmIHlvdSB3YW50IHRvIGlu
aXRpYWxpemUgbGF0ZXIgd2l0aCBjdXN0b20gcGFyYW1ldGVycywgcmVtb3ZlIGFueSBlYXJsaWVy
IGNhbGxzIChub3RlIHRoYXQgb25lIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGdlbmVy
YXRlZCBjb2RlKScpOworICAgICAgICBGUy5pbml0LmluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAg
ICAgLy8gQWxsb3cgTW9kdWxlLnN0ZGluIGV0Yy4gdG8gcHJvdmlkZSBkZWZhdWx0cywgaWYgbm9u
ZSBleHBsaWNpdGx5IHBhc3NlZCB0byB1cyBoZXJlCisgICAgICAgIE1vZHVsZVsnc3RkaW4nXSA9
IGlucHV0IHx8IE1vZHVsZVsnc3RkaW4nXTsKKyAgICAgICAgTW9kdWxlWydzdGRvdXQnXSA9IG91
dHB1dCB8fCBNb2R1bGVbJ3N0ZG91dCddOworICAgICAgICBNb2R1bGVbJ3N0ZGVyciddID0gZXJy
b3IgfHwgTW9kdWxlWydzdGRlcnInXTsKKyAgICAgICAgRlMuY3JlYXRlU3RhbmRhcmRTdHJlYW1z
KCk7CisgICAgICB9LHF1aXQ6ZnVuY3Rpb24gKCkgeworICAgICAgICBGUy5pbml0LmluaXRpYWxp
emVkID0gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgRlMuc3RyZWFtcy5sZW5n
dGg7IGkrKykgeworICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5zdHJlYW1zW2ldOworICAgICAg
ICAgIGlmICghc3RyZWFtKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgRlMuY2xvc2Uoc3RyZWFtKTsKKyAgICAgICAgfQorICAgICAgfSxtb3VudDpmdW5j
dGlvbiAodHlwZSwgb3B0cywgbW91bnRwb2ludCkgeworICAgICAgICB2YXIgbW91bnQgPSB7Cisg
ICAgICAgICAgdHlwZTogdHlwZSwKKyAgICAgICAgICBvcHRzOiBvcHRzLAorICAgICAgICAgIG1v
dW50cG9pbnQ6IG1vdW50cG9pbnQsCisgICAgICAgICAgcm9vdDogbnVsbAorICAgICAgICB9Owor
ICAgICAgICB2YXIgbG9va3VwOworICAgICAgICBpZiAobW91bnRwb2ludCkgeworICAgICAgICAg
IGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobW91bnRwb2ludCwgeyBmb2xsb3c6IGZhbHNlIH0pOwor
ICAgICAgICB9CisgICAgICAgIC8vIGNyZWF0ZSBhIHJvb3Qgbm9kZSBmb3IgdGhlIGZzCisgICAg
ICAgIHZhciByb290ID0gdHlwZS5tb3VudChtb3VudCk7CisgICAgICAgIHJvb3QubW91bnQgPSBt
b3VudDsKKyAgICAgICAgbW91bnQucm9vdCA9IHJvb3Q7CisgICAgICAgIC8vIGFzc2lnbiB0aGUg
bW91bnQgaW5mbyB0byB0aGUgbW91bnRwb2ludCdzIG5vZGUKKyAgICAgICAgaWYgKGxvb2t1cCkg
eworICAgICAgICAgIGxvb2t1cC5ub2RlLm1vdW50ID0gbW91bnQ7CisgICAgICAgICAgbG9va3Vw
Lm5vZGUubW91bnRlZCA9IHRydWU7CisgICAgICAgICAgLy8gY29tcGF0aWJpbGl0eSB1cGRhdGUg
RlMucm9vdCBpZiB3ZSBtb3VudCB0byAvCisgICAgICAgICAgaWYgKG1vdW50cG9pbnQgPT09ICcv
JykgeworICAgICAgICAgICAgRlMucm9vdCA9IG1vdW50LnJvb3Q7CisgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJldHVybiByb290OworICAgICAgfSxsb29rdXA6ZnVuY3Rpb24gKHBh
cmVudCwgbmFtZSkgeworICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLmxvb2t1cChwYXJl
bnQsIG5hbWUpOworICAgICAgfSxta25vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Cisg
ICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVlIH0p
OworICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7CisgICAgICAgIHZhciBuYW1lID0g
UEFUSC5iYXNlbmFtZShwYXRoKTsKKyAgICAgICAgdmFyIGVyciA9IEZTLm1heUNyZWF0ZShwYXJl
bnQsIG5hbWUpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoZXJyKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5t
a25vZCkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQ
RVJNKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLm1rbm9kKHBh
cmVudCwgbmFtZSwgbW9kZSwgZGV2KTsKKyAgICAgIH0sY3JlYXRlOmZ1bmN0aW9uIChwYXRoLCBt
b2RlKSB7CisgICAgICAgIG1vZGUgJj0gNDA5NTsKKyAgICAgICAgbW9kZSB8PSAwMTAwMDAwOwor
ICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9kZSwgMCk7CisgICAgICB9LG1rZGlyOmZ1
bmN0aW9uIChwYXRoLCBtb2RlKSB7CisgICAgICAgIG1vZGUgJj0gNTExIHwgMDAwMTAwMDsKKyAg
ICAgICAgbW9kZSB8PSAwMDQwMDAwOworICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9k
ZSwgMCk7CisgICAgICB9LG1rZGV2OmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkZXYpIHsKKyAgICAg
ICAgbW9kZSB8PSAwMDIwMDAwOworICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9kZSwg
ZGV2KTsKKyAgICAgIH0sc3ltbGluazpmdW5jdGlvbiAob2xkcGF0aCwgbmV3cGF0aCkgeworICAg
ICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChuZXdwYXRoLCB7IHBhcmVudDogdHJ1ZSB9
KTsKKyAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOworICAgICAgICB2YXIgbmV3bmFt
ZSA9IFBBVEguYmFzZW5hbWUobmV3cGF0aCk7CisgICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVh
dGUocGFyZW50LCBuZXduYW1lKTsKKyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKGVycik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFwYXJlbnQu
bm9kZV9vcHMuc3ltbGluaykgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVQRVJNKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVf
b3BzLnN5bWxpbmsocGFyZW50LCBuZXduYW1lLCBvbGRwYXRoKTsKKyAgICAgIH0scmVuYW1lOmZ1
bmN0aW9uIChvbGRfcGF0aCwgbmV3X3BhdGgpIHsKKyAgICAgICAgdmFyIG9sZF9kaXJuYW1lID0g
UEFUSC5kaXJuYW1lKG9sZF9wYXRoKTsKKyAgICAgICAgdmFyIG5ld19kaXJuYW1lID0gUEFUSC5k
aXJuYW1lKG5ld19wYXRoKTsKKyAgICAgICAgdmFyIG9sZF9uYW1lID0gUEFUSC5iYXNlbmFtZShv
bGRfcGF0aCk7CisgICAgICAgIHZhciBuZXdfbmFtZSA9IFBBVEguYmFzZW5hbWUobmV3X3BhdGgp
OworICAgICAgICAvLyBwYXJlbnRzIG11c3QgZXhpc3QKKyAgICAgICAgdmFyIGxvb2t1cCwgb2xk
X2RpciwgbmV3X2RpcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBsb29rdXAgPSBGUy5sb29r
dXBQYXRoKG9sZF9wYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKKyAgICAgICAgICBvbGRfZGlyID0g
bG9va3VwLm5vZGU7CisgICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChuZXdfcGF0aCwg
eyBwYXJlbnQ6IHRydWUgfSk7CisgICAgICAgICAgbmV3X2RpciA9IGxvb2t1cC5ub2RlOworICAg
ICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUJVU1kpOworICAgICAgICB9CisgICAgICAgIC8vIG5lZWQgdG8gYmUgcGFydCBv
ZiB0aGUgc2FtZSBtb3VudAorICAgICAgICBpZiAob2xkX2Rpci5tb3VudCAhPT0gbmV3X2Rpci5t
b3VudCkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVY
REVWKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzb3VyY2UgbXVzdCBleGlzdAorICAgICAgICB2
YXIgb2xkX25vZGUgPSBGUy5sb29rdXBOb2RlKG9sZF9kaXIsIG9sZF9uYW1lKTsKKyAgICAgICAg
Ly8gb2xkIHBhdGggc2hvdWxkIG5vdCBiZSBhbiBhbmNlc3RvciBvZiB0aGUgbmV3IHBhdGgKKyAg
ICAgICAgdmFyIHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShvbGRfcGF0aCwgbmV3X2Rpcm5hbWUp
OworICAgICAgICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAnLicpIHsKKyAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOworICAgICAgICB9Cisg
ICAgICAgIC8vIG5ldyBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG9sZCBw
YXRoCisgICAgICAgIHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShuZXdfcGF0aCwgb2xkX2Rpcm5h
bWUpOworICAgICAgICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAnLicpIHsKKyAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpOworICAgICAg
ICB9CisgICAgICAgIC8vIHNlZSBpZiB0aGUgbmV3IHBhdGggYWxyZWFkeSBleGlzdHMKKyAgICAg
ICAgdmFyIG5ld19ub2RlOworICAgICAgICB0cnkgeworICAgICAgICAgIG5ld19ub2RlID0gRlMu
bG9va3VwTm9kZShuZXdfZGlyLCBuZXdfbmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgICAvLyBub3QgZmF0YWwKKyAgICAgICAgfQorICAgICAgICAvLyBlYXJseSBvdXQgaWYg
bm90aGluZyBuZWVkcyB0byBjaGFuZ2UKKyAgICAgICAgaWYgKG9sZF9ub2RlID09PSBuZXdfbm9k
ZSkgeworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyB3ZSdsbCBuZWVk
IHRvIGRlbGV0ZSB0aGUgb2xkIGVudHJ5CisgICAgICAgIHZhciBpc2RpciA9IEZTLmlzRGlyKG9s
ZF9ub2RlLm1vZGUpOworICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKG9sZF9kaXIsIG9s
ZF9uYW1lLCBpc2Rpcik7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihlcnIpOworICAgICAgICB9CisgICAgICAgIC8vIG5lZWQgZGVsZXRlIHBl
cm1pc3Npb25zIGlmIHdlJ2xsIGJlIG92ZXJ3cml0aW5nLgorICAgICAgICAvLyBuZWVkIGNyZWF0
ZSBwZXJtaXNzaW9ucyBpZiBuZXcgZG9lc24ndCBhbHJlYWR5IGV4aXN0LgorICAgICAgICBlcnIg
PSBuZXdfbm9kZSA/CisgICAgICAgICAgRlMubWF5RGVsZXRlKG5ld19kaXIsIG5ld19uYW1lLCBp
c2RpcikgOgorICAgICAgICAgIEZTLm1heUNyZWF0ZShuZXdfZGlyLCBuZXdfbmFtZSk7CisgICAg
ICAgIGlmIChlcnIpIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwor
ICAgICAgICB9CisgICAgICAgIGlmICghb2xkX2Rpci5ub2RlX29wcy5yZW5hbWUpIHsKKyAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChvbGRfbm9kZSkgfHwgKG5ld19ub2RlICYm
IEZTLmlzTW91bnRwb2ludChuZXdfbm9kZSkpKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOworICAgICAgICB9CisgICAgICAgIC8vIGlmIHdl
IGFyZSBnb2luZyB0byBjaGFuZ2UgdGhlIHBhcmVudCwgY2hlY2sgd3JpdGUgcGVybWlzc2lvbnMK
KyAgICAgICAgaWYgKG5ld19kaXIgIT09IG9sZF9kaXIpIHsKKyAgICAgICAgICBlcnIgPSBGUy5u
b2RlUGVybWlzc2lvbnMob2xkX2RpciwgJ3cnKTsKKyAgICAgICAgICBpZiAoZXJyKSB7CisgICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOworICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICAvLyByZW1vdmUgdGhlIG5vZGUgZnJvbSB0aGUgbG9va3VwIGhhc2gKKyAg
ICAgICAgRlMuaGFzaFJlbW92ZU5vZGUob2xkX25vZGUpOworICAgICAgICAvLyBkbyB0aGUgdW5k
ZXJseWluZyBmcyByZW5hbWUKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBvbGRfZGlyLm5vZGVf
b3BzLnJlbmFtZShvbGRfbm9kZSwgbmV3X2RpciwgbmV3X25hbWUpOworICAgICAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAg
ICAvLyBhZGQgdGhlIG5vZGUgYmFjayB0byB0aGUgaGFzaCAoaW4gY2FzZSBub2RlX29wcy5yZW5h
bWUKKyAgICAgICAgICAvLyBjaGFuZ2VkIGl0cyBuYW1lKQorICAgICAgICAgIEZTLmhhc2hBZGRO
b2RlKG9sZF9ub2RlKTsKKyAgICAgICAgfQorICAgICAgfSxybWRpcjpmdW5jdGlvbiAocGF0aCkg
eworICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1
ZSB9KTsKKyAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOworICAgICAgICB2YXIgbmFt
ZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7CisgICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9k
ZShwYXJlbnQsIG5hbWUpOworICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKHBhcmVudCwg
bmFtZSwgdHJ1ZSk7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihlcnIpOworICAgICAgICB9CisgICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3Bz
LnJtZGlyKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RVBFUk0pOworICAgICAgICB9CisgICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQobm9kZSkpIHsK
KyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Cisg
ICAgICAgIH0KKyAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnJtZGlyKHBhcmVudCwgbmFtZSk7Cisg
ICAgICAgIEZTLmRlc3Ryb3lOb2RlKG5vZGUpOworICAgICAgfSxyZWFkZGlyOmZ1bmN0aW9uIChw
YXRoKSB7CisgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93
OiB0cnVlIH0pOworICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOworICAgICAgICBpZiAo
IW5vZGUubm9kZV9vcHMucmVhZGRpcikgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVOT1RESVIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBub2Rl
Lm5vZGVfb3BzLnJlYWRkaXIobm9kZSk7CisgICAgICB9LHVubGluazpmdW5jdGlvbiAocGF0aCkg
eworICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1
ZSB9KTsKKyAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOworICAgICAgICB2YXIgbmFt
ZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7CisgICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9k
ZShwYXJlbnQsIG5hbWUpOworICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKHBhcmVudCwg
bmFtZSwgZmFsc2UpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgLy8gUE9TSVggc2F5
cyB1bmxpbmsgc2hvdWxkIHNldCBFUEVSTSwgbm90IEVJU0RJUgorICAgICAgICAgIGlmIChlcnIg
PT09IEVSUk5PX0NPREVTLkVJU0RJUikgZXJyID0gRVJSTk9fQ09ERVMuRVBFUk07CisgICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
IXBhcmVudC5ub2RlX29wcy51bmxpbmspIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FUEVSTSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKEZTLmlzTW91
bnRwb2ludChub2RlKSkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVCVVNZKTsKKyAgICAgICAgfQorICAgICAgICBwYXJlbnQubm9kZV9vcHMudW5saW5r
KHBhcmVudCwgbmFtZSk7CisgICAgICAgIEZTLmRlc3Ryb3lOb2RlKG5vZGUpOworICAgICAgfSxy
ZWFkbGluazpmdW5jdGlvbiAocGF0aCkgeworICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3Vw
UGF0aChwYXRoLCB7IGZvbGxvdzogZmFsc2UgfSk7CisgICAgICAgIHZhciBsaW5rID0gbG9va3Vw
Lm5vZGU7CisgICAgICAgIGlmICghbGluay5ub2RlX29wcy5yZWFkbGluaykgeworICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIGxpbmsubm9kZV9vcHMucmVhZGxpbmsobGluayk7CisgICAgICB9LHN0
YXQ6ZnVuY3Rpb24gKHBhdGgsIGRvbnRGb2xsb3cpIHsKKyAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250Rm9sbG93IH0pOworICAgICAgICB2YXIg
bm9kZSA9IGxvb2t1cC5ub2RlOworICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMuZ2V0YXR0cikg
eworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9kZS5ub2RlX29wcy5nZXRhdHRyKG5vZGUpOwor
ICAgICAgfSxsc3RhdDpmdW5jdGlvbiAocGF0aCkgeworICAgICAgICByZXR1cm4gRlMuc3RhdChw
YXRoLCB0cnVlKTsKKyAgICAgIH0sY2htb2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRvbnRGb2xs
b3cpIHsKKyAgICAgICAgdmFyIG5vZGU7CisgICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0
cmluZycpIHsKKyAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZv
bGxvdzogIWRvbnRGb2xsb3cgfSk7CisgICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgIG5vZGUgPSBwYXRoOworICAgICAgICB9CisgICAgICAg
IGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOworICAgICAgICB9CisgICAgICAgIG5vZGUubm9k
ZV9vcHMuc2V0YXR0cihub2RlLCB7CisgICAgICAgICAgbW9kZTogKG1vZGUgJiA0MDk1KSB8IChu
b2RlLm1vZGUgJiB+NDA5NSksCisgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCisgICAg
ICAgIH0pOworICAgICAgfSxsY2htb2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUpIHsKKyAgICAgICAg
RlMuY2htb2QocGF0aCwgbW9kZSwgdHJ1ZSk7CisgICAgICB9LGZjaG1vZDpmdW5jdGlvbiAoZmQs
IG1vZGUpIHsKKyAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7CisgICAgICAg
IGlmICghc3RyZWFtKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUJBREYpOworICAgICAgICB9CisgICAgICAgIEZTLmNobW9kKHN0cmVhbS5ub2RlLCBt
b2RlKTsKKyAgICAgIH0sY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwgZ2lkLCBkb250Rm9sbG93
KSB7CisgICAgICAgIHZhciBub2RlOworICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJp
bmcnKSB7CisgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xs
b3c6ICFkb250Rm9sbG93IH0pOworICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICBub2RlID0gcGF0aDsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKKyAgICAgICAgfQorICAgICAgICBub2RlLm5vZGVf
b3BzLnNldGF0dHIobm9kZSwgeworICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQorICAg
ICAgICAgIC8vIHdlIGlnbm9yZSB0aGUgdWlkIC8gZ2lkIGZvciBub3cKKyAgICAgICAgfSk7Cisg
ICAgICB9LGxjaG93bjpmdW5jdGlvbiAocGF0aCwgdWlkLCBnaWQpIHsKKyAgICAgICAgRlMuY2hv
d24ocGF0aCwgdWlkLCBnaWQsIHRydWUpOworICAgICAgfSxmY2hvd246ZnVuY3Rpb24gKGZkLCB1
aWQsIGdpZCkgeworICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKKyAgICAg
ICAgaWYgKCFzdHJlYW0pIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FQkFERik7CisgICAgICAgIH0KKyAgICAgICAgRlMuY2hvd24oc3RyZWFtLm5vZGUs
IHVpZCwgZ2lkKTsKKyAgICAgIH0sdHJ1bmNhdGU6ZnVuY3Rpb24gKHBhdGgsIGxlbikgeworICAg
ICAgICBpZiAobGVuIDwgMCkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVJTlZBTCk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIG5vZGU7CisgICAgICAg
IGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHsKKyAgICAgICAgICB2YXIgbG9va3VwID0g
RlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1ZSB9KTsKKyAgICAgICAgICBub2RlID0g
bG9va3VwLm5vZGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgbm9kZSA9IHBhdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKKyAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKKyAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOworICAgICAgICB9CisgICAgICAgIGlm
ICghRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOworICAgICAgICB9CisgICAgICAgIHZhciBlcnIgPSBG
Uy5ub2RlUGVybWlzc2lvbnMobm9kZSwgJ3cnKTsKKyAgICAgICAgaWYgKGVycikgeworICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7CisgICAgICAgIH0KKyAgICAgICAgbm9k
ZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUsIHsKKyAgICAgICAgICBzaXplOiBsZW4sCisgICAgICAg
ICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCisgICAgICAgIH0pOworICAgICAgfSxmdHJ1bmNhdGU6
ZnVuY3Rpb24gKGZkLCBsZW4pIHsKKyAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShm
ZCk7CisgICAgICAgIGlmICghc3RyZWFtKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOworICAgICAgICB9CisgICAgICAgIGlmICgoc3RyZWFt
LmZsYWdzICYgMykgPT09IDApIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihF
UlJOT19DT0RFUy5FSU5WQUwpOworICAgICAgICB9CisgICAgICAgIEZTLnRydW5jYXRlKHN0cmVh
bS5ub2RlLCBsZW4pOworICAgICAgfSx1dGltZTpmdW5jdGlvbiAocGF0aCwgYXRpbWUsIG10aW1l
KSB7CisgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiB0
cnVlIH0pOworICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOworICAgICAgICBub2RlLm5v
ZGVfb3BzLnNldGF0dHIobm9kZSwgeworICAgICAgICAgIHRpbWVzdGFtcDogTWF0aC5tYXgoYXRp
bWUsIG10aW1lKQorICAgICAgICB9KTsKKyAgICAgIH0sb3BlbjpmdW5jdGlvbiAocGF0aCwgZmxh
Z3MsIG1vZGUsIGZkX3N0YXJ0LCBmZF9lbmQpIHsKKyAgICAgICAgcGF0aCA9IFBBVEgubm9ybWFs
aXplKHBhdGgpOworICAgICAgICBmbGFncyA9IHR5cGVvZiBmbGFncyA9PT0gJ3N0cmluZycgPyBG
Uy5tb2RlU3RyaW5nVG9GbGFncyhmbGFncykgOiBmbGFnczsKKyAgICAgICAgbW9kZSA9IHR5cGVv
ZiBtb2RlID09PSAndW5kZWZpbmVkJyA/IDA2NjYgOiBtb2RlOworICAgICAgICBpZiAoKGZsYWdz
ICYgNTEyKSkgeworICAgICAgICAgIG1vZGUgPSAobW9kZSAmIDQwOTUpIHwgMDEwMDAwMDsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBtb2RlID0gMDsKKyAgICAgICAgfQorICAgICAgICB2
YXIgbm9kZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3Vw
UGF0aChwYXRoLCB7CisgICAgICAgICAgICBmb2xsb3c6ICEoZmxhZ3MgJiAwMjAwMDAwKQorICAg
ICAgICAgIH0pOworICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKKyAgICAgICAgICBwYXRo
ID0gbG9va3VwLnBhdGg7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAvLyBpZ25v
cmUKKyAgICAgICAgfQorICAgICAgICAvLyBwZXJoYXBzIHdlIG5lZWQgdG8gY3JlYXRlIHRoZSBu
b2RlCisgICAgICAgIGlmICgoZmxhZ3MgJiA1MTIpKSB7CisgICAgICAgICAgaWYgKG5vZGUpIHsK
KyAgICAgICAgICAgIC8vIGlmIE9fQ1JFQVQgYW5kIE9fRVhDTCBhcmUgc2V0LCBlcnJvciBvdXQg
aWYgdGhlIG5vZGUgYWxyZWFkeSBleGlzdHMKKyAgICAgICAgICAgIGlmICgoZmxhZ3MgJiAyMDQ4
KSkgeworICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
RVhJU1QpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAv
LyBub2RlIGRvZXNuJ3QgZXhpc3QsIHRyeSB0byBjcmVhdGUgaXQKKyAgICAgICAgICAgIG5vZGUg
PSBGUy5ta25vZChwYXRoLCBtb2RlLCAwKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKCFub2RlKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRU5PRU5UKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjYW4ndCB0cnVuY2F0ZSBhIGRl
dmljZQorICAgICAgICBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkgeworICAgICAgICAgIGZs
YWdzICY9IH4xMDI0OworICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIHBlcm1pc3Npb25zCisg
ICAgICAgIHZhciBlcnIgPSBGUy5tYXlPcGVuKG5vZGUsIGZsYWdzKTsKKyAgICAgICAgaWYgKGVy
cikgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7CisgICAgICAgIH0K
KyAgICAgICAgLy8gZG8gdHJ1bmNhdGlvbiBpZiBuZWNlc3NhcnkKKyAgICAgICAgaWYgKChmbGFn
cyAmIDEwMjQpKSB7CisgICAgICAgICAgRlMudHJ1bmNhdGUobm9kZSwgMCk7CisgICAgICAgIH0K
KyAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIHN0cmVhbSB3aXRoIHRoZSBmaWxlc3lzdGVtCisgICAg
ICAgIHZhciBzdHJlYW0gPSBGUy5jcmVhdGVTdHJlYW0oeworICAgICAgICAgIHBhdGg6IHBhdGgs
CisgICAgICAgICAgbm9kZTogbm9kZSwKKyAgICAgICAgICBmbGFnczogZmxhZ3MsCisgICAgICAg
ICAgc2Vla2FibGU6IHRydWUsCisgICAgICAgICAgcG9zaXRpb246IDAsCisgICAgICAgICAgc3Ry
ZWFtX29wczogbm9kZS5zdHJlYW1fb3BzLAorICAgICAgICAgIC8vIHVzZWQgYnkgdGhlIGZpbGUg
ZmFtaWx5IGxpYmMgY2FsbHMgKGZvcGVuLCBmd3JpdGUsIGZlcnJvciwgZXRjLikKKyAgICAgICAg
ICB1bmdvdHRlbjogW10sCisgICAgICAgICAgZXJyb3I6IGZhbHNlCisgICAgICAgIH0sIGZkX3N0
YXJ0LCBmZF9lbmQpOworICAgICAgICAvLyBjYWxsIHRoZSBuZXcgc3RyZWFtJ3Mgb3BlbiBmdW5j
dGlvbgorICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMub3BlbikgeworICAgICAgICAgIHN0
cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
c3RyZWFtOworICAgICAgfSxjbG9zZTpmdW5jdGlvbiAoc3RyZWFtKSB7CisgICAgICAgIHRyeSB7
CisgICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKSB7CisgICAgICAgICAgICBz
dHJlYW0uc3RyZWFtX29wcy5jbG9zZShzdHJlYW0pOworICAgICAgICAgIH0KKyAgICAgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0gZmluYWxseSB7CisgICAg
ICAgICAgRlMuY2xvc2VTdHJlYW0oc3RyZWFtLmZkKTsKKyAgICAgICAgfQorICAgICAgfSxsbHNl
ZWs6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKKyAgICAgICAgaWYgKCFzdHJl
YW0uc2Vla2FibGUgfHwgIXN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlaykgeworICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlayhzdHJlYW0sIG9mZnNldCwgd2hl
bmNlKTsKKyAgICAgIH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVu
Z3RoLCBwb3NpdGlvbikgeworICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBwb3NpdGlvbiA8IDAp
IHsKKyAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwp
OworICAgICAgICB9CisgICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDEpIHsKKyAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKSB7CisgICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLnJlYWQpIHsKKyAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOworICAgICAgICB9CisgICAg
ICAgIHZhciBzZWVraW5nID0gdHJ1ZTsKKyAgICAgICAgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0g
J3VuZGVmaW5lZCcpIHsKKyAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5wb3NpdGlvbjsKKyAg
ICAgICAgICBzZWVraW5nID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmVhbS5zZWVr
YWJsZSkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVT
UElQRSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IHN0cmVhbS5zdHJlYW1f
b3BzLnJlYWQoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbik7CisgICAg
ICAgIGlmICghc2Vla2luZykgc3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVzUmVhZDsKKyAgICAgICAg
cmV0dXJuIGJ5dGVzUmVhZDsKKyAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVy
LCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDAgfHwg
cG9zaXRpb24gPCAwKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUlOVkFMKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMp
ID09PSAwKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUJBREYpOworICAgICAgICB9CisgICAgICAgIGlmIChGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2Rl
KSkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJ
Uik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy53cml0ZSkgewor
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Cisg
ICAgICAgIH0KKyAgICAgICAgdmFyIHNlZWtpbmcgPSB0cnVlOworICAgICAgICBpZiAodHlwZW9m
IHBvc2l0aW9uID09PSAndW5kZWZpbmVkJykgeworICAgICAgICAgIHBvc2l0aW9uID0gc3RyZWFt
LnBvc2l0aW9uOworICAgICAgICAgIHNlZWtpbmcgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIGlm
ICghc3RyZWFtLnNlZWthYmxlKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRVNQSVBFKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RyZWFtLmZsYWdz
ICYgOCkgeworICAgICAgICAgIC8vIHNlZWsgdG8gdGhlIGVuZCBiZWZvcmUgd3JpdGluZyBpbiBh
cHBlbmQgbW9kZQorICAgICAgICAgIEZTLmxsc2VlayhzdHJlYW0sIDAsIDIpOworICAgICAgICB9
CisgICAgICAgIHZhciBieXRlc1dyaXR0ZW4gPSBzdHJlYW0uc3RyZWFtX29wcy53cml0ZShzdHJl
YW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKTsKKyAgICAgICAgaWYgKCFzZWVr
aW5nKSBzdHJlYW0ucG9zaXRpb24gKz0gYnl0ZXNXcml0dGVuOworICAgICAgICByZXR1cm4gYnl0
ZXNXcml0dGVuOworICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIGxl
bmd0aCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBsZW5ndGggPD0gMCkgeworICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMCkgeworICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSAmJiAhRlMuaXNEaXIobm9kZS5t
b2RlKSkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVO
T0RFVik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0
ZSkgeworICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVPUE5P
VFNVUFApOworICAgICAgICB9CisgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKHN0
cmVhbSwgb2Zmc2V0LCBsZW5ndGgpOworICAgICAgfSxtbWFwOmZ1bmN0aW9uIChzdHJlYW0sIGJ1
ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90LCBmbGFncykgeworICAgICAgICAv
LyBUT0RPIGlmIFBST1QgaXMgUFJPVF9XUklURSwgbWFrZSBzdXJlIHdlIGhhdmUgd3JpdGUgYWNj
ZXNzCisgICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDEpIHsKKyAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUNDRVMpOworICAgICAgICB9Cisg
ICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMubW1hcCkgeworICAgICAgICAgIHRocm93IG5l
dyBGUy5lcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLm1tYXAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVu
Z3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpOworICAgICAgfX07CisgIGZ1bmN0aW9uIF9zZW5k
KGZkLCBidWYsIGxlbiwgZmxhZ3MpIHsKKyAgICAgIHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZk
KTsKKyAgICAgIGlmICghaW5mbykgeworICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
QkFERik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgIH0KKyAgICAgIGlmIChpbmZvLnNvY2tl
dC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0lORyB8fCBpbmZvLnNvY2tldC5yZWFkeVN0
YXRlID09PSBXZWJTb2NrZXQuQ0xPU0VEKSB7CisgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NP
REVTLkVOT1RDT05OKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgICAgfSBlbHNlIGlmIChpbmZv
LnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ09OTkVDVElORykgeworICAgICAgICBf
X19zZXRFcnJObyhFUlJOT19DT0RFUy5FQUdBSU4pOworICAgICAgICByZXR1cm4gLTE7CisgICAg
ICB9CisgICAgICBpbmZvLnNlbmRlcihIRUFQVTguc3ViYXJyYXkoYnVmLCBidWYrbGVuKSk7Cisg
ICAgICByZXR1cm4gbGVuOworICAgIH0KKyAgZnVuY3Rpb24gX3B3cml0ZShmaWxkZXMsIGJ1Ziwg
bmJ5dGUsIG9mZnNldCkgeworICAgICAgLy8gc3NpemVfdCBwd3JpdGUoaW50IGZpbGRlcywgY29u
c3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUsIG9mZl90IG9mZnNldCk7CisgICAgICAvLyBodHRw
Oi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy93cml0
ZS5odG1sCisgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7CisgICAgICBp
ZiAoIXN0cmVhbSkgeworICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Cisg
ICAgICAgIHJldHVybiAtMTsKKyAgICAgIH0KKyAgICAgIHRyeSB7CisgICAgICAgIHZhciBzbGFi
ID0gSEVBUDg7CisgICAgICAgIHJldHVybiBGUy53cml0ZShzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5
dGUsIG9mZnNldCk7CisgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIEZTLmhhbmRsZUZTRXJy
b3IoZSk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgIH0KKyAgICB9ZnVuY3Rpb24gX3dyaXRl
KGZpbGRlcywgYnVmLCBuYnl0ZSkgeworICAgICAgLy8gc3NpemVfdCB3cml0ZShpbnQgZmlsZGVz
LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSk7CisgICAgICAvLyBodHRwOi8vcHVicy5v
cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy93cml0ZS5odG1sCisg
ICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7CisgICAgICBpZiAoIXN0cmVh
bSkgeworICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7CisgICAgICAgIHJl
dHVybiAtMTsKKyAgICAgIH0KKyAgICAgIGlmIChzdHJlYW0gJiYgKCdzb2NrZXQnIGluIHN0cmVh
bSkpIHsKKyAgICAgICAgcmV0dXJuIF9zZW5kKGZpbGRlcywgYnVmLCBuYnl0ZSwgMCk7CisgICAg
ICB9CisgICAgICB0cnkgeworICAgICAgICB2YXIgc2xhYiA9IEhFQVA4OworICAgICAgICByZXR1
cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlKTsKKyAgICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAg
ICAgfQorICAgIH1mdW5jdGlvbiBfZndyaXRlKHB0ciwgc2l6ZSwgbml0ZW1zLCBzdHJlYW0pIHsK
KyAgICAgIC8vIHNpemVfdCBmd3JpdGUoY29uc3Qgdm9pZCAqcmVzdHJpY3QgcHRyLCBzaXplX3Qg
c2l6ZSwgc2l6ZV90IG5pdGVtcywgRklMRSAqcmVzdHJpY3Qgc3RyZWFtKTsKKyAgICAgIC8vIGh0
dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2Z3
cml0ZS5odG1sCisgICAgICB2YXIgYnl0ZXNUb1dyaXRlID0gbml0ZW1zICogc2l6ZTsKKyAgICAg
IGlmIChieXRlc1RvV3JpdGUgPT0gMCkgcmV0dXJuIDA7CisgICAgICB2YXIgYnl0ZXNXcml0dGVu
ID0gX3dyaXRlKHN0cmVhbSwgcHRyLCBieXRlc1RvV3JpdGUpOworICAgICAgaWYgKGJ5dGVzV3Jp
dHRlbiA9PSAtMSkgeworICAgICAgICB2YXIgc3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVh
bSk7CisgICAgICAgIGlmIChzdHJlYW1PYmopIHN0cmVhbU9iai5lcnJvciA9IHRydWU7CisgICAg
ICAgIHJldHVybiAwOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3Io
Ynl0ZXNXcml0dGVuIC8gc2l6ZSk7CisgICAgICB9CisgICAgfQorICBNb2R1bGVbIl9zdHJsZW4i
XSA9IF9zdHJsZW47CisgIGZ1bmN0aW9uIF9fcmVhbGx5TmVnYXRpdmUoeCkgeworICAgICAgcmV0
dXJuIHggPCAwIHx8ICh4ID09PSAwICYmICgxL3gpID09PSAtSW5maW5pdHkpOworICAgIH1mdW5j
dGlvbiBfX2Zvcm1hdFN0cmluZyhmb3JtYXQsIHZhcmFyZ3MpIHsKKyAgICAgIHZhciB0ZXh0SW5k
ZXggPSBmb3JtYXQ7CisgICAgICB2YXIgYXJnSW5kZXggPSAwOworICAgICAgZnVuY3Rpb24gZ2V0
TmV4dEFyZyh0eXBlKSB7CisgICAgICAgIC8vIE5PVEU6IEV4cGxpY2l0bHkgaWdub3JpbmcgdHlw
ZSBzYWZldHkuIE90aGVyd2lzZSB0aGlzIGZhaWxzOgorICAgICAgICAvLyAgICAgICBpbnQgeCA9
IDQ7IHByaW50ZigiJWNcbiIsIChjaGFyKXgpOworICAgICAgICB2YXIgcmV0OworICAgICAgICBp
ZiAodHlwZSA9PT0gJ2RvdWJsZScpIHsKKyAgICAgICAgICByZXQgPSBIRUFQRjY0WygoKHZhcmFy
Z3MpKyhhcmdJbmRleCkpPj4zKV07CisgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnaTY0Jykg
eworICAgICAgICAgIHJldCA9IFtIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXSwK
KyAgICAgICAgICAgICAgICAgSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCs4KSk+PjIpXV07
CisgICAgICAgICAgYXJnSW5kZXggKz0gODsgLy8gZWFjaCAzMi1iaXQgY2h1bmsgaXMgaW4gYSA2
NC1iaXQgYmxvY2sKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0eXBlID0gJ2kzMic7IC8v
IHZhcmFyZ3MgYXJlIGFsd2F5cyBpMzIsIGk2NCwgb3IgZG91YmxlCisgICAgICAgICAgcmV0ID0g
SEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07CisgICAgICAgIH0KKyAgICAgICAg
YXJnSW5kZXggKz0gTWF0aC5tYXgoUnVudGltZS5nZXROYXRpdmVGaWVsZFNpemUodHlwZSksIFJ1
bnRpbWUuZ2V0QWxpZ25TaXplKHR5cGUsIG51bGwsIHRydWUpKTsKKyAgICAgICAgcmV0dXJuIHJl
dDsKKyAgICAgIH0KKyAgICAgIHZhciByZXQgPSBbXTsKKyAgICAgIHZhciBjdXJyLCBuZXh0LCBj
dXJyQXJnOworICAgICAgd2hpbGUoMSkgeworICAgICAgICB2YXIgc3RhcnRUZXh0SW5kZXggPSB0
ZXh0SW5kZXg7CisgICAgICAgIGN1cnIgPSBIRUFQOFsodGV4dEluZGV4KV07CisgICAgICAgIGlm
IChjdXJyID09PSAwKSBicmVhazsKKyAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEp
fDApXTsKKyAgICAgICAgaWYgKGN1cnIgPT0gMzcpIHsKKyAgICAgICAgICAvLyBIYW5kbGUgZmxh
Z3MuCisgICAgICAgICAgdmFyIGZsYWdBbHdheXNTaWduZWQgPSBmYWxzZTsKKyAgICAgICAgICB2
YXIgZmxhZ0xlZnRBbGlnbiA9IGZhbHNlOworICAgICAgICAgIHZhciBmbGFnQWx0ZXJuYXRpdmUg
PSBmYWxzZTsKKyAgICAgICAgICB2YXIgZmxhZ1plcm9QYWQgPSBmYWxzZTsKKyAgICAgICAgICBm
bGFnc0xvb3A6IHdoaWxlICgxKSB7CisgICAgICAgICAgICBzd2l0Y2ggKG5leHQpIHsKKyAgICAg
ICAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgICAgICBmbGFnQWx3YXlzU2lnbmVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSA0NToKKyAgICAg
ICAgICAgICAgICBmbGFnTGVmdEFsaWduID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgICAgICBmbGFnQWx0ZXJuYXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDQ4Ogor
ICAgICAgICAgICAgICAgIGlmIChmbGFnWmVyb1BhZCkgeworICAgICAgICAgICAgICAgICAgYnJl
YWsgZmxhZ3NMb29wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICBmbGFnWmVyb1BhZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWsg
ZmxhZ3NMb29wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dEluZGV4Kys7CisgICAg
ICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOworICAgICAgICAgIH0KKyAg
ICAgICAgICAvLyBIYW5kbGUgd2lkdGguCisgICAgICAgICAgdmFyIHdpZHRoID0gMDsKKyAgICAg
ICAgICBpZiAobmV4dCA9PSA0MikgeworICAgICAgICAgICAgd2lkdGggPSBnZXROZXh0QXJnKCdp
MzInKTsKKyAgICAgICAgICAgIHRleHRJbmRleCsrOworICAgICAgICAgICAgbmV4dCA9IEhFQVA4
WygodGV4dEluZGV4KzEpfDApXTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hp
bGUgKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NykgeworICAgICAgICAgICAgICB3aWR0aCA9IHdp
ZHRoICogMTAgKyAobmV4dCAtIDQ4KTsKKyAgICAgICAgICAgICAgdGV4dEluZGV4Kys7CisgICAg
ICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07CisgICAgICAgICAgICB9
CisgICAgICAgICAgfQorICAgICAgICAgIC8vIEhhbmRsZSBwcmVjaXNpb24uCisgICAgICAgICAg
dmFyIHByZWNpc2lvblNldCA9IGZhbHNlOworICAgICAgICAgIGlmIChuZXh0ID09IDQ2KSB7Cisg
ICAgICAgICAgICB2YXIgcHJlY2lzaW9uID0gMDsKKyAgICAgICAgICAgIHByZWNpc2lvblNldCA9
IHRydWU7CisgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKKyAgICAgICAgICAgIG5leHQgPSBIRUFQ
OFsoKHRleHRJbmRleCsxKXwwKV07CisgICAgICAgICAgICBpZiAobmV4dCA9PSA0MikgeworICAg
ICAgICAgICAgICBwcmVjaXNpb24gPSBnZXROZXh0QXJnKCdpMzInKTsKKyAgICAgICAgICAgICAg
dGV4dEluZGV4Kys7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB3aGlsZSgx
KSB7CisgICAgICAgICAgICAgICAgdmFyIHByZWNpc2lvbkNociA9IEhFQVA4WygodGV4dEluZGV4
KzEpfDApXTsKKyAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uQ2hyIDwgNDggfHwKKyAgICAg
ICAgICAgICAgICAgICAgcHJlY2lzaW9uQ2hyID4gNTcpIGJyZWFrOworICAgICAgICAgICAgICAg
IHByZWNpc2lvbiA9IHByZWNpc2lvbiAqIDEwICsgKHByZWNpc2lvbkNociAtIDQ4KTsKKyAgICAg
ICAgICAgICAgICB0ZXh0SW5kZXgrKzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKKyAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDY7IC8vIFN0YW5kYXJkIGRlZmF1
bHQuCisgICAgICAgICAgfQorICAgICAgICAgIC8vIEhhbmRsZSBpbnRlZ2VyIHNpemVzLiBXQVJO
SU5HOiBUaGVzZSBhc3N1bWUgYSAzMi1iaXQgYXJjaGl0ZWN0dXJlIQorICAgICAgICAgIHZhciBh
cmdTaXplOworICAgICAgICAgIHN3aXRjaCAoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkgewor
ICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgIHZhciBuZXh0TmV4dCA9IEhFQVA4
WygodGV4dEluZGV4KzIpfDApXTsKKyAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEwNCkg
eworICAgICAgICAgICAgICAgIHRleHRJbmRleCsrOworICAgICAgICAgICAgICAgIGFyZ1NpemUg
PSAxOyAvLyBjaGFyIChhY3R1YWxseSBpMzIgaW4gdmFyYXJncykKKyAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBhcmdTaXplID0gMjsgLy8gc2hvcnQgKGFjdHVhbGx5IGkz
MiBpbiB2YXJhcmdzKQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAgICAgIHZhciBuZXh0TmV4dCA9IEhFQVA4Wygo
dGV4dEluZGV4KzIpfDApXTsKKyAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEwOCkgewor
ICAgICAgICAgICAgICAgIHRleHRJbmRleCsrOworICAgICAgICAgICAgICAgIGFyZ1NpemUgPSA4
OyAvLyBsb25nIGxvbmcKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBh
cmdTaXplID0gNDsgLy8gbG9uZworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAnTCc6IC8vIGxvbmcgbG9uZworICAgICAgICAgICAgY2FzZSAn
cSc6IC8vIGludDY0X3QKKyAgICAgICAgICAgIGNhc2UgJ2onOiAvLyBpbnRtYXhfdAorICAgICAg
ICAgICAgICBhcmdTaXplID0gODsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICd6JzogLy8gc2l6ZV90CisgICAgICAgICAgICBjYXNlICd0JzogLy8gcHRyZGlmZl90Cisg
ICAgICAgICAgICBjYXNlICdJJzogLy8gc2lnbmVkIHB0cmRpZmZfdCBvciB1bnNpZ25lZCBzaXpl
X3QKKyAgICAgICAgICAgICAgYXJnU2l6ZSA9IDQ7CisgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgYXJnU2l6ZSA9IG51bGw7CisgICAgICAg
ICAgfQorICAgICAgICAgIGlmIChhcmdTaXplKSB0ZXh0SW5kZXgrKzsKKyAgICAgICAgICBuZXh0
ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOworICAgICAgICAgIC8vIEhhbmRsZSB0eXBlIHNw
ZWNpZmllci4KKyAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsK
KyAgICAgICAgICAgIGNhc2UgJ2QnOiBjYXNlICdpJzogY2FzZSAndSc6IGNhc2UgJ28nOiBjYXNl
ICd4JzogY2FzZSAnWCc6IGNhc2UgJ3AnOiB7CisgICAgICAgICAgICAgIC8vIEludGVnZXIuCisg
ICAgICAgICAgICAgIHZhciBzaWduZWQgPSBuZXh0ID09IDEwMCB8fCBuZXh0ID09IDEwNTsKKyAg
ICAgICAgICAgICAgYXJnU2l6ZSA9IGFyZ1NpemUgfHwgNDsKKyAgICAgICAgICAgICAgdmFyIGN1
cnJBcmcgPSBnZXROZXh0QXJnKCdpJyArIChhcmdTaXplICogOCkpOworICAgICAgICAgICAgICB2
YXIgYXJnVGV4dDsKKyAgICAgICAgICAgICAgLy8gRmxhdHRlbiBpNjQtMSBbbG93LCBoaWdoXSBp
bnRvIGEgKHNsaWdodGx5IHJvdW5kZWQpIGRvdWJsZQorICAgICAgICAgICAgICBpZiAoYXJnU2l6
ZSA9PSA4KSB7CisgICAgICAgICAgICAgICAgY3VyckFyZyA9IFJ1bnRpbWUubWFrZUJpZ0ludChj
dXJyQXJnWzBdLCBjdXJyQXJnWzFdLCBuZXh0ID09IDExNyk7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgLy8gVHJ1bmNhdGUgdG8gcmVxdWVzdGVkIHNpemUuCisgICAgICAgICAgICAg
IGlmIChhcmdTaXplIDw9IDQpIHsKKyAgICAgICAgICAgICAgICB2YXIgbGltaXQgPSBNYXRoLnBv
dygyNTYsIGFyZ1NpemUpIC0gMTsKKyAgICAgICAgICAgICAgICBjdXJyQXJnID0gKHNpZ25lZCA/
IHJlU2lnbiA6IHVuU2lnbikoY3VyckFyZyAmIGxpbWl0LCBhcmdTaXplICogOCk7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgLy8gRm9ybWF0IHRoZSBudW1iZXIuCisgICAgICAgICAg
ICAgIHZhciBjdXJyQWJzQXJnID0gTWF0aC5hYnMoY3VyckFyZyk7CisgICAgICAgICAgICAgIHZh
ciBwcmVmaXggPSAnJzsKKyAgICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAwIHx8IG5leHQgPT0g
MTA1KSB7CisgICAgICAgICAgICAgICAgYXJnVGV4dCA9IHJlU2lnbihjdXJyQXJnLCA4ICogYXJn
U2l6ZSwgMSkudG9TdHJpbmcoMTApOworICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0g
MTE3KSB7CisgICAgICAgICAgICAgICAgYXJnVGV4dCA9IHVuU2lnbihjdXJyQXJnLCA4ICogYXJn
U2l6ZSwgMSkudG9TdHJpbmcoMTApOworICAgICAgICAgICAgICAgIGN1cnJBcmcgPSBNYXRoLmFi
cyhjdXJyQXJnKTsKKyAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDExMSkgeworICAg
ICAgICAgICAgICAgIGFyZ1RleHQgPSAoZmxhZ0FsdGVybmF0aXZlID8gJzAnIDogJycpICsgY3Vy
ckFic0FyZy50b1N0cmluZyg4KTsKKyAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDEy
MCB8fCBuZXh0ID09IDg4KSB7CisgICAgICAgICAgICAgICAgcHJlZml4ID0gKGZsYWdBbHRlcm5h
dGl2ZSAmJiBjdXJyQXJnICE9IDApID8gJzB4JyA6ICcnOworICAgICAgICAgICAgICAgIGlmIChj
dXJyQXJnIDwgMCkgeworICAgICAgICAgICAgICAgICAgLy8gUmVwcmVzZW50IG5lZ2F0aXZlIG51
bWJlcnMgaW4gaGV4IGFzIDIncyBjb21wbGVtZW50LgorICAgICAgICAgICAgICAgICAgY3VyckFy
ZyA9IC1jdXJyQXJnOworICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChjdXJyQWJzQXJnIC0g
MSkudG9TdHJpbmcoMTYpOworICAgICAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IFtdOworICAg
ICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdUZXh0Lmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKCgweEYgLSBwYXJzZUludChhcmdUZXh0
W2ldLCAxNikpLnRvU3RyaW5nKDE2KSk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4oJycpOworICAgICAgICAgICAgICAgICAgd2hp
bGUgKGFyZ1RleHQubGVuZ3RoIDwgYXJnU2l6ZSAqIDIpIGFyZ1RleHQgPSAnZicgKyBhcmdUZXh0
OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0g
Y3VyckFic0FyZy50b1N0cmluZygxNik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmIChuZXh0ID09IDg4KSB7CisgICAgICAgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXgu
dG9VcHBlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBw
ZXJDYXNlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5l
eHQgPT0gMTEyKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJBYnNBcmcgPT09IDApIHsKKyAg
ICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKG5pbCknOworICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICBwcmVmaXggPSAnMHgnOworICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmcoMTYpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uU2V0KSB7CisgICAgICAg
ICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgcHJlY2lzaW9uKSB7CisgICAgICAgICAg
ICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgLy8gQWRkIHNpZ24gaWYgbmVlZGVkCisgICAgICAg
ICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJB
cmcgPCAwKSB7CisgICAgICAgICAgICAgICAgICBwcmVmaXggPSAnLScgKyBwcmVmaXg7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICcrJyArIHBy
ZWZpeDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
Ly8gQWRkIHBhZGRpbmcuCisgICAgICAgICAgICAgIHdoaWxlIChwcmVmaXgubGVuZ3RoICsgYXJn
VGV4dC5sZW5ndGggPCB3aWR0aCkgeworICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWdu
KSB7CisgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkKSB7CisgICAgICAgICAg
ICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdUZXh0OworICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gJyAnICsgcHJlZml4OworICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBpbnRvIHRoZSBidWZmZXIuCisgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBwcmVmaXggKyBhcmdUZXh0OworICAgICAgICAgICAgICBhcmdUZXh0LnNw
bGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikgeworICAgICAgICAgICAgICAgIHJldC5wdXNo
KGNoci5jaGFyQ29kZUF0KDApKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAnZic6IGNhc2UgJ0YnOiBjYXNl
ICdlJzogY2FzZSAnRSc6IGNhc2UgJ2cnOiBjYXNlICdHJzogeworICAgICAgICAgICAgICAvLyBG
bG9hdC4KKyAgICAgICAgICAgICAgdmFyIGN1cnJBcmcgPSBnZXROZXh0QXJnKCdkb3VibGUnKTsK
KyAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7CisgICAgICAgICAgICAgIGlmIChpc05hTihjdXJy
QXJnKSkgeworICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnbmFuJzsKKyAgICAgICAgICAgICAg
ICBmbGFnWmVyb1BhZCA9IGZhbHNlOworICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0
ZShjdXJyQXJnKSkgeworICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoY3VyckFyZyA8IDAgPyAn
LScgOiAnJykgKyAnaW5mJzsKKyAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwor
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBpc0dlbmVyYWwgPSBm
YWxzZTsKKyAgICAgICAgICAgICAgICB2YXIgZWZmZWN0aXZlUHJlY2lzaW9uID0gTWF0aC5taW4o
cHJlY2lzaW9uLCAyMCk7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCBnL0cgdG8gZi9GIG9y
IGUvRSwgYXMgcGVyOgorICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5v
cmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0aW9ucy9wcmludGYuaHRtbAorICAgICAgICAg
ICAgICAgIGlmIChuZXh0ID09IDEwMyB8fCBuZXh0ID09IDcxKSB7CisgICAgICAgICAgICAgICAg
ICBpc0dlbmVyYWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lz
aW9uIHx8IDE7CisgICAgICAgICAgICAgICAgICB2YXIgZXhwb25lbnQgPSBwYXJzZUludChjdXJy
QXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJlY2lzaW9uKS5zcGxpdCgnZScpWzFdLCAxMCk7
CisgICAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uID4gZXhwb25lbnQgJiYgZXhwb25lbnQg
Pj0gLTQpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2Yn
IDogJ0YnKS5jaGFyQ29kZUF0KDApOworICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24gLT0g
ZXhwb25lbnQgKyAxOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2UnIDogJ0UnKS5jaGFyQ29kZUF0KDApOwor
ICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24tLTsKKyAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVByZWNpc2lvbiA9IE1hdGgubWluKHByZWNpc2lvbiwg
MjApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSAxMDEg
fHwgbmV4dCA9PSA2OSkgeworICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9F
eHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24pOworICAgICAgICAgICAgICAgICAgLy8gTWFr
ZSBzdXJlIHRoZSBleHBvbmVudCBoYXMgYXQgbGVhc3QgMiBkaWdpdHMuCisgICAgICAgICAgICAg
ICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFyZ1RleHQpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBhcmdUZXh0LnNsaWNlKDAsIC0xKSArICcwJyArIGFyZ1RleHQuc2xpY2Uo
LTEpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4
dCA9PSAxMDIgfHwgbmV4dCA9PSA3MCkgeworICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1
cnJBcmcudG9GaXhlZChlZmZlY3RpdmVQcmVjaXNpb24pOworICAgICAgICAgICAgICAgICAgaWYg
KGN1cnJBcmcgPT09IDAgJiYgX19yZWFsbHlOZWdhdGl2ZShjdXJyQXJnKSkgeworICAgICAgICAg
ICAgICAgICAgICBhcmdUZXh0ID0gJy0nICsgYXJnVGV4dDsKKyAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIHBhcnRzID0gYXJnVGV4dC5z
cGxpdCgnZScpOworICAgICAgICAgICAgICAgIGlmIChpc0dlbmVyYWwgJiYgIWZsYWdBbHRlcm5h
dGl2ZSkgeworICAgICAgICAgICAgICAgICAgLy8gRGlzY2FyZCB0cmFpbGluZyB6ZXJvcyBhbmQg
cGVyaW9kcy4KKyAgICAgICAgICAgICAgICAgIHdoaWxlIChwYXJ0c1swXS5sZW5ndGggPiAxICYm
IHBhcnRzWzBdLmluZGV4T2YoJy4nKSAhPSAtMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAg
IChwYXJ0c1swXS5zbGljZSgtMSkgPT0gJzAnIHx8IHBhcnRzWzBdLnNsaWNlKC0xKSA9PSAnLicp
KSB7CisgICAgICAgICAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNbMF0uc2xpY2UoMCwgLTEp
OworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBhIHBlcmlvZCBpbiBhbHRlcm5hdGl2ZSBt
b2RlLgorICAgICAgICAgICAgICAgICAgaWYgKGZsYWdBbHRlcm5hdGl2ZSAmJiBhcmdUZXh0Lmlu
ZGV4T2YoJy4nKSA9PSAtMSkgcGFydHNbMF0gKz0gJy4nOworICAgICAgICAgICAgICAgICAgLy8g
WmVybyBwYWQgdW50aWwgcmVxdWlyZWQgcHJlY2lzaW9uLgorICAgICAgICAgICAgICAgICAgd2hp
bGUgKHByZWNpc2lvbiA+IGVmZmVjdGl2ZVByZWNpc2lvbisrKSBwYXJ0c1swXSArPSAnMCc7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBwYXJ0c1swXSArIChw
YXJ0cy5sZW5ndGggPiAxID8gJ2UnICsgcGFydHNbMV0gOiAnJyk7CisgICAgICAgICAgICAgICAg
Ly8gQ2FwaXRhbGl6ZSAnRScgaWYgbmVlZGVkLgorICAgICAgICAgICAgICAgIGlmIChuZXh0ID09
IDY5KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVyQ2FzZSgpOworICAgICAgICAgICAgICAgIC8v
IEFkZCBzaWduLgorICAgICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkICYmIGN1cnJB
cmcgPj0gMCkgeworICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcrJyArIGFyZ1RleHQ7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIC8vIEFkZCBw
YWRkaW5nLgorICAgICAgICAgICAgICB3aGlsZSAoYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewor
ICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7CisgICAgICAgICAgICAgICAgICBh
cmdUZXh0ICs9ICcgJzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0WzBdID09ICctJyB8fCBhcmdUZXh0WzBdID09
ICcrJykpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGFyZ1RleHRbMF0gKyAnMCcg
KyBhcmdUZXh0LnNsaWNlKDEpOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVyb1BhZCA/ICcwJyA6ICcgJykgKyBhcmdUZXh0
OworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAvLyBBZGp1c3QgY2FzZS4KKyAgICAgICAgICAgICAgaWYgKG5leHQg
PCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKTsKKyAgICAgICAgICAgICAgLy8g
SW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVmZmVyLgorICAgICAgICAgICAgICBhcmdUZXh0
LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikgeworICAgICAgICAgICAgICAgIHJldC5w
dXNoKGNoci5jaGFyQ29kZUF0KDApKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAncyc6IHsKKyAgICAgICAg
ICAgICAgLy8gU3RyaW5nLgorICAgICAgICAgICAgICB2YXIgYXJnID0gZ2V0TmV4dEFyZygnaTgq
Jyk7CisgICAgICAgICAgICAgIHZhciBhcmdMZW5ndGggPSBhcmcgPyBfc3RybGVuKGFyZykgOiAn
KG51bGwpJy5sZW5ndGg7CisgICAgICAgICAgICAgIGlmIChwcmVjaXNpb25TZXQpIGFyZ0xlbmd0
aCA9IE1hdGgubWluKGFyZ0xlbmd0aCwgcHJlY2lzaW9uKTsKKyAgICAgICAgICAgICAgaWYgKCFm
bGFnTGVmdEFsaWduKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRo
LS0pIHsKKyAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYgKGFyZykgeworICAgICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAg
ICAgIHJldC5wdXNoKEhFQVBVOFsoKGFyZysrKXwwKV0pOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXQgPSByZXQuY29uY2F0KGlu
dEFycmF5RnJvbVN0cmluZygnKG51bGwpJy5zdWJzdHIoMCwgYXJnTGVuZ3RoKSwgdHJ1ZSkpOwor
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7CisgICAg
ICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsKKyAgICAgICAgICAgICAg
ICAgIHJldC5wdXNoKDMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlICdjJzog
eworICAgICAgICAgICAgICAvLyBDaGFyYWN0ZXIuCisgICAgICAgICAgICAgIGlmIChmbGFnTGVm
dEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdpOCcpKTsKKyAgICAgICAgICAgICAgd2hpbGUg
KC0td2lkdGggPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0LnB1c2goMzIpOworICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgIGlmICghZmxhZ0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4
dEFyZygnaTgnKSk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgY2FzZSAnbic6IHsKKyAgICAgICAgICAgICAgLy8gV3JpdGUgdGhlIGxlbmd0aCB3cml0
dGVuIHNvIGZhciB0byB0aGUgbmV4dCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgIHZhciBwdHIg
PSBnZXROZXh0QXJnKCdpMzIqJyk7CisgICAgICAgICAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT1y
ZXQubGVuZ3RoCisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY2FzZSAnJSc6IHsKKyAgICAgICAgICAgICAgLy8gTGl0ZXJhbCBwZXJjZW50IHNpZ24uCisg
ICAgICAgICAgICAgIHJldC5wdXNoKGN1cnIpOworICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgICAgLy8gVW5rbm93
biBzcGVjaWZpZXJzIHJlbWFpbiB1bnRvdWNoZWQuCisgICAgICAgICAgICAgIGZvciAodmFyIGkg
PSBzdGFydFRleHRJbmRleDsgaSA8IHRleHRJbmRleCArIDI7IGkrKykgeworICAgICAgICAgICAg
ICAgIHJldC5wdXNoKEhFQVA4WyhpKV0pOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgICAgfQorICAgICAgICAgIHRleHRJbmRleCArPSAyOworICAgICAgICAgIC8vIFRP
RE86IFN1cHBvcnQgYS9BIChoZXggZmxvYXQpIGFuZCBtIChsYXN0IGVycm9yKSBzcGVjaWZpZXJz
LgorICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgJTEke3NwZWNpZmllcn0gZm9yIGFyZyBzZWxl
Y3Rpb24uCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcmV0LnB1c2goY3Vycik7CisgICAg
ICAgICAgdGV4dEluZGV4ICs9IDE7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHJldHVybiBy
ZXQ7CisgICAgfWZ1bmN0aW9uIF9mcHJpbnRmKHN0cmVhbSwgZm9ybWF0LCB2YXJhcmdzKSB7Cisg
ICAgICAvLyBpbnQgZnByaW50ZihGSUxFICpyZXN0cmljdCBzdHJlYW0sIGNvbnN0IGNoYXIgKnJl
c3RyaWN0IGZvcm1hdCwgLi4uKTsKKyAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcv
b25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5odG1sCisgICAgICB2YXIgcmVz
dWx0ID0gX19mb3JtYXRTdHJpbmcoZm9ybWF0LCB2YXJhcmdzKTsKKyAgICAgIHZhciBzdGFjayA9
IFJ1bnRpbWUuc3RhY2tTYXZlKCk7CisgICAgICB2YXIgcmV0ID0gX2Z3cml0ZShhbGxvY2F0ZShy
ZXN1bHQsICdpOCcsIEFMTE9DX1NUQUNLKSwgMSwgcmVzdWx0Lmxlbmd0aCwgc3RyZWFtKTsKKyAg
ICAgIFJ1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKTsKKyAgICAgIHJldHVybiByZXQ7CisgICAg
fWZ1bmN0aW9uIF9wcmludGYoZm9ybWF0LCB2YXJhcmdzKSB7CisgICAgICAvLyBpbnQgcHJpbnRm
KGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKKyAgICAgIC8vIGh0dHA6Ly9wdWJz
Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5odG1s
CisgICAgICB2YXIgc3Rkb3V0ID0gSEVBUDMyWygoX3N0ZG91dCk+PjIpXTsKKyAgICAgIHJldHVy
biBfZnByaW50ZihzdGRvdXQsIGZvcm1hdCwgdmFyYXJncyk7CisgICAgfQorICBmdW5jdGlvbiBf
YWJvcnQoKSB7CisgICAgICBNb2R1bGVbJ2Fib3J0J10oKTsKKyAgICB9CisgIGZ1bmN0aW9uIF9f
X2Vycm5vX2xvY2F0aW9uKCkgeworICAgICAgcmV0dXJuIF9fX2Vycm5vX3N0YXRlOworICAgIH12
YXIgX19fZXJybm89X19fZXJybm9fbG9jYXRpb247CisgIE1vZHVsZVsiX21lbWNweSJdID0gX21l
bWNweTt2YXIgX2xsdm1fbWVtY3B5X3AwaThfcDBpOF9pMzI9X21lbWNweTsKKyAgZnVuY3Rpb24g
X3NicmsoYnl0ZXMpIHsKKyAgICAgIC8vIEltcGxlbWVudCBhIExpbnV4LWxpa2UgJ21lbW9yeSBh
cmVhJyBmb3Igb3VyICdwcm9jZXNzJy4KKyAgICAgIC8vIENoYW5nZXMgdGhlIHNpemUgb2YgdGhl
IG1lbW9yeSBhcmVhIGJ5IHxieXRlc3w7IHJldHVybnMgdGhlCisgICAgICAvLyBhZGRyZXNzIG9m
IHRoZSBwcmV2aW91cyB0b3AgKCdicmVhaycpIG9mIHRoZSBtZW1vcnkgYXJlYQorICAgICAgLy8g
V2UgY29udHJvbCB0aGUgImR5bmFtaWMiIG1lbW9yeSAtIERZTkFNSUNfQkFTRSB0byBEWU5BTUlD
VE9QCisgICAgICB2YXIgc2VsZiA9IF9zYnJrOworICAgICAgaWYgKCFzZWxmLmNhbGxlZCkgewor
ICAgICAgICBEWU5BTUlDVE9QID0gYWxpZ25NZW1vcnlQYWdlKERZTkFNSUNUT1ApOyAvLyBtYWtl
IHN1cmUgd2Ugc3RhcnQgb3V0IGFsaWduZWQKKyAgICAgICAgc2VsZi5jYWxsZWQgPSB0cnVlOwor
ICAgICAgICBhc3NlcnQoUnVudGltZS5keW5hbWljQWxsb2MpOworICAgICAgICBzZWxmLmFsbG9j
ID0gUnVudGltZS5keW5hbWljQWxsb2M7CisgICAgICAgIFJ1bnRpbWUuZHluYW1pY0FsbG9jID0g
ZnVuY3Rpb24oKSB7IGFib3J0KCdjYW5ub3QgZHluYW1pY2FsbHkgYWxsb2NhdGUsIHNicmsgbm93
IGhhcyBjb250cm9sJykgfTsKKyAgICAgIH0KKyAgICAgIHZhciByZXQgPSBEWU5BTUlDVE9QOwor
ICAgICAgaWYgKGJ5dGVzICE9IDApIHNlbGYuYWxsb2MoYnl0ZXMpOworICAgICAgcmV0dXJuIHJl
dDsgIC8vIFByZXZpb3VzIGJyZWFrIGxvY2F0aW9uLgorICAgIH0KKyAgZnVuY3Rpb24gX3N5c2Nv
bmYobmFtZSkgeworICAgICAgLy8gbG9uZyBzeXNjb25mKGludCBuYW1lKTsKKyAgICAgIC8vIGh0
dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3N5
c2NvbmYuaHRtbAorICAgICAgc3dpdGNoKG5hbWUpIHsKKyAgICAgICAgY2FzZSA4OiByZXR1cm4g
UEFHRV9TSVpFOworICAgICAgICBjYXNlIDU0OgorICAgICAgICBjYXNlIDU2OgorICAgICAgICBj
YXNlIDIxOgorICAgICAgICBjYXNlIDYxOgorICAgICAgICBjYXNlIDYzOgorICAgICAgICBjYXNl
IDIyOgorICAgICAgICBjYXNlIDY3OgorICAgICAgICBjYXNlIDIzOgorICAgICAgICBjYXNlIDI0
OgorICAgICAgICBjYXNlIDI1OgorICAgICAgICBjYXNlIDI2OgorICAgICAgICBjYXNlIDI3Ogor
ICAgICAgICBjYXNlIDY5OgorICAgICAgICBjYXNlIDI4OgorICAgICAgICBjYXNlIDEwMToKKyAg
ICAgICAgY2FzZSA3MDoKKyAgICAgICAgY2FzZSA3MToKKyAgICAgICAgY2FzZSAyOToKKyAgICAg
ICAgY2FzZSAzMDoKKyAgICAgICAgY2FzZSAxOTk6CisgICAgICAgIGNhc2UgNzU6CisgICAgICAg
IGNhc2UgNzY6CisgICAgICAgIGNhc2UgMzI6CisgICAgICAgIGNhc2UgNDM6CisgICAgICAgIGNh
c2UgNDQ6CisgICAgICAgIGNhc2UgODA6CisgICAgICAgIGNhc2UgNDY6CisgICAgICAgIGNhc2Ug
NDc6CisgICAgICAgIGNhc2UgNDU6CisgICAgICAgIGNhc2UgNDg6CisgICAgICAgIGNhc2UgNDk6
CisgICAgICAgIGNhc2UgNDI6CisgICAgICAgIGNhc2UgODI6CisgICAgICAgIGNhc2UgMzM6Cisg
ICAgICAgIGNhc2UgNzoKKyAgICAgICAgY2FzZSAxMDg6CisgICAgICAgIGNhc2UgMTA5OgorICAg
ICAgICBjYXNlIDEwNzoKKyAgICAgICAgY2FzZSAxMTI6CisgICAgICAgIGNhc2UgMTE5OgorICAg
ICAgICBjYXNlIDEyMToKKyAgICAgICAgICByZXR1cm4gMjAwODA5OworICAgICAgICBjYXNlIDEz
OgorICAgICAgICBjYXNlIDEwNDoKKyAgICAgICAgY2FzZSA5NDoKKyAgICAgICAgY2FzZSA5NToK
KyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgY2FzZSA3NzoKKyAg
ICAgICAgY2FzZSA4MToKKyAgICAgICAgY2FzZSA4MzoKKyAgICAgICAgY2FzZSA4NDoKKyAgICAg
ICAgY2FzZSA4NToKKyAgICAgICAgY2FzZSA4NjoKKyAgICAgICAgY2FzZSA4NzoKKyAgICAgICAg
Y2FzZSA4ODoKKyAgICAgICAgY2FzZSA4OToKKyAgICAgICAgY2FzZSA5MDoKKyAgICAgICAgY2Fz
ZSA5MToKKyAgICAgICAgY2FzZSA5NDoKKyAgICAgICAgY2FzZSA5NToKKyAgICAgICAgY2FzZSAx
MTA6CisgICAgICAgIGNhc2UgMTExOgorICAgICAgICBjYXNlIDExMzoKKyAgICAgICAgY2FzZSAx
MTQ6CisgICAgICAgIGNhc2UgMTE1OgorICAgICAgICBjYXNlIDExNjoKKyAgICAgICAgY2FzZSAx
MTc6CisgICAgICAgIGNhc2UgMTE4OgorICAgICAgICBjYXNlIDEyMDoKKyAgICAgICAgY2FzZSA0
MDoKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgY2FzZSA3OToKKyAgICAgICAgY2FzZSAxOToK
KyAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGNhc2UgOTI6CisgICAgICAgIGNhc2UgOTM6
CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgY2FzZSA3MjoKKyAgICAgICAgY2FzZSA2OgorICAg
ICAgICBjYXNlIDc0OgorICAgICAgICBjYXNlIDkyOgorICAgICAgICBjYXNlIDkzOgorICAgICAg
ICBjYXNlIDk2OgorICAgICAgICBjYXNlIDk3OgorICAgICAgICBjYXNlIDk4OgorICAgICAgICBj
YXNlIDk5OgorICAgICAgICBjYXNlIDEwMjoKKyAgICAgICAgY2FzZSAxMDM6CisgICAgICAgIGNh
c2UgMTA1OgorICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIDM4OgorICAgICAgICBj
YXNlIDY2OgorICAgICAgICBjYXNlIDUwOgorICAgICAgICBjYXNlIDUxOgorICAgICAgICBjYXNl
IDQ6CisgICAgICAgICAgcmV0dXJuIDEwMjQ7CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgIGNh
c2UgNjQ6CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgcmV0dXJuIDMyOworICAgICAgICBj
YXNlIDU1OgorICAgICAgICBjYXNlIDM3OgorICAgICAgICBjYXNlIDE3OgorICAgICAgICAgIHJl
dHVybiAyMTQ3NDgzNjQ3OworICAgICAgICBjYXNlIDE4OgorICAgICAgICBjYXNlIDE6CisgICAg
ICAgICAgcmV0dXJuIDQ3ODM5OworICAgICAgICBjYXNlIDU5OgorICAgICAgICBjYXNlIDU3Ogor
ICAgICAgICAgIHJldHVybiA5OTsKKyAgICAgICAgY2FzZSA2ODoKKyAgICAgICAgY2FzZSA1ODoK
KyAgICAgICAgICByZXR1cm4gMjA0ODsKKyAgICAgICAgY2FzZSAwOiByZXR1cm4gMjA5NzE1MjsK
KyAgICAgICAgY2FzZSAzOiByZXR1cm4gNjU1MzY7CisgICAgICAgIGNhc2UgMTQ6IHJldHVybiAz
Mjc2ODsKKyAgICAgICAgY2FzZSA3MzogcmV0dXJuIDMyNzY3OworICAgICAgICBjYXNlIDM5OiBy
ZXR1cm4gMTYzODQ7CisgICAgICAgIGNhc2UgNjA6IHJldHVybiAxMDAwOworICAgICAgICBjYXNl
IDEwNjogcmV0dXJuIDcwMDsKKyAgICAgICAgY2FzZSA1MjogcmV0dXJuIDI1NjsKKyAgICAgICAg
Y2FzZSA2MjogcmV0dXJuIDI1NTsKKyAgICAgICAgY2FzZSAyOiByZXR1cm4gMTAwOworICAgICAg
ICBjYXNlIDY1OiByZXR1cm4gNjQ7CisgICAgICAgIGNhc2UgMzY6IHJldHVybiAyMDsKKyAgICAg
ICAgY2FzZSAxMDA6IHJldHVybiAxNjsKKyAgICAgICAgY2FzZSAyMDogcmV0dXJuIDY7CisgICAg
ICAgIGNhc2UgNTM6IHJldHVybiA0OworICAgICAgICBjYXNlIDEwOiByZXR1cm4gMTsKKyAgICAg
IH0KKyAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7CisgICAgICByZXR1cm4g
LTE7CisgICAgfQorICBmdW5jdGlvbiBfdGltZShwdHIpIHsKKyAgICAgIHZhciByZXQgPSBNYXRo
LmZsb29yKERhdGUubm93KCkvMTAwMCk7CisgICAgICBpZiAocHRyKSB7CisgICAgICAgIEhFQVAz
MlsoKHB0cik+PjIpXT1yZXQKKyAgICAgIH0KKyAgICAgIHJldHVybiByZXQ7CisgICAgfQorICBN
b2R1bGVbIl9tZW1zZXQiXSA9IF9tZW1zZXQ7CisgIHZhciBCcm93c2VyPXttYWluTG9vcDp7c2No
ZWR1bGVyOm51bGwsc2hvdWxkUGF1c2U6ZmFsc2UscGF1c2VkOmZhbHNlLHF1ZXVlOltdLHBhdXNl
OmZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNob3VsZFBhdXNlID0g
dHJ1ZTsKKyAgICAgICAgfSxyZXN1bWU6ZnVuY3Rpb24gKCkgeworICAgICAgICAgIGlmIChCcm93
c2VyLm1haW5Mb29wLnBhdXNlZCkgeworICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5wYXVz
ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2NoZWR1bGVyKCk7Cisg
ICAgICAgICAgfQorICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2hvdWxkUGF1c2UgPSBmYWxz
ZTsKKyAgICAgICAgfSx1cGRhdGVTdGF0dXM6ZnVuY3Rpb24gKCkgeworICAgICAgICAgIGlmIChN
b2R1bGVbJ3NldFN0YXR1cyddKSB7CisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IE1vZHVsZVsn
c3RhdHVzTWVzc2FnZSddIHx8ICdQbGVhc2Ugd2FpdC4uLic7CisgICAgICAgICAgICB2YXIgcmVt
YWluaW5nID0gQnJvd3Nlci5tYWluTG9vcC5yZW1haW5pbmdCbG9ja2VyczsKKyAgICAgICAgICAg
IHZhciBleHBlY3RlZCA9IEJyb3dzZXIubWFpbkxvb3AuZXhwZWN0ZWRCbG9ja2VyczsKKyAgICAg
ICAgICAgIGlmIChyZW1haW5pbmcpIHsKKyAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGV4
cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlICsg
JyAoJyArIChleHBlY3RlZCAtIHJlbWFpbmluZykgKyAnLycgKyBleHBlY3RlZCArICcpJyk7Cisg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMn
XShtZXNzYWdlKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXSgnJyk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgfQorICAgICAgICB9fSxpc0Z1bGxTY3JlZW46ZmFsc2UscG9pbnRlckxvY2s6ZmFsc2UsbW9k
dWxlQ29udGV4dENyZWF0ZWRDYWxsYmFja3M6W10sd29ya2VyczpbXSxpbml0OmZ1bmN0aW9uICgp
IHsKKyAgICAgICAgaWYgKCFNb2R1bGVbInByZWxvYWRQbHVnaW5zIl0pIE1vZHVsZVsicHJlbG9h
ZFBsdWdpbnMiXSA9IFtdOyAvLyBuZWVkcyB0byBleGlzdCBldmVuIGluIHdvcmtlcnMKKyAgICAg
ICAgaWYgKEJyb3dzZXIuaW5pdHRlZCB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHJldHVybjsK
KyAgICAgICAgQnJvd3Nlci5pbml0dGVkID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICBuZXcgQmxvYigpOworICAgICAgICAgIEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0gdHJ1
ZTsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgQnJvd3Nlci5oYXNCbG9iQ29uc3Ry
dWN0b3IgPSBmYWxzZTsKKyAgICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogbm8gYmxvYiBj
b25zdHJ1Y3RvciwgY2Fubm90IGNyZWF0ZSBibG9icyB3aXRoIG1pbWV0eXBlcyIpOworICAgICAg
ICB9CisgICAgICAgIEJyb3dzZXIuQmxvYkJ1aWxkZXIgPSB0eXBlb2YgTW96QmxvYkJ1aWxkZXIg
IT0gInVuZGVmaW5lZCIgPyBNb3pCbG9iQnVpbGRlciA6ICh0eXBlb2YgV2ViS2l0QmxvYkJ1aWxk
ZXIgIT0gInVuZGVmaW5lZCIgPyBXZWJLaXRCbG9iQnVpbGRlciA6ICghQnJvd3Nlci5oYXNCbG9i
Q29uc3RydWN0b3IgPyBjb25zb2xlLmxvZygid2FybmluZzogbm8gQmxvYkJ1aWxkZXIiKSA6IG51
bGwpKTsKKyAgICAgICAgQnJvd3Nlci5VUkxPYmplY3QgPSB0eXBlb2Ygd2luZG93ICE9ICJ1bmRl
ZmluZWQiID8gKHdpbmRvdy5VUkwgPyB3aW5kb3cuVVJMIDogd2luZG93LndlYmtpdFVSTCkgOiB1
bmRlZmluZWQ7CisgICAgICAgIGlmICghTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyAmJiB0eXBlb2Yg
QnJvd3Nlci5VUkxPYmplY3QgPT09ICd1bmRlZmluZWQnKSB7CisgICAgICAgICAgY29uc29sZS5s
b2coIndhcm5pbmc6IEJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBjcmVhdGluZyBvYmplY3QgVVJM
cy4gQnVpbHQtaW4gYnJvd3NlciBpbWFnZSBkZWNvZGluZyB3aWxsIG5vdCBiZSBhdmFpbGFibGUu
Iik7CisgICAgICAgICAgTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyA9IHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgLy8gU3VwcG9ydCBmb3IgcGx1Z2lucyB0aGF0IGNhbiBwcm9jZXNzIHByZWxvYWRl
ZCBmaWxlcy4gWW91IGNhbiBhZGQgbW9yZSBvZiB0aGVzZSB0bworICAgICAgICAvLyB5b3VyIGFw
cCBieSBjcmVhdGluZyBhbmQgYXBwZW5kaW5nIHRvIE1vZHVsZS5wcmVsb2FkUGx1Z2lucy4KKyAg
ICAgICAgLy8KKyAgICAgICAgLy8gRWFjaCBwbHVnaW4gaXMgYXNrZWQgaWYgaXQgY2FuIGhhbmRs
ZSBhIGZpbGUgYmFzZWQgb24gdGhlIGZpbGUncyBuYW1lLiBJZiBpdCBjYW4sCisgICAgICAgIC8v
IGl0IGlzIGdpdmVuIHRoZSBmaWxlJ3MgcmF3IGRhdGEuIFdoZW4gaXQgaXMgZG9uZSwgaXQgY2Fs
bHMgYSBjYWxsYmFjayB3aXRoIHRoZSBmaWxlJ3MKKyAgICAgICAgLy8gKHBvc3NpYmx5IG1vZGlm
aWVkKSBkYXRhLiBGb3IgZXhhbXBsZSwgYSBwbHVnaW4gbWlnaHQgZGVjb21wcmVzcyBhIGZpbGUs
IG9yIGl0CisgICAgICAgIC8vIG1pZ2h0IGNyZWF0ZSBzb21lIHNpZGUgZGF0YSBzdHJ1Y3R1cmUg
Zm9yIHVzZSBsYXRlciAobGlrZSBhbiBJbWFnZSBlbGVtZW50LCBldGMuKS4KKyAgICAgICAgdmFy
IGltYWdlUGx1Z2luID0ge307CisgICAgICAgIGltYWdlUGx1Z2luWydjYW5IYW5kbGUnXSA9IGZ1
bmN0aW9uKG5hbWUpIHsKKyAgICAgICAgICByZXR1cm4gIU1vZHVsZS5ub0ltYWdlRGVjb2Rpbmcg
JiYgL1wuKGpwZ3xqcGVnfHBuZ3xibXApJC9pLnRlc3QobmFtZSk7CisgICAgICAgIH07CisgICAg
ICAgIGltYWdlUGx1Z2luWydoYW5kbGUnXSA9IGZ1bmN0aW9uKGJ5dGVBcnJheSwgbmFtZSwgb25s
b2FkLCBvbmVycm9yKSB7CisgICAgICAgICAgdmFyIGIgPSBudWxsOworICAgICAgICAgIGlmIChC
cm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvcikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5
cGUobmFtZSkgfSk7CisgICAgICAgICAgICAgIGlmIChiLnNpemUgIT09IGJ5dGVBcnJheS5sZW5n
dGgpIHsgLy8gU2FmYXJpIGJ1ZyAjMTE4NjMwCisgICAgICAgICAgICAgICAgLy8gU2FmYXJpJ3Mg
QmxvYiBjYW4gb25seSB0YWtlIGFuIEFycmF5QnVmZmVyCisgICAgICAgICAgICAgICAgYiA9IG5l
dyBCbG9iKFsobmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyXSwgeyB0eXBlOiBCcm93
c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgUnVudGltZS53YXJuT25jZSgnQmxvYiBjb25zdHJ1
Y3RvciBwcmVzZW50IGJ1dCBmYWlsczogJyArIGUgKyAnOyBmYWxsaW5nIGJhY2sgdG8gYmxvYiBi
dWlsZGVyJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmICghYikg
eworICAgICAgICAgICAgdmFyIGJiID0gbmV3IEJyb3dzZXIuQmxvYkJ1aWxkZXIoKTsKKyAgICAg
ICAgICAgIGJiLmFwcGVuZCgobmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyKTsgLy8g
d2UgbmVlZCB0byBwYXNzIGEgYnVmZmVyLCBhbmQgbXVzdCBjb3B5IHRoZSBhcnJheSB0byBnZXQg
dGhlIHJpZ2h0IGRhdGEgcmFuZ2UKKyAgICAgICAgICAgIGIgPSBiYi5nZXRCbG9iKCk7CisgICAg
ICAgICAgfQorICAgICAgICAgIHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmpl
Y3RVUkwoYik7CisgICAgICAgICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpOworICAgICAgICAgIGlt
Zy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydChpbWcuY29tcGxldGUs
ICdJbWFnZSAnICsgbmFtZSArICcgY291bGQgbm90IGJlIGRlY29kZWQnKTsKKyAgICAgICAgICAg
IHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICAgICAg
ICAgIGNhbnZhcy53aWR0aCA9IGltZy53aWR0aDsKKyAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQg
PSBpbWcuaGVpZ2h0OworICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOworICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOworICAgICAgICAgICAg
TW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXVtuYW1lXSA9IGNhbnZhczsKKyAgICAgICAgICAgIEJy
b3dzZXIuVVJMT2JqZWN0LnJldm9rZU9iamVjdFVSTCh1cmwpOworICAgICAgICAgICAgaWYgKG9u
bG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7CisgICAgICAgICAgfTsKKyAgICAgICAgICBpbWcub25l
cnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygnSW1hZ2Ug
JyArIHVybCArICcgY291bGQgbm90IGJlIGRlY29kZWQnKTsKKyAgICAgICAgICAgIGlmIChvbmVy
cm9yKSBvbmVycm9yKCk7CisgICAgICAgICAgfTsKKyAgICAgICAgICBpbWcuc3JjID0gdXJsOwor
ICAgICAgICB9OworICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVzaChpbWFnZVBs
dWdpbik7CisgICAgICAgIHZhciBhdWRpb1BsdWdpbiA9IHt9OworICAgICAgICBhdWRpb1BsdWdp
blsnY2FuSGFuZGxlJ10gPSBmdW5jdGlvbihuYW1lKSB7CisgICAgICAgICAgcmV0dXJuICFNb2R1
bGUubm9BdWRpb0RlY29kaW5nICYmIG5hbWUuc3Vic3RyKC00KSBpbiB7ICcub2dnJzogMSwgJy53
YXYnOiAxLCAnLm1wMyc6IDEgfTsKKyAgICAgICAgfTsKKyAgICAgICAgYXVkaW9QbHVnaW5bJ2hh
bmRsZSddID0gZnVuY3Rpb24oYnl0ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsKKyAg
ICAgICAgICB2YXIgZG9uZSA9IGZhbHNlOworICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChhdWRp
bykgeworICAgICAgICAgICAgaWYgKGRvbmUpIHJldHVybjsKKyAgICAgICAgICAgIGRvbmUgPSB0
cnVlOworICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1lXSA9IGF1ZGlv
OworICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7CisgICAgICAgICAg
fQorICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoKSB7CisgICAgICAgICAgICBpZiAoZG9uZSkgcmV0
dXJuOworICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICBNb2R1bGVbInByZWxv
YWRlZEF1ZGlvcyJdW25hbWVdID0gbmV3IEF1ZGlvKCk7IC8vIGVtcHR5IHNoaW0KKyAgICAgICAg
ICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChC
cm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvcikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgdmFyIGIgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBCcm93c2VyLmdldE1p
bWV0eXBlKG5hbWUpIH0pOworICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAg
IHJldHVybiBmYWlsKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgdXJsID0gQnJv
d3Nlci5VUkxPYmplY3QuY3JlYXRlT2JqZWN0VVJMKGIpOyAvLyBYWFggd2UgbmV2ZXIgcmV2b2tl
IHRoaXMhCisgICAgICAgICAgICB2YXIgYXVkaW8gPSBuZXcgQXVkaW8oKTsKKyAgICAgICAgICAg
IGF1ZGlvLmFkZEV2ZW50TGlzdGVuZXIoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7IGZp
bmlzaChhdWRpbykgfSwgZmFsc2UpOyAvLyB1c2UgYWRkRXZlbnRMaXN0ZW5lciBkdWUgdG8gY2hy
b21pdW0gYnVnIDEyNDkyNgorICAgICAgICAgICAgYXVkaW8ub25lcnJvciA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm47CisgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKCd3YXJuaW5nOiBicm93c2VyIGNvdWxkIG5vdCBmdWxseSBkZWNvZGUgYXVkaW8g
JyArIG5hbWUgKyAnLCB0cnlpbmcgc2xvd2VyIGJhc2U2NCBhcHByb2FjaCcpOworICAgICAgICAg
ICAgICBmdW5jdGlvbiBlbmNvZGU2NChkYXRhKSB7CisgICAgICAgICAgICAgICAgdmFyIEJBU0Ug
PSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAx
MjM0NTY3ODkrLyc7CisgICAgICAgICAgICAgICAgdmFyIFBBRCA9ICc9JzsKKyAgICAgICAgICAg
ICAgICB2YXIgcmV0ID0gJyc7CisgICAgICAgICAgICAgICAgdmFyIGxlZnRjaGFyID0gMDsKKyAg
ICAgICAgICAgICAgICB2YXIgbGVmdGJpdHMgPSAwOworICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgbGVmdGNo
YXIgPSAobGVmdGNoYXIgPDwgOCkgfCBkYXRhW2ldOworICAgICAgICAgICAgICAgICAgbGVmdGJp
dHMgKz0gODsKKyAgICAgICAgICAgICAgICAgIHdoaWxlIChsZWZ0Yml0cyA+PSA2KSB7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBjdXJyID0gKGxlZnRjaGFyID4+IChsZWZ0Yml0cy02KSkgJiAw
eDNmOworICAgICAgICAgICAgICAgICAgICBsZWZ0Yml0cyAtPSA2OworICAgICAgICAgICAgICAg
ICAgICByZXQgKz0gQkFTRVtjdXJyXTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxlZnRiaXRzID09IDIpIHsKKyAgICAgICAgICAg
ICAgICAgIHJldCArPSBCQVNFWyhsZWZ0Y2hhciYzKSA8PCA0XTsKKyAgICAgICAgICAgICAgICAg
IHJldCArPSBQQUQgKyBQQUQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0Yml0cyA9
PSA0KSB7CisgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXImMHhmKSA8PCAy
XTsKKyAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQ7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
YXVkaW8uc3JjID0gJ2RhdGE6YXVkaW8veC0nICsgbmFtZS5zdWJzdHIoLTMpICsgJztiYXNlNjQs
JyArIGVuY29kZTY0KGJ5dGVBcnJheSk7CisgICAgICAgICAgICAgIGZpbmlzaChhdWRpbyk7IC8v
IHdlIGRvbid0IHdhaXQgZm9yIGNvbmZpcm1hdGlvbiB0aGlzIHdvcmtlZCAtIGJ1dCBpdCdzIHdv
cnRoIHRyeWluZworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGF1ZGlvLnNyYyA9IHVybDsK
KyAgICAgICAgICAgIC8vIHdvcmthcm91bmQgZm9yIGNocm9tZSBidWcgMTI0OTI2IC0gd2UgZG8g
bm90IGFsd2F5cyBnZXQgb25jYW5wbGF5dGhyb3VnaCBvciBvbmVycm9yCisgICAgICAgICAgICBC
cm93c2VyLnNhZmVTZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBmaW5pc2go
YXVkaW8pOyAvLyB0cnkgdG8gdXNlIGl0IGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCBuZWNlc3Nhcmls
eSByZWFkeSB0byBwbGF5CisgICAgICAgICAgICB9LCAxMDAwMCk7CisgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHJldHVybiBmYWlsKCk7CisgICAgICAgICAgfQorICAgICAgICB9Owor
ICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVzaChhdWRpb1BsdWdpbik7CisgICAg
ICAgIC8vIENhbnZhcyBldmVudCBzZXR1cAorICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydj
YW52YXMnXTsKKyAgICAgICAgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jayA9IGNhbnZhc1sncmVx
dWVzdFBvaW50ZXJMb2NrJ10gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhbnZhc1snbW96UmVxdWVzdFBvaW50ZXJMb2NrJ10gfHwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbnZhc1snd2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrJ107CisgICAg
ICAgIGNhbnZhcy5leGl0UG9pbnRlckxvY2sgPSBkb2N1bWVudFsnZXhpdFBvaW50ZXJMb2NrJ10g
fHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pFeGl0UG9p
bnRlckxvY2snXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRb
J3dlYmtpdEV4aXRQb2ludGVyTG9jayddIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jdGlvbigpe307IC8vIG5vLW9wIGlmIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0Cisg
ICAgICAgIGNhbnZhcy5leGl0UG9pbnRlckxvY2sgPSBjYW52YXMuZXhpdFBvaW50ZXJMb2NrLmJp
bmQoZG9jdW1lbnQpOworICAgICAgICBmdW5jdGlvbiBwb2ludGVyTG9ja0NoYW5nZSgpIHsKKyAg
ICAgICAgICBCcm93c2VyLnBvaW50ZXJMb2NrID0gZG9jdW1lbnRbJ3BvaW50ZXJMb2NrRWxlbWVu
dCddID09PSBjYW52YXMgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnRbJ21velBvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCddID09
PSBjYW52YXM7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcign
cG9pbnRlcmxvY2tjaGFuZ2UnLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOworICAgICAgICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3pwb2ludGVybG9ja2NoYW5nZScsIHBvaW50ZXJM
b2NrQ2hhbmdlLCBmYWxzZSk7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dl
YmtpdHBvaW50ZXJsb2NrY2hhbmdlJywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKE1vZHVsZVsnZWxlbWVudFBvaW50ZXJMb2NrJ10pIHsKKyAgICAgICAgICBjYW52YXMu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldikgeworICAgICAgICAgICAgaWYg
KCFCcm93c2VyLnBvaW50ZXJMb2NrICYmIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2spIHsKKyAg
ICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jaygpOworICAgICAgICAgICAgICBl
di5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0sIGZhbHNlKTsK
KyAgICAgICAgfQorICAgICAgfSxjcmVhdGVDb250ZXh0OmZ1bmN0aW9uIChjYW52YXMsIHVzZVdl
YkdMLCBzZXRJbk1vZHVsZSkgeworICAgICAgICB2YXIgY3R4OworICAgICAgICB0cnkgeworICAg
ICAgICAgIGlmICh1c2VXZWJHTCkgeworICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRl
eHQoJ2V4cGVyaW1lbnRhbC13ZWJnbCcsIHsKKyAgICAgICAgICAgICAgYWxwaGE6IGZhbHNlCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY3R4ID0gY2Fu
dmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmICghY3R4KSB0
aHJvdyAnOignOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgTW9kdWxlLnByaW50
KCdDb3VsZCBub3QgY3JlYXRlIGNhbnZhcyAtICcgKyBlKTsKKyAgICAgICAgICByZXR1cm4gbnVs
bDsKKyAgICAgICAgfQorICAgICAgICBpZiAodXNlV2ViR0wpIHsKKyAgICAgICAgICAvLyBTZXQg
dGhlIGJhY2tncm91bmQgb2YgdGhlIFdlYkdMIGNhbnZhcyB0byBibGFjaworICAgICAgICAgIGNh
bnZhcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiYmxhY2siOworICAgICAgICAgIC8vIFdhcm4g
b24gY29udGV4dCBsb3NzCisgICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmds
Y29udGV4dGxvc3QnLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQoJ1dlYkdM
IGNvbnRleHQgbG9zdC4gWW91IHdpbGwgbmVlZCB0byByZWxvYWQgdGhlIHBhZ2UuJyk7CisgICAg
ICAgICAgfSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGlmIChzZXRJbk1vZHVsZSkgewor
ICAgICAgICAgIE1vZHVsZS5jdHggPSBjdHg7CisgICAgICAgICAgTW9kdWxlLnVzZVdlYkdMID0g
dXNlV2ViR0w7CisgICAgICAgICAgQnJvd3Nlci5tb2R1bGVDb250ZXh0Q3JlYXRlZENhbGxiYWNr
cy5mb3JFYWNoKGZ1bmN0aW9uKGNhbGxiYWNrKSB7IGNhbGxiYWNrKCkgfSk7CisgICAgICAgICAg
QnJvd3Nlci5pbml0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGN0eDsKKyAgICAgIH0s
ZGVzdHJveUNvbnRleHQ6ZnVuY3Rpb24gKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlKSB7
fSxmdWxsU2NyZWVuSGFuZGxlcnNJbnN0YWxsZWQ6ZmFsc2UsbG9ja1BvaW50ZXI6dW5kZWZpbmVk
LHJlc2l6ZUNhbnZhczp1bmRlZmluZWQscmVxdWVzdEZ1bGxTY3JlZW46ZnVuY3Rpb24gKGxvY2tQ
b2ludGVyLCByZXNpemVDYW52YXMpIHsKKyAgICAgICAgQnJvd3Nlci5sb2NrUG9pbnRlciA9IGxv
Y2tQb2ludGVyOworICAgICAgICBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IHJlc2l6ZUNhbnZhczsK
KyAgICAgICAgaWYgKHR5cGVvZiBCcm93c2VyLmxvY2tQb2ludGVyID09PSAndW5kZWZpbmVkJykg
QnJvd3Nlci5sb2NrUG9pbnRlciA9IHRydWU7CisgICAgICAgIGlmICh0eXBlb2YgQnJvd3Nlci5y
ZXNpemVDYW52YXMgPT09ICd1bmRlZmluZWQnKSBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IGZhbHNl
OworICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKKyAgICAgICAgZnVuY3Rp
b24gZnVsbFNjcmVlbkNoYW5nZSgpIHsKKyAgICAgICAgICBCcm93c2VyLmlzRnVsbFNjcmVlbiA9
IGZhbHNlOworICAgICAgICAgIGlmICgoZG9jdW1lbnRbJ3dlYmtpdEZ1bGxTY3JlZW5FbGVtZW50
J10gfHwgZG9jdW1lbnRbJ3dlYmtpdEZ1bGxzY3JlZW5FbGVtZW50J10gfHwKKyAgICAgICAgICAg
ICAgIGRvY3VtZW50Wydtb3pGdWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50Wydtb3pGdWxs
c2NyZWVuRWxlbWVudCddIHx8CisgICAgICAgICAgICAgICBkb2N1bWVudFsnZnVsbFNjcmVlbkVs
ZW1lbnQnXSB8fCBkb2N1bWVudFsnZnVsbHNjcmVlbkVsZW1lbnQnXSkgPT09IGNhbnZhcykgewor
ICAgICAgICAgICAgY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4gPSBkb2N1bWVudFsnY2FuY2VsRnVs
bFNjcmVlbiddIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50Wydtb3pDYW5jZWxGdWxsU2NyZWVuJ10gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdENhbmNlbEZ1bGxTY3JlZW4nXTsKKyAgICAgICAg
ICAgIGNhbnZhcy5jYW5jZWxGdWxsU2NyZWVuID0gY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4uYmlu
ZChkb2N1bWVudCk7CisgICAgICAgICAgICBpZiAoQnJvd3Nlci5sb2NrUG9pbnRlcikgY2FudmFz
LnJlcXVlc3RQb2ludGVyTG9jaygpOworICAgICAgICAgICAgQnJvd3Nlci5pc0Z1bGxTY3JlZW4g
PSB0cnVlOworICAgICAgICAgICAgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKSBCcm93c2VyLnNl
dEZ1bGxTY3JlZW5DYW52YXNTaXplKCk7CisgICAgICAgICAgfSBlbHNlIGlmIChCcm93c2VyLnJl
c2l6ZUNhbnZhcyl7CisgICAgICAgICAgICBCcm93c2VyLnNldFdpbmRvd2VkQ2FudmFzU2l6ZSgp
OworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoTW9kdWxlWydvbkZ1bGxTY3JlZW4nXSkgTW9k
dWxlWydvbkZ1bGxTY3JlZW4nXShCcm93c2VyLmlzRnVsbFNjcmVlbik7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFCcm93c2VyLmZ1bGxTY3JlZW5IYW5kbGVyc0luc3RhbGxlZCkgeworICAgICAg
ICAgIEJyb3dzZXIuZnVsbFNjcmVlbkhhbmRsZXJzSW5zdGFsbGVkID0gdHJ1ZTsKKyAgICAgICAg
ICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVl
bkNoYW5nZSwgZmFsc2UpOworICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21v
emZ1bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7CisgICAgICAgICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxT
Y3JlZW5DaGFuZ2UsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBjYW52YXMucmVxdWVzdEZ1
bGxTY3JlZW4gPSBjYW52YXNbJ3JlcXVlc3RGdWxsU2NyZWVuJ10gfHwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FudmFzWydtb3pSZXF1ZXN0RnVsbFNjcmVlbiddIHx8Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW52YXNbJ3dlYmtpdFJlcXVlc3RG
dWxsU2NyZWVuJ10gPyBmdW5jdGlvbigpIHsgY2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVl
biddKEVsZW1lbnRbJ0FMTE9XX0tFWUJPQVJEX0lOUFVUJ10pIH0gOiBudWxsKTsKKyAgICAgICAg
Y2FudmFzLnJlcXVlc3RGdWxsU2NyZWVuKCk7CisgICAgICB9LHJlcXVlc3RBbmltYXRpb25GcmFt
ZTpmdW5jdGlvbiAoZnVuYykgeworICAgICAgICBpZiAoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUpIHsKKyAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gd2luZG93
WydyZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aW5kb3dbJ21velJlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snd2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lJ10gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2luZG93Wydtc1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snb1JlcXVlc3RBbmltYXRpb25GcmFt
ZSddIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1sn
c2V0VGltZW91dCddOworICAgICAgICB9CisgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuYyk7CisgICAgICB9LHNhZmVDYWxsYmFjazpmdW5jdGlvbiAoZnVuYykgeworICAg
ICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKCFBQk9SVCkgcmV0dXJuIGZ1
bmMuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKKyAgICAgICAgfTsKKyAgICAgIH0sc2FmZVJlcXVl
c3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykgeworICAgICAgICByZXR1cm4gQnJvd3Nl
ci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKCFBQk9S
VCkgZnVuYygpOworICAgICAgICB9KTsKKyAgICAgIH0sc2FmZVNldFRpbWVvdXQ6ZnVuY3Rpb24g
KGZ1bmMsIHRpbWVvdXQpIHsKKyAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOworICAgICAgICB9LCB0aW1lb3V0KTsKKyAg
ICAgIH0sc2FmZVNldEludGVydmFsOmZ1bmN0aW9uIChmdW5jLCB0aW1lb3V0KSB7CisgICAgICAg
IHJldHVybiBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAoIUFCT1JUKSBm
dW5jKCk7CisgICAgICAgIH0sIHRpbWVvdXQpOworICAgICAgfSxnZXRNaW1ldHlwZTpmdW5jdGlv
biAobmFtZSkgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICdqcGcnOiAnaW1hZ2UvanBl
ZycsCisgICAgICAgICAgJ2pwZWcnOiAnaW1hZ2UvanBlZycsCisgICAgICAgICAgJ3BuZyc6ICdp
bWFnZS9wbmcnLAorICAgICAgICAgICdibXAnOiAnaW1hZ2UvYm1wJywKKyAgICAgICAgICAnb2dn
JzogJ2F1ZGlvL29nZycsCisgICAgICAgICAgJ3dhdic6ICdhdWRpby93YXYnLAorICAgICAgICAg
ICdtcDMnOiAnYXVkaW8vbXBlZycKKyAgICAgICAgfVtuYW1lLnN1YnN0cihuYW1lLmxhc3RJbmRl
eE9mKCcuJykrMSldOworICAgICAgfSxnZXRVc2VyTWVkaWE6ZnVuY3Rpb24gKGZ1bmMpIHsKKyAg
ICAgICAgaWYoIXdpbmRvdy5nZXRVc2VyTWVkaWEpIHsKKyAgICAgICAgICB3aW5kb3cuZ2V0VXNl
ck1lZGlhID0gbmF2aWdhdG9yWydnZXRVc2VyTWVkaWEnXSB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuYXZpZ2F0b3JbJ21vekdldFVzZXJNZWRpYSddOworICAgICAgICB9Cisg
ICAgICAgIHdpbmRvdy5nZXRVc2VyTWVkaWEoZnVuYyk7CisgICAgICB9LGdldE1vdmVtZW50WDpm
dW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFgnXSB8fAor
ICAgICAgICAgICAgICAgZXZlbnRbJ21vek1vdmVtZW50WCddIHx8CisgICAgICAgICAgICAgICBl
dmVudFsnd2Via2l0TW92ZW1lbnRYJ10gfHwKKyAgICAgICAgICAgICAgIDA7CisgICAgICB9LGdl
dE1vdmVtZW50WTpmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3Zl
bWVudFknXSB8fAorICAgICAgICAgICAgICAgZXZlbnRbJ21vek1vdmVtZW50WSddIHx8CisgICAg
ICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1lbnRZJ10gfHwKKyAgICAgICAgICAgICAgIDA7
CisgICAgICB9LG1vdXNlWDowLG1vdXNlWTowLG1vdXNlTW92ZW1lbnRYOjAsbW91c2VNb3ZlbWVu
dFk6MCxjYWxjdWxhdGVNb3VzZUV2ZW50OmZ1bmN0aW9uIChldmVudCkgeyAvLyBldmVudCBzaG91
bGQgYmUgbW91c2Vtb3ZlLCBtb3VzZWRvd24gb3IgbW91c2V1cAorICAgICAgICBpZiAoQnJvd3Nl
ci5wb2ludGVyTG9jaykgeworICAgICAgICAgIC8vIFdoZW4gdGhlIHBvaW50ZXIgaXMgbG9ja2Vk
LCBjYWxjdWxhdGUgdGhlIGNvb3JkaW5hdGVzCisgICAgICAgICAgLy8gYmFzZWQgb24gdGhlIG1v
dmVtZW50IG9mIHRoZSBtb3VzZS4KKyAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBGaXJlZm94
IGJ1ZyA3NjQ0OTgKKyAgICAgICAgICBpZiAoZXZlbnQudHlwZSAhPSAnbW91c2Vtb3ZlJyAmJgor
ICAgICAgICAgICAgICAoJ21vek1vdmVtZW50WCcgaW4gZXZlbnQpKSB7CisgICAgICAgICAgICBC
cm93c2VyLm1vdXNlTW92ZW1lbnRYID0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IDA7CisgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFggPSBCcm93
c2VyLmdldE1vdmVtZW50WChldmVudCk7CisgICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1l
bnRZID0gQnJvd3Nlci5nZXRNb3ZlbWVudFkoZXZlbnQpOworICAgICAgICAgIH0KKyAgICAgICAg
ICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlCisgICAgICAgICAgaWYgKHR5cGVvZiBTREwg
IT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAJQnJvd3Nlci5tb3VzZVggPSBTREwubW91c2VY
ICsgQnJvd3Nlci5tb3VzZU1vdmVtZW50WDsKKyAgICAgICAgICAJQnJvd3Nlci5tb3VzZVkgPSBT
REwubW91c2VZICsgQnJvd3Nlci5tb3VzZU1vdmVtZW50WTsKKyAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgIAkvLyBqdXN0IGFkZCB0aGUgbW91c2UgZGVsdGEgdG8gdGhlIGN1cnJlbnQgYWJz
b2x1dCBtb3VzZSBwb3NpdGlvbgorICAgICAgICAgIAkvLyBGSVhNRTogaWRlYWxseSB0aGlzIHNo
b3VsZCBiZSBjbGFtcGVkIGFnYWluc3QgdGhlIGNhbnZhcyBzaXplIGFuZCB6ZXJvCisgICAgICAg
ICAgCUJyb3dzZXIubW91c2VYICs9IEJyb3dzZXIubW91c2VNb3ZlbWVudFg7CisgICAgICAgICAg
CUJyb3dzZXIubW91c2VZICs9IEJyb3dzZXIubW91c2VNb3ZlbWVudFk7CisgICAgICAgICAgfSAg
ICAgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBjYWxjdWxh
dGUgdGhlIG1vdmVtZW50IGJhc2VkIG9uIHRoZSBjaGFuZ2VzCisgICAgICAgICAgLy8gaW4gdGhl
IGNvb3JkaW5hdGVzLgorICAgICAgICAgIHZhciByZWN0ID0gTW9kdWxlWyJjYW52YXMiXS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgICB2YXIgeCA9IGV2ZW50LnBhZ2VYIC0gKHdp
bmRvdy5zY3JvbGxYICsgcmVjdC5sZWZ0KTsKKyAgICAgICAgICB2YXIgeSA9IGV2ZW50LnBhZ2VZ
IC0gKHdpbmRvdy5zY3JvbGxZICsgcmVjdC50b3ApOworICAgICAgICAgIC8vIHRoZSBjYW52YXMg
bWlnaHQgYmUgQ1NTLXNjYWxlZCBjb21wYXJlZCB0byBpdHMgYmFja2J1ZmZlcjsKKyAgICAgICAg
ICAvLyBTREwtdXNpbmcgY29udGVudCB3aWxsIHdhbnQgbW91c2UgY29vcmRpbmF0ZXMgaW4gdGVy
bXMKKyAgICAgICAgICAvLyBvZiBiYWNrYnVmZmVyIHVuaXRzLgorICAgICAgICAgIHZhciBjdyA9
IE1vZHVsZVsiY2FudmFzIl0ud2lkdGg7CisgICAgICAgICAgdmFyIGNoID0gTW9kdWxlWyJjYW52
YXMiXS5oZWlnaHQ7CisgICAgICAgICAgeCA9IHggKiAoY3cgLyByZWN0LndpZHRoKTsKKyAgICAg
ICAgICB5ID0geSAqIChjaCAvIHJlY3QuaGVpZ2h0KTsKKyAgICAgICAgICBCcm93c2VyLm1vdXNl
TW92ZW1lbnRYID0geCAtIEJyb3dzZXIubW91c2VYOworICAgICAgICAgIEJyb3dzZXIubW91c2VN
b3ZlbWVudFkgPSB5IC0gQnJvd3Nlci5tb3VzZVk7CisgICAgICAgICAgQnJvd3Nlci5tb3VzZVgg
PSB4OworICAgICAgICAgIEJyb3dzZXIubW91c2VZID0geTsKKyAgICAgICAgfQorICAgICAgfSx4
aHJMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJvcikgeworICAgICAgICB2YXIgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRy
dWUpOworICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKKyAgICAgICAg
eGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09IDIw
MCB8fCAoeGhyLnN0YXR1cyA9PSAwICYmIHhoci5yZXNwb25zZSkpIHsgLy8gZmlsZSBVUkxzIGNh
biByZXR1cm4gMAorICAgICAgICAgICAgb25sb2FkKHhoci5yZXNwb25zZSk7CisgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIG9uZXJyb3IoKTsKKyAgICAgICAgICB9CisgICAgICAgIH07
CisgICAgICAgIHhoci5vbmVycm9yID0gb25lcnJvcjsKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7
CisgICAgICB9LGFzeW5jTG9hZDpmdW5jdGlvbiAodXJsLCBvbmxvYWQsIG9uZXJyb3IsIG5vUnVu
RGVwKSB7CisgICAgICAgIEJyb3dzZXIueGhyTG9hZCh1cmwsIGZ1bmN0aW9uKGFycmF5QnVmZmVy
KSB7CisgICAgICAgICAgYXNzZXJ0KGFycmF5QnVmZmVyLCAnTG9hZGluZyBkYXRhIGZpbGUgIicg
KyB1cmwgKyAnIiBmYWlsZWQgKG5vIGFycmF5QnVmZmVyKS4nKTsKKyAgICAgICAgICBvbmxvYWQo
bmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTsKKyAgICAgICAgICBpZiAoIW5vUnVuRGVwKSBy
ZW1vdmVSdW5EZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsKKyAgICAgICAgfSwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICBpZiAob25lcnJvcikgeworICAgICAgICAgICAgb25lcnJvcigpOwor
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyAnTG9hZGluZyBkYXRhIGZpbGUg
IicgKyB1cmwgKyAnIiBmYWlsZWQuJzsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAg
ICBpZiAoIW5vUnVuRGVwKSBhZGRSdW5EZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsKKyAgICAgIH0s
cmVzaXplTGlzdGVuZXJzOltdLHVwZGF0ZVJlc2l6ZUxpc3RlbmVyczpmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOworICAgICAgICBCcm93c2VyLnJl
c2l6ZUxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7CisgICAgICAgICAgbGlz
dGVuZXIoY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAgICAgfSk7CisgICAgICB9
LHNldENhbnZhc1NpemU6ZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykgeworICAg
ICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKKyAgICAgICAgY2FudmFzLndpZHRo
ID0gd2lkdGg7CisgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIGlmICgh
bm9VcGRhdGVzKSBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpOworICAgICAgfSx3aW5k
b3dlZFdpZHRoOjAsd2luZG93ZWRIZWlnaHQ6MCxzZXRGdWxsU2NyZWVuQ2FudmFzU2l6ZTpmdW5j
dGlvbiAoKSB7CisgICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOworICAgICAg
ICB0aGlzLndpbmRvd2VkV2lkdGggPSBjYW52YXMud2lkdGg7CisgICAgICAgIHRoaXMud2luZG93
ZWRIZWlnaHQgPSBjYW52YXMuaGVpZ2h0OworICAgICAgICBjYW52YXMud2lkdGggPSBzY3JlZW4u
d2lkdGg7CisgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY3JlZW4uaGVpZ2h0OworICAgICAgICAv
LyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgCisgICAgICAgIGlmICh0eXBlb2YgU0RMICE9
ICJ1bmRlZmluZWQiKSB7CisgICAgICAgIAl2YXIgZmxhZ3MgPSBIRUFQVTMyWygoU0RMLnNjcmVl
bitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildOworICAgICAgICAJZmxhZ3MgPSBmbGFncyB8
IDB4MDA4MDAwMDA7IC8vIHNldCBTRExfRlVMTFNDUkVFTiBmbGFnCisgICAgICAgIAlIRUFQMzJb
KChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV09ZmxhZ3MKKyAgICAgICAg
fQorICAgICAgICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpOworICAgICAgfSxzZXRX
aW5kb3dlZENhbnZhc1NpemU6ZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgY2FudmFzID0gTW9k
dWxlWydjYW52YXMnXTsKKyAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy53aW5kb3dlZFdpZHRo
OworICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy53aW5kb3dlZEhlaWdodDsKKyAgICAgICAg
Ly8gY2hlY2sgaWYgU0RMIGlzIGF2YWlsYWJsZSAgICAgICAKKyAgICAgICAgaWYgKHR5cGVvZiBT
REwgIT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgCXZhciBmbGFncyA9IEhFQVBVMzJbKChTREwu
c2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07CisgICAgICAgIAlmbGFncyA9IGZs
YWdzICYgfjB4MDA4MDAwMDA7IC8vIGNsZWFyIFNETF9GVUxMU0NSRUVOIGZsYWcKKyAgICAgICAg
CUhFQVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXT1mbGFncwor
ICAgICAgICB9CisgICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7CisgICAg
ICB9fTsKK0ZTLnN0YXRpY0luaXQoKTtfX0FUSU5JVF9fLnVuc2hpZnQoeyBmdW5jOiBmdW5jdGlv
bigpIHsgaWYgKCFNb2R1bGVbIm5vRlNJbml0Il0gJiYgIUZTLmluaXQuaW5pdGlhbGl6ZWQpIEZT
LmluaXQoKSB9IH0pO19fQVRNQUlOX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBGUy5pZ25v
cmVQZXJtaXNzaW9ucyA9IGZhbHNlIH0gfSk7X19BVEVYSVRfXy5wdXNoKHsgZnVuYzogZnVuY3Rp
b24oKSB7IEZTLnF1aXQoKSB9IH0pO01vZHVsZVsiRlNfY3JlYXRlRm9sZGVyIl0gPSBGUy5jcmVh
dGVGb2xkZXI7TW9kdWxlWyJGU19jcmVhdGVQYXRoIl0gPSBGUy5jcmVhdGVQYXRoO01vZHVsZVsi
RlNfY3JlYXRlRGF0YUZpbGUiXSA9IEZTLmNyZWF0ZURhdGFGaWxlO01vZHVsZVsiRlNfY3JlYXRl
UHJlbG9hZGVkRmlsZSJdID0gRlMuY3JlYXRlUHJlbG9hZGVkRmlsZTtNb2R1bGVbIkZTX2NyZWF0
ZUxhenlGaWxlIl0gPSBGUy5jcmVhdGVMYXp5RmlsZTtNb2R1bGVbIkZTX2NyZWF0ZUxpbmsiXSA9
IEZTLmNyZWF0ZUxpbms7TW9kdWxlWyJGU19jcmVhdGVEZXZpY2UiXSA9IEZTLmNyZWF0ZURldmlj
ZTsKK19fX2Vycm5vX3N0YXRlID0gUnVudGltZS5zdGF0aWNBbGxvYyg0KTsgSEVBUDMyWygoX19f
ZXJybm9fc3RhdGUpPj4yKV09MDsKK01vZHVsZVsicmVxdWVzdEZ1bGxTY3JlZW4iXSA9IGZ1bmN0
aW9uKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsgQnJvd3Nlci5yZXF1ZXN0RnVsbFNjcmVl
bihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB9OworICBNb2R1bGVbInJlcXVlc3RBbmltYXRp
b25GcmFtZSJdID0gZnVuY3Rpb24oZnVuYykgeyBCcm93c2VyLnJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jKSB9OworICBNb2R1bGVbInNldENhbnZhc1NpemUiXSA9IGZ1bmN0aW9uKHdpZHRoLCBo
ZWlnaHQsIG5vVXBkYXRlcykgeyBCcm93c2VyLnNldENhbnZhc1NpemUod2lkdGgsIGhlaWdodCwg
bm9VcGRhdGVzKSB9OworICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9IGZ1bmN0aW9uKCkgeyBC
cm93c2VyLm1haW5Mb29wLnBhdXNlKCkgfTsKKyAgTW9kdWxlWyJyZXN1bWVNYWluTG9vcCJdID0g
ZnVuY3Rpb24oKSB7IEJyb3dzZXIubWFpbkxvb3AucmVzdW1lKCkgfTsKKyAgTW9kdWxlWyJnZXRV
c2VyTWVkaWEiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLmdldFVzZXJNZWRpYSgpIH0KK1NUQUNL
X0JBU0UgPSBTVEFDS1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBVElDVE9QKTsKK3N0YXRp
Y1NlYWxlZCA9IHRydWU7IC8vIHNlYWwgdGhlIHN0YXRpYyBwb3J0aW9uIG9mIG1lbW9yeQorU1RB
Q0tfTUFYID0gU1RBQ0tfQkFTRSArIDUyNDI4ODA7CitEWU5BTUlDX0JBU0UgPSBEWU5BTUlDVE9Q
ID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFDS19NQVgpOworYXNzZXJ0KERZTkFNSUNfQkFTRSA8
IFRPVEFMX01FTU9SWSk7IC8vIFN0YWNrIG11c3QgZml0IGluIFRPVEFMX01FTU9SWTsgYWxsb2Nh
dGlvbnMgZnJvbSBoZXJlIG9uIG1heSBlbmxhcmdlIFRPVEFMX01FTU9SWQordmFyIE1hdGhfbWlu
ID0gTWF0aC5taW47CitmdW5jdGlvbiBpbnZva2VfaWkoaW5kZXgsYTEpIHsKKyAgdHJ5IHsKKyAg
ICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpIl0oaW5kZXgsYTEpOworICB9IGNhdGNoKGUpIHsK
KyAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cg
ZTsKKyAgICBhc21bInNldFRocmV3Il0oMSwgMCk7CisgIH0KK30KK2Z1bmN0aW9uIGludm9rZV92
KGluZGV4KSB7CisgIHRyeSB7CisgICAgTW9kdWxlWyJkeW5DYWxsX3YiXShpbmRleCk7CisgIH0g
Y2F0Y2goZSkgeworICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdq
bXAnKSB0aHJvdyBlOworICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKKyAgfQorfQorZnVuY3Rp
b24gaW52b2tlX2lpaShpbmRleCxhMSxhMikgeworICB0cnkgeworICAgIHJldHVybiBNb2R1bGVb
ImR5bkNhbGxfaWlpIl0oaW5kZXgsYTEsYTIpOworICB9IGNhdGNoKGUpIHsKKyAgICBpZiAodHlw
ZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKKyAgICBhc21b
InNldFRocmV3Il0oMSwgMCk7CisgIH0KK30KK2Z1bmN0aW9uIGludm9rZV92aShpbmRleCxhMSkg
eworICB0cnkgeworICAgIE1vZHVsZVsiZHluQ2FsbF92aSJdKGluZGV4LGExKTsKKyAgfSBjYXRj
aChlKSB7CisgICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcp
IHRocm93IGU7CisgICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOworICB9Cit9CitmdW5jdGlvbiBh
c21QcmludEludCh4LCB5KSB7CisgIE1vZHVsZS5wcmludCgnaW50ICcgKyB4ICsgJywnICsgeSk7
Ly8gKyAnICcgKyBuZXcgRXJyb3IoKS5zdGFjayk7Cit9CitmdW5jdGlvbiBhc21QcmludEZsb2F0
KHgsIHkpIHsKKyAgTW9kdWxlLnByaW50KCdmbG9hdCAnICsgeCArICcsJyArIHkpOy8vICsgJyAn
ICsgbmV3IEVycm9yKCkuc3RhY2spOworfQorLy8gRU1TQ1JJUFRFTl9TVEFSVF9BU00KK3ZhciBh
c20gPSAoZnVuY3Rpb24oZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgeworICAndXNlIGFzbSc7CisgIHZh
ciBIRUFQOCA9IG5ldyBnbG9iYWwuSW50OEFycmF5KGJ1ZmZlcik7CisgIHZhciBIRUFQMTYgPSBu
ZXcgZ2xvYmFsLkludDE2QXJyYXkoYnVmZmVyKTsKKyAgdmFyIEhFQVAzMiA9IG5ldyBnbG9iYWwu
SW50MzJBcnJheShidWZmZXIpOworICB2YXIgSEVBUFU4ID0gbmV3IGdsb2JhbC5VaW50OEFycmF5
KGJ1ZmZlcik7CisgIHZhciBIRUFQVTE2ID0gbmV3IGdsb2JhbC5VaW50MTZBcnJheShidWZmZXIp
OworICB2YXIgSEVBUFUzMiA9IG5ldyBnbG9iYWwuVWludDMyQXJyYXkoYnVmZmVyKTsKKyAgdmFy
IEhFQVBGMzIgPSBuZXcgZ2xvYmFsLkZsb2F0MzJBcnJheShidWZmZXIpOworICB2YXIgSEVBUEY2
NCA9IG5ldyBnbG9iYWwuRmxvYXQ2NEFycmF5KGJ1ZmZlcik7CisgIHZhciBTVEFDS1RPUD1lbnYu
U1RBQ0tUT1B8MDsKKyAgdmFyIFNUQUNLX01BWD1lbnYuU1RBQ0tfTUFYfDA7CisgIHZhciB0ZW1w
RG91YmxlUHRyPWVudi50ZW1wRG91YmxlUHRyfDA7CisgIHZhciBBQk9SVD1lbnYuQUJPUlR8MDsK
KyAgdmFyIE5hTj0rZW52Lk5hTjsKKyAgdmFyIEluZmluaXR5PStlbnYuSW5maW5pdHk7CisgIHZh
ciBfX1RIUkVXX18gPSAwOworICB2YXIgdGhyZXdWYWx1ZSA9IDA7CisgIHZhciBzZXRqbXBJZCA9
IDA7CisgIHZhciB1bmRlZiA9IDA7CisgIHZhciB0ZW1wSW50ID0gMCwgdGVtcEJpZ0ludCA9IDAs
IHRlbXBCaWdJbnRQID0gMCwgdGVtcEJpZ0ludFMgPSAwLCB0ZW1wQmlnSW50UiA9IDAuMCwgdGVt
cEJpZ0ludEkgPSAwLCB0ZW1wQmlnSW50RCA9IDAsIHRlbXBWYWx1ZSA9IDAsIHRlbXBEb3VibGUg
PSAwLjA7CisgIHZhciB0ZW1wUmV0MCA9IDA7CisgIHZhciB0ZW1wUmV0MSA9IDA7CisgIHZhciB0
ZW1wUmV0MiA9IDA7CisgIHZhciB0ZW1wUmV0MyA9IDA7CisgIHZhciB0ZW1wUmV0NCA9IDA7Cisg
IHZhciB0ZW1wUmV0NSA9IDA7CisgIHZhciB0ZW1wUmV0NiA9IDA7CisgIHZhciB0ZW1wUmV0NyA9
IDA7CisgIHZhciB0ZW1wUmV0OCA9IDA7CisgIHZhciB0ZW1wUmV0OSA9IDA7CisgIHZhciBNYXRo
X2Zsb29yPWdsb2JhbC5NYXRoLmZsb29yOworICB2YXIgTWF0aF9hYnM9Z2xvYmFsLk1hdGguYWJz
OworICB2YXIgTWF0aF9zcXJ0PWdsb2JhbC5NYXRoLnNxcnQ7CisgIHZhciBNYXRoX3Bvdz1nbG9i
YWwuTWF0aC5wb3c7CisgIHZhciBNYXRoX2Nvcz1nbG9iYWwuTWF0aC5jb3M7CisgIHZhciBNYXRo
X3Npbj1nbG9iYWwuTWF0aC5zaW47CisgIHZhciBNYXRoX3Rhbj1nbG9iYWwuTWF0aC50YW47Cisg
IHZhciBNYXRoX2Fjb3M9Z2xvYmFsLk1hdGguYWNvczsKKyAgdmFyIE1hdGhfYXNpbj1nbG9iYWwu
TWF0aC5hc2luOworICB2YXIgTWF0aF9hdGFuPWdsb2JhbC5NYXRoLmF0YW47CisgIHZhciBNYXRo
X2F0YW4yPWdsb2JhbC5NYXRoLmF0YW4yOworICB2YXIgTWF0aF9leHA9Z2xvYmFsLk1hdGguZXhw
OworICB2YXIgTWF0aF9sb2c9Z2xvYmFsLk1hdGgubG9nOworICB2YXIgTWF0aF9jZWlsPWdsb2Jh
bC5NYXRoLmNlaWw7CisgIHZhciBNYXRoX2ltdWw9Z2xvYmFsLk1hdGguaW11bDsKKyAgdmFyIGFi
b3J0PWVudi5hYm9ydDsKKyAgdmFyIGFzc2VydD1lbnYuYXNzZXJ0OworICB2YXIgYXNtUHJpbnRJ
bnQ9ZW52LmFzbVByaW50SW50OworICB2YXIgYXNtUHJpbnRGbG9hdD1lbnYuYXNtUHJpbnRGbG9h
dDsKKyAgdmFyIE1hdGhfbWluPWVudi5taW47CisgIHZhciBpbnZva2VfaWk9ZW52Lmludm9rZV9p
aTsKKyAgdmFyIGludm9rZV92PWVudi5pbnZva2VfdjsKKyAgdmFyIGludm9rZV9paWk9ZW52Lmlu
dm9rZV9paWk7CisgIHZhciBpbnZva2Vfdmk9ZW52Lmludm9rZV92aTsKKyAgdmFyIF9wd3JpdGU9
ZW52Ll9wd3JpdGU7CisgIHZhciBfc3lzY29uZj1lbnYuX3N5c2NvbmY7CisgIHZhciBfc2Jyaz1l
bnYuX3Nicms7CisgIHZhciBfX19zZXRFcnJObz1lbnYuX19fc2V0RXJyTm87CisgIHZhciBfZndy
aXRlPWVudi5fZndyaXRlOworICB2YXIgX19yZWFsbHlOZWdhdGl2ZT1lbnYuX19yZWFsbHlOZWdh
dGl2ZTsKKyAgdmFyIF90aW1lPWVudi5fdGltZTsKKyAgdmFyIF9fZm9ybWF0U3RyaW5nPWVudi5f
X2Zvcm1hdFN0cmluZzsKKyAgdmFyIF9zZW5kPWVudi5fc2VuZDsKKyAgdmFyIF93cml0ZT1lbnYu
X3dyaXRlOworICB2YXIgX2Fib3J0PWVudi5fYWJvcnQ7CisgIHZhciBfZnByaW50Zj1lbnYuX2Zw
cmludGY7CisgIHZhciBfcHJpbnRmPWVudi5fcHJpbnRmOworICB2YXIgX19fZXJybm9fbG9jYXRp
b249ZW52Ll9fX2Vycm5vX2xvY2F0aW9uOworICB2YXIgX2ZmbHVzaD1lbnYuX2ZmbHVzaDsKKy8v
IEVNU0NSSVBURU5fU1RBUlRfRlVOQ1MKK2Z1bmN0aW9uIHN0YWNrQWxsb2MoaTEpIHsKKyBpMSA9
IGkxIHwgMDsKKyB2YXIgaTIgPSAwOworIGkyID0gU1RBQ0tUT1A7CisgU1RBQ0tUT1AgPSBTVEFD
S1RPUCArIGkxIHwgMDsKKyBTVEFDS1RPUCA9IFNUQUNLVE9QICsgNyA+PiAzIDw8IDM7CisgcmV0
dXJuIGkyIHwgMDsKK30KK2Z1bmN0aW9uIHN0YWNrU2F2ZSgpIHsKKyByZXR1cm4gU1RBQ0tUT1Ag
fCAwOworfQorZnVuY3Rpb24gc3RhY2tSZXN0b3JlKGkxKSB7CisgaTEgPSBpMSB8IDA7CisgU1RB
Q0tUT1AgPSBpMTsKK30KK2Z1bmN0aW9uIHNldFRocmV3KGkxLCBpMikgeworIGkxID0gaTEgfCAw
OworIGkyID0gaTIgfCAwOworIGlmICgoX19USFJFV19fIHwgMCkgPT0gMCkgeworICBfX1RIUkVX
X18gPSBpMTsKKyAgdGhyZXdWYWx1ZSA9IGkyOworIH0KK30KK2Z1bmN0aW9uIGNvcHlUZW1wRmxv
YXQoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyBIRUFQOFt0ZW1wRG91YmxlUHRyXSA9IEhFQVA4W2kx
XTsKKyBIRUFQOFt0ZW1wRG91YmxlUHRyICsgMSB8IDBdID0gSEVBUDhbaTEgKyAxIHwgMF07Cisg
SEVBUDhbdGVtcERvdWJsZVB0ciArIDIgfCAwXSA9IEhFQVA4W2kxICsgMiB8IDBdOworIEhFQVA4
W3RlbXBEb3VibGVQdHIgKyAzIHwgMF0gPSBIRUFQOFtpMSArIDMgfCAwXTsKK30KK2Z1bmN0aW9u
IGNvcHlUZW1wRG91YmxlKGkxKSB7CisgaTEgPSBpMSB8IDA7CisgSEVBUDhbdGVtcERvdWJsZVB0
cl0gPSBIRUFQOFtpMV07CisgSEVBUDhbdGVtcERvdWJsZVB0ciArIDEgfCAwXSA9IEhFQVA4W2kx
ICsgMSB8IDBdOworIEhFQVA4W3RlbXBEb3VibGVQdHIgKyAyIHwgMF0gPSBIRUFQOFtpMSArIDIg
fCAwXTsKKyBIRUFQOFt0ZW1wRG91YmxlUHRyICsgMyB8IDBdID0gSEVBUDhbaTEgKyAzIHwgMF07
CisgSEVBUDhbdGVtcERvdWJsZVB0ciArIDQgfCAwXSA9IEhFQVA4W2kxICsgNCB8IDBdOworIEhF
QVA4W3RlbXBEb3VibGVQdHIgKyA1IHwgMF0gPSBIRUFQOFtpMSArIDUgfCAwXTsKKyBIRUFQOFt0
ZW1wRG91YmxlUHRyICsgNiB8IDBdID0gSEVBUDhbaTEgKyA2IHwgMF07CisgSEVBUDhbdGVtcERv
dWJsZVB0ciArIDcgfCAwXSA9IEhFQVA4W2kxICsgNyB8IDBdOworfQorZnVuY3Rpb24gc2V0VGVt
cFJldDAoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyB0ZW1wUmV0MCA9IGkxOworfQorZnVuY3Rpb24g
c2V0VGVtcFJldDEoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyB0ZW1wUmV0MSA9IGkxOworfQorZnVu
Y3Rpb24gc2V0VGVtcFJldDIoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyB0ZW1wUmV0MiA9IGkxOwor
fQorZnVuY3Rpb24gc2V0VGVtcFJldDMoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyB0ZW1wUmV0MyA9
IGkxOworfQorZnVuY3Rpb24gc2V0VGVtcFJldDQoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyB0ZW1w
UmV0NCA9IGkxOworfQorZnVuY3Rpb24gc2V0VGVtcFJldDUoaTEpIHsKKyBpMSA9IGkxIHwgMDsK
KyB0ZW1wUmV0NSA9IGkxOworfQorZnVuY3Rpb24gc2V0VGVtcFJldDYoaTEpIHsKKyBpMSA9IGkx
IHwgMDsKKyB0ZW1wUmV0NiA9IGkxOworfQorZnVuY3Rpb24gc2V0VGVtcFJldDcoaTEpIHsKKyBp
MSA9IGkxIHwgMDsKKyB0ZW1wUmV0NyA9IGkxOworfQorZnVuY3Rpb24gc2V0VGVtcFJldDgoaTEp
IHsKKyBpMSA9IGkxIHwgMDsKKyB0ZW1wUmV0OCA9IGkxOworfQorZnVuY3Rpb24gc2V0VGVtcFJl
dDkoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyB0ZW1wUmV0OSA9IGkxOworfQorZnVuY3Rpb24gcnVu
UG9zdFNldHMoKSB7Cit9CitmdW5jdGlvbiBfbWFpbihpMSwgaTIpIHsKKyBpMSA9IGkxIHwgMDsK
KyBpMiA9IGkyIHwgMDsKKyB2YXIgaTMgPSAwLCBpNCA9IDAsIGk1ID0gMCwgaTYgPSAwLCBpNyA9
IDAsIGk4ID0gMCwgaTkgPSAwLCBpMTAgPSAwLCBpMTEgPSAwOworIGkzID0gU1RBQ0tUT1A7Cisg
ZG8geworICBpZiAoKGkxIHwgMCkgPiAxKSB7CisgICBpNCA9IEhFQVA4W0hFQVAzMltpMiArIDQg
Pj4gMl0gfCAwXSB8IDA7CisgICBpZiAoKGk0IHwgMCkgPT0gNTApIHsKKyAgICBpNSA9IDQwMDsK
KyAgICBicmVhazsKKyAgIH0gZWxzZSBpZiAoKGk0IHwgMCkgPT0gNTEpIHsKKyAgICBpNiA9IDQ7
CisgICAgYnJlYWs7CisgICB9IGVsc2UgaWYgKChpNCB8IDApID09IDUyKSB7CisgICAgaTUgPSA0
ZTM7CisgICAgYnJlYWs7CisgICB9IGVsc2UgaWYgKChpNCB8IDApID09IDUzKSB7CisgICAgaTUg
PSA4ZTM7CisgICAgYnJlYWs7CisgICB9IGVsc2UgaWYgKChpNCB8IDApID09IDQ5KSB7CisgICAg
aTUgPSA1NTsKKyAgICBicmVhazsKKyAgIH0gZWxzZSBpZiAoKGk0IHwgMCkgPT0gNDgpIHsKKyAg
ICBpNyA9IDA7CisgICAgU1RBQ0tUT1AgPSBpMzsKKyAgICByZXR1cm4gaTcgfCAwOworICAgfSBl
bHNlIHsKKyAgICBfcHJpbnRmKDI0LCAoaTggPSBTVEFDS1RPUCwgU1RBQ0tUT1AgPSBTVEFDS1RP
UCArIDggfCAwLCBIRUFQMzJbaTggPj4gMl0gPSBpNCAtIDQ4LCBpOCkgfCAwKSB8IDA7CisgICAg
U1RBQ0tUT1AgPSBpODsKKyAgICBpNyA9IC0xOworICAgIFNUQUNLVE9QID0gaTM7CisgICAgcmV0
dXJuIGk3IHwgMDsKKyAgIH0KKyAgfSBlbHNlIHsKKyAgIGk2ID0gNDsKKyAgfQorIH0gd2hpbGUg
KDApOworIGlmICgoaTYgfCAwKSA9PSA0KSB7CisgIGk1ID0gODAwOworIH0KKyBpNiA9IF9tYWxs
b2MoMTA0ODU3NikgfCAwOworIGkyID0gMDsKKyBpMSA9IDA7CisgZG8geworICBpNCA9IDA7Cisg
IHdoaWxlICgxKSB7CisgICBIRUFQOFtpNiArIGk0IHwgMF0gPSBpNCArIGkyICYgMjU1OworICAg
aTkgPSBpNCArIDEgfCAwOworICAgaWYgKChpOSB8IDApIDwgMTA0ODU3NikgeworICAgIGk0ID0g
aTk7CisgICB9IGVsc2UgeworICAgIGkxMCA9IGkyOworICAgIGkxMSA9IDA7CisgICAgYnJlYWs7
CisgICB9CisgIH0KKyAgZG8geworICAgaTEwID0gKEhFQVA4W2k2ICsgaTExIHwgMF0gJiAxKSAr
IGkxMCB8IDA7CisgICBpMTEgPSBpMTEgKyAxIHwgMDsKKyAgfSB3aGlsZSAoKGkxMSB8IDApIDwg
MTA0ODU3Nik7CisgIGkyID0gKGkxMCB8IDApICUgMWUzIHwgMDsKKyAgaTEgPSBpMSArIDEgfCAw
OworIH0gd2hpbGUgKChpMSB8IDApIDwgKGk1IHwgMCkpOworIF9wcmludGYoOCwgKGk4ID0gU1RB
Q0tUT1AsIFNUQUNLVE9QID0gU1RBQ0tUT1AgKyA4IHwgMCwgSEVBUDMyW2k4ID4+IDJdID0gaTIs
IGk4KSB8IDApIHwgMDsKKyBTVEFDS1RPUCA9IGk4OworIGk3ID0gMDsKKyBTVEFDS1RPUCA9IGkz
OworIHJldHVybiBpNyB8IDA7Cit9CitmdW5jdGlvbiBfbWFsbG9jKGkxKSB7CisgaTEgPSBpMSB8
IDA7CisgdmFyIGkyID0gMCwgaTMgPSAwLCBpNCA9IDAsIGk1ID0gMCwgaTYgPSAwLCBpNyA9IDAs
IGk4ID0gMCwgaTkgPSAwLCBpMTAgPSAwLCBpMTEgPSAwLCBpMTIgPSAwLCBpMTMgPSAwLCBpMTQg
PSAwLCBpMTUgPSAwLCBpMTYgPSAwLCBpMTcgPSAwLCBpMTggPSAwLCBpMTkgPSAwLCBpMjAgPSAw
LCBpMjEgPSAwLCBpMjIgPSAwLCBpMjMgPSAwLCBpMjQgPSAwLCBpMjUgPSAwLCBpMjYgPSAwLCBp
MjcgPSAwLCBpMjggPSAwLCBpMjkgPSAwLCBpMzAgPSAwLCBpMzEgPSAwLCBpMzIgPSAwLCBpMzMg
PSAwLCBpMzQgPSAwLCBpMzUgPSAwLCBpMzYgPSAwLCBpMzcgPSAwLCBpMzggPSAwLCBpMzkgPSAw
LCBpNDAgPSAwLCBpNDEgPSAwLCBpNDIgPSAwLCBpNDMgPSAwLCBpNDQgPSAwLCBpNDUgPSAwLCBp
NDYgPSAwLCBpNDcgPSAwLCBpNDggPSAwLCBpNDkgPSAwLCBpNTAgPSAwLCBpNTEgPSAwLCBpNTIg
PSAwLCBpNTMgPSAwLCBpNTQgPSAwLCBpNTUgPSAwLCBpNTYgPSAwLCBpNTcgPSAwLCBpNTggPSAw
LCBpNTkgPSAwLCBpNjAgPSAwLCBpNjEgPSAwLCBpNjIgPSAwLCBpNjMgPSAwLCBpNjQgPSAwLCBp
NjUgPSAwLCBpNjYgPSAwLCBpNjcgPSAwLCBpNjggPSAwLCBpNjkgPSAwLCBpNzAgPSAwLCBpNzEg
PSAwLCBpNzIgPSAwLCBpNzMgPSAwLCBpNzQgPSAwLCBpNzUgPSAwLCBpNzYgPSAwLCBpNzcgPSAw
LCBpNzggPSAwLCBpNzkgPSAwLCBpODAgPSAwLCBpODEgPSAwLCBpODIgPSAwLCBpODMgPSAwLCBp
ODQgPSAwLCBpODUgPSAwLCBpODYgPSAwOworIGRvIHsKKyAgaWYgKGkxID4+PiAwIDwgMjQ1KSB7
CisgICBpZiAoaTEgPj4+IDAgPCAxMSkgeworICAgIGkyID0gMTY7CisgICB9IGVsc2UgeworICAg
IGkyID0gaTEgKyAxMSAmIC04OworICAgfQorICAgaTMgPSBpMiA+Pj4gMzsKKyAgIGk0ID0gSEVB
UDMyWzE2XSB8IDA7CisgICBpNSA9IGk0ID4+PiAoaTMgPj4+IDApOworICAgaWYgKChpNSAmIDMg
fCAwKSAhPSAwKSB7CisgICAgaTYgPSAoaTUgJiAxIF4gMSkgKyBpMyB8IDA7CisgICAgaTcgPSBp
NiA8PCAxOworICAgIGk4ID0gMTA0ICsgKGk3IDw8IDIpIHwgMDsKKyAgICBpOSA9IDEwNCArIChp
NyArIDIgPDwgMikgfCAwOworICAgIGk3ID0gSEVBUDMyW2k5ID4+IDJdIHwgMDsKKyAgICBpMTAg
PSBpNyArIDggfCAwOworICAgIGkxMSA9IEhFQVAzMltpMTAgPj4gMl0gfCAwOworICAgIGRvIHsK
KyAgICAgaWYgKChpOCB8IDApID09IChpMTEgfCAwKSkgeworICAgICAgSEVBUDMyWzE2XSA9IGk0
ICYgfigxIDw8IGk2KTsKKyAgICAgfSBlbHNlIHsKKyAgICAgIGlmIChpMTEgPj4+IDAgPCAoSEVB
UDMyWzIwXSB8IDApID4+PiAwKSB7CisgICAgICAgX2Fib3J0KCk7CisgICAgICAgcmV0dXJuIDA7
CisgICAgICB9CisgICAgICBpMTIgPSBpMTEgKyAxMiB8IDA7CisgICAgICBpZiAoKEhFQVAzMltp
MTIgPj4gMl0gfCAwKSA9PSAoaTcgfCAwKSkgeworICAgICAgIEhFQVAzMltpMTIgPj4gMl0gPSBp
ODsKKyAgICAgICBIRUFQMzJbaTkgPj4gMl0gPSBpMTE7CisgICAgICAgYnJlYWs7CisgICAgICB9
IGVsc2UgeworICAgICAgIF9hYm9ydCgpOworICAgICAgIHJldHVybiAwOworICAgICAgfQorICAg
ICB9CisgICAgfSB3aGlsZSAoMCk7CisgICAgaTExID0gaTYgPDwgMzsKKyAgICBIRUFQMzJbaTcg
KyA0ID4+IDJdID0gaTExIHwgMzsKKyAgICBpOSA9IGk3ICsgKGkxMSB8IDQpIHwgMDsKKyAgICBI
RUFQMzJbaTkgPj4gMl0gPSBIRUFQMzJbaTkgPj4gMl0gfCAxOworICAgIGkxMyA9IGkxMDsKKyAg
ICByZXR1cm4gaTEzIHwgMDsKKyAgIH0KKyAgIGlmIChpMiA+Pj4gMCA8PSAoSEVBUDMyWzE4XSB8
IDApID4+PiAwKSB7CisgICAgaTE0ID0gaTI7CisgICAgYnJlYWs7CisgICB9CisgICBpZiAoKGk1
IHwgMCkgIT0gMCkgeworICAgIGk5ID0gMiA8PCBpMzsKKyAgICBpMTEgPSBpNSA8PCBpMyAmIChp
OSB8IC1pOSk7CisgICAgaTkgPSAoaTExICYgLWkxMSkgLSAxIHwgMDsKKyAgICBpMTEgPSBpOSA+
Pj4gMTIgJiAxNjsKKyAgICBpOCA9IGk5ID4+PiAoaTExID4+PiAwKTsKKyAgICBpOSA9IGk4ID4+
PiA1ICYgODsKKyAgICBpMTIgPSBpOCA+Pj4gKGk5ID4+PiAwKTsKKyAgICBpOCA9IGkxMiA+Pj4g
MiAmIDQ7CisgICAgaTE1ID0gaTEyID4+PiAoaTggPj4+IDApOworICAgIGkxMiA9IGkxNSA+Pj4g
MSAmIDI7CisgICAgaTE2ID0gaTE1ID4+PiAoaTEyID4+PiAwKTsKKyAgICBpMTUgPSBpMTYgPj4+
IDEgJiAxOworICAgIGkxNyA9IChpOSB8IGkxMSB8IGk4IHwgaTEyIHwgaTE1KSArIChpMTYgPj4+
IChpMTUgPj4+IDApKSB8IDA7CisgICAgaTE1ID0gaTE3IDw8IDE7CisgICAgaTE2ID0gMTA0ICsg
KGkxNSA8PCAyKSB8IDA7CisgICAgaTEyID0gMTA0ICsgKGkxNSArIDIgPDwgMikgfCAwOworICAg
IGkxNSA9IEhFQVAzMltpMTIgPj4gMl0gfCAwOworICAgIGk4ID0gaTE1ICsgOCB8IDA7CisgICAg
aTExID0gSEVBUDMyW2k4ID4+IDJdIHwgMDsKKyAgICBkbyB7CisgICAgIGlmICgoaTE2IHwgMCkg
PT0gKGkxMSB8IDApKSB7CisgICAgICBIRUFQMzJbMTZdID0gaTQgJiB+KDEgPDwgaTE3KTsKKyAg
ICAgfSBlbHNlIHsKKyAgICAgIGlmIChpMTEgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAw
KSB7CisgICAgICAgX2Fib3J0KCk7CisgICAgICAgcmV0dXJuIDA7CisgICAgICB9CisgICAgICBp
OSA9IGkxMSArIDEyIHwgMDsKKyAgICAgIGlmICgoSEVBUDMyW2k5ID4+IDJdIHwgMCkgPT0gKGkx
NSB8IDApKSB7CisgICAgICAgSEVBUDMyW2k5ID4+IDJdID0gaTE2OworICAgICAgIEhFQVAzMltp
MTIgPj4gMl0gPSBpMTE7CisgICAgICAgYnJlYWs7CisgICAgICB9IGVsc2UgeworICAgICAgIF9h
Ym9ydCgpOworICAgICAgIHJldHVybiAwOworICAgICAgfQorICAgICB9CisgICAgfSB3aGlsZSAo
MCk7CisgICAgaTExID0gaTE3IDw8IDM7CisgICAgaTEyID0gaTExIC0gaTIgfCAwOworICAgIEhF
QVAzMltpMTUgKyA0ID4+IDJdID0gaTIgfCAzOworICAgIGkxNiA9IGkxNTsKKyAgICBpNCA9IGkx
NiArIGkyIHwgMDsKKyAgICBIRUFQMzJbaTE2ICsgKGkyIHwgNCkgPj4gMl0gPSBpMTIgfCAxOwor
ICAgIEhFQVAzMltpMTYgKyBpMTEgPj4gMl0gPSBpMTI7CisgICAgaTExID0gSEVBUDMyWzE4XSB8
IDA7CisgICAgaWYgKChpMTEgfCAwKSAhPSAwKSB7CisgICAgIGkxNiA9IEhFQVAzMlsyMV0gfCAw
OworICAgICBpMyA9IGkxMSA+Pj4gMzsKKyAgICAgaTExID0gaTMgPDwgMTsKKyAgICAgaTUgPSAx
MDQgKyAoaTExIDw8IDIpIHwgMDsKKyAgICAgaTEwID0gSEVBUDMyWzE2XSB8IDA7CisgICAgIGk3
ID0gMSA8PCBpMzsKKyAgICAgZG8geworICAgICAgaWYgKChpMTAgJiBpNyB8IDApID09IDApIHsK
KyAgICAgICBIRUFQMzJbMTZdID0gaTEwIHwgaTc7CisgICAgICAgaTE4ID0gaTU7CisgICAgICAg
aTE5ID0gMTA0ICsgKGkxMSArIDIgPDwgMikgfCAwOworICAgICAgfSBlbHNlIHsKKyAgICAgICBp
MyA9IDEwNCArIChpMTEgKyAyIDw8IDIpIHwgMDsKKyAgICAgICBpNiA9IEhFQVAzMltpMyA+PiAy
XSB8IDA7CisgICAgICAgaWYgKGk2ID4+PiAwID49IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsK
KyAgICAgICAgaTE4ID0gaTY7CisgICAgICAgIGkxOSA9IGkzOworICAgICAgICBicmVhazsKKyAg
ICAgICB9CisgICAgICAgX2Fib3J0KCk7CisgICAgICAgcmV0dXJuIDA7CisgICAgICB9CisgICAg
IH0gd2hpbGUgKDApOworICAgICBIRUFQMzJbaTE5ID4+IDJdID0gaTE2OworICAgICBIRUFQMzJb
aTE4ICsgMTIgPj4gMl0gPSBpMTY7CisgICAgIEhFQVAzMltpMTYgKyA4ID4+IDJdID0gaTE4Owor
ICAgICBIRUFQMzJbaTE2ICsgMTIgPj4gMl0gPSBpNTsKKyAgICB9CisgICAgSEVBUDMyWzE4XSA9
IGkxMjsKKyAgICBIRUFQMzJbMjFdID0gaTQ7CisgICAgaTEzID0gaTg7CisgICAgcmV0dXJuIGkx
MyB8IDA7CisgICB9CisgICBpMTEgPSBIRUFQMzJbMTddIHwgMDsKKyAgIGlmICgoaTExIHwgMCkg
PT0gMCkgeworICAgIGkxNCA9IGkyOworICAgIGJyZWFrOworICAgfQorICAgaTcgPSAoaTExICYg
LWkxMSkgLSAxIHwgMDsKKyAgIGkxMSA9IGk3ID4+PiAxMiAmIDE2OworICAgaTEwID0gaTcgPj4+
IChpMTEgPj4+IDApOworICAgaTcgPSBpMTAgPj4+IDUgJiA4OworICAgaTE1ID0gaTEwID4+PiAo
aTcgPj4+IDApOworICAgaTEwID0gaTE1ID4+PiAyICYgNDsKKyAgIGkxNyA9IGkxNSA+Pj4gKGkx
MCA+Pj4gMCk7CisgICBpMTUgPSBpMTcgPj4+IDEgJiAyOworICAgaTMgPSBpMTcgPj4+IChpMTUg
Pj4+IDApOworICAgaTE3ID0gaTMgPj4+IDEgJiAxOworICAgaTYgPSBIRUFQMzJbMzY4ICsgKChp
NyB8IGkxMSB8IGkxMCB8IGkxNSB8IGkxNykgKyAoaTMgPj4+IChpMTcgPj4+IDApKSA8PCAyKSA+
PiAyXSB8IDA7CisgICBpMTcgPSBpNjsKKyAgIGkzID0gaTY7CisgICBpMTUgPSAoSEVBUDMyW2k2
ICsgNCA+PiAyXSAmIC04KSAtIGkyIHwgMDsKKyAgIHdoaWxlICgxKSB7CisgICAgaTYgPSBIRUFQ
MzJbaTE3ICsgMTYgPj4gMl0gfCAwOworICAgIGlmICgoaTYgfCAwKSA9PSAwKSB7CisgICAgIGkx
MCA9IEhFQVAzMltpMTcgKyAyMCA+PiAyXSB8IDA7CisgICAgIGlmICgoaTEwIHwgMCkgPT0gMCkg
eworICAgICAgYnJlYWs7CisgICAgIH0gZWxzZSB7CisgICAgICBpMjAgPSBpMTA7CisgICAgIH0K
KyAgICB9IGVsc2UgeworICAgICBpMjAgPSBpNjsKKyAgICB9CisgICAgaTYgPSAoSEVBUDMyW2ky
MCArIDQgPj4gMl0gJiAtOCkgLSBpMiB8IDA7CisgICAgaTEwID0gaTYgPj4+IDAgPCBpMTUgPj4+
IDA7CisgICAgaTE3ID0gaTIwOworICAgIGkzID0gaTEwID8gaTIwIDogaTM7CisgICAgaTE1ID0g
aTEwID8gaTYgOiBpMTU7CisgICB9CisgICBpMTcgPSBpMzsKKyAgIGk4ID0gSEVBUDMyWzIwXSB8
IDA7CisgICBpZiAoaTE3ID4+PiAwIDwgaTggPj4+IDApIHsKKyAgICBfYWJvcnQoKTsKKyAgICBy
ZXR1cm4gMDsKKyAgIH0KKyAgIGk0ID0gaTE3ICsgaTIgfCAwOworICAgaTEyID0gaTQ7CisgICBp
ZiAoaTE3ID4+PiAwID49IGk0ID4+PiAwKSB7CisgICAgX2Fib3J0KCk7CisgICAgcmV0dXJuIDA7
CisgICB9CisgICBpNCA9IEhFQVAzMltpMyArIDI0ID4+IDJdIHwgMDsKKyAgIGk1ID0gSEVBUDMy
W2kzICsgMTIgPj4gMl0gfCAwOworICAgZG8geworICAgIGlmICgoaTUgfCAwKSA9PSAoaTMgfCAw
KSkgeworICAgICBpMTYgPSBpMyArIDIwIHwgMDsKKyAgICAgaTYgPSBIRUFQMzJbaTE2ID4+IDJd
IHwgMDsKKyAgICAgaWYgKChpNiB8IDApID09IDApIHsKKyAgICAgIGkxMCA9IGkzICsgMTYgfCAw
OworICAgICAgaTExID0gSEVBUDMyW2kxMCA+PiAyXSB8IDA7CisgICAgICBpZiAoKGkxMSB8IDAp
ID09IDApIHsKKyAgICAgICBpMjEgPSAwOworICAgICAgIGJyZWFrOworICAgICAgfSBlbHNlIHsK
KyAgICAgICBpMjIgPSBpMTE7CisgICAgICAgaTIzID0gaTEwOworICAgICAgfQorICAgICB9IGVs
c2UgeworICAgICAgaTIyID0gaTY7CisgICAgICBpMjMgPSBpMTY7CisgICAgIH0KKyAgICAgd2hp
bGUgKDEpIHsKKyAgICAgIGkxNiA9IGkyMiArIDIwIHwgMDsKKyAgICAgIGk2ID0gSEVBUDMyW2kx
NiA+PiAyXSB8IDA7CisgICAgICBpZiAoKGk2IHwgMCkgIT0gMCkgeworICAgICAgIGkyMiA9IGk2
OworICAgICAgIGkyMyA9IGkxNjsKKyAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKyAgICAgIGkx
NiA9IGkyMiArIDE2IHwgMDsKKyAgICAgIGk2ID0gSEVBUDMyW2kxNiA+PiAyXSB8IDA7CisgICAg
ICBpZiAoKGk2IHwgMCkgPT0gMCkgeworICAgICAgIGJyZWFrOworICAgICAgfSBlbHNlIHsKKyAg
ICAgICBpMjIgPSBpNjsKKyAgICAgICBpMjMgPSBpMTY7CisgICAgICB9CisgICAgIH0KKyAgICAg
aWYgKGkyMyA+Pj4gMCA8IGk4ID4+PiAwKSB7CisgICAgICBfYWJvcnQoKTsKKyAgICAgIHJldHVy
biAwOworICAgICB9IGVsc2UgeworICAgICAgSEVBUDMyW2kyMyA+PiAyXSA9IDA7CisgICAgICBp
MjEgPSBpMjI7CisgICAgICBicmVhazsKKyAgICAgfQorICAgIH0gZWxzZSB7CisgICAgIGkxNiA9
IEhFQVAzMltpMyArIDggPj4gMl0gfCAwOworICAgICBpZiAoaTE2ID4+PiAwIDwgaTggPj4+IDAp
IHsKKyAgICAgIF9hYm9ydCgpOworICAgICAgcmV0dXJuIDA7CisgICAgIH0KKyAgICAgaTYgPSBp
MTYgKyAxMiB8IDA7CisgICAgIGlmICgoSEVBUDMyW2k2ID4+IDJdIHwgMCkgIT0gKGkzIHwgMCkp
IHsKKyAgICAgIF9hYm9ydCgpOworICAgICAgcmV0dXJuIDA7CisgICAgIH0KKyAgICAgaTEwID0g
aTUgKyA4IHwgMDsKKyAgICAgaWYgKChIRUFQMzJbaTEwID4+IDJdIHwgMCkgPT0gKGkzIHwgMCkp
IHsKKyAgICAgIEhFQVAzMltpNiA+PiAyXSA9IGk1OworICAgICAgSEVBUDMyW2kxMCA+PiAyXSA9
IGkxNjsKKyAgICAgIGkyMSA9IGk1OworICAgICAgYnJlYWs7CisgICAgIH0gZWxzZSB7CisgICAg
ICBfYWJvcnQoKTsKKyAgICAgIHJldHVybiAwOworICAgICB9CisgICAgfQorICAgfSB3aGlsZSAo
MCk7CisgICBMMTAwIDogZG8geworICAgIGlmICgoaTQgfCAwKSAhPSAwKSB7CisgICAgIGk1ID0g
aTMgKyAyOCB8IDA7CisgICAgIGk4ID0gMzY4ICsgKEhFQVAzMltpNSA+PiAyXSA8PCAyKSB8IDA7
CisgICAgIGRvIHsKKyAgICAgIGlmICgoaTMgfCAwKSA9PSAoSEVBUDMyW2k4ID4+IDJdIHwgMCkp
IHsKKyAgICAgICBIRUFQMzJbaTggPj4gMl0gPSBpMjE7CisgICAgICAgaWYgKChpMjEgfCAwKSAh
PSAwKSB7CisgICAgICAgIGJyZWFrOworICAgICAgIH0KKyAgICAgICBIRUFQMzJbMTddID0gSEVB
UDMyWzE3XSAmIH4oMSA8PCBIRUFQMzJbaTUgPj4gMl0pOworICAgICAgIGJyZWFrIEwxMDA7Cisg
ICAgICB9IGVsc2UgeworICAgICAgIGlmIChpNCA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+
IDApIHsKKyAgICAgICAgX2Fib3J0KCk7CisgICAgICAgIHJldHVybiAwOworICAgICAgIH0KKyAg
ICAgICBpMTYgPSBpNCArIDE2IHwgMDsKKyAgICAgICBpZiAoKEhFQVAzMltpMTYgPj4gMl0gfCAw
KSA9PSAoaTMgfCAwKSkgeworICAgICAgICBIRUFQMzJbaTE2ID4+IDJdID0gaTIxOworICAgICAg
IH0gZWxzZSB7CisgICAgICAgIEhFQVAzMltpNCArIDIwID4+IDJdID0gaTIxOworICAgICAgIH0K
KyAgICAgICBpZiAoKGkyMSB8IDApID09IDApIHsKKyAgICAgICAgYnJlYWsgTDEwMDsKKyAgICAg
ICB9CisgICAgICB9CisgICAgIH0gd2hpbGUgKDApOworICAgICBpZiAoaTIxID4+PiAwIDwgKEhF
QVAzMlsyMF0gfCAwKSA+Pj4gMCkgeworICAgICAgX2Fib3J0KCk7CisgICAgICByZXR1cm4gMDsK
KyAgICAgfQorICAgICBIRUFQMzJbaTIxICsgMjQgPj4gMl0gPSBpNDsKKyAgICAgaTUgPSBIRUFQ
MzJbaTMgKyAxNiA+PiAyXSB8IDA7CisgICAgIGRvIHsKKyAgICAgIGlmICgoaTUgfCAwKSAhPSAw
KSB7CisgICAgICAgaWYgKGk1ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgeworICAg
ICAgICBfYWJvcnQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgSEVBUDMyW2kyMSArIDE2ID4+IDJdID0gaTU7CisgICAgICAgIEhFQVAzMltpNSArIDI0ID4+
IDJdID0gaTIxOworICAgICAgICBicmVhazsKKyAgICAgICB9CisgICAgICB9CisgICAgIH0gd2hp
bGUgKDApOworICAgICBpNSA9IEhFQVAzMltpMyArIDIwID4+IDJdIHwgMDsKKyAgICAgaWYgKChp
NSB8IDApID09IDApIHsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgIGlmIChpNSA+Pj4gMCA8
IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgIF9hYm9ydCgpOworICAgICAgcmV0dXJu
IDA7CisgICAgIH0gZWxzZSB7CisgICAgICBIRUFQMzJbaTIxICsgMjAgPj4gMl0gPSBpNTsKKyAg
ICAgIEhFQVAzMltpNSArIDI0ID4+IDJdID0gaTIxOworICAgICAgYnJlYWs7CisgICAgIH0KKyAg
ICB9CisgICB9IHdoaWxlICgwKTsKKyAgIGlmIChpMTUgPj4+IDAgPCAxNikgeworICAgIGk0ID0g
aTE1ICsgaTIgfCAwOworICAgIEhFQVAzMltpMyArIDQgPj4gMl0gPSBpNCB8IDM7CisgICAgaTUg
PSBpMTcgKyAoaTQgKyA0KSB8IDA7CisgICAgSEVBUDMyW2k1ID4+IDJdID0gSEVBUDMyW2k1ID4+
IDJdIHwgMTsKKyAgIH0gZWxzZSB7CisgICAgSEVBUDMyW2kzICsgNCA+PiAyXSA9IGkyIHwgMzsK
KyAgICBIRUFQMzJbaTE3ICsgKGkyIHwgNCkgPj4gMl0gPSBpMTUgfCAxOworICAgIEhFQVAzMltp
MTcgKyAoaTE1ICsgaTIpID4+IDJdID0gaTE1OworICAgIGk1ID0gSEVBUDMyWzE4XSB8IDA7Cisg
ICAgaWYgKChpNSB8IDApICE9IDApIHsKKyAgICAgaTQgPSBIRUFQMzJbMjFdIHwgMDsKKyAgICAg
aTggPSBpNSA+Pj4gMzsKKyAgICAgaTUgPSBpOCA8PCAxOworICAgICBpMTYgPSAxMDQgKyAoaTUg
PDwgMikgfCAwOworICAgICBpMTAgPSBIRUFQMzJbMTZdIHwgMDsKKyAgICAgaTYgPSAxIDw8IGk4
OworICAgICBkbyB7CisgICAgICBpZiAoKGkxMCAmIGk2IHwgMCkgPT0gMCkgeworICAgICAgIEhF
QVAzMlsxNl0gPSBpMTAgfCBpNjsKKyAgICAgICBpMjQgPSBpMTY7CisgICAgICAgaTI1ID0gMTA0
ICsgKGk1ICsgMiA8PCAyKSB8IDA7CisgICAgICB9IGVsc2UgeworICAgICAgIGk4ID0gMTA0ICsg
KGk1ICsgMiA8PCAyKSB8IDA7CisgICAgICAgaTExID0gSEVBUDMyW2k4ID4+IDJdIHwgMDsKKyAg
ICAgICBpZiAoaTExID4+PiAwID49IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICAg
aTI0ID0gaTExOworICAgICAgICBpMjUgPSBpODsKKyAgICAgICAgYnJlYWs7CisgICAgICAgfQor
ICAgICAgIF9hYm9ydCgpOworICAgICAgIHJldHVybiAwOworICAgICAgfQorICAgICB9IHdoaWxl
ICgwKTsKKyAgICAgSEVBUDMyW2kyNSA+PiAyXSA9IGk0OworICAgICBIRUFQMzJbaTI0ICsgMTIg
Pj4gMl0gPSBpNDsKKyAgICAgSEVBUDMyW2k0ICsgOCA+PiAyXSA9IGkyNDsKKyAgICAgSEVBUDMy
W2k0ICsgMTIgPj4gMl0gPSBpMTY7CisgICAgfQorICAgIEhFQVAzMlsxOF0gPSBpMTU7CisgICAg
SEVBUDMyWzIxXSA9IGkxMjsKKyAgIH0KKyAgIGk1ID0gaTMgKyA4IHwgMDsKKyAgIGlmICgoaTUg
fCAwKSA9PSAwKSB7CisgICAgaTE0ID0gaTI7CisgICAgYnJlYWs7CisgICB9IGVsc2UgeworICAg
IGkxMyA9IGk1OworICAgfQorICAgcmV0dXJuIGkxMyB8IDA7CisgIH0gZWxzZSB7CisgICBpZiAo
aTEgPj4+IDAgPiA0Mjk0OTY3MjMxKSB7CisgICAgaTE0ID0gLTE7CisgICAgYnJlYWs7CisgICB9
CisgICBpNSA9IGkxICsgMTEgfCAwOworICAgaTYgPSBpNSAmIC04OworICAgaTEwID0gSEVBUDMy
WzE3XSB8IDA7CisgICBpZiAoKGkxMCB8IDApID09IDApIHsKKyAgICBpMTQgPSBpNjsKKyAgICBi
cmVhazsKKyAgIH0KKyAgIGkxNyA9IC1pNiB8IDA7CisgICBpOCA9IGk1ID4+PiA4OworICAgZG8g
eworICAgIGlmICgoaTggfCAwKSA9PSAwKSB7CisgICAgIGkyNiA9IDA7CisgICAgfSBlbHNlIHsK
KyAgICAgaWYgKGk2ID4+PiAwID4gMTY3NzcyMTUpIHsKKyAgICAgIGkyNiA9IDMxOworICAgICAg
YnJlYWs7CisgICAgIH0KKyAgICAgaTUgPSAoaTggKyAxMDQ4MzIwIHwgMCkgPj4+IDE2ICYgODsK
KyAgICAgaTExID0gaTggPDwgaTU7CisgICAgIGk3ID0gKGkxMSArIDUyMDE5MiB8IDApID4+PiAx
NiAmIDQ7CisgICAgIGk5ID0gaTExIDw8IGk3OworICAgICBpMTEgPSAoaTkgKyAyNDU3NjAgfCAw
KSA+Pj4gMTYgJiAyOworICAgICBpMjcgPSAxNCAtIChpNyB8IGk1IHwgaTExKSArIChpOSA8PCBp
MTEgPj4+IDE1KSB8IDA7CisgICAgIGkyNiA9IGk2ID4+PiAoKGkyNyArIDcgfCAwKSA+Pj4gMCkg
JiAxIHwgaTI3IDw8IDE7CisgICAgfQorICAgfSB3aGlsZSAoMCk7CisgICBpOCA9IEhFQVAzMlsz
NjggKyAoaTI2IDw8IDIpID4+IDJdIHwgMDsKKyAgIEwxNDggOiBkbyB7CisgICAgaWYgKChpOCB8
IDApID09IDApIHsKKyAgICAgaTI4ID0gMDsKKyAgICAgaTI5ID0gaTE3OworICAgICBpMzAgPSAw
OworICAgIH0gZWxzZSB7CisgICAgIGlmICgoaTI2IHwgMCkgPT0gMzEpIHsKKyAgICAgIGkzMSA9
IDA7CisgICAgIH0gZWxzZSB7CisgICAgICBpMzEgPSAyNSAtIChpMjYgPj4+IDEpIHwgMDsKKyAg
ICAgfQorICAgICBpMyA9IDA7CisgICAgIGkxMiA9IGkxNzsKKyAgICAgaTE1ID0gaTg7CisgICAg
IGkxNiA9IGk2IDw8IGkzMTsKKyAgICAgaTQgPSAwOworICAgICB3aGlsZSAoMSkgeworICAgICAg
aTI3ID0gSEVBUDMyW2kxNSArIDQgPj4gMl0gJiAtODsKKyAgICAgIGkxMSA9IGkyNyAtIGk2IHwg
MDsKKyAgICAgIGlmIChpMTEgPj4+IDAgPCBpMTIgPj4+IDApIHsKKyAgICAgICBpZiAoKGkyNyB8
IDApID09IChpNiB8IDApKSB7CisgICAgICAgIGkyOCA9IGkxNTsKKyAgICAgICAgaTI5ID0gaTEx
OworICAgICAgICBpMzAgPSBpMTU7CisgICAgICAgIGJyZWFrIEwxNDg7CisgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgaTMyID0gaTE1OworICAgICAgICBpMzMgPSBpMTE7CisgICAgICAgfQorICAg
ICAgfSBlbHNlIHsKKyAgICAgICBpMzIgPSBpMzsKKyAgICAgICBpMzMgPSBpMTI7CisgICAgICB9
CisgICAgICBpMTEgPSBIRUFQMzJbaTE1ICsgMjAgPj4gMl0gfCAwOworICAgICAgaTI3ID0gSEVB
UDMyW2kxNSArIDE2ICsgKGkxNiA+Pj4gMzEgPDwgMikgPj4gMl0gfCAwOworICAgICAgaTkgPSAo
aTExIHwgMCkgPT0gMCB8IChpMTEgfCAwKSA9PSAoaTI3IHwgMCkgPyBpNCA6IGkxMTsKKyAgICAg
IGlmICgoaTI3IHwgMCkgPT0gMCkgeworICAgICAgIGkyOCA9IGkzMjsKKyAgICAgICBpMjkgPSBp
MzM7CisgICAgICAgaTMwID0gaTk7CisgICAgICAgYnJlYWs7CisgICAgICB9IGVsc2UgeworICAg
ICAgIGkzID0gaTMyOworICAgICAgIGkxMiA9IGkzMzsKKyAgICAgICBpMTUgPSBpMjc7CisgICAg
ICAgaTE2ID0gaTE2IDw8IDE7CisgICAgICAgaTQgPSBpOTsKKyAgICAgIH0KKyAgICAgfQorICAg
IH0KKyAgIH0gd2hpbGUgKDApOworICAgaWYgKChpMzAgfCAwKSA9PSAwICYgKGkyOCB8IDApID09
IDApIHsKKyAgICBpOCA9IDIgPDwgaTI2OworICAgIGkxNyA9IChpOCB8IC1pOCkgJiBpMTA7Cisg
ICAgaWYgKChpMTcgfCAwKSA9PSAwKSB7CisgICAgIGkxNCA9IGk2OworICAgICBicmVhazsKKyAg
ICB9CisgICAgaTggPSAoaTE3ICYgLWkxNykgLSAxIHwgMDsKKyAgICBpMTcgPSBpOCA+Pj4gMTIg
JiAxNjsKKyAgICBpNCA9IGk4ID4+PiAoaTE3ID4+PiAwKTsKKyAgICBpOCA9IGk0ID4+PiA1ICYg
ODsKKyAgICBpMTYgPSBpNCA+Pj4gKGk4ID4+PiAwKTsKKyAgICBpNCA9IGkxNiA+Pj4gMiAmIDQ7
CisgICAgaTE1ID0gaTE2ID4+PiAoaTQgPj4+IDApOworICAgIGkxNiA9IGkxNSA+Pj4gMSAmIDI7
CisgICAgaTEyID0gaTE1ID4+PiAoaTE2ID4+PiAwKTsKKyAgICBpMTUgPSBpMTIgPj4+IDEgJiAx
OworICAgIGkzNCA9IEhFQVAzMlszNjggKyAoKGk4IHwgaTE3IHwgaTQgfCBpMTYgfCBpMTUpICsg
KGkxMiA+Pj4gKGkxNSA+Pj4gMCkpIDw8IDIpID4+IDJdIHwgMDsKKyAgIH0gZWxzZSB7CisgICAg
aTM0ID0gaTMwOworICAgfQorICAgaWYgKChpMzQgfCAwKSA9PSAwKSB7CisgICAgaTM1ID0gaTI5
OworICAgIGkzNiA9IGkyODsKKyAgIH0gZWxzZSB7CisgICAgaTE1ID0gaTM0OworICAgIGkxMiA9
IGkyOTsKKyAgICBpMTYgPSBpMjg7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgaTQgPSAoSEVBUDMy
W2kxNSArIDQgPj4gMl0gJiAtOCkgLSBpNiB8IDA7CisgICAgIGkxNyA9IGk0ID4+PiAwIDwgaTEy
ID4+PiAwOworICAgICBpOCA9IGkxNyA/IGk0IDogaTEyOworICAgICBpNCA9IGkxNyA/IGkxNSA6
IGkxNjsKKyAgICAgaTE3ID0gSEVBUDMyW2kxNSArIDE2ID4+IDJdIHwgMDsKKyAgICAgaWYgKChp
MTcgfCAwKSAhPSAwKSB7CisgICAgICBpMTUgPSBpMTc7CisgICAgICBpMTIgPSBpODsKKyAgICAg
IGkxNiA9IGk0OworICAgICAgY29udGludWU7CisgICAgIH0KKyAgICAgaTE3ID0gSEVBUDMyW2kx
NSArIDIwID4+IDJdIHwgMDsKKyAgICAgaWYgKChpMTcgfCAwKSA9PSAwKSB7CisgICAgICBpMzUg
PSBpODsKKyAgICAgIGkzNiA9IGk0OworICAgICAgYnJlYWs7CisgICAgIH0gZWxzZSB7CisgICAg
ICBpMTUgPSBpMTc7CisgICAgICBpMTIgPSBpODsKKyAgICAgIGkxNiA9IGk0OworICAgICB9Cisg
ICAgfQorICAgfQorICAgaWYgKChpMzYgfCAwKSA9PSAwKSB7CisgICAgaTE0ID0gaTY7CisgICAg
YnJlYWs7CisgICB9CisgICBpZiAoaTM1ID4+PiAwID49ICgoSEVBUDMyWzE4XSB8IDApIC0gaTYg
fCAwKSA+Pj4gMCkgeworICAgIGkxNCA9IGk2OworICAgIGJyZWFrOworICAgfQorICAgaTE2ID0g
aTM2OworICAgaTEyID0gSEVBUDMyWzIwXSB8IDA7CisgICBpZiAoaTE2ID4+PiAwIDwgaTEyID4+
PiAwKSB7CisgICAgX2Fib3J0KCk7CisgICAgcmV0dXJuIDA7CisgICB9CisgICBpMTUgPSBpMTYg
KyBpNiB8IDA7CisgICBpMTAgPSBpMTU7CisgICBpZiAoaTE2ID4+PiAwID49IGkxNSA+Pj4gMCkg
eworICAgIF9hYm9ydCgpOworICAgIHJldHVybiAwOworICAgfQorICAgaTQgPSBIRUFQMzJbaTM2
ICsgMjQgPj4gMl0gfCAwOworICAgaTggPSBIRUFQMzJbaTM2ICsgMTIgPj4gMl0gfCAwOworICAg
ZG8geworICAgIGlmICgoaTggfCAwKSA9PSAoaTM2IHwgMCkpIHsKKyAgICAgaTE3ID0gaTM2ICsg
MjAgfCAwOworICAgICBpMyA9IEhFQVAzMltpMTcgPj4gMl0gfCAwOworICAgICBpZiAoKGkzIHwg
MCkgPT0gMCkgeworICAgICAgaTkgPSBpMzYgKyAxNiB8IDA7CisgICAgICBpMjcgPSBIRUFQMzJb
aTkgPj4gMl0gfCAwOworICAgICAgaWYgKChpMjcgfCAwKSA9PSAwKSB7CisgICAgICAgaTM3ID0g
MDsKKyAgICAgICBicmVhazsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgaTM4ID0gaTI3OworICAg
ICAgIGkzOSA9IGk5OworICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgaTM4ID0gaTM7Cisg
ICAgICBpMzkgPSBpMTc7CisgICAgIH0KKyAgICAgd2hpbGUgKDEpIHsKKyAgICAgIGkxNyA9IGkz
OCArIDIwIHwgMDsKKyAgICAgIGkzID0gSEVBUDMyW2kxNyA+PiAyXSB8IDA7CisgICAgICBpZiAo
KGkzIHwgMCkgIT0gMCkgeworICAgICAgIGkzOCA9IGkzOworICAgICAgIGkzOSA9IGkxNzsKKyAg
ICAgICBjb250aW51ZTsKKyAgICAgIH0KKyAgICAgIGkxNyA9IGkzOCArIDE2IHwgMDsKKyAgICAg
IGkzID0gSEVBUDMyW2kxNyA+PiAyXSB8IDA7CisgICAgICBpZiAoKGkzIHwgMCkgPT0gMCkgewor
ICAgICAgIGJyZWFrOworICAgICAgfSBlbHNlIHsKKyAgICAgICBpMzggPSBpMzsKKyAgICAgICBp
MzkgPSBpMTc7CisgICAgICB9CisgICAgIH0KKyAgICAgaWYgKGkzOSA+Pj4gMCA8IGkxMiA+Pj4g
MCkgeworICAgICAgX2Fib3J0KCk7CisgICAgICByZXR1cm4gMDsKKyAgICAgfSBlbHNlIHsKKyAg
ICAgIEhFQVAzMltpMzkgPj4gMl0gPSAwOworICAgICAgaTM3ID0gaTM4OworICAgICAgYnJlYWs7
CisgICAgIH0KKyAgICB9IGVsc2UgeworICAgICBpMTcgPSBIRUFQMzJbaTM2ICsgOCA+PiAyXSB8
IDA7CisgICAgIGlmIChpMTcgPj4+IDAgPCBpMTIgPj4+IDApIHsKKyAgICAgIF9hYm9ydCgpOwor
ICAgICAgcmV0dXJuIDA7CisgICAgIH0KKyAgICAgaTMgPSBpMTcgKyAxMiB8IDA7CisgICAgIGlm
ICgoSEVBUDMyW2kzID4+IDJdIHwgMCkgIT0gKGkzNiB8IDApKSB7CisgICAgICBfYWJvcnQoKTsK
KyAgICAgIHJldHVybiAwOworICAgICB9CisgICAgIGk5ID0gaTggKyA4IHwgMDsKKyAgICAgaWYg
KChIRUFQMzJbaTkgPj4gMl0gfCAwKSA9PSAoaTM2IHwgMCkpIHsKKyAgICAgIEhFQVAzMltpMyA+
PiAyXSA9IGk4OworICAgICAgSEVBUDMyW2k5ID4+IDJdID0gaTE3OworICAgICAgaTM3ID0gaTg7
CisgICAgICBicmVhazsKKyAgICAgfSBlbHNlIHsKKyAgICAgIF9hYm9ydCgpOworICAgICAgcmV0
dXJuIDA7CisgICAgIH0KKyAgICB9CisgICB9IHdoaWxlICgwKTsKKyAgIEwxOTggOiBkbyB7Cisg
ICAgaWYgKChpNCB8IDApICE9IDApIHsKKyAgICAgaTggPSBpMzYgKyAyOCB8IDA7CisgICAgIGkx
MiA9IDM2OCArIChIRUFQMzJbaTggPj4gMl0gPDwgMikgfCAwOworICAgICBkbyB7CisgICAgICBp
ZiAoKGkzNiB8IDApID09IChIRUFQMzJbaTEyID4+IDJdIHwgMCkpIHsKKyAgICAgICBIRUFQMzJb
aTEyID4+IDJdID0gaTM3OworICAgICAgIGlmICgoaTM3IHwgMCkgIT0gMCkgeworICAgICAgICBi
cmVhazsKKyAgICAgICB9CisgICAgICAgSEVBUDMyWzE3XSA9IEhFQVAzMlsxN10gJiB+KDEgPDwg
SEVBUDMyW2k4ID4+IDJdKTsKKyAgICAgICBicmVhayBMMTk4OworICAgICAgfSBlbHNlIHsKKyAg
ICAgICBpZiAoaTQgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7CisgICAgICAgIF9h
Ym9ydCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICAgICB9CisgICAgICAgaTE3ID0gaTQgKyAx
NiB8IDA7CisgICAgICAgaWYgKChIRUFQMzJbaTE3ID4+IDJdIHwgMCkgPT0gKGkzNiB8IDApKSB7
CisgICAgICAgIEhFQVAzMltpMTcgPj4gMl0gPSBpMzc7CisgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgSEVBUDMyW2k0ICsgMjAgPj4gMl0gPSBpMzc7CisgICAgICAgfQorICAgICAgIGlmICgoaTM3
IHwgMCkgPT0gMCkgeworICAgICAgICBicmVhayBMMTk4OworICAgICAgIH0KKyAgICAgIH0KKyAg
ICAgfSB3aGlsZSAoMCk7CisgICAgIGlmIChpMzcgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+
PiAwKSB7CisgICAgICBfYWJvcnQoKTsKKyAgICAgIHJldHVybiAwOworICAgICB9CisgICAgIEhF
QVAzMltpMzcgKyAyNCA+PiAyXSA9IGk0OworICAgICBpOCA9IEhFQVAzMltpMzYgKyAxNiA+PiAy
XSB8IDA7CisgICAgIGRvIHsKKyAgICAgIGlmICgoaTggfCAwKSAhPSAwKSB7CisgICAgICAgaWYg
KGk4ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgeworICAgICAgICBfYWJvcnQoKTsK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgSEVBUDMyW2kzNyAr
IDE2ID4+IDJdID0gaTg7CisgICAgICAgIEhFQVAzMltpOCArIDI0ID4+IDJdID0gaTM3OworICAg
ICAgICBicmVhazsKKyAgICAgICB9CisgICAgICB9CisgICAgIH0gd2hpbGUgKDApOworICAgICBp
OCA9IEhFQVAzMltpMzYgKyAyMCA+PiAyXSB8IDA7CisgICAgIGlmICgoaTggfCAwKSA9PSAwKSB7
CisgICAgICBicmVhazsKKyAgICAgfQorICAgICBpZiAoaTggPj4+IDAgPCAoSEVBUDMyWzIwXSB8
IDApID4+PiAwKSB7CisgICAgICBfYWJvcnQoKTsKKyAgICAgIHJldHVybiAwOworICAgICB9IGVs
c2UgeworICAgICAgSEVBUDMyW2kzNyArIDIwID4+IDJdID0gaTg7CisgICAgICBIRUFQMzJbaTgg
KyAyNCA+PiAyXSA9IGkzNzsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgfQorICAgfSB3aGls
ZSAoMCk7CisgICBkbyB7CisgICAgaWYgKGkzNSA+Pj4gMCA8IDE2KSB7CisgICAgIGk0ID0gaTM1
ICsgaTYgfCAwOworICAgICBIRUFQMzJbaTM2ICsgNCA+PiAyXSA9IGk0IHwgMzsKKyAgICAgaTgg
PSBpMTYgKyAoaTQgKyA0KSB8IDA7CisgICAgIEhFQVAzMltpOCA+PiAyXSA9IEhFQVAzMltpOCA+
PiAyXSB8IDE7CisgICAgfSBlbHNlIHsKKyAgICAgSEVBUDMyW2kzNiArIDQgPj4gMl0gPSBpNiB8
IDM7CisgICAgIEhFQVAzMltpMTYgKyAoaTYgfCA0KSA+PiAyXSA9IGkzNSB8IDE7CisgICAgIEhF
QVAzMltpMTYgKyAoaTM1ICsgaTYpID4+IDJdID0gaTM1OworICAgICBpOCA9IGkzNSA+Pj4gMzsK
KyAgICAgaWYgKGkzNSA+Pj4gMCA8IDI1NikgeworICAgICAgaTQgPSBpOCA8PCAxOworICAgICAg
aTEyID0gMTA0ICsgKGk0IDw8IDIpIHwgMDsKKyAgICAgIGkxNyA9IEhFQVAzMlsxNl0gfCAwOwor
ICAgICAgaTkgPSAxIDw8IGk4OworICAgICAgZG8geworICAgICAgIGlmICgoaTE3ICYgaTkgfCAw
KSA9PSAwKSB7CisgICAgICAgIEhFQVAzMlsxNl0gPSBpMTcgfCBpOTsKKyAgICAgICAgaTQwID0g
aTEyOworICAgICAgICBpNDEgPSAxMDQgKyAoaTQgKyAyIDw8IDIpIHwgMDsKKyAgICAgICB9IGVs
c2UgeworICAgICAgICBpOCA9IDEwNCArIChpNCArIDIgPDwgMikgfCAwOworICAgICAgICBpMyA9
IEhFQVAzMltpOCA+PiAyXSB8IDA7CisgICAgICAgIGlmIChpMyA+Pj4gMCA+PSAoSEVBUDMyWzIw
XSB8IDApID4+PiAwKSB7CisgICAgICAgICBpNDAgPSBpMzsKKyAgICAgICAgIGk0MSA9IGk4Owor
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgX2Fib3J0KCk7CisgICAgICAgIHJl
dHVybiAwOworICAgICAgIH0KKyAgICAgIH0gd2hpbGUgKDApOworICAgICAgSEVBUDMyW2k0MSA+
PiAyXSA9IGkxMDsKKyAgICAgIEhFQVAzMltpNDAgKyAxMiA+PiAyXSA9IGkxMDsKKyAgICAgIEhF
QVAzMltpMTYgKyAoaTYgKyA4KSA+PiAyXSA9IGk0MDsKKyAgICAgIEhFQVAzMltpMTYgKyAoaTYg
KyAxMikgPj4gMl0gPSBpMTI7CisgICAgICBicmVhazsKKyAgICAgfQorICAgICBpNCA9IGkxNTsK
KyAgICAgaTkgPSBpMzUgPj4+IDg7CisgICAgIGRvIHsKKyAgICAgIGlmICgoaTkgfCAwKSA9PSAw
KSB7CisgICAgICAgaTQyID0gMDsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgaWYgKGkzNSA+Pj4g
MCA+IDE2Nzc3MjE1KSB7CisgICAgICAgIGk0MiA9IDMxOworICAgICAgICBicmVhazsKKyAgICAg
ICB9CisgICAgICAgaTE3ID0gKGk5ICsgMTA0ODMyMCB8IDApID4+PiAxNiAmIDg7CisgICAgICAg
aTggPSBpOSA8PCBpMTc7CisgICAgICAgaTMgPSAoaTggKyA1MjAxOTIgfCAwKSA+Pj4gMTYgJiA0
OworICAgICAgIGkyNyA9IGk4IDw8IGkzOworICAgICAgIGk4ID0gKGkyNyArIDI0NTc2MCB8IDAp
ID4+PiAxNiAmIDI7CisgICAgICAgaTExID0gMTQgLSAoaTMgfCBpMTcgfCBpOCkgKyAoaTI3IDw8
IGk4ID4+PiAxNSkgfCAwOworICAgICAgIGk0MiA9IGkzNSA+Pj4gKChpMTEgKyA3IHwgMCkgPj4+
IDApICYgMSB8IGkxMSA8PCAxOworICAgICAgfQorICAgICB9IHdoaWxlICgwKTsKKyAgICAgaTkg
PSAzNjggKyAoaTQyIDw8IDIpIHwgMDsKKyAgICAgSEVBUDMyW2kxNiArIChpNiArIDI4KSA+PiAy
XSA9IGk0MjsKKyAgICAgSEVBUDMyW2kxNiArIChpNiArIDIwKSA+PiAyXSA9IDA7CisgICAgIEhF
QVAzMltpMTYgKyAoaTYgKyAxNikgPj4gMl0gPSAwOworICAgICBpMTIgPSBIRUFQMzJbMTddIHwg
MDsKKyAgICAgaTExID0gMSA8PCBpNDI7CisgICAgIGlmICgoaTEyICYgaTExIHwgMCkgPT0gMCkg
eworICAgICAgSEVBUDMyWzE3XSA9IGkxMiB8IGkxMTsKKyAgICAgIEhFQVAzMltpOSA+PiAyXSA9
IGk0OworICAgICAgSEVBUDMyW2kxNiArIChpNiArIDI0KSA+PiAyXSA9IGk5OworICAgICAgSEVB
UDMyW2kxNiArIChpNiArIDEyKSA+PiAyXSA9IGk0OworICAgICAgSEVBUDMyW2kxNiArIChpNiAr
IDgpID4+IDJdID0gaTQ7CisgICAgICBicmVhazsKKyAgICAgfQorICAgICBpZiAoKGk0MiB8IDAp
ID09IDMxKSB7CisgICAgICBpNDMgPSAwOworICAgICB9IGVsc2UgeworICAgICAgaTQzID0gMjUg
LSAoaTQyID4+PiAxKSB8IDA7CisgICAgIH0KKyAgICAgaTExID0gaTM1IDw8IGk0MzsKKyAgICAg
aTEyID0gSEVBUDMyW2k5ID4+IDJdIHwgMDsKKyAgICAgd2hpbGUgKDEpIHsKKyAgICAgIGlmICgo
SEVBUDMyW2kxMiArIDQgPj4gMl0gJiAtOCB8IDApID09IChpMzUgfCAwKSkgeworICAgICAgIGJy
ZWFrOworICAgICAgfQorICAgICAgaTQ0ID0gaTEyICsgMTYgKyAoaTExID4+PiAzMSA8PCAyKSB8
IDA7CisgICAgICBpOSA9IEhFQVAzMltpNDQgPj4gMl0gfCAwOworICAgICAgaWYgKChpOSB8IDAp
ID09IDApIHsKKyAgICAgICBpNDUgPSAxNjg7CisgICAgICAgYnJlYWs7CisgICAgICB9IGVsc2Ug
eworICAgICAgIGkxMSA9IGkxMSA8PCAxOworICAgICAgIGkxMiA9IGk5OworICAgICAgfQorICAg
ICB9CisgICAgIGlmICgoaTQ1IHwgMCkgPT0gMTY4KSB7CisgICAgICBpZiAoaTQ0ID4+PiAwIDwg
KEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgeworICAgICAgIF9hYm9ydCgpOworICAgICAgIHJldHVy
biAwOworICAgICAgfSBlbHNlIHsKKyAgICAgICBIRUFQMzJbaTQ0ID4+IDJdID0gaTQ7CisgICAg
ICAgSEVBUDMyW2kxNiArIChpNiArIDI0KSA+PiAyXSA9IGkxMjsKKyAgICAgICBIRUFQMzJbaTE2
ICsgKGk2ICsgMTIpID4+IDJdID0gaTQ7CisgICAgICAgSEVBUDMyW2kxNiArIChpNiArIDgpID4+
IDJdID0gaTQ7CisgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgIH0KKyAgICAgaTExID0gaTEy
ICsgOCB8IDA7CisgICAgIGk5ID0gSEVBUDMyW2kxMSA+PiAyXSB8IDA7CisgICAgIGk4ID0gSEVB
UDMyWzIwXSB8IDA7CisgICAgIGlmIChpMTIgPj4+IDAgPCBpOCA+Pj4gMCkgeworICAgICAgX2Fi
b3J0KCk7CisgICAgICByZXR1cm4gMDsKKyAgICAgfQorICAgICBpZiAoaTkgPj4+IDAgPCBpOCA+
Pj4gMCkgeworICAgICAgX2Fib3J0KCk7CisgICAgICByZXR1cm4gMDsKKyAgICAgfSBlbHNlIHsK
KyAgICAgIEhFQVAzMltpOSArIDEyID4+IDJdID0gaTQ7CisgICAgICBIRUFQMzJbaTExID4+IDJd
ID0gaTQ7CisgICAgICBIRUFQMzJbaTE2ICsgKGk2ICsgOCkgPj4gMl0gPSBpOTsKKyAgICAgIEhF
QVAzMltpMTYgKyAoaTYgKyAxMikgPj4gMl0gPSBpMTI7CisgICAgICBIRUFQMzJbaTE2ICsgKGk2
ICsgMjQpID4+IDJdID0gMDsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgfQorICAgfSB3aGls
ZSAoMCk7CisgICBpMTYgPSBpMzYgKyA4IHwgMDsKKyAgIGlmICgoaTE2IHwgMCkgPT0gMCkgewor
ICAgIGkxNCA9IGk2OworICAgIGJyZWFrOworICAgfSBlbHNlIHsKKyAgICBpMTMgPSBpMTY7Cisg
ICB9CisgICByZXR1cm4gaTEzIHwgMDsKKyAgfQorIH0gd2hpbGUgKDApOworIGkzNiA9IEhFQVAz
MlsxOF0gfCAwOworIGlmIChpMTQgPj4+IDAgPD0gaTM2ID4+PiAwKSB7CisgIGk0NCA9IGkzNiAt
IGkxNCB8IDA7CisgIGkzNSA9IEhFQVAzMlsyMV0gfCAwOworICBpZiAoaTQ0ID4+PiAwID4gMTUp
IHsKKyAgIGk0MyA9IGkzNTsKKyAgIEhFQVAzMlsyMV0gPSBpNDMgKyBpMTQ7CisgICBIRUFQMzJb
MThdID0gaTQ0OworICAgSEVBUDMyW2k0MyArIChpMTQgKyA0KSA+PiAyXSA9IGk0NCB8IDE7Cisg
ICBIRUFQMzJbaTQzICsgaTM2ID4+IDJdID0gaTQ0OworICAgSEVBUDMyW2kzNSArIDQgPj4gMl0g
PSBpMTQgfCAzOworICB9IGVsc2UgeworICAgSEVBUDMyWzE4XSA9IDA7CisgICBIRUFQMzJbMjFd
ID0gMDsKKyAgIEhFQVAzMltpMzUgKyA0ID4+IDJdID0gaTM2IHwgMzsKKyAgIGk0NCA9IGkzNSAr
IChpMzYgKyA0KSB8IDA7CisgICBIRUFQMzJbaTQ0ID4+IDJdID0gSEVBUDMyW2k0NCA+PiAyXSB8
IDE7CisgIH0KKyAgaTEzID0gaTM1ICsgOCB8IDA7CisgIHJldHVybiBpMTMgfCAwOworIH0KKyBp
MzUgPSBIRUFQMzJbMTldIHwgMDsKKyBpZiAoaTE0ID4+PiAwIDwgaTM1ID4+PiAwKSB7CisgIGk0
NCA9IGkzNSAtIGkxNCB8IDA7CisgIEhFQVAzMlsxOV0gPSBpNDQ7CisgIGkzNSA9IEhFQVAzMlsy
Ml0gfCAwOworICBpMzYgPSBpMzU7CisgIEhFQVAzMlsyMl0gPSBpMzYgKyBpMTQ7CisgIEhFQVAz
MltpMzYgKyAoaTE0ICsgNCkgPj4gMl0gPSBpNDQgfCAxOworICBIRUFQMzJbaTM1ICsgNCA+PiAy
XSA9IGkxNCB8IDM7CisgIGkxMyA9IGkzNSArIDggfCAwOworICByZXR1cm4gaTEzIHwgMDsKKyB9
CisgZG8geworICBpZiAoKEhFQVAzMlsxMF0gfCAwKSA9PSAwKSB7CisgICBpMzUgPSBfc3lzY29u
Zig4KSB8IDA7CisgICBpZiAoKGkzNSAtIDEgJiBpMzUgfCAwKSA9PSAwKSB7CisgICAgSEVBUDMy
WzEyXSA9IGkzNTsKKyAgICBIRUFQMzJbMTFdID0gaTM1OworICAgIEhFQVAzMlsxM10gPSAtMTsK
KyAgICBIRUFQMzJbMTRdID0gLTE7CisgICAgSEVBUDMyWzE1XSA9IDA7CisgICAgSEVBUDMyWzEy
N10gPSAwOworICAgIEhFQVAzMlsxMF0gPSAoX3RpbWUoMCkgfCAwKSAmIC0xNiBeIDE0MzE2NTU3
Njg7CisgICAgYnJlYWs7CisgICB9IGVsc2UgeworICAgIF9hYm9ydCgpOworICAgIHJldHVybiAw
OworICAgfQorICB9CisgfSB3aGlsZSAoMCk7CisgaTM1ID0gaTE0ICsgNDggfCAwOworIGk0NCA9
IEhFQVAzMlsxMl0gfCAwOworIGkzNiA9IGkxNCArIDQ3IHwgMDsKKyBpNDMgPSBpNDQgKyBpMzYg
fCAwOworIGk0MiA9IC1pNDQgfCAwOworIGk0NCA9IGk0MyAmIGk0MjsKKyBpZiAoaTQ0ID4+PiAw
IDw9IGkxNCA+Pj4gMCkgeworICBpMTMgPSAwOworICByZXR1cm4gaTEzIHwgMDsKKyB9CisgaTQw
ID0gSEVBUDMyWzEyNl0gfCAwOworIGRvIHsKKyAgaWYgKChpNDAgfCAwKSAhPSAwKSB7CisgICBp
NDEgPSBIRUFQMzJbMTI0XSB8IDA7CisgICBpMzcgPSBpNDEgKyBpNDQgfCAwOworICAgaWYgKGkz
NyA+Pj4gMCA8PSBpNDEgPj4+IDAgfCBpMzcgPj4+IDAgPiBpNDAgPj4+IDApIHsKKyAgICBpMTMg
PSAwOworICAgfSBlbHNlIHsKKyAgICBicmVhazsKKyAgIH0KKyAgIHJldHVybiBpMTMgfCAwOwor
ICB9CisgfSB3aGlsZSAoMCk7CisgTDI5MCA6IGRvIHsKKyAgaWYgKChIRUFQMzJbMTI3XSAmIDQg
fCAwKSA9PSAwKSB7CisgICBpNDAgPSBIRUFQMzJbMjJdIHwgMDsKKyAgIEwyOTIgOiBkbyB7Cisg
ICAgaWYgKChpNDAgfCAwKSA9PSAwKSB7CisgICAgIGk0NSA9IDE5ODsKKyAgICB9IGVsc2Ugewor
ICAgICBpMzcgPSBpNDA7CisgICAgIGk0MSA9IDUxMjsKKyAgICAgd2hpbGUgKDEpIHsKKyAgICAg
IGk0NiA9IGk0MSB8IDA7CisgICAgICBpMzggPSBIRUFQMzJbaTQ2ID4+IDJdIHwgMDsKKyAgICAg
IGlmIChpMzggPj4+IDAgPD0gaTM3ID4+PiAwKSB7CisgICAgICAgaTQ3ID0gaTQxICsgNCB8IDA7
CisgICAgICAgaWYgKChpMzggKyAoSEVBUDMyW2k0NyA+PiAyXSB8IDApIHwgMCkgPj4+IDAgPiBp
MzcgPj4+IDApIHsKKyAgICAgICAgYnJlYWs7CisgICAgICAgfQorICAgICAgfQorICAgICAgaTM4
ID0gSEVBUDMyW2k0MSArIDggPj4gMl0gfCAwOworICAgICAgaWYgKChpMzggfCAwKSA9PSAwKSB7
CisgICAgICAgaTQ1ID0gMTk4OworICAgICAgIGJyZWFrIEwyOTI7CisgICAgICB9IGVsc2Ugewor
ICAgICAgIGk0MSA9IGkzODsKKyAgICAgIH0KKyAgICAgfQorICAgICBpZiAoKGk0MSB8IDApID09
IDApIHsKKyAgICAgIGk0NSA9IDE5ODsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgIGkzNyA9
IGk0MyAtIChIRUFQMzJbMTldIHwgMCkgJiBpNDI7CisgICAgIGlmIChpMzcgPj4+IDAgPj0gMjE0
NzQ4MzY0NykgeworICAgICAgaTQ4ID0gMDsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgIGkx
MiA9IF9zYnJrKGkzNyB8IDApIHwgMDsKKyAgICAgaTQgPSAoaTEyIHwgMCkgPT0gKChIRUFQMzJb
aTQ2ID4+IDJdIHwgMCkgKyAoSEVBUDMyW2k0NyA+PiAyXSB8IDApIHwgMCk7CisgICAgIGk0OSA9
IGk0ID8gaTEyIDogLTE7CisgICAgIGk1MCA9IGk0ID8gaTM3IDogMDsKKyAgICAgaTUxID0gaTEy
OworICAgICBpNTIgPSBpMzc7CisgICAgIGk0NSA9IDIwNzsKKyAgICB9CisgICB9IHdoaWxlICgw
KTsKKyAgIGRvIHsKKyAgICBpZiAoKGk0NSB8IDApID09IDE5OCkgeworICAgICBpNDAgPSBfc2Jy
aygwKSB8IDA7CisgICAgIGlmICgoaTQwIHwgMCkgPT0gLTEpIHsKKyAgICAgIGk0OCA9IDA7Cisg
ICAgICBicmVhazsKKyAgICAgfQorICAgICBpNiA9IGk0MDsKKyAgICAgaTM3ID0gSEVBUDMyWzEx
XSB8IDA7CisgICAgIGkxMiA9IGkzNyAtIDEgfCAwOworICAgICBpZiAoKGkxMiAmIGk2IHwgMCkg
PT0gMCkgeworICAgICAgaTUzID0gaTQ0OworICAgICB9IGVsc2UgeworICAgICAgaTUzID0gaTQ0
IC0gaTYgKyAoaTEyICsgaTYgJiAtaTM3KSB8IDA7CisgICAgIH0KKyAgICAgaTM3ID0gSEVBUDMy
WzEyNF0gfCAwOworICAgICBpNiA9IGkzNyArIGk1MyB8IDA7CisgICAgIGlmICghKGk1MyA+Pj4g
MCA+IGkxNCA+Pj4gMCAmIGk1MyA+Pj4gMCA8IDIxNDc0ODM2NDcpKSB7CisgICAgICBpNDggPSAw
OworICAgICAgYnJlYWs7CisgICAgIH0KKyAgICAgaTEyID0gSEVBUDMyWzEyNl0gfCAwOworICAg
ICBpZiAoKGkxMiB8IDApICE9IDApIHsKKyAgICAgIGlmIChpNiA+Pj4gMCA8PSBpMzcgPj4+IDAg
fCBpNiA+Pj4gMCA+IGkxMiA+Pj4gMCkgeworICAgICAgIGk0OCA9IDA7CisgICAgICAgYnJlYWs7
CisgICAgICB9CisgICAgIH0KKyAgICAgaTEyID0gX3NicmsoaTUzIHwgMCkgfCAwOworICAgICBp
NiA9IChpMTIgfCAwKSA9PSAoaTQwIHwgMCk7CisgICAgIGk0OSA9IGk2ID8gaTQwIDogLTE7Cisg
ICAgIGk1MCA9IGk2ID8gaTUzIDogMDsKKyAgICAgaTUxID0gaTEyOworICAgICBpNTIgPSBpNTM7
CisgICAgIGk0NSA9IDIwNzsKKyAgICB9CisgICB9IHdoaWxlICgwKTsKKyAgIEwzMTIgOiBkbyB7
CisgICAgaWYgKChpNDUgfCAwKSA9PSAyMDcpIHsKKyAgICAgaTEyID0gLWk1MiB8IDA7CisgICAg
IGlmICgoaTQ5IHwgMCkgIT0gLTEpIHsKKyAgICAgIGk1NCA9IGk1MDsKKyAgICAgIGk1NSA9IGk0
OTsKKyAgICAgIGk0NSA9IDIxODsKKyAgICAgIGJyZWFrIEwyOTA7CisgICAgIH0KKyAgICAgZG8g
eworICAgICAgaWYgKChpNTEgfCAwKSAhPSAtMSAmIGk1MiA+Pj4gMCA8IDIxNDc0ODM2NDcgJiBp
NTIgPj4+IDAgPCBpMzUgPj4+IDApIHsKKyAgICAgICBpNiA9IEhFQVAzMlsxMl0gfCAwOworICAg
ICAgIGk0MCA9IGkzNiAtIGk1MiArIGk2ICYgLWk2OworICAgICAgIGlmIChpNDAgPj4+IDAgPj0g
MjE0NzQ4MzY0NykgeworICAgICAgICBpNTYgPSBpNTI7CisgICAgICAgIGJyZWFrOworICAgICAg
IH0KKyAgICAgICBpZiAoKF9zYnJrKGk0MCB8IDApIHwgMCkgPT0gLTEpIHsKKyAgICAgICAgX3Ni
cmsoaTEyIHwgMCkgfCAwOworICAgICAgICBpNDggPSBpNTA7CisgICAgICAgIGJyZWFrIEwzMTI7
CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgaTU2ID0gaTQwICsgaTUyIHwgMDsKKyAgICAgICAg
YnJlYWs7CisgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICBpNTYgPSBpNTI7CisgICAg
ICB9CisgICAgIH0gd2hpbGUgKDApOworICAgICBpZiAoKGk1MSB8IDApID09IC0xKSB7CisgICAg
ICBpNDggPSBpNTA7CisgICAgIH0gZWxzZSB7CisgICAgICBpNTQgPSBpNTY7CisgICAgICBpNTUg
PSBpNTE7CisgICAgICBpNDUgPSAyMTg7CisgICAgICBicmVhayBMMjkwOworICAgICB9CisgICAg
fQorICAgfSB3aGlsZSAoMCk7CisgICBIRUFQMzJbMTI3XSA9IEhFQVAzMlsxMjddIHwgNDsKKyAg
IGk1NyA9IGk0ODsKKyAgIGk0NSA9IDIxNTsKKyAgfSBlbHNlIHsKKyAgIGk1NyA9IDA7CisgICBp
NDUgPSAyMTU7CisgIH0KKyB9IHdoaWxlICgwKTsKKyBkbyB7CisgIGlmICgoaTQ1IHwgMCkgPT0g
MjE1KSB7CisgICBpZiAoaTQ0ID4+PiAwID49IDIxNDc0ODM2NDcpIHsKKyAgICBicmVhazsKKyAg
IH0KKyAgIGk0OCA9IF9zYnJrKGk0NCB8IDApIHwgMDsKKyAgIGk1MSA9IF9zYnJrKDApIHwgMDsK
KyAgIGlmICghKChpNTEgfCAwKSAhPSAtMSAmIChpNDggfCAwKSAhPSAtMSAmIGk0OCA+Pj4gMCA8
IGk1MSA+Pj4gMCkpIHsKKyAgICBicmVhazsKKyAgIH0KKyAgIGk1NiA9IGk1MSAtIGk0OCB8IDA7
CisgICBpNTEgPSBpNTYgPj4+IDAgPiAoaTE0ICsgNDAgfCAwKSA+Pj4gMDsKKyAgIGk1MCA9IGk1
MSA/IGk0OCA6IC0xOworICAgaWYgKChpNTAgfCAwKSAhPSAtMSkgeworICAgIGk1NCA9IGk1MSA/
IGk1NiA6IGk1NzsKKyAgICBpNTUgPSBpNTA7CisgICAgaTQ1ID0gMjE4OworICAgfQorICB9Cisg
fSB3aGlsZSAoMCk7CisgZG8geworICBpZiAoKGk0NSB8IDApID09IDIxOCkgeworICAgaTU3ID0g
KEhFQVAzMlsxMjRdIHwgMCkgKyBpNTQgfCAwOworICAgSEVBUDMyWzEyNF0gPSBpNTc7CisgICBp
ZiAoaTU3ID4+PiAwID4gKEhFQVAzMlsxMjVdIHwgMCkgPj4+IDApIHsKKyAgICBIRUFQMzJbMTI1
XSA9IGk1NzsKKyAgIH0KKyAgIGk1NyA9IEhFQVAzMlsyMl0gfCAwOworICAgTDMzMiA6IGRvIHsK
KyAgICBpZiAoKGk1NyB8IDApID09IDApIHsKKyAgICAgaTQ0ID0gSEVBUDMyWzIwXSB8IDA7Cisg
ICAgIGlmICgoaTQ0IHwgMCkgPT0gMCB8IGk1NSA+Pj4gMCA8IGk0NCA+Pj4gMCkgeworICAgICAg
SEVBUDMyWzIwXSA9IGk1NTsKKyAgICAgfQorICAgICBIRUFQMzJbMTI4XSA9IGk1NTsKKyAgICAg
SEVBUDMyWzEyOV0gPSBpNTQ7CisgICAgIEhFQVAzMlsxMzFdID0gMDsKKyAgICAgSEVBUDMyWzI1
XSA9IEhFQVAzMlsxMF07CisgICAgIEhFQVAzMlsyNF0gPSAtMTsKKyAgICAgaTQ0ID0gMDsKKyAg
ICAgZG8geworICAgICAgaTUwID0gaTQ0IDw8IDE7CisgICAgICBpNTYgPSAxMDQgKyAoaTUwIDw8
IDIpIHwgMDsKKyAgICAgIEhFQVAzMlsxMDQgKyAoaTUwICsgMyA8PCAyKSA+PiAyXSA9IGk1NjsK
KyAgICAgIEhFQVAzMlsxMDQgKyAoaTUwICsgMiA8PCAyKSA+PiAyXSA9IGk1NjsKKyAgICAgIGk0
NCA9IGk0NCArIDEgfCAwOworICAgICB9IHdoaWxlIChpNDQgPj4+IDAgPCAzMik7CisgICAgIGk0
NCA9IGk1NSArIDggfCAwOworICAgICBpZiAoKGk0NCAmIDcgfCAwKSA9PSAwKSB7CisgICAgICBp
NTggPSAwOworICAgICB9IGVsc2UgeworICAgICAgaTU4ID0gLWk0NCAmIDc7CisgICAgIH0KKyAg
ICAgaTQ0ID0gaTU0IC0gNDAgLSBpNTggfCAwOworICAgICBIRUFQMzJbMjJdID0gaTU1ICsgaTU4
OworICAgICBIRUFQMzJbMTldID0gaTQ0OworICAgICBIRUFQMzJbaTU1ICsgKGk1OCArIDQpID4+
IDJdID0gaTQ0IHwgMTsKKyAgICAgSEVBUDMyW2k1NSArIChpNTQgLSAzNikgPj4gMl0gPSA0MDsK
KyAgICAgSEVBUDMyWzIzXSA9IEhFQVAzMlsxNF07CisgICAgfSBlbHNlIHsKKyAgICAgaTQ0ID0g
NTEyOworICAgICB3aGlsZSAoMSkgeworICAgICAgaTU5ID0gSEVBUDMyW2k0NCA+PiAyXSB8IDA7
CisgICAgICBpNjAgPSBpNDQgKyA0IHwgMDsKKyAgICAgIGk2MSA9IEhFQVAzMltpNjAgPj4gMl0g
fCAwOworICAgICAgaWYgKChpNTUgfCAwKSA9PSAoaTU5ICsgaTYxIHwgMCkpIHsKKyAgICAgICBp
NDUgPSAyMzA7CisgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBpNTYgPSBIRUFQMzJbaTQ0
ICsgOCA+PiAyXSB8IDA7CisgICAgICBpZiAoKGk1NiB8IDApID09IDApIHsKKyAgICAgICBicmVh
azsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgaTQ0ID0gaTU2OworICAgICAgfQorICAgICB9Cisg
ICAgIGRvIHsKKyAgICAgIGlmICgoaTQ1IHwgMCkgPT0gMjMwKSB7CisgICAgICAgaWYgKChIRUFQ
MzJbaTQ0ICsgMTIgPj4gMl0gJiA4IHwgMCkgIT0gMCkgeworICAgICAgICBicmVhazsKKyAgICAg
ICB9CisgICAgICAgaTU2ID0gaTU3OworICAgICAgIGlmICghKGk1NiA+Pj4gMCA+PSBpNTkgPj4+
IDAgJiBpNTYgPj4+IDAgPCBpNTUgPj4+IDApKSB7CisgICAgICAgIGJyZWFrOworICAgICAgIH0K
KyAgICAgICBIRUFQMzJbaTYwID4+IDJdID0gaTYxICsgaTU0OworICAgICAgIGk1NiA9IEhFQVAz
MlsyMl0gfCAwOworICAgICAgIGk1MCA9IChIRUFQMzJbMTldIHwgMCkgKyBpNTQgfCAwOworICAg
ICAgIGk1MSA9IGk1NjsKKyAgICAgICBpNDggPSBpNTYgKyA4IHwgMDsKKyAgICAgICBpZiAoKGk0
OCAmIDcgfCAwKSA9PSAwKSB7CisgICAgICAgIGk2MiA9IDA7CisgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgaTYyID0gLWk0OCAmIDc7CisgICAgICAgfQorICAgICAgIGk0OCA9IGk1MCAtIGk2MiB8
IDA7CisgICAgICAgSEVBUDMyWzIyXSA9IGk1MSArIGk2MjsKKyAgICAgICBIRUFQMzJbMTldID0g
aTQ4OworICAgICAgIEhFQVAzMltpNTEgKyAoaTYyICsgNCkgPj4gMl0gPSBpNDggfCAxOworICAg
ICAgIEhFQVAzMltpNTEgKyAoaTUwICsgNCkgPj4gMl0gPSA0MDsKKyAgICAgICBIRUFQMzJbMjNd
ID0gSEVBUDMyWzE0XTsKKyAgICAgICBicmVhayBMMzMyOworICAgICAgfQorICAgICB9IHdoaWxl
ICgwKTsKKyAgICAgaWYgKGk1NSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAg
ICAgIEhFQVAzMlsyMF0gPSBpNTU7CisgICAgIH0KKyAgICAgaTQ0ID0gaTU1ICsgaTU0IHwgMDsK
KyAgICAgaTUwID0gNTEyOworICAgICB3aGlsZSAoMSkgeworICAgICAgaTYzID0gaTUwIHwgMDsK
KyAgICAgIGlmICgoSEVBUDMyW2k2MyA+PiAyXSB8IDApID09IChpNDQgfCAwKSkgeworICAgICAg
IGk0NSA9IDI0MDsKKyAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIGk1MSA9IEhFQVAzMltp
NTAgKyA4ID4+IDJdIHwgMDsKKyAgICAgIGlmICgoaTUxIHwgMCkgPT0gMCkgeworICAgICAgIGJy
ZWFrOworICAgICAgfSBlbHNlIHsKKyAgICAgICBpNTAgPSBpNTE7CisgICAgICB9CisgICAgIH0K
KyAgICAgZG8geworICAgICAgaWYgKChpNDUgfCAwKSA9PSAyNDApIHsKKyAgICAgICBpZiAoKEhF
QVAzMltpNTAgKyAxMiA+PiAyXSAmIDggfCAwKSAhPSAwKSB7CisgICAgICAgIGJyZWFrOworICAg
ICAgIH0KKyAgICAgICBIRUFQMzJbaTYzID4+IDJdID0gaTU1OworICAgICAgIGk0NCA9IGk1MCAr
IDQgfCAwOworICAgICAgIEhFQVAzMltpNDQgPj4gMl0gPSAoSEVBUDMyW2k0NCA+PiAyXSB8IDAp
ICsgaTU0OworICAgICAgIGk0NCA9IGk1NSArIDggfCAwOworICAgICAgIGlmICgoaTQ0ICYgNyB8
IDApID09IDApIHsKKyAgICAgICAgaTY0ID0gMDsKKyAgICAgICB9IGVsc2UgeworICAgICAgICBp
NjQgPSAtaTQ0ICYgNzsKKyAgICAgICB9CisgICAgICAgaTQ0ID0gaTU1ICsgKGk1NCArIDgpIHwg
MDsKKyAgICAgICBpZiAoKGk0NCAmIDcgfCAwKSA9PSAwKSB7CisgICAgICAgIGk2NSA9IDA7Cisg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgaTY1ID0gLWk0NCAmIDc7CisgICAgICAgfQorICAgICAg
IGk0NCA9IGk1NSArIChpNjUgKyBpNTQpIHwgMDsKKyAgICAgICBpNTEgPSBpNDQ7CisgICAgICAg
aTQ4ID0gaTY0ICsgaTE0IHwgMDsKKyAgICAgICBpNTYgPSBpNTUgKyBpNDggfCAwOworICAgICAg
IGk1MiA9IGk1NjsKKyAgICAgICBpMzYgPSBpNDQgLSAoaTU1ICsgaTY0KSAtIGkxNCB8IDA7Cisg
ICAgICAgSEVBUDMyW2k1NSArIChpNjQgKyA0KSA+PiAyXSA9IGkxNCB8IDM7CisgICAgICAgZG8g
eworICAgICAgICBpZiAoKGk1MSB8IDApID09IChIRUFQMzJbMjJdIHwgMCkpIHsKKyAgICAgICAg
IGkzNSA9IChIRUFQMzJbMTldIHwgMCkgKyBpMzYgfCAwOworICAgICAgICAgSEVBUDMyWzE5XSA9
IGkzNTsKKyAgICAgICAgIEhFQVAzMlsyMl0gPSBpNTI7CisgICAgICAgICBIRUFQMzJbaTU1ICsg
KGk0OCArIDQpID4+IDJdID0gaTM1IHwgMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgIGlm
ICgoaTUxIHwgMCkgPT0gKEhFQVAzMlsyMV0gfCAwKSkgeworICAgICAgICAgIGkzNSA9IChIRUFQ
MzJbMThdIHwgMCkgKyBpMzYgfCAwOworICAgICAgICAgIEhFQVAzMlsxOF0gPSBpMzU7CisgICAg
ICAgICAgSEVBUDMyWzIxXSA9IGk1MjsKKyAgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDQp
ID4+IDJdID0gaTM1IHwgMTsKKyAgICAgICAgICBIRUFQMzJbaTU1ICsgKGkzNSArIGk0OCkgPj4g
Ml0gPSBpMzU7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAgICAgICBpMzUgPSBp
NTQgKyA0IHwgMDsKKyAgICAgICAgIGk0OSA9IEhFQVAzMltpNTUgKyAoaTY1ICsgaTM1KSA+PiAy
XSB8IDA7CisgICAgICAgICBpZiAoKGk0OSAmIDMgfCAwKSA9PSAxKSB7CisgICAgICAgICAgaTUz
ID0gaTQ5ICYgLTg7CisgICAgICAgICAgaTQ3ID0gaTQ5ID4+PiAzOworICAgICAgICAgIEwzNzcg
OiBkbyB7CisgICAgICAgICAgIGlmIChpNDkgPj4+IDAgPCAyNTYpIHsKKyAgICAgICAgICAgIGk0
NiA9IEhFQVAzMltpNTUgKyAoKGk2NSB8IDgpICsgaTU0KSA+PiAyXSB8IDA7CisgICAgICAgICAg
ICBpNDIgPSBIRUFQMzJbaTU1ICsgKGk1NCArIDEyICsgaTY1KSA+PiAyXSB8IDA7CisgICAgICAg
ICAgICBpNDMgPSAxMDQgKyAoaTQ3IDw8IDEgPDwgMikgfCAwOworICAgICAgICAgICAgZG8gewor
ICAgICAgICAgICAgIGlmICgoaTQ2IHwgMCkgIT0gKGk0MyB8IDApKSB7CisgICAgICAgICAgICAg
IGlmIChpNDYgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7CisgICAgICAgICAgICAg
ICBfYWJvcnQoKTsKKyAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgIGlmICgoSEVBUDMyW2k0NiArIDEyID4+IDJdIHwgMCkgPT0gKGk1MSB8IDAp
KSB7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICBfYWJvcnQoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSB3aGlsZSAoMCk7CisgICAgICAgICAgICBpZiAoKGk0MiB8IDApID09IChpNDYg
fCAwKSkgeworICAgICAgICAgICAgIEhFQVAzMlsxNl0gPSBIRUFQMzJbMTZdICYgfigxIDw8IGk0
Nyk7CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkbyB7
CisgICAgICAgICAgICAgaWYgKChpNDIgfCAwKSA9PSAoaTQzIHwgMCkpIHsKKyAgICAgICAgICAg
ICAgaTY2ID0gaTQyICsgOCB8IDA7CisgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgaWYgKGk0MiA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICAgICAg
ICAgIF9hYm9ydCgpOworICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgaTEyID0gaTQyICsgOCB8IDA7CisgICAgICAgICAgICAgIGlmICgoSEVB
UDMyW2kxMiA+PiAyXSB8IDApID09IChpNTEgfCAwKSkgeworICAgICAgICAgICAgICAgaTY2ID0g
aTEyOworICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgX2Fib3J0KCk7CisgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gd2hpbGUgKDApOworICAgICAgICAgICAgSEVBUDMyW2k0NiArIDEyID4+IDJd
ID0gaTQyOworICAgICAgICAgICAgSEVBUDMyW2k2NiA+PiAyXSA9IGk0NjsKKyAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGk0MyA9IGk0NDsKKyAgICAgICAgICAgIGkxMiA9IEhFQVAz
MltpNTUgKyAoKGk2NSB8IDI0KSArIGk1NCkgPj4gMl0gfCAwOworICAgICAgICAgICAgaTQxID0g
SEVBUDMyW2k1NSArIChpNTQgKyAxMiArIGk2NSkgPj4gMl0gfCAwOworICAgICAgICAgICAgZG8g
eworICAgICAgICAgICAgIGlmICgoaTQxIHwgMCkgPT0gKGk0MyB8IDApKSB7CisgICAgICAgICAg
ICAgIGk0MCA9IGk2NSB8IDE2OworICAgICAgICAgICAgICBpNiA9IGk1NSArIChpNDAgKyBpMzUp
IHwgMDsKKyAgICAgICAgICAgICAgaTM3ID0gSEVBUDMyW2k2ID4+IDJdIHwgMDsKKyAgICAgICAg
ICAgICAgaWYgKChpMzcgfCAwKSA9PSAwKSB7CisgICAgICAgICAgICAgICBpNCA9IGk1NSArIChp
NDAgKyBpNTQpIHwgMDsKKyAgICAgICAgICAgICAgIGk0MCA9IEhFQVAzMltpNCA+PiAyXSB8IDA7
CisgICAgICAgICAgICAgICBpZiAoKGk0MCB8IDApID09IDApIHsKKyAgICAgICAgICAgICAgICBp
NjcgPSAwOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBpNjggPSBpNDA7CisgICAgICAgICAgICAgICAgaTY5ID0gaTQ7Cisg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICBp
NjggPSBpMzc7CisgICAgICAgICAgICAgICBpNjkgPSBpNjsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgICAgICAgaTYgPSBpNjggKyAyMCB8IDA7
CisgICAgICAgICAgICAgICBpMzcgPSBIRUFQMzJbaTYgPj4gMl0gfCAwOworICAgICAgICAgICAg
ICAgaWYgKChpMzcgfCAwKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaTY4ID0gaTM3OworICAg
ICAgICAgICAgICAgIGk2OSA9IGk2OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgaTYgPSBpNjggKyAxNiB8IDA7CisgICAgICAgICAg
ICAgICBpMzcgPSBIRUFQMzJbaTYgPj4gMl0gfCAwOworICAgICAgICAgICAgICAgaWYgKChpMzcg
fCAwKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIGk2OCA9IGkzNzsKKyAgICAgICAgICAgICAgICBpNjkgPSBp
NjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAo
aTY5ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgeworICAgICAgICAgICAgICAgX2Fi
b3J0KCk7CisgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgIEhFQVAzMltpNjkgPj4gMl0gPSAwOworICAgICAgICAgICAgICAgaTY3
ID0gaTY4OworICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBpNiA9IEhFQVAzMltpNTUgKyAoKGk2NSB8IDgp
ICsgaTU0KSA+PiAyXSB8IDA7CisgICAgICAgICAgICAgIGlmIChpNiA+Pj4gMCA8IChIRUFQMzJb
MjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICAgICAgICAgIF9hYm9ydCgpOworICAgICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaTM3ID0gaTYgKyAx
MiB8IDA7CisgICAgICAgICAgICAgIGlmICgoSEVBUDMyW2kzNyA+PiAyXSB8IDApICE9IChpNDMg
fCAwKSkgeworICAgICAgICAgICAgICAgX2Fib3J0KCk7CisgICAgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpNCA9IGk0MSArIDggfCAwOworICAg
ICAgICAgICAgICBpZiAoKEhFQVAzMltpNCA+PiAyXSB8IDApID09IChpNDMgfCAwKSkgeworICAg
ICAgICAgICAgICAgSEVBUDMyW2kzNyA+PiAyXSA9IGk0MTsKKyAgICAgICAgICAgICAgIEhFQVAz
MltpNCA+PiAyXSA9IGk2OworICAgICAgICAgICAgICAgaTY3ID0gaTQxOworICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICBfYWJvcnQo
KTsKKyAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfSB3aGlsZSAoMCk7CisgICAgICAgICAgICBpZiAoKGkxMiB8IDAp
ID09IDApIHsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGk0MSA9IGk1NSArIChpNTQgKyAyOCArIGk2NSkgfCAwOworICAgICAgICAgICAgaTQ2ID0gMzY4
ICsgKEhFQVAzMltpNDEgPj4gMl0gPDwgMikgfCAwOworICAgICAgICAgICAgZG8geworICAgICAg
ICAgICAgIGlmICgoaTQzIHwgMCkgPT0gKEhFQVAzMltpNDYgPj4gMl0gfCAwKSkgeworICAgICAg
ICAgICAgICBIRUFQMzJbaTQ2ID4+IDJdID0gaTY3OworICAgICAgICAgICAgICBpZiAoKGk2NyB8
IDApICE9IDApIHsKKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIEhFQVAzMlsxN10gPSBIRUFQMzJbMTddICYgfigxIDw8IEhFQVAzMltpNDEgPj4g
Ml0pOworICAgICAgICAgICAgICBicmVhayBMMzc3OworICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgIGlmIChpMTIgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7Cisg
ICAgICAgICAgICAgICBfYWJvcnQoKTsKKyAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgIGk0MiA9IGkxMiArIDE2IHwgMDsKKyAgICAgICAgICAg
ICAgaWYgKChIRUFQMzJbaTQyID4+IDJdIHwgMCkgPT0gKGk0MyB8IDApKSB7CisgICAgICAgICAg
ICAgICBIRUFQMzJbaTQyID4+IDJdID0gaTY3OworICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgSEVBUDMyW2kxMiArIDIwID4+IDJdID0gaTY3OworICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIGlmICgoaTY3IHwgMCkgPT0gMCkgeworICAgICAgICAgICAgICAgYnJl
YWsgTDM3NzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0g
d2hpbGUgKDApOworICAgICAgICAgICAgaWYgKGk2NyA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkg
Pj4+IDApIHsKKyAgICAgICAgICAgICBfYWJvcnQoKTsKKyAgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEhFQVAzMltpNjcgKyAyNCA+PiAyXSA9IGkxMjsK
KyAgICAgICAgICAgIGk0MyA9IGk2NSB8IDE2OworICAgICAgICAgICAgaTQxID0gSEVBUDMyW2k1
NSArIChpNDMgKyBpNTQpID4+IDJdIHwgMDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAg
ICBpZiAoKGk0MSB8IDApICE9IDApIHsKKyAgICAgICAgICAgICAgaWYgKGk0MSA+Pj4gMCA8IChI
RUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICAgICAgICAgIF9hYm9ydCgpOworICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICBIRUFQMzJbaTY3ICsgMTYgPj4gMl0gPSBpNDE7CisgICAgICAgICAgICAgICBIRUFQMzJbaTQx
ICsgMjQgPj4gMl0gPSBpNjc7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gd2hpbGUgKDApOworICAgICAgICAgICAg
aTQxID0gSEVBUDMyW2k1NSArIChpNDMgKyBpMzUpID4+IDJdIHwgMDsKKyAgICAgICAgICAgIGlm
ICgoaTQxIHwgMCkgPT0gMCkgeworICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGk0MSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAg
ICAgICAgICAgICBfYWJvcnQoKTsKKyAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgSEVBUDMyW2k2NyArIDIwID4+IDJdID0gaTQxOworICAg
ICAgICAgICAgIEhFQVAzMltpNDEgKyAyNCA+PiAyXSA9IGk2NzsKKyAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgICAgIH0gd2hpbGUgKDApOwor
ICAgICAgICAgIGk3MCA9IGk1NSArICgoaTUzIHwgaTY1KSArIGk1NCkgfCAwOworICAgICAgICAg
IGk3MSA9IGk1MyArIGkzNiB8IDA7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGk3MCA9
IGk1MTsKKyAgICAgICAgICBpNzEgPSBpMzY7CisgICAgICAgICB9CisgICAgICAgICBpMzUgPSBp
NzAgKyA0IHwgMDsKKyAgICAgICAgIEhFQVAzMltpMzUgPj4gMl0gPSBIRUFQMzJbaTM1ID4+IDJd
ICYgLTI7CisgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDQpID4+IDJdID0gaTcxIHwgMTsK
KyAgICAgICAgIEhFQVAzMltpNTUgKyAoaTcxICsgaTQ4KSA+PiAyXSA9IGk3MTsKKyAgICAgICAg
IGkzNSA9IGk3MSA+Pj4gMzsKKyAgICAgICAgIGlmIChpNzEgPj4+IDAgPCAyNTYpIHsKKyAgICAg
ICAgICBpNDcgPSBpMzUgPDwgMTsKKyAgICAgICAgICBpNDkgPSAxMDQgKyAoaTQ3IDw8IDIpIHwg
MDsKKyAgICAgICAgICBpNDEgPSBIRUFQMzJbMTZdIHwgMDsKKyAgICAgICAgICBpMTIgPSAxIDw8
IGkzNTsKKyAgICAgICAgICBkbyB7CisgICAgICAgICAgIGlmICgoaTQxICYgaTEyIHwgMCkgPT0g
MCkgeworICAgICAgICAgICAgSEVBUDMyWzE2XSA9IGk0MSB8IGkxMjsKKyAgICAgICAgICAgIGk3
MiA9IGk0OTsKKyAgICAgICAgICAgIGk3MyA9IDEwNCArIChpNDcgKyAyIDw8IDIpIHwgMDsKKyAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGkzNSA9IDEwNCArIChpNDcgKyAyIDw8IDIp
IHwgMDsKKyAgICAgICAgICAgIGk0NiA9IEhFQVAzMltpMzUgPj4gMl0gfCAwOworICAgICAgICAg
ICAgaWYgKGk0NiA+Pj4gMCA+PSAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7CisgICAgICAgICAg
ICAgaTcyID0gaTQ2OworICAgICAgICAgICAgIGk3MyA9IGkzNTsKKyAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF9hYm9ydCgpOworICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgICAgIH0KKyAgICAgICAgICB9IHdoaWxlICgwKTsKKyAgICAgICAgICBI
RUFQMzJbaTczID4+IDJdID0gaTUyOworICAgICAgICAgIEhFQVAzMltpNzIgKyAxMiA+PiAyXSA9
IGk1MjsKKyAgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDgpID4+IDJdID0gaTcyOworICAg
ICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgMTIpID4+IDJdID0gaTQ5OworICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgfQorICAgICAgICAgaTQ3ID0gaTU2OworICAgICAgICAgaTEyID0gaTcx
ID4+PiA4OworICAgICAgICAgZG8geworICAgICAgICAgIGlmICgoaTEyIHwgMCkgPT0gMCkgewor
ICAgICAgICAgICBpNzQgPSAwOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgIGlmIChp
NzEgPj4+IDAgPiAxNjc3NzIxNSkgeworICAgICAgICAgICAgaTc0ID0gMzE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgfQorICAgICAgICAgICBpNDEgPSAoaTEyICsgMTA0ODMyMCB8
IDApID4+PiAxNiAmIDg7CisgICAgICAgICAgIGk1MyA9IGkxMiA8PCBpNDE7CisgICAgICAgICAg
IGkzNSA9IChpNTMgKyA1MjAxOTIgfCAwKSA+Pj4gMTYgJiA0OworICAgICAgICAgICBpNDYgPSBp
NTMgPDwgaTM1OworICAgICAgICAgICBpNTMgPSAoaTQ2ICsgMjQ1NzYwIHwgMCkgPj4+IDE2ICYg
MjsKKyAgICAgICAgICAgaTQyID0gMTQgLSAoaTM1IHwgaTQxIHwgaTUzKSArIChpNDYgPDwgaTUz
ID4+PiAxNSkgfCAwOworICAgICAgICAgICBpNzQgPSBpNzEgPj4+ICgoaTQyICsgNyB8IDApID4+
PiAwKSAmIDEgfCBpNDIgPDwgMTsKKyAgICAgICAgICB9CisgICAgICAgICB9IHdoaWxlICgwKTsK
KyAgICAgICAgIGkxMiA9IDM2OCArIChpNzQgPDwgMikgfCAwOworICAgICAgICAgSEVBUDMyW2k1
NSArIChpNDggKyAyOCkgPj4gMl0gPSBpNzQ7CisgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCAr
IDIwKSA+PiAyXSA9IDA7CisgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDE2KSA+PiAyXSA9
IDA7CisgICAgICAgICBpNDkgPSBIRUFQMzJbMTddIHwgMDsKKyAgICAgICAgIGk0MiA9IDEgPDwg
aTc0OworICAgICAgICAgaWYgKChpNDkgJiBpNDIgfCAwKSA9PSAwKSB7CisgICAgICAgICAgSEVB
UDMyWzE3XSA9IGk0OSB8IGk0MjsKKyAgICAgICAgICBIRUFQMzJbaTEyID4+IDJdID0gaTQ3Owor
ICAgICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgMjQpID4+IDJdID0gaTEyOworICAgICAgICAg
IEhFQVAzMltpNTUgKyAoaTQ4ICsgMTIpID4+IDJdID0gaTQ3OworICAgICAgICAgIEhFQVAzMltp
NTUgKyAoaTQ4ICsgOCkgPj4gMl0gPSBpNDc7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9
CisgICAgICAgICBpZiAoKGk3NCB8IDApID09IDMxKSB7CisgICAgICAgICAgaTc1ID0gMDsKKyAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgaTc1ID0gMjUgLSAoaTc0ID4+PiAxKSB8IDA7Cisg
ICAgICAgICB9CisgICAgICAgICBpNDIgPSBpNzEgPDwgaTc1OworICAgICAgICAgaTQ5ID0gSEVB
UDMyW2kxMiA+PiAyXSB8IDA7CisgICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgIGlmICgo
SEVBUDMyW2k0OSArIDQgPj4gMl0gJiAtOCB8IDApID09IChpNzEgfCAwKSkgeworICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgICAgaTc2ID0gaTQ5ICsgMTYgKyAoaTQyID4+
PiAzMSA8PCAyKSB8IDA7CisgICAgICAgICAgaTEyID0gSEVBUDMyW2k3NiA+PiAyXSB8IDA7Cisg
ICAgICAgICAgaWYgKChpMTIgfCAwKSA9PSAwKSB7CisgICAgICAgICAgIGk0NSA9IDMxMzsKKyAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgaTQyID0gaTQy
IDw8IDE7CisgICAgICAgICAgIGk0OSA9IGkxMjsKKyAgICAgICAgICB9CisgICAgICAgICB9Cisg
ICAgICAgICBpZiAoKGk0NSB8IDApID09IDMxMykgeworICAgICAgICAgIGlmIChpNzYgPj4+IDAg
PCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7CisgICAgICAgICAgIF9hYm9ydCgpOworICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICBIRUFQMzJbaTc2
ID4+IDJdID0gaTQ3OworICAgICAgICAgICBIRUFQMzJbaTU1ICsgKGk0OCArIDI0KSA+PiAyXSA9
IGk0OTsKKyAgICAgICAgICAgSEVBUDMyW2k1NSArIChpNDggKyAxMikgPj4gMl0gPSBpNDc7Cisg
ICAgICAgICAgIEhFQVAzMltpNTUgKyAoaTQ4ICsgOCkgPj4gMl0gPSBpNDc7CisgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIGk0MiA9IGk0OSArIDgg
fCAwOworICAgICAgICAgaTEyID0gSEVBUDMyW2k0MiA+PiAyXSB8IDA7CisgICAgICAgICBpNTMg
PSBIRUFQMzJbMjBdIHwgMDsKKyAgICAgICAgIGlmIChpNDkgPj4+IDAgPCBpNTMgPj4+IDApIHsK
KyAgICAgICAgICBfYWJvcnQoKTsKKyAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgIH0KKyAg
ICAgICAgIGlmIChpMTIgPj4+IDAgPCBpNTMgPj4+IDApIHsKKyAgICAgICAgICBfYWJvcnQoKTsK
KyAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgSEVBUDMy
W2kxMiArIDEyID4+IDJdID0gaTQ3OworICAgICAgICAgIEhFQVAzMltpNDIgPj4gMl0gPSBpNDc7
CisgICAgICAgICAgSEVBUDMyW2k1NSArIChpNDggKyA4KSA+PiAyXSA9IGkxMjsKKyAgICAgICAg
ICBIRUFQMzJbaTU1ICsgKGk0OCArIDEyKSA+PiAyXSA9IGk0OTsKKyAgICAgICAgICBIRUFQMzJb
aTU1ICsgKGk0OCArIDI0KSA+PiAyXSA9IDA7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICB9IHdoaWxlICgwKTsKKyAgICAgICBpMTMgPSBpNTUgKyAoaTY0
IHwgOCkgfCAwOworICAgICAgIHJldHVybiBpMTMgfCAwOworICAgICAgfQorICAgICB9IHdoaWxl
ICgwKTsKKyAgICAgaTUwID0gaTU3OworICAgICBpNDggPSA1MTI7CisgICAgIHdoaWxlICgxKSB7
CisgICAgICBpNzcgPSBIRUFQMzJbaTQ4ID4+IDJdIHwgMDsKKyAgICAgIGlmIChpNzcgPj4+IDAg
PD0gaTUwID4+PiAwKSB7CisgICAgICAgaTc4ID0gSEVBUDMyW2k0OCArIDQgPj4gMl0gfCAwOwor
ICAgICAgIGk3OSA9IGk3NyArIGk3OCB8IDA7CisgICAgICAgaWYgKGk3OSA+Pj4gMCA+IGk1MCA+
Pj4gMCkgeworICAgICAgICBicmVhazsKKyAgICAgICB9CisgICAgICB9CisgICAgICBpNDggPSBI
RUFQMzJbaTQ4ICsgOCA+PiAyXSB8IDA7CisgICAgIH0KKyAgICAgaTQ4ID0gaTc3ICsgKGk3OCAt
IDM5KSB8IDA7CisgICAgIGlmICgoaTQ4ICYgNyB8IDApID09IDApIHsKKyAgICAgIGk4MCA9IDA7
CisgICAgIH0gZWxzZSB7CisgICAgICBpODAgPSAtaTQ4ICYgNzsKKyAgICAgfQorICAgICBpNDgg
PSBpNzcgKyAoaTc4IC0gNDcgKyBpODApIHwgMDsKKyAgICAgaTU2ID0gaTQ4ID4+PiAwIDwgKGk1
NyArIDE2IHwgMCkgPj4+IDAgPyBpNTAgOiBpNDg7CisgICAgIGk0OCA9IGk1NiArIDggfCAwOwor
ICAgICBpNTIgPSBpNTUgKyA4IHwgMDsKKyAgICAgaWYgKChpNTIgJiA3IHwgMCkgPT0gMCkgewor
ICAgICAgaTgxID0gMDsKKyAgICAgfSBlbHNlIHsKKyAgICAgIGk4MSA9IC1pNTIgJiA3OworICAg
ICB9CisgICAgIGk1MiA9IGk1NCAtIDQwIC0gaTgxIHwgMDsKKyAgICAgSEVBUDMyWzIyXSA9IGk1
NSArIGk4MTsKKyAgICAgSEVBUDMyWzE5XSA9IGk1MjsKKyAgICAgSEVBUDMyW2k1NSArIChpODEg
KyA0KSA+PiAyXSA9IGk1MiB8IDE7CisgICAgIEhFQVAzMltpNTUgKyAoaTU0IC0gMzYpID4+IDJd
ID0gNDA7CisgICAgIEhFQVAzMlsyM10gPSBIRUFQMzJbMTRdOworICAgICBIRUFQMzJbaTU2ICsg
NCA+PiAyXSA9IDI3OworICAgICBIRUFQMzJbaTQ4ID4+IDJdID0gSEVBUDMyWzEyOF07CisgICAg
IEhFQVAzMltpNDggKyA0ID4+IDJdID0gSEVBUDMyWzUxNiA+PiAyXTsKKyAgICAgSEVBUDMyW2k0
OCArIDggPj4gMl0gPSBIRUFQMzJbNTIwID4+IDJdOworICAgICBIRUFQMzJbaTQ4ICsgMTIgPj4g
Ml0gPSBIRUFQMzJbNTI0ID4+IDJdOworICAgICBIRUFQMzJbMTI4XSA9IGk1NTsKKyAgICAgSEVB
UDMyWzEyOV0gPSBpNTQ7CisgICAgIEhFQVAzMlsxMzFdID0gMDsKKyAgICAgSEVBUDMyWzEzMF0g
PSBpNDg7CisgICAgIGk0OCA9IGk1NiArIDI4IHwgMDsKKyAgICAgSEVBUDMyW2k0OCA+PiAyXSA9
IDc7CisgICAgIGlmICgoaTU2ICsgMzIgfCAwKSA+Pj4gMCA8IGk3OSA+Pj4gMCkgeworICAgICAg
aTUyID0gaTQ4OworICAgICAgd2hpbGUgKDEpIHsKKyAgICAgICBpNDggPSBpNTIgKyA0IHwgMDsK
KyAgICAgICBIRUFQMzJbaTQ4ID4+IDJdID0gNzsKKyAgICAgICBpZiAoKGk1MiArIDggfCAwKSA+
Pj4gMCA8IGk3OSA+Pj4gMCkgeworICAgICAgICBpNTIgPSBpNDg7CisgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgYnJlYWs7CisgICAgICAgfQorICAgICAgfQorICAgICB9CisgICAgIGlmICgoaTU2
IHwgMCkgPT0gKGk1MCB8IDApKSB7CisgICAgICBicmVhazsKKyAgICAgfQorICAgICBpNTIgPSBp
NTYgLSBpNTcgfCAwOworICAgICBpNDggPSBpNTAgKyAoaTUyICsgNCkgfCAwOworICAgICBIRUFQ
MzJbaTQ4ID4+IDJdID0gSEVBUDMyW2k0OCA+PiAyXSAmIC0yOworICAgICBIRUFQMzJbaTU3ICsg
NCA+PiAyXSA9IGk1MiB8IDE7CisgICAgIEhFQVAzMltpNTAgKyBpNTIgPj4gMl0gPSBpNTI7Cisg
ICAgIGk0OCA9IGk1MiA+Pj4gMzsKKyAgICAgaWYgKGk1MiA+Pj4gMCA8IDI1NikgeworICAgICAg
aTM2ID0gaTQ4IDw8IDE7CisgICAgICBpNTEgPSAxMDQgKyAoaTM2IDw8IDIpIHwgMDsKKyAgICAg
IGk0NCA9IEhFQVAzMlsxNl0gfCAwOworICAgICAgaTEyID0gMSA8PCBpNDg7CisgICAgICBkbyB7
CisgICAgICAgaWYgKChpNDQgJiBpMTIgfCAwKSA9PSAwKSB7CisgICAgICAgIEhFQVAzMlsxNl0g
PSBpNDQgfCBpMTI7CisgICAgICAgIGk4MiA9IGk1MTsKKyAgICAgICAgaTgzID0gMTA0ICsgKGkz
NiArIDIgPDwgMikgfCAwOworICAgICAgIH0gZWxzZSB7CisgICAgICAgIGk0OCA9IDEwNCArIChp
MzYgKyAyIDw8IDIpIHwgMDsKKyAgICAgICAgaTQyID0gSEVBUDMyW2k0OCA+PiAyXSB8IDA7Cisg
ICAgICAgIGlmIChpNDIgPj4+IDAgPj0gKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgeworICAgICAg
ICAgaTgyID0gaTQyOworICAgICAgICAgaTgzID0gaTQ4OworICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgX2Fib3J0KCk7CisgICAgICAgIHJldHVybiAwOworICAgICAgIH0KKyAg
ICAgIH0gd2hpbGUgKDApOworICAgICAgSEVBUDMyW2k4MyA+PiAyXSA9IGk1NzsKKyAgICAgIEhF
QVAzMltpODIgKyAxMiA+PiAyXSA9IGk1NzsKKyAgICAgIEhFQVAzMltpNTcgKyA4ID4+IDJdID0g
aTgyOworICAgICAgSEVBUDMyW2k1NyArIDEyID4+IDJdID0gaTUxOworICAgICAgYnJlYWs7Cisg
ICAgIH0KKyAgICAgaTM2ID0gaTU3OworICAgICBpMTIgPSBpNTIgPj4+IDg7CisgICAgIGRvIHsK
KyAgICAgIGlmICgoaTEyIHwgMCkgPT0gMCkgeworICAgICAgIGk4NCA9IDA7CisgICAgICB9IGVs
c2UgeworICAgICAgIGlmIChpNTIgPj4+IDAgPiAxNjc3NzIxNSkgeworICAgICAgICBpODQgPSAz
MTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgfQorICAgICAgIGk0NCA9IChpMTIgKyAxMDQ4MzIw
IHwgMCkgPj4+IDE2ICYgODsKKyAgICAgICBpNTAgPSBpMTIgPDwgaTQ0OworICAgICAgIGk1NiA9
IChpNTAgKyA1MjAxOTIgfCAwKSA+Pj4gMTYgJiA0OworICAgICAgIGk0OCA9IGk1MCA8PCBpNTY7
CisgICAgICAgaTUwID0gKGk0OCArIDI0NTc2MCB8IDApID4+PiAxNiAmIDI7CisgICAgICAgaTQy
ID0gMTQgLSAoaTU2IHwgaTQ0IHwgaTUwKSArIChpNDggPDwgaTUwID4+PiAxNSkgfCAwOworICAg
ICAgIGk4NCA9IGk1MiA+Pj4gKChpNDIgKyA3IHwgMCkgPj4+IDApICYgMSB8IGk0MiA8PCAxOwor
ICAgICAgfQorICAgICB9IHdoaWxlICgwKTsKKyAgICAgaTEyID0gMzY4ICsgKGk4NCA8PCAyKSB8
IDA7CisgICAgIEhFQVAzMltpNTcgKyAyOCA+PiAyXSA9IGk4NDsKKyAgICAgSEVBUDMyW2k1NyAr
IDIwID4+IDJdID0gMDsKKyAgICAgSEVBUDMyW2k1NyArIDE2ID4+IDJdID0gMDsKKyAgICAgaTUx
ID0gSEVBUDMyWzE3XSB8IDA7CisgICAgIGk0MiA9IDEgPDwgaTg0OworICAgICBpZiAoKGk1MSAm
IGk0MiB8IDApID09IDApIHsKKyAgICAgIEhFQVAzMlsxN10gPSBpNTEgfCBpNDI7CisgICAgICBI
RUFQMzJbaTEyID4+IDJdID0gaTM2OworICAgICAgSEVBUDMyW2k1NyArIDI0ID4+IDJdID0gaTEy
OworICAgICAgSEVBUDMyW2k1NyArIDEyID4+IDJdID0gaTU3OworICAgICAgSEVBUDMyW2k1NyAr
IDggPj4gMl0gPSBpNTc7CisgICAgICBicmVhazsKKyAgICAgfQorICAgICBpZiAoKGk4NCB8IDAp
ID09IDMxKSB7CisgICAgICBpODUgPSAwOworICAgICB9IGVsc2UgeworICAgICAgaTg1ID0gMjUg
LSAoaTg0ID4+PiAxKSB8IDA7CisgICAgIH0KKyAgICAgaTQyID0gaTUyIDw8IGk4NTsKKyAgICAg
aTUxID0gSEVBUDMyW2kxMiA+PiAyXSB8IDA7CisgICAgIHdoaWxlICgxKSB7CisgICAgICBpZiAo
KEhFQVAzMltpNTEgKyA0ID4+IDJdICYgLTggfCAwKSA9PSAoaTUyIHwgMCkpIHsKKyAgICAgICBi
cmVhazsKKyAgICAgIH0KKyAgICAgIGk4NiA9IGk1MSArIDE2ICsgKGk0MiA+Pj4gMzEgPDwgMikg
fCAwOworICAgICAgaTEyID0gSEVBUDMyW2k4NiA+PiAyXSB8IDA7CisgICAgICBpZiAoKGkxMiB8
IDApID09IDApIHsKKyAgICAgICBpNDUgPSAzNDg7CisgICAgICAgYnJlYWs7CisgICAgICB9IGVs
c2UgeworICAgICAgIGk0MiA9IGk0MiA8PCAxOworICAgICAgIGk1MSA9IGkxMjsKKyAgICAgIH0K
KyAgICAgfQorICAgICBpZiAoKGk0NSB8IDApID09IDM0OCkgeworICAgICAgaWYgKGk4NiA+Pj4g
MCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICBfYWJvcnQoKTsKKyAgICAgICBy
ZXR1cm4gMDsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgSEVBUDMyW2k4NiA+PiAyXSA9IGkzNjsK
KyAgICAgICBIRUFQMzJbaTU3ICsgMjQgPj4gMl0gPSBpNTE7CisgICAgICAgSEVBUDMyW2k1NyAr
IDEyID4+IDJdID0gaTU3OworICAgICAgIEhFQVAzMltpNTcgKyA4ID4+IDJdID0gaTU3OworICAg
ICAgIGJyZWFrOworICAgICAgfQorICAgICB9CisgICAgIGk0MiA9IGk1MSArIDggfCAwOworICAg
ICBpNTIgPSBIRUFQMzJbaTQyID4+IDJdIHwgMDsKKyAgICAgaTEyID0gSEVBUDMyWzIwXSB8IDA7
CisgICAgIGlmIChpNTEgPj4+IDAgPCBpMTIgPj4+IDApIHsKKyAgICAgIF9hYm9ydCgpOworICAg
ICAgcmV0dXJuIDA7CisgICAgIH0KKyAgICAgaWYgKGk1MiA+Pj4gMCA8IGkxMiA+Pj4gMCkgewor
ICAgICAgX2Fib3J0KCk7CisgICAgICByZXR1cm4gMDsKKyAgICAgfSBlbHNlIHsKKyAgICAgIEhF
QVAzMltpNTIgKyAxMiA+PiAyXSA9IGkzNjsKKyAgICAgIEhFQVAzMltpNDIgPj4gMl0gPSBpMzY7
CisgICAgICBIRUFQMzJbaTU3ICsgOCA+PiAyXSA9IGk1MjsKKyAgICAgIEhFQVAzMltpNTcgKyAx
MiA+PiAyXSA9IGk1MTsKKyAgICAgIEhFQVAzMltpNTcgKyAyNCA+PiAyXSA9IDA7CisgICAgICBi
cmVhazsKKyAgICAgfQorICAgIH0KKyAgIH0gd2hpbGUgKDApOworICAgaTU3ID0gSEVBUDMyWzE5
XSB8IDA7CisgICBpZiAoaTU3ID4+PiAwIDw9IGkxNCA+Pj4gMCkgeworICAgIGJyZWFrOworICAg
fQorICAgaTUyID0gaTU3IC0gaTE0IHwgMDsKKyAgIEhFQVAzMlsxOV0gPSBpNTI7CisgICBpNTcg
PSBIRUFQMzJbMjJdIHwgMDsKKyAgIGk0MiA9IGk1NzsKKyAgIEhFQVAzMlsyMl0gPSBpNDIgKyBp
MTQ7CisgICBIRUFQMzJbaTQyICsgKGkxNCArIDQpID4+IDJdID0gaTUyIHwgMTsKKyAgIEhFQVAz
MltpNTcgKyA0ID4+IDJdID0gaTE0IHwgMzsKKyAgIGkxMyA9IGk1NyArIDggfCAwOworICAgcmV0
dXJuIGkxMyB8IDA7CisgIH0KKyB9IHdoaWxlICgwKTsKKyBIRUFQMzJbKF9fX2Vycm5vX2xvY2F0
aW9uKCkgfCAwKSA+PiAyXSA9IDEyOworIGkxMyA9IDA7CisgcmV0dXJuIGkxMyB8IDA7Cit9Citm
dW5jdGlvbiBfZnJlZShpMSkgeworIGkxID0gaTEgfCAwOworIHZhciBpMiA9IDAsIGkzID0gMCwg
aTQgPSAwLCBpNSA9IDAsIGk2ID0gMCwgaTcgPSAwLCBpOCA9IDAsIGk5ID0gMCwgaTEwID0gMCwg
aTExID0gMCwgaTEyID0gMCwgaTEzID0gMCwgaTE0ID0gMCwgaTE1ID0gMCwgaTE2ID0gMCwgaTE3
ID0gMCwgaTE4ID0gMCwgaTE5ID0gMCwgaTIwID0gMCwgaTIxID0gMCwgaTIyID0gMCwgaTIzID0g
MCwgaTI0ID0gMCwgaTI1ID0gMCwgaTI2ID0gMCwgaTI3ID0gMCwgaTI4ID0gMCwgaTI5ID0gMCwg
aTMwID0gMCwgaTMxID0gMCwgaTMyID0gMCwgaTMzID0gMCwgaTM0ID0gMCwgaTM1ID0gMCwgaTM2
ID0gMCwgaTM3ID0gMCwgaTM4ID0gMCwgaTM5ID0gMCwgaTQwID0gMDsKKyBpZiAoKGkxIHwgMCkg
PT0gMCkgeworICByZXR1cm47CisgfQorIGkyID0gaTEgLSA4IHwgMDsKKyBpMyA9IGkyOworIGk0
ID0gSEVBUDMyWzIwXSB8IDA7CisgaWYgKGkyID4+PiAwIDwgaTQgPj4+IDApIHsKKyAgX2Fib3J0
KCk7CisgfQorIGk1ID0gSEVBUDMyW2kxIC0gNCA+PiAyXSB8IDA7CisgaTYgPSBpNSAmIDM7Cisg
aWYgKChpNiB8IDApID09IDEpIHsKKyAgX2Fib3J0KCk7CisgfQorIGk3ID0gaTUgJiAtODsKKyBp
OCA9IGkxICsgKGk3IC0gOCkgfCAwOworIGk5ID0gaTg7CisgTDU0OSA6IGRvIHsKKyAgaWYgKChp
NSAmIDEgfCAwKSA9PSAwKSB7CisgICBpMTAgPSBIRUFQMzJbaTIgPj4gMl0gfCAwOworICAgaWYg
KChpNiB8IDApID09IDApIHsKKyAgICByZXR1cm47CisgICB9CisgICBpMTEgPSAtOCAtIGkxMCB8
IDA7CisgICBpMTIgPSBpMSArIGkxMSB8IDA7CisgICBpMTMgPSBpMTI7CisgICBpMTQgPSBpMTAg
KyBpNyB8IDA7CisgICBpZiAoaTEyID4+PiAwIDwgaTQgPj4+IDApIHsKKyAgICBfYWJvcnQoKTsK
KyAgIH0KKyAgIGlmICgoaTEzIHwgMCkgPT0gKEhFQVAzMlsyMV0gfCAwKSkgeworICAgIGkxNSA9
IGkxICsgKGk3IC0gNCkgfCAwOworICAgIGlmICgoSEVBUDMyW2kxNSA+PiAyXSAmIDMgfCAwKSAh
PSAzKSB7CisgICAgIGkxNiA9IGkxMzsKKyAgICAgaTE3ID0gaTE0OworICAgICBicmVhazsKKyAg
ICB9CisgICAgSEVBUDMyWzE4XSA9IGkxNDsKKyAgICBIRUFQMzJbaTE1ID4+IDJdID0gSEVBUDMy
W2kxNSA+PiAyXSAmIC0yOworICAgIEhFQVAzMltpMSArIChpMTEgKyA0KSA+PiAyXSA9IGkxNCB8
IDE7CisgICAgSEVBUDMyW2k4ID4+IDJdID0gaTE0OworICAgIHJldHVybjsKKyAgIH0KKyAgIGkx
NSA9IGkxMCA+Pj4gMzsKKyAgIGlmIChpMTAgPj4+IDAgPCAyNTYpIHsKKyAgICBpMTAgPSBIRUFQ
MzJbaTEgKyAoaTExICsgOCkgPj4gMl0gfCAwOworICAgIGkxOCA9IEhFQVAzMltpMSArIChpMTEg
KyAxMikgPj4gMl0gfCAwOworICAgIGkxOSA9IDEwNCArIChpMTUgPDwgMSA8PCAyKSB8IDA7Cisg
ICAgZG8geworICAgICBpZiAoKGkxMCB8IDApICE9IChpMTkgfCAwKSkgeworICAgICAgaWYgKGkx
MCA+Pj4gMCA8IGk0ID4+PiAwKSB7CisgICAgICAgX2Fib3J0KCk7CisgICAgICB9CisgICAgICBp
ZiAoKEhFQVAzMltpMTAgKyAxMiA+PiAyXSB8IDApID09IChpMTMgfCAwKSkgeworICAgICAgIGJy
ZWFrOworICAgICAgfQorICAgICAgX2Fib3J0KCk7CisgICAgIH0KKyAgICB9IHdoaWxlICgwKTsK
KyAgICBpZiAoKGkxOCB8IDApID09IChpMTAgfCAwKSkgeworICAgICBIRUFQMzJbMTZdID0gSEVB
UDMyWzE2XSAmIH4oMSA8PCBpMTUpOworICAgICBpMTYgPSBpMTM7CisgICAgIGkxNyA9IGkxNDsK
KyAgICAgYnJlYWs7CisgICAgfQorICAgIGRvIHsKKyAgICAgaWYgKChpMTggfCAwKSA9PSAoaTE5
IHwgMCkpIHsKKyAgICAgIGkyMCA9IGkxOCArIDggfCAwOworICAgICB9IGVsc2UgeworICAgICAg
aWYgKGkxOCA+Pj4gMCA8IGk0ID4+PiAwKSB7CisgICAgICAgX2Fib3J0KCk7CisgICAgICB9Cisg
ICAgICBpMjEgPSBpMTggKyA4IHwgMDsKKyAgICAgIGlmICgoSEVBUDMyW2kyMSA+PiAyXSB8IDAp
ID09IChpMTMgfCAwKSkgeworICAgICAgIGkyMCA9IGkyMTsKKyAgICAgICBicmVhazsKKyAgICAg
IH0KKyAgICAgIF9hYm9ydCgpOworICAgICB9CisgICAgfSB3aGlsZSAoMCk7CisgICAgSEVBUDMy
W2kxMCArIDEyID4+IDJdID0gaTE4OworICAgIEhFQVAzMltpMjAgPj4gMl0gPSBpMTA7CisgICAg
aTE2ID0gaTEzOworICAgIGkxNyA9IGkxNDsKKyAgICBicmVhazsKKyAgIH0KKyAgIGkxOSA9IGkx
MjsKKyAgIGkxNSA9IEhFQVAzMltpMSArIChpMTEgKyAyNCkgPj4gMl0gfCAwOworICAgaTIxID0g
SEVBUDMyW2kxICsgKGkxMSArIDEyKSA+PiAyXSB8IDA7CisgICBkbyB7CisgICAgaWYgKChpMjEg
fCAwKSA9PSAoaTE5IHwgMCkpIHsKKyAgICAgaTIyID0gaTEgKyAoaTExICsgMjApIHwgMDsKKyAg
ICAgaTIzID0gSEVBUDMyW2kyMiA+PiAyXSB8IDA7CisgICAgIGlmICgoaTIzIHwgMCkgPT0gMCkg
eworICAgICAgaTI0ID0gaTEgKyAoaTExICsgMTYpIHwgMDsKKyAgICAgIGkyNSA9IEhFQVAzMltp
MjQgPj4gMl0gfCAwOworICAgICAgaWYgKChpMjUgfCAwKSA9PSAwKSB7CisgICAgICAgaTI2ID0g
MDsKKyAgICAgICBicmVhazsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgaTI3ID0gaTI1OworICAg
ICAgIGkyOCA9IGkyNDsKKyAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgIGkyNyA9IGkyMzsK
KyAgICAgIGkyOCA9IGkyMjsKKyAgICAgfQorICAgICB3aGlsZSAoMSkgeworICAgICAgaTIyID0g
aTI3ICsgMjAgfCAwOworICAgICAgaTIzID0gSEVBUDMyW2kyMiA+PiAyXSB8IDA7CisgICAgICBp
ZiAoKGkyMyB8IDApICE9IDApIHsKKyAgICAgICBpMjcgPSBpMjM7CisgICAgICAgaTI4ID0gaTIy
OworICAgICAgIGNvbnRpbnVlOworICAgICAgfQorICAgICAgaTIyID0gaTI3ICsgMTYgfCAwOwor
ICAgICAgaTIzID0gSEVBUDMyW2kyMiA+PiAyXSB8IDA7CisgICAgICBpZiAoKGkyMyB8IDApID09
IDApIHsKKyAgICAgICBicmVhazsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgaTI3ID0gaTIzOwor
ICAgICAgIGkyOCA9IGkyMjsKKyAgICAgIH0KKyAgICAgfQorICAgICBpZiAoaTI4ID4+PiAwIDwg
aTQgPj4+IDApIHsKKyAgICAgIF9hYm9ydCgpOworICAgICB9IGVsc2UgeworICAgICAgSEVBUDMy
W2kyOCA+PiAyXSA9IDA7CisgICAgICBpMjYgPSBpMjc7CisgICAgICBicmVhazsKKyAgICAgfQor
ICAgIH0gZWxzZSB7CisgICAgIGkyMiA9IEhFQVAzMltpMSArIChpMTEgKyA4KSA+PiAyXSB8IDA7
CisgICAgIGlmIChpMjIgPj4+IDAgPCBpNCA+Pj4gMCkgeworICAgICAgX2Fib3J0KCk7CisgICAg
IH0KKyAgICAgaTIzID0gaTIyICsgMTIgfCAwOworICAgICBpZiAoKEhFQVAzMltpMjMgPj4gMl0g
fCAwKSAhPSAoaTE5IHwgMCkpIHsKKyAgICAgIF9hYm9ydCgpOworICAgICB9CisgICAgIGkyNCA9
IGkyMSArIDggfCAwOworICAgICBpZiAoKEhFQVAzMltpMjQgPj4gMl0gfCAwKSA9PSAoaTE5IHwg
MCkpIHsKKyAgICAgIEhFQVAzMltpMjMgPj4gMl0gPSBpMjE7CisgICAgICBIRUFQMzJbaTI0ID4+
IDJdID0gaTIyOworICAgICAgaTI2ID0gaTIxOworICAgICAgYnJlYWs7CisgICAgIH0gZWxzZSB7
CisgICAgICBfYWJvcnQoKTsKKyAgICAgfQorICAgIH0KKyAgIH0gd2hpbGUgKDApOworICAgaWYg
KChpMTUgfCAwKSA9PSAwKSB7CisgICAgaTE2ID0gaTEzOworICAgIGkxNyA9IGkxNDsKKyAgICBi
cmVhazsKKyAgIH0KKyAgIGkyMSA9IGkxICsgKGkxMSArIDI4KSB8IDA7CisgICBpMTIgPSAzNjgg
KyAoSEVBUDMyW2kyMSA+PiAyXSA8PCAyKSB8IDA7CisgICBkbyB7CisgICAgaWYgKChpMTkgfCAw
KSA9PSAoSEVBUDMyW2kxMiA+PiAyXSB8IDApKSB7CisgICAgIEhFQVAzMltpMTIgPj4gMl0gPSBp
MjY7CisgICAgIGlmICgoaTI2IHwgMCkgIT0gMCkgeworICAgICAgYnJlYWs7CisgICAgIH0KKyAg
ICAgSEVBUDMyWzE3XSA9IEhFQVAzMlsxN10gJiB+KDEgPDwgSEVBUDMyW2kyMSA+PiAyXSk7Cisg
ICAgIGkxNiA9IGkxMzsKKyAgICAgaTE3ID0gaTE0OworICAgICBicmVhayBMNTQ5OworICAgIH0g
ZWxzZSB7CisgICAgIGlmIChpMTUgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7Cisg
ICAgICBfYWJvcnQoKTsKKyAgICAgfQorICAgICBpMTAgPSBpMTUgKyAxNiB8IDA7CisgICAgIGlm
ICgoSEVBUDMyW2kxMCA+PiAyXSB8IDApID09IChpMTkgfCAwKSkgeworICAgICAgSEVBUDMyW2kx
MCA+PiAyXSA9IGkyNjsKKyAgICAgfSBlbHNlIHsKKyAgICAgIEhFQVAzMltpMTUgKyAyMCA+PiAy
XSA9IGkyNjsKKyAgICAgfQorICAgICBpZiAoKGkyNiB8IDApID09IDApIHsKKyAgICAgIGkxNiA9
IGkxMzsKKyAgICAgIGkxNyA9IGkxNDsKKyAgICAgIGJyZWFrIEw1NDk7CisgICAgIH0KKyAgICB9
CisgICB9IHdoaWxlICgwKTsKKyAgIGlmIChpMjYgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+
PiAwKSB7CisgICAgX2Fib3J0KCk7CisgICB9CisgICBIRUFQMzJbaTI2ICsgMjQgPj4gMl0gPSBp
MTU7CisgICBpMTkgPSBIRUFQMzJbaTEgKyAoaTExICsgMTYpID4+IDJdIHwgMDsKKyAgIGRvIHsK
KyAgICBpZiAoKGkxOSB8IDApICE9IDApIHsKKyAgICAgaWYgKGkxOSA+Pj4gMCA8IChIRUFQMzJb
MjBdIHwgMCkgPj4+IDApIHsKKyAgICAgIF9hYm9ydCgpOworICAgICB9IGVsc2UgeworICAgICAg
SEVBUDMyW2kyNiArIDE2ID4+IDJdID0gaTE5OworICAgICAgSEVBUDMyW2kxOSArIDI0ID4+IDJd
ID0gaTI2OworICAgICAgYnJlYWs7CisgICAgIH0KKyAgICB9CisgICB9IHdoaWxlICgwKTsKKyAg
IGkxOSA9IEhFQVAzMltpMSArIChpMTEgKyAyMCkgPj4gMl0gfCAwOworICAgaWYgKChpMTkgfCAw
KSA9PSAwKSB7CisgICAgaTE2ID0gaTEzOworICAgIGkxNyA9IGkxNDsKKyAgICBicmVhazsKKyAg
IH0KKyAgIGlmIChpMTkgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7CisgICAgX2Fi
b3J0KCk7CisgICB9IGVsc2UgeworICAgIEhFQVAzMltpMjYgKyAyMCA+PiAyXSA9IGkxOTsKKyAg
ICBIRUFQMzJbaTE5ICsgMjQgPj4gMl0gPSBpMjY7CisgICAgaTE2ID0gaTEzOworICAgIGkxNyA9
IGkxNDsKKyAgICBicmVhazsKKyAgIH0KKyAgfSBlbHNlIHsKKyAgIGkxNiA9IGkzOworICAgaTE3
ID0gaTc7CisgIH0KKyB9IHdoaWxlICgwKTsKKyBpMyA9IGkxNjsKKyBpZiAoaTMgPj4+IDAgPj0g
aTggPj4+IDApIHsKKyAgX2Fib3J0KCk7CisgfQorIGkyNiA9IGkxICsgKGk3IC0gNCkgfCAwOwor
IGk0ID0gSEVBUDMyW2kyNiA+PiAyXSB8IDA7CisgaWYgKChpNCAmIDEgfCAwKSA9PSAwKSB7Cisg
IF9hYm9ydCgpOworIH0KKyBkbyB7CisgIGlmICgoaTQgJiAyIHwgMCkgPT0gMCkgeworICAgaWYg
KChpOSB8IDApID09IChIRUFQMzJbMjJdIHwgMCkpIHsKKyAgICBpMjcgPSAoSEVBUDMyWzE5XSB8
IDApICsgaTE3IHwgMDsKKyAgICBIRUFQMzJbMTldID0gaTI3OworICAgIEhFQVAzMlsyMl0gPSBp
MTY7CisgICAgSEVBUDMyW2kxNiArIDQgPj4gMl0gPSBpMjcgfCAxOworICAgIGlmICgoaTE2IHwg
MCkgIT0gKEhFQVAzMlsyMV0gfCAwKSkgeworICAgICByZXR1cm47CisgICAgfQorICAgIEhFQVAz
MlsyMV0gPSAwOworICAgIEhFQVAzMlsxOF0gPSAwOworICAgIHJldHVybjsKKyAgIH0KKyAgIGlm
ICgoaTkgfCAwKSA9PSAoSEVBUDMyWzIxXSB8IDApKSB7CisgICAgaTI3ID0gKEhFQVAzMlsxOF0g
fCAwKSArIGkxNyB8IDA7CisgICAgSEVBUDMyWzE4XSA9IGkyNzsKKyAgICBIRUFQMzJbMjFdID0g
aTE2OworICAgIEhFQVAzMltpMTYgKyA0ID4+IDJdID0gaTI3IHwgMTsKKyAgICBIRUFQMzJbaTMg
KyBpMjcgPj4gMl0gPSBpMjc7CisgICAgcmV0dXJuOworICAgfQorICAgaTI3ID0gKGk0ICYgLTgp
ICsgaTE3IHwgMDsKKyAgIGkyOCA9IGk0ID4+PiAzOworICAgTDY1MiA6IGRvIHsKKyAgICBpZiAo
aTQgPj4+IDAgPCAyNTYpIHsKKyAgICAgaTIwID0gSEVBUDMyW2kxICsgaTcgPj4gMl0gfCAwOwor
ICAgICBpNiA9IEhFQVAzMltpMSArIChpNyB8IDQpID4+IDJdIHwgMDsKKyAgICAgaTIgPSAxMDQg
KyAoaTI4IDw8IDEgPDwgMikgfCAwOworICAgICBkbyB7CisgICAgICBpZiAoKGkyMCB8IDApICE9
IChpMiB8IDApKSB7CisgICAgICAgaWYgKGkyMCA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+
IDApIHsKKyAgICAgICAgX2Fib3J0KCk7CisgICAgICAgfQorICAgICAgIGlmICgoSEVBUDMyW2ky
MCArIDEyID4+IDJdIHwgMCkgPT0gKGk5IHwgMCkpIHsKKyAgICAgICAgYnJlYWs7CisgICAgICAg
fQorICAgICAgIF9hYm9ydCgpOworICAgICAgfQorICAgICB9IHdoaWxlICgwKTsKKyAgICAgaWYg
KChpNiB8IDApID09IChpMjAgfCAwKSkgeworICAgICAgSEVBUDMyWzE2XSA9IEhFQVAzMlsxNl0g
JiB+KDEgPDwgaTI4KTsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgIGRvIHsKKyAgICAgIGlm
ICgoaTYgfCAwKSA9PSAoaTIgfCAwKSkgeworICAgICAgIGkyOSA9IGk2ICsgOCB8IDA7CisgICAg
ICB9IGVsc2UgeworICAgICAgIGlmIChpNiA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDAp
IHsKKyAgICAgICAgX2Fib3J0KCk7CisgICAgICAgfQorICAgICAgIGk1ID0gaTYgKyA4IHwgMDsK
KyAgICAgICBpZiAoKEhFQVAzMltpNSA+PiAyXSB8IDApID09IChpOSB8IDApKSB7CisgICAgICAg
IGkyOSA9IGk1OworICAgICAgICBicmVhazsKKyAgICAgICB9CisgICAgICAgX2Fib3J0KCk7Cisg
ICAgICB9CisgICAgIH0gd2hpbGUgKDApOworICAgICBIRUFQMzJbaTIwICsgMTIgPj4gMl0gPSBp
NjsKKyAgICAgSEVBUDMyW2kyOSA+PiAyXSA9IGkyMDsKKyAgICB9IGVsc2UgeworICAgICBpMiA9
IGk4OworICAgICBpNSA9IEhFQVAzMltpMSArIChpNyArIDE2KSA+PiAyXSB8IDA7CisgICAgIGkx
OSA9IEhFQVAzMltpMSArIChpNyB8IDQpID4+IDJdIHwgMDsKKyAgICAgZG8geworICAgICAgaWYg
KChpMTkgfCAwKSA9PSAoaTIgfCAwKSkgeworICAgICAgIGkxNSA9IGkxICsgKGk3ICsgMTIpIHwg
MDsKKyAgICAgICBpMjEgPSBIRUFQMzJbaTE1ID4+IDJdIHwgMDsKKyAgICAgICBpZiAoKGkyMSB8
IDApID09IDApIHsKKyAgICAgICAgaTEyID0gaTEgKyAoaTcgKyA4KSB8IDA7CisgICAgICAgIGkx
MCA9IEhFQVAzMltpMTIgPj4gMl0gfCAwOworICAgICAgICBpZiAoKGkxMCB8IDApID09IDApIHsK
KyAgICAgICAgIGkzMCA9IDA7CisgICAgICAgICBicmVhazsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgIGkzMSA9IGkxMDsKKyAgICAgICAgIGkzMiA9IGkxMjsKKyAgICAgICAgfQorICAgICAg
IH0gZWxzZSB7CisgICAgICAgIGkzMSA9IGkyMTsKKyAgICAgICAgaTMyID0gaTE1OworICAgICAg
IH0KKyAgICAgICB3aGlsZSAoMSkgeworICAgICAgICBpMTUgPSBpMzEgKyAyMCB8IDA7CisgICAg
ICAgIGkyMSA9IEhFQVAzMltpMTUgPj4gMl0gfCAwOworICAgICAgICBpZiAoKGkyMSB8IDApICE9
IDApIHsKKyAgICAgICAgIGkzMSA9IGkyMTsKKyAgICAgICAgIGkzMiA9IGkxNTsKKyAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGkxNSA9IGkzMSArIDE2IHwgMDsKKyAgICAg
ICAgaTIxID0gSEVBUDMyW2kxNSA+PiAyXSB8IDA7CisgICAgICAgIGlmICgoaTIxIHwgMCkgPT0g
MCkgeworICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICBpMzEgPSBp
MjE7CisgICAgICAgICBpMzIgPSBpMTU7CisgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgaWYg
KGkzMiA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICAgX2Fib3J0KCk7
CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgSEVBUDMyW2kzMiA+PiAyXSA9IDA7CisgICAgICAg
IGkzMCA9IGkzMTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAg
ICAgICBpMTUgPSBIRUFQMzJbaTEgKyBpNyA+PiAyXSB8IDA7CisgICAgICAgaWYgKGkxNSA+Pj4g
MCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICAgX2Fib3J0KCk7CisgICAgICAg
fQorICAgICAgIGkyMSA9IGkxNSArIDEyIHwgMDsKKyAgICAgICBpZiAoKEhFQVAzMltpMjEgPj4g
Ml0gfCAwKSAhPSAoaTIgfCAwKSkgeworICAgICAgICBfYWJvcnQoKTsKKyAgICAgICB9CisgICAg
ICAgaTEyID0gaTE5ICsgOCB8IDA7CisgICAgICAgaWYgKChIRUFQMzJbaTEyID4+IDJdIHwgMCkg
PT0gKGkyIHwgMCkpIHsKKyAgICAgICAgSEVBUDMyW2kyMSA+PiAyXSA9IGkxOTsKKyAgICAgICAg
SEVBUDMyW2kxMiA+PiAyXSA9IGkxNTsKKyAgICAgICAgaTMwID0gaTE5OworICAgICAgICBicmVh
azsKKyAgICAgICB9IGVsc2UgeworICAgICAgICBfYWJvcnQoKTsKKyAgICAgICB9CisgICAgICB9
CisgICAgIH0gd2hpbGUgKDApOworICAgICBpZiAoKGk1IHwgMCkgPT0gMCkgeworICAgICAgYnJl
YWs7CisgICAgIH0KKyAgICAgaTE5ID0gaTEgKyAoaTcgKyAyMCkgfCAwOworICAgICBpMjAgPSAz
NjggKyAoSEVBUDMyW2kxOSA+PiAyXSA8PCAyKSB8IDA7CisgICAgIGRvIHsKKyAgICAgIGlmICgo
aTIgfCAwKSA9PSAoSEVBUDMyW2kyMCA+PiAyXSB8IDApKSB7CisgICAgICAgSEVBUDMyW2kyMCA+
PiAyXSA9IGkzMDsKKyAgICAgICBpZiAoKGkzMCB8IDApICE9IDApIHsKKyAgICAgICAgYnJlYWs7
CisgICAgICAgfQorICAgICAgIEhFQVAzMlsxN10gPSBIRUFQMzJbMTddICYgfigxIDw8IEhFQVAz
MltpMTkgPj4gMl0pOworICAgICAgIGJyZWFrIEw2NTI7CisgICAgICB9IGVsc2UgeworICAgICAg
IGlmIChpNSA+Pj4gMCA8IChIRUFQMzJbMjBdIHwgMCkgPj4+IDApIHsKKyAgICAgICAgX2Fib3J0
KCk7CisgICAgICAgfQorICAgICAgIGk2ID0gaTUgKyAxNiB8IDA7CisgICAgICAgaWYgKChIRUFQ
MzJbaTYgPj4gMl0gfCAwKSA9PSAoaTIgfCAwKSkgeworICAgICAgICBIRUFQMzJbaTYgPj4gMl0g
PSBpMzA7CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgSEVBUDMyW2k1ICsgMjAgPj4gMl0gPSBp
MzA7CisgICAgICAgfQorICAgICAgIGlmICgoaTMwIHwgMCkgPT0gMCkgeworICAgICAgICBicmVh
ayBMNjUyOworICAgICAgIH0KKyAgICAgIH0KKyAgICAgfSB3aGlsZSAoMCk7CisgICAgIGlmIChp
MzAgPj4+IDAgPCAoSEVBUDMyWzIwXSB8IDApID4+PiAwKSB7CisgICAgICBfYWJvcnQoKTsKKyAg
ICAgfQorICAgICBIRUFQMzJbaTMwICsgMjQgPj4gMl0gPSBpNTsKKyAgICAgaTIgPSBIRUFQMzJb
aTEgKyAoaTcgKyA4KSA+PiAyXSB8IDA7CisgICAgIGRvIHsKKyAgICAgIGlmICgoaTIgfCAwKSAh
PSAwKSB7CisgICAgICAgaWYgKGkyID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgewor
ICAgICAgICBfYWJvcnQoKTsKKyAgICAgICB9IGVsc2UgeworICAgICAgICBIRUFQMzJbaTMwICsg
MTYgPj4gMl0gPSBpMjsKKyAgICAgICAgSEVBUDMyW2kyICsgMjQgPj4gMl0gPSBpMzA7CisgICAg
ICAgIGJyZWFrOworICAgICAgIH0KKyAgICAgIH0KKyAgICAgfSB3aGlsZSAoMCk7CisgICAgIGky
ID0gSEVBUDMyW2kxICsgKGk3ICsgMTIpID4+IDJdIHwgMDsKKyAgICAgaWYgKChpMiB8IDApID09
IDApIHsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgIGlmIChpMiA+Pj4gMCA8IChIRUFQMzJb
MjBdIHwgMCkgPj4+IDApIHsKKyAgICAgIF9hYm9ydCgpOworICAgICB9IGVsc2UgeworICAgICAg
SEVBUDMyW2kzMCArIDIwID4+IDJdID0gaTI7CisgICAgICBIRUFQMzJbaTIgKyAyNCA+PiAyXSA9
IGkzMDsKKyAgICAgIGJyZWFrOworICAgICB9CisgICAgfQorICAgfSB3aGlsZSAoMCk7CisgICBI
RUFQMzJbaTE2ICsgNCA+PiAyXSA9IGkyNyB8IDE7CisgICBIRUFQMzJbaTMgKyBpMjcgPj4gMl0g
PSBpMjc7CisgICBpZiAoKGkxNiB8IDApICE9IChIRUFQMzJbMjFdIHwgMCkpIHsKKyAgICBpMzMg
PSBpMjc7CisgICAgYnJlYWs7CisgICB9CisgICBIRUFQMzJbMThdID0gaTI3OworICAgcmV0dXJu
OworICB9IGVsc2UgeworICAgSEVBUDMyW2kyNiA+PiAyXSA9IGk0ICYgLTI7CisgICBIRUFQMzJb
aTE2ICsgNCA+PiAyXSA9IGkxNyB8IDE7CisgICBIRUFQMzJbaTMgKyBpMTcgPj4gMl0gPSBpMTc7
CisgICBpMzMgPSBpMTc7CisgIH0KKyB9IHdoaWxlICgwKTsKKyBpMTcgPSBpMzMgPj4+IDM7Cisg
aWYgKGkzMyA+Pj4gMCA8IDI1NikgeworICBpMyA9IGkxNyA8PCAxOworICBpNCA9IDEwNCArIChp
MyA8PCAyKSB8IDA7CisgIGkyNiA9IEhFQVAzMlsxNl0gfCAwOworICBpMzAgPSAxIDw8IGkxNzsK
KyAgZG8geworICAgaWYgKChpMjYgJiBpMzAgfCAwKSA9PSAwKSB7CisgICAgSEVBUDMyWzE2XSA9
IGkyNiB8IGkzMDsKKyAgICBpMzQgPSBpNDsKKyAgICBpMzUgPSAxMDQgKyAoaTMgKyAyIDw8IDIp
IHwgMDsKKyAgIH0gZWxzZSB7CisgICAgaTE3ID0gMTA0ICsgKGkzICsgMiA8PCAyKSB8IDA7Cisg
ICAgaTcgPSBIRUFQMzJbaTE3ID4+IDJdIHwgMDsKKyAgICBpZiAoaTcgPj4+IDAgPj0gKEhFQVAz
MlsyMF0gfCAwKSA+Pj4gMCkgeworICAgICBpMzQgPSBpNzsKKyAgICAgaTM1ID0gaTE3OworICAg
ICBicmVhazsKKyAgICB9CisgICAgX2Fib3J0KCk7CisgICB9CisgIH0gd2hpbGUgKDApOworICBI
RUFQMzJbaTM1ID4+IDJdID0gaTE2OworICBIRUFQMzJbaTM0ICsgMTIgPj4gMl0gPSBpMTY7Cisg
IEhFQVAzMltpMTYgKyA4ID4+IDJdID0gaTM0OworICBIRUFQMzJbaTE2ICsgMTIgPj4gMl0gPSBp
NDsKKyAgcmV0dXJuOworIH0KKyBpNCA9IGkxNjsKKyBpMzQgPSBpMzMgPj4+IDg7CisgZG8gewor
ICBpZiAoKGkzNCB8IDApID09IDApIHsKKyAgIGkzNiA9IDA7CisgIH0gZWxzZSB7CisgICBpZiAo
aTMzID4+PiAwID4gMTY3NzcyMTUpIHsKKyAgICBpMzYgPSAzMTsKKyAgICBicmVhazsKKyAgIH0K
KyAgIGkzNSA9IChpMzQgKyAxMDQ4MzIwIHwgMCkgPj4+IDE2ICYgODsKKyAgIGkzID0gaTM0IDw8
IGkzNTsKKyAgIGkzMCA9IChpMyArIDUyMDE5MiB8IDApID4+PiAxNiAmIDQ7CisgICBpMjYgPSBp
MyA8PCBpMzA7CisgICBpMyA9IChpMjYgKyAyNDU3NjAgfCAwKSA+Pj4gMTYgJiAyOworICAgaTE3
ID0gMTQgLSAoaTMwIHwgaTM1IHwgaTMpICsgKGkyNiA8PCBpMyA+Pj4gMTUpIHwgMDsKKyAgIGkz
NiA9IGkzMyA+Pj4gKChpMTcgKyA3IHwgMCkgPj4+IDApICYgMSB8IGkxNyA8PCAxOworICB9Cisg
fSB3aGlsZSAoMCk7CisgaTM0ID0gMzY4ICsgKGkzNiA8PCAyKSB8IDA7CisgSEVBUDMyW2kxNiAr
IDI4ID4+IDJdID0gaTM2OworIEhFQVAzMltpMTYgKyAyMCA+PiAyXSA9IDA7CisgSEVBUDMyW2kx
NiArIDE2ID4+IDJdID0gMDsKKyBpMTcgPSBIRUFQMzJbMTddIHwgMDsKKyBpMyA9IDEgPDwgaTM2
OworIGRvIHsKKyAgaWYgKChpMTcgJiBpMyB8IDApID09IDApIHsKKyAgIEhFQVAzMlsxN10gPSBp
MTcgfCBpMzsKKyAgIEhFQVAzMltpMzQgPj4gMl0gPSBpNDsKKyAgIEhFQVAzMltpMTYgKyAyNCA+
PiAyXSA9IGkzNDsKKyAgIEhFQVAzMltpMTYgKyAxMiA+PiAyXSA9IGkxNjsKKyAgIEhFQVAzMltp
MTYgKyA4ID4+IDJdID0gaTE2OworICB9IGVsc2UgeworICAgaWYgKChpMzYgfCAwKSA9PSAzMSkg
eworICAgIGkzNyA9IDA7CisgICB9IGVsc2UgeworICAgIGkzNyA9IDI1IC0gKGkzNiA+Pj4gMSkg
fCAwOworICAgfQorICAgaTI2ID0gaTMzIDw8IGkzNzsKKyAgIGkzNSA9IEhFQVAzMltpMzQgPj4g
Ml0gfCAwOworICAgd2hpbGUgKDEpIHsKKyAgICBpZiAoKEhFQVAzMltpMzUgKyA0ID4+IDJdICYg
LTggfCAwKSA9PSAoaTMzIHwgMCkpIHsKKyAgICAgYnJlYWs7CisgICAgfQorICAgIGkzOCA9IGkz
NSArIDE2ICsgKGkyNiA+Pj4gMzEgPDwgMikgfCAwOworICAgIGkzMCA9IEhFQVAzMltpMzggPj4g
Ml0gfCAwOworICAgIGlmICgoaTMwIHwgMCkgPT0gMCkgeworICAgICBpMzkgPSA1MjU7CisgICAg
IGJyZWFrOworICAgIH0gZWxzZSB7CisgICAgIGkyNiA9IGkyNiA8PCAxOworICAgICBpMzUgPSBp
MzA7CisgICAgfQorICAgfQorICAgaWYgKChpMzkgfCAwKSA9PSA1MjUpIHsKKyAgICBpZiAoaTM4
ID4+PiAwIDwgKEhFQVAzMlsyMF0gfCAwKSA+Pj4gMCkgeworICAgICBfYWJvcnQoKTsKKyAgICB9
IGVsc2UgeworICAgICBIRUFQMzJbaTM4ID4+IDJdID0gaTQ7CisgICAgIEhFQVAzMltpMTYgKyAy
NCA+PiAyXSA9IGkzNTsKKyAgICAgSEVBUDMyW2kxNiArIDEyID4+IDJdID0gaTE2OworICAgICBI
RUFQMzJbaTE2ICsgOCA+PiAyXSA9IGkxNjsKKyAgICAgYnJlYWs7CisgICAgfQorICAgfQorICAg
aTI2ID0gaTM1ICsgOCB8IDA7CisgICBpMjcgPSBIRUFQMzJbaTI2ID4+IDJdIHwgMDsKKyAgIGkz
MCA9IEhFQVAzMlsyMF0gfCAwOworICAgaWYgKGkzNSA+Pj4gMCA8IGkzMCA+Pj4gMCkgeworICAg
IF9hYm9ydCgpOworICAgfQorICAgaWYgKGkyNyA+Pj4gMCA8IGkzMCA+Pj4gMCkgeworICAgIF9h
Ym9ydCgpOworICAgfSBlbHNlIHsKKyAgICBIRUFQMzJbaTI3ICsgMTIgPj4gMl0gPSBpNDsKKyAg
ICBIRUFQMzJbaTI2ID4+IDJdID0gaTQ7CisgICAgSEVBUDMyW2kxNiArIDggPj4gMl0gPSBpMjc7
CisgICAgSEVBUDMyW2kxNiArIDEyID4+IDJdID0gaTM1OworICAgIEhFQVAzMltpMTYgKyAyNCA+
PiAyXSA9IDA7CisgICAgYnJlYWs7CisgICB9CisgIH0KKyB9IHdoaWxlICgwKTsKKyBpMTYgPSAo
SEVBUDMyWzI0XSB8IDApIC0gMSB8IDA7CisgSEVBUDMyWzI0XSA9IGkxNjsKKyBpZiAoKGkxNiB8
IDApID09IDApIHsKKyAgaTQwID0gNTIwOworIH0gZWxzZSB7CisgIHJldHVybjsKKyB9Cisgd2hp
bGUgKDEpIHsKKyAgaTE2ID0gSEVBUDMyW2k0MCA+PiAyXSB8IDA7CisgIGlmICgoaTE2IHwgMCkg
PT0gMCkgeworICAgYnJlYWs7CisgIH0gZWxzZSB7CisgICBpNDAgPSBpMTYgKyA4IHwgMDsKKyAg
fQorIH0KKyBIRUFQMzJbMjRdID0gLTE7CisgcmV0dXJuOworfQorZnVuY3Rpb24gX3N0cmxlbihp
MSkgeworIGkxID0gaTEgfCAwOworIHZhciBpMiA9IDA7CisgaTIgPSBpMTsKKyB3aGlsZSAoSEVB
UDhbaTJdIHwgMCkgeworICBpMiA9IGkyICsgMSB8IDA7CisgfQorIHJldHVybiBpMiAtIGkxIHwg
MDsKK30KK2Z1bmN0aW9uIF9tZW1jcHkoaTEsIGkyLCBpMykgeworIGkxID0gaTEgfCAwOworIGky
ID0gaTIgfCAwOworIGkzID0gaTMgfCAwOworIHZhciBpNCA9IDA7CisgaTQgPSBpMSB8IDA7Cisg
aWYgKChpMSAmIDMpID09IChpMiAmIDMpKSB7CisgIHdoaWxlIChpMSAmIDMpIHsKKyAgIGlmICgo
aTMgfCAwKSA9PSAwKSByZXR1cm4gaTQgfCAwOworICAgSEVBUDhbaTFdID0gSEVBUDhbaTJdIHwg
MDsKKyAgIGkxID0gaTEgKyAxIHwgMDsKKyAgIGkyID0gaTIgKyAxIHwgMDsKKyAgIGkzID0gaTMg
LSAxIHwgMDsKKyAgfQorICB3aGlsZSAoKGkzIHwgMCkgPj0gNCkgeworICAgSEVBUDMyW2kxID4+
IDJdID0gSEVBUDMyW2kyID4+IDJdOworICAgaTEgPSBpMSArIDQgfCAwOworICAgaTIgPSBpMiAr
IDQgfCAwOworICAgaTMgPSBpMyAtIDQgfCAwOworICB9CisgfQorIHdoaWxlICgoaTMgfCAwKSA+
IDApIHsKKyAgSEVBUDhbaTFdID0gSEVBUDhbaTJdIHwgMDsKKyAgaTEgPSBpMSArIDEgfCAwOwor
ICBpMiA9IGkyICsgMSB8IDA7CisgIGkzID0gaTMgLSAxIHwgMDsKKyB9CisgcmV0dXJuIGk0IHwg
MDsKK30KK2Z1bmN0aW9uIF9tZW1zZXQoaTEsIGkyLCBpMykgeworIGkxID0gaTEgfCAwOworIGky
ID0gaTIgfCAwOworIGkzID0gaTMgfCAwOworIHZhciBpNCA9IDAsIGk1ID0gMCwgaTYgPSAwOwor
IGk0ID0gaTEgKyBpMyB8IDA7CisgaWYgKChpMyB8IDApID49IDIwKSB7CisgIGkyID0gaTIgJiAy
NTU7CisgIGkzID0gaTEgJiAzOworICBpNSA9IGkyIHwgaTIgPDwgOCB8IGkyIDw8IDE2IHwgaTIg
PDwgMjQ7CisgIGk2ID0gaTQgJiB+MzsKKyAgaWYgKGkzKSB7CisgICBpMyA9IGkxICsgNCAtIGkz
IHwgMDsKKyAgIHdoaWxlICgoaTEgfCAwKSA8IChpMyB8IDApKSB7CisgICAgSEVBUDhbaTFdID0g
aTI7CisgICAgaTEgPSBpMSArIDEgfCAwOworICAgfQorICB9CisgIHdoaWxlICgoaTEgfCAwKSA8
IChpNiB8IDApKSB7CisgICBIRUFQMzJbaTEgPj4gMl0gPSBpNTsKKyAgIGkxID0gaTEgKyA0IHwg
MDsKKyAgfQorIH0KKyB3aGlsZSAoKGkxIHwgMCkgPCAoaTQgfCAwKSkgeworICBIRUFQOFtpMV0g
PSBpMjsKKyAgaTEgPSBpMSArIDEgfCAwOworIH0KK30KK2Z1bmN0aW9uIGR5bkNhbGxfaWkoaTEs
IGkyKSB7CisgaTEgPSBpMSB8IDA7CisgaTIgPSBpMiB8IDA7CisgcmV0dXJuIEZVTkNUSU9OX1RB
QkxFX2lpW2kxICYgMV0oaTIgfCAwKSB8IDA7Cit9CitmdW5jdGlvbiBkeW5DYWxsX3YoaTEpIHsK
KyBpMSA9IGkxIHwgMDsKKyBGVU5DVElPTl9UQUJMRV92W2kxICYgMV0oKTsKK30KK2Z1bmN0aW9u
IGR5bkNhbGxfaWlpKGkxLCBpMiwgaTMpIHsKKyBpMSA9IGkxIHwgMDsKKyBpMiA9IGkyIHwgMDsK
KyBpMyA9IGkzIHwgMDsKKyByZXR1cm4gRlVOQ1RJT05fVEFCTEVfaWlpW2kxICYgMV0oaTIgfCAw
LCBpMyB8IDApIHwgMDsKK30KK2Z1bmN0aW9uIGR5bkNhbGxfdmkoaTEsIGkyKSB7CisgaTEgPSBp
MSB8IDA7CisgaTIgPSBpMiB8IDA7CisgRlVOQ1RJT05fVEFCTEVfdmlbaTEgJiAxXShpMiB8IDAp
OworfQorZnVuY3Rpb24gYjAoaTEpIHsKKyBpMSA9IGkxIHwgMDsKKyBhYm9ydCgwKTsKKyByZXR1
cm4gMDsKK30KK2Z1bmN0aW9uIGIxKCkgeworIGFib3J0KDEpOworfQorZnVuY3Rpb24gYjIoaTEs
IGkyKSB7CisgaTEgPSBpMSB8IDA7CisgaTIgPSBpMiB8IDA7CisgYWJvcnQoMik7CisgcmV0dXJu
IDA7Cit9CitmdW5jdGlvbiBiMyhpMSkgeworIGkxID0gaTEgfCAwOworIGFib3J0KDMpOworfQor
Ly8gRU1TQ1JJUFRFTl9FTkRfRlVOQ1MKKyAgdmFyIEZVTkNUSU9OX1RBQkxFX2lpID0gW2IwLGIw
XTsKKyAgdmFyIEZVTkNUSU9OX1RBQkxFX3YgPSBbYjEsYjFdOworICB2YXIgRlVOQ1RJT05fVEFC
TEVfaWlpID0gW2IyLGIyXTsKKyAgdmFyIEZVTkNUSU9OX1RBQkxFX3ZpID0gW2IzLGIzXTsKKyAg
cmV0dXJuIHsgX3N0cmxlbjogX3N0cmxlbiwgX2ZyZWU6IF9mcmVlLCBfbWFpbjogX21haW4sIF9t
ZW1zZXQ6IF9tZW1zZXQsIF9tYWxsb2M6IF9tYWxsb2MsIF9tZW1jcHk6IF9tZW1jcHksIHJ1blBv
c3RTZXRzOiBydW5Qb3N0U2V0cywgc3RhY2tBbGxvYzogc3RhY2tBbGxvYywgc3RhY2tTYXZlOiBz
dGFja1NhdmUsIHN0YWNrUmVzdG9yZTogc3RhY2tSZXN0b3JlLCBzZXRUaHJldzogc2V0VGhyZXcs
IHNldFRlbXBSZXQwOiBzZXRUZW1wUmV0MCwgc2V0VGVtcFJldDE6IHNldFRlbXBSZXQxLCBzZXRU
ZW1wUmV0Mjogc2V0VGVtcFJldDIsIHNldFRlbXBSZXQzOiBzZXRUZW1wUmV0Mywgc2V0VGVtcFJl
dDQ6IHNldFRlbXBSZXQ0LCBzZXRUZW1wUmV0NTogc2V0VGVtcFJldDUsIHNldFRlbXBSZXQ2OiBz
ZXRUZW1wUmV0Niwgc2V0VGVtcFJldDc6IHNldFRlbXBSZXQ3LCBzZXRUZW1wUmV0ODogc2V0VGVt
cFJldDgsIHNldFRlbXBSZXQ5OiBzZXRUZW1wUmV0OSwgZHluQ2FsbF9paTogZHluQ2FsbF9paSwg
ZHluQ2FsbF92OiBkeW5DYWxsX3YsIGR5bkNhbGxfaWlpOiBkeW5DYWxsX2lpaSwgZHluQ2FsbF92
aTogZHluQ2FsbF92aSB9OworfSkKKy8vIEVNU0NSSVBURU5fRU5EX0FTTQorKHsgIk1hdGgiOiBN
YXRoLCAiSW50OEFycmF5IjogSW50OEFycmF5LCAiSW50MTZBcnJheSI6IEludDE2QXJyYXksICJJ
bnQzMkFycmF5IjogSW50MzJBcnJheSwgIlVpbnQ4QXJyYXkiOiBVaW50OEFycmF5LCAiVWludDE2
QXJyYXkiOiBVaW50MTZBcnJheSwgIlVpbnQzMkFycmF5IjogVWludDMyQXJyYXksICJGbG9hdDMy
QXJyYXkiOiBGbG9hdDMyQXJyYXksICJGbG9hdDY0QXJyYXkiOiBGbG9hdDY0QXJyYXkgfSwgeyAi
YWJvcnQiOiBhYm9ydCwgImFzc2VydCI6IGFzc2VydCwgImFzbVByaW50SW50IjogYXNtUHJpbnRJ
bnQsICJhc21QcmludEZsb2F0IjogYXNtUHJpbnRGbG9hdCwgIm1pbiI6IE1hdGhfbWluLCAiaW52
b2tlX2lpIjogaW52b2tlX2lpLCAiaW52b2tlX3YiOiBpbnZva2VfdiwgImludm9rZV9paWkiOiBp
bnZva2VfaWlpLCAiaW52b2tlX3ZpIjogaW52b2tlX3ZpLCAiX3B3cml0ZSI6IF9wd3JpdGUsICJf
c3lzY29uZiI6IF9zeXNjb25mLCAiX3NicmsiOiBfc2JyaywgIl9fX3NldEVyck5vIjogX19fc2V0
RXJyTm8sICJfZndyaXRlIjogX2Z3cml0ZSwgIl9fcmVhbGx5TmVnYXRpdmUiOiBfX3JlYWxseU5l
Z2F0aXZlLCAiX3RpbWUiOiBfdGltZSwgIl9fZm9ybWF0U3RyaW5nIjogX19mb3JtYXRTdHJpbmcs
ICJfc2VuZCI6IF9zZW5kLCAiX3dyaXRlIjogX3dyaXRlLCAiX2Fib3J0IjogX2Fib3J0LCAiX2Zw
cmludGYiOiBfZnByaW50ZiwgIl9wcmludGYiOiBfcHJpbnRmLCAiX19fZXJybm9fbG9jYXRpb24i
OiBfX19lcnJub19sb2NhdGlvbiwgIl9mZmx1c2giOiBfZmZsdXNoLCAiU1RBQ0tUT1AiOiBTVEFD
S1RPUCwgIlNUQUNLX01BWCI6IFNUQUNLX01BWCwgInRlbXBEb3VibGVQdHIiOiB0ZW1wRG91Ymxl
UHRyLCAiQUJPUlQiOiBBQk9SVCwgIk5hTiI6IE5hTiwgIkluZmluaXR5IjogSW5maW5pdHkgfSwg
YnVmZmVyKTsKK3ZhciBfc3RybGVuID0gTW9kdWxlWyJfc3RybGVuIl0gPSBhc21bIl9zdHJsZW4i
XTsKK3ZhciBfZnJlZSA9IE1vZHVsZVsiX2ZyZWUiXSA9IGFzbVsiX2ZyZWUiXTsKK3ZhciBfbWFp
biA9IE1vZHVsZVsiX21haW4iXSA9IGFzbVsiX21haW4iXTsKK3ZhciBfbWVtc2V0ID0gTW9kdWxl
WyJfbWVtc2V0Il0gPSBhc21bIl9tZW1zZXQiXTsKK3ZhciBfbWFsbG9jID0gTW9kdWxlWyJfbWFs
bG9jIl0gPSBhc21bIl9tYWxsb2MiXTsKK3ZhciBfbWVtY3B5ID0gTW9kdWxlWyJfbWVtY3B5Il0g
PSBhc21bIl9tZW1jcHkiXTsKK3ZhciBydW5Qb3N0U2V0cyA9IE1vZHVsZVsicnVuUG9zdFNldHMi
XSA9IGFzbVsicnVuUG9zdFNldHMiXTsKK3ZhciBkeW5DYWxsX2lpID0gTW9kdWxlWyJkeW5DYWxs
X2lpIl0gPSBhc21bImR5bkNhbGxfaWkiXTsKK3ZhciBkeW5DYWxsX3YgPSBNb2R1bGVbImR5bkNh
bGxfdiJdID0gYXNtWyJkeW5DYWxsX3YiXTsKK3ZhciBkeW5DYWxsX2lpaSA9IE1vZHVsZVsiZHlu
Q2FsbF9paWkiXSA9IGFzbVsiZHluQ2FsbF9paWkiXTsKK3ZhciBkeW5DYWxsX3ZpID0gTW9kdWxl
WyJkeW5DYWxsX3ZpIl0gPSBhc21bImR5bkNhbGxfdmkiXTsKK1J1bnRpbWUuc3RhY2tBbGxvYyA9
IGZ1bmN0aW9uKHNpemUpIHsgcmV0dXJuIGFzbVsnc3RhY2tBbGxvYyddKHNpemUpIH07CitSdW50
aW1lLnN0YWNrU2F2ZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gYXNtWydzdGFja1NhdmUnXSgpIH07
CitSdW50aW1lLnN0YWNrUmVzdG9yZSA9IGZ1bmN0aW9uKHRvcCkgeyBhc21bJ3N0YWNrUmVzdG9y
ZSddKHRvcCkgfTsKKy8vIFdhcm5pbmc6IHByaW50aW5nIG9mIGk2NCB2YWx1ZXMgbWF5IGJlIHNs
aWdodGx5IHJvdW5kZWQhIE5vIGRlZXAgaTY0IG1hdGggdXNlZCwgc28gcHJlY2lzZSBpNjQgY29k
ZSBub3QgaW5jbHVkZWQKK3ZhciBpNjRNYXRoID0gbnVsbDsKKy8vID09PSBBdXRvLWdlbmVyYXRl
ZCBwb3N0YW1ibGUgc2V0dXAgZW50cnkgc3R1ZmYgPT09CitmdW5jdGlvbiBFeGl0U3RhdHVzKHN0
YXR1cykgeworICB0aGlzLm5hbWUgPSAiRXhpdFN0YXR1cyI7CisgIHRoaXMubWVzc2FnZSA9ICJQ
cm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIgKyBzdGF0dXMgKyAiKSI7CisgIHRoaXMuc3Rh
dHVzID0gc3RhdHVzOworfTsKK0V4aXRTdGF0dXMucHJvdG90eXBlID0gbmV3IEVycm9yKCk7CitF
eGl0U3RhdHVzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEV4aXRTdGF0dXM7Cit2YXIgaW5pdGlh
bFN0YWNrVG9wOwordmFyIHByZWxvYWRTdGFydFRpbWUgPSBudWxsOworTW9kdWxlWydjYWxsTWFp
biddID0gTW9kdWxlLmNhbGxNYWluID0gZnVuY3Rpb24gY2FsbE1haW4oYXJncykgeworICBhc3Nl
cnQocnVuRGVwZW5kZW5jaWVzID09IDAsICdjYW5ub3QgY2FsbCBtYWluIHdoZW4gYXN5bmMgZGVw
ZW5kZW5jaWVzIHJlbWFpbiEgKGxpc3RlbiBvbiBfX0FUTUFJTl9fKScpOworICBhc3NlcnQoX19B
VFBSRVJVTl9fLmxlbmd0aCA9PSAwLCAnY2Fubm90IGNhbGwgbWFpbiB3aGVuIHByZVJ1biBmdW5j
dGlvbnMgcmVtYWluIHRvIGJlIGNhbGxlZCcpOworICBhcmdzID0gYXJncyB8fCBbXTsKKyAgaWYg
KEVOVklST05NRU5UX0lTX1dFQiAmJiBwcmVsb2FkU3RhcnRUaW1lICE9PSBudWxsKSB7CisgICAg
Ly9Nb2R1bGUucHJpbnRFcnIoJ3ByZWxvYWQgdGltZTogJyArIChEYXRlLm5vdygpIC0gcHJlbG9h
ZFN0YXJ0VGltZSkgKyAnIG1zJyk7CisgIH0KKyAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsKKyAgdmFy
IGFyZ2MgPSBhcmdzLmxlbmd0aCsxOworICBmdW5jdGlvbiBwYWQoKSB7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCA0LTE7IGkrKykgeworICAgICAgYXJndi5wdXNoKDApOworICAgIH0KKyAgfQor
ICB2YXIgYXJndiA9IFthbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoIi9iaW4vdGhpcy5wcm9n
cmFtIiksICdpOCcsIEFMTE9DX05PUk1BTCkgXTsKKyAgcGFkKCk7CisgIGZvciAodmFyIGkgPSAw
OyBpIDwgYXJnYy0xOyBpID0gaSArIDEpIHsKKyAgICBhcmd2LnB1c2goYWxsb2NhdGUoaW50QXJy
YXlGcm9tU3RyaW5nKGFyZ3NbaV0pLCAnaTgnLCBBTExPQ19OT1JNQUwpKTsKKyAgICBwYWQoKTsK
KyAgfQorICBhcmd2LnB1c2goMCk7CisgIGFyZ3YgPSBhbGxvY2F0ZShhcmd2LCAnaTMyJywgQUxM
T0NfTk9STUFMKTsKKyAgaW5pdGlhbFN0YWNrVG9wID0gU1RBQ0tUT1A7CisgIHRyeSB7CisgICAg
dmFyIHJldCA9IE1vZHVsZVsnX21haW4nXShhcmdjLCBhcmd2LCAwKTsKKyAgICAvLyBpZiB3ZSdy
ZSBub3QgcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgaXQncyB0aW1lIHRvIGV4aXQKKyAg
ICBpZiAoIU1vZHVsZVsnbm9FeGl0UnVudGltZSddKSB7CisgICAgICBleGl0KHJldCk7CisgICAg
fQorICB9CisgIGNhdGNoKGUpIHsKKyAgICBpZiAoZSBpbnN0YW5jZW9mIEV4aXRTdGF0dXMpIHsK
KyAgICAgIC8vIGV4aXQoKSB0aHJvd3MgdGhpcyBvbmNlIGl0J3MgZG9uZSB0byBtYWtlIHN1cmUg
ZXhlY3V0aW9uCisgICAgICAvLyBoYXMgYmVlbiBzdG9wcGVkIGNvbXBsZXRlbHkKKyAgICAgIHJl
dHVybjsKKyAgICB9IGVsc2UgaWYgKGUgPT0gJ1NpbXVsYXRlSW5maW5pdGVMb29wJykgeworICAg
ICAgLy8gcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgZG9uJ3QgaW1tZWRpYXRlbHkgZXhp
dAorICAgICAgTW9kdWxlWydub0V4aXRSdW50aW1lJ10gPSB0cnVlOworICAgICAgcmV0dXJuOwor
ICAgIH0gZWxzZSB7CisgICAgICB0aHJvdyBlOworICAgIH0KKyAgfQorfQorZnVuY3Rpb24gcnVu
KGFyZ3MpIHsKKyAgYXJncyA9IGFyZ3MgfHwgTW9kdWxlWydhcmd1bWVudHMnXTsKKyAgaWYgKHBy
ZWxvYWRTdGFydFRpbWUgPT09IG51bGwpIHByZWxvYWRTdGFydFRpbWUgPSBEYXRlLm5vdygpOwor
ICBpZiAocnVuRGVwZW5kZW5jaWVzID4gMCkgeworICAgIE1vZHVsZS5wcmludEVycigncnVuKCkg
Y2FsbGVkLCBidXQgZGVwZW5kZW5jaWVzIHJlbWFpbiwgc28gbm90IHJ1bm5pbmcnKTsKKyAgICBy
ZXR1cm47CisgIH0KKyAgcHJlUnVuKCk7CisgIGlmIChydW5EZXBlbmRlbmNpZXMgPiAwKSB7Cisg
ICAgLy8gYSBwcmVSdW4gYWRkZWQgYSBkZXBlbmRlbmN5LCBydW4gd2lsbCBiZSBjYWxsZWQgbGF0
ZXIKKyAgICByZXR1cm47CisgIH0KKyAgZnVuY3Rpb24gZG9SdW4oKSB7CisgICAgZW5zdXJlSW5p
dFJ1bnRpbWUoKTsKKyAgICBwcmVNYWluKCk7CisgICAgY2FsbGVkUnVuID0gdHJ1ZTsKKyAgICBp
ZiAoTW9kdWxlWydfbWFpbiddICYmIHNob3VsZFJ1bk5vdykgeworICAgICAgTW9kdWxlWydjYWxs
TWFpbiddKGFyZ3MpOworICAgIH0KKyAgICBwb3N0UnVuKCk7CisgIH0KKyAgaWYgKE1vZHVsZVsn
c2V0U3RhdHVzJ10pIHsKKyAgICBNb2R1bGVbJ3NldFN0YXR1cyddKCdSdW5uaW5nLi4uJyk7Cisg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOworICAgICAgfSwgMSk7CisgICAgICBp
ZiAoIUFCT1JUKSBkb1J1bigpOworICAgIH0sIDEpOworICB9IGVsc2UgeworICAgIGRvUnVuKCk7
CisgIH0KK30KK01vZHVsZVsncnVuJ10gPSBNb2R1bGUucnVuID0gcnVuOworZnVuY3Rpb24gZXhp
dChzdGF0dXMpIHsKKyAgQUJPUlQgPSB0cnVlOworICBFWElUU1RBVFVTID0gc3RhdHVzOworICBT
VEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKKyAgLy8gZXhpdCB0aGUgcnVudGltZQorICBleGl0
UnVudGltZSgpOworICAvLyB0aHJvdyBhbiBleGNlcHRpb24gdG8gaGFsdCB0aGUgY3VycmVudCBl
eGVjdXRpb24KKyAgdGhyb3cgbmV3IEV4aXRTdGF0dXMoc3RhdHVzKTsKK30KK01vZHVsZVsnZXhp
dCddID0gTW9kdWxlLmV4aXQgPSBleGl0OworZnVuY3Rpb24gYWJvcnQodGV4dCkgeworICBpZiAo
dGV4dCkgeworICAgIE1vZHVsZS5wcmludCh0ZXh0KTsKKyAgICBNb2R1bGUucHJpbnRFcnIodGV4
dCk7CisgIH0KKyAgQUJPUlQgPSB0cnVlOworICBFWElUU1RBVFVTID0gMTsKKyAgdGhyb3cgJ2Fi
b3J0KCkgYXQgJyArIChuZXcgRXJyb3IoKS5zdGFjayk7Cit9CitNb2R1bGVbJ2Fib3J0J10gPSBN
b2R1bGUuYWJvcnQgPSBhYm9ydDsKKy8vIHt7UFJFX1JVTl9BRERJVElPTlN9fQoraWYgKE1vZHVs
ZVsncHJlSW5pdCddKSB7CisgIGlmICh0eXBlb2YgTW9kdWxlWydwcmVJbml0J10gPT0gJ2Z1bmN0
aW9uJykgTW9kdWxlWydwcmVJbml0J10gPSBbTW9kdWxlWydwcmVJbml0J11dOworICB3aGlsZSAo
TW9kdWxlWydwcmVJbml0J10ubGVuZ3RoID4gMCkgeworICAgIE1vZHVsZVsncHJlSW5pdCddLnBv
cCgpKCk7CisgIH0KK30KKy8vIHNob3VsZFJ1bk5vdyByZWZlcnMgdG8gY2FsbGluZyBtYWluKCks
IG5vdCBydW4oKS4KK3ZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOworaWYgKE1vZHVsZVsnbm9Jbml0
aWFsUnVuJ10pIHsKKyAgc2hvdWxkUnVuTm93ID0gZmFsc2U7Cit9CitydW4oW10uY29uY2F0KE1v
ZHVsZVsiYXJndW1lbnRzIl0pKTsKK2lmIChKU1JlZ3Jlc3Nfb3V0cHV0QnVmZmVyICE9ICJmaW5h
bDogNDAwLlxuIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBKU1JlZ3Jlc3Nf
b3V0cHV0QnVmZmVyOworLy8ge3tQT1NUX1JVTl9BRERJVElPTlN9fQorLy8ge3tNT0RVTEVfQURE
SVRJT05TfX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvZm9sZC1zdHJpY3QtZXEuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL2ZvbGQtc3RyaWN0LWVx
LmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2ZvbGQtc3RyaWN0LWVxLmpzOjE2NjQ2OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ct
c3RyZXNzL3NjcmlwdC10ZXN0cy9mb2xkLXN0cmljdC1lcS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBhID09PSBiOwor
fQorCitmdW5jdGlvbiB0ZXN0KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgcmVzdWx0OiAiICsgYWN0
dWFsKTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgKytpKSB7CisgICAgdGVz
dChmb28odHJ1ZSwgbnVsbCksIGZhbHNlKTsKKyAgICB0ZXN0KGZvbyh0cnVlLCBmYWxzZSksIGZh
bHNlKTsKKyAgICB0ZXN0KGZvbyh0cnVlLCB0cnVlKSwgdHJ1ZSk7CisgICAgdGVzdChmb28oNSwg
ImhlbGxvIiksIGZhbHNlKTsKKyAgICB0ZXN0KGZvbyh2b2lkIDAsIG5ldyBPYmplY3QoKSksIGZh
bHNlKTsKK30KSW5kZXg6IExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9t
YXJzYWdsaWEuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2Ny
aXB0LXRlc3RzL21hcnNhZ2xpYS5qcwkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9tYXJzYWdsaWEuanM6MTY2NDY5KQorKysgTGF5b3V0
VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL21hcnNhZ2xpYS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBtYXJzYWdsaWEobV96LCBtX3csIG4pIHsK
KyAgICB2YXIgcmVzdWx0OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAg
ICAgIG1feiA9ICgzNjk2OSAqIChtX3ogJiA2NTUzNSkgKyAobV96ID4+IDE2KSkgfCAwOworICAg
ICAgICBtX3cgPSAoMTgwMDAgKiAobV93ICYgNjU1MzUpICsgKG1fdyA+PiAxNikpIHwgMDsKKyAg
ICAgICAgcmVzdWx0ID0gKChtX3ogPDwgMTYpICsgbV93KSB8IDA7CisgICAgfQorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSAwOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7
ICsraSkKKyAgICByZXN1bHQgKz0gbWFyc2FnbGlhKGksIGkgKyAxLCAxMDAwMDAwKTsKKworaWYg
KHJlc3VsdCAhPSA4MjE2Mzg2MjQzKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3Rz
L25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmct
cmFuZG9tLmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5qczoxNjY0NjkpCisr
KyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvbmVzdGVkLWZ1bmN0aW9u
LXBhcnNpbmctcmFuZG9tLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAKKy8vQCBz
a2lwCisKK2Z1bmN0aW9uIHJhbmRvbUlkZW50KHByZWZpeCkKK3sKKyAgICB2YXIgcmFuZG9tID0g
TWF0aC5yYW5kb20oKTsKKyAgICB2YXIgdHJ1bmNhdGVkID0gTWF0aC5mbG9vcihyYW5kb20gKiAx
MDAwMDAwMDAwKTsKKyAgICByZXR1cm4gU3RyaW5nKHByZWZpeCkgKyBTdHJpbmcodHJ1bmNhdGVk
KTsKK30KKworKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOworCisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgICAgICB2YXIgcHJvZ3JhbSA9ICIoZnVuY3Rp
b24gIiArIHJhbmRvbUlkZW50KCJmIikgKyAiKCkge1xuIjsKKyAgICAgICAgZm9yICh2YXIgaiA9
IDA7IGogPCAxMDAwOyArK2opIHsKKyAgICAgICAgICAgIHByb2dyYW0gKz0gImZ1bmN0aW9uICIg
KyByYW5kb21JZGVudCgiZyIpICsgIigpIHsgcmV0dXJuIDAgJiYgMSAmJiAyICYmIDMgJiYgNCAm
JiA1ICYmIDYgJiYgNyAmJiA4ICYmIDkgJiYgMTA7IH1cbiI7CisgICAgICAgIH0KKyAgICAgICAg
cHJvZ3JhbSArPSAifSkoKTtcbiI7CisgICAgICAgIHByb2dyYW0gKz0gInJldHVybiAwO1xuIjsK
KworICAgICAgICByZXN1bHQgKz0gbmV3IEZ1bmN0aW9uKHByb2dyYW0pKCk7CisgICAgfQorCisg
ICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgIHByaW50KCJCYWQgcmVzdWx0OiAiICsgcmVz
dWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yIjsKKyAgICB9Cit9KSgpOwpJbmRleDogTGF5b3V0
VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL25ldy1zcHJlYWQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL25ldy1zcHJlYWQu
anMJKHJldmlzaW9uIDE2NjQ2OSkJKGZyb20gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvbmV3LXNwcmVhZC5qczoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVz
cy9zY3JpcHQtdGVzdHMvbmV3LXNwcmVhZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0
IEBACisKK2Z1bmN0aW9uIHRlc3RGdW5jdGlvbihhLCBiKQoreworICAgICJ1c2Ugc3RyaWN0Igor
ICAgIHJlc3VsdCB8PSAwOworICAgIHJlc3VsdCArPSBhICogMTAwMCArIGIgKiAxMDAgKyBhcmd1
bWVudHNbMl0gKiAxMCArIGFyZ3VtZW50cy5sZW5ndGggXiAocmVzdWx0ICYgMTAyNCk7Cit9CisK
K3ZhciBhcnJheUFyZ3VtZW50cyA9IFsyLCAzLCA0XQordmFyIHJlc3VsdCA9IDA7Citmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykKKyAgICBuZXcgdGVzdEZ1bmN0aW9uKC4uLmFycmF5
QXJndW1lbnRzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspCisgICAgbmV3
IHRlc3RGdW5jdGlvbiguLi5bMSwgMiwgcmVzdWx0LCA0XSk7CisKK2Z1bmN0aW9uIHRlc3QyKCkg
eworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKQorICAgICAgICBuZXcgdGVz
dEZ1bmN0aW9uKC4uLmFyZ3VtZW50cyk7Cit9CisKK3Rlc3QyKDEsMiwzLDQpCisKKworZnVuY3Rp
b24gdGVzdDMoKSB7CisgICAgYWxpYXNlZEFyZ3VtZW50cyA9IGFyZ3VtZW50czsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykKKyAgICAgICAgbmV3IHRlc3RGdW5jdGlvbigu
Li5hbGlhc2VkQXJndW1lbnRzKTsKK30KKwordGVzdDMoMSwyLHJlc3VsdCw0KQorCitpZiAocmVz
dWx0ICE9IC0yMzcxMTUzMDg4KQorICAgIHRocm93ICJSZXN1bHQgd2FzICIgKyByZXN1bHQgKyAi
IGV4cGVjdGVkIC0yMzcxMTUzMDg4IjsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvbmV3LXNwcmVhZC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvbmV3
LXNwcmVhZC5qcwkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mv
c2NyaXB0LXRlc3RzL25ldy1zcHJlYWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0IEBA
CisvL0Agc2tpcAogCiBmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oYSwgYikKIHsKSW5kZXg6IExheW91
dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9wcm90by1jdXN0b20tZ2V0dGVyLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9w
cm90by1jdXN0b20tZ2V0dGVyLmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3Byb3RvLWN1c3RvbS1nZXR0ZXIuanM6MTY2NDY5KQor
KysgTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL3Byb3RvLWN1c3RvbS1n
ZXR0ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAordmFyIGN5Y2xlcyA9IDYw
MDAKK3ZhciBudW1iZXJPYmplY3QgPSB7IF9fcHJvdG9fXzogTnVtYmVyfQorZnVuY3Rpb24gZm9v
KCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBpbm5lckN5Y2xlcyA9IGN5Y2xlczsK
KyAgICB2YXIgTnVtYmVyID0gbnVtYmVyT2JqZWN0OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
aW5uZXJDeWNsZXM7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IDAgfCBpc05hTihOdW1iZXIuTmFO
KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9Citub0lubGluZShmb28pOwordmFyIHJlc3VsdCA9
IDA7Citmb3IgKHZhciBpID0gMDsgaSA8IDE1MDA7IGkrKykKKyAgICByZXN1bHQgKz0gZm9vKCk7
CitpZiAocmVzdWx0ICE9IGkgKiBjeWNsZXMpCisgICAgdGhyb3cgIkZhaWxlZCwgcmVzdWx0IHdh
cyAiICsgKHJlc3VsdCkgKyAiIHNob3VsZCBiZSAiICsgKGkgKiBjeWNsZXMpCkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvc2ltcGxlLWN1c3RvbS1nZXR0ZXIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3Rz
L3NpbXBsZS1jdXN0b20tZ2V0dGVyLmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3NpbXBsZS1jdXN0b20tZ2V0dGVyLmpzOjE2NjQ2
OSkKKysrIExheW91dFRlc3RzL2pzL3Nsb3ctc3RyZXNzL3NjcmlwdC10ZXN0cy9zaW1wbGUtY3Vz
dG9tLWdldHRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACit2YXIgY3ljbGVz
ID0gMjAwMDAKK3ZhciBudW1iZXJPYmplY3QgPSBOdW1iZXIKK2Z1bmN0aW9uIGZvbygpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gMDsKKyAgICB2YXIgaW5uZXJDeWNsZXMgPSBjeWNsZXM7CisgICAgdmFy
IE51bWJlciA9IG51bWJlck9iamVjdDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlubmVyQ3lj
bGVzOyArK2kpCisgICAgICAgIHJlc3VsdCArPSAwIHwgaXNOYU4oTnVtYmVyLk5hTik7CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorbm9JbmxpbmUoZm9vKTsKK3ZhciByZXN1bHQgPSAwOworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxNTAwOyBpKyspCisgICAgcmVzdWx0ICs9IGZvbygpOworaWYgKHJl
c3VsdCAhPSBpICogY3ljbGVzKQorICAgIHRocm93ICJGYWlsZWQsIHJlc3VsdCB3YXMgIiArIChy
ZXN1bHQpICsgIiBzaG91bGQgYmUgIiArIChpICogY3ljbGVzKQpJbmRleDogTGF5b3V0VGVzdHMv
anMvc2xvdy1zdHJlc3Mvc2NyaXB0LXRlc3RzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvdmFyaWFk
aWMtY2xvc3VyZS1jYWxsLmpzCShyZXZpc2lvbiAxNjY0NjkpCShmcm9tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3ZhcmlhZGljLWNsb3N1cmUtY2FsbC5qczoxNjY0NjkpCisr
KyBMYXlvdXRUZXN0cy9qcy9zbG93LXN0cmVzcy9zY3JpcHQtdGVzdHMvdmFyaWFkaWMtY2xvc3Vy
ZS1jYWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKK2Z1bmN0aW9uIGZvbyhh
KSB7CisgICAgdmFyIHggPSA0MiArIGE7CisgICAgZnVuY3Rpb24gYmFyKGEsIGIsIGMpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IGEgKyBiICsgYzsKKyAgICAgICAgZm9yICh2YXIgaSA9IDM7IGkg
PCBhcmd1bWVudHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICByZXN1bHQgPSBhcmd1bWVudHNb
aV0gKiB4OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICByZXR1cm4gYmFyLmFw
cGx5KHRoaXMsIGFyZ3VtZW50cyk7Cit9CisKKy8vIFdhcm0gZXZlcnl0aGluZyB1cCB3aXRoIHZh
cmlhZGljIGNhbGxzIHRoYXQgZG9uJ3QgZmFpbCBhcml0eSBjaGVja3MuCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIGFyZ3MgPSBbXTsKKyAgICB2YXIgbiA9IChp
ICUgOCkgKyA4OworICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjsgKytqKQorICAgICAgICBhcmdz
LnB1c2goaik7CisgICAgdmFyIHJlc3VsdCA9IGZvby5hcHBseShudWxsLCBhcmdzKTsKKyAgICBp
ZiAoKCIiICsgcmVzdWx0KSAhPSAoIiIgKyBbMjk0LCAzMzYsIDM3OCwgNDIwLCA0NjIsIDUwNCwg
NTQ2LCA1ODhdW24gLSA4XSkpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBmb3Ig
aSA9ICIgKyBpICsgIjogIiArIHJlc3VsdDsKK30KKworLy8gU3RhcnQgZmFpbGluZyBzb21lIGFy
aXR5IGNoZWNrcy4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
YXJncyA9IFtdOworICAgIHZhciBuID0gaSAlIDE2OworICAgIGZvciAodmFyIGogPSAwOyBqIDwg
bjsgKytqKQorICAgICAgICBhcmdzLnB1c2goaik7CisgICAgdmFyIHJlc3VsdCA9IGZvby5hcHBs
eShudWxsLCBhcmdzKTsKKyAgICBpZiAoKCIiICsgcmVzdWx0KSAhPSAoIiIgKyBbMC8wLCAwLzAs
IDAvMCwgMywgMTI2LCAxNjgsIDIxMCwgMjUyLCAyOTQsIDMzNiwgMzc4LCA0MjAsIDQ2MiwgNTA0
LCA1NDYsIDU4OF1bbl0pKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgZm9yIGkg
PSAiICsgaSArICI6ICIgKyByZXN1bHQ7Cit9CisKSW5kZXg6IExheW91dFRlc3RzL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcwkocmV2aXNpb24gMTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanM6MTY2NDY5KQorKysgTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIgQEAKK2lm
IChfSlNSZWdyZXNzX2RpZFN1Y2NlZWQpCisgICAgZGVidWcoIlBBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93biIpOwpJbmRleDogTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcwkocmV2aXNpb24g
MTY2NDY5KQkoZnJvbSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qczoxNjY0NjkpCisrKyBMYXlvdXRUZXN0cy9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oIkpTUmVncmVzcy8iICsg
KCIiICsgd2luZG93LmxvY2F0aW9uKS5zcGxpdCgnLycpLnBvcCgpLnNwbGl0KCcuJylbMF0pOwor
X0pTUmVncmVzc19kaWRTdWNjZWVkID0gdHJ1ZTsKK19KU1JlZ3Jlc3Nfb2xkT25FcnJvciA9IHdp
bmRvdy5vbmVycm9yOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAg
ZGVidWcoIkZBSUwgY2F1Z2h0IGV4Y2VwdGlvbjogIiArIG1lc3NhZ2UpOworICAgIF9KU1JlZ3Jl
c3NfZGlkU3VjY2VlZCA9IGZhbHNlOworICAgIF9KU1JlZ3Jlc3Nfb2xkT25FcnJvci5hcHBseSh0
aGlzLCBhcmd1bWVudHMpOworfQorCitpZiAodHlwZW9mIG5vSW5saW5lID09ICJ1bmRlZmluZWQi
KSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBub0lubGluZSA9d2luZG93
LnRlc3RSdW5uZXIubmV2ZXJJbmxpbmVGdW5jdGlvbiB8fCBmdW5jdGlvbigpe307CisgICAgZWxz
ZQorICAgICAgICBub0lubGluZSA9IGZ1bmN0aW9uKCl7fQorfQorCg==
</data>
<flag name="review"
          id="252414"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>